Quintiq file version 2.0
|
#parent: #root
|
Method CreateOrUpdateData (
|
GlobalOTDSOP globalOTDSOP
|
)
|
{
|
TextBody:
|
[*
|
traverse ( this, MatAttrSettingAndPlanStrategyDataRow, masapsdr ) {
|
itemCode := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "物料编码" );
|
targetMatAttrSettingAndPlanStrategy := select( globalOTDSOP, MatAttrSettingAndPlanStrategy, tempMASAPS, tempMASAPS.MatCode() = itemCode.value() );
|
if ( not isnull( targetMatAttrSettingAndPlanStrategy ) ) {
|
minimumNumberOfDaysInStock := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "库存最小天数" ).value();
|
maximumNumberOfDaysInInventory := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "库存最大天数" ).value();
|
try {
|
targetMatAttrSettingAndPlanStrategy.MinimumNumberOfDaysInStock( [Number]minimumNumberOfDaysInStock );
|
targetMatAttrSettingAndPlanStrategy.MaximumNumberOfDaysInInventory( [Number]maximumNumberOfDaysInInventory );
|
targetMatAttrSettingAndPlanStrategy.UpdateBy( QuintiqUser::CurrentUser().Username() );
|
targetMatAttrSettingAndPlanStrategy.UpdateTime( DateTime::ActualTime() );
|
} onerror {
|
error( "库存最小天数或库存最大天数必须为整数:", targetMatAttrSettingAndPlanStrategy.MatCode() );
|
}
|
} else {
|
businessType := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "业务类型" ).value();
|
createItemCode := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "物料编码" ).value();
|
nameOfMaterial := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "物料名称" ).value();
|
itemClassification := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "物料分类" ).value();
|
LTTimeDays := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "LT时间(天)" ).value();
|
// numberOfFinishedSKUs := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "成品SKU数量" ).value();
|
// finishedProductDeliveryMinLTDays := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "成品交付Min-LT(天)" ).value();
|
longAndShortCycleLabels := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "长短周期标签" ).value();
|
genericSpecialLabels := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "通用专用标签" ).value();
|
automaticMaterialPlanningPolicies := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "自动物料计划策略" ).value();
|
usersManuallySchedulePolicies := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "用户手动计划策略" ).value();
|
minimumNumberOfDaysInStock := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "库存最小天数" ).value();
|
maximumNumberOfDaysInInventory := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "库存最大天数" ).value();
|
if ( businessType = "集团面板" ) {
|
if ( createItemCode.StartsWith( "103" ) ) {
|
if( longAndShortCycleLabels = "长周期" ) {
|
if ( genericSpecialLabels = "专用" ) {
|
if ( automaticMaterialPlanningPolicies <> "JIT" ) {
|
error( "导入的自动计划策略值出错:", createItemCode );
|
}
|
} else if ( genericSpecialLabels = "通用" ) {
|
if ( automaticMaterialPlanningPolicies <> "安全库存" ) {
|
error( "导入的自动计划策略值出错:", createItemCode );
|
}
|
} else {
|
error( "专通用标签的值出错:", createItemCode );
|
}
|
} else if ( longAndShortCycleLabels = "短周期" ) {
|
if ( genericSpecialLabels = "专用" ) {
|
if ( automaticMaterialPlanningPolicies <> "JIT" ) {
|
error( "导入的自动计划策略值出错:", createItemCode );
|
}
|
} else if ( genericSpecialLabels = "通用" ) {
|
if ( automaticMaterialPlanningPolicies <> "安全库存" ) {
|
error( "导入的自动计划策略值出错:", createItemCode );
|
}
|
} else {
|
error( "专通用标签的值出错:", createItemCode );
|
}
|
} else {
|
error( "长短周期的值出错:", createItemCode );
|
}
|
} else {
|
if( longAndShortCycleLabels = "长周期" ) {
|
if ( genericSpecialLabels = "专用" ) {
|
if ( automaticMaterialPlanningPolicies <> "JIT" ) {
|
error( "导入的自动计划策略值出错:", createItemCode );
|
}
|
} else if ( genericSpecialLabels = "通用" ) {
|
if ( automaticMaterialPlanningPolicies <> "JIT" ) {
|
error( "导入的自动计划策略值出错:", createItemCode );
|
}
|
} else {
|
error( "专通用标签的值出错:", createItemCode );
|
}
|
} else if ( longAndShortCycleLabels = "短周期" ) {
|
if ( genericSpecialLabels = "专用" ) {
|
if ( automaticMaterialPlanningPolicies <> "JIT" ) {
|
error( "导入的自动计划策略值出错:", createItemCode );
|
}
|
} else if ( genericSpecialLabels = "通用" ) {
|
if ( automaticMaterialPlanningPolicies <> "JIT" ) {
|
error( "导入的自动计划策略值出错:", createItemCode );
|
}
|
} else {
|
error( "专通用标签的值出错:", createItemCode );
|
}
|
} else {
|
error( "长短周期的值出错:", createItemCode );
|
}
|
}
|
} else {
|
if( longAndShortCycleLabels = "长周期" ) {
|
if ( genericSpecialLabels = "专用" ) {
|
if ( automaticMaterialPlanningPolicies <> "JIT" ) {
|
error( "导入的自动计划策略值出错:", createItemCode );
|
}
|
} else if ( genericSpecialLabels = "通用" ) {
|
if ( automaticMaterialPlanningPolicies <> "安全库存" ) {
|
error( "导入的自动计划策略值出错:", createItemCode );
|
}
|
} else {
|
error( "专通用标签的值出错:", createItemCode );
|
}
|
} else if ( longAndShortCycleLabels = "短周期" ) {
|
if ( genericSpecialLabels = "专用" ) {
|
if ( automaticMaterialPlanningPolicies <> "JIT" ) {
|
error( "导入的自动计划策略值出错:", createItemCode );
|
}
|
} else if ( genericSpecialLabels = "通用" ) {
|
if ( automaticMaterialPlanningPolicies <> "VMI" ) {
|
error( "导入的自动计划策略值出错:", createItemCode );
|
}
|
} else {
|
error( "专通用标签的值出错:", createItemCode );
|
}
|
} else {
|
error( "长短周期的值出错:", createItemCode );
|
}
|
}
|
try {
|
matAttrSettingAndPlanStrategy := globalOTDSOP.MatAttrSettingAndPlanStrategy( relnew,
|
BusinessType := businessType,
|
MatCode := createItemCode,
|
MatName := nameOfMaterial,
|
MatType := itemClassification,
|
MatArrivalLT := [Number]LTTimeDays,
|
// ProductCount := [Number]numberOfFinishedSKUs,
|
// MinProdDeliverLT := [Number]finishedProductDeliveryMinLTDays,
|
FlagLongTerm := longAndShortCycleLabels,
|
FlagGeneric := genericSpecialLabels,
|
// PlanningStrategyAuto := automaticMaterialPlanningPolicies,
|
PlanningStrategyCustom := usersManuallySchedulePolicies,
|
MinimumNumberOfDaysInStock := [Number]minimumNumberOfDaysInStock,
|
MaximumNumberOfDaysInInventory := [Number]maximumNumberOfDaysInInventory
|
);
|
matAttrSettingAndPlanStrategy.UpdateBy( QuintiqUser::CurrentUser().Username() );
|
matAttrSettingAndPlanStrategy.UpdateTime( DateTime::ActualTime() );
|
matAttrSettingAndPlanStrategy.SerialNumber( maxselect( globalOTDSOP, MatAttrSettingAndPlanStrategy, tempMASAPS, tempMASAPS.SerialNumber() ).SerialNumber() + 1 );
|
} onerror {
|
error( "库存最小天数或库存最大天数必须为整数:", targetMatAttrSettingAndPlanStrategy.MatCode() );
|
}
|
}
|
}
|
*]
|
}
|