From be9f3270a50b9f5318beff37bd4d70fa5632657a Mon Sep 17 00:00:00 2001
From: yypsybs <yypsybs@foxmail.com>
Date: 星期五, 08 九月 2023 17:31:05 +0800
Subject: [PATCH] 4.11.物料属性标签设定&物料计划策略

---
 _Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_update.qbl |   51 +++++++++++++++++++++++++++++++++------------------
 1 files changed, 33 insertions(+), 18 deletions(-)

diff --git a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_update.qbl b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_update.qbl
index 8294a1c..44ea303 100644
--- a/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_update.qbl
+++ b/_Main/BL/Type_MatAttrSettingAndPlanningStrategy/StaticMethod_update.qbl
@@ -1,14 +1,16 @@
 Quintiq file version 2.0
 #parent: #root
-StaticMethod update (
+StaticMethod Update (
   GlobalOTDTable parent,
-  MatAttrSettingAndPlanStrategyDataRow excelRow
+  MatAttrSettingAndPlanStrategyDataRow excelRow,
+  String userName
 ) as MatAttrSettingAndPlanStrategy
 {
   TextBody:
   [*
-    fields := MatAttrSettingAndPlanStrategyDataTable::exportFields();
-    headers := MatAttrSettingAndPlanStrategyDataTable::expectedHeaders();
+    fields := MatAttrSettingAndPlanStrategyDataTable::ExportFields();
+    headers := MatAttrSettingAndPlanStrategyDataTable::ExpectedHeaders();
+    //info( "--------SaveData--------" );
     // 鎵惧緟鏇存柊璁板綍
     toUpdate := null( MatAttrSettingAndPlanStrategy );
     matCode := "";
@@ -16,37 +18,50 @@
       header := headers.Element( i );
       cell := excelRow.MatAttrSettingAndPlanStrategyDataCell( relget ).Element( i );
       if( cell.MatAttrSettingAndPlanStrategyDataColumn().name() <> header ) {
+        FeedbackObject::LocalFeedback().AddHard( "the column with index " + [String]i + " should be " + header + ", but found " + cell.MatAttrSettingAndPlanStrategyDataColumn().name() );
         error( "the column with index " + [String]i + " should be " + header + ", but found " + cell.MatAttrSettingAndPlanStrategyDataColumn().name() );
       }
       if( cell.MatAttrSettingAndPlanStrategyDataColumn().name() = "鐗╂枡缂栫爜" and cell.value() <> "") {
         matCode := cell.value();
-        toUpdate := MatAttrSettingAndPlanStrategy::getExistByMatCode( parent, matCode );
+        toUpdate := MatAttrSettingAndPlanStrategy::GetExistByMatCode( parent, matCode );
+        if( isnull( toUpdate ) ) {
+          FeedbackObject::LocalFeedback().AddHard( "get MatAttrSettingAndPlanStrategy by matCode [" + matCode + "] failed" );
+          error( "get MatAttrSettingAndPlanStrategy by matCode [" + matCode + "] failed" );
+        }
       }
     }
     if( not isnull( toUpdate ) ) {
       // 瀵规瘮宸紓
       for( i := 0; i < fields.Size(); i++ ) {
-        header := headers.Element( i );
+    //    header := headers.Element( i );
         cell := excelRow.MatAttrSettingAndPlanStrategyDataCell( relget ).Element( i );
         fieldName := fields.Element( i );
-        field := Reflection::FindAttribute( "MatAttrSettingAndPlanningStrategy", fieldName);
+        field := Reflection::FindAttribute( "MatAttrSettingAndPlanStrategy", fieldName);
+        if( isnull( field ) ) {
+          FeedbackObject::LocalFeedback().AddHard( "MatAttrSettingAndPlanStrategy does not have field " + fieldName );
+          error( "MatAttrSettingAndPlanStrategy does not have field " + fieldName );
+        }
+    //    info( "========header:" + header + "========" )
+    //    info( "========fieldName:" + fieldName + "========" )
+    //    info( "========cell:" + cell.value() + "========" )
         if( fieldName = "MatName" or fieldName = "MatType" or fieldName = "FlagLongTerm" or fieldName = "FlagGeneric" or fieldName = "PlanningStrategyAuto" ) {
-           fieldValue := guard( field.GetString( toUpdate ), "" );
-           if( fieldValue <> cell.value() ) {
-             error( "column " + header + " does not support to be changed" );
-           }
+          // do nothing
         } else if( fieldName = "MatArrivalLT" or fieldName = "ProductCount" or fieldName = "MinProdDeliverLT" ) {
-           fieldRealValue := guard( field.GetReal( toUpdate ), 0.0 );
-           if( fieldRealValue <> [Real]cell.value() ) {
-             error( "column " + header + " does not support to be changed" );
-           }
+          // do nothing
         } else if( fieldName = "PlanningStrategyCustom" ) {
-          fieldValue := guard( field.GetString( toUpdate ), "" );
-          toUpdate.PlanningStrategyCustom( fieldValue );
+          if( cell.value() <> "VMI" and cell.value() <> "瀹夊叏搴撳瓨" and cell.value() <> "VIT" ) {
+            FeedbackObject::LocalFeedback().AddHard( "unsupported PlanningStrategyCustom : " + cell.value() );
+            error( "unsupported PlanningStrategyCustom : " + cell.value() );
+          } else if( cell.value() <> toUpdate.PlanningStrategyCustom() ) {
+            toUpdate.PlanningStrategyCustom( cell.value() );
+            toUpdate.UpdateBy( userName );
+            toUpdate.UpdateTime( DateTime::Now() );
+          }
         }
       }
     } else {
-      error( "no record with matCode : " + matCode )
+      FeedbackObject::LocalFeedback().AddHard( "no record with matCode : " + matCode );
+      error( "no record with matCode : " + matCode );
     }
     
     return toUpdate;

--
Gitblit v1.9.3