]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
fix supplier calculation data
authorAlexander Smirnov <fredeom@mail.ru>
Fri, 17 May 2024 09:27:47 +0000 (12:27 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Fri, 17 May 2024 09:27:47 +0000 (12:27 +0300)
erp24/modul/shipment/fields/delta_sales4week_supplier.php
erp24/modul/shipment/fields/delta_sales7_and_supplier.php
erp24/modul/shipment/fields/entrance_cnt_7days.php
erp24/modul/shipment/fields/sales_4weeks_cnt.php
erp24/modul/shipment/fields/sales_amount.php
erp24/modul/shipment/fields/sales_cnt.php
erp24/modul/shipment/fields/write_downs.php
erp24/modul/shipment/fields/write_offs_4week_cnt_avg.php
erp24/modul/shipment/fields/write_offs_4week_sum.php

index 578007f475f06c5bcf0415e4e3ab6547c1b81fd1..213c9520f2564db446b47434699bd094561b6448 100644 (file)
@@ -1,9 +1,11 @@
-<?
+<?php
+
+global $orderId, $data_up, $prices;
 
 $data_sales4week_summ=[];
   $data=$db::getRows("SELECT product_id, store_id,
-  sum(if(field_name='quantity_zakup_new',value,0)) as quantity_zakup_new,
-    sum(if(field_name='sales_4weeks_cnt',value,0)) as sales_4weeks_cnt
+  sum(CASE WHEN field_name='quantity_zakup_new' THEN value ELSE 0 END) as quantity_zakup_new,
+    sum(CASE WHEN field_name='sales_4weeks_cnt' THEN value ELSE 0 END) as sales_4weeks_cnt
     FROM store_orders_fields_data WHERE field_name in('quantity_zakup_new','sales_4weeks_cnt') AND value>0
   AND order_id='$orderId' AND color='' AND store_id!='' group by product_id,store_id");
      foreach($data as $row) {
index 7412a9bf14c553e8a066287b8712c33cf85c4a57..157fd7a8637ce4eb84694d2898f5cd83146029a9 100644 (file)
@@ -1,8 +1,10 @@
-<?
+<?php
+
+global $orderId, $data_up;
 
   $data=$db::getRows("SELECT product_id, store_id,
-  sum(if(field_name='quantity_zakup_new',value,0)) as quantity_zakup_new,
-    sum(if(field_name='sales_cnt',value,0)) as sales_cnt
+  sum(CASE WHEN field_name='quantity_zakup_new' THEN value ELSE 0 END) as quantity_zakup_new,
+    sum(CASE WHEN field_name='sales_cnt' THEN value ELSE 0 END) as sales_cnt
     FROM store_orders_fields_data WHERE field_name in('quantity_zakup_new','sales_cnt') AND value>0
   AND order_id='$orderId' AND color='' AND store_id!='' group by product_id,store_id");
      foreach($data as $row) {
index 87781abb0fbfeb86550fb0535d9159372fc5a5b5..fb9b659be5f16c4356717c56b10a582c4c2c565a 100644 (file)
@@ -1,16 +1,22 @@
-<?
+<?php
+
+global $date_start_sale, $whereInProductsId;
 
 /*date_start - 7 day получили период поставок
 Выбираем закупки входящие в этот период по дате старта продаж 
 По этому товару со статусами деление по магазинам или более  
 Поле division_summ по каждому магазину -> Получено за 7 дней entrance_cnt_7day*/
 
-$data=$db::getRows("SELECT id FROM store_orders WHERE status>=6 AND date_start <='$date_start_sale' AND date_start>='$date_start_sale' -interval 7 day");
-$whereInOrderId=""; $i=0;
-foreach($data as $row) {
-  $whereInOrderId .=" '".$row["id"]."' ";
-    if($i<(count($data)-1)) $whereInOrderId .=" , ";
-     $i++;   
+if (!empty($date_start_sale)) {
+    $sql = "SELECT id FROM store_orders WHERE status>=6 AND date_start <='$date_start_sale' AND date_start>='$date_start_sale'::date -interval '7 day'";
+    $data = $db::getRows($sql);
+    $whereInOrderId = "";
+    $i = 0;
+    foreach ($data as $row) {
+        $whereInOrderId .= " '" . $row["id"] . "' ";
+        if ($i < (count($data) - 1)) $whereInOrderId .= " , ";
+        $i++;
+    }
 }
 
 
index fe58a81837c4d54e0f3cbc6b357a897758aa46ab..c42895eef68c76d8dddd34a6158ddd4a7ff5397f 100644 (file)
@@ -1,20 +1,23 @@
-<?
+<?php
+
+global $whereInProductsId, $orderStoresArrayRelation_in, $date_start_sale;
+
 $day_sales=7*4;
 $data_up=[];
-$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
+if (!empty($date_start_sale)) {
+    $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  $whereInProductsId
 
 AND s.store_id_1c $orderStoresArrayRelation_in
-AND s.date<='$date_start_sale 00:00:00' AND s.date>='$date_start_sale' -interval $day_sales day group BY i.product_id, s.store_id_1c ");    
-  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; 
-      
-    //  echo"<br> ".$products[$row2["product_id"]]." ".$row2["store_id"]." =$cnt ";
-   }
- }
-
+AND s.date<='$date_start_sale 00:00:00' AND s.date>='$date_start_sale'::date -interval '$day_sales day' group BY i.product_id, s.store_id_1c ");
+    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] = ($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;
 
+            //  echo"<br> ".$products[$row2["product_id"]]." ".$row2["store_id"]." =$cnt ";
+        }
+    }
+}
\ No newline at end of file
index 049c660cd67cc97b168214eef34edab9b243dbbd..95d1e178e999d8349154323a779bd2f9bce4005e 100644 (file)
@@ -1,4 +1,6 @@
-<?
+<?php
+
+global $productGroupArray, $configGroupProducts, $whereInProductsId, $orderStoresArrayRelation_in, $date_start_sale, $data_up;
 
 //массив с товарами из данной закупки разнесенных по категориям
 foreach($productGroupArray as $group =>$pArray) {   
@@ -16,23 +18,23 @@ $day_sales=$configGroupProducts[$group]["day_sales"]; // массив групп
 }
 }
 
-
-$data2=$db::getRows("SELECT i.product_id, s.store_id_1c as store_id,sum(if(s.operation='Продажа',i.summ,0)) as sale_cnt, sum(if(s.operation='Возврат',i.summ,0)) as vozvr_cnt
+if (!empty($date_start_sale)) {
+    $data2 = $db::getRows("SELECT i.product_id, s.store_id_1c as store_id,sum(CASE WHEN s.operation='Продажа' THEN i.summ ELSE 0 END) as sale_cnt, sum(CASE WHEN s.operation='Возврат' THEN i.summ ELSE 0 END) as vozvr_cnt
 FROM sales as s, sales_products as i 
 WHERE s.id=i.check_id AND  
 i.product_id $whereInProductsId
 AND s.store_id_1c $orderStoresArrayRelation_in
-AND s.date<='$date_start_sale 00:00:00' AND s.date>='$date_start_sale' -interval 7 day group BY i.product_id, s.store_id_1c  ");    
-  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; 
-      
-    //  echo"<br> sales_amount ".$products[$row2["product_id"]]." ".$row2["store_id"]." $cnt ";
-   }
- }
+AND s.date<='$date_start_sale 00:00:00' AND s.date>='$date_start_sale'::date -interval '7 day' group BY i.product_id, s.store_id_1c  ");
+    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] = ($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;
+
+            //  echo"<br> sales_amount ".$products[$row2["product_id"]]." ".$row2["store_id"]." $cnt ";
+        }
   }
+}
 
  
\ No newline at end of file
index f3edda138c2c2a6edaa0a4d0a1a83c8e30741648..0edbca33fc48078e00139f9718d2605c5a91d941 100644 (file)
@@ -1,17 +1,23 @@
-<?
+<?php
+
+global $whereInProductsId, $orderStoresArrayRelation_in, $date_start_sale, $data_up;
+
 $data_up=[];
 $day_sales=7;
 
-$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
+if (!empty($date_start_sale)) {
+    $sql = "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  $whereInProductsId
  AND s.store_id_1c $orderStoresArrayRelation_in
-AND s.date<='$date_start_sale 00:00:00' AND s.date>='$date_start_sale' -interval $day_sales day group BY i.product_id, s.store_id_1c  ");    
-  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; 
-   }
- }
+AND s.date<='$date_start_sale 00:00:00' AND s.date>='$date_start_sale'::date -interval '$day_sales day' group BY i.product_id, s.store_id_1c  ";
+    $data2 = $db::getRows($sql);
+    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] = ($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;
+        }
+    }
+}
\ No newline at end of file
index e8f9ac25372d723c000742a36fb1c119222ab28f..d27dfd50e9b8059604f60baee36b23b4babb2099 100644 (file)
@@ -1,19 +1,21 @@
-<?
+<?php
+
+global $orderStoresArrayRelation_in, $whereInProductsId, $date_start_sale, $data_up;
 
 //списания за 7 дней- недельное списание от даты старта / 4 = среднее за неделю
 $periodDaysStats=7;
-if(!empty($orderStoresArrayRelation_in)) {
+if(!empty($orderStoresArrayRelation_in) && !empty($date_start_sale)) {
 $data2=$db::getRows("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 $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=round($row2["cnt"]);   
    if(!empty($a)) {
-   $data_up[$row2["product_id"]][$row2["store_id"]][0] +=$a;
-   $data_up[$row2["product_id"]][0][0] +=$a; 
+   $data_up[$row2["product_id"]][$row2["store_id"]][0] = ($data_up[$row2["product_id"]][$row2["store_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 f53647ee8a483ab1cfbdf0fab38cbd1e7246ff63..8f4d18f50e7ceb1bf40a3f9d2e746000e7b05172 100644 (file)
@@ -1,8 +1,10 @@
-<?
+<?php
+
+global $orderStoresArrayRelation_in, $whereInProductsId, $date_start_sale;
 
 //списания за 4 недели среднее - 4-х недельное списание от даты старта / 4 = среднее за неделю
 $periodDaysStats=28;
-if(!empty($orderStoresArrayRelation_in)) {   
+if(!empty($orderStoresArrayRelation_in) && !empty($date_start_sale)) {
 $data2=$db::getRows("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  
@@ -10,12 +12,12 @@ 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'::date -interval '$periodDaysStats day' group BY p.product_id,w.store_id");
  foreach($data2 as $row2) { 
   $a=round($row2["cnt"]/4);   
    if(!empty($a)) {
    $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;
  }
  }
 
index 2f64f962401f35572fd7f24d2adb298284790d26..d799f083f75bff519fb041e99a3835039d52f1e8 100644 (file)
@@ -1,14 +1,17 @@
-<?
+<?php
+
+global $orderStoresArrayRelation_in, $whereInProductsId, $date_start_sale;
+
 //списания за 4 недели среднее - 4-х недельное списание от даты старта / 4 = среднее за неделю в рублях
 $periodDaysStats=28;
-if(!empty($orderStoresArrayRelation_in)) {   
+if(!empty($orderStoresArrayRelation_in) && !empty($date_start_sale)) {
 $data2=$db::getRows("SELECT p.product_id,p.summ, 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 $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'::date -interval '$periodDaysStats day' group BY p.product_id,w.store_id");
  foreach($data2 as $row2)   { 
   $a=round ($row2["summ"]/4) ;   
    if(!empty($a)) {