119 lines
3.7 KiB
C#
119 lines
3.7 KiB
C#
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
|
|
)
|
|
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
|
|
FSALEORGID, -- 销售组织
|
|
F_PaperNumber, -- 纸质合同号
|
|
0 FAFTERTOTALTAX,
|
|
ISNULL (FAFTERTOTALTAXFOR, 0) FAFTERTOTALTAXFOR -- 价税合计
|
|
FROM
|
|
T_IV_SALESIC
|
|
WHERE
|
|
1 = 1
|
|
AND FDOCUMENTSTATUS = 'C'
|
|
AND FCANCELSTATUS = 'A'
|
|
AND FDATE >= '2025-01-01'
|
|
AND FSALEORGID = '{0}'
|
|
AND F_PaperNumber = '{1}'
|
|
UNION ALL
|
|
SELECT
|
|
'100302' FSALEORGID, -- 销售组织
|
|
合同号 F_PaperNumber, -- 纸质合同号
|
|
SUM(ISNULL (专票金额, 0) + ISNULL (普票金额, 0)) FAFTERTOTALTAX, -- 价税合计本币
|
|
0 -- 价税合计
|
|
FROM
|
|
oldk3seorder0701
|
|
WHERE
|
|
1 = 1
|
|
AND 日期 < '2025-01-01'
|
|
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);
|
|
}
|
|
}
|
|
}
|