| | |
| | | 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 := ""; |
| | |
| | | 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; |