From 6076a7bca746b344840cf782711a87e5318f4f16 Mon Sep 17 00:00:00 2001
From: 王 垚 <1402714037@qq.com>
Date: 星期一, 13 九月 2021 11:14:30 +0800
Subject: [PATCH] nothing
---
src/BLL/Demo.BillView/PRD/Pro_TlPush.cs | 785 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 731 insertions(+), 54 deletions(-)
diff --git a/src/BLL/Demo.BillView/PRD/Pro_TlPush.cs b/src/BLL/Demo.BillView/PRD/Pro_TlPush.cs
index b555b37..46a5287 100644
--- a/src/BLL/Demo.BillView/PRD/Pro_TlPush.cs
+++ b/src/BLL/Demo.BillView/PRD/Pro_TlPush.cs
@@ -1,82 +1,328 @@
锘縰sing System;
using System.Collections.Generic;
-using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Data;
using System.Linq;
-using System.Text;
-using Demo.Model.Model;
-using Kingdee.BOS;
-using Kingdee.BOS.Core.Attachment;
using Kingdee.BOS.Core.Bill;
using Kingdee.BOS.Core.Bill.PlugIn;
-using Kingdee.BOS.Core.Bill.PlugIn.Args;
-using Kingdee.BOS.Core.CommonFilter;
+using Kingdee.BOS.Core.DbSchema;
using Kingdee.BOS.Core.DynamicForm;
-using Kingdee.BOS.Core.DynamicForm.DiffCompare;
-using Kingdee.BOS.Core.DynamicForm.Operation;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
+using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
using Kingdee.BOS.Core.List;
using Kingdee.BOS.Core.Metadata;
-using Kingdee.BOS.Core.Metadata.BarElement;
-using Kingdee.BOS.Core.Metadata.ConvertElement;
-using Kingdee.BOS.Core.Metadata.ConvertElement.ServiceArgs;
using Kingdee.BOS.Core.Metadata.EntityElement;
-using Kingdee.BOS.Core.Metadata.FormElement;
-using Kingdee.BOS.Core.Metadata.QueryElement;
-using Kingdee.BOS.Core.Msg;
-using Kingdee.BOS.Core.Permission;
-using Kingdee.BOS.Log;
-using Kingdee.BOS.Msg;
-using Kingdee.BOS.Orm;
using Kingdee.BOS.Orm.DataEntity;
-using Kingdee.BOS.Orm.Metadata.DataEntity;
-using Kingdee.BOS.Resource;
using Kingdee.BOS.ServiceHelper;
-using Kingdee.BOS.Util;
-using Kingdee.K3.SCM.Business;
-using Kingdee.K3.SCM.Core.SCP;
-using Kingdee.K3.SCM.ServiceHelper;
using Newtonsoft.Json.Linq;
+using ZD.Cloud.Logger;
+using ZD.Cloud.WebApi;
+using ZD.Share.Common;
+using Demo.Model;
+using Demo.Model.Model.PODemandPlan;
+
namespace Demo.BillView.PRD
{
-
- [Description("鎻愭枡涓嬫帹閫佽揣閫氱煡鍗�")]
+ [Description("鎻愭枡璁″垝鍗�-琛ㄥ崟鎻掍欢")]
[Kingdee.BOS.Util.HotUpdate]
public class Pro_TlPush : AbstractBillPlugIn
{
+ CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/");
public override void BarItemClick(BarItemClickEventArgs e)
{
- string a;
- if ((a = e.BarItemKey.ToUpperInvariant()) != null)
+ try
{
- if (a == "TBPUSH")
+ string a;
+ if ((a = e.BarItemKey.ToUpperInvariant()) != null)
{
- // 鑾峰彇鐖跺崟鎹綋
- Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity");//鏍囪瘑
- //DynamicObjectCollection entityRows = entity.DynamicProperty.GetValue(this.Model.DataObject) as DynamicObjectCollection;//鑾峰彇鐖跺崟鎹綋琛岄泦鍚�
- DynamicObjectCollection entityRows = this.Model.GetEntityDataObject(entity);//鑾峰彇鐖跺崟鎹綋琛岄泦鍚�
- // 1鍜�2鍧囧彲
- // 鍙栧綋鍓嶉〉闈㈠瓙鍗曟嵁浣�
- //Entity subEntity = this.View.BillBusinessInfo.GetEntity("FEntity");//鏍囪瘑
- //DynamicObjectCollection rows = this.Model.GetEntityDataObject(subEntity);//鑾峰緱瀛愬崟鎹綋琛岄泦鍚�
-
- string sql = $"select * from ";
-
-
- JObject model = new JObject();
- model.Add("FHDate", "");
- model.Add("FSettleCurrId", new JObject() { ["Fnumber"] = "PRE001" });
- model.Add("FSupplierID", new JObject() { ["Fnumber"] = "" });
-
- JArray Fentity = new JArray();
- for (int i = 0; i < 10; i++)
+ if (a == "TBPUSH")
{
+ Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity");//鏍囪瘑
+ DynamicObjectCollection entityRows = this.Model.GetEntityDataObject(entity);//鑾峰彇鐖跺崟鎹綋琛岄泦鍚�
+ int ret = entityRows.Where(x => Convert.ToDecimal(x["FHQty"]) - Convert.ToDecimal(x["FReciveCount"]) > 0 && !Convert.ToBoolean(x["FCloseStatus"])).Count();
+ if (ret == 0)
+ {
+ this.View.ShowErrMessage("宸插叏閮ㄧ敓鎴愰�佽揣鍗�");
+ return;
+ }
+ JObject model = new JObject();
+ model.Add("FBILLTYPEID", new JObject() { ["Fnumber"] = "SLD01_SYS" }); //鍗曟嵁绫诲瀷
+ model.Add("FDate", DateTime.Now.ToString("yyyy-MM-dd")); //閫氱煡鏃ユ湡
+ model.Add("FStockOrgId", new JObject() { ["Fnumber"] = (this.Model.GetValue("FHPURCHASEORGID") as DynamicObject)?["Number"].ToString() ?? "" }); // 鏀舵枡缁勭粐
+ model.Add("FPurOrgId", new JObject() { ["Fnumber"] = (this.Model.GetValue("FHPURCHASEORGID") as DynamicObject)?["Number"].ToString() ?? "" }); //閲囪喘缁勭粐
+ model.Add("FSupplierId", new JObject() { ["Fnumber"] = (this.Model.GetValue("FSupplierID") as DynamicObject)?["Number"].ToString() ?? "" }); //渚涘簲鍟�
+ model.Add("FOwnerTypeIdHead", "BD_OwnerOrg");// 璐т富绫诲瀷
+ model.Add("FOwnerIdHead", new JObject() { ["Fnumber"] = (this.Model.GetValue("FHPURCHASEORGID") as DynamicObject)?["Number"].ToString() ?? "" });//璐т富
+ //model.Add("FPurchaserId", new JObject() { ["Fnumber"] = "" }); //閲囪喘鍛�
+ //model.Add("FReceiverId", new JObject() { ["Fnumber"] = "" }); //鏀舵枡鍛�
+ //model.Add("FSupplyAddress", ""); //渚涜揣鏂瑰湴鍧�
+ //model.Add("FConfirmerId", new JObject() { ["FUserID"] = "" }); // 纭浜�
+ //model.Add("FConfirmDate", "1900-01-01"); //纭鏃ユ湡
+ //model.Add("FSupplyId", new JObject() { ["Fnumber"] = "" }); // 渚涜揣鏂�
+ //model.Add("FChargeId", new JObject() { ["Fnumber"] = "" }); // 鏀舵鏂�
+ //model.Add("FSettleId", new JObject() { ["Fnumber"] = "" }); // 缁撶畻鏂�
+ //model.Add("FIsInsideBill", "false"); // 澶栭儴鍗曟嵁
+ //model.Add("FScanBox", "false"); // 搴忓垪鍙蜂笂浼�
+ //瀛愯〃 鏁版嵁妯″瀷
+ JArray Fentity = new JArray();
+ foreach (var item in entityRows)
+ {
+ if (Convert.ToBoolean(item["FCloseStatus"]))
+ continue;
+ JObject FentityModel = new JObject();
+ FentityModel.Add("FMaterialId", new JObject() { ["Fnumber"] = (item["FHMaterID"] as DynamicObject)?["Number"].ToString() ?? "" }); // 鐗╂枡缂栫爜
+ FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = (item["FUnitID"] as DynamicObject)?["Number"].ToString() ?? "" }); // 鍗曚綅
+ FentityModel.Add("FPreDeliveryDate", this.Model.GetValue("FHDate").ToString()); //棰勮鍒拌揣鏃ユ湡
+ FentityModel.Add("FPriceUnitId", new JObject() { ["Fnumber"] = (item["FUnitID"] as DynamicObject)?["Number"].ToString() ?? "" }); // 璁′环鍗曚綅
+ FentityModel.Add("FStockUnitID", new JObject() { ["Fnumber"] = (item["FUnitID"] as DynamicObject)?["Number"].ToString() ?? "" }); // 搴撳瓨鍗曚綅
+ FentityModel.Add("FActReceiveQty", Convert.ToDecimal(item["FHQty"]) - Convert.ToDecimal(item["FReciveCount"])); // 渚涘簲鍟嗛�佽揣鏁伴噺锛堟彁鏂欒鍒掓暟閲� - 宸茬敓鎴愰�佽揣鍗曟暟閲忥級
+ FentityModel.Add("FOwnerTypeId", "BD_OwnerOrg");//璐т富绫诲瀷
+ FentityModel.Add("FOwnerID", new JObject() { ["Fnumber"] = (this.Model.GetValue("FHPURCHASEORGID") as DynamicObject)?["Number"].ToString() ?? "" });//璐т富
+ FentityModel.Add("FSrcId", item["FHPOOrderInterID"].ToString());//婧愬崟鍐呯爜
+ FentityModel.Add("FSRCFORMID", "PUR_PurchaseOrder");//婧愬崟绫诲瀷
+ FentityModel.Add("FSrcBillNo", item["FHPOOrderBillNo"].ToString());//婧愬崟鍗曞彿
+ FentityModel.Add("FSRCENTRYID", item["FHPOOrderEntryID"].ToString());//婧愬崟鍒嗗綍鍐呯爜
+ FentityModel.Add("FORDERBILLNO", item["FHPOOrderBillNo"].ToString());//婧愬崟鍗曞彿
+ FentityModel.Add("FPOORDERENTRYID", item["FHPOOrderEntryID"].ToString());//婧愬崟鍒嗗綍鍐呯爜
+ FentityModel.Add("FTLId", this.View.Model.DataObject["Id"].ToString());//鎻愭枡婧愬崟鍐呯爜
+ FentityModel.Add("FTLentryId", item["Id"].ToString());//鎻愭枡婧愬崟鍒嗗綍鍐呯爜
+ FentityModel.Add("FTLOrderNo", this.Model.GetValue("FBillNo").ToString());//鎻愭枡婧愬崟鍒嗗綍鍐呯爜
+
+ JArray Fentity2 = new JArray();
+ JObject FentityModel2 = new JObject();
+ FentityModel2.Add("FDetailEntity_Link_FRULEID", "a8c6b6e5-a8c0-4fc1-8592-6b76c2136cf9");
+ FentityModel2.Add("FDetailEntity_Link_FSTableName", "t_PUR_POOrderEntry");
+ FentityModel2.Add("FDetailEntity_Link_FSBillId", item["FHPOOrderInterID"].ToString());
+ FentityModel2.Add("FDetailEntity_Link_FSId", item["FHPOOrderEntryID"].ToString());
+ Fentity2.Add(FentityModel2);
+ FentityModel.Add("FDetailEntity_Link", Fentity2);
+ //鍗曟嵁杞崲鍏宠仈鍏崇郴
+ //FentityModel.Add("FAuxPropId", new JObject() { }); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FConfirmDeliQty", 0); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FConfirmDeliDate", "1900-01-01"); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FConfirmInfo", ""); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FDescription", ""); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FBomId", new JObject() { ["Fnumber"] = "" }); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FLot", new JObject() { ["Fnumber"] = "" }); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FSupplierLot", ""); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FPrice", 0); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FTaxPrice", 0); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FDiscountRate", 0); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FEntryTaxRate", 0); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FStockBaseQty", 0); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FStockQty", 0); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FTaxCombination", new JObject() { ["Fnumber"] = "" }); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FPriceBaseQty", 0); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FStockInMaxQty", 0); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FBaseStockInMaxQty", 0); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FCheckInComing", "false"); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FStockID", new JObject() { ["Fnumber"] = "" }); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FStockLocId", new JObject() { }); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FStockStatusId", new JObject() { ["Fnumber"] = "" }); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FProduceDate", "1900-01-01"); // 鐗╂枡缂栫爜
+ //FentityModel.Add("FExpiryDate", "1900-01-01"); // 鐗╂枡缂栫爜
+
+ Fentity.Add(FentityModel);
+ }
+ model.Add("FDetailEntity", Fentity); //鏄庣粏淇℃伅
+
+ JObject _FentityModel = new JObject();
+ _FentityModel.Add("FSettleOrgId", new JObject() { ["Fnumber"] = (this.Model.GetValue("FHPURCHASEORGID") as DynamicObject)?["Number"].ToString() ?? "" }); // 缁撶畻缁勭粐
+ _FentityModel.Add("FSettleCurrId", new JObject() { ["Fnumber"] = (this.Model.GetValue("FSettleCurrId") as DynamicObject)?["Number"].ToString() ?? "" }); // 缁撶畻甯佸埆
+ _FentityModel.Add("FPricePoint", 0); // 瀹氫环鏃剁偣
+ //FPricePoint
+ model.Add("FinanceEntity ", _FentityModel);//璐㈠姟淇℃伅
+ //model.Add("FinanceEntity ", new JObject() {
+ //"FSettleOrgId", new JObject() { ["Fnumber"] = (this.Model.GetValue("FHPURCHASEORGID") as DynamicObject)?["Number"].ToString() ?? "" },
+ //"FSettleCurrId", new JObject() { ["Fnumber"] = (this.Model.GetValue("FSettleCurrId") as DynamicObject)?["Number"].ToString() ?? "" }
+ //});
+ JObject jsonRoot = new JObject()
+ {
+ ["Creator"] = "",
+ ["NeedUpDateFields"] = new JArray(),
+ ["NeedReturnFields"] = new JArray(),
+ ["IsDeleteEntry"] = "false",
+ ["SubSystemId"] = "",
+ ["IsVerifyBaseDataField"] = "false",
+ //["IsAutoSubmitAndAudit"] = true,//鑷姩璋冪敤鎻愪氦鍜屽鏍稿姛鑳�
+ ["Model"] = model
+ };
+ var result = cloudClient.Save("PUR_ReceiveBill", jsonRoot.ToString());
+ JObject saveObj = JObject.Parse(result);
+ string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
+ if (saveIsSuc == "TRUE")
+ {
+ // 鎵撳紑鍗曟嵁缁存姢鐣岄潰锛氫互鎵撳紑閿�鍞鍗�100001涓轰緥
+ // using Kingdee.BOS.Core.Bill;
+ string pageId = Guid.NewGuid().ToString();
+ BillShowParameter showParameter = new BillShowParameter();
+ showParameter.FormId = "SCP_ReceiveBill";
+ showParameter.OpenStyle.ShowType = ShowType.MainNewTabPage;
+ showParameter.PageId = pageId;
+ showParameter.Status = OperationStatus.EDIT;
+ // 浼犲叆闇�瑕佷慨鏀圭殑閿�鍞鍗曞唴鐮侊紝婕旂ず浠g爜鐩存帴鍥哄畾鍐欐涓�100001
+ showParameter.PKey = saveObj["Result"]["Id"].ToString();
+ this.View.ShowForm(showParameter);
+ }
+ else
+ {
+ LogHelper.Error(jsonRoot.ToString());
+ this.View.ShowErrMessage(jsonRoot.ToString());
+ }
+ }
+ else if (a == "TBDEMANDPLAN")
+ {
+ DemandPlan();
+ }
+ else if (a == "TBPURCHASE")
+ {
+ //閫夊崟閫夋嫨閲囪喘璁㈠崟
+ PurChasePlan();
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+ //閫夋嫨鎻愭枡璁″垝
+ public void DemandPlan()
+ {
+ try
+ {
+ //閫夊崟閫夋嫨鎻愭枡璁″垝鍗�
+ int[] selectedIndexsR = this.View.GetControl<EntryGrid>("FEntity").GetSelectedRows();//鍗曟嵁浣撴暟鎹� 聽聽
+ if (selectedIndexsR.Count() == 0)
+ {
+ this.View.ShowErrMessage("璇烽�夋嫨闇�瑕佸彉鏇寸殑鍗曟嵁琛�");
+ return;
+ }
+ DynamicObjectCollection selectedRowsDy = this.Model.DataObject["FEntity"] as DynamicObjectCollection;//閫変腑琛屾暟鎹� 聽
+ DynamicObject selectedRow;
+ List<int> FentryIdList = new List<int>();
+ foreach (var item in selectedIndexsR)
+ {
+ selectedRow = selectedRowsDy[item];
+ FentryIdList.Add(Convert.ToInt32(selectedRow["Id"]));
+ }
+ string FentryId = string.Join(",", FentryIdList);
+ string isCancleSql = string.Format(@"/*dialect*/
+select FSEQ from Cg_PODemandPlanBillSub
+FCLOSESTATUS = 1
+where fentryid in ({0})", FentryId);
+ DataTable isCancleTable = DBServiceHelper.ExecuteDataSet(Context, isCancleSql).Tables[0];
+ if (isCancleTable.Rows.Count > 0)
+ {
+ string errdt = "閿欒锛�";
+ foreach (DataRow dr in isCancleTable.Rows)
+ {
+ errdt += "搴忓彿 锛� " + dr["FSEQ"].ToString() + "宸插叧闂�";
+ }
+ this.View.ShowErrMessage(errdt);
+ return;
+ }
+
+ //璺宠浆閫夊崟鐣岄潰
+ List<string> FSelectIdList = new List<string>(); //璁板綍閫夊崟鐨勬槑缁咺D
+ string pageId = Guid.NewGuid().ToString();
+ ListShowParameter showParameter = new ListShowParameter();
+ showParameter.FormId = "paez_PODemandPlan";
+ showParameter.PageId = pageId;
+ showParameter.UseOrgId = this.Context.CurrentOrganizationInfo.ID;
+ showParameter.IsLookUp = true;
+ this.View.ShowForm(showParameter, delegate (FormResult result)
+ {
+ object returnData = result.ReturnData;
+ if (returnData is ListSelectedRowCollection)
+ {
+ ListSelectedRowCollection listSelectedRowCollection = returnData as ListSelectedRowCollection;
+ if (listSelectedRowCollection != null)
+ {
+ foreach (var listSelectedRow in listSelectedRowCollection)
+ {
+ FSelectIdList.Add(listSelectedRow.DataRow["t1_FENTRYID"].ToString());
+ }
+ }
+ }
+ //if (FentryIdList.Count != FSelectIdList.Count)
+ //{
+ // this.View.ShowErrMessage("閫夋嫨琛屾暟閲忎笉涓�鑷�");
+ // return;
+ //}
+ string FSelectId = string.Join(",", FSelectIdList);
+ //闇�瑕侀�夋嫨鍙樻洿鐨勬暟鎹� 浠ュ強 閫夊崟閫変腑鐨勬暟鎹� 鍒ゆ柇鏁版嵁鍚堢悊鎬�
+ //閫夊崟鐣岄潰B閫変腑琛屾暟鎹墿鏂� 闇�瑕佷竴鑷� 涓擝鍗犵敤閲囪喘鍗曟暟閲忛渶瑕佹弧瓒矨鐨勯渶姹傞噺
+ string sql = string.Format(@"/*dialect*/
+SELECT count(*) errcount FROM
+(
+select FHMATERID,SUM(FHQTY)FHQTY from Cg_PODemandPlanBillSub
+where FEntryID IN({0})
+GROUP BY FHMATERID
+)A
+JOIN
+(select FHMATERID,FHQTY from Cg_PODemandPlanBillSub
+where FEntryID IN({1})
+)
+B
+ON A.FHMATERID=B.FHMATERID
+WHERE B.FHQTY < A.FHQTY", FentryId, FSelectId);
+ int ErrCount = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
+ if (ErrCount > 0)
+ {
+ this.View.ShowErrMessage("閫夊崟鏁版嵁鍗犵敤鐨勯噰璐鍗曟暟閲忎笉婊¤冻闇�瑕佸彉鏇存暟閲�");
+ return;
+ }
+ //楠岃瘉閫氳繃
+ //鍏抽棴A鍗曟嵁閫夋嫨琛� 鍙栨秷閲囪喘璁㈠崟鐨勫崰鐢ㄦ彁鏂欐暟閲�
+ //鐢熸垚涓�寮犳柊鐨勬彁鏂欒鍒掑崟 鎻愭枡鏃ユ湡锛屾彁鏂欐暟閲忥紝鐢熶骇宸ュ崟淇℃伅 鍙朅鍗曟嵁 锛岄噰璐俊鎭� 鍙朆鍗曟嵁
+ string tlSql = string.Format(@"/*dialect*/
+SELECT A.FID,C.FHDate,D.FSupplierID,E.FNUMBER AS FSupplierName,C.FSettleCurrId,A.FHMATERID,F.FNUMBER AS FMATERIALNAME,A.FHQty,A.FHSourceInterID,A.FHSourceEntryID,A.FHSourceBillNo,A.FDayPlanDate,A.FDayPlanDate,A.FHRelationQty,B.FHPOOrderInterID,B.FHPOOrderEntryID,B.FHPOOrderBillNo,B.FHPOOrderFseq,B.FErpClsID FROM
+(
+select * from Cg_PODemandPlanBillSub
+where FEntryID IN({0})
+)
+A
+JOIN
+(select * from Cg_PODemandPlanBillSub
+where FEntryID IN({1})
+)
+B
+ON A.FHMATERID = B.FHMATERID
+JOIN Cg_PODemandPlanBillMain C ON A.FID = C.FID
+JOIN Cg_PODemandPlanBillMain D ON B.FID = D.FID
+JOIN T_BD_SUPPLIER E ON D.FSupplierID = E.FSUPPLIERID
+JOIN T_BD_MATERIAL F ON A.FHMATERID = F.FMATERIALID
+
+", FentryId, FSelectId);
+ DynamicObjectCollection tlCollection = DBServiceHelper.ExecuteDynamicObject(Context, tlSql);
+ JObject model = new JObject();
+ JArray Fentity = new JArray();
+ foreach (var item in tlCollection)
+ {
+ if (!model.ToString().Contains("FHDate"))
+ {
+ model.Add("FHDate", item["FHDate"].ToString());
+ model.Add("FSettleCurrId", new JObject() { ["Fnumber"] = "PRE001" });
+ model.Add("FSupplierID", new JObject() { ["Fnumber"] = item["FSupplierName"].ToString() });
+ }
JObject FentityModel = new JObject();
-
- FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = "Pcs" }); //鍙戞枡鏂瑰紡
-
+ FentityModel.Add("FHPURCHASEORGID", new JObject() { ["Fnumber"] = "100" });//閲囪喘缁勭粐
+ FentityModel.Add("FHMaterID", new JObject() { ["Fnumber"] = item["FMATERIALNAME"].ToString() });//鐗╂枡
+ FentityModel.Add("FHQty", item["FHQty"].ToString());//鏁伴噺
+ FentityModel.Add("FHSourceInterID", item["FHSourceInterID"].ToString());//鏃ヨ鍒掑伐鍗旻ID
+ FentityModel.Add("FHSourceEntryID", item["FHSourceEntryID"].ToString());//鏃ヨ鍒掑伐鍗旻ENTRYID
+ FentityModel.Add("FHSourceBillNo", item["FHSourceBillNo"].ToString());//鏃ヨ鍒掑伐鍗曞崟鍙�
+ FentityModel.Add("FDayPlanDate", item["FDayPlanDate"].ToString());//鏃ヨ鍒掓棩鏈�
+ FentityModel.Add("FHRelationQty", item["FHRelationQty"].ToString());//鍏宠仈鏁伴噺
+ FentityModel.Add("FPURCHASEORGID", new JObject() { ["Fnumber"] = "100" });//閲囪喘缁勭粐
+ FentityModel.Add("FHPOOrderInterID", item["FHPOOrderInterID"].ToString());// 閲囪喘璁㈠崟鍐呯爜锛欶HPOOrderInterID
+ FentityModel.Add("FHPOOrderEntryID", item["FHPOOrderEntryID"].ToString()); //閲囪喘璁㈠崟瀛愬唴鐮侊細FHPOOrderEntryID
+ FentityModel.Add("FHPOOrderBillNo", item["FHPOOrderBillNo"].ToString()); //閲囪喘璁㈠崟鍙凤細FHPOOrderBillNo
+ FentityModel.Add("FERPCLSID", item["FErpClsID"].ToString()); //
+ FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = "Pcs" }); //鍗曚綅
Fentity.Add(FentityModel);
}
model.Add("FEntity", Fentity);
@@ -90,10 +336,441 @@
["IsVerifyBaseDataField"] = "false",
["Model"] = model
};
- }
+ CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/");
+ var _result = cloudClient.Save("paez_PODemandPlan", jsonRoot.ToString());
+ JObject saveObj = JObject.Parse(_result);
+ string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
+ if (saveIsSuc != "TRUE")
+ {
+ LogHelper.Error("鎻愭枡璁″垝鍗曢�夊崟鏂板寮傚父锛�" + saveObj.ToString());
+ this.View.ShowMessage(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString());
+ }
+ else
+ {
+ //鍏抽棴A鍗曟嵁浣撹 鏇存柊瀵瑰簲閲囪喘璁㈠崟 鎻愭枡璁″垝鏁伴噺
+ List<string> sqlList = new List<string>();
+ string updateSql = string.Format(@"/*dialect*/
+update Cg_PODemandPlanBillSub set
+FCLOSESTATUS = 1
+where FEntryID in ({0})", FentryId);
+ sqlList.Add(updateSql);
+ updateSql = string.Format(@"/*dialect*/
+UPDATE A SET
+A.FPODemandPlanCount -= B.FHQTY
+FROM t_PUR_POOrderEntry A
+JOIN Cg_PODemandPlanBillSub B ON A.FENTRYID = B.FHPOOrderEntryID
+where B.FEntryID in ({0})", FentryId);
+ sqlList.Add(updateSql);
+ //宸茬粡鍗犵敤浜咮鐨勯噰璐鍗曟暟閲� 鏁呬笉鐢ㄦ洿鏂癇瀵瑰簲閲囪喘璁㈠崟鐨勬彁鏂欒鍒掓暟閲�
+ //鏌ヨ鍑築璁㈠崟琚崰鐢ㄧ殑鏁伴噺 鏇存柊B璁㈠崟鐨勮浆绉绘暟閲�
+ updateSql = string.Format(@"/*dialect*/
+update Cg_PODemandPlanBillSub set
+FRemoveCount += T2.FHQTY
+from Cg_PODemandPlanBillSub T1
+join
+(
+SELECT A.FHQTY,FEntryID FROM
+(
+select FHMATERID,SUM(FHQTY)FHQTY from Cg_PODemandPlanBillSub
+where FEntryID IN({0})
+GROUP BY FHMATERID
+)A
+JOIN
+(select FHMATERID,FHQTY,FEntryID from Cg_PODemandPlanBillSub
+where FEntryID IN({1})
+)
+B
+ON A.FHMATERID=B.FHMATERID
+)T2 ON T1.FEntryID =T2.FEntryID", FentryId, FSelectId);
+ sqlList.Add(updateSql);
+ //鎵цsql
+ int resCount = DBServiceHelper.ExecuteBatch(Context, sqlList);
+ //閲嶆柊涓築璁㈠崟鍒嗛厤閲囪喘璁㈠崟
+ //浼樺厛鍒嗛厤鐩稿悓渚涘簲鍟�
+
+ string cgddSql = @"/*dialect*/
+ select t1.FID,t1.FBillNo,t2.FENTRYID,t1.FSUPPLIERID,t3.fnumber,t2.FMATERIALID,(t2.FQTY-t2.FPODemandPlanCount)FQTY,FPurchaseOrgId FStockOrgId,t5.FNUMBER FORGNumber,FSTOCKINQTY,FReceiveQty,FCloseStatus,FMRPCLOSESTATUS from t_PUR_POOrder t1
+join t_PUR_POOrderEntry t2 on t1.FID = t2.FID
+join t_BD_Supplier t3 on t1.FSUPPLIERID = t3.FSUPPLIERID
+join T_PUR_POORDERENTRY_R t4 on t2.FENTRYID = t4.FENTRYID
+join T_ORG_Organizations t5 on t1.FPurchaseOrgId = t5.FORGID
+where t2.FQTY-t2.FPODemandPlanCount>0
+ and FCloseStatus in('A') and FMRPCLOSESTATUS in('A')
+ and t1.FBillTypeID in('83d822ca3e374b4ab01e5dd46a0062bd','6d01d059713d42a28bb976c90a121142')
+";
+ List<PurchaseInventory> PurchaseInventory = DBServiceHelper.ExecuteDataSet(Context, cgddSql).ToModelList<PurchaseInventory>();
+ string cxfpSql = string.Format(@"/*dialect*/
+select A.FID,B.FHDate,FRemoveCount,A.FHMATERID,F.FNUMBER AS FMATERIALNAME,B.FSUPPLIERID,E.FNUMBER AS FSupplierName,FHSourceInterID,FHSourceEntryID,FHSourceBillNo,FDayPlanDate,FERPCLSID from Cg_PODemandPlanBillSub A
+JOIN Cg_PODemandPlanBillMain B ON A.FID =B.FID
+JOIN T_BD_MATERIAL F ON A.FHMATERID = F.FMATERIALID
+JOIN T_BD_SUPPLIER E ON B.FSUPPLIERID=E.FSUPPLIERID
+WHERE A.FEntryID IN ({0})", FSelectId);
+ DataTable DT = DBServiceHelper.ExecuteDataSet(Context, cxfpSql).Tables[0];
+ //鎵归噺鎵ц
+ JArray FinalyResult = new JArray();
+ foreach (DataRow dr in DT.Rows)
+ {
+ decimal FRemoveCount = Convert.ToDecimal(dr["FRemoveCount"]);//闇�瑕佹媶鍒嗙殑鏁伴噺
+ var _PurchaseInventory = PurchaseInventory.Where(x => x.FSUPPLIERID == Convert.ToInt32(dr["FSUPPLIERID"]) && x.FMATERIALID == dr["FHMATERID"].ToString() && x.FQTY > 0).OrderBy(x => x.FENTRYID).ToList();//浼樺厛璇ヤ緵搴斿晢
+ model = new JObject();
+ Fentity = new JArray();
+ if (_PurchaseInventory.Count > 0)
+ {
+ if (!model.ToString().Contains("FHDate"))
+ {
+ model.Add("FID", dr["FID"].ToString());
+ model.Add("FHDate", dr["FHDate"].ToString());
+ model.Add("FSettleCurrId", new JObject() { ["Fnumber"] = "PRE001" });
+ model.Add("FSupplierID", new JObject() { ["Fnumber"] = dr["FSupplierName"].ToString() });
+ }
+ foreach (var cgitem in _PurchaseInventory)
+ {
+ if (FRemoveCount == 0)
+ break;
+ if (cgitem.FQTY >= FRemoveCount)
+ {
+ //鏄庣粏琛屼俊鎭疛son
+ JObject FentityModel = new JObject();
+ FentityModel.Add("FHPURCHASEORGID", new JObject() { ["Fnumber"] = "100" });//閲囪喘缁勭粐
+ FentityModel.Add("FHMaterID", new JObject() { ["Fnumber"] = dr["FMATERIALNAME"].ToString() });//鐗╂枡
+ FentityModel.Add("FHQty", FRemoveCount);//鏁伴噺
+ FentityModel.Add("FHSourceInterID", dr["FHSourceInterID"].ToString());//鏃ヨ鍒掑伐鍗旻ID
+ FentityModel.Add("FHSourceEntryID", dr["FHSourceEntryID"].ToString());//鏃ヨ鍒掑伐鍗旻ENTRYID
+ FentityModel.Add("FHSourceBillNo", dr["FHSourceBillNo"].ToString());//鏃ヨ鍒掑伐鍗曞崟鍙�
+ FentityModel.Add("FDayPlanDate", dr["FDayPlanDate"].ToString());//鏃ヨ鍒掓棩鏈�
+ FentityModel.Add("FPURCHASEORGID", new JObject() { ["Fnumber"] = "100" });//閲囪喘缁勭粐
+ FentityModel.Add("FHPOOrderInterID", cgitem.FID.ToString());// 閲囪喘璁㈠崟鍐呯爜锛欶HPOOrderInterID
+ FentityModel.Add("FHPOOrderEntryID", cgitem.FENTRYID.ToString()); //閲囪喘璁㈠崟瀛愬唴鐮侊細FHPOOrderEntryID
+ FentityModel.Add("FHPOOrderBillNo", cgitem.FBillNo.ToString()); //閲囪喘璁㈠崟鍙凤細FHPOOrderBillNo
+ FentityModel.Add("FERPCLSID", dr["FErpClsID"].ToString()); //
+ FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = "Pcs" }); //鍗曚綅
+ Fentity.Add(FentityModel);
+ FRemoveCount = 0;
+ PurchaseInventory.Where(c => c.FENTRYID == cgitem.FENTRYID).FirstOrDefault().FQTY -= FRemoveCount;
+ }
+ else
+ {
+ //鏄庣粏琛屼俊鎭疛son
+ JObject FentityModel = new JObject();
+ FentityModel.Add("FHPURCHASEORGID", new JObject() { ["Fnumber"] = "100" });//閲囪喘缁勭粐
+ FentityModel.Add("FHMaterID", new JObject() { ["Fnumber"] = dr["FMATERIALNAME"].ToString() });//鐗╂枡
+ FentityModel.Add("FHQty", cgitem.FQTY);//鏁伴噺
+ FentityModel.Add("FHSourceInterID", dr["FHSourceInterID"].ToString());//鏃ヨ鍒掑伐鍗旻ID
+ FentityModel.Add("FHSourceEntryID", dr["FHSourceEntryID"].ToString());//鏃ヨ鍒掑伐鍗旻ENTRYID
+ FentityModel.Add("FHSourceBillNo", dr["FHSourceBillNo"].ToString());//鏃ヨ鍒掑伐鍗曞崟鍙�
+ FentityModel.Add("FDayPlanDate", dr["FDayPlanDate"].ToString());//鏃ヨ鍒掓棩鏈�
+ FentityModel.Add("FPURCHASEORGID", new JObject() { ["Fnumber"] = "100" });//閲囪喘缁勭粐
+ FentityModel.Add("FHPOOrderInterID", cgitem.FID.ToString());// 閲囪喘璁㈠崟鍐呯爜锛欶HPOOrderInterID
+ FentityModel.Add("FHPOOrderEntryID", cgitem.FENTRYID.ToString()); //閲囪喘璁㈠崟瀛愬唴鐮侊細FHPOOrderEntryID
+ FentityModel.Add("FHPOOrderBillNo", cgitem.FBillNo.ToString()); //閲囪喘璁㈠崟鍙凤細FHPOOrderBillNo
+ FentityModel.Add("FERPCLSID", dr["FErpClsID"].ToString()); //
+ FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = "Pcs" }); //鍗曚綅
+ Fentity.Add(FentityModel);
+ FRemoveCount -= cgitem.FQTY;
+ PurchaseInventory.Where(c => c.FENTRYID == cgitem.FENTRYID).FirstOrDefault().FQTY = 0;
+ }
+ }
+ model.Add("FEntity", Fentity);
+ }
+ FinalyResult.Add(model);
+ if (FRemoveCount == 0)
+ continue;
+ _PurchaseInventory = PurchaseInventory.Where(x => x.FMATERIALID == dr["FHMATERID"].ToString() && x.FQTY > 0).OrderBy(x => x.FENTRYID).ToList();//浼樺厛璇ヤ緵搴斿晢
+ if (_PurchaseInventory.Count > 0)
+ {
+ if (!model.ToString().Contains("FHDate"))
+ {
+ model.Add("FHDate", dr["FHDate"].ToString());
+ model.Add("FSettleCurrId", new JObject() { ["Fnumber"] = "PRE001" });
+ model.Add("FSupplierID", new JObject() { ["Fnumber"] = dr["FSupplierName"].ToString() });
+ }
+ foreach (var cgitem in _PurchaseInventory)
+ {
+ if (FRemoveCount == 0)
+ break;
+ if (cgitem.FQTY >= FRemoveCount)
+ {
+ //鏄庣粏琛屼俊鎭疛son
+ JObject FentityModel = new JObject();
+ FentityModel.Add("FHPURCHASEORGID", new JObject() { ["Fnumber"] = "100" });//閲囪喘缁勭粐
+ FentityModel.Add("FHMaterID", new JObject() { ["Fnumber"] = dr["FMATERIALNAME"].ToString() });//鐗╂枡
+ FentityModel.Add("FHQty", FRemoveCount);//鏁伴噺
+ FentityModel.Add("FHSourceInterID", dr["FHSourceInterID"].ToString());//鏃ヨ鍒掑伐鍗旻ID
+ FentityModel.Add("FHSourceEntryID", dr["FHSourceEntryID"].ToString());//鏃ヨ鍒掑伐鍗旻ENTRYID
+ FentityModel.Add("FHSourceBillNo", dr["FHSourceBillNo"].ToString());//鏃ヨ鍒掑伐鍗曞崟鍙�
+ FentityModel.Add("FDayPlanDate", dr["FDayPlanDate"].ToString());//鏃ヨ鍒掓棩鏈�
+ FentityModel.Add("FPURCHASEORGID", new JObject() { ["Fnumber"] = "100" });//閲囪喘缁勭粐
+ FentityModel.Add("FHPOOrderInterID", cgitem.FID.ToString());// 閲囪喘璁㈠崟鍐呯爜锛欶HPOOrderInterID
+ FentityModel.Add("FHPOOrderEntryID", cgitem.FENTRYID.ToString()); //閲囪喘璁㈠崟瀛愬唴鐮侊細FHPOOrderEntryID
+ FentityModel.Add("FHPOOrderBillNo", cgitem.FBillNo.ToString()); //閲囪喘璁㈠崟鍙凤細FHPOOrderBillNo
+ FentityModel.Add("FERPCLSID", dr["FErpClsID"].ToString()); //
+ FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = "Pcs" }); //鍗曚綅
+ Fentity.Add(FentityModel);
+ FRemoveCount = 0;
+ PurchaseInventory.Where(c => c.FENTRYID == cgitem.FENTRYID).FirstOrDefault().FQTY -= FRemoveCount;
+ }
+ else
+ {
+
+ //鏄庣粏琛屼俊鎭疛son
+ JObject FentityModel = new JObject();
+ FentityModel.Add("FHPURCHASEORGID", new JObject() { ["Fnumber"] = "100" });//閲囪喘缁勭粐
+ FentityModel.Add("FHMaterID", new JObject() { ["Fnumber"] = dr["FMATERIALNAME"].ToString() });//鐗╂枡
+ FentityModel.Add("FHQty", cgitem.FQTY);//鏁伴噺
+ FentityModel.Add("FHSourceInterID", dr["FHSourceInterID"].ToString());//鏃ヨ鍒掑伐鍗旻ID
+ FentityModel.Add("FHSourceEntryID", dr["FHSourceEntryID"].ToString());//鏃ヨ鍒掑伐鍗旻ENTRYID
+ FentityModel.Add("FHSourceBillNo", dr["FHSourceBillNo"].ToString());//鏃ヨ鍒掑伐鍗曞崟鍙�
+ FentityModel.Add("FDayPlanDate", dr["FDayPlanDate"].ToString());//鏃ヨ鍒掓棩鏈�
+ FentityModel.Add("FPURCHASEORGID", new JObject() { ["Fnumber"] = "100" });//閲囪喘缁勭粐
+ FentityModel.Add("FHPOOrderInterID", cgitem.FID.ToString());// 閲囪喘璁㈠崟鍐呯爜锛欶HPOOrderInterID
+ FentityModel.Add("FHPOOrderEntryID", cgitem.FENTRYID.ToString()); //閲囪喘璁㈠崟瀛愬唴鐮侊細FHPOOrderEntryID
+ FentityModel.Add("FHPOOrderBillNo", cgitem.FBillNo.ToString()); //閲囪喘璁㈠崟鍙凤細FHPOOrderBillNo
+ FentityModel.Add("FERPCLSID", dr["FErpClsID"].ToString()); //
+ FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = "Pcs" }); //鍗曚綅
+ Fentity.Add(FentityModel);
+ FRemoveCount -= cgitem.FQTY;
+ PurchaseInventory.Where(c => c.FENTRYID == cgitem.FENTRYID).FirstOrDefault().FQTY = 0;
+ }
+ }
+ model.Add("FEntity", Fentity);
+ }
+ FinalyResult.Add(model);
+ }
+ jsonRoot = new JObject()
+ {
+ ["Creator"] = "",
+ ["NeedUpDateFields"] = new JArray(),
+ ["NeedReturnFields"] = new JArray(),
+ ["IsDeleteEntry"] = "false",
+ ["SubSystemId"] = "",
+ ["IsVerifyBaseDataField"] = "false",
+ ["Model"] = FinalyResult
+ };
+
+ _result = cloudClient.BatchSave("paez_PODemandPlan", jsonRoot.ToString());
+ var _saveObj = JObject.Parse(_result);
+ saveIsSuc = _saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
+ if (saveIsSuc != "TRUE")
+ {
+ LogHelper.Error(saveObj.ToString());
+ }
+
+
+ string _pageId = Guid.NewGuid().ToString();
+ BillShowParameter _showParameter = new BillShowParameter();
+ _showParameter.FormId = "paez_PODemandPlan";
+ _showParameter.OpenStyle.ShowType = ShowType.MainNewTabPage;
+ _showParameter.PageId = _pageId;
+ _showParameter.Status = OperationStatus.EDIT;
+ // 浼犲叆闇�瑕佷慨鏀圭殑閿�鍞鍗曞唴鐮侊紝婕旂ず浠g爜鐩存帴鍥哄畾鍐欐涓�100001
+ _showParameter.PKey = saveObj["Result"]["Id"].ToString();
+ this.View.ShowForm(_showParameter);
+ }
+ });
+ }
+ catch (Exception ex)
+ {
+ throw ex;
}
}
-
+ //閫夋嫨閲囪喘璁㈠崟
+ public void PurChasePlan()
+ {
+ try
+ {
+ //閫夊崟閫夋嫨鎻愭枡璁″垝鍗�
+ int[] selectedIndexsR = this.View.GetControl<EntryGrid>("FEntity").GetSelectedRows();//鍗曟嵁浣撴暟鎹� 聽聽
+ if (selectedIndexsR.Count() == 0)
+ {
+ this.View.ShowErrMessage("璇烽�夋嫨闇�瑕佸彉鏇寸殑鍗曟嵁琛�");
+ return;
+ }
+ DynamicObjectCollection selectedRowsDy = this.Model.DataObject["FEntity"] as DynamicObjectCollection;//閫変腑琛屾暟鎹� 聽
+ DynamicObject selectedRow;
+ List<int> FentryIdList = new List<int>();
+ foreach (var item in selectedIndexsR)
+ {
+ selectedRow = selectedRowsDy[item];
+ FentryIdList.Add(Convert.ToInt32(selectedRow["Id"]));
+ }
+ string FentryId = string.Join(",", FentryIdList);
+ string isCancleSql = string.Format(@"/*dialect*/
+select FSEQ from Cg_PODemandPlanBillSub
+FCLOSESTATUS = 1
+where fentryid in ({0})", FentryId);
+ DataTable isCancleTable = DBServiceHelper.ExecuteDataSet(Context, isCancleSql).Tables[0];
+ if (isCancleTable.Rows.Count > 0)
+ {
+ string errdt = "閿欒锛�";
+ foreach (DataRow dr in isCancleTable.Rows)
+ {
+ errdt += "搴忓彿 锛� " + dr["FSEQ"].ToString() + "宸插叧闂�";
+ }
+ this.View.ShowErrMessage(errdt);
+ return;
+ }
+ //璺宠浆閫夊崟鐣岄潰
+ List<string> FSelectIdList = new List<string>(); //璁板綍閫夊崟鐨勬槑缁咺D
+ string pageId = Guid.NewGuid().ToString();
+ ListShowParameter showParameter = new ListShowParameter();
+ showParameter.FormId = "PUR_PurchaseOrder";
+ showParameter.PageId = pageId;
+ showParameter.UseOrgId = this.Context.CurrentOrganizationInfo.ID;
+ showParameter.IsLookUp = true;
+ this.View.ShowForm(showParameter, delegate (FormResult result)
+ {
+ object returnData = result.ReturnData;
+ if (returnData is ListSelectedRowCollection)
+ {
+ ListSelectedRowCollection listSelectedRowCollection = returnData as ListSelectedRowCollection;
+ if (listSelectedRowCollection != null)
+ {
+ foreach (var listSelectedRow in listSelectedRowCollection)
+ {
+ FSelectIdList.Add(listSelectedRow.DataRow["t1_FENTRYID"].ToString());
+ }
+ }
+ }
+ string FSelectId = string.Join(",", FSelectIdList);
+ //楠岃瘉鎵�閫夐噰璐鍗曠墿鏂欐暟閲� 鏄惁灏忎簬 鎻愭枡璁″垝鐗╂枡鏁伴噺 涓嶆弧瓒崇粰鍑烘彁绀� return
+ string sql = string.Format(@"/*dialect*/
+SELECT count(*) errcount FROM
+(
+select FHMATERID,SUM(FHQTY)FHQTY from Cg_PODemandPlanBillSub
+where FEntryID IN({0})
+GROUP BY FHMATERID
+)A
+JOIN
+(select FMaterialId,FQty from t_PUR_POOrderEntry
+where FEntryID IN({1})
+)
+B
+ON A.FHMATERID=B.FMaterialId
+WHERE B.FQTY < A.FHQTY", FentryId, FSelectId);
+ int ErrCount = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0);
+ if (ErrCount > 0)
+ {
+ this.View.ShowErrMessage("閫夊崟鏁版嵁鍗犵敤鐨勯噰璐鍗曟暟閲忎笉婊¤冻闇�瑕佸彉鏇存暟閲�");
+ return;
+ }
+ //楠岃瘉閫氳繃
+ //鍏抽棴A鍗曟嵁閫夋嫨琛� 鍙栨秷閲囪喘璁㈠崟鐨勫崰鐢ㄦ彁鏂欐暟閲�
+ //鐢熸垚涓�寮犳柊鐨勬彁鏂欒鍒掑崟 鎻愭枡鏃ユ湡锛屾彁鏂欐暟閲忥紝鐢熶骇宸ュ崟淇℃伅 鍙朅鍗曟嵁 锛岄噰璐俊鎭� 鍙朆鍗曟嵁
+ string tlSql = string.Format(@"/*dialect*/
+SELECT A.FID,C.FHDate,D.FSupplierID,E.FNUMBER AS FSupplierName,C.FSettleCurrId,A.FHMATERID,F.FNUMBER AS FMATERIALNAME,A.FHQty,A.FHSourceInterID,A.FHSourceEntryID,A.FHSourceBillNo,A.FDayPlanDate,A.FDayPlanDate,A.FHRelationQty,B.FID AS FHPOOrderInterID,B.FENTRYID AS FHPOOrderEntryID,C.FBILLNO AS FHPOOrderBillNo,B.FSEQ AS FHPOOrderFseq,A.FErpClsID FROM
+(
+select * from Cg_PODemandPlanBillSub
+where FEntryID IN({0})
+)
+A
+JOIN
+(select * from t_PUR_POOrderEntry
+where FEntryID IN({1})
+)
+B
+ON A.FHMATERID = B.FMaterialId
+JOIN t_PUR_POOrder PO ON B.FID = PO.FID
+JOIN Cg_PODemandPlanBillMain C ON A.FID = C.FID
+JOIN Cg_PODemandPlanBillMain D ON B.FID = D.FID
+JOIN T_BD_SUPPLIER E ON D.FSupplierID = E.FSUPPLIERID
+JOIN T_BD_MATERIAL F ON A.FHMATERID = F.FMATERIALID
+", FentryId, FSelectId);
+ DynamicObjectCollection tlCollection = DBServiceHelper.ExecuteDynamicObject(Context, tlSql);
+ JObject model = new JObject();
+ JArray Fentity = new JArray();
+ foreach (var item in tlCollection)
+ {
+ if (!model.ToString().Contains("FHDate"))
+ {
+ model.Add("FHDate", item["FHDate"].ToString());
+ model.Add("FSettleCurrId", new JObject() { ["Fnumber"] = "PRE001" });
+ model.Add("FSupplierID", new JObject() { ["Fnumber"] = item["FSupplierName"].ToString() });
+ }
+ JObject FentityModel = new JObject();
+ FentityModel.Add("FHPURCHASEORGID", new JObject() { ["Fnumber"] = "100" });//閲囪喘缁勭粐
+ FentityModel.Add("FHMaterID", new JObject() { ["Fnumber"] = item["FMATERIALNAME"].ToString() });//鐗╂枡
+ FentityModel.Add("FHQty", item["FHQty"].ToString());//鏁伴噺
+ FentityModel.Add("FHSourceInterID", item["FHSourceInterID"].ToString());//鏃ヨ鍒掑伐鍗旻ID
+ FentityModel.Add("FHSourceEntryID", item["FHSourceEntryID"].ToString());//鏃ヨ鍒掑伐鍗旻ENTRYID
+ FentityModel.Add("FHSourceBillNo", item["FHSourceBillNo"].ToString());//鏃ヨ鍒掑伐鍗曞崟鍙�
+ FentityModel.Add("FDayPlanDate", item["FDayPlanDate"].ToString());//鏃ヨ鍒掓棩鏈�
+ FentityModel.Add("FHRelationQty", item["FHRelationQty"].ToString());//鍏宠仈鏁伴噺
+ FentityModel.Add("FPURCHASEORGID", new JObject() { ["Fnumber"] = "100" });//閲囪喘缁勭粐
+ FentityModel.Add("FHPOOrderInterID", item["FHPOOrderInterID"].ToString());// 閲囪喘璁㈠崟鍐呯爜锛欶HPOOrderInterID
+ FentityModel.Add("FHPOOrderEntryID", item["FHPOOrderEntryID"].ToString()); //閲囪喘璁㈠崟瀛愬唴鐮侊細FHPOOrderEntryID
+ FentityModel.Add("FHPOOrderBillNo", item["FHPOOrderBillNo"].ToString()); //閲囪喘璁㈠崟鍙凤細FHPOOrderBillNo
+ FentityModel.Add("FERPCLSID", item["FErpClsID"].ToString()); //
+ FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = "Pcs" }); //鍗曚綅
+ Fentity.Add(FentityModel);
+ }
+ model.Add("FEntity", Fentity);
+ JObject jsonRoot = new JObject()
+ {
+ ["Creator"] = "",
+ ["NeedUpDateFields"] = new JArray(),
+ ["NeedReturnFields"] = new JArray(),
+ ["IsDeleteEntry"] = "false",
+ ["SubSystemId"] = "",
+ ["IsVerifyBaseDataField"] = "false",
+ ["Model"] = model
+ };
+ CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/");
+ var _result = cloudClient.Save("paez_PODemandPlan", jsonRoot.ToString());
+ JObject saveObj = JObject.Parse(_result);
+ string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper();
+ if (saveIsSuc != "TRUE")
+ {
+ LogHelper.Error("鎻愭枡璁″垝鍗曢�夊崟鏂板寮傚父锛�" + saveObj.ToString());
+ this.View.ShowMessage(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString());
+ }
+ else
+ {
+ //鍏抽棴A鍗曟嵁浣撹 鏇存柊瀵瑰簲閲囪喘璁㈠崟 鎻愭枡璁″垝鏁伴噺
+ List<string> sqlList = new List<string>();
+ string updateSql = string.Format(@"/*dialect*/
+update Cg_PODemandPlanBillSub set
+FCLOSESTATUS = 1
+where FEntryID in ({0})", FentryId);
+ sqlList.Add(updateSql);
+ updateSql = string.Format(@"/*dialect*/
+UPDATE A SET
+A.FPODemandPlanCount -= B.FHQTY
+FROM t_PUR_POOrderEntry A
+JOIN Cg_PODemandPlanBillSub B ON A.FENTRYID = B.FHPOOrderEntryID
+where B.FEntryID in ({0})", FentryId);
+ sqlList.Add(updateSql);
+ //鏇存柊閲囪喘璁㈠崟 鎻愭枡璁″垝鏁伴噺
+ updateSql = string.Format(@"/*dialect*/
+update t_PUR_POOrderEntry set
+FPODEMANDPLANCOUNT += T2.FHQTY
+from Cg_PODemandPlanBillSub T1
+join
+(
+SELECT A.FHQTY,FEntryID FROM
+(
+select FHMATERID,SUM(FHQTY)FHQTY from Cg_PODemandPlanBillSub
+where FEntryID IN({0})
+GROUP BY FHMATERID
+)A
+JOIN
+(select FMaterialId,FQTY,FEntryID from t_PUR_POOrderEntry
+where FEntryID IN({1})
+)
+B
+ON A.FHMATERID=B.FMaterialId
+)T2 ON T1.FEntryID =T2.FEntryID", FentryId, FSelectId);
+ sqlList.Add(updateSql);
+ //鎵цsql
+ int resCount = DBServiceHelper.ExecuteBatch(Context, sqlList);
+ }
+ });
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
}
}
+
--
Gitblit v1.9.1