| Quintiq file version 2.0 | 
| #parent: #root | 
| StaticMethod FromSupplyPlanning ( | 
|   const GlobalOTDTable otdTable, | 
|   const GlobalOTDSOP otdSop, | 
|   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 := MatAttrSettingAndPlanStrategy::GetByMatCode( otdSop, 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; | 
|   *] | 
| } |