Quintiq file version 2.0
|
#parent: #root
|
StaticMethod Update (
|
GlobalOTDSOP 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;
|
*]
|
}
|