Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method CreateOrUpdateData ( 
 | 
  GlobalOTDTable globalOTDTable 
 | 
) 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    traverse ( this, MatAttrSettingAndPlanStrategyDataRow, masapsdr ) { 
 | 
      itemCode := select( masapsdr, MatAttrSettingAndPlanStrategyDataCell, tempMASAPSDC, tempMASAPSDC.MatAttrSettingAndPlanStrategyDataColumn().name() = "物料编码" ); 
 | 
      targetMatAttrSettingAndPlanStrategy := select( globalOTDTable, 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 := globalOTDTable.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( globalOTDTable, MatAttrSettingAndPlanStrategy, tempMASAPS, tempMASAPS.SerialNumber() ).SerialNumber() + 1 );                                                                                 
 | 
        } onerror { 
 | 
          error( "库存最小天数或库存最大天数必须为整数:", targetMatAttrSettingAndPlanStrategy.MatCode() ); 
 | 
        } 
 | 
      } 
 | 
    } 
 | 
  *] 
 | 
} 
 |