232
This commit is contained in:
parent
f8fa1681df
commit
a4976430a8
@ -1492,5 +1492,30 @@ namespace Pilot_KD_Parino.Common
|
|||||||
throw new ArgumentException("数字超出范围");
|
throw new ArgumentException("数字超出范围");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string CreateAutoWrireRecord3(Context ctx, string FOrgId, List<CombinaAddClass1> DATA1, CombinaAddSK DATA2)
|
||||||
|
{
|
||||||
|
string FBILLNO;
|
||||||
|
string FID;
|
||||||
|
// 构建一个IBillView实例,通过此实例,可以方便的填写
|
||||||
|
IBillView billView = CommonHelper.CreateBillView(ctx, "VRYF_FHTZDHXJL");
|
||||||
|
// billView.CreateNewModelData();
|
||||||
|
((IBillViewService)billView).LoadData();
|
||||||
|
// 触发插件的OnLoad事件:
|
||||||
|
// 组织控制基类插件,在OnLoad事件中,对主业务组织改变是否提示选项进行初始化。
|
||||||
|
// 如果不触发OnLoad事件,会导致主业务组织赋值不成功
|
||||||
|
DynamicFormViewPlugInProxy eventProxy = billView.GetService<DynamicFormViewPlugInProxy>();
|
||||||
|
eventProxy.FireOnLoad();
|
||||||
|
CreateAutoWrireRecordData2(billView, ctx, FOrgId, DATA1, DATA2);
|
||||||
|
OperateOption saveOption = OperateOption.Create();
|
||||||
|
Form form = billView.BillBusinessInfo.GetForm();
|
||||||
|
if (form.FormIdDynamicProperty != null)
|
||||||
|
{
|
||||||
|
form.FormIdDynamicProperty.SetValue(billView.Model.DataObject, form.Id);
|
||||||
|
}
|
||||||
|
//保存工程项目
|
||||||
|
CommonHelper.SaveBill(ctx, billView, saveOption, true, out FID, out FBILLNO);
|
||||||
|
return FBILLNO;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -340,6 +340,7 @@
|
|||||||
<Compile Include="Sal_Order\YJAuditPlugIn.cs" />
|
<Compile Include="Sal_Order\YJAuditPlugIn.cs" />
|
||||||
<Compile Include="SQL\SqlManage_yuyubo.cs" />
|
<Compile Include="SQL\SqlManage_yuyubo.cs" />
|
||||||
<Compile Include="SQL\SqlManage.cs" />
|
<Compile Include="SQL\SqlManage.cs" />
|
||||||
|
<Compile Include="VRYF_FHTZDHXJL\UpdateAmount.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
|
@ -51,7 +51,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
|
|||||||
private string parentRowId = "";//父项ID
|
private string parentRowId = "";//父项ID
|
||||||
string dateFormat = "yyyy-MM-dd HH:mm:ss"; // 指定的日期格式
|
string dateFormat = "yyyy-MM-dd HH:mm:ss"; // 指定的日期格式
|
||||||
int status11=1;
|
int status11=1;
|
||||||
|
int SourceType = 0;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 开始
|
/// 开始
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -459,7 +459,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
|
|||||||
|
|
||||||
#region 新版 2025-04-07
|
#region 新版 2025-04-07
|
||||||
#region 匹配销售订单
|
#region 匹配销售订单
|
||||||
var SaleBILLLIS2Sal = SaleBILLLIS2.Where(t => t.FType == "销售订单" && t.FISHX != "已核销配对").ToList();
|
var SaleBILLLIS2Sal = SaleBILLLIS2.Where(t => t.FISHX != "已核销配对").ToList();
|
||||||
//将销售订单根据客户分组
|
//将销售订单根据客户分组
|
||||||
//var FClientList2 = SaleBILLLIS2Sal.GroupBy(t => t.FClient).ToList();
|
//var FClientList2 = SaleBILLLIS2Sal.GroupBy(t => t.FClient).ToList();
|
||||||
//var FClientReceiveBillList= ReceiveBILLLIST
|
//var FClientReceiveBillList= ReceiveBILLLIST
|
||||||
@ -633,8 +633,11 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (SourceType == 0) //只有销售单有这两种匹配逻辑
|
||||||
|
{
|
||||||
//3、收款单的待核销金额与订单的待最近30天开票金额(只有医院客户)
|
//3、收款单的待核销金额与订单的待最近30天开票金额(只有医院客户)
|
||||||
var SaleBILLLIS2Sa333 = SaleBILLLISNew.Where(t => t.FISHX != "已核销配对" && t.FDAMOUNT > 0 ).OrderBy(t => t.FClient).ThenByDescending(t => t.FDate).ToList();
|
var SaleBILLLIS2Sa333 = SaleBILLLISNew.Where(t => t.FISHX != "已核销配对" && t.FDAMOUNT > 0).OrderBy(t => t.FClient).ThenByDescending(t => t.FDate).ToList();
|
||||||
ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX != "已核销配对" && a.FDAMOUNT > 0).OrderBy(t => t.FClient).ThenByDescending(t => t.FDate).ToList();
|
ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX != "已核销配对" && a.FDAMOUNT > 0).OrderBy(t => t.FClient).ThenByDescending(t => t.FDate).ToList();
|
||||||
|
|
||||||
var oneToOneTemp3 = (from q in SaleBILLLIS2Sa333
|
var oneToOneTemp3 = (from q in SaleBILLLIS2Sa333
|
||||||
@ -643,6 +646,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
|
|||||||
//var dasdsas = oneToOneTemp.Where(h => h.FBIllNO == "PL-XSDD20250400471").FirstOrDefault();
|
//var dasdsas = oneToOneTemp.Where(h => h.FBIllNO == "PL-XSDD20250400471").FirstOrDefault();
|
||||||
var saleList33 = oneToOneTemp3.Select(t => t.FBIllNO).Distinct().ToList();
|
var saleList33 = oneToOneTemp3.Select(t => t.FBIllNO).Distinct().ToList();
|
||||||
var ReceiveList33 = oneToOneTemp3.Select(t => t.UFbillNo).Distinct().ToList();
|
var ReceiveList33 = oneToOneTemp3.Select(t => t.UFbillNo).Distinct().ToList();
|
||||||
|
|
||||||
if (SaleBILLLIS2Sa333.Count() > ReceiveList33.Count())
|
if (SaleBILLLIS2Sa333.Count() > ReceiveList33.Count())
|
||||||
{
|
{
|
||||||
List<string> deleteFBIllNOList = new List<string>();
|
List<string> deleteFBIllNOList = new List<string>();
|
||||||
@ -716,11 +720,11 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//先挑1张收款单对应多张张销售订单
|
//先挑1张收款单对应多张张销售订单
|
||||||
var SaleBILLLIS2Sa2 = SaleBILLLISNew.Where(t => t.FISHX != "已核销配对" && t.FDAMOUNT > 0).OrderBy(t => t.FClient).ThenByDescending(t => t.FDate).ToList();
|
var SaleBILLLIS2Sa2 = SaleBILLLISNew.Where(t => t.FISHX != "已核销配对" && t.FDAMOUNT > 0).OrderBy(t => t.FClient).ThenByDescending(t => t.FDate).ToList();
|
||||||
ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX != "已核销配对" && a.FDAMOUNT > 0).OrderBy(t => t.FClient).ThenByDescending(t => t.FDate).ToList();
|
ReceiveBILLLIST = ReceiveBILLLIST2.Where(a => a.F_RowNew == 1 && a.FISHX != "已核销配对" && a.FDAMOUNT > 0).OrderBy(t => t.FClient).ThenByDescending(t => t.FDate).ToList();
|
||||||
//打包式匹配法,按时间倒序逐一核销掉.
|
//打包式匹配法,按时间倒序逐一核销掉.
|
||||||
|
|
||||||
ReceiveBILLLIST.ForEach(t =>
|
ReceiveBILLLIST.ForEach(t =>
|
||||||
{
|
{
|
||||||
var tempList = SaleBILLLIS2Sa2.Where(h => h.FClient == t.FClient && h.FISHX != "已核销配对" && t.FDAMOUNT > 0).OrderByDescending(h => h.FDate).ToList();
|
var tempList = SaleBILLLIS2Sa2.Where(h => h.FClient == t.FClient && h.FISHX != "已核销配对" && t.FDAMOUNT > 0).OrderByDescending(h => h.FDate).ToList();
|
||||||
@ -789,7 +793,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
|
|||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
}
|
||||||
#region
|
#region
|
||||||
////1个销售订单对应多张收款单
|
////1个销售订单对应多张收款单
|
||||||
//SaleBILLLIS2Sa2 = SaleBILLLISNew.Where(t => t.FISHX != "已核销配对").OrderBy(t => t.FClient).ThenBy(t => t.FCONTRACTNUMBER).ThenBy(t => t.FDate).ToList();
|
//SaleBILLLIS2Sa2 = SaleBILLLISNew.Where(t => t.FISHX != "已核销配对").OrderBy(t => t.FClient).ThenBy(t => t.FCONTRACTNUMBER).ThenBy(t => t.FDate).ToList();
|
||||||
@ -903,34 +907,37 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
|
|||||||
var Rowindex = this.View.Model.GetEntryRowCount("FEntity2");
|
var Rowindex = this.View.Model.GetEntryRowCount("FEntity2");
|
||||||
for (int i = 0; i < tempList2.Count; i++)
|
for (int i = 0; i < tempList2.Count; i++)
|
||||||
{
|
{
|
||||||
|
double benci = 0;
|
||||||
this.View.Model.SetValue("FPARENTROWID", FROWID, item.FRow);
|
if (shouKuanDetail.ContainsKey(item.FBIllNO + "," + tempList2[i].FBIllNO))
|
||||||
this.View.Model.CreateNewEntryRow("FEntity2");
|
|
||||||
this.View.Model.SetValue("FROWID", Guid.NewGuid().ToString(), Rowindex + i);
|
|
||||||
this.View.Model.SetValue("FPARENTROWID", FROWID, Rowindex + i);
|
|
||||||
this.View.Model.SetValue("FBILLNO2", tempList2[i].FBIllNO, Rowindex + i);
|
|
||||||
if (DateTime.TryParseExact(item?.FDate, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate))
|
|
||||||
{
|
{
|
||||||
this.View.Model.SetValue("FDate2", item?.FDate, Rowindex + i);
|
benci = shouKuanDetail[item.FBIllNO + "," + tempList2[i].FBIllNO];
|
||||||
|
}
|
||||||
|
this.View.Model.SetValue("FPARENTROWID", FROWID, item.FRow);
|
||||||
|
if(benci==0)
|
||||||
|
continue;
|
||||||
|
this.View.Model.CreateNewEntryRow("FEntity2");
|
||||||
|
this.View.Model.SetValue("FROWID", Guid.NewGuid().ToString(), Rowindex + 1);
|
||||||
|
this.View.Model.SetValue("FPARENTROWID", FROWID, Rowindex + 1);
|
||||||
|
this.View.Model.SetValue("FBILLNO2", tempList2[i].FBIllNO, Rowindex + 1);
|
||||||
|
if (DateTime.TryParseExact(tempList2[i].FDate, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime parsedDate))
|
||||||
|
{
|
||||||
|
this.View.Model.SetValue("FDate2", tempList2[i].FDate, Rowindex + 1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this.View.Model.SetValue("FDate2", DateTime.Now.AddDays(-1 * Convert.ToInt32(item?.FDate)).ToString("yyyy-MM-dd"), Rowindex + i);
|
this.View.Model.SetValue("FDate2", DateTime.Now.AddDays(-1 * Convert.ToInt32(tempList2[i].FDate)).ToString("yyyy-MM-dd"), Rowindex + 1);
|
||||||
}
|
}
|
||||||
this.View.Model.SetValue("F_MBBA_Decimal_imu", tempList2[i].FALLAMOUNT, Rowindex + i);
|
this.View.Model.SetValue("F_MBBA_Decimal_imu", tempList2[i].FALLAMOUNT, Rowindex + 1);
|
||||||
this.View.Model.SetValue("FClient2", tempList2[i].FClient, Rowindex + i);
|
this.View.Model.SetValue("FClient2", tempList2[i].FClient, Rowindex + 1);
|
||||||
this.View.Model.SetValue("F_RowNew", 2, Rowindex + i);
|
this.View.Model.SetValue("F_RowNew", 2, Rowindex + 1);
|
||||||
this.View.Model.SetValue("FCreated2", tempList2[i].FCreated, Rowindex + i);
|
this.View.Model.SetValue("FCreated2", tempList2[i].FCreated, Rowindex + 1);
|
||||||
this.View.Model.SetValue("FCONTRACTNUMBER2", tempList2[i].FCONTRACTNUMBER, Rowindex + i);
|
this.View.Model.SetValue("FCONTRACTNUMBER2", tempList2[i].FCONTRACTNUMBER, Rowindex + 1);
|
||||||
this.View.Model.SetValue("FSalesman2", tempList2[i].FSalesman, Rowindex + i);
|
this.View.Model.SetValue("FSalesman2", tempList2[i].FSalesman, Rowindex + 1);
|
||||||
this.View.Model.SetValue("F_MBBA_Decimal_qtr", tempList2[i].FDAMOUNT, Rowindex + i);
|
this.View.Model.SetValue("F_MBBA_Decimal_qtr", tempList2[i].FDAMOUNT, Rowindex + 1);
|
||||||
|
this.View.Model.SetValue("F_PendingAmount", tempList2[i].FDAMOUNT, Rowindex + 1);
|
||||||
this.View.Model.SetValue("F_PendingAmount", tempList2[i].FDAMOUNT, Rowindex + i);
|
this.View.Model.SetValue("F_BenCi", benci, Rowindex + 1);
|
||||||
double benci = shouKuanDetail[item.FBIllNO + "," + tempList2[i].FBIllNO];
|
this.View.Model.SetValue("F_MBBA_Decimal_3iy", tempList2[i].FYAMOUNT, Rowindex + 1);
|
||||||
|
this.View.Model.SetValue("F_ISHX", false, Rowindex + 1);
|
||||||
this.View.Model.SetValue("F_BenCi", benci, Rowindex + i);
|
|
||||||
this.View.Model.SetValue("F_MBBA_Decimal_3iy", tempList2[i].FYAMOUNT, Rowindex + i);
|
|
||||||
this.View.Model.SetValue("F_ISHX", false, Rowindex + i);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1111,7 +1118,11 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
//创建核销记录单
|
//创建核销记录单
|
||||||
string FBILLNO = CommonHelper.CreateAutoWrireRecord2(this.Context, Convert.ToString(FOrgId), item.XSAPList, item);
|
string FBILLNO = "";
|
||||||
|
if(SourceType==0)
|
||||||
|
FBILLNO = CommonHelper.CreateAutoWrireRecord2(this.Context, Convert.ToString(FOrgId), item.XSAPList, item);
|
||||||
|
else
|
||||||
|
FBILLNO = CommonHelper.CreateAutoWrireRecord3(this.Context, Convert.ToString(FOrgId), item.XSAPList, item);
|
||||||
if (FBILLNO != "")
|
if (FBILLNO != "")
|
||||||
{
|
{
|
||||||
Message = Message + string.Format("生成核销记录单成功,单号为:'{0}'\r\n", FBILLNO);
|
Message = Message + string.Format("生成核销记录单成功,单号为:'{0}'\r\n", FBILLNO);
|
||||||
@ -1135,7 +1146,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
|
|||||||
{
|
{
|
||||||
var tempRow = ReceiveBILLLIST2.Where(t => successFbillNo.Contains(t.FBIllNO)).ToList();
|
var tempRow = ReceiveBILLLIST2.Where(t => successFbillNo.Contains(t.FBIllNO)).ToList();
|
||||||
var pId = tempRow.Select(t => t.FROWID).ToList();
|
var pId = tempRow.Select(t => t.FROWID).ToList();
|
||||||
var allRows = FEntity2.Where(t => pId.Contains(t["PARENTROWID"].ToString())).ToList();
|
var allRows = FEntity2.Where(t => t["PARENTROWID"] !=null && pId.Contains(t["PARENTROWID"].ToString())).ToList();
|
||||||
allRows.ForEach(t =>
|
allRows.ForEach(t =>
|
||||||
{
|
{
|
||||||
this.Model.DeleteEntryRow("FEntity2", Convert.ToInt32(t["Seq"]) - 1);
|
this.Model.DeleteEntryRow("FEntity2", Convert.ToInt32(t["Seq"]) - 1);
|
||||||
@ -1393,7 +1404,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
|
|||||||
if (F_RowNew != "1")
|
if (F_RowNew != "1")
|
||||||
return;
|
return;
|
||||||
string PARENTROWID = this.Model.GetValue("FPARENTROWID", e.Row)?.ToString();
|
string PARENTROWID = this.Model.GetValue("FPARENTROWID", e.Row)?.ToString();
|
||||||
var dataRow = FEntity2.Where(item => item["PARENTROWID"].ToString() == PARENTROWID && int.Parse(item["F_RowNew"].ToString()) != 1).ToList();
|
var dataRow = FEntity2.Where(item => item["PARENTROWID"] !=null && item["PARENTROWID"].ToString() == PARENTROWID && int.Parse(item["F_RowNew"].ToString()) != 1).ToList();
|
||||||
if (IsHX.ToLower() == "true" && dataRow.Where(t => t["F_ISHX"].ToString().ToLower() == "true").Count() > 0)
|
if (IsHX.ToLower() == "true" && dataRow.Where(t => t["F_ISHX"].ToString().ToLower() == "true").Count() > 0)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@ -1471,6 +1482,9 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
|
|||||||
{
|
{
|
||||||
FilterParameter returnData = action.ReturnData as FilterParameter;//过滤框返回的数据
|
FilterParameter returnData = action.ReturnData as FilterParameter;//过滤框返回的数据
|
||||||
DynamicObject dyObj = returnData.CustomFilter as DynamicObject;
|
DynamicObject dyObj = returnData.CustomFilter as DynamicObject;
|
||||||
|
//获取应收款数据来源 0=销售订单 1=发货通知单
|
||||||
|
SourceType = Convert.ToInt32(dyObj["F_Source_Type2"]);
|
||||||
|
|
||||||
//获取组织FID
|
//获取组织FID
|
||||||
DynamicObject FSaleOrg = dyObj["F_ZhuZhi2"] as DynamicObject;
|
DynamicObject FSaleOrg = dyObj["F_ZhuZhi2"] as DynamicObject;
|
||||||
string FSaleOrgId = "";
|
string FSaleOrgId = "";
|
||||||
@ -1499,15 +1513,17 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
|
|||||||
if (ZZS.Count > 0)
|
if (ZZS.Count > 0)
|
||||||
{
|
{
|
||||||
List<string> zzList = new List<string>();
|
List<string> zzList = new List<string>();
|
||||||
//循环获取多选组织FID
|
//循环获取多选客户FID
|
||||||
foreach (DynamicObject dobj in ZZS)
|
foreach (DynamicObject dobj in ZZS)
|
||||||
{
|
{
|
||||||
DynamicObject dynamic = dobj["FClientList"] as DynamicObject;
|
DynamicObject dynamic = dobj["FClientList"] as DynamicObject;
|
||||||
zzList.Add(dynamic["ID"].ToString());
|
zzList.Add(dynamic["ID"].ToString());
|
||||||
}
|
}
|
||||||
CustFid = string.Join("','", zzList);
|
CustFid = string.Join("','", zzList);
|
||||||
|
if(SourceType==0)
|
||||||
where1 += $@" and A.FCUSTID in ('{CustFid}')";
|
where1 += $@" and A.FCUSTID in ('{CustFid}')";
|
||||||
|
else
|
||||||
|
where1 += $@" and A.FCustomerID in ('{CustFid}')";
|
||||||
where2 += $@" and A.FCONTACTUNIT in ('{CustFid}')";
|
where2 += $@" and A.FCONTACTUNIT in ('{CustFid}')";
|
||||||
}
|
}
|
||||||
//this.View.ShowMessage(string.Format("选中的客户是:{0}s", CustFid));
|
//this.View.ShowMessage(string.Format("选中的客户是:{0}s", CustFid));
|
||||||
@ -1538,9 +1554,16 @@ namespace Pilot_KD_Parino.QPHY_AutoWrire
|
|||||||
|
|
||||||
//var FShuaXin = this.View.Model.GetValue("FShuaXin");
|
//var FShuaXin = this.View.Model.GetValue("FShuaXin");
|
||||||
|
|
||||||
|
DynamicObjectCollection WriteOrderDate;
|
||||||
//调用SQL获取数据
|
//调用SQL获取数据
|
||||||
var WriteOrderDate = SQL.SqlManage_yuyubo.GetWriteOrderDate3(this.Context, FSaleOrgId, where1);
|
if (SourceType == 0)
|
||||||
|
WriteOrderDate = SQL.SqlManage_yuyubo.GetWriteOrderDate3(this.Context, FSaleOrgId, where1);
|
||||||
|
else
|
||||||
|
WriteOrderDate = SQL.SqlManage_yuyubo.GetFaHuoTongZhiDan(this.Context, FSaleOrgId, where1);
|
||||||
|
|
||||||
var WriteReceiveDate = SQL.SqlManage_yuyubo.GetWriteReceiveDate3(this.Context, FSaleOrgId, where2);
|
var WriteReceiveDate = SQL.SqlManage_yuyubo.GetWriteReceiveDate3(this.Context, FSaleOrgId, where2);
|
||||||
|
|
||||||
|
|
||||||
SaleBILLLIS = WriteOrderDate.Select(item => new CombinaClass
|
SaleBILLLIS = WriteOrderDate.Select(item => new CombinaClass
|
||||||
{
|
{
|
||||||
Fid = Convert.ToInt32(item["FID"]),
|
Fid = Convert.ToInt32(item["FID"]),
|
||||||
|
@ -1,13 +1,11 @@
|
|||||||
using Kingdee.BOS.Core.DynamicForm.PlugIn;
|
using Kingdee.BOS.App.Data;
|
||||||
|
using Kingdee.BOS.Core.DynamicForm.PlugIn;
|
||||||
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
|
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
|
||||||
using Kingdee.BOS.Util;
|
using Kingdee.BOS.Util;
|
||||||
using Pilot_KD_Parino.SQL;
|
using Pilot_KD_Parino.SQL;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
|
namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
|
||||||
{
|
{
|
||||||
@ -17,12 +15,80 @@ namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
|
|||||||
[Description("核销记录单--反审核更新销售订单/应收单/收款单->核销金额"),HotUpdate]
|
[Description("核销记录单--反审核更新销售订单/应收单/收款单->核销金额"),HotUpdate]
|
||||||
public class FUpdateAmount: AbstractOperationServicePlugIn
|
public class FUpdateAmount: AbstractOperationServicePlugIn
|
||||||
{
|
{
|
||||||
public override void EndOperationTransaction(EndOperationTransactionArgs e)
|
//public override void EndOperationTransaction(EndOperationTransactionArgs e)
|
||||||
|
//{
|
||||||
|
// base.EndOperationTransaction(e);
|
||||||
|
// var fId = e.DataEntitys[0][0]?.ToString();
|
||||||
|
// //获取销售订单核销金额数据
|
||||||
|
// SqlManage.FUpdateSalOrderAmount(this.Context, fId);
|
||||||
|
|
||||||
|
//}
|
||||||
|
public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
|
||||||
{
|
{
|
||||||
base.EndOperationTransaction(e);
|
base.AfterExecuteOperationTransaction(e);
|
||||||
var fId = e.DataEntitys[0][0]?.ToString();
|
foreach (var rows in e.SelectedRows)
|
||||||
|
{
|
||||||
|
var Billobj = rows.DataEntity;
|
||||||
//获取销售订单核销金额数据
|
//获取销售订单核销金额数据
|
||||||
SqlManage.FUpdateSalOrderAmount(this.Context, fId);
|
SqlManage.FUpdateSalOrderAmount(this.Context, Convert.ToString(Billobj["Id"]));
|
||||||
|
|
||||||
|
string sql1 = string.Format(@"/*dialect*/Select B.FBILLNO2,B.FALLAMOUNT2 From T_AutoWrireRecord A
|
||||||
|
JOIN T_AutoWrireRecordEntry B
|
||||||
|
on A.FID = B.FID Where A.FID = '{0}'", Billobj["Id"]);
|
||||||
|
|
||||||
|
var sql1List = DBUtils.ExecuteDynamicObject(Context, sql1);
|
||||||
|
|
||||||
|
foreach (var item in sql1List.ToList())
|
||||||
|
{
|
||||||
|
decimal FALLAMOUNT = 0;
|
||||||
|
|
||||||
|
FALLAMOUNT = Convert.ToDecimal(item["FALLAMOUNT2"]);
|
||||||
|
|
||||||
|
string sql2 = string.Format(@"/*dialect*/Select B.FENTRYID,B.FRECADVANCEAMOUNT,ISNULL(B.F_ORDER,'') as 'F_ORDER' From
|
||||||
|
T_SAL_ORDER A
|
||||||
|
JOIN
|
||||||
|
T_SAL_ORDERPLAN B
|
||||||
|
on A.FID = B.FID
|
||||||
|
Where A.FBILLNO = '{0}'
|
||||||
|
Order by F_ORDER", item["FBILLNO2"]);
|
||||||
|
|
||||||
|
var sql2List = DBUtils.ExecuteDynamicObject(Context, sql2);
|
||||||
|
//如果只有一个直接赋值
|
||||||
|
if (sql2List.Count == 1)
|
||||||
|
{
|
||||||
|
string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky =ISNULL(F_MBBA_Decimal_uky,0)- {0} Where FENTRYID = {1};", FALLAMOUNT, sql2List[0]["FENTRYID"]);
|
||||||
|
DBUtils.ExecuteDynamicObject(Context, sql3);
|
||||||
|
}
|
||||||
|
if (sql2List.Count > 1)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < sql2List.Count; i++)
|
||||||
|
{
|
||||||
|
//判断核销顺序是否为空
|
||||||
|
//if (!string.IsNullOrWhiteSpace(sql2List[i]["F_ORDER"]?.ToString()))
|
||||||
|
//{
|
||||||
|
//判断核销金额是否大于按照排序对冲金额
|
||||||
|
decimal FRECADVANCEAMOUNT = Convert.ToDecimal(sql2List[i]["FRECADVANCEAMOUNT"]);
|
||||||
|
if (FALLAMOUNT > 0)
|
||||||
|
{
|
||||||
|
decimal fAmount = 0;
|
||||||
|
//判断是否整条对冲
|
||||||
|
if (FALLAMOUNT - FRECADVANCEAMOUNT >= 0)
|
||||||
|
{
|
||||||
|
fAmount = FRECADVANCEAMOUNT;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fAmount = FALLAMOUNT;
|
||||||
|
}
|
||||||
|
string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky = ISNULL(F_MBBA_Decimal_uky,0)-{0} Where FENTRYID = {1};", fAmount, sql2List[i]["FENTRYID"]);
|
||||||
|
DBUtils.ExecuteDynamicObject(Context, sql3);
|
||||||
|
}
|
||||||
|
FALLAMOUNT -= FRECADVANCEAMOUNT;
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,11 @@
|
|||||||
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
|
using Kingdee.BOS.App.Data;
|
||||||
using Kingdee.BOS.Core.DynamicForm.PlugIn;
|
using Kingdee.BOS.Core.DynamicForm.PlugIn;
|
||||||
|
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
|
||||||
using Kingdee.BOS.Util;
|
using Kingdee.BOS.Util;
|
||||||
using Pilot_KD_Parino.SQL;
|
using Pilot_KD_Parino.SQL;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Kingdee.BOS.App.Data;
|
|
||||||
|
|
||||||
namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
|
namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
|
||||||
{
|
{
|
||||||
@ -49,7 +46,7 @@ namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
|
|||||||
//如果只有一个直接赋值
|
//如果只有一个直接赋值
|
||||||
if (sql2List.Count == 1)
|
if (sql2List.Count == 1)
|
||||||
{
|
{
|
||||||
string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky = '{0}' Where FENTRYID = '{1}';", FALLAMOUNT, sql2List[0]["FENTRYID"]);
|
string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky =ISNULL(F_MBBA_Decimal_uky,0)+ {0} Where FENTRYID = '{1}';", FALLAMOUNT, sql2List[0]["FENTRYID"]);
|
||||||
DBUtils.ExecuteDynamicObject(Context, sql3);
|
DBUtils.ExecuteDynamicObject(Context, sql3);
|
||||||
}
|
}
|
||||||
if (sql2List.Count > 1)
|
if (sql2List.Count > 1)
|
||||||
@ -57,8 +54,8 @@ namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
|
|||||||
for (int i = 0; i < sql2List.Count; i++)
|
for (int i = 0; i < sql2List.Count; i++)
|
||||||
{
|
{
|
||||||
//判断核销顺序是否为空
|
//判断核销顺序是否为空
|
||||||
if (!string.IsNullOrWhiteSpace(sql2List[i]["F_ORDER"]?.ToString()))
|
//if (!string.IsNullOrWhiteSpace(sql2List[i]["F_ORDER"]?.ToString()))
|
||||||
{
|
//{
|
||||||
//判断核销金额是否大于按照排序对冲金额
|
//判断核销金额是否大于按照排序对冲金额
|
||||||
decimal FRECADVANCEAMOUNT = Convert.ToDecimal(sql2List[i]["FRECADVANCEAMOUNT"]);
|
decimal FRECADVANCEAMOUNT = Convert.ToDecimal(sql2List[i]["FRECADVANCEAMOUNT"]);
|
||||||
if (FALLAMOUNT > 0)
|
if (FALLAMOUNT > 0)
|
||||||
@ -73,11 +70,11 @@ namespace Pilot_KD_Parino.QPHY_AutoWrireRecord
|
|||||||
{
|
{
|
||||||
fAmount = FALLAMOUNT;
|
fAmount = FALLAMOUNT;
|
||||||
}
|
}
|
||||||
string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky = '{0}' Where FENTRYID = '{1}';", fAmount, sql2List[i]["FENTRYID"]);
|
string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky = ISNULL(F_MBBA_Decimal_uky,0)+{0} Where FENTRYID = '{1}';", fAmount, sql2List[i]["FENTRYID"]);
|
||||||
DBUtils.ExecuteDynamicObject(Context, sql3);
|
DBUtils.ExecuteDynamicObject(Context, sql3);
|
||||||
}
|
}
|
||||||
FALLAMOUNT -= FRECADVANCEAMOUNT;
|
FALLAMOUNT -= FRECADVANCEAMOUNT;
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -120,6 +120,64 @@ GROUP BY F_PaperNumber, FSALEORGID
|
|||||||
return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
|
return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取未核销的发货通知单信息
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static DynamicObjectCollection GetFaHuoTongZhiDan(Context ctx, string FORGID, string where)
|
||||||
|
{
|
||||||
|
//定义SQL,调用物料视图 AND A.FBusinessType='NORMAL'
|
||||||
|
/*
|
||||||
|
* SELECT case when FBusinessType='NORMAL' then (FDAMOUNT2+[整单累计退货金额]) else 0 end AS FDAMOUNT, * FROM
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
string sql = string.Format($@"/*dialect*/
|
||||||
|
SELECT FDAMOUNT2 as FDAMOUNT, * FROM
|
||||||
|
(
|
||||||
|
SELECT A.FID, A.FBusinessType,
|
||||||
|
A.FSalesManID as FSALERID,
|
||||||
|
A.F_Papercontract as F_CONTRACTNUMBER,
|
||||||
|
A.FCustomerID as FCUSTID,
|
||||||
|
A.F_PROJECTNAME,
|
||||||
|
A.FCREATORID,
|
||||||
|
A.FBILLNO AS 'FBILLNO',
|
||||||
|
DATEDIFF(D, A.FDATE, GETDATE()) AS 'FDATE',
|
||||||
|
C.FBILLALLAMOUNT_LC AS 'FALLAMOUNT' ,
|
||||||
|
C.FBILLALLAMOUNT as 'FALLAMOUNTY',
|
||||||
|
ISNULL(A.F_AMOUNT,0) as 'FYAMOUNT',
|
||||||
|
C.FBILLALLAMOUNT_LC-A.F_AMOUNT as 'FDAMOUNT2',
|
||||||
|
C.FSETTLECURRID as 'FCurr',
|
||||||
|
case when DATEDIFF(MONTH, A.FDATE, GETDATE())<3 then 'True' else 'False' end as 'FIs30' ,
|
||||||
|
'发货通知单' as 'FTYPE',
|
||||||
|
0.00 AS BenCi,
|
||||||
|
'' as F_Ordercategory2,
|
||||||
|
'' AS F_Ordercategory,
|
||||||
|
(
|
||||||
|
SELECT SUM(F_GeneralInvoice) AS '发票总金额' FROM (
|
||||||
|
SELECT F_PaperNumber, t0.FSALEORGID,
|
||||||
|
CASE WHEN F_ORDERCATEGORY ='67283ced82f38d' THEN FAFTERTOTALTAX
|
||||||
|
WHEN F_ORDERCATEGORY !='67283ced82f38d' AND F_GENERALINVOICE='Y' THEN 0 ELSE FAFTERTOTALTAX END AS F_GeneralInvoice
|
||||||
|
--FAFTERTOTALTAX
|
||||||
|
FROM T_IV_SALESIC t0 WITH(NOLOCK)
|
||||||
|
INNER JOIN T_SAL_ORDER aa1 WITH(NOLOCK) ON t0.F_PAPERNUMBER=aa1.F_contractnumber AND t0.FSETTLEORGID=aa1.FSALEORGID
|
||||||
|
--WHERE F_PaperNumber='P202502070004'
|
||||||
|
) AD WHERE AD.F_PaperNumber = A.F_Papercontract AND ad.FSALEORGID=a.FSALEORGID
|
||||||
|
GROUP BY F_PaperNumber, FSALEORGID
|
||||||
|
) as FInvoiceAmount,
|
||||||
|
|
||||||
|
0 as FaHuoAmount30Days,
|
||||||
|
0 as FInvoiceAmount30Days
|
||||||
|
,[整单累计退货金额]=0
|
||||||
|
FROM T_SAL_DELIVERYNOTICE A
|
||||||
|
INNER JOIN T_SAL_DELIVERYNOTICEFIN C ON C.FID =A.FID
|
||||||
|
WHERE
|
||||||
|
C.FBILLALLAMOUNT_LC > 0
|
||||||
|
AND A.FDOCUMENTSTATUS = 'C' AND ISNULL(A.F_Papercontract,'')!=''
|
||||||
|
AND (A.F_AMOUNT < C.FBILLALLAMOUNT_LC
|
||||||
|
or A.F_AMOUNT IS NULL) {where}
|
||||||
|
) A ORDER BY A.FCUSTID,a.FID desc ");
|
||||||
|
return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -71,6 +71,55 @@ namespace Pilot_KD_Parino.Sal_Order
|
|||||||
this.View.ShowMessage("跨组织下推订单完成");
|
this.View.ShowMessage("跨组织下推订单完成");
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (e.BarItemKey.Equals("tbSaleBill666", StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
this.View.ShowMessage("该功能开发中");
|
||||||
|
return;
|
||||||
|
var FEntity = this.View.Model.DataObject;
|
||||||
|
var json = JsonUtil.Serialize(FEntity);
|
||||||
|
//Logger.Error("FEntity", json, new Exception());
|
||||||
|
var id = FEntity["id"];
|
||||||
|
string formid = FEntity["FFormId"].ToString();
|
||||||
|
|
||||||
|
//发货通知单或者发货出库单
|
||||||
|
string getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM dbo.T_{formid}ENTRY_LK
|
||||||
|
WHERE FENTRYID IN ( SELECT FENTRYID FROM dbo.T_{formid}ENTRY WHERE FID = {id})";
|
||||||
|
var dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql);
|
||||||
|
if (dt == null || dt.Count == 0)
|
||||||
|
{
|
||||||
|
this.View.ShowMessage("没有上查关联的销售订单");
|
||||||
|
}
|
||||||
|
var entryIdList = dt.Select(t => t["FENTRYID"]).ToList() ;
|
||||||
|
|
||||||
|
int tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString());
|
||||||
|
string tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString();
|
||||||
|
|
||||||
|
int stockId = 0;
|
||||||
|
|
||||||
|
getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM dbo.T_SAL_ORDERENTRY_LK
|
||||||
|
WHERE FSBILLID={tempFid}";
|
||||||
|
dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql);
|
||||||
|
if (dt == null || dt.Count == 0)
|
||||||
|
{
|
||||||
|
this.View.ShowMessage("没有下查关联的跨组织销售订单");
|
||||||
|
}
|
||||||
|
|
||||||
|
var FENTRYIDList = dt.Select(t =>int.Parse( t["FENTRYID"].ToString())).ToList();
|
||||||
|
string ids = string.Join(",", FENTRYIDList);
|
||||||
|
getSourceSql = $@"/*dialect*/ SELECT* FROM T_SAL_ORDERENTRY WHERE FENTRYID IN({ids})";
|
||||||
|
//IOperationResult result = Invoke("SAL_SaleOrder", "PUR_PurchaseOrder", id.ToString(), "83d822ca3e374b4ab01e5dd46a0062bd", ref stockId, FEntity, null);
|
||||||
|
////var sheet = result.SuccessDataEnity.FirstOrDefault();
|
||||||
|
|
||||||
|
|
||||||
|
//result = Invoke("SAL_SaleOrder", "SAL_SaleOrder", id.ToString(), "eacb50844fc84a10b03d7b841f3a6278", ref stockId, null, FEntity);
|
||||||
|
//sheet = result.SuccessDataEnity.FirstOrDefault();
|
||||||
|
//result = Invoke("SAL_DELIVERYNOTICE", "SAL_OUTSTOCK", sheet["id"].ToString(), "ad0779a4685a43a08f08d2e42d7bf3e9", ref stockId);
|
||||||
|
|
||||||
|
this.View.ShowMessage("跨组织下推订单完成");
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -254,7 +303,7 @@ namespace Pilot_KD_Parino.Sal_Order
|
|||||||
|
|
||||||
orderSheet["F_SFHW"] = "2";
|
orderSheet["F_SFHW"] = "2";
|
||||||
|
|
||||||
this.View.ShowMessage("更新了1");
|
//this.View.ShowMessage("更新了1");
|
||||||
|
|
||||||
string sqltemp1 = $@"/*dialect*/ SELECT FUseOrgId,a.FNUMBER,b.FNAME,a.FCUSTID FROM T_BD_CUSTOMER a
|
string sqltemp1 = $@"/*dialect*/ SELECT FUseOrgId,a.FNUMBER,b.FNAME,a.FCUSTID FROM T_BD_CUSTOMER a
|
||||||
LEFT JOIN T_BD_CUSTOMER_L b ON a.FCUSTID=b.FCUSTID
|
LEFT JOIN T_BD_CUSTOMER_L b ON a.FCUSTID=b.FCUSTID
|
||||||
@ -476,7 +525,7 @@ namespace Pilot_KD_Parino.Sal_Order
|
|||||||
orderSheet["F_Amountstar"] = FEntity2["F_Amountstar"];
|
orderSheet["F_Amountstar"] = FEntity2["F_Amountstar"];
|
||||||
}
|
}
|
||||||
sdsas = JsonHelper.ToJson(destObjs);
|
sdsas = JsonHelper.ToJson(destObjs);
|
||||||
Logger.Error("目标单据数据集合4", sdsas, new Exception());
|
//Logger.Error("目标单据数据集合4", sdsas, new Exception());
|
||||||
|
|
||||||
IOperationResult saveResult2 = BusinessDataServiceHelper.Draft(this.Context, destFormMetadata.BusinessInfo, destObjs, OperateOption.Create());
|
IOperationResult saveResult2 = BusinessDataServiceHelper.Draft(this.Context, destFormMetadata.BusinessInfo, destObjs, OperateOption.Create());
|
||||||
//var ddd = (from p in destObjs select p[0]).ToArray();
|
//var ddd = (from p in destObjs select p[0]).ToArray();
|
||||||
|
@ -56,6 +56,7 @@ namespace Pilot_KD_Parino.Sal_Order
|
|||||||
}
|
}
|
||||||
int tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString());
|
int tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString());
|
||||||
string tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString();
|
string tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString();
|
||||||
|
int xiaoFid = 0;
|
||||||
//找到采购订单
|
//找到采购订单
|
||||||
for (int kk = 0; kk < 6 && tablename.ToUpper() != "T_PUR_POORDERENTRY"; kk++)
|
for (int kk = 0; kk < 6 && tablename.ToUpper() != "T_PUR_POORDERENTRY"; kk++)
|
||||||
{
|
{
|
||||||
@ -79,21 +80,47 @@ namespace Pilot_KD_Parino.Sal_Order
|
|||||||
if (dt == null || dt.Count == 0)
|
if (dt == null || dt.Count == 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
this.View.ShowMessage("没有上查关联的跨组织的采购订单");
|
//this.View.ShowMessage("没有上查关联的跨组织的采购订单");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString();
|
tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString();
|
||||||
//if (tablename.ToUpper() != "T_PUR_POORDERENTRY")
|
|
||||||
// this.View.ShowMessage("没有上查关联的跨组织的采购订单 " + tablename);
|
|
||||||
}
|
|
||||||
tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString());
|
tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
if (tablename.ToUpper() != "T_PUR_POORDERENTRY")
|
if (tablename.ToUpper() != "T_PUR_POORDERENTRY")
|
||||||
|
{
|
||||||
|
getSourceSql = $@"/*dialect*/SELECT FSTABLENAME,FSBILLID,FENTRYID FROM dbo.T_PUR_POORDERENTRY_LK
|
||||||
|
WHERE FSBILLID= {tempFid}";
|
||||||
|
dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql);
|
||||||
|
if (dt == null || dt.Count == 0)
|
||||||
{
|
{
|
||||||
throw new KDBusinessException("", "没有上查关联的跨组织的采购订单:" + tablename);
|
throw new KDBusinessException("", "没有上查关联的跨组织的采购订单:" + tablename);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
xiaoFid = tempFid;
|
||||||
|
//tablename = dt.Select(t => t["FSTABLENAME"]).FirstOrDefault().ToString();
|
||||||
|
//tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString());
|
||||||
|
|
||||||
|
var FENTRYIDList = dt.Select(t => int.Parse(t["FENTRYID"].ToString())).ToList();
|
||||||
|
string ids = string.Join(",", FENTRYIDList);
|
||||||
|
getSourceSql = $@"/*dialect*/ SELECT FID FROM T_PUR_POORDERENTRY WHERE FENTRYID IN({ids})";
|
||||||
|
dt = DBServiceHelper.ExecuteDynamicObject(this.Context, getSourceSql);
|
||||||
|
if (dt == null || dt.Count == 0)
|
||||||
|
{
|
||||||
|
throw new KDBusinessException("", "没有上查关联的跨组织的采购订单:" + tablename);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tempFid =int.Parse( dt.FirstOrDefault()["FID"].ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
int stockId = 0;
|
int stockId = 0;
|
||||||
IOperationResult result = Invoke("PUR_PurchaseOrder", "PUR_ReceiveBill", tempFid.ToString(), "7cd93c259999489c97798063f2f7bd70", ref stockId);
|
IOperationResult result = Invoke("PUR_PurchaseOrder", "PUR_ReceiveBill", tempFid.ToString(), "7cd93c259999489c97798063f2f7bd70", ref stockId);
|
||||||
@ -111,7 +138,7 @@ namespace Pilot_KD_Parino.Sal_Order
|
|||||||
}
|
}
|
||||||
|
|
||||||
//找到最开始的销售订单
|
//找到最开始的销售订单
|
||||||
for (int kk = 0; kk < 6 && tablename.ToUpper() != "T_SAL_ORDERENTRY"; kk++)
|
for (int kk = 0; kk < 6 && tablename.ToUpper() != "T_SAL_ORDERENTRY" && xiaoFid==0; kk++)
|
||||||
{
|
{
|
||||||
////发货通知单
|
////发货通知单
|
||||||
tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString());
|
tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString());
|
||||||
@ -133,13 +160,14 @@ namespace Pilot_KD_Parino.Sal_Order
|
|||||||
}
|
}
|
||||||
tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString());
|
tempFid = int.Parse(dt.Select(t => t["FSBILLID"]).FirstOrDefault().ToString());
|
||||||
}
|
}
|
||||||
if (tablename.ToUpper() != "T_SAL_ORDERENTRY")
|
if (tablename.ToUpper() != "T_SAL_ORDERENTRY" && xiaoFid == 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
throw new KDBusinessException("", "推送销售发货通知单失败,没有上查关联的跨组织的销售订单:" + tablename);
|
throw new KDBusinessException("", "推送销售发货通知单失败,没有上查关联的跨组织的销售订单:" + tablename);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
if (xiaoFid > 0)
|
||||||
|
tempFid = xiaoFid;
|
||||||
result = Invoke("SAL_SaleOrder", "SAL_DELIVERYNOTICE", tempFid.ToString(), "193822715afc48aa9fa6d6beca7700ab", ref stockId);
|
result = Invoke("SAL_SaleOrder", "SAL_DELIVERYNOTICE", tempFid.ToString(), "193822715afc48aa9fa6d6beca7700ab", ref stockId);
|
||||||
sheet = result.SuccessDataEnity.FirstOrDefault();
|
sheet = result.SuccessDataEnity.FirstOrDefault();
|
||||||
result = Invoke("SAL_DELIVERYNOTICE", "SAL_OUTSTOCK", sheet["id"].ToString(), "ad0779a4685a43a08f08d2e42d7bf3e9", ref stockId);
|
result = Invoke("SAL_DELIVERYNOTICE", "SAL_OUTSTOCK", sheet["id"].ToString(), "ad0779a4685a43a08f08d2e42d7bf3e9", ref stockId);
|
||||||
|
87
Pilot_KD_Parino/VRYF_FHTZDHXJL/UpdateAmount.cs
Normal file
87
Pilot_KD_Parino/VRYF_FHTZDHXJL/UpdateAmount.cs
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
|
||||||
|
using Kingdee.BOS.Core.DynamicForm.PlugIn;
|
||||||
|
using Kingdee.BOS.Util;
|
||||||
|
using Pilot_KD_Parino.SQL;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Kingdee.BOS.App.Data;
|
||||||
|
|
||||||
|
namespace Pilot_KD_Parino.VRYF_FHTZDHXJL
|
||||||
|
{
|
||||||
|
[HotUpdate]
|
||||||
|
[Description("核销记录单--更新销售订单金额")]
|
||||||
|
public class UpdateAmount : AbstractOperationServicePlugIn
|
||||||
|
{
|
||||||
|
public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)
|
||||||
|
{
|
||||||
|
base.AfterExecuteOperationTransaction(e);
|
||||||
|
foreach (var rows in e.SelectedRows)
|
||||||
|
{
|
||||||
|
var Billobj = rows.DataEntity;
|
||||||
|
//获取销售订单核销金额数据
|
||||||
|
SqlManage.UpdateSalOrderAmount(this.Context, Convert.ToString(Billobj["Id"]));
|
||||||
|
|
||||||
|
string sql1 = string.Format(@"/*dialect*/Select B.FBILLNO2,B.FALLAMOUNT2 From VRYF_t_Cust100015 A
|
||||||
|
JOIN VRYF_t_Cust_Entry100024 B
|
||||||
|
on A.FID = B.FID Where A.FID = '{0}'", Billobj["Id"]);
|
||||||
|
|
||||||
|
var sql1List = DBUtils.ExecuteDynamicObject(Context, sql1);
|
||||||
|
|
||||||
|
foreach (var item in sql1List.ToList())
|
||||||
|
{
|
||||||
|
decimal FALLAMOUNT = 0;
|
||||||
|
|
||||||
|
FALLAMOUNT = Convert.ToDecimal(item["FALLAMOUNT2"]);
|
||||||
|
|
||||||
|
string sql2 = string.Format($@"/*dialect*/Select B.FENTRYID,B.FRECADVANCEAMOUNT,ISNULL(B.F_ORDER,'') as 'F_ORDER' From
|
||||||
|
T_SAL_ORDER A
|
||||||
|
JOIN
|
||||||
|
T_SAL_ORDERPLAN B
|
||||||
|
on A.FID = B.FID
|
||||||
|
Where A.FDOCUMENTSTATUS = '{item["FDOCUMENTSTATUS"]}' and A.FSaleOrgId={item["FORGID"]}
|
||||||
|
Order by F_ORDER ,FENTRYID");
|
||||||
|
|
||||||
|
var sql2List = DBUtils.ExecuteDynamicObject(Context, sql2);
|
||||||
|
//如果只有一个直接赋值
|
||||||
|
if (sql2List.Count == 1)
|
||||||
|
{
|
||||||
|
string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky = {0} Where FENTRYID = {1};", FALLAMOUNT, sql2List[0]["FENTRYID"]);
|
||||||
|
DBUtils.ExecuteDynamicObject(Context, sql3);
|
||||||
|
}
|
||||||
|
if (sql2List.Count > 1)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < sql2List.Count; i++)
|
||||||
|
{
|
||||||
|
//判断核销顺序是否为空
|
||||||
|
//if (!string.IsNullOrWhiteSpace(sql2List[i]["F_ORDER"]?.ToString()))
|
||||||
|
//{
|
||||||
|
//判断核销金额是否大于按照排序对冲金额
|
||||||
|
decimal FRECADVANCEAMOUNT = Convert.ToDecimal(sql2List[i]["FRECADVANCEAMOUNT"]);
|
||||||
|
if (FALLAMOUNT > 0)
|
||||||
|
{
|
||||||
|
decimal fAmount = 0;
|
||||||
|
//判断是否整条对冲
|
||||||
|
if (FALLAMOUNT - FRECADVANCEAMOUNT >= 0)
|
||||||
|
{
|
||||||
|
fAmount = FRECADVANCEAMOUNT;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fAmount = FALLAMOUNT;
|
||||||
|
}
|
||||||
|
string sql3 = string.Format(@"Update T_SAL_ORDERPLAN Set F_MBBA_Decimal_uky = '{0}' Where FENTRYID = '{1}';", fAmount, sql2List[i]["FENTRYID"]);
|
||||||
|
DBUtils.ExecuteDynamicObject(Context, sql3);
|
||||||
|
}
|
||||||
|
FALLAMOUNT -= FRECADVANCEAMOUNT;
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user