From 0d558cb82f0e657c9ba7df1cc0397fcdde13735c Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Tue, 16 Apr 2024 17:31:05 +0300 Subject: [PATCH] move shipment shipment from old to new --- erp24/controllers/ShipmentController.php | 3 ++ erp24/modul/shipment/functionsShipment.php | 53 ++++++++++++--------- erp24/modul/shipment/shipment.php | 54 ++++++++++------------ erp24/modul/shipment/storeOrders.php | 39 ++++++++-------- erp24/views/shipment/shipment.php | 5 ++ erp24/views/shipment/store-orders.php | 5 ++ 6 files changed, 89 insertions(+), 70 deletions(-) create mode 100644 erp24/views/shipment/shipment.php create mode 100644 erp24/views/shipment/store-orders.php diff --git a/erp24/controllers/ShipmentController.php b/erp24/controllers/ShipmentController.php index 1419c53e..62a22a31 100755 --- a/erp24/controllers/ShipmentController.php +++ b/erp24/controllers/ShipmentController.php @@ -13,4 +13,7 @@ class ShipmentController extends Controller } public function actionIndex() { return $this->render('index'); } + + public function actionStoreOrders() { return $this->render('store-orders'); } + public function actionShipment() { return $this->render('shipment'); } } \ No newline at end of file diff --git a/erp24/modul/shipment/functionsShipment.php b/erp24/modul/shipment/functionsShipment.php index 5413558a..435d20da 100644 --- a/erp24/modul/shipment/functionsShipment.php +++ b/erp24/modul/shipment/functionsShipment.php @@ -93,7 +93,7 @@ $status_edit_dostup[$row["id"]]=json_decode($row["status_edit_dostup"],true,512, // достаем поля в массив -$data=$db::getRows("SELECT * FROM store_orders_fields WHERE 1 order by position ASC"); +$data=$db::getRows("SELECT * FROM store_orders_fields WHERE 1=1 order by position ASC"); foreach($data as $row) { $fieldsRows[$row["name_eng"]]=$row; // $fieldsRows[$row["name_eng"]]["property"]=$fieldsPropertyArray[$row["id"]]; @@ -105,20 +105,21 @@ foreach($data as $row) { // данные по закупке - достаем параметры закупки - дата старта продаж - от нее считаем продажи списания и закупки прошлой недели -$OrderData=$db::getRow("SELECT *, DATE_FORMAT(date_start, '%Y-%m-%d') as date_start, DATE_FORMAT(date_add, '%Y-%m-%d') as date_add, -DATE_FORMAT(division_date, '%Y-%m-%d') as division_date, extract(epoch FROM date_update) as date_update FROM store_orders WHERE id=?",[$orderId]); -$providersIdInThisOrder=explode(",",$OrderData["providers_arr"]); -$status_order_id=$OrderData["status"]; -$date_start_sale=$OrderData["date_start"]; -$date_update=$OrderData["date_update"]; -$date_start_division=$OrderData["division_date"]; -$order_date_add=$OrderData["date_add"]; -$orderCityId=$OrderData["city_id"]; -$related_order_id=$OrderData["related_order_id"]; - +$OrderData=$db::getRow("SELECT *, TO_CHAR(date_start, 'YYYY-MM-DD') as date_start, TO_CHAR(date_add, 'YYYY-MM-DD') as date_add, +TO_CHAR(division_date, 'YYYY-MM-DD') as division_date, extract(epoch from date_update) as date_update FROM store_orders WHERE id=?",[$orderId]); +if ($OrderData) { + $providersIdInThisOrder = explode(",", $OrderData["providers_arr"]); + $status_order_id = $OrderData["status"]; + $date_start_sale = $OrderData["date_start"]; + $date_update = $OrderData["date_update"]; + $date_start_division = $OrderData["division_date"]; + $order_date_add = $OrderData["date_add"]; + $orderCityId = $OrderData["city_id"]; + $related_order_id = $OrderData["related_order_id"]; +} -foreach($statuses_dostup[$status_order_id][$group_id] as $fieldid => $arrs) { +foreach($statuses_dostup[$status_order_id][$group_id] ?? [] as $fieldid => $arrs) { $dostup_fields[$fieldid]=$arrs["dostup"]; $bg_fields[$fieldid]=$arrs["bg"]; } @@ -150,12 +151,16 @@ global $db,$providersIdInThisOrder,$ProductsOptions,$products; //пробегаемся по провайдерам $whereProvidersId=""; $k=0; -foreach($providersIdInThisOrder as $pid) { if($k!=0) $whereProvidersId .=","; $whereProvidersId .="'$pid'"; $k++; } - +foreach($providersIdInThisOrder ?? [] as $pid) { if($k!=0) $whereProvidersId .=","; $whereProvidersId .="'$pid'"; $k++; } + $whereInProductsId=" in ("; -$z="SELECT p.id, p.name, o.provider_id, o.price_zakup, p.parent_id, o.shipments_group_id FROM products_1c_options as o, products_1c as p +if (!empty($whereProvidersId)) { + $z = "SELECT p.id, p.name, o.provider_id, o.price_zakup, p.parent_id, o.shipments_group_id FROM products_1c_options as o INNER JOIN products_1c as p WHERE o.provider_id in($whereProvidersId) AND p.id=o.id order by o.provider_id ASC, p.name ASC"; -$data2=$db::getRows($z); + $data2 = $db::getRows($z); +} else { + $data2 = []; +} $k=0; foreach($data2 as $row) { if($k!=0) $whereInProductsId .=","; $whereInProductsId .="'".$row["id"]."'"; @@ -206,9 +211,12 @@ return $productGroupArray; //$productGroupArray=getProductGroupArray($products); - -$data2=$db::getRows("SELECT p.id, p.name, o.provider_id, o.colors FROM products_1c_options as o, products_1c as p +if ($whereInProductsId != " in ()") { + $data2 = $db::getRows("SELECT p.id, p.name, o.provider_id, o.colors FROM products_1c_options as o, products_1c as p WHERE p.id $whereInProductsId AND p.id=o.id order by o.provider_id ASC, p.name ASC"); +} else { + $data2 = []; +} $k=0; foreach($data2 as $row) { $providers_products[$row["provider_id"]][]=$row["id"]; @@ -241,6 +249,7 @@ global $db; // готовим массим со всеми данными по столбцам по каждому товару магазину и цвету Если NULL - то это сумма по магазинам и по цветам $dataF=$db::getRows("SELECT field_name,product_id,store_id,if(value_text!='',value_text,value) as value,color FROM store_orders_fields_data WHERE order_id=?",[$orderId]); +$FiledsData = []; foreach($dataF as $row) { if(empty($row["store_id"])) $row["store_id"]="NULL"; if(empty($row["color"])) $row["color"]="NULL"; @@ -273,7 +282,7 @@ global $db, $related_order_id, $status_order_id, $status_edit_dostup, $orderCity echo'
-'; +
Статус:'. $store_orders_statuses[$status_order_id] .'
'; if(!empty($status_edit_dostup[$status_order_id][$group_id])) { @@ -311,9 +320,11 @@ $orderStoresArrayRelation_in .=")"; //показываем магазины если статус закупки подразумевает разбивку данных по магазинам -if($statuses_stores_show[$status_order_id]) { +if($statuses_stores_show[$status_order_id] ?? false) { $stores_arr=$db::mapping("SELECT name,id FROM products_1c WHERE tip='city_store' AND view='1' AND id $orderStoresArrayRelation_in order by name ASC"); + +//print_r($stores_arr); $stores_cnt=count($stores_arr); $vnesli=$db::getValue("SELECT count(*) as cnt FROM store_order_status diff --git a/erp24/modul/shipment/shipment.php b/erp24/modul/shipment/shipment.php index 06c533ce..6a0c515e 100644 --- a/erp24/modul/shipment/shipment.php +++ b/erp24/modul/shipment/shipment.php @@ -1,8 +1,8 @@ -❮ назад в закупки -Заказ товара '.$OrderData["name"].' id='.$orderId.' -

ваша роль '.$users_group[$_SESSION["group_id"]].' +Заказ товара '.($OrderData["name"] ?? '').' id='.$orderId.' +

ваша роль '. ($users_group[$_SESSION["group_id"]] ?? '').' очистить данные у этой закупки

'; @@ -81,8 +79,8 @@ $FiledsData=getDataFiledsData($orderId); foreach($data as $row) { -$dostup=$dostup_fields[$row["id"]]; -$bg=$bg_fields[$row["id"]]; +$dostup=$dostup_fields[$row["id"]] ?? ''; +$bg=$bg_fields[$row["id"]] ?? ''; if($dostup=="edit" or $dostup=="show") { $html =''; @@ -111,7 +109,7 @@ foreach($data3 as $row2) $products_class[$row2["category_id"]]=$row2["tip"]; $trCount=0; -foreach($products as $pid =>$name) { +foreach($products ?? [] as $pid =>$name) { if($trCount==20) { $trCount=0; echo $head_td; @@ -190,8 +188,8 @@ echo''; echo''; foreach($data as $row) { -$dostup=$dostup_fields[$row["id"]]; -$bg=$bg_fields[$row["id"]]; +$dostup=$dostup_fields[$row["id"]] ?? ''; +$bg=$bg_fields[$row["id"]] ?? ''; if($dostup=="edit" or $dostup=="show") { echo''; } @@ -199,7 +197,7 @@ echo''; foreach($data as $row) { -$dostup=$dostup_fields[$row["id"]]; +$dostup=$dostup_fields[$row["id"]] ?? ''; if($dostup=="edit" or $dostup=="show") { $s=""; if($fieldsRows[$row["name_eng"]]["row_type_sum"]=="amount") $s=$rowArraySum[$row["id"]]; @@ -223,10 +221,10 @@ echo'

Итого сумма по столбцам

'; foreach($data as $row) { -$dostup=$dostup_fields[$row["id"]]; -$bg=$bg_fields[$row["id"]]; +$dostup=$dostup_fields[$row["id"]] ?? ''; +$bg=$bg_fields[$row["id"]] ?? ''; $s=""; -if($fieldsRows[$row["name_eng"]]["row_type_sum"]=="amount") $s=$rowArraySum[$row["id"]]; +if($fieldsRows[$row["name_eng"]]["row_type_sum"]=="amount") $s=$rowArraySum[$row["id"]] ?? 0; if($fieldsRows[$row["name_eng"]]["summ"]==1 and !empty($s) and ($dostup=="edit" or $dostup=="show")) { @@ -254,9 +252,10 @@ $shipments_group_products=$db::mapping("SELECT id,name FROM universal_catalog_it $field_stats_array=["sales_cnt","sales_4weeks_sum","sales_4weeks_cnt","write_offs_sum","write_downs","write_offs_4week_sum","write_offs_4week_cnt_avg","order_supplier_sum"]; $field_stats_array_in=implode("','",$field_stats_array); $data_field=[]; - $data=$db::getRows("SELECT field_name, sum(value) as value,product_id FROM store_orders_fields_data WHERE +$sql = "SELECT field_name, sum(value) as value,product_id FROM store_orders_fields_data WHERE field_name in('$field_stats_array_in') AND value>0 - AND order_id='$orderId' AND color='' AND store_id!='' group by product_id,field_name"); + AND order_id=". ($orderId ?? 0) . " AND color='' AND store_id!='' group by product_id,field_name"; +$data=$db::getRows($sql); foreach($data as $row) { $shipments_group_id=$ProductsOptions[$row["product_id"]]["shipments_group_id"]; $data_field[$row["field_name"]][$shipments_group_id] +=$row["value"]; @@ -267,13 +266,13 @@ $data_field=[]; echo"
Статус:'. ($store_orders_statuses[$status_order_id] ?? '') .' '.$row["name"].'
'.$row["name"].' ('.$fieldsRows[$row["name_eng"]]["row_type_sum"].') echo'
итого
"; foreach($field_stats_array as $fieldN) { - echo""; + echo""; } echo""; foreach($shipments_group_products as $shipments_group_id => $name) { - if($data_field["sales_4weeks_cnt"][$shipments_group_id]) { + if($data_field["sales_4weeks_cnt"][$shipments_group_id] ?? false) { echo""; foreach($field_stats_array as $fieldN) echo""; echo""; @@ -286,7 +285,7 @@ $data_field=[]; -$_CONFIG["jscss"] .="'; - - - - - -include"templates/bottom.php"; +include_once dirname(__DIR__, 2) . '/templates/bottom_light.php'; diff --git a/erp24/modul/shipment/storeOrders.php b/erp24/modul/shipment/storeOrders.php index eb6c53ae..bdaa124d 100644 --- a/erp24/modul/shipment/storeOrders.php +++ b/erp24/modul/shipment/storeOrders.php @@ -1,9 +1,10 @@ -Список закупок для магазинов -$data=$db::getRows("SELECT *, DATE_FORMAT(date_add,'%d.%m.%Y') as date_add, DATE_FORMAT(date_start,'%d.%m.%Y') as date_start -FROM store_orders WHERE parent_id!=0 AND date_start>=NOW() - INTERVAL 70 DAY +$data=$db::getRows("SELECT *, TO_CHAR(date_add,'DD.MM.YYYY') as date_add, TO_CHAR(date_start,'DD.MM.YYYY') as date_start +FROM store_orders WHERE parent_id!=0 AND date_start>=NOW() - INTERVAL '70 DAY' AND status in ('1','2') order by delivery_date DESC LIMIT 330"); @@ -36,8 +37,8 @@ foreach($data as $row) $dozakupka[$row["parent_id"]][]=$row; -$data=$db::getRows("SELECT *, DATE_FORMAT(date_add,'%d.%m.%Y') as date_add, DATE_FORMAT(date_start,'%d.%m.%Y') as date_start -FROM store_orders WHERE parent_id=0 AND date_start>=NOW() - INTERVAL 70 DAY +$data=$db::getRows("SELECT *, TO_CHAR(date_add,'DD.MM.YYYY') as date_add, TO_CHAR(date_start,'DD.MM.YYYY') as date_start +FROM store_orders WHERE parent_id=0 AND date_start>=NOW() - INTERVAL '70 DAY' AND status in ('1','2') order by delivery_date DESC LIMIT 30"); foreach($data as $row) { @@ -54,7 +55,7 @@ echo' '.$store_orders_statuses[$row["status"]].' '.$row["name"].' -дата продаж: '.$row["date_start"].', создано '.$row["date_add"].' '.$row["comment"].' +дата продаж: '.$row["date_start"].', создано '.$row["date_add"].' '.($row["comment"]??'').'
'; -foreach($dozakupka[$row["id"]] as $rows) { +foreach($dozakupka[$row["id"]] ?? [] as $rows) { echo'
@@ -114,7 +115,7 @@ echo'
-'.$rows["comment"].''; +'.($rows["comment"]??'').''; //printStoreOrderFiles($rows["id"]); echo'
'; } @@ -128,15 +129,15 @@ echo'
} -$_CONFIG["jscss"] .=''; - -include"templates/bottom.php"; + +include_once dirname(__DIR__, 2) . '/templates/bottom_light.php'; diff --git a/erp24/views/shipment/shipment.php b/erp24/views/shipment/shipment.php new file mode 100644 index 00000000..1b9d55ef --- /dev/null +++ b/erp24/views/shipment/shipment.php @@ -0,0 +1,5 @@ +
категория".$fieldsRows[$fieldN]["name"]."".($fieldsRows[$fieldN]["name"] ?? '') ."
$name".$data_field[$fieldN][$shipments_group_id]."