From aefafd2142478d4fb07d6b8b45c3047e247389e0 Mon Sep 17 00:00:00 2001 From: hongji.li <hongji.a.li@capgemini.com> Date: 星期五, 03 十一月 2023 16:31:17 +0800 Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/TIANMA_JITUAN into dev_lhj --- _Main/BL/Type_Global_MappingLaneLeg/StaticMethod_SynchronizeMacroPlanData.qbl | 35 -- _Main/BL/Type_ProductInLane/StaticMethod_FindById.qbl | 16 + _Main/BL/Type_Global_MappingUnitOfMeasure_MP/StaticMethod_SynchronizeMacroPlanData.qbl | 24 +- _Main/BL/Type_LaneLeg/StaticMethod_CreateLaneLegFromJson.qbl | 3 _Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_SynchronizeMacroPlanData.qbl | 20 - _Main/BL/Type_Global_MappingOperationBOM/StaticMethod_SynchronizeMacroPlanData.qbl | 5 _Main/BL/Type_MacroPlan/Method_ApiLaneLegsData.qbl | 3 _Main/BL/Type_Currency_MP/StaticMethod_CreateFromMapping.qbl | 27 ++ _Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_SynchronizeMacroPlanData.qbl | 20 - _Main/BL/Type_StockingPoint_MP/StaticMethod_CreateStockingpoint.qbl | 2 _Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateCurrencyRate.qbl | 5 _Main/BL/Type_Global_MappingStockingPointCost/StaticMethod_SynchronizeMacroPlanData.qbl | 6 _Main/BL/Type_StockingPoint_MP/StaticMethod_CreateFromMapping.qbl | 28 ++ _Main/BL/Type_Global_MappingUnitCost/StaticMethod_SynchronizeMacroPlanData.qbl | 5 _Main/BL/Type_Global_MappingProductInLane/StaticMethod_SynchronizeMacroPlanData.qbl | 6 _Main/BL/Type_MacroPlan/Method_DoASyncMappingExternalSupplyData.qbl | 2 _Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl | 4 _Main/BL/Type_Global_MappingForecast/StaticMethod_SynchronizeMacroPlanData.qbl | 5 _Main/BL/Type_Lane/StaticMethod_FindById.qbl | 15 + _Main/BL/Type_Lane/StaticMethod_CreateLane.qbl | 3 _Main/BL/Type_CurrencyRate_MP/StaticMethod_FindByIdAndStart.qbl | 17 + _Main/BL/Type_LaneLeg/StaticMethod_CreateLaneleg.qbl | 7 _Main/BL/Type_ProductInLane/StaticMethod_CreateOrUpdate.qbl | 6 _Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl | 2 _Main/BL/Type_Global_MappingCustomOrder/StaticMethod_SynchronizeMacroPlanData.qbl | 7 _Main/BL/Type_Global_MappingOperation/StaticMethod_SynchronizeMacroPlanData.qbl | 5 _Main/BL/Type_Global_MappingConversionFactor/StaticMethod_SynchronizeMacroPlanData.qbl | 5 _Main/BL/Type_InventoryValueAndCost/StaticMethod_CreateOrUpdate.qbl | 8 _Main/BL/Type_Global_MappingSalesSegment_MP/StaticMethod_SynchronizeMacroPlanData.qbl | 5 _Main/BL/Type_MacroPlan/Method_DoASyncMappingCustomerOrderData.qbl | 2 _Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/_ROOT_Component_FormInterfaceTest.def | 10 _Main/BL/Type_MacroPlan/StaticMethod_DoASync#253.qbl | 59 +--- _Main/BL/Type_Global_MappingProduct_MP/StaticMethod_SynchronizeMacroPlanData.qbl | 5 _Main/BL/Type_LaneLeg/StaticMethod_FindByIdAndLane.qbl | 17 + _Main/BL/Type_InventoryValueAndCost/StaticMethod_FindById.qbl | 3 _Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/StaticMethod_SynchronizeMacroPlanData.qbl | 5 _Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateCurrencyRateFromJson.qbl | 3 _Main/BL/Type_Global_MappingLane/StaticMethod_SynchronizeMacroPlanData.qbl | 52 ---- _Main/BL/Type_MacroPlan/Method_ApiCurencyRatesData.qbl | 3 _Main/BL/Type_Lane/StaticMethod_CreateLaneFromJson.qbl | 2 _Main/BL/Type_Lane/StaticMethod_FindByIdAndUnit.qbl | 16 + _Main/BL/Type_Currency_MP/StaticMethod_CreateCurrency.qbl | 2 _Main/BL/Type_LaneLeg/StaticMethod_CreateFromMapping.qbl | 42 +++ _Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_SynchronizeMacroPlanData.qbl | 20 - /dev/null | 6 _Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan#127.qbl | 8 _Main/BL/Type_Global_MappingInventorySupply/StaticMethod_SynchronizeMacroPlanData.qbl | 5 _Main/BL/Type_Lane/StaticMethod_CreasteFromMapping.qbl | 59 +++++ _Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateFromMapping.qbl | 27 ++ _Main/BL/Type_BaseConversionFactor/StaticMethod_CreateOrUpdate.qbl | 14 + 50 files changed, 413 insertions(+), 243 deletions(-) diff --git a/_Main/BL/Type_BaseConversionFactor/StaticMethod_CreateOrUpdate.qbl b/_Main/BL/Type_BaseConversionFactor/StaticMethod_CreateOrUpdate.qbl index cd44e09..2e4ee74 100644 --- a/_Main/BL/Type_BaseConversionFactor/StaticMethod_CreateOrUpdate.qbl +++ b/_Main/BL/Type_BaseConversionFactor/StaticMethod_CreateOrUpdate.qbl @@ -26,6 +26,20 @@ 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 ) } diff --git a/_Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateCurrencyRate.qbl b/_Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateCurrencyRate.qbl index b3244e0..272b16c 100644 --- a/_Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateCurrencyRate.qbl +++ b/_Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateCurrencyRate.qbl @@ -1,6 +1,7 @@ Quintiq file version 2.0 #parent: #root StaticMethod CreateCurrencyRate ( + MacroPlan mp, String currencyid, Date start, Real rate @@ -11,10 +12,10 @@ [* // 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 ) ) { diff --git a/_Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateCurrencyRateFromJson.qbl b/_Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateCurrencyRateFromJson.qbl index 67cd2c8..97a01d2 100644 --- a/_Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateCurrencyRateFromJson.qbl +++ b/_Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateCurrencyRateFromJson.qbl @@ -1,6 +1,7 @@ Quintiq file version 2.0 #parent: #root StaticMethod CreateCurrencyRateFromJson ( + MacroPlan mp, JSON datarow ) as CurrencyRate_MP { @@ -16,7 +17,7 @@ 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; *] diff --git a/_Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateFromMapping.qbl b/_Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateFromMapping.qbl new file mode 100644 index 0000000..82dc0fa --- /dev/null +++ b/_Main/BL/Type_CurrencyRate_MP/StaticMethod_CreateFromMapping.qbl @@ -0,0 +1,27 @@ +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(); + } + *] +} diff --git a/_Main/BL/Type_CurrencyRate_MP/StaticMethod_FindByIdAndStart.qbl b/_Main/BL/Type_CurrencyRate_MP/StaticMethod_FindByIdAndStart.qbl new file mode 100644 index 0000000..2c39de8 --- /dev/null +++ b/_Main/BL/Type_CurrencyRate_MP/StaticMethod_FindByIdAndStart.qbl @@ -0,0 +1,17 @@ +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; + *] +} diff --git a/_Main/BL/Type_Currency_MP/StaticMethod_CreateCurrency.qbl b/_Main/BL/Type_Currency_MP/StaticMethod_CreateCurrency.qbl index ade128e..155abb3 100644 --- a/_Main/BL/Type_Currency_MP/StaticMethod_CreateCurrency.qbl +++ b/_Main/BL/Type_Currency_MP/StaticMethod_CreateCurrency.qbl @@ -16,7 +16,7 @@ isfromdb := true; //create new currency - result := Currency_MP::FindCurrencyTypeIndex( id ); + result := Currency_MP::FindById( mp, id ); if( isnull( result ) ) { diff --git a/_Main/BL/Type_Currency_MP/StaticMethod_CreateFromMapping.qbl b/_Main/BL/Type_Currency_MP/StaticMethod_CreateFromMapping.qbl new file mode 100644 index 0000000..dbda48a --- /dev/null +++ b/_Main/BL/Type_Currency_MP/StaticMethod_CreateFromMapping.qbl @@ -0,0 +1,27 @@ +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(); + } + *] +} diff --git "a/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl" "b/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl" index 66ff081..254563a 100644 --- "a/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl" +++ "b/_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan\043127.qbl" @@ -50,11 +50,11 @@ 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 ) { @@ -82,7 +82,7 @@ } if ( isProductInLane ) { - Global_MappingProductInLane::SynchronizeMacroPlanData( this, macroPlan, executionUser ); + Global_MappingProductInLane::SynchronizeMacroPlanData( this, macroPlan, businessTypes, executionUser ); } if ( isAIPISPIP ) { @@ -94,7 +94,7 @@ } if ( isStockingPointCost ) { - Global_MappingStockingPointCost::SynchronizeMacroPlanData( this, macroPlan, executionUser ); + Global_MappingStockingPointCost::SynchronizeMacroPlanData( this, macroPlan, businessTypes, executionUser ); } if ( isOperationCost ) { diff --git a/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/StaticMethod_SynchronizeMacroPlanData.qbl index 984a0eb..ad249d7 100644 --- a/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingActualProductInStockingPointInPeriod/StaticMethod_SynchronizeMacroPlanData.qbl @@ -12,14 +12,15 @@ 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" ) ); diff --git a/_Main/BL/Type_Global_MappingConversionFactor/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingConversionFactor/StaticMethod_SynchronizeMacroPlanData.qbl index 9467117..51aa067 100644 --- a/_Main/BL/Type_Global_MappingConversionFactor/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingConversionFactor/StaticMethod_SynchronizeMacroPlanData.qbl @@ -9,14 +9,15 @@ 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" ) ); diff --git a/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_SynchronizeMacroPlanData.qbl index 5913ebe..e30d9ef 100644 --- a/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_SynchronizeMacroPlanData.qbl @@ -9,29 +9,15 @@ 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 { diff --git a/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_SynchronizeMacroPlanData.qbl index 38ac6bb..31f2109 100644 --- a/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_SynchronizeMacroPlanData.qbl @@ -9,29 +9,15 @@ 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 { diff --git a/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_SynchronizeMacroPlanData.qbl index 9a69cf5..7e2f51f 100644 --- a/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_SynchronizeMacroPlanData.qbl @@ -3,20 +3,23 @@ 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" ) ); diff --git a/_Main/BL/Type_Global_MappingForecast/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingForecast/StaticMethod_SynchronizeMacroPlanData.qbl index ef72e85..cb14755 100644 --- a/_Main/BL/Type_Global_MappingForecast/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingForecast/StaticMethod_SynchronizeMacroPlanData.qbl @@ -11,14 +11,15 @@ 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" ) ); diff --git a/_Main/BL/Type_Global_MappingInventorySupply/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingInventorySupply/StaticMethod_SynchronizeMacroPlanData.qbl index 06d00c5..7de7b35 100644 --- a/_Main/BL/Type_Global_MappingInventorySupply/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingInventorySupply/StaticMethod_SynchronizeMacroPlanData.qbl @@ -12,14 +12,15 @@ 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" ) ); diff --git a/_Main/BL/Type_Global_MappingLane/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingLane/StaticMethod_SynchronizeMacroPlanData.qbl index 60224b2..6cfc45e 100644 --- a/_Main/BL/Type_Global_MappingLane/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingLane/StaticMethod_SynchronizeMacroPlanData.qbl @@ -9,61 +9,15 @@ 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 { diff --git a/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_SynchronizeMacroPlanData.qbl index d1743ec..dacd193 100644 --- a/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_SynchronizeMacroPlanData.qbl @@ -9,44 +9,15 @@ 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 { diff --git a/_Main/BL/Type_Global_MappingOperation/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingOperation/StaticMethod_SynchronizeMacroPlanData.qbl index 6a663dd..59d2808 100644 --- a/_Main/BL/Type_Global_MappingOperation/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingOperation/StaticMethod_SynchronizeMacroPlanData.qbl @@ -11,14 +11,15 @@ 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" ) ); diff --git a/_Main/BL/Type_Global_MappingOperationBOM/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingOperationBOM/StaticMethod_SynchronizeMacroPlanData.qbl index 3198fd5..86e1e89 100644 --- a/_Main/BL/Type_Global_MappingOperationBOM/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingOperationBOM/StaticMethod_SynchronizeMacroPlanData.qbl @@ -13,14 +13,15 @@ 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" ) ); diff --git a/_Main/BL/Type_Global_MappingProductInLane/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingProductInLane/StaticMethod_SynchronizeMacroPlanData.qbl index 9e722b5..00eddb8 100644 --- a/_Main/BL/Type_Global_MappingProductInLane/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingProductInLane/StaticMethod_SynchronizeMacroPlanData.qbl @@ -3,20 +3,22 @@ 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" ) ); diff --git a/_Main/BL/Type_Global_MappingProduct_MP/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingProduct_MP/StaticMethod_SynchronizeMacroPlanData.qbl index 8c10d2f..47d8f21 100644 --- a/_Main/BL/Type_Global_MappingProduct_MP/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingProduct_MP/StaticMethod_SynchronizeMacroPlanData.qbl @@ -11,14 +11,15 @@ 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" ) ); diff --git a/_Main/BL/Type_Global_MappingSalesSegment_MP/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingSalesSegment_MP/StaticMethod_SynchronizeMacroPlanData.qbl index fc881d2..636f6a8 100644 --- a/_Main/BL/Type_Global_MappingSalesSegment_MP/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingSalesSegment_MP/StaticMethod_SynchronizeMacroPlanData.qbl @@ -10,14 +10,15 @@ 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" ) ); diff --git a/_Main/BL/Type_Global_MappingStockingPointCost/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingStockingPointCost/StaticMethod_SynchronizeMacroPlanData.qbl index df0cc31..adfe937 100644 --- a/_Main/BL/Type_Global_MappingStockingPointCost/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingStockingPointCost/StaticMethod_SynchronizeMacroPlanData.qbl @@ -3,20 +3,22 @@ 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" ) ); diff --git a/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_SynchronizeMacroPlanData.qbl index 7db4814..a388711 100644 --- a/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_SynchronizeMacroPlanData.qbl @@ -9,29 +9,15 @@ 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 { diff --git a/_Main/BL/Type_Global_MappingUnitCost/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingUnitCost/StaticMethod_SynchronizeMacroPlanData.qbl index 8f08b84..2b7b644 100644 --- a/_Main/BL/Type_Global_MappingUnitCost/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingUnitCost/StaticMethod_SynchronizeMacroPlanData.qbl @@ -11,14 +11,15 @@ 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" ) ); diff --git a/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/StaticMethod_SynchronizeMacroPlanData.qbl b/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/StaticMethod_SynchronizeMacroPlanData.qbl index d31811e..30bfa48 100644 --- a/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/StaticMethod_SynchronizeMacroPlanData.qbl +++ b/_Main/BL/Type_Global_MappingUnitOfMeasure_MP/StaticMethod_SynchronizeMacroPlanData.qbl @@ -2,30 +2,30 @@ #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" ); } *] } diff --git a/_Main/BL/Type_InventoryValueAndCost/StaticMethod_CreateOrUpdate.qbl b/_Main/BL/Type_InventoryValueAndCost/StaticMethod_CreateOrUpdate.qbl index 4116cce..9dec2cd 100644 --- a/_Main/BL/Type_InventoryValueAndCost/StaticMethod_CreateOrUpdate.qbl +++ b/_Main/BL/Type_InventoryValueAndCost/StaticMethod_CreateOrUpdate.qbl @@ -32,16 +32,16 @@ //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; diff --git a/_Main/BL/Type_InventoryValueAndCost/StaticMethod_FindById.qbl b/_Main/BL/Type_InventoryValueAndCost/StaticMethod_FindById.qbl index 133145d..e49e111 100644 --- a/_Main/BL/Type_InventoryValueAndCost/StaticMethod_FindById.qbl +++ b/_Main/BL/Type_InventoryValueAndCost/StaticMethod_FindById.qbl @@ -12,6 +12,9 @@ [* // 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; *] } diff --git a/_Main/BL/Type_Lane/StaticMethod_CreasteFromMapping.qbl b/_Main/BL/Type_Lane/StaticMethod_CreasteFromMapping.qbl new file mode 100644 index 0000000..ab95433 --- /dev/null +++ b/_Main/BL/Type_Lane/StaticMethod_CreasteFromMapping.qbl @@ -0,0 +1,59 @@ +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(); + } + *] +} diff --git a/_Main/BL/Type_Lane/StaticMethod_CreateLane.qbl b/_Main/BL/Type_Lane/StaticMethod_CreateLane.qbl index 64c72eb..286b75f 100644 --- a/_Main/BL/Type_Lane/StaticMethod_CreateLane.qbl +++ b/_Main/BL/Type_Lane/StaticMethod_CreateLane.qbl @@ -1,6 +1,7 @@ Quintiq file version 2.0 #parent: #root StaticMethod CreateLane ( + MacroPlan mp, Unit unit, String id, String name, @@ -19,7 +20,7 @@ isfromdb := true; //create new stockingpoint - result := Lane::FindLaneTypeIndex( id ); + result := Lane::FindById( mp, id ); if( isnull( result ) ) { diff --git a/_Main/BL/Type_Lane/StaticMethod_CreateLaneFromJson.qbl b/_Main/BL/Type_Lane/StaticMethod_CreateLaneFromJson.qbl index 060eabc..d4e9b77 100644 --- a/_Main/BL/Type_Lane/StaticMethod_CreateLaneFromJson.qbl +++ b/_Main/BL/Type_Lane/StaticMethod_CreateLaneFromJson.qbl @@ -40,7 +40,7 @@ EndDate := enddate ); } - result := Lane::CreateLane( unit, id, name, processingtime); + result := Lane::CreateLane( macroplan, unit, id, name, processingtime); return result; *] diff --git a/_Main/BL/Type_Lane/StaticMethod_FindById.qbl b/_Main/BL/Type_Lane/StaticMethod_FindById.qbl new file mode 100644 index 0000000..05cf40a --- /dev/null +++ b/_Main/BL/Type_Lane/StaticMethod_FindById.qbl @@ -0,0 +1,15 @@ +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; + *] +} diff --git a/_Main/BL/Type_Lane/StaticMethod_FindByIdAndUnit.qbl b/_Main/BL/Type_Lane/StaticMethod_FindByIdAndUnit.qbl new file mode 100644 index 0000000..b60c9e4 --- /dev/null +++ b/_Main/BL/Type_Lane/StaticMethod_FindByIdAndUnit.qbl @@ -0,0 +1,16 @@ +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; + *] +} diff --git a/_Main/BL/Type_LaneLeg/StaticMethod_CreateFromMapping.qbl b/_Main/BL/Type_LaneLeg/StaticMethod_CreateFromMapping.qbl new file mode 100644 index 0000000..f15c486 --- /dev/null +++ b/_Main/BL/Type_LaneLeg/StaticMethod_CreateFromMapping.qbl @@ -0,0 +1,42 @@ +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(); + } + *] +} diff --git a/_Main/BL/Type_LaneLeg/StaticMethod_CreateLaneLegFromJson.qbl b/_Main/BL/Type_LaneLeg/StaticMethod_CreateLaneLegFromJson.qbl index ed77c9e..021a0f6 100644 --- a/_Main/BL/Type_LaneLeg/StaticMethod_CreateLaneLegFromJson.qbl +++ b/_Main/BL/Type_LaneLeg/StaticMethod_CreateLaneLegFromJson.qbl @@ -1,6 +1,7 @@ Quintiq file version 2.0 #parent: #root StaticMethod CreateLaneLegFromJson ( + MacroPlan mp, JSON datarow ) as LaneLeg { @@ -29,7 +30,7 @@ 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; *] diff --git a/_Main/BL/Type_LaneLeg/StaticMethod_CreateLaneleg.qbl b/_Main/BL/Type_LaneLeg/StaticMethod_CreateLaneleg.qbl index c72fe3d..6ca8d7e 100644 --- a/_Main/BL/Type_LaneLeg/StaticMethod_CreateLaneleg.qbl +++ b/_Main/BL/Type_LaneLeg/StaticMethod_CreateLaneleg.qbl @@ -1,6 +1,7 @@ Quintiq file version 2.0 #parent: #root StaticMethod CreateLaneleg ( + MacroPlan mp, Lane lane, String laneid, String originstockingpointid, @@ -25,16 +26,16 @@ 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 ) ) { diff --git a/_Main/BL/Type_LaneLeg/StaticMethod_FindByIdAndLane.qbl b/_Main/BL/Type_LaneLeg/StaticMethod_FindByIdAndLane.qbl new file mode 100644 index 0000000..a6a90ec --- /dev/null +++ b/_Main/BL/Type_LaneLeg/StaticMethod_FindByIdAndLane.qbl @@ -0,0 +1,17 @@ +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; + *] +} diff --git a/_Main/BL/Type_MacroPlan/DefaultValue_BusinessType.qbl b/_Main/BL/Type_MacroPlan/DefaultValue_BusinessType.qbl deleted file mode 100644 index 1672b03..0000000 --- a/_Main/BL/Type_MacroPlan/DefaultValue_BusinessType.qbl +++ /dev/null @@ -1,6 +0,0 @@ -Quintiq file version 2.0 -#parent: #root -DefaultValue -{ - TargetAttribute: BusinessType -} diff --git a/_Main/BL/Type_MacroPlan/Method_ApiCurencyRatesData.qbl b/_Main/BL/Type_MacroPlan/Method_ApiCurencyRatesData.qbl index 9f5c492..e4ee8c5 100644 --- a/_Main/BL/Type_MacroPlan/Method_ApiCurencyRatesData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_ApiCurencyRatesData.qbl @@ -1,6 +1,7 @@ Quintiq file version 2.0 #parent: #root Method ApiCurencyRatesData ( + MacroPlan mp, JSON data ) { @@ -14,7 +15,7 @@ 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 ); diff --git a/_Main/BL/Type_MacroPlan/Method_ApiLaneLegsData.qbl b/_Main/BL/Type_MacroPlan/Method_ApiLaneLegsData.qbl index 450d6ae..c3e7b0c 100644 --- a/_Main/BL/Type_MacroPlan/Method_ApiLaneLegsData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_ApiLaneLegsData.qbl @@ -1,6 +1,7 @@ Quintiq file version 2.0 #parent: #root Method ApiLaneLegsData ( + MacroPlan mp, JSON data ) { @@ -14,7 +15,7 @@ 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 ); diff --git a/_Main/BL/Type_MacroPlan/Method_DoASyncMappingCustomerOrderData.qbl b/_Main/BL/Type_MacroPlan/Method_DoASyncMappingCustomerOrderData.qbl index e56a4f7..16ec956 100644 --- a/_Main/BL/Type_MacroPlan/Method_DoASyncMappingCustomerOrderData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_DoASyncMappingCustomerOrderData.qbl @@ -22,7 +22,7 @@ ( 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(); diff --git a/_Main/BL/Type_MacroPlan/Method_DoASyncMappingExternalSupplyData.qbl b/_Main/BL/Type_MacroPlan/Method_DoASyncMappingExternalSupplyData.qbl index ad47aed..6b2f316 100644 --- a/_Main/BL/Type_MacroPlan/Method_DoASyncMappingExternalSupplyData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_DoASyncMappingExternalSupplyData.qbl @@ -11,7 +11,7 @@ [* // 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 ) { diff --git "a/_Main/BL/Type_MacroPlan/StaticMethod_DoASync\043253.qbl" "b/_Main/BL/Type_MacroPlan/StaticMethod_DoASync\043253.qbl" index 0c397f4..70b4b76 100644 --- "a/_Main/BL/Type_MacroPlan/StaticMethod_DoASync\043253.qbl" +++ "b/_Main/BL/Type_MacroPlan/StaticMethod_DoASync\043253.qbl" @@ -17,6 +17,8 @@ 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 ){ @@ -44,34 +46,23 @@ 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" ) @@ -92,24 +83,12 @@ 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" ); diff --git a/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl b/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl index 8cb5656..25df795 100644 --- a/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl +++ b/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl @@ -71,7 +71,7 @@ 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" ) @@ -109,7 +109,7 @@ 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" ); diff --git a/_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl b/_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl index 9794c76..dbd5fae 100644 --- a/_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl +++ b/_Main/BL/Type_PriorityResult/StaticMethod_CalculateScore.qbl @@ -35,7 +35,7 @@ // 鎴彇鎺夊凡缁忚绠楃殑浼樺厛绾у洜瀛� 閫掑綊璁$畻 remindFormula := PriorityResult::GetRemindFormula( remindFormula,macroPlan); score := score + PriorityResult::CalculateScore( remindFormula,customerOrder,businessType,macroPlan,score,globalOTDTable); - }else if( remindFormula.StartsWith( "*" ) ){ + }else if( remindFormula.StartsWith( "x" ) ){ remindFormula := remindFormula.SubString( 1,remindFormula.Length()-1); score := PriorityResult::GetDetailsValue( customerOrder,remindFormula,macroPlan,globalOTDTable); score := lastScore * score; diff --git a/_Main/BL/Type_ProductInLane/StaticMethod_CreateOrUpdate.qbl b/_Main/BL/Type_ProductInLane/StaticMethod_CreateOrUpdate.qbl index 0359b3f..8fd36c2 100644 --- a/_Main/BL/Type_ProductInLane/StaticMethod_CreateOrUpdate.qbl +++ b/_Main/BL/Type_ProductInLane/StaticMethod_CreateOrUpdate.qbl @@ -15,15 +15,15 @@ // 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 ); } } *] diff --git a/_Main/BL/Type_ProductInLane/StaticMethod_FindById.qbl b/_Main/BL/Type_ProductInLane/StaticMethod_FindById.qbl new file mode 100644 index 0000000..e0065ed --- /dev/null +++ b/_Main/BL/Type_ProductInLane/StaticMethod_FindById.qbl @@ -0,0 +1,16 @@ +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; + *] +} diff --git a/_Main/BL/Type_StockingPoint_MP/StaticMethod_CreateFromMapping.qbl b/_Main/BL/Type_StockingPoint_MP/StaticMethod_CreateFromMapping.qbl new file mode 100644 index 0000000..f56738d --- /dev/null +++ b/_Main/BL/Type_StockingPoint_MP/StaticMethod_CreateFromMapping.qbl @@ -0,0 +1,28 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateFromMapping ( + const GlobalOTDTable globalOTDTable, + MacroPlan macroPlan +) +{ + Description: '浠巑apping琛ㄥ垱寤哄簱瀛樼偣' + 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(); + } + *] +} diff --git a/_Main/BL/Type_StockingPoint_MP/StaticMethod_CreateStockingpoint.qbl b/_Main/BL/Type_StockingPoint_MP/StaticMethod_CreateStockingpoint.qbl index 857199b..3e2a601 100644 --- a/_Main/BL/Type_StockingPoint_MP/StaticMethod_CreateStockingpoint.qbl +++ b/_Main/BL/Type_StockingPoint_MP/StaticMethod_CreateStockingpoint.qbl @@ -22,7 +22,7 @@ isfromdb := true; //create new stockingpoint - result := StockingPoint_MP::FindStockingPointTypeIndex( id ); + result := StockingPoint_MP::FindById( mp, id ); if( isnull( result ) ) { diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/_ROOT_Component_FormInterfaceTest.def b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/_ROOT_Component_FormInterfaceTest.def index 087a1e2..97b6783 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/_ROOT_Component_FormInterfaceTest.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/_ROOT_Component_FormInterfaceTest.def @@ -23,6 +23,16 @@ Taborder: 0 ] } + Component DataHolderInterfaceTest + { + #keys: '[414502.0.443241895]' + BaseType: 'WebDataHolder' + Databinding: 'Scenario' + Properties: + [ + Taborder: 7 + ] + } ] Properties: [ -- Gitblit v1.9.3