using Kingdee.BOS; using Kingdee.BOS.Log; 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 { /// /// 更新销售订单核销金额 /// /// public static void UpdateSalOrderAmount(Context ctx, string FID) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ EXEC UpdateSalOrderAmount {0} ", FID); //执行SQL DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } /// /// 反审核,更新销售订单核销金额 /// /// public static void FUpdateSalOrderAmount(Context ctx, string FID) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ EXEC FUpdateSalOrderAmount {0} ", FID); Logger.Error("FUpdateSalOrderAmount", sql, new Exception()); //执行SQL DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } /// /// 获取销售订单数据(创建 otherItem 对象) /// /// public static DynamicObjectCollection GetSaleOrderData4(Context ctx, string FID) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ EXEC GetSaleOrderData4 {0} ", FID); //执行SQL return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } /// /// 获取核销收款单信息 /// /// public static DynamicObjectCollection GetAutoWrireRecordId(Context ctx, string FBILLNO) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ SELECT FID FROM T_AutoWrireRecordEntry WHERE FBILLNO2 = '{0}' UNION ALL SELECT FID FROM T_AutoWrireRecordEntry2 WHERE FBILLNO3 = '{0}' ", FBILLNO); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } /// /// 获取核销收款单信息 /// /// public static DynamicObjectCollection GetWriteReceiveDate(Context ctx, string FORGID, string FCUSTID) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ EXEC GetWriteReceiveDate '{0}','{1}' ", FORGID, FCUSTID); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } /// /// 获取核销收款单信息 /// /// public static DynamicObjectCollection GetWriteReceiveDate2(Context ctx, string FORGID, string FCUSTID) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ SELECT A.FCONTACTUNIT, A.FREMARK, A.FBILLNO AS 'FBILLNO', DATEDIFF(D, A.FDATE, GETDATE()) AS 'FDATE', A.FRECAMOUNT AS 'FALLAMOUNT', A.FRECAMOUNTFOR as 'FALLAMOUNTY', A.FCURRENCYID as 'FCurr' FROM T_AR_RECEIVEBILL A LEFT JOIN T_AutoWrireRecordEntry2 B ON B.FBILLNO3 = A.FBILLNO WHERE B.FBILLNO3 IS NULL AND A.FCONTACTUNIT in ({1}) AND A.FDOCUMENTSTATUS = 'C' AND A.FSALEORGID = {0}", FORGID, FCUSTID); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } /// /// 获取核销收款单信息 /// /// public static DynamicObjectCollection GetWriteReceiveDate3(Context ctx, string FORGID) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ SELECT 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.FSALEORGID = {0} AND A.FRECAMOUNT != A.F_AMOUNT AND A.FRECAMOUNT >= A.F_AMOUNT", FORGID); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } /// /// 获取核销销售订单信息 /// /// public static DynamicObjectCollection GetWriteOrderDate(Context ctx, string FORGID, string FCUSTID) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ EXEC GetWriteOrderDate '{0}','{1}' ", FORGID, FCUSTID); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } /// /// 获取核销销售订单信息 /// /// public static DynamicObjectCollection GetWriteOrderDate2(Context ctx, string FORGID, string FCUSTID) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ SELECT * FROM ( SELECT 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', C.FSETTLECURRID as 'FCurr', case when DATEDIFF(MONTH, A.FDATE, GETDATE())<3 then 'True' else 'False' end as 'FIs30' , '销售订单' as 'FTYPE' FROM T_SAL_ORDER A INNER JOIN T_SAL_ORDERFIN C ON C.FID =A.FID LEFT JOIN T_AutoWrireRecordEntry B ON B.FBILLNO2 = A.FBILLNO LEFT JOIN V_ASSISTANTDATA D ON D.FENTRYID = A.F_Ordercategory WHERE B.FBILLNO2 IS NULL AND C.FBILLALLAMOUNT_LC <>0 AND A.FCUSTID in ({1}) AND A.FSALEORGID = {0} --AND DATEDIFF(MONTH, A.FDATE, GETDATE())<3 AND A.FDOCUMENTSTATUS = 'C' AND d.FNUMBER = 'P' UNION ALL SELECT A.F_PAPERCONTRACT, A.FCUSTOMERID, A.F_PROJECTNAME, A.FCREATORID, A.FBILLNO AS 'FBILLNO', DATEDIFF(D, A.FDATE, GETDATE()) AS 'FDATE', F.FALLAMOUNT AS 'FALLAMOUNT' , A.FALLAMOUNTFOR AS 'FALLAMOUNTY' , A.FCURRENCYID AS 'FCurr' , case when DATEDIFF(MONTH, A.FDATE, GETDATE())<3 then 'True' else 'False' end as 'FIs30' , '应收单' as 'FTYPE' FROM t_AR_receivable A INNER JOIN T_AR_RECEIVABLEENTRY C ON C.FID =A.FID INNER JOIN T_AR_RECEIVABLEFIN F ON F.FID = A.FID INNER JOIN T_SAL_ORDER E ON E.FBILLNO = C.FORDERNUMBER LEFT JOIN T_AutoWrireRecordEntry B ON B.FBILLNO2 = A.FBILLNO LEFT JOIN V_ASSISTANTDATA D ON D.FENTRYID = e.F_Ordercategory WHERE B.FBILLNO2 IS NULL AND F.FALLAMOUNT <>0 AND A.FCUSTOMERID in ({1}) AND A.FSALEORGID = {0} --AND DATEDIFF(MONTH, A.FDATE, GETDATE())<3 AND A.FDOCUMENTSTATUS = 'C' AND d.FNUMBER <> 'P' ) A ORDER BY A.FTYPE,a.FDATE ", FORGID, FCUSTID); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } /// /// 获取核销销售订单信息 /// /// public static DynamicObjectCollection GetWriteOrderDate3(Context ctx, string FORGID) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ SELECT * FROM ( SELECT 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', A.F_AMOUNT as 'FYAMOUNT', C.FBILLALLAMOUNT_LC-A.F_AMOUNT as 'FDAMOUNT', C.FSETTLECURRID as 'FCurr', case when DATEDIFF(MONTH, A.FDATE, GETDATE())<3 then 'True' else 'False' end as 'FIs30' , '销售订单' as 'FTYPE' FROM T_SAL_ORDER A INNER JOIN T_SAL_ORDERFIN C ON C.FID =A.FID --LEFT JOIN T_AutoWrireRecordEntry B ON B.FBILLNO2 = A.FBILLNO LEFT JOIN V_ASSISTANTDATA D ON D.FENTRYID = A.F_Ordercategory WHERE --B.FBILLNO2 IS NULL AND C.FBILLALLAMOUNT_LC <>0 AND A.FSALEORGID = {0} --AND DATEDIFF(MONTH, A.FDATE, GETDATE())<3 AND A.FDOCUMENTSTATUS = 'C' AND ISNULL(A.F_CONTRACTNUMBER,'')!='' AND d.FNUMBER = 'P' AND A.F_AMOUNT < C.FBILLALLAMOUNT_LC AND A.F_AMOUNT != C.FBILLALLAMOUNT_LC UNION ALL SELECT A.FSALEERID, A.F_PAPERCONTRACT, A.FCUSTOMERID, A.F_PROJECTNAME, A.FCREATORID, A.FBILLNO AS 'FBILLNO', DATEDIFF(D, A.FDATE, GETDATE()) AS 'FDATE', F.FALLAMOUNT AS 'FALLAMOUNT' , A.FALLAMOUNTFOR AS 'FALLAMOUNTY' , A.F_AMOUNT as 'FYAMOUNT', F.FALLAMOUNT-A.F_AMOUNT as 'FDAMOUNT', A.FCURRENCYID AS 'FCurr' , case when DATEDIFF(MONTH, A.FDATE, GETDATE())<3 then 'True' else 'False' end as 'FIs30' , '应收单' as 'FTYPE' FROM t_AR_receivable A INNER JOIN T_AR_RECEIVABLEENTRY C ON C.FID =A.FID INNER JOIN T_AR_RECEIVABLEFIN F ON F.FID = A.FID INNER JOIN T_SAL_ORDER E ON E.FBILLNO = C.FORDERNUMBER --LEFT JOIN T_AutoWrireRecordEntry B ON B.FBILLNO2 = A.FBILLNO LEFT JOIN V_ASSISTANTDATA D ON D.FENTRYID = e.F_Ordercategory WHERE --B.FBILLNO2 IS NULL AND F.FALLAMOUNT <>0 AND A.FSALEORGID = {0} --AND DATEDIFF(MONTH, A.FDATE, GETDATE())<3 AND A.FDOCUMENTSTATUS = 'C' AND ISNULL(F_PAPERCONTRACT,'')!='' AND d.FNUMBER <> 'P' AND A.F_AMOUNT < F.FALLAMOUNT AND A.F_AMOUNT != F.FALLAMOUNT ) A ORDER BY A.FTYPE,a.FDATE ", FORGID); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } /// /// 获取BMP流程信息 /// /// public static void UpdateData(Context ctx, string FID, String sfsj) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ UPDATE T_SAL_ORDER SET FNOTE = FNOTE + '{0}' WHERE FID = '{1}' ", sfsj, FID); DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } /// /// 获取BMP流程信息 /// /// public static DynamicObjectCollection GetBmpData(Context ctx, string F_contractnumber) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ select * from erptobpm.pilotdb.dbo.v_erp_CustMadeAgain where ContactNo = '{0}' ", F_contractnumber); //执行SQL return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; } /// /// 更新特价 /// /// public static DynamicObjectCollection UPDATESpecialContracts(Context ctx, string FID) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ exec UPDATESpecialContracts '{0}' ", FID); //执行SQL return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; } /// /// 更新销售订单SN信息 /// /// public static void UpdateBMPSN(Context ctx, string FID, string SN) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ Update T_SAL_ORDER SET F_FailorBPM = '{1}' WHERE FID ={0} ", FID, SN); //执行SQL DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } /// /// 获取销售订单数据(创建BPM流程发起) /// /// public static DynamicObjectCollection GetSaleOrderData3(Context ctx, string FID) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ EXEC GetSaleOrderData3 {0} ", FID); //执行SQL return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } /// /// 获取销售订单数据(创建BPM流程发起) /// /// public static DynamicObjectCollection GetSaleOrderData2(Context ctx, string FID) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ EXEC GetSaleOrderData2 {0} ", FID); //执行SQL return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } /// /// 获取销售订单数据(创建BPM流程发起) /// /// public static DynamicObjectCollection GetSaleOrderData(Context ctx, string FID) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ EXEC GetSaleOrderData {0} ", FID); //执行SQL return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } /// /// 判断该组织是否存在工程项目 /// /// public static void UpdateItemData(Context ctx, string FID, string FlexNumber) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ EXEC UpdateItemData {0},{1}", FlexNumber, FID); //执行SQL var result = DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } /// /// 判断该组织是否存在工程项目 /// /// public static DynamicObjectCollection CheckItem(Context ctx, string FlexNumber, string FORGID) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ EXEC CheckItem '{0}','{1}'", FlexNumber, FORGID); //执行SQL var result = DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); return result; } /// /// 获取纸质合同号 /// /// public static string GetFlexNumber(Context ctx, string FID) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ EXEC GetFlexNumber {0}", FID); //执行SQL var result = DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); if (result.Count > 0) { return Convert.ToString(result[0]["F_contractnumber"]); } else { return ""; } } /// /// 获取文件名 /// /// public static string GetFolderName(Context ctx, string FID) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ EXEC GetFolderName {0}", FID); //执行SQL var result = DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); if (result.Count > 0) { return Convert.ToString(result[0]["FolderName"]); } else { return ""; } } /// /// 更新销售订单创建文件夹状态 /// /// public static void UpdateSaleOrderisdoccreate(Context ctx, string FID, string Path) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ Update T_SAL_ORDER SET Fisdoccreate = 1,Fdocpath = '{1}' WHERE FID ={0} ", FID, Path); //执行SQL DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } /// /// 获取内容 /// /// public static DataSet GetTempModelData(Context ctx, string FID, string FType) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ exec GetTempModelData '{0}','{1}' ", FID, FType); //执行SQL return DBServiceHelper.ExecuteDataSet(ctx, sql); } /// /// 获取模板地址 /// /// public static DynamicObjectCollection GetTempModelPath(Context ctx, string FID) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ SELECT FTempPath FROM T_TempModelPath WHERE FKeyId = '{0}' ", FID); //执行SQL return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; } /// /// 更新销售订单的是否分摊 /// /// public static DynamicObjectCollection UpdateFlexNumber(Context ctx, string FID) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ exec UpdateFlexNumber '{0}' ", FID); //执行SQL return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; } /// /// 更新销售订单的是否分摊 /// /// public static DynamicObjectCollection UpdateSaleOrderFisShared(Context ctx) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ UPDATE A SET FIsShare = case when b.FID is null then '否' else '是' end FROM T_SAL_ORDER A LEFT JOIN T_PerformanceSharing B ON A.FBILLNO = B.FSOURCEBILLNO"); //执行SQL return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; } /// /// 更新销售订单的物流单号 /// /// public static DynamicObjectCollection UpdateSaleOrderLogisticsNumber(Context ctx, string FID) { //定义SQL,调用物料视图 string sql = string.Format(" EXEC UpdateSaleOrderLogisticsNumber {0}", FID); //执行SQL return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; } /// /// 获取采购订单最大的入库日期 /// /// public static DynamicObjectCollection GetInStockDate(Context ctx) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ select CONCAT( FPOORDERENTRYID,'-', A.FMATERIALID) as 'FKey',MAX(CONVERT(NVARCHAR(10), B.FDATE,23)) AS 'FDate' from T_STK_INSTOCKENTRY A INNER JOIN T_STK_INSTOCK B ON A.FID = B.FID WHERE FPOORDERENTRYID <> 0 GROUP BY CONCAT(FPOORDERENTRYID, '-', A.FMATERIALID)"); //执行SQL return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; } } }