From f3dec8f5b480474c9a3b2ea0fabb0f6b9fdc0423 Mon Sep 17 00:00:00 2001
From: renhao <renhui.hao@capgemini.com>
Date: 星期五, 13 十月 2023 17:11:34 +0800
Subject: [PATCH] Merge branch 'dev'
---
_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl | 46 ++++++++++++++++++++++++++++++++++------------
1 files changed, 34 insertions(+), 12 deletions(-)
diff --git a/_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl
index 9ede09f..da901cc 100644
--- a/_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl
+++ b/_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl
@@ -1,7 +1,9 @@
Quintiq file version 2.0
#parent: #root
Method MappingCustomerOrderData (
- Strings businessTypes
+ Strings businessTypes,
+ GlobalOTDTable globalOTDTable,
+ Strings organcodelist
)
{
Description: 'ETL璁㈠崟棰勬祴'
@@ -9,25 +11,45 @@
[*
// yypsybs Aug-15-2023 (created)
// 寰呭鐞嗘暟鎹�
- listToDeal := construct( structured[MappingCustomerOrder] );
+ listToDeal := construct( Global_MappingCustomOrders );
if( isnull( businessTypes ) or businessTypes.Size() = 0 ) {
- listToDeal := selectset( this, MappingCustomerOrder, item, true );
+ listToDeal := selectset( globalOTDTable, Global_MappingCustomOrder, item, true );
} else {
- listToDeal := selectset( this, MappingCustomerOrder, item, businessTypes.Find( item.BusinessType() ) <> -1 );
+ listToDeal := selectset( globalOTDTable,
+ Global_MappingCustomOrder,
+ item,
+ ( businessTypes.Find( item.BusinessType() ) <> -1 ) and
+ ( 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() );
- listToDeal := selectset( listToDeal, Elements, item, item.OrderDate() >= queryStartDate and item.OrderDate() <= queryEndDate, not isnull( Product_MP::FindById( this, item.ProductID() ) ) and not isnull( StockingPoint_MP::FindById( this, item.StockPointID() ) ) and not isnull( SalesSegment_MP::FindByName( this, item.SalesSegmentName() ) ) );
+ listToDeal := selectset( listToDeal, Elements, item, item.OrderDate() >= queryStartDate /*and item.OrderDate() <= queryEndDate*/, not isnull( Product_MP::FindById( this, item.ProductID() ) ) and not isnull( StockingPoint_MP::FindById( this, item.StockingPointID() ) ) and not isnull( SalesSegment_MP::FindByName( this, item.SalesSegmentName() ) ) );
+
+ totalcount := listToDeal.Size();
+ info( "CustomerOrder has " + totalcount.AsQUILL() + " rows in total" );
+
+ count := 0;
+ priorityName :="Normal";
// 澶勭悊
traverse( listToDeal, Elements, item ) {
+ count := count + 1;
+ if( count - [Number](count/100) * 100 = 0 or count = totalcount ){
+ info( "Now is dealing with the " + count.AsQUILL() + "CustomerOrder " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" );
+ }
// if( not isnull( Product_MP::FindById( this, item.ProductID() ) ) ){
- info( item.ProductID().AsQUILL() );
- CustomerOrder::CreateOrUpdate( this, item.CurrencyID(), item.Customer(), item.CustomerID(), item.ID(),
- item.OrderDate(), item.OrderID(), item.OrderLineID(), item.Price(),
- item.PriorityName(), item.ProductID(),
- item.StockPointID(),
- item.SalesSegmentName(),
- item.Quantity(), item.UnitOfMeasureName(), item.OrderType(), item.IsAvailable());
+ // info( item.ProductID().AsQUILL() );
+ customOrder := CustomerOrder::CreateOrUpdate( this, item.CurrencyID(), item.Customer(), item.CustomerID(), item.ID(),
+ item.OrderDate(), item.OrderID(), item.OrderLineID(), item.Price(),
+ priorityName, item.ProductID(),
+ item.StockingPointID(),
+ item.SalesSegmentName(),
+ item.Quantity(), item.UnitOfMeasureName(), item.OrderType(), item.IsAvailable());
+ customOrder.BusinessType( item.BusinessType() );
+ customOrder.OrderType( item.OrderType() );
+ customOrder.OrderTime( item.OrderTime() );
+ customOrder.ProductGrade( item.ProductGrade() );
+ customOrder.SegmentPriority( item.SegmentPriority() );
+ customOrder.SheetProfitability( item.SheetProfitability() );
// }else{
// info( "invaild product: " + item.ProductID().AsQUILL() );
// }
--
Gitblit v1.9.3