-<?
-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;
if(!empty($_REQUEST["store_id"])) $store_id=htmlentities($_REQUEST["store_id"]);
foreach($massiver as $m0 => $m1) {
-$name_eng=$m1["name_eng_sql"];
+$name_eng=$m1["name_eng_sql"];
foreach($_POST[$name_eng] as $m => $val) {
$val= mb_eregi_replace('[^0-9.]', '', $val);
$sql_param[$m][$name_eng]=$val;
+$log = [];
foreach($sql_param as $prod_id => $massi) {
-
$dataRow=$db::getRows("SELECT date_id, color, quantity, quantity_max FROM store_planogram_logi WHERE
store_id='$store_id' AND product_id='$prod_id' order by date_id DESC LIMIT 12");
}
-
-if($log["NULL"]["quantity"]!=$massi["quantity"])
+if(($log["NULL"]["quantity"] ?? '')!=$massi["quantity"])
{
-
+
$comment_id=(int)$_POST["comment_id"][$prod_id];
- // echo" <br>".$log["NULL"]["quantity"]." new_valiue= ".$massi["quantity"]." comment_id=$comment_id ";
-$sql="INSERT IGNORE INTO store_planogram SET ";
-$up= "store_id='$store_id', product_id='$prod_id', color=''"; foreach($massi as $pole =>$value) $up .=", $pole='$value' ";
-$sql .="$up ON DUPLICATE KEY UPDATE $up";
+ // echo" <br>".$log["NULL"]["quantity"]." new_valiue= ".$massi["quantity"]." comment_id=$comment_id ";
+$upFieldsConflict = "store_id, product_id, color";
+$upFields = $upFieldsConflict;
+$upValues = "'$store_id', '$prod_id', ''";
+$upUpdate = '';
+foreach($massi as $pole =>$value) {
+ $upFields .=", $pole";
+ $upValues .=", '$value'";
+ $upUpdate .= (!empty($upUpdate) ? ', ' : '') . "$pole='$value'";
+}
+$sql="INSERT INTO store_planogram ($upFields) VALUES ($upValues) ON CONFLICT ($upFieldsConflict) DO UPDATE SET $upUpdate";
$db::sql($sql);
// echo"<br>$sql ";
-
-$up .=", date_id='".date("Ymd")."', comment_id='$comment_id'";
-$sql="INSERT IGNORE INTO store_planogram_logi SET ";
-$sql .="$up ON DUPLICATE KEY UPDATE $up";
+$upFields .= ", date_id, comment_id";
+$upValues .= ", '".date("Ymd")."', '$comment_id'";
+$upUpdate .= ", date_id='".date("Ymd")."', comment_id='$comment_id'";
+$upFieldsConflict .= ", date_id";
+$sql="INSERT INTO store_planogram_logi ($upFields) VALUES ($upValues) ON CONFLICT ($upFieldsConflict) DO UPDATE SET $upUpdate";
$db::sql($sql);
-
-
-
- foreach($_POST["quantity__color"][$prod_id] as $color => $quan) {
- $color=trim($color);
+ foreach($_POST["quantity__color"][$prod_id] ?? [] as $color => $quan) {
+ $color=trim($color);
$quan=(int)$quan;
if(!empty($color)) {
- $sql="INSERT IGNORE INTO store_planogram SET ";
- $up= " store_id='$store_id', product_id='$prod_id', color='$color', quantity='$quan' ";
- $sql .="$up ON DUPLICATE KEY UPDATE $up";
- $db::sql($sql);
-
-
-$up .=", date_id='".date("Ymd")."', comment_id='$comment_id'";
-$sql="INSERT IGNORE INTO store_planogram_logi SET ";
-$sql .="$up ON DUPLICATE KEY UPDATE $up";
-$db::sql($sql);
-
-
-
- }
+ $upFieldsConflict = "store_id, product_id, color";
+ $upFields = $upFieldsConflict;
+ $upFields .= ', quantity, quantity_max';
+ $upValues = "'$store_id', '$prod_id', '$color', '$quan', '0'";
+ $upUpdate = "quantity='$quan'";
+ $sql = "INSERT INTO store_planogram ($upFields) VALUES ($upValues) ON CONFLICT ($upFieldsConflict) DO UPDATE SET $upUpdate";
+ $db::sql($sql);
+
+ $upFields .= ", date_id, comment_id";
+ $upValues .= ", '".date("Ymd")."', '$comment_id'";
+ $upUpdate .= ", date_id='".date("Ymd")."', comment_id='$comment_id'";
+ $upFieldsConflict .= ", date_id";
+
+ $sql="INSERT INTO store_planogram_logi ($upFields) VALUES ($upValues) ON CONFLICT ($upFieldsConflict) DO UPDATE SET $upUpdate";
+ $db::sql($sql);
+ }
}
- foreach($_POST["quantity_max__color_max"][$prod_id] as $color => $quan) {
- $color=trim($color);
- $quan=(int)$quan;
- if(!empty($color)) {
- $sql="INSERT IGNORE INTO store_planogram SET ";
- $up= " store_id='$store_id', product_id='$prod_id', color='$color', quantity_max='$quan' ";
- $sql .="$up ON DUPLICATE KEY UPDATE $up";
- $db::sql($sql);
- //echo"<br> $sql";
- }
- }
-
-}
+ foreach($_POST["quantity_max__color_max"][$prod_id] ?? [] as $color => $quan) {
+ $color=trim($color);
+ $quan=(int)$quan;
+ if(!empty($color)) {
+ $upFieldsConflict = "store_id, product_id, color";
+ $upFields = $upFieldsConflict;
+ $upFields .= ',quantity , quantity_max';
+ $upValues = "'$store_id', '$prod_id', '0', '$color', '$quan'";
+ $upUpdate = "quantity_max='$quan'";
+
+ $sql = "INSERT INTO store_planogram ($upFields) VALUES ($upValues) ON CONFLICT ($upFieldsConflict) DO UPDATE SET $upUpdate";
+ $db::sql($sql);
+ //echo"<br> $sql";
+ }
+ }
+}
}
echo'<div class="table-responsive mt-3">';
-if($save==1) echo'<form method=post>';
+if($save==1) echo'<form method=post>' . '<input type="hidden" name="_csrf" value="' . Yii::$app->request->getCsrfToken() . '" />';
echo'
<table class="table table-sm table-hover border-top text-nowrap"><thead>';
$products_group=$db::mapping("SELECT id, name FROM products_1c WHERE tip='products_group'");
-$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";
+$data2=$db::getRows($sql);
$data = array_merge($data, $data2);
-
-foreach($data as $row) {
+$providersIn = [];
+$category_idIn = [];
+foreach($data as $row) {
}
-if(!in_array($row["category_id"],$category_idIn) and !empty($products_group[$row["category_id"]])) {
+if(!in_array($row["category_id"] ?? '',$category_idIn) and !empty($products_group[$row["category_id"] ?? ''])) {
echo'<tr style="cursor:pointer;" onclick="$(\'.category__'.$row["category_id"].'\').toggle();">
<td colspan=6 class="p-2"><span class="bg-grey fs-4 p-2 w-100 d-block">+ '.$products_group[$row["category_id"]].'</span></td></tr>';
$category_idIn[]=$row["category_id"];
- $p++;
+// $p++;
}
echo"<tr style=\"display:none\" class=\"pr__".$row["provider_id"]." ";
$sel=[0=>"-выбрать причину-",1=>"перетарка",2=>"недотарка"];
foreach($sel as $sid => $sname){
echo'<option value='.$sid.'';
- if($sid==$sthis) echo' selected';
+ if($sid==($sthis ?? -1)) echo' selected';
echo'>'.$sname.'</option>';
echo"</td>";
-if($editView==1) { echo"<td><input type=checkbox name=view[".$row["id"]."] "; if($row["view"]==1) echo" checked"; echo"></td>";}
+if($editView==1) { echo"<td><input type=checkbox name=view[".$row["id"]."] "; if(($row["view"] ?? 0)==1) echo" checked"; echo"></td>";}
echo"</tr>";
if(!empty($row["colors"])) {
$color=trim($color);
$percentTxt=""; $cssClass="";
if(!empty($values_in[$row["id"]]["quantity"]) and !empty($colors_in[$row["id"]][$color])) {
-$percent=round(100*($colors_in[$row["id"]][$color]/$values_in[$row["id"]]["quantity"]),2);
+$percent= $values_in[$row["id"]]["quantity"] > 0 ? round(100*($colors_in[$row["id"]][$color]/$values_in[$row["id"]]["quantity"]),2) : 0;
$percentTxt =" ($percent%)";
$cssClass=" cssLime";
}
echo'<div class="dinlineblock'.$cssClass.'">
- <table cellpadding=0 cellspasing=0><td><input type=numeric name=quantity__color['.$row["id"].']['.$color.'] class="input-sm" value="'.$colors_in[$row["id"]][$color].'"></td>
+ <table cellpadding=0 cellspasing=0><td><input type=numeric name=quantity__color['.$row["id"].']['.$color.'] class="input-sm" value="'.($colors_in[$row["id"]][$color]??'').'"></td>
<td>'.$color.''.$percentTxt.'</td></table></div>';
//<span class="btn btn-sm btn-warning">цвет '.$row["name"].'</span>
foreach($colors_new as $color) {
$color=trim($color);
echo'<div class="dinlineblock">
- <table cellpadding=0 cellspasing=0><td><input type=numeric name='.$mass["name_eng"].'__color_max['.$row["id"].']['.$color.'] class="input-sm" value="'.$colors_in_max[$row["id"]][$color].'"></td>
+ <table cellpadding=0 cellspasing=0><td><input type=numeric name='.$mass["name_eng"].'__color_max['.$row["id"].']['.$color.'] class="input-sm" value="'.($colors_in_max[$row["id"]][$color]??'').'"></td>
<td>'.$color.'</td></table></div>';
}
echo'</div></td></tr>';
</div>
</div>*/
-
-include"templates/bottom.php";
+
+include_once dirname(__DIR__, 2) . '/templates/bottom_light.php';