From 9e561dcbcfdd7debe4c250c8fd22b72d2875f3e5 Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Wed, 10 Jan 2024 18:24:17 +0300 Subject: [PATCH] fixes shipment during moving pure php to yii --- .../actions/shipment/DivisionPrintAction.php | 12 + erp24/controllers/ShipmentController.php | 1 + erp24/views/shipment/division-print-edit2.php | 2 +- erp24/views/shipment/division-print.php | 348 ++++++++++++++++++ erp24/views/shipment/fields-data2.php | 4 +- erp24/views/shipment/index.php | 16 +- 6 files changed, 370 insertions(+), 13 deletions(-) create mode 100644 erp24/actions/shipment/DivisionPrintAction.php create mode 100644 erp24/views/shipment/division-print.php diff --git a/erp24/actions/shipment/DivisionPrintAction.php b/erp24/actions/shipment/DivisionPrintAction.php new file mode 100644 index 00000000..84c468da --- /dev/null +++ b/erp24/actions/shipment/DivisionPrintAction.php @@ -0,0 +1,12 @@ +controller->render('division-print'); + } +} \ No newline at end of file diff --git a/erp24/controllers/ShipmentController.php b/erp24/controllers/ShipmentController.php index 27e8d677..d42c40ed 100755 --- a/erp24/controllers/ShipmentController.php +++ b/erp24/controllers/ShipmentController.php @@ -21,6 +21,7 @@ class ShipmentController extends \yii\web\Controller 'ajax-edit-field-value' => \yii_app\actions\shipment\AjaxEditFieldValueAction::class, 'fields-data' => \yii_app\actions\shipment\FieldsDataAction::class, 'ajax-update-fields-data-test' => \yii_app\actions\shipment\AjaxUpdateFieldsDataTestAction::class, + 'division-print' => \yii_app\actions\shipment\DivisionPrintAction::class, 'division-print-edit2' => \yii_app\actions\shipment\DivisionPrintEdit2Action::class, 'division-print-edit' => \yii_app\actions\shipment\DivisionPrintEditAction::class, 'set-division-priority' => \yii_app\actions\shipment\SetDivisionPriorityAction::class, diff --git a/erp24/views/shipment/division-print-edit2.php b/erp24/views/shipment/division-print-edit2.php index 290b3f68..d2d68485 100644 --- a/erp24/views/shipment/division-print-edit2.php +++ b/erp24/views/shipment/division-print-edit2.php @@ -260,7 +260,7 @@ foreach($products as $productId =>$nameProduct) { //'.$autoTextArr.' $kk=0; // цвета - foreach($products_colors[$productId] as $colorId => $colorName) { + foreach($products_colors[$productId] ?? [] as $colorId => $colorName) { $colorName=trim($colorName); $colorName2=trim(str_replace(['\\','/'],['',''],$colorName)); if(1)//if($dataFiedlsValuesColorsCnt[$productId][$colorName2]>0) diff --git a/erp24/views/shipment/division-print.php b/erp24/views/shipment/division-print.php new file mode 100644 index 00000000..a52c3c52 --- /dev/null +++ b/erp24/views/shipment/division-print.php @@ -0,0 +1,348 @@ +$massiv) { + foreach($massiv as $storeGuid) { + if($i>0) $sortStoreId .=","; + $sortStoreId .=$storeGuid; + $sortStore[]=$storeGuid; + $i++; + } + echo'

'; +} + + + + + +echo'
Деление по магазинам '.$row["name"].' Дата деления '.$division_date.' id='.$row["id"].'
'; +echo'печать вместе с цветами +без цветов + + +показать ручные добавки + +показать столбцы итого +показать % от матрицы в цвете + + + + +

Кладовщик печатает деление по магазинам на статусе наборка товара.

'; + + + +$da=$db::getRows("SELECT id,name,valuta FROM shipment_providers"); +foreach($da as $r) { + $providers[$r["id"]]=$r["name"]; + $providers_valuta[$r["id"]]=$r["valuta"]; +} + + + +$k=0;$w=""; +$privedrs_htm=""; +foreach($in as $pid) { +//$privedrs_htm .=''.$providers[$pid].''; + if($k!=0) $w .=","; $w .="'$pid'"; $k++; } + +$w2=""; + +$data2=$db::getRows("SELECT p.id, p.name, o.provider_id, o.colors, o.min_lot FROM products_1c_options as o, products_1c as p +WHERE o.provider_id in($w) AND p.id=o.id order by o.provider_id ASC, p.name ASC"); +$k=0; +foreach($data2 as $row) { +//if($k!=0) $w2 .=" OR "; +//$w2 .="i.id_1c='".$row["id"]."'"; + $products[$row["id"]]=$row["name"]; + $productsMinLot[$row["id"]]=$row["min_lot"]; + $prov[$row["id"]]=$row["provider_id"]; + $productsIdArray[$row["provider_id"]][$row["id"]]=$row["name"]; + if(!empty($row["colors"])) $products_colors[$row["id"]]=explode(";",$row["colors"]); + $k++; +} + +$division=array(); //division_summ =50 +$data=$db::getRows("SELECT product_id,store_id,color,value FROM store_orders_fields_data +WHERE order_id=? AND store_id!='' and field_name='division_summ'",[$OrderId]); +foreach($data as $row) { + if(empty($row["color"])) $row["color"]="NULL"; + if(empty($row["store_id"])) $row["store_id"]="NULL"; + $dataFiedlsValues[$row["product_id"]][$row["store_id"]][$row["color"]]=$row["value"]; + if($row["store_id"]!="NULL") { + $ColorsCnt[$row["product_id"]] +=$row["value"]; + $dataFiedlsValuesColorsCnt[$row["product_id"]][$row["color"]] +=$row["value"]; } +} + + +$division=array(); +$data=$db::getRows("SELECT product_id,store_id,color,value FROM store_orders_fields_data +WHERE order_id=? AND store_id!='' and field_name='division_hand'",[$OrderId]); +foreach($data as $row) { + if(empty($row["color"])) $row["color"]="NULL"; + if(empty($row["store_id"])) $row["store_id"]="NULL"; + $dataHand[$row["product_id"]][$row["store_id"]][$row["color"]]=$row["value"]; + if($row["store_id"]!="NULL") { + $dataHand[$row["product_id"]][$row["color"]] +=$row["value"]; } +} + + + + + +$quantity_warehouseman_fact=array(); +$data=$db::getRows("SELECT product_id,store_id,color,value FROM store_orders_fields_data +WHERE order_id=? AND store_id='' and field_name='quantity_warehouseman_fact'",[$OrderId]); +foreach($data as $row) { + if(empty($row["color"])) $row["color"]="NULL"; + if(empty($row["store_id"])) $row["store_id"]="NULL"; + $quantity_warehouseman_fact[$row["product_id"]][$row["store_id"]][$row["color"]]=$row["value"]; + + if($row["store_id"]=="NULL") { + $dataColor[$row["product_id"]][$row["color"]] +=$row["value"]; + } +} + + +$colorPercent=array(); +$data=$db::getRows("SELECT product_id,store_id,color,value FROM store_orders_fields_data +WHERE order_id=? AND store_id!='' and color!='' and field_name='color_percent'",[$OrderId]); +foreach($data as $row) { + if($row["store_id"]!="NULL") { + $colorPercent[$row["product_id"]][$row["store_id"]][$row["color"]]=$row["value"]; + } +} + + + +echo'
+'; + +$head=""; +foreach($sortStore as $storeId) { + echo''; + $head .=''; +} +if($printSumm==1) echo''; + + +echo''; + + +$i=0; +foreach($products as $productId =>$nameProduct) { +//echo $nameProduct; !empty($ColorsCnt[$productId]) and + if($quantity_warehouseman_fact[$productId]["NULL"]["NULL"]>0) { + + if($i==20) { echo' +'.$head.''; + + + if($printSumm==1) echo''; + + echo''; $i=0; } + + + echo''; + + $divisionCnt=0; + foreach($sortStore as $storeId) { + $value=ceil($dataFiedlsValues[$productId][$storeId]["NULL"]); + $divisionCnt=$divisionCnt + $value; + if(empty($value)) $value=""; + echo''; + } + + if($printSumm==1) { + echo''; + + echo''; + $r2=$quantity_warehouseman_fact[$productId]["NULL"]["NULL"]-$divisionCnt; + + echo''; + } + $colspan=count($sortStore)+1; + echo''; + + + + if($printColor==1) { +// + $kk=0; +// цвета + foreach($products_colors[$productId] ?? [] as $colorId => $colorName) { + $colorName=trim($colorName); + $colorName2=trim(str_replace(['\\','/'],['',''],$colorName)); + if($dataFiedlsValuesColorsCnt[$productId][$colorName2]>0) + { + + + + + echo' +'; + $colorCounter=0; + foreach($sortStore as $storeId) { + $value=ceil($dataFiedlsValues[$productId][$storeId][$colorName2]); + + $value=round(100*$colorPercent[$productId][$storeId][$colorName2]); + + // if(!empty($value)) $value .="%"; + + if(empty($value)) $value=""; + + + $value_real=ceil($dataFiedlsValues[$productId][$storeId]["NULL"]); + $newcolorcnt=$value_real*($value/100); + + // $newcolorcnt=$dataColor[$productId][$colorName]*($value/100); + + $colorcnt=ceilCoefficient($newcolorcnt,$productsMinLot[$productId]); + + $colorCounter +=$colorcnt; + + echo''; + } + + + if($printSumm) { + + $colorDifference=$colorCounter-$dataColor[$productId][$colorName]; + $znak=""; + if($colorCounter>$dataColor[$productId][$colorName]) $znak="+"; + + + echo' +'; + + } + + + echo''; + + } + + + }// end color + } // end if color + + + + } + + + +} + + +echo'
наименованиемин-ый лот деления шт.'.$storesAll[$storeId].''.$storesAll[$storeId].'итогокупленоразница
наименованиемин-ый лот деления шт.итогокупленоразница
'.$nameProduct.' '; + if(!empty($products_colors[$productId]) and $ColorsCnt[$productId]>0 and empty($printColor)) echo' + цвета'; + echo' '.$productsMinLot[$productId].''.$value.''; + + if(!empty($dataHand[$productId][$storeId]["NULL"]) and $printHand==1) echo''.intval($dataHand[$productId][$storeId]["NULL"]).''; + echo''.intval($divisionCnt).''.intval($quantity_warehouseman_fact[$productId]["NULL"]["NULL"]).''.$r2.'
'.$colorName.' ('.$dataColor[$productId][$colorName].' шт.) в %'; + + + echo''.$colorcnt.''; + + if(!empty($value) and $printPercentMatrix==1) echo'
+ '.$value.'%'; + + echo' +
'.$colorCounter.''.$dataColor[$productId][$colorName].''.$znak.''.$colorDifference.'
'; + + + +$_CONFIG["jscss"] .=' +'; + +include_once dirname(__DIR__, 2) . '/templates/bottom_light.php'; + diff --git a/erp24/views/shipment/fields-data2.php b/erp24/views/shipment/fields-data2.php index 27fbebc2..511216d6 100644 --- a/erp24/views/shipment/fields-data2.php +++ b/erp24/views/shipment/fields-data2.php @@ -278,7 +278,7 @@ foreach($products as $pid =>$name) { $tip=$products_class[$categoryId] ?? ''; - if(count($productsColorsArray[$pid])>0) echo'+ цвета'; + if(count($productsColorsArray[$pid] ?? [])>0) echo'+ цвета'; echo''; echo''; @@ -288,7 +288,7 @@ foreach($products as $pid =>$name) { //begin colors - foreach($productsColorsArray[$pid] as $color) { + foreach($productsColorsArray[$pid] ?? [] as $color) { $color=trim($color); if(!empty($color)) { echo''.$name.' + '.$color.''; diff --git a/erp24/views/shipment/index.php b/erp24/views/shipment/index.php index efbc25a7..fd24bb92 100755 --- a/erp24/views/shipment/index.php +++ b/erp24/views/shipment/index.php @@ -26,14 +26,10 @@ $modul = 'shipments';
-

title) ?>

- - -

- 'btn btn-success']) ?> -

- - +

+ title) ?> + 'btn btn-success']) ?> +

>деление /purchase/?id=>цвета для кустовых при заказе - /divisionPrint/?id=>деление - печать на складе + >деление - печать на складе >деление - по цветам @@ -93,7 +89,7 @@ foreach($storeOrders as $row) { >новый интерфейс2 >деление /purchase/?id=>цвета для кустовых при заказе - /divisionPrint/?id=>деление - печать на складе + >деление - печать на складе >деление - по цветам -- 2.39.5