From: Alexander Smirnov Date: Tue, 19 Dec 2023 14:44:34 +0000 (+0300) Subject: add shipment division-print-edit2 during pure php to yii movement X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=8951ae933395575f8a03d82a49e0032b5bcfd32f;p=yii-erp24%2F.git add shipment division-print-edit2 during pure php to yii movement --- diff --git a/erp24/actions/shipment/DivisionPrintEdit2Action.php b/erp24/actions/shipment/DivisionPrintEdit2Action.php new file mode 100644 index 0000000..733a504 --- /dev/null +++ b/erp24/actions/shipment/DivisionPrintEdit2Action.php @@ -0,0 +1,12 @@ +controller->render('division-print-edit2'); + } +} \ No newline at end of file diff --git a/erp24/controllers/ShipmentController.php b/erp24/controllers/ShipmentController.php index b15e990..f765f17 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-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, 'store-products-fact' => \yii_app\actions\shipment\StoreProductsFactAction::class, diff --git a/erp24/inc/functionsFiedlsData.php b/erp24/inc/functionsFiedlsData.php index 14cde17..bc3aef8 100644 --- a/erp24/inc/functionsFiedlsData.php +++ b/erp24/inc/functionsFiedlsData.php @@ -165,7 +165,7 @@ $date1=date('Y-m-d 00:00:00', $time-86400*8); $group_id = $_SESSION['group_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"]; } diff --git a/erp24/views/shipment/division-print-edit2.php b/erp24/views/shipment/division-print-edit2.php new file mode 100644 index 0000000..290b3f6 --- /dev/null +++ b/erp24/views/shipment/division-print-edit2.php @@ -0,0 +1,541 @@ +$massiv) { + foreach($massiv as $storeGuid) { + if($i>0) $sortStoreId .=","; + $sortStoreId .=$storeGuid; + $sortStore[]=$storeGuid; + $i++; + } + echo'

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

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

'; + + + +$data=$db::getRows("SELECT * FROM store_planogram WHERE 1"); +foreach($data as $row) { + if(empty($row["color"])) $row["color"]="NULL"; + $store_planogram[$row["product_id"]][$row["store_id"]][$row["color"]]["min"]=$row["quantity"]; + $store_planogram[$row["product_id"]][$row["store_id"]][$row["color"]]["max"]=$row["quantity_max"]; +} + + + + +$colorSort=[]; +$data=$db::getRows("SELECT product_id, store_id, color,posit FROM store_planogram_colors_sort WHERE 1 order by product_id ASC, posit ASC"); +foreach($data as $row) $colorSort[$row["product_id"]][$row["store_id"]][$row["color"]]=$row["posit"]; + + + +$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]); +$ColorsCnt = []; +$dataFiedlsValuesColorsCnt = []; +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,field_name FROM store_orders_fields_data +WHERE order_id=? AND store_id!='' and color!='' and field_name in('color_percent','division_hand')",[$OrderId]); +foreach($data as $row) { + if($row["store_id"]!="NULL") { + if($row["field_name"]=="color_percent") $colorPercent[$row["product_id"]][$row["store_id"]][$row["color"]]=round($row["value"]); + if($row["field_name"]=="division_hand") $divisionHand[$row["product_id"]][$row["store_id"]][$row["color"]]=round($row["value"]); + + + } +} + + + +echo'
+'; + +$head=""; +foreach($sortStore as $storeId) { + echo''; + $head .=''; +} +if($printSumm==1) echo''; + + +echo''; + + +$i=0; +foreach($products as $productId =>$nameProduct) { +//echo $nameProduct; + if(!empty($ColorsCnt[$productId]) and $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''; + +//$ostatok[$productId]=$quantity_warehouseman_fact[$productId]["NULL"]["NULL"]; + + if($printColor==1) { +// + $kk=0; +// цвета + foreach($products_colors[$productId] as $colorId => $colorName) { + $colorName=trim($colorName); + $colorName2=trim(str_replace(['\\','/'],['',''],$colorName)); + if(1)//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]); + $colorData[$productId][$storeId][$colorName2]=$colorcnt; + + $colorCounter +=$colorcnt; + + echo''; + } + + + if($printSumm) { + + $colorDifference=$colorCounter-$dataColor[$productId][$colorName]; + $znak=""; + if($colorCounter>$dataColor[$productId][$colorName]) $znak="+"; + + $difference[$productId][$colorName]=$colorDifference; + + + echo' + '; + + } + + + echo''; + + */ + + +////////////// class="bg-secondary" + + + $colorAllcnt=0; + if(!empty($dataColor[$productId][$colorName])) { + echo''; + $ColorsCounter[$productId]++; + $foreachBegin=$difference[$productId][$colorName]; + $minLot=$productsMinLot[$productId]; + $newHand=[]; + foreach($sortStore as $storeId) { + //$colorData[$productId][$storeId][$colorName2] + if($colorData[$productId][$storeId][$colorName]>0 and $colorData[$productId][$storeId][$colorName]>=$minLot) { + if($foreachBegin>0) { + $foreachBegin -=$minLot; + $newHand[$storeId] +=-$minLot; + + + + } else break; + } + + + } + + + + foreach($sortStore as $storeId) { + $newColorInt=$colorData[$productId][$storeId][$colorName]-abs($newHand[$storeId]); + + if(isset($divisionHand[$productId][$storeId][$colorName])) $newColorInt=$divisionHand[$productId][$storeId][$colorName]; + + $ostatok[$productId][$storeId] +=$newColorInt; //'.$newHand[$storeId].'= $(\'#input_division_hand'.$storeId.''.$productId.''.md5($colorName).'\').toggle(); + echo''; + + $colorAllcnt +=$newColorInt; + + // +// '.$store_planogram[$productId][$storeId][$colorName]["min"].'-'.$store_planogram[$productId][$storeId][$colorName]["max"].' + } + + + if($printSumm) { + +//$colorDifference=$colorCounter-$dataColor[$productId][$colorName]; + $znak=""; + + + $difcolor=$dataColor[$productId][$colorName]-$colorAllcnt; + +//if($colorCounter>$dataColor[$productId][$colorName]) $znak="+"; '.$colorCounter.' '.$dataColor[$productId][$colorName].' + echo' +'; + + } + + echo''; + } +///////////////// + + } + + + }// end color + + +////////////// + + + if(!empty($ColorsCounter[$productId])) { + echo''; + foreach($sortStore as $storeId) { + + + $ost=$dataFiedlsValues[$productId][$storeId]["NULL"] - $ostatok[$productId][$storeId]; + //'.$ostatok[$productId][$storeId].' + echo''; + } + + + if($printSumm) { + + echo' +'; + + } + + echo''; + } +///////////////// + + + + + + } // 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.'
'.$colorName.' ('.$dataColor[$productId][$colorName].' шт.)'.$newColorInt.' + + '.$colorAllcnt.''.$dataColor[$productId][$colorName].''.$difcolor.'
остаток'.$ost.'
'; +//var onch=\'onchange="ajaxEditColor( \'\'+name_eng+\'\' , \'\'+store_id+\'\', \'\'+product_id+\'\', \'\'+color+\'\', \'\'+colormd5+\'\');" class="" id="input_\'+name_eng+\'\'+store_id+\'\'+product_id+\'\'+colormd5+\'">\');"\'; + + +// $(\'#\'+name_id).after(\'\'); +// class="" id="input_\'+name_eng+\'\'+store_id+\'\'+product_id+\'\'+colormd5+\'" +$_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 2a467ef..27fbebc 100644 --- a/erp24/views/shipment/fields-data2.php +++ b/erp24/views/shipment/fields-data2.php @@ -260,7 +260,7 @@ foreach($products as $pid =>$name) { if(empty($FiledsData["quantity_warehouseman_fact"][$pid]["NULL"]["NULL"]) and $status_order_id >= 6) { echo' class="bg-danger"'; - echo' style="opacity:0.5"'; + //echo' style="opacity:0.5"'; } diff --git a/erp24/views/shipment/index.php b/erp24/views/shipment/index.php index eb1a9c7..efbc25a 100755 --- a/erp24/views/shipment/index.php +++ b/erp24/views/shipment/index.php @@ -59,7 +59,7 @@ foreach($storeOrders as $row) { /purchase/?id=>цвета для кустовых при заказе /divisionPrint/?id=>деление - печать на складе - /divisionPrintEdit/?id=>деление - по цветам + >деление - по цветам @@ -94,7 +94,7 @@ foreach($storeOrders as $row) { >деление /purchase/?id=>цвета для кустовых при заказе /divisionPrint/?id=>деление - печать на складе - /divisionPrintEdit/?id=>деление - по цветам + >деление - по цветам