Piolot_RepotForm_PeiHao/派诺合同明细存储过程.sql
李狗蛋 69cf26105d 0
2025-03-14 10:00:24 +08:00

237 lines
14 KiB
Transact-SQL

Alter Proc [dbo].[Get_PNHTMXBB]
(
@FSaleOrgId nvarchar(1000),--组织
@FCZZHTH nvarchar(1000),--纸质合同号
@FStartDate2 nvarchar(1000),
@FEndDate2 nvarchar(1000)
)
as
Select
A.FSALEORGID as '组织',
A.FDATE as '日期',
K.FNAME as '客户',
MONTH(A.FDATE) as '月份', --月份
ISNULL(AW1.区域,'') as '所属区域', --所属区域
ISNULL(W1.FNAME,'') as '销售员', --销售员
(SELECT FNAME FROM T_BD_CUSTOMER_L WHERE FCUSTID = A.FCustId) as '购货单位', --购货单位
A.FAPPROVEDATE as '签订日期', --签订日期
A.F_contractnumber as '订单号', --订单号
C.FNAME as '产品名称', --产品名称
C.FNUMBER as '产品编号', --产品名称
C.FSPECIFICATION as '型号规格标准', --型号\规格\标准
A.F_contractnumber+C.FSPECIFICATION as '订单号型号规格标准',
CASE WHEN W8.FNUMBER = 'SX' AND C.FNUMBER like 'L%' AND ISNULL(B.F_PROJECTPROPOSAL,'')!='' THEN B.F_PROJECTPROPOSAL+'的剩余部分'
ELSE C.F_114 END as '型号分类',
CASE WHEN W8.FNUMBER = 'SX' AND C.FNUMBER like 'L%' AND ISNULL(B.F_PROJECTPROPOSAL,'')!='' THEN B.F_PROJECTPROPOSAL+'的剩余部分'
ELSE C.F_115 END as '产品分类',
C.F_116 as '产业线',
CASE WHEN A.F_VRYF_COMBO_LSN = 'DDXS' THEN '单独销售' WHEN A.F_VRYF_COMBO_LSN = 'SXTXS' THEN '随系统销售' WHEN A.F_VRYF_COMBO_LSN = 'XTZHT' THEN '系统主合同' ELSE '' END as '销售类型',
CASE WHEN W5.FDATAVALUE = '仪表' THEN '单独销售' ELSE '随系统销售' END as '销售类型1',
B.FQty as '数量台', --数量/台
ISNuLL(BB.FTaxPrice,0) as '单价元台', --单价元/台
IsNull(BB.FAllAmount_LC,0) as '合同总价', --合同总价
(Select FStockOutQty From T_SAL_ORDERENTRY_R Where FENTRYID = B.FENTRYID) as '已交货数', --已交货数
B.FQty-(Select FStockOutQty From T_SAL_ORDERENTRY_R Where FENTRYID = B.FENTRYID) as '未交货数', --未交货数
CASE WHEN (D.FOPENSTATUS)= 'A' Then '未开' When (D.FOPENSTATUS)= 'B' Then '部分' When (D.FOPENSTATUS)= 'C' Then '完全' Else '' END
as '开票情况', --开票情况
(Select FNAME From T_BAS_PREBDONE_L Where FID = A.F_projectname) as '项目名称', --项目名称
CASE WHEN --项目所属1
(Select aq.F_Projectfield From T_BAS_PREBDTHREE aq JOIN T_BAS_PREBDTHREE_L aw on aq.FID = aw.FID Where aq.FID = A.F_BON) = 1 THEN '建筑楼宇' WHEN --项目所属2
(Select aq.F_Projectfield From T_BAS_PREBDTHREE aq JOIN T_BAS_PREBDTHREE_L aw on aq.FID = aw.FID Where aq.FID = A.F_BON) = 2 THEN '医疗卫生' WHEN --项目所属3
(Select aq.F_Projectfield From T_BAS_PREBDTHREE aq JOIN T_BAS_PREBDTHREE_L aw on aq.FID = aw.FID Where aq.FID = A.F_BON) = 3 THEN '学校' WHEN --项目所属4
(Select aq.F_Projectfield From T_BAS_PREBDTHREE aq JOIN T_BAS_PREBDTHREE_L aw on aq.FID = aw.FID Where aq.FID = A.F_BON) = 4 THEN '文娱康乐' WHEN --项目所属5
(Select aq.F_Projectfield From T_BAS_PREBDTHREE aq JOIN T_BAS_PREBDTHREE_L aw on aq.FID = aw.FID Where aq.FID = A.F_BON) = 5 THEN '市政工程' WHEN --项目所属6
(Select aq.F_Projectfield From T_BAS_PREBDTHREE aq JOIN T_BAS_PREBDTHREE_L aw on aq.FID = aw.FID Where aq.FID = A.F_BON) = 6 THEN '能源' WHEN --项目所属7
(Select aq.F_Projectfield From T_BAS_PREBDTHREE aq JOIN T_BAS_PREBDTHREE_L aw on aq.FID = aw.FID Where aq.FID = A.F_BON) = 7 THEN '工业' WHEN --项目所属8
(Select aq.F_Projectfield From T_BAS_PREBDTHREE aq JOIN T_BAS_PREBDTHREE_L aw on aq.FID = aw.FID Where aq.FID = A.F_BON) = 8 THEN '交通运输'
ELSE '' END as '项目所属领域', --项目所属领域
CASE WHEN --集采业务分类
A.F_PurchasingPro = 'LH' THEN '龙湖' WHEN --集采业务分类
A.F_PurchasingPro = 'BL' THEN '保利地产' WHEN --集采业务分类
A.F_PurchasingPro = 'HR' THEN '华润' WHEN --集采业务分类
A.F_PurchasingPro = 'N' THEN '' WHEN --集采业务分类
A.F_PurchasingPro = 'HEF' THEN '华润非集采' WHEN --集采业务分类
A.F_PurchasingPro = 'LD' THEN '绿地' ELSE ''
END as '集采业务分类', --集采业务分类 LH=龙湖,BL=保利地产,HR=华润,N=否,HEF=华润非集采,LD=绿地
CASE WHEN A.FBUSINESSTYPE = 'VMI' THEN 'VMI业务' WHEN A.FBUSINESSTYPE = 'DRPTRANS' THEN '分销调拨'
WHEN A.FBUSINESSTYPE = 'STRAIGHT' THEN '直运销售' WHEN A.FBUSINESSTYPE = 'CONSIGNMENT' THEN '寄售'
WHEN A.FBUSINESSTYPE = 'NORMAL' THEN '普通销售' WHEN A.FBUSINESSTYPE = 'DRPSALE' THEN '分销购销'
WHEN A.FBUSINESSTYPE = 'RETURNSO' THEN '退货订单' ELSE ''
END as '业务类型-按产品划分',
CASE WHEN
(Select F_Authorization From T_BD_CUSTOMER where FCUSTID = A.FCustId) = 'Y' THEN '代理商' WHEN (Select F_Authorization From T_BD_CUSTOMER where FCUSTID = A.FCustId) = 'N' THEN '直销' ELSE '' END as '直销经销商',
CASE WHEN B.F_SPECIALOFFER = 0 THEN '' WHEN B.F_SPECIALOFFER = 1 THEN '' ELSE '' END as '是否特价',
CASE WHEN W6.FNAME = '产品线' or W6.FNAME = '充电桩团队' or W6.FNAME = '三电产品线' THEN '产品线' WHEN W6.FNAME = '数据中心' or W6.FNAME = '医院行业线' THEN '行业线' ELSE '区域线' END as '业绩类型',
ISNULL(AW1.区域,'') as 'SBU',
(Select wa.FDATAVALUE From T_BAS_ASSISTANTDATAENTRY aw JOIN T_BAS_ASSISTANTDATAENTRY_L wa on aw.FENTRYID = wa.FENTRYID
Where wa.FENTRYID = (Select F_CreditClassification From T_BD_CUSTOMER where FCUSTID = A.FCustId)
AND FDocumentStatus = 'C' AND FFORBIDSTATUS = 'A') as '客户性质', --客户性质
ISNULL(B.F_PROJECTPROPOSAL,'') as '项目方案类型', --新增字段
ISNULL(W7.F_Province,'') as '项目所属省份', --新增字段
CASE WHEN A.F_ORDERTYPE = 'YB' THEN '仪表' WHEN A.F_ORDERTYPE = 'XT' THEN '系统' ELSE ''
END as '表计或系统' --新增字段
INTO #TABLEAAA
From
T_SAL_ORDER A
JOIN
T_SAL_ORDERENTRY B
on B.FID = A.FID
JOIN
T_SAL_ORDERENTRY_F BB
on B.FENTRYID = BB.FENTRYID
LEFT JOIN
T_ORG_ORGANIZATIONS_L AB
on AB.FORGID = A.FSALEORGID
LEFT JOIN
V_BD_SALESMAN_L W1 on W1.fid = A.FSALERID --销售员
LEFT JOIN
(Select 名称,区域,明细区域 From ERPTOHR.HYHRV3.dbo.v_erp_empinfo Where ISNULL(明细区域,'')!=''
AND ISNULL(区域,'')!='' GROUP BY 名称,区域,明细区域) AW1 on W1.FNAME = AW1.名称-- AND ISNULL(AW1.明细区域,'') != '' --视图
LEFT JOIN
T_BD_DEPARTMENT_L W6 on A.FSaleDeptId = W6.FDEPTID --所属区域
LEFT JOIN
T_BAS_PREBDTHREE W7 on W7.FID = A.F_BON --商机
LEFT JOIN
T_BD_CUSTOMER_L K on A.FCUSTID = K.FCUSTID --客户
LEFT JOIN
(Select FNumber,FENTRYID From T_BAS_ASSISTANTDATAENTRY Where FID = '670cc977263353') W8 --合同类型
on W8.FENTRYID = A.F_ORDERCATEGORY
LEFT JOIN
(Select a2.FDATAVALUE,a2.FENTRYID From T_BAS_ASSISTANTDATAENTRY a1 JOIN T_BAS_ASSISTANTDATAENTRY_L a2
on a1.FENTRYID = a2.FENTRYID Where a1.FID = '670cc977263353') W5 on W5.FENTRYID = A.F_ORDERCATEGORY
Left JOIN
(Select aq.FNUMBER,aq.F_114,aq.F_115,aq.FMATERIALID,qa.FNAME,aq.F_XHDL,aq.F_116,qa.FSpecification
From
T_BD_MATERIAL aq
Left JOIN
T_BD_MATERIAL_L qa
on aq.FMATERIALID = qa.FMATERIALID) C --获取物料名称
on B.FMaterialId = C.FMATERIALID
LEFT JOIN
(Select a1.FORDERNUMBER,MAX(a1.FOPENSTATUS)'FOPENSTATUS' From T_AR_RECEIVABLEENTRY a1 JOIN T_AR_RECEIVABLE a2 on a1.FID = a2.FID
Where ISNULL(a1.FORDERNUMBER,'') != '' AND a2.FDOCUMENTSTATUS = 'C' GROUP BY FORDERNUMBER) D on A.FBILLNO = D.FORDERNUMBER
--条件
Where A.FDocumentStatus = 'C' AND B.FMANUALROWCLOSE != '1' AND A.FMANUALCLOSE != '1'
AND A.FSALEORGID = 100302 AND W8.FNumber !='Z'
AND (ISNULL(@FSaleOrgId,'') = '' or AB.FNAME = @FSaleOrgId)
AND (ISNULL(@FCZZHTH,'') = '' or A.F_contractnumber like '%'+@FCZZHTH+'%')
AND (ISNULL(@FStartDate2,'') = '' or A.FAPPROVEDATE >= @FStartDate2)
AND (ISNULL(@FEndDate2,'') = '' or A.FAPPROVEDATE < DATEADD(DAY, 1, CONVERT(DATE, @FEndDate2)))
AND ISNULL(AW1.区域,'') != '碳索智控'
AND ISNULL(K.FNAME,'') NOT IN ('派诺科技(香港)有限公司','武汉派诺科技发展有限公司')
AND ISNULL(W1.FNAME,'') != '兴诺总';
Select
A.FSALEORGID as '组织',
A.FDATE as '日期',
K.FNAME as '客户',
MONTH(A.FDATE) as '月份', --月份
ISNULL(AW1.区域,'') as '所属区域', --所属区域
ISNULL(W1.FNAME,'') as '销售员', --销售员
(SELECT FNAME FROM T_BD_CUSTOMER_L WHERE FCUSTID = A.FCustId) as '购货单位', --购货单位
A.FAPPROVEDATE as '签订日期', --签订日期
A.F_contractnumber as '订单号', --订单号
C.FNAME as '产品名称', --产品名称
C.FNUMBER as '产品编号', --产品名称
C.FSPECIFICATION as '型号规格标准', --型号\规格\标准
A.F_contractnumber+C.FSPECIFICATION as '订单号型号规格标准',
CASE WHEN W8.FNUMBER = 'SX' AND C.FNUMBER like 'L%' AND ISNULL(B.F_PROJECTPROPOSAL,'')!='' THEN B.F_PROJECTPROPOSAL+'的剩余部分'
ELSE C.F_114 END as '型号分类',
CASE WHEN W8.FNUMBER = 'SX' AND C.FNUMBER like 'L%' AND ISNULL(B.F_PROJECTPROPOSAL,'')!='' THEN B.F_PROJECTPROPOSAL+'的剩余部分'
ELSE C.F_115 END as '产品分类',
C.F_116 as '产业线',
CASE WHEN A.F_VRYF_COMBO_LSN = 'DDXS' THEN '单独销售' WHEN A.F_VRYF_COMBO_LSN = 'SXTXS' THEN '随系统销售' WHEN A.F_VRYF_COMBO_LSN = 'XTZHT' THEN '系统主合同' ELSE '' END as '销售类型',
CASE WHEN W5.FDATAVALUE = '仪表' THEN '单独销售' ELSE '随系统销售' END as '销售类型1',
B.FQty as '数量台', --数量/台
ISNuLL(BB.FTaxPrice,0) as '单价元台', --单价元/台
IsNull(BB.FAllAmount_LC,0) as '合同总价', --合同总价
(Select FStockOutQty From T_SAL_ORDERENTRY_R Where FENTRYID = B.FENTRYID) as '已交货数', --已交货数
(Select FRemainOutQty From T_SAL_ORDERENTRY_R Where FENTRYID = B.FENTRYID) as '未交货数', --未交货数
CASE WHEN (D.FOPENSTATUS)= 'A' Then '未开' When (D.FOPENSTATUS)= 'B' Then '部分' When (D.FOPENSTATUS)= 'C' Then '完全' Else '' END as '开票情况', --开票情况
(Select FNAME From T_BAS_PREBDONE_L Where FID = A.F_projectname) as '项目名称', --项目名称
CASE WHEN --项目所属1
(Select aq.F_Projectfield From T_BAS_PREBDTHREE aq JOIN T_BAS_PREBDTHREE_L aw on aq.FID = aw.FID Where aq.FID = A.F_BON) = 1 THEN '建筑楼宇' WHEN --项目所属2
(Select aq.F_Projectfield From T_BAS_PREBDTHREE aq JOIN T_BAS_PREBDTHREE_L aw on aq.FID = aw.FID Where aq.FID = A.F_BON) = 2 THEN '医疗卫生' WHEN --项目所属3
(Select aq.F_Projectfield From T_BAS_PREBDTHREE aq JOIN T_BAS_PREBDTHREE_L aw on aq.FID = aw.FID Where aq.FID = A.F_BON) = 3 THEN '学校' WHEN --项目所属4
(Select aq.F_Projectfield From T_BAS_PREBDTHREE aq JOIN T_BAS_PREBDTHREE_L aw on aq.FID = aw.FID Where aq.FID = A.F_BON) = 4 THEN '文娱康乐' WHEN --项目所属5
(Select aq.F_Projectfield From T_BAS_PREBDTHREE aq JOIN T_BAS_PREBDTHREE_L aw on aq.FID = aw.FID Where aq.FID = A.F_BON) = 5 THEN '市政工程' WHEN --项目所属6
(Select aq.F_Projectfield From T_BAS_PREBDTHREE aq JOIN T_BAS_PREBDTHREE_L aw on aq.FID = aw.FID Where aq.FID = A.F_BON) = 6 THEN '能源' WHEN --项目所属7
(Select aq.F_Projectfield From T_BAS_PREBDTHREE aq JOIN T_BAS_PREBDTHREE_L aw on aq.FID = aw.FID Where aq.FID = A.F_BON) = 7 THEN '工业' WHEN --项目所属8
(Select aq.F_Projectfield From T_BAS_PREBDTHREE aq JOIN T_BAS_PREBDTHREE_L aw on aq.FID = aw.FID Where aq.FID = A.F_BON) = 8 THEN '交通运输'
ELSE '' END as '项目所属领域', --项目所属领域
CASE WHEN --集采业务分类
A.F_PurchasingPro = 'LH' THEN '龙湖' WHEN --集采业务分类
A.F_PurchasingPro = 'BL' THEN '保利地产' WHEN --集采业务分类
A.F_PurchasingPro = 'HR' THEN '华润' WHEN --集采业务分类
A.F_PurchasingPro = 'N' THEN '' WHEN --集采业务分类
A.F_PurchasingPro = 'HEF' THEN '华润非集采' WHEN --集采业务分类
A.F_PurchasingPro = 'LD' THEN '绿地' ELSE ''
END as '集采业务分类', --集采业务分类 LH=龙湖,BL=保利地产,HR=华润,N=否,HEF=华润非集采,LD=绿地
CASE WHEN A.FBUSINESSTYPE = 'VMI' THEN 'VMI业务' WHEN A.FBUSINESSTYPE = 'DRPTRANS' THEN '分销调拨'
WHEN A.FBUSINESSTYPE = 'STRAIGHT' THEN '直运销售' WHEN A.FBUSINESSTYPE = 'CONSIGNMENT' THEN '寄售'
WHEN A.FBUSINESSTYPE = 'NORMAL' THEN '普通销售' WHEN A.FBUSINESSTYPE = 'DRPSALE' THEN '分销购销'
WHEN A.FBUSINESSTYPE = 'RETURNSO' THEN '退货订单' ELSE ''
END as '业务类型-按产品划分',
CASE WHEN
(Select F_Authorization From T_BD_CUSTOMER where FCUSTID = A.FCustId) = 'Y' THEN '代理商' WHEN (Select F_Authorization From T_BD_CUSTOMER where FCUSTID = A.FCustId) = 'N' THEN '直销' ELSE '' END as '直销经销商',
CASE WHEN B.F_SPECIALOFFER = 0 THEN '' WHEN B.F_SPECIALOFFER = 1 THEN '' ELSE '' END as '是否特价',
CASE WHEN W6.FNAME = '产品线' or W6.FNAME = '充电桩团队' or W6.FNAME = '三电产品线' THEN '产品线' WHEN W6.FNAME = '数据中心' or W6.FNAME = '医院行业线' THEN '行业线' ELSE '区域线' END as '业绩类型',
ISNULL(AW1.区域,'') as 'SBU',
(Select wa.FDATAVALUE From T_BAS_ASSISTANTDATAENTRY aw JOIN T_BAS_ASSISTANTDATAENTRY_L wa on aw.FENTRYID = wa.FENTRYID
Where wa.FENTRYID = (Select F_CreditClassification From T_BD_CUSTOMER where FCUSTID = A.FCustId)
AND FDocumentStatus = 'C' AND FFORBIDSTATUS = 'A') as '客户性质', --客户性质
ISNULL(B.F_PROJECTPROPOSAL,'') as '项目方案类型', --新增字段
ISNULL(W7.F_Province,'') as '项目所属省份', --新增字段
CASE WHEN A.F_ORDERTYPE = 'YB' THEN '仪表' WHEN A.F_ORDERTYPE = 'XT' THEN '系统' ELSE ''
END as '表计或系统' --新增字段
INTO #TABLEBBB
From
T_SAL_ORDER A
JOIN
T_SAL_ORDERENTRY B
on B.FID = A.FID
JOIN
T_SAL_ORDERENTRY_F BB
on B.FENTRYID = BB.FENTRYID
LEFT JOIN
T_ORG_ORGANIZATIONS_L AB
on AB.FORGID = A.FSALEORGID
LEFT JOIN
V_BD_SALESMAN_L W1 on W1.fid = A.FSALERID --销售员
LEFT JOIN
(Select 名称,区域,明细区域 From ERPTOHR.HYHRV3.dbo.v_erp_empinfo Where ISNULL(明细区域,'')!=''
AND ISNULL(区域,'')!='' GROUP BY 名称,区域,明细区域) AW1 on W1.FNAME = AW1.名称-- AND ISNULL(AW1.明细区域,'') != '' --视图
LEFT JOIN
T_BD_DEPARTMENT_L W6 on A.FSaleDeptId = W6.FDEPTID --所属区域
LEFT JOIN
T_BAS_PREBDTHREE W7 on W7.FID = A.F_BON --商机
LEFT JOIN
T_BD_CUSTOMER_L K on A.FCUSTID = K.FCUSTID --客户
LEFT JOIN
(Select FNumber,FENTRYID From T_BAS_ASSISTANTDATAENTRY Where FID = '670cc977263353') W8
on W8.FENTRYID = A.F_ORDERCATEGORY
LEFT JOIN
(Select a2.FDATAVALUE,a2.FENTRYID From T_BAS_ASSISTANTDATAENTRY a1 JOIN T_BAS_ASSISTANTDATAENTRY_L a2
on a1.FENTRYID = a2.FENTRYID Where a1.FID = '670cc977263353') W5 on W5.FENTRYID = A.F_ORDERCATEGORY
Left JOIN
(Select aq.FNUMBER,aq.F_114,aq.F_115,aq.FMATERIALID,qa.FNAME,aq.F_XHDL,aq.F_116,qa.FSpecification
From
T_BD_MATERIAL aq
Left JOIN
T_BD_MATERIAL_L qa
on aq.FMATERIALID = qa.FMATERIALID) C
on B.FMaterialId = C.FMATERIALID
LEFT JOIN
(Select a1.FORDERNUMBER,MAX(a1.FOPENSTATUS)'FOPENSTATUS' From T_AR_RECEIVABLEENTRY a1 JOIN T_AR_RECEIVABLE a2 on a1.FID = a2.FID
Where ISNULL(a1.FORDERNUMBER,'') != '' AND a2.FDOCUMENTSTATUS = 'C' GROUP BY FORDERNUMBER) D on A.FBILLNO = D.FORDERNUMBER
--条件
Where A.FDocumentStatus = 'C' AND B.FMANUALROWCLOSE != '1' AND A.FMANUALCLOSE != '1'
AND A.FSALEORGID != 100302 AND W8.FNumber !='Z'
AND (ISNULL(@FSaleOrgId,'') = '' or AB.FNAME = @FSaleOrgId)
AND (ISNULL(@FCZZHTH,'') = '' or A.F_contractnumber like '%'+@FCZZHTH+'%')
AND (ISNULL(@FStartDate2,'') = '' or A.FAPPROVEDATE >= @FStartDate2)
AND (ISNULL(@FEndDate2,'') = '' or A.FAPPROVEDATE < DATEADD(DAY, 1, CONVERT(DATE, @FEndDate2)))
Select * From #TABLEAAA UNION ALL (Select * From #TABLEBBB)