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 '{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);
}
}
}