1
|
ALTER PROC dbo.rpt_REQ_DELIVERY_MASTER_Excel
|
2
|
@p_EMP_ID VARCHAR(50) = NULL,
|
3
|
@p_DEP_ID VARCHAR(50) = NULL,
|
4
|
@p_fromdate VARCHAR(20) = NULL,
|
5
|
@p_todate VARCHAR(20) = NULL,
|
6
|
@p_BILL_STATUS VARCHAR(20) = NULL,
|
7
|
@p_LEVEL VARCHAR(15) = NULL
|
8
|
AS
|
9
|
SELECT ROW_NUMBER() OVER (ORDER BY A.REQ_CODE) AS STT,
|
10
|
A.FROM_DATE
|
11
|
,A.REQ_CODE
|
12
|
,DT.REQ_DT_ID AS BILL_ID --,DT.BILL_ID
|
13
|
,ca.CONTENT AS TYPE_MAIL_NAME
|
14
|
,DT.EMP_REVEICE_NAME
|
15
|
,DT.PHONE
|
16
|
,DT.LOCATION
|
17
|
,ca1.CONTENT AS DV_CHUYEN_PHAT
|
18
|
,DICH_VU.ADD_SEVICE_NAME
|
19
|
,DT.QUANTITY
|
20
|
,DT.TRAN_COST,
|
21
|
CASE
|
22
|
WHEN DT.BILL_STATUS IN ('TRANSPORT_AXIS', 'TRANSPORT_RECEIVE_TO_DELIVERY', 'PACKAGE_CONFIRM_GO_DELIVERY', 'TRANSPORT_INTERNAL')
|
23
|
THEN N'Đang vận chuyển'
|
24
|
WHEN DT.BILL_STATUS IN ('ASSIGN_DELIVERY', 'DELIVERING')
|
25
|
THEN N'Hàng đang đi giao/Đang hoàn (dựa vào is_return)'
|
26
|
ELSE dss.STATUS_NAME
|
27
|
END AS STATUS_NAME
|
28
|
FROM DELI_REQ_DELIVERY_MASTER A
|
29
|
INNER JOIN DELI_REQ_DELIVERY_DT DT ON A.REQ_ID = DT.REQ_ID
|
30
|
LEFT JOIN CM_ALLCODE ca ON ca.CDVAL = A.TYPE_MAIL AND ca.CDNAME = 'TYPE_MAIL' AND ca.CDTYPE = 'DELI'
|
31
|
LEFT JOIN CM_ALLCODE ca1 ON ca1.CDVAL = A.TRAN_SV AND ca1.CDNAME = 'TRAN_SV' AND ca1.CDTYPE = 'DELI'
|
32
|
OUTER APPLY (
|
33
|
SELECT
|
34
|
STRING_AGG(B.ADD_SEVICE_NAME, ', ') AS ADD_SEVICE_NAME
|
35
|
FROM DELI_ADD_SERVICE ASE
|
36
|
INNER JOIN DELI_CM_ADD_SEVICE B ON ASE.ADD_ID = B.ID_ADD
|
37
|
WHERE ASE.REQ_ID = A.REQ_ID
|
38
|
) AS DICH_VU
|
39
|
LEFT JOIN DELI_SYNC_STATUS dss ON DT.BILL_STATUS = dss.STATUS_CODE
|
40
|
WHERE 1=1
|
41
|
AND (A.AUTH_STATUS= 'A') -- chỉ lấy những phiếu có trạng thái đã duyệt
|
42
|
AND(DT.BILL_ID IS NOT NULL AND DT.BILL_ID <> '') -- Chỉ lấy những phiếu có bill_id
|
43
|
AND (A.DEP_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID ='')
|
44
|
AND (A.EMP_ID = @p_EMP_ID OR @p_EMP_ID IS NULL OR @p_EMP_ID ='')
|
45
|
AND (@p_fromdate IS NULL OR @p_fromdate = '' OR CONVERT(DATE, A.FROM_DATE, 103) >= CONVERT(DATE, @p_fromdate, 103))
|
46
|
AND (@p_todate IS NULL OR @p_todate = '' OR CONVERT(DATE, A.FROM_DATE, 103) <= CONVERT(DATE, @p_todate, 103))
|
47
|
AND (
|
48
|
(@p_BILL_STATUS = 'TRANS_GO' AND DT.BILL_STATUS IN ('TRANSPORT_AXIS', 'TRANSPORT_RECEIVE_TO_DELIVERY', 'PACKAGE_CONFIRM_GO_DELIVERY', 'TRANSPORT_INTERNAL'))
|
49
|
OR(@p_BILL_STATUS = 'TRANS_GIAO' AND DT.BILL_STATUS IN ('DELIVERING', 'ASSIGN_DELIVERY'))
|
50
|
OR (DT.BILL_STATUS LIKE '%' + @p_BILL_STATUS + '%' OR @p_BILL_STATUS IS NULL OR @p_BILL_STATUS = '')
|
51
|
)
|