This commit is contained in:
liangjunyu
2025-07-29 16:21:58 +08:00
5 changed files with 80 additions and 26 deletions

View File

@@ -400,6 +400,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
//自动匹配 //自动匹配
if (e.BarItemKey.ToString().Equals("MBBA_tbButton_2")) if (e.BarItemKey.ToString().Equals("MBBA_tbButton_2"))
{ {
//this.View.ShowMessage("1");
if (status11 == 1) if (status11 == 1)
{ {
this.View.ShowWarnningMessage("请先过滤一次数据后再点击[自动核销]"); 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 } 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(); 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 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(); var ReceiveList1 = oneToOneTemp.Select(t => t.UFbillNo).Distinct().ToList();
if (saleList1.Count() > ReceiveList1.Count()) if (SaleBILLLISNew.Count() > ReceiveBILLLIST.Count())
{ {
List<string> deleteFBIllNOList = new List<string>(); List<string> deleteFBIllNOList = new List<string>();
ReceiveList1.ForEach(t => 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 fdate = DateTime.Parse(ReceiveBILLLIST2.FirstOrDefault(h => h.FBIllNO == t).FDate);
DateTime begin = fdate.AddDays(-5).Date; DateTime begin = fdate.AddDays(-5).Date;
DateTime end = fdate.AddDays(6).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) if (list.Count > 0)
{ {
fbillno = list.FirstOrDefault().FBIllNO; 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 else
{ {
@@ -549,7 +559,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
List<string> deleteFBIllNOList = new List<string>(); List<string> deleteFBIllNOList = new List<string>();
saleList1.ForEach(t => 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) if (tempList.Count > 0)
{ {
var FBIllNOList = tempList.Select(h => h.UFbillNo).ToList(); var FBIllNOList = tempList.Select(h => h.UFbillNo).ToList();
@@ -565,10 +575,18 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
{ {
fbillno = list.FirstOrDefault().FBIllNO; 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 else
{ {
fbillno = tempList.FirstOrDefault().FBIllNO; fbillno = tempList.FirstOrDefault().UFbillNo;
} }

View File

@@ -39,7 +39,7 @@ namespace Pilot_KD_Parino.SQL
WHERE A.FDOCUMENTSTATUS = 'C' WHERE A.FDOCUMENTSTATUS = 'C'
AND A.FISINIT != '1' AND A.FISINIT != '1'
AND A.FRECAMOUNTFOR > A.F_AMOUNT {where} 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); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
} }

View File

@@ -93,6 +93,11 @@ namespace Pilot_KD_Parino.Sal_Order
break; break;
//this.View.ShowMessage("没有上查关联的跨组织的采购订单"); //this.View.ShowMessage("没有上查关联的跨组织的采购订单");
}
else if ( dt.Count > 1 )
{
throw new KDBusinessException("", "一张销售单下推多张采购订单,不能用自动跨组织推单功能:" + tablename);
} }
else else
{ {
@@ -110,6 +115,11 @@ namespace Pilot_KD_Parino.Sal_Order
{ {
throw new KDBusinessException("", "没有上查关联的跨组织的采购订单:" + tablename); throw new KDBusinessException("", "没有上查关联的跨组织的采购订单:" + tablename);
} }
else if (dt.Count > 1)
{
throw new KDBusinessException("", "一张销售单下推多张采购订单,不能用自动跨组织推单功能:" + tablename);
}
else else
{ {
xiaoFid = tempFid; xiaoFid = tempFid;
@@ -150,7 +160,7 @@ namespace Pilot_KD_Parino.Sal_Order
result = Invoke("PUR_PurchaseOrder", "PUR_ReceiveBill", tempFid.ToString(), "7cd93c259999489c97798063f2f7bd70", ref stockId,"收料通知单"); result = Invoke("PUR_PurchaseOrder", "PUR_ReceiveBill", tempFid.ToString(), "7cd93c259999489c97798063f2f7bd70", ref stockId,"收料通知单");
} }
} }
return;
if (result != null) if (result != null)
{ {
sheet = result.SuccessDataEnity.FirstOrDefault(); sheet = result.SuccessDataEnity.FirstOrDefault();
@@ -572,43 +582,68 @@ namespace Pilot_KD_Parino.Sal_Order
temStockId = stockList.Select(t => int.Parse(t["FSTOCKID"].ToString())).FirstOrDefault(); temStockId = stockList.Select(t => int.Parse(t["FSTOCKID"].ToString())).FirstOrDefault();
stockId = temStockId; stockId = temStockId;
} }
var stocks333 = stocks3[pur]; //var stocks333 = stocks3[pur];
var stocks = stocks333 as DynamicObjectCollection; //var stocks = stocks333 as DynamicObjectCollection;
var stock0 = stocks.ToList(); //var stock0 = stocks.ToList();
//拆分下推情况下匹配物料自动删减数量或删减行 //拆分下推情况下匹配物料自动删减数量或删减行
List<DynamicObject> deleteItem = new List<DynamicObject>(); List<DynamicObject> deleteItem = new List<DynamicObject>();
stock0.ForEach(t => //stock0.ForEach(t =>
{ //{
t["StockID_Id"] = temStockId; // 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) if (Material != null)
{ {
string code2 = (Material["Number"].ToString()); 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.ContainsKey(code2))
{ {
if (MaterialCode[code2] != qty) if (MaterialCode[code2] != qty)
{ {
t["ActReceiveQty"] = MaterialCode[code2]; item["ActReceiveQty"] = MaterialCode[code2];
t["StockQty"] = MaterialCode[code2]; item["StockQty"] = MaterialCode[code2];
} }
} }
else else
{ {
deleteItem.Add(t); deleteItem.Add(item);
} }
} }
}); }
if (deleteItem.Count > 0) if (deleteItem.Count > 0)
{ {
//Logger.Error("BeforeData",JsonHelper.ToJson(stock0), new Exception()); //Logger.Error("BeforeData", JsonHelper.ToJson(destObjs), new Exception());
deleteItem.ForEach(t => deleteItem.ForEach(t =>
{ {
stock0.Remove(t); stock0.Remove(t);
}); });
Logger.Error("deleteItem", JsonHelper.ToJson(deleteItem), new Exception()); //Logger.Error("AfterData", JsonHelper.ToJson(destObjs), new Exception());
} }
ServiceHelper.GetService<ISaveService>().Save(this.Context, destFormMetadata.BusinessInfo, destObjs, OperateOption.Create()); ServiceHelper.GetService<ISaveService>().Save(this.Context, destFormMetadata.BusinessInfo, destObjs, OperateOption.Create());
//调用FActReceiveQty字段值更新服务 //调用FActReceiveQty字段值更新服务

View File

@@ -80,7 +80,7 @@ namespace Pilot_KD_Parino.Sal_Order
getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM T_PUR_ReqEntry_LK getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM T_PUR_ReqEntry_LK
WHERE FSBILLID = {tempFid} and FSTABLENAME='T_SAL_ORDERENTRY' "; WHERE FSBILLID = {tempFid} and FSTABLENAME='T_SAL_ORDERENTRY' ";
dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); 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); //throw new KDBusinessException("", "没有找到跨组织的采购申请单:" + getSourceSql);
return; return;
@@ -98,7 +98,7 @@ namespace Pilot_KD_Parino.Sal_Order
getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM t_PUR_POOrderEntry_LK getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM t_PUR_POOrderEntry_LK
WHERE FSBILLID = {tempFid} and FSTABLENAME='T_PUR_ReqEntry' "; WHERE FSBILLID = {tempFid} and FSTABLENAME='T_PUR_ReqEntry' ";
dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); 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); //throw new KDBusinessException("", "没有找到跨组织的采购订单:" + getSourceSql);
return; return;
@@ -115,7 +115,7 @@ namespace Pilot_KD_Parino.Sal_Order
getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM T_SAL_ORDERENTRY_LK getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM T_SAL_ORDERENTRY_LK
WHERE FSBILLID = {tempFid} and FSTABLENAME='t_PUR_POOrderEntry' "; WHERE FSBILLID = {tempFid} and FSTABLENAME='t_PUR_POOrderEntry' ";
dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql); 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); //throw new KDBusinessException("", "没有找到跨组织的销售订单:" + getSourceSql);
return; return;

View File

@@ -14,8 +14,9 @@ BEGIN
UPDATE T_AutoWrireRecordEntry SET FALLAMOUNT2=FALLAMOUNT22 UPDATE T_AutoWrireRecordEntry SET FALLAMOUNT2=FALLAMOUNT22
WHERE fid=@fid WHERE fid=@fid
UPDATE T_AutoWrireRecord SET F_YeWuDate=FCREATEDATE UPDATE T_AutoWrireRecord SET F_YeWuDate=b.FDATE3
WHERE FID=@fid AND F_YeWuDate IS NULL 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) UPDATE T_AutoWrireRecordEntry2 SET FALLAMOUNT3=FALLAMOUNT33,FCONTRACTNUMBER2=(SELECT STRING_AGG(FCONTRACTNUMBER,',') FROM T_AutoWrireRecordEntry WHERE fid= T_AutoWrireRecordEntry2.FID)
WHERE fid=@fid WHERE fid=@fid