315 lines
12 KiB
PHP
315 lines
12 KiB
PHP
<?php
|
|
include '../managers/menu.php';
|
|
|
|
if (!(UserHasPerm('acquire'))) {
|
|
StopAndDie();
|
|
}
|
|
|
|
if (isset($_POST["func"])) {
|
|
if (htmlspecialchars($_POST["func"]) == "LoadClimAir") {
|
|
|
|
$return_list = array();
|
|
|
|
/* Normál elemek */
|
|
$query = "SELECT item_id, name_in_db, car_type, car_brand, front_and_rear FROM pr_parameters WHERE category = 'ClimAir' and data_status = 1";
|
|
if ($result = $conn->query($query)) {
|
|
while ($c_climair = $result->fetch_assoc()) {
|
|
$c_item_id = $c_climair['item_id'];
|
|
|
|
$annual_query = mysqli_query($conn, "SELECT AVG(total_consumption) AS avg_total_consumption FROM statistics_annual WHERE item_id = '$c_item_id' AND year >= YEAR(CURDATE()) - 2");
|
|
$annual_data = mysqli_fetch_assoc($annual_query);
|
|
|
|
$avg_total_consumption = 0;
|
|
$is_new = false;
|
|
if ($annual_data != null && $annual_data['avg_total_consumption'] != null) {
|
|
$avg_total_consumption = $annual_data['avg_total_consumption'];
|
|
} else {
|
|
$is_new = true;
|
|
}
|
|
|
|
if ($avg_total_consumption == 0) {
|
|
$c_car_type = $c_climair['car_type'];
|
|
$c_car_brand = $c_climair['car_brand'];
|
|
$stmt = $conn->prepare("SELECT AVG(total_consumption) AS avg_total_consumption
|
|
FROM statistics_annual sa
|
|
WHERE sa.item_id IN (
|
|
SELECT item_id
|
|
FROM pr_parameters
|
|
WHERE category = 'ClimAir'
|
|
AND data_status = 1
|
|
AND car_type = ?
|
|
AND car_brand = ?
|
|
)
|
|
AND sa.year >= YEAR(CURDATE()) - 2");
|
|
|
|
$stmt->bind_param("ss", $c_car_type, $c_car_brand);
|
|
$stmt->execute();
|
|
$annual_data_type = $stmt->get_result();
|
|
while ($row = $annual_data_type->fetch_assoc()) {
|
|
$avg_total_consumption = $row['avg_total_consumption'];
|
|
}
|
|
|
|
}
|
|
|
|
$month_4_consumption = ($avg_total_consumption / 365) * (4 + 2) * 30; // Napi fogyás * 4 hónapos tervezés + 2 hónap beérkezési idő
|
|
|
|
$daily_query = mysqli_query($conn, "SELECT under_sales FROM statistics_daily WHERE item_id = '$c_item_id'");
|
|
$daily_data = mysqli_fetch_assoc($daily_query);
|
|
|
|
if ($daily_data != null) {
|
|
$month_4_consumption += $daily_data['under_sales'];
|
|
}
|
|
|
|
$set_items = splitSetitem_id($c_item_id);
|
|
if ($set_items != null) {
|
|
$return_list[] = [
|
|
"item_id" => $set_items['item1'],
|
|
"amount" => ceil($month_4_consumption),
|
|
"name_in_db" => $c_climair['name_in_db'],
|
|
"is_new" => $is_new
|
|
];
|
|
$return_list[] = [
|
|
"item_id" => $set_items['item2'],
|
|
"amount" => ceil($month_4_consumption),
|
|
"name_in_db" => $c_climair['name_in_db'],
|
|
"is_new" => $is_new
|
|
];
|
|
} else {
|
|
$return_list[] = [
|
|
"item_id" => $c_item_id,
|
|
"amount" => ceil($month_4_consumption),
|
|
"name_in_db" => $c_climair['name_in_db'],
|
|
"is_new" => $is_new
|
|
];
|
|
}
|
|
}
|
|
}
|
|
|
|
/* Return előkészítése */
|
|
$return_list = array_reduce($return_list, function($carry, $item) {
|
|
$id = $item['item_id'];
|
|
if (isset($carry[$id])) {
|
|
$carry[$id]['amount'] += $item['amount'];
|
|
} else {
|
|
$carry[$id] = $item;
|
|
}
|
|
return $carry;
|
|
}, []);
|
|
$return_list = array_values($return_list);
|
|
usort($return_list, function($a, $b) {
|
|
if ($a['is_new'] != $b['is_new']) {
|
|
return $b['is_new'] - $a['is_new'];
|
|
}
|
|
return $a['amount'] <=> $b['amount'];
|
|
});
|
|
echo json_encode(['result' => 'ok', 'return_list' => $return_list]);
|
|
}
|
|
|
|
exit();
|
|
}
|
|
|
|
?>
|
|
<!DOCTYPE html>
|
|
<html lang="hu" dir="ltr">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<link rel="stylesheet" href="../css/panel.css">
|
|
<script src="../js/feather-icons.js"></script>
|
|
<title>Kezelőfelület</title>
|
|
</head>
|
|
<style>
|
|
.loading .load {
|
|
display: flex;
|
|
}
|
|
|
|
.load {
|
|
border-radius: 5px;
|
|
position: absolute;
|
|
inset: 0;
|
|
background: rgba(255,255,255,0.5);
|
|
backdrop-filter: blur(3px);
|
|
display: none;
|
|
align-items: center;
|
|
justify-content: center;
|
|
z-index: 10;
|
|
}
|
|
|
|
.load::before {
|
|
content: '';
|
|
width: 30px;
|
|
height: 4px;
|
|
background: var(--panelcolor);
|
|
position: relative;
|
|
animation: lineToSquare 2s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes lineToSquare {
|
|
0% {
|
|
width: 30px; height: 4px;
|
|
transform: rotate(0deg);
|
|
border-radius: 2;
|
|
}
|
|
20% {
|
|
width: 30px; height: 4px;
|
|
transform: rotate(90deg);
|
|
border-radius: 2;
|
|
}
|
|
40% {
|
|
width: 30px; height: 30px;
|
|
transform: rotate(90deg);
|
|
border-radius: 5px;
|
|
}
|
|
60% {
|
|
width: 30px; height: 30px;
|
|
transform: rotate(180deg);
|
|
border-radius: 5px;
|
|
}
|
|
80% {
|
|
width: 30px; height: 30px;
|
|
transform: rotate(180deg);
|
|
border-radius: 50%;
|
|
}
|
|
100% {
|
|
width: 30px; height: 4px;
|
|
transform: rotate(180deg);
|
|
border-radius: 2;
|
|
}
|
|
}
|
|
</style>
|
|
<body>
|
|
<?php echo $menuhtml;?>
|
|
<div class="window closed" id="win">
|
|
<div class="topbar">
|
|
<p id="wintitle">Title</p>
|
|
<div class="btn fullscrn" onclick="fullscrn();" id="fullscrnbtn"></div>
|
|
<div class="btn close" onclick="closewin();"></div>
|
|
</div>
|
|
<div class="wapp" id="winapp"><div id="errorDIV"></div></div>
|
|
<div class="loading" id="winloading"></div>
|
|
</div>
|
|
<div class="loadingBG" id="loadingBG"><img src="../img/loading.gif"></div>
|
|
<div class="content">
|
|
|
|
<!-- Tartalmi rész kezdete -->
|
|
|
|
<!-- KATEGÓRIA GOMBOK -->
|
|
<div class="category-tabs" style="grid-template-columns: repeat(1, 1fr);">
|
|
<div class="category-tab active" onclick="switchCategory(this, 'climair')">
|
|
<div class="category-tab-icon">
|
|
<img src="data:image/png;base64,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" alt="drop-shipping">
|
|
</div>
|
|
<div class="category-tab-title">ClimAir rendelés</div>
|
|
<div class="category-tab-desc">Generálja le a ClimAir rendeléshez szükséges excelt</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- ClimAir -->
|
|
<div id="climair" class="cat-tab form-section active" style="position: relative;">
|
|
<div class="load"></div>
|
|
<div class="form-title">ClimAir rendelés</div>
|
|
<div class="form-desc">Generálja le a ClimAir rendeléshez szükséges excelt</div>
|
|
|
|
<a title="Excel export" style="position: absolute; right: 15px; top: 15px;"><i class="icon" onclick="exportCSV('climair');" style="width: 20px; height: 20px; opacity: 0.6;"><i data-feather="download" style="width: 20px; height:20px;"></i></i></a>
|
|
|
|
<table id="climair-table">
|
|
<thead>
|
|
<tr>
|
|
<th>Cikkszám</th>
|
|
<th>Mennyiség</th>
|
|
<th>Terméknév</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
</tbody>
|
|
</table>
|
|
|
|
</div>
|
|
|
|
<br clear="all"><br><br>
|
|
<!-- Tartalmi rész vége -->
|
|
|
|
</div>
|
|
<script src="../js/default.js" type="text/javascript"></script>
|
|
<script src="../js/xlsx.full.min.js" type="text/javascript"></script>
|
|
<script type="text/javascript">
|
|
var ActiveCategory = "climair";
|
|
function switchCategory(element, categoryId) {
|
|
document.querySelectorAll('.category-tab').forEach(tab => tab.classList.remove('active'));
|
|
element.classList.add('active');
|
|
|
|
document.querySelectorAll('.form-section').forEach(section => section.classList.remove('active'));
|
|
document.getElementById(categoryId).classList.add('active');
|
|
|
|
ActiveCategory = categoryId;
|
|
InitCategorySpecificData();
|
|
}
|
|
feather.replace();
|
|
|
|
function InitCategorySpecificData() {
|
|
if (ActiveCategory == "climair") {
|
|
LoadClimAir();
|
|
}
|
|
}
|
|
InitCategorySpecificData();
|
|
|
|
function LoadClimAir() {
|
|
document.getElementById("climair").classList.add('loading');
|
|
const body = 'func=LoadClimAir';
|
|
get_POST_information("acquire.php", body, function(text) {
|
|
Loading(false);
|
|
document.getElementById("climair").classList.remove('loading');
|
|
let response = JSON.parse(text);
|
|
if (response.result == "ok") {
|
|
|
|
var table = document.getElementById('climair-table').getElementsByTagName('tbody')[0];
|
|
table.innerHTML = "";
|
|
|
|
response.return_list.forEach((item, i) => {
|
|
var newRow = table.insertRow();
|
|
var list_item_id = newRow.insertCell(0);
|
|
var list_amount = newRow.insertCell(1);
|
|
var list_name_in_db = newRow.insertCell(2);
|
|
|
|
list_item_id.innerHTML = item.item_id;
|
|
list_amount.innerHTML = item.amount;
|
|
list_amount.setAttribute('contenteditable', 'true');
|
|
list_name_in_db.innerHTML = item.name_in_db;
|
|
|
|
if (item.is_new) {
|
|
list_item_id.innerHTML += `<span style="margin-left: 10px; height: 20px; position: absolute; color: var(--panelcolor); font-size: 14px; font-weight: bold; margin-top: 3px; cursor: default;" title="Új termék">Új!</span>`;
|
|
}
|
|
|
|
});
|
|
|
|
} else {
|
|
GenerateAlerts("error", response.result);
|
|
}
|
|
}, function() {
|
|
Loading(false);
|
|
GenerateAlerts("error", "Hálózati hiba!");
|
|
});
|
|
}
|
|
|
|
function exportCSV(type) {
|
|
if (type == "climair") {
|
|
const table = document.getElementById('climair-table').cloneNode(true);
|
|
|
|
table.querySelectorAll('span').forEach(span => {
|
|
span.replaceWith('');
|
|
});
|
|
|
|
const workbook = XLSX.utils.table_to_book(table, {sheet: "ClimAir", raw: true});
|
|
|
|
workbook.Props = {
|
|
Author: "Szaturnusz",
|
|
Title: "ClimAir rendelés",
|
|
Company: "Szatuna Kft."
|
|
};
|
|
|
|
XLSX.writeFile(workbook, 'climair_order.xlsx');
|
|
}
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|