-<?
-include_once("startup.php");
-include_once("inc/db.php");
-include_once("inc/base_new.php");
-include_once("inc/design_new.php");
+<?php
+include_once(dirname(__DIR__, 2) . "/startup.php");
+include_once(dirname(__DIR__, 2) . "/inc/db.php");
+include_once(dirname(__DIR__, 2) . "/inc/base_new.php");
+include_once(dirname(__DIR__, 2) . "/inc/design_new.php");
-include"templates/top.php";
+global $store_id, $date_id, $act;
+
+$act = 'store-products-fact';
if(!empty($_REQUEST["store_id"])) $store_id=htmlentities($_REQUEST["store_id"]);
//$date_id=date("Ymd");
$typeDay="monday";
if(!isset($_SESSION["show_planogram_0"])) $_SESSION["show_planogram_0"]=1;
-if($_GET["show_planogram_0"]=="hide") $_SESSION["show_planogram_0"]=0;
-if($_GET["show_planogram_0"]=="show") $_SESSION["show_planogram_0"]=1;
+if(($_GET["show_planogram_0"] ?? '')=="hide") $_SESSION["show_planogram_0"]=0;
+if(($_GET["show_planogram_0"] ?? '')=="show") $_SESSION["show_planogram_0"]=1;
-if($_REQUEST["typeDay"]) $typeDay=htmlentities($_REQUEST["typeDay"]); //"wednesday";
+if($_REQUEST["typeDay"] ?? false) $typeDay=htmlentities($_REQUEST["typeDay"]); //"wednesday";
//$date_n_id=$db::getValue("SELECT date_id FROM `store_products_fact` WHERE date_id!=? order by date_id desc LIMIT 1",[date("Ymd")]);
//f(empty($date_n_id))
-$date_n_id=$db::getValue("SELECT date_id FROM `store_products_fact` WHERE 1 order by date_id desc LIMIT 1");
+$date_n_id=$db::getValue("SELECT date_id FROM store_products_fact WHERE 1 = 1 order by date_id desc LIMIT 1");
$massivert[$date_n_id]=date('d.m.Y', strtotime($date_n_id));
if(date('l', time())=="Wednesday") $typeDay="wednesday";
-$dayLinkstArray=["monday"=>"Понедельник", "wednesday"=>"Среда" ];
+$dayLinkstArray=["monday"=>"Понедельник", "wednesday"=>"Среда"];
$typer="";
foreach($dayLinkstArray as $lnk => $name) {
exit();
}
-$data=$db::getRows("SELECT id,name, providers_arr FROM `store_orders` WHERE date_start>NOW() - interval 25 day");
+$data=$db::getRows("SELECT id,name, providers_arr FROM store_orders WHERE date_start > NOW()::date - '25 day'::interval");
+$prov = [];
foreach($data as $row) {
$pr=explode(",",$row["providers_arr"]);
foreach($pr as $prid) { if(!empty($prid)) $prov[$prid]=$prid;}
foreach($stores as $stId =>$nameStore) {
//echo"<br>магазин ".$nameStore." ";
$cnt=0; $all=0;
-$arrays=$store_planogramAllStores[$stId];
+$arrays=$store_planogramAllStores[$stId] ?? [];
if(!empty($stores[$stId])){
foreach($arrays as $productId =>$quantity) {
- if($factAll[$stId][$productId]>0 and $quantity>0) {
+ if(($factAll[$stId][$productId] ?? 0)>0 and $quantity>0) {
//echo"+ $productId = $quantity";
$cnt++;
}
$all++;
}
- $percent=round(100*($cnt/$all));
+ $percent=$all > 0 ? round(100*($cnt/$all)) : 0;
//echo" $cnt из $all =$percent %";
$storesFact[$stId]=$percent;
//не заполнившие магазины
foreach($stores as $strid=>$namestore){
-echo"<a href=\"/shipment/storeProductsFact/?store_id=$strid&date_id=$date_id\" class=\"btn btn-sm btn-";
+echo"<a href=\"/shipment/store-products-fact/?store_id=$strid&date_id=$date_id\" class=\"btn btn-sm btn-";
if($store_id==$strid) echo"warning btn"; else echo"info"; echo" m-1\">";
if($storesFact[$strid]>20) echo"<span class=\"btn btn-sm bg-success me-1\" title=\"Полнограмма заполнена на ".$storesFact[$strid]."%\">+".$storesFact[$strid]."%</span>";
$w="";
$providers=$db::mapping("SELECT id,name FROM shipment_providers ");
$k=0;
-foreach($in as $pid) { echo'<span class="tag m-1">'.$providers[$pid].'</span>'; if($k!=0) $w .=" OR"; $w .=" o.provider_id='$pid'"; $k++; }
+foreach($in ?? [] as $pid) { echo'<span class="tag m-1">'.$providers[$pid].'</span>'; if($k!=0) $w .=" OR"; $w .=" o.provider_id='$pid'"; $k++; }
if(!empty($_POST["quantity"])) {
}
$where .=")";
-$data=$db::getRows("SELECT p.id, p.name, o.provider_id, o.colors FROM products_1c_options as o, products_1c as p
-WHERE o.provider_id>0 AND p.view='1' AND p.id=o.id $where order by o.provider_id ASC, p.name ASC");
+if ($where != ' AND o.provider_id in()') {
+ $sql = "SELECT p.id, p.name, o.provider_id, o.colors FROM products_1c_options as o, products_1c as p
+WHERE o.provider_id>0 AND p.view='1' AND p.id=o.id $where order by o.provider_id ASC, p.name ASC";
+ $data = $db::getRows($sql);
+} else {
+ $data = [];
+}
$products_group=$db::mapping("SELECT id, name FROM products_1c WHERE tip='products_group'");
//foreach($data4 as $row4) $products_group[$row4["id"]]=$row4["name"];
-$data2=$db::getRows("SELECT p.id, p.name, p.parent_id, o.provider_id, o.colors, p.parent_id as category_id FROM
+$sql = "SELECT p.id, p.name, p.parent_id, o.provider_id, o.colors, p.parent_id as category_id FROM
products_class as cl
LEFT JOIN products_1c as p ON (p.view='1' AND p.parent_id=cl.category_id )
LEFT JOIN products_1c_options as o ON (p.id=o.id)
-WHERE cl.tip='related' group by p.id order by o.provider_id, p.parent_id, p.name ASC");
+WHERE cl.tip='related' group by p.id, o.provider_id, o.colors order by o.provider_id, p.parent_id, p.name ASC";
+//var_dump($sql); die;
+$data2=$db::getRows($sql);
//SELECT p.id, p.name, p.parent_id, provider_id FROM products_class as cl, products_1c as p WHERE p.parent_id=cl.category_id AND cl.tip='related' AND p.view='1' order by p.parent_id, p.name ASC
$data = array_merge($data, $data2);
$p=0;
$p2=0;
+$providersIn = [];
+$category_idIn = [];
foreach($data as $row) {
// <small>".$providers[$row["provider_id"]]."</small>
// echo"<tr style=\"display:none;\" class=\"pr__".$row["provider_id"]."\"><td colspan=4 class=\"fs-5\">".$row["name"]."</td></tr>";
-if($store_planogram[$row["id"]]>0 or $_SESSION["show_planogram_0"]==1) {
-$difference=$store_planogram[$row["id"]]-$values_in[$row["id"]]["quantity"];
+if(($store_planogram[$row["id"]] ?? 0)>0 or $_SESSION["show_planogram_0"]==1) {
+$difference=($store_planogram[$row["id"]] ?? 0)-($values_in[$row["id"]]["quantity"] ?? 0);
if(!empty($store_planogram[$row["id"]])) $difference_percent=100-round(100*$difference/$store_planogram[$row["id"]]);
else $difference_percent="";
if($p>1 or $p2>1) echo"display:none;";
-if($store_planogram[$row["id"]]==0) echo"opacity:0.9;";
-if($difference_percent==0 and $store_planogram[$row["id"]]!=0) echo"background:#ffe391;";
+if(($store_planogram[$row["id"]] ?? 0)==0) echo"opacity:0.9;";
+if($difference_percent==0 and ($store_planogram[$row["id"]] ?? 0)!=0) echo"background:#ffe391;";
if($difference_percent>=100) echo"background:#9effd2;";
if(!empty($row["category_id"])) echo" category__".$row["category_id"];
-if($store_planogram[$row["id"]]==0) echo" bg-danger2";
+if(($store_planogram[$row["id"]] ?? -1) ==0) echo" bg-danger2";
echo"\"><td class=\"text-right fs-6 pr-2\">".$row["name"]."</td>
-<td class=\"text-center tdcntr\">".$balances[$row["id"]]."</td>";
+<td class=\"text-center tdcntr\">".($balances[$row["id"]] ?? '')."</td>";
foreach($massiver as $f =>$mass) {
echo'<td title="'.$mass["title"].'">';
if($mass["type"]=="number") {
- echo'<input type=number oninput="up(this)" onchange="storeProductsFactEdit(\''.$row["id"].'\',\'NULL\')" min="0" id="color_quantity_'.$row["id"].'_NULL" name='.$mass["name_eng"].'['.$row["id"].'] class="poln '.$mass["class"].'" value="';
+ echo'<input type=number oninput="up(this)" onchange="storeProductsFactEdit(\''.$row["id"].'\',\'NULL\')" min="0" id="color_quantity_'.$row["id"].'_NULL" name='.$mass["name_eng"].'['.$row["id"].'] class="poln '.($mass["class"]??'').'" value="';
if(isset($values_in[$row["id"]][$mass["name_eng"]])) echo $values_in[$row["id"]][$mass["name_eng"]];
echo'"';
if(!empty($mass["pattern"])) echo' pattern="'.$mass["pattern"].'"';
// echo"<option value=0 "; if(empty($values_in[$row["id"]])) echo "select"; echo">-выбрать-</option>";
foreach($mass["values_arr"] as $v => $name) {
- echo"<option value=$v "; if($v==$values_in[$row["id"]][$mass["name_eng"]]) echo "selected";
+ echo"<option value=$v "; if($v==($values_in[$row["id"]][$mass["name_eng"]] ?? '')) echo "selected";
echo">$name</option>";
}
echo'</select>';
}
-echo'<td class="tdcntr bg-default">'.$store_planogram[$row["id"]].'</td>
+echo'<td class="tdcntr bg-default">'.($store_planogram[$row["id"]] ?? '').'</td>
<td class="tdcntr bg-';
if($difference>0) echo'danger2';elseif($difference<0) echo'success';else echo'default';
*/
-$_CONFIG["jscss"] .='<style>.t tbody tr td{padding:0;}
+$quantity=htmlentities($_REQUEST["quantity"] ?? 0);
+
+
+$_CONFIG["jscss"] ='<style>.t tbody tr td{padding:0;}
.t tbody tr td input.form-control{padding:0;margin:0 2px;text-align:center;font-weight:bold;}
.table tbody tr td{padding:0;}
<script>
-
-$quantity=htmlentities($_REQUEST["quantity"]);
-
-
function storeProductsFactEdit(product_id,color){
var quantity=$(\'#color_quantity_\'+product_id+\'_\'+color+\'\').val();
-
+ const param3 = $("meta[name=csrf-param]").attr("content");
+ const token3 = $("meta[name=csrf-token]").attr("content");
+
$.ajax({
- url: \'/shipment/storeProductsFactEdit/\',
+ url: \'/shipment/store-products-fact-edit/\',
method: \'post\',
dataType: \'html\',
- data: {store_id: \''.$store_id.'\', date_id: \''.$date_id.'\', quantity: quantity, product_id: product_id, color: color},
+ data: {store_id: \''.$store_id.'\', date_id: \''.$date_id.'\', quantity: quantity, product_id: product_id, color: color, [param3]:token3},
success: function(data){
$(\'#editDiv\').html(data);
}});
}
</script>';
+include_once dirname(__DIR__, 2) . '/templates/bottom_light.php';
}
-
-include"templates/bottom.php";
-
-
-