Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php header("Access-Control-Allow-Origin: *"); header('Content-Type: application/json')..
Decoded Output download
<?php
header("Access-Control-Allow-Origin: *");
header('Content-Type: application/json');
error_reporting(0);
// Database connection setup
$host = 'localhost';
$username = 'newuser';
$password = 'newpassword';
$database = 'inomov07_yangidokon';
// MySQL connection
$conn = mysqli_connect($host, $username, $password, $database);
if (!$conn) {
echo json_encode(['error' => 'Database connection failed: ' . mysqli_connect_error()]);
exit;
}
// Parametrlarni olish va tekshirish
$statistika = isset($_GET['statistika']) ? $_GET['statistika'] : '';
$startdate = isset($_GET['startdate']) ? $_GET['startdate'] : '';
$enddate = isset($_GET['enddate']) ? $_GET['enddate'] : '';
// Hafta va oy davomida barcha kunlarni hisoblash uchun yordamchi funksiya
function getDatesInRange($start, $end, $interval = 'P1D') {
$period = new DatePeriod(
new DateTime($start),
new DateInterval($interval),
(new DateTime($end))->modify('+1 day')
);
$dates = [];
foreach ($period as $date) {
$dates[$date->format('Y-m-d')] = 0; // Har bir kun uchun boshlang'ich qiymat = 0
}
return $dates;
}
if ($statistika == "statistikaline") {
// Barcha sanalarni olish
$dates = getDatesInRange($startdate, $enddate);
// SQL so'rovini tayyorlash
$sql = "SELECT
`sana`,
SUM(`berganpuli`) AS berganpuli,
SUM(`qarz`) AS qarz
FROM
(SELECT `sana`, `chek_id`, MAX(`berganpuli`) AS berganpuli, MAX(`qarz`) AS qarz
FROM `history`
GROUP BY `sana`, `chek_id`) AS grouped_records";
if (!empty($startdate) && !empty($enddate)) {
$sql .= " WHERE `sana` BETWEEN '$startdate' AND '$enddate'";
}
$sql .= " GROUP BY `sana` ORDER BY `sana` ASC";
$result = mysqli_query($conn, $sql);
// Ma'lumotlarni tekshirish va mavjud sanalar uchun sotuvlarni yangilash
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$dates[$row['sana']] = [
'berganpuli' => (float)$row['berganpuli'],
'qarz' => (float)$row['qarz'],
'jami' => (float)$row['berganpuli'] + (float)$row['qarz']
];
}
}
// Yakuniy formatdagi ma'lumotlarni tayyorlash
$data = [];
foreach ($dates as $date => $values) {
$data[] = [
'date' => $date,
'qarz' => $values['jami']
];
}
// JSON formatida natijani qaytarish
echo json_encode($data);
}elseif ($statistika == "weekly" || $statistika == "monthly") {
// Haftalik yoki oylik sanalarni olish
$dates = getDatesInRange($startdate, $enddate);
// SQL so'rovini tayyorlash
$sql = "SELECT
`sana`,
SUM(`berganpuli`) AS jami_sotuv
FROM
(SELECT DISTINCT `sana`, `vaqti`, `chek_id`, `berganpuli` FROM `history`) AS unique_records";
if (!empty($startdate) && !empty($enddate)) {
$sql .= " WHERE `sana` BETWEEN '$startdate' AND '$enddate'";
}
$sql .= " GROUP BY `sana` ORDER BY `sana` ASC";
$result = mysqli_query($conn, $sql);
// Ma'lumotlarni tekshirish va mavjud sanalar uchun sotuvlarni yangilash
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$dates[$row['sana']] = (float)$row['jami_sotuv'];
}
}
// Yakuniy formatdagi ma'lumotlarni tayyorlash
$data = [];
foreach ($dates as $date => $sales) {
$data[] = [
'date' => $date,
'jami_sotuv' => $sales
];
}
echo json_encode($data);
}elseif ($statistika == "statistikascale") {
// Sanalar filtrini aniqlash
$type = $_GET['type'] ?? "oylik"; // Default oylik
$startdate = $_GET['startdate'] ?? null;
$enddate = $_GET['enddate'] ?? null;
$whereClause = "";
if ($type == "haftalik") {
$whereClause = "AND YEARWEEK(`sana`, 1) = YEARWEEK(CURDATE(), 1)";
} elseif ($type == "oylik") {
$whereClause = "AND MONTH(`sana`) = MONTH(CURDATE()) AND YEAR(`sana`) = YEAR(CURDATE())";
} elseif ($type == "custom" && $startdate && $enddate) {
$whereClause = "AND `sana` BETWEEN '$startdate' AND '$enddate'";
}
// Asosiy so'rov
$sql = "SELECT `sklad_id`, SUM(`miqdor`) AS `total_miqdor`
FROM `history`
WHERE 1=1 $whereClause
GROUP BY `sklad_id`";
$result = $conn->query($sql);
$chartData = [];
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$sklad_id = $row['sklad_id'];
$miqdor = $row['total_miqdor'];
// Mahsulot nomini olish
$skladSql = "SELECT `nomi` FROM `sklad` WHERE `id` = $sklad_id";
$skladResult = $conn->query($skladSql);
if ($skladResult->num_rows > 0) {
$skladRow = $skladResult->fetch_assoc();
$nomi = $skladRow['nomi'];
// Ma'lumotni arrayga qo'shish
$chartData[] = [
'nomi' => $nomi,
'miqdor' => $miqdor
];
}
}
}
// JSON formatida natija chiqarish
header('Content-Type: application/json');
echo json_encode($chartData);
}elseif ($statistika == "yangilinechart") {
// Startdate va Enddate-ni olamiz
$startDate = $_GET['startdate'];
$endDate = $_GET['enddate'];
// Sanalarni formatlash
$startDate = date('Y-m-d', strtotime($startDate));
$endDate = date('Y-m-d', strtotime($endDate));
// Savdo bo'lmagan kunlarni kiritish uchun barcha kunlarni yaratish
$period = new DatePeriod(
new DateTime($startDate),
new DateInterval('P1D'),
(new DateTime($endDate))->modify('+1 day')
);
// Ma'lumotlarni yig'ish uchun array
$data = [];
foreach ($period as $date) {
$data[$date->format('Y-m-d')] = 0; // Har bir kun uchun boshlang'ich qiymat
}
// SQL so'rovi: `history` jadvalidan kerakli ma'lumotlarni olamiz
$query = "SELECT sklad_id, miqdor, sana, s_narxi, k_narxi FROM history WHERE sana BETWEEN ? AND ?";
$stmt = $conn->prepare($query);
$stmt->bind_param("ss", $startDate, $endDate);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
$sNarxi = $row['s_narxi']; // History jadvalidan olingan s_narxi
$kNarxi = $row['k_narxi']; // History jadvalidan olingan k_narxi
$miqdor = $row['miqdor'];
// Foyda hisoblash
$profit = ($sNarxi - $kNarxi) * $miqdor;
// Natijalarni sana bo'yicha guruhlash
$dateKey = $row['sana'];
if (isset($data[$dateKey])) {
$data[$dateKey] += $profit;
}
}
// Natijalarni line chart uchun tayyorlash
$chartData = [];
foreach ($data as $date => $value) {
$chartData[] = [
'date' => $date,
'profit' => $value
];
}
// JSON formatida qaytarish
header('Content-Type: application/json');
echo json_encode($chartData);
}elseif ($statistika == "yangilinechartzarar") {
// Startdate va Enddate-ni olamiz
$startDate = $_GET['startdate'];
$endDate = $_GET['enddate'];
// Sanalarni formatlash
$startDate = date('Y-m-d', strtotime($startDate));
$endDate = date('Y-m-d', strtotime($endDate));
// Savdo bo'lmagan kunlarni kiritish uchun barcha kunlarni yaratish
$period = new DatePeriod(
new DateTime($startDate),
new DateInterval('P1D'),
(new DateTime($endDate))->modify('+1 day')
);
// Ma'lumotlarni yig'ish uchun array
$data = [];
foreach ($period as $date) {
$data[$date->format('Y-m-d')] = 0; // Har bir kun uchun boshlang'ich qiymat
}
// SQL so'rovi: `history` jadvalidan kerakli ma'lumotlarni olamiz
$query = "SELECT sklad_id, miqdor, sana, k_narxi FROM history WHERE sana BETWEEN ? AND ?";
$stmt = $conn->prepare($query);
$stmt->bind_param("ss", $startDate, $endDate);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
$kNarxi = $row['k_narxi']; // History jadvalidan olingan k_narxi
$miqdor = $row['miqdor'];
// Zararni hisoblash
$loss = $kNarxi * $miqdor;
// Natijalarni sana bo'yicha guruhlash
$dateKey = $row['sana'];
if (isset($data[$dateKey])) {
$data[$dateKey] += $loss;
}
}
// Natijalarni line chart uchun tayyorlash
$chartData = [];
foreach ($data as $date => $value) {
$chartData[] = [
'date' => $date,
'loss' => $value
];
}
// JSON formatida qaytarish
header('Content-Type: application/json');
echo json_encode($chartData);
}elseif ($statistika == "statistikakategoriya") {
// Sanalar startdate va enddate orqali olinadi
$startdate = isset($_GET['startdate']) ? $_GET['startdate'] : null;
$enddate = isset($_GET['enddate']) ? $_GET['enddate'] : null;
// Sanalar formatini tekshirish
if (!$startdate || !$enddate) {
echo json_encode([
"error" => "startdate va enddate parametrlarini yuboring"
]);
exit;
}
// Sotilgan mahsulotlar bo'yicha statistikani chiqarish
$query = "
SELECT s.katalog, SUM(h.miqdor) AS sotilgan_miqdor
FROM history h
JOIN sklad s ON h.sklad_id = s.id
WHERE h.sana BETWEEN ? AND ?
GROUP BY s.katalog
ORDER BY sotilgan_miqdor DESC
";
$stmt = $conn->prepare($query);
if (!$stmt) {
echo json_encode(["error" => "SQL so'rovini tayyorlashda xatolik: " . $conn->error]);
exit;
}
$stmt->bind_param("ss", $startdate, $enddate);
$stmt->execute();
$result = $stmt->get_result();
$data = [];
while ($row = $result->fetch_assoc()) {
$data[] = [
"katalog" => $row['katalog'],
"sotilgan_soni" => $row['sotilgan_miqdor']
];
}
$stmt->close();
// Natijani JSON formatida qaytarish
echo json_encode(["statistika" => $data]);
exit;
}elseif ($statistika == "engkopstatis") {
$startdate = $_GET['startdate'] ?? null; // Boshlanish sanasi
$enddate = $_GET['enddate'] ?? null; // Tugash sanasi
if (!$startdate || !$enddate) {
echo json_encode(["error" => "Iltimos, startdate va enddate ni kiriting."]);
exit;
}
// Sanalarni formatlash
$startdate = date('Y-m-d', strtotime($startdate));
$enddate = date('Y-m-d', strtotime($enddate));
// history jadvalidan kerakli ma'lumotlarni olish
$query = "SELECT sklad_id, miqdor, sana, s_narxi, k_narxi FROM history WHERE sana BETWEEN ? AND ?";
$stmt = $conn->prepare($query);
$stmt->bind_param("ss", $startdate, $enddate);
$stmt->execute();
$result = $stmt->get_result();
$profits = [];
if ($result && $result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$skladId = $row['sklad_id'];
$miqdor = $row['miqdor'];
$sNarxi = $row['s_narxi'];
$kNarxi = $row['k_narxi'];
// Foydani hisoblash
$profit = ($sNarxi - $kNarxi) * $miqdor;
// Natijani profits arrayga qo'shish
if (isset($profits[$skladId])) {
$profits[$skladId]['foyda'] += $profit;
$profits[$skladId]['sotilgan_miqdor'] += $miqdor;
} else {
$profits[$skladId] = [
'sklad_id' => $skladId,
'foyda' => $profit,
'sotilgan_miqdor' => $miqdor
];
}
}
}
// JSON formatida javobni chiqarish
header('Content-Type: application/json');
echo json_encode(array_values($profits));
}elseif ($statistika == "statistikalineqarz") {
// Barcha sanalarni olish
$dates = getDatesInRange($startdate, $enddate);
// SQL so'rovini tayyorlash
$sql = "SELECT
`sana`,
SUM(`qarz`) AS qarz
FROM
(SELECT DISTINCT `sana`, `vaqti`, `chek_id`, `qarz` FROM `history`) AS unique_records";
if (!empty($startdate) && !empty($enddate)) {
$sql .= " WHERE `sana` BETWEEN '$startdate' AND '$enddate'";
}
$sql .= " GROUP BY `sana` ORDER BY `sana` ASC";
$result = mysqli_query($conn, $sql);
// Ma'lumotlarni tekshirish va mavjud sanalar uchun sotuvlarni yangilash
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$dates[$row['sana']] = (float)$row['qarz'];
}
}
// Yakuniy formatdagi ma'lumotlarni tayyorlash
$data = [];
foreach ($dates as $date => $sales) {
$data[] = [
'date' => $date,
'qarz' => $sales
];
}
// JSON formatida natijani qaytarish
echo json_encode($data);
} ?>
Did this file decode correctly?
Original Code
<?php
header("Access-Control-Allow-Origin: *");
header('Content-Type: application/json');
error_reporting(0);
// Database connection setup
$host = 'localhost';
$username = 'newuser';
$password = 'newpassword';
$database = 'inomov07_yangidokon';
// MySQL connection
$conn = mysqli_connect($host, $username, $password, $database);
if (!$conn) {
echo json_encode(['error' => 'Database connection failed: ' . mysqli_connect_error()]);
exit;
}
// Parametrlarni olish va tekshirish
$statistika = isset($_GET['statistika']) ? $_GET['statistika'] : '';
$startdate = isset($_GET['startdate']) ? $_GET['startdate'] : '';
$enddate = isset($_GET['enddate']) ? $_GET['enddate'] : '';
// Hafta va oy davomida barcha kunlarni hisoblash uchun yordamchi funksiya
function getDatesInRange($start, $end, $interval = 'P1D') {
$period = new DatePeriod(
new DateTime($start),
new DateInterval($interval),
(new DateTime($end))->modify('+1 day')
);
$dates = [];
foreach ($period as $date) {
$dates[$date->format('Y-m-d')] = 0; // Har bir kun uchun boshlang'ich qiymat = 0
}
return $dates;
}
if ($statistika == "statistikaline") {
// Barcha sanalarni olish
$dates = getDatesInRange($startdate, $enddate);
// SQL so'rovini tayyorlash
$sql = "SELECT
`sana`,
SUM(`berganpuli`) AS berganpuli,
SUM(`qarz`) AS qarz
FROM
(SELECT `sana`, `chek_id`, MAX(`berganpuli`) AS berganpuli, MAX(`qarz`) AS qarz
FROM `history`
GROUP BY `sana`, `chek_id`) AS grouped_records";
if (!empty($startdate) && !empty($enddate)) {
$sql .= " WHERE `sana` BETWEEN '$startdate' AND '$enddate'";
}
$sql .= " GROUP BY `sana` ORDER BY `sana` ASC";
$result = mysqli_query($conn, $sql);
// Ma'lumotlarni tekshirish va mavjud sanalar uchun sotuvlarni yangilash
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$dates[$row['sana']] = [
'berganpuli' => (float)$row['berganpuli'],
'qarz' => (float)$row['qarz'],
'jami' => (float)$row['berganpuli'] + (float)$row['qarz']
];
}
}
// Yakuniy formatdagi ma'lumotlarni tayyorlash
$data = [];
foreach ($dates as $date => $values) {
$data[] = [
'date' => $date,
'qarz' => $values['jami']
];
}
// JSON formatida natijani qaytarish
echo json_encode($data);
}elseif ($statistika == "weekly" || $statistika == "monthly") {
// Haftalik yoki oylik sanalarni olish
$dates = getDatesInRange($startdate, $enddate);
// SQL so'rovini tayyorlash
$sql = "SELECT
`sana`,
SUM(`berganpuli`) AS jami_sotuv
FROM
(SELECT DISTINCT `sana`, `vaqti`, `chek_id`, `berganpuli` FROM `history`) AS unique_records";
if (!empty($startdate) && !empty($enddate)) {
$sql .= " WHERE `sana` BETWEEN '$startdate' AND '$enddate'";
}
$sql .= " GROUP BY `sana` ORDER BY `sana` ASC";
$result = mysqli_query($conn, $sql);
// Ma'lumotlarni tekshirish va mavjud sanalar uchun sotuvlarni yangilash
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$dates[$row['sana']] = (float)$row['jami_sotuv'];
}
}
// Yakuniy formatdagi ma'lumotlarni tayyorlash
$data = [];
foreach ($dates as $date => $sales) {
$data[] = [
'date' => $date,
'jami_sotuv' => $sales
];
}
echo json_encode($data);
}elseif ($statistika == "statistikascale") {
// Sanalar filtrini aniqlash
$type = $_GET['type'] ?? "oylik"; // Default oylik
$startdate = $_GET['startdate'] ?? null;
$enddate = $_GET['enddate'] ?? null;
$whereClause = "";
if ($type == "haftalik") {
$whereClause = "AND YEARWEEK(`sana`, 1) = YEARWEEK(CURDATE(), 1)";
} elseif ($type == "oylik") {
$whereClause = "AND MONTH(`sana`) = MONTH(CURDATE()) AND YEAR(`sana`) = YEAR(CURDATE())";
} elseif ($type == "custom" && $startdate && $enddate) {
$whereClause = "AND `sana` BETWEEN '$startdate' AND '$enddate'";
}
// Asosiy so'rov
$sql = "SELECT `sklad_id`, SUM(`miqdor`) AS `total_miqdor`
FROM `history`
WHERE 1=1 $whereClause
GROUP BY `sklad_id`";
$result = $conn->query($sql);
$chartData = [];
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$sklad_id = $row['sklad_id'];
$miqdor = $row['total_miqdor'];
// Mahsulot nomini olish
$skladSql = "SELECT `nomi` FROM `sklad` WHERE `id` = $sklad_id";
$skladResult = $conn->query($skladSql);
if ($skladResult->num_rows > 0) {
$skladRow = $skladResult->fetch_assoc();
$nomi = $skladRow['nomi'];
// Ma'lumotni arrayga qo'shish
$chartData[] = [
'nomi' => $nomi,
'miqdor' => $miqdor
];
}
}
}
// JSON formatida natija chiqarish
header('Content-Type: application/json');
echo json_encode($chartData);
}elseif ($statistika == "yangilinechart") {
// Startdate va Enddate-ni olamiz
$startDate = $_GET['startdate'];
$endDate = $_GET['enddate'];
// Sanalarni formatlash
$startDate = date('Y-m-d', strtotime($startDate));
$endDate = date('Y-m-d', strtotime($endDate));
// Savdo bo'lmagan kunlarni kiritish uchun barcha kunlarni yaratish
$period = new DatePeriod(
new DateTime($startDate),
new DateInterval('P1D'),
(new DateTime($endDate))->modify('+1 day')
);
// Ma'lumotlarni yig'ish uchun array
$data = [];
foreach ($period as $date) {
$data[$date->format('Y-m-d')] = 0; // Har bir kun uchun boshlang'ich qiymat
}
// SQL so'rovi: `history` jadvalidan kerakli ma'lumotlarni olamiz
$query = "SELECT sklad_id, miqdor, sana, s_narxi, k_narxi FROM history WHERE sana BETWEEN ? AND ?";
$stmt = $conn->prepare($query);
$stmt->bind_param("ss", $startDate, $endDate);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
$sNarxi = $row['s_narxi']; // History jadvalidan olingan s_narxi
$kNarxi = $row['k_narxi']; // History jadvalidan olingan k_narxi
$miqdor = $row['miqdor'];
// Foyda hisoblash
$profit = ($sNarxi - $kNarxi) * $miqdor;
// Natijalarni sana bo'yicha guruhlash
$dateKey = $row['sana'];
if (isset($data[$dateKey])) {
$data[$dateKey] += $profit;
}
}
// Natijalarni line chart uchun tayyorlash
$chartData = [];
foreach ($data as $date => $value) {
$chartData[] = [
'date' => $date,
'profit' => $value
];
}
// JSON formatida qaytarish
header('Content-Type: application/json');
echo json_encode($chartData);
}elseif ($statistika == "yangilinechartzarar") {
// Startdate va Enddate-ni olamiz
$startDate = $_GET['startdate'];
$endDate = $_GET['enddate'];
// Sanalarni formatlash
$startDate = date('Y-m-d', strtotime($startDate));
$endDate = date('Y-m-d', strtotime($endDate));
// Savdo bo'lmagan kunlarni kiritish uchun barcha kunlarni yaratish
$period = new DatePeriod(
new DateTime($startDate),
new DateInterval('P1D'),
(new DateTime($endDate))->modify('+1 day')
);
// Ma'lumotlarni yig'ish uchun array
$data = [];
foreach ($period as $date) {
$data[$date->format('Y-m-d')] = 0; // Har bir kun uchun boshlang'ich qiymat
}
// SQL so'rovi: `history` jadvalidan kerakli ma'lumotlarni olamiz
$query = "SELECT sklad_id, miqdor, sana, k_narxi FROM history WHERE sana BETWEEN ? AND ?";
$stmt = $conn->prepare($query);
$stmt->bind_param("ss", $startDate, $endDate);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
$kNarxi = $row['k_narxi']; // History jadvalidan olingan k_narxi
$miqdor = $row['miqdor'];
// Zararni hisoblash
$loss = $kNarxi * $miqdor;
// Natijalarni sana bo'yicha guruhlash
$dateKey = $row['sana'];
if (isset($data[$dateKey])) {
$data[$dateKey] += $loss;
}
}
// Natijalarni line chart uchun tayyorlash
$chartData = [];
foreach ($data as $date => $value) {
$chartData[] = [
'date' => $date,
'loss' => $value
];
}
// JSON formatida qaytarish
header('Content-Type: application/json');
echo json_encode($chartData);
}elseif ($statistika == "statistikakategoriya") {
// Sanalar startdate va enddate orqali olinadi
$startdate = isset($_GET['startdate']) ? $_GET['startdate'] : null;
$enddate = isset($_GET['enddate']) ? $_GET['enddate'] : null;
// Sanalar formatini tekshirish
if (!$startdate || !$enddate) {
echo json_encode([
"error" => "startdate va enddate parametrlarini yuboring"
]);
exit;
}
// Sotilgan mahsulotlar bo'yicha statistikani chiqarish
$query = "
SELECT s.katalog, SUM(h.miqdor) AS sotilgan_miqdor
FROM history h
JOIN sklad s ON h.sklad_id = s.id
WHERE h.sana BETWEEN ? AND ?
GROUP BY s.katalog
ORDER BY sotilgan_miqdor DESC
";
$stmt = $conn->prepare($query);
if (!$stmt) {
echo json_encode(["error" => "SQL so'rovini tayyorlashda xatolik: " . $conn->error]);
exit;
}
$stmt->bind_param("ss", $startdate, $enddate);
$stmt->execute();
$result = $stmt->get_result();
$data = [];
while ($row = $result->fetch_assoc()) {
$data[] = [
"katalog" => $row['katalog'],
"sotilgan_soni" => $row['sotilgan_miqdor']
];
}
$stmt->close();
// Natijani JSON formatida qaytarish
echo json_encode(["statistika" => $data]);
exit;
}elseif ($statistika == "engkopstatis") {
$startdate = $_GET['startdate'] ?? null; // Boshlanish sanasi
$enddate = $_GET['enddate'] ?? null; // Tugash sanasi
if (!$startdate || !$enddate) {
echo json_encode(["error" => "Iltimos, startdate va enddate ni kiriting."]);
exit;
}
// Sanalarni formatlash
$startdate = date('Y-m-d', strtotime($startdate));
$enddate = date('Y-m-d', strtotime($enddate));
// history jadvalidan kerakli ma'lumotlarni olish
$query = "SELECT sklad_id, miqdor, sana, s_narxi, k_narxi FROM history WHERE sana BETWEEN ? AND ?";
$stmt = $conn->prepare($query);
$stmt->bind_param("ss", $startdate, $enddate);
$stmt->execute();
$result = $stmt->get_result();
$profits = [];
if ($result && $result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$skladId = $row['sklad_id'];
$miqdor = $row['miqdor'];
$sNarxi = $row['s_narxi'];
$kNarxi = $row['k_narxi'];
// Foydani hisoblash
$profit = ($sNarxi - $kNarxi) * $miqdor;
// Natijani profits arrayga qo'shish
if (isset($profits[$skladId])) {
$profits[$skladId]['foyda'] += $profit;
$profits[$skladId]['sotilgan_miqdor'] += $miqdor;
} else {
$profits[$skladId] = [
'sklad_id' => $skladId,
'foyda' => $profit,
'sotilgan_miqdor' => $miqdor
];
}
}
}
// JSON formatida javobni chiqarish
header('Content-Type: application/json');
echo json_encode(array_values($profits));
}elseif ($statistika == "statistikalineqarz") {
// Barcha sanalarni olish
$dates = getDatesInRange($startdate, $enddate);
// SQL so'rovini tayyorlash
$sql = "SELECT
`sana`,
SUM(`qarz`) AS qarz
FROM
(SELECT DISTINCT `sana`, `vaqti`, `chek_id`, `qarz` FROM `history`) AS unique_records";
if (!empty($startdate) && !empty($enddate)) {
$sql .= " WHERE `sana` BETWEEN '$startdate' AND '$enddate'";
}
$sql .= " GROUP BY `sana` ORDER BY `sana` ASC";
$result = mysqli_query($conn, $sql);
// Ma'lumotlarni tekshirish va mavjud sanalar uchun sotuvlarni yangilash
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
$dates[$row['sana']] = (float)$row['qarz'];
}
}
// Yakuniy formatdagi ma'lumotlarni tayyorlash
$data = [];
foreach ($dates as $date => $sales) {
$data[] = [
'date' => $date,
'qarz' => $sales
];
}
// JSON formatida natijani qaytarish
echo json_encode($data);
}
Function Calls
None |
Stats
MD5 | 91b5f4ed48a1d587d98eaf2fef72fea0 |
Eval Count | 0 |
Decode Time | 81 ms |