using Kingdee.BOS; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.ServiceHelper; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Pilot_KD_Parino.SQL { public class SqlManage_yuyubo { /// /// 获取核销收款单信息 /// /// public static DynamicObjectCollection GetWriteReceiveDate3(Context ctx, string FORGID,string where ) { //定义SQL,调用物料视图 string sql = string.Format($@"/*dialect*/ SELECT A.FID, A.FSALEERID, A.FCONTACTUNIT, A.FREMARK, A.F_AMOUNT as 'FYAMOUNT', A.FBILLNO AS 'FBILLNO', DATEDIFF(D, A.FDATE, GETDATE()) AS 'FDATE', A.FRECAMOUNT AS 'FALLAMOUNT', A.FRECAMOUNTFOR as 'FALLAMOUNTY', A.FRECAMOUNT-A.F_AMOUNT as 'FDAMOUNT', A.FCURRENCYID as 'FCurr', A.FCREATORID as 'FCREATORID' FROM T_AR_RECEIVEBILL A WHERE A.FDOCUMENTSTATUS = 'C' AND A.FISINIT != '1' AND A.FRECAMOUNT != A.F_AMOUNT AND A.FRECAMOUNT >= A.F_AMOUNT {where} order by FCONTACTUNIT,A.FID desc ", FORGID); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } /// /// 获取核销销售订单信息 /// /// public static DynamicObjectCollection GetWriteOrderDate3(Context ctx, string FORGID,string where ) { //定义SQL,调用物料视图 AND A.FBusinessType='NORMAL' /* * SELECT case when FBusinessType='NORMAL' then (FDAMOUNT2+[整单累计退货金额]) else 0 end AS FDAMOUNT, * FROM * */ string sql = string.Format($@"/*dialect*/ SELECT FDAMOUNT2 as FDAMOUNT, * FROM ( SELECT A.FID, A.FBusinessType, A.FSALERID, A.F_CONTRACTNUMBER, A.FCUSTID, A.F_PROJECTNAME, A.FCREATORID, A.FBILLNO AS 'FBILLNO', DATEDIFF(D, A.FDATE, GETDATE()) AS 'FDATE', C.FBILLALLAMOUNT_LC AS 'FALLAMOUNT' , C.FBILLALLAMOUNT as 'FALLAMOUNTY', ISNULL(A.F_AMOUNT,0) as 'FYAMOUNT', C.FBILLALLAMOUNT_LC-A.F_AMOUNT as 'FDAMOUNT2', C.FSETTLECURRID as 'FCurr', case when DATEDIFF(MONTH, A.FDATE, GETDATE())<3 then 'True' else 'False' end as 'FIs30' , '销售订单' as 'FTYPE', 0.00 AS BenCi, CASE WHEN A.F_Ordercategory ='670cca03263357' THEN 'P类合同' else '非P类合同' end as F_Ordercategory2, A.F_Ordercategory AS F_Ordercategory, ( SELECT SUM(F_GeneralInvoice) AS '发票总金额' FROM ( SELECT F_PaperNumber, t0.FSALEORGID, CASE WHEN F_ORDERCATEGORY ='67283ced82f38d' THEN FAFTERTOTALTAX WHEN F_ORDERCATEGORY !='67283ced82f38d' AND F_GENERALINVOICE='Y' THEN 0 ELSE FAFTERTOTALTAX END AS F_GeneralInvoice --FAFTERTOTALTAX FROM T_IV_SALESIC t0 WITH(NOLOCK) INNER JOIN T_SAL_ORDER aa1 WITH(NOLOCK) ON t0.F_PAPERNUMBER=aa1.F_contractnumber AND t0.FSETTLEORGID=aa1.FSALEORGID --WHERE F_PaperNumber='P202502070004' ) AD WHERE AD.F_PaperNumber = A.F_contractnumber AND ad.FSALEORGID=a.FSALEORGID GROUP BY F_PaperNumber, FSALEORGID ) as FInvoiceAmount, (select SUM(bb.F_TotalAmoun) from dbo.T_SAL_DELIVERYNOTICE bb WITH(NOLOCK) WHERE bb.FSaleOrgId=a.FSALEORGID AND bb.F_Papercontract=a.F_contractnumber AND 30 >= DATEDIFF(DAY,bb.FDATE,GETDATE()) AND bb.FDocumentStatus='C' ) as FaHuoAmount30Days, ( SELECT SUM(F_GeneralInvoice) AS '发票总金额' FROM ( SELECT F_PaperNumber, t0.FSALEORGID, CASE WHEN F_ORDERCATEGORY ='67283ced82f38d' THEN FAFTERTOTALTAX WHEN F_ORDERCATEGORY !='67283ced82f38d' AND F_GENERALINVOICE='Y' THEN 0 ELSE FAFTERTOTALTAX END AS F_GeneralInvoice FROM T_IV_SALESIC t0 WITH(NOLOCK) INNER JOIN T_SAL_ORDER aa1 WITH(NOLOCK) ON t0.F_PAPERNUMBER=aa1.F_contractnumber AND t0.FSETTLEORGID=aa1.FSALEORGID WHERE 30 >= DATEDIFF(DAY,t0.FDATE,GETDATE()) ) AD WHERE AD.F_PaperNumber = A.F_contractnumber AND ad.FSALEORGID=a.FSALEORGID GROUP BY F_PaperNumber, FSALEORGID ) as FInvoiceAmount30Days ,[整单累计退货金额]=ISNULL(( SELECT SUM(CC.FBillAllAmount_LC) AS '累计退货金额' FROM T_SAL_ORDER AA INNER JOIN T_SAL_ORDERFIN CC ON CC.FID =AA.FID WHERE AA.FDOCUMENTSTATUS= 'C' AND ISNULL(AA.F_CONTRACTNUMBER,'') !='' AND AA.F_contractnumber LIKE A.F_contractnumber+'%' AND AA.fid<>A.fid AND aa.FSALEORGID=a.FSALEORGID),0) FROM T_SAL_ORDER A INNER JOIN T_SAL_ORDERFIN C ON C.FID =A.FID WHERE C.FBILLALLAMOUNT_LC >0 AND A.FDOCUMENTSTATUS = 'C' AND ISNULL(A.F_CONTRACTNUMBER,'')!='' AND (A.F_AMOUNT < C.FBILLALLAMOUNT_LC or A.F_AMOUNT IS NULL) {where} ) A ORDER BY A.FCUSTID,a.FDATE "); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } /// /// 获取未核销的发货通知单信息 /// /// public static DynamicObjectCollection GetFaHuoTongZhiDan(Context ctx, string FORGID, string where) { //定义SQL,调用物料视图 AND A.FBusinessType='NORMAL' /* * SELECT case when FBusinessType='NORMAL' then (FDAMOUNT2+[整单累计退货金额]) else 0 end AS FDAMOUNT, * FROM * */ string sql = string.Format($@"/*dialect*/ SELECT FDAMOUNT2 as FDAMOUNT, * FROM ( SELECT A.FID, A.FBusinessType, A.FSalesManID as FSALERID, A.F_Papercontract as F_CONTRACTNUMBER, A.FCustomerID as FCUSTID, A.F_PROJECTNAME, A.FCREATORID, A.FBILLNO AS 'FBILLNO', DATEDIFF(D, A.FDATE, GETDATE()) AS 'FDATE', C.FBILLALLAMOUNT_LC AS 'FALLAMOUNT' , C.FBILLALLAMOUNT as 'FALLAMOUNTY', ISNULL(A.F_AMOUNT,0) as 'FYAMOUNT', C.FBILLALLAMOUNT_LC-A.F_AMOUNT as 'FDAMOUNT2', C.FSETTLECURRID as 'FCurr', case when DATEDIFF(MONTH, A.FDATE, GETDATE())<3 then 'True' else 'False' end as 'FIs30' , '发货通知单' as 'FTYPE', 0.00 AS BenCi, '' as F_Ordercategory2, '' AS F_Ordercategory, ( SELECT SUM(F_GeneralInvoice) AS '发票总金额' FROM ( SELECT F_PaperNumber, t0.FSALEORGID, CASE WHEN F_ORDERCATEGORY ='67283ced82f38d' THEN FAFTERTOTALTAX WHEN F_ORDERCATEGORY !='67283ced82f38d' AND F_GENERALINVOICE='Y' THEN 0 ELSE FAFTERTOTALTAX END AS F_GeneralInvoice --FAFTERTOTALTAX FROM T_IV_SALESIC t0 WITH(NOLOCK) INNER JOIN T_SAL_ORDER aa1 WITH(NOLOCK) ON t0.F_PAPERNUMBER=aa1.F_contractnumber AND t0.FSETTLEORGID=aa1.FSALEORGID --WHERE F_PaperNumber='P202502070004' ) AD WHERE AD.F_PaperNumber = A.F_Papercontract AND ad.FSALEORGID=a.FSALEORGID GROUP BY F_PaperNumber, FSALEORGID ) as FInvoiceAmount, 0 as FaHuoAmount30Days, 0 as FInvoiceAmount30Days ,[整单累计退货金额]=0 FROM T_SAL_DELIVERYNOTICE A INNER JOIN T_SAL_DELIVERYNOTICEFIN C ON C.FID =A.FID WHERE C.FBILLALLAMOUNT_LC > 0 AND A.FDOCUMENTSTATUS = 'C' AND ISNULL(A.F_Papercontract,'')!='' AND (A.F_AMOUNT < C.FBILLALLAMOUNT_LC or A.F_AMOUNT IS NULL) {where} ) A ORDER BY A.FCUSTID,a.FID desc "); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } } }