Project

General

Profile

New Text Document.txt

Luc Tran Van, 07/17/2025 04:19 PM

 
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
)