]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
add polnogram
authorAlexander Smirnov <fredeom@mail.ru>
Tue, 5 Dec 2023 14:43:04 +0000 (17:43 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Tue, 5 Dec 2023 14:43:04 +0000 (17:43 +0300)
erp24/actions/shipment/AjaxEditFieldValueAction.php [new file with mode: 0644]
erp24/actions/shipment/PolnogrammAction.php [new file with mode: 0644]
erp24/actions/shipment/StorePlanogramLogiAction.php [new file with mode: 0644]
erp24/controllers/ShipmentController.php
erp24/views/shipment/ajax-edit-field-value.php [new file with mode: 0644]
erp24/views/shipment/polnogramm.php [new file with mode: 0644]
erp24/views/shipment/store-planogram-logi.php [new file with mode: 0644]

diff --git a/erp24/actions/shipment/AjaxEditFieldValueAction.php b/erp24/actions/shipment/AjaxEditFieldValueAction.php
new file mode 100644 (file)
index 0000000..7432935
--- /dev/null
@@ -0,0 +1,12 @@
+<?php
+
+namespace yii_app\actions\shipment;
+
+use yii\base\Action;
+
+class AjaxEditFieldValueAction extends Action
+{
+    public function run() {
+        return $this->controller->render('ajax-edit-field-value');
+    }
+}
\ No newline at end of file
diff --git a/erp24/actions/shipment/PolnogrammAction.php b/erp24/actions/shipment/PolnogrammAction.php
new file mode 100644 (file)
index 0000000..090d477
--- /dev/null
@@ -0,0 +1,12 @@
+<?php
+
+namespace yii_app\actions\shipment;
+
+use yii\base\Action;
+
+class PolnogrammAction extends Action
+{
+    public function run() {
+        return $this->controller->render('polnogramm');
+    }
+}
\ No newline at end of file
diff --git a/erp24/actions/shipment/StorePlanogramLogiAction.php b/erp24/actions/shipment/StorePlanogramLogiAction.php
new file mode 100644 (file)
index 0000000..b9a9bb6
--- /dev/null
@@ -0,0 +1,12 @@
+<?php
+
+namespace yii_app\actions\shipment;
+
+use yii\base\Action;
+
+class StorePlanogramLogiAction extends Action
+{
+    public function run() {
+        return $this->controller->render('store-planogram-logi');
+    }
+}
\ No newline at end of file
index c666b1e116d376d20e89c381b6c7a03b4a2ccf6a..5ddfd04e4a4a89dd52b8848d0dc8257ad9838c5c 100755 (executable)
@@ -15,6 +15,9 @@ class ShipmentController extends \yii\web\Controller
             'division-print-edit' => \yii_app\actions\shipment\DivisionPrintEditAction::class,
             'set-division-priority' => \yii_app\actions\shipment\SetDivisionPriorityAction::class,
             'store-products-fact' => \yii_app\actions\shipment\StoreProductsFactAction::class,
+            'polnogramm' => \yii_app\actions\shipment\PolnogrammAction::class,
+            'store-planogram-logi' => \yii_app\actions\shipment\StorePlanogramLogiAction::class,
+            'ajaxEditFieldValue' => \yii_app\actions\shipment\AjaxEditFieldValueAction::class,
         ];
     }
 
diff --git a/erp24/views/shipment/ajax-edit-field-value.php b/erp24/views/shipment/ajax-edit-field-value.php
new file mode 100644 (file)
index 0000000..c5e0043
--- /dev/null
@@ -0,0 +1,141 @@
+<?php
+
+include_once(dirname(__DIR__, 2) . "/startup.php");
+include_once(dirname(__DIR__, 2) . "/inc/db.php");
+
+echo "<h1>I W H</h1>";
+die;
+
+$id=(int)$_REQUEST["id"];
+$product_id=htmlentities($_REQUEST["product_id"]);
+$store_id=htmlentities($_REQUEST["store_id"]);
+$name_eng=htmlentities($_REQUEST["name_eng"]);
+$value=htmlentities($_REQUEST["value"]);
+$provider_id=intval($_REQUEST["provider_id"]);
+$color=htmlentities($_REQUEST["color"]);
+
+
+
+if(!empty($_REQUEST["id"]) and !empty($_REQUEST["product_id"])) {
+
+    $id=(int)$_REQUEST["id"];
+    $product_id=htmlentities($_REQUEST["product_id"]);
+    $store_id=htmlentities($_REQUEST["store_id"]);
+    $name_eng=htmlentities($_REQUEST["name_eng"]);
+    $value=htmlentities($_REQUEST["value"]);
+    $provider_id=intval($_REQUEST["provider_id"]);
+    $color=htmlentities($_REQUEST["color"]);
+
+
+
+    $whereInProductsId=" in('$product_id') ";
+    $products=[$product_id=>"товар"];
+
+
+//echo"$name_eng=$value $product_id $store_id";
+    if(!empty($store_id)) {
+        global $dependent_fields;
+        $data=$db::getRows("SELECT id, dependent_fields, name_eng FROM store_orders_fields WHERE 1");
+        foreach($data as $row) {
+            $dependent_fields[$row["id"]]=explode(",",$row["dependent_fields"]);
+            $fieldRows[$row["id"]]=$row["name_eng"];
+        }
+
+        global $arrayp;
+
+        function recurs_depended($fieldId) {
+            global $dependent_fields,$arrayp;
+            $arrayp .=",".implode(",",$dependent_fields[$fieldId]);
+            foreach($dependent_fields[$fieldId] as $fieldId2)          recurs_depended($fieldId2);
+            return $arrayp;
+        }
+
+
+
+
+        $row=$db::getRow("SELECT id, tip FROM store_orders_fields WHERE name_eng=?",[$name_eng]);
+        if(is_array($row)) {
+            $tip=$row["tip"];
+            $fieldId=$row["id"];
+
+
+
+            if(0) {
+                $arrayp=recurs_depended($fieldId);
+
+
+                $arrayp = array_unique(explode(",",$arrayp));
+                $arrayp = array_diff($arrayp, array(''));
+//echo "++++".print_r($arrayp)."  ";
+
+
+                $updateFieldsArray=[];
+                echo"Пересчитываем зависимые поля и обновляем информацию в таблице store_orders_fields_data по товару $product_id универсальной функцией   ";
+                foreach($arrayp as $k) {
+
+                    if(is_numeric($k))  { echo"<br>---+++$k ".$fieldRows[$k]."";
+
+                        $updateFieldsArray[]=$fieldRows[$k];
+
+                    }
+
+                }
+
+
+
+
+
+
+                if(!empty($updateFieldsArray))
+                {
+//include_once("inc/functionsFiedlsData.php");
+
+//updateProductArrayDataField($updateFieldsArray);
+                }
+
+
+            }
+//print_r($updateFieldsArray);
+
+
+
+
+            if($tip=="string") $pole="value_text"; else $pole="value";
+
+            if(empty($color)  or $color=='undefined' or $color=='NULL') $color='';
+            if(empty($store_id) or $store_id=='undefined' or $store_id=='NULL') $store_id='';
+
+
+            $up= "product_id='$product_id', order_id='$id', store_id='$store_id', field_name='$name_eng', field_id='$fieldId', color='$color', date_update=NOW(), hand=1";
+
+            if(isset($value)) {
+
+
+                //$db::sql("DELETE FROM store_orders_fields_data WHERE product_id=? AND order_id=? AND store_id=? AND field_name=? AND field_id=? AND color=?",[$product_id,$id,$store_id,$name_eng,$fieldId,$color]);
+                //echo"удаление пустой записи";
+
+
+
+                $value_old=$db::getValue("SELECT $pole FROM store_orders_fields_data WHERE product_id=? AND order_id=? AND store_id=? AND field_name=? AND field_id=? AND color=? LIMIT 1",[$product_id,$id,$store_id,$name_eng,$fieldId,$color]);
+                $value_old=str_replace('.000','',$value_old);
+                $sql="INSERT IGNORE INTO store_orders_fields_data SET  ";
+                $up2 =" $pole='$value'";
+                $up .= ",".$up2;
+                $sql .="$up ON DUPLICATE KEY UPDATE $up2";
+                $db::sql($sql);
+//echo'сохранили '.$name_eng.' store_id='.$store_id.' '.$name_eng.'  color='.$color.' value='.$value.'  ';
+
+
+
+                $db::sql("INSERT INTO store_orders_fields_data_logi
+(product_id,field_id,order_id,store_id,color,value,value_old,date_add,admin_id)
+VALUES(?,?,?,?,?, ?, ?, NOW(), ?)", [$product_id,$fieldId,$id,$store_id,$color,$value,$value_old,$_SESSION["admin_id"]]);
+
+            }
+
+
+        } else echo'Поля '.$name_eng.' нет в таблице ';
+
+    }
+
+}
\ No newline at end of file
diff --git a/erp24/views/shipment/polnogramm.php b/erp24/views/shipment/polnogramm.php
new file mode 100644 (file)
index 0000000..b5f05dc
--- /dev/null
@@ -0,0 +1,470 @@
+<?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";
+
+$store_id = '';
+
+if(!empty($_REQUEST["store_id"])) $store_id=htmlentities($_REQUEST["store_id"]);
+
+
+//$dost=[1,2,4]; //$_SESSION["store_arr_dostup"]
+
+$k=0;
+$where="";
+foreach($_SESSION["store_arr_guid_dostup"] as $guid) {
+    if(!empty($guid)) {
+        if($k!=0) $where .=", ";
+        $where .="'$guid' ";
+        $k++;
+    }
+}
+
+if(!empty($where)) $where =" AND id in( $where )";
+
+
+if(in_array($_SESSION["group_id"],[1,10,51])) $editView=1; else $editView=0;
+
+$save=0;
+
+if(in_array($_SESSION["group_id"],[1,10])) $save=1;
+
+
+$massiver[]=["name"=>"П-ма мин.","title"=>"Полнограмма минимальная","name_eng"=>"quantity", "name_eng_sql"=>"quantity", "step"=>"1", "placeholder"=>"0"];
+$massiver[]=["name"=>"П-ма Макс.","title"=>"Полнограмма Максимальная","name_eng"=>"quantity_max", "name_eng_sql"=>"quantity_max", "background"=>"bg-danger2", "step"=>"1", "placeholder"=>"0"];
+
+
+
+echo'<h1 class="page-title mb-0 text-primary">полнограмма</h1>';
+
+$stores=$db::mapping("SELECT name,id FROM products_1c WHERE tip='city_store' AND view='1' $where  order by name ASC");
+
+
+
+foreach($stores as $strid=>$namestore){
+    echo"<a href=\"/shipment/polnogramm/?store_id=$strid\" class=\"btn btn-";
+    if(isset($store_id) && $store_id==$strid) echo"success"; else echo"info";  echo" btn-sm m-1\">$namestore</a>";
+}
+
+
+//$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 .=",";  $w .=" '$pid'"; $k++; }
+
+
+if(!empty($_POST["save_view"]) and $editView==1) {
+    $db::sql("UPDATE products_1c SET view=0 WHERE tip='products'");
+    foreach($_POST["view"] as $productId => $on) {
+        $productId=htmlentities($productId);
+        if($on=="on") $db::sql("UPDATE  products_1c SET view=1 WHERE tip='products' AND id=?",[$productId]);
+        //if(empty($on))  mess("<br> $productId = $on ");
+    }
+}
+
+
+
+if(!empty($_POST["save"])) {
+
+
+    mess("save");
+
+
+    foreach($massiver as $m0 => $m1) {
+        $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;
+
+        }
+    }
+
+
+
+
+
+    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");
+
+        $date_id="";
+        foreach($dataRow as $row){
+            if(empty($date_id)) $date_id=$row["date_id"];
+            if(empty($row["color"])) $row["color"]="NULL";
+
+            if($date_id==$row["date_id"]) {
+                $log[$row["color"]]["quantity"]=$row["quantity"];
+                $log[$row["color"]]["quantity_max"]=$row["quantity_max"];
+            }
+
+        }
+
+
+
+        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";
+            $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";
+            $db::sql($sql);
+
+
+
+
+            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);
+
+
+
+                }
+            }
+
+
+            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";
+                }
+            }
+
+        }
+
+
+    }
+
+    mess("Полнограмма для магазина сохранена");
+}
+
+echo'<div class="table-responsive mt-3">';
+
+if($save==1) echo'<form method=post>';
+
+echo'
+<table  class="table table-sm table-hover border-top text-nowrap"><thead>';
+
+foreach($massiver as $f =>$mass) {
+    echo'<th style="width:90px;">'.$mass["name"].'</th>';
+}
+echo'<th class="w-90">наименование</th>';
+
+if($editView==1)  echo'<th>видимый</th>';
+echo'</thead><tbody>';
+
+
+if (isset($store_id)) {
+    $data3 = $db::getRows("SELECT * FROM store_planogram WHERE store_id=? AND color=''", [$store_id]);
+    foreach ($data3 as $row2) {
+        $values_in[$row2["product_id"]]["quantity"] = $row2["quantity"];
+        $values_in[$row2["product_id"]]["quantity_max"] = $row2["quantity_max"];
+
+    }
+
+    $data3 = $db::getRows("SELECT * FROM store_planogram WHERE store_id=? AND color!=''", [$store_id]);
+    foreach ($data3 as $row2) {
+        $colors_in[$row2["product_id"]][$row2["color"]] = $row2["quantity"];
+        $colors_in_max[$row2["product_id"]][$row2["color"]] = $row2["quantity_max"];
+    }
+}
+
+
+
+
+$colorSort=[];
+if (isset($store_id)) {
+    $data = $db::getRows("SELECT product_id,color,posit FROM store_planogram_colors_sort WHERE store_id=?  order by product_id ASC, posit ASC", [$store_id]);
+    foreach ($data as $row) $colorSort[$row["product_id"]][] = $row["color"];
+}
+
+/*
+
+echo 'Максимальный размер данных: ' . ini_get('post_max_size') . '<br>';
+echo 'Максимальный размер файлов: ' . ini_get('upload_max_filesize') . '<br>';
+echo 'Максимальное количество переменных: ' . ini_get('max_input_vars') . '<br>';
+echo 'Максимальное время выполнения скрипта: ' . ini_get('max_execution_time') . '<br>';
+echo 'Максимальное время обработки данных: ' . ini_get('max_input_time') . '<br>';
+echo 'Память для скрипта: ' . ini_get('memory_limit') . '<br>';
+*/
+
+$providers[0]="-без поставщика-";
+
+
+$data=$db::getRows("SELECT p.id, p.name, o.provider_id, o.colors,p.view  FROM products_1c_options as o, products_1c as p  WHERE
+p.id=o.id AND o.provider_id>0 order by o.provider_id ASC, p.view DESC, p.name ASC");
+
+
+$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
+   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");
+$data = array_merge($data, $data2);
+
+
+$providersIn = [];
+$category_idIn = [];
+$p = 0;
+foreach($data as $row) {
+    if(!in_array($row["provider_id"],$providersIn)) {
+
+        if(empty($providers[$row["provider_id"]])) {
+            echo'<tr><td colspan=6 class="p-2"><span class="bg-warning fs-1 p-2 w-100 d-block">Сопутка</span></td></tr>';
+        } elseif(!empty($providers[$row["provider_id"]]))
+        {
+            echo'<tr style="cursor:pointer;" onclick="$(\'.pr__'.$row["provider_id"].'\').toggle();"><td colspan=4 class="bg-success fs-4 p-2">+ 
+ '.$providers[$row["provider_id"]].'</td></tr>';
+        }
+
+        $providersIn[]=$row["provider_id"];
+
+    }
+
+
+    if(isset($row["category_id"]) && !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++;
+    }
+
+    echo"<tr style=\"display:none\" class=\"pr__".$row["provider_id"]." ";
+    if(!empty($row["category_id"])) echo" category__".$row["category_id"];
+    if(empty($row["view"]))  echo" bg-warning";
+    echo"\">";
+    foreach($massiver as $f =>$mass) {
+        echo'<td title="'.$mass["title"].'"><input onclick="$(\'.p'.$row["id"].'\').show();" type=numeric oninput="up(this)" min="0" name='.$mass["name_eng"].'['.$row["id"].']  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"].'"';
+        if(isset($mass["step"])) echo ' step="'.$mass["step"].'"';
+        if(isset($mass["placeholder"])) echo ' placeholder="'.$mass["placeholder"].'"';
+        echo' class="poln';
+        if(isset($mass["background"])) echo ' '.$mass["background"];
+        echo'"';
+        echo'></td>';
+
+    }
+
+    echo"<td class=\"fs-5 p-1\">".$row["name"]." ";
+    //if($providers[$row["provider_id"]]) echo"<span class=\"btn btn-sm btn-indigo\">".$providers[$row["provider_id"]]."</span>";
+
+    if (isset($store_id)) {
+        echo '<a href="/shipment/store-planogram-logi/?store_id=' . $store_id . '&product_id=' . $row["id"] . '">logi</a>';
+    }
+    echo'<select class="form-control p'.$row["id"].' bg-danger" name=comment_id['.$row["id"].'] style="display:none;width:100px;">';
+    $sel=[0=>"-выбрать причину-",1=>"перетарка",2=>"недотарка"];
+    foreach($sel as $sid => $sname){
+        echo'<option value='.$sid.'';
+        if(isset($sthis) && $sid==$sthis) echo' selected';
+
+        echo'>'.$sname.'</option>';
+
+    }
+
+
+    echo'</select>';
+
+
+    echo"</td>";
+
+    if($editView==1) {  echo"<td><input type=checkbox name=view[".$row["id"]."] ";  if(isset($row["view"]) && $row["view"]==1) echo" checked";  echo"></td>";}
+    echo"</tr>";
+
+    if(!empty($row["colors"])) {
+        $colors=explode(";",$row["colors"]);
+
+
+
+////////// color
+        echo'<tr style="display:none" class="pr__'.$row["provider_id"].'"><td colspan=2 class="text-right pt-2">минимальные</td><td colspan=2>';
+        foreach($colors as $color) {
+            $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);
+                $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="'.(isset($colors_in) ? $colors_in[$row["id"]][$color] ?? '' : '').'"></td>
+  <td>'.$color.''.$percentTxt.'</td></table></div>';
+            //<span class="btn btn-sm btn-warning">цвет '.$row["name"].'</span>
+
+        }
+        echo'</div></td></tr>';
+//////////    end color
+
+
+////////// color max
+
+        if(!empty($colorSort[$row["id"]])) {
+            $colors_new=[];
+            foreach($colorSort[$row["id"]] as $color1 => $color)    $colors_new[]=$color;
+
+
+            foreach($colors as $color1 => $color) {
+                // if(!in_array($color,$colors_new))  $colors_new[]=$color;
+            }
+
+
+        } else $colors_new=$colors;
+
+
+
+
+        echo'<tr style="display:none" class="pr__'.$row["provider_id"].' bg-danger2"><td colspan=2 class="text-right pt-2"> <a href="/shipment/ProductColorSort/?product_id='.$row["id"].'&store_id='.$store_id.'" target=new class="fs-4 btn bt-info">⇅</a> максимальные</td><td colspan=2>';
+        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>
+  <td>'.$color.'</td></table></div>';
+        }
+        echo'</div></td></tr>';
+//////////    end color max
+
+
+
+
+
+    }
+
+
+}
+echo'</tbody></table>';
+
+
+
+if($save==1) {
+
+
+    echo'<button type=submit name=save value=1 class="btn btn-success btn-lg m-2">сохранить</button>';
+
+
+// даем доступ к сохранению только изранным группам
+    if($editView==1) {
+        echo'<button type=submit name=save_view value=1 class="btn btn-success btn-lg m-2">изменить показ товаров в полнограмме</button>';
+    }
+}
+
+
+if($save==1) echo'</form>';
+
+/*
+
+echo"<h2>Сопутка</h2>";
+$data=$db::getRows("SELECT p.id, p.name FROM products_class as cl, products_1c as p  WHERE
+p.parent_id=cl.category_id  AND cl.tip='related' order by p.name ASC");
+
+foreach($data as $row) {
+
+echo"<br>  ".$row["provider_id"]." ".$row["name"]." ";
+}
+
+
+*/
+
+
+echo'</div>';
+
+
+
+
+$_CONFIG["jscss"]='
+<style>.table tbody tr td{padding:0;}
+
+.input-sm{width:70px;text-align:center; margin:0 0.6rem 0 0.6rem;background:#e6e6e6; border-color:#fff; padding:2px; }
+input[type="numeric"].poln,.poln{font-weight:bolder; width:90px; font-size:1.7rem; background:lime; color:#000; border:0;padding:2px;  text-align:center;}
+.cssLime{background:#caefca;padding:0.4rem;}
+.dinlineblock{display:inline-block; float:left; margin:0.3rem; padding:0.4rem;}
+.bg-danger2,input[type="numeric"].poln.bg-danger2{background:#ffd0d0}
+
+
+</style>
+<script>
+function up(e) {
+  if (e.value.indexOf(".") != \'-1\') {
+    e.value=e.value.substring(0, e.value.indexOf(".") + 3);
+  }
+
+   
+  
+}
+
+
+';
+/*
+
+
+function ajaxProductColorSort(product_id){
+
+ jQuery(\'#modal-7\').modal(\'show\', {backdrop: \'static\'}); $(\'#modal-7 .modal-title\').text(\'Сортировка цветов по приоритету для товара\');
+
+$.ajax({
+       url: \'/shipment/ProductColorSort/\',
+       method: \'post\',
+       dataType: \'html\',
+       data: {product_id: product_id, store_id : \''.$store_id.'\'},
+       success: function(data){
+    $(\'#modal-7 .modal-body\').html(data);
+       }});
+}
+</script>
+
+
+<!-- MODAL -->
+               <div class="modal fade" id="modal-7">
+                       <div class="modal-dialog modal-dialog-centered text-center" role="document">
+                               <div class="modal-content modal-content-demo">
+                                       <div class="modal-header">
+                                               <h6 class="modal-title"></h6><button aria-label="Close" class="btn-close" data-bs-dismiss="modal" type="button"><span aria-hidden="true">&times;</span></button>
+                                       </div>
+                                       <div class="modal-body">
+
+                                       </div>
+                                       <div class="modal-footer">
+
+                                        <button class="btn btn-secondary" data-bs-dismiss="modal" type="button">закрыть</button>
+                                       </div>
+                               </div>
+                       </div>
+               </div>*/
+
+
+//include"templates/bottom.php";
+
+
+
diff --git a/erp24/views/shipment/store-planogram-logi.php b/erp24/views/shipment/store-planogram-logi.php
new file mode 100644 (file)
index 0000000..230e9e6
--- /dev/null
@@ -0,0 +1,62 @@
+<?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";
+
+$store_id = $product_id = null;
+
+if(!empty($_REQUEST["store_id"])) $store_id=htmlentities($_REQUEST["store_id"]);
+if(!empty($_REQUEST["product_id"])) $product_id=htmlentities($_REQUEST["product_id"]);
+
+$sel=[0=>"-выбрать причину-",1=>"перетарка",2=>"недотарка"];
+
+echo'<h1 class="page-title mb-0 text-primary">Логи матрицы товара на магазине</h1>  
+
+
+
+</p><div id=editDiv></div>';
+
+
+$storesAll=$db::mapping("SELECT name,id FROM products_1c WHERE tip='city_store' order by name ASC");
+
+
+
+if(!empty($store_id)) {
+    echo'<div class="table-responsive mt-3">
+
+
+история
+<table class="table">';
+    echo'<tbody>';
+
+
+    $dataRow=$db::getRow("SELECT * FROM store_planogram WHERE store_id=? AND product_id=? AND color=''",[$store_id,$product_id]);
+
+
+    echo'<tr><td>сейчас</td><td>'.$dataRow["quantity"].'</td><td>'.$dataRow["quantity_max"].'</td><td>'.$dataRow["color"].'</td></tr>';
+
+
+    $data=$db::getRows("SELECT * FROM store_planogram_logi WHERE store_id=? AND product_id=? order by date_id DESC, color ASC",[$store_id,$product_id]);
+
+
+    foreach($data as $row) {
+
+        if($row["color"]=="")
+            echo'<tr><td>'.$row["date_id"].'</td><td>'.$row["quantity"].'</td><td>'.$row["quantity_max"].'</td><td>'.$row["color"].'</td>
+<td>'.$sel[$row["comment_id"]].'</td>
+</tr>';
+
+    }
+
+
+    echo'</tbody></table>
+
+</div>';
+
+}
+
+//include"templates/bottom.php";