Merge remote-tracking branch 'refs/remotes/origin/dev'
已修改46个文件
已添加79个文件
已删除1个文件
| | |
| | | #parent: #root |
| | | EDIBroker GlobalOTDTable_CAR_Export |
| | | { |
| | | MDSDefinition: GlobalOTDTable |
| | | MDSDefinition: GlobalOTDSOP |
| | | TimeZone: 'ACT' |
| | | UseOSTimeZone: false |
| | | EDIModelLink.Source Source13 |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation PeggingProductInSalesDemandBase_PeggingProduct_MP_PeggingProduct_MP_PeggingProductInSalesDemandBase |
| | | { |
| | | #keys: '1[414702.1.290710058]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide PeggingProduct_MP |
| | | { |
| | | #keys: '3[414702.1.290710060][414702.1.290710059][414702.1.290710061]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: PeggingProductInSalesDemandBase |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide PeggingProductInSalesDemandBase |
| | | { |
| | | #keys: '3[414702.1.290710063][414702.1.290710062][414702.1.290710064]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: PeggingProduct_MP |
| | | OwningSide: 'Owned' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation PeggingProduct_MP_GlobalOTDSOP_GlobalOTDSOP_PeggingProduct_MP |
| | | { |
| | | #keys: '1[414702.1.290710038]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide GlobalOTDSOP |
| | | { |
| | | #keys: '3[414702.1.290710040][414702.1.290710039][414702.1.290710041]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: PeggingProduct_MP |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide PeggingProduct_MP |
| | | { |
| | | #keys: '3[414702.1.290710043][414702.1.290710042][414702.1.290710044]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: GlobalOTDSOP |
| | | OwningSide: 'Owned' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation PeggingResult_AllChild_PeggingResult_AllParent |
| | | { |
| | | #keys: '1[414702.1.294852003]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide AllChild |
| | | { |
| | | #keys: '3[414702.1.294852005][414702.1.294852004][414702.1.294852006]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: PeggingResult |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide AllParent |
| | | { |
| | | #keys: '3[414702.1.294852008][414702.1.294852007][414702.1.294852009]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: PeggingResult |
| | | OwningSide: 'Reference' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation PeggingResult_AllGroupChild_PeggingResult_AllGroupParent |
| | | { |
| | | #keys: '1[414702.1.320753677]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide AllGroupChild |
| | | { |
| | | #keys: '3[414702.1.320753679][414702.1.320753678][414702.1.320753680]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: PeggingResult |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide AllGroupParent |
| | | { |
| | | #keys: '3[414702.1.320753682][414702.1.320753681][414702.1.320753683]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: PeggingResult |
| | | OwningSide: 'Reference' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation PeggingResult_Child_PeggingResult_Parent |
| | | { |
| | | #keys: '1[414702.1.290710113]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide Child |
| | | { |
| | | #keys: '3[414702.1.290710115][414702.1.290710114][414702.1.290710116]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: PeggingResult |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide Parent |
| | | { |
| | | #keys: '3[414702.1.290710118][414702.1.290710117][414702.1.290710119]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: PeggingResult |
| | | OwningSide: 'Reference' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation PeggingResult_PeggingProductInSalesDemandBase_PeggingProductInSalesDemandBase_PeggingResult |
| | | { |
| | | #keys: '1[414702.1.290710098]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide PeggingProductInSalesDemandBase |
| | | { |
| | | #keys: '3[414702.1.290710100][414702.1.290710099][414702.1.290710101]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: PeggingResult |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide PeggingResult |
| | | { |
| | | #keys: '3[414702.1.290710103][414702.1.290710102][414702.1.290710104]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: PeggingProductInSalesDemandBase |
| | | OwningSide: 'Owned' |
| | | } |
| | | } |
| | |
| | | if( productId <> "" ) { |
| | | product := Product_MP::FindById( macroPlan, productId ); |
| | | }else{ |
| | | // info( productId ); |
| | | // cf := select( source, |
| | | // AsSourceUnitOfMeasure, |
| | | // cf, |
| | | // ( cf.TargetUnitOfMeasure() = target |
| | | // or cf.TargetUnitOfMeasure() = source ) |
| | | // and cf.Product_MP() = product |
| | | // ); |
| | | // info( isnull( cf ) ); |
| | | // info( "sourceuomname: " + cf.astype( BaseConversionFactor ).SourceUnitOfMeasureName() ); |
| | | // info( "targetuomname: " + target.Name() ); |
| | | // info( "cf.targetuomname: " + cf.astype( BaseConversionFactor ).TargetUnitOfMeasureName() ); |
| | | // info( "productid: " + guard( product.ID(), "" ) ); |
| | | // info( "cf.product: " + cf.astype( BaseConversionFactor ).ProductID() ); |
| | | result := BaseConversionFactor::CreateUpdate( source, target, factor, product, isEnable ) |
| | | } |
| | | |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod Export ( |
| | | GlobalOTDTable globalOTDTable |
| | | GlobalOTDSOP globalOTDSOP |
| | | ) as BinaryValue |
| | | { |
| | | TextBody: |
| | | [* |
| | | binaryData := globalOTDTable.GlobalOTDTable_CAR_Export().ExecuteToXLS( true ); |
| | | binaryData := globalOTDSOP.GlobalOTDTable_CAR_Export().ExecuteToXLS( true ); |
| | | |
| | | return binaryData.AsBinaryValue(); |
| | | *] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CreateData ( |
| | | const GlobalOTDTable globalOTDTable, |
| | | GlobalOTDSOP this |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | traverse ( globalOTDTable, Global_MappingAnnualBudgetData, gmabd ) { |
| | | productCode := gmabd.ProductID(); |
| | | row := CapacityAndSaleBudgeCompareItemRow::CreateIfNotExist( this, gmabd.BusinessType(), gmabd.OrganCode() ); |
| | | CapacityAndSaleBudgeCompareItemRowProduct::CreateIfNotExist( row, productCode ); |
| | | } |
| | | |
| | | columnBusinessType := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "äºä¸é¨" ); |
| | | columnPlaceOfProductionOfArray := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "颿¿åºå°" ); |
| | | traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | | cell := columnBusinessType.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.BusinessType() ); |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); |
| | | cell := columnPlaceOfProductionOfArray.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.PlaceOfProductionOfArray() ); |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CreatePanelAllocationBudget ( |
| | | GlobalOTDSOP this, |
| | | CapacityAndSaleBudgeFilterMonths months, |
| | | CapacityAndSaleBudgeFilterYear year, |
| | | const GlobalOTDTable globalOTDTable |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) { |
| | | total := 0.0; |
| | | traverse ( months, Elements, m ) { |
| | | columnName := "颿¿åé
é-" + [String]year.YearNo() + "å¹´-" + [String]m.MonthNo() + "æ-年度é¢ç®"; |
| | | columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName ); |
| | | cellReal := Global_MappingForecast::GetQuantityByMonth( casbcir.GetProductCodes(), globalOTDTable, DateTime::Now().Year(), m.MonthNo() ); |
| | | cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); |
| | | total := total + cellReal; |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); |
| | | } |
| | | columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "颿¿åé
é-" + [String]year.YearNo() + "å¹´-total-年度é¢ç®" ); |
| | | cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total ); |
| | | columnYear.TotalIdentification( year.YearNo() ); |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CreatePanelAllocationByScenario ( |
| | | MacroPlans macroPlans, |
| | | GlobalOTDSOP this, |
| | | CapacityAndSaleBudgeFilterMonths months, |
| | | CapacityAndSaleBudgeFilterYear year |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | traverse ( macroPlans, Elements, mp ) { |
| | | traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) { |
| | | total := 0.0; |
| | | traverse ( months, Elements, m ) { |
| | | columnName := "颿¿åé
é-" + [String]year.YearNo() + "å¹´-" + [String]m.MonthNo() + "æ-" + mp.ScenarioName(); |
| | | columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName ); |
| | | cellReal := Product_MP::GetNewSupplyByMonth( casbcir.GetProductCodes(), mp, year.YearNo(), m.MonthNo() ); |
| | | cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); |
| | | total := total + cellReal; |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); |
| | | } |
| | | columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "颿¿åé
é-" + [String]year.YearNo() + "å¹´-total-" + mp.ScenarioName() ); |
| | | cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total ); |
| | | columnYear.TotalIdentification( year.YearNo() ); |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); |
| | | } |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CreateSalesVolume ( |
| | | GlobalOTDSOP this, |
| | | CapacityAndSaleBudgeFilterMonths months, |
| | | CapacityAndSaleBudgeFilterYear year, |
| | | const GlobalOTDTable globalOTDTable |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) { |
| | | total := 0.0; |
| | | traverse ( months, Elements, m ) { |
| | | columnName := "对å¤éå®é¢-" + [String]year.YearNo() + "å¹´-" + [String]m.MonthNo() + "æ-年度é¢ç®"; |
| | | columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName ); |
| | | cellReal := Global_MappingAnnualBudgetData::GetSaleByMonth( casbcir.GetProductCodes(), globalOTDTable, year.YearNo(), m.MonthNo() ); |
| | | cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); |
| | | total := total + cellReal; |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); |
| | | } |
| | | columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对å¤éå®é¢-" + [String]year.YearNo() + "å¹´-total-年度é¢ç®" ); |
| | | cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total ); |
| | | columnYear.TotalIdentification( year.YearNo() ); |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CreateSalesVolumeByScenario ( |
| | | MacroPlans macroPlans, |
| | | GlobalOTDSOP this, |
| | | CapacityAndSaleBudgeFilterMonths months, |
| | | CapacityAndSaleBudgeFilterYear year |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | traverse ( macroPlans, Elements, mp ) { |
| | | traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) { |
| | | total := 0.0; |
| | | traverse ( months, Elements, m ) { |
| | | columnName := "对å¤éå®é¢-" + [String]year.YearNo() + "å¹´-" + [String]m.MonthNo() + "æ-" + mp.ScenarioName(); |
| | | columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName ); |
| | | cellReal := Forecast::GetFulfilledBalanceByMonth( casbcir.GetProductCodes(), mp, year.YearNo(), m.MonthNo() ); |
| | | cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); |
| | | total := total + cellReal; |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); |
| | | } |
| | | columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对å¤éå®é¢-" + [String]year.YearNo() + "å¹´-total-" + mp.ScenarioName() ); |
| | | cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total ); |
| | | columnYear.TotalIdentification( year.YearNo() ); |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); |
| | | } |
| | | } |
| | | *] |
| | | } |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CreateCurrencyRate ( |
| | | MacroPlan mp, |
| | | String currencyid, |
| | | Date start, |
| | | Real rate |
| | |
| | | [* |
| | | // Administrator Jul-19-2023 (created) |
| | | isfromdb := true; |
| | | currency := Currency_MP::FindCurrencyTypeIndex( currencyid ); |
| | | currency := Currency_MP::FindById( mp, currencyid ); |
| | | |
| | | //create new currency |
| | | result := CurrencyRate_MP::FindCurrencyRateTypeIndex( currencyid, start ); |
| | | result := CurrencyRate_MP::FindByIdAndStart( currency, currencyid, start ); |
| | | |
| | | if( isnull( result ) ) |
| | | { |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CreateCurrencyRateFromJson ( |
| | | MacroPlan mp, |
| | | JSON datarow |
| | | ) as CurrencyRate_MP |
| | | { |
| | |
| | | day := [Number]startstring.SubString( 8, 2 ); |
| | | |
| | | start := Date::Construct( years, month, day ); |
| | | result := CurrencyRate_MP::CreateCurrencyRate( currencyid, start, rate ); |
| | | result := CurrencyRate_MP::CreateCurrencyRate( mp, currencyid, start, rate ); |
| | | |
| | | return result; |
| | | *] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CreateFromMapping ( |
| | | const GlobalOTDTable globalOTDTable, |
| | | MacroPlan macroPlan |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // Administrator Oct-31-2023 (created) |
| | | updates := construct( CurrencyRate_MPs ); |
| | | traverse( globalOTDTable, Global_MappingCurrencyRate_MP, gcr, true ) |
| | | { |
| | | a := CurrencyRate_MP::CreateCurrencyRate( macroPlan, gcr.CurrencyID(), gcr.Start(), gcr.Rate() ); |
| | | updates.Add( a ); |
| | | } |
| | | origindataset := selectset( macroPlan, Currency_MP.CurrencyRate_MP, cr, true ); |
| | | obsoletes := origindataset.Difference( updates ); |
| | | // delete obsoleted |
| | | difflength := obsoletes.Size(); |
| | | for( j:=0; j<difflength; j++ ) |
| | | { |
| | | obsolete := obsoletes.Element( j ); |
| | | obsolete.Delete(); |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod FindByIdAndStart ( |
| | | Currency_MP owner, |
| | | String id, |
| | | Date start |
| | | ) as CurrencyRate_MP |
| | | { |
| | | TextBody: |
| | | [* |
| | | // yypsybs Aug-14-2023 (created) |
| | | |
| | | result := select( owner, CurrencyRate_MP, item, true, item.CurrencyID() = id and item.Start() = start ); |
| | | |
| | | return result; |
| | | *] |
| | | } |
| | |
| | | isfromdb := true; |
| | | |
| | | //create new currency |
| | | result := Currency_MP::FindCurrencyTypeIndex( id ); |
| | | result := Currency_MP::FindById( mp, id ); |
| | | |
| | | if( isnull( result ) ) |
| | | { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CreateFromMapping ( |
| | | const GlobalOTDTable globalOTDTable, |
| | | MacroPlan macroPlan |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // Administrator Oct-31-2023 (created) |
| | | updates := construct( Currency_MPs ); |
| | | traverse( globalOTDTable, Global_MappingCurrency_MP, gc, true ) |
| | | { |
| | | a := Currency_MP::CreateCurrency( macroPlan, gc.ID(), gc.Name(), " ", gc.IsBase() ); |
| | | updates.Add( a ); |
| | | } |
| | | origindataset := selectset( macroPlan, Currency_MP, c, true ); |
| | | obsoletes := origindataset.Difference( updates ); |
| | | // delete obsoleted |
| | | difflength := obsoletes.Size(); |
| | | for( j:=0; j<difflength; j++ ) |
| | | { |
| | | obsolete := obsoletes.Element( j ); |
| | | obsolete.Delete(); |
| | | } |
| | | *] |
| | | } |
| | |
| | | // yypsybs Sep-18-2023 (created) |
| | | result := sum( macroPlan, |
| | | Product_MP.SalesDemand, |
| | | item, |
| | | item.istype( Forecast ) and productNo.Find( item.ProductID() ) > -1 |
| | | and item.StartDate().Year() = yearNo |
| | | and item.StartDate().Month() = monthNo, |
| | | item.FulfilledQuantity() * item.Price() ); |
| | | tempSD, |
| | | productNo.Find( tempSD.ProductID() ) > -1 |
| | | and tempSD.StartDate().Year() = yearNo |
| | | and tempSD.StartDate().Month() = monthNo, |
| | | tempSD.FulfilledQuantity() * tempSD.Price() ); |
| | | return result; |
| | | *] |
| | | } |
| | |
| | | macroPlan.InitialUnitAndStockingPoint(); |
| | | |
| | | if ( isUnitOfMeasure_MP ) { |
| | | Global_MappingUnitOfMeasure_MP::SynchronizeMacroPlanData( this, macroPlan ); |
| | | Global_MappingUnitOfMeasure_MP::SynchronizeMacroPlanData( this, macroPlan, executionUser ); |
| | | } |
| | | |
| | | if ( isCustomOrder ) { |
| | | Global_MappingCustomOrder::SynchronizeMacroPlanData( this, macroPlan, executionUser ); |
| | | Global_MappingCustomOrder::SynchronizeMacroPlanData( this, macroPlan, businessTypes, organcodelist, executionUser ); |
| | | } |
| | | |
| | | if ( isForeacst ) { |
| | |
| | | } |
| | | |
| | | if ( isProductInLane ) { |
| | | Global_MappingProductInLane::SynchronizeMacroPlanData( this, macroPlan, executionUser ); |
| | | Global_MappingProductInLane::SynchronizeMacroPlanData( this, macroPlan, businessTypes, executionUser ); |
| | | } |
| | | |
| | | if ( isAIPISPIP ) { |
| | |
| | | } |
| | | |
| | | if ( isStockingPointCost ) { |
| | | Global_MappingStockingPointCost::SynchronizeMacroPlanData( this, macroPlan, executionUser ); |
| | | Global_MappingStockingPointCost::SynchronizeMacroPlanData( this, macroPlan, businessTypes, executionUser ); |
| | | } |
| | | |
| | | if ( isOperationCost ) { |
| | |
| | | CapacityAndSaleBudgeFilterItems items, |
| | | CapacityAndSaleBudgeFilterYears years, |
| | | CapacityAndSaleBudgeFilterMonths months, |
| | | const GlobalOTDTable otdTable |
| | | const GlobalOTDTable globalOTDTable |
| | | ) |
| | | { |
| | | Description: 'todo : mappingParentæ¹ä¸ºmpSync, randomå äº' |
| | | TextBody: |
| | | [* |
| | | // ====ä¸éæ¶é»è®¤å
¨é==== |
| | | if ( years.Size() = 0 ) { |
| | | years := selectset( this, CapacityAndSaleBudgeFilterYear, tempCASBFY, tempCASBFY.YearNo() = Date::ActualDate().Year() ); |
| | | } |
| | |
| | | this.CapacityAndSaleBudgeCompareItemRow( relflush ); |
| | | this.CapacityAndSaleBudgeCompareItemColumn( relflush ); |
| | | |
| | | // ====æ±æ»ææåºç°ç产å==== |
| | | targetglobal_MappingAnnualBudgetData := selectset( otdTable, Global_MappingAnnualBudgetData, item, true ); |
| | | CapacityAndSaleBudgeCompareItemCell::CreateData( globalOTDTable, this ); |
| | | |
| | | traverse ( targetglobal_MappingAnnualBudgetData, Elements, gmabd ) { |
| | | productCode := gmabd.ProductID(); |
| | | // Global_MappingOperationBOM::CreateTestData( otdTable, "äºä¸é¨" + [String](productCode.Length() mod 3), "颿¿åºå°" + [String](productCode.Length() mod 4), productCode ); |
| | | // boms := selectset( otdTable, Global_MappingOperationBOM, bom, bom.ProductCode() = productCode ); |
| | | // if( boms.Size() > 0 ) { |
| | | // bom := boms.First(); |
| | | // businessType := bom.BusinessType(); |
| | | // placeOfProductionOfArray := bom.OrganCode(); |
| | | // ç¸å颿¿åºå°åäºä¸é¨çæ¾ä¸è¡ |
| | | row := CapacityAndSaleBudgeCompareItemRow::CreateIfNotExist( this, gmabd.BusinessType(), gmabd.OrganCode() ); |
| | | // è®°å½æ¯è¡å
å«åªäºproduct |
| | | CapacityAndSaleBudgeCompareItemRowProduct::CreateIfNotExist( row, productCode ); |
| | | // } else { |
| | | // debuginfo( "no boms for product : " + productCode ); |
| | | // } |
| | | } |
| | | |
| | | // ====ä»å·¦åå³çæå头ä¸å
容==== |
| | | // äºä¸é¨ï¼é¢æ¿åºå° |
| | | columnBusinessType := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "äºä¸é¨" ); |
| | | columnPlaceOfProductionOfArray := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "颿¿åºå°" ); |
| | | traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | | cell := columnBusinessType.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.BusinessType() ); |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); |
| | | cell := columnPlaceOfProductionOfArray.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := row.PlaceOfProductionOfArray() ); |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); |
| | | } |
| | | |
| | | // 颿¿åé
é - 年度é¢ç® (sheets) |
| | | // æ ¼å¼ï¼ 颿¿åé
é - å¹´ - æï¼1-12 & totalï¼ - 年度é¢ç®/scenarioName |
| | | if ( CapacityAndSaleBudgeFilterItem::Contains( items, "颿¿åé
é" ) ) { |
| | | traverse ( years, Elements, year ) { |
| | | // å岿°æ® |
| | | // traverse ( months, Elements, month ) { |
| | | // columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "颿¿åé
é-" + [String]year.YearNo() + "å¹´-" + [String]month.MonthNo() + "æ-年度é¢ç®" ); |
| | | // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | | // cellReal := Global_MappingForecast::GetQuantityByMonth( row.GetProductCodes(), otdTable, DateTime::Now().Year(), month.MonthNo() ); |
| | | // cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); |
| | | // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); |
| | | // } |
| | | // } |
| | | // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "颿¿åé
é-" + [String]year.YearNo() + "å¹´-total-年度é¢ç®" ); |
| | | // traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | | // cellReal := Global_MappingForecast::GetQuantityByYear( row.GetProductCodes(), otdTable, year.YearNo() ); |
| | | // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); |
| | | // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); |
| | | // } |
| | | |
| | | traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) { |
| | | total := 0.0; |
| | | traverse ( months, Elements, m ) { |
| | | columnName := "颿¿åé
é-" + [String]year.YearNo() + "å¹´-" + [String]m.MonthNo() + "æ-年度é¢ç®"; |
| | | columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName ); |
| | | cellReal := Global_MappingForecast::GetQuantityByMonth( casbcir.GetProductCodes(), otdTable, DateTime::Now().Year(), m.MonthNo() ); |
| | | cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); |
| | | total := total + cellReal; |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); |
| | | } |
| | | columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "颿¿åé
é-" + [String]year.YearNo() + "å¹´-total-年度é¢ç®" ); |
| | | cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total ); |
| | | columnYear.TotalIdentification( year.YearNo() ); |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); |
| | | } |
| | | |
| | | // S&OPæ°æ® |
| | | // traverse ( macroPlans, Elements, macroPlan ) { |
| | | // traverse ( months, Elements, month ) { |
| | | // columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, |
| | | // "颿¿åé
é-" + [String]year.YearNo() + "å¹´-" + [String]month.MonthNo() + "æ-" + macroPlan.ScenarioName() ); |
| | | // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | | // cellReal := Product_MP::GetNewSupplyByMonth( row.GetProductCodes(), macroPlan, year.YearNo(), month.MonthNo() ); |
| | | // cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); |
| | | // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); |
| | | // } |
| | | // } |
| | | // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, |
| | | // "颿¿åé
é-" + [String]year.YearNo() + "å¹´-total-" + macroPlan.ScenarioName() ); |
| | | // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | | // cellReal := Product_MP::GetNewSupplyByYear( row.GetProductCodes(), macroPlan, year.YearNo() ); |
| | | // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); |
| | | // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); |
| | | // } |
| | | // } |
| | | traverse ( macroPlans, Elements, mp ) { |
| | | traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) { |
| | | total := 0.0; |
| | | traverse ( months, Elements, m ) { |
| | | columnName := "颿¿åé
é-" + [String]year.YearNo() + "å¹´-" + [String]m.MonthNo() + "æ-" + mp.ScenarioName(); |
| | | columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName ); |
| | | cellReal := Product_MP::GetNewSupplyByMonth( casbcir.GetProductCodes(), mp, year.YearNo(), m.MonthNo() ); |
| | | cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); |
| | | total := total + cellReal; |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); |
| | | } |
| | | columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "颿¿åé
é-" + [String]year.YearNo() + "å¹´-total-" + mp.ScenarioName() ); |
| | | cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total ); |
| | | columnYear.TotalIdentification( year.YearNo() ); |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); |
| | | } |
| | | } |
| | | CapacityAndSaleBudgeCompareItemCell::CreatePanelAllocationBudget( this, months, year, globalOTDTable ); |
| | | CapacityAndSaleBudgeCompareItemCell::CreatePanelAllocationByScenario( macroPlans, this, months, year ); |
| | | } |
| | | } |
| | | |
| | | // 年度éå®é¢ |
| | | if ( CapacityAndSaleBudgeFilterItem::Contains( items, "éå®é¢" ) ) { |
| | | traverse ( years, Elements, year ) { |
| | | // å岿°æ® |
| | | // traverse ( months, Elements, month ) { |
| | | // columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对å¤éå®é¢-" + [String]year.YearNo() + "å¹´-" + [String]month.MonthNo() + "æ-年度é¢ç®" ); |
| | | // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | | // cellReal := Global_MappingAnnualBudgetData::GetSaleByMonth( row.GetProductCodes(), otdTable, year.YearNo(), month.MonthNo() ); |
| | | // cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); |
| | | // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); |
| | | // } |
| | | // } |
| | | // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对å¤éå®é¢-" + [String]year.YearNo() + "å¹´-年度é¢ç®" ); |
| | | // traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | | // cellReal := Global_MappingAnnualBudgetData::GetSaleByYear( row.GetProductCodes(), otdTable, year.YearNo() ); |
| | | // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); |
| | | // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); |
| | | // } |
| | | traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) { |
| | | total := 0.0; |
| | | traverse ( months, Elements, m ) { |
| | | columnName := "对å¤éå®é¢-" + [String]year.YearNo() + "å¹´-" + [String]m.MonthNo() + "æ-年度é¢ç®"; |
| | | columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName ); |
| | | cellReal := Global_MappingAnnualBudgetData::GetSaleByMonth( casbcir.GetProductCodes(), otdTable, year.YearNo(), m.MonthNo() ); |
| | | cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); |
| | | total := total + cellReal; |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); |
| | | } |
| | | columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对å¤éå®é¢-" + [String]year.YearNo() + "å¹´-total-年度é¢ç®" ); |
| | | cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total ); |
| | | columnYear.TotalIdentification( year.YearNo() ); |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); |
| | | } |
| | | |
| | | // S&OPæ°æ® |
| | | // traverse ( macroPlans, Elements, macroPlan ) { |
| | | // traverse ( months, Elements, month ) { |
| | | // columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对å¤éå®é¢-" + [String]year.YearNo() + "å¹´-" + [String]month.MonthNo() + "æ-" + macroPlan.ScenarioName() ); |
| | | // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | | // cellReal := Forecast::GetFulfilledBalanceByMonth( row.GetProductCodes(), macroPlan, year.YearNo(), month.MonthNo() ); |
| | | // cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); |
| | | // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); |
| | | // } |
| | | // } |
| | | // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对å¤éå®é¢-" + [String]year.YearNo() + "å¹´-total-" + macroPlan.ScenarioName() ); |
| | | // traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | | // // QID 23 |
| | | // cellReal := Forecast::GetFulfilledBalanceByYear( row.GetProductCodes(), macroPlan, year.YearNo() ); |
| | | // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); |
| | | // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); |
| | | // } |
| | | // } |
| | | traverse ( macroPlans, Elements, mp ) { |
| | | traverse ( this, CapacityAndSaleBudgeCompareItemRow, casbcir ) { |
| | | total := 0.0; |
| | | traverse ( months, Elements, m ) { |
| | | columnName := "对å¤éå®é¢-" + [String]year.YearNo() + "å¹´-" + [String]m.MonthNo() + "æ-" + mp.ScenarioName(); |
| | | columnMonth := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, columnName ); |
| | | cellReal := Forecast::GetFulfilledBalanceByMonth( casbcir.GetProductCodes(), mp, year.YearNo(), m.MonthNo() ); |
| | | cell := columnMonth.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]cellReal ); |
| | | total := total + cellReal; |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); |
| | | } |
| | | columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "对å¤éå®é¢-" + [String]year.YearNo() + "å¹´-total-" + mp.ScenarioName() ); |
| | | cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]total ); |
| | | columnYear.TotalIdentification( year.YearNo() ); |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, casbcir ); |
| | | } |
| | | } |
| | | CapacityAndSaleBudgeCompareItemCell::CreateSalesVolume( this, months, year, globalOTDTable ); |
| | | CapacityAndSaleBudgeCompareItemCell::CreateSalesVolumeByScenario( macroPlans, this, months, year ); |
| | | } |
| | | } |
| | | |
| | | // å¤§å¼ çå©é¢ |
| | | traverse ( years, Elements, year ) { |
| | | // å岿°æ® |
| | | columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "å¤§å¼ çå©é¢-" + [String]year.YearNo() + "å¹´-年度é¢ç®" ); |
| | | traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | | 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() + "å¹´-" + macroPlan.ScenarioName() ); |
| | | traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | | cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); |
| | | } |
| | | } |
| | | } |
| | | // 产åçå©é¢ |
| | | traverse ( years, Elements, year ) { |
| | | // å岿°æ® |
| | | columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "产åçå©é¢-" + [String]year.YearNo() + "å¹´-年度é¢ç®" ); |
| | | traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | | 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() + "å¹´-" + macroPlan.ScenarioName() ); |
| | | traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | | // todo |
| | | cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); |
| | | cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); |
| | | } |
| | | } |
| | | } |
| | | //traverse ( years, Elements, year ) { |
| | | // // å岿°æ® |
| | | // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "å¤§å¼ çå©é¢-" + [String]year.YearNo() + "å¹´-年度é¢ç®" ); |
| | | // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | | // 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() + "å¹´-" + macroPlan.ScenarioName() ); |
| | | // traverse( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | | // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); |
| | | // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); |
| | | // } |
| | | // } |
| | | //} |
| | | //// 产åçå©é¢ |
| | | //traverse ( years, Elements, year ) { |
| | | // // å岿°æ® |
| | | // columnYear := CapacityAndSaleBudgeCompareItemColumn::CreateIfNotExist( this, "产åçå©é¢-" + [String]year.YearNo() + "å¹´-年度é¢ç®" ); |
| | | // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | | // 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() + "å¹´-" + macroPlan.ScenarioName() ); |
| | | // traverse ( this, CapacityAndSaleBudgeCompareItemRow, row ) { |
| | | // // todo |
| | | // cell := columnYear.CapacityAndSaleBudgeCompareItemCell( relnew, CellContent := [String]Number::Random( 0, 0 ) ); |
| | | // cell.CapacityAndSaleBudgeCompareItemRow( relset, row ); |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | // 设置rowNoåcolumnNo |
| | | rowNo := 1; |
| | |
| | | TextBody: |
| | | [* |
| | | global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, |
| | | Name := "忥å®é
åºåæ°æ®", |
| | | BrokerName := "忥å®é
åºåæ°æ®", |
| | | ExecutionStatus := "InOperation", |
| | | IsSuccess := true, |
| | | ExecuteUser := executionUser |
| | | ); |
| | | |
| | | |
| | | try { |
| | | macroPlan.MappingActualPISPIPData( businessTypes, globalOTDTable, isKeyProduct, organcodelist ); |
| | | macroPlan.DoASyncMappingActualPISPIPData( businessTypes, globalOTDTable, isKeyProduct, organcodelist ); |
| | | |
| | | global_BrokerExecuteLog.ExecutionStatus( "Complete" ); |
| | | global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); |
| | |
| | | TextBody: |
| | | [* |
| | | global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, |
| | | Name := "忥åä½è½¬æ¢æ°æ®", |
| | | BrokerName := "忥åä½è½¬æ¢æ°æ®", |
| | | ExecutionStatus := "InOperation", |
| | | IsSuccess := true, |
| | | ExecuteUser := executionUser |
| | | ); |
| | | |
| | | |
| | | try { |
| | | macroPlan.MappingBaseConversionFactorData(globalOTDTable); |
| | | macroPlan.DoASyncMappingBaseConversionFactorData(globalOTDTable); |
| | | |
| | | global_BrokerExecuteLog.ExecutionStatus( "Complete" ); |
| | | global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); |
| | |
| | | TextBody: |
| | | [* |
| | | global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, |
| | | Name := "åæ¥è´§å¸æ±çæ°æ®", |
| | | BrokerName := "åæ¥è´§å¸æ±çæ°æ®", |
| | | ExecutionStatus := "InOperation", |
| | | IsSuccess := true, |
| | | ExecuteUser := executionUser |
| | | ); |
| | | |
| | | |
| | | try { |
| | | updates := construct( CurrencyRate_MPs ); |
| | | traverse( globalOTDTable, Global_MappingCurrencyRate_MP, gcr, true ) |
| | | { |
| | | a := CurrencyRate_MP::CreateCurrencyRate( gcr.CurrencyID(), gcr.Start(), gcr.Rate() ); |
| | | updates.Add( a ); |
| | | } |
| | | origindataset := selectset( macroPlan, Currency_MP.CurrencyRate_MP, cr, true ); |
| | | obsoletes := origindataset.Difference( updates ); |
| | | // delete obsoleted |
| | | difflength := obsoletes.Size(); |
| | | for( j:=0; j<difflength; j++ ) |
| | | { |
| | | obsolete := obsoletes.Element( j ); |
| | | obsolete.Delete(); |
| | | } |
| | | |
| | | CurrencyRate_MP::CreateFromMapping( globalOTDTable, macroPlan ); |
| | | global_BrokerExecuteLog.ExecutionStatus( "Complete" ); |
| | | global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); |
| | | } onerror { |
| | |
| | | TextBody: |
| | | [* |
| | | global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, |
| | | Name := "åæ¥è´§å¸æ°æ®", |
| | | BrokerName := "åæ¥è´§å¸æ°æ®", |
| | | ExecutionStatus := "InOperation", |
| | | IsSuccess := true, |
| | | ExecuteUser := executionUser |
| | | ); |
| | | |
| | | |
| | | try { |
| | | updates := construct( Currency_MPs ); |
| | | traverse( globalOTDTable, Global_MappingCurrency_MP, gc, true ) |
| | | { |
| | | a := Currency_MP::CreateCurrency( macroPlan, gc.ID(), gc.Name(), " ", gc.IsBase() ); |
| | | updates.Add( a ); |
| | | } |
| | | origindataset := selectset( macroPlan, Currency_MP, c, true ); |
| | | obsoletes := origindataset.Difference( updates ); |
| | | // delete obsoleted |
| | | difflength := obsoletes.Size(); |
| | | for( j:=0; j<difflength; j++ ) |
| | | { |
| | | obsolete := obsoletes.Element( j ); |
| | | obsolete.Delete(); |
| | | } |
| | | |
| | | Currency_MP::CreateFromMapping( globalOTDTable, macroPlan ); |
| | | global_BrokerExecuteLog.ExecutionStatus( "Complete" ); |
| | | global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); |
| | | } onerror { |
| | |
| | | StaticMethod SynchronizeMacroPlanData ( |
| | | GlobalOTDTable globalOTDTable, |
| | | MacroPlan macroPlan, |
| | | Strings businessTypes, |
| | | Strings organcodelist, |
| | | String executionUser |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, |
| | | Name := "åæ¥è®¢åæ°æ®", |
| | | BrokerName := "åæ¥è®¢åæ°æ®", |
| | | ExecutionStatus := "InOperation", |
| | | IsSuccess := true, |
| | | ExecuteUser := executionUser |
| | | ); |
| | | |
| | | |
| | | try { |
| | | Global_MappingCustomOrder::CreateCustomOrder( globalOTDTable, macroPlan ); |
| | | macroPlan.DoASyncMappingCustomerOrderData( businessTypes, globalOTDTable, organcodelist ); |
| | | |
| | | global_BrokerExecuteLog.ExecutionStatus( "Complete" ); |
| | | global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); |
| | |
| | | TextBody: |
| | | [* |
| | | global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, |
| | | Name := "忥颿µæ°æ®", |
| | | BrokerName := "忥颿µæ°æ®", |
| | | ExecutionStatus := "InOperation", |
| | | IsSuccess := true, |
| | | ExecuteUser := executionUser |
| | | ); |
| | | |
| | | |
| | | try { |
| | | macroPlan.MappingForecastData( businessTypes, globalOTDTable, organcodelist ); |
| | | macroPlan.DoASyncMappingForecastData( businessTypes, globalOTDTable, organcodelist ); |
| | | |
| | | global_BrokerExecuteLog.ExecutionStatus( "Complete" ); |
| | | global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); |
| | |
| | | TextBody: |
| | | [* |
| | | global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, |
| | | Name := "忥å¨éåºåæ°æ®", |
| | | BrokerName := "忥å¨éåºåæ°æ®", |
| | | ExecutionStatus := "InOperation", |
| | | IsSuccess := true, |
| | | ExecuteUser := executionUser |
| | | ); |
| | | |
| | | |
| | | try { |
| | | macroPlan.MappingExternalSupplyData( businessTypes, isKeyProduct ,globalOTDTable, organcodelist ); |
| | | macroPlan.DoASyncMappingExternalSupplyData( businessTypes, isKeyProduct, globalOTDTable, organcodelist ); |
| | | |
| | | global_BrokerExecuteLog.ExecutionStatus( "Complete" ); |
| | | global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); |
| | |
| | | TextBody: |
| | | [* |
| | | global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, |
| | | Name := "åæ¥è½¦éæ°æ®", |
| | | BrokerName := "åæ¥è½¦éæ°æ®", |
| | | ExecutionStatus := "InOperation", |
| | | IsSuccess := true, |
| | | ExecuteUser := executionUser |
| | | ); |
| | | |
| | | |
| | | try { |
| | | updates := construct( Lanes ); |
| | | traverse( globalOTDTable, Global_MappingLane, gl, true ) |
| | | { |
| | | id := gl.ID(); |
| | | unitid := gl.UnitID(); |
| | | name := gl.Name(); |
| | | userleadtime := gl.UserLeadTime(); |
| | | processingtime := Duration::Zero(); |
| | | |
| | | unitofmeasurename := "PCS"; |
| | | currencyid := "CNY"; |
| | | startdate := Date::Date( 1900, 1, 1 ); |
| | | enddate := Date::Date( 9999, 12, 31 ); |
| | | capacitytype := "Transport quantity"; |
| | | if( userleadtime.Length() = 0 ) |
| | | { |
| | | processingtime := Duration::Zero(); |
| | | } |
| | | else |
| | | { |
| | | processingtime := Duration::Hours( [Number]userleadtime ); |
| | | }; |
| | | |
| | | unit := Unit::FindUnitTypeIndex( unitid ); |
| | | if( isnull( unit)){ |
| | | unit :=macroPlan.Unit( relnew, |
| | | ID := unitid, |
| | | Name := unitid, |
| | | UnitOfMeasureName := unitofmeasurename, |
| | | CurrencyID := currencyid, |
| | | StartDate := startdate, |
| | | EndDate := enddate, |
| | | CapacityType := capacitytype ); |
| | | } |
| | | |
| | | a := Lane::CreateLane( unit, id, name, processingtime); |
| | | updates.Add( a ); |
| | | } |
| | | origindataset := selectset( macroPlan, Unit.Lane, l, true ); |
| | | obsoletes := origindataset.Difference( updates ); |
| | | // delete obsoleted |
| | | difflength := obsoletes.Size(); |
| | | for( j:=0; j<difflength; j++ ) |
| | | { |
| | | obsolete := obsoletes.Element( j ); |
| | | obsolete.Delete(); |
| | | } |
| | | |
| | | Lane::CreasteFromMapping( globalOTDTable, macroPlan ); |
| | | global_BrokerExecuteLog.ExecutionStatus( "Complete" ); |
| | | global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); |
| | | } onerror { |
| | |
| | | TextBody: |
| | | [* |
| | | global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, |
| | | Name := "åæ¥è½¦éè·¯çº¿æ°æ®", |
| | | BrokerName := "åæ¥è½¦éè·¯çº¿æ°æ®", |
| | | ExecutionStatus := "InOperation", |
| | | IsSuccess := true, |
| | | ExecuteUser := executionUser |
| | | ); |
| | | |
| | | |
| | | try { |
| | | updates := construct( LaneLegs ); |
| | | traverse( globalOTDTable, Global_MappingLaneLeg, gll, true ) |
| | | { |
| | | processingtime := Duration::Zero(); |
| | | hasprocessingtime := true; |
| | | userleadtime := gll.UserLeadTime(); |
| | | if( userleadtime.Length() = 0 ) |
| | | { |
| | | hasprocessingtime := false; |
| | | processingtime := Duration::Zero(); |
| | | } |
| | | else |
| | | { |
| | | hasprocessingtime := true; |
| | | processingtime := Duration::Hours( [Number]userleadtime ); |
| | | }; |
| | | |
| | | lane := Lane::FindLaneTypeIndex( gll.LaneID() ); |
| | | a := LaneLeg::CreateLaneleg(lane, gll.LaneID(), gll.OriginStockingPointID(), gll.DestinationStockingPointID(), gll.Name(), hasprocessingtime, processingtime); |
| | | updates.Add( a ); |
| | | } |
| | | origindataset := selectset( macroPlan, Unit.Lane.LaneLeg, ll, true ); |
| | | obsoletes := origindataset.Difference( updates ); |
| | | // delete obsoleted |
| | | difflength := obsoletes.Size(); |
| | | for( j:=0; j<difflength; j++ ) |
| | | { |
| | | obsolete := obsoletes.Element( j ); |
| | | obsolete.Delete(); |
| | | } |
| | | |
| | | LaneLeg::CreateFromMapping( globalOTDTable, macroPlan ); |
| | | global_BrokerExecuteLog.ExecutionStatus( "Complete" ); |
| | | global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); |
| | | } onerror { |
| | |
| | | TextBody: |
| | | [* |
| | | global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, |
| | | Name := "忥工èºè·¯çº¿æ°æ®", |
| | | BrokerName := "忥工èºè·¯çº¿æ°æ®", |
| | | ExecutionStatus := "InOperation", |
| | | IsSuccess := true, |
| | | ExecuteUser := executionUser |
| | | ); |
| | | |
| | | |
| | | try { |
| | | macroPlan.MappingOperationData( businessTypes ,globalOTDTable, organcodelist ); |
| | | macroPlan.DoASyncMappingOperationData( businessTypes, globalOTDTable, organcodelist ); |
| | | |
| | | global_BrokerExecuteLog.ExecutionStatus( "Complete" ); |
| | | global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); |
| | |
| | | TextBody: |
| | | [* |
| | | global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, |
| | | Name := "忥BOMæ°æ®", |
| | | BrokerName := "忥BOMæ°æ®", |
| | | ExecutionStatus := "InOperation", |
| | | IsSuccess := true, |
| | | ExecuteUser := executionUser |
| | | ); |
| | | |
| | | |
| | | try { |
| | | macroPlan.MappingOperationBOMData( businessTypes, isKeyProduct, createPurchaseSupplyMaterial, globalOTDTable, organcodelist ); |
| | | macroPlan.DoASyncMappingOperationBOMData( businessTypes, isKeyProduct, createPurchaseSupplyMaterial, globalOTDTable, organcodelist ); |
| | | |
| | | global_BrokerExecuteLog.ExecutionStatus( "Complete" ); |
| | | global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); |
| | |
| | | StaticMethod SynchronizeMacroPlanData ( |
| | | GlobalOTDTable globalOTDTable, |
| | | MacroPlan macroPlan, |
| | | Strings businessTypes, |
| | | String executionUser |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, |
| | | Name := "忥è¿è¾è·¯çº¿äº§åæ°æ®", |
| | | BrokerName := "忥è¿è¾è·¯çº¿äº§åæ°æ®", |
| | | ExecutionStatus := "InOperation", |
| | | IsSuccess := true, |
| | | ExecuteUser := executionUser |
| | | ); |
| | | |
| | | |
| | | try { |
| | | macroPlan.MappingProductInLaneData(globalOTDTable); |
| | | macroPlan.DoASyncMappingProductInLaneData( globalOTDTable, businessTypes ); |
| | | |
| | | global_BrokerExecuteLog.ExecutionStatus( "Complete" ); |
| | | global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); |
| | |
| | | TextBody: |
| | | [* |
| | | global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, |
| | | Name := "åæ¥äº§åæ°æ®", |
| | | BrokerName := "åæ¥äº§åæ°æ®", |
| | | ExecutionStatus := "InOperation", |
| | | IsSuccess := true, |
| | | ExecuteUser := executionUser |
| | | ); |
| | | |
| | | |
| | | try { |
| | | macroPlan.MappingProductData( businessTypes, globalOTDTable,isKeyProduct ); |
| | | macroPlan.DoASyncMappingProductData( businessTypes, globalOTDTable, isKeyProduct ); |
| | | |
| | | global_BrokerExecuteLog.ExecutionStatus( "Complete" ); |
| | | global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); |
| | |
| | | TextBody: |
| | | [* |
| | | global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, |
| | | Name := "忥éå®é¨é¨æ°æ®", |
| | | BrokerName := "忥éå®é¨é¨æ°æ®", |
| | | ExecutionStatus := "InOperation", |
| | | IsSuccess := true, |
| | | ExecuteUser := executionUser |
| | | ); |
| | | |
| | | |
| | | try { |
| | | macroPlan.MappingSalesSegmentData( businessTypes, globalOTDTable ); |
| | | macroPlan.DoASyncMappingSalesSegmentData( businessTypes, globalOTDTable ); |
| | | |
| | | global_BrokerExecuteLog.ExecutionStatus( "Complete" ); |
| | | global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); |
| | |
| | | StaticMethod SynchronizeMacroPlanData ( |
| | | GlobalOTDTable globalOTDTable, |
| | | MacroPlan macroPlan, |
| | | Strings businessTypes, |
| | | String executionUser |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, |
| | | Name := "忥åºåææ¬æ°æ®", |
| | | BrokerName := "忥åºåææ¬æ°æ®", |
| | | ExecutionStatus := "InOperation", |
| | | IsSuccess := true, |
| | | ExecuteUser := executionUser |
| | | ); |
| | | |
| | | |
| | | try { |
| | | macroPlan.MappingInventoryValueAndCostData(globalOTDTable); |
| | | macroPlan.DoASyncMappingInventoryValueAndCostData( globalOTDTable, businessTypes ); |
| | | |
| | | global_BrokerExecuteLog.ExecutionStatus( "Complete" ); |
| | | global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); |
| | |
| | | TextBody: |
| | | [* |
| | | global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, |
| | | Name := "忥åºåç¹æ°æ®", |
| | | BrokerName := "忥åºåç¹æ°æ®", |
| | | ExecutionStatus := "InOperation", |
| | | IsSuccess := true, |
| | | ExecuteUser := executionUser |
| | | ); |
| | | |
| | | |
| | | try { |
| | | updates := construct( StockingPoint_MPs ); |
| | | traverse( globalOTDTable, Global_MappingStockingPoint_MP, sp, true ) |
| | | { |
| | | a := StockingPoint_MP::CreateStockingpoint( macroPlan, sp.ID(), sp.UnitID(), sp.Name() ); |
| | | updates.Add( a ); |
| | | } |
| | | origindataset := selectset( macroPlan, StockingPoint_MP, sp, true ); |
| | | obsoletes := origindataset.Difference( updates ); |
| | | // delete obsoleted |
| | | difflength := obsoletes.Size(); |
| | | for( j:=0; j<difflength; j++ ) |
| | | { |
| | | obsolete := obsoletes.Element( j ); |
| | | obsolete.Delete(); |
| | | } |
| | | |
| | | StockingPoint_MP::CreateFromMapping( globalOTDTable, macroPlan ); |
| | | global_BrokerExecuteLog.ExecutionStatus( "Complete" ); |
| | | global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); |
| | | } onerror { |
| | |
| | | TextBody: |
| | | [* |
| | | global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, |
| | | Name := "忥å¶é ææ¬æ°æ®", |
| | | BrokerName := "忥å¶é ææ¬æ°æ®", |
| | | ExecutionStatus := "InOperation", |
| | | IsSuccess := true, |
| | | ExecuteUser := executionUser |
| | | ); |
| | | |
| | | |
| | | try { |
| | | macroPlan.MappingOperationCostData( globalOTDTable, businessTypes, organcodelist ); |
| | | macroPlan.DoASyncMappingOperationCostData( globalOTDTable, businessTypes, organcodelist ); |
| | | |
| | | global_BrokerExecuteLog.ExecutionStatus( "Complete" ); |
| | | global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); |
| | |
| | | #parent: #root |
| | | StaticMethod SynchronizeMacroPlanData ( |
| | | GlobalOTDTable globalOTDTable, |
| | | MacroPlan macroPlan |
| | | MacroPlan macroPlan, |
| | | String executionUser |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew, |
| | | Name := "忥å使°æ®", |
| | | IsSuccess := true |
| | | BrokerName := "忥å使°æ®", |
| | | ExecutionStatus := "InOperation", |
| | | IsSuccess := true, |
| | | ExecuteUser := executionUser |
| | | ); |
| | | |
| | | try { |
| | | traverse ( globalOTDTable, Global_MappingUnitOfMeasure_MP, gmuommp ) { |
| | | unitOfMeasure_MP := select( macroPlan, UnitOfMeasure_MP, tempUOMMP, tempUOMMP.Name() = gmuommp.Name() ); |
| | | if ( isnull( unitOfMeasure_MP ) ) { |
| | | unitOfMeasure_MP := UnitOfMeasure_MP::Create( macroPlan, gmuommp.Name(), false, false ); |
| | | } |
| | | if ( gmuommp.IsDefault() ) { |
| | | unitOfMeasure_MP.SetAsDefault(); |
| | | } |
| | | } |
| | | macroPlan.DoASyncMappingUnitOfMeasureData(globalOTDTable); |
| | | |
| | | global_BrokerExecuteLog.ExecutionStatus( "Complete" ); |
| | | global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); |
| | | } onerror { |
| | | global_BrokerExecuteLog.IsSuccess( false ); |
| | | global_BrokerExecuteLog.ErrorNo( e.ErrorNr() ); |
| | | global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() ); |
| | | global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) ); |
| | | global_BrokerExecuteLog.ExecutionStatus( "Complete" ); |
| | | } |
| | | *] |
| | | } |
| | |
| | | //if( isnull( account ) ) { |
| | | // error( "account not found" ); |
| | | //} |
| | | result := InventoryValueAndCost::FindById( macroPlan, stockingPointId,productId,start,id ); |
| | | result := InventoryValueAndCost::FindById( macroPlan, stockingPointId, productId, start, id ); |
| | | if( not isnull( product) and not isnull( stockingPoint) and not isnull( account)){ |
| | | if( isnull( result ) ) { |
| | | result := InventoryValueAndCost::Create( id, product, stockingPoint, account, costDriver, start, cost, true ).astype( InventoryValueAndCost ); |
| | | } else if( result.ProductID() <> productId ) { |
| | | info( "cannot change product of inventory value and cost" ) |
| | | } |
| | | // else { |
| | | // result.Update( account, costDriver, start, account.DefaultTimeUnit(), account.DefaultLengthOfTime(), cost, true ); |
| | | // } |
| | | else { |
| | | result.Update( account, costDriver, start, account.DefaultTimeUnit(), account.DefaultLengthOfTime(), cost, true ); |
| | | } |
| | | } |
| | | |
| | | return result; |
| | |
| | | [* |
| | | // yypsybs Aug-16-2023 (created) |
| | | value := select( macroPlan, Product_MP.InventoryValueAndCost, item, true, item.ProductID()=productId and item.StockingPointID() = stockPointId and item.Start() = start ); |
| | | if( isnull( value ) ){ |
| | | value := select( macroPlan, Product_MP.InventoryValueAndCost, item, true, item.ID() = id ); |
| | | } |
| | | return value; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CreasteFromMapping ( |
| | | const GlobalOTDTable globalOTDTable, |
| | | MacroPlan macroPlan |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // Administrator Oct-31-2023 (created) |
| | | updates := construct( Lanes ); |
| | | traverse( globalOTDTable, Global_MappingLane, gl, true ) |
| | | { |
| | | id := gl.ID(); |
| | | unitid := gl.UnitID(); |
| | | name := gl.Name(); |
| | | userleadtime := gl.UserLeadTime(); |
| | | processingtime := Duration::Zero(); |
| | | |
| | | unitofmeasurename := "PCS"; |
| | | currencyid := "CNY"; |
| | | startdate := Date::Date( 1900, 1, 1 ); |
| | | enddate := Date::Date( 9999, 12, 31 ); |
| | | capacitytype := "Transport quantity"; |
| | | if( userleadtime.Length() = 0 ) |
| | | { |
| | | processingtime := Duration::Zero(); |
| | | } |
| | | else |
| | | { |
| | | processingtime := Duration::Hours( [Number]userleadtime ); |
| | | }; |
| | | |
| | | unit := Unit::FindById( macroPlan, unitid ); |
| | | if( isnull( unit)){ |
| | | unit :=macroPlan.Unit( relnew, |
| | | ID := unitid, |
| | | Name := unitid, |
| | | UnitOfMeasureName := unitofmeasurename, |
| | | CurrencyID := currencyid, |
| | | StartDate := startdate, |
| | | EndDate := enddate, |
| | | CapacityType := capacitytype ); |
| | | } |
| | | |
| | | a := Lane::CreateLane( macroPlan, unit, id, name, processingtime); |
| | | updates.Add( a ); |
| | | } |
| | | origindataset := selectset( macroPlan, Unit.Lane, l, true ); |
| | | obsoletes := origindataset.Difference( updates ); |
| | | // delete obsoleted |
| | | difflength := obsoletes.Size(); |
| | | for( j:=0; j<difflength; j++ ) |
| | | { |
| | | obsolete := obsoletes.Element( j ); |
| | | obsolete.Delete(); |
| | | } |
| | | *] |
| | | } |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CreateLane ( |
| | | MacroPlan mp, |
| | | Unit unit, |
| | | String id, |
| | | String name, |
| | |
| | | isfromdb := true; |
| | | |
| | | //create new stockingpoint |
| | | result := Lane::FindLaneTypeIndex( id ); |
| | | result := Lane::FindById( mp, id ); |
| | | |
| | | if( isnull( result ) ) |
| | | { |
| | |
| | | EndDate := enddate ); |
| | | } |
| | | |
| | | result := Lane::CreateLane( unit, id, name, processingtime); |
| | | result := Lane::CreateLane( macroplan, unit, id, name, processingtime); |
| | | |
| | | return result; |
| | | *] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod FindById ( |
| | | MacroPlan mp, |
| | | String id |
| | | ) as Lane |
| | | { |
| | | TextBody: |
| | | [* |
| | | // yypsybs Aug-14-2023 (created) |
| | | result := select( mp, Unit.Lane, lane, true, lane.ID() = id ); |
| | | |
| | | return result; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod FindByIdAndUnit ( |
| | | Unit unit, |
| | | String id |
| | | ) as Lane |
| | | { |
| | | TextBody: |
| | | [* |
| | | // yypsybs Aug-14-2023 (created) |
| | | |
| | | result := select( unit, Lane, item, true, item.ID() = id ); |
| | | |
| | | return result; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CreateFromMapping ( |
| | | const GlobalOTDTable globalOTDTable, |
| | | MacroPlan macroPlan |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // Administrator Oct-31-2023 (created) |
| | | updates := construct( LaneLegs ); |
| | | traverse( globalOTDTable, Global_MappingLaneLeg, gll, true ) |
| | | { |
| | | processingtime := Duration::Zero(); |
| | | hasprocessingtime := true; |
| | | userleadtime := gll.UserLeadTime(); |
| | | if( userleadtime.Length() = 0 ) |
| | | { |
| | | hasprocessingtime := false; |
| | | processingtime := Duration::Zero(); |
| | | } |
| | | else |
| | | { |
| | | hasprocessingtime := true; |
| | | processingtime := Duration::Hours( [Number]userleadtime ); |
| | | }; |
| | | |
| | | lane := Lane::FindById( macroPlan, gll.LaneID() ); |
| | | a := LaneLeg::CreateLaneleg( macroPlan, lane, gll.LaneID(), gll.OriginStockingPointID(), gll.DestinationStockingPointID(), gll.Name(), hasprocessingtime, processingtime); |
| | | updates.Add( a ); |
| | | } |
| | | origindataset := selectset( macroPlan, Unit.Lane.LaneLeg, ll, true ); |
| | | obsoletes := origindataset.Difference( updates ); |
| | | // delete obsoleted |
| | | difflength := obsoletes.Size(); |
| | | for( j:=0; j<difflength; j++ ) |
| | | { |
| | | obsolete := obsoletes.Element( j ); |
| | | obsolete.Delete(); |
| | | } |
| | | *] |
| | | } |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CreateLaneLegFromJson ( |
| | | MacroPlan mp, |
| | | JSON datarow |
| | | ) as LaneLeg |
| | | { |
| | |
| | | |
| | | lane := Lane::FindLaneTypeIndex( laneid ); |
| | | |
| | | result := LaneLeg::CreateLaneleg(lane, laneid, originstockingpointid, destinationstockingpointid, name, hasprocessingtime, processingtime); |
| | | result := LaneLeg::CreateLaneleg( mp, lane, laneid, originstockingpointid, destinationstockingpointid, name, hasprocessingtime, processingtime); |
| | | |
| | | return result; |
| | | *] |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CreateLaneleg ( |
| | | MacroPlan mp, |
| | | Lane lane, |
| | | String laneid, |
| | | String originstockingpointid, |
| | |
| | | isfromdb := true; |
| | | |
| | | //create new stockingpoint |
| | | originstockingpoint := StockingPoint_MP::FindStockingPointTypeIndex( originstockingpointid ); |
| | | originstockingpoint := StockingPoint_MP::FindById( mp, originstockingpointid ); |
| | | lane.AddStockingPoint( originstockingpoint, true, isfromdb ); |
| | | Transaction::Transaction().Propagate(); |
| | | |
| | | destinationstockingpoint := StockingPoint_MP::FindStockingPointTypeIndex( destinationstockingpointid ); |
| | | destinationstockingpoint := StockingPoint_MP::FindById( mp, destinationstockingpointid ); |
| | | lane.AddStockingPoint( destinationstockingpoint, false, isfromdb ); |
| | | |
| | | Transaction::Transaction().Propagate(); |
| | | |
| | | result := LaneLeg::FindLaneLegTypeIndex( laneid, originstockingpointid, destinationstockingpointid ); |
| | | result := LaneLeg::FindByIdAndLane( lane, originstockingpointid, destinationstockingpointid ); |
| | | |
| | | if( isnull( result ) ) |
| | | { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod FindByIdAndLane ( |
| | | Lane lane, |
| | | String originstockingpointid, |
| | | String destinationstockingpointid |
| | | ) as LaneLeg |
| | | { |
| | | TextBody: |
| | | [* |
| | | // yypsybs Aug-14-2023 (created) |
| | | |
| | | result := select( lane, LaneLeg, item, true, item.OriginStockingPointID() = originstockingpointid and item.DestinationStockingPointID() = destinationstockingpointid ); |
| | | |
| | | return result; |
| | | *] |
| | | } |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method ApiCurencyRatesData ( |
| | | MacroPlan mp, |
| | | JSON data |
| | | ) |
| | | { |
| | |
| | | for( i:=0; i<data_length; i++ ) |
| | | { |
| | | datarow := data.Get( i ); |
| | | a := CurrencyRate_MP::CreateCurrencyRateFromJson( datarow ); |
| | | a := CurrencyRate_MP::CreateCurrencyRateFromJson( mp, datarow ); |
| | | updates.Add( a ); |
| | | } |
| | | origindataset := selectset( this, Currency_MP.CurrencyRate_MP, cr, true ); |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method ApiLaneLegsData ( |
| | | MacroPlan mp, |
| | | JSON data |
| | | ) |
| | | { |
| | |
| | | for( i:=0; i<data_length; i++ ) |
| | | { |
| | | datarow := data.Get( i ); |
| | | a := LaneLeg::CreateLaneLegFromJson( datarow ); |
| | | a := LaneLeg::CreateLaneLegFromJson( mp, datarow ); |
| | | updates.Add( a ); |
| | | } |
| | | origindataset := selectset( this, Unit.Lane.LaneLeg, ll, true ); |
| | |
| | | ( organcodelist.Find( item.StockingPointID().SubString( 0, 3 ) ) >= 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() ); |
| | | //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.StockingPointID() ) ) and not isnull( SalesSegment_MP::FindByName( this, item.SalesSegmentName() ) ) ); |
| | | |
| | | totalcount := listToDeal.Size(); |
| | |
| | | [* |
| | | // 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() ); |
| | | //queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() ); |
| | | |
| | | listtodeal := construct( Global_MappingInventorySupplys, constcontent ); |
| | | if ( businessTypes.Size() > 0 ) { |
| | |
| | | info( "Prepare to do sync" ) |
| | | info( "Get organ code list" ) |
| | | businessTypeName := businessType.BusinessTypeName().Tokenize( "," ); |
| | | macroPlan.BusinessType( businessType.BusinessTypeName() ); |
| | | |
| | | organcodelist := selectvalues( businessType, OrganCode, organ, true, organ.OrganCodeName() ); |
| | | |
| | | if( organcodelist.Size() = 0 ){ |
| | |
| | | macroPlan.DoASyncMappingUnitData( businessTypeName ,globalOTDTable, organcodelist); |
| | | |
| | | // åºåç¹-3 |
| | | info( "Sales Segment Finished, Start Get StockingPoint From Api" ) |
| | | parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "StockingPoint" ); |
| | | postrequestbody := parameter.PostRequestBody(); |
| | | address := parameter.Address(); |
| | | url := parameter.AttributeValue(); |
| | | port := [Number]parameter.Port(); |
| | | data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody ); |
| | | macroPlan.ApiStockingPointData( data ); |
| | | info( "Sales Segment Finished, Start Get StockingPoint From Mapping" ) |
| | | StockingPoint_MP::CreateFromMapping( globalOTDTable, macroPlan ); |
| | | //parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "StockingPoint" ); |
| | | //postrequestbody := parameter.PostRequestBody(); |
| | | //address := parameter.Address(); |
| | | //url := parameter.AttributeValue(); |
| | | //port := [Number]parameter.Port(); |
| | | //data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody ); |
| | | //macroPlan.ApiStockingPointData( data ); |
| | | |
| | | // è´§å¸ä¿¡æ¯-4 |
| | | info( "Get StockingPoint From Api Finished, Start Get CurrencyInfo From Api" ) |
| | | parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "CurrencyInfo" ); |
| | | postrequestbody := parameter.PostRequestBody(); |
| | | address := parameter.Address(); |
| | | url := parameter.AttributeValue(); |
| | | port := [Number]parameter.Port(); |
| | | data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody ); |
| | | macroPlan.ApiCurenciesData( data ); |
| | | info( "Get StockingPoint From Api Finished, Start Get CurrencyInfo From Mapping" ) |
| | | Currency_MP::CreateFromMapping( globalOTDTable, macroPlan ); |
| | | |
| | | //è´§å¸æ±çä¿¡æ¯-5 |
| | | info( "Get CurrencyInfo From Api Finished, Start Get CurrencyRates From Api" ) |
| | | parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "CurrencyRates" ); |
| | | postrequestbody := parameter.PostRequestBody(); |
| | | address := parameter.Address(); |
| | | url := parameter.AttributeValue(); |
| | | port := [Number]parameter.Port(); |
| | | data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody ); |
| | | macroPlan.ApiCurencyRatesData( data ); |
| | | info( "Get CurrencyInfo From Api Finished, Start Get CurrencyRates From Mapping" ) |
| | | CurrencyRate_MP::CreateFromMapping( globalOTDTable, macroPlan ); |
| | | |
| | | // 产åç©æ-6 |
| | | //info( "Get CurrencyRates From Api Finished, Start Product Data Broker" ) |
| | |
| | | macroPlan.DoASyncMappingOperationBOMData( businessTypeName, isKeyProduct, createPurchaseSupplyMaterial,globalOTDTable, organcodelist ); |
| | | |
| | | //车éä¿¡æ¯-10 |
| | | info( "BOM Finished, Start Get Lanes From Api" ); |
| | | parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "Lanes" ); |
| | | postrequestbody := parameter.PostRequestBody(); |
| | | address := parameter.Address(); |
| | | url := parameter.AttributeValue(); |
| | | port := [Number]parameter.Port(); |
| | | data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody ); |
| | | macroPlan.ApiLanesData( data ); |
| | | info( "BOM Finished, Start Get Lanes From Mapping" ); |
| | | Lane::CreasteFromMapping( globalOTDTable, macroPlan ); |
| | | |
| | | //车éè¿è¾æ®µ-11 |
| | | info( "Get Lanes From Api Finished, Start Get LaneLegs From Api" ); |
| | | parameter := select( globalOTDTable, GlobalParameters, param, param.AttributeName() = "LaneLegs" ); |
| | | postrequestbody := parameter.PostRequestBody(); |
| | | address := parameter.Address(); |
| | | url := parameter.AttributeValue(); |
| | | port := [Number]parameter.Port(); |
| | | data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody ); |
| | | macroPlan.ApiLaneLegsData( data ); |
| | | info( "Get Lanes From Api Finished, Start Get LaneLegs From Mapping" ); |
| | | LaneLeg::CreateFromMapping( globalOTDTable, macroPlan ); |
| | | |
| | | // ä¾åºç½ç»ï¼è½¦éï¼-12 |
| | | //info( "Get Lanelegs From Api Finished, Start ProductInLane Data Broker" ); |
| | |
| | | url := "/otdService/https/GetCurrencyRatesInfo"; |
| | | port := 443; |
| | | data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody ); |
| | | macroPlan.ApiCurencyRatesData( data ); |
| | | macroPlan.ApiCurencyRatesData( macroPlan, data ); |
| | | |
| | | // 产åç©æ-6 |
| | | //info( "Get CurrencyRates From Api Finished, Start Product Data Broker" ) |
| | |
| | | url := "/otdService/https/GetLaneLegsInfo"; |
| | | port := 443; |
| | | data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody ); |
| | | macroPlan.ApiLaneLegsData( data ); |
| | | macroPlan.ApiLaneLegsData( macroPlan, data ); |
| | | |
| | | // ä¾åºç½ç»ï¼è½¦éï¼-12 |
| | | //info( "Get Lanelegs From Api Finished, Start ProductInLane Data Broker" ); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Quantity |
| | | { |
| | | #keys: '3[414702.1.294748144][414702.1.294748143][414702.1.294748145]' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute SalesDemandBaseID |
| | | { |
| | | #keys: '3[414702.1.294144484][414702.1.294144483][414702.1.294144485]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute StartDate |
| | | { |
| | | #keys: '3[414702.1.294179414][414702.1.294179413][414702.1.294179415]' |
| | | ValueType: Date |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute StockingPointID |
| | | { |
| | | #keys: '3[414702.1.294179270][414702.1.294179269][414702.1.294179271]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type PeggingProductInSalesDemandBase |
| | | { |
| | | #keys: '5[414702.1.290710055][414702.1.290710053][0.0.0][414702.1.290710054][414702.1.290710056]' |
| | | BaseType: Object |
| | | StructuredName: 'PeggingProductInSalesDemandBases' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ProductID |
| | | { |
| | | #keys: '3[414702.1.290710074][414702.1.290710073][414702.1.290710075]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod Create ( |
| | | GlobalOTDSOP globalOTDSOP, |
| | | Product_MPs product_MPs |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | globalOTDSOP.PeggingProduct_MP( relflush ); |
| | | |
| | | product_MPs := selectset( product_MPs, Elements, tempPMP, tempPMP.IsLeaf() ); |
| | | |
| | | traverse ( product_MPs, Elements, pmp ) { |
| | | targetPeggingProduct_MP := globalOTDSOP.PeggingProduct_MP( relnew, ProductID := pmp.ID() ); |
| | | traverse ( pmp, SalesDemand, sd ) { |
| | | targetPeggingProduct_MP.PeggingProductInSalesDemandBase( relnew, |
| | | StockingPointID := sd.StockingPointID(), |
| | | SalesDemandBaseID := sd.ID(), |
| | | Quantity := sd.Quantity(), |
| | | StartDate := sd.StartDate() ); |
| | | } |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type PeggingProduct_MP |
| | | { |
| | | #keys: '5[414702.1.290710035][414702.1.290710033][0.0.0][414702.1.290710034][414702.1.290710036]' |
| | | BaseType: Object |
| | | StructuredName: 'PeggingProduct_MPs' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ActualFulfillmentQuantity |
| | | { |
| | | #keys: '3[414702.1.314092328][414702.1.314092327][414702.1.314092329]' |
| | | Description: 'å®é
交ä»çæ°é' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute FulfillmentQuantity |
| | | { |
| | | #keys: '3[414702.1.294201083][414702.1.294201082][414702.1.294201084]' |
| | | Description: '订åæéè¦çæ°é' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute NumberOfPlies |
| | | { |
| | | #keys: '3[414702.1.294145595][414702.1.294145594][414702.1.294145596]' |
| | | ValueType: Number |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ProductID |
| | | { |
| | | #keys: '3[414702.1.294201096][414702.1.294201095][414702.1.294201097]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute StartDate |
| | | { |
| | | #keys: '3[414702.1.294201063][414702.1.294201062][414702.1.294201064]' |
| | | ValueType: Date |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute StockingPointID |
| | | { |
| | | #keys: '3[414702.1.294201106][414702.1.294201105][414702.1.294201107]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute SupplyQuantity |
| | | { |
| | | #keys: '3[414702.1.294201073][414702.1.294201072][414702.1.294201074]' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute SupplyType |
| | | { |
| | | #keys: '3[414702.1.294201053][414702.1.294201052][414702.1.294201054]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute UnitOfMeasurementName |
| | | { |
| | | #keys: '3[414702.1.294852022][414702.1.294852021][414702.1.294852023]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod Create ( |
| | | PeggingProductInSalesDemandBase peggingProductInSalesDemandBase, |
| | | String productID, |
| | | String stockingPointID, |
| | | Date startDate, |
| | | Real supplyQuantity, |
| | | Real actualFulfillmentQuantity, |
| | | Real fulfillmentQuantity, |
| | | String supplyType, |
| | | Number numberOfPlies, |
| | | String unitOfMeasurementName |
| | | ) as PeggingResult |
| | | { |
| | | TextBody: |
| | | [* |
| | | peggingResult := peggingProductInSalesDemandBase.PeggingResult( relnew, |
| | | ProductID := productID, |
| | | StockingPointID := stockingPointID, |
| | | StartDate := startDate, |
| | | SupplyQuantity := supplyQuantity, |
| | | ActualFulfillmentQuantity := actualFulfillmentQuantity, |
| | | FulfillmentQuantity := fulfillmentQuantity, |
| | | SupplyType := supplyType, |
| | | NumberOfPlies := numberOfPlies, |
| | | UnitOfMeasurementName := unitOfMeasurementName |
| | | ); |
| | | return peggingResult; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CreateAllChildRelation ( |
| | | PeggingProductInSalesDemandBase ppisdb |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | targetPeggingResults := selectset( ppisdb, PeggingResult, tempPR, tempPR.NumberOfPlies() = 0 ); |
| | | |
| | | traverse ( targetPeggingResults, Elements, pr ) { |
| | | parentPeggingResult := pr; |
| | | childPeggingResult := pr; |
| | | PeggingResult::SetAllChildRelation( ppisdb, parentPeggingResult, childPeggingResult ); |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CreateAllGroupChildRelation ( |
| | | PeggingProductInSalesDemandBase ppisdb |
| | | ) |
| | | { |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CreateData ( |
| | | PeggingProductInSalesDemandBases peggingProductInSalesDemandBases, |
| | | const MacroPlan macroPlan |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | traverse ( peggingProductInSalesDemandBases, Elements, ppisdb ) { |
| | | ppisdb.PeggingResult( relflush ); |
| | | targetSalesDemand := select( macroPlan, SalesDemand, tempSD, tempSD.ID() = ppisdb.SalesDemandBaseID() ); |
| | | traverse ( targetSalesDemand, SalesDemandInPeriod.Fulfillment, f ) { |
| | | smp := f.Supply_MP(); |
| | | fulfillmentQuantity := f.Quantity(); |
| | | PeggingResult::GeneratePeggingResult( ppisdb, |
| | | 0, |
| | | smp, |
| | | fulfillmentQuantity, |
| | | fulfillmentQuantity, |
| | | null( PeggingResult ) ); |
| | | } |
| | | |
| | | PeggingResult::CreateAllChildRelation( ppisdb ); |
| | | PeggingResult::CreateAllGroupChildRelation( ppisdb ); |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod GenerateInventorySupply ( |
| | | PeggingProductInSalesDemandBase peggingProductInSalesDemandBase, |
| | | Number numberOfPlies, |
| | | const InventorySupply is, |
| | | Real actualFulfillmentQuantity, |
| | | Real fulfillmentQuantity, |
| | | PeggingResult parentPeggingResult |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | //info( "ä¾åºç±»åï¼InventorySupplyï¼ ", "ä¾åºæ¶é´ï¼", is.Date().Format( "Y-M2-D2" ), " ä¾åºéï¼", is.Quantity(), |
| | | // " å®é
ç¨éï¼", fulfillmentQuantity, " ", is.ProductInStockingPoint_MP().Name() ); |
| | | pisp := is.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(); |
| | | childPeggingResult := PeggingResult::Create( peggingProductInSalesDemandBase, |
| | | pisp.ProductID(), |
| | | pisp.StockingPointID(), |
| | | is.Date(), |
| | | is.Quantity(), |
| | | actualFulfillmentQuantity, |
| | | fulfillmentQuantity, |
| | | "åºåä¾åº", |
| | | numberOfPlies, |
| | | pisp.UnitOfMeasureName() |
| | | ); |
| | | |
| | | PeggingResult::SetParentChildRelationship( parentPeggingResult, childPeggingResult ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod GenerateNewSupply ( |
| | | PeggingProductInSalesDemandBase peggingProductInSalesDemandBase, |
| | | Number numberOfPlies, |
| | | const NewSupply ns, |
| | | Real actualFulfillmentQuantity, |
| | | Real fulfillmentQuantity, |
| | | PeggingResult parentPeggingResult |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | //info( "ä¾åºç±»åï¼NewSupplyï¼", " ä¾åºéï¼", ns.Quantity(), " 满足ï¼", fulfillmentQuantity ); |
| | | |
| | | pisp := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(); |
| | | |
| | | childPeggingResult := PeggingResult::Create( peggingProductInSalesDemandBase, |
| | | pisp.ProductID(), |
| | | pisp.StockingPointID(), |
| | | ns.Start().Date(), |
| | | ns.Quantity(), |
| | | actualFulfillmentQuantity, |
| | | fulfillmentQuantity, |
| | | "", |
| | | numberOfPlies, |
| | | pisp.UnitOfMeasureName() ); |
| | | PeggingResult::SetParentChildRelationship( parentPeggingResult, childPeggingResult ); |
| | | |
| | | ontype ( ns.PeriodTask_MP() ) { |
| | | PeriodTaskOperation as pto : { |
| | | childPeggingResult.SupplyType( "产线ä¾åº" ); |
| | | // info( "æä½å¨æä»»å¡ ", "ä¾åºæ¶é´ï¼", ns.Start().Format( "Y-M2-D2" ), " 卿任å¡KEYï¼", pto.Key(), " ", |
| | | // ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name() ); |
| | | traverse ( pto, DependentDemand, dd, dd.Quantity() > 0 ) { |
| | | traverse ( dd, Fulfillment, f ) { |
| | | actualFulfillmentQuantity := f.Quantity(); |
| | | smp1 := f.Supply_MP(); |
| | | numberOfPlies++; |
| | | fulfillmentQuantity := ( dd.Quantity() / ns.Quantity() ) * fulfillmentQuantity; |
| | | // info( "--------------------------------------------------------------" ); |
| | | PeggingResult::GeneratePeggingResult( peggingProductInSalesDemandBase, numberOfPlies, smp1, actualFulfillmentQuantity, fulfillmentQuantity, childPeggingResult ); |
| | | numberOfPlies--; |
| | | } |
| | | } |
| | | } |
| | | |
| | | PeriodTaskLaneLeg as ptll : { |
| | | childPeggingResult.SupplyType( "车éä¾åº" ); |
| | | targetDependentDemand := select( ptll, DependentDemand, dd, |
| | | dd.ProcessInput().ProductInStockingPoint_MP().ProductID() = ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID() and |
| | | dd.Quantity() = ns.Quantity() ); |
| | | // info( "车éå¨æä»»å¡ ", "ä¾åºæ¶é´ï¼", ns.Start().Format( "Y-M2-D2" ), " 卿任å¡KEYï¼", ptll.Key(), " ", |
| | | // ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name() ); |
| | | traverse ( targetDependentDemand, Fulfillment, f ) { |
| | | actualFulfillmentQuantity := f.Quantity(); |
| | | smp1 := f.Supply_MP(); |
| | | numberOfPlies++; |
| | | // info( "--------------------------------------------------------------" ); |
| | | PeggingResult::GeneratePeggingResult( peggingProductInSalesDemandBase, numberOfPlies, smp1, actualFulfillmentQuantity, fulfillmentQuantity, childPeggingResult ); |
| | | numberOfPlies--; |
| | | } |
| | | } |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod GeneratePeggingResult ( |
| | | PeggingProductInSalesDemandBase peggingProductInSalesDemandBase, |
| | | Number numberOfPlies, |
| | | const Supply_MP smp, |
| | | Real actualFulfillmentQuantity, |
| | | Real fulfillmentQuantity, |
| | | PeggingResult parentPeggingResult |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | //info( "屿°ï¼", numberOfPlies ); |
| | | ontype ( smp ) { |
| | | NewSupply as ns : { |
| | | PeggingResult::GenerateNewSupply( peggingProductInSalesDemandBase, numberOfPlies, ns, actualFulfillmentQuantity, fulfillmentQuantity, parentPeggingResult ); |
| | | } |
| | | |
| | | InventorySupply as is : { |
| | | PeggingResult::GenerateInventorySupply( peggingProductInSalesDemandBase, numberOfPlies, is, actualFulfillmentQuantity, fulfillmentQuantity, parentPeggingResult ); |
| | | } |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod SetAllChildRelation ( |
| | | PeggingProductInSalesDemandBase peggingProductInSalesDemandBase, |
| | | PeggingResult parentPeggingResult, |
| | | PeggingResult childPeggingResult |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | if ( childPeggingResult.Child( relsize ) = 0 ) { |
| | | childPeggingResult.AllParent( relset, parentPeggingResult ); |
| | | } |
| | | |
| | | traverse ( childPeggingResult, Child, pr ) { |
| | | pr.AllParent( relset, parentPeggingResult ); |
| | | PeggingResult::SetAllChildRelation( peggingProductInSalesDemandBase, parentPeggingResult, pr ); |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod SetParentChildRelationship ( |
| | | PeggingResult parentPeggingResult, |
| | | PeggingResult childPeggingResult |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | if ( not isnull( parentPeggingResult ) and not isnull( childPeggingResult ) ) { |
| | | childPeggingResult.Parent( relset, parentPeggingResult ); |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type PeggingResult |
| | | { |
| | | #keys: '5[414702.1.290710095][414702.1.290710093][0.0.0][414702.1.290710094][414702.1.290710096]' |
| | | BaseType: Object |
| | | StructuredName: 'PeggingResults' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type PeggingResultGroup |
| | | { |
| | | #keys: '5[414702.1.320753704][414702.1.320753702][0.0.0][414702.1.320753703][414702.1.320753705]' |
| | | BaseType: Object |
| | | StructuredName: 'PeggingResultGroups' |
| | | } |
| | |
| | | |
| | | // Get product&line |
| | | product := Product_MP::FindById( owner, productid ); |
| | | line := Lane::FindLaneTypeIndex( lineid ); |
| | | line := Lane::FindById( owner, lineid ); |
| | | |
| | | if( not isnull( product) and not isnull( line)){ |
| | | productinline := ProductInLane::FindProductInLaneTypeIndex( lineid, productid ); |
| | | productinline := ProductInLane::FindById( owner, productid, lineid ); |
| | | |
| | | if( isnull( productinline ) ){ |
| | | ProductInLane::Create( product, line, isexcluded, isfromdb ); |
| | | }else{ |
| | | productinline.Update( productid, lineid, isexcluded, isfromdb ); |
| | | productinline.Update( lineid, productid, isexcluded, isfromdb ); |
| | | } |
| | | } |
| | | *] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod FindById ( |
| | | MacroPlan mp, |
| | | String id, |
| | | String laneid |
| | | ) as ProductInLane |
| | | { |
| | | TextBody: |
| | | [* |
| | | // yy 2023-11-01 |
| | | result := select( mp, Product_MP.ProductInLane, pil, true, pil.ProductID() = id and pil.LaneID() = laneid ); |
| | | |
| | | return result; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CreateFromMapping ( |
| | | const GlobalOTDTable globalOTDTable, |
| | | MacroPlan macroPlan |
| | | ) |
| | | { |
| | | Description: 'ä»mapping表å建åºåç¹' |
| | | TextBody: |
| | | [* |
| | | // Administrator Oct-31-2023 (created) |
| | | updates := construct( StockingPoint_MPs ); |
| | | traverse( globalOTDTable, Global_MappingStockingPoint_MP, sp, true ) |
| | | { |
| | | a := StockingPoint_MP::CreateStockingpoint( macroPlan, sp.ID(), sp.UnitID(), sp.Name() ); |
| | | updates.Add( a ); |
| | | } |
| | | origindataset := selectset( macroPlan, StockingPoint_MP, sp, true ); |
| | | obsoletes := origindataset.Difference( updates ); |
| | | // delete obsoleted |
| | | difflength := obsoletes.Size(); |
| | | for( j:=0; j<difflength; j++ ) |
| | | { |
| | | obsolete := obsoletes.Element( j ); |
| | | obsolete.Delete(); |
| | | } |
| | | *] |
| | | } |
| | |
| | | isfromdb := true; |
| | | |
| | | //create new stockingpoint |
| | | result := StockingPoint_MP::FindStockingPointTypeIndex( id ); |
| | | result := StockingPoint_MP::FindById( mp, id ); |
| | | |
| | | if( isnull( result ) ) |
| | | { |
| | |
| | | Component ComponentMenu666 { #keys: '[414702.0.265704260]' BaseType: 'ComponentMenu' Properties: [ ComponentType: 'FormBrokerExecuteLog' Text: '' ] } |
| | | Component menuSeparator822 { #keys: '[414702.0.340555024]' BaseType: 'Menu' Properties: [ Separator: true ] } |
| | | Component ComponentMenu783 { #keys: '[414702.0.340555035]' BaseType: 'ComponentMenu' Properties: [ ComponentType: 'FormTestButtonCollection' Text: '' ] } |
| | | Component menuSeparator432 { #keys: '[414702.1.299084028]' BaseType: 'Menu' Properties: [ Separator: true ] } |
| | | Component ComponentMenu420 { #keys: '[414702.1.299224194]' BaseType: 'ComponentMenu' Properties: [ ComponentType: 'FormPeggingResult' Text: '' ] } |
| | | ] |
| | | Properties: |
| | | [ |
| | |
| | | c: ComponentMenu666 |
| | | c: menuSeparator822 |
| | | c: ComponentMenu783 |
| | | c: menuSeparator432 |
| | | c: ComponentMenu420 |
| | | } |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component ColumnTitles552 |
| | | { |
| | | #keys: '[414702.1.299084155]' |
| | | BaseType: 'ColumnTitles' |
| | | Children: |
| | | [ |
| | | Component popupColumnTitles881 |
| | | { |
| | | #keys: '[414702.1.299084158]' |
| | | BaseType: 'popupColumnTitles' |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | ContextMenu: 'popupColumnTitles881' |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component ListPeggingProductInSalesDemandBase |
| | | { |
| | | #keys: '[414702.1.299084152]' |
| | | BaseType: 'List' |
| | | Children: |
| | | [ |
| | | #child: ColumnTitles552 |
| | | Component popupList809 |
| | | { |
| | | #keys: '[414702.1.299084184]' |
| | | BaseType: 'popupList' |
| | | Children: |
| | | [ |
| | | Component PopupParent |
| | | { |
| | | #keys: '[514.0.129466]' |
| | | BaseType: 'PopupParent' |
| | | IsDerived: true |
| | | Children: |
| | | [ |
| | | Component menuSeparator { #keys: '[414702.1.299084264]' BaseType: 'Menu' Properties: [ Separator: true ] } |
| | | Component MenuGeneratePeggingResult { #keys: '[414702.1.299084327]' BaseType: 'Menu' Properties: [ Image: 'BEER_GLASS' Text: 'GeneratePeggingResult' ] } |
| | | ] |
| | | Properties: |
| | | [ |
| | | ModeledStringList ChildOrdering |
| | | { |
| | | c: MenuActions |
| | | c: MenuFilter |
| | | c: menuListQuintiqSetQuantor |
| | | c: menuSeparator |
| | | c: MenuGeneratePeggingResult |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | PosX: 35 |
| | | PosY: 60 |
| | | ] |
| | | } |
| | | Component GUIDataExtractor968 |
| | | { |
| | | #keys: '[414702.1.299084216]' |
| | | BaseType: 'GUIDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataSet: 'GlobalOTDSOP' |
| | | DataType: 'GlobalOTDSOP' |
| | | PosX: 5 |
| | | PosY: 30 |
| | | Transformation: 'PeggingProduct_MP.PeggingProductInSalesDemandBase' |
| | | ] |
| | | } |
| | | Component GUIDataSetLevel641 |
| | | { |
| | | #keys: '[414702.1.299084219]' |
| | | BaseType: 'GUIDataSetLevel' |
| | | Properties: |
| | | [ |
| | | DataExtractor: 'GUIDataExtractor968' |
| | | PosX: 35 |
| | | PosY: 30 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | AutoDrag: true |
| | | BackgroundColor: 'Window' |
| | | Border: true |
| | | ContextMenu: 'popupList809' |
| | | FullRowSelect: true |
| | | ModeledStringList ChildOrdering |
| | | { |
| | | c: ColumnTitles552 |
| | | c: popupList809 |
| | | c: GUIDataExtractor968 |
| | | c: GUIDataSetLevel641 |
| | | } |
| | | ] |
| | | ResponseDefinitions: |
| | | [ |
| | | DelegatedResponseDefinition OnClick id:Responsedef_ListPeggingProductInSalesDemandBase_Menu_OnClick |
| | | { |
| | | #keys: '[414702.1.299084225]' |
| | | Initiator: 'Menu' |
| | | IsInherited: false |
| | | ResponseType: 'OnClick' |
| | | Arguments: |
| | | [ |
| | | ResponseDefinitionArgument selection |
| | | { |
| | | #keys: '[621.0.8331282]' |
| | | Binding: 'this.Selection()' |
| | | } |
| | | ] |
| | | } |
| | | DelegatedResponseDefinition OnClick id:Responsedef_ListPeggingProductInSalesDemandBase_GUIButtonBase_OnClick |
| | | { |
| | | #keys: '[414702.1.299084226]' |
| | | Initiator: 'GUIButtonBase' |
| | | IsInherited: false |
| | | ResponseType: 'OnClick' |
| | | Arguments: |
| | | [ |
| | | ResponseDefinitionArgument selection |
| | | { |
| | | #keys: '[621.0.8331327]' |
| | | Binding: 'this.Selection()' |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: ListPeggingProductInSalesDemandBase |
| | | Response OnClick ( |
| | | structured[PeggingProductInSalesDemandBase] selection |
| | | ) id:Response_ListPeggingProductInSalesDemandBase_MenuGeneratePeggingResult_OnClick |
| | | { |
| | | #keys: '[414702.1.299224579]' |
| | | Body: |
| | | [* |
| | | PeggingResult::CreateData( selection, MacroPlan ); |
| | | *] |
| | | CanBindMultiple: false |
| | | DefinitionID => /ListPeggingProductInSalesDemandBase/Responsedef_ListPeggingProductInSalesDemandBase_Menu_OnClick |
| | | Initiator: 'MenuGeneratePeggingResult' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: MacroPlanner |
| | | OrphanComponent FormPeggingResult |
| | | { |
| | | #keys: '[414702.1.299084054]' |
| | | BaseType: 'Form' |
| | | GBLayout |
| | | { |
| | | Type: 'internal[GBLayoutDefinition]' |
| | | Columns: |
| | | [ |
| | | GBFlow.Column { grow: 128 id: 199 parent: 0 } |
| | | ] |
| | | Elements: |
| | | [ |
| | | GBElement |
| | | { |
| | | Component => ListPeggingProductInSalesDemandBase |
| | | Position { startcolumn: 199 startrow: 785 endcolumn: 199 endrow: 785 } |
| | | } |
| | | ] |
| | | Gaps: [ left: 0 right: 0 top: 0 bottom: 0 inner: 5 ] |
| | | Rows: |
| | | [ |
| | | GBFlow.Row { grow: 128 id: 785 parent: 0 } |
| | | ] |
| | | } |
| | | Children: |
| | | [ |
| | | #child: ListPeggingProductInSalesDemandBase |
| | | ] |
| | | Properties: |
| | | [ |
| | | Height: 270 |
| | | Image: 'FISH_BOWL' |
| | | IncludeInView: true |
| | | Title: 'PeggingResult' |
| | | Width: 494 |
| | | ] |
| | | } |
| | |
| | | Title: '颿¿ææ_é墿ä½' |
| | | ] |
| | | } |
| | | Component mn224 |
| | | Component mn222 |
| | | { |
| | | #keys: '[414702.1.5593849]' |
| | | BaseType: 'WebMenu' |
| | |
| | | Title: 'æ°æ®åå' |
| | | ] |
| | | } |
| | | Component mn666 |
| | | { |
| | | #keys: '[414702.1.293023106]' |
| | | BaseType: 'WebMenu' |
| | | Properties: |
| | | [ |
| | | Separator: true |
| | | Taborder: 7 |
| | | ] |
| | | } |
| | | Component mnPeggingAnalyse |
| | | { |
| | | #keys: '[414702.1.293023171]' |
| | | BaseType: 'WebMenu' |
| | | Properties: |
| | | [ |
| | | Description: 'Peggingåæ' |
| | | Image: 'COCKTAIL' |
| | | Taborder: 8 |
| | | Title: 'Peggingåæ' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: cmTestAttempt/mnPeggingAnalyse |
| | | Response OnClick () id:Response_TIANMA_JITUAN_cmTestAttempt_mnPeggingAnalyse_OnClick |
| | | { |
| | | #keys: '[414702.1.294401302]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebMenu_OnClick' |
| | | GroupServerCalls: true |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | ApplicationScope.ViewManager().ResetUserViewById( "Peggingåæ", true ); |
| | | *] |
| | | } |
| | | } |
| | |
| | | #keys: '[414702.0.391791234]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | Precondition: |
| | | [* |
| | | return not isnull( GlobalOTDSOP ); |
| | | *] |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | Application.Download( "产è½åé
ç»æ.xlsx", CapacityAllocationResults::Export( GlobalOTDTable ).AsBinaryData() ); |
| | | Application.Download( "产è½åé
ç»æ.xlsx", CapacityAllocationResults::Export( GlobalOTDSOP ).AsBinaryData() ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | Component DataHolderInterfaceTest |
| | | { |
| | | #keys: '[414502.0.443241895]' |
| | | BaseType: 'WebDataHolder' |
| | | Databinding: 'Scenario' |
| | | Properties: |
| | | [ |
| | | Taborder: 7 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component ListPeggingAllResult |
| | | { |
| | | #keys: '[414702.1.306657922]' |
| | | BaseType: 'WebList' |
| | | Children: |
| | | [ |
| | | Component DataExtractorPeggingAllResult |
| | | { |
| | | #keys: '[414702.1.306657923]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'PeggingResult' |
| | | ExtractionMode: 'Selected' |
| | | Source: 'FormPeggingResult.ListPeggingResult' |
| | | Taborder: 0 |
| | | Transformation: 'AllChild' |
| | | ] |
| | | } |
| | | #child: listActionBarPagePeggingAllResult |
| | | Component DataSetLevelPeggingAllResult |
| | | { |
| | | #keys: '[414702.1.306657928]' |
| | | BaseType: 'WebDataSetLevel' |
| | | Children: |
| | | [ |
| | | #child: listContextMenuPeggingAllResult |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PeggingProductInSalesDemandBase.SalesDemandBaseID","title":"订åID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PeggingProductInSalesDemandBase.SalesDemandBaseID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"产åID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"åºåç¹ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"å¼å§æ¶é´","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SupplyQuantity","title":"ä¾åºæ°é","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SupplyQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FulfillmentQuantity","title":"å®é
éè¦æ°é","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"FulfillmentQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SupplyType","title":"ä¾åºç±»å","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SupplyType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasurementName","title":"åä½","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasurementName"}}]' |
| | | ContextMenu: 'listContextMenuPeggingAllResult' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 0 |
| | | ] |
| | | ResponseDefinitions: |
| | | [ |
| | | DelegatedResponseDefinition OnClick id:Responsedef_ListPeggingAllResult_WebMenu_OnClick |
| | | { |
| | | #keys: '[414702.1.305581888]' |
| | | Initiator: 'WebMenu' |
| | | IsInherited: false |
| | | ResponseType: 'OnClick' |
| | | Arguments: |
| | | [ |
| | | ResponseDefinitionArgument selection |
| | | { |
| | | #keys: '[639.0.20605876]' |
| | | Binding: 'this.Selection()' |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component listActionBarPagePeggingAllResult |
| | | { |
| | | #keys: '[414702.1.306657925]' |
| | | BaseType: 'listActionBarPage' |
| | | Properties: |
| | | [ |
| | | Taborder: 1 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component listContextMenuPeggingAllResult |
| | | { |
| | | #keys: '[414702.1.306657930]' |
| | | BaseType: 'listContextMenu' |
| | | Children: |
| | | [ |
| | | Component MenuSelectAll |
| | | { |
| | | #keys: '[414702.1.305511008]' |
| | | BaseType: 'WebMenu' |
| | | Properties: |
| | | [ |
| | | Image: 'DOCUMENT_SELECTION' |
| | | Shortcut: 'Ctrl+A' |
| | | Taborder: 3 |
| | | Title: 'å
¨é' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: ListPeggingAllResult |
| | | Response OnClick () id:Response_ListPeggingAllResult_MenuSelectAll_OnClick |
| | | { |
| | | #keys: '[414702.1.306792785]' |
| | | CanBindMultiple: false |
| | | DefinitionID => /ListPeggingAllResult/Responsedef_ListPeggingAllResult_WebMenu_OnClick |
| | | Initiator: 'MenuSelectAll' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | this.SelectAll(); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: MacroPlannerWebApp |
| | | OrphanComponent FormPeggingAllResult |
| | | { |
| | | #keys: '[414702.1.305404879]' |
| | | BaseType: 'WebForm' |
| | | Children: |
| | | [ |
| | | #child: ListPeggingAllResult |
| | | ] |
| | | Properties: |
| | | [ |
| | | Image: 'DIAMOND' |
| | | Title: 'Peggingææåç»æ' |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component ListPeggingProductInSalesDemandBase |
| | | { |
| | | #keys: '[414702.1.294477745]' |
| | | BaseType: 'WebList' |
| | | Children: |
| | | [ |
| | | Component DataExtractorPeggingProductInSalesDemandBase |
| | | { |
| | | #keys: '[414702.1.294477746]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'PeggingProduct_MP' |
| | | ExtractionMode: 'Selected' |
| | | Source: 'FormPeggingProduct_MP.ListPeggingProduct_MP' |
| | | Taborder: 0 |
| | | Transformation: 'PeggingProductInSalesDemandBase' |
| | | ] |
| | | } |
| | | #child: listActionBarPagePeggingProductInSalesDemandBase |
| | | Component DataSetLevelPeggingProductInSalesDemandBase |
| | | { |
| | | #keys: '[414702.1.294477751]' |
| | | BaseType: 'WebDataSetLevel' |
| | | Children: |
| | | [ |
| | | #child: listContextMenuPeggingProductInSalesDemandBase |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesDemandBaseID","title":"订åID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesDemandBaseID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"åºåç¹ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"æ°é","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"å¼å§æ¶é´","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}}]' |
| | | ContextMenu: 'listContextMenuPeggingProductInSalesDemandBase' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 0 |
| | | ] |
| | | ResponseDefinitions: |
| | | [ |
| | | DelegatedResponseDefinition OnClick id:Responsedef_ListPeggingProductInSalesDemandBase_WebMenu_OnClick |
| | | { |
| | | #keys: '[414702.1.298881590]' |
| | | Initiator: 'WebMenu' |
| | | IsInherited: false |
| | | ResponseType: 'OnClick' |
| | | Arguments: |
| | | [ |
| | | ResponseDefinitionArgument selection |
| | | { |
| | | #keys: '[619.0.10848847]' |
| | | Binding: 'this.Selection()' |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component listActionBarPagePeggingProductInSalesDemandBase |
| | | { |
| | | #keys: '[414702.1.294477748]' |
| | | BaseType: 'listActionBarPage' |
| | | Properties: |
| | | [ |
| | | Taborder: 1 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component listContextMenuPeggingProductInSalesDemandBase |
| | | { |
| | | #keys: '[414702.1.294477753]' |
| | | BaseType: 'listContextMenu' |
| | | Children: |
| | | [ |
| | | Component mGeneratePeggingResult |
| | | { |
| | | #keys: '[414702.1.298700850]' |
| | | BaseType: 'WebMenu' |
| | | Properties: |
| | | [ |
| | | Image: 'PUMPKIN_HALLOWEEN' |
| | | Taborder: 3 |
| | | Title: 'çæPeggingç»æ' |
| | | ] |
| | | } |
| | | Component MenuSelectionAll |
| | | { |
| | | #keys: '[414702.1.300701803]' |
| | | BaseType: 'WebMenu' |
| | | Properties: |
| | | [ |
| | | Image: 'SELECTION' |
| | | Shortcut: 'Ctrl+A' |
| | | Taborder: 4 |
| | | Title: 'å
¨é' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: ListPeggingProductInSalesDemandBase |
| | | Response OnClick () id:Response_ListPeggingProductInSalesDemandBase_MenuSelectionAll_OnClick |
| | | { |
| | | #keys: '[414702.1.300762760]' |
| | | CanBindMultiple: false |
| | | DefinitionID => /ListPeggingProductInSalesDemandBase/Responsedef_ListPeggingProductInSalesDemandBase_WebMenu_OnClick |
| | | Initiator: 'MenuSelectionAll' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | this.SelectAll(); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: ListPeggingProductInSalesDemandBase |
| | | Response OnClick ( |
| | | structured[PeggingProductInSalesDemandBase] selection |
| | | ) id:Response_ListPeggingProductInSalesDemandBase_mGeneratePeggingResult_OnClick |
| | | { |
| | | #keys: '[414702.1.298700997]' |
| | | CanBindMultiple: false |
| | | DefinitionID => /ListPeggingProductInSalesDemandBase/Responsedef_ListPeggingProductInSalesDemandBase_WebMenu_OnClick |
| | | Initiator: 'mGeneratePeggingResult' |
| | | Precondition: |
| | | [* |
| | | return not isnull( MacroPlan ); |
| | | *] |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | PeggingResult::CreateData( selection, MacroPlan ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: MacroPlannerWebApp |
| | | OrphanComponent FormPeggingProductInSalesDemandBase |
| | | { |
| | | #keys: '[414702.1.291680100]' |
| | | BaseType: 'WebForm' |
| | | Children: |
| | | [ |
| | | #child: ListPeggingProductInSalesDemandBase |
| | | ] |
| | | Properties: |
| | | [ |
| | | Image: 'BANANA' |
| | | Title: 'Pegging产åç订å' |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component ListPeggingProduct_MP |
| | | { |
| | | #keys: '[414702.1.291408736]' |
| | | BaseType: 'WebList' |
| | | Children: |
| | | [ |
| | | Component DataExtractorPeggingProduct_MP |
| | | { |
| | | #keys: '[414702.1.291408737]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'GlobalOTDSOP' |
| | | Source: 'GlobalOTDSOP' |
| | | Taborder: 0 |
| | | Transformation: 'PeggingProduct_MP' |
| | | ] |
| | | } |
| | | #child: listActionBarPagePeggingProduct_MP |
| | | Component DataSetLevelPeggingProduct_MP |
| | | { |
| | | #keys: '[414702.1.291408742]' |
| | | BaseType: 'WebDataSetLevel' |
| | | Children: |
| | | [ |
| | | #child: listContextMenuPeggingProduct_MP |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"产åID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"åºåç¹ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}}]' |
| | | ContextMenu: 'listContextMenuPeggingProduct_MP' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 1 |
| | | ] |
| | | ResponseDefinitions: |
| | | [ |
| | | DelegatedResponseDefinition OnClick id:Responsedef_ListPeggingProduct_MP_WebMenu_OnClick |
| | | { |
| | | #keys: '[414702.1.309521164]' |
| | | Initiator: 'WebMenu' |
| | | IsInherited: false |
| | | ResponseType: 'OnClick' |
| | | Arguments: |
| | | [ |
| | | ResponseDefinitionArgument selection |
| | | { |
| | | #keys: '[645.0.18569723]' |
| | | Binding: 'this.Selection()' |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component listActionBarPagePeggingProduct_MP |
| | | { |
| | | #keys: '[414702.1.291408739]' |
| | | BaseType: 'listActionBarPage' |
| | | Properties: |
| | | [ |
| | | Taborder: 1 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component listContextMenuPeggingProduct_MP |
| | | { |
| | | #keys: '[414702.1.291408744]' |
| | | BaseType: 'listContextMenu' |
| | | Children: |
| | | [ |
| | | Component MenuSelectionAll |
| | | { |
| | | #keys: '[414702.1.308101396]' |
| | | BaseType: 'WebMenu' |
| | | Properties: |
| | | [ |
| | | Image: 'SELECTION' |
| | | Shortcut: 'Ctrl+A' |
| | | Taborder: 3 |
| | | Title: 'å
¨é' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component pButton |
| | | { |
| | | #keys: '[414702.1.288412503]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component bCreate |
| | | { |
| | | #keys: '[414702.1.288443069]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'BOMB' |
| | | Label: 'å建Pegging产å' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | Component bRunPeggingAlgorithm |
| | | { |
| | | #keys: '[414702.1.302382530]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'TREE' |
| | | Label: 'è¿è¡Peggingç®æ³' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | FixedSize: true |
| | | Orientation: 'horizontal' |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: ListPeggingProduct_MP |
| | | Response OnClick () id:Response_ListPeggingProduct_MP_MenuSelectionAll_OnClick |
| | | { |
| | | #keys: '[414702.1.309596514]' |
| | | CanBindMultiple: false |
| | | DefinitionID => /ListPeggingProduct_MP/Responsedef_ListPeggingProduct_MP_WebMenu_OnClick |
| | | Initiator: 'MenuSelectionAll' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | this.SelectAll(); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: pButton/bCreate |
| | | Response OnClick () id:Response_pButton_bCreate_OnClick |
| | | { |
| | | #keys: '[414702.1.288443717]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | Precondition: |
| | | [* |
| | | return not isnull( GlobalOTDSOP ) and not isnull( MacroPlan ); |
| | | *] |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | form := construct( FormNavigationPanel ); |
| | | form.ShowDockLeft(); |
| | | |
| | | PeggingProduct_MP::Create( GlobalOTDSOP, DataHolderCheckedProduct.Data() ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: pButton/bRunPeggingAlgorithm |
| | | Response OnClick () id:Response_pButton_bRunPeggingAlgorithm_OnClick |
| | | { |
| | | #keys: '[414702.1.304801095]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | Precondition: |
| | | [* |
| | | return not isnull( MacroPlan ); |
| | | *] |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | MacroPlan.RunPeggingAlgorithm(); |
| | | |
| | | WebMessageBox::Success( "è¿è¡æåï¼", true ); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: MacroPlannerWebApp |
| | | OrphanComponent FormPeggingProduct_MP |
| | | { |
| | | #keys: '[414702.1.290901529]' |
| | | BaseType: 'WebForm' |
| | | Children: |
| | | [ |
| | | #child: ListPeggingProduct_MP |
| | | #child: pButton |
| | | ] |
| | | Properties: |
| | | [ |
| | | Image: 'ORANGE' |
| | | Title: 'Pegging产ååæ' |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component ListPeggingResult |
| | | { |
| | | #keys: '[414702.1.296178342]' |
| | | BaseType: 'WebList' |
| | | Children: |
| | | [ |
| | | Component DataExtractorPeggingResult |
| | | { |
| | | #keys: '[414702.1.296178343]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'PeggingProductInSalesDemandBase' |
| | | ExtractionMode: 'Selected' |
| | | FixedFilter: 'object.NumberOfPlies() = 0' |
| | | Source: 'FormPeggingProductInSalesDemandBase.ListPeggingProductInSalesDemandBase' |
| | | Taborder: 0 |
| | | Transformation: 'PeggingResult' |
| | | ] |
| | | } |
| | | #child: listActionBarPagePeggingResult |
| | | Component DataSetLevelPeggingResult |
| | | { |
| | | #keys: '[414702.1.296178348]' |
| | | BaseType: 'WebDataSetLevel' |
| | | Children: |
| | | [ |
| | | #child: listContextMenuPeggingResult |
| | | ] |
| | | Properties: |
| | | [ |
| | | Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PeggingProductInSalesDemandBase.SalesDemandBaseID","title":"订åID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PeggingProductInSalesDemandBase.SalesDemandBaseID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"产åID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"åºåç¹ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"å¼å§æ¶é´","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SupplyQuantity","title":"ä¾åºæ°é","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SupplyQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ActualFulfillmentQuantity","title":"å®é
éè¦æ°é","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ActualFulfillmentQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"FulfillmentQuantity","title":"订åéè¦æ°é","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"FulfillmentQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SupplyType","title":"ä¾åºç±»å","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SupplyType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasurementName","title":"åä½","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasurementName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfPlies","title":"屿°","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfPlies"}}]' |
| | | ContextMenu: 'listContextMenuPeggingResult' |
| | | RelationFromParent: 'Child' |
| | | RelationRepeating: 'Child' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 0 |
| | | ] |
| | | ResponseDefinitions: |
| | | [ |
| | | DelegatedResponseDefinition OnClick id:Responsedef_ListPeggingResult_WebMenu_OnClick |
| | | { |
| | | #keys: '[414702.1.302148620]' |
| | | Initiator: 'WebMenu' |
| | | IsInherited: false |
| | | ResponseType: 'OnClick' |
| | | Arguments: |
| | | [ |
| | | ResponseDefinitionArgument selection |
| | | { |
| | | #keys: '[627.0.29218476]' |
| | | Binding: 'this.Selection()' |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component listActionBarPagePeggingResult |
| | | { |
| | | #keys: '[414702.1.296178345]' |
| | | BaseType: 'listActionBarPage' |
| | | Properties: |
| | | [ |
| | | Taborder: 1 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component listContextMenuPeggingResult |
| | | { |
| | | #keys: '[414702.1.296178350]' |
| | | BaseType: 'listContextMenu' |
| | | Children: |
| | | [ |
| | | Component MenuSelectionAll |
| | | { |
| | | #keys: '[414702.1.302117859]' |
| | | BaseType: 'WebMenu' |
| | | Properties: |
| | | [ |
| | | Image: 'SELECTION' |
| | | Shortcut: 'Ctrl+A' |
| | | Taborder: 3 |
| | | Title: 'å
¨é' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: ListPeggingResult |
| | | Response OnClick () id:Response_ListPeggingResult_MenuSelectionAll_OnClick |
| | | { |
| | | #keys: '[414702.1.302148638]' |
| | | CanBindMultiple: false |
| | | DefinitionID => /ListPeggingResult/Responsedef_ListPeggingResult_WebMenu_OnClick |
| | | Initiator: 'MenuSelectionAll' |
| | | QuillAction |
| | | { |
| | | Body: |
| | | [* |
| | | this.SelectAll(); |
| | | *] |
| | | GroupServerCalls: false |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: MacroPlannerWebApp |
| | | OrphanComponent FormPeggingResult |
| | | { |
| | | #keys: '[414702.1.295031324]' |
| | | BaseType: 'WebForm' |
| | | Children: |
| | | [ |
| | | #child: ListPeggingResult |
| | | ] |
| | | Properties: |
| | | [ |
| | | Image: 'CUP' |
| | | Title: 'Peggingç»æ' |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | { |
| | | viewcontents |
| | | { |
| | | forms |
| | | { |
| | | form_FormPeggingProduct_MP |
| | | { |
| | | title: 'QTIANMA_JITUAN::FormPeggingProduct_MP' |
| | | shown: true |
| | | componentID: 'QTIANMA_JITUAN::FormPeggingProduct_MP' |
| | | layout |
| | | { |
| | | mode: 'open' |
| | | rowPosition: 1 |
| | | rowSpan: 7 |
| | | columnPosition: 1 |
| | | columnSpan: 3 |
| | | } |
| | | components |
| | | { |
| | | FormPeggingProduct_MP_pButton |
| | | { |
| | | sizeRatio: 1 |
| | | } |
| | | FormPeggingProduct_MP_ListPeggingProduct_MP |
| | | { |
| | | } |
| | | FormPeggingProduct_MP_DataSetLevelPeggingProduct_MP |
| | | { |
| | | groupDepth: -1 |
| | | column_ProductID |
| | | { |
| | | columnId: 'ProductID' |
| | | dataPath: 'ProductID' |
| | | dataType: 'string' |
| | | index: 0 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | form_FormPeggingProductInSalesDemandBase_1 |
| | | { |
| | | title: 'QTIANMA_JITUAN::FormPeggingProductInSalesDemandBase' |
| | | shown: true |
| | | componentID: 'QTIANMA_JITUAN::FormPeggingProductInSalesDemandBase' |
| | | layout |
| | | { |
| | | mode: 'open' |
| | | rowPosition: 8 |
| | | rowSpan: 6 |
| | | columnPosition: 1 |
| | | columnSpan: 3 |
| | | } |
| | | components |
| | | { |
| | | FormPeggingProductInSalesDemandBase_ListPeggingProductInSalesDemandBase |
| | | { |
| | | } |
| | | FormPeggingProductInSalesDemandBase_DataSetLevelPeggingProductInSalesDemandBase |
| | | { |
| | | groupDepth: -1 |
| | | sort: 'StartDate' |
| | | column_SalesDemandBaseID |
| | | { |
| | | columnId: 'SalesDemandBaseID' |
| | | dataPath: 'SalesDemandBaseID' |
| | | dataType: 'string' |
| | | index: 0 |
| | | subtotals: 'count' |
| | | width: 61 |
| | | } |
| | | column_StockingPointID |
| | | { |
| | | columnId: 'StockingPointID' |
| | | dataPath: 'StockingPointID' |
| | | dataType: 'string' |
| | | index: 1 |
| | | subtotals: '' |
| | | width: 95 |
| | | } |
| | | column_Quantity |
| | | { |
| | | columnId: 'Quantity' |
| | | dataPath: 'Quantity' |
| | | dataType: 'real' |
| | | index: 2 |
| | | subtotals: '' |
| | | width: 51 |
| | | } |
| | | column_StartDate |
| | | { |
| | | columnId: 'StartDate' |
| | | dataPath: 'StartDate' |
| | | dataType: 'date' |
| | | index: 3 |
| | | subtotals: '' |
| | | width: 76 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | form_FormPeggingResult |
| | | { |
| | | title: 'QTIANMA_JITUAN::FormPeggingResult' |
| | | shown: true |
| | | componentID: 'QTIANMA_JITUAN::FormPeggingResult' |
| | | layout |
| | | { |
| | | mode: 'open' |
| | | rowPosition: 1 |
| | | rowSpan: 13 |
| | | columnPosition: 4 |
| | | columnSpan: 9 |
| | | } |
| | | components |
| | | { |
| | | FormPeggingResult_ListPeggingResult |
| | | { |
| | | } |
| | | FormPeggingResult_DataSetLevelPeggingResult |
| | | { |
| | | groupDepth: -1 |
| | | sort: 'ProductID' |
| | | column_PeggingProductInSalesDemandBase_SalesDemandBaseID |
| | | { |
| | | columnId: 'PeggingProductInSalesDemandBase.SalesDemandBaseID' |
| | | dataPath: 'PeggingProductInSalesDemandBase.SalesDemandBaseID' |
| | | dataType: 'string' |
| | | index: 0 |
| | | subtotals: 'count' |
| | | width: 122 |
| | | } |
| | | column_ProductID |
| | | { |
| | | columnId: 'ProductID' |
| | | dataPath: 'ProductID' |
| | | dataType: 'string' |
| | | index: 1 |
| | | subtotals: '' |
| | | width: 164 |
| | | } |
| | | column_StockingPointID |
| | | { |
| | | columnId: 'StockingPointID' |
| | | dataPath: 'StockingPointID' |
| | | dataType: 'string' |
| | | index: 2 |
| | | subtotals: '' |
| | | width: 92 |
| | | } |
| | | column_StartDate |
| | | { |
| | | columnId: 'StartDate' |
| | | dataPath: 'StartDate' |
| | | dataType: 'date' |
| | | index: 3 |
| | | subtotals: '' |
| | | width: 82 |
| | | } |
| | | column_SupplyQuantity |
| | | { |
| | | columnId: 'SupplyQuantity' |
| | | dataPath: 'SupplyQuantity' |
| | | dataType: 'real' |
| | | index: 4 |
| | | subtotals: '' |
| | | width: 86 |
| | | } |
| | | column_ActualFulfillmentQuantity |
| | | { |
| | | columnId: 'ActualFulfillmentQuantity' |
| | | dataPath: 'ActualFulfillmentQuantity' |
| | | dataType: 'real' |
| | | index: 5 |
| | | subtotals: '' |
| | | width: 97 |
| | | } |
| | | column_FulfillmentQuantity |
| | | { |
| | | columnId: 'FulfillmentQuantity' |
| | | dataPath: 'FulfillmentQuantity' |
| | | dataType: 'real' |
| | | index: 6 |
| | | subtotals: '' |
| | | width: 108 |
| | | } |
| | | column_SupplyType |
| | | { |
| | | columnId: 'SupplyType' |
| | | dataPath: 'SupplyType' |
| | | dataType: 'string' |
| | | index: 7 |
| | | subtotals: '' |
| | | width: 78 |
| | | } |
| | | column_UnitOfMeasurementName |
| | | { |
| | | columnId: 'UnitOfMeasurementName' |
| | | dataPath: 'UnitOfMeasurementName' |
| | | dataType: 'string' |
| | | index: 8 |
| | | subtotals: '' |
| | | width: 50 |
| | | } |
| | | column_NumberOfPlies |
| | | { |
| | | columnId: 'NumberOfPlies' |
| | | dataPath: 'NumberOfPlies' |
| | | dataType: 'number' |
| | | index: 9 |
| | | subtotals: '' |
| | | width: 56 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | form_FormPeggingAllResult |
| | | { |
| | | title: 'QTIANMA_JITUAN::FormPeggingAllResult' |
| | | shown: true |
| | | componentID: 'QTIANMA_JITUAN::FormPeggingAllResult' |
| | | layout |
| | | { |
| | | mode: 'open' |
| | | rowPosition: 14 |
| | | rowSpan: 12 |
| | | columnPosition: 1 |
| | | columnSpan: 12 |
| | | } |
| | | components |
| | | { |
| | | FormPeggingAllResult_ListPeggingAllResult |
| | | { |
| | | } |
| | | FormPeggingAllResult_DataSetLevelPeggingAllResult |
| | | { |
| | | groupDepth: 2 |
| | | sort: 'ProductID,StockingPointID,StartDate,DESC:PeggingProductInSalesDemandBase.SalesDemandBaseID' |
| | | column_PeggingProductInSalesDemandBase_SalesDemandBaseID |
| | | { |
| | | columnId: 'PeggingProductInSalesDemandBase.SalesDemandBaseID' |
| | | dataPath: 'PeggingProductInSalesDemandBase.SalesDemandBaseID' |
| | | dataType: 'string' |
| | | index: 0 |
| | | subtotals: 'count' |
| | | width: 150 |
| | | } |
| | | column_ProductID |
| | | { |
| | | columnId: 'ProductID' |
| | | dataPath: 'ProductID' |
| | | dataType: 'string' |
| | | index: 1 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_StockingPointID |
| | | { |
| | | columnId: 'StockingPointID' |
| | | dataPath: 'StockingPointID' |
| | | dataType: 'string' |
| | | index: 2 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_StartDate |
| | | { |
| | | columnId: 'StartDate' |
| | | dataPath: 'StartDate' |
| | | dataType: 'date' |
| | | index: 3 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_SupplyQuantity |
| | | { |
| | | columnId: 'SupplyQuantity' |
| | | dataPath: 'SupplyQuantity' |
| | | dataType: 'real' |
| | | index: 4 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_FulfillmentQuantity |
| | | { |
| | | columnId: 'FulfillmentQuantity' |
| | | dataPath: 'FulfillmentQuantity' |
| | | dataType: 'real' |
| | | index: 5 |
| | | subtotals: 'sum' |
| | | width: 150 |
| | | } |
| | | column_SupplyType |
| | | { |
| | | columnId: 'SupplyType' |
| | | dataPath: 'SupplyType' |
| | | dataType: 'string' |
| | | index: 6 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | column_UnitOfMeasurementName |
| | | { |
| | | columnId: 'UnitOfMeasurementName' |
| | | dataPath: 'UnitOfMeasurementName' |
| | | dataType: 'string' |
| | | index: 7 |
| | | subtotals: '' |
| | | width: 150 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | userconfigurableinformation |
| | | { |
| | | } |
| | | page: '' |
| | | group: '' |
| | | index: 0 |
| | | image: 'VIEW' |
| | | description: '' |
| | | } |
| | | formatversion: 2 |
| | | id: 'Peggingåæ' |
| | | name: 'åæPegging' |
| | | isglobal: false |
| | | isroot: true |
| | | } |