From 941bd22d7915934c5dcbbcabd9d9e4034b3b08f9 Mon Sep 17 00:00:00 2001
From: yunchai <yunying.chai@capgemini.com>
Date: 星期日, 08 十月 2023 11:32:13 +0800
Subject: [PATCH] 填产后冲减(冲减时新增订单未实现)
---
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedgingEx.qbl | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 104 insertions(+), 10 deletions(-)
diff --git a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedgingEx.qbl b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedgingEx.qbl
index b32aa30..dd62492 100644
--- a/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedgingEx.qbl
+++ b/_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedgingEx.qbl
@@ -14,30 +14,123 @@
*鍒涘缓鏃堕棿锛�2023-09-27
*鎻� 杩帮細濉骇鍚庤鍗曞啿鍑�,濉骇鍚庣殑琛細Owner.FillingCapacityOrder
*鍙� 鏁帮細Operator 鎿嶄綔浜�
- *杩� 鍥� 鍊硷細JSON {Status: true 鎴愬姛/false 澶辫触,Msg:"鎻愮ず娑堟伅"}
+ *杩� 鍥� 鍊硷細JSON {Status: true 鎴愬姛/false 澶辫触,Msg:"鎻愮ず娑堟伅",Count: 0锛堝啿鍑忚鍗曠殑鏁伴噺锛墋
*******************************************************************/
// 鍒濆鍖栫粨鏋�
bStatus := false;
strMsg :="";
+ // 鍐插噺鎴愬姛鏉℃暟
+ nCount:=0;
try
{
- error( "AAAAAA");
if(not isnull( Owner))
{
- // Customer 鎹㈡垚鐘舵��
- NewOrders := selectset( Owner,FillingCapacityOrder,Obj,Obj.State() = "鏈啿鍑�");
+ // 鑾峰彇鎿嶄綔璁㈠崟
+ NewOrders := selectset( Owner,FillingCapacityOrder,Obj,Obj.State() = "鏈啿鍑�" or Obj.State() ="");
if(NewOrders.Size()>0)
{
+ // 鏂拌鍗曚笌鍘熻鍗曞啿鍑�
traverse( NewOrders,Elements,Obj)
{
- if( Obj.OrderType()="鍙嶇" or Obj.OrderType()="鎺堟潈")
+ if( (Obj.OrderType()="鍙嶇" or Obj.OrderType()="鎺堟潈") and Obj.Quantity()>0 )
{
- // 鏇存柊鐘舵��
+ // 寰楀埌鎿嶄綔鐩稿叧鐨勫弽绛捐鍗�
+ ROrders:= select( Owner,SalesDemand.astype( CustomerOrder ),ObjOrder,
+ ObjOrder.CustomerName() = Obj.Customer()
+ and ObjOrder.ProductID()=Obj.ProductID()
+ and ObjOrder.OrderTag() ="鍙嶇"
+ );
+ // 鍙嶇鏃犲啿鍑忥紝鐩存帴鍚戣鍗曚腑鍔犲叆鍙嶇鏁版嵁
+ if( Obj.OrderType()="鍙嶇")
+ {
+ if( not isnull( ROrders))
+ {
+ ROrders.Quantity(ROrders.Quantity()+Obj.Quantity());
+ }
+ else
+ {
+ // 鏂板璁㈠崟
+ error( "----------------璇峰疄鐜版柊澧炲弽绛捐鍗曞姛鑳戒唬鐮�---------------------");
+ // 璁㈠崟蹇呰淇℃伅濡備笅锛�
+ // OrderTag = "鍙嶇"
+ // Quantity = Obj.Quantity()
+ // 鍏朵粬淇℃伅缁ф壙褰撳墠鐨勮鍗�
+ }
+ }
+ else if(Obj.OrderType()="鎺堟潈")
+ {
+ // 寰楀埌鎿嶄綔鐩稿叧鐨勬巿鏉冭鍗�
+ AOrders:= select( Owner,SalesDemand.astype( CustomerOrder ),ObjOrder,
+ ObjOrder.CustomerName() = Obj.Customer()
+ and ObjOrder.ProductID()=Obj.ProductID()
+ and ObjOrder.OrderTag() ="鎺堟潈"
+ );
+ if( not isnull( ROrders))
+ {
+ // 褰撳墠鍙嶇鏁伴噺
+ RQty:=ROrders.Quantity();
+ // 璁$畻鏂扮殑鎺堟潈鏁伴噺
+ AQty:= Obj.Quantity() - ROrders.Quantity();
+ // 鎺堟潈澶т簬0锛屽弽绛捐鍐叉病,鍚﹀垯鎺堟潈琚啿锛屽弽绛剧瓑浜嶢Qty鐨勭粷瀵瑰��
+ if( AQty>=0)
+ {
+ RQty:=0;
+ }
+ else
+ {
+ RQty :=ROrders.Quantity() - Obj.Quantity();
+ AQty :=0;
+ }
+ // 鏇存柊鍙嶇鏁版嵁
+ if( RQty>=0)
+ {
+ ROrders.Quantity(RQty);
+ }
+ else
+ {
+ ROrders.Delete();
+ }
+ // 鏇存柊鎺堟潈鏁版嵁
+ if(AQty>0 )
+ {
+ if( not isnull( AOrders))
+ {
+ AOrders.Quantity(AOrders.Quantity()+AQty);
+ }
+ // 鏂板鎺堟潈璁㈠崟
+ error( "----------------璇峰疄鐜版柊澧炴巿鏉冭鍗曞姛鑳戒唬鐮�---------------------");
+ // 璁㈠崟蹇呰淇℃伅濡備笅锛�
+ // OrderTag = "鎺堟潈"
+ // Quantity = AQty
+ // 鍏朵粬淇℃伅缁ф壙褰撳墠鐨勮鍗�
+ }
+ }
+ else
+ {
+ // 灏嗘柊鎺堟潈鏁版嵁绱姞鍒拌鍗曚腑
+ if( not isnull( AOrders))
+ {
+ AOrders.Quantity(AOrders.Quantity()+Obj.Quantity());
+ }
+ else
+ {
+ // 鏂板鎺堟潈璁㈠崟
+ error( "----------------璇峰疄鐜版柊澧炴巿鏉冭鍗曞姛鑳戒唬鐮�---------------------");
+ // 璁㈠崟蹇呰淇℃伅濡備笅锛�
+ // OrderTag = "鎺堟潈"
+ // Quantity = Obj.Quantity()
+ // 鍏朵粬淇℃伅缁ф壙褰撳墠鐨勮鍗�
+ }
+ }
+ }
+ // 鏇存柊鍐插噺鐘舵��
Obj.State("宸插啿鍑�");
+ nCount++;
}
else
{
- strMsg :="璁㈠崟绫诲瀷锛�" + Obj.OrderType() + "鏃犳硶鍐插噺锛�";
+ // 鏃犳硶璇嗗埆鐨勭被鍨嬶紝鎴栨暟閲忎负0鏃舵殏涓嶅鐞�
+ //strMsg :="璁㈠崟绫诲瀷锛�" + Obj.OrderType() + "鏃犳硶鍐插噺锛�";
}
}
bStatus:=true;
@@ -57,11 +150,12 @@
{
strMsg :="濉骇鍚庤鍗曞啿鍑忓彂鐢熼敊璇紝璇疯仈绯荤郴缁熺鐞嗗憳锛�";
// 璁板綍閿欒鏃ュ織
- Owner.H_ErrorLogs(relnew,EClassName := "H_FunctionClass",EDateTime := DateTime::ActualGMTTime(),EFunctionName := "SM_OrderHedgingEx",
- DeveloperInformation := e.DeveloperInformation(),ErrorNr := e.ErrorNr(),DetailedInformation := e.DetailedInformation(),
- GeneralInformation := e.GeneralInformation());
+ // Owner.H_ErrorLogs(relnew,EClassName := "H_FunctionClass",EDateTime := DateTime::ActualGMTTime(),EFunctionName := "SM_OrderHedgingEx",
+ // DeveloperInformation := e.DeveloperInformation(),ErrorNr := e.ErrorNr(),DetailedInformation := e.DetailedInformation(),
+ // GeneralInformation := e.GeneralInformation());
}
return JSON::Object().Add( "Status",bStatus)
+ .Add( "Count",nCount)
.Add( "Msg",strMsg).Build();
*]
}
--
Gitblit v1.9.3