diff --git a/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs b/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs index 3d90217..bd411dd 100644 --- a/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs +++ b/Pilot_KD_Parino/QPHY_AutoWrire/Bill5.cs @@ -400,6 +400,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire //自动匹配 if (e.BarItemKey.ToString().Equals("MBBA_tbButton_2")) { + //this.View.ShowMessage("1"); if (status11 == 1) { this.View.ShowWarnningMessage("请先过滤一次数据后再点击[自动核销]"); @@ -484,9 +485,9 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire join u in ReceiveBILLLIST on new { q.FClient, q.FDAMOUNT,q.FBiBie } equals new { u.FClient, u.FDAMOUNT,u.FBiBie } select new { q.FClient, q.FBIllNO, q.FCONTRACTNUMBER, u.FDAMOUNT, UFbillNo = u.FBIllNO, u.FBiBie }).ToList(); //var dasdsas = oneToOneTemp.Where(h => h.FBIllNO == "PL-XSDD20250400471").FirstOrDefault(); - var saleList1 = oneToOneTemp.Select(t => t.FBIllNO).Distinct().ToList(); + var saleList1 = oneToOneTemp.Select(t => t.FBIllNO).Distinct().OrderByDescending(t=>t).ToList(); var ReceiveList1 = oneToOneTemp.Select(t => t.UFbillNo).Distinct().ToList(); - if (saleList1.Count() > ReceiveList1.Count()) + if (SaleBILLLISNew.Count() > ReceiveBILLLIST.Count()) { List deleteFBIllNOList = new List(); ReceiveList1.ForEach(t => @@ -501,11 +502,20 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire DateTime fdate = DateTime.Parse(ReceiveBILLLIST2.FirstOrDefault(h => h.FBIllNO == t).FDate); DateTime begin = fdate.AddDays(-5).Date; DateTime end = fdate.AddDays(6).Date; - var list = SaleBILLLIS.Where(h => DateTime.Parse(h.FDate) >= begin && DateTime.Parse(h.FDate) < end && FBIllNOList.Contains(h.FBIllNO)).OrderByDescending(h => h.FDate).ToList(); + var list = SaleBILLLIS.Where(h => DateTime.Parse(h.FDate) >= begin && DateTime.Parse(h.FDate) < end && FBIllNOList.Contains(h.FBIllNO)) + .OrderByDescending(h => h.FDate).ToList(); if (list.Count > 0) { fbillno = list.FirstOrDefault().FBIllNO; } + else + { + list = SaleBILLLIS.Where(h => FBIllNOList.Contains(h.FBIllNO)).OrderByDescending(h => h.FDate).ToList(); + if (list.Count > 0) + { + fbillno = list.FirstOrDefault().FBIllNO; + } + } } else { @@ -549,7 +559,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire List deleteFBIllNOList = new List(); saleList1.ForEach(t => { - var tempList = oneToOneTemp.Where(h => h.UFbillNo == t && !deleteFBIllNOList.Contains(h.UFbillNo)).ToList(); + var tempList = oneToOneTemp.Where(h => h.FBIllNO == t && !deleteFBIllNOList.Contains(h.UFbillNo)).ToList(); if (tempList.Count > 0) { var FBIllNOList = tempList.Select(h => h.UFbillNo).ToList(); @@ -565,10 +575,18 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire { fbillno = list.FirstOrDefault().FBIllNO; } + else + { + list = ReceiveBILLLIST.Where(h => FBIllNOList.Contains(h.FBIllNO)).OrderByDescending(h => h.FDate).ToList(); + if (list.Count > 0) + { + fbillno = list.FirstOrDefault().FBIllNO; + } + } } else { - fbillno = tempList.FirstOrDefault().FBIllNO; + fbillno = tempList.FirstOrDefault().UFbillNo; } diff --git a/Pilot_KD_Parino/SQL/SqlManage_yuyubo.cs b/Pilot_KD_Parino/SQL/SqlManage_yuyubo.cs index 99962e0..812a694 100644 --- a/Pilot_KD_Parino/SQL/SqlManage_yuyubo.cs +++ b/Pilot_KD_Parino/SQL/SqlManage_yuyubo.cs @@ -39,7 +39,7 @@ namespace Pilot_KD_Parino.SQL WHERE A.FDOCUMENTSTATUS = 'C' AND A.FISINIT != '1' AND A.FRECAMOUNTFOR > A.F_AMOUNT {where} - order by FCONTACTUNIT,A.FID desc ", FORGID); + order by FCONTACTUNIT,FDATE desc ", FORGID); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } diff --git a/Pilot_KD_Parino/Sal_Order/PushSaleOutBillPlugIn.cs b/Pilot_KD_Parino/Sal_Order/PushSaleOutBillPlugIn.cs index ef97a37..7f77f6b 100644 --- a/Pilot_KD_Parino/Sal_Order/PushSaleOutBillPlugIn.cs +++ b/Pilot_KD_Parino/Sal_Order/PushSaleOutBillPlugIn.cs @@ -93,6 +93,11 @@ namespace Pilot_KD_Parino.Sal_Order break; //this.View.ShowMessage("没有上查关联的跨组织的采购订单"); + } + else if ( dt.Count > 1 ) + { + throw new KDBusinessException("", "一张销售单下推多张采购订单,不能用自动跨组织推单功能:" + tablename); + } else { @@ -110,6 +115,11 @@ namespace Pilot_KD_Parino.Sal_Order { throw new KDBusinessException("", "没有上查关联的跨组织的采购订单:" + tablename); } + else if (dt.Count > 1) + { + throw new KDBusinessException("", "一张销售单下推多张采购订单,不能用自动跨组织推单功能:" + tablename); + + } else { xiaoFid = tempFid; @@ -150,7 +160,7 @@ namespace Pilot_KD_Parino.Sal_Order result = Invoke("PUR_PurchaseOrder", "PUR_ReceiveBill", tempFid.ToString(), "7cd93c259999489c97798063f2f7bd70", ref stockId,"收料通知单"); } } - return; + if (result != null) { sheet = result.SuccessDataEnity.FirstOrDefault(); @@ -572,43 +582,68 @@ namespace Pilot_KD_Parino.Sal_Order temStockId = stockList.Select(t => int.Parse(t["FSTOCKID"].ToString())).FirstOrDefault(); stockId = temStockId; } - var stocks333 = stocks3[pur]; - var stocks = stocks333 as DynamicObjectCollection; - var stock0 = stocks.ToList(); + //var stocks333 = stocks3[pur]; + //var stocks = stocks333 as DynamicObjectCollection; + //var stock0 = stocks.ToList(); //拆分下推情况下匹配物料自动删减数量或删减行 List deleteItem = new List(); - stock0.ForEach(t => - { - t["StockID_Id"] = temStockId; + //stock0.ForEach(t => + //{ + // t["StockID_Id"] = temStockId; - var Material = t["MaterialID"] as DynamicObject; + // var Material = t["MaterialID"] as DynamicObject; + // if (Material != null) + // { + // string code2 = (Material["Number"].ToString()); + // decimal qty = decimal.Parse(t["ActReceiveQty"].ToString()); + // if (MaterialCode.ContainsKey(code2)) + // { + // if (MaterialCode[code2] != qty) + // { + // t["ActReceiveQty"] = MaterialCode[code2]; + // t["StockQty"] = MaterialCode[code2]; + // } + // } + // else + // { + // deleteItem.Add(t); + // } + // } + //}); + var stock0 = stocks3[pur] as DynamicObjectCollection; + + foreach(var item in stock0) + { + item["StockID_Id"] = temStockId; + var Material = item["MaterialID"] as DynamicObject; if (Material != null) { string code2 = (Material["Number"].ToString()); - decimal qty = decimal.Parse(t["ActReceiveQty"].ToString()); + decimal qty = decimal.Parse(item["ActReceiveQty"].ToString()); if (MaterialCode.ContainsKey(code2)) { if (MaterialCode[code2] != qty) { - t["ActReceiveQty"] = MaterialCode[code2]; - t["StockQty"] = MaterialCode[code2]; + item["ActReceiveQty"] = MaterialCode[code2]; + item["StockQty"] = MaterialCode[code2]; } } else { - deleteItem.Add(t); + deleteItem.Add(item); } } - }); + } + if (deleteItem.Count > 0) { - //Logger.Error("BeforeData",JsonHelper.ToJson(stock0), new Exception()); + //Logger.Error("BeforeData", JsonHelper.ToJson(destObjs), new Exception()); deleteItem.ForEach(t => { stock0.Remove(t); }); - Logger.Error("deleteItem", JsonHelper.ToJson(deleteItem), new Exception()); + //Logger.Error("AfterData", JsonHelper.ToJson(destObjs), new Exception()); } ServiceHelper.GetService().Save(this.Context, destFormMetadata.BusinessInfo, destObjs, OperateOption.Create()); //调用FActReceiveQty字段值更新服务 diff --git a/Pilot_KD_Parino/Sal_Order/SalDeliveryNoticeAudit.cs b/Pilot_KD_Parino/Sal_Order/SalDeliveryNoticeAudit.cs index da950e4..ccaf4e0 100644 --- a/Pilot_KD_Parino/Sal_Order/SalDeliveryNoticeAudit.cs +++ b/Pilot_KD_Parino/Sal_Order/SalDeliveryNoticeAudit.cs @@ -80,7 +80,7 @@ namespace Pilot_KD_Parino.Sal_Order getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM T_PUR_ReqEntry_LK WHERE FSBILLID = {tempFid} and FSTABLENAME='T_SAL_ORDERENTRY' "; dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); - if (dt == null || dt.Count == 0) + if (dt == null || dt.Count == 0 || dt.Count>1) { //throw new KDBusinessException("", "没有找到跨组织的采购申请单:" + getSourceSql); return; @@ -98,7 +98,7 @@ namespace Pilot_KD_Parino.Sal_Order getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM t_PUR_POOrderEntry_LK WHERE FSBILLID = {tempFid} and FSTABLENAME='T_PUR_ReqEntry' "; dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); - if (dt == null || dt.Count == 0) + if (dt == null || dt.Count == 0 || dt.Count > 1) { //throw new KDBusinessException("", "没有找到跨组织的采购订单:" + getSourceSql); return; @@ -115,7 +115,7 @@ namespace Pilot_KD_Parino.Sal_Order getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM T_SAL_ORDERENTRY_LK WHERE FSBILLID = {tempFid} and FSTABLENAME='t_PUR_POOrderEntry' "; dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); - if (dt == null || dt.Count == 0) + if (dt == null || dt.Count == 0 || dt.Count > 1) { //throw new KDBusinessException("", "没有找到跨组织的销售订单:" + getSourceSql); return; diff --git a/更新核销金额.sql b/更新核销金额.sql index 64702a2..0063ede 100644 --- a/更新核销金额.sql +++ b/更新核销金额.sql @@ -14,8 +14,9 @@ BEGIN UPDATE T_AutoWrireRecordEntry SET FALLAMOUNT2=FALLAMOUNT22 WHERE fid=@fid -UPDATE T_AutoWrireRecord SET F_YeWuDate=FCREATEDATE -WHERE FID=@fid AND F_YeWuDate IS NULL +UPDATE T_AutoWrireRecord SET F_YeWuDate=b.FDATE3 +FROM T_AutoWrireRecordEntry2 b +WHERE T_AutoWrireRecord.FID=@fid AND F_YeWuDate IS NULL AND b.FID=T_AutoWrireRecord.FID UPDATE T_AutoWrireRecordEntry2 SET FALLAMOUNT3=FALLAMOUNT33,FCONTRACTNUMBER2=(SELECT STRING_AGG(FCONTRACTNUMBER,',') FROM T_AutoWrireRecordEntry WHERE fid= T_AutoWrireRecordEntry2.FID) WHERE fid=@fid