2025-07-26 17:31:00 +08:00
|
|
|
|
using Kingdee.BOS;
|
|
|
|
|
|
using Kingdee.BOS.Orm.DataEntity;
|
|
|
|
|
|
using Kingdee.BOS.ServiceHelper;
|
|
|
|
|
|
using Kingdee.K3.FIN.App.Core.Match.Object;
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
|
|
namespace GZ_LTHPilot_ORDER.Service
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 销售发票服务类
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class SaleSicsService
|
|
|
|
|
|
{
|
|
|
|
|
|
private Context ctx;
|
|
|
|
|
|
|
|
|
|
|
|
public SaleSicsService(Context ctx)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.ctx = ctx;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 刷新销售订单累计开票金额
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="saleOrderId"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public int UpdateSaleOrderSumSicsamountBySaleOrder(DynamicObject saleOrder)
|
|
|
|
|
|
{
|
|
|
|
|
|
// 销售订单ID
|
|
|
|
|
|
var saleOrderId = saleOrder["FID"].ToString();
|
|
|
|
|
|
// 纸质合同号
|
|
|
|
|
|
var contractNo = saleOrder["F_CONTRACTNUMBER"].ToString();
|
|
|
|
|
|
// 销售组织Id
|
|
|
|
|
|
var saleOrgId = saleOrder["FSALEORGID"].ToString();
|
|
|
|
|
|
var sqlTemp = @"/*dialect*/UPDATE t1
|
|
|
|
|
|
SET
|
2025-08-05 23:41:16 +08:00
|
|
|
|
t1.F_INVOICEAMOUNT = ISNULL (TEMP1.FAFTERTOTALTAXFOR, 0)
|
2025-07-26 17:31:00 +08:00
|
|
|
|
FROM
|
|
|
|
|
|
T_SAL_ORDER t1
|
2025-07-31 17:39:21 +08:00
|
|
|
|
INNER JOIN T_SAL_ORDERFIN t1fin ON t1.FID = t1fin.FID
|
|
|
|
|
|
LEFT JOIN (
|
2025-07-26 17:31:00 +08:00
|
|
|
|
SELECT
|
|
|
|
|
|
FSALEORGID,
|
|
|
|
|
|
F_PaperNumber,
|
2025-07-31 17:39:21 +08:00
|
|
|
|
SUM(FAFTERTOTALTAX) FAFTERTOTALTAX, -- 价税合计本币
|
|
|
|
|
|
SUM(FAFTERTOTALTAXFOR) FAFTERTOTALTAXFOR -- 价税合计原币
|
2025-07-26 17:31:00 +08:00
|
|
|
|
FROM
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT
|
2025-08-07 15:47:30 +08:00
|
|
|
|
v1.FSALEORGID, -- 销售组织
|
|
|
|
|
|
v1e.F_CONTRACTNO F_PaperNumber, -- 纸质合同号
|
|
|
|
|
|
ISNULL (v1e_o.FALLAMOUNT, 0) FAFTERTOTALTAX, -- 价税合计本币
|
|
|
|
|
|
ISNULL (v1e.FALLAMOUNTFOR, 0) FAFTERTOTALTAXFOR -- 价税合计
|
2025-07-26 17:31:00 +08:00
|
|
|
|
FROM
|
2025-08-07 15:47:30 +08:00
|
|
|
|
T_IV_SALESIC v1
|
|
|
|
|
|
INNER JOIN T_IV_SALESICENTRY v1e ON v1.FID = v1e.FID
|
|
|
|
|
|
LEFT JOIN T_IV_SALESICENTRY_O v1e_o ON v1e_o.FENTRYID = v1e.FENTRYID
|
2025-07-26 17:31:00 +08:00
|
|
|
|
WHERE
|
|
|
|
|
|
1 = 1
|
2025-08-07 15:47:30 +08:00
|
|
|
|
AND v1.FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND v1.FCANCELSTATUS = 'A'
|
|
|
|
|
|
AND v1.F_SFQC = 0
|
|
|
|
|
|
AND v1.FSALEORGID = '{0}'
|
|
|
|
|
|
AND v1e.F_CONTRACTNO = '{1}'
|
2025-07-26 17:31:00 +08:00
|
|
|
|
UNION ALL
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
'100302' FSALEORGID, -- 销售组织
|
|
|
|
|
|
合同号 F_PaperNumber, -- 纸质合同号
|
2025-08-05 23:41:16 +08:00
|
|
|
|
SUM(ISNULL (发票金额, 0)) FAFTERTOTALTAX, -- 价税合计本币
|
|
|
|
|
|
SUM(ISNULL (发票原币金额, 0)) FAFTERTOTALTAXFOR -- 价税合计
|
2025-07-31 17:39:21 +08:00
|
|
|
|
FROM
|
2025-08-05 23:41:16 +08:00
|
|
|
|
oldk3ICSale0802
|
2025-07-26 17:31:00 +08:00
|
|
|
|
WHERE
|
|
|
|
|
|
1 = 1
|
|
|
|
|
|
AND 合同号 = '{1}'
|
|
|
|
|
|
GROUP BY
|
|
|
|
|
|
合同号
|
|
|
|
|
|
) temp02
|
|
|
|
|
|
GROUP BY
|
|
|
|
|
|
FSALEORGID,
|
|
|
|
|
|
F_PaperNumber
|
|
|
|
|
|
) TEMP1 ON t1.F_CONTRACTNUMBER = TEMP1.F_PaperNumber
|
|
|
|
|
|
AND t1.FSALEORGID = TEMP1.FSALEORGID
|
|
|
|
|
|
WHERE
|
|
|
|
|
|
t1.FID = '{2}'
|
|
|
|
|
|
";
|
|
|
|
|
|
var sql = string.Format(sqlTemp, saleOrgId, contractNo, saleOrderId);
|
|
|
|
|
|
return DBServiceHelper.Execute(ctx, sql);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-08-16 17:47:20 +08:00
|
|
|
|
|
|
|
|
|
|
public int UpdateSaleOrderSumSicsamountAll()
|
|
|
|
|
|
{
|
|
|
|
|
|
var sql = @"/*dialect*/UPDATE t1
|
|
|
|
|
|
SET
|
|
|
|
|
|
t1.F_INVOICEAMOUNT = ISNULL (TEMP1.FAFTERTOTALTAXFOR, 0)
|
|
|
|
|
|
FROM
|
|
|
|
|
|
T_SAL_ORDER t1
|
|
|
|
|
|
INNER JOIN T_SAL_ORDERFIN t1fin ON t1.FID = t1fin.FID
|
|
|
|
|
|
LEFT JOIN (
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
FSALEORGID,
|
|
|
|
|
|
F_PaperNumber,
|
|
|
|
|
|
SUM(FAFTERTOTALTAX) FAFTERTOTALTAX, -- 价税合计本币
|
|
|
|
|
|
SUM(FAFTERTOTALTAXFOR) FAFTERTOTALTAXFOR -- 价税合计原币
|
|
|
|
|
|
FROM
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
v1.FSALEORGID, -- 销售组织
|
|
|
|
|
|
v1e.F_CONTRACTNO F_PaperNumber, -- 纸质合同号
|
|
|
|
|
|
ISNULL (v1e_o.FALLAMOUNT, 0) FAFTERTOTALTAX, -- 价税合计本币
|
|
|
|
|
|
ISNULL (v1e.FALLAMOUNTFOR, 0) FAFTERTOTALTAXFOR -- 价税合计
|
|
|
|
|
|
FROM
|
|
|
|
|
|
T_IV_SALESIC v1
|
|
|
|
|
|
INNER JOIN T_IV_SALESICENTRY v1e ON v1.FID = v1e.FID
|
|
|
|
|
|
LEFT JOIN T_IV_SALESICENTRY_O v1e_o ON v1e_o.FENTRYID = v1e.FENTRYID
|
|
|
|
|
|
WHERE
|
|
|
|
|
|
1 = 1
|
|
|
|
|
|
AND v1.FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND v1.FCANCELSTATUS = 'A'
|
|
|
|
|
|
AND v1.F_SFQC = 0
|
|
|
|
|
|
UNION ALL
|
|
|
|
|
|
SELECT
|
|
|
|
|
|
'100302' FSALEORGID, -- 销售组织
|
|
|
|
|
|
合同号 F_PaperNumber, -- 纸质合同号
|
|
|
|
|
|
SUM(ISNULL (发票金额, 0)) FAFTERTOTALTAX, -- 价税合计本币
|
|
|
|
|
|
SUM(ISNULL (发票原币金额, 0)) FAFTERTOTALTAXFOR -- 价税合计
|
|
|
|
|
|
FROM
|
|
|
|
|
|
oldk3ICSale0802
|
|
|
|
|
|
WHERE
|
|
|
|
|
|
1 = 1
|
|
|
|
|
|
GROUP BY
|
|
|
|
|
|
合同号
|
|
|
|
|
|
) temp02
|
|
|
|
|
|
GROUP BY
|
|
|
|
|
|
FSALEORGID,
|
|
|
|
|
|
F_PaperNumber
|
|
|
|
|
|
) TEMP1 ON t1.F_CONTRACTNUMBER = TEMP1.F_PaperNumber
|
|
|
|
|
|
AND t1.FSALEORGID = TEMP1.FSALEORGID
|
|
|
|
|
|
";
|
|
|
|
|
|
return DBServiceHelper.Execute(ctx, sql);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-07-26 17:31:00 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
///
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="approvedDate"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public DynamicObjectCollection GetSaleSiceListByApprovedDate(DateTime approvedDate)
|
|
|
|
|
|
{
|
|
|
|
|
|
var sqlTemp = @"/*dialect*/SELECT DISTINCT
|
|
|
|
|
|
t1.FSALEORGID,
|
|
|
|
|
|
ISNULL(t1.F_PaperNumber, '') contractNo
|
|
|
|
|
|
FROM
|
|
|
|
|
|
T_IV_SALESIC t1
|
|
|
|
|
|
WHERE
|
|
|
|
|
|
1 = 1
|
|
|
|
|
|
AND t1.FAPPROVEDATE > '{0}'
|
|
|
|
|
|
";
|
|
|
|
|
|
var sql = string.Format(sqlTemp, approvedDate.ToString("yyyy-MM-dd HH:mm:dd"));
|
|
|
|
|
|
return DBServiceHelper.ExecuteDynamicObject(ctx, sql);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|