public function actionStoreProductsFactEdit() { return $this->renderPartial('store-products-fact-edit'); }
public function actionAjaxField() { return $this->renderPartial('ajax-field'); }
public function actionPolnogramm() { return $this->render('polnogramm'); }
+ public function actionAjaxUpdateStoreZakup() { return $this->renderPartial('ajax-update-store-zakup'); }
}
\ No newline at end of file
-<?
-include_once("startup.php");
-include_once("inc/db.php");
-include_once("inc/base_new.php");
-include_once("inc/design_new.php");
+<?php
+include_once(dirname(__DIR__, 2) . "/startup.php");
+include_once(dirname(__DIR__, 2) . "/inc/db.php");
+include_once(dirname(__DIR__, 2) . "/inc/base_new.php");
+include_once(dirname(__DIR__, 2) . "/inc/design_new.php");
+
+error_reporting(E_ALL ^ E_NOTICE);
+
+global $orderId, $orderCityId, $status_order_id;
if(!empty($_REQUEST["id"])) $orderId=(int)$_REQUEST["id"]; else exit("Укажите ID закупки");
-include"modul/shipment/functionsShipment.php";
+include_once(__DIR__ . "/functionsShipment.php");
if(empty($orderCityId)) {
ob_start();
+try {
+ echo "<table><tbody>";
+ foreach ($arrayFiledsUpdate as $key => $Field) {
+ $f = "modul/shipment/fields/$Field.php";
+ if (is_file($f)) {
+ $data_up = [];
-echo"<table><tbody>";
-foreach($arrayFiledsUpdate as $key => $Field) {
- $f="modul/shipment/fields/$Field.php";
- if(is_file($f)) {
- $data_up=[];
-
- echo"<tr><td colspan=2>";
- include_once($f); // получаем данные в массив $data_up
- echo"</td></tr>";
-
- if(!empty($data_up)) { insert_store_orders_fields($data_up,$Field); // вносим данные в таблицу
- }
- echo"<tr><td class=\"text-right\"> <span class=\"btn btn-sm btn-default\">".$fieldsRows[$Field]["name"]." ".$fieldsRows[$Field]["name_eng"]."</span> </td><td><span class=\"btn btn-sm btn-success\">посчитано</span>";
-
- if(empty($data_up)) echo"пусто";
- echo"</td></tr> ";
-
- } else {
-
- echo"<tr><td colspan=2> !!нет файла $f</td></tr>";
- }
-}
-echo"</tbody></table>";
+ echo "<tr><td colspan=2>";
+ include_once($f); // получаем данные в массив $data_up
+ echo "</td></tr>";
+ if (!empty($data_up)) {
+ insert_store_orders_fields($data_up, $Field); // вносим данные в таблицу
+ }
+ echo "<tr><td class=\"text-right\"> <span class=\"btn btn-sm btn-default\">" . $fieldsRows[$Field]["name"] . " " . $fieldsRows[$Field]["name_eng"] . "</span> </td><td><span class=\"btn btn-sm btn-success\">посчитано</span>";
+
+ if (empty($data_up)) echo "пусто";
+ echo "</td></tr> ";
+
+ } else {
+
+ echo "<tr><td colspan=2> !!нет файла $f</td></tr>";
+
+ }
+ echo "</tbody></table>";
+ }
+} catch (Exception $ex) {
+ echo $ex->getFile(). ' ' . $ex->getLine() . ' ' . $ex->getMessage();
+ die;
+}
$output = ob_get_contents();
ob_end_clean();
-<?
+<?php
+
+global $whereInProductsId, $orderStoresArrayRelation_in, $products, $orderStoresArrayRelation, $storesArrayAll, $data_up;
$massivSQLColor=[];
$inProduct=[];
$data4=$db::getRows("SELECT id,colors FROM products_1c_options WHERE provider_id>0 AND colors!=''
AND id $whereInProductsId group by id order by id");
-
+$html = '';
foreach($data4 as $row2) {
$colors=explode(";",$row2["colors"]);
$productId=$row2["id"];
$html .="<table class=\"table table-sm table-bordered zak\"><thead><tr class=zag><th>цвет</th><th>магазин</th>
<th>пол-ма</th><th>кол-во по цвету</th><th>% от полнограммы</th></tr></thead><tbody>";
-
+
foreach($colors as $color) {
$color=trim($color);
-<?
+<?php
+
+global $whereInProductsId, $orderStoresArrayRelation_in, $orderId, $products, $orderStoresArrayRelation;
+
// округляет до определенного числа
function ceilCoef($number, $rate = 1)
{
// echo"<br> <h2>$name</h2>";
foreach($orderStoresArrayRelation as $storeId ) {
- $division_ratio=$FiledsDataArray["division_ratio"][$productId];
+ $division_ratio=$FiledsDataArray["division_ratio"][$productId] ?? 0;
if(empty($division_ratio)) $division_ratio=1;
- $d=$FiledsDataArray["division_auto_need"][$productId][$storeId] * $division_ratio;
+ $d=($FiledsDataArray["division_auto_need"][$productId][$storeId] ?? 0) * $division_ratio;
$data_up[$productId][$storeId][0]=ceilCoef($d,$min_lot[$productId]);
-<?
+<?php
- $data=$db::getRows("SELECT product_id,sum(value) as value,color FROM store_orders_fields_data WHERE
+global $orderId, $orderStoresArrayRelation_in, $data_up;
+
+ $sql = "SELECT product_id,sum(value) as value,color FROM store_orders_fields_data WHERE
field_name='division_auto' AND value>0
AND store_id $orderStoresArrayRelation_in
- AND order_id='$orderId' AND store_id!='' group by product_id");
- foreach($data as $row) {
-
- if(empty($row["color"])) {
- $data_up[$row["product_id"]][0][0] +=(int)$row["value"];
- }
- else {
- $data_up[$row["product_id"]][0][$row["color"]] +=(int)$row["value"];
-
- }
-
-
- }
+ AND order_id='$orderId' AND store_id!='' group by product_id, color";
+// var_dump($sql); die;
+ $data=$db::getRows($sql);
+
+ foreach($data as $row) {
+ if(empty($row["color"])) {
+ $data_up[$row["product_id"]][0][0] = ($data_up[$row["product_id"]][0][0] ?? 0) + (int)$row["value"];
+ } else {
+ $data_up[$row["product_id"]][0][$row["color"]] = ($data_up[$row["product_id"]][0][$row["color"]] ?? 0) + (int)$row["value"];
+ }
+ }
-<?
+<?php
+
+global $orderId, $orderStoresArrayRelation, $products, $storesOrderArray;
echo"<h1>division_auto_need</h1>";
//print_r($FiledsData);
$storesArray[0]="Всего";
foreach($products as $product_id => $name) {
- $min_order = $FiledsDataArray["min_order"][$product_id][""];
- $min_lot=$FiledsDataArray["min_lot"][$product_id][""];
+ $min_order = $FiledsDataArray["min_order"][$product_id][""] ?? 0;
+ $min_lot=$FiledsDataArray["min_lot"][$product_id][""] ?? 0;
echo"<div>
<h6 class=\"fs-3\">$name</h6> формула = продажи_7_дней + запас_на_2дня + полнограмма - продажи_7дней
<b> минимальный заказ $min_order шт., квант (мин. лот деления) = $min_lot</b> ";
<thead class=\"table-light\"><tr><td>магазин</td><td>продажи 7 дней</td> <td>запас 2 дня</td>
<td>полнограмма</td> <td>потребность</td></tr></thead><tbody>";
foreach($orderStoresArrayRelation as $storeId) {
- $sale_7day = $FiledsDataArray["sales_cnt"][$product_id][$storeId];
- $quantity = $FiledsDataArray["quantity"][$product_id][$storeId];
- $quantity_fact =$FiledsDataArray["quantity_fact"][$product_id][$storeId];
+ $sale_7day = $FiledsDataArray["sales_cnt"][$product_id][$storeId] ?? 0;
+ $quantity = $FiledsDataArray["quantity"][$product_id][$storeId] ?? 0;
+ $quantity_fact =$FiledsDataArray["quantity_fact"][$product_id][$storeId] ?? 0;
// считаем запас на 2 дня
$sale_2day=ceil(2*($sale_7day/7));
// если факт продаж будет больше чем факт - перприсваеиваем
$data_up[$product_id][$storeId][0] =$zakaz;
- $data_up[$product_id][0][0] +=$zakaz;
+ $data_up[$product_id][0][0] = ($data_up[$product_id][0][0] ?? 0) + $zakaz;
// формула = продажи_7_дней + запас_на_2дня + полнограмма - продажи_7дней
- echo"<tr><td>".$storesOrderArray[$storeId]."</td><td>$sale_7day</td>
+ echo"<tr><td>".($storesOrderArray[$storeId]??'')."</td><td>$sale_7day</td>
<td>$sale_2day</td><td>$quantity</td><td>";
if(!empty($zakaz)) echo"<span class=\"btn btn-sm btn-wating\">$zakaz</span>";
-<?
+<?php
- $data=$db::getRows("SELECT product_id,sum(value) as value,color FROM store_orders_fields_data WHERE
+global $orderId, $orderStoresArrayRelation_in, $data_up;
+
+ $sql = "SELECT product_id,sum(value) as value,color FROM store_orders_fields_data WHERE
field_name='division_auto_need' AND value>0
AND store_id $orderStoresArrayRelation_in
- AND order_id='$orderId' AND store_id!='' group by product_id");
- foreach($data as $row) {
-
- if(empty($row["color"])) {
- $data_up[$row["product_id"]][0][0] +=(int)$row["value"];
- }
- else {
- $data_up[$row["product_id"]][0][$row["color"]] +=(int)$row["value"];
-
+ AND order_id='$orderId' AND store_id!='' group by product_id, color";
+// var_dump($sql); die;
+ $data=$db::getRows($sql);
+ foreach($data as $row) {
+ if (empty($row["color"])) {
+ $data_up[$row["product_id"]][0][0] = ($data_up[$row["product_id"]][0][0] ?? 0) + (int)$row["value"];
+ } else {
+ $data_up[$row["product_id"]][0][$row["color"]] = ($data_up[$row["product_id"]][0][$row["color"]] ?? 0) + (int)$row["value"];
}
-
-
- }
+ }
-<?
+<?php
$data=$db::getRows("SELECT product_id,sum(value) as value,color FROM store_orders_fields_data WHERE
field_name='division_hand' AND value>0
AND order_id='$orderId' AND store_id!='' group by product_id, store_id,color");
foreach($data as $row) {
if(empty($row["color"])) $row["color"]=0;
- $data_up[$row["product_id"]][0][$row["color"]] +=(int)$row["value"];
- $data_up[$row["product_id"]][0][0] +=(int)$row["value"];
+ $data_up[$row["product_id"]][0][$row["color"]] = ($data_up[$row["product_id"]][0][$row["color"]] ?? 0) + (int)$row["value"];
+ $data_up[$row["product_id"]][0][0] = ($data_up[$row["product_id"]][0][0] ?? 0) + (int)$row["value"];
}
\ No newline at end of file
-<?
+<?php
+
+global $orderId, $orderStoresArrayRelation_in, $products, $orderStoresArrayRelation, $data_up, $FiledsDataArray;
$prices=[];
-
+$data_up = $data_up ?? [];
//пробегаемся по всем продуктам
foreach($products as $productId => $name) {
- foreach($orderStoresArrayRelation as $storeId ) {
- $division_summ=$FiledsDataArray["division_summ"][$productId][$storeId];
+ foreach($orderStoresArrayRelation ?? [] as $storeId ) {
+
+ $division_summ = $FiledsDataArray["division_summ"][$productId][$storeId] ?? 0;
$s=round($prices[$productId] * $division_summ);
- $data_up[$productId][0][0] +=$s ;
- $data_up[$productId][$storeId][0] =$s ;
+ $data_up[$productId][0][0] = ($data_up[$productId][0][0] ?? 0) + $s;
+ $data_up[$productId][$storeId][0] = $s;
}
-
}
\ No newline at end of file
-<?
+<?php
+
+global $orderId, $products, $productsColorsArray;
$FiledsDataArray=[];
$dataF=$db::getRows("SELECT field_name, product_id, store_id, value,color
$division_ratio=round($quantity_warehouseman_fact/$division_auto_need_all,2);
$html .="<font color=red>-меньше!</font>";
-$html .=" применяем коэффициент $division_ratio = ".$FiledsDataArray["division_ratio"][$productId][0]." ";
+$html .=" применяем коэффициент $division_ratio = ".($FiledsDataArray["division_ratio"][$productId][0] ?? '')." ";
}
$data_up[$productId][0][0] =$division_ratio;
- foreach($productsColorsArray[$productId] as $color) {
+ foreach($productsColorsArray[$productId] ?? [] as $color) {
$color=trim($color);
$division_ratio=1;
if($FiledsDataArray["division_auto_need_all"][$productId][$color] > $FiledsDataArray["quantity_warehouseman_fact"][$productId][$color]) {
foreach($orderStoresArrayRelation as $storeId ) {
// $s = $FiledsDataArray["division_store"][$productId][$storeId][0];
- $ceil=$FiledsDataArray["quantity_zakup_new"][$productId][$storeId][0] * $FiledsDataArray["division_store_ratio"][$productId][0][0];
+ $ceil = ($FiledsDataArray["quantity_zakup_new"][$productId][$storeId][0] ?? 0) * ($FiledsDataArray["division_store_ratio"][$productId][0][0] ?? 0);
//округляем до мини мального лота деления
- $ceil=roundCoefficientLot2($ceil,$FiledsDataArray["min_lot"][$productId][0][0]);
+ $ceil=roundCoefficientLot2($ceil,$FiledsDataArray["min_lot"][$productId][0][0] ?? 0);
$data_up[$productId][$storeId][0] =$ceil;
$data_up[$productId][0][0] +=$ceil ;
// цикл по цвету товара
- foreach($productsColorsArray[$productId] as $color) {
+ foreach($productsColorsArray[$productId] ?? [] as $color) {
$color=trim($color);
$ceil=$FiledsDataArray["quantity_zakup_new"][$productId][$storeId][$color] * $FiledsDataArray["division_store_ratio"][$productId][0][$color];
-<?
+<?php
+global $orderId, $orderStoresArrayRelation_in, $products, $productsColorsArray;
//echo"<h5>Коэффицент деления division_stpore_ratio</h5>";
$FiledsDataArray=[];
//пробегаемся по всем продуктам
foreach($products as $productId => $name) {
- $potreb_all=$potreb[$productId][0];
+ $potreb_all = $potreb[$productId][0] ?? 0;
$quantity_warehouseman_fact=$FiledsDataArray["quantity_warehouseman_fact"][$productId][0];
$data_up[$productId][0][0] =$division_store_ratio;
- foreach($productsColorsArray[$productId] as $color) {
+ foreach($productsColorsArray[$productId] ?? [] as $color) {
$color=trim($color);
$division_store_ratio=1;
if($potreb[$productId][$color] > $FiledsDataArray["quantity_warehouseman_fact"][$productId][$color]) {
-<?
+<?php
+
+global $orderId, $orderStoresArrayRelation_in, $products, $orderStoresArrayRelation, $productsColorsArray;
+
$data_up=[];
$FiledsDataArray=[];
$dataF=$db::getRows("SELECT field_name, product_id, store_id, value,color
// $data_up[$productId][$storeId][0] +=$s ;
// $data_up[$productId][0][0] +=$s ;
- foreach($productsColorsArray[$productId] as $color) {
+ foreach($productsColorsArray[$productId] ?? [] as $color) {
$color=trim($color);
- $s = $FiledsDataArray["division_store"][$productId][$storeId][$color] + $FiledsDataArray["division_store_hand"][$productId][$storeId][$color];
- $data_up[$productId][$storeId][$color] +=$s ;
- $data_up[$productId][0][$color] +=$s ;
+ $s = ($FiledsDataArray["division_store"][$productId][$storeId][$color] ?? 0) + ($FiledsDataArray["division_store_hand"][$productId][$storeId][$color] ?? 0);
+ $data_up[$productId][$storeId][$color] = ($data_up[$productId][$storeId][$color] ?? 0) + $s;
+ $data_up[$productId][0][$color] = ($data_up[$productId][0][$color] ?? 0) + $s;
foreach($products as $productId => $name) {
// echo"<br> <h2>$name</h2>";
foreach($orderStoresArrayRelation as $storeId ) {
- $s = $FiledsDataArray["division_store"][$productId][$storeId][0] + $FiledsDataArray["division_store_hand"][$productId][$storeId][0];
- $data_up[$productId][$storeId][0] +=(int)$s ;
- $data_up[$productId][0][0] +=(int)$s ;
+ $s = ($FiledsDataArray["division_store"][$productId][$storeId][0] ?? 0) + ($FiledsDataArray["division_store_hand"][$productId][$storeId][0] ?? 0);
+ $data_up[$productId][$storeId][0] = ($data_up[$productId][$storeId][0] ?? 0) + (int)$s;
+ $data_up[$productId][0][0] = ($data_up[$productId][0][0] ?? 0) + (int)$s;
}
}
-<?
+<?php
+
+global $orderId, $orderStoresArrayRelation_in, $products, $orderStoresArrayRelation;
$FiledsDataArray=[];
$dataF=$db::getRows("SELECT field_name, product_id, store_id, value
- $s = $FiledsDataArray["division_auto"][$productId][$storeId] + $FiledsDataArray["division_hand"][$productId][$storeId];
- $data_up[$productId][$storeId][0] +=$s ;
- $data_up[$productId][0][0] +=$s ;
+ $s = ($FiledsDataArray["division_auto"][$productId][$storeId] ?? 0) + ($FiledsDataArray["division_hand"][$productId][$storeId] ?? 0);
+ $data_up[$productId][$storeId][0] = ($data_up[$productId][$storeId][0] ?? 0) + $s ;
+ $data_up[$productId][0][0] = ($data_up[$productId][0][0] ?? 0) + $s ;
-<?
+<?php
+
+global $orderId, $orderStoresArrayRelation_in, $data_up;
+
$data=$db::getRows("SELECT product_id,sum(value) as value,color FROM store_orders_fields_data WHERE
field_name='division_summ' AND value>0
AND store_id $orderStoresArrayRelation_in
AND order_id='$orderId'
- AND store_id!='' group by product_id");
+ AND store_id!='' group by product_id, color");
foreach($data as $row) {
-
- if(empty($row["color"])) $data_up[$row["product_id"]][0][0] +=(int)$row["value"];
- else $data_up[$row["product_id"]][0][$row["color"]] +=(int)$row["value"];
- }
+ if (empty($row["color"])) {
+ $data_up[$row["product_id"]][0][0] = ($data_up[$row["product_id"]][0][0] ?? 0) + (int)$row["value"];
+ } else {
+ $data_up[$row["product_id"]][0][$row["color"]] = ($data_up[$row["product_id"]][0][$row["color"]] ?? 0) + (int)$row["value"];
+ }
+ }
-<?
+<?php
-if($order_date_add!='000-00-00') {
-$dataOrders2=$db::getRows("SELECT id FROM store_orders
-WHERE date_add<='$order_date_add' AND date_add>='$order_date_add' - interval 7 day");
+global $orderId, $order_date_add;
+
+if(!empty($order_date_add) && $order_date_add!='000-00-00') {
+$sql = "SELECT id FROM store_orders
+WHERE date_add<='$order_date_add' AND date_add>='$order_date_add' - interval 7 day";
+var_dump($sql); die;
+$dataOrders2=$db::getRows($sql);
//echo"<b>Товар в пути участвуют заказы:</b>";
$k=0; $w_orders="";
-<?
+<?php
+
+global $orderId;
$prices=[];
- $data=$db::getRows("SELECT product_id, value FROM store_orders_fields_data WHERE field_name='purchase_price' AND value>0 AND order_id='$orderId' AND store_id='' AND color='' group by product_id");
+ $sql = "SELECT product_id, value FROM store_orders_fields_data WHERE field_name='purchase_price' AND value>0 AND order_id='$orderId' AND store_id='' AND color='' group by product_id, value";
+// var_dump($sql); die;
+ $data=$db::getRows($sql);
foreach($data as $row) $prices[$row["product_id"]]=$row["value"];
-
- $data=$db::getRows("SELECT product_id,sum(value) as value, store_id FROM store_orders_fields_data WHERE field_name='quantity_zakup_new' AND value>0
- AND order_id='$orderId' AND color='' AND store_id!='' group by product_id,store_id");
+ $sql = "SELECT product_id,sum(value) as value, store_id FROM store_orders_fields_data WHERE field_name='quantity_zakup_new' AND value>0
+ AND order_id='$orderId' AND color='' AND store_id!='' group by product_id,store_id";
+// var_dump($sql); die;
+ $data=$db::getRows($sql);
foreach($data as $row) {
$s=intval($row["value"] * $prices[$row["product_id"]]);
// echo"<br> ".$row["product_id"]." ".$row["value"]." * ".$prices[$row["product_id"]]." = $s ";
$data_up[$row["product_id"]][$row["store_id"]][0] =$s;
- $data_up[$row["product_id"]][0][0] +=$s;
+ $data_up[$row["product_id"]][0][0] = ($data_up[$row["product_id"]][0][0] ?? 0) + $s;
}
-<?
+<?php
+
+global $orderId, $products, $FiledsDataArray;
+
$FiledsDataArray=[];
$dataF=$db::getRows("SELECT field_name, product_id, value
FROM store_orders_fields_data
-<?
+<?php
+
+global $whereInProductsId, $orderStoresArrayRelation_in, $data_up;
$data2=$db::getRows("SELECT product_id,store_id,quantity FROM balances WHERE quantity>0
AND product_id $whereInProductsId
AND store_id $orderStoresArrayRelation_in");
foreach($data2 as $row2) {
-$data_up[$row2["product_id"]][$row2["store_id"]][0]+=$row2["quantity"];
-$data_up[$row2["product_id"]][0][0]+=$row2["quantity"];
+$data_up[$row2["product_id"]][$row2["store_id"]][0] = ($data_up[$row2["product_id"]][$row2["store_id"]][0] ?? 0) + $row2["quantity"];
+$data_up[$row2["product_id"]][0][0] = ($data_up[$row2["product_id"]][0][0] ?? 0) + $row2["quantity"];
}
\ No newline at end of file
-<?
+<?php
+
+global $productGroupArray, $configGroupProducts, $orderStoresArrayRelation_in, $date_start_division;
+
// пробегаем по каждому типу товара и группируем запросы к БД
foreach($productGroupArray as $group =>$pArray) {
-$day_sales=$configGroupProducts[$group]["day_sales"];
+$day_sales=$configGroupProducts[$group]["day_sales"] ?? 0;
//echo"<br>+++ <h1>$group дней $day_sales</h1> ";
//собираем условие по выборке товаров
foreach($pArray as $prodId) {if($j>0) $whereInProductsId_in .=","; $whereInProductsId_in .="'$prodId'"; $j++;}
if(!empty($whereInProductsId_in)) {
-$data2=$db::getRows("SELECT i.product_id, sum(if(s.operation='Продажа',i.summ,0)) as sale, s.store_id_1c as store_id, sum(if(s.operation='Возврат', i.summ ,0)) as vozvr
+$sql = "SELECT i.product_id, sum(CASE WHEN s.operation='Продажа' THEN i.summ ELSE 0 END) as sale, s.store_id_1c as store_id, sum(CASE WHEN s.operation='Возврат' THEN i.summ ELSE 0 END) as vozvr
FROM sales as s, sales_products as i
WHERE s.id=i.check_id
AND i.product_id in($whereInProductsId_in)
AND s.store_id_1c $orderStoresArrayRelation_in
- AND s.date<='$date_start_division 00:00:00' AND s.date>='$date_start_division' -interval $day_sales day group BY i.product_id, s.store_id, s.operation");
+ AND s.date<='$date_start_division 00:00:00' AND s.date>='$date_start_division'::date -interval '$day_sales day' group BY i.product_id, s.store_id, s.operation, s.store_id_1c";
+//var_dump($sql); die;
+$data2=$db::getRows($sql);
foreach($data2 as $row2) {
$sale=$row2["sale"]-$row2["vozvr"];
$sale=(int)$sale;
if(!empty($sale)) {
$data_up[$row2["product_id"]][$row2["store_id"]][0]=$sale;
-$data_up[$row2["product_id"]][0][0] +=$sale;
+$data_up[$row2["product_id"]][0][0] = ($data_up[$row2["product_id"]][0][0] ?? 0) + $sale;
}
}
}
-<?
+<?php
+
+global $productGroupArray, $configGroupProducts, $orderStoresArrayRelation_in, $date_start_division;
// пробегаем по каждому типу товара и группируем запросы к БД
-foreach($productGroupArray as $group =>$pArray) {
-$day_sales=$configGroupProducts[$group]["day_sales"];
+foreach($productGroupArray as $group =>$pArray) {
+$day_sales=$configGroupProducts[$group]["day_sales"] ?? 0;
//echo"<br>+++ <h1>$group дней $day_sales</h1> ";
//собираем условие по выборке товаров
if(!empty($whereInProductsId_in)) {
-$data2=$db::getRows("SELECT i.product_id, s.store_id_1c as store_id, sum(if(s.operation='Продажа',i.quantity,0)) as sale_cnt,
-sum(if(s.operation='Возврат',i.quantity,0)) as vozvr_cnt
+$data2=$db::getRows("SELECT i.product_id, s.store_id_1c as store_id, sum(CASE WHEN s.operation='Продажа' THEN i.quantity ELSE 0 END) as sale_cnt,
+sum(CASE WHEN s.operation='Возврат' THEN i.quantity ELSE 0 END) as vozvr_cnt
FROM sales as s, sales_products as i
WHERE s.id=i.check_id AND i.product_id in($whereInProductsId_in)
AND s.store_id_1c $orderStoresArrayRelation_in
AND s.date<='$date_start_division 00:00:00'
-AND s.date>='$date_start_division' -interval $day_sales day group BY i.product_id, s.store_id_1c, s.operation ");
+AND s.date>='$date_start_division'::date -interval '$day_sales day' group BY i.product_id, s.store_id_1c, s.operation ");
foreach($data2 as $row2) {
$cnt=$row2["sale_cnt"]-$row2["vozvr_cnt"];
$cnt=(int)$cnt;
if(!empty($cnt)) {
$data_up[$row2["product_id"]][$row2["store_id"]][0]=$cnt;
- $data_up[$row2["product_id"]][0][0] +=$cnt;
+ $data_up[$row2["product_id"]][0][0] = ($data_up[$row2["product_id"]][0][0] ?? 0) + $cnt;
}
}
}
foreach($data2 as $row2) {
$cnt=round(($row2["sale_cnt"]-$row2["vozvr_cnt"])/4);
if(!empty($cnt)) {
- $data_up[$row2["product_id"]][$row2["store_id"]][0] +=$cnt;
- $data_up[$row2["product_id"]][0][0] +=$cnt;
+ $data_up[$row2["product_id"]][$row2["store_id"]][0] =($data_up[$row2["product_id"]][$row2["store_id"]][0] ?? 0) + $cnt;
+ $data_up[$row2["product_id"]][0][0] =($data_up[$row2["product_id"]][0][0] ?? 0) + $cnt;
}
}
-<?
+<?php
+
+global $whereInProductsId;
+
/* scheduled_delivery_cnt
«Плановая поставка» новая ячейка
Берем закупки со статусом «Товар в пути» - с этим товаром - на каждый магазин сколько заказа магазин из ячееки «Заказ закупщика NEW» AND date_start <='$date_start_sale' AND date_start>='$date_start_sale' -interval 27 day
*/
+
$data=$db::getRows("SELECT id FROM store_orders WHERE status=5");
$whereInOrderId="";
$i=0;
if(!empty($whereInOrderId)) {
-$data=$db::getRows("SELECT product_id, store_id, value FROM store_orders_fields_data WHERE
+$sql = "SELECT product_id, store_id, value FROM store_orders_fields_data WHERE
order_id IN ($whereInOrderId) AND product_id $whereInProductsId
-AND field_name='quantity_zakup_new' AND color='' AND value>0 group by product_id, store_id");
+AND field_name='quantity_zakup_new' AND color='' AND value>0 group by product_id, store_id, value";
+//var_dump($sql); die;
+$data=$db::getRows($sql);
foreach($data as $row) {
$data_up[$row["product_id"]][$row["store_id"]]["0"]=$row["value"];
- $data_up[$row["product_id"]][0]["0"] +=$row["value"]; // echo"<br> ".$row["product_id"]." = store_id=".$row["store_id"]." ".$row["value"]."";
+ $data_up[$row["product_id"]][0]["0"] = ($data_up[$row["product_id"]][0]["0"] ?? 0) + $row["value"]; // echo"<br> ".$row["product_id"]." = store_id=".$row["store_id"]." ".$row["value"]."";
}
}
\ No newline at end of file
-<?
+<?php
+global $orderId, $products, $productsColorsArray;
$FiledsDataArray=[];
$dataF=$db::getRows("SELECT field_name, product_id, value, color
foreach($products as $productId => $nameProduct) {
// echo"<br>$nameProduct ".$FiledsDataArray["quantity_warehouseman_fact"][$productId][0] ." - ".$FiledsDataArray["division_store_summ"][$productId][0]."";
$data_up[$productId][0][0]=$FiledsDataArray["quantity_warehouseman_fact"][$productId][0] - $FiledsDataArray["division_summ"][$productId][0];
- foreach($productsColorsArray[$productId] as $color) {
+ foreach($productsColorsArray[$productId] ?? [] as $color) {
$color=trim($color);
$data_up[$productId][0][$color]=$FiledsDataArray["quantity_warehouseman_fact"][$productId][$color] - $FiledsDataArray["division_summ"][$productId][$color];
}
//echo"<h1>Storehouse_balance</h1>";
foreach($products as $productId => $nameProduct) {
- foreach($productsColorsArray[$productId] as $color) {
+ foreach($productsColorsArray[$productId] ?? [] as $color) {
$color=trim($color);
$data_up[$productId][0][$color]=$FiledsDataArray["quantity_warehouseman_fact"][$productId][$color] - $FiledsDataArray["division_store_summ"][$productId][$color];
}
-<?
+<?php
-foreach($productGroupArray as $group =>$pArray) {
- $periodDaysStats=$configGroupProducts[$group]["day_write_offs"];
+global $productGroupArray, $configGroupProducts, $orderStoresArrayRelation_in, $data_up;
+
+foreach($productGroupArray as $group =>$pArray) {
+ $periodDaysStats=$configGroupProducts[$group]["day_write_offs"] ?? 0;
//echo"<br>+++ <h1>Списание $group дней $periodDaysStats</h1> ";
//собираем условие по выборке товаров
$whereInProductsId_in="";
else $periodDaysStats_where=$periodDaysStats;
$date_start_sale2=date("Y-m-d");
- $data2=$db::getRows("SELECT p.product_id,sum(c.quantity) as cnt, w.store_id, c.comment_id
+ $sql = "SELECT p.product_id,sum(c.quantity) as cnt, w.store_id, c.comment_id
FROM write_offs as w, write_offs_products as p, write_offs_comments as c
WHERE p.write_offs_id=w.id
AND w.type='Брак'
AND p.product_id in($whereInProductsId_in)
AND w.store_id $orderStoresArrayRelation_in
AND w.date<='$date_start_sale2 00:00:00'
- AND w.date>='$date_start_sale2' -interval $periodDaysStats_where day
- group BY p.product_id,w.store_id, c.comment_id");
- foreach($data2 as $row2) {
+ AND w.date>='$date_start_sale2'::date -interval '$periodDaysStats_where day'
+ group BY p.product_id,w.store_id, c.comment_id";
+// var_dump($sql); die;
+ $data2=$db::getRows($sql);
+ foreach($data2 as $row2) {
$a=$row2["comment_id"]."=".$row2["cnt"]."шт. ";
if(!empty($a)) $data_up[$row2["product_id"]][$row2["store_id"]][0] .=$a;
}
- }
+ }
}
\ No newline at end of file
-<?
+<?php
+
+global $productGroupArray, $configGroupProducts, $orderStoresArrayRelation_in, $date_start_division;
// пробегаем по каждому типу товара и группируем запросы к БД
foreach($productGroupArray as $group =>$pArray) {
-$periodDaysStats=$configGroupProducts[$group]["day_write_offs"];
+$periodDaysStats=$configGroupProducts[$group]["day_write_offs"] ?? '0';
//echo"<br>+++ <h1>$group дней $periodDaysStats</h1> ";
//собираем условие по выборке товаров
foreach($pArray as $prodId) {if($j>0) $whereInProductsId_in .=","; $whereInProductsId_in .="'$prodId'"; $j++;}
if(!empty($whereInProductsId_in)) {
- $data2=$db::getRows("SELECT p.product_id,sum(p.quantity) as cnt, w.store_id
+ $sql = "SELECT p.product_id,sum(p.quantity) as cnt, w.store_id
FROM write_offs as w, write_offs_products as p
WHERE p.write_offs_id=w.id AND w.type='Брак'
AND p.product_id in($whereInProductsId_in)
AND w.store_id $orderStoresArrayRelation_in
- AND w.date<='$date_start_division 00:00:00' AND w.date>='$date_start_division' -interval $periodDaysStats day group BY p.product_id,w.store_id");
+ AND w.date<='$date_start_division 00:00:00' AND w.date>='$date_start_division'::date -interval '$periodDaysStats day' group BY p.product_id,w.store_id";
+// var_dump($sql); die;
+$data2=$db::getRows($sql);
$valAll=0;
foreach($data2 as $row2) {
$a=ceil($row2["cnt"]);
-<?
+<?php
+
+global $orderStoresArrayRelation_in, $date_start_sale, $whereInProductsId;
//списания за 7 дней- недельное списание от даты старта / 4 = среднее за неделю
WHERE p.write_offs_id=w.id AND w.type='Брак'
AND p.product_id $whereInProductsId
AND w.store_id $orderStoresArrayRelation_in
-AND w.date<='$date_start_sale 00:00:00' AND w.date>='$date_start_sale' -interval $periodDaysStats day group BY p.product_id,w.store_id");
+AND w.date<='$date_start_sale 00:00:00' AND w.date>='$date_start_sale'::date -interval '$periodDaysStats day' group BY p.product_id,w.store_id");
foreach($data2 as $row2) {
$a=$row2["summ"];
$data_up[$row2["product_id"]][$row2["store_id"]][0]=$a;
- $data_up[$row2["product_id"]][0][0] +=$a;
+ $data_up[$row2["product_id"]][0][0] = ($data_up[$row2["product_id"]][0][0] ?? 0) +$a;
}
}
\ No newline at end of file
$orderStoresArrayRelation_in // SQL условие для выборки по магазинам IN('store_id')
, $productGroupArray // массив с ID подгруппы группы товаров для автозакупки Короткие розы
,$related_order_id
-,$date_start_division,
-$param
+,$date_start_division
+//,$param
;
//узнаем категорибю товара
$categoryId=$ProductsOptions[$pid]["parent_id"];
// по категории узнаем тип товара горшечка или упаковка
-$tip=$products_class[$categoryId];
+$tip=$products_class[$categoryId] ?? '';
// если это срезка у нее нет группы
if(empty($tip)) {
$daysCounterSales=7; $daysCounterWriteOffs=7; // дней продаж и дней на списание для этой категории
}
-//$productGroupArray=getProductGroupArray($products);
+$productGroupArray = getProductGroupArray($products);
if ($whereInProductsId != " in ()") {
} catch (Exception $e)
{
- echo 'Ошибка вставки данных field_name='.$field_name.' '.print_r($param).' error='. $e->getMessage();
+ echo 'Ошибка вставки данных field_name='.$field_name.' '.print_r($param ?? '').' error='. $e->getMessage();
}
function ajaxUpdateStoreZakup(){
$('#modal-7 .modal-body').html('Считаем данные');
-jQuery('#modal-7').modal('show', {backdrop: 'static'}); $('#modal-7 .modal-title').text('Обновляем данные');
+jQuery('#modal-7').modal('show', {backdrop: 'static'}); $('#modal-7 .modal-title').text('Обновляем данные');
+ const param3 = $(\"meta[name=csrf-param]\").attr(\"content\");
+ const token3 = $(\"meta[name=csrf-token]\").attr(\"content\");
$.ajax({
- url: '/shipment/ajaxUpdateStoreZakup/',
+ url: '/shipment/ajax-update-store-zakup/',
method: 'post',
dataType: 'html',
- data: { id: $orderId, update_step:'1'},
+ data: { id: $orderId, update_step:'1', [param3]: token3},
success: function(data){
$('#modal-7 .modal-body').html(data);
--- /dev/null
+<?php
+
+chdir(__DIR__ . '/../../');
+
+include 'modul/shipment/ajaxUpdateStoreZakup.php';
\ No newline at end of file