| Quintiq file version 2.0 | 
| #parent: #root | 
| StaticMethod Update ( | 
|   GlobalOTDTable parent, | 
|   MatAttrSettingAndPlanStrategyDataRow excelRow, | 
|   String userName | 
| ) as MatAttrSettingAndPlanStrategy | 
| { | 
|   TextBody: | 
|   [* | 
|     fields := MatAttrSettingAndPlanStrategyDataTable::ExportFields(); | 
|     headers := MatAttrSettingAndPlanStrategyDataTable::ExpectedHeaders(); | 
|     //info( "--------SaveData--------" ); | 
|     // 找待更新记录 | 
|     toUpdate := null( MatAttrSettingAndPlanStrategy ); | 
|     matCode := ""; | 
|     for( i := 0; i < fields.Size(); i++ ) { | 
|       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 ); | 
|         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 ); | 
|         cell := excelRow.MatAttrSettingAndPlanStrategyDataCell( relget ).Element( i ); | 
|         fieldName := fields.Element( i ); | 
|         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" ) { | 
|           // do nothing | 
|         } else if( fieldName = "MatArrivalLT" or fieldName = "ProductCount" or fieldName = "MinProdDeliverLT" ) { | 
|           // do nothing | 
|         } else if( fieldName = "PlanningStrategyCustom" ) { | 
|           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 { | 
|       FeedbackObject::LocalFeedback().AddHard( "no record with matCode : " + matCode ); | 
|       error( "no record with matCode : " + matCode ); | 
|     } | 
|      | 
|     return toUpdate; | 
|   *] | 
| } |