Quintiq file version 2.0
|
#parent: #root
|
StaticMethod FromSupplyPlanning (
|
const GlobalOTDTable otdTable,
|
MacroPlan macroPlan,
|
ProductInStockingPointInPeriod pispip,
|
String userId
|
) as PRData
|
{
|
TextBody:
|
[*
|
// yypsybs Sep-12-2023 (created)
|
result := macroPlan.PRData( relnew );
|
|
pisp := pispip.ProductInStockingPoint_MP();
|
product := pisp.Product_MP();
|
stockingPoint := pisp.StockingPoint_MP();
|
period := pispip.Period_MP();
|
// QID7
|
mappingProduct := Global_MappingProduct_MP::GetByProductId( otdTable, product.ID() );
|
// QID12
|
mappingOperation := Global_MappingOperation::GetByProductId( otdTable, product.ID() );
|
// QID15
|
mappingProviderCapacity := Global_MappingProviderCapacity::GetByProductId( otdTable, product.ID() );
|
matAttrSetting := null( MatAttrSettingAndPlanStrategy )/*MatAttrSettingAndPlanStrategy::GetExistByMatCode( otdTable, product.ID() )*/;
|
|
// 根据pispip
|
result.MRPCalverNo( ifexpr( pispip.MRPCalverNo() = "", "暂无", pispip.MRPCalverNo() ) );
|
result.Quantity( pispip.NewSupplyQuantity() );
|
|
// 根据product
|
result.ProductID( product.ID() );
|
result.ProductName( product.Name() );
|
|
// 根据stockingPoint
|
result.StockingPointID( stockingPoint.ID() );
|
|
// 根据period
|
result.DeliveryDate( period.StartDate() );
|
result.PRSuggestionDate( ifexpr( (result.DeliveryDate() - Duration::Days( 7 )).Date() >= Date::Today(),
|
Date::Today(), (result.DeliveryDate() - Duration::Days( 7 )).Date() ) );
|
|
// 根据 物料属性标签设定&物料计划策略
|
result.IsPanelMaterial( "暂无" );
|
if( isnull( matAttrSetting ) ) {
|
result.IsGenericMaterial( "暂无" );
|
result.IsLongLeadItem( "暂无" );
|
result.MaterialMRPType( "暂无" );
|
} else {
|
result.IsGenericMaterial( matAttrSetting.FlagGeneric() );
|
result.IsLongLeadItem( matAttrSetting.FlagLongTerm() );
|
result.MaterialMRPType( ifexpr( matAttrSetting.PlanningStrategyCustom() <> "", matAttrSetting.PlanningStrategyCustom(), matAttrSetting.PlanningStrategyAuto() ) );
|
}
|
|
// 根据product中间表
|
if( isnull( mappingProduct ) ) {
|
result.BusinessType( "暂无" );
|
} else {
|
result.BusinessType( mappingProduct.BusinessType() );
|
}
|
result.InterfaceSourceCode( "Quintiq_" + result.BusinessType() );
|
|
// 根据operation中间表
|
if( isnull( mappingOperation ) ) {
|
result.OrgId( "暂无" );
|
result.OrganCode( "暂无" );
|
result.OrganName( "暂无" );
|
result.DestinationOrganizationID( "暂无" );
|
} else {
|
result.OrgId( mappingOperation.OrganId() );
|
result.OrganCode( mappingOperation.OrganCode() );
|
result.OrganName( mappingOperation.OrganName() );
|
result.DestinationOrganizationID( mappingOperation.DestinationOrganizationId() );
|
}
|
|
// 根据供应商能力中间表
|
if( isnull( mappingProviderCapacity ) ) {
|
result.ProviderCode( "暂无" );
|
result.ProviderName( "暂无" );
|
result.LeadTime( 0.0 );
|
result.UnitOfMeasure( "暂无" );
|
} else {
|
result.ProviderCode( "暂无" );
|
result.ProviderName( mappingProviderCapacity.ProviderName() );
|
result.LeadTime( mappingProviderCapacity.LeadTime() );
|
result.UnitOfMeasure( mappingProviderCapacity.UnitOfMeasureName() );
|
}
|
|
// 根据erp接口 固定值
|
result.RequisitionType( "PURCHASE" );
|
result.DestinationTypeCode( "INVENTORY" );
|
result.UnitPrice( 1.0 );
|
result.AuthorizationStatus( "INCOMPLETE" );
|
result.LineTypeId( "1" );
|
result.LineType( "货物" );
|
// 根据erp接口 todo
|
result.LineAttribute1( "" );
|
result.LineAttribute3( "" );
|
result.LineAttribute6( "" );
|
|
// 用户id/name
|
result.PreparerId( userId );
|
result.HeaderDescription( userId );
|
result.DeliverToRequestorId( result.PreparerId() );
|
|
// 生成id
|
cnv := DateTimeToString::StandardConverter();
|
cnv.SetCustomConversion();
|
cnv.CustomFormatString( "yyyyMMdd_H:mm:ss" );
|
result.DataID( cnv.Convert( DateTime::ActualTime() ) + "_" + [String]Number::Random( Number::MinNumber(), Number::MaxNumber() ) );
|
|
// 发送信息
|
result.PRReleaseStatus( "" );
|
result.CreateBy( "" );
|
result.CreateTime( DateTime::MinDateTime() );
|
|
return result;
|
*]
|
}
|