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 Pilot_KD_Parino.SQL
{
public class SqlManage_yuyubo
{
///
/// 更新销售订单核销金额
///
///
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);
//执行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,string where )
{
//定义SQL,调用物料视图
string sql = string.Format($@"/*dialect*/
SELECT A.FID,
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.FRECAMOUNT != A.F_AMOUNT
AND A.FRECAMOUNT >= A.F_AMOUNT {where}
order by FCONTACTUNIT,A.FID desc ", 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,string where )
{
//定义SQL,调用物料视图
string sql = string.Format($@"/*dialect*/
SELECT * FROM
(
SELECT A.FID,
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',
ISNULL(A.F_AMOUNT,0) 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',
0.00 AS BenCi,
CASE WHEN A.F_Ordercategory ='670cca03263357' THEN 'P类合同' else '非P类合同' end as F_Ordercategory2,
A.F_Ordercategory AS F_Ordercategory,
(
SELECT SUM(F_GeneralInvoice) AS '发票总金额' FROM (
SELECT F_PaperNumber, t0.FSALEORGID,
CASE WHEN F_ORDERCATEGORY ='67283ced82f38d' THEN FAFTERTOTALTAX
WHEN F_ORDERCATEGORY !='67283ced82f38d' AND F_GENERALINVOICE='Y' THEN 0 ELSE FAFTERTOTALTAX END AS F_GeneralInvoice
--FAFTERTOTALTAX
FROM T_IV_SALESIC t0 WITH(NOLOCK)
INNER JOIN T_SAL_ORDER aa1 WITH(NOLOCK) ON t0.F_PAPERNUMBER=aa1.F_contractnumber AND t0.FSETTLEORGID=aa1.FSALEORGID
--WHERE F_PaperNumber='P202502070004'
) AD WHERE AD.F_PaperNumber = A.F_contractnumber AND ad.FSALEORGID=a.FSALEORGID
GROUP BY F_PaperNumber, FSALEORGID
) as FInvoiceAmount
FROM T_SAL_ORDER A
INNER JOIN T_SAL_ORDERFIN C ON C.FID =A.FID
WHERE
C.FBILLALLAMOUNT_LC <>0
AND A.FDOCUMENTSTATUS = 'C' AND ISNULL(A.F_CONTRACTNUMBER,'')!=''
AND (A.F_AMOUNT < C.FBILLALLAMOUNT_LC
or A.F_AMOUNT IS NULL) AND A.FBusinessType='NORMAL' {where}
) A ORDER BY A.FCUSTID,a.FID desc ");
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;
}
}
}