From 67ff28f43d635a3728bb7d39364a9c6f8345912b Mon Sep 17 00:00:00 2001 From: hongji.li <hongji.a.li@capgemini.com> Date: 星期四, 07 九月 2023 11:34:34 +0800 Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/TIANMA_JITUAN into dev_lhj --- _Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl | 61 +++++++++++-------- _Main/BL/Type_InventorySupply/StaticMethod_CreateOrUpdate.qbl | 31 ++++++++++ _Main/BL/Type_MacroPlan/Method_InitialUnitAndStockingPoint.qbl | 21 ++++-- _Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl | 20 ++++-- _Main/BL/Type_ActualProductInStockingPointInPeriod/_ROOT_Type_ActualProductInStockingPointInPeriod.qbl | 6 ++ _Main/BL/Type_InventorySupply/_ROOT_Type_InventorySupply.qbl | 6 ++ _Main/BL/Type_ActualProductInStockingPointInPeriod/StaticMethod_CreateOrUpdate.qbl | 31 ++++++++++ 7 files changed, 136 insertions(+), 40 deletions(-) diff --git a/_Main/BL/Type_ActualProductInStockingPointInPeriod/StaticMethod_CreateOrUpdate.qbl b/_Main/BL/Type_ActualProductInStockingPointInPeriod/StaticMethod_CreateOrUpdate.qbl new file mode 100644 index 0000000..0c2492f --- /dev/null +++ b/_Main/BL/Type_ActualProductInStockingPointInPeriod/StaticMethod_CreateOrUpdate.qbl @@ -0,0 +1,31 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateOrUpdate ( + MacroPlan owner, + String productid, + String stockingpointid, + String description, + Real actualinventorylevelend, + Date manufactureddate +) +{ + TextBody: + [* + // Administrator Sep-6-2023 (created) + date := Date :: Today(); + actualpispip := ActualProductInStockingPointInPeriod::FindActualProductInStockingPointInPeriodTypeIndex( productid, stockingpointid, date, manufactureddate ); + + if( isnull( actualpispip ) ){ + ActualProductInStockingPointInPeriod::Create( owner, + productid, + stockingpointid, + description, + actualinventorylevelend, + date, + manufactureddate, + true); + }else{ + actualpispip.Update( actualinventorylevelend, description, true ); + } + *] +} diff --git a/_Main/BL/Type_ActualProductInStockingPointInPeriod/_ROOT_Type_ActualProductInStockingPointInPeriod.qbl b/_Main/BL/Type_ActualProductInStockingPointInPeriod/_ROOT_Type_ActualProductInStockingPointInPeriod.qbl new file mode 100644 index 0000000..f7f3c21 --- /dev/null +++ b/_Main/BL/Type_ActualProductInStockingPointInPeriod/_ROOT_Type_ActualProductInStockingPointInPeriod.qbl @@ -0,0 +1,6 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +TypeSpecialization ActualProductInStockingPointInPeriod #extension +{ +} diff --git a/_Main/BL/Type_InventorySupply/StaticMethod_CreateOrUpdate.qbl b/_Main/BL/Type_InventorySupply/StaticMethod_CreateOrUpdate.qbl new file mode 100644 index 0000000..14114a8 --- /dev/null +++ b/_Main/BL/Type_InventorySupply/StaticMethod_CreateOrUpdate.qbl @@ -0,0 +1,31 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateOrUpdate ( + String id, + Product_MP productmp, + StockingPoint_MP stockingpoint, + Date date, + Date manufacturedate, + Real userquantity, + String description +) +{ + TextBody: + [* + // Administrator Sep-6-2023 (created) + inventorysupply := InventorySupply::FindInventorySupplyTypeIndex( id ); + + if( isnull( inventorysupply ) ){ + InventorySupply::Create(id, + productmp, + stockingpoint, + date, + manufacturedate, + userquantity, + description, + true); + }else{ + inventorysupply.Update( userquantity ); + } + *] +} diff --git a/_Main/BL/Type_InventorySupply/_ROOT_Type_InventorySupply.qbl b/_Main/BL/Type_InventorySupply/_ROOT_Type_InventorySupply.qbl new file mode 100644 index 0000000..71216fe --- /dev/null +++ b/_Main/BL/Type_InventorySupply/_ROOT_Type_InventorySupply.qbl @@ -0,0 +1,6 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +TypeSpecialization InventorySupply #extension +{ +} diff --git a/_Main/BL/Type_MacroPlan/Method_InitialUnitAndStockingPoint.qbl b/_Main/BL/Type_MacroPlan/Method_InitialUnitAndStockingPoint.qbl index e3f3545..b8b0705 100644 --- a/_Main/BL/Type_MacroPlan/Method_InitialUnitAndStockingPoint.qbl +++ b/_Main/BL/Type_MacroPlan/Method_InitialUnitAndStockingPoint.qbl @@ -90,16 +90,21 @@ isfromdb ); } - Currency_MP::CreateCurrency( this, "CNY", "CNY", "", true ); - currency := Currency_MP::FindById( this, "EUR" ); - currency.IsBase(false); - Transaction::Transaction().Propagate(); + existcurrency := Currency_MP::FindById( this, "CNY" ); + if( isnull( existcurrency ) ){ + Currency_MP::CreateCurrency( this, "CNY", "CNY", "", true ); + currency := Currency_MP::FindById( this, "EUR" ); + currency.IsBase(false); + Transaction::Transaction().Propagate(); + } isproductcatagory := false; isfromdb := false; - - ProductLevel_MP::Create( "1", isproductcatagory, this, isfromdb ); - ProductLevel_MP::Create( "2", isproductcatagory, this, isfromdb ); - ProductLevel_MP::Create( "3", isproductcatagory, this, isfromdb ); + existproductlevel := ProductLevel_MP::FindProductLevelTypeIndex( "2" ); + if( isnull( existproductlevel ) ){ + ProductLevel_MP::Create( "1", isproductcatagory, this, isfromdb ); + ProductLevel_MP::Create( "2", isproductcatagory, this, isfromdb ); + ProductLevel_MP::Create( "3", isproductcatagory, this, isfromdb ); + } *] } diff --git a/_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl index d4b8493..87cbdf3 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl @@ -9,12 +9,12 @@ [* // renhao Aug-14-2023 (created) date := Date :: Today(); - listtodeal := selectset( this,MappingActualPISPIP,actual,true ); + listtodeal := selectset( this,MappingActualPISPIP,actual,not isnull( Product_MP::FindById( this, actual.ProductID() ) ) ); totalcount := listtodeal.Size(); info( "ActualPISPIP has " + totalcount.AsQUILL() + " rows in total" ); count := 0; - traverse( this,MappingActualPISPIP,actual){ + traverse( listtodeal,Elements,actual){ count := count + 1; if( count - [Number](count/100) * 100 = 0 or count = totalcount ){ info( "Now is dealing with the " + count.AsQUILL() + "ActualPISPIP " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" ); @@ -26,14 +26,22 @@ for( i :=0 ;i < businessTypes.Size();i++ ){ businessType := businessTypes.Element( i); if( product.BusinessType() = businessType and not product.IsCommon()){ - ActualProductInStockingPointInPeriod::Create( this,actual.ProductID(),actual.StockingPointID(),actual.Description(),actual.ActualInventoryLevelEnd(), - date,actual.ManufacturedDate(),true); + ActualProductInStockingPointInPeriod::CreateOrUpdate( this, + actual.ProductID(), + actual.StockingPointID(), + actual.Description(), + actual.ActualInventoryLevelEnd(), + actual.ManufacturedDate()); } } }else{ - ActualProductInStockingPointInPeriod::Create( this,actual.ProductID(),actual.StockingPointID(),actual.Description(),actual.ActualInventoryLevelEnd(), - date,actual.ManufacturedDate(),true); + ActualProductInStockingPointInPeriod::CreateOrUpdate( this, + actual.ProductID(), + actual.StockingPointID(), + actual.Description(), + actual.ActualInventoryLevelEnd(), + actual.ManufacturedDate()); } } diff --git a/_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl index c30b6bc..7295bad 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl @@ -9,7 +9,8 @@ [* // renhao Aug-14-2023 (created) - listtodeal := selectset( this,MappingExternalSupply,externalSupply, not isnull( StockingPoint_MP::FindById( this, externalSupply.StockingPointID() ) ) ); + listtodeal := selectset( this,MappingExternalSupply,externalSupply, + not isnull( StockingPoint_MP::FindById( this, externalSupply.StockingPointID() ) ) and not isnull( Product_MP::FindById( this, externalSupply.ProductID() ) ) ); totalcount := listtodeal.Size(); info( "ExternalSupply has " + totalcount.AsQUILL() + " rows in total" ); @@ -19,32 +20,40 @@ if( count - [Number](count/100) * 100 = 0 or count = totalcount ){ info( "Now is dealing with the " + count.AsQUILL() + "ExternalSupply " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" ); } - // product := select( this,MappingProduct,product,product.ID() = externalSupply.ProductID() and product.KeyProduct() = nuclear,true); - // - // if( not isnull( product)){ - // productMP := select( this,Product_MP,productMP,productMP.ID() = externalSupply.ProductID() ,true); - // stockingpoint := select( this,StockingPoint_MP,st,st.ID() = externalSupply.StockingPointID(),true); - // if( not isnull(businessTypes)){ - // - // for( i :=0 ;i < businessTypes.Size();i++ ){ - // businessType := businessTypes.Element( i); - // if( product.BusinessType() = businessType and not product.IsCommon()){ - // InventorySupply::Create(externalSupply.ID(),productMP,stockingpoint,externalSupply.Date(),externalSupply.ManufacturedDate(),externalSupply.UserQuantity(),"鍦ㄩ�斿湪鍒�",true); - // } - // } - // - // }else{ - productMP := Product_MP::FindById( this, externalSupply.ProductID() ); - stockingpoint := StockingPoint_MP::FindById( this, externalSupply.StockingPointID() ); - if( not isnull( stockingpoint) and not isnull( productMP)){ - InventorySupply::Create(externalSupply.ID(),productMP,stockingpoint,externalSupply.Date(),externalSupply.ManufacturedDate(),externalSupply.UserQuantity(),"鍦ㄩ�斿湪鍒�",true); - } + product := select( this,MappingProduct,product,product.ID() = externalSupply.ProductID() and product.KeyProduct() = nuclear,true); - // } - // - // }else{ - // info( "Invaild product" ); - // } + if( not isnull( product)){ + productMP := select( this,Product_MP,productMP,productMP.ID() = externalSupply.ProductID() ,true); + stockingpoint := select( this,StockingPoint_MP,st,st.ID() = externalSupply.StockingPointID(),true); + if( not isnull(businessTypes)){ + + for( i :=0 ;i < businessTypes.Size();i++ ){ + businessType := businessTypes.Element( i); + if( product.BusinessType() = businessType and not product.IsCommon()){ + InventorySupply::CreateOrUpdate( externalSupply.ID(), + productMP, + stockingpoint, + externalSupply.Date(), + externalSupply.ManufacturedDate(), + externalSupply.UserQuantity(),"鍦ㄩ�斿湪鍒�"); + } + } + + }else{ + if( not isnull( stockingpoint) and not isnull( productMP)){ + InventorySupply::CreateOrUpdate( externalSupply.ID(), + productMP, + stockingpoint, + externalSupply.Date(), + externalSupply.ManufacturedDate(), + externalSupply.UserQuantity(),"鍦ㄩ�斿湪鍒�"); + } + + } + + }else{ + info( "Invaild product" ); + } } *] } -- Gitblit v1.9.3