From 472c228ef6d7c8d877558ff90051b1fdb35ffb5c Mon Sep 17 00:00:00 2001 From: renhao <renhui.hao@capgemini.com> Date: 星期二, 10 十月 2023 14:05:34 +0800 Subject: [PATCH] Merge branch 'dev' --- _Main/BL/Type_CustomerOrder/StaticMethod_CreateOrUpdate.qbl | 47 ++++++++++++++++++++++++++++++++++++----------- 1 files changed, 36 insertions(+), 11 deletions(-) diff --git a/_Main/BL/Type_CustomerOrder/StaticMethod_CreateOrUpdate.qbl b/_Main/BL/Type_CustomerOrder/StaticMethod_CreateOrUpdate.qbl index e885859..1728622 100644 --- a/_Main/BL/Type_CustomerOrder/StaticMethod_CreateOrUpdate.qbl +++ b/_Main/BL/Type_CustomerOrder/StaticMethod_CreateOrUpdate.qbl @@ -38,33 +38,58 @@ } // 妫�鏌ヤ緷璧栭」 if( isnull( product) ) { - info( "product not found" ); + info( "product not found" + productId); } if( isnull( salesSegment) ) { - info( "sales segment not found" ); + info( "sales segment not found" + salesSegmentName); } if( isnull( stockingPoint) ) { - info( "stock point not found" ); + info( "stock point not found" + stockingPointId); } //if( isnull( currency) ) { // error( "currency not found" ); //} if( unitOfMeasureName <> "" and isnull( unitOfMeasure) ) { - info( "unit of measure not found" ); + info( "unit of measure not found" + unitOfMeasureName); } - if( priorityName <> "" and isnull( stockingPoint) ) { - info( "priority not found" ); - } + //if( priorityName <> "" and isnull( stockingPoint) ) { + // info( "priority not found" ); + //} // 鏂板/鏇存柊 result := CustomerOrder::FindById( macroPlan, id ); if( isnull( result ) ) { - CustomerOrder::Create( product, stockingPoint, id, orderDate, quantity, price, + result := CustomerOrder::Create( product, stockingPoint, id, orderDate, quantity, price, priorityName, salesSegmentName, currencyId, unitOfMeasureName, false, customerName, customerId, orderId, orderLineId, true, true, true ); } else { - result.Update( product, stockingPoint, orderDate, quantity, price, - priorityName, salesSegmentName, currencyId, unitOfMeasureName, - false, customerName, customerId, orderId, orderLineId, true, true, true ); + if( result.ProductID() = productId + and result.StockingPointID() = stockingPointId + and result.StartDate() = orderDate + and result.Quantity() = quantity + and result.Price() = price + and result.PriorityName() = priorityName + and result.SalesSegmentName() = salesSegmentName + and result.CurrencyID() = currencyId + and result.UnitOfMeasureName() = unitOfMeasureName + and result.CustomerName() = customerName + and result.CustomerID() = customerId + and result.OrderID() = orderId + and result.OrderLineID() = orderLineId ){ + info( "No need to update this order: " + id ); + }else{ + if( result.IsLocked() = true ){ + pispips := selectset( result, ProductInStockingPoint_MP.ProductInStockingPointInPeriod, pispip, true ); + pispipLeafs := selectset( pispips, + Elements.astype( ProductInStockingPointInPeriodPlanningLeaf ), + pispip, + true ); + ProductInStockingPointInPeriod::LockUnlockPlanning( pispipLeafs, false, true ); + } + result.Update( product, stockingPoint, orderDate, quantity, price, + priorityName, salesSegmentName, currencyId, unitOfMeasureName, + false, customerName, customerId, orderId, orderLineId, true, true, true ); + result.IsLocked( false ); + } } return result; *] -- Gitblit v1.9.3