Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod FromSupplyPlanning ( 
 | 
  GlobalOTDTable otdTable, 
 | 
  MacroPlan macroPlan, 
 | 
  MacroPlan mappingRoot, 
 | 
  ProductInStockingPointInPeriod pispip 
 | 
) as PRData 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    // yypsybs Sep-12-2023 (created) 
 | 
    result := macroPlan.PRData( relnew ); 
 | 
    result.InterfaceSourceCode( "Quintiq" ); 
 | 
     
 | 
    pisp := pispip.ProductInStockingPoint_MP(); 
 | 
    product := pisp.Product_MP(); 
 | 
    stockingPoint := pisp.StockingPoint_MP(); 
 | 
    period := pispip.Period_MP(); 
 | 
    mappingProduct := MappingProduct::GetByProductId( mappingRoot, product.ID() ); 
 | 
    matAttrSetting := MatAttrSettingAndPlanStrategy::GetExistByMatCode( otdTable, product.ID() ); 
 | 
    // 接口/中间表暂无 
 | 
    mappingProviderCapacity := "暂无"; 
 | 
    erpData := "暂无"; 
 | 
     
 | 
    // 根据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.ProduceRequiredDate( period.StartDate() ); 
 | 
    result.PRSuggestionDate( ifexpr( (result.ProduceRequiredDate() - Duration::Days( 7 )).Date() >= Date::Today(), 
 | 
                                     Date::Today(), (result.ProduceRequiredDate() - 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( "暂无" ); 
 | 
      result.OrganCode( "暂无" ); 
 | 
      result.UnitOfMeasure( "暂无" ); 
 | 
    } else { 
 | 
      result.BusinessType( mappingProduct.BusinessType() ); 
 | 
      result.OrganCode( mappingProduct.OrgCode() ); 
 | 
      result.UnitOfMeasure( mappingProduct.UnitOfMeasureName() ); 
 | 
    } 
 | 
     
 | 
    // 根据供应商能力中间表 
 | 
    result.ProviderCode( mappingProviderCapacity ); 
 | 
    result.ProductName( mappingProviderCapacity ); 
 | 
    result.LeadTime( 0.0 ); 
 | 
     
 | 
    // 根据erp接口 固定值 
 | 
    result.RequisitionType( "PURCHASE" ); 
 | 
    result.DestinationTypeCode( "INVENTORY" ); 
 | 
    result.UnitPrice( 1.0 ); 
 | 
    result.AuthorizationStatus( "INCOMPLETE" ); 
 | 
    result.LineTypeId( "1" ); 
 | 
    result.LineType( "货物" ); 
 | 
    // 根据erp接口 todo 
 | 
    result.PreparerId( erpData ); 
 | 
    result.HeaderDescription( erpData ); 
 | 
    result.DestinationOrganizationID( erpData ); 
 | 
    result.DeliverToRequestorId( erpData ); 
 | 
    result.LineAttribute1( erpData ); 
 | 
    result.LineAttribute6( erpData ); 
 | 
    result.OrgId( erpData ); 
 | 
     
 | 
    // 生成id todo 
 | 
    result.DataID( [String]Number::Random( Number::MinNumber(), Number::MaxNumber() ) ); 
 | 
     
 | 
    // 发送信息 
 | 
    result.SendStatus( "" ); 
 | 
    result.SendBy( "" ); 
 | 
    result.SendTime( DateTime::MinDateTime() ); 
 | 
     
 | 
    return result; 
 | 
  *] 
 | 
} 
 |