From: Alexander Smirnov Date: Wed, 22 May 2024 10:47:31 +0000 (+0300) Subject: fix part 019 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=9513a0fd1bfd160db1ebc5fe849ca0397cb2ffac;p=yii-erp24%2F.git fix part 019 --- diff --git a/erp24/modul/shipment/fields/auto_purchase_formula.php b/erp24/modul/shipment/fields/auto_purchase_formula.php index 22a1d52..febebf0 100644 --- a/erp24/modul/shipment/fields/auto_purchase_formula.php +++ b/erp24/modul/shipment/fields/auto_purchase_formula.php @@ -1,6 +1,6 @@ 0 AND store_id $orderStoresArrayRelation_in - AND order_id='$orderId' AND color='' AND store_id!='' group by product_id"); - foreach($data as $row) { - $data_up[$row["product_id"]][0][0] +=(int)$row["value"]; - } + AND order_id='$orderId' AND color='' AND store_id!='' group by product_id"; +// var_dump($sql); die; + $data=$db::getRows($sql); + foreach($data as $row) { + $data_up[$row["product_id"]][0][0] = ($data_up[$row["product_id"]][0][0] ?? 0) + (int)$row["value"]; + } diff --git a/erp24/modul/shipment/fields/cost_price_auto.php b/erp24/modul/shipment/fields/cost_price_auto.php index 1ee7d22..a93bf91 100644 --- a/erp24/modul/shipment/fields/cost_price_auto.php +++ b/erp24/modul/shipment/fields/cost_price_auto.php @@ -1,10 +1,15 @@ - 0 AND store_id $orderStoresArrayRelation_in - AND order_id='$orderId' AND store_id='' group by color"); - foreach($data as $row) { + AND order_id='$orderId' AND store_id='' group by color"; +// var_dump($sql); die; + $data=$db::getRows($sql); + foreach($data as $row) { if(empty($row["color"])) $row["color"]=0; - $data_up[0][0][$row["color"]] +=(int)$row["value"]; + $data_up[0][0][$row["color"]] +=(int)$row["value"]; $data_up[0][0][0] +=(int)$row["value"]; - } \ No newline at end of file + } \ No newline at end of file diff --git a/erp24/modul/shipment/fields/cost_price_summ.php b/erp24/modul/shipment/fields/cost_price_summ.php index 1a5f301..b8d9a01 100644 --- a/erp24/modul/shipment/fields/cost_price_summ.php +++ b/erp24/modul/shipment/fields/cost_price_summ.php @@ -1,42 +1,44 @@ - $name) { - - $s = $FiledsDataArray["cost_price"][$productId][0][0] * $FiledsDataArray["quantity_zakup_fact"][$productId][0][0]; - $data_up[$productId][0][0] =$s ; - - foreach($productsColorsArray[$productId] as $color) { - $color=trim($color); - $s = $FiledsDataArray["quantity_zakup_fact"][$productId][0][$color] * $FiledsDataArray["cost_price"][$productId][0][$color]; - $data_up[$productId][0][$color] +=$s ; - } - - - + $s = ($FiledsDataArray["cost_price"][$productId][0][0] ?? 0) * ($FiledsDataArray["quantity_zakup_fact"][$productId][0][0] ?? 0); + $data_up[$productId][0][0] = $s; + foreach($productsColorsArray[$productId] as $color) { + $color=trim($color); + $s = ($FiledsDataArray["quantity_zakup_fact"][$productId][0][$color] ?? 0) * ($FiledsDataArray["cost_price"][$productId][0][$color] ?? 0); + $data_up[$productId][0][$color] = ($data_up[$productId][0][$color] ?? 0) + $s ; + } } diff --git a/erp24/modul/shipment/fields/delta_sales4week_supplier.php b/erp24/modul/shipment/fields/delta_sales4week_supplier.php index 213c952..25cb009 100644 --- a/erp24/modul/shipment/fields/delta_sales4week_supplier.php +++ b/erp24/modul/shipment/fields/delta_sales4week_supplier.php @@ -3,34 +3,28 @@ global $orderId, $data_up, $prices; $data_sales4week_summ=[]; - $data=$db::getRows("SELECT product_id, store_id, +$sql = "SELECT product_id, store_id, 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) { - if($row["sales_4weeks_cnt"]>0) { - - $delta=$row["quantity_zakup_new"]-$row["sales_4weeks_cnt"]; - $data_up[$row["product_id"]][$row["store_id"]][0] +=$delta; - $data_up[$row["product_id"]][0][0] +=$delta; - - - $delta_percent=round(($row["quantity_zakup_new"]/$row["sales_4weeks_cnt"])*100); - $data_up[$row["product_id"]][$row["store_id"]][0] +=$delta_percent; - - - - - if($row["sales_4weeks_cnt"]){ - $data_sales4week_summ_val=ceil($row["sales_4weeks_cnt"]*$prices[$row["product_id"]]); - $data_sales4week_summ[$row["product_id"]][$row["store_id"]][0] +=$data_sales4week_summ_val; - $data_sales4week_summ[$row["product_id"]][NULL][0] +=$data_sales4week_summ_val; - - // echo"
".$row["product_id"]." = ".$row["sales_4weeks_cnt"]." * ".$prices[$row["product_id"]]." = $data_sales4week_summ_val"; - } - } - - } + 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) { + if($row["sales_4weeks_cnt"]>0) { + $delta = ($row["quantity_zakup_new"] ?? 0) - ($row["sales_4weeks_cnt"] ?? 0); + $data_up[$row["product_id"]][$row["store_id"]][0] = ($data_up[$row["product_id"]][$row["store_id"]][0] ?? 0) + $delta; + $data_up[$row["product_id"]][0][0] = ($data_up[$row["product_id"]][0][0] ?? 0) + $delta; + $delta_percent = $row["sales_4weeks_cnt"] > 0 ? round(($row["quantity_zakup_new"]/$row["sales_4weeks_cnt"])*100) : 0; + $data_up[$row["product_id"]][$row["store_id"]][0] = ($data_up[$row["product_id"]][$row["store_id"]][0] ?? 0) + $delta_percent; + + $data_sales4week_summ_val = ceil(($row["sales_4weeks_cnt"] ?? 0) * ($prices[$row["product_id"]] ?? 0)); + $data_sales4week_summ[$row["product_id"]][$row["store_id"]][0] = + ($data_sales4week_summ[$row["product_id"]][$row["store_id"]][0] ?? 0) + $data_sales4week_summ_val; + $data_sales4week_summ[$row["product_id"]][NULL][0] = ($data_sales4week_summ[$row["product_id"]][NULL][0] ?? 0) + $data_sales4week_summ_val; + + // echo"
".$row["product_id"]." = ".$row["sales_4weeks_cnt"]." * ".$prices[$row["product_id"]]." = $data_sales4week_summ_val"; + } +} insert_store_orders_fields($data_up,"delta_sales4week_supplier_percent"); insert_store_orders_fields($data_sales4week_summ,"sales_4weeks_sum"); diff --git a/erp24/modul/shipment/fields/delta_sales7_and_supplier.php b/erp24/modul/shipment/fields/delta_sales7_and_supplier.php index a4e18a2..029ec74 100644 --- a/erp24/modul/shipment/fields/delta_sales7_and_supplier.php +++ b/erp24/modul/shipment/fields/delta_sales7_and_supplier.php @@ -7,7 +7,7 @@ global $orderId, $data_up; 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"; - +//var_dump($sql); die; $data=$db::getRows($sql); foreach($data as $row) { diff --git a/erp24/modul/shipment/fields/delta_zakup.php b/erp24/modul/shipment/fields/delta_zakup.php index 5108004..564c5f0 100644 --- a/erp24/modul/shipment/fields/delta_zakup.php +++ b/erp24/modul/shipment/fields/delta_zakup.php @@ -1,19 +1,23 @@ - $name) { - $data_up[$productId][0][0]= round($FiledsDataArray["quantity_zakup_fact"][$productId] / $FiledsDataArray["quantity_zakup"][$productId],2); +//пробегаемся по всем продуктам +foreach($products as $productId => $name) { + $data_up[$productId][0][0] = ($FiledsDataArray["quantity_zakup"][$productId] ?? 0) > 0 ? round(($FiledsDataArray["quantity_zakup_fact"][$productId] ?? 0) / $FiledsDataArray["quantity_zakup"][$productId],2) : 0; } diff --git a/erp24/modul/shipment/fields/division_auto.php b/erp24/modul/shipment/fields/division_auto.php index 3ddedc4..0d0b825 100644 --- a/erp24/modul/shipment/fields/division_auto.php +++ b/erp24/modul/shipment/fields/division_auto.php @@ -1,6 +1,6 @@ division_auto $whereInProductsId"; $min_lot=[]; -$data=$db::getRows("SELECT id,min_lot FROM products_1c_options WHERE id $whereInProductsId"); -foreach($data as $row) $min_lot[$row["id"]]=$row["min_lot"]; +$sql = "SELECT id,min_lot FROM products_1c_options WHERE id $whereInProductsId"; +//var_dump($sql); die; +$data=$db::getRows($sql); +foreach($data as $row) { + $min_lot[$row["id"]] = $row["min_lot"]; +} $FiledsDataArray=[]; -$dataF=$db::getRows("SELECT field_name, product_id, store_id, value +$sql = "SELECT field_name, product_id, store_id, value FROM store_orders_fields_data WHERE order_id=? AND store_id $orderStoresArrayRelation_in @@ -30,42 +34,40 @@ AND field_name IN ('division_auto_need') AND value!=0 AND color='' AND store_id!='' -",[$orderId]); +"; +//var_dump($sql); var_dump($orderId); die; +$dataF=$db::getRows($sql, [$orderId]); foreach($dataF as $row) { - $FiledsDataArray[$row["field_name"]][$row["product_id"]][$row["store_id"]]=(int)$row["value"]; + $FiledsDataArray[$row["field_name"]][$row["product_id"]][$row["store_id"]] = (int)$row["value"]; } -$dataF=$db::getRows("SELECT field_name, product_id, value +$sql = "SELECT field_name, product_id, value FROM store_orders_fields_data WHERE order_id=? AND store_id $orderStoresArrayRelation_in AND field_name IN ( 'division_ratio') AND store_id='' AND color='' -AND value!='0'",[$orderId]); +AND value!='0'"; +//var_dump($sql); var_dump($orderId); die; +$dataF=$db::getRows($sql, [$orderId]); foreach($dataF as $row) { - $FiledsDataArray[$row["field_name"]][$row["product_id"]]=$row["value"]; - + $FiledsDataArray[$row["field_name"]][$row["product_id"]] = $row["value"]; } - - //пробегаемся по всем продуктам foreach($products as $productId => $name) { - // echo"

$name

"; - foreach($orderStoresArrayRelation as $storeId ) { - - $division_ratio=$FiledsDataArray["division_ratio"][$productId] ?? 0; - if(empty($division_ratio)) $division_ratio=1; - $d=($FiledsDataArray["division_auto_need"][$productId][$storeId] ?? 0) * $division_ratio; - $data_up[$productId][$storeId][0]=ceilCoef($d,$min_lot[$productId]); - - - // echo"
$name division_auto_need=".$FiledsDataArray["division_auto_need"][$productId][$storeId]." * division_ratio=".$division_ratio." d=$d min_lot=".$min_lot[$productId]." "; - } - // $data_up[$productId][0][0] +=$FiledsData["division_auto"][$productId][0][0]; - - + // echo"

$name

"; + foreach($orderStoresArrayRelation as $storeId ) { + $division_ratio = $FiledsDataArray["division_ratio"][$productId] ?? 0; + if(empty($division_ratio)) { + $division_ratio=1; + } + $d = ($FiledsDataArray["division_auto_need"][$productId][$storeId] ?? 0) * $division_ratio; + $data_up[$productId][$storeId][0] = ceilCoef($d,$min_lot[$productId]); + // echo"
$name division_auto_need=".$FiledsDataArray["division_auto_need"][$productId][$storeId]." * division_ratio=".$division_ratio." d=$d min_lot=".$min_lot[$productId]." "; + } + // $data_up[$productId][0][0] +=$FiledsData["division_auto"][$productId][0][0]; } diff --git a/erp24/modul/shipment/fields/division_auto_all.php b/erp24/modul/shipment/fields/division_auto_all.php index 1092e48..2d77af6 100644 --- a/erp24/modul/shipment/fields/division_auto_all.php +++ b/erp24/modul/shipment/fields/division_auto_all.php @@ -2,17 +2,17 @@ global $orderId, $orderStoresArrayRelation_in, $data_up; - $sql = "SELECT product_id,sum(value) as value,color FROM store_orders_fields_data WHERE +$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, color"; -// var_dump($sql); die; - $data=$db::getRows($sql); +//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"]; - } +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"]; } +} diff --git a/erp24/modul/shipment/fields/division_auto_need.php b/erp24/modul/shipment/fields/division_auto_need.php index 3ea0443..cc597be 100644 --- a/erp24/modul/shipment/fields/division_auto_need.php +++ b/erp24/modul/shipment/fields/division_auto_need.php @@ -1,6 +1,6 @@ division_auto_need"; @@ -13,59 +13,66 @@ function roundCoefficientLot($number, $rate = 1) } -$FiledsDataArray=[]; -$dataF=$db::getRows("SELECT field_name, product_id, store_id, value +$FiledsDataArray = []; +$sql = "SELECT field_name, product_id, store_id, value FROM store_orders_fields_data WHERE order_id=? AND color='' AND field_name IN ('entrance_cnt_7days','sales_cnt','quantity','quantity_fact','min_lot','min_order') -",[$orderId]); +"; +//var_dump($sql); var_dump($orderId); die; +$dataF=$db::getRows($sql, [$orderId]); foreach($dataF as $row) { - $FiledsDataArray[$row["field_name"]][$row["product_id"]][$row["store_id"]]=(int)$row["value"]; + $FiledsDataArray[$row["field_name"]][$row["product_id"]][$row["store_id"]] = (int)$row["value"]; } //print_r($FiledsData); $storesArray[0]="Всего"; foreach($products as $product_id => $name) { - $min_order = $FiledsDataArray["min_order"][$product_id][""] ?? 0; - $min_lot=$FiledsDataArray["min_lot"][$product_id][""] ?? 0; - echo"
-
$name
формула = продажи_7_дней + запас_на_2дня + полнограмма - продажи_7дней - минимальный заказ $min_order шт., квант (мин. лот деления) = $min_lot "; + $min_order = $FiledsDataArray["min_order"][$product_id][""] ?? 0; + $min_lot = $FiledsDataArray["min_lot"][$product_id][""] ?? 0; + echo"
+
$name
формула = продажи_7_дней + запас_на_2дня + полнограмма - продажи_7дней + минимальный заказ $min_order шт., квант (мин. лот деления) = $min_lot "; - if(empty($min_lot)) $min_lot=1; - echo"
+ if (empty($min_lot)) { + $min_lot=1; + } + echo"
"; - foreach($orderStoresArrayRelation as $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)); - // если факт продаж будет больше чем факт - перприсваеиваем - if(($quantity_fact-$sale_7day)>0) { - $saleweek1=$quantity_fact-$sale_7day ; - $zakaz= $sale_7day + $sale_2day + $quantity - $saleweek1; - } - else $zakaz= $sale_7day + $sale_2day + $quantity ; + foreach($orderStoresArrayRelation as $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)); + // если факт продаж будет больше чем факт - перприсваеиваем + if (($quantity_fact-$sale_7day)>0) { + $saleweek1=$quantity_fact-$sale_7day ; + $zakaz= $sale_7day + $sale_2day + $quantity - $saleweek1; + } else { + $zakaz= $sale_7day + $sale_2day + $quantity ; + } - $zakaz=roundCoefficientLot($zakaz, $min_lot); - if($zakaz<0) $zakaz=0; - if(empty($sale_2day)) $sale_2day=""; - if(empty($sale_7day)) $sale_7day=""; - if(empty($zakaz)) $zakaz=$quantity; - + $zakaz=roundCoefficientLot($zakaz, $min_lot); + if($zakaz<0) $zakaz=0; + if(empty($sale_2day)) $sale_2day=""; + if(empty($sale_7day)) $sale_7day=""; + if(empty($zakaz)) $zakaz=$quantity; - $data_up[$product_id][$storeId][0] =$zakaz; - $data_up[$product_id][0][0] = ($data_up[$product_id][0][0] ?? 0) + $zakaz; -// формула = продажи_7_дней + запас_на_2дня + полнограмма - продажи_7дней - echo" - '; - } - echo'
магазинпродажи 7 дней запас 2 дня полнограмма потребность
".($storesOrderArray[$storeId]??'')."$sale_7day$sale_2day$quantity"; - if(!empty($zakaz)) echo"$zakaz"; - - echo'
'; + $data_up[$product_id][$storeId][0] = $zakaz; + $data_up[$product_id][0][0] = ($data_up[$product_id][0][0] ?? 0) + $zakaz; + + // формула = продажи_7_дней + запас_на_2дня + полнограмма - продажи_7дней + echo"".($storesOrderArray[$storeId]??'')."$sale_7day + $sale_2day$quantity"; + if(!empty($zakaz)) { + echo"$zakaz"; + } + + echo''; + } + echo'
'; } diff --git a/erp24/modul/shipment/fields/division_auto_need_all.php b/erp24/modul/shipment/fields/division_auto_need_all.php index cfbb915..a0c61c5 100644 --- a/erp24/modul/shipment/fields/division_auto_need_all.php +++ b/erp24/modul/shipment/fields/division_auto_need_all.php @@ -2,16 +2,16 @@ global $orderId, $orderStoresArrayRelation_in, $data_up; - $sql = "SELECT product_id,sum(value) as value,color FROM store_orders_fields_data WHERE +$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, 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"]; - } +$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"]; } +} diff --git a/erp24/modul/shipment/fields/division_hand.php b/erp24/modul/shipment/fields/division_hand.php index d9de137..c3e46d4 100644 --- a/erp24/modul/shipment/fields/division_hand.php +++ b/erp24/modul/shipment/fields/division_hand.php @@ -1,11 +1,17 @@ 0 AND store_id $orderStoresArrayRelation_in - 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"]] = ($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 + AND order_id='$orderId' AND store_id!='' group by product_id, store_id,color"; +//var_dump($sql); die; +$data=$db::getRows($sql); +foreach($data as $row) { + if(empty($row["color"])) { + $row["color"] = 0; + } + $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 diff --git a/erp24/modul/shipment/fields/division_price_summ.php b/erp24/modul/shipment/fields/division_price_summ.php index 331b241..35e846f 100644 --- a/erp24/modul/shipment/fields/division_price_summ.php +++ b/erp24/modul/shipment/fields/division_price_summ.php @@ -4,45 +4,41 @@ global $orderId, $orderStoresArrayRelation_in, $products, $orderStoresArrayRelat $prices=[]; -$dataF=$db::getRows("SELECT product_id, value +$sql = "SELECT product_id, value FROM store_orders_fields_data WHERE order_id=? AND color='' AND store_id='' AND field_name IN ('purchase_price') -AND value!=0",[$orderId]); +AND value!=0"; +//var_dump($sql); var_dump($orderId); die; +$dataF = $db::getRows($sql, [$orderId]); foreach($dataF as $row) { - $prices[$row["product_id"]]=$row["value"]; + $prices[$row["product_id"]] = $row["value"]; } -$dataF=$db::getRows("SELECT field_name, product_id, store_id, value +$sql = "SELECT field_name, product_id, store_id, value FROM store_orders_fields_data WHERE order_id=? AND store_id $orderStoresArrayRelation_in AND color='' AND store_id!='' AND field_name IN ('division_summ') -AND value!=0",[$orderId]); +AND value!=0"; +//var_dump($sql); var_dump($orderId); die; +$dataF = $db::getRows($sql, [$orderId]); foreach($dataF as $row) { - $FiledsDataArray[$row["field_name"]][$row["product_id"]][$row["store_id"]]=$row["value"]; + $FiledsDataArray[$row["field_name"]][$row["product_id"]][$row["store_id"]] = $row["value"]; } - - - - - - $data_up = $data_up ?? []; //пробегаемся по всем продуктам foreach($products as $productId => $name) { - foreach($orderStoresArrayRelation ?? [] as $storeId ) { - + foreach($orderStoresArrayRelation ?? [] as $storeId ) { $division_summ = $FiledsDataArray["division_summ"][$productId][$storeId] ?? 0; - $s=round($prices[$productId] * $division_summ); $data_up[$productId][0][0] = ($data_up[$productId][0][0] ?? 0) + $s; $data_up[$productId][$storeId][0] = $s; - } + } } \ No newline at end of file diff --git a/erp24/modul/shipment/fields/division_ratio.php b/erp24/modul/shipment/fields/division_ratio.php index 8d59ed6..f1f193b 100644 --- a/erp24/modul/shipment/fields/division_ratio.php +++ b/erp24/modul/shipment/fields/division_ratio.php @@ -1,52 +1,52 @@ $name) { - $division_auto_need_all=$FiledsDataArray["division_auto_need_all"][$productId][0]; - $quantity_warehouseman_fact=$FiledsDataArray["quantity_warehouseman_fact"][$productId][0]; + $division_auto_need_all = $FiledsDataArray["division_auto_need_all"][$productId][0] ?? 0; + $quantity_warehouseman_fact = $FiledsDataArray["quantity_warehouseman_fact"][$productId][0] ?? 0; -$html .="
$name division_auto_need_all=".$FiledsDataArray["division_auto_need_all"][$productId][0]." + $html .="
$name division_auto_need_all=". ($FiledsDataArray["division_auto_need_all"][$productId][0] ?? 0)." Сумма потребности =".$division_auto_need_all." Сумма получаено по факту ".$quantity_warehouseman_fact.""; -$division_ratio=1; -if($division_auto_need_all > $quantity_warehouseman_fact) { -$division_ratio=round($quantity_warehouseman_fact/$division_auto_need_all,2); - -$html .="-меньше!"; -$html .=" применяем коэффициент $division_ratio = ".($FiledsDataArray["division_ratio"][$productId][0] ?? '')." "; - -} - $data_up[$productId][0][0] =$division_ratio; + $division_ratio=1; + if($division_auto_need_all > $quantity_warehouseman_fact) { + $division_ratio = $division_auto_need_all > 0 ? round($quantity_warehouseman_fact/$division_auto_need_all,2) : 0; + $html .="-меньше!"; + $html .=" применяем коэффициент $division_ratio = ".($FiledsDataArray["division_ratio"][$productId][0] ?? '')." "; + } + $data_up[$productId][0][0] = $division_ratio; - 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]) { - $division_ratio=round($FiledsDataArray["quantity_warehouseman_fact"][$productId][$color]/$FiledsDataArray["division_auto_need_all"][$productId][$color],2); - } - $data_up[$productId][0][$color] =$division_ratio ; - } - -$html .="коэффициент $division_ratio"; - + foreach($productsColorsArray[$productId] ?? [] as $color) { + $color = trim($color); + $division_ratio = 1; + if(($FiledsDataArray["division_auto_need_all"][$productId][$color] ?? 0) > ($FiledsDataArray["quantity_warehouseman_fact"][$productId][$color] ?? 0)) { + $division_ratio = round($FiledsDataArray["quantity_warehouseman_fact"][$productId][$color] / $FiledsDataArray["division_auto_need_all"][$productId][$color],2); + } + $data_up[$productId][0][$color] = $division_ratio; + } + + $html .="коэффициент $division_ratio"; } echo"$html"; - diff --git a/erp24/modul/shipment/fields/division_store.php b/erp24/modul/shipment/fields/division_store.php index d9de0b2..9a875af 100644 --- a/erp24/modul/shipment/fields/division_store.php +++ b/erp24/modul/shipment/fields/division_store.php @@ -3,22 +3,26 @@ global $orderId, $orderStoresArrayRelation_in, $orderStoresArrayRelation, $products, - $productsColorsArray - + $productsColorsArray, + $data_up, + $FiledsDataArray ; $FiledsDataArray=[]; - -$dataF=$db::getRows("SELECT field_name, product_id, store_id, value,color +$sql = "SELECT field_name, product_id, store_id, value,color FROM store_orders_fields_data WHERE order_id=? AND store_id='' AND field_name IN ('division_store_ratio','min_lot') -AND value!=0 group by field_name, product_id, store_id, value,color ",[$orderId]); +AND value!=0 group by field_name, product_id, store_id, value,color "; +//var_dump($sql); var_dump($orderId); die; +$dataF = $db::getRows($sql, [$orderId]); foreach($dataF as $row) { - if(empty($row["color"])) $row["color"]=0; - $FiledsDataArray[$row["field_name"]][$row["product_id"]][0][$row["color"]]=$row["value"]; + if (empty($row["color"])) { + $row["color"] = 0; + } + $FiledsDataArray[$row["field_name"]][$row["product_id"]][0][$row["color"]] = $row["value"]; } @@ -33,55 +37,58 @@ function roundCoefficientLot2($number, $rate = 1) } -$dataF=$db::getRows("SELECT field_name, product_id, store_id, value,color +$sql = "SELECT field_name, product_id, store_id, value,color FROM store_orders_fields_data WHERE order_id=? AND store_id $orderStoresArrayRelation_in AND store_id!='' AND field_name IN ('quantity_zakup_new') -AND value!=0 ",[$orderId]); +AND value!=0 "; +//var_dump($sql); var_dump($orderId); die; +$dataF=$db::getRows($sql, [$orderId]); foreach($dataF as $row) { - if(empty($row["color"])) $row["color"]=0; - $FiledsDataArray[$row["field_name"]][$row["product_id"]][$row["store_id"]][$row["color"]] +=(int)$row["value"]; + if (empty($row["color"])) { + $row["color"] = 0; + } + $FiledsDataArray[$row["field_name"]][$row["product_id"]][$row["store_id"]][$row["color"]] = + ($FiledsDataArray[$row["field_name"]][$row["product_id"]][$row["store_id"]][$row["color"]] ?? 0) + (int)$row["value"]; } - //пробегаемся по всем продуктам +//пробегаемся по всем продуктам foreach($products as $productId => $name) { - // цикл по магазинам - foreach($orderStoresArrayRelation as $storeId ) { - // $s = $FiledsDataArray["division_store"][$productId][$storeId][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] ?? 0); - - $data_up[$productId][$storeId][0] =$ceil; - - if(!empty($FiledsDataArray["quantity_zakup_new"][$productId][$storeId][0])) - //echo"
$name $storeId min_lot=".$FiledsDataArray["min_lot"][$productId][0][0]." заказ магазина=".$FiledsDataArray["quantity_zakup_new"][$productId][$storeId][0]." * division_store_ratio=".$FiledsDataArray["division_store_ratio"][$productId][0][0]." = $ceil"; - - - $data_up[$productId][0][0] +=$ceil ; - // цикл по цвету товара - foreach($productsColorsArray[$productId] ?? [] as $color) { - $color=trim($color); - - $ceil=$FiledsDataArray["quantity_zakup_new"][$productId][$storeId][$color] * $FiledsDataArray["division_store_ratio"][$productId][0][$color]; - //округляем до мини мального лота деления - $ceil=roundCoefficientLot2($ceil,$FiledsDataArray["min_lot"][$productId][0][$color]); - $data_up[$productId][$storeId][$color] = $ceil; - /* - echo"
$name $color $storeId min_lot = - ".$FiledsDataArray["min_lot"][$productId][0][$color]." - ".$FiledsDataArray["quantity_zakup_new"][$productId][$storeId][$color]." - * ".$FiledsDataArray["division_store_ratio"][$productId][0][$color]." = $ceil"; - */ - - } - - } + // цикл по магазинам + foreach($orderStoresArrayRelation as $storeId ) { + // $s = $FiledsDataArray["division_store"][$productId][$storeId][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] ?? 0); + + $data_up[$productId][$storeId][0] = $ceil; + +// if (!empty($FiledsDataArray["quantity_zakup_new"][$productId][$storeId][0])) + //echo"
$name $storeId min_lot=".$FiledsDataArray["min_lot"][$productId][0][0]." заказ магазина=".$FiledsDataArray["quantity_zakup_new"][$productId][$storeId][0]." * division_store_ratio=".$FiledsDataArray["division_store_ratio"][$productId][0][0]." = $ceil"; + + + $data_up[$productId][0][0] = ($data_up[$productId][0][0] ?? 0) + $ceil; + // цикл по цвету товара + foreach($productsColorsArray[$productId] ?? [] as $color) { + $color=trim($color); + + $ceil = ($FiledsDataArray["quantity_zakup_new"][$productId][$storeId][$color] ?? 0) * ($FiledsDataArray["division_store_ratio"][$productId][0][$color] ?? 0); + //округляем до минимального лота деления + $ceil = roundCoefficientLot2($ceil, $FiledsDataArray["min_lot"][$productId][0][$color] ?? 0); + $data_up[$productId][$storeId][$color] = $ceil; + /* + echo"
$name $color $storeId min_lot = + ".$FiledsDataArray["min_lot"][$productId][0][$color]." + ".$FiledsDataArray["quantity_zakup_new"][$productId][$storeId][$color]." + * ".$FiledsDataArray["division_store_ratio"][$productId][0][$color]." = $ceil"; + */ + } + } } diff --git a/erp24/modul/shipment/fields/division_store_hand.php b/erp24/modul/shipment/fields/division_store_hand.php index 915fae5..170cf52 100644 --- a/erp24/modul/shipment/fields/division_store_hand.php +++ b/erp24/modul/shipment/fields/division_store_hand.php @@ -1,22 +1,29 @@ - +".$products[$row["product_id"]]." ".$row["color"]." = ".(int)$row["value"]." "; - } \ No newline at end of file + AND order_id=? AND store_id!='' group by product_id,color"; +//var_dump($sql); var_dump($orderId); die; +$data = $db::getRows($sql, [$orderId]); +foreach($data as $row) { + $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"]; + + echo"
+". ($products[$row["product_id"]] ?? 0) . " " . ($row["color"] ?? 0) ." = " . (int)$row["value"] . " "; +} diff --git a/erp24/modul/shipment/fields/division_store_ratio.php b/erp24/modul/shipment/fields/division_store_ratio.php index f206625..d0778b1 100644 --- a/erp24/modul/shipment/fields/division_store_ratio.php +++ b/erp24/modul/shipment/fields/division_store_ratio.php @@ -1,59 +1,63 @@ Коэффицент деления division_stpore_ratio"; $FiledsDataArray=[]; -$dataF=$db::getRows("SELECT field_name, product_id, value,color +$sql = "SELECT field_name, product_id, value,color FROM store_orders_fields_data WHERE order_id=? AND store_id='' AND field_name IN ('quantity_warehouseman_fact') -AND value!=0",[$orderId]); +AND value!=0"; +//var_dump($sql); var_dump($orderId); die; +$dataF = $db::getRows($sql, [$orderId]); foreach($dataF as $row) { - if(empty($row["color"])) $row["color"]=0; - $FiledsDataArray[$row["field_name"]][$row["product_id"]][$row["color"]]=(int)$row["value"]; + if (empty($row["color"])) { + $row["color"] = 0; + } + $FiledsDataArray[$row["field_name"]][$row["product_id"]][$row["color"]] = (int)$row["value"]; } $potreb=[]; - $data=$db::getRows("SELECT product_id, value,color FROM store_orders_fields_data WHERE +$sql = "SELECT product_id, value,color FROM store_orders_fields_data WHERE field_name='quantity_zakup_new' AND value>0 AND store_id $orderStoresArrayRelation_in AND order_id='$orderId' - AND store_id!=''"); - foreach($data as $row) { - if(empty($row["color"])) $row["color"]=0; - $potreb[$row["product_id"]][$row["color"]] +=(int)$row["value"]; - } + AND store_id!=''"; +//var_dump($sql); +$data=$db::getRows($sql); +foreach($data as $row) { + if (empty($row["color"])) { + $row["color"] = 0; + } + $potreb[$row["product_id"]][$row["color"]] = ($potreb[$row["product_id"]][$row["color"]] ?? 0) + (int)$row["value"]; +} -//пробегаемся по всем продуктам +//пробегаемся по всем продуктам +$html = $html ?? ''; foreach($products as $productId => $name) { - $potreb_all = $potreb[$productId][0] ?? 0; - $quantity_warehouseman_fact=$FiledsDataArray["quantity_warehouseman_fact"][$productId][0]; - - -$html .="
$name потребность =".$potreb_all."шт., получено по факту=".$quantity_warehouseman_fact."шт."; - -$division_store_ratio=1; -if($potreb_all > $quantity_warehouseman_fact) { -$division_store_ratio=round($quantity_warehouseman_fact/$potreb_all,2); - -} -$html .="коэффициент $division_store_ratio"; - $data_up[$productId][0][0] =$division_store_ratio; - - - foreach($productsColorsArray[$productId] ?? [] as $color) { - $color=trim($color); - $division_store_ratio=1; - if($potreb[$productId][$color] > $FiledsDataArray["quantity_warehouseman_fact"][$productId][$color]) { - $division_store_ratio=round($FiledsDataArray["quantity_warehouseman_fact"][$productId][$color]/$potreb[$productId][$color],2); - } - $data_up[$productId][0][$color] =$division_store_ratio ; + $potreb_all = $potreb[$productId][0] ?? 0; + $quantity_warehouseman_fact = $FiledsDataArray["quantity_warehouseman_fact"][$productId][0] ?? 0; + + $html .="
$name потребность =".$potreb_all."шт., получено по факту=".$quantity_warehouseman_fact."шт."; + + $division_store_ratio = 1; + if($potreb_all > $quantity_warehouseman_fact) { + $division_store_ratio = round($quantity_warehouseman_fact / $potreb_all,2); + } + $html .= "коэффициент $division_store_ratio"; + $data_up[$productId][0][0] = $division_store_ratio; + + foreach($productsColorsArray[$productId] ?? [] as $color) { + $color = trim($color); + $division_store_ratio = 1; + if (($potreb[$productId][$color] ?? 0) > ($FiledsDataArray["quantity_warehouseman_fact"][$productId][$color] ?? 0)) { + $division_store_ratio = round(($FiledsDataArray["quantity_warehouseman_fact"][$productId][$color] ?? 0) / $potreb[$productId][$color],2); } - + $data_up[$productId][0][$color] = $division_store_ratio; + } } //echo"$html"; - diff --git a/erp24/modul/shipment/fields/division_store_summ.php b/erp24/modul/shipment/fields/division_store_summ.php index ec6dae0..c7b80e9 100644 --- a/erp24/modul/shipment/fields/division_store_summ.php +++ b/erp24/modul/shipment/fields/division_store_summ.php @@ -1,46 +1,39 @@ $name) { - // echo"

$name

"; - foreach($orderStoresArrayRelation as $storeId ) { - // $s = $FiledsDataArray["division_store"][$productId][$storeId][0] + $FiledsDataArray["division_store_hand"][$productId][$storeId][0]; - // $data_up[$productId][$storeId][0] +=$s ; - // $data_up[$productId][0][0] +=$s ; - - foreach($productsColorsArray[$productId] ?? [] as $color) { - $color=trim($color); - $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; - - - - - // if($color=="белый" and !empty($s)) echo"
$color =$s "; - - - - } - - } +//пробегаемся по всем продуктам +foreach($products as $productId => $name) { + // echo"

$name

"; + foreach ($orderStoresArrayRelation as $storeId) { + // $s = $FiledsDataArray["division_store"][$productId][$storeId][0] + $FiledsDataArray["division_store_hand"][$productId][$storeId][0]; + // $data_up[$productId][$storeId][0] +=$s ; + // $data_up[$productId][0][0] +=$s ; + foreach ($productsColorsArray[$productId] ?? [] as $color) { + $color = trim($color); + $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; + // if($color=="белый" and !empty($s)) echo"
$color =$s "; + } + } } //print_r($data_up["0f42fcb0-f647-11e9-a2be-b42e991aff6c"][0]); @@ -50,26 +43,26 @@ foreach($products as $productId => $name) { $FiledsDataArray=[]; -$dataF=$db::getRows("SELECT field_name, product_id, store_id, value,color +$sql = "SELECT field_name, product_id, store_id, value,color FROM store_orders_fields_data WHERE order_id=? AND store_id $orderStoresArrayRelation_in AND store_id!='' AND color='' AND field_name IN ('division_store','division_store_hand') -AND value!=0",[$orderId]); +AND value!=0"; +//var_dump($sql); var_dump($orderId); die; +$dataF=$db::getRows($sql, [$orderId]); foreach($dataF as $row) { - $FiledsDataArray[$row["field_name"]][$row["product_id"]][$row["store_id"]][0] = +(int)$row["value"]; + $FiledsDataArray[$row["field_name"]][$row["product_id"]][$row["store_id"]][0] = ($FiledsDataArray[$row["field_name"]][$row["product_id"]][$row["store_id"]][0] ?? 0) + (int)$row["value"]; } - //пробегаемся по всем продуктам + +//пробегаемся по всем продуктам foreach($products as $productId => $name) { -// echo"

$name

"; - foreach($orderStoresArrayRelation as $storeId ) { - $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; - } + // echo"

$name

"; + foreach($orderStoresArrayRelation as $storeId ) { + $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; + } } - - - diff --git a/erp24/modul/shipment/fields/division_summ.php b/erp24/modul/shipment/fields/division_summ.php index b3dd2c7..8e2683c 100644 --- a/erp24/modul/shipment/fields/division_summ.php +++ b/erp24/modul/shipment/fields/division_summ.php @@ -1,35 +1,30 @@ $name) { -// echo"

$name

"; - foreach($orderStoresArrayRelation as $storeId ) { - - - - $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 ; - - - } - -// echo"
=".$data_up[$productId][0][0]." "; - +//пробегаемся по всем продуктам +foreach($products as $productId => $name) { + // echo"

$name

"; + foreach ($orderStoresArrayRelation as $storeId) { + $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 ; + } + // echo"
=".$data_up[$productId][0][0]." "; } diff --git a/erp24/modul/shipment/fields/division_summ_all.php b/erp24/modul/shipment/fields/division_summ_all.php index 1de15ab..a084c91 100644 --- a/erp24/modul/shipment/fields/division_summ_all.php +++ b/erp24/modul/shipment/fields/division_summ_all.php @@ -2,15 +2,17 @@ global $orderId, $orderStoresArrayRelation_in, $data_up; - $data=$db::getRows("SELECT product_id,sum(value) as value,color FROM store_orders_fields_data WHERE +$sql = "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, color"); - 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"]; - } - } + 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"]; + } +} diff --git a/erp24/modul/shipment/fields/entrance_cnt_7days.php b/erp24/modul/shipment/fields/entrance_cnt_7days.php index 614541d..0d535aa 100644 --- a/erp24/modul/shipment/fields/entrance_cnt_7days.php +++ b/erp24/modul/shipment/fields/entrance_cnt_7days.php @@ -1,6 +1,6 @@ =6 AND date_start <='$date_start_sale' AND date_start>='$date_start_sale'::date -interval '7 day'"; +// var_dump($sql); die; $data = $db::getRows($sql); $whereInOrderId = ""; $i = 0; @@ -21,7 +22,9 @@ if (!empty($date_start_sale)) { if(!empty($whereInOrderId)) { - $data=$db::getRows("SELECT product_id, store_id, value FROM store_orders_fields_data WHERE order_id IN ($whereInOrderId) AND product_id $whereInProductsId AND field_name='division_summ' AND color='' AND value>0 group by product_id, store_id"); + $sql = "SELECT product_id, store_id, value FROM store_orders_fields_data WHERE order_id IN ($whereInOrderId) AND product_id $whereInProductsId AND field_name='division_summ' AND color='' AND value>0 group by product_id, store_id"; +// 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"] = ($data_up[$row["product_id"]][0]["0"] ?? 0) + $row["value"]; diff --git a/erp24/modul/shipment/fields/goods_in_transit.php b/erp24/modul/shipment/fields/goods_in_transit.php index f7ccc56..8066d6a 100644 --- a/erp24/modul/shipment/fields/goods_in_transit.php +++ b/erp24/modul/shipment/fields/goods_in_transit.php @@ -1,31 +1,37 @@ ='$order_date_add' - interval 7 day"; -var_dump($sql); die; -$dataOrders2=$db::getRows($sql); + $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"Товар в пути участвуют заказы:"; -$k=0; $w_orders=""; -foreach($dataOrders2 as $row) { - if($k>0) $w_orders.=" ,"; $w_orders.= "'".$row["id"]."'"; $k++; - // echo"
id=".$row["id"]." дата старта:".$row["date_add"]." ".$row["name"].""; - } + //echo"Товар в пути участвуют заказы:"; + $k=0; $w_orders=""; + foreach($dataOrders2 as $row) { + if ($k>0) { + $w_orders.=" ,"; + } + $w_orders .= "'" . $row["id"] . "'"; + $k++; + // echo"
id=".$row["id"]." дата старта:".$row["date_add"]." ".$row["name"].""; + } -if(!empty($w_orders)) { -$w_orders=" AND order_id IN($w_orders) AND order_id!='$orderId'"; + if(!empty($w_orders)) { + $w_orders=" AND order_id IN($w_orders) AND order_id!='$orderId'"; - $data2=$db::getRows("SELECT sum(value) as value, product_id, if(color='',0,color) as color - FROM store_orders_fields_data - WHERE field_name='quantity_zakup_fact' AND value>0 - $w_orders group by product_id,color"); - - foreach($data2 as $row2) { - $data_up[$row2["product_id"]][0][$row2["color"]]=$row2["value"]; - // echo"
".$products[$row2["product_id"]]." = ".$row2["value"]." "; - } -} + $sql = "SELECT sum(value) as value, product_id, if(color='',0,color) as color + FROM store_orders_fields_data + WHERE field_name='quantity_zakup_fact' AND value>0 + $w_orders group by product_id,color"; +// var_dump($sql); die; + $data2=$db::getRows($sql); + + foreach($data2 as $row2) { + $data_up[$row2["product_id"]][0][$row2["color"]] = $row2["value"]; + // echo"
".$products[$row2["product_id"]]." = ".$row2["value"]." "; + } + } } \ No newline at end of file diff --git a/erp24/modul/shipment/fields/min_lot.php b/erp24/modul/shipment/fields/min_lot.php index 346dc4f..7d1fd42 100644 --- a/erp24/modul/shipment/fields/min_lot.php +++ b/erp24/modul/shipment/fields/min_lot.php @@ -4,7 +4,9 @@ global $whereInProductsId, $data_up; if ($whereInProductsId != " in ()") { - $data = $db::getRows("SELECT id,min_lot FROM products_1c_options WHERE id $whereInProductsId"); + $sql = "SELECT id,min_lot FROM products_1c_options WHERE id $whereInProductsId"; +// var_dump($sql); die; + $data = $db::getRows($sql); foreach ($data as $row) { $data_up[$row["id"]][0][0] = $row["min_lot"]; } diff --git a/erp24/modul/shipment/fields/min_order.php b/erp24/modul/shipment/fields/min_order.php index 0f1c611..c2142fb 100644 --- a/erp24/modul/shipment/fields/min_order.php +++ b/erp24/modul/shipment/fields/min_order.php @@ -1,9 +1,11 @@ 0 AND order_id=" . ($orderId ?? 0). " AND store_id='' AND color='' group by product_id, value"; +$prices=[]; +$sql = "SELECT product_id, value FROM store_orders_fields_data WHERE field_name='purchase_price' AND value>0 AND order_id=" . ($orderId ?? 0). " 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"]; - $sql = "SELECT product_id,sum(value) as value, store_id FROM store_orders_fields_data WHERE field_name='quantity_zakup_new' AND value>0 +$data = $db::getRows($sql); +foreach($data as $row) { + $prices[$row["product_id"]] = $row["value"]; +} + +$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 ?? 0) . " 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"
".$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] = ($data_up[$row["product_id"]][0][0] ?? 0) + $s; - } +$data=$db::getRows($sql); +foreach($data as $row) { + $s = intval(($row["value"] ?? 0) * ($prices[$row["product_id"]] ?? 0)); + // echo"
".$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] = ($data_up[$row["product_id"]][0][0] ?? 0) + $s; +} diff --git a/erp24/modul/shipment/fields/price_zakup_summ.php b/erp24/modul/shipment/fields/price_zakup_summ.php index 08ff232..49cf628 100644 --- a/erp24/modul/shipment/fields/price_zakup_summ.php +++ b/erp24/modul/shipment/fields/price_zakup_summ.php @@ -3,16 +3,16 @@ global $FiledsDataArray, $orderId, $products, $data_up; $FiledsDataArray=[]; -$dataF=$db::getRows("SELECT field_name, product_id, value +$sql = "SELECT field_name, product_id, value FROM store_orders_fields_data WHERE order_id=? AND color='' AND store_id='' -AND field_name IN ('purchase_price_zakup','quantity_zakup_fact')",[$orderId]); - +AND field_name IN ('purchase_price_zakup','quantity_zakup_fact')"; +//var_dump($sql); var_dump($orderId); die; +$dataF=$db::getRows($sql, [$orderId]); foreach($dataF as $row) { - $FiledsDataArray[$row["field_name"]][$row["product_id"]]=$row["value"]; + $FiledsDataArray[$row["field_name"]][$row["product_id"]] = $row["value"]; } - foreach($products ?? [] as $product_id => $name){ $data_up[$product_id][0][0] = round(($FiledsDataArray["purchase_price_zakup"][$product_id] ?? 0) * ($FiledsDataArray["quantity_zakup_fact"][$product_id] ?? 0),2); } diff --git a/erp24/modul/shipment/fields/purchase_fact_difference.php b/erp24/modul/shipment/fields/purchase_fact_difference.php index a7c826c..23494c8 100644 --- a/erp24/modul/shipment/fields/purchase_fact_difference.php +++ b/erp24/modul/shipment/fields/purchase_fact_difference.php @@ -1,23 +1,27 @@ $name) { - // echo"

$name

"; - foreach($orderStoresArrayRelation as $storeId ) { - - $data_up[$productId][0][0] = ( $FiledsDataArray["quantity_warehouseman_fact"][$productId] - $FiledsDataArray["quantity_zakup_fact"][$productId] ); - } - + // echo"

$name

"; + foreach($orderStoresArrayRelation as $storeId ) { + $data_up[$productId][0][0] = (($FiledsDataArray["quantity_warehouseman_fact"][$productId] ?? 0) + - ($FiledsDataArray["quantity_zakup_fact"][$productId] ?? 0)); + } } diff --git a/erp24/modul/shipment/fields/purchase_logistic.php b/erp24/modul/shipment/fields/purchase_logistic.php index 9f550b0..4c272d3 100644 --- a/erp24/modul/shipment/fields/purchase_logistic.php +++ b/erp24/modul/shipment/fields/purchase_logistic.php @@ -1,4 +1,5 @@ -0 diff --git a/erp24/modul/shipment/fields/purchase_price.php b/erp24/modul/shipment/fields/purchase_price.php index de74b54..3bca480 100644 --- a/erp24/modul/shipment/fields/purchase_price.php +++ b/erp24/modul/shipment/fields/purchase_price.php @@ -4,6 +4,7 @@ global $whereInProductsId, $data_up; if ($whereInProductsId != " in ()") { $sql = "SELECT product_id, price FROM prices WHERE product_id $whereInProductsId"; +// var_dump($sql); die; $data = $db::getRows($sql); foreach ($data as $row) { diff --git a/erp24/modul/shipment/fields/purchase_price_zakup.php b/erp24/modul/shipment/fields/purchase_price_zakup.php index 37e27ae..e5d0c5a 100644 --- a/erp24/modul/shipment/fields/purchase_price_zakup.php +++ b/erp24/modul/shipment/fields/purchase_price_zakup.php @@ -1,4 +1,5 @@ - $name){ - // розничная цена в рублях на сумму закупки по факту закупщиком - $data_up[$product_id][0][0] = round(($FiledsDataArray["purchase_price"][$product_id] ?? 0) * ($FiledsDataArray["quantity_zakup_fact"][$product_id] ?? 0)); - -} + // розничная цена в рублях на сумму закупки по факту закупщиком + $data_up[$product_id][0][0] = round(($FiledsDataArray["purchase_price"][$product_id] ?? 0) * ($FiledsDataArray["quantity_zakup_fact"][$product_id] ?? 0)); +} diff --git a/erp24/modul/shipment/fields/quantity.php b/erp24/modul/shipment/fields/quantity.php index 9d06779..e6e7267 100644 --- a/erp24/modul/shipment/fields/quantity.php +++ b/erp24/modul/shipment/fields/quantity.php @@ -7,6 +7,7 @@ if ($whereInProductsId != " in ()") { FROM store_planogram WHERE quantity>0 AND product_id $whereInProductsId AND store_id $orderStoresArrayRelation_in group by product_id, color, store_id, quantity"; +// var_dump($sql); die; $store_planogram = $db::getRows($sql); foreach ($store_planogram as $row) { diff --git a/erp24/modul/shipment/fields/quantity_fact.php b/erp24/modul/shipment/fields/quantity_fact.php index 7e0c305..b2c41f7 100644 --- a/erp24/modul/shipment/fields/quantity_fact.php +++ b/erp24/modul/shipment/fields/quantity_fact.php @@ -2,14 +2,16 @@ global $orderStoresArrayRelation_in, $whereInProductsId, $data_up; -$date_id=$db::getValue("SELECT date_id FROM store_products_fact order by date_id DESC LIMIT 1"); +$sql = "SELECT date_id FROM store_products_fact order by date_id DESC LIMIT 1"; +//var_dump($sql); die; +$date_id = $db::getValue($sql); if ($whereInProductsId != " in ()") { $sql = "SELECT product_id,quantity, store_id,color FROM store_products_fact WHERE quantity>0 AND date_id=? AND store_id $orderStoresArrayRelation_in AND product_id $whereInProductsId"; - +// var_dump($sql); var_dump($date_id); die; $store_products_fact = $db::getRows($sql, [$date_id]); foreach ($store_products_fact as $row) { $data_up[$row["product_id"]][$row["store_id"]][$row["color"]] = ($data_up[$row["product_id"]][$row["store_id"]][$row["color"]] ?? 0) + $row["quantity"]; diff --git a/erp24/modul/shipment/fields/quantity_rejection.php b/erp24/modul/shipment/fields/quantity_rejection.php index 675e765..a4abe2d 100644 --- a/erp24/modul/shipment/fields/quantity_rejection.php +++ b/erp24/modul/shipment/fields/quantity_rejection.php @@ -1,2 +1,2 @@ -0 + $sql = "SELECT product_id,store_id,quantity FROM balances WHERE quantity>0 AND product_id $whereInProductsId -AND store_id $orderStoresArrayRelation_in"); +AND store_id $orderStoresArrayRelation_in"; +// var_dump($sql); die; + $data2 = $db::getRows($sql); foreach ($data2 as $row2) { $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"]; diff --git a/erp24/modul/shipment/fields/quantity_warehouseman_fact.php b/erp24/modul/shipment/fields/quantity_warehouseman_fact.php index 16c821e..67f226e 100644 --- a/erp24/modul/shipment/fields/quantity_warehouseman_fact.php +++ b/erp24/modul/shipment/fields/quantity_warehouseman_fact.php @@ -1,9 +1,13 @@ -0 AND store_id $orderStoresArrayRelation_in - AND order_id='$orderId' AND color='' AND store_id!='' group by product_id"); - foreach($data2 as $row2) { - $data_up[$row2["product_id"]][0][0] +=(int)$row2["value"]; - } + AND order_id=" . ($orderId ?? 0) . " AND color='' AND store_id!='' group by product_id"; +//var_dump($sql); die; +$data2=$db::getRows($sql); +foreach($data2 as $row2) { + $data_up[$row2["product_id"]][0][0] = ($data_up[$row2["product_id"]][0][0] ?? 0) + (int)$row2["value"]; +} diff --git a/erp24/modul/shipment/fields/quantity_warehouseman_fact_defective_related.php b/erp24/modul/shipment/fields/quantity_warehouseman_fact_defective_related.php index 3be8cc2..3057fef 100644 --- a/erp24/modul/shipment/fields/quantity_warehouseman_fact_defective_related.php +++ b/erp24/modul/shipment/fields/quantity_warehouseman_fact_defective_related.php @@ -1,24 +1,34 @@ -0 group by order_id,product_id,color"); - foreach($data as $row) { - if(!empty($row["color"])) $data_up[$row["product_id"]][0][$row["color"]] +=$row["value"]; - if(empty($row["color"])) $data_up[$row["product_id"]][0][0] +=$row["value"]; - //echo"
order=".$row["order_id"]." ".$products[$row["product_id"]]." = ".$row["color"]." = ".$row["value"].""; - - } + $sql = "SELECT order_id,product_id, sum(value) value, color FROM store_orders_fields_data WHERE + order_id IN ($whereInOrderId) AND product_id $whereInProductsId + AND field_name='quantity_warehouseman_defective' AND store_id='' AND value>0 group by order_id,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][$row["color"]] = ($data_up[$row["product_id"]][0][$row["color"]] ?? 0) + $row["value"]; + } + if (empty($row["color"])) { + $data_up[$row["product_id"]][0][0] = ($data_up[$row["product_id"]][0][0] ?? 0) + $row["value"]; + } + //echo"
order=".$row["order_id"]." ".$products[$row["product_id"]]." = ".$row["color"]." = ".$row["value"].""; + } } \ No newline at end of file diff --git a/erp24/modul/shipment/fields/quantity_warehouseman_fact_related.php b/erp24/modul/shipment/fields/quantity_warehouseman_fact_related.php index d540a78..dfe5082 100644 --- a/erp24/modul/shipment/fields/quantity_warehouseman_fact_related.php +++ b/erp24/modul/shipment/fields/quantity_warehouseman_fact_related.php @@ -1,26 +1,30 @@ -0 group by product_id,color"); - foreach($data as $row) { - - $data_up[$row["product_id"]][0][$row["color"]]=$row["value"]; - if(empty($row["color"])) $data_up[$row["product_id"]][0][0] +=$row["value"]; - - // echo"
".$row["product_id"]." = store_id=".$row["store_id"]." ".$row["value"].""; - - } + foreach($data as $row) { + $data_up[$row["product_id"]][0][$row["color"]] = $row["value"]; + if (empty($row["color"])) { + $data_up[$row["product_id"]][0][0] = ($data_up[$row["product_id"]][0][0] ?? 0) + $row["value"]; + } + // echo"
".$row["product_id"]." = store_id=".$row["store_id"]." ".$row["value"].""; + } } \ No newline at end of file diff --git a/erp24/modul/shipment/fields/quantity_warehouseman_fact_summ.php b/erp24/modul/shipment/fields/quantity_warehouseman_fact_summ.php index 36d3896..71179b1 100644 --- a/erp24/modul/shipment/fields/quantity_warehouseman_fact_summ.php +++ b/erp24/modul/shipment/fields/quantity_warehouseman_fact_summ.php @@ -1,33 +1,49 @@ -0 group by order_id,product_id,color"); - foreach($data as $row) { - if(!empty($row["color"])) $data_up[$row["product_id"]][0][$row["color"]] +=$row["value"]; - if(empty($row["color"])) $data_up[$row["product_id"]][0][0] +=$row["value"]; - //echo"
order=".$row["order_id"]." ".$products[$row["product_id"]]." = ".$row["color"]." = ".$row["value"].""; +AND field_name in('quantity_warehouseman_defective','quantity_warehouseman_fact') AND store_id='' AND value>0 group by order_id,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][$row["color"]] = ($data_up[$row["product_id"]][0][$row["color"]] ?? 0) + $row["value"]; + } + if (empty($row["color"])) { + $data_up[$row["product_id"]][0][0] = ($data_up[$row["product_id"]][0][0] ?? 0) + $row["value"]; + } + //echo"
order=".$row["order_id"]." ".$products[$row["product_id"]]." = ".$row["color"]." = ".$row["value"].""; } } - -$data=$db::getRows("SELECT order_id,product_id, sum(value) value, color FROM store_orders_fields_data WHERE +$sql = "SELECT order_id,product_id, sum(value) value, color FROM store_orders_fields_data WHERE order_id=? AND product_id $whereInProductsId -AND field_name in('quantity_warehouseman_defective','quantity_warehouseman_fact') AND store_id='' AND value>0 group by order_id,product_id,color",[$orderId]); - foreach($data as $row) { - if(!empty($row["color"])) $data_up[$row["product_id"]][0][$row["color"]] +=$row["value"]; - if(empty($row["color"])) $data_up[$row["product_id"]][0][0] +=$row["value"]; - //echo"
order=".$row["order_id"]." ".$products[$row["product_id"]]." = ".$row["color"]." = ".$row["value"].""; +AND field_name in('quantity_warehouseman_defective','quantity_warehouseman_fact') AND store_id='' AND value>0 group by order_id,product_id,color"; +//var_dump($sql); var_dump($orderId); die; +$data = $db::getRows($sql, [$orderId]); +foreach($data as $row) { + if (!empty($row["color"])) { + $data_up[$row["product_id"]][0][$row["color"]] = ($data_up[$row["product_id"]][0][$row["color"]] ?? 0) + $row["value"]; + } + if (empty($row["color"])) { + $data_up[$row["product_id"]][0][0] = ($data_up[$row["product_id"]][0][0] ?? 0) + $row["value"]; } + //echo"
order=".$row["order_id"]." ".$products[$row["product_id"]]." = ".$row["color"]." = ".$row["value"].""; +} diff --git a/erp24/modul/shipment/fields/quantity_zakup_fact.php b/erp24/modul/shipment/fields/quantity_zakup_fact.php index e69de29..b3d9bbc 100644 --- a/erp24/modul/shipment/fields/quantity_zakup_fact.php +++ b/erp24/modul/shipment/fields/quantity_zakup_fact.php @@ -0,0 +1 @@ + $name) { - // echo"

$name

"; - foreach($orderStoresArrayRelation as $storeId ) { - $data_up[$productId][0][0] = round( $FiledsDataArray["purchase_price"][$productId] * $FiledsDataArray["quantity_zakup_fact"][$productId] ); - } - + // echo"

$name

"; + foreach($orderStoresArrayRelation as $storeId ) { + $data_up[$productId][0][0] = round( ($FiledsDataArray["purchase_price"][$productId] ?? 0) * ($FiledsDataArray["quantity_zakup_fact"][$productId] ?? 0)); + } } diff --git a/erp24/modul/shipment/fields/quantity_zakup_new.php b/erp24/modul/shipment/fields/quantity_zakup_new.php index 5d77bdc..2c6d5bd 100644 --- a/erp24/modul/shipment/fields/quantity_zakup_new.php +++ b/erp24/modul/shipment/fields/quantity_zakup_new.php @@ -1,24 +1,28 @@ -0 AND store_id $orderStoresArrayRelation_in AND store_id!='' - AND order_id=? AND color!='' AND store_id!='' group by product_id,store_id,color",[$orderId]); - foreach($data as $row) { - $data_up[$row["product_id"]][0][$row["color"]] +=(int)$row["value"]; - // $data_up[$row["product_id"]][0][0] +=(int)$row["value"]; - // echo"
Всего quantity_zakup_new ".$products[$row["product_id"]]." = ".$row["value"]." "; - } + AND order_id=? AND color!='' AND store_id!='' group by product_id,store_id,color"; +//var_dump($sql); var_dump($orderId); die; +$data = $db::getRows($sql, [$orderId]); +foreach($data as $row) { + $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] +=(int)$row["value"]; + // echo"
Всего quantity_zakup_new ".$products[$row["product_id"]]." = ".$row["value"]." "; +} - $data=$db::getRows("SELECT product_id,sum(value) as value FROM store_orders_fields_data WHERE +$sql = "SELECT product_id,sum(value) as value FROM store_orders_fields_data WHERE field_name='quantity_zakup_new' AND value>0 AND store_id $orderStoresArrayRelation_in AND store_id!='' - AND order_id=? AND color='' AND store_id!='' group by product_id",[$orderId]); - foreach($data as $row) { - $data_up[$row["product_id"]][0][0] +=(int)$row["value"]; - - } + AND order_id=? AND color='' AND store_id!='' group by product_id"; +//var_dump($sql); var_dump($orderId); die; +$data = $db::getRows($sql, [$orderId]); +foreach($data as $row) { + $data_up[$row["product_id"]][0][0] = ($data_up[$row["product_id"]][0][0] ?? 0) + (int)$row["value"]; +} diff --git a/erp24/modul/shipment/fields/sales_4weeks_cnt.php b/erp24/modul/shipment/fields/sales_4weeks_cnt.php index c42895e..0270c45 100644 --- a/erp24/modul/shipment/fields/sales_4weeks_cnt.php +++ b/erp24/modul/shipment/fields/sales_4weeks_cnt.php @@ -1,18 +1,20 @@ ='$date_start_sale'::date -interval '$day_sales day' group BY i.product_id, s.store_id_1c "); +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 "; +// var_dump($sql); die; + $data2 = $db::getRows($sql); foreach ($data2 as $row2) { - $cnt = round(($row2["sale_cnt"] - $row2["vozvr_cnt"]) / 4); + $cnt = round((($row2["sale_cnt"] ?? 0) - ($row2["vozvr_cnt"] ?? 0)) / 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; diff --git a/erp24/modul/shipment/fields/sales_7day_amount_division.php b/erp24/modul/shipment/fields/sales_7day_amount_division.php index e26d455..7a3a443 100644 --- a/erp24/modul/shipment/fields/sales_7day_amount_division.php +++ b/erp24/modul/shipment/fields/sales_7day_amount_division.php @@ -1,33 +1,39 @@ $pArray) { -$day_sales=$configGroupProducts[$group]["day_sales"] ?? 0; -//echo"
+++

$group дней $day_sales

"; +foreach($productGroupArray as $group => $pArray) { + $day_sales=$configGroupProducts[$group]["day_sales"] ?? 0; + //echo"
+++

$group дней $day_sales

"; -//собираем условие по выборке товаров -$whereInProductsId_in=""; -$j=0; -foreach($pArray as $prodId) {if($j>0) $whereInProductsId_in .=","; $whereInProductsId_in .="'$prodId'"; $j++;} + //собираем условие по выборке товаров + $whereInProductsId_in=""; + $j=0; + foreach($pArray as $prodId) { + if ($j>0) { + $whereInProductsId_in .=","; + } + $whereInProductsId_in .="'$prodId'"; + $j++; + } -if(!empty($whereInProductsId_in)) { -$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'::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] = ($data_up[$row2["product_id"]][0][0] ?? 0) + $sale; + if (!empty($whereInProductsId_in)) { + $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'::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"] ?? 0) - ($row2["vozvr"] ?? 0); + $sale = (int)$sale; + if(!empty($sale)) { + $data_up[$row2["product_id"]][$row2["store_id"]][0] = $sale; + $data_up[$row2["product_id"]][0][0] = ($data_up[$row2["product_id"]][0][0] ?? 0) + $sale; + } + } + } } -} -} -} \ No newline at end of file diff --git a/erp24/modul/shipment/fields/sales_7day_division.php b/erp24/modul/shipment/fields/sales_7day_division.php index 3884e7f..019ddee 100644 --- a/erp24/modul/shipment/fields/sales_7day_division.php +++ b/erp24/modul/shipment/fields/sales_7day_division.php @@ -1,35 +1,40 @@ $pArray) { -$day_sales=$configGroupProducts[$group]["day_sales"] ?? 0; -//echo"
+++

$group дней $day_sales

"; + $day_sales = $configGroupProducts[$group]["day_sales"] ?? 0; + //echo"
+++

$group дней $day_sales

"; -//собираем условие по выборке товаров -$whereInProductsId_in=""; -$j=0; -foreach($pArray as $prodId) {if($j>0) $whereInProductsId_in .=","; $whereInProductsId_in .="'$prodId'"; $j++;} + //собираем условие по выборке товаров + $whereInProductsId_in=""; + $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, 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'::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] = ($data_up[$row2["product_id"]][0][0] ?? 0) + $cnt; - } - } -} - - -} \ No newline at end of file + if (!empty($whereInProductsId_in)) { + $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 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'::date -interval '$day_sales day' group BY i.product_id, s.store_id_1c, s.operation "); +// var_dump($sql); die; + $data2 = $db::getRows($sql); + foreach ($data2 as $row2) { + $cnt = ($row2["sale_cnt"] ?? 0) - ($row2["vozvr_cnt"] ?? 0); + $cnt = (int)$cnt; + if (!empty($cnt)) { + $data_up[$row2["product_id"]][$row2["store_id"]][0] = $cnt; + $data_up[$row2["product_id"]][0][0] = ($data_up[$row2["product_id"]][0][0] ?? 0) + $cnt; + } + } + } +} diff --git a/erp24/modul/shipment/fields/sales_amount.php b/erp24/modul/shipment/fields/sales_amount.php index d6cbd1d..3d11f08 100644 --- a/erp24/modul/shipment/fields/sales_amount.php +++ b/erp24/modul/shipment/fields/sales_amount.php @@ -4,34 +4,37 @@ global $productGroupArray, $configGroupProducts, $whereInProductsId, $orderStore //массив с товарами из данной закупки разнесенных по категориям foreach($productGroupArray as $group =>$pArray) { + //собираем условие по выборке товаров + $whereInProductsId_in=""; + $j=0; + foreach($pArray as $prodId) { + if ($j>0) { + $whereInProductsId_in .=","; + } + $whereInProductsId_in .="'$prodId'"; + $j++; + } - -//собираем условие по выборке товаров -$whereInProductsId_in=""; -$j=0; -foreach($pArray as $prodId) { - - if($j>0) $whereInProductsId_in .=","; $whereInProductsId_in .="'$prodId'"; $j++;} - -if(!empty($whereInProductsId_in)) { -$day_sales=$configGroupProducts[$group]["day_sales"] ?? 0; // массив группы товаров с данными за какоц период считать статистику в днях -} + if (!empty($whereInProductsId_in)) { + $day_sales = $configGroupProducts[$group]["day_sales"] ?? 0; // массив группы товаров с данными за какой период считать статистику в днях + } } 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'::date -interval '7 day' group BY i.product_id, s.store_id_1c "); + $sql = "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'::date -interval '7 day' group BY i.product_id, s.store_id_1c "; +// var_dump($sql); die; + $data2 = $db::getRows($sql); foreach ($data2 as $row2) { - $cnt = $row2["sale_cnt"] - $row2["vozvr_cnt"]; + $cnt = ($row2["sale_cnt"] ?? 0) - ($row2["vozvr_cnt"] ?? 0); $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"
sales_amount ".$products[$row2["product_id"]]." ".$row2["store_id"]." $cnt "; } } diff --git a/erp24/modul/shipment/fields/sales_cnt.php b/erp24/modul/shipment/fields/sales_cnt.php index 0edbca3..a38e134 100644 --- a/erp24/modul/shipment/fields/sales_cnt.php +++ b/erp24/modul/shipment/fields/sales_cnt.php @@ -2,8 +2,8 @@ global $whereInProductsId, $orderStoresArrayRelation_in, $date_start_sale, $data_up; -$data_up=[]; -$day_sales=7; +$data_up = []; +$day_sales = 7; 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 @@ -11,9 +11,10 @@ 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'::date -interval '$day_sales day' group BY i.product_id, s.store_id_1c "; +// var_dump($sql); die; $data2 = $db::getRows($sql); foreach ($data2 as $row2) { - $cnt = $row2["sale_cnt"] - $row2["vozvr_cnt"]; + $cnt = ($row2["sale_cnt"] ?? 0) - ($row2["vozvr_cnt"] ?? 0); $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; diff --git a/erp24/modul/shipment/fields/sales_division_4weeks_cnt_avg.php b/erp24/modul/shipment/fields/sales_division_4weeks_cnt_avg.php index 30f578c..30da1ec 100644 --- a/erp24/modul/shipment/fields/sales_division_4weeks_cnt_avg.php +++ b/erp24/modul/shipment/fields/sales_division_4weeks_cnt_avg.php @@ -2,17 +2,19 @@ global $whereInProductsId, $orderStoresArrayRelation_in, $date_start_division, $data_up; -$day_sales=7*4; -$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 +$day_sales = 7*4; +$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 store_id_1c $orderStoresArrayRelation_in -AND s.date<='$date_start_division 00:00:00' AND s.date>=('$date_start_division'::date - '$day_sales day'::interval) 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; - } - } +AND s.date<='$date_start_division 00:00:00' AND s.date>=('$date_start_division'::date - '$day_sales day'::interval) group BY i.product_id, s.store_id_1c "; +//var_dump($sql); die; +$data2 = $db::getRows($sql); +foreach($data2 as $row2) { + $cnt = round((($row2["sale_cnt"] ?? 0) - ($row2["vozvr_cnt"] ?? 0))/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; + } +} diff --git a/erp24/modul/shipment/fields/scheduled_delivery_cnt.php b/erp24/modul/shipment/fields/scheduled_delivery_cnt.php index c6c6ad8..3098fe3 100644 --- a/erp24/modul/shipment/fields/scheduled_delivery_cnt.php +++ b/erp24/modul/shipment/fields/scheduled_delivery_cnt.php @@ -1,30 +1,34 @@ ='$date_start_sale' -interval 27 day */ -$data=$db::getRows("SELECT id FROM store_orders WHERE status=5"); +$sql = "SELECT id FROM store_orders WHERE status=5"; +//var_dump($sql); die; +$data = $db::getRows($sql); $whereInOrderId=""; $i=0; foreach($data as $row) { - $whereInOrderId .=" '".$row["id"]."' "; - if($i<(count($data)-1)) $whereInOrderId .=" , "; - $i++; + $whereInOrderId .= " '" . $row["id"] . "' "; + if ($i<(count($data)-1)) { + $whereInOrderId .= " , "; + } + $i++; } if(!empty($whereInOrderId) && $whereInProductsId != " in ()") { -$sql = "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, value"; -$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"] = ($data_up[$row["product_id"]][0]["0"] ?? 0) + $row["value"]; // echo"
".$row["product_id"]." = store_id=".$row["store_id"]." ".$row["value"].""; - - } -} \ No newline at end of file +// 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"] = ($data_up[$row["product_id"]][0]["0"] ?? 0) + $row["value"]; // echo"
".$row["product_id"]." = store_id=".$row["store_id"]." ".$row["value"].""; + } +} diff --git a/erp24/modul/shipment/fields/score.php b/erp24/modul/shipment/fields/score.php index 32bb394..104ba3d 100644 --- a/erp24/modul/shipment/fields/score.php +++ b/erp24/modul/shipment/fields/score.php @@ -1,73 +1,68 @@ - $name) { -// echo"

$name

"; -$scoreall=0; $cnt=0; - foreach($orderStoresArrayRelation as $storeId ) { - if($scoreArr[$productId][$storeId]>0) { - $scoreall += $scoreArr[$productId][$storeId]; - $cnt++; + // echo"

$name

"; + $scoreall = 0; + $cnt = 0; + foreach($orderStoresArrayRelation as $storeId ) { + if (($scoreArr[$productId][$storeId] ?? 0) > 0) { + $scoreall += $scoreArr[$productId][$storeId]; + $cnt++; + } + } + if ($scoreall > 0) { + $data_up[$productId][0][0] = round($scoreall / $cnt,2) ; } - } -if($scoreall>0) $data_up[$productId][0][0] =round($scoreall/$cnt,2) ; - - } - - - - $scoreArr=[]; -$dataF=$db::getRows("SELECT product_id, store_id, value,color +$scoreArr=[]; +$sql = "SELECT product_id, store_id, value,color FROM store_orders_fields_data WHERE order_id=? AND store_id $orderStoresArrayRelation_in AND color!='' AND store_id!='' AND field_name IN ('score') -AND value!=0",[$orderId]); +AND value!=0"; +//var_dump($sql); var_dump($orderId); die; +$dataF = $db::getRows($sql, [$orderId]); foreach($dataF as $row) { - $scoreArr[$row["product_id"]][$row["store_id"]][$row["color"]]=(int)$row["value"]; + $scoreArr[$row["product_id"]][$row["store_id"]][$row["color"]] = (int)$row["value"]; } - //пробегаемся по всем продуктам -foreach($products as $productId => $name) { -// echo"

$name

"; - - foreach($productsColorsArray[$productId] as $color) { - $color=trim($color); - $scoreall=0; $cnt=0; - foreach($orderStoresArrayRelation as $storeId ) { - - if($scoreArr[$productId][$storeId][$color]>0) { - $scoreall += $scoreArr[$productId][$storeId][$color]; - $cnt++; - } - } - if($scoreall>0) $data_up[$productId][0][$color]=round($scoreall/$cnt,2) ; +//пробегаемся по всем продуктам +foreach($products as $productId => $name) { + // echo"

$name

"; + foreach($productsColorsArray[$productId] as $color) { + $color = trim($color); + $scoreall = 0; + $cnt = 0; + foreach($orderStoresArrayRelation as $storeId ) { + if ($scoreArr[$productId][$storeId][$color] > 0) { + $scoreall += $scoreArr[$productId][$storeId][$color]; + $cnt++; + } + } + if ($scoreall > 0) { + $data_up[$productId][0][$color] = round($scoreall/$cnt,2); + } } - - } - - - - - - - - - diff --git a/erp24/modul/shipment/fields/storehouse_balance.php b/erp24/modul/shipment/fields/storehouse_balance.php index 99c8e42..2aa7860 100644 --- a/erp24/modul/shipment/fields/storehouse_balance.php +++ b/erp24/modul/shipment/fields/storehouse_balance.php @@ -1,19 +1,23 @@ $nameProduct) { // echo"
$nameProduct ".$FiledsDataArray["quantity_warehouseman_fact"][$productId][0] ." - ".$FiledsDataArray["division_store_summ"][$productId][0].""; $data_up[$productId][0][0] = ($FiledsDataArray["quantity_warehouseman_fact"][$productId][0] ?? 0) - ($FiledsDataArray["division_summ"][$productId][0] ?? 0); - foreach($productsColorsArray[$productId] ?? [] as $color) { - $color=trim($color); + $color = trim($color); $data_up[$productId][0][$color] = ($FiledsDataArray["quantity_warehouseman_fact"][$productId][$color] ?? 0) - ($FiledsDataArray["division_summ"][$productId][$color] ?? 0); } -} \ No newline at end of file +} diff --git a/erp24/modul/shipment/fields/storehouse_balance_store.php b/erp24/modul/shipment/fields/storehouse_balance_store.php index 77b13ff..dd946d9 100644 --- a/erp24/modul/shipment/fields/storehouse_balance_store.php +++ b/erp24/modul/shipment/fields/storehouse_balance_store.php @@ -1,47 +1,44 @@ -Storehouse_balance"; foreach($products as $productId => $nameProduct) { - - $data_up[$productId][0][0]=$FiledsDataArray["quantity_warehouseman_fact"][$productId][0] - $FiledsDataArray["division_store_summ"][$productId][0]; + $data_up[$productId][0][0] = ($FiledsDataArray["quantity_warehouseman_fact"][$productId][0] ?? 0) - ($FiledsDataArray["division_store_summ"][$productId][0] ?? 0); } - - - -$FiledsDataArray=[]; -$dataF=$db::getRows("SELECT field_name, product_id, value, color +$FiledsDataArray= []; +$sql = "SELECT field_name, product_id, value, color FROM store_orders_fields_data WHERE order_id=? AND color!='' AND store_id='' AND field_name IN ('quantity_warehouseman_fact','division_store_summ') -AND value!=0",[$orderId]); +AND value!=0"; +//var_dump($sql); var_dump($orderId); die; +$dataF = $db::getRows($sql, [$orderId]); foreach($dataF as $row) { - $FiledsDataArray[$row["field_name"]][$row["product_id"]][$row["color"]] =(int)$row["value"]; + $FiledsDataArray[$row["field_name"]][$row["product_id"]][$row["color"]] = (int)$row["value"]; } - //echo"

Storehouse_balance

"; foreach($products as $productId => $nameProduct) { - 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]; - } - -} - + foreach($productsColorsArray[$productId] ?? [] as $color) { + $color = trim($color); + $data_up[$productId][0][$color] = ($FiledsDataArray["quantity_warehouseman_fact"][$productId][$color] ?? 0) - ($FiledsDataArray["division_store_summ"][$productId][$color] ?? 0); + } +} diff --git a/erp24/modul/shipment/fields/write_downs.php b/erp24/modul/shipment/fields/write_downs.php index d27dfd5..841b10c 100644 --- a/erp24/modul/shipment/fields/write_downs.php +++ b/erp24/modul/shipment/fields/write_downs.php @@ -3,19 +3,21 @@ global $orderStoresArrayRelation_in, $whereInProductsId, $date_start_sale, $data_up; //списания за 7 дней- недельное списание от даты старта / 4 = среднее за неделю -$periodDaysStats=7; +$periodDaysStats = 7; 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'::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] = ($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 + $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 $whereInProductsId + AND w.store_id $orderStoresArrayRelation_in + 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"; + //var_dump($sql); die; + $data2 = $db::getRows($sql); + foreach($data2 as $row2) { + $a = round($row2["cnt"] ?? 0); + if(!empty($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 diff --git a/erp24/modul/shipment/fields/write_offs_4week_cnt_avg.php b/erp24/modul/shipment/fields/write_offs_4week_cnt_avg.php index 4453c0d..836f047 100644 --- a/erp24/modul/shipment/fields/write_offs_4week_cnt_avg.php +++ b/erp24/modul/shipment/fields/write_offs_4week_cnt_avg.php @@ -13,12 +13,13 @@ 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'::date -interval '$periodDaysStats day' group BY p.product_id,w.store_id"; - $data2=$db::getRows($sql); - foreach($data2 as $row2) { - $a = round($row2["cnt"]/4); +// var_dump($sql); die; + $data2 = $db::getRows($sql); + foreach ($data2 as $row2) { + $a = round(($row2["cnt"] ?? 0)/4); if(!empty($a)) { $data_up[$row2["product_id"]][$row2["store_id"]][0] = $a; $data_up[$row2["product_id"]][0][0] = ($data_up[$row2["product_id"]][0][0] ?? 0) + $a; } } -} \ No newline at end of file +} diff --git a/erp24/modul/shipment/fields/write_offs_4week_sum.php b/erp24/modul/shipment/fields/write_offs_4week_sum.php index abf8965..df5189d 100644 --- a/erp24/modul/shipment/fields/write_offs_4week_sum.php +++ b/erp24/modul/shipment/fields/write_offs_4week_sum.php @@ -3,7 +3,7 @@ global $orderStoresArrayRelation_in, $whereInProductsId, $date_start_sale; //списания за 4 недели среднее - 4-х недельное списание от даты старта / 4 = среднее за неделю в рублях -$periodDaysStats=28; +$periodDaysStats = 28; if(!empty($orderStoresArrayRelation_in) && !empty($date_start_sale)) { $sql = "SELECT p.product_id,p.summ, w.store_id FROM write_offs as w, write_offs_products as p @@ -12,9 +12,10 @@ 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'::date -interval '$periodDaysStats day' group BY p.product_id,w.store_id, p.summ"; - $data2=$db::getRows($sql); +// var_dump($sql); die; + $data2 = $db::getRows($sql); foreach($data2 as $row2) { - $a=round ($row2["summ"]/4) ; + $a = round(($row2["summ"] ?? 0) / 4); if(!empty($a)) { $data_up[$row2["product_id"]][$row2["store_id"]][0] = $a; $data_up[$row2["product_id"]][0][0] = ($data_up[$row2["product_id"]][0][0] ?? 0) + $a; diff --git a/erp24/modul/shipment/fields/write_offs_comments.php b/erp24/modul/shipment/fields/write_offs_comments.php index 27ee3d6..709a07b 100644 --- a/erp24/modul/shipment/fields/write_offs_comments.php +++ b/erp24/modul/shipment/fields/write_offs_comments.php @@ -2,19 +2,28 @@ global $productGroupArray, $configGroupProducts, $orderStoresArrayRelation_in, $data_up; -foreach($productGroupArray as $group =>$pArray) { - $periodDaysStats=$configGroupProducts[$group]["day_write_offs"] ?? 0; - //echo"
+++

Списание $group дней $periodDaysStats

"; - //собираем условие по выборке товаров - $whereInProductsId_in=""; - $j=0; - foreach($pArray as $prodId) {if($j>0) $whereInProductsId_in .=","; $whereInProductsId_in .="'$prodId'"; $j++;} +foreach($productGroupArray as $group => $pArray) { + $periodDaysStats = $configGroupProducts[$group]["day_write_offs"] ?? 0; + //echo"
+++

Списание $group дней $periodDaysStats

"; + //собираем условие по выборке товаров + $whereInProductsId_in=""; + $j=0; + foreach ($pArray as $prodId) { + if ($j>0) { + $whereInProductsId_in .= ","; + } + $whereInProductsId_in .= "'$prodId'"; + $j++; + } - if(!empty($whereInProductsId_in)) { - if($periodDaysStats==7) $periodDaysStats_where=14; - else $periodDaysStats_where=$periodDaysStats; - - $date_start_sale2=date("Y-m-d"); + if (!empty($whereInProductsId_in)) { + if ($periodDaysStats==7) { + $periodDaysStats_where = 14; + } else { + $periodDaysStats_where = $periodDaysStats; + } + + $date_start_sale2 = date("Y-m-d"); $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 @@ -26,11 +35,13 @@ foreach($productGroupArray as $group =>$pArray) { AND w.date<='$date_start_sale2 00:00:00' 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; - } - } +// var_dump($sql); die; + $data2 = $db::getRows($sql); + foreach($data2 as $row2) { + $a = ($row2["comment_id"] ?? 0) . "=" . ($row2["cnt"] ?? 0) . "шт. "; + if (!empty($a)) { + $data_up[$row2["product_id"]][$row2["store_id"]][0] = ($data_up[$row2["product_id"]][$row2["store_id"]][0] ?? '') .$a; + } + } + } } \ No newline at end of file diff --git a/erp24/modul/shipment/fields/write_offs_division.php b/erp24/modul/shipment/fields/write_offs_division.php index 6ac851e..40ca901 100644 --- a/erp24/modul/shipment/fields/write_offs_division.php +++ b/erp24/modul/shipment/fields/write_offs_division.php @@ -1,33 +1,39 @@ $pArray) { -$periodDaysStats=$configGroupProducts[$group]["day_write_offs"] ?? '0'; -//echo"
+++

$group дней $periodDaysStats

"; +foreach($productGroupArray as $group => $pArray) { + $periodDaysStats = $configGroupProducts[$group]["day_write_offs"] ?? '0'; + //echo"
+++

$group дней $periodDaysStats

"; -//собираем условие по выборке товаров -$whereInProductsId_in=""; -$j=0; -foreach($pArray as $prodId) {if($j>0) $whereInProductsId_in .=","; $whereInProductsId_in .="'$prodId'"; $j++;} + //собираем условие по выборке товаров + $whereInProductsId_in=""; + $j=0; + foreach ($pArray as $prodId) { + if ($j>0) { + $whereInProductsId_in .= ","; + } + $whereInProductsId_in .= "'$prodId'"; + $j++; + } -if(!empty($whereInProductsId_in)) { - $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'::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"]); - if(!empty($a)) { - $data_up[$row2["product_id"]][$row2["store_id"]][0]=$a; - $data_up[$row2["product_id"]][0][0] +=$a; - } - } -} + if(!empty($whereInProductsId_in)) { + $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'::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"]); + if (!empty($a)) { + $data_up[$row2["product_id"]][$row2["store_id"]][0] = $a; + $data_up[$row2["product_id"]][0][0] = ($data_up[$row2["product_id"]][0][0] ?? 0) + $a; + } + } + } } \ No newline at end of file diff --git a/erp24/modul/shipment/fields/write_offs_sum.php b/erp24/modul/shipment/fields/write_offs_sum.php index 2e390f7..00ba8cf 100644 --- a/erp24/modul/shipment/fields/write_offs_sum.php +++ b/erp24/modul/shipment/fields/write_offs_sum.php @@ -1,11 +1,11 @@ ='$date_start_sale'::date -interval '$periodDaysStats day' group BY p.product_id,w.store_id, p.summ"; // var_dump($sql); die; - $data2=$db::getRows($sql); + $data2 = $db::getRows($sql); foreach($data2 as $row2) { - $a=$row2["summ"]; + $a = $row2["summ"] ?? 0; $data_up[$row2["product_id"]][$row2["store_id"]][0] = $a; $data_up[$row2["product_id"]][0][0] = ($data_up[$row2["product_id"]][0][0] ?? 0) + $a; }