From a6ed7bbccd90d6951128ee4ff7bc9739d96fed3f Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Wed, 22 May 2024 16:07:03 +0300 Subject: [PATCH] fix part 020 --- erp24/modul/shipment/functionsShipment.php | 149 ++++++++++----------- 1 file changed, 72 insertions(+), 77 deletions(-) diff --git a/erp24/modul/shipment/functionsShipment.php b/erp24/modul/shipment/functionsShipment.php index 7a1d4261..585763f3 100644 --- a/erp24/modul/shipment/functionsShipment.php +++ b/erp24/modul/shipment/functionsShipment.php @@ -720,95 +720,90 @@ if(!empty($bgNew)) $bg=$bgNew; //вставляем данные в таблицу дашборда function insert_store_orders_fields($massivSQL,$field_name,$massivTitle=[], $print=false) { -global $db,$orderId,$storeIdToGuidArray,$fieldsRows,$FiledsData; + global $db,$orderId,$storeIdToGuidArray,$fieldsRows, $FiledsData; -$field_id=$fieldsRows[$field_name]["id"]; -$type=$fieldsRows[$field_name]["type"]; + $field_id=$fieldsRows[$field_name]["id"]; + $type=$fieldsRows[$field_name]["type"]; -$divisionFieldsArray=["division_store","division_store_hand","division_store_summ"]; - -if(in_array($field_name,$divisionFieldsArray)) { -$db::sql("DELETE FROM store_orders_fields_data WHERE order_id=? AND field_name=? AND (store_id='' or value='0.000' ) ",[$orderId,$field_name]); -} - - -foreach($massivSQL as $productId =>$array) { - foreach($array as $storeId =>$valueArr) { - foreach($valueArr as $color =>$value) { - // if(empty($color) or $storeId=="NULL") $color=""; - if($color=="NULL") $color=""; - - if(is_numeric($storeId) and !empty($storeIdToGuidArray[$storeId]) and $storeId!='NULL') $storeId=$storeIdToGuidArray[$storeId]; - if(empty($storeId) or $storeId=="NULL") $storeId=""; - - if($type=="string") {$value_text=$value; $value="";} - else { $value_text=""; } - - try { - if(empty($storeId)) $storeIdData="NULL"; else $storeIdData=$storeId; - if(empty($color)) $colorData="NULL"; else $colorData=$color; - $oldvalue=$FiledsData[$field_name][$productId][$storeIdData][$colorData] ?? ''; - // $oldtitle=$FiledsData["title__".$field_name][$productId][$storeIdData][$colorData]; - - // if($print==true) echo"
!!!--------$field_name =$value oldtitle=$oldtitle $title"; - - if(($type!="string") or ($type=="string" and $value_text!="")) { - - - $title=$massivTitle[$productId][$storeIdData][$colorData] ?? ''; - - - // echo"
++ productId = $productId order_id=$orderId field_name=$field_name storeId=$storeId value=$value"; - $Insert=true; - // if(in_array($field_name,$divisionFieldsArray) and ($value==0 and empty($oldvalue))) $Insert=false; - - - - if($Insert) { - $sql = "INSERT INTO store_orders_fields_data (product_id, order_id, store_id, field_name, field_id, value, value_text, color,hand,date_update, title) - VALUES (?,?,?,?,?,?,?,?,'-1',NOW(),?) ON CONFLICT (order_id, product_id, store_id, field_id, field_name, color) DO UPDATE SET value=?, hand=0, value_text=?, date_update=NOW(), title=?"; - $sql2 = "INSERT INTO store_orders_fields_data (product_id, order_id, store_id, field_name, field_id, value, value_text, color,hand,date_update, title) - VALUES ('$productId','$orderId','$storeId','$field_name','$field_id','$value','$value_text','$color','-1',NOW(),'$title') ON CONFLICT (order_id, product_id, store_id, field_id, field_name, color) DO UPDATE SET value='$value', hand=0, value_text='$value_text', date_update=NOW(), title='$title'"; - // var_dump($sql2); die; - $db::sql($sql, [$productId, $orderId, $storeId, $field_name, $field_id, $value, $value_text, $color, $title, $value, $value_text , $title]); - } + $divisionFieldsArray=["division_store","division_store_hand","division_store_summ"]; + if(in_array($field_name,$divisionFieldsArray)) { + $db::sql("DELETE FROM store_orders_fields_data WHERE order_id=? AND field_name=? AND (store_id='' or value='0.000' ) ",[$orderId,$field_name]); + } - } - -// if(($type!="string" and !empty($value) and $value!='0.000') or ($type=="string" and $value_text!="") ) { -// if(($oldvalue==$value or $oldvalue=="$value.000") and $value_text=="") { + foreach($massivSQL as $productId =>$array) { + foreach($array as $storeId =>$valueArr) { + foreach($valueArr as $color =>$value) { + // if(empty($color) or $storeId=="NULL") $color=""; + if ($color=="NULL" || $color == 0) { + $color=""; + } + if (is_numeric($storeId) and !empty($storeIdToGuidArray[$storeId]) and $storeId!='NULL') { + $storeId = $storeIdToGuidArray[$storeId]; + } + if (empty($storeId) or $storeId=="NULL") { + $storeId=""; + } + + if ($type=="string") { + $value_text = $value; + $value = ""; + } else { + $value_text = ""; + } + + try { + $storeIdData = empty($storeId) ? "NULL" : $storeId; + $colorData = empty($color) ? "NULL" : $color; + +// $oldvalue=$FiledsData[$field_name][$productId][$storeIdData][$colorData] ?? ''; +// $oldtitle=$FiledsData["title__".$field_name][$productId][$storeIdData][$colorData]; +// if($print==true) echo"
!!!--------$field_name =$value oldtitle=$oldtitle $title"; + + if (($type!="string") or ($type=="string" and $value_text!="")) { + $title = $massivTitle[$productId][$storeIdData][$colorData] ?? ''; +// echo"
++ productId = $productId order_id=$orderId field_name=$field_name storeId=$storeId value=$value"; + $Insert=true; +// if(in_array($field_name,$divisionFieldsArray) and ($value==0 and empty($oldvalue))) $Insert=false; + if($Insert) { + $sql = "INSERT INTO store_orders_fields_data (product_id, order_id, store_id, field_name, field_id, value, value_text, color,hand,date_update, title) + VALUES (?,?,?,?,?,?,?,?,'-1',NOW(),?) ON CONFLICT (order_id, product_id, store_id, field_id, field_name, color) DO UPDATE SET value=?, hand=0, value_text=?, date_update=NOW(), title=?"; + $sql2 = "INSERT INTO store_orders_fields_data (product_id, order_id, store_id, field_name, field_id, value, value_text, color,hand,date_update, title) + VALUES ('$productId','$orderId','$storeId','$field_name','$field_id','$value','$value_text','$color','-1',NOW(),'$title') ON CONFLICT (order_id, product_id, store_id, field_id, field_name, color) DO UPDATE SET value='$value', hand=0, value_text='$value_text', date_update=NOW(), title='$title'"; + // var_dump($sql2); die; + $db::sql($sql, [$productId, $orderId, $storeId, $field_name, $field_id, $value, $value_text, $color, $title, $value, $value_text , $title]); + } + } + +// if(($type!="string" and !empty($value) and $value!='0.000') or ($type=="string" and $value_text!="") ) { +// if(($oldvalue==$value or $oldvalue=="$value.000") and $value_text=="") { // -// // echo"
По этому товару не обновляем так ка значение старое уже есть"; +// // echo"
По этому товару не обновляем так ка значение старое уже есть"; // -// } +// } // -// if(((empty($value) or $value=="0.000" or $oldvalue==$value or $oldvalue=="$value.000" or $oldtitle==$title ) and $type!="string") or ($type=="string" and $value_text=="")) { +// if(((empty($value) or $value=="0.000" or $oldvalue==$value or $oldvalue=="$value.000" or $oldtitle==$title ) and $type!="string") or ($type=="string" and $value_text=="")) { // -// } -// else { -// // if($print==true) echo"
!!! $field_name =$value"; -// // $db::sql("INSERT IGNORE INTO store_orders_fields_data (product_id, order_id, store_id, field_name, field_id, value, value_text, color,hand,date_update, title) VALUES (?,?,?,?,?,?,?,?,'-1',NOW(),?) ON DUPLICATE KEY UPDATE value=?, hand=0, value_text=?, date_update=NOW(), title=?", [$productId, $orderId, $storeId, $field_name, $field_id, $value, $value_text, $color, $title, $value, $value_text , $title]); -// } +// } +// else { +// // if($print==true) echo"
!!! $field_name =$value"; +// // $db::sql("INSERT IGNORE INTO store_orders_fields_data (product_id, order_id, store_id, field_name, field_id, value, value_text, color,hand,date_update, title) VALUES (?,?,?,?,?,?,?,?,'-1',NOW(),?) ON DUPLICATE KEY UPDATE value=?, hand=0, value_text=?, date_update=NOW(), title=?", [$productId, $orderId, $storeId, $field_name, $field_id, $value, $value_text, $color, $title, $value, $value_text , $title]); +// } // -// // if(empty($storeId)) $storeIdData="NULL"; else $storeIdData=$storeId; -// //if(empty($color)) $colorData="NULL"; else $colorData=$color; +// // if(empty($storeId)) $storeIdData="NULL"; else $storeIdData=$storeId; +// //if(empty($color)) $colorData="NULL"; else $colorData=$color; // -// // echo"
$field_name pid=$productId color=$color =$value valuetext=$value_text "; +// // echo"
$field_name pid=$productId color=$color =$value valuetext=$value_text "; // // -// } - - - } catch (Exception $e) - { - echo 'Ошибка вставки данных field_name='.$field_name.' '.print_r($param ?? '').' error='. $e->getMessage() . ' ' . $e->getFile() . ' ' . $e->getLine() . ' ' . $e->getTraceAsString(); - } - - - } - } - } +// } + + } catch (Exception $e) { + echo 'Ошибка вставки данных field_name='.$field_name.' '.print_r($param ?? '').' error='. $e->getMessage() . ' ' . $e->getFile() . ' ' . $e->getLine() . ' ' . $e->getTraceAsString(); + } + } + } + } } -- 2.39.5