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