2025-03-14 10:00:24 +08:00
|
|
|
|
using Kingdee.BOS.App.Data;
|
|
|
|
|
|
using Kingdee.BOS;
|
|
|
|
|
|
using Kingdee.BOS.Contracts.Report;
|
|
|
|
|
|
using Kingdee.BOS.Core.Report;
|
|
|
|
|
|
using Kingdee.BOS.Orm.DataEntity;
|
|
|
|
|
|
using Kingdee.BOS.Util;
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using System.Threading.Tasks;
|
2025-06-21 11:07:26 +08:00
|
|
|
|
using Pilot.Report.Exploitation.Common;
|
2025-07-09 15:13:33 +08:00
|
|
|
|
using Kingdee.BOS.Log;
|
2025-03-14 10:00:24 +08:00
|
|
|
|
|
|
|
|
|
|
namespace Pilot.Report.Exploitation.SpecialDetails
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 特价明细报表
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[Description("【列表插件】特价明细报表【报表】"), HotUpdate]
|
|
|
|
|
|
public class SpecialDetailsReport : SysReportBaseService
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 初始化
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public override void Initialize()
|
|
|
|
|
|
{
|
|
|
|
|
|
base.Initialize();
|
|
|
|
|
|
this.ReportProperty.ReportName = new LocaleValue("特价明细表", base.Context.UserLocale.LCID);
|
|
|
|
|
|
this.ReportProperty.IsUIDesignerColumns = false;
|
|
|
|
|
|
// 简单账表类型:普通、树形、分页
|
|
|
|
|
|
this.ReportProperty.ReportType = ReportType.REPORTTYPE_NORMAL;
|
|
|
|
|
|
this.IsCreateTempTableByPlugin = true;
|
|
|
|
|
|
//
|
|
|
|
|
|
this.IsCreateTempTableByPlugin = true;
|
|
|
|
|
|
//
|
|
|
|
|
|
this.ReportProperty.IsGroupSummary = true;
|
|
|
|
|
|
//
|
|
|
|
|
|
this.ReportProperty.SimpleAllCols = false;
|
|
|
|
|
|
// 单据主键:两行FID相同,则为同一单的两条分录,单据编号可以不重复显示
|
|
|
|
|
|
this.ReportProperty.PrimaryKeyFieldName = "FID";
|
|
|
|
|
|
//
|
|
|
|
|
|
this.ReportProperty.IsDefaultOnlyDspSumAndDetailData = true;
|
|
|
|
|
|
|
|
|
|
|
|
// 设置精度控制
|
|
|
|
|
|
var list = new List<DecimalControlField>
|
|
|
|
|
|
{
|
|
|
|
|
|
new DecimalControlField("FDECIMALS", "OrigInvoiceAmount"),
|
|
|
|
|
|
new DecimalControlField("FDECIMALS", "ExchangeRate"),
|
|
|
|
|
|
new DecimalControlField("FDECIMALS", "InvoiceAmountTHB"),
|
|
|
|
|
|
new DecimalControlField("FDECIMALS", "MonthEndExRate"),
|
|
|
|
|
|
new DecimalControlField("FDECIMALS", "RevaluationAountInTHB"),
|
|
|
|
|
|
new DecimalControlField("FDECIMALS", "UnrealizedGainLoss"),
|
|
|
|
|
|
};
|
|
|
|
|
|
this.ReportProperty.DecimalControlFieldList = list;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 报表列表头
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="filter"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public override ReportHeader GetReportHeaders(IRptParams filter)
|
|
|
|
|
|
{
|
|
|
|
|
|
base.GetReportHeaders(filter);
|
|
|
|
|
|
|
|
|
|
|
|
ReportHeader header = new ReportHeader();
|
2025-06-25 19:00:53 +08:00
|
|
|
|
header.AddChild("TableName", new LocaleValue("开发看的"), SqlStorageType.Sqlvarchar);
|
2025-03-14 10:00:24 +08:00
|
|
|
|
header.AddChild("Date", new LocaleValue("日期"), SqlStorageType.Sqlvarchar);
|
|
|
|
|
|
header.AddChild("Month", new LocaleValue("月份"), SqlStorageType.Sqlvarchar);
|
|
|
|
|
|
header.AddChild("Client", new LocaleValue("购货单位"), SqlStorageType.Sqlvarchar);
|
|
|
|
|
|
header.AddChild("CreditType", new LocaleValue("客户信用类型"), SqlStorageType.Sqlvarchar);
|
|
|
|
|
|
header.AddChild("ContractNumber", new LocaleValue("纸质合同号"), SqlStorageType.Sqlvarchar);
|
|
|
|
|
|
header.AddChild("SizeModel", new LocaleValue("规格型号"), SqlStorageType.Sqlvarchar);
|
|
|
|
|
|
header.AddChild("Quantity", new LocaleValue("数量"), SqlStorageType.SqlInt);
|
|
|
|
|
|
header.AddChild("TaxPrice", new LocaleValue("实际含税单价"), SqlStorageType.SqlDecimal);
|
|
|
|
|
|
header.AddChild("AllAmount", new LocaleValue("价税合计"), SqlStorageType.SqlDecimal);
|
|
|
|
|
|
header.AddChild("ProjectName", new LocaleValue("项目名称"), SqlStorageType.Sqlvarchar);
|
|
|
|
|
|
header.AddChild("SalerName", new LocaleValue("业务员"), SqlStorageType.Sqlvarchar);
|
|
|
|
|
|
header.AddChild("SaleDeptName", new LocaleValue("部门"), SqlStorageType.Sqlvarchar);
|
|
|
|
|
|
header.AddChild("Supervisor", new LocaleValue("审批人"), SqlStorageType.Sqlvarchar);
|
|
|
|
|
|
header.AddChild("SpecialCauseType", new LocaleValue("特价原因分类"), SqlStorageType.Sqlvarchar);
|
|
|
|
|
|
header.AddChild("CRMSpecialCause", new LocaleValue("CRM特价原因"), SqlStorageType.Sqlvarchar);
|
|
|
|
|
|
header.AddChild("CurrentSettledUpset1", new LocaleValue("当期结算价(仪表)"), SqlStorageType.SqlDecimal);
|
|
|
|
|
|
header.AddChild("CurrentSettledUpset2", new LocaleValue("当期结算价(系统)"), SqlStorageType.SqlDecimal);
|
|
|
|
|
|
header.AddChild("Difference", new LocaleValue("差额(单价-结算价)"), SqlStorageType.SqlDecimal);
|
|
|
|
|
|
header.AddChild("TotalSpread", new LocaleValue("总价差(终)"), SqlStorageType.SqlDecimal);
|
|
|
|
|
|
header.AddChild("PaymentMethods", new LocaleValue("付款方式"), SqlStorageType.Sqlvarchar);
|
|
|
|
|
|
header.AddChild("ProjectPhase", new LocaleValue("项目阶段"), SqlStorageType.Sqlvarchar);
|
|
|
|
|
|
header.AddChild("OrderAllAmount", new LocaleValue("订单总额"), SqlStorageType.SqlDecimal);
|
|
|
|
|
|
header.AddChild("NotShipmentsAmount", new LocaleValue("未发货金额"), SqlStorageType.SqlDecimal);
|
|
|
|
|
|
header.AddChild("ExpireUnpaidAmount", new LocaleValue("到期未付金额"), SqlStorageType.SqlDecimal);
|
|
|
|
|
|
header.AddChild("ProductsCode", new LocaleValue("产品长代码"), SqlStorageType.Sqlvarchar);
|
|
|
|
|
|
header.AddChild("Currency", new LocaleValue("币别"), SqlStorageType.Sqlvarchar);
|
|
|
|
|
|
|
|
|
|
|
|
foreach (var item in header.GetChilds())
|
|
|
|
|
|
{
|
|
|
|
|
|
item.Width = 160;
|
|
|
|
|
|
}
|
|
|
|
|
|
return header;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 显示报表数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="filter"></param>
|
|
|
|
|
|
/// <param name="tableName"></param>
|
|
|
|
|
|
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
|
|
|
|
|
|
{
|
|
|
|
|
|
DynamicObject customFilter = filter.FilterParameter.CustomFilter;
|
|
|
|
|
|
|
|
|
|
|
|
// 客户 FClient
|
|
|
|
|
|
var fClient = (customFilter["FClient"] as DynamicObject)?["Id"]?.ToString();
|
|
|
|
|
|
// 产品
|
|
|
|
|
|
var fChanPin = (customFilter["FChanPin"] as DynamicObject)?["Id"]?.ToString();
|
|
|
|
|
|
// 项目 FProject
|
|
|
|
|
|
var fProject = (customFilter["FProject"] as DynamicObject)?["Id"]?.ToString();
|
|
|
|
|
|
// 销售员
|
|
|
|
|
|
var fSalesman = (customFilter["FSalesman"] as DynamicObject)?["Id"]?.ToString();
|
|
|
|
|
|
// 日期
|
|
|
|
|
|
string fDate = customFilter["FDate"]?.ToString();
|
|
|
|
|
|
// 日期
|
|
|
|
|
|
string fEndDate = customFilter["FEndDate"]?.ToString();
|
|
|
|
|
|
// 纸质合同号
|
|
|
|
|
|
string fPaperContract = customFilter["FPaperContract"]?.ToString();
|
|
|
|
|
|
// 组织
|
|
|
|
|
|
var organizationList = (customFilter["FZuZhi"] as DynamicObjectCollection)?.Select(n => (n["FZuZhi"] as DynamicObject)["ID"].ToString()).ToList();
|
2025-07-05 14:29:43 +08:00
|
|
|
|
|
2025-03-14 10:00:24 +08:00
|
|
|
|
var organization = organizationList == null ? "" : (string.Join(",", organizationList));
|
|
|
|
|
|
|
|
|
|
|
|
base.BuilderReportSqlAndTempTable(filter, tableName);
|
2025-06-25 19:00:53 +08:00
|
|
|
|
string wheresql = " AND 1=1 ";
|
2025-03-14 10:00:24 +08:00
|
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(organization))
|
|
|
|
|
|
{
|
2025-06-25 19:00:53 +08:00
|
|
|
|
wheresql += string.Format(@" AND A.FSaleOrgId in ({0})", organization);
|
2025-03-14 10:00:24 +08:00
|
|
|
|
}
|
|
|
|
|
|
if (!string.IsNullOrEmpty(fClient))
|
|
|
|
|
|
{
|
2025-06-25 19:00:53 +08:00
|
|
|
|
wheresql += string.Format(@" AND A.FCUSTID in ({0})", fClient);
|
2025-03-14 10:00:24 +08:00
|
|
|
|
}
|
2025-06-25 19:00:53 +08:00
|
|
|
|
|
2025-03-14 10:00:24 +08:00
|
|
|
|
if (!string.IsNullOrEmpty(fProject))
|
|
|
|
|
|
{
|
2025-06-25 19:00:53 +08:00
|
|
|
|
wheresql += string.Format(@" AND A.F_PROJECTNAME in ({0})", fProject);
|
2025-03-14 10:00:24 +08:00
|
|
|
|
}
|
|
|
|
|
|
if (!string.IsNullOrEmpty(fSalesman))
|
|
|
|
|
|
{
|
2025-06-25 19:00:53 +08:00
|
|
|
|
wheresql += string.Format(@" AND A.FSALERID in ({0})", fSalesman);
|
2025-03-14 10:00:24 +08:00
|
|
|
|
}
|
|
|
|
|
|
if (!string.IsNullOrEmpty(fDate))
|
|
|
|
|
|
{
|
2025-06-25 19:00:53 +08:00
|
|
|
|
wheresql += string.Format(@" AND FORMAT(A.FApproveDate,'yyyy-MM-dd') >= '{0}'", fDate);
|
2025-03-14 10:00:24 +08:00
|
|
|
|
}
|
|
|
|
|
|
if (!string.IsNullOrEmpty(fEndDate))
|
|
|
|
|
|
{
|
2025-06-25 19:00:53 +08:00
|
|
|
|
wheresql += string.Format(@"AND FORMAT(A.FApproveDate,'yyyy-MM-dd') <= '{0}'", fEndDate);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!string.IsNullOrEmpty(fPaperContract))
|
|
|
|
|
|
{
|
|
|
|
|
|
wheresql += string.Format(@" AND a.F_CONTRACTNUMBER like '%{0}%'", fPaperContract);
|
2025-03-14 10:00:24 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-06-25 19:00:53 +08:00
|
|
|
|
//过滤公司
|
|
|
|
|
|
string sql = string.Format($@"/*dialect*/
|
|
|
|
|
|
SELECT A.FID AS FID
|
|
|
|
|
|
INTO #PaiChuGongSi
|
|
|
|
|
|
FROM T_SAL_ORDER A
|
|
|
|
|
|
INNER JOIN T_BD_CUSTOMER_L C
|
|
|
|
|
|
ON C.FCUSTID = A.FCUSTID
|
|
|
|
|
|
AND C.FLOCALEID = 2052
|
|
|
|
|
|
LEFT JOIN V_BD_SALESMAN_L L
|
|
|
|
|
|
ON L.fid = A.FSALERID
|
|
|
|
|
|
LEFT JOIN T_PerformanceSharing M
|
|
|
|
|
|
ON M.FSOURCEBILLNO = A.FBILLNO
|
|
|
|
|
|
AND M.FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
LEFT JOIN T_PerformanceSharingEntry N
|
|
|
|
|
|
ON N.FID = M.FID
|
|
|
|
|
|
LEFT JOIN V_BD_SALESMAN_L O
|
|
|
|
|
|
ON O.fid = N.FSALEID
|
|
|
|
|
|
LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACO
|
|
|
|
|
|
ON ACO.名称 = O.FNAME
|
|
|
|
|
|
LEFT JOIN ERPTOHR.HYHRV3.dbo.v_erp_empinfo ACL
|
|
|
|
|
|
ON ACL.名称 = L.FNAME
|
|
|
|
|
|
WHERE A.FSALEORGID = 100302
|
|
|
|
|
|
AND ACO.区域 = '碳索智控'
|
|
|
|
|
|
OR ACL.区域 = '碳索智控'
|
2025-07-05 14:29:43 +08:00
|
|
|
|
OR C.FNAME IN ( '珠海派诺科技股份有限公司', '派诺科技(香港)有限公司', '武汉派诺科技发展有限公司', '珠海华夏云联技术有限公司', '广东碳索智控科技有限公司', '武汉派诺科技发展有限公司', '珠海兴诺能源技术有限公司','广东诺瓦数能科技有限公司' )
|
2025-06-25 19:00:53 +08:00
|
|
|
|
OR L.FNAME = '兴诺总'
|
2025-03-14 19:35:54 +08:00
|
|
|
|
");
|
2025-06-25 19:00:53 +08:00
|
|
|
|
|
|
|
|
|
|
//仪表类
|
|
|
|
|
|
sql += string.Format($@"/*dialect*/
|
|
|
|
|
|
SELECT A.FBILLNO AS 'AFBILLNO',
|
|
|
|
|
|
'YB' F_ORDERTYPE,
|
|
|
|
|
|
CONVERT(NVARCHAR, A.FDATE, 23) AS 'Date', --日期
|
|
|
|
|
|
MONTH(A.FDATE) AS 'Month', --月份
|
|
|
|
|
|
A.F_CONTRACTNUMBER AS 'ContractNumber', --纸质合同号
|
|
|
|
|
|
a.FSALEORGID ,A.FID,B.FENTRYID ,'#YiBiaoHeTong' AS TableName
|
|
|
|
|
|
INTO #YiBiaoHeTong
|
|
|
|
|
|
FROM T_SAL_ORDERENTRY B --销售订单明细表
|
|
|
|
|
|
JOIN T_SAL_ORDER A --销售订单表
|
|
|
|
|
|
ON A.FID = B.FID
|
|
|
|
|
|
LEFT JOIN T_SAL_ORDERENTRY_F B2 --销售订单明细_F表
|
2025-08-06 09:31:32 +08:00
|
|
|
|
ON B.FENTRYID = B2.FENTRYID
|
|
|
|
|
|
left join T_SAL_ORDERFIN fin on a.fid=fin.fid
|
2025-06-25 19:00:53 +08:00
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT FNUMBER,
|
|
|
|
|
|
FMASTERID
|
|
|
|
|
|
FROM T_BAS_ASSISTANTDATAENTRY
|
|
|
|
|
|
WHERE FID = '670cc977263353'
|
|
|
|
|
|
AND FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND FFORBIDSTATUS = 'A'
|
|
|
|
|
|
) D --合同类型#(辅助资料表)
|
|
|
|
|
|
ON A.F_ORDERCATEGORY = D.FMASTERID
|
|
|
|
|
|
WHERE
|
|
|
|
|
|
(D.FNUMBER IN ( 'P', 'E', 'C', 'S' ))
|
2025-08-06 09:31:32 +08:00
|
|
|
|
AND (B.F_SPECIALOFFER = '1' OR B2.FTaxPrice*fin.FExchangeRate < B.F_SettlementP)
|
2025-06-25 19:00:53 +08:00
|
|
|
|
AND B.F_YKQC_CHECKBOX_QTR != '1'
|
|
|
|
|
|
AND A.FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND A.FBUSINESSTYPE = 'NORMAL'
|
2025-07-09 15:13:33 +08:00
|
|
|
|
|
2025-06-25 19:00:53 +08:00
|
|
|
|
AND B.FQTY >= 0
|
|
|
|
|
|
AND A.FMANUALCLOSE = '0'
|
|
|
|
|
|
AND A.FMANUALCLOSE <> '1'
|
|
|
|
|
|
AND B.FMANUALROWCLOSE <> '1'
|
|
|
|
|
|
AND A.F_CONTRACTNUMBER NOT LIKE 'Z%'
|
|
|
|
|
|
AND A.FID NOT IN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT FID FROM #PaiChuGongSi
|
|
|
|
|
|
) {wheresql} ; ");
|
2025-03-14 10:00:24 +08:00
|
|
|
|
|
2025-06-25 19:00:53 +08:00
|
|
|
|
//系统合同
|
|
|
|
|
|
sql += string.Format($@"/*dialect*/
|
|
|
|
|
|
SELECT A.FBILLNO AS 'AFBILLNO',
|
|
|
|
|
|
'XT' F_ORDERTYPE,
|
|
|
|
|
|
CONVERT(NVARCHAR, A.FDATE, 23) AS 'Date', --日期
|
|
|
|
|
|
MONTH(A.FDATE) AS 'Month', --月份
|
|
|
|
|
|
A.F_CONTRACTNUMBER AS 'ContractNumber', --纸质合同号
|
|
|
|
|
|
a.FSALEORGID ,A.FID,B.FENTRYID ,'#XiTongHeTong' AS TableName
|
|
|
|
|
|
INTO #XiTongHeTong
|
|
|
|
|
|
FROM T_SAL_ORDERENTRY B --销售订单明细表
|
|
|
|
|
|
JOIN T_SAL_ORDER A --销售订单表
|
|
|
|
|
|
ON A.FID = B.FID
|
|
|
|
|
|
LEFT JOIN T_SAL_ORDERENTRY_F B2 --销售订单明细_F表
|
|
|
|
|
|
ON B.FENTRYID = B2.FENTRYID
|
|
|
|
|
|
JOIN T_SAL_ORDERFIN C --销售订单_财务表
|
|
|
|
|
|
ON A.FID = C.FID
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT FNUMBER,
|
|
|
|
|
|
FMASTERID
|
|
|
|
|
|
FROM T_BAS_ASSISTANTDATAENTRY
|
|
|
|
|
|
WHERE FID = '670cc977263353'
|
|
|
|
|
|
AND FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND FFORBIDSTATUS = 'A'
|
|
|
|
|
|
) D --合同类型#(辅助资料表)
|
|
|
|
|
|
ON A.F_ORDERCATEGORY = D.FMASTERID
|
|
|
|
|
|
|
|
|
|
|
|
--ES、W、SX、CW、D、CY
|
|
|
|
|
|
WHERE D.FNUMBER NOT IN ( 'P', 'E', 'C', 'S','CS','CW' )
|
2025-07-02 18:25:40 +08:00
|
|
|
|
AND (A.F_SpecialContracts = '是' OR a.F_GROSSMARGIN1='<35%' OR a.F_VRYF_Amount_yrr > c.FBillAllAmount )
|
2025-06-25 19:00:53 +08:00
|
|
|
|
AND B.FQTY >= 0
|
|
|
|
|
|
AND A.FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND A.FBUSINESSTYPE = 'NORMAL'
|
2025-07-09 15:13:33 +08:00
|
|
|
|
|
2025-06-25 19:00:53 +08:00
|
|
|
|
AND A.FMANUALCLOSE = '0'
|
|
|
|
|
|
AND A.F_CONTRACTNUMBER NOT LIKE 'Z%'
|
|
|
|
|
|
AND A.FMANUALCLOSE <> '1'
|
|
|
|
|
|
AND B.FMANUALROWCLOSE <> '1'
|
|
|
|
|
|
AND A.FID NOT IN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT FID FROM #PaiChuGongSi
|
|
|
|
|
|
) {wheresql}; ");
|
2025-03-14 10:00:24 +08:00
|
|
|
|
|
|
|
|
|
|
|
2025-06-25 19:00:53 +08:00
|
|
|
|
//兴诺明细的充电桩系统合同CS、CW
|
|
|
|
|
|
sql += $@"/*dialect*/
|
|
|
|
|
|
SELECT A.FBILLNO AS 'AFBILLNO',
|
|
|
|
|
|
'CDZ' F_ORDERTYPE,
|
|
|
|
|
|
CONVERT(NVARCHAR, A.FDATE, 23) AS 'Date', --日期
|
|
|
|
|
|
MONTH(A.FDATE) AS 'Month', --月份
|
|
|
|
|
|
A.F_CONTRACTNUMBER AS 'ContractNumber', --纸质合同号
|
|
|
|
|
|
a.FSALEORGID,A.FID,B.FENTRYID ,'#XNChongDianZhuangHeTong' AS TableName
|
|
|
|
|
|
INTO #XNChongDianZhuangHeTong
|
|
|
|
|
|
FROM T_SAL_ORDERENTRY B --销售订单明细表
|
|
|
|
|
|
JOIN T_SAL_ORDER A --销售订单表
|
|
|
|
|
|
ON A.FID = B.FID
|
|
|
|
|
|
LEFT JOIN T_SAL_ORDERENTRY_F B2 --销售订单明细_F表
|
|
|
|
|
|
ON B.FENTRYID = B2.FENTRYID
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT FNUMBER,
|
|
|
|
|
|
FMASTERID
|
|
|
|
|
|
FROM T_BAS_ASSISTANTDATAENTRY
|
|
|
|
|
|
WHERE FID = '670cc977263353'
|
|
|
|
|
|
AND FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND FFORBIDSTATUS = 'A'
|
|
|
|
|
|
) D --合同类型#(辅助资料表)
|
|
|
|
|
|
ON A.F_ORDERCATEGORY = D.FMASTERID
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT B.FNAME,
|
|
|
|
|
|
B.FSPECIFICATION,
|
|
|
|
|
|
A.*
|
|
|
|
|
|
FROM T_BD_MATERIAL A
|
|
|
|
|
|
JOIN T_BD_MATERIAL_L B
|
|
|
|
|
|
ON A.FMATERIALID = B.FMATERIALID
|
|
|
|
|
|
WHERE B.FLOCALEID = 2052
|
|
|
|
|
|
AND A.FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND A.FFORBIDSTATUS = 'A'
|
|
|
|
|
|
) G --物料表
|
|
|
|
|
|
ON G.FMATERIALID = B.FMATERIALID
|
|
|
|
|
|
WHERE
|
|
|
|
|
|
(D.FNUMBER IN ('CS','CW' ))
|
|
|
|
|
|
AND B.F_SPECIALOFFER = '1'
|
|
|
|
|
|
AND B.F_YKQC_CHECKBOX_QTR != '1'
|
|
|
|
|
|
AND A.FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND A.FBUSINESSTYPE = 'NORMAL'
|
2025-07-09 15:13:33 +08:00
|
|
|
|
|
2025-06-25 19:00:53 +08:00
|
|
|
|
AND B.FQTY >= 0
|
|
|
|
|
|
AND A.FMANUALCLOSE = '0'
|
|
|
|
|
|
AND A.FMANUALCLOSE <> '1'
|
|
|
|
|
|
AND B.FMANUALROWCLOSE <> '1'
|
|
|
|
|
|
AND A.F_CONTRACTNUMBER NOT LIKE 'Z%'
|
|
|
|
|
|
AND A.FID NOT IN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT FID FROM #PaiChuGongSi
|
|
|
|
|
|
)
|
|
|
|
|
|
AND G.FNUMBER LIKE 'V%' {wheresql} ; ";
|
|
|
|
|
|
|
|
|
|
|
|
//派诺明细的充电桩系统合同CS、CW
|
|
|
|
|
|
sql += $@"/*dialect*/
|
|
|
|
|
|
SELECT A.FBILLNO AS 'AFBILLNO',
|
|
|
|
|
|
A.F_ORDERTYPE,
|
|
|
|
|
|
CONVERT(NVARCHAR, A.FDATE, 23) AS 'Date', --日期
|
|
|
|
|
|
MONTH(A.FDATE) AS 'Month', --月份
|
|
|
|
|
|
A.F_CONTRACTNUMBER AS 'ContractNumber', --纸质合同号
|
|
|
|
|
|
a.FSALEORGID ,A.FID,B.FENTRYID ,'#PLChongDianZhuangHeTong' AS TableName
|
|
|
|
|
|
INTO #PLChongDianZhuangHeTong
|
|
|
|
|
|
FROM T_SAL_ORDERENTRY B --销售订单明细表
|
|
|
|
|
|
JOIN T_SAL_ORDER A --销售订单表
|
|
|
|
|
|
ON A.FID = B.FID
|
|
|
|
|
|
LEFT JOIN T_SAL_ORDERENTRY_F B2 --销售订单明细_F表
|
|
|
|
|
|
ON B.FENTRYID = B2.FENTRYID
|
|
|
|
|
|
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT FNUMBER,
|
|
|
|
|
|
FMASTERID
|
|
|
|
|
|
FROM T_BAS_ASSISTANTDATAENTRY
|
|
|
|
|
|
WHERE FID = '670cc977263353'
|
|
|
|
|
|
AND FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND FFORBIDSTATUS = 'A'
|
|
|
|
|
|
) D --合同类型#(辅助资料表)
|
|
|
|
|
|
ON A.F_ORDERCATEGORY = D.FMASTERID
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT B.FNAME,
|
|
|
|
|
|
B.FSPECIFICATION,
|
|
|
|
|
|
A.*
|
|
|
|
|
|
FROM T_BD_MATERIAL A
|
|
|
|
|
|
JOIN T_BD_MATERIAL_L B
|
|
|
|
|
|
ON A.FMATERIALID = B.FMATERIALID
|
|
|
|
|
|
WHERE B.FLOCALEID = 2052
|
|
|
|
|
|
AND A.FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND A.FFORBIDSTATUS = 'A'
|
|
|
|
|
|
) G --物料表
|
|
|
|
|
|
ON G.FMATERIALID = B.FMATERIALID
|
|
|
|
|
|
WHERE
|
|
|
|
|
|
(D.FNUMBER IN ('CS','CW' ))
|
|
|
|
|
|
--AND B.F_SPECIALOFFER = '1'
|
|
|
|
|
|
--AND B.F_YKQC_CHECKBOX_QTR != '1'
|
|
|
|
|
|
AND (A.F_SpecialContracts = '是' OR a.F_GROSSMARGIN1='<35%')
|
|
|
|
|
|
AND A.FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND A.FBUSINESSTYPE = 'NORMAL'
|
2025-07-09 15:13:33 +08:00
|
|
|
|
|
2025-06-25 19:00:53 +08:00
|
|
|
|
AND B.FQTY >= 0
|
|
|
|
|
|
AND A.FMANUALCLOSE = '0'
|
|
|
|
|
|
AND A.FMANUALCLOSE <> '1'
|
|
|
|
|
|
AND B.FMANUALROWCLOSE <> '1'
|
|
|
|
|
|
AND A.F_CONTRACTNUMBER NOT LIKE 'Z%'
|
|
|
|
|
|
AND A.FID NOT IN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT FID FROM #PaiChuGongSi
|
|
|
|
|
|
)
|
|
|
|
|
|
AND G.FNUMBER not LIKE 'V%' {wheresql}; ";
|
|
|
|
|
|
|
|
|
|
|
|
//几个临时表合并
|
2025-03-14 10:00:24 +08:00
|
|
|
|
sql += string.Format(@"/*dialect*/
|
2025-06-25 19:00:53 +08:00
|
|
|
|
/*dialect*/
|
|
|
|
|
|
SELECT *
|
|
|
|
|
|
INTO #TempTable3
|
|
|
|
|
|
FROM #YiBiaoHeTong
|
|
|
|
|
|
UNION ALL
|
|
|
|
|
|
SELECT *
|
|
|
|
|
|
FROM #XiTongHeTong
|
|
|
|
|
|
UNION ALL
|
|
|
|
|
|
SELECT *
|
|
|
|
|
|
FROM #XNChongDianZhuangHeTong
|
|
|
|
|
|
UNION ALL
|
|
|
|
|
|
SELECT *
|
|
|
|
|
|
FROM #PLChongDianZhuangHeTong ;");
|
2025-03-14 10:00:24 +08:00
|
|
|
|
|
2025-06-25 19:00:53 +08:00
|
|
|
|
if (!string.IsNullOrEmpty(fChanPin))
|
2025-03-14 10:00:24 +08:00
|
|
|
|
{
|
2025-06-25 19:00:53 +08:00
|
|
|
|
wheresql += string.Format(@" AND G.FMATeRIALID in ({0})", fChanPin);
|
2025-03-14 10:00:24 +08:00
|
|
|
|
}
|
2025-06-25 19:00:53 +08:00
|
|
|
|
//组合其他字段的大表
|
|
|
|
|
|
sql += $@"/*dialect*/
|
|
|
|
|
|
SELECT AAA.TableName, A.FBILLNO AS 'AFBILLNO',
|
|
|
|
|
|
AAA.F_ORDERTYPE,
|
|
|
|
|
|
CONVERT(NVARCHAR, A.FDATE, 23) AS 'Date', --日期
|
|
|
|
|
|
MONTH(A.FDATE) AS 'Month', --月份
|
|
|
|
|
|
E.FNAME AS 'Client', --购货单位
|
|
|
|
|
|
F.FNAME AS 'Currency', --币别
|
|
|
|
|
|
ISNULL(E.FDATAVALUE, '') AS 'CreditType', --客户信用类型
|
|
|
|
|
|
A.F_CONTRACTNUMBER AS 'ContractNumber', --纸质合同号
|
|
|
|
|
|
ISNULL(G.FSPECIFICATION, '') AS 'SizeModel', --规格型号
|
|
|
|
|
|
B.FQTY - ISNULL(B3.FRETNOTICEQTY, 0) AS 'Quantity', --数量
|
2025-07-05 14:29:43 +08:00
|
|
|
|
B2.FTAXPRICE*C.FExchangeRate AS 'TaxPrice', --实际含税单价
|
2025-06-25 19:00:53 +08:00
|
|
|
|
B2.FALLAMOUNT_LC - ISNULL(ABS(B3.FALLAMOUNT_LC), 0) AS 'AllAmount', --价税合计
|
|
|
|
|
|
ISNULL(H.FNAME, '') AS 'ProjectName', --项目名称
|
|
|
|
|
|
ISNULL(H2.FNAME, '') AS 'SalerName', --业务员
|
|
|
|
|
|
ISNULL(H3.FNAME, '') AS 'SaleDeptName', --部门
|
|
|
|
|
|
ISNULL(H4.FNAME, '') AS 'Supervisor', --审批人
|
|
|
|
|
|
H5.FDATAVALUE AS 'SpecialCauseType', --特价原因分类
|
|
|
|
|
|
A.FCRMSPECIALPRICINGREASON AS 'CRMSpecialCause', --CRM特价原因
|
|
|
|
|
|
CASE
|
2025-08-06 09:31:32 +08:00
|
|
|
|
WHEN (AAA.TableName IN ( '#YiBiaoHeTong','#XNChongDianZhuangHeTong')) THEN
|
2025-06-25 19:00:53 +08:00
|
|
|
|
B.F_SETTLEMENTP
|
|
|
|
|
|
ELSE
|
|
|
|
|
|
NULL
|
2025-08-06 09:31:32 +08:00
|
|
|
|
END AS 'CurrentSettledUpset1', --当期结算价(仪表)
|
2025-06-27 15:40:30 +08:00
|
|
|
|
|
2025-08-06 09:31:32 +08:00
|
|
|
|
CASE
|
|
|
|
|
|
WHEN (AAA.TableName IN ('#XiTongHeTong','#PLChongDianZhuangHeTong'))
|
|
|
|
|
|
AND ROW_NUMBER() OVER (PARTITION BY A.FID,AAA.TableName ORDER BY a.FID,AAA.TableName,b.FENTRYID) = 1 THEN
|
2025-06-25 19:00:53 +08:00
|
|
|
|
CAST(ISNULL(A.F_VRYF_AMOUNT_YRR, 0) AS FLOAT)
|
|
|
|
|
|
ELSE
|
|
|
|
|
|
NULL
|
2025-08-06 09:31:32 +08:00
|
|
|
|
END AS 'CurrentSettledUpset2', --当期结算价(系统)
|
2025-06-25 19:00:53 +08:00
|
|
|
|
CASE
|
2025-08-06 09:31:32 +08:00
|
|
|
|
WHEN (AAA.TableName IN ( '#YiBiaoHeTong','#XNChongDianZhuangHeTong')) THEN (B2.FTAXPRICE - B.F_SETTLEMENTP)*B.FQTY
|
|
|
|
|
|
ELSE NULL END AS 'Difference', --差额(单价-底价)
|
|
|
|
|
|
CASE
|
|
|
|
|
|
WHEN (AAA.TableName IN ('#XiTongHeTong','#PLChongDianZhuangHeTong'))
|
|
|
|
|
|
AND ROW_NUMBER() OVER (PARTITION BY A.FID,AAA.TableName ORDER BY a.FID,AAA.TableName,b.FENTRYID) = 1 THEN
|
|
|
|
|
|
C.FBillAllAmount_LC - CAST(ISNULL(A.F_VRYF_Amount_yrr, 0) AS FLOAT)
|
|
|
|
|
|
|
2025-06-25 19:00:53 +08:00
|
|
|
|
ELSE
|
|
|
|
|
|
NULL
|
2025-08-06 09:31:32 +08:00
|
|
|
|
END AS 'TotalSpread', --总价差(终)
|
2025-07-05 14:29:43 +08:00
|
|
|
|
C2.FNAME AS 'PaymentMethods', --付款方式
|
2025-06-25 19:00:53 +08:00
|
|
|
|
CASE
|
|
|
|
|
|
WHEN A.F_ORDERTYPE = 'YB' THEN
|
|
|
|
|
|
'仪表合同' --(仪表)
|
|
|
|
|
|
WHEN A.F_ORDERTYPE = 'XT' THEN --(系统)
|
|
|
|
|
|
(CASE
|
|
|
|
|
|
WHEN ISNULL(A.F_XMYSSJ, '') != '' THEN
|
|
|
|
|
|
CONVERT(NVARCHAR, A.F_XMYSSJ, 23)
|
|
|
|
|
|
WHEN C.FBILLALLAMOUNT_LC - ISNULL(ABS(B3.FBillAllAmount_LC), 0) - ISNULL(H6.FALLAMOUNT_LC, 0) <= 0 THEN
|
|
|
|
|
|
'发货完成'
|
|
|
|
|
|
WHEN C.FBILLALLAMOUNT_LC - ISNULL(ABS(B3.FBillAllAmount_LC), 0) - ISNULL(H6.FALLAMOUNT_LC, 0) = C.FBILLALLAMOUNT_LC
|
|
|
|
|
|
- ISNULL(
|
|
|
|
|
|
ABS(B3.FBillAllAmount_LC),
|
|
|
|
|
|
0
|
|
|
|
|
|
) THEN
|
|
|
|
|
|
'未发货'
|
|
|
|
|
|
ELSE
|
|
|
|
|
|
'部分发货'
|
|
|
|
|
|
END
|
|
|
|
|
|
)
|
|
|
|
|
|
ELSE
|
|
|
|
|
|
''
|
|
|
|
|
|
END AS 'ProjectPhase', --项目阶段
|
|
|
|
|
|
CASE
|
|
|
|
|
|
WHEN ROW_NUMBER() OVER (PARTITION BY A.F_CONTRACTNUMBER ORDER BY B.FSEQ) = 1 THEN
|
|
|
|
|
|
C.FBILLALLAMOUNT_LC - ISNULL(ABS(B3.FBillAllAmount_LC), 0)
|
|
|
|
|
|
ELSE
|
|
|
|
|
|
NULL
|
|
|
|
|
|
END AS 'OrderAllAmount', --订单总额
|
|
|
|
|
|
CASE
|
|
|
|
|
|
WHEN ROW_NUMBER() OVER (PARTITION BY A.F_CONTRACTNUMBER ORDER BY B.FSEQ) = 1 THEN
|
|
|
|
|
|
C.FBILLALLAMOUNT_LC - ISNULL(ABS(B3.FBillAllAmount_LC), 0) - ISNULL(H6.FALLAMOUNT_LC, 0)
|
|
|
|
|
|
ELSE
|
|
|
|
|
|
NULL
|
|
|
|
|
|
END AS 'NotShipmentsAmount', --未发货金额
|
2025-07-05 14:29:43 +08:00
|
|
|
|
|
|
|
|
|
|
CASE
|
|
|
|
|
|
WHEN ROW_NUMBER() OVER (PARTITION BY A.F_CONTRACTNUMBER ORDER BY B.FSEQ) = 1 THEN
|
|
|
|
|
|
(SELECT SUM([bbb].[到期金额]*BBB.汇率) FROM dbo.ZRP_YingShouMingXi_yuyubo bbb WHERE a.FID=bbb.销售单主键ID )
|
2025-06-25 19:00:53 +08:00
|
|
|
|
ELSE
|
|
|
|
|
|
NULL
|
2025-07-05 14:29:43 +08:00
|
|
|
|
END
|
|
|
|
|
|
AS 'ExpireUnpaidAmount', --到期未付金额
|
|
|
|
|
|
G.FNUMBER AS 'ProductsCode' --产品长代码
|
2025-06-25 19:00:53 +08:00
|
|
|
|
,aaa.FSALEORGID,AAA.FENTRYID,aaa.FID
|
|
|
|
|
|
INTO #tempDaBiao
|
|
|
|
|
|
FROM #TempTable3 AAA
|
|
|
|
|
|
INNER JOIN T_SAL_ORDERENTRY B ON AAA.FENTRYID=B.FENTRYID
|
|
|
|
|
|
INNER JOIN T_SAL_ORDER A --销售订单表
|
|
|
|
|
|
ON A.FID = B.FID
|
|
|
|
|
|
LEFT JOIN T_SAL_ORDERENTRY_F B2 --销售订单明细_F表
|
|
|
|
|
|
ON B.FENTRYID = B2.FENTRYID
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT Aq2.FBillAllAmount_LC,
|
|
|
|
|
|
Aq.*
|
|
|
|
|
|
FROM
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT W2.FSID,
|
|
|
|
|
|
W2.FSBILLID,
|
|
|
|
|
|
STRING_AGG(CONVERT(NVARCHAR, W1.FDATE, 23), ',') AS 'FDate',
|
|
|
|
|
|
SUM(W1.FPRICEUNITQTY) AS 'FRETNOTICEQTY',
|
|
|
|
|
|
SUM(W1.FALLAMOUNT_LC) AS 'FALLAMOUNT_LC'
|
|
|
|
|
|
FROM
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT q1.FDATE,
|
|
|
|
|
|
q3.FSID,
|
|
|
|
|
|
q2.FALLAMOUNT_LC,
|
|
|
|
|
|
q2.FPRICEUNITQTY
|
|
|
|
|
|
FROM T_SAL_RETURNNOTICE q1
|
|
|
|
|
|
JOIN T_SAL_RETURNNOTICEENTRY_F q2
|
|
|
|
|
|
ON q1.FID = q2.FID
|
|
|
|
|
|
JOIN T_SAL_RETURNNOTICEENTRY_LK q3
|
|
|
|
|
|
ON q2.FENTRYID = q3.FENTRYID
|
|
|
|
|
|
WHERE q1.FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND q1.FCANCELSTATUS = 'A'
|
|
|
|
|
|
AND q3.FSTABLENAME = 'T_SAL_ORDERENTRY'
|
|
|
|
|
|
) W1
|
|
|
|
|
|
JOIN T_SAL_ORDERENTRY_LK W2
|
|
|
|
|
|
ON W1.FSID = W2.FENTRYID
|
|
|
|
|
|
GROUP BY W2.FSID,
|
|
|
|
|
|
W2.FSBILLID
|
|
|
|
|
|
) Aq
|
|
|
|
|
|
JOIN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT W2.FSBILLID,
|
|
|
|
|
|
STRING_AGG(CONVERT(NVARCHAR, W1.FDATE, 23), ',') AS 'FDate',
|
|
|
|
|
|
SUM(W1.FPRICEUNITQTY) AS 'FRETNOTICEQTY',
|
|
|
|
|
|
SUM(W1.FALLAMOUNT_LC) AS 'FBillAllAmount_LC'
|
|
|
|
|
|
FROM
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT q1.FDATE,
|
|
|
|
|
|
q3.FSID,
|
|
|
|
|
|
q2.FALLAMOUNT_LC,
|
|
|
|
|
|
q2.FPRICEUNITQTY
|
|
|
|
|
|
FROM T_SAL_RETURNNOTICE q1
|
|
|
|
|
|
JOIN T_SAL_RETURNNOTICEENTRY_F q2
|
|
|
|
|
|
ON q1.FID = q2.FID
|
|
|
|
|
|
JOIN T_SAL_RETURNNOTICEENTRY_LK q3
|
|
|
|
|
|
ON q2.FENTRYID = q3.FENTRYID
|
|
|
|
|
|
WHERE q1.FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND q1.FCANCELSTATUS = 'A'
|
|
|
|
|
|
AND q3.FSTABLENAME = 'T_SAL_ORDERENTRY'
|
|
|
|
|
|
) W1
|
|
|
|
|
|
JOIN T_SAL_ORDERENTRY_LK W2
|
|
|
|
|
|
ON W1.FSID = W2.FENTRYID
|
|
|
|
|
|
GROUP BY W2.FSBILLID
|
|
|
|
|
|
) Aq2
|
|
|
|
|
|
ON Aq.FSBILLID = Aq2.FSBILLID
|
|
|
|
|
|
) B3 --销售订单-表关联表(销售退货)
|
|
|
|
|
|
ON B.FENTRYID = B3.FSID
|
|
|
|
|
|
JOIN T_SAL_ORDERFIN C --销售订单_财务表
|
|
|
|
|
|
ON A.FID = C.FID
|
|
|
|
|
|
LEFT JOIN
|
2025-07-05 14:29:43 +08:00
|
|
|
|
(
|
|
|
|
|
|
SELECT w.FID,
|
|
|
|
|
|
STUFF(
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT ', ' + X2.FNAME + '--' + CONVERT(NVARCHAR(50), CONVERT(INT, w2.F_DAY)) + '天--'
|
|
|
|
|
|
+ CONVERT(NVARCHAR(50), CONVERT(DECIMAL(18, 2), w2.FRECADVANCERATE)) + '%'
|
|
|
|
|
|
FROM T_SAL_ORDERPLAN w2 WITH (NOLOCK)
|
|
|
|
|
|
LEFT JOIN T_BD_RECCONDITION_L X2
|
|
|
|
|
|
ON X2.FID = w2.F_RECCONDITIONID
|
|
|
|
|
|
WHERE w2.FID = w.FID
|
|
|
|
|
|
FOR XML PATH('')
|
|
|
|
|
|
), 1, 2, ''
|
|
|
|
|
|
) AS FNAME
|
|
|
|
|
|
FROM T_SAL_ORDERPLAN w WITH (NOLOCK)
|
|
|
|
|
|
LEFT JOIN T_BD_RECCONDITION_L X
|
|
|
|
|
|
ON X.FID = w.F_RECCONDITIONID
|
|
|
|
|
|
GROUP BY w.FID
|
|
|
|
|
|
) C2 ON C2.FID=A.FID --销售订单_收款计划
|
2025-06-25 19:00:53 +08:00
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT FNUMBER,
|
|
|
|
|
|
FMASTERID
|
|
|
|
|
|
FROM T_BAS_ASSISTANTDATAENTRY
|
|
|
|
|
|
WHERE FID = '670cc977263353'
|
|
|
|
|
|
AND FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND FFORBIDSTATUS = 'A'
|
|
|
|
|
|
) D --合同类型#(辅助资料表)
|
|
|
|
|
|
ON A.F_ORDERCATEGORY = D.FMASTERID
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT A2.FDATAVALUE,
|
|
|
|
|
|
A1.*
|
|
|
|
|
|
FROM
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT q2.FNAME,
|
|
|
|
|
|
q1.*
|
|
|
|
|
|
FROM T_BD_CUSTOMER q1
|
|
|
|
|
|
JOIN T_BD_CUSTOMER_L q2
|
|
|
|
|
|
ON q1.FCUSTID = q2.FCUSTID
|
|
|
|
|
|
) A1
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT A.FMASTERID,
|
|
|
|
|
|
B.FDATAVALUE
|
|
|
|
|
|
FROM T_BAS_ASSISTANTDATAENTRY A
|
|
|
|
|
|
JOIN T_BAS_ASSISTANTDATAENTRY_L B
|
|
|
|
|
|
ON A.FENTRYID = B.FENTRYID
|
|
|
|
|
|
WHERE A.FID = '673af6092e2877'
|
|
|
|
|
|
AND A.FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND A.FFORBIDSTATUS = 'A'
|
|
|
|
|
|
) A2
|
|
|
|
|
|
ON A1.F_CREDITCLASSIFICATION = A2.FMASTERID
|
|
|
|
|
|
) E --客户_L表
|
|
|
|
|
|
ON A.FCUSTID = E.FCUSTID
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(SELECT * FROM T_BD_CURRENCY_L WHERE FLOCALEID = 2052) F --币别表
|
|
|
|
|
|
ON C.FSETTLECURRID = F.FCURRENCYID
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT B.FNAME,
|
|
|
|
|
|
B.FSPECIFICATION,
|
|
|
|
|
|
A.*
|
|
|
|
|
|
FROM T_BD_MATERIAL A
|
|
|
|
|
|
JOIN T_BD_MATERIAL_L B
|
|
|
|
|
|
ON A.FMATERIALID = B.FMATERIALID
|
|
|
|
|
|
WHERE B.FLOCALEID = 2052
|
|
|
|
|
|
AND A.FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND A.FFORBIDSTATUS = 'A'
|
|
|
|
|
|
) G --物料表
|
|
|
|
|
|
ON G.FMATERIALID = B.FMATERIALID
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT q2.FNAME,
|
|
|
|
|
|
q1.*
|
|
|
|
|
|
FROM T_BAS_PREBDONE q1
|
|
|
|
|
|
JOIN T_BAS_PREBDONE_L q2
|
|
|
|
|
|
ON q1.FID = q2.FID
|
|
|
|
|
|
WHERE q2.FLocaleID = 2052
|
|
|
|
|
|
AND q1.FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND q1.FFORBIDSTATUS = 'A'
|
|
|
|
|
|
) H --工程项目表(预置基础资料1)
|
|
|
|
|
|
ON H.FID = A.F_PROJECTNAME
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT q2.FNAME,
|
|
|
|
|
|
q1.*
|
|
|
|
|
|
FROM V_BD_SALESMAN q1
|
|
|
|
|
|
LEFT JOIN V_BD_SALESMAN_L q2
|
|
|
|
|
|
ON q1.fid = q2.fid
|
|
|
|
|
|
WHERE q2.FLOCALEID = 2052
|
|
|
|
|
|
AND q1.FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND q1.FFORBIDSTATUS = 'A'
|
|
|
|
|
|
AND q1.FFORBIDDENSTATUS = '0'
|
|
|
|
|
|
) H2 --销售员表
|
|
|
|
|
|
ON A.FSALERID = H2.fid
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT q2.FNAME,
|
|
|
|
|
|
q1.*
|
|
|
|
|
|
FROM T_BD_DEPARTMENT q1
|
|
|
|
|
|
JOIN T_BD_DEPARTMENT_L q2
|
|
|
|
|
|
ON q1.FDEPTID = q2.FDEPTID
|
|
|
|
|
|
WHERE q2.FLOCALEID = 2052
|
|
|
|
|
|
AND q1.FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND q1.FFORBIDSTATUS = 'A'
|
|
|
|
|
|
) H3 --销售部门表
|
|
|
|
|
|
ON A.FSALEDEPTID = H3.FDEPTID
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT q2.FNAME,
|
|
|
|
|
|
q1.*
|
|
|
|
|
|
FROM T_HR_EMPINFO q1
|
|
|
|
|
|
JOIN T_HR_EMPINFO_L q2
|
|
|
|
|
|
ON q1.FID = q2.FID
|
|
|
|
|
|
WHERE q2.FLOCALEID = 2052
|
|
|
|
|
|
AND q1.FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND q1.FFORBIDSTATUS = 'A'
|
|
|
|
|
|
) H4 --主管#(员工表)
|
|
|
|
|
|
ON A.F_VRYF_BASE_FG2 = H4.FID
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT A.FNUMBER,
|
|
|
|
|
|
A.FMASTERID,
|
|
|
|
|
|
B.FDATAVALUE
|
|
|
|
|
|
FROM T_BAS_ASSISTANTDATAENTRY A
|
|
|
|
|
|
JOIN T_BAS_ASSISTANTDATAENTRY_L B
|
|
|
|
|
|
ON A.FENTRYID = B.FENTRYID
|
|
|
|
|
|
WHERE A.FID = '674f073de0bc25'
|
|
|
|
|
|
AND A.FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND A.FFORBIDSTATUS = 'A'
|
|
|
|
|
|
) H5
|
|
|
|
|
|
ON H5.FMASTERID = A.FSPECIALRESON
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT W2.FSID,
|
|
|
|
|
|
SUM(W1.FALLAMOUNT_LC) AS 'FALLAMOUNT_LC'
|
|
|
|
|
|
FROM
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT q2.FALLAMOUNT_LC,
|
|
|
|
|
|
q2.FENTRYID
|
|
|
|
|
|
FROM T_SAL_DELIVERYNOTICE q1
|
|
|
|
|
|
JOIN T_SAL_DELIVERYNOTICEENTRY_F q2
|
|
|
|
|
|
ON q1.FID = q2.FID
|
|
|
|
|
|
WHERE q1.FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND q1.FCANCELSTATUS = 'A'
|
|
|
|
|
|
) W1
|
|
|
|
|
|
JOIN T_SAL_DELIVERYNOTICEENTRY_LK W2
|
|
|
|
|
|
ON W1.FENTRYID = W2.FENTRYID
|
|
|
|
|
|
WHERE W2.FSTABLENAME = 'T_SAL_ORDERENTRY'
|
|
|
|
|
|
GROUP BY W2.FSID
|
|
|
|
|
|
) H6 --发货通知单表
|
|
|
|
|
|
ON B.FENTRYID = H6.FSID
|
|
|
|
|
|
LEFT JOIN
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT W2.FSID,
|
|
|
|
|
|
W1.*
|
|
|
|
|
|
FROM
|
|
|
|
|
|
(
|
|
|
|
|
|
SELECT B.FALLAMOUNTFOR,
|
|
|
|
|
|
B.FENTRYID
|
|
|
|
|
|
FROM T_AR_RECEIVABLE A
|
|
|
|
|
|
JOIN T_AR_RECEIVABLEENTRY B
|
|
|
|
|
|
ON A.FID = B.FID
|
|
|
|
|
|
WHERE A.FDOCUMENTSTATUS = 'C'
|
|
|
|
|
|
AND B.FORDERNUMBER != ''
|
|
|
|
|
|
AND A.FENDDATE <= GETDATE()
|
|
|
|
|
|
) W1
|
|
|
|
|
|
JOIN T_AR_RECEIVABLEENTRY_LK W2
|
|
|
|
|
|
ON W1.FENTRYID = W2.FENTRYID
|
|
|
|
|
|
WHERE W2.FSTABLENAME = 'T_SAL_ORDERENTRY'
|
|
|
|
|
|
) H7
|
|
|
|
|
|
ON B.FENTRYID = H7.FSID {wheresql} ; ";
|
2025-03-14 10:00:24 +08:00
|
|
|
|
|
|
|
|
|
|
|
2025-06-25 19:00:53 +08:00
|
|
|
|
//sql += $@"/*dialect*/
|
|
|
|
|
|
//Select
|
|
|
|
|
|
//*,
|
|
|
|
|
|
//ROW_NUMBER() OVER (ORDER BY FID DESC,FENTRYID) AS FIDENTITYID
|
|
|
|
|
|
//INTO {tableName}
|
|
|
|
|
|
//From
|
|
|
|
|
|
//(SELECT * FROM #tempDaBiao) A ";
|
|
|
|
|
|
|
|
|
|
|
|
sql += string.Format($@"/*dialect*/
|
2025-03-14 10:00:24 +08:00
|
|
|
|
Select
|
|
|
|
|
|
*,
|
2025-06-25 19:00:53 +08:00
|
|
|
|
ROW_NUMBER() OVER (ORDER BY FID DESC,FENTRYID) AS FIDENTITYID
|
|
|
|
|
|
INTO {tableName}
|
2025-03-14 10:00:24 +08:00
|
|
|
|
From
|
2025-06-25 19:00:53 +08:00
|
|
|
|
(SELECT [TableName]
|
|
|
|
|
|
,[AFBILLNO]
|
|
|
|
|
|
,[F_ORDERTYPE]
|
|
|
|
|
|
,[Date]
|
|
|
|
|
|
,[Month]
|
|
|
|
|
|
,[Client]
|
|
|
|
|
|
,[Currency]
|
|
|
|
|
|
,[CreditType]
|
|
|
|
|
|
,[ContractNumber]
|
|
|
|
|
|
,[SizeModel]
|
|
|
|
|
|
,[Quantity]
|
|
|
|
|
|
,[TaxPrice]
|
|
|
|
|
|
,[AllAmount]
|
|
|
|
|
|
,[ProjectName]
|
|
|
|
|
|
,[SalerName]
|
|
|
|
|
|
,[SaleDeptName]
|
|
|
|
|
|
,[Supervisor]
|
|
|
|
|
|
,[SpecialCauseType]
|
|
|
|
|
|
,[CRMSpecialCause]
|
|
|
|
|
|
,[CurrentSettledUpset1]
|
|
|
|
|
|
,[CurrentSettledUpset2]
|
|
|
|
|
|
,[Difference]
|
|
|
|
|
|
,[TotalSpread]
|
|
|
|
|
|
,[PaymentMethods]
|
|
|
|
|
|
,[ProjectPhase]
|
|
|
|
|
|
,[OrderAllAmount]
|
|
|
|
|
|
,[NotShipmentsAmount]
|
|
|
|
|
|
,[ExpireUnpaidAmount]
|
|
|
|
|
|
,[ProductsCode]
|
|
|
|
|
|
,[FSALEORGID]
|
|
|
|
|
|
,[FENTRYID]
|
|
|
|
|
|
,[FID],1 Sort FROM #tempDaBiao
|
2025-03-14 10:00:24 +08:00
|
|
|
|
UNION ALL
|
2025-06-25 19:00:53 +08:00
|
|
|
|
SELECT '',
|
2025-03-14 10:00:24 +08:00
|
|
|
|
'',
|
|
|
|
|
|
'',
|
|
|
|
|
|
'合计:',
|
|
|
|
|
|
null,
|
|
|
|
|
|
'',
|
|
|
|
|
|
'',
|
|
|
|
|
|
'',
|
|
|
|
|
|
'',
|
|
|
|
|
|
'',
|
|
|
|
|
|
SUM(t1.Quantity),--数量
|
|
|
|
|
|
SUM(t1.TaxPrice),
|
|
|
|
|
|
SUM(t1.AllAmount),
|
|
|
|
|
|
'',
|
|
|
|
|
|
'',
|
|
|
|
|
|
'',
|
|
|
|
|
|
'',
|
|
|
|
|
|
'',
|
|
|
|
|
|
'',
|
|
|
|
|
|
SUM(t1.CurrentSettledUpset1),
|
|
|
|
|
|
SUM(t1.CurrentSettledUpset2),
|
|
|
|
|
|
SUM(t1.Difference),
|
|
|
|
|
|
SUM(t1.TotalSpread),
|
|
|
|
|
|
'',
|
|
|
|
|
|
'',
|
|
|
|
|
|
SUM(t1.OrderAllAmount),
|
|
|
|
|
|
SUM(t1.NotShipmentsAmount),
|
|
|
|
|
|
SUM(t1.ExpireUnpaidAmount),
|
2025-06-25 19:00:53 +08:00
|
|
|
|
'',0,0,999999,
|
2025-03-14 10:00:24 +08:00
|
|
|
|
0 Sort
|
2025-06-25 19:00:53 +08:00
|
|
|
|
FROM #tempDaBiao t1) t1
|
|
|
|
|
|
order by Sort desc,fid desc ,FIDENTITYID ", tableName);
|
2025-07-09 15:13:33 +08:00
|
|
|
|
//Logger.Error("特价明细报表", sql, new Exception());
|
2025-03-14 10:00:24 +08:00
|
|
|
|
DBUtils.Execute(this.Context, sql);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取前端组件转换过滤条件
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="filter"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public override ReportTitles GetReportTitles(IRptParams filter)
|
|
|
|
|
|
{
|
|
|
|
|
|
ReportTitles reportTitles = new ReportTitles();
|
|
|
|
|
|
DynamicObject customFilter = filter.FilterParameter.CustomFilter;
|
|
|
|
|
|
|
|
|
|
|
|
if (customFilter != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
// 下单时间
|
|
|
|
|
|
string fDate = customFilter["FDate"]?.ToString();
|
|
|
|
|
|
// 下单时间
|
|
|
|
|
|
string fEndDate = customFilter["FEndDate"]?.ToString();
|
|
|
|
|
|
// 纸质合同号
|
|
|
|
|
|
string fPaperContract = customFilter["FPaperContract"]?.ToString();
|
|
|
|
|
|
// 组织
|
|
|
|
|
|
var organizationList = (customFilter["FZuZhi"] as DynamicObjectCollection)?.Select(n => (n["FZuZhi"] as DynamicObject)["Name"].ToString()).ToList();
|
|
|
|
|
|
// 客户 FClient
|
|
|
|
|
|
var fClient = (customFilter["FClient"] as DynamicObject)?["Name"]?.ToString();
|
|
|
|
|
|
// 产品
|
|
|
|
|
|
var fChanPin = (customFilter["FChanPin"] as DynamicObject)?["Name"]?.ToString();
|
|
|
|
|
|
// 项目 FProject
|
|
|
|
|
|
var fProject = (customFilter["FProject"] as DynamicObject)?["Name"]?.ToString();
|
|
|
|
|
|
// 销售员
|
|
|
|
|
|
var fSalesman = (customFilter["FSalesman"] as DynamicObject)?["Name"]?.ToString();
|
|
|
|
|
|
|
|
|
|
|
|
//这里是报表页面的标识
|
|
|
|
|
|
reportTitles.AddTitle("FPaperContract", fPaperContract == null ? "" : fPaperContract);
|
|
|
|
|
|
reportTitles.AddTitle("FClient", fClient == null ? "" : fClient);
|
|
|
|
|
|
reportTitles.AddTitle("FChanPin", fChanPin == null ? "" : fChanPin);
|
|
|
|
|
|
reportTitles.AddTitle("FProject", fProject == null ? "" : fProject);
|
|
|
|
|
|
reportTitles.AddTitle("FSalesman", fSalesman == null ? "" : fSalesman);
|
|
|
|
|
|
reportTitles.AddTitle("FDate", fDate == null ? "" : Convert.ToDateTime(fDate).ToString("yyyy-MM-dd"));
|
|
|
|
|
|
reportTitles.AddTitle("FEndDate", fEndDate == null ? "" : Convert.ToDateTime(fEndDate).ToString("yyyy-MM-dd"));
|
|
|
|
|
|
reportTitles.AddTitle("FZuZhi", organizationList == null ? "" : string.Join(",", organizationList));
|
|
|
|
|
|
}
|
|
|
|
|
|
return reportTitles;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|