Piolot_Order_TH/SQL/SqlManage.cs
李狗蛋 63782940f4 1
2025-04-22 19:26:31 +08:00

387 lines
19 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using FarPoint.Excel.EntityClassLibrary.SpreadsheetML;
using Kingdee.BOS;
using Kingdee.BOS.App.Data;
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);
}
/// <summary>
/// 获取模板地址
/// </summary>
/// <returns></returns>
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);
}
//根据红字发票FID获取查询出是否由蓝字发票进行下推获取蓝字发票的FIDFENTRYID
public static DynamicObjectCollection GetBuleFpFID(Context ctx,string FID)
{
string sql = string.Format(@"/*dialect*/
EXEC GetLPFid_GZTH '{0}'
",FID);
DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
string LpFidSql = string.Format(@"/*dialect*/
SELECT * FROM GZ_AuditTHHZFP
");
return DBServiceHelper.ExecuteDynamicObject(ctx, LpFidSql.ToString(), null, null, CommandType.Text, null);
}
//根据红字发票查询蓝字发票的FID查询销售订单的FID和FENTRYID开票数量和开票金额
public static DynamicObjectCollection GetHZFPSal_ORDERFidAndFentryid(Context ctx,string FID)
{
string sql = string.Format(@"/*dialect*/
EXEC GetIV_SALESICSal_OrderFID_GZTH '{0}'
", FID);
DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
//更新GZTH_AuditSal_OrderFP表
string UpSql = string.Format(@"/*dialect*/
UPDATE A
SET A.[开票数量] = B.[红字发票数量],A.[开票金额] = B.[红字发票金额]
FROM GZTH_AuditSal_OrderFP A
INNER JOIN GZ_AuditTHHZFP B ON A.开票FID = B.蓝字发票FID AND A.开票FENTRYID = B.蓝字发票FENTRYID
");
DBServiceHelper.ExecuteDynamicObject(ctx, UpSql.ToString(), null, null, CommandType.Text, null);
//查询表并且返回表的数据
string getSql = string.Format(@"/*dialect*/
SELECT * FROM GZTH_AuditSal_OrderFP
");
return DBServiceHelper.ExecuteDynamicObject(ctx, getSql.ToString(), null, null, CommandType.Text, null);
}
//根据获取的销售订单FID和FentryId更新开票数量和开票金额
public static void UpSal_OrderKPJEAndKPSL(Context ctx,string FID,string FENTRYID,string F_INVOICEQTY,string F_F_INVOICEAMOUNT)
{
string sql = string.Format(@"/*dialect*/
EXEC TrueUpdateSal_OrderF_INVOICEQTYAndF_F_INVOICEAMOUNTAndF_invoiceAmount_TH '{0}','{1}','{2}','{3}'
",FID,FENTRYID,F_INVOICEQTY,F_F_INVOICEAMOUNT);
DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
}
//根据获取的销售订单FID和FentryId更新开票数量和开票金额(当销售订单的累计核销金额>价税合计本位币后)
public static void FalseUpSal_OrderKPJEAndKPSL(Context ctx, string FID, string FENTRYID, string F_INVOICEQTY, string F_F_INVOICEAMOUNT)
{
string sql = string.Format(@"/*dialect*/
EXEC FalseUpdateSal_OrderF_INVOICEQTYAndF_F_INVOICEAMOUNTAndF_invoiceAmount_TH '{0}','{1}','{2}','{3}'
", FID, FENTRYID, F_INVOICEQTY, F_F_INVOICEAMOUNT);
DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
}
//根据查询销售订单FID查询销售订单累计核销金额和价税合计本位币
public static DynamicObjectCollection GetSal_Order(Context ctx,string FID)
{
string sql = string.Format(@"
SELECT
A.FBILLNO AS '单据编号',
B.FBILLALLAMOUNT_LC AS '价税合计',
A.F_INVOICEAMOUNT AS '累计开票金额'
FROM T_SAL_ORDER A
INNER JOIN T_SAL_ORDERFIN B ON A.FID = B.FID
WHERE A.FID = '{0}'
AND ABS(A.F_invoiceAmount) > ABS(B.FBILLALLAMOUNT_LC)
", FID);
return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
}
//根据蓝字发票查询销售订单的FID和FENTRYID开票数量和开票金额
public static DynamicObjectCollection GetLZFPSal_ORDERFidAndFentryid(Context ctx, string FID)
{
string sql = string.Format(@"/*dialect*/
EXEC GetIV_SALESICSal_OrderFID_GZTH '{0}'
", FID);
DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null);
//查询表并且返回表的数据
string getSql = string.Format(@"/*dialect*/
SELECT * FROM GZTH_AuditSal_OrderFP
");
return DBServiceHelper.ExecuteDynamicObject(ctx, getSql.ToString(), null, null, CommandType.Text, null);
}
}
}