]> gitweb.erp-flowers.ru Git - yii-erp24/.git/commitdiff
fix data calculation among fields
authorAlexander Smirnov <fredeom@mail.ru>
Thu, 16 May 2024 17:59:59 +0000 (20:59 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Thu, 16 May 2024 17:59:59 +0000 (20:59 +0300)
31 files changed:
erp24/controllers/ShipmentController.php
erp24/modul/shipment/ajaxUpdateStoreZakup.php
erp24/modul/shipment/fields/color_percent.php
erp24/modul/shipment/fields/division_auto.php
erp24/modul/shipment/fields/division_auto_all.php
erp24/modul/shipment/fields/division_auto_need.php
erp24/modul/shipment/fields/division_auto_need_all.php
erp24/modul/shipment/fields/division_hand.php
erp24/modul/shipment/fields/division_price_summ.php
erp24/modul/shipment/fields/division_ratio.php
erp24/modul/shipment/fields/division_store.php
erp24/modul/shipment/fields/division_store_ratio.php
erp24/modul/shipment/fields/division_store_summ.php
erp24/modul/shipment/fields/division_summ.php
erp24/modul/shipment/fields/division_summ_all.php
erp24/modul/shipment/fields/goods_in_transit.php
erp24/modul/shipment/fields/order_supplier_sum.php
erp24/modul/shipment/fields/purchase_summ.php
erp24/modul/shipment/fields/quantity_storage.php
erp24/modul/shipment/fields/sales_7day_amount_division.php
erp24/modul/shipment/fields/sales_7day_division.php
erp24/modul/shipment/fields/sales_division_4weeks_cnt_avg.php
erp24/modul/shipment/fields/scheduled_delivery_cnt.php
erp24/modul/shipment/fields/storehouse_balance.php
erp24/modul/shipment/fields/storehouse_balance_store.php
erp24/modul/shipment/fields/write_offs_comments.php
erp24/modul/shipment/fields/write_offs_division.php
erp24/modul/shipment/fields/write_offs_sum.php
erp24/modul/shipment/functionsShipment.php
erp24/modul/shipment/shipment.php
erp24/views/shipment/ajax-update-store-zakup.php [new file with mode: 0644]

index 321aaf5e3c9e40d4f0cb18cf5ec63f74cf801452..22abb6431b0654ef15d594118fbac7a7fb394db4 100755 (executable)
@@ -30,4 +30,5 @@ class ShipmentController extends Controller
     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'); }
+    public function actionAjaxUpdateStoreZakup() { return $this->renderPartial('ajax-update-store-zakup'); }
 }
\ No newline at end of file
index b9b54b3b0e457bbf0bb5ba362333d410f3b3737f..1ca60e1c03f4e47577f00041df592a9cff1c02ab 100644 (file)
@@ -1,15 +1,19 @@
-<?
-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");
+
+error_reporting(E_ALL ^ E_NOTICE);
+
+global $orderId, $orderCityId, $status_order_id;
 
 if(!empty($_REQUEST["id"]))  $orderId=(int)$_REQUEST["id"];  else exit("Укажите ID закупки");
 
 
 
 
-include"modul/shipment/functionsShipment.php";
+include_once(__DIR__ . "/functionsShipment.php");
 
 
 if(empty($orderCityId)) {
@@ -254,31 +258,36 @@ case "6":    // деление по магазинам
 
 
 ob_start();
+try {
+    echo "<table><tbody>";
+    foreach ($arrayFiledsUpdate as $key => $Field) {
+        $f = "modul/shipment/fields/$Field.php";
+        if (is_file($f)) {
+            $data_up = [];
 
-echo"<table><tbody>";
-foreach($arrayFiledsUpdate as $key => $Field) {
- $f="modul/shipment/fields/$Field.php";    
-  if(is_file($f)) {
-     $data_up=[]; 
-     
-     echo"<tr><td colspan=2>";
-      include_once($f); // получаем данные в массив  $data_up
-      echo"</td></tr>";
-      
-     if(!empty($data_up)) { insert_store_orders_fields($data_up,$Field); // вносим данные в таблицу
-     }
-     echo"<tr><td class=\"text-right\"> <span class=\"btn btn-sm btn-default\">".$fieldsRows[$Field]["name"]." ".$fieldsRows[$Field]["name_eng"]."</span> </td><td><span class=\"btn btn-sm btn-success\">посчитано</span>";
-     
-     if(empty($data_up))  echo"пусто";
-     echo"</td></tr> ";
-     
-  } else {
-      
-      echo"<tr><td colspan=2> !!нет файла $f</td></tr>";
-  }
-}
-echo"</tbody></table>";
+            echo "<tr><td colspan=2>";
+            include_once($f); // получаем данные в массив  $data_up
+            echo "</td></tr>";
 
+            if (!empty($data_up)) {
+                insert_store_orders_fields($data_up, $Field); // вносим данные в таблицу
+            }
+            echo "<tr><td class=\"text-right\"> <span class=\"btn btn-sm btn-default\">" . $fieldsRows[$Field]["name"] . " " . $fieldsRows[$Field]["name_eng"] . "</span> </td><td><span class=\"btn btn-sm btn-success\">посчитано</span>";
+
+            if (empty($data_up)) echo "пусто";
+            echo "</td></tr> ";
+
+        } else {
+
+            echo "<tr><td colspan=2> !!нет файла $f</td></tr>";
+
+        }
+        echo "</tbody></table>";
+    }
+} catch (Exception $ex) {
+    echo $ex->getFile(). ' ' . $ex->getLine() . ' ' . $ex->getMessage();
+    die;
+}
 $output = ob_get_contents();
 ob_end_clean();
 
index babf1ada90cdb6bdba49664e95a13c0044f016b2..46c877599e55cd4d9d134bb351e1df5edefc88f0 100644 (file)
@@ -1,4 +1,6 @@
-<?
+<?php
+
+global $whereInProductsId, $orderStoresArrayRelation_in, $products, $orderStoresArrayRelation, $storesArrayAll, $data_up;
 
 $massivSQLColor=[];
 $inProduct=[];
@@ -17,7 +19,7 @@ foreach($data as $row) {
 
 $data4=$db::getRows("SELECT id,colors  FROM products_1c_options WHERE provider_id>0 AND colors!='' 
 AND id $whereInProductsId group by id order by id");
-
+$html = '';
  foreach($data4 as $row2) { 
   $colors=explode(";",$row2["colors"]);
   $productId=$row2["id"];
@@ -31,7 +33,7 @@ AND id $whereInProductsId group by id order by id");
  
   $html .="<table class=\"table table-sm table-bordered zak\"><thead><tr class=zag><th>цвет</th><th>магазин</th>
   <th>пол-ма</th><th>кол-во по цвету</th><th>% от полнограммы</th></tr></thead><tbody>";
-  
+
   
    foreach($colors as $color) {
     $color=trim($color); 
index 3ba94e186999b0a3f3ad1126dbf5d77d78f4abc6..3ddedc4c7c28736209810982e0fc1c1d1bebd340 100644 (file)
@@ -1,4 +1,7 @@
-<?
+<?php
+
+global $whereInProductsId, $orderStoresArrayRelation_in, $orderId, $products, $orderStoresArrayRelation;
+
 // округляет до определенного числа
 function ceilCoef($number, $rate = 1)
 {
@@ -52,9 +55,9 @@ foreach($products as $productId => $name) {
   //    echo"<br> <h2>$name</h2>";
   foreach($orderStoresArrayRelation as $storeId ) {  
       
-    $division_ratio=$FiledsDataArray["division_ratio"][$productId];
+    $division_ratio=$FiledsDataArray["division_ratio"][$productId] ?? 0;
     if(empty($division_ratio)) $division_ratio=1;
-        $d=$FiledsDataArray["division_auto_need"][$productId][$storeId] * $division_ratio; 
+        $d=($FiledsDataArray["division_auto_need"][$productId][$storeId] ?? 0) * $division_ratio;
         $data_up[$productId][$storeId][0]=ceilCoef($d,$min_lot[$productId]);
         
         
index 5ebfe85df2eaf3fa16b1334003ad8266721824d7..1092e4853c116a24f228a60b3830ccbf1fbb8f85 100644 (file)
@@ -1,18 +1,18 @@
-<?
+<?php
 
-  $data=$db::getRows("SELECT product_id,sum(value) as value,color FROM store_orders_fields_data WHERE 
+global $orderId, $orderStoresArrayRelation_in, $data_up;
+
+  $sql = "SELECT product_id,sum(value) as value,color FROM store_orders_fields_data WHERE 
   field_name='division_auto' AND value>0
   AND store_id $orderStoresArrayRelation_in
-  AND order_id='$orderId'  AND store_id!='' group by product_id");
-     foreach($data as $row) {
-         
-       if(empty($row["color"]))  {
-       $data_up[$row["product_id"]][0][0] +=(int)$row["value"];
-       }
-       else {
-        $data_up[$row["product_id"]][0][$row["color"]] +=(int)$row["value"];   
-           
-       }
-       
-       
-     }  
+  AND order_id='$orderId'  AND store_id!='' group by product_id, color";
+//    var_dump($sql); die;
+    $data=$db::getRows($sql);
+
+    foreach($data as $row) {
+        if(empty($row["color"]))  {
+            $data_up[$row["product_id"]][0][0] = ($data_up[$row["product_id"]][0][0] ?? 0) + (int)$row["value"];
+        } else {
+            $data_up[$row["product_id"]][0][$row["color"]] = ($data_up[$row["product_id"]][0][$row["color"]] ?? 0) + (int)$row["value"];
+        }
+    }
index 21e51f3d68a82b9a05a86c13dce03eebb680357d..3ea04437564285cd5a53decb9b7f0a9b778a1f6a 100644 (file)
@@ -1,4 +1,6 @@
-<?
+<?php
+
+global $orderId, $orderStoresArrayRelation, $products, $storesOrderArray;
 
 echo"<h1>division_auto_need</h1>";
 
@@ -24,8 +26,8 @@ foreach($dataF as $row) {
 //print_r($FiledsData);
 $storesArray[0]="Всего";
 foreach($products as $product_id => $name) {
-     $min_order  = $FiledsDataArray["min_order"][$product_id][""];   
-     $min_lot=$FiledsDataArray["min_lot"][$product_id][""]
+     $min_order  = $FiledsDataArray["min_order"][$product_id][""] ?? 0;
+     $min_lot=$FiledsDataArray["min_lot"][$product_id][""] ?? 0;
      echo"<div>
      <h6 class=\"fs-3\">$name</h6>  формула = продажи_7_дней + запас_на_2дня + полнограмма - продажи_7дней
      <b> минимальный заказ $min_order шт., квант (мин. лот деления) = $min_lot</b> ";
@@ -35,9 +37,9 @@ foreach($products as $product_id => $name) {
  <thead class=\"table-light\"><tr><td>магазин</td><td>продажи 7 дней</td> <td>запас 2 дня</td>
  <td>полнограмма</td> <td>потребность</td></tr></thead><tbody>";
   foreach($orderStoresArrayRelation as $storeId) {  
-    $sale_7day = $FiledsDataArray["sales_cnt"][$product_id][$storeId];   
-   $quantity = $FiledsDataArray["quantity"][$product_id][$storeId];   
-   $quantity_fact =$FiledsDataArray["quantity_fact"][$product_id][$storeId];
+    $sale_7day = $FiledsDataArray["sales_cnt"][$product_id][$storeId] ?? 0;
+   $quantity = $FiledsDataArray["quantity"][$product_id][$storeId] ?? 0;
+   $quantity_fact =$FiledsDataArray["quantity_fact"][$product_id][$storeId] ?? 0;
   // считаем запас на 2 дня
    $sale_2day=ceil(2*($sale_7day/7));
     // если факт продаж будет больше чем факт - перприсваеиваем
@@ -55,10 +57,10 @@ foreach($products as $product_id => $name) {
      
 
        $data_up[$product_id][$storeId][0] =$zakaz;
-       $data_up[$product_id][0][0] +=$zakaz; 
+       $data_up[$product_id][0][0] = ($data_up[$product_id][0][0] ?? 0) + $zakaz;
 
 // формула = продажи_7_дней + запас_на_2дня + полнограмма - продажи_7дней
-     echo"<tr><td>".$storesOrderArray[$storeId]."</td><td>$sale_7day</td>
+     echo"<tr><td>".($storesOrderArray[$storeId]??'')."</td><td>$sale_7day</td>
      <td>$sale_2day</td><td>$quantity</td><td>";
      if(!empty($zakaz)) echo"<span class=\"btn btn-sm btn-wating\">$zakaz</span>";
    
index 57b56b236490cfa22a0dfb1ceae29a69371714a4..cfbb915c3ad5ee63b00be541774eb88286a39436 100644 (file)
@@ -1,18 +1,17 @@
-<?
+<?php
 
-  $data=$db::getRows("SELECT product_id,sum(value) as value,color FROM store_orders_fields_data WHERE 
+global $orderId, $orderStoresArrayRelation_in, $data_up;
+
+  $sql = "SELECT product_id,sum(value) as value,color FROM store_orders_fields_data WHERE 
   field_name='division_auto_need' AND value>0
   AND store_id $orderStoresArrayRelation_in
-  AND order_id='$orderId'  AND store_id!='' group by product_id");
-     foreach($data as $row) {
-         
-       if(empty($row["color"]))  {
-       $data_up[$row["product_id"]][0][0] +=(int)$row["value"];
-       }
-       else {
-        $data_up[$row["product_id"]][0][$row["color"]] +=(int)$row["value"];   
-           
+  AND order_id='$orderId'  AND store_id!='' group by product_id, color";
+//  var_dump($sql); die;
+  $data=$db::getRows($sql);
+    foreach($data as $row) {
+       if (empty($row["color"]))  {
+            $data_up[$row["product_id"]][0][0] = ($data_up[$row["product_id"]][0][0] ?? 0) + (int)$row["value"];
+       } else {
+            $data_up[$row["product_id"]][0][$row["color"]] = ($data_up[$row["product_id"]][0][$row["color"]] ?? 0) + (int)$row["value"];
        }
-       
-       
-     }  
+    }
index a6cc0ebbb898acde518ab7e9b105159647f26498..d9de13714c131f2ae7f1a76bea9d6ca65557cb5c 100644 (file)
@@ -1,4 +1,4 @@
-<?
+<?php
 
   $data=$db::getRows("SELECT product_id,sum(value) as value,color FROM store_orders_fields_data WHERE 
   field_name='division_hand' AND value>0
@@ -6,6 +6,6 @@
   AND order_id='$orderId'  AND store_id!=''  group by product_id, store_id,color");
      foreach($data as $row) {
         if(empty($row["color"])) $row["color"]=0;
-        $data_up[$row["product_id"]][0][$row["color"]] +=(int)$row["value"];        
-        $data_up[$row["product_id"]][0][0] +=(int)$row["value"];
+        $data_up[$row["product_id"]][0][$row["color"]] = ($data_up[$row["product_id"]][0][$row["color"]] ?? 0) + (int)$row["value"];
+        $data_up[$row["product_id"]][0][0] = ($data_up[$row["product_id"]][0][0] ?? 0) + (int)$row["value"];
      }  
\ No newline at end of file
index 624115d66aca06e8b63b94b9a8169e9543dcc6d7..331b2416b87f65397d537fce8fa83fe146bbfaeb 100644 (file)
@@ -1,4 +1,6 @@
-<?
+<?php
+
+global $orderId, $orderStoresArrayRelation_in, $products, $orderStoresArrayRelation, $data_up, $FiledsDataArray;
 
 $prices=[];
 
@@ -32,15 +34,15 @@ foreach($dataF as $row) {
 
 
 
-
+$data_up = $data_up ?? [];
 //пробегаемся по всем продуктам 
 foreach($products as $productId => $name) {
-      foreach($orderStoresArrayRelation as $storeId ) {  
-        $division_summ=$FiledsDataArray["division_summ"][$productId][$storeId];
+      foreach($orderStoresArrayRelation ?? [] as $storeId ) {
+
+        $division_summ = $FiledsDataArray["division_summ"][$productId][$storeId] ?? 0;
 
         $s=round($prices[$productId] * $division_summ);
-        $data_up[$productId][0][0] +=$s ;
-        $data_up[$productId][$storeId][0] =$s ;        
+        $data_up[$productId][0][0] = ($data_up[$productId][0][0] ?? 0) + $s;
+        $data_up[$productId][$storeId][0] = $s;
       }
-
 }
\ No newline at end of file
index 95dcb50acec35fd0e46a27326936c10d1f0fb5f1..8d59ed6defe9d8df35952a2c01c7de32caaf14f1 100644 (file)
@@ -1,4 +1,6 @@
-<?
+<?php
+
+global $orderId, $products, $productsColorsArray;
 
 $FiledsDataArray=[];
 $dataF=$db::getRows("SELECT field_name, product_id, store_id, value,color
@@ -27,13 +29,13 @@ if($division_auto_need_all > $quantity_warehouseman_fact) {
 $division_ratio=round($quantity_warehouseman_fact/$division_auto_need_all,2);    
     
 $html .="<font color=red>-меньше!</font>";
-$html .=" применяем коэффициент $division_ratio = ".$FiledsDataArray["division_ratio"][$productId][0]." ";    
+$html .=" применяем коэффициент $division_ratio = ".($FiledsDataArray["division_ratio"][$productId][0] ?? '')." ";
     
 }
  $data_up[$productId][0][0] =$division_ratio;
  
  
-        foreach($productsColorsArray[$productId] as $color) {
+        foreach($productsColorsArray[$productId] ?? [] as $color) {
          $color=trim($color);  
            $division_ratio=1;
            if($FiledsDataArray["division_auto_need_all"][$productId][$color] > $FiledsDataArray["quantity_warehouseman_fact"][$productId][$color]) { 
index 2b363bacf1ac6bb257883ce87bb795a3f4ccb6cf..d9de0b26b05b616415b0dfe77653a191ff73d816 100644 (file)
@@ -54,9 +54,9 @@ foreach($products as $productId => $name) {
   foreach($orderStoresArrayRelation as $storeId ) {  
   // $s = $FiledsDataArray["division_store"][$productId][$storeId][0];
    
-   $ceil=$FiledsDataArray["quantity_zakup_new"][$productId][$storeId][0]  * $FiledsDataArray["division_store_ratio"][$productId][0][0];
+   $ceil = ($FiledsDataArray["quantity_zakup_new"][$productId][$storeId][0] ?? 0) * ($FiledsDataArray["division_store_ratio"][$productId][0][0] ?? 0);
    //округляем до мини мального лота деления
-   $ceil=roundCoefficientLot2($ceil,$FiledsDataArray["min_lot"][$productId][0][0]);
+   $ceil=roundCoefficientLot2($ceil,$FiledsDataArray["min_lot"][$productId][0][0] ?? 0);
    
     $data_up[$productId][$storeId][0] =$ceil;  
  
@@ -66,7 +66,7 @@ foreach($products as $productId => $name) {
     
     $data_up[$productId][0][0] +=$ceil ; 
       // цикл по цвету товара
-       foreach($productsColorsArray[$productId] as $color) {
+       foreach($productsColorsArray[$productId] ?? [] as $color) {
        $color=trim($color);   
        
       $ceil=$FiledsDataArray["quantity_zakup_new"][$productId][$storeId][$color]  * $FiledsDataArray["division_store_ratio"][$productId][0][$color];
index ab736a4a7c27475b7bde9a4f870b6f711924e31e..f2066253838311ce1099bf4da779bdb33b4d6984 100644 (file)
@@ -1,5 +1,6 @@
-<?
+<?php
 
+global $orderId, $orderStoresArrayRelation_in, $products, $productsColorsArray;
 
 //echo"<h5>Коэффицент деления division_stpore_ratio</h5>";
 $FiledsDataArray=[];
@@ -28,7 +29,7 @@ $potreb=[];
 
 //пробегаемся по всем продуктам 
 foreach($products as $productId => $name) {
- $potreb_all=$potreb[$productId][0];
+ $potreb_all = $potreb[$productId][0] ?? 0;
  $quantity_warehouseman_fact=$FiledsDataArray["quantity_warehouseman_fact"][$productId][0];
 
 
@@ -43,7 +44,7 @@ $html .="коэффициент <font color=red>$division_store_ratio</font>";
  $data_up[$productId][0][0] =$division_store_ratio;
  
  
-        foreach($productsColorsArray[$productId] as $color) {
+        foreach($productsColorsArray[$productId] ?? [] as $color) {
          $color=trim($color);  
            $division_store_ratio=1;
            if($potreb[$productId][$color] > $FiledsDataArray["quantity_warehouseman_fact"][$productId][$color]) { 
index 8aa1e3e09729fb6186a3c1fd18c29fa1a270e042..ec6dae012e336087b0f1f12d22b177ec0e005207 100644 (file)
@@ -1,4 +1,7 @@
-<?
+<?php
+
+global $orderId, $orderStoresArrayRelation_in, $products, $orderStoresArrayRelation, $productsColorsArray;
+
 $data_up=[];
  $FiledsDataArray=[];
 $dataF=$db::getRows("SELECT field_name, product_id, store_id, value,color
@@ -21,11 +24,11 @@ foreach($products as $productId => $name) {
   //  $data_up[$productId][$storeId][0] +=$s ; 
    // $data_up[$productId][0][0] +=$s ; 
     
-       foreach($productsColorsArray[$productId] as $color) {
+       foreach($productsColorsArray[$productId] ?? [] as $color) {
        $color=trim($color);   
-       $s = $FiledsDataArray["division_store"][$productId][$storeId][$color] + $FiledsDataArray["division_store_hand"][$productId][$storeId][$color];
-       $data_up[$productId][$storeId][$color] +=$s ; 
-       $data_up[$productId][0][$color] +=$s ; 
+       $s = ($FiledsDataArray["division_store"][$productId][$storeId][$color] ?? 0) + ($FiledsDataArray["division_store_hand"][$productId][$storeId][$color] ?? 0);
+       $data_up[$productId][$storeId][$color] = ($data_up[$productId][$storeId][$color] ?? 0) + $s;
+       $data_up[$productId][0][$color] = ($data_up[$productId][0][$color] ?? 0) + $s;
        
       
       
@@ -62,9 +65,9 @@ foreach($dataF as $row) {
 foreach($products as $productId => $name) {
 //  echo"<br> <h2>$name</h2>";
   foreach($orderStoresArrayRelation as $storeId ) {  
-  $s = $FiledsDataArray["division_store"][$productId][$storeId][0] + $FiledsDataArray["division_store_hand"][$productId][$storeId][0];
-  $data_up[$productId][$storeId][0] +=(int)$s ; 
-  $data_up[$productId][0][0] +=(int)$s ; 
+  $s = ($FiledsDataArray["division_store"][$productId][$storeId][0] ?? 0) + ($FiledsDataArray["division_store_hand"][$productId][$storeId][0] ?? 0);
+  $data_up[$productId][$storeId][0] = ($data_up[$productId][$storeId][0] ?? 0) + (int)$s;
+  $data_up[$productId][0][0] = ($data_up[$productId][0][0] ?? 0) + (int)$s;
   }
 }
 
index 93d1af10afef31ec251c2a85b3c765d61f510296..b3dd2c7580fefae503da903e02eab7fdb7c8e651 100644 (file)
@@ -1,4 +1,6 @@
-<?
+<?php
+
+global $orderId, $orderStoresArrayRelation_in, $products, $orderStoresArrayRelation;
 
  $FiledsDataArray=[];
 $dataF=$db::getRows("SELECT field_name, product_id, store_id, value
@@ -19,9 +21,9 @@ foreach($products as $productId => $name) {
     
 
       
-     $s = $FiledsDataArray["division_auto"][$productId][$storeId] + $FiledsDataArray["division_hand"][$productId][$storeId];
-    $data_up[$productId][$storeId][0] +=$s ; 
-    $data_up[$productId][0][0] +=$s ; 
+     $s = ($FiledsDataArray["division_auto"][$productId][$storeId] ?? 0) + ($FiledsDataArray["division_hand"][$productId][$storeId] ?? 0);
+    $data_up[$productId][$storeId][0] = ($data_up[$productId][$storeId][0] ?? 0) + $s ;
+    $data_up[$productId][0][0] = ($data_up[$productId][0][0] ?? 0) + $s ;
     
 
     
index 7657af5cf1ad7206d9cbff1bb6fcff0a95acbab4..1de15abddbccf59407497a1c75e9cca64d958d8c 100644 (file)
@@ -1,11 +1,16 @@
-<?
+<?php
+
+global $orderId, $orderStoresArrayRelation_in, $data_up;
+
   $data=$db::getRows("SELECT product_id,sum(value) as value,color FROM store_orders_fields_data WHERE 
   field_name='division_summ' AND value>0
   AND store_id $orderStoresArrayRelation_in
   AND order_id='$orderId'  
-  AND store_id!='' group by product_id");
+  AND store_id!='' group by product_id, color");
      foreach($data as $row) {
-         
-      if(empty($row["color"])) $data_up[$row["product_id"]][0][0] +=(int)$row["value"];
-      else $data_up[$row["product_id"]][0][$row["color"]] +=(int)$row["value"];
-     }  
+         if (empty($row["color"])) {
+             $data_up[$row["product_id"]][0][0] = ($data_up[$row["product_id"]][0][0] ?? 0) + (int)$row["value"];
+         } else {
+             $data_up[$row["product_id"]][0][$row["color"]] = ($data_up[$row["product_id"]][0][$row["color"]] ?? 0) + (int)$row["value"];
+         }
+     }
index de2dea80e431d4f42cb77b246cd9fb9dcf6c1c5f..f7ccc56469951be8432762af657abca510e40ea1 100644 (file)
@@ -1,8 +1,12 @@
-<?
+<?php
 
-if($order_date_add!='000-00-00') {
-$dataOrders2=$db::getRows("SELECT  id FROM store_orders
-WHERE date_add<='$order_date_add' AND date_add>='$order_date_add' - interval 7 day");    
+global $orderId, $order_date_add;
+
+if(!empty($order_date_add) && $order_date_add!='000-00-00') {
+$sql = "SELECT  id FROM store_orders
+WHERE date_add<='$order_date_add' AND date_add>='$order_date_add' - interval 7 day";
+var_dump($sql); die;
+$dataOrders2=$db::getRows($sql);
 
 //echo"<b>Товар в пути участвуют заказы:</b>";
 $k=0; $w_orders="";
index 5bb31fffc42ecd8e30cbe8bc168cf001e66ed6f3..d244444f275475e0b7c2cdae44e0f529c0904a5e 100644 (file)
@@ -1,14 +1,19 @@
-<?
+<?php
+
+global $orderId;
 
   $prices=[];
-  $data=$db::getRows("SELECT product_id, value FROM store_orders_fields_data WHERE  field_name='purchase_price' AND value>0  AND order_id='$orderId'  AND store_id='' AND color='' group by product_id");
+  $sql = "SELECT product_id, value FROM store_orders_fields_data WHERE  field_name='purchase_price' AND value>0  AND order_id='$orderId'  AND store_id='' AND color='' group by product_id, value";
+//  var_dump($sql); die;
+  $data=$db::getRows($sql);
      foreach($data as $row) $prices[$row["product_id"]]=$row["value"];
-
-  $data=$db::getRows("SELECT product_id,sum(value) as value, store_id FROM store_orders_fields_data WHERE field_name='quantity_zakup_new' AND value>0
-  AND order_id='$orderId' AND color='' AND store_id!='' group by product_id,store_id");
+  $sql = "SELECT product_id,sum(value) as value, store_id FROM store_orders_fields_data WHERE field_name='quantity_zakup_new' AND value>0
+  AND order_id='$orderId' AND color='' AND store_id!='' group by product_id,store_id";
+//  var_dump($sql); die;
+  $data=$db::getRows($sql);
      foreach($data as $row) {
        $s=intval($row["value"] * $prices[$row["product_id"]]);
       //  echo"<br> ".$row["product_id"]."  ".$row["value"]." * ".$prices[$row["product_id"]]." = $s ";
        $data_up[$row["product_id"]][$row["store_id"]][0] =$s;
-       $data_up[$row["product_id"]][0][0] +=$s;
+       $data_up[$row["product_id"]][0][0] = ($data_up[$row["product_id"]][0][0] ?? 0) + $s;
    }  
index 51e5c359be7e99aa2164ca5c962a094dcd9708f7..e17f955cdf1e067ce56d65ab241b713ff390df68 100644 (file)
@@ -1,4 +1,7 @@
-<?
+<?php
+
+global $orderId, $products, $FiledsDataArray;
+
 $FiledsDataArray=[];
 $dataF=$db::getRows("SELECT field_name, product_id, value
 FROM store_orders_fields_data 
index acbc9db91c577ec7299acefbe90a10d7acf32936..b6ffdeb872b6eb312f32f7303762a466dfdfd0b0 100644 (file)
@@ -1,9 +1,11 @@
-<?
+<?php
+
+global $whereInProductsId, $orderStoresArrayRelation_in, $data_up;
 
 $data2=$db::getRows("SELECT product_id,store_id,quantity FROM balances WHERE quantity>0 
 AND  product_id $whereInProductsId 
 AND store_id $orderStoresArrayRelation_in");
 foreach($data2 as $row2) {
-$data_up[$row2["product_id"]][$row2["store_id"]][0]+=$row2["quantity"];
-$data_up[$row2["product_id"]][0][0]+=$row2["quantity"];
+$data_up[$row2["product_id"]][$row2["store_id"]][0] = ($data_up[$row2["product_id"]][$row2["store_id"]][0] ?? 0) + $row2["quantity"];
+$data_up[$row2["product_id"]][0][0] = ($data_up[$row2["product_id"]][0][0] ?? 0) + $row2["quantity"];
 }
\ No newline at end of file
index 6ea118b8268831c8dc2526b4a1bb788560b46d21..e26d455385f1dcad9197ff9dd29eaaf74b9381a4 100644 (file)
@@ -1,7 +1,10 @@
-<?
+<?php
+
+global $productGroupArray, $configGroupProducts, $orderStoresArrayRelation_in, $date_start_division;
+
 // пробегаем по каждому типу товара и группируем запросы к БД
 foreach($productGroupArray as $group =>$pArray) {   
-$day_sales=$configGroupProducts[$group]["day_sales"];
+$day_sales=$configGroupProducts[$group]["day_sales"] ?? 0;
 //echo"<br>+++ <h1>$group дней $day_sales</h1> "; 
 
 //собираем условие по выборке товаров
@@ -10,18 +13,20 @@ $j=0;
 foreach($pArray as $prodId) {if($j>0) $whereInProductsId_in .=",";      $whereInProductsId_in .="'$prodId'";   $j++;}  
 
 if(!empty($whereInProductsId_in)) {      
-$data2=$db::getRows("SELECT i.product_id, sum(if(s.operation='Продажа',i.summ,0)) as sale, s.store_id_1c as store_id, sum(if(s.operation='Возврат', i.summ ,0)) as vozvr
+$sql = "SELECT i.product_id, sum(CASE WHEN s.operation='Продажа' THEN i.summ ELSE 0 END) as sale, s.store_id_1c as store_id, sum(CASE WHEN s.operation='Возврат' THEN i.summ ELSE 0 END) as vozvr
 FROM sales as s, sales_products as i 
 WHERE s.id=i.check_id 
 AND i.product_id in($whereInProductsId_in) 
 AND s.store_id_1c $orderStoresArrayRelation_in
- AND s.date<='$date_start_division 00:00:00' AND s.date>='$date_start_division' -interval $day_sales day group BY i.product_id, s.store_id, s.operation");    
+ AND s.date<='$date_start_division 00:00:00' AND s.date>='$date_start_division'::date -interval '$day_sales day' group BY i.product_id, s.store_id, s.operation, s.store_id_1c";
+//var_dump($sql); die;
+$data2=$db::getRows($sql);
 foreach($data2 as $row2) { 
 $sale=$row2["sale"]-$row2["vozvr"];
 $sale=(int)$sale;
 if(!empty($sale)) {
 $data_up[$row2["product_id"]][$row2["store_id"]][0]=$sale;
-$data_up[$row2["product_id"]][0][0] +=$sale; 
+$data_up[$row2["product_id"]][0][0] = ($data_up[$row2["product_id"]][0][0] ?? 0) + $sale;
 }
 }
 }
index bdaa8dc5a3ad32badda62567d1322364ec2d1caf..3884e7faaa6d4dabe2584ab0a65735298ed027e8 100644 (file)
@@ -1,8 +1,10 @@
-<?
+<?php
+
+global $productGroupArray, $configGroupProducts, $orderStoresArrayRelation_in, $date_start_division;
 
 // пробегаем по каждому типу товара и группируем запросы к БД
-foreach($productGroupArray as $group =>$pArray) {   
-$day_sales=$configGroupProducts[$group]["day_sales"];
+foreach($productGroupArray as $group =>$pArray) {
+$day_sales=$configGroupProducts[$group]["day_sales"] ?? 0;
 //echo"<br>+++ <h1>$group дней $day_sales</h1> "; 
 
 //собираем условие по выборке товаров
@@ -12,19 +14,19 @@ foreach($pArray as $prodId) {if($j>0) $whereInProductsId_in .=",";      $whereIn
 
 if(!empty($whereInProductsId_in)) {    
     
-$data2=$db::getRows("SELECT i.product_id, s.store_id_1c as store_id, sum(if(s.operation='Продажа',i.quantity,0)) as sale_cnt,
-sum(if(s.operation='Возврат',i.quantity,0)) as vozvr_cnt
+$data2=$db::getRows("SELECT i.product_id, s.store_id_1c as store_id, sum(CASE WHEN s.operation='Продажа' THEN i.quantity ELSE 0 END) as sale_cnt,
+sum(CASE WHEN s.operation='Возврат' THEN i.quantity ELSE 0 END) as vozvr_cnt
 FROM sales as s, sales_products as i 
 WHERE s.id=i.check_id AND  i.product_id  in($whereInProductsId_in)  
 AND s.store_id_1c $orderStoresArrayRelation_in
 AND s.date<='$date_start_division 00:00:00'
-AND s.date>='$date_start_division' -interval $day_sales day group BY i.product_id, s.store_id_1c, s.operation  ");    
+AND s.date>='$date_start_division'::date -interval '$day_sales day' group BY i.product_id, s.store_id_1c, s.operation  ");
   foreach($data2 as $row2) { 
    $cnt=$row2["sale_cnt"]-$row2["vozvr_cnt"];
    $cnt=(int)$cnt;
     if(!empty($cnt)) {
       $data_up[$row2["product_id"]][$row2["store_id"]][0]=$cnt;
-      $data_up[$row2["product_id"]][0][0] +=$cnt; 
+      $data_up[$row2["product_id"]][0][0] = ($data_up[$row2["product_id"]][0][0] ?? 0) + $cnt;
    }
  }
 } 
index 1fbb25acdaa96120966b919df0a760378f8486ba..30f578cb8f08947e1c9b72bbd0f80bc6de0d9f1f 100644 (file)
@@ -12,7 +12,7 @@ AND s.date<='$date_start_division 00:00:00' AND s.date>=('$date_start_division':
   foreach($data2 as $row2) { 
    $cnt=round(($row2["sale_cnt"]-$row2["vozvr_cnt"])/4);
     if(!empty($cnt)) {
-      $data_up[$row2["product_id"]][$row2["store_id"]][0] +=$cnt;
-      $data_up[$row2["product_id"]][0][0] +=$cnt; 
+      $data_up[$row2["product_id"]][$row2["store_id"]][0] =($data_up[$row2["product_id"]][$row2["store_id"]][0] ?? 0) + $cnt;
+      $data_up[$row2["product_id"]][0][0] =($data_up[$row2["product_id"]][0][0] ?? 0) + $cnt;
    }
  }
index fbc2259309e0bda22b55714aef367ca22a1287f9..18047680d393aad29d08acc37f96711a78ab48a4 100644 (file)
@@ -1,8 +1,12 @@
-<?
+<?php
+
+global $whereInProductsId;
+
 /* scheduled_delivery_cnt
 «Плановая поставка» новая ячейка
 Берем закупки со статусом «Товар в пути» - с этим товаром - на каждый магазин сколько заказа магазин из ячееки «Заказ закупщика NEW»  AND date_start <='$date_start_sale' AND date_start>='$date_start_sale' -interval 27 day
 */
+
 $data=$db::getRows("SELECT id FROM store_orders WHERE status=5");
 $whereInOrderId="";
 $i=0;
@@ -14,12 +18,14 @@ foreach($data as $row) {
 
 if(!empty($whereInOrderId)) {
 
-$data=$db::getRows("SELECT product_id, store_id, value FROM store_orders_fields_data WHERE 
+$sql = "SELECT product_id, store_id, value FROM store_orders_fields_data WHERE 
 order_id IN ($whereInOrderId) AND product_id $whereInProductsId 
-AND field_name='quantity_zakup_new' AND color='' AND value>0 group by product_id, store_id");
+AND field_name='quantity_zakup_new' AND color='' AND value>0 group by product_id, store_id, value";
+//var_dump($sql); die;
+$data=$db::getRows($sql);
   foreach($data as $row) {
   $data_up[$row["product_id"]][$row["store_id"]]["0"]=$row["value"];
-  $data_up[$row["product_id"]][0]["0"] +=$row["value"];     // echo"<br> ".$row["product_id"]." =  store_id=".$row["store_id"]."  ".$row["value"]."";   
+  $data_up[$row["product_id"]][0]["0"] = ($data_up[$row["product_id"]][0]["0"] ?? 0) + $row["value"];     // echo"<br> ".$row["product_id"]." =  store_id=".$row["store_id"]."  ".$row["value"]."";
   
   }
 }
\ No newline at end of file
index 71a76dc6654569317111e5c51c0f2216a9fcf394..b4a55a811cef3088b1b8e1e4fc309bb731e167bb 100644 (file)
@@ -1,5 +1,6 @@
-<?
+<?php
 
+global $orderId, $products, $productsColorsArray;
 
 $FiledsDataArray=[];
 $dataF=$db::getRows("SELECT field_name, product_id, value, color
@@ -19,7 +20,7 @@ foreach($dataF as $row) {
 foreach($products as $productId => $nameProduct) {
    // echo"<br>$nameProduct ".$FiledsDataArray["quantity_warehouseman_fact"][$productId][0] ." -  ".$FiledsDataArray["division_store_summ"][$productId][0]."";
    $data_up[$productId][0][0]=$FiledsDataArray["quantity_warehouseman_fact"][$productId][0] -  $FiledsDataArray["division_summ"][$productId][0];
-         foreach($productsColorsArray[$productId] as $color) {
+         foreach($productsColorsArray[$productId] ?? [] as $color) {
          $color=trim($color);  
          $data_up[$productId][0][$color]=$FiledsDataArray["quantity_warehouseman_fact"][$productId][$color] -  $FiledsDataArray["division_summ"][$productId][$color];
          } 
index 843b92210b72504eddfffa318995835bd3050e45..77b13ffca3c5f9ffaa40d0594b5c664e51162e69 100644 (file)
@@ -38,7 +38,7 @@ foreach($dataF as $row) {
 
 //echo"<h1>Storehouse_balance</h1>";
 foreach($products as $productId => $nameProduct) {
-          foreach($productsColorsArray[$productId] as $color) {
+          foreach($productsColorsArray[$productId] ?? [] as $color) {
          $color=trim($color);  
          $data_up[$productId][0][$color]=$FiledsDataArray["quantity_warehouseman_fact"][$productId][$color] -  $FiledsDataArray["division_store_summ"][$productId][$color];
          } 
index a985429f91a69cf336c47c9155f635a0f1b6111b..27ee3d6587bad13b2b75dd98c4bc940fc9791235 100644 (file)
@@ -1,7 +1,9 @@
-<?
+<?php
 
-foreach($productGroupArray as $group =>$pArray) {   
-  $periodDaysStats=$configGroupProducts[$group]["day_write_offs"];
+global $productGroupArray, $configGroupProducts, $orderStoresArrayRelation_in, $data_up;
+
+foreach($productGroupArray as $group =>$pArray) {
+  $periodDaysStats=$configGroupProducts[$group]["day_write_offs"] ?? 0;
    //echo"<br>+++  <h1>Списание $group дней $periodDaysStats</h1> "; 
   //собираем условие по выборке товаров
   $whereInProductsId_in="";
@@ -13,7 +15,7 @@ foreach($productGroupArray as $group =>$pArray) {
      else $periodDaysStats_where=$periodDaysStats;
     
      $date_start_sale2=date("Y-m-d");
-        $data2=$db::getRows("SELECT p.product_id,sum(c.quantity) as cnt, w.store_id, c.comment_id
+        $sql = "SELECT p.product_id,sum(c.quantity) as cnt, w.store_id, c.comment_id
         FROM write_offs as w, write_offs_products as p,  write_offs_comments as c
         WHERE p.write_offs_id=w.id  
         AND w.type='Брак' 
@@ -22,11 +24,13 @@ foreach($productGroupArray as $group =>$pArray) {
         AND p.product_id in($whereInProductsId_in) 
         AND w.store_id $orderStoresArrayRelation_in
         AND w.date<='$date_start_sale2 00:00:00' 
-        AND w.date>='$date_start_sale2' -interval $periodDaysStats_where day
-        group BY p.product_id,w.store_id, c.comment_id");
-       foreach($data2 as $row2) { 
+        AND w.date>='$date_start_sale2'::date -interval '$periodDaysStats_where day'
+        group BY p.product_id,w.store_id, c.comment_id";
+//    var_dump($sql); die;
+     $data2=$db::getRows($sql);
+     foreach($data2 as $row2) {
             $a=$row2["comment_id"]."=".$row2["cnt"]."шт. ";  
            if(!empty($a))  $data_up[$row2["product_id"]][$row2["store_id"]][0] .=$a;
      }
-    }
+  }
 }
\ No newline at end of file
index 9c743bd993230b667b1752a6e5015020f9907b6b..6ac851e37fee6a628d53484573c493abb9877b04 100644 (file)
@@ -1,8 +1,10 @@
-<?
+<?php
+
+global $productGroupArray, $configGroupProducts, $orderStoresArrayRelation_in, $date_start_division;
 
 // пробегаем по каждому типу товара и группируем запросы к БД
 foreach($productGroupArray as $group =>$pArray) {   
-$periodDaysStats=$configGroupProducts[$group]["day_write_offs"];
+$periodDaysStats=$configGroupProducts[$group]["day_write_offs"] ?? '0';
 //echo"<br>+++ <h1>$group дней $periodDaysStats</h1> "; 
 
 //собираем условие по выборке товаров
@@ -11,12 +13,14 @@ $j=0;
 foreach($pArray as $prodId) {if($j>0) $whereInProductsId_in .=",";      $whereInProductsId_in .="'$prodId'";   $j++;}  
 
 if(!empty($whereInProductsId_in)) {      
- $data2=$db::getRows("SELECT p.product_id,sum(p.quantity) as cnt, w.store_id
+ $sql = "SELECT p.product_id,sum(p.quantity) as cnt, w.store_id
  FROM write_offs as w, write_offs_products as p 
  WHERE p.write_offs_id=w.id  AND w.type='Брак' 
  AND   p.product_id in($whereInProductsId_in) 
  AND w.store_id $orderStoresArrayRelation_in
- AND w.date<='$date_start_division 00:00:00' AND w.date>='$date_start_division' -interval $periodDaysStats day group BY p.product_id,w.store_id");
+ AND w.date<='$date_start_division 00:00:00' AND w.date>='$date_start_division'::date -interval '$periodDaysStats day' group BY p.product_id,w.store_id";
+// var_dump($sql); die;
+$data2=$db::getRows($sql);
 $valAll=0;
  foreach($data2 as $row2) { 
  $a=ceil($row2["cnt"]);   
index feb806b59bf4fde8859c7f95188505d28e058659..67df15d622975bc349bd3dc89037defc29d1651a 100644 (file)
@@ -1,4 +1,6 @@
-<?
+<?php
+
+global $orderStoresArrayRelation_in, $date_start_sale, $whereInProductsId;
 //списания за 7 дней- недельное списание от даты старта / 4 = среднее за неделю
 
 
@@ -10,10 +12,10 @@ FROM write_offs as w, write_offs_products as p
 WHERE p.write_offs_id=w.id  AND w.type='Брак' 
 AND p.product_id  $whereInProductsId 
 AND w.store_id $orderStoresArrayRelation_in
-AND w.date<='$date_start_sale 00:00:00' AND w.date>='$date_start_sale' -interval $periodDaysStats day group BY p.product_id,w.store_id");
+AND w.date<='$date_start_sale 00:00:00' AND w.date>='$date_start_sale'::date -interval '$periodDaysStats day' group BY p.product_id,w.store_id");
  foreach($data2 as $row2)   { 
   $a=$row2["summ"];   
    $data_up[$row2["product_id"]][$row2["store_id"]][0]=$a;
-   $data_up[$row2["product_id"]][0][0] +=$a; 
+   $data_up[$row2["product_id"]][0][0] = ($data_up[$row2["product_id"]][0][0] ?? 0) +$a;
  }
  }
\ No newline at end of file
index 520950268e4b33ee09662618cf9db61283ae3d87..f2157ff4bc1edcf5e709b035489a8e84d333b553 100644 (file)
@@ -22,8 +22,8 @@ $orderStoresArrayRelation, // массив с гуидами магазинов
 $orderStoresArrayRelation_in //  SQL условие для выборки по магазинам IN('store_id')
 , $productGroupArray // массив с ID подгруппы группы товаров для автозакупки Короткие розы
 ,$related_order_id
-,$date_start_division,
-$param
+,$date_start_division
+//,$param
 ;
  
 
@@ -201,7 +201,7 @@ foreach($products as $pid => $pName) {
 //узнаем категорибю товара
 $categoryId=$ProductsOptions[$pid]["parent_id"];
 // по категории узнаем тип товара горшечка или упаковка
-$tip=$products_class[$categoryId]
+$tip=$products_class[$categoryId] ?? '';
 // если это срезка у нее нет группы 
 if(empty($tip)) {
  $daysCounterSales=7; $daysCounterWriteOffs=7; // дней продаж и дней на списание для этой категории  
@@ -216,7 +216,7 @@ return $productGroupArray;
     
 }
 
-//$productGroupArray=getProductGroupArray($products);
+$productGroupArray = getProductGroupArray($products);
 
 
 if ($whereInProductsId != " in ()") {
@@ -795,7 +795,7 @@ foreach($massivSQL as $productId =>$array) {
            
       } catch (Exception $e) 
        {
-           echo 'Ошибка вставки данных field_name='.$field_name.' '.print_r($param).' error='. $e->getMessage();
+           echo 'Ошибка вставки данных field_name='.$field_name.' '.print_r($param ?? '').' error='. $e->getMessage();
        }
  
      
index f3ddcef1e5786f508ea18cd4299c66fc4536507d..c330fb4fb338de9e8a9200db81bf8d8d5ad3d815 100644 (file)
@@ -294,12 +294,14 @@ $_CONFIG["jscss"] ="<script>
 
 function ajaxUpdateStoreZakup(){
  $('#modal-7 .modal-body').html('Считаем данные');
-jQuery('#modal-7').modal('show', {backdrop: 'static'}); $('#modal-7 .modal-title').text('Обновляем данные');  
+jQuery('#modal-7').modal('show', {backdrop: 'static'}); $('#modal-7 .modal-title').text('Обновляем данные');
+ const param3 = $(\"meta[name=csrf-param]\").attr(\"content\");
+ const token3 = $(\"meta[name=csrf-token]\").attr(\"content\");
  $.ajax({
-       url: '/shipment/ajaxUpdateStoreZakup/',
+       url: '/shipment/ajax-update-store-zakup/',
        method: 'post',       
        dataType: 'html',        
-       data: { id: $orderId, update_step:'1'},  
+       data: { id: $orderId, update_step:'1', [param3]: token3},  
        success: function(data){  
     $('#modal-7 .modal-body').html(data);
   
diff --git a/erp24/views/shipment/ajax-update-store-zakup.php b/erp24/views/shipment/ajax-update-store-zakup.php
new file mode 100644 (file)
index 0000000..5c9e6fb
--- /dev/null
@@ -0,0 +1,5 @@
+<?php
+
+chdir(__DIR__ . '/../../');
+
+include 'modul/shipment/ajaxUpdateStoreZakup.php';
\ No newline at end of file