Quintiq file version 2.0
|
#parent: #root
|
StaticMethod update (
|
GlobalOTDTable parent,
|
MatAttrSettingAndPlanStrategyDataRow excelRow
|
) as MatAttrSettingAndPlanStrategy
|
{
|
TextBody:
|
[*
|
fields := MatAttrSettingAndPlanStrategyDataTable::exportFields();
|
headers := MatAttrSettingAndPlanStrategyDataTable::expectedHeaders();
|
// 找待更新记录
|
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 ) {
|
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( 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( "MatAttrSettingAndPlanningStrategy", fieldName);
|
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" );
|
}
|
} 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" );
|
}
|
} else if( fieldName = "PlanningStrategyCustom" ) {
|
fieldValue := guard( field.GetString( toUpdate ), "" );
|
toUpdate.PlanningStrategyCustom( fieldValue );
|
}
|
}
|
} else {
|
error( "no record with matCode : " + matCode )
|
}
|
|
return toUpdate;
|
*]
|
}
|