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; 
 | 
  *] 
 | 
} 
 |