ALTER PROCEDURE [dbo].[PL_REQUEST_DOC_TRANSFER_Upd]
@p_REQ_ID varchar(15) = NULL,
@p_TYPE_PROCESS varchar(50) = NULL,
@p_MAKERID varchar(100)= NULL,
@p_AUTH_STATUS VARCHAR(1) = NULL,
@p_CHECKER_ID VARCHAR(100) = NULL,
@p_APPROVE_DT VARCHAR(50) = NULL,
@p_USERNAME varchar(100) = NULL,
@p_NOTES NVARCHAR(MAX)= NULL,
@p_DVKD_USER_APP NVARCHAR(500)= NULL
AS
BEGIN
DECLARE
@NOTIFATION NVARCHAR(100) = NULL,
@BRANCHID VARCHAR(20)= NULL,
@DEP_ID VARCHAR(20),
@NOTIFY_TO_USER VARCHAR(MAX) = '',
@COMPLETE BIT = 0,
@REQ_TYPE VARCHAR(20) = (SELECT TOP 1 trsd.REQ_TYPE FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.REQ_ID = @p_REQ_ID),
@CURR_PROCESS VARCHAR(50) = (SELECT TOP 1 A.PROCESS_ID FROM PL_REQUEST_PROCESS A WHERE A.REQ_ID = @p_REQ_ID AND A.STATUS = 'C')
SELECT @BRANCHID = tu.TLSUBBRID, @DEP_ID = tu.DEP_ID FROM TL_USER tu WHERE tu.TLNANME = @p_CHECKER_ID
DECLARE @ASSET_ID_LST VARCHAR(MAX), @CURRENT_TRANS_ERROR NVARCHAR(MAX)
BEGIN TRANSACTION
IF(EXISTS(SELECT REQ_ID FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID AND STATUS = 'REJECT'))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Phiếu yêu cầu đang bị trả về' ErrorDesc
RETURN '-1'
END
-- GỬI TRƯỞNG ĐƠN VỊ
IF(@p_TYPE_PROCESS='S_DVKD')
BEGIN
--PHUCVH 26/12/22 RÀNG BUỘC KHÔNG CHO TẠO 2 PYC CÙNG 1 TÀI SẢN CHƯA HOÀN THÀNH SỬA CHỮA
--&& TS ĐÃ ĐƯỢC THÊM Ở LƯỚI TS CẦN THAY THẾ TRÊN PYC CẤP PHÁT KHÔNG ĐƯỢC YÊU CẦU SỬA CHỮA
IF(@REQ_TYPE = 'SC')
BEGIN
DECLARE @MESSAGE_VALIDATION NVARCHAR(MAX)
DECLARE @TABLE_ASSCODE_VALIDATION TABLE (ASSET_CODE VARCHAR(100), REQ_CODE VARCHAR(100))
--RÀNG BUỘC TS ĐÃ ĐƯỢC THÊM Ở LƯỚI TS CẦN THAY THẾ TRÊN PYC CẤP PHÁT KHÔNG ĐƯỢC YÊU CẦU SỬA CHỮA
INSERT INTO @TABLE_ASSCODE_VALIDATION
SELECT ISNULL(G.ASSET_CODE,G.ASS_CODE_TMP) ASSET_CODE, F.REQ_CODE
FROM (
SELECT B.ASS_ID, C.REQ_CODE
FROM TR_REQUEST_SHOP_DOC_DT B
LEFT JOIN TR_REQUEST_SHOP_DOC C ON B.REQ_DOC_ID = C.REQ_ID
WHERE C.AUTH_STATUS NOT IN ('E','R','D') AND B.REQ_DT_TYPE = 'ASSET_BROKEN'
AND B.ASS_ID IN (SELECT D.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT D WHERE D.REQ_DOC_ID = @p_REQ_ID)
GROUP BY B.ASS_ID, C.REQ_CODE
) F
LEFT JOIN ASS_MASTER G ON F.ASS_ID = G.ASSET_ID
IF(EXISTS(SELECT 1 FROM @TABLE_ASSCODE_VALIDATION))
BEGIN
SET @MESSAGE_VALIDATION = (SELECT REPLACE((SELECT
CASE WHEN ROW_NUMBER() OVER (ORDER BY (SELECT 0)) = 1 THEN ''
ELSE '|' END
+ N'Tài sản ' + C.ASSET_CODE + N' đã được yêu cầu thay thế trong phiếu số' + C.REQ_CODE
FROM ( SELECT ASSET_CODE,REQ_CODE FROM @TABLE_ASSCODE_VALIDATION) C
FOR XML PATH (''))
, '|', '
'))
ROLLBACK TRANSACTION
SELECT '-1' as Result, @MESSAGE_VALIDATION ErrorDesc
RETURN '-1'
END
--RÀNG BUỘC KHÔNG CHO TẠO 2 PYC CÙNG 1 TÀI SẢN CHƯA HOÀN THÀNH SỬA CHỮA
INSERT INTO @TABLE_ASSCODE_VALIDATION
SELECT ISNULL(C.ASSET_CODE,C.ASS_CODE_TMP),B.REQ_CODE
FROM TR_REQUEST_SHOP_DOC_DT A
LEFT JOIN TR_REQUEST_SHOP_DOC B ON A.REQ_DOC_ID = B.REQ_ID
LEFT JOIN ASS_MASTER C ON A.ASS_ID = C.ASSET_ID
WHERE A.ASS_ID IN (SELECT C.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT C WHERE C.REQ_DOC_ID = @p_REQ_ID)
AND B.IS_DONE = '0'
AND B.REQ_TYPE = 'SC'
AND B.AUTH_STATUS NOT IN ('E','D','R')
AND A.REQ_DOC_ID <> @p_REQ_ID
IF(EXISTS(SELECT 1 FROM @TABLE_ASSCODE_VALIDATION))
BEGIN
SET @MESSAGE_VALIDATION = (SELECT REPLACE((SELECT
CASE WHEN ROW_NUMBER() OVER (ORDER BY (SELECT 0)) = 1 THEN ''
ELSE '|' END
+ N'Tài sản ' + C.ASSET_CODE + N' trong ' + C.REQ_CODE + N' chưa được hoàn thành sửa chữa'
FROM (SELECT ASSET_CODE,REQ_CODE FROM @TABLE_ASSCODE_VALIDATION) C
FOR XML PATH (''))
, '|', '
'))
ROLLBACK TRANSACTION
SELECT '-1' as Result, @MESSAGE_VALIDATION ErrorDesc
RETURN '-1'
END
END
IF(@REQ_TYPE = 'TH')
BEGIN
-- KIỂM TRA TÀI SẢN ĐANG TREO TRONG GIAO DỊCH KHÁC
SET @ASSET_ID_LST = (SELECT B.ASSET_ID + '|' FROM (SELECT A.ASSET_ID
FROM TR_REQUEST_DOC_ASSET_DT A
where A.REQ_DOC_ID = @p_REQ_ID) B
FOR XML PATH (''))
SELECT @CURRENT_TRANS_ERROR = dbo.ASSET_CHECK_CURRENT_TRANS(@ASSET_ID_LST)
IF(@CURRENT_TRANS_ERROR IS NOT NULL AND @CURRENT_TRANS_ERROR <> '')
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, @CURRENT_TRANS_ERROR ErrorDesc
RETURN '-1'
END
END
ELSE
BEGIN
-- KIỂM TRA TÀI SẢN ĐANG TREO TRONG GIAO DỊCH KHÁC
SET @ASSET_ID_LST = (SELECT B.ASS_ID + '|' FROM (SELECT A.ASS_ID
FROM TR_REQUEST_SHOP_DOC_DT A
where A.REQ_DOC_ID = @p_REQ_ID) B
FOR XML PATH (''))
SELECT @CURRENT_TRANS_ERROR = dbo.ASSET_CHECK_CURRENT_TRANS(@ASSET_ID_LST)
IF(@CURRENT_TRANS_ERROR IS NOT NULL AND @CURRENT_TRANS_ERROR <> '')
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, @CURRENT_TRANS_ERROR ErrorDesc
RETURN '-1'
END
END
--PHUCVH 09/11/22 UPDATE TÀI SẢN TREO GIAO DỊCH
IF(@REQ_TYPE = 'TH')
BEGIN
UPDATE ASS_MASTER SET CURRENT_TRANS = @p_REQ_ID, CURRENT_TRANS_TYPE = (SELECT A.REQ_TYPE FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @p_REQ_ID)
WHERE ASSET_ID IN (SELECT B.ASSET_ID FROM TR_REQUEST_DOC_ASSET_DT B WHERE B.REQ_DOC_ID = @p_REQ_ID)
END
ELSE
BEGIN
UPDATE ASS_MASTER SET CURRENT_TRANS = @p_REQ_ID, CURRENT_TRANS_TYPE = (SELECT A.REQ_TYPE FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @p_REQ_ID)
WHERE ASSET_ID IN (SELECT B.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT B WHERE B.REQ_DOC_ID = @p_REQ_ID)
END
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,DEP_ID,PARENT_PROCESS_ID,IS_LEAF,NOTES,PROCESS_TYPE)
VALUES(@p_REQ_ID,'APPNEW','C','GDDV',@BRANCHID,@DEP_ID,'','N',NULL,'Approve')
INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
VALUES (@p_REQ_ID, 'S_DVKD', @p_CHECKER_ID, GETDATE(), N'Gửi trưởng đơn vị', N'Gửi trưởng đơn vị thành công');
UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]='APPNEW', AUTH_STATUS = 'U' WHERE REQ_ID=@p_REQ_ID
UPDATE TR_REQUEST_SHOP_DOC_DT SET AUTH_STATUS = 'U' WHERE REQ_DOC_ID = @p_REQ_ID
SET @NOTIFATION= N'Gửi trưởng đơn vị thành công'
--UPDATE NGÀY GỬI DUYỆT
UPDATE TR_REQUEST_SHOP_DOC SET SEND_APP_DT = GETDATE()
WHERE REQ_ID = @p_REQ_ID
IF @@Error <> 0 GOTO ABORT
END
-- --QLTS gửi DVCM
ELSE IF(@p_TYPE_PROCESS='S_DVCM')
BEGIN
IF(EXISTS(SELECT REQ_ID FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID AND STATUS = 'REJECT'))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Phiếu yêu cầu đã bị trả về. Gửi duyệt thất bại.' ErrorDesc
RETURN '-1'
END
IF(EXISTS(SELECT REQ_ID FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID AND (HO_NOTES IS NULL OR HO_NOTES = '')))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Vui lòng nhập ý kiến của bộ phận QLTS trước khi gửi duyệt.' ErrorDesc
RETURN '-1'
END
INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
VALUES (@p_REQ_ID, 'S_DVCM', @p_CHECKER_ID, GETDATE(), N'Gửi DVCM', N'QLTS gửi DVCM thành công');
UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'DVCM' WHERE REQ_ID = @p_REQ_ID
UPDATE PL_REQUEST_PROCESS SET STATUS = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103) WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'QLTS_N'
UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' WHERE PROCESS_ID = 'DVCM' AND REQ_ID = @p_REQ_ID
SET @p_NOTES = N'Gửi DVCM thành công'
IF @@Error <> 0 GOTO ABORT
--END
SET @NOTIFATION= N'Gửi DVCM thành công'
--UPDATE NGÀY GỬI DUYỆT
UPDATE TR_REQUEST_SHOP_DOC SET SEND_APP_DT = GETDATE()
WHERE REQ_ID = @p_REQ_ID
END
-- QLTS DUYỆT
ELSE IF(@p_TYPE_PROCESS='QLTS_D')
BEGIN
IF(EXISTS(SELECT TOP 1 A.HO_NOTES FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @p_REQ_ID AND (A.HO_NOTES IS NULL OR A.HO_NOTES = '')))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'QLTS chưa nhập ý kiến. Duyệt thất bại' ErrorDesc
RETURN '-1'
END
IF(EXISTS(SELECT trsd.REQ_ID FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.REQ_ID = @p_REQ_ID AND trsd.MAKER_ID = @p_CHECKER_ID))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_REQ_ID AS ID, N'Bạn không có quyền duyệt phiếu này' ErrorDesc
RETURN '-1'
END
IF((SELECT TOP 1 STATUS FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID) = 'TBP_D')
BEGIN --TRƯỞNG BỘ PHẬN QLTS DUYỆT
UPDATE PL_REQUEST_PROCESS SET [STATUS]='P',NOTES = @p_NOTES ,CHECKER_ID=@p_CHECKER_ID,APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE REQ_ID=@p_REQ_ID AND [STATUS]='C' AND PROCESS_ID = 'TBP_D'
INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
VALUES (@p_REQ_ID, 'TBP_D', @p_CHECKER_ID, GETDATE(), N'Trưởng bộ phận QLTS duyệt', @p_NOTES);
UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]='QLTS_D' WHERE REQ_ID=@p_REQ_ID
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID,IS_LEAF,NOTES,PROCESS_TYPE)
VALUES(@p_REQ_ID,'QLTS_D','C','GDDV_QLTS','DV0001','TBP_D','DEP000000000048','N',NULL,'Approve')
SET @NOTIFATION= N'Trưởng bộ phận QLTS duyệt thành công'
END
ELSE IF((SELECT TOP 1 STATUS FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID) = 'QLTS_D')
BEGIN --TRƯỞNG ĐƠN VỊ QLTS DUYỆT
UPDATE PL_REQUEST_PROCESS SET [STATUS]='P', NOTES = @p_NOTES , CHECKER_ID=@p_CHECKER_ID,APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE REQ_ID=@p_REQ_ID AND [STATUS]='C'
IF @@Error <> 0 GOTO ABORT
INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
VALUES (@p_REQ_ID, 'QLTS_D', @p_CHECKER_ID, GETDATE(), N'Trưởng đơn vị QLTS duyệt', @p_NOTES);
IF(@REQ_TYPE <> 'DCTS')
BEGIN --PHIẾU SỬA CHỮA TÀI SẢN, THU HỒI TÀI SẢN
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],IS_LEAF)
VALUES(@p_REQ_ID,'APPROVE','C','N')
UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]='APPROVE',AUTH_STATUS = 'A', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,GETDATE(),103) WHERE REQ_ID=@p_REQ_ID
IF(@REQ_TYPE = 'TH')
BEGIN
--UPDATE ASS_MASTER XONG GIAO DỊCH
UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL WHERE ASSET_ID IN (SELECT A.ASSET_ID FROM TR_REQUEST_DOC_ASSET_DT A WHERE A.REQ_DOC_ID = @p_REQ_ID)
END
ELSE
BEGIN
--UPDATE ASS_MASTER XONG GIAO DỊCH
UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL WHERE ASSET_ID IN (SELECT A.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT A WHERE A.REQ_DOC_ID = @p_REQ_ID)
END
SET @NOTIFATION= N'Phê duyệt thành công'
END
ELSE
BEGIN
DECLARE @PRICE_OF_ASSET DECIMAL = (SELECT MAX(b.BUY_PRICE)
FROM TR_REQUEST_SHOP_DOC_DT A
LEFT JOIN ASS_MASTER B ON A.ASS_ID = B.ASSET_ID
WHERE A.REQ_DOC_ID = @p_REQ_ID)
IF(@PRICE_OF_ASSET > 30000000)
BEGIN --LÊN TTDVNB
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID,IS_LEAF,NOTES,PROCESS_TYPE)
VALUES(@p_REQ_ID,'TTQLTS_D','C','GDDV','DV0001','QLTS_D',(SELECT TOP 1 DEP_ID FROM CM_DEPARTMENT WHERE DEP_CODE = '05N20'),'N',NULL,'Approve')
UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'TTQLTS_D' WHERE REQ_ID = @p_REQ_ID
SET @NOTIFATION= N'Trưởng đơn vị phê duyệt thành công. Phiếu đã gừi lên Trung tâm dịch vụ nội bộ.'
END
ELSE
BEGIN
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],IS_LEAF)
VALUES(@p_REQ_ID,'APPROVE','C','N')
UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]='APPROVE',AUTH_STATUS = 'A', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,GETDATE(),103) WHERE REQ_ID=@p_REQ_ID
--UPDATE ASS_MASTER XONG GIAO DỊCH
UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL WHERE ASSET_ID IN (SELECT A.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT A WHERE A.REQ_DOC_ID = @p_REQ_ID)
SET @NOTIFATION= N'Phê duyệt thành công.'
END
END
END
ELSE IF((SELECT TOP 1 STATUS FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID) = 'TTQLTS_D')
BEGIN --TRUNG TÂM DỊCH VỤ NỘI BỘ DUYỆT
UPDATE PL_REQUEST_PROCESS SET [STATUS]='P', NOTES = @p_NOTES , CHECKER_ID=@p_CHECKER_ID,APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE REQ_ID=@p_REQ_ID AND [STATUS]='C'
IF @@Error <> 0 GOTO ABORT
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],IS_LEAF)
VALUES(@p_REQ_ID,'APPROVE','C','N')
INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
VALUES (@p_REQ_ID, 'TTQLTS_D', @p_CHECKER_ID, GETDATE(), N'Trung tâm dịch vụ nội bộ phê duyệt', @p_NOTES);
UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]='APPROVE',AUTH_STATUS = 'A', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,GETDATE(),103) WHERE REQ_ID=@p_REQ_ID
--UPDATE ASS_MASTER XONG GIAO DỊCH
UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL WHERE ASSET_ID IN (SELECT A.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT A WHERE A.REQ_DOC_ID = @p_REQ_ID)
SET @NOTIFATION= N'Phê duyệt thành công'
END
--UPDATE NGÀY GỬI DUYỆT
UPDATE TR_REQUEST_SHOP_DOC SET SEND_APP_DT = GETDATE()
WHERE REQ_ID = @p_REQ_ID
IF @@Error <> 0 GOTO ABORT
END
ELSE IF(@p_TYPE_PROCESS = 'DVCM_D')
BEGIN
UPDATE TR_REQUEST_SHOP_COSTCENTER SET AUTH_STATUS = 'A', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103)
WHERE REQ_ID = @p_REQ_ID AND COST_ID = @DEP_ID
UPDATE PL_REQUEST_PROCESS SET STATUS = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103), NOTES = @p_NOTES
WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'DVCM_D' AND PARENT_PROCESS_ID = 'DVCM' AND DEP_ID = @DEP_ID
INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
VALUES (@p_REQ_ID, 'DVCM_D', @p_CHECKER_ID, GETDATE(), N'Trưởng bộ phận DVCM duyệt', @p_NOTES);
-- CHECK DVCM ĐÃ NHẬP ĐỦ HẾT CHƯA
IF(NOT EXISTS(SELECT TOP 1 trsc.REQ_COST_ID FROM TR_REQUEST_SHOP_COSTCENTER trsc
WHERE trsc.REQ_ID = @p_REQ_ID AND (trsc.AUTH_STATUS = 'U' OR trsc.AUTH_STATUS = 'E')))
BEGIN
IF(@REQ_TYPE = 'SC')
BEGIN
UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'QLTS_NL',HO_NOTES = N'- Kế hoạch (Trong/Ngoài NS):' + CHAR(10) + N'- Nội dung đề xuất:' + CHAR(10) + N'- Ghi chú khác:' WHERE REQ_ID = @p_REQ_ID
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID,IS_LEAF,NOTES,PROCESS_TYPE)
VALUES(@p_REQ_ID,'QLTS_NL','C','QLTS','DV0001','DVCM_D','DEP000000000048','N',NULL,'Update')
END
ELSE
BEGIN
UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'TBP_D' WHERE REQ_ID = @p_REQ_ID
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID,IS_LEAF,NOTES,PROCESS_TYPE)
VALUES(@p_REQ_ID,'TBP_D','C','TBP_QLTS','DV0001','DVCM_D','DEP000000000048','N',NULL,'Approve')
END
--UPDATE NGÀY GỬI DUYỆT
UPDATE TR_REQUEST_SHOP_DOC SET SEND_APP_DT = GETDATE()
WHERE REQ_ID = @p_REQ_ID
END
SET @NOTIFATION= N'Trưởng phòng DVCM duyệt thành công'
IF @@Error <> 0 GOTO ABORT
END
ELSE IF(@p_TYPE_PROCESS = 'S_GDDV_QLTS')
BEGIN -- GỬI TRƯỞNG BỘ PHẬN QLTS DUYỆT
IF(EXISTS(SELECT TOP 1 A.HO_NOTES FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @p_REQ_ID AND (A.HO_NOTES IS NULL OR A.HO_NOTES = '')))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Vui lòng nhập ý kiến của bộ phận QLTS trước khi gửi duyệt.' ErrorDesc
RETURN '-1'
END
INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
VALUES (@p_REQ_ID, 'S_TBP_QLTS', @p_CHECKER_ID, CONVERT(DATETIME,@p_APPROVE_DT,103), N'QLTS gửi phê duyệt', N'QLTS gửi trưởng bộ phận QLTS phê duyệt thành công');
UPDATE PL_REQUEST_PROCESS SET STATUS = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103)
WHERE REQ_ID = @p_REQ_ID AND (PROCESS_ID = 'QLTS_N'
OR PROCESS_ID = 'QLTS_NL')--PYC_SC
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID,IS_LEAF,NOTES,PROCESS_TYPE)
VALUES(@p_REQ_ID,'TBP_D','C','TBP_QLTS','DV0001','QLTS_N','DEP000000000048','N',NULL,'Approve')
UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'TBP_D' WHERE REQ_ID = @p_REQ_ID
IF @@Error <> 0 GOTO ABORT
SET @NOTIFATION= N'Gửi trưởng bộ phận QLTS phê duyệt thành công'
--UPDATE NGÀY GỬI DUYỆT
UPDATE TR_REQUEST_SHOP_DOC SET SEND_APP_DT = GETDATE()
WHERE REQ_ID = @p_REQ_ID
END
ELSE IF(@p_TYPE_PROCESS = 'S_GDDV_DVCM')
BEGIN
IF(EXISTS(SELECT 1 FROM TR_REQUEST_SHOP_COSTCENTER trsc WHERE trsc.REQ_ID = @p_REQ_ID
AND trsc.COST_ID = @DEP_ID
AND trsc.AUTH_STATUS = 'E'
AND (trsc.RE_CONTENT IS NULL OR trsc.RE_CONTENT = '')))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Vui lòng nhập Nội Dung Đề Xuất của bạn trước khi gửi Trưởng bộ phận DVCM phê duyệt' ErrorDesc
RETURN '-1'
END
INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
VALUES (@p_REQ_ID, 'S_GDDVDVCM', @p_CHECKER_ID, CONVERT(DATETIME,@p_APPROVE_DT,103), N'DVCM gửi Trưởng bộ phận DVCM', N'DVCM gửi Trưởng bộ phận DVCM phê duyệt thành công');
UPDATE TR_REQUEST_SHOP_COSTCENTER SET AUTH_STATUS = 'U' WHERE REQ_ID = @p_REQ_ID AND COST_ID = @DEP_ID
UPDATE PL_REQUEST_PROCESS SET STATUS = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103) WHERE REQ_ID = @p_REQ_ID AND DEP_ID = @DEP_ID AND PROCESS_ID = 'DVCM' AND PARENT_PROCESS_ID = 'QLTS_N'
UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' WHERE REQ_ID = @p_REQ_ID AND DEP_ID = @DEP_ID AND PROCESS_ID = 'DVCM_D' AND PARENT_PROCESS_ID = 'DVCM'
IF @@Error <> 0 GOTO ABORT
SET @NOTIFATION= N'Gửi trưởng bộ phận DVCM phê duyệt thành công'
END
ELSE IF(@p_TYPE_PROCESS = 'S_DVCM_OR_QLTSNL')
BEGIN --PYC SỬA CHỮA: NẾU CÓ DVCM THÌ GỬI DVCM. NẾU KO CÓ THÌ QUAY LẠI QLTS_NL
IF(EXISTS(SELECT REQ_ID FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID AND STATUS = 'REJECT'))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Phiếu yêu cầu đã bị trả về. Gửi duyệt thất bại.' ErrorDesc
RETURN '-1'
END
IF(EXISTS(SELECT 1 FROM TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID = @p_REQ_ID))
BEGIN --GỬI DVCM
INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
VALUES (@p_REQ_ID, 'S_DVCM', @p_CHECKER_ID, GETDATE(), N'Gửi DVCM', N'QLTS gửi DVCM thành công');
UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'DVCM' WHERE REQ_ID = @p_REQ_ID
UPDATE PL_REQUEST_PROCESS SET STATUS = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103) WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'QLTS_N'
UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' WHERE PROCESS_ID = 'DVCM' AND REQ_ID = @p_REQ_ID
SET @p_NOTES = N'Gửi DVCM thành công'
SET @NOTIFATION= N'Gửi DVCM thành công'
END
ELSE --QUAY LẠI QLTS
BEGIN
INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
VALUES (@p_REQ_ID, 'S_QLTS_NL', @p_CHECKER_ID, GETDATE(), N'Gửi bộ phận QLTS xử lý', N'Gửi bộ phận QLTS xử lý thành công');
UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'QLTS_NL',
HO_NOTES = N'- Kế hoạch (Trong/Ngoài NS):' + CHAR(10) + N'- Nội dung đề xuất: ' + CHAR(10) + N'- Ghi chú khác:'
WHERE REQ_ID = @p_REQ_ID
UPDATE PL_REQUEST_PROCESS SET STATUS = 'P', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103) WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'QLTS_N'
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID,IS_LEAF,NOTES,PROCESS_TYPE)
VALUES(@p_REQ_ID,'QLTS_NL','C','QLTS','DV0001','QLTS_N','DEP000000000048','N',NULL,'Update')
SET @p_NOTES = N'Gửi bộ phận QLTS xử lý thành công'
SET @NOTIFATION= N'Gửi bộ phận QLTS xử lý thành công'
END
--UPDATE NGÀY GỬI DUYỆT
UPDATE TR_REQUEST_SHOP_DOC SET SEND_APP_DT = GETDATE()
WHERE REQ_ID = @p_REQ_ID
IF @@Error <> 0 GOTO ABORT
END
ELSE IF(@p_TYPE_PROCESS = 'CANCEL')
BEGIN --QLTS HUỶ PHIẾU
IF(NOT EXISTS(SELECT 1 FROM TR_REQUEST_SHOP_DOC A
WHERE A.REQ_ID = @p_REQ_ID AND ((A.REQ_TYPE IN ('DCTS','TH') AND A.STATUS = 'QLTS_N')
OR(A.REQ_TYPE = 'SC' AND A.STATUS IN ('QLTS_N','QLTS_NL')))))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Huỷ thất phải. Vui lòng kiểm tra lại trạng thái phiếu' ErrorDesc
RETURN '-1'
END
IF(@REQ_TYPE = 'TH')
BEGIN
UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL
WHERE ASSET_ID IN (SELECT A.ASSET_ID FROM TR_REQUEST_DOC_ASSET_DT A WHERE A.REQ_DOC_ID = @p_REQ_ID)
END
ELSE IF(@REQ_TYPE IN ('DCTS','SC'))
BEGIN
UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL
WHERE ASSET_ID IN (SELECT A.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT A WHERE A.REQ_DOC_ID = @p_REQ_ID)
END
UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'CANCEL', AUTH_STATUS = 'D' WHERE REQ_ID = @p_REQ_ID
INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
VALUES (@p_REQ_ID, 'CANCEL', @p_CHECKER_ID, GETDATE(), N'Chuyên viên QLTS huỷ phiếu.', @p_NOTES);
-- DELETE PL_REQUEST_PROCESS
-- WHERE REQ_ID = @p_REQ_ID AND STATUS = 'C' AND PROCESS_ID IN ('QLTS_N','QLTS_NL')
DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND ((STATUS = 'C' AND PROCESS_ID IN ('QLTS_N','QLTS_NL'))
OR STATUS = 'U')
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,CHECKER_ID,APPROVE_DT,PARENT_PROCESS_ID,IS_LEAF,NOTES,BRANCH_ID,DEP_ID)
VALUES(@p_REQ_ID,'CANCEL','C','QLTS',@p_CHECKER_ID,GETDATE(),@CURR_PROCESS,'Y',N'Chuyên viên QLTS huỷ phiếu',@BRANCHID,@DEP_ID)
SET @p_NOTES = N'Huỷ phiếu thành công'
SET @NOTIFATION= N'Huỷ phiếu thành công'
END
COMMIT TRANSACTION
SELECT '0' as Result, @NOTIFATION AS NOTIFATION, '' ErrorDesc, @NOTIFY_TO_USER AS NEXT_USER_NOTIFI, @COMPLETE AS COMPLETE
RETURN '0'
ABORT:
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' AS RESULT, '' ErrorDesc
RETURN '-1'
End
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_ADDNEW_BVB_Search]'
GO
ALTER PROCEDURE [dbo].[ASS_ADDNEW_BVB_Search]
@p_ADDNEW_ID varchar(15) = NULL,
@p_FR_BUY_DATE VARCHAR(10) = NULL, --Tu ngay nhap
@p_TO_BUY_DATE VARCHAR(10) = NULL, --Den ngay nhap
@p_TYPE_ID varchar(15) = NULL,
@p_GROUP_ID varchar(15) = NULL,
@p_ASSET_NAME nvarchar(1000) = NULL,
@p_ASSET_SERIAL_NO nvarchar(MAX) = NULL,
@p_ASSET_DESC nvarchar(max) = NULL,
@p_BRANCH_ID varchar(15) = NULL,
@p_DEPT_ID varchar(15) = NULL,---------Them ma phong ban
@p_EMP_ID varchar(15) = NULL,-----------Them Nguoi su dung
@p_DIVISION_ID varchar(15) = NULL,----------Them co so
@p_BUY_PRICE decimal(18) = NULL,
@p_AMORT_AMT decimal(18) = NULL,
@p_AMORT_MONTH decimal(18,2) = NULL,
@p_AMORT_RATE decimal(18,2) = NULL,
@p_IS_MULTIPLE varchar(1) = NULL,
@p_QTY int = NULL,
@p_PO_ID varchar(15) = NULL,
@p_TRADE_ID varchar(15) = NULL, --Them de luu chi tiet PO
@p_TYPE varchar(10) = 'ADD_NEW', --'ADD_NEW' dung cho nhap moi TS, 'ADD_REF': nhap moi dieu chinh
@p_REF_ASSET_ID varchar(15) = NULL,
@p_REF_AMORTIZED_AMT decimal(18) = NULL,
@p_WARRANTY_MONTHS int = NULL,
@p_NOTES nvarchar(1000) = NULL,
@p_RECORD_STATUS varchar(1) = NULL,
@p_AUTH_STATUS varchar(1) = NULL,
@p_MAKER_ID varchar(15) = NULL,
@p_CREATE_DT VARCHAR(20) = NULL,
@p_CHECKER_ID varchar(15) = NULL,
@p_APPROVE_DT VARCHAR(20) = NULL,
@p_TOP INT = NULL,
@p_CONSTRUCT_ID VARCHAR(15) = NULL,
@p_POSTED_STATUS VARCHAR(1) = NULL,
@p_BRANCH_CREATE VARCHAR(15) = NULL,
@p_LEVEL VARCHAR(10) = NULL,
@p_AUTH_STATUS_KT VARCHAR(1) = NULL,
@p_KT_IS_DO VARCHAR(1) = NULL,
@p_PRICE_TO decimal(18) = NULL,
@p_PRICE_FROM decimal(18) = NULL,
@p_USER_LOGIN VARCHAR(15),-- 26022020 LUCTV TRUYEN XUONG USER LOGIN DE DO TIM MA PHONG BAN
@p_TYPE_SEARCH VARCHAR(10)= NULL, -- 26022020 LUCTV TRUYEN XUONG DAU HIEU DE PHAN BIET TIM KIEM O MAN HINH KE TOAN HAY MAN HINH HCQT
@p_REQ_CODE VARCHAR(100) = NULL --Thêm trường tìm kiếm số PYC
AS
BEGIN -- PAGING
SET @p_RECORD_STATUS = '1'
declare @tmp table(BRANCH_ID varchar(15))
insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_CREATE)
DECLARE @l_GROUP_CODE VARCHAR(100)
IF(@p_TYPE_ID='ALL')
BEGIN
SET @l_GROUP_CODE = (SELECT GROUP_CODE FROM ASS_GROUP WHERE GROUP_ID = @p_GROUP_ID)
SET @p_TYPE_ID=''
END
IF @p_TOP IS NULL OR @p_TOP = ''
-- PAGING BEGIN
SELECT
A.ADDNEW_ID,
A.BUY_DATE,
A.[TYPE_ID],
C.[TYPE_NAME],
A.GROUP_ID,
D.GROUP_CODE,
D.GROUP_NAME,
A.ASSET_NAME,
A.ASSET_SERIAL_NO,
A.ASSET_DESC,
A.BRANCH_ID,
A.AMORT_START_DATE,
A.DEPT_ID,
H.DEP_CODE,
H.DEP_NAME,
A.EMP_ID,
G.EMP_CODE,
G.EMP_NAME,
A.DIVISION_ID,
CASE
WHEN A.TYPE_ID = 'TSCD' THEN ISNULL(A.BUY_PRICE,0) + ISNULL(A.PRICE_VAT,0)
WHEN A.TYPE_ID = 'CCLD' THEN ISNULL(A.BUY_PRICE,0)
-- ELSE
END AS BUY_PRICE,
CASE
WHEN A.TYPE_ID = 'TSCD' THEN ISNULL(A.BUY_PRICE,0) + ISNULL(A.PRICE_VAT,0)
WHEN A.TYPE_ID = 'CCLD' THEN ISNULL(A.BUY_PRICE,0)
-- ELSE
END AS AMORT_AMT,
-- ISNULL(A.BUY_PRICE,0) + ISNULL(A.PRICE_VAT,0) AS BUY_PRICE,
-- ISNULL(A.BUY_PRICE,0) + ISNULL(A.PRICE_VAT,0) AS AMORT_AMT,
A.AMORT_MONTH,
A.AMORT_RATE,
A.IS_MULTIPLE,
A.QTY,
A.PO_ID,
PO.PO_CODE,
A.PD_ID,
A.REF_ASSET_ID,
I.ASSET_CODE AS REF_ASS_CODE,
I.ASSET_NAME AS REF_ASS_NAME,
A.REF_AMORTIZED_AMT,
A.WARRANTY_MONTHS,
A.NOTES,
A.CORE_NOTE ,
A.RECORD_STATUS,
A.AUTH_STATUS,
B.CONTENT AS AUTH_STATUS_NAME,AKT.CONTENT AS AUTH_STATUS_NAME_KT,
A.MAKER_ID,
UM.TLFullName MAKER_NAME,
A.CREATE_DT,--CONVERT(VARCHAR(10), A.CREATE_DT, 103) AS S_CREATE_DT
A.CHECKER_ID,
A.APPROVE_DT, A.ENTRY_BOOKED, A.CONSTRUCT_ID,A.POSTED_STATUS, A.BRANCH_CREATE,A.MAKER_ID_KT, A.CREATE_DT_KT,A.CHECKER_ID_KT,A.APPROVE_DT_KT,A.AUTH_STATUS_KT,
E.BRANCH_CODE, F.DIV_CODE, E.BRANCH_NAME, (ISNULL(E.BRANCH_NAME,'') + ' '+ ISNULL(H.DEP_NAME,'')) AS RECEIVE_BRANCH ,
CREBRN.BRANCH_CODE AS R_BRANCH_CODE, CREBRN.BRANCH_NAME AS R_BRANCH_NAME, A.AMORT_END_DATE, A.ACCOUNT_GL, A.VAT, A.PRICE_VAT,(ISNULL(A.QTY,0) * ((ISNULL(A.BUY_PRICE,0)) + ISNULL(A.PRICE_VAT,0))) AS TOTAL_AMT
--, G.SUP_CODE, G.SUP_NAME
,AP.ASSPO_ID AS ASS_PO_ID, AP.ADDNEW_ID AS ASS_PO_ADDNEWID, AP.PO_CODE AS ASS_PO_CODE, AP.INVOICE_NO AS AS_INVOICE_NO, AP.INVOICE_SYMPOL, AP.INVOICE_DATE AS ASS_INVOICE_DT,
CREBRN.BRANCH_CODE+' - '+ CREBRN.BRANCH_NAME AS FULL_BRANCH_NAME, D.GROUP_CODE +' - '+ D.GROUP_NAME GROUP_NAME_FULL,
UM2.TLFullName AS CREATE_USER_NAME, UM3.TLFullName AS APPROVE_NAME_KT, UM4.TLFullName AS CREATE_USER_NAME_KT,
@p_USER_LOGIN AS USER_LOGIN,@p_TYPE_SEARCH AS TYPE_SEARCH,
A.REQ_ID,
A.REQ_CODE--- TRA VE THAM SO GAN VO CURRENT SEARCH TRANH GAY LOI O CAC MAN HINH
-- SELECT END
FROM ASS_ADDNEW A
--LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS = B.AUTH_STATUS
LEFT JOIN dbo.CM_ALLCODE B ON B.CDVAL = A.AUTH_STATUS AND B.CDNAME = 'ASS_ADD_AUTH' AND B.CDTYPE = 'ASS_ADDNEW'
LEFT JOIN ASS_TYPE C ON A.[TYPE_ID] = C.[TYPE_ID]
LEFT JOIN ASS_GROUP D ON A.GROUP_ID = D.GROUP_ID
LEFT JOIN TL_USER UM ON UM.TLNANME = A.CHECKER_ID
LEFT JOIN TL_USER UM2 ON UM2.TLNANME = A.MAKER_ID
LEFT JOIN TL_USER UM3 ON UM2.TLNANME = A.CHECKER_ID_KT
LEFT JOIN TL_USER UM4 ON UM4.TLNANME = A.MAKER_ID_KT
LEFT JOIN TR_PO_MASTER PO ON PO.PO_ID = A.PO_ID
LEFT JOIN CM_BRANCH E ON E.BRANCH_ID = A.BRANCH_ID
LEFT JOIN CM_DIVISION F ON F.DIV_ID = A.DIVISION_ID
LEFT JOIN CM_EMPLOYEE G ON G.EMP_ID = A.EMP_ID
LEFT JOIN CM_DEPARTMENT H ON H.DEP_ID = A.DEPT_ID
LEFT JOIN ASS_MASTER I ON I.ASSET_ID = A.REF_ASSET_ID
--LEFT JOIN CM_AUTH_STATUS AKT ON AKT.AUTH_STATUS = A.AUTH_STATUS_KT
LEFT JOIN dbo.CM_ALLCODE AKT ON AKT.CDVAL = A.AUTH_STATUS_KT AND AKT.CDNAME = 'ASS_ADD_AUTH' AND AKT.CDTYPE = 'ASS_ADDNEW'
LEFT JOIN CM_BRANCH CREBRN ON CREBRN.BRANCH_ID = A.BRANCH_CREATE
LEFT JOIN ASS_PO AP ON A.ADDNEW_ID = AP.ADDNEW_ID
WHERE (A.ADDNEW_ID = @p_ADDNEW_ID OR @p_ADDNEW_ID IS NULL OR @p_ADDNEW_ID = '')
-- TIM KIEM TU NGAY DEN NGAY O HC
AND ((@p_TYPE_SEARCH = 'HC' AND (@p_FR_BUY_DATE IS NULL AND @p_FR_BUY_DATE IS NULL OR
@p_TO_BUY_DATE IS NULL AND (CONVERT(DATE, A.BUY_DATE, 103)) >= (CONVERT(DATE, @p_FR_BUY_DATE, 103))
OR @p_FR_BUY_DATE IS NULL AND (CONVERT(DATE, A.BUY_DATE, 103)) <= (CONVERT(DATE, @p_TO_BUY_DATE, 103))
OR (CONVERT(DATE, A.BUY_DATE, 103)) >= (CONVERT(DATE, @p_FR_BUY_DATE, 103)) AND (CONVERT(DATE, A.BUY_DATE, 103)) <= (CONVERT(DATE, @p_TO_BUY_DATE, 103))
)
OR @p_TYPE_SEARCH = 'KT' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = ''))
-- TIM KIEM TU NGAY O KT
AND ((@p_TYPE_SEARCH = 'KT' AND (((A.MAKER_ID_KT IS NULL OR A.MAKER_ID_KT = '')
AND (((@p_FR_BUY_DATE IS NULL AND @p_FR_BUY_DATE IS NULL OR
@p_TO_BUY_DATE IS NULL AND (CONVERT(DATE, A.BUY_DATE, 103)) >= (CONVERT(DATE, @p_FR_BUY_DATE, 103))
OR @p_FR_BUY_DATE IS NULL AND (CONVERT(DATE, A.BUY_DATE, 103)) <= (CONVERT(DATE, @p_TO_BUY_DATE, 103))
OR (CONVERT(DATE, A.BUY_DATE, 103)) >= (CONVERT(DATE, @p_FR_BUY_DATE, 103)) AND (CONVERT(DATE, A.BUY_DATE, 103)) <= (CONVERT(DATE, @p_TO_BUY_DATE, 103))
)))
OR ((A.MAKER_ID_KT IS NOT NULL OR A.MAKER_ID_KT <> '')
AND ((@p_AUTH_STATUS_KT = 'A' AND (CONVERT(DATE,A.APPROVE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
OR (@p_AUTH_STATUS_KT = 'U' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
OR (@p_AUTH_STATUS_KT = 'R' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
OR (@p_AUTH_STATUS_KT = 'E' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
OR ((@p_AUTH_STATUS_KT = '' OR @p_AUTH_STATUS_KT IS NULL) AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))))))
OR @p_TYPE_SEARCH = 'HC' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = ''))
AND (A.REQ_CODE like N'%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
AND (A.[TYPE_ID] = @p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID = '')
AND (A.GROUP_ID = @p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID = '')
AND (D.GROUP_CODE = @l_GROUP_CODE OR @l_GROUP_CODE IS NULL OR @l_GROUP_CODE = '')
AND (A.ASSET_NAME like N'%' + @p_ASSET_NAME + '%' OR @p_ASSET_NAME IS NULL OR @p_ASSET_NAME = '')
AND (A.ASSET_SERIAL_NO like N'%' + @p_ASSET_SERIAL_NO + '%' OR @p_ASSET_SERIAL_NO IS NULL OR @p_ASSET_SERIAL_NO = '')
AND (A.ASSET_DESC like N'%' + @p_ASSET_DESC + '%' OR @p_ASSET_DESC IS NULL OR @p_ASSET_DESC = '')
AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
AND (A.DEPT_ID = @p_DEPT_ID OR @p_DEPT_ID IS NULL OR @p_DEPT_ID = '')
AND (A.EMP_ID = @p_EMP_ID OR @p_EMP_ID IS NULL OR @p_EMP_ID = '')
AND (A.DIVISION_ID = @p_DIVISION_ID OR @p_DIVISION_ID IS NULL OR @p_DIVISION_ID = '')
AND (A.BUY_PRICE = @p_BUY_PRICE OR @p_BUY_PRICE IS NULL)
AND (A.AMORT_AMT = @p_AMORT_AMT OR @p_AMORT_AMT IS NULL)
AND (A.AMORT_MONTH = @p_AMORT_MONTH OR @p_AMORT_MONTH IS NULL)
AND (A.AMORT_RATE = @p_AMORT_RATE OR @p_AMORT_RATE IS NULL)
AND (A.IS_MULTIPLE = @p_IS_MULTIPLE OR @p_IS_MULTIPLE IS NULL OR @p_IS_MULTIPLE = '')
AND (A.QTY = @p_QTY OR @p_QTY IS NULL OR @p_QTY = 0)
AND (A.PO_ID = @p_PO_ID OR @p_PO_ID IS NULL OR @p_PO_ID = '')
AND ((@p_TYPE = 'ADD_NEW' AND (A.REF_ASSET_ID IS NULL OR A.REF_ASSET_ID = '')) OR (@p_TYPE = 'ADD_REF' AND A.REF_ASSET_ID IS NOT NULL AND A.REF_ASSET_ID <> ''))
AND (A.REF_ASSET_ID = @p_REF_ASSET_ID OR @p_REF_ASSET_ID IS NULL OR @p_REF_ASSET_ID='')
AND (A.REF_AMORTIZED_AMT = @p_REF_AMORTIZED_AMT OR @p_REF_AMORTIZED_AMT IS NULL)
AND (A.WARRANTY_MONTHS = @p_WARRANTY_MONTHS OR @p_WARRANTY_MONTHS IS NULL OR @p_WARRANTY_MONTHS = 0)
AND (A.NOTES like N'%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '')
AND (A.RECORD_STATUS = @p_RECORD_STATUS OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
AND (A.AUTH_STATUS = @p_AUTH_STATUS OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
AND (A.POSTED_STATUS = @p_POSTED_STATUS OR @p_POSTED_STATUS IS NULL OR @p_POSTED_STATUS = '')
--AND (A.BRANCH_CREATE = @p_BRANCH_CREATE OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
AND (A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR @p_AUTH_STATUS_KT IS NULL OR @p_AUTH_STATUS_KT = '')
AND ((A.MAKER_ID_KT IS NOT NULL AND @p_KT_IS_DO = 'Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
OR ((A.MAKER_ID_KT IS NULL AND @p_KT_IS_DO = 'N'))
OR @p_KT_IS_DO IS NULL OR @p_KT_IS_DO = '')
AND ((ISNULL(A.QTY,0) * ISNULL(A.BUY_PRICE,0)) >= @p_PRICE_FROM OR @p_PRICE_FROM = 0 OR @p_PRICE_FROM IS NULL)
AND ((ISNULL(A.QTY,0) * ISNULL(A.BUY_PRICE,0)) <= @p_PRICE_TO OR @p_PRICE_TO = 0 OR @p_PRICE_TO IS NULL)
-- 26-02-2020 LUCTV BO SUNG DIEU KIEN TIM KIEM PHIEU NHAP KHO THEO NGUOI TAO PHIEU : THEO YEU CAU BO SUNG CHINH SUA CUA VCCB
AND (A.MAKER_ID = @p_MAKER_ID OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
-- NEW TRANG THAI PHIEU XUAT LA LUU NHAP HOAC TU CHOI THI CHI NGUOI TAO CO THE TIM THAY
AND ((A.AUTH_STATUS IN ('E','R') AND A.MAKER_ID = @p_USER_LOGIN)
OR (EXISTS(SELECT * FROM dbo.FN_GET_USER_BY_ROLE('GDDV,GDDV_QLTS,TBP_QLTS,KSV_QLTS','DV0001','DEP000000000048') US
WHERE US.TLNANME = @p_USER_LOGIN))
OR A.AUTH_STATUS NOT IN ('E','R') OR @p_USER_LOGIN IS NULL OR @p_USER_LOGIN = '')
-- 11-03-2022 HUYHT BO SUNG DIEU KIEN TIM KIEM PHIEU NHAP THEO QUYEN KIEM NHIEM
AND ((@p_TYPE_SEARCH='HC'
-- AND (EXISTS(SELECT * FROM dbo.FN_GET_USER_BY_ROLE('GDDV',A.BRANCH_CREATE,A.DEPT_CREATE) US
-- WHERE US.TLNANME = @p_USER_LOGIN))
AND (EXISTS(SELECT * FROM dbo.FN_GET_USER_BY_ROLE('GDDV,GDDV_QLTS,TBP_QLTS,KSV_QLTS','DV0001','DEP000000000048') US
WHERE US.TLNANME = @p_USER_LOGIN))
OR A.MAKER_ID = @p_USER_LOGIN)
OR (@p_TYPE_SEARCH='KT' AND @p_LEVEL = 'ALL' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID from @tmp))
OR (@p_TYPE_SEARCH='KT' AND @p_LEVEL = 'UNIT' AND A.BRANCH_CREATE = @p_BRANCH_CREATE)
OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH ='')
ORDER BY A.CREATE_DT DESC
-- PAGING END
ELSE
-- PAGING BEGIN
SELECT TOP (CONVERT(INT, @p_TOP))
A.ADDNEW_ID,
A.BUY_DATE,
A.[TYPE_ID],
C.[TYPE_NAME],
A.GROUP_ID,
D.GROUP_CODE,
D.GROUP_NAME,
A.ASSET_NAME,
A.ASSET_SERIAL_NO,
A.ASSET_DESC,
A.BRANCH_ID,
A.AMORT_START_DATE,
A.DEPT_ID,
H.DEP_CODE,
H.DEP_NAME,
A.EMP_ID,
G.EMP_CODE,
G.EMP_NAME,
A.DIVISION_ID,
CASE
WHEN A.TYPE_ID = 'TSCD' THEN ISNULL(A.BUY_PRICE,0) + ISNULL(A.PRICE_VAT,0)
WHEN A.TYPE_ID = 'CCLD' THEN ISNULL(A.BUY_PRICE,0)
-- ELSE
END AS BUY_PRICE,
CASE
WHEN A.TYPE_ID = 'TSCD' THEN ISNULL(A.BUY_PRICE,0) + ISNULL(A.PRICE_VAT,0)
WHEN A.TYPE_ID = 'CCLD' THEN ISNULL(A.BUY_PRICE,0)
-- ELSE
END AS AMORT_AMT,
-- ISNULL(A.BUY_PRICE,0) + ISNULL(A.PRICE_VAT,0) AS BUY_PRICE,
-- ISNULL(A.BUY_PRICE,0) + ISNULL(A.PRICE_VAT,0) AS AMORT_AMT,
A.AMORT_MONTH,
A.AMORT_RATE,
A.IS_MULTIPLE,
A.QTY,
A.PO_ID,
PO.PO_CODE,
A.REF_ASSET_ID,
I.ASSET_CODE AS REF_ASS_CODE,
I.ASSET_NAME AS REF_ASS_NAME,
A.REF_AMORTIZED_AMT,
A.WARRANTY_MONTHS,
A.NOTES,
A.CORE_NOTE,
A.RECORD_STATUS,
A.AUTH_STATUS,
B.CONTENT AS AUTH_STATUS_NAME,AKT.CONTENT AS AUTH_STATUS_NAME_KT,
A.MAKER_ID,
UM.TLFullName MAKER_NAME,
A.CREATE_DT,--CONVERT(VARCHAR(10), A.CREATE_DT, 103) AS S_CREATE_DT
A.CHECKER_ID,
A.APPROVE_DT, A.ENTRY_BOOKED,A.CONSTRUCT_ID,A.POSTED_STATUS, A.BRANCH_CREATE,A.MAKER_ID_KT, A.CREATE_DT_KT,A.CHECKER_ID_KT,A.APPROVE_DT_KT,A.AUTH_STATUS_KT,
E.BRANCH_CODE, F.DIV_CODE, E.BRANCH_NAME, (ISNULL(E.BRANCH_NAME,'') + ' '+ ISNULL(H.DEP_NAME,'')) AS RECEIVE_BRANCH ,
CREBRN.BRANCH_CODE AS R_BRANCH_CODE, CREBRN.BRANCH_NAME AS R_BRANCH_NAME, A.AMORT_END_DATE, A.ACCOUNT_GL, A.VAT, A.PRICE_VAT, (ISNULL(A.QTY,0) * ((ISNULL(A.BUY_PRICE,0)) + ISNULL(A.PRICE_VAT,0))) AS TOTAL_AMT
--, G.SUP_CODE, G.SUP_NAME
,AP.ASSPO_ID AS ASS_PO_ID, AP.ADDNEW_ID AS ASS_PO_ADDNEWID, AP.PO_CODE AS ASS_PO_CODE, AP.INVOICE_NO AS AS_INVOICE_NO, AP.INVOICE_DATE AS ASS_INVOICE_DT,CREBRN.BRANCH_CODE+' - '+ CREBRN.BRANCH_NAME AS FULL_BRANCH_NAME
,D.GROUP_CODE +' - '+ D.GROUP_NAME GROUP_NAME_FULL,
UM2.TLFullName AS CREATE_USER_NAME, UM3.TLFullName AS APPROVE_NAME_KT, UM4.TLFullName AS CREATE_USER_NAME_KT,
@p_USER_LOGIN AS USER_LOGIN,@p_TYPE_SEARCH AS TYPE_SEARCH,
A.REQ_ID,
A.REQ_CODE--- TRA VE THAM SO GAN VO CURRENT SEARCH TRANH GAY LOI O CAC MAN HINH
-- SELECT END
FROM ASS_ADDNEW A
--LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS = B.AUTH_STATUS
LEFT JOIN dbo.CM_ALLCODE B ON B.CDVAL = A.AUTH_STATUS AND B.CDNAME = 'ASS_ADD_AUTH' AND B.CDTYPE = 'ASS_ADDNEW'
LEFT JOIN ASS_TYPE C ON A.[TYPE_ID] = C.[TYPE_ID]
LEFT JOIN ASS_GROUP D ON A.GROUP_ID = D.GROUP_ID
LEFT JOIN TL_USER UM ON UM.TLNANME = A.CHECKER_ID
LEFT JOIN TL_USER UM2 ON UM2.TLNANME = A.MAKER_ID
LEFT JOIN TL_USER UM3 ON UM2.TLNANME = A.CHECKER_ID_KT
LEFT JOIN TL_USER UM4 ON UM4.TLNANME = A.MAKER_ID_KT
LEFT JOIN TR_PO_MASTER PO ON PO.PO_ID = A.PO_ID
LEFT JOIN CM_BRANCH E ON E.BRANCH_ID = A.BRANCH_ID
LEFT JOIN CM_DIVISION F ON F.DIV_ID = A.DIVISION_ID
LEFT JOIN CM_EMPLOYEE G ON G.EMP_ID = A.EMP_ID
LEFT JOIN CM_DEPARTMENT H ON H.DEP_ID = A.DEPT_ID
LEFT JOIN ASS_MASTER I ON I.ASSET_ID = A.REF_ASSET_ID
--LEFT JOIN CM_AUTH_STATUS AKT ON AKT.AUTH_STATUS = A.AUTH_STATUS_KT
LEFT JOIN dbo.CM_ALLCODE AKT ON AKT.CDVAL = A.AUTH_STATUS_KT AND AKT.CDNAME = 'ASS_ADD_AUTH' AND AKT.CDTYPE = 'ASS_ADDNEW'
LEFT JOIN CM_BRANCH CREBRN ON CREBRN.BRANCH_ID = A.BRANCH_CREATE
LEFT JOIN ASS_PO AP ON A.ADDNEW_ID = AP.ADDNEW_ID
WHERE (A.ADDNEW_ID = @p_ADDNEW_ID OR @p_ADDNEW_ID IS NULL OR @p_ADDNEW_ID = '')
-- -- TIM KIEM TU NGAY DEN NGAY O HC
-- AND ((@p_TYPE_SEARCH = 'HC' AND (CONVERT(DATE,A.BUY_DATE,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
-- OR @p_TYPE_SEARCH = 'KT' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
-- AND ((@p_TYPE_SEARCH = 'HC' AND (CONVERT(DATE,A.BUY_DATE,103) <= CONVERT(DATE, @p_TO_BUY_DATE, 103) OR @p_TO_BUY_DATE is NULL OR @p_TO_BUY_DATE = ''))
-- OR @p_TYPE_SEARCH = 'KT' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
-- TIM KIEM TU NGAY DEN NGAY O HC
AND ((@p_TYPE_SEARCH = 'HC' AND (@p_FR_BUY_DATE IS NULL AND @p_FR_BUY_DATE IS NULL OR
@p_TO_BUY_DATE IS NULL AND (CONVERT(DATE, A.BUY_DATE, 103)) >= (CONVERT(DATE, @p_FR_BUY_DATE, 103))
OR @p_FR_BUY_DATE IS NULL AND (CONVERT(DATE, A.BUY_DATE, 103)) <= (CONVERT(DATE, @p_TO_BUY_DATE, 103))
OR (CONVERT(DATE, A.BUY_DATE, 103)) >= (CONVERT(DATE, @p_FR_BUY_DATE, 103)) AND (CONVERT(DATE, A.BUY_DATE, 103)) <= (CONVERT(DATE, @p_TO_BUY_DATE, 103))
)
OR @p_TYPE_SEARCH = 'KT' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = ''))
-- -- TIM KIEM TU NGAY O KT
-- AND ((@p_TYPE_SEARCH = 'KT' AND (((A.MAKER_ID_KT IS NULL OR A.MAKER_ID_KT = '')
-- AND (CONVERT(DATE,A.APPROVE_DT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
-- OR ((A.MAKER_ID_KT IS NOT NULL OR A.MAKER_ID_KT <> '')
-- AND ((@p_AUTH_STATUS_KT = 'A' AND (CONVERT(DATE,A.APPROVE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
-- OR (@p_AUTH_STATUS_KT = 'U' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
-- OR (@p_AUTH_STATUS_KT = 'R' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
-- OR (@p_AUTH_STATUS_KT = 'E' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
-- OR ((@p_AUTH_STATUS_KT = '' OR @p_AUTH_STATUS_KT IS NULL) AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))))))
-- OR @p_TYPE_SEARCH = 'HC' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
-- -- TIM KIEM DEN NGAY O KT
-- AND ((@p_TYPE_SEARCH = 'KT' AND (((A.MAKER_ID_KT IS NULL OR A.MAKER_ID_KT = '')
-- AND (CONVERT(DATE,A.APPROVE_DT,103) <= CONVERT(DATE, @p_TO_BUY_DATE, 103) OR @p_TO_BUY_DATE is NULL OR @p_TO_BUY_DATE = ''))
-- OR ((A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT <> '')
-- AND ((@p_AUTH_STATUS_KT = 'A' AND (CONVERT(DATE,A.APPROVE_DT_KT,103) <= CONVERT(DATE, @p_TO_BUY_DATE, 103) OR @p_TO_BUY_DATE is NULL OR @p_TO_BUY_DATE = ''))
-- OR (@p_AUTH_STATUS_KT = 'U' AND (CONVERT(DATE,A.CREATE_DT_KT,103) <= CONVERT(DATE, @p_TO_BUY_DATE, 103) OR @p_TO_BUY_DATE is NULL OR @p_TO_BUY_DATE = ''))
-- OR (@p_AUTH_STATUS_KT = 'U' AND (CONVERT(DATE,A.CREATE_DT_KT,103) <= CONVERT(DATE, @p_TO_BUY_DATE, 103) OR @p_TO_BUY_DATE is NULL OR @p_TO_BUY_DATE = ''))
-- OR (@p_AUTH_STATUS_KT = 'E' AND (CONVERT(DATE,A.CREATE_DT_KT,103) <= CONVERT(DATE, @p_TO_BUY_DATE, 103) OR @p_TO_BUY_DATE is NULL OR @p_TO_BUY_DATE = ''))
-- OR ((@p_AUTH_STATUS_KT = '' OR @p_AUTH_STATUS_KT IS NULL) AND (CONVERT(DATE,A.CREATE_DT_KT,103) <= CONVERT(DATE, @p_TO_BUY_DATE, 103) OR @p_TO_BUY_DATE is NULL OR @p_TO_BUY_DATE = ''))))))
-- OR @p_TYPE_SEARCH = 'HC' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
-- TIM KIEM TU NGAY O KT
AND ((@p_TYPE_SEARCH = 'KT' AND (((A.MAKER_ID_KT IS NULL OR A.MAKER_ID_KT = '')
AND (((@p_FR_BUY_DATE IS NULL AND @p_FR_BUY_DATE IS NULL OR
@p_TO_BUY_DATE IS NULL AND (CONVERT(DATE, A.BUY_DATE, 103)) >= (CONVERT(DATE, @p_FR_BUY_DATE, 103))
OR @p_FR_BUY_DATE IS NULL AND (CONVERT(DATE, A.BUY_DATE, 103)) <= (CONVERT(DATE, @p_TO_BUY_DATE, 103))
OR (CONVERT(DATE, A.BUY_DATE, 103)) >= (CONVERT(DATE, @p_FR_BUY_DATE, 103)) AND (CONVERT(DATE, A.BUY_DATE, 103)) <= (CONVERT(DATE, @p_TO_BUY_DATE, 103))
)))
OR ((A.MAKER_ID_KT IS NOT NULL OR A.MAKER_ID_KT <> '')
AND ((@p_AUTH_STATUS_KT = 'A' AND (CONVERT(DATE,A.APPROVE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
OR (@p_AUTH_STATUS_KT = 'U' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
OR (@p_AUTH_STATUS_KT = 'R' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
OR (@p_AUTH_STATUS_KT = 'E' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
OR ((@p_AUTH_STATUS_KT = '' OR @p_AUTH_STATUS_KT IS NULL) AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))))))
OR @p_TYPE_SEARCH = 'HC' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = ''))
AND (A.REQ_CODE like N'%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
AND (A.[TYPE_ID] = @p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID = '')
AND (A.GROUP_ID = @p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID = '')
AND (D.GROUP_CODE = @l_GROUP_CODE OR @l_GROUP_CODE IS NULL OR @l_GROUP_CODE = '')
AND (A.ASSET_NAME like N'%' + @p_ASSET_NAME + '%' OR @p_ASSET_NAME IS NULL OR @p_ASSET_NAME = '')
AND (A.ASSET_SERIAL_NO like N'%' + @p_ASSET_SERIAL_NO + '%' OR @p_ASSET_SERIAL_NO IS NULL OR @p_ASSET_SERIAL_NO = '')
AND (A.ASSET_DESC like N'%' + @p_ASSET_DESC + '%' OR @p_ASSET_DESC IS NULL OR @p_ASSET_DESC = '')
AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
AND (A.BUY_PRICE = @p_BUY_PRICE OR @p_BUY_PRICE IS NULL)
AND (A.AMORT_AMT = @p_AMORT_AMT OR @p_AMORT_AMT IS NULL)
AND (A.AMORT_MONTH = @p_AMORT_MONTH OR @p_AMORT_MONTH IS NULL)
AND (A.AMORT_RATE = @p_AMORT_RATE OR @p_AMORT_RATE IS NULL)
AND (A.IS_MULTIPLE = @p_IS_MULTIPLE OR @p_IS_MULTIPLE IS NULL OR @p_IS_MULTIPLE = '')
AND (A.QTY = @p_QTY OR @p_QTY IS NULL OR @p_QTY = 0)
AND (A.PO_ID = @p_PO_ID OR @p_PO_ID IS NULL OR @p_PO_ID = '')
AND ((@p_TYPE = 'ADD_NEW' AND (A.REF_ASSET_ID IS NULL OR A.REF_ASSET_ID = '')) OR (@p_TYPE = 'ADD_REF' AND A.REF_ASSET_ID IS NOT NULL AND A.REF_ASSET_ID <> ''))
AND (A.REF_ASSET_ID = @p_REF_ASSET_ID OR @p_REF_ASSET_ID IS NULL OR @p_REF_ASSET_ID='')
AND (A.REF_AMORTIZED_AMT = @p_REF_AMORTIZED_AMT OR @p_REF_AMORTIZED_AMT IS NULL)
AND (A.WARRANTY_MONTHS = @p_WARRANTY_MONTHS OR @p_WARRANTY_MONTHS IS NULL OR @p_WARRANTY_MONTHS = 0)
AND (A.NOTES like N'%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '')
AND (A.RECORD_STATUS = @p_RECORD_STATUS OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
AND (A.AUTH_STATUS = @p_AUTH_STATUS OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
AND (A.POSTED_STATUS = @p_POSTED_STATUS OR @p_POSTED_STATUS IS NULL OR @p_POSTED_STATUS = '')
--AND (A.BRANCH_CREATE = @p_BRANCH_CREATE OR @p_BRANCH_CREATE IS NULL OR @p_BRANCH_CREATE = '')
AND (A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR @p_AUTH_STATUS_KT IS NULL OR @p_AUTH_STATUS_KT = '')
AND ((A.MAKER_ID_KT IS NOT NULL AND @p_KT_IS_DO = 'Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
OR ((A.MAKER_ID_KT IS NULL AND @p_KT_IS_DO = 'N'))
OR @p_KT_IS_DO IS NULL OR @p_KT_IS_DO = '')
AND ((ISNULL(A.QTY,0) * ISNULL(A.BUY_PRICE,0)) >= @p_PRICE_FROM OR @p_PRICE_FROM = 0 OR @p_PRICE_FROM IS NULL)
AND ((ISNULL(A.QTY,0) * ISNULL(A.BUY_PRICE,0)) <= @p_PRICE_TO OR @p_PRICE_TO = 0 OR @p_PRICE_TO IS NULL)
-- 26-02-2020 LUCTV BO SUNG DIEU KIEN TIM KIEM PHIEU NHAP KHO THEO NGUOI TAO PHIEU : THEO YEU CAU BO SUNG CHINH SUA CUA VCCB
AND (A.MAKER_ID = @p_MAKER_ID OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
-- NEW TRANG THAI PHIEU XUAT LA LUU NHAP HOAC TU CHOI THI CHI NGUOI TAO CO THE TIM THAY
AND ((A.AUTH_STATUS IN ('E','R') AND A.MAKER_ID = @p_USER_LOGIN)
OR (EXISTS(SELECT * FROM dbo.FN_GET_USER_BY_ROLE('GDDV,GDDV_QLTS,TBP_QLTS,KSV_QLTS','DV0001','DEP000000000048') US
WHERE US.TLNANME = @p_USER_LOGIN))
OR A.AUTH_STATUS NOT IN ('E','R') OR @p_USER_LOGIN IS NULL OR @p_USER_LOGIN = '')
-- 11-03-2022 HUYHT BO SUNG DIEU KIEN TIM KIEM PHIEU NHAP THEO QUYEN KIEM NHIEM
AND ((@p_TYPE_SEARCH='HC'
AND (EXISTS(SELECT * FROM dbo.FN_GET_USER_BY_ROLE('GDDV,GDDV_QLTS,TBP_QLTS,KSV_QLTS','DV0001','DEP000000000048') US
WHERE US.TLNANME = @p_USER_LOGIN))
OR A.MAKER_ID = @p_USER_LOGIN)
OR (@p_TYPE_SEARCH='KT' AND @p_LEVEL = 'ALL' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID from @tmp))
OR (@p_TYPE_SEARCH='KT' AND @p_LEVEL = 'UNIT' AND A.BRANCH_CREATE = @p_BRANCH_CREATE)
OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH ='')
ORDER BY A.CREATE_DT DESC
-- PAGING END
END -- PAGING
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_COLLECT_CONFIRM_MASTER_Search]'
GO
ALTER PROCEDURE [dbo].[ASS_COLLECT_CONFIRM_MASTER_Search]
@p_COL_MULTI_MASTER_ID varchar(15) = NULL,
@p_BRANCH_ID varchar(15) = NULL,
@p_COLLECT_DT VARCHAR(20) = NULL,
@p_USER_COLLECT nvarchar(200) = NULL,
@p_USER_COLLECT_NAME nvarchar(200)=NULL,
@p_NOTES nvarchar(1000) = NULL,
@p_RECORD_STATUS varchar(1) = NULL,
@p_AUTH_STATUS varchar(1) = NULL,
@p_MAKER_ID varchar(100) = NULL,
@p_CREATE_DT VARCHAR(20) = NULL,
@p_CHECKER_ID varchar(100) = NULL,
@p_APPROVE_DT VARCHAR(20) = NULL,
@p_AUTH_STATUS_KT varchar(15) = NULL,
@p_CREATE_DT_KT varchar(100) = NULL,
@p_APPROVE_DT_KT VARCHAR(20) = NULL,
@p_MAKER_ID_KT varchar(100) = NULL,
@p_CHECKER_ID_KT varchar(100) = NULL,
@p_REPORT_STATUS varchar(15) = NULL,
@p_LEVEL VARCHAR(50) = 'UNIT',
@p_TOP INT = NULL,
@p_FromDate VARCHAR(20) = NULL,
@p_TODATE VARCHAR(20) = NULL,
@p_IS_UPDATE VARCHAR(1) = NULL,
@p_USER_LOGIN VARCHAR(15),
@p_TYPE_SEARCH VARCHAR(10)= NULL,
@p_COLLECT_DT_FROM VARCHAR(50) = NULL,
@p_COLLECT_DT_TO VARCHAR(50) = NULL
AS
BEGIN -- PAGING
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
----
set @p_RECORD_STATUS = '1'
----
DECLARE @ASSIGN_ROLES TABLE (BRANCH_ID VARCHAR(20), DEPT_ID VARCHAR(15), ROLE_ID VARCHAR(20))
INSERT INTO @ASSIGN_ROLES SELECT * FROM [dbo].[TL_USER_GET_ASSIGNED_BRANCH](@p_USER_LOGIN)
-- GiaNT
DECLARE @BRANCH_LOGIN VARCHAR(15), @DEP_LOGIN VARCHAR(15)
SET @BRANCH_LOGIN = (SELECT TOP 1 TLSUBBRID FROM TL_USER WHERE TLNANME = @p_USER_LOGIN)
SET @DEP_LOGIN = (SELECT TOP 1 DEP_ID FROM TL_USER WHERE TLNANME = @p_USER_LOGIN)
-- GIANT 11/10/2021
DECLARE @BRANCH_TYPE VARCHAR(5)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_LOGIN)
IF(@p_TOP IS NULL OR @p_TOP = '' OR @p_TOP = 0)
begin
-- PAGING BEGIN
SELECT A.*,C.BRANCH_CODE, C.BRANCH_NAME, F.AUTH_STATUS_NAME, T1.TLFullName AS MAKER_NAME,T2.TLFullName AS MAKER_NAME_KT,T3.TLFullName APPROVE_NAME, T4.TLFullName APPROVE_NAME_KT,
ATKT.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_KT, C.BRANCH_CODE +' - '+ C.BRANCH_NAME AS FULL_BRANCH_NAME,
@p_USER_LOGIN AS USER_LOGIN,@p_TYPE_SEARCH AS TYPE_SEARCH,
CASE WHEN ACCM.COL_MULTI_MASTER_CONFIRM_ID IS NOT NULL AND ACCM.COL_MULTI_MASTER_CONFIRM_ID <> '' THEN 'Y'
ELSE 'N' END AS CONFIRM_STATUS,
ISNULL(CA1.CONTENT,N'Chưa xác nhận') AS CONFIRM_STATUS_NAME,
REQ.REQ_CODE, REQ.REQ_NAME
-- SELECT END
FROM ASS_COLLECT_MULTI_MASTER A
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_AUTH_STATUS F ON A.AUTH_STATUS = F.AUTH_STATUS
LEFT JOIN CM_AUTH_STATUS ATKT ON ATKT.AUTH_STATUS = A.AUTH_STATUS_KT
LEFT JOIN TL_USER T1 ON A.MAKER_ID = T1.TLNANME
LEFT JOIN TL_USER T2 ON A.MAKER_ID_KT = T2.TLNANME
LEFT JOIN TL_USER T3 ON A.CHECKER_ID = T3.TLNANME
LEFT JOIN TL_USER T4 ON A.CHECKER_ID_KT = T4.TLNANME
--INNER JOIN (SELECT BRANCH_ID,COL_MULTI_MASTER_ID,COUNT(*) AS SL FROM ASS_COLLECT_MULTI_DT WHERE DEPT_ID_USE = @BRANCH_LOGIN GROUP BY BRANCH_ID,COL_MULTI_MASTER_ID) DTT ON DTT.COL_MULTI_MASTER_ID = A.COL_MULTI_MASTER_ID
LEFT JOIN TR_REQUEST_SHOP_DOC REQ ON A.REQ_ID = REQ.REQ_ID
LEFT JOIN ASS_COLLECT_CONFIRM_MASTER ACCM ON A.COL_MULTI_MASTER_ID = ACCM.COL_MULTI_MASTER_ID
LEFT JOIN CM_ALLCODE CA1 ON ACCM.CONFIRM_STATUS = CA1.CDVAL AND CA1.CDNAME = 'WARE_HOUSE_TRAN' AND CA1.CDTYPE = 'MW_TRAN'
WHERE 1 = 1
AND (A.COL_MULTI_MASTER_ID LIKE '%' + @p_COL_MULTI_MASTER_ID + '%' OR @p_COL_MULTI_MASTER_ID IS NULL OR @p_COL_MULTI_MASTER_ID = '')
AND (CONVERT(DATE,ISNULL(A.CREATE_DT_KT, A.COLLECT_DT),103) >= CONVERT(DATE,@p_FromDate, 103) OR @p_FromDate IS NULL OR @p_FromDate ='')
AND (CONVERT(DATE,ISNULL(A.CREATE_DT_KT, A.COLLECT_DT),103) <= CONVERT(DATE,@p_TODATE, 103) OR @p_TODATE IS NULL OR @p_TODATE ='')
AND (A.USER_COLLECT LIKE '%' + @p_USER_COLLECT + '%' OR @p_USER_COLLECT IS NULL OR @p_USER_COLLECT = '')
AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '')
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
AND (A.CREATE_DT =CONVERT(DATETIME, @p_CREATE_DT, 103) OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
AND (A.APPROVE_DT =CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
AND (A.AUTH_STATUS_KT LIKE '%' + @p_AUTH_STATUS_KT + '%' OR @p_AUTH_STATUS_KT IS NULL OR @p_AUTH_STATUS_KT = '')
AND (A.CREATE_DT_KT =CONVERT(DATETIME, @p_CREATE_DT_KT, 103) OR @p_CREATE_DT_KT IS NULL OR @p_CREATE_DT_KT = '')
AND (A.APPROVE_DT_KT =CONVERT(DATETIME, @p_APPROVE_DT_KT, 103) OR @p_APPROVE_DT_KT IS NULL OR @p_APPROVE_DT_KT = '')
AND (A.MAKER_ID_KT LIKE '%' + @p_MAKER_ID_KT + '%' OR @p_MAKER_ID_KT IS NULL OR @p_MAKER_ID_KT = '')
AND (A.CHECKER_ID_KT LIKE '%' + @p_CHECKER_ID_KT + '%' OR @p_CHECKER_ID_KT IS NULL OR @p_CHECKER_ID_KT = '')
AND (A.REPORT_STATUS LIKE '%' + @p_REPORT_STATUS + '%' OR @p_REPORT_STATUS IS NULL OR @p_REPORT_STATUS = '')
AND A.RECORD_STATUS='1'
AND (A.REPORT_STATUS LIKE '%' + @p_REPORT_STATUS + '%' OR @p_REPORT_STATUS IS NULL OR @p_REPORT_STATUS = '')
-- GiaNT 28/09/2021
AND ( (@p_AUTH_STATUS = 'Y' AND A.COL_MULTI_MASTER_ID IN (SELECT G.COL_MULTI_MASTER_ID FROM ASS_COLLECT_CONFIRM_MASTER G))
OR (@p_AUTH_STATUS = 'N' AND A.COL_MULTI_MASTER_ID NOT IN (SELECT G.COL_MULTI_MASTER_ID FROM ASS_COLLECT_CONFIRM_MASTER G)
OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '' )))
AND A.AUTH_STATUS = 'A'
-- GiaNT 11/10/2021
--AND (
-- (@BRANCH_TYPE = 'HS' AND EXISTS (SELECT * FROM ASS_COLLECT_MULTI_DT WHERE A.COL_MULTI_MASTER_ID = ASS_COLLECT_MULTI_DT.COL_MULTI_MASTER_ID AND ASS_COLLECT_MULTI_DT.DEPT_ID_USE = @DEP_LOGIN))
-- OR (@BRANCH_TYPE <> 'HS' AND EXISTS (SELECT * FROM ASS_COLLECT_MULTI_DT WHERE A.COL_MULTI_MASTER_ID = ASS_COLLECT_MULTI_DT.COL_MULTI_MASTER_ID AND ASS_COLLECT_MULTI_DT.BRANCH_ID = @BRANCH_LOGIN))
--)
-- TIM KIEM THEO TRUONG DON VI GIAO TAI SAN
AND (EXISTS(SELECT * FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,TBP_QLTS,KSV_QLTS',
(SELECT TOP 1 DT.BRANCH_ID FROM ASS_COLLECT_MULTI_DT DT WHERE DT.COL_MULTI_MASTER_ID = A.COL_MULTI_MASTER_ID ORDER BY COLLECT_MULTI_ID ASC),
(SELECT TOP 1 DT.DEPT_ID_USE FROM ASS_COLLECT_MULTI_DT DT WHERE DT.COL_MULTI_MASTER_ID = A.COL_MULTI_MASTER_ID ORDER BY COLLECT_MULTI_ID ASC)) US
WHERE US.TLNANME = @p_USER_LOGIN))
AND (CONVERT(DATETIME,A.COLLECT_DT,103) >= CONVERT(DATETIME,@p_COLLECT_DT_FROM,103) OR @p_COLLECT_DT_FROM IS NULL OR @p_COLLECT_DT_FROM = '')
AND (CONVERT(DATETIME,A.COLLECT_DT,103) <= CONVERT(DATETIME,@p_COLLECT_DT_TO,103) OR @p_COLLECT_DT_TO IS NULL OR @p_COLLECT_DT_TO = '')
ORDER BY A.CREATE_DT DESC
-- PAGING END
end
ELSE
BEGIN
-- PAGING BEGIN
SELECT TOP(CONVERT(INT,@p_TOP))A.*,C.BRANCH_CODE, C.BRANCH_NAME, F.AUTH_STATUS_NAME, T1.TLFullName AS MAKER_NAME,T2.TLFullName AS MAKER_NAME_KT,T3.TLFullName APPROVE_NAME, T4.TLFullName APPROVE_NAME_KT,
ATKT.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_KT, C.BRANCH_CODE +' - '+ C.BRANCH_NAME AS FULL_BRANCH_NAME,
@p_USER_LOGIN AS USER_LOGIN,@p_TYPE_SEARCH AS TYPE_SEARCH,
CASE WHEN ACCM.COL_MULTI_MASTER_CONFIRM_ID IS NOT NULL AND ACCM.COL_MULTI_MASTER_CONFIRM_ID <> '' THEN 'Y'
ELSE 'N' END AS CONFIRM_STATUS,
ISNULL(CA1.CONTENT,N'Chưa xác nhận') AS CONFIRM_STATUS_NAME,
REQ.REQ_CODE, REQ.REQ_NAME
-- SELECT END
FROM ASS_COLLECT_MULTI_MASTER A
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_AUTH_STATUS F ON A.AUTH_STATUS = F.AUTH_STATUS
LEFT JOIN CM_AUTH_STATUS ATKT ON ATKT.AUTH_STATUS = A.AUTH_STATUS_KT
LEFT JOIN TL_USER T1 ON A.MAKER_ID = T1.TLNANME
LEFT JOIN TL_USER T2 ON A.MAKER_ID_KT = T2.TLNANME
LEFT JOIN TL_USER T3 ON A.CHECKER_ID = T3.TLNANME
LEFT JOIN TL_USER T4 ON A.CHECKER_ID_KT = T4.TLNANME
--INNER JOIN (SELECT BRANCH_ID,COL_MULTI_MASTER_ID,COUNT(*) AS SL FROM ASS_COLLECT_MULTI_DT WHERE DEPT_ID_USE = @BRANCH_LOGIN GROUP BY BRANCH_ID,COL_MULTI_MASTER_ID) DTT ON DTT.COL_MULTI_MASTER_ID = A.COL_MULTI_MASTER_ID
LEFT JOIN TR_REQUEST_SHOP_DOC REQ ON A.REQ_ID = REQ.REQ_ID
LEFT JOIN ASS_COLLECT_CONFIRM_MASTER ACCM ON A.COL_MULTI_MASTER_ID = ACCM.COL_MULTI_MASTER_ID
LEFT JOIN CM_ALLCODE CA1 ON ACCM.CONFIRM_STATUS = CA1.CDVAL AND CA1.CDNAME = 'WARE_HOUSE_TRAN' AND CA1.CDTYPE = 'MW_TRAN'
WHERE 1 = 1
AND (A.COL_MULTI_MASTER_ID LIKE '%' + @p_COL_MULTI_MASTER_ID + '%' OR @p_COL_MULTI_MASTER_ID IS NULL OR @p_COL_MULTI_MASTER_ID = '')
AND (CONVERT(DATE,ISNULL(A.CREATE_DT_KT, A.COLLECT_DT),103) >= CONVERT(DATE,@p_FromDate, 103) OR @p_FromDate IS NULL OR @p_FromDate ='')
AND (CONVERT(DATE,ISNULL(A.CREATE_DT_KT, A.COLLECT_DT),103) <= CONVERT(DATE,@p_TODATE, 103) OR @p_TODATE IS NULL OR @p_TODATE ='')
AND (A.USER_COLLECT LIKE '%' + @p_USER_COLLECT + '%' OR @p_USER_COLLECT IS NULL OR @p_USER_COLLECT = '')
AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '')
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
AND (A.CREATE_DT =CONVERT(DATETIME, @p_CREATE_DT, 103) OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
AND (A.APPROVE_DT =CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
AND (A.AUTH_STATUS_KT LIKE '%' + @p_AUTH_STATUS_KT + '%' OR @p_AUTH_STATUS_KT IS NULL OR @p_AUTH_STATUS_KT = '')
AND (A.CREATE_DT_KT =CONVERT(DATETIME, @p_CREATE_DT_KT, 103) OR @p_CREATE_DT_KT IS NULL OR @p_CREATE_DT_KT = '')
AND (A.APPROVE_DT_KT =CONVERT(DATETIME, @p_APPROVE_DT_KT, 103) OR @p_APPROVE_DT_KT IS NULL OR @p_APPROVE_DT_KT = '')
AND (A.MAKER_ID_KT LIKE '%' + @p_MAKER_ID_KT + '%' OR @p_MAKER_ID_KT IS NULL OR @p_MAKER_ID_KT = '')
AND (A.CHECKER_ID_KT LIKE '%' + @p_CHECKER_ID_KT + '%' OR @p_CHECKER_ID_KT IS NULL OR @p_CHECKER_ID_KT = '')
AND (A.REPORT_STATUS LIKE '%' + @p_REPORT_STATUS + '%' OR @p_REPORT_STATUS IS NULL OR @p_REPORT_STATUS = '')
AND A.RECORD_STATUS='1'
AND (A.REPORT_STATUS LIKE '%' + @p_REPORT_STATUS + '%' OR @p_REPORT_STATUS IS NULL OR @p_REPORT_STATUS = '')
-- GiaNT 28/09/2021
AND ( (@p_AUTH_STATUS = 'Y' AND A.COL_MULTI_MASTER_ID IN (SELECT G.COL_MULTI_MASTER_ID FROM ASS_COLLECT_CONFIRM_MASTER G))
OR (@p_AUTH_STATUS = 'N' AND A.COL_MULTI_MASTER_ID NOT IN (SELECT G.COL_MULTI_MASTER_ID FROM ASS_COLLECT_CONFIRM_MASTER G)
OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '' )))
AND A.AUTH_STATUS = 'A'
-- GiaNT 11/10/2021
--AND (
-- (@BRANCH_TYPE = 'HS' AND EXISTS (SELECT * FROM ASS_COLLECT_MULTI_DT WHERE A.COL_MULTI_MASTER_ID = ASS_COLLECT_MULTI_DT.COL_MULTI_MASTER_ID AND ASS_COLLECT_MULTI_DT.DEPT_ID_USE = @DEP_LOGIN))
-- OR (@BRANCH_TYPE <> 'HS' AND EXISTS (SELECT * FROM ASS_COLLECT_MULTI_DT WHERE A.COL_MULTI_MASTER_ID = ASS_COLLECT_MULTI_DT.COL_MULTI_MASTER_ID AND ASS_COLLECT_MULTI_DT.BRANCH_ID = @BRANCH_LOGIN))
--)
-- TIM KIEM THEO TRUONG DON VI GIAO TAI SAN
AND (EXISTS(SELECT * FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,TBP_QLTS,KSV_QLTS',
(SELECT TOP 1 DT.BRANCH_ID FROM ASS_COLLECT_MULTI_DT DT WHERE DT.COL_MULTI_MASTER_ID = A.COL_MULTI_MASTER_ID ORDER BY COLLECT_MULTI_ID ASC),
(SELECT TOP 1 DT.DEPT_ID_USE FROM ASS_COLLECT_MULTI_DT DT WHERE DT.COL_MULTI_MASTER_ID = A.COL_MULTI_MASTER_ID ORDER BY COLLECT_MULTI_ID ASC)) US
WHERE US.TLNANME = @p_USER_LOGIN))
AND (CONVERT(DATETIME,A.COLLECT_DT,103) >= CONVERT(DATETIME,@p_COLLECT_DT_FROM,103) OR @p_COLLECT_DT_FROM IS NULL OR @p_COLLECT_DT_FROM = '')
AND (CONVERT(DATETIME,A.COLLECT_DT,103) <= CONVERT(DATETIME,@p_COLLECT_DT_TO,103) OR @p_COLLECT_DT_TO IS NULL OR @p_COLLECT_DT_TO = '')
ORDER BY A.CREATE_DT DESC
-- PAGING END
END
END -- PAGING
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_ADDNEW_KT_BVB_Appr]'
GO
ALTER PROCEDURE [dbo].[ASS_ADDNEW_KT_BVB_Appr]
@p_ADDNEW_ID VARCHAR(15) = NULL,
@p_CHECKER_ID varchar(100) = NULL,
@p_APPROVE_DT VARCHAR(20) = NULL
AS
DECLARE @l_SUP_ID varchar(15)
DECLARE @l_BUY_DATE datetime = NULL
DECLARE @l_TYPE_ID varchar(15) = NULL
DECLARE @l_GROUP_ID varchar(15) = NULL
DECLARE @l_ASSET_NAME nvarchar(1000) = NULL
DECLARE @l_ASSET_SERIAL_NO nvarchar(max) = NULL
DECLARE @l_ASSET_DESC nvarchar(max) = NULL
DECLARE @l_BRANCH_ID varchar(15) = NULL
DECLARE @l_DEPT_ID varchar(15) = NULL
DECLARE @l_EMP_ID varchar(15) = NULL
DECLARE @l_DIVISION_ID varchar(15) = NULL
DECLARE @l_BUY_PRICE decimal(18) = NULL
DECLARE @l_AMORT_AMT decimal(18) = NULL
DECLARE @l_AMORT_MONTH decimal(18,2) = NULL
DECLARE @l_AMORT_RATE decimal(18,2) = NULL
DECLARE @l_IS_MULTIPLE varchar(1) = NULL
DECLARE @l_QTY int = NULL
DECLARE @l_PO_ID varchar(15) = NULL
DECLARE @l_PD_ID varchar(15) = NULL
DECLARE @l_REF_ASSET_ID varchar(15) = NULL
DECLARE @l_REF_AMORTIZED_AMT decimal(18) = NULL
DECLARE @l_WARRANTY_MONTHS int = NULL
DECLARE @l_NOTES nvarchar(1000) = NULL
DECLARE @l_CORE_NOTE nvarchar(500) = NULL
declare @l_ENTRY_BOOKED varchar(1) = null
DECLARE @l_MAKER_ID varchar(15)
DECLARE @l_AUTH_STATUS_KT varchar(1)
declare @l_DO_BRANCH_ID varchar(15)
DECLARE @l_CONSTRUCT_ID varchar(15) = NULL
DECLARE @l_USE_DATE_KT DATETIME = NULL
DECLARE @l_AMORTIZED_AMT DECIMAL = 0
DECLARE @l_AMORTIZED_MONTH DECIMAL = 0
DECLARE @l_AMORT_STATUS nvarchar(20)
DECLARE @l_AMORT_START_DATE datetime, @l_AMORT_END_DATE datetime
DECLARE @l_FIRST_AMORT_AMT numeric(18,0)
DECLARE @l_MONTHLY_AMT numeric(18,0)
DECLARE @l_HO_BRN_ID varchar(15)
DECLARE @l_WAH_ID varchar(15)
DECLARE @sToday varchar(10) = convert(varchar(10), getdate(), 103)
DECLARE @l_USE_DATE varchar(15)
DECLARE @l_AMORTDT_ID VARCHAR(15) = NULL
DECLARE @l_ASS_TYPE varchar(1) = '1'
declare @l_TRN_REF_NO varchar(20)
DECLARE @l_ET_ID varchar(15)
DECLARE @l_VALUE_ID varchar(15)
DECLARE @l_ASSET_ID varchar(15)
DECLARE @l_ASSET_CODE nvarchar(100)
DECLARE @l_WAHDT_ID varchar(15)
DECLARE @l_LOCHIST_ID varchar(15)
DECLARE @PRICE_NONE_VAT DECIMAL(18,0)
DECLARE @PRICE_VAT DECIMAL(18,0)
DECLARE @l_SUPPEND_GL varchar(50)
DECLARE @l_ASSET_GL varchar(50)
declare @l_ASSET_VALUE decimal(18,0)
DECLARE @l_EXP_ACCTNO varchar(50)--TK CHI PHI
DECLARE @l_AMORT_ACCTNO varchar(50)--TK CHO PHAN BO
DECLARE @l_PAY_HS_ACCTNO VARCHAR(50)
DECLARE @_BUY_TS_ACCTNO VARCHAR(50)
DECLARE @l_WAIT_AMORT VARCHAR(50)
DECLARE @l_TRANFER_ACCTNO VARCHAR(50)
DECLARE @l_DR_BRANCH VARCHAR(15) -- DV GHI NO
DECLARE @ERRORSYS NVARCHAR(15) = ''
DECLARE @ACCOUNT_GL VARCHAR(50), @ACCOUNT_VAT VARCHAR(50)
DECLARE @i INT, @l_USE_DATE_CUR DATETIME = NULL
DECLARE @l_CURR_AMORT_AMT DECIMAL(18,0) = 0
DECLARE @sExecDT DATETIME
DECLARE @l_AMORT_TERM VARCHAR(500), @l_AMORT_DESC VARCHAR(500)
DECLARE @l_OLD_QT INT, @l_CUR_QT INT -- 26/12/2014 THIEUVQ
DECLARE @l_IS_AMORT_WR VARCHAR(1) = '1' --THIEUVQ 27/07/2015 THEM DIEU KIEN KIEM TRA KHI NAO GHI NHAN KHAU HAO
DECLARE @l_BRANCH_CREATE VARCHAR(15), @BRN_TYPE_TRN VARCHAR(15), @BRN_TYPE_REC VARCHAR(15), @TCCT_TRN_ACCTNO VARCHAR(50), @TCCT_REC_ACCTNO VARCHAR(50)
DECLARE @l_VAT DECIMAL(18,0), @ERROR NVARCHAR(500) = ''
DECLARE @l_COST_MASTER_ID VARCHAR(15)
DECLARE @l_COSTDT_ID VARCHAR(15)
DECLARE @CUR_DATE DATETIME = GETDATE()
-- khiemchg bo sung thong tin pyc
DECLARE @REQ_ID VARCHAR(15)
DECLARE @REQ_CODE VARCHAR(50)
DECLARE @ASS_CONTRACT_CODE VARCHAR(50)
DECLARE @PL_CODE VARCHAR(50)
--check ngày khấu hao null
IF (EXISTS(SELECT 1 FROM ASS_ADDNEW WHERE ADDNEW_ID =@p_ADDNEW_ID AND BRANCH_ID IS NOT NULL AND AMORT_START_DATE IS NULL))
BEGIN
SELECT '-1' AS Result, '' ADDNEW_ID, N'Thông tin ngày bắt đầu phân bổ không hợp lệ' ErrorDesc
RETURN '-1'
END
--lay thong tin giao dich
SELECT @l_BUY_DATE = BUY_DATE, @l_TYPE_ID = A.[TYPE_ID], @l_GROUP_ID = A.GROUP_ID, @l_ASSET_NAME = ASSET_NAME,
@l_ASSET_SERIAL_NO = ASSET_SERIAL_NO, @l_ASSET_DESC = ASSET_DESC, @l_CONSTRUCT_ID = CONSTRUCT_ID,
@l_BRANCH_ID = BRANCH_ID, @l_DEPT_ID = DEPT_ID, @l_EMP_ID = EMP_ID, @l_DIVISION_ID = DIVISION_ID,
@l_BUY_PRICE = BUY_PRICE, @l_AMORT_AMT = AMORT_AMT, @l_AMORT_START_DATE = AMORT_START_DATE,
@l_AMORT_MONTH = A.AMORT_MONTH,
--@l_AMORT_MONTH = CASE WHEN G.AMORT_MONTH<>0 THEN G.AMORT_MONTH ELSE A.AMORT_MONTH END,
@l_AMORT_RATE = A.AMORT_RATE, @l_CORE_NOTE = A.CORE_NOTE,
@l_IS_MULTIPLE = IS_MULTIPLE, @l_QTY = QTY, @l_PO_ID = PO_ID,@l_PD_ID=PD_ID, @l_REF_ASSET_ID = REF_ASSET_ID,
@l_REF_AMORTIZED_AMT = REF_AMORTIZED_AMT, @l_WARRANTY_MONTHS = WARRANTY_MONTHS, @l_NOTES = A.NOTES, @l_ENTRY_BOOKED = ENTRY_BOOKED,
@l_MAKER_ID = A.MAKER_ID_KT, @l_AUTH_STATUS_KT = A.AUTH_STATUS_KT, @ACCOUNT_GL = A.ACCOUNT_GL, @PRICE_VAT = A.PRICE_VAT,@l_BRANCH_CREATE= A.BRANCH_CREATE, @l_VAT = A.VAT
,@REQ_CODE = A.REQ_CODE, @REQ_ID = A.REQ_ID, @ASS_CONTRACT_CODE = A.CONTRACT_ID, @PL_CODE = A.PL_CODE
FROM ASS_ADDNEW A
INNER JOIN ASS_GROUP G on G.GROUP_ID = A.GROUP_ID
WHERE ADDNEW_ID = @p_ADDNEW_ID
IF @@Error <> 0 GOTO ABORT
------LUCTV: 21-12-2018KIEM TRA NEU TINH TRANG DANG LA 'R' THI KHONG CHO PHEP DUYET-----
IF(EXISTS(SELECT * FROM ASS_ADDNEW WHERE AUTH_STATUS_KT ='R' AND ADDNEW_ID =@p_ADDNEW_ID))
BEGIN
--ROLLBACK TRANSACTION
SELECT '-1' as Result, '' ADDNEW_ID, N'Thông tin nhập mới tài sản đang bị trả về. Vui lòng cập nhật lại thông tin trước khi duyệt' ErrorDesc
RETURN '-1'
END
IF(EXISTS(SELECT * FROM ASS_ADDNEW WHERE AUTH_STATUS_KT ='A' AND ADDNEW_ID =@p_ADDNEW_ID))
BEGIN
--ROLLBACK TRANSACTION
SELECT '-1' as Result, '' ADDNEW_ID, N'Phiếu nhập mới đã được duyệt.' ErrorDesc
RETURN '-1'
END
------LUCTV: 21-12-2021 KIEM TRA NEU GDV CHUA CAP NHAT PHIEU THI KHONG CHO PHEP DUYET-----
IF((SELECT MAKER_ID_KT FROM ASS_ADDNEW WHERE ADDNEW_ID =@p_ADDNEW_ID) IS NULL)
BEGIN
--ROLLBACK TRANSACTION
SELECT '-1' as Result, '' ADDNEW_ID, N'Thông tin nhập mới tài sản đang bị trả về. Vui lòng cập nhật lại thông tin trước khi duyệt' ErrorDesc
RETURN '-1'
END
/*******DIEN GIAI PHAN BO CHI PHI ***********/
SET @l_AMORT_DESC = 'PHAN BO CHI PHI CCLD KY ' + convert(varchar(10),month(getdate())) + ' ' + convert(varchar(10),year(getdate()))
/********** chekc vadilation ************/
IF (@l_AUTH_STATUS_KT = 'A')
SET @ERRORSYS = 'ASS-99998'
/*********** Kiem tra gia tri khau hao voi gia tri 30Tr **************/
SELECT @l_ASSET_VALUE = CONVERT(decimal(18,0), ParaValue) FROM SYS_PARAMETERS WHERE ParaKey = 'ASSET_VALUE'
IF (@l_TYPE_ID = 'CCLD' AND @l_AMORT_AMT > @l_ASSET_VALUE)
SET @ERRORSYS = 'ASS-00011'
--IF @l_AMORT_MONTH < 1 AND @l_AMORT_MONTH IS NOT NULL AND @l_AMORT_MONTH <> ''
--BEGIN
-- SET @ERRORSYS = 'ASS-00020'
--END
--IF (@l_ASS_TYPE = 'TSCD' AND @l_AMORT_AMT < @l_ASSET_VALUE)
-- SET @ERRORSYS = 'ASS-00012'
/************ Xuat tai san thi phai hach toan tang tai sai ****************/
--IF (@l_ENTRY_BOOKED = 'N' AND (@l_BRANCH_ID IS NOT NULL OR @l_BRANCH_ID <>''))
-- SET @ERRORSYS = 'ASS-00013'
/*************** Doi voi CCLD phai khau hao het trong nam tai chinh ***********/
--Tinh ngay ket thuc khau hao
SET @l_AMORT_END_DATE = DATEADD(MONTH, @l_AMORT_MONTH, @l_AMORT_START_DATE) - 1
IF @ERRORSYS <> ''
BEGIN
SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
RETURN '0'
END
--Lay thong tin nha cung cap
SELECT @l_SUP_ID = SUP_ID FROM TR_PO_MASTER A WHERE A.PO_ID = @l_PO_ID
--BRN_ID HOI SO
SELECT @l_HO_BRN_ID = BRANCH_ID FROM CM_BRANCH A WHERE A.BRANCH_TYPE = 'HS'
--Lay thong tin kho mac dinh
--SELECT @l_WAH_ID = P.ParaValue FROM SYS_PARAMETERS P WHERE P.ParaKey='ASSET_WAREHOUSE'
SET @l_WAH_ID = @l_BRANCH_CREATE
--Lay suppend GL - THIEUVQ 26092016 - GHI NHAN THEO TAI KHOAN NHAP TU PHAN MEM
--SET @l_SUPPEND_GL = UPPER(@ACCOUNT_GL) + 'XXXX'
--SELECT @l_SUPPEND_GL = A.ParaValue FROM SYS_PARAMETERS A WHERE A.ParaKey='ASSET_SUPPEND_GL'
--SELECT * FROM SYS_PARAMETERS A WHERE A.ParaKey='ASSET_SUPPEND_GL'
----THIEUVQ - 30/05/2014 DOI VOI CCLD THI GHI NHAN TAI DON VI
--SET @l_SUPPEND_GL = SUBSTRING(@l_SUPPEND_GL,1,LEN(@l_SUPPEND_GL) - 4) + 'XXXX'
--TAI KHOAN HACH TOAN VAT
SET @ACCOUNT_VAT = (SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='ACC_VAT')
--- TAI KHOAN PHAI TRA HS
--NẾU XSD THÌ TĂNG TÀI SẢN
IF(@l_TYPE_ID='TSCD')
BEGIN
IF(@l_BRANCH_ID IS NOT NULL OR @l_BRANCH_ID <> '')
BEGIN
SET @l_ENTRY_BOOKED = 'Y'
END
ELSE IF(@l_BRANCH_ID IS NULL OR @l_BRANCH_ID = '')
BEGIN
SET @l_ENTRY_BOOKED = 'N'
END
SET @l_BUY_PRICE = @l_BUY_PRICE + @PRICE_VAT
SET @l_AMORT_AMT = @l_BUY_PRICE
END
SET @l_TRANFER_ACCTNO =(SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='TRANSFER')
SET @l_PAY_HS_ACCTNO = (SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='PAY_HS')
SET @_BUY_TS_ACCTNO = (SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='BUY_TSCD' AND epa.GROUP_ID=(SELECT AG.PARENT_ID FROM ASS_GROUP AG WHERE AG.GROUP_ID = (SELECT AG.PARENT_ID FROM ASS_GROUP AG WHERE AG.GROUP_ID = @l_GROUP_ID)))
SET @l_WAIT_AMORT = (SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='AMORT_CCLD')
--ASSET_GL
SELECT @l_ASSET_GL = ASSET_ACCTNO,
@l_EXP_ACCTNO = EXP_ACCTNO,
@l_AMORT_ACCTNO = AMORT_ACCTNO
FROM ASS_GROUP A
WHERE A.GROUP_ID = @l_GROUP_ID
--Lay branch_id cua user duyet
select @l_DO_BRANCH_ID = a.TLSUBBRID from TL_USER a where a.TLNANME = @p_CHECKER_ID
--Trang thai khau hao
IF (@l_BRANCH_ID IS NULL OR @l_BRANCH_ID = '') --Chua xuat su dung
BEGIN
SET @l_AMORT_STATUS = 'VNM'
SET @l_AMORT_START_DATE = NULL
SET @l_AMORT_END_DATE = NULL
SET @l_MONTHLY_AMT = NULL
SET @l_FIRST_AMORT_AMT = NULL
SET @l_USE_DATE = NULL
END
ELSE
IF @l_AMORT_MONTH = 0 OR @l_AMORT_START_DATE IS NULL OR @l_AMORT_START_DATE = ''
BEGIN
SET @l_AMORT_STATUS = 'KKH'
SET @l_AMORT_START_DATE = NULL
SET @l_AMORT_END_DATE = NULL
SET @l_MONTHLY_AMT = 0
SET @l_FIRST_AMORT_AMT = 0
SET @l_USE_DATE = @sToday
SET @l_USE_DATE_KT = CONVERT(DATETIME, @sToday, 103)
END
ELSE
BEGIN
SET @l_AMORT_STATUS = 'CKH'
SET @l_USE_DATE = @sToday
SET @l_USE_DATE_KT = CONVERT(DATETIME, @sToday, 103)
--Ngay bat dau khau hao mac dinh la ngay hien tai
IF(@l_AMORT_START_DATE IS NULL) ---THIEUVQ MOI THEM
BEGIN
SET @l_AMORT_START_DATE = GETDATE()
END
--Tinh so tien khau hao thang dau tien va so tien khau hao hang thang
SET @l_MONTHLY_AMT = ROUND(@l_AMORT_AMT / @l_AMORT_MONTH, 0)
--SET @l_FIRST_AMORT_AMT = @l_MONTHLY_AMT
-- IF(@l_TYPE_ID='TSCD')
--BEGIN
DECLARE @AMORT_ON_DAY DECIMAL(18,0)
SET @AMORT_ON_DAY = ROUND(@l_MONTHLY_AMT/dbo.[FN_GetDaysInMonth](@l_AMORT_START_DATE),0)
SET @l_FIRST_AMORT_AMT = ROUND(@AMORT_ON_DAY * (DATEDIFF(day,@l_AMORT_START_DATE, dbo.FN_GetLastDayOfMonth(@l_AMORT_START_DATE)) + 1), 0)
--END
IF(DAY(@l_AMORT_START_DATE)=1)
SET @l_FIRST_AMORT_AMT=@l_MONTHLY_AMT
-- ELSE
-- SET @l_FIRST_AMORT_AMT = @l_MONTHLY_AMT
END
DECLARE @ASSID_TEMP TABLE([ID] [int] IDENTITY(1,1) NOT NULL, ASSET_ID VARCHAR(15))
--INSERT INTO @ASSID_TEMP SELECT A FROM ASS_MASTER AA WHERE AA.ADD = @p_ADDNEW_ID
INSERT INTO @ASSID_TEMP SELECT AT.ASSET_ID FROM ASS_TRANSACTIONS AT WHERE AT.TRN_ID = @p_ADDNEW_ID AND AT.TRN_TYPE ='ADD_NEW'
BEGIN TRANSACTION
--UPDATE GIAO DICH ADDNEW
--IF(@l_IS_MULTIPLE = '1')
BEGIN--Phân lại seri nếu thêm vào lúc kế toán
DECLARE @l_LSTSERI TABLE (
[ID] [int] IDENTITY(1,1) NOT NULL,
[VALUE] [NVARCHAR](MAX) NULL)
DECLARE @l_SERI VARCHAR(MAX) = NULL
INSERT INTO @l_LSTSERI SELECT VALUE FROM WSISPLIT(@l_ASSET_SERIAL_NO,',') --Phân lại seri nếu thêm vào lúc kế toán
END
UPDATE ASS_ADDNEW
SET AUTH_STATUS_KT = 'A',
CHECKER_ID_KT = @p_CHECKER_ID,
APPROVE_DT_KT = CONVERT(DATETIME, @p_APPROVE_DT, 103) ,
POSTED_STATUS = 'Y'
WHERE ADDNEW_ID = @p_ADDNEW_ID
IF @@Error <> 0 GOTO ABORT
DECLARE @l_TRN_NO VARCHAR(15), @l_MAKER_KT VARCHAR(100)
SET @l_MAKER_KT = (SELECT aa.MAKER_ID_KT FROM ASS_ADDNEW aa WHERE aa.ADDNEW_ID = @p_ADDNEW_ID)
EXEC ENTRIES_POST_GEN_NO @p_BRANCH_ID = @l_MAKER_KT
,@p_TRN_DATE = @p_APPROVE_DT
,@p_KeyGen = @l_TRN_NO OUT
--IF (@l_IS_MULTIPLE = '0') --nhap tai san don le
DECLARE @int INT = 1
WHILE (@int <= (SELECT COUNT(*) FROM @ASSID_TEMP))
BEGIN
SET @l_ASSET_ID = (SELECT ASSET_ID FROM @ASSID_TEMP WHERE ID = @int)
SET @l_SERI = (SELECT VALUE FROM @l_LSTSERI WHERE ID = @int)
--Phat sinh ma tai san
EXEC ASS_CODE_Gen_VB @l_ASSET_CODE OUT
IF @l_ASSET_CODE = '' OR @l_ASSET_CODE IS NULL GOTO ABORT
--Insert bang ASS_MASTER
UPDATE ASS_MASTER SET
[TYPE_ID] = @l_TYPE_ID,
[GROUP_ID] = @l_GROUP_ID,
[ASSET_CODE] = @l_ASSET_CODE,
[ASSET_NAME] = @l_ASSET_NAME,
[ASSET_SERIAL_NO] = @l_SERI,
[ASSET_DESC] = @l_ASSET_DESC,
[SUP_ID] = @l_SUP_ID,
[BUY_PRICE] = @l_BUY_PRICE,
[AMORT_AMT] = @l_AMORT_AMT,
[ASS_TYPE] = @l_ASS_TYPE,
-- [BRANCH_ID] = @l_BRANCH_ID,
-- [DEPT_ID] = @l_DEPT_ID,
-- [EMP_ID] = @l_EMP_ID,
-- [DIVISION_ID] = @l_DIVISION_ID,
[BUY_DATE] = CONVERT(DATETIME, @l_BUY_DATE, 103),
[USE_DATE] = CONVERT(DATETIME, @l_USE_DATE, 103),
[SPECIAL_ASS] = '0',
[AMORT_MONTH] = @l_AMORT_MONTH,
[AMORT_RATE] = @l_AMORT_RATE,
[AMORT_START_DATE] = @l_AMORT_START_DATE,
[AMORT_END_DATE] = @l_AMORT_END_DATE,
[FIRST_AMORT_AMT] = @l_FIRST_AMORT_AMT,
[MONTHLY_AMORT_AMT] = @l_MONTHLY_AMT,
[AMORTIZED_MONTH] = 0,
[AMORTIZED_AMT] = 0,
[PO_ID] = @l_PO_ID,
[PD_ID] = @l_PD_ID,
[WAREHOUSE_ID] = NULL,
[LOCATION] = NULL,
[REF_ASSET_ID] = @l_REF_ASSET_ID,
[REF_AMORTIZED_AMT] = @l_REF_AMORTIZED_AMT,
[WARRANTY_MONTHS] = @l_WARRANTY_MONTHS,
[NOTES] = @l_NOTES,
[AMORT_STATUS] = @l_AMORT_STATUS,
[ASS_STATUS] = '1',
[ASS_STATUS_DESC] = N'',
[ENTRY_BOOKED] = @l_ENTRY_BOOKED,
[RECORD_STATUS] = '1',
[AUTH_STATUS] = 'A',
[MAKER_ID] = @l_MAKER_ID,
[CREATE_DT] = CONVERT(DATETIME, @sToday, 103),
[CHECKER_ID] = @p_CHECKER_ID,
[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103),
[CONSTRUCT_ID] = @l_CONSTRUCT_ID,
[USE_STATUS] = 'BT',
[BRANCH_CREATE] = @l_BRANCH_CREATE,
[ACCOUNT_GL] = @ACCOUNT_GL,
VAT = @l_VAT,
PRICE_VAT = @PRICE_VAT,
[BUY_DATE_KT] = CONVERT(DATETIME, @sToday, 103),
[USE_DATE_KT] = @l_USE_DATE_KT,
ASS_CODE_TMP = @l_ASSET_CODE,
ASS_CONTRACT_CODE = @ASS_CONTRACT_CODE,
PL = @PL_CODE
WHERE ASSET_ID = @l_ASSET_ID
SET @l_ASSET_CODE= (SELECT am.ASSET_CODE FROM ASS_MASTER am WHERE am.ASSET_ID=@l_ASSET_ID)
IF @@Error <> 0 GOTO ABORT
DECLARE @l_ETP_ID VARCHAR(20),@l_D_BRANCH_CODE VARCHAR(25) , @l_C_BRANCH_CODE VARCHAR(25),
@l_DEP_CODE VARCHAR(20)
SET @l_C_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_BRANCH_CREATE)
SET @l_D_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_BRANCH_CREATE)
--IF (@l_ENTRY_BOOKED = 'Y') --Neu nhap TS va hach toan tang tai san
IF (@l_ENTRY_BOOKED = 'Y' ) --Neu nhap TS va hach toan tang tai san thieuvq 15/04/2014
BEGIN
--insert dbo.ASS_VALUES
EXEC SYS_CodeMasters_Gen 'ASS_VALUES', @l_VALUE_ID out
IF @l_VALUE_ID='' OR @l_VALUE_ID IS NULL GOTO ABORT
INSERT INTO ASS_VALUES
(
VALUE_ID, ASSET_ID, BRANCH_ID, TRN_DT, CRDR, ASSET_AMT, [DESCRIPTION], TRN_ID, TRN_TYPE,
RECORD_STATUS, AUTH_STATUS, MAKER_ID, CREATE_DT, CHECKER_ID, APPROVE_DT, AMORT_AMT
)
VALUES
(
@l_VALUE_ID, @l_ASSET_ID, @l_BRANCH_CREATE, CONVERT(datetime, @sToday, 103), 'C', @l_BUY_PRICE, N'NHAP MOI TSCD/CCLD', @p_ADDNEW_ID, 'ASS_ADDNEW',
'1','A',@l_MAKER_ID, CONVERT(datetime, @sToday, 103), @p_CHECKER_ID, CONVERT(datetime, @sToday, 103), @l_AMORT_AMT
)
IF @@Error <> 0 GOTO ABORT
IF(@l_TYPE_ID='TSCD')
BEGIN
IF(@l_BRANCH_ID IS NOT NULL OR @l_BRANCH_ID <>'')
BEGIN
SET @l_C_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_BRANCH_ID)
SET @l_D_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_BRANCH_ID)
SET @l_DEP_CODE = ( SELECT cd.DEP_CODE FROM CM_DEPARTMENT cd WHERE cd.DEP_ID=@l_DEPT_ID)
END
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ADD_NEW', @p_ADDNEW_ID, @l_DO_BRANCH_ID, @l_PAY_HS_ACCTNO, @l_BRANCH_CREATE, @l_ASSET_GL, @l_BRANCH_CREATE, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID, @p_ADDNEW_ID, @l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_ADDNEW_ID,@l_D_BRANCH_CODE ,@l_ASSET_GL,'VND', 'D', @l_BUY_PRICE, 1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_ADDNEW_ID ,@l_C_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, '', @l_CORE_NOTE,@l_TRN_NO);
END
ELSE IF (@l_TYPE_ID='CCLD')
BEGIN
IF(@l_BRANCH_ID IS NOT NULL OR @l_BRANCH_ID <>'')
BEGIN
SET @l_C_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_BRANCH_ID)
SET @l_D_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_BRANCH_ID)
SET @l_DEP_CODE = ( SELECT cd.DEP_CODE FROM CM_DEPARTMENT cd WHERE cd.DEP_ID=@l_DEPT_ID)
END
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ADD_NEW', @p_ADDNEW_ID, @l_DO_BRANCH_ID, @l_PAY_HS_ACCTNO, @l_BRANCH_CREATE, @l_ASSET_GL, @l_BRANCH_CREATE, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID, @p_ADDNEW_ID, @l_ET_ID OUT
--- Hạch toán nhập CCLĐ:
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_ADDNEW_ID,@l_D_BRANCH_CODE ,@l_ASSET_GL,'VND', 'D', @l_BUY_PRICE, 1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_ADDNEW_ID ,@l_C_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'C', @l_BUY_PRICE + @PRICE_VAT,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, '', @l_CORE_NOTE,@l_TRN_NO);
IF(@PRICE_VAT >0)
BEGIN
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_ADDNEW_ID,@l_D_BRANCH_CODE ,@ACCOUNT_VAT,'VND', 'D', @PRICE_VAT, 1, @PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, '', @l_CORE_NOTE,@l_TRN_NO);
END
-- EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ADD_NEW', @p_ADDNEW_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_WAIT_AMORT, @l_BRANCH_ID, @l_BUY_PRICE, 'Y',
-- @sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID, @p_ADDNEW_ID,--N'NHAP MOI TSCD/CCLD'
-- @l_ET_ID OUT
-- --Đồng thời kết chuyển tài khoản CCLĐ đang dùng sang tài khoản chờ phân bổ:
-- EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
--
-- INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS)
-- VALUES (@l_ETP_ID, @l_ET_ID,@p_ADDNEW_ID ,@l_D_BRANCH_CODE , @l_ASSET_GL, 'LCY', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, '', @l_CORE_NOTE);
-- EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
--
-- INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS)
-- VALUES (@l_ETP_ID, @l_ET_ID,@p_ADDNEW_ID ,@l_D_BRANCH_CODE , @l_WAIT_AMORT, 'LCY', 'D', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, '', @l_CORE_NOTE);
END
END
ELSE IF @l_TYPE_ID = 'TSCD'
BEGIN
--Insert vao bang dbo.ASS_ENTRIES_POST
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ADD_NEW', @p_ADDNEW_ID, @l_DO_BRANCH_ID, @l_PAY_HS_ACCTNO, @l_BRANCH_CREATE, @_BUY_TS_ACCTNO, @l_BRANCH_CREATE, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID, @p_ADDNEW_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_ADDNEW_ID,@l_D_BRANCH_CODE ,@_BUY_TS_ACCTNO,'VND', 'D', @l_BUY_PRICE, 1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, '', @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_ADDNEW_ID ,@l_C_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, '', @l_CORE_NOTE,@l_TRN_NO);
END
--Insert nhap kho
EXEC SYS_CodeMasters_Gen 'ASS_WAREHOUSE_DT', @l_WAHDT_ID out
IF @l_WAHDT_ID='' OR @l_WAHDT_ID IS NULL GOTO ABORT
INSERT INTO ASS_WAREHOUSE_DT(WAHDT_ID, WAH_ID, ASSET_ID, IN_DATE, OUT_DATE, STATUS)
VALUES(@l_WAHDT_ID, @l_WAH_ID, @l_ASSET_ID, GETDATE(), NULL, 'I')
IF @@Error <> 0 GOTO ABORT
IF @l_BRANCH_ID IS NOT NULL AND @l_BRANCH_ID <> ''
BEGIN
PRINT 'A'
UPDATE ASS_WAREHOUSE_DT
SET OUT_DATE = GETDATE(),
STATUS = 'O'
WHERE WAHDT_ID = @l_WAHDT_ID
IF @@Error <> 0 GOTO ABORT
IF @l_BRANCH_CREATE <> @l_BRANCH_ID
BEGIN
SET @l_C_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_BRANCH_CREATE)
SET @l_D_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_BRANCH_ID)
SET @l_DEP_CODE = ( SELECT cd.DEP_CODE FROM CM_DEPARTMENT cd WHERE cd.DEP_ID=@l_DEPT_ID)
IF @l_TYPE_ID = 'TSCD'
BEGIN
SELECT @BRN_TYPE_TRN = BRANCH_TYPE,@TCCT_TRN_ACCTNO = DAO_CODE FROM CM_BRANCH WHERE BRANCH_ID = @l_BRANCH_CREATE
SELECT @BRN_TYPE_REC = BRANCH_TYPE, @TCCT_REC_ACCTNO = DAO_CODE FROM CM_BRANCH WHERE BRANCH_ID = @l_BRANCH_ID
/*****THIEUVQ 211118 - CHAU XAC NHAN KHONG HACH TOAN QUA TK TRUNG GIAN NUA*******/
----NEU CN XUAT CHO PGD THI KHONG HACH TOAN THONG QUA TK TRUNG GIAN TCCT
--IF @BRN_TYPE_TRN = 'CN' AND @BRN_TYPE_REC = 'PGD'
--BEGIN
-- EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ADD_USE', @p_ADDNEW_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_TRANFER_ACCTNO, @l_BRANCH_CREATE, @l_BUY_PRICE, 'Y',
-- @sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID, @p_ADDNEW_ID,--N'NHAP MOI TSCD/CCLD'
-- @l_ET_ID OUT
--
-- EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
--
-- INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS)
-- VALUES (@l_ETP_ID, @l_ET_ID,@p_ADDNEW_ID ,@l_C_BRANCH_CODE , @l_ASSET_GL, 'LCY', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, '', @l_CORE_NOTE);
--
-- EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
--
-- INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS)
-- VALUES (@l_ETP_ID, @l_ET_ID, @p_ADDNEW_ID,@l_C_BRANCH_CODE ,@l_TRANFER_ACCTNO,'LCY', 'D', @l_BUY_PRICE, 1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, '', @l_CORE_NOTE);
--
-- EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ADD_USE', @p_ADDNEW_ID, @l_DO_BRANCH_ID, @l_TRANFER_ACCTNO, @l_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_ID, @l_BUY_PRICE, 'Y',
-- @sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID, @p_ADDNEW_ID,--N'NHAP MOI TSCD/CCLD'
-- @l_ET_ID OUT
--
-- EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
--
-- INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS)
-- VALUES (@l_ETP_ID, @l_ET_ID,@p_ADDNEW_ID ,@l_D_BRANCH_CODE , @l_TRANFER_ACCTNO, 'LCY', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, '', @l_CORE_NOTE);
--
-- EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
--
-- INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS)
-- VALUES (@l_ETP_ID, @l_ET_ID, @p_ADDNEW_ID,@l_D_BRANCH_CODE ,@l_ASSET_GL,'LCY', 'D', @l_BUY_PRICE, 1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, '', @l_CORE_NOTE);
--
END
ELSE ---CCLD
BEGIN
SELECT @BRN_TYPE_TRN = BRANCH_TYPE,@TCCT_TRN_ACCTNO = DAO_CODE FROM CM_BRANCH WHERE BRANCH_ID = @l_BRANCH_CREATE
SELECT @BRN_TYPE_REC = BRANCH_TYPE, @TCCT_REC_ACCTNO = DAO_CODE FROM CM_BRANCH WHERE BRANCH_ID = @l_BRANCH_ID
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ADD_NEW', @p_ADDNEW_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_WAIT_AMORT, @l_BRANCH_ID, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID, @p_ADDNEW_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
--Đồng thời kết chuyển tài khoản CCLĐ đang dùng sang tài khoản chờ phân bổ:
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO,TRN_IS_SUM)
VALUES (@l_ETP_ID, @l_ET_ID,@p_ADDNEW_ID ,@l_D_BRANCH_CODE , @l_WAIT_AMORT, 'VND', 'D', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO,1);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_IS_SUM,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_ADDNEW_ID ,@l_D_BRANCH_CODE , @l_ASSET_GL, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,1,@l_TRN_NO);
END
END
ELSE IF (@l_TYPE_ID = 'CCLD')
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ADD_NEW', @p_ADDNEW_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_WAIT_AMORT, @l_BRANCH_ID, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID, @p_ADDNEW_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
--Đồng thời kết chuyển tài khoản CCLĐ đang dùng sang tài khoản chờ phân bổ:
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO,TRN_IS_SUM)
VALUES (@l_ETP_ID, @l_ET_ID,@p_ADDNEW_ID ,@l_D_BRANCH_CODE , @l_WAIT_AMORT, 'VND', 'D', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO,1);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_IS_SUM,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_ADDNEW_ID ,@l_D_BRANCH_CODE , @l_ASSET_GL, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,1,@l_TRN_NO);
END
---Phong added 17/6/2018: xu ly khao hao ngay qua khu :: ends
/***********PHAN BO HOI SO CHIU CHI PHI -- BEGIN 201218**************/
-- SET @l_DEP_CODE = (SELECT A.DEP_CODE FROM CM_DEPARTMENT A WHERE A.DEP_ID = @l_DEPT_ID)
-- IF @l_DEP_CODE IS NOT NULL AND @l_DEP_CODE <> ''
-- BEGIN
-- IF @l_BRANCH_ID <> @l_HO_BRN_ID AND LEFT(@l_DEP_CODE,3) = '069' ------CN NHAP NHUNG HOI SO CHIU CHI PHI
-- BEGIN
-- --LAY PHONG BAN CUA HOI SO TUONG UNG MA PHONG BAN CN
-- SET @l_DEPT_ID = (SELECT DEP_ID FROM CM_DEPARTMENT A WHERE A.DEP_CODE = @l_DEP_CODE AND BRANCH_ID = @l_HO_BRN_ID)
-- IF @l_DEPT_ID IS NOT NULL AND @l_DEPT_ID <> ''
-- BEGIN
-- -----THEM VAO BANG ASS_COST_ALLOCATION
--
-- EXEC SYS_CodeMasters_Gen 'ASS_COST_ALLOCATION', @l_COST_MASTER_ID out
-- INSERT INTO ASS_COST_ALLOCATION (COS_ID,ASSET_ID,NOTE,TRN_DATE,[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],EDITOR_ID, EDITOR_DT,[CHECKER_ID],[APPROVE_DT],BRANCH_CREATE,XML_TEMP,SECURE_01,SERCURE_01)
-- VALUES(@l_COST_MASTER_ID,@l_ASSET_ID,'AUTO',@CUR_DATE,'1' ,'A',@l_MAKER_ID ,
-- @CUR_DATE ,NULL, NULL,@p_CHECKER_ID,
-- @CUR_DATE,@l_HO_BRN_ID,NULL,NULL,NULL)
--
-- -----THEM BANG CHI TIET ASS_COST_ALLOC_DT 100% SO TIEN PHAN BO THANG
-- EXEC SYS_CodeMasters_Gen 'ASS_COST_ALLOC_DT', @l_COSTDT_ID out
--
-- INSERT INTO ASS_COST_ALLOC_DT
-- VALUES(@l_COSTDT_ID,@l_COST_MASTER_ID,@l_HO_BRN_ID,@l_DEPT_ID,@l_MONTHLY_AMT,'100',@l_AMORT_MONTH,@CUR_DATE, @l_AMORT_END_DATE,0,0,@l_EXP_ACCTNO,'','1' ,'A' ,@l_MAKER_ID ,
-- @CUR_DATE ,NULL, NULL,@p_CHECKER_ID,@CUR_DATE)
-- END
-- END
-- END
-- /**************************************************** END 201218************/
DECLARE @l_AMORT_RUN_DATE DATETIME = (SELECT TOP 1 TTS.SENT_DATE FROM THREAD_TIME_SEND TTS WHERE TTS.TIME_VALUE = 'KH')
DECLARE @DATE_EXEC DATETIME=CONVERT(DATETIME, @p_APPROVE_DT, 103)
IF( DATEDIFF(MONTH, @l_AMORT_START_DATE, @l_AMORT_RUN_DATE)>0)
BEGIN
EXEC ASS_AMORT_BackDate @p_ASSET_ID = @l_ASSET_ID
,@p_MAKER_ID = @l_MAKER_ID
,@p_CHECKER_ID = @p_CHECKER_ID
,@p_APPROVE_DT = @DATE_EXEC
,@p_TRN_ID = @p_ADDNEW_ID
,@P_TRN_REF_NO = @l_TRN_NO
,@p_TRN_TYPE = 'ADD_NEW'
END
END
--Luctv:End
--CAP NHAT LOCATION_HIST - THIEUVQ 11112015
UPDATE ASS_LOCATION_HIST SET BRANCH_ID = @l_BRANCH_ID, DEPT_ID = @l_DEPT_ID WHERE ASSET_ID = @l_ASSET_ID
IF @@Error <> 0 GOTO ABORT
--END
SET @int = @int + 1
END
-- KHIEMCHG - Update PYC hoàn tất khi đã đủ số lượng PYC
IF(NOT EXISTS(SELECT TOP 1 A.REQDT_ID
FROM TR_REQUEST_SHOP_DOC_DT A
WHERE A.REQ_DOC_ID = @REQ_ID
AND ( A.QTY_ETM <> A.ALLOCATED OR (A.ALLOCATED IS NULL OR A.ALLOCATED = '' OR A.ALLOCATED = 0))
AND ((A.REQ_DT_TYPE = 'XKSD' AND A.TYPE_XL = 'CPDC')
OR (A.REQ_DT_TYPE = 'XKSD' AND A.TYPE_XL = 'CPTK')
OR (A.REQ_DT_TYPE = 'BUYNEW'))
))
BEGIN
UPDATE TR_REQUEST_SHOP_DOC SET IS_DONE = '1', STATUS = 'DONE' WHERE REQ_ID = @REQ_ID
UPDATE PL_REQUEST_PROCESS SET STATUS = 'P' WHERE PROCESS_ID = 'APPROVE' AND REQ_ID = @REQ_ID
UPDATE PL_REQUEST_PROCESS SET STATUS = 'C', RECEPTION_DT = CONVERT(datetime, GETDATE(), 103), APPROVE_DT = CONVERT(datetime, GETDATE(), 103) WHERE PROCESS_ID = 'DONE' AND REQ_ID = @REQ_ID
END
-- HUYHT 06/05/2022 THAY ĐỔI TRẠNG THÁI UPDATE CŨ THÀNH UPDATE_HC
UPDATE dbo.PL_PROCESS SET PROCESS_ID = 'UPDATE_KT' WHERE REQ_ID = @p_ADDNEW_ID AND PROCESS_ID = 'UPDATE'
-- GIANT Insert to table PL_PROCESS
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @p_ADDNEW_ID,
'APPROVE',
@p_CHECKER_ID,
GETDATE(),
N'Kiểm soát viên phê duyệt hoàn tất' ,
N'Kiểm soát viên phê duyệt'
)
COMMIT TRANSACTION
SELECT '0' as Result, @p_ADDNEW_ID ADDNEW_ID, '' ErrorDesc
RETURN '0'
ABORT:
BEGIN
ROLLBACK TRANSACTION
--CLOSE pCur
--DEALLOCATE pCur
SELECT '-1' as Result, '' ADDNEW_ID, @ERROR ErrorDesc
RETURN '-1'
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[TR_REQUEST_REPAIR_ASS_Upd_QLTS]'
GO
ALTER PROCEDURE [dbo].[TR_REQUEST_REPAIR_ASS_Upd_QLTS]
@p_REQ_ID varchar(15) = null ,
@p_REQ_TYPE VARCHAR(10) = NULL,
@p_CHECKER_ID VARCHAR(100) = NULL,
@p_APPROVE_DT VARCHAR(100) = NULL,
@p_HO_NOTES NVARCHAR(1000) = NULL,
@p_NOTES NVARCHAR(MAX) = NULL,
@p_ListCostCenter XML
AS
BEGIN TRANSACTION
DECLARE @TYPE_PYC VARCHAR(10) = (SELECT TOP 1 trsd.REQ_TYPE FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.REQ_ID = @p_REQ_ID)
IF(@TYPE_PYC <> 'SC')
BEGIN --PYC ĐIỀU CHUYỂN && THU HỒI
IF(@p_HO_NOTES IS NULL OR @p_HO_NOTES = '')
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_REQ_ID REQ_ID, N'Vui lòng nhập ý kiến của bộ phận QLTS' ErrorDesc
RETURN '-1'
END
IF(ISNULL(@p_NOTES,'') <> 'SKIP_PL_PROCESS')
BEGIN
INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
VALUES (@p_REQ_ID, 'QLTS_N', @p_CHECKER_ID, CONVERT(DATETIME,@p_APPROVE_DT,103), N'QLTS nhập ý kiến', N'QLTS nhập ý kiến thành công');
END
UPDATE TR_REQUEST_SHOP_DOC SET HO_NOTES = @p_HO_NOTES WHERE REQ_ID = @p_REQ_ID
DELETE TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID = @p_REQ_ID
DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND (PROCESS_ID = 'DVCM' OR PROCESS_ID = 'DVCM_D')
--START THÊM DVCM
DECLARE @hdoc2 INT
Declare
@l_NOTES NVARCHAR(MAX),
@l_AUTH_STATUS VARCHAR(5),
@COST_ID varchar(15),
@REQ_COST_ID varchar(15),
@MAKER_ID VARCHAR(100),
@CREATE_DT VARCHAR(50),
@CHECKER_ID VARCHAR(100),
@APPROVE_DT VARCHAR(50),
@l_ASS_STATUS NVARCHAR(MAX),
@l_RE_CONTENT NVARCHAR(MAX),
@l_QUANTITY INT
Exec sp_xml_preparedocument @hdoc2 Output,@p_ListCostCenter
DECLARE ListCostCenters CURSOR FOR
SELECT *
FROM OPENXML(@hdoc2,'/Root/ListCostCenter',2)
WITH
(
REQ_COST_ID VARCHAR(15),
COST_ID varchar(15),
AUTH_STATUS VARCHAR(5),
NOTES nvarchar(MAX),
MAKER_ID VARCHAR(100),
CREATE_DT VARCHAR(50),
CHECKER_ID VARCHAR(100),
APPROVE_DT VARCHAR(50),
ASS_STATUS NVARCHAR(MAX),
RE_CONTENT NVARCHAR(MAX),
QUANTITY INT
)
OPEN ListCostCenters
FETCH NEXT FROM ListCostCenters INTO @REQ_COST_ID,@COST_ID,@l_AUTH_STATUS, @l_NOTES, @MAKER_ID, @CREATE_DT, @CHECKER_ID, @APPROVE_DT, @l_ASS_STATUS, @l_RE_CONTENT, @l_QUANTITY
WHILE @@FETCH_STATUS = 0
BEGIN
IF( NOT EXISTS(SELECT 1 FROM dbo.TR_REQUEST_SHOP_COSTCENTER WHERE COST_ID=@COST_ID AND REQ_ID=@p_REQ_ID))
BEGIN
EXEC SYS_CodeMasters_Gen 'TR_REQUEST_SHOP_COSTCENTER', @REQ_COST_ID out
IF @REQ_COST_ID='' OR @REQ_COST_ID IS NULL GOTO ABORT
INSERT INTO dbo.TR_REQUEST_SHOP_COSTCENTER
(
REQ_COST_ID,
COST_ID,
REQ_ID,
NOTES,
AUTH_STATUS,
MAKER_ID,
CREATE_DT,
CHECKER_ID,
APPROVE_DT,
ASS_STATUS,
RE_CONTENT,
QUANTITY
)
VALUES
( @REQ_COST_ID, -- REQ_COST_ID - varchar(15)
@COST_ID, -- COST_ID - varchar(15)
@p_REQ_ID, -- REQ_ID - varchar(15)
@l_NOTES, -- NOTES - nvarchar(500)
@l_AUTH_STATUS, -- AUTH_STATUS - varchar(1)
@MAKER_ID, -- MAKER_ID - varchar(15)
CONVERT(DATETIME,@CREATE_DT,103), -- CREATE_DT - datetime
@CHECKER_ID, -- CHECKER_ID - varchar(15)
CONVERT(DATETIME,@APPROVE_DT,103) -- APPROVE_DT - datetime
, @l_ASS_STATUS
, @l_RE_CONTENT
, @l_QUANTITY
)
END
IF @@ERROR <> 0 GOTO ABORT2
FETCH NEXT FROM ListCostCenters INTO @REQ_COST_ID,@COST_ID,@l_AUTH_STATUS, @l_NOTES, @MAKER_ID, @CREATE_DT, @CHECKER_ID, @APPROVE_DT, @l_ASS_STATUS, @l_RE_CONTENT, @l_QUANTITY
END
CLOSE ListCostCenters
DEALLOCATE ListCostCenters
--END DVCM
INSERT INTO PL_REQUEST_PROCESS (REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID,DEP_ID, PARENT_PROCESS_ID, IS_LEAF, NOTES, PROCESS_TYPE)
SELECT
@p_REQ_ID,
'DVCM',
'U',
'DVCM',
(CASE WHEN 1=1 THEN (SELECT B.BRANCH_ID FROM CM_DEPARTMENT B WHERE B.DEP_ID = A.COST_ID)END) AS BRANCH_ID,
A.COST_ID, --DEP_ID
'QLTS_N',
'N',
NULL,
'Update'
FROM TR_REQUEST_SHOP_COSTCENTER A WHERE REQ_ID = @p_REQ_ID
--TRƯỞNG DVCM CẬP DUYỆT
INSERT INTO PL_REQUEST_PROCESS (REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID,DEP_ID, PARENT_PROCESS_ID, IS_LEAF, NOTES, PROCESS_TYPE)
SELECT
@p_REQ_ID,
'DVCM_D',
'U',
'GDDV',
(CASE WHEN 1=1 THEN (SELECT B.BRANCH_ID FROM CM_DEPARTMENT B WHERE B.DEP_ID = A.COST_ID)END) AS BRANCH_ID,
A.COST_ID, --DEP_ID
'DVCM',
'N',
NULL,
'Approve'
FROM TR_REQUEST_SHOP_COSTCENTER A WHERE REQ_ID = @p_REQ_ID
END
ELSE
BEGIN --PYC SỬA CHỮA
IF(ISNULL(@p_NOTES,'') <> 'SKIP_PL_PROCESS')
BEGIN
INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
VALUES (@p_REQ_ID, 'QLTS_N', @p_CHECKER_ID, CONVERT(DATETIME,@p_APPROVE_DT,103), N'QLTS xử lý', N'QLTS xử lý thành công');
END
IF(EXISTS(SELECT 1 FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID AND STATUS = 'QLTS_N'))
BEGIN --ĐANG Ở BƯỚC QLTS CHỌN DVCM
DELETE TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID = @p_REQ_ID
DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @p_REQ_ID AND (PROCESS_ID = 'DVCM' OR PROCESS_ID = 'DVCM_D')
--START THÊM DVCM
DECLARE @hdoc3 INT
Declare
@l_NOTES_1 NVARCHAR(MAX),
@l_AUTH_STATUS_1 VARCHAR(5),
@COST_ID_1 varchar(15),
@REQ_COST_ID_1 varchar(15),
@MAKER_ID_1 VARCHAR(100),
@CREATE_DT_1 VARCHAR(50),
@CHECKER_ID_1 VARCHAR(100),
@APPROVE_DT_1 VARCHAR(50),
@l_ASS_STATUS_1 NVARCHAR(MAX),
@l_RE_CONTENT_1 NVARCHAR(MAX),
@l_QUANTITY_1 INT
Exec sp_xml_preparedocument @hdoc3 Output,@p_ListCostCenter
DECLARE ListCostCenters CURSOR FOR
SELECT *
FROM OPENXML(@hdoc3,'/Root/ListCostCenter',2)
WITH
(
REQ_COST_ID VARCHAR(15),
COST_ID varchar(15),
AUTH_STATUS VARCHAR(5),
NOTES nvarchar(MAX),
MAKER_ID VARCHAR(100),
CREATE_DT VARCHAR(50),
CHECKER_ID VARCHAR(100),
APPROVE_DT VARCHAR(50),
ASS_STATUS NVARCHAR(MAX),
RE_CONTENT NVARCHAR(MAX),
QUANTITY INT
)
OPEN ListCostCenters
FETCH NEXT FROM ListCostCenters INTO @REQ_COST_ID_1,@COST_ID_1,@l_AUTH_STATUS_1, @l_NOTES_1, @MAKER_ID_1, @CREATE_DT_1, @CHECKER_ID_1, @APPROVE_DT_1, @l_ASS_STATUS_1, @l_RE_CONTENT_1, @l_QUANTITY_1
WHILE @@FETCH_STATUS = 0
BEGIN
IF( NOT EXISTS(SELECT 1 FROM dbo.TR_REQUEST_SHOP_COSTCENTER WHERE COST_ID=@COST_ID_1 AND REQ_ID=@p_REQ_ID))
BEGIN
EXEC SYS_CodeMasters_Gen 'TR_REQUEST_SHOP_COSTCENTER', @REQ_COST_ID_1 out
IF @REQ_COST_ID_1='' OR @REQ_COST_ID_1 IS NULL GOTO ABORT
INSERT INTO dbo.TR_REQUEST_SHOP_COSTCENTER
(
REQ_COST_ID,
COST_ID,
REQ_ID,
NOTES,
AUTH_STATUS,
MAKER_ID,
CREATE_DT,
CHECKER_ID,
APPROVE_DT,
ASS_STATUS,
RE_CONTENT,
QUANTITY
)
VALUES
( @REQ_COST_ID_1, -- REQ_COST_ID - varchar(15)
@COST_ID_1, -- COST_ID - varchar(15)
@p_REQ_ID, -- REQ_ID - varchar(15)
@l_NOTES_1, -- NOTES - nvarchar(500)
@l_AUTH_STATUS_1, -- AUTH_STATUS - varchar(1)
@MAKER_ID_1, -- MAKER_ID - varchar(15)
CONVERT(DATETIME,@CREATE_DT_1,103), -- CREATE_DT - datetime
@CHECKER_ID_1, -- CHECKER_ID - varchar(15)
CONVERT(DATETIME,@APPROVE_DT_1,103) -- APPROVE_DT - datetime
, @l_ASS_STATUS_1
, @l_RE_CONTENT_1
, @l_QUANTITY_1
)
END
IF @@ERROR <> 0 GOTO ABORT2
FETCH NEXT FROM ListCostCenters INTO @REQ_COST_ID_1,@COST_ID_1,@l_AUTH_STATUS_1, @l_NOTES_1, @MAKER_ID_1, @CREATE_DT_1, @CHECKER_ID_1, @APPROVE_DT_1, @l_ASS_STATUS_1, @l_RE_CONTENT_1, @l_QUANTITY_1
END
CLOSE ListCostCenters
DEALLOCATE ListCostCenters
--END DVCM
INSERT INTO PL_REQUEST_PROCESS (REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID,DEP_ID, PARENT_PROCESS_ID, IS_LEAF, NOTES, PROCESS_TYPE)
SELECT
@p_REQ_ID,
'DVCM',
'U',
'DVCM',
(CASE WHEN 1=1 THEN (SELECT B.BRANCH_ID FROM CM_DEPARTMENT B WHERE B.DEP_ID = A.COST_ID)END) AS BRANCH_ID,
A.COST_ID, --DEP_ID
'QLTS_N',
'N',
NULL,
'Update'
FROM TR_REQUEST_SHOP_COSTCENTER A WHERE REQ_ID = @p_REQ_ID
--TRƯỞNG DVCM CẬP DUYỆT
INSERT INTO PL_REQUEST_PROCESS (REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID,DEP_ID, PARENT_PROCESS_ID, IS_LEAF, NOTES, PROCESS_TYPE)
SELECT
@p_REQ_ID,
'DVCM_D',
'U',
'GDDV',
(CASE WHEN 1=1 THEN (SELECT B.BRANCH_ID FROM CM_DEPARTMENT B WHERE B.DEP_ID = A.COST_ID)END) AS BRANCH_ID,
A.COST_ID, --DEP_ID
'DVCM',
'N',
NULL,
'Approve'
FROM TR_REQUEST_SHOP_COSTCENTER A WHERE REQ_ID = @p_REQ_ID
END
ELSE
BEGIN
IF(@p_HO_NOTES IS NULL OR @p_HO_NOTES = '')
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_REQ_ID REQ_ID, N'Vui lòng nhập ý kiến của bộ phận QLTS' ErrorDesc
RETURN '-1'
END
UPDATE TR_REQUEST_SHOP_DOC SET HO_NOTES = @p_HO_NOTES WHERE REQ_ID = @p_REQ_ID
END
END
COMMIT TRANSACTION
SELECT '0' as Result, @p_REQ_ID REQ_ID, '' ErrorDesc, N'QLTS xử lý thành công' Message
RETURN '0'
ABORT:
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' AS RESULT
RETURN '-1'
END
ABORT2:
BEGIN
ROLLBACK TRANSACTION
CLOSE ListCostCenters
DEALLOCATE ListCostCenters
SELECT '-1' AS RESULT
RETURN '-1'
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[rpt_ASS_PRINT_TEMP_Excel]'
GO
ALTER PROCEDURE [dbo].[rpt_ASS_PRINT_TEMP_Excel]
@p_ASSET_ID varchar(MAX) = NULL,
@p_ASSET_CODE nvarchar(MAX) = NULL,
@p_ASSET_NAME nvarchar(MAX) = NULL,
@p_BRANCH_ID varchar(15) = NULL,
@p_BRANCH_LOGIN varchar(15) = NULL,
@p_ASSET_TYPE VARCHAR(15) = NULL,--Them truong hop khong chon nhom tai san
@p_ASSET_GROUP VARCHAR(15) = NULL,
@p_FROM_NUM VARCHAR(10) = NULL,
@p_TO_NUM VARCHAR(10) = NULL,
@p_Fromdate varchar(20) = null,
@p_Todate VARCHAR(20) = NULL,
@p_DEPT_ID varchar(15) = NULL,--thieuvq Search theo phong ban
@p_SerialNo VARCHAR(MAX) = NULL,--- luctv search theo ngay nhap
@p_AddNewID VARCHAR(20) = NULL,--- luctv search ma phieu nhap 16092019
@p_Use_MasterID VARCHAR(20) = NULL,--- luctv search theo ma phieu xuat 16092019
@p_LEVEL VARCHAR(5) = 'UNIT',
@p_NUMQR INT = 1
AS
BEGIN
SET @p_ASSET_CODE = REPLACE(REPLACE(@p_ASSET_CODE,CHAR(10),''),CHAR(13),'')
DECLARE @TBL_NUMQR TABLE(ASSET_CODE VARCHAR(MAX))
IF(@p_ASSET_CODE LIKE '%,%' AND LEFT(@p_ASSET_CODE,1) = ',')
BEGIN
SET @p_ASSET_CODE = RIGHT(@p_ASSET_CODE,LEN(@p_ASSET_CODE)-1)
END
WHILE (@p_NUMQR >= 1) BEGIN
INSERT INTO @TBL_NUMQR
SELECT VALUE FROM dbo.wsiSplit(@p_ASSET_CODE,',')
SET @p_NUMQR = @p_NUMQR - 1
END
--IF @p_TOP = '' SET @p_TOP = 1000000
declare @tmp table(BRANCH_ID varchar(15))
insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)
--- khai bao table chua ds ma tai san
DECLARE @l_LSTASSETCODE TABLE (
[ID] [int] IDENTITY(1,1) NOT NULL,
[VALUE] [NVARCHAR](MAX) NULL)
INSERT INTO @l_LSTASSETCODE SELECT VALUE FROM WSISPLIT(@p_ASSET_ID,',')
-- khai bao table chua ds seria
DECLARE @l_LSTSERI TABLE (
[ID] [int] IDENTITY(1,1) NOT NULL,
[VALUE] [NVARCHAR](MAX) NULL)
INSERT INTO @l_LSTSERI SELECT VALUE FROM WSISPLIT(@p_SerialNo,',')
-- MA CODE TAI SAN
--- khai bao table chua ds ma code tai san
DECLARE @l_LSTASSETCODE_V1 TABLE (
[ID] [int] IDENTITY(1,1) NOT NULL,
[VALUE] [VARCHAR](MAX) NULL)
INSERT INTO @l_LSTASSETCODE_V1 SELECT VALUE FROM WSISPLIT(@p_ASSET_CODE,',')
SELECT
ROW_NUMBER() OVER(ORDER BY A.ASSET_ID) AS STT,
C.[TYPE_NAME] LOAI_TS,
B.GROUP_NAME NHOM_TS,
A.ASSET_CODE MA_TS,
A.ASSET_NAME,
A.ASSET_SERIAL_NO,
A.NOTES,
BR.BRANCH_NAME,
DP.DEP_NAME,
ISNULL(DP.DEP_NAME,BR.BRANCH_NAME) DVSD,
A.CREATE_DT NGAYNHAP_TS,
A.USE_DATE NGAY_SD
FROM ASS_MASTER A
LEFT JOIN ASS_GROUP B ON A.GROUP_ID = B.GROUP_ID
LEFT JOIN ASS_TYPE C ON A.[TYPE_ID] = C.[TYPE_ID]
LEFT JOIN ASS_AMORT_STATUS D ON A.AMORT_STATUS = D.STATUS_CODE
LEFT JOIN ASS_STATUS E ON A.ASS_STATUS = E.STATUS_ID
LEFT JOIN CM_AUTH_STATUS ZZ ON ZZ.AUTH_STATUS = A.AUTH_STATUS
LEFT JOIN CM_BRANCH BR ON BR.BRANCH_ID=A.BRANCH_ID
LEFT JOIN TL_USER EM ON EM.TLNANME=A.EMP_ID
LEFT JOIN CM_DEPARTMENT DP ON DP.DEP_ID = A.DEPT_ID
LEFT JOIN ASS_TRANSACTIONS AT ON AT.ASSET_ID = A.ASSET_ID AND AT.TRN_TYPE ='ADD_NEW'
LEFT JOIN ASS_TRANSACTIONS AT2 ON AT2.ASSET_ID = A.ASSET_ID AND AT2.TRN_TYPE ='ADD_USE' AND @p_Use_MasterID <>'' AND @p_Use_MasterID IS NOT NULL
WHERE 1 = 1
--AND (A.ASSET_ID = @p_ASSET_ID OR @p_ASSET_ID IS NULL OR @p_ASSET_ID = '')
AND (A.ASSET_ID IN (SELECT VALUE FROM @l_LSTASSETCODE) OR @p_ASSET_ID IS NULL OR @p_ASSET_ID ='')
AND (A.ASSET_CODE IN (SELECT VALUE FROM @l_LSTASSETCODE_V1) OR @p_ASSET_CODE IS NULL OR @p_ASSET_CODE ='')
AND (A.ASSET_NAME like N'%' + @p_ASSET_NAME + '' OR @p_ASSET_NAME IS NULL OR @p_ASSET_NAME = '')
--AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@P_BRANCH_ID)) OR @P_BRANCH_ID IS NULL OR @P_BRANCH_ID = '')
--AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM @tmp) OR @p_BRANCH_LOGIN IS NULL OR @p_BRANCH_LOGIN = '')
AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
AND (B.GROUP_ID = @p_ASSET_GROUP OR @p_ASSET_GROUP IS NULL OR @p_ASSET_GROUP = '')
AND (A.TYPE_ID = @p_ASSET_TYPE OR @p_ASSET_TYPE IS NULL OR @p_ASSET_TYPE = '')
--AND ((CONVERT(INT,SUBSTRING(A.ASSET_CODE,2 + LEN(B.GROUP_CODE),LEN(A.ASSET_CODE) - 1 -
--LEN(B.GROUP_CODE))) >= CONVERT(INT,@p_FROM_NUM)) OR @p_FROM_NUM = '' OR @p_FROM_NUM IS NULL)
--AND ((CONVERT(INT,SUBSTRING(A.ASSET_CODE,2 + LEN(B.GROUP_CODE),LEN(A.ASSET_CODE) - 1 -
--LEN(B.GROUP_CODE))) <= CONVERT(INT,@p_TO_NUM)) OR @p_TO_NUM = '' OR @p_TO_NUM IS NULL)
-- AND ((CONVERT(DECIMAL,RIGHT(A.ASSET_CODE,4))>= CONVERT(INT,@p_FROM_NUM)) OR @p_FROM_NUM = '' OR @p_FROM_NUM IS NULL)
-- AND ((CONVERT(DECIMAL,RIGHT(A.ASSET_CODE,4)) <= CONVERT(INT,@p_TO_NUM)) OR @p_TO_NUM = '' OR @p_TO_NUM IS NULL)
AND(A.BUY_DATE_KT <= CONVERT(DATETIME,@p_Todate,103) OR @p_Todate= '' OR @p_Todate IS NULL)
AND (A.BUY_DATE_KT >= CONVERT(datetime, @p_Fromdate, 103) OR @p_Fromdate IS NULL OR @p_Fromdate = '')
AND A.RECORD_STATUS = '1'
AND (A.DEPT_ID = @p_DEPT_ID OR @p_DEPT_ID IS NULL OR @p_DEPT_ID = '')-- THIEUVQ THEM 19_03_2014
--AND (A.ASSET_SERIAL_NO = @p_SerialNo OR @p_SerialNo IS NULL OR @p_SerialNo = '')
AND (A.ASSET_SERIAL_NO IN (SELECT VALUE FROM @l_LSTSERI) OR @p_SerialNo IS NULL OR @p_SerialNo ='')
AND (AT.TRN_ID = @p_AddNewID OR @p_AddNewID ='' OR @p_AddNewID IS NULL)
AND (AT2.TRN_ID = @p_Use_MasterID OR @p_Use_MasterID ='' OR @p_Use_MasterID IS NULL)
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_ADDNEW_KT_BVB_Upd]'
GO
ALTER PROCEDURE [dbo].[ASS_ADDNEW_KT_BVB_Upd]
@p_ADDNEW_ID varchar(15) = NULL,
@p_AMORT_START_DATE varchar(30) = NULL,------------THEM NGAY BD KHAU HAO
@p_AMORT_END_DATE varchar(30) = NULL,------------THEM NGAY BD KHAU HAO
@p_AMORT_MONTH DECIMAL(18,2) = NULL,
@p_AMORT_RATE decimal(18,2) = NULL,
@p_CORE_NOTE nvarchar(500) = NULL,
@p_ENTRY_BOOKED varchar(1) = NULL, --Them de kiem tra co hach toan tai san khi nhap ts khong (Y/N)?
@p_MAKER_ID varchar(15) = NULL,
@p_MAKER_ID_KT varchar(15) = NULL,
@p_CREATE_DT VARCHAR(30) = NULL,
@p_CHECKER_ID varchar(15) = NULL,
@p_APPROVE_DT VARCHAR(30) = NULL,
@p_POSTED_STATUS VARCHAR(1) = NULL,
@p_BRANCH_CREATE VARCHAR(15) = NULL,
--
@p_BUY_DATE VARCHAR(30) = NULL,
@p_TYPE_ID varchar(15) = NULL,
@p_GROUP_ID varchar(15) = NULL,
@p_ASSET_NAME nvarchar(1000) = NULL,
@p_ASSET_SERIAL_NO nvarchar(MAX) = NULL,
@p_ASSET_DESC nvarchar(max) = NULL,
@p_BRANCH_ID varchar(15) = NULL,
@p_DEPT_ID varchar(15) = NULL,---------Them ma phong ban
@p_EMP_ID varchar(15) = NULL,-----------Them Nguoi su dung
@p_DIVISION_ID varchar(15) = NULL,----------Them co so
@p_BUY_PRICE decimal(18) = NULL,
@p_IS_MULTIPLE varchar(1) = NULL,
@p_QTY int = NULL,
@p_PO_ID varchar(15) = NULL,
@p_PD_ID varchar(15) = NULL, --Them de luu chi tiet PO
@p_REF_ASSET_ID varchar(15) = NULL,
@p_REF_AMORTIZED_AMT decimal(18) = NULL,
@p_WARRANTY_MONTHS int = NULL,
@p_NOTES nvarchar(1000) = NULL,
@p_ADDNEW_DT XML = NULL,
@p_RECORD_STATUS varchar(1) = NULL,
@p_AUTH_STATUS varchar(1) = NULL,
@p_CONSTRUCT_ID VARCHAR(15) = NULL,
@p_ACCOUNT_GL VARCHAR(50),
@VAT DECIMAL(18,2),
@PRICE_VAT DECIMAL(18,2),
--/************ LUCTV ***************/
@p_ASS_PO_ID VARCHAR(15)= NULL,
--@l_ADDNEW_ID VARCHAR(15) = NULL,
@p_PO_CODE VARCHAR(500) = NULL,
@p_PR_CODE VARCHAR(500) = NULL,
@p_INVOICE_NO VARCHAR(500) = NULL,
@p_INVOICE_SYMPOL VARCHAR(500) = NULL,
@p_INVOICE_DT VARCHAR(20) = NULL
,@p_WIN VARCHAR(1) NULL
,@p_OFFICE VARCHAR(1) NULL
,@p_PL_CODE VARCHAR(50) NULL
,@p_UNIT VARCHAR(50) NULL
AS
--IF(@p_PR_CODE IS NULL OR @p_PR_CODE ='')
--BEGIN
-- SELECT '-1' Result, '' ADDNEW_ID, N'Số PR không được để trống' ErrorDesc
-- RETURN '-1'
--END
IF(@p_INVOICE_NO IS NULL OR @p_INVOICE_NO ='')
BEGIN
SELECT '-1' Result, @p_ADDNEW_ID ADDNEW_ID, N'Số hóa đơn không được để trống' ErrorDesc
RETURN '-1'
END
IF(@p_INVOICE_DT IS NULL OR @p_INVOICE_DT ='')
BEGIN
SELECT '-1' Result, @p_ADDNEW_ID ADDNEW_ID, N'Ngày hóa đơn không được để trống' ErrorDesc
RETURN '-1'
END
-- GIANT 04/11/2021 @p_TYPE_ID
--IF((@p_BUY_PRICE IS NULL OR @p_BUY_PRICE ='') AND @p_BUY_PRICE >= 30000000 AND @p_TYPE_ID = 'TSCD')
--BEGIN
-- SELECT '-1' Result, '' ADDNEW_ID, N'Giá trị tài sản phải lớn hơn hoặc bằng 30,000,000 khi thuộc nhóm Tài sản cố định' ErrorDesc
-- RETURN '-1'
--END
--IF((@p_BUY_PRICE IS NULL OR @p_BUY_PRICE ='') AND @p_BUY_PRICE < 30000000 AND @p_TYPE_ID = 'CCLD')
--BEGIN
-- SELECT '-1' Result, '' ADDNEW_ID, N'Giá trị tài sản phải bé hơn 30,000,000 khi thuộc nhóm Công cụ lao động' ErrorDesc
-- RETURN '-1'
--END
--IF((@p_AMORT_MONTH IS NULL OR @p_AMORT_MONTH ='') AND EXISTS(SELECT * FROM ASS_GROUP WHERE GROUP_ID = @p_GROUP_ID AND @p_AMORT_MONTH >= AMORT_MONTH_MIN AND @p_AMORT_MONTH <= AMORT_MONTH_MAX))
--BEGIN
-- SELECT '-1' Result, '' ADDNEW_ID, N'Số tháng khấu hao phải nằm trong (' + (SELECT AMORT_MONTH_MIN FROM ASS_GROUP WHERE GROUP_ID = @p_GROUP_ID) + ' - ' + (SELECT AMORT_MONTH_MAX FROM ASS_GROUP WHERE GROUP_ID = @p_GROUP_ID) + ')' ErrorDesc
-- RETURN '-1'
--END
--IF CONVERT(DATE, @p_AMORT_START_DATE, 103) < CONVERT(DATE,@p_CREATE_DT, 103)
--BEGIN
-- SELECT '-1' as Result, '' ADDNEW_ID, N'Ngày bắt đầu phân bổ không được nhỏ hơn ngày hiện tại' ErrorDesc
-- RETURN '-1'
--END
--HCQT KHONG XUAT THI KT KHONG DUOC XUAT - thieuvq bo dieu kien nay 051719 - KT duoc phep khi hc khong xuat
--DECLARE @_PRE_BRANCH_ID VARCHAR(15) = (SELECT BRANCH_ID FROM ASS_ADDNEW WHERE ADDNEW_ID = @p_ADDNEW_ID)
--IF ((@_PRE_BRANCH_ID IS NULL OR @_PRE_BRANCH_ID = '') AND (@p_BRANCH_ID <> ''))
--BEGIN
-- SELECT '-1' as Result, '' ADDNEW_ID, N'Bạn không được xuất sử dụng khi HCQT chưa xuất' ErrorDesc
-- RETURN '-1'
--END
DECLARE @l_C_TYPE_ID VARCHAR(50) = (SELECT AA.TYPE_ID FROM ASS_ADDNEW AA WHERE AA.ADDNEW_ID = @p_ADDNEW_ID)
DECLARE @l_C_GR_ID VARCHAR(50) = (SELECT AA.GROUP_ID FROM ASS_ADDNEW AA WHERE AA.ADDNEW_ID = @p_ADDNEW_ID)
DECLARE @l_C_GROUP_CODE VARCHAR(50) = (SELECT AG.GROUP_CODE FROM ASS_GROUP AG WHERE AG.GROUP_ID = @l_C_GR_ID)
DECLARE @l_NEW_GROUP_ID VARCHAR(50) = (SELECT AG.GROUP_ID FROM ASS_GROUP AG WHERE AG.GROUP_CODE = @l_C_GROUP_CODE AND AG.TYPE_ID = @p_TYPE_ID)
IF(@l_C_TYPE_ID <> @p_TYPE_ID)
BEGIN
IF(NOT EXISTS(SELECT AG.GROUP_ID FROM ASS_GROUP AG WHERE AG.GROUP_CODE = @l_C_GROUP_CODE AND AG.TYPE_ID = @p_TYPE_ID))
BEGIN
SELECT '-1' as Result, @p_ADDNEW_ID ADDNEW_ID, N'Loại tài sản hiện tại không có trong Nhóm tài sản' + @p_TYPE_ID ErrorDesc
RETURN '-1'
END
ELSE UPDATE ASS_ADDNEW SET GROUP_ID = @l_NEW_GROUP_ID WHERE ADDNEW_ID = @p_ADDNEW_ID
END
BEGIN TRANSACTION
----BO 2 KY TU DAC BIET & VA < TRONG DIEN GIAI HACH TOAN - THIEUVQ 020719 - BEGIN
SET @p_CORE_NOTE = REPLACE(@p_CORE_NOTE,'&', 'VA')
SET @p_CORE_NOTE = REPLACE(@p_CORE_NOTE,'<', ' ')
--------------END---------------
------nhap moi la luon ghi tang tai san Chaunth 031218 - BEGIN -----
IF @p_BRANCH_ID <>'' OR @p_BRANCH_ID IS NOT NULL SET @p_ENTRY_BOOKED = 'Y'
--END----------
UPDATE ASS_ADDNEW
SET
[AMORT_START_DATE] = (CASE WHEN @p_AMORT_START_DATE IS NULL OR @p_AMORT_START_DATE = '' THEN NULL ELSE CONVERT(DATETIME, @p_AMORT_START_DATE, 103) END),-----------Them
[AMORT_END_DATE] = (CASE WHEN @p_AMORT_END_DATE IS NULL OR @p_AMORT_END_DATE = '' THEN NULL ELSE CONVERT(DATETIME, @p_AMORT_END_DATE, 103) END),-----------Them
[AMORT_MONTH] = @p_AMORT_MONTH,
[AMORT_RATE] = @p_AMORT_RATE,
[CORE_NOTE] = @p_CORE_NOTE,
[ENTRY_BOOKED] = @p_ENTRY_BOOKED, -- THEM KHI NHAP MOI CO TANG TAI SAN KHONG
[MAKER_ID_KT] = @p_MAKER_ID_KT,
[CREATE_DT_KT] = GETDATE(),
--[CHECKER_ID_KT] = @p_CHECKER_ID,
--[APPROVE_DT_KT] =CASE WHEN @p_APPROVE_DT = '' OR @p_APPROVE_DT IS NULL THEN NULL ELSE CONVERT(DATETIME, @p_APPROVE_DT, 103) END,
[POSTED_STATUS] = @p_POSTED_STATUS,-- THEM 14/04/2014
[BRANCH_CREATE] = @p_BRANCH_CREATE,-- THEM 14/04/2014
--
BUY_DATE = CONVERT(DATETIME,@p_BUY_DATE, 103),
[TYPE_ID] = @p_TYPE_ID,
GROUP_ID = @l_NEW_GROUP_ID,
ASSET_NAME = @p_ASSET_NAME,
ASSET_SERIAL_NO = @p_ASSET_SERIAL_NO,
ASSET_DESC = @p_ASSET_DESC,
BRANCH_ID = @p_BRANCH_ID,
DEPT_ID = @p_DEPT_ID,
EMP_ID = @p_EMP_ID,
DIVISION_ID = @p_DIVISION_ID,
BUY_PRICE = @p_BUY_PRICE,
AMORT_AMT = @p_BUY_PRICE,
IS_MULTIPLE = @p_IS_MULTIPLE,
QTY = @p_QTY,
PO_ID = @p_PO_ID,
PD_ID = @p_PD_ID,
REF_ASSET_ID = @p_REF_ASSET_ID,
REF_AMORTIZED_AMT = @p_REF_AMORTIZED_AMT,
WARRANTY_MONTHS = @p_WARRANTY_MONTHS,
NOTES = @p_NOTES,
RECORD_STATUS = @p_RECORD_STATUS,
--AUTH_STATUS = @p_AUTH_STATUS,
CONSTRUCT_ID = @p_CONSTRUCT_ID,
--
[ACCOUNT_GL] = @p_ACCOUNT_GL,
[VAT] = @VAT,
[PRICE_VAT] = @PRICE_VAT,
---khiemchg BO SUNG CAP NHAT AUTH_STATUS =E cho gửi phê duyệt
AUTH_STATUS_KT='E',
PR_CODE = @p_PR_CODE
,WIN_CRACK = @p_WIN
,OFFICE_CRACK = @p_OFFICE, PL_CODE = @p_PL_CODE
, UNIT = @p_UNIT
WHERE ADDNEW_ID = @p_ADDNEW_ID
IF @@Error <> 0 GOTO ABORT
SET @p_ASS_PO_ID = (SELECT AA.PO_ID FROM ASS_ADDNEW AA WHERE AA.ADDNEW_ID = @p_ADDNEW_ID)
UPDATE ASS_PO
SET PO_CODE=@p_PO_CODE,
INVOICE_DATE = CONVERT(DATETIME,@p_INVOICE_DT,103),
INVOICE_NO =@p_INVOICE_NO, INVOICE_SYMPOL = @p_INVOICE_SYMPOL,
ADDNEW_ID =@p_ADDNEW_ID
WHERE ASSPO_ID = @p_ASS_PO_ID
IF @@Error <> 0 GOTO ABORT
-- HUYHT 06/05/2022: XÓA CÁC PROCESS UPDATE CŨ
DELETE dbo.PL_PROCESS WHERE REQ_ID = @p_ADDNEW_ID AND PROCESS_ID = 'UPDATE'
-- GIANT Insert to table PL_PROCESS
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @p_ADDNEW_ID,
'UPDATE',
@p_MAKER_ID_KT,
GETDATE(),
N'Giao dịch viên cập nhật hạch toán thành công' ,
N'Giao dịch viên cập nhật hạch toán'
)
COMMIT TRANSACTION
SELECT '0' as Result, @p_ADDNEW_ID ADDNEW_ID, '' ErrorDesc
RETURN '0'
ABORT:
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_ADDNEW_ID ADDNEW_ID, '' ErrorDesc
RETURN '-1'
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[CM_SUPPLIER_Ins]'
GO
ALTER PROCEDURE [dbo].[CM_SUPPLIER_Ins]
@p_SUP_CODE varchar(15) = NULL,
@p_SUP_NAME NVARCHAR(300) = NULL,
@p_SUP_TYPE_ID varchar(15) = NULL,
@p_REGION_ID varchar(15) = NULL,
@p_ADDR nvarchar(200) = NULL,
@p_EMAIL varchar(50) = NULL,
@p_TAX_NO varchar(20) = NULL,
@p_TEL varchar(20) = NULL,
@p_CONTACT_PERSON nvarchar(200) = NULL,
@p_DISCIPLINES VARCHAR(15) = NULL,
@p_NOTES nvarchar(1000) = NULL,
@p_RECORD_STATUS varchar(1) = NULL,
@p_MAKER_ID varchar(100) = NULL,
@p_CREATE_DT VARCHAR(20) = NULL,
@p_AUTH_STATUS varchar(50) = NULL,
@p_CHECKER_ID varchar(100) = NULL,
@p_APPROVE_DT VARCHAR(20) = NULL,
@p_ACC_NUM VARCHAR(100) = NULL,
@p_ACC_NAME VARCHAR(100) = NULL,
@p_BANK_NAME NVARCHAR(200) = NULL,
@p_ACC_NUM_OUT VARCHAR(100) = NULL,
@p_ACC_NAME_OUT VARCHAR(100) = NULL,
@p_BANK_NAME_OUT NVARCHAR(200) = NULL
AS
BEGIN TRANSACTION
--Validation is here
IF EXISTS(SELECT * FROM CM_SUPPLIER WHERE SUP_NAME = @p_SUP_NAME)
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' SUP_ID, N'Thêm mới nhà cung cấp thất bại, tên nhà cung cấp đã tồn tại trong hệ thống' ErrorDesc
RETURN '-1'
END
DECLARE @ERRORSYS NVARCHAR(15) = ''
IF ( EXISTS ( SELECT * FROM CM_SUPPLIER WHERE TAX_NO=@p_TAX_NO))
SET @ERRORSYS = 'SUP-0001'
IF @ERRORSYS <> ''
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, N'Mã số thuế của nhà cung cấp đã tồn tại.' ErrorDesc
RETURN '-1'
RETURN '0'
END
IF (select case when @p_TAX_NO not like '%[^0-9]%' then 0 else 1 end) <> 0
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, N' Mã số thuế chỉ được phép nhập số' ErrorDesc
RETURN '-1'
END
DECLARE @l_SUP_ID VARCHAR(15)
EXEC SYS_CodeMasters_Gen 'CM_SUPPLIER', @l_SUP_ID out
IF @l_SUP_ID='' OR @l_SUP_ID IS NULL GOTO ABORT
INSERT INTO CM_SUPPLIER([DISCIPLINES],[SUP_ID],[SUP_CODE],[SUP_NAME],[SUP_TYPE_ID],[REGION_ID],[ADDR],[EMAIL],[TAX_NO],[TEL],[CONTACT_PERSON],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],[ACC_NUM],[ACC_NAME],[BANK_NAME],[ACC_NUM_OUT],[ACC_NAME_OUT],[BANK_NAME_OUT])
VALUES(@p_DISCIPLINES, @l_SUP_ID ,@l_SUP_ID ,@p_SUP_NAME ,@p_SUP_TYPE_ID ,@p_REGION_ID ,@p_ADDR ,@p_EMAIL ,@p_TAX_NO ,@p_TEL ,@p_CONTACT_PERSON ,@p_NOTES ,@p_RECORD_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_AUTH_STATUS ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103),@p_ACC_NUM,@p_ACC_NAME,@p_BANK_NAME,@p_ACC_NUM_OUT,@p_ACC_NAME_OUT,@p_BANK_NAME_OUT)
IF @@Error <> 0 GOTO ABORT
COMMIT TRANSACTION
SELECT 0 as Result, @l_SUP_ID SUP_ID, '' ErrorDesc, @l_SUP_ID id
RETURN 0
ABORT:
BEGIN
ROLLBACK TRANSACTION
SELECT -1 as Result, '' SUP_ID, '' ErrorDesc
RETURN -1
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_ADDNEW_QLTS_Appr]'
GO
ALTER PROCEDURE [dbo].[ASS_ADDNEW_QLTS_Appr]
@p_ADDNEW_ID VARCHAR(15) = NULL,
@p_CHECKER_ID varchar(100) = NULL,
@p_APPROVE_DT VARCHAR(20) = NULL
AS
IF((SELECT AUTH_STATUS FROM ASS_ADDNEW WHERE ADDNEW_ID = @p_ADDNEW_ID) = 'A')
BEGIN
SELECT '-1' as Result, '' ADDNEW_ID, N'Dữ liệu đã được duyệt' ErrorDesc
RETURN '-1'
END
DECLARE @l_SUP_ID varchar(15)
DECLARE @l_BUY_DATE datetime = NULL
DECLARE @l_TYPE_ID varchar(15) = NULL
DECLARE @l_GROUP_ID varchar(15) = NULL
DECLARE @l_ASSET_NAME nvarchar(1000) = NULL
DECLARE @l_ASSET_SERIAL_NO nvarchar(max) = NULL
DECLARE @l_ASSET_DESC nvarchar(max) = NULL
DECLARE @l_BRANCH_ID varchar(15) = NULL
DECLARE @l_DEPT_ID varchar(15) = NULL
DECLARE @l_EMP_ID varchar(15) = NULL
DECLARE @l_DIVISION_ID varchar(15) = NULL
DECLARE @l_BUY_PRICE decimal(18) = NULL
DECLARE @l_AMORT_AMT decimal(18) = NULL
DECLARE @l_AMORT_MONTH decimal(18,2) = NULL
DECLARE @l_AMORT_RATE decimal(18,2) = NULL
DECLARE @l_IS_MULTIPLE varchar(1) = NULL
DECLARE @l_QTY int = NULL
DECLARE @l_PO_ID varchar(15) = NULL
DECLARE @l_PD_ID varchar(15) = NULL
DECLARE @l_REF_ASSET_ID varchar(15) = NULL
DECLARE @l_REF_AMORTIZED_AMT decimal(18) = NULL
DECLARE @l_WARRANTY_MONTHS int = NULL
DECLARE @l_NOTES nvarchar(1000) = NULL
DECLARE @l_CORE_NOTE nvarchar(200) = NULL
declare @l_ENTRY_BOOKED varchar(1) = null
DECLARE @l_MAKER_ID varchar(15)
DECLARE @l_AUTH_STATUS varchar(1)
declare @l_DO_BRANCH_ID varchar(15)
DECLARE @l_CONSTRUCT_ID varchar(15) = NULL
DECLARE @l_AMORT_STATUS nvarchar(20)
DECLARE @l_AMORT_START_DATE datetime, @l_AMORT_END_DATE datetime
DECLARE @l_FIRST_AMORT_AMT numeric(18,0)
DECLARE @l_MONTHLY_AMT numeric(18,0)
DECLARE @l_HO_BRN_ID varchar(15)
DECLARE @l_WAH_ID varchar(15)
DECLARE @sToday varchar(10) = convert(varchar(10), getdate(), 103)
DECLARE @l_USE_DATE varchar(15)
DECLARE @l_ASS_TYPE varchar(1) = '1'
declare @l_TRN_REF_NO varchar(20)
DECLARE @l_ET_ID varchar(15)
DECLARE @l_VALUE_ID varchar(15)
DECLARE @l_ASSET_ID varchar(15)
DECLARE @l_ASSET_CODE nvarchar(100)
DECLARE @l_WAHDT_ID varchar(15)
DECLARE @l_LOCHIST_ID varchar(15)
DECLARE @l_SUPPEND_GL varchar(50)
DECLARE @l_ASSET_GL varchar(50)
declare @l_ASSET_VALUE decimal(18,0)
DECLARE @ERRORSYS NVARCHAR(15) = ''
DECLARE @BRANCH_CREATE VARCHAR(15) = NULL
DECLARE @ACCOUNT_GL VARCHAR(50)
DECLARE @VAT DECIMAL(18,2)
DECLARE @PRICE_VAT DECIMAL(18,0)
DECLARE @REQ_ID VARCHAR(15)
DECLARE @REQ_CODE VARCHAR(50)
DECLARE @WIN VARCHAR(1)
DECLARE @OFFICE VARCHAR(1)
DECLARE @ASS_CONTRACT_CODE VARCHAR(50)
DECLARE @PL_CODE VARCHAR(50)
DECLARE @i INT
PRINT 'OK1'
--DECLARE @PD_ID VARCHAR(15)
--SELECT @PD_ID = PD_ID FROM ASS_ADDNEW WHERE ADDNEW_ID = @p_ADDNEW_ID
--DECLARE @TOTAL_TT INT, @TOTAL_PO INT
--SET @TOTAL_TT = (SELECT SUM(QTY) FROM ASS_ADDNEW WHERE PD_ID = @PD_ID AND AUTH_STATUS = 'A') + (SELECT QTY FROM ASS_ADDNEW WHERE ADDNEW_ID = @p_ADDNEW_ID)
--SET @TOTAL_PO = (SELECT SUM(QUANTITY) FROM TR_PO_DETAIL WHERE PD_ID = @PD_ID)
--IF(@TOTAL_TT > @TOTAL_PO)
--BEGIN
-- SELECT '-1' as Result, '' ADDNEW_ID, N'Số lượng hàng hóa đã nhập vượt quá số lượng PO' ErrorDesc
-- RETURN '-1'
--END
--lay thong tin giao dich
SELECT @l_BUY_DATE = BUY_DATE, @l_TYPE_ID = A.[TYPE_ID], @l_GROUP_ID = A.GROUP_ID, @l_ASSET_NAME = ASSET_NAME,
@l_ASSET_SERIAL_NO = ASSET_SERIAL_NO, @l_ASSET_DESC = ASSET_DESC, @l_CONSTRUCT_ID = CONSTRUCT_ID,
@l_BRANCH_ID = BRANCH_ID, @l_DEPT_ID = DEPT_ID, @l_EMP_ID = EMP_ID, @l_DIVISION_ID = DIVISION_ID,
@l_BUY_PRICE = BUY_PRICE, @l_AMORT_AMT = AMORT_AMT, @l_AMORT_START_DATE = AMORT_START_DATE,
--@l_AMORT_MONTH = AMORT_MONTH,
@l_AMORT_MONTH = CASE WHEN G.AMORT_MONTH<>0 THEN G.AMORT_MONTH ELSE A.AMORT_MONTH END,
@l_AMORT_RATE = A.AMORT_RATE, @l_CORE_NOTE = A.CORE_NOTE,
@l_IS_MULTIPLE = IS_MULTIPLE, @l_QTY = QTY, @l_PO_ID = PO_ID,@l_PD_ID=PD_ID, @l_REF_ASSET_ID = REF_ASSET_ID,
@l_REF_AMORTIZED_AMT = REF_AMORTIZED_AMT, @l_WARRANTY_MONTHS = WARRANTY_MONTHS, @l_NOTES = A.NOTES, @l_ENTRY_BOOKED = ENTRY_BOOKED,
@l_MAKER_ID = A.MAKER_ID, @l_AUTH_STATUS = A.AUTH_STATUS,
@l_AMORT_END_DATE = AMORT_END_DATE, @BRANCH_CREATE = BRANCH_CREATE,
@ACCOUNT_GL = A.ACCOUNT_GL, @VAT = A.VAT, @PRICE_VAT = A.PRICE_VAT, @REQ_CODE = A.REQ_CODE, @REQ_ID = A.REQ_ID, @WIN = A.WIN_CRACK, @OFFICE = A.OFFICE_CRACK
, @l_SUP_ID = A.SUP_ID, @ASS_CONTRACT_CODE = A.CONTRACT_ID, @PL_CODE = A.PL_CODE
FROM ASS_ADDNEW A
INNER JOIN ASS_GROUP G on G.GROUP_ID = A.GROUP_ID
WHERE ADDNEW_ID = @p_ADDNEW_ID
IF @@Error <> 0 GOTO ABORT
/********** chekc vadilation ************/
IF (@l_AUTH_STATUS = 'A')
SET @ERRORSYS = 'ASS-99998'
IF @ERRORSYS <> ''
BEGIN
SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
RETURN '0'
END
BEGIN TRANSACTION
IF @l_BRANCH_ID <>'' OR @l_BRANCH_ID IS NOT NULL SET @l_ENTRY_BOOKED = 'Y'
IF @l_BRANCH_ID ='' OR @l_BRANCH_ID IS NULL SET @l_AMORT_STATUS = 'VNM'
DECLARE @l_SL_IN_PYC INT =(SELECT ISNULL(SUM(TRSDD.QTY_ETM),0) FROM TR_REQUEST_SHOP_DOC_DT TRSDD
LEFT JOIN TR_REQUEST_SHOP_DOC TRSD ON TRSD.REQ_ID = TRSDD.REQ_DOC_ID
WHERE TRSD.REQ_CODE = @REQ_CODE AND TRSDD.ASS_GROUP_ID = @l_GROUP_ID AND TRSDD.REQ_DT_TYPE = 'BUYNEW')
DECLARE @l_SL_ASS_MASTER INT =(SELECT ISNULL(COUNT(*),0) FROM ASS_MASTER AM WHERE AM.GROUP_ID = @l_GROUP_ID AND AM.REQ_CODE = @REQ_CODE)
IF (@REQ_CODE IS NOT NULL OR @REQ_CODE <> '')
BEGIN
--kiem tra so luong so voi PYC
IF((SELECT ISNULL(QTY,0) FROM ASS_ADDNEW WHERE ADDNEW_ID = @p_ADDNEW_ID) > (@l_SL_IN_PYC - @l_SL_ASS_MASTER))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' ADDNEW_ID, N'Số lượng tài sản không được lớn hơn số lượng tài sản có cùng loại được thêm mới theo Phiếu yêu cầu.' ErrorDesc
RETURN '-1'
END
END
--INSERT TYPE_XL PYC
IF(@REQ_CODE IS NOT NULL OR @REQ_CODE <> '')
BEGIN
--TĂNG LOCATED NẾU XSD
IF(@l_BRANCH_ID IS NOT NULL OR @l_BRANCH_ID <> '')
BEGIN
SET @l_USE_DATE = convert(varchar(10), getdate(), 103)
UPDATE TR_REQUEST_SHOP_DOC_DT
SET ALLOCATED = ALLOCATED + @l_QTY
WHERE REQDT_ID IN (SELECT TRSDD.REQDT_ID FROM TR_REQUEST_SHOP_DOC_DT TRSDD
WHERE TRSDD.REQ_DOC_ID = @REQ_ID AND TRSDD.ASS_GROUP_ID = @l_GROUP_ID AND TRSDD.REQ_DT_TYPE = 'BUYNEW')
END
END
--INSERT TYPE_XL PYC END
--UPDATE GIAO DICH ADDNEW
UPDATE ASS_ADDNEW
SET AUTH_STATUS = 'A',
CHECKER_ID = @p_CHECKER_ID,
APPROVE_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103),
AUTH_STATUS_KT = 'E'
WHERE ADDNEW_ID = @p_ADDNEW_ID
IF @@Error <> 0 GOTO ABORT
IF (@l_IS_MULTIPLE = '0') --nhap tai san don le
BEGIN
--Phat sinh Asset_ID
EXEC SYS_CodeMasters_Gen 'ASS_MASTER', @l_ASSET_ID out
IF @l_ASSET_ID='' OR @l_ASSET_ID IS NULL GOTO ABORT
DECLARE @ASSET_CODE_TMP VARCHAR(50)
--Phat sinh ma tai san
-- EXEC ASS_CODE_Gen @l_TYPE_ID, @l_GROUP_ID, @ASSET_CODE_TMP OUT
-- IF @l_ASSET_CODE='' OR @l_ASSET_CODE IS NULL GOTO ABORT
--Insert bang ASS_MASTER
INSERT INTO ASS_MASTER
(
[ASSET_ID],
[TYPE_ID],
[GROUP_ID],
[ASSET_CODE],
[ASSET_NAME],
[ASSET_SERIAL_NO],
[ASSET_DESC],
[SUP_ID],
[BUY_PRICE],
[AMORT_AMT],
[ASS_TYPE],
[BRANCH_ID],
[DEPT_ID],
[EMP_ID],
[DIVISION_ID],
[BUY_DATE],
[USE_DATE],
[SPECIAL_ASS],
[AMORT_MONTH],
[AMORT_RATE],
[AMORT_START_DATE],
[AMORT_END_DATE],
[FIRST_AMORT_AMT],
[MONTHLY_AMORT_AMT],
[AMORTIZED_MONTH],
[AMORTIZED_AMT],
[PO_ID],
[PD_ID],
[WAREHOUSE_ID],
[LOCATION],
[REF_ASSET_ID],
[REF_AMORTIZED_AMT],
[WARRANTY_MONTHS],
[NOTES],
[AMORT_STATUS],
[ASS_STATUS],
[ASS_STATUS_DESC],
[ENTRY_BOOKED],
[RECORD_STATUS],
[AUTH_STATUS],
[MAKER_ID],
[CREATE_DT],
[CHECKER_ID],
[APPROVE_DT],
[CONSTRUCT_ID],
[USE_STATUS],
[BRANCH_CREATE],
[ACCOUNT_GL], VAT,PRICE_VAT,
LIQ_W_STATUS, -- HUNGDV MAC DINH = '0',
REQ_ID,
REQ_CODE, -- KHIEMCHG thêm số phiếu yêu cầu để biết tài sản sinh ra từ pyc nào,
ASS_CODE_TMP --khiemchg lưu asset code được gen ra lưu tạm
,OS, MO_LICENSE, ASS_CONTRACT_CODE, PL
)
VALUES
(
@l_ASSET_ID,
@l_TYPE_ID ,
@l_GROUP_ID,
@l_ASSET_ID,
@l_ASSET_NAME,
@l_ASSET_SERIAL_NO,
@l_ASSET_DESC,
@l_SUP_ID,
@l_BUY_PRICE,
@l_AMORT_AMT,
@l_ASS_TYPE,
@l_BRANCH_ID,
@l_DEPT_ID,
@l_EMP_ID,
@l_DIVISION_ID,
CONVERT(DATETIME, @l_BUY_DATE, 103),
CONVERT(DATETIME, @l_USE_DATE, 103),
'0',
@l_AMORT_MONTH,
@l_AMORT_RATE,
@l_AMORT_START_DATE,
@l_AMORT_END_DATE,
@l_FIRST_AMORT_AMT,
@l_MONTHLY_AMT,
0,
0,
@l_PO_ID,
@l_PD_ID,
NULL,
NULL,
@l_REF_ASSET_ID,
@l_REF_AMORTIZED_AMT,
@l_WARRANTY_MONTHS,
@l_NOTES,
@l_AMORT_STATUS,
'1', --Mac dinh moi insert vao tinh trang tai san la binh thuong
N'',
@l_ENTRY_BOOKED,
'1',
'U',
@l_MAKER_ID,
CONVERT(DATETIME, @sToday, 103),
@p_CHECKER_ID,
CONVERT(DATETIME, @p_APPROVE_DT, 103) ,
@l_CONSTRUCT_ID,
'BT',
@BRANCH_CREATE,
@ACCOUNT_GL, @VAT,@PRICE_VAT,
'0' -- LIQ_W_STATUS HUNGDV MAC DINH = '0'
,@REQ_ID
,@REQ_CODE,
@l_ASSET_ID, @WIN, @OFFICE, @ASS_CONTRACT_CODE, @PL_CODE
)
IF @@Error <> 0 GOTO ABORT
--INSERT CHI TIET TAI SAN
INSERT INTO ASS_MASTER_PO SELECT @l_ASSET_ID, POAD.PO_ID, GDDT.TRPO_ID,CONVERT(DATETIME, @sToday, 103)
FROM ASS_ADDNEW_PO POAD
LEFT JOIN ASS_ADDNEW_GD GDDT ON GDDT.PO_ID = POAD.PO_ID AND GDDT.ADDNEW_ID = @p_ADDNEW_ID
WHERE POAD.ADDNEW_ID = @p_ADDNEW_ID
--Insert bang ASS_WARRANTY_DET tu bang ASS_ADDNEW_DT
insert into ASS_WARRANTY_DT(ASSET_ID, WAR_DT, WAR_CONTENT, WAR_END_DT)
select @l_ASSET_ID, A.WAR_DT, A.WAR_CONTENT, WAR_EXPIRED
from ASS_ADDNEW_DT A
WHERE A.ADDNEW_ID= @p_ADDNEW_ID
IF @@Error <> 0 GOTO ABORT
--INSERT VAO BANG ASS_TRANSACTIONS
INSERT INTO ASS_TRANSACTIONS(ASSET_ID, TRN_ID, TRN_TYPE, TRN_DATE, RECORD_STATUS, AUTH_STATUS,
[MAKER_ID], [CREATE_DT], [CHECKER_ID], [APPROVE_DT]
)VALUES
(
@l_ASSET_ID, @p_ADDNEW_ID, 'ADD_NEW', CONVERT(DATETIME, @sToday, 103), '1', 'A',
@l_MAKER_ID, CONVERT(DATETIME, @sToday, 103), @p_CHECKER_ID, CONVERT(DATETIME, @p_APPROVE_DT, 103)
)
IF @@Error <> 0 GOTO ABORT
--Insert bang ASS_LOCATION_HIST
EXEC SYS_CodeMasters_Gen 'ASS_LOCATION_HIST', @l_LOCHIST_ID out
IF @l_LOCHIST_ID='' OR @l_LOCHIST_ID IS NULL GOTO ABORT
INSERT INTO ASS_LOCATION_HIST
(
LOCHIST_ID, ASSET_ID, USE_START_DT, USE_END_DT, BRANCH_ID, DEPT_ID,
EMP_ID, LOCATION, ISLEAF, PARENT_ID
)
VALUES
(
@l_LOCHIST_ID, @l_ASSET_ID, GETDATE(), NULL, @l_BRANCH_ID, @l_DEPT_ID,
@l_EMP_ID, '', 'Y', NULL
)
IF @@Error <> 0 GOTO ABORT
END
ELSE --- NHẬP LÔ
BEGIN
IF(EXISTS(SELECT * FROM ASS_TRANSACTIONS AT WHERE AT.TRN_ID = @p_ADDNEW_ID))
BEGIN
DELETE ASS_MASTER_PO WHERE ASSET_ID IN (SELECT AT.ASSET_ID FROM ASS_TRANSACTIONS AT WHERE AT.TRN_ID = @p_ADDNEW_ID)
DELETE ASS_MASTER WHERE ASSET_ID IN (SELECT AT.ASSET_ID FROM ASS_TRANSACTIONS AT WHERE AT.TRN_ID = @p_ADDNEW_ID)
DELETE ASS_LOCATION_HIST WHERE ASSET_ID IN (SELECT AT.ASSET_ID FROM ASS_TRANSACTIONS AT WHERE AT.TRN_ID = @p_ADDNEW_ID)
DELETE ASS_WARRANTY_DT WHERE ASSET_ID IN (SELECT AT.ASSET_ID FROM ASS_TRANSACTIONS AT WHERE AT.TRN_ID = @p_ADDNEW_ID)
DELETE ASS_TRANSACTIONS WHERE TRN_ID = @p_ADDNEW_ID
END
----thieuvq 14/10/2014 nhap seri theo lo
--DECLARE @l_LSTSERI TABLE (
-- [ID] [int] NULL,
-- [VALUE] [NVARCHAR](MAX) NULL)
--DECLARE @l_SERI VARCHAR(MAX)
----LAY THONG TIN SO SERI
--INSERT INTO @l_LSTSERI SELECT ROW_NUMBER() OVER (ORDER BY VALUE), VALUE FROM WSISPLIT(@l_ASSET_SERIAL_NO,',')
--thieuvq 14/10/2014 nhap seri theo lo
DECLARE @l_LSTSERI TABLE (
[ID] [int] IDENTITY(1,1) NOT NULL,
[VALUE] [NVARCHAR](MAX) NULL)
DECLARE @l_SERI VARCHAR(MAX)
--LAY THONG TIN SO SERI
--INSERT INTO @l_LSTSERI SELECT ROW_NUMBER() OVER (ORDER BY VALUE), VALUE FROM WSISPLIT(@l_ASSET_SERIAL_NO,',')
INSERT INTO @l_LSTSERI SELECT VALUE FROM WSISPLIT(@l_ASSET_SERIAL_NO,',')
DECLARE @TBTEMP TABLE(PO_ID VARCHAR(15),PD_ID VARCHAR(15),CREATE_DATE DATETIME)
--INSERT CHI TIET TAI SAN
INSERT INTO @TBTEMP SELECT POAD.PO_ID, GDDT.TRPO_ID,CONVERT(DATETIME, @sToday, 103)
FROM ASS_ADDNEW_PO POAD
LEFT JOIN ASS_ADDNEW_GD GDDT ON GDDT.PO_ID = POAD.PO_ID AND GDDT.ADDNEW_ID = @p_ADDNEW_ID
WHERE POAD.ADDNEW_ID = @p_ADDNEW_ID
--
SET @i = 1
WHILE (@i <= @l_QTY)
BEGIN
--Phat sinh Asset_ID
EXEC SYS_CodeMasters_Gen 'ASS_MASTER', @l_ASSET_ID out
IF @l_ASSET_ID='' OR @l_ASSET_ID IS NULL GOTO ABORT
--Phat sinh ma tai san
-- EXEC ASS_CODE_Gen @l_TYPE_ID, @l_GROUP_ID, @l_ASSET_CODE OUT
-- IF @l_ASSET_CODE='' OR @l_ASSET_CODE IS NULL GOTO ABORT
--THIEUVQ 14/10/2014 LAY SO SERI
SET @l_SERI = (SELECT VALUE FROM @l_LSTSERI WHERE ID = @i)
--Insert bang ASS_MASTER
INSERT INTO ASS_MASTER
(
[ASSET_ID],
[TYPE_ID],
[GROUP_ID],
[ASSET_CODE],
[ASSET_NAME],
[ASSET_SERIAL_NO],
[ASSET_DESC],
[SUP_ID],
[BUY_PRICE],
[AMORT_AMT],
[ASS_TYPE],
[BRANCH_ID],
[DEPT_ID],
[EMP_ID],
[DIVISION_ID],
[BUY_DATE],
[USE_DATE],
[SPECIAL_ASS],
[AMORT_MONTH],
[AMORT_RATE],
[AMORT_START_DATE],
[AMORT_END_DATE],
[FIRST_AMORT_AMT],
[MONTHLY_AMORT_AMT],
[AMORTIZED_MONTH],
[AMORTIZED_AMT],
[PO_ID],
[PD_ID],
[WAREHOUSE_ID],
[LOCATION],
[REF_ASSET_ID],
[REF_AMORTIZED_AMT],
[WARRANTY_MONTHS],
[NOTES],
[AMORT_STATUS],
[ASS_STATUS],
[ASS_STATUS_DESC],
[ENTRY_BOOKED],
[RECORD_STATUS],
[AUTH_STATUS],
[MAKER_ID],
[CREATE_DT],
[CHECKER_ID],
[APPROVE_DT],
[CONSTRUCT_ID],
[USE_STATUS],
[BRANCH_CREATE],[ACCOUNT_GL], VAT,PRICE_VAT, LIQ_W_STATUS -- HUNGDV MAC DINH = '0'
,REQ_ID
,REQ_CODE, -- KHIEMCHG thêm số phiếu yêu cầu để biết tài sản sinh ra từ pyc nào
ASS_CODE_TMP,OS, MO_LICENSE
)
VALUES
(
@l_ASSET_ID,
@l_TYPE_ID ,
@l_GROUP_ID,
@l_ASSET_ID,
@l_ASSET_NAME,
@l_SERI, --@l_ASSET_SERIAL_NO,
@l_ASSET_DESC,
@l_SUP_ID,
@l_BUY_PRICE,
@l_AMORT_AMT,
@l_ASS_TYPE,
@l_BRANCH_ID,
@l_DEPT_ID,
@l_EMP_ID,
@l_DIVISION_ID,
CONVERT(DATETIME, @l_BUY_DATE, 103),
CONVERT(DATETIME, @l_USE_DATE, 103),
'0',
NULL, --@l_AMORT_MONTH,
@l_AMORT_RATE,
@l_AMORT_START_DATE,
@l_AMORT_END_DATE,
@l_FIRST_AMORT_AMT,
@l_MONTHLY_AMT,
0,
0,
@l_PO_ID,
@l_PD_ID,
NULL,
NULL,
@l_REF_ASSET_ID,
@l_REF_AMORTIZED_AMT,
@l_WARRANTY_MONTHS,
@l_NOTES,
@l_AMORT_STATUS,
'1', --Mac dinh moi insert vao tinh trang tai san la binh thuong
N'',
@l_ENTRY_BOOKED,
'1',
'U',
@l_MAKER_ID,
CONVERT(DATETIME, @sToday, 103),
@p_CHECKER_ID,
CONVERT(DATETIME, @p_APPROVE_DT, 103),
@l_CONSTRUCT_ID ,
'BT',
@BRANCH_CREATE,@ACCOUNT_GL, @VAT,@PRICE_VAT,
'0' -- HUNGDV LIQ_W_STATUS MAC DINH = '0'
,@REQ_ID
,@REQ_CODE,@l_ASSET_ID, @WIN, @OFFICE
)
IF @@Error <> 0 GOTO ABORT
--INSERT CHI TIET TAI SAN
INSERT INTO ASS_MASTER_PO SELECT @l_ASSET_ID, * FROM @TBTEMP
--Insert bang ASS_WARRANTY_DET tu bang ASS_ADDNEW_DT
insert into ASS_WARRANTY_DT(ASSET_ID, WAR_DT, WAR_CONTENT) select @l_ASSET_ID, A.WAR_DT, A.WAR_CONTENT
from ASS_ADDNEW_DT A
WHERE A.ADDNEW_ID= @p_ADDNEW_ID
IF @@Error <> 0 GOTO ABORT
--INSERT VAO BANG ASS_TRANSACTIONS
INSERT INTO ASS_TRANSACTIONS(ASSET_ID, TRN_ID, TRN_TYPE, TRN_DATE, RECORD_STATUS, AUTH_STATUS,
[MAKER_ID], [CREATE_DT], [CHECKER_ID], [APPROVE_DT]
)VALUES
(
@l_ASSET_ID, @p_ADDNEW_ID, 'ADD_NEW', CONVERT(DATETIME, @sToday, 103), '1', 'A',
@l_MAKER_ID, CONVERT(DATETIME, @sToday, 103), @p_CHECKER_ID, CONVERT(DATETIME, @p_APPROVE_DT, 103)
)
IF @@Error <> 0 GOTO ABORT
--Insert bang ASS_LOCATION_HIST
EXEC SYS_CodeMasters_Gen 'ASS_LOCATION_HIST', @l_LOCHIST_ID out
IF @l_LOCHIST_ID='' OR @l_LOCHIST_ID IS NULL GOTO ABORT
INSERT INTO ASS_LOCATION_HIST
(
LOCHIST_ID, ASSET_ID, USE_START_DT, USE_END_DT, BRANCH_ID, DEPT_ID,
EMP_ID, LOCATION, ISLEAF, PARENT_ID
)
VALUES
(
@l_LOCHIST_ID, @l_ASSET_ID, GETDATE(), NULL, @l_BRANCH_ID, @l_DEPT_ID,
@l_EMP_ID, '', 'Y', NULL
)
IF @@Error <> 0 GOTO ABORT
SET @i = @i + 1
END
END
---- SET VE NULL ĐỂ KT LƯU HIỆN RÀNG BUỘC
UPDATE ASS_ADDNEW SET AMORT_MONTH = NULL WHERE ADDNEW_ID = @p_ADDNEW_ID
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @p_ADDNEW_ID,
'APPROVE',
@p_CHECKER_ID,
GETDATE(),
N'Trưởng đơn vị phê duyệt' ,
N'Trưởng đơn vị phê duyệt thành công'
)
-- ---UPDATE NGAY HOA DON VA SO HOA DON LEN PO
-- UPDATE TR_PO_DETAIL SET INVOICENO = A.INVOICE_NO, INVOICE_DT = A.INVOICE_DT
-- FROM ASS_ADDNEW_GD A
-- WHERE A.TRPO_ID = PD_ID AND A.ADDNEW_ID = @p_ADDNEW_ID
-- UPDATE SỐ TỜ TRÌNH VÀO PYC
--IF(@REQ_CODE IS NOT NULL AND @REQ_CODE <> '') UPDATE TR_REQUEST_SHOP_DOC SET PL_CODE = @PL_CODE WHERE REQ_CODE = @REQ_CODE
COMMIT TRANSACTION
SELECT '0' as Result, @p_ADDNEW_ID ADDNEW_ID, @l_TYPE_ID ErrorDesc--LUU TRU TAM DE GUI MAIL THONG BAO
-- HUNGDV Them Code de gui notification
, (SELECT STUFF((SELECT '; ' + DTA.PO_CODE
FROM ASS_ADDNEW_PO DTA
WHERE DTA.ADDNEW_ID = @p_ADDNEW_ID
FOR XML PATH('')
),1,1,'')
) as CODE
RETURN '0'
ABORT:
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' ADDNEW_ID, '' ErrorDesc
RETURN '-1'
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_COLLECT_MULTI_MASTER_App]'
GO
ALTER PROCEDURE [dbo].[ASS_COLLECT_MULTI_MASTER_App]
@p_COL_MULTI_MASTER_ID varchar(15),
@p_AUTH_STATUS varchar(1) = NULL,
@p_CHECKER_ID varchar(100) = NULL,
@p_APPROVE_DT VARCHAR(20) = NULL
AS
BEGIN TRANSACTION
--LUCTV: 26/12/2018 BO SUNG KIEM TRA NEU DANG TRA VE THI KHONG CHO HANH CHINH DUYET NUA.
IF(EXISTS(SELECT 1 FROM ASS_COLLECT_MULTI_MASTER WHERE AUTH_STATUS ='R' AND COL_MULTI_MASTER_ID =@p_COL_MULTI_MASTER_ID))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' COL_MULTI_MASTER_ID, N'Thông tin thu hồi tài sản đang bị trả về. Vui lòng cập nhật lại thông tin trước khi duyệt' ErrorDesc
RETURN '-1'
END
IF(EXISTS(SELECT 1 FROM ASS_COLLECT_MULTI_MASTER WHERE AUTH_STATUS ='E' AND COL_MULTI_MASTER_ID =@p_COL_MULTI_MASTER_ID))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' COL_MULTI_MASTER_ID, N'Thông tin thu hồi tài sản chưa được gửi phê duyệt' ErrorDesc
RETURN '-1'
END
UPDATE ASS_COLLECT_MULTI_MASTER SET AUTH_STATUS = 'A', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103),AUTH_STATUS_KT='E',MAKER_ID_KT =NULL,APPROVE_DT_KT=NULL, CHECKER_ID_KT = NULL
WHERE COL_MULTI_MASTER_ID = @p_COL_MULTI_MASTER_ID
--DECLARE @COLLECT_MULTI_ID varchar(15)
-- DECLARE @ASSET_ID varchar(15)
-- DECLARE DataCusor SCROLL CURSOR
-- FOR
-- SELECT A.COLLECT_MULTI_ID,A.ASSET_ID
-- FROM [dbo].[ASS_COLLECT_MULTI_DT] A
-- WHERE [COL_MULTI_MASTER_ID] = @p_COL_MULTI_MASTER_ID
-- OPEN DataCusor
-- UPDATE ASS_COLLECT_MULTI_MASTER SET AUTH_STATUS = 'A', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103)
-- WHERE COL_MULTI_MASTER_ID = @p_COL_MULTI_MASTER_ID
--FETCH NEXT FROM DataCusor INTO @COLLECT_MULTI_ID,@ASSET_ID
--WHILE @@FETCH_STATUS = 0
--BEGIN
-- --THIEUVQ 15062015
-- DECLARE @p_BRANCH_ID_RECEIVE VARCHAR(15) = NULL, @p_DEPT_ID_RECEIVE VARCHAR(15) = NULL, @l_ASSET_ID VARCHAR(15)
-- DECLARE @l_LOCHIST_ID VARCHAR(15), @l_OLD_LOCHIST_ID VARCHAR(15), @l_ASSHIST_ID varchar(15)
-- SELECT @p_BRANCH_ID_RECEIVE = BRANCH_ID_RECEIVE , @p_DEPT_ID_RECEIVE = DEPT_ID_RECEIVE , @l_ASSET_ID = ASSET_ID
-- FROM ASS_COLLECT_MULTI_DT
-- WHERE COLLECT_MULTI_ID = @COLLECT_MULTI_ID
-- UPDATE ASS_COLLECT_MULTI_DT SET AUTH_STATUS = 'A', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103)
-- WHERE COLLECT_MULTI_ID = @COLLECT_MULTI_ID
-- IF @@Error <> 0
-- BEGIN
-- GOTO ABORT
-- SELECT '0' as Result, '' ErrorDesc
-- END
-- --Move to history
-- --Phat sinh Asset_ID
-- EXEC SYS_CodeMasters_Gen 'ASS_MASTER_HIST', @l_ASSHIST_ID out
-- IF @l_ASSHIST_ID='' OR @l_ASSHIST_ID IS NULL GOTO ABORT
-- INSERT INTO ASS_MASTER_HIST
-- SELECT @l_ASSHIST_ID, a.*
-- FROM ASS_MASTER a
-- where a.ASSET_ID = @l_ASSET_ID
-- IF @@Error <> 0 GOTO ABORT
-- UPDATE ASS_MASTER SET BRANCH_ID = @p_BRANCH_ID_RECEIVE, DEPT_ID = @p_DEPT_ID_RECEIVE
-- WHERE ASSET_ID = @l_ASSET_ID
-- IF @@Error <> 0 GOTO ABORT
-- --Lay LOCHIST_ID
-- SELECT @l_OLD_LOCHIST_ID = LOCHIST_ID FROM ASS_LOCATION_HIST WHERE ASSET_ID = @l_ASSET_ID AND ISLEAF='Y'
-- --Uptdae isleaf='N' and END_DATE = ngay hien tai cho record hien tai
-- UPDATE ASS_LOCATION_HIST
-- SET USE_END_DT = CONVERT(DATETIME,@p_APPROVE_DT,103),
-- ISLEAF='N'
-- WHERE ASSET_ID = @l_ASSET_ID AND ISLEAF='Y'
-- IF @@Error <> 0 GOTO ABORT
-- --Insert bang ASS_LOCATION_HIST
-- EXEC SYS_CodeMasters_Gen 'ASS_LOCATION_HIST', @l_LOCHIST_ID out
-- IF @l_LOCHIST_ID='' OR @l_LOCHIST_ID IS NULL GOTO ABORT
-- INSERT INTO ASS_LOCATION_HIST
-- (
-- LOCHIST_ID, ASSET_ID, USE_START_DT, USE_END_DT, BRANCH_ID, DEPT_ID,
-- EMP_ID, LOCATION, ISLEAF, PARENT_ID
-- )
-- VALUES
-- (
-- @l_LOCHIST_ID, @l_ASSET_ID, GETDATE(), NULL, @p_BRANCH_ID_RECEIVE, @p_DEPT_ID_RECEIVE,
-- NULL, '', 'Y', NULL
-- )
-- IF @@Error <> 0 GOTO ABORT
-- FETCH NEXT FROM DataCusor INTO @COLLECT_MULTI_ID,@ASSET_ID
--END
--CLOSE DataCusor
--DEALLOCATE DataCusor
-- GIANT Insert to table PL_PROCESS
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @p_COL_MULTI_MASTER_ID,
'APPROVE',
@p_CHECKER_ID,
GETDATE(),
N'Trưởng đơn vị phê duyệt ' ,
N'Trưởng đơn vị phê duyệt thành công'
)
COMMIT TRANSACTION
SELECT '0' as Result, @p_COL_MULTI_MASTER_ID COL_MULTI_MASTER_ID, '' ErrorDesc
RETURN '0'
ABORT:
BEGIN
CLOSE DataCusor
DEALLOCATE DataCusor
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' COL_MULTI_MASTER_ID, '' ErrorDesc
RETURN '-1'
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_USE_MULTI_HANDOVER_RECORD]'
GO
ALTER PROC [dbo].[ASS_USE_MULTI_HANDOVER_RECORD]
@USER_MASTER_ID VARCHAR(15) = NULL
AS
BEGIN
--Table 0 Nội dung && BRANCH
SELECT N'Hội sở - PHÒNG QUẢN LÝ TÀI SẢN' AS BRANCH_NAME,
(N'Hôm nay, ngày ' + CONVERT(VARCHAR(5),DAY(GETDATE())) + N' tháng ' + CONVERT(VARCHAR(5),MONTH(GETDATE())) + N' năm ' + CONVERT(VARCHAR(5),YEAR(GETDATE())) + N' tại ') AS DD_MM_YY,
A.CONTENT AS TITLE
FROM ASS_USE_MULTI_MASTER A
WHERE A.USER_MASTER_ID = @USER_MASTER_ID
--Table 1 Bên giao
SELECT TOP 1 B.TLFullName, B.ADDRESS, B.PHONE, C.POS_NAME, ISNULL(D.BRANCH_NAME,'') + ISNULL(' - ' + E.DEP_NAME,'') AS BRANCH_NAME
FROM ASS_USE_MULTI_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_EMPLOYEE_LOG C ON B.TLNANME = C.USER_DOMAIN
LEFT JOIN CM_BRANCH D ON A.BRANCH_CREATE = D.BRANCH_ID
LEFT JOIN CM_DEPARTMENT E ON A.DEPT_CREATE = E.DEP_ID
WHERE A.USER_MASTER_ID = @USER_MASTER_ID
--Table 2 Bên nhận
--Fix tạm UAT
IF(EXISTS(SELECT TOP 1 B.TLFullName, B.ADDRESS, B.PHONE, C.POS_NAME
FROM ASS_USE_CONFIRM_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_EMPLOYEE_LOG C ON B.TLNANME = C.USER_DOMAIN
WHERE A.USER_MASTER_ID = @USER_MASTER_ID))
BEGIN
SELECT TOP 1 B.TLFullName, B.ADDRESS, B.PHONE, C.POS_NAME, ISNULL(D.BRANCH_NAME,'') + ISNULL(' - ' + E.DEP_NAME,'') AS BRANCH_NAME
FROM ASS_USE_CONFIRM_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_EMPLOYEE_LOG C ON B.TLNANME = C.USER_DOMAIN
LEFT JOIN CM_BRANCH D ON A.BRANCH_ID = D.BRANCH_ID
LEFT JOIN CM_DEPARTMENT E ON A.DEP_ID = E.DEP_ID
WHERE A.USER_MASTER_ID = @USER_MASTER_ID
END
ELSE
BEGIN
SELECT '' TLFullName, '' ADDRESS, '' PHONE, '' POS_NAME
END
--TABLE 3 DANH SÁCH TÀI SẢN
SELECT CASE
WHEN B.ASSET_CODE IS NOT NULL AND B.ASSET_CODE <> '' THEN B.ASSET_CODE
ELSE B.ASS_CODE_TMP
END AS ASSET_CODE, B.ASSET_NAME, D.UNIT_NAME, 1 AS QUANTITY,
E.STATUS_NAME, B.ASSET_SERIAL_NO AS SERIAL, R.REQ_CODE + ISNULL(CHAR(10) + CHAR(10) + B.PL,'') AS REQ_CODE, B.NOTES AS QUY_CACH, A.NOTES, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS STT
,CE.EMP_NAME
FROM ASS_USE_MULTI_DT A
LEFT JOIN TR_REQUEST_SHOP_DOC R ON A.REQ_ID = R.REQ_ID
LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID
LEFT JOIN ASS_GROUP C ON B.GROUP_ID = C.GROUP_ID
LEFT JOIN CM_UNIT D ON C.UNIT = D.UNIT_ID
LEFT JOIN ASS_STATUS E ON B.ASS_STATUS = E.STATUS_ID
LEFT JOIN CM_EMPLOYEE CE ON A.EMP_ID = CE.EMP_ID
WHERE A.USER_MASTER_ID = @USER_MASTER_ID
--TABLE 4 CHỮ KÝ
SELECT TOP 1 E.TLFullName AS CHECKER_NAME, --BÊN NHẬN
ISNULL(C.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.USER_MASTER_ID AND PP.PROCESS_ID = 'CONFIRM'
AND PP.CHECKER_ID = B.MAKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME_2,--BÊN NHẬN
D.TLFullName AS MAKER_NAME, --BÊN GIAO
--G.TLFullName AS INTERMEDIATE_UNIT_NAME, --ĐƠN VỊ TRUNG GIAN
ISNULL(F.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.USER_MASTER_ID AND PP.PROCESS_ID = 'SEND'
AND PP.CHECKER_ID = A.MAKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME --BÊN GIAO
--H.POS_NAME AS POS_NAME_1 -- ĐƠN VỊ TRUNG GIAN
FROM ASS_USE_MULTI_MASTER A
LEFT JOIN ASS_USE_CONFIRM_MASTER B ON A.USER_MASTER_ID = B.USER_MASTER_ID
LEFT JOIN TL_USER E ON B.MAKER_ID = E.TLNANME --BÊN NHẬN
LEFT JOIN CM_EMPLOYEE_LOG C ON B.MAKER_ID = C.USER_DOMAIN --BÊN NHẬN
LEFT JOIN TL_USER D ON A.MAKER_ID = D.TLNANME --BÊN GIAO
LEFT JOIN CM_EMPLOYEE_LOG F ON D.TLNANME = F.USER_DOMAIN
--LEFT JOIN TL_USER G ON A.CHECKER_ID = G.TLNANME -- DVTG
--LEFT JOIN CM_EMPLOYEE_LOG H ON A.CHECKER_ID = H.USER_DOMAIN --DVTG
WHERE A.USER_MASTER_ID = @USER_MASTER_ID
--TABLE 5 SỐ
SELECT @USER_MASTER_ID AS NO
--TABLE 6 ĐƠN VỊ TRUNG GIAN
SELECT '' TLFullName, '' ADDRESS, '' PHONE, '' POS_NAME
--SELECT TOP 1 B.TLFullName, B.ADDRESS, B.PHONE, C.POS_NAME, ISNULL(D.BRANCH_NAME,'') + ISNULL(' - ' + E.DEP_NAME,'') AS BRANCH_NAME
--FROM ASS_USE_MULTI_MASTER A
--LEFT JOIN TL_USER B ON A.CHECKER_ID = B.TLNANME
--LEFT JOIN CM_EMPLOYEE_LOG C ON B.TLNANME = C.USER_DOMAIN
--LEFT JOIN CM_BRANCH D ON A.BRANCH_CREATE = D.BRANCH_ID
--LEFT JOIN CM_DEPARTMENT E ON A.DEPT_CREATE = E.DEP_ID
--WHERE A.USER_MASTER_ID = @USER_MASTER_ID
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[rpt_INVENTORY_Search]'
GO
ALTER PROCEDURE [dbo].[rpt_INVENTORY_Search]
@p_FromDate varchar(20) = null,
@p_ToDate varchar(20) = null,
@p_BRANCH_ID varchar(15) = null,
@p_ASS_STATUS NVARCHAR(20)=NULL,
@p_BRANCH_LOGIN VARCHAR(15) = NULL,
@p_LEVEL VARCHAR(15) = 'ALL',
@p_DEP_ID VARCHAR(15) = NULL,
@p_TYPE_ID VARCHAR(15) = NULL,
@p_IGNORE VARCHAR(10) = NULL,--KHONG TINH DON VI DANG XUAT
@l_NGAYSAOKE VARCHAR(25)=NULL,--NGAY KIEM KE
@p_TERM_ID VARCHAR(25)=NULL, --DOT KIEM KE
@p_IS_REDUNDANT VARCHAR(1)=NULL -- XUAT DU LiEU THUA THIEU
AS
BEGIN
DECLARE
@lp_Fromdate varchar(20) = null,
@lp_Todate varchar(20) = null,
@lp_BRANCH_ID varchar(15) = null,
@lp_ASS_STATUS NVARCHAR(20)=NULL,
@lp_BRANCH_LOGIN VARCHAR(15) = NULL,
@lP_LEVEL VARCHAR(15) = 'ALL',
@lp_DEP_ID VARCHAR(15) = NULL,
@lp_TYPE_ID VARCHAR(15) = NULL,
@lp_IGNORE VARCHAR(10) = NULL,--KHONG TINH DON VI DANG XUAT
@ll_NGAYSAOKE VARCHAR(25)=NULL,--NGAY KIEM KE
@lp_TERM_ID VARCHAR(25)=NULL --DOT KIEM KE
set @lp_Fromdate = @p_FromDate
set @lp_Todate = @p_ToDate
set @lp_BRANCH_ID = @p_BRANCH_ID
set @lp_ASS_STATUS = @p_ASS_STATUS
set @lp_BRANCH_LOGIN = @p_BRANCH_LOGIN
set @lP_LEVEL = @p_LEVEL
set @lp_DEP_ID = @p_DEP_ID
set @lp_TYPE_ID = @p_TYPE_ID
set @lp_IGNORE = @p_IGNORE
set @ll_NGAYSAOKE = @l_NGAYSAOKE
set @lp_TERM_ID = @p_TERM_ID
DECLARE @DEP_TYPE VARCHAR(20) = (SELECT TYPE FROM CM_DEPARTMENT CD WHERE CD.DEP_ID = @p_DEP_ID)
--thieuvq 19/7/2016 - DOC DU LIEU BO QUA COMMIT TRANSACTION
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
--
declare --@ll_NGAYSAOKE varchar(25) = '30/11/2014',
@lp_FromdateSK varchar(25) = @ll_NGAYSAOKE
declare @ltmp table(BRANCH_ID varchar(15))
insert into @ltmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@lp_BRANCH_ID)
declare @ltmp_login table(BRANCH_ID varchar(15))
insert into @ltmp_login SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@lp_BRANCH_LOGIN)
declare @statusHistTmp table(
ASSET_ID VARCHAR(15),
STATUS_ID VARCHAR(15),
[ASS_STATUS] [nvarchar](500) NULL,
[ASSET_DESC] [nvarchar](500) NULL,
NOTES [nvarchar](1000) NULL
)
insert into @statusHistTmp(ASSET_ID, STATUS_ID,ASS_STATUS, ASSET_DESC,NOTES)
SELECT HIS.ASSET_ID, STAT.STATUS_ID,HIS.ASS_STATUS, HIS.ASSET_DESC, NOTES FROM dbo.GetLatestAssetHis(NULL, @p_ToDate) HIS
LEFT JOIN ASS_STATUS STAT ON STAT.STATUS_NAME = HIS.ASS_STATUS
DECLARE @tmp TABLE(GROUP_ID VARCHAR(15), LEVEL_CODE NVARCHAR(MAX), ASSET_CODE NVARCHAR(MAX))
INSERT INTO @tmp
(
GROUP_ID,
LEVEL_CODE,
ASSET_CODE
)
SELECT GROUP_ID, CASE WHEN TYPE_ID = 'CCLD' THEN [dbo].[FN_GET_GROUPCODE](GROUP_ID,'1')
ELSE [dbo].[FN_GET_GROUPCODE](GROUP_ID,'2') END AS LEVEL_CODE,
CASE WHEN TYPE_ID = 'CCLD' THEN [dbo].[FN_GET_GROUPNAME](GROUP_ID,'1') ELSE
[dbo].[FN_GET_GROUPNAME](GROUP_ID,'2') END AS ASSET_CODE
FROM dbo.ASS_GROUP
--
SELECT
Row_number() over(order by A.ASSET_NAME) AS STT,
(CASE C.BRANCH_TYPE WHEN 'PGD' then D.BRANCH_NAME
ELSE C.BRANCH_NAME END) CHI_NHANH,
(CASE C.BRANCH_TYPE when 'HS' Then F.DEP_NAME
ELSE C.BRANCH_NAME END) PGD_PHONG_BAN,
AG.GROUP_NAME AS ASSET_GROUP_NAME,
A.ASSET_CODE, --MA SO TAI SAN
A.ASSET_NAME, --TEN TAI SAN
A.ASSET_SERIAL_NO,
A.BUY_PRICE, -- NGUYÊN GIÁ
(ISNULL(CC.PHAT_SINH_DAU,0) + ISNULL(EE.PHAT_SINH_TANG_TRONG_KHOANG,0) - ISNULL(FF.PHAT_SINH_GIAM_TRONG_KHOANG,0)) AS NGUYEN_GIA,
(ISNULL(DD.PHAT_SINH_CUOI,0) - ISNULL(AA.TONG_KH_TRONG_KHOANG,0) - ISNULL(BB.TONG_KH_DAU,0) + ISNULL(DR.TONG_KH_TRONG_KHOANG,0)) AS GTCL, --GIA TRI CON LAI
CONVERT(VARCHAR(10),A.USE_DATE,110) AS USE_DATE,--NGAY SU DUNG
A.ASSET_DESC, --MO TA
PQ.ASSET_DESC AS HIEN_TRANG, --HIEN TRANG CCLD
A.NOTES,
'' NKSC,--NHAT KY SUA CHUA
--'' NQL, -- NGUOI QUAN LY
A.USE_STATUS NQL, -- NGUOI QUAN LY
ISNULL(KK.ASS_STATUS,N'Chưa kiểm kê') AS TINHTRANGKIEMKE,
A.AMORT_RATE AS TLKH,
CONVERT(VARCHAR(10),A.AMORT_END_DATE,110) AS AMORT_END_DATE,
DD.PHAT_SINH_CUOI - BB.TONG_KH_DAU AS REMAIN_VALUE,
'1' AS SL_SS, '' AS SL_TT, '' AS SL_THUA, '' AS SL_THIEU, AST.STATUS_NAME AS ASS_STATUS,
CE.EMP_NAME, CE.EMP_CODE, CB.BRANCH_NAME,AG.GROUP_CODE AS ASSET_GROUP_CODE,
CASE WHEN CB.BRANCH_TYPE = 'HS' THEN CD.DEP_CODE ELSE CB.BRANCH_CODE END AS BRANCH_DEP_CODE,
CD.DEP_NAME, CU.UNIT_NAME, A.TYPE_ID
FROM ASS_MASTER A
LEFT JOIN @tmp T ON A.GROUP_ID = T.GROUP_ID
LEFT JOIN ASS_STATUS AST ON A.ASS_STATUS = AST.STATUS_ID
LEFT JOIN ASS_GROUP AG ON A.GROUP_ID = AG.GROUP_ID
LEFT JOIN CM_EMPLOYEE CE ON A.EMP_ID = CE.EMP_ID
LEFT JOIN CM_BRANCH CB ON A.BRANCH_ID = CB.BRANCH_ID
LEFT JOIN CM_DEPARTMENT CD ON A.DEPT_ID = CD.DEP_ID
LEFT JOIN CM_UNIT CU ON AG.UNIT = CU.UNIT_ID
--LEFT JOIN
--(
-- SELECT M.ASSET_ID, N.APPROVE_DT, N.ASSET_STATUS, N.INVENT_DESC, N.ASS_STATUS, N.AUTH_STATUS, N.RECORD_STATUS, N.NOTES
-- FROM
-- (
-- SELECT A.ASSET_ID, MAX(A.INVENTDT_ID) AS INVENTDT_ID
-- FROM
-- (
-- SELECT A.INVENTDT_ID, A.ASSET_ID, A.ASSET_STATUS, B.APPROVE_DT FROM ASS_INVENTORY_DT A
-- LEFT JOIN ASS_INVENTORY_MASTER B ON A.INVENT_ID = B.INVENT_ID
-- WHERE
-- (CONVERT(DATE,B.APPROVE_DT) >= CONVERT(DATE,@lp_Fromdate,103) OR @lp_Fromdate IS NULL OR @lp_Fromdate = '')
-- AND (CONVERT(DATE,B.APPROVE_DT) < CONVERT(DATE,@lp_Todate,103) OR @lp_Todate IS NULL OR @lp_Todate = '')
-- AND B.AUTH_STATUS = 'A'
-- AND B.RECORD_STATUS = '1'
-- --THIEUVQ THEM DIEU KIEN THONG KE THEO DOT KIEM KE
-- AND B.TERM = @lp_TERM_ID
-- AND CONVERT(DATE,B.INVENTORY_DT) = CONVERT(DATE,@ll_NGAYSAOKE,103)
-- --THIEUVQ THEM DIEU KIEN KHONG LAY TAI SAN THUA LEN SAO KE - 02122016 TANPN
-- AND A.ASSET_STATUS <> '6'
-- GROUP BY A.INVENTDT_ID, A.ASSET_ID, A.ASSET_STATUS, B.APPROVE_DT
-- --ORDER BY A.ASSET_ID, B.APPROVE_DT DESC
-- ) AS A
-- GROUP BY A.ASSET_ID
-- ) AS M
-- INNER JOIN
-- (
-- SELECT A.INVENTDT_ID, A.ASSET_ID, A.ASSET_STATUS, B.APPROVE_DT, A.INVENT_DESC, C.ASS_STATUS, B.AUTH_STATUS, B.RECORD_STATUS , A.NOTES
-- FROM ASS_INVENTORY_DT A
-- LEFT JOIN ASS_INVENTORY_MASTER B ON A.INVENT_ID = B.INVENT_ID
-- --LEFT JOIN ASS_STATUS C ON A.ASSET_STATUS = C.STATUS_ID
-- LEFT JOIN
-- (
-- SELECT * FROM GetLatestAssetHis(NULL, @p_ToDate)
-- ) C ON C.ASSET_ID = A.ASSET_ID
-- WHERE
-- (CONVERT(DATE,B.APPROVE_DT) >= CONVERT(DATE,@lp_Fromdate,103) OR @lp_Fromdate IS NULL OR @lp_Fromdate = '')
-- AND (CONVERT(DATE,B.APPROVE_DT) < CONVERT(DATE,@lp_Todate,103) OR @lp_Todate IS NULL OR @lp_Todate = '')
-- AND B.AUTH_STATUS = 'A'
-- AND B.RECORD_STATUS = '1'
-- --THIEUVQ THEM DIEU KIEN THONG KE THEO DOT KIEM KE
-- AND B.TERM = @lp_TERM_ID
-- AND CONVERT(DATE,B.INVENTORY_DT) = CONVERT(DATE,@ll_NGAYSAOKE,103)
-- --THIEUVQ THEM DIEU KIEN KHONG LAY TAI SAN THUA LEN SAO KE - 02122016 TANPN
-- AND A.ASSET_STATUS <> '6'
-- GROUP BY A.INVENTDT_ID, A.ASSET_ID, A.ASSET_STATUS, B.APPROVE_DT, A.INVENT_DESC, C.ASS_STATUS, B.AUTH_STATUS, B.RECORD_STATUS, A.NOTES
-- ) AS N ON M.ASSET_ID = N.ASSET_ID
-- WHERE M.INVENTDT_ID = N.INVENTDT_ID
-- --ORDER BY M.ASSET_ID
--) AS KK ON A.ASSET_ID = KK.ASSET_ID
LEFT JOIN @statusHistTmp KK ON KK.ASSET_ID = A.ASSET_ID
LEFT JOIN ASS_STATUS ST ON KK.STATUS_ID = ST.STATUS_ID
LEFT JOIN
(
SELECT A.ASSET_ID,
ISNULL(TR.BRANCH_ID, TRN.BRANCH_ID) AS BRANCH_ID,
CASE WHEN TR.BRANCH_ID IS NULL THEN TRN.DEPT_ID ELSE TR.DEPT_ID END AS DEPT_ID,
CASE WHEN TR.BRANCH_ID IS NULL THEN TRN.EMP_ID ELSE TR.EMP_ID END AS EMP_ID
FROM ASS_MASTER A
LEFT JOIN --LAY DON VI MOI NHAT
(
SELECT A.ASSET_ID, A.BRANCH_ID, A.DEPT_ID, A.EMP_ID
FROM ASS_LOCATION_HIST A
INNER JOIN
(
SELECT MAX(B.LOCHIST_ID) AS LOCHIST_ID, B.ASSET_ID
FROM ASS_LOCATION_HIST B
WHERE B.USE_START_DT <= CONVERT(DATE,@ll_NGAYSAOKE,103)
GROUP BY B.ASSET_ID
) AS TRN ON TRN.LOCHIST_ID = A.LOCHIST_ID
) AS TR ON TR.ASSET_ID = A.ASSET_ID
LEFT JOIN --LAY DON VI CU NHAT
(
SELECT A.ASSET_ID, A.BRANCH_ID, A.DEPT_ID, A.EMP_ID
FROM ASS_LOCATION_HIST A
INNER JOIN
(
SELECT MIN(B.LOCHIST_ID) AS LOCHIST_ID, B.ASSET_ID
FROM ASS_LOCATION_HIST B
WHERE B.USE_START_DT > CONVERT(DATE,@ll_NGAYSAOKE,103)
GROUP BY B.ASSET_ID
) AS TRN ON TRN.LOCHIST_ID = A.LOCHIST_ID
) AS TRN ON TRN.ASSET_ID = A.ASSET_ID
) AS BRN_HIST ON BRN_HIST.ASSET_ID = A.ASSET_ID
--LEFT JOIN ASS_INVENTORY_DT IDT ON IDT.ASSET_ID = A.ASSET_ID
LEFT JOIN ASS_GROUP B ON A.GROUP_ID = B.GROUP_ID
LEFT JOIN CM_BRANCH C ON BRN_HIST.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_BRANCH D ON D.BRANCH_ID = C.FATHER_ID
LEFT JOIN CM_EMPLOYEE E ON BRN_HIST.EMP_ID = E.EMP_ID
LEFT JOIN CM_DEPARTMENT F ON BRN_HIST.DEPT_ID = F.DEP_ID
LEFT JOIN
(
SELECT X.ASSET_ID,ISNULL(SUM(X.AMORT_AMT),0) AS TONG_KH_TRONG_KHOANG
FROM ASS_AMORT_DT X
--INNER JOIN ASS_AMORT Y ON X.AMORT_ID = Y.AMORT_ID
WHERE
(X.AMORT_DT >= CONVERT(DATE,@lp_FromdateSK,103) OR @lp_FromdateSK IS NULL OR @lp_FromdateSK = '')
AND
(X.AMORT_DT <= CONVERT(DATE,@ll_NGAYSAOKE,103)OR @ll_NGAYSAOKE IS NULL OR @ll_NGAYSAOKE = '')
AND CRDR = 'C'
GROUP BY X.ASSET_ID
) AA ON A.ASSET_ID = AA.ASSET_ID
LEFT JOIN
(
SELECT X.ASSET_ID,ISNULL(SUM(X.AMORT_AMT),0) AS TONG_KH_TRONG_KHOANG
FROM ASS_AMORT_DT X
--INNER JOIN ASS_AMORT Y ON X.AMORT_ID = Y.AMORT_ID
WHERE
(X.AMORT_DT >= CONVERT(DATE,@lp_FromdateSK,103) OR @lp_FromdateSK IS NULL OR @lp_FromdateSK = '')
AND (X.AMORT_DT <= CONVERT(DATE,@ll_NGAYSAOKE,103)OR @ll_NGAYSAOKE IS NULL OR @ll_NGAYSAOKE = '')
AND CRDR = 'D'
GROUP BY X.ASSET_ID
) DR ON A.ASSET_ID = DR.ASSET_ID
-- SELECT * FROM ASS_AMORT_DT
LEFT JOIN
(
--SELECT X.ASSET_ID,ISNULL(SUM(X.AMORT_AMT),0) AS TONG_KH_DAU
SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR WHEN 'C' THEN X.AMORT_AMT WHEN 'D' THEN -X.AMORT_AMT END),0) AS TONG_KH_DAU
FROM ASS_AMORT_DT X
--INNER JOIN ASS_AMORT Y ON X.AMORT_ID = Y.AMORT_ID
INNER JOIN ASS_MASTER Z ON X.ASSET_ID = Z.ASSET_ID
WHERE
(X.AMORT_DT >= CONVERT(DATE,Z.AMORT_START_DATE)) AND (CONVERT(DATE,Z.LIQUIDATION_DT) > CONVERT(DATE,@lp_FromdateSK,103) OR Z.LIQUIDATION_DT IS NULL OR Z.LIQUIDATION_DT = '')
AND (X.AMORT_DT <= CONVERT(DATE,@ll_NGAYSAOKE,103) OR @ll_NGAYSAOKE IS NULL OR @ll_NGAYSAOKE = '')
GROUP BY X.ASSET_ID
) BB ON A.ASSET_ID = BB.ASSET_ID
-- SELECT TOP 200 * FROM ASS_MASTER
-- PHAT SINH TANG VA GIAM TRONG KHOANG THOI GIAN TU BAT DAU KHAU HAO DEN THOI DIEM FROM
-- PHAT SINH TANG VA GIAM TRONG KHOANG THOI GIAN TU THỜI ĐIỂM BAT DAU ĐẾN THỜI ĐIỂM TO
-- SELECT * FROM ASS_MASTER
LEFT JOIN
(
SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR WHEN 'C' THEN X.ASSET_AMT WHEN 'D' THEN -X.ASSET_AMT END),0) AS PHAT_SINH_CUOI
FROM ASS_VALUES X
INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
WHERE --X.CREATE_DT >= Y.CREATE_DT
(X.CREATE_DT <= CONVERT(DATE,@ll_NGAYSAOKE,103) OR @ll_NGAYSAOKE IS NULL OR @ll_NGAYSAOKE = '')
GROUP BY X.ASSET_ID
) DD ON A.ASSET_ID = DD.ASSET_ID
-- PHAT SINH TANG TRONG KHOANG THOI GIAN TU THỜI ĐIỂM FROM ĐẾN TO
-- select * from ass_values where trn_type = 'ass_use'
LEFT JOIN
(
SELECT X.ASSET_ID,ISNULL(SUM(CASE X.CRDR WHEN 'C' THEN X.ASSET_AMT WHEN 'D' THEN -X.ASSET_AMT END),0) AS PHAT_SINH_DAU
FROM ASS_VALUES X
INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
WHERE (X.TRN_DT < CONVERT(DATE,@lp_FromdateSK,103) OR @lp_FromdateSK IS NULL OR @lp_FromdateSK = '')
--(X.CREATE_DT >= Y.CREATE_DT)
--AND (X.CREATE_DT <= CONVERT(DATETIME,@lp_Fromdate,103) OR @lp_Fromdate IS NULL OR @lp_Fromdate = '')
GROUP BY X.ASSET_ID
) CC ON A.ASSET_ID = CC.ASSET_ID
-- PHAT SINH TANG TRONG KHOANG THOI GIAN TU THỜI ĐIỂM FROM ĐẾN TO
-- select * from ass_values where trn_type = 'ass_use'
LEFT JOIN
(
SELECT X.ASSET_ID,ISNULL(SUM(X.ASSET_AMT),0) AS PHAT_SINH_TANG_TRONG_KHOANG
FROM ASS_VALUES X
--INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
WHERE (X.CREATE_DT >= CONVERT(DATE,@lp_FromdateSK,103) OR @lp_FromdateSK IS NULL OR @lp_FromdateSK = '')
AND (X.CREATE_DT <= CONVERT(DATE,@ll_NGAYSAOKE,103) OR @ll_NGAYSAOKE IS NULL OR @ll_NGAYSAOKE = '')
AND X.CRDR = 'C'
GROUP BY X.ASSET_ID
) EE ON A.ASSET_ID = EE.ASSET_ID
-- PHAT SINH GIAM TRONG KHOANG THOI GIAN TU THỜI ĐIỂM FROM ĐẾN TO
LEFT JOIN
(
SELECT X.ASSET_ID,ISNULL(SUM(X.ASSET_AMT),0) AS PHAT_SINH_GIAM_TRONG_KHOANG
FROM ASS_VALUES X
--INNER JOIN ASS_MASTER Y ON X.ASSET_ID = Y.ASSET_ID
WHERE (X.CREATE_DT >= CONVERT(DATE,@lp_FromdateSK,103) OR @lp_FromdateSK IS NULL OR @lp_FromdateSK = '')
AND (X.CREATE_DT <= CONVERT(DATE,@ll_NGAYSAOKE,103) OR @ll_NGAYSAOKE IS NULL OR @ll_NGAYSAOKE = '')
AND X.CRDR = 'D'
GROUP BY X.ASSET_ID
) FF ON A.ASSET_ID = FF.ASSET_ID
LEFT JOIN -- vietpq join theo ass_status_hist 09-01-20
(
SELECT DISTINCT ASSET_ID, MAX(STATUS_DT) AS STATUS_DT FROM dbo.ASS_STATUS_HIST
GROUP BY ASSET_ID
) HST_TEMP ON HST_TEMP.ASSET_ID = A.ASSET_ID
LEFT JOIN -- vietpq join theo ass_status_hist 09-01-20
(
SELECT * FROM ASS_STATUS_HIST
) PQ ON PQ.ASSET_ID = HST_TEMP.ASSET_ID AND PQ.STATUS_DT = HST_TEMP.STATUS_DT
-- SELECT * FROM ASS_VALUES
WHERE A.RECORD_STATUS = '1' AND A.AUTH_STATUS = 'A'
AND A.ENTRY_BOOKED = 'Y'
-- NHOM TAI SAN
AND (A.USE_DATE <= CONVERT(DATE,@ll_NGAYSAOKE,103) OR @ll_NGAYSAOKE IS NULL OR @ll_NGAYSAOKE = '') --THEM 15/04 THIEUVQ
AND A.TYPE_ID = @lp_TYPE_ID --THEM 15/04 THIEUVQ
AND ((@lP_LEVEL = 'ALL' AND A.DEPT_ID IN (SELECT DEP_ID FROM dbo.CM_DEP_GETALL_CHILD_ID(@lp_DEP_ID)))
OR (@lP_LEVEL = 'UNIT' AND A.DEPT_ID = @lp_DEP_ID) OR @lp_DEP_ID IS NULL OR @lp_DEP_ID = '')
AND ((@lP_LEVEL = 'ALL' AND BRN_HIST.BRANCH_ID IN (SELECT BRANCH_ID from @ltmp))
OR (@lP_LEVEL = 'UNIT' AND BRN_HIST.BRANCH_ID = @lp_BRANCH_ID) OR @lp_BRANCH_ID = '' OR @lp_BRANCH_ID IS NULL)
AND ((@lP_LEVEL = 'ALL' AND BRN_HIST.BRANCH_ID IN (SELECT BRANCH_ID from @ltmp_login))
OR (@lP_LEVEL = 'UNIT' AND BRN_HIST.BRANCH_ID = @lp_BRANCH_LOGIN) OR @lp_BRANCH_LOGIN = '' OR @lp_BRANCH_LOGIN IS NULL
OR @lp_BRANCH_ID IS NOT NULL OR @lp_BRANCH_ID <> '')
AND (CONVERT(DATE,A.LIQUIDATION_DT) > CONVERT(DATE,@lp_FromdateSK,103) OR A.LIQUIDATION_DT IS NULL OR A.LIQUIDATION_DT = '')
AND A.AMORT_STATUS <> 'VNM'
AND ((@p_IS_REDUNDANT = '1' AND (ST.STATUS_CODE = '05' OR ST.STATUS_CODE = '06')) OR @p_IS_REDUNDANT IS NULL OR @p_IS_REDUNDANT = '' OR @p_IS_REDUNDANT <> '1')
ORDER BY A.ASSET_NAME
SELECT AT.TYPE_NAME FROM ASS_TYPE AT WHERE AT.TYPE_ID = @lp_TYPE_ID
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[rpt_PYC_CAPPHAT]'
GO
ALTER PROC [dbo].[rpt_PYC_CAPPHAT]
@REQ_ID VARCHAR(15) = NULL
AS
BEGIN
DECLARE
@SHOW_TABLE_DVCM_KHAC VARCHAR(1) = NULL,@SHOW_TABLE_DVCM_IT VARCHAR(1) = NULL
--TABLE 0
SELECT DISTINCT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS STT, AG.GROUP_NAME AS GR_NAME, AG.GROUP_CODE AS GR_CODE,
cd.DEP_NAME, ce.EMP_NAME, trsdd.QTY_ETM, trsdd.REASON, TU.TLFullName AS MAKER, TU2.TLFullName AS TDV
FROM TR_REQUEST_SHOP_DOC_DT trsdd
LEFT JOIN TR_REQUEST_SHOP_DOC trsd ON trsdd.REQ_DOC_ID = trsd.REQ_ID
LEFT JOIN CM_DEPARTMENT cd ON trsd.DEP_ID = cd.DEP_ID
LEFT JOIN CM_EMPLOYEE ce ON trsdd.EMP_ID = ce.EMP_ID
LEFT JOIN ASS_GROUP AG ON trsdd.ASS_GROUP_ID = AG.GROUP_ID
LEFT JOIN TL_USER TU ON TU.TLNANME = trsd.MAKER_ID
LEFT JOIN TL_USER TU2 ON TU2.TLNANME = trsd.CHECKER_ID
WHERE trsdd.REQ_DOC_ID = @REQ_ID AND REQ_DT_TYPE = 'ORGINAL'
--GROUP BY AG.GROUP_NAME, AG.GROUP_CODE,
--cd.DEP_NAME, ce.EMP_NAME, trsdd.QTY_ETM, trsdd.REASON, TU.TLFullName, TU2.TLNANME
ORDER BY STT
--TABLE 1 DVCM KHOI CNTT
IF(EXISTS(SELECT 1
FROM TR_REQUEST_SHOP_COSTCENTER A
LEFT JOIN CM_DEPARTMENT B ON A.COST_ID = B.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND B.DEP_CODE = '05J00'))
BEGIN
SELECT TOP 1 A.ASS_STATUS, A.RE_CONTENT, A.NOTES, E.TLFullName AS SURVEY_STAFF, ISNULL(B.POS_NAME, '') + CHAR(13) + N'Đã ký ngày ' + FORMAT(PP.APPROVE_DT, 'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM TR_REQUEST_SHOP_COSTCENTER A
LEFT JOIN CM_EMPLOYEE_LOG B ON A.MAKER_ID = B.USER_DOMAIN
LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
LEFT JOIN CM_DEPARTMENT cd ON A.COST_ID = cd.DEP_ID
LEFT JOIN PL_PROCESS PP ON A.REQ_ID = PP.REQ_ID AND A.MAKER_ID = PP.CHECKER_ID
WHERE A.REQ_ID = @REQ_ID AND cd.DEP_CODE = '05J00'
ORDER BY PP.APPROVE_DT DESC
SET @SHOW_TABLE_DVCM_IT = '1'
END
ELSE
BEGIN
SELECT '' ASS_STATUS, '' RE_CONTENT,'' NOTES, ''SURVEY_STAFF, '' POS_NAME
END
--TABLE 2 DVCM KHAC
IF(EXISTS(SELECT 1
FROM TR_REQUEST_SHOP_COSTCENTER A
LEFT JOIN CM_DEPARTMENT B ON A.COST_ID = B.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND B.DEP_CODE <> '05J00'))
BEGIN
SELECT A.ASS_STATUS, A.RE_CONTENT, A.NOTES, E.TLFullName AS SURVEY_STAFF, ISNULL(B.POS_NAME, '') + CHAR(13) + N'Đã ký ngày ' +
FORMAT(
(SELECT TOP 1 PP.APPROVE_DT FROM PL_PROCESS PP WHERE PP.REQ_ID = A.REQ_ID AND PP.CHECKER_ID = A.MAKER_ID ORDER BY PP.APPROVE_DT DESC)
, 'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM TR_REQUEST_SHOP_COSTCENTER A
LEFT JOIN CM_EMPLOYEE_LOG B ON A.MAKER_ID = B.USER_DOMAIN
LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
LEFT JOIN CM_DEPARTMENT cd ON A.COST_ID = cd.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND cd.DEP_CODE <> '05J00'
ORDER BY A.COST_ID
SET @SHOW_TABLE_DVCM_KHAC = '1'
END
ELSE
BEGIN
SELECT '' ASS_STATUS, '' RE_CONTENT,'' NOTES, ''SURVEY_STAFF, '' POS_NAME
END
--TABLE 3 DANH GIA VA DE XUAT CUA P.QLTS
IF(EXISTS(SELECT 1 FROM TR_REQUEST_SHOP_DOC trsd
LEFT JOIN CM_DEPARTMENT cd ON trsd.DEP_ID = cd.DEP_ID
LEFT JOIN PL_REQUEST_PROCESS PRP ON trsd.REQ_ID = PRP.REQ_ID AND PRP.PROCESS_ID = 'QLTS_NL'
LEFT JOIN TL_USER tu ON PRP.CHECKER_ID = tu.TLNANME
LEFT JOIN CM_EMPLOYEE_LOG CE ON CE.USER_DOMAIN = PRP.CHECKER_ID
WHERE trsd.REQ_ID = @REQ_ID))
BEGIN
SELECT DISTINCT trsd.HO_NOTES, tu.TLFullName, ISNULL(CE.POS_NAME, '') + CHAR(13) + N'Đã ký ngày ' + FORMAT(
(SELECT TOP 1 PP.APPROVE_DT FROM PL_PROCESS PP WHERE PP.REQ_ID = trsd.REQ_ID AND PP.CHECKER_ID = PRP.CHECKER_ID ORDER BY PP.APPROVE_DT DESC)
, 'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM TR_REQUEST_SHOP_DOC trsd
LEFT JOIN CM_DEPARTMENT cd ON trsd.DEP_ID = cd.DEP_ID
LEFT JOIN PL_REQUEST_PROCESS PRP ON trsd.REQ_ID = PRP.REQ_ID AND PRP.PROCESS_ID = 'QLTS_NL'
LEFT JOIN TL_USER tu ON PRP.CHECKER_ID = tu.TLNANME
LEFT JOIN CM_EMPLOYEE_LOG CE ON CE.USER_DOMAIN = PRP.CHECKER_ID
WHERE trsd.REQ_ID = @REQ_ID
END
ELSE BEGIN SELECT N'' NOTES, N'' TLFullName, N'' POS_NAME END
--TABLE 4 PHE DUYET DVCM KHOI CNTT
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL)
BEGIN
IF (EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE = '05J00'))
BEGIN
SELECT TOP 1 ISNULL(A.NOTES,'') AS NOTES, E.TLFullName, ISNULL(D.POS_NAME, '') + CHAR(13) + N'Đã ký ngày ' + FORMAT(PP.APPROVE_DT, 'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
LEFT JOIN CM_EMPLOYEE_LOG D ON A.CHECKER_ID = D.USER_DOMAIN
LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME
LEFT JOIN PL_PROCESS PP ON A.REQ_ID = PP.REQ_ID
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE = '05J00'
ORDER BY PP.APPROVE_DT DESC
END
ELSE
BEGIN
SELECT '' AS NOTES
END
END
ELSE
BEGIN
SELECT N'' NOTES
END
--QTLS_D 5
IF(EXISTS(SELECT 1
FROM PL_REQUEST_PROCESS PRP
LEFT JOIN TL_USER tu ON PRP.CHECKER_ID = tu.TLNANME
LEFT JOIN CM_EMPLOYEE_LOG CE ON CE.USER_DOMAIN = PRP.CHECKER_ID
WHERE PRP.REQ_ID = @REQ_ID AND PRP.PROCESS_ID = 'QLTS_D'))
BEGIN
SELECT DISTINCT PRP.NOTES AS HO_NOTES, tu.TLFullName, ISNULL(CE.POS_NAME, '') + CHAR(13) + N'Đã ký ngày ' + FORMAT(
(SELECT TOP 1 PP.APPROVE_DT FROM PL_PROCESS PP WHERE PP.REQ_ID = PRP.REQ_ID AND PP.CHECKER_ID = PRP.CHECKER_ID ORDER BY PP.APPROVE_DT DESC)
, 'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM PL_REQUEST_PROCESS PRP
LEFT JOIN TL_USER tu ON PRP.CHECKER_ID = tu.TLNANME
LEFT JOIN CM_EMPLOYEE_LOG CE ON CE.USER_DOMAIN = PRP.CHECKER_ID
LEFT JOIN PL_PROCESS PP ON PRP.REQ_ID = PP.REQ_ID AND PRP.CHECKER_ID = PP.CHECKER_ID
WHERE PRP.REQ_ID = @REQ_ID AND PRP.PROCESS_ID = 'QLTS_D'
END
ELSE BEGIN SELECT N'' HO_NOTES, N'' TLFullName, N'' POS_NAME END
--TTQTLS_D 6
SELECT DISTINCT ISNULL(PRP.NOTES, '') AS HO_NOTES, ISNULL(tu.TLFullName, '') AS TLFullName , ISNULL(CE.POS_NAME, '') + CHAR(13) + N'Đã ký ngày ' + FORMAT(
(SELECT TOP 1 PP.APPROVE_DT FROM PL_PROCESS PP WHERE PP.REQ_ID = PRP.REQ_ID AND PP.CHECKER_ID = PRP.CHECKER_ID ORDER BY PP.APPROVE_DT DESC)
, 'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM PL_REQUEST_PROCESS PRP
LEFT JOIN TL_USER tu ON PRP.CHECKER_ID = tu.TLNANME
LEFT JOIN CM_EMPLOYEE_LOG CE ON CE.USER_DOMAIN = PRP.CHECKER_ID
--LEFT JOIN PL_PROCESS PP ON PRP.REQ_ID = PP.REQ_ID AND PRP.CHECKER_ID = PP.CHECKER_ID
WHERE PRP.REQ_ID = @REQ_ID AND PRP.PROCESS_ID = 'TTQLTS_D'
--TABLE 7
SELECT TU.TLFullName AS MAKER, TU2.TLFullName AS TDV, ISNULL(CE.POS_NAME, '') + CHAR(13) + N'Đã ký ngày ' + FORMAT(
A.CREATE_DT
, 'dd/MM/yyyy HH:mm:ss') AS POS_MAKER,
ISNULL(CE2.POS_NAME, '') + CHAR(13) + N'Đã ký ngày ' + FORMAT(
A.APPROVE_DT
, 'dd/MM/yyyy HH:mm:ss') AS POS_TDV
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN TL_USER TU ON TU.TLNANME = A.MAKER_ID
LEFT JOIN CM_EMPLOYEE_LOG CE ON CE.USER_DOMAIN = A.MAKER_ID
LEFT JOIN TL_USER TU2 ON TU2.TLNANME = A.CHECKER_ID
LEFT JOIN CM_EMPLOYEE_LOG CE2 ON CE2.USER_DOMAIN = A.CHECKER_ID
WHERE A.REQ_ID = @REQ_ID
--TABLE 8 SỐ PYC
SELECT trsd.REQ_CODE FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.REQ_ID = @REQ_ID
--PHUCVH TABLE 9 NGÀY TDV DUYỆT
SELECT TOP 1 N'Ngày ' + CONVERT(VARCHAR(5),DAY(pp.APPROVE_DT)) +
N' tháng ' + CONVERT(VARCHAR(5),MONTH(pp.APPROVE_DT)) +
N' năm ' + CONVERT(VARCHAR(10),YEAR(pp.APPROVE_DT)) AS APPROVE_DT
FROM PL_PROCESS pp WHERE pp.REQ_ID = @REQ_ID AND pp.PROCESS_ID = 'APPNEW' ORDER BY pp.ID DESC
--TABLE 10 PHÊ DUYỆT DVCM KHÁC
IF(@SHOW_TABLE_DVCM_KHAC IS NOT NULL)
BEGIN
IF (EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE <> '05J00'))
BEGIN
SELECT ISNULL(A.NOTES,'') AS NOTES, E.TLFullName, ISNULL(D.POS_NAME, '') + CHAR(13) + N'Đã ký ngày ' + FORMAT(A.APPROVE_DT, 'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
LEFT JOIN CM_EMPLOYEE_LOG D ON A.CHECKER_ID = D.USER_DOMAIN
LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE <> '05J00'
ORDER BY C.DEP_ID
END
ELSE
BEGIN
SELECT '' AS NOTES
FROM TR_REQUEST_SHOP_COSTCENTER A
LEFT JOIN CM_DEPARTMENT C ON A.COST_ID = C.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND C.DEP_CODE <> '05J00'
END
END
ELSE
BEGIN
SELECT N'' NOTES
END
--TABLE 11 PHÊ DUYỆT TBP_QLTS
SELECT DISTINCT ISNULL(PRP.NOTES, ISNULL((SELECT TOP 1 PP.NOTES FROM PL_PROCESS PP WHERE PP.REQ_ID = PRP.REQ_ID AND PP.CHECKER_ID = PRP.CHECKER_ID AND PRP.STATUS = 'P' ORDER BY PP.APPROVE_DT DESC),'')) AS HO_NOTES, ISNULL(tu.TLFullName, '') AS TLFullName , ISNULL(CE.POS_NAME, '') + CHAR(13) + N'Đã ký ngày ' + FORMAT(
(SELECT TOP 1 PP.APPROVE_DT FROM PL_PROCESS PP WHERE PP.REQ_ID = PRP.REQ_ID AND PP.CHECKER_ID = PRP.CHECKER_ID ORDER BY PP.APPROVE_DT DESC)
, 'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM PL_REQUEST_PROCESS PRP
LEFT JOIN TL_USER tu ON PRP.CHECKER_ID = tu.TLNANME
LEFT JOIN CM_EMPLOYEE_LOG CE ON CE.USER_DOMAIN = PRP.CHECKER_ID
--LEFT JOIN PL_PROCESS PP ON PRP.REQ_ID = PP.REQ_ID AND PRP.CHECKER_ID = PP.CHECKER_ID
WHERE PRP.REQ_ID = @REQ_ID AND PRP.PROCESS_ID = 'TBP_D'
--SHOW TABLE DVCM IT
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL)
BEGIN
SELECT N'DVCMIT' AS MERGE_REGION
END
--SHOW TABLE DVCM KHÁC
IF(@SHOW_TABLE_DVCM_KHAC IS NOT NULL)
BEGIN
SELECT N'DVCMKHAC' AS MERGE_REGION
END
--SHOW TITLE ĐÁNH GIÁ CỦA ĐƠN VỊ CHUYÊN MÔN
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL OR @SHOW_TABLE_DVCM_KHAC IS NOT NULL)
BEGIN
SELECT N'TITLEDVCM' AS MERGE_REGION
END
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[rpt_PYC_DIEUCHUYEN]'
GO
ALTER PROC [dbo].[rpt_PYC_DIEUCHUYEN]
@REQ_ID VARCHAR(15) = NULL
AS
BEGIN
DECLARE
@SHOW_TABLE_DVCM_KHAC VARCHAR(1) = NULL,@SHOW_TABLE_DVCM_IT VARCHAR(1) = NULL
--TABLE 0
SELECT DISTINCT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS STT,
am.ASSET_NAME AS ASS_NAME,
ISNULL(am.ASSET_CODE,am.ASS_CODE_TMP) AS ASSET_CODE,
ISNULL(PB.DEP_NAME,ISNULL(TT.DEP_NAME,K.DEP_NAME)) AS DEP_NAME,
ce.EMP_NAME, '1' QTY_ETM,
B.REASON AS REQ_CONTENT
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN TR_REQUEST_SHOP_DOC_DT B ON A.REQ_ID = B.REQ_DOC_ID
LEFT JOIN CM_DEPARTMENT K ON B.SUBBRANCH_OLD = K.DEP_ID
LEFT JOIN CM_DEPARTMENT TT ON B.FATHER_OLD = TT.DEP_ID
LEFT JOIN CM_DEPARTMENT PB ON B.DEP_OLD = PB.DEP_ID
LEFT JOIN ASS_MASTER am ON am.ASSET_ID = B.ASS_ID
LEFT JOIN CM_EMPLOYEE ce ON B.EMP_ID = ce.EMP_ID
WHERE A.REQ_ID = @REQ_ID
--TABLE 1 DVCM KHOI CNTT
IF(EXISTS(SELECT 1
FROM TR_REQUEST_SHOP_COSTCENTER A
LEFT JOIN CM_DEPARTMENT B ON A.COST_ID = B.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND B.DEP_CODE = '05J00'))
BEGIN
SELECT TOP 1 A.ASS_STATUS, A.RE_CONTENT, A.NOTES, E.TLFullName AS SURVEY_STAFF, ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT(D.APPROVE_DT,'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM TR_REQUEST_SHOP_COSTCENTER A
LEFT JOIN CM_EMPLOYEE_LOG B ON A.MAKER_ID = B.USER_DOMAIN
LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
LEFT JOIN CM_DEPARTMENT cd ON A.COST_ID = cd.DEP_ID
LEFT JOIN PL_PROCESS D ON A.REQ_ID = D.REQ_ID AND D.PROCESS_ID = 'S_GDDVDVCM' AND A.MAKER_ID = D.CHECKER_ID
WHERE A.REQ_ID = @REQ_ID AND cd.DEP_CODE = '05J00'
ORDER BY D.ID DESC
SET @SHOW_TABLE_DVCM_IT = '1'
END
ELSE
BEGIN
SELECT '' ASS_STATUS, '' RE_CONTENT,'' NOTES, ''SURVEY_STAFF, '' POS_NAME
END
--TABLE 2 DVCM KHAC
IF(EXISTS(SELECT 1
FROM TR_REQUEST_SHOP_COSTCENTER A
LEFT JOIN CM_DEPARTMENT B ON A.COST_ID = B.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND B.DEP_CODE <> '05J00'))
BEGIN
SELECT A.ASS_STATUS, A.RE_CONTENT, A.NOTES, E.TLFullName AS SURVEY_STAFF,
ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'S_GDDVDVCM'
AND PP.CHECKER_ID = A.MAKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM TR_REQUEST_SHOP_COSTCENTER A
LEFT JOIN CM_EMPLOYEE_LOG B ON A.MAKER_ID = B.USER_DOMAIN
LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
LEFT JOIN CM_DEPARTMENT cd ON A.COST_ID = cd.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND cd.DEP_CODE <> '05J00'
ORDER BY A.COST_ID
SET @SHOW_TABLE_DVCM_KHAC = '1'
END
ELSE
BEGIN
SELECT '' ASS_STATUS, '' RE_CONTENT,'' NOTES, ''SURVEY_STAFF, '' POS_NAME
END
--TABLE 3 DANH GIA VA DE XUAT CUA P.QLTS
SELECT TOP 1 A.HO_NOTES, D.TLFullName, ISNULL(C.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.REQ_ID AND (PP.PROCESS_ID = 'S_DVCM' OR PP.PROCESS_ID = 'S_TBP_QLTS')
AND PP.CHECKER_ID = PL.CHECKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN PL_REQUEST_PROCESS PL ON A.REQ_ID = PL.REQ_ID AND PL.PROCESS_ID = 'QLTS_N'
LEFT JOIN CM_EMPLOYEE_LOG C ON PL.CHECKER_ID = C.USER_DOMAIN
LEFT JOIN TL_USER D ON C.USER_DOMAIN = D.TLNANME
WHERE A.REQ_ID = @REQ_ID
--TABLE 4 PHE DUYET DVCM KHOI CNTT
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL)
BEGIN
IF (EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE = '05J00'))
BEGIN
SELECT TOP 1 ISNULL(A.NOTES,'') AS NOTES, E.TLFullName, ISNULL(D.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'DVCM_D'
AND PP.CHECKER_ID = A.CHECKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
LEFT JOIN CM_EMPLOYEE_LOG D ON A.CHECKER_ID = D.USER_DOMAIN
LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE = '05J00'
ORDER BY C.DEP_ID
END
ELSE
BEGIN
SELECT '' AS NOTES
END
END
ELSE
BEGIN
SELECT N'' NOTES
END
--table 5 PHÊ DUYỆT PHÒNG QLTS
IF(EXISTS(SELECT 1
FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_EMPLOYEE_LOG B ON A.CHECKER_ID = B.USER_DOMAIN
LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'QLTS_D'))
BEGIN
SELECT TOP 1 ISNULL(A.NOTES,'') AS NOTES, C.TLFullName, ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'QLTS_D'
AND PP.CHECKER_ID = A.CHECKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_EMPLOYEE_LOG B ON A.CHECKER_ID = B.USER_DOMAIN
LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'QLTS_D'
END
ELSE
BEGIN
SELECT N'' NOTES, '' TLFullName, '' POS_NAME
END
--Phucvh table 6 USER TẠO DUYỆT
SELECT TOP 1 C.TLFullName AS USER_CREATE, CHAR(13) + ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP1.APPROVE_DT FROM PL_PROCESS PP1
WHERE PP1.REQ_ID = A.REQ_ID AND PP1.PROCESS_ID = 'S_DVKD'
AND PP1.CHECKER_ID = A.MAKER_ID
ORDER BY PP1.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME,
E.TLFullName AS USER_APPROVE, CHAR(13) + ISNULL(D.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP1.APPROVE_DT FROM PL_PROCESS PP1
WHERE PP1.REQ_ID = A.REQ_ID AND PP1.PROCESS_ID = 'DVKD_D'
ORDER BY PP1.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME_1
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN CM_EMPLOYEE_LOG B ON A.MAKER_ID = B.USER_DOMAIN --NGƯỜI TẠO
LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME --NGƯỜI TẠO
LEFT JOIN PL_REQUEST_PROCESS PP ON A.REQ_ID = PP.REQ_ID AND PP.PROCESS_ID = 'APPNEW'
LEFT JOIN CM_EMPLOYEE_LOG D ON PP.CHECKER_ID = D.USER_DOMAIN --NGƯỜI DUYỆT
LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME --NGƯỜI DUYỆT
WHERE A.REQ_ID = @REQ_ID
--PHUCVH TABLE 7 SỐ PYC
SELECT trsd.REQ_CODE FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.REQ_ID = @REQ_ID
--PHUCVH TABLE 8 NGÀY TDV DUYỆT
SELECT TOP 1 N'Ngày ' + CONVERT(VARCHAR(5),DAY(pp.APPROVE_DT)) +
N' tháng ' + CONVERT(VARCHAR(5),MONTH(pp.APPROVE_DT)) +
N' năm ' + CONVERT(VARCHAR(10),YEAR(pp.APPROVE_DT)) AS APPROVE_DT
FROM PL_REQUEST_PROCESS pp WHERE pp.REQ_ID = @REQ_ID AND pp.PROCESS_ID = 'APPNEW'
END
--TABLE 9 PHÊ DUYỆT DVCM KHÁC
IF(@SHOW_TABLE_DVCM_KHAC IS NOT NULL)
BEGIN
IF (EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE <> '05J00'))
BEGIN
SELECT ISNULL(A.NOTES,'') AS NOTES, E.TLFullName, ISNULL(D.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'DVCM_D'
AND PP.CHECKER_ID = A.CHECKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
LEFT JOIN CM_EMPLOYEE_LOG D ON A.CHECKER_ID = D.USER_DOMAIN
LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE <> '05J00'
ORDER BY C.DEP_ID
END
ELSE
BEGIN
SELECT '' AS NOTES
FROM TR_REQUEST_SHOP_COSTCENTER A
LEFT JOIN CM_DEPARTMENT C ON A.COST_ID = C.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND C.DEP_CODE <> '05J00'
END
END
ELSE
BEGIN
SELECT N'' NOTES
END
--TABLE 10 PHÊ DUYỆT TBP_QLTS
IF(EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS WHERE REQ_ID = @REQ_ID AND PROCESS_ID = 'TBP_D'))
BEGIN
SELECT TOP 1 ISNULL(A.NOTES,'') AS HO_NOTES, C.TLFullName, ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'TBP_D'
AND PP.CHECKER_ID = A.CHECKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_EMPLOYEE_LOG B ON A.CHECKER_ID = B.USER_DOMAIN
LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'TBP_D'
END
ELSE
BEGIN
SELECT N'' HO_NOTES, '' TLFullName, '' POS_NAME
END
--TABLE 11 PHÊ DUYỆT TRUNG TÂM DỊCH VỤ NỘI BỘ
DECLARE @PRICE_OF_ASSET DECIMAL = (SELECT MAX(b.BUY_PRICE)
FROM TR_REQUEST_SHOP_DOC_DT A
LEFT JOIN ASS_MASTER B ON A.ASS_ID = B.ASSET_ID
WHERE A.REQ_DOC_ID = @REQ_ID)
IF(@PRICE_OF_ASSET > 30000000)
BEGIN
IF(EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS prp WHERE prp.REQ_ID = @REQ_ID AND prp.PROCESS_ID = 'TTQLTS_D'))
BEGIN
SELECT ISNULL(A.NOTES,'') AS NOTES, E.TLFullName, ISNULL(D.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'TTQLTS_D'
AND PP.CHECKER_ID = A.CHECKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_EMPLOYEE_LOG D ON A.CHECKER_ID = D.USER_DOMAIN
LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'TTQLTS_D'
END
END
--SHOW TABLE DVCM IT
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL)
BEGIN
SELECT N'DVCMIT' AS MERGE_REGION
END
--SHOW TABLE DVCM KHÁC
IF(@SHOW_TABLE_DVCM_KHAC IS NOT NULL)
BEGIN
SELECT N'DVCMKHAC' AS MERGE_REGION
END
--SHOW TITLE ĐÁNH GIÁ CỦA ĐƠN VỊ CHUYÊN MÔN
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL OR @SHOW_TABLE_DVCM_KHAC IS NOT NULL)
BEGIN
SELECT N'TITLEDVCM' AS MERGE_REGION
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_TRANSFER_MULTI_MASTER_KT_App]'
GO
ALTER PROCEDURE [dbo].[ASS_TRANSFER_MULTI_MASTER_KT_App]
@p_TRANS_MULTI_MASTER_ID varchar(15),
@p_AUTH_STATUS varchar(1) = NULL,
@p_CHECKER_ID varchar(100) = NULL,
@p_APPROVE_DT VARCHAR(20) = NULL
AS
BEGIN TRANSACTION
declare @l_OLD_LOCHIST_ID varchar(15)
declare @l_LOCHIST_ID varchar(15)
declare @l_ASSHIST_ID varchar(15)
declare @l_ASSET_ID varchar(15)
declare @l_BRANCH_ID varchar(15)
declare @l_DEPT_ID varchar(15)
declare @l_EMP_ID varchar(15)
declare @l_DESC nvarchar(1000)
declare @l_LOCATION nvarchar(500)
DECLARE @l_MAKER_ID varchar(15)
DECLARE @sToday varchar(10) = convert(varchar(10), @p_APPROVE_DT, 103), @l_ENTRY_BOOKED VARCHAR(1),@l_ASSET_CODE VARCHAR(50)
DECLARE @l_CUR_BRANCH_ID VARCHAR(15), @l_ASSET_TYPE VARCHAR(15), @l_AMORT_ACCTNO VARCHAR(50), @l_ASSET_GL VARCHAR(50),@l_TRANSFER_ACCNO VARCHAR(50),
@l_ASSET_GROUP VARCHAR(15), @l_ET_ID VARCHAR(15), @l_TRN_REF_NO VARCHAR(15),@l_AMORT_AMT DECIMAL(18,0),
@l_DO_BRANCH_ID VARCHAR(15), @l_HO_BRANCH_ID VARCHAR(15), @l_CUR_AMORT_AMT DECIMAL(18), @l_AMORT_STATUS VARCHAR(15),
@l_REMAIN_VALUE DECIMAL(18,0)
DECLARE @l_BRANCH_CREATE VARCHAR(15),@l_BUY_PRICE DECIMAL(18), @l_CORE_NOTE NVARCHAR(500), @l_AMORTIZED_AMT DECIMAL(18) = 0
DECLARE @NOTE NVARCHAR(500), @CRET DATETIME, @ERROR NVARCHAR(500) = '',@BRN_TYPE_TRN VARCHAR(15), @BRN_TYPE_REC VARCHAR(15), @TCCT_TRN_ACCTNO VARCHAR(50), @TCCT_REC_ACCTNO VARCHAR(50)
DECLARE @l_IS_COLLECT BIT
DECLARE @l_AMORT_START_DATE DATETIME, @l_AMORT_END_DATE DATETIME, @l_NEW_AMORT_MONTH DECIMAL, @l_RE_AMORT_MONTH DECIMAL
DECLARE @l_ETP_ID VARCHAR(20),@l_D_BRANCH_CODE VARCHAR(25) , @l_C_BRANCH_CODE VARCHAR(25)
SELECT @NOTE = NOTES, @CRET = CREATE_DT, @l_CORE_NOTE = CORE_NOTE
FROM [ASS_TRANSFER_MULTI_MASTER]
WHERE [TRANS_MULTI_MASTER_ID] = @p_TRANS_MULTI_MASTER_ID
--KIEM TRA NEU TINH TRANG DANG LA 'A' THI KHONG CHO PHEP DUYET
IF(EXISTS(SELECT * FROM ASS_TRANSFER_MULTI_MASTER WHERE AUTH_STATUS_KT ='A' AND TRANS_MULTI_MASTER_ID =@p_TRANS_MULTI_MASTER_ID))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' TRANS_MULTI_MASTER_ID, N'Phiếu điều chuyển đã được duyệt' ErrorDesc
RETURN '-1'
END
--KIEM TRA NEU TINH TRANG DANG LA 'R' THI KHONG CHO PHEP DUYET
IF(EXISTS(SELECT * FROM ASS_TRANSFER_MULTI_MASTER WHERE AUTH_STATUS_KT ='R' AND TRANS_MULTI_MASTER_ID =@p_TRANS_MULTI_MASTER_ID))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' TRANS_MULTI_MASTER_ID, N'Thông tin điều chuyển tài sản đang bị trả về. Vui lòng cập nhật lại thông tin trước khi duyệt' ErrorDesc
RETURN '-1'
END
IF (SELECT CHARINDEX('ATGETD',@NOTE)) > 0
BEGIN
SET @sToday = convert(varchar(10), @p_APPROVE_DT, 103)
SET @p_APPROVE_DT = @sToday
END
--APPROVE MASTER
UPDATE [dbo].[ASS_TRANSFER_MULTI_MASTER]
SET AUTH_STATUS_KT = 'A',
CHECKER_ID_KT = @p_CHECKER_ID,
APPROVE_DT_KT = CONVERT(datetime, @p_APPROVE_DT, 103)
WHERE [TRANS_MULTI_MASTER_ID] = @p_TRANS_MULTI_MASTER_ID
DECLARE @l_TRN_NO VARCHAR(15),@l_MAKER_KT VARCHAR(100)
SET @l_MAKER_KT = (SELECT atmm.MAKER_ID_KT FROM ASS_TRANSFER_MULTI_MASTER atmm WHERE atmm.TRANS_MULTI_MASTER_ID = @p_TRANS_MULTI_MASTER_ID)
EXEC ENTRIES_POST_GEN_NO @p_BRANCH_ID = @l_MAKER_KT
,@p_TRN_DATE = @p_APPROVE_DT
,@p_KeyGen = @l_TRN_NO OUT
DECLARE @TRANSFER_MULTI_ID varchar(15)
DECLARE @ASSET_ID varchar(15), @BRANCH_ID_OLD VARCHAR(15),@DEP_ID_OLD VARCHAR(15)
DECLARE DataCusor CURSOR
FOR
SELECT A.TRANSFER_MULTI_ID,A.ASSET_ID
FROM [dbo].[ASS_TRANSFER_MULTI_DT] A
WHERE [TRANS_MULTI_MASTER_ID] = @p_TRANS_MULTI_MASTER_ID
OPEN DataCusor
FETCH NEXT FROM DataCusor INTO @TRANSFER_MULTI_ID,@ASSET_ID
WHILE @@FETCH_STATUS = 0
BEGIN
--Lay thong tin
SELECT @l_ASSET_ID = ASSET_ID,
@l_BRANCH_ID = BRANCH_ID,
@l_DEPT_ID = DEPT_ID,
@l_EMP_ID = EMP_ID,
@l_DESC = [DESCRIPTION],
@l_LOCATION = LOCATION,
@l_MAKER_ID = MAKER_ID_KT,
@BRANCH_ID_OLD = BRANCH_ID_OLD,
@DEP_ID_OLD=DEPT_ID_OLD
FROM ASS_TRANSFER_MULTI_DT
WHERE TRANSFER_MULTI_ID = @TRANSFER_MULTI_ID
--Validation is here
DECLARE @ERRORSYS NVARCHAR(15) = ''
IF ( NOT EXISTS ( SELECT * FROM ASS_TRANSFER_MULTI_DT WHERE TRANSFER_MULTI_ID = @TRANSFER_MULTI_ID))
SET @ERRORSYS = 'ASST-00001'
IF @ERRORSYS <> ''
BEGIN
SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
CLOSE DataCusor
DEALLOCATE DataCusor
ROLLBACK TRANSACTION
RETURN '-1'
END
--Lay branch_id cua user duyet
select @l_DO_BRANCH_ID = a.TLSUBBRID from TL_USER a where a.TLNANME = @p_CHECKER_ID
/****LAY THONG TIN HACH TOAN *****/
SELECT @l_CUR_BRANCH_ID = BRANCH_ID, @l_ASSET_TYPE = TYPE_ID, @l_ASSET_GROUP = ISNULL(REF_GROUP_ID,GROUP_ID),
@l_CUR_AMORT_AMT = (AMORT_AMT - ISNULL(AMORTIZED_AMT,0)), @l_AMORT_STATUS = AMORT_STATUS,
@l_BRANCH_CREATE=BRANCH_CREATE, @l_AMORTIZED_AMT = ISNULL(AMORTIZED_AMT,0), @l_AMORT_AMT = AMORT_AMT,
@l_BUY_PRICE = BUY_PRICE, @l_ENTRY_BOOKED = ENTRY_BOOKED,@l_ASSET_CODE=ASSET_CODE, @l_IS_COLLECT = IS_COLLECT,@l_RE_AMORT_MONTH = (AMORT_MONTH - ISNULL(AMORTIZED_MONTH,0))
FROM ASS_MASTER
WHERE ASSET_ID = @l_ASSET_ID
SET @l_REMAIN_VALUE = @l_CUR_AMORT_AMT
DECLARE @TF_ASSET_CCLD VARCHAR(20) = (SELECT EPA.ACC_NO FROM ENTRIES_POST_ACCNO EPA WHERE EPA.ACC_TYPE = 'ASSET_CCLD_N')
DECLARE @AMORT_CCLD VARCHAR(20) = (SELECT EPA.ACC_NO FROM ENTRIES_POST_ACCNO EPA WHERE EPA.ACC_TYPE = 'AMORT_CCLD')
DECLARE @BE_AMORT_CCLD VARCHAR(20) = (SELECT EPA.ACC_NO FROM ENTRIES_POST_ACCNO EPA WHERE EPA.ACC_TYPE = 'BE_AMORT_CCLD')
DECLARE @BW_AMORT_CCLD VARCHAR(20) = (SELECT EPA.ACC_NO FROM ENTRIES_POST_ACCNO EPA WHERE EPA.ACC_TYPE = 'BW_AMORT_CCLD')
DECLARE @PAY_HS_ACNO VARCHAR(20) = (SELECT EPA.ACC_NO FROM ENTRIES_POST_ACCNO EPA WHERE EPA.ACC_TYPE = 'PAY_HS')
DECLARE @BRANCH_CODE_OLD VARCHAR (15) = (SELECT CB.BRANCH_CODE FROM CM_BRANCH CB WHERE CB.BRANCH_ID = @BRANCH_ID_OLD)
DECLARE @BRANCH_CODE VARCHAR (15) = (SELECT CB.BRANCH_CODE FROM CM_BRANCH CB WHERE CB.BRANCH_ID = @l_BRANCH_ID)
DECLARE @DEP_CODE_OLD VARCHAR(15)=(SELECT cd.DEP_CODE FROM CM_DEPARTMENT cd WHERE cd.DEP_ID=@DEP_ID_OLD)
DECLARE @DEP_CODE VARCHAR(15)=(SELECT cd.DEP_CODE FROM CM_DEPARTMENT cd WHERE cd.DEP_ID=@l_DEPT_ID)
SET @l_TRANSFER_ACCNO = (SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='TRANSFER')
SET @l_HO_BRANCH_ID = (SELECT CB.BRANCH_ID FROM CM_BRANCH CB WHERE CB.BRANCH_TYPE = 'HS')
DECLARE @HO_CODE VARCHAR(20) = (SELECT CB.BRANCH_CODE FROM CM_BRANCH CB WHERE CB.BRANCH_ID = @l_HO_BRANCH_ID)
SELECT @l_ASSET_GL = ASSET_ACCTNO,
@l_AMORT_ACCTNO = AMORT_ACCTNO
FROM ASS_GROUP A
WHERE A.GROUP_ID = @l_ASSET_GROUP
IF @l_AMORT_ACCTNO = '' OR @l_AMORT_ACCTNO IS NULL
SET @ERRORSYS = 'ASS-00002'
IF @ERRORSYS <> ''
BEGIN
SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
CLOSE DataCusor
DEALLOCATE DataCusor
ROLLBACK TRANSACTION
RETURN '-1'
END
UPDATE ASS_TRANSFER_MULTI_DT
SET
AUTH_STATUS_KT = 'A',
CHECKER_ID_KT = @p_CHECKER_ID,
APPROVE_DT_KT = CONVERT(DATETIME,@p_APPROVE_DT,103)
WHERE TRANSFER_MULTI_ID = @TRANSFER_MULTI_ID
IF @@Error <> 0 GOTO ABORT
/***************************************DIEU CHUYEN GIUA CAC KHO - CHUA XUAT SU DUNG************************/
IF @BRANCH_ID_OLD IS NULL OR @BRANCH_ID_OLD = ''
BEGIN
--Phat sinh Asset_ID
-- EXEC SYS_CodeMasters_Gen 'ASS_MASTER_HIST', @l_ASSHIST_ID out
-- IF @l_ASSHIST_ID='' OR @l_ASSHIST_ID IS NULL GOTO ABORT
--
-- INSERT INTO ASS_MASTER_HIST
-- SELECT @l_ASSHIST_ID, a.*
-- FROM ASS_MASTER a
-- where a.ASSET_ID = @l_ASSET_ID
-- IF @@Error <> 0 GOTO ABORT
--Cap nhat ASS_MASTER
UPDATE ASS_MASTER
SET BRANCH_CREATE = @l_BRANCH_ID,
APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103)
WHERE ASSET_ID = @l_ASSET_ID
IF @@Error <> 0 GOTO ABORT
--INSERT VAO BANG ASS_TRANSACTIONS - BO DI VI BEN MAN HINH HCQT DA DUYET ROI
INSERT INTO ASS_TRANSACTIONS(ASSET_ID, TRN_ID, TRN_TYPE, TRN_DATE, RECORD_STATUS, AUTH_STATUS,
[MAKER_ID], [CREATE_DT], [CHECKER_ID], [APPROVE_DT]
)VALUES
(
@l_ASSET_ID, @TRANSFER_MULTI_ID, 'TRANSFER', CONVERT(DATETIME, @sToday, 103), '1', 'A',
@l_MAKER_ID, CONVERT(DATETIME, @sToday, 103), @p_CHECKER_ID, CONVERT(DATETIME, @p_APPROVE_DT, 103)
)
IF @@Error <> 0 GOTO ABORT
---THIEUVQ 111018 NEU XUAT KHAC DON VI THI HACH TOAN
--BEGIN
--Insert vao bang dbo.ASS_ENTRIES_POST
IF @l_BRANCH_CREATE <> @l_BRANCH_ID
BEGIN
SELECT @BRN_TYPE_TRN = BRANCH_TYPE,@TCCT_TRN_ACCTNO = DAO_CODE FROM CM_BRANCH WHERE BRANCH_ID = @l_BRANCH_CREATE
SELECT @BRN_TYPE_REC = BRANCH_TYPE, @TCCT_REC_ACCTNO = DAO_CODE FROM CM_BRANCH WHERE BRANCH_ID = @l_BRANCH_ID
SET @l_C_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_BRANCH_CREATE)
SET @l_D_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_BRANCH_ID)
IF @l_ASSET_TYPE = 'TSCD'
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_ASSET_TYPE, @l_ASSET_ID, 'ASS_TRANSFER', @TRANSFER_MULTI_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_ASSET_GL, @l_BRANCH_ID, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_TRANS_MULTI_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
-- BÊN GIAO
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_TRANS_MULTI_MASTER_ID,@BRANCH_CODE_OLD ,@l_TRANSFER_ACCNO,'VND', 'D', @l_BUY_PRICE, 1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE_OLD, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_TRANS_MULTI_MASTER_ID ,@BRANCH_CODE_OLD , @l_ASSET_GL, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE_OLD, @l_CORE_NOTE,@l_TRN_NO);
-- BÊN NHẬN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_ASSET_TYPE, @l_ASSET_ID, 'ASS_TRANSFER', @TRANSFER_MULTI_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_ASSET_GL, @l_BRANCH_ID, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_TRANS_MULTI_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_TRANS_MULTI_MASTER_ID ,@BRANCH_CODE , @l_ASSET_GL, 'VND', 'D', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_TRANS_MULTI_MASTER_ID,@BRANCH_CODE ,@l_TRANSFER_ACCNO,'VND', 'C', @l_BUY_PRICE, 1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
END
END
ELSE -- CCLD
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_ASSET_TYPE, @l_ASSET_ID, 'ASS_TRANSFER', @TRANSFER_MULTI_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_TRANSFER_ACCNO, @l_BRANCH_ID, @l_BUY_PRICE, 'Y', ---@l_AMORT_ACCTNO thanh @l_ASSET_GL
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_TRANS_MULTI_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_TRANS_MULTI_MASTER_ID,@BRANCH_CODE_OLD ,@l_TRANSFER_ACCNO,'VND', 'D', @l_BUY_PRICE, 1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE_OLD, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_TRANS_MULTI_MASTER_ID ,@BRANCH_CODE_OLD , @l_ASSET_GL, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE_OLD, @l_CORE_NOTE,@l_TRN_NO);
------------------
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_ASSET_TYPE, @l_ASSET_ID, 'ADD_USE', @TRANSFER_MULTI_ID, @l_DO_BRANCH_ID, @l_TRANSFER_ACCNO, @l_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_ID, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID, @TRANSFER_MULTI_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_TRANS_MULTI_MASTER_ID,@BRANCH_CODE ,@l_ASSET_GL,'VND', 'D', @l_BUY_PRICE, 1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_TRANS_MULTI_MASTER_ID ,@BRANCH_CODE , @l_TRANSFER_ACCNO, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
END
--END
END
/***************************************DIEU CHUYEN KHI DA XUAT SU DUNG*************************************/
ELSE
BEGIN
--Move to history
--Phat sinh Asset_ID
-- EXEC SYS_CodeMasters_Gen 'ASS_MASTER_HIST', @l_ASSHIST_ID out
-- IF @l_ASSHIST_ID='' OR @l_ASSHIST_ID IS NULL GOTO ABORT
--
-- INSERT INTO ASS_MASTER_HIST
-- SELECT @l_ASSHIST_ID, a.*
-- FROM ASS_MASTER a
-- where a.ASSET_ID = @l_ASSET_ID
-- IF @@Error <> 0 GOTO ABORT
--Cap nhat ASS_MASTER
UPDATE ASS_MASTER
SET BRANCH_ID = @l_BRANCH_ID,
DEPT_ID = @l_DEPT_ID,
EMP_ID = @l_EMP_ID,
APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103)
WHERE ASSET_ID = @l_ASSET_ID
IF @@Error <> 0 GOTO ABORT
/***THIEUVQ - 10/09/2014 CAP NHAT LAI DON VI KHI XUAT SU DUNG NEU TS LA XE***/
UPDATE CAR_MASTER SET BRANCH_ID = @l_BRANCH_ID WHERE ASSET_ID = @l_ASSET_ID
--Xu ly bang ASS_LOCATION_HIST
--Lay LOCHIST_ID
SELECT @l_OLD_LOCHIST_ID = LOCHIST_ID FROM ASS_LOCATION_HIST WHERE ASSET_ID = @l_ASSET_ID AND ISLEAF='Y'
--Uptdae isleaf='N' and END_DATE = ngay hien tai cho record hien tai
UPDATE ASS_LOCATION_HIST
SET USE_END_DT = CONVERT(DATETIME,@p_APPROVE_DT,103),
ISLEAF='N'
WHERE ASSET_ID = @l_ASSET_ID AND ISLEAF='Y'
-- EXEC SYS_CodeMasters_Gen 'ASS_LOCATION_HIST', @l_LOCHIST_ID out
-- IF @l_LOCHIST_ID='' OR @l_LOCHIST_ID IS NULL GOTO ABORT
--
-- --insert location moi
-- INSERT INTO ASS_LOCATION_HIST
-- (
-- LOCHIST_ID, ASSET_ID, USE_START_DT, USE_END_DT, BRANCH_ID, DEPT_ID,
-- EMP_ID, LOCATION, ISLEAF, PARENT_ID
-- )
-- VALUES
-- (
-- @l_LOCHIST_ID, @l_ASSET_ID, CONVERT(DATETIME,@p_APPROVE_DT,103), NULL, @l_BRANCH_ID, @l_DEPT_ID,
-- @l_EMP_ID, '', 'Y', @l_OLD_LOCHIST_ID
-- )
-- IF @@Error <> 0 GOTO ABORT
UPDATE ASS_TRANSFER_MULTI_DT
SET
AUTH_STATUS = 'A',
CHECKER_ID = @p_CHECKER_ID,
APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103)
WHERE TRANSFER_MULTI_ID = @TRANSFER_MULTI_ID
IF @@Error <> 0 GOTO ABORT
--INSERT VAO BANG ASS_TRANSACTIONS
-- INSERT INTO ASS_TRANSACTIONS(ASSET_ID, TRN_ID, TRN_TYPE, TRN_DATE, RECORD_STATUS, AUTH_STATUS,
-- [MAKER_ID], [CREATE_DT], [CHECKER_ID], [APPROVE_DT]
-- )VALUES
-- (
-- @l_ASSET_ID, @TRANSFER_MULTI_ID, 'TRANSFER', CONVERT(DATETIME, @sToday, 103), '1', 'A',
-- @l_MAKER_ID, CONVERT(DATETIME, @sToday, 103), @p_CHECKER_ID, CONVERT(DATETIME, @p_APPROVE_DT, 103)
-- )
-- IF @@Error <> 0 GOTO ABORT
---THIEUVQ 111018 NEU XUAT KHAC DON VI THI HACH TOAN
--BEGIN
--Insert vao bang dbo.ASS_ENTRIES_POST
IF @BRANCH_ID_OLD <> @l_BRANCH_ID
BEGIN
SELECT @BRN_TYPE_TRN = BRANCH_TYPE,@TCCT_TRN_ACCTNO = DAO_CODE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_ID_OLD
SELECT @BRN_TYPE_REC = BRANCH_TYPE, @TCCT_REC_ACCTNO = DAO_CODE FROM CM_BRANCH WHERE BRANCH_ID = @l_BRANCH_ID
SET @l_C_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@BRANCH_ID_OLD)
SET @l_D_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_BRANCH_ID)
IF @l_ASSET_TYPE = 'TSCD'
BEGIN
IF (@l_CUR_AMORT_AMT = @l_AMORT_AMT) -- Tài sản mới (chưa khấu hao)
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_ASSET_TYPE, @l_ASSET_ID, 'ASS_TRANSFER', @TRANSFER_MULTI_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_ASSET_GL, @l_BRANCH_ID, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_TRANS_MULTI_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
-- BÊN GIAO
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_TRANS_MULTI_MASTER_ID,@BRANCH_CODE_OLD ,@l_TRANSFER_ACCNO,'VND', 'D', @l_BUY_PRICE, 1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE_OLD, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_TRANS_MULTI_MASTER_ID ,@BRANCH_CODE_OLD , @l_ASSET_GL, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE_OLD, @l_CORE_NOTE,@l_TRN_NO);
-- BÊN NHẬN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_ASSET_TYPE, @l_ASSET_ID, 'ASS_TRANSFER', @TRANSFER_MULTI_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_ASSET_GL, @l_BRANCH_ID, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_TRANS_MULTI_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_TRANS_MULTI_MASTER_ID ,@BRANCH_CODE , @l_ASSET_GL, 'VND', 'D', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_TRANS_MULTI_MASTER_ID,@BRANCH_CODE ,@l_TRANSFER_ACCNO,'VND', 'C', @l_BUY_PRICE, 1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
END
ELSE IF (@l_CUR_AMORT_AMT >= 0) -- Tài sản đã qua sử dụng (đang khấu hao)
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_ASSET_TYPE, @l_ASSET_ID, 'ASS_TRANSFER', @TRANSFER_MULTI_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_ASSET_GL, @l_BRANCH_ID, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_TRANS_MULTI_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
-- BÊN GIAO
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_TRANS_MULTI_MASTER_ID ,@BRANCH_CODE_OLD , @l_AMORT_ACCTNO, 'VND', 'D', @l_AMORTIZED_AMT,1, @l_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE_OLD, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_TRANS_MULTI_MASTER_ID ,@BRANCH_CODE_OLD , @l_ASSET_GL, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE_OLD, @l_CORE_NOTE,@l_TRN_NO);
-- BÊN NHẬN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_ASSET_TYPE, @l_ASSET_ID, 'ASS_TRANSFER', @TRANSFER_MULTI_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_ASSET_GL, @l_BRANCH_ID, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_TRANS_MULTI_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_TRANS_MULTI_MASTER_ID ,@BRANCH_CODE , @l_ASSET_GL, 'VND', 'D', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_TRANS_MULTI_MASTER_ID ,@BRANCH_CODE , @l_AMORT_ACCTNO, 'VND', 'C', @l_AMORTIZED_AMT,1, @l_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
IF(@l_REMAIN_VALUE>0)
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_ASSET_TYPE, @l_ASSET_ID, 'ASS_TRANSFER', @TRANSFER_MULTI_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_ASSET_GL, @l_BRANCH_ID, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_TRANS_MULTI_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_TRANS_MULTI_MASTER_ID,@BRANCH_CODE_OLD ,@l_TRANSFER_ACCNO,'VND', 'D', @l_REMAIN_VALUE, 1, @l_REMAIN_VALUE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE_OLD, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_TRANS_MULTI_MASTER_ID,@BRANCH_CODE ,@l_TRANSFER_ACCNO,'VND', 'C', @l_REMAIN_VALUE, 1, @l_REMAIN_VALUE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
END
END
--END
END
ELSE -- CCLD
BEGIN
-- TRƯỜNG HỢP ĐÃ PHÂN BỔ HẾT VÀO CHI PHÍ MUA SẮM CCLĐ
IF(@l_CUR_AMORT_AMT IS NULL OR @l_CUR_AMORT_AMT = 0)
BEGIN
PRINT 'KHONG PHAT SINH'
END
ELSE IF (@l_CUR_AMORT_AMT > 0) -- TRƯỜNG HỢP CHƯA PHÂN BỔ HẾT VÀO CHI PHÍ MUA SẮM CCLĐ
BEGIN
-- Hạch toán tại đơn vị điều CCLĐ đi
-- Tất toán tài khoản CCLĐ
IF(@l_IS_COLLECT = 1)
BEGIN
-- CẬP NHẬT NGÀY BẮT ĐÀU VÀ KẾT THÚC KHẤU HAO MỚI
SET @l_AMORT_START_DATE = CONVERT(DATETIME, GETDATE(), 103)
SET @l_AMORT_END_DATE = DATEADD(MONTH, @l_RE_AMORT_MONTH, @l_AMORT_START_DATE)
IF(@l_AMORT_STATUS = 'NKH')
BEGIN
UPDATE ASS_MASTER
SET IS_COLLECT=0,AMORT_STATUS='DKH'
, AMORT_START_DATE = @l_AMORT_START_DATE, AMORT_END_DATE = @l_AMORT_END_DATE
WHERE ASSET_ID = @ASSET_ID
END
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_ASSET_TYPE, @l_ASSET_ID, 'ASS_TRANSFER', @TRANSFER_MULTI_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_ASSET_GL, @l_BRANCH_ID, @l_BUY_PRICE, 'Y', ---@l_AMORT_ACCTNO thanh @l_ASSET_GL
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_TRANS_MULTI_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_TRANS_MULTI_MASTER_ID ,@BRANCH_CODE_OLD ,@TF_ASSET_CCLD , 'VND', 'D', @l_REMAIN_VALUE,1, @l_REMAIN_VALUE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE_OLD, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_TRANS_MULTI_MASTER_ID ,@BRANCH_CODE_OLD , @BW_AMORT_CCLD, 'VND', 'C', @l_REMAIN_VALUE,1, @l_REMAIN_VALUE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE_OLD, @l_CORE_NOTE,@l_TRN_NO);
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_ASSET_TYPE, @l_ASSET_ID, 'ASS_TRANSFER', @TRANSFER_MULTI_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_ASSET_GL, @l_BRANCH_ID, @l_BUY_PRICE, 'Y', ---@l_AMORT_ACCTNO thanh @l_ASSET_GL
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_TRANS_MULTI_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_TRANS_MULTI_MASTER_ID,@BRANCH_CODE , @AMORT_CCLD,'VND', 'D', @l_REMAIN_VALUE, 1, @l_REMAIN_VALUE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_TRANS_MULTI_MASTER_ID ,@BRANCH_CODE , @TF_ASSET_CCLD, 'VND', 'C', @l_REMAIN_VALUE,1, @l_REMAIN_VALUE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
END
ELSE
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_ASSET_TYPE, @l_ASSET_ID, 'ASS_TRANSFER', @TRANSFER_MULTI_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_ASSET_GL, @l_BRANCH_ID, @l_BUY_PRICE, 'Y', ---@l_AMORT_ACCTNO thanh @l_ASSET_GL
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_TRANS_MULTI_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_TRANS_MULTI_MASTER_ID ,@BRANCH_CODE_OLD , @TF_ASSET_CCLD, 'VND', 'D', @l_REMAIN_VALUE,1, @l_REMAIN_VALUE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE_OLD, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_TRANS_MULTI_MASTER_ID ,@BRANCH_CODE_OLD , @AMORT_CCLD, 'VND', 'C', @l_REMAIN_VALUE,1, @l_REMAIN_VALUE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE_OLD, @l_CORE_NOTE,@l_TRN_NO);
-- Hạch toán Giá trị còn lại chưa phân bổ của CCLĐ
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_ASSET_TYPE, @l_ASSET_ID, 'ASS_TRANSFER', @TRANSFER_MULTI_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_ASSET_GL, @l_BRANCH_ID, @l_BUY_PRICE, 'Y', ---@l_AMORT_ACCTNO thanh @l_ASSET_GL
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_TRANS_MULTI_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_TRANS_MULTI_MASTER_ID,@BRANCH_CODE , @AMORT_CCLD,'VND', 'D', @l_REMAIN_VALUE, 1, @l_REMAIN_VALUE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_TRANS_MULTI_MASTER_ID,@BRANCH_CODE , @TF_ASSET_CCLD,'VND', 'C', @l_REMAIN_VALUE, 1, @l_REMAIN_VALUE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
END
END
END
END
ELSE -- CÙNG ĐƠN VỊ
BEGIN
IF @l_ASSET_TYPE = 'CCLD'
BEGIN
IF (@l_CUR_AMORT_AMT > 0) -- TRƯỜNG HỢP CHƯA PHÂN BỔ HẾT VÀO CHI PHÍ MUA SẮM CCLĐ
BEGIN
-- Hạch toán tại đơn vị điều CCLĐ đi
-- Tất toán tài khoản CCLĐ
IF(@l_IS_COLLECT = 1)
BEGIN
IF(@l_AMORT_STATUS = 'NKH')
BEGIN
UPDATE ASS_MASTER SET IS_COLLECT=0,AMORT_STATUS='DKH' WHERE ASSET_ID = @ASSET_ID
END
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_ASSET_TYPE, @l_ASSET_ID, 'ASS_TRANSFER', @TRANSFER_MULTI_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_ASSET_GL, @l_BRANCH_ID, @l_BUY_PRICE, 'Y', ---@l_AMORT_ACCTNO thanh @l_ASSET_GL
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_TRANS_MULTI_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_TRANS_MULTI_MASTER_ID,@BRANCH_CODE , @AMORT_CCLD,'VND', 'D', @l_REMAIN_VALUE, 1, @l_REMAIN_VALUE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_TRANS_MULTI_MASTER_ID ,@BRANCH_CODE_OLD , @BW_AMORT_CCLD, 'VND', 'C', @l_REMAIN_VALUE,1, @l_REMAIN_VALUE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE_OLD, @l_CORE_NOTE,@l_TRN_NO);
END
END
END
END
--END
END
--khiemchg cập nhật unlock treo tài sản khi thực hiện điều chuyển
UPDATE ASS_MASTER SET IS_COLLECT=0, CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL WHERE ASSET_ID = @ASSET_ID
FETCH NEXT FROM DataCusor INTO @TRANSFER_MULTI_ID,@ASSET_ID
END
CLOSE DataCusor
DEALLOCATE DataCusor
-- HUYHT 06/05/2022 THAY ĐỔI TRẠNG THÁI UPDATE CŨ THÀNH UPDATE_HC
UPDATE dbo.PL_PROCESS SET PROCESS_ID = 'UPDATE_KT' WHERE REQ_ID = @p_TRANS_MULTI_MASTER_ID AND PROCESS_ID = 'UPDATE'
-- GIANT 21/09/2021
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRANS_MULTI_MASTER_ID, -- REQ_ID - varchar(15)
'APPROVE', -- PROCESS_ID - varchar(10)
@p_CHECKER_ID, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
N'Kiên soát viên phê duyệt',
N'Kiên soát viên phê duyệt hoàn tất' -- PROCESS_DESC - nvarchar(1000)
)
--START PHUCVH 26/11/22 UPDATE ALLOCATED PHIẾU YÊU CẦU DT
DECLARE @REQ_DOC_ID VARCHAR(20) = (SELECT TOP 1 REQ_ID FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @p_TRANS_MULTI_MASTER_ID)
DECLARE @REQ_TYPE VARCHAR(10) = (SELECT TOP 1 A.REQ_TYPE
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN ASS_TRANSFER_MULTI_MASTER B ON A.REQ_ID = B.REQ_ID
WHERE B.TRANS_MULTI_MASTER_ID = @p_TRANS_MULTI_MASTER_ID)
IF(@REQ_TYPE = 'DCTS')
BEGIN --NẾU LÀ PHIẾU YÊU CẦU DCTS
UPDATE TR_REQUEST_SHOP_DOC_DT SET ALLOCATED = 1
WHERE REQ_DOC_ID = @REQ_DOC_ID AND ASS_ID IN (SELECT ASSET_ID FROM ASS_TRANSFER_MULTI_DT WHERE TRANS_MULTI_MASTER_ID = @p_TRANS_MULTI_MASTER_ID)
IF(NOT EXISTS(SELECT REQDT_ID FROM TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = @REQ_DOC_ID AND (ALLOCATED = 0 OR ALLOCATED IS NULL OR ALLOCATED = '')))
BEGIN
UPDATE TR_REQUEST_SHOP_DOC SET IS_DONE = '1' WHERE REQ_ID = @REQ_DOC_ID
END
END
ELSE IF(@REQ_TYPE = 'CPTS')
BEGIN --NẾU LÀ PHIẾU CPTS && TYPE_XL = 'CPDC'
DECLARE @TBL_CHECK_UPD TABLE (REQDT_ID VARCHAR(15), ASS_GROUP_ID VARCHAR(15), REQ_DOC_ID VARCHAR(15))
DECLARE @TBL_GROUP_CODE_ASS_USE TABLE (GROUP_ID VARCHAR(15))
INSERT INTO @TBL_CHECK_UPD
SELECT A.REQDT_ID, A.ASS_GROUP_ID,A.REQ_DOC_ID
FROM TR_REQUEST_SHOP_DOC_DT A
WHERE A.REQ_DOC_ID = @REQ_DOC_ID AND A.REQ_DT_TYPE = 'XKSD' AND A.TYPE_XL = 'CPDC'
DECLARE @C_REQDT_ID VARCHAR(15), @C_ASS_GROUP_ID VARCHAR(15), @C_REQ_DOC_ID VARCHAR(15)
DECLARE @IS_MULTI_GROUP VARCHAR(1) = '0'
DECLARE DATA_CURSOR_CHECK_UPD CURSOR FOR
SELECT * FROM @TBL_CHECK_UPD
OPEN DATA_CURSOR_CHECK_UPD
FETCH NEXT FROM DATA_CURSOR_CHECK_UPD INTO
@C_REQDT_ID,@C_ASS_GROUP_ID,@C_REQ_DOC_ID
DECLARE @ALLOCATED INT,@ALLOCATED_CURR INT, @ALLOCATED_OLD INT, @QTY_ETM INT
WHILE @@FETCH_STATUS = 0
BEGIN
SET @IS_MULTI_GROUP = '0'
DELETE @TBL_GROUP_CODE_ASS_USE
INSERT INTO @TBL_GROUP_CODE_ASS_USE (GROUP_ID)
SELECT A.GROUP_ID FROM ASS_GROUP A WHERE A.GROUP_CODE IN (SELECT B.GROUP_CODE FROM ASS_GROUP B WHERE B.GROUP_ID = @C_ASS_GROUP_ID)
IF((SELECT COUNT(*) FROM @TBL_GROUP_CODE_ASS_USE WHERE GROUP_ID IN (SELECT trsdd.ASS_GROUP_ID FROM TR_REQUEST_SHOP_DOC_DT trsdd WHERE trsdd.REQ_DOC_ID = @C_REQ_DOC_ID AND trsdd.REQ_DT_TYPE = 'XKSD' AND trsdd.TYPE_XL = 'CPDC')) > 1)
BEGIN
SET @IS_MULTI_GROUP = '1'
END
-- SET @ALLOCATED = (SELECT SUM(TMP.COUNT) FROM (
-- (SELECT COUNT(*) AS COUNT
-- FROM ASS_TRANSFER_MULTI_DT A
-- LEFT JOIN ASS_TRANSFER_MULTI_MASTER B ON A.TRANS_MULTI_MASTER_ID = B.TRANS_MULTI_MASTER_ID
-- LEFT JOIN ASS_MASTER C ON A.ASSET_ID = C.ASSET_ID
-- WHERE B.AUTH_STATUS_KT = 'A'
-- GROUP BY B.REQ_ID, C.GROUP_ID, C.REQ_ID
-- HAVING B.REQ_ID = @C_REQ_DOC_ID
-- AND C.GROUP_ID IN (SELECT GROUP_ID FROM @TBL_GROUP_CODE_ASS_USE)
-- AND (C.REQ_ID IS NULL OR C.REQ_ID = '')))TMP)
SET @ALLOCATED_CURR = (SELECT SUM(TMP.COUNT) FROM (
(SELECT COUNT(*) AS COUNT
FROM ASS_TRANSFER_MULTI_DT A
LEFT JOIN ASS_TRANSFER_MULTI_MASTER B ON A.TRANS_MULTI_MASTER_ID = B.TRANS_MULTI_MASTER_ID
LEFT JOIN ASS_MASTER C ON A.ASSET_ID = C.ASSET_ID
WHERE A.TRANS_MULTI_MASTER_ID = @p_TRANS_MULTI_MASTER_ID
GROUP BY B.REQ_ID, C.GROUP_ID, C.REQ_ID
HAVING B.REQ_ID = @C_REQ_DOC_ID
AND C.GROUP_ID IN (SELECT GROUP_ID FROM @TBL_GROUP_CODE_ASS_USE WHERE ((@IS_MULTI_GROUP = '1' AND C.GROUP_ID = @C_ASS_GROUP_ID) OR @IS_MULTI_GROUP = '0'))
AND (C.REQ_ID IS NULL OR C.REQ_ID = '')))TMP)
SELECT TOP 1 @ALLOCATED_OLD = trsdd.ALLOCATED, @QTY_ETM = trsdd.QTY_ETM FROM TR_REQUEST_SHOP_DOC_DT trsdd WHERE trsdd.REQDT_ID = @C_REQDT_ID
IF(@QTY_ETM < (ISNULL(@ALLOCATED_OLD,0) + ISNULL(@ALLOCATED_CURR,0)))
BEGIN
ROLLBACK TRANSACTION
CLOSE DATA_CURSOR_CHECK_UPD
DEALLOCATE DATA_CURSOR_CHECK_UPD
SELECT '-1' as Result, '' USER_MASTER_ID, N'Số lượng cấp phát vượt yêu cầu của đơn vị' ErrorDesc
RETURN '-1'
END
UPDATE TR_REQUEST_SHOP_DOC_DT SET ALLOCATED = ALLOCATED + ISNULL(@ALLOCATED_CURR,0)
WHERE REQDT_ID = @C_REQDT_ID
FETCH NEXT FROM DATA_CURSOR_CHECK_UPD INTO
@C_REQDT_ID,@C_ASS_GROUP_ID,@C_REQ_DOC_ID
END
CLOSE DATA_CURSOR_CHECK_UPD
DEALLOCATE DATA_CURSOR_CHECK_UPD
END
--DONE PYC
IF(NOT EXISTS(SELECT TOP 1 A.REQDT_ID
FROM TR_REQUEST_SHOP_DOC_DT A
WHERE A.REQ_DOC_ID = @REQ_DOC_ID
AND ( A.QTY_ETM <> A.ALLOCATED OR (A.ALLOCATED IS NULL OR A.ALLOCATED = '' OR A.ALLOCATED = 0))
AND ((A.REQ_DT_TYPE = 'XKSD' AND A.TYPE_XL = 'CPDC')
OR (A.REQ_DT_TYPE = 'XKSD' AND A.TYPE_XL = 'CPTK')
OR (A.REQ_DT_TYPE = 'BUYNEW'))
))
BEGIN
UPDATE TR_REQUEST_SHOP_DOC SET IS_DONE = '1', STATUS = 'DONE' WHERE REQ_ID = @REQ_DOC_ID
UPDATE PL_REQUEST_PROCESS SET STATUS = 'P' WHERE PROCESS_ID = 'APPROVE' AND REQ_ID = @REQ_DOC_ID
UPDATE PL_REQUEST_PROCESS SET STATUS = 'C', RECEPTION_DT = CONVERT(datetime, GETDATE(), 103), APPROVE_DT = CONVERT(datetime, GETDATE(), 103) WHERE PROCESS_ID = 'DONE' AND REQ_ID = @REQ_DOC_ID
END
--END PHUCVH 26/11/22 UPDATE ALLOCATED PHIẾU YÊU CẦU DT
COMMIT TRANSACTION
SELECT '0' as Result, @p_TRANS_MULTI_MASTER_ID TRANS_MULTI_MASTER_ID, '' ErrorDesc
RETURN '0'
ABORT:
BEGIN
ROLLBACK TRANSACTION
CLOSE DataCusor
DEALLOCATE DataCusor
SELECT '-1' as Result, '' TRANS_MULTI_MASTER_ID, ISNULL(@ERROR,ERROR_MESSAGE()) ErrorDesc
RETURN '-1'
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[rpt_PYC_SUACHUA]'
GO
ALTER PROC [dbo].[rpt_PYC_SUACHUA]
@REQ_ID VARCHAR(15) = NULL
AS
BEGIN
DECLARE
@SHOW_TABLE_DVCM_KHAC VARCHAR(1) = NULL,@SHOW_TABLE_DVCM_IT VARCHAR(1) = NULL
--TABLE 0
SELECT DISTINCT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS STT,
am.ASSET_NAME AS ASS_NAME,
ISNULL(am.ASSET_CODE,am.ASS_CODE_TMP) AS ASSET_CODE,
ISNULL(PB.DEP_NAME,ISNULL(TT.DEP_NAME,K.DEP_NAME)) AS DEP_NAME,
ce.EMP_NAME, '1' QTY_ETM,
B.REPAIR_REASON AS REQ_CONTENT
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN TR_REQUEST_SHOP_DOC_DT B ON A.REQ_ID = B.REQ_DOC_ID
LEFT JOIN CM_DEPARTMENT K ON B.SUBBRANCH_OLD = K.DEP_ID
LEFT JOIN CM_DEPARTMENT TT ON B.FATHER_OLD = TT.DEP_ID
LEFT JOIN CM_DEPARTMENT PB ON B.DEP_OLD = PB.DEP_ID
LEFT JOIN ASS_MASTER am ON am.ASSET_ID = B.ASS_ID
LEFT JOIN CM_EMPLOYEE ce ON B.EMP_ID = ce.EMP_ID
WHERE A.REQ_ID = @REQ_ID
--TABLE 1 DVCM KHOI CNTT
IF(EXISTS(SELECT 1
FROM TR_REQUEST_SHOP_COSTCENTER A
LEFT JOIN CM_DEPARTMENT B ON A.COST_ID = B.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND B.DEP_CODE = '05J00'))
BEGIN
SELECT TOP 1 A.ASS_STATUS, A.RE_CONTENT, A.NOTES, E.TLFullName AS SURVEY_STAFF, ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT(D.APPROVE_DT,'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM TR_REQUEST_SHOP_COSTCENTER A
LEFT JOIN CM_EMPLOYEE_LOG B ON A.MAKER_ID = B.USER_DOMAIN
LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
LEFT JOIN CM_DEPARTMENT cd ON A.COST_ID = cd.DEP_ID
LEFT JOIN PL_PROCESS D ON A.REQ_ID = D.REQ_ID AND D.PROCESS_ID = 'S_GDDVDVCM' AND A.MAKER_ID = D.CHECKER_ID
WHERE A.REQ_ID = @REQ_ID AND cd.DEP_CODE = '05J00'
SET @SHOW_TABLE_DVCM_IT = '1'
END
ELSE
BEGIN
SELECT '' ASS_STATUS, '' RE_CONTENT,'' NOTES, ''SURVEY_STAFF, '' POS_NAME
END
--TABLE 2 DVCM KHAC
IF(EXISTS(SELECT 1
FROM TR_REQUEST_SHOP_COSTCENTER A
LEFT JOIN CM_DEPARTMENT B ON A.COST_ID = B.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND B.DEP_CODE <> '05J00'))
BEGIN
SELECT A.ASS_STATUS, A.RE_CONTENT, A.NOTES, E.TLFullName AS SURVEY_STAFF, ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'S_GDDVDVCM'
AND PP.CHECKER_ID = A.MAKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM TR_REQUEST_SHOP_COSTCENTER A
LEFT JOIN CM_EMPLOYEE_LOG B ON A.MAKER_ID = B.USER_DOMAIN
LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
LEFT JOIN CM_DEPARTMENT cd ON A.COST_ID = cd.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND cd.DEP_CODE <> '05J00'
ORDER BY A.COST_ID
SET @SHOW_TABLE_DVCM_KHAC = '1'
END
ELSE
BEGIN
SELECT '' ASS_STATUS, '' RE_CONTENT,'' NOTES, ''SURVEY_STAFF, '' POS_NAME
END
--TABLE 3 DANH GIA VA DE XUAT CUA P.QLTS
SELECT TOP 1 A.HO_NOTES, D.TLFullName, ISNULL(C.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.REQ_ID AND (PP.PROCESS_ID = 'S_DVCM' OR PP.PROCESS_ID = 'S_TBP_QLTS')
AND PP.CHECKER_ID = PL.CHECKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN PL_REQUEST_PROCESS PL ON A.REQ_ID = PL.REQ_ID AND PL.PROCESS_ID = 'QLTS_NL'
LEFT JOIN CM_EMPLOYEE_LOG C ON PL.CHECKER_ID = C.USER_DOMAIN
LEFT JOIN TL_USER D ON C.USER_DOMAIN = D.TLNANME
--LEFT JOIN CM_EMPLOYEE D ON C.EMP_CODE = D.EMP_CODE
WHERE A.REQ_ID = @REQ_ID
--table 4 phe duyet dvcm khoi cntt
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL)
BEGIN
IF (EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE = '05J00'))
BEGIN
SELECT TOP 1 ISNULL(A.NOTES,'') AS NOTES, E.TLFullName, ISNULL(D.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'DVCM_D'
AND PP.CHECKER_ID = A.CHECKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
LEFT JOIN CM_EMPLOYEE_LOG D ON A.CHECKER_ID = D.USER_DOMAIN
LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE = '05J00'
ORDER BY C.DEP_ID
END
ELSE
BEGIN
SELECT '' AS NOTES
END
END
ELSE
BEGIN
SELECT N'' NOTES
END
--table 5 PHÊ DUYỆT PHÒNG QLTS
IF(EXISTS(SELECT 1
FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_EMPLOYEE_LOG B ON A.CHECKER_ID = B.USER_DOMAIN
LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME
--LEFT JOIN CM_EMPLOYEE C ON B.EMP_CODE = C.EMP_CODE
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'QLTS_D'))
BEGIN
SELECT TOP 1 ISNULL(A.NOTES,'') AS NOTES, C.TLFullName, ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'QLTS_D'
AND PP.CHECKER_ID = A.CHECKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_EMPLOYEE_LOG B ON A.CHECKER_ID = B.USER_DOMAIN
LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME
--LEFT JOIN CM_EMPLOYEE C ON B.EMP_CODE = C.EMP_CODE
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'QLTS_D'
ORDER BY A.ID DESC
END
ELSE
BEGIN
SELECT N'' NOTES
END
--Phucvh table 6 USER TẠO DUYỆT
SELECT TOP 1 C.TLFullName AS USER_CREATE, CHAR(13) + ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP1.APPROVE_DT FROM PL_PROCESS PP1
WHERE PP1.REQ_ID = A.REQ_ID AND PP1.PROCESS_ID = 'S_DVKD'
AND PP1.CHECKER_ID = A.MAKER_ID
ORDER BY PP1.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME,
E.TLFullName AS USER_APPROVE, CHAR(13) + ISNULL(D.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP1.APPROVE_DT FROM PL_PROCESS PP1
WHERE PP1.REQ_ID = A.REQ_ID AND PP1.PROCESS_ID = 'DVKD_D'
ORDER BY PP1.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME_1
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN CM_EMPLOYEE_LOG B ON A.MAKER_ID = B.USER_DOMAIN --NGƯỜI TẠO
LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME --NGƯỜI TẠO
LEFT JOIN PL_REQUEST_PROCESS PP ON A.REQ_ID = PP.REQ_ID AND PP.PROCESS_ID = 'APPNEW'
LEFT JOIN CM_EMPLOYEE_LOG D ON PP.CHECKER_ID = D.USER_DOMAIN --NGƯỜI DUYỆT
LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME --NGƯỜI DUYỆT
WHERE A.REQ_ID = @REQ_ID
--PHUCVH TABLE 7 SỐ PYC
SELECT trsd.REQ_CODE FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.REQ_ID = @REQ_ID
--PHUCVH TABLE 8 NGÀY TDV DUYỆT
SELECT TOP 1 N'Ngày ' + CONVERT(VARCHAR(5),DAY(pp.APPROVE_DT)) +
N' tháng ' + CONVERT(VARCHAR(5),MONTH(pp.APPROVE_DT)) +
N' năm ' + CONVERT(VARCHAR(10),YEAR(pp.APPROVE_DT)) AS APPROVE_DT
FROM PL_REQUEST_PROCESS pp WHERE pp.REQ_ID = @REQ_ID AND pp.PROCESS_ID = 'APPNEW' ORDER BY pp.ID DESC
END
--TABLE 9 PHÊ DUYỆT DVCM KHÁC
IF(@SHOW_TABLE_DVCM_KHAC IS NOT NULL)
BEGIN
IF (EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE <> '05J00'))
BEGIN
SELECT ISNULL(A.NOTES,'') AS NOTES, E.TLFullName, ISNULL(D.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'DVCM_D'
AND PP.CHECKER_ID = A.CHECKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
LEFT JOIN CM_EMPLOYEE_LOG D ON A.CHECKER_ID = D.USER_DOMAIN
LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE <> '05J00'
ORDER BY C.DEP_ID
END
ELSE
BEGIN
SELECT '' AS NOTES
FROM TR_REQUEST_SHOP_COSTCENTER A
LEFT JOIN CM_DEPARTMENT C ON A.COST_ID = C.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND C.DEP_CODE <> '05J00'
END
END
ELSE
BEGIN
SELECT N'' NOTES
END
--TABLE 10 PHÊ DUYỆT TBP_QLTS
SELECT TOP 1 ISNULL(A.NOTES,'') AS HO_NOTES, C.TLFullName, ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'TBP_D'
AND PP.CHECKER_ID = A.CHECKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_EMPLOYEE_LOG B ON A.CHECKER_ID = B.USER_DOMAIN
LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME
--LEFT JOIN CM_EMPLOYEE C ON B.EMP_CODE = C.EMP_CODE
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'TBP_D'
ORDER BY A.ID DESC
--SHOW TABLE DVCM IT
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL)
BEGIN
SELECT N'DVCMIT' AS MERGE_REGION
SET @SHOW_TABLE_DVCM_IT = '1'
END
--SHOW TABLE DVCM KHÁC
IF(@SHOW_TABLE_DVCM_KHAC IS NOT NULL)
BEGIN
SELECT N'DVCMKHAC' AS MERGE_REGION
END
--SHOW TITLE ĐÁNH GIÁ CỦA ĐƠN VỊ CHUYÊN MÔN
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL OR @SHOW_TABLE_DVCM_KHAC IS NOT NULL)
BEGIN
SELECT N'TITLEDVCM' AS MERGE_REGION
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_COLLECT_MULTI_MASTER_Search]'
GO
ALTER PROCEDURE [dbo].[ASS_COLLECT_MULTI_MASTER_Search]
@p_COL_MULTI_MASTER_ID varchar(15) = NULL,
@p_BRANCH_ID varchar(15) = NULL,
@p_COLLECT_DT VARCHAR(20) = NULL,
@p_USER_COLLECT nvarchar(200) = NULL,
@p_USER_COLLECT_NAME nvarchar(200)=NULL,
@p_NOTES nvarchar(1000) = NULL,
@p_RECORD_STATUS varchar(1) = NULL,
@p_AUTH_STATUS varchar(1) = NULL,
@p_MAKER_ID varchar(100) = NULL,
@p_CREATE_DT VARCHAR(20) = NULL,
@p_CHECKER_ID varchar(100) = NULL,
@p_APPROVE_DT VARCHAR(20) = NULL,
@p_AUTH_STATUS_KT varchar(15) = NULL,
@p_CREATE_DT_KT varchar(100) = NULL,
@p_APPROVE_DT_KT VARCHAR(20) = NULL,
@p_MAKER_ID_KT varchar(100) = NULL,
@p_CHECKER_ID_KT varchar(100) = NULL,
@p_REPORT_STATUS varchar(15) = NULL,
@p_LEVEL VARCHAR(50) = 'UNIT',
@p_TOP INT = NULL,
@p_FromDate VARCHAR(20) = NULL,
@p_TODATE VARCHAR(20) = NULL,
@p_IS_UPDATE VARCHAR(1) = NULL,
@p_USER_LOGIN VARCHAR(15),-- 26022020 LUCTV TRUYEN XUONG USER LOGIN DE DO TIM MA PHONG BAN
@p_TYPE_SEARCH VARCHAR(10)= NULL, -- 26022020 LUCTV TRUYEN XUONG DAU HIEU DE PHAN BIET TIM KIEM O MAN HINH KE TOAN HAY MAN HINH HCQT
@p_BRANCH_ID_USE VARCHAR(20) = NULL, --Phucvh 08/12/22 Tìm theo đơn vị sử dụng HC
@p_DEPT_ID_USE VARCHAR(20) = NULL, --Phucvh 08/12/22 Tìm theo phòng ban sử dụng HC
@p_REQ_CODE VARCHAR(100) = NULL --Thêm trường tìm kiếm số PYC
AS
BEGIN -- PAGING
--Luctv Bo Sung Doan Code Doc Du Lieu Bo Qua Commit Transaction
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
----
set @p_RECORD_STATUS = '1'
----
DECLARE @tmp TABLE(BRANCH_ID VARCHAR(15))
INSERT INTO @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
IF(@p_TOP IS NULL OR @p_TOP = '' OR @p_TOP = 0)
begin
-- PAGING BEGIN
SELECT A.*,C.BRANCH_CODE, C.BRANCH_NAME, F.AUTH_STATUS_NAME, T1.TLFullName AS MAKER_NAME,T2.TLFullName AS MAKER_NAME_KT,T3.TLFullName APPROVE_NAME, T4.TLFullName APPROVE_NAME_KT,
ATKT.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_KT, C.BRANCH_CODE +' - '+ C.BRANCH_NAME AS FULL_BRANCH_NAME,
@p_USER_LOGIN AS USER_LOGIN,@p_TYPE_SEARCH AS TYPE_SEARCH, --- TRA VE THAM SO GAN VO CURRENT SEARCH TRANH GAY LOI O CAC MAN HINH
B.CONFIRM_DT CONFIRM_DT,B.MAKER_ID CONFIRM_USER,D.TLFullName CONFIRM_USER_NAME,SK.REQ_CODE
-- SELECT END
FROM ASS_COLLECT_MULTI_MASTER A
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_AUTH_STATUS F ON A.AUTH_STATUS = F.AUTH_STATUS
LEFT JOIN CM_AUTH_STATUS ATKT ON ATKT.AUTH_STATUS = A.AUTH_STATUS_KT
LEFT JOIN TL_USER T1 ON A.MAKER_ID = T1.TLNANME
LEFT JOIN TL_USER T2 ON A.MAKER_ID_KT = T2.TLNANME
LEFT JOIN TL_USER T3 ON A.CHECKER_ID = T3.TLNANME
LEFT JOIN TL_USER T4 ON A.CHECKER_ID_KT = T4.TLNANME
LEFT JOIN ASS_COLLECT_CONFIRM_MASTER B ON A.COL_MULTI_MASTER_ID = B.COL_MULTI_MASTER_ID
LEFT JOIN TL_USER D ON B.MAKER_ID = D.TLNANME
LEFT JOIN TR_REQUEST_SHOP_DOC SK ON SK.REQ_ID = A.REQ_ID
WHERE 1 = 1
AND (A.COL_MULTI_MASTER_ID LIKE '%' + @p_COL_MULTI_MASTER_ID + '%' OR @p_COL_MULTI_MASTER_ID IS NULL OR @p_COL_MULTI_MASTER_ID = '')
--AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
--AND (A.COLLECT_DT =CONVERT(DATETIME, @p_COLLECT_DT, 103) OR @p_COLLECT_DT IS NULL OR @p_COLLECT_DT = '')
--LUCTV 19092019 BO SUNG DIEU KIEN NEU KE TOAN DA CAP NHAT THI TIM KIEM THEO NGAY CAP NHAT
AND (A.USER_COLLECT LIKE '%' + @p_USER_COLLECT + '%' OR @p_USER_COLLECT IS NULL OR @p_USER_COLLECT = '')
AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '')
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
AND (A.CREATE_DT =CONVERT(DATETIME, @p_CREATE_DT, 103) OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
AND (A.APPROVE_DT =CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
AND (A.AUTH_STATUS_KT LIKE '%' + @p_AUTH_STATUS_KT + '%' OR @p_AUTH_STATUS_KT IS NULL OR @p_AUTH_STATUS_KT = '')
AND (A.CREATE_DT_KT =CONVERT(DATETIME, @p_CREATE_DT_KT, 103) OR @p_CREATE_DT_KT IS NULL OR @p_CREATE_DT_KT = '')
AND (A.APPROVE_DT_KT =CONVERT(DATETIME, @p_APPROVE_DT_KT, 103) OR @p_APPROVE_DT_KT IS NULL OR @p_APPROVE_DT_KT = '')
AND (A.MAKER_ID_KT LIKE '%' + @p_MAKER_ID_KT + '%' OR @p_MAKER_ID_KT IS NULL OR @p_MAKER_ID_KT = '')
AND (A.CHECKER_ID_KT LIKE '%' + @p_CHECKER_ID_KT + '%' OR @p_CHECKER_ID_KT IS NULL OR @p_CHECKER_ID_KT = '')
AND (A.REPORT_STATUS LIKE '%' + @p_REPORT_STATUS + '%' OR @p_REPORT_STATUS IS NULL OR @p_REPORT_STATUS = '')
AND A.RECORD_STATUS='1'
AND (A.REPORT_STATUS LIKE '%' + @p_REPORT_STATUS + '%' OR @p_REPORT_STATUS IS NULL OR @p_REPORT_STATUS = '')
--AND ((@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp))
-- OR ((@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_ID)
-- OR (@p_BRANCH_ID = '' OR @p_BRANCH_ID IS NULL)))
AND ((A.MAKER_ID_KT IS NOT NULL AND @p_IS_UPDATE = 'Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
OR ((A.MAKER_ID_KT IS NULL AND @p_IS_UPDATE = 'N')) OR @p_IS_UPDATE IS NULL OR @p_IS_UPDATE='')
-- TIM KIEM TU NGAY O HC
AND ((@p_TYPE_SEARCH = 'HC' AND (CONVERT(DATE,A.COLLECT_DT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR @p_TYPE_SEARCH = 'KT' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
-- TIM KIEM DEN NGAY O HC
AND ((@p_TYPE_SEARCH = 'HC' AND (CONVERT(DATE,A.COLLECT_DT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = ''))
OR @p_TYPE_SEARCH = 'KT' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
-- TIM KIEM TU NGAY O KT
AND ((@p_TYPE_SEARCH = 'KT' AND (((A.MAKER_ID_KT IS NULL OR A.MAKER_ID_KT = '')
AND (CONVERT(DATE,A.APPROVE_DT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR ((A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT <> '')
AND ((@p_AUTH_STATUS_KT = 'A' AND (CONVERT(DATE,A.APPROVE_DT_KT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR (@p_AUTH_STATUS_KT = 'U' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR (@p_AUTH_STATUS_KT = 'E' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR ((@p_AUTH_STATUS_KT = '' OR @p_AUTH_STATUS_KT IS NULL) AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = '')))
AND B.CONFIRM_STATUS = 'Y')))
OR @p_TYPE_SEARCH = 'HC' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
-- TIM KIEM DEN NGAY O KT
AND ((@p_TYPE_SEARCH = 'KT' AND (((A.MAKER_ID_KT IS NULL OR A.MAKER_ID_KT = '')
AND (CONVERT(DATE,A.APPROVE_DT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = ''))
OR ((A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT <> '')
AND ((@p_AUTH_STATUS_KT = 'A' AND (CONVERT(DATE,A.APPROVE_DT_KT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = ''))
OR (@p_AUTH_STATUS_KT = 'U' AND (CONVERT(DATE,A.CREATE_DT_KT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = ''))
OR (@p_AUTH_STATUS_KT = 'E' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR ((@p_AUTH_STATUS_KT = '' OR @p_AUTH_STATUS_KT IS NULL) AND (CONVERT(DATE,A.CREATE_DT_KT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = '')))
AND B.CONFIRM_STATUS = 'Y')))
OR @p_TYPE_SEARCH = 'HC' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
--AND ( ( @p_TYPE_SEARCH = 'KT' AND EXISTS (SELECT * FROM ASS_COLLECT_CONFIRM_MASTER WHERE A.COL_MULTI_MASTER_ID = ASS_COLLECT_CONFIRM_MASTER.COL_MULTI_MASTER_ID))
-- OR (@p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '' OR @p_TYPE_SEARCH = 'HC'))
-- NEW TRANG THAI PHIEU XUAT LA LUU NHAP HOAC TU CHOI THI CHI NGUOI TAO CO THE TIM THAY
AND ((A.AUTH_STATUS IN ('E','R') AND A.MAKER_ID = @p_USER_LOGIN)
OR (EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,TBP_QLTS,KSV_QLTS',A.BRANCH_ID,A.DEPT_CREATE) US
WHERE US.TLNANME = @p_USER_LOGIN))
OR A.AUTH_STATUS NOT IN ('E','R') OR @p_USER_LOGIN IS NULL OR @p_USER_LOGIN = '')
-- 11-03-2022 HUYHT BO SUNG DIEU KIEN TIM KIEM PHIEU XUAT THEO QUYEN KIEM NHIEM
AND ((@p_TYPE_SEARCH='HC'
AND (EXISTS(SELECT * FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,TBP_QLTS,KSV_QLTS',A.BRANCH_ID,A.DEPT_CREATE) US
WHERE US.TLNANME = @p_USER_LOGIN))
OR A.MAKER_ID = @p_USER_LOGIN)
OR (@p_TYPE_SEARCH='KT' AND @p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp) AND B.CONFIRM_STATUS = 'Y')
OR (@p_TYPE_SEARCH='KT' AND @p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_ID AND B.CONFIRM_STATUS = 'Y')
OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '' --FIX BYID
-- OR (@p_TYPE_SEARCH='KT' AND @p_LEVEL = 'UNIT' AND B.CONFIRM_STATUS = 'Y' AND EXISTS(SELECT ACL.COLLECT_MULTI_ID FROM ASS_COLLECT_MULTI_DT ACL
-- WHERE ACL.COL_MULTI_MASTER_ID = A.COL_MULTI_MASTER_ID AND ACL.BRANCH_ID = @p_BRANCH_ID)) -- GDV TÌM THẤY PHIẾU CỦA ĐV MÌNH PHIẾU ĐỂ HẠCH TOÁN
-- OR (@p_TYPE_SEARCH='KT' AND @p_LEVEL = 'ALL' AND B.CONFIRM_STATUS = 'Y' AND EXISTS(SELECT ACL.COLLECT_MULTI_ID FROM ASS_COLLECT_MULTI_DT ACL
-- WHERE ACL.COL_MULTI_MASTER_ID = A.COL_MULTI_MASTER_ID AND ACL.BRANCH_ID IN (SELECT BRANCH_ID from @tmp))) -- GDV TÌM THẤY PHIẾU CỦA ĐV MÌNH PHIẾU ĐỂ HẠCH TOÁN
-- OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH ='')
)
--Phucvh 08/12/22 Tìm theo đơn vị sử dụng HC
AND (EXISTS(SELECT 1 FROM ASS_COLLECT_MULTI_DT acmd WHERE acmd.BRANCH_ID = @p_BRANCH_ID_USE AND acmd.COL_MULTI_MASTER_ID = A.COL_MULTI_MASTER_ID) OR @p_BRANCH_ID_USE IS NULL OR @p_BRANCH_ID_USE = '')
--Phucvh 08/12/22 Tìm theo phòng ban sử dụng HC
AND (EXISTS(SELECT 1 FROM ASS_COLLECT_MULTI_DT acmd WHERE acmd.DEPT_ID_USE = @p_DEPT_ID_USE AND acmd.COL_MULTI_MASTER_ID = A.COL_MULTI_MASTER_ID) OR @p_DEPT_ID_USE IS NULL OR @p_DEPT_ID_USE = '')
AND(SK.REQ_CODE like N'%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
ORDER BY A.CREATE_DT DESC
-- PAGING END
end
ELSE
BEGIN
-- PAGING BEGIN
SELECT TOP(CONVERT(INT,@p_TOP))A.*,C.BRANCH_CODE, C.BRANCH_NAME, F.AUTH_STATUS_NAME,
ATKT.AUTH_STATUS_NAME AS AUTH_STATUS_NAME_KT,T1.TLFullName AS MAKER_NAME,T2.TLFullName AS MAKER_NAME_KT,T3.TLFullName APPROVE_NAME, T4.TLFullName APPROVE_NAME_KT,
C.BRANCH_CODE +' - '+ C.BRANCH_NAME AS FULL_BRANCH_NAME,
@p_USER_LOGIN AS USER_LOGIN,@p_TYPE_SEARCH AS TYPE_SEARCH, --- TRA VE THAM SO GAN VO CURRENT SEARCH TRANH GAY LOI O CAC MAN HINH
B.CONFIRM_DT CONFIRM_DT,B.MAKER_ID CONFIRM_USER,D.TLFullName CONFIRM_USER_NAME,SK.REQ_CODE
-- SELECT END
FROM ASS_COLLECT_MULTI_MASTER A
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_AUTH_STATUS F ON A.AUTH_STATUS = F.AUTH_STATUS
LEFT JOIN CM_AUTH_STATUS ATKT ON ATKT.AUTH_STATUS = A.AUTH_STATUS_KT
LEFT JOIN TL_USER T1 ON A.MAKER_ID = T1.TLNANME
LEFT JOIN TL_USER T2 ON A.MAKER_ID_KT = T2.TLNANME
LEFT JOIN TL_USER T3 ON A.CHECKER_ID = T3.TLNANME
LEFT JOIN TL_USER T4 ON A.CHECKER_ID_KT = T4.TLNANME
LEFT JOIN ASS_COLLECT_CONFIRM_MASTER B ON A.COL_MULTI_MASTER_ID = B.COL_MULTI_MASTER_ID
LEFT JOIN TL_USER D ON B.MAKER_ID = D.TLNANME
LEFT JOIN TR_REQUEST_SHOP_DOC SK ON SK.REQ_ID = A.REQ_ID
WHERE 1 = 1
AND (A.COL_MULTI_MASTER_ID LIKE '%' + @p_COL_MULTI_MASTER_ID + '%' OR @p_COL_MULTI_MASTER_ID IS NULL OR @p_COL_MULTI_MASTER_ID = '')
--AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
-- AND (A.COLLECT_DT =CONVERT(DATETIME, @p_COLLECT_DT, 103) OR @p_COLLECT_DT IS NULL OR @p_COLLECT_DT = '')
--LUCTV 19092019 BO SUNG DIEU KIEN NEU KE TOAN DA CAP NHAT THI TIM KIEM THEO NGAY CAP NHAT
AND (A.USER_COLLECT LIKE '%' + @p_USER_COLLECT + '%' OR @p_USER_COLLECT IS NULL OR @p_USER_COLLECT = '')
AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '')
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
AND (A.CREATE_DT =CONVERT(DATETIME, @p_CREATE_DT, 103) OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
AND (A.APPROVE_DT =CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
AND (A.AUTH_STATUS_KT LIKE '%' + @p_AUTH_STATUS_KT + '%' OR @p_AUTH_STATUS_KT IS NULL OR @p_AUTH_STATUS_KT = '')
AND (A.CREATE_DT_KT =CONVERT(DATETIME, @p_CREATE_DT_KT, 103) OR @p_CREATE_DT_KT IS NULL OR @p_CREATE_DT_KT = '')
AND (A.APPROVE_DT_KT =CONVERT(DATETIME, @p_APPROVE_DT_KT, 103) OR @p_APPROVE_DT_KT IS NULL OR @p_APPROVE_DT_KT = '')
AND (A.MAKER_ID_KT LIKE '%' + @p_MAKER_ID_KT + '%' OR @p_MAKER_ID_KT IS NULL OR @p_MAKER_ID_KT = '')
AND (A.CHECKER_ID_KT LIKE '%' + @p_CHECKER_ID_KT + '%' OR @p_CHECKER_ID_KT IS NULL OR @p_CHECKER_ID_KT = '')
AND (A.REPORT_STATUS LIKE '%' + @p_REPORT_STATUS + '%' OR @p_REPORT_STATUS IS NULL OR @p_REPORT_STATUS = '')
AND A.RECORD_STATUS='1'
AND (A.REPORT_STATUS LIKE '%' + @p_REPORT_STATUS + '%' OR @p_REPORT_STATUS IS NULL OR @p_REPORT_STATUS = '')
--AND ((@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp))
--OR ((@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_ID)
--OR (@p_BRANCH_ID = '' OR @p_BRANCH_ID IS NULL)))
AND ((A.MAKER_ID_KT IS NOT NULL AND @p_IS_UPDATE = 'Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
OR ((A.MAKER_ID_KT IS NULL AND @p_IS_UPDATE = 'N')) OR @p_IS_UPDATE IS NULL OR @p_IS_UPDATE='')
-- TIM KIEM TU NGAY O HC
AND ((@p_TYPE_SEARCH = 'HC' AND (CONVERT(DATE,A.COLLECT_DT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR @p_TYPE_SEARCH = 'KT' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
-- TIM KIEM DEN NGAY O HC
AND ((@p_TYPE_SEARCH = 'HC' AND (CONVERT(DATE,A.COLLECT_DT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = ''))
OR @p_TYPE_SEARCH = 'KT' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
-- TIM KIEM TU NGAY O KT
AND ((@p_TYPE_SEARCH = 'KT' AND (((A.MAKER_ID_KT IS NULL OR A.MAKER_ID_KT = '')
AND (CONVERT(DATE,A.APPROVE_DT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR ((A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT <> '')
AND ((@p_AUTH_STATUS_KT = 'A' AND (CONVERT(DATE,A.APPROVE_DT_KT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR (@p_AUTH_STATUS_KT = 'U' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR (@p_AUTH_STATUS_KT = 'E' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR ((@p_AUTH_STATUS_KT = '' OR @p_AUTH_STATUS_KT IS NULL) AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = '')))
AND B.CONFIRM_STATUS = 'Y')))
OR @p_TYPE_SEARCH = 'HC' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
-- TIM KIEM DEN NGAY O KT
AND ((@p_TYPE_SEARCH = 'KT' AND (((A.MAKER_ID_KT IS NULL OR A.MAKER_ID_KT = '')
AND (CONVERT(DATE,A.APPROVE_DT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = ''))
OR ((A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT <> '')
AND ((@p_AUTH_STATUS_KT = 'A' AND (CONVERT(DATE,A.APPROVE_DT_KT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = ''))
OR (@p_AUTH_STATUS_KT = 'U' AND (CONVERT(DATE,A.CREATE_DT_KT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = ''))
OR (@p_AUTH_STATUS_KT = 'E' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR ((@p_AUTH_STATUS_KT = '' OR @p_AUTH_STATUS_KT IS NULL) AND (CONVERT(DATE,A.CREATE_DT_KT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = '')))
AND B.CONFIRM_STATUS = 'Y')))
OR @p_TYPE_SEARCH = 'HC' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
--AND ( ( @p_TYPE_SEARCH = 'KT' AND EXISTS (SELECT * FROM ASS_COLLECT_CONFIRM_MASTER WHERE A.COL_MULTI_MASTER_ID = ASS_COLLECT_CONFIRM_MASTER.COL_MULTI_MASTER_ID))
-- OR (@p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '' OR @p_TYPE_SEARCH = 'HC'))
-- NEW TRANG THAI PHIEU XUAT LA LUU NHAP HOAC TU CHOI THI CHI NGUOI TAO CO THE TIM THAY
AND ((A.AUTH_STATUS IN ('E','R') AND A.MAKER_ID = @p_USER_LOGIN)
OR (EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,TBP_QLTS,KSV_QLTS',A.BRANCH_ID,A.DEPT_CREATE) US
WHERE US.TLNANME = @p_USER_LOGIN))
OR A.AUTH_STATUS NOT IN ('E','R') OR @p_USER_LOGIN IS NULL OR @p_USER_LOGIN = '')
-- 11-03-2022 HUYHT BO SUNG DIEU KIEN TIM KIEM PHIEU XUAT THEO QUYEN KIEM NHIEM
AND ((@p_TYPE_SEARCH='HC'
AND (EXISTS(SELECT * FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,TBP_QLTS,KSV_QLTS',A.BRANCH_ID,A.DEPT_CREATE) US
WHERE US.TLNANME = @p_USER_LOGIN))
OR A.MAKER_ID = @p_USER_LOGIN)
OR (@p_TYPE_SEARCH='KT' AND @p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp) AND B.CONFIRM_STATUS = 'Y')
OR (@p_TYPE_SEARCH='KT' AND @p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_ID AND B.CONFIRM_STATUS = 'Y')
OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '' --FIX BYID
-- OR (@p_TYPE_SEARCH='KT' AND @p_LEVEL = 'UNIT' AND B.CONFIRM_STATUS = 'Y' AND EXISTS(SELECT ACL.COLLECT_MULTI_ID FROM ASS_COLLECT_MULTI_DT ACL
-- WHERE ACL.COL_MULTI_MASTER_ID = A.COL_MULTI_MASTER_ID AND ACL.BRANCH_ID = @p_BRANCH_ID)) -- GDV TÌM THẤY PHIẾU CỦA ĐV MÌNH PHIẾU ĐỂ HẠCH TOÁN
-- OR (@p_TYPE_SEARCH='KT' AND @p_LEVEL = 'ALL' AND B.CONFIRM_STATUS = 'Y' AND EXISTS(SELECT ACL.COLLECT_MULTI_ID FROM ASS_COLLECT_MULTI_DT ACL
-- WHERE ACL.COL_MULTI_MASTER_ID = A.COL_MULTI_MASTER_ID AND ACL.BRANCH_ID IN (SELECT BRANCH_ID from @tmp))) -- GDV TÌM THẤY PHIẾU CỦA ĐV MÌNH PHIẾU ĐỂ HẠCH TOÁN
-- OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH ='')
)
--Phucvh 08/12/22 Tìm theo đơn vị sử dụng HC
AND (EXISTS(SELECT 1 FROM ASS_COLLECT_MULTI_DT acmd WHERE acmd.BRANCH_ID = @p_BRANCH_ID_USE AND acmd.COL_MULTI_MASTER_ID = A.COL_MULTI_MASTER_ID) OR @p_BRANCH_ID_USE IS NULL OR @p_BRANCH_ID_USE = '')
--Phucvh 08/12/22 Tìm theo phòng ban sử dụng HC
AND (EXISTS(SELECT 1 FROM ASS_COLLECT_MULTI_DT acmd WHERE acmd.DEPT_ID_USE = @p_DEPT_ID_USE AND acmd.COL_MULTI_MASTER_ID = A.COL_MULTI_MASTER_ID) OR @p_DEPT_ID_USE IS NULL OR @p_DEPT_ID_USE = '')
AND(SK.REQ_CODE like N'%' + @p_REQ_CODE + '%' OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
ORDER BY A.CREATE_DT DESC
-- PAGING END
END
END -- PAGING
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[rpt_PYC_THUHOI]'
GO
ALTER PROC [dbo].[rpt_PYC_THUHOI]
@REQ_ID VARCHAR(15) = NULL
AS
BEGIN
DECLARE
@SHOW_TABLE_DVCM_KHAC VARCHAR(1) = NULL,@SHOW_TABLE_DVCM_IT VARCHAR(1) = NULL
--TABLE 0
SELECT DISTINCT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS STT,
am.ASSET_NAME AS ASS_NAME,
ISNULL(am.ASSET_CODE,am.ASS_CODE_TMP) AS ASSET_CODE,
ISNULL(PB.DEP_NAME,ISNULL(TT.DEP_NAME,K.DEP_NAME)) AS DEP_NAME,
ce.EMP_NAME, '1' QTY_ETM,
CA.CONTENT AS REQ_CONTENT
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN TR_REQUEST_DOC_ASSET_DT B ON A.REQ_ID = B.REQ_DOC_ID
LEFT JOIN CM_ALLCODE CA ON B.REQ_ASSET_REASON = CA.CDVAL AND CA.CDNAME = 'REASON_ASS_REQ' AND CA.CDTYPE = 'REQ_ASSET'
LEFT JOIN CM_DEPARTMENT K ON B.SUBBRANCH_OLD = K.DEP_ID
LEFT JOIN CM_DEPARTMENT TT ON B.FATHER_OLD = TT.DEP_ID
LEFT JOIN CM_DEPARTMENT PB ON B.DEP_OLD = PB.DEP_ID
LEFT JOIN ASS_MASTER am ON am.ASSET_ID = B.ASSET_ID
LEFT JOIN CM_EMPLOYEE ce ON B.EMP_OLD = ce.EMP_ID
WHERE A.REQ_ID = @REQ_ID
--TABLE 1 DVCM KHOI CNTT
IF(EXISTS(SELECT 1
FROM TR_REQUEST_SHOP_COSTCENTER A
LEFT JOIN CM_DEPARTMENT B ON A.COST_ID = B.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND B.DEP_CODE = '05J00'))
BEGIN
SELECT DISTINCT A.ASS_STATUS, A.RE_CONTENT, A.NOTES, E.TLFullName AS SURVEY_STAFF, ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT(D.APPROVE_DT,'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM TR_REQUEST_SHOP_COSTCENTER A
LEFT JOIN CM_EMPLOYEE_LOG B ON A.MAKER_ID = B.USER_DOMAIN
LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
LEFT JOIN CM_DEPARTMENT cd ON A.COST_ID = cd.DEP_ID
LEFT JOIN PL_PROCESS D ON A.REQ_ID = D.REQ_ID AND D.PROCESS_ID = 'S_GDDVDVCM' AND A.MAKER_ID = D.CHECKER_ID
WHERE A.REQ_ID = @REQ_ID AND cd.DEP_CODE = '05J00'
SET @SHOW_TABLE_DVCM_IT = '1'
END
ELSE
BEGIN
SELECT '' ASS_STATUS, '' RE_CONTENT,'' NOTES, ''SURVEY_STAFF, '' POS_NAME
END
--TABLE 2 DVCM KHAC
IF(EXISTS(SELECT 1
FROM TR_REQUEST_SHOP_COSTCENTER A
LEFT JOIN CM_DEPARTMENT B ON A.COST_ID = B.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND B.DEP_CODE <> '05J00'))
BEGIN
SELECT A.ASS_STATUS, A.RE_CONTENT, A.NOTES, E.TLFullName AS SURVEY_STAFF, ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'S_GDDVDVCM'
AND PP.CHECKER_ID = A.MAKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM TR_REQUEST_SHOP_COSTCENTER A
LEFT JOIN CM_EMPLOYEE_LOG B ON A.MAKER_ID = B.USER_DOMAIN
LEFT JOIN TL_USER E ON A.MAKER_ID = E.TLNANME
LEFT JOIN CM_DEPARTMENT cd ON A.COST_ID = cd.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND cd.DEP_CODE <> '05J00'
ORDER BY A.COST_ID
SET @SHOW_TABLE_DVCM_KHAC = '1'
END
ELSE
BEGIN
SELECT '' ASS_STATUS, '' RE_CONTENT,'' NOTES, ''SURVEY_STAFF, '' POS_NAME
END
--TABLE 3 DANH GIA VA DE XUAT CUA P.QLTS
SELECT TOP 1 A.HO_NOTES, D.TLFullName, ISNULL(C.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.REQ_ID AND (PP.PROCESS_ID = 'S_DVCM' OR PP.PROCESS_ID = 'S_TBP_QLTS')
AND PP.CHECKER_ID = PL.CHECKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN PL_REQUEST_PROCESS PL ON A.REQ_ID = PL.REQ_ID AND PL.PROCESS_ID = 'QLTS_N'
LEFT JOIN CM_EMPLOYEE_LOG C ON PL.CHECKER_ID = C.USER_DOMAIN
LEFT JOIN TL_USER D ON C.USER_DOMAIN = D.TLNANME
WHERE A.REQ_ID = @REQ_ID
--TABLE 4 PHE DUYET DVCM KHOI CNTT
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL)
BEGIN
IF (EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE = '05J00'))
BEGIN
SELECT TOP 1 ISNULL(A.NOTES,'') AS NOTES, E.TLFullName, ISNULL(D.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'DVCM_D'
AND PP.CHECKER_ID = A.CHECKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
LEFT JOIN CM_EMPLOYEE_LOG D ON A.CHECKER_ID = D.USER_DOMAIN
LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE = '05J00'
ORDER BY C.DEP_ID
END
ELSE
BEGIN
SELECT '' AS NOTES
END
END
ELSE
BEGIN
SELECT N'' NOTES
END
--table 5 PHÊ DUYỆT PHÒNG QLTS
IF(EXISTS(SELECT 1
FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_EMPLOYEE_LOG B ON A.CHECKER_ID = B.USER_DOMAIN
LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'QLTS_D'))
BEGIN
SELECT TOP 1 ISNULL(A.NOTES,'') AS NOTES, C.TLFullName, ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'QLTS_D'
AND PP.CHECKER_ID = A.CHECKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_EMPLOYEE_LOG B ON A.CHECKER_ID = B.USER_DOMAIN
LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'QLTS_D'
END
ELSE
BEGIN
SELECT N'' NOTES
END
--Phucvh table 6 USER TẠO DUYỆT
SELECT TOP 1 C.TLFullName AS USER_CREATE, CHAR(13) + ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP1.APPROVE_DT FROM PL_PROCESS PP1
WHERE PP1.REQ_ID = A.REQ_ID AND PP1.PROCESS_ID = 'S_DVKD'
AND PP1.CHECKER_ID = A.MAKER_ID
ORDER BY PP1.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME,
E.TLFullName AS USER_APPROVE, CHAR(13) + ISNULL(D.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP1.APPROVE_DT FROM PL_PROCESS PP1
WHERE PP1.REQ_ID = A.REQ_ID AND PP1.PROCESS_ID = 'DVKD_D'
ORDER BY PP1.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME_1
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN CM_EMPLOYEE_LOG B ON A.MAKER_ID = B.USER_DOMAIN --NGƯỜI TẠO
LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME --NGƯỜI TẠO
LEFT JOIN PL_REQUEST_PROCESS PP ON A.REQ_ID = PP.REQ_ID AND PP.PROCESS_ID = 'APPNEW'
LEFT JOIN CM_EMPLOYEE_LOG D ON PP.CHECKER_ID = D.USER_DOMAIN --NGƯỜI DUYỆT
LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME --NGƯỜI DUYỆT
WHERE A.REQ_ID = @REQ_ID
ORDER BY PP.ID DESC
--PHUCVH TABLE 7 SỐ PYC
SELECT trsd.REQ_CODE FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.REQ_ID = @REQ_ID
--PHUCVH TABLE 8 NGÀY TDV DUYỆT
SELECT TOP 1 N'Ngày ' + CONVERT(VARCHAR(5),DAY(pp.APPROVE_DT)) +
N' tháng ' + CONVERT(VARCHAR(5),MONTH(pp.APPROVE_DT)) +
N' năm ' + CONVERT(VARCHAR(10),YEAR(pp.APPROVE_DT)) AS APPROVE_DT
FROM PL_REQUEST_PROCESS pp WHERE pp.REQ_ID = @REQ_ID AND pp.PROCESS_ID = 'APPNEW' ORDER BY pp.ID DESC
END
--TABLE 9 PHÊ DUYỆT DVCM KHÁC
IF(@SHOW_TABLE_DVCM_KHAC IS NOT NULL)
BEGIN
IF (EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE <> '05J00'))
BEGIN
SELECT ISNULL(A.NOTES,'') AS NOTES, E.TLFullName, ISNULL(D.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'DVCM_D'
AND PP.CHECKER_ID = A.CHECKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
LEFT JOIN CM_EMPLOYEE_LOG D ON A.CHECKER_ID = D.USER_DOMAIN
LEFT JOIN TL_USER E ON D.USER_DOMAIN = E.TLNANME
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'DVCM_D' AND C.DEP_CODE <> '05J00'
ORDER BY C.DEP_ID
END
ELSE
BEGIN
SELECT '' AS NOTES
FROM TR_REQUEST_SHOP_COSTCENTER A
LEFT JOIN CM_DEPARTMENT C ON A.COST_ID = C.DEP_ID
WHERE A.REQ_ID = @REQ_ID AND C.DEP_CODE <> '05J00'
END
END
ELSE
BEGIN
SELECT N'' NOTES
END
--TABLE 10 PHÊ DUYỆT TBP_QLTS
SELECT TOP 1 ISNULL(A.NOTES,'') AS HO_NOTES, C.TLFullName, ISNULL(B.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'TBP_D'
AND PP.CHECKER_ID = A.CHECKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME
FROM PL_REQUEST_PROCESS A
LEFT JOIN CM_EMPLOYEE_LOG B ON A.CHECKER_ID = B.USER_DOMAIN
LEFT JOIN TL_USER C ON B.USER_DOMAIN = C.TLNANME
WHERE A.REQ_ID = @REQ_ID AND A.PROCESS_ID = 'TBP_D'
--SHOW TABLE DVCM IT
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL)
BEGIN
SELECT N'DVCMIT' AS MERGE_REGION
END
--SHOW TABLE DVCM KHÁC
IF(@SHOW_TABLE_DVCM_KHAC IS NOT NULL)
BEGIN
SELECT N'DVCMKHAC' AS MERGE_REGION
END
--SHOW TITLE ĐÁNH GIÁ CỦA ĐƠN VỊ CHUYÊN MÔN
IF(@SHOW_TABLE_DVCM_IT IS NOT NULL OR @SHOW_TABLE_DVCM_KHAC IS NOT NULL)
BEGIN
SELECT N'TITLEDVCM' AS MERGE_REGION
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_COL_MULTI_HANDOVER_RECORD]'
GO
ALTER PROC [dbo].[ASS_COL_MULTI_HANDOVER_RECORD]
@COL_MULTI_MASTER_ID VARCHAR(15) = NULL
AS
BEGIN
--Table 0 Nội dung && BRANCH
SELECT TOP 1 B.BRANCH_NAME + ISNULL(' - ' + C.DEP_NAME,'') AS BRANCH_NAME,
D.CONTENT AS TITLE
,(N'Hôm nay, ngày ' + CONVERT(VARCHAR(5),DAY(GETDATE())) + N' tháng ' + CONVERT(VARCHAR(5),MONTH(GETDATE())) + N' năm ' + CONVERT(VARCHAR(5),YEAR(GETDATE())) + N' tại ') AS DD_MM_YY
FROM ASS_COLLECT_MULTI_DT A
LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
LEFT JOIN CM_DEPARTMENT C ON A.DEPT_ID_USE = C.DEP_ID
LEFT JOIN ASS_COLLECT_MULTI_MASTER D ON A.COL_MULTI_MASTER_ID = D.COL_MULTI_MASTER_ID
WHERE A.COL_MULTI_MASTER_ID = @COL_MULTI_MASTER_ID
--Table 1 Bên giao
--Fix tạm UAT
IF(EXISTS(SELECT TOP 1 B.TLFullName, B.ADDRESS, B.PHONE, C.POS_NAME
FROM ASS_COLLECT_CONFIRM_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_EMPLOYEE_LOG C ON B.TLNANME = C.USER_DOMAIN
WHERE A.COL_MULTI_MASTER_ID = @COL_MULTI_MASTER_ID))
BEGIN
-- IF(EXISTS(SELECT 1 FROM ASS_COLLECT_MULTI_MASTER acmm WHERE acmm.COL_MULTI_MASTER_ID = @COL_MULTI_MASTER_ID AND acmm.REQ_ID IS NOT NULL AND acmm.REQ_ID <> ''))
-- BEGIN
-- SELECT TOP 1 C.TLFullName, C.ADDRESS, C.PHONE, D.POS_NAME, ISNULL(E.BRANCH_NAME,'') + ISNULL(' - ' + G.DEP_NAME,'') AS BRANCH_NAME
-- FROM ASS_COLLECT_MULTI_MASTER A
-- LEFT JOIN TR_REQUEST_SHOP_DOC B ON A.REQ_ID = B.REQ_ID
-- LEFT JOIN TL_USER C ON B.MAKER_ID = C.TLNANME
-- LEFT JOIN CM_EMPLOYEE_LOG D ON B.MAKER_ID = D.USER_DOMAIN
-- LEFT JOIN CM_BRANCH E ON C.TLSUBBRID = E.BRANCH_ID
-- LEFT JOIN CM_DEPARTMENT G ON C.DEP_ID = G.DEP_ID
-- WHERE A.COL_MULTI_MASTER_ID = @COL_MULTI_MASTER_ID
-- END
-- ELSE
-- BEGIN
SELECT TOP 1 B.TLFullName, B.ADDRESS, B.PHONE, C.POS_NAME, ISNULL(E.BRANCH_NAME,'') + ISNULL(' - ' + G.DEP_NAME,'') AS BRANCH_NAME
FROM ASS_COLLECT_CONFIRM_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_EMPLOYEE_LOG C ON B.TLNANME = C.USER_DOMAIN
LEFT JOIN CM_BRANCH E ON B.TLSUBBRID = E.BRANCH_ID
LEFT JOIN CM_DEPARTMENT G ON B.DEP_ID = G.DEP_ID
WHERE A.COL_MULTI_MASTER_ID = @COL_MULTI_MASTER_ID
-- END
END
ELSE
BEGIN
SELECT '' TLFullName, '' ADDRESS, '' PHONE, '' POS_NAME
END
--Table 2 Bên nhận
SELECT TOP 1 B.TLFullName, B.ADDRESS, B.PHONE, C.POS_NAME, ISNULL(D.BRANCH_NAME,'') + ISNULL(' - ' + E.DEP_NAME,'') AS BRANCH_NAME
FROM ASS_COLLECT_MULTI_MASTER A
LEFT JOIN TL_USER B ON A.CHECKER_ID = B.TLNANME
LEFT JOIN CM_EMPLOYEE_LOG C ON B.TLNANME = C.USER_DOMAIN
LEFT JOIN CM_BRANCH D ON A.BRANCH_ID = D.BRANCH_ID
LEFT JOIN CM_DEPARTMENT E ON A.DEPT_CREATE = E.DEP_ID
WHERE A.COL_MULTI_MASTER_ID = @COL_MULTI_MASTER_ID
--TABLE 3 DANH SÁCH TÀI SẢN
SELECT CASE
WHEN B.ASSET_CODE IS NOT NULL AND B.ASSET_CODE <> '' THEN B.ASSET_CODE
ELSE B.ASS_CODE_TMP
END AS ASSET_CODE, B.ASSET_NAME, D.UNIT_NAME, 1 AS QUANTITY, E.STATUS_NAME, B.ASSET_SERIAL_NO AS SERIAL, REQ.REQ_CODE + ISNULL(CHAR(10) + CHAR(10) + B.PL,'') AS REQ_CODE,B.NOTES AS QUY_CACH, A.NOTES,
--ROW_NUMBER() OVER (PARTITION BY B.ASSET_NAME ORDER BY B.ASSET_NAME) AS STT,
ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS STT,
CA.CONTENT AS COLLECT_REASON
FROM ASS_COLLECT_MULTI_DT A
LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID
LEFT JOIN ASS_GROUP C ON B.GROUP_ID = C.GROUP_ID
LEFT JOIN CM_UNIT D ON C.UNIT = D.UNIT_ID
LEFT JOIN ASS_STATUS E ON B.ASS_STATUS = E.STATUS_ID
LEFT JOIN ASS_COLLECT_MULTI_MASTER F ON A.COL_MULTI_MASTER_ID = F.COL_MULTI_MASTER_ID
LEFT JOIN TR_REQUEST_SHOP_DOC REQ ON F.REQ_ID = REQ.REQ_ID
LEFT JOIN CM_ALLCODE CA ON A.PURPOSE_ID = CA.CDVAL AND CA.CDNAME = 'REASON_ASS_REQ' AND CA.CDTYPE = 'REQ_ASSET'
WHERE A.COL_MULTI_MASTER_ID = @COL_MULTI_MASTER_ID
--TABLE 4 CHỮ KÝ
--SELECT ''
SELECT TOP 1 E.TLFullName AS MAKER_NAME, --BÊN GIAO
ISNULL(C.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.COL_MULTI_MASTER_ID AND PP.PROCESS_ID = 'CONFIRM'
AND PP.CHECKER_ID = B.MAKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME,--BÊN GIAO
D.TLFullName AS CHECKER_NAME, --BÊN NHẬN
--D.TLFullName AS INTERMEDIATE_UNIT_NAME, --ĐƠN VỊ TRUNG GIAN
--F.POS_NAME AS POS_NAME_1, --ĐƠN VỊ TRUNG GIAN
ISNULL(F.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = A.COL_MULTI_MASTER_ID AND PP.PROCESS_ID = 'APPROVE'
AND PP.CHECKER_ID = A.CHECKER_ID
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME_2 --BÊN NHẬN
FROM ASS_COLLECT_MULTI_MASTER A
LEFT JOIN ASS_COLLECT_CONFIRM_MASTER B ON A.COL_MULTI_MASTER_ID = B.COL_MULTI_MASTER_ID
LEFT JOIN TL_USER E ON B.MAKER_ID = E.TLNANME --BÊN GIAO
LEFT JOIN CM_EMPLOYEE_LOG C ON B.MAKER_ID = C.USER_DOMAIN --BÊN GIAO
LEFT JOIN TL_USER D ON A.CHECKER_ID = D.TLNANME --BÊN NHẬN + ĐƠN VỊ TRUNG GIAN
LEFT JOIN CM_EMPLOYEE_LOG F ON A.CHECKER_ID = F.USER_DOMAIN --BÊN NHẬN + ĐƠN VỊ TRUNG GIAN
WHERE A.COL_MULTI_MASTER_ID = @COL_MULTI_MASTER_ID
--TABLE 5 SỐ
SELECT @COL_MULTI_MASTER_ID AS NO
--TABLE 6 ĐƠN VỊ TRUNG GIAN
SELECT '' TLFullName, '' ADDRESS, '' PHONE, '' POS_NAME
--SELECT TOP 1 B.TLFullName, B.ADDRESS, B.PHONE, C.POS_NAME,ISNULL(D.BRANCH_NAME,'') + ISNULL(' - ' + E.DEP_NAME,'') AS BRANCH_NAME
--FROM ASS_COLLECT_MULTI_MASTER A
--LEFT JOIN TL_USER B ON A.CHECKER_ID = B.TLNANME
--LEFT JOIN CM_EMPLOYEE_LOG C ON B.TLNANME = C.USER_DOMAIN
--LEFT JOIN CM_BRANCH D ON A.BRANCH_ID = D.BRANCH_ID
--LEFT JOIN CM_DEPARTMENT E ON A.DEPT_CREATE = E.DEP_ID
--WHERE A.COL_MULTI_MASTER_ID = @COL_MULTI_MASTER_ID
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[CM_SUPPLIER_Upd]'
GO
ALTER PROCEDURE [dbo].[CM_SUPPLIER_Upd]
@p_SUP_ID varchar(15) = null ,
@p_SUP_CODE varchar(15) = NULL ,
@p_SUP_NAME Nvarchar(300) = NULL ,
@p_SUP_TYPE_ID varchar(15) = NULL ,
@p_REGION_ID varchar(15) = NULL ,
@p_ADDR nvarchar(200) = NULL ,
@p_EMAIL varchar(50) = NULL ,
@p_TAX_NO varchar(20) = NULL ,
@p_TEL varchar(20) = NULL ,
@p_CONTACT_PERSON nvarchar(200) = NULL ,
@p_DISCIPLINES VARCHAR(15) = NULL,
@p_NOTES nvarchar(1000) = NULL ,
@p_RECORD_STATUS varchar(1) = NULL ,
@p_MAKER_ID varchar(100) = NULL ,
@p_CREATE_DT VARCHAR(20) = NULL,
@p_AUTH_STATUS varchar(50) = NULL ,
@p_CHECKER_ID varchar(100) = NULL ,
@p_APPROVE_DT VARCHAR(20) = NULL,
@p_ACC_NUM VARCHAR(100) = NULL,
@p_ACC_NAME VARCHAR(100) = NULL,
@p_BANK_NAME NVARCHAR(200) = NULL,
@p_ACC_NUM_OUT VARCHAR(100) = NULL,
@p_ACC_NAME_OUT VARCHAR(100) = NULL,
@p_BANK_NAME_OUT NVARCHAR(200) = NULL,
@p_EDITOR_ID VARCHAR(15) = NULL,
@p_EDITOR_DT VARCHAR(15) = NULL
AS
BEGIN TRANSACTION
--Validation is here
DECLARE @ERRORSYS NVARCHAR(15) = ''
IF (select case when @p_TAX_NO not like '%[^0-9]%' then 0 else 1 end) <> 0
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, N' Mã số thuế chỉ được phép nhập số' ErrorDesc
RETURN '-1'
END
IF ( EXISTS ( SELECT * FROM CM_SUPPLIER WHERE TAX_NO=@p_TAX_NO AND SUP_ID<>@p_SUP_ID))
SET @ERRORSYS = 'SUP-0001'
IF @ERRORSYS <> ''
BEGIN
SELECT ErrorCode Result, '' SUP_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
RETURN '0'
END
-- KIEM TRA XEM THONG TIN NGAN HANG CO DANG DUOC THANH TOAN TAM UNG HAY KHONG
--
UPDATE CM_SUPPLIER SET [DISCIPLINES] = @p_DISCIPLINES, [SUP_CODE] = @p_SUP_CODE,[SUP_NAME] = @p_SUP_NAME,[SUP_TYPE_ID] = @p_SUP_TYPE_ID,[REGION_ID] = @p_REGION_ID,[ADDR] = @p_ADDR,[EMAIL] = @p_EMAIL,[TAX_NO] = @p_TAX_NO,[TEL] = @p_TEL,[CONTACT_PERSON] = @p_CONTACT_PERSON,[NOTES] = @p_NOTES,[RECORD_STATUS] = @p_RECORD_STATUS,[MAKER_ID] = @p_MAKER_ID,[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),
[AUTH_STATUS] = @p_AUTH_STATUS,[CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103),EDITOR_ID = @p_EDITOR_ID, EDITOR_DT = GETDATE(),
ACC_NUM=@p_ACC_NUM,ACC_NAME = @p_ACC_NAME,BANK_NAME = @p_BANK_NAME, ACC_NUM_OUT=@p_ACC_NUM_OUT,ACC_NAME_OUT = @p_ACC_NAME_OUT,BANK_NAME_OUT = @p_BANK_NAME_OUT
WHERE SUP_ID= @p_SUP_ID
IF @@Error <> 0 GOTO ABORT
COMMIT TRANSACTION
SELECT 0 as Result, @p_SUP_ID SUP_ID, '' ErrorDesc, @p_SUP_ID id
RETURN 0
ABORT:
BEGIN
ROLLBACK TRANSACTION
SELECT -1 as Result, '' SUP_ID, '' ErrorDesc
RETURN -1
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_USE_MULTI_BVB_KT_Appr]'
GO
ALTER PROCEDURE [dbo].[ASS_USE_MULTI_BVB_KT_Appr]
@p_USER_MASTER_ID varchar(15) = NULL,
--@p_AUTH_STATUS varchar(1) = NULL,
@p_CHECKER_ID varchar(100) = NULL,
@p_APPROVE_DT VARCHAR(20) = NULL
AS
DECLARE @l_BRANCH_ID VARCHAR(15)
DECLARE @l_DEPT_ID VARCHAR(15)
DECLARE @l_EMP_ID VARCHAR(15)
DECLARE @l_DIVISION_ID VARCHAR(15)
DECLARE @l_VALUE_ID VARCHAR(15)
--DECLARE @l_LOCATION nvarchar(500)
DECLARE @l_LOCHIST_ID VARCHAR(15)
DECLARE @l_ASSET_ID VARCHAR(15)
DECLARE @l_WAHDT_ID VARCHAR(15)
DECLARE @l_WAH_ID VARCHAR(15)
DECLARE @l_MAKER_ID varchar(15)
DECLARE @l_AMORT_MONTH decimal(18,2)
DECLARE @l_AMORT_START_DATE datetime, @l_AMORT_END_DATE datetime
DECLARE @l_FIRST_AMORT_AMT numeric(18,0)
DECLARE @l_MONTHLY_AMT numeric(18,0)
DECLARE @l_ASS_AMORT_AMT numeric(18,0)
DECLARE @sToday varchar(10) = convert(varchar(10), getdate(), 103)
DECLARE @l_ENTRY_BOOKED varchar(1)
DECLARE @l_HO_BRN_ID varchar(15)
DECLARE @l_AMORT_AMT decimal(18) = NULL
DECLARE @l_BUY_PRICE decimal(18) = NULL
DECLARE @l_ET_ID varchar(15)
--DEClare @p_ADDNEW_ID varchar(15)
DECLARE @l_SUPPEND_GL varchar(50)
DECLARE @l_ASSET_GL varchar(50)--TK TAI SAN
DECLARE @l_EXP_ACCTNO varchar(50)--TK CHI PHI
DECLARE @l_AMORT_ACCTNO varchar(50)--TK CHO PHAN BO
DECLARE @l_PAY_HS_ACCTNO VARCHAR(50)
DECLARE @_BUY_TS_ACCTNO VARCHAR(50)
DECLARE @l_WAIT_AMORT VARCHAR(50)
DECLARE @l_TRANFER_ACCTNO VARCHAR(50)
DECLARE @l_DR_BRANCH VARCHAR(15) -- DV GHI NO
DECLARE @l_ASSET_VALUE decimal(18,0)
DECLARE @l_ASSET_CODE VARCHAR(25)
DECLARE @l_GROUP_ID varchar(15)
DECLARE @l_CORE_NOTE NVARCHAR(500)
DECLARE @l_TYPE_ID varchar(15) = NULL
declare @l_TRN_REF_NO varchar(20)
declare @l_DO_BRANCH_ID varchar(15)
DECLARE @l_AMORT_STATUS VARCHAR(15) = 'CKH'
DECLARE @l_AMORT_MONTH_ASS_USE DECIMAL(18,2) = NULL
DECLARE @l_AMORT_RATE DECIMAL(18,2) = 0
declare @l_AUTH_STATUS varchar(15) = ''
DECLARE @l_CURR_AMORT_AMT DECIMAL(18,0)
DECLARE @sExecDT DATE
DECLARE @l_AMORT_TERM VARCHAR(500)
DECLARE @l_AMORTDT_ID VARCHAR(15) = NULL
DECLARE @l_AMORTIZED_MONTH DECIMAL(18,0), @ERROR NVARCHAR(500) = ''
DECLARE @l_BRANCH_CREATE VARCHAR(15), @BRN_TYPE_TRN VARCHAR(15), @BRN_TYPE_REC VARCHAR(15), @TCCT_TRN_ACCTNO VARCHAR(50), @TCCT_REC_ACCTNO VARCHAR(50)
DECLARE @l_DEP_CODE VARCHAR(15)
DECLARE @l_COST_MASTER_ID VARCHAR(15)
DECLARE @l_COSTDT_ID VARCHAR(15),
@l_REMAIN_VALUE_UPD DECIMAL(18,0),
@l_BUY_PRICE_UPD DECIMAL(18,0)
DECLARE @CUR_DATE DATETIME = GETDATE()
BEGIN TRY
BEGIN TRANSACTION
IF(EXISTS(SELECT 1 FROM ASS_USE_MULTI_MASTER WHERE AUTH_STATUS_KT ='A' AND USER_MASTER_ID =@p_USER_MASTER_ID))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, N'Thông tin xuất sử dụng tài sản đã được duyệt' ErrorDesc
RETURN '-1'
END
--LUCTV: 26-20-2018 KIEM TRA NEU TINH TRANG DANG LA 'R' THI KHONG CHO PHEP DUYET
IF(EXISTS(SELECT * FROM ASS_USE_MULTI_MASTER WHERE AUTH_STATUS_KT ='R' AND USER_MASTER_ID =@p_USER_MASTER_ID))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, N'Thông tin xuất sử dụng tài sản đang bị trả về. Vui lòng cập nhật lại thông tin trước khi duyệt' ErrorDesc
RETURN '-1'
END
--APPROVE KT MASTER
UPDATE [dbo].[ASS_USE_MULTI_MASTER]
SET AUTH_STATUS_KT = 'A',
CHECKER_ID_KT = @p_CHECKER_ID,
APPROVE_DT_KT = CONVERT(DATETIME, @p_APPROVE_DT, 103)
WHERE USER_MASTER_ID= @p_USER_MASTER_ID
--thieuvq 260719 lay thong makerid kt--
SET @l_MAKER_ID = (SELECT MAKER_ID_KT FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @p_USER_MASTER_ID)
--
DECLARE @l_TRN_NO VARCHAR(15)
EXEC ENTRIES_POST_GEN_NO @p_BRANCH_ID = @l_MAKER_ID
,@p_TRN_DATE = @p_APPROVE_DT
,@p_KeyGen = @l_TRN_NO OUT
DECLARE @USE_MULTI_ID varchar(15)
DECLARE @ASSET_ID varchar(15)
DECLARE XmlData SCROLL CURSOR
FOR
SELECT A.USE_MULTI_ID,A.ASSET_ID
FROM [dbo].[ASS_USE_MULTI_DT] A
WHERE USER_MASTER_ID= @p_USER_MASTER_ID AND AUTH_STATUS_KT <> 'A'
OPEN XmlData
FETCH NEXT FROM XmlData INTO @USE_MULTI_ID,@ASSET_ID
WHILE @@FETCH_STATUS = 0
BEGIN
--Lay thong tin giao dich
SELECT @l_ASSET_ID = ASSET_ID, @l_BRANCH_ID = BRANCH_ID, @l_DEPT_ID = DEPT_ID,
@l_EMP_ID = EMP_ID, @l_DIVISION_ID = DIVISION_ID, @l_CORE_NOTE = CORE_NOTE, @l_AUTH_STATUS = AUTH_STATUS_KT,
@l_AMORT_START_DATE = AMORT_START_DATE, /*@l_MAKER_ID = MAKER_ID_KT,*/ @l_AMORT_MONTH_ASS_USE = AMORT_MONTH,
@l_AMORT_END_DATE = AMORT_END_DATE
FROM [ASS_USE_MULTI_DT]
WHERE USE_MULTI_ID = @USE_MULTI_ID
--Lay thong tin so thang khau hao
SELECT @l_AMORT_MONTH = A.AMORT_MONTH, @l_ASS_AMORT_AMT = AMORT_AMT, @l_ENTRY_BOOKED = ENTRY_BOOKED,
@l_AMORT_AMT = A.AMORT_AMT, @l_BUY_PRICE = BUY_PRICE, @l_GROUP_ID = ISNULL(A.REF_GROUP_ID,A.GROUP_ID),@l_TYPE_ID = A.[TYPE_ID],
@l_BRANCH_CREATE = BRANCH_CREATE,@l_ASSET_CODE=A.ASSET_CODE
FROM ASS_MASTER A
WHERE A.ASSET_ID = @l_ASSET_ID
--TINH THEO SO THANG KHI XUAT
SET @l_AMORT_MONTH = @l_AMORT_MONTH_ASS_USE
--IF @l_ENTRY_BOOKED = 'N'
--BEGIN
-- SELECT '-1' as Result, (SELECT S.ErrorDesc FROM SYS_ERROR S WHERE S.ErrorCode = 'ASS-00018') ErrorDesc
-- ROLLBACK TRANSACTION
-- CLOSE XmlData
-- DEALLOCATE XmlData
-- RETURN '-1'
--END
IF (SELECT AMORT_STATUS FROM ASS_MASTER WHERE ASSET_ID = @l_ASSET_ID) NOT IN ('VNM','KKH')
BEGIN
SELECT '-1' as Result, N'TAI SAN DA DUOC XUAT SU DUNG' ErrorDesc
ROLLBACK TRANSACTION
CLOSE XmlData
DEALLOCATE XmlData
RETURN '-1'
END
UPDATE ASS_USE_MULTI_DT
SET AUTH_STATUS_KT = 'A',
CHECKER_ID_KT = @p_CHECKER_ID,
APPROVE_DT_KT = CONVERT(DATETIME, @p_APPROVE_DT, 103)
WHERE USE_MULTI_ID = @USE_MULTI_ID
--IF @l_AUTH_STATUS = 'A'
--BEGIN
-- SELECT '-1' as Result, (SELECT ErrorDesc from SYS_ERROR WHERE ErrorCode = 'ASS-99998') ErrorDesc
-- ROLLBACK TRANSACTION
-- CLOSE XmlData
-- DEALLOCATE XmlData
-- RETURN '-1'
--END
--Lay thong tin kho mac dinh
--SELECT @l_WAH_ID = P.ParaValue FROM SYS_PARAMETERS P WHERE P.ParaKey='ASSET_WAREHOUSE'
SET @l_WAH_ID = @l_BRANCH_CREATE
--BRN_ID HOI SO
SELECT @l_HO_BRN_ID = BRANCH_ID FROM CM_BRANCH A WHERE A.BRANCH_TYPE = 'HS'
--Lay branch_id cua user duyet
select @l_DO_BRANCH_ID = a.TLSUBBRID from TL_USER a where a.TLNANME = @p_CHECKER_ID
--Lay suppend GL
SELECT @l_SUPPEND_GL = A.ParaValue FROM SYS_PARAMETERS A WHERE A.ParaKey='ASSET_SUPPEND_GL'
DECLARE @l_WAIT_AMORT_NEW VARCHAR(50)
SET @l_PAY_HS_ACCTNO = (SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='PAY_HS')
SET @_BUY_TS_ACCTNO = (SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='BUY_TSCD' AND epa.GROUP_ID=(SELECT AG.PARENT_ID FROM ASS_GROUP AG WHERE AG.GROUP_ID = (SELECT AG.PARENT_ID FROM ASS_GROUP AG WHERE AG.GROUP_ID = @l_GROUP_ID)))
IF(@_BUY_TS_ACCTNO IS NULL OR @_BUY_TS_ACCTNO = '') SET @_BUY_TS_ACCTNO = (SELECT ACC_NO FROM ENTRIES_POST_ACCNO WHERE ACC_TYPE ='BUY_TSCD' AND GROUP_ID = @l_GROUP_ID)
SET @l_WAIT_AMORT = (SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='AMORT_CCLD')
SET @l_TRANFER_ACCTNO =(SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='TRANSFER')
SET @l_WAIT_AMORT_NEW =(SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='ASSET_CCLD_N')
--SET @l_PAY_HS_ACCTNO = (SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='PAY_HS')
DECLARE @l_ETP_ID VARCHAR(20),@l_D_BRANCH_CODE VARCHAR(25) , @l_C_BRANCH_CODE VARCHAR(25)
--ASSET_GL
SELECT @l_ASSET_GL = ASSET_ACCTNO,
@l_EXP_ACCTNO = EXP_ACCTNO,
@l_AMORT_ACCTNO = AMORT_ACCTNO
FROM ASS_GROUP A
WHERE A.GROUP_ID = @l_GROUP_ID
IF @l_AMORT_MONTH_ASS_USE = 0
BEGIN
SET @l_AMORT_END_DATE = NULL;
SET @l_MONTHLY_AMT = 0;
SET @l_FIRST_AMORT_AMT = 0;
SET @l_AMORT_STATUS = 'KKH'
END
ELSE
BEGIN
--Tinh ngay ket thuc khau hao
--IF @l_AMORT_END_DATE IS NULL OR @l_AMORT_END_DATE = ''
-- SET @l_AMORT_END_DATE = DATEADD(MONTH, @l_AMORT_MONTH_ASS_USE, @l_AMORT_START_DATE) - 1
IF @l_AMORT_END_DATE IS NULL OR @l_AMORT_END_DATE = ''
BEGIN
--DECLARE @l_ENDDATE_TEMP DATETIME = (CONVERT(VARCHAR(10),(YEAR(@l_AMORT_START_DATE))) + '-' + CONVERT(VARCHAR(10),MONTH(@l_AMORT_START_DATE))+'-' + '1')
--SET @l_AMORT_END_DATE = DATEADD(MONTH, @l_AMORT_MONTH, @l_ENDDATE_TEMP ) - 1
SET @l_AMORT_END_DATE = DATEADD(MONTH, @l_AMORT_MONTH, @l_AMORT_START_DATE) - 1
END
--Tinh so tien khau hao thang dau tien va so tien khau hao hang thang
SET @l_MONTHLY_AMT = ROUND(@l_ASS_AMORT_AMT / @l_AMORT_MONTH, 0)
-- IF(@l_TYPE_ID='TSCD')
--BEGIN
DECLARE @AMORT_ON_DAY DECIMAL(18,0)
SET @AMORT_ON_DAY = ROUND(@l_MONTHLY_AMT/dbo.[FN_GetDaysInMonth](@l_AMORT_START_DATE),0)
SET @l_FIRST_AMORT_AMT = ROUND(@AMORT_ON_DAY * (DATEDIFF(day,@l_AMORT_START_DATE, dbo.FN_GetLastDayOfMonth(@l_AMORT_START_DATE)) + 1), 0)
IF(DAY(@l_AMORT_START_DATE)=1)
SET @l_FIRST_AMORT_AMT=@l_MONTHLY_AMT
--END
--ELSE
-- SET @l_FIRST_AMORT_AMT = @l_MONTHLY_AMT--ROUND(@l_MONTHLY_AMT/dbo.[FN_GetDaysInMonth](@l_AMORT_START_DATE) * (DATEDIFF(day,@l_AMORT_START_DATE, dbo.FN_GetLastDayOfMonth(@l_AMORT_START_DATE)) + 1), -3)
--CAP NHAT TRANG THAI KHAU HAO
SET @l_AMORT_STATUS = 'CKH'
END
--IF (@l_ENTRY_BOOKED = 'N') --Neu nhap TS va hach toan tang tai san
IF (@l_ENTRY_BOOKED = 'N') --Neu nhap TS va hach toan tang tai san thieuvq 14/05/2014
BEGIN
--insert dbo.ASS_VALUES
EXEC SYS_CodeMasters_Gen 'ASS_VALUES', @l_VALUE_ID out
IF @l_VALUE_ID='' OR @l_VALUE_ID IS NULL GOTO ABORT
INSERT INTO ASS_VALUES
(
VALUE_ID, ASSET_ID, BRANCH_ID, TRN_DT, CRDR, ASSET_AMT, [DESCRIPTION], TRN_ID, TRN_TYPE,
RECORD_STATUS, AUTH_STATUS, MAKER_ID, CREATE_DT, CHECKER_ID, APPROVE_DT, AMORT_AMT
)
VALUES
(
@l_VALUE_ID, @l_ASSET_ID, @l_BRANCH_CREATE, CONVERT(datetime, @sToday, 103), 'C', @l_BUY_PRICE, N'XUAT SU DUNG '+@l_TYPE_ID, @USE_MULTI_ID, 'ASS_USE',
'1','A',@l_MAKER_ID, CONVERT(datetime, @sToday, 103), @p_CHECKER_ID, CONVERT(datetime, @sToday, 103), @l_AMORT_AMT
)
IF @@Error <> 0 GOTO ABORT
SET @l_C_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_HO_BRN_ID)
SET @l_D_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_BRANCH_CREATE)
IF(@l_BRANCH_ID = @l_BRANCH_CREATE)
SET @l_DEP_CODE =( SELECT cd.DEP_CODE FROM CM_DEPARTMENT cd WHERE cd.DEP_ID=@l_DEPT_ID)
---NEU LA TAI SAN THI GHI TANG - BUT TOAN XUAT O DUOI, CCLD THI 2 BUT TOAN GOM LAI THANH 1
IF @l_TYPE_ID = 'TSCD'
BEGIN
--Insert vao bang dbo.ASS_ENTRIES_POST
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ASS_USE', @USE_MULTI_ID,@l_DO_BRANCH_ID, @_BUY_TS_ACCTNO, @l_BRANCH_CREATE, @l_ASSET_GL, @l_BRANCH_CREATE, @l_BUY_PRICE,'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_USER_MASTER_ID, --N'XUAT SU DUNG TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_USER_MASTER_ID ,@l_D_BRANCH_CODE , @l_ASSET_GL, 'VND', 'D', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_USER_MASTER_ID,@l_D_BRANCH_CODE ,@_BUY_TS_ACCTNO,'VND', 'C', @l_BUY_PRICE, 1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, '', @l_CORE_NOTE,@l_TRN_NO);
END
--SET @l_ENTRY_BOOKED = 'Y'
END
---THIEUVQ 101018 NEU XUAT KHAC DON VI THI HACH TOAN
--BEGIN
--Insert vao bang dbo.ASS_ENTRIES_POST
SET @l_C_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_BRANCH_CREATE)
SET @l_D_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_BRANCH_ID)
SET @l_DEP_CODE = ( SELECT cd.DEP_CODE FROM CM_DEPARTMENT cd WHERE cd.DEP_ID=@l_DEPT_ID)
IF @l_BRANCH_CREATE <> @l_BRANCH_ID
BEGIN
SELECT @BRN_TYPE_TRN = BRANCH_TYPE,@TCCT_TRN_ACCTNO = DAO_CODE FROM CM_BRANCH WHERE BRANCH_ID = @l_BRANCH_CREATE
SELECT @BRN_TYPE_REC = BRANCH_TYPE, @TCCT_REC_ACCTNO = DAO_CODE FROM CM_BRANCH WHERE BRANCH_ID = @l_BRANCH_ID
IF @l_TYPE_ID = 'TSCD'
BEGIN
/*****THIEUVQ 211118 - CHAU XAC NHAN KHONG HACH TOAN QUA TK TRUNG GIAN NUA*******/
----NEU CN XUAT CHO PGD THI KHONG HACH TOAN THONG QUA TK TRUNG GIAN TCCT
--IF @BRN_TYPE_TRN = 'CN' AND @BRN_TYPE_REC = 'PGD'
--BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ASS_USE', @p_USER_MASTER_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_TRANFER_ACCTNO, @l_BRANCH_CREATE, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID, @p_USER_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_USER_MASTER_ID,@l_C_BRANCH_CODE ,@l_TRANFER_ACCTNO,'VND', 'D', @l_BUY_PRICE, 1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, '', @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_USER_MASTER_ID ,@l_C_BRANCH_CODE , @l_ASSET_GL, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, '', @l_CORE_NOTE,@l_TRN_NO);
--------------------------------
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ASS_USE', @p_USER_MASTER_ID, @l_DO_BRANCH_ID, @l_TRANFER_ACCTNO, @l_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_ID, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID, @p_USER_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_USER_MASTER_ID,@l_D_BRANCH_CODE ,@l_ASSET_GL,'VND', 'D', @l_BUY_PRICE, 1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_USER_MASTER_ID ,@l_D_BRANCH_CODE , @l_TRANFER_ACCTNO, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
END
IF @l_TYPE_ID = 'CCLD'
BEGIN --CCLD
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ASS_USE', @p_USER_MASTER_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_TRANFER_ACCTNO, @l_BRANCH_CREATE, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID, @p_USER_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_USER_MASTER_ID,@l_C_BRANCH_CODE ,@l_WAIT_AMORT_NEW,'VND', 'D', @l_BUY_PRICE, 1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, '', @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_USER_MASTER_ID ,@l_C_BRANCH_CODE , @l_ASSET_GL, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, '', @l_CORE_NOTE,@l_TRN_NO);
---------------------------
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ASS_USE', @p_USER_MASTER_ID, @l_DO_BRANCH_ID, @l_TRANFER_ACCTNO, @l_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_ID, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID, @p_USER_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_USER_MASTER_ID,@l_D_BRANCH_CODE ,@l_ASSET_GL,'VND', 'D', @l_BUY_PRICE, 1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, '', @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_USER_MASTER_ID ,@l_D_BRANCH_CODE , @l_WAIT_AMORT_NEW, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, '', @l_CORE_NOTE,@l_TRN_NO);
--------------------------------------
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ASS_USE', @p_USER_MASTER_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_WAIT_AMORT, @l_BRANCH_ID, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID, @p_USER_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
--Đồng thời kết chuyển tài khoản CCLĐ đang dùng sang tài khoản chờ phân bổ:
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO,TRN_IS_SUM)
VALUES (@l_ETP_ID, @l_ET_ID,@p_USER_MASTER_ID ,@l_D_BRANCH_CODE , @l_WAIT_AMORT, 'VND', 'D', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO,0);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO,TRN_IS_SUM)
VALUES (@l_ETP_ID, @l_ET_ID,@p_USER_MASTER_ID ,@l_D_BRANCH_CODE , @l_ASSET_GL, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO,1);
END
END
ELSE IF @l_TYPE_ID = 'CCLD'
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ASS_USE', @p_USER_MASTER_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_WAIT_AMORT, @l_BRANCH_ID, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID, @p_USER_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
--Đồng thời kết chuyển tài khoản CCLĐ đang dùng sang tài khoản chờ phân bổ:
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO,TRN_IS_SUM)
VALUES (@l_ETP_ID, @l_ET_ID,@p_USER_MASTER_ID ,@l_D_BRANCH_CODE , @l_WAIT_AMORT, 'VND', 'D', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO,0);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO,TRN_IS_SUM)
VALUES (@l_ETP_ID, @l_ET_ID,@p_USER_MASTER_ID ,@l_D_BRANCH_CODE , @l_ASSET_GL, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO,1);
END
--END
--TINH TI LE KHAU HAO
IF @l_AMORT_MONTH_ASS_USE IS NOT NULL AND @l_AMORT_MONTH_ASS_USE <> 0
SET @l_AMORT_RATE = ROUND((100*1.0/@l_AMORT_MONTH_ASS_USE)*12, 2)
--Update tai san da xuat su dung
UPDATE ASS_MASTER
SET
AMORT_MONTH = @l_AMORT_MONTH_ASS_USE,
AMORT_START_DATE = @l_AMORT_START_DATE,
AMORT_END_DATE = @l_AMORT_END_DATE,
FIRST_AMORT_AMT = @l_FIRST_AMORT_AMT,
MONTHLY_AMORT_AMT = @l_MONTHLY_AMT,
AMORTIZED_AMT = ISNULL(AMORTIZED_AMT,0),
AMORTIZED_MONTH = 0,
AMORT_STATUS = @l_AMORT_STATUS,--'CKH', --Update trang thai cho khau hao
ENTRY_BOOKED = 'Y',
AMORT_RATE = @l_AMORT_RATE,
USE_DATE_KT = convert(datetime, @sToday, 103) ,
BRANCH_ID = @l_BRANCH_ID,
DEPT_ID = @l_DEPT_ID,
EMP_ID = @l_EMP_ID,
DIVISION_ID = @l_DIVISION_ID
WHERE ASSET_ID = @l_ASSET_ID
IF @@Error <> 0 GOTO ABORT
IF @@Error <> 0 GOTO ABORT
/***THIEUVQ - 6/11/2018 CAP NHAT LAI DON VI KHI XUAT SU DUNG NEU TS LA XE***/
UPDATE CAR_MASTER SET BRANCH_ID = @l_BRANCH_ID WHERE ASSET_ID = @l_ASSET_ID
/***********PHAN BO HOI SO CHIU CHI PHI -- BEGIN 201218**************/
SET @l_DEP_CODE = (SELECT A.DEP_CODE FROM CM_DEPARTMENT A WHERE A.DEP_ID = @l_DEPT_ID)
IF @l_DEP_CODE IS NOT NULL AND @l_DEP_CODE <> ''
BEGIN
IF @l_BRANCH_ID <> @l_HO_BRN_ID AND LEFT(@l_DEP_CODE,3) = '069' ------CN NHAP NHUNG HOI SO CHIU CHI PHI
BEGIN
--LAY PHONG BAN CUA HOI SO TUONG UNG MA PHONG BAN CN
SET @l_DEPT_ID = (SELECT DEP_ID FROM CM_DEPARTMENT A WHERE A.DEP_CODE = @l_DEP_CODE AND BRANCH_ID = @l_HO_BRN_ID)
IF @l_DEPT_ID IS NOT NULL AND @l_DEPT_ID <> ''
BEGIN
-----THEM VAO BANG ASS_COST_ALLOCATION
EXEC SYS_CodeMasters_Gen 'ASS_COST_ALLOCATION', @l_COST_MASTER_ID out
INSERT INTO ASS_COST_ALLOCATION (COS_ID,ASSET_ID,NOTE,TRN_DATE,[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],EDITOR_ID, EDITOR_DT,[CHECKER_ID],[APPROVE_DT],BRANCH_CREATE,XML_TEMP,SECURE_01,SERCURE_01)
VALUES(@l_COST_MASTER_ID,@l_ASSET_ID,'AUTO',@CUR_DATE,'1' ,'A',@l_MAKER_ID ,
@CUR_DATE ,NULL, NULL,@p_CHECKER_ID,
@CUR_DATE,@l_HO_BRN_ID,NULL,NULL,NULL)
-----THEM BANG CHI TIET ASS_COST_ALLOC_DT 100% SO TIEN PHAN BO THANG
EXEC SYS_CodeMasters_Gen 'ASS_COST_ALLOC_DT', @l_COSTDT_ID out
INSERT INTO ASS_COST_ALLOC_DT
VALUES(@l_COSTDT_ID,@l_COST_MASTER_ID,@l_HO_BRN_ID,@l_DEPT_ID,@l_MONTHLY_AMT,'100',@l_AMORT_MONTH_ASS_USE,@CUR_DATE, @l_AMORT_END_DATE,0,0,@l_EXP_ACCTNO,'','1' ,'A' ,@l_MAKER_ID ,
@CUR_DATE ,NULL, NULL,@p_CHECKER_ID,@CUR_DATE)
END
END
END
/**************************************************** END 201218************/
DECLARE @l_AMORT_RUN_DATE DATETIME = (SELECT TOP 1 TTS.SENT_DATE FROM THREAD_TIME_SEND TTS WHERE TTS.TIME_VALUE = 'KH')
DECLARE @DATE_EXEC DATETIME=CONVERT(DATETIME, @p_APPROVE_DT, 103)
IF( DATEDIFF(MONTH, @l_AMORT_START_DATE, @l_AMORT_RUN_DATE)>0)
BEGIN
EXEC ASS_AMORT_BackDate @p_ASSET_ID = @l_ASSET_ID
, @p_MAKER_ID = @l_MAKER_ID
,@p_CHECKER_ID = @p_CHECKER_ID
,@p_APPROVE_DT = @DATE_EXEC
,@p_TRN_ID = @p_USER_MASTER_ID
,@P_TRN_REF_NO = @l_TRN_NO
,@p_TRN_TYPE = 'ASS_USE'
END
--PHUCVH 27/02/23 UPDATE BUY_PRICE VÀ REMAIN_VALUE CỦA TÀI SẢN TẠI THỜI ĐIỂM XUẤT
SELECT @l_BUY_PRICE_UPD = A.BUY_PRICE, @l_REMAIN_VALUE_UPD = ISNULL((A.AMORT_AMT - A.AMORTIZED_AMT), ISNULL(A.AMORT_AMT,0))
FROM ASS_MASTER A
WHERE A.ASSET_ID = @ASSET_ID
UPDATE ASS_USE_MULTI_DT SET BUY_PRICE = @l_BUY_PRICE, REMAIN_VALUE = @l_REMAIN_VALUE_UPD
WHERE USE_MULTI_ID = @USE_MULTI_ID AND USER_MASTER_ID = @p_USER_MASTER_ID AND ASSET_ID = @ASSET_ID
FETCH NEXT FROM XmlData INTO @USE_MULTI_ID,@ASSET_ID
END
CLOSE XmlData
DEALLOCATE XmlData
-- HUYHT 06/05/2022 THAY ĐỔI TRẠNG THÁI UPDATE CŨ THÀNH UPDATE_HC
UPDATE dbo.PL_PROCESS SET PROCESS_ID = 'UPDATE_KT' WHERE REQ_ID = @p_USER_MASTER_ID AND PROCESS_ID = 'UPDATE'
-- GIANT 21/09/2021
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_USER_MASTER_ID, -- REQ_ID - varchar(15)
'APPROVE', -- PROCESS_ID - varchar(10)
@p_CHECKER_ID, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
N'Kiểm soát viên phê duyệt ' ,
N'Kiểm soát viên phê duyệt hoàn tất' -- PROCESS_DESC - nvarchar(1000)
)
--PHUCVH 14/11/22 UPDATE TÀI SẢN ĐÃ XONG GIAO DỊCH
UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL
WHERE ASSET_ID IN (SELECT B.ASSET_ID FROM ASS_USE_MULTI_DT B WHERE B.USER_MASTER_ID = @p_USER_MASTER_ID)
COMMIT TRANSACTION
SELECT '0' as Result, '' ErrorDesc
RETURN '0'
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
CLOSE XmlData
DEALLOCATE XmlData
SELECT '-1' as Result, (convert(varchar(100),ERROR_NUMBER()) + ' - ' + ERROR_MESSAGE()) ErrorDesc
RETURN '-1'
END CATCH
ABORT:
BEGIN
ROLLBACK TRANSACTION
CLOSE XmlData
DEALLOCATE XmlData
SELECT '-1' as Result, (convert(varchar(100),ERROR_NUMBER()) + ' - ' + ERROR_MESSAGE() +' - '+ @ERROR) ErrorDesc
RETURN '-1'
End
ABORT2:
BEGIN
ROLLBACK TRANSACTION
CLOSE MYCURSOR
DEALLOCATE MYCURSOR
SELECT '-1' as Result, (convert(varchar(100),ERROR_NUMBER()) + ' - ' + ERROR_MESSAGE() +' - '+ @ERROR) ErrorDesc
RETURN '-1'
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_PRIVATE_TRANSFER_MULTI_MASTER_BBBG]'
GO
ALTER PROC [dbo].[ASS_PRIVATE_TRANSFER_MULTI_MASTER_BBBG]
@TRANS_MULTI_MASTER_ID varchar(15) = null
AS
BEGIN
DECLARE @EMP_RECEIVER VARCHAR(1) = NULL
DECLARE @EMP_HANDOVER VARCHAR(1) = NULL
--Table 0 Nội dung && BRANCH
SELECT TOP 1 B.BRANCH_NAME + ISNULL(' - ' + C.DEP_NAME,'') BRANCH_NAME,
(N'Hôm nay, ngày ' + CONVERT(VARCHAR(5),DAY(GETDATE())) + N' tháng ' + CONVERT(VARCHAR(5),MONTH(GETDATE())) + N' năm ' + CONVERT(VARCHAR(5),YEAR(GETDATE())) + N' tại ') AS DD_MM_YY
FROM ASS_PRIVATE_TRANSFER_DT A
LEFT JOIN CM_BRANCH B ON A.BRANCH_ID_OLD = B.BRANCH_ID
LEFT JOIN CM_DEPARTMENT C ON A.DEPT_ID = C.DEP_ID
WHERE A.TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID
--Table 1 Bên giao
SELECT TOP 1 D.EMP_NAME TLFullName, B.ADDRESS, B.PHONE, C.POS_NAME, ISNULL(E.BRANCH_NAME,'') + ISNULL(' - ' + F.DEP_NAME,'') AS BRANCH_NAME
FROM ASS_PRIVATE_TRANSFER_DT A
LEFT JOIN CM_EMPLOYEE D ON A.EMP_ID_OLD = D.EMP_ID
LEFT JOIN CM_EMPLOYEE_LOG C ON D.EMP_CODE = C.EMP_CODE
LEFT JOIN TL_USER B ON C.USER_DOMAIN = B.TLNANME
LEFT JOIN CM_BRANCH E ON B.TLSUBBRID = E.BRANCH_ID
LEFT JOIN CM_DEPARTMENT F ON B.DEP_ID = F.DEP_ID
WHERE A.TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID
ORDER BY A.EMP_ID_OLD DESC
--Table 2 Bên nhận
SELECT TOP 1 D.EMP_NAME TLFullName, B.ADDRESS, B.PHONE, C.POS_NAME, ISNULL(E.BRANCH_NAME,'') + ISNULL(' - ' + F.DEP_NAME,'') AS BRANCH_NAME
FROM ASS_PRIVATE_TRANSFER_DT A
LEFT JOIN CM_EMPLOYEE D ON A.EMP_ID = D.EMP_ID
LEFT JOIN CM_EMPLOYEE_LOG C ON D.EMP_CODE = C.EMP_CODE
LEFT JOIN TL_USER B ON C.USER_DOMAIN = B.TLNANME
LEFT JOIN CM_BRANCH E ON B.TLSUBBRID = E.BRANCH_ID
LEFT JOIN CM_DEPARTMENT F ON B.DEP_ID = F.DEP_ID
WHERE A.TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID
ORDER BY A.EMP_ID DESC
--TABLE 3 DANH SÁCH TÀI SẢN
SELECT
CASE
WHEN B.ASSET_CODE IS NOT NULL AND B.ASSET_CODE <> '' THEN B.ASSET_CODE
ELSE B.ASS_CODE_TMP
END AS ASSET_CODE, B.ASSET_NAME, D.UNIT_NAME, 1 AS QUANTITY, A.DESCRIPTION AS NOTES,
E.STATUS_NAME, B.ASSET_SERIAL_NO AS SERIAL, ISNULL(B.PL,'') REQ_CODE, B.NOTES AS QUY_CACH, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS STT
FROM ASS_PRIVATE_TRANSFER_DT A
LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID
LEFT JOIN ASS_GROUP C ON B.GROUP_ID = C.GROUP_ID
LEFT JOIN CM_UNIT D ON C.UNIT = D.UNIT_ID
LEFT JOIN ASS_STATUS E ON B.ASS_STATUS = E.STATUS_ID
WHERE A.TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID
--TABLE 4 CHỮ KÝ
SELECT TOP 1 B.EMP_NAME AS MAKER_NAME, --BÊN GIAO
ISNULL(B.POS_NAME + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = D.TRANS_MULTI_MASTER_ID AND PP.PROCESS_ID = 'SEND'
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss'),'') AS POS_NAME,--BÊN GIAO
C.EMP_NAME AS CHECKER_NAME, --BÊN NHẬN
ISNULL(C.POS_NAME + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP
WHERE PP.REQ_ID = D.TRANS_MULTI_MASTER_ID AND PP.PROCESS_ID = 'APPROVE'
ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss'),'') AS POS_NAME_2 --BÊN NHẬN
FROM ASS_PRIVATE_TRANSFER_DT A
LEFT JOIN ASS_PRIVATE_TRANSFER_MASTER D ON A.TRANS_MULTI_MASTER_ID = D.TRANS_MULTI_MASTER_ID
LEFT JOIN CM_EMPLOYEE B ON A.EMP_ID_OLD = B.EMP_ID --BÊN GIAO
LEFT JOIN CM_EMPLOYEE C ON A.EMP_ID = C.EMP_ID -- BÊN NHẬN
WHERE A.TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID
--TABLE 5 SỐ
SELECT @TRANS_MULTI_MASTER_ID AS NO
--TABLE 6 ĐƠN VỊ TRUNG GIAN
SELECT '' TLFullName, '' ADDRESS, '' PHONE, '' POS_NAME
--SELECT TOP 1 B.TLFullName, B.ADDRESS, B.PHONE, C.POS_NAME
--FROM ASS_PRIVATE_TRANSFER_MASTER A
--LEFT JOIN TL_USER B ON A.CHECKER_ID = B.TLNANME
--LEFT JOIN CM_EMPLOYEE_LOG C ON B.TLNANME = C.USER_DOMAIN
--WHERE A.TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID AND A.DEPT_CREATE = 'DEP000000000048'
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_USE_MULTI_BVB_MASTER_Search]'
GO
ALTER PROCEDURE [dbo].[ASS_USE_MULTI_BVB_MASTER_Search]
@p_USER_MASTER_ID varchar(15) = NULL,
@p_BRANCH_ID varchar(15) = NULL,
@p_USE_EXPORT_DT VARCHAR(20) = NULL,
@p_USER_EXPORT nvarchar(200) = NULL,
@p_USER_EXPORT_NAME Nvarchar(200) = NULL,
@p_NOTES nvarchar(1000) = NULL,
@p_RECORD_STATUS varchar(1) = NULL,
@p_AUTH_STATUS varchar(1) = NULL,
@p_MAKER_ID varchar(100) = NULL,
@p_CREATE_DT VARCHAR(20) = NULL,
@p_CHECKER_ID varchar(100) = NULL,
@p_APPROVE_DT VARCHAR(20) = NULL,
@p_AUTH_STATUS_KT varchar(15) = NULL,
@p_CREATE_DT_KT varchar(100) = NULL,
@p_APPROVE_DT_KT VARCHAR(20) = NULL,
@p_MAKER_ID_KT varchar(100) = NULL,
@p_CHECKER_ID_KT varchar(100) = NULL,
@p_REPORT_STATUS varchar(15) = NULL,
@p_KT_IS_DO VARCHAR(1) = NULL,
@p_LEVEL VARCHAR(50) = 'UNIT',
@p_TOP INT = 10,
@p_FromDate VARCHAR(20) = NULL,
@p_TODATE VARCHAR(20) = NULL,
@p_USER_LOGIN VARCHAR(15),-- 26022020 LUCTV TRUYEN XUONG USER LOGIN DE DO TIM MA PHONG BAN
@p_TYPE_SEARCH VARCHAR(10)= NULL, -- 26022020 LUCTV TRUYEN XUONG DAU HIEU DE PHAN BIET TIM KIEM O MAN HINH KE TOAN HAY MAN HINH HCQT
@p_REQ_CODE VARCHAR(100) = NULL --Thêm trường tìm kiếm số PYC
AS
BEGIN -- PAGING
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
------
SET @p_RECORD_STATUS = '1'
-------
declare @tmp table(BRANCH_ID varchar(15))
insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
IF(@p_TOP = NULL OR @p_TOP = '' OR @p_TOP = 0)
-- PAGING BEGIN
SELECT A.*,C.BRANCH_CODE,
(CASE
WHEN A.DEP_ID IS NOT NULL AND A.DEP_ID <> '' THEN DEP.DEP_NAME + ' - ' + C.BRANCH_NAME
ELSE C.BRANCH_NAME
END) AS BRANCH_NAME,
CASE
WHEN @p_TYPE_SEARCH = 'KT' THEN ATKT.CONTENT
WHEN @p_TYPE_SEARCH = 'HC' THEN F.CONTENT
-- ELSE
END AS AUTH_STATUS_NAME,C.BRANCH_CODE+' - '+ C.BRANCH_NAME AS FULL_BRANCH_NAME,
ATKT.CONTENT AS AUTH_STATUS_NAME_KT,
@p_USER_LOGIN AS USER_LOGIN,@p_TYPE_SEARCH AS TYPE_SEARCH, --- TRA VE THAM SO GAN VO CURRENT SEARCH TRANH GAY LOI O CAC MAN HINH
B.CONFIRM_DT,B.MAKER_ID CONFIRM_USER,D.TLFullName CONFIRM_USER_NAME,
--PHUCVH 9/1/22 SELECT TÊN NGƯỜI TẠO QLTS, NGƯỜI DUYỆT QLTS, TẠO KT, DUYỆT KT
TU.TLFullName AS MAKER_USER_NAME,
E.TLFullName AS CHECKER_USER_NAME,
G.TLFullName AS MAKER_USER_NAME_KT,
H.TLFullName AS CHECKER_USER_NAME_KT
-- SELECT END
FROM ASS_USE_MULTI_MASTER A
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT DEP ON A.DEP_ID = DEP.DEP_ID
LEFT JOIN dbo.CM_ALLCODE F ON F.CDVAL = A.AUTH_STATUS AND F.CDNAME = 'ASS_ADD_AUTH' AND F.CDTYPE = 'ASS_ADDNEW'
LEFT JOIN dbo.CM_ALLCODE ATKT ON ATKT.CDVAL = A.AUTH_STATUS_KT AND ATKT.CDNAME = 'ASS_ADD_AUTH' AND ATKT.CDTYPE = 'ASS_ADDNEW'
LEFT JOIN ASS_USE_CONFIRM_MASTER B ON A.USER_MASTER_ID = B.USER_MASTER_ID
LEFT JOIN TL_USER D ON B.MAKER_ID = D.TLNANME
LEFT JOIN TL_USER TU ON A.MAKER_ID = TU.TLNANME --NGƯỜI TẠO QLTS
LEFT JOIN TL_USER E ON A.CHECKER_ID = E.TLNANME --NGƯỜI DUYỆT QLTS
LEFT JOIN TL_USER G ON A.MAKER_ID_KT = G.TLNANME --NGƯỜI TẠO KT
LEFT JOIN TL_USER H ON A.CHECKER_ID_KT = H.TLNANME -- NGƯỜI DUYỆT KT
WHERE 1 = 1
AND (A.USER_MASTER_ID LIKE '%' + @p_USER_MASTER_ID + '%' OR @p_USER_MASTER_ID IS NULL OR @p_USER_MASTER_ID = '')
--AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM @tmp) OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
--AND (A.USE_EXPORT_DT =CONVERT(DATETIME, @p_USE_EXPORT_DT, 103) OR @p_USE_EXPORT_DT IS NULL OR @p_USE_EXPORT_DT = '')
-- TIM KIEM TU NGAY DEN NGAY O HC
AND ((@p_TYPE_SEARCH = 'HC' AND (CONVERT(DATE,A.USE_EXPORT_DT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR @p_TYPE_SEARCH = 'KT' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
AND ((@p_TYPE_SEARCH = 'HC' AND (CONVERT(DATE,A.USE_EXPORT_DT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = ''))
OR @p_TYPE_SEARCH = 'KT' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
-- TIM KIEM TU NGAY DEN NGAY O KT
AND ((@p_TYPE_SEARCH = 'KT' AND (((A.MAKER_ID_KT IS NULL OR A.MAKER_ID_KT = '')
AND (CONVERT(DATE,A.APPROVE_DT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR ((A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT <> '')
AND ((@p_AUTH_STATUS_KT = 'A' AND (CONVERT(DATE,A.APPROVE_DT_KT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR (@p_AUTH_STATUS_KT = 'U' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR (@p_AUTH_STATUS_KT = 'E' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR (@p_AUTH_STATUS_KT = 'R' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR ((@p_AUTH_STATUS_KT = '' OR @p_AUTH_STATUS_KT IS NULL) AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = '')))
AND B.CONFIRM_STATUS = 'Y')))
OR @p_TYPE_SEARCH = 'HC' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
AND ((@p_TYPE_SEARCH = 'KT' AND (((A.MAKER_ID_KT IS NULL OR A.MAKER_ID_KT = '')
AND (CONVERT(DATE,A.APPROVE_DT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = ''))
OR ((A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT <> '')
AND ((@p_AUTH_STATUS_KT = 'A' AND (CONVERT(DATE,A.APPROVE_DT_KT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = ''))
OR (@p_AUTH_STATUS_KT = 'U' AND (CONVERT(DATE,A.CREATE_DT_KT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = ''))
OR (@p_AUTH_STATUS_KT = 'E' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR (@p_AUTH_STATUS_KT = 'R' AND (CONVERT(DATE,A.CREATE_DT_KT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = ''))
OR ((@p_AUTH_STATUS_KT = '' OR @p_AUTH_STATUS_KT IS NULL) AND (CONVERT(DATE,A.CREATE_DT_KT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = '')))
AND B.CONFIRM_STATUS = 'Y')))
OR @p_TYPE_SEARCH = 'HC' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
AND (A.USER_EXPORT LIKE '%' + @p_USER_EXPORT + '%' OR @p_USER_EXPORT IS NULL OR @p_USER_EXPORT = '')
AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '')
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
AND (A.CREATE_DT =CONVERT(DATETIME, @p_CREATE_DT, 103) OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
AND (A.APPROVE_DT =CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
AND (A.AUTH_STATUS_KT LIKE '%' + @p_AUTH_STATUS_KT + '%' OR @p_AUTH_STATUS_KT IS NULL OR @p_AUTH_STATUS_KT = '')
AND (A.CREATE_DT_KT =CONVERT(DATETIME, @p_CREATE_DT_KT, 103) OR @p_CREATE_DT_KT IS NULL OR @p_CREATE_DT_KT = '')
AND (A.APPROVE_DT_KT =CONVERT(DATETIME, @p_APPROVE_DT_KT, 103) OR @p_APPROVE_DT_KT IS NULL OR @p_APPROVE_DT_KT = '')
AND (A.MAKER_ID_KT LIKE '%' + @p_MAKER_ID_KT + '%' OR @p_MAKER_ID_KT IS NULL OR @p_MAKER_ID_KT = '')
AND (A.CHECKER_ID_KT LIKE '%' + @p_CHECKER_ID_KT + '%' OR @p_CHECKER_ID_KT IS NULL OR @p_CHECKER_ID_KT = '')
AND (A.REPORT_STATUS LIKE '%' + @p_REPORT_STATUS + '%' OR @p_REPORT_STATUS IS NULL OR @p_REPORT_STATUS = '')
--AND ((@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp))
-- OR ((@p_LEVEL = 'UNIT' AND ((A.BRANCH_ID = @p_BRANCH_ID)
-- OR (A.BRANCH_ID IN (SELECT BRANCH_ID FROM @ASSIGNED_BRANCH)))))
-- OR (@p_BRANCH_ID = '' OR @p_BRANCH_ID IS NULL))
AND (A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR @p_AUTH_STATUS_KT IS NULL OR @p_AUTH_STATUS_KT = '')
AND ((A.MAKER_ID_KT IS NOT NULL AND @p_KT_IS_DO = 'Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
OR ((A.MAKER_ID_KT IS NULL AND @p_KT_IS_DO = 'N'))
OR @p_KT_IS_DO IS NULL OR @p_KT_IS_DO = '')
-- NEW TRANG THAI PHIEU XUAT LA LUU NHAP HOAC TU CHOI THI CHI NGUOI TAO CO THE TIM THAY
AND ((A.AUTH_STATUS IN ('E','R') AND A.MAKER_ID = @p_USER_LOGIN)
OR A.AUTH_STATUS NOT IN ('E','R')
OR (EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,TBP_QLTS,KSV_QLTS',A.BRANCH_CREATE,A.DEPT_CREATE) US
WHERE US.TLNANME = @p_USER_LOGIN))
OR @p_USER_LOGIN IS NULL OR @p_USER_LOGIN = '')
-- 11-03-2022 HUYHT BO SUNG DIEU KIEN TIM KIEM PHIEU XUAT THEO QUYEN KIEM NHIEM
AND ((@p_TYPE_SEARCH='HC'
AND (EXISTS(SELECT * FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,TBP_QLTS,KSV_QLTS',A.BRANCH_CREATE,A.DEPT_CREATE) US
WHERE US.TLNANME = @p_USER_LOGIN))
OR A.MAKER_ID = @p_USER_LOGIN)
OR (@p_TYPE_SEARCH='KT' AND @p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp) AND B.CONFIRM_STATUS = 'Y'
AND NOT EXISTS(SELECT AM.ASSET_ID FROM ASS_USE_MULTI_DT AUMD
LEFT JOIN ASS_MASTER AM ON AUMD.ASSET_ID = AM.ASSET_ID
WHERE AUMD.USER_MASTER_ID = A.USER_MASTER_ID AND AM.AUTH_STATUS <> 'A'))
OR (@p_TYPE_SEARCH='KT' AND @p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_ID AND B.CONFIRM_STATUS = 'Y'
AND NOT EXISTS(SELECT AM.ASSET_ID FROM ASS_USE_MULTI_DT AUMD
LEFT JOIN ASS_MASTER AM ON AUMD.ASSET_ID = AM.ASSET_ID
WHERE AUMD.USER_MASTER_ID = A.USER_MASTER_ID AND AM.AUTH_STATUS <> 'A'))
OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH ='')
AND (@p_REQ_CODE IS NULL OR @p_REQ_CODE = '' OR EXISTS(SELECT 1 FROM ASS_USE_MULTI_DT DT
LEFT JOIN TR_REQUEST_SHOP_DOC B ON DT.REQ_ID = B.REQ_ID
WHERE DT.USE_MULTI_ID = A.USER_MASTER_ID AND B.REQ_CODE LIKE '%' + @p_REQ_CODE + '%'))
ORDER BY A.CREATE_DT DESC
-- PAGING END
ELSE
-- PAGING BEGIN
SELECT TOP(CONVERT(INT,@p_TOP))A.*,C.BRANCH_CODE,
(CASE
WHEN A.DEP_ID IS NOT NULL AND A.DEP_ID <> '' THEN DEP.DEP_NAME + ' - ' + C.BRANCH_NAME
ELSE C.BRANCH_NAME
END) AS BRANCH_NAME,
CASE
WHEN @p_TYPE_SEARCH = 'KT' THEN ATKT.CONTENT
WHEN @p_TYPE_SEARCH = 'HC' THEN F.CONTENT
-- ELSE
END AS AUTH_STATUS_NAME
, C.BRANCH_CODE+' - '+ C.BRANCH_NAME AS FULL_BRANCH_NAME,
ATKT.CONTENT AS AUTH_STATUS_NAME_KT,
@p_USER_LOGIN AS USER_LOGIN,@p_TYPE_SEARCH AS TYPE_SEARCH, --- TRA VE THAM SO GAN VO CURRENT SEARCH TRANH GAY LOI O CAC MAN HINH
B.CONFIRM_DT,B.MAKER_ID CONFIRM_USER,D.TLFullName CONFIRM_USER_NAME,
--PHUCVH 9/1/22 SELECT TÊN NGƯỜI TẠO QLTS, NGƯỜI DUYỆT QLTS, TẠO KT, DUYỆT KT
TU.TLFullName AS MAKER_USER_NAME,
E.TLFullName AS CHECKER_USER_NAME,
G.TLFullName AS MAKER_USER_NAME_KT,
H.TLFullName AS CHECKER_USER_NAME_KT
-- SELECT END
FROM ASS_USE_MULTI_MASTER A
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT DEP ON A.DEP_ID = DEP.DEP_ID
LEFT JOIN dbo.CM_ALLCODE F ON F.CDVAL = A.AUTH_STATUS AND F.CDNAME = 'ASS_ADD_AUTH' AND F.CDTYPE = 'ASS_ADDNEW'
LEFT JOIN dbo.CM_ALLCODE ATKT ON ATKT.CDVAL = A.AUTH_STATUS_KT AND ATKT.CDNAME = 'ASS_ADD_AUTH' AND ATKT.CDTYPE = 'ASS_ADDNEW'
--LEFT JOIN ( SELECT TOP 1 B.USER_MASTER_ID FROM ASS_CONFIRM_USE_MASTER B WHERE B.USER_MASTER_ID = A.USER_MASTER_ID) CF ON A.USER_MASTER_ID = CF.USER_MASTER_ID
LEFT JOIN ASS_USE_CONFIRM_MASTER B ON A.USER_MASTER_ID = B.USER_MASTER_ID
LEFT JOIN TL_USER D ON B.MAKER_ID = D.TLNANME
LEFT JOIN TL_USER TU ON A.MAKER_ID = TU.TLNANME --NGƯỜI TẠO QLTS
LEFT JOIN TL_USER E ON A.CHECKER_ID = E.TLNANME --NGƯỜI DUYỆT QLTS
LEFT JOIN TL_USER G ON A.MAKER_ID_KT = G.TLNANME --NGƯỜI TẠO KT
LEFT JOIN TL_USER H ON A.CHECKER_ID_KT = H.TLNANME -- NGƯỜI DUYỆT KT
WHERE 1 = 1
AND (A.USER_MASTER_ID LIKE '%' + @p_USER_MASTER_ID + '%' OR @p_USER_MASTER_ID IS NULL OR @p_USER_MASTER_ID = '')
--AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM @tmp) OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
-- AND (A.USE_EXPORT_DT =CONVERT(DATETIME, @p_USE_EXPORT_DT, 103) OR @p_USE_EXPORT_DT IS NULL OR @p_USE_EXPORT_DT = '')
-- TIM KIEM TU NGAY DEN NGAY O HC
AND ((@p_TYPE_SEARCH = 'HC' AND (CONVERT(DATE,A.USE_EXPORT_DT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR @p_TYPE_SEARCH = 'KT' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
AND ((@p_TYPE_SEARCH = 'HC' AND (CONVERT(DATE,A.USE_EXPORT_DT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = ''))
OR @p_TYPE_SEARCH = 'KT' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
-- TIM KIEM TU NGAY DEN NGAY O KT
AND ((@p_TYPE_SEARCH = 'KT' AND (((A.MAKER_ID_KT IS NULL OR A.MAKER_ID_KT = '')
AND (CONVERT(DATE,A.APPROVE_DT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR ((A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT <> '')
AND ((@p_AUTH_STATUS_KT = 'A' AND (CONVERT(DATE,A.APPROVE_DT_KT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR (@p_AUTH_STATUS_KT = 'U' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR (@p_AUTH_STATUS_KT = 'E' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR (@p_AUTH_STATUS_KT = 'R' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR ((@p_AUTH_STATUS_KT = '' OR @p_AUTH_STATUS_KT IS NULL) AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = '')))
AND B.CONFIRM_STATUS = 'Y')))
OR @p_TYPE_SEARCH = 'HC' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
AND ((@p_TYPE_SEARCH = 'KT' AND (((A.MAKER_ID_KT IS NULL OR A.MAKER_ID_KT = '')
AND (CONVERT(DATE,A.APPROVE_DT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = ''))
OR ((A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT <> '')
AND ((@p_AUTH_STATUS_KT = 'A' AND (CONVERT(DATE,A.APPROVE_DT_KT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = ''))
OR (@p_AUTH_STATUS_KT = 'U' AND (CONVERT(DATE,A.CREATE_DT_KT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = ''))
OR (@p_AUTH_STATUS_KT = 'E' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR (@p_AUTH_STATUS_KT = 'R' AND (CONVERT(DATE,A.CREATE_DT_KT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = ''))
OR ((@p_AUTH_STATUS_KT = '' OR @p_AUTH_STATUS_KT IS NULL) AND (CONVERT(DATE,A.CREATE_DT_KT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = '')))
AND B.CONFIRM_STATUS = 'Y')))
OR @p_TYPE_SEARCH = 'HC' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
AND (A.USER_EXPORT LIKE '%' + @p_USER_EXPORT + '%' OR @p_USER_EXPORT IS NULL OR @p_USER_EXPORT = '')
AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '')
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
AND (A.CREATE_DT =CONVERT(DATETIME, @p_CREATE_DT, 103) OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
AND (A.APPROVE_DT =CONVERT(DATETIME, @p_APPROVE_DT, 103) OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
AND (A.AUTH_STATUS_KT LIKE '%' + @p_AUTH_STATUS_KT + '%' OR @p_AUTH_STATUS_KT IS NULL OR @p_AUTH_STATUS_KT = '')
AND (A.CREATE_DT_KT =CONVERT(DATETIME, @p_CREATE_DT_KT, 103) OR @p_CREATE_DT_KT IS NULL OR @p_CREATE_DT_KT = '')
AND (A.APPROVE_DT_KT =CONVERT(DATETIME, @p_APPROVE_DT_KT, 103) OR @p_APPROVE_DT_KT IS NULL OR @p_APPROVE_DT_KT = '')
AND (A.MAKER_ID_KT LIKE '%' + @p_MAKER_ID_KT + '%' OR @p_MAKER_ID_KT IS NULL OR @p_MAKER_ID_KT = '')
AND (A.CHECKER_ID_KT LIKE '%' + @p_CHECKER_ID_KT + '%' OR @p_CHECKER_ID_KT IS NULL OR @p_CHECKER_ID_KT = '')
AND (A.REPORT_STATUS LIKE '%' + @p_REPORT_STATUS + '%' OR @p_REPORT_STATUS IS NULL OR @p_REPORT_STATUS = '')
AND (A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR @p_AUTH_STATUS_KT IS NULL OR @p_AUTH_STATUS_KT = '')
AND ((A.MAKER_ID_KT IS NOT NULL AND @p_KT_IS_DO = 'Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
OR ((A.MAKER_ID_KT IS NULL AND @p_KT_IS_DO = 'N'))
OR @p_KT_IS_DO IS NULL OR @p_KT_IS_DO = '')
-- NEW TRANG THAI PHIEU XUAT LA LUU NHAP HOAC TU CHOI THI CHI NGUOI TAO CO THE TIM THAY
AND ((A.AUTH_STATUS IN ('E','R') AND A.MAKER_ID = @p_USER_LOGIN)
OR A.AUTH_STATUS NOT IN ('E','R')
OR (EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,TBP_QLTS,KSV_QLTS',A.BRANCH_CREATE,A.DEPT_CREATE) US
WHERE US.TLNANME = @p_USER_LOGIN))
OR @p_USER_LOGIN IS NULL OR @p_USER_LOGIN = '')
-- 11-03-2022 HUYHT BO SUNG DIEU KIEN TIM KIEM PHIEU XUAT THEO QUYEN KIEM NHIEM
AND ((@p_TYPE_SEARCH='HC'
AND (EXISTS(SELECT * FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,TBP_QLTS,KSV_QLTS',A.BRANCH_CREATE,A.DEPT_CREATE) US
WHERE US.TLNANME = @p_USER_LOGIN))
OR A.MAKER_ID = @p_USER_LOGIN)
OR (@p_TYPE_SEARCH='KT' AND @p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp) AND B.CONFIRM_STATUS = 'Y'
AND NOT EXISTS(SELECT AM.ASSET_ID FROM ASS_USE_MULTI_DT AUMD
LEFT JOIN ASS_MASTER AM ON AUMD.ASSET_ID = AM.ASSET_ID
WHERE AUMD.USER_MASTER_ID = A.USER_MASTER_ID AND AM.AUTH_STATUS <> 'A'))
OR (@p_TYPE_SEARCH='KT' AND @p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_ID AND B.CONFIRM_STATUS = 'Y'
AND NOT EXISTS(SELECT AM.ASSET_ID FROM ASS_USE_MULTI_DT AUMD
LEFT JOIN ASS_MASTER AM ON AUMD.ASSET_ID = AM.ASSET_ID
WHERE AUMD.USER_MASTER_ID = A.USER_MASTER_ID AND AM.AUTH_STATUS <> 'A'))
OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH ='')
AND (@p_REQ_CODE IS NULL OR @p_REQ_CODE = '' OR EXISTS(SELECT 1 FROM ASS_USE_MULTI_DT DT
LEFT JOIN TR_REQUEST_SHOP_DOC B ON DT.REQ_ID = B.REQ_ID
WHERE DT.USE_MULTI_ID = A.USER_MASTER_ID AND B.REQ_CODE LIKE '%' + @p_REQ_CODE + '%'))
ORDER BY A.CREATE_DT DESC
-- PAGING END
END -- PAGING
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_LIQ_REQUEST_Search]'
GO
ALTER PROCEDURE [dbo].[ASS_LIQ_REQUEST_Search]
@p_LIQ_REQ_ID varchar(15) = NULL,
@p_ASS_TYPE_ID varchar(15) = NULL,
@p_REQ_DT VARCHAR(20) = NULL,
@p_BRANCH_ID varchar(15) = NULL,
@p_NOTES nvarchar(1000) = NULL,
@p_RECORD_STATUS varchar(1) = NULL,
@p_MAKER_ID varchar(12) = NULL,
@p_CREATE_DT VARCHAR(20) = NULL,
@p_AUTH_STATUS varchar(50) = NULL,
@p_STATUS varchar(50) = NULL,
@p_CHECKER_ID varchar(12) = NULL,
@p_APPROVE_DT VARCHAR(20) = NULL,
@p_TOP INT = 10,
@p_BRANCH_CREATE VARCHAR(15) = NULL,
@p_LEVEL VARCHAR(50) = 'UNIT',
@p_TERM_ID VARCHAR(15) = NULL,
@p_USER_LOGIN VARCHAR(20)=NULL
AS
BEGIN -- PAGING
DECLARE @DEP_ID VARCHAR(20),@BRANCH_ID VARCHAR(20)
DECLARE @ROLE_LOGIN TABLE(USER_ROLE VARCHAR(20), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20))
INSERT INTO @ROLE_LOGIN
SELECT tugr.ROLE_ID, tugr.BRANCH_ID, tugr.DEPT_ID FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN) tugr
SET @DEP_ID= (SELECT DEP_ID FROM dbo.TL_USER WHERE TLNANME=@p_USER_LOGIN)
SET @BRANCH_ID= (SELECT TLSUBBRID FROM dbo.TL_USER WHERE TLNANME=@p_USER_LOGIN)
DECLARE @lstCOST TABLE (COST_ID VARCHAR(20))
INSERT INTO @lstCOST
SELECT COST_ID FROM dbo.CM_COSTCENTER_DT WHERE BRANCH_ID=@BRANCH_ID AND DEP_ID=@DEP_ID
DECLARE @MAX_ID INT = (SELECT MAX(CRP.ID) FROM CM_REQUEST_PROCESS CRP WHERE CRP.REQ_ID = @p_LIQ_REQ_ID)
DECLARE @LIQ_REQ_ID_Temp TABLE(LIQ_REQ_ID VARCHAR(20))
INSERT INTO @LIQ_REQ_ID_Temp
SELECT A.LIQ_REQ_ID FROM ASS_LIQ_REQUEST A
LEFT JOIN CM_REQUEST_PROCESS B ON A.LIQ_REQ_ID = B.REQ_ID
WHERE (
EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US WHERE US.TLNANME = @p_USER_LOGIN)
OR EXISTS(SELECT RL.USER_ROLE FROM @ROLE_LOGIN RL WHERE RL.BRANCH_ID = B.BRANCH_ID
AND ((B.BRANCH_ID = 'DV0001' AND B.DEP_ID = RL.DEP_ID) OR B.BRANCH_ID <> 'DV0001') AND RL.USER_ROLE = B.ROLE)
OR EXISTS(SELECT * FROM @ROLE_LOGIN RL
JOIN CM_REQUEST_PROCESS C ON C.REQ_ID = A.LIQ_REQ_ID AND RL.BRANCH_ID = C.BRANCH_ID
AND ((C.BRANCH_ID = 'DV0001' AND C.DEP_ID = RL.DEP_ID) OR C.BRANCH_ID <> 'DV0001') AND RL.USER_ROLE = C.ROLE)
OR A.MAKER_ID = @p_USER_LOGIN
)
GROUP BY A.LIQ_REQ_ID
--SELECT DISTINCT BRANCH_ID,DEP_ID FROM CM_REQUEST_PROCESS WHERE PROCESS_KEY = 'AssLiqRequest' AND REQ_ID = @p_LIQ_REQ_ID
IF(@p_TOP IS NULL OR @p_TOP = '' OR @p_TOP = 0)
-- PAGING BEGIN
SELECT A.*,C.BRANCH_NAME, C.BRANCH_CODE,E.TYPE_NAME, CB.BRANCH_CODE AS BRANCH_CODE_CREATE, CB.BRANCH_NAME AS BRANCH_NAME_CREATE,
T.TERM_CODE, T.TERM_TYPE
,CASE WHEN A.IS_REJECTED = 0 AND A.AUTH_STATUS = 'A' THEN N'Mới tạo'
WHEN A.IS_REJECTED = 0 THEN (SELECT CRP.DESCRIBE FROM CM_REQUEST_PROCESS CRP WHERE CRP.REQ_ID = A.LIQ_REQ_ID AND CRP.DONE = 0)
WHEN A.IS_REJECTED = 1 THEN N'Từ chối'
ELSE CRP.DESCRIBE
END AS DESCRIBE, CRP.STATUS
,CASE
WHEN A.IS_REJECTED = 1 THEN N'Từ chối'
WHEN A.IS_REJECTED = 0 AND A.AUTH_STATUS = 'L' THEN N'Đã duyệt'
ELSE N'Chờ duyệt'
END AS AUTH_STATUS_NAME
-- SELECT END
FROM ASS_LIQ_REQUEST A
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_BRANCH CB ON A.BRANCH_CREATE = CB.BRANCH_ID
LEFT JOIN ASS_TYPE E ON A.ASS_TYPE_ID=E.TYPE_ID
LEFT JOIN CM_TERM T ON T.TERM_ID = A.TERM_ID
LEFT JOIN CM_REQUEST_PROCESS CRP ON CRP.REQ_ID = A.LIQ_REQ_ID AND CRP.DONE = 0
WHERE 1 = 1
AND (A.LIQ_REQ_ID LIKE '%' + @p_LIQ_REQ_ID + '%' OR @p_LIQ_REQ_ID IS NULL OR @p_LIQ_REQ_ID = '')
AND (A.ASS_TYPE_ID LIKE '%' + @p_ASS_TYPE_ID + '%' OR @p_ASS_TYPE_ID IS NULL OR @p_ASS_TYPE_ID = '')
AND (DATEDIFF(DAYOFYEAR, A.REQ_DT,CONVERT(DATETIME, @p_REQ_DT, 103)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')
AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '')
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
--AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
AND A.RECORD_STATUS = '1'
AND ((@p_AUTH_STATUS = 'A' AND A.AUTH_STATUS = 'L')
OR (@p_AUTH_STATUS = 'E' AND A.AUTH_STATUS = 'B')
OR (@p_AUTH_STATUS = 'U' AND A.AUTH_STATUS IN (SELECT * FROM STRING_SPLIT('C,E,Z,F,G,H,K', ',')))
OR (@p_AUTH_STATUS = 'R' AND (A.AUTH_STATUS = 'R' OR A.IS_REJECTED = 1))
OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
)
--AND (CRP.PROCESS_ID LIKE '%' + @p_AUTH_STATUS + '%' OR (CRP.PROCESS_ID IS NULL AND @p_AUTH_STATUS<> N'U') OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
AND (A.TERM_ID = @p_TERM_ID OR @p_TERM_ID IS NULL OR @p_TERM_ID = '')
AND ((@p_STATUS = 'Z' AND A.IS_REJECTED = 1) OR (CRP.[STATUS] LIKE '%' + @p_STATUS + '%' OR @p_STATUS IS NULL OR @p_STATUS = ''))
AND EXISTS(SELECT * FROM @LIQ_REQ_ID_Temp RL WHERE RL.LIQ_REQ_ID = A.LIQ_REQ_ID)
--AND CRP.ROLE IN (SELECT USER_ROLE FROM @ROLE_LOGIN)
OR A.MAKER_ID = @p_USER_LOGIN
ORDER BY A.CREATE_DT DESC
-- PAGING END
ELSE
---- PAGING BEGIN
SELECT TOP(CONVERT(INT,@p_TOP)) A.*,C.BRANCH_NAME, C.BRANCH_CODE,E.TYPE_NAME, CB.BRANCH_CODE AS BRANCH_CODE_CREATE, CB.BRANCH_NAME AS BRANCH_NAME_CREATE,
T.TERM_CODE, T.TERM_TYPE
,CASE WHEN A.IS_REJECTED = 0 AND A.AUTH_STATUS = 'A' THEN N'Mới tạo'
WHEN A.IS_REJECTED = 0 THEN (SELECT CRP.DESCRIBE FROM CM_REQUEST_PROCESS CRP WHERE CRP.REQ_ID = A.LIQ_REQ_ID AND CRP.DONE = 0)
WHEN A.IS_REJECTED = 1 THEN N'Từ chối'
ELSE CRP.DESCRIBE
END AS DESCRIBE, CRP.STATUS
,CASE
WHEN A.IS_REJECTED = 1 THEN N'Từ chối'
WHEN A.IS_REJECTED = 0 AND A.AUTH_STATUS = 'L' THEN N'Đã duyệt'
ELSE N'Chờ duyệt'
END AS AUTH_STATUS_NAME
-- SELECT END
FROM ASS_LIQ_REQUEST A
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_BRANCH CB ON A.BRANCH_CREATE = CB.BRANCH_ID
LEFT JOIN ASS_TYPE E ON A.ASS_TYPE_ID=E.TYPE_ID
LEFT JOIN CM_TERM T ON T.TERM_ID = A.TERM_ID
LEFT JOIN CM_REQUEST_PROCESS CRP ON CRP.REQ_ID = A.LIQ_REQ_ID AND CRP.DONE = 0
WHERE 1 = 1
AND (A.LIQ_REQ_ID LIKE '%' + @p_LIQ_REQ_ID + '%' OR @p_LIQ_REQ_ID IS NULL OR @p_LIQ_REQ_ID = '')
AND (A.ASS_TYPE_ID LIKE '%' + @p_ASS_TYPE_ID + '%' OR @p_ASS_TYPE_ID IS NULL OR @p_ASS_TYPE_ID = '')
AND (DATEDIFF(DAYOFYEAR, A.REQ_DT,CONVERT(DATETIME, @p_REQ_DT, 103)) = 0 OR @p_REQ_DT IS NULL OR @p_REQ_DT = '')
AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '')
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
--AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
AND ((@p_AUTH_STATUS = 'A' AND A.AUTH_STATUS = 'L')
OR (@p_AUTH_STATUS = 'E' AND A.AUTH_STATUS = 'B')
OR (@p_AUTH_STATUS = 'U' AND A.AUTH_STATUS IN (SELECT * FROM STRING_SPLIT('C,E,Z,F,G,H,K', ',')))
OR (@p_AUTH_STATUS = 'R' AND (A.AUTH_STATUS = 'R' OR A.IS_REJECTED = 1))
OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
)
AND A.RECORD_STATUS = '1'
--AND (CRP.PROCESS_ID LIKE '%' + @p_AUTH_STATUS + '%' OR (CRP.PROCESS_ID IS NULL AND @p_AUTH_STATUS<> N'U') OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
AND (A.TERM_ID = @p_TERM_ID OR @p_TERM_ID IS NULL OR @p_TERM_ID = '')
AND ((@p_STATUS = 'Z' AND A.IS_REJECTED = 1) OR (CRP.[STATUS] LIKE '%' + @p_STATUS + '%' OR @p_STATUS IS NULL OR @p_STATUS = ''))
AND EXISTS(SELECT * FROM @LIQ_REQ_ID_Temp RL WHERE RL.LIQ_REQ_ID = A.LIQ_REQ_ID)
--AND CRP.ROLE IN (SELECT USER_ROLE FROM @ROLE_LOGIN)
OR A.MAKER_ID = @p_USER_LOGIN
ORDER BY A.CREATE_DT DESC
-- PAGING END
END -- PAGING
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[CM_EMPLOYEE_Search]'
GO
/*
[CM_EMPLOYEE_Search] '','','Nguyễn Minh Tuân','DV0002','','','','','','','','','','100', 'ALL'
*/
ALTER PROCEDURE [dbo].[CM_EMPLOYEE_Search]
@p_EMP_ID varchar(15) = null ,
@p_EMP_CODE varchar(15) = NULL ,
@p_EMP_NAME nvarchar(50) = NULL ,
@p_BRANCH_ID varchar(15) = NULL ,
@p_BRANCH_CODE varchar(15) = NULL ,
@p_BRANCH_NAME NVARCHAR(50) = null,
@p_DEP_ID varchar(15) = NULL ,
@p_NOTES nvarchar(1000) = NULL ,
@p_RECORD_STATUS varchar(1) = NULL ,
@p_AUTH_STATUS varchar(1) = NULL ,
@p_MAKER_ID varchar(100) = NULL ,
@p_CREATE_DT VARCHAR(20) = NULL,
@p_CHECKER_ID varchar(100) = NULL ,
@p_APPROVE_DT VARCHAR(20) = NULL,
@p_TOP INT = NULL,
@p_LEVEL varchar(10) = NULL
AS
BEGIN -- PAGING
DECLARE @l_HS_ID VARCHAR(15) = (SELECT TOP 1 A.BRANCH_ID FROM CM_BRANCH A WHERE A.BRANCH_TYPE = 'HS')
declare @tmp table(BRANCH_ID varchar(15))
insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
IF (@p_LEVEL = 'ALL' AND @p_BRANCH_ID <> @l_HS_ID)
INSERT INTO @tmp SELECT @l_HS_ID
IF(@p_TOP IS NULL OR @p_TOP = '' OR @p_TOP = 0)
-- PAGING BEGIN
SELECT A.*,C.AUTH_STATUS_NAME,B.BRANCH_CODE,B.BRANCH_NAME,
--dbo.FN_GET_CHINHANH(B.BRANCH_ID,'KV') KHU_VUC,
dbo.FN_GET_CHINHANH(B.BRANCH_ID,'CN') CHI_NHANH,
--B.BRANCH_NAME PGD,
D.DEP_NAME PGD,
CR.REGION_NAME AS KHUVUC,
D.DEP_NAME,
E.CONTENT AS RECORD_STATUS_NAME
--, U.PhoneNumber AS PHONE_NUMBER,L.USER_DOMAIN
-- SELECT END
FROM CM_EMPLOYEE A
LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS=C.AUTH_STATUS
LEFT JOIN CM_DEPARTMENT D ON A.DEP_ID=D.DEP_ID
LEFT JOIN CM_ALLCODE E ON E.CDNAME = 'RECORD_STATUS' AND E.CDVAL = A.RECORD_STATUS
--LEFT JOIN CM_EMPLOYEE_LOG L ON L.EMP_CODE = A.EMP_CODE
--LEFT JOIN TL_USER U ON U.TLNANME = L.USER_DOMAIN
LEFT JOIN CM_REGIONS CR ON CR.REGION_ID = B.REGION_ID
WHERE 1 = 1
AND (A.EMP_ID LIKE '%' + @p_EMP_ID + '%' OR @p_EMP_ID IS NULL OR @p_EMP_ID = '')
AND (A.EMP_CODE LIKE '%' + @p_EMP_CODE + '%' OR @p_EMP_CODE IS NULL OR @p_EMP_CODE = '')
AND (A.EMP_NAME COLLATE Latin1_general_CI_AI LIKE N'%' + @p_EMP_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_EMP_NAME IS NULL OR @p_EMP_NAME = '')
--AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
AND (B.BRANCH_CODE LIKE '%' + @p_BRANCH_CODE + '%' OR @p_BRANCH_CODE IS NULL OR @p_BRANCH_CODE = '')
AND (A.DEP_ID LIKE '%' + @p_DEP_ID + '%' OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '')
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
AND (DATEDIFF(DAY,A.CREATE_DT ,CONVERT(DATETIME, @p_CREATE_DT, 103)) =0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
AND (DATEDIFF(DAY,A.APPROVE_DT ,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM CM_BRANCH_GETCHILDID(@p_BRANCH_ID)))
AND A.RECORD_STATUS = '1'
AND ((@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp)
OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_ID)) OR @p_BRANCH_ID = '' OR @p_BRANCH_ID IS NULL
)
-- PAGING END
ELSE
-- PAGING BEGIN
SELECT TOP(CONVERT(INT,@p_TOP))A.*,C.AUTH_STATUS_NAME,B.BRANCH_CODE,B.BRANCH_NAME,
--dbo.FN_GET_CHINHANH(B.BRANCH_ID,'KV') KHU_VUC,
dbo.FN_GET_CHINHANH(B.BRANCH_ID,'CN') CHI_NHANH,
--B.BRANCH_NAME PGD,
D.DEP_NAME PGD,
CR.REGION_NAME AS KHUVUC,
D.DEP_NAME,
E.CONTENT AS RECORD_STATUS_NAME
--, U.PhoneNumber AS PHONE_NUMBER,L.USER_DOMAIN
-- SELECT END
FROM CM_EMPLOYEE A
LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS=C.AUTH_STATUS
LEFT JOIN CM_DEPARTMENT D ON A.DEP_ID=D.DEP_ID
LEFT JOIN CM_ALLCODE E ON E.CDNAME = 'RECORD_STATUS' AND E.CDVAL = A.RECORD_STATUS
--LEFT JOIN CM_EMPLOYEE_LOG L ON L.EMP_CODE = A.EMP_CODE
--LEFT JOIN TL_USER U ON U.TLNANME = L.USER_DOMAIN
LEFT JOIN CM_REGIONS CR ON CR.REGION_ID = B.REGION_ID
WHERE 1 = 1
AND (A.EMP_ID LIKE '%' + @p_EMP_ID + '%' OR @p_EMP_ID IS NULL OR @p_EMP_ID = '')
AND (A.EMP_CODE LIKE '%' + @p_EMP_CODE + '%' OR @p_EMP_CODE IS NULL OR @p_EMP_CODE = '')
AND (A.EMP_NAME COLLATE Latin1_general_CI_AI LIKE N'%' + @p_EMP_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_EMP_NAME IS NULL OR @p_EMP_NAME = '')
--AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
AND (B.BRANCH_CODE LIKE '%' + @p_BRANCH_CODE + '%' OR @p_BRANCH_CODE IS NULL OR @p_BRANCH_CODE = '')
AND (A.DEP_ID LIKE '%' + @p_DEP_ID + '%' OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '')
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
AND (DATEDIFF(DAY,A.CREATE_DT ,CONVERT(DATETIME, @p_CREATE_DT, 103)) =0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
AND (DATEDIFF(DAY,A.APPROVE_DT ,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
--AND (A.BRANCH_ID IN (SELECT BRANCH_ID FROM CM_BRANCH_GETCHILDID(@p_BRANCH_ID)))
AND A.RECORD_STATUS = '1'
AND ((@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp)
OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_ID)) OR @p_BRANCH_ID = '' OR @p_BRANCH_ID IS NULL
)
-- PAGING END
END -- PAGING
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_USE_MULTI_BVB_MASTER_App]'
GO
ALTER PROCEDURE [dbo].[ASS_USE_MULTI_BVB_MASTER_App]
--@p_USE_ID varchar(15) = NULL,
@p_USER_MASTER_ID varchar(15) = NULL,
@p_AUTH_STATUS varchar(1) = NULL,
@p_CHECKER_ID varchar(100) = NULL,
@p_APPROVE_DT VARCHAR(20) = NULL
AS
BEGIN TRY
--DECLARE @l_BRANCH_ID VARCHAR(15)
-- DECLARE @l_DEPT_ID VARCHAR(15)
-- DECLARE @l_EMP_ID VARCHAR(15)
-- DECLARE @l_DIVISION_ID VARCHAR(15)
-- DECLARE @l_VALUE_ID VARCHAR(15)
--
-- --DECLARE @l_LOCATION nvarchar(500)
-- DECLARE @l_LOCHIST_ID VARCHAR(15)
--
-- DECLARE @l_ASSET_ID VARCHAR(15)
-- DECLARE @l_WAHDT_ID VARCHAR(15)
-- DECLARE @l_WAH_ID VARCHAR(15)
-- DECLARE @l_MAKER_ID varchar(15)
--
-- DECLARE @l_AMORT_MONTH decimal(18,2)
-- DECLARE @l_AMORT_START_DATE datetime, @l_AMORT_END_DATE datetime
-- DECLARE @l_FIRST_AMORT_AMT numeric(18,0)
-- DECLARE @l_MONTHLY_AMT numeric(18,0)
-- DECLARE @l_ASS_AMORT_AMT numeric(18,0)
-- DECLARE @sToday varchar(10) = convert(varchar(10), getdate(), 103)
-- DECLARE @l_ENTRY_BOOKED varchar(1)
-- DECLARE @l_HO_BRN_ID varchar(15)
-- DECLARE @l_AMORT_AMT decimal(18) = NULL
-- DECLARE @l_BUY_PRICE decimal(18) = NULL
-- DECLARE @l_ET_ID varchar(15)
-- DEClare @p_ADDNEW_ID varchar(15)
--
-- DECLARE @l_SUPPEND_GL varchar(50)
-- DECLARE @l_ASSET_GL varchar(50)
-- declare @l_ASSET_VALUE decimal(18,0)
-- DECLARE @l_GROUP_ID varchar(15)
-- DECLARE @l_CORE_NOTE NVARCHAR(500)
-- DECLARE @l_TYPE_ID varchar(15) = NULL
-- declare @l_TRN_REF_NO varchar(20)
-- declare @l_DO_BRANCH_ID varchar(15)
-- DECLARE @l_AMORT_STATUS VARCHAR(15) = 'CKH'
-- DECLARE @l_AMORT_MONTH_ASS_USE DECIMAL(18,2) = NULL
-- declare @l_AUTH_STATUS varchar(15) = ''
-- declare @l_ASSHIST_ID varchar(15)
-- --Lay thong tin kho mac dinh
-- SELECT @l_WAH_ID = P.ParaValue FROM SYS_PARAMETERS P WHERE P.ParaKey='ASSET_WAREHOUSE'
--
-- --BRN_ID HOI SO
-- SELECT @l_HO_BRN_ID = BRANCH_ID FROM CM_BRANCH A WHERE A.BRANCH_TYPE = 'HS'
--
-- --Lay branch_id cua user duyet
-- select @l_DO_BRANCH_ID = a.TLSUBBRID from TL_USER a where a.TLNANME = @p_CHECKER_ID
--
-- --Lay suppend GL
-- SELECT @l_SUPPEND_GL = A.ParaValue FROM SYS_PARAMETERS A WHERE A.ParaKey='ASSET_SUPPEND_GL'
--
-- --ASSET_GL
-- SELECT @l_ASSET_GL = ASSET_ACCTNO FROM ASS_GROUP A WHERE A.GROUP_ID = @l_GROUP_ID
IF (SELECT AUTH_STATUS_KT FROM ASS_USE_MULTI_MASTER WHERE [USER_MASTER_ID] = @p_USER_MASTER_ID) = 'A'
BEGIN
SELECT '-1' as Result, (SELECT ErrorDesc from SYS_ERROR WHERE ErrorCode = 'ASS-99998') ErrorDesc
RETURN '-1'
END
BEGIN TRANSACTION
--LUCTV: 26-20-2018 KIEM TRA NEU TINH TRANG DANG LA 'R' THI KHONG CHO PHEP DUYET
IF(EXISTS(SELECT * FROM ASS_USE_MULTI_MASTER WHERE AUTH_STATUS ='R' AND USER_MASTER_ID =@p_USER_MASTER_ID))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, N'Thông tin xuất sử dụng tài sản đang bị trả về. Vui lòng cập nhật lại thông tin trước khi duyệt' ErrorDesc
RETURN '-1'
END
IF(EXISTS(SELECT 1 FROM ASS_USE_MULTI_MASTER WHERE AUTH_STATUS ='E' AND USER_MASTER_ID =@p_USER_MASTER_ID))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, N'Thông tin xuất sử dụng tài sản chưa được gửi phê duyệt' ErrorDesc
RETURN '-1'
END
--APPROVE MASTER
UPDATE [dbo].[ASS_USE_MULTI_MASTER]
SET AUTH_STATUS = 'A',
CHECKER_ID = @p_CHECKER_ID,AUTH_STATUS_KT='E',MAKER_ID_KT= NULL, APPROVE_DT_KT = NULL, CHECKER_ID_KT = NULL,CREATE_DT_KT= NULL,
APPROVE_DT = CONVERT(datetime, @p_APPROVE_DT, 103)
WHERE [USER_MASTER_ID] = @p_USER_MASTER_ID
--Update trang thai cho giao dich xuat su dung
UPDATE [dbo].[ASS_USE_MULTI_DT]
SET AUTH_STATUS = 'A',
CHECKER_ID = @p_CHECKER_ID,
APPROVE_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103)
WHERE USER_MASTER_ID = @p_USER_MASTER_ID
-- DECLARE @USE_MULTI_ID varchar(15)
-- DECLARE @ASSET_ID varchar(15)
-- DECLARE DataCusor SCROLL CURSOR
-- FOR
-- SELECT A.USE_MULTI_ID,A.ASSET_ID
-- FROM [dbo].[ASS_USE_MULTI_DT] A
-- WHERE A.USER_MASTER_ID=@p_USER_MASTER_ID
-- OPEN DataCusor
--
--FETCH NEXT FROM DataCusor INTO @USE_MULTI_ID,@ASSET_ID
--WHILE @@FETCH_STATUS = 0
--BEGIN
--
-- --Lay thong tin giao dich
-- SELECT @l_ASSET_ID = ASSET_ID, @l_BRANCH_ID = BRANCH_ID, @l_DEPT_ID = DEPT_ID,
-- @l_EMP_ID = EMP_ID, @l_DIVISION_ID = DIVISION_ID, @l_CORE_NOTE = CORE_NOTE, @l_AUTH_STATUS = AUTH_STATUS,
-- @l_AMORT_START_DATE = AMORT_START_DATE, @l_MAKER_ID = MAKER_ID, @l_AMORT_MONTH_ASS_USE = AMORT_MONTH,
-- @l_AMORT_END_DATE = AMORT_END_DATE
-- FROM [dbo].[ASS_USE_MULTI_DT]
-- WHERE [USE_MULTI_ID] = @USE_MULTI_ID
--
-- --Lay thong tin so thang khau hao
-- SELECT @l_AMORT_MONTH = A.AMORT_MONTH, @l_ASS_AMORT_AMT = AMORT_AMT, @l_ENTRY_BOOKED = ENTRY_BOOKED,
-- @l_AMORT_AMT = A.AMORT_AMT, @l_BUY_PRICE = BUY_PRICE, @l_GROUP_ID = GROUP_ID,@l_TYPE_ID = A.[TYPE_ID]
-- FROM ASS_MASTER A
-- WHERE A.ASSET_ID = @l_ASSET_ID
--
-- --TINH SO THANG THEO THUC TE KHI XUAT SU DUNG
-- SET @l_AMORT_MONTH = @l_AMORT_MONTH_ASS_USE
--
-- --IF @l_AMORT_MONTH_ASS_USE IS NULL--TRUONG HOP CCLD DO PHCQT XUAT
-- --BEGIN
-- -- SET @l_AMORT_END_DATE = NULL;
-- -- SET @l_MONTHLY_AMT = 0;
-- -- SET @l_FIRST_AMORT_AMT = 0;
-- -- SET @l_AMORT_STATUS = 'VNM'
-- --END
-- --ELSE
-- --IF @l_AMORT_MONTH = 0
-- --BEGIN
-- -- SET @l_AMORT_END_DATE = NULL;
-- -- SET @l_MONTHLY_AMT = 0;
-- -- SET @l_FIRST_AMORT_AMT = 0;
-- -- SET @l_AMORT_STATUS = 'KKH'
-- --END
-- --ELSE
-- --BEGIN
-- -- --Tinh ngay ket thuc khau hao
-- -- IF @l_TYPE_ID = 'TSCD'
-- -- BEGIN
-- -- IF @l_AMORT_END_DATE IS NULL OR @l_AMORT_END_DATE = ''
-- -- SET @l_AMORT_END_DATE = DATEADD(MONTH, @l_AMORT_MONTH, @l_AMORT_START_DATE) - 1
-- -- --CAP NHAT TRANG THAI KHAU HAO
-- -- SET @l_AMORT_STATUS = 'CKH'
-- -- END
-- -- ELSE
-- -- BEGIN
-- -- DECLARE @l_ENDDATE_TEMP DATETIME = (CONVERT(VARCHAR(10),(YEAR(@l_AMORT_START_DATE))) + '-' + CONVERT(VARCHAR(10),MONTH(@l_AMORT_START_DATE))+'-' + '1')
-- -- SET @l_AMORT_END_DATE = DATEADD(MONTH, @l_AMORT_MONTH, @l_ENDDATE_TEMP ) - 1
--
-- -- --CAP NHAT TRANG THAI KHAU HAO
-- -- SET @l_AMORT_STATUS = 'VNM'
-- -- END
--
-- -- --Tinh so tien khau hao thang dau tien va so tien khau hao hang thang
-- -- SET @l_MONTHLY_AMT = ROUND(@l_ASS_AMORT_AMT / @l_AMORT_MONTH, -3)
-- -- SET @l_FIRST_AMORT_AMT = ROUND(@l_MONTHLY_AMT/dbo.[FN_GetDaysInMonth](@l_AMORT_START_DATE) * (DATEDIFF(day,@l_AMORT_START_DATE, dbo.FN_GetLastDayOfMonth(@l_AMORT_START_DATE)) + 1), -3)
-- -- ----CAP NHAT TRANG THAI KHAU HAO
-- -- --SET @l_AMORT_STATUS = 'CKH'
-- --END
--
-- --COMMIT TRANSACTION
--
-- --BEGIN TRANSACTION
--
--
-- IF @@Error <> 0 GOTO ABORT
--
--
--
-- DECLARE @l_AMORT_RATE DECIMAL(18,2)
-- IF @l_AMORT_MONTH > 0 AND @l_AMORT_MONTH IS NOT NULL
-- SET @l_AMORT_RATE = ROUND((100 /@l_AMORT_MONTH) * 12, 2)
-- ELSE
-- BEGIN
-- SET @l_AMORT_RATE = 0
-- IF(@l_TYPE_ID = 'CCLD')
-- SET @l_AMORT_MONTH = 1
-- END
--
-- --Update tai san da xuat su dung
-- UPDATE ASS_MASTER
-- SET BRANCH_ID = @l_BRANCH_ID,
-- DEPT_ID = @l_DEPT_ID,
-- EMP_ID = @l_EMP_ID,
-- DIVISION_ID = @l_DIVISION_ID,
-- -- AMORT_START_DATE = @l_AMORT_START_DATE,
-- -- AMORT_END_DATE = @l_AMORT_END_DATE,
-- -- FIRST_AMORT_AMT = @l_FIRST_AMORT_AMT,
-- -- AMORT_MONTH = @l_AMORT_MONTH,
-- -- MONTHLY_AMORT_AMT = @l_MONTHLY_AMT,
-- -- AMORTIZED_AMT = ISNULL(AMORTIZED_AMT,0),
-- -- AMORTIZED_MONTH = 0,
-- -- AMORT_STATUS = @l_AMORT_STATUS,--'CKH', --Update trang thai cho khau hao
-- USE_DATE = CONVERT(DATETIME, @sToday, 103)
-- -- ENTRY_BOOKED = @l_ENTRY_BOOKED,
-- -- AMORT_RATE = @l_AMORT_RATE
-- WHERE ASSET_ID = @l_ASSET_ID
--
---- UPDATE ASS_MASTER
---- SET USE_DATE = CONVERT(DATETIME, @sToday, 103),
---- ENTRY_BOOKED = @l_ENTRY_BOOKED,
---- AMORT_RATE = @l_AMORT_RATE
---- WHERE ASSET_ID = @l_ASSET_ID
-- IF @@Error <> 0 GOTO ABORT
--
--
-- --Phat sinh Asset_ID
-- EXEC SYS_CodeMasters_Gen 'ASS_MASTER_HIST', @l_ASSHIST_ID out
-- IF @l_ASSHIST_ID='' OR @l_ASSHIST_ID IS NULL GOTO ABORT
--
-- INSERT INTO ASS_MASTER_HIST
-- SELECT @l_ASSHIST_ID, a.*
-- FROM ASS_MASTER a
-- where a.ASSET_ID = @l_ASSET_ID
--
-- IF @@Error <> 0 GOTO ABORT
--
--
-- /***THIEUVQ - 10/09/2014 CAP NHAT LAI DON VI KHI XUAT SU DUNG NEU TS LA XE***/
-- --UPDATE CAR_MASTER SET BRANCH_ID = @l_BRANCH_ID WHERE ASSET_ID = @l_ASSET_ID
--
-- --Insert phan xuat kho
-- SELECT @l_WAHDT_ID = WAHDT_ID FROM ASS_WAREHOUSE_DT A WHERE A.ASSET_ID = @l_ASSET_ID AND A.STATUS='I'
--
-- UPDATE ASS_WAREHOUSE_DT
-- SET OUT_DATE = GETDATE(),
-- STATUS = 'O'
-- WHERE WAHDT_ID = @l_WAHDT_ID
-- IF @@Error <> 0 GOTO ABORT
--
-- ----Insert bang ASS_LOCATION_HIST
-- EXEC SYS_CodeMasters_Gen 'ASS_LOCATION_HIST', @l_LOCHIST_ID out
-- IF @l_LOCHIST_ID='' OR @l_LOCHIST_ID IS NULL GOTO ABORT
--
-- INSERT INTO ASS_LOCATION_HIST
-- (
-- LOCHIST_ID, ASSET_ID, USE_START_DT, USE_END_DT, BRANCH_ID, DEPT_ID,
-- EMP_ID, LOCATION, ISLEAF, PARENT_ID
-- )
-- VALUES
-- (
-- @l_LOCHIST_ID, @l_ASSET_ID, GETDATE(), NULL, @l_BRANCH_ID, @l_DEPT_ID,
-- @l_EMP_ID, '', 'Y', NULL
-- )
-- IF @@Error <> 0 GOTO ABORT
--
-- --INSERT VAO BANG ASS_TRANSACTIONS
-- INSERT INTO ASS_TRANSACTIONS(ASSET_ID, TRN_ID, TRN_TYPE, TRN_DATE, RECORD_STATUS, AUTH_STATUS,
-- [MAKER_ID], [CREATE_DT], [CHECKER_ID], [APPROVE_DT],ASSHIST_ID, LOCHIST_ID
-- )VALUES
-- (
-- @l_ASSET_ID, @USE_MULTI_ID, 'ADD_USE', CONVERT(DATETIME, @sToday, 103), '1', 'A',
-- @l_MAKER_ID, CONVERT(DATETIME, @sToday, 103), @p_CHECKER_ID, CONVERT(DATETIME, @p_APPROVE_DT, 103) ,@l_ASSHIST_ID,@l_LOCHIST_ID
-- )
-- IF @@Error <> 0 GOTO ABORT
-- FETCH NEXT FROM DataCusor INTO @USE_MULTI_ID,@ASSET_ID
-- END
-- CLOSE DataCusor
-- DEALLOCATE DataCusor
--
-- --START PHUCVH 07/10/22 UPDATE ALLOCATED PHIẾU YÊU CẦU DT
-- DECLARE @TBL_CHECK_UPD TABLE (REQDT_ID VARCHAR(15), REQ_DOC_ID VARCHAR(15), ASS_GROUP_ID VARCHAR(15), ASS_ID VARCHAR(15), REQ_DT_TYPE VARCHAR(20), TYPE_XL VARCHAR(20))
--
-- INSERT INTO @TBL_CHECK_UPD
-- SELECT DISTINCT A.REQDT_ID, A.REQ_DOC_ID, A.ASS_GROUP_ID, A.ASS_ID, A.REQ_DT_TYPE, A.TYPE_XL
-- FROM ASS_USE_MULTI_DT B
-- LEFT JOIN TR_REQUEST_SHOP_DOC_DT A ON B.REQ_ID = A.REQ_DOC_ID
-- WHERE B.USER_MASTER_ID = @p_USER_MASTER_ID AND B.REQ_ID IS NOT NULL AND B.REQ_ID <> ''
-- AND(A.REQ_DT_TYPE = 'BUYNEW'
-- OR (A.REQ_DT_TYPE = 'XKSD' AND A.TYPE_XL = 'CPTK'))
--
-- DECLARE @C_REQDT_ID VARCHAR(15), @C_REQ_DOC_ID VARCHAR(15), @C_ASS_GROUP_ID VARCHAR(15), @C_ASS_ID VARCHAR(15), @C_REQ_DT_TYPE VARCHAR(15), @C_TYPE_XL VARCHAR(20)
--
-- DECLARE DATA_CURSOR_CHECK_UPD CURSOR FOR
-- SELECT * FROM @TBL_CHECK_UPD
--
-- OPEN DATA_CURSOR_CHECK_UPD
--
-- FETCH NEXT FROM DATA_CURSOR_CHECK_UPD INTO
-- @C_REQDT_ID,@C_REQ_DOC_ID,@C_ASS_GROUP_ID,@C_ASS_ID,@C_REQ_DT_TYPE,@C_TYPE_XL
--
-- DECLARE @ALLOCATED INT
-- WHILE @@FETCH_STATUS = 0
-- BEGIN
-- SET @ALLOCATED = (SELECT COUNT(*)
-- FROM ASS_USE_MULTI_DT A
-- LEFT JOIN ASS_MASTER C ON A.ASSET_ID = C.ASSET_ID
-- GROUP BY A.REQ_ID, C.GROUP_ID, C.REQ_ID
-- HAVING A.REQ_ID = @C_REQ_DOC_ID
-- AND C.GROUP_ID = @C_ASS_GROUP_ID
-- AND ((@C_REQ_DT_TYPE = 'BUYNEW' AND C.REQ_ID = @C_REQ_DOC_ID)
-- OR (@C_TYPE_XL = 'CPTK' AND (C.REQ_ID IS NULL OR C.REQ_ID = ''))))
--
-- UPDATE TR_REQUEST_SHOP_DOC_DT
-- SET ALLOCATED = @ALLOCATED
-- WHERE REQDT_ID = @C_REQDT_ID
--
-- FETCH NEXT FROM DATA_CURSOR_CHECK_UPD INTO
-- @C_REQDT_ID,@C_REQ_DOC_ID,@C_ASS_GROUP_ID,@C_ASS_ID,@C_REQ_DT_TYPE,@C_TYPE_XL
-- END
-- CLOSE DATA_CURSOR_CHECK_UPD
-- DEALLOCATE DATA_CURSOR_CHECK_UPD
-- --END PHUCVH 07/10/22 UPDATE ALLOCATED PHIẾU YÊU CẦU DT
-- GIANT 21/09/2021
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_USER_MASTER_ID, -- REQ_ID - varchar(15)
'APPROVE', -- PROCESS_ID - varchar(10)
@p_CHECKER_ID, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
N'Trưởng đơn vị phê duyệt ' ,
N'Trưởng đơn vị phê duyệt thành công' -- PROCESS_DESC - nvarchar(1000)
)
COMMIT TRANSACTION
SELECT '0' as Result, '' ErrorDesc
RETURN '0'
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
CLOSE DataCusor
DEALLOCATE DataCusor
SELECT '-1' as Result, ERROR_MESSAGE() ErrorDesc
RETURN '-1'
END CATCH
ABORT:
BEGIN
ROLLBACK TRANSACTION
CLOSE DataCusor
DEALLOCATE DataCusor
SELECT '-1' as Result, ERROR_MESSAGE() ErrorDesc
RETURN '-1'
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_TRANSFER_MULTI_MASTER_BBBG]'
GO
ALTER PROC [dbo].[ASS_TRANSFER_MULTI_MASTER_BBBG]
@TRANS_MULTI_MASTER_ID varchar(15) = null
AS
DECLARE @REQ_ID VARCHAR(20) = (SELECT REQ_ID FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
DECLARE @REQ_MAKER VARCHAR(110) = (SELECT TRSD.MAKER_ID FROM TR_REQUEST_SHOP_DOC TRSD WHERE TRSD.REQ_ID = @REQ_ID)
DECLARE @REQ_MAKER_DT VARCHAR(110) = (SELECT TRSD.CREATE_DT FROM TR_REQUEST_SHOP_DOC TRSD WHERE TRSD.REQ_ID = @REQ_ID)
DECLARE @REQ_BRANCH VARCHAR(110) = (SELECT TRSD.BRANCH_ID FROM TR_REQUEST_SHOP_DOC TRSD WHERE TRSD.REQ_ID = @REQ_ID)
DECLARE @REQ_DEP VARCHAR(110) = (SELECT TRSD.DEP_ID FROM TR_REQUEST_SHOP_DOC TRSD WHERE TRSD.REQ_ID = @REQ_ID)
DECLARE @REQ_DEP_NAME NVARCHAR(510) = (SELECT CD.DEP_NAME FROM CM_DEPARTMENT CD WHERE CD.DEP_ID = @REQ_DEP)
DECLARE @REQ_POS NVARCHAR(510) = (SELECT CEL.POS_NAME FROM CM_EMPLOYEE_LOG CEL WHERE CEL.USER_DOMAIN = @REQ_MAKER)
DECLARE @REQ_MAKER_NAME NVARCHAR(500) = (SELECT TU.TLFullName FROM TL_USER TU WHERE TU.TLNANME = @REQ_MAKER)
DECLARE @REQ_MAKER_PHONE NVARCHAR(500) = (SELECT TU.PHONE FROM TL_USER TU WHERE TU.TLNANME = @REQ_MAKER)
DECLARE @REQ_MAKER_ADDR NVARCHAR(500) = (SELECT TU.ADDRESS FROM TL_USER TU WHERE TU.TLNANME = @REQ_MAKER)
--Khiemchg lấy danh sách đơn vị nhận và cho
DECLARE @INFO_TRANSFER_RECIEVE TABLE
(
BRN_SD VARCHAR(50),
BRN_SD_NAME NVARCHAR(500),
K_SD VARCHAR(50),
K_SD_NAME NVARCHAR(500),
TT_SD VARCHAR(50),
TT_SD_NAME NVARCHAR(500),
DEP_SD VARCHAR(50),
DEP_SD_NAME NVARCHAR(500),
PER_SD VARCHAR(50),
BRN_N VARCHAR(50),
BRN_N_NAME NVARCHAR(500),
K_N VARCHAR(50),
K_N_NAME NVARCHAR(500),
TT_N VARCHAR(50),
TT_N_NAME NVARCHAR(500),
DEP_N VARCHAR(50),
DEP_N_NAME NVARCHAR(500),
PER_N VARCHAR(50)
)
INSERT INTO @INFO_TRANSFER_RECIEVE
SELECT DISTINCT BRANCH_ID_OLD,
BB.BRANCH_NAME,
KHOI_ID_OLD,
BD.DEP_NAME,
CENTER_ID_OLD,
BF.DEP_NAME,
DEPT_ID_OLD,
BE.DEP_NAME,
EMP_ID_OLD,
A.BRANCH_ID,
CB.BRANCH_NAME,
A.KHOI_ID,
CD.DEP_NAME,
CENTER_ID,
CF.DEP_NAME,
DEPT_ID,
CE.DEP_NAME,
EMP_ID
FROM ASS_TRANSFER_MULTI_DT A
LEFT JOIN CM_BRANCH BB ON A.BRANCH_ID_OLD = BB.BRANCH_ID
LEFT JOIN CM_DEPARTMENT BD ON BD.DEP_ID = A.KHOI_ID_OLD
LEFT JOIN CM_DEPARTMENT BE ON BE.DEP_ID = A.DEPT_ID_OLD
LEFT JOIN CM_DEPARTMENT BF ON BF.DEP_ID = A.CENTER_ID_OLD
LEFT JOIN CM_BRANCH CB ON A.BRANCH_ID = CB.BRANCH_ID
LEFT JOIN CM_DEPARTMENT CD ON CD.DEP_ID = A.KHOI_ID
LEFT JOIN CM_DEPARTMENT CE ON CE.DEP_ID = A.DEPT_ID
LEFT JOIN CM_DEPARTMENT CF ON CF.DEP_ID = A.CENTER_ID
WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID
GROUP BY BRANCH_ID_OLD,
BB.BRANCH_NAME,
KHOI_ID_OLD,
BD.DEP_NAME,
CENTER_ID_OLD,
BF.DEP_NAME,
DEPT_ID_OLD,
BE.DEP_NAME,
EMP_ID_OLD,
A.BRANCH_ID,
CB.BRANCH_NAME,
A.KHOI_ID,
CD.DEP_NAME,
CENTER_ID,
CF.DEP_NAME,
DEPT_ID,
CE.DEP_NAME,
EMP_ID
--DELETE @INFO_TRANSFER_RECIEVE WHERE (BRN_SD = BRN_N AND DEP_SD = DEP_N)
DECLARE @SIGN_QLTS_NAME NVARCHAR(500) = ''
DECLARE @SIGN_QLTS_PHONE NVARCHAR(500) = ''
DECLARE @SIGN_QLTS_ADDR NVARCHAR(500) = ''
DECLARE @SIGN_QLTS_POS NVARCHAR(500) = ''
DECLARE @SIGN_QLTS NVARCHAR(100) = (SELECT ATMM.CHECKER_ID FROM ASS_TRANSFER_MULTI_MASTER ATMM WHERE ATMM.TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
DECLARE @SIGN_QLTS_DT DATETIME = (SELECT TOP 1 PP.APPROVE_DT FROM PL_PROCESS PP WHERE PP.REQ_ID = @TRANS_MULTI_MASTER_ID AND PP.PROCESS_ID = 'QLTS_D' ORDER BY PP.APPROVE_DT DESC)
DECLARE @MAKER_ID NVARCHAR(100) = (SELECT ATMM.MAKER_ID FROM ASS_TRANSFER_MULTI_MASTER ATMM WHERE ATMM.TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
DECLARE @MAKER_ID_DT DATETIME = (SELECT TOP 1 PP.APPROVE_DT FROM PL_PROCESS PP WHERE PP.REQ_ID = @TRANS_MULTI_MASTER_ID AND PP.PROCESS_ID = 'SEND' ORDER BY PP.APPROVE_DT DESC)
DECLARE @SIGN_QLTS_BR NVARCHAR(500) = (SELECT CB.BRANCH_NAME FROM CM_BRANCH CB WHERE CB.BRANCH_ID = (SELECT TU.TLSUBBRID FROM TL_USER TU WHERE TU.TLNANME = @SIGN_QLTS))
DECLARE @SIGN_QLTS_DEP NVARCHAR(500) = (SELECT CD.DEP_NAME FROM CM_DEPARTMENT CD WHERE CD.DEP_ID = (SELECT TU.SECUR_CODE FROM TL_USER TU WHERE TU.TLNANME = @SIGN_QLTS))
DECLARE @MAKER_NAME NVARCHAR(500) = (SELECT TU.TLFullName FROM TL_USER TU WHERE TU.TLNANME = @MAKER_ID)
DECLARE @MAKER_POS NVARCHAR(500) = (SELECT TOP 1 POS_NAME FROM CM_EMPLOYEE_LOG WHERE USER_DOMAIN =@MAKER_ID)
IF(EXISTS (SELECT * FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS', 'DV0001', 'DEP000000000048') FGUBRV WHERE FGUBRV.TLNANME = @SIGN_QLTS))
BEGIN
SELECT @SIGN_QLTS_NAME = TU.TLFullName, @SIGN_QLTS_PHONE = TU.PHONE, @SIGN_QLTS_ADDR = TU.ADDRESS FROM TL_USER TU WHERE TU.TLNANME = @SIGN_QLTS
SET @SIGN_QLTS_POS = (SELECT POS_NAME FROM CM_EMPLOYEE_LOG WHERE USER_DOMAIN = @SIGN_QLTS)
END
-- Thông tin chữ kí
DECLARE @SIGN_CHECKER_ID_KT VARCHAR(100),@SIGN_MAKER_ID VARCHAR(100),@SIGN_APPROVE_DT_KT DATETIME,@SIGN_CREATE_DT DATETIME,@SIGN_APPROVE_ID VARCHAR(20),@SIGN_APPROVE_DT DATETIME,
@SIGN_RECEVI_MAKER_ID VARCHAR(100),@SIGN_RECEVI_DT DATETIME,@SIGN_MAKER_ID_KT VARCHAR(100),@SIGN_MAKER_ID_CREATE VARCHAR(50),@AUTH_STATUS VARCHAR(50)
-- Thông tin bên giao
DECLARE @DEP_TRANSFER NVARCHAR(1500) = (SELECT TOP 1 DEP_SD FROM @INFO_TRANSFER_RECIEVE)
DECLARE @BRANCH_TRANSFER NVARCHAR(500) = (SELECT TOP 1 BRN_SD FROM @INFO_TRANSFER_RECIEVE)
DECLARE @KHOI_TRANSFER NVARCHAR(500) = (SELECT TOP 1 K_SD FROM @INFO_TRANSFER_RECIEVE)
DECLARE @TT_TRANSFER NVARCHAR(500) = (SELECT TOP 1 TT_SD FROM @INFO_TRANSFER_RECIEVE)
DECLARE @POSITION NVARCHAR(500) --= (SELECT * FROM @INFO_TRANSFER_RECIEVE)
DECLARE @TRANSFER_MAKER_ID VARCHAR(100) = (SELECT TOP 1 PER_SD FROM @INFO_TRANSFER_RECIEVE)
DECLARE @CREATE_DT NVARCHAR(500) = (SELECT FORMAT(ATMM.CREATE_DT, 'dd/MM/yyyy') FROM ASS_TRANSFER_MULTI_MASTER ATMM WHERE ATMM.TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
DECLARE @TRANSFER_CONFIRM NVARCHAR(500) = (SELECT TOP 1 PRP.CHECKER_ID FROM PL_REQUEST_PROCESS PRP
WHERE PRP.PROCESS_ID = 'XNGN' AND PRP.REQ_ID = @TRANS_MULTI_MASTER_ID
AND PRP.BRANCH_ID = @BRANCH_TRANSFER AND PRP.DEP_ID = ISNULL(@DEP_TRANSFER, NULL))
DECLARE @TRANSFER_CONFIRM_DT NVARCHAR(500) = (SELECT TOP 1 PRP.APPROVE_DT FROM PL_PROCESS PRP
WHERE PRP.PROCESS_ID = 'XNGN' AND PRP.REQ_ID = @TRANS_MULTI_MASTER_ID AND PRP.CHECKER_ID = @TRANSFER_CONFIRM ORDER BY PRP.APPROVE_DT DESC)
DECLARE @NAME_TRANSFER NVARCHAR(500) = (SELECT TU.TLFullName FROM TL_USER TU WHERE TU.TLNANME = @TRANSFER_CONFIRM)
DECLARE @POS_TRANSFER NVARCHAR(500) = (SELECT CEL.POS_NAME FROM CM_EMPLOYEE_LOG CEL WHERE CEL.USER_DOMAIN = @TRANSFER_CONFIRM)
DECLARE @PHONE_TRANSFER NVARCHAR(500) = (SELECT TU.PHONE FROM TL_USER TU WHERE TU.TLNANME = @TRANSFER_CONFIRM)
DECLARE @ADDR_TRANSFER NVARCHAR(500) = (SELECT TU.ADDRESS FROM TL_USER TU WHERE TU.TLNANME = @TRANSFER_CONFIRM)
-- Thông tin bên nhận
DECLARE @DEP_RECIVE NVARCHAR(1500) = (SELECT TOP 1 DEP_N FROM @INFO_TRANSFER_RECIEVE)
DECLARE @BRANCH_RECIVE NVARCHAR(500) = (SELECT TOP 1 BRN_N FROM @INFO_TRANSFER_RECIEVE)
DECLARE @KHOI_RECIVE NVARCHAR(500) = (SELECT TOP 1 K_N FROM @INFO_TRANSFER_RECIEVE)
DECLARE @TT_RECIVE NVARCHAR(500) = (SELECT TOP 1 TT_N FROM @INFO_TRANSFER_RECIEVE)
DECLARE @POSITION_RECIVE NVARCHAR(500)
DECLARE @RECIVE_MAKER_ID VARCHAR(100) = (SELECT TOP 1 PER_N FROM @INFO_TRANSFER_RECIEVE)
DECLARE @RECEIVE_CONFIRM NVARCHAR(500) = (SELECT TOP 1 PRP.CHECKER_ID FROM PL_REQUEST_PROCESS PRP
WHERE PRP.PROCESS_ID = 'XNGN' AND PRP.REQ_ID = @TRANS_MULTI_MASTER_ID
AND PRP.BRANCH_ID = @BRANCH_RECIVE AND PRP.DEP_ID = ISNULL(@DEP_RECIVE, NULL))
DECLARE @RECEIVE_CONFIRM_DT DATETIME = (SELECT TOP 1 PRP.APPROVE_DT FROM PL_PROCESS PRP
WHERE PRP.PROCESS_ID = 'CONFIRM' AND PRP.REQ_ID = @TRANS_MULTI_MASTER_ID AND PRP.CHECKER_ID = @RECEIVE_CONFIRM ORDER BY PRP.APPROVE_DT DESC)
DECLARE @NAME_RECIVE NVARCHAR(500) = (SELECT TU.TLFullName FROM TL_USER TU WHERE TU.TLNANME = @RECEIVE_CONFIRM)
DECLARE @POS_RECIVE NVARCHAR(500) = (SELECT CEL.POS_NAME FROM CM_EMPLOYEE_LOG CEL WHERE CEL.USER_DOMAIN = @RECEIVE_CONFIRM)
DECLARE @PHONE_RECIVE NVARCHAR(500) = (SELECT TU.PHONE FROM TL_USER TU WHERE TU.TLNANME = @RECEIVE_CONFIRM)
DECLARE @ADDR_RECIVE NVARCHAR(500) = (SELECT TU.ADDRESS FROM TL_USER TU WHERE TU.TLNANME = @RECEIVE_CONFIRM)
-- Thông tin Ngày điều chuyển
DECLARE @TRANSFER_DT DATETIME, @CREATE_DT_TRANSFER DATETIME
SELECT @TRANSFER_DT=TRANSFER_DT,@CREATE_DT_TRANSFER =CREATE_DT FROM dbo.ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID
-- BÊN GIAO
-- Thông tin chữ kí
SET @SIGN_MAKER_ID = ( SELECT MAKER_ID_BG FROM ASS_TRANSFER_CONFIRM_MASTER A WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
SET @SIGN_CREATE_DT = ( SELECT CONFIRM_DT_BG FROM ASS_TRANSFER_CONFIRM_MASTER A WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
SET @SIGN_APPROVE_ID = (SELECT CHECKER_ID FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
SET @SIGN_APPROVE_DT = (SELECT APPROVE_DT FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
-- Thông tin bên giao
--SET @BRANCH_TRANSFER = ISNULL((SELECT TOP 1 A.BRANCH_NAME FROM dbo.CM_BRANCH A JOIN dbo.ASS_TRANSFER_MULTI_DT B ON A.BRANCH_ID = B.BRANCH_ID_OLD WHERE B.TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID ORDER BY B.TRANSFER_MULTI_ID ASC), '')
-- + ISNULL((SELECT TOP 1 ' - ' + A.DEP_NAME FROM dbo.CM_DEPARTMENT A JOIN dbo.ASS_TRANSFER_MULTI_DT B ON A.DEP_ID = B.DEPT_ID_OLD WHERE B.TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID ORDER BY B.TRANSFER_MULTI_ID ASC), '')
--SET @NAME_TRANSFER =(SELECT TLFullName FROM TL_USER WHERE TLNANME =@TRANSFER_MAKER_ID)
SET @POSITION = (SELECT TOP 1 POS_NAME FROM CM_EMPLOYEE_LOG WHERE USER_DOMAIN =@TRANSFER_CONFIRM)
SET @CREATE_DT = N'Ngày ' + CAST((SELECT DAY(APPROVE_DT_KT) FROM dbo.ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID) AS VARCHAR(500))
+ N' tháng ' + CAST((SELECT MONTH(APPROVE_DT_KT) FROM dbo.ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID) AS VARCHAR(500))
+ N' năm ' + CAST((SELECT YEAR(APPROVE_DT_KT) FROM dbo.ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID) AS VARCHAR(500))
+ N' tại ' + (SELECT B.BRANCH_NAME FROM dbo.ASS_TRANSFER_MULTI_MASTER A JOIN dbo.CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
-- BÊN NHẬN
-- Thông tin chữ kí
SET @SIGN_RECEVI_MAKER_ID = ( SELECT MAKER_ID_BN FROM ASS_TRANSFER_CONFIRM_MASTER A WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
SET @SIGN_RECEVI_DT = ( SELECT CONFIRM_DT_BN FROM ASS_TRANSFER_CONFIRM_MASTER A WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
-- Thông tin bên nhận
SET @RECIVE_MAKER_ID = (SELECT TOP 1 MAKER_ID_BN FROM ASS_TRANSFER_CONFIRM_MASTER WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
--SET @BRANCH_RECIVE = ISNULL((SELECT TOP 1 A.BRANCH_NAME FROM dbo.CM_BRANCH A JOIN dbo.ASS_TRANSFER_MULTI_DT B ON A.BRANCH_ID = B.BRANCH_ID WHERE B.TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID ORDER BY B.TRANSFER_MULTI_ID ASC), '')
-- + ISNULL((SELECT TOP 1 ' - ' + A.DEP_NAME FROM dbo.CM_DEPARTMENT A JOIN dbo.ASS_TRANSFER_MULTI_DT B ON A.DEP_ID = B.DEPT_ID WHERE B.TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID ORDER BY B.TRANSFER_MULTI_ID ASC), '')
--SET @DEP_RECIVE = (SELECT TOP 1 DEPT_ID FROM ASS_TRANSFER_MULTI_DT WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
--SET @NAME_RECIVE= (SELECT TLFullName FROM TL_USER WHERE TLNANME = @RECIVE_MAKER_ID)
SET @POSITION_RECIVE = (SELECT POS_NAME FROM CM_EMPLOYEE_LOG WHERE USER_DOMAIN = @RECEIVE_CONFIRM)
--SET @KHOI_RECIVE= (SELECT TOP 1 DVDM_NAME FROM CM_DVDM WHERE DVDM_ID IN (SELECT DVDM_ID FROM PL_COSTCENTER WHERE COST_ID IN (SELECT COST_ID FROM PL_COSTCENTER_DT
-- WHERE DEP_ID =@DEP_RECIVE)) AND IS_KHOI ='1')
-- KẾ TOÁN
SET @SIGN_MAKER_ID_CREATE = ( SELECT A.MAKER_ID FROM ASS_TRANSFER_MULTI_MASTER A WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
SET @SIGN_CHECKER_ID_KT = ( SELECT CHECKER_ID_KT FROM ASS_TRANSFER_MULTI_MASTER A WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
SET @SIGN_APPROVE_DT_KT = ( SELECT APPROVE_DT_KT FROM ASS_TRANSFER_MULTI_MASTER A WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
SET @SIGN_MAKER_ID_KT = ( SELECT A.MAKER_ID_KT FROM ASS_TRANSFER_MULTI_MASTER A WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID)
-- DANH SÁCH TÀI SẢN
SELECT ROW_NUMBER()OVER(ORDER BY A.ASSET_ID) AS STT,
A.ASSET_ID, A.[TYPE_ID],C.[TYPE_CODE], C.[TYPE_NAME], A.GROUP_ID,B.GROUP_CODE, B.GROUP_NAME, A.ASSET_NAME, A.ASSET_DESC,
A.SUP_ID, FORMAT(tmp.BUY_PRICE, '#,#') AS BUY_PRICE, A.AMORT_AMT, A.ASS_TYPE, TR.BRANCH_ID,BR_R.BRANCH_CODE,BR_R.BRANCH_NAME,H.DEP_ID, H.DEP_CODE,
H.DEP_NAME, A.EMP_ID,EM_R.EMP_CODE,EM_R.EMP_NAME,
A.BUY_DATE, A.USE_DATE, A.SPECIAL_ASS, CAST(A.AMORT_MONTH AS INT) AS AMORT_MONTH, A.AMORT_RATE, A.AMORT_START_DATE, A.AMORT_END_DATE,
A.FIRST_AMORT_AMT,
--CAST(A.AMORTIZED_MONTH AS INT) AS AMORTIZED_MONTH,
CAST((A.AMORT_MONTH - A.AMORTIZED_MONTH) AS INT) AS REMAIN_MONTH,
-- CASE WHEN DATEDIFF(month,A.AMORT_START_DATE,@TRANSFER_DT) > A.AMORT_MONTH THEN CAST(A.AMORT_MONTH AS INT) ELSE CAST(DATEDIFF(month,A.AMORT_START_DATE,@TRANSFER_DT)AS INT) END AS AMORTIZED_MONTH,
--CAST(DATEDIFF(month,A.AMORT_START_DATE,tmp2.AMORT_DT)AS INT) AS AMORTIZED_MONTH,
ISNULL(CAST(tmp2.AMORTIZED_MONTH AS INT),0) AS AMORTIZED_MONTH,
A.AMORTIZED_AMT,
FORMAT(tmp.BUY_PRICE - ISNULL(tmp1.AMORTIZED_AMT,0) , '#,#') AS GT_CL, --So tien khau hao con lai
A.PO_ID, A.WAREHOUSE_ID, A.LOCATION, A.REF_ASSET_ID,
A.REF_AMORTIZED_AMT,
A.WARRANTY_MONTHS,
A.AMORT_STATUS,
D.STATUS_NAME AMORT_STATUS_NAME,
A.ASS_STATUS, CU.UNIT_NAME,
E.STATUS_NAME ASS_STATUS_NAME, --Tinh trang tai san
A.ASS_STATUS_DESC,
A.RECORD_STATUS,
A.AUTH_STATUS,
ZZ.AUTH_STATUS_NAME,
A.MAKER_ID,
convert(varchar, A.CREATE_DT, 103) as CREATE_DT_ASS,
convert(varchar, TR.CREATE_DT, 103) as CREATE_DT,
A.CHECKER_ID,
A.APPROVE_DT,
TR.[DESCRIPTION], TR.BRANCH_CREATE,TR.LOCATION,TR.[DESCRIPTION],TR.TRANSFER_MULTI_ID,
A.AMORT_AMT-A.AMORTIZED_AMT ASREMAIN_AMT, convert(varchar, B.CREATE_DT, 103) as CREATE_DT_ASS,
1 AS SOLUONG,
TR.DESCRIPTION AS NOTES,
A.ASSET_CODE,
-- CASE
-- WHEN A.REQ_CODE IS NOT NULL AND A.PL IS NOT NULL THEN A.REQ_CODE + '/' + A.PL
-- WHEN A.REQ_CODE IS NOT NULL AND A.PL IS NULL THEN A.REQ_CODE
-- WHEN A.REQ_CODE IS NULL AND A.PL IS NOT NULL THEN A.PL ELSE NULL
-- END AS PYC_PL
ATMM.REQ_CODE + ISNULL(CHAR(10) + CHAR(10) + A.PL,'') AS PYC_PL
FROM [dbo].[ASS_TRANSFER_MULTI_DT] TR
LEFT JOIN [ASS_TRANSFER_MULTI_MASTER] ATMM ON TR.TRANS_MULTI_MASTER_ID = ATMM.TRANS_MULTI_MASTER_ID
LEFT JOIN ASS_MASTER A ON A.ASSET_ID = TR.ASSET_ID
LEFT JOIN ASS_GROUP B ON A.GROUP_ID = B.GROUP_ID
LEFT JOIN ASS_TYPE C ON A.[TYPE_ID] = C.[TYPE_ID]
LEFT JOIN CM_UNIT CU ON B.UNIT = CU.UNIT_ID
LEFT JOIN ASS_AMORT_STATUS D ON A.AMORT_STATUS = D.STATUS_CODE
LEFT JOIN ASS_STATUS E ON A.ASS_STATUS = E.STATUS_ID
LEFT JOIN CM_AUTH_STATUS ZZ ON ZZ.AUTH_STATUS = TR.AUTH_STATUS
LEFT JOIN CM_BRANCH BR_R ON BR_R.BRANCH_ID=TR.BRANCH_ID
LEFT JOIN CM_EMPLOYEE EM_R ON EM_R.EMP_ID=TR.EMP_ID
LEFT JOIN CM_DEPARTMENT H ON H.DEP_ID = TR.DEPT_ID
-- PHONGNT 4/9/22 LẤY GIÁ TRỊ NGUYÊN GIÁ, KHẤU HAO TẠI THỜI ĐIỂM NGÀY ĐIỀU CHUYỂN
LEFT JOIN (SELECT ASSET_ID,(SUM(CASE WHEN CRDR='C' AND TRN_DT < @TRANSFER_DT AND ASSET_AMT IS NOT NULL THEN ASSET_AMT END) - ISNULL(SUM(CASE WHEN CRDR='D' AND TRN_DT < @TRANSFER_DT AND ASSET_AMT IS NOT NULL THEN ASSET_AMT END),0)) AS BUY_PRICE FROM dbo.ASS_VALUES GROUP BY ASSET_ID) tmp ON A.ASSET_ID=tmp.ASSET_ID
LEFT JOIN (SELECT ASSET_ID,(SUM(CASE WHEN CRDR='C' AND AMORT_DT < @TRANSFER_DT AND AMORT_AMT IS NOT NULL THEN AMORT_AMT END) - ISNULL(SUM(CASE WHEN CRDR='D' AND AMORT_DT < @TRANSFER_DT AND AMORT_AMT IS NOT NULL THEN AMORT_AMT END),0)) AS AMORTIZED_AMT FROM dbo.ASS_AMORT_DT GROUP BY ASSET_ID) tmp1 ON A.ASSET_ID=tmp1.ASSET_ID
-- LEFT JOIN (SELECT ASSET_ID,max(AMORT_DT) AS AMORT_DT FROM ASS_AMORT_DT WHERE CRDR ='C' AND AMORT_DT<@TRANSFER_DT GROUP BY ASSET_ID) tmp2 ON tmp2.ASSET_ID = A.ASSET_ID
LEFT JOIN (SELECT ASSET_ID,COUNT(*) AS AMORTIZED_MONTH FROM ASS_AMORT_DT WHERE CRDR ='C' AND AMORT_DT<@TRANSFER_DT GROUP BY ASSET_ID) tmp2 ON tmp2.ASSET_ID = A.ASSET_ID
-- END
WHERE 1=1
AND TR.TRANS_MULTI_MASTER_ID= @TRANS_MULTI_MASTER_ID
IF(CONVERT(VARCHAR,@CREATE_DT_TRANSFER,103) '')
--BEGIN
-- SELECT
-- IIF((SELECT CB.BRANCH_TYPE FROM CM_BRANCH CB WHERE CB.BRANCH_ID = @REQ_BRANCH) = 'HS', (SELECT CB.BRANCH_NAME FROM CM_BRANCH CB WHERE CB.BRANCH_ID = @REQ_BRANCH) + ' - ' + ISNULL(@REQ_DEP_NAME,''), (SELECT CB.BRANCH_NAME FROM CM_BRANCH CB WHERE CB.BRANCH_ID = @REQ_BRANCH))
-- AS KHOI_TRANSFER, (SELECT CD.BRANCH_NAME FROM CM_BRANCH CD WHERE CD.BRANCH_ID = @REQ_BRANCH) AS BRANCH_TRANSFER, @REQ_MAKER_NAME AS NAME_TRANSFER, @REQ_MAKER_ADDR AS ADDR_TRANSFER, @REQ_MAKER_PHONE AS PHONE_TRANSFER, @REQ_POS AS POSITION_SEND, @CREATE_DT AS A1
--
--END
--ELSE
BEGIN
SELECT
IIF((SELECT CB.BRANCH_TYPE FROM CM_BRANCH CB WHERE CB.BRANCH_ID = @BRANCH_TRANSFER) = 'HS', (SELECT CB.BRANCH_NAME FROM CM_BRANCH CB WHERE CB.BRANCH_ID = @BRANCH_TRANSFER) + ' - ' + ISNULL(@GIAO,''), (SELECT CB.BRANCH_NAME FROM CM_BRANCH CB WHERE CB.BRANCH_ID = @BRANCH_TRANSFER))
AS KHOI_TRANSFER, (SELECT CD.BRANCH_NAME FROM CM_BRANCH CD WHERE CD.BRANCH_ID = @BRANCH_TRANSFER) AS BRANCH_TRANSFER, @MAKER_NAME AS NAME_TRANSFER, @ADDR_TRANSFER AS ADDR_TRANSFER, @PHONE_TRANSFER AS PHONE_TRANSFER, @MAKER_POS AS POSITION_SEND, @CREATE_DT AS A1
END
--CHECK XEM CÓ K/PB/TT NHẬN không, không có thì lấy BRANCH
DECLARE @NHAN NVARCHAR(500)
IF(@KHOI_RECIVE IS NOT NULL AND @DEP_RECIVE IS NOT NULL AND @TT_RECIVE IS NOT NULL)
BEGIN
SET @NHAN = (SELECT CD.DEP_NAME FROM CM_DEPARTMENT CD WHERE CD.DEP_ID = @DEP_RECIVE)
END
ELSE IF(@KHOI_RECIVE IS NULL AND @DEP_RECIVE IS NULL AND @TT_RECIVE IS NULL)
BEGIN
SET @NHAN = (SELECT CD.BRANCH_NAME FROM CM_BRANCH CD WHERE CD.BRANCH_ID = @BRANCH_RECIVE)
END
ELSE IF(@KHOI_RECIVE IS NULL AND @DEP_RECIVE IS NULL AND @TT_RECIVE IS NOT NULL)
BEGIN
SET @NHAN = (SELECT CD.DEP_NAME FROM CM_DEPARTMENT CD WHERE CD.DEP_ID = @TT_RECIVE)
END
ELSE IF(@KHOI_RECIVE IS NULL AND @DEP_RECIVE IS NOT NULL AND @TT_RECIVE IS NULL)
BEGIN
SET @NHAN = (SELECT CD.DEP_NAME FROM CM_DEPARTMENT CD WHERE CD.DEP_ID = @DEP_RECIVE)
END
ELSE IF(@KHOI_RECIVE IS NOT NULL AND @DEP_RECIVE IS NULL AND @TT_RECIVE IS NULL)
BEGIN
SET @NHAN = (SELECT CD.DEP_NAME FROM CM_DEPARTMENT CD WHERE CD.DEP_ID = @KHOI_RECIVE)
END
-- THÔNG TIN BÊN NHẬN Table2
SELECT IIF((SELECT CB.BRANCH_TYPE FROM CM_BRANCH CB WHERE CB.BRANCH_ID = @BRANCH_RECIVE) = 'HS', (SELECT CB.BRANCH_NAME FROM CM_BRANCH CB WHERE CB.BRANCH_ID = @BRANCH_RECIVE) + ' - ' + ISNULL(@NHAN,''), (SELECT CB.BRANCH_NAME FROM CM_BRANCH CB WHERE CB.BRANCH_ID = @BRANCH_RECIVE))
AS KHOI_RECEIVE, (SELECT CD.BRANCH_NAME FROM CM_BRANCH CD WHERE CD.BRANCH_ID = @BRANCH_RECIVE) AS BRANCH_RECIVE, @NAME_RECIVE AS NAME_RECIVE, @ADDR_RECIVE AS ADDR_RECIVE, @PHONE_RECIVE AS PHONE_RECIVE, @POSITION_RECIVE AS POSTION_RECIVE
-- CHỮ KÍ
DECLARE @S1 NVARCHAR(500),@S2 NVARCHAR(500),@S3 NVARCHAR(500),@S4 NVARCHAR(500),@S5 NVARCHAR(500),@S6 NVARCHAR(500)
SET @S1 = (SELECT TLFullName FROM TL_USER WHERE TLNANME = @SIGN_MAKER_ID) + CHAR(10) + N' Đã xác nhận vào lúc ' + ISNULL(FORMAT(@SIGN_CREATE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'')
SET @S2 = N'Người duyệt'+ CHAR(10) + (SELECT TLFullName FROM TL_USER WHERE TLNANME = @SIGN_APPROVE_ID) + CHAR(10) + N' Đã xác nhận vào lúc ' + ISNULL(FORMAT(@SIGN_APPROVE_DT,'dd/MM/yyyy,hh:mm:ss tt'),'')
--PHONGNT bổ sung người nhập KT
SET @S3 =N'Người nhập'+ CHAR(10) + (SELECT TLFullName FROM TL_USER WHERE TLNANME = @SIGN_MAKER_ID_KT) + CHAR(10)
SET @S6 =N'Người duyệt'+ CHAR(10) + (SELECT TLFullName FROM TL_USER WHERE TLNANME = @SIGN_CHECKER_ID_KT) + CHAR(10) + N' Đã xác nhận vào lúc ' + ISNULL(FORMAT(@SIGN_APPROVE_DT_KT,'dd/MM/yyyy,hh:mm:ss tt'),'')
SET @S4 =(SELECT TLFullName FROM TL_USER WHERE TLNANME = @SIGN_RECEVI_MAKER_ID) + CHAR(10) + N' Đã xác nhận vào lúc ' + ISNULL(FORMAT(@SIGN_RECEVI_DT,'dd/MM/yyyy,hh:mm:ss tt'),'')
--PHONGNT bổ sung người nhập
SET @S5 =N'Người nhập'+ CHAR(10) + (SELECT TLFullName FROM TL_USER WHERE TLNANME = @SIGN_MAKER_ID_CREATE) + CHAR(10) ;
-- Table-3 Chữ ký
SELECT
@MAKER_NAME AS S1,
ISNULL(@MAKER_POS, '') + CHAR(13) + N'Đã ký ngày ' + FORMAT(@MAKER_ID_DT, 'dd/MM/yyyy HH:mm:ss') AS S1_POS,
@SIGN_QLTS_NAME AS S2,
ISNULL(@SIGN_QLTS_POS, '') + CHAR(13) + N'Đã ký ngày ' + FORMAT(@SIGN_QLTS_DT, 'dd/MM/yyyy HH:mm:ss') AS S2_POS,
--'' AS S2,
--'' AS S2_POS,
@NAME_RECIVE AS S3,@S4 AS S4,
ISNULL(@POS_RECIVE,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT(@RECEIVE_CONFIRM_DT, 'dd/MM/yyyy HH:mm:ss') AS S3_POS,
IIF(NOT EXISTS(SELECT 1 FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID=@TRANS_MULTI_MASTER_ID AND AUTH_STATUS ='E'),@S5,NULL) AS S5,
@S6 AS S6
-- TABLE4 thông tin trung gian *(nếu có)
SELECT @SIGN_QLTS_BR+ ' - ' + ISNULL(@SIGN_QLTS_DEP,'') AS KHOI_MID, @SIGN_QLTS_BR AS BRANCH_MID,
@SIGN_QLTS_NAME AS MID_NAME, @SIGN_QLTS_ADDR AS MID_ADDR, @SIGN_QLTS_PHONE AS MID_PHONE, @SIGN_QLTS_POS AS MID_POS
--SELECT '' AS MID_NAME, '' AS MID_ADDR, '' AS MID_PHONE, '' AS MID_POS
--TABLE 5 NỘI DUNG BIÊN BẢN
SELECT TRANSFER_CONTENT AS TITLE FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID
--TABLE 6 SỐ
SELECT @TRANS_MULTI_MASTER_ID AS NO
SELECT CB.BRANCH_NAME FROM CM_BRANCH CB WHERE CB.BRANCH_ID = @BRANCH_RECIVE
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_LIQUIDATION_BVB_KT_App]'
GO
ALTER PROCEDURE [dbo].[ASS_LIQUIDATION_BVB_KT_App]
@P_LIQ_ID VARCHAR(15),
@P_AUTH_STATUS_KT VARCHAR(1),
@P_CHECKER_ID_KT VARCHAR(100),
@P_APPROVE_DT_KT VARCHAR(20)
AS
BEGIN
declare @l_OLD_LOCHIST_ID varchar(15)
declare @l_LOCHIST_ID varchar(15)
declare @l_ASSHIST_ID varchar(15)
declare @l_ASSET_ID varchar(15)
declare @l_BRANCH_ID varchar(15)
declare @l_DEPT_ID varchar(15)
declare @l_EMP_ID varchar(15)
declare @l_DESC nvarchar(1000)
declare @l_LOCATION nvarchar(500)
DECLARE @l_MAKER_ID varchar(15)
DECLARE @sToday varchar(10) = convert(varchar(10), getdate(), 103)
DECLARE @l_LIQDT_ID VARCHAR(15)
declare @l_LIQ_PRICE numeric(18,2)
declare @l_DO_BRANCH_ID varchar(15)
DECLARE @l_ASSET_CODE VARCHAR(25)
declare @l_VALUE_ID varchar(15)
DECLARE @l_ET_ID varchar(15)
declare @l_TRN_REF_NO varchar(20)
DECLARE @l_HO_BRN_ID varchar(15)
declare @l_AMORTIZED_AMT numeric(18,2), @l_AMORTIZED_AMT_CL numeric(18,2)
declare @l_AMORT_AMT numeric(18,2), @l_AMORT_AMT_CL numeric(18,2)
declare @l_AMORT_REMAIN_AMT numeric(18,2)
DECLARE @l_BUY_PRICE_REMAIN numeric(18,2)
declare @l_BUY_PRICE numeric(18,2), @l_BUY_PRICE_CL numeric(18,2)
DECLARE @l_TYPE_ID varchar(15) = NULL
declare @l_GROUP_ID varchar(15) = NULL
DECLARE @l_SUPPEND_GL varchar(50)
DECLARE @l_ASSET_GL varchar(50), @l_LIQ_GL varchar(50), @l_INC_GL varchar(50), @l_AMORT_GL varchar(50)
declare @l_ASSET_VALUE decimal(18,0)
declare @l_AMORTDT_ID varchar(15)
DECLARE @p_CORE_NOTE NVARCHAR(500)
DECLARE @l_AMORT_DT_ID VARCHAR(15)
DECLARE @l_AMORT_STATUS VARCHAR(20)
DECLARE @l_EXP_TO_CORE VARCHAR(20) = 'Y'
DECLARE @l_LIQ_TYPE VARCHAR(1), @l_BUY_PRICE_LIQ decimal(18,0)--@l_AMORT_LIQ VARCHAR(15) = 'DTL',
DECLARE @l_LIQ_AMT DECIMAL(18,0)
DECLARE @l_REQ_AMT DECIMAL(18,2)
DECLARE @l_LIQ_PRICE_VAT DECIMAL(18,2)
DECLARE @l_MONTLY_AMORT_AMT decimal(18,0), @l_AMORTIZED_MONTH DECIMAL(18,2),
@l_NEW_FIRST_AMORT_AMT DECIMAL(18,0), @ERROR NVARCHAR(500) = '', @l_BRANCH_CREATE VARCHAR(15),
@l_AMORT_MONTH DECIMAL(18,2), @l_AMORT_START_DATE datetime, @l_AMORT_END_DATE datetime
DECLARE @l_GTCL DECIMAL(18,0) = 0
DECLARE @l_PRICE_VAT DECIMAL(18,0) = 0
DECLARE @INDEX INT =0
declare @l_CUR_AMORTIZED_AMT decimal(18,2)
declare @l_IS_COLLECT BIT
--Validation is here
DECLARE @ERRORSYS NVARCHAR(15) = ''
IF ( NOT EXISTS ( SELECT * FROM ASS_LIQUIDATION WHERE LIQ_ID = @P_LIQ_ID))
SET @ERRORSYS = 'ASSL-00001'
IF @ERRORSYS <> ''
BEGIN
SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
RETURN '0'
END
---THANH LY BANG TAY
DECLARE @l_LIQ_NOTES NVARCHAR(500), @l_LIQ_DATE DATETIME
--LAY DIEN GIAI HACH TOAN
SELECT @p_CORE_NOTE = CORE_NOTE, @l_MAKER_ID = MAKER_ID_KT, @l_LIQ_NOTES = NOTES, @l_LIQ_DATE = CREATE_DT FROM ASS_LIQUIDATION WHERE LIQ_ID = @P_LIQ_ID
IF (SELECT CHARINDEX('ATGETD',@l_LIQ_NOTES)) > 0
BEGIN
SET @sToday = convert(varchar(10), @l_LIQ_DATE, 103)
SET @P_APPROVE_DT_KT = @sToday
END
--BRN_ID HOI SO
SELECT @l_HO_BRN_ID = BRANCH_ID FROM CM_BRANCH A WHERE A.BRANCH_TYPE = 'HS'
--Lay suppend GL
SELECT @l_SUPPEND_GL = A.ParaValue FROM SYS_PARAMETERS A WHERE A.ParaKey='ASSET_SUPPEND_GL'
--Lay branch_id cua user duyet
select @l_DO_BRANCH_ID = a.TLSUBBRID from TL_USER a where a.TLNANME = @P_CHECKER_ID_KT
/***thieuvq 20/01/2015 them kiem tra khong cho CN thuc hien thanh ly TSCD**/
--IF(SELECT BRANCH_ID FROM ASS_LIQUIDATION WHERE LIQ_ID = @P_LIQ_ID) <> @l_HO_BRN_ID
--BEGIN
-- IF (EXISTS (SELECT * FROM ASS_LIQUIDATION_DT A LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID WHERE A.LIQ_ID = @P_LIQ_ID AND B.TYPE_ID = 'TSCD' ))
-- BEGIN
-- SELECT 'ASSL-TLTSCD' Result, N'ĐƠN VỊ KHÔNG ĐƯỢC PHÉP THANH LÝ TSCĐ, VUI LÒNG XÓA TÀI SẢN LÀ TSCĐ KHỎI ĐỢT THANH LÝ TRƯỚC KHI DUYỆT' ErrorDesc
-- RETURN '0'
--END
--END
BEGIN TRANSACTION
BEGIN
--KIEM TRA NEU TINH TRANG DANG LA 'A' THI KHONG CHO PHEP DUYET
IF(EXISTS(SELECT * FROM ASS_LIQUIDATION WHERE AUTH_STATUS_KT ='A' AND LIQ_ID =@P_LIQ_ID))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' LIQ_ID, N'Phiếu thanh lý đã được duyệt trước đó.' ErrorDesc
RETURN '-1'
END
--KIEM TRA NEU TINH TRANG DANG LA 'R' THI KHONG CHO PHEP DUYET
IF(EXISTS(SELECT * FROM ASS_LIQUIDATION WHERE AUTH_STATUS_KT ='R' AND LIQ_ID =@P_LIQ_ID))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' LIQ_ID, N'Thông tin thanh lý tài sản đang bị trả về. Vui lòng cập nhật lại thông tin trước khi duyệt' ErrorDesc
RETURN '-1'
END
--KIEM TRA NEU TINH TRANG DANG LA 'E' THI KHONG CHO PHEP DUYET
IF(EXISTS(SELECT * FROM ASS_LIQUIDATION WHERE AUTH_STATUS_KT ='E' AND LIQ_ID =@P_LIQ_ID))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' LIQ_ID, N'Thông tin thanh lý tài sản chưa được giao dịch viên xử lý. Vui lòng cập nhật lại thông tin trước khi duyệt' ErrorDesc
RETURN '-1'
END
--APPROVE FOR MASTER
UPDATE ASS_LIQUIDATION
SET AUTH_STATUS_KT = @P_AUTH_STATUS_KT,
CHECKER_ID_KT = @P_CHECKER_ID_KT,
APPROVE_DT_KT = CONVERT(DATETIME,@P_APPROVE_DT_KT,103)
WHERE LIQ_ID = @P_LIQ_ID
--get all liqui detail
DECLARE CUR CURSOR FOR
SELECT A.LIQDT_ID,A.ASSET_ID
FROM ASS_LIQUIDATION_DT A
WHERE A.LIQ_ID = @P_LIQ_ID
DECLARE @l_TRN_NO VARCHAR(15),@l_MAKER_KT VARCHAR(100)
SET @l_MAKER_KT = (SELECT alI.MAKER_ID_KT FROM ASS_LIQUIDATION alI WHERE alI.LIQ_ID = @P_LIQ_ID)
EXEC ENTRIES_POST_GEN_NO @p_BRANCH_ID = @l_MAKER_KT
,@p_TRN_DATE = @P_APPROVE_DT_KT
,@p_KeyGen = @l_TRN_NO OUT
OPEN CUR
FETCH NEXT FROM CUR INTO @l_LIQDT_ID, @l_ASSET_ID
WHILE @@FETCH_STATUS = 0
BEGIN
--Lay thong tin
SELECT @l_ASSET_ID = A.ASSET_ID,
--@l_DEPT_ID = DEPT_ID,
--@l_EMP_ID = EMP_ID,
--@l_LOCATION = LOCATION,
@l_LIQ_AMT=A.LIQ_AMT_BE_VAT,
@l_LIQ_PRICE = A.LIQ_PRICE,
@l_LIQ_TYPE = LIQ_TYPE,
@l_BUY_PRICE_LIQ = BUY_PRICE_LIQ,
@l_REQ_AMT = A.REQ_AMT,
@l_LIQ_PRICE_VAT = A.LIQ_PRICE_VAT
FROM ASS_LIQUIDATION_DT A
--INNER JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID
WHERE LIQDT_ID = @l_LIQDT_ID
--LUCTV : 12-11-2018 KIEM TRA TAI SAN NAY DA DUOC THANH LY TOAN PHAN HAY CHUA
SET @INDEX = @INDEX+1
IF(EXISTS(SELECT * FROM ASS_MASTER WHERE ASSET_ID = @l_ASSET_ID AND AMORT_STATUS ='DTL'))
BEGIN
CLOSE CUR
DEALLOCATE CUR
ROLLBACK TRANSACTION
SELECT '-1' as Result, N' Dòng '+ CONVERT(VARCHAR(15),@INDEX)+N': Tài sản có mã '+ (SELECT ASSET_CODE FROM ASS_MASTER WHERE ASSET_ID = @l_ASSET_ID)+ N' đã được thanh lý' ErrorDesc
RETURN '-1'
END
--lay group_id va type_id
select @l_TYPE_ID = A.TYPE_ID,
@l_GROUP_ID = ISNULL(A.REF_GROUP_ID,A.GROUP_ID),
@l_AMORTIZED_AMT = A.AMORTIZED_AMT,
@l_AMORT_AMT = A.AMORT_AMT,
@l_BUY_PRICE = A.BUY_PRICE,
@l_BRANCH_ID = A.BRANCH_ID,
@l_DEPT_ID = A.DEPT_ID, --@l_NEW_MONTHLY_AMT = A.MONTHLY_AMORT_AMT,@l_NEW_FIRST_AMORT_AMT = A.FIRST_AMORT_AMT,
@l_AMORT_STATUS = A.AMORT_STATUS,@l_AMORT_START_DATE = A.AMORT_START_DATE, @l_AMORT_END_DATE = A.AMORT_END_DATE,
@l_AMORTIZED_MONTH = A.AMORTIZED_MONTH, @l_AMORT_MONTH = A.AMORT_MONTH, @l_BRANCH_CREATE = BRANCH_CREATE,
@l_ASSET_CODE=A.ASSET_CODE,
@l_PRICE_VAT = A.PRICE_VAT,
@l_CUR_AMORTIZED_AMT = (A.AMORT_AMT - ISNULL(A.AMORTIZED_AMT,0)), @l_IS_COLLECT = A.IS_COLLECT
from ASS_MASTER A
where a.ASSET_ID = @l_ASSET_ID
---------------THIEUVQ 19102016 - TRUONG HOP VNM THANH LY, LAY BRANCH_ID = DV THUC HIEN THANH LY -----------
IF @l_AMORT_STATUS = 'VNM'
BEGIN
SET @l_BRANCH_ID = @l_BRANCH_CREATE
SET @l_EXP_TO_CORE = 'N'
END
-------------------------------------------
--ASSET_GL
SELECT @l_ASSET_GL = ASSET_ACCTNO,
@l_LIQ_GL = LIQ_ACCTNO,
@l_INC_GL = INC_ACCTNO,
@l_AMORT_GL = AMORT_ACCTNO
FROM ASS_GROUP A
WHERE A.GROUP_ID = @l_GROUP_ID
--print 'l1' + @l_ASSET_GL
--print 'l2' + @l_AMORT_GL
--Move to history
--Phat sinh Asset_ID
EXEC SYS_CodeMasters_Gen 'ASS_MASTER_HIST', @l_ASSHIST_ID out
IF @l_ASSHIST_ID='' OR @l_ASSHIST_ID IS NULL GOTO ABORT
INSERT INTO ASS_MASTER_HIST
SELECT @l_ASSHIST_ID, a.*
FROM ASS_MASTER a
where a.ASSET_ID = @l_ASSET_ID
IF @@Error <> 0 GOTO ABORT
/*************-----------------------THIEUVQ 19102016 - THANH LY 1 PHAN---------------------------*******/
IF @l_LIQ_TYPE = '0'
BEGIN
--SET @l_AMORT_LIQ = @l_AMORT_STATUS
DECLARE @TILE FLOAT = 1.00*@l_BUY_PRICE_LIQ/@l_BUY_PRICE
--GIA TRI GIAM
SET @l_BUY_PRICE_CL = ROUND(@l_BUY_PRICE*@TILE,0)
SET @l_AMORTIZED_AMT_CL = ROUND(@l_AMORTIZED_AMT*@TILE,0)
SET @l_AMORT_AMT_CL = ROUND(@l_AMORT_AMT*@TILE,0)
--GIA TRI SAU KHI GIAM
SET @l_BUY_PRICE = ROUND(@l_BUY_PRICE*(1.00 - @TILE),0)
SET @l_AMORTIZED_AMT = ROUND(@l_AMORTIZED_AMT*(1.00 - @TILE),0)
SET @l_AMORT_AMT = ROUND(@l_AMORT_AMT*(1.00 - @TILE),0)
--NEU CON KHAU HAO THI TINH LAI GIA TRI PHAN BO HANG THANG
IF @l_AMORT_STATUS IN ('DKH', 'CKH')
BEGIN
--IF (@l_AMORTIZED_MONTH = 0) --Chua chay khau hao thi phai tinh lai khau hao cua thang dau tien
--BEGIN
-- SET @l_MONTLY_AMORT_AMT = ROUND((@l_AMORT_AMT - @l_AMORTIZED_AMT) / @l_AMORT_MONTH, -3)
-- SET @l_NEW_FIRST_AMORT_AMT = ROUND(@l_MONTLY_AMORT_AMT/dbo.[FN_GetDaysInMonth](@l_AMORT_START_DATE) * (DATEDIFF(day,@l_AMORT_START_DATE, dbo.FN_GetLastDayOfMonth(@l_AMORT_START_DATE)) + 1), -3)
--END
--ELSE
--BEGIN
-- --thieuvq - sua lai doan tinh khau hao
-- --TINH LAI SO KY KHAU HAO TINH THEO NGAY DUYET
-- DECLARE @l_KY_KHAU_HAO_CL FLOAT
-- DECLARE @l_NGAY_DUYET DATE = CONVERT(DATE,@P_APPROVE_DT_KT,103)
-- SET @l_NGAY_DUYET = CONVERT(VARCHAR(10),YEAR(@l_NGAY_DUYET)) + '-'+CONVERT(VARCHAR(10),MONTH(@l_NGAY_DUYET)) + '-'+ '1'
-- SET @l_KY_KHAU_HAO_CL = round((datepart(day,@l_AMORT_END_DATE)*1.0/dbo.[FN_GetDaysInMonth](@l_AMORT_END_DATE)),2)
-- --THIEUVQ COMMENT 29072015
-- --IF @l_KY_KHAU_HAO_CL = 1 SET @l_KY_KHAU_HAO_CL = DATEDIFF(MM, @l_NGAY_DUYET, @l_AMORT_END_DATE)
-- --ELSE
-- SET @l_KY_KHAU_HAO_CL = DATEDIFF(MM, @l_NGAY_DUYET, @l_AMORT_END_DATE) + @l_KY_KHAU_HAO_CL
-- --KIEM TRA THANG DUYET NAY DA CHAY KHAU HAO CHUA, NEU DA CHAY KHAU HAO ROI THI GIAM DI 1 SO KY KH CON LAI
-- IF EXISTS (SELECT * FROM ASS_AMORT WHERE AMORT_TERM = CONVERT(VARCHAR(5),MONTH(@l_NGAY_DUYET))+'/'+CONVERT(VARCHAR(5),YEAR(@l_NGAY_DUYET))
-- AND ASSET_TYPE = 'TSCD')
-- BEGIN SET @l_KY_KHAU_HAO_CL = @l_KY_KHAU_HAO_CL - 1 END
-- --SET @l_NEW_MONTHLY_AMT = ROUND((@l_NEW_AMORT_AMT - @l_AMORTIZED_AMT)/ @l_NEW_AMORT_MONTH, -3)
-- SET @l_MONTLY_AMORT_AMT = ROUND((@l_AMORT_AMT - @l_AMORTIZED_AMT)/ @l_KY_KHAU_HAO_CL, -3)
-- --SET @l_NEW_FIRST_AMORT_AMT = @l_OLD_FIRST_AMORT_AMT
--END
------TINH LAI SO TIEN KHAU HAO HANG THANG
DECLARE @l_NGAY_DUYET DATE = CONVERT(DATE,@P_APPROVE_DT_KT,103)
DECLARE @l_KY_KHAU_HAO_CL INT = DATEDIFF(MONTH, @l_NGAY_DUYET, @l_AMORT_END_DATE)
SET @l_MONTLY_AMORT_AMT = ROUND((@l_AMORT_AMT - @l_AMORTIZED_AMT) / @l_KY_KHAU_HAO_CL, 0)
SET @l_NEW_FIRST_AMORT_AMT = @l_MONTLY_AMORT_AMT
END
IF(@l_BUY_PRICE=0)
BEGIN
UPDATE ASS_MASTER
SET
[AMORT_STATUS] ='DTL', LIQ_W_STATUS = '1',
AMORTIZED_AMT = @l_AMORTIZED_AMT,
LIQUIDATION_DT = CONVERT(DATETIME, @P_APPROVE_DT_KT, 103),
APPROVE_DT = CONVERT(DATETIME, @P_APPROVE_DT_KT, 103),
BUY_PRICE = @l_BUY_PRICE,
AMORT_AMT = @l_AMORT_AMT,
MONTHLY_AMORT_AMT = @l_MONTLY_AMORT_AMT,
FIRST_AMORT_AMT = @l_NEW_FIRST_AMORT_AMT
WHERE ASSET_ID = @l_ASSET_ID
END
ELSE
BEGIN
UPDATE ASS_MASTER
SET
-- [AMORT_STATUS] = @l_AMORT_STATUS,
AMORTIZED_AMT = @l_AMORTIZED_AMT,
--LIQUIDATION_DT = CONVERT(DATETIME, @P_APPROVE_DT_KT, 103),
APPROVE_DT = CONVERT(DATETIME, @P_APPROVE_DT_KT, 103),
BUY_PRICE = @l_BUY_PRICE,
AMORT_AMT = @l_AMORT_AMT,
MONTHLY_AMORT_AMT = @l_MONTLY_AMORT_AMT,
FIRST_AMORT_AMT = @l_NEW_FIRST_AMORT_AMT
WHERE ASSET_ID = @l_ASSET_ID
END
IF @@Error <> 0 GOTO ABORT
--GAN GIA TRI DE HACH TOAN GIAM
SET @l_BUY_PRICE = @l_BUY_PRICE_CL
SET @l_AMORTIZED_AMT = @l_AMORTIZED_AMT_CL
SET @l_AMORT_AMT = @l_AMORT_AMT_CL
SET @l_CUR_AMORTIZED_AMT=@l_AMORT_AMT-@l_AMORTIZED_AMT
END
ELSE
BEGIN
UPDATE ASS_MASTER
SET [AMORT_STATUS] = 'DTL', LIQ_W_STATUS = '1',
AMORTIZED_AMT = @l_AMORT_AMT, --khau hao het,
LIQUIDATION_DT = CONVERT(DATETIME, @P_APPROVE_DT_KT, 103),
APPROVE_DT = CONVERT(DATETIME, @P_APPROVE_DT_KT, 103)
WHERE ASSET_ID = @l_ASSET_ID
IF @@Error <> 0 GOTO ABORT
END
DECLARE @l_BRANCH_CODE VARCHAR(25),@l_PAY_HS_ACCTNO VARCHAR(25),@l_COL_LIQ_ACCTNO VARCHAR(25),@l_ETP_ID VARCHAR(25),@l_PAY_LIQ_ACCTNO VARCHAR(25),@l_COL_LIQ_CCLD VARCHAR(25),@l_PAY_LIQ_CCLD VARCHAR(25)
SET @l_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_BRANCH_ID)
SET @l_BUY_PRICE_REMAIN=@l_BUY_PRICE-@l_AMORTIZED_AMT
SET @l_PAY_HS_ACCTNO = (SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='PAY_HS')
SET @l_COL_LIQ_ACCTNO = (SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='LIQ_TSCD')
SET @l_PAY_LIQ_ACCTNO = (SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='LIQ_TSCD_PAY')
SET @l_COL_LIQ_CCLD = (SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='LIQ_CCLD')
SET @l_PAY_LIQ_CCLD = (SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='LIQ_CCLD_PAY')
DECLARE @AMORT_CCLD VARCHAR(20) = (SELECT EPA.ACC_NO FROM ENTRIES_POST_ACCNO EPA WHERE EPA.ACC_TYPE = 'AMORT_CCLD')
DECLARE @BW_AMORT_CCLD VARCHAR(20) = (SELECT EPA.ACC_NO FROM ENTRIES_POST_ACCNO EPA WHERE EPA.ACC_TYPE = 'BW_AMORT_CCLD')
DECLARE @VAT_ACCNO VARCHAR(20) = (SELECT EPA.ACC_NO FROM ENTRIES_POST_ACCNO EPA WHERE EPA.ACC_TYPE = 'ACC_VAT_NEC')
-----------hach toan khi thanh ly TS
IF (@l_TYPE_ID = 'TSCD')
BEGIN
---- TSCD HẾT KHẤU HAO
IF @l_CUR_AMORTIZED_AMT = 0
BEGIN
---- Thanh lý 0 đồng (KHÔNG THU TIỀN)
IF(@l_LIQ_AMT = 0)
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_AMORT_GL, 'VND', 'D', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_ASSET_GL, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
END
ELSE IF(@l_LIQ_AMT > 0) --- -- THANH LÝ CÓ THU TIỀN
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_REQ_AMT,1, @l_REQ_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_COL_LIQ_ACCTNO, 'VND', 'C', @l_LIQ_AMT,1, @l_LIQ_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
IF(@l_LIQ_PRICE_VAT > 0)
BEGIN
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
END
----------------------------------
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_AMORT_GL, 'VND', 'D', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_ASSET_GL, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
END
END
---- TSCD CÒN KHẤU HAO
ELSE IF @l_CUR_AMORTIZED_AMT > 0
BEGIN
IF(@l_LIQ_AMT > @l_CUR_AMORTIZED_AMT) --- -- THANH LÝ Lời
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_REQ_AMT-@l_CUR_AMORTIZED_AMT,1, @l_REQ_AMT-@l_CUR_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_COL_LIQ_ACCTNO, 'VND', 'C', @l_LIQ_AMT - @l_CUR_AMORTIZED_AMT,1, @l_LIQ_AMT - @l_CUR_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
IF(@l_LIQ_PRICE_VAT > 0)
BEGIN
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
END
----------------- TẤT TOÁN ------------------------
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_CUR_AMORTIZED_AMT,1, @l_CUR_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_AMORT_GL, 'VND', 'D', ISNULL(@l_AMORTIZED_AMT, 0),1, ISNULL(@l_AMORTIZED_AMT, 0), @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_ASSET_GL, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
END
IF(@l_LIQ_AMT < @l_CUR_AMORTIZED_AMT) ------- THanh lý LỖ
BEGIN
IF(@l_LIQ_PRICE_VAT > 0)
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
END
----------------------------------------
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_BUY_PRICE - (@l_CUR_AMORTIZED_AMT - @l_LIQ_AMT) - (ISNULL(@l_AMORTIZED_AMT, 0)),1, @l_BUY_PRICE - (@l_CUR_AMORTIZED_AMT - @l_LIQ_AMT) - (ISNULL(@l_AMORTIZED_AMT, 0)), @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_AMORT_GL, 'VND', 'D', ISNULL(@l_AMORTIZED_AMT, 0),1, ISNULL(@l_AMORTIZED_AMT, 0), @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_LIQ_ACCTNO, 'VND', 'D',@l_CUR_AMORTIZED_AMT - @l_LIQ_AMT, 1, @l_CUR_AMORTIZED_AMT - @l_LIQ_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_ASSET_GL, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
END
ELSE IF(@l_LIQ_AMT = @l_CUR_AMORTIZED_AMT) --- -- THANH LÝ = GTCL
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_CUR_AMORTIZED_AMT,1, @l_CUR_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_AMORT_GL, 'VND', 'D', ISNULL(@l_AMORTIZED_AMT, 0),1, ISNULL(@l_AMORTIZED_AMT, 0), @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_ASSET_GL, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
IF(@l_LIQ_PRICE_VAT > 0)
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
END
END
END
END
ELSE ---- CCLD ----
BEGIN
IF((@l_BRANCH_ID IS NOT NULL AND @l_BRANCH_ID <> '') AND (@l_IS_COLLECT = 0 OR @l_IS_COLLECT IS NULL)) ------ CCLD ĐANG SỬ DỤNG
BEGIN
------ THANH LÝ CCLD KHÔNG THU TIỀN
IF(@l_LIQ_AMT = 0)
BEGIN
IF @l_CUR_AMORTIZED_AMT = 0 --Neu gia tri khau hao phân bổ hết thì không phát sinh
BEGIN
PRINT 'KHONG PHAT SINH'
END
ELSE
IF @l_CUR_AMORTIZED_AMT > 0 --Neu gia tri khau hao chưa phân bổ hết
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_LIQ_CCLD, 'VND', 'D', @l_AMORT_AMT - @l_AMORTIZED_AMT,1, @l_AMORT_AMT - @l_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @AMORT_CCLD, 'VND', 'C', @l_AMORT_AMT - @l_AMORTIZED_AMT,1, @l_AMORT_AMT - @l_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
END
END
ELSE IF(@l_LIQ_AMT > 0) --- -- THANH LÝ CÓ THU TIỀN
BEGIN
IF @l_CUR_AMORTIZED_AMT = 0 --Neu gia tri khau hao phân bổ hết
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
@l_ET_ID OUT
--- NỢ HS
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', (@l_LIQ_AMT + @l_LIQ_PRICE_VAT),1, (@l_LIQ_AMT + @l_LIQ_PRICE_VAT), @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
-- CÓ 790001002
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_COL_LIQ_CCLD, 'VND', 'C', @l_LIQ_AMT,1, @l_LIQ_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
IF(@l_LIQ_PRICE_VAT > 0)
BEGIN
-- CÓ 453101001
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
END
END
ELSE IF @l_CUR_AMORTIZED_AMT > 0 --Neu gia tri khau hao chưa phân bổ hết
BEGIN
---- Thanh lý lỗ
IF(@l_LIQ_AMT < @l_CUR_AMORTIZED_AMT)
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
@l_ET_ID OUT
--- NỢ HS
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_REQ_AMT,1, @l_REQ_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
-- NO 8990
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_LIQ_CCLD, 'VND', 'D', (@l_CUR_AMORTIZED_AMT - @l_LIQ_AMT),1, (@l_CUR_AMORTIZED_AMT - @l_LIQ_AMT), @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
-- CÓ 3880 remain value
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @AMORT_CCLD, 'VND', 'C', @l_CUR_AMORTIZED_AMT,1, @l_CUR_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
---------------------
IF(@l_LIQ_PRICE_VAT > 0)
BEGIN
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
-- CÓ 4531 vat dau ra
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
END
END
ELSE IF(@l_LIQ_AMT > @l_CUR_AMORTIZED_AMT) ---- Thanh lý lời
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
@l_ET_ID OUT
--- NỢ HS
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_REQ_AMT,1, @l_REQ_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
-- NO 7990
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_COL_LIQ_CCLD, 'VND', 'C', (@l_LIQ_AMT - @l_CUR_AMORTIZED_AMT),1, (@l_LIQ_AMT - @l_CUR_AMORTIZED_AMT), @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
-- CÓ 3880 remain value
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @AMORT_CCLD, 'VND', 'C', @l_CUR_AMORTIZED_AMT,1, @l_CUR_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
---------------------
IF(@l_LIQ_PRICE_VAT > 0)
BEGIN
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
-- CÓ 4531 remain value
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
END
END
ELSE IF(@l_LIQ_AMT = @l_CUR_AMORTIZED_AMT) ---- Thanh lý không lời lổ
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
@l_ET_ID OUT
--- NỢ HS
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_REQ_AMT,1, @l_REQ_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
-- CÓ 3880 remain value
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @AMORT_CCLD, 'VND', 'C', @l_CUR_AMORTIZED_AMT,1, @l_CUR_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
IF(@l_LIQ_PRICE_VAT > 0)
BEGIN
-- CÓ 4531 remain value
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
END
END
END
END
END
ELSE IF((@l_BRANCH_ID IS NULL OR @l_BRANCH_ID = '') OR @l_IS_COLLECT = 1)--------- CCLD ĐANG THU HỒI OR TRONG KHO
BEGIN
------ THANH LÝ CCLD KHÔNG THU TIỀN
IF(@l_LIQ_AMT = 0)
BEGIN
IF @l_CUR_AMORTIZED_AMT = 0 --Neu gia tri khau hao phân bổ hết thì không phát sinh
BEGIN
PRINT 'KHONG PHAT SINH'
END
ELSE
IF @l_CUR_AMORTIZED_AMT > 0 --Neu gia tri khau hao chưa phân bổ hết
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_LIQ_CCLD, 'VND', 'D', @l_AMORT_AMT - @l_AMORTIZED_AMT,1, @l_AMORT_AMT - @l_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @BW_AMORT_CCLD, 'VND', 'C', @l_AMORT_AMT - @l_AMORTIZED_AMT,1, @l_AMORT_AMT - @l_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
END
END
ELSE IF(@l_LIQ_AMT > 0) --- -- THANH LÝ CÓ THU TIỀN
BEGIN
IF @l_CUR_AMORTIZED_AMT = 0 --Neu gia tri khau hao phân bổ hết
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
@l_ET_ID OUT
--- NỢ HS
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', (@l_LIQ_AMT + @l_LIQ_PRICE_VAT),1, (@l_LIQ_AMT + @l_LIQ_PRICE_VAT), @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
-- CÓ 790001002
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_COL_LIQ_CCLD, 'VND', 'C', @l_LIQ_AMT,1, @l_LIQ_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
IF(@l_LIQ_PRICE_VAT > 0)
BEGIN
-- CÓ 453101001
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
END
END
ELSE IF @l_CUR_AMORTIZED_AMT > 0 --Neu gia tri khau hao chưa phân bổ hết
BEGIN
---- Thanh lý lỗ
IF(@l_LIQ_AMT < @l_CUR_AMORTIZED_AMT)
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
@l_ET_ID OUT
--- NỢ HS
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_REQ_AMT,1, @l_LIQ_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
-- NO 8990
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_LIQ_CCLD, 'VND', 'D', (@l_CUR_AMORTIZED_AMT - @l_LIQ_AMT),1, (@l_CUR_AMORTIZED_AMT - @l_LIQ_AMT), @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
-- CÓ 3880 remain value
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @BW_AMORT_CCLD, 'VND', 'C', @l_CUR_AMORTIZED_AMT,1, @l_CUR_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
---------------------
IF(@l_LIQ_PRICE_VAT > 0)
BEGIN
-- CÓ 4531 vat dau ra
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
END
END
ELSE IF(@l_LIQ_AMT > @l_CUR_AMORTIZED_AMT) ---- Thanh lý lời
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
@l_ET_ID OUT
--- NỢ HS
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_REQ_AMT,1, @l_REQ_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
-- NO 7990
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_COL_LIQ_CCLD, 'VND', 'C', (@l_LIQ_AMT - @l_CUR_AMORTIZED_AMT),1, (@l_LIQ_AMT - @l_CUR_AMORTIZED_AMT), @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
-- CÓ 3880 remain value
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @BW_AMORT_CCLD, 'VND', 'C', @l_CUR_AMORTIZED_AMT,1, @l_CUR_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
---------------------
IF(@l_LIQ_PRICE_VAT > 0)
BEGIN
-- CÓ 4531 remain value
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
END
END
ELSE IF(@l_LIQ_AMT = @l_CUR_AMORTIZED_AMT) ---- Thanh lý không lời lổ
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'LIQ', @l_LIQDT_ID, @l_DO_BRANCH_ID, @l_ASSET_GL , @l_BRANCH_ID, @l_AMORT_GL, @l_BRANCH_ID
, @l_AMORTIZED_AMT, @l_EXP_TO_CORE, @sToday, @p_CORE_NOTE, @l_MAKER_ID, @P_CHECKER_ID_KT,@P_LIQ_ID,--N'THANH LY TSCD/CCLD'
@l_ET_ID OUT
--- NỢ HS
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @l_PAY_HS_ACCTNO, 'VND', 'D', @l_REQ_AMT,1, @l_REQ_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
-- CÓ 3880 remain value
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @BW_AMORT_CCLD, 'VND', 'C', @l_CUR_AMORTIZED_AMT,1, @l_CUR_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
IF(@l_LIQ_PRICE_VAT > 0)
BEGIN
-- CÓ 4531 remain value
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS, TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@P_LIQ_ID ,@l_BRANCH_CODE , @VAT_ACCNO, 'VND', 'C', @l_LIQ_PRICE_VAT,1, @l_LIQ_PRICE_VAT, @l_ASSET_CODE,CONVERT(DATETIME, @P_APPROVE_DT_KT, 103), @l_MAKER_ID, @P_CHECKER_ID_KT, '', @p_CORE_NOTE, @l_TRN_NO);
END
END
END
END
END
END
--INSERT INTO ASS_TRANSACTIONS(ASSET_ID, TRN_ID, TRN_TYPE, TRN_DATE, RECORD_STATUS, AUTH_STATUS,
-- [MAKER_ID], [CREATE_DT], [CHECKER_ID], [APPROVE_DT]
--)VALUES
--(
-- @l_ASSET_ID, @l_LIQDT_ID, 'ASS_LIQ', CONVERT(DATETIME, @sToday, 103), '1', 'A',
-- @l_MAKER_ID, CONVERT(DATETIME, @sToday, 103), @P_CHECKER_ID_KT, CONVERT(DATETIME, @P_APPROVE_DT_KT, 103)
--)
--IF @@Error <> 0 GOTO ABORT
--insert dbo.ASS_VALUES
EXEC SYS_CodeMasters_Gen 'ASS_VALUES', @l_VALUE_ID out
IF @l_VALUE_ID='' OR @l_VALUE_ID IS NULL GOTO ABORT
INSERT INTO ASS_VALUES
(
VALUE_ID, ASSET_ID, BRANCH_ID, TRN_DT, CRDR, ASSET_AMT, [DESCRIPTION], TRN_ID, TRN_TYPE,
RECORD_STATUS, AUTH_STATUS, MAKER_ID, CREATE_DT, CHECKER_ID, APPROVE_DT, AMORT_AMT
)
VALUES
(
@l_VALUE_ID, @l_ASSET_ID, @l_HO_BRN_ID, CONVERT(datetime, @sToday, 103), 'D', @l_BUY_PRICE, N'THANH LY TSCD/CCLD', @l_LIQDT_ID, 'ASS_LIQ',
'1','A',@l_MAKER_ID, CONVERT(datetime, @sToday, 103), @P_CHECKER_ID_KT, CONVERT(datetime, @sToday, 103), @l_AMORT_AMT
)
IF @@Error <> 0 GOTO ABORT
--THIEUVQ THEM PHAN NAY PHUC VU BAO CAO TSCD_BC03
--GHI NHAN HET KHAU HAO KHI THUC HIEN THANH LY
SET @l_AMORT_DT_ID = ''
EXEC SYS_CodeMasters_Gen 'ASS_AMORT_DT', @l_AMORT_DT_ID OUT
IF @l_AMORT_DT_ID='' OR @l_AMORT_DT_ID IS NULL GOTO ABORT
INSERT INTO ASS_AMORT_DT
(
AMORTDT_ID,AMORT_ID,AMORT_DT,CRDR,BRANCH_ID,DEP_ID,ASSET_ID,AMORT_AMT,GROUP_ID,EXECUTED,TRN_TYPE,TRN_DESC
)
VALUES
(
@l_AMORT_DT_ID,NULL,CONVERT(datetime, @sToday, 103),'D' ,@l_BRANCH_ID, @l_DEPT_ID,@l_ASSET_ID,@l_AMORTIZED_AMT,
NULL, --Khong chay khau hao theo group
'1',
'AMORT',
'THANH LY TSCD - CCLD'
)
IF @@Error <> 0 GOTO ABORT
--------
FETCH NEXT FROM CUR INTO @l_LIQDT_ID,@l_ASSET_ID
END
CLOSE CUR
DEALLOCATE CUR
END
UPDATE ASS_LIQ_REQUEST SET IS_DONE = 1 WHERE LIQ_REQ_ID IN (SELECT * FROM STRING_SPLIT((
SELECT LIST_LIQ_REQUEST FROM ASS_LIQUIDATION WHERE LIQ_ID = @P_LIQ_ID),','))
UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL WHERE ASSET_ID IN (SELECT ALD.ASSET_ID FROM ASS_LIQUIDATION_DT ALD WHERE ALD.LIQ_ID = @P_LIQ_ID)
-- GIANT Insert to table PL_PROCESS
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @P_LIQ_ID,
'APPROVE',
@P_CHECKER_ID_KT,
GETDATE(),
N'Kiểm soát viên phê duyệt',
N'Kiểm soát viên phê duyệt hoàn tất'
)
COMMIT TRANSACTION
SELECT '0' as Result, '' ErrorDesc
RETURN '0'
ABORT:
BEGIN
CLOSE CUR
DEALLOCATE CUR
ROLLBACK TRANSACTION
SELECT '-1' as Result, @ERROR ErrorDesc
RETURN '-1'
End
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[TR_REQUEST_SHOP_DOC_Upd]'
GO
ALTER PROCEDURE [dbo].[TR_REQUEST_SHOP_DOC_Upd]
@p_REQ_ID varchar(15) = null ,
@p_REQ_CODE nvarchar(100) = NULL,
@p_REQ_NAME nvarchar(200) = NULL,
@p_REQ_DT VARCHAR(20) = NULL,
@p_NOTES nvarchar(1000) = NULL,
@p_RECORD_STATUS varchar(1) = NULL,
@p_MAKER_ID VARCHAR(100) = NULL,
@p_CREATE_DT VARCHAR(20) = NULL,
@p_AUTH_STATUS varchar(50) = NULL,
@p_CHECKER_ID VARCHAR(100) = NULL,
@p_APPROVE_DT VARCHAR(20) = NULL,
@p_LISTASSET XML = NULL,
@p_ListCostCenter XML,
@p_REQ_TYPE varchar(10) = NULL,
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
@p_BRANCH_ID VARCHAR(15)=NULL,
@p_DEP_ID VARCHAR(15)=NULL,
@p_CURRENT_URI VARCHAR(500)=NULL,
@p_PL_CODE VARCHAR(50) = NULL --PHUCVH 14/11/22 BỔ SUNG SỐ TỜ TRÌNH
AS
DECLARE @sErrorCode VARCHAR(20)
IF @sErrorCode <> ''
BEGIN
SELECT ErrorCode Result, '' REQ_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @sErrorCode
RETURN '0'
END
Declare @hdoc INT
Exec sp_xml_preparedocument @hdoc Output,@p_LISTASSET
DECLARE AssetDetail CURSOR FOR
SELECT *
FROM OPENXML(@hdoc,'/Root/AssetDetail',2)
WITH
(
REQDT_ID VARCHAR(15),
PLAN_ID varchar(15) ,
TRADE_ID varchar(15) ,
ASS_GROUP_ID varchar(15) ,
[DESCRIPTION] nvarchar(500),
UNIT_ID varchar(15) ,
QUANTITY decimal(18) ,
PRICE decimal(18) ,
TOTAL_AMT decimal(18),
NOTES nvarchar(1000),
RECEIVE_BRANCH varchar(15),
RECEIVE_ADDR nvarchar(1000),
RECEIVE_PERSON nvarchar(500),
RECEIVE_TEL varchar(100),
RECEIVE_SUBBRANCH varchar(20),
RECEIVE_DEP varchar(20),
RECEIVE_EMAIL nvarchar(200),
REQ_DT_TYPE VARCHAR(20),
QTY_ETM DECIMAL(18,0),
EMP_CODE VARCHAR(15),
EMP_ID VARCHAR(15),
TYPE_XL VARCHAR(50),
DO_EMAIL VARCHAR(200),
ASS_ID VARCHAR(20),
REASON NVARCHAR(1200)
)
OPEN AssetDetail
SET @p_DEP_ID=(SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_MAKER_ID)
IF(@p_BRANCH_ID <> 'DV0001') SET @p_DEP_ID = NULL
PRINT 'PASS KHOI TAO'
DECLARE @STATUS VARCHAR(15) = (SELECT STATUS FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID= @p_REQ_ID)
BEGIN TRANSACTION
IF(@p_REQ_NAME IS NULL OR @p_REQ_NAME='' )
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' REQ_ID, N'Tên PYC bắt buộc nhập' ErrorDesc
RETURN '-1'
END
-- IF(@p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT='' )
-- BEGIN
-- ROLLBACK TRANSACTION
-- SELECT '-1' as Result, '' REQ_ID, N'Nội dung PYC bắt buộc nhập' ErrorDesc
-- RETURN '-1'
-- END
--insert master
BEGIN
IF(@STATUS = 'NEW') SET @p_AUTH_STATUS = 'E'
IF(@STATUS = 'QLTS_NL' OR @STATUS = 'QLTS_N')
BEGIN
UPDATE TR_REQUEST_SHOP_DOC
SET [REQ_CONTENT]=@p_REQ_CONTENT
,[REQ_NAME] = @p_REQ_NAME
,[NOTES] = @p_NOTES,[AUTH_STATUS] = 'U'
,PL_CODE = @p_PL_CODE
WHERE REQ_ID= @p_REQ_ID
END
ELSE
BEGIN
UPDATE TR_REQUEST_SHOP_DOC SET [REQ_TYPE] = @p_REQ_TYPE,[REQ_CONTENT]=@p_REQ_CONTENT,[REQ_NAME] = @p_REQ_NAME,
[NOTES] = @p_NOTES,[RECORD_STATUS] = @p_RECORD_STATUS,DEP_ID = @p_DEP_ID,[AUTH_STATUS] = @p_AUTH_STATUS,[CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103),[BRANCH_ID]=@p_BRANCH_ID
,PL_CODE = @p_PL_CODE
WHERE REQ_ID= @p_REQ_ID
END
IF (@STATUS = 'REJECT')
BEGIN
UPDATE TR_REQUEST_SHOP_DOC
SET STATUS = 'NEW', AUTH_STATUS = 'E'
WHERE REQ_ID= @p_REQ_ID
UPDATE PL_REQUEST_PROCESS SET [STATUS]='P' WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='REJECT'
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],BRANCH_ID,PARENT_PROCESS_ID,DEP_ID, CHECKER_ID)
VALUES(@p_REQ_ID,'ADDNEW','C',@p_BRANCH_ID,'',@p_DEP_ID, @p_MAKER_ID)
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID, PROCESS_TYPE)
VALUES(@p_REQ_ID,'APPNEW','U','GDDV',@p_BRANCH_ID,'ADDNEW',@p_DEP_ID, 'Approve')
-- IF(@p_BRANCH_ID='DV0001')
-- BEGIN
-- UPDATE PL_REQUEST_PROCESS SET [STATUS]='P' WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='ADDNEW'
-- UPDATE PL_REQUEST_PROCESS SET [STATUS]='P' WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='APPNEW'
-- --GỬI QLTS
-- INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID)
-- VALUES(@p_REQ_ID,'QLTS_N','C','QLTS','DV0001','APPNEW', 'DEP000000000048')
-- UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]='QLTS_N', AUTH_STATUS = 'U' WHERE REQ_ID=@p_REQ_ID
-- END
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_REQ_ID,
'UPDATE',
@p_MAKER_ID,
GETDATE(),
N'Cập nhật phiếu bị từ chối',
N'Nhân viên tạo phiếu cập nhật sau từ chối'
)
END
END
IF @@Error <> 0 GOTO ABORT
PRINT 'UPD MASTER SUCCESS'
--insert asset detail tương đương như NỘI DUNG trong bảng contract detail
Declare
@REQDT_ID VARCHAR(15),
@PLAN_ID varchar(15),
@TRADE_ID varchar(15),
@ASS_GROUP_ID varchar(15),
@DESCRIPTION nvarchar(500),
@UNIT_ID varchar(15),
@QUANTITY decimal(18),
@PRICE decimal(18),
@TOTAL_AMT decimal(18),
@NOTES nvarchar(1000),
@REQ_ID varchar(15) = NULL,
@RECEIVE_BRANCH varchar(15)=NULL,
@RECEIVE_ADDR nvarchar(1000)=NULL,
@RECEIVE_PERSON nvarchar(500)=NULL,
@RECEIVE_TEL varchar(100)=NULL,
@RECEIVE_SUBBRANCH varchar(20),
@RECEIVE_DEP varchar(20),
@RECEIVE_EMAIL nvarchar(200),
@REQ_DT_TYPE VARCHAR(20),
@QTY_ETM DECIMAL(18,0),
@EMP_CODE VARCHAR(15),
@EMP_ID VARCHAR(15),
@TYPE_XL VARCHAR(50),
@DO_EMAIL VARCHAR(200),
@ASS_ID VARCHAR(20),
@REASON NVARCHAR(1200)
IF(@STATUS = 'QLTS_NL')
BEGIN
DELETE FROM TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = @p_REQ_ID AND (REQ_DT_TYPE = 'BUYNEW' OR REQ_DT_TYPE = 'XKSD')
END
ELSE IF(@STATUS = 'NEW' OR @STATUS = 'REJECT')
BEGIN
DELETE FROM TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = @p_REQ_ID AND (REQ_DT_TYPE = 'ORGINAL' OR REQ_DT_TYPE = 'ASSET_BROKEN')
END
ELSE DELETE FROM TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = @p_REQ_ID AND REQ_DT_TYPE <> 'ASSET_BROKEN'
FETCH NEXT FROM AssetDetail INTO @REQDT_ID,@PLAN_ID,@TRADE_ID,@ASS_GROUP_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY,
@PRICE,@TOTAL_AMT,@NOTES, @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL,@RECEIVE_SUBBRANCH
,@RECEIVE_DEP,@RECEIVE_EMAIL,@REQ_DT_TYPE, @QTY_ETM
,@EMP_CODE,@EMP_ID,@TYPE_XL,@DO_EMAIL,@ASS_ID,@REASON
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @l_REQDT_ID VARCHAR(15)
EXEC SYS_CodeMasters_Gen 'TR_REQUEST_SHOP_DOC_DT', @l_REQDT_ID out
IF @l_REQDT_ID='' OR @l_REQDT_ID IS NULL GOTO ABORT
-- IF(@EMP_ID IS NULL OR @EMP_ID='' )
-- BEGIN
-- ROLLBACK TRANSACTION
-- SELECT '-1' as Result, @p_REQ_ID REQ_ID, N'Người sử dụng bắt buộc nhập' ErrorDesc
-- RETURN '-1'
-- END
-- IF(@RECEIVE_EMAIL IS NULL OR @RECEIVE_EMAIL='' AND @REQ_DT_TYPE <> 'ASSET_BROKEN')
-- BEGIN
-- ROLLBACK TRANSACTION
-- SELECT '-1' as Result, @p_REQ_ID REQ_ID, N'Email người nhận bắt buộc nhập' ErrorDesc
-- RETURN '-1'
-- END
IF(@QTY_ETM IS NULL AND @REQ_DT_TYPE <> 'ASSET_BROKEN')
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_REQ_ID REQ_ID, N'Số lượng bắt buộc nhập' ErrorDesc
RETURN '-1'
END
IF((SELECT COUNT(*) FROM TR_REQUEST_SHOP_DOC_DT WHERE TRADE_ID = @p_REQ_ID AND ASS_GROUP_ID = @ASS_GROUP_ID) > 0)
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_REQ_ID REQ_ID, N'Nhóm tài sản chọn không thể trùng nhau' ErrorDesc
RETURN '-1'
END
IF(@REQ_DT_TYPE = 'ASSET_BROKEN' AND NOT EXISTS(SELECT * FROM TR_REQUEST_SHOP_DOC_DT TRSDD WHERE TRSDD.ASS_ID = @ASS_ID AND TRSDD.REQ_DOC_ID = @p_REQ_ID))
BEGIN
INSERT INTO TR_REQUEST_SHOP_DOC_DT(REQDT_ID,REQ_DOC_ID,PLAN_ID,TRADE_ID,ASS_GROUP_ID,[DESCRIPTION],UNIT_ID,
QUANTITY,PRICE,TOTAL_AMT,NOTES, RECEIVE_BRANCH, RECEIVE_ADDR, RECEIVE_PERSON, RECEIVE_TEL,RECORD_STATUS,
MAKER_ID,CREATE_DT,AUTH_STATUS,CHECKER_ID,APPROVE_DT,RECEIVE_SUBBRANCH,RECEIVE_DEP,RECEIVE_EMAIL
,REQ_DT_TYPE,QTY_ETM,EMP_CODE,EMP_ID,TYPE_XL,REASON,ASS_ID)
VALUES(@l_REQDT_ID,@p_REQ_ID,@PLAN_ID,@TRADE_ID,@ASS_GROUP_ID,@DESCRIPTION,@UNIT_ID,
@QUANTITY,@PRICE,@TOTAL_AMT,@NOTES, @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL,@p_RECORD_STATUS,
@p_MAKER_ID,CONVERT(DATETIME, @p_CREATE_DT, 103),@p_AUTH_STATUS,@p_CHECKER_ID,CONVERT(DATETIME, @p_APPROVE_DT, 103)
,@RECEIVE_SUBBRANCH,@RECEIVE_DEP,@RECEIVE_EMAIL,@REQ_DT_TYPE,@QTY_ETM
,@EMP_CODE,@EMP_ID,@TYPE_XL,@REASON,@ASS_ID)
END
ELSE IF (@REQ_DT_TYPE <> 'ASSET_BROKEN')
BEGIN
INSERT INTO TR_REQUEST_SHOP_DOC_DT(REQDT_ID,REQ_DOC_ID,PLAN_ID,TRADE_ID,ASS_GROUP_ID,[DESCRIPTION],UNIT_ID,
QUANTITY,PRICE,TOTAL_AMT,NOTES, RECEIVE_BRANCH, RECEIVE_ADDR, RECEIVE_PERSON, RECEIVE_TEL,RECORD_STATUS,
MAKER_ID,CREATE_DT,AUTH_STATUS,CHECKER_ID,APPROVE_DT,RECEIVE_SUBBRANCH,RECEIVE_DEP,RECEIVE_EMAIL
,REQ_DT_TYPE,QTY_ETM,EMP_CODE,EMP_ID,TYPE_XL,REASON,ASS_ID)
VALUES(@l_REQDT_ID,@p_REQ_ID,@PLAN_ID,@TRADE_ID,@ASS_GROUP_ID,@DESCRIPTION,@UNIT_ID,
@QUANTITY,@PRICE,@TOTAL_AMT,@NOTES, @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL,@p_RECORD_STATUS,
@p_MAKER_ID,CONVERT(DATETIME, @p_CREATE_DT, 103),@p_AUTH_STATUS,@p_CHECKER_ID,CONVERT(DATETIME, @p_APPROVE_DT, 103)
,@RECEIVE_SUBBRANCH,@RECEIVE_DEP,@RECEIVE_EMAIL,@REQ_DT_TYPE,@QTY_ETM
,@EMP_CODE,@EMP_ID,@TYPE_XL,@REASON,@ASS_ID)
END
IF @@ERROR <> 0 GOTO ABORT
-- next Group_Id
FETCH NEXT FROM AssetDetail INTO @REQDT_ID,@PLAN_ID,@TRADE_ID,@ASS_GROUP_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY,
@PRICE,@TOTAL_AMT,@NOTES, @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL,@RECEIVE_SUBBRANCH
,@RECEIVE_DEP,@RECEIVE_EMAIL,@REQ_DT_TYPE, @QTY_ETM
,@EMP_CODE,@EMP_ID,@TYPE_XL,@DO_EMAIL,@ASS_ID,@REASON
END
CLOSE AssetDetail
DEALLOCATE AssetDetail
IF(EXISTS(SELECT * FROM TR_REQUEST_SHOP_DOC TRSD WHERE TRSD.REQ_ID = @p_REQ_ID AND TRSD.STATUS = 'NEW' OR TRSD.STATUS = 'REJECT' OR TRSD.STATUS = 'QLTS_N'))
BEGIN
IF(@STATUS <> 'QLTS_NL')
BEGIN
Declare @hdoc2 INT
Declare
@l_NOTES NVARCHAR(MAX),
@l_AUTH_STATUS VARCHAR(5),
@COST_ID varchar(15),
@REQ_COST_ID varchar(15)
Exec sp_xml_preparedocument @hdoc2 Output,@p_ListCostCenter
DECLARE ListCostCenters CURSOR FOR
SELECT *
FROM OPENXML(@hdoc2,'/Root/ListCostCenter',2)
WITH
(
REQ_COST_ID VARCHAR(15),
COST_ID varchar(15),
AUTH_STATUS VARCHAR(5),
NOTES nvarchar(MAX)
)
OPEN ListCostCenters
DELETE TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID = @p_REQ_ID
FETCH NEXT FROM ListCostCenters INTO @REQ_COST_ID,@COST_ID,@l_AUTH_STATUS, @l_NOTES
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN
EXEC SYS_CodeMasters_Gen 'TR_REQUEST_SHOP_COSTCENTER', @REQ_COST_ID out
IF @REQ_COST_ID='' OR @REQ_COST_ID IS NULL GOTO ABORT
INSERT INTO dbo.TR_REQUEST_SHOP_COSTCENTER
(
REQ_COST_ID,
COST_ID,
REQ_ID,
NOTES,
AUTH_STATUS,
MAKER_ID,
CREATE_DT,
CHECKER_ID,
APPROVE_DT
)
VALUES
( @REQ_COST_ID, -- REQ_COST_ID - varchar(15)
@COST_ID, -- COST_ID - varchar(15)
@p_REQ_ID, -- REQ_ID - varchar(15)
@l_NOTES, -- NOTES - nvarchar(500)
'E', -- AUTH_STATUS - varchar(1)
NULL, -- MAKER_ID - varchar(15)
GETDATE(), -- CREATE_DT - datetime
'', -- CHECKER_ID - varchar(15)
NULL -- APPROVE_DT - datetime
)
END
IF @@ERROR <> 0 GOTO ABORT2
-- next Group_Id
FETCH NEXT FROM ListCostCenters INTO @REQ_COST_ID,@COST_ID,@l_AUTH_STATUS, @l_NOTES
END
CLOSE ListCostCenters
DEALLOCATE ListCostCenters
END
END
COMMIT TRANSACTION
SELECT '0' as Result, @p_REQ_ID REQ_ID, '' ErrorDesc
RETURN '0'
ABORT:
BEGIN
CLOSE AssetDetail
DEALLOCATE AssetDetail
ROLLBACK TRANSACTION
SELECT '-1' AS RESULT
RETURN '-1'
End
ABORT2:
BEGIN
CLOSE ListCostCenters
DEALLOCATE ListCostCenters
ROLLBACK TRANSACTION
SELECT '-1' AS RESULT
RETURN '-1'
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[TR_REQUEST_SHOP_DOC_Search]'
GO
ALTER PROCEDURE [dbo].[TR_REQUEST_SHOP_DOC_Search]
@p_REQ_ID varchar(15) = NULL,
@p_REQ_CODE nvarchar(100) = NULL,
@p_REQ_NAME nvarchar(200) = NULL,
@p_REQ_DT VARCHAR(20) = NULL,
@p_REQ_TYPE varchar(20) = NULL,
@p_REQ_CONTENT NVARCHAR(1000)=NULL,
@p_TOTAL_AMT decimal = NULL,
@p_NOTES nvarchar(1000) = NULL,
@p_RECORD_STATUS varchar(1) = NULL,
@p_MAKER_ID NVARCHAR(100) = NULL,
@p_CREATE_DT VARCHAR(20) = NULL,
@p_AUTH_STATUS varchar(50) = NULL,
@p_CHECKER_ID VARCHAR(100) = NULL,
@p_APPROVE_DT VARCHAR(20) = NULL,
@p_RECEIVE_BRANCH VARCHAR(15) = NULL,
@p_USERNAME VARCHAR(100) = NULL,
@p_BRANCH_ID VARCHAR(15)=NULL,
@p_DEP_ID VARCHAR(15)=NULL,
@p_STATUS VARCHAR(15)=NULL,
@p_TOP INT = 10,
@p_DVKD_MANAGE_APP_FROM VARCHAR(20) = NULL,
@p_DVKD_MANAGE_APP_TO VARCHAR(20) = NULL,
@p_REGION_ID varchar(15) = NULL,
@p_CDTYPE_PYC VARCHAR(20) = NULL --Phucvh Truyền thêm CDTYPE để xác định loại PYC
AS
BEGIN -- PAGING
DECLARE @ROLE_KT VARCHAR(50) = (SELECT TU.RoleName FROM TL_USER TU WHERE TU.TLNANME = @p_USERNAME)
DECLARE @DEP_ID VARCHAR(20),@BRANCH_ID VARCHAR(20)
DECLARE @ROLE_LOGIN TABLE(ROLE_USER VARCHAR(20), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20))
-- INSERT INTO @ROLE_LOGIN SELECT DisplayName AS ROLE_USER FROM AbpRoles WHERE Id IN (SELECT A.RoleId FROM AbpUserRoles A
-- LEFT JOIN TL_USER B ON A.UserId = B.ID
-- WHERE B.TLNANME = @p_USERNAME)
INSERT INTO @ROLE_LOGIN
SELECT tugr.ROLE_ID, tugr.BRANCH_ID, tugr.DEPT_ID FROM dbo.TL_USER_GET_ROLES(@p_USERNAME) tugr
SET @DEP_ID= (SELECT DEP_ID FROM dbo.TL_USER WHERE TLNANME=@p_USERNAME)
SET @BRANCH_ID= (SELECT TLSUBBRID FROM dbo.TL_USER WHERE TLNANME=@p_USERNAME)
DECLARE @lstCOST TABLE
(
COST_ID VARCHAR(20)
)
INSERT INTO @lstCOST
SELECT COST_ID FROM dbo.CM_COSTCENTER_DT WHERE BRANCH_ID=@BRANCH_ID AND DEP_ID=@DEP_ID
-- TienLee 11/14/21 --
--
DECLARE @TempSTATUS TABLE
(
STATUS VARCHAR(20)
)
IF(EXISTS(SELECT ROLE_USER FROM @ROLE_LOGIN WHERE ROLE_USER ='QLTS' ))
BEGIN
INSERT INTO @TempSTATUS VALUES('DVKD')
INSERT INTO @TempSTATUS VALUES('DVCM')
END
ELSE IF(EXISTS(SELECT ROLE_USER FROM @ROLE_LOGIN WHERE ROLE_USER ='DVCM' ))
BEGIN
INSERT INTO @TempSTATUS VALUES('QLTS_N')
INSERT INTO @TempSTATUS VALUES('DVCM')
END
ELSE IF(EXISTS(SELECT ROLE_USER FROM @ROLE_LOGIN WHERE ROLE_USER ='CVMS' ))
BEGIN
INSERT INTO @TempSTATUS VALUES('QLTS_N')
INSERT INTO @TempSTATUS VALUES('QLTS_XL')
INSERT INTO @TempSTATUS VALUES('DVCM')
END
DECLARE @lstBRANCH_DEP TABLE
(
BRANCH_ID VARCHAR(20),
DEP_ID VARCHAR(20)
)
-- IF(NOT EXISTS(SELECT ROLE_USER FROM @ROLE_LOGIN WHERE ROLE_USER ='DVCM' OR ROLE_USER='CVMS_TBP' ))
-- BEGIN
-- INSERT INTO @lstBRANCH_DEP
-- (BRANCH_ID,DEP_ID)
-- SELECT TLSUBBRID,DEP_ID FROM dbo.TL_USER WHERE TLNANME=@p_USERNAME
--
-- INSERT INTO @lstBRANCH_DEP
-- (BRANCH_ID,DEP_ID)
-- SELECT BRANCH_ID,DEP_ID FROM dbo.CM_KHOI_DT
-- WHERE KHOI_ID IN (SELECT KHOI_ID FROM dbo.CM_KHOI_DT WHERE DEP_ID= @DEP_ID AND BRANCH_ID=@BRANCH_ID)
-- END
--
--
--
-- DECLARE @tbDep TABLE(DEP_ID VARCHAR(20))
--INSERT INTO @tbDep
--SELECT ckd.DEP_ID FROM CM_DEPARTMENT cd
----LEFT JOIN CM_KHOI ck ON cd.DEP_CODE=ck.KHOI_CODE
----LEFT JOIN CM_KHOI_DT ckd ON ck.KHOI_ID = ckd.KHOI_ID
--WHERE cd.DEP_ID=@p_DEP_ID
DECLARE @REQ_ID_Temp TABLE(REQ_ID VARCHAR(20))
INSERT INTO @REQ_ID_Temp
SELECT A.REQ_ID FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN PL_REQUEST_PROCESS B ON A.REQ_ID = B.REQ_ID AND B.STATUS = 'C'
WHERE (EXISTS(SELECT RL.ROLE_USER FROM @ROLE_LOGIN RL WHERE RL.BRANCH_ID = B.BRANCH_ID
AND (B.BRANCH_ID = 'DV0001' AND B.DEP_ID = RL.DEP_ID OR B.BRANCH_ID <> 'DV0001')
AND RL.ROLE_USER = B.ROLE_USER)
OR EXISTS(SELECT * FROM @ROLE_LOGIN RL
JOIN PL_REQUEST_PROCESS C ON C.REQ_ID = A.REQ_ID AND C.STATUS = 'P' AND RL.BRANCH_ID = C.BRANCH_ID
AND (C.BRANCH_ID = 'DV0001' AND C.DEP_ID = RL.DEP_ID OR C.BRANCH_ID <> 'DV0001')
AND RL.ROLE_USER = C.ROLE_USER)
OR A.MAKER_ID = @p_USERNAME)
GROUP BY A.REQ_ID
IF((EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_SLAS' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
BEGIN
IF(@p_TOP IS NULL OR @p_TOP = '' OR @p_TOP = 0)
BEGIN
-- PAGING BEGIN
SELECT A.REQ_ID,
A.REQ_CODE,
A.REQ_NAME,
--ISNULL(PRP.APPROVE_DT,PRP2.APPROVE_DT) AS REQ_DT,
A.REQ_DT,
A.REQ_TYPE,
A.REQ_CONTENT,
A.TOTAL_AMT,
A.NOTES,
A.RECORD_STATUS,
A.MAKER_ID,
A.CREATE_DT,
A.AUTH_STATUS,
A.CHECKER_ID,
A.APPROVE_DT,
A.BRANCH_ID,
CASE WHEN A.REQ_TYPE = 'CPTS' AND A.IS_DONE = '1' AND A.STATUS = 'DONE' THEN 'APPROVE' ELSE A.STATUS END AS STATUS,
A.DEP_ID,
A.HO_NOTES, K.CONTENT AS REQ_TYPE_NAME,
--I.CONTENT AS REQ_STATUS_NAME,
CASE WHEN A.IS_DONE = '1' AND A.STATUS = 'APPROVE' THEN N'Hoàn tất'
ELSE I.CONTENT
END REQ_STATUS_NAME,
@p_RECEIVE_BRANCH AS RECEIVE_BRANCH,G.BRANCH_CODE,
CASE
WHEN A.DEP_ID IS NOT NULL AND A.DEP_ID <> '' THEN G.BRANCH_NAME + ' - ' + CD.DEP_NAME
ELSE G.BRANCH_NAME
END AS BRANCH_NAME,
--CASE WHEN RQT.STATUS = 'C' OR RQT.STATUS = 'U' THEN N'Chờ duyệt'
--ELSE N'Đã duyệt' END AS AUTH_STATUS_NAME
D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME,
I.CONTENT AS REQ_TYPE_NAME,
CASE WHEN A.STATUS = 'APPROVE'AND A.AUTH_STATUS = 'A' AND DATEDIFF(DAY,GETDATE(),DATEADD(DAY,CONVERT(INT,SP.ParaValue),A.SEND_APP_DT)) < 0 THEN '#f2dede' ELSE ''
END AS COLOR
--D.AUTH_STATUS_NAME
-- SELECT END
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
LEFT JOIN CM_ALLCODE K ON K.CDNAME = 'TRREQASSTYPE' AND K.CDVAL = A.REQ_TYPE
LEFT JOIN CM_ALLCODE I ON I.CDNAME = 'TRREQSTATUS' AND I.CDVAL = A.[STATUS] AND I.CDTYPE = @p_CDTYPE_PYC
-- LEFT JOIN PL_REQUEST_PROCESS prp1 ON prp1.REQ_ID = A.REQ_ID AND prp1.STATUS = 'C'
--LEFT JOIN dbo.CM_AUTH_STATUS AUTH ON AUTH.AUTH_STATUS = A.AUTH_STATUS
--LEFT JOIN dbo.PL_REQUEST_PROCESS RQT ON RQT.REQ_ID = A.REQ_ID
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR (RQT.PROCESS_ID = A.STATUS AND EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP1 ON PRP1.REQ_ID = A.REQ_ID AND PRP1.PROCESS_ID = 'CVMS_N'
--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP2 ON PRP2.REQ_ID = A.REQ_ID AND PRP2.PROCESS_ID = 'DVKD'
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=A.MAKER_ID
LEFT JOIN SYS_PARAMETERS SP ON 1=1 AND SP.ParaKey = 'NUM_OF_DAYS_LATE'
LEFT JOIN CM_DEPARTMENT CD ON A.DEP_ID = CD.DEP_ID
WHERE 1 = 1
AND (G.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '')
-- AND (CONVERT(DATETIME,@p_DVKD_MANAGE_APP_FROM,103) <= CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_FROM IS NULL OR @p_DVKD_MANAGE_APP_FROM = '')
-- AND (DATEADD(day,1,CONVERT(DATETIME,@p_DVKD_MANAGE_APP_TO,103)) > CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_TO IS NULL OR @p_DVKD_MANAGE_APP_TO = '')
AND (@p_DVKD_MANAGE_APP_FROM IS NULL AND @p_DVKD_MANAGE_APP_TO IS NULL OR
@p_DVKD_MANAGE_APP_TO IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) >= (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103))
OR @p_DVKD_MANAGE_APP_FROM IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103))
OR (CONVERT(DATE, A.REQ_DT, 103)) >= (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103)) AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103))
)
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)))
--AND ((@p_AUTH_STATUS = 'U' AND (RQT.STATUS = 'C' OR RQT.STATUS = 'U')) OR (@p_AUTH_STATUS = 'A' AND (RQT.STATUS = 'P' OR RQT.STATUS IS NULL))OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''))
AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%'
--OR A.REQ_ID LIKE '%' + @p_REQ_CODE + '%'
OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
--AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
AND (DATEDIFF(DAY,A.CREATE_DT , CONVERT(DATETIME,@p_CREATE_DT,103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
-- AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
AND (DATEDIFF(DAY,A.APPROVE_DT , CONVERT(DATETIME,@p_APPROVE_DT,103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE = '')
AND (A.STATUS IN ('NEW','REJECT') AND A.MAKER_ID = @p_USERNAME OR A.STATUS NOT IN ('NEW','REJECT')
OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
WHERE US.TLNANME = @p_USERNAME))
AND (@p_STATUS IS NULL OR @p_STATUS = '' OR A.STATUS = @p_STATUS)
AND (EXISTS(SELECT 1 FROM @REQ_ID_Temp RL WHERE RL.REQ_ID = A.REQ_ID)
OR (@ROLE_KT IN ('GDV','KSV') AND A.AUTH_STATUS = 'A' )
OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
WHERE US.TLNANME = @p_USERNAME))
AND A.RECORD_STATUS = '1'
AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.BRANCH_ID = @p_BRANCH_ID)
AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND( TU.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI OR TU.TLNANME COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI
OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
ORDER BY A.REQ_DT DESC
-- PAGING END
END
ELSE
BEGIN
-- PAGING BEGIN
SELECT TOP(CONVERT(INT,@p_TOP)) A.REQ_ID,
A.REQ_CODE,
A.REQ_NAME,
--ISNULL(PRP.APPROVE_DT,PRP2.APPROVE_DT) AS REQ_DT,
A.REQ_DT,
A.REQ_TYPE,
A.REQ_CONTENT,
A.TOTAL_AMT,
A.NOTES,
A.RECORD_STATUS,
A.MAKER_ID,
A.CREATE_DT,
A.AUTH_STATUS,
A.CHECKER_ID,
A.APPROVE_DT,
A.BRANCH_ID,
CASE WHEN A.REQ_TYPE = 'CPTS' AND A.IS_DONE = '1' AND A.STATUS = 'DONE' THEN 'APPROVE' ELSE A.STATUS END AS STATUS,
A.DEP_ID,
A.HO_NOTES, K.CONTENT AS REQ_TYPE_NAME,
--I.CONTENT AS REQ_STATUS_NAME,
CASE WHEN A.IS_DONE = '1' AND A.STATUS = 'APPROVE' THEN N'Hoàn tất'
ELSE I.CONTENT
END REQ_STATUS_NAME,
@p_RECEIVE_BRANCH AS RECEIVE_BRANCH,G.BRANCH_CODE,
CASE
WHEN A.DEP_ID IS NOT NULL AND A.DEP_ID <> '' THEN G.BRANCH_NAME + ' - ' + CD.DEP_NAME
ELSE G.BRANCH_NAME
END AS BRANCH_NAME,
--CASE WHEN RQT.STATUS = 'C' OR RQT.STATUS = 'U' THEN N'Chờ duyệt'
--ELSE N'Đã duyệt' END AS AUTH_STATUS_NAME
D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME,
I.CONTENT AS REQ_TYPE_NAME,
CASE WHEN A.STATUS = 'APPROVE'AND A.AUTH_STATUS = 'A' AND DATEDIFF(DAY,GETDATE(),DATEADD(DAY,CONVERT(INT,SP.ParaValue),A.SEND_APP_DT)) < 0 THEN '#f2dede' ELSE ''
END AS COLOR
--D.AUTH_STATUS_NAME
-- SELECT END
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
LEFT JOIN CM_ALLCODE K ON K.CDNAME = 'TRREQASSTYPE' AND K.CDVAL = A.REQ_TYPE
LEFT JOIN CM_ALLCODE I ON I.CDNAME = 'TRREQSTATUS' AND I.CDVAL = A.[STATUS] AND I.CDTYPE = @p_CDTYPE_PYC
-- LEFT JOIN PL_REQUEST_PROCESS prp1 ON prp1.REQ_ID = A.REQ_ID AND prp1.STATUS = 'C'
--LEFT JOIN dbo.CM_AUTH_STATUS AUTH ON AUTH.AUTH_STATUS = A.AUTH_STATUS
--LEFT JOIN dbo.PL_REQUEST_PROCESS RQT ON RQT.REQ_ID = A.REQ_ID
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR (RQT.PROCESS_ID = A.STATUS AND EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP1 ON PRP1.REQ_ID = A.REQ_ID AND PRP1.PROCESS_ID = 'CVMS_N'
LEFT JOIN dbo.PL_REQUEST_PROCESS PRP2 ON PRP2.REQ_ID = A.REQ_ID AND PRP2.PROCESS_ID = 'DVKD'
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=A.MAKER_ID
LEFT JOIN SYS_PARAMETERS SP ON 1=1 AND SP.ParaKey = 'NUM_OF_DAYS_LATE'
LEFT JOIN CM_DEPARTMENT CD ON A.DEP_ID = CD.DEP_ID
WHERE 1 = 1
AND (G.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '')
-- AND (CONVERT(DATETIME,@p_DVKD_MANAGE_APP_FROM,103) <= CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_FROM IS NULL OR @p_DVKD_MANAGE_APP_FROM = '')
-- AND (DATEADD(day,1,CONVERT(DATETIME,@p_DVKD_MANAGE_APP_TO,103)) > CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_TO IS NULL OR @p_DVKD_MANAGE_APP_TO = '')
AND (@p_DVKD_MANAGE_APP_FROM IS NULL AND @p_DVKD_MANAGE_APP_TO IS NULL OR
@p_DVKD_MANAGE_APP_TO IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) >= (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103))
OR @p_DVKD_MANAGE_APP_FROM IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103))
OR (CONVERT(DATE, A.REQ_DT, 103)) >= (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103)) AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103))
)
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)))
--AND ((@p_AUTH_STATUS = 'U' AND (RQT.STATUS = 'C' OR RQT.STATUS = 'U')) OR (@p_AUTH_STATUS = 'A' AND (RQT.STATUS = 'P' OR RQT.STATUS IS NULL))OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''))
AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%'
--OR A.REQ_ID LIKE '%' + @p_REQ_CODE + '%'
OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
--AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
AND (DATEDIFF(DAY,A.CREATE_DT , CONVERT(DATETIME,@p_CREATE_DT,103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
-- AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
AND (DATEDIFF(DAY,A.APPROVE_DT , CONVERT(DATETIME,@p_APPROVE_DT,103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE = '')
AND (A.STATUS IN ('NEW','REJECT') AND A.MAKER_ID = @p_USERNAME OR A.STATUS NOT IN ('NEW','REJECT')
OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
WHERE US.TLNANME = @p_USERNAME))
AND (@p_STATUS IS NULL OR @p_STATUS = '' OR A.STATUS = @p_STATUS)
AND (EXISTS(SELECT 1 FROM @REQ_ID_Temp RL WHERE RL.REQ_ID = A.REQ_ID)
OR (@ROLE_KT IN ('GDV','KSV') AND A.AUTH_STATUS = 'A' )
OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
WHERE US.TLNANME = @p_USERNAME))
AND A.RECORD_STATUS = '1'
AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.BRANCH_ID = @p_BRANCH_ID)
AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND( TU.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI OR TU.TLNANME COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI
OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
ORDER BY A.REQ_DT DESC
-- PAGING END
END
END
ELSE
BEGIN
IF(@p_TOP IS NULL OR @p_TOP = '' OR @p_TOP = 0)
BEGIN
-- PAGING BEGIN
SELECT A.REQ_ID,
A.REQ_CODE,
A.REQ_NAME,
--ISNULL(PRP.APPROVE_DT,PRP2.APPROVE_DT) AS REQ_DT,
A.REQ_DT,
A.REQ_TYPE,
A.REQ_CONTENT,
A.TOTAL_AMT,
A.NOTES,
A.RECORD_STATUS,
A.MAKER_ID,
A.CREATE_DT,
A.AUTH_STATUS,
A.CHECKER_ID,
A.APPROVE_DT,
A.BRANCH_ID,
CASE WHEN A.REQ_TYPE = 'CPTS' AND A.IS_DONE = '1' AND A.STATUS = 'DONE' THEN 'APPROVE' ELSE A.STATUS END AS STATUS,
A.DEP_ID,
A.HO_NOTES, K.CONTENT AS REQ_TYPE_NAME,
--I.CONTENT AS REQ_STATUS_NAME,
CASE WHEN A.IS_DONE = '1' AND A.STATUS = 'APPROVE' THEN N'Hoàn tất'
ELSE I.CONTENT
END REQ_STATUS_NAME,
@p_RECEIVE_BRANCH AS RECEIVE_BRANCH,G.BRANCH_CODE,
CASE
WHEN A.DEP_ID IS NOT NULL AND A.DEP_ID <> '' THEN G.BRANCH_NAME + ' - ' + CD.DEP_NAME
ELSE G.BRANCH_NAME
END AS BRANCH_NAME,
--CASE WHEN RQT.STATUS = 'C' OR RQT.STATUS = 'U' THEN N'Chờ duyệt'
--ELSE N'Đã duyệt' END AS AUTH_STATUS_NAME
D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME,
CASE WHEN A.STATUS = 'APPROVE'AND A.AUTH_STATUS = 'A'
AND DATEDIFF(DAY,GETDATE(),DATEADD(DAY,CONVERT(INT,SP.ParaValue),A.SEND_APP_DT)) < 0 THEN '#f2dede' ELSE ''
END AS COLOR
--D.AUTH_STATUS_NAME
-- SELECT END
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
LEFT JOIN CM_ALLCODE K ON K.CDNAME = 'TRREQASSTYPE' AND K.CDVAL = A.REQ_TYPE
LEFT JOIN CM_ALLCODE I ON I.CDNAME = 'TRREQSTATUS' AND I.CDVAL = A.[STATUS] AND I.CDTYPE = @p_CDTYPE_PYC
-- LEFT JOIN PL_REQUEST_PROCESS prp1 ON prp1.REQ_ID = A.REQ_ID AND prp1.STATUS = 'C'
--LEFT JOIN dbo.CM_AUTH_STATUS AUTH ON AUTH.AUTH_STATUS = A.AUTH_STATUS
--LEFT JOIN dbo.PL_REQUEST_PROCESS RQT ON RQT.REQ_ID = A.REQ_ID
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR (RQT.PROCESS_ID = A.STATUS AND EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP1 ON PRP1.REQ_ID = A.REQ_ID AND PRP1.PROCESS_ID = 'CVMS_N'
LEFT JOIN dbo.PL_REQUEST_PROCESS PRP2 ON PRP2.REQ_ID = A.REQ_ID AND PRP2.PROCESS_ID = 'DVKD'
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=A.MAKER_ID
LEFT JOIN SYS_PARAMETERS SP ON 1=1 AND SP.ParaKey = 'NUM_OF_DAYS_LATE'
LEFT JOIN CM_DEPARTMENT CD ON A.DEP_ID = CD.DEP_ID
WHERE 1 = 1
AND (G.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '')
-- AND (CONVERT(DATETIME,@p_DVKD_MANAGE_APP_FROM,103) <= CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_FROM IS NULL OR @p_DVKD_MANAGE_APP_FROM = '')
-- AND (DATEADD(day,1,CONVERT(DATETIME,@p_DVKD_MANAGE_APP_TO,103)) > CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_TO IS NULL OR @p_DVKD_MANAGE_APP_TO = '')
AND (@p_DVKD_MANAGE_APP_FROM IS NULL AND @p_DVKD_MANAGE_APP_TO IS NULL OR
@p_DVKD_MANAGE_APP_TO IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) >= (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103))
OR @p_DVKD_MANAGE_APP_FROM IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103))
OR (CONVERT(DATE, A.REQ_DT, 103)) >= (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103)) AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103))
)
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)))
--AND ((@p_AUTH_STATUS = 'U' AND (RQT.STATUS = 'C' OR RQT.STATUS = 'U')) OR (@p_AUTH_STATUS = 'A' AND (RQT.STATUS = 'P' OR RQT.STATUS IS NULL))OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''))
AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%'
--OR A.REQ_ID LIKE '%' + @p_REQ_CODE + '%'
OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
--AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
AND (DATEDIFF(DAY,A.CREATE_DT , CONVERT(DATETIME,@p_CREATE_DT,103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
-- AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
AND (DATEDIFF(DAY,A.APPROVE_DT , CONVERT(DATETIME,@p_APPROVE_DT,103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE = '')
AND (A.STATUS IN ('NEW','REJECT') AND A.MAKER_ID = @p_USERNAME OR A.STATUS NOT IN ('NEW','REJECT')
OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
WHERE US.TLNANME = @p_USERNAME))
AND (@p_STATUS IS NULL OR @p_STATUS = '' OR A.STATUS = @p_STATUS)
AND (EXISTS(SELECT 1 FROM @REQ_ID_Temp RL WHERE RL.REQ_ID = A.REQ_ID)
OR (@ROLE_KT IN ('GDV','KSV') AND A.AUTH_STATUS = 'A' )
OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
WHERE US.TLNANME = @p_USERNAME))
AND A.RECORD_STATUS = '1'
AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.BRANCH_ID = @p_BRANCH_ID)
AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND( TU.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI OR TU.TLNANME COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI
OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
ORDER BY A.REQ_DT DESC
-- PAGING END
END
ELSE
BEGIN
-- PAGING BEGIN
SELECT TOP(CONVERT(INT,@p_TOP)) A.REQ_ID,
A.REQ_CODE,
A.REQ_NAME,
--ISNULL(PRP.APPROVE_DT,PRP2.APPROVE_DT) AS REQ_DT,
A.REQ_DT,
A.REQ_TYPE,
A.REQ_CONTENT,
A.TOTAL_AMT,
A.NOTES,
A.RECORD_STATUS,
A.MAKER_ID,
A.CREATE_DT,
A.AUTH_STATUS,
A.CHECKER_ID,
A.APPROVE_DT,
A.BRANCH_ID,
CASE WHEN A.REQ_TYPE = 'CPTS' AND A.IS_DONE = '1' AND A.STATUS = 'DONE' THEN 'APPROVE' ELSE A.STATUS END AS STATUS,
A.DEP_ID,
A.HO_NOTES, K.CONTENT AS REQ_TYPE_NAME,
--I.CONTENT AS REQ_STATUS_NAME,
CASE WHEN A.IS_DONE = '1' AND A.STATUS = 'APPROVE' THEN N'Hoàn tất'
ELSE I.CONTENT
END REQ_STATUS_NAME,
@p_RECEIVE_BRANCH AS RECEIVE_BRANCH,G.BRANCH_CODE,
CASE
WHEN A.DEP_ID IS NOT NULL AND A.DEP_ID <> '' THEN G.BRANCH_NAME + ' - ' + CD.DEP_NAME
ELSE G.BRANCH_NAME
END AS BRANCH_NAME,
--CASE WHEN RQT.STATUS = 'C' OR RQT.STATUS = 'U' THEN N'Chờ duyệt'
--ELSE N'Đã duyệt' END AS AUTH_STATUS_NAME
D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME,
CASE WHEN A.STATUS = 'APPROVE'AND A.AUTH_STATUS = 'A'
AND DATEDIFF(DAY,GETDATE(),DATEADD(DAY,CONVERT(INT,SP.ParaValue),A.SEND_APP_DT)) < 0 THEN '#f2dede' ELSE ''
END AS COLOR
--D.AUTH_STATUS_NAME
-- SELECT END
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
LEFT JOIN CM_ALLCODE K ON K.CDNAME = 'TRREQASSTYPE' AND K.CDVAL = A.REQ_TYPE
LEFT JOIN CM_ALLCODE I ON I.CDNAME = 'TRREQSTATUS' AND I.CDVAL = A.[STATUS] AND I.CDTYPE = @p_CDTYPE_PYC
-- LEFT JOIN PL_REQUEST_PROCESS prp1 ON prp1.REQ_ID = A.REQ_ID AND prp1.STATUS = 'C'
--LEFT JOIN dbo.CM_AUTH_STATUS AUTH ON AUTH.AUTH_STATUS = A.AUTH_STATUS
--LEFT JOIN dbo.PL_REQUEST_PROCESS RQT ON RQT.REQ_ID = A.REQ_ID
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR (RQT.PROCESS_ID = A.STATUS AND EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP1 ON PRP1.REQ_ID = A.REQ_ID AND PRP1.PROCESS_ID = 'CVMS_N'
LEFT JOIN dbo.PL_REQUEST_PROCESS PRP2 ON PRP2.REQ_ID = A.REQ_ID AND PRP2.PROCESS_ID = 'DVKD'
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=A.MAKER_ID
LEFT JOIN SYS_PARAMETERS SP ON 1=1 AND SP.ParaKey = 'NUM_OF_DAYS_LATE'
LEFT JOIN CM_DEPARTMENT CD ON A.DEP_ID = CD.DEP_ID
WHERE 1 = 1
AND (G.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '')
--AND (CONVERT(DATETIME,@p_DVKD_MANAGE_APP_FROM,103) <= CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_FROM IS NULL OR @p_DVKD_MANAGE_APP_FROM = '')
--AND (DATEADD(day,1,CONVERT(DATETIME,@p_DVKD_MANAGE_APP_TO,103)) > CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_TO IS NULL OR @p_DVKD_MANAGE_APP_TO = '')
AND (@p_DVKD_MANAGE_APP_FROM IS NULL AND @p_DVKD_MANAGE_APP_TO IS NULL OR
@p_DVKD_MANAGE_APP_TO IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) >= (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103))
OR @p_DVKD_MANAGE_APP_FROM IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103))
OR (CONVERT(DATE, A.REQ_DT, 103)) >= (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103)) AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103))
)
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)))
--AND ((@p_AUTH_STATUS = 'U' AND (RQT.STATUS = 'C' OR RQT.STATUS = 'U')) OR (@p_AUTH_STATUS = 'A' AND (RQT.STATUS = 'P' OR RQT.STATUS IS NULL))OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''))
AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%'
--OR A.REQ_ID LIKE '%' + @p_REQ_CODE + '%'
OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
--AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
AND (DATEDIFF(DAY,A.CREATE_DT , CONVERT(DATETIME,@p_CREATE_DT,103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
-- AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
AND (DATEDIFF(DAY,A.APPROVE_DT , CONVERT(DATETIME,@p_APPROVE_DT,103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE = '')
AND (A.STATUS IN ('NEW','REJECT') AND A.MAKER_ID = @p_USERNAME OR A.STATUS NOT IN ('NEW','REJECT')
OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
WHERE US.TLNANME = @p_USERNAME))
AND (@p_STATUS IS NULL OR @p_STATUS = '' OR A.STATUS = @p_STATUS)
AND (EXISTS(SELECT 1 FROM @REQ_ID_Temp RL WHERE RL.REQ_ID = A.REQ_ID)
OR (@ROLE_KT IN ('GDV','KSV') AND A.AUTH_STATUS = 'A' )
OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
WHERE US.TLNANME = @p_USERNAME))
AND A.RECORD_STATUS = '1'
AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.BRANCH_ID = @p_BRANCH_ID)
AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND( TU.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI OR TU.TLNANME COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI
OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
ORDER BY A.REQ_DT DESC
-- PAGING END
END
END
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_COLLECT_MULTI_MASTER_KT_App]'
GO
ALTER PROCEDURE [dbo].[ASS_COLLECT_MULTI_MASTER_KT_App]
@p_COL_MULTI_MASTER_ID varchar(15),
@p_AUTH_STATUS varchar(1) = NULL,
@p_CHECKER_ID varchar(100) = NULL,
@p_APPROVE_DT VARCHAR(20) = NULL
AS
BEGIN TRANSACTION
IF(EXISTS(SELECT 1 FROM ASS_COLLECT_MULTI_MASTER WHERE COL_MULTI_MASTER_ID = @p_COL_MULTI_MASTER_ID AND AUTH_STATUS_KT = 'A'))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_COL_MULTI_MASTER_ID COL_MULTI_MASTER_ID, N'Thông tin phiếu thu hồi tài sản đã được duyệt.' ErrorDesc
RETURN '-1'
END
--KIEM TRA NEU TINH TRANG DANG LA 'R' THI KHONG CHO PHEP DUYET
IF(EXISTS(SELECT * FROM ASS_COLLECT_MULTI_MASTER WHERE AUTH_STATUS_KT ='R' AND COL_MULTI_MASTER_ID =@p_COL_MULTI_MASTER_ID))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' COL_MULTI_MASTER_ID, N'Thông tin thu hồi tài sản đang bị trả về. Vui lòng cập nhật lại thông tin trước khi duyệt' ErrorDesc
RETURN '-1'
END
IF(EXISTS(SELECT 1 FROM ASS_COLLECT_MULTI_MASTER WHERE COL_MULTI_MASTER_ID = @p_COL_MULTI_MASTER_ID AND AUTH_STATUS_KT = 'E'))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_COL_MULTI_MASTER_ID COL_MULTI_MASTER_ID, N'Duyệt thất bại. Nhân viên kế toán chưa nhập diễn giải hạch toán' ErrorDesc
RETURN '-1'
END
DECLARE @COLLECT_MULTI_ID varchar(15)
DECLARE @ASSET_ID varchar(15)
DECLARE DataCusor SCROLL CURSOR
FOR
SELECT A.COLLECT_MULTI_ID,A.ASSET_ID
FROM [dbo].[ASS_COLLECT_MULTI_DT] A
WHERE [COL_MULTI_MASTER_ID] = @p_COL_MULTI_MASTER_ID
OPEN DataCusor
UPDATE ASS_COLLECT_MULTI_MASTER SET AUTH_STATUS_KT = 'A', CHECKER_ID_KT = @p_CHECKER_ID, APPROVE_DT_KT = CONVERT(DATETIME,@p_APPROVE_DT,103)
WHERE COL_MULTI_MASTER_ID = @p_COL_MULTI_MASTER_ID
--THIEUVQ 15062015
DECLARE @p_BRANCH_ID_RECEIVE VARCHAR(15) = NULL, @p_DEPT_ID_RECEIVE VARCHAR(15) = NULL, @l_ASSET_ID VARCHAR(15)
DECLARE @l_LOCHIST_ID VARCHAR(15), @l_ASSHIST_ID varchar(15) ,@l_OLD_LOCHIST_ID VARCHAR(15)
DECLARE @BRANCH_ID_OLD VARCHAR(15),@DEP_ID_OLD VARCHAR(15), @l_BRANCH_ID VARCHAR(15), @BRN_TYPE_TRN VARCHAR(15), @BRN_TYPE_REC VARCHAR(15), @l_ASSET_TYPE VARCHAR(15)
DECLARE @NOTE NVARCHAR(500), @CRET DATETIME, @ERROR NVARCHAR(500) = '', @TCCT_TRN_ACCTNO VARCHAR(50), @TCCT_REC_ACCTNO VARCHAR(50)
--KHIEMCHG HACH TOAN
DECLARE @sToday varchar(10) = convert(varchar(10), @p_APPROVE_DT, 103), @l_ENTRY_BOOKED VARCHAR(1),@l_ASSET_CODE VARCHAR(50)
DECLARE @l_CUR_BRANCH_ID VARCHAR(15), @l_AMORT_ACCTNO VARCHAR(50), @l_ASSET_GL VARCHAR(50),@l_COLLECT_ACCNO VARCHAR(50),
@l_ASSET_GROUP VARCHAR(15), @l_ET_ID VARCHAR(15), @l_TRN_REF_NO VARCHAR(15), @l_CORE_NOTE NVARCHAR(500),@l_BRANCH_CREATE VARCHAR(15), @l_HO_BRANCH_ID VARCHAR(15),
@l_BUY_PRICE DECIMAL(18),@l_CUR_AMORT_AMT DECIMAL(18),@l_AMORTIZED_AMT DECIMAL(18) = 0,@l_AMORT_AMT DECIMAL(18,0), @l_REMAIN_VALUE DECIMAL(18,0)
DECLARE @l_ETP_ID VARCHAR(20),@l_D_BRANCH_CODE VARCHAR(25) , @l_C_BRANCH_CODE VARCHAR(25),@l_MAKER_ID VARCHAR(250) , @l_DO_BRANCH_ID VARCHAR(25)
DECLARE @l_TRN_NO VARCHAR(15),@l_MAKER_KT VARCHAR(100)
SET @l_MAKER_KT = (SELECT aa.MAKER_ID_KT FROM ASS_COLLECT_MULTI_MASTER aa WHERE aa.COL_MULTI_MASTER_ID = @p_COL_MULTI_MASTER_ID)
DECLARE @emp_ID_OLD VARCHAR(15)
EXEC ENTRIES_POST_GEN_NO @p_BRANCH_ID = @l_MAKER_KT
,@p_TRN_DATE = @p_APPROVE_DT
,@p_KeyGen = @l_TRN_NO OUT
--PHUCVH 07/12/22 NẾU THU HỒI TÀI SẢN LOẠI CCLD THÌ NHƯNG KHẤU HAO
DECLARE @l_AMORT_STATUS NVARCHAR(20)
DECLARE @l_IS_COLLECT BIT
SELECT @l_CORE_NOTE = CORE_NOTE, @l_MAKER_ID = MAKER_ID_KT, @CRET = CREATE_DT
FROM ASS_COLLECT_MULTI_MASTER
WHERE COL_MULTI_MASTER_ID = @p_COL_MULTI_MASTER_ID
SELECT @l_DO_BRANCH_ID = a.TLSUBBRID from TL_USER a where a.TLNANME = @p_CHECKER_ID
FETCH NEXT FROM DataCusor INTO @COLLECT_MULTI_ID,@ASSET_ID
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @p_BRANCH_ID_RECEIVE = BRANCH_ID_RECEIVE , @p_DEPT_ID_RECEIVE = DEPT_ID_RECEIVE,@DEP_ID_OLD=DEPT_ID_USE , @l_ASSET_ID = ASSET_ID,
@l_BRANCH_ID = BRANCH_ID_RECEIVE,@BRANCH_ID_OLD=BRANCH_ID
FROM ASS_COLLECT_MULTI_DT
WHERE COLLECT_MULTI_ID = @COLLECT_MULTI_ID
SELECT @l_ASSET_TYPE = A.TYPE_ID, @l_CUR_BRANCH_ID = A.BRANCH_ID
, @l_ASSET_GROUP = ISNULL(A.REF_GROUP_ID,A.GROUP_ID), @l_AMORT_AMT = AMORT_AMT, @l_CUR_AMORT_AMT = (A.AMORT_AMT - ISNULL(A.AMORTIZED_AMT,0)),
@l_BUY_PRICE = BUY_PRICE,@l_CUR_AMORT_AMT = (AMORT_AMT - ISNULL(AMORTIZED_AMT,0)), @l_BRANCH_CREATE = A.BRANCH_CREATE
,@l_AMORTIZED_AMT = AMORTIZED_AMT, @l_AMORT_STATUS = A.AMORT_STATUS, @l_ENTRY_BOOKED = A.ENTRY_BOOKED,
@l_ASSET_CODE = A.ASSET_CODE, @l_REMAIN_VALUE = A.AMORT_AMT - ISNULL(A.AMORTIZED_AMT,0), @l_IS_COLLECT = A.IS_COLLECT
,@emp_ID_OLD = a.EMP_ID
FROM ASS_MASTER A WHERE A.ASSET_ID = @l_ASSET_ID
/********** LAY THONG TIN HACH TOAN ***********/
--DECLARE @ASSET_CCLD VARCHAR(20) = (SELECT EPA.ACC_NO FROM ENTRIES_POST_ACCNO EPA WHERE EPA.ACC_TYPE = 'ASSET_CCLD')
DECLARE @TF_ASSET_CCLD VARCHAR(20) = (SELECT EPA.ACC_NO FROM ENTRIES_POST_ACCNO EPA WHERE EPA.ACC_TYPE = 'ASSET_CCLD_N')
DECLARE @AMORT_CCLD VARCHAR(20) = (SELECT EPA.ACC_NO FROM ENTRIES_POST_ACCNO EPA WHERE EPA.ACC_TYPE = 'AMORT_CCLD')
DECLARE @BE_AMORT_CCLD VARCHAR(20) = (SELECT EPA.ACC_NO FROM ENTRIES_POST_ACCNO EPA WHERE EPA.ACC_TYPE = 'BE_AMORT_CCLD')
DECLARE @BW_AMORT_CCLD VARCHAR(20) = (SELECT EPA.ACC_NO FROM ENTRIES_POST_ACCNO EPA WHERE EPA.ACC_TYPE = 'BW_AMORT_CCLD')
DECLARE @PAY_HS_ACNO VARCHAR(20) = (SELECT EPA.ACC_NO FROM ENTRIES_POST_ACCNO EPA WHERE EPA.ACC_TYPE = 'PAY_HS')
DECLARE @l_TRANSFER_ACCNO VARCHAR(20) =(SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='TRANSFER')
DECLARE @BRANCH_CODE_OLD VARCHAR (15) = (SELECT CB.BRANCH_CODE FROM CM_BRANCH CB WHERE CB.BRANCH_ID = @BRANCH_ID_OLD)
DECLARE @BRANCH_CODE VARCHAR (15) = (SELECT CB.BRANCH_CODE FROM CM_BRANCH CB WHERE CB.BRANCH_ID = @l_BRANCH_ID)
DECLARE @DEP_CODE_OLD VARCHAR(25) =(SELECT cd.DEP_CODE FROM CM_DEPARTMENT cd WHERE cd.DEP_ID=@DEP_ID_OLD)
DECLARE @DEP_CODE VARCHAR(25) = (SELECT cd.DEP_CODE FROM CM_DEPARTMENT cd WHERE cd.DEP_ID=@p_DEPT_ID_RECEIVE)
SET @l_HO_BRANCH_ID = (SELECT CB.BRANCH_ID FROM CM_BRANCH CB WHERE CB.BRANCH_TYPE = 'HS')
DECLARE @HO_CODE VARCHAR(20) = (SELECT CB.BRANCH_CODE FROM CM_BRANCH CB WHERE CB.BRANCH_ID = @l_HO_BRANCH_ID)
SET @l_COLLECT_ACCNO = (SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='ACC_COL_1')
SELECT @l_AMORT_ACCTNO = AMORT_ACCTNO, @l_ASSET_GL = ASSET_ACCTNO
FROM ASS_GROUP
WHERE GROUP_ID = @l_ASSET_GROUP
IF @l_AMORT_ACCTNO = '' OR @l_AMORT_ACCTNO IS NULL
BEGIN
SET @ERROR = (SELECT ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'ASS-00002')
GOTO ABORT
END
UPDATE ASS_COLLECT_MULTI_DT SET AUTH_STATUS = 'A', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103)
WHERE COLLECT_MULTI_ID = @COLLECT_MULTI_ID
IF @@Error <> 0
BEGIN
GOTO ABORT
SELECT '-1' as Result, ERROR_MESSAGE() ErrorDesc
END
---HACH TOAN THU HOI TAI SAN
--BEGIN
--Insert vao bang dbo.ASS_ENTRIES_POST
IF @BRANCH_ID_OLD <> @l_BRANCH_ID --AND @l_ENTRY_BOOKED = 'Y' -- HACH TOAN KHAC DON VI, và TĂNG TÀI SẢN
BEGIN
SELECT @BRN_TYPE_TRN = BRANCH_TYPE,@TCCT_TRN_ACCTNO = DAO_CODE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_ID_OLD
SELECT @BRN_TYPE_REC = BRANCH_TYPE, @TCCT_REC_ACCTNO = DAO_CODE FROM CM_BRANCH WHERE BRANCH_ID = @l_BRANCH_ID
SET @l_C_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_BRANCH_CREATE)
SET @l_D_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_BRANCH_ID)
IF @l_ASSET_TYPE = 'TSCD'
BEGIN
IF (@l_CUR_AMORT_AMT = @l_AMORT_AMT) -- Tài sản mới (chưa khấu hao)
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_ASSET_TYPE, @l_ASSET_ID, 'ASS_COLLECT', @COLLECT_MULTI_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_ASSET_GL, @l_BRANCH_ID, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_COL_MULTI_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
-- BÊN GIAO
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_COL_MULTI_MASTER_ID,@BRANCH_CODE_OLD ,@l_TRANSFER_ACCNO,'VND', 'D', @l_BUY_PRICE, 1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE_OLD, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_COL_MULTI_MASTER_ID ,@BRANCH_CODE_OLD , @l_ASSET_GL, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE_OLD, @l_CORE_NOTE,@l_TRN_NO);
-- BÊN NHẬN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_ASSET_TYPE, @l_ASSET_ID, 'ASS_COLLECT', @COLLECT_MULTI_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_ASSET_GL, @l_BRANCH_ID, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_COL_MULTI_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_COL_MULTI_MASTER_ID ,@BRANCH_CODE , @l_ASSET_GL, 'VND', 'D', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_COL_MULTI_MASTER_ID,@BRANCH_CODE ,@l_TRANSFER_ACCNO,'VND', 'C', @l_BUY_PRICE, 1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
END
ELSE IF (@l_CUR_AMORT_AMT >= 0) -- Tài sản đã qua sử dụng (đang khấu hao)
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_ASSET_TYPE, @l_ASSET_ID, 'ASS_COLLECT', @COLLECT_MULTI_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_ASSET_GL, @l_BRANCH_ID, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_COL_MULTI_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
-- BÊN GIAO
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_COL_MULTI_MASTER_ID ,@BRANCH_CODE_OLD , @l_AMORT_ACCTNO, 'VND', 'D', @l_AMORTIZED_AMT,1, @l_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE_OLD, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_COL_MULTI_MASTER_ID ,@BRANCH_CODE_OLD , @l_ASSET_GL, 'VND', 'C', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE_OLD, @l_CORE_NOTE,@l_TRN_NO);
-- BÊN NHẬN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_ASSET_TYPE, @l_ASSET_ID, 'ASS_COLLECT', @COLLECT_MULTI_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_ASSET_GL, @l_BRANCH_ID, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_COL_MULTI_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_COL_MULTI_MASTER_ID ,@BRANCH_CODE , @l_ASSET_GL, 'VND', 'D', @l_BUY_PRICE,1, @l_BUY_PRICE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_COL_MULTI_MASTER_ID ,@BRANCH_CODE , @l_AMORT_ACCTNO, 'VND', 'C', @l_AMORTIZED_AMT,1, @l_AMORTIZED_AMT, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
-----------
IF(@l_REMAIN_VALUE > 0)
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_ASSET_TYPE, @l_ASSET_ID, 'ASS_COLLECT', @COLLECT_MULTI_ID, @l_DO_BRANCH_ID, @l_ASSET_GL, @l_BRANCH_CREATE, @l_ASSET_GL, @l_BRANCH_ID, @l_BUY_PRICE, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_COL_MULTI_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_COL_MULTI_MASTER_ID,@BRANCH_CODE_OLD ,@l_TRANSFER_ACCNO,'VND', 'D', @l_REMAIN_VALUE, 1, @l_REMAIN_VALUE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE_OLD, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_COL_MULTI_MASTER_ID,@BRANCH_CODE ,@l_TRANSFER_ACCNO,'VND', 'C', @l_REMAIN_VALUE, 1, @l_REMAIN_VALUE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
END
END
END
ELSE -- CCLD
BEGIN
-- TRƯỜNG HỢP ĐÃ PHÂN BỔ HẾT VÀO CHI PHÍ MUA SẮM CCLĐ
IF(@l_CUR_AMORT_AMT = 0)
BEGIN
PRINT 'KHONG PHAT SINH'
END
ELSE IF (@l_CUR_AMORT_AMT > 0) -- TRƯỜNG HỢP CHƯA PHÂN BỔ HẾT VÀO CHI PHÍ MUA SẮM CCLĐ
BEGIN
-- ------------------------------------
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_ASSET_TYPE, @l_ASSET_ID, 'ASS_COLLECT', @COLLECT_MULTI_ID, @l_DO_BRANCH_ID, @l_AMORT_ACCTNO, @l_BRANCH_CREATE, @l_AMORT_ACCTNO, @l_BRANCH_ID, @l_CUR_AMORT_AMT, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_COL_MULTI_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_COL_MULTI_MASTER_ID,@BRANCH_CODE_OLD , @TF_ASSET_CCLD,'VND', 'D', @l_REMAIN_VALUE, 1, @l_REMAIN_VALUE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE_OLD, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_COL_MULTI_MASTER_ID ,@BRANCH_CODE_OLD , @AMORT_CCLD, 'VND', 'C', @l_REMAIN_VALUE,1, @l_REMAIN_VALUE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE_OLD, @l_CORE_NOTE,@l_TRN_NO);
-- ------------------------------------
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_ASSET_TYPE, @l_ASSET_ID, 'ASS_COLLECT', @COLLECT_MULTI_ID, @l_DO_BRANCH_ID, @l_AMORT_ACCTNO, @l_BRANCH_CREATE, @l_AMORT_ACCTNO, @l_BRANCH_ID, @l_CUR_AMORT_AMT, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_COL_MULTI_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_COL_MULTI_MASTER_ID ,@BRANCH_CODE ,@BW_AMORT_CCLD , 'VND', 'D', @l_REMAIN_VALUE,1, @l_REMAIN_VALUE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID out
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_COL_MULTI_MASTER_ID,@BRANCH_CODE , @TF_ASSET_CCLD,'VND', 'C', @l_REMAIN_VALUE, 1, @l_REMAIN_VALUE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
END
END
END
ELSE
BEGIN
IF (@l_ASSET_TYPE = 'CCLD')
BEGIN
IF (@l_CUR_AMORT_AMT > 0) -- TRƯỜNG HỢP CHƯA PHÂN BỔ HẾT VÀO CHI PHÍ MUA SẮM CCLĐ
BEGIN
-- Hạch toán tại đơn vị điều CCLĐ đi
-- Tất toán tài khoản CCLĐ
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_ASSET_TYPE, @l_ASSET_ID, 'ASS_COLLECT', @COLLECT_MULTI_ID, @l_DO_BRANCH_ID, @l_AMORT_ACCTNO, @l_BRANCH_CREATE, @l_AMORT_ACCTNO, @l_BRANCH_ID, @l_CUR_AMORT_AMT, 'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_COL_MULTI_MASTER_ID,--N'NHAP MOI TSCD/CCLD'
@l_ET_ID OUT
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID, @p_COL_MULTI_MASTER_ID,@BRANCH_CODE , @BW_AMORT_CCLD,'VND', 'D', @l_REMAIN_VALUE, 1, @l_REMAIN_VALUE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST_SYNC', @l_ETP_ID OUT
INSERT INTO ASS_ENTRIES_POST_SYNC (ETP_ID, ET_ID, TRN_ID, AC_BRANCH, AC_NO, AC_CCY, DRCR_IND, FCY_AMOUNT, EXCH_RATE, LCY_AMOUNT, RELATED_REFERENCE, TRN_DT, USER_ID, AUTH_ID, DEPT_CD, DESC_TRANS,TRN_NO)
VALUES (@l_ETP_ID, @l_ET_ID,@p_COL_MULTI_MASTER_ID ,@BRANCH_CODE_OLD ,@AMORT_CCLD , 'VND', 'C', @l_REMAIN_VALUE,1, @l_REMAIN_VALUE, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @DEP_CODE_OLD, @l_CORE_NOTE,@l_TRN_NO);
END
END
END
--END HACH TOAN
--Move to history
--Phat sinh Asset_ID
EXEC SYS_CodeMasters_Gen 'ASS_MASTER_HIST', @l_ASSHIST_ID out
IF @l_ASSHIST_ID='' OR @l_ASSHIST_ID IS NULL GOTO ABORT
INSERT INTO ASS_MASTER_HIST
SELECT @l_ASSHIST_ID, a.*
FROM ASS_MASTER a
where a.ASSET_ID = @l_ASSET_ID
IF @@Error <> 0 GOTO ABORT
--PHUCVH 07/12/22 NẾU THU HỒI TS LÀ CCLD THÌ NGƯNG KHẤU HAO
IF @l_ASSET_TYPE = 'CCLD'
BEGIN
IF((@l_AMORT_STATUS <> 'CKH') AND (@l_AMORT_STATUS <> 'KHX') AND (@l_AMORT_STATUS <> 'KKH'))
SET @l_AMORT_STATUS = 'NKH'
END
--update ass_master
UPDATE ASS_MASTER SET BRANCH_ID = @p_BRANCH_ID_RECEIVE, DEPT_ID = @p_DEPT_ID_RECEIVE, EMP_ID = NULL , AMORT_STATUS = @l_AMORT_STATUS,
IS_COLLECT = '1' --TRẠNG THÁI THU HỒI TÀI SẢN
WHERE ASSET_ID = @l_ASSET_ID
--Lay LOCHIST_ID
SELECT @l_OLD_LOCHIST_ID = LOCHIST_ID FROM ASS_LOCATION_HIST WHERE ASSET_ID = @l_ASSET_ID AND ISLEAF='Y'
--Uptdae isleaf='N' and END_DATE = ngay hien tai cho record hien tai
UPDATE ASS_LOCATION_HIST
SET USE_END_DT = CONVERT(DATETIME,@p_APPROVE_DT,103),
ISLEAF='N'
WHERE ASSET_ID = @l_ASSET_ID AND ISLEAF='Y'
IF @@Error <> 0 GOTO ABORT
--Insert bang ASS_LOCATION_HIST
EXEC SYS_CodeMasters_Gen 'ASS_LOCATION_HIST', @l_LOCHIST_ID out
IF @l_LOCHIST_ID='' OR @l_LOCHIST_ID IS NULL GOTO ABORT
INSERT INTO ASS_LOCATION_HIST
(
LOCHIST_ID, ASSET_ID, USE_START_DT, USE_END_DT, BRANCH_ID, DEPT_ID,
EMP_ID, LOCATION, ISLEAF, PARENT_ID
)
VALUES
(
@l_LOCHIST_ID, @l_ASSET_ID, GETDATE(), NULL, @p_BRANCH_ID_RECEIVE, @p_DEPT_ID_RECEIVE,
NULL, '', 'Y', @l_OLD_LOCHIST_ID
)
IF @@Error <> 0 GOTO ABORT
--INSERT VAO BANG ASS_TRANSACTIONS
INSERT INTO ASS_TRANSACTIONS(ASSET_ID, TRN_ID, TRN_TYPE, TRN_DATE, RECORD_STATUS, AUTH_STATUS,
[MAKER_ID], [CREATE_DT], [CHECKER_ID], [APPROVE_DT],ASSHIST_ID,LOCHIST_ID
)VALUES
(
@l_ASSET_ID, @COLLECT_MULTI_ID, 'ASS_COLLECT', CONVERT(DATETIME, @sToday, 103), '1', 'A',
@l_MAKER_ID, CONVERT(DATETIME, @sToday, 103), @p_CHECKER_ID, CONVERT(DATETIME, @p_APPROVE_DT, 103) ,@l_ASSHIST_ID,@l_LOCHIST_ID
)
IF @@Error <> 0 GOTO ABORT
FETCH NEXT FROM DataCusor INTO @COLLECT_MULTI_ID,@ASSET_ID
END
CLOSE DataCusor
DEALLOCATE DataCusor
-- HUYHT 06/05/2022 THAY ĐỔI TRẠNG THÁI UPDATE CŨ THÀNH UPDATE_KT
UPDATE dbo.PL_PROCESS SET PROCESS_ID = 'UPDATE_KT' WHERE REQ_ID = @p_COL_MULTI_MASTER_ID AND PROCESS_ID = 'UPDATE'
-- GIANT Insert to table PL_PROCESS
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @p_COL_MULTI_MASTER_ID,
'APPROVE',
@p_CHECKER_ID,
GETDATE(),
N'Kiểm soát viên phê duyệt hoàn tất' ,
N'Kiểm soát viên phê duyệt'
)
--CHECK PHIẾU SỬA CHỮA CÓ PYC HAY KHÔNG
DECLARE @REQ_ID VARCHAR(20) = (SELECT TOP 1 A.REQ_ID FROM ASS_COLLECT_MULTI_MASTER A WHERE A.COL_MULTI_MASTER_ID = @p_COL_MULTI_MASTER_ID)
IF(@REQ_ID IS NOT NULL AND @REQ_ID <> '')
BEGIN --UPDATE TS TRONG PYC ĐÃ SỬA CHỮA
UPDATE TR_REQUEST_DOC_ASSET_DT SET ALLOCATED = '1' WHERE REQ_DOC_ID = @REQ_ID AND ASSET_ID IN
(SELECT A.ASSET_ID FROM ASS_COLLECT_MULTI_DT A WHERE A.COL_MULTI_MASTER_ID = @p_COL_MULTI_MASTER_ID)
IF(EXISTS(SELECT A.REQDT_ID FROM TR_REQUEST_SHOP_DOC_DT A WHERE A.REQ_DOC_ID = @REQ_ID AND A.ALLOCATED <> '1'))
BEGIN --DONE PYC
UPDATE TR_REQUEST_SHOP_DOC SET IS_DONE = '1', STATUS = 'DONE' WHERE REQ_ID = @REQ_ID AND REQ_TYPE = 'TH'
UPDATE PL_REQUEST_PROCESS SET STATUS = 'P' WHERE PROCESS_ID = 'APPROVE' AND REQ_ID = @REQ_ID
INSERT INTO PL_REQUEST_PROCESS (REQ_ID, PROCESS_ID, STATUS, IS_LEAF)
VALUES (@REQ_ID,'DONE','C','Y')
END
END
--PHUCVH 14/11/22 UPDATE TÀI SẢN XONG GIAO DỊCH
UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL
WHERE ASSET_ID IN (SELECT B.ASSET_ID FROM ASS_COLLECT_MULTI_DT B WHERE B.COL_MULTI_MASTER_ID = @p_COL_MULTI_MASTER_ID)
COMMIT TRANSACTION
SELECT '0' as Result, @p_COL_MULTI_MASTER_ID COL_MULTI_MASTER_ID, '' ErrorDesc
RETURN '0'
ABORT:
BEGIN
CLOSE DataCusor
DEALLOCATE DataCusor
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' COL_MULTI_MASTER_ID, @ERROR ErrorDesc
RETURN '-1'
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_LIQUIDATION_BVB_Search]'
GO
ALTER PROCEDURE [dbo].[ASS_LIQUIDATION_BVB_Search]
@p_LIQ_ID varchar(15) = NULL,
@p_BUY_COMPANY_ID Nvarchar(500) = NULL,
@p_BUY_PRICE decimal = NULL,
@p_NOTES Nvarchar(4000) = NULL,
@p_RECORD_STATUS varchar(1) = NULL,
@p_AUTH_STATUS varchar(1) = NULL,
@p_AUTH_STATUS_KT varchar(1)= NULL,
@p_APPROVE_DT_KT varchar(1)= NULL,
@p_MAKER_ID varchar(100) = NULL,
@p_CREATE_DT VARCHAR(20) = NULL,
@p_CHECKER_ID varchar(100) = NULL,
@p_APPROVE_DT VARCHAR(20) = NULL,
@p_TOP INT = 10,
@p_BRANCH_ID VARCHAR(15) = NULL,
@p_LEVEL VARCHAR(50) = 'UNIT',
@p_FR_BUY_DATE VARCHAR(10) = NULL, --Tu ngay nhap
@p_TO_BUY_DATE VARCHAR(10) = NULL, --Den ngay nhap
@p_FR_LIQ_AMT DECIMAL(18) = NULL, --Tu ngay nhap
@p_TO_LIQ_AMT DECIMAL(18) = NULL,--Den ngay nhap,
@p_IS_UPDATE VARCHAR(1) = NULL, -- DA DUOC KT CAP NHAT THONG TIN HAY CHUA
@p_USER_LOGIN VARCHAR(15),-- 26022020 LUCTV TRUYEN XUONG USER LOGIN DE DO TIM MA PHONG BAN
@p_TYPE_SEARCH VARCHAR(10)= NULL -- 26022020 LUCTV TRUYEN XUONG DAU HIEU DE PHAN BIET TIM KIEM O MAN HINH KE TOAN HAY MAN HINH HCQT
AS
BEGIN -- PAGING
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
----
SET @p_RECORD_STATUS = '1'
------
declare @tmp table(BRANCH_ID varchar(15))
insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
IF(@p_TOP IS NULL OR @p_TOP = '' OR @p_TOP = 0)
BEGIN
-- PAGING BEGIN
SELECT A.*,A.BUY_COMPANY_ID AS BUY_COMPANY_NAME,B.CONTENT AS AUTH_STATUS_NAME, B1.CONTENT AS AUTH_STATUS_NAME_KT,
T1.TLFullName MAKER_NAME, T2.TLFullName MAKER_NAME_KT,
T3.TLFullName APPROVE_NAME, T4.TLFullName APPROVE_NAME_KT, BR.BRANCH_CODE, BR.BRANCH_NAME, BR.BRANCH_CODE +' - '+ BR.BRANCH_NAME AS FULL_BRANCH_NAME,
@p_USER_LOGIN AS USER_LOGIN,@p_TYPE_SEARCH AS TYPE_SEARCH --- TRA VE THAM SO GAN VO CURRENT SEARCH TRANH GAY LOI O CAC MAN HINH
-- SELECT END
FROM ASS_LIQUIDATION A
--LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS = B.AUTH_STATUS
--LEFT JOIN CM_AUTH_STATUS B1 ON A.AUTH_STATUS_KT = B1.AUTH_STATUS
LEFT JOIN dbo.CM_ALLCODE B ON B.CDVAL = A.AUTH_STATUS AND B.CDNAME = 'ASS_ADD_AUTH' AND B.CDTYPE = 'ASS_ADDNEW'
LEFT JOIN dbo.CM_ALLCODE B1 ON B1.CDVAL = A.AUTH_STATUS_KT AND B1.CDNAME = 'ASS_ADD_AUTH' AND B1.CDTYPE = 'ASS_ADDNEW'
---luctv: 09/01/2019 bo sung left join cm branch
LEFT JOIN CM_BRANCH BR ON A.BRANCH_ID = BR.BRANCH_ID
LEFT JOIN TL_USER T1 ON A.MAKER_ID = T1.TLNANME
LEFT JOIN TL_USER T2 ON A.MAKER_ID_KT = T2.TLNANME
LEFT JOIN TL_USER T3 ON A.CHECKER_ID = T3.TLNANME
LEFT JOIN TL_USER T4 ON A.CHECKER_ID_KT = T4.TLNANME
WHERE 1 = 1
AND (A.LIQ_ID LIKE '%' + @p_LIQ_ID + '%' OR @p_LIQ_ID IS NULL OR @p_LIQ_ID = '')
AND (A.BUY_COMPANY_ID LIKE '%' + @p_BUY_COMPANY_ID + '%' OR @p_BUY_COMPANY_ID IS NULL OR @p_BUY_COMPANY_ID = '')
-- AND (A.BUY_PRICE = @p_BUY_PRICE OR @p_BUY_PRICE IS NULL)
AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '')
-- AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
-- AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
-- AND A.RECORD_STATUS = '1'
-- AND (A.BUY_PRICE >= @p_FR_LIQ_AMT OR @p_FR_LIQ_AMT is NULL OR @p_FR_LIQ_AMT = 0)
-- AND (A.BUY_PRICE <= @p_TO_LIQ_AMT OR @p_TO_LIQ_AMT is NULL OR @p_TO_LIQ_AMT = 0)
AND (A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR @p_AUTH_STATUS_KT IS NULL OR @p_AUTH_STATUS_KT = '')
AND ((A.MAKER_ID_KT IS NOT NULL AND @p_IS_UPDATE= 'Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
OR ((A.MAKER_ID_KT IS NULL AND @p_IS_UPDATE = 'N'))
OR @p_IS_UPDATE ='' OR @p_IS_UPDATE IS NULL)
-- -- NEW TRANG THAI PHIEU XUAT LA LUU NHAP HOAC TU CHOI THI CHI NGUOI TAO CO THE TIM THAY
AND ((A.AUTH_STATUS IN ('E','R') AND A.MAKER_ID = @p_USER_LOGIN) OR A.AUTH_STATUS NOT IN ('E','R')
OR (EXISTS(SELECT * FROM dbo.FN_GET_USER_BY_ROLE('GDDV,GDDV_QLTS,TBP_QLTS,KSV_QLTS','DV0001','DEP000000000048') US
WHERE US.TLNANME = @p_USER_LOGIN))
OR @p_USER_LOGIN IS NULL OR @p_USER_LOGIN = '')
-- -- 11-03-2022 HUYHT BO SUNG DIEU KIEN TIM KIEM PHIEU XUAT THEO QUYEN KIEM NHIEM
/*AND ((@p_TYPE_SEARCH='HC'
AND (EXISTS(SELECT * FROM dbo.FN_GET_USER_BY_ROLE('GDDV',A.BRANCH_ID,A.DEPT_ID) US
WHERE US.TLNANME = @p_USER_LOGIN))
OR A.MAKER_ID = @p_USER_LOGIN)
OR (@p_TYPE_SEARCH='KT' AND @p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp))
OR (@p_TYPE_SEARCH='KT' AND @p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_ID)
OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH ='')*/
--TIM KIEM TU NGAY O HC
AND ((@p_TYPE_SEARCH = 'HC' AND (CONVERT(DATE,A.CREATE_DT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
OR @p_TYPE_SEARCH = 'KT' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
-- TIM KIEM DEN NGAY O HC
AND ((@p_TYPE_SEARCH = 'HC' AND (CONVERT(DATE,A.CREATE_DT,103) <= CONVERT(DATE, @p_TO_BUY_DATE, 103) OR @p_TO_BUY_DATE is NULL OR @p_TO_BUY_DATE = ''))
OR @p_TYPE_SEARCH = 'KT' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
--TIM KIEM TU NGAY O KT
AND ((@p_TYPE_SEARCH = 'KT' AND (((A.MAKER_ID_KT IS NULL OR A.MAKER_ID_KT = '')
AND (CONVERT(DATE,A.APPROVE_DT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
OR ((A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT <> '')
AND ((@p_AUTH_STATUS_KT = 'A' AND (CONVERT(DATE,A.APPROVE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
OR (@p_AUTH_STATUS_KT = 'U' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
OR (@p_AUTH_STATUS_KT = 'E' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
OR (@p_AUTH_STATUS_KT = 'R' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
OR ((@p_AUTH_STATUS_KT = '' OR @p_AUTH_STATUS_KT IS NULL) AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))))))
OR @p_TYPE_SEARCH = 'HC' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
-- TIM KIEM DEN NGAY O KT
AND ((@p_TYPE_SEARCH = 'KT' AND (((A.MAKER_ID_KT IS NULL OR A.MAKER_ID_KT = '')
AND (CONVERT(DATE,A.APPROVE_DT,103) <= CONVERT(DATE, @p_TO_BUY_DATE, 103) OR @p_TO_BUY_DATE is NULL OR @p_TO_BUY_DATE = ''))
OR ((A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT <> '')
AND ((@p_AUTH_STATUS_KT = 'A' AND (CONVERT(DATE,A.APPROVE_DT_KT,103) <= CONVERT(DATE, @p_TO_BUY_DATE, 103) OR @p_TO_BUY_DATE is NULL OR @p_TO_BUY_DATE = ''))
OR (@p_AUTH_STATUS_KT = 'U' AND (CONVERT(DATE,A.CREATE_DT_KT,103) <= CONVERT(DATE, @p_TO_BUY_DATE, 103) OR @p_TO_BUY_DATE is NULL OR @p_TO_BUY_DATE = ''))
OR (@p_AUTH_STATUS_KT = 'E' AND (CONVERT(DATE,A.CREATE_DT_KT,103) <= CONVERT(DATE, @p_TO_BUY_DATE, 103) OR @p_TO_BUY_DATE is NULL OR @p_TO_BUY_DATE = ''))
OR (@p_AUTH_STATUS_KT = 'R' AND (CONVERT(DATE,A.CREATE_DT_KT,103) <= CONVERT(DATE, @p_TO_BUY_DATE, 103) OR @p_TO_BUY_DATE is NULL OR @p_TO_BUY_DATE = ''))
OR ((@p_AUTH_STATUS_KT = '' OR @p_AUTH_STATUS_KT IS NULL) AND (CONVERT(DATE,A.CREATE_DT_KT,103) <= CONVERT(DATE, @p_TO_BUY_DATE, 103) OR @p_TO_BUY_DATE is NULL OR @p_TO_BUY_DATE = ''))))))
OR @p_TYPE_SEARCH = 'HC' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
ORDER BY A.APPROVE_DT_KT, A.CREATE_DT DESC
-- PAGING END
END
ELSE
BEGIN
-- PAGING BEGIN
SELECT TOP(CONVERT(INT,@p_TOP))A.*,A.BUY_COMPANY_ID AS BUY_COMPANY_NAME,B.CONTENT AS AUTH_STATUS_NAME, B1.CONTENT AS AUTH_STATUS_NAME_KT,T1.TLFullName MAKER_NAME, T2.TLFullName MAKER_NAME_KT,
T3.TLFullName APPROVE_NAME, T4.TLFullName APPROVE_NAME_KT,BR.BRANCH_CODE +' - '+ BR.BRANCH_NAME AS FULL_BRANCH_NAME,
@p_USER_LOGIN AS USER_LOGIN,@p_TYPE_SEARCH AS TYPE_SEARCH --- TRA VE THAM SO GAN VO CURRENT SEARCH TRANH GAY LOI O CAC MAN HINH
-- SELECT END
FROM ASS_LIQUIDATION A
LEFT JOIN CM_BRANCH BR ON A.BRANCH_ID = BR.BRANCH_ID
--LEFT JOIN CM_AUTH_STATUS B ON A.AUTH_STATUS = B.AUTH_STATUS
--LEFT JOIN CM_AUTH_STATUS B1 ON A.AUTH_STATUS_KT = B1.AUTH_STATUS
LEFT JOIN dbo.CM_ALLCODE B ON B.CDVAL = A.AUTH_STATUS AND B.CDNAME = 'ASS_ADD_AUTH' AND B.CDTYPE = 'ASS_ADDNEW'
LEFT JOIN dbo.CM_ALLCODE B1 ON B1.CDVAL = A.AUTH_STATUS_KT AND B1.CDNAME = 'ASS_ADD_AUTH' AND B1.CDTYPE = 'ASS_ADDNEW'
LEFT JOIN TL_USER T1 ON A.MAKER_ID = T1.TLNANME
LEFT JOIN TL_USER T2 ON A.MAKER_ID_KT = T2.TLNANME
LEFT JOIN TL_USER T3 ON A.CHECKER_ID = T3.TLNANME
LEFT JOIN TL_USER T4 ON A.CHECKER_ID_KT = T4.TLNANME
WHERE 1 = 1
AND (A.LIQ_ID LIKE '%' + @p_LIQ_ID + '%' OR @p_LIQ_ID IS NULL OR @p_LIQ_ID = '')
AND (A.BUY_COMPANY_ID LIKE '%' + @p_BUY_COMPANY_ID + '%' OR @p_BUY_COMPANY_ID IS NULL OR @p_BUY_COMPANY_ID = '')
-- AND (A.BUY_PRICE = @p_BUY_PRICE OR @p_BUY_PRICE IS NULL)
AND (A.NOTES LIKE '%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '')
-- AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
AND (A.MAKER_ID LIKE '%' + @p_MAKER_ID + '%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
AND (DATEDIFF(DAYOFYEAR,A.CREATE_DT,CONVERT(DATETIME, @p_CREATE_DT, 103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
-- AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
AND (DATEDIFF(DAYOFYEAR,A.APPROVE_DT,CONVERT(DATETIME, @p_APPROVE_DT, 103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
-- AND A.RECORD_STATUS = '1'
-- AND (A.BUY_PRICE >= @p_FR_LIQ_AMT OR @p_FR_LIQ_AMT is NULL OR @p_FR_LIQ_AMT = 0)
-- AND (A.BUY_PRICE <= @p_TO_LIQ_AMT OR @p_TO_LIQ_AMT is NULL OR @p_TO_LIQ_AMT = 0)
AND (A.AUTH_STATUS_KT = @p_AUTH_STATUS_KT OR @p_AUTH_STATUS_KT IS NULL OR @p_AUTH_STATUS_KT = '')
AND ((A.MAKER_ID_KT IS NOT NULL AND @p_IS_UPDATE= 'Y') --Lay danh sach chua duoc phong KT cap nhat va duoc cap nhat
OR ((A.MAKER_ID_KT IS NULL AND @p_IS_UPDATE = 'N'))
OR @p_IS_UPDATE ='' OR @p_IS_UPDATE IS NULL)
-- -- NEW TRANG THAI PHIEU XUAT LA LUU NHAP HOAC TU CHOI THI CHI NGUOI TAO CO THE TIM THAY
AND ((A.AUTH_STATUS IN ('E','R') AND A.MAKER_ID = @p_USER_LOGIN) OR A.AUTH_STATUS NOT IN ('E','R')
OR (EXISTS(SELECT * FROM dbo.FN_GET_USER_BY_ROLE('GDDV,GDDV_QLTS,TBP_QLTS,KSV_QLTS','DV0001','DEP000000000048') US
WHERE US.TLNANME = @p_USER_LOGIN))
OR @p_USER_LOGIN IS NULL OR @p_USER_LOGIN = '')
-- -- 11-03-2022 HUYHT BO SUNG DIEU KIEN TIM KIEM PHIEU XUAT THEO QUYEN KIEM NHIEM
-- AND ((@p_TYPE_SEARCH='HC'
-- AND (EXISTS(SELECT * FROM dbo.FN_GET_USER_BY_ROLE('GDDV',A.BRANCH_ID,A.DEPT_ID) US
-- WHERE US.TLNANME = @p_USER_LOGIN))
-- OR A.MAKER_ID = @p_USER_LOGIN)
-- OR (@p_TYPE_SEARCH='KT' AND @p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp))
-- OR (@p_TYPE_SEARCH='KT' AND @p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_ID)
-- OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH ='')
--TIM KIEM TU NGAY O HC
AND ((@p_TYPE_SEARCH = 'HC' AND (CONVERT(DATE,A.CREATE_DT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
OR @p_TYPE_SEARCH = 'KT' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
-- TIM KIEM DEN NGAY O HC
AND ((@p_TYPE_SEARCH = 'HC' AND (CONVERT(DATE,A.CREATE_DT,103) <= CONVERT(DATE, @p_TO_BUY_DATE, 103) OR @p_TO_BUY_DATE is NULL OR @p_TO_BUY_DATE = ''))
OR @p_TYPE_SEARCH = 'KT' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
--TIM KIEM TU NGAY O KT
AND ((@p_TYPE_SEARCH = 'KT' AND (((A.MAKER_ID_KT IS NULL OR A.MAKER_ID_KT = '')
AND (CONVERT(DATE,A.APPROVE_DT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
OR ((A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT <> '')
AND ((@p_AUTH_STATUS_KT = 'A' AND (CONVERT(DATE,A.APPROVE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
OR (@p_AUTH_STATUS_KT = 'U' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
OR (@p_AUTH_STATUS_KT = 'E' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
OR (@p_AUTH_STATUS_KT = 'R' AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))
OR ((@p_AUTH_STATUS_KT = '' OR @p_AUTH_STATUS_KT IS NULL) AND (CONVERT(DATE,A.CREATE_DT_KT,103) >= CONVERT(DATE, @p_FR_BUY_DATE, 103) OR @p_FR_BUY_DATE is NULL OR @p_FR_BUY_DATE = ''))))))
OR @p_TYPE_SEARCH = 'HC' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
--TIM KIEM DEN NGAY O KT
AND ((@p_TYPE_SEARCH = 'KT' AND (((A.MAKER_ID_KT IS NULL OR A.MAKER_ID_KT = '')
AND (CONVERT(DATE,A.APPROVE_DT,103) <= CONVERT(DATE, @p_TO_BUY_DATE, 103) OR @p_TO_BUY_DATE is NULL OR @p_TO_BUY_DATE = ''))
OR ((A.MAKER_ID_KT IS NOT NULL AND A.MAKER_ID_KT <> '')
AND ((@p_AUTH_STATUS_KT = 'A' AND (CONVERT(DATE,A.APPROVE_DT_KT,103) <= CONVERT(DATE, @p_TO_BUY_DATE, 103) OR @p_TO_BUY_DATE is NULL OR @p_TO_BUY_DATE = ''))
OR (@p_AUTH_STATUS_KT = 'U' AND (CONVERT(DATE,A.CREATE_DT_KT,103) <= CONVERT(DATE, @p_TO_BUY_DATE, 103) OR @p_TO_BUY_DATE is NULL OR @p_TO_BUY_DATE = ''))
OR (@p_AUTH_STATUS_KT = 'E' AND (CONVERT(DATE,A.CREATE_DT_KT,103) <= CONVERT(DATE, @p_TO_BUY_DATE, 103) OR @p_TO_BUY_DATE is NULL OR @p_TO_BUY_DATE = ''))
OR (@p_AUTH_STATUS_KT = 'R' AND (CONVERT(DATE,A.CREATE_DT_KT,103) <= CONVERT(DATE, @p_TO_BUY_DATE, 103) OR @p_TO_BUY_DATE is NULL OR @p_TO_BUY_DATE = ''))
OR ((@p_AUTH_STATUS_KT = '' OR @p_AUTH_STATUS_KT IS NULL) AND (CONVERT(DATE,A.CREATE_DT_KT,103) <= CONVERT(DATE, @p_TO_BUY_DATE, 103) OR @p_TO_BUY_DATE is NULL OR @p_TO_BUY_DATE = ''))))))
OR @p_TYPE_SEARCH = 'HC' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
ORDER BY A.APPROVE_DT_KT, A.CREATE_DT DESC
-- PAGING END
END
END -- PAGING
GO
ALTER PROCEDURE dbo.ASS_TRANSFER_MULTI_Master_SendAppr
@p_TRANSFER_MULTI_ID VARCHAR(15) = NULL,
@p_TYPE_APP NVARCHAR(15) = NUll,
@p_USER_LOGIN VARCHAR(15) = NULL,
@p_DESC NVARCHAR(max) = NULL
AS
DECLARE @ASSET_ID_LST VARCHAR(MAX), @CURRENT_TRANS_ERROR NVARCHAR(MAX)
BEGIN TRANSACTION
DECLARE @PRICE_OF_ASSET DECIMAL = (SELECT MAX(A.BUY_PRICE) FROM ASS_TRANSFER_MULTI_DT ATMD LEFT JOIN ASS_MASTER A ON A.ASSET_ID = ATMD.ASSET_ID WHERE ATMD.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID)
DECLARE @BRANCH_ID VARCHAR(15) = (SELECT TU.TLSUBBRID FROM TL_USER TU WHERE TU.TLNANME = @p_USER_LOGIN)
DECLARE @DEP_ID VARCHAR(15) = (SELECT TU.SECUR_CODE FROM TL_USER TU WHERE TU.TLNANME = @p_USER_LOGIN)
DECLARE @NOTISENDAPP NVARCHAR(MAX) = N' đã được gửi phê duyệt thành công. Vui lòng đợi bộ phận phê duyệt xác nhận.'
DECLARE @NOTISENDAPPZ NVARCHAR(MAX) = N'Trưởng đơn vị ' + (SELECT CB.BRANCH_NAME FROM TL_USER TU LEFT JOIN CM_BRANCH CB ON TU.TLSUBBRID = CB.BRANCH_ID WHERE TU.TLNANME = @p_USER_LOGIN)
+ N' xác nhận điều chuyển'
DECLARE @SL_PYC INT
DECLARE @TYPE_PYC VARCHAR(15) = (SELECT TOP 1 B.TYPE_XL FROM ASS_TRANSFER_MULTI_MASTER A
LEFT JOIN TR_REQUEST_SHOP_DOC_DT B ON A.REQ_ID = B.REQ_DOC_ID
WHERE TRANS_MULTI_MASTER_ID=@p_TRANSFER_MULTI_ID)
DECLARE @PROCESS_C VARCHAR(20) = (SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_TRANSFER_MULTI_ID AND STATUS='C')
DECLARE @PARENT_ID VARCHAR(20)
DECLARE @DEP_QLTS VARCHAR(20), @DEP_DVNB VARCHAR(20), @DEP_HTKD VARCHAR(20)
SET @DEP_QLTS = (SELECT TOP 1 sp.ParaValue FROM SYS_PARAMETERS sp WHERE sp.ParaKey = 'DEP_QLTS')
SET @DEP_DVNB = (SELECT TOP 1 sp.ParaValue FROM SYS_PARAMETERS sp WHERE sp.ParaKey = 'DEP_TTQLTS')
SET @DEP_HTKD = (SELECT TOP 1 sp.ParaValue FROM SYS_PARAMETERS sp WHERE sp.ParaKey = 'DEP_KQLTS')
IF (@p_TYPE_APP = 'S_TDV')
BEGIN
-- KIỂM TRA TÀI SẢN ĐANG TREO TRONG GIAO DỊCH KHÁC
SET @ASSET_ID_LST = (SELECT B.ASSET_ID + '|' FROM (SELECT A.ASSET_ID
FROM ASS_TRANSFER_MULTI_DT A
where A.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) B
FOR XML PATH (''))
SELECT @CURRENT_TRANS_ERROR = dbo.ASSET_CHECK_CURRENT_TRANS(@ASSET_ID_LST)
IF(@CURRENT_TRANS_ERROR IS NOT NULL AND @CURRENT_TRANS_ERROR <> '')
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, @CURRENT_TRANS_ERROR ErrorDesc
RETURN '-1'
END
--CHECK MAPPING TT/PB/K
DECLARE @HS TABLE(ID INT IDENTITY, DEP VARCHAR(50), KHOI VARCHAR(50), TT VARCHAR(50))
INSERT INTO @HS SELECT A.DEPT_ID, A.KHOI_ID, A.CENTER_ID FROM ASS_TRANSFER_MULTI_DT A
LEFT JOIN CM_BRANCH CB ON A.BRANCH_ID = CB.BRANCH_ID WHERE A.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID AND CB.BRANCH_TYPE ='HS'
IF(EXISTS(SELECT * FROM @HS WHERE 1=1 AND (DEP IS NULL OR DEP = '' )
AND (KHOI IS NULL OR KHOI = '' )
AND (TT IS NULL OR TT = '' )))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' Result, N'Gửi duyệt thất bại! Thông tin điều chuyển phiếu số: '+@p_TRANSFER_MULTI_ID+
N' Đơn vị nhận Hội sở cần chọn Phòng ban nhận hoặc Khối nhận hoặc Trung tâm nhận. Vui lòng xử lý phiếu' ErrorDesc
RETURN '-1'
END
UPDATE ASS_TRANSFER_MULTI_MASTER SET AUTH_STATUS = 'U'
WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID
IF @@ERROR <> 0 GOTO ABORT
--khiemchg tạo bảng tạm chứa các loại tài sản điều chuyển sai số lượng
-- DECLARE @check_QTY TABLE(QTY_DC DECIMAL, GROUP_CODE NVARCHAR(MAX),GROUP_NAME NVARCHAR(MAX), QTY_PYC DECIMAL)
-- INSERT INTO @check_QTY SELECT A.QTY AS QTY_DC,A.GROUP_CODE, A.GROUP_NAME, ISNULL(B.QTY_ETM, 0.00) AS QTY_PYC
-- FROM
-- (SELECT COUNT(A.ASSET_ID) AS QTY, AG.GROUP_CODE, AG.GROUP_NAME
-- FROM ASS_TRANSFER_MULTI_DT A
-- LEFT JOIN ASS_MASTER AM ON A.ASSET_ID = AM.ASSET_ID
-- LEFT JOIN ASS_GROUP AG ON AM.GROUP_ID = AG.GROUP_ID
-- LEFT JOIN ASS_TRANSFER_MULTI_MASTER ATMM ON A.TRANS_MULTI_MASTER_ID = ATMM.TRANS_MULTI_MASTER_ID
-- WHERE ATMM.REQ_ID = (SELECT ATM.REQ_ID FROM ASS_TRANSFER_MULTI_MASTER ATM WHERE ATM.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID)
-- AND (ATMM.AUTH_STATUS <> 'E' OR ATMM.AUTH_STATUS <> 'R')
-- GROUP BY AG.GROUP_CODE, AG.GROUP_NAME) A
-- LEFT JOIN (SELECT TRSDD.QTY_ETM, AG2.GROUP_CODE, AG2.GROUP_NAME FROM TR_REQUEST_SHOP_DOC_DT TRSDD
-- LEFT JOIN ASS_GROUP AG2 ON TRSDD.ASS_GROUP_ID = AG2.GROUP_ID
-- WHERE
-- TRSDD.REQ_DOC_ID = (SELECT ATMM.REQ_ID FROM ASS_TRANSFER_MULTI_MASTER ATMM WHERE ATMM.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID)
-- AND TRSDD.TYPE_XL = 'CPDC') B ON A.GROUP_CODE = B.GROUP_CODE
-- WHERE A.QTY > B.QTY_ETM
--
-- DECLARE @QTY_ERROR NVARCHAR(MAX) = (SELECT STUFF((SELECT ', ' + GROUP_NAME FROM @check_QTY FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, ''))
-- IF((SELECT COUNT(*) FROM @check_QTY) > 0)
-- BEGIN
-- ROLLBACK TRANSACTION
-- SELECT '-1' Result, N'Gửi duyệt thất bại! Thông tin điều chuyển phiếu số: '+@p_TRANSFER_MULTI_ID + '
' +
-- N' Số lượng tài sản thuộc loại: "'+ @QTY_ERROR + N'" không được lớn hơn số lượng tài sản được cấp điều chuyển theo Phiếu yêu cầu.'
-- + N' Vui lòng xử lý phiếu' ErrorDesc
-- RETURN '-1'
-- END
--khiemchg.
IF(EXISTS(SELECT 1 FROM dbo.ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID=@p_TRANSFER_MULTI_ID AND AUTH_STATUS='R'))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' Result, N'Gửi duyệt thất bại! Thông tin điều chuyển phiếu số: '+@p_TRANSFER_MULTI_ID+
N' đang bị từ chối. Vui lòng xử lý phiếu' ErrorDesc
RETURN '-1'
END
IF(EXISTS(SELECT 1 FROM dbo.ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID=@p_TRANSFER_MULTI_ID AND AUTH_STATUS='R'))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' Result, N'Gửi duyệt thất bại! Thông tin điều chuyển phiếu số: '+@p_TRANSFER_MULTI_ID+
N' đang bị từ chối. Vui lòng xử lý phiếu' ErrorDesc
RETURN '-1'
END
IF(@TYPE_PYC = 'CPDC')
BEGIN
SET @SL_PYC = (SELECT SUM(ISNULL(B.QTY_ETM, 0)) FROM ASS_TRANSFER_MULTI_MASTER A
LEFT JOIN TR_REQUEST_SHOP_DOC_DT B ON A.REQ_ID = B.REQ_DOC_ID
WHERE TRANS_MULTI_MASTER_ID=@p_TRANSFER_MULTI_ID)
IF((SELECT COUNT(ASSET_ID) FROM ASS_TRANSFER_MULTI_DT WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) > @SL_PYC)
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' Result, N'Gửi duyệt thất bại! Thông tin điều chuyển phiếu số: '+@p_TRANSFER_MULTI_ID+
N' sai số lượng so với PYC được chọn. Vui lòng xử lý phiếu' ErrorDesc
RETURN '-1'
END
END
UPDATE ASS_TRANSFER_MULTI_MASTER SET AUTH_STATUS = 'U'
WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID
IF @@ERROR <> 0 GOTO ABORT
-- HUYHT 06/05/2022: THAY ĐỔI TRẠNG THÁI UPDATE CŨ THÀNH UPDATE_HC
UPDATE dbo.PL_PROCESS SET PROCESS_ID = 'UPDATE_HC' WHERE REQ_ID = @p_TRANSFER_MULTI_ID AND PROCESS_ID = 'UPDATE'
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C', RECEPTION_DT=GETDATE() WHERE REQ_ID=@p_TRANSFER_MULTI_ID AND PROCESS_ID='QLTS_D'
INSERT INTO dbo.PL_PROCESS(REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
VALUES(@p_TRANSFER_MULTI_ID, 'SEND', @p_USER_LOGIN, GETDATE(),
N'Gửi Trưởng đơn vị phê duyệt', N'Nhân viên tạo phiếu và gửi phê duyệt thành công')
UPDATE PL_REQUEST_PROCESS SET STATUS = 'P' WHERE REQ_ID = @p_TRANSFER_MULTI_ID AND PROCESS_ID = 'ADDNEW'
UPDATE ASS_TRANSFER_MULTI_MASTER SET STATUS = 'QLTS_D'
WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID
--khiemchg update treo tài sản khi thực hiện điều chuyển
UPDATE ASS_MASTER SET CURRENT_TRANS = @p_TRANSFER_MULTI_ID, CURRENT_TRANS_TYPE = 'ASS_TF_MUL'
WHERE ASSET_ID IN (SELECT ASSET_ID FROM ASS_TRANSFER_MULTI_DT WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID)
IF @@ERROR <> 0 GOTO ABORT
BEGIN
-- IF(@PRICE_OF_ASSET <= 30000000)
-- BEGIN
--SET @PARENT_ID = 'QLTS_D'
-- END
--IF(@PRICE_OF_ASSET > 30000000 AND @PRICE_OF_ASSET <= 50000000)
-- IF(@PRICE_OF_ASSET > 30000000)
-- BEGIN
-- INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID)
-- VALUES(@p_TRANSFER_MULTI_ID,'TT_DVNB','U','GDDV_QLTS','DV0001','QLTS_D', @DEP_DVNB)
-- SET @PARENT_ID = 'TT_DVNB'
-- END
-- ELSE IF (@PRICE_OF_ASSET > 50000000 AND @PRICE_OF_ASSET <= 100000000)
-- BEGIN
-- INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID)
-- VALUES(@p_TRANSFER_MULTI_ID,'TT_DVNB','C','GDDV_QLTS','DV0001','QLTS_D', @DEP_DVNB)
--
---- INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID)
---- VALUES(@p_TRANSFER_MULTI_ID,'K_HTKD','U','GDDV','DV0001','TT_DVNB', @DEP_HTKD)
--
-- SET @PARENT_ID = 'TT_DVNB'
-- END
-- ELSE IF (@PRICE_OF_ASSET > 100000000)
-- BEGIN
-- INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID)
-- VALUES(@p_TRANSFER_MULTI_ID,'TT_DVNB','C','GDDV_QLTS','DV0001','QLTS_D', @DEP_DVNB)
--
---- INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID)
---- VALUES(@p_TRANSFER_MULTI_ID,'K_HTKD','U','GDDV','DV0001','TT_DVNB', @DEP_HTKD)
----
---- INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID)
---- VALUES(@p_TRANSFER_MULTI_ID,'TGD','U','TGD','DV0001','K_HTKD')
--
-- SET @PARENT_ID = 'TT_DVNB'
-- END
SET @PARENT_ID = 'QLTS_D'
--Khiemchg lấy danh sách đơn vị nhận và cho
DECLARE @lstBranch TABLE
(
ID INT IDENTITY,
Branch_Id VARCHAR(50),
Dep_Id VARCHAR(50),
Center_Id VARCHAR(50),
Khoi_Id VARCHAR(50)
)
DECLARE @temp TABLE
(
BRN_SD VARCHAR(50),
K_SD VARCHAR(50),
TT_SD VARCHAR(50),
DEP_SD VARCHAR(50),
BRN_N VARCHAR(50),
K_N VARCHAR(50),
TT_N VARCHAR(50),
DEP_N VARCHAR(50)
)
INSERT INTO @temp
SELECT DISTINCT BRANCH_ID_OLD, KHOI_ID_OLD, CENTER_ID_OLD, DEPT_ID_OLD,
BRANCH_ID, KHOI_ID, CENTER_ID, DEPT_ID
FROM ASS_TRANSFER_MULTI_DT
WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID
-- DELETE @temp WHERE (BRN_SD = BRN_N AND DEP_SD = DEP_N AND K_SD = K_N AND TT_SD = TT_N)
-- OR (BRN_SD = BRN_N AND DEP_SD = DEP_N AND K_SD = K_N AND TT_SD = TT_N)
DELETE @temp WHERE (BRN_SD = BRN_N AND DEP_SD = DEP_N)
INSERT INTO @lstBranch(Branch_Id, Dep_Id, Center_Id, Khoi_Id) SELECT DISTINCT BRN_SD, DEP_SD, TT_SD, K_SD FROM @temp
INSERT INTO @lstBranch(Branch_Id, Dep_Id, Center_Id, Khoi_Id) SELECT DISTINCT BRN_N, DEP_N, TT_N, K_N FROM @temp
DECLARE @int INT = 1
DECLARE @countt INT = (SELECT COUNT(ID) FROM @lstBranch)
--IF(@count > 1)
BEGIN
WHILE @int <= @countt
BEGIN
DECLARE @BRANCH VARCHAR(20) = (SELECT Branch_Id FROM @lstBranch WHERE ID = @int)
DECLARE @DEPT VARCHAR(20) = (SELECT Dep_Id FROM @lstBranch WHERE ID = @int)
DECLARE @CENTER VARCHAR(20) = (SELECT Center_Id FROM @lstBranch WHERE ID = @int)
DECLARE @KHOI VARCHAR(20) = (SELECT Khoi_Id FROM @lstBranch WHERE ID = @int)
IF(@BRANCH <> '' OR @BRANCH IS NOT NULL)
BEGIN
IF((@KHOI IS NOT NULL AND @KHOI <> '') AND (@CENTER IS NOT NULL AND @CENTER <> '') AND (@DEPT IS NOT NULL AND @DEPT <> ''))
BEGIN
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID)
VALUES(@p_TRANSFER_MULTI_ID,'XNGN','U','GDDV',@BRANCH,@PARENT_ID, @DEPT)
END
ELSE IF((@KHOI IS NOT NULL AND @KHOI <> '') AND (@CENTER IS NOT NULL AND @CENTER <> '') AND (@DEPT IS NULL OR @DEPT = ''))
BEGIN
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID)
VALUES(@p_TRANSFER_MULTI_ID,'XNGN','U','GDDV',@BRANCH,@PARENT_ID, @CENTER)
END
ELSE IF((@KHOI IS NOT NULL AND @KHOI <> '') AND (@CENTER IS NULL OR @CENTER = '') AND (@DEPT IS NULL OR @DEPT = ''))
BEGIN
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID)
VALUES(@p_TRANSFER_MULTI_ID,'XNGN','U','GDDV',@BRANCH,@PARENT_ID, @KHOI)
END
ELSE
BEGIN
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID)
VALUES(@p_TRANSFER_MULTI_ID,'XNGN','U','GDDV',@BRANCH,@PARENT_ID, @DEPT)
END
END
SET @int = @int + 1
END
END
IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS PRP WHERE PRP.REQ_ID = @p_TRANSFER_MULTI_ID AND PRP.PROCESS_ID = 'XNGN')) SET @PARENT_ID = 'XNGN'
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],PARENT_PROCESS_ID)
VALUES(@p_TRANSFER_MULTI_ID,'APPROVE','U',@PARENT_ID)
END
END
ELSE IF (@p_TYPE_APP = 'CONFIRM')
BEGIN
IF (@PROCESS_C = 'XNGN')
BEGIN
IF((SELECT CB.BRANCH_TYPE FROM TL_USER TU LEFT JOIN CM_BRANCH CB ON TU.TLSUBBRID = CB.BRANCH_ID WHERE TU.TLNANME = @p_USER_LOGIN) = 'HS')
BEGIN
SET @NOTISENDAPP = N' Trưởng đơn vị ' + (SELECT CB.DEP_NAME FROM TL_USER TU LEFT JOIN CM_DEPARTMENT CB ON TU.SECUR_CODE = CB.DEP_ID WHERE TU.TLNANME = @p_USER_LOGIN)
+ N' đã xác nhận điều chuyển thành công'
SET @NOTISENDAPPZ = N' Trưởng đơn vị ' + (SELECT CB.DEP_NAME FROM TL_USER TU LEFT JOIN CM_DEPARTMENT CB ON TU.SECUR_CODE = CB.DEP_ID WHERE TU.TLNANME = @p_USER_LOGIN)
+ N' đã xác nhận điều chuyển'
END
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='P', CHECKER_ID = @p_USER_LOGIN, APPROVE_DT=GETDATE()
WHERE REQ_ID = @p_TRANSFER_MULTI_ID AND PROCESS_ID='XNGN'
AND ((@BRANCH_ID = 'DV0001' AND BRANCH_ID = @BRANCH_ID AND DEP_ID = @DEP_ID) OR (@BRANCH_ID <> 'DV0001' AND BRANCH_ID = @BRANCH_ID))
AND STATUS = 'C'
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @p_TRANSFER_MULTI_ID,
'CONFIRM',
@p_USER_LOGIN,
GETDATE(),
N'Trưởng đơn vị xác nhận thành công' ,
@NOTISENDAPPZ
)
IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID = 'XNGN' AND STATUS = 'C' AND REQ_ID = @p_TRANSFER_MULTI_ID) AND (SELECT ATMM.AUTH_STATUS FROM ASS_TRANSFER_MULTI_MASTER ATMM WHERE ATMM.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) = 'U')
BEGIN
UPDATE ASS_TRANSFER_MULTI_MASTER SET STATUS = 'APPROVE' , AUTH_STATUS = 'A' WHERE [TRANS_MULTI_MASTER_ID] = @p_TRANSFER_MULTI_ID
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C', APPROVE_DT=GETDATE()
WHERE REQ_ID = @p_TRANSFER_MULTI_ID AND PROCESS_ID = 'APPROVE' AND STATUS = 'U'
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @p_TRANSFER_MULTI_ID,
'CONFIRMED',
GETDATE(),
N'Hoàn thành xác nhận tài sản',
N'Phiếu hoàn thành xác nhận tài sản sau khi Trưởng đơn vị bên cho và nhận xác nhận'
)
END
END
END
ELSE IF (@p_TYPE_APP = 'KT')
BEGIN
IF((SELECT CORE_NOTE FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) IS NULL OR (SELECT CORE_NOTE FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) = '')
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' Result, N'Gửi duyệt thất bại! Thông tin điều chuyển phiếu số: '+@p_TRANSFER_MULTI_ID+
N' đang trống diễn giải hạch toán' ErrorDesc
RETURN '-1'
END
UPDATE ASS_TRANSFER_MULTI_MASTER SET AUTH_STATUS_KT = 'U' WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @p_TRANSFER_MULTI_ID,
'GDV',
@p_USER_LOGIN,
GETDATE(),
N'Giao dịch viên Kế toán gửi Kiểm soát viên phê duyệt' ,
N'Giao dịch viên Kế toán gửi duyệt'
)
END
--PHUCVH 06/03/23 BỔ SUNG MESSAGE
DECLARE @MESSAGE NVARCHAR(MAX)
IF (@p_TYPE_APP = 'S_TDV')
BEGIN
DECLARE @REQ_DOC_ID VARCHAR(15) = (SELECT TOP 1 atmm.REQ_ID FROM ASS_TRANSFER_MULTI_MASTER atmm WHERE atmm.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID)
IF(@REQ_DOC_ID IS NOT NULL AND @REQ_DOC_ID <> '')
BEGIN
SET @MESSAGE = '
' + (
SELECT REPLACE(
(SELECT STUFF((SELECT ' ' + DDDD.MESSAGE FROM ( SELECT CASE WHEN ROW_NUMBER() OVER (ORDER BY (SELECT 0)) = 1 THEN ''ELSE '/' END + N'Loại tài sản: ' + ISNULL(BB.GROUP_NAME,'') + N' | Số lượng yêu cầu: ' + CONVERT(VARCHAR(10),ISNULL(AA.QTY_ETM,0)) + N' | Số lượng đã điều chuyển: ' + CONVERT(VARCHAR(10),ISNULL(AA.ALLOCATED,0)) +
N' | Số lượng điều chuyển trong phiếu hiện tại: ' + CONVERT(VARCHAR(10),ISNULL((SELECT SUM(TMP.COUNT) FROM (
(SELECT COUNT(*) AS COUNT
FROM ASS_TRANSFER_MULTI_DT A
LEFT JOIN ASS_TRANSFER_MULTI_MASTER B ON A.TRANS_MULTI_MASTER_ID = B.TRANS_MULTI_MASTER_ID
LEFT JOIN ASS_MASTER C ON A.ASSET_ID = C.ASSET_ID
WHERE A.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID
GROUP BY B.REQ_ID, C.GROUP_ID, C.REQ_ID
HAVING B.REQ_ID = @REQ_DOC_ID
AND ((C.GROUP_ID = BB.GROUP_ID
AND (SELECT COUNT(*) FROM ASS_GROUP ag WHERE ag.GROUP_CODE = BB.GROUP_CODE
AND ag.GROUP_ID IN (SELECT trsdd.ASS_GROUP_ID FROM TR_REQUEST_SHOP_DOC_DT trsdd WHERE trsdd.REQ_DOC_ID = AA.REQ_DOC_ID
AND trsdd.REQ_DT_TYPE = 'XKSD' AND trsdd.TYPE_XL = 'CPDC'))>1 )
OR C.GROUP_ID IN (SELECT ag.GROUP_ID FROM ASS_GROUP ag WHERE ag.GROUP_CODE = BB.GROUP_CODE))
AND (C.REQ_ID IS NULL OR C.REQ_ID = '')))TMP),0)) AS MESSAGE
FROM TR_REQUEST_SHOP_DOC_DT AA
LEFT JOIN ASS_GROUP BB ON AA.ASS_GROUP_ID = BB.GROUP_ID
WHERE AA.REQ_DOC_ID = @REQ_DOC_ID AND AA.REQ_DT_TYPE = 'XKSD' AND AA.TYPE_XL = 'CPDC') DDDD FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')),'/','
'))
END
--CHECK ALLOCATED
DECLARE @TBL_CHECK_UPD TABLE (REQDT_ID VARCHAR(15), ASS_GROUP_ID VARCHAR(15), REQ_DOC_ID VARCHAR(15))
DECLARE @TBL_GROUP_CODE_ASS_USE TABLE (GROUP_ID VARCHAR(15))
INSERT INTO @TBL_CHECK_UPD
SELECT A.REQDT_ID, A.ASS_GROUP_ID,A.REQ_DOC_ID
FROM TR_REQUEST_SHOP_DOC_DT A
WHERE A.REQ_DOC_ID = @REQ_DOC_ID AND A.REQ_DT_TYPE = 'XKSD' AND A.TYPE_XL = 'CPDC'
DECLARE @C_REQDT_ID VARCHAR(15), @C_ASS_GROUP_ID VARCHAR(15), @C_REQ_DOC_ID VARCHAR(15)
DECLARE @IS_MULTI_GROUP VARCHAR(1) = '0'
DECLARE DATA_CURSOR_CHECK_UPD CURSOR FOR
SELECT * FROM @TBL_CHECK_UPD
OPEN DATA_CURSOR_CHECK_UPD
FETCH NEXT FROM DATA_CURSOR_CHECK_UPD INTO
@C_REQDT_ID,@C_ASS_GROUP_ID,@C_REQ_DOC_ID
DECLARE @ALLOCATED INT,@ALLOCATED_CURR INT, @ALLOCATED_OLD INT, @QTY_ETM INT
WHILE @@FETCH_STATUS = 0
BEGIN
SET @IS_MULTI_GROUP = '0'
DELETE @TBL_GROUP_CODE_ASS_USE
INSERT INTO @TBL_GROUP_CODE_ASS_USE (GROUP_ID)
SELECT A.GROUP_ID FROM ASS_GROUP A WHERE A.GROUP_CODE IN (SELECT B.GROUP_CODE FROM ASS_GROUP B WHERE B.GROUP_ID = @C_ASS_GROUP_ID)
IF((SELECT COUNT(*) FROM @TBL_GROUP_CODE_ASS_USE WHERE GROUP_ID IN (SELECT trsdd.ASS_GROUP_ID FROM TR_REQUEST_SHOP_DOC_DT trsdd WHERE trsdd.REQ_DOC_ID = @C_REQ_DOC_ID AND trsdd.REQ_DT_TYPE = 'XKSD' AND trsdd.TYPE_XL = 'CPDC')) > 1)
BEGIN
SET @IS_MULTI_GROUP = '1'
END
SET @ALLOCATED_CURR = (SELECT SUM(TMP.COUNT) FROM (
(SELECT COUNT(*) AS COUNT
FROM ASS_TRANSFER_MULTI_DT A
LEFT JOIN ASS_TRANSFER_MULTI_MASTER B ON A.TRANS_MULTI_MASTER_ID = B.TRANS_MULTI_MASTER_ID
LEFT JOIN ASS_MASTER C ON A.ASSET_ID = C.ASSET_ID
WHERE A.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID
GROUP BY B.REQ_ID, C.GROUP_ID, C.REQ_ID
HAVING B.REQ_ID = @C_REQ_DOC_ID
AND C.GROUP_ID IN (SELECT GROUP_ID FROM @TBL_GROUP_CODE_ASS_USE WHERE ((@IS_MULTI_GROUP = '1' AND C.GROUP_ID = @C_ASS_GROUP_ID) OR @IS_MULTI_GROUP = '0'))
AND (C.REQ_ID IS NULL OR C.REQ_ID = '')))TMP)
SELECT TOP 1 @ALLOCATED_OLD = trsdd.ALLOCATED, @QTY_ETM = trsdd.QTY_ETM FROM TR_REQUEST_SHOP_DOC_DT trsdd WHERE trsdd.REQDT_ID = @C_REQDT_ID
IF(@QTY_ETM < (ISNULL(@ALLOCATED_OLD,0) + ISNULL(@ALLOCATED_CURR,0)))
BEGIN
ROLLBACK TRANSACTION
CLOSE DATA_CURSOR_CHECK_UPD
DEALLOCATE DATA_CURSOR_CHECK_UPD
SELECT '-1' as Result, '' USER_MASTER_ID, N'Số lượng cấp phát vượt yêu cầu của đơn vị' +ISNULL(@MESSAGE,',') ErrorDesc
RETURN '-1'
END
FETCH NEXT FROM DATA_CURSOR_CHECK_UPD INTO
@C_REQDT_ID,@C_ASS_GROUP_ID,@C_REQ_DOC_ID
END
CLOSE DATA_CURSOR_CHECK_UPD
DEALLOCATE DATA_CURSOR_CHECK_UPD
END
COMMIT TRANSACTION
SELECT '0' as Result, N'Hồ sơ số: '+@p_TRANSFER_MULTI_ID+@NOTISENDAPP + ISNULL(@MESSAGE,'') ErrorDesc, @p_TRANSFER_MULTI_ID TRANS_MULTI_MASTER_ID
RETURN '0'
ABORT:
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' TRANS_MULTI_MASTER_ID, '' ErrorDesc
RETURN '-1'
END