Project

General

Profile

BC. XUAT.NHAP.TON.KHO.Vl.txt

Luc Tran Van, 10/20/2020 04:24 PM

 
1
ALTER  PROCEDURE [dbo].[rpt_NhapXuatTonKhoVatLieuDuTru_BanViet]
2
@p_Fromdate VARCHAR(20) =NULL, @p_Todate VARCHAR(20) =NULL, @p_Branch_ID VARCHAR(15) =NULL, @p_Level VARCHAR(10) =NULL,@p_WARE_HOUSE VARCHAR(15) = NULL,
3
@p_BRANCH_LOGIN VARCHAR(15) =NULL
4
AS
5
DECLARE @BRANCH_TMP TABLE ( BRANCH_ID VARCHAR(15), BRANCH_NAME NVARCHAR(200))
6

    
7
DECLARE @tmp TABLE(BRANCH_ID VARCHAR(15));
8
INSERT INTO @tmp
9
SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_Branch_ID);
10

    
11
IF(@p_LEVEL='ALL')
12
	INSERT INTO @BRANCH_TMP
13
	SELECT A.BRANCH_ID,(SELECT BRANCH_NAME FROM CM_BRANCH CM WHERE CM.BRANCH_ID =A.BRANCH_ID) FROM [dbo].[CM_BRANCH_GETCHILDID](@p_Branch_ID) A; 
14
ELSE
15
	INSERT INTO @BRANCH_TMP
16
	SELECT BRANCH_ID,BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =@p_Branch_ID
17

    
18
--DECLARE @tmp TABLE(BRANCH_ID VARCHAR(15));
19
--INSERT INTO @tmp
20
--SELECT BRANCH_ID FROM CM_BRANCH WHERE BRANCH_ID=@p_BRANCH_LOGIN;
21

    
22
DECLARE @BRANCH_NAME NVARCHAR(1000)
23
SET @BRANCH_NAME = (SELECT BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =@p_Branch_ID)
24

    
25

    
26
DECLARE @TABLE_REPORT TABLE(STT INT,LIQ_ACCTNO NVARCHAR(40),MATERIAL_CODE NVARCHAR(100),GROUP_NAME NVARCHAR(100),MATERIAL_NAME NVARCHAR(100),
27
MATERIAL_ACCTNO NVARCHAR(40),SLTonDau NUMERIC(18,0),
28
THANHTIENTonDau NUMERIC(18,0),SLNhap NUMERIC(18,0),THANHTIENNhap NUMERIC(18,0),SLXuatLe NUMERIC(18,0),ThanhTienXuatLe NUMERIC(18,0),SLDieuChuyen NUMERIC(18,0),ThanhTienDieuChuyen NUMERIC(18,0),
29
SLXuatTapTrung NUMERIC(18,0),ThanhTienXuatTapTrung NUMERIC(18,0),SLTonCuoi NUMERIC(18,0),THANHTIENTonCuoi NUMERIC(18,0),
30
UNIT_NAME NVARCHAR(50),GROUP_ID VARCHAR(50), GROUP_LEVEL1 VARCHAR(15), GROUP_LEVEL2 VARCHAR(15), DonGia DECIMAL(18,0), SLThuHoi NUMERIC(18,0),ThanhTienThuHoi NUMERIC(18,0), NOTES NVARCHAR(1000),DVSD NVARCHAR(1000), ORDER_IDE INT)
31
BEGIN
32
-- LEVEL 1
33
INSERT INTO @TABLE_REPORT SELECT AA.*,'5' FROM
34
(
35
	SELECT Row_number() over(order by BRT.BRANCH_NAME) AS STT, GR.LIQ_ACCTNO, F.PRICE_CODE MATERIAL_CODE,GR.GROUP_NAME,MI.MATERIAL_NAME, '' MATERIAL_ACCTNO, 
36
	ISNULL(A.SOLUONG_TON_DAU,0) SLTonDau, 
37
	ISNULL(A.SOTIEN_TONDAU,0) THANHTIENTonDau,
38
	ISNULL(A5.NHAP_TRONG_KI,0) SLNhap, 
39
	ISNULL(A5.SOTIEN_NHAP_TRONG_KI,0) THANHTIENNhap,
40
	ISNULL(A1.SOLUONG_XUAT_DONLE,0) AS SLXuatLe,
41
	ISNULL(A1.SOTIEN_XUAT_DONLE,0) AS ThanhTienXuatLe,
42
	ISNULL(TF.SOLUONG_DIEU_CHUYEN,0) AS SLDieuChuyen,
43
	ISNULL(TF.SOTIEN_DIEU_CHUYEN,0) AS ThanhTienDieuChuyen,
44
	 ISNULL(A2.SOLUONG_XUAT_TAP_TRUNG,0) AS SLXuatTapTrung,
45
	ISNULL(A2.SOTIEN_XUAT_TAP_TRUNG,0) AS ThanhTienXuatTapTrung, 
46
	ISNULL(A4.SOLUONG_TON_CUOI,0) SLTonCuoi,ISNULL(A4.SOTIEN_TONCUOI,0) THANHTIENTonCuoi,UN.UNIT_NAME,
47
	--ISNULL(DBO.FN_GET_MW_GROUP_ID(F.GROUP_ID,1),DBO.FN_GET_MW_GROUP_ID(F.GROUP_ID,1)) GROUP_ID,
48
	MI.GROUP_ID  GROUP_ID,
49
	[dbo].[FN_GET_MW_GROUP_ID](MI.GROUP_ID,1) GROUP_LEVE1, 
50
	[dbo].[FN_GET_MW_GROUP_ID](MI.GROUP_ID,2) GROUP_LEVEL2, F.PRICE, TH.SOLUONG_THU_HOI, TH.SOTIEN_THU_HOI,MI.NOTES,( BRT.BRANCH_NAME) AS BRANCH_NAME
51
	FROM @BRANCH_TMP BRT
52
	LEFT JOIN dbo.MW_MAST_BAL MB ON MB.BRANCH_ID = BRT.BRANCH_ID
53
	LEFT JOIN MW_MAST_PRICE F ON F.PRICE_ID=MB.PRICE_ID
54
	LEFT JOIN MW_IN MI ON F.MATERIAL_ID = MI.IN_ID
55
	LEFT JOIN MW_IN_MASTER MST ON MI.IN_MASTER_ID = MST.IN_ID
56
	LEFT JOIN MW_MATERIAL MT ON MI.MATERIAL_ID = MT.MATERIAL_ID
57
	
58
	LEFT JOIN
59
	(
60
		SELECT PR.PRICE_ID,B.BRANCH_ID, SUM (CASE WHEN A.CRDR='C' THEN A.QTY ELSE -A.QTY END) AS SOLUONG_TON_DAU,
61
		SUM (CASE WHEN A.CRDR='C' THEN A.TOTAL_AMT ELSE -A.TOTAL_AMT END) AS SOTIEN_TONDAU
62
		FROM
63
		MW_MAST_BAL_STMT A 
64
		LEFT JOIN MW_MAST_BAL B ON A.MAST_BAL_ID = B.MAST_BAL_ID
65
		LEFT JOIN MW_MAST_PRICE PR ON B.PRICE_ID = PR.PRICE_ID
66
		WHERE CONVERT(DATE,A.TRN_DATE, 103) < CONVERT(DATE, @p_Fromdate,103) 		
67
		AND (EXISTS (SELECT [@BRANCH_TMP].BRANCH_ID FROM @BRANCH_TMP WHERE [@BRANCH_TMP].BRANCH_ID=B.BRANCH_ID))
68
		GROUP BY PR.PRICE_ID,B.BRANCH_ID
69
	) A ON F.PRICE_ID = A.PRICE_ID AND A.BRANCH_ID=BRT.BRANCH_ID
70

    
71
	LEFT JOIN
72
	(
73
		SELECT PR.PRICE_ID,B.BRANCH_ID, SUM (CASE WHEN A.CRDR='D' THEN A.QTY ELSE 0 END) AS SOLUONG_XUAT_DONLE,
74
		SUM (CASE WHEN A.CRDR='D' THEN A.TOTAL_AMT ELSE 0 END) AS SOTIEN_XUAT_DONLE
75
		FROM
76
		MW_MAST_BAL_STMT A 
77
		LEFT JOIN MW_MAST_BAL B ON A.MAST_BAL_ID = B.MAST_BAL_ID
78
		LEFT JOIN MW_MAST_PRICE PR ON B.PRICE_ID = PR.PRICE_ID
79
		WHERE A.TRN_TYPE IN ('O','T','C') AND CONVERT(DATE,A.TRN_DATE, 103) >= CONVERT(DATE, @p_Fromdate,103)
80
		AND CONVERT(DATE,A.TRN_DATE, 103) <= CONVERT(DATE, @p_Todate,103) 
81
		AND (EXISTS (SELECT [@BRANCH_TMP].BRANCH_ID FROM @BRANCH_TMP WHERE [@BRANCH_TMP].BRANCH_ID=B.BRANCH_ID))
82
		GROUP BY PR.PRICE_ID,B.BRANCH_ID
83
	) A1 ON F.PRICE_ID = A1.PRICE_ID  AND A1.BRANCH_ID=BRT.BRANCH_ID
84
	LEFT JOIN
85
	(
86
		SELECT PR.PRICE_ID,B.BRANCH_ID, SUM (CASE WHEN A.CRDR='D' THEN A.QTY ELSE 0 END) AS SOLUONG_XUAT_TAP_TRUNG,
87
		SUM (CASE WHEN A.CRDR='D' THEN A.TOTAL_AMT ELSE 0 END) AS SOTIEN_XUAT_TAP_TRUNG
88
		FROM
89
		MW_MAST_BAL_STMT A 
90
		LEFT JOIN MW_MAST_BAL B ON A.MAST_BAL_ID = B.MAST_BAL_ID
91
		LEFT JOIN MW_MAST_PRICE PR ON B.PRICE_ID = PR.PRICE_ID
92
		WHERE A.TRN_TYPE ='L' AND CONVERT(DATE,A.TRN_DATE, 103) >= CONVERT(DATE, @p_Fromdate,103)
93
		AND CONVERT(DATE,A.TRN_DATE, 103) <= CONVERT(DATE, @p_Todate,103)
94
		AND (EXISTS (SELECT [@BRANCH_TMP].BRANCH_ID FROM @BRANCH_TMP WHERE [@BRANCH_TMP].BRANCH_ID=B.BRANCH_ID))
95
		GROUP BY PR.PRICE_ID,B.BRANCH_ID
96
	) A2 ON F.PRICE_ID = A2.PRICE_ID AND A2.BRANCH_ID=BRT.BRANCH_ID
97
	LEFT JOIN
98
	(
99
		SELECT PR.PRICE_ID,B.BRANCH_ID, SUM (CASE WHEN A.CRDR='C' THEN A.QTY ELSE 0 END) AS SOLUONG_DIEU_CHUYEN,
100
		SUM (CASE WHEN A.CRDR='C' THEN A.TOTAL_AMT ELSE 0 END) AS SOTIEN_DIEU_CHUYEN
101
		FROM
102
		MW_MAST_BAL_STMT A 
103
		LEFT JOIN MW_MAST_BAL B ON A.MAST_BAL_ID = B.MAST_BAL_ID
104
		LEFT JOIN MW_MAST_PRICE PR ON B.PRICE_ID = PR.PRICE_ID
105
		WHERE A.TRN_TYPE IN ('T','C') AND CONVERT(DATE,A.TRN_DATE, 103) >= CONVERT(DATE, @p_Fromdate,103)
106
		AND CONVERT(DATE,A.TRN_DATE, 103) <= CONVERT(DATE, @p_Todate,103)
107
		AND  (EXISTS ( SELECT TRANSFER_ID FROM dbo.MW_TRANSFER_CONF WHERE TRANSFER_ID=A.REF_ID AND BRANCH_RECIVE=B.BRANCH_ID))
108
		AND (EXISTS (SELECT [@BRANCH_TMP].BRANCH_ID FROM @BRANCH_TMP WHERE [@BRANCH_TMP].BRANCH_ID=B.BRANCH_ID))
109
		GROUP BY PR.PRICE_ID,B.BRANCH_ID
110
	) TF ON F.PRICE_ID = TF.PRICE_ID AND TF.BRANCH_ID=BRT.BRANCH_ID
111
	LEFT JOIN
112
	(
113
		SELECT PR.PRICE_ID,B.BRANCH_ID, SUM (CASE WHEN A.CRDR='D' THEN A.QTY ELSE 0 END) AS SOLUONG_THU_HOI,
114
		SUM (CASE WHEN A.CRDR='D' THEN A.TOTAL_AMT ELSE 0 END) AS SOTIEN_THU_HOI
115
		FROM
116
		MW_MAST_BAL_STMT A 
117
		LEFT JOIN MW_MAST_BAL B ON A.MAST_BAL_ID = B.MAST_BAL_ID
118
		LEFT JOIN MW_MAST_PRICE PR ON B.PRICE_ID = PR.PRICE_ID
119
		WHERE A.TRN_TYPE ='C' AND CONVERT(DATE,A.TRN_DATE, 103) >= CONVERT(DATE, @p_Fromdate,103)
120
		AND CONVERT(DATE,A.TRN_DATE, 103) <= CONVERT(DATE, @p_Todate,103)
121
		AND (EXISTS (SELECT [@BRANCH_TMP].BRANCH_ID FROM @BRANCH_TMP WHERE [@BRANCH_TMP].BRANCH_ID=B.BRANCH_ID))
122
		GROUP BY PR.PRICE_ID,B.BRANCH_ID
123
	) TH ON F.PRICE_ID = TH.PRICE_ID AND TH.BRANCH_ID=BRT.BRANCH_ID
124
	LEFT JOIN
125
	(
126
		SELECT PR.PRICE_ID,B.BRANCH_ID, SUM (CASE WHEN A.CRDR='C' THEN A.QTY ELSE -A.QTY END) AS SOLUONG_TON_CUOI,
127
		SUM (CASE WHEN A.CRDR='C' THEN A.TOTAL_AMT ELSE -A.TOTAL_AMT END) AS SOTIEN_TONCUOI
128
		FROM
129
		MW_MAST_BAL_STMT A 
130
		LEFT JOIN MW_MAST_BAL B ON A.MAST_BAL_ID = B.MAST_BAL_ID
131
		LEFT JOIN MW_MAST_PRICE PR ON B.PRICE_ID = PR.PRICE_ID
132
		WHERE CONVERT(DATE,A.TRN_DATE, 103) <= CONVERT(DATE, @p_Todate,103)
133
		AND (EXISTS (SELECT [@BRANCH_TMP].BRANCH_ID FROM @BRANCH_TMP WHERE [@BRANCH_TMP].BRANCH_ID=B.BRANCH_ID))
134
		GROUP BY PR.PRICE_ID,B.BRANCH_ID
135
	) A4 ON F.PRICE_ID = A4.PRICE_ID AND A4.BRANCH_ID=BRT.BRANCH_ID
136
	LEFT JOIN
137
	(
138
		SELECT PR.PRICE_ID,B.BRANCH_ID, SUM (CASE WHEN A.CRDR='C' THEN A.QTY ELSE 0 END) AS NHAP_TRONG_KI,
139
		SUM (CASE WHEN A.CRDR='C' THEN A.TOTAL_AMT ELSE 0 END) AS SOTIEN_NHAP_TRONG_KI
140
		FROM
141
		MW_MAST_BAL_STMT A 
142
		LEFT JOIN MW_MAST_BAL B ON A.MAST_BAL_ID = B.MAST_BAL_ID
143
		LEFT JOIN MW_MAST_PRICE PR ON B.PRICE_ID = PR.PRICE_ID
144
		WHERE A.TRN_TYPE  IN ('I','O') AND CONVERT(DATE,A.TRN_DATE, 103) >= CONVERT(DATE, @p_Fromdate,103) AND CONVERT(DATE,A.TRN_DATE, 103) <= CONVERT(DATE, @p_Todate,103) 
145
		AND (EXISTS (SELECT [@BRANCH_TMP].BRANCH_ID FROM @BRANCH_TMP WHERE [@BRANCH_TMP].BRANCH_ID=B.BRANCH_ID))
146
		GROUP BY PR.PRICE_ID,B.BRANCH_ID
147
	) A5 ON F.PRICE_ID = A5.PRICE_ID AND A5.BRANCH_ID= BRT.BRANCH_ID
148
	LEFT JOIN MW_GROUP GR ON MI.GROUP_ID = GR.GROUP_ID	
149
	LEFT JOIN CM_UNIT UN ON MT.UNIT_ID = UN.UNIT_ID
150
	WHERE MST.WARE_HOUSE =@p_WARE_HOUSE
151
	-- LUCTV BO SUNG DIEU KIEN CHI LAY NHUNG LO VAT LIEU DUOC NHAP KHO TRONG KHOANG THOI GIAN TU NGAY DEN NGAY
152
	--AND (CONVERT(DATE,MST.APPROVE_DT_KT,103) >= CONVERT (DATE,@p_Fromdate,103) OR @p_Fromdate IS NULL OR @p_Fromdate ='')
153
	AND (CONVERT(DATE,MST.APPROVE_DT_KT,103) <= CONVERT (DATE,@p_Todate,103) OR @p_Todate IS NULL OR @p_Todate ='')
154
) AA
155
SELECT A.* FROM @TABLE_REPORT A
156
ORDER BY A.DVSD
157
END