Merge branch 'dev' of http://47.101.211.7:10101/r/TIANMA_JITUAN into dev_lmj
已修改89个文件
已添加97个文件
已删除5个文件
| | |
| | | //get period of start |
| | | ddstartperiod := select( gp.MacroPlan(), PlanningPeriod, pp, pp.Start() <= start and pp.End() > start ); |
| | | |
| | | // if not start from middle and leadtime < period task period duration, make sure dependent demand end before period start |
| | | periodstart := ifexpr( not gp.IsOperationLeadTimeLogicFromMiddle() and period.Duration() < process.LeadTime(), period.Start(), DateTime::MaxDateTime() ); |
| | | |
| | | value := minvalue( start + process.LeadTime(), start + ddstartperiod.Duration(), periodstart ); |
| | | // Tianma fix 20230920 |
| | | if( not isnull( ddstartperiod ) ) |
| | | { |
| | | // if not start from middle and leadtime < period task period duration, make sure dependent demand end before period start |
| | | periodstart := ifexpr( not gp.IsOperationLeadTimeLogicFromMiddle() and period.Duration() < process.LeadTime(), period.Start(), DateTime::MaxDateTime() ); |
| | | |
| | | value := minvalue( start + process.LeadTime(), start + ddstartperiod.Duration(), periodstart ); |
| | | } |
| | | } |
| | | |
| | | return value; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | EDIBroker GlobalOTDTable_CARRC_Export |
| | | { |
| | | MDSDefinition: GlobalOTDTable |
| | | TimeZone: 'ACT' |
| | | UseOSTimeZone: false |
| | | EDIModelLink.Source Source11 |
| | | { |
| | | EDIMLTable CapacityAllocationResultsRuleConfiguration |
| | | { |
| | | PrimaryKeyColumns: ModuleMaterialCode |
| | | PrimaryKeyColumns: PanelMaterialCode |
| | | PrimaryKeyColumns: StockingPointID |
| | | TargetType: CapacityAllocationResultsRuleConfiguration |
| | | TypeIndex: CapacityAllocationResultsRuleConfigurationTypeIndex |
| | | EDIMLColumn Division { Attribute: Division ValueType: String } |
| | | EDIMLColumn ModuleMaterialCode { Attribute: ModuleMaterialCode ValueType: String } |
| | | EDIMLColumn PanelMaterialCode { Attribute: PanelMaterialCode ValueType: String } |
| | | EDIMLColumn StockingPointID { Attribute: StockingPointID ValueType: String } |
| | | } |
| | | } |
| | | EDITransformation.Transformation Transformation11 |
| | | { |
| | | EDITableTransformation |
| | | { |
| | | InputTable: CapacityAllocationResultsRuleConfiguration |
| | | OutputTable: CapacityAllocationResultsRuleConfiguration |
| | | EDIColumnMatch { InputColumn: Division OutputColumn: Division } |
| | | EDIColumnMatch { InputColumn: ModuleMaterialCode OutputColumn: ModuleMaterialCode } |
| | | EDIColumnMatch { InputColumn: PanelMaterialCode OutputColumn: PanelMaterialCode } |
| | | EDIColumnMatch { InputColumn: StockingPointID OutputColumn: StockingPointID } |
| | | } |
| | | } |
| | | EDIXLSLink.Destination Destination12 |
| | | { |
| | | FileName: 'Destination12' |
| | | EDIXLSLinkTable CapacityAllocationResultsRuleConfiguration |
| | | { |
| | | Columns: |
| | | [ |
| | | EDIXLSLinkColumn Division { ValueType: String } |
| | | EDIXLSLinkColumn ModuleMaterialCode { ValueType: String } |
| | | EDIXLSLinkColumn PanelMaterialCode { ValueType: String } |
| | | EDIXLSLinkColumn StockingPointID { ValueType: String } |
| | | ] |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | EDIBroker GlobalOTDTable_CARRC_Import |
| | | { |
| | | MDSDefinition: GlobalOTDTable |
| | | TimeZone: 'ACT' |
| | | UseOSTimeZone: false |
| | | EDIModelLink.Destination Destination13 |
| | | { |
| | | EDIMLTable CapacityAllocationResultsRuleConfiguration |
| | | { |
| | | PrimaryKeyColumns: ModuleMaterialCode |
| | | PrimaryKeyColumns: PanelMaterialCode |
| | | PrimaryKeyColumns: StockingPointID |
| | | TargetType: CapacityAllocationResultsRuleConfiguration |
| | | TypeIndex: CapacityAllocationResultsRuleConfigurationTypeIndex |
| | | EDIMLColumn Division { Attribute: Division ValueType: String } |
| | | EDIMLColumn ModuleMaterialCode { Attribute: ModuleMaterialCode ValueType: String } |
| | | EDIMLColumn PanelMaterialCode { Attribute: PanelMaterialCode ValueType: String } |
| | | EDIMLColumn StockingPointID { Attribute: StockingPointID ValueType: String } |
| | | } |
| | | } |
| | | EDITransformation.Transformation Transformation12 |
| | | { |
| | | EDITableTransformation |
| | | { |
| | | InputTable: CapacityAllocationResultsRuleCo |
| | | OutputTable: CapacityAllocationResultsRuleConfiguration |
| | | EDIColumnMatch { InputColumn: Division OutputColumn: Division } |
| | | EDIColumnMatch { InputColumn: ModuleMaterialCode OutputColumn: ModuleMaterialCode } |
| | | EDIColumnMatch { InputColumn: PanelMaterialCode OutputColumn: PanelMaterialCode } |
| | | EDIColumnMatch { InputColumn: StockingPointID OutputColumn: StockingPointID } |
| | | } |
| | | } |
| | | EDIXLSLink.Source Source12 |
| | | { |
| | | FileName: '产è½åé
ç»æè§å.xlsx' |
| | | EDIXLSLinkTable CapacityAllocationResultsRuleCo |
| | | { |
| | | Columns: |
| | | [ |
| | | EDIXLSLinkColumn Division { ValueType: String } |
| | | EDIXLSLinkColumn ModuleMaterialCode { ValueType: String } |
| | | EDIXLSLinkColumn PanelMaterialCode { ValueType: String } |
| | | EDIXLSLinkColumn StockingPointID { ValueType: String } |
| | | ] |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | EDIBroker GlobalOTDTable_CAR_Export |
| | | { |
| | | MDSDefinition: GlobalOTDTable |
| | | TimeZone: 'ACT' |
| | | UseOSTimeZone: false |
| | | EDIModelLink.Source Source13 |
| | | { |
| | | EDIMLTable CapacityAllocationResults |
| | | { |
| | | TargetType: CapacityAllocationResults |
| | | EDIMLColumn Date { Attribute: Date ValueType: Date } |
| | | EDIMLColumn Description { Attribute: Description ValueType: String } |
| | | EDIMLColumn Division { Attribute: Division ValueType: String } |
| | | EDIMLColumn ID { Attribute: ID ValueType: String } |
| | | EDIMLColumn ManufacturedDate { Attribute: ManufacturedDate ValueType: Date } |
| | | EDIMLColumn ModuleBase { Attribute: ModuleBase ValueType: String } |
| | | EDIMLColumn ModuleMaterialCode { Attribute: ModuleMaterialCode ValueType: String } |
| | | EDIMLColumn ModuleMeasurementUnit { Attribute: ModuleMeasurementUnit ValueType: String } |
| | | EDIMLColumn NumberOfModules { Attribute: NumberOfModules ValueType: Real } |
| | | EDIMLColumn NumberOfPanels { Attribute: NumberOfPanels ValueType: Real } |
| | | EDIMLColumn PanelBase { Attribute: PanelBase ValueType: String } |
| | | EDIMLColumn PanelMaterialCode { Attribute: PanelMaterialCode ValueType: String } |
| | | EDIMLColumn PanelMeasurementUnit { Attribute: PanelMeasurementUnit ValueType: String } |
| | | EDIMLColumn ProductID { Attribute: ProductID ValueType: String } |
| | | EDIMLColumn RequirementDate { Attribute: RequirementDate ValueType: Date } |
| | | EDIMLColumn StockingPointID { Attribute: StockingPointID ValueType: String } |
| | | EDIMLColumn UserQuantity { Attribute: UserQuantity ValueType: Real } |
| | | EDIMLColumn VersionNumber { Attribute: VersionNumber ValueType: String } |
| | | } |
| | | } |
| | | EDITransformation.Transformation Transformation13 |
| | | { |
| | | EDITableTransformation |
| | | { |
| | | InputTable: CapacityAllocationResults |
| | | OutputTable: CapacityAllocationResults |
| | | EDIColumnMatch { InputColumn: Date OutputColumn: Date } |
| | | EDIColumnMatch { InputColumn: Description OutputColumn: Description } |
| | | EDIColumnMatch { InputColumn: ID OutputColumn: ID } |
| | | EDIColumnMatch { InputColumn: ManufacturedDate OutputColumn: ManufacturedDate } |
| | | EDIColumnMatch { InputColumn: ProductID OutputColumn: ProductID } |
| | | EDIColumnMatch { InputColumn: StockingPointID OutputColumn: StockingPointID } |
| | | EDIColumnMatch { InputColumn: UserQuantity OutputColumn: UserQuantity } |
| | | } |
| | | } |
| | | EDIXLSLink.Destination Destination14 |
| | | { |
| | | FileName: 'Destination14' |
| | | EDIXLSLinkTable CapacityAllocationResults |
| | | { |
| | | Columns: |
| | | [ |
| | | EDIXLSLinkColumn Date { ValueType: Date } |
| | | EDIXLSLinkColumn Description { ValueType: String } |
| | | EDIXLSLinkColumn ID { ValueType: String } |
| | | EDIXLSLinkColumn ProductID { ValueType: String } |
| | | EDIXLSLinkColumn StockingPointID { ValueType: String } |
| | | EDIXLSLinkColumn UserQuantity { ValueType: Real } |
| | | EDIXLSLinkColumn ManufacturedDate { ValueType: Date } |
| | | ] |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation CapacityAllocationResultsRuleConfiguration_CapacityAllocationResults_CapacityAllocationResults_CapacityAllocationResultsRuleConfiguration |
| | | { |
| | | #keys: '1[414702.0.387791788]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide CapacityAllocationResults |
| | | { |
| | | #keys: '3[414702.0.387791790][414702.0.387791789][414702.0.387791791]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: CapacityAllocationResultsRuleConfiguration |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide CapacityAllocationResultsRuleConfiguration |
| | | { |
| | | #keys: '3[414702.0.387791793][414702.0.387791792][414702.0.387791794]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: CapacityAllocationResults |
| | | OwningSide: 'Reference' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation CapacityAllocationResultsRuleConfiguration_GlobalOTDTable_GlobalOTDTable_CapacityAllocationResultsRuleConfiguration |
| | | { |
| | | #keys: '1[414702.0.374991408]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide GlobalOTDTable |
| | | { |
| | | #keys: '3[414702.0.374991410][414702.0.374991409][414702.0.374991411]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: CapacityAllocationResultsRuleConfiguration |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide CapacityAllocationResultsRuleConfiguration |
| | | { |
| | | #keys: '3[414702.0.374991413][414702.0.374991412][414702.0.374991414]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: GlobalOTDTable |
| | | OwningSide: 'Owned' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation H_MaterialInfo_MacroPlan_MacroPlan_H_MaterialInfo |
| | | { |
| | | #keys: '1[414724.0.142347478]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide MacroPlan |
| | | { |
| | | #keys: '3[414724.0.142347480][414724.0.142347479][414724.0.142347481]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: H_MaterialInfo |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide H_MaterialInfo |
| | | { |
| | | #keys: '3[414724.0.142347483][414724.0.142347482][414724.0.142347484]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: MacroPlan |
| | | OwningSide: 'Owned' |
| | | } |
| | | } |
| | |
| | | result := null(ConversionFactor ); |
| | | |
| | | if( isnull( source ) or isnull( target ) ) { |
| | | error( "can't find source or target unit of measure" ) |
| | | info( "can't find source or target unit of measure" ) |
| | | } |
| | | if( productId <> "" ) { |
| | | |
| | | if( not isnull( source) and not isnull( target)){ |
| | | if( productId <> "" ) { |
| | | product := Product_MP::FindById( macroPlan, productId ); |
| | | }else{ |
| | | result := BaseConversionFactor::CreateUpdate( source, target, factor, product, isEnable ) |
| | | }else{ |
| | | result := BaseConversionFactor::CreateUpdate( source, target, factor, product, isEnable ) |
| | | } |
| | | |
| | | if( isnull( product ) ) { |
| | | info( "invalid product id" ) |
| | | if( isnull( product ) ) { |
| | | info( "åä½è½¬æ¢åºç°æ æidï¼"+productId ) |
| | | }else{ |
| | | result := BaseConversionFactor::CreateUpdate( source, target, factor, product, isEnable ); |
| | | } |
| | | } |
| | | |
| | | return result; |
| | | *] |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod DoSync ( |
| | | MacroPlan macroPlan |
| | | MacroPlan macroPlan, |
| | | GlobalOTDTable globalOTDTable |
| | | ) |
| | | { |
| | | Description: '忬¡åæ¥' |
| | | TextBody: |
| | | [* |
| | | // yypsybs Aug-17-2023 (created) |
| | | info( "Product Finished, Start BaseConversionFactor Data Broker" ) |
| | | macroPlan.Broker_OTD_BaseConversionFactor().Execute(); |
| | | //info( "Product Finished, Start BaseConversionFactor Data Broker" ) |
| | | //macroPlan.Broker_OTD_BaseConversionFactor().Execute(); |
| | | info( "BaseConversionFactor Data Broker Finished, Start BaseConversionFactor Mapping" ) |
| | | macroPlan.MappingBaseConversionFactorData(); |
| | | macroPlan.MappingBaseConversionFactorData(globalOTDTable); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Date |
| | | { |
| | | #keys: '3[414702.0.388471426][414702.0.388471425][414702.0.388471427]' |
| | | ValueType: Date |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Description |
| | | { |
| | | #keys: '3[414702.0.388471436][414702.0.388471435][414702.0.388471437]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ID |
| | | { |
| | | #keys: '3[414702.0.388471446][414702.0.388471445][414702.0.388471447]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ManufacturedDate |
| | | { |
| | | #keys: '3[414702.0.388471486][414702.0.388471485][414702.0.388471487]' |
| | | ValueType: Date |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ProductID |
| | | { |
| | | #keys: '3[414702.0.388471456][414702.0.388471455][414702.0.388471457]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute StockingPointID |
| | | { |
| | | #keys: '3[414702.0.388471466][414702.0.388471465][414702.0.388471467]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute UserQuantity |
| | | { |
| | | #keys: '3[414702.0.388471476][414702.0.388471475][414702.0.388471477]' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DeclarativeReferenceRelation CalcCapacityAllocationResultsRuleConfiguration |
| | | { |
| | | #keys: '1[414702.0.388304510]' |
| | | Expression: |
| | | [* |
| | | targetCapacityAllocationResultsRuleConfiguration := select( this.GlobalOTDTable(), CapacityAllocationResultsRuleConfiguration, tempCARRC, |
| | | tempCARRC.ModuleMaterialCode() = this.ModuleMaterialCode() and |
| | | tempCARRC.PanelMaterialCode() = this.PanelMaterialCode() ); |
| | | |
| | | return targetCapacityAllocationResultsRuleConfiguration; |
| | | *] |
| | | Relation: CapacityAllocationResultsRuleConfiguration |
| | | } |
| | |
| | | #parent: #root |
| | | StaticMethod CreateDate ( |
| | | GlobalOTDTable globalOTDTable, |
| | | MacroPlan macroPlan |
| | | MacroPlan macroPlan, |
| | | Scenario scenario |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | globalOTDTable.CapacityAllocationResults( relflush ); |
| | | |
| | | finaleProduct_MPs := CapacityAllocationResults::ObtainTheFinalOutputProduct( macroPlan ); |
| | | finaleProductInStockingPoint_MPs := CapacityAllocationResults::ObtainTheFinalOutputProduct( macroPlan, globalOTDTable ); |
| | | |
| | | period_MPS := null( Period_MPs ); |
| | | traverse ( macroPlan, PeriodSpecification_MP, psmp, psmp.ID() = "Planning periods" ) { |
| | | period_MPS := selectsortedset( psmp, PeriodSpecificationPeriod.Period_MP, pmp, not pmp.IsHistorical(), pmp.StartDate() ); |
| | | } |
| | | |
| | | traverse ( finaleProduct_MPs, Elements, fpmp/*, fpmp.ID() = "ProXOver 1 D2.6 A"*/ ) { |
| | | traverse ( fpmp, ProductInStockingPoint_MP, pisp, /*pisp.Name() = "ProXOver 1 D2.6 A in Finished Cars (France)" and*/ not pisp.IsSystem() ) { |
| | | traverse ( period_MPS, Elements, pmp ) { |
| | | CapacityAllocationResults::IterativeGeneration( globalOTDTable, pisp, 1, null( NewSupply ), -1.0, pmp.StartDate() ); |
| | | } |
| | | // info( pisp.Name() ); |
| | | traverse ( finaleProductInStockingPoint_MPs, Elements, fpispmp ) { |
| | | capacityAllocationResultsRuleConfigurations := selectset( globalOTDTable, CapacityAllocationResultsRuleConfiguration, tempCARRC, tempCARRC.ModuleMaterialCode() = fpispmp.ProductID() and tempCARRC.StockingPointID() = fpispmp.StockingPointID() ); |
| | | info( "ç产ç产åï¼", fpispmp.ProductID(), "------产åå¨åºåç¹-------ï¼", fpispmp.StockingPointID() ); |
| | | traverse ( period_MPS, Elements, pmp ) { |
| | | // CapacityAllocationResults::IterativeGeneration( globalOTDTable, pisp, 1, null( NewSupply ), -1.0, pmp.StartDate() ); èç |
| | | CapacityAllocationResults::IterativeGeneration2( globalOTDTable, fpispmp, pmp.StartDate(), capacityAllocationResultsRuleConfigurations, 0, null( NewSupply ), 0.0 ); |
| | | } |
| | | } |
| | | |
| | | traverse ( globalOTDTable, CapacityAllocationResults, car ) { |
| | | car.VersionNumber( scenario.Name() ); |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod Export ( |
| | | GlobalOTDTable globalOTDTable |
| | | ) as BinaryValue |
| | | { |
| | | TextBody: |
| | | [* |
| | | binaryData := globalOTDTable.GlobalOTDTable_CAR_Export().ExecuteToXLS( true ); |
| | | |
| | | return binaryData.AsBinaryValue(); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod IterativeGeneration2 ( |
| | | GlobalOTDTable globalOTDTable, |
| | | ProductInStockingPoint_MP pisp, |
| | | Date targetDate, |
| | | CapacityAllocationResultsRuleConfigurations carrcs, |
| | | Number numberOfLayers, |
| | | NewSupply firstLevelSupply, |
| | | Real currentLayerDependentDemandQuantity |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | numberOfLayers++; |
| | | info( "ç®æ æ¶é´ï¼", targetDate.Format( "Y-M2-D2" ) ); |
| | | info( pisp.Name() ); |
| | | traverse ( pisp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispippl, pispippl.Start().Date() = targetDate ) { |
| | | traverse ( pispippl, NewSupply, ns, ns.Quantity() > 0 ) { |
| | | if ( numberOfLayers = 1 ) { |
| | | firstLevelSupply := ns; |
| | | } |
| | | |
| | | ontype( ns.PeriodTask_MP() ) { |
| | | PeriodTaskOperation as pto : { |
| | | info( "Operation卿任å¡..." ); |
| | | traverse ( ns, PeriodTask_MP.astype( PeriodTaskOperation ).DependentDemand, dd ) { |
| | | currentLayerDependentDemandQuantity := currentLayerDependentDemandQuantity * |
| | | ns.ProcessOutput().astype( OperationOutput ).Quantity() * |
| | | dd.ProcessInput().astype( OperationInput ).Quantity(); |
| | | info( "屿°ï¼", numberOfLayers, " å½åä¾åºçpispï¼", ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " æ»ä¾åºå¼ï¼", ns.Quantity(), " éè¦ä¾åºå¼ï¼", currentLayerDependentDemandQuantity, |
| | | " å½åéæ±pispï¼", dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " éæ±å¼ï¼", currentLayerDependentDemandQuantity ); |
| | | info( "-----------------------------------------------------------------------------------------------------------------" ); |
| | | CapacityAllocationResults::IterativeGeneration2( globalOTDTable, |
| | | dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(), |
| | | targetDate, |
| | | carrcs, |
| | | numberOfLayers, |
| | | firstLevelSupply, |
| | | currentLayerDependentDemandQuantity |
| | | ); |
| | | } |
| | | carrc := select( carrcs, Elements, carrc, carrc.PanelMaterialCode() = ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID() ); |
| | | if ( not isnull( carrc ) ) { |
| | | info( "æ¾å°é¢æ¿ç©æ..." ); |
| | | globalOTDTable.CapacityAllocationResults( relnew, |
| | | PanelBase := pto.Operation().UnitID(), |
| | | PanelMaterialCode := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(), |
| | | NumberOfPanels := currentLayerDependentDemandQuantity, |
| | | PanelMeasurementUnit := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().UnitOfMeasureName(), |
| | | ModuleMaterialCode := firstLevelSupply.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(), |
| | | NumberOfModules := firstLevelSupply.Quantity(), |
| | | ModuleMeasurementUnit := firstLevelSupply.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().UnitOfMeasureName(), |
| | | ModuleBase := guard( firstLevelSupply.PeriodTask_MP().astype( PeriodTaskOperation ).Operation().UnitID(), "车éè¿è¾" ), |
| | | Division := carrc.Division(), |
| | | RequirementDate := ns.Start().Date(), |
| | | Date := ns.Start().Date(), |
| | | Description := "", |
| | | ID := OS::GenerateGUIDAsString(), |
| | | ProductID := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(), |
| | | StockingPointID := "", |
| | | UserQuantity := currentLayerDependentDemandQuantity, |
| | | ManufacturedDate := Date::MinDate() |
| | | ); |
| | | |
| | | } |
| | | info( "-----------------------------------------------------------------------------------------------------------------" ); |
| | | } |
| | | |
| | | PeriodTaskLaneLeg as ptll : { |
| | | targetDependentDemand := select( ptll, DependentDemand, dd, dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID() = ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID() ); |
| | | currentLayerDependentDemandQuantity := ifexpr( numberOfLayers = 1, targetDependentDemand.Quantity(), currentLayerDependentDemandQuantity ); |
| | | info( "屿°ï¼", numberOfLayers," å½åä¾åºçpispï¼", ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " æ»ä¾åºå¼ï¼", ns.Quantity(), " éè¦ä¾åºå¼ï¼", currentLayerDependentDemandQuantity, |
| | | " å½åéæ±pispï¼", targetDependentDemand.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " éæ±å¼ï¼", currentLayerDependentDemandQuantity ); |
| | | info( "LaneLeg卿任å¡..." ); |
| | | info( "-----------------------------------------------------------------------------------------------------------------" ); |
| | | CapacityAllocationResults::IterativeGeneration2( globalOTDTable, |
| | | targetDependentDemand.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(), |
| | | targetDate, |
| | | carrcs, |
| | | numberOfLayers, |
| | | firstLevelSupply, |
| | | currentLayerDependentDemandQuantity |
| | | ); |
| | | } |
| | | } |
| | | |
| | | if ( numberOfLayers = 1 ) { |
| | | firstLevelSupply := null( NewSupply ); |
| | | } |
| | | } |
| | | } |
| | | *] |
| | | } |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod ObtainTheFinalOutputProduct ( |
| | | MacroPlan macroPlan |
| | | ) as owning Product_MPs |
| | | MacroPlan macroPlan, |
| | | GlobalOTDTable globalOTDTable |
| | | ) as owning ProductInStockingPoint_MPs |
| | | { |
| | | TextBody: |
| | | [* |
| | | finaleProducts := construct( Product_MPs ); |
| | | //finaleProducts := construct( Product_MPs ); |
| | | // |
| | | //traverse ( macroPlan, Product_MP, pmp, pmp.IsLeaf() ) { |
| | | // flag := true; |
| | | // traverse ( macroPlan, Routing.RoutingStep.Operation.OperationInput, oi, flag ) { |
| | | // if ( pmp = oi.ProductInStockingPoint_MP().Product_MP() ) { |
| | | // flag := false; |
| | | // } |
| | | // } |
| | | // if ( flag ) { |
| | | // finaleProducts.Add( pmp ); |
| | | // } |
| | | //} |
| | | |
| | | traverse ( macroPlan, Product_MP, pmp, pmp.IsLeaf() ) { |
| | | flag := true; |
| | | traverse ( macroPlan, Routing.RoutingStep.Operation.OperationInput, oi, flag ) { |
| | | if ( pmp = oi.ProductInStockingPoint_MP().Product_MP() ) { |
| | | flag := false; |
| | | } |
| | | } |
| | | if ( flag ) { |
| | | finaleProducts.Add( pmp ); |
| | | } |
| | | } |
| | | finaleProductInStockingPoint_MPs := selectset( macroPlan, Product_MP.ProductInStockingPoint_MP, tempPISPMP, |
| | | exists( globalOTDTable, CapacityAllocationResultsRuleConfiguration, tempCARRC, tempCARRC.ModuleMaterialCode() = tempPISPMP.ProductID() and tempCARRC.StockingPointID() = tempPISPMP.StockingPointID() ) |
| | | ); |
| | | |
| | | return &finaleProducts; |
| | | return &finaleProductInStockingPoint_MPs; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Division |
| | | { |
| | | #keys: '3[414702.0.374991447][414702.0.374991446][414702.0.374991448]' |
| | | Description: 'äºä¸é¨' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ModuleMaterialCode |
| | | { |
| | | #keys: '3[414702.0.374991437][414702.0.374991436][414702.0.374991438]' |
| | | Description: '模ç»ç©æç¼ç ' |
| | | IsReadOnly: true |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute PanelMaterialCode |
| | | { |
| | | #keys: '3[414702.0.374991427][414702.0.374991426][414702.0.374991428]' |
| | | Description: '颿¿ç©æç¼ç ' |
| | | IsReadOnly: true |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute StockingPointID |
| | | { |
| | | #keys: '3[414702.0.375010145][414702.0.375010144][414702.0.375010146]' |
| | | Description: '模ç»äº§æååºåç¹ID' |
| | | IsReadOnly: true |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod Export ( |
| | | GlobalOTDTable globalOTDTable |
| | | ) as BinaryValue |
| | | { |
| | | TextBody: |
| | | [* |
| | | // hongjli Sep-25-2023 (created) |
| | | binaryValue := globalOTDTable.GlobalOTDTable_CARRC_Export().ExecuteToXLS( true ).AsBinaryValue(); |
| | | |
| | | return binaryValue; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod Import ( |
| | | GlobalOTDTable globalOTDTable, |
| | | String base64String |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | binaryData := BinaryData::FromBase64EncodedString( base64String ); |
| | | |
| | | globalOTDTable.GlobalOTDTable_CARRC_Import().ExecuteFromXLS( &binaryData, true ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | TypeIndex CapacityAllocationResultsRuleConfigurationTypeIndex |
| | | { |
| | | Attributes: |
| | | [ |
| | | TypeIndexAttribute |
| | | { |
| | | ModelElement: ModuleMaterialCode |
| | | } |
| | | TypeIndexAttribute |
| | | { |
| | | ModelElement: PanelMaterialCode |
| | | } |
| | | TypeIndexAttribute |
| | | { |
| | | ModelElement: StockingPointID |
| | | } |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type CapacityAllocationResultsRuleConfiguration |
| | | { |
| | | #keys: '5[414702.0.374991403][414702.0.374991401][0.0.0][414702.0.374991402][414702.0.374991404]' |
| | | BaseType: Object |
| | | Description: '产è½åé
ç»æï¼è§åé
ç½®' |
| | | StructuredName: 'CapacityAllocationResultsRuleConfigurations' |
| | | } |
| | |
| | | // yypsybs Sep-15-2023 (created) |
| | | existList := selectuniquevalues( parent, CapacityAndSaleBudgeFilterYear, item, item.YearNo() ); |
| | | nowYear := Date::Today().Year(); |
| | | for( i := nowYear - 10; i <= nowYear; i++ ) { |
| | | for( i := nowYear - 10; i <= nowYear + 5; i++ ) { |
| | | if( existList.Find( i ) = -1 ) { |
| | | parent.CapacityAndSaleBudgeFilterYear( relnew, |
| | | YearNo := i ); |
| | |
| | | } |
| | | // æ£æ¥ä¾èµé¡¹ |
| | | if( isnull( product) ) { |
| | | info( "product not found" ); |
| | | info( "product not found" + productId); |
| | | } |
| | | if( isnull( salesSegment) ) { |
| | | info( "sales segment not found" ); |
| | | info( "sales segment not found" + salesSegmentName); |
| | | } |
| | | if( isnull( stockingPoint) ) { |
| | | info( "stock point not found" ); |
| | | info( "stock point not found" + stockingPointId); |
| | | } |
| | | //if( isnull( currency) ) { |
| | | // error( "currency not found" ); |
| | | //} |
| | | if( unitOfMeasureName <> "" and isnull( unitOfMeasure) ) { |
| | | info( "unit of measure not found" ); |
| | | info( "unit of measure not found" + unitOfMeasureName); |
| | | } |
| | | if( priorityName <> "" and isnull( stockingPoint) ) { |
| | | info( "priority not found" ); |
| | | } |
| | | //if( priorityName <> "" and isnull( stockingPoint) ) { |
| | | // info( "priority not found" ); |
| | | //} |
| | | // æ°å¢/æ´æ° |
| | | result := CustomerOrder::FindById( macroPlan, id ); |
| | | if( isnull( result ) ) { |
| | |
| | | priorityName, salesSegmentName, currencyId, unitOfMeasureName, |
| | | false, customerName, customerId, orderId, orderLineId, true, true, true ); |
| | | } else { |
| | | result.Update( product, stockingPoint, orderDate, quantity, price, |
| | | priorityName, salesSegmentName, currencyId, unitOfMeasureName, |
| | | false, customerName, customerId, orderId, orderLineId, true, true, true ); |
| | | if( result.ProductID() = productId |
| | | and result.StockingPointID() = stockingPointId |
| | | and result.StartDate() = orderDate |
| | | and result.Quantity() = quantity |
| | | and result.Price() = price |
| | | and result.PriorityName() = priorityName |
| | | and result.SalesSegmentName() = salesSegmentName |
| | | and result.CurrencyID() = currencyId |
| | | and result.UnitOfMeasureName() = unitOfMeasureName |
| | | and result.CustomerName() = customerName |
| | | and result.CustomerID() = customerId |
| | | and result.OrderID() = orderId |
| | | and result.OrderLineID() = orderLineId ){ |
| | | info( "No need to update this order: " + id ); |
| | | }else{ |
| | | if( result.IsLocked() = true ){ |
| | | pispips := selectset( result, ProductInStockingPoint_MP.ProductInStockingPointInPeriod, pispip, true ); |
| | | pispipLeafs := selectset( pispips, |
| | | Elements.astype( ProductInStockingPointInPeriodPlanningLeaf ), |
| | | pispip, |
| | | true ); |
| | | ProductInStockingPointInPeriod::LockUnlockPlanning( pispipLeafs, false, true ); |
| | | } |
| | | result.Update( product, stockingPoint, orderDate, quantity, price, |
| | | priorityName, salesSegmentName, currencyId, unitOfMeasureName, |
| | | false, customerName, customerId, orderId, orderLineId, true, true, true ); |
| | | result.IsLocked( false ); |
| | | } |
| | | } |
| | | return result; |
| | | *] |
| | |
| | | #parent: #root |
| | | StaticMethod DoSync ( |
| | | MacroPlan macroPlan, |
| | | Strings businessTypes |
| | | Strings businessTypes, |
| | | GlobalOTDTable globalOTDTable |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // yypsybs Aug-17-2023 (created) |
| | | info( "Forecast Finished, Start CustomerOrder Data Broker" ); |
| | | macroPlan.Broker_OTD_CustomerOrder().Execute(); |
| | | //info( "Forecast Finished, Start CustomerOrder Data Broker" ); |
| | | //macroPlan.Broker_OTD_CustomerOrder().Execute(); |
| | | info( "CustomerOrder Data Broker Finished, Start CustomerOrder Mapping" ); |
| | | macroPlan.MappingCustomerOrderData( businessTypes ); |
| | | macroPlan.MappingCustomerOrderData( businessTypes,globalOTDTable ); |
| | | *] |
| | | } |
| | |
| | | owner.OrderLockLog( relnew, |
| | | CustomerName := order.CustomerName(), |
| | | End := order.First().AsPlanningBaseSalesDemandInPeriod().End().Date(), |
| | | EndDate := order.EndDate(), |
| | | EndDate := order.StartDate(), |
| | | IsLocked := order.IsLocked(), |
| | | LastModify := order.LastModify(), |
| | | LastModifyTime := order.LastModifyTime(), |
| | |
| | | owner.OrderLockLog( relnew, |
| | | CustomerName := order.CustomerName(), |
| | | End := order.First().AsPlanningBaseSalesDemandInPeriod().End().Date(), |
| | | EndDate := order.EndDate(), |
| | | EndDate := order.StartDate(), |
| | | IsLocked := order.IsLocked(), |
| | | LastModify := order.LastModify(), |
| | | LastModifyTime := order.LastModifyTime(), |
| | |
| | | } |
| | | // æ£æ¥ä¾èµé¡¹ |
| | | if( isnull( product ) ) { |
| | | error( "product not found" ); |
| | | info( "product not found" + productId); |
| | | } |
| | | if( isnull( salesSegment ) ) { |
| | | error( "sales segment not found" ); |
| | | info( "sales segment not found" + salesSegmentName); |
| | | } |
| | | if( isnull( stockingPoint ) ) { |
| | | error( "stock point not found" ); |
| | | info( "stock point not found" + stockingPointId); |
| | | } |
| | | if( isnull( currency ) ) { |
| | | error( "currency not found" ); |
| | | info( "currency not found" + currencyId); |
| | | } |
| | | if( unitOfMeasureName <> "" and isnull( unitOfMeasure) ) { |
| | | error( "unit of measure not found" ); |
| | | info( "unit of measure not found" + unitOfMeasureName ); |
| | | } |
| | | if( priorityName <> "" and isnull( stockingPoint) ) { |
| | | error( "priority not found" ); |
| | | } |
| | | //if( priorityName <> "" and isnull( stockingPoint) ) { |
| | | // info( "priority not found" ); |
| | | //} |
| | | // æ°å¢/æ´æ° |
| | | result := Forecast::FindById( macroPlan, id ); |
| | | if( isnull( result) ) { |
| | |
| | | #parent: #root |
| | | StaticMethod DoSync ( |
| | | MacroPlan macroPlan, |
| | | Strings businessTypes |
| | | Strings businessTypes, |
| | | GlobalOTDTable globalOTDTable |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // yypsybs Aug-17-2023 (created) |
| | | info( "OperationCost Finished, Start Forecast Data Broker" ); |
| | | macroPlan.Broker_OTD_Forecast().Execute(); |
| | | //info( "OperationCost Finished, Start Forecast Data Broker" ); |
| | | //macroPlan.Broker_OTD_Forecast().Execute(); |
| | | info( "Forecast Data Broker Finished, Start Forecast Mapping" ); |
| | | macroPlan.MappingForecastData( businessTypes ); |
| | | macroPlan.MappingForecastData( businessTypes,globalOTDTable ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod FindMinSeq ( |
| | | GlobalOTDTable globalOTDTable, |
| | | String orgCode, |
| | | String productId, |
| | | String processSection |
| | | ) as Number |
| | | { |
| | | TextBody: |
| | | [* |
| | | // renhao Sep-20-2023 (created) |
| | | return guard (min( globalOTDTable, Global_MappingOperation, item, |
| | | item.OrganCode() = orgCode and item.ProductID() = productId and item.ProcessSection() = processSection, |
| | | item.SequenceNumber() ), Number::MinNumber() ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute StockingPointID |
| | | { |
| | | #keys: '3[414724.0.149657552][414724.0.149657551][414724.0.149657553]' |
| | | Description: 'åºåç¹' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod SM_GetALlBOM ( |
| | | MacroPlan Owner, |
| | | MappingBOM Material |
| | | ) as Number |
| | | { |
| | | Description: 'æ ¹æ®SKUè·åææ ¹é¨æææ°æ®' |
| | | TextBody: |
| | | [* |
| | | AllMaterials := selectset( Owner,MappingBOM,Obj,Obj.ComponentCode()=Material.ProductCode()) |
| | | if( AllMaterials.Size()>0) |
| | | { |
| | | traverse( AllMaterials,Elements,Obj,not isnull( Obj)) |
| | | { |
| | | H_FunctionClass::SM_GetALlBOM( Owner,Obj); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | Owner.H_MaterialInfo(relnew,ID := H_FunctionClass::SM_GenerateID( "BM") |
| | | ,MaterialName := Material.ComponentType() ); |
| | | |
| | | } |
| | | return 0; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod SM_GetBOMBySKU ( |
| | | MacroPlan Owner, |
| | | String SKU |
| | | ) as MappingBOM |
| | | { |
| | | Description: 'æ ¹æ®SKUè·åBOM' |
| | | TextBody: |
| | | [* |
| | | Obj :=null( MappingBOM,constcontent ); |
| | | if( not isnull( Owner) and SKU.Length()>0) |
| | | { |
| | | Obj := select( Owner,MappingBOM,ObjM,ObjM.ProductCode()=SKU); |
| | | } |
| | | return Obj; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod SM_GetMaterialData ( |
| | | MacroPlan Owner, |
| | | String ParentSKU, |
| | | Number ProductQty, |
| | | String ForecastId, |
| | | String VCode, |
| | | Date NDate |
| | | ) as owning JSON |
| | | { |
| | | Description: 'è·åç©æä¿¡æ¯' |
| | | TextBody: |
| | | [* |
| | | /**********************************åå§åç©æä¿¡æ¯*************************************** |
| | | *å建人ï¼yunying |
| | | *åå»ºæ¥æï¼2023-09-21 |
| | | *æè¿°ï¼æ ¹æ®SKUè·åä¸ä¸å±ç©ææ°æ®,è¿é䏿¯éåå¾å°ææï¼æ¶è§¦å䏿¬¡å¾å°ä¸å±ï¼å¹¶ç´¯è®¡ |
| | | *åæ°ï¼ |
| | | *****************************************************************************************/ |
| | | // åå§åç»æ |
| | | bStatus := false; |
| | | strMsg :=""; |
| | | |
| | | try{ |
| | | if( Owner.MappingBOM(relsize )>0) |
| | | { |
| | | // å¾å°ä¸ä¸çº§æ°æ® |
| | | AllData:= selectset( Owner, MappingBOM,object,object.ComponentCode()=ParentSKU); |
| | | ObjProduct := null( MappingProduct,constcontent ); |
| | | ObjUnit := null( Unit,constcontent ); |
| | | MaterialType:=""; |
| | | MaterialName:="-"; |
| | | StockPoint := ""; |
| | | NRate:=1.0; |
| | | NComponentsUsed :=0.0; |
| | | ObjBOM := H_FunctionClass::SM_GetBOMBySKU( Owner,ParentSKU); |
| | | if(not isnull( ObjBOM)) |
| | | { |
| | | NRate := ObjBOM.ComponentOutputRate(); |
| | | NComponentsUsed := ObjBOM.UnitUsageOfComponents(); |
| | | // äº§åºæ¯å¼å¸¸æ 100%产åºè®¡ç® |
| | | if( NRate <=0.0) |
| | | { |
| | | NRate :=1.0; |
| | | } |
| | | } |
| | | if( AllData.Size()>0) |
| | | { |
| | | traverse( AllData,Elements,Obj,not isnull( Obj)) |
| | | { |
| | | // å¾å°å½åå·²åå¨çç©æä¿¡æ¯ï¼è®¢åID + SKUï¼ |
| | | ObjMaterial := select( Owner,H_MaterialInfo,ObjM,ObjM.ForecastID()=ForecastId and ObjM.SKU()=Obj.ProductCode()); |
| | | if( isnull( ObjMaterial)) |
| | | { |
| | | // ç©æç±»å |
| | | MaterialType := Obj.ProductType(); |
| | | // å¾å°ç©æä¿¡æ¯ |
| | | ObjProduct:= H_FunctionClass::SM_GetProductInfo(Owner, Obj.ProductCode()); |
| | | if( not isnull( ObjProduct)) |
| | | { |
| | | MaterialType:= ObjProduct.ProductMajorType(); |
| | | MaterialName:=ObjProduct.Name(); |
| | | } |
| | | ObjUnit:= H_FunctionClass::SM_GetUnitBySKU( Owner,Obj.ProductCode()); |
| | | if( not isnull( ObjUnit)) |
| | | { |
| | | StockPoint:= ObjUnit.Name(); |
| | | } |
| | | Owner.H_MaterialInfo(relnew,ParentSKU := Obj.ComponentCode(),SKU := Obj.ProductCode(),ForecastID := ForecastId,OrgCode := Obj.OrganCode(),VCode := VCode |
| | | ,ID := H_FunctionClass::SM_GenerateID( "MI"),MaterialType := MaterialType,NeedDate := NDate |
| | | ,NeedQty := [Number](ProductQty/NRate*NComponentsUsed).Round( 0),Unit := Obj.UnitOfMeasureName() |
| | | ,StockPoint :=StockPoint,MaterialName := MaterialName ); |
| | | } |
| | | else |
| | | { |
| | | // èèæ¯å¦è¦æ´æ°æ°æ®ï¼æä¸å¤ç |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // 没æBOM æ·»å æµè¯æ°æ® |
| | | else |
| | | { |
| | | nCount :=Owner.H_MaterialInfo(relsize ); |
| | | Owner.H_MaterialInfo(relnew,ParentSKU := ParentSKU,SKU := "SKU"+ nCount.AsQUILL() ,ForecastID := ForecastId,OrgCode := "ORG_000",VCode := VCode |
| | | ,ID := H_FunctionClass::SM_GenerateID( "MI"),MaterialType := "åææ",NeedDate := NDate |
| | | ,NeedQty := [Number](ProductQty*0.8).Round( 0),Unit := "PCS" |
| | | ,StockPoint :="æµè¯",MaterialName := "æµè¯æ°æ®" ); |
| | | } |
| | | bStatus := true; |
| | | strMsg :=""; |
| | | } |
| | | onerror |
| | | { |
| | | strMsg :="å è½½ç©æå¤±è´¥ï¼è¯·è系系ç»ç®¡çåï¼"; |
| | | Owner.H_ErrorLogs(relnew,EClassName := "H_FunctionClass",EDateTime := DateTime::ActualGMTTime(),EFunctionName := "SM_InitialForcastData", |
| | | DeveloperInformation := e.DeveloperInformation(),ErrorNr := e.ErrorNr(),DetailedInformation := e.DetailedInformation(), |
| | | GeneralInformation := e.GeneralInformation()); |
| | | } |
| | | return JSON::Object().Add( "Status",bStatus) |
| | | .Add( "Msg",strMsg).Build(); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod SM_GetProductInfo ( |
| | | MacroPlan Owner, |
| | | String SKU |
| | | ) as MappingProduct |
| | | { |
| | | Description: 'æ ¹æ®SKUè·åç©æä¿¡æ¯' |
| | | TextBody: |
| | | [* |
| | | // æ ¹æ®SKUè·åç©æä¿¡æ¯ |
| | | Obj := null( MappingProduct,constcontent ); |
| | | if( not isnull( Owner) and SKU.Length()>0) |
| | | { |
| | | Obj:= select( Owner,MappingProduct,ObjMP,ObjMP.ID()=SKU); |
| | | } |
| | | return Obj; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod SM_GetUnitBySKU ( |
| | | MacroPlan Owner, |
| | | String SKU |
| | | ) as Unit |
| | | { |
| | | Description: 'éè¿SKUè·ååºåç¹ä¿¡æ¯' |
| | | TextBody: |
| | | [* |
| | | Obj :=null( Unit,constcontent ); |
| | | if( not isnull( Owner) and SKU.Length()>0) |
| | | { |
| | | OrgCode := select( Owner,MappingBOM,ObjM,ObjM.ProductCode()=SKU); |
| | | if( not isnull( OrgCode)) |
| | | { |
| | | Obj := select( Owner,Unit,ObjU,ObjU.ID()= OrgCode.OrganCode()); |
| | | } |
| | | } |
| | | return Obj; |
| | | *] |
| | | } |
| | |
| | | strMsg :=""; |
| | | |
| | | try{ |
| | | // 颿µæ°æ®2æ¤å¤çï¼çé+客æ·åç§°æåï¼ |
| | | // æ¸
餿§æ°æ®ï¼éæ°æå |
| | | if(Owner.H_Forecast(relget ).Size()>0) |
| | | { |
| | | traverse( Owner,H_Forecast,Obj,not isnull( Obj)) |
| | |
| | | Owner.H_Forecast(reldelete, Obj); |
| | | } |
| | | } |
| | | |
| | | // è·å颿µè®¢åï¼å½æåä¹åç3个æé¢æµæ°æ® ä¸é¢æµæ°é>0ç |
| | | AllData:= selectset( Owner, Product_MP.SalesDemand.astype( Forecast ),object,object.EndDate().DateTime().Date() >= Date::ActualDate().StartOfMonth() |
| | | and object.EndDate().DateTime().Date() <= Date::ActualDate().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth() |
| | | and object.Quantity()>0 ); |
| | |
| | | CustomName:=""; |
| | | DepartMent:=""; |
| | | idx:=0; |
| | | strOrderCode:=""; |
| | | RQty:=0; |
| | | ObjOrderRealQty:=null( H_OrderForecastRealQty,constcontent ); |
| | | // ObjPruduct :=null( MappingProduct,constcontent ); |
| | | traverse( AllData,Elements,Obj,not isnull(Obj)) |
| | | { |
| | | // è¿éç¨æ¥æ¾åæªåï¼å 为ä¸ç¡®å®æå 个横线ï¼ä»¥ç¬¬ä¸ä¸ªä¸ºå |
| | | idx:=Obj.SalesSegmentName().FindString( "-",0); |
| | | if(idx>0) |
| | | { |
| | |
| | | else |
| | | { |
| | | CustomName :=Obj.SalesSegmentName(); |
| | | DepartMent := Obj.SalesSegmentName(); |
| | | DepartMent := "é¨é¨æ°æ®è·å失败ï¼" |
| | | } |
| | | |
| | | Owner.H_Forecast(relnew,OrderCode := H_FunctionClass::SM_GenerateID( "OF"), |
| | | // // ä»ç©æè¡¨è·åç©æä¿¡æ¯ |
| | | // ObjPruduct := H_FunctionClass::SM_GetProductInfo( Owner,Obj.ProductID()); |
| | | // if( not isnull( ObjPruduct)) |
| | | // { |
| | | // |
| | | // } |
| | | // åå
¥é¢æµè®¢åä¿¡æ¯è¡¨ |
| | | strOrderCode:=H_FunctionClass::SM_GenerateID( "OF"); |
| | | Owner.H_Forecast(relnew,OrderCode := strOrderCode, |
| | | SKU := Obj.ProductID(), |
| | | CustomCode := CustomName, |
| | | CustomCode := CustomName, |
| | | CustomName := CustomName, |
| | | Util:=Obj.UnitOfMeasureName(), |
| | | NeedTime:=Obj.EndDate(), |
| | | ForecastQty:=[Number]Obj.Quantity().Round( 0), |
| | | StockingPointID := Obj.StockingPointID(), |
| | | Department:=DepartMent); |
| | | // åå
¥é¢æµå®æ¶ä¿¡æ¯ |
| | | ObjOrderRealQty := select( Owner,H_OrderForecastRealQty,ObjO,ObjO.CustomID()=CustomName and ObjO.SKU()=Obj.ProductID() |
| | | and ObjO.Month().StartOfMonth() = Obj.EndDate().StartOfMonth() ) |
| | | if( isnull( ObjOrderRealQty)) |
| | | { |
| | | Owner.H_OrderForecastRealQty(relnew,CustomID := CustomName,CustomName := CustomName,ForecatsQty := [Number]Obj.Quantity().Round( 0) |
| | | ,ForecatsRealQty := [Number]Obj.Quantity().Round( 0),ID := H_FunctionClass::SM_GenerateID( "OR") |
| | | ,Month := Obj.EndDate(),OrderCode := strOrderCode,SKU := Obj.ProductID(),Unit := Obj.UnitOfMeasureName()); |
| | | } |
| | | else |
| | | { |
| | | if( [Number]Obj.Quantity().Round( 0)<> ObjOrderRealQty.ForecatsQty()) |
| | | { |
| | | RQty := [Number]Obj.Quantity().Round( 0) - ObjOrderRealQty.ForecatsQty(); |
| | | RQty := ObjOrderRealQty.ForecatsRealQty() + RQty; |
| | | if( RQty<0) |
| | | { |
| | | RQty :=0; |
| | | } |
| | | ObjOrderRealQty.ForecatsQty([Number]Obj.Quantity().Round( 0)); |
| | | ObjOrderRealQty.ForecatsRealQty(RQty); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | bStatus := true; |
| | | strMsg :="订å颿µåå§åæå!"; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod SM_InitialForcastDataEx ( |
| | | MacroPlan Owner, |
| | | Boolean IsNew |
| | | ) as owning JSON |
| | | { |
| | | Description: 'åå§å订å颿µä¿¡æ¯' |
| | | TextBody: |
| | | [* |
| | | /**********************************åå§å订å颿µä¿¡æ¯*************************************** |
| | | *æ³¨ï¼æªç¡®å®ä¸æ¸¸é¢æµè®¢åæ´æ°é»è¾åæ°æ®æææ§ï¼è¿éè¿è¡äºæ¬¡å¤çï¼æ°çæä¸ä¸ªå表ï¼é¿å
䏿¸¸ä¿¡æ¯åå¨ä¸¥é |
| | | * å½±ååè½ |
| | | * |
| | | *****************************************************************************************/ |
| | | // åå§åç»æ |
| | | bStatus := false; |
| | | strMsg :=""; |
| | | |
| | | try{ |
| | | // æ¸
餿§æ°æ®ï¼éæ°æå |
| | | if(Owner.H_Forecast(relget ).Size()>0) |
| | | { |
| | | traverse( Owner,H_Forecast,Obj,not isnull( Obj)) |
| | | { |
| | | Owner.H_Forecast(reldelete, Obj); |
| | | } |
| | | } |
| | | |
| | | // è·å颿µè®¢åï¼å½æåä¹åç3个æé¢æµæ°æ® ä¸é¢æµæ°é>0ç |
| | | AllData:= selectset( Owner, Product_MP.SalesDemand.astype( Forecast ),object,object.EndDate().DateTime().Date() >= Date::ActualDate().StartOfMonth() |
| | | and object.EndDate().DateTime().Date() <= Date::ActualDate().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth().StartOfNextMonth() |
| | | and object.Quantity()>0 ); |
| | | |
| | | CustomName:=""; |
| | | DepartMent:=""; |
| | | idx:=0; |
| | | strOrderCode:=""; |
| | | RQty:=0; |
| | | ObjOrderRealQty:=null( H_OrderForecastRealQty,constcontent ); |
| | | // ObjPruduct :=null( MappingProduct,constcontent ); |
| | | traverse( AllData,Elements,Obj,not isnull(Obj)) |
| | | { |
| | | // è¿éç¨æ¥æ¾åæªåï¼å 为ä¸ç¡®å®æå 个横线ï¼ä»¥ç¬¬ä¸ä¸ªä¸ºå |
| | | idx:=Obj.SalesSegmentName().FindString( "-",0); |
| | | if(idx>0) |
| | | { |
| | | DepartMent:=Obj.SalesSegmentName().SubString( 0,idx); |
| | | CustomName := Obj.SalesSegmentName().SubString( idx+1, Obj.SalesSegmentName().Length() - (idx+1)); |
| | | } |
| | | else |
| | | { |
| | | CustomName :=Obj.SalesSegmentName(); |
| | | DepartMent := "é¨é¨æ°æ®è·å失败ï¼" |
| | | } |
| | | // // ä»ç©æè¡¨è·åç©æä¿¡æ¯ |
| | | // ObjPruduct := H_FunctionClass::SM_GetProductInfo( Owner,Obj.ProductID()); |
| | | // if( not isnull( ObjPruduct)) |
| | | // { |
| | | // |
| | | // } |
| | | // åå
¥é¢æµè®¢åä¿¡æ¯è¡¨ |
| | | strOrderCode:=H_FunctionClass::SM_GenerateID( "OF"); |
| | | Owner.H_Forecast(relnew,OrderCode := strOrderCode, |
| | | SKU := Obj.ProductID(), |
| | | CustomCode := CustomName, |
| | | CustomName := CustomName, |
| | | Util:=Obj.UnitOfMeasureName(), |
| | | NeedTime:=Obj.EndDate(), |
| | | ForecastQty:=[Number]Obj.Quantity().Round( 0), |
| | | StockingPointID := Obj.StockingPointID(), |
| | | Department:=DepartMent); |
| | | // åå
¥é¢æµå®æ¶ä¿¡æ¯ |
| | | ObjOrderRealQty := select( Owner,H_OrderForecastRealQty,ObjO,ObjO.CustomID()=CustomName and ObjO.SKU()=Obj.ProductID() |
| | | and ObjO.Month().StartOfMonth() = Obj.EndDate().StartOfMonth() ) |
| | | if( isnull( ObjOrderRealQty)) |
| | | { |
| | | Owner.H_OrderForecastRealQty(relnew,CustomID := CustomName,CustomName := CustomName,ForecatsQty := [Number]Obj.Quantity().Round( 0) |
| | | ,ForecatsRealQty := [Number]Obj.Quantity().Round( 0),ID := H_FunctionClass::SM_GenerateID( "OR") |
| | | ,Month := Obj.EndDate(),OrderCode := strOrderCode,SKU := Obj.ProductID(),Unit := Obj.UnitOfMeasureName()); |
| | | } |
| | | else |
| | | { |
| | | if( IsNew) |
| | | { |
| | | ObjOrderRealQty.ForecatsQty([Number]Obj.Quantity().Round( 0)); |
| | | ObjOrderRealQty.ForecatsRealQty([Number]Obj.Quantity().Round( 0)); |
| | | } |
| | | else |
| | | { |
| | | if( [Number]Obj.Quantity().Round( 0)<> ObjOrderRealQty.ForecatsQty()) |
| | | { |
| | | RQty := [Number]Obj.Quantity().Round( 0) - ObjOrderRealQty.ForecatsQty(); |
| | | RQty := ObjOrderRealQty.ForecatsRealQty() + RQty; |
| | | if( RQty<0) |
| | | { |
| | | RQty :=0; |
| | | } |
| | | ObjOrderRealQty.ForecatsQty([Number]Obj.Quantity().Round( 0)); |
| | | ObjOrderRealQty.ForecatsRealQty(RQty); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | bStatus := true; |
| | | strMsg :="订å颿µåå§åæå!"; |
| | | } |
| | | onerror |
| | | { |
| | | strMsg :="订å颿µåå§å失败ï¼å¯è½å½±åå²å计ç®ï¼è¯·è系系ç»ç®¡çåï¼"; |
| | | Owner.H_ErrorLogs(relnew,EClassName := "H_FunctionClass",EDateTime := DateTime::ActualGMTTime(),EFunctionName := "SM_InitialForcastData", |
| | | DeveloperInformation := e.DeveloperInformation(),ErrorNr := e.ErrorNr(),DetailedInformation := e.DetailedInformation(), |
| | | GeneralInformation := e.GeneralInformation()); |
| | | } |
| | | return JSON::Object().Add( "Status",bStatus) |
| | | .Add( "Msg",strMsg).Build(); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod SM_OrderHedging ( |
| | | MacroPlan Owner, |
| | | Boolean IsNew, |
| | | String Operator, |
| | | String OperatorType |
| | | ) as owning JSON |
| | | { |
| | | Description: '订åå²åè°ç¨å½æ°' |
| | | TextBody: |
| | | [* |
| | | /************************************订åå²åè°ç¨****************************** |
| | | *彿°åï¼SM_OrderHedging |
| | | *å建人ï¼yunying |
| | | *å建æ¶é´ï¼20230-09-24 |
| | | *æè¿°ï¼ç³»ç»å
订åå²åè°ç¨å½æ°ï¼IsNew=trueæ¶ï¼éæ°å¤ç颿µä¿¡æ¯ï¼IsNew=falseæ¶ï¼ç¨é¢æµç´¯è®¡ä¿¡æ¯ã |
| | | *****************************************************************************/ |
| | | // åå§åç»æ |
| | | bStatus := false; |
| | | strMsg :=""; |
| | | // è·åçæ¬å·,è¿éæ¯å¦éè¦åçæ¬å·åè½å¯¹æ¥ |
| | | VCode :=H_FunctionClass::SM_GenerateID("VC"); |
| | | |
| | | try{ |
| | | if( not isnull( Owner)) |
| | | { |
| | | // åå§å颿µä¿¡æ¯ |
| | | JResult := H_FunctionClass::SM_InitialForcastDataEx( Owner,IsNew); |
| | | if( JResult.Get( "Status").GetBoolean()) |
| | | { |
| | | traverse( Owner,SalesDemand.astype( CustomerOrder ),ObjOrder,not isnull( ObjOrder)) |
| | | { |
| | | //----------------------------------------以ä¸åå»é¢æµ åç¾ æææ°æ®ä¿¡æ¯---------------- |
| | | nForecastQtyOld := 0; //å颿µæ°é |
| | | nReverseQtyOld :=0; //ååç¾æ°é |
| | | nAuthorizeQtyOld :=0; //åæææ°é |
| | | nForecastQtyNew :=0; //计ç®åç颿µæ°é |
| | | nReverseQtyNew :=0; //计ç®åçåç¾æ°é |
| | | nAuthorizeQtyNew :=0; //计ç®åçæææ°é |
| | | nHaveForecastQty :=0; //æé¢æµæ°é |
| | | nNoHaveForecastQty:=0;//äºé¢æµæ°é |
| | | OrderQuantity := 0; //å©ä½è®¢åæ°é |
| | | |
| | | // è·å颿µæ°éï¼å®¢æ·+SKU+æä»½ çè®ºæ¯æ²¡æç©æé¢æµï¼ |
| | | OrderForecast := select(Owner, H_OrderForecastRealQty , Obj, Obj.SKU() = ObjOrder.ProductID() |
| | | and Obj.CustomID() = ObjOrder.CustomerName() |
| | | and Obj.Month().Format( "YM2") =ObjOrder.EndDate().Format( "YM2")); |
| | | if ( not isnull(OrderForecast)) |
| | | { |
| | | nForecastQtyOld := OrderForecast.ForecatsRealQty(); |
| | | nForecastQtyNew := nForecastQtyOld; |
| | | } |
| | | |
| | | // è·ååç¾æ°éï¼åªå¤æSKUï¼ |
| | | ObjReverse := select(Owner, H_ReverseRealQty , Obj, Obj.SKU() = ObjOrder.ProductID()); |
| | | if ( not isnull(ObjReverse)) |
| | | { |
| | | nReverseQtyOld := ObjReverse.ReverseRealQty(); |
| | | nReverseQtyNew := nReverseQtyOld; |
| | | } |
| | | |
| | | // è·åæææ°éï¼å®¢æ·ID+SKUï¼ |
| | | ObjAuthorize := select(Owner, H_AuthorizeRealQty , Obj, Obj.SKU() = ObjOrder.ProductID() |
| | | and Obj.CustomID() = ObjOrder.CustomerName()); |
| | | if ( not isnull(ObjAuthorize)) |
| | | { |
| | | nAuthorizeQtyOld := ObjAuthorize.AuthorizeRealQty(); |
| | | nAuthorizeQtyNew :=nAuthorizeQtyOld; |
| | | } |
| | | //-----------------------------以ä¸è®¢åå²å-------------------- |
| | | // ææè®°å½ID |
| | | AQID := H_FunctionClass::SM_GenerateID( "AQ"); |
| | | // 订åå©ä½æ°é |
| | | OrderQuantity := [Number]ObjOrder.Quantity().Round( 0); |
| | | // 1 å
岿æ |
| | | if( OrderQuantity>0 and nAuthorizeQtyOld>0) |
| | | { |
| | | OrderQuantity := OrderQuantity-nAuthorizeQtyOld; |
| | | nAuthorizeQtyNew :=0; |
| | | if( OrderQuantity<0) |
| | | { |
| | | nAuthorizeQtyNew := abs(OrderQuantity); |
| | | OrderQuantity :=0; |
| | | } |
| | | } |
| | | // 2 åå²åç¾ |
| | | if( OrderQuantity>0 and nReverseQtyOld>0) |
| | | { |
| | | OrderQuantity := OrderQuantity-nReverseQtyOld; |
| | | nReverseQtyNew :=0; |
| | | if( OrderQuantity<0) |
| | | { |
| | | nReverseQtyNew := abs(OrderQuantity); |
| | | OrderQuantity :=0; |
| | | } |
| | | } |
| | | // 3 æåå²é¢æµ |
| | | if( OrderQuantity>0 and nForecastQtyOld>0) |
| | | { |
| | | //é»è®¤è®¢åæ°é>颿µæ°é |
| | | OrderQuantity := OrderQuantity-nForecastQtyOld; |
| | | nForecastQtyNew :=0; |
| | | nHaveForecastQty := nForecastQtyOld; |
| | | nNoHaveForecastQty := OrderQuantity; |
| | | if( OrderQuantity<0) |
| | | { |
| | | nForecastQtyNew := abs(OrderQuantity); |
| | | OrderQuantity :=0; |
| | | nHaveForecastQty := nForecastQtyOld - nForecastQtyNew; |
| | | nNoHaveForecastQty := 0; |
| | | } |
| | | } |
| | | // è®°å½å¨ä½ |
| | | Owner.H_OrderRecord(relnew, |
| | | ID := AQID, |
| | | VCode:=VCode, |
| | | SKU:=ObjOrder.ProductID(), |
| | | ReverseQty := nReverseQtyNew, |
| | | CustomerCode := ObjOrder.CustomerName(), |
| | | CustomerName := ObjOrder.CustomerName(), |
| | | ForecastQty := nForecastQtyNew, |
| | | OrderDateTime := ObjOrder.EndDate(), |
| | | OrderQty := [Number]ObjOrder.Quantity().Round( 0), |
| | | OrderCode:=ObjOrder.OrderID(), |
| | | AuthorizeQty := nAuthorizeQtyNew, |
| | | ReverseDeductQty := nReverseQtyOld - nReverseQtyNew, |
| | | AuthorizeDeductQty := 0, |
| | | ForecastHitQty :=nHaveForecastQty, |
| | | ForecastNoHitQty :=nNoHaveForecastQty, |
| | | OperateType := OperatorType, |
| | | Operator := Operator, |
| | | Unit := ObjOrder.UnitOfMeasureName(), |
| | | OperateQty := [Number]ObjOrder.Quantity().Round( 0), |
| | | OperateTime := DateTime::ActualTime()); |
| | | |
| | | // æ´æ°å½ååç¾æ°é |
| | | if( not isnull( ObjReverse)) |
| | | { |
| | | ObjReverse.ReverseRealQty(nReverseQtyNew); |
| | | } |
| | | else |
| | | { |
| | | Owner.H_ReverseRealQty(relnew,ID := H_FunctionClass::SM_GenerateID( "RQ"),SKU := ObjOrder.ProductID(),Unit := ObjOrder.UnitOfMeasureName() |
| | | ,ReverseRealQty := nReverseQtyNew); |
| | | } |
| | | // æ´æ°ææ |
| | | if( not isnull( ObjAuthorize)) |
| | | { |
| | | ObjAuthorize.AuthorizeRealQty(nAuthorizeQtyNew); |
| | | } |
| | | else |
| | | { |
| | | Owner.H_AuthorizeRealQty(relnew,ID := H_FunctionClass::SM_GenerateID( "AR"),SKU := ObjOrder.ProductID(), |
| | | Month := ObjOrder.EndDate(), |
| | | CustomID := ObjOrder.CustomerName(), |
| | | CustomName := ObjOrder.CustomerName(), |
| | | OrderCode := "-", |
| | | AuthorizeRealQty :=nAuthorizeQtyNew, |
| | | Unit := ObjOrder.UnitOfMeasureName()); |
| | | } |
| | | // æ´æ°é¢æµ |
| | | if( not isnull( OrderForecast)) |
| | | { |
| | | OrderForecast.ForecatsRealQty(nForecastQtyNew); |
| | | } |
| | | else |
| | | { |
| | | Owner.H_OrderForecastRealQty(relnew,ID := H_FunctionClass::SM_GenerateID( "OF"),SKU := ObjOrder.ProductID(), |
| | | Month := ObjOrder.EndDate(), |
| | | CustomID := ObjOrder.CustomerName(), |
| | | CustomName := ObjOrder.CustomerName(), |
| | | OrderCode := "-", |
| | | ForecatsQty :=0, |
| | | ForecatsRealQty :=nForecastQtyNew, |
| | | Unit := ObjOrder.UnitOfMeasureName()); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | strMsg:="颿µè®¢åä¿¡æ¯å 载失败ï¼è¯·è系系ç»ç®¡çåï¼"; |
| | | } |
| | | } |
| | | } |
| | | onerror |
| | | { |
| | | strMsg :="订åå²ååçé误ï¼è¯·è系系ç»ç®¡çåï¼"; |
| | | // è¿éæ¯å¦è¦å é¤å·²åå»ºçæ°æ®ï¼å¾
å®ï¼å¦ææçæ¬å·å¯ä»¥ä¸å é¤ |
| | | |
| | | // è®°å½é误æ¥å¿ |
| | | Owner.H_ErrorLogs(relnew,EClassName := "H_FunctionClass",EDateTime := DateTime::ActualGMTTime(),EFunctionName := "SM_InitialForcastData", |
| | | DeveloperInformation := e.DeveloperInformation(),ErrorNr := e.ErrorNr(),DetailedInformation := e.DetailedInformation(), |
| | | GeneralInformation := e.GeneralInformation()); |
| | | } |
| | | return JSON::Object().Add( "Status",bStatus) |
| | | .Add( "VersionCode",VCode) |
| | | .Add( "Msg",strMsg).Build(); |
| | | *] |
| | | } |
| | |
| | | { |
| | | #keys: '5[414724.0.53669729][414724.0.53669727][0.0.0][414724.0.53669728][414724.0.53669730]' |
| | | BaseType: Object |
| | | Description: 'å²åæä½ç±»' |
| | | Description: 'å²åæä½å
¬ç¨ç±»' |
| | | StructuredName: 'H_FunctionClasss' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ForecastID |
| | | { |
| | | #keys: '3[414724.0.150662643][414724.0.150662642][414724.0.150662644]' |
| | | Description: '颿µID' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ID |
| | | { |
| | | #keys: '3[414724.0.142347495][414724.0.142347494][414724.0.142347496]' |
| | | Description: '主é®ID' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute MaterialName |
| | | { |
| | | #keys: '3[414724.0.142347535][414724.0.142347534][414724.0.142347536]' |
| | | Description: 'ç©æåç§°' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute MaterialType |
| | | { |
| | | #keys: '3[414724.0.142347525][414724.0.142347524][414724.0.142347526]' |
| | | Description: 'ç©æç±»åï¼æåãåæåãåææï¼ï¼ï¼ï¼' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute NeedDate |
| | | { |
| | | #keys: '3[414724.0.143344655][414724.0.143344654][414724.0.143344656]' |
| | | Description: 'éæ±æ¶é´' |
| | | ValueType: Date |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute NeedQty |
| | | { |
| | | #keys: '3[414724.0.142347555][414724.0.142347554][414724.0.142347556]' |
| | | Description: 'éæ±æ°é' |
| | | ValueType: Number |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute OrgCode |
| | | { |
| | | #keys: '3[414724.0.142347565][414724.0.142347564][414724.0.142347566]' |
| | | Description: 'ç»ç»ä»£ç ' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ParentSKU |
| | | { |
| | | #keys: '3[414724.0.142347515][414724.0.142347514][414724.0.142347516]' |
| | | Description: 'ç¶ç©æSKU' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute SKU |
| | | { |
| | | #keys: '3[414724.0.142347505][414724.0.142347504][414724.0.142347506]' |
| | | Description: 'SKU(产åãåæåãç©æï¼' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute StockPoint |
| | | { |
| | | #keys: '3[414724.0.142347575][414724.0.142347574][414724.0.142347576]' |
| | | Description: 'åºåç¹' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Unit |
| | | { |
| | | #keys: '3[414724.0.142347545][414724.0.142347544][414724.0.142347546]' |
| | | Description: 'åä½' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute VCode |
| | | { |
| | | #keys: '3[414724.0.142347585][414724.0.142347584][414724.0.142347586]' |
| | | Description: 'çæ¬å·' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type H_MaterialInfo |
| | | { |
| | | #keys: '5[414724.0.142347475][414724.0.142347473][0.0.0][414724.0.142347474][414724.0.142347476]' |
| | | BaseType: Object |
| | | Description: 'ç©æä¿¡æ¯' |
| | | StructuredName: 'H_MaterialInfos' |
| | | } |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod DoSync ( |
| | | MacroPlan macroPlan |
| | | MacroPlan macroPlan, |
| | | GlobalOTDTable globalOTDTable |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // yypsybs Aug-17-2023 (created) |
| | | info( "ActualPISPIP Finished, Start InventoryCost Data Broker" ); |
| | | macroPlan.Broker_OTD_InventoryCost().Execute(); |
| | | //info( "ActualPISPIP Finished, Start InventoryCost Data Broker" ); |
| | | //macroPlan.Broker_OTD_InventoryCost().Execute(); |
| | | info( "InventoryCost Data Broker Finished, Start InventoryCost Mapping" ); |
| | | macroPlan.MappingInventoryValueAndCostData(); |
| | | macroPlan.MappingInventoryValueAndCostData(globalOTDTable); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method CapacityAndSaleBudgeExport () as BinaryValue |
| | | { |
| | | Description: 'å¯¼åºæ¯è¾ç»æ' |
| | | TextBody: |
| | | [* |
| | | // generate by generate_export.py |
| | | info( "export start" ); |
| | | text:= '<?xml version="1.0" encoding="utf-8" standalone="yes"?><table><name>年度产éé¢ç®</name> |
| | | <column><name>å 餿 è®°</name><type>String</type></column> |
| | | <column><name>年份</name><type>Number</type></column> |
| | | <column><name>ä¸å¡é¨é¨</name><type>String</type></column> |
| | | <column><name>æ¾ç¤ºææ¯åç±»</name><type>String</type></column> |
| | | <column><name>ä¸å¡åç±»</name><type>String</type></column> |
| | | <column><name>产å线/产åè§æ ¼</name><type>String</type></column> |
| | | <column><name>产åæå·</name><type>String</type></column> |
| | | <column><name>Array产å°</name><type>String</type></column> |
| | | <column><name>è¸é产å°</name><type>String</type></column> |
| | | <column><name>å辨ç</name><type>String</type></column> |
| | | <column><name>åºè´§å½¢æ</name><type>String</type></column> |
| | | <column><name>å岿°</name><type>String</type></column> |
| | | <column><name>产è½å½é</name><type>String</type></column> |
| | | <column><name>maskæ°</name><type>String</type></column> |
| | | <column><name>1æäº§è½(PCS)</name><type>Real</type></column> |
| | | <column><name>2æäº§è½(PCS)</name><type>Real</type></column> |
| | | <column><name>3æäº§è½(PCS)</name><type>Real</type></column> |
| | | <column><name>4æäº§è½(PCS)</name><type>Real</type></column> |
| | | <column><name>5æäº§è½(PCS)</name><type>Real</type></column> |
| | | <column><name>6æäº§è½(PCS)</name><type>Real</type></column> |
| | | <column><name>7æäº§è½(PCS)</name><type>Real</type></column> |
| | | <column><name>8æäº§è½(PCS)</name><type>Real</type></column> |
| | | <column><name>9æäº§è½(PCS)</name><type>Real</type></column> |
| | | <column><name>10æäº§è½(PCS)</name><type>Real</type></column> |
| | | <column><name>11æäº§è½(PCS)</name><type>Real</type></column> |
| | | <column><name>12æäº§è½(PCS)</name><type>Real</type></column> |
| | | <column><name>年产è½(PCS)</name><type>Real</type></column> |
| | | <column><name>1æäº§è½(宿°å¤§å¼ )</name><type>Real</type></column> |
| | | <column><name>2æäº§è½(宿°å¤§å¼ )</name><type>Real</type></column> |
| | | <column><name>3æäº§è½(宿°å¤§å¼ )</name><type>Real</type></column> |
| | | <column><name>4æäº§è½(宿°å¤§å¼ )</name><type>Real</type></column> |
| | | <column><name>5æäº§è½(宿°å¤§å¼ )</name><type>Real</type></column> |
| | | <column><name>6æäº§è½(宿°å¤§å¼ )</name><type>Real</type></column> |
| | | <column><name>7æäº§è½(宿°å¤§å¼ )</name><type>Real</type></column> |
| | | <column><name>8æäº§è½(宿°å¤§å¼ )</name><type>Real</type></column> |
| | | <column><name>9æäº§è½(宿°å¤§å¼ )</name><type>Real</type></column> |
| | | <column><name>10æäº§è½(宿°å¤§å¼ )</name><type>Real</type></column> |
| | | <column><name>11æäº§è½(宿°å¤§å¼ )</name><type>Real</type></column> |
| | | <column><name>12æäº§è½(宿°å¤§å¼ )</name><type>Real</type></column> |
| | | <column><name>年产è½(宿°å¤§å¼ )</name><type>Real</type></column> |
| | | <column><name>1æéå®é¢(W)</name><type>Real</type></column> |
| | | <column><name>2æéå®é¢(W)</name><type>Real</type></column> |
| | | <column><name>3æéå®é¢(W)</name><type>Real</type></column> |
| | | <column><name>4æéå®é¢(W)</name><type>Real</type></column> |
| | | <column><name>5æéå®é¢(W)</name><type>Real</type></column> |
| | | <column><name>6æéå®é¢(W)</name><type>Real</type></column> |
| | | <column><name>7æéå®é¢(W)</name><type>Real</type></column> |
| | | <column><name>8æéå®é¢(W)</name><type>Real</type></column> |
| | | <column><name>9æéå®é¢(W)</name><type>Real</type></column> |
| | | <column><name>10æéå®é¢(W)</name><type>Real</type></column> |
| | | <column><name>11æéå®é¢(W)</name><type>Real</type></column> |
| | | <column><name>12æéå®é¢(W)</name><type>Real</type></column> |
| | | <column><name>å¹´éå®é¢(W)</name><type>Real</type></column> |
| | | </table>'; |
| | | xmlDOMImplementation := XMLDOMImplementation::Create(); |
| | | xmlDOMDocument := xmlDOMImplementation.CreateDocumentFromString( text ); |
| | | |
| | | tableElement:= xmlDOMDocument.GetElementByTagName( "table", 0 ); |
| | | |
| | | toExportList := selectsortedset( this, MappingCapacityAndSaleBudge, item, true, item.OrgCode() + "_" + item.PlaceOfProductionOfArray() ); |
| | | info( "export size : " + [String]toExportList.Size() ); |
| | | nowNo := 1; |
| | | traverse ( toExportList, Elements, toExport ) { |
| | | info( "nowNo : " + [String]nowNo ); |
| | | nowNo := nowNo + 1; |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, ifexpr( toExport.Deleted(), "Y", "N"), "å 餿 è®°" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.YearNo(), "年份" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.OrgCode(), "ä¸å¡é¨é¨" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.DisplayTechnology(), "æ¾ç¤ºææ¯åç±»" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.BusinessType(), "ä¸å¡åç±»" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.LineAndSpecification(), "产å线/产åè§æ ¼" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductCode(), "产åæå·" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.PlaceOfProductionOfArray(), "Array产å°" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.PlaceOfProductionOfEvaporation(), "è¸é产å°" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.Resolution(), "å辨ç" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ShippingForm(), "åºè´§å½¢æ" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.NumberOfCut(), "å岿°" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.CapacityEquivalent(), "产è½å½é" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.NumberOfMask(), "maskæ°" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth1(), "1æäº§è½(PCS)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth2(), "2æäº§è½(PCS)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth3(), "3æäº§è½(PCS)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth4(), "4æäº§è½(PCS)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth5(), "5æäº§è½(PCS)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth6(), "6æäº§è½(PCS)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth7(), "7æäº§è½(PCS)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth8(), "8æäº§è½(PCS)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth9(), "9æäº§è½(PCS)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth10(), "10æäº§è½(PCS)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth11(), "11æäº§è½(PCS)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth12(), "12æäº§è½(PCS)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSTotal(), "年产è½(PCS)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth1(), "1æäº§è½(宿°å¤§å¼ )" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth2(), "2æäº§è½(宿°å¤§å¼ )" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth3(), "3æäº§è½(宿°å¤§å¼ )" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth4(), "4æäº§è½(宿°å¤§å¼ )" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth5(), "5æäº§è½(宿°å¤§å¼ )" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth6(), "6æäº§è½(宿°å¤§å¼ )" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth7(), "7æäº§è½(宿°å¤§å¼ )" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth8(), "8æäº§è½(宿°å¤§å¼ )" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth9(), "9æäº§è½(宿°å¤§å¼ )" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth10(), "10æäº§è½(宿°å¤§å¼ )" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth11(), "11æäº§è½(宿°å¤§å¼ )" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth12(), "12æäº§è½(宿°å¤§å¼ )" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetTotal(), "年产è½(宿°å¤§å¼ )" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth1(), "1æéå®é¢(W)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth2(), "2æéå®é¢(W)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth3(), "3æéå®é¢(W)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth5(), "4æéå®é¢(W)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth4(), "5æéå®é¢(W)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth6(), "6æéå®é¢(W)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth7(), "7æéå®é¢(W)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth8(), "8æéå®é¢(W)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth9(), "9æéå®é¢(W)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth10(), "10æéå®é¢(W)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth11(), "11æéå®é¢(W)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth12(), "12æéå®é¢(W)" ); |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountTotal(), "å¹´éå®é¢(W)" ); |
| | | } |
| | | |
| | | xmlDOMSerializer := xmlDOMImplementation.CreateSerializer(); |
| | | xmlTableString := xmlDOMSerializer.WriteToString( xmlDOMDocument ); |
| | | |
| | | tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTableString ) ); |
| | | tableGroupHandle := TableGroupHandle::Create( "年度产éé¢ç®" ); |
| | | tableGroupHandle.Add( tableHandle ); |
| | | tableBinaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true ); |
| | | |
| | | info( "export end" ); |
| | | |
| | | return tableBinaryData.AsBinaryValue(); |
| | | *] |
| | | } |
| | |
| | | info( "productCodeList : " + [String]productCodeList.Size() ); |
| | | |
| | | mpSync.MappingCapacityAndSaleBudge( relflush ); |
| | | for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year(); year := year + 1 ) { |
| | | for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year() + 5; year := year + 1 ) { |
| | | for( i := 1; i <= productCodeList.Size(); i := i + 1 ) { |
| | | productCode := productCodeList.Element( i - 1 ); |
| | | mappingCapacityAndSaleBudge := mpSync.MappingCapacityAndSaleBudge( relnew, |
| | |
| | | info( "test MappingCapacityAndSaleBudge size : " + [String]result1.Size() ); |
| | | |
| | | mpSync.MappingAnnualBudget( relflush ); |
| | | for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year(); year := year + 1 ) { |
| | | for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year() + 5; year := year + 1 ) { |
| | | for( i := 1; i <= productCodeList.Size(); i := i + 1 ) { |
| | | productCode := productCodeList.Element( i - 1 ); |
| | | mappingAnnualBudget := mpSync.MappingAnnualBudget( relnew, |
| | |
| | | // Administrator Sep-1-2023 (created) |
| | | |
| | | //Set the Default values |
| | | unitofmeasurename := "PCS"; |
| | | currencyid := "CNY"; |
| | | startdate := Date::Date( 1900, 1, 1 ); |
| | | enddate := Date::Date( 9999, 12, 31 ); |
| | | capacitytype := "Transport quantity"; |
| | | //unitofMeasureName := "PCS"; |
| | | //currencyid := "CNY"; |
| | | //startdate := Date::Date( 1900, 1, 1 ); |
| | | //enddate := Date::Date( 9999, 12, 31 ); |
| | | //capacitytype := "Transport quantity"; |
| | | |
| | | if( isnull( Unit::FindById( this, "空è¿" ) ) ){ |
| | | this.Unit( relnew, |
| | | ID := "空è¿", |
| | | Name := "空è¿", |
| | | UnitOfMeasureName := unitofmeasurename, |
| | | CurrencyID := currencyid, |
| | | StartDate := startdate, |
| | | EndDate := enddate, |
| | | CapacityType := capacitytype ); |
| | | } |
| | | |
| | | if( isnull( Unit::FindById( this, "åºåäºå¡å¤ç" ) ) ){ |
| | | this.Unit( relnew, |
| | | ID := "åºåäºå¡å¤ç", |
| | | Name := "åºåäºå¡å¤ç", |
| | | UnitOfMeasureName := unitofmeasurename, |
| | | CurrencyID := currencyid, |
| | | StartDate := startdate, |
| | | EndDate := enddate, |
| | | CapacityType := capacitytype ); |
| | | } |
| | | |
| | | unitofmeasurename := "PCS"; |
| | | name := "æå¨å建åºåç¹"; |
| | | currencyname := "CNY"; |
| | | isplannedinfinite := false; |
| | | datestart := Date::Construct(1900, 1, 1) ; |
| | | dateend := Date::Construct(9999, 12, 31); |
| | | groupname := " "; |
| | | description := " "; |
| | | isfromdb := true; |
| | | |
| | | if( isnull( StockingPoint_MP::FindById( this, "F13_FG_STOCK" ) ) ){ |
| | | StockingPoint_MP::Create( this, |
| | | "F13_FG_STOCK", |
| | | "F13", |
| | | name, |
| | | unitofmeasurename, |
| | | currencyname, |
| | | isplannedinfinite, |
| | | datestart, |
| | | dateend, |
| | | groupname, |
| | | description, |
| | | isfromdb ); |
| | | } |
| | | |
| | | if( isnull( StockingPoint_MP::FindById( this, "H10_SA_STOCK" ) ) ){ |
| | | StockingPoint_MP::Create( this, |
| | | "H10_SA_STOCK", |
| | | "H10", |
| | | name, |
| | | unitofmeasurename, |
| | | currencyname, |
| | | isplannedinfinite, |
| | | datestart, |
| | | dateend, |
| | | groupname, |
| | | description, |
| | | isfromdb ); |
| | | } |
| | | |
| | | if( isnull( StockingPoint_MP::FindById( this, "Q10_FG_STOCK" ) ) ){ |
| | | StockingPoint_MP::Create( this, |
| | | "Q10_FG_STOCK", |
| | | "Q10", |
| | | name, |
| | | unitofmeasurename, |
| | | currencyname, |
| | | isplannedinfinite, |
| | | datestart, |
| | | dateend, |
| | | groupname, |
| | | description, |
| | | isfromdb ); |
| | | } |
| | | |
| | | existcurrency := Currency_MP::FindById( this, "CNY" ); |
| | | if( isnull( existcurrency ) ){ |
| | |
| | | #parent: #root |
| | | Method MappingActualPISPIPData ( |
| | | Strings businessTypes, |
| | | GlobalOTDTable globalOTDTable, |
| | | Boolean nuclear |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // renhao Aug-14-2023 (created) |
| | | date := Date :: Today(); |
| | | listtodeal := selectset( this,MappingActualPISPIP,actual,true ); |
| | | listtodeal := selectset( globalOTDTable,Global_MappingActualProductInStockingPointInPeriod,actual,actual.ActualInventoryLevelEnd() > 0 ); |
| | | totalcount := listtodeal.Size(); |
| | | info( "ActualPISPIP has " + totalcount.AsQUILL() + " rows in total" ); |
| | | |
| | | count := 0; |
| | | traverse( listtodeal,Elements,actual){ |
| | | count := count + 1; |
| | | if( count - [Number](count/100) * 100 = 0 or count = totalcount ){ |
| | | if( count - [Number](count/1000) * 1000 = 0 or count = totalcount ){ |
| | | info( "Now is dealing with the " + count.AsQUILL() + "ActualPISPIP " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" ); |
| | | } |
| | | product := select( this,MappingProduct,product,product.ID() = actual.ProductID() and product.KeyProduct() = nuclear,true); |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method MappingBaseConversionFactorData |
| | | Method MappingBaseConversionFactorData ( |
| | | GlobalOTDTable globalOTDTable |
| | | ) |
| | | { |
| | | Description: 'ETLæ°æ®è½¬æ¨¡åæ°æ®' |
| | | TextBody: |
| | | [* |
| | | // yypsybs Aug-15-2023 (created) |
| | | traverse( this, MappingBaseConversionFactor, item ) { |
| | | traverse( globalOTDTable, Global_MappingConversionFactor, item ) { |
| | | //妿ProductIDä¸ä¸ºç©ºï¼ä¸å¹é
ä¸å°Productï¼åä¸å建ï¼è¿å为空 |
| | | // info( item.ProductId().AsQUILL() ); |
| | | BaseConversionFactor::CreateOrUpdate( this, |
| | | item.SourceUnitOfMeasureName(), |
| | | item.TargetUnitOfMeasureName(), |
| | | item.IsEnabled(), |
| | | item.ProductId(), |
| | | item.ProductID(), |
| | | item.Factor() ); |
| | | } |
| | | *] |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method MappingCustomerOrderData ( |
| | | Strings businessTypes |
| | | Strings businessTypes, |
| | | GlobalOTDTable globalOTDTable |
| | | ) |
| | | { |
| | | Description: 'ETL订å颿µ' |
| | |
| | | [* |
| | | // yypsybs Aug-15-2023 (created) |
| | | // å¾
å¤çæ°æ® |
| | | listToDeal := construct( structured[MappingCustomerOrder] ); |
| | | listToDeal := construct( Global_MappingCustomOrders ); |
| | | if( isnull( businessTypes ) or businessTypes.Size() = 0 ) { |
| | | listToDeal := selectset( this, MappingCustomerOrder, item, true ); |
| | | listToDeal := selectset( globalOTDTable, Global_MappingCustomOrder, item, true ); |
| | | } else { |
| | | listToDeal := selectset( this, MappingCustomerOrder, item, businessTypes.Find( item.BusinessType() ) <> -1 ); |
| | | listToDeal := selectset( globalOTDTable, Global_MappingCustomOrder, item, businessTypes.Find( item.BusinessType() ) <> -1 ); |
| | | } |
| | | queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date(); |
| | | queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() ); |
| | | listToDeal := selectset( listToDeal, Elements, item, item.OrderDate() >= queryStartDate /*and item.OrderDate() <= queryEndDate*/, not isnull( Product_MP::FindById( this, item.ProductID() ) ) and not isnull( StockingPoint_MP::FindById( this, item.StockPointID() ) ) and not isnull( SalesSegment_MP::FindByName( this, item.SalesSegmentName() ) ) ); |
| | | listToDeal := selectset( listToDeal, Elements, item, item.OrderDate() >= queryStartDate /*and item.OrderDate() <= queryEndDate*/, not isnull( Product_MP::FindById( this, item.ProductID() ) ) and not isnull( StockingPoint_MP::FindById( this, item.StockingPointID() ) ) and not isnull( SalesSegment_MP::FindByName( this, item.SalesSegmentName() ) ) ); |
| | | |
| | | totalcount := listToDeal.Size(); |
| | | info( "CustomerOrder has " + totalcount.AsQUILL() + " rows in total" ); |
| | |
| | | CustomerOrder::CreateOrUpdate( this, item.CurrencyID(), item.Customer(), item.CustomerID(), item.ID(), |
| | | item.OrderDate(), item.OrderID(), item.OrderLineID(), item.Price(), |
| | | priorityName, item.ProductID(), |
| | | item.StockPointID(), |
| | | item.StockingPointID(), |
| | | item.SalesSegmentName(), |
| | | item.Quantity(), item.UnitOfMeasureName(), item.OrderType(), item.IsAvailable()); |
| | | // }else{ |
| | |
| | | #parent: #root |
| | | Method MappingExternalSupplyData ( |
| | | Strings businessTypes, |
| | | Boolean nuclear |
| | | Boolean nuclear, |
| | | GlobalOTDTable globalOTDTable |
| | | ) |
| | | { |
| | | TextBody: |
| | |
| | | // renhao Aug-14-2023 (created) |
| | | queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date(); |
| | | queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() ); |
| | | listtodeal := selectset( this,MappingExternalSupply,externalSupply, externalSupply.UserQuantity()>0 and externalSupply.Date() >= queryStartDate /*and externalSupply.Date() <= queryEndDate*/); |
| | | listtodeal := selectset( globalOTDTable,Global_MappingInventorySupply,externalSupply, externalSupply.UserQuantity()>0 and externalSupply.Date() >= queryStartDate /*and externalSupply.Date() <= queryEndDate*/); |
| | | totalcount := listtodeal.Size(); |
| | | description := "å¨éå¨å¶"; |
| | | info( "ExternalSupply has " + totalcount.AsQUILL() + " rows in total" ); |
| | |
| | | if( count - [Number](count/1000) * 1000 = 0 or count = totalcount ){ |
| | | info( "Now is dealing with the " + count.AsQUILL() + "ExternalSupply " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" ); |
| | | } |
| | | product := select( this,MappingProduct,product,product.ID() = externalSupply.ProductID(),true); |
| | | product := select( globalOTDTable,Global_MappingProduct_MP,product,product.ID() = externalSupply.ProductID(),true); |
| | | |
| | | |
| | | if( not isnull( product)){ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method MappingForecastData ( |
| | | Strings businessTypes |
| | | Strings businessTypes, |
| | | GlobalOTDTable globalOTDTable |
| | | ) |
| | | { |
| | | Description: 'ETL订å颿µ' |
| | |
| | | [* |
| | | // yypsybs Aug-15-2023 (created) |
| | | // å¾
å¤çæ°æ® |
| | | listToDeal := construct( structured[MappingForecast] ); |
| | | listToDeal := construct( Global_MappingForecasts ); |
| | | if( isnull( businessTypes ) or businessTypes.Size() = 0 ) { |
| | | listToDeal := selectset( this, MappingForecast, item, item.Quantity() > 0 ); |
| | | listToDeal := selectset( globalOTDTable, Global_MappingForecast, item, item.Quantity() > 0 ); |
| | | } else { |
| | | listToDeal := selectset( this, MappingForecast, item, businessTypes.Find( item.BusinessType() ) <> -1 and item.Quantity()>0 ); |
| | | listToDeal := selectset( globalOTDTable, Global_MappingForecast, item, businessTypes.Find( item.BusinessType() ) <> -1 and item.Quantity()>0 ); |
| | | } |
| | | queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date(); |
| | | queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() ); |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method MappingInventoryValueAndCostData |
| | | Method MappingInventoryValueAndCostData ( |
| | | GlobalOTDTable globalOTDTable |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // yypsybs Aug-15-2023 (created) |
| | | listtodeal := selectset( this,MappingInventoryValueAndCost,item,true ); |
| | | listtodeal := selectset( globalOTDTable,Global_MappingStockingPointCost,item,true ); |
| | | totalcount := listtodeal.Size(); |
| | | |
| | | info( "InventoryCost has " + totalcount.AsQUILL() + " rows in total" ); |
| | |
| | | Method MappingOperationBOMData ( |
| | | Strings businessTypes, |
| | | Boolean isKeyProduct, |
| | | Boolean createPurchaseSupplyMaterial |
| | | Boolean createPurchaseSupplyMaterial, |
| | | GlobalOTDTable globalOTDTable |
| | | ) |
| | | { |
| | | TextBody: |
| | |
| | | |
| | | keyProductList := construct( Strings ); |
| | | if( isKeyProduct ) { |
| | | keyProductList := selectuniquevalues( this, MappingProduct, item, item.ProductMajorType()="æå" or item.ProductMajorType()="åæå", item.ID() ); |
| | | keyProductList := selectuniquevalues( globalOTDTable, Global_MappingProduct_MP, item, item.ProductMajorType()="æå" or item.ProductMajorType()="åæå", item.ID() ); |
| | | } |
| | | bomList := selectsortedset( this, MappingBOM, item, |
| | | bomList := selectsortedset( globalOTDTable, Global_MappingOperationBOM, item, |
| | | ifexpr( isnull( businessTypes ) or businessTypes.Size() = 0, |
| | | true, |
| | | // businessTypes.Difference( businessTypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0 ) |
| | |
| | | if( not isnull( stockingPoint)){ |
| | | if( isKeyProduct){ |
| | | keyRows := selectset( routingRows,Elements,routingrow,keyProductList.Find( routingrow.ComponentCode())>=0); |
| | | this.MappingOperationBOMDataRouting( routing,keyRows); |
| | | this.MappingOperationBOMDataRouting( routing,globalOTDTable,keyRows); |
| | | }else{ |
| | | this.MappingOperationBOMDataRouting( routing,routingRows); |
| | | this.MappingOperationBOMDataRouting( routing,globalOTDTable,routingRows); |
| | | } |
| | | |
| | | } |
| | |
| | | #parent: #root |
| | | Method MappingOperationBOMDataRouting ( |
| | | Routing routing, |
| | | MappingBOMs routingRows |
| | | GlobalOTDTable globalOTDTable, |
| | | Global_MappingOperationBOMs routingRows |
| | | ) |
| | | { |
| | | TextBody: |
| | |
| | | rows := selectset( routingRows, Elements, row, row.ProcessSection() = processSection ); |
| | | firstRow := rows.Element( 0 ); |
| | | // æ¾orgCode/productId/processSectionå¹é
ä¸sequenceæå°çä¸ç»æ°æ® |
| | | minSeq := MappingOperation::FindMinSeq( this, firstRow.OrganCode(), firstRow.ProductCode(), processSection ); |
| | | minSeq := Global_MappingOperation::FindMinSeq( globalOTDTable, firstRow.OrganCode(), firstRow.ProductCode(), processSection ); |
| | | routingStepId := processSection + "_" + [String]minSeq; |
| | | // æ¾å¯¹åºroutingStep |
| | | routingStep := RoutingStep::FindByName( routing, routingStepId ); |
| | |
| | | if( count - [Number](count/1000) * 1000 = 0 or count = totalcount ){ |
| | | info( "Now is dealing with the " + count.AsQUILL() + "OperationCost " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" ); |
| | | } |
| | | id := item.OrganCode() + "_" + item.ProductID() + "_" + item.ProcessSection() + "_" + item.Line(); |
| | | id := item.OrganCode() + "_" + item.ProductID() + "_" + item.ProcessSection(); |
| | | if( guard( item.Line(), "" ).Length() > 0 ) { |
| | | id := id + "_" + item.Line(); |
| | | } |
| | | operation := Operation::FindOperationTypeIndex( id ); |
| | | account := Account_MP::FindByName( this, "Operation cost" ); |
| | | isfromdb := false; |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method MappingOperationData ( |
| | | Strings businessTypes |
| | | Strings businessTypes, |
| | | GlobalOTDTable globalOTDTable |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // yypsybs Aug-18-2023 (created) |
| | | // è·åæåºçå¾
å¤çè®°å½ |
| | | toDealList := construct( MappingOperations ); |
| | | toDealList := construct( Global_MappingOperations ) ; |
| | | if( not isnull( businessTypes ) and businessTypes.Size() > 0 ) { |
| | | toDealList := selectsortedset( this, MappingOperation, item, |
| | | toDealList := selectsortedset( globalOTDTable, Global_MappingOperation, item, |
| | | businessTypes.Find( item.BusinessType() ) >= 0, |
| | | // businessTypes.Difference( businessTypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0, |
| | | item.SequenceNumber() ); |
| | | } else { |
| | | toDealList := selectsortedset( this, MappingOperation, item, |
| | | toDealList := selectsortedset( globalOTDTable, Global_MappingOperation, item, |
| | | true, |
| | | item.SequenceNumber() ); |
| | | } |
| | |
| | | 0.0, 0.0, false, true ); |
| | | } |
| | | |
| | | ManufactureLTProcessSection::CreateOrUpdate( op ); |
| | | // ManufactureLTProcessSection::CreateOrUpdate( op ); |
| | | } |
| | | info( "========" ) |
| | | // éåroutingï¼è¿è¡link |
| | |
| | | #parent: #root |
| | | Method MappingProductData ( |
| | | Strings businesstypes, |
| | | GlobalOTDTable globalOTDTable, |
| | | Boolean iskeyproduct |
| | | ) |
| | | { |
| | |
| | | // Administrator Aug-16-2023 (created) |
| | | // list to deal |
| | | info( "Get list to deal of product" ); |
| | | listToDeal := construct( structured[MappingProduct] ); |
| | | listToDeal := construct( Global_MappingProduct_MPs ); |
| | | |
| | | if( isnull( businesstypes ) or businesstypes.Size() = 0 ) { |
| | | if( iskeyproduct = true ){ |
| | | listToDeal := selectset( this, MappingProduct, item, item.KeyProduct() = true ); |
| | | listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, item.KeyProduct() = true ); |
| | | } |
| | | else{ |
| | | listToDeal := selectset( this, MappingProduct, item, true ); |
| | | listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, true ); |
| | | } |
| | | } else { |
| | | if( iskeyproduct = true ){ |
| | | listToDeal := selectset( this, MappingProduct, item, item.KeyProduct() = true and businesstypes.Find( item.BusinessType()) >= 0 ); |
| | | listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, item.KeyProduct() = true and businesstypes.Find( item.BusinessType()) >= 0 ); |
| | | } |
| | | else{ |
| | | listToDeal := selectset( this, MappingProduct, item, businesstypes.Find( item.BusinessType()) >= 0 ); |
| | | listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, businesstypes.Find( item.BusinessType()) >= 0 ); |
| | | } |
| | | } |
| | | totalcount := listToDeal.Size(); |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method MappingProductInLaneData |
| | | Method MappingProductInLaneData ( |
| | | GlobalOTDTable globalOTDTable |
| | | ) |
| | | { |
| | | Description: 'Get Product In Line data' |
| | | TextBody: |
| | | [* |
| | | // Administrator Aug-17-2023 (created) |
| | | // list to deal |
| | | listtodeal := selectset( this, MappingProductInLane, item ,true ); |
| | | listtodeal := selectset( globalOTDTable, Global_MappingProductInLane, item ,true ); |
| | | totalcount := listtodeal.Size(); |
| | | info( "ProductInLane has " + totalcount.AsQUILL() + " rows in total" ); |
| | | |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method MappingSalesSegmentData ( |
| | | Strings businessTypes |
| | | Strings businessTypes, |
| | | GlobalOTDTable globalOTDTable |
| | | ) |
| | | { |
| | | Description: 'ETLéå®é¨é¨' |
| | |
| | | [* |
| | | // yypsybs Aug-15-2023 (created) |
| | | // å¾
å¤çæ°æ® |
| | | listToDeal := construct( structured[MappingSalesSegment] ); |
| | | listToDeal := construct( Global_MappingSalesSegment_MPs ); |
| | | if( isnull( businessTypes ) or businessTypes.Size() = 0 ) { |
| | | listToDeal := selectset( this, MappingSalesSegment, item, true ); |
| | | listToDeal := selectset( globalOTDTable, Global_MappingSalesSegment_MP, item, true ); |
| | | } else { |
| | | listToDeal := selectset( this, MappingSalesSegment, item, businessTypes.Find( item.BusinessType() ) <> -1 ); |
| | | listToDeal := selectset( globalOTDTable, Global_MappingSalesSegment_MP, item, businessTypes.Find( item.BusinessType() ) <> -1 ); |
| | | } |
| | | //nameList := construct( structured[String] ); |
| | | //nameList := selectvalues( listToDeal, Elements, item, true, item.Name() ); |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method MappingUnitData ( |
| | | Strings businesstypes |
| | | Strings businesstypes, |
| | | GlobalOTDTable globalOTDTable |
| | | ) |
| | | { |
| | | Description: 'Get unit data from operation mapping' |
| | |
| | | [* |
| | | // Administrator Aug-21-2023 (created) |
| | | // list to deal |
| | | listtodeal := construct( structured[MappingOperation] ); |
| | | listtodeal := construct( Global_MappingOperations); |
| | | |
| | | if( isnull( businesstypes ) or businesstypes.Size() = 0 ) { |
| | | listtodeal := selectset( this, MappingOperation, item, true ); |
| | | listtodeal := selectset( globalOTDTable, Global_MappingOperation, item, true ); |
| | | } else { |
| | | listtodeal := selectset( this, MappingOperation, item, |
| | | listtodeal := selectset( globalOTDTable, Global_MappingOperation, item, |
| | | // businesstypes.Difference( businesstypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0 |
| | | businesstypes.Find( item.BusinessType() ) >= 0 |
| | | ); |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method MappingUnitOfMeasureData |
| | | Method MappingUnitOfMeasureData ( |
| | | GlobalOTDTable globalotdtable |
| | | ) |
| | | { |
| | | Description: 'ETLæ°æ®è½¬æ¨¡åæ°æ®' |
| | | TextBody: |
| | |
| | | //error( "multi default unit of measure" ) |
| | | } |
| | | |
| | | traverse( this, MappingUnitOfMeasure, item ) { |
| | | traverse( globalotdtable, Global_MappingUnitOfMeasure_MP, item ) { |
| | | UnitOfMeasure_MP::CreateOrUpdate( this, item.Name(), item.IsDefault() ); |
| | | } |
| | | *] |
| | |
| | | MacroPlan macroPlan, |
| | | String businessTypeStr, |
| | | Boolean isKeyProduct, |
| | | Boolean createPurchaseSupplyMaterial |
| | | Boolean createPurchaseSupplyMaterial, |
| | | GlobalOTDTable globalOTDTable |
| | | ) |
| | | { |
| | | Description: '忬¡åæ¥' |
| | |
| | | if( businessTypeStr.Length() > 0 ) { |
| | | businessTypes := businessTypeStr.Tokenize( ',' ); |
| | | } |
| | | MacroPlan::DoSync( macroPlan, businessTypes, isKeyProduct, createPurchaseSupplyMaterial ); |
| | | MacroPlan::DoSync( macroPlan, businessTypes, isKeyProduct, createPurchaseSupplyMaterial ,globalOTDTable); |
| | | *] |
| | | } |
| | |
| | | StaticMethod DoSync ( |
| | | MacroPlan macroPlan, |
| | | Boolean isKeyProduct, |
| | | Boolean createPurchaseSupplyMaterial |
| | | Boolean createPurchaseSupplyMaterial, |
| | | GlobalOTDTable globalOTDTable |
| | | ) |
| | | { |
| | | Description: '忬¡åæ¥' |
| | |
| | | [* |
| | | // yypsybs Aug-17-2023 (created) |
| | | businessTypes := construct( Strings ); |
| | | MacroPlan::DoSync( macroPlan, businessTypes, isKeyProduct, createPurchaseSupplyMaterial ); |
| | | MacroPlan::DoSync( macroPlan, businessTypes, isKeyProduct, createPurchaseSupplyMaterial ,globalOTDTable); |
| | | *] |
| | | } |
| | |
| | | MacroPlan macroPlan, |
| | | Strings businessTypes, |
| | | Boolean isKeyProduct, |
| | | Boolean createPurchaseSupplyMaterial |
| | | Boolean createPurchaseSupplyMaterial, |
| | | GlobalOTDTable globalOTDTable |
| | | ) |
| | | { |
| | | Description: '忬¡åæ¥' |
| | |
| | | macroPlan.InitialUnitAndStockingPoint(); |
| | | |
| | | // åä½-1 |
| | | UnitOfMeasure_MP::DoSync( macroPlan ); |
| | | UnitOfMeasure_MP::DoSync( globalOTDTable,macroPlan ); |
| | | |
| | | // éå®é¨é¨-2 |
| | | SalesSegment_MP::DoSync( macroPlan, businessTypes ); |
| | | SalesSegment_MP::DoSync( macroPlan, businessTypes,globalOTDTable ); |
| | | |
| | | // Unit-9 |
| | | // ä¸Operationä¸åå¤ç |
| | | //info( "BaseConversionFactor Finished, Start Operation Data Broker" ); |
| | | //macroPlan.Broker_OTD_Operation().Execute(); |
| | | info( "Operation Data Broker Finished, Start Unit Mapping" ); |
| | | macroPlan.MappingUnitData( businessTypes ,globalOTDTable); |
| | | |
| | | // åºåç¹-3 |
| | | info( "Sales Segment Finished, Start Get StockingPoint From Api" ) |
| | |
| | | macroPlan.ApiCurencyRatesData( data ); |
| | | |
| | | // 产åç©æ-6 |
| | | info( "Get CurrencyRates From Api Finished, Start Product Data Broker" ) |
| | | macroPlan.Broker_OTD_Product().Execute(); |
| | | //info( "Get CurrencyRates From Api Finished, Start Product Data Broker" ) |
| | | //macroPlan.Broker_OTD_Product().Execute(); |
| | | info( "Product Data Broker Finished, Start Product Mapping" ); |
| | | //testproduct := construct( Strings ); |
| | | macroPlan.MappingProductData( businessTypes, isKeyProduct ); |
| | | macroPlan.MappingProductData( businessTypes, globalOTDTable,isKeyProduct ); |
| | | |
| | | //åä½è½¬æ¢-7 |
| | | BaseConversionFactor::DoSync( macroPlan ); |
| | | |
| | | // Unit-9 |
| | | // ä¸Operationä¸åå¤ç |
| | | info( "BaseConversionFactor Finished, Start Operation Data Broker" ); |
| | | macroPlan.Broker_OTD_Operation().Execute(); |
| | | info( "Operation Data Broker Finished, Start Unit Mapping" ); |
| | | macroPlan.MappingUnitData( businessTypes ); |
| | | BaseConversionFactor::DoSync( macroPlan ,globalOTDTable); |
| | | |
| | | // å·¥èºè·¯çº¿ + BOM-9 |
| | | info( "Unit Finished, Start Operation Mapping" ); |
| | | macroPlan.MappingOperationData( businessTypes ); |
| | | info( "Operation Finished, Start BOM Data Broker" ); |
| | | macroPlan.Broker_OTD_BOM().Execute(); |
| | | macroPlan.MappingOperationData( businessTypes ,globalOTDTable); |
| | | //info( "Operation Finished, Start BOM Data Broker" ); |
| | | //macroPlan.Broker_OTD_BOM().Execute(); |
| | | info( "BOM Data Broker Finished, Start BOM Mapping" ); |
| | | macroPlan.MappingOperationBOMData( businessTypes, isKeyProduct, createPurchaseSupplyMaterial ); |
| | | macroPlan.MappingOperationBOMData( businessTypes, isKeyProduct, createPurchaseSupplyMaterial,globalOTDTable ); |
| | | |
| | | //车éä¿¡æ¯-10 |
| | | info( "BOM Finished, Start Get Lanes From Api" ); |
| | |
| | | macroPlan.ApiLaneLegsData( data ); |
| | | |
| | | // ä¾åºç½ç»ï¼è½¦éï¼-12 |
| | | info( "Get Lanelegs From Api Finished, Start ProductInLane Data Broker" ); |
| | | macroPlan.Broker_OTD_ProductInLane().Execute(); |
| | | //info( "Get Lanelegs From Api Finished, Start ProductInLane Data Broker" ); |
| | | //macroPlan.Broker_OTD_ProductInLane().Execute(); |
| | | info( "ProductInLane Data Broker Finished, Start ProductInLane Mapping" ); |
| | | macroPlan.MappingProductInLaneData(); |
| | | macroPlan.MappingProductInLaneData(globalOTDTable); |
| | | |
| | | // å¨åºåºåæ°æ®-13 |
| | | info( "ProductInLane Finished, Start ActualPISPIP Data Broker" ); |
| | | macroPlan.Broker_OTD_ActualPISPIP().Execute(); |
| | | //info( "ProductInLane Finished, Start ActualPISPIP Data Broker" ); |
| | | //macroPlan.Broker_OTD_ActualPISPIP().Execute(); |
| | | info( "ActualPISPIP Data Broker Finished, Start ActualPISPIP Mapping" ); |
| | | //macroPlan.MappingActualPISPIPData( businessTypes, true ); |
| | | macroPlan.MappingActualPISPIPData( businessTypes, isKeyProduct ); |
| | | macroPlan.MappingActualPISPIPData( businessTypes, globalOTDTable,isKeyProduct ); |
| | | |
| | | // å¨éåºå-14 |
| | | info( "ActualPISPIP Finished, Start ExternalSupply Data Broker" ); |
| | | macroPlan.Broker_OTD_ExternalSupply().Execute(); |
| | | //macroPlan.MappingExternalSupplyData( businessTypes, true ); |
| | | //info( "ActualPISPIP Finished, Start ExternalSupply Data Broker" ); |
| | | //macroPlan.Broker_OTD_ExternalSupply().Execute(); |
| | | info( "ExternalSupply Data Broker Finished, Start ExternalSupply Mapping" ); |
| | | macroPlan.MappingExternalSupplyData( businessTypes, isKeyProduct ); |
| | | macroPlan.MappingExternalSupplyData( businessTypes, isKeyProduct ,globalOTDTable); |
| | | |
| | | // åºåææ¬-15 |
| | | InventoryValueAndCost::DoSync( macroPlan ); |
| | | InventoryValueAndCost::DoSync( macroPlan,globalOTDTable ); |
| | | |
| | | // todo å¶é ææ¬-16 |
| | | info( "InventoryCost Finished, Start OperationCost Mapping" ); |
| | | //macroPlan.MappingOperationCostData( businessTypes ); |
| | | macroPlan.MappingOperationCostData( businessTypes ); |
| | | |
| | | // 订å颿µ-17 |
| | | Forecast::DoSync( macroPlan, businessTypes ); |
| | | Forecast::DoSync( macroPlan, businessTypes ,globalOTDTable); |
| | | |
| | | // 订åéæ±-18 |
| | | CustomerOrder::DoSync( macroPlan, businessTypes ); |
| | | CustomerOrder::DoSync( macroPlan, businessTypes, globalOTDTable); |
| | | |
| | | //å é¤å¤ä½æ¥éæ°æ®-19 |
| | | macroPlan.DeleteSnaityCheck(); |
| | |
| | | Description: '移交æ§å¶æ' |
| | | TextBody: |
| | | [* |
| | | // yypsybs Aug-25-2023 (created) |
| | | if( isnull( oldMP ) ) { |
| | | info( "========transfer ManufactureLTImputations to macroPlan " + [String]newMP.MDSID() + "========" ); |
| | | } else { |
| | | info( "========transfer ManufactureLTImputations from macroPlan " + [String]oldMP.MDSID() + " to macroPlan " + [String]newMP.MDSID() + "========" ); |
| | | } |
| | | // æ¸
空æ°çï¼èçå¤å¶å°æ°çï¼æ¸
空èç |
| | | if( not isnull( oldMP ) and not isnull( newMP ) ) { |
| | | info( "old ManufactureLTImputation size : " + [String]oldMP.ManufactureLTImputation( relsize ) ) |
| | | traverse( oldMP, ManufactureLTImputation, parent, true ) { |
| | | traverse( parent, ManufactureLTProcessSection, child, true ) { |
| | | ManufactureLTProcessSection::CreateOrUpdate( newMP, parent.OrgCode(), parent.SkuID(), parent.Describe(), |
| | | child.ProcessSection(), child.Sequence(), child.Line(), child.SystemLT(), |
| | | child.Edited(), child.EditLT(), child.Describe() ); |
| | | } |
| | | } |
| | | } |
| | | // å¤çæ°ççoperation |
| | | traverse( newMP, Routing.RoutingStep.Operation, item ) { |
| | | ManufactureLTProcessSection::CreateOrUpdate( item ); |
| | | } |
| | | //// yypsybs Aug-25-2023 (created) |
| | | //if( isnull( oldMP ) ) { |
| | | // info( "========transfer ManufactureLTImputations to macroPlan " + [String]newMP.MDSID() + "========" ); |
| | | //} else { |
| | | // info( "========transfer ManufactureLTImputations from macroPlan " + [String]oldMP.MDSID() + " to macroPlan " + [String]newMP.MDSID() + "========" ); |
| | | //} |
| | | //// æ¸
空æ°çï¼èçå¤å¶å°æ°çï¼æ¸
空èç |
| | | //if( not isnull( oldMP ) and not isnull( newMP ) ) { |
| | | // info( "old ManufactureLTImputation size : " + [String]oldMP.ManufactureLTImputation( relsize ) ) |
| | | // traverse( oldMP, ManufactureLTImputation, parent, true ) { |
| | | // traverse( parent, ManufactureLTProcessSection, child, true ) { |
| | | // ManufactureLTProcessSection::CreateOrUpdate( newMP, parent.OrgCode(), parent.SkuID(), parent.Describe(), |
| | | // child.ProcessSection(), child.Sequence(), child.Line(), child.SystemLT(), |
| | | // child.Edited(), child.EditLT(), child.Describe() ); |
| | | // } |
| | | // } |
| | | //} |
| | | //// å¤çæ°ççoperation |
| | | //traverse( newMP, Routing.RoutingStep.Operation, item ) { |
| | | // ManufactureLTProcessSection::CreateOrUpdate( item ); |
| | | //} |
| | | *] |
| | | } |
| | |
| | | line := operationNameSplit.Element( 2 ); |
| | | } |
| | | child := null( ManufactureLTProcessSection ); |
| | | if( orgCode <> "" and productId <> "" and processStep <> "" and sequence <> "" ) { |
| | | parent := ManufactureLTImputation::CreateOrUpdate( op.RoutingStep().Routing().MacroPlan(), orgCode, productId, "" ); |
| | | info( "DaysAsReal : " + [String]op.UserLeadTime().DaysAsReal() ); |
| | | child := ManufactureLTProcessSection::CreateOrUpdate( parent, processStep, false, sequence, line, op.UserLeadTime().DaysAsReal(), 0.0, "" ); |
| | | } |
| | | //if( orgCode <> "" and productId <> "" and processStep <> "" and sequence <> "" ) { |
| | | // parent := ManufactureLTImputation::CreateOrUpdate( op.RoutingStep().Routing().MacroPlan(), orgCode, productId, "" ); |
| | | // info( "DaysAsReal : " + [String]op.UserLeadTime().DaysAsReal() ); |
| | | // child := ManufactureLTProcessSection::CreateOrUpdate( parent, processStep, false, sequence, line, op.UserLeadTime().DaysAsReal(), 0.0, "" ); |
| | | //} |
| | | return child; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod ExpectedHeaders () as owning Strings |
| | | { |
| | | TextBody: |
| | | [* |
| | | // yypsybs Jun-30-2023 (created) |
| | | value := construct( structured[String] ); |
| | | value.Add( "å 餿 è®°" ); |
| | | value.Add( "年份" ); |
| | | value.Add( "ä¸å¡é¨é¨" ); |
| | | value.Add( "æ¾ç¤ºææ¯åç±»" ); |
| | | value.Add( "ä¸å¡åç±»" ); |
| | | value.Add( "产å线/产åè§æ ¼" ); |
| | | value.Add( "产åæå·" ); |
| | | value.Add( "Array产å°" ); |
| | | value.Add( "è¸é产å°" ); |
| | | value.Add( "å辨ç" ); |
| | | value.Add( "åºè´§å½¢æ" ); |
| | | value.Add( "å岿°" ); |
| | | value.Add( "产è½å½é" ); |
| | | value.Add( "maskæ°" ); |
| | | value.Add( "1æäº§è½(PCS)" ); |
| | | value.Add( "2æäº§è½(PCS)" ); |
| | | value.Add( "3æäº§è½(PCS)" ); |
| | | value.Add( "4æäº§è½(PCS)" ); |
| | | value.Add( "5æäº§è½(PCS)" ); |
| | | value.Add( "6æäº§è½(PCS)" ); |
| | | value.Add( "7æäº§è½(PCS)" ); |
| | | value.Add( "8æäº§è½(PCS)" ); |
| | | value.Add( "9æäº§è½(PCS)" ); |
| | | value.Add( "10æäº§è½(PCS)" ); |
| | | value.Add( "11æäº§è½(PCS)" ); |
| | | value.Add( "12æäº§è½(PCS)" ); |
| | | value.Add( "年产è½(PCS)" ); |
| | | value.Add( "1æäº§è½(宿°å¤§å¼ )" ); |
| | | value.Add( "2æäº§è½(宿°å¤§å¼ )" ); |
| | | value.Add( "3æäº§è½(宿°å¤§å¼ )" ); |
| | | value.Add( "4æäº§è½(宿°å¤§å¼ )" ); |
| | | value.Add( "5æäº§è½(宿°å¤§å¼ )" ); |
| | | value.Add( "6æäº§è½(宿°å¤§å¼ )" ); |
| | | value.Add( "7æäº§è½(宿°å¤§å¼ )" ); |
| | | value.Add( "8æäº§è½(宿°å¤§å¼ )" ); |
| | | value.Add( "9æäº§è½(宿°å¤§å¼ )" ); |
| | | value.Add( "10æäº§è½(宿°å¤§å¼ )" ); |
| | | value.Add( "11æäº§è½(宿°å¤§å¼ )" ); |
| | | value.Add( "12æäº§è½(宿°å¤§å¼ )" ); |
| | | value.Add( "年产è½(宿°å¤§å¼ )" ); |
| | | value.Add( "1æéå®é¢(W)" ); |
| | | value.Add( "2æéå®é¢(W)" ); |
| | | value.Add( "3æéå®é¢(W)" ); |
| | | value.Add( "4æéå®é¢(W)" ); |
| | | value.Add( "5æéå®é¢(W)" ); |
| | | value.Add( "6æéå®é¢(W)" ); |
| | | value.Add( "7æéå®é¢(W)" ); |
| | | value.Add( "8æéå®é¢(W)" ); |
| | | value.Add( "9æéå®é¢(W)" ); |
| | | value.Add( "10æéå®é¢(W)" ); |
| | | value.Add( "11æéå®é¢(W)" ); |
| | | value.Add( "12æéå®é¢(W)" ); |
| | | value.Add( "å¹´éå®é¢(W)" ); |
| | | return &value; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod Export ( |
| | | MPSync parent |
| | | ) as String |
| | | { |
| | | TextBody: |
| | | [* |
| | | // yypsybs Jul-1-2023 (created) |
| | | xmlTemplate := '<?xml version="1.0" encoding="UTF-16"?> |
| | | <table> |
| | | <name>MappingCapacityAndSaleBudge</name> |
| | | '; |
| | | //--------------------------------------------------------------------------------------------- |
| | | exportFields := MappingCapacityAndSaleBudge::ExportFields(); |
| | | exportHeaders := MappingCapacityAndSaleBudge::ExpectedHeaders(); |
| | | if( exportFields.Size() <> exportHeaders.Size() ) { |
| | | error( "fields and headers not match" ); |
| | | } |
| | | info( "export start" ); |
| | | for( i := 0; i < exportFields.Size() ; i++ ) { |
| | | header := exportHeaders.Element( i ); |
| | | fieldName := exportFields.Element( i ); |
| | | info( "header : " + header ) |
| | | info( "fieldName : " + fieldName ) |
| | | columnStr := "<column><name>" + header + "</name><type>String</type>"; |
| | | traverse( parent, MappingCapacityAndSaleBudge, oldRecord ) { |
| | | field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", fieldName); |
| | | if( not isnull( field ) ) { |
| | | fieldValue := ""; |
| | | if( fieldValue = "" ) { |
| | | fieldValue := guard( field.GetString( oldRecord ), "" ); |
| | | } |
| | | if( fieldValue = "" ) { |
| | | fieldValue := guard( [String]field.GetNumber( oldRecord ), "" ); |
| | | } |
| | | if( fieldValue = "" ) { |
| | | fieldValue := guard( [String]field.GetReal( oldRecord ), "" ); |
| | | } |
| | | if( fieldValue = "" ) { |
| | | fieldValue := guard( ifexpr( field.GetBoolean( oldRecord ), "Y", "N" ), "" ); |
| | | } |
| | | if( fieldValue = "" ) { |
| | | fileDateValue := guard( field.GetDate( oldRecord ), Date::MinDate() ); |
| | | if( fileDateValue <> Date::MinDate() ) { |
| | | conv := DateTimeToString::StandardConverter(); |
| | | conv.SetCustomConversion(); |
| | | conv.CustomFormatString( 'yyyyMMdd' ); |
| | | fieldValue := conv.Convert( fileDateValue.DateTime() ); |
| | | } |
| | | } |
| | | cellStr := '<cell value="' + fieldValue + '"/>'; |
| | | |
| | | columnStr := columnStr + cellStr; |
| | | } else { |
| | | error( "no field " + fieldName + " in type MappingCapacityAndSaleBudge"); |
| | | } |
| | | } |
| | | columnStr := columnStr + "</column>"; |
| | | xmlTemplate := xmlTemplate + columnStr; |
| | | } |
| | | //--------------------------------------------------------------------------------------------- |
| | | xmlTemplate := xmlTemplate + "</table>"; |
| | | info( xmlTemplate ); |
| | | tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTemplate ) ); |
| | | XLS::SaveTable( tableHandle, OS::TempPath() + "MappingCapacityAndSaleBudge.xlsx" ); |
| | | file := OSFile::Construct(); |
| | | file.Open( OS::TempPath() + "MappingCapacityAndSaleBudge.xlsx", "Read", true ); |
| | | data := file.ReadBinary() |
| | | info( "export end" ); |
| | | return data.AsBase64EncodedString(); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod ExportFields () as owning Strings |
| | | { |
| | | TextBody: |
| | | [* |
| | | // yypsybs Jun-30-2023 (created) |
| | | value := construct( structured[String] ); |
| | | value.Add( "Deleted" ); |
| | | value.Add( "YearNo" ); |
| | | value.Add( "OrgCode" ); |
| | | value.Add( "DisplayTechnology" ); |
| | | value.Add( "BusinessType" ); |
| | | value.Add( "LineAndSpecification" ); |
| | | value.Add( "ProductCode" ); |
| | | value.Add( "PlaceOfProductionOfArray" ); |
| | | value.Add( "PlaceOfProductionOfEvaporation" ); |
| | | value.Add( "Resolution" ); |
| | | value.Add( "ShippingForm" ); |
| | | value.Add( "NumberOfCut" ); |
| | | value.Add( "CapacityEquivalent" ); |
| | | value.Add( "NumberOfMask" ); |
| | | value.Add( "CapacityInPCSInMonth1" ); |
| | | value.Add( "CapacityInPCSInMonth2" ); |
| | | value.Add( "CapacityInPCSInMonth3" ); |
| | | value.Add( "CapacityInPCSInMonth4" ); |
| | | value.Add( "CapacityInPCSInMonth5" ); |
| | | value.Add( "CapacityInPCSInMonth6" ); |
| | | value.Add( "CapacityInPCSInMonth7" ); |
| | | value.Add( "CapacityInPCSInMonth8" ); |
| | | value.Add( "CapacityInPCSInMonth9" ); |
| | | value.Add( "CapacityInPCSInMonth10" ); |
| | | value.Add( "CapacityInPCSInMonth11" ); |
| | | value.Add( "CapacityInPCSInMonth12" ); |
| | | value.Add( "CapacityInPCSTotal" ); |
| | | value.Add( "CapacityInSheetInMonth1" ); |
| | | value.Add( "CapacityInSheetInMonth2" ); |
| | | value.Add( "CapacityInSheetInMonth3" ); |
| | | value.Add( "CapacityInSheetInMonth4" ); |
| | | value.Add( "CapacityInSheetInMonth5" ); |
| | | value.Add( "CapacityInSheetInMonth6" ); |
| | | value.Add( "CapacityInSheetInMonth7" ); |
| | | value.Add( "CapacityInSheetInMonth8" ); |
| | | value.Add( "CapacityInSheetInMonth9" ); |
| | | value.Add( "CapacityInSheetInMonth10" ); |
| | | value.Add( "CapacityInSheetInMonth11" ); |
| | | value.Add( "CapacityInSheetInMonth12" ); |
| | | value.Add( "CapacityInSheetTotal" ); |
| | | value.Add( "SaleAmountInMonth1" ); |
| | | value.Add( "SaleAmountInMonth2" ); |
| | | value.Add( "SaleAmountInMonth3" ); |
| | | value.Add( "SaleAmountInMonth5" ); |
| | | value.Add( "SaleAmountInMonth4" ); |
| | | value.Add( "SaleAmountInMonth6" ); |
| | | value.Add( "SaleAmountInMonth7" ); |
| | | value.Add( "SaleAmountInMonth8" ); |
| | | value.Add( "SaleAmountInMonth9" ); |
| | | value.Add( "SaleAmountInMonth10" ); |
| | | value.Add( "SaleAmountInMonth11" ); |
| | | value.Add( "SaleAmountInMonth12" ); |
| | | value.Add( "SaleAmountTotal" ); |
| | | return &value; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method GetHasValidOperationInputOutput ( |
| | | output Strings feedback_o, |
| | | output Strings sanitycheckfeedback_o |
| | | ) declarative remote #extension |
| | | { |
| | | TextBody: |
| | | [* |
| | | // desmondt Oct-3-2014 (created) |
| | | feedback := ''; |
| | | sanitycheckfeedback := '' |
| | | |
| | | if( ( this.Unit().QuantityToProcess() = GlobalParameters_MP::GetQTProcessIn() |
| | | or not this.Unit().IsSupplier() ) // Tianma change 20230925: If the unit is not a supplier, raise a data issue if there's no input |
| | | and this.OperationInput( relsize ) = 0 ) |
| | | { |
| | | feedback := Translations::MP_Operation_ViolateHasValidOperationInputOutput_NoOperationInput(); |
| | | sanitycheckfeedback_o.Add( SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue() ); |
| | | } |
| | | else if( this.Unit().QuantityToProcess() = GlobalParameters_MP::GetQTProcessOut() |
| | | and this.OperationOutput( relsize ) = 0 ) |
| | | { |
| | | feedback := Translations::MP_Operation_ViolateHasValidOperationInputOutput_NoOperationOutput(); |
| | | sanitycheckfeedback := SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue(); |
| | | } |
| | | |
| | | if( not isnull( feedback_o ) and feedback <> '' ) |
| | | { |
| | | name := MacroPlan::GetSubstituteName( this.Name() ); // To avoid empty name/name too long |
| | | feedback_o.Add( SanityCheckMessage::GetFormattedMessage( Translations::MP_Process_Instance( this.DefinitionName(), name ), |
| | | feedback ) ); |
| | | sanitycheckfeedback_o.Add( sanitycheckfeedback ); |
| | | } |
| | | |
| | | return feedback = ''; |
| | | *] |
| | | } |
| | |
| | | TextBody: |
| | | [* |
| | | // yypsybs Aug-25-2023 (created) |
| | | info( "Operation::OnCommitCustom" ) |
| | | ManufactureLTProcessSection::CreateOrUpdate( this ); |
| | | //info( "Operation::OnCommitCustom" ) |
| | | //ManufactureLTProcessSection::CreateOrUpdate( this ); |
| | | *] |
| | | } |
| | |
| | | #parent: #root |
| | | StaticMethod DoSync ( |
| | | MacroPlan macroPlan, |
| | | Strings businessTypes |
| | | Strings businessTypes, |
| | | GlobalOTDTable globalOTDTable |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // yypsybs Aug-17-2023 (created) |
| | | info( "UnitOfMeasure_MP Finished, Start Sales Segment Data Broker" ) |
| | | macroPlan.Broker_OTD_SalesSegment().Execute(); |
| | | //info( "UnitOfMeasure_MP Finished, Start Sales Segment Data Broker" ) |
| | | //macroPlan.Broker_OTD_SalesSegment().Execute(); |
| | | info( "Sales Segment Data Broker Finished, Start Sales Segment Mapping" ) |
| | | macroPlan.MappingSalesSegmentData( businessTypes ); |
| | | macroPlan.MappingSalesSegmentData( businessTypes,globalOTDTable ); |
| | | *] |
| | | } |
| | |
| | | #parent: #root |
| | | Method CapacityAndSaleBudgeChart ( |
| | | MacroPlans macroPlans, |
| | | Boolean isCapacity, |
| | | String saleOrCapacity, |
| | | String groupBy, |
| | | String byBusinessTypeOrByOrgCode, |
| | | CapacityAndSaleBudgeFilterBusinessTypes businessTypes, |
| | |
| | | [* |
| | | // yypsybs Sep-19-2023 (created) |
| | | // true, false |
| | | info( isCapacity ); |
| | | info( saleOrCapacity ); |
| | | // æ;å£åº¦;åå¹´;å¹´ |
| | | info( groupBy ); |
| | | // 颿¿åºå°;äºä¸é¨ |
| | |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-ç®æ ", |
| | | BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, |
| | | Quantity := ifexpr( isCapacity, |
| | | MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, year.YearNo() ), |
| | | MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, year.YearNo() ) ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, year.YearNo() ), |
| | | MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, year.YearNo() ) ) |
| | | ); |
| | | // S&OP |
| | | traverse( macroPlans, Elements, macroPlan ) { |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-" + macroPlan.ScenarioName(), |
| | | BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, |
| | | Quantity := ifexpr( isCapacity, |
| | | Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ), |
| | | MappingCustomerOrder::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingCustomerOrder::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ), |
| | | Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ) |
| | | ) |
| | | ); |
| | | } |
| | |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-" + ifexpr( halfNo = 1, "ä¸", "ä¸" ) + "åå¹´-ç®æ ", |
| | | BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, |
| | | Quantity := ifexpr( isCapacity, |
| | | MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ), |
| | | MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ) ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ), |
| | | MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ) ) |
| | | ); |
| | | // S&OP |
| | | traverse( macroPlans, Elements, macroPlan ) { |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-" + ifexpr( halfNo = 1, "ä¸", "ä¸" ) + "åå¹´-" + macroPlan.ScenarioName(), |
| | | BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, |
| | | Quantity := ifexpr( isCapacity, |
| | | Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ), |
| | | MappingCustomerOrder::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingCustomerOrder::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ), |
| | | Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ) |
| | | ) |
| | | ); |
| | | } |
| | |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-第" + [String]seasonNo + "å£åº¦-ç®æ ", |
| | | BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, |
| | | Quantity := ifexpr( isCapacity, |
| | | MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ), |
| | | MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ) ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ), |
| | | MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ) ) |
| | | ); |
| | | // info( "productCodeList : " + [String]productCodeList.Size() ); |
| | | // S&OP |
| | |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-第" + [String]seasonNo + "å£åº¦-" + macroPlan.ScenarioName(), |
| | | BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, |
| | | Quantity := ifexpr( isCapacity, |
| | | Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ), |
| | | MappingCustomerOrder::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingCustomerOrder::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ) , |
| | | Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ) |
| | | ) |
| | | ); |
| | | } |
| | |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-第" + monthNoString + "æ-ç®æ ", |
| | | BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, |
| | | Quantity := ifexpr( isCapacity, |
| | | MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ), |
| | | MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ) ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ), |
| | | MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ) ) |
| | | ); |
| | | // S&OP |
| | | traverse( macroPlans, Elements, macroPlan ) { |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-第" + monthNoString + "æ-" + macroPlan.ScenarioName(), |
| | | BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, |
| | | Quantity := ifexpr( isCapacity, |
| | | Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ), |
| | | MappingCustomerOrder::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingCustomerOrder::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ), |
| | | Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ) |
| | | ) |
| | | ); |
| | | } |
| | |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-ç®æ ", |
| | | BusinessTypeOrPlaceOfProductionOfArray := businessType, |
| | | Quantity := ifexpr( isCapacity, |
| | | MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, year.YearNo() ), |
| | | MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, year.YearNo() ) ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, year.YearNo() ), |
| | | MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, year.YearNo() ) ) |
| | | ); |
| | | // S&OP |
| | | traverse( macroPlans, Elements, macroPlan ) { |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-" + macroPlan.ScenarioName(), |
| | | BusinessTypeOrPlaceOfProductionOfArray := businessType, |
| | | Quantity := ifexpr( isCapacity, |
| | | Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ), |
| | | MappingCustomerOrder::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingCustomerOrder::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ) , |
| | | Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ) |
| | | ) |
| | | ); |
| | | } |
| | |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-" + ifexpr( halfNo = 1, "ä¸", "ä¸" ) + "åå¹´-ç®æ ", |
| | | BusinessTypeOrPlaceOfProductionOfArray := businessType, |
| | | Quantity := ifexpr( isCapacity, |
| | | MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ), |
| | | MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ) ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ), |
| | | MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ) ) |
| | | ); |
| | | // S&OP |
| | | traverse( macroPlans, Elements, macroPlan ) { |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-" + ifexpr( halfNo = 1, "ä¸", "ä¸" ) + "åå¹´-" + macroPlan.ScenarioName(), |
| | | BusinessTypeOrPlaceOfProductionOfArray := businessType, |
| | | Quantity := ifexpr( isCapacity, |
| | | Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ), |
| | | MappingCustomerOrder::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingCustomerOrder::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ) , |
| | | Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ) |
| | | ) |
| | | ); |
| | | } |
| | |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-第" + [String]seasonNo + "å£åº¦-ç®æ ", |
| | | BusinessTypeOrPlaceOfProductionOfArray := businessType, |
| | | Quantity := ifexpr( isCapacity, |
| | | MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ), |
| | | MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ) ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ), |
| | | MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ) ) |
| | | ); |
| | | // S&OP |
| | | traverse( macroPlans, Elements, macroPlan ) { |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-第" + [String]seasonNo + "å£åº¦-" + macroPlan.ScenarioName(), |
| | | BusinessTypeOrPlaceOfProductionOfArray := businessType, |
| | | Quantity := ifexpr( isCapacity, |
| | | Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ), |
| | | MappingCustomerOrder::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingCustomerOrder::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ), |
| | | Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ) |
| | | ) |
| | | ); |
| | | } |
| | |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-第" + monthNoString + "æ-ç®æ ", |
| | | BusinessTypeOrPlaceOfProductionOfArray := businessType, |
| | | Quantity := ifexpr( isCapacity, |
| | | MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ), |
| | | MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ) ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ), |
| | | MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ) ) |
| | | ); |
| | | // S&OP |
| | | traverse( macroPlans, Elements, macroPlan ) { |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year.YearNo() + "å¹´-第" + monthNoString + "æ-" + macroPlan.ScenarioName(), |
| | | BusinessTypeOrPlaceOfProductionOfArray := businessType, |
| | | Quantity := ifexpr( isCapacity, |
| | | Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ), |
| | | MappingCustomerOrder::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingCustomerOrder::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ) , |
| | | Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ) |
| | | ) |
| | | ); |
| | | } |
| | |
| | | #parent: #root |
| | | Method CapacityAndSaleBudgeChart ( |
| | | MacroPlans macroPlans, |
| | | Boolean isCapacity, |
| | | String saleOrCapacity, |
| | | String groupBy, |
| | | String byBusinessTypeOrByOrgCode, |
| | | String businessTypeChosen, |
| | |
| | | [* |
| | | // yypsybs Sep-19-2023 (created) |
| | | // true, false |
| | | info( isCapacity ); |
| | | info( saleOrCapacity ); |
| | | // æ;å£åº¦;åå¹´;å¹´ |
| | | info( groupBy ); |
| | | // 颿¿åºå°;äºä¸é¨ |
| | |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year + "å¹´-ç®æ ", |
| | | BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, |
| | | Quantity := ifexpr( isCapacity, |
| | | MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, [Number]year ), |
| | | // todo QID 23 |
| | | MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, [Number]year ) ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, [Number]year ), |
| | | MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, [Number]year ) ) |
| | | ); |
| | | // S&OP |
| | | traverse( macroPlans, Elements, macroPlan ) { |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year + "å¹´-" + macroPlan.ScenarioName(), |
| | | BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, |
| | | Quantity := ifexpr( isCapacity, |
| | | Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, [Number]year ), |
| | | // todo |
| | | 0.0 ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | 0.0, |
| | | Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, [Number]year ) ) |
| | | ); |
| | | } |
| | | } |
| | |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year + "å¹´-" + ifexpr( halfNo = 1, "ä¸", "ä¸" ) + "åå¹´-ç®æ ", |
| | | BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, |
| | | Quantity := ifexpr( isCapacity, |
| | | MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ), |
| | | MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ) ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ), |
| | | MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ) ) |
| | | ); |
| | | // S&OP |
| | | traverse( macroPlans, Elements, macroPlan ) { |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year + "å¹´-" + ifexpr( halfNo = 1, "ä¸", "ä¸" ) + "åå¹´-" + macroPlan.ScenarioName(), |
| | | BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, |
| | | Quantity := ifexpr( isCapacity, |
| | | Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, [Number]year, halfNo ), |
| | | 0.0 ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | 0.0, |
| | | Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, [Number]year, halfNo ) ) |
| | | ); |
| | | } |
| | | } |
| | |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year + "å¹´-第" + [String]seasonNo + "å£åº¦-ç®æ ", |
| | | BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, |
| | | Quantity := ifexpr( isCapacity, |
| | | MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ), |
| | | MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ) ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ), |
| | | MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ) ) |
| | | ); |
| | | // info( "productCodeList : " + [String]productCodeList.Size() ); |
| | | // S&OP |
| | |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year + "å¹´-第" + [String]seasonNo + "å£åº¦-" + macroPlan.ScenarioName(), |
| | | BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, |
| | | Quantity := ifexpr( isCapacity, |
| | | Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, [Number]year, seasonNo ), |
| | | 0.0 ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | 0.0, |
| | | Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, [Number]year, seasonNo ) ) |
| | | ); |
| | | } |
| | | } |
| | |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year + "å¹´-第" + monthNoString + "æ-ç®æ ", |
| | | BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, |
| | | Quantity := ifexpr( isCapacity, |
| | | MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ), |
| | | MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ) ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ), |
| | | MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ) ) |
| | | ); |
| | | // S&OP |
| | | traverse( macroPlans, Elements, macroPlan ) { |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year + "å¹´-第" + monthNoString + "æ-" + macroPlan.ScenarioName(), |
| | | BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, |
| | | Quantity := ifexpr( isCapacity, |
| | | Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, [Number]year, monthNo ), |
| | | 0.0 ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | 0.0, |
| | | Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, [Number]year, monthNo ) ) |
| | | ); |
| | | } |
| | | } |
| | |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year + "å¹´-ç®æ ", |
| | | BusinessTypeOrPlaceOfProductionOfArray := businessType, |
| | | Quantity := ifexpr( isCapacity, |
| | | MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, [Number]year ), |
| | | MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, [Number]year ) ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, [Number]year ), |
| | | MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, [Number]year ) ) |
| | | ); |
| | | // S&OP |
| | | traverse( macroPlans, Elements, macroPlan ) { |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year + "å¹´-" + macroPlan.ScenarioName(), |
| | | BusinessTypeOrPlaceOfProductionOfArray := businessType, |
| | | Quantity := ifexpr( isCapacity, |
| | | Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, [Number]year ), |
| | | 0.0 ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | 0.0, |
| | | Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, [Number]year ) ) |
| | | ); |
| | | } |
| | | } |
| | |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year + "å¹´-" + ifexpr( halfNo = 1, "ä¸", "ä¸" ) + "åå¹´-ç®æ ", |
| | | BusinessTypeOrPlaceOfProductionOfArray := businessType, |
| | | Quantity := ifexpr( isCapacity, |
| | | MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ), |
| | | MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ) ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ), |
| | | MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ) ) |
| | | ); |
| | | // S&OP |
| | | traverse( macroPlans, Elements, macroPlan ) { |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year + "å¹´-" + ifexpr( halfNo = 1, "ä¸", "ä¸" ) + "åå¹´-" + macroPlan.ScenarioName(), |
| | | BusinessTypeOrPlaceOfProductionOfArray := businessType, |
| | | Quantity := ifexpr( isCapacity, |
| | | Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, [Number]year, halfNo ), |
| | | 0.0 ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | 0.0, |
| | | Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, [Number]year, halfNo ) ) |
| | | ); |
| | | } |
| | | } |
| | |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year + "å¹´-第" + [String]seasonNo + "å£åº¦-ç®æ ", |
| | | BusinessTypeOrPlaceOfProductionOfArray := businessType, |
| | | Quantity := ifexpr( isCapacity, |
| | | MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ), |
| | | MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ) ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ), |
| | | MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ) ) |
| | | ); |
| | | // S&OP |
| | | traverse( macroPlans, Elements, macroPlan ) { |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year + "å¹´-第" + [String]seasonNo + "å£åº¦-" + macroPlan.ScenarioName(), |
| | | BusinessTypeOrPlaceOfProductionOfArray := businessType, |
| | | Quantity := ifexpr( isCapacity, |
| | | Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, [Number]year, seasonNo ), |
| | | 0.0 ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | 0.0, |
| | | Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, [Number]year, seasonNo ) ) |
| | | ); |
| | | } |
| | | } |
| | |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year + "å¹´-第" + monthNoString + "æ-ç®æ ", |
| | | BusinessTypeOrPlaceOfProductionOfArray := businessType, |
| | | Quantity := ifexpr( isCapacity, |
| | | MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ), |
| | | MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ) ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ), |
| | | MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ) ) |
| | | ); |
| | | // S&OP |
| | | traverse( macroPlans, Elements, macroPlan ) { |
| | | this.CapacityAndSaleBudgeChartElement( relnew, |
| | | TimeStringAndScenarioName := [String]year + "å¹´-第" + monthNoString + "æ-" + macroPlan.ScenarioName(), |
| | | BusinessTypeOrPlaceOfProductionOfArray := businessType, |
| | | Quantity := ifexpr( isCapacity, |
| | | Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, [Number]year, monthNo ), |
| | | 0.0 ) |
| | | Quantity := ifexpr( saleOrCapacity = "éå®é¢", |
| | | 0.0, |
| | | Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, [Number]year, monthNo ) ) |
| | | ); |
| | | } |
| | | } |
| | |
| | | info( "dealing 颿¿åé
é" ) |
| | | if( CapacityAndSaleBudgeFilterItem::Contains( items, "颿¿åé
é" ) ) { |
| | | traverse( years, Elements, year ) { |
| | | info( "颿¿åé
é" + [String]year.YearNo() + "å¹´" ); |
| | | // å岿°æ® |
| | | info( "颿¿åé
é" + [String]year.YearNo() + "å¹´å岿°æ®" ); |
| | | traverse( months, Elements, month ) { |
| | | columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "颿¿åé
é-" + [String]year.YearNo() + "å¹´-" + [String]month.MonthNo() + "æ-年度é¢ç®" ); |
| | | traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | |
| | | cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); |
| | | } |
| | | info( "颿¿åé
é" + [String]year.YearNo() + "å¹´S&OPæ°æ®" ); |
| | | // S&OPæ°æ® |
| | | traverse( macroPlans, Elements, macroPlan ) { |
| | | traverse( months, Elements, month ) { |
| | |
| | | info( "dealing éå®é¢" ) |
| | | if( CapacityAndSaleBudgeFilterItem::Contains( items, "éå®é¢" ) ) { |
| | | traverse( years, Elements, year ) { |
| | | info( "éå®é¢" + [String]year.YearNo() + "å¹´" ); |
| | | // å岿°æ® |
| | | info( "éå®é¢" + [String]year.YearNo() + "å¹´å岿°æ®" ); |
| | | traverse( months, Elements, month ) { |
| | | columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对å¤éå®é¢-" + [String]year.YearNo() + "å¹´-" + [String]month.MonthNo() + "æ-年度é¢ç®" ); |
| | | traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | |
| | | cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); |
| | | } |
| | | info( "éå®é¢" + [String]year.YearNo() + "å¹´å岿°æ®S&OPæ°æ®" ); |
| | | // S&OPæ°æ® |
| | | traverse( macroPlans, Elements, macroPlan ) { |
| | | traverse( months, Elements, month ) { |
| | |
| | | info( "dealing å¤§å¼ çå©é¢" ) |
| | | traverse( years, Elements, year ) { |
| | | // å岿°æ® |
| | | columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "å¤§å¼ çå©é¢-年度é¢ç®" ); |
| | | columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "å¤§å¼ çå©é¢-" + [String]year.YearNo() + "å¹´-年度é¢ç®" ); |
| | | traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | | // todo |
| | | // QID 23 |
| | |
| | | } |
| | | // S&OPæ°æ® |
| | | traverse( macroPlans, Elements, macroPlan ) { |
| | | columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "å¤§å¼ çå©é¢-" + [String]year.YearNo() + "å¹´" ); |
| | | columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "å¤§å¼ çå©é¢-" + [String]year.YearNo() + "å¹´-" + macroPlan.ScenarioName() ); |
| | | traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | | cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); |
| | |
| | | info( "dealing 产åçå©é¢" ) |
| | | traverse( years, Elements, year ) { |
| | | // å岿°æ® |
| | | columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "产åçå©é¢-年度é¢ç®" ); |
| | | columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "产åçå©é¢-" + [String]year.YearNo() + "å¹´-年度é¢ç®" ); |
| | | traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | | // todo |
| | | // QID 23 |
| | | cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); |
| | | } |
| | | // S&OPæ°æ® |
| | | traverse( macroPlans, Elements, macroPlan ) { |
| | | columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "产åçå©é¢-" + [String]year.YearNo() + "å¹´" ); |
| | | columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "产åçå©é¢-" + [String]year.YearNo() + "å¹´-" + macroPlan.ScenarioName() ); |
| | | traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | | // todo |
| | | cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method CapacityAndSaleBudgeCompareExport () as BinaryValue |
| | | { |
| | | Description: 'å¯¼åºæ¯è¾ç»æ' |
| | | TextBody: |
| | | [* |
| | | // yypsybs Sep-22-2023 (created) |
| | | tableName := "年度产éé¢ç®å¯¹æ¯"; |
| | | |
| | | text:= '<?xml version="1.0" encoding="utf-8" standalone="yes"?><table><name>' + tableName + '</name>'; |
| | | |
| | | // å¤çcolumn <column><name>ç©æç¼ç </name><type>String</type></column> |
| | | columnXml := "" |
| | | traverse( this, CapacityAndSaleBudgeCompareItemColumn, column ) { |
| | | info( "columnName : " + column.ColumnName() ); |
| | | columnXml := columnXml + "<column><name>" + column.ColumnName() + "</name><type>String</type></column>"; |
| | | } |
| | | text := text + columnXml + "</table>" |
| | | |
| | | // å¡å
容 |
| | | xmlDOMImplementation := XMLDOMImplementation::Create(); |
| | | xmlDOMDocument := xmlDOMImplementation.CreateDocumentFromString( text ); |
| | | tableElement:= xmlDOMDocument.GetElementByTagName( "table", 0 ); |
| | | rows := selectsortedset( this, CapacityAndSaleBudgeCompareItemRow, row, row.PlaceOfProductionOfArray() + "_" + row.BusinessType() ); |
| | | traverse ( rows, Elements, row ) { |
| | | info( "rowNo : " + [String]row.RowNo() ); |
| | | traverse( row, CapacityAndSaleBudgeCompareItemCell, cell ) { |
| | | ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, cell.CellContent(), cell.CapacityAndSaleBudgeCompareItemColumn().ColumnName() ); |
| | | } |
| | | } |
| | | xmlDOMSerializer := xmlDOMImplementation.CreateSerializer(); |
| | | xmlTableString := xmlDOMSerializer.WriteToString( xmlDOMDocument ); |
| | | |
| | | tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTableString ) ); |
| | | tableGroupHandle := TableGroupHandle::Create( tableName ); |
| | | tableGroupHandle.Add( tableHandle ); |
| | | tableBinaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true ); |
| | | |
| | | return tableBinaryData.AsBinaryValue(); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod GeneratesTheSpecifiedXMLColumn ( |
| | | XMLDOMDocument xmlDOMDocument, |
| | | XMLDOMElement tableElement, |
| | | String value, |
| | | String columnName |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | columnElements := tableElement.GetElementsByTagName( "column" ); |
| | | |
| | | traverse ( columnElements, Elements, ce ) { |
| | | nameElement := ce.GetElementByTagName( "name", 0 ); |
| | | if ( nameElement.TextContent() = columnName ) { |
| | | cell := xmlDOMDocument.CreateElement( "cell" ); |
| | | cell.SetAttribute( "value", value ); |
| | | ce.AppendChild( cell ); |
| | | } |
| | | } |
| | | *] |
| | | } |
| | |
| | | // Update |
| | | result.Update( unitid, id, name, unitofmeasurename, currencyname, isplannedinfinite, datestart, dateend, groupname, description, isfromdb ); |
| | | }; |
| | | |
| | | result.IsPlannedInfinite(true); |
| | | return result; |
| | | *] |
| | | } |
| | |
| | | unitid := datarow.Get( "unitid" ).GetString(); |
| | | name := datarow.Get( "name" ).GetString(); |
| | | |
| | | unit := Unit::FindUnitTypeIndex( unitid); |
| | | if( isnull( unit)){ |
| | | unitid := "ç产"; |
| | | } |
| | | |
| | | result := StockingPoint_MP::CreateStockingpoint( mp, id, unitid, name ); |
| | | |
| | | return result; |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod DoSync ( |
| | | MacroPlan macroPlan |
| | | GlobalOTDTable globalotdtable, |
| | | MacroPlan macroplan |
| | | ) |
| | | { |
| | | Description: '忬¡åæ¥' |
| | | TextBody: |
| | | [* |
| | | // yypsybs Aug-17-2023 (created) |
| | | info( "Inital Finished, Start UnitOfMeasure_MP Data Broker" ) |
| | | macroPlan.Broker_OTD_UnitOfMeasure().Execute(); |
| | | //info( "Inital Finished, Start UnitOfMeasure_MP Data Broker" ) |
| | | //macroPlan.Broker_OTD_UnitOfMeasure().Execute(); |
| | | info( "UnitOfMeasure_MP Data Broker Finished, Start UnitOfMeasure_MP Mapping" ) |
| | | macroPlan.MappingUnitOfMeasureData(); |
| | | macroplan.MappingUnitOfMeasureData(globalotdtable); |
| | | *] |
| | | } |
| | |
| | | #keys: '[414702.0.340554926]' |
| | | Body: |
| | | [* |
| | | CapacityAllocationResults::CreateDate( GlobalOTDTable, MacroPlan ); |
| | | CapacityAllocationResults::CreateDate( GlobalOTDTable, MacroPlan, SelectionScenario.Data() ); |
| | | *] |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_GUIButtonBase_OnClick' |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component abgTest |
| | | { |
| | | #keys: '[414702.0.358311816]' |
| | | BaseType: 'WebActionBarGroup' |
| | | Children: |
| | | [ |
| | | Component btnTest |
| | | { |
| | | #keys: '[414702.0.358311907]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'WATER_FISH' |
| | | Label: 'æµè¯è§å¾' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 4 |
| | | Title: 'TestView' |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component applicationDevelopmentActionBarPageDef id:applicationDevelopmentActionBarPageDef_1 #extension |
| | | { |
| | | Children: |
| | | [ |
| | | #child: abgTest |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: abgTest/btnTest |
| | | Response OnClick () id:Response_TIANMA_JITUAN_abgTest_btnTest_OnClick |
| | | { |
| | | #keys: '[414702.0.358346189]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | GroupServerCalls: true |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | ApplicationScope.ViewManager().ResetUserViewById( "Test", true ); |
| | | *] |
| | | } |
| | | } |
| | |
| | | [ |
| | | #child: ActionBarPageData |
| | | #child: ActionBarPageSales |
| | | #child: applicationDevelopmentActionBarPageDef_1 |
| | | ] |
| | | } |
| | | Component DataHolderCapacityAndSaleBudgeFilterItem |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component pnlActions |
| | | { |
| | | #keys: '[414702.0.373821470]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component btnOk |
| | | { |
| | | #keys: '[414702.0.373821474]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Label: 'OK' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | Component btnCancel |
| | | { |
| | | #keys: '[414702.0.373821476]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Label: 'Cancel' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Alignment: 'trailing' |
| | | Border: true |
| | | ExcludeFromActiveComponent: true |
| | | FixedSize: true |
| | | Orientation: 'horizontal' |
| | | Padding: 'true' |
| | | Style: 'footer' |
| | | Taborder: 1 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component pnlContent |
| | | { |
| | | #keys: '[414702.0.373821468]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component efPanelMaterialCode |
| | | { |
| | | #keys: '[414702.0.375722232]' |
| | | BaseType: 'WebEditField' |
| | | Properties: |
| | | [ |
| | | DataBinding: 'DataHolderDialogData.Data.PanelMaterialCode' |
| | | Label: '颿¿ç©æç¼ç ' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | Component efModuleMaterialCode |
| | | { |
| | | #keys: '[414702.0.375722245]' |
| | | BaseType: 'WebEditField' |
| | | Properties: |
| | | [ |
| | | DataBinding: 'DataHolderDialogData.Data.ModuleMaterialCode' |
| | | Label: '模æ¿äº§æåID' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | Component efDivision |
| | | { |
| | | #keys: '[414702.0.375722257]' |
| | | BaseType: 'WebEditField' |
| | | Properties: |
| | | [ |
| | | DataBinding: 'DataHolderDialogData.Data.Division' |
| | | Label: 'äºä¸é¨' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | Component efStockingPointID |
| | | { |
| | | #keys: '[414702.0.375874061]' |
| | | BaseType: 'WebEditField' |
| | | Properties: |
| | | [ |
| | | DataBinding: 'DataHolderDialogData.Data.StockingPointID' |
| | | Label: '模ç»äº§æååºåç¹ID' |
| | | Taborder: 3 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Padding: 'true' |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method Edit ( |
| | | CapacityAllocationResultsRuleConfiguration selection |
| | | ) id:Method_DialogCreateEditCapacityAllocationResultsRuleConfiguration_Edit |
| | | { |
| | | #keys: '[414702.0.375759040]' |
| | | Body: |
| | | [* |
| | | // Edits assumption |
| | | data := shadow( selection ); |
| | | |
| | | DataHolderDialogData.Data( &data ); |
| | | |
| | | ApplicationMacroPlanner.ShowFormModal( this ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method New () id:Method_DialogCreateEditCapacityAllocationResultsRuleConfiguration_New |
| | | { |
| | | #keys: '[414702.0.375317354]' |
| | | Body: |
| | | [* |
| | | capacityAllocationResultsRuleConfiguration := GlobalOTDTable.CapacityAllocationResultsRuleConfiguration( relshadow ); |
| | | |
| | | DataHolderDialogData.Data( &capacityAllocationResultsRuleConfiguration ); |
| | | |
| | | ApplicationMacroPlanner.ShowFormModal( this ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: pnlActions/btnCancel |
| | | Response OnClick () id:Response_pnlActions_btnCancel_OnClick |
| | | { |
| | | #keys: '[414702.0.373821480]' |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | GroupServerCalls: true |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | Form.Close(); |
| | | *] |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: pnlActions/btnOk |
| | | Response OnClick () id:Response_pnlActions_btnOk_OnClick |
| | | { |
| | | #keys: '[414702.0.373821479]' |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | Form.ApplyChanges(); |
| | | |
| | | data := DataHolderDialogData.Data().WrappedInstance(); |
| | | if ( isnull( data ) ) { |
| | | GlobalOTDTable.CapacityAllocationResultsRuleConfiguration( relnew, |
| | | PanelMaterialCode := efPanelMaterialCode.Text(), |
| | | ModuleMaterialCode := efModuleMaterialCode.Text(), |
| | | Division := efDivision.Text(), |
| | | StockingPointID := efStockingPointID.Text() |
| | | ); |
| | | } else { |
| | | DataHolderDialogData.Data().PanelMaterialCode( efPanelMaterialCode.Text() ); |
| | | DataHolderDialogData.Data().ModuleMaterialCode( efModuleMaterialCode.Text() ); |
| | | DataHolderDialogData.Data().Division( efDivision.Text() ); |
| | | DataHolderDialogData.Data().StockingPointID( efStockingPointID.Text() ); |
| | | DataHolderDialogData.Data().Commit(); |
| | | } |
| | | |
| | | |
| | | Form.Close(); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: MacroPlannerWebApp |
| | | OrphanComponent DialogCreateEditCapacityAllocationResultsRuleConfiguration |
| | | { |
| | | #keys: '[414702.0.373821466]' |
| | | BaseType: 'WebForm' |
| | | Children: |
| | | [ |
| | | #child: pnlContent |
| | | #child: pnlActions |
| | | Component DataHolderDialogData |
| | | { |
| | | #keys: '[414702.0.375413793]' |
| | | BaseType: 'WebDataHolder' |
| | | Databinding: 'shadow[CapacityAllocationResultsRuleConfiguration]*' |
| | | Properties: |
| | | [ |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Alignment: 'trailing' |
| | | EnterButton: 'btnOk' |
| | | EscapeButton: 'btnCancel' |
| | | ExcludeFromActiveComponent: true |
| | | Image: 'BEAR' |
| | | Padding: 'false' |
| | | ] |
| | | } |
| | |
| | | // sync data |
| | | if( data.EnableSync() ) { |
| | | MacroPlan::DoSync( macroPlanNew, |
| | | data.BusinessType(), data.IsKeyProduct(), data.CreatePurchaseSupplyMaterial() ); |
| | | data.BusinessType(), data.IsKeyProduct(), data.CreatePurchaseSupplyMaterial() ,GlobalOTDTable); |
| | | } |
| | | |
| | | this.Close(); |
| | |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderCode","title":"OrderCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderDateTime","title":"OrderDateTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderDateTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderQty","title":"OrderQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastHitQty","title":"ForecastHitQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastNoHitQty","title":"ForecastNoHitQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastNoHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"Unit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"CustomerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerCode","title":"CustomerCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerCode"}}]' |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderCode","title":"订åç¼å·","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKUç¼ç ","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderQty","title":"æ°é","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderDateTime","title":"éæ±æ¶é´","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderDateTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastHitQty","title":"æé¢æµ","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastNoHitQty","title":"æ 颿µ","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastNoHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"åä½","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"客æ·åç§°","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerCode","title":"客æ·ID","subtotals":"","tooltip":"","width":-1,"display":"hidden","editable":false,"attribute":"CustomerCode"}}]' |
| | | ContextMenu: 'listContextMenu108' |
| | | SortCriteria: 'OperateTime' |
| | | Taborder: 2 |
| | |
| | | Quintiq file version 2.0 |
| | | Component ListCapacityAllocationResults |
| | | { |
| | | #keys: '[414702.0.338762075]' |
| | | #keys: '[414702.0.390053833]' |
| | | BaseType: 'WebList' |
| | | Children: |
| | | [ |
| | | Component DataExtractorCapacityAllocationResults |
| | | { |
| | | #keys: '[414702.0.338762076]' |
| | | #keys: '[414702.0.390053834]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'GlobalOTDTable' |
| | | Source: 'GlobalOTDTable' |
| | | DataType: 'structured[CapacityAllocationResultsRuleConfiguration]' |
| | | Source: 'FormCapacityAllocationResultsRuleConfiguration.DataHolderSelectCapacityAllocationResultsRuleConfiguration' |
| | | Taborder: 0 |
| | | Transformation: 'CapacityAllocationResults' |
| | | Transformation: 'Elements.CapacityAllocationResults' |
| | | ] |
| | | } |
| | | #child: listActionBarPageCapacityAllocationResults |
| | | Component DataSetLevelCapacityAllocationResults |
| | | { |
| | | #keys: '[414702.0.338762081]' |
| | | #keys: '[414702.0.390053839]' |
| | | BaseType: 'WebDataSetLevel' |
| | | Children: |
| | | [ |
| | |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"VersionNumber","title":"VersionNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"VersionNumber"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMeasurementUnit","title":"PanelMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMaterialCode","title":"PanelMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfPanels","title":"NumberOfPanels","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfPanels"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMeasurementUnit","title":"PanelMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMaterialCode","title":"ModuleMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ModuleMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfModules","title":"NumberOfModules","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfModules"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMeasurementUnit","title":"ModuleMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ModuleMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMeasurementUnit","title":"ModuleMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ModuleMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Division","title":"Division","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Division"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"RequirementDate","title":"RequirementDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"RequirementDate"}}]' |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Date","title":"Date","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Date"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Description","title":"Description","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Description"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UserQuantity","title":"UserQuantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UserQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ManufacturedDate","title":"ManufacturedDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ManufacturedDate"}}]' |
| | | ContextMenu: 'listContextMenuCapacityAllocationResults' |
| | | Taborder: 2 |
| | | ] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelCapacityAllocationResults |
| | | { |
| | | #keys: '[414702.0.391687385]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component ButtonGenerateCapacityAllocationResults id:ButtonGenerateCapacityAllocationResults_570 |
| | | { |
| | | #keys: '[414702.0.391717497]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'PROCESS' |
| | | Label: 'çææ°æ®' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | Component Export id:Export_398 |
| | | { |
| | | #keys: '[414702.0.392048461]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'EXPORT1' |
| | | Label: '导åº' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | FixedSize: true |
| | | Orientation: 'horizontal' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | |
| | | Quintiq file version 2.0 |
| | | Component listActionBarPageCapacityAllocationResults |
| | | { |
| | | #keys: '[414702.0.338762078]' |
| | | #keys: '[414702.0.390053836]' |
| | | BaseType: 'listActionBarPage' |
| | | Properties: |
| | | [ |
| | |
| | | Quintiq file version 2.0 |
| | | Component listContextMenuCapacityAllocationResults |
| | | { |
| | | #keys: '[414702.0.338762083]' |
| | | #keys: '[414702.0.390053841]' |
| | | BaseType: 'listContextMenu' |
| | | Properties: |
| | | [ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: PanelCapacityAllocationResults/ButtonGenerateCapacityAllocationResults_570 |
| | | Response OnClick () id:Response_FormCapacityAllocationResults_ButtonGenerateCapacityAllocationResults_OnClick_39 |
| | | { |
| | | #keys: '[414702.0.391717496]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | CapacityAllocationResults::CreateDate( GlobalOTDTable, MacroPlan, DataHolderActiveScenario.Data() ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: PanelCapacityAllocationResults/Export_398 |
| | | Response OnClick () id:Response_PanelCapacityAllocationResults_Export_OnClick |
| | | { |
| | | #keys: '[414702.0.391791234]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | Application.Download( "产è½åé
ç»æ.xlsx", CapacityAllocationResults::Export( GlobalOTDTable ).AsBinaryData() ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
| | |
| | | Children: |
| | | [ |
| | | #child: ListCapacityAllocationResults |
| | | Component ButtonGenerateCapacityAllocationResults |
| | | { |
| | | #keys: '[414702.0.340677556]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'PROCESS' |
| | | Label: 'çææ°æ®' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | #child: PanelCapacityAllocationResults |
| | | ] |
| | | Properties: |
| | | [ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component ListCapacityAllocationResultsRuleConfiguration |
| | | { |
| | | #keys: '[414702.0.375255758]' |
| | | BaseType: 'WebList' |
| | | Children: |
| | | [ |
| | | Component DataExtractorCapacityAllocationResultsRuleConfiguration |
| | | { |
| | | #keys: '[414702.0.375255759]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'GlobalOTDTable' |
| | | Source: 'GlobalOTDTable' |
| | | Taborder: 0 |
| | | Transformation: 'CapacityAllocationResultsRuleConfiguration' |
| | | ] |
| | | } |
| | | #child: listActionBarPageCapacityAllocationResultsRuleConfiguration |
| | | Component DataSetLevelCapacityAllocationResultsRuleConfiguration |
| | | { |
| | | #keys: '[414702.0.375255764]' |
| | | BaseType: 'WebDataSetLevel' |
| | | Children: |
| | | [ |
| | | #child: listContextMenuCapacityAllocationResultsRuleConfiguration |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMaterialCode","title":"PanelMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMaterialCode","title":"ModuleMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ModuleMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Division","title":"Division","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Division"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}}]' |
| | | ContextMenu: 'listContextMenuCapacityAllocationResultsRuleConfiguration' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 1 |
| | | ] |
| | | ResponseDefinitions: |
| | | [ |
| | | DelegatedResponseDefinition OnClick id:Responsedef_ListCapacityAllocationResultsRuleConfiguration_WebMenu_OnClick |
| | | { |
| | | #keys: '[414702.0.373845107]' |
| | | Initiator: 'WebMenu' |
| | | IsInherited: false |
| | | ResponseType: 'OnClick' |
| | | Arguments: |
| | | [ |
| | | ResponseDefinitionArgument selection |
| | | { |
| | | #keys: '[811.0.13515064]' |
| | | Binding: 'this.Selection()' |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelImportAndExport |
| | | { |
| | | #keys: '[414702.0.391512140]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component Import |
| | | { |
| | | #keys: '[414702.0.390081531]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'IMPORT1' |
| | | Label: '导å
¥' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | Component Export |
| | | { |
| | | #keys: '[414702.0.391512453]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'EXPORT1' |
| | | Label: '导åº' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | FixedSize: true |
| | | Orientation: 'horizontal' |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component listActionBarPageCapacityAllocationResultsRuleConfiguration |
| | | { |
| | | #keys: '[414702.0.375255761]' |
| | | BaseType: 'listActionBarPage' |
| | | Properties: |
| | | [ |
| | | Taborder: 1 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component listContextMenuCapacityAllocationResultsRuleConfiguration |
| | | { |
| | | #keys: '[414702.0.375255766]' |
| | | BaseType: 'listContextMenu' |
| | | Children: |
| | | [ |
| | | Component MenuNew |
| | | { |
| | | #keys: '[414702.0.373851234]' |
| | | BaseType: 'WebMenu' |
| | | Properties: |
| | | [ |
| | | Image: 'BEAR' |
| | | Taborder: 3 |
| | | Title: 'å建è§å' |
| | | ] |
| | | } |
| | | Component MenuEdit |
| | | { |
| | | #keys: '[414702.0.376312130]' |
| | | BaseType: 'WebMenu' |
| | | Properties: |
| | | [ |
| | | BindOnDoubleClick: true |
| | | Image: 'MESSAGE_EDIT' |
| | | Taborder: 4 |
| | | Title: 'ç¼è¾' |
| | | ] |
| | | } |
| | | Component MenuDelete |
| | | { |
| | | #keys: '[414702.0.382537902]' |
| | | BaseType: 'WebMenu' |
| | | Properties: |
| | | [ |
| | | Image: 'DELETE' |
| | | Taborder: 5 |
| | | Title: 'å é¤' |
| | | ] |
| | | } |
| | | Component MenuSelectAll |
| | | { |
| | | #keys: '[414702.0.382602953]' |
| | | BaseType: 'WebMenu' |
| | | Properties: |
| | | [ |
| | | Image: 'DOCUMENT_SELECTION' |
| | | Shortcut: 'Ctrl+A' |
| | | Taborder: 6 |
| | | Title: 'å
¨é' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: DataHolderSelectCapacityAllocationResultsRuleConfiguration |
| | | Response OnDataChanged () id:Response_FormCapacityAllocationResultsRuleConfiguration_DataHolderSelectCapacityAllocationResultsRuleConfiguration_OnDataChanged |
| | | { |
| | | #keys: '[414702.0.391379706]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebComponent_OnDataChanged' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | traverse ( this.Data(), Elements, e ) { |
| | | info( "颿¿ç©æIDï¼", e.PanelMaterialCode() ); |
| | | } |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: ListCapacityAllocationResultsRuleConfiguration |
| | | Response OnClick ( |
| | | CapacityAllocationResultsRuleConfiguration selection |
| | | ) id:Response_ListCapacityAllocationResultsRuleConfiguration_MenuDelete_OnClick |
| | | { |
| | | #keys: '[414702.0.381071285]' |
| | | DefinitionID => /ListCapacityAllocationResultsRuleConfiguration/Responsedef_ListCapacityAllocationResultsRuleConfiguration_WebMenu_OnClick |
| | | Initiator: 'MenuDelete' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | selection.Delete(); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: ListCapacityAllocationResultsRuleConfiguration |
| | | Response OnClick ( |
| | | CapacityAllocationResultsRuleConfiguration selection |
| | | ) id:Response_ListCapacityAllocationResultsRuleConfiguration_MenuEdit_OnClick |
| | | { |
| | | #keys: '[414702.0.376349145]' |
| | | CanBindMultiple: false |
| | | DefinitionID => /ListCapacityAllocationResultsRuleConfiguration/Responsedef_ListCapacityAllocationResultsRuleConfiguration_WebMenu_OnClick |
| | | Initiator: 'MenuEdit' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | dlg := construct( DialogCreateEditCapacityAllocationResultsRuleConfiguration ); |
| | | |
| | | dlg.Edit( selection ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: ListCapacityAllocationResultsRuleConfiguration |
| | | Response OnClick () id:Response_ListCapacityAllocationResultsRuleConfiguration_MenuNew_OnClick |
| | | { |
| | | #keys: '[414702.0.375256192]' |
| | | CanBindMultiple: false |
| | | DefinitionID => /ListCapacityAllocationResultsRuleConfiguration/Responsedef_ListCapacityAllocationResultsRuleConfiguration_WebMenu_OnClick |
| | | Initiator: 'MenuNew' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | dlg := construct( DialogCreateEditCapacityAllocationResultsRuleConfiguration ); |
| | | |
| | | dlg.New(); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: ListCapacityAllocationResultsRuleConfiguration |
| | | Response OnClick () id:Response_ListCapacityAllocationResultsRuleConfiguration_MenuSelectAll_OnClick |
| | | { |
| | | #keys: '[414702.0.381011855]' |
| | | CanBindMultiple: false |
| | | DefinitionID => /ListCapacityAllocationResultsRuleConfiguration/Responsedef_ListCapacityAllocationResultsRuleConfiguration_WebMenu_OnClick |
| | | Initiator: 'MenuSelectAll' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | this.SelectAll(); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: PanelImportAndExport/Export |
| | | Response OnClick () id:Response_PanelImportAndExport_Export_OnClick |
| | | { |
| | | #keys: '[414702.0.391658465]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | Application.Download( "产è½åé
ç»æè§å.xlsx", CapacityAllocationResultsRuleConfiguration::Export( GlobalOTDTable ).AsBinaryData() ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: PanelImportAndExport/Import |
| | | Response OnClick () id:Response_PanelImportAndExport_Import_OnClick |
| | | { |
| | | #keys: '[414702.0.391899822]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | try { |
| | | uploadJsonString := Application.GetFile(); |
| | | if ( uploadJsonString <> "" ) { |
| | | uploadJson := JSON::Parse( uploadJsonString ); |
| | | |
| | | fileName := uploadJson.Get( "name" ).GetString(); |
| | | base64String := uploadJson.Get( "data" ).GetString(); |
| | | CapacityAllocationResultsRuleConfiguration::Import( GlobalOTDTable, base64String ); |
| | | |
| | | WebMessageBox::Success( "ä¸ä¼ æå", true ); |
| | | } |
| | | } onerror { |
| | | WebMessageBox::Error( e.GeneralInformation(), true ); |
| | | } |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: MacroPlannerWebApp |
| | | OrphanComponent FormCapacityAllocationResultsRuleConfiguration |
| | | { |
| | | #keys: '[414702.0.373844315]' |
| | | BaseType: 'WebForm' |
| | | Children: |
| | | [ |
| | | #child: ListCapacityAllocationResultsRuleConfiguration |
| | | Component DataHolderSelectCapacityAllocationResultsRuleConfiguration |
| | | { |
| | | #keys: '[414702.0.390054479]' |
| | | BaseType: 'WebDataHolder' |
| | | Databinding: 'structured[CapacityAllocationResultsRuleConfiguration]*' |
| | | Children: |
| | | [ |
| | | Component DataExtractorSelectCapacityAllocationResultsRuleConfiguration |
| | | { |
| | | #keys: '[414702.0.391186862]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'CapacityAllocationResultsRuleConfiguration' |
| | | ExtractionMode: 'Selected' |
| | | Source: 'ListCapacityAllocationResultsRuleConfiguration' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | #child: PanelImportAndExport |
| | | ] |
| | | Properties: |
| | | [ |
| | | Image: 'DOCUMENT_CHECKS' |
| | | Title: '产è½åé
ç»ææ¥è¡¨-è§åç»´æ¤' |
| | | ] |
| | | } |
| | |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 0 |
| | | Taborder: 1 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: ButtonExportDetail |
| | | Response OnClick () id:Response_FormCapacityAndSaleBudge_ButtonExportDetail_OnClick |
| | | { |
| | | #keys: '[414384.0.887310502]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | Precondition: |
| | | [* |
| | | return not isnull( MPSync ); |
| | | *] |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | //Application.Download( "年度产éé¢ç®è¯¦æ
.xlsx", MPSync.CapacityAndSaleBudgeExport().AsBinaryData() ); |
| | | |
| | | base64 := MappingCapacityAndSaleBudge::Export( MPSync ); |
| | | Application.Download( "年度产éé¢ç®è¯¦æ
.xlsx", base64 ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
| | |
| | | [* |
| | | MPSync::TestData( MPSync, MacroPlan ); |
| | | GlobalOTDTable.InitTestData(); |
| | | MPSync.RefreshCapacityAndSaleBudgeFilter(); |
| | | *] |
| | | } |
| | | } |
| | |
| | | Children: |
| | | [ |
| | | #child: ListCapacityAndSaleBudge |
| | | Component ButtonExportDetail |
| | | { |
| | | #keys: '[414384.0.887310503]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'EXPORT1' |
| | | Label: '导åº' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | |
| | | CapacityAndSaleBudgeChartElement::TestData( ScenarioManager ); |
| | | |
| | | ScenarioManager.CapacityAndSaleBudgeChart( DataHolderMacroPlansForScenarioComparison.Data(), |
| | | CheckboxIsCapacity.Checked(), |
| | | DropDownSaleOrCapacity.Text(), |
| | | DropDownTimeGroup.Text(), |
| | | DropDownByBusinessTypeOrByOrgCode.Text(), |
| | | DataHolderCapacityAndSaleBudgeFilterBusinessType.Data(), |
| | |
| | | Visible: false |
| | | ] |
| | | } |
| | | Component CheckboxIsCapacity |
| | | { |
| | | #keys: '[414384.0.857770765]' |
| | | BaseType: 'WebCheckbox' |
| | | Properties: |
| | | [ |
| | | Label: '产è½' |
| | | Taborder: 5 |
| | | ] |
| | | } |
| | | Component DropDownTimeGroup |
| | | { |
| | | #keys: '[414384.0.857771238]' |
| | |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | Component DropDownSaleOrCapacity |
| | | { |
| | | #keys: '[414384.0.886240556]' |
| | | BaseType: 'WebDropDownStringList' |
| | | Properties: |
| | | [ |
| | | InitialValue: 'éå®é¢' |
| | | Label: 'éå®é¢/产è½' |
| | | Strings: 'éå®é¢;产è½' |
| | | Taborder: 5 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | |
| | | ContextMenu: 'matrixeditorContextMenuCapacityAndSaleBudgeCompare' |
| | | Editable: false |
| | | Rows: 'MatrixEditorRowsCapacityAndSaleBudgeCompare' |
| | | Taborder: 1 |
| | | Taborder: 2 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: ButtonExportCompare |
| | | Response OnClick () id:Response_FormCapacityAndSaleBudgeCompare_ButtonExportCompare_OnClick |
| | | { |
| | | #keys: '[414384.0.881345276]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | Precondition: |
| | | [* |
| | | return not isnull( GlobalOTDTable ); |
| | | *] |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | tableBinaryData := ScenarioManager.CapacityAndSaleBudgeCompareExport().AsBinaryData(); |
| | | Application.Download( "年度产éé¢ç®å¯¹æ¯.xlsx", tableBinaryData ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
| | |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | Component ButtonExportCompare |
| | | { |
| | | #keys: '[414384.0.881345277]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'EXPORT1' |
| | | Label: '导åº' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Serial","title":"Serial","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Serial"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastQty","title":"ForecastQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReverseQty","title":"ReverseQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReverseQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"AuthorizeQty","title":"AuthorizeQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"AuthorizeQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OperateQty","title":"OperateQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OperateQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OperateType","title":"OperateType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OperateType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Operator","title":"Operator","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Operator"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OperateTime","title":"OperateTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OperateTime"}}]' |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Serial","title":"åºå·","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Serial"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKUç¼å·","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastQty","title":"颿µæ°é","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReverseQty","title":"åç¾æ°é","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReverseQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"AuthorizeQty","title":"æææ°é","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"AuthorizeQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OperateQty","title":"å¨ä½æ°é","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OperateQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OperateType","title":"å¨ä½ç±»å","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OperateType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Operator","title":"æä½äºº","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Operator"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OperateTime","title":"æä½æ¶é´","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OperateTime"}}]' |
| | | ContextMenu: 'listContextMenuHedgingOfLog' |
| | | Taborder: 2 |
| | | ] |
| | |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 3 |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 2 |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | #child: ListHedgingOfLog |
| | | #child: PanelHedgingOfLog761 |
| | | #child: PanelHedgingOfLog593 |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 0 |
| | | Taborder: 2 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelHedgingOfLog221 |
| | | { |
| | | #keys: '[414724.0.149787927]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component LabelHedgingOfLog id:LabelHedgingOfLog_298 |
| | | { |
| | | #keys: '[414724.0.149788086]' |
| | | BaseType: 'WebLabel' |
| | | Properties: |
| | | [ |
| | | FixedSize: false |
| | | Taborder: 0 |
| | | Text: 'æ¥å¿é¡µé¢' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Border: true |
| | | FixedSize: true |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelHedgingOfLog593 id:PanelHedgingOfLog593_93 |
| | | { |
| | | #keys: '[414724.0.152989129]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component txt_QueryContent_FHO |
| | | { |
| | | #keys: '[414724.0.152989222]' |
| | | BaseType: 'WebEditField' |
| | | Properties: |
| | | [ |
| | | PlaceHolder: 'æ¨¡ç³æç´¢' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | Component btn_Query_FHO |
| | | { |
| | | #keys: '[414724.0.152920619]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | ButtonSize: 'compact' |
| | | Image: 'VIEW' |
| | | Label: 'æ¥è¯¢' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Alignment: 'trailing' |
| | | FixedSize: true |
| | | Orientation: 'horizontal' |
| | | Taborder: 1 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: PanelHedgingOfLog593_93/btn_Query_FHO |
| | | Response OnClick () id:Response_PanelHedgingOfLog593_93_btn_Query_FHO_OnClick |
| | | { |
| | | #keys: '[414724.0.152920798]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | DataExtractorHedgingOfLog.FixedFilter( "object.SKU().LikeUserLocale( " + txt_QueryContent_FHO.Text().AsQUILL() + " )" |
| | | + " or " + "object.OperateType().LikeUserLocale( " + txt_QueryContent_FHO.Text().AsQUILL() + " )" |
| | | + " or " + "object.Operator().LikeUserLocale( " + txt_QueryContent_FHO.Text().AsQUILL() + " )" |
| | | ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
| | |
| | | Children: |
| | | [ |
| | | #child: PanelHedgingOfLog |
| | | Component lb_ForecastQty |
| | | { |
| | | #keys: '[414724.0.31031550]' |
| | | BaseType: 'WebLabel' |
| | | Properties: |
| | | [ |
| | | Taborder: 1 |
| | | Text: 'åææç颿µæ°éï¼0' |
| | | ] |
| | | } |
| | | #child: PanelHedgingOfLog221 |
| | | #child: PanelHedgingOfLog593_93 |
| | | ] |
| | | Properties: |
| | | [ |
| | |
| | | Properties: |
| | | [ |
| | | DataType: 'structured[H_MaterialPurchase]' |
| | | FixedFilter: 'object.Status()="æªåå¸"' |
| | | Source: 'DataHolderMaterialPurchase' |
| | | Taborder: 0 |
| | | Transformation: 'Elements' |
| | |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductSubclassType","title":"ProductSubclassType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductSubclassType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Qty","title":"Qty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Qty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"Unit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrgCode","title":"OrgCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrgCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WarehouseCode","title":"WarehouseCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WarehouseCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DemandTime","title":"DemandTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandTime"}}]' |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKUç¼ç ","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductSubclassType","title":"ç±»å","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductSubclassType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Qty","title":"æ°é","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Qty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"åä½","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrgCode","title":"ç»ç»ä»£ç ","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrgCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WarehouseCode","title":"ä»åºä»£ç ","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WarehouseCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DemandTime","title":"éæ±æ¶é´","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandTime"}}]' |
| | | ContextMenu: 'listContextMenuMaterialPurchase' |
| | | Taborder: 2 |
| | | ] |
| | |
| | | BaseType: 'WebLabel' |
| | | Properties: |
| | | [ |
| | | NumberOfColumns: 50 |
| | | NumberOfColumns: 30 |
| | | Taborder: 0 |
| | | Text: 'å¼å§æ¶é´ï¼2023-03-26 12:24:46' |
| | | Visible: false |
| | | ] |
| | | } |
| | | #child: PanelMaterialPurchase613 |
| | | ] |
| | | Properties: |
| | | [ |
| | | Alignment: 'trailing' |
| | | FixedSize: true |
| | | Orientation: 'horizontal' |
| | | Taborder: 1 |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelMaterialPurchase354 |
| | | { |
| | | #keys: '[414724.0.149784759]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component lb_Title208 |
| | | { |
| | | #keys: '[414724.0.149784840]' |
| | | BaseType: 'WebLabel' |
| | | Properties: |
| | | [ |
| | | Description: 'ææ/åç¾ç©æéè´æç»éæ¾' |
| | | Taborder: 0 |
| | | Text: 'ææ/åç¾ç©æéè´æç»éæ¾' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Border: true |
| | | FixedSize: true |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | |
| | | BaseType: 'WebForm' |
| | | Children: |
| | | [ |
| | | Component lb_Title |
| | | { |
| | | #keys: '[414724.0.32644779]' |
| | | BaseType: 'WebLabel' |
| | | Properties: |
| | | [ |
| | | Description: 'ææ/åç¾ç©æéè´æç»éæ¾' |
| | | Taborder: 0 |
| | | Text: 'ææ/åç¾ç©æéè´æç»éæ¾' |
| | | ] |
| | | } |
| | | #child: PanelMaterialPurchase |
| | | Component DataHolderMaterialPurchase |
| | | { |
| | |
| | | ] |
| | | } |
| | | #child: ListMaterialPurchase |
| | | #child: PanelMaterialPurchase354 |
| | | ] |
| | | Properties: |
| | | [ |
| | |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"CustomerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsLocked","title":"IsLocked","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsLocked"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"First.AsPlanningBaseSalesDemandInPeriod.End","title":"End","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"First.AsPlanningBaseSalesDemandInPeriod.End"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModify","title":"LastModify","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModify"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModifyTime","title":"LastModifyTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModifyTime"}}]' |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"CustomerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"StartDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsLocked","title":"IsLocked","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsLocked"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"First.AsPlanningBaseSalesDemandInPeriod.End","title":"End","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"First.AsPlanningBaseSalesDemandInPeriod.End"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModify","title":"LastModify","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModify"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"LastModifyTime","title":"LastModifyTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"LastModifyTime"}}]' |
| | | ContextMenu: 'listContextMenuOrderLock' |
| | | Taborder: 2 |
| | | ] |
| | |
| | | ButtonSize: 'compact' |
| | | Description: '订åéå®' |
| | | Label: 'éå®' |
| | | Taborder: 7 |
| | | Taborder: 8 |
| | | ] |
| | | } |
| | | Component ButtonOrderLockHeaderUnlock |
| | |
| | | ButtonSize: 'compact' |
| | | Description: '订åè§£é' |
| | | Label: 'è§£é' |
| | | Taborder: 8 |
| | | Taborder: 9 |
| | | ] |
| | | } |
| | | Component ButtonOrderLockHeaderClear |
| | |
| | | Taborder: 6 |
| | | ] |
| | | } |
| | | Component ButtonOrderLockHeaderFresh |
| | | { |
| | | #keys: '[412960.0.259721852]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | ButtonSize: 'compact' |
| | | Description: '仿°æ®æºå·æ°è®¢åæ°æ®' |
| | | Label: 'éæ°è·å订å' |
| | | Taborder: 7 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: PanelOrderLockHeader_545/ButtonOrderLockHeaderFresh |
| | | Response OnClick () id:Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderFresh_OnClick |
| | | { |
| | | #keys: '[412960.0.259721886]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | GroupServerCalls: true |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | macroplan := MacroPlan; |
| | | global := GlobalOTDTable; |
| | | businesstypes := DataHolderOrderLockGlobal.Data().BusinessType().Tokenize( ',' ); |
| | | CustomerOrder::DoSync( macroplan, businesstypes, global ); |
| | | *] |
| | | } |
| | | } |
| | |
| | | newfilter := ""; |
| | | findcount := 0; |
| | | traverse( existfilterlist, Elements, filter ){ |
| | | if( filter.FindString( "EndDate()", 0 ) >= 0 ){ |
| | | if( filter.FindString( "StartDate()", 0 ) >= 0 ){ |
| | | if( newfilter = "" ){ |
| | | newfilter := "( object.EndDate() = " + this.Date().AsQUILL() + " )"; |
| | | newfilter := "( object.StartDate() = " + this.Date().AsQUILL() + " )"; |
| | | }else{ |
| | | newfilter := newfilter + " and " + "( object.EndDate() = " + this.Date().AsQUILL() + " )"; |
| | | newfilter := newfilter + " and " + "( object.StartDate() = " + this.Date().AsQUILL() + " )"; |
| | | } |
| | | findcount := 1; |
| | | }else{ |
| | |
| | | |
| | | if( findcount = 0 ){ |
| | | if( newfilter = "" ){ |
| | | newfilter := "( object.EndDate() = " + this.Date().AsQUILL() + " )"; |
| | | newfilter := "( object.StartDate() = " + this.Date().AsQUILL() + " )"; |
| | | }else{ |
| | | newfilter := newfilter + " and " + "( object.EndDate() = " + this.Date().AsQUILL() + " )"; |
| | | newfilter := newfilter + " and " + "( object.StartDate() = " + this.Date().AsQUILL() + " )"; |
| | | } |
| | | } |
| | | |
| | |
| | | newfilter := ""; |
| | | findcount := 0; |
| | | traverse( existfilterlist, Elements, filter ){ |
| | | if( filter.FindString( "End()", 0 ) >= 0 and filter.FindString( "EndDate()", 0 ) < 0 ){ |
| | | if( filter.FindString( "End()", 0 ) >= 0 ){ |
| | | if( newfilter = "" ){ |
| | | newfilter := "( object.First().AsPlanningBaseSalesDemandInPeriod().End().Date() = " + this.Date().AsQUILL() + " )"; |
| | | }else{ |
| | |
| | | ] |
| | | Properties: |
| | | [ |
| | | Description: '天è±' |
| | | Description: '天å' |
| | | Image: 'CANDLE' |
| | | Title: '天è±' |
| | | Title: '天å' |
| | | ] |
| | | } |
| | |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Issuer","title":"Issuer","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Issuer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IssuingDate","title":"IssuingDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IssuingDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FinishDate","title":"FinishDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"FinishDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Status","title":"Status","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Status"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"VCode","title":"VCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"VCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Serial","title":"Serial","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Serial"}}]' |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"hidden","editable":false,"attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Serial","title":"åºå·","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Serial"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IssuingDate","title":"å叿¶é´","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IssuingDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FinishDate","title":"ç»ææ¶é´","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"FinishDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Issuer","title":"åå¸äºº","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Issuer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Status","title":"ç¶æ","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Status"}}]' |
| | | ContextMenu: 'listContextMenuReleaseRecord' |
| | | Taborder: 2 |
| | | ] |
| | |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"H_ReleaseRecord_ID","title":"H_ReleaseRecord_ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"H_ReleaseRecord_ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"H_HedgingRecord_ID","title":"H_HedgingRecord_ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"H_HedgingRecord_ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Qty","title":"Qty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Qty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Status","title":"Status","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Status"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IssuingDate","title":"IssuingDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IssuingDate"}}]' |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"ç©æç¼å·","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductSubclassType","title":"ç±»å","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductSubclassType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Qty","title":"æ°é","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Qty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"åä½","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrgCode","title":"ç»ç»ä»£ç ","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrgCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"WarehouseCode","title":"ä»åºä»£ç ","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"WarehouseCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DemandTime","title":"éæ±æ¶é´","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DemandTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IssuingDate","title":"å叿¶é´","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IssuingDate"}}]' |
| | | ContextMenu: 'listContextMenuReleaseRecord690' |
| | | Taborder: 2 |
| | | ] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelReleaseRecord423 |
| | | { |
| | | #keys: '[414724.0.149784904]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component LabelReleaseRecord id:LabelReleaseRecord_296 |
| | | { |
| | | #keys: '[414724.0.149784974]' |
| | | BaseType: 'WebLabel' |
| | | Properties: |
| | | [ |
| | | NumberOfColumns: 20 |
| | | Taborder: 0 |
| | | Text: 'åç¾/ææç©æåå¸çæ¬æç»' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Border: true |
| | | FixedSize: true |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | |
| | | { |
| | | Body: |
| | | [* |
| | | DataExtractorReleaseRecord661.FixedFilter( "object.H_ReleaseRecord_ID() = " + selection.ID().AsQUILL()); |
| | | // åå¸ID |
| | | H_ReleaseRecord_ID := "-1"; |
| | | H_Status:="å·²åå¸"; |
| | | if( not isnull( selection)) |
| | | { |
| | | H_ReleaseRecord_ID := selection.ID(); |
| | | } |
| | | DataExtractorReleaseRecord661.FixedFilter( "object.H_ReleaseRecord_ID() = " + H_ReleaseRecord_ID.AsQUILL() |
| | | + " and " + "object.Status() = " + H_Status.AsQUILL()); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | |
| | | #keys: '[414724.0.37110847]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebComponent_OnCreated' |
| | | GroupServerCalls: true |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | dtMonth.Date(Date::Today()); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
| | |
| | | BaseType: 'WebForm' |
| | | Children: |
| | | [ |
| | | Component LabelReleaseRecord |
| | | { |
| | | #keys: '[414724.0.36933216]' |
| | | BaseType: 'WebLabel' |
| | | Properties: |
| | | [ |
| | | NumberOfColumns: 20 |
| | | Taborder: 0 |
| | | Text: 'åç¾/ææç©æåå¸çæ¬æç»' |
| | | ] |
| | | } |
| | | #child: PanelReleaseRecord |
| | | #child: PanelReleaseRecord108 |
| | | #child: PanelReleaseRecord527 |
| | | #child: PanelReleaseRecord423 |
| | | ] |
| | | Properties: |
| | | [ |
| | |
| | | SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmMaterial" and Obj.ItemKey()="ListSelect"); |
| | | if(not isnull( SelectItem)) |
| | | { |
| | | if(SelectItem.Value().Length()>0) |
| | | if(SelectItem.ValueJsonString().Length()>0) |
| | | { |
| | | StrValue := SelectItem.Value().Tokenize( ";"); |
| | | lb_SUK_FAACM.Text(StrValue.Element( 0)); |
| | | lb_MaterialCode_FAACM.Text(StrValue.Element( 1)); |
| | | lb_Unit_FAACM.Text(StrValue.Element( 2)); |
| | | JInfo := JSON::Parse( SelectItem.ValueJsonString()); |
| | | lb_SUK_FAACM.Text(JInfo.Get( "ParentSKU").GetString()); |
| | | lb_MaterialCode_FAACM.Text(JInfo.Get( "SKU").GetString()); |
| | | lb_Unit_FAACM.Text(JInfo.Get( "Unit").GetString()); |
| | | lb_Operator_FAACM.Text(ApplicationMacroPlanner.GetUserName()); |
| | | txt_CustomID_FAACM.Text(JInfo.Get( "CustomCode").GetString()); |
| | | txt_CustomName_FAACM.Text(JInfo.Get( "CustomName").GetString()); |
| | | } |
| | | } |
| | | // è·åéæ©åçSKU |
| | | SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect"); |
| | | if(not isnull( SelectItem) and SelectItem.Value().Length()>0) |
| | | { |
| | | StrValue := SelectItem.Value().Tokenize( ";"); |
| | | txt_CustomID_FAACM.Text(StrValue.Element( 2)); |
| | | txt_CustomName_FAACM.Text(StrValue.Element( 3)); |
| | | } |
| | | *] |
| | | GroupServerCalls: false |
| | |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'structured[Product_MP]' |
| | | DataType: 'structured[H_MaterialInfo]' |
| | | Source: 'dh_FM_PruductMP' |
| | | Taborder: 0 |
| | | Transformation: 'Elements' |
| | |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"TotalInventoryLevels","title":"TotalInventoryLevels","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"TotalInventoryLevels"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Level","title":"Level","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Level"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsProductCategory","title":"IsProductCategory","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"IsProductCategory"}}]' |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"ç©æç¼ç ","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MaterialType","title":"ç©æç±»å","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MaterialType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MaterialName","title":"ç©æåç§°","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MaterialName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"åä½","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NeedQty","title":"éæ±æ°é","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NeedQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NeedDate","title":"éæ±æ¶é´","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NeedDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrgCode","title":"ç»ç»ä»£ç ","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrgCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockPoint","title":"åºåç¹","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockPoint"}}]' |
| | | ContextMenu: 'listContextMenu892' |
| | | Taborder: 2 |
| | | ] |
| | |
| | | [ |
| | | NumberOfColumns: 15 |
| | | PlaceHolder: 'æ¨¡ç³æç´¢' |
| | | Taborder: 1 |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | Component btn_Query_FM |
| | |
| | | [ |
| | | Image: 'VIEW' |
| | | Label: 'æ¥è¯¢' |
| | | Taborder: 2 |
| | | Taborder: 3 |
| | | ] |
| | | } |
| | | Component btn_Add_FM |
| | |
| | | [ |
| | | Image: 'ADD2' |
| | | Label: 'æ°å¢åç¾/ææ' |
| | | Taborder: 3 |
| | | Taborder: 4 |
| | | ] |
| | | ResponseDefinitions: |
| | | [ |
| | |
| | | } |
| | | ] |
| | | } |
| | | Component ds_Month_FM |
| | | { |
| | | #keys: '[414724.0.148121614]' |
| | | BaseType: 'WebDateSelector' |
| | | Properties: |
| | | [ |
| | | DateFormat: 'YMM' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: List832 |
| | | Response OnDoubleClick ( |
| | | H_MaterialInfo selection |
| | | ) id:Response_List832_OnDoubleClick |
| | | { |
| | | #keys: '[414724.0.160542461]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebList_OnDoubleClick' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | if( not isnull( selection)) |
| | | { |
| | | if(selection.MaterialType()="åæå") |
| | | { |
| | | OrderCode:=""; |
| | | if( txtSaveForecastData_FM.Text().Length()>0) |
| | | { |
| | | JForecast := JSON::Parse( txtSaveForecastData_FM.Text()); |
| | | OrderCode := JForecast.Get( "OrderCode").GetString(); |
| | | } |
| | | jResult := H_FunctionClass::SM_GetMaterialData( MacroPlan,selection.SKU(),selection.NeedQty(), OrderCode,"-",selection.NeedDate()); |
| | | if(jResult.Get( "Status").GetBoolean()) |
| | | { |
| | | de_dh_FM_ProductMP.FixedFilter( "object.ParentSKU() = " + selection.SKU().AsQUILL() |
| | | + " and object.ForecastID() = " + OrderCode.AsQUILL() |
| | | ); |
| | | } |
| | | else |
| | | { |
| | | WebMessageBox::Warning( jResult.Get( "Msg").GetString()); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | // å¼¹åºç©æåç¾ææ |
| | | } |
| | | } |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
| | |
| | | { |
| | | Body: |
| | | [* |
| | | ds_Month_FM.Date(Date::ActualDate()); |
| | | txtSaveForecastData_FM.Text(""); |
| | | // è·åéæ©åçSKU |
| | | SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmOrderForecast" and Obj.ItemKey()="ListSelect"); |
| | |
| | | txtSaveForecastData_FM.Text( SelectItem.ValueJsonString()); |
| | | JSelect := JSON::Parse( SelectItem.ValueJsonString()); |
| | | lb_SUK_FM.Text(JSelect.Get( "SKU").GetString()); |
| | | de_dh_FM_ProductMP.FixedFilter( "object.ID() = " + JSelect.Get( "SKU").GetString().AsQUILL()); |
| | | de_dh_FM_ProductMP.FixedFilter( "object.ParentSKU() = " + JSelect.Get( "SKU").GetString().AsQUILL() |
| | | + " and object.ForecastID() = " + JSelect.Get( "OrderCode").GetString().AsQUILL() |
| | | ); |
| | | } |
| | | } |
| | | *] |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: Panel418/btn_Add_FM |
| | | Response OnClick () id:Response_Panel418_btn_Add_FM_OnClick_975 |
| | | Response OnClick ( |
| | | H_MaterialInfo selection |
| | | ) id:Response_Panel418_btn_Add_FM_OnClick_975 |
| | | { |
| | | #keys: '[414724.0.145238844]' |
| | | CanBindMultiple: false |
| | |
| | | Body: |
| | | [* |
| | | SelectItem := select( MacroPlan,H_MessagePassing,Obj,Obj.FKey()="FrmMaterial" and Obj.ItemKey()="ListSelect"); |
| | | CustomCode:=""; |
| | | CustomName:=""; |
| | | SValue:=""; |
| | | SValueJsonString:=""; |
| | | // è·å客æ·åç§°å客æ·ID |
| | | if(txtSaveForecastData_FM.Text().Length()>0) |
| | | { |
| | | jForecast := JSON::Parse( txtSaveForecastData_FM.Text()); |
| | | CustomCode := jForecast.Get( "CustomCode").GetString(); |
| | | CustomName := jForecast.Get( "CustomName").GetString(); |
| | | } |
| | | if(not isnull(selection)) |
| | | { |
| | | SValueJsonString:= JSON::Object().Add( "SKU",selection.SKU()) |
| | | .Add( "MaterialName",selection.MaterialName()) |
| | | .Add( "MaterialType",selection.MaterialType()) |
| | | .Add( "OrgCode",selection.OrgCode()) |
| | | .Add( "Unit",selection.Unit()) |
| | | .Add( "CustomCode",CustomCode) |
| | | .Add( "ParentSKU",lb_SUK_FM.Text()) |
| | | .Add( "CustomName",CustomName).Build().AsString(); |
| | | } |
| | | if( isnull( SelectItem)) |
| | | { |
| | | MacroPlan.H_MessagePassing(relnew,FKey :="FrmMaterial",ItemKey := "ListSelect",Value := ""); |
| | | MacroPlan.H_MessagePassing(relnew,FKey := "FrmMaterial",ItemKey := "ListSelect", Value:=SValue,ValueJsonString:=SValueJsonString); |
| | | } |
| | | else |
| | | { |
| | | //SelectItem.ValueJsonString() |
| | | SelectItem.Value(SValue); |
| | | SelectItem.ValueJsonString( SValueJsonString); |
| | | } |
| | | Application.OpenForm( "FrmAuthorizeAndCountersign_Material","modal"); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | |
| | | { |
| | | Body: |
| | | [* |
| | | de_dh_FM_ProductMP.FixedFilter( "object.ID().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )" ); |
| | | // + " or " + "object.SKU().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )" |
| | | // + " or " + "object.CustomerCode().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )" |
| | | // + " or " + "object.CustomerName().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )" ); |
| | | de_dh_FM_ProductMP.FixedFilter( "( object.SKU().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )" |
| | | + " or " + "object.MaterialType().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )" |
| | | + " or " + "object.MaterialName().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )" |
| | | + " or " + "object.Unit().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )" |
| | | + " or " + "object.OrgCode().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )" |
| | | + " or " + "object.StockPoint().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " )" |
| | | + " or " + "object.Unit().LikeUserLocale( " + txt_QueryContent_FM.Text().AsQUILL() + " ))" |
| | | + " and " + "( object.NeedDate() < " + ds_Month_FM.Date().StartOfNextMonth().AsQUILL() |
| | | + " and " + "object.NeedDate() >= " + ds_Month_FM.Date().StartOfMonth().AsQUILL() + " )" |
| | | |
| | | ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | |
| | | { |
| | | #keys: '[414724.0.53475285]' |
| | | BaseType: 'WebDataHolder' |
| | | Databinding: 'structured[Product_MP]*' |
| | | Databinding: 'structured[H_MaterialInfo]*' |
| | | Children: |
| | | [ |
| | | Component de_dh_FM_ProductMP |
| | |
| | | DataType: 'MacroPlan' |
| | | Source: 'MacroPlan' |
| | | Taborder: 0 |
| | | Transformation: 'Product_MP' |
| | | Transformation: 'H_MaterialInfo' |
| | | ] |
| | | } |
| | | ] |
| | |
| | | [ |
| | | Description: 'åæå表页' |
| | | Image: 'NAV_REDO_LIGHT_BLUE' |
| | | MinimumRows: 50 |
| | | MinimumColumns: 80 |
| | | MinimumRows: 40 |
| | | Title: 'åæå表页' |
| | | ] |
| | | } |
| | |
| | | Visible: false |
| | | ] |
| | | } |
| | | Component btn_OrderH_FOF |
| | | { |
| | | #keys: '[414724.0.165490408]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Description: 'ERO订åå²å' |
| | | Image: 'AMMUNITION_BOX_CLOSED' |
| | | Label: 'ERP订åå²å' |
| | | Taborder: 3 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | |
| | | ValueJsonString := JSON::Object().Add( "SKU",selection.SKU()) |
| | | .Add( "Util",selection.Util()) |
| | | .Add( "CustomCode",selection.CustomCode()) |
| | | .Add( "CustomName",selection.CustomName()).Build().AsString()); |
| | | .Add( "CustomName",selection.CustomName()) |
| | | .Add( "ForecastQty",selection.ForecastQty()) |
| | | .Add( "NeedTime",selection.NeedTime().AsQUILL()) |
| | | .Add( "OrderCode",selection.OrderCode()).Build().AsString()); |
| | | } |
| | | else |
| | | { |
| | |
| | | SelectItem.ValueJsonString(JSON::Object().Add( "SKU",selection.SKU()) |
| | | .Add( "Util",selection.Util()) |
| | | .Add( "CustomCode",selection.CustomCode()) |
| | | .Add( "CustomName",selection.CustomName()).Build().AsString()); |
| | | .Add( "CustomName",selection.CustomName()) |
| | | .Add( "ForecastQty",selection.ForecastQty()) |
| | | .Add( "NeedTime",selection.NeedTime().AsQUILL()) |
| | | .Add( "OrderCode",selection.OrderCode()).Build().AsString()); |
| | | } |
| | | Application.OpenForm( "FrmMaterial","popout"); |
| | | |
| | | jResult := H_FunctionClass::SM_GetMaterialData( MacroPlan,selection.SKU(),selection.ForecastQty(),selection.OrderCode(),"-",selection.NeedTime()); |
| | | if(jResult.Get( "Status").GetBoolean()) |
| | | { |
| | | Application.OpenForm( "FrmMaterial","popout"); |
| | | } |
| | | else |
| | | { |
| | | WebMessageBox::Warning( jResult.Get( "Msg").GetString()); |
| | | } |
| | | } |
| | | else |
| | | { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: Panel351/btn_OrderH_FOF |
| | | Response OnClick () id:Response_Panel351_btn_OrderH_FOF_OnClick |
| | | { |
| | | #keys: '[414724.0.166610329]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | H_FunctionClass::SM_OrderHedging( MacroPlan,true,"System","ERP订å"); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
| | |
| | | ValueJsonString := JSON::Object().Add( "SKU",selection.SKU()) |
| | | .Add( "Util",selection.Util()) |
| | | .Add( "CustomCode",selection.CustomCode()) |
| | | .Add( "CustomName",selection.CustomName()).Build().AsString()); |
| | | .Add( "CustomName",selection.CustomName()) |
| | | .Add( "ForecastQty",selection.ForecastQty()) |
| | | .Add( "NeedTime",selection.NeedTime().AsQUILL()) |
| | | .Add( "OrderCode",selection.OrderCode()).Build().AsString()); |
| | | } |
| | | else |
| | | { |
| | |
| | | SelectItem.ValueJsonString(JSON::Object().Add( "SKU",selection.SKU()) |
| | | .Add( "Util",selection.Util()) |
| | | .Add( "CustomCode",selection.CustomCode()) |
| | | .Add( "CustomName",selection.CustomName()).Build().AsString()); |
| | | .Add( "CustomName",selection.CustomName()) |
| | | .Add( "ForecastQty",selection.ForecastQty()) |
| | | .Add( "NeedTime",selection.NeedTime().AsQUILL()) |
| | | .Add( "OrderCode",selection.OrderCode()).Build().AsString()); |
| | | } |
| | | Application.OpenForm( "FrmMaterial","popout"); |
| | | |
| | | jResult := H_FunctionClass::SM_GetMaterialData( MacroPlan,selection.SKU(),selection.ForecastQty(),selection.OrderCode(),"-",selection.NeedTime()); |
| | | if(jResult.Get( "Status").GetBoolean()) |
| | | { |
| | | Application.OpenForm( "FrmMaterial","popout"); |
| | | } |
| | | else |
| | | { |
| | | WebMessageBox::Warning( jResult.Get( "Msg").GetString()); |
| | | } |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderCode","title":"OrderCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderQty","title":"OrderQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReverseQty","title":"ReverseQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReverseQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"AuthorizeQty","title":"AuthorizeQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"AuthorizeQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastQty","title":"ForecastQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastHitQty","title":"ForecastHitQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastNoHitQty","title":"ForecastNoHitQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastNoHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"CustomerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerCode","title":"CustomerCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerCode"}}]' |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderCode","title":"订åç¼å·","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKUç¼ç ","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderQty","title":"æ°å¢è®¢å","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReverseQty","title":"åç¾","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReverseQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"AuthorizeQty","title":"ææ","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"AuthorizeQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastQty","title":"颿µ","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastHitQty","title":"æé¢æµ","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ForecastNoHitQty","title":"æ 颿µ","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ForecastNoHitQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"客æ·åç§°","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerCode","title":"客æ·ID","subtotals":"","tooltip":"","width":-1,"display":"hidden","editable":false,"attribute":"CustomerCode"}}]' |
| | | ContextMenu: 'listContextMenu526' |
| | | Taborder: 2 |
| | | ] |
| | |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKU","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MType","title":"MType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReverseQty","title":"ReverseQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReverseQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"AuthorizeQty","title":"AuthorizeQty","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"AuthorizeQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"Unit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"CustomerName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}}]' |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SKU","title":"SKUç¼ç ","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SKU"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"MType","title":"ç±»å","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"MType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ReverseQty","title":"颿µæ°é","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ReverseQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"AuthorizeQty","title":"æææ°é","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"AuthorizeQty"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit","title":"åä½","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Unit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerName","title":"客æ·åç§°","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerName"}}]' |
| | | ContextMenu: 'listContextMenu660' |
| | | Taborder: 2 |
| | | ] |
| | |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | ButtonSize: 'compact' |
| | | Image: 'VIEW' |
| | | Label: 'æ¥è¯¢' |
| | | Taborder: 2 |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component List212 |
| | | { |
| | | #keys: '[414724.0.153225431]' |
| | | BaseType: 'WebList' |
| | | Children: |
| | | [ |
| | | Component DataExtractor924 |
| | | { |
| | | #keys: '[414724.0.153225432]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'MacroPlan' |
| | | Source: 'MacroPlan' |
| | | Taborder: 0 |
| | | Transformation: 'MappingProduct' |
| | | ] |
| | | } |
| | | #child: listActionBarPage441 |
| | | Component DataSetLevel622 |
| | | { |
| | | #keys: '[414724.0.153225437]' |
| | | BaseType: 'WebDataSetLevel' |
| | | Children: |
| | | [ |
| | | #child: listContextMenu182 |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CommonBusiness","title":"CommonBusiness","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CommonBusiness"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsCommon","title":"IsCommon","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsCommon"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"KeyProduct","title":"KeyProduct","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"KeyProduct"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Name","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Name"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Notes","title":"Notes","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Notes"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductMajorType","title":"ProductMajorType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductMajorType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductSubclassType","title":"ProductSubclassType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductSubclassType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ShelfLife","title":"ShelfLife","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ShelfLife"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}}]' |
| | | ContextMenu: 'listContextMenu182' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 1 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component listActionBarPage441 |
| | | { |
| | | #keys: '[414724.0.153225434]' |
| | | BaseType: 'listActionBarPage' |
| | | Properties: |
| | | [ |
| | | Taborder: 1 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component listContextMenu182 |
| | | { |
| | | #keys: '[414724.0.153225439]' |
| | | BaseType: 'listContextMenu' |
| | | Properties: |
| | | [ |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: Button593 |
| | | Response OnClick () id:Response_Frm_TEST_Button593_OnClick |
| | | { |
| | | #keys: '[414724.0.153411735]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | HObj := H_FunctionClass::SM_GetProductInfo( MacroPlan,""); |
| | | if( not isnull( HObj)) |
| | | { |
| | | WebMessageBox::Information( HObj.BusinessType()); |
| | | } |
| | | else |
| | | { |
| | | WebMessageBox::Information( "å¾å°ç空å¼"); |
| | | } |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: ButtonERP订å |
| | | Response OnClick () id:Response_Frm_TEST_ButtonERP订å_OnClick |
| | | { |
| | | #keys: '[414724.0.164341791]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | H_FunctionClass::SM_OrderHedging( MacroPlan,true,"System","ERP订å"); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: MacroPlannerWebApp |
| | | OrphanComponent Frm_TEST |
| | | { |
| | | #keys: '[414724.0.153225415]' |
| | | BaseType: 'WebForm' |
| | | Children: |
| | | [ |
| | | #child: List212 |
| | | Component DataHolder417 |
| | | { |
| | | #keys: '[414724.0.153253171]' |
| | | BaseType: 'WebDataHolder' |
| | | Databinding: 'structured[MappingProduct]*' |
| | | Children: |
| | | [ |
| | | Component DataExtractor742 |
| | | { |
| | | #keys: '[414724.0.153253184]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'MacroPlan' |
| | | Source: 'MacroPlan' |
| | | Taborder: 0 |
| | | Transformation: 'MappingProduct' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | Component Button593 |
| | | { |
| | | #keys: '[414724.0.153411711]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'MONITOR_RGB' |
| | | Label: 'æµè¯' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | Component ButtonERP订å |
| | | { |
| | | #keys: '[414724.0.164341716]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Label: 'ERP订å' |
| | | Taborder: 3 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Title: 'æµè¯é¡µé¢' |
| | | ] |
| | | } |
| | |
| | | { |
| | | forms |
| | | { |
| | | form_legacy_1 |
| | | form_FormOrderLockLog |
| | | { |
| | | title: 'Scenario manager' |
| | | title: 'QTIANMA_JITUAN::FormOrderLockLog' |
| | | shown: true |
| | | componentID: 'FormScenarioManager' |
| | | componentID: 'QTIANMA_JITUAN::FormOrderLockLog' |
| | | layout |
| | | { |
| | | mode: 'open' |
| | | rowPosition: 1 |
| | | rowPosition: 14 |
| | | rowSpan: 8 |
| | | columnPosition: 1 |
| | | columnSpan: 5 |
| | | columnSpan: 12 |
| | | } |
| | | components |
| | | { |
| | | FormScenarioManager_ListScenario |
| | | FormOrderLockLog_PanelOrderLockLog |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormOrderLockLog_ListOrderLockLog |
| | | { |
| | | } |
| | | FormScenarioManager_DataSetLevelScenario |
| | | FormOrderLockLog_DataSetLevelOrderLockLog |
| | | { |
| | | groupDepth: -1 |
| | | column_All_constraints |
| | | sort: 'DESC:Notes' |
| | | column_OrderID |
| | | { |
| | | columnId: 'All constraints' |
| | | dataPath: 'All constraints' |
| | | columnId: 'OrderID' |
| | | dataPath: 'OrderID' |
| | | dataType: 'string' |
| | | title: 'All constraints' |
| | | title: '订åå·' |
| | | index: 0 |
| | | subtotals: '' |
| | | width: 90 |
| | | width: 150 |
| | | } |
| | | column_Name |
| | | column_ProductID |
| | | { |
| | | columnId: 'Name' |
| | | dataPath: 'Name' |
| | | columnId: 'ProductID' |
| | | dataPath: 'ProductID' |
| | | dataType: 'string' |
| | | title: 'åç§°' |
| | | title: 'ç©æå·' |
| | | index: 1 |
| | | subtotals: '' |
| | | width: 277 |
| | | width: 150 |
| | | } |
| | | column_ChangedBy |
| | | column_SalesSegmentName |
| | | { |
| | | columnId: 'ChangedBy' |
| | | dataPath: 'ChangedBy' |
| | | columnId: 'SalesSegmentName' |
| | | dataPath: 'SalesSegmentName' |
| | | dataType: 'string' |
| | | title: 'Changed by' |
| | | title: 'éå®é¨é¨' |
| | | index: 2 |
| | | subtotals: '' |
| | | width: 106 |
| | | width: 150 |
| | | } |
| | | column_ChangedOn |
| | | column_StockingPointID |
| | | { |
| | | columnId: 'ChangedOn' |
| | | dataPath: 'ChangedOn' |
| | | dataType: 'datetime' |
| | | title: 'Changed on' |
| | | index: 3 |
| | | subtotals: '' |
| | | width: 99 |
| | | } |
| | | column_StorageMode |
| | | { |
| | | columnId: 'StorageMode' |
| | | dataPath: 'StorageMode' |
| | | columnId: 'StockingPointID' |
| | | dataPath: 'StockingPointID' |
| | | dataType: 'string' |
| | | title: 'StorageMode' |
| | | index: 4 |
| | | subtotals: '' |
| | | width: 40 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | form_legacy_2 |
| | | { |
| | | title: 'Assumptions' |
| | | shown: true |
| | | componentID: 'FormAssumptions' |
| | | layout |
| | | { |
| | | mode: 'open' |
| | | rowPosition: 9 |
| | | rowSpan: 8 |
| | | columnPosition: 1 |
| | | columnSpan: 5 |
| | | } |
| | | components |
| | | { |
| | | FormAssumptions_ListAssumptions |
| | | { |
| | | } |
| | | FormAssumptions_DataSetLevelAssumptions |
| | | { |
| | | groupDepth: -1 |
| | | column_All_constraints |
| | | { |
| | | columnId: 'All constraints' |
| | | dataPath: 'All constraints' |
| | | dataType: 'string' |
| | | title: 'All constraints' |
| | | index: 0 |
| | | subtotals: '' |
| | | width: 32 |
| | | } |
| | | column_Category |
| | | { |
| | | columnId: 'Category' |
| | | dataPath: 'Category' |
| | | dataType: 'string' |
| | | title: 'ç±»å«' |
| | | index: 1 |
| | | subtotals: '' |
| | | width: 108 |
| | | } |
| | | column_Importance |
| | | { |
| | | columnId: 'Importance' |
| | | dataPath: 'Importance' |
| | | dataType: 'string' |
| | | title: 'éè¦æ§' |
| | | index: 2 |
| | | subtotals: '' |
| | | width: 110 |
| | | } |
| | | column_Title |
| | | { |
| | | columnId: 'Title' |
| | | dataPath: 'Title' |
| | | dataType: 'string' |
| | | title: 'æ é¢' |
| | | title: 'åºåç¹' |
| | | index: 3 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_ChangedBy |
| | | column_CustomerName |
| | | { |
| | | columnId: 'ChangedBy' |
| | | dataPath: 'ChangedBy' |
| | | columnId: 'CustomerName' |
| | | dataPath: 'CustomerName' |
| | | dataType: 'string' |
| | | title: 'Changed by' |
| | | title: '客æ·åç§°' |
| | | index: 4 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_CreatedOn |
| | | column_Quantity |
| | | { |
| | | columnId: 'CreatedOn' |
| | | dataPath: 'CreatedOn' |
| | | dataType: 'datetime' |
| | | title: 'Created on' |
| | | columnId: 'Quantity' |
| | | dataPath: 'Quantity' |
| | | dataType: 'real' |
| | | index: 5 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_UnitOfMeasureName |
| | | { |
| | | columnId: 'UnitOfMeasureName' |
| | | dataPath: 'UnitOfMeasureName' |
| | | dataType: 'string' |
| | | title: 'åä½' |
| | | index: 6 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_Price |
| | | { |
| | | columnId: 'Price' |
| | | dataPath: 'Price' |
| | | dataType: 'real' |
| | | title: 'éå®é¢' |
| | | index: 7 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_EndDate |
| | | { |
| | | columnId: 'EndDate' |
| | | dataPath: 'EndDate' |
| | | dataType: 'date' |
| | | title: '客æ·éæ±æ¶é´' |
| | | index: 8 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_IsLocked |
| | | { |
| | | columnId: 'IsLocked' |
| | | dataPath: 'IsLocked' |
| | | dataType: 'boolean' |
| | | title: 'ç¶æ' |
| | | index: 9 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_End |
| | | { |
| | | columnId: 'End' |
| | | dataPath: 'End' |
| | | dataType: 'date' |
| | | title: '计åäº¤ä»æ¶é´' |
| | | index: 10 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_LastModify |
| | | { |
| | | columnId: 'LastModify' |
| | | dataPath: 'LastModify' |
| | | dataType: 'string' |
| | | title: 'æåæä½äºº' |
| | | index: 11 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_LastModifyTime |
| | | { |
| | | columnId: 'LastModifyTime' |
| | | dataPath: 'LastModifyTime' |
| | | dataType: 'datetime' |
| | | title: 'æåæä½æ¶é´' |
| | | index: 12 |
| | | subtotals: '' |
| | | width: 145 |
| | | } |
| | | column_Notes |
| | | { |
| | | columnId: 'Notes' |
| | | dataPath: 'Notes' |
| | | dataType: 'string' |
| | | title: 'æä½è¯¦æ
' |
| | | index: 13 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | form_FormScenariosKPIsComparison |
| | | form_FormOrderLock |
| | | { |
| | | title: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison' |
| | | title: 'QTIANMA_JITUAN::FormOrderLock' |
| | | shown: true |
| | | componentID: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison' |
| | | componentID: 'QTIANMA_JITUAN::FormOrderLock' |
| | | layout |
| | | { |
| | | mode: 'open' |
| | | rowPosition: 1 |
| | | rowSpan: 16 |
| | | columnPosition: 6 |
| | | columnSpan: 7 |
| | | rowSpan: 13 |
| | | columnPosition: 1 |
| | | columnSpan: 12 |
| | | } |
| | | components |
| | | { |
| | | FormScenariosKPIsComparison_MatrixEditorFinancialKPIs |
| | | FormOrderLock_PanelOrderLock |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormOrderLock_PanelOrderLockHeader |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormOrderLock_PanelOrderLockOrder |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormOrderLock_ListOrderLock |
| | | { |
| | | } |
| | | FormOrderLock_DataSetLevelOrderLock |
| | | { |
| | | groupDepth: -1 |
| | | sort: 'StartDate' |
| | | column_OrderID |
| | | { |
| | | columnId: 'OrderID' |
| | | dataPath: 'OrderID' |
| | | dataType: 'string' |
| | | title: '订åå·' |
| | | index: 0 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_ProductID |
| | | { |
| | | columnId: 'ProductID' |
| | | dataPath: 'ProductID' |
| | | dataType: 'string' |
| | | title: 'ç©æå·' |
| | | index: 1 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_SalesSegmentName |
| | | { |
| | | columnId: 'SalesSegmentName' |
| | | dataPath: 'SalesSegmentName' |
| | | dataType: 'string' |
| | | title: 'éå®é¨é¨' |
| | | index: 2 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_StockingPointID |
| | | { |
| | | columnId: 'StockingPointID' |
| | | dataPath: 'StockingPointID' |
| | | dataType: 'string' |
| | | title: 'åºåç¹' |
| | | index: 3 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_CustomerName |
| | | { |
| | | columnId: 'CustomerName' |
| | | dataPath: 'CustomerName' |
| | | dataType: 'string' |
| | | title: '客æ·åç§°' |
| | | index: 4 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_Quantity |
| | | { |
| | | columnId: 'Quantity' |
| | | dataPath: 'Quantity' |
| | | dataType: 'real' |
| | | index: 5 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_UnitOfMeasureName |
| | | { |
| | | columnId: 'UnitOfMeasureName' |
| | | dataPath: 'UnitOfMeasureName' |
| | | dataType: 'string' |
| | | title: 'åä½' |
| | | index: 6 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_Price |
| | | { |
| | | columnId: 'Price' |
| | | dataPath: 'Price' |
| | | dataType: 'real' |
| | | title: 'éå®é¢' |
| | | index: 7 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_StartDate |
| | | { |
| | | columnId: 'StartDate' |
| | | dataPath: 'StartDate' |
| | | dataType: 'date' |
| | | title: '客æ·éæ±æ¶é´' |
| | | index: 8 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_IsLocked |
| | | { |
| | | columnId: 'IsLocked' |
| | | dataPath: 'IsLocked' |
| | | dataType: 'boolean' |
| | | title: 'ç¶æ' |
| | | index: 9 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_First_AsPlanningBaseSalesDemandInPeriod_End |
| | | { |
| | | columnId: 'First.AsPlanningBaseSalesDemandInPeriod.End' |
| | | dataPath: 'First.AsPlanningBaseSalesDemandInPeriod.End' |
| | | dataType: 'datetime' |
| | | title: '计åäº¤ä»æ¶é´' |
| | | index: 10 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_LastModify |
| | | { |
| | | columnId: 'LastModify' |
| | | dataPath: 'LastModify' |
| | | dataType: 'string' |
| | | title: 'æåæä½äºº' |
| | | index: 11 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_LastModifyTime |
| | | { |
| | | columnId: 'LastModifyTime' |
| | | dataPath: 'LastModifyTime' |
| | | dataType: 'datetime' |
| | | title: 'æåæä½æ¶é´' |
| | | index: 12 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | } |
| | | FormOrderLock_PanelOrderLockPlanning |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormOrderLock_PanelMatrix |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormOrderLock_MatrixEditorProductPlanning |
| | | { |
| | | gridColor: '#c4c4c4' |
| | | totalHeaderWidth: 200 |
| | | attributeHeaderWidthRatio: 0.6 |
| | | nameHeaderWidthRatio: 0.4 |
| | | totalHeaderWidth: 427 |
| | | attributeHeaderWidthRatio: 0.325989701966572 |
| | | nameHeaderWidthRatio: 0.674010298033429 |
| | | columnWidth: 100 |
| | | horizontalGrid: true |
| | | verticalGrid: true |
| | | backendState |
| | | { |
| | | componentId: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison.MatrixEditorFinancialKPIs' |
| | | componentId: 'QTIANMA_JITUAN::FormOrderLock.MatrixEditorProductPlanning' |
| | | state |
| | | { |
| | | cells |
| | | { |
| | | attributes |
| | | { |
| | | attribute_DisplayValue |
| | | attribute_DisplaySupplyQuantity |
| | | { |
| | | type: 'MatrixEditorWebApiCellDataModelInterest' |
| | | index: 0 |
| | | rowsubtotal: '' |
| | | columnsubtotal: '' |
| | | attribute: 'DisplayValue' |
| | | attribute: 'DisplaySupplyQuantity' |
| | | } |
| | | attribute_DependentDemandAndSalesDemandQuantity |
| | | { |
| | | type: 'MatrixEditorWebApiCellDataModelInterest' |
| | | index: 1 |
| | | rowsubtotal: '' |
| | | columnsubtotal: '' |
| | | attribute: 'DependentDemandAndSalesDemandQuantity' |
| | | } |
| | | attribute_TargetInventoryLevel |
| | | { |
| | | type: 'MatrixEditorWebApiCellDataModelInterest' |
| | | index: 2 |
| | | rowsubtotal: '' |
| | | columnsubtotal: '' |
| | | attribute: 'TargetInventoryLevel' |
| | | } |
| | | attribute_InventoryLevelEnd |
| | | { |
| | | type: 'MatrixEditorWebApiCellDataModelInterest' |
| | | index: 3 |
| | | rowsubtotal: '' |
| | | columnsubtotal: '' |
| | | attribute: 'InventoryLevelEnd' |
| | | } |
| | | attribute_StockLevelInDays |
| | | { |
| | | type: 'MatrixEditorWebApiCellDataModelInterest' |
| | | index: 4 |
| | | rowsubtotal: '' |
| | | columnsubtotal: '' |
| | | attribute: 'StockLevelInDays' |
| | | } |
| | | } |
| | | } |
| | |
| | | { |
| | | sorting |
| | | { |
| | | criteria: '' |
| | | criteria: "datamember:'Start'" |
| | | } |
| | | } |
| | | rows |
| | | { |
| | | sorting |
| | | { |
| | | criteria: "datamember:'KPISetting.DisplayIndex'" |
| | | criteria: "datamember:'Product_MP.DisplayIndex';datamember:'Name'" |
| | | } |
| | | } |
| | | } |
| | |
| | | userconfigurableinformation |
| | | { |
| | | } |
| | | index: 2 |
| | | image: 'DOCUMENT_LOCK' |
| | | page: 'applicationDevelopmentActionBarPageDef' |
| | | group: '' |
| | | index: 2 |
| | | image: 'DOCUMENT_LOCK' |
| | | description: '' |
| | | } |
| | | formatversion: 2 |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | { |
| | | viewcontents |
| | | { |
| | | forms |
| | | { |
| | | form_FormCapacityAllocationResultsRuleConfiguration |
| | | { |
| | | title: 'QTIANMA_JITUAN::FormCapacityAllocationResultsRuleConfiguration' |
| | | shown: true |
| | | componentID: 'QTIANMA_JITUAN::FormCapacityAllocationResultsRuleConfiguration' |
| | | layout |
| | | { |
| | | mode: 'open' |
| | | rowPosition: 1 |
| | | rowSpan: 15 |
| | | columnPosition: 1 |
| | | columnSpan: 4 |
| | | } |
| | | components |
| | | { |
| | | FormCapacityAllocationResultsRuleConfiguration_PanelImportAndExport |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormCapacityAllocationResultsRuleConfiguration_ListCapacityAllocationResultsRuleConfiguration |
| | | { |
| | | } |
| | | FormCapacityAllocationResultsRuleConfiguration_DataSetLevelCapacityAllocationResultsRuleConfiguration |
| | | { |
| | | groupDepth: -1 |
| | | column_PanelMaterialCode |
| | | { |
| | | columnId: 'PanelMaterialCode' |
| | | dataPath: 'PanelMaterialCode' |
| | | dataType: 'string' |
| | | index: 0 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_ModuleMaterialCode |
| | | { |
| | | columnId: 'ModuleMaterialCode' |
| | | dataPath: 'ModuleMaterialCode' |
| | | dataType: 'string' |
| | | index: 1 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_Division |
| | | { |
| | | columnId: 'Division' |
| | | dataPath: 'Division' |
| | | dataType: 'string' |
| | | index: 2 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_StockingPointID |
| | | { |
| | | columnId: 'StockingPointID' |
| | | dataPath: 'StockingPointID' |
| | | dataType: 'string' |
| | | index: 3 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | form_FormCapacityAllocationResults |
| | | { |
| | | title: 'QTIANMA_JITUAN::FormCapacityAllocationResults' |
| | | shown: true |
| | | componentID: 'QTIANMA_JITUAN::FormCapacityAllocationResults' |
| | | layout |
| | | { |
| | | mode: 'open' |
| | | rowPosition: 1 |
| | | rowSpan: 15 |
| | | columnPosition: 5 |
| | | columnSpan: 8 |
| | | } |
| | | components |
| | | { |
| | | FormCapacityAllocationResults_PanelCapacityAllocationResults |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormCapacityAllocationResults_ListCapacityAllocationResults |
| | | { |
| | | } |
| | | FormCapacityAllocationResults_DataSetLevelCapacityAllocationResults |
| | | { |
| | | groupDepth: -1 |
| | | column_Date |
| | | { |
| | | columnId: 'Date' |
| | | dataPath: 'Date' |
| | | dataType: 'date' |
| | | index: 0 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_Description |
| | | { |
| | | columnId: 'Description' |
| | | dataPath: 'Description' |
| | | dataType: 'string' |
| | | index: 1 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_ID |
| | | { |
| | | columnId: 'ID' |
| | | dataPath: 'ID' |
| | | dataType: 'string' |
| | | index: 2 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_ProductID |
| | | { |
| | | columnId: 'ProductID' |
| | | dataPath: 'ProductID' |
| | | dataType: 'string' |
| | | index: 3 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_StockingPointID |
| | | { |
| | | columnId: 'StockingPointID' |
| | | dataPath: 'StockingPointID' |
| | | dataType: 'string' |
| | | index: 4 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_UserQuantity |
| | | { |
| | | columnId: 'UserQuantity' |
| | | dataPath: 'UserQuantity' |
| | | dataType: 'real' |
| | | index: 5 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_ManufacturedDate |
| | | { |
| | | columnId: 'ManufacturedDate' |
| | | dataPath: 'ManufacturedDate' |
| | | dataType: 'date' |
| | | index: 6 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | userconfigurableinformation |
| | | { |
| | | } |
| | | image: 'BEAR' |
| | | page: '' |
| | | group: '' |
| | | index: 0 |
| | | description: '' |
| | | } |
| | | formatversion: 2 |
| | | id: 'Test' |
| | | name: 'Test' |
| | | isglobal: false |
| | | isroot: true |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | { |
| | | SelectableAttributes |
| | | { |
| | | ID |
| | | { |
| | | attribute: 'ID' |
| | | isactive: true |
| | | } |
| | | IsLocked |
| | | { |
| | | attribute: 'IsLocked' |
| | | isactive: true |
| | | } |
| | | } |
| | | meta_ |
| | | { |
| | | type: 'CustomerOrder' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | { |
| | | viewcontents |
| | | { |
| | | forms |
| | | { |
| | | form_FormCapacityAllocationResults |
| | | { |
| | | layout |
| | | { |
| | | rowSpan: 15 |
| | | columnPosition: 5 |
| | | columnSpan: 8 |
| | | } |
| | | } |
| | | form_FormCapacityAllocationResultsRuleConfiguration |
| | | { |
| | | title: 'QTIANMA_JITUAN::FormCapacityAllocationResultsRuleConfiguration' |
| | | shown: true |
| | | componentID: 'QTIANMA_JITUAN::FormCapacityAllocationResultsRuleConfiguration' |
| | | layout |
| | | { |
| | | mode: 'open' |
| | | rowPosition: 1 |
| | | rowSpan: 15 |
| | | columnPosition: 1 |
| | | columnSpan: 4 |
| | | } |
| | | components: null |
| | | } |
| | | form_FormPanelPullPlanReport |
| | | { |
| | | _removed: true |
| | | } |
| | | } |
| | | } |
| | | formatversion: 2 |
| | | id: 'Test' |
| | | name: 'Test' |
| | | isglobal: false |
| | | isroot: false |
| | | } |