Piolot_Order_TH/Services/SaleSicsService.cs

119 lines
3.7 KiB
C#
Raw Normal View History

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
t1.F_INVOICEAMOUNT = ISNULL (TEMP1.FAFTERTOTALTAXFOR, 0) + ROUND(
(
ISNULL (TEMP1.FAFTERTOTALTAX, 0) / ISNULL (t1fin.FEXCHANGERATE, 0)
),
2
)
2025-07-26 17:31:00 +08:00
FROM
T_SAL_ORDER t1
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,
SUM(FAFTERTOTALTAX) FAFTERTOTALTAX, --
SUM(FAFTERTOTALTAXFOR) FAFTERTOTALTAXFOR --
2025-07-26 17:31:00 +08:00
FROM
(
SELECT
FSALEORGID, --
F_PaperNumber, --
0 FAFTERTOTALTAX,
ISNULL (FAFTERTOTALTAXFOR, 0) FAFTERTOTALTAXFOR --
2025-07-26 17:31:00 +08:00
FROM
T_IV_SALESIC
WHERE
1 = 1
AND FDOCUMENTSTATUS = 'C'
AND FCANCELSTATUS = 'A'
AND FDATE >= '2025-01-01'
2025-07-26 17:31:00 +08:00
AND FSALEORGID = '{0}'
AND F_PaperNumber = '{1}'
UNION ALL
SELECT
'100302' FSALEORGID, --
F_PaperNumber, --
SUM(ISNULL (, 0) + ISNULL (, 0)) FAFTERTOTALTAX, --
0 --
FROM
oldk3seorder0701
2025-07-26 17:31:00 +08:00
WHERE
1 = 1
AND < '2025-01-01'
2025-07-26 17:31:00 +08:00
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);
}
/// <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);
}
}
}