76 lines
2.1 KiB
C#
76 lines
2.1 KiB
C#
using Kingdee.BOS;
|
|
using Kingdee.BOS.Orm.DataEntity;
|
|
using Kingdee.BOS.ServiceHelper;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace GZ_KD_Parino.Services
|
|
{
|
|
/// <summary>
|
|
/// 销售订单服务类
|
|
/// </summary>
|
|
public class SaleOrderService
|
|
{
|
|
private Context ctx;
|
|
public SaleOrderService(Context ctx)
|
|
{
|
|
this.ctx = ctx;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 销售订单获取历史单价
|
|
/// 销售订单,根据组织+客户+商机名称#+物料代码带出最近一次历史销售含税单价,
|
|
/// 取当前日期前,审核日期最大的销售订单含税单价,日期越大表示离当前日期越近
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public DynamicObject GetHistoryOrder(string orgId, string custId, string bonId, string materialId, DateTime createDate)
|
|
{
|
|
var sql = $@"/*dialect*/WITH
|
|
SJname AS (
|
|
SELECT
|
|
t1_l.FNAME
|
|
FROM
|
|
T_BAS_PREBDTHREE t1
|
|
INNER JOIN T_BAS_PREBDTHREE_L t1_l ON t1.FID = t1_l.FID
|
|
AND t1_l.FLocaleID = 2052
|
|
WHERE
|
|
t1.FID = '{bonId}'
|
|
)
|
|
SELECT
|
|
TOP 1 t1e_f.*
|
|
FROM
|
|
T_SAL_ORDER t1
|
|
INNER JOIN T_SAL_ORDERENTRY t1e ON t1.FID = t1e.FID
|
|
INNER JOIN T_SAL_ORDERENTRY_F t1e_f ON t1e.FENTRYID = t1e_f.FENTRYID
|
|
INNER JOIN T_BAS_PREBDONE_L t2_L ON t1.F_PROJECTNAME = t2_L.FID
|
|
AND t2_L.FLocaleID = 2052
|
|
WHERE
|
|
1 = 1
|
|
AND t1.FDOCUMENTSTATUS = 'C' -- 已审核
|
|
AND t1.FCANCELSTATUS = 'A' -- 未作废
|
|
AND t2_L.FNAME IN (
|
|
SELECT
|
|
FNAME
|
|
FROM
|
|
SJname
|
|
)
|
|
AND t1.FAPPROVEDATE < '{createDate.ToString("yyyy-MM-dd HH:mm:ss")}'
|
|
AND t1.FSALEORGID = '{orgId}'
|
|
AND t1.FCUSTID = '{custId}'
|
|
AND t1e.FMATERIALID = '{materialId}'
|
|
ORDER BY
|
|
t1.FCREATEDATE DESC
|
|
";
|
|
var result = DBServiceHelper.ExecuteDynamicObject(this.ctx, sql);
|
|
if (result.Count == 0)
|
|
{
|
|
return null;
|
|
}
|
|
return result[0];
|
|
}
|
|
}
|
|
}
|