新增K3退货金额、云星空退货金额、整单可开票金额
This commit is contained in:
@@ -34,68 +34,131 @@ namespace GZ_LTHPilot_ORDER.Service
|
||||
/// K3退货金额原币取数逻辑:K3退货金额除以销售订单汇率=K3退货金额原币
|
||||
/// </summary>
|
||||
/// <param name="contractNo">纸质合同号</param>
|
||||
/// <param name="rate">销售订单汇率</param>
|
||||
/// <returns></returns>
|
||||
public decimal GetK3SaleOrderRetrunAmount(string contractNo, string rate)
|
||||
public decimal GetK3SaleOrderRetrunAmount(string orgId, string contractNo)
|
||||
{
|
||||
var sqlTemp = @"/*dialect*/SELECT
|
||||
ROUND(ISNULL (SUM(退货金额), 0) / {1}, 2) Amount
|
||||
var sqlTemp = @"/*dialect*/WITH
|
||||
K3returnAmount AS (
|
||||
SELECT
|
||||
t2.F_CONTRACTNUMBER,
|
||||
ROUND(ISNULL (SUM(退货金额), 0) / t2fin.FEXCHANGERATE, 2) K3returnAmount
|
||||
FROM
|
||||
oldk3seorder0701 t1
|
||||
Inner join T_SAL_ORDER t2 on t1.合同号 = t2.F_CONTRACTNUMBER
|
||||
and t2.FSALEORGID = '100302'
|
||||
inner join T_SAL_ORDERFIN t2fin on t2.fid = t2fin.fid
|
||||
WHERE
|
||||
1 = 1
|
||||
AND t2.FSALEORGID = '{0}'
|
||||
AND t2.F_CONTRACTNUMBER = '{1}'
|
||||
GROUP BY
|
||||
t2.FSALEORGID,
|
||||
t2.F_CONTRACTNUMBER,
|
||||
t2fin.FEXCHANGERATE
|
||||
)
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
oldk3seorder0701 t1
|
||||
WHERE
|
||||
1 = 1
|
||||
AND t1.合同号 = '{0}'
|
||||
K3returnAmount
|
||||
";
|
||||
var sql = string.Format(sqlTemp, contractNo, rate);
|
||||
var sql = string.Format(sqlTemp, orgId, contractNo);
|
||||
var result = DBServiceHelper.ExecuteDynamicObject(ctx, sql);
|
||||
return Convert.ToDecimal(result[0]["Amount"]);
|
||||
if (result.Count == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
return Convert.ToDecimal(result[0]["K3returnAmount"]);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 云星空的退货金额取数逻辑:取已审核的退货通知单的表头字段 ”源头销售订单单号#“ =本销售订单编号的退货通知单原币价税合计金额
|
||||
/// </summary>
|
||||
/// <param name="billNo">单据编号</param>
|
||||
/// <param name="orgId"></param>
|
||||
/// <param name="contractNo"></param>
|
||||
/// <returns></returns>
|
||||
public decimal GetSaleOrderRetrunAmount(string billNo)
|
||||
public decimal GetSaleOrderRetrunAmount(string orgId, string contractNo)
|
||||
{
|
||||
var sqlTemp = @"/*dialect*/SELECT
|
||||
ISNULL (SUM(FBILLALLAMOUNT), 0) Amount
|
||||
var sqlTemp = @"/*dialect*/WITH
|
||||
returnAmount AS (
|
||||
SELECT
|
||||
t2.F_CONTRACTNUMBER,
|
||||
t2.FSALEORGID,
|
||||
ISNULL (SUM(t1e_f.FALLAMOUNT), 0) returnAmount
|
||||
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_SAL_ORDER t2 -- 上游单据
|
||||
ON t1.F_SOURORDERNO = t2.FBILLNO
|
||||
AND t1.FSALEORGID = t1.FSALEORGID
|
||||
WHERE
|
||||
1 = 1
|
||||
AND t1.FBUSINESSTYPE = 'RETURNSO' -- 退货订单
|
||||
AND t2.FDOCUMENTSTATUS = 'C'
|
||||
AND t1.FDOCUMENTSTATUS = 'C'
|
||||
AND t1e.FRETURNTYPE = 'RETURN' -- 退货类型
|
||||
AND t2.FSALEORGID = '{0}'
|
||||
AND t2.F_CONTRACTNUMBER = '{1}'
|
||||
GROUP BY
|
||||
t2.F_CONTRACTNUMBER,
|
||||
t2.FSALEORGID
|
||||
)
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
T_SAL_RETURNNOTICE t1
|
||||
LEFT JOIN T_SAL_RETURNNOTICEFIN t1fin ON t1.FID = t1fin.FID
|
||||
WHERE
|
||||
1 = 1
|
||||
AND t1.FDOCUMENTSTATUS = 'C'
|
||||
AND t1.FCANCELSTATUS = 'A'
|
||||
AND t1.F_SOURORDERNO = '{0}'
|
||||
returnAmount
|
||||
";
|
||||
var sql = string.Format(sqlTemp, billNo);
|
||||
var sql = string.Format(sqlTemp, orgId, contractNo);
|
||||
var result = DBServiceHelper.ExecuteDynamicObject(ctx, sql);
|
||||
return Convert.ToDecimal(result[0]["Amount"]);
|
||||
if (result.Count == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
return -Convert.ToDecimal(result[0]["returnAmount"]);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 订单明细正数的物料原币价税合计(只取退补类型不等于“退回“的物料明细)
|
||||
/// </summary>
|
||||
/// <param name="id"></param>
|
||||
/// <param name="orgId"></param>
|
||||
/// <param name="contractNo"></param>
|
||||
/// <returns></returns>
|
||||
public decimal GetSaleOrderAmount(string id)
|
||||
public decimal GetSaleOrderAmount(string orgId, string contractNo)
|
||||
{
|
||||
var sqlTemp = @"/*dialect*/SELECT
|
||||
ISNULL (SUM(t1e_f.FALLAMOUNT), 0) Amount
|
||||
var sqlTemp = @"/*dialect*/WITH
|
||||
SaleOrderAmount AS (
|
||||
SELECT
|
||||
t1.F_CONTRACTNUMBER,
|
||||
t1.FSALEORGID,
|
||||
ISNULL (SUM(t1e_f.FALLAMOUNT), 0) OrderAmount
|
||||
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
|
||||
WHERE
|
||||
1 = 1
|
||||
AND t1.FDOCUMENTSTATUS = 'C'
|
||||
AND t1.FCANCELSTATUS = 'A'
|
||||
AND t1e.FRETURNTYPE <> 'RETURN' -- 退补类型不等于退货
|
||||
AND t1.FSALEORGID = '{0}'
|
||||
AND t1.F_CONTRACTNUMBER = '{1}'
|
||||
GROUP BY
|
||||
t1.F_CONTRACTNUMBER,
|
||||
t1.FSALEORGID
|
||||
)
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
T_SAL_ORDER t1
|
||||
LEFT JOIN T_SAL_ORDERENTRY_F t1e_f ON t1.FID = t1e_f.FID
|
||||
WHERE
|
||||
1 = 1
|
||||
AND t1.FDOCUMENTSTATUS = 'C'
|
||||
AND t1.FCANCELSTATUS = 'A'
|
||||
AND t1e_f.FALLAMOUNT > 0
|
||||
AND t1.FID = '{0}'
|
||||
SaleOrderAmount
|
||||
";
|
||||
var sql = string.Format(sqlTemp, id);
|
||||
var sql = string.Format(sqlTemp, orgId, contractNo);
|
||||
var result = DBServiceHelper.ExecuteDynamicObject(ctx, sql);
|
||||
return Convert.ToDecimal(result[0]["Amount"]);
|
||||
if (result.Count == 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
return Convert.ToDecimal(result[0]["OrderAmount"]);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -240,5 +303,32 @@ WHERE
|
||||
}).ToList();
|
||||
return dataRow;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新销售订单K3退货金额,云星空退货金额,累计可开票金额,
|
||||
/// </summary>
|
||||
/// <param name="orgId">销售组织</param>
|
||||
/// <param name="contractNo">纸质合同号</param>
|
||||
/// <param name="orderAmount">订单金额</param>
|
||||
/// <param name="retrunAmount">云星空退货金额</param>
|
||||
/// <param name="k3retrunAmount">K3退货金额</param>
|
||||
/// <returns></returns>
|
||||
public int UpdateSaleOrderOrderAmountAndRetrunAmount(string orgId, string contractNo, decimal orderAmount, decimal retrunAmount, decimal k3retrunAmount)
|
||||
{
|
||||
var sqlTemp = @"/*dialect*/UPDATE t1
|
||||
SET
|
||||
t1.F_K3returnAmount = {2}, -- k3退货金额
|
||||
t1.F_ALLRETURNAMOUNT = {3}, -- 退货金额
|
||||
t1.F_TOTALINVOICEAMOUNT = {4} - {2} - {3} -- 订单总金额-云星空退货金额-K3WISE退货金额
|
||||
FROM
|
||||
T_SAL_ORDER t1
|
||||
WHERE
|
||||
1 = 1
|
||||
AND t1.FSALEORGID = '{0}'
|
||||
AND t1.F_CONTRACTNUMBER = '{1}'
|
||||
";
|
||||
var sql = string.Format(sqlTemp, orgId, contractNo, k3retrunAmount, retrunAmount, orderAmount);
|
||||
return DBServiceHelper.Execute(ctx, sql);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,6 +91,59 @@ WHERE
|
||||
return DBServiceHelper.Execute(ctx, sql);
|
||||
}
|
||||
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user