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);
}
///
/// 获取模板地址
///
///
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,获取查询出是否由蓝字发票进行下推,获取蓝字发票的FID,FENTRYID
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 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)
", 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);
}
//根据销售出库的FID,反写发货通知单的检验周期字段
public static DynamicObjectCollection UpdateFHTZDJYZQ(Context ctx,string FID)
{
//查询表并且返回表的数据
string getSql = string.Format(@"/*dialect*/
EXEC SaveCGRK_GZTH '{0}'
", FID);
return DBServiceHelper.ExecuteDynamicObject(ctx, getSql.ToString(), null, null, CommandType.Text, null);
}
//根据销售订单的FID,查询物料编码J开头的物联网卡使用年份必填
public static DynamicObjectCollection SaveOrder_GZTH(Context ctx, string FID)
{
//查询表并且返回表的数据
string getSql = string.Format(@"/*dialect*/
EXEC SaveOrder_GZTH '{0}'
", FID);
return DBServiceHelper.ExecuteDynamicObject(ctx, getSql.ToString(), null, null, CommandType.Text, null);
}
}
}