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 { /// /// 销售发票服务类 /// public class SaleSicsService { private Context ctx; public SaleSicsService(Context ctx) { this.ctx = ctx; } /// /// 刷新销售订单累计开票金额 /// /// /// 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) 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 AND v1.FSALEORGID = '{0}' AND v1e.F_CONTRACTNO = '{1}' UNION ALL SELECT '100302' FSALEORGID, -- 销售组织 合同号 F_PaperNumber, -- 纸质合同号 SUM(ISNULL (发票金额, 0)) FAFTERTOTALTAX, -- 价税合计本币 SUM(ISNULL (发票原币金额, 0)) FAFTERTOTALTAXFOR -- 价税合计 FROM oldk3ICSale0802 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); } /// /// /// /// /// 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); } } }