From: Alexander Smirnov Date: Tue, 23 Apr 2024 09:15:42 +0000 (+0300) Subject: shipment polnogram X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=1150a6769a83efa709f20501c666876181f2ada6;p=yii-erp24%2F.git shipment polnogram --- diff --git a/erp24/controllers/ShipmentController.php b/erp24/controllers/ShipmentController.php index d1b2cd3..9969ac1 100755 --- a/erp24/controllers/ShipmentController.php +++ b/erp24/controllers/ShipmentController.php @@ -23,4 +23,5 @@ class ShipmentController extends Controller public function actionStoreProductsFact() { return $this->render('store-products-fact'); } public function actionStoreProductsFactEdit() { return $this->renderPartial('store-products-fact-edit'); } public function actionAjaxField() { return $this->renderPartial('ajax-field'); } + public function actionPolnogramm() { return $this->render('polnogramm'); } } \ No newline at end of file diff --git a/erp24/modul/shipment/polnogramm.php b/erp24/modul/shipment/polnogramm.php index eca2b84..9616f9d 100644 --- a/erp24/modul/shipment/polnogramm.php +++ b/erp24/modul/shipment/polnogramm.php @@ -1,10 +1,10 @@ - $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; @@ -82,10 +82,10 @@ $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"); @@ -102,60 +102,69 @@ $log[$row["color"]]["quantity_max"]=$row["quantity_max"]; } - -if($log["NULL"]["quantity"]!=$massi["quantity"]) +if(($log["NULL"]["quantity"] ?? '')!=$massi["quantity"]) { - + $comment_id=(int)$_POST["comment_id"][$prod_id]; - // echo"
".$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"
".$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"
$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"
$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"
$sql"; + } + } +} } @@ -165,7 +174,7 @@ mess("Полнограмма для магазина сохранена"); echo'
'; -if($save==1) echo'
'; +if($save==1) echo'' . ''; echo' '; @@ -222,15 +231,17 @@ p.id=o.id AND o.provider_id>0 order by o.provider_id ASC, p.view DESC, p.name AS $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) { @@ -250,11 +261,11 @@ echo''; $category_idIn[]=$row["category_id"]; - $p++; +// $p++; } echo""-выбрать причину-",1=>"перетарка",2=>"недотарка"]; foreach($sel as $sid => $sname){ echo''; @@ -296,7 +307,7 @@ if(!in_array($row["category_id"],$category_idIn) and !empty($products_group[$row echo""; -if($editView==1) { echo"";} +if($editView==1) { echo"";} echo""; if(!empty($row["colors"])) { @@ -310,14 +321,14 @@ echo''; @@ -460,8 +471,8 @@ $.ajax({ */ - -include"templates/bottom.php"; + +include_once dirname(__DIR__, 2) . '/templates/bottom_light.php'; diff --git a/erp24/views/shipment/polnogramm.php b/erp24/views/shipment/polnogramm.php new file mode 100644 index 0000000..b691f6b --- /dev/null +++ b/erp24/views/shipment/polnogramm.php @@ -0,0 +1,5 @@ +
+ '.$products_group[$row["category_id"]].'