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 GZ_LTHPilot_ORDER.SqlManage { class SqlManage { //查询生产订单的FID和FENTRYID public static DynamicObjectCollection GetPRD_MOFIDAndFENTRYID(Context ctx, string FID) { string sql = string.Format(@"/*dialect*/ SELECT A.FID AS FID,B.FENTRYID AS FENTRYID FROM T_PRD_MO A INNER JOIN T_PRD_MOENTRY B ON A.FID = B.FID WHERE A.FID = '{0}'", FID); //返回对象 return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //根据生产用料清单的FID,查询生产用料清单生产车间字段信息 public static DynamicObjectCollection GetPRD_PPBOMFWorkshopID(Context ctx, string FID) { string sql = string.Format(@"/*dialect*/ SELECT C.FNAME AS FNAME, A.FID AS FID, A.FPrdOrgId AS FPrdOrgId, D.FNAME AS OEGFNAME FROM T_PRD_PPBOM A INNER JOIN T_BD_DEPARTMENT_L C ON C.FDEPTID = A.FWORKSHOPID INNER JOIN T_ORG_ORGANIZATIONS_L D ON A.FPRDORGID = D.FORGID WHERE A.FID = {0} ", FID); //返回对象 return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //根据生产用料清单的FId,查询生产用料清单的明细;仓库名称;组织ID public static DynamicObjectCollection GetPRD_PPBOMFStockID(Context ctx, string FID) { string sql = string.Format(@"/*dialect*/ SELECT B.FENTRYID AS FENTRYID, CL.FNAME AS FNAME FROM T_PRD_PPBOM A INNER JOIN T_PRD_PPBOMENTRY_C B ON A.FID = B.FID --关联生产用料清单明细表 INNER JOIN T_BD_STOCK C ON B.FSTOCKID = C.FSTOCKID INNER JOIN T_BD_STOCK_L CL ON C.FSTOCKID = CL.FSTOCKID --关联仓库信息表,获取仓库名称 WHERE A.FID = '{0}' ", FID); //返回对象 return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //生产用料清单明细为半成品仓,更改是否关键件字段 public static void UpdatePRD_PPBOMFIsKeyComponent(Context ctx,string FENTRYID) { string sql = string.Format(@"/*dialect*/ update T_PRD_PPBOMENTRY_C SET FIsKeyComponent = '1' WHERE FENTRYID = '{0}' ",FENTRYID); DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //生产用料清单明细为包材仓,更改发料方式 public static void UpdatePRD_PPBOMFIssueType(Context ctx, string FENTRYID) { string sql = string.Format(@"/*dialect*/ update T_PRD_PPBOMENTRY_C SET FIssueType = '7' WHERE FENTRYID = '{0}' ", FENTRYID); DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //生产用料清单明细为包装结构件仓和装配结构件仓,更改发料方式和倒冲时机,拨出组织 public static void UpdatePRD_PPBOMFIssueTypeAndFBackFlushType(Context ctx, string FENTRYID, string ZZID) { string sql = string.Format(@"/*dialect*/ update T_PRD_PPBOMENTRY_C SET FIssueType = '4',FBackFlushType = '3',FSrcTransOrgId = '{1}' WHERE FENTRYID = '{0}' ", FENTRYID,ZZID); DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //生产用料清单明细为包装结构件仓和装配结构件仓,更改拔出仓库为仓库 public static void UpdateFSRCTRANSSTOCKID(Context ctx, string FENTRYID) { string sql = string.Format(@"/*dialect*/ update T_PRD_PPBOMENTRY_C SET FSRCTRANSSTOCKID = FSTOCKID WHERE FENTRYID = '{0}' ", FENTRYID); DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //生产用料清单明细为包装结构件仓和装配结构件仓,更改完拔出仓库为仓库,修改仓库为仓库编码为68的 public static void UpdateFSTOCKID(Context ctx, string FENTRYID) { string sql = string.Format(@"/*dialect*/ update T_PRD_PPBOMENTRY_C SET FSTOCKID = '1442951' WHERE FENTRYID = '{0}' ", FENTRYID); DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //生产用料清单生产组织为珠海派诺,生产车间为:焊接车间、贴片车间、储能车间;生产车间,更改是否关键件字段,过滤条件为FID public static void UpdatePRD_PPBOMFIDFIsKeyComponent(Context ctx, string FID) { string sql = string.Format(@"/*dialect*/ update T_PRD_PPBOMENTRY_C SET FIsKeyComponent = '1' WHERE FID = '{0}' ", FID); DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //获取委外订单的FID和FENTRYID public static DynamicObjectCollection GetSUB_REQORDERFIDAndFENTRYIDS(Context ctx, string FID) { string sql = string.Format(@"/*dialect*/ SELECT A.FID AS FID, B.FENTRYID AS FENTRYID FROM T_SUB_REQORDER A INNER JOIN T_SUB_REQORDERENTRY B ON A.FID = B.FID WHERE A.FID = '{0}' ", FID); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //获取委外用料清单的委外组织 public static DynamicObjectCollection GetSUB_PPBOMFSubOrgId(Context ctx, string FID) { string sql = string.Format(@"/*dialect*/ SELECT A.FID AS FID, B.FNAME AS FNAME FROM T_SUB_PPBOM A INNER JOIN T_ORG_ORGANIZATIONS_L B ON A.FSubOrgId = B.FORGID WHERE A.FID = {0} ", FID); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //根据委外用料清单的生产组织为珠海派诺,更改明细行是否关机键 //生产用料清单生产组织为珠海派诺,生产车间为:焊接车间、贴片车间、储能车间;生产车间,更改是否关键件字段,过滤条件为FID public static void UpdateSUB_PPBOMFIsKeyComponent(Context ctx, string FID) { string sql = string.Format(@"/*dialect*/ update T_SUB_PPBOMENTRY_C SET FIsKeyComponent = '1' WHERE FID = '{0}' ", FID); DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //查询收款单源单明细的源单类型为应收单查询销售订单编号的SQL语句 public static DynamicObjectCollection GetRECEIVEBILLFSRCBILLNOAndFREALRECAMOUNTFOR(Context ctx,string FID) { string sql = string.Format(@"/*dialect*/ SELECT G.FSoorDerno AS FSoorDerno --销售订单单据编号 ,B.FREALRECAMOUNTFOR AS FALLAMOUNTFOR_D --核销的价格 FROM T_AR_RECEIVEBILL A INNER JOIN T_AR_RECEIVEBILLSRCENTRY B ON A.FID = B.FID INNER JOIN T_AR_RECEIVEBILLSRCENTRY_LK C ON B.FENTRYID = C.FENTRYID -- 关联收款单的LK表 INNER JOIN T_AR_RECEIVABLE D ON C.FSBILLID = D.FID INNER JOIN T_AR_RECEIVABLEENTRY E ON E.FID = D.FID INNER JOIN T_AR_RECEIVABLEENTRY_LK F ON E.FENTRYID = F.FENTRYID AND F.FALLAMOUNTFOR_D <> 0 INNER JOIN T_SAL_OUTSTOCKENTRY_R G ON G.FID = F.FSBILLID AND F.FSID = G.FENTRYID WHERE A.FID = '{0}' AND B.FSRCBILLTYPEID = 'AR_receivable' AND A.FSALEORGID <> '100302' ", FID); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //更新销售订单表头的累计核销金额 public static void UpdateOrderF_AMOUNTNew(Context ctx,string Fbillno,string FREALRECAMOUNTFOR) { string sql = string.Format(@"/*dialect*/ update T_SAL_ORDER SET F_AMOUNT = F_AMOUNT+{1} WHERE FBILLNO = '{0}' ", Fbillno,FREALRECAMOUNTFOR); DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //更新销售订单表头的累计核销金额 public static void UpdateOrderF_AMOUNTOld(Context ctx, string Fbillno, string FREALRECAMOUNTFOR) { string sql = string.Format(@"/*dialect*/ update T_SAL_ORDER SET F_AMOUNT = F_AMOUNT-{1} WHERE FBILLNO = '{0}' ", Fbillno, FREALRECAMOUNTFOR); DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //获取预收款单的销售订单源单编号 public static DynamicObjectCollection GetRECEIVEBILLFSRCBILLNOS(Context ctx,string FID) { string sql = string.Format(@" SELECT B.FSRCBILLNO AS FSRCBILLNO, --源单单据编号 B.FREALRECAMOUNTFOR AS FREALRECAMOUNTFOR_S --源单本次实收金额(本位币) FROM T_AR_RECEIVEBILL A INNER JOIN T_AR_RECEIVEBILLSRCENTRY B ON A.FID = B.FID WHERE A.FID = '{0}' AND A.FSETTLEORGID != '100302' AND B.FREALRECAMOUNTFOR > 0 AND B.FSRCBILLTYPEID = 'SAL_SaleOrder' ", FID); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //获取应收单下推收款退款单的销售订单编号 public static DynamicObjectCollection GetREFUNDBILLFSRCBILLNOS(Context ctx, string FID) { string sql = string.Format(@" SELECT G.FOrderNo AS FOrderNo --销售订单编号 ,F.FALLAMOUNTFOR_D AS FALLAMOUNTFOR_D --核销金额 FROM T_AR_REFUNDBILL A INNER JOIN T_AR_REFUNDBILLSRCENTRY B ON A.FID = B.FID INNER JOIN T_AR_REFUNDBILLSRCENTRY_LK C ON B.FENTRYID = C.FENTRYID -- 关联收款单的LK表 INNER JOIN T_AR_RECEIVABLE D ON C.FSBILLID = D.FID INNER JOIN T_AR_RECEIVABLEENTRY E ON D.FID = E.FID INNER JOIN T_AR_RECEIVABLEENTRY_LK F On E.FENTRYID = F.FENTRYID AND F.FALLAMOUNTFOR_D <> 0 INNER JOIN T_SAL_RETURNSTOCKENTRY G ON G.FID = F.FSBILLID AND F.FSID = G.FENTRYID WHERE A.FID = '{0}' AND B.FSOURCETYPE = 'AR_receivable' AND A.FSALEORGID <> '100302' ",FID); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //获取销售报价单下载WORD内容 public static DataSet GetTempModelData(Context ctx, string FID, string FType) { //定义SQL,调用物料视图 string sql = string.Format(@"/*dialect*/ exec GetTempModelData_XSBJD_GZTH '{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; } //根据销售出库单的FID,获取销售订单的FENTRYID public static DynamicObjectCollection GetSal_ORderFEntryIdAndFid(Context ctx,string FID) { string sql = string.Format(@"/*dialect*/ EXEC GETSAL_ORDERFidAndFENTRYID_GZTH '{0}' ",FID); //执行SQL return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; } //根据销售出库单的FID,反写销售订单新旧系统未出库数量 public static void UpdateSal_OrderF_notoutQty(Context ctx,string FENTRYID) { string sql = string.Format(@"/*dialect*/ EXEC UpdateSAL_ORDERF_notoutQty '{0}' ",FENTRYID); DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //根据销售退货单的FID,获取销售订单的FENTRYID public static DynamicObjectCollection GETRETURNSTOCKSal_ORDERFidAndFentryid(Context ctx,string FID) { string sql = string.Format(@"/*dialect*/ EXEC GETRETURNSTOCKSal_ORDERFidAndFentryid_GZTH '{0}' ",FID); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; } /*当物料为M开头,发料方式设置为调拨倒冲,倒冲时机设置为入库倒冲,拨出组织设置为珠海派诺,拨出组织为空, 仓库设置为 : 68*/ public static void UpdatePRD_PPBOMLIkeM(Context ctx,string FID) { string sql = string.Format(@"/*dialect*/ EXEC UpdatePRD_PPBOMLIkeM_GZTH '{0}' ",FID); DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //根据销售订单的纸质合同号,修改销售订单的销售类型字段 public static void UpdateSal_OrderF_VRYF_Combo_lsn(Context ctx,string FID) { string sql = string.Format(@"/*dialect*/ EXEC GZTH_UpdateSal_OrderF_VRYF_Combo_lsn '{0}' ",FID); DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } } }