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"))
{
//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<string> deleteFBIllNOList = new List<string>();
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<string> deleteFBIllNOList = new List<string>();
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;
}

View File

@@ -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);
}

View File

@@ -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<DynamicObject> deleteItem = new List<DynamicObject>();
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<ISaveService>().Save(this.Context, destFormMetadata.BusinessInfo, destObjs, OperateOption.Create());
//调用FActReceiveQty字段值更新服务

View File

@@ -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;