ALTER PROCEDURE [dbo].[ASS_COST_ALLOCATION_App]
@p_COST_ID varchar(15),
@p_CHECKER_ID varchar(100) = NULL,
@p_AUTH_STATUS varchar(1) = NULL,
@p_APPROVE_DT VARCHAR(20) = NULL
AS
BEGIN TRANSACTION
UPDATE ASS_COST_ALLOCATION SET AUTH_STATUS = 'A',
CHECKER_ID = @p_CHECKER_ID,
APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103)
WHERE COS_ID = @p_COST_ID
DECLARE @COSTDT_ID varchar(15)
-- DECLARE @ASSET_ID varchar(15)
DECLARE DataCusor SCROLL CURSOR
FOR
SELECT A.COSTDT_ID
FROM [dbo].ASS_COST_ALLOC_DT A
WHERE COS_ID = @p_COST_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 @COSTDT_ID
WHILE @@FETCH_STATUS = 0
BEGIN
IF EXISTS(SELECT 1 FROM ASS_AMORT A WHERE MONTH(A.EXECUTE_DT) = MONTH(GETDATE()) AND YEAR(A.EXECUTE_DT) = YEAR(GETDATE())AND ASSET_TYPE = 'ALL')
BEGIN
UPDATE ASS_COST_ALLOC_DT
SET COST_START_DATE = CONVERT(DATE, GETDATE(), 103), COST_END_DATE = CONVERT(DATE, DATEADD(MONTH,COST_MONTH-1,GETDATE()),103),AUTH_STATUS ='A'--, RECORD_STATUS = '1'
WHERE COSTDT_ID =@COSTDT_ID
END
ELSE
BEGIN
UPDATE ASS_COST_ALLOC_DT
SET COST_START_DATE = CONVERT(DATE, GETDATE(), 103), COST_END_DATE = CONVERT(DATE, DATEADD(MONTH,COST_MONTH,GETDATE()),103),AUTH_STATUS ='A'--, RECORD_STATUS = '1'
WHERE COSTDT_ID =@COSTDT_ID
END
-- --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 @COSTDT_ID
END
CLOSE DataCusor
DEALLOCATE DataCusor
--THÊM LỊCH SỬ XỬ LÝ
UPDATE PL_PROCESS SET PROCESS_ID='UPDATE_NT' WHERE REQ_ID = @p_COST_ID AND PROCESS_ID = 'UPDATE'
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @p_COST_ID,
'APPROVE',
@p_CHECKER_ID,
GETDATE(),
N'Kiểm soát viên phê duyệt thành công' ,
N'Kiểm soát viên phê duyệt'
)
COMMIT TRANSACTION
SELECT '0' as Result, @p_COST_ID COS_ID, '' ErrorDesc
RETURN '0'
ABORT:
BEGIN
CLOSE DataCusor
DEALLOCATE DataCusor
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' COS_ID, '' ErrorDesc
RETURN '-1'
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[PL_REQUEST_DOC_TRANSFER_Upd]'
GO
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].[CM_BRANCH_Ins]'
GO
ALTER PROCEDURE [dbo].[CM_BRANCH_Ins]
@p_FATHER_ID varchar(15) = NULL,
@p_IS_POTENTIAL varchar(1) = NULL,
@p_BRANCH_CODE varchar(10) = NULL,
@p_BRANCH_NAME nvarchar(200) = NULL,
@p_REGION_ID varchar(15) = NULL,
@p_BRANCH_TYPE varchar(5) = NULL,
@p_ADDR nvarchar(200) = NULL,
@p_TEL 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_TAX_NO varchar(50) = NULL,
@p_APPROVE_DT VARCHAR(20) = NULL,
@p_ESTABLISH_DT NVARCHAR(500) = NULL,
@p_XmlData XML = NULL
AS
--Validation is here
DECLARE @ERRORSYS NVARCHAR(15) = ''
IF ( EXISTS ( SELECT * FROM CM_BRANCH WHERE BRANCH_CODE = @p_BRANCH_CODE))
SET @ERRORSYS = 'CMCD-00001'
ELSE IF( EXISTS (SELECT * FROM CM_BRANCH WHERE @p_TAX_NO IS NOT NULL AND @p_TAX_NO != '' AND TAX_NO = @p_TAX_NO))
SET @ERRORSYS = 'BRN-001'
IF @ERRORSYS <> ''
BEGIN
SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
RETURN '0'
END
DECLARE
@BRANCH_HIS_ID VARCHAR(15),
@BRANCH_ID VARCHAR(15),
@CHANGE_DT VARCHAR(100),
@BRANCH_NAME_OLD NVARCHAR(1000),
@BRANCH_NAME_NEW NVARCHAR(1000),
@ADDR_OLD NVARCHAR(1000),
@ADDR_NEW NVARCHAR(1000),
@NOTES NVARCHAR(1000)
Declare @hdoc INT
Exec sp_xml_preparedocument @hdoc Output,@p_XmlData
DECLARE XmlData CURSOR FOR
SELECT *
FROM OPENXML(@hdoc,'/Root/XmlData',2)
WITH
(
BRANCH_HIS_ID VARCHAR(15),
BRANCH_ID VARCHAR(15),
CHANGE_DT VARCHAR(100),
BRANCH_NAME_OLD NVARCHAR(1000),
BRANCH_NAME_NEW NVARCHAR(1000),
ADDR_OLD NVARCHAR(1000),
ADDR_NEW NVARCHAR(1000),
NOTES NVARCHAR(1000)
)
OPEN XmlData
BEGIN TRANSACTION
DECLARE @l_BRANCH_ID VARCHAR(15)
EXEC SYS_CodeMasters_Gen 'CM_BRANCH', @l_BRANCH_ID out
IF @l_BRANCH_ID='' OR @l_BRANCH_ID IS NULL GOTO ABORT
INSERT INTO CM_BRANCH([BRANCH_ID],[FATHER_ID],[IS_POTENTIAL],[BRANCH_CODE],[TAX_NO],[BRANCH_NAME],[REGION_ID],[BRANCH_TYPE],[ADDR],[TEL],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT], ESTABLISH_DT)
VALUES(@l_BRANCH_ID ,@p_FATHER_ID, @p_IS_POTENTIAL ,@p_BRANCH_CODE, @p_TAX_NO ,@p_BRANCH_NAME ,@p_REGION_ID ,@p_BRANCH_TYPE ,@p_ADDR ,@p_TEL ,@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_ESTABLISH_DT )
FETCH NEXT FROM XmlData INTO @BRANCH_HIS_ID,@BRANCH_ID,@CHANGE_DT,@BRANCH_NAME_OLD,@BRANCH_NAME_NEW,@ADDR_OLD,@ADDR_NEW,@NOTES
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @l_BRANCH_HIS_ID VARCHAR(15)
EXEC SYS_CodeMasters_Gen 'CM_BRANCH', @l_BRANCH_HIS_ID out
IF @l_BRANCH_HIS_ID='' OR @l_BRANCH_HIS_ID IS NULL GOTO ABORT
INSERT INTO CM_BRANCH_HIS (BRANCH_HIS_ID, BRANCH_ID, CHANGE_DT, BRANCH_NAME_OLD, BRANCH_NAME_NEW, ADDR_OLD, ADDR_NEW, NOTES)
VALUES (@l_BRANCH_HIS_ID, @l_BRANCH_ID, CONVERT(DATETIME,@CHANGE_DT,103), @BRANCH_NAME_OLD, @BRANCH_NAME_NEW, @ADDR_OLD, @ADDR_NEW, @NOTES);
FETCH NEXT FROM XmlData INTO @BRANCH_HIS_ID,@BRANCH_ID,@CHANGE_DT,@BRANCH_NAME_OLD,@BRANCH_NAME_NEW,@ADDR_OLD,@ADDR_NEW,@NOTES
END
CLOSE XmlData
DEALLOCATE XmlData
IF @@Error <> 0 GOTO ABORT
COMMIT TRANSACTION
SELECT '0' as Result, @l_BRANCH_ID Id, '' ErrorDesc
RETURN '0'
ABORT:
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' Id, '' ErrorDesc
RETURN '-1'
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[rpt_TSCD_BC017_Excel]'
GO
ALTER PROCEDURE [dbo].[rpt_TSCD_BC017_Excel]
-- Add the parameters for the stored procedure here
@p_BRANCH_ID varchar(15) = NULL,
@p_FromDate varchar(15) = NULL,
@p_ToDate varchar(15) = NULL,
@p_BRANCH_LOGIN varchar(15) = NULL,
@p_LEVEL varchar(10) = 'ALL',
@p_ASSET_TYPE varchar(15) = '', -- loai tai san TSCD/CCLD
@p_PriceFrom varchar(18) = null, -- nguyen gia tu
@p_PriceTo varchar(18) = null, -- nguyen gia den
@p_SupplierId varchar(15) = null, -- nha cung cap
@p_ASSET_GROUP_ID varchar(15) = null, -- Nhom tai san
@p_Branch_ID_Use varchar(15) = null ,-- don vi su dung
@p_User_ID varchar(15) = NULL, -- nguoi su dung
@p_DEP_ID VARCHAR(15) = NULL -- vietpq hieu chinh URD 23-12-
,@p_GDV_ID VARCHAR(150) = NULL -- khiemchg thêm tìm kiếm theo user gdv thực hiện
AS
BEGIN
-- Do du lieu ao
declare @tmp table(BRANCH_ID varchar(15))
insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
declare @tmp_login table(BRANCH_ID varchar(15))
insert into @tmp_login SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)
if @p_PriceFrom = '0' and @p_PriceTo = '0'
begin
set @p_PriceFrom = null
set @p_PriceTo = null
end
SELECT
Row_number() over(order by L.LIQ_ID) AS STT,
[dbo].[FN_GET_GROUPNAME](M.GROUP_ID,'1') AS NHOMTS,
-- [dbo].[FN_GET_GROUPNAME](A.GROUP_ID,'1') AS NHOMTSLV1, --EM GOM NHOM THEO 3 CAI THUOC TINH NAY NHA
[dbo].[FN_GET_GROUPNAME](M.GROUP_ID,'2') AS NHOM_LV2,
[dbo].[FN_GET_GROUPNAME](M.GROUP_ID,'3') AS NHOM_LV3,
[dbo].[FN_GET_GROUPNAME](M.GROUP_ID,'4') AS NHOM_LV4,
--G.GROUP_NAME NHOMTS, -- NHOM TAI SAN
M.ASSET_CODE MATS,
M.ASSET_NAME TENTS,
M.BUY_DATE NGAYNHAP, -- NGAY NHAP
M.BUY_PRICE NGUYENGIA,
L.APPROVE_DT NGAY_TL, -- NGAY THANH LY
--M.AMORTIZED_MONTH AS KHLK_NGAY_TL, -- KHAU HAO LUY KE DEN NGAY THANH LY
(M.AMORT_AMT - LD.REMAIN_VALUE) KHLK_NGAY_TL,
--M.BUY_PRICE - M.AMORTIZED_MONTH AS GTCL_NGAY_TL, -- GIA TRI CON LAI NGAY THANH LY
LD.REMAIN_VALUE GTCL_NGAY_TL,
LD.LIQ_PRICE GTTH, -- GIA TRI THU HOI
--(M.BUY_PRICE - M.AMORTIZED_MONTH - LD.LIQ_PRICE) AS LAI_LO, -- LAI~ HAY LO~
(LD.LIQ_PRICE - LD.REMAIN_VALUE) LAI_LO,
LD.LIQ_PRICE AS GT_TL,
L.BUY_COMPANY_ID -- DON VI MUA
from ASS_LIQUIDATION L
LEFT JOIN ASS_LIQUIDATION_DT LD ON L.LIQ_ID = LD.LIQ_ID
LEFT JOIN ASS_MASTER M ON LD.ASSET_ID = M.ASSET_ID
LEFT JOIN ASS_GROUP G ON M.GROUP_ID =G.GROUP_ID
-- SELECT * FROM ASS_LIQUIDATION
WHERE
(L.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '') AND -- ĐƠN VỊ THỰC HIỆN
(L.APPROVE_DT >= CONVERT(DATETIME, @p_FromDate, 103) OR @p_FromDate IS NULL OR @p_FromDate = '')
AND (L.APPROVE_DT <= CONVERT(DATETIME, @p_ToDate, 103) OR @p_ToDate IS NULL OR @p_ToDate = '')
AND (M.TYPE_ID = @p_ASSET_TYPE OR @p_ASSET_TYPE IS NULL OR @p_ASSET_TYPE = '')
AND (M.BUY_PRICE >= CONVERT(decimal(18),@p_PriceFrom) OR @p_PriceFrom IS NULL OR @p_PriceFrom = '')
AND (M.BUY_PRICE <= CONVERT(decimal(18),@p_PriceTo) OR @p_PriceTo IS NULL OR @p_PriceTo = '')
AND (M.SUP_ID = @p_SupplierId OR @p_SupplierId IS NULL OR @p_SupplierId = '')
AND (M.GROUP_ID = @p_ASSET_GROUP_ID OR @p_ASSET_GROUP_ID IS NULL OR @p_ASSET_GROUP_ID = '')
AND (M.EMP_ID = @p_User_ID OR @p_User_ID IS NULL OR @p_User_ID = '')
AND (L.MAKER_ID_KT = @p_GDV_ID OR @p_GDV_ID IS NULL OR @p_GDV_ID = '')
-- PHAN QUYEN
AND ((@p_LEVEL = 'ALL' AND M.BRANCH_ID IN (select BRANCH_ID from @tmp))
OR (@p_LEVEL = 'UNIT' AND M.BRANCH_ID = @p_BRANCH_ID) OR @p_BRANCH_ID = '' OR @p_BRANCH_ID IS NULL)
AND ((@p_LEVEL = 'ALL' AND M.BRANCH_ID IN (select BRANCH_ID from @tmp_login))
OR (@p_LEVEL = 'UNIT' AND M.BRANCH_ID = @p_BRANCH_LOGIN) OR @p_BRANCH_LOGIN = '' OR @p_BRANCH_LOGIN IS NULL
OR @p_BRANCH_ID IS NOT NULL OR @p_BRANCH_ID <> '')
-- vietpq hieu chinh URD 23/12/2019
AND (M.DEPT_ID = @p_DEP_ID OR @p_DEP_ID IS NULL OR @p_DEP_ID = '')
--@p_BRANCH_LOGIN varchar(15) = NULL,
--@p_LEVEL varchar(10) = 'ALL',
--@p_Branch_ID_Use varchar(15) = null ,-- don vi su dung
--@p_User_ID varchar(15) = null -- nguoi su dung
--SELECT TOP 2 * FROM ASS_MASTER
--SELECT * FROM ASS_LIQUIDATION
--SELECT * FROM ASS_LIQUIDATION_DT
--SELECT * FROM ASS_GROUP
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[fn_TON_KHO]'
GO
ALTER FUNCTION [dbo].[fn_TON_KHO](
@sp_Todate VARCHAR(20) = NULL,
@sp_DVSD VARCHAR(15) = NULL,
@sp_CCLD_Type varchar(15) = NULL,
@sp_Supplier varchar(15) = NULL,
@sp_BRANCH_ID VARCHAR(15) = NULL,
@sp_BRANCH_LOGIN VARCHAR(15) = NULL,
@sp_LEVEL VARCHAR(10) = 'ALL',
@sp_PriceFrom varchar(15) = Null,
@sp_PriceTo varchar(15) = null,
@sp_Dep_ID VARCHAR(15)= NULL
)
RETURNS @returnTable TABLE
(
STT DECIMAL(18,0),
ASSET_ID VARCHAR(15),
MA_CCLD VARCHAR(150),
TEN_CCLD nvarchar(200),
NGAY_NHAPKHO DATETIME,
NGAY_HACHTOAN DATETIME,
GIATRI NUMERIC(18,0),
SERIAL_NO nvarchar(1000),
GHI_CHU nvarchar(1000),
NHOM_CCLD_1 nvarchar(200),
NHOM_CCLD_2 nvarchar(200),
NHOM_CCLD_3 nvarchar(200),
NHOM_CCLD_4 nvarchar(200),
MA_NHOM_CCLD_1 VARCHAR(15),
MA_NHOM_CCLD_2 VARCHAR(15),
MA_NHOM_CCLD_3 VARCHAR(15),
MA_CHINHANH VARCHAR(15),
TEN_CHINHANH nvarchar(200),
BUY_DATE_KT DATETIME,
MA_CHI_NHANH_KHO VARCHAR(15),
TEN_CHI_NHANH_KHO nvarchar(200),
TEN_DON_VI_SD nvarchar(200),
UNIT_NAME_CCLD_3 NVARCHAR(100)
)
AS
BEGIN
declare @tmp table(BRANCH_ID varchar(15))
insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@sp_BRANCH_ID)
declare @tmp_login table(BRANCH_ID varchar(15))
insert into @tmp_login SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@sp_BRANCH_LOGIN)
--THIEUVQ 07/1/2014 THAY DOI LAY DS TS TON KHO
--declare @tmp table(MAKER_ID varchar(15))
--insert into @tmp SELECT TLNANME FROM TL_USER WHERE TLSUBBRID = @sp_BRANCH_ID
--declare @tmp_login table(MAKER_ID varchar(15))
--insert into @tmp_login SELECT TLNANME FROM TL_USER WHERE TLSUBBRID = @sp_BRANCH_LOGIN
declare @tmp_ALL table(MAKER_ID varchar(100))
insert into @tmp_ALL SELECT TLNANME FROM TL_USER WHERE TLSUBBRID IN (SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@sp_BRANCH_ID))
declare @tmp_login_ALL table(MAKER_ID varchar(100))
insert into @tmp_login_ALL SELECT TLNANME FROM TL_USER WHERE TLSUBBRID IN (SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@sp_BRANCH_LOGIN))
INSERT INTO @returnTable
SELECT
Row_number() over(order by A.ASSET_ID) AS STT,A.ASSET_ID,
A.ASSET_CODE MA_CCLD,
A.ASSET_NAME TEN_CCLD,
A.BUY_DATE NGAY_NHAPKHO,
A.BUY_DATE_KT NGAY_HACHTOAN,
A.BUY_PRICE GIATRI,
A.ASSET_SERIAL_NO SERIAL_NO,
--'' MA_CHINHANH,
A.NOTES GHI_CHU,
[dbo].[FN_GET_GROUPNAME](A.GROUP_ID,'1') AS NHOM_CCLD_1,
[dbo].[FN_GET_GROUPNAME](A.GROUP_ID,'2') AS NHOM_CCLD_2,
[dbo].[FN_GET_GROUPNAME](A.GROUP_ID,'3') AS NHOM_CCLD_3,
[dbo].[FN_GET_GROUPNAME](A.GROUP_ID,'4') AS NHOM_CCLD_4,
[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'1') AS MA_NHOM_CCLD_1,
[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'2') AS MA_NHOM_CCLD_2,
[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'3') AS MA_NHOM_CCLD_3,
CASE WHEN D.BRANCH_CODE IS NULL THEN
--(SELECT TOP 1 DEP_CODE FROM CM_DEPARTMENT WHERE DEP_ID = A.DEPT_ID )
C.BRANCH_CODE
WHEN C.BRANCH_TYPE = 'CN' THEN C.BRANCH_CODE
ELSE
D.BRANCH_CODE END AS MA_CHINHANH,
CASE WHEN D.BRANCH_CODE IS NULL --OR (C.BRANCH_TYPE <> 'PGD' AND C.IS_POTENTIAL = 'N')
THEN
--(SELECT TOP 1 DEP_NAME FROM CM_DEPARTMENT WHERE DEP_ID = A.DEPT_ID )
C.BRANCH_NAME
WHEN C.BRANCH_TYPE = 'CN' THEN C.BRANCH_NAME
ELSE
D.BRANCH_NAME END AS TEN_CHINHANH,
A.BUY_DATE_KT,
F.BRANCH_CODE AS MA_CHI_NHANH_KHO,
F.BRANCH_NAME AS TEN_CHI_NHANH_KHO,
F.BRANCH_NAME AS TEN_DON_VI_SD,
G.UNIT_NAME AS UNIT_NAME_CCLD_3
FROM ASS_MASTER A
LEFT JOIN ASS_GROUP B ON A.GROUP_ID = B.GROUP_ID
LEFT JOIN CM_UNIT G ON B.UNIT = G.UNIT_ID
--LEFT JOIN TL_USER MK ON MK.TLNANME = A.MAKER_ID
--LEFT JOIN CM_BRANCH C ON MK.TLSUBBRID = C.BRANCH_ID
LEFT JOIN CM_BRANCH C ON A.BRANCH_CREATE = C.BRANCH_ID
--LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_BRANCH D ON D.BRANCH_ID = C.FATHER_ID
LEFT JOIN CM_EMPLOYEE E ON A.EMP_ID = E.EMP_ID
LEFT JOIN CM_BRANCH F ON A.BRANCH_CREATE=F.BRANCH_ID
LEFT JOIN dbo.CM_BRANCH BR ON A.BRANCH_ID = BR.BRANCH_ID
WHERE A.RECORD_STATUS = '1' AND A.AUTH_STATUS = 'A'
AND (A.TYPE_ID = 'CCLD')
AND A.ENTRY_BOOKED = 'N'
AND ( A.BUY_DATE_KT <= CONVERT(datetime, @sp_Todate, 103) OR @sp_Todate IS NULL OR @sp_Todate = '')
AND ( A.USE_DATE_KT > CONVERT(datetime, @sp_Todate, 103) OR @sp_Todate IS NULL OR @sp_Todate = ''
OR (A.USE_DATE_KT IS NULL AND A.AMORT_STATUS <> 'DTL'))
---- NGAY NHAP MOI
--AND (A.AMORT_STATUS = 'VNM' OR A.USE_STATUS = 'TH') --THIEUVQ 23062015
--AND ((A.BUY_DATE_KT <= CONVERT(datetime, @sp_Todate, 103) OR @sp_Todate IS NULL OR @sp_Todate = '')
--OR (A.BUY_DATE_KT IS NULL AND A.BUY_DATE<= CONVERT(datetime, @sp_Todate, 103) OR @sp_Todate IS NULL OR @sp_Todate = ''))
--AND A.ENTRY_BOOKED = 'Y'
-- DVSD
--AND (A.BRANCH_ID = @sp_DVSD OR @sp_DVSD IS NULL OR @sp_DVSD = '')
-- NHOM TAI SAN
AND (A.GROUP_ID = @sp_CCLD_Type OR @sp_CCLD_Type IS NULL OR @sp_CCLD_Type = '')
-- NHA CUNG CAP
AND (A.SUP_ID = @sp_Supplier OR @sp_Supplier IS NULL OR @sp_Supplier = '')
-- NGUYEN GIA
AND (A.BUY_PRICE >= CONVERT(decimal(18), @sp_PriceFrom) OR @sp_PriceFrom IS NULL OR @sp_PriceFrom = '0' )
AND (A.BUY_PRICE <= CONVERT(decimal(18), @sp_PriceTo) OR @sp_PriceTo IS NULL OR @sp_PriceTo = '0' )
-- PHONG BAN
AND (A.DEPT_ID = @sp_Dep_ID OR @sp_Dep_ID IS NULL OR @sp_Dep_ID = '')
-- CCLD TON KHO
--AND (A.USE_DATE IS NULL OR A.USE_DATE = '')
--AND (A.AMORT_STATUS <> 'DTL' )
--AND (
--((A.AMORT_STATUS = 'VNM' AND ((@sp_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp))
-- OR (@sp_LEVEL = 'UNIT' AND A.BRANCH_ID = @sp_BRANCH_ID)))
-- OR
--(A.AMORT_STATUS = 'VNM' AND ((@sp_LEVEL = 'ALL' AND MK.TLSUBBRID IN (SELECT BRANCH_ID from @tmp))
-- OR (@sp_LEVEL = 'UNIT' AND MK.TLSUBBRID = @sp_BRANCH_ID)))) OR @sp_BRANCH_ID IS NULL OR @sp_BRANCH_ID = ''
--)
--AND (
--((A.AMORT_STATUS = 'VNM' AND ((@sp_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp))
-- OR (@sp_LEVEL = 'UNIT' AND A.BRANCH_ID = @sp_BRANCH_LOGIN)))
-- OR
--(A.AMORT_STATUS = 'VNM' AND ((@sp_LEVEL = 'ALL' AND MK.TLSUBBRID IN (SELECT BRANCH_ID from @tmp))
-- OR (@sp_LEVEL = 'UNIT' AND MK.TLSUBBRID = @sp_BRANCH_LOGIN)))) OR @sp_BRANCH_LOGIN IS NULL OR @sp_BRANCH_LOGIN = ''
--)
--AND (A.AMORT_STATUS = 'VNM' )
--AND ((@sp_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp))
--OR (@sp_LEVEL = 'UNIT' AND A.BRANCH_ID = @sp_BRANCH_ID) OR @sp_BRANCH_ID = '' OR @sp_BRANCH_ID IS NULL)
--AND ((@sp_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_login))
--OR (@sp_LEVEL = 'UNIT' AND A.BRANCH_ID = @sp_BRANCH_LOGIN) OR @sp_BRANCH_LOGIN = '' OR @sp_BRANCH_LOGIN IS NULL
--OR @sp_BRANCH_ID IS NOT NULL OR @sp_BRANCH_ID <> '')
AND ((@sp_LEVEL = 'ALL' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID from @tmp))
OR (@sp_LEVEL = 'UNIT' AND A.BRANCH_CREATE = @sp_BRANCH_ID) OR @sp_BRANCH_ID = '' OR @sp_BRANCH_ID IS NULL)
AND ((@sp_LEVEL = 'ALL' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID from @tmp_login))
OR (@sp_LEVEL = 'UNIT' AND A.BRANCH_CREATE = @sp_BRANCH_LOGIN) OR @sp_BRANCH_LOGIN = '' OR @sp_BRANCH_LOGIN IS NULL
OR @sp_BRANCH_ID IS NOT NULL OR @sp_BRANCH_ID <> '')
--AND ((@sp_LEVEL = 'ALL' AND A.MAKER_ID IN (SELECT MAKER_ID from @tmp_ALL))
--OR (@sp_LEVEL = 'UNIT' AND A.MAKER_ID IN (SELECT MAKER_ID from @tmp)) OR @sp_BRANCH_ID = '' OR @sp_BRANCH_ID IS NULL)
--AND ((@sp_LEVEL = 'ALL' AND A.MAKER_ID IN (SELECT MAKER_ID from @tmp_login_ALL))
--OR (@sp_LEVEL = 'UNIT' AND A.MAKER_ID IN (SELECT MAKER_ID from @tmp_login_ALL)) OR @sp_BRANCH_LOGIN = '' OR @sp_BRANCH_LOGIN IS NULL )
ORDER BY STT
RETURN;
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_UPDATE_Ins]'
GO
/*
[ASS_UPDATE_Ins] 'ASS000000000183','ASG000000000013',N'Máy tính bộ HP sửa','','',
null,null,'1','U','admin','06/11/2013','admin','06/11/2013'
*/
ALTER PROCEDURE [dbo].[ASS_UPDATE_Ins]
@p_ASSET_ID varchar(15) = NULL,
@p_GROUP_ID varchar(15) = NULL,
@p_ASSET_NAME nvarchar(1000) = NULL,
@p_ASSET_SERIAL_NO nvarchar(100) = NULL,
@p_ASSET_DESC nvarchar(max) = NULL,
@p_BUY_PRICE decimal(18) = NULL,
@p_AMORT_AMT decimal(18) = NULL,
@p_AMORT_MONTH decimal(18,2) = NULL,
@p_RECORD_STATUS varchar(1) = NULL,
@p_NOTES nvarchar(1000) = 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_CORE_NOTE nvarchar(500) = NULL,
@p_BRANCH_ID VARCHAR(15) = NULL,
@p_EXT_VALUE decimal(18) = NULL,
@p_ACCOUNT_GL VARCHAR(50)
AS
DECLARE @l_UPDATE_ID VARCHAR(15)
declare @l_Amortized_AMT decimal(18,0)
declare @l_AMORTSTATUS varchar(15)
declare @l_TYPE_ID varchar(15)
--Lay thong tin tai san hien tai
select @l_Amortized_AMT = AMORTIZED_AMT, @l_AMORTSTATUS = AMORT_STATUS, @l_TYPE_ID = a.TYPE_ID
from ASS_MASTER a
where a.ASSET_ID = @p_ASSET_ID
--Validation is here
DECLARE @ERRORSYS NVARCHAR(15) = ''
/***** Nguyen gia moi khong duoc nho hon gia tri da khau hao ***********/
IF (@l_Amortized_AMT > @p_AMORT_AMT AND @l_AMORTSTATUS IN ('CKH', 'DKH', 'DPB', 'VNM'))
SET @ERRORSYS = 'ASS-00014'
IF EXISTS(SELECT 1 FROM ASS_MASTER A WHERE A.ASSET_ID = @p_ASSET_ID AND A.AMORT_STATUS='DTL')
SET @ERRORSYS = 'ASS-00017'
IF @ERRORSYS <> ''
BEGIN
SELECT ErrorCode Result, '' UPDATE_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
RETURN '0'
END
--Check nếu là CCLD thì không cho cập nhật
IF @l_TYPE_ID = 'CCLD'
BEGIN
SELECT '-1' Result, '' UPDATE_ID, N'Không thế cập nhật thông tin tài sản nhóm CCLD' ErrorDesc
RETURN '-1'
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---------------
EXEC SYS_CodeMasters_Gen 'ASS_UPDATE', @l_UPDATE_ID out
IF @l_UPDATE_ID='' OR @l_UPDATE_ID IS NULL GOTO ABORT
INSERT INTO ASS_UPDATE
(
[UPDATE_ID],
[ASSET_ID],
[GROUP_ID],
[ASSET_NAME],
[ASSET_SERIAL_NO],
[ASSET_DESC],
[BUY_PRICE],
[AMORT_AMT],
[AMORT_MONTH],
[RECORD_STATUS],
[NOTES],
[AUTH_STATUS],
[MAKER_ID],
[CREATE_DT],
[CHECKER_ID],
[APPROVE_DT],
[CORE_NOTE],
[BRANCH_ID],
[EXT_VALUE],
[ACCOUNT_GL]
)
VALUES
(
@l_UPDATE_ID ,
@p_ASSET_ID ,
@p_GROUP_ID ,
@p_ASSET_NAME ,
@p_ASSET_SERIAL_NO ,
@p_ASSET_DESC ,
@p_BUY_PRICE ,
@p_AMORT_AMT ,
@p_AMORT_MONTH,
@p_RECORD_STATUS ,
@p_NOTES,
'E' ,
@p_MAKER_ID ,
CONVERT(DATETIME, @p_CREATE_DT, 103) ,
@p_CHECKER_ID ,
--CONVERT(DATETIME, @p_APPROVE_DT, 103) ,
NULL,
@p_CORE_NOTE,
@p_BRANCH_ID,
@p_EXT_VALUE,
@p_ACCOUNT_GL
)
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @l_UPDATE_ID, -- REQ_ID - varchar(15)
'INSERT', -- PROCESS_ID - varchar(10)
@p_MAKER_ID, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
N'Thêm mới phiếu cập nhật tài sản thành công' ,
N'Thêm mới phiếu cập nhật tài sản' -- PROCESS_DESC - nvarchar(1000)
)
IF @@Error <> 0 GOTO ABORT
COMMIT TRANSACTION
SELECT '0' as Result, @l_UPDATE_ID UPDATE_ID, '' ErrorDesc
RETURN '0'
ABORT:
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' UPDATE_ID, '' ErrorDesc
RETURN '-1'
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_LIQUIDDETAIL_BVB_ById]'
GO
ALTER PROCEDURE [dbo].[ASS_LIQUIDDETAIL_BVB_ById]
@p_LIQ_ID varchar(15) = NULL
AS
BEGIN
SELECT A.LIQDT_ID,A.LIQ_ID,A.ASSET_ID,A.LIQ_PRICE,A.LIQ_TYPE,A.AUTH_STATUS,A.MAKER_ID, A.NOTE,
A.CREATE_DT,A.CHECKER_ID,A.APPROVE_DT, B.ASSET_NAME, B.ASSET_CODE, B.BUY_PRICE,
A.REMAIN_AMORTIZED_AMT, A.BUY_PRICE, A.BUY_PRICE_LIQ, A.REMAIN_VALUE, A.LIQ_AMT,
-- CASE
-- WHEN A.ASS_STATUS IS NOT NULL AND A.ASS_STATUS <> '' THEN ASS.STATUS_NAME
-- ELSE ASS2.STATUS_NAME
-- END AS ASS_STATUS_NAME, --Tinh trang tai san
ASS.STATUS_NAME AS ASS_STATUS_NAME,
B.ASS_STATUS_DESC, B.AMORT_STATUS,
-- CASE
-- WHEN A.AMORT_STATUS IS NULL OR A.AMORT_STATUS = '' THEN AAS.STATUS_NAME
-- ELSE AAS2.STATUS_NAME
-- END AS AMORT_STATUS_NAME, -- Trang thai khau hao
AAS.STATUS_NAME AS AMORT_STATUS_NAME,
CB.BRANCH_NAME AS BRANCH_NAME_USE, CB.BRANCH_ID AS BRANCH_ID_USE,
CD.DEP_NAME AS DEPT_NAME_USE, CD.DEP_ID AS DEPT_ID_USE
, AZ.LIST_LIQ_REQUEST
, A.LIQ_REQ_ID,
CASE WHEN A.ASS_AMORTIZED_MONTH IS NULL THEN ISNULL(B.AMORTIZED_MONTH,0) ELSE ISNULL(A.ASS_AMORTIZED_MONTH,0) END ASS_AMORTIZED_MONTH,
CASE WHEN A.ASS_AMORTIZED_AMT IS NULL THEN ISNULL(B.AMORTIZED_AMT,0) ELSE ISNULL(A.ASS_AMORTIZED_AMT,0) END ASS_AMORTIZED_AMT
, CASE WHEN A.LIQ_VAT IS NULL THEN 0 ELSE A.LIQ_VAT END AS LIQ_VAT
, CASE WHEN A.LIQ_VAT IS NULL THEN 0 ELSE A.LIQ_PRICE_VAT END AS LIQ_PRICE_VAT
,A.REQ_AMT
-- ,A.REQ_AMT - ISNULL(A.LIQ_PRICE_VAT, 0) AS LIQ_AMT_BE_VAT
, A.LIQ_AMT_BE_VAT
,A.LIQ_REASON
FROM ASS_LIQUIDATION_DT A
LEFT JOIN ASS_MASTER B ON A.ASSET_ID=B.ASSET_ID
LEFT JOIN ASS_AMORT_STATUS AAS ON AAS.STATUS_CODE = B.AMORT_STATUS
LEFT JOIN ASS_STATUS ASS ON B.ASS_STATUS = ASS.STATUS_ID
--LEFT JOIN ASS_AMORT_STATUS AAS2 ON AAS.STATUS_CODE = A.AMORT_STATUS
--LEFT JOIN ASS_STATUS ASS2 ON A.ASS_STATUS = ASS.STATUS_ID
LEFT JOIN CM_BRANCH CB ON A.BRANCH_ID_USE = CB.BRANCH_ID
LEFT JOIN CM_DEPARTMENT CD ON CD.DEP_ID = A.DEP_ID_USE
LEFT JOIN ASS_LIQUIDATION AZ ON A.LIQ_ID = AZ.LIQ_ID
WHERE 1 = 1 AND A.LIQ_ID = @p_LIQ_ID
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_AMORT_StartDO]'
GO
ALTER PROCEDURE [dbo].[ASS_AMORT_StartDO]
@p_EXECUTE_DATE varchar(50) = NULL, --Mac dinh la ngay hien tai cua he thong, duoc truyen tu UI
@p_MAKER_ID varchar(100) = NULL,
@p_CHECKER_ID varchar(15) = NULL,
@p_ASSET_TYPE VARCHAR(15) = NULL,
@p_BRANCH_ID_LST XML = NULL,
@p_EXEC_TYPE VARCHAR(50) = 'EXECUTE'
AS
BEGIN TRY
SET @p_MAKER_ID='QLTS'
SET @p_CHECKER_ID='QLTS'
--GHI LOG
DECLARE @DISTANCE_TIME INT = NULL,
@DISTANCE_TYPE VARCHAR(20) = NULL,
@TOOL_NAME NVARCHAR(1000) = NULL,
@TOOL_VALUE VARCHAR(100) = NULL,
@EXEC_DT DATETIME = NULL,
@MESSAGE NVARCHAR(1000) = NULL
SELECT @DISTANCE_TIME = TIME_SEND
,@DISTANCE_TYPE = TIME_SEND_TYPE
,@TOOL_NAME = TIME_CONTENT
,@TOOL_VALUE = TIME_VALUE
FROM THREAD_TIME_SEND
WHERE TIME_VALUE = 'KH'
declare @l_AMORT_ID varchar(15), @l_AMORTDT_ID varchar(15)
declare @l_LAST_AMORT_ID varchar(15) = NULL
declare @l_AMORT_TERM nvarchar(50) = ''
declare @l_ASSET_ID varchar(15)
declare @l_AMORTIZED_AMT decimal(18,0)
declare @l_AMORTIZED_MONTH int
declare @l_AMORT_AMT decimal(18,0)
declare @l_AMORT_MONTH decimal(18,2)
declare @l_AMORT_END_DATE datetime, @l_AMORT_START_DATE datetime
declare @l_FIRST_AMORT_AMT decimal(18,0), @l_MONTHLY_AMORT_AMT decimal(18,0)
declare @l_BRANCH_ID varchar(15)
declare @l_DEP_ID varchar(15)
declare @l_BRANCH_ID_DO varchar(15) = NULL, @l_BRANCH_TYPE_DO VARCHAR(15)
declare @l_CURR_AMORT_AMT decimal(18,0)
declare @l_TOTAL_AMT decimal(18,0)
declare @l_CURR_AMORT_STATUS nvarchar(100)
declare @l_DESC nvarchar(1000)
DECLARE @ERRORSYS NVARCHAR(15) = ''
DECLARE @LST_BRANCH TABLE ( BRANCHID VARCHAR(15), BRANCHCODE VARCHAR(15))
-- khai báo phần chạy khấu hao
DECLARE @l_AMT_OVER DECIMAL(18,0), @l_AMT_AMORT DECIMAL(18,0)
DECLARE @l_EXP_GL varchar(50)
, @l_AMORT_GL varchar(50)
, @l_GROUP_ID varchar(15)
, @l_ET_ID varchar(15)
, @sToday varchar(10)
, @l_TRN_REF_NO varchar(20) = NULL
, @l_DO_BRANCH_ID varchar(15)= NULL
, @l_TYPE_ID varchar(15) = NULL
, @l_DR_BRN_ID varchar(15)
, @l_CR_BRN_ID varchar(15)
, @l_HO_BRN_ID varchar(15)
, @l_ASSET_TYPE_DO varchar(15)
, @l_ASSET_TYPE VARCHAR(15)
, @l_DESC_CORE nvarchar(200)
BEGIN TRANSACTION
SET @sToday = convert(varchar(10), getdate(), 103)
SET @l_AMT_OVER = 0
-- start cusor loại tài sản
DECLARE cur CURSOR FOR
SELECT TRIM(TYPE_ID) AS ASSET_TYPE FROM ASS_TYPE
OPEN cur
FETCH NEXT FROM cur INTO @p_ASSET_TYPE
WHILE @@FETCH_STATUS = 0
BEGIN
-- start cusor loại tài sản
--Thieuvq Them gia tri mac dinh
--
declare @l_AmortIdDefault varchar(100) = '',@l_AMORTTERMDefault varchar(100) = '',
@l_TOTALAMTDefault decimal (18,2) = 0,@l_PROCESSSTATUSDefault varchar(100) = '',
@l_ExecDateDefault datetime = null, @l_StatusNameDef varchar(100) = '', @l_NotesDef varchar(100) = ''
--
declare @sExecDT datetime = convert(datetime, @p_EXECUTE_DATE, 103)
select @l_LAST_AMORT_ID = AMORT_ID
FROM ASS_AMORT
WHERE IS_LEAF = 'Y'
SET @l_AMORT_TERM = convert(varchar(2), datepart(month, @sExecDT)) + '/' + convert(varchar(4), datepart(year, @sExecDT))
--THIEUVQ 29092016 - BO DIEU KIEN KHONG CHO PGD CHAY PHAN BO
--SELECT @l_BRANCH_TYPE_DO = BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @l_BRANCH_ID_DO
SET @l_BRANCH_TYPE_DO='HS'
-- /******** kiem tra giao dich chua duyet **********************/
-- IF @p_ASSET_TYPE = 'TSCD'
-- BEGIN
-- IF EXISTS(SELECT 1 FROM ASS_PENDING_ITEM A WHERE A.AUTH_STATUS = 'U' AND TYPE_ID = 'TSCD')--THIEUVQ THEM DIEU KIEN KIEM TRA THEO DON VI
-- BEGIN
-- SET @ERRORSYS = 'ASS-AMR-0002'
-- GOTO THROW_ERR
-- END
-- END
-- ELSE
-- BEGIN
-- IF EXISTS(SELECT 1 FROM ASS_PENDING_ITEM A WHERE A.AUTH_STATUS = 'U' AND TYPE_ID = 'CCLD' AND TRAN_TYPE NOT IN ('ASS_ADDNEW','ASS_USE')
-- AND (BRANCH_CREATE = @l_BRANCH_ID_DO
-- OR (@l_BRANCH_TYPE_DO = 'CN'
-- --AND BRANCH_CREATE IN (SELECT * FROM [dbo].[CM_BRANCH_GETCHILDID](@l_BRANCH_ID_DO)))))--THIEUVQ THEM DIEU KIEN KIEM TRA THEO DON VI
-- AND BRANCH_CREATE IN (SELECT BRANCHID FROM @LST_BRANCH))))--THIEUVQ 29092016 - SUA DIEU KIEN PGD THUOC DANH SACH DA CHON
--
-- BEGIN
-- SET @ERRORSYS = 'ASS-AMR-0002'
-- GOTO THROW_ERR
-- END
-- END
--
/*******KIEM TRA KY KHAU HAO DA TRONG THANG DA DUOC TAO HAY CHUA******/
IF @p_ASSET_TYPE = 'TSCD'
BEGIN
IF EXISTS(SELECT 1 FROM ASS_AMORT A WHERE MONTH(A.EXECUTE_DT) = MONTH(@sExecDT) AND YEAR(A.EXECUTE_DT) = YEAR(@sExecDT)
AND ASSET_TYPE = 'TSCD')
BEGIN
SET @ERRORSYS = 'ASS-AMR-0001'
GOTO THROW_ERR
END
END
ELSE
BEGIN
IF EXISTS(SELECT 1 FROM ASS_AMORT A WHERE MONTH(A.EXECUTE_DT) = MONTH(@sExecDT) AND YEAR(A.EXECUTE_DT) = YEAR(@sExecDT)
AND ASSET_TYPE = 'CCLD' AND BRANCH_ID = @l_BRANCH_ID_DO)--THIEUVQ THEM DIEU KIEN KIEM TRA THEO LOAI TAI SAN
BEGIN
SET @ERRORSYS = 'ASS-AMR-0006'
GOTO THROW_ERR
END
END
IF EXISTS(SELECT *
FROM ASS_GROUP A
WHERE 1=1
AND A.IS_LEAF='Y'
AND ISNULL(A.ASSET_ACCTNO,'') = ''
AND ISNULL(A.AMORT_ACCTNO,'') = ''
AND ISNULL(A.EXP_ACCTNO,'') = ''
AND ISNULL(A.INC_ACCTNO,'') = ''
AND ISNULL(A.LIQ_ACCTNO,'') = ''
AND A.TYPE_ID = @p_ASSET_TYPE)
BEGIN
SET @ERRORSYS = 'ASS-AMR-0003'
GOTO THROW_ERR
END
THROW_ERR:
IF @ERRORSYS <> ''
BEGIN
CLOSE cur
DEALLOCATE cur
SELECT ErrorCode Result, ErrorDesc ErrorDesc, @l_AmortIdDefault as AMORT_ID, @l_AMORTTERMDefault as AMORT_TERM,
@l_TOTALAMTDefault as TOTAL_AMT, @l_PROCESSSTATUSDefault as PROCESS_STATUS ,@l_StatusNameDef as STATUS_NAME,
@l_ExecDateDefault AS EXECUTE_DT,@l_NotesDef AS NOTES
FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
SELECT @MESSAGE = ErrorDesc
FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
IF @@TRANCOUNT>0 ROLLBACK TRANSACTION
--GHI LOG
INSERT INTO THREAD_TIME_SEND_LOG (DISTANCE_TIME, DISTANCE_TYPE, TOOL_NAME, TOOL_VALUE, EXEC_DT, EXEC_TYPE, MESSAGE, CREATE_DT)
VALUES (@DISTANCE_TIME,@DISTANCE_TYPE, @TOOL_NAME, @TOOL_VALUE, CONVERT(DATETIME,@p_EXECUTE_DATE,103),@p_EXEC_TYPE, @MESSAGE, GETDATE());
RETURN '0'
END
--oepn cursor
declare pCur cursor for
SELECT A.ASSET_ID, A.AMORTIZED_AMT, A.AMORTIZED_MONTH,
A.AMORT_AMT, A.AMORT_MONTH, A.AMORT_END_DATE, A.AMORT_START_DATE,
A.FIRST_AMORT_AMT, A.MONTHLY_AMORT_AMT, A.BRANCH_ID, A.DEPT_ID, ISNULL(A.REF_GROUP_ID,A.GROUP_ID)
FROM ASS_MASTER A
WHERE A.AMORT_STATUS IN ('CKH','DKH')
AND convert(date, A.AMORT_START_DATE) <= convert(date, @sExecDT)
AND A.AMORTIZED_AMT < A.AMORT_AMT
AND A.RECORD_STATUS = '1'
AND A.AUTH_STATUS = 'A'
AND A.TYPE_ID = @p_ASSET_TYPE--THIEUVQ
open pCur
--Update ky khau hao truoc khong con la nut la
IF @l_LAST_AMORT_ID IS NOT NULL
BEGIN
UPDATE ASS_AMORT
SET IS_LEAF = 'N'
WHERE AMORT_ID = @l_LAST_AMORT_ID
END
--set dien giai
IF @p_ASSET_TYPE = 'TSCD'
SET @l_DESC = N'Khấu hao kỳ ' + @l_AMORT_TERM
ELSE
SET @l_DESC = N'Phân bổ kỳ ' + @l_AMORT_TERM
--Insert ky khau hao moi
EXEC SYS_CodeMasters_Gen 'ASS_AMORT', @l_AMORT_ID out
INSERT INTO ASS_AMORT
(
AMORT_ID,
AMORT_TERM,
EXECUTE_DT,
TOTAL_AMT,
IS_LEAF,
PARENT_ID,
NOTES,
PROCESS_STATUS,
[RECORD_STATUS],
[MAKER_ID],
[CREATE_DT],
[AUTH_STATUS],
[CHECKER_ID],
[APPROVE_DT],
[BRANCH_ID],
[ASSET_TYPE]
)
VALUES
(
@l_AMORT_ID,
@l_AMORT_TERM,
CONVERT(datetime, @p_EXECUTE_DATE, 103),
0,
'Y',
@l_LAST_AMORT_ID,
@l_DESC,--N'Khấu hao kỳ ' + @l_AMORT_TERM,
'P', --Pending cho chay khau hao
'1',
@p_MAKER_ID,
GETDATE(),
'A',
@p_CHECKER_ID,
GETDATE(),
@l_BRANCH_ID_DO,
@p_ASSET_TYPE
)
SET @l_TOTAL_AMT = 0
--Tinh khau hao cho tung tai san
FETCH NEXT FROM pCur INTO @l_ASSET_ID, @l_AMORTIZED_AMT, @l_AMORTIZED_MONTH,
@l_AMORT_AMT, @l_AMORT_MONTH, @l_AMORT_END_DATE, @l_AMORT_START_DATE,
@l_FIRST_AMORT_AMT, @l_MONTHLY_AMORT_AMT, @l_BRANCH_ID, @l_DEP_ID, @l_GROUP_ID
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@l_AMORTIZED_MONTH = 0) --Khau hao thang dau tien
BEGIN
SET @l_CURR_AMORT_AMT = @l_FIRST_AMORT_AMT
IF(@l_AMORTIZED_AMT>0)
SET @l_CURR_AMORT_AMT =@l_MONTHLY_AMORT_AMT
--SET @l_CURR_AMORT_STATUS = 'DKH'
END
ELSE IF dbo.FN_GetLastDayOfMonth(@sExecDT) = dbo.FN_GetLastDayOfMonth(@l_AMORT_END_DATE) --Ky khau hao cuoi cung
BEGIN
IF(@l_AMORT_AMT - @l_AMORTIZED_AMT > @l_MONTHLY_AMORT_AMT )
SET @l_CURR_AMORT_AMT =@l_MONTHLY_AMORT_AMT
ELSE
SET @l_CURR_AMORT_AMT = @l_AMORT_AMT - @l_AMORTIZED_AMT
--SET @l_CURR_AMORT_STATUS = 'KHX'
print 'last amort' + @l_ASSET_ID
END
ELSE --tai san dang khau hao binh thuong
BEGIN
SET @l_CURR_AMORT_AMT = @l_MONTHLY_AMORT_AMT
--SET @l_CURR_AMORT_STATUS = 'DKH'
--THIEUVQ THEM DK KHONG KHAU HAO AM 13112017
IF (@l_AMORTIZED_AMT + @l_CURR_AMORT_AMT) > @l_AMORT_AMT
SET @l_CURR_AMORT_AMT = @l_AMORT_AMT - @l_AMORTIZED_AMT
END
--Insert to bang ASS_AMORT_DT
EXEC SYS_CodeMasters_Gen 'ASS_AMORT_DT', @l_AMORTDT_ID out
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_AMORTDT_ID,
@l_AMORT_ID,
@sExecDT,
'C',
@l_BRANCH_ID,
@l_DEP_ID,
@l_ASSET_ID,
@l_CURR_AMORT_AMT,
NULL, --Khong chay khau hao theo group
'0',
'AMORT',
@l_DESC
)
SET @l_TOTAL_AMT = @l_TOTAL_AMT + @l_CURR_AMORT_AMT
------------- BẮT ĐẦU CHẠY KHẤU HAO TÀI SẢN----------------
-- lấy thông tin nhóm tài sản
DECLARE @goupxe TABLE (
GROUP_ID VARCHAR(25)
)
INSERT INTO @goupxe
SELECT
ag.GROUP_ID
FROM ASS_GROUP ag
WHERE ag.PARENT_ID = 'ASG000000000151'
SELECT @l_EXP_GL = G.EXP_ACCTNO, @l_AMORT_GL = G.AMORT_ACCTNO, @l_TYPE_ID = G.[TYPE_ID]
FROM ASS_GROUP G
WHERE G.GROUP_ID = @l_GROUP_ID
IF @@ERROR<>0 GOTO ABORT
DECLARE @l_MONTHLY_AMT DECIMAL(18,0), @l_AM_AMORT_AMT DECIMAL(18,0)
SELECT @l_AM_AMORT_AMT = AM.AMORT_AMT FROM ASS_MASTER AM WHERE AM.ASSET_ID = @l_ASSET_ID
IF (@l_AM_AMORT_AMT > 1600000000 AND EXISTS (SELECT GROUP_ID FROM @goupxe WHERE GROUP_ID = @l_GROUP_ID))
BEGIN
PRINT 1
SET @l_MONTHLY_AMT = ROUND(1600000000 / @l_AMORT_MONTH, 0)
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_AMT_AMORT = 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_AMT_AMORT = @l_MONTHLY_AMT
END
IF (@l_AMORTIZED_MONTH = 0) --Khau hao thang dau tien
BEGIN
SET @l_CURR_AMORT_STATUS = 'DKH'
IF (@l_AM_AMORT_AMT > 1600000000
AND EXISTS (SELECT
GROUP_ID
FROM @goupxe
WHERE GROUP_ID = @l_GROUP_ID)
)
BEGIN
SET @l_AMT_OVER = @l_CURR_AMORT_AMT - @l_AMT_AMORT
END
END
ELSE
IF dbo.FN_GetLastDayOfMonth(@sExecDT) = dbo.FN_GetLastDayOfMonth(@l_AMORT_END_DATE) --Ky khau hao cuoi cung
BEGIN
--SET @l_CURR_AMORT_AMT = @l_AMORT_AMT - @l_AMORTIZED_AMT
SET @l_CURR_AMORT_STATUS = 'KHX'
IF (@l_AM_AMORT_AMT > 1600000000
AND EXISTS (SELECT
GROUP_ID
FROM @goupxe
WHERE GROUP_ID = @l_GROUP_ID)
)
BEGIN
SET @l_AMT_OVER = @l_CURR_AMORT_AMT - (1600000000 - (@l_AMT_AMORT + (@l_MONTHLY_AMT * (@l_AMORT_MONTH - 2))))
END
END
ELSE --tai san dang khau hao binh thuong
BEGIN
SET @l_CURR_AMORT_STATUS = 'DKH'
IF (@l_AM_AMORT_AMT > 1600000000
AND EXISTS (SELECT
GROUP_ID
FROM @goupxe
WHERE GROUP_ID = @l_GROUP_ID)
)
BEGIN
SET @l_AMT_OVER = @l_CURR_AMORT_AMT - @l_MONTHLY_AMT
END
END
IF(@l_AMORT_AMT - @l_AMORTIZED_AMT>0)
SET @l_CURR_AMORT_STATUS = 'DKH'
--BRN_ID HOI SO
SELECT @l_HO_BRN_ID = BRANCH_ID FROM CM_BRANCH A WHERE A.BRANCH_TYPE = 'HS'
--Insert vao bang dbo.ASS_ENTRIES_POST
EXEC ASS_TRN_REF_NO_Gen @p_ASSET_TYPE, @sToday, @l_TRN_REF_NO out
IF @l_BRANCH_ID = @l_HO_BRN_ID
BEGIN
SET @l_DR_BRN_ID = @l_DEP_ID
END
ELSE
BEGIN
SET @l_DR_BRN_ID = @l_BRANCH_ID
END
--thieuvq dien giai hach toan khau hao
IF @p_ASSET_TYPE = 'TSCD'
BEGIN
SET @l_DESC_CORE = 'KHAU HAO TSCD KY ' + @l_AMORT_TERM
SET @l_CR_BRN_ID = @l_HO_BRN_ID
END
ELSE
BEGIN
SET @l_DESC_CORE = 'PHAN BO CHI PHI CCLD KY ' + @l_AMORT_TERM
SET @l_CR_BRN_ID = @l_BRANCH_ID
END
DECLARE @l_BRANCH_CODE VARCHAR(25), @l_ASSET_CODE VARCHAR(25),@l_ETP_ID VARCHAR(25),@DEP_CODE VARCHAR(25)
SET @l_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_BRANCH_ID)
SET @l_ASSET_CODE =(SELECT am.ASSET_CODE FROM ASS_MASTER am WHERE am.ASSET_ID=@l_ASSET_ID)
SET @l_AMORTIZED_AMT =(SELECT am.AMORTIZED_AMT FROM ASS_MASTER am WHERE am.ASSET_ID=@l_ASSET_ID)
SET @DEP_CODE= (SELECT cd.DEP_CODE FROM CM_DEPARTMENT cd WHERE cd.DEP_ID=@l_DEP_ID)
DECLARE @LST_COST_SHARE TABLE (
ASSET_ID VARCHAR(20),
BRANCH_ID VARCHAR(20),
DEP_ID VARCHAR(20),
COST_AMOUNT DECIMAL(18,0)
)
INSERT INTO @LST_COST_SHARE (ASSET_ID, BRANCH_ID, DEP_ID, COST_AMOUNT)
SELECT aca.ASSET_ID,acad.BRANCH_ID,acad.DEPT_ID,acad.COST_AMOUNT FROM ASS_COST_ALLOCATION aca
LEFT JOIN ASS_COST_ALLOC_DT acad ON aca.COS_ID = acad.COS_ID
WHERE aca.RECORD_STATUS=1 AND aca.AUTH_STATUS='A' AND aca.ASSET_ID=@l_ASSET_ID
IF (@l_CURR_AMORT_AMT > 0)
BEGIN
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST'
,@l_ET_ID OUT
IF @l_ET_ID = ''
OR @l_ET_ID IS NULL
GOTO ABORT
INSERT INTO ASS_ENTRIES_POST (ET_ID, REF_NO, ASSET_ID, TRN_TYPE, REF_ID, DO_BRN, CR_ACCT, CR_BRN, DR_ACCT, DR_BRN, AMT, EXP_TO_CORE, TRN_DATE, TRN_DESC, MAKER_ID, CHECKER_ID)
VALUES (@l_ET_ID, @l_TRN_REF_NO, @l_ASSET_ID, 'AMORT', @l_AMORTDT_ID, @l_DO_BRANCH_ID, dbo.FN_REPLACE_ACCTNO(@l_AMORT_GL, @l_CR_BRN_ID), @l_CR_BRN_ID, @l_EXP_GL, @l_DR_BRN_ID, @l_CURR_AMORT_AMT - @l_AMT_OVER, 'Y', @sExecDT, @l_DESC_CORE, @p_MAKER_ID, @p_CHECKER_ID)
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, @l_AMORTDT_ID, @l_BRANCH_CODE, @l_AMORT_GL, 'VND', 'C', @l_CURR_AMORT_AMT - @l_AMT_OVER, 1, @l_AMORT_AMT - @l_AMT_OVER, @l_ASSET_CODE, @sExecDT, @p_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_DESC_CORE);
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, @l_AMORTDT_ID, @l_BRANCH_CODE, @l_EXP_GL, 'VND', 'D', @l_CURR_AMORT_AMT - @l_AMT_OVER, 1, @l_AMORT_AMT - @l_AMT_OVER, @l_ASSET_CODE, @sExecDT, @p_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_DESC_CORE);
IF(EXISTS(SELECT ASSET_ID FROM @LST_COST_SHARE))
BEGIN
DECLARE lstDATACOST CURSOR FOR
SELECT
BRANCH_ID
,DEP_ID
,COST_AMOUNT FROM @LST_COST_SHARE
OPEN lstDATACOST
DECLARE @COST_BRANCH_ID VARCHAR(20) , @COST_DEP_ID VARCHAR(20), @COST_AMOUNT DECIMAL(18,0),@COST_DEP_CODE VARCHAR(20),@COST_BRANCH_CODE VARCHAR(20),@TRANFER_CP VARCHAR(25)
SET @TRANFER_CP=(SELECT epa.ACC_NO FROM ENTRIES_POST_ACCNO epa WHERE epa.ACC_TYPE='ASSET_CCLD_N')
FETCH NEXT FROM lstDATACOST INTO @COST_BRANCH_ID, @COST_DEP_ID , @COST_AMOUNT
WHILE @@fetch_status = 0
BEGIN
IF(@l_BRANCH_ID <> @COST_BRANCH_ID)
BEGIN
SET @COST_BRANCH_CODE =(SELECT
cb.BRANCH_CODE
FROM CM_BRANCH cb
WHERE cb.BRANCH_ID = @COST_BRANCH_ID)
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, @l_AMORTDT_ID, @l_BRANCH_CODE, @l_EXP_GL, 'VND', 'C', @COST_AMOUNT, 1, @COST_AMOUNT, @l_ASSET_CODE, @sExecDT, @p_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_DESC_CORE);
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, @l_AMORTDT_ID, @l_BRANCH_CODE, @TRANFER_CP, 'VND', 'D', @COST_AMOUNT, 1, @COST_AMOUNT, @l_ASSET_CODE, @sExecDT, @p_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_DESC_CORE);
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, @l_AMORTDT_ID, @COST_BRANCH_CODE, @TRANFER_CP, 'VND', 'C', @COST_AMOUNT, 1, @COST_AMOUNT, @l_ASSET_CODE, @sExecDT, @p_MAKER_ID, @p_CHECKER_ID, '', @l_DESC_CORE);
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, @l_AMORTDT_ID, @COST_BRANCH_CODE, @l_EXP_GL, 'VND', 'D', @COST_AMOUNT, 1, @COST_AMOUNT, @l_ASSET_CODE, @sExecDT, @p_MAKER_ID, @p_CHECKER_ID, '', @l_DESC_CORE);
END
ELSE
BEGIN
SELECT @COST_DEP_ID
SET @COST_DEP_CODE =(SELECT cd.DEP_CODE FROM CM_DEPARTMENT cd WHERE cd.DEP_ID=@COST_DEP_ID)
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, @l_AMORTDT_ID, @l_BRANCH_CODE, @l_EXP_GL, 'VND', 'C', @COST_AMOUNT, 1, @COST_AMOUNT, @l_ASSET_CODE, @sExecDT, @p_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_DESC_CORE);
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, @l_AMORTDT_ID, @l_BRANCH_CODE, @l_EXP_GL, 'VND', 'D', @COST_AMOUNT, 1, @COST_AMOUNT, @l_ASSET_CODE, @sExecDT, @p_MAKER_ID, @p_CHECKER_ID, @COST_DEP_CODE, @l_DESC_CORE);
END
FETCH NEXT FROM lstDATACOST INTO @COST_BRANCH_ID, @COST_DEP_ID , @COST_AMOUNT
END
CLOSE lstDATACOST
DEALLOCATE lstDATACOST
END
END
IF (@l_AMT_OVER > 0)
BEGIN
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST'
,@l_ET_ID OUT
IF @l_ET_ID = ''
OR @l_ET_ID IS NULL
GOTO ABORT
INSERT INTO ASS_ENTRIES_POST (ET_ID, REF_NO, ASSET_ID, TRN_TYPE, REF_ID, DO_BRN, CR_ACCT, CR_BRN, DR_ACCT, DR_BRN, AMT, EXP_TO_CORE, TRN_DATE, TRN_DESC, MAKER_ID, CHECKER_ID)
VALUES (@l_ET_ID, @l_TRN_REF_NO, @l_ASSET_ID, 'AMORT', @l_AMORTDT_ID, @l_DO_BRANCH_ID, dbo.FN_REPLACE_ACCTNO(@l_AMORT_GL, @l_CR_BRN_ID), @l_CR_BRN_ID, @l_EXP_GL, @l_DR_BRN_ID, @l_AMT_OVER, 'Y', @sExecDT, @l_DESC_CORE, @p_MAKER_ID, @p_CHECKER_ID)
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, @l_AMORTDT_ID, @l_BRANCH_CODE, @l_AMORT_GL, 'VND', 'C', @l_AMT_OVER, 1, @l_AMT_OVER, @l_ASSET_CODE, @sExecDT, @p_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_DESC_CORE);
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, @l_AMORTDT_ID, @l_BRANCH_CODE, '871001005', 'VND', 'D', @l_AMT_OVER, 1, @l_AMT_OVER, @l_ASSET_CODE, @sExecDT, @p_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_DESC_CORE);
END
IF @@Error <> 0 GOTO ABORT
--UPDATE BANG ASS_MASTER
UPDATE ASS_MASTER
SET AMORTIZED_AMT = isnull(AMORTIZED_AMT, 0) + @l_CURR_AMORT_AMT,
AMORTIZED_MONTH = isnull(AMORTIZED_MONTH, 0) + 1,
AMORT_STATUS = @l_CURR_AMORT_STATUS
WHERE ASSET_ID = @l_ASSET_ID
IF @@Error <> 0 GOTO ABORT
--
--update da hach toan
UPDATE ASS_AMORT_DT
SET EXECUTED = '1'
WHERE AMORTDT_ID = @l_AMORTDT_ID
IF @@Error <> 0 GOTO ABORT
-----------------------------------------------
FETCH NEXT FROM pCur INTO @l_ASSET_ID, @l_AMORTIZED_AMT, @l_AMORTIZED_MONTH,
@l_AMORT_AMT, @l_AMORT_MONTH, @l_AMORT_END_DATE, @l_AMORT_START_DATE,
@l_FIRST_AMORT_AMT, @l_MONTHLY_AMORT_AMT, @l_BRANCH_ID, @l_DEP_ID, @l_GROUP_ID
END
UPDATE ASS_AMORT
SET TOTAL_AMT = @l_TOTAL_AMT, PROCESS_STATUS = 'S'
WHERE AMORT_ID = @l_AMORT_ID
-- /****CAP NHAT CCLD TINH TRANG: DPB(Đã phân bổ chi phí khi xuất sử dụng) VE DANG KHAU HAO***/
IF @p_ASSET_TYPE = 'CCLD'
BEGIN
UPDATE ASS_MASTER SET AMORT_STATUS = 'DKH'
WHERE AMORT_STATUS IN ('DPB')
--AND convert(date, AMORT_START_DATE) <= convert(date, @sExecDT)
AND convert(date, AMORT_START_DATE) <= convert(date, dbo.FN_GetLastDayOfMonth(@sExecDT))
AND AMORTIZED_AMT < AMORT_AMT
AND RECORD_STATUS = '1'
AND AUTH_STATUS = 'A'
AND TYPE_ID = 'CCLD'
AND (BRANCH_ID = @l_BRANCH_ID_DO
OR (@l_BRANCH_TYPE_DO = 'CN' --NEU LA CN THI PHAN BO LUON CHO PGD THUOC CHI NHANH DO
--AND BRANCH_ID IN (SELECT * FROM [dbo].[CM_BRANCH_GETCHILDID](@l_BRANCH_ID_DO)))) --THIEUVQ
AND BRANCH_ID IN (SELECT BR.BRANCH_ID FROM ASS_AMORT_BRN BR WHERE BR.AMORT_ID = @l_AMORT_ID))) --THIEUVQ 28092016
END
CLOSE pCur
DEALLOCATE pCur
-- end cusor loại tài sản
FETCH NEXT FROM cur INTO @p_ASSET_TYPE
END
CLOSE cur
DEALLOCATE cur
-- end cusor loại tài sản
END TRY
BEGIN CATCH
CLOSE pCur
DEALLOCATE pCur
CLOSE cur
DEALLOCATE cur
IF @@TRANCOUNT>0 ROLLBACK TRANSACTION
SELECT '-1' as Result, convert(varchar(100),ERROR_NUMBER()) + ' - ' + ERROR_MESSAGE() ErrorDesc,
'' AMORT_ID, '' AMORT_TERM, 0 TOTAL_AMT, NULL EXECUTE_DT, '' STATUS_NAME, '' NOTES
--GHI LOG
INSERT INTO THREAD_TIME_SEND_LOG (DISTANCE_TIME, DISTANCE_TYPE, TOOL_NAME, TOOL_VALUE, EXEC_DT, EXEC_TYPE, MESSAGE, CREATE_DT)
VALUES (@DISTANCE_TIME,@DISTANCE_TYPE, @TOOL_NAME, @TOOL_VALUE, CONVERT(DATETIME,@p_EXECUTE_DATE,103),@p_EXEC_TYPE, convert(varchar(100),ERROR_NUMBER()) + ' - ' + ERROR_MESSAGE(), GETDATE());
RETURN '-1'
END CATCH;
IF @@TRANCOUNT>0 COMMIT TRANSACTION
SELECT '0' as Result, '' ErrorDesc, AMORT_ID, AMORT_TERM, TOTAL_AMT, EXECUTE_DT,
CASE WHEN PROCESS_STATUS='P' THEN N'Chờ thực thi' ELSE N'Đã thực thi' END STATUS_NAME, NOTES
FROM ASS_AMORT WHERE AMORT_ID = @l_AMORT_ID
--GHI LOG
INSERT INTO THREAD_TIME_SEND_LOG (DISTANCE_TIME, DISTANCE_TYPE, TOOL_NAME, TOOL_VALUE, EXEC_DT, EXEC_TYPE, MESSAGE, CREATE_DT)
VALUES (@DISTANCE_TIME,@DISTANCE_TYPE, @TOOL_NAME, @TOOL_VALUE, CONVERT(DATETIME,@p_EXECUTE_DATE,103),@p_EXEC_TYPE, N'Thực thi thành công', GETDATE());
RETURN '0'
ABORT:
BEGIN
CLOSE pCur
DEALLOCATE pCur
CLOSE cur
DEALLOCATE cur
ROLLBACK TRANSACTION
--GHI LOG
INSERT INTO THREAD_TIME_SEND_LOG (DISTANCE_TIME, DISTANCE_TYPE, TOOL_NAME, TOOL_VALUE, EXEC_DT, EXEC_TYPE, MESSAGE, CREATE_DT)
VALUES (@DISTANCE_TIME,@DISTANCE_TYPE, @TOOL_NAME, @TOOL_VALUE, CONVERT(DATETIME,@p_EXECUTE_DATE,103),@p_EXEC_TYPE, ERROR_MESSAGE(), GETDATE());
SELECT '-1' as Result, '' ErrorDesc
RETURN '-1'
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[aSS_PRIVATE_TRANSFER_MASTER_SendAppr]'
GO
ALTER PROCEDURE [dbo].[aSS_PRIVATE_TRANSFER_MASTER_SendAppr]
@p_TRANSFER_MULTI_ID VARCHAR(15) = NULL,
@p_TYPE_APP NVARCHAR(15) = NUll,
@p_USER_LOGIN VARCHAR(15) = NULL
AS
DECLARE @ASSET_ID_LST VARCHAR(MAX), @CURRENT_TRANS_ERROR NVARCHAR(MAX)
-- 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_PRIVATE_TRANSFER_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
SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, @CURRENT_TRANS_ERROR ErrorDesc
RETURN '-1'
END
BEGIN TRANSACTION
DECLARE @BRANCH_ID VARCHAR(15) = (SELECT TU.TLSUBBRID FROM TL_USER TU WHERE TU.TLNANME = @p_USER_LOGIN)
DECLARE @MESSAGE_VALIDATION NVARCHAR(MAX)
BEGIN
IF(EXISTS(SELECT 1 FROM dbo.ASS_PRIVATE_TRANSFER_MASTER aptm WHERE aptm.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 SUM(A.COUNT)
FROM(
SELECT COUNT(*) AS COUNT
FROM ASS_PRIVATE_TRANSFER_DT A
WHERE A.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID AND A.EMP_ID_OLD IS NOT NULL AND A.EMP_ID_OLD <> ''
GROUP BY A.EMP_ID_OLD) A
HAVING COUNT(*) > 1))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' Result, N'Chỉ được điều chuyển tài sản từ 1 người sử dụng.'ErrorDesc
RETURN '-1'
END
IF(EXISTS(SELECT SUM(A.COUNT)
FROM(
SELECT COUNT(*) AS COUNT
FROM ASS_PRIVATE_TRANSFER_DT A
WHERE A.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID AND A.EMP_ID IS NOT NULL AND A.EMP_ID <> ''
GROUP BY A.EMP_ID) A
HAVING COUNT(*) > 1))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' Result, N'Chỉ được điều chuyển tài sản cho 1 người sử dụng.'ErrorDesc
RETURN '-1'
END
IF(EXISTS(SELECT 1
FROM ASS_PRIVATE_TRANSFER_DT A
LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID
LEFT JOIN CM_EMPLOYEE C ON A.EMP_ID = C.EMP_ID
WHERE A.EMP_ID IS NOT NULL AND A.EMP_ID <> ''
AND (ISNULL(B.BRANCH_ID,'') <> ISNULL(C.BRANCH_ID,'')
OR ISNULL(B.DEPT_ID,'') <> ISNULL(C.DEP_ID,''))
AND A.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID))
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 ' + D.ASSET_CODE + N' và người dùng ' + D.EMP_NAME + N' không cùng Đơn vị/Phòng ban với nhau'
FROM ( SELECT B.ASSET_CODE,C.EMP_NAME
FROM ASS_PRIVATE_TRANSFER_DT A
LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID
LEFT JOIN CM_EMPLOYEE C ON A.EMP_ID = C.EMP_ID
WHERE A.EMP_ID IS NOT NULL AND A.EMP_ID <> ''
AND (ISNULL(B.BRANCH_ID,'') <> ISNULL(C.BRANCH_ID,'')
OR ISNULL(B.DEPT_ID,'') <> ISNULL(C.DEP_ID,''))
AND A.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) D
FOR XML PATH (''))
, '|', '
'))
ROLLBACK TRANSACTION
SELECT '-1' Result, @MESSAGE_VALIDATION ErrorDesc
RETURN '-1'
END
UPDATE ASS_PRIVATE_TRANSFER_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'Nhân viên gửi phê duyệt', N'Nhân viên gửi phê duyệt thành công')
IF @@ERROR <> 0 GOTO ABORT
END
--PHUCVH 14/11/22 UPDATE TÀI SẢN ĐANG TREO GIAO DỊCH
UPDATE ASS_MASTER SET CURRENT_TRANS = @p_TRANSFER_MULTI_ID, CURRENT_TRANS_TYPE = 'ASS_PRIVATE_TF'
WHERE ASSET_ID IN (SELECT B.ASSET_ID FROM ASS_PRIVATE_TRANSFER_DT B WHERE B.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID)
COMMIT TRANSACTION
SELECT '0' as Result,
N'Hồ sơ số: '+@p_TRANSFER_MULTI_ID+
-- N' đã được gửi phê duyệt thành công. Vui lòng đợi trưởng đơn vị xác nhận.' ErrorDesc
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.' ErrorDesc
RETURN '0'
ABORT:
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' TRANS_MULTI_MASTER_ID, '' ErrorDesc
RETURN '-1'
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_AMORT_BackDate]'
GO
ALTER PROCEDURE [dbo].[ASS_AMORT_BackDate]
@p_ASSET_ID VARCHAR(20),
@p_MAKER_ID VARCHAR(100),
@p_CHECKER_ID VARCHAR(100),
@p_APPROVE_DT DATETIME,
@p_TRN_ID VARCHAR(20),
@p_TRN_REF_NO VARCHAR(20),
@p_TRN_TYPE VARCHAR(50)
AS
DECLARE @p_ASSET_TYPE VARCHAR(25),@sExecDT DATETIME,@l_LAST_AMORT_ID VARCHAR(25)
declare @l_AMORT_ID varchar(15), @l_AMORTDT_ID varchar(15)
declare @l_AMORT_TERM nvarchar(50) = ''
declare @l_ASSET_ID varchar(15)
declare @l_AMORTIZED_AMT decimal(18,0)
declare @l_AMORTIZED_MONTH int
declare @l_AMORT_AMT decimal(18,0)
declare @l_AMORT_MONTH decimal(18,2)
declare @l_AMORT_END_DATE datetime, @l_AMORT_START_DATE datetime
declare @l_FIRST_AMORT_AMT decimal(18,0), @l_MONTHLY_AMORT_AMT decimal(18,0)
declare @l_BRANCH_ID varchar(15)
declare @l_DEP_ID varchar(15)
declare @l_BRANCH_ID_DO varchar(15) = NULL, @l_BRANCH_TYPE_DO VARCHAR(15)
declare @l_CURR_AMORT_AMT decimal(18,0)
declare @l_TOTAL_AMT decimal(18,0)
declare @l_CURR_AMORT_STATUS nvarchar(100)
declare @l_DESC nvarchar(1000)
declare @l_BUY_DATE DATETIME,@l_GROUP_ID VARCHAR(20)
DECLARE @l_AMORT_RUN_DATE DATETIME = (SELECT TOP 1 TTS.SENT_DATE FROM THREAD_TIME_SEND TTS WHERE TTS.TIME_VALUE = 'KH')
SELECT @l_ASSET_ID=A.ASSET_ID,@l_AMORTIZED_AMT= A.AMORTIZED_AMT,@l_AMORTIZED_MONTH= A.AMORTIZED_MONTH,
@l_AMORT_AMT = A.AMORT_AMT, @l_AMORT_MONTH=A.AMORT_MONTH,@l_AMORT_END_DATE= A.AMORT_END_DATE,@l_AMORT_START_DATE= A.AMORT_START_DATE,
@l_FIRST_AMORT_AMT= A.FIRST_AMORT_AMT,@l_MONTHLY_AMORT_AMT= A.MONTHLY_AMORT_AMT,@l_BRANCH_ID= A.BRANCH_ID,@l_DEP_ID= A.DEPT_ID,@l_BUY_DATE= A.BUY_DATE
,@l_GROUP_ID=A.GROUP_ID
FROM ASS_MASTER A
WHERE A.ASSET_ID =@p_ASSET_ID
DECLARE @DATE_AMORT INT = DAY(@l_AMORT_RUN_DATE)
DECLARE @MONTH_AMORT INT= MONTH(@l_AMORT_RUN_DATE)
DECLARE @FIRST_DATE_AMORT DATETIME =(CONVERT(VARCHAR(10),(YEAR(@l_AMORT_START_DATE))) + '-' + CONVERT(VARCHAR(10),MONTH(@l_AMORT_START_DATE))+'-' + CONVERT(VARCHAR(10),DAY(@l_AMORT_RUN_DATE)) )
IF(@FIRST_DATE_AMORT <= @l_AMORT_START_DATE)
SET @FIRST_DATE_AMORT=@l_AMORT_START_DATE
SET @sExecDT=@FIRST_DATE_AMORT
DECLARE @l_MONTH_BACKDATE DECIMAL = DATEDIFF(MONTH, @l_AMORT_START_DATE, @l_AMORT_RUN_DATE)
WHILE CAST(@sExecDT AS DATE) < CAST(@l_AMORT_RUN_DATE AS DATE) AND dbo.FN_GetLastDayOfMonth(@sExecDT) <= dbo.FN_GetLastDayOfMonth(@l_AMORT_END_DATE)
BEGIN
IF (@l_AMORTIZED_MONTH = 0) --Khau hao thang dau tien
BEGIN
SET @l_CURR_AMORT_AMT = @l_FIRST_AMORT_AMT
SET @l_CURR_AMORT_STATUS = 'DKH'
END
ELSE IF dbo.FN_GetLastDayOfMonth(@sExecDT) = dbo.FN_GetLastDayOfMonth(@l_AMORT_END_DATE) --Ky khau hao cuoi cung
BEGIN
SET @l_CURR_AMORT_AMT = @l_AMORT_AMT - @l_AMORTIZED_AMT
SET @l_CURR_AMORT_STATUS = 'KHX'
print 'last amort' + @l_ASSET_ID
END
ELSE --tai san dang khau hao binh thuong
BEGIN
SET @l_CURR_AMORT_AMT = @l_MONTHLY_AMORT_AMT
SET @l_CURR_AMORT_STATUS = 'DKH'
--THIEUVQ THEM DK KHONG KHAU HAO AM 13112017
IF (@l_AMORTIZED_AMT + @l_CURR_AMORT_AMT) > @l_AMORT_AMT
SET @l_CURR_AMORT_AMT = @l_AMORT_AMT - @l_AMORTIZED_AMT
END
--Insert to bang ASS_AMORT_DT
EXEC SYS_CodeMasters_Gen 'ASS_AMORT_DT', @l_AMORTDT_ID out
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_AMORTDT_ID,
@l_AMORT_ID,
@sExecDT,
'C',
@l_BRANCH_ID,
@l_DEP_ID,
@l_ASSET_ID,
@l_CURR_AMORT_AMT,
NULL, --Khong chay khau hao theo group
'1',
'AMORT',
N'Khấu hao lùi'
)
UPDATE ASS_MASTER
SET AMORTIZED_AMT = isnull(AMORTIZED_AMT, 0) + @l_CURR_AMORT_AMT,
AMORTIZED_MONTH = isnull(AMORTIZED_MONTH, 0) + 1,
AMORT_STATUS = @l_CURR_AMORT_STATUS
WHERE ASSET_ID = @l_ASSET_ID
SET @sExecDT= DATEADD(MONTH,1,@sExecDT)
SET @l_AMORTIZED_AMT= @l_AMORTIZED_AMT + @l_CURR_AMORT_AMT
SET @l_AMORTIZED_MONTH = @l_AMORTIZED_MONTH + 1
END
---- Hạch toán
DECLARE @l_BRANCH_CODE VARCHAR(25), @l_ASSET_CODE VARCHAR(25),@l_ETP_ID VARCHAR(25),@l_ET_ID VARCHAR(25), @l_AMT_OVER DECIMAL(18,0),@DEP_CODE VARCHAR(25)
declare @l_EXP_GL varchar(50)
DECLARE @l_AMORT_GL varchar(50)
declare @l_DO_BRANCH_ID varchar(15)= NULL
DECLARE @l_DESC_CORE nvarchar(200)
DECLARE @l_DR_BRN_ID varchar(15), @l_CR_BRN_ID varchar(15),@l_TYPE_ID VARCHAR(25),@l_AMT_UNDER DECIMAL(18,0)
SET @l_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@l_BRANCH_ID)
SET @l_ASSET_CODE =(SELECT am.ASSET_CODE FROM ASS_MASTER am WHERE am.ASSET_ID=@l_ASSET_ID)
SET @l_AMORTIZED_AMT =(SELECT SUM(aad.AMORT_AMT) FROM ASS_AMORT_DT aad WHERE aad.ASSET_ID=@l_ASSET_ID)
SET @DEP_CODE= (SELECT cd.DEP_CODE FROM CM_DEPARTMENT cd WHERE cd.DEP_ID=@l_DEP_ID)
SELECT @l_EXP_GL = G.EXP_ACCTNO, @l_AMORT_GL = G.AMORT_ACCTNO,@l_TYPE_ID = G.[TYPE_ID]
FROM ASS_GROUP G
WHERE G.GROUP_ID = @l_GROUP_ID
IF(@l_AMORT_AMT > 1600000000)
BEGIN
SET @l_AMT_UNDER = ROUND(@l_AMORTIZED_AMT * (1600000000/@l_AMORT_AMT),0)
SET @l_AMT_OVER = @l_AMORTIZED_AMT- @l_AMT_UNDER
END
ELSE
BEGIN
SET @l_AMT_UNDER=@l_AMORTIZED_AMT
SET @l_AMT_OVER=0
END
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST', @l_ET_ID out
INSERT INTO ASS_ENTRIES_POST
(
ET_ID,REF_NO, ASSET_ID, TRN_TYPE, REF_ID,DO_BRN, CR_ACCT, CR_BRN, DR_ACCT, DR_BRN, AMT,EXP_TO_CORE, TRN_DATE, TRN_DESC, MAKER_ID, CHECKER_ID,TRN_ID
)
VALUES
(
@l_ET_ID,@p_TRN_REF_NO, @l_ASSET_ID, @p_TRN_TYPE, @l_AMORTDT_ID,@l_DO_BRANCH_ID, dbo.fn_replace_acctno(@l_AMORT_GL,@l_CR_BRN_ID), @l_CR_BRN_ID, @l_EXP_GL, @l_DR_BRN_ID, @l_AMORT_AMT-@l_AMT_OVER,'Y',
@sExecDT, @l_DESC_CORE, @p_MAKER_ID, @p_CHECKER_ID,@p_TRN_ID
)
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_TRN_ID ,@l_BRANCH_CODE , @l_AMORT_GL, 'VND', 'C', @l_AMT_UNDER,1, @l_AMT_UNDER, @l_ASSET_CODE,@p_APPROVE_DT, @p_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_DESC_CORE,@p_TRN_REF_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_TRN_ID,@l_BRANCH_CODE ,@l_EXP_GL,'VND', 'D',@l_AMT_UNDER, 1,@l_AMT_UNDER, @l_ASSET_CODE,@p_APPROVE_DT, @p_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_DESC_CORE,@p_TRN_REF_NO);
IF(@l_AMT_OVER>0)
BEGIN
EXEC SYS_CodeMasters_Gen 'ASS_ENTRIES_POST', @l_ET_ID out
INSERT INTO ASS_ENTRIES_POST
(
ET_ID,REF_NO, ASSET_ID, TRN_TYPE, REF_ID,DO_BRN, CR_ACCT, CR_BRN, DR_ACCT, DR_BRN, AMT,EXP_TO_CORE, TRN_DATE, TRN_DESC, MAKER_ID, CHECKER_ID,TRN_ID
)
VALUES
(
@l_ET_ID,@p_TRN_REF_NO, @l_ASSET_ID, @p_TRN_TYPE, @l_AMORTDT_ID,@l_DO_BRANCH_ID, dbo.fn_replace_acctno(@l_AMORT_GL,@l_CR_BRN_ID), @l_CR_BRN_ID, @l_EXP_GL, @l_DR_BRN_ID, @l_AMT_OVER,'Y',
@sExecDT, @l_DESC_CORE, @p_MAKER_ID, @p_CHECKER_ID,@p_TRN_ID
)
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_TRN_ID ,@l_BRANCH_CODE , @l_AMORT_GL, 'VND', 'C', @l_AMT_OVER,1, @l_AMT_OVER, @l_ASSET_CODE,@sExecDT, @p_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_DESC_CORE,@p_TRN_REF_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_TRN_ID,@l_BRANCH_CODE ,'871001005','VND', 'D', @l_AMT_OVER, 1, @l_AMT_OVER, @l_ASSET_CODE,@sExecDT, @p_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_DESC_CORE,@p_TRN_REF_NO);
END
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].[ASS_MASTER_Search]'
GO
ALTER PROCEDURE [dbo].[ASS_MASTER_Search]
@p_ASSET_ID varchar(15) = NULL,
@p_TYPE_ID varchar(15) = NULL,
@p_GROUP_ID varchar(15) = NULL,
@p_ASSET_CODE nvarchar(MAX) = NULL,
@p_ASSET_NAME nvarchar(1000) = NULL,
@p_ASSET_SERIAL_NO nvarchar(MAX) = NULL,
@p_ASSET_DESC nvarchar(MAX) = NULL,
@p_SUP_ID varchar(15) = NULL,
@p_BUY_PRICE decimal(18,2) = NULL,
@p_AMORT_AMT decimal(18,2) = NULL,
@p_ASS_TYPE varchar(1) = NULL,
@p_ASS_CAT varchar(10) = NULL,
@p_BRANCH_ID varchar(15) = NULL,
@p_BRANCH_LOGIN varchar(15) = NULL,
@p_DEPT_ID varchar(15) = NULL,
@p_EMP_ID varchar(15) = NULL,
@p_DIVISION_ID varchar(15) = NULL,
@p_BUY_DATE varchar(10) = NULL,
@p_USE_DATE varchar(10) = NULL,
@p_SPECIAL_ASS varchar(1) = NULL,
@p_AMORT_MONTH decimal(18,2) = NULL,
@p_AMORT_RATE decimal(18,2) = NULL,
@p_AMORT_START_DATE varchar(10) = NULL,
@p_AMORT_END_DATE varchar(10) = NULL,
@p_FIRST_AMORT_AMT decimal(18,2) = NULL,
@p_AMORTIZED_MONTH decimal(18,2)= NULL,
@p_REMAIN_MONTH decimal(18,2) = NULL, --so thang khau hao con lai
@p_AMORTIZED_AMT decimal(18,2) = NULL,
@p_PO_ID varchar(15) = NULL,
@p_WAREHOUSE_ID varchar(15) = NULL,
@p_LOCATION nvarchar(500) = NULL,
@p_REF_ASSET_ID varchar(15) = NULL,
@p_REF_AMORTIZED_AMT decimal(18,2) = NULL,
@p_WARRANTY_MONTHS INT = NULL,
@p_NOTES nvarchar(1000) = NULL,
@p_AMORT_STATUS nvarchar(50) = NULL, --Neu muon list nhieu trang thai thi trueyn vao nhieu status cach dau bang dau , vidu: 'VNM,CKH'
@p_ASS_STATUS nvarchar(20) = NULL,
@p_ASS_STATUS_DESC nvarchar(1000) = NULL,
@p_TOP INT = NULL,
@p_ORDER_BY varchar(500) = 1,
@p_LEVEL varchar(10) = NULL,
@p_USE_STATUS varchar(15) = NULL,
--- LUCTV 22-03-2019 BO SUNG 1 SO FIELD HO TRO TIM KIEM
@p_EMP_CODE NVARCHAR(500) = NULL,
@p_EMP_NAME NVARCHAR(500) = NULL,
@p_ADDNEWID VARCHAR(20) = NULL,
@p_ADDNEW_NOTES NVARCHAR(1000) = NULL,
@p_USE_MASTER_ID VARCHAR(50) = NULL,
@P_YEAR VARCHAR(5) = NULL,
@P_UNUSED_ASSET VARCHAR(5) = NULL,
--PHUCVH 31-10-22 BỔ SUNG TÌM THEO HỆ ĐIỀU HÀNH VÀ BẢN QUYỀN MICROSOFT OFFICE
@P_OS VARCHAR(10) = NULL,
@P_MO_LICENSE VARCHAR(10) = NULL,
@P_REQ_ID VARCHAR(15) = NULL, --Tìm kiếm TS theo PYC
@P_REQ_DT_TYPE VARCHAR(15) = NULL, --Tìm kiếm TS theo loại tài sản trong PYC
@P_BRANCH_PYC VARCHAR(15) = NULL, --TÌM KIẾM
@P_USER_LOGIN VARCHAR(50),
@p_IS_FIND_REQ_ID VARCHAR(5) = NULL, -- TÌM THEO TÀI SẢN NHẬP MỚI (VALLUE = 1)
@p_FROM_BUY_DATE VARCHAR(50) = NULL, --Ngày nhập tài sản (từ ngày)
@p_TO_BUY_DATE VARCHAR(50) = NULL, --Ngày nhập tài sản (đến ngày)
@p_FROM_USE_DATE_KT VARCHAR(50) = NULL, --Ngày xuất tài sản (từ ngày)
@p_TO_USE_DATE_KT VARCHAR(50) = NULL, --Ngày xuất tài sản (đến ngày)
@p_PR_CODE VARCHAR(100) = NULL, --Số PR
@p_PL_CODE VARCHAR(100) = NULL, --SỐ TỜ TRÌNH
@p_INVOICE_NO VARCHAR(100) = NULL, -- SỐ HOÁ ĐƠN
@p_INVOICE_SYMPOL VARCHAR(100) = NULL, -- KÝ HIỆU HOÁ ĐƠN
@p_ASS_CONTRACT_CODE VARCHAR(100) = NULL, --SỐ HỢP ĐỒNG
@p_REQ_CODE VARCHAR(100) = NULL --Thêm trường tìm kiếm số PYC
AS
--thieuvq 19/7/2016 - DOC DU LIEU BO QUA COMMIT TRANSACTION
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
--
--gan tam sau khi golive thi xoa thieuvq 05082015
--IF @p_ASSET_NAME = 'khoinm15479' OR @p_ASSET_NAME = 'nghiann17858'
--BEGIN
-- SET @p_ASSET_NAME = ''
-- SET @p_LEVEL = 'ALL'
--END
DECLARE @l_LSTASSETCODE TABLE (
[ID] [int] IDENTITY(1,1) NOT NULL,
[VALUE] [VARCHAR](MAX) NULL)
INSERT INTO @l_LSTASSETCODE SELECT VALUE FROM WSISPLIT(@p_ASSET_CODE,',')
--DIEU CHINH CHO PHEP SEARCH TOAN HANG - CHI THAO - 5/9/2016
--IF @p_ASS_CAT = 'CAR' BEGIN SET @p_LEVEL = 'ALL' END
BEGIN -- PAGING
DECLARE @P_TARGET_BRANCH_ID VARCHAR(15), @DEP_LOGIN VARCHAR(20)
SELECT @DEP_LOGIN = tu.DEP_ID FROM TL_USER tu WHERE tu.TLNANME = @P_USER_LOGIN
declare @tmp1 table(BRANCH_ID varchar(15))
declare @tmp2 table(BRANCH_ID varchar(15))
IF(@DEP_LOGIN = 'DEP000000000048')
BEGIN
insert into @tmp1 SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
insert into @tmp2 SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)
END
ELSE BEGIN
insert into @tmp1 SELECT @p_BRANCH_ID
insert into @tmp2 SELECT @p_BRANCH_LOGIN
END
--IF @p_TOP = '' SET @p_TOP = 1000000
IF @p_TOP IS NULL OR @p_TOP = ''
BEGIN
-- PAGING BEGIN
SELECT
MK.TLSUBBRID,A.MONTHLY_AMORT_AMT,
A.ASSET_ID, A.[TYPE_ID],C.[TYPE_CODE], C.[TYPE_NAME], A.GROUP_ID,B.GROUP_CODE, B.GROUP_NAME, B.ASS_CAT,
CASE
WHEN A.ASSET_CODE IS NULL OR A.ASSET_CODE = '' THEN A.ASS_CODE_TMP
ELSE A.ASSET_CODE
END AS ASSET_CODE,
A.ASSET_NAME, A.ASSET_SERIAL_NO, A.ASSET_DESC,
A.SUP_ID, A.BUY_PRICE, A.AMORT_AMT, A.ASS_TYPE, A.BRANCH_ID,BR.BRANCH_CODE,BR.BRANCH_NAME,A.DEPT_ID,DP.DEP_CODE,DP.DEP_NAME, A.EMP_ID,EM.EMP_CODE AS EMP_CODE,EM.EMP_NAME AS EMP_NAME, A.DIVISION_ID,
A.BUY_DATE, A.USE_DATE, A.SPECIAL_ASS, A.AMORT_MONTH, A.AMORT_RATE, A.AMORT_START_DATE, A.AMORT_END_DATE,
A.FIRST_AMORT_AMT,
A.AMORTIZED_MONTH,
(A.AMORT_MONTH - A.AMORTIZED_MONTH) AS REMAIN_MONTH,
A.AMORTIZED_AMT,
ISNULL((A.AMORT_AMT - A.AMORTIZED_AMT), ISNULL(A.AMORT_AMT,0)) AS REMAIN_AMORTIZED_AMT, --So tien khau hao con lai
A.PO_ID,A.PD_ID, A.WAREHOUSE_ID, A.LOCATION, A.REF_ASSET_ID,
A.REF_AMORTIZED_AMT,
A.WARRANTY_MONTHS,
A.NOTES,
A.AMORT_STATUS,
D.STATUS_NAME AMORT_STATUS_NAME,
A.ASS_STATUS,
CASE
WHEN A.LIQ_W_STATUS = '1' AND A.AMORT_STATUS = 'DTL' THEN N'Đã thanh lý'
ELSE E.STATUS_NAME
END AS ASS_STATUS_NAME, --Tinh trang tai san
A.ASS_STATUS_DESC,
A.RECORD_STATUS,
A.AUTH_STATUS,
ZZ.AUTH_STATUS_NAME,
A.MAKER_ID,
A.CREATE_DT,
A.CHECKER_ID,
A.USE_STATUS,--THIEUVQ 23062015
A.APPROVE_DT,
A.ACCOUNT_GL,
A.VAT,
A.PRICE_VAT,
--dbo.FN_GET_CHINHANH(A.BRANCH_ID,'KV') KHU_VUC,
NULL AS KHU_VUC,
--dbo.FN_GET_CHINHANH(A.BRANCH_ID,'CN') CHI_NHANH,
BRCR.BRANCH_NAME CHI_NHANH,
BBB.BRANCH_NAME PGD ,
B.AMORT_MONTH AS GROUP_AMORT_MONTH,
BRCR.BRANCH_NAME AS BRANCH_RECIVE,
BRCR.BRANCH_NAME AS BRANCH_CREATE_NAME,
BRCR.BRANCH_ID AS BRANCH_CREATE_ID,
BRCR.BRANCH_CODE AS BRANCH_CREATE_CODE,
--LUCTV : 26-12-2018 BO SUNG AMORT MIN - MAX CUA TAI SAN THEO NHOM DE HIEN THI BEN MAN HINH CHINH SUA THONG TIN TAI SAN
B.AMORT_MONTH_MAX,
B.AMORT_MONTH_MIN,
--LUCTV : 22 -03 -19 BO SUNG LEFT JOIN ASS_TRANSACTIONS
AN.ADDNEW_ID, AN.NOTES AS ADDNEW_NOTES,AUMD.USER_MASTER_ID AS USE_MASTER_ID,
DPT.DEP_ID as DVCM_ID, DPT.DEP_NAME AS DVCM_NAME,
AN.WAR_EXPIRE_DT,--Ngày hết hạn bảo hành
AN.PR_CODE, --SỐ PR
AN.CONTRACT_ID AS ASS_CONTRACT_CODE, -- SỐ HỢP ĐỒNG
AN.PL_CODE, --SỐ TỜ TRÌNH
AP.INVOICE_NO, --SỐ HOÁ ĐƠN
AP.INVOICE_SYMPOL, --SỐ HOÁ ĐƠN
----Start Phucvh 13/10/22 Get khối/Trung tâm/Phòng ban
CASE WHEN DP.TYPE = 'K' THEN DP.DEP_ID ELSE K.DEP_ID END AS BLOCK_ID,
CASE WHEN DP.TYPE = 'K' THEN DP.DEP_NAME ELSE K.DEP_NAME END AS BLOCK_NAME,
CASE WHEN DP.TYPE = 'TT' THEN DP.DEP_ID ELSE TT.DEP_ID END AS CENTER_ID,
CASE WHEN DP.TYPE = 'TT' THEN DP.DEP_NAME ELSE TT.DEP_NAME END AS CENTER_NAME,
CASE WHEN DP.TYPE = 'PB' THEN DP.DEP_ID ELSE NULL END AS DEPT_ID_1,
CASE WHEN DP.TYPE = 'PB' THEN DP.DEP_NAME ELSE NULL END AS DEP_NAME_1,
----End Phucvh 13/10/22 Get khối/Trung tâm/Phòng ban
CA.CONTENT AS IS_OS, --Hệ điều hành
CA1.CONTENT AS IS_MO_LICENSE, --Bản quyền Microsoft Office
A.REQ_ID,
A.REQ_CODE,
AN.WAR_EXPIRE_DT AS WAR_END_DT, --ngày hết hạn bảo hành
(CASE WHEN A.IS_COLLECT <> '1' THEN N'Đang sử dụng' ELSE N'Đã thu hồi' END) AS IS_COLLECT_NAME --Trạng thái tài sản (đang sử dụng || đang thu hồi)
,
--A.ASS_CONTRACT_CODE,
CASE
WHEN DEP_CRE.DEP_ID IS NULL AND A.BRANCH_CREATE = 'DV0001' THEN N'PHÒNG QUẢN LÝ TÀI SẢN'
ELSE DEP_CRE.DEP_NAME
END AS DEP_CREATE_NAME,
CU.UNIT_NAME AS UNIT_NAME,
CR.REGION_NAME AS REGION_NAME,
'1' AS QTY,
B1.GROUP_NAME AS GROUP_NAME_1,
B2.GROUP_NAME AS GROUP_NAME_2
--KHIEMCHG: LẤY THÔNG TIN TÀI SẢN CHO KẾ TOÁN
,A.AMORT_START_DATE NGAY_BD_KH,
ISNULL(A.FIRST_AMORT_AMT,0) SO_TIEN_KH_THANG_DAU_TIEN,
ISNULL(A.MONTHLY_AMORT_AMT,0) SO_TIEN_KH_HANG_THANG,
A.AMORT_MONTH SO_THANG_KH,
ISNULL(A.AMORTIZED_AMT,0) KHAU_HAO_LK,
CASE
WHEN A.TYPE_ID = 'TSCD' THEN (CASE WHEN A.AMORT_STATUS ='VNM' THEN epa.ACC_NO
ELSE ISNULL(agkt3.ASSET_ACCTNO,agkt.ASSET_ACCTNO) END)
WHEN A.TYPE_ID = 'CCLD' THEN (CASE
WHEN A.AMORT_STATUS ='VNM' THEN agkt.ASSET_ACCTNO
WHEN A.AMORT_STATUS ='NKH' OR A.IS_COLLECT = 1 THEN epa2.ACC_NO
ELSE agkt.AMORT_ACCTNO END)
END AS TK,
aadl.AMORT_AMT KHAU_HAO_KY_GAN_NHAT
-- SELECT END
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 CM_EMPLOYEE EM ON EM.EMP_ID=A.EMP_ID
LEFT JOIN TL_USER MK ON MK.TLNANME = A.MAKER_ID
LEFT JOIN CM_BRANCH BBB ON BBB.BRANCH_ID = A.BRANCH_ID
LEFT JOIN CM_DEPARTMENT DP ON DP.DEP_ID = A.DEPT_ID
LEFT JOIN CM_DEPARTMENT DPT ON DPT.DEP_ID = B.DVCM_ID
LEFT JOIN CM_BRANCH BRCR ON BRCR.BRANCH_ID = A.BRANCH_CREATE
--LUCTV : 22 -03 -19 BO SUNG LEFT JOIN ASS_TRANSACTIONS
LEFT JOIN ASS_TRANSACTIONS AT ON AT.ASSET_ID = A.ASSET_ID AND AT.TRN_TYPE = 'ADD_NEW'
LEFT JOIN ASS_ADDNEW AN ON AT.TRN_ID = AN.ADDNEW_ID AND AT.TRN_TYPE = 'ADD_NEW'
LEFT JOIN CM_DEPARTMENT DEP_CRE ON AN.DEPT_CREATE = DEP_CRE.DEP_ID
LEFT JOIN ASS_PO AP ON AN.ADDNEW_ID = AP.ADDNEW_ID
--LUCTV: 26-08-2019 BO SUNG THEM DIEU KIEN KHI NAO NHAP MA PHIEU XUAT THI MOI LEFT JOIN
LEFT JOIN ASS_TRANSACTIONS AU ON AU.ASSET_ID = A.ASSET_ID AND AU.TRN_TYPE ='ADD_USE'
LEFT JOIN ASS_USE_MULTI_DT AUMD ON AU.TRN_ID = AUMD.USE_MULTI_ID AND AU.TRN_TYPE ='ADD_USE'
LEFT JOIN CM_ALLCODE CA ON A.OS = CA.CDVAL AND CA.CDNAME = 'OS_LICENSE' AND CA.CDTYPE = 'STATUS' --HỆ ĐIỀU HÀNH
LEFT JOIN CM_ALLCODE CA1 ON A.MO_LICENSE = CA1.CDVAL AND CA1.CDNAME = 'OS_LICENSE' AND CA1.CDTYPE = 'STATUS' --BẢN QUYỀN MICROSOFT OFFICE
LEFT JOIN CM_UNIT CU ON B.UNIT = CU.UNIT_ID
LEFT JOIN CM_REGIONS CR ON BR.REGION_ID = CR.REGION_ID
LEFT JOIN ASS_GROUP B1 ON B1.GROUP_ID = B.PARENT_ID
LEFT JOIN ASS_GROUP B2 ON B2.GROUP_ID = B1.PARENT_ID
--PHUCVH: GET KHOI/TRUNG TAM/ PHONG BAN CUA TAI SAN
LEFT JOIN CM_DEPARTMENT TT ON TT.DEP_ID = DP.FATHER_ID
LEFT JOIN CM_DEPARTMENT K ON K.DEP_ID = DP.KHOI_ID
LEFT JOIN TR_REQUEST_SHOP_DOC REQ ON A.REQ_ID = REQ.REQ_ID
--KHIEMCHG: LẤY THÔNG TIN TÀI SẢN CHO KẾ TOÁN
LEFT JOIN ASS_GROUP agkt3 ON A.REF_GROUP_ID = agkt3.GROUP_ID
LEFT JOIN ASS_GROUP agkt ON A.GROUP_ID = agkt.GROUP_ID
LEFT JOIN ASS_GROUP agkt1 ON agkt1.GROUP_ID=agkt.PARENT_ID
LEFT JOIN ASS_GROUP agkt2 ON agkt2.GROUP_ID=agkt1.PARENT_ID
LEFT JOIN ENTRIES_POST_ACCNO epa ON ISNULL(A.REF_GROUP_ID,agkt2.GROUP_ID)=epa.GROUP_ID AND epa.ACC_TYPE='BUY_TSCD'
LEFT JOIN ENTRIES_POST_ACCNO epa2 ON epa2.ACC_TYPE='BW_AMORT_CCLD'
LEFT JOIN ASS_AMORT_DT_LATEST aadl ON A.ASSET_ID = aadl.ASSET_ID
WHERE 1 = 1
AND (A.ASSET_ID = @p_ASSET_ID OR @p_ASSET_ID IS NULL OR @p_ASSET_ID = '')
AND (A.[TYPE_ID] = @p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID = '')
AND (B.[ASS_CAT] = @p_ASS_CAT OR @p_ASS_CAT IS NULL OR @p_ASS_CAT = '')
AND (A.GROUP_ID = @p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID = '')
AND ((A.ASSET_CODE like '%' + @p_ASSET_CODE + '%' OR @p_ASSET_CODE IS NULL OR @p_ASSET_CODE = '')
OR (A.ASS_CODE_TMP like '%' + @p_ASSET_CODE + '%' 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.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.SUP_ID = @p_SUP_ID OR @p_SUP_ID IS NULL OR @p_SUP_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.ASS_TYPE = @p_ASS_TYPE OR @p_ASS_TYPE IS NULL OR @p_ASS_TYPE = '')
AND (((A.AMORT_STATUS <> 'VNM' AND A.AMORT_STATUS IS NOT NULL
AND ((@p_LEVEL = 'ALL' AND EXISTS(SELECT BRANCH_ID from @tmp1 WHERE BRANCH_ID = A.BRANCH_ID))
OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_ID)))
OR ((A.AMORT_STATUS = 'VNM' OR ((A.AMORT_STATUS = 'DTL' OR A.AMORT_STATUS IS NULL OR A.AMORT_STATUS = '')))
AND ((@p_LEVEL = 'ALL' AND EXISTS(SELECT BRANCH_ID from @tmp1 WHERE BRANCH_ID = A.BRANCH_CREATE))
OR (@p_LEVEL = 'UNIT' AND ((A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <>'' AND A.BRANCH_ID =@p_BRANCH_ID) OR A.BRANCH_CREATE = @p_BRANCH_ID)))))
OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR (@p_LOCATION = 'ASS_PRIVATE_TF' AND A.AMORT_STATUS <> 'DTL' AND A.BRANCH_ID = @p_BRANCH_ID AND(A.DEPT_ID = @DEP_LOGIN OR @DEP_LOGIN IS NULL OR @DEP_LOGIN = ''))
)
AND (((A.AMORT_STATUS <> 'VNM' AND A.AMORT_STATUS IS NOT NULL
AND ((@p_LEVEL = 'ALL' AND EXISTS(SELECT BRANCH_ID from @tmp2 WHERE BRANCH_ID = A.BRANCH_ID))
OR (@p_LEVEL = 'UNIT' AND ((A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <>'' AND A.BRANCH_ID =@p_BRANCH_ID) OR A.BRANCH_CREATE = @p_BRANCH_LOGIN))))
OR ((A.AMORT_STATUS = 'VNM' OR ((A.AMORT_STATUS = 'DTL' OR A.AMORT_STATUS IS NULL OR A.AMORT_STATUS = '')))
AND ((@p_LEVEL = 'ALL' AND EXISTS(SELECT BRANCH_ID from @tmp2 WHERE BRANCH_ID = A.BRANCH_CREATE))
OR (@p_LEVEL = 'UNIT' AND ((A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <>'' AND A.BRANCH_ID =@p_BRANCH_LOGIN) OR A.BRANCH_CREATE = @p_BRANCH_LOGIN)))))
OR @p_BRANCH_LOGIN IS NULL OR @p_BRANCH_LOGIN = '' OR (@p_LOCATION = 'ASS_PRIVATE_TF' AND A.AMORT_STATUS <> 'DTL' AND A.BRANCH_ID = @p_BRANCH_ID AND(A.DEPT_ID = @DEP_LOGIN OR @DEP_LOGIN IS NULL OR @DEP_LOGIN = ''))
)
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 (DATEDIFF(DAYOFYEAR,A.BUY_DATE,CONVERT(datetime, @p_BUY_DATE,103)) = 0 OR @p_BUY_DATE IS NULL OR @p_BUY_DATE = '')
-- DuyTN bổ sung điều kiện search theo năm
AND (YEAR(A.BUY_DATE) = @P_YEAR OR @P_YEAR = '' OR @P_YEAR IS NULL)
--AND (DATEDIFF(DAYOFYEAR,A.USE_DATE,CONVERT(datetime, @p_USE_DATE,103)) = 0 OR @p_USE_DATE IS NULL OR @p_USE_DATE = '')
AND (A.SPECIAL_ASS = @p_SPECIAL_ASS OR @p_SPECIAL_ASS IS NULL OR @p_SPECIAL_ASS = '')
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 (DATEDIFF(DAYOFYEAR,A.AMORT_START_DATE,CONVERT(datetime, @p_AMORT_START_DATE,103)) = 0 OR @p_AMORT_START_DATE IS NULL OR @p_AMORT_START_DATE = '')
AND (DATEDIFF(DAYOFYEAR,A.AMORT_END_DATE,CONVERT(datetime, @p_AMORT_END_DATE,103)) = 0 OR @p_AMORT_END_DATE IS NULL OR @p_AMORT_END_DATE = '')
AND (A.AMORTIZED_MONTH = @p_AMORTIZED_MONTH OR @p_AMORTIZED_MONTH IS NULL)
AND ((A.AMORT_MONTH - A.AMORTIZED_MONTH) = @p_REMAIN_MONTH OR @p_REMAIN_MONTH IS NULL)
AND (A.PO_ID = @p_PO_ID OR @p_PO_ID IS NULL OR @p_PO_ID = '')
AND (A.WAREHOUSE_ID = @p_WAREHOUSE_ID OR @p_WAREHOUSE_ID IS NULL OR @p_WAREHOUSE_ID = '')
--AND (A.LOCATION like N'%' + @p_LOCATION + '' OR @p_LOCATION IS NULL OR @p_LOCATION = '')
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.AMORT_STATUS = @p_AMORT_STATUS OR @p_AMORT_STATUS IS NULL OR @p_AMORT_STATUS = '')
AND (A.ASS_STATUS = @p_ASS_STATUS OR @p_ASS_STATUS IS NULL OR @p_ASS_STATUS = '')
AND (CHARINDEX(ISNULL(A.AMORT_STATUS,''), @p_AMORT_STATUS) <> 0 OR @p_AMORT_STATUS = '' OR @p_AMORT_STATUS IS NULL
OR(A.AMORT_STATUS IS NULL AND @p_LOCATION = 'ADD_USE'))
AND (A.ASS_STATUS_DESC like N'%' + @p_ASS_STATUS_DESC + '' OR @p_ASS_STATUS_DESC IS NULL OR @p_ASS_STATUS_DESC = '')
AND (A.WARRANTY_MONTHS = @p_WARRANTY_MONTHS OR @p_WARRANTY_MONTHS IS NULL)
AND (A.NOTES like N'%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '')
AND A.RECORD_STATUS = '1'
AND (A.USE_STATUS = @p_USE_STATUS OR @p_USE_STATUS IS NULL OR @p_USE_STATUS = '')
AND ((@p_LOCATION =N'IS_LIQUID' AND NOT EXISTS(SELECT ASSET_ID FROM ASS_COLLECT_MULTI_DT WHERE AUTH_STATUS='A' AND IS_LIQ ='1' AND A.ASSET_ID = A.ASSET_ID))
OR (@p_LOCATION =N'IS_COL' AND NOT EXISTS(SELECT ASSET_ID FROM ASS_COLLECT_MULTI_DT WHERE AUTH_STATUS='A' AND A.ASSET_ID = A.ASSET_ID))
OR (@p_LOCATION =N'LIQ' AND EXISTS(SELECT ASSET_ID FROM ASS_COLLECT_MULTI_DT WHERE AUTH_STATUS='A' AND IS_LIQ ='1' AND ASSET_ID = A.ASSET_ID))
-- ----26-02-2020 BO SUNG THEM NEU LOCATION TRUYEN XUONG LA PRINT TEMP THI LUC NAY CHI LAY NHUNG TAI SAN <> 'VNM' VA CHI LAY DON VI DOC LAP, KHONG LAY TOAN HANG
-- ----VI HIEN TAI DANG MAC DINH LAY TOAN HANG, TRONG KHI IN NHAN DANG MAC DINH IN THEO DON VI DOC LAP
OR (@p_LOCATION =N'PRINT_TEMP' AND A.AMORT_STATUS <>'VNM' AND A.BRANCH_ID =@p_BRANCH_ID)
--START Phucvh 06/10/22 Tài sản được nhập thông qua PYC thuộc ĐV Xuất có loại tài sản chưa hoàn thành và TYPE_XL: Mua mới - Tài sản không nhập từ PYC
OR (@p_LOCATION = N'ADD_USE' AND (A.CURRENT_TRANS IS NULL OR A.CURRENT_TRANS = '') AND (A.BRANCH_ID IS NULL OR A.BRANCH_ID = '')
AND ((REQ.BRANCH_ID = @P_BRANCH_PYC AND A.REQ_ID IS NOT NULL AND A.REQ_ID <> '')
OR (REQ.REQ_ID IS NULL OR REQ.REQ_ID = '')))
--END Phucvh 06/10/22 Tài sản được nhập thông qua PYC thuộc ĐV Xuất có loại tài sản chưa hoàn thành và TYPE_XL: Mua mới - Tài sản không nhập từ PYC
OR (@p_LOCATION = N'TRANSFER' AND A.AMORT_STATUS <> 'DTL')
--Start Phucvh 25/10/22
OR (@p_LOCATION = N'ASS_COLLECT' AND A.AUTH_STATUS = 'A' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '')--PYC THU HỒI TÀI SẢN
OR (@p_LOCATION = N'ASS_TRANSFER' AND A.AUTH_STATUS = 'A' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '')--PYC ĐIỀU CHUYỂN
OR (@p_LOCATION = N'ASS_REPAIR' AND A.AUTH_STATUS = 'A' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '')--PYC SỬA CHỮA
--End Phucvh 25/10/22
--Sửa chữa nhiều TS
OR (@p_LOCATION = N'ASS_REPAIR_MUL' AND (
(@P_REQ_ID IS NOT NULL AND @P_REQ_ID <> '' AND EXISTS(SELECT DT.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT DT WHERE DT.REQ_DOC_ID = @P_REQ_ID AND DT.IS_DVCM = '0' AND DT.ASS_ID = A.ASSET_ID))
OR((@P_REQ_ID IS NULL OR @P_REQ_ID = '') AND A.AUTH_STATUS = 'A' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '')))
--Điều chuyển tài sản nội bộ
OR (@p_LOCATION = N'ASS_PRIVATE_TF' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '' AND A.AUTH_STATUS = 'A')
OR (@p_LOCATION = N'ASS_COLLECT_MUL' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '' AND A.AUTH_STATUS = 'A')
--KHANHNHD 1/11/2 Tài sản đã thêm vào phiếu đề xuất thì không được tìm thấy
-- OR (@p_LOCATION = N'ASS_LIQ' AND( @P_REQ_ID iS NULL OR @P_REQ_ID='') AND A.CURRENT_TRANS IS NULL AND A.ASSET_ID NOT IN (SELECT ASSET_ID
-- FROM ASS_LIQ_REQUEST_DT DT
-- WHERE (ASSET_ID = @p_ASSET_ID OR @p_ASSET_ID IS NULL OR @p_ASSET_ID = '')
-- ))
OR (@p_LOCATION = N'ASS_LIQ' AND( @P_REQ_ID iS NULL OR @P_REQ_ID='') AND A.CURRENT_TRANS IS NULL AND NOT EXISTS(SELECT ASSET_ID
FROM ASS_LIQ_REQUEST_DT DT
WHERE DT.ASSET_ID = A.ASSET_ID))
OR (@p_LOCATION = N'ASS_LIQDATION' AND NOT EXISTS (SELECT ASSET_ID
FROM ASS_LIQUIDATION_DT ald WHERE ald.ASSET_ID=A.ASSET_ID))
--KHANHNHD 1/11/2 Tài sản đã thêm vào phiếu đề xuất thì không được tìm thấy
--khiemchg TÌM KIẾM THEO LOẠI TS TRONG PYC -- ĐIỀU CHUYỂN TÀI SẢN
-- OR (@p_LOCATION = N'ASS_TRANSFER_MULTI' AND CHARINDEX(ISNULL(A.AMORT_STATUS,''), 'CKH,DKH,DPB,KHX,KKH,NKH') <> 0
-- AND A.AUTH_STATUS = 'A'
-- AND (@P_REQ_DT_TYPE = 'CPDC'
-- AND (A.GROUP_ID IN (SELECT IG.GROUP_ID FROM ASS_GROUP IG WHERE IG.GROUP_CODE IN (SELECT AG.GROUP_CODE FROM ASS_GROUP AG WHERE AG.GROUP_ID IN (SELECT ASS_GROUP_ID FROM TR_REQUEST_SHOP_DOC_DT A
-- WHERE REQ_DOC_ID = @P_REQ_ID AND TYPE_XL = @P_REQ_DT_TYPE)))
-- AND (A.BRANCH_ID <> (SELECT BRANCH_ID FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @P_REQ_ID)
-- OR (A.DEPT_ID <> (SELECT A.DEP_ID FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @P_REQ_ID) AND A.BRANCH_ID = 'DV0001')))
-- OR (@P_REQ_DT_TYPE = 'DCTS' AND A.ASSET_ID IN (SELECT A.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT A WHERE A.REQ_DOC_ID = @P_REQ_ID))
-- OR @P_REQ_DT_TYPE = '' OR @P_REQ_DT_TYPE IS NULL)
-- )
OR (@p_LOCATION = N'ASS_TRANSFER_MULTI' AND CHARINDEX(ISNULL(A.AMORT_STATUS,''), 'CKH,DKH,DPB,KHX,KKH,NKH') <> 0
AND A.AUTH_STATUS = 'A'
AND (@P_REQ_DT_TYPE = 'CPDC'
AND (EXISTS(SELECT IG.GROUP_ID FROM ASS_GROUP IG WHERE IG.GROUP_ID = A.GROUP_ID AND EXISTS(SELECT AG.GROUP_CODE FROM ASS_GROUP AG WHERE AG.GROUP_CODE = IG.GROUP_CODE AND EXISTS(SELECT ASS_GROUP_ID FROM TR_REQUEST_SHOP_DOC_DT A
WHERE REQ_DOC_ID = @P_REQ_ID AND TYPE_XL = @P_REQ_DT_TYPE AND A.ASS_GROUP_ID = AG.GROUP_ID)))
AND (A.BRANCH_ID <> (SELECT BRANCH_ID FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @P_REQ_ID)
OR (A.DEPT_ID <> (SELECT A.DEP_ID FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @P_REQ_ID) AND A.BRANCH_ID = 'DV0001')))
OR (@P_REQ_DT_TYPE = 'DCTS' AND EXISTS(SELECT DT.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT DT WHERE DT.REQ_DOC_ID = @P_REQ_ID AND DT.ASS_ID = A.ASSET_ID))
OR @P_REQ_DT_TYPE = '' OR @P_REQ_DT_TYPE IS NULL)
)
--khiemchg enD
OR @p_LOCATION = 'ASS_INFO'
--Tìm tài sản phiếu đề xuất thì range lại trong phạm vi của phiếu //khiemchg
-- OR (@p_LOCATION = N'ASS_LIQ' AND @P_REQ_ID IS NOT NULL AND @P_REQ_ID <> '' AND A.ASSET_ID IN (SELECT ASSET_ID
-- FROM ASS_LIQ_REQUEST_DT DT
-- WHERE DT.LIQ_REQ_ID IN (SELECT value FROM dbo.wsiSplit (@P_REQ_ID, ','))))
OR (@p_LOCATION = N'ASS_LIQ' AND @P_REQ_ID IS NOT NULL AND @P_REQ_ID <> '' AND EXISTS(SELECT ASSET_ID
FROM ASS_LIQ_REQUEST_DT DT
WHERE DT.ASSET_ID = A.ASSET_ID AND EXISTS(SELECT value FROM dbo.wsiSplit (@P_REQ_ID, ',') WHERE value = DT.LIQ_REQ_ID)))
--Tìm tài sản phiếu đề xuất thì range lại trong phạm vi của phiếu //khiemchg
OR ((@p_LOCATION IS NULL OR @p_LOCATION='') AND A.AUTH_STATUS = 'A'))
----LUCTV : 22 -03 -19 BO SUNG LEFT JOIN ASS_TRANSACTIONS
AND (AN.ADDNEW_ID LIKE N'%'+ @p_ADDNEWID +'%' OR @p_ADDNEWID ='' OR @p_ADDNEWID IS NULL)
AND (AN.NOTES LIKE N'%' + @p_ADDNEW_NOTES + '%' OR @p_ADDNEW_NOTES ='' OR @p_ADDNEW_NOTES IS NULL)
AND (EM.EMP_NAME LIKE N'%'+ @p_EMP_NAME +'%' OR @p_EMP_NAME ='' OR @p_EMP_NAME IS NULL)
AND (EM.EMP_CODE LIKE N'%'+ @p_EMP_CODE +'%' OR @p_EMP_CODE ='' OR @p_EMP_CODE IS NULL)
AND (AU.TRN_ID LIKE N'%'+ @p_USE_MASTER_ID +'%' OR @p_USE_MASTER_ID IS NULL OR @p_USE_MASTER_ID ='')
AND (@P_UNUSED_ASSET IS NULL OR @P_UNUSED_ASSET = ''
OR (@P_UNUSED_ASSET = 'TK' AND (((A.EMP_ID IS NULL OR A.EMP_ID = '') AND (A.BRANCH_ID IS NULL OR A.BRANCH_ID = ''))
OR (A.BRANCH_ID IS NOT NULL AND (A.EMP_ID IS NULL OR A.EMP_ID = ''))))
OR (@P_UNUSED_ASSET = 'TH' AND A.IS_COLLECT = '1')
OR (@P_UNUSED_ASSET = 'DSD' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '' AND a.EMP_ID IS NOT NULL AND A.EMP_ID <> ''))
--PHUCVH 05/11/22 TÌM KIẾM THEO HDH VÀ BẢN QUYỀN MICROSOFT
AND (A.OS = @P_OS OR @P_OS IS NULL OR @P_OS = '')
AND (A.MO_LICENSE = @P_MO_LICENSE OR @P_MO_LICENSE IS NULL OR @P_MO_LICENSE = '')
AND ((A.REQ_ID = @P_REQ_ID AND @p_IS_FIND_REQ_ID = '1') OR @p_IS_FIND_REQ_ID = '0' OR @p_IS_FIND_REQ_ID IS NULL OR @p_IS_FIND_REQ_ID = '' OR @P_REQ_ID IS NULL OR @P_REQ_ID = '')
AND (CONVERT(DATETIME,A.BUY_DATE,103) >= CONVERT(DATETIME,@p_FROM_BUY_DATE,103) OR @p_FROM_BUY_DATE IS NULL OR @p_FROM_BUY_DATE = '')
AND (CONVERT(DATETIME,A.BUY_DATE,103) <= CONVERT(DATETIME,@p_TO_BUY_DATE,103) OR @p_TO_BUY_DATE IS NULL OR @p_TO_BUY_DATE = '')
AND (CONVERT(DATETIME,A.USE_DATE_KT,103) >= CONVERT(DATETIME,@p_FROM_USE_DATE_KT,103) OR @p_FROM_USE_DATE_KT IS NULL OR @p_FROM_USE_DATE_KT = '')
AND (CONVERT(DATETIME,A.USE_DATE_KT,103) <= CONVERT(DATETIME,@p_TO_USE_DATE_KT,103) OR @p_TO_USE_DATE_KT IS NULL OR @p_TO_USE_DATE_KT = '')
AND (AN.PR_CODE like N'%' + @p_PR_CODE + '%' OR @p_PR_CODE IS NULL OR @p_PR_CODE = '')
AND (AN.PL_CODE like N'%' + @p_PL_CODE + '%' OR @p_PL_CODE IS NULL OR @p_PL_CODE = '')
AND (AN.CONTRACT_ID like N'%' + @p_ASS_CONTRACT_CODE + '%' OR @p_ASS_CONTRACT_CODE IS NULL OR @p_ASS_CONTRACT_CODE = '')
AND (AP.INVOICE_NO like N'%' + @p_INVOICE_NO + '%' OR @p_INVOICE_NO IS NULL OR @p_INVOICE_NO = '')
AND (AP.INVOICE_SYMPOL like N'%' + @p_INVOICE_SYMPOL + '%' OR @p_INVOICE_SYMPOL IS NULL OR @p_INVOICE_SYMPOL = '')
AND(A.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 (@p_TOP)
MK.TLSUBBRID,A.MONTHLY_AMORT_AMT,
A.ASSET_ID, A.[TYPE_ID],C.[TYPE_CODE], C.[TYPE_NAME], A.GROUP_ID,B.GROUP_CODE, B.GROUP_NAME, B.ASS_CAT,
CASE
WHEN A.ASSET_CODE IS NULL OR A.ASSET_CODE = '' THEN A.ASS_CODE_TMP
ELSE A.ASSET_CODE
END AS ASSET_CODE,
A.ASSET_NAME, A.ASSET_SERIAL_NO, A.ASSET_DESC,
A.SUP_ID, A.BUY_PRICE, A.AMORT_AMT, A.ASS_TYPE, A.BRANCH_ID,BR.BRANCH_CODE,BR.BRANCH_NAME,A.DEPT_ID,DP.DEP_CODE,DP.DEP_NAME, A.EMP_ID,EM.EMP_CODE AS EMP_CODE,EM.EMP_NAME AS EMP_NAME, A.DIVISION_ID,
A.BUY_DATE, A.USE_DATE, A.SPECIAL_ASS, A.AMORT_MONTH, A.AMORT_RATE, A.AMORT_START_DATE, A.AMORT_END_DATE,
A.FIRST_AMORT_AMT,
A.AMORTIZED_MONTH,
(A.AMORT_MONTH - A.AMORTIZED_MONTH) AS REMAIN_MONTH,
A.AMORTIZED_AMT,
ISNULL((A.AMORT_AMT - A.AMORTIZED_AMT), ISNULL(A.AMORT_AMT,0)) AS REMAIN_AMORTIZED_AMT, --So tien khau hao con lai
A.PO_ID,A.PD_ID, A.WAREHOUSE_ID, A.LOCATION, A.REF_ASSET_ID,
A.REF_AMORTIZED_AMT,
A.WARRANTY_MONTHS,
A.NOTES,
A.AMORT_STATUS,
D.STATUS_NAME AMORT_STATUS_NAME,
A.ASS_STATUS,
CASE
WHEN A.LIQ_W_STATUS = '1' AND A.AMORT_STATUS = 'DTL' THEN N'Đã thanh lý'
ELSE E.STATUS_NAME
END AS ASS_STATUS_NAME, --Tinh trang tai san
A.ASS_STATUS_DESC,
A.RECORD_STATUS,
A.AUTH_STATUS,
ZZ.AUTH_STATUS_NAME,
A.MAKER_ID,
A.CREATE_DT,
A.CHECKER_ID,
A.USE_STATUS,--THIEUVQ 23062015
A.APPROVE_DT,
A.ACCOUNT_GL,
A.VAT,
A.PRICE_VAT,
--dbo.FN_GET_CHINHANH(A.BRANCH_ID,'KV') KHU_VUC,
NULL AS KHU_VUC,
--dbo.FN_GET_CHINHANH(A.BRANCH_ID,'CN') CHI_NHANH,
BRCR.BRANCH_NAME CHI_NHANH,
BBB.BRANCH_NAME PGD ,
B.AMORT_MONTH AS GROUP_AMORT_MONTH,
BRCR.BRANCH_NAME AS BRANCH_RECIVE,
BRCR.BRANCH_NAME AS BRANCH_CREATE_NAME,
BRCR.BRANCH_ID AS BRANCH_CREATE_ID,
BRCR.BRANCH_CODE AS BRANCH_CREATE_CODE,
--LUCTV : 26-12-2018 BO SUNG AMORT MIN - MAX CUA TAI SAN THEO NHOM DE HIEN THI BEN MAN HINH CHINH SUA THONG TIN TAI SAN
B.AMORT_MONTH_MAX,
B.AMORT_MONTH_MIN,
--LUCTV : 22 -03 -19 BO SUNG LEFT JOIN ASS_TRANSACTIONS
AN.ADDNEW_ID, AN.NOTES AS ADDNEW_NOTES,AUMD.USER_MASTER_ID AS USE_MASTER_ID,
DPT.DEP_ID as DVCM_ID, DPT.DEP_NAME AS DVCM_NAME,
AN.WAR_EXPIRE_DT,--Ngày hết hạn bảo hành
AN.PR_CODE, --SỐ PR
AN.CONTRACT_ID AS ASS_CONTRACT_CODE, -- SỐ HỢP ĐỒNG
AN.PL_CODE, --SỐ TỜ TRÌNH
AP.INVOICE_NO, --SỐ HOÁ ĐƠN
AP.INVOICE_SYMPOL, --SỐ HOÁ ĐƠN
----Start Phucvh 13/10/22 Get khối/Trung tâm/Phòng ban
CASE WHEN DP.TYPE = 'K' THEN DP.DEP_ID ELSE K.DEP_ID END AS BLOCK_ID,
CASE WHEN DP.TYPE = 'K' THEN DP.DEP_NAME ELSE K.DEP_NAME END AS BLOCK_NAME,
CASE WHEN DP.TYPE = 'TT' THEN DP.DEP_ID ELSE TT.DEP_ID END AS CENTER_ID,
CASE WHEN DP.TYPE = 'TT' THEN DP.DEP_NAME ELSE TT.DEP_NAME END AS CENTER_NAME,
CASE WHEN DP.TYPE = 'PB' THEN DP.DEP_ID ELSE NULL END AS DEPT_ID_1,
CASE WHEN DP.TYPE = 'PB' THEN DP.DEP_NAME ELSE NULL END AS DEP_NAME_1,
----End Phucvh 13/10/22 Get khối/Trung tâm/Phòng ban
CA.CONTENT AS IS_OS, --Hệ điều hành
CA1.CONTENT AS IS_MO_LICENSE, --Bản quyền Microsoft Office
A.REQ_ID,
A.REQ_CODE,
AN.WAR_EXPIRE_DT AS WAR_END_DT, --ngày hết hạn bảo hành
(CASE WHEN A.IS_COLLECT <> '1' THEN N'Đang sử dụng' ELSE N'Đã thu hồi' END) AS IS_COLLECT_NAME --Trạng thái tài sản (đang sử dụng || đang thu hồi)
,
--A.ASS_CONTRACT_CODE,
CASE
WHEN DEP_CRE.DEP_ID IS NULL AND A.BRANCH_CREATE = 'DV0001' THEN N'PHÒNG QUẢN LÝ TÀI SẢN'
ELSE DEP_CRE.DEP_NAME
END AS DEP_CREATE_NAME,
CU.UNIT_NAME AS UNIT_NAME,
CR.REGION_NAME AS REGION_NAME,
'1' AS QTY,
B1.GROUP_NAME AS GROUP_NAME_1,
B2.GROUP_NAME AS GROUP_NAME_2
--KHIEMCHG: LẤY THÔNG TIN TÀI SẢN CHO KẾ TOÁN
,A.AMORT_START_DATE NGAY_BD_KH,
ISNULL(A.FIRST_AMORT_AMT,0) SO_TIEN_KH_THANG_DAU_TIEN,
ISNULL(A.MONTHLY_AMORT_AMT,0) SO_TIEN_KH_HANG_THANG,
A.AMORT_MONTH SO_THANG_KH,
ISNULL(A.AMORTIZED_AMT,0) KHAU_HAO_LK,
CASE
WHEN A.TYPE_ID = 'TSCD' THEN (CASE WHEN A.AMORT_STATUS ='VNM' THEN epa.ACC_NO
ELSE ISNULL(agkt3.ASSET_ACCTNO,agkt.ASSET_ACCTNO) END)
WHEN A.TYPE_ID = 'CCLD' THEN (CASE
WHEN A.AMORT_STATUS ='VNM' THEN agkt.ASSET_ACCTNO
WHEN A.AMORT_STATUS ='NKH' OR A.IS_COLLECT = 1 THEN epa2.ACC_NO
ELSE agkt.AMORT_ACCTNO END)
END AS TK,
aadl.AMORT_AMT KHAU_HAO_KY_GAN_NHAT
-- SELECT END
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 CM_EMPLOYEE EM ON EM.EMP_ID=A.EMP_ID
LEFT JOIN TL_USER MK ON MK.TLNANME = A.MAKER_ID
LEFT JOIN CM_BRANCH BBB ON BBB.BRANCH_ID = A.BRANCH_ID
LEFT JOIN CM_DEPARTMENT DP ON DP.DEP_ID = A.DEPT_ID
LEFT JOIN CM_DEPARTMENT DPT ON DPT.DEP_ID = B.DVCM_ID
LEFT JOIN CM_BRANCH BRCR ON BRCR.BRANCH_ID = A.BRANCH_CREATE
--LUCTV : 22 -03 -19 BO SUNG LEFT JOIN ASS_TRANSACTIONS
LEFT JOIN ASS_TRANSACTIONS AT ON AT.ASSET_ID = A.ASSET_ID AND AT.TRN_TYPE = 'ADD_NEW'
LEFT JOIN ASS_ADDNEW AN ON AT.TRN_ID = AN.ADDNEW_ID AND AT.TRN_TYPE = 'ADD_NEW'
LEFT JOIN CM_DEPARTMENT DEP_CRE ON AN.DEPT_CREATE = DEP_CRE.DEP_ID
LEFT JOIN ASS_PO AP ON AN.ADDNEW_ID = AP.ADDNEW_ID
--LUCTV: 26-08-2019 BO SUNG THEM DIEU KIEN KHI NAO NHAP MA PHIEU XUAT THI MOI LEFT JOIN
LEFT JOIN ASS_TRANSACTIONS AU ON AU.ASSET_ID = A.ASSET_ID AND AU.TRN_TYPE ='ADD_USE'
LEFT JOIN ASS_USE_MULTI_DT AUMD ON AU.TRN_ID = AUMD.USE_MULTI_ID AND AU.TRN_TYPE ='ADD_USE'
LEFT JOIN CM_ALLCODE CA ON A.OS = CA.CDVAL AND CA.CDNAME = 'OS_LICENSE' AND CA.CDTYPE = 'STATUS' --HỆ ĐIỀU HÀNH
LEFT JOIN CM_ALLCODE CA1 ON A.MO_LICENSE = CA1.CDVAL AND CA1.CDNAME = 'OS_LICENSE' AND CA1.CDTYPE = 'STATUS' --BẢN QUYỀN MICROSOFT OFFICE
LEFT JOIN CM_UNIT CU ON B.UNIT = CU.UNIT_ID
LEFT JOIN CM_REGIONS CR ON BR.REGION_ID = CR.REGION_ID
LEFT JOIN ASS_GROUP B1 ON B1.GROUP_ID = B.PARENT_ID
LEFT JOIN ASS_GROUP B2 ON B2.GROUP_ID = B1.PARENT_ID
--PHUCVH: GET KHOI/TRUNG TAM/ PHONG BAN CUA TAI SAN
LEFT JOIN CM_DEPARTMENT TT ON TT.DEP_ID = DP.FATHER_ID
LEFT JOIN CM_DEPARTMENT K ON K.DEP_ID = DP.KHOI_ID
LEFT JOIN TR_REQUEST_SHOP_DOC REQ ON A.REQ_ID = REQ.REQ_ID
--KHIEMCHG: LẤY THÔNG TIN TÀI SẢN CHO KẾ TOÁN
LEFT JOIN ASS_GROUP agkt3 ON A.REF_GROUP_ID = agkt3.GROUP_ID
LEFT JOIN ASS_GROUP agkt ON A.GROUP_ID = agkt.GROUP_ID
LEFT JOIN ASS_GROUP agkt1 ON agkt1.GROUP_ID=agkt.PARENT_ID
LEFT JOIN ASS_GROUP agkt2 ON agkt2.GROUP_ID=agkt1.PARENT_ID
LEFT JOIN ENTRIES_POST_ACCNO epa ON ISNULL(A.REF_GROUP_ID,agkt2.GROUP_ID)=epa.GROUP_ID AND epa.ACC_TYPE='BUY_TSCD'
LEFT JOIN ENTRIES_POST_ACCNO epa2 ON epa2.ACC_TYPE='BW_AMORT_CCLD'
LEFT JOIN ASS_AMORT_DT_LATEST aadl ON A.ASSET_ID = aadl.ASSET_ID
WHERE 1 = 1
AND (A.ASSET_ID = @p_ASSET_ID OR @p_ASSET_ID IS NULL OR @p_ASSET_ID = '')
AND (A.[TYPE_ID] = @p_TYPE_ID OR @p_TYPE_ID IS NULL OR @p_TYPE_ID = '')
AND (B.[ASS_CAT] = @p_ASS_CAT OR @p_ASS_CAT IS NULL OR @p_ASS_CAT = '')
AND (A.GROUP_ID = @p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID = '')
AND ((A.ASSET_CODE like '%' + @p_ASSET_CODE + '%' OR @p_ASSET_CODE IS NULL OR @p_ASSET_CODE = '')
OR (A.ASS_CODE_TMP like '%' + @p_ASSET_CODE + '%' 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.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.SUP_ID = @p_SUP_ID OR @p_SUP_ID IS NULL OR @p_SUP_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.ASS_TYPE = @p_ASS_TYPE OR @p_ASS_TYPE IS NULL OR @p_ASS_TYPE = '')
AND (((A.AMORT_STATUS <> 'VNM' AND A.AMORT_STATUS IS NOT NULL
AND ((@p_LEVEL = 'ALL' AND EXISTS(SELECT BRANCH_ID from @tmp1 WHERE BRANCH_ID = A.BRANCH_ID))
OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_ID)))
OR ((A.AMORT_STATUS = 'VNM' OR ((A.AMORT_STATUS = 'DTL' OR A.AMORT_STATUS IS NULL OR A.AMORT_STATUS = '')))
AND ((@p_LEVEL = 'ALL' AND EXISTS(SELECT BRANCH_ID from @tmp1 WHERE BRANCH_ID = A.BRANCH_CREATE))
OR (@p_LEVEL = 'UNIT' AND ((A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <>'' AND A.BRANCH_ID =@p_BRANCH_ID) OR A.BRANCH_CREATE = @p_BRANCH_ID)))))
OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR (@p_LOCATION = 'ASS_PRIVATE_TF' AND A.AMORT_STATUS <> 'DTL' AND A.BRANCH_ID = @p_BRANCH_ID AND(A.DEPT_ID = @DEP_LOGIN OR @DEP_LOGIN IS NULL OR @DEP_LOGIN = ''))
)
AND (((A.AMORT_STATUS <> 'VNM' AND A.AMORT_STATUS IS NOT NULL
AND ((@p_LEVEL = 'ALL' AND EXISTS(SELECT BRANCH_ID from @tmp2 WHERE BRANCH_ID = A.BRANCH_ID))
OR (@p_LEVEL = 'UNIT' AND ((A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <>'' AND A.BRANCH_ID =@p_BRANCH_ID) OR A.BRANCH_CREATE = @p_BRANCH_LOGIN))))
OR ((A.AMORT_STATUS = 'VNM' OR ((A.AMORT_STATUS = 'DTL' OR A.AMORT_STATUS IS NULL OR A.AMORT_STATUS = '')))
AND ((@p_LEVEL = 'ALL' AND EXISTS(SELECT BRANCH_ID from @tmp2 WHERE BRANCH_ID = A.BRANCH_CREATE))
OR (@p_LEVEL = 'UNIT' AND ((A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <>'' AND A.BRANCH_ID =@p_BRANCH_LOGIN) OR A.BRANCH_CREATE = @p_BRANCH_LOGIN)))))
OR @p_BRANCH_LOGIN IS NULL OR @p_BRANCH_LOGIN = '' OR (@p_LOCATION = 'ASS_PRIVATE_TF' AND A.AMORT_STATUS <> 'DTL' AND A.BRANCH_ID = @p_BRANCH_ID AND(A.DEPT_ID = @DEP_LOGIN OR @DEP_LOGIN IS NULL OR @DEP_LOGIN = ''))
)
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 (DATEDIFF(DAYOFYEAR,A.BUY_DATE,CONVERT(datetime, @p_BUY_DATE,103)) = 0 OR @p_BUY_DATE IS NULL OR @p_BUY_DATE = '')
-- DuyTN bổ sung điều kiện search theo năm
AND (YEAR(A.BUY_DATE) = @P_YEAR OR @P_YEAR = '' OR @P_YEAR IS NULL)
--AND (DATEDIFF(DAYOFYEAR,A.USE_DATE,CONVERT(datetime, @p_USE_DATE,103)) = 0 OR @p_USE_DATE IS NULL OR @p_USE_DATE = '')
AND (A.SPECIAL_ASS = @p_SPECIAL_ASS OR @p_SPECIAL_ASS IS NULL OR @p_SPECIAL_ASS = '')
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 (DATEDIFF(DAYOFYEAR,A.AMORT_START_DATE,CONVERT(datetime, @p_AMORT_START_DATE,103)) = 0 OR @p_AMORT_START_DATE IS NULL OR @p_AMORT_START_DATE = '')
AND (DATEDIFF(DAYOFYEAR,A.AMORT_END_DATE,CONVERT(datetime, @p_AMORT_END_DATE,103)) = 0 OR @p_AMORT_END_DATE IS NULL OR @p_AMORT_END_DATE = '')
AND (A.AMORTIZED_MONTH = @p_AMORTIZED_MONTH OR @p_AMORTIZED_MONTH IS NULL)
AND ((A.AMORT_MONTH - A.AMORTIZED_MONTH) = @p_REMAIN_MONTH OR @p_REMAIN_MONTH IS NULL)
AND (A.PO_ID = @p_PO_ID OR @p_PO_ID IS NULL OR @p_PO_ID = '')
AND (A.WAREHOUSE_ID = @p_WAREHOUSE_ID OR @p_WAREHOUSE_ID IS NULL OR @p_WAREHOUSE_ID = '')
--AND (A.LOCATION like N'%' + @p_LOCATION + '' OR @p_LOCATION IS NULL OR @p_LOCATION = '')
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.AMORT_STATUS = @p_AMORT_STATUS OR @p_AMORT_STATUS IS NULL OR @p_AMORT_STATUS = '')
AND (A.ASS_STATUS = @p_ASS_STATUS OR @p_ASS_STATUS IS NULL OR @p_ASS_STATUS = '')
AND (CHARINDEX(ISNULL(A.AMORT_STATUS,''), @p_AMORT_STATUS) <> 0 OR @p_AMORT_STATUS = '' OR @p_AMORT_STATUS IS NULL
OR(A.AMORT_STATUS IS NULL AND @p_LOCATION = 'ADD_USE'))
AND (A.ASS_STATUS_DESC like N'%' + @p_ASS_STATUS_DESC + '' OR @p_ASS_STATUS_DESC IS NULL OR @p_ASS_STATUS_DESC = '')
AND (A.WARRANTY_MONTHS = @p_WARRANTY_MONTHS OR @p_WARRANTY_MONTHS IS NULL)
AND (A.NOTES like N'%' + @p_NOTES + '%' OR @p_NOTES IS NULL OR @p_NOTES = '')
AND A.RECORD_STATUS = '1'
AND (A.USE_STATUS = @p_USE_STATUS OR @p_USE_STATUS IS NULL OR @p_USE_STATUS = '')
AND ((@p_LOCATION =N'IS_LIQUID' AND NOT EXISTS(SELECT ASSET_ID FROM ASS_COLLECT_MULTI_DT WHERE AUTH_STATUS='A' AND IS_LIQ ='1' AND A.ASSET_ID = A.ASSET_ID))
OR (@p_LOCATION =N'IS_COL' AND NOT EXISTS(SELECT ASSET_ID FROM ASS_COLLECT_MULTI_DT WHERE AUTH_STATUS='A' AND A.ASSET_ID = A.ASSET_ID))
OR (@p_LOCATION =N'LIQ' AND EXISTS(SELECT ASSET_ID FROM ASS_COLLECT_MULTI_DT WHERE AUTH_STATUS='A' AND IS_LIQ ='1' AND ASSET_ID = A.ASSET_ID))
-- ----26-02-2020 BO SUNG THEM NEU LOCATION TRUYEN XUONG LA PRINT TEMP THI LUC NAY CHI LAY NHUNG TAI SAN <> 'VNM' VA CHI LAY DON VI DOC LAP, KHONG LAY TOAN HANG
-- ----VI HIEN TAI DANG MAC DINH LAY TOAN HANG, TRONG KHI IN NHAN DANG MAC DINH IN THEO DON VI DOC LAP
OR (@p_LOCATION =N'PRINT_TEMP' AND A.AMORT_STATUS <>'VNM' AND A.BRANCH_ID =@p_BRANCH_ID)
--START Phucvh 06/10/22 Tài sản được nhập thông qua PYC thuộc ĐV Xuất có loại tài sản chưa hoàn thành và TYPE_XL: Mua mới - Tài sản không nhập từ PYC
OR (@p_LOCATION = N'ADD_USE' AND (A.CURRENT_TRANS IS NULL OR A.CURRENT_TRANS = '') AND (A.BRANCH_ID IS NULL OR A.BRANCH_ID = '')
AND ((REQ.BRANCH_ID = @P_BRANCH_PYC AND A.REQ_ID IS NOT NULL AND A.REQ_ID <> '')
OR (REQ.REQ_ID IS NULL OR REQ.REQ_ID = '')))
--END Phucvh 06/10/22 Tài sản được nhập thông qua PYC thuộc ĐV Xuất có loại tài sản chưa hoàn thành và TYPE_XL: Mua mới - Tài sản không nhập từ PYC
OR (@p_LOCATION = N'TRANSFER' AND A.AMORT_STATUS <> 'DTL')
--Start Phucvh 25/10/22
OR (@p_LOCATION = N'ASS_COLLECT' AND A.AUTH_STATUS = 'A' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '')--PYC THU HỒI TÀI SẢN
OR (@p_LOCATION = N'ASS_TRANSFER' AND A.AUTH_STATUS = 'A' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '')--PYC ĐIỀU CHUYỂN
OR (@p_LOCATION = N'ASS_REPAIR' AND A.AUTH_STATUS = 'A' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '')--PYC SỬA CHỮA
--End Phucvh 25/10/22
--Sửa chữa nhiều TS
OR (@p_LOCATION = N'ASS_REPAIR_MUL' AND (
(@P_REQ_ID IS NOT NULL AND @P_REQ_ID <> '' AND EXISTS(SELECT DT.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT DT WHERE DT.REQ_DOC_ID = @P_REQ_ID AND DT.IS_DVCM = '0' AND DT.ASS_ID = A.ASSET_ID))
OR((@P_REQ_ID IS NULL OR @P_REQ_ID = '') AND A.AUTH_STATUS = 'A' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '')))
--Điều chuyển tài sản nội bộ
OR (@p_LOCATION = N'ASS_PRIVATE_TF' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '' AND A.AUTH_STATUS = 'A')
OR (@p_LOCATION = N'ASS_COLLECT_MUL' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '' AND A.AUTH_STATUS = 'A')
--KHANHNHD 1/11/2 Tài sản đã thêm vào phiếu đề xuất thì không được tìm thấy
-- OR (@p_LOCATION = N'ASS_LIQ' AND( @P_REQ_ID iS NULL OR @P_REQ_ID='') AND A.CURRENT_TRANS IS NULL AND A.ASSET_ID NOT IN (SELECT ASSET_ID
-- FROM ASS_LIQ_REQUEST_DT DT
-- WHERE (ASSET_ID = @p_ASSET_ID OR @p_ASSET_ID IS NULL OR @p_ASSET_ID = '')
-- ))
OR (@p_LOCATION = N'ASS_LIQ' AND( @P_REQ_ID iS NULL OR @P_REQ_ID='') AND A.CURRENT_TRANS IS NULL AND NOT EXISTS(SELECT ASSET_ID
FROM ASS_LIQ_REQUEST_DT DT
WHERE DT.ASSET_ID = A.ASSET_ID))
OR (@p_LOCATION = N'ASS_LIQDATION' AND NOT EXISTS (SELECT ASSET_ID
FROM ASS_LIQUIDATION_DT ald WHERE ald.ASSET_ID=A.ASSET_ID))
--KHANHNHD 1/11/2 Tài sản đã thêm vào phiếu đề xuất thì không được tìm thấy
--khiemchg TÌM KIẾM THEO LOẠI TS TRONG PYC -- ĐIỀU CHUYỂN TÀI SẢN
-- OR (@p_LOCATION = N'ASS_TRANSFER_MULTI' AND CHARINDEX(ISNULL(A.AMORT_STATUS,''), 'CKH,DKH,DPB,KHX,KKH,NKH') <> 0
-- AND A.AUTH_STATUS = 'A'
-- AND (@P_REQ_DT_TYPE = 'CPDC'
-- AND (A.GROUP_ID IN (SELECT IG.GROUP_ID FROM ASS_GROUP IG WHERE IG.GROUP_CODE IN (SELECT AG.GROUP_CODE FROM ASS_GROUP AG WHERE AG.GROUP_ID IN (SELECT ASS_GROUP_ID FROM TR_REQUEST_SHOP_DOC_DT A
-- WHERE REQ_DOC_ID = @P_REQ_ID AND TYPE_XL = @P_REQ_DT_TYPE)))
-- AND (A.BRANCH_ID <> (SELECT BRANCH_ID FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @P_REQ_ID)
-- OR (A.DEPT_ID <> (SELECT A.DEP_ID FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @P_REQ_ID) AND A.BRANCH_ID = 'DV0001')))
-- OR (@P_REQ_DT_TYPE = 'DCTS' AND A.ASSET_ID IN (SELECT A.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT A WHERE A.REQ_DOC_ID = @P_REQ_ID))
-- OR @P_REQ_DT_TYPE = '' OR @P_REQ_DT_TYPE IS NULL)
-- )
OR (@p_LOCATION = N'ASS_TRANSFER_MULTI' AND CHARINDEX(ISNULL(A.AMORT_STATUS,''), 'CKH,DKH,DPB,KHX,KKH,NKH') <> 0
AND A.AUTH_STATUS = 'A'
AND (@P_REQ_DT_TYPE = 'CPDC'
AND (EXISTS(SELECT IG.GROUP_ID FROM ASS_GROUP IG WHERE IG.GROUP_ID = A.GROUP_ID AND EXISTS(SELECT AG.GROUP_CODE FROM ASS_GROUP AG WHERE AG.GROUP_CODE = IG.GROUP_CODE AND EXISTS(SELECT ASS_GROUP_ID FROM TR_REQUEST_SHOP_DOC_DT A
WHERE REQ_DOC_ID = @P_REQ_ID AND TYPE_XL = @P_REQ_DT_TYPE AND A.ASS_GROUP_ID = AG.GROUP_ID)))
AND (A.BRANCH_ID <> (SELECT BRANCH_ID FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @P_REQ_ID)
OR (A.DEPT_ID <> (SELECT A.DEP_ID FROM TR_REQUEST_SHOP_DOC A WHERE A.REQ_ID = @P_REQ_ID) AND A.BRANCH_ID = 'DV0001')))
OR (@P_REQ_DT_TYPE = 'DCTS' AND EXISTS(SELECT DT.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT DT WHERE DT.REQ_DOC_ID = @P_REQ_ID AND DT.ASS_ID = A.ASSET_ID))
OR @P_REQ_DT_TYPE = '' OR @P_REQ_DT_TYPE IS NULL)
)
--khiemchg enD
OR @p_LOCATION = 'ASS_INFO'
--Tìm tài sản phiếu đề xuất thì range lại trong phạm vi của phiếu //khiemchg
-- OR (@p_LOCATION = N'ASS_LIQ' AND @P_REQ_ID IS NOT NULL AND @P_REQ_ID <> '' AND A.ASSET_ID IN (SELECT ASSET_ID
-- FROM ASS_LIQ_REQUEST_DT DT
-- WHERE DT.LIQ_REQ_ID IN (SELECT value FROM dbo.wsiSplit (@P_REQ_ID, ','))))
OR (@p_LOCATION = N'ASS_LIQ' AND @P_REQ_ID IS NOT NULL AND @P_REQ_ID <> '' AND EXISTS(SELECT ASSET_ID
FROM ASS_LIQ_REQUEST_DT DT
WHERE DT.ASSET_ID = A.ASSET_ID AND EXISTS(SELECT value FROM dbo.wsiSplit (@P_REQ_ID, ',') WHERE value = DT.LIQ_REQ_ID)))
--Tìm tài sản phiếu đề xuất thì range lại trong phạm vi của phiếu //khiemchg
OR ((@p_LOCATION IS NULL OR @p_LOCATION='') AND A.AUTH_STATUS = 'A'))
----LUCTV : 22 -03 -19 BO SUNG LEFT JOIN ASS_TRANSACTIONS
AND (AN.ADDNEW_ID LIKE N'%'+ @p_ADDNEWID +'%' OR @p_ADDNEWID ='' OR @p_ADDNEWID IS NULL)
AND (AN.NOTES LIKE N'%' + @p_ADDNEW_NOTES + '%' OR @p_ADDNEW_NOTES ='' OR @p_ADDNEW_NOTES IS NULL)
AND (EM.EMP_NAME LIKE N'%'+ @p_EMP_NAME +'%' OR @p_EMP_NAME ='' OR @p_EMP_NAME IS NULL)
AND (EM.EMP_CODE LIKE N'%'+ @p_EMP_CODE +'%' OR @p_EMP_CODE ='' OR @p_EMP_CODE IS NULL)
AND (AU.TRN_ID LIKE N'%'+ @p_USE_MASTER_ID +'%' OR @p_USE_MASTER_ID IS NULL OR @p_USE_MASTER_ID ='')
AND (@P_UNUSED_ASSET IS NULL OR @P_UNUSED_ASSET = ''
OR (@P_UNUSED_ASSET = 'TK' AND (((A.EMP_ID IS NULL OR A.EMP_ID = '') AND (A.BRANCH_ID IS NULL OR A.BRANCH_ID = ''))
OR (A.BRANCH_ID IS NOT NULL AND (A.EMP_ID IS NULL OR A.EMP_ID = ''))))
OR (@P_UNUSED_ASSET = 'TH' AND A.IS_COLLECT = '1')
OR (@P_UNUSED_ASSET = 'DSD' AND A.BRANCH_ID IS NOT NULL AND A.BRANCH_ID <> '' AND a.EMP_ID IS NOT NULL AND A.EMP_ID <> ''))
--PHUCVH 05/11/22 TÌM KIẾM THEO HDH VÀ BẢN QUYỀN MICROSOFT
AND (A.OS = @P_OS OR @P_OS IS NULL OR @P_OS = '')
AND (A.MO_LICENSE = @P_MO_LICENSE OR @P_MO_LICENSE IS NULL OR @P_MO_LICENSE = '')
AND ((A.REQ_ID = @P_REQ_ID AND @p_IS_FIND_REQ_ID = '1') OR @p_IS_FIND_REQ_ID = '0' OR @p_IS_FIND_REQ_ID IS NULL OR @p_IS_FIND_REQ_ID = '' OR @P_REQ_ID IS NULL OR @P_REQ_ID = '')
AND (CONVERT(DATETIME,A.BUY_DATE,103) >= CONVERT(DATETIME,@p_FROM_BUY_DATE,103) OR @p_FROM_BUY_DATE IS NULL OR @p_FROM_BUY_DATE = '')
AND (CONVERT(DATETIME,A.BUY_DATE,103) <= CONVERT(DATETIME,@p_TO_BUY_DATE,103) OR @p_TO_BUY_DATE IS NULL OR @p_TO_BUY_DATE = '')
AND (CONVERT(DATETIME,A.USE_DATE_KT,103) >= CONVERT(DATETIME,@p_FROM_USE_DATE_KT,103) OR @p_FROM_USE_DATE_KT IS NULL OR @p_FROM_USE_DATE_KT = '')
AND (CONVERT(DATETIME,A.USE_DATE_KT,103) <= CONVERT(DATETIME,@p_TO_USE_DATE_KT,103) OR @p_TO_USE_DATE_KT IS NULL OR @p_TO_USE_DATE_KT = '')
AND (AN.PR_CODE like N'%' + @p_PR_CODE + '%' OR @p_PR_CODE IS NULL OR @p_PR_CODE = '')
AND (AN.PL_CODE like N'%' + @p_PL_CODE + '%' OR @p_PL_CODE IS NULL OR @p_PL_CODE = '')
AND (AN.CONTRACT_ID like N'%' + @p_ASS_CONTRACT_CODE + '%' OR @p_ASS_CONTRACT_CODE IS NULL OR @p_ASS_CONTRACT_CODE = '')
AND (AP.INVOICE_NO like N'%' + @p_INVOICE_NO + '%' OR @p_INVOICE_NO IS NULL OR @p_INVOICE_NO = '')
AND (AP.INVOICE_SYMPOL like N'%' + @p_INVOICE_SYMPOL + '%' OR @p_INVOICE_SYMPOL IS NULL OR @p_INVOICE_SYMPOL = '')
AND(A.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].[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].[TR_REQUEST_SHOP_DOC_CHECK_APPROVE]'
GO
ALTER PROCEDURE [dbo].[TR_REQUEST_SHOP_DOC_CHECK_APPROVE]
@p_REQ_ID VARCHAR(20),
@p_TLNAME VARCHAR(100),
@p_TYPE VARCHAR(20),
@p_PROCESS_TYPE VARCHAR(50) --NẾU TYPE = PYC_CHECK_DVCM THÌ @p_PROCESS_TYPE TRUYỀN XUỐNG LÀ DEP_ID
AS
BEGIN TRANSACTION
DECLARE @ROLE_LOGIN TABLE(ROLE_USER 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_TLNAME) tugr
IF(@p_TYPE = 'PYC')
BEGIN
IF(EXISTS(SELECT A.ID FROM PL_REQUEST_PROCESS A WHERE A.REQ_ID = @p_REQ_ID AND A.STATUS = 'C' AND A.PROCESS_TYPE = @p_PROCESS_TYPE
AND EXISTS(SELECT RL.ROLE_USER FROM @ROLE_LOGIN RL WHERE RL.BRANCH_ID = A.BRANCH_ID
AND (A.BRANCH_ID = 'DV0001' AND A.DEP_ID = RL.DEP_ID OR A.BRANCH_ID <> 'DV0001')
AND RL.ROLE_USER = A.ROLE_USER))
OR EXISTS(SELECT trsd.REQ_ID FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.AUTH_STATUS IN ('E','R')
AND trsd.REQ_ID = @p_REQ_ID
AND trsd.MAKER_ID = @p_TLNAME
AND @p_PROCESS_TYPE = 'Update'))
BEGIN
ROLLBACK TRANSACTION
SELECT '0' as Result, '' ErrorDesc
RETURN '0'
END
ELSE
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' ErrorDesc
RETURN '-1'
END
END
ELSE IF (@p_TYPE = 'INVENTORY')
BEGIN
IF(EXISTS(SELECT A.ID FROM PL_REQUEST_PROCESS A WHERE A.REQ_ID = @p_REQ_ID AND A.STATUS = 'C' AND A.PROCESS_TYPE = @p_PROCESS_TYPE AND @p_TLNAME = A.ROLE_USER)
OR EXISTS(SELECT aim.INVENT_ID FROM ASS_INVENTORY_MASTER aim WHERE aim.AUTH_STATUS IN ('E','R')
AND aim.INVENT_ID = @p_REQ_ID
AND aim.MAKER_ID = @p_TLNAME
AND @p_PROCESS_TYPE = 'Update'))
BEGIN
ROLLBACK TRANSACTION
SELECT '0' as Result, '' ErrorDesc
RETURN '0'
END
ELSE
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' ErrorDesc
RETURN '-1'
END
END
ELSE IF(@p_TYPE = 'PYC_CHECK_DVCM')
BEGIN
IF(EXISTS(SELECT 1 FROM @ROLE_LOGIN WHERE ROLE_USER = 'DVCM' AND DEP_ID = @p_PROCESS_TYPE)
AND EXISTS(SELECT 1 FROM TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID = @p_REQ_ID AND COST_ID = @p_PROCESS_TYPE AND AUTH_STATUS = 'E'))
BEGIN
ROLLBACK TRANSACTION
SELECT '0' as Result, '' ErrorDesc
RETURN '0'
END
ELSE
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' ErrorDesc
RETURN '-1'
END
END
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' ErrorDesc
RETURN '-1'
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[fn_NHAP_KHO]'
GO
ALTER FUNCTION [dbo].[fn_NHAP_KHO](
@sp_Fromdate VARCHAR(20) = NULL,
@sp_Todate VARCHAR(20) = NULL,
@sp_DVSD VARCHAR(15) = NULL,
@sp_CCLD_Type varchar(15) = NULL,
@sp_Supplier varchar(15) = NULL,
@sp_BRANCH_ID VARCHAR(15) = NULL,
@sp_BRANCH_LOGIN VARCHAR(15) = NULL,
@sp_LEVEL VARCHAR(10) = 'ALL',
@sp_PriceFrom varchar(15) = Null,
@sp_PriceTo varchar(15) = null,
@sp_Dep_ID VARCHAR(15)= NULL)
RETURNS @returnTable TABLE
(
STT DECIMAL(18,0),
MA_CCLD VARCHAR(15),
TEN_CCLD nvarchar(200),
NGAY_NHAPKHO DATETIME,
NGAY_HACHTOAN DATETIME,
GIATRI NUMERIC(18,0),
MA_CHI_NHANH VARCHAR(15),
TEN_CHINHANH nvarchar(200),
GHI_CHU nvarchar(1000),
NHOM_CCLD_1 nvarchar(200),
NHOM_CCLD_2 nvarchar(200),
NHOM_CCLD_3 nvarchar(200),
NHOM_CCLD_4 nvarchar(200),
MA_NHOM_CCLD_1 VARCHAR(15),
MA_NHOM_CCLD_2 VARCHAR(15),
MA_NHOM_CCLD_3 VARCHAR(15),
SERIAL_NO nvarchar(1000),
MA_CHI_NHANH_KHO VARCHAR(15),
TEN_CHI_NHANH_KHO nvarchar(200),
UNIT_NAME_CCLD_3 NVARCHAR(100)
)
AS
BEGIN
declare @tmp table(BRANCH_ID varchar(15))
INSERT INTO @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@sp_BRANCH_ID)
declare @tmp_login table(BRANCH_ID varchar(15))
INSERT INTO @tmp_login SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@sp_BRANCH_LOGIN)
INSERT INTO @returnTable
SELECT
Row_number() over(order by A.ASSET_ID) AS STT,
A.ASSET_CODE MA_CCLD,
A.ASSET_NAME TEN_CCLD,
A.BUY_DATE NGAY_NHAPKHO,
A.BUY_DATE_KT NGAY_HACHTOAN,
A.BUY_PRICE GIATRI,
CASE WHEN D.BRANCH_CODE IS NULL THEN
C.BRANCH_CODE
WHEN C.BRANCH_TYPE = 'CN' THEN C.BRANCH_CODE
ELSE
D.BRANCH_CODE END AS MA_CHI_NHANH,
CASE WHEN D.BRANCH_CODE IS NULL --OR (C.BRANCH_TYPE <> 'PGD' AND C.IS_POTENTIAL = 'N')
THEN
--(SELECT TOP 1 DEP_NAME FROM CM_DEPARTMENT WHERE DEP_ID = A.DEPT_ID )
C.BRANCH_NAME
WHEN C.BRANCH_TYPE = 'CN' THEN C.BRANCH_NAME
ELSE
D.BRANCH_NAME END AS TEN_CHINHANH,
--'' TEN_CHINHANH,
'' GHI_CHU,
[dbo].[FN_GET_GROUPNAME](A.GROUP_ID,'1') AS NHOM_CCLD_1,
[dbo].[FN_GET_GROUPNAME](A.GROUP_ID,'2') AS NHOM_CCLD_2,
[dbo].[FN_GET_GROUPNAME](A.GROUP_ID,'3') AS NHOM_CCLD_3,
[dbo].[FN_GET_GROUPNAME](A.GROUP_ID,'4') AS NHOM_CCLD_4,
[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'1') AS MA_NHOM_CCLD_1,
[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'2') AS MA_NHOM_CCLD_2,
[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'3') AS MA_NHOM_CCLD_3,
--,'' MA_CHI_NHANH
A.ASSET_SERIAL_NO AS SERIAL_NO,
F.BRANCH_CODE AS MA_CHI_NHANH_KHO,
F.BRANCH_NAME AS TEN_CHI_NHANH_KHO,
G.UNIT_NAME AS UNIT_NAME_CCLD_3
FROM ASS_MASTER A
INNER JOIN ASS_GROUP B ON A.GROUP_ID = B.GROUP_ID
LEFT JOIN CM_UNIT G ON B.UNIT = G.UNIT_ID
--LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
--LEFT JOIN TL_USER MK ON MK.TLNANME = A.MAKER_ID
--LEFT JOIN CM_BRANCH C ON MK.TLSUBBRID = C.BRANCH_ID
LEFT JOIN CM_BRANCH C ON A.BRANCH_CREATE = C.BRANCH_ID
LEFT JOIN CM_EMPLOYEE E ON A.EMP_ID = E.EMP_ID
LEFT JOIN CM_BRANCH D ON D.BRANCH_ID = C.FATHER_ID
LEFT JOIN CM_BRANCH F ON A.BRANCH_CREATE=F.BRANCH_ID
WHERE
A.RECORD_STATUS = '1' AND A.AUTH_STATUS = 'A'
AND (A.BUY_DATE_KT <= CONVERT(datetime, @sp_Todate, 103) OR @sp_Todate IS NULL OR @sp_Todate = '')
AND (A.BUY_DATE_KT >= CONVERT(datetime, @sp_Fromdate, 103) OR @sp_Fromdate IS NULL OR @sp_Fromdate = '')
--AND A.ENTRY_BOOKED = 'Y'
-- DVSD
AND (A.BRANCH_ID = @sp_DVSD OR @sp_DVSD IS NULL OR @sp_DVSD = '')
-- NHOM TAI SAN
AND (A.GROUP_ID = @sp_CCLD_Type OR @sp_CCLD_Type IS NULL OR @sp_CCLD_Type = '')
-- NHA CUNG CAP
AND (A.SUP_ID = @sp_Supplier OR @sp_Supplier IS NULL OR @sp_Supplier = '')
-- NGUYEN GIA
AND (A.BUY_PRICE >= CONVERT(decimal(18), @sp_PriceFrom) OR @sp_PriceFrom IS NULL OR @sp_PriceFrom = '0' )
AND (A.BUY_PRICE <= CONVERT(decimal(18), @sp_PriceTo) OR @sp_PriceTo IS NULL OR @sp_PriceTo = '0' )
-- PHONG BAN
AND (A.DEPT_ID = @sp_Dep_ID OR @sp_Dep_ID IS NULL OR @sp_Dep_ID = '')
AND (A.TYPE_ID = 'CCLD')
-- CHUA XUAT SU DUNG
--AND (A.USE_DATE IS NULL OR A.USE_DATE = '')
-- KHONG BAO GOM TAI SAN DA THANH LY
--AND (A.AMORT_STATUS = 'VNM' )
--AND ((@sp_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp))
--OR (@sp_LEVEL = 'UNIT' AND A.BRANCH_ID = @sp_BRANCH_ID) OR @sp_BRANCH_ID = '' OR @sp_BRANCH_ID IS NULL)
--AND ((@sp_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp_login))
--OR (@sp_LEVEL = 'UNIT' AND A.BRANCH_ID = @sp_BRANCH_LOGIN) OR @sp_BRANCH_LOGIN = '' OR @sp_BRANCH_LOGIN IS NULL
--OR @sp_BRANCH_ID IS NOT NULL OR @sp_BRANCH_ID <> '')
AND ((@sp_LEVEL = 'ALL' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID from @tmp))
OR (@sp_LEVEL = 'UNIT' AND A.BRANCH_CREATE = @sp_BRANCH_ID) OR @sp_BRANCH_ID = '' OR @sp_BRANCH_ID IS NULL)
AND ((@sp_LEVEL = 'ALL' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID from @tmp_login))
OR (@sp_LEVEL = 'UNIT' AND A.BRANCH_CREATE = @sp_BRANCH_LOGIN) OR @sp_BRANCH_LOGIN = '' OR @sp_BRANCH_LOGIN IS NULL
OR @sp_BRANCH_ID IS NOT NULL OR @sp_BRANCH_ID <> '')
--AND (
--((A.AMORT_STATUS <>'VNM' AND ((@sp_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp))
-- OR (@sp_LEVEL = 'UNIT' AND A.BRANCH_ID = @sp_BRANCH_ID)))
-- OR
--(A.AMORT_STATUS = 'VNM' AND ((@sp_LEVEL = 'ALL' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID from @tmp))
-- OR (@sp_LEVEL = 'UNIT' AND A.BRANCH_CREATE = @sp_BRANCH_ID)))) OR @sp_BRANCH_ID IS NULL OR @sp_BRANCH_ID = ''
--)
--AND (
--((A.AMORT_STATUS <>'VNM' AND ((@sp_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp))
-- OR (@sp_LEVEL = 'UNIT' AND A.BRANCH_ID = @sp_BRANCH_LOGIN)))
-- OR
--(A.AMORT_STATUS = 'VNM' AND ((@sp_LEVEL = 'ALL' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID from @tmp))
-- OR (@sp_LEVEL = 'UNIT' AND A.BRANCH_CREATE = @sp_BRANCH_LOGIN)))) OR @sp_BRANCH_LOGIN IS NULL OR @sp_BRANCH_LOGIN = ''
--)
ORDER BY STT
RETURN;
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].[BUD_CONTRACT_MASTER_Upd]'
GO
/*INSERT INTO SYS_PREFIX(ID,Prefix,[Description]) VALUES('BUD_CONTRACT_MASTER','UMA','')
INSERT INTO SYS_CODEMASTERS(Prefix,CurValue,Active) VALUES('UMA','1','1')
INSERT INTO SYS_PREFIX(ID,Prefix,[Description]) VALUES('BUD_CONTRACT_DT','UDT','')
INSERT INTO SYS_CODEMASTERS(Prefix,CurValue,Active) VALUES('UDT','1','1')
*/
ALTER PROCEDURE [dbo].[BUD_CONTRACT_MASTER_Upd]
@p_CONTRACT_ID varchar(15) = NULL,
@p_BUILDING_ID varchar(15) = NULL,
@p_CONTRACT_NO nvarchar(100) = NULL,
@p_VERSION_NO int = NULL,
@p_CUST_ID varchar(15) = NULL,
@p_INPUT_DT VARCHAR(20) = NULL,
@p_AMEND_DT VARCHAR(20) = NULL,
@p_FROM_DT VARCHAR(20) = NULL,
@p_TO_DATE VARCHAR(20) = NULL,
@p_CLOSE_DT VARCHAR(20) = NULL,
@p_MONTHS int = NULL,
@p_RENT_PRICE numeric(18) = NULL,
@p_NOTES NVARCHAR(MAX)= NULL,
@p_BRANCH_ID VARCHAR(15) = NULL,
@p_RECORD_STATUS varchar(1) = NULL,
@p_AUTH_STATUS varchar(1) = NULL,
@p_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_XML_TEMP xml = NULL,
@p_VAT DECIMAL(18,0),
@p_VAT_AMT DECIMAL(18,0),
@p_DEPOSITS_AMT DECIMAL(18,0),
@p_PAYMENT_SHEDULE NVARCHAR(500),
@p_IS_SEND_APPR VARCHAR(15),
@p_SEND_APPR_DT VARCHAR(20),
@p_SIGN_USER VARCHAR(100),
@p_SIGN_DT VARCHAR(15),
@p_XML_ELEC_WAR xml = NULL
AS
/*
--Validation is here
DECLARE @ERRORSYS NVARCHAR(15) = ''
IF ( NOT EXISTS ( SELECT * FROM BUD_CONTRACT_MASTER WHERE VERSION_NO=@p_VERSION_NO
SET @ERRORSYS = ''
IF @ERRORSYS <> ''
BEGIN
SELECT ErrorCode Result, '' VERSION_NO, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
RETURN '0'
END
*/
IF(EXISTS (SELECT * FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID = @p_CONTRACT_ID AND IS_SEND_APPR = 'Y' AND AUTH_STATUS = 'U'))
BEGIN
SELECT '-1' as Result, '' CONTRACT_ID,
N'Không thể chỉnh sửa. Thông tin khai báo DTSD nội bộ đã được gửi yêu cầu phê duyệt' ErrorDesc
RETURN '-1'
END
IF(EXISTS(SELECT CONTRACT_ID FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID = @p_CONTRACT_ID AND MAKER_ID <> @p_MAKER_ID))
BEGIN
SELECT '-1' as Result, '' BUILDING_ID,
N'Không thể chỉnh sửa. Chỉ có người tạo thông tin khai báo DTSD nội bộ: ' +@p_CONTRACT_ID+
N' mới được phép chỉnh sửa. Bạn không phải là người tạo thông tin khai báo DTSD nội bộ này' ErrorDesc
RETURN '-1'
END
-----------------BẮT BUỘC NHẬP LƯỚI THÔNG TIN CHI TIẾT HỢP ĐỒNG------------------------
DECLARE @p_BUD_CONTRACT_DT_XML_COUNT INT
SET @p_BUD_CONTRACT_DT_XML_COUNT = (
SELECT @p_XML_TEMP.value('count(/Root/XmlData1)', 'INT') AS 'COUNT'
)
PRINT @p_BUD_CONTRACT_DT_XML_COUNT
IF(@p_BUD_CONTRACT_DT_XML_COUNT <= 0)
BEGIN
SELECT '-1' Result, '' CONTRACT_ID,
N'Lưới thông tin chi tiết diện tích sử dụng nội bộ không được để trống' ErrorDesc
RETURN '-1'
END
BEGIN TRANSACTION
DECLARE @stt INT = 0
IF (@p_STATUS = 'C')
BEGIN
UPDATE BUD_CONTRACT_MASTER SET
STATUS= @p_STATUS,
AUTH_STATUS='U',
APPROVE_DT=NULL,
CHECKER_ID=NULL
WHERE CONTRACT_ID=@p_CONTRACT_ID AND VERSION_NO=@p_VERSION_NO
END
ELSE
BEGIN
DELETE FROM BUD_CONTRACT_DT WHERE CONTRACT_ID=@p_CONTRACT_ID AND VERSION_NO= @p_VERSION_NO
Declare @hdoc1 INT
---BAODNQ: thêm các cột trong bảng BUD_CONTRACT_DT vào XML---
DECLARE
@d_CONTRACT_DTID VARCHAR(15),
@d_BUILD_ID VARCHAR(15),
@d_VERSION_NO INT,
@d_BUILDING_AREA_ID VARCHAR(15),
@d_RENT_AREA DECIMAL(18,2),
@d_RENT_AREA_APP DECIMAL(18,2),
@d_AREA_REMAIN DECIMAL(18,2),
@d_RENT_PRICE DECIMAL,
@d_NOTES NVARCHAR(MAX),
@d_DIEN_TICH_TANG DECIMAL(18,2),
@d_DIEN_TICH_SD_NOI_BO DECIMAL(18,2),
@d_DIEN_TICH_DA_CHO_THUE DECIMAL(18,2),
@d_DIEN_TICH_CON_LAI DECIMAL(18,2),
@d_DIEN_TICH_CAN_SD DECIMAL(18,2),
@d_REASON NVARCHAR(MAX),
@d_PRICE DECIMAL,
@d_TOTAL_AMT DECIMAL,
@d_DIEN_TICH_CON_LAI_FINAL DECIMAL(18,2),
@d_BRANCH_ID NVARCHAR(15),
@d_DEP_ID NVARCHAR(15),
@d_VAT INT,
@d_PAY_PHASE VARCHAR(15)
Exec sp_xml_preparedocument @hdoc1 Output,@p_XML_TEMP
DECLARE XmlDataDoc CURSOR FOR
SELECT *
FROM OPENXML(@hdoc1,'/Root/XmlData1',2)
WITH
(
---BAODNQ: thêm các cột trong bảng BUD_CONTRACT_DT vào XML---
CONTRACT_DTID VARCHAR(15),
BUILD_ID VARCHAR(15),
VERSION_NO INT,
BUILDING_AREA_ID VARCHAR(15),
RENT_AREA DECIMAL(18,2),
RENT_AREA_APP DECIMAL(18,2),
AREA_REMAIN DECIMAL(18,2),
RENT_PRICE DECIMAL,
NOTES NVARCHAR(MAX),
DIEN_TICH_TANG DECIMAL(18,2),
DIEN_TICH_SD_NOI_BO DECIMAL(18,2),
DIEN_TICH_DA_CHO_THUE DECIMAL(18,2),
DIEN_TICH_CON_LAI DECIMAL(18,2),
DIEN_TICH_CAN_SD DECIMAL(18,2),
REASON NVARCHAR(MAX),
PRICE DECIMAL,
TOTAL_AMT DECIMAL,
DIEN_TICH_CON_LAI_FINAL DECIMAL(18,2),
BRANCH_ID NVARCHAR(15),
DEP_ID NVARCHAR(15),
VAT INT,
PAY_PHASE VARCHAR(15)
)
OPEN XmlDataDoc
---BAODNQ: thêm các cột trong bảng BUD_CONTRACT_DT vào XML---
FETCH NEXT FROM XmlDataDoc INTO
@d_CONTRACT_DTID,
@d_BUILD_ID,
@d_VERSION_NO,
@d_BUILDING_AREA_ID,
@d_RENT_AREA,
@d_RENT_AREA_APP,
@d_AREA_REMAIN,
@d_RENT_PRICE,
@d_NOTES,
@d_DIEN_TICH_TANG,
@d_DIEN_TICH_SD_NOI_BO,
@d_DIEN_TICH_DA_CHO_THUE,
@d_DIEN_TICH_CON_LAI,
@d_DIEN_TICH_CAN_SD,
@d_REASON,
@d_PRICE,
@d_TOTAL_AMT,
@d_DIEN_TICH_CON_LAI_FINAL,
@d_BRANCH_ID,
@d_DEP_ID,
@d_VAT,
@d_PAY_PHASE
WHILE @@FETCH_STATUS = 0
BEGIN
-------------BAODNQ 11/3/2022: Check lỗi insert--------
DECLARE @VALUE_ERROR DECIMAL(18,0)
SET @stt= @stt+1
SET @VALUE_ERROR = (
SELECT FLOOR_AREA - (UTILZED_AREA + INTERNAL_AREA)
FROM BUD_AREA_DT WHERE BUILDING_AREA_ID = @d_BUILDING_AREA_ID
)
PRINT @d_DIEN_TICH_CAN_SD
PRINT (@VALUE_ERROR + @d_RENT_AREA_APP)
PRINT @d_DIEN_TICH_CON_LAI
DECLARE @ERRORSYS NVARCHAR(200) =''
--IF ( @d_DIEN_TICH_CAN_SD > (@VALUE_ERROR + @d_RENT_AREA_APP) OR @d_DIEN_TICH_CAN_SD > @d_DIEN_TICH_CON_LAI_FINAL)
--IF ( @d_DIEN_TICH_CAN_SD > (@VALUE_ERROR + @d_RENT_AREA_APP) OR @d_DIEN_TICH_CAN_SD > @d_DIEN_TICH_CON_LAI)
IF (@d_DIEN_TICH_CAN_SD > @d_DIEN_TICH_CON_LAI)
BEGIN
SET @ERRORSYS = N'Dòng '+ convert(nvarchar(2),@stt) +N': DT cần sử dụng phải nhỏ hơn hoặc bằng DT trống '
END
--IF ( @d_DIEN_TICH_CAN_SD = 0)
--BEGIN
-- SET @ERRORSYS = N'Dòng '+ convert(nvarchar(2),@stt) +N': DT cần sử dụng phải lớn hơn 0 '
--END
IF @ERRORSYS <> ''
BEGIN
CLOSE XmlDataDoc
DEALLOCATE XmlDataDoc
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' CONTRACT_ID, @ERRORSYS ErrorDesc
RETURN '-1'
END
---BAODNQ: insert thêm vào các cột trong bảng BUD_CONTRACT_DT---
-------------Nếu đã có DT_ID cũ, k tạo DT_ID mới
IF(LEN( @d_CONTRACT_DTID)=0)
BEGIN
EXEC SYS_CodeMasters_Gen 'BUD_CONTRACT_DT', @d_CONTRACT_DTID out
END
IF @d_CONTRACT_DTID='' OR @d_CONTRACT_DTID IS NULL GOTO ABORT
INSERT INTO BUD_CONTRACT_DT([CONTRACT_DTID],[BUILD_ID],[CONTRACT_ID],[VERSION_NO],[BUILDING_AREA_ID],[RENT_AREA],[RENT_AREA_APP],[AREA_REMAIN],[RENT_PRICE],[NOTES],
[DIEN_TICH_TANG],[DIEN_TICH_SD_NOI_BO],[DIEN_TICH_DA_CHO_THUE],[DIEN_TICH_CON_LAI],[DIEN_TICH_CAN_SD],[REASON],[PRICE],[TOTAL_AMT],
[DIEN_TICH_CON_LAI_FINAL],[BRANCH_ID], [DEP_ID], [VAT], [PAY_PHASE])
VALUES(@d_CONTRACT_DTID ,@d_BUILD_ID ,@p_CONTRACT_ID ,@d_VERSION_NO ,@d_BUILDING_AREA_ID ,@d_RENT_AREA,@d_RENT_AREA_APP,@d_AREA_REMAIN,@d_RENT_PRICE,@d_NOTES,
@d_DIEN_TICH_TANG,@d_DIEN_TICH_SD_NOI_BO,@d_DIEN_TICH_DA_CHO_THUE,@d_DIEN_TICH_CON_LAI,@d_DIEN_TICH_CAN_SD,@d_REASON,@d_PRICE,@d_TOTAL_AMT,@d_DIEN_TICH_CON_LAI_FINAL,
@d_BRANCH_ID,@d_DEP_ID, @d_VAT, @d_PAY_PHASE)
IF @@Error <> 0 GOTO ABORT
---BAODNQ: thêm các cột trong bảng BUD_CONTRACT_DT vào XML---
FETCH NEXT FROM XmlDataDoc INTO
@d_CONTRACT_DTID,
@d_BUILD_ID,
@d_VERSION_NO,
@d_BUILDING_AREA_ID,
@d_RENT_AREA,
@d_RENT_AREA_APP,
@d_AREA_REMAIN ,
@d_RENT_PRICE,
@d_NOTES,
@d_DIEN_TICH_TANG,
@d_DIEN_TICH_SD_NOI_BO,
@d_DIEN_TICH_DA_CHO_THUE,
@d_DIEN_TICH_CON_LAI,
@d_DIEN_TICH_CAN_SD,
@d_REASON,
@d_PRICE,
@d_TOTAL_AMT,
@d_DIEN_TICH_CON_LAI_FINAL,
@d_BRANCH_ID,
@d_DEP_ID,
@d_VAT,
@d_PAY_PHASE
END
CLOSE XmlDataDoc
DEALLOCATE XmlDataDoc
IF @@Error <> 0 GOTO ABORT
---BAODNQ: sửa lấy tổng thành TOTAL_AMT---
SET @p_RENT_PRICE = (SELECT SUM(TOTAL_AMT) FROM BUD_CONTRACT_DT
WHERE CONTRACT_ID =@p_CONTRACT_ID
AND VERSION_NO=@p_VERSION_NO)
IF(EXISTS (SELECT * FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID = @p_CONTRACT_ID AND AUTH_STATUS = 'A'))
BEGIN
---------------CẬP NHẬT LẠI SAU KHI ĐÃ DUYỆT------------
SET @p_CHECKER_ID = NULL
SET @p_APPROVE_DT = NULL
SET @p_SIGN_DT = NULL
SET @p_SEND_APPR_DT = NULL
END
---BAODNQ 30/12/2021:Thêm cột vào bảng BUD_CONTRACT_MASTER-------
UPDATE BUD_CONTRACT_MASTER
SET BUILDING_ID =@p_BUILDING_ID,
CONTRACT_NO =@p_CONTRACT_NO,
--VERSION_NO=@p_VERSION_NO,
CUST_ID=@p_CUST_ID,
INPUT_DT = CONVERT(DATE,@p_INPUT_DT,103),
AMEND_DT = CONVERT(DATE,@p_AMEND_DT,103),
FROM_DT = CONVERT(DATE,@p_FROM_DT,103),
TO_DATE = CONVERT(DATE,@p_TO_DATE,103),
CLOSE_DT = CONVERT(DATE,@p_CLOSE_DT,103),
STATUS= @p_STATUS,
MONTHS = @p_MONTHS,
--RENT_PRICE=@p_RENT_PRICE*@p_MONTHS,
RENT_PRICE = @p_RENT_PRICE,
[NOTES] = @p_NOTES,
VAT =@p_VAT,
VAT_AMT =(@p_VAT*@p_RENT_PRICE)/100,
DEPOSITS_AMT =@p_DEPOSITS_AMT,
PAYMENT_SHEDULE =@p_PAYMENT_SHEDULE,
IS_SEND_APPR = @p_IS_SEND_APPR,
SEND_APPR_DT = CONVERT(DATETIME,@p_SEND_APPR_DT, 103),
SIGN_USER = @p_SIGN_USER,
SIGN_DT = CONVERT(DATETIME, @p_SIGN_DT, 103),
RECORD_STATUS = @p_RECORD_STATUS,
AUTH_STATUS = @p_AUTH_STATUS,
MAKER_ID = @p_MAKER_ID,
CREATE_DT = CONVERT(DATETIME,@p_CREATE_DT, 103),
CHECKER_ID = @p_CHECKER_ID,
APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT, 103)
WHERE CONTRACT_ID=@p_CONTRACT_ID AND VERSION_NO=@p_VERSION_NO
END
---BAODNQ 29/12/2021: Insert vào PL_PROCESS lưu lịch sử xử lý
---------------BAODNQ : TH NGƯỜI TẠO CẬP NHẬT NHIỀU LẦN THÌ CHỈ LƯU LỊCH SỬ XỬ LÝ CẬP NHẬT GẦN NHẤT----------------
IF((SELECT TOP 1 PROCESS_ID FROM PL_PROCESS WHERE REQ_ID = @p_CONTRACT_ID ORDER BY APPROVE_DT DESC) = 'UPDATE')
BEGIN
WITH RESULT AS(
SELECT TOP 1 * FROM PL_PROCESS WHERE REQ_ID = @p_CONTRACT_ID
ORDER BY APPROVE_DT DESC
)
DELETE FROM RESULT
END
------------------------------------------------------------------
----PHUCVH 25/04/2023 : Thêm các cột vào bảng BUD_CONTRACT_ELEC_WAR_DT---
Declare @hdoc2 INT
DECLARE
@uew_UEW_DTID VARCHAR(15),
@uew_TYPE VARCHAR(15),
@uew_CONTRACT_ID VARCHAR(15),
@uew_BUILD_ID VARCHAR(15),
@uew_BUILDING_AREA_ID VARCHAR(15),
@uew_FROM_DATE VARCHAR(50),
@uew_TO_DATE VARCHAR(50),
@uew_INDICATOR_OLD DECIMAL(18,2),
@uew_INDICATOR DECIMAL(18,2),
@uew_UNIT_PRICE DECIMAL(18,2),
@uew_TOTAL DECIMAL(18,2)
Exec sp_xml_preparedocument @hdoc2 Output,@p_XML_ELEC_WAR
DECLARE XmlDataDoc2 CURSOR FOR
SELECT *
FROM OPENXML(@hdoc2,'/Root/XmlData2',2)
WITH
(
----PHUCVH : Thêm các cột vào bảng BUD_CONTRACT_ELEC_WAR_DT---
TYPE VARCHAR(15),
CONTRACT_ID VARCHAR(15),
BUILD_ID VARCHAR(15),
BUILDING_AREA_ID VARCHAR(15),
FROM_DATE VARCHAR(50),
TO_DATE VARCHAR(50),
INDICATOR_OLD DECIMAL(18,2),
INDICATOR DECIMAL(18,2),
UNIT_PRICE DECIMAL(18,2),
TOTAL DECIMAL(18,2)
)
OPEN XmlDataDoc2
FETCH NEXT FROM XmlDataDoc2 INTO @uew_TYPE,@uew_CONTRACT_ID,@uew_BUILD_ID,@uew_BUILDING_AREA_ID,@uew_FROM_DATE,@uew_TO_DATE,@uew_INDICATOR_OLD,@uew_INDICATOR,@uew_UNIT_PRICE,@uew_TOTAL
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC SYS_CodeMasters_Gen 'BUD_CONTRACT_ELEC_WAR_DT', @uew_UEW_DTID out
IF @uew_UEW_DTID='' OR @uew_UEW_DTID IS NULL GOTO ABORT
INSERT INTO BUD_CONTRACT_ELEC_WAR_DT (UEW_DTID, TYPE, CONTRACT_ID, BUILD_ID, BUILDING_AREA_ID, FROM_DATE, TO_DATE, INDICATOR_OLD, INDICATOR, UNIT_PRICE, TOTAL)
VALUES (@uew_UEW_DTID, @uew_TYPE, @p_CONTRACT_ID,@d_BUILD_ID, @d_BUILDING_AREA_ID,CONVERT(DATETIME,@uew_FROM_DATE,103) , CONVERT(DATETIME,@uew_TO_DATE,103), @uew_INDICATOR_OLD, @uew_INDICATOR, @uew_UNIT_PRICE, @uew_TOTAL);
FETCH NEXT FROM XmlDataDoc2 INTO @uew_TYPE,@uew_CONTRACT_ID,@uew_BUILD_ID,@uew_BUILDING_AREA_ID,@uew_FROM_DATE,@uew_TO_DATE,@uew_INDICATOR_OLD,@uew_INDICATOR,@uew_UNIT_PRICE,@uew_TOTAL
IF @@Error <> 0 GOTO ABORT
END
CLOSE XmlDataDoc2
DEALLOCATE XmlDataDoc2
----PHUCVH 25/04/2023 : Thêm các cột vào bảng BUD_CONTRACT_ELEC_WAR_DT---
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @p_CONTRACT_ID,
'UPDATE',
@p_MAKER_ID,
GETDATE(),
N'Cập nhật thông tin khai báo DTSD nội bộ thành công' ,
N'Cập nhật thông tin khai báo DTSD nội bộ'
)
COMMIT TRANSACTION
SELECT '0' as Result, @p_CONTRACT_ID CONTRACT_ID, '' ErrorDesc
RETURN '0'
ABORT:
BEGIN
CLOSE XmlDataDoc
DEALLOCATE XmlDataDoc
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' CONTRACT_ID, '' ErrorDesc
RETURN '-1'
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[CM_REJECT_LOG_Ins]'
GO
ALTER PROC [dbo].[CM_REJECT_LOG_Ins]
@p_LOG_ID varchar(15) = NULL,
@p_STAGE varchar(10) = NULL,
@p_TRN_ID varchar(15) = NULL,
@p_TRN_TYPE nvarchar(100) = NULL,
@p_LOG_DT VARCHAR = NULL,
@p_AUTH_STAT varchar(3) = NULL,
@p_REASON nvarchar(4000) = NULL,
@p_IS_LATEST varchar(1) = NULL,
@p_REJECTED_BY varchar(20) = NULL,
@p_REJECTED_DT VARCHAR = NULL
AS
BEGIN TRANSACTION
DECLARE @TRADED_ID VARCHAR(15), @AMT_EXE DECIMAL(18,0)
DECLARE @PAY_ADVANCE_ID VARCHAR(15), @AMT_PAY DECIMAL(18,0), @AMT_REVERT DECIMAL(18,0), @AMT_ADD DECIMAL(18,0)
DECLARE @p_MESSAGE NVARCHAR(100) = NULL
DECLARE @TBL_GROUP_CODE_ASS_USE TABLE (GROUP_ID VARCHAR(100))
IF(EXISTS (SELECT * FROM CM_REJECT_LOG WHERE TRN_ID = @p_TRN_ID))
BEGIN
UPDATE CM_REJECT_LOG SET IS_LATEST ='N' WHERE TRN_ID =@p_TRN_ID
END
-- Thu hồi tài sản
IF(@p_TRN_TYPE ='ASS_COLLECT_MUL')
BEGIN
IF(@p_STAGE='KT')
BEGIN -- KSV trả về GDV
IF(EXISTS (SELECT * FROM ASS_COLLECT_MULTI_MASTER WHERE COL_MULTI_MASTER_ID = @p_TRN_ID AND AUTH_STATUS_KT ='A' AND @p_STAGE ='KT'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thu hồi tài sản đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
ELSE
BEGIN
IF(EXISTS(SELECT * FROM ASS_COLLECT_MULTI_MASTER WHERE COL_MULTI_MASTER_ID =@p_TRN_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>''))
BEGIN
UPDATE ASS_COLLECT_MULTI_MASTER SET AUTH_STATUS_KT ='R' WHERE COL_MULTI_MASTER_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin thu hồi tài sản đã được trả về giao dịch viên thành công'
-- 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_TRN_ID AND PROCESS_ID = 'UPDATE'
-- GiaNT 29/09/2021
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
N'Từ chối phiếu',
@p_REASON
)
END
ELSE
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thu hồi tài sản chưa được kế toán cập nhật'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
END
END
ELSE IF(@p_STAGE='KT_HC')
BEGIN -- KSV - GDV trả về người tạo
IF(EXISTS (SELECT * FROM ASS_COLLECT_MULTI_MASTER WHERE COL_MULTI_MASTER_ID = @p_TRN_ID AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT_HC'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thu hồi tài sản đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
ELSE
BEGIN
--PHUCVH 16/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 ASSET_ID FROM ASS_COLLECT_MULTI_DT WHERE COL_MULTI_MASTER_ID = @p_TRN_ID)
-- Xóa thông tin xác nhận thu hồi
DELETE dbo.ASS_COLLECT_CONFIRM_MASTER WHERE COL_MULTI_MASTER_ID = @p_TRN_ID
UPDATE ASS_COLLECT_MULTI_MASTER SET AUTH_STATUS ='R',CREATE_DT_KT = NULL,MAKER_ID_KT = NULL,APPROVE_DT_KT = NULL,CHECKER_ID_KT = NULL, CORE_NOTE = NULL WHERE COL_MULTI_MASTER_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin thu hồi tài sản đã được trả về người tạo thành công'
-- GiaNT 29/09/2021
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
N'Từ chối phiếu',
@p_REASON
)
END
END
ELSE
BEGIN -- TDV trả về người tạo
IF(EXISTS (SELECT * FROM ASS_COLLECT_MULTI_MASTER WHERE COL_MULTI_MASTER_ID = @p_TRN_ID AND AUTH_STATUS='A' AND @p_STAGE ='HC'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thu hồi tài sản đã được hành chính duyệt'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
ELSE
BEGIN
--PHUCVH 16/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 ASSET_ID FROM ASS_COLLECT_MULTI_DT WHERE COL_MULTI_MASTER_ID = @p_TRN_ID)
UPDATE ASS_COLLECT_MULTI_MASTER SET AUTH_STATUS ='R' WHERE COL_MULTI_MASTER_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin thu hồi tài sản đã được trả về người tạo thành công'
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'REJECT', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
N'Từ chối phiếu', -- PROCESS_DESC - nvarchar(1000)
@p_REASON
)
END
END
END
--SỬA CHỮA TÀI SẢN
ELSE IF(@p_TRN_TYPE = 'ASS_REPAIR_MUL')
BEGIN
IF(EXISTS (SELECT REPAIR_MUL_ID FROM ASS_REPAIR_MULTI_MASTER WHERE REPAIR_MUL_ID = @p_TRN_ID AND AUTH_STATUS='A'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin sửa chữa tài sản đã được duyệt.'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
ELSE
BEGIN
--PHUCVH 16/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 ASSET_ID FROM ASS_REPAIR_MULTI_DT WHERE REPAIR_MUL_ID = @p_TRN_ID)
UPDATE ASS_REPAIR_MULTI_MASTER SET AUTH_STATUS ='R' WHERE REPAIR_MUL_ID = @p_TRN_ID
SET @p_MESSAGE =N'Thông tin sửa chữa tài sản đã được trả về người tạo thành công'
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'REJECT', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
N'Phiếu bị trả về', -- PROCESS_DESC - nvarchar(1000)
@p_REASON
)
END
END
-- Điều chuyển tài sản
ELSE IF(@p_TRN_TYPE ='ASS_TRANSFER_MUL')
BEGIN
UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL WHERE ASSET_ID IN (SELECT ASSET_ID FROM ASS_TRANSFER_MULTI_DT WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID)
---- GiaNT 29/09/2021 Sửa
IF(@p_STAGE='KT')
BEGIN -- KSV trả về GDV
IF(EXISTS (SELECT * FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID AND AUTH_STATUS_KT ='A' AND @p_STAGE ='KT'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin điều chuyển tài sản đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
ELSE
BEGIN
IF(EXISTS(SELECT * FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>''))
BEGIN
UPDATE ASS_TRANSFER_MULTI_MASTER SET AUTH_STATUS_KT ='R' WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID
SET @p_MESSAGE =N'Thông tin điều chuyển tài sản đã được trả về giao dịch viên thành công'
-- 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_TRN_ID AND PROCESS_ID = 'UPDATE'
-- GiaNT 29/09/2021
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE() ,
N'Trả về nhân viên xử lý' ,
@p_REASON
)
END
ELSE
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin điều chuyển tài sản chưa được kế toán cập nhật'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
END
END
ELSE IF(@p_STAGE='KT_HC')
BEGIN -- KSV - GDV trả về người tạo
IF(EXISTS (SELECT * FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT_HC'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin điều chuyển tài sản đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
ELSE
BEGIN
UPDATE ASS_TRANSFER_MULTI_MASTER SET AUTH_STATUS ='R', STATUS = 'REJECT', AUTH_STATUS_KT = NULL, APPROVE_DT = NULL,CHECKER_ID = NULL, MAKER_ID_KT = NULL, CREATE_DT_KT = NULL , CORE_NOTE = NULL
WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID
-- Xóa thông tin xác nhận điều chuyển
DELETE ASS_TRANSFER_CONFIRM_MASTER WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID
--Xoá PL_REQUEST_PROCESS
DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID
INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID)
VALUES(@p_TRN_ID,'REJECT','C','QLTS','','')
SET @p_MESSAGE =N'Thông tin điều chuyển tài sản đã được trả về người tạo thành công'
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'REJECT', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
N'Trả về hành chính' ,@p_REASON -- PROCESS_DESC - nvarchar(1000)
)
END
END
ELSE
BEGIN -- TDV trả về người tạo
IF(EXISTS (SELECT * FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID AND AUTH_STATUS='A' AND @p_STAGE ='HC'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin điều chuyển tài sản đã được hành chính duyệt'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
ELSE
BEGIN
UPDATE ASS_TRANSFER_MULTI_MASTER SET AUTH_STATUS ='R' WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID
SET @p_MESSAGE =N'Thông tin điều chuyển tài sản đã được trả về thành công'
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'REJECT', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
@p_REASON ,N'Từ chối phiếu' -- PROCESS_DESC - nvarchar(1000)
)
END
END
END
-- Xuất sử dụng tài sản
ELSE IF(@p_TRN_TYPE ='ASS_USE_MUL')
BEGIN
IF(@p_STAGE='KT')
BEGIN -- KSV trả về GDV
IF(EXISTS (SELECT * FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID =@p_TRN_ID AND AUTH_STATUS_KT ='A' AND @p_STAGE ='KT'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng tài sản đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
ELSE
BEGIN
IF(EXISTS(SELECT * FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID =@p_TRN_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>''))
BEGIN
UPDATE ASS_USE_MULTI_MASTER SET AUTH_STATUS_KT ='R' WHERE USER_MASTER_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin xuất sử dụng tài sản đã được trả về giao dịch viên thành công'
-- 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_TRN_ID AND PROCESS_ID = 'UPDATE'
-- GiaNT 29/09/2021
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
N'Trả về GDV',
@p_REASON
)
END
ELSE
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng tài sản chưa được kế toán cập nhật'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
END
END
ELSE IF(@p_STAGE='KT_HC')
BEGIN -- KSV - GDDV nhận - GDV trả về người tạo
-- IF(EXISTS (SELECT * FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @p_TRN_ID AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT_HC'))
-- BEGIN
-- SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng tài sản đã được kế toán duyệt'
-- ROLLBACK TRANSACTION
-- SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
-- RETURN '-1'
-- END
-- ELSE
-- BEGIN
-- -- Xóa thông tin xác nhận xuất sử dụng
-- DELETE dbo.ASS_USE_CONFIRM_MASTER WHERE USER_MASTER_ID = @p_TRN_ID
--
-- UPDATE ASS_USE_MULTI_MASTER SET AUTH_STATUS ='R',CREATE_DT_KT = NULL,MAKER_ID_KT = NULL,APPROVE_DT_KT = NULL,CHECKER_ID_KT = NULL WHERE USER_MASTER_ID =@p_TRN_ID
-- SET @p_MESSAGE =N'Thông tin xuất sử dụng tài sản đã được trả về người tạo thành công'
-- -- GiaNT 29/09/2021
-- INSERT INTO dbo.PL_PROCESS
-- (
-- REQ_ID,
-- PROCESS_ID,
-- CHECKER_ID,
-- APPROVE_DT,
-- PROCESS_DESC,NOTES
-- )
-- VALUES
-- ( @p_TRN_ID,
-- 'REJECT',
-- @p_REJECTED_BY,
-- GETDATE(),
-- @p_REASON ,
-- N'Từ chối phiếu'
-- )
-- END
IF(EXISTS (SELECT * FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @p_TRN_ID AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng tài sản đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
ELSE
BEGIN
--PHUCVH 16/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 A.ASSET_ID FROM ASS_USE_MULTI_DT A WHERE A.USER_MASTER_ID = @p_TRN_ID)
UPDATE ASS_USE_MULTI_MASTER SET AUTH_STATUS ='R', AUTH_STATUS_KT = 'E', CHECKER_ID = NULL, APPROVE_DT = NULL, CREATE_DT_KT = NULL,MAKER_ID_KT = NULL,APPROVE_DT_KT = NULL,CHECKER_ID_KT = NULL WHERE USER_MASTER_ID =@p_TRN_ID
IF(EXISTS(SELECT 1 FROM ASS_USE_CONFIRM_MASTER aucm WHERE aucm.USER_MASTER_ID = @p_TRN_ID))
BEGIN
-- Xóa thông tin xác nhận xuất sử dụng
DELETE dbo.ASS_USE_CONFIRM_MASTER WHERE USER_MASTER_ID = @p_TRN_ID
--UPDATE ASS_MASTER
UPDATE ASS_MASTER SET USE_DATE = NULL,USE_DATE_KT = NULL , AMORT_RATE = NULL , BRANCH_ID = NULL, DEPT_ID = NULL, EMP_ID = NULL, DIVISION_ID = NULL
WHERE ASSET_ID IN (SELECT aumd.ASSET_ID FROM ASS_USE_MULTI_DT aumd WHERE aumd.USER_MASTER_ID = @p_TRN_ID)
--DELETE ASS_MASTER_HIST
DELETE ASS_MASTER_HIST WHERE ASSHIST_ID IN (SELECT at.ASSHIST_ID
FROM ASS_TRANSACTIONS at
LEFT JOIN ASS_USE_MULTI_DT aumd ON at.TRN_ID = aumd.USE_MULTI_ID
AND aumd.USER_MASTER_ID = @p_TRN_ID)
--UPDATE ASS_WAREHOUSE_DT
UPDATE ASS_WAREHOUSE_DT SET OUT_DATE = NULL, STATUS = 'I' WHERE ASSET_ID IN (SELECT A.ASSET_ID FROM ASS_USE_MULTI_DT A WHERE A.USER_MASTER_ID = @p_TRN_ID)
--DELETE ASS_LOCATION_HIST
DELETE ASS_LOCATION_HIST WHERE LOCHIST_ID IN (SELECT at.LOCHIST_ID
FROM ASS_TRANSACTIONS at
LEFT JOIN ASS_USE_MULTI_DT aumd ON at.TRN_ID = aumd.USE_MULTI_ID
AND aumd.USER_MASTER_ID = @p_TRN_ID)
--DELETE ASS_TRANSACTION
DELETE ASS_TRANSACTIONS WHERE TRN_ID IN (SELECT aumd.USE_MULTI_ID FROM ASS_USE_MULTI_DT aumd WHERE aumd.USER_MASTER_ID = @p_TRN_ID)
--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))
DECLARE @IS_MULTI_GROUP VARCHAR(1) = '0'
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_TRN_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 @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 = (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 = 'BUYNEW'
OR (trsdd.REQ_DT_TYPE = 'XKSD' AND trsdd.TYPE_XL = 'CPTK')))) > 1)
BEGIN
SET @IS_MULTI_GROUP = '1'
END
IF (@C_REQ_DT_TYPE = 'BUYNEW')
BEGIN
SET @ALLOCATED = (SELECT SUM(TMP.COUNT) FROM (
(SELECT COUNT(*) AS COUNT
FROM ASS_USE_MULTI_DT A
LEFT JOIN ASS_MASTER C ON A.ASSET_ID = C.ASSET_ID
WHERE A.USER_MASTER_ID = @p_TRN_ID
GROUP BY A.REQ_ID, C.GROUP_ID, C.REQ_ID
HAVING A.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_DT_TYPE = 'BUYNEW' AND C.REQ_ID = @C_REQ_DOC_ID))))TMP)
END
ELSE IF (@C_TYPE_XL = 'CPTK')
BEGIN
SET @ALLOCATED = (SELECT SUM(TMP.COUNT) FROM (
(SELECT COUNT(*) AS COUNT
FROM ASS_USE_MULTI_DT A
LEFT JOIN ASS_MASTER C ON A.ASSET_ID = C.ASSET_ID
WHERE A.USER_MASTER_ID = @p_TRN_ID
GROUP BY A.REQ_ID, C.GROUP_ID, C.REQ_ID
HAVING A.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_TYPE_XL = 'CPTK' AND (C.REQ_ID IS NULL OR C.REQ_ID = '')))))TMP)
END
UPDATE TR_REQUEST_SHOP_DOC_DT
SET ALLOCATED = ALLOCATED - ISNULL(@ALLOCATED,0)
WHERE REQDT_ID = @C_REQDT_ID
UPDATE TR_REQUEST_SHOP_DOC SET IS_DONE = 0, STATUS = 'APPROVE' WHERE REQ_ID = @C_REQ_DOC_ID
UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' WHERE PROCESS_ID = 'APPROVE' AND REQ_ID = @C_REQ_DOC_ID
DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @C_REQ_DOC_ID AND PROCESS_ID = 'DONE'
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
END
SET @p_MESSAGE =N'Thông tin xuất sử dụng tài sản đã được trả về người tạo thành công'
-- GiaNT 29/09/2021
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
N'Trả về người tạo',
@p_REASON
)
END
END
ELSE IF(@p_STAGE='HC')
BEGIN
IF(EXISTS (SELECT * FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @p_TRN_ID AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng tài sản đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
ELSE
BEGIN
--PHUCVH 16/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 A.ASSET_ID FROM ASS_USE_MULTI_DT A WHERE A.USER_MASTER_ID = @p_TRN_ID)
UPDATE ASS_USE_MULTI_MASTER SET AUTH_STATUS ='R',CHECKER_ID = NULL, APPROVE_DT = NULL WHERE USER_MASTER_ID =@p_TRN_ID
UPDATE ASS_USE_MULTI_DT SET AUTH_STATUS ='R',CHECKER_ID = NULL, APPROVE_DT = NULL WHERE USER_MASTER_ID =@p_TRN_ID
--
-- --UPDATE ASS_MASTER
-- UPDATE ASS_MASTER SET USE_DATE = NULL, AMORT_RATE = NULL WHERE ASSET_ID IN (SELECT aumd.ASSET_ID FROM ASS_USE_MULTI_DT aumd WHERE aumd.USER_MASTER_ID = @p_TRN_ID)
--
-- --DELETE ASS_MASTER_HIST
-- DELETE ASS_MASTER_HIST WHERE ASSHIST_ID IN (SELECT at.ASSHIST_ID
-- FROM ASS_TRANSACTIONS at
-- LEFT JOIN ASS_USE_MULTI_DT aumd ON at.TRN_ID = aumd.USE_MULTI_ID
-- AND aumd.USER_MASTER_ID = @p_TRN_ID)
--
-- --UPDATE ASS_WAREHOUSE_DT
-- UPDATE ASS_WAREHOUSE_DT SET OUT_DATE = NULL, STATUS = 'I' WHERE ASSET_ID IN (SELECT A.ASSET_ID FROM ASS_USE_MULTI_DT A WHERE A.USER_MASTER_ID = @p_TRN_ID)
--
-- --DELETE ASS_LOCATION_HIST
-- DELETE ASS_LOCATION_HIST WHERE LOCHIST_ID IN (SELECT at.LOCHIST_ID
-- FROM ASS_TRANSACTIONS at
-- LEFT JOIN ASS_USE_MULTI_DT aumd ON at.TRN_ID = aumd.USE_MULTI_ID
-- AND aumd.USER_MASTER_ID = @p_TRN_ID)
--
-- --DELETE ASS_TRANSACTION
-- DELETE ASS_TRANSACTIONS WHERE TRN_ID IN (SELECT aumd.USE_MULTI_ID FROM ASS_USE_MULTI_DT aumd WHERE aumd.USER_MASTER_ID = @p_TRN_ID)
--
-- --START PHUCVH 07/10/22 UPDATE ALLOCATED PHIẾU YÊU CẦU DT
-- DECLARE @TBL_CHECK_UPD_1 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_1
-- 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_TRN_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_1 VARCHAR(15), @C_REQ_DOC_ID_1 VARCHAR(15), @C_ASS_GROUP_ID_1 VARCHAR(15), @C_ASS_ID_1 VARCHAR(15), @C_REQ_DT_TYPE_1 VARCHAR(15), @C_TYPE_XL_1 VARCHAR(20)
--
-- DECLARE DATA_CURSOR_CHECK_UPD_1 CURSOR FOR
-- SELECT * FROM @TBL_CHECK_UPD_1
--
-- OPEN DATA_CURSOR_CHECK_UPD_1
--
-- FETCH NEXT FROM DATA_CURSOR_CHECK_UPD_1 INTO
-- @C_REQDT_ID_1,@C_REQ_DOC_ID_1,@C_ASS_GROUP_ID_1,@C_ASS_ID_1,@C_REQ_DT_TYPE_1,@C_TYPE_XL_1
--
-- DECLARE @ALLOCATED_1 INT
-- WHILE @@FETCH_STATUS = 0
-- BEGIN
-- 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 = (SELECT B.GROUP_CODE FROM ASS_GROUP B WHERE B.GROUP_ID = @C_ASS_GROUP_ID_1)
--
-- IF (@C_REQ_DT_TYPE_1 = 'BUYNEW')
-- BEGIN
-- SET @ALLOCATED_1 = (SELECT SUM(TMP.COUNT) FROM (
-- (SELECT COUNT(*) AS COUNT
-- FROM ASS_USE_MULTI_DT A
-- LEFT JOIN ASS_USE_CONFIRM_MASTER B ON A.USER_MASTER_ID = B.USER_MASTER_ID
-- LEFT JOIN ASS_MASTER C ON A.ASSET_ID = C.ASSET_ID
-- WHERE B.USER_CONFIRM_MASTER_ID IS NOT NULL
-- GROUP BY A.REQ_ID, C.GROUP_ID, C.REQ_ID
-- HAVING A.REQ_ID = @C_REQ_DOC_ID_1
-- AND C.GROUP_ID IN (SELECT GROUP_ID FROM @TBL_GROUP_CODE_ASS_USE)
-- AND ((@C_REQ_DT_TYPE_1 = 'BUYNEW' AND C.REQ_ID = @C_REQ_DOC_ID_1))))TMP)
-- END
-- ELSE IF (@C_TYPE_XL_1 = 'CPTK')
-- BEGIN
-- SET @ALLOCATED_1 = (SELECT SUM(TMP.COUNT) FROM (
-- (SELECT COUNT(*) AS COUNT
-- FROM ASS_USE_MULTI_DT A
-- LEFT JOIN ASS_USE_CONFIRM_MASTER B ON A.USER_MASTER_ID = B.USER_MASTER_ID
-- LEFT JOIN ASS_MASTER C ON A.ASSET_ID = C.ASSET_ID
-- WHERE B.USER_CONFIRM_MASTER_ID IS NOT NULL
-- GROUP BY A.REQ_ID, C.GROUP_ID, C.REQ_ID
-- HAVING A.REQ_ID = @C_REQ_DOC_ID_1
-- AND C.GROUP_ID IN (SELECT GROUP_ID FROM @TBL_GROUP_CODE_ASS_USE)
-- AND ((@C_TYPE_XL_1 = 'CPTK' AND (C.REQ_ID IS NULL OR C.REQ_ID = '')))))TMP)
-- END
--
-- UPDATE TR_REQUEST_SHOP_DOC_DT
-- SET ALLOCATED = ALLOCATED - ISNULL(@ALLOCATED_1,0)
-- WHERE REQDT_ID = @C_REQDT_ID_1
--
-- UPDATE TR_REQUEST_SHOP_DOC SET IS_DONE = 0, STATUS = 'APPROVE' WHERE REQ_ID = @C_REQ_DOC_ID_1
-- UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' WHERE PROCESS_ID = 'APPROVE' AND REQ_ID = @C_REQ_DOC_ID_1
-- DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @C_REQ_DOC_ID_1 AND PROCESS_ID = 'DONE'
--
-- FETCH NEXT FROM DATA_CURSOR_CHECK_UPD_1 INTO
-- @C_REQDT_ID_1,@C_REQ_DOC_ID_1,@C_ASS_GROUP_ID_1,@C_ASS_ID_1,@C_REQ_DT_TYPE_1,@C_TYPE_XL_1
-- END
-- CLOSE DATA_CURSOR_CHECK_UPD_1
-- DEALLOCATE DATA_CURSOR_CHECK_UPD_1
-- --END PHUCVH 07/10/22 UPDATE ALLOCATED PHIẾU YÊU CẦU DT
SET @p_MESSAGE =N'Thông tin xuất sử dụng tài sản đã được trả về người tạo thành công'
-- GiaNT 29/09/2021
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
N'Trả về người tạo',
@p_REASON
)
END
END
ELSE
BEGIN -- TDV trả về người tạo
IF(EXISTS (SELECT * FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @p_TRN_ID AND AUTH_STATUS='A' AND @p_STAGE ='HC'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng tài sản đã được hành chính duyệt'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
ELSE
BEGIN
--PHUCVH 16/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 A.ASSET_ID FROM ASS_USE_MULTI_DT A WHERE A.USER_MASTER_ID = @p_TRN_ID)
UPDATE ASS_USE_MULTI_MASTER SET AUTH_STATUS ='R', CHECKER_ID = NULL, APPROVE_DT = NULL WHERE USER_MASTER_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin xuất sử dụng tài sản đã được trả về người tạo thành công'
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'REJECT', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
@p_REASON,
N'Từ chối phiếu' -- PROCESS_DESC - nvarchar(1000)
)
END
END
END
-- Thanh lý tài sản
ELSE IF(@p_TRN_TYPE ='ASS_LIQ_MUL')
BEGIN
IF(@p_STAGE='KT')
BEGIN -- KSV trả về GDV
IF(EXISTS (SELECT * FROM ASS_LIQUIDATION WHERE LIQ_ID =@p_TRN_ID AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thanh lý tài sản đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
ELSE
BEGIN
IF(EXISTS(SELECT * FROM ASS_LIQUIDATION WHERE LIQ_ID =@p_TRN_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>''))
BEGIN
UPDATE ASS_LIQUIDATION SET AUTH_STATUS_KT ='R', SEND_APP_DT = NULL WHERE LIQ_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin thanh lý tài sản đã được trả về giao dịch viên thành công'
-- GiaNT 29/09/2021
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
@p_REASON ,
N'Từ chối phiếu'
)
END
ELSE
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thanh lý tài sản chưa được kế toán cập nhật'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
END
END
ELSE IF(@p_STAGE='KT_HC')
BEGIN -- KSV - GDV trả về người tạo
IF(EXISTS (SELECT * FROM ASS_LIQUIDATION WHERE LIQ_ID = @p_TRN_ID AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT_HC'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thanh lý tài sản đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
ELSE
BEGIN
UPDATE ASS_LIQUIDATION SET AUTH_STATUS ='R',CREATE_DT_KT = NULL,MAKER_ID_KT = NULL,
APPROVE_DT_KT = NULL,CHECKER_ID_KT = NULL, CORE_NOTE = NULL, SEND_APP_DT = NULL
WHERE LIQ_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin thanh lý tài sản đã được trả về người tạo thành công'
-- GiaNT 29/09/2021
-- CLEAR các trans cho trường hợp trả về người tạo rồi lên cấp tdv duyệt
DELETE ASS_TRANSACTIONS WHERE TRN_ID = @p_TRN_ID
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
@p_REASON ,
N'Từ chối phiếu'
)
END
END
ELSE
BEGIN -- TDV trả về người tạo
IF(EXISTS (SELECT * FROM ASS_LIQUIDATION WHERE LIQ_ID = @p_TRN_ID AND AUTH_STATUS='A' AND @p_STAGE ='HC'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thanh lý tài sản đã được hành chính duyệt'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
ELSE
BEGIN
UPDATE ASS_LIQUIDATION SET AUTH_STATUS ='R' WHERE LIQ_ID = @p_TRN_ID
SET @p_MESSAGE =N'Thông tin thanh lý tài sản đã được trả về người tạo thành công'
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'REJECT', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
@p_REASON ,N'Từ chối phiếu' -- PROCESS_DESC - nvarchar(1000)
)
END
END
END
-- Nhập mới tài sản
ELSE IF(@p_TRN_TYPE ='ASS_ADDNEW_MUL')
BEGIN
IF(@p_STAGE='KT')
BEGIN -- KSV trả về GDV
IF(EXISTS (SELECT * FROM ASS_ADDNEW WHERE ADDNEW_ID =@p_TRN_ID AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới tài sản đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
ELSE
BEGIN
IF(EXISTS(SELECT * FROM ASS_ADDNEW WHERE ADDNEW_ID =@p_TRN_ID AND (MAKER_ID_KT IS NOT NULL OR MAKER_ID_KT <>'') AND AUTH_STATUS_KT = 'U'))
BEGIN
UPDATE ASS_ADDNEW SET AUTH_STATUS_KT ='R' WHERE ADDNEW_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin nhập mới tài sản đã được trả về giao dịch viên thành công'
-- 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_TRN_ID AND PROCESS_ID = 'UPDATE'
-- GiaNT 29/09/2021
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
N'Từ chối phiếu' ,
@p_REASON
)
END
ELSE
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới tài sản chưa được kế toán cập nhật'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
END
END
ELSE IF(@p_STAGE='KT_HC')
BEGIN -- KSV - GDV trả về người tạo
IF(EXISTS (SELECT * FROM ASS_ADDNEW WHERE ADDNEW_ID = @p_TRN_ID AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT_HC'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới tài sản đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
ELSE
BEGIN
UPDATE ASS_ADDNEW SET AUTH_STATUS ='R',CREATE_DT_KT = NULL,MAKER_ID_KT = NULL,APPROVE_DT_KT = NULL,CHECKER_ID_KT = NULL WHERE ADDNEW_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin nhập mới tài sản đã được trả về người tạo thành công'
--khiemchg ROLLBACK DATA khi KT trả về người tạo
DECLARE @REQ_ID VARCHAR(15), @REQ_CODE VARCHAR(50)
SELECT @REQ_ID = AA.REQ_ID, @REQ_CODE = AA.REQ_CODE FROM ASS_ADDNEW AA WHERE AA.ADDNEW_ID = @p_TRN_ID AND AUTH_STATUS_KT='A'
DECLARE @ASS_MASTER_tmp TABLE
(
ASS_ID VARCHAR(15) NULL
)
INSERT INTO @ASS_MASTER_tmp SELECT AT.ASSET_ID FROM ASS_TRANSACTIONS AT
WHERE AT.TRN_ID = @p_TRN_ID AND AT.TRN_TYPE ='ADD_NEW'
DECLARE @QTY INT = (SELECT ISNULL(COUNT(ASS_ID), 0) FROM @ASS_MASTER_tmp)
DECLARE @GROUP_ID VARCHAR(15) = (SELECT AA.GROUP_ID FROM ASS_ADDNEW AA WHERE AA.ADDNEW_ID = @p_TRN_ID AND AUTH_STATUS_KT='A')
DELETE ASS_MASTER WHERE ASSET_ID IN (SELECT ASS_ID FROM @ASS_MASTER_tmp)
DELETE ASS_MASTER_HIST WHERE ASSET_ID IN (SELECT ASS_ID FROM @ASS_MASTER_tmp)
DELETE ASS_LOCATION_HIST WHERE ASSET_ID IN (SELECT ASS_ID FROM @ASS_MASTER_tmp)
DELETE ASS_TRANSACTIONS WHERE ASSET_ID IN (SELECT ASS_ID FROM @ASS_MASTER_tmp)
DELETE ASS_WARRANTY_DT WHERE ASSET_ID IN (SELECT ASS_ID FROM @ASS_MASTER_tmp)
DELETE ASS_USE_MULTI_DT WHERE ASSET_ID IN (SELECT ASS_ID FROM @ASS_MASTER_tmp) AND REQ_ID = @REQ_ID
UPDATE TR_REQUEST_SHOP_DOC SET IS_DONE = '0' WHERE REQ_ID = @REQ_ID AND REQ_CODE = @REQ_CODE
UPDATE TR_REQUEST_SHOP_DOC_DT SET ALLOCATED = ALLOCATED - @QTY WHERE REQ_DOC_ID = @REQ_ID AND ASS_GROUP_ID = @GROUP_ID
-- khiemchg end
-- GiaNT 29/09/2021
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
N'Từ chối phiếu' ,
@p_REASON
)
END
END -- KSV - GDV trả về người tạo
ELSE
BEGIN -- TDV trả về người tạo
IF(EXISTS (SELECT * FROM ASS_ADDNEW WHERE ADDNEW_ID = @p_TRN_ID AND AUTH_STATUS='A' AND @p_STAGE ='HC'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới tài sản đã được hành chính duyệt'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
ELSE
BEGIN
UPDATE ASS_ADDNEW SET AUTH_STATUS ='R' WHERE ADDNEW_ID = @p_TRN_ID
SET @p_MESSAGE =N'Thông tin nhập mới tài sản đã được trả về người tạo thành công'
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'REJECT', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
N'Từ chối phiếu' ,@p_REASON -- PROCESS_DESC - nvarchar(1000)
)
END
END
END
-- Kiểm kê tài sản
ELSE IF(@p_TRN_TYPE ='ASS_INV_MUL')
BEGIN
IF(@p_STAGE='APPROVE')
BEGIN -- Trưởng ban kiểm kê trả về người tạo
IF(EXISTS (SELECT * FROM ASS_INVENTORY_MASTER WHERE INVENT_ID = @p_TRN_ID AND AUTH_STATUS='A'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin kiểm kê tài sản đã được trưởng ban kiểm kê duyệt'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
ELSE
BEGIN
UPDATE ASS_INVENTORY_MASTER SET AUTH_STATUS_DVKD ='R',AUTH_STATUS ='R',APPROVE_DT_DVKD=NULL,CHECKER_ID_DVKD=NULL WHERE INVENT_ID = @p_TRN_ID
UPDATE dbo.ASS_INVENTORY_PARTY_DT SET IS_DONE = '0', COMMENT = NULL, CONFIRM_DT = NULL WHERE INVENT_ID = @p_TRN_ID
SET @p_MESSAGE =N'Thông tin nhập kiểm kê sản đã được trả về người tạo thành công'
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
@p_REASON ,
N'Từ chối phiếu'
)
END
END
ELSE IF(@p_STAGE='CONFIRM')
BEGIN -- Thành phần ban kiểm kê trả về người tạo
IF(EXISTS(SELECT * FROM dbo.ASS_INVENTORY_PARTY_DT WHERE INVENT_ID = @p_TRN_ID AND PARTY_NAME = @p_REJECTED_BY AND IS_DONE = 1))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin kiểm kê tài sản đã được thành phần ban kiểm kê duyệt'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
ELSE IF (EXISTS(SELECT * FROM dbo.ASS_INVENTORY_PARTY_DT WHERE INVENT_ID = @p_TRN_ID AND PARTY_NAME = @p_REJECTED_BY AND IS_DONE = 0))
BEGIN
UPDATE ASS_INVENTORY_MASTER SET AUTH_STATUS_DVKD ='R',AUTH_STATUS='R',APPROVE_DT_DVKD=NULL,CHECKER_ID_DVKD=NULL WHERE INVENT_ID =@p_TRN_ID
UPDATE dbo.ASS_INVENTORY_PARTY_DT SET IS_DONE = '0', COMMENT = NULL, CONFIRM_DT = NULL WHERE INVENT_ID = @p_TRN_ID
SET @p_MESSAGE =N'Thông tin kiểm kê tài sản đã được trả về người tạo thành công'
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
@p_REASON ,
N'Từ chối phiếu'
)
END
END
ELSE
BEGIN -- TDV trả về người tạo
IF(EXISTS (SELECT * FROM dbo.ASS_INVENTORY_MASTER WHERE INVENT_ID = @p_TRN_ID AND AUTH_STATUS_DVKD='A' AND @p_STAGE ='HC'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin kiểm kê tài sản đã được trưởng đơn vị duyệt'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
ELSE
BEGIN
UPDATE ASS_INVENTORY_MASTER SET AUTH_STATUS_DVKD ='R',AUTH_STATUS ='R' WHERE INVENT_ID = @p_TRN_ID
SET @p_MESSAGE =N'Thông tin kiểm kê tài sản đã được trả về người tạo thành công'
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'REJECT', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
@p_REASON ,N'Từ chối phiếu' -- PROCESS_DESC - nvarchar(1000)
)
END
END
END
ELSE IF(@p_TRN_TYPE ='MW_IN')
BEGIN
BEGIN
IF(@p_STAGE='KT')
BEGIN
IF(EXISTS (SELECT * FROM MW_IN_MASTER WHERE IN_ID =@p_TRN_ID AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới vật liệu đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
ELSE
BEGIN
--UPDATE MW_IN_MASTER SET AUTH_STATUS_KT ='R' WHERE IN_ID =@p_TRN_ID
--SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về thành công'
IF(EXISTS(SELECT * FROM MW_IN_MASTER WHERE IN_ID =@p_TRN_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>''))
BEGIN
UPDATE MW_IN_MASTER SET AUTH_STATUS_KT ='R' WHERE IN_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về thành công'
INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
END
ELSE
BEGIN
SET @p_STAGE ='HC'
UPDATE MW_IN_MASTER SET AUTH_STATUS ='R' WHERE IN_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về hành chính thành công'
INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
END
END
END
ELSE IF(@p_STAGE='KT_HC')
BEGIN
BEGIN
IF(EXISTS (SELECT * FROM MW_IN_MASTER WHERE IN_ID =@p_TRN_ID AND AUTH_STATUS_KT='A' AND @p_STAGE ='KT'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới vật liệu đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
ELSE
BEGIN
SET @p_STAGE ='HC'
UPDATE MW_IN_MASTER SET AUTH_STATUS ='R',CORE_NOTE = NULL
, MAKER_ID_KT = NULL, CREATE_DT_KT = NULL, APPROVE_DT = NULL, CHECKER_ID = NULL
--,CHECKER_ID_KT = @p_REJECTED_BY,APPROVE_DT_KT = GETDATE()
WHERE IN_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về hành chính thành công'
INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
END
END
END
ELSE
BEGIN
IF(EXISTS (SELECT * FROM MW_IN_MASTER WHERE IN_ID =@p_TRN_ID AND AUTH_STATUS='A' AND @p_STAGE ='HC'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới vật liệu đã được hành chính duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
ELSE
BEGIN
UPDATE MW_IN_MASTER SET AUTH_STATUS ='R' WHERE IN_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về thành công'
INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
END
END
END
END
--- MW - TRANSFER : ĐIỀU CHUYỂN VẬT LIỆU
ELSE IF(@p_TRN_TYPE ='MW_TRANSFER')
BEGIN
BEGIN
IF(@p_STAGE='KT')
BEGIN
IF(EXISTS (SELECT * FROM MW_TRANSFER WHERE TRANSFER_ID =@p_TRN_ID AND KT_AUTH_STATUS='A' AND @p_STAGE ='KT'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin điều chuyển vật liệu đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
ELSE
BEGIN
--UPDATE MW_TRANSFER SET KT_AUTH_STATUS ='R' WHERE TRANSFER_ID =@p_TRN_ID
--SET @p_MESSAGE =N'Thông tin điều chuyển vật liệu đã được trả về thành công'
IF(EXISTS(SELECT * FROM MW_TRANSFER WHERE TRANSFER_ID =@p_TRN_ID AND KT_MAKER_ID IS NOT NULL AND KT_MAKER_ID <>''))
BEGIN
UPDATE MW_TRANSFER SET KT_AUTH_STATUS ='R' WHERE TRANSFER_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin điều chuyển vật liệu đã được trả về thành công'
INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
END
ELSE
BEGIN
SET @p_STAGE ='HC'
UPDATE MW_TRANSFER SET AUTH_STATUS ='R' WHERE TRANSFER_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin điều chuyển vật liệu đã được trả về hành chính thành công'
INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
END
END
END
ELSE IF(@p_STAGE='KT_HC')
BEGIN
IF(EXISTS (SELECT * FROM MW_TRANSFER WHERE TRANSFER_ID =@p_TRN_ID AND KT_AUTH_STATUS='A' AND @p_STAGE ='KT'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin điều chuyển vật liệu đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
ELSE
BEGIN
SET @p_STAGE ='HC'
UPDATE MW_TRANSFER SET AUTH_STATUS ='R', CORE_NOTE = NULL
, KT_MAKER_ID = NULL, KT_CREATE_DT = NULL, APPROVE_DT = NULL, CHECKER_ID = NULL
--,KT_CHECKER_ID = @p_REJECTED_BY, KT_APPROVE_DT = GETDATE()
WHERE TRANSFER_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin điều chuyển vật liệu đã được trả về hành chính thành công'
INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
END
END
ELSE
BEGIN
IF(EXISTS (SELECT * FROM MW_TRANSFER WHERE TRANSFER_ID =@p_TRN_ID AND AUTH_STATUS='A' AND @p_STAGE ='HC'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin điều chuyển vật liệu đã được hành chính duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
ELSE
BEGIN
UPDATE MW_TRANSFER SET AUTH_STATUS ='R' WHERE TRANSFER_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin điều chuyển vật liệu đã được trả về thành công'
INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
END
END
END
END
--- MW_OUT : XUẤT VẬT LIỆU
ELSE IF(@p_TRN_TYPE ='MW_OUT')
BEGIN
BEGIN
IF(@p_STAGE='KT')
BEGIN
IF(EXISTS (SELECT * FROM MW_OUT WHERE OUT_ID =@p_TRN_ID AND KT_AUTH_STATUS='A' AND @p_STAGE ='KT'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng vật liệu đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
ELSE
BEGIN
--UPDATE MW_OUT SET KT_AUTH_STATUS ='R' WHERE OUT_ID =@p_TRN_ID
--SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về thành công'
IF(EXISTS(SELECT * FROM MW_OUT WHERE OUT_ID =@p_TRN_ID AND KT_MAKER_ID IS NOT NULL AND KT_MAKER_ID <>''))
BEGIN
UPDATE MW_OUT SET KT_AUTH_STATUS ='R' WHERE OUT_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về thành công'
INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
END
ELSE
BEGIN
SET @p_STAGE ='HC'
UPDATE MW_OUT SET AUTH_STATUS ='R' WHERE OUT_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về hành chính thành công'
INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
END
END
END
ELSE IF(@p_STAGE='KT_HC')
BEGIN
IF(EXISTS (SELECT * FROM MW_OUT WHERE OUT_ID =@p_TRN_ID AND KT_AUTH_STATUS='A' AND @p_STAGE ='KT'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng vật liệu đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
ELSE
BEGIN
SET @p_STAGE ='HC'
UPDATE MW_OUT SET AUTH_STATUS ='R', CORE_NOTE = NULL
, KT_MAKER_ID = NULL, KT_CREATE_DT = NULL, APPROVE_DT = NULL, CHECKER_ID = NULL
--, KT_APPROVE_DT = GETDATE() ,KT_CHECKER_ID = @p_REJECTED_BY
WHERE OUT_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về hành chính thành công'
INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
END
END
ELSE
BEGIN
IF(EXISTS (SELECT * FROM MW_OUT WHERE OUT_ID =@p_TRN_ID AND AUTH_STATUS='A' AND @p_STAGE ='HC'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin xuất sử dụng vật liệu đã được hành chính duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
ELSE
BEGIN
UPDATE MW_OUT SET AUTH_STATUS ='R' WHERE OUT_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về thành công'
INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
END
END
END
END
--- MW_OUT : THANH LÝ VẬT LIỆU
ELSE IF(@p_TRN_TYPE ='MW_LIQ_MASTER')
BEGIN
BEGIN
IF(@p_STAGE='KT')
BEGIN
IF(EXISTS (SELECT * FROM MW_LIQ_MASTER WHERE LIQ_ID =@p_TRN_ID AND KT_AUTH_STATUS='A' AND @p_STAGE ='KT'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thanh lý vật liệu đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
ELSE
BEGIN
--UPDATE MW_OUT SET KT_AUTH_STATUS ='R' WHERE OUT_ID =@p_TRN_ID
--SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về thành công'
IF(EXISTS(SELECT * FROM MW_LIQ_MASTER WHERE LIQ_ID =@p_TRN_ID AND KT_MAKER_ID IS NOT NULL AND KT_MAKER_ID <>''))
BEGIN
UPDATE MW_LIQ_MASTER SET KT_AUTH_STATUS ='R' WHERE LIQ_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin thanh lý vật liệu đã được trả về thành công'
INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
END
ELSE
BEGIN
SET @p_STAGE ='HC'
UPDATE MW_LIQ_MASTER SET AUTH_STATUS ='R' WHERE LIQ_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin thanh lý vật liệu đã được trả về hành chính thành công'
INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
END
END
END
ELSE IF(@p_STAGE='KT_HC')
BEGIN
IF(EXISTS (SELECT * FROM MW_LIQ_MASTER WHERE LIQ_ID =@p_TRN_ID AND KT_AUTH_STATUS='A' AND @p_STAGE ='KT'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thanh lý vật liệu đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
ELSE
BEGIN
SET @p_STAGE ='HC'
UPDATE MW_LIQ_MASTER SET AUTH_STATUS ='R', CORE_NOTE = NULL
, KT_MAKER_ID = NULL, KT_CREATE_DT = NULL, APPROVE_DT = NULL, CHECKER_ID = NULL
--,KT_CHECKER_ID = @p_REJECTED_BY, KT_APPROVE_DT = GETDATE()
WHERE LIQ_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin thanh lý vật liệu đã được trả về hành chính thành công'
INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
END
END
ELSE
BEGIN
IF(EXISTS (SELECT * FROM MW_LIQ_MASTER WHERE LIQ_ID =@p_TRN_ID AND AUTH_STATUS='A' AND @p_STAGE ='HC'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin thanh lý vật liệu đã được hành chính duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
ELSE
BEGIN
UPDATE MW_LIQ_MASTER SET AUTH_STATUS ='R' WHERE LIQ_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin thanh lý vật liệu đã được trả về thành công'
INSERT INTO dbo.PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES)
VALUES (@p_TRN_ID, 'REJECT', @p_REJECTED_BY, GETDATE(), @p_REASON , N'Từ chối phiếu')
END
END
END
END
-- PHIEU DE NGHI TAM UNG 05 11 2019
ELSE IF(@p_TRN_TYPE ='REQ_ADVANCE_PAY')
BEGIN
IF(@p_STAGE='KT')
BEGIN
-- doanptt them rang buoc nhap ky do tra ve
IF(@p_REASON IS NULL OR @p_REASON = '')
BEGIN
SET @p_MESSAGE =N'Lý do trả về không được để trống'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
IF(EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND AUTH_STATUS_KT ='A' AND @p_STAGE ='KT'))
BEGIN
SET @p_MESSAGE =N'Trả về thất bại! Phiếu đề nghị tạm ứng đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
ELSE
BEGIN
-- NEU DANG O VI TRI TKTGD, TKHDQT
IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_TRN_ID AND ROLE_USER IN ('TKTGD','TKHDQT') AND STATUS ='C'))
BEGIN
IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND TYPE_JOB ='KS' AND TLNAME =@p_REJECTED_BY))
BEGIN
SET @p_MESSAGE =N'Trả về thất bại! Phiếu đề nghị tạm ứng chưa được điều phối cho nhân viên xử lý'
ROLLBACK TRANSACTION
SELECT '-1' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '-1'
END
--UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS_KT ='R' WHERE REQ_PAY_ID =@p_TRN_ID
SET @p_MESSAGE =N'Phiếu đề nghị tạm ứng đã được trả về nhân viên xử lý thành công'
---- CAP NHAT LAI TR_PROCESS_REQUEST_CHILD VE GIAO DICH VIEN
UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE TLNAME =(SELECT TOP 1 TLNAME FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND TYPE_JOB ='XL')
AND REQ_ID =@p_TRN_ID
-- INSERT VAO BANG PL_PROCESS 1 DONG TRA VE
UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE TLNAME =@p_REJECTED_BY AND REQ_ID =@p_TRN_ID AND TYPE_JOB ='KS'
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'REJECT', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
@p_REASON ,N'Trưởng văn phòng từ chối nhân viên xử lý' -- PROCESS_DESC - nvarchar(1000)
)
EXEC SYS_CodeMasters_Gen 'CM_REJECT_LOG', @p_LOG_ID out
IF @p_LOG_ID='' OR @p_LOG_ID IS NULL GOTO ABORT
INSERT INTO [dbo].[CM_REJECT_LOG] VALUES (@p_LOG_ID,'HC',@p_TRN_ID,@p_TRN_TYPE,CONVERT(DATETIME,GETDATE(),103),'R',@p_REASON,'Y',@p_REJECTED_BY,CONVERT(DATETIME,GETDATE(),103))
COMMIT TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
--UPDATE MW_OUT SET KT_AUTH_STATUS ='R' WHERE OUT_ID =@p_TRN_ID
--SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về thành công'
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>''))
BEGIN
UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS_KT ='R' WHERE REQ_PAY_ID =@p_TRN_ID
SET @p_MESSAGE =N'Phiếu đề nghị tạm ứng đã được trả về thành công'
---- CAP NHAT LAI TR_PROCESS_REQUEST_CHILD VE GIAO DICH VIEN
UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE TLNAME =(SELECT MAKER_ID_KT FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID)
AND REQ_ID =@p_TRN_ID
-- INSERT VAO BANG PL_PROCESS 1 DONG TRA VE
UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE TLNAME =@p_REJECTED_BY AND REQ_ID =@p_TRN_ID
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'REJECT', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
@p_REASON ,N'KSV trả về cho GDV' -- PROCESS_DESC - nvarchar(1000)
)
END
ELSE
BEGIN
SET @p_STAGE ='HC'
UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS ='R',PROCESS ='',MAKER_ID_KT = NULL, CREATE_DT_KT =NULL, APPROVE_DT = NULL, CHECKER_ID = NULL WHERE REQ_PAY_ID =@p_TRN_ID
SET @p_MESSAGE =N'Phiếu đề nghị tạm ứng đã được trả về đơn vị thành công'
---- CAP NHAT LAI TR_PROCESS_REQUEST_CHILD VE GIAO DICH VIEN
DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID
DELETE FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_TRN_ID
-- INSERT VAO BANG PL_PROCESS 1 DONG TRA VE
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'REJECT', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
@p_REASON,N'Trả về cho người tạo phiếu' -- PROCESS_DESC - nvarchar(1000)
)
END
END
END
ELSE IF(@p_STAGE='KT_HC')
BEGIN
IF(EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND AUTH_STATUS_KT = 'A'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Phiếu đề nghị tạm ứng đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
ELSE
BEGIN
SET @p_STAGE ='HC'
UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS ='R',PROCESS ='',MAKER_ID_KT = NULL, CREATE_DT_KT =NULL, APPROVE_DT = NULL, CHECKER_ID = NULL WHERE REQ_PAY_ID =@p_TRN_ID
SET @p_MESSAGE =N'Phiếu đề nghị tạm ứng đã được trả về đơn vị thành công'
---- CAP NHAT LAI TR_PROCESS_REQUEST_CHILD VE GIAO DICH VIEN
DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID
DELETE FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_TRN_ID
-- INSERT VAO BANG PL_PROCESS 1 DONG TRA VE
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'REJECT', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
@p_REASON,N'Trả về cho người tạo phiếu' -- PROCESS_DESC - nvarchar(1000)
)
END
END
ELSE IF(@p_STAGE ='HC')
BEGIN
IF(EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND AUTH_STATUS='A' AND @p_STAGE ='HC' AND (MAKER_ID_KT IS NULL OR MAKER_ID_KT ='')))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại! Phiếu đề nghị tạm ứng đã được duyệt hoàn tất ở cấp độ Hành Chính Quản Trị'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
IF(EXISTS (SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND AUTH_STATUS='R'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại! Phiếu đề nghị tạm ứng đã được trả về trước đó'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
ELSE
BEGIN
UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS ='R',PROCESS ='',CHECKER_ID ='',APPROVE_DT =NULL, MAKER_ID_KT =NULL, CREATE_DT_KT = NULL, APPROVE_DT_KT =NULL WHERE REQ_PAY_ID =@p_TRN_ID
SET @p_MESSAGE =N'Phiếu đề nghị tạm ứng được trả về về thành công'
--NEU PHIEU DANG TRONG QUA TRINH PHE DUYET THI XOA TOAN BO PL_PROCESS VA PL_REQUEST_PROCESS
-- XOA CAC CAP PHE DUYET, KHI DON VI THUC HIEN CHINH SUA THI HE THONG SE INSERT LAI
DELETE FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_TRN_ID
DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID
--DELETE FROM PL_PROCESS WHERE REQ_ID =@p_TRN_ID
-- INSERT VAO BANG PL_PROCESS 1 DONG TRA VE
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'REJECT', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
@p_REASON ,N'Trả về' -- PROCESS_DESC - nvarchar(1000)
)
END
END
ELSE IF(@p_STAGE ='SUG')
BEGIN
UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID=@p_TRN_ID AND TLNAME=@p_REJECTED_BY
DECLARE @LEVEL_JOB VARCHAR(5), @LEVEL_JOB_PREV INT
SET @LEVEL_JOB =(SELECT LEVEL_JOB FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND TLNAME=@p_REJECTED_BY)
SET @LEVEL_JOB_PREV = CONVERT(INT,@LEVEL_JOB) -1
UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE REQ_ID=@p_TRN_ID AND LEVEL_JOB = CONVERT(VARCHAR(5),@LEVEL_JOB_PREV)
-- CAP NHAT TINH TRANG VE DANG XU LY
UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS_KT ='S' WHERE REQ_PAY_ID =@p_TRN_ID
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'REJECT', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
@p_REASON ,N'GDV đề xuất từ chối phiếu' -- PROCESS_DESC - nvarchar(1000)
)
SET @p_MESSAGE =N'Phiếu đề nghị tạm ứng được đề xuất từ chối thành công'
END
ELSE IF(@p_STAGE ='DEL')
BEGIN
UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS_KT ='D',AUTH_STATUS ='D' WHERE REQ_PAY_ID =@p_TRN_ID
UPDATE TR_REQ_ADVANCE_PAYMENT SET AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID =@p_TRN_ID
UPDATE TR_REQ_PAYMENT_DT SET AUTH_STATUS_KT ='D' WHERE PAY_ID =@p_TRN_ID
UPDATE TR_REQ_PAY_SCHEDULE SET AUTH_STATUS_KT='D' WHERE PAY_ID =@p_TRN_ID
UPDATE TR_REQ_PAY_PERIOD SET AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID =@p_TRN_ID
---------------------------------------------------------------------------------------------------------------------
DECLARE CURS_TRADE CURSOR FOR SELECT A.TRADE_ID, A.AMT_EXE FROM TR_REQ_PAY_BUDGET A WHERE A.REQ_PAY_ID =@p_TRN_ID
OPEN CURS_TRADE
FETCH NEXT FROM CURS_TRADE INTO @TRADED_ID,@AMT_EXE
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE PL_TRADEDETAIL SET AMT_EXE = ISNULL(AMT_EXE,0) + @AMT_EXE
WHERE TRADE_ID =@TRADED_ID
FETCH NEXT FROM CURS_TRADE INTO @TRADED_ID,@AMT_EXE
END
CLOSE CURS_TRADE
DEALLOCATE CURS_TRADE
DECLARE CURS CURSOR FOR SELECT A.PAY_ADV_ID,A.AMT_USE,A.AMT_ADD,A.AMT_REVERT FROM TR_REQ_PAYMENT_DT A WHERE A.PAY_ID =@p_TRN_ID
OPEN CURS
FETCH NEXT FROM CURS INTO @PAY_ADVANCE_ID,@AMT_PAY,@AMT_ADD , @AMT_REVERT
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE TR_REQ_ADVANCE_PAYMENT
SET PAY_AMT = ISNULL(PAY_AMT,0) - @AMT_PAY - @AMT_REVERT + @AMT_ADD WHERE REQ_PAY_ID=@PAY_ADVANCE_ID
FETCH NEXT FROM CURS INTO @PAY_ADVANCE_ID,@AMT_PAY,@AMT_ADD , @AMT_REVERT
END
CLOSE CURS
DEALLOCATE CURS
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'DEL', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
@p_REASON ,N'KSV hủy phiếu' -- PROCESS_DESC - nvarchar(1000)
)
--doanptt ẩn nscp khi hủy hoặc trả phiếu về HC
UPDATE TR_REQ_BUDGET_MONTH_LIMIT_DETAIL SET RECORD_STATUS = '0'
UPDATE TR_REQ_BUDGET_YEAR_LIMIT_DETAIL SET RECORD_STATUS = '0'
SET @p_MESSAGE =N'Phiếu đề nghị tạm ứng được hủy thành công. Bạn vẫn có thể xem thông tin giao dịch với tình trạng đã bị hủy'
END
END
-- END PHIEU DE NGHI TAM UNG 05 11 2019
-- START PHIEU DE THI THANH TOAN 19-11-2019
ELSE IF(@p_TRN_TYPE ='TR_REQ_PAY')
BEGIN
BEGIN
IF(@p_STAGE='KT')
BEGIN
IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND AUTH_STATUS_KT ='A' AND @p_STAGE ='KT'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Phiếu đề nghị thanh toán đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
ELSE
BEGIN
--UPDATE MW_OUT SET KT_AUTH_STATUS ='R' WHERE OUT_ID =@p_TRN_ID
--SET @p_MESSAGE =N'Thông tin xuất sử dụng vật liệu đã được trả về thành công'
IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND MAKER_ID_KT IS NOT NULL AND MAKER_ID_KT <>''))
BEGIN
UPDATE TR_REQ_PAYMENT SET AUTH_STATUS_KT ='R' WHERE REQ_PAY_ID =@p_TRN_ID
SET @p_MESSAGE =N'Phiếu đề nghị thanh toán đã được trả về thành công'
---- CAP NHAT LAI TR_PROCESS_REQUEST_CHILD VE GIAO DICH VIEN
UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE TLNAME =(SELECT MAKER_ID_KT FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID)
AND REQ_ID =@p_TRN_ID
UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE TLNAME =@p_REJECTED_BY AND REQ_ID =@p_TRN_ID
-- INSERT VAO BANG LICH SU
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'REJECT', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
@p_REASON ,N'KSV trả về cho GDV' -- PROCESS_DESC - nvarchar(1000)
)
END
ELSE
BEGIN
SET @p_STAGE ='HC'
UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='R',PROCESS ='',MAKER_ID_KT = NULL, CREATE_DT_KT =NULL, APPROVE_DT = NULL, CHECKER_ID = NULL WHERE REQ_PAY_ID =@p_TRN_ID
SET @p_MESSAGE =N'Phiếu đề nghị thanh toán đã được trả về đơn vị thành công'
-- XOA DI DU LIEU DA DIEU PHOI, CHO DON VI XU LY VA DUYET LAI SE DIEU PHOI LAI
---- CAP NHAT LAI TR_PROCESS_REQUEST_CHILD VE GIAO DICH VIEN
DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID
-- INSERT VAO BANG LICH SU
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'REJECT', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
@p_REASON ,N'Từ chối phiếu' -- PROCESS_DESC - nvarchar(1000)
)
SET @p_MESSAGE =N'Phiếu đề nghị thanh toán được từ chối thành công'
--doanptt 210622 xóa nscp khi hủy hoặc trả phiếu về HC
DELETE FROM TR_REQ_BUDGET_MONTH_LIMIT_DETAIL WHERE REQ_PAY_ID = @p_TRN_ID
DELETE FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE REQ_PAY_ID = @p_TRN_ID
END
END
END
ELSE IF(@p_STAGE='KT_HC')
BEGIN
IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND AUTH_STATUS_KT = 'A'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Phiếu đề nghị thanh toán đã được kế toán duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
ELSE
BEGIN
SET @p_STAGE ='HC'
UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='R',PROCESS ='',MAKER_ID_KT = NULL, CREATE_DT_KT =NULL, APPROVE_DT = NULL, CHECKER_ID = NULL WHERE REQ_PAY_ID =@p_TRN_ID
SET @p_MESSAGE =N'Phiếu đề nghị thanh toán đã được trả về đơn vị thành công'
---- CAP NHAT LAI TR_PROCESS_REQUEST_CHILD VE GIAO DICH VIEN
DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID
DELETE FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_TRN_ID
-- INSERT VAO BANG PL_PROCESS 1 DONG TRA VE
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'REJECT', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
@p_REASON,N'Trả về cho người tạo phiếu' -- PROCESS_DESC - nvarchar(1000)
)
END
END
ELSE IF(@p_STAGE ='HC')
BEGIN
IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND AUTH_STATUS='A' AND @p_STAGE ='HC'AND (MAKER_ID_KT IS NULL OR MAKER_ID_KT ='')))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Phiếu đề nghị thanh toán đã được trưởng đơn vị duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
ELSE
BEGIN
UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='R',PROCESS='',CHECKER_ID ='',APPROVE_DT =NULL, MAKER_ID_KT =NULL, CREATE_DT_KT = NULL, APPROVE_DT_KT =NULL WHERE REQ_PAY_ID =@p_TRN_ID
DELETE FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID
SET @p_MESSAGE =N'Phiếu đề nghị thanh toán được trả về thành công'
-- INSERT VAO BANG LICH SU
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'REJECT', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
@p_REASON,N'Trả về' -- PROCESS_DESC - nvarchar(1000)
)
--doanptt xóa nscp khi hủy hoặc trả phiếu về HC
DELETE FROM TR_REQ_BUDGET_MONTH_LIMIT_DETAIL WHERE REQ_PAY_ID = @p_TRN_ID
DELETE FROM TR_REQ_BUDGET_YEAR_LIMIT_DETAIL WHERE REQ_PAY_ID = @p_TRN_ID
END
END
ELSE IF(@p_STAGE ='SUG')
BEGIN
UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='P' WHERE REQ_ID=@p_TRN_ID AND TLNAME=@p_REJECTED_BY
DECLARE @LEVEL_JOB_PAY VARCHAR(5), @LEVEL_JOB_PREV_PAY INT
SET @LEVEL_JOB_PAY =(SELECT LEVEL_JOB FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_TRN_ID AND TLNAME=@p_REJECTED_BY)
SET @LEVEL_JOB_PREV_PAY = CONVERT(INT,@LEVEL_JOB_PAY) -1
UPDATE PL_REQUEST_PROCESS_CHILD SET STATUS_JOB ='C' WHERE REQ_ID=@p_TRN_ID AND LEVEL_JOB = CONVERT(VARCHAR(5),@LEVEL_JOB_PREV_PAY)
UPDATE TR_REQ_PAYMENT SET AUTH_STATUS_KT ='S' WHERE REQ_PAY_ID =@p_TRN_ID
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'SUG', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
@p_REASON ,N'GDV đề xuất từ chối phiếu' -- PROCESS_DESC - nvarchar(1000)
)
SET @p_MESSAGE =N'Phiếu đề nghị thanh toán được đề xuất từ chối thành công'
END
ELSE IF(@p_STAGE ='DEL')
BEGIN
UPDATE TR_REQ_PAYMENT SET AUTH_STATUS_KT ='D',AUTH_STATUS ='D' WHERE REQ_PAY_ID =@p_TRN_ID
UPDATE TR_REQ_PAYMENT SET AUTH_STATUS_KT ='D' WHERE REQ_PAY_ID =@p_TRN_ID
UPDATE TR_REQ_PAYMENT_DT SET AUTH_STATUS_KT ='D' WHERE PAY_ID =@p_TRN_ID
UPDATE TR_REQ_PAY_SCHEDULE SET AUTH_STATUS_KT='D' WHERE PAY_ID =@p_TRN_ID
---------------------------------------------------------------------------------------------------------------------
--DECLARE @TRADED_ID VARCHAR(15), @AMT_EXE DECIMAL(18,0)
DECLARE CURS_TRADE CURSOR FOR SELECT A.TRADE_ID, A.AMT_EXE FROM TR_REQ_PAY_BUDGET A WHERE A.REQ_PAY_ID =@p_TRN_ID
OPEN CURS_TRADE
FETCH NEXT FROM CURS_TRADE INTO @TRADED_ID,@AMT_EXE
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE PL_TRADEDETAIL SET AMT_EXE = ISNULL(AMT_EXE,0) + @AMT_EXE
WHERE TRADE_ID =@TRADED_ID
FETCH NEXT FROM CURS_TRADE INTO @TRADED_ID,@AMT_EXE
END
CLOSE CURS_TRADE
DEALLOCATE CURS_TRADE
-- XOA NGAN SACH
--DELETE FROM TR_REQ_PAY_BUDGET WHERE REQ_PAY_ID= @p_TRN_ID
--- NEU LA TAM UNG NOI BO THI PHAI REVERT LAI SO TIEN DA HOAN UNG CUA PHIEU DE NGHI TAM UNG
--DECLARE @PAY_ADVANCE_ID VARCHAR(15), @AMT_PAY DECIMAL(18,0), @AMT_REVERT DECIMAL(18,0), @AMT_ADD DECIMAL(18,0)
DECLARE CURS CURSOR FOR SELECT A.PAY_ADV_ID,A.AMT_USE,A.AMT_ADD,A.AMT_REVERT FROM TR_REQ_PAYMENT_DT A WHERE A.PAY_ID =@p_TRN_ID
OPEN CURS
FETCH NEXT FROM CURS INTO @PAY_ADVANCE_ID,@AMT_PAY,@AMT_ADD , @AMT_REVERT
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE TR_REQ_ADVANCE_PAYMENT
SET PAY_AMT = ISNULL(PAY_AMT,0) - @AMT_PAY - @AMT_REVERT + @AMT_ADD WHERE REQ_PAY_ID=@PAY_ADVANCE_ID
FETCH NEXT FROM CURS INTO @PAY_ADVANCE_ID,@AMT_PAY,@AMT_ADD , @AMT_REVERT
END
CLOSE CURS
DEALLOCATE CURS
---- XOA DI SO TIEN DA HOAN UNG CUA KI THANH TOAN NEU THANH TOAN NHA CUNG CAP VUA HOAN UNG DOT CŨ VÀ VỪA THANH TOÁN ĐỢT MỚI
--DECLARE @REQ_PAY_ID VARCHAR(15), @AMT_REAL DECIMAL(18,0)
--DECLARE CURS_SCHE CURSOR FOR SELECT A.REQ_PAY_ID, A.AMT_PAY_REAL FROM TR_REQ_PAY_SCHEDULE A WHERE A.REQ_PAY_ID =@p_TRN_ID
--OPEN CURS_SCHE
-- FETCH NEXT FROM CURS_TRADE INTO @TRADED_ID,@AMT_EXE
-- WHILE @@FETCH_STATUS = 0
-- BEGIN
-- UPDATE PL_TRADEDETAIL SET AMT_EXE = ISNULL(AMT_EXE,0) + @AMT_EXE
-- WHERE TRADE_ID =@TRADED_ID
-- FETCH NEXT FROM CURS_SCHE INTO @TRADED_ID,@AMT_EXE
-- END
--CLOSE CURS_SCHE
--DEALLOCATE CURS_SCHE
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'DEL', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
@p_REASON ,N'KSV hủy phiếu' -- PROCESS_DESC - nvarchar(1000)
)
SET @p_MESSAGE =N'Phiếu đề nghị thanh toán được hủy thành công. Bạn vẫn có thể xem thông tin giao dịch với tình trạng đã bị hủy'
--doanptt ẩn nscp khi hủy hoặc trả phiếu về HC
UPDATE TR_REQ_BUDGET_MONTH_LIMIT_DETAIL SET RECORD_STATUS = '0'
UPDATE TR_REQ_BUDGET_YEAR_LIMIT_DETAIL SET RECORD_STATUS = '0'
END
END
END
-- END PHIEU DE THI THANH TOAN 19-11-2019
--- Tờ trình chủ trương
ELSE IF(@p_TRN_TYPE='PL_REQUEST_DOC')
BEGIN IF(EXISTS(SELECT * FROM dbo.PL_REQUEST_DOC WHERE REQ_ID=@p_TRN_ID AND PROCESS_ID='APPROVE'))
BEGIN
SET @p_MESSAGE =N'Trả về thất bại! Tờ trình chủ trương đã được duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
ELSE
BEGIN
UPDATE dbo.PL_REQUEST_DOC SET PROCESS_ID='REJECT',AUTH_STATUS='R' WHERE REQ_ID=@p_TRN_ID
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'REJECT', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
@p_REASON ,N'Từ chối phiếu' -- PROCESS_DESC - nvarchar(1000)
)
SET @p_MESSAGE =N'Tờ trình chủ trương đã được trả về thành công'
-- 28-10-2020 LUCTV, KHI TRA VE PHAI PL_REQUEST_PROCESS
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Tờ trình bị trả về' WHERE PROCESS_ID='APPNEW' AND REQ_ID=@p_TRN_ID
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='SIGN' AND REQ_ID=@p_TRN_ID
END
END
ELSE IF(@p_TRN_TYPE='TR_REQUEST_DOC')
BEGIN
--IF(@p_STAGE='DVMS')
--BEGIN
--END
IF(@p_STAGE='PDYC' OR @p_STAGE ='DV')
BEGIN
IF(EXISTS(SELECT * FROM dbo.TR_REQUEST_DOC WHERE REQ_ID=@p_TRN_ID AND PROCESS_ID='APPROVE'))
BEGIN
SET @p_MESSAGE =N'Trả về thất bại! Phiếu yêu cầu đã được duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
ELSE
BEGIN
UPDATE dbo.TR_REQUEST_DOC SET PROCESS_ID='REJECT', AUTH_STATUS ='R' WHERE REQ_ID=@p_TRN_ID
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'REJECT', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
@p_REASON ,N'Từ chối phiếu' -- PROCESS_DESC - nvarchar(1000)
)
SET @p_MESSAGE =N'Phiếu yêu cầu mua sắm đã được trả về thành công'
-- 28-10-2020 LUCTV, KHI TRA VE PHAI PL_REQUEST_PROCESS
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='APPNEW' AND REQ_ID=@p_TRN_ID
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='SIGN' AND REQ_ID=@p_TRN_ID
END
END
END
-- END IF
-- NEU LA TRA VE CUA HOP DONG
ELSE IF(@p_TRN_TYPE='TR_CONTRACT')
BEGIN
--- CAP NHAT AUTH_STATUS CUA HOP DONG VE R
IF(EXISTS(SELECT * FROM TR_CONTRACT WHERE CONTRACT_ID =@p_TRN_ID AND AUTH_STATUS='R'))
BEGIN
SET @p_MESSAGE =N'Trả về thất bại! Hợp đồng đã được trả về trước đó. Vui lòng đợi nhân viên cập nhật thông tin và bấm gửi phê duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
IF(EXISTS(SELECT * FROM TR_CONTRACT WHERE CONTRACT_ID =@p_TRN_ID AND AUTH_STATUS='A'))
BEGIN
SET @p_MESSAGE =N'Trả về thất bại! Hợp đồng đã được phê duyệt thành công trước đó!'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
UPDATE TR_CONTRACT SET AUTH_STATUS ='R', IS_SEND_APPR = 'N'
WHERE CONTRACT_ID =@p_TRN_ID
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'REJECT', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
@p_REASON ,N'Từ chối phiếu' -- PROCESS_DESC - nvarchar(1000)
)
SET @p_MESSAGE =N'Hợp đồng đã được trả về thành công'
END
-- NEU LA TRA VE CUA HOP DONG
ELSE IF(@p_TRN_TYPE='TR_PO')
BEGIN
--- CAP NHAT AUTH_STATUS CUA HOP DONG VE R
IF(EXISTS(SELECT * FROM TR_PO_MASTER WHERE CONTRACT_ID =@p_TRN_ID AND AUTH_STATUS='R'))
BEGIN
SET @p_MESSAGE =N'Trả về thất bại! PO đã được trả về trước đó. Vui lòng đợi nhân viên cập nhật thông tin và bấm gửi phê duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
IF(EXISTS(SELECT * FROM TR_PO_MASTER WHERE CONTRACT_ID =@p_TRN_ID AND AUTH_STATUS='A'))
BEGIN
SET @p_MESSAGE =N'Trả về thất bại! PO đã được phê duyệt thành công trước đó!'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
UPDATE TR_PO_MASTER SET
AUTH_STATUS ='R', IS_SEND_APPR = 'N'
WHERE PO_ID =@p_TRN_ID
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID, -- REQ_ID - varchar(15)
'REJECT', -- PROCESS_ID - varchar(10)
@p_REJECTED_BY, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
@p_REASON ,N'Từ chối phiếu' -- PROCESS_DESC - nvarchar(1000)
)
SET @p_MESSAGE =N'PO đã được trả về thành công'
END
--- KET THUC TRA VE PO
ELSE
BEGIN
SET @p_MESSAGE =N'Trả về giao dịch thành công'
END
---BAODNQ 28/12/2021: Thêm xử lý trả về cho phân hệ quản lý cho thuê------
-------Khai báo DTSD nội bộ-------
IF(@p_TRN_TYPE ='BUD_INTERNAL')
--BEGIN ELSE IF---
BEGIN
IF(EXISTS (SELECT * FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID =@p_TRN_ID AND AUTH_STATUS ='A'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin khai báo DTSD nội bộ đã được duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
UPDATE BUD_CONTRACT_MASTER
SET AUTH_STATUS ='R',
---BAODNQ 31/12/2021: Gán IS_SEND_APPR = 'N' khi bị trả về------
IS_SEND_APPR = 'N',
CHECKER_ID = NULL,
APPROVE_DT = NULL,
SEND_APPR_DT = NULL,
SIGN_DT = NULL
WHERE CONTRACT_ID=@p_TRN_ID
SET @p_MESSAGE =N'Thông tin khai báo DTSD nội bộ đã được trả về thành công'
--------BAODNQ 10/03/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
@p_REASON ,
N'Từ chối phiếu'
)
IF @@ERROR <> 0 GOTO ABORT
---END ELSE IF---
END
-------Quản lý hợp đồng khách thuê-------
ELSE IF(@p_TRN_TYPE ='BUD_RENTAL')
--BEGIN ELSE IF---
BEGIN
IF(EXISTS (SELECT * FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID =@p_TRN_ID AND AUTH_STATUS ='A'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin khai báo DT cho khách thuê đã được duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
UPDATE BUD_CONTRACT_CUST_MASTER
SET AUTH_STATUS ='R',
---BAODNQ 31/12/2021: Gán IS_SEND_APPR = 'N' khi bị trả về------
IS_SEND_APPR = 'N',
CHECKER_ID = NULL,
APPROVE_DT = NULL,
SEND_APPR_DT = NULL,
SIGN_DT = NULL
WHERE CONTRACT_ID=@p_TRN_ID
SET @p_MESSAGE =N'Thông tin khai báo DT cho khách thuê đã được trả về thành công'
--------BAODNQ 10/03/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
@p_REASON ,
N'Từ chối phiếu'
)
IF @@ERROR <> 0 GOTO ABORT
---END ELSE IF---
END
---datmq 28/12/2021: Thêm xử lý trả về cho phân hệ quản lý cho thuê------
-------Quản lý trụ sở-------
ELSE IF(@p_TRN_TYPE ='BUD_MASTER')
--BEGIN ELSE IF---
BEGIN
IF(EXISTS (SELECT * FROM BUD_MASTER WHERE BUILDING_ID =@p_TRN_ID AND AUTH_STATUS ='A'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin quản lý cho thuê đã được duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
---BAODNQ 26/1/2021: Gán IS_SEND_APPR = 'N' khi bị trả về------
UPDATE BUD_MASTER SET
AUTH_STATUS ='R', IS_SEND_APPR = 'N',
CHECKER_ID = NULL,
APPROVE_DT = NULL,
SEND_APPR_DT = NULL,
SIGN_DT = NULL
WHERE BUILDING_ID=@p_TRN_ID
SET @p_MESSAGE =N'Thông tin quản lý trụ sở đã được trả về thành công'
--------BAODNQ 10/03/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
@p_REASON ,
N'Từ chối phiếu'
)
IF @@ERROR <> 0 GOTO ABORT
---END ELSE IF---
END
/*
---doanptt 10/02/2022: Thêm xử lý trả về cho phân hệ quản lý thanh toán/ tạm ứng------
ELSE IF(@p_TRN_TYPE ='TR_REQ_PAY')
BEGIN
IF(@p_STAGE='HC')
BEGIN
IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND AUTH_STATUS = 'A' AND @p_STAGE ='HC'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới phiếu đề nghị thanh toán đã được hành chính duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
ELSE
BEGIN
--UPDATE MW_IN_MASTER SET AUTH_STATUS_KT ='R' WHERE IN_ID =@p_TRN_ID
--SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về thành công'
IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND MAKER_ID IS NOT NULL AND MAKER_ID <>''))
BEGIN
UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='R' WHERE REQ_PAY_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin nhập mới phiếu đề nghị thanh toán đã được trả về thành công'
END
END
END
END
---doanptt 10/02/2022: Thêm xử lý trả về cho phân hệ quản lý thanh toán/ tạm ứng------
ELSE IF(@p_TRN_TYPE ='TR_REQ_ADVACNE_PAY')
BEGIN
IF(@p_STAGE='HC')
BEGIN
IF(EXISTS (SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND AUTH_STATUS = 'A' AND @p_STAGE ='HC'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin nhập mới phiếu đề nghị tạm ứng đã được hành chính duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
ELSE
BEGIN
--UPDATE MW_IN_MASTER SET AUTH_STATUS_KT ='R' WHERE IN_ID =@p_TRN_ID
--SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về thành công'
IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_TRN_ID AND MAKER_ID IS NOT NULL AND MAKER_ID <>''))
BEGIN
UPDATE TR_REQ_PAYMENT SET AUTH_STATUS ='R' WHERE REQ_PAY_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin nhập mới phiếu đề nghị tạm ứng đã được trả về thành công'
END
/*ELSE
BEGIN
SET @p_STAGE ='HC'
UPDATE MW_IN_MASTER SET AUTH_STATUS ='R' WHERE IN_ID =@p_TRN_ID
SET @p_MESSAGE =N'Thông tin nhập mới vật liệu đã được trả về hành chính thành công'
END*/
END
END
END
*/
------BAODNQ 14/02/2022: Thêm xử lý trả về cho phân hệ quản lý BDS------
-------------Quản lý BDS---------------
ELSE IF(@p_TRN_TYPE = 'RET_MASTER')
BEGIN
IF(EXISTS(SELECT * FROM RET_MASTER WHERE RET_ID = @p_TRN_ID AND AUTH_STATUS = 'A'))
BEGIN
SET @p_MESSAGE = N'Hủy trả về thất bại! Thông tin bất động sản đã được duyệt'
ROLLBACK TRANSACTION
SELECT '0' AS Result, @p_LOG_ID LOG_ID, @p_MESSAGE ErrorDesc
RETURN '0'
END
UPDATE RET_MASTER
SET AUTH_STATUS = 'R', IS_SEND_APPR = 'N',
CHECKER_ID = NULL,
APPROVE_DT = NULL,
SEND_APPR_DT = NULL,
SIGN_DT = NULL
WHERE RET_ID = @p_TRN_ID
SET @p_MESSAGE = N'Thông tin bất động sản đã được trả về thành công'
--------BAODNQ 10/03/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
@p_REASON ,
N'Từ chối phiếu'
)
IF @@ERROR <> 0 GOTO ABORT
END
-------Thông tin sửa chữa BDS--------------
ELSE IF(@p_TRN_TYPE = 'RET_REPAIR')
BEGIN
IF(EXISTS(SELECT * FROM RET_REPAIR WHERE RP_ID = @p_TRN_ID AND AUTH_STATUS = 'A'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại! Thông tin sửa chữa BDS đã được duyệt'
ROLLBACK TRANSACTION
SELECT '0' AS Result, @p_LOG_ID LOG_ID, @p_MESSAGE ErrorDesc
RETURN '0'
END
UPDATE RET_REPAIR
SET AUTH_STATUS = 'R', IS_SEND_APPR = 'N',
CHECKER_ID = NULL,
APPROVE_DT = NULL,
SEND_APPR_DT = NULL,
SIGN_DT = NULL
WHERE RP_ID = @p_TRN_ID
SET @p_MESSAGE = N'Thông tin sửa chữa BDS đã được trả về thành công'
--------BAODNQ 10/03/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
@p_REASON ,
N'Từ chối phiếu'
)
IF @@ERROR <> 0 GOTO ABORT
END
-----BDS thuê làm trụ sở CN/PGD--------
ELSE IF(@p_TRN_TYPE = 'REAL_ESTATE_R_H')
BEGIN
IF(EXISTS(SELECT * FROM REAL_ESTATE_R_H WHERE RET_R_H_ID = @p_TRN_ID AND AUTH_STATUS = 'A'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại! BDS thuê làm trụ sở CN/PGD đã được duyệt'
ROLLBACK TRANSACTION
SELECT '0' AS Result, @p_LOG_ID LOG_ID, @p_MESSAGE ErrorDesc
RETURN '0'
END
UPDATE REAL_ESTATE_R_H
SET AUTH_STATUS = 'R', IS_SEND_APPR = 'N',
CHECKER_ID = NULL,
APPROVE_DT = NULL,
SEND_APPR_DT = NULL,
SIGN_DT = NULL
WHERE RET_R_H_ID = @p_TRN_ID
SET @p_MESSAGE = N'BDS thuê làm trụ sở CN/PGD đã được trả về thành công'
--------BAODNQ 10/03/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
@p_REASON ,
N'Từ chối phiếu'
)
IF @@ERROR <> 0 GOTO ABORT
END
-----BDS đang hoàn thiện thủ tục pháp lý--------
ELSE IF(@p_TRN_TYPE = 'REAL_ESTATE_L_C')
BEGIN
IF(EXISTS(SELECT * FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @p_TRN_ID AND AUTH_STATUS = 'A'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại! BDS đang hoàn thiện thủ tục pháp lý đã được duyệt'
ROLLBACK TRANSACTION
SELECT '0' AS Result, @p_LOG_ID LOG_ID, @p_MESSAGE ErrorDesc
RETURN '0'
END
UPDATE REAL_ESTATE_L_C
SET AUTH_STATUS = 'R', IS_SEND_APPR = 'N',
CHECKER_ID = NULL,
APPROVE_DT = NULL,
SEND_APPR_DT = NULL,
SIGN_DT = NULL
WHERE RET_L_C_ID = @p_TRN_ID
SET @p_MESSAGE = N'BDS đang hoàn thiện thủ tục pháp lý đã được trả về thành công'
--------BAODNQ 10/03/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
@p_REASON ,
N'Từ chối phiếu'
)
IF @@ERROR <> 0 GOTO ABORT
END
---------BAODNQ 18/3/2022: Đánh giá NCC--------
-------Đánh giá NCC---------
ELSE IF(@p_TRN_TYPE = 'TR_RATE_SUPPLIER_MASTER')
BEGIN
IF(EXISTS(SELECT * FROM TR_RATE_SUPPLIER_MASTER WHERE RATE_ID = @p_TRN_ID AND AUTH_STATUS = 'A'))
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại! Biên bản đánh giá NCC đã được duyệt'
ROLLBACK TRANSACTION
SELECT '0' AS Result, @p_LOG_ID LOG_ID, @p_MESSAGE ErrorDesc
RETURN '0'
END
UPDATE TR_RATE_SUPPLIER_MASTER
SET AUTH_STATUS = 'R',
IS_SEND_APPR = 'N',
PROCESS_STATUS = 'REJECT'
WHERE RATE_ID = @p_TRN_ID
SET @p_MESSAGE = N'Biên bản đánh giá NCC đã được trả về thành công'
--------BAODNQ 10/03/2022: Insert vào PL_PROCESS lưu lịch sử xử lý---------
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
@p_REASON ,
N'Từ chối phiếu'
)
IF @@ERROR <> 0 GOTO ABORT
END
ELSE IF(@p_TRN_TYPE ='TR_REQUEST_CAR')
BEGIN
DECLARE @p_PROCESS_ID VARCHAR(15)
SELECT @p_PROCESS_ID=PROCESS_ID FROM TR_REQUEST_CAR WHERE REQ_ID =@p_TRN_ID
IF(@p_PROCESS_ID='DONE')
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại!Thông tin phiếu yêu cầu xe đã được duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
IF(@p_PROCESS_ID IN ('SEND','TP_APP'))
BEGIN
UPDATE TR_REQUEST_CAR
SET AUTH_STATUS ='R',PROCESS_ID='REJECT',IS_SEND_APPR = 'N'
WHERE REQ_ID=@p_TRN_ID
SET @p_MESSAGE =N'Thông tin phiếu yêu cầu xe đã được trả về thành công'
IF(@p_PROCESS_ID='SEND')
BEGIN
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='SEND' AND REQ_ID=@p_TRN_ID
END
ELSE
BEGIN
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='TP_APP' AND REQ_ID=@p_TRN_ID
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='CV_APP' AND REQ_ID=@p_TRN_ID
END
END
ELSE IF(@p_PROCESS_ID='USER_SEND')
BEGIN
UPDATE TR_REQUEST_CAR
SET AUTH_STATUS ='R',PROCESS_ID='CV_REJECT'
WHERE REQ_ID=@p_TRN_ID
SET @p_MESSAGE =N'Thông tin phiếu yêu cầu xe đã được trả về thành công'
UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='P' WHERE TYPE_JOB='CV' AND REQ_ID=@p_TRN_ID
UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C' WHERE TYPE_JOB='XL' AND REQ_ID=@p_TRN_ID
END
ELSE IF(@p_PROCESS_ID IN ('MAKER_APP','CVSENDCONF'))
BEGIN
UPDATE TR_REQUEST_CAR
SET AUTH_STATUS ='R',PROCESS_ID='COSTREJECT',IS_CONFIRM_COST='N'
WHERE REQ_ID=@p_TRN_ID
SET @p_MESSAGE =N'Thông tin chi phí phiếu yêu cầu xe đã được trả về thành công'
IF(@p_PROCESS_ID='MAKER_APP')
BEGIN
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C' WHERE PROCESS_ID='CV_XL' AND REQ_ID=@p_TRN_ID
UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C' WHERE TYPE_JOB='CV' AND REQ_ID=@p_TRN_ID
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='MAKER_APP' AND REQ_ID=@p_TRN_ID
END
ELSE
BEGIN
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C' WHERE PROCESS_ID='CV_XL' AND REQ_ID=@p_TRN_ID
UPDATE dbo.PL_REQUEST_PROCESS_CHILD SET STATUS_JOB='C' WHERE TYPE_JOB='CV' AND REQ_ID=@p_TRN_ID
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='MAKER_APP' AND REQ_ID=@p_TRN_ID
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='TDV_C_APP' AND REQ_ID=@p_TRN_ID
END
END
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
@p_REASON,
N'Từ chối phiếu'
)
END
ELSE IF(@p_TRN_TYPE ='TR_REQUEST_JOB_FORM')
BEGIN
DECLARE @PROCESS_ID VARCHAR(15),@SIGN_USER VARCHAR(50)
SELECT @PROCESS_ID=PROCESS_ID,@SIGN_USER=SIGN_USER FROM dbo.TR_REQUEST_JOB_FORM WHERE REQ_ID =@p_TRN_ID
IF(@PROCESS_ID='APPROVE')
BEGIN
SET @p_MESSAGE =N'Hủy trả về thất bại! Thông tin phiếu yêu cầu xe đã được duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
IF(@PROCESS_ID IN ('SEND','SIGN'))
BEGIN
UPDATE dbo.TR_REQUEST_JOB_FORM
SET AUTH_STATUS ='R',PROCESS_ID='REJECT',IS_SEND_APPR = 'N'
WHERE REQ_ID=@p_TRN_ID
SET @p_MESSAGE =N'Thông tin phiếu yêu cầu công tác đã được trả về thành công'
IF(@PROCESS_ID='SEND' AND @SIGN_USER IS NOT NULL)
BEGIN
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='SIGN' AND REQ_ID=@p_TRN_ID
END
ELSE
BEGIN
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='APPNEW' AND REQ_ID=@p_TRN_ID
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='R',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='SIGN' AND REQ_ID=@p_TRN_ID
END
END
ELSE IF(@PROCESS_ID='HO_APP')
BEGIN
UPDATE dbo.TR_REQUEST_JOB_FORM
SET AUTH_STATUS ='R',PROCESS_ID='APPNEW'
WHERE REQ_ID=@p_TRN_ID
SET @p_MESSAGE =N'Thông tin phiếu yêu cầu công tác đã được trả về thành công'
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='HO_APP' AND REQ_ID=@p_TRN_ID
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='U',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='MAKER_CONF' AND REQ_ID=@p_TRN_ID
END
ELSE IF(@PROCESS_ID = 'MAKER_APP')
BEGIN
UPDATE TR_REQUEST_JOB_FORM
SET AUTH_STATUS ='R',PROCESS_ID='HCHO_XL'
WHERE REQ_ID=@p_TRN_ID
SET @p_MESSAGE =N'Thông tin chi phí phiếu yêu cầu công tác đã được trả về thành công'
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='MAKER_APP' AND REQ_ID=@p_TRN_ID
UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='U',NOTES=N'Phiếu bị trả về' WHERE PROCESS_ID='TDV_APP' AND REQ_ID=@p_TRN_ID
END
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
@p_REASON,
N'Từ chối phiếu'
)
END
--Phucvh từ chối phiếu yêu cầu sửa chữa
ELSE IF(@p_TRN_TYPE ='ASS_REPAIR_ASS')
BEGIN
IF(EXISTS(SELECT trsd.REQ_ID FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.AUTH_STATUS = 'A' AND trsd.REQ_ID = @p_TRN_ID))
BEGIN
SET @p_MESSAGE =N'Trả về thất bại! Thông tin phiếu yêu cầu sửa chữa đã được duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
UPDATE TR_REQUEST_SHOP_DOC
SET AUTH_STATUS ='R', STATUS = 'REJECT', CHECKER_ID = NULL, APPROVE_DT = NULL, HO_NOTES = NULL, SEND_APP_DT = NULL
WHERE REQ_ID=@p_TRN_ID
SET @p_MESSAGE =N'Trả về thành công'
--PHUCVH 16/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 A.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT A WHERE A.REQ_DOC_ID = @p_TRN_ID)
UPDATE TR_REQUEST_SHOP_COSTCENTER SET NOTES = NULL, RE_CONTENT = NULL, QUANTITY = 0, ASS_STATUS = NULL, CHECKER_ID = NULL, APPROVE_DT = NULL, AUTH_STATUS = 'E', MAKER_ID = NULL, CREATE_DT = NULL WHERE REQ_ID = @p_TRN_ID
DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
N'Trả về người tạo',
@p_REASON
)
END
--Phucvh từ chối phiếu yêu cầu điều chuyển
ELSE IF(@p_TRN_TYPE ='ASS_TRANSFER')
BEGIN
IF(EXISTS(SELECT trsd.REQ_ID FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.AUTH_STATUS = 'A' AND trsd.REQ_ID = @p_TRN_ID))
BEGIN
SET @p_MESSAGE =N'Trả về thất bại! Thông tin phiếu yêu cầu điều chuyển đã được duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
UPDATE TR_REQUEST_SHOP_DOC
SET AUTH_STATUS ='R', STATUS = 'REJECT', CHECKER_ID = NULL, APPROVE_DT = NULL, HO_NOTES = NULL, SEND_APP_DT = NULL
WHERE REQ_ID=@p_TRN_ID
SET @p_MESSAGE =N'Trả về thành công'
--PHUCVH 16/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 A.ASS_ID FROM TR_REQUEST_SHOP_DOC_DT A WHERE A.REQ_DOC_ID = @p_TRN_ID)
UPDATE TR_REQUEST_SHOP_COSTCENTER SET NOTES = NULL, RE_CONTENT = NULL, QUANTITY = 0, ASS_STATUS = NULL, CHECKER_ID = NULL, APPROVE_DT = NULL, AUTH_STATUS = 'E', MAKER_ID = NULL, CREATE_DT = NULL WHERE REQ_ID = @p_TRN_ID
DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
N'Trả về người tạo',
@p_REASON
)
END
--khiemchg từ chối phiếu yêu cầu cấp phát tài sản
ELSE IF(@p_TRN_TYPE ='PYC_CPTS')
BEGIN
IF(EXISTS(SELECT trsd.REQ_ID FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.AUTH_STATUS = 'A' AND trsd.REQ_ID = @TRADED_ID))
BEGIN
SET @p_MESSAGE =N'Trả về thất bại! Thông tin phiếu yêu cầu cấp phát tài sản đã được duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
UPDATE TR_REQUEST_SHOP_DOC
SET AUTH_STATUS ='R', STATUS = 'REJECT', SEND_APP_DT = NULL
WHERE REQ_ID=@p_TRN_ID
SET @p_MESSAGE =N'Trả về thành công'
DELETE PL_REQUEST_PROCESS where REQ_ID =@p_TRN_ID
UPDATE TR_REQUEST_SHOP_COSTCENTER SET NOTES = NULL, AUTH_STATUS = 'E', CHECKER_ID = NULL WHERE REQ_ID = @p_TRN_ID
UPDATE TR_REQUEST_SHOP_DOC SET HO_NOTES = NULL, SEND_APP_DT = NULL WHERE REQ_ID = @p_TRN_ID
IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS prp where prp.REQ_ID = @p_TRN_ID AND prp.PROCESS_ID = 'REJECT'))
BEGIN
UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'REJECT'
END
ELSE
BEGIN
-- DECLARE @temp TABLE(ID INT IDENTITY,REQDT_ID VARCHAR(15),ASS_GROUP VARCHAR(15),QTY DECIMAL)
-- INSERT INTO @temp SELECT REQDT_ID, ASS_GROUP_ID , SUM(ISNULL(QTY_ETM,0)) FROM TR_REQUEST_SHOP_DOC_DT
-- WHERE REQ_DOC_ID = @p_TRN_ID AND (TYPE_XL = 'CPDC' OR TYPE_XL = 'CPTK') GROUP BY REQDT_ID, ASS_GROUP_ID
-- DECLARE @INTT INT = 1, @COUNTT INT = (SELECT COUNT(*) FROM @TEMP)
-- WHILE @INTT <= @COUNTT
-- BEGIN
-- DECLARE @REQDT VARCHAR(20) = (SELECT REQDT_ID FROM @TEMP WHERE ID = @INTT)
-- DECLARE @SL DECIMAL = (SELECT QTY FROM @TEMP WHERE ID = @INTT)
-- DECLARE @AG VARCHAR(20) = (SELECT ASS_GROUP FROM @TEMP WHERE ID = @INTT)
-- IF(EXISTS(SELECT * FROM TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = @p_TRN_ID AND ASS_GROUP_ID = @AG AND REQ_DT_TYPE = 'BUYNEW'))
-- BEGIN
-- UPDATE TR_REQUEST_SHOP_DOC_DT SET QTY_ETM = QTY_ETM + @SL WHERE REQ_DOC_ID = @p_TRN_ID AND ASS_GROUP_ID = @AG AND REQ_DT_TYPE = 'BUYNEW'
-- END
-- ELSE
-- 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
-- INSERT INTO TR_REQUEST_SHOP_DOC_DT(REQDT_ID, REQ_DOC_ID,
-- ASS_GROUP_ID, DESCRIPTION, REASON, UNIT_ID, NOTES,
-- RECEIVE_ADDR, RECEIVE_PERSON, RECEIVE_TEL, RECORD_STATUS, MAKER_ID, CREATE_DT,
-- AUTH_STATUS, RECEIVE_EMAIL, REQ_DT_TYPE, QTY_ETM, EMP_ID, TYPE_XL)
-- SELECT @l_REQDT_ID, @p_TRN_ID,
-- ASS_GROUP_ID, DESCRIPTION, REASON, UNIT_ID, NOTES,
-- RECEIVE_ADDR, RECEIVE_PERSON, RECEIVE_TEL, RECORD_STATUS, MAKER_ID, CREATE_DT,
-- AUTH_STATUS, RECEIVE_EMAIL, 'BUYNEW', QTY_ETM, EMP_ID, 'BUYNEW'
-- FROM TR_REQUEST_SHOP_DOC_DT WHERE REQDT_ID = @REQDT AND REQ_DOC_ID = @p_TRN_ID
-- END
-- DELETE TR_REQUEST_SHOP_DOC_DT WHERE REQDT_ID = @REQDT AND REQ_DOC_ID = @p_TRN_ID
--
-- SET @INTT = @INTT + 1
-- END
DELETE TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = @p_TRN_ID AND REQ_DT_TYPE = 'XKSD'
DELETE TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = @p_TRN_ID AND REQ_DT_TYPE = 'BUYNEW'
INSERT INTO PL_REQUEST_PROCESS (REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES, IS_HAS_CHILD, DEP_ID, DVKD_USER_APP, RECEPTION_DT)
VALUES (@p_TRN_ID, 'REJECT', 'C', 'GDDV', 'DV0001',@p_REJECTED_BY , GETDATE(), '', 'N', '', '', N'Từ chối phiếu', 0, '', '', GETDATE());
END
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
N'Từ chối phiếu', @p_REASON
)
END
--Phucvh từ chối phiếu yêu cầu thu hồi tài sản
ELSE IF(@p_TRN_TYPE ='ASS_COLLECT')
BEGIN
IF(EXISTS(SELECT trsd.REQ_ID FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.AUTH_STATUS = 'A' AND trsd.REQ_ID = @p_TRN_ID))
BEGIN
SET @p_MESSAGE =N'Trả về thất bại! Thông tin phiếu yêu cầu thu hồi đã được duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
--PHUCVH 16/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 A.ASSET_ID FROM TR_REQUEST_DOC_ASSET_DT A WHERE A.REQ_DOC_ID = @p_TRN_ID)
UPDATE TR_REQUEST_SHOP_DOC
SET AUTH_STATUS ='R', STATUS = 'REJECT', CHECKER_ID = NULL, APPROVE_DT = NULL, HO_NOTES = NULL, SEND_APP_DT = NULL
WHERE REQ_ID=@p_TRN_ID
SET @p_MESSAGE =N'Trả về thành công'
UPDATE TR_REQUEST_SHOP_COSTCENTER SET NOTES = NULL, RE_CONTENT = NULL, QUANTITY = 0, ASS_STATUS = NULL, CHECKER_ID = NULL, APPROVE_DT = NULL, AUTH_STATUS = 'E', MAKER_ID = NULL, CREATE_DT = NULL WHERE REQ_ID = @p_TRN_ID
DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
N'Trả về người tạo',
@p_REASON
)
END
--PHUCVH 16/01/22 ĐIỀU CHUYỂN TÀI SẢN NỘI BỘ
ELSE IF(@p_TRN_TYPE = 'ASS_PRIVATE_TRANSFER_MUL')
BEGIN
IF(EXISTS(SELECT 1 FROM ASS_PRIVATE_TRANSFER_MASTER aptm WHERE aptm.TRANS_MULTI_MASTER_ID = @p_TRN_ID AND aptm.AUTH_STATUS = 'A'))
BEGIN
SET @p_MESSAGE =N'Trả về thất bại! Thông tin phiếu điều chuyển đã được duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
UPDATE ASS_PRIVATE_TRANSFER_MASTER SET AUTH_STATUS = 'R' WHERE TRANS_MULTI_MASTER_ID = @p_TRN_ID
UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL
WHERE ASSET_ID IN (SELECT aptd.ASSET_ID FROM ASS_PRIVATE_TRANSFER_DT aptd WHERE aptd.TRANS_MULTI_MASTER_ID = @p_TRN_ID)
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
N'Trả về người tạo',
@p_REASON
)
SET @p_MESSAGE =N'Trả về thành công'
END
ELSE IF(@p_TRN_TYPE = 'ASS_UPDATE') -- Trả về gdv tạo phiếu cập nhật tài sản
BEGIN
IF(EXISTS(SELECT 1 FROM ASS_UPDATE AU WHERE AU.UPDATE_ID = @p_TRN_ID AND AU.AUTH_STATUS = 'A'))
BEGIN
SET @p_MESSAGE =N'Trả về thất bại! Thông tin phiếu đã được duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
IF(EXISTS(SELECT 1 FROM ASS_UPDATE AU WHERE AU.UPDATE_ID = @p_TRN_ID AND AU.AUTH_STATUS = 'R'))
BEGIN
SET @p_MESSAGE =N'Trả về thất bại! Thông tin phiếu đang bị từ chối'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
UPDATE ASS_UPDATE SET AUTH_STATUS = 'R' WHERE UPDATE_ID = @p_TRN_ID
UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL WHERE ASSET_ID = (SELECT AU.ASSET_ID FROM ASS_UPDATE AU WHERE AU.UPDATE_ID = @p_TRN_ID)
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
N'Trả về người tạo',
@p_REASON
)
SET @p_MESSAGE =N'Trả về thành công'
END
ELSE IF(@p_TRN_TYPE = 'ASS_COL_COST') -- Trả về gdv tạo phiếu phân bổ chi phí tài sản
BEGIN
IF(EXISTS(SELECT 1 FROM ASS_COST_ALLOCATION AU WHERE AU.COS_ID = @p_TRN_ID AND AU.AUTH_STATUS = 'A'))
BEGIN
SET @p_MESSAGE =N'Trả về thất bại! Thông tin phiếu đã được duyệt'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
IF(EXISTS(SELECT 1 FROM ASS_COST_ALLOCATION AU WHERE AU.COS_ID = @p_TRN_ID AND AU.AUTH_STATUS = 'R'))
BEGIN
SET @p_MESSAGE =N'Trả về thất bại! Thông tin phiếu đang bị từ chối'
ROLLBACK TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
END
UPDATE ASS_COST_ALLOCATION SET AUTH_STATUS = 'R' WHERE COS_ID = @p_TRN_ID
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_TRN_ID,
'REJECT',
@p_REJECTED_BY,
GETDATE(),
N'Trả về người tạo',
@p_REASON
)
SET @p_MESSAGE =N'Trả về thành công'
END
--- INSERT VAO BANG CM_REJECT_LOG
EXEC SYS_CodeMasters_Gen 'CM_REJECT_LOG', @p_LOG_ID out
IF @p_LOG_ID='' OR @p_LOG_ID IS NULL GOTO ABORT
INSERT INTO [dbo].[CM_REJECT_LOG] VALUES (@p_LOG_ID,@p_STAGE,@p_TRN_ID,@p_TRN_TYPE,CONVERT(DATETIME,GETDATE(),103),'R',@p_REASON,'Y',@p_REJECTED_BY,CONVERT(DATETIME,GETDATE(),103))
IF @@Error <> 0 GOTO ABORT
COMMIT TRANSACTION
SELECT '0' as Result, @p_LOG_ID LOG_ID ,@p_MESSAGE ErrorDesc
RETURN '0'
ABORT:
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' LOG_ID, '' ErrorDesc
RETURN '-1'
END
--06032023_secretkey
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(150) 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].[TR_ROLE_NOTIFI_ID]'
GO
ALTER PROCEDURE [dbo].[TR_ROLE_NOTIFI_ID]
@PO_ID varchar(500),
@TYPE VARCHAR(100),
@p_TLNAME VARCHAR(100)
AS
DECLARE
@BRANCH_CREATE VARCHAR(15),
@DEP_CREATE VARCHAR(15),
@BRANCH_TYPE VARCHAR(15),
@FATHER_ID VARCHAR(15),
@FLAG VARCHAR(2), -- FLAG = 1: THANH TOÁN / TẠM ỨNG
@AUTH_STATUS VARCHAR(10),
@PROCESS VARCHAR(10),
@MAKER_ID VARCHAR(100),
@DEP_CODE VARCHAR(15),
@NV_XL_MS VARCHAR(15),
@BRANCH_QLTS VARCHAR(15) = 'DV0001',
@DEP_KT VARCHAR(15) = 'DEP000000000068',--(SELECT TOP 1 sp.ParaValue FROM SYS_PARAMETERS sp WHERE sp.ParaKey = 'DEP_QLTS')
@TLFullName_USER_CREATE NVARCHAR(500) = NULL,
@Email_USER_CREATE VARCHAR(500) = NULL,
@USER_CREATE_ID INT ,
@BRANCH_LOGIN VARCHAR(15) = (SELECT TOP 1 TLSUBBRID FROM TL_USER WHERE TLNANME = @p_TLNAME),
@DEP_LOGIN VARCHAR(15) = (SELECT TOP 1 DEP_ID FROM TL_USER WHERE TLNANME = @p_TLNAME)
DECLARE @ROLE_CURRENT VARCHAR(15), @USER_RECIVE_MAIL VARCHAR(15), @REQ_TYPE VARCHAR(15)
DECLARE @SYS_PREFIX VARCHAR(15),@PAGE NVARCHAR(200)
DECLARE @l_LST_REQ_ID TABLE (
[ID] [int] IDENTITY(1,1) NOT NULL,
[REQ_PAY_ID] [VARCHAR](50) NULL)
INSERT INTO @l_LST_REQ_ID SELECT VALUE FROM WSISPLIT(@PO_ID,',')
DECLARE @LST_POID TABLE(ID VARCHAR(15))
DECLARE @LST_USER_RECIVE TABLE (TLNAME VARCHAR(100))
DECLARE @LST_USER_RECIVE_PYC TABLE (TLFullName NVARCHAR(500), Email VARCHAR(500), USER_ID INT)
--- DECLARE TABLE NHAN DU LIEU LA USER NAME DANG O BUOC PHE DUYET HIEN TAI
DECLARE @PL_PROCESS_CURRENT_SEARCH_TEMP TABLE
(
REQ_ID varchar(15),
PROCESS_ID varchar(10),
DVDM_NAME nvarchar(500),
TLNAME nvarchar(255),
TLFullName nvarchar(255),
NOTES nvarchar(500)
)
-----BAODNQ 5/1/2021 : Thêm gửi mail cho GDDV, TP, PP----------
DECLARE @p_MAKER_ID VARCHAR(100), @p_ROLE_ID VARCHAR(15), @p_ROLE_NAME VARCHAR(15)
DECLARE @LST_ROLE TABLE(ROLE_ID VARCHAR(15), ROLE_NAME VARCHAR(15))
--------------------------
IF @TYPE = 'PO'
BEGIN
INSERT INTO @LST_POID VALUES(@PO_ID)
SET @FLAG = 0
END ELSE
IF @TYPE = 'USE'
BEGIN
INSERT INTO @LST_POID SELECT B.PO_ID
FROM ASS_MASTER_PO B WHERE B.ASSET_ID = (SELECT A.ASSET_ID FROM ASS_USE A WHERE A.USE_ID = @PO_ID)
SET @FLAG = 0
END ELSE
IF @TYPE = 'USE_MUILT'
BEGIN
SELECT @BRANCH_CREATE = BRANCH_ID FROM ASS_USE_MULTI_MASTER where USER_MASTER_ID = @PO_ID
INSERT INTO @LST_USER_RECIVE SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES](TLNANME) WHERE ROLE_ID IN ('GDDV'))
SET @FLAG = 9
END ELSE
IF @TYPE = 'USE_ADDNEW'
BEGIN
INSERT INTO @LST_POID SELECT B.PO_ID
FROM ASS_ADDNEW_PO B WHERE B.ADDNEW_ID = @PO_ID
SET @FLAG = 0
END
-- Tạm ứng
ELSE IF (@TYPE = 'TR_REQ_ADVANCE_PAYMENT_SEND_APR')
BEGIN
SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@PO_ID AND (TRASFER_USER_RECIVE IS NOT NULL AND TRASFER_USER_RECIVE <>'')))
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT TRASFER_USER_RECIVE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
END
ELSE
BEGIN
SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
SET @DEP_CREATE = (SELECT DEP_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @FATHER_ID = (SELECT FATHER_ID FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
IF(@BRANCH_TYPE = 'PGD' )
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND (RoleName IN ('TPGD','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('TPGD','PP')))
END
ELSE IF(@BRANCH_TYPE = 'CN' )
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND (RoleName IN ('GDDV','PGD') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PGD')))
END
ELSE IF(@BRANCH_TYPE = 'HS' )
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND SECUR_CODE = @DEP_CREATE
AND (RoleName IN ('GDDV','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PP')))
END
END
SET @FLAG = 1
END
ELSE IF (@TYPE = 'TR_REQ_ADVANCE_PAYMENT_CONFIRM')
BEGIN
SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
SET @DEP_CREATE = (SELECT DEP_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @FATHER_ID = (SELECT FATHER_ID FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @REQ_TYPE =(SELECT TOP 1 REQ_TYPE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@PO_ID)
SET @DEP_CODE =(SELECT TOP 1 DEP_CODE FROM CM_DEPARTMENT WHERE DEP_ID =@DEP_CREATE)
IF(@BRANCH_TYPE = 'PGD' )
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @FATHER_ID
AND (RoleName IN ('TPGD','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('TPGD','PP')))
END
ELSE IF(@BRANCH_TYPE = 'CN' )
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND (RoleName IN ('GDDV','PGD') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PGD')))
END
ELSE IF(@BRANCH_TYPE = 'HS' )
BEGIN
IF(EXISTS(SELECT PROCESS FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@PO_ID AND (PROCESS ='' OR PROCESS IS NULL)))
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND SECUR_CODE = @DEP_CREATE
AND (RoleName IN ('GDDV','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PP')))
END
ELSE
BEGIN
IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='GDK' AND @REQ_TYPE ='I'))
BEGIN
IF(@DEP_CREATE ='DEP000000000014' OR (@DEP_CODE LIKE'%06906%' AND @DEP_CODE <> '0690605'))
BEGIN
SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='tunt')
INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL)
END
ELSE IF((@DEP_CODE LIKE'%06909%'))
BEGIN
SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='haipv')
INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL)
END
ELSE IF((@DEP_CODE LIKE'%06921%'))
BEGIN
SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='cuongpv2')
INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL)
END
ELSE IF((@DEP_CODE LIKE'%06907%'))
BEGIN
SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='linhvtk')
INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL)
END
ELSE IF((@DEP_CODE LIKE'%06908%'))
BEGIN
SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='nhalc')
INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL)
END
END
-- NEU CAP TIEP THEO LA PTGD
ELSE IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='PTGD' AND @REQ_TYPE ='I'))
BEGIN
IF(@DEP_CREATE ='DEP000000000014' OR (@DEP_CODE LIKE'%06906%' AND @DEP_CODE <> '0690605'))
BEGIN
SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='PTGD' AND TLNANME ='hantt')
INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL)
END
ELSE IF(@DEP_CODE ='0690405')
BEGIN
SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='PTGD' AND TLNANME ='tupa')
INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL)
END
END
END
END
SET @FLAG = 1
END
ELSE IF (@TYPE = 'TR_REQ_ADVANCE_PAYMENT_APR')
BEGIN
SET @REQ_TYPE =(SELECT TOP 1 REQ_TYPE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@PO_ID)
--SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
SET @BRANCH_CREATE = (SELECT TOP 1 BRANCH_CREATE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
SET @DEP_CREATE = (SELECT TOP 1 DEP_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
SET @DEP_CODE =(SELECT TOP 1 DEP_CODE FROM CM_DEPARTMENT WHERE DEP_ID =@DEP_CREATE)
IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='TKTGD' AND @REQ_TYPE ='I'))
BEGIN
INSERT INTO @LST_USER_RECIVE SELECT TLNANME FROM TL_USER WHERE RoleName ='TKTGD'
END
IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='TKHDQT' AND @REQ_TYPE ='I'))
BEGIN
INSERT INTO @LST_USER_RECIVE SELECT TLNANME FROM TL_USER WHERE RoleName ='TKHDQT'
END
IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='TGD' AND @REQ_TYPE ='I'))
BEGIN
--SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='TGD')
--INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL)
INSERT INTO @LST_USER_RECIVE SELECT TLNANME FROM TL_USER WHERE RoleName ='TGD'
END
IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='HDQT' AND @REQ_TYPE ='I'))
BEGIN
--SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='TGD')
--INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL)
INSERT INTO @LST_USER_RECIVE SELECT TLNANME FROM TL_USER WHERE RoleName ='HDQT'
END
IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='GDK' AND @REQ_TYPE ='I'))
BEGIN
IF(@DEP_CREATE ='DEP000000000014' OR (@DEP_CODE LIKE'%06906%' AND @DEP_CODE <> '0690605'))
BEGIN
SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='tunt')
INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL)
END
ELSE IF((@DEP_CODE LIKE'%06909%'))
BEGIN
SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='haipv')
INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL)
END
ELSE IF((@DEP_CODE LIKE'%06921%'))
BEGIN
SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='cuongpv2')
INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL)
END
ELSE IF((@DEP_CODE LIKE'%06907%'))
BEGIN
SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='linhvtk')
INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL)
END
ELSE IF(@DEP_CODE LIKE'%06908%')
BEGIN
SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='GDK' AND TLNANME ='nhalc')
INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL)
END
END
IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID=@PO_ID AND STATUS ='C' AND ROLE_USER ='PTGD' AND @REQ_TYPE ='I'))
BEGIN
IF(@DEP_CREATE ='DEP000000000014' OR (@DEP_CODE LIKE'%06906%' AND @DEP_CODE <> '0690605'))
BEGIN
SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='PTGD' AND TLNANME ='hantt')
INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL)
END
ELSE IF( @DEP_CODE ='0690405')
BEGIN
SET @USER_RECIVE_MAIL =(SELECT TOP 1 TLNANME FROM TL_USER WHERE RoleName ='PTGD' AND TLNANME ='tupa')
INSERT INTO @LST_USER_RECIVE (TLNAME) VALUES (@USER_RECIVE_MAIL)
END
END
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@PO_ID AND AUTH_STATUS ='A'))
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TOP 1 MAKER_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID
--INSERT INTO @LST_USER_RECIVE (TLNAME)
--SELECT TOP 1 MAKER_ID_KT FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID
END
SET @FLAG = 1
END
-- Điều phối tạm ứng/ thanh toán PL_REQUEST_PROCESS_CHILD
ELSE IF (@TYPE = 'TR_REQ_PAYMENT_TRANSFER')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNAME FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID IN (SELECT REQ_PAY_ID FROM @l_LST_REQ_ID) AND TYPE_JOB = 'XL' AND STATUS_JOB ='C'
SET @FLAG = 1
END
--
ELSE IF (@TYPE = 'TR_REQ_ADVANCE_PAYMENT_KT_SEND_APR')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TOP 1 TLNAME FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @PO_ID AND TYPE_JOB = 'KS'
SET @FLAG = 1
END
ELSE IF (@TYPE = 'TR_REQ_ADVANCE_PAYMENT_KT_APPR')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TOP 1 MAKER_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TOP 1 MAKER_ID_KT FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID
SET @FLAG = 1
END
-- Thanh toán
ELSE IF (@TYPE = 'TR_REQ_PAYMENT_SEND_APR')
BEGIN
SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
IF(EXISTS(SELECT * FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@PO_ID AND (TRASFER_USER_RECIVE IS NOT NULL AND TRASFER_USER_RECIVE <>'')))
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT TRASFER_USER_RECIVE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
END
ELSE
BEGIN
SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
SET @DEP_CREATE = (SELECT DEP_ID FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @FATHER_ID = (SELECT FATHER_ID FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
IF(@BRANCH_TYPE = 'PGD' )
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND (RoleName IN ('TPGD','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('TPGD','PP')))
END
ELSE IF(@BRANCH_TYPE = 'CN' )
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND (RoleName IN ('GDDV','PGD') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PGD')))
END
ELSE IF(@BRANCH_TYPE = 'HS' )
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND SECUR_CODE = @DEP_CREATE
AND (RoleName IN ('GDDV','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PP')))
END
END
SET @FLAG = 1
END
ELSE IF(@TYPE = 'TR_REQ_PAYMENT_APR')
BEGIN
SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
IF(@AUTH_STATUS = 'A')
BEGIN
SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
SET @DEP_CREATE = (SELECT DEP_ID FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @FATHER_ID = (SELECT FATHER_ID FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM TL_USER
WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
AND (RoleName = 'KSV' OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW = 'KSV'))
AND TLSUBBRID = 'DV0001' AND SECUR_CODE ='DEP000000000022'
SET @FLAG = 1
END
END
ELSE IF(@TYPE = 'TR_REQ_PAYMENT_CONFIRM')
BEGIN
SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
SET @PROCESS = ( SELECT TOP 1 PROCESS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
IF(@AUTH_STATUS = 'U' AND @PROCESS = '0')
BEGIN
SET @AUTH_STATUS =( SELECT TOP 1 AUTH_STATUS FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
SET @DEP_CREATE = (SELECT DEP_ID FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @FATHER_ID = (SELECT FATHER_ID FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
IF(@BRANCH_TYPE = 'PGD' )
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @FATHER_ID
AND (RoleName IN ('TPGD','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('TPGD','PP')))
END
ELSE IF(@BRANCH_TYPE = 'CN' )
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND (RoleName IN ('GDDV','PGD') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PGD')))
END
ELSE IF(@BRANCH_TYPE = 'HS' )
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND SECUR_CODE = @DEP_CREATE
AND (RoleName IN ('GDDV','PP') OR RoleName IN (SELECT ROLE_OLD FROM TL_SYS_ROLE_MAPPING WHERE ROLE_NEW IN ('GDDV','PP')))
END
SET @FLAG = 1
END
END
ELSE IF(@TYPE = 'TR_REQ_PAYMENT_KT_SEND_APR')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TOP 1 TLNAME FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID = @PO_ID AND TYPE_JOB = 'KS'
SET @FLAG = 1
END
ELSE IF(@TYPE = 'TR_REQ_PAYMENT_KT_APR')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TOP 1 MAKER_ID FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TOP 1 MAKER_ID_KT FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID
SET @FLAG = 1
END
-- Tờ trình chủ trương
ELSE IF(@TYPE = 'PL_SEND_APP' OR @TYPE ='PL_REQUEST_DOC_App' OR @TYPE ='REQ_PROCESS_CHILD_Upd' OR @TYPE='REQ_PROCESS_CHILD_App')
BEGIN
SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID)
INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP
EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @PO_ID,@MAKER_ID,'TTCT-DVKD'
SET @FLAG = 2
END
ELSE IF(@TYPE='PL_REQ_PROCESS_CHILD_Ins')
BEGIN
DECLARE @PLREQ_ID VARCHAR(15)
WHILE((SELECT COUNT(*) FROM @l_LST_REQ_ID) >0)
BEGIN
SET @PLREQ_ID =(SELECT TOP 1 REQ_PAY_ID FROM @l_LST_REQ_ID)
SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID)
INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP
EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @PLREQ_ID,@MAKER_ID,'TTCT-DVKD'
DELETE FROM @l_LST_REQ_ID WHERE REQ_PAY_ID =@PLREQ_ID
END
SET @FLAG = 2
END
ELSE IF(@TYPE='REQUEST_DOC_PROCESS_Approve')
BEGIN
IF(NOT EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID AND PROCESS_ID ='APPROVE'))
BEGIN
IF(NOT EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID AND PROCESS_ID ='TGD'))
BEGIN
SET @FLAG = 2
--SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID)
INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP
EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @PO_ID,@MAKER_ID,'TTCT-DVKD'
END
ELSE IF (EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID AND PROCESS_ID ='TGD'))
BEGIN
SET @FLAG = 2
--SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID)
INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP
EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @PO_ID,@MAKER_ID,'TTCT-DVKD'
INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP (REQ_ID,TLNAME) SELECT @PO_ID, TLNANME FROM TL_USER WHERE RoleName ='TKTGD'
END
ELSE IF (EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID AND PROCESS_ID ='HDQT'))
BEGIN
SET @FLAG = 2
--SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID)
INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP
EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @PO_ID,@MAKER_ID,'TTCT-DVKD'
--INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP (REQ_ID,TLNAME) SELECT @PO_ID, TLNANME FROM TL_USER WHERE RoleName ='TKTGD'
END
END
ELSE
BEGIN
SET @FLAG = 3
SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM PL_REQUEST_DOC WHERE REQ_ID =@PO_ID)
--INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP
--EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @REQ_ID,@MAKER_ID,'TTCT-DVKD'
END
END
-------------------------------------------------------------------------------------------------------
----- PHIẾU YÊU CẦU MUA SẮM --------------
ELSE IF(@TYPE = 'TR_REQUEST_DOC_SendApp' OR @TYPE ='TR_REQUEST_DOC_App' OR @TYPE ='TR_REQ_PROCESS_CHILD_App' OR @TYPE ='TR_REQ_PROCESS_CHILD_Upd' OR @TYPE='REQ_PROCESS_CHILD_App')
BEGIN
SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@PO_ID)
INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP
EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @PO_ID,@MAKER_ID,'PYCMS-DVKD'
SET @FLAG = 2
END
ELSE IF(@TYPE='TR_REQ_PROCESS_CHILD_Ins')
BEGIN
DECLARE @REQ_DOC_ID VARCHAR(15)
WHILE((SELECT COUNT(*) FROM @l_LST_REQ_ID) >0)
BEGIN
SET @REQ_DOC_ID =(SELECT TOP 1 REQ_PAY_ID FROM @l_LST_REQ_ID)
SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@PO_ID)
INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP
EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @REQ_DOC_ID,@MAKER_ID,'PYCMS-DVKD'
DELETE FROM @l_LST_REQ_ID WHERE REQ_PAY_ID =@REQ_DOC_ID
END
SET @FLAG = 2
END
ELSE IF(@TYPE='TR_REQUEST_DOC_PROCESS_Approve')
BEGIN
IF(NOT EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID =@PO_ID AND PROCESS_ID ='APPROVE'))
BEGIN
--SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@PO_ID)
INSERT INTO @PL_PROCESS_CURRENT_SEARCH_TEMP
EXEC [dbo].[PL_PROCESS_CURRENT_SEARCH] @PO_ID,@MAKER_ID,'PYCMS-DVKD'
SET @FLAG = 3
END
ELSE
BEGIN
SET @MAKER_ID = (SELECT TOP 1 MAKER_ID FROM TR_REQUEST_DOC WHERE REQ_ID =@PO_ID)
SET @NV_XL_MS =(SELECT TOP 1 USER_DVMS FROM TR_REQUEST_DOC WHERE REQ_ID =@PO_ID)
SET @FLAG = 4
END
END
------BAODNQ 4/1/2022: --------------
-----Khai báo DTSD nội bộ - gửi YC phê duyệt-------
ELSE IF @TYPE='BUD_CONTRACT_MASTER_SEND_APPROVE'
BEGIN
-----Có cấp phê duyệt trung gian-------
IF (EXISTS (SELECT*FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID = @PO_ID AND SIGN_USER IS NOT NULL))
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT A.SIGN_USER FROM BUD_CONTRACT_MASTER A WHERE A.CONTRACT_ID = @PO_ID)
END
ELSE
-----Ko có cấp phê duyệt trung gian-------
BEGIN
SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID = @PO_ID)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @p_MAKER_ID = (SELECT MAKER_ID FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID = @PO_ID)
SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
IF(@BRANCH_TYPE = 'PGD')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('TPGD', 'PPGD'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
END
ELSE IF(@BRANCH_TYPE = 'CN')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('GDDV', 'PDG'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
END
ELSE IF(@BRANCH_TYPE = 'HS')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND DEP_ID = @DEP_CREATE
--AND RoleName IN ('GDDV', 'PP'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND DEP_ID = @DEP_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
END
END
SET @FLAG = 5
END
-----Khai báo DTSD nội bộ - trung gian duyệt thành công-------
ELSE IF @TYPE='BUD_CONTRACT_MASTER_CONFIRM'
BEGIN
SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID = @PO_ID)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @p_MAKER_ID = (SELECT MAKER_ID FROM BUD_CONTRACT_MASTER WHERE CONTRACT_ID = @PO_ID)
SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
IF(@BRANCH_TYPE = 'PGD')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('TPGD', 'PPGD'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
END
ELSE IF(@BRANCH_TYPE = 'CN')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('GDDV', 'PDG'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
END
ELSE IF(@BRANCH_TYPE = 'HS')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND DEP_ID = @DEP_CREATE
--AND RoleName IN ('GDDV', 'PP'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND DEP_ID = @DEP_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
END
SET @FLAG = 5
END
-----Khai báo DTSD nội bộ - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-------
ELSE IF @TYPE='BUD_CONTRACT_MASTER_APPROVED'
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT A.MAKER_ID FROM BUD_CONTRACT_MASTER A WHERE A.CONTRACT_ID = @PO_ID)
SET @FLAG = 5
END
---Quản lý hợp đồng khách thuê - gửi YC phê duyệt-----
ELSE IF @TYPE='BUD_CONTRACT_CUST_MASTER_SEND_APPROVE'
BEGIN
-----Có cấp phê duyệt trung gian-------
IF (EXISTS (SELECT*FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @PO_ID AND SIGN_USER IS NOT NULL))
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT A.SIGN_USER FROM BUD_CONTRACT_CUST_MASTER A WHERE A.CONTRACT_ID = @PO_ID)
END
ELSE
-----Ko có cấp phê duyệt trung gian-------
BEGIN
SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @PO_ID)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @p_MAKER_ID = (SELECT MAKER_ID FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @PO_ID)
SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
IF(@BRANCH_TYPE = 'PGD')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('TPGD', 'PP')
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
END
ELSE IF(@BRANCH_TYPE = 'CN')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('GDDV', 'PDG')
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
END
ELSE IF(@BRANCH_TYPE = 'HS')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND DEP_ID = @DEP_CREATE
--AND RoleName IN ('GDDV', 'PP')
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND DEP_ID = @DEP_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
END
END
SET @FLAG = 5
END
---Quản lý hợp đồng khách thuê - trung gian duyệt thành công-----
ELSE IF @TYPE='BUD_CONTRACT_CUST_MASTER_CONFIRM'
BEGIN
SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @PO_ID)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @p_MAKER_ID = (SELECT MAKER_ID FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @PO_ID)
SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
IF(@BRANCH_TYPE = 'PGD')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('TPGD', 'PP'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
END
ELSE IF(@BRANCH_TYPE = 'CN')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('GDDV', 'PDG'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
END
ELSE IF(@BRANCH_TYPE = 'HS')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND DEP_ID = @DEP_CREATE
--AND RoleName IN ('GDDV', 'PP'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND DEP_ID = @DEP_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
END
SET @FLAG = 5
END
---Quản lý hợp đồng khách thuê - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-----
ELSE IF @TYPE='BUD_CONTRACT_CUST_MASTER_APPROVED'
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT A.MAKER_ID FROM BUD_CONTRACT_CUST_MASTER A WHERE A.CONTRACT_ID = @PO_ID)
SET @FLAG = 5
END
------datmq 7/1/2022: --------------
-----Quản lý trụ sở - gửi YC phê duyệt-------
ELSE IF @TYPE='BUD_MASTER_SEND_APPROVE'
BEGIN
-----Có cấp phê duyệt trung gian-------
IF (EXISTS (SELECT*FROM BUD_MASTER WHERE BUILDING_ID = @PO_ID AND SIGN_USER IS NOT NULL))
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT A.SIGN_USER FROM BUD_MASTER A WHERE A.BUILDING_ID = @PO_ID)
END
ELSE
-----Ko có cấp phê duyệt trung gian-------
BEGIN
SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM BUD_MASTER WHERE BUILDING_ID = @PO_ID)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @p_MAKER_ID = (SELECT MAKER_ID FROM BUD_MASTER WHERE BUILDING_ID = @PO_ID)
SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
IF(@BRANCH_TYPE = 'PGD')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('TPGD', 'PP')
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
END
ELSE IF(@BRANCH_TYPE = 'CN')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('GDDV', 'PDG')
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
END
ELSE IF(@BRANCH_TYPE = 'HS')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND DEP_ID = @DEP_CREATE
--AND RoleName IN ('GDDV', 'PP')
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND DEP_ID = @DEP_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
END
END
SET @FLAG = 6
END
-----Quản lý trụ sở - trung gian duyệt thành công-------
ELSE IF @TYPE='BUD_MASTER_CONFIRM'
BEGIN
SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM BUD_MASTER WHERE BUILDING_ID = @PO_ID)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @p_MAKER_ID = (SELECT MAKER_ID FROM BUD_MASTER WHERE BUILDING_ID = @PO_ID)
SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
IF(@BRANCH_TYPE = 'PGD')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('TPGD', 'PPGD'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
END
ELSE IF(@BRANCH_TYPE = 'CN')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('GDDV', 'PDG'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
END
ELSE IF(@BRANCH_TYPE = 'HS')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND DEP_ID = @DEP_CREATE
--AND RoleName IN ('GDDV', 'PP'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND DEP_ID = @DEP_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
END
SET @FLAG = 6
END
---Quản lý trụ sở - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-----
ELSE IF @TYPE='BUD_MASTER_APPROVED'
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT A.MAKER_ID FROM BUD_MASTER A WHERE A.BUILDING_ID = @PO_ID)
SET @FLAG = 6
END
-----PhongNT 15/9/2022: Quản lý TSCĐ/CCLĐ--------
-- Thêm mới tài sản HCQT
--ELSE IF @TYPE = 'ASS_SEND_TDV'
--BEGIN
-- --cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý
-- SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from(
-- SELECT SUBSTRING(@PO_ID, PATINDEX('%[a-z]%', @PO_ID), LEN(@PO_ID)) Val
-- )x)
-- SELECT @PAGE = sp.ID
-- FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX
-- -- SET @BRANCH_CREATE = (SELECT BRANCH_ID FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @PO_ID)
-- --SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
-- --SET @p_MAKER_ID = (SELECT MAKER_ID FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @PO_ID)
-- --SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
-- IF(@PAGE='ASS_ADDNEW')
-- BEGIN
-- SELECT @BRANCH_CREATE = B.TLSUBBRID, @BRANCH_TYPE = B.BRANCH_TYPE, @DEP_CREATE = B.DEP_ID
-- FROM (SELECT MAKER_ID FROM ASS_ADDNEW WHERE ADDNEW_ID =@PO_ID) A
-- LEFT JOIN TL_USER B ON B.TLNANME = A.MAKER_ID
-- END
-- ELSE IF(@PAGE='ASS_COLLECT_MULTI_MASTER')
-- BEGIN
-- SELECT @BRANCH_CREATE=B.TLSUBBRID, @BRANCH_TYPE =B.BRANCH_TYPE, @DEP_CREATE = B.DEP_ID
-- FROM (SELECT MAKER_ID FROM ASS_COLLECT_MULTI_MASTER WHERE COL_MULTI_MASTER_ID =@PO_ID) A
-- LEFT JOIN TL_USER B ON B.TLNANME = A.MAKER_ID
-- END
-- ELSE IF(@PAGE='ASS_TRANSFER_MULTI_MASTER')
-- BEGIN
-- SELECT @BRANCH_CREATE=B.TLSUBBRID, @BRANCH_TYPE =B.BRANCH_TYPE, @DEP_CREATE = B.DEP_ID
-- FROM (SELECT MAKER_ID FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID =@PO_ID) A
-- LEFT JOIN TL_USER B ON B.TLNANME = A.MAKER_ID
-- END
-- ELSE IF(@PAGE='ASS_USE_MULTI_MASTER')
-- BEGIN
-- SELECT @BRANCH_CREATE=B.TLSUBBRID, @BRANCH_TYPE =B.BRANCH_TYPE, @DEP_CREATE = B.DEP_ID
-- FROM (SELECT MAKER_ID FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID =@PO_ID) A
-- LEFT JOIN TL_USER B ON B.TLNANME = A.MAKER_ID
-- END
-- ELSE IF(@PAGE='ASS_LIQUIDATION')
-- BEGIN
-- SELECT @BRANCH_CREATE=B.TLSUBBRID, @BRANCH_TYPE =B.BRANCH_TYPE, @DEP_CREATE = B.DEP_ID
-- FROM (SELECT MAKER_ID FROM ASS_LIQUIDATION WHERE LIQ_ID =@PO_ID) A
-- LEFT JOIN TL_USER B ON B.TLNANME = A.MAKER_ID
-- END
-- IF (@BRANCH_TYPE = 'HS')
-- BEGIN
-- INSERT INTO @LST_USER_RECIVE (TLNAME)
-- (SELECT TLNANME FROM TL_USER
-- WHERE 1=1
-- AND TLSUBBRID = @BRANCH_CREATE
-- AND SECUR_CODE = @DEP_CREATE
-- AND EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES](TLNANME) WHERE ROLE_ID IN ('GDDV','TP'))
-- UNION ALL
-- SELECT TLNAME AS TLNANME FROM dbo.TL_SYS_ROLE_MAPPING
-- WHERE 1=1
-- AND BRANCH_ID = @BRANCH_CREATE
-- AND DEP_ID = @DEP_CREATE
-- AND ROLE_NEW IN ('GDDV','TP')
-- AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
-- AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE =''))
-- END
-- ELSE
-- BEGIN
-- INSERT INTO @LST_USER_RECIVE (TLNAME)
-- (SELECT TLNANME FROM TL_USER
-- WHERE 1=1
-- AND TLSUBBRID = @BRANCH_CREATE
-- AND EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES](TLNANME) WHERE ROLE_ID IN ('GDDV','TPGD'))
-- UNION ALL
-- SELECT TLNAME AS TLNANME FROM dbo.TL_SYS_ROLE_MAPPING
-- WHERE 1=1
-- AND BRANCH_ID = @BRANCH_CREATE
-- AND ROLE_NEW IN ('GDDV','TPGD')
-- AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
-- AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE =''))
-- END
-- SET @FLAG = 6
--END
--ELSE IF @TYPE = 'ASS_SEND_GDV'
-- BEGIN
-- INSERT INTO @LST_USER_RECIVE (TLNAME)
-- SELECT TLNANME
-- FROM TL_USER
-- WHERE 1=1
-- AND TLSUBBRID = 'DV0001'
-- AND EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES](TLNANME) WHERE ROLE_ID IN ('GDV'))
-- SET @FLAG = 6
-- END
ELSE IF @TYPE = 'ASS_REJECT_GDV'
BEGIN
--cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý
SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from(
SELECT SUBSTRING(@PO_ID, PATINDEX('%[a-z]%', @PO_ID), LEN(@PO_ID)) Val
)x)
SELECT @PAGE = sp.ID
FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX
IF(@PAGE='ASS_ADDNEW')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(
SELECT MAKER_ID_KT
FROM ASS_ADDNEW
WHERE ADDNEW_ID = @PO_ID
)
END
ELSE IF(@PAGE='ASS_COLLECT_MULTI_MASTER')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(
SELECT MAKER_ID_KT
FROM ASS_COLLECT_MULTI_MASTER
WHERE COL_MULTI_MASTER_ID = @PO_ID
)
END
ELSE IF(@PAGE='ASS_TRANSFER_MULTI_MASTER')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(
SELECT MAKER_ID_KT
FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @PO_ID
)
END
ELSE IF(@PAGE='ASS_USE_MULTI_MASTER')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(
SELECT MAKER_ID_KT
FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @PO_ID
)
END
ELSE IF(@PAGE='ASS_LIQUIDATION')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(
SELECT MAKER_ID_KT
FROM ASS_LIQUIDATION WHERE LIQ_ID = @PO_ID
)
END
SET @FLAG = 6
END
--ELSE IF @TYPE = 'ASS_SEND_KSV'
-- BEGIN
-- INSERT INTO @LST_USER_RECIVE (TLNAME)
-- SELECT TLNANME
-- FROM TL_USER
-- WHERE 1=1
-- AND TLSUBBRID = 'DV0001'
-- AND EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES](TLNANME) WHERE ROLE_ID IN ('KSV'))
-- SET @FLAG = 6
-- END
ELSE IF @TYPE = 'ASS_APPROVED'
BEGIN
--cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý
SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from(
SELECT SUBSTRING(@PO_ID, PATINDEX('%[a-z]%', @PO_ID), LEN(@PO_ID)) Val
)x)
SELECT @PAGE = sp.ID
FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX
IF(@PAGE='ASS_ADDNEW')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT MAKER_ID
FROM ASS_ADDNEW
WHERE ADDNEW_ID = @PO_ID
--UNION
--SELECT MAKER_ID_KT
--FROM ASS_ADDNEW
--WHERE ADDNEW_ID = @PO_ID
)
END
ELSE IF(@PAGE='ASS_COLLECT_MULTI_MASTER')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT MAKER_ID
FROM ASS_COLLECT_MULTI_MASTER
WHERE COL_MULTI_MASTER_ID = @PO_ID
--UNION
--SELECT MAKER_ID_KT
--FROM ASS_COLLECT_MULTI_MASTER
--WHERE COL_MULTI_MASTER_ID = @PO_ID
)
END
ELSE IF(@PAGE='ASS_TRANSFER_MULTI_MASTER')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT MAKER_ID
FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @PO_ID
--UNION
--SELECT MAKER_ID_KT
--FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @PO_ID
)
END
ELSE IF(@PAGE='ASS_USE_MULTI_MASTER')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT MAKER_ID
FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @PO_ID
--UNION
--SELECT MAKER_ID_KT
--FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @PO_ID
)
END
ELSE IF(@PAGE='ASS_LIQUIDATION')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT MAKER_ID
FROM ASS_LIQUIDATION WHERE LIQ_ID = @PO_ID
--UNION
--SELECT MAKER_ID_KT
--FROM ASS_LIQUIDATION WHERE LIQ_ID = @PO_ID
)
END
SET @FLAG = 6
END
ELSE IF @TYPE = 'ASS_SEND_NT'
BEGIN
--cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý
SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from(
SELECT SUBSTRING(@PO_ID, PATINDEX('%[a-z]%', @PO_ID), LEN(@PO_ID)) Val
)x)
SELECT @PAGE = sp.ID
FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX
IF(@PAGE='ASS_ADDNEW')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT MAKER_ID
FROM ASS_ADDNEW
WHERE ADDNEW_ID = @PO_ID
)
END
ELSE IF(@PAGE='ASS_COLLECT_MULTI_MASTER')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT MAKER_ID
FROM ASS_COLLECT_MULTI_MASTER
WHERE COL_MULTI_MASTER_ID = @PO_ID
)
END
ELSE IF(@PAGE='ASS_TRANSFER_MULTI_MASTER')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT MAKER_ID
FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @PO_ID
)
END
ELSE IF(@PAGE='ASS_USE_MULTI_MASTER')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT MAKER_ID
FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @PO_ID
)
END
ELSE IF(@PAGE='ASS_LIQUIDATION')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT MAKER_ID
FROM ASS_LIQUIDATION WHERE LIQ_ID = @PO_ID
)
END
ELSE IF(@PAGE = 'ASS_PRIVATE_TRANSFER_MASTER')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT MAKER_ID
FROM ASS_PRIVATE_TRANSFER_MASTER WHERE TRANS_MULTI_MASTER_ID = @PO_ID
)
END
ELSE IF(@PAGE = 'ASS_REPAIR_MULTI_MASTER')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT MAKER_ID
FROM ASS_REPAIR_MULTI_MASTER WHERE REPAIR_MUL_ID = @PO_ID
)
END
ELSE IF(@PAGE = 'ASS_INVENTORY_MASTER')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT MAKER_ID
FROM ASS_INVENTORY_MASTER WHERE INVENT_ID = @PO_ID
)
END
ELSE IF(@PAGE = 'ASS_COST_ALLOCATION')
BEGIN --PHÂN BỔ CHI PHÍ
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT MAKER_ID
FROM ASS_COST_ALLOCATION WHERE COS_ID = @PO_ID
)
END
ELSE IF(@PAGE = 'ASS_UPDATE')
BEGIN --CẬP NHẬT THÔNG TIN TÀI SẢN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT MAKER_ID
FROM ASS_UPDATE WHERE UPDATE_ID = @PO_ID
)
END
--TRẢ VỀ NGƯỜI TẠO. PYC DC,SC,TH,CPTS
SET @REQ_TYPE = (SELECT TOP 1 REQ_TYPE FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @PO_ID)
IF(@REQ_TYPE IS NOT NULL AND @REQ_TYPE <> '')
BEGIN
INSERT INTO @LST_USER_RECIVE(TLNAME)
SELECT MAKER_ID FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @PO_ID
END
SET @FLAG = 6
END
ELSE IF @TYPE = 'ASS_SEND_CONFIRM'
BEGIN
--cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý
SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from(
SELECT SUBSTRING(@PO_ID, PATINDEX('%[a-z]%', @PO_ID), LEN(@PO_ID)) Val
)x)
SELECT @PAGE = sp.ID
FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX
DECLARE @BRANCH_ID VARCHAR(20),@DEP_ID VARCHAR(20)
PRINT @PAGE
IF(@PAGE='ASS_COLLECT_MULTI_MASTER')
BEGIN
SELECT TOP 1 @BRANCH_CREATE = BRANCH_ID_RECEIVE, @DEP_CREATE = DEPT_ID_RECEIVE,@BRANCH_TYPE =B.BRANCH_TYPE
FROM dbo.ASS_COLLECT_MULTI_DT A
LEFT JOIN dbo.CM_BRANCH B ON A.BRANCH_ID_RECEIVE =B.BRANCH_ID
WHERE COL_MULTI_MASTER_ID = @PO_ID
ORDER BY COLLECT_MULTI_ID ASC
END
ELSE IF(@PAGE='ASS_USE_MULTI_MASTER')
BEGIN
--SELECT TOP 1 @BRANCH_CREATE = A.BRANCH_ID, @DEP_CREATE = DEPT_ID,@BRANCH_TYPE =B.BRANCH_TYPE
--FROM dbo.ASS_USE_MULTI_DT A
--LEFT JOIN dbo.CM_BRANCH B ON A.BRANCH_ID =B.BRANCH_ID
--WHERE USE_MULTI_ID = @PO_ID
--ORDER BY USE_MULTI_ID ASC
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT MAKER_ID
FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @PO_ID
)
END
ELSE IF(@PAGE='ASS_ADDNEW')
BEGIN
SELECT TOP 1 @BRANCH_CREATE = A.BRANCH_ID, @DEP_CREATE = DEPT_ID,@BRANCH_TYPE =B.BRANCH_TYPE
FROM dbo.ASS_ADDNEW A
LEFT JOIN dbo.CM_BRANCH B ON A.BRANCH_ID =B.BRANCH_ID
WHERE ADDNEW_ID = @PO_ID
ORDER BY ADDNEW_ID ASC
END
PRINT @BRANCH_CREATE
PRINT @DEP_CREATE
--IF (@BRANCH_TYPE = 'HS')
--BEGIN
-- INSERT INTO @LST_USER_RECIVE (TLNAME)
-- (SELECT TLNANME FROM TL_USER
-- WHERE 1=1
-- AND TLSUBBRID = @BRANCH_CREATE
-- AND SECUR_CODE = @DEP_CREATE
-- AND EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES](TLNANME) WHERE ROLE_ID IN ('GDDV','TP'))
-- UNION ALL
-- SELECT TLNAME AS TLNANME FROM dbo.TL_SYS_ROLE_MAPPING
-- WHERE 1=1
-- AND
-- ((BRANCH_ID = @BRANCH_ID AND DEP_ID = @DEP_ID)
-- OR
-- (BRANCH_ID = @BRANCH_CREATE AND DEP_ID = @DEP_CREATE))
-- AND ROLE_NEW IN ('GDDV','TP')
-- AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
-- AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE =''))
--END
--ELSE
--BEGIN
-- INSERT INTO @LST_USER_RECIVE (TLNAME)
-- (SELECT TLNANME FROM TL_USER
-- WHERE 1=1
-- AND TLSUBBRID = @BRANCH_CREATE
-- AND EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES](TLNANME) WHERE ROLE_ID IN ('GDDV','TPGD'))
-- UNION ALL
-- SELECT TLNAME AS TLNANME FROM dbo.TL_SYS_ROLE_MAPPING
-- WHERE 1=1
-- AND
-- ((BRANCH_ID = @BRANCH_ID)
-- OR
-- (BRANCH_ID = @BRANCH_CREATE))
-- AND ROLE_NEW IN ('GDDV','TPGD')
-- AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
-- AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE =''))
--END
SET @FLAG =6
END
ELSE IF @TYPE ='ASS_TRANSFER_CONFIRM_HANDOVER'
BEGIN
SELECT TOP 1 @BRANCH_CREATE=A.BRANCH_ID_OLD,@DEP_CREATE =DEPT_ID_OLD,@BRANCH_TYPE =b.BRANCH_TYPE
FROM dbo.ASS_TRANSFER_MULTI_DT A
LEFT JOIN dbo.CM_BRANCH B ON B.BRANCH_ID = A.BRANCH_ID_OLD
ORDER BY TRANSFER_MULTI_ID ASC
IF (@BRANCH_TYPE = 'HS')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND SECUR_CODE = @DEP_CREATE
AND EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES](TLNANME) WHERE ROLE_ID IN ('GDDV','TP'))
UNION ALL
SELECT TLNAME AS TLNANME FROM dbo.TL_SYS_ROLE_MAPPING
WHERE 1=1
AND
((BRANCH_ID = @BRANCH_ID AND DEP_ID = @DEP_ID)
OR
(BRANCH_ID = @BRANCH_CREATE AND DEP_ID = @DEP_CREATE))
AND ROLE_NEW IN ('GDDV','TP')
AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE =''))
END
ELSE
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES](TLNANME) WHERE ROLE_ID IN ('GDDV','TPGD'))
UNION ALL
SELECT TLNAME AS TLNANME FROM dbo.TL_SYS_ROLE_MAPPING
WHERE 1=1
AND
((BRANCH_ID = @BRANCH_ID)
OR
(BRANCH_ID = @BRANCH_CREATE))
AND ROLE_NEW IN ('GDDV','TPGD')
AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE =''))
END
END
ELSE IF @TYPE ='ASS_TRANSFER_CONFIRM_RECEIVER'
BEGIN
SELECT TOP 1 @BRANCH_CREATE=A.BRANCH_ID,@DEP_CREATE =DEPT_ID,@BRANCH_TYPE =b.BRANCH_TYPE
FROM dbo.ASS_TRANSFER_MULTI_DT A
LEFT JOIN dbo.CM_BRANCH B ON B.BRANCH_ID = A.BRANCH_ID
ORDER BY TRANSFER_MULTI_ID ASC
IF (@BRANCH_TYPE = 'HS')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND SECUR_CODE = @DEP_CREATE
AND EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES](TLNANME) WHERE ROLE_ID IN ('GDDV','TP'))
UNION ALL
SELECT TLNAME AS TLNANME FROM dbo.TL_SYS_ROLE_MAPPING
WHERE 1=1
AND
((BRANCH_ID = @BRANCH_ID AND DEP_ID = @DEP_ID)
OR
(BRANCH_ID = @BRANCH_CREATE AND DEP_ID = @DEP_CREATE))
AND ROLE_NEW IN ('GDDV','TP')
AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE =''))
END
ELSE
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES](TLNANME) WHERE ROLE_ID IN ('GDDV','TPGD'))
UNION ALL
SELECT TLNAME AS TLNANME FROM dbo.TL_SYS_ROLE_MAPPING
WHERE 1=1
AND
((BRANCH_ID = @BRANCH_ID)
OR
(BRANCH_ID = @BRANCH_CREATE))
AND ROLE_NEW IN ('GDDV','TPGD')
AND (CONVERT(DATE,GETDATE(),103) >= CONVERT(DATE,EFF_DATE, 103) OR EFF_DATE IS NULL OR EFF_DATE ='')
AND (CONVERT(DATE, GETDATE(),103) <=CONVERT(DATE,EXP_DATE, 103) OR EXP_DATE IS NULL OR EXP_DATE =''))
END
END
ELSE IF @TYPE ='ASS_INVENTORY_RECIVE_MAIL'
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT PARTY_NAME FROM dbo.ASS_INVENTORY_PARTY_DT WHERE IS_RECIVE_MAIL =1)
END
ELSE IF @TYPE ='ASS_INVENTORY_MAIN'
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT PARTY_NAME FROM dbo.ASS_INVENTORY_PARTY_DT WHERE IS_MAIN = 1)
END
----------BAODNQ :15/2/2022 --Xử lý gửi mail cho phân hệ Quản lý BDS---------
---Quản lý BDS- gửi YC phê duyệt-----
ELSE IF @TYPE='RET_MASTER_SEND_APPROVE'
BEGIN
-----Có cấp phê duyệt trung gian-------
IF (EXISTS (SELECT * FROM RET_MASTER WHERE RET_ID = @PO_ID AND SIGN_USER IS NOT NULL))
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT A.SIGN_USER FROM RET_MASTER A WHERE A.RET_ID = @PO_ID)
END
ELSE
-----Ko có cấp phê duyệt trung gian-------
BEGIN
SET @BRANCH_CREATE =
(SELECT B.BRANCH_ID
FROM RET_MASTER A
LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID
WHERE RET_ID = @PO_ID)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @p_MAKER_ID = (SELECT MAKER_ID FROM RET_MASTER WHERE RET_ID = @PO_ID)
SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
IF(@BRANCH_TYPE = 'PGD')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('TPGD', 'PP')
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
END
ELSE IF(@BRANCH_TYPE = 'CN')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('GDDV', 'PDG')
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
END
ELSE IF(@BRANCH_TYPE = 'HS')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND DEP_ID = @DEP_CREATE
--AND RoleName IN ('GDDV', 'PP')
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND DEP_ID = @DEP_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
END
END
SET @FLAG = 7
END
---Quản lý BDS - trung gian duyệt thành công-----
ELSE IF @TYPE='RET_MASTER_CONFIRM'
BEGIN
SET @BRANCH_CREATE =
(SELECT B.BRANCH_ID
FROM RET_MASTER A
LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID
WHERE RET_ID = @PO_ID)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @p_MAKER_ID = (SELECT MAKER_ID FROM RET_MASTER WHERE RET_ID = @PO_ID)
SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
IF(@BRANCH_TYPE = 'PGD')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('TPGD', 'PP'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
END
ELSE IF(@BRANCH_TYPE = 'CN')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('GDDV', 'PDG'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
END
ELSE IF(@BRANCH_TYPE = 'HS')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND DEP_ID = @DEP_CREATE
--AND RoleName IN ('GDDV', 'PP'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND DEP_ID = @DEP_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
END
SET @FLAG = 7
END
---Quản lý BDS - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-----
ELSE IF @TYPE='RET_MASTER_APPROVED'
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT A.MAKER_ID FROM RET_MASTER A WHERE A.RET_ID = @PO_ID)
SET @FLAG = 7
END
---Thông tin sửa chữa BDS- gửi YC phê duyệt-----
ELSE IF @TYPE='RET_REPAIR_SEND_APPROVE'
BEGIN
-----Có cấp phê duyệt trung gian-------
IF (EXISTS (SELECT*FROM RET_REPAIR WHERE RP_ID = @PO_ID AND SIGN_USER IS NOT NULL))
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT A.SIGN_USER FROM RET_REPAIR A WHERE A.RP_ID = @PO_ID)
END
ELSE
-----Ko có cấp phê duyệt trung gian-------
BEGIN
SET @BRANCH_CREATE = (SELECT OFFER_BRANCH FROM RET_REPAIR WHERE RP_ID = @PO_ID)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @p_MAKER_ID = (SELECT MAKER_ID FROM RET_REPAIR WHERE RP_ID = @PO_ID)
SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
IF(@BRANCH_TYPE = 'PGD')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('TPGD', 'PP')
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
END
ELSE IF(@BRANCH_TYPE = 'CN')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('GDDV', 'PDG')
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
END
ELSE IF(@BRANCH_TYPE = 'HS')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND DEP_ID = @DEP_CREATE
--AND RoleName IN ('GDDV', 'PP')
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND DEP_ID = @DEP_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
END
END
SET @FLAG = 7
END
---Thông tin sửa chữa BDS - trung gian duyệt thành công-----
ELSE IF @TYPE='RET_REPAIR_CONFIRM'
BEGIN
SET @BRANCH_CREATE = (SELECT OFFER_BRANCH FROM RET_REPAIR WHERE RP_ID = @PO_ID)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @p_MAKER_ID = (SELECT MAKER_ID FROM RET_REPAIR WHERE RP_ID = @PO_ID)
SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
IF(@BRANCH_TYPE = 'PGD')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('TPGD', 'PP'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
END
ELSE IF(@BRANCH_TYPE = 'CN')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('GDDV', 'PDG'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
END
ELSE IF(@BRANCH_TYPE = 'HS')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND DEP_ID = @DEP_CREATE
--AND RoleName IN ('GDDV', 'PP'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND DEP_ID = @DEP_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
END
SET @FLAG = 7
END
---Thông tin sửa chữa BDS - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-----
ELSE IF @TYPE='RET_REPAIR_APPROVED'
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT A.MAKER_ID FROM RET_REPAIR A WHERE A.RP_ID = @PO_ID)
SET @FLAG = 7
END
---BDS thuê làm trụ sở CN/PGD - gửi YC phê duyệt-----
ELSE IF @TYPE='REAL_ESTATE_R_H_SEND_APPROVE'
BEGIN
-----Có cấp phê duyệt trung gian-------
IF (EXISTS (SELECT*FROM REAL_ESTATE_R_H WHERE RET_R_H_ID = @PO_ID AND SIGN_USER IS NOT NULL))
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT A.SIGN_USER FROM REAL_ESTATE_R_H A WHERE A.RET_R_H_ID = @PO_ID)
END
ELSE
-----Ko có cấp phê duyệt trung gian-------
BEGIN
SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM REAL_ESTATE_R_H WHERE RET_R_H_ID = @PO_ID)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @p_MAKER_ID = (SELECT MAKER_ID FROM REAL_ESTATE_R_H WHERE RET_R_H_ID = @PO_ID)
SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
IF(@BRANCH_TYPE = 'PGD')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('TPGD', 'PP')
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
END
ELSE IF(@BRANCH_TYPE = 'CN')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('GDDV', 'PDG')
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
END
ELSE IF(@BRANCH_TYPE = 'HS')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND DEP_ID = @DEP_CREATE
--AND RoleName IN ('GDDV', 'PP')
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND DEP_ID = @DEP_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
END
END
SET @FLAG = 7
END
---BDS thuê làm trụ sở CN/PGD - trung gian duyệt thành công-----
ELSE IF @TYPE='REAL_ESTATE_R_H_CONFIRM'
BEGIN
SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM REAL_ESTATE_R_H WHERE RET_R_H_ID = @PO_ID)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @p_MAKER_ID = (SELECT MAKER_ID FROM REAL_ESTATE_R_H WHERE RET_R_H_ID = @PO_ID)
SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
IF(@BRANCH_TYPE = 'PGD')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('TPGD', 'PP'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
END
ELSE IF(@BRANCH_TYPE = 'CN')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('GDDV', 'PDG'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
END
ELSE IF(@BRANCH_TYPE = 'HS')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND DEP_ID = @DEP_CREATE
--AND RoleName IN ('GDDV', 'PP'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND DEP_ID = @DEP_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
END
SET @FLAG = 7
END
---BDS thuê làm trụ sở CN/PGD - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-----
ELSE IF @TYPE='REAL_ESTATE_R_H_APPROVED'
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT A.MAKER_ID FROM REAL_ESTATE_R_H A WHERE A.RET_R_H_ID = @PO_ID)
SET @FLAG = 7
END
---BDS đang hoàn thiện thủ tục pháp lý - gửi YC phê duyệt-----
ELSE IF @TYPE='REAL_ESTATE_L_C_SEND_APPROVE'
BEGIN
-----Có cấp phê duyệt trung gian-------
IF (EXISTS (SELECT*FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @PO_ID AND SIGN_USER IS NOT NULL))
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT A.SIGN_USER FROM REAL_ESTATE_L_C A WHERE A.RET_L_C_ID = @PO_ID)
END
ELSE
-----Ko có cấp phê duyệt trung gian-------
BEGIN
SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @PO_ID)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @p_MAKER_ID = (SELECT MAKER_ID FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @PO_ID)
SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
IF(@BRANCH_TYPE = 'PGD')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('TPGD', 'PP')
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
END
ELSE IF(@BRANCH_TYPE = 'CN')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('GDDV', 'PDG')
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
END
ELSE IF(@BRANCH_TYPE = 'HS')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND DEP_ID = @DEP_CREATE
--AND RoleName IN ('GDDV', 'PP')
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND DEP_ID = @DEP_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
END
END
SET @FLAG = 7
END
---BDS đang hoàn thiện thủ tục pháp lý - trung gian duyệt thành công-----
ELSE IF @TYPE='REAL_ESTATE_L_C_CONFIRM'
BEGIN
SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @PO_ID)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @p_MAKER_ID = (SELECT MAKER_ID FROM REAL_ESTATE_L_C WHERE RET_L_C_ID = @PO_ID)
SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
IF(@BRANCH_TYPE = 'PGD')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('TPGD', 'PP'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('TPGD', 'PPGD'))
END
ELSE IF(@BRANCH_TYPE = 'CN')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND RoleName IN ('GDDV', 'PDG'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'PGD'))
END
ELSE IF(@BRANCH_TYPE = 'HS')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
--(SELECT TLNANME FROM TL_USER
--WHERE 1=1
--AND TLSUBBRID = @BRANCH_CREATE
--AND DEP_ID = @DEP_CREATE
--AND RoleName IN ('GDDV', 'PP'))
SELECT TLNANME
FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND DEP_ID = @DEP_CREATE
AND EXISTS(SELECT * FROM TL_USER_GET_ROLES (TLNANME) WHERE ROLE_ID IN ('GDDV', 'TBP', 'TP', 'PP'))
END
SET @FLAG = 7
END
---BDS đang hoàn thiện thủ tục pháp lý - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-----
ELSE IF @TYPE='REAL_ESTATE_L_C_APPROVED'
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT A.MAKER_ID FROM REAL_ESTATE_L_C A WHERE A.RET_L_C_ID = @PO_ID)
SET @FLAG = 7
END
--PHONGNT 24/2/2022 PHIẾU YÊU CẦU CÔNG TÁC--
---PHIẾU YÊU CẦU CÔNG TÁC - gửi YC phê duyệt---
ELSE IF @TYPE='TR_REQUEST_JOB_FORM_SEND_APPROVE'
BEGIN
-----Có cấp phê duyệt trung gian-------
IF (EXISTS (SELECT*FROM TR_REQUEST_JOB_FORM WHERE REQ_ID = @PO_ID AND SIGN_USER IS NOT NULL))
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT A.SIGN_USER FROM TR_REQUEST_JOB_FORM A WHERE A.REQ_ID = @PO_ID)
END
ELSE
-----Ko có cấp phê duyệt trung gian-------
BEGIN
SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQUEST_JOB_FORM WHERE REQ_ID = @PO_ID)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @p_MAKER_ID = (SELECT MAKER_ID FROM TR_REQUEST_JOB_FORM WHERE @PO_ID = @PO_ID)
SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
IF(@BRANCH_TYPE = 'PGD')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND RoleName IN ('TPGD', 'PP')
END
ELSE IF(@BRANCH_TYPE = 'CN')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND RoleName IN ('GDDV', 'PDG')
END
ELSE IF(@BRANCH_TYPE = 'HS')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND DEP_ID = @DEP_CREATE
AND RoleName IN ('GDDV', 'PP')
END
END
SET @FLAG = 7
END
---Phiếu yêu cầu công tác - trung gian duyệt thành công-----
ELSE IF @TYPE='TR_REQUEST_JOB_FORM_CONFIRM'
BEGIN
SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQUEST_JOB_FORM WHERE REQ_ID = @PO_ID)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @p_MAKER_ID = (SELECT MAKER_ID FROM TR_REQUEST_JOB_FORM WHERE REQ_ID = @PO_ID)
SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
IF(@BRANCH_TYPE = 'PGD')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND RoleName IN ('TPGD', 'PP'))
END
ELSE IF(@BRANCH_TYPE = 'CN')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND RoleName IN ('GDDV', 'PDG'))
END
ELSE IF(@BRANCH_TYPE = 'HS')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND DEP_ID = @DEP_CREATE
AND RoleName IN ('GDDV', 'PP'))
END
SET @FLAG = 7
END
---Phiếu yêu cầu công tác - trưởng đơn vị đã duyệt, trả mail về cho ng tạo-----
ELSE IF @TYPE='TR_REQUEST_JOB_FORM_APPROVED'
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT A.MAKER_ID FROM TR_REQUEST_JOB_FORM A WHERE A.REQ_ID = @PO_ID)
SET @FLAG = 7
END
--PHONGNT 24/2/2022 PHIẾU YÊU CẦU XE--
---PHIẾU YÊU CẦU XE - gửi YC phê duyệt---
ELSE IF @TYPE='TR_REQUEST_CAR_SEND_TDV'
BEGIN
SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQUEST_CAR WHERE REQ_ID = @PO_ID)
SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_CREATE)
SET @p_MAKER_ID = (SELECT MAKER_ID FROM TR_REQUEST_CAR WHERE REQ_ID = @PO_ID)
SET @DEP_CREATE =(SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_MAKER_ID)
IF(@BRANCH_TYPE = 'PGD')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM TL_USER A
JOIN AbpUserRoles B ON B.UserId = A.ID
JOIN AbpRoles C ON C.Id=B.RoleId
WHERE 1=1
AND A.TLSUBBRID = @BRANCH_CREATE
AND C.DisplayName IN ('TPGD', 'PPGD')
END
ELSE IF(@BRANCH_TYPE = 'CN')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM TL_USER A
JOIN AbpUserRoles B ON B.UserId = A.ID
JOIN AbpRoles C ON C.Id=B.RoleId
WHERE 1=1
AND A.TLSUBBRID = @BRANCH_CREATE
AND RoleName IN ('GDDV', 'PDG')
END
ELSE IF(@BRANCH_TYPE = 'HS')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM TL_USER A
JOIN AbpUserRoles B ON B.UserId = A.ID
JOIN AbpRoles C ON C.Id=B.RoleId
WHERE 1=1
AND A.TLSUBBRID = @BRANCH_CREATE
AND A.DEP_ID = @DEP_CREATE
AND RoleName IN ('GDDV', 'TP','TBP','PP')
END
SET @FLAG = 7
END
---Phiếu yêu cầu xe - gửi mail cho người cập nhật phiếu-----
ELSE IF @TYPE='TR_REQUEST_CAR_SEND_USERUPD'
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT USER_UPDATE FROM TR_REQUEST_CAR WHERE REQ_ID = @PO_ID)
SET @FLAG = 7
END
---Phiếu yêu cầu xe - gửi mail cho CVĐĐ Xe-----
ELSE IF @TYPE='TR_REQUEST_CAR_SEND_CV'
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT CDVAL FROM CM_ALLCODE WHERE CDNAME = 'REQCAR')
SET @FLAG = 7
END
---Phiếu yêu cầu xe - gửi mail cho người tạo-----
ELSE IF @TYPE='TR_REQUEST_CAR_COST_SEND_MAKER'
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT MAKER_ID FROM TR_REQUEST_CAR WHERE REQ_ID = @PO_ID)
SET @FLAG = 7
END
---Phiếu yêu cầu xe - CVĐĐ Xe đã duyệt, gửi mail cho Lãnh Đạo HC HO-----
ELSE IF @TYPE='TR_REQUEST_CAR_COST_CV_App'
BEGIN
SET @BRANCH_CREATE = (SELECT BRANCH_CREATE FROM TR_REQUEST_CAR WHERE REQ_ID = @PO_ID)
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT TLNANME FROM TL_USER
WHERE 1=1
AND TLSUBBRID = @BRANCH_CREATE
AND RoleName IN ('GDDV', 'PP'))
SET @FLAG = 7
END
---Phiếu yêu cầu xe - Gửi CV và người tạo-----
ELSE IF @TYPE='TR_REQUEST_CAR_SEND_CV_USER'
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT MAKER_ID FROM TR_REQUEST_CAR WHERE REQ_ID = @PO_ID)
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT USER_UPDATE FROM TR_REQUEST_CAR WHERE REQ_ID = @PO_ID)
SET @FLAG = 7
END
--DUYHD 18/07/2022 Phiếu đề nghị thanh toán - KT--
---Phiếu đề nghị thanh toán- KT - gửi mail cho người tạo-----
ELSE IF @TYPE='REQ_PAYMENT_KT_SEND_MAKER'
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT MAKER_ID FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT TLNANME FROM TL_USER WHERE RoleName = 'TGD')
SET @FLAG = 8
END
---Phiếu đề nghị tạm ứng- KT - gửi mail cho người tạo-----
ELSE IF @TYPE='REQ_ADVANCE_PAYMENT_KT_SEND_MAKER'
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
(SELECT MAKER_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @PO_ID)
SET @FLAG = 8
END
--START PHUCVH 06/01/22 GẮN MAIL: ---- PYC: DC,SC,TH,CP ---- SỬA CHỮA TÀI SẢN ---- THU HỒI TÀI SẢN ---- ĐIỀU CHUYỂN NỘI BỘ ---- ĐIỀU CHUYỂN ---- XUẤT SD ---- NHẬP MỚI ----Thanh Lý
--PHIẾU YÊU CẦU ĐIỀU CHUYỂN, SỬA CHỮA, THU HỒI
---------------PHIẾU YÊU CẦU ---------------
ELSE IF(@TYPE='PYC_VB_CONFIRM_APPROVE')
BEGIN
SET @PROCESS = (SELECT TOP 1 PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @PO_ID AND STATUS = 'C')
IF(@PROCESS = 'APPROVE')
BEGIN --PHIẾU DUYỆT HOÀN TẤT. GỬI MAIL BỘ PHẬN QLTS
SELECT TOP 1 @TLFullName_USER_CREATE = B.TLFullName, @Email_USER_CREATE = B.EMAIL, @USER_CREATE_ID = B.ID
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
WHERE REQ_ID = @PO_ID
INSERT INTO @LST_USER_RECIVE_PYC(TLFullName,Email,USER_ID)
VALUES('',(SELECT TOP 1 ParaValue FROM SYS_PARAMETERS WHERE ParaKey = 'EMAIL_QLTS_VB'),0),
(@TLFullName_USER_CREATE,@Email_USER_CREATE,@USER_CREATE_ID)
--GỬI MAIL CHO NV KHO
INSERT INTO @LST_USER_RECIVE_PYC(TLFullName,Email,USER_ID)
SELECT A.TLFullName,A.EMAIL,A.ID
FROM TL_USER A
WHERE A.TLNANME IN (SELECT VALUE FROM STRING_SPLIT((SELECT ParaValue FROM SYS_PARAMETERS WHERE ParaKey = 'RECEIVE_EMAIL_PYC_APPROVE'),','))
SET @FLAG = 10
END
ELSE IF(@PROCESS = 'CANCEL' OR @PROCESS = 'REJECT')
BEGIN --PHIẾU BỊ HUỶ HOẶC TRẢ VỀ THÌ GỬI MAIL VỀ CHO NGƯỜI TẠO
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT MAKER_ID FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @PO_ID
SET @FLAG = 6
END
ELSE
BEGIN --PHIẾU ĐANG XỬ LÝ -> GỬI TDV, DVCM, GDDV DVCM, TBP, TDV QLTS, TTDVNB
DECLARE @combinedString VARCHAR(MAX)
IF(((SELECT STATUS FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @PO_ID) <> 'DVCM')
OR ((SELECT STATUS FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @PO_ID) = 'DVCM' AND NOT EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS WHERE REQ_ID = @PO_ID AND STATUS = 'C' AND PROCESS_ID = 'DVCM_D')))
BEGIN
SELECT @combinedString = COALESCE(@combinedString + ',', '') +
(CASE WHEN PL.PROCESS_ID = 'APPROVE' OR PL.PROCESS_ID = 'DONE' THEN NULL
ELSE (SELECT TOP 1 TLNANME = STUFF(
(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB(PL.ROLE_USER,PL.BRANCH_ID,PL.DEP_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
FROM dbo.FN_GET_USER_BY_ROLE_VB(PL.ROLE_USER,PL.BRANCH_ID,PL.DEP_ID) A)
END)
FROM PL_REQUEST_PROCESS PL
WHERE PL.STATUS = 'C' AND PL.REQ_ID = @PO_ID
END
ELSE
BEGIN
SELECT @combinedString = COALESCE(@combinedString + ',', '') +
(CASE WHEN PL.PROCESS_ID = 'APPROVE' OR PL.PROCESS_ID = 'DONE' THEN NULL
ELSE (SELECT TOP 1 TLNANME = STUFF(
(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB(PL.ROLE_USER,PL.BRANCH_ID,PL.DEP_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
FROM dbo.FN_GET_USER_BY_ROLE_VB(PL.ROLE_USER,PL.BRANCH_ID,PL.DEP_ID) A)
END)
FROM PL_REQUEST_PROCESS PL
WHERE PL.REQ_ID = @PO_ID
--AND PL.CHECKER_ID = @p_TLNAME
AND PL.PROCESS_ID = 'DVCM_D'
AND PL.DEP_ID IN (SELECT DEP_ID FROM TL_USER WHERE TLNANME = @p_TLNAME)
END
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT VALUE
FROM STRING_SPLIT(@combinedString,',')
GROUP BY VALUE
SET @FLAG = 6
END
END
---------------ĐIỀU CHUYỂN TÀI SẢN NỘI BỘ ---------------
--ĐIỀU CHUYỂN TÀI SẢN NỘI BỘ
ELSE IF(@TYPE = 'ASS_PRIVATE_TRANSFER_MASTER_SendAppr')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT VALUE
FROM STRING_SPLIT((SELECT DISTINCT (SELECT TOP 1 TLNANME = STUFF(
(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,KSV_QLTS,TBP_QLTS',PL.BRANCH_ID,PL.DEPT_CREATE) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,KSV_QLTS,TBP_QLTS',PL.BRANCH_ID,PL.DEPT_CREATE) A) AS TLNAME
FROM ASS_PRIVATE_TRANSFER_MASTER PL
WHERE PL.TRANS_MULTI_MASTER_ID = @PO_ID),',')
GROUP BY VALUE
SET @FLAG = 6
END
--ĐIỀU CHUYỂN TÀI SẢN NỘI BỘ - TDV DUYỆT HOÀN TẤT => GỬI CHO NGƯỜI TẠO
ELSE IF(@TYPE = 'ASS_PRIVATE_TRANSFER_MASTER_App_SEND_USERCREATE')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT MAKER_ID FROM ASS_PRIVATE_TRANSFER_MASTER WHERE TRANS_MULTI_MASTER_ID = @PO_ID
SET @FLAG = 6
END
---------------SỬA CHỮA NHIỀU TÀI SẢN ---------------
--SỬA CHỮA NHIỀU TÀI SẢN
ELSE IF(@TYPE = 'ASS_REPAIR_MULTI_MASTER_SendAppr')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT VALUE
FROM STRING_SPLIT((SELECT DISTINCT (SELECT TOP 1 TLNANME = STUFF(
(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,KSV_QLTS,TBP_QLTS',B.TLSUBBRID,B.DEP_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,KSV_QLTS,TBP_QLTS',B.TLSUBBRID,B.DEP_ID) A) AS TLNAME
FROM ASS_REPAIR_MULTI_MASTER PL
LEFT JOIN TL_USER B ON PL.MAKER_ID = B.TLNANME
WHERE PL.REPAIR_MUL_ID = @PO_ID),',')
GROUP BY VALUE
SET @FLAG = 6
END
--SỬA CHỮA NHIỀU TÀI SẢN - TDV DUYỆT HOÀN TẤT PHIẾU => GỬI CHO NGƯỜI TẠO
ELSE IF(@TYPE = 'ASS_REPAIR_MULTI_MASTER_App_SEND_USERCREATE')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT MAKER_ID FROM ASS_REPAIR_MULTI_MASTER WHERE REPAIR_MUL_ID = @PO_ID
SET @FLAG = 6
END
---------------THU HỒI TÀI SẢN ---------------
--THU HỒI TÀI SẢN - QLTS (GỬI MAIL CHO GDDV_QLTS DUYỆT)
ELSE IF(@TYPE = 'ASS_COLLECT_MULTI_MASTER_SendAppr')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT VALUE
FROM STRING_SPLIT((SELECT DISTINCT (SELECT TOP 1 TLNANME = STUFF(
-- (SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS,GDDV_QLTS',B.TLSUBBRID,B.DEP_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
--FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS,GDDV_QLTS',B.TLSUBBRID,B.DEP_ID) A) AS TLNAME
(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS',B.TLSUBBRID,B.DEP_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS',B.TLSUBBRID,B.DEP_ID) A) AS TLNAME
FROM ASS_COLLECT_MULTI_MASTER PL
LEFT JOIN TL_USER B ON PL.MAKER_ID = B.TLNANME
WHERE PL.COL_MULTI_MASTER_ID = @PO_ID),',')
GROUP BY VALUE
SET @FLAG = 6
END
--THU HỒI TÀI SẢN - XÁC NHẬN BÀN GIAO TÀI SẢN THU HỒI (GỬI MAIL CHO GDDV_QLTS CỦA TÀI SẢN CẦN THU HỒI) VÀ GỬI MAIL CHO NGƯỜI TẠO
ELSE IF(@TYPE = 'ASS_COLLECT_MULTI_MASTER_App')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT VALUE
FROM STRING_SPLIT((SELECT DISTINCT (SELECT TOP 1 TLNANME = STUFF(
(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,KSV_QLTS,TBP_QLTS',PL.BRANCH_ID,PL.DEPT_ID_USE) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,KSV_QLTS,TBP_QLTS',PL.BRANCH_ID,PL.DEPT_ID_USE) A) AS TLNAME
FROM ASS_COLLECT_MULTI_DT PL
WHERE PL.COL_MULTI_MASTER_ID = @PO_ID),',')
GROUP BY VALUE
--GỬI CHO NGƯỜI TẠO
INSERT INTO @LST_USER_RECIVE
VALUES((SELECT TOP 1 MAKER_ID FROM ASS_COLLECT_MULTI_MASTER WHERE COL_MULTI_MASTER_ID = @PO_ID))
SET @FLAG = 6
END
--THU HỒI TÀI SẢN - KẾ TOÁN NHẬP (CẬP NHẬT HẠCH TOÁN)
ELSE IF(@TYPE = 'ASS_COLLECT_CONFIRM_MASTER_Ins')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV','','') GROUP BY TLNANME
SET @FLAG = 6
END
--THU HỒI TÀI SẢN - TDV XÁC NHẬN => GỬI MAIL NGƯỜI TẠO
--ELSE IF(@TYPE = 'ASS_COLLECT_CONFIRM_MASTER_Ins_SEND_USERCREATE')
--BEGIN
-- INSERT INTO @LST_USER_RECIVE (TLNAME)
-- SELECT MAKER_ID FROM ASS_COLLECT_MULTI_MASTER WHERE COL_MULTI_MASTER_ID = @PO_ID
-- SET @FLAG = 6
--END
--THU HỒI TÀI SẢN - KT (DUYỆT) (GDV GỬI KSV PHÊ DUYỆT)
ELSE IF(@TYPE = 'ASS_COLLECT_MULTI_KT_SendAppr_KT')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV','','') GROUP BY TLNANME
SET @FLAG = 6
END
---------------XUẤT SỬ DỤNG TÀI SẢN ---------------
--XUẤT SỬ DỤNG TÀI SẢN - QLTS (QLTS GỬI GDDV_QLTS PHÊ DUYỆT)
ELSE IF(@TYPE = 'ASS_USE_MUILTI_MASTER_SendAppr')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT VALUE
FROM STRING_SPLIT((SELECT DISTINCT (SELECT TOP 1 TLNANME = STUFF(
-- (SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS,GDDV_QLTS,GDDV',PL.BRANCH_CREATE,PL.DEPT_CREATE) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
--FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS,GDDV_QLTS,GDDV',PL.BRANCH_CREATE,PL.DEPT_CREATE) A) AS TLNAME
(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS',PL.BRANCH_CREATE,PL.DEPT_CREATE) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS',PL.BRANCH_CREATE,PL.DEPT_CREATE) A) AS TLNAME
FROM ASS_USE_MULTI_MASTER PL
WHERE PL.USER_MASTER_ID = @PO_ID),',')
GROUP BY VALUE
SET @FLAG = 6
END
--XUẤT SỬ DỤNG TÀI SẢN - XÁC NHẬN XUẤT SỬ DỤNG TÀI SẢN (GỬI MAIL CHO GDDV NHẬN TÀI SẢN) VÀ GỬI CHO NGƯỜI TẠO
ELSE IF(@TYPE = 'ASS_USE_MULTI_BVB_MASTER_App')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT VALUE
FROM STRING_SPLIT((SELECT DISTINCT (SELECT TOP 1 TLNANME = STUFF(
(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,KSV_QLTS,TBP_QLTS',PL.BRANCH_ID,PL.DEP_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV,GDDV_QLTS,KSV_QLTS,TBP_QLTS',PL.BRANCH_ID,PL.DEP_ID) A) AS TLNAME
FROM ASS_USE_MULTI_MASTER PL
WHERE PL.USER_MASTER_ID = @PO_ID),',')
GROUP BY VALUE
--GỬI CHO NGƯỜI TẠO
INSERT INTO @LST_USER_RECIVE (TLNAME)
VALUES ((SELECT TOP 1 MAKER_ID FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @PO_ID))
SET @FLAG = 6
END
--XUẤT SỬ DỤNG TÀI SẢN - TDV XÁC NHẬN => GỬI MAIL CHO NGƯỜI TẠO
--ELSE IF(@TYPE = 'ASS_USE_CONFIRM_MASTER_Ins_SEND_USERCREATE')
--BEGIN
-- INSERT INTO @LST_USER_RECIVE (TLNAME)
-- SELECT MAKER_ID FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @PO_ID
-- SET @FLAG = 6
--END
--XUẤT SỬ DỤNG TÀI SẢN - KT DUYỆT HOÀN TẤT => GỬI MAIL CHO NGƯỜI TẠO
ELSE IF(@TYPE = 'ASS_USE_MULTI_BVB_KT_App')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT MAKER_ID FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @PO_ID
SET @FLAG = 6
END
--XUẤT SỬ DỤNG TÀI SẢN - KẾ TOÁN NHẬP (CẬP NHẬT HẠCH TOÁN)
ELSE IF(@TYPE = 'ASS_USE_CONFIRM_MASTER_Ins')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV','','') GROUP BY TLNANME
SET @FLAG = 6
END
--XUẤT SỬ DỤNG TÀI SẢN - KT(DUYỆT) (GDV GỬI KSV PHÊ DUYỆT)
ELSE IF(@TYPE = 'ASS_USE_MUILTI_MASTER_SendAppr_KT')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV','','') GROUP BY TLNANME
SET @FLAG = 6
END
---------------NHẬP MỚI TÀI SẢN ---------------
--NHẬP MỚI TÀI SẢN - QLTS (QLTS GỬI GDDV_QLTS PHÊ DUYỆT)
ELSE IF(@TYPE = 'ASS_ADDNEW_BVB_SendAppr')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT VALUE
FROM STRING_SPLIT((SELECT DISTINCT (SELECT TOP 1 TLNANME = STUFF(
-- (SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS,GDDV_QLTS,GDDV',PL.BRANCH_CREATE,PL.DEPT_CREATE) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
--FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS,GDDV_QLTS,GDDV',PL.BRANCH_CREATE,PL.DEPT_CREATE) A) AS TLNAME
(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS',PL.BRANCH_CREATE,PL.DEPT_CREATE) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS',PL.BRANCH_CREATE,PL.DEPT_CREATE) A) AS TLNAME
FROM ASS_ADDNEW PL
WHERE PL.ADDNEW_ID = @PO_ID),',')
GROUP BY VALUE
SET @FLAG = 6
END
--NHẬP MỚI TÀI SẢN - KẾ TOÁN NHẬP (CẬP NHẬT HẠCH TOÁN)
ELSE IF(@TYPE = 'ASS_ADDNEW_QLTS_Appr')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV','','') GROUP BY TLNANME
SET @FLAG = 6
END
--NHẬP MỚI TÀI SẢN - KT(DUYỆT) (GDV GỬI KSV PHÊ DUYỆT)
ELSE IF(@TYPE = 'ASS_ADDNEW_KT_BVB_SendAppr')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV','','') GROUP BY TLNANME
SET @FLAG = 6
END
---------------ĐIỀU CHUYỂN TÀI SẢN ---------------
--ĐIỀU CHUYỂN TÀI SẢN - QLTS (QLTS GỬI GDDV_QLTS PHÊ DUYỆT)
ELSE IF(@TYPE = 'ASS_TRANSFER_MULTI_Master_SendAppr_S_TDV')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT VALUE
FROM string_split((SELECT B.TLNANME
FROM (SELECT DISTINCT (CASE WHEN PL.PROCESS_ID = 'APPROVE' OR PL.PROCESS_ID = 'DONE' THEN NULL
ELSE (SELECT TOP 1 TLNANME = STUFF(
(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB(PL.ROLE_USER,PL.BRANCH_ID,PL.DEP_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
FROM dbo.FN_GET_USER_BY_ROLE_VB(PL.ROLE_USER,PL.BRANCH_ID,PL.DEP_ID) A)
END) AS TLNANME
FROM PL_REQUEST_PROCESS PL
WHERE PL.STATUS = 'C' AND PL.REQ_ID = @PO_ID) B
GROUP BY B.TLNANME),',')
SET @FLAG = 6
END
--ĐIỀU CHUYỂN TÀI SẢN - TDV GIAO NHẬN XÁC NHẬN => GỬI MAIL CHO NGƯỜI TẠO
--ELSE IF(@TYPE = 'ASS_TRANSFER_MULTI_MASTER_SendAppr_SEND_USERCREATE')
--BEGIN
-- IF(EXISTS(SELECT TOP 1 '1'
-- FROM ASS_TRANSFER_MULTI_MASTER A
-- LEFT JOIN PL_REQUEST_PROCESS B ON A.TRANS_MULTI_MASTER_ID = B.REQ_ID
-- WHERE B.PROCESS_ID = 'APPROVE' AND B.STATUS = 'C' AND A.AUTH_STATUS_KT = 'E' AND A.TRANS_MULTI_MASTER_ID = @PO_ID))
-- BEGIN
-- INSERT INTO @LST_USER_RECIVE (TLNAME)
-- SELECT MAKER_ID FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @PO_ID
-- END
-- SET @FLAG = 6
--END
--ĐIỀU CHUYỂN TÀI SẢN - KT DUYỆT HOÀN TẤT PHIẾU => GỬI MAIL CHO NGƯỜI TẠO
ELSE IF(@TYPE = 'ASS_TRANSFER_MULTI_MASTER_KT_App_SEND_USERCREATE')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT MAKER_ID FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @PO_ID
SET @FLAG = 6
END
--ĐIỀU CHUYỂN TÀI SẢN - XÁC NHẬN CỦA BÊN GIAO/NHẬN OR TTDVNB DUYỆT VÀ NGƯỜI TẠO
ELSE IF(@TYPE = 'ASS_TRANSFER_MULTI_MASTER_APP')
BEGIN
SELECT @combinedString = COALESCE(@combinedString + ',', '') +
(CASE WHEN PL.PROCESS_ID = 'APPROVE' OR PL.PROCESS_ID = 'DONE' THEN NULL
ELSE (SELECT TOP 1 TLNANME = STUFF(
(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB(PL.ROLE_USER,PL.BRANCH_ID,PL.DEP_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
FROM dbo.FN_GET_USER_BY_ROLE_VB(PL.ROLE_USER,PL.BRANCH_ID,PL.DEP_ID) A)
END)
FROM PL_REQUEST_PROCESS PL
WHERE PL.STATUS = 'C' AND PL.REQ_ID = @PO_ID
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT VALUE
FROM string_split(@combinedString,',')
INSERT INTO @LST_USER_RECIVE (TLNAME)
VALUES((SELECT TOP 1 MAKER_ID FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @PO_ID))
SET @FLAG = 6
END
--ĐIỀU CHUYỂN TÀI SẢN - GỬI CHO KẾ TOÁN NHẬP (CẬP NHẬT HẠCH TOÁN)
ELSE IF(@TYPE = 'ASS_TRANSFER_MULTI_Master_SendAppr_CONFIRM')
BEGIN
IF(NOT EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS prp WHERE prp.REQ_ID = @PO_ID AND prp.PROCESS_ID = 'XNGN' AND prp.STATUS = 'C'))
BEGIN
--CODE ĐÃ THÊM VÀO FLOW (TẤT CẢ CÁC TDV XÁC NHẬN GIAO NHẬN INSERT VÀO PL_REQUEST_PROCESS ĐẾN BƯỚC GDV)
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV','','') GROUP BY TLNANME
SET @FLAG = 6
END
END
--ĐIỀU CHUYỂN TÀI SẢN - KT(DUYỆT) (GDV GỬI KSV DUYỆT)
ELSE IF(@TYPE = 'ASS_TRANSFER_MULTI_Master_SendAppr_KT')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV','','') GROUP BY TLNANME
SET @FLAG = 6
END
---------------THANH LÝ TÀI SẢN ---------------
--THANH LÝ TÀI SẢN - QLTS (GỬI MAIL CHO GDDV_QLTS DUYỆT)
ELSE IF(@TYPE = 'ASS_LIQUIDATION_BVB_SendAppr')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT VALUE
FROM STRING_SPLIT((SELECT DISTINCT (SELECT TOP 1 TLNANME = STUFF(
-- (SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS,GDDV_QLTS,GDDV',B.TLSUBBRID,B.DEP_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
--FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS,GDDV_QLTS,GDDV',B.TLSUBBRID,B.DEP_ID) A) AS TLNAME
(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS',B.TLSUBBRID,B.DEP_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS,KSV_QLTS',B.TLSUBBRID,B.DEP_ID) A) AS TLNAME
FROM ASS_LIQUIDATION PL
LEFT JOIN TL_USER B ON PL.MAKER_ID = B.TLNANME
WHERE PL.LIQ_ID = @PO_ID),',')
GROUP BY VALUE
SET @FLAG = 6
END
--THANH LÝ TÀI SẢN - KẾ TOÁN NHẬP (CẬP NHẬT HẠCH TOÁN)
ELSE IF(@TYPE = 'ASS_LIQUIDATION_BVB_App')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV','','') GROUP BY TLNANME
SET @FLAG = 6
END
--THANH LÝ TÀI SẢN - KT (DUYỆT) (GDV GỬI KSV PHÊ DUYỆT)
ELSE IF(@TYPE = 'ASS_LIQUIDATION_BVB_KT_SendAppr')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV','','') GROUP BY TLNANME
SET @FLAG = 6
END
--THANH LÝ TÀI SẢN - KT DUYỆT HOÀN TẤT PHIẾU => GỬI CHO NGƯỜI TẠO
ELSE IF(@TYPE = 'ASS_LIQUIDATION_BVB_KT_App_SEND_USERCREATE')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT MAKER_ID FROM ASS_LIQUIDATION WHERE LIQ_ID = @PO_ID
SET @FLAG = 6
END
--KIỂM KÊ TÀI SẢN - GỬI DUYỆT
ELSE IF(@TYPE = 'ASS_INVENTORY_SendApp')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID = @PO_ID AND STATUS = 'C'
SET @FLAG = 6
END
--KIỂM KÊ TÀI SẢN - GỬI XÁC NHẬN
ELSE IF(@TYPE = 'ASS_INVENTORY_MASTER_DVKD_APP')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID = @PO_ID AND STATUS = 'C'
SET @FLAG = 6
END
--KIỂM KÊ TÀI SẢN - THÀNH PHẦN KIỂM KÊ XÁC NHẬN
ELSE IF(@TYPE = 'ASS_INVENTORY_MASTER_APPROVE_CONFIRM')
BEGIN
IF(EXISTS(SELECT 1 FROM PL_REQUEST_PROCESS WHERE REQ_ID = @PO_ID AND PROCESS_ID = 'TBKK' AND STATUS = 'C'))
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT ROLE_USER FROM PL_REQUEST_PROCESS WHERE REQ_ID = @PO_ID AND STATUS = 'C'
SET @FLAG = 6
END
END
--KIỂM KÊ TÀI SẢN - TRƯỞNG BAN KIỂM KÊ DUYỆT
ELSE IF(@TYPE = 'ASS_INVENTORY_App')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT MAKER_ID FROM ASS_INVENTORY_MASTER WHERE INVENT_ID = @PO_ID
SET @FLAG = 6
END
--ĐỀ XUẤT THANH LÝ TÀI SẢN
ELSE IF(@TYPE = 'ASS_LIQ_REQUEST_App')
BEGIN
DECLARE @combinedString1 VARCHAR(MAX),@TL_NAME VARCHAR(5000)
SELECT @TL_NAME = CASE
WHEN A.AUTH_STATUS = 'A' THEN A.MAKER_ID -- TRẢ VỀ NGƯỜI TẠO
WHEN EXISTS(SELECT 1 FROM CM_REQUEST_PROCESS E WHERE A.LIQ_REQ_ID = E.REQ_ID AND E.STATUS = 'G' AND E.DONE = 0 AND A.AUTH_STATUS = 'E') THEN --GDDV-DVCM TRẢ VỀ NHÂN VIÊN DVCM
(SELECT TOP 1 E.CHECKER_ID FROM CM_REQUEST_PROCESS E WHERE E.REQ_ID = A.LIQ_REQ_ID AND E.STATUS = 'F' AND E.DONE = 1 AND E.BRANCH_ID = @BRANCH_LOGIN AND E.DEPT_ID = @DEP_LOGIN)
WHEN EXISTS(SELECT 1 FROM CM_REQUEST_PROCESS E WHERE A.LIQ_REQ_ID = E.REQ_ID AND E.STATUS IN ('H','K','L') AND E.DONE = 0 AND A.AUTH_STATUS = 'E') THEN 'DVCM' --CÁC BƯỚC TRÊN TRẢ VỀ DVCM
WHEN EXISTS(SELECT 1 FROM CM_REQUEST_PROCESS E WHERE A.LIQ_REQ_ID = E.REQ_ID AND E.STATUS IN ('G','H','K','L') AND E.DONE = 0 AND A.AUTH_STATUS = 'C') THEN
(SELECT TOP 1 E.CHECKER_ID FROM CM_REQUEST_PROCESS E WHERE E.REQ_ID = A.LIQ_REQ_ID AND E.STATUS = 'E' AND E.DONE = 1)
WHEN A.AUTH_STATUS = 'B' THEN (SELECT TOP 1 TLNANME = STUFF(
(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV',A.BRANCH_ID,A.DEP_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV',A.BRANCH_ID,A.DEP_ID) B)
WHEN A.AUTH_STATUS = 'C' THEN (SELECT TOP 1 TLNANME = STUFF(
(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS','DV0001','DEP000000000048') GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS','DV0001','DEP000000000048') B)
WHEN A.AUTH_STATUS = 'E' AND EXISTS(SELECT TOP 1 1 FROM TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID = @PO_ID) THEN N'DVCM'
WHEN A.AUTH_STATUS = 'E' AND NOT EXISTS(SELECT TOP 1 1 FROM TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID = @PO_ID) THEN (SELECT TOP 1 TLNANME = STUFF(
(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS','DV0001','DEP000000000048') GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS','DV0001','DEP000000000048') B)
WHEN A.AUTH_STATUS = 'F' THEN N'GDDV_DVCM'
WHEN A.AUTH_STATUS = 'G' THEN (SELECT TOP 1 TLNANME = STUFF(
(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS','DV0001','DEP000000000048') GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS','DV0001','DEP000000000048') B)
WHEN A.AUTH_STATUS = 'H' THEN (SELECT TOP 1 TLNANME = STUFF(
(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS','DV0001','DEP000000000048') GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
FROM dbo.FN_GET_USER_BY_ROLE_VB('TBP_QLTS','DV0001','DEP000000000048') B)
WHEN A.AUTH_STATUS = 'K' THEN (SELECT TOP 1 TLNANME = STUFF(
(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV','DV0001','DEP000000000048') GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV','DV0001','DEP000000000048') B)
WHEN A.AUTH_STATUS = 'L' THEN A.MAKER_ID
ELSE '' END
FROM ASS_LIQ_REQUEST A
WHERE A.LIQ_REQ_ID = @PO_ID
IF(@TL_NAME = 'DVCM')
BEGIN
SELECT @combinedString1 = COALESCE(@combinedString1 + ',', '') +
(SELECT TOP 1 TLNANME = STUFF(
(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('DVCM','DV0001',PL.COST_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
FROM dbo.FN_GET_USER_BY_ROLE_VB('DVCM','DV0001',PL.COST_ID) A)
FROM TR_REQUEST_SHOP_COSTCENTER PL
WHERE PL.REQ_ID = @PO_ID
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT VALUE FROM string_split(@combinedString1,',')
END
ELSE IF(@TL_NAME = 'GDDV_DVCM')
BEGIN
SELECT @combinedString1 = COALESCE(@combinedString1 + ',', '') +
(SELECT TOP 1 TLNANME = STUFF(
(SELECT ',' + TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV','DV0001',PL.COST_ID) GROUP BY TLNANME FOR XML PATH ('')), 1, 1, '')
FROM dbo.FN_GET_USER_BY_ROLE_VB('GDDV','DV0001',PL.COST_ID) A)
FROM TR_REQUEST_SHOP_COSTCENTER PL
WHERE PL.REQ_ID = @PO_ID AND PL.COST_ID IN (SELECT tu.DEP_ID FROM TL_USER tu WHERE tu.TLNANME = @p_TLNAME)
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT VALUE FROM string_split(@combinedString1,',')
END
ELSE IF(@TL_NAME IS NOT NULL AND @TL_NAME <> '')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT VALUE FROM string_split(@TL_NAME,',')
END
SET @FLAG = 6
END
ELSE IF(@TYPE = 'CHECK_WARRANTY_DT')
BEGIN
INSERT INTO @LST_USER_RECIVE_PYC(TLFullName,Email,USER_ID)
VALUES('',(SELECT TOP 1 ParaValue FROM SYS_PARAMETERS WHERE ParaKey = 'EMAIL_QLTS_VB'),0)
SET @FLAG = 10
END
IF(@TYPE LIKE N'%CHECK_TRANS_NOT_APPROVE|%')
BEGIN
IF(@TYPE LIKE N'%|GDV|%')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV,GDV_QLTS','','') GROUP BY TLNANME
END
ELSE IF(@TYPE LIKE N'%|KSV|%')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
--SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('GDV,GDV_QLTS','','') GROUP BY TLNANME
END
--
-- SET @FLAG = 6
--INSERT INTO @LST_USER_RECIVE_PYC(TLFullName,Email,USER_ID)
--VALUES('',(SELECT TOP 1 ParaValue FROM SYS_PARAMETERS WHERE ParaKey = 'EMAIL_QLTS_VB'),0)
SET @FLAG = 10
END
--PHÂN BỔ CHI PHÍ TÀI SẢN - GỬI KSV DUYỆT
ELSE IF(@TYPE = 'ASS_COST_ALLOCATION_SendAppr')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
SET @FLAG = 6
END
--PHÂN BỔ CHI PHÍ TÀI SẢN - PHÊ DUYỆT HOÀN TẤT - GỬI CHO NGƯỜI TẠO
ELSE IF(@TYPE = 'ASS_COST_ALLOCATION_SendAppr_SEND_USERCREATE')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT MAKER_ID FROM ASS_COST_ALLOCATION WHERE COS_ID = @PO_ID
SET @FLAG = 6
END
--CẬP NHẬT THÔNG TIN TÀI SẢN - GỬI KSV DUYỆT
ELSE IF(@TYPE = 'ASS_UPDATE_SendAppr')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT TLNANME FROM dbo.FN_GET_USER_BY_ROLE_VB('KSV',@BRANCH_QLTS,@DEP_KT) GROUP BY TLNANME
SET @FLAG = 6
END
--CẬP NHẬT THÔNG TIN TÀI SẢN - PHÊ DUYỆT HOÀN TẤT - GỬI CHO NGƯỜI TẠO
ELSE IF(@TYPE = 'ASS_UPDATE_App_SEND_USERCREATE')
BEGIN
INSERT INTO @LST_USER_RECIVE (TLNAME)
SELECT MAKER_ID FROM ASS_UPDATE WHERE UPDATE_ID = @PO_ID
SET @FLAG = 6
END
--END PHUCVH 06/01/22 GẮN MAIL: ---- PYC: DC,SC,TH,CP ---- SỬA CHỮA TÀI SẢN ---- THU HỒI TÀI SẢN ---- ĐIỀU CHUYỂN NỘI BỘ ---- ĐIỀU CHUYỂN ---- XUẤT SD ---- NHẬP MỚI ----Thanh lý
---Phiếu đề nghị tạm ứng- KT - gửi mail cho tổng giám đốc-----
--ELSE IF @TYPE='REQ_ADVANCE_PAYMENT_KT_SEND_TGD'
--BEGIN
-- INSERT INTO @LST_USER_RECIVE (TLNAME)
-- (SELECT TLNANME FROM TL_USER WHERE RoleName = 'TGD')
-- SET @FLAG = 8
--END
----- END PYC MUA SẮM --------------------
IF(@FLAG = 0)
BEGIN
SELECT A.*,B.TLFullName,B.EMAIL
FROM TL_ROLE_NOTIFICATION A
LEFT JOIN TL_USER B ON A.TL_NAME=B.TLNANME
WHERE EXISTS(SELECT * FROM @LST_POID WHERE ID = A.PO_ID)
END
ELSE IF(@FLAG = 1)
BEGIN
SELECT B.*,A.TLFullName,A.EMAIL
FROM TL_USER A
LEFT JOIN TL_ROLE_NOTIFICATION B ON B.TL_NAME=A.TLNANME AND 1 >2
WHERE (A.TLNANME IN (SELECT * FROM @LST_USER_RECIVE))
AND A.TLNANME NOT IN ('trungnq1','taila')
END
-- NEU LA TO TRINH CHU TRUONG, PYC MS THÌ TRA VE FLAG =2
ELSE IF(@FLAG = 2)
BEGIN
SELECT B.*,A.TLFullName,A.EMAIL
FROM TL_USER A
LEFT JOIN TL_ROLE_NOTIFICATION B ON B.TL_NAME=A.TLNANME AND 1>2
WHERE (A.TLNANME IN (SELECT TLNAME FROM @PL_PROCESS_CURRENT_SEARCH_TEMP))
AND A.TLNANME NOT IN ('trungnq1','taila')
END
-- SAU KHI TT CHU TRUONG DUOC PHE DUYET THI THONG BAO CHO NGUOI TAO TO TRINH
ELSE IF(@FLAG = 3)
BEGIN
SELECT B.*,A.TLFullName,A.EMAIL
FROM TL_USER A
LEFT JOIN TL_ROLE_NOTIFICATION B ON B.TL_NAME=A.TLNANME AND 1>2
WHERE (A.TLNANME =@MAKER_ID OR A.TLNANME IN (SELECT TLNAME FROM @PL_PROCESS_CURRENT_SEARCH_TEMP))
--AND A.TLNANME NOT IN ('trungnq1','taila')
END
-- SAU KHI PYCMS DUOC PHE DUYET THI THONG BAO CHO NGUOI TAO VA NGUOI XU LY
ELSE IF(@FLAG = 4)
BEGIN
SELECT B.*,A.TLFullName,A.EMAIL
FROM TL_USER A
LEFT JOIN TL_ROLE_NOTIFICATION B ON B.TL_NAME=A.TLNANME AND 1>2
WHERE (A.TLNANME =@MAKER_ID OR A.TLNANME =@NV_XL_MS)
AND A.TLNANME NOT IN ('trungnq1','taila')
END
-----------Quản lý cho thuê----------------
ELSE IF(@FLAG = 5)
BEGIN
SELECT TLFullName, EMAIL AS Email, ID as [USER_ID]
FROM TL_USER
WHERE (TLNANME IN (SELECT TLNAME FROM @LST_USER_RECIVE))
END
ELSE IF(@FLAG = 6)
BEGIN
SELECT TLFullName, EMAIL AS Email, ID as [USER_ID]
FROM TL_USER
WHERE (TLNANME IN (SELECT TLNAME FROM @LST_USER_RECIVE))
END
--------------BAODNQ 15/2/2022: Quản lý BDS--------------------
ELSE IF(@FLAG = 7)
BEGIN
SELECT TLFullName, EMAIL AS Email, ID as [USER_ID]
FROM TL_USER
WHERE (TLNANME IN (SELECT TLNAME FROM @LST_USER_RECIVE))
END
--------------QUẢN LÝ THANH TOÁN TẠM ỨNG------------------
ELSE IF(@FLAG = 8)
BEGIN
SELECT TLFullName, EMAIL AS Email, ID as [USER_ID]
FROM TL_USER
WHERE (TLNANME IN (SELECT TLNAME FROM @LST_USER_RECIVE))
END
ELSE IF(@FLAG = 9)
BEGIN
SELECT TLFullName, EMAIL AS Email, ID as [USER_ID]
FROM TL_USER
WHERE (TLNANME IN (SELECT TLNAME FROM @LST_USER_RECIVE))
END
ELSE IF(@FLAG = 10)
BEGIN --PHÊ DUYỆT HOÀN TẤT PHIẾU YÊU CẦU
SELECT TLFullName,Email,USER_ID FROM @LST_USER_RECIVE_PYC
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_COST_ALLOCATION_Ins]'
GO
/*INSERT INTO SYS_PREFIX(ID,Prefix,[Description]) VALUES('ASS_COST_ALLOCATION','ACAC','')
INSERT INTO SYS_CODEMASTERS(Prefix,CurValue,Active) VALUES('ACAC','1','1')*/
/*INSERT INTO SYS_PREFIX(ID,Prefix,[Description]) VALUES('ASS_COST_ALLOC_DT','ALODT','')
INSERT INTO SYS_CODEMASTERS(Prefix,CurValue,Active) VALUES('ALODT','1','1')*/
ALTER PROCEDURE [dbo].[ASS_COST_ALLOCATION_Ins]
@p_ASSET_ID varchar(15) = NULL,
@p_NOTE NVARCHAR(MAX) = NULL,
@p_TRN_DATE varchar(20) = 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_EDITOR_ID VARCHAR(15) = NULL,
@p_EDITOR_DT VARCHAR(20) = NULL,
@p_CHECKER_ID varchar(100) = NULL,
@p_APPROVE_DT VARCHAR(20) = NULL,
@p_BRANCH_CREATE varchar(15) = NULL,
@p_XmlData XML = NULL,
@p_SERCURE_01 VARCHAR(15) = NULL,
@p_SERCUR_02 VARCHAR(15)= NULL
AS
DECLARE
--DVSD
@BRANCH_ID varchar(15),
@DEPT_ID VARCHAR(15) = NULL,
@COST_AMOUNT DECIMAL(18,0) =0,
@COST_RATE FLOAT =0,
@EXP_ACCTNO VARCHAR(10)= NULL,
@NOTE NVARCHAR(MAX) =NULL,
@COST_MONTH decimal =0,
@RECORD_STATUS VARCHAR(1)=NULL
Declare @hdoc INT
Exec sp_xml_preparedocument @hdoc Output,@p_XmlData
DECLARE XmlData CURSOR FOR
SELECT *
FROM OPENXML(@hdoc,'/Root/XmlData',2)
WITH
(
BRANCH_ID varchar(15),
DEPT_ID VARCHAR(15),
COST_AMOUNT DECIMAL(18,0),
COST_RATE FLOAT,
EXP_ACCTNO VARCHAR(10),
NOTE NVARCHAR(MAX),
COST_MONTH decimal,
RECORD_STATUS VARCHAR(1)
)
OPEN XmlData
BEGIN TRANSACTION
DECLARE @l_COST_MASTER_ID VARCHAR(15)
EXEC SYS_CodeMasters_Gen 'ASS_COST_ALLOCATION', @l_COST_MASTER_ID out
IF @l_COST_MASTER_ID='' OR @l_COST_MASTER_ID IS NULL GOTO ABORT
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,@p_ASSET_ID,@p_NOTE,CONVERT(DATETIME,@p_TRN_DATE,103),@p_RECORD_STATUS ,'E' ,@p_MAKER_ID ,
CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_EDITOR_ID, CONVERT(DATETIME,@p_EDITOR_DT,103),@p_CHECKER_ID ,
CONVERT(DATETIME, @p_APPROVE_DT, 103),@p_BRANCH_CREATE,NULL,@p_SERCURE_01,@p_SERCUR_02)
IF @@Error <> 0 GOTO ABORT
--Insert XmlData
FETCH NEXT FROM XmlData INTO @BRANCH_ID,@DEPT_ID,@COST_AMOUNT,@COST_RATE,@EXP_ACCTNO,@NOTE,@COST_MONTH,@RECORD_STATUS
WHILE @@FETCH_STATUS = 0
BEGIN
--DECLARE @ERRORSYS NVARCHAR(200) = '',@ASSET_CODE nVARCHAR(20)
--IF ( EXISTS ( SELECT * FROM ASS_COLLECT_MULTI_DT WHERE 1<10))
-- BEGIN
-- SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE 1<10)
-- SET @ERRORSYS = N'Mã: '+@ASSET_CODE+N' đang được thu hồi'
-- CLOSE XmlData
-- DEALLOCATE XmlData
-- ROLLBACK TRANSACTION
-- SELECT '-1' as Result, '' COL_MULTI_MASTER_ID, @ERRORSYS ErrorDesc
-- RETURN '-1'
-- END
-- IF ( EXISTS ( SELECT * FROM ASS_COLLECT WHERE [ASSET_ID] = @ASSET_ID AND AUTH_STATUS<>'A'))
-- BEGIN
-- SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID)
-- SET @ERRORSYS = N'Mã: '+@ASSET_CODE+N' đang được thu hồi'
-- CLOSE XmlData
-- DEALLOCATE XmlData
-- ROLLBACK TRANSACTION
-- SELECT '-1' as Result, '' COL_MULTI_MASTER_ID, @ERRORSYS ErrorDesc
-- RETURN '-1'
-- END
DECLARE @l_COSTDT_ID VARCHAR(15)
EXEC SYS_CodeMasters_Gen 'ASS_COST_ALLOC_DT', @l_COSTDT_ID out
IF @l_COSTDT_ID='' OR @l_COSTDT_ID IS NULL GOTO ABORT
INSERT INTO ASS_COST_ALLOC_DT
VALUES
(@l_COSTDT_ID,@l_COST_MASTER_ID,@BRANCH_ID,@DEPT_ID,@COST_AMOUNT,@COST_RATE,@COST_MONTH,NULL, NULL,0,0,@EXP_ACCTNO,@NOTE,@RECORD_STATUS ,@p_AUTH_STATUS ,@p_MAKER_ID ,
CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_EDITOR_ID, CONVERT(DATETIME,@p_EDITOR_DT,103),@p_CHECKER_ID ,
CONVERT(DATETIME, @p_APPROVE_DT, 103))
IF @@Error <> 0 GOTO ABORT
FETCH NEXT FROM XmlData INTO @BRANCH_ID,@DEPT_ID,@COST_AMOUNT,@COST_RATE,@EXP_ACCTNO,@NOTE,@COST_MONTH,@RECORD_STATUS
END
CLOSE XmlData
DEALLOCATE XmlData
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @l_COST_MASTER_ID,
'INSERT',
@p_MAKER_ID,
GETDATE(),
N'Giao dịch viên tạo phiếu phân bố thành công' ,
N'Tạo mới phiếu phân bố'
)
COMMIT TRANSACTION
SELECT '0' as Result, @l_COST_MASTER_ID COS_ID ,'' ErrorDesc
RETURN '0'
ABORT:
BEGIN
CLOSE XmlData
DEALLOCATE XmlData
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' COS_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(150)
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, ASS_CONTRACT_CODE, PL
)
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, @ASS_CONTRACT_CODE, @PL_CODE
)
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].[fn_XUAT_KHO]'
GO
ALTER FUNCTION [dbo].[fn_XUAT_KHO](
@sp_Fromdate VARCHAR(20) = NULL,
@sp_Todate VARCHAR(20) = NULL,
@sp_DVSD VARCHAR(15) = NULL,
@sp_NSD VARCHAR(15) = NULL,
@sp_CCLD_Type varchar(15) = NULL,
@sp_Supplier varchar(15) = NULL,
@sp_BRANCH_ID VARCHAR(15) = NULL,
@sp_BRANCH_LOGIN VARCHAR(15) = NULL,
@sp_LEVEL VARCHAR(10) = 'ALL',
@sp_PriceFrom varchar(15) = Null,
@sp_PriceTo varchar(15) = null,
@sp_Dep_ID VARCHAR(15)= NULL
)
RETURNS @returnTable TABLE
(
STT DECIMAL(18,0),
MA_CCLD VARCHAR(15),
TEN_CCLD nvarchar(200),
NGAYNHAP_KHO DATETIME,
NGAYXUAT_KHO DATETIME,
NGAY_HACH_TOAN DATETIME,
GIATRI NUMERIC(18,0),
DVSD VARCHAR(15),
TEN_CHINHANH nvarchar(200),
MA_CHINHANH nvarchar(200),
GHI_CHU nvarchar(1000),
NHOM_CCLD_1 nvarchar(200),
NHOM_CCLD_2 nvarchar(200),
NHOM_CCLD_3 nvarchar(200),
NHOM_CCLD_4 nvarchar(200),
MA_NHOM_CCLD_1 VARCHAR(15),
MA_NHOM_CCLD_2 VARCHAR(15),
MA_NHOM_CCLD_3 VARCHAR(15),
MA_DVSD VARCHAR(15),
SERIAL_NO nvarchar(1000),
BUY_DATE_KT DATETIME,
MA_CHI_NHANH_KHO VARCHAR(15),
TEN_CHI_NHANH_KHO nvarchar(200),
UNIT_NAME_CCLD_3 NVARCHAR(100)
)
AS
BEGIN
declare @tmp table(BRANCH_ID varchar(15))
insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@sp_BRANCH_ID)
declare @tmp_login table(BRANCH_ID varchar(15))
insert into @tmp_login SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@sp_BRANCH_LOGIN)
INSERT INTO @returnTable
SELECT
Row_number() over(order by A.ASSET_ID) AS STT,
A.ASSET_CODE MA_CCLD,
A.ASSET_NAME TEN_CCLD,
A.BUY_DATE NGAYNHAP_KHO,
A.USE_DATE NGAYXUAT_KHO,
A.USE_DATE_KT NGAY_HACH_TOAN,
A.BUY_PRICE GIATRI,
CASE WHEN D.BRANCH_CODE IS NULL THEN
(SELECT TOP 1 DEP_CODE FROM CM_DEPARTMENT WHERE DEP_ID = A.DEPT_ID )
WHEN C.BRANCH_TYPE = 'CN' THEN C.BRANCH_CODE
ELSE
D.BRANCH_CODE END AS DVSD,
CASE WHEN D.BRANCH_CODE IS NULL --OR (C.BRANCH_TYPE <> 'PGD' AND C.IS_POTENTIAL = 'N')
THEN
(SELECT TOP 1 DEP_NAME FROM CM_DEPARTMENT WHERE DEP_ID = A.DEPT_ID )
WHEN C.BRANCH_TYPE = 'CN' THEN C.BRANCH_NAME
ELSE
D.BRANCH_NAME END AS TEN_CHINHANH,
-- '' TEN_CHINHANH,
C.BRANCH_NAME MA_CHINHANH,
'' GHI_CHU,
[dbo].[FN_GET_GROUPNAME](A.GROUP_ID,'1') AS NHOM_CCLD_1,
[dbo].[FN_GET_GROUPNAME](A.GROUP_ID,'2') AS NHOM_CCLD_2,
[dbo].[FN_GET_GROUPNAME](A.GROUP_ID,'3') AS NHOM_CCLD_3,
[dbo].[FN_GET_GROUPNAME](A.GROUP_ID,'4') AS NHOM_CCLD_4,
[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'1') AS MA_NHOM_CCLD_1,
[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'2') AS MA_NHOM_CCLD_2,
[dbo].[FN_GET_GROUPCODE](A.GROUP_ID,'3') AS MA_NHOM_CCLD_3,
--'' MA_CHINHANH,
C.BRANCH_CODE MA_DVSD,
A.ASSET_SERIAL_NO AS SERIAL_NO,
A.BUY_DATE_KT,
F.BRANCH_CODE AS MA_CHI_NHANH_KHO,
F.BRANCH_NAME AS TEN_CHI_NHANH_KHO,
G.UNIT_NAME AS UNIT_NAME_CCLD_3
FROM ASS_MASTER A
INNER JOIN ASS_GROUP B ON A.GROUP_ID = B.GROUP_ID
LEFT JOIN CM_UNIT G ON B.UNIT = G.UNIT_ID
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_BRANCH D ON D.BRANCH_ID = C.FATHER_ID
LEFT JOIN CM_EMPLOYEE E ON A.EMP_ID = E.EMP_ID
LEFT JOIN CM_BRANCH F ON A.BRANCH_CREATE=F.BRANCH_ID
WHERE A.RECORD_STATUS = '1' AND A.AUTH_STATUS = 'A'
AND (A.USE_DATE_KT <= CONVERT(datetime, @sp_Todate, 103) OR @sp_Todate IS NULL OR @sp_Todate = '')
AND (A.USE_DATE_KT >= CONVERT(datetime, @sp_Fromdate, 103) OR @sp_Fromdate IS NULL OR @sp_Fromdate = '')
AND A.ENTRY_BOOKED = 'Y'
-- DVSD
AND (A.BRANCH_ID = @sp_DVSD OR @sp_DVSD IS NULL OR @sp_DVSD = '')
-- NHOM TAI SAN
AND (A.GROUP_ID = @sp_CCLD_Type OR @sp_CCLD_Type IS NULL OR @sp_CCLD_Type = '')
-- NHA CUNG CAP
AND (A.SUP_ID = @sp_Supplier OR @sp_Supplier IS NULL OR @sp_Supplier = '')
-- NGUYEN GIA
AND (A.BUY_PRICE >= CONVERT(decimal(18), @sp_PriceFrom) OR @sp_PriceFrom IS NULL OR @sp_PriceFrom = '0' )
AND (A.BUY_PRICE <= CONVERT(decimal(18), @sp_PriceTo) OR @sp_PriceTo IS NULL OR @sp_PriceTo = '0' )
-- PHONG BAN
AND A.AMORT_STATUS <> 'VNM'
AND (A.DEPT_ID = @sp_Dep_ID OR @sp_Dep_ID IS NULL OR @sp_Dep_ID = '')
AND (A.TYPE_ID = 'CCLD')
AND ((@sp_LEVEL = 'ALL' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID from @tmp))
OR (@sp_LEVEL = 'UNIT' AND A.BRANCH_CREATE = @sp_BRANCH_ID) OR @sp_BRANCH_ID = '' OR @sp_BRANCH_ID IS NULL)
AND ((@sp_LEVEL = 'ALL' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID from @tmp_login))
OR (@sp_LEVEL = 'UNIT' AND A.BRANCH_CREATE = @sp_BRANCH_LOGIN) OR @sp_BRANCH_LOGIN = '' OR @sp_BRANCH_LOGIN IS NULL
OR @sp_BRANCH_ID IS NOT NULL OR @sp_BRANCH_ID <> '')
ORDER BY STT
RETURN;
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_ADDNEW_BVB_Upd]'
GO
ALTER PROCEDURE [dbo].[ASS_ADDNEW_BVB_Upd]
@p_ADDNEW_ID varchar(15) = NULL,
@p_BUY_DATE VARCHAR(10) = 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_AMORT_START_DATE varchar(20) = NULL,------------THEM NGAY BD KHAU HAO
@p_AMORT_END_DATE varchar(20) = NULL,------------THEM NGAY BD KHAU HAO
@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_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_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_ADDNEW_DT XML = 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_CONSTRUCT_ID VARCHAR(15) = NULL,
@p_POSTED_STATUS VARCHAR(1) = NULL,
@p_BRANCH_CREATE VARCHAR(15) = NULL,
@p_ACCOUNT_GL VARCHAR(50),
@VAT DECIMAL(18,2),
@PRICE_VAT DECIMAL(18,2),
@p_ADDNEW_PO XML = NULL,
@p_ADDNEW_GD XML = NULL,
--/************ LUCTV ***************/
@p_ASS_PO_ID VARCHAR(15)= NULL,
--@l_ADDNEW_ID VARCHAR(15) = NULL,
@p_PO_CODE VARCHAR(500) = NULL,
@p_INVOICE_NO VARCHAR(500) = NULL,
@p_INVOICE_SYMPOL VARCHAR(500) = NULL,
@p_INVOICE_DT VARCHAR(20) = NULL
--/************ khiemchg ***************/
,@p_CONTRACT_ID VARCHAR(15) NULL
,@p_SUP_ID VARCHAR(15) NULL
,@p_ASS_STATUS VARCHAR(50) NULL
,@p_PL_CODE VARCHAR(150) NULL
,@p_WAR_EXPIRE_DT VARCHAR(50) NULL
,@p_REQ_ID VARCHAR(15) NULL
,@p_REQ_CODE VARCHAR(50) NULL
,@p_PR_CODE VARCHAR(250) NULL
,@p_UNIT VARCHAR(50) NULL
,@p_WIN VARCHAR(1) NULL
,@p_OFFICE VARCHAR(1) NULL
,@p_FORWARD_CONTENT NVARCHAR(MAX) NULL
AS
--DECLARE @l_ADDNEW_ID VARCHAR(15)
DECLARE @l_ADDNEWDT_ID VARCHAR(15)
Declare @hdoc INT
DECLARE @l_ASSET_ID VARCHAR(15)
DECLARE @l_WAR_DT varchar(10)
DECLARE @l_WAR_CONTENT nvarchar(1000)
/************ Vadilation here ***************/
DECLARE @ERRORSYS NVARCHAR(15) = ''
/*** so thang khau hao phai lon hon 0 ************/
IF (@p_AMORT_MONTH < 0)
SET @ERRORSYS = 'ASS-00016'
/***KIEM TRA NEU LA CCLD THI GIA TRI SAU THUE < 30TR ***/
IF @p_TYPE_ID = 'CCLD' AND (ISNULL(@p_BUY_PRICE,0) + ISNULL(@PRICE_VAT,0)) >= 30000000
BEGIN
SELECT 'CCLD01' Result, '' ADDNEW_ID, N'Giá trị CCLĐ sau thuế phải nhỏ hơn 30 triệu.' ErrorDesc
RETURN '-1'
END
IF @ERRORSYS <> ''
BEGIN
SELECT ErrorCode Result, '' ADDNEW_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
RETURN '0'
END
--IF(@p_PO_CODE IS NULL OR @p_PO_CODE ='')
--BEGIN
-- SELECT '-1' Result, '' ASS_PO_ID, N'Số PO không được để trống' ErrorDesc
-- RETURN '-1'
--END
--IF(@p_INVOICE_NO IS NULL OR @p_INVOICE_NO ='')
--BEGIN
-- SELECT '-1' Result, '' ASS_PO_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, '' ASS_PO_ID, N'Ngày hóa đơn không được để trống' ErrorDesc
-- RETURN '-1'
--END
BEGIN TRY
/*******************End validaiton **************/
Exec sp_xml_preparedocument @hdoc Output, @p_ADDNEW_DT
DECLARE AddnewDT CURSOR FOR
SELECT *
FROM OPENXML(@hdoc,'/Root/ADDNEWDT',2)
WITH
(
WAR_DT varchar(15),
WAR_CONTENT nvarchar(1000)
)
OPEN AddnewDT
Exec sp_xml_preparedocument @hdoc Output, @p_ADDNEW_PO
DECLARE AddnewPO CURSOR FOR
SELECT *
FROM OPENXML(@hdoc,'/Root/ADDNEWDT',2)
WITH
(
ADDNEW_PO_ID varchar(15),
PO_ID varchar(15) ,
PO_CODE varchar(15) --,
--INVOICE_NO varchar(200),
--INVOICE_DT VARCHAR(20)
)
Exec sp_xml_preparedocument @hdoc Output, @p_ADDNEW_GD
DECLARE AddnewGD CURSOR FOR
SELECT *
FROM OPENXML(@hdoc,'/Root/ADDNEWDT',2)
WITH
(
TRPO_ID varchar(15),
ADDNEW_GD_ID varchar(15),
GOOD_ID varchar(15),
GOOD_NAME nvarchar(500),
PRICE decimal(18, 0),
VAT decimal(18, 2),
PRICE_VAT decimal(18, 0),
QUANTITY int ,
INVOICE_NO varchar(200),
INVOICE_DT VARCHAR(20),
PO_ID VARCHAR(15)
)
BEGIN TRANSACTION
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 = @p_REQ_CODE AND TRSDD.ASS_GROUP_ID = @p_GROUP_ID AND TRSDD.REQ_DT_TYPE = 'BUYNEW')
IF (@p_ASSET_NAME = '' OR @p_ASSET_NAME IS NULL)
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' ADDNEW_ID, N'Tên tài sản không được để trống.' ErrorDesc
RETURN '-1'
END
IF (@p_REQ_CODE <> '' OR @p_REQ_CODE IS NOT NULL)
BEGIN
IF ((SELECT COUNT(*) FROM TR_REQUEST_SHOP_DOC WHERE REQ_CODE = @p_REQ_CODE) = 0)
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' ADDNEW_ID, N'Số PYC nhập không hợp lệ.' ErrorDesc
RETURN '-1'
END
--kiem tra so luong so voi PYC
IF(@p_QTY > @l_SL_IN_PYC)
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
DECLARE @BRANCH_TYPE VARCHAR(15) = (SELECT CB.BRANCH_TYPE FROM CM_BRANCH CB WHERE CB.BRANCH_ID = @p_BRANCH_CREATE)
DECLARE @BRANCH_TYPE_XSD VARCHAR(15) = (SELECT CB.BRANCH_TYPE FROM CM_BRANCH CB WHERE CB.BRANCH_ID = @p_BRANCH_ID)
IF (@BRANCH_TYPE <> 'HS')
BEGIN
IF (@p_REQ_CODE IS NULL)
BEGIN
--Kiểm tra nếu là đơn vị kinh doanh tạo thì buộc nhập PYC
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' ADDNEW_ID, N'Bạn phải chọn phiếu yêu cầu để thực hiện tạo nhập mới' ErrorDesc
RETURN '-1'
END
END
IF (@BRANCH_TYPE_XSD = 'HS' AND (@p_DEPT_ID IS NULL OR @p_DEPT_ID = ''))
BEGIN
--Kiểm tra nếu là đơn vị Hội sở tạo chọn PYC
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' ADDNEW_ID, N'Bạn phải chọn phòng ban để thực hiện xuất sử dụng' ErrorDesc
RETURN '-1'
END
END
IF(@p_REQ_CODE = '')
BEGIN
SET @p_REQ_CODE = NULL
END
SET @p_REQ_ID = (SELECT REQ_ID FROM TR_REQUEST_SHOP_DOC WHERE REQ_CODE = @p_REQ_CODE)
UPDATE ASS_ADDNEW
SET
[BUY_DATE] = CONVERT(DATETIME, @p_BUY_DATE, 103),
[TYPE_ID] = @p_TYPE_ID,
[GROUP_ID] = @p_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,------------------Them
[EMP_ID] = @p_EMP_ID,--------------------------Them
[DIVISION_ID] = @p_DIVISION_ID,-----------------Them
[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
[BUY_PRICE] = ISNULL(@p_BUY_PRICE, 0),
[AMORT_AMT] = @p_AMORT_AMT,
[AMORT_MONTH] = @p_AMORT_MONTH,
[AMORT_RATE] = @p_AMORT_RATE,
[IS_MULTIPLE] = @p_IS_MULTIPLE,
[QTY] = @p_QTY,
[PO_ID] = @p_PO_ID,
[PD_ID] = @p_PD_ID, --Them de luu chi tiet PO
[REF_ASSET_ID] = @p_REF_ASSET_ID,
[REF_AMORTIZED_AMT] = @p_REF_AMORTIZED_AMT,
[WARRANTY_MONTHS] = @p_WARRANTY_MONTHS,
[NOTES] = @p_NOTES,
[CORE_NOTE] = @p_CORE_NOTE,
[ENTRY_BOOKED] = @p_ENTRY_BOOKED, -- THEM KHI NHAP MOI CO TANG TAI SAN KHONG
[RECORD_STATUS] = @p_RECORD_STATUS,
[AUTH_STATUS] = 'E',
[MAKER_ID] = @p_MAKER_ID,
[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),
[CHECKER_ID] = @p_CHECKER_ID,
[APPROVE_DT] =CASE WHEN @p_APPROVE_DT = '' OR @p_APPROVE_DT IS NULL THEN CONVERT(DATETIME, NULL, 103) ELSE CONVERT(DATETIME, @p_APPROVE_DT, 103) END,
[CONSTRUCT_ID] = @p_CONSTRUCT_ID,----------------Them
[POSTED_STATUS] = @p_POSTED_STATUS,-- THEM 14/04/2014
[BRANCH_CREATE] = @p_BRANCH_CREATE,-- THEM 14/04/2014
[AMORT_END_DATE] = (CASE WHEN @p_AMORT_END_DATE IS NULL OR @p_AMORT_END_DATE = '' THEN CONVERT(DATETIME, NULL, 103) ELSE CONVERT(DATETIME, @p_AMORT_END_DATE, 103) END),
[ACCOUNT_GL] = @p_ACCOUNT_GL,
[VAT] = @VAT,
[PRICE_VAT] = @PRICE_VAT
,CONTRACT_ID = @p_CONTRACT_ID
,SUP_ID = @p_SUP_ID
,ASS_STATUS = @p_ASS_STATUS
,PL_CODE = @p_PL_CODE
,WAR_EXPIRE_DT = CONVERT(DATETIME, @p_WAR_EXPIRE_DT, 103)
,REQ_ID = @p_REQ_ID
,REQ_CODE = @p_REQ_CODE
,PR_CODE = @p_PR_CODE
,UNIT = @p_UNIT
,WIN_CRACK = @p_WIN
,OFFICE_CRACK = @p_OFFICE
,FORWARD_CONTENT = @p_FORWARD_CONTENT
WHERE ADDNEW_ID = @p_ADDNEW_ID
--IF @@Error <> 0 GOTO ABORT
--DELETE truoc khi insert
DELETE ASS_ADDNEW_DT WHERE ADDNEW_ID = @p_ADDNEW_ID
--IF @@Error <> 0 GOTO ABORT
--UPDATE ASS_PO--------
IF(EXISTS (SELECT * FROM ASS_PO WHERE ADDNEW_ID = @p_ADDNEW_ID))
BEGIN
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
END
ELSE
BEGIN
EXEC SYS_CodeMasters_Gen 'ASS_PO', @p_ASS_PO_ID out
INSERT INTO ASS_PO VALUES (@p_ASS_PO_ID,@p_ADDNEW_ID,@p_PO_CODE,@p_INVOICE_NO,CONVERT(DATETIME,@p_INVOICE_DT,103),NULL,'1','A',@p_MAKER_ID,CONVERT(DATETIME, @p_CREATE_DT, 103),@p_CHECKER_ID,CONVERT(DATETIME, @p_APPROVE_DT, 103),@p_BRANCH_CREATE, @p_INVOICE_SYMPOL)
END
--insert lai van bang ASS_ADDNEW
FETCH NEXT FROM AddnewDT INTO @l_WAR_DT, @l_WAR_CONTENT
WHILE @@FETCH_STATUS = 0
BEGIN
IF(NOT EXISTS (SELECT * FROM ASS_WARRANTY_DT WHERE ASSET_ID=@l_ASSET_ID AND CONVERT(DATE,WAR_DT, 103) = CONVERT(DATE,@l_WAR_DT,103)))
BEGIN
EXEC SYS_CodeMasters_Gen 'ASS_ADDNEW_DT', @l_ADDNEWDT_ID out
INSERT INTO ASS_ADDNEW_DT(ADDNEWDT_ID, ADDNEW_ID , WAR_DT, WAR_CONTENT)
VALUES(@l_ADDNEWDT_ID, @p_ADDNEW_ID, CONVERT(DATETIME, @l_WAR_DT, 103), @l_WAR_CONTENT)
END
--EXEC SYS_CodeMasters_Gen 'ASS_ADDNEW_DT', @l_ADDNEWDT_ID out
----IF @l_ADDNEWDT_ID='' OR @l_ADDNEWDT_ID IS NULL GOTO ABORT
--INSERT INTO ASS_ADDNEW_DT(ADDNEWDT_ID, ADDNEW_ID , WAR_DT, WAR_CONTENT)
--VALUES(@l_ADDNEWDT_ID, @p_ADDNEW_ID, CONVERT(DATETIME, @l_WAR_DT, 103), @l_WAR_CONTENT)
--IF @@Error <> 0 GOTO ABORT
FETCH NEXT FROM AddnewDT INTO @l_WAR_DT, @l_WAR_CONTENT
PRINT @l_WAR_DT
END
CLOSE AddnewDT
DEALLOCATE AddnewDT
--XOA TRUOC KHI INSERT
DELETE ASS_ADDNEW_PO WHERE ADDNEW_ID = @p_ADDNEW_ID
--INSERT DANH SACH PO
DECLARE @PO_ID varchar(15) , @ADD_PO_ID VARCHAR(15),
@PO_CODE varchar(15) ,
@INVOICE_NO varchar(200),
@INVOICE_DT VARCHAR(20)
OPEN AddnewPO
FETCH NEXT FROM AddnewPO INTO @ADD_PO_ID, @PO_ID, @PO_CODE
WHILE @@FETCH_STATUS = 0
BEGIN
IF @ADD_PO_ID IS NULL OR @ADD_PO_ID = ''
BEGIN
EXEC SYS_CodeMasters_Gen 'ASS_ADDNEW_PO', @ADD_PO_ID out
END
INSERT INTO ASS_ADDNEW_PO VALUES (@ADD_PO_ID,@p_ADDNEW_ID, @PO_ID, @PO_CODE,'',NULL, '',@p_INVOICE_SYMPOL)
FETCH NEXT FROM AddnewPO INTO @ADD_PO_ID, @PO_ID, @PO_CODE
END
CLOSE AddnewPO
DEALLOCATE AddnewPO
--XOA TRUOC KHI INSERT
DELETE ASS_ADDNEW_GD WHERE ADDNEW_ID = @p_ADDNEW_ID
--INSERT DANH SACH THAM CHIEU HANG HOA
DECLARE @GOOD_ID varchar(15), @ADD_GD_ID VARCHAR(15),@TRPO_ID varchar(15),
@GOOD_NAME nvarchar(500),
@PRICE decimal(18, 0),
@VAT_DT decimal(18, 2),
@PRICE_VAT_DT decimal(18, 0), @GD_PO_ID VARCHAR(15),
@QUANTITY int
OPEN AddnewGD
FETCH NEXT FROM AddnewGD INTO @TRPO_ID, @ADD_GD_ID, @GOOD_ID, @GOOD_NAME, @PRICE, @VAT_DT, @PRICE_VAT_DT, @QUANTITY, @INVOICE_NO, @INVOICE_DT, @GD_PO_ID
WHILE @@FETCH_STATUS = 0
BEGIN
IF @ADD_GD_ID IS NULL OR @ADD_GD_ID = ''
BEGIN
EXEC SYS_CodeMasters_Gen 'ASS_ADDNEW_GD', @ADD_GD_ID out
END
IF @INVOICE_DT = '' SET @INVOICE_DT = NULL
INSERT INTO ASS_ADDNEW_GD VALUES (@ADD_GD_ID,@p_ADDNEW_ID, @TRPO_ID, @GOOD_ID, @GOOD_NAME, @PRICE, @VAT_DT, @PRICE_VAT_DT, @QUANTITY, '', @INVOICE_NO,CONVERT(DATETIME, @INVOICE_DT, 103),@GD_PO_ID,@p_INVOICE_SYMPOL)
FETCH NEXT FROM AddnewGD INTO @TRPO_ID, @ADD_GD_ID, @GOOD_ID, @GOOD_NAME, @PRICE, @VAT_DT, @PRICE_VAT_DT, @QUANTITY, @INVOICE_NO, @INVOICE_DT, @GD_PO_ID
END
CLOSE AddnewGD
DEALLOCATE AddnewGD
-- 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,
CONVERT(DATETIME, GETDATE(), 103),
N'Nhân viên cập nhật phiếu' ,
N'Cập nhật phiếu nhập mới thành công'
)
COMMIT TRANSACTION
SELECT '0' as Result, @p_ADDNEW_ID ADDNEW_ID, '' ErrorDesc
RETURN '0'
--ABORT:
--BEGIN
-- ROLLBACK TRANSACTION
-- --CLOSE AddnewDT
-- --DEALLOCATE AddnewDT
-- --CLOSE AddnewPO
-- --DEALLOCATE AddnewPO
-- --CLOSE AddnewGD
-- --DEALLOCATE AddnewGD
-- SELECT '-1' as Result, '' ADDNEW_ID, ERROR_MESSAGE() ErrorDesc
-- RETURN '-1'
--End
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
IF CURSOR_STATUS('global','AddnewDT') >= -1
BEGIN
CLOSE AddnewDT
DEALLOCATE AddnewDT
END
--IF CURSOR_STATUS('global','AddnewPO') >= -1
--BEGIN
-- CLOSE AddnewPO
-- DEALLOCATE AddnewPO
--END
--IF CURSOR_STATUS('global','AddnewGD') >= -1
--BEGIN
-- CLOSE AddnewGD
-- DEALLOCATE AddnewGD
--END
SELECT '-1' as Result, @p_ADDNEW_ID ADDNEW_ID, ERROR_MESSAGE() ErrorDesc
RETURN '-1'
END CATCH
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 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'Creating [dbo].[CM_DEP_GETALL_CHILD_ID]'
GO
CREATE FUNCTION [dbo].[CM_DEP_GETALL_CHILD_ID] (@DEP_ID NVARCHAR(15))
RETURNS @returnTable TABLE (DEP_ID VARCHAR(20))
AS
BEGIN
DECLARE @TYPE_DEP VARCHAR(50) = (SELECT CD.TYPE FROM CM_DEPARTMENT CD WHERE CD.DEP_ID = @DEP_ID)
IF(@TYPE_DEP = 'K')
BEGIN
INSERT INTO @returnTable (DEP_ID)
SELECT CD.DEP_ID FROM CM_DEPARTMENT CD
WHERE 1=1
AND CD.KHOI_ID=@DEP_ID
UNION
SELECT @DEP_ID
END
IF(@TYPE_DEP = 'TT')
BEGIN
INSERT INTO @returnTable (DEP_ID)
SELECT CD.DEP_ID FROM CM_DEPARTMENT CD
WHERE 1=1
AND CD.FATHER_ID=@DEP_ID
UNION
SELECT @DEP_ID
END
IF(@TYPE_DEP = 'PB')
BEGIN
INSERT INTO @returnTable (DEP_ID) SELECT @DEP_ID
END
RETURN;
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].[TR_REQUEST_SHOP_DOC_Excel]'
GO
ALTER PROCEDURE [dbo].[TR_REQUEST_SHOP_DOC_Excel]
@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
@p_EMP_NAME NVARCHAR(500) = NULL --DO GIAO DIỆN KHÔNG TRUYỀN EMP_ID NÊN GET EMPNAME
AS
BEGIN
--PYC CẤP PHÁT
IF(@p_REQ_TYPE = 'CPTS' OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE = '')
BEGIN
SELECT
ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS STT,
A.REQ_CODE
,AA.PL_CODE
,B.CONTENT AS REQ_TYPE
,FORMAT(A.REQ_DT,'dd/MM/yyyy') AS REQ_DT
,A.REQ_CONTENT
,D.GROUP_CODE
,D.GROUP_NAME
,C.QTY_ETM AS QUANTITY
,E.UNIT_NAME
,(SELECT QTY_ETM FROM TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = A.REQ_ID AND ASS_GROUP_ID = C.ASS_GROUP_ID AND TYPE_XL = 'CPTK') AS QUANTITY_CPTK
,(SELECT QTY_ETM FROM TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = A.REQ_ID AND ASS_GROUP_ID = C.ASS_GROUP_ID AND REQ_DT_TYPE = 'BUYNEW') AS QUANTITY_BUYNEW
,(SELECT QTY_ETM FROM TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = A.REQ_ID AND ASS_GROUP_ID = C.ASS_GROUP_ID AND TYPE_XL = 'CPDC') AS QUANTITY_CPDC
,(SELECT ALLOCATED FROM TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = A.REQ_ID AND ASS_GROUP_ID = C.ASS_GROUP_ID AND TYPE_XL = 'CPTK') AS QUANTITY_EX_CPTK
,(SELECT ALLOCATED FROM TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = A.REQ_ID AND ASS_GROUP_ID = C.ASS_GROUP_ID AND REQ_DT_TYPE = 'BUYNEW') AS QUANTITY_EX_BUYNEW
,(SELECT ALLOCATED FROM TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = A.REQ_ID AND ASS_GROUP_ID = C.ASS_GROUP_ID AND TYPE_XL = 'CPDC') AS QUANTITY_EX_CPDC
,ISNULL(F.BRANCH_CODE + ' - ' + G.DEP_CODE,F.BRANCH_CODE) AS RE_BRANCH_CODE
,ISNULL(F.BRANCH_NAME + ' - ' + G.DEP_NAME,F.BRANCH_NAME) AS RE_BRANCH_NAME
,H.TLFullName AS MAKER_NAME
,J.TLFullName AS CHECKER_NAME
,(SELECT RECEIVE_PERSON FROM TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = A.REQ_ID AND ASS_GROUP_ID = C.ASS_GROUP_ID AND REQ_DT_TYPE = 'ORGINAL') AS RECEIVE_PERSON
,(SELECT RECEIVE_TEL FROM TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = A.REQ_ID AND ASS_GROUP_ID = C.ASS_GROUP_ID AND REQ_DT_TYPE = 'ORGINAL') AS RECEIVE_TEL
,(SELECT RECEIVE_EMAIL FROM TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = A.REQ_ID AND ASS_GROUP_ID = C.ASS_GROUP_ID AND REQ_DT_TYPE = 'ORGINAL') AS RECEIVE_EMAIL
,(SELECT RECEIVE_ADDR FROM TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = A.REQ_ID AND ASS_GROUP_ID = C.ASS_GROUP_ID AND REQ_DT_TYPE = 'ORGINAL') AS RECEIVE_ADDR
,CD.DEP_CODE + ' - ' + CD.DEP_NAME AS DVCM_NAME
,K.RE_CONTENT AS CONTENT_DVCM
,L.NOTES AS CONTENT_APP_DVCM
,A.HO_NOTES
,ISNULL(W.NOTES,(SELECT TOP 1 PP.NOTES FROM PL_PROCESS PP WHERE PP.REQ_ID = A.REQ_ID AND PP.PROCESS_ID = 'TBP_D' ORDER BY PP.ID DESC)) AS CONTENT_APP_TBP
,W.NOTES AS CONTENT_APP_GDDV_QLTS
,R.CONTENT AS STATUS
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN CM_ALLCODE B ON A.REQ_TYPE = B.CDVAL AND B.CDNAME = 'TRREQASSTYPE' AND B.CDTYPE = 'TRREQASSTYPE'
LEFT JOIN CM_ALLCODE R ON R.CDNAME = 'TRREQSTATUS' AND R.CDTYPE = 'STATUS' AND R.CDVAL = A.STATUS
LEFT JOIN TR_REQUEST_SHOP_DOC_DT C ON A.REQ_ID = C.REQ_DOC_ID AND C.REQ_DT_TYPE = 'ORGINAL'
LEFT JOIN ASS_GROUP D ON C.ASS_GROUP_ID = D.GROUP_ID
LEFT JOIN CM_UNIT E ON D.UNIT = E.UNIT_ID
LEFT JOIN CM_BRANCH F ON A.BRANCH_ID = F.BRANCH_ID
LEFT JOIN CM_DEPARTMENT G ON A.DEP_ID = G.DEP_ID
LEFT JOIN PL_REQUEST_PROCESS PRP ON PRP.REQ_ID = A.REQ_ID AND PRP.PROCESS_ID = 'ADDNEW'
LEFT JOIN TL_USER H ON PRP.CHECKER_ID = H.TLNANME
LEFT JOIN PL_REQUEST_PROCESS I ON I.REQ_ID = A.REQ_ID AND I.PROCESS_ID = 'APPNEW'
LEFT JOIN TL_USER J ON I.CHECKER_ID = J.TLNANME
LEFT JOIN TR_REQUEST_SHOP_COSTCENTER K ON K.REQ_ID = A.REQ_ID
LEFT JOIN CM_DEPARTMENT CD ON K.COST_ID = CD.DEP_ID
LEFT JOIN PL_REQUEST_PROCESS L ON L.REQ_ID = A.REQ_ID AND L.PROCESS_ID = 'DVCM_D' AND L.DEP_ID = K.COST_ID
LEFT JOIN PL_REQUEST_PROCESS Q ON A.REQ_ID = Q.REQ_ID AND Q.PROCESS_ID = 'TBP_D'
LEFT JOIN PL_REQUEST_PROCESS W ON A.REQ_ID = W.REQ_ID AND W.PROCESS_ID = 'QLTS_D'
LEFT JOIN ASS_ADDNEW AA ON A.REQ_ID = AA.REQ_ID
WHERE A.REQ_TYPE = 'CPTS'
AND (A.REQ_CODE 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 (@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 (@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( H.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_EMP_NAME + N'%' COLLATE Latin1_general_CI_AI OR H.TLNANME 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 (@p_STATUS IS NULL OR @p_STATUS = '' OR A.STATUS = @p_STATUS)
ORDER BY A.REQ_CODE
END
ELSE
BEGIN
SELECT '' AS REQ_CODE
END
--PYC ĐIỀU CHUYỂN
IF(@p_REQ_TYPE = 'DCTS' OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE = '')
BEGIN
SELECT
ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS STT,
A.REQ_CODE
,NULL AS PL_CODE--AA.PL_CODE
,B.CONTENT AS REQ_TYPE
,FORMAT(A.REQ_DT,'dd/MM/yyyy') AS REQ_DT
,A.REQ_CONTENT
,D.GROUP_CODE
,D.GROUP_NAME
,1 AS QUANTITY --C.QTY_ETM AS QUANTITY
,E.UNIT_NAME
,NULL AS QUANTITY_CPTK
,NULL AS QUANTITY_BUYNEW
,NULL AS QUANTITY_CPDC
,NULL AS QUANTITY_EX_CPTK
,NULL AS QUANTITY_EX_BUYNEW
,NULL AS QUANTITY_EX_CPDC
,ISNULL(F.BRANCH_CODE + ' - ' + G.DEP_CODE,F.BRANCH_CODE) AS RE_BRANCH_CODE
,ISNULL(F.BRANCH_NAME + ' - ' + G.DEP_NAME,F.BRANCH_NAME) AS RE_BRANCH_NAME
,H.TLFullName AS MAKER_NAME
,J.TLFullName AS CHECKER_NAME
,NULL AS RECEIVE_PERSON
,NULL AS RECEIVE_TEL
,NULL AS RECEIVE_EMAIL
,NULL AS RECEIVE_ADDR
,CD.DEP_CODE + ' - ' + CD.DEP_NAME AS DVCM_NAME
,K.RE_CONTENT AS CONTENT_DVCM
,L.NOTES AS CONTENT_APP_DVCM
,A.HO_NOTES
,Q.NOTES AS CONTENT_APP_TBP
,W.NOTES AS CONTENT_APP_GDDV_QLTS
,R.CONTENT AS STATUS
-----------------
,AM.ASSET_CODE
,AM.ASSET_NAME
,C.REASON
,BR_OLD.BRANCH_CODE + ' - ' + BR_OLD.BRANCH_NAME AS DV_SD
,K_OLD.DEP_CODE + ' - ' + K_OLD.DEP_NAME AS KHOI_SD
,TT_OLD.DEP_CODE + ' - ' + TT_OLD.DEP_NAME AS TT_SD
,PB_OLD.DEP_CODE + ' - ' + PB_OLD.DEP_NAME AS PB_SD
,EMP_OLD.EMP_CODE + ' - ' + EMP_OLD.EMP_NAME AS EMP_SD
,BR_OLD.BRANCH_CODE + ' - ' + BR_OLD.BRANCH_NAME AS DV_NHAN
,K_RECEI.DEP_CODE + ' - ' + K_RECEI.DEP_NAME AS KHOI_NHAN
,TT_RECEI.DEP_CODE + ' - ' + TT_RECEI.DEP_NAME AS TT_NHAN
,PB_RECEI.DEP_CODE + ' - ' + PB_RECEI.DEP_NAME AS PB_NHAN
,EMP_RECEI.EMP_CODE + ' - ' + EMP_RECEI.EMP_NAME AS EMP_NHAN
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN CM_ALLCODE B ON A.REQ_TYPE = B.CDVAL AND B.CDNAME = 'TRREQASSTYPE' AND B.CDTYPE = 'TRREQASSTYPE'
LEFT JOIN CM_ALLCODE R ON R.CDNAME = 'TRREQSTATUS' AND R.CDTYPE = 'STATUS' AND R.CDVAL = A.STATUS
LEFT JOIN TR_REQUEST_SHOP_DOC_DT C ON A.REQ_ID = C.REQ_DOC_ID
LEFT JOIN ASS_MASTER AM ON C.ASS_ID = AM.ASSET_ID
LEFT JOIN ASS_GROUP D ON AM.GROUP_ID = D.GROUP_ID
LEFT JOIN CM_UNIT E ON D.UNIT = E.UNIT_ID
LEFT JOIN CM_BRANCH F ON A.BRANCH_ID = F.BRANCH_ID
LEFT JOIN CM_DEPARTMENT G ON A.DEP_ID = G.DEP_ID
LEFT JOIN TL_USER H ON A.MAKER_ID = H.TLNANME
LEFT JOIN PL_REQUEST_PROCESS I ON I.REQ_ID = A.REQ_ID AND I.PROCESS_ID = 'APPNEW'
LEFT JOIN TL_USER J ON I.CHECKER_ID = J.TLNANME
LEFT JOIN TR_REQUEST_SHOP_COSTCENTER K ON K.REQ_ID = A.REQ_ID
LEFT JOIN CM_DEPARTMENT CD ON K.COST_ID = CD.DEP_ID
LEFT JOIN PL_REQUEST_PROCESS L ON L.REQ_ID = A.REQ_ID AND L.PROCESS_ID = 'DVCM_D' AND L.DEP_ID = K.COST_ID
LEFT JOIN PL_REQUEST_PROCESS Q ON A.REQ_ID = Q.REQ_ID AND Q.PROCESS_ID = 'TBP_D'
LEFT JOIN PL_REQUEST_PROCESS W ON A.REQ_ID = W.REQ_ID AND W.PROCESS_ID = 'QLTS_D'
LEFT JOIN CM_BRANCH BR_OLD ON C.BRANCH_OLD = BR_OLD.BRANCH_ID
LEFT JOIN CM_DEPARTMENT K_OLD ON C.SUBBRANCH_OLD = K_OLD.DEP_ID
LEFT JOIN CM_DEPARTMENT TT_OLD ON C.FATHER_OLD = TT_OLD.DEP_ID
LEFT JOIN CM_DEPARTMENT PB_OLD ON C.DEP_OLD = PB_OLD.DEP_ID
LEFT JOIN CM_EMPLOYEE EMP_OLD ON C.EMP_ID = EMP_OLD.EMP_ID
LEFT JOIN CM_BRANCH BR_RECEI ON C.RECEIVE_BRANCH = BR_RECEI.BRANCH_ID
LEFT JOIN CM_DEPARTMENT K_RECEI ON C.RECEIVE_SUBBRANCH = K_RECEI.DEP_ID
LEFT JOIN CM_DEPARTMENT TT_RECEI ON C.RECEIVE_FATHER = TT_RECEI.DEP_ID
LEFT JOIN CM_DEPARTMENT PB_RECEI ON C.RECEIVE_DEP = PB_RECEI.DEP_ID
LEFT JOIN CM_EMPLOYEE EMP_RECEI ON C.RECEIVE_PERSON = EMP_RECEI.EMP_ID
WHERE A.REQ_TYPE = 'DCTS'
AND (A.REQ_CODE 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 (@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 (@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( H.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_EMP_NAME + N'%' COLLATE Latin1_general_CI_AI OR H.TLNANME 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 (@p_STATUS IS NULL OR @p_STATUS = '' OR A.STATUS = @p_STATUS)
ORDER BY A.REQ_CODE
END
ELSE
BEGIN
SELECT '' AS REQ_CODE
END
--PYC SỬA CHỮA
IF(@p_REQ_TYPE = 'SC' OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE = '')
BEGIN
SELECT
ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS STT,
A.REQ_CODE
,NULL AS PL_CODE--AA.PL_CODE
,B.CONTENT AS REQ_TYPE
,FORMAT(A.REQ_DT,'dd/MM/yyyy') AS REQ_DT
,A.REQ_CONTENT
,D.GROUP_CODE
,D.GROUP_NAME
,1 AS QUANTITY --C.QTY_ETM AS QUANTITY
,E.UNIT_NAME
,NULL AS QUANTITY_CPTK
,NULL AS QUANTITY_BUYNEW
,NULL AS QUANTITY_CPDC
,NULL AS QUANTITY_EX_CPTK
,NULL AS QUANTITY_EX_BUYNEW
,NULL AS QUANTITY_EX_CPDC
,ISNULL(F.BRANCH_CODE + ' - ' + G.DEP_CODE,F.BRANCH_CODE) AS RE_BRANCH_CODE
,ISNULL(F.BRANCH_NAME + ' - ' + G.DEP_NAME,F.BRANCH_NAME) AS RE_BRANCH_NAME
,H.TLFullName AS MAKER_NAME
,J.TLFullName AS CHECKER_NAME
,NULL AS RECEIVE_PERSON
,NULL AS RECEIVE_TEL
,NULL AS RECEIVE_EMAIL
,NULL AS RECEIVE_ADDR
,CD.DEP_CODE + ' - ' + CD.DEP_NAME AS DVCM_NAME
,K.RE_CONTENT AS CONTENT_DVCM
,L.NOTES AS CONTENT_APP_DVCM
,A.HO_NOTES
,Q.NOTES AS CONTENT_APP_TBP
,W.NOTES AS CONTENT_APP_GDDV_QLTS
,R.CONTENT AS STATUS
-----------------
,AM.ASSET_CODE
,AM.ASSET_NAME
,C.REPAIR_REASON AS REASON
,BR_OLD.BRANCH_CODE + ' - ' + BR_OLD.BRANCH_NAME AS DV_SD
,K_OLD.DEP_CODE + ' - ' + K_OLD.DEP_NAME AS KHOI_SD
,TT_OLD.DEP_CODE + ' - ' + TT_OLD.DEP_NAME AS TT_SD
,PB_OLD.DEP_CODE + ' - ' + PB_OLD.DEP_NAME AS PB_SD
,EMP_OLD.EMP_CODE + ' - ' + EMP_OLD.EMP_NAME AS EMP_SD
,FORMAT(AN.WAR_EXPIRE_DT,'dd/MM/yyyy') AS WAR_EXPIRE_DT--Ngày hết hạn bảo hành
,FORMAT(AM.USE_DATE,'dd/MM/yyyy') AS USE_DATE
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN CM_ALLCODE B ON A.REQ_TYPE = B.CDVAL AND B.CDNAME = 'TRREQASSTYPE' AND B.CDTYPE = 'TRREQASSTYPE'
LEFT JOIN CM_ALLCODE R ON R.CDNAME = 'TRREQSTATUS' AND R.CDTYPE = 'STATUS' AND R.CDVAL = A.STATUS
LEFT JOIN TR_REQUEST_SHOP_DOC_DT C ON A.REQ_ID = C.REQ_DOC_ID
LEFT JOIN ASS_MASTER AM ON C.ASS_ID = AM.ASSET_ID
LEFT JOIN ASS_GROUP D ON AM.GROUP_ID = D.GROUP_ID
LEFT JOIN CM_UNIT E ON D.UNIT = E.UNIT_ID
LEFT JOIN CM_BRANCH F ON A.BRANCH_ID = F.BRANCH_ID
LEFT JOIN CM_DEPARTMENT G ON A.DEP_ID = G.DEP_ID
LEFT JOIN TL_USER H ON A.MAKER_ID = H.TLNANME
LEFT JOIN PL_REQUEST_PROCESS I ON I.REQ_ID = A.REQ_ID AND I.PROCESS_ID = 'APPNEW'
LEFT JOIN TL_USER J ON I.CHECKER_ID = J.TLNANME
LEFT JOIN TR_REQUEST_SHOP_COSTCENTER K ON K.REQ_ID = A.REQ_ID
LEFT JOIN CM_DEPARTMENT CD ON K.COST_ID = CD.DEP_ID
LEFT JOIN PL_REQUEST_PROCESS L ON L.REQ_ID = A.REQ_ID AND L.PROCESS_ID = 'DVCM_D' AND L.DEP_ID = K.COST_ID
LEFT JOIN PL_REQUEST_PROCESS Q ON A.REQ_ID = Q.REQ_ID AND Q.PROCESS_ID = 'TBP_D'
LEFT JOIN PL_REQUEST_PROCESS W ON A.REQ_ID = W.REQ_ID AND W.PROCESS_ID = 'QLTS_D'
LEFT JOIN CM_BRANCH BR_OLD ON C.BRANCH_OLD = BR_OLD.BRANCH_ID
LEFT JOIN CM_DEPARTMENT K_OLD ON C.SUBBRANCH_OLD = K_OLD.DEP_ID
LEFT JOIN CM_DEPARTMENT TT_OLD ON C.FATHER_OLD = TT_OLD.DEP_ID
LEFT JOIN CM_DEPARTMENT PB_OLD ON C.DEP_OLD = PB_OLD.DEP_ID
LEFT JOIN CM_EMPLOYEE EMP_OLD ON C.EMP_ID = EMP_OLD.EMP_ID
LEFT JOIN ASS_TRANSACTIONS AT ON AT.ASSET_ID = AM.ASSET_ID AND AT.TRN_TYPE = 'ADD_NEW'
LEFT JOIN ASS_ADDNEW AN ON AT.TRN_ID = AN.ADDNEW_ID AND AT.TRN_TYPE = 'ADD_NEW'
WHERE A.REQ_TYPE = 'SC'
AND (A.REQ_CODE 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 (@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 (@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( H.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_EMP_NAME + N'%' COLLATE Latin1_general_CI_AI OR H.TLNANME 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 (@p_STATUS IS NULL OR @p_STATUS = '' OR A.STATUS = @p_STATUS)
ORDER BY A.REQ_CODE
END
ELSE
BEGIN
SELECT '' AS REQ_CODE
END
--PYC THU HỒI
IF(@p_REQ_TYPE = 'TH' OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE = '')
BEGIN
SELECT
ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS STT,
A.REQ_CODE
,NULL AS PL_CODE--AA.PL_CODE
,B.CONTENT AS REQ_TYPE
,FORMAT(A.REQ_DT,'dd/MM/yyyy') AS REQ_DT
,A.REQ_CONTENT
,D.GROUP_CODE
,D.GROUP_NAME
,1 AS QUANTITY --C.QTY_ETM AS QUANTITY
,E.UNIT_NAME
,NULL AS QUANTITY_CPTK
,NULL AS QUANTITY_BUYNEW
,NULL AS QUANTITY_CPDC
,NULL AS QUANTITY_EX_CPTK
,NULL AS QUANTITY_EX_BUYNEW
,NULL AS QUANTITY_EX_CPDC
,ISNULL(F.BRANCH_CODE + ' - ' + G.DEP_CODE,F.BRANCH_CODE) AS RE_BRANCH_CODE
,ISNULL(F.BRANCH_NAME + ' - ' + G.DEP_NAME,F.BRANCH_NAME) AS RE_BRANCH_NAME
,H.TLFullName AS MAKER_NAME
,J.TLFullName AS CHECKER_NAME
,NULL AS RECEIVE_PERSON
,NULL AS RECEIVE_TEL
,NULL AS RECEIVE_EMAIL
,NULL AS RECEIVE_ADDR
,CD.DEP_CODE + ' - ' + CD.DEP_NAME AS DVCM_NAME
,K.RE_CONTENT AS CONTENT_DVCM
,L.NOTES AS CONTENT_APP_DVCM
,A.HO_NOTES
,Q.NOTES AS CONTENT_APP_TBP
,W.NOTES AS CONTENT_APP_GDDV_QLTS
,R.CONTENT AS STATUS
-----------------
,AM.ASSET_CODE
,AM.ASSET_NAME
,CA.CONTENT AS REASON
,C.REQ_ASSET_CONTENT AS REQ_ASSET_CONTENT
,BR_OLD.BRANCH_CODE + ' - ' + BR_OLD.BRANCH_NAME AS DV_SD
,K_OLD.DEP_CODE + ' - ' + K_OLD.DEP_NAME AS KHOI_SD
,TT_OLD.DEP_CODE + ' - ' + TT_OLD.DEP_NAME AS TT_SD
,PB_OLD.DEP_CODE + ' - ' + PB_OLD.DEP_NAME AS PB_SD
,EMP_OLD.EMP_CODE + ' - ' + EMP_OLD.EMP_NAME AS EMP_SD
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN CM_ALLCODE B ON A.REQ_TYPE = B.CDVAL AND B.CDNAME = 'TRREQASSTYPE' AND B.CDTYPE = 'TRREQASSTYPE'
LEFT JOIN CM_ALLCODE R ON R.CDNAME = 'TRREQSTATUS' AND R.CDTYPE = 'STATUS' AND R.CDVAL = A.STATUS
LEFT JOIN TR_REQUEST_DOC_ASSET_DT C ON A.REQ_ID = C.REQ_DOC_ID
LEFT JOIN ASS_MASTER AM ON C.ASSET_ID = AM.ASSET_ID
LEFT JOIN ASS_GROUP D ON AM.GROUP_ID = D.GROUP_ID
LEFT JOIN CM_UNIT E ON D.UNIT = E.UNIT_ID
LEFT JOIN CM_BRANCH F ON A.BRANCH_ID = F.BRANCH_ID
LEFT JOIN CM_DEPARTMENT G ON A.DEP_ID = G.DEP_ID
LEFT JOIN TL_USER H ON A.MAKER_ID = H.TLNANME
LEFT JOIN PL_REQUEST_PROCESS I ON I.REQ_ID = A.REQ_ID AND I.PROCESS_ID = 'APPNEW'
LEFT JOIN TL_USER J ON I.CHECKER_ID = J.TLNANME
LEFT JOIN TR_REQUEST_SHOP_COSTCENTER K ON K.REQ_ID = A.REQ_ID
LEFT JOIN CM_DEPARTMENT CD ON K.COST_ID = CD.DEP_ID
LEFT JOIN PL_REQUEST_PROCESS L ON L.REQ_ID = A.REQ_ID AND L.PROCESS_ID = 'DVCM_D' AND L.DEP_ID = K.COST_ID
LEFT JOIN PL_REQUEST_PROCESS Q ON A.REQ_ID = Q.REQ_ID AND Q.PROCESS_ID = 'TBP_D'
LEFT JOIN PL_REQUEST_PROCESS W ON A.REQ_ID = W.REQ_ID AND W.PROCESS_ID = 'QLTS_D'
LEFT JOIN CM_BRANCH BR_OLD ON C.BRANCH_OLD = BR_OLD.BRANCH_ID
LEFT JOIN CM_DEPARTMENT K_OLD ON C.SUBBRANCH_OLD = K_OLD.DEP_ID
LEFT JOIN CM_DEPARTMENT TT_OLD ON C.FATHER_OLD = TT_OLD.DEP_ID
LEFT JOIN CM_DEPARTMENT PB_OLD ON C.DEP_OLD = PB_OLD.DEP_ID
LEFT JOIN CM_EMPLOYEE EMP_OLD ON C.EMP_OLD = EMP_OLD.EMP_ID
LEFT JOIN CM_ALLCODE CA ON C.REQ_ASSET_REASON = CA.CDVAL AND CA.CDNAME = 'REASON_ASS_REQ' AND CA.CDTYPE = 'REQ_ASSET'
WHERE A.REQ_TYPE = 'TH'
AND (A.REQ_CODE 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 (@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 (@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( H.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_EMP_NAME + N'%' COLLATE Latin1_general_CI_AI OR H.TLNANME 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 (@p_STATUS IS NULL OR @p_STATUS = '' OR A.STATUS = @p_STATUS)
ORDER BY A.REQ_CODE
END
ELSE
BEGIN
SELECT '' AS REQ_CODE
END
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[TR_REQUEST_SHOP_DOC_DT_ByType]'
GO
ALTER PROCEDURE [dbo].[TR_REQUEST_SHOP_DOC_DT_ByType]
@p_REQ_ID varchar(15),
@BRANCH_LOGIN varchar(15) = NULL,
@ASSET_TYPE varchar(15) = NULL,
@p_REQ_DT_TYPE varchar(50) = NULL
AS
DECLARE @l_CCLD_VALUE decimal(18,0) = 0
SET @l_CCLD_VALUE = (SELECT ParaValue FROM SYS_PARAMETERS WHERE ParaKey = 'ASSET_VALUE')
IF @@ERROR <> 0 SET @l_CCLD_VALUE = 0
--IF(@p_REQ_DT_TYPE = 'DTCP')
--BEGIN
SELECT
A.REQDT_ID,
A.REQ_DOC_ID,
A.PLAN_ID,
'MM' AS PLAN_NAME,
A.TRADE_ID,
A.ASS_GROUP_ID,
A.DESCRIPTION,
A.REASON,
A.UNIT_ID,
A.QUANTITY,
A.PRICE,
A.TOTAL_AMT,
A.NOTES,
A.RECEIVE_BRANCH,
A.RECEIVE_ADDR,
A.RECEIVE_PERSON,
A.RECEIVE_TEL,
A.RECORD_STATUS,
A.MAKER_ID,
A.CREATE_DT,
A.AUTH_STATUS,
A.CHECKER_ID,
A.APPROVE_DT,
A.NOTES_DVCM,
A.QUANTITY_USE,
A.RECEIVE_SUBBRANCH,
A.RECEIVE_DEP,
A.RECEIVE_EMAIL,
A.REQ_DT_TYPE,A.TYPE_XL, A.PRICE AS PRICE_D,E.BRANCH_CODE, E.BRANCH_ID,E.BRANCH_NAME, C.UNIT_CODE, C.UNIT_ID, C.UNIT_NAME, F.PLAN_CODE, F.PLAN_NAME,
G.BRANCH_CODE AS R_BRANCH_CODE, G.BRANCH_NAME AS R_BRANCH_NAME,A.QTY_ETM,A.EMP_CODE, EMP.EMP_ID,EMP.EMP_NAME,
AG.GROUP_CODE AS ASS_GROUP_CODE,
AG.GROUP_NAME AS ASS_GROUP_NAME,
ISNULL(CK.DEP_CODE,CB.BRANCH_CODE) AS R_SUBBRANCH_CODE
,ISNULL(CK.DEP_NAME,CB.BRANCH_NAME) R_SUBBRANCH_NAME,
CD.DEP_CODE AS R_DEP_CODE,CD.DEP_NAME AS R_DEP_NAME
,AG.DVCM_ID AS ID_DVCM, A.ASS_ID,AM.ASSET_CODE AS ASS_CODE, AM.ASSET_NAME AS ASS_NAME, AM.ASSET_SERIAL_NO, AM.USE_DATE
, AM.ASS_STATUS_DESC AS REQ_ASSET_REASON
, EM.STATUS_NAME AS REQ_ASSET_CONTENT
FROM TR_REQUEST_SHOP_DOC_DT A
LEFT JOIN CM_UNIT C On A.UNIT_ID=C.UNIT_ID
LEFT JOIN dbo.TR_REQUEST_SHOP_DOC R ON R.REQ_ID=A.REQ_DOC_ID
LEFT JOIN PL_MASTER F ON F.PLAN_ID = A.PLAN_ID
LEFT JOIN CM_BRANCH E ON E.BRANCH_ID = R.BRANCH_ID
LEFT JOIN CM_BRANCH G ON G.BRANCH_ID = A.RECEIVE_BRANCH
LEFT JOIN CM_EMPLOYEE EMP ON EMP.EMP_ID = A.EMP_ID
LEFT JOIN ASS_GROUP AG ON A.ASS_GROUP_ID = AG.GROUP_ID
LEFT JOIN dbo.CM_DEPARTMENT CK ON CK.DEP_ID=A.RECEIVE_SUBBRANCH AND CK.KHOI_ID = 'K'
LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=A.RECEIVE_SUBBRANCH
LEFT JOIN dbo.CM_DEPARTMENT CD ON CD.DEP_ID=A.RECEIVE_DEP
LEFT JOIN ASS_MASTER AM ON AM.ASSET_ID = A.ASS_ID
LEFT JOIN ASS_STATUS EM ON AM.ASS_STATUS = EM.STATUS_ID
WHERE A.REQ_DOC_ID=@p_REQ_ID AND (A.RECEIVE_BRANCH = @BRANCH_LOGIN OR @BRANCH_LOGIN IS NULL OR @BRANCH_LOGIN = '')
--AND ((@ASSET_TYPE = 'TSCD' AND A.PRICE >= @l_CCLD_VALUE) OR (@ASSET_TYPE = 'CCLD' AND A.PRICE < @l_CCLD_VALUE) OR @ASSET_TYPE IS NULL OR @ASSET_TYPE = '')
AND A.REQ_DT_TYPE = 'ORGINAL'
ORDER BY A.CREATE_DT DESC
SELECT
A.REQDT_ID,
A.REQ_DOC_ID,
A.PLAN_ID,
A.TRADE_ID,
A.ASS_GROUP_ID,
A.DESCRIPTION,
A.REASON,
A.UNIT_ID,
A.QUANTITY,
A.PRICE,
A.TOTAL_AMT,
A.NOTES,
A.RECEIVE_BRANCH,
A.RECEIVE_ADDR,
A.RECEIVE_PERSON,
A.RECEIVE_TEL,
A.RECORD_STATUS,
A.MAKER_ID,
A.CREATE_DT,
A.AUTH_STATUS,
A.CHECKER_ID,
A.APPROVE_DT,
A.NOTES_DVCM,
A.QUANTITY_USE,
A.RECEIVE_SUBBRANCH,
A.RECEIVE_DEP,
A.RECEIVE_EMAIL,
A.REQ_DT_TYPE,A.TYPE_XL, A.PRICE AS PRICE_D,E.BRANCH_CODE, E.BRANCH_ID,E.BRANCH_NAME, C.UNIT_CODE, C.UNIT_ID, C.UNIT_NAME, F.PLAN_CODE, F.PLAN_NAME,
G.BRANCH_CODE AS R_BRANCH_CODE, G.BRANCH_NAME AS R_BRANCH_NAME,A.QTY_ETM,A.EMP_CODE, EMP.EMP_ID,EMP.EMP_NAME,
AG.GROUP_CODE AS ASS_GROUP_CODE,
AG.GROUP_NAME AS ASS_GROUP_NAME,
ISNULL(CK.DEP_CODE,CB.BRANCH_CODE) AS R_SUBBRANCH_CODE
,ISNULL(CK.DEP_NAME,CB.BRANCH_NAME) R_SUBBRANCH_NAME,
CD.DEP_CODE AS R_DEP_CODE,CD.DEP_NAME AS R_DEP_NAME
,AG.DVCM_ID AS ID_DVCM
FROM TR_REQUEST_SHOP_DOC_DT A
LEFT JOIN CM_UNIT C On A.UNIT_ID=C.UNIT_ID
LEFT JOIN dbo.TR_REQUEST_SHOP_DOC R ON R.REQ_ID=A.REQ_DOC_ID
LEFT JOIN PL_MASTER F ON F.PLAN_ID = A.PLAN_ID
LEFT JOIN CM_BRANCH E ON E.BRANCH_ID = R.BRANCH_ID
LEFT JOIN CM_BRANCH G ON G.BRANCH_ID = A.RECEIVE_BRANCH
LEFT JOIN CM_EMPLOYEE EMP ON EMP.EMP_ID = A.EMP_ID
LEFT JOIN ASS_GROUP AG ON A.ASS_GROUP_ID = AG.GROUP_ID
LEFT JOIN dbo.CM_DEPARTMENT CK ON CK.DEP_ID=A.RECEIVE_SUBBRANCH AND CK.KHOI_ID = 'K'
LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=A.RECEIVE_SUBBRANCH
LEFT JOIN dbo.CM_DEPARTMENT CD ON CD.DEP_ID=A.RECEIVE_DEP
LEFT JOIN CM_ALLCODE CA ON A.TYPE_XL = CA.CDVAL AND CA.CDTYPE = 'TRREQDTTYPE'
WHERE A.REQ_DOC_ID=@p_REQ_ID AND (A.RECEIVE_BRANCH = @BRANCH_LOGIN OR @BRANCH_LOGIN IS NULL OR @BRANCH_LOGIN = '')
AND (A.REQ_DT_TYPE = 'BUYNEW' OR A.REQ_DT_TYPE = 'XKSD')
ORDER BY A.CREATE_DT DESC
--END
--ELSE
--BEGIN
SELECT
A.REQDT_ID,
A.REQ_DOC_ID,
A.PLAN_ID,
'MM' AS PLAN_NAME,
A.TRADE_ID,
A.ASS_GROUP_ID,
A.DESCRIPTION,
A.REASON,
A.UNIT_ID,
A.QUANTITY,
A.PRICE,
A.TOTAL_AMT,
A.NOTES,
A.RECEIVE_BRANCH,
A.RECEIVE_ADDR,
A.RECEIVE_PERSON,
A.RECEIVE_TEL,
A.RECORD_STATUS,
A.MAKER_ID,
A.CREATE_DT,
A.AUTH_STATUS,
A.CHECKER_ID,
A.APPROVE_DT,
A.NOTES_DVCM,
A.QUANTITY_USE,
A.RECEIVE_SUBBRANCH,
A.RECEIVE_DEP,
A.RECEIVE_EMAIL,
A.REQ_DT_TYPE,A.TYPE_XL, A.PRICE AS PRICE_D,E.BRANCH_CODE, E.BRANCH_ID,E.BRANCH_NAME, C.UNIT_CODE, C.UNIT_ID, C.UNIT_NAME, F.PLAN_CODE, F.PLAN_NAME,
G.BRANCH_CODE AS R_BRANCH_CODE, G.BRANCH_NAME AS R_BRANCH_NAME,A.QTY_ETM,A.EMP_CODE, EMP.EMP_ID,EMP.EMP_NAME,
AG.GROUP_CODE AS ASS_GROUP_CODE,
AG.GROUP_NAME AS ASS_GROUP_NAME,
ISNULL(CK.DEP_CODE,CB.BRANCH_CODE) AS R_SUBBRANCH_CODE
,ISNULL(CK.DEP_NAME,CB.BRANCH_NAME) R_SUBBRANCH_NAME,
CD.DEP_CODE AS R_DEP_CODE,CD.DEP_NAME AS R_DEP_NAME
,AG.DVCM_ID AS ID_DVCM, A.ASS_ID,AM.ASSET_CODE AS ASS_CODE, AM.ASSET_NAME AS ASS_NAME, AM.ASSET_SERIAL_NO, AM.USE_DATE
, AM.ASS_STATUS_DESC AS REQ_ASSET_REASON
, EM.STATUS_NAME AS REQ_ASSET_CONTENT
FROM TR_REQUEST_SHOP_DOC_DT A
LEFT JOIN CM_UNIT C On A.UNIT_ID=C.UNIT_ID
LEFT JOIN dbo.TR_REQUEST_SHOP_DOC R ON R.REQ_ID=A.REQ_DOC_ID
LEFT JOIN PL_MASTER F ON F.PLAN_ID = A.PLAN_ID
LEFT JOIN CM_BRANCH E ON E.BRANCH_ID = R.BRANCH_ID
LEFT JOIN CM_BRANCH G ON G.BRANCH_ID = A.RECEIVE_BRANCH
LEFT JOIN CM_EMPLOYEE EMP ON EMP.EMP_ID = A.EMP_ID
LEFT JOIN ASS_GROUP AG ON A.ASS_GROUP_ID = AG.GROUP_ID
LEFT JOIN dbo.CM_DEPARTMENT CK ON CK.DEP_ID=A.RECEIVE_SUBBRANCH AND CK.KHOI_ID = 'K'
LEFT JOIN dbo.CM_BRANCH CB ON CB.BRANCH_ID=A.RECEIVE_SUBBRANCH
LEFT JOIN dbo.CM_DEPARTMENT CD ON CD.DEP_ID=A.RECEIVE_DEP
LEFT JOIN ASS_MASTER AM ON AM.ASSET_ID = A.ASS_ID
LEFT JOIN ASS_STATUS EM ON AM.ASS_STATUS = EM.STATUS_ID
WHERE A.REQ_DOC_ID=@p_REQ_ID AND (A.RECEIVE_BRANCH = @BRANCH_LOGIN OR @BRANCH_LOGIN IS NULL OR @BRANCH_LOGIN = '')
--AND ((@ASSET_TYPE = 'TSCD' AND A.PRICE >= @l_CCLD_VALUE) OR (@ASSET_TYPE = 'CCLD' AND A.PRICE < @l_CCLD_VALUE) OR @ASSET_TYPE IS NULL OR @ASSET_TYPE = '')
AND A.REQ_DT_TYPE = 'ASSET_BROKEN'
ORDER BY A.CREATE_DT DESC
--END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_UPDATE_App]'
GO
ALTER PROCEDURE [dbo].[ASS_UPDATE_App]
@p_UPDATE_ID varchar(15),
@P_AUTH_STATUS VARCHAR(1),
@p_CHECKER_ID VARCHAR(100),
@p_APPROVE_DT varchar(20)
AS
BEGIN TRY
DECLARE @ERRORSYS NVARCHAR(15) = '', @ERROR NVARCHAR(500) = ''
declare @l_ASSHIST_ID varchar(15)
declare @l_ASSET_ID varchar(15)
declare @l_TYPE_ID nvarchar(15)
DECLARE @l_MAKER_ID varchar(100)
DECLARE @l_BRANCH_CREATE VARCHAR(15), @l_BRANCH_ID VARCHAR(15),@l_DEP_ID VARCHAR(15)
declare @l_NEW_GROUP_ID varchar(15), @l_OLD_GROUP_ID varchar(15)
declare @l_NEW_ASSET_NAME nvarchar(1000)--, @l_OLD_ASSET_NAME nvarchar(1000)
declare @l_NEW_ASSET_SERIAL_NO nvarchar(100)--, @l_OLD_ASSET_SERIAL_NO nvarchar(100)
declare @l_NEW_ASSET_DESC nvarchar(max)--, @l_OLD_ASSET_DESC nvarchar(max)
declare @l_NEW_BUY_PRICE decimal(18,0), @l_OLD_BUY_PRICE decimal(18,0)
declare @l_NEW_AMORT_AMT decimal(18,0), @l_OLD_AMORT_AMT decimal(18,0)
declare @l_NEW_AMORT_MONTH decimal(18,2), @l_OLD_AMORT_MONTH decimal(18,2)
declare @l_AMORTIZED_MONTH decimal(18,2), @l_AMORTIZED_AMT decimal(18,0)
declare @l_SPECIAL_ASS varchar(1)
DECLARE @l_AMORT_STATUS VARCHAR(15), @L_AMORT_RATE DECIMAL(18,2)
DECLARE @l_AMORT_START_DATE datetime, @l_AMORT_END_DATE datetime
DECLARE @l_NEW_FIRST_AMORT_AMT numeric(18,0), @l_OLD_FIRST_AMORT_AMT numeric(18,0)
DECLARE @l_NEW_MONTHLY_AMT numeric(18,0), @l_OLD_MONTHLY_AMT numeric(18,0)
declare @l_GROUP_ID_UPD varchar(1) = 'N'
declare @l_AMORT_AMT_UPD varchar(1) = 'N', @l_AMORT_MONTH_UPD VARCHAR(1) = 'N'
declare @l_DO_BRANCH_ID varchar(15)
DECLARE @l_VALUE_ID varchar(15)
DECLARE @l_HO_BRN_ID varchar(15)
declare @l_ET_ID varchar(15)
DECLARE @sToday varchar(10) = convert(varchar(10), getdate(), 103)
declare @l_TRN_REF_NO varchar(20)
DECLARE @l_SUPPEND_GL varchar(50)
DECLARE @l_ASSET_GL varchar(50), @l_AMORT_ACCTNO VARCHAR(50)
declare @l_ASSET_VALUE decimal(18,0)
declare @l_CORE_NOTE NVARCHAR(500)
DECLARE @l_DATE1 DATE,@l_DATE2 DATE
DECLARE @l_ASSET_CODE VARCHAR(50) -- KHIEMCHG Bo sung ASSETCODE REF cho HACH TOAN
DECLARE @l_TRN_NO VARCHAR(15),@l_MAKER_KT VARCHAR(100)
SET @l_MAKER_KT = (SELECT au.MAKER_ID FROM ASS_UPDATE au WHERE au.UPDATE_ID = @p_UPDATE_ID)
IF(EXISTS(SELECT * FROM ASS_UPDATE WHERE AUTH_STATUS ='A' AND UPDATE_ID=@p_UPDATE_ID))
BEGIN
--ROLLBACK TRANSACTION
SELECT '-1' as Result, '' UPDATE_ID, N'Phiếu cập nhật tài sản đã được duyệt.' ErrorDesc
RETURN '-1'
END
IF(EXISTS(SELECT * FROM ASS_UPDATE WHERE AUTH_STATUS ='E' AND UPDATE_ID=@p_UPDATE_ID))
BEGIN
--ROLLBACK TRANSACTION
SELECT '-1' as Result, '' UPDATE_ID, N'Phiếu cập nhật tài sản chưa hoàn thành thông tin.' ErrorDesc
RETURN '-1'
END
EXEC ENTRIES_POST_GEN_NO @p_BRANCH_ID = @l_MAKER_KT
,@p_TRN_DATE = @p_APPROVE_DT
,@p_KeyGen = @l_TRN_NO OUT
SELECT @l_ASSET_ID = A.ASSET_ID,
@l_NEW_GROUP_ID = A.GROUP_ID,
--@l_NEW_AMORT_MONTH = CASE WHEN M.[TYPE_ID] = 'TSCD' THEN G.AMORT_MONTH ELSE A.AMORT_AMT END,
@l_NEW_AMORT_MONTH = A.AMORT_MONTH,--THIEUVQ 18/04/2014
@l_NEW_ASSET_NAME = A.ASSET_NAME,
@l_NEW_ASSET_SERIAL_NO = A.ASSET_SERIAL_NO,
@l_NEW_ASSET_DESC = A.ASSET_DESC,
@l_NEW_BUY_PRICE = A.BUY_PRICE,
@l_NEW_AMORT_AMT = A.AMORT_AMT, @l_CORE_NOTE = CORE_NOTE,
@l_MAKER_ID = A.MAKER_ID,
@l_SUPPEND_GL = A.ACCOUNT_GL
FROM ASS_UPDATE A
--INNER JOIN ASS_GROUP G on G.GROUP_ID = A.GROUP_ID
INNER JOIN ASS_MASTER M ON M.ASSET_ID = A.ASSET_ID
WHERE UPDATE_ID = @p_UPDATE_ID
SELECT
@l_OLD_GROUP_ID = ISNULL(A.REF_GROUP_ID,A.GROUP_ID),
@l_OLD_AMORT_MONTH = AMORT_MONTH,
@l_AMORTIZED_MONTH = AMORTIZED_MONTH,
--@l_OLD_ASSET_NAME = ASSET_NAME,
--@l_OLD_ASSET_SERIAL_NO = ASSET_SERIAL_NO,
--@l_OLD_ASSET_DESC = ASSET_DESC,
@l_OLD_BUY_PRICE = BUY_PRICE,
@l_OLD_FIRST_AMORT_AMT = FIRST_AMORT_AMT,
@l_OLD_MONTHLY_AMT = A.MONTHLY_AMORT_AMT,
@l_AMORT_START_DATE = AMORT_START_DATE,
@l_AMORT_END_DATE = AMORT_END_DATE,
@l_OLD_AMORT_AMT = AMORT_AMT,
@l_AMORTIZED_AMT = AMORTIZED_AMT,
@l_SPECIAL_ASS = SPECIAL_ASS,
@l_TYPE_ID = TYPE_ID,
@l_AMORT_STATUS = AMORT_STATUS,
@L_AMORT_RATE = AMORT_RATE,
@l_BRANCH_CREATE = A.BRANCH_CREATE,
@l_BRANCH_ID = A.BRANCH_ID,
@l_DEP_ID=A.DEPT_ID,
@l_ASSET_CODE = A.ASSET_CODE
FROM ASS_MASTER A
WHERE ASSET_ID = @l_ASSET_ID
--Lay branch_id cua user duyet
select @l_DO_BRANCH_ID = a.TLSUBBRID from TL_USER a where a.TLNANME = @p_CHECKER_ID
--BRN_ID HOI SO
SELECT @l_HO_BRN_ID = BRANCH_ID FROM CM_BRANCH A WHERE A.BRANCH_TYPE = 'HS'
--Lay suppend GL
---THAY DOI TAI KHOAN HACH TOAN GL THIEUVQ - 09092016
--SET @l_SUPPEND_GL = dbo.fn_replace_acctno(UPPER(@l_SUPPEND_GL) + 'XXXX',@l_DO_BRANCH_ID)
SELECT @l_SUPPEND_GL = A.ParaValue FROM SYS_PARAMETERS A WHERE A.ParaKey='ASSET_SUPPEND_GL'
--ASSET_GL
SELECT @l_ASSET_GL = ASSET_ACCTNO, @l_AMORT_ACCTNO = A.AMORT_ACCTNO FROM ASS_GROUP A WHERE A.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_OLD_GROUP_ID))
IF(@l_ASSET_GL IS NULL OR @l_ASSET_GL = '') SET @l_ASSET_GL = (SELECT ASSET_ACCTNO FROM ASS_GROUP WHERE GROUP_ID = @l_OLD_GROUP_ID)
IF(@l_AMORT_ACCTNO IS NULL OR @l_AMORT_ACCTNO = '') SET @l_AMORT_ACCTNO = (SELECT AMORT_ACCTNO FROM ASS_GROUP WHERE GROUP_ID = @l_OLD_GROUP_ID)
--Validation is here
--Kiem tra so thang khau hao cua nhom moi co lon hon so thang da khau hao ko?
IF (@l_NEW_GROUP_ID <> @l_OLD_GROUP_ID AND @l_NEW_AMORT_MONTH <> @l_OLD_AMORT_MONTH)
BEGIN
--IF @l_NEW_AMORT_MONTH <= @l_AMORTIZED_MONTH
IF @l_NEW_AMORT_MONTH <= @l_AMORTIZED_MONTH AND @l_AMORT_STATUS IN ('CKH','DKH') --thieuvq 18/04/2014
BEGIN
--SET @ERRORSYS = 'ASS-00009'
--CAP NHAT LẠI NGAY KET THUC KHAU HAO --thieuvq 18/04/2014
SET @l_DATE1= CONVERT(DATE,'1/'+CONVERT(VARCHAR(10),MONTH(CONVERT(DATE,@p_APPROVE_DT,103)))
+'/'+CONVERT(VARCHAR(10),YEAR(CONVERT(DATE,@p_APPROVE_DT,103))),103)
SET @l_DATE2 = CONVERT(DATE,'1/'+CONVERT(VARCHAR(10),MONTH(@l_AMORT_END_DATE))
+'/'+CONVERT(VARCHAR(10),YEAR(@l_AMORT_END_DATE)),103)
SET @l_AMORT_END_DATE = DATEADD(MONTH,DATEDIFF(MONTH,@l_DATE2,@l_DATE1),@l_AMORT_END_DATE)
SET @L_AMORT_RATE = ROUND((100.00/@l_NEW_AMORT_MONTH)*12,2)
END
SET @l_GROUP_ID_UPD = 'Y'
END
--Kiem tra gia tri khau hao moi > so tien da khau hao
IF (@l_NEW_AMORT_AMT<=@l_AMORTIZED_AMT AND @l_NEW_AMORT_AMT <> @l_OLD_AMORT_AMT)
BEGIN
SET @ERRORSYS = 'ASS-00014'
END
ELSE
BEGIN
IF (@l_NEW_AMORT_AMT <> @l_OLD_AMORT_AMT)
BEGIN
SET @l_AMORT_AMT_UPD = 'Y'
END
END
---KIEM TRA SO THANG KHAU HAO MOI NHO HON SO THANG DA KHAU HAO KHONG - THIEUVQ 210618 ::BEGIN
IF @l_NEW_AMORT_MONTH < @l_AMORTIZED_MONTH
BEGIN
SET @ERRORSYS = 'ASS-99994'
END
ELSE
BEGIN
IF @l_NEW_AMORT_MONTH <> @l_OLD_AMORT_MONTH
SET @l_AMORT_MONTH_UPD = 'Y'
SET @l_AMORT_END_DATE = DATEADD(MONTH,@l_NEW_AMORT_MONTH,@l_AMORT_START_DATE)
SET @l_AMORT_END_DATE = DATEADD(DAY,-1,@l_AMORT_END_DATE)
END
-----::END
----NEU THAY DOI SO KY KHAU HAO => KIEM TRA CHO TRUONG HOP CCLD
--IF (@l_GROUP_ID_UPD = 'Y' AND @l_TYPE_ID = 'CCLD')
--BEGIN
-- RETURN 0
--END
--Neu co thay doi gia tri khau hao
--IF (@l_TYPE_ID = 'TSCD' AND @l_AMORT_STATUS IN ('CKH','DKH'))
IF @l_AMORT_STATUS IN ('CKH','DKH')
BEGIN
IF (@l_AMORT_AMT_UPD = 'Y' OR @l_AMORT_MONTH_UPD = 'Y')
BEGIN
IF (@l_AMORTIZED_MONTH = 0) --Chua chay khau hao thi phai tinh lai khau hao cua thang dau tien
BEGIN
SET @l_NEW_MONTHLY_AMT = ROUND((@l_NEW_AMORT_AMT - ISNULL(@l_AMORTIZED_AMT,0)) / @l_NEW_AMORT_MONTH, 0)
SET @l_NEW_FIRST_AMORT_AMT = @l_NEW_MONTHLY_AMT--ROUND(@l_NEW_MONTHLY_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
--BAN VIET THAY DOI CACH TINH 230119
--DECLARE @l_NGAY_DUYET DATE = CONVERT(DATE,@p_APPROVE_DT,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 = 'ALL')
-- --AND ASSET_TYPE = 'TSCD')
--BEGIN SET @l_KY_KHAU_HAO_CL = @l_KY_KHAU_HAO_CL - 1 END
SET @l_KY_KHAU_HAO_CL = /*@l_OLD_AMORT_MONTH*/ @l_NEW_AMORT_MONTH - @l_AMORTIZED_MONTH
--SET @l_NEW_MONTHLY_AMT = ROUND((@l_NEW_AMORT_AMT - @l_AMORTIZED_AMT)/ @l_NEW_AMORT_MONTH, -3)
SET @l_NEW_MONTHLY_AMT = ROUND((@l_NEW_AMORT_AMT - @l_AMORTIZED_AMT)/ @l_KY_KHAU_HAO_CL, 0)
SET @l_NEW_FIRST_AMORT_AMT = @l_OLD_FIRST_AMORT_AMT
END
print 'Y'
END
ELSE
BEGIN
SET @l_NEW_FIRST_AMORT_AMT = @l_OLD_FIRST_AMORT_AMT
SET @l_NEW_MONTHLY_AMT= @l_OLD_MONTHLY_AMT
print 'N'
END
END
ELSE
BEGIN
--THIEUVQ- DIEPTT 03092015 TRUONG HOP KHAU HAO XONG NHUNG TANG NGUYEN GIA
--BAT LAI TINH TRANG TAI SAN DANG KHAU HAO VA SE KHAU HAO HET VAO THANG NAY
IF (@l_AMORT_AMT_UPD = 'Y')
BEGIN
SET @l_AMORT_END_DATE = CONVERT(DATETIME,@p_APPROVE_DT,103)
--KIEM TRA NEU NGAY DIEU CHINH DA CHAY KHAU HAO ROI THI CHUYEN KHAU HAO HET VAO THANG SAU
IF EXISTS (SELECT * FROM ASS_AMORT WHERE AMORT_TERM = CONVERT(VARCHAR(5),MONTH(@l_AMORT_END_DATE))+'/'+CONVERT(VARCHAR(5),YEAR(@l_AMORT_END_DATE))
AND ASSET_TYPE = 'ALL')
BEGIN
SET @l_AMORT_END_DATE = DATEADD(MM,1,@l_AMORT_END_DATE )
END
SET @l_AMORT_STATUS = 'DKH'
END
SET @l_NEW_FIRST_AMORT_AMT = @l_OLD_FIRST_AMORT_AMT
SET @l_NEW_MONTHLY_AMT= @l_OLD_MONTHLY_AMT
print 'N'
END
IF @ERRORSYS <> ''
BEGIN
SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
RETURN '0'
END
BEGIN TRANSACTION
--Move to history
--Phat sinh Asset_ID
EXEC SYS_CodeMasters_Gen 'ASS_MASTER_HIST', @l_ASSHIST_ID out
INSERT INTO ASS_MASTER_HIST
SELECT @l_ASSHIST_ID, a.*
FROM ASS_MASTER a
where a.ASSET_ID = @l_ASSET_ID
--Insert bang ASS_LOCATION_HIST
DECLARE @l_LOCHIST_ID varchar(15)
EXEC SYS_CodeMasters_Gen 'ASS_LOCATION_HIST', @l_LOCHIST_ID out
IF @l_LOCHIST_ID='' OR @l_LOCHIST_ID IS NULL GOTO ABORT_ERROR
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_DEP_ID,
'', '', 'Y', NULL
)
IF @@Error <> 0 GOTO ABORT_ERROR
--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, @p_UPDATE_ID, 'ASS_UPDATE', 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_ERROR
UPDATE ASS_MASTER
SET
ASSET_NAME = @l_NEW_ASSET_NAME,
ASSET_DESC = @l_NEW_ASSET_DESC,
ASSET_SERIAL_NO = @l_NEW_ASSET_SERIAL_NO,
BUY_PRICE = @l_NEW_BUY_PRICE,
AMORT_AMT = @l_NEW_AMORT_AMT,
FIRST_AMORT_AMT = @l_NEW_FIRST_AMORT_AMT,
MONTHLY_AMORT_AMT = @l_NEW_MONTHLY_AMT,
APPROVE_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103),
AMORT_END_DATE = @l_AMORT_END_DATE, -- thieuvq them 18/04/2014
AMORT_MONTH = @l_NEW_AMORT_MONTH,
AMORT_RATE = @L_AMORT_RATE,
--THIEUVQ 03092015
AMORT_STATUS = @l_AMORT_STATUS
WHERE ASSET_ID = @l_ASSET_ID
-- SỐ TIỀN CẶP BÚT TOÁN SAU KHI GIẢM NGUYÊN GIÁ
DECLARE @MONTH_OLD_AMORT DECIMAL= (SELECT COUNT(*) FROM ASS_AMORT_DT AAD WHERE YEAR(AAD.AMORT_DT) <> YEAR(CONVERT(DATETIME,@p_APPROVE_DT,103)) AND AAD.ASSET_ID = @l_ASSET_ID)
DECLARE @MONTH_NEW_AMORT DECIMAL= (SELECT COUNT(*) FROM ASS_AMORT_DT AAD WHERE YEAR(AAD.AMORT_DT) = YEAR(CONVERT(DATETIME,@p_APPROVE_DT,103)) AND AAD.ASSET_ID = @l_ASSET_ID)
DECLARE @AMT_OLD_AMORT DECIMAL= (SELECT SUM(AAD.AMORT_AMT) FROM ASS_AMORT_DT AAD WHERE YEAR(AAD.AMORT_DT) <> YEAR(CONVERT(DATETIME,@p_APPROVE_DT,103)) AND AAD.ASSET_ID = @l_ASSET_ID)
DECLARE @_NEW_AMT_AMORT DECIMAL(18,2)
DECLARE @_NEW_AMT_AMORT_RE DECIMAL(18,2)
DECLARE @_NEW_AMT_AMORT_RENEW DECIMAL(18,2)
DECLARE @_NEW_AMT_AMORT_OLD DECIMAL(18,2)
DECLARE @_NEW_AMT_AMORT_LAST DECIMAL(18,2)
DECLARE @_NUM_AMT_AMORT_DT DECIMAL(18,2)
DECLARE @_CUR_DATE DECIMAL(18,2) = CAST((DAY(CONVERT(DATETIME,@p_APPROVE_DT,103))) AS DECIMAL) + 0.00
DECLARE @_END_OF_MONTH DECIMAL(18,2) = DAY(dbo.FN_GetLastDayOfMonth(CONVERT(DATETIME,@p_APPROVE_DT,103)))
--- KHẤU HAO LUỸ KẾ
DECLARE @KH_CUM DECIMAL(18,2) = (SELECT ISNULL(AM.AMORTIZED_AMT,0) FROM ASS_MASTER AM WHERE AM.ASSET_ID = @l_ASSET_ID)
IF(YEAR(@l_AMORT_START_DATE) <> YEAR(CONVERT(DATETIME,@p_APPROVE_DT,103)))
BEGIN
-- Số tiền trích khấu hao của tháng mới theo nguyên giá mới
SET @_NEW_AMT_AMORT = ROUND((@l_NEW_BUY_PRICE - @AMT_OLD_AMORT)/(@l_NEW_AMORT_MONTH-@MONTH_OLD_AMORT),0)
END
ELSE
BEGIN
SET @_NEW_AMT_AMORT = ROUND((@l_NEW_BUY_PRICE - @KH_CUM)/@l_KY_KHAU_HAO_CL,0)
END
-- Số tiền khấu hao theo tháng tròn hiện tại
SELECT @_NEW_AMT_AMORT_RE = AA.TOTAL_AMT FROM ASS_AMORT_DT AAD
LEFT JOIN ASS_AMORT AA ON AAD.AMORT_ID = AA.AMORT_ID
WHERE AAD.ASSET_ID = @l_ASSET_ID AND AA.IS_LEAF = 'Y'
IF(@_NEW_AMT_AMORT_RE IS NULL OR @_NEW_AMT_AMORT_RE = 0)
SET @_NEW_AMT_AMORT_RE = (SELECT ISNULL(AM.AMORTIZED_AMT,0) FROM ASS_MASTER AM WHERE AM.ASSET_ID = @l_ASSET_ID)
-- Số ngày khấu hao còn lại trong khác sau khi update tăng giảm
SET @_NUM_AMT_AMORT_DT = (@_END_OF_MONTH - @_CUR_DATE) + 1.00
-- Số tiền khấu hao theo số ngày còn lại của nguyên giá mới VD: Giảm tài sản A 10tr vào ngày 25-03-2023 thì tính đến cuối tháng là (31 - 25) + (ngày 25 hiện tại) = 7 ngày
--SET @_NEW_AMT_AMORT_RENEW = ROUND(@_NEW_AMT_AMORT/@_END_OF_MONTH,0)*@_NUM_AMT_AMORT_DT
SET @_NEW_AMT_AMORT_RENEW = ROUND((@_NEW_AMT_AMORT-@l_OLD_MONTHLY_AMT)*@MONTH_NEW_AMORT,0)
-- Số tiền khấu hao cũ theo ngày còn lại
--SET @_NEW_AMT_AMORT_OLD = ROUND(@_NEW_AMT_AMORT_RE/@_END_OF_MONTH, 0)*@_NUM_AMT_AMORT_DT
-- Số tiền trích khấu hao cho cặp hạch toán phát sinh tăng giảm
--SET @_NEW_AMT_AMORT_LAST = ROUND(@_NEW_AMT_AMORT_OLD - @_NEW_AMT_AMORT_RENEW,0)
IF (@l_NEW_BUY_PRICE <> @l_OLD_BUY_PRICE) --TANG NGUYEN GIA
BEGIN
SET @_NEW_AMT_AMORT_LAST = @_NEW_AMT_AMORT_RENEW
UPDATE ASS_MASTER SET MONTHLY_AMORT_AMT = ISNULL(@_NEW_AMT_AMORT, @l_NEW_MONTHLY_AMT) WHERE ASSET_ID = @l_ASSET_ID
IF(@_NEW_AMT_AMORT_LAST < 0) SET @_NEW_AMT_AMORT_LAST = -@_NEW_AMT_AMORT_LAST
END
--HẠCH TOÁN TĂNG GIẢM NGUYÊN GIÁ
DECLARE @AC_TSCD VARCHAR(20)
IF(EXISTS(SELECT am.ASSET_ID FROM ASS_MASTER am WHERE am.ASSET_ID=@l_ASSET_ID AND am.ENTRY_BOOKED='Y'))
BEGIN
SET @AC_TSCD= (SELECT EPA.ACC_NO FROM ENTRIES_POST_ACCNO EPA WHERE EPA.ACC_TYPE = 'ASSET_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_OLD_GROUP_ID)))
IF(@AC_TSCD IS NULL OR @AC_TSCD = '')
SET @AC_TSCD = (SELECT ACC_NO FROM ENTRIES_POST_ACCNO WHERE ACC_TYPE ='ASSET_TSCD' AND GROUP_ID = @l_OLD_GROUP_ID)
END
ELSE
BEGIN
SET @AC_TSCD = (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_OLD_GROUP_ID)))
IF(@AC_TSCD IS NULL OR @AC_TSCD = '')
SET @AC_TSCD = (SELECT ACC_NO FROM ENTRIES_POST_ACCNO WHERE ACC_TYPE ='BUY_TSCD' AND GROUP_ID = @l_OLD_GROUP_ID)
END
DECLARE @AC_HS_MAIN VARCHAR(20) = (SELECT EPA.ACC_NO FROM ENTRIES_POST_ACCNO EPA WHERE EPA.ACC_TYPE = 'PAY_HS')
DECLARE @l_EXP_ACCTNO VARCHAR(20), @l_AMORT_BASIC VARCHAR(20)
DECLARE @l_ETP_ID VARCHAR(20),@l_D_BRANCH_CODE VARCHAR(25) , @l_C_BRANCH_CODE VARCHAR(25), @l_AC_BRANCH_CODE VARCHAR(25),@l_DEP_CODE VARCHAR(25)
--BRN_ID HOI SO
SELECT @l_HO_BRN_ID = BRANCH_ID FROM CM_BRANCH A WHERE A.BRANCH_TYPE = 'HS'
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)
SET @l_DEP_CODE =(SELECT cd.DEP_CODE FROM CM_DEPARTMENT cd WHERE cd.DEP_ID=@l_DEP_ID)
--ASSET_GL
SELECT @l_ASSET_GL = ASSET_ACCTNO,
@l_AMORT_BASIC = EXP_ACCTNO,
@l_AMORT_ACCTNO = AMORT_ACCTNO
FROM ASS_GROUP A
WHERE A.GROUP_ID = @l_OLD_GROUP_ID
--Neu co thay doi nguyen gia
IF (@l_NEW_BUY_PRICE <> @l_OLD_BUY_PRICE)
BEGIN
DECLARE @AMT DECIMAL(18,0)
DECLARE @BRN_ID VARCHAR(15)
IF @l_BRANCH_ID IS NULL OR @l_BRANCH_ID = ''
SET @BRN_ID = @l_BRANCH_CREATE
ELSE SET @BRN_ID = @l_BRANCH_ID
SET @l_AC_BRANCH_CODE = (SELECT cb.BRANCH_CODE FROM CM_BRANCH cb WHERE cb.BRANCH_ID=@BRN_ID)
DECLARE @NOTE_AMORT NVARCHAR(500) = N'KHAU HAO TSCD TRICH NGUYEN GIA TANG'
DECLARE @NOTE_AMORT2 NVARCHAR(500) = N'KHAU HAO TSCD TRICH NGUYEN GIA GIAM'
IF (@l_NEW_BUY_PRICE > @l_OLD_BUY_PRICE) --TANG NGUYEN GIA
BEGIN
SET @AMT = @l_NEW_BUY_PRICE - @l_OLD_BUY_PRICE
--insert dbo.ASS_VALUES
EXEC SYS_CodeMasters_Gen 'ASS_VALUES', @l_VALUE_ID out
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, @BRN_ID, CONVERT(datetime, @sToday, 103), 'C', @AMT, N'DIEU CHINH TSCD/CCLD', @p_UPDATE_ID, 'ASS_UPDATE',
'1','A',@l_MAKER_ID, CONVERT(datetime, @sToday, 103), @p_CHECKER_ID, CONVERT(datetime, @sToday, 103), @l_NEW_AMORT_AMT - @l_OLD_AMORT_AMT
)
IF @l_TYPE_ID = 'TSCD'
BEGIN
--NO ASSET_ACCTNO - CO ASSET_SUPPEND_GL: GIA TRI CHENH LECH
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ASS_UPDATE', @p_UPDATE_ID,@l_DO_BRANCH_ID, @l_SUPPEND_GL, @BRN_ID, @l_ASSET_GL, @BRN_ID,@AMT ,'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_UPDATE_ID, --N'XUAT SU DUNG TSCD/CCLD'
@l_ET_ID OUT
--IF @ERROR <> 0 GOTO ABORT_ERROR
-- TSCD
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_UPDATE_ID ,@l_AC_BRANCH_CODE , @AC_TSCD, 'VND', 'D', @AMT,1, @AMT, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
-- TRẢ HỘI SỞ
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_UPDATE_ID ,@l_C_BRANCH_CODE , @AC_HS_MAIN, 'VND', 'C', @AMT,1, @AMT, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
--ĐỒNG THỜI TRÍCH BỔ SUNG SỐ TRÍCH KHẤU HAO TRONG NĂM HIỆN HÀNH
IF(@_NEW_AMT_AMORT_LAST IS NOT NULL AND @_NEW_AMT_AMORT_LAST <> 0)
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ASS_UPDATE', @p_UPDATE_ID,@l_DO_BRANCH_ID, @l_SUPPEND_GL, @BRN_ID, @l_ASSET_GL, @BRN_ID,@AMT ,'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_UPDATE_ID, --N'XUAT SU DUNG TSCD/CCLD'
@l_ET_ID OUT
-- Chi phí KH cơ bản
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_UPDATE_ID ,@l_AC_BRANCH_CODE , @l_AMORT_BASIC, 'VND', 'D', @_NEW_AMT_AMORT_LAST,1, @_NEW_AMT_AMORT_LAST, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), NULL, NULL, @l_DEP_CODE, @NOTE_AMORT,@l_TRN_NO);
-- Hao mòn TSCD
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_UPDATE_ID ,@l_C_BRANCH_CODE , @l_AMORT_ACCTNO, 'VND', 'C', @_NEW_AMT_AMORT_LAST,1, @_NEW_AMT_AMORT_LAST, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), NULL, NULL, @l_DEP_CODE, @NOTE_AMORT,@l_TRN_NO);
END
END
-- ELSE IF @l_TYPE_ID = 'CCLD'
-- BEGIN
-- --NO ASSET_ACCTNO - CO ASSET_SUPPEND_GL: GIA TRI CHENH LECH
-- EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ASS_UPDATE', @p_UPDATE_ID,@l_DO_BRANCH_ID, @l_SUPPEND_GL, @BRN_ID, @l_AMORT_ACCTNO, @BRN_ID,@AMT ,'Y',
-- @sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_UPDATE_ID, --N'XUAT SU DUNG TSCD/CCLD'
-- @l_ET_ID OUT
-- --IF @ERROR <> 0 GOTO ABORT_ERROR
-- END
END
ELSE --GIAM NGUYEN GIA
BEGIN
SET @AMT = @l_OLD_BUY_PRICE - @l_NEW_BUY_PRICE
--insert dbo.ASS_VALUES
EXEC SYS_CodeMasters_Gen 'ASS_VALUES', @l_VALUE_ID out
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_OLD_BUY_PRICE - @l_NEW_BUY_PRICE, N'DIEU CHINH TSCD/CCLD', @p_UPDATE_ID, 'ASS_UPDATE',
'1','A',@l_MAKER_ID, CONVERT(datetime, @sToday, 103), @p_CHECKER_ID, CONVERT(datetime, @sToday, 103), @l_NEW_AMORT_AMT - @l_OLD_AMORT_AMT
)
IF @l_TYPE_ID = 'TSCD'
BEGIN
--NO ASSET_SUPPEND_GL - CO ASSET_ACCTNO: GIA TRI CHENH LECH
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ASS_UPDATE', @p_UPDATE_ID,@l_DO_BRANCH_ID, @l_ASSET_GL, @BRN_ID, @l_SUPPEND_GL , @BRN_ID,@AMT ,'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_UPDATE_ID, --N'XUAT SU DUNG TSCD/CCLD'
@l_ET_ID OUT
--IF @ERROR <> 0 GOTO ABORT_ERROR
-- TRẢ HỘI SỞ
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_UPDATE_ID ,@l_C_BRANCH_CODE , @AC_HS_MAIN, 'VND', 'D', @AMT,1, @AMT, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
-- TSCD
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_UPDATE_ID ,@l_AC_BRANCH_CODE , @AC_TSCD, 'VND', 'C', @AMT,1, @AMT, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_MAKER_ID, @p_CHECKER_ID, @l_DEP_CODE, @l_CORE_NOTE,@l_TRN_NO);
--
--ĐỒNG THỜI LẬP HẠCH TOÁN ĐIỀU CHỈNH GIẢM SỐ TRÍCH KHẤU HAO TRONG NĂM HIỆN HÀNH
IF(@_NEW_AMT_AMORT_LAST IS NOT NULL AND @_NEW_AMT_AMORT_LAST <> 0)
BEGIN
EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ASS_UPDATE', @p_UPDATE_ID,@l_DO_BRANCH_ID, @l_ASSET_GL, @BRN_ID, @l_SUPPEND_GL , @BRN_ID,@AMT ,'Y',
@sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_UPDATE_ID, --N'XUAT SU DUNG TSCD/CCLD'
@l_ET_ID OUT
-- Hao mòn TSCD
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_UPDATE_ID ,@l_C_BRANCH_CODE , @l_AMORT_ACCTNO, 'VND', 'D', @_NEW_AMT_AMORT_LAST,1, @_NEW_AMT_AMORT_LAST, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), NULL, NULL, @l_DEP_CODE, @NOTE_AMORT2,@l_TRN_NO);
-- Chi phí KH cơ bản
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_UPDATE_ID ,@l_AC_BRANCH_CODE , @l_AMORT_BASIC, 'VND', 'C', @_NEW_AMT_AMORT_LAST,1, @_NEW_AMT_AMORT_LAST, @l_ASSET_CODE,CONVERT(DATETIME, @p_APPROVE_DT, 103), NULL, NULL, @l_DEP_CODE, @NOTE_AMORT2,@l_TRN_NO);
END
END
-- ELSE IF @l_TYPE_ID = 'CCLD'
-- BEGIN
-- --NO ASSET_SUPPEND_GL - CO ASSET_ACCTNO: GIA TRI CHENH LECH
-- EXEC [dbo].[ASS_ENTRIES_POST_Insert] @l_TYPE_ID, @l_ASSET_ID, 'ASS_UPDATE', @p_UPDATE_ID,@l_DO_BRANCH_ID, @l_AMORT_ACCTNO, @BRN_ID, @l_SUPPEND_GL , @BRN_ID,@AMT ,'Y',
-- @sToday, @l_CORE_NOTE, @l_MAKER_ID, @p_CHECKER_ID,@p_UPDATE_ID, --N'XUAT SU DUNG TSCD/CCLD'
-- @ERROR OUT
-- --IF @ERROR <> 0 GOTO ABORT_ERROR
-- END
END
END
UPDATE ASS_UPDATE
SET
AUTH_STATUS = @P_AUTH_STATUS,
CHECKER_ID = @p_CHECKER_ID,
APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103)
WHERE UPDATE_ID = @p_UPDATE_ID
UPDATE PL_PROCESS SET PROCESS_ID='UPDATE_NT' WHERE REQ_ID = @p_UPDATE_ID AND PROCESS_ID ='UPDATE'
--khiemchg cập nhật unlock treo tài sản khi thực hiện duyệt cập nhật
UPDATE ASS_MASTER SET CURRENT_TRANS = NULL, CURRENT_TRANS_TYPE = NULL WHERE ASSET_ID = @l_ASSET_ID
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_UPDATE_ID, -- REQ_ID - varchar(15)
'APPROVE', -- PROCESS_ID - varchar(10)
@p_CHECKER_ID, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
N'Phê duyệt phiếu cập nhật tài sản thành công' ,
N'Phê duyệt phiếu cập nhật tài sản' -- PROCESS_DESC - nvarchar(1000)
)
END TRY
BEGIN CATCH
IF @@TRANCOUNT>0
ROLLBACK TRANSACTION
SELECT '-1' as Result, convert(varchar(100),ERROR_NUMBER()) + ' - ' + ERROR_MESSAGE() ErrorDesc
RETURN '-1'
END CATCH;
IF @@TRANCOUNT>0
COMMIT TRANSACTION
SELECT '0' as Result, '' ErrorDesc
RETURN '-1'
ABORT_ERROR:
BEGIN
IF @@TRANCOUNT>0
ROLLBACK TRANSACTION
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_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 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'Creating [dbo].[ASS_UPDATE_SendAppr]'
GO
CREATE PROCEDURE [dbo].[ASS_UPDATE_SendAppr]
@p_UPDATE_ID VARCHAR(15) = NULL,
@p_USER_LOGIN VARCHAR(150) = NULL
AS
BEGIN TRANSACTION
DECLARE @ASSET_ID_LST VARCHAR(MAX), @CURRENT_TRANS_ERROR NVARCHAR(MAX)
-- 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_UPDATE A
where A.UPDATE_ID = @p_UPDATE_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
IF(EXISTS(SELECT 1 FROM dbo.ASS_UPDATE WHERE UPDATE_ID=@p_UPDATE_ID AND AUTH_STATUS='R'))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' Result, N'Gửi duyệt thất bại! Thông tin cập nhập tài sản phiếu số: '+@p_UPDATE_ID+
N' đang bị từ chối. Vui lòng xử lý phiếu' ErrorDesc
RETURN '-1'
END
UPDATE dbo.ASS_UPDATE SET AUTH_STATUS = 'U'
WHERE UPDATE_ID = @p_UPDATE_ID
IF @@ERROR <> 0 GOTO ABORT
--khiemchg update treo tài sản khi thực hiện cập nhật
UPDATE ASS_MASTER SET CURRENT_TRANS = @p_UPDATE_ID, CURRENT_TRANS_TYPE = 'ASS_UPDATE'
WHERE ASSET_ID = (SELECT ASSET_ID FROM ASS_UPDATE AU WHERE AU.UPDATE_ID = @p_UPDATE_ID)
INSERT INTO dbo.PL_PROCESS(REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
VALUES(@p_UPDATE_ID, 'SENDKT', @p_USER_LOGIN, GETDATE(), N'Giao dịch viên gửi phê duyệt',
N'Giao dịch viên gửi phê duyệt thành công')
IF @@ERROR <> 0 GOTO ABORT
COMMIT TRANSACTION
SELECT '0' as Result,
N'Phiếu cập nhật tài sản: '+@p_UPDATE_ID+
N' đã được gửi kế toán phê duyệt thành công. Vui lòng đợi phê duyệt.' ErrorDesc
RETURN '0'
ABORT:
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' UPDATE_ID, '' ErrorDesc
RETURN '-1'
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Creating [dbo].[ASS_COST_ALLOCATION_SendAppr]'
GO
CREATE PROCEDURE [dbo].[ASS_COST_ALLOCATION_SendAppr]
@p_COS_ID VARCHAR(15) = NULL,
@p_USER_LOGIN VARCHAR(150) = NULL
AS
BEGIN TRANSACTION
IF(EXISTS(SELECT 1 FROM dbo.ASS_COST_ALLOCATION WHERE COS_ID=@p_COS_ID AND AUTH_STATUS='R'))
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' Result, N'Gửi duyệt thất bại! Thông tin phân bổ chi phí phiếu số: '+@p_COS_ID+
N' đang bị từ chối. Vui lòng xử lý phiếu' ErrorDesc
RETURN '-1'
END
UPDATE dbo.ASS_COST_ALLOCATION SET AUTH_STATUS = 'U'
WHERE COS_ID = @p_COS_ID
IF @@ERROR <> 0 GOTO ABORT
INSERT INTO dbo.PL_PROCESS(REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
VALUES(@p_COS_ID, 'SENDKT', @p_USER_LOGIN, GETDATE(), N'Giao dịch viên gửi phê duyệt',
N'Giao dịch viên gửi phê duyệt thành công')
IF @@ERROR <> 0 GOTO ABORT
COMMIT TRANSACTION
SELECT '0' as Result,
N'Phiếu phân bổ chi phí tài sản: '+@p_COS_ID+
N' đã được gửi kế toán phê duyệt thành công. Vui lòng đợi phê duyệt.' ErrorDesc
RETURN '0'
ABORT:
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' UPDATE_ID, '' ErrorDesc
RETURN '-1'
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_COST_ALLOCATION_Upd]'
GO
/*INSERT INTO SYS_PREFIX(ID,Prefix,[Description]) VALUES('ASS_COST_ALLOCATION','ACAC','')
INSERT INTO SYS_CODEMASTERS(Prefix,CurValue,Active) VALUES('ACAC','1','1')*/
/*INSERT INTO SYS_PREFIX(ID,Prefix,[Description]) VALUES('ASS_COST_ALLOC_DT','ACODT','')
INSERT INTO SYS_CODEMASTERS(Prefix,CurValue,Active) VALUES('ACODT','1','1')*/
ALTER PROCEDURE [dbo].[ASS_COST_ALLOCATION_Upd]
@p_COS_ID VARCHAR(15)= NULL,
@p_ASSET_ID varchar(15) = NULL,
@p_NOTE NVARCHAR(MAX) = NULL,
@p_TRN_DATE varchar(20) = 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_EDITOR_ID VARCHAR(15) = NULL,
@p_EDITOR_DT VARCHAR(20) = NULL,
@p_CHECKER_ID varchar(100) = NULL,
@p_APPROVE_DT VARCHAR(20) = NULL,
@p_BRANCH_CREATE varchar(15) = NULL,
@p_XmlData XML = NULL,
@p_SERCURE_01 VARCHAR(15) = NULL,
@p_SERCUR_02 VARCHAR(15)= NULL
AS
DECLARE
--DVSD
@ID_DT VARCHAR(15) = NULL,
@BRANCH_ID varchar(15),
@DEPT_ID VARCHAR(15) = NULL,
@COST_AMOUNT DECIMAL(18,0) =0,
@COST_RATE FLOAT =0,
@EXP_ACCTNO VARCHAR(10)= NULL,
@NOTE NVARCHAR(MAX) =NULL,
@COST_MONTH decimal=0,
@RECORD_STATUS VARCHAR(1) = NULL
Declare @hdoc INT
Exec sp_xml_preparedocument @hdoc Output,@p_XmlData
DECLARE XmlData CURSOR FOR
SELECT *
FROM OPENXML(@hdoc,'/Root/XmlData',2)
WITH
(
ID_DT VARCHAR(15),
BRANCH_ID varchar(15),
DEPT_ID VARCHAR(15),
COST_AMOUNT DECIMAL(18,0),
COST_RATE FLOAT,
EXP_ACCTNO VARCHAR(10),
NOTE NVARCHAR(MAX),
COST_MONTH decimal,
RECORD_STATUS VARCHAR(1)
)
OPEN XmlData
--DELETE FROM ASS_COST_ALLOC_DT WHERE COS_ID =@p_COS_ID
BEGIN TRANSACTION
--Insert XmlData
-- KIEM TRA XEM ALL_COST NAY DA DUOC DUYET HAY CHUA. NEU DA DUYET ROI THI CHI
IF(EXISTS(SELECT * FROM ASS_COST_ALLOCATION WHERE AUTH_STATUS<>'A' AND COS_ID = @p_COS_ID))
BEGIN
DELETE FROM ASS_COST_ALLOC_DT WHERE COS_ID =@p_COS_ID
END
ELSE
BEGIN
UPDATE ASS_COST_ALLOC_DT
SET RECORD_STATUS ='D' WHERE COS_ID =@p_COS_ID
END
FETCH NEXT FROM XmlData INTO @ID_DT,@BRANCH_ID,@DEPT_ID,@COST_AMOUNT,@COST_RATE,@EXP_ACCTNO,@NOTE,@COST_MONTH,@RECORD_STATUS
WHILE @@FETCH_STATUS = 0
BEGIN
DELETE FROM ASS_COST_ALLOC_DT WHERE COSTDT_ID =@ID_DT
--DECLARE @ERRORSYS NVARCHAR(200) = '',@ASSET_CODE nVARCHAR(20)
--IF ( EXISTS ( SELECT * FROM ASS_COLLECT_MULTI_DT WHERE [ASSET_ID] = @ASSET_ID AND AUTH_STATUS<>'A'))
-- BEGIN
-- SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID)
-- SET @ERRORSYS = N'Mã: '+@ASSET_CODE+N' đang được thu hồi'
-- CLOSE XmlData
-- DEALLOCATE XmlData
-- ROLLBACK TRANSACTION
-- SELECT '-1' as Result, '' COL_MULTI_MASTER_ID, @ERRORSYS ErrorDesc
-- RETURN '-1'
-- END
-- IF ( EXISTS ( SELECT * FROM ASS_COLLECT WHERE [ASSET_ID] = @ASSET_ID AND AUTH_STATUS<>'A'))
-- BEGIN
-- SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID)
-- SET @ERRORSYS = N'Mã: '+@ASSET_CODE+N' đang được thu hồi'
-- CLOSE XmlData
-- DEALLOCATE XmlData
-- ROLLBACK TRANSACTION
-- SELECT '-1' as Result, '' COL_MULTI_MASTER_ID, @ERRORSYS ErrorDesc
-- RETURN '-1'
-- END
DECLARE @l_COSTDT_ID VARCHAR(15)
EXEC SYS_CodeMasters_Gen 'ASS_COST_ALLOC_DT', @l_COSTDT_ID out
IF @l_COSTDT_ID='' OR @l_COSTDT_ID IS NULL GOTO ABORT
INSERT INTO ASS_COST_ALLOC_DT
VALUES
(@l_COSTDT_ID,@p_COS_ID,@BRANCH_ID,@DEPT_ID,@COST_AMOUNT,@COST_RATE,@COST_MONTH,NULL, NULL,0,0,@EXP_ACCTNO,@NOTE,@RECORD_STATUS ,@p_AUTH_STATUS ,@p_MAKER_ID ,
CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_EDITOR_ID, CONVERT(DATETIME,@p_EDITOR_DT,103),@p_CHECKER_ID ,
CONVERT(DATETIME, @p_APPROVE_DT, 103))
IF @@Error <> 0 GOTO ABORT
FETCH NEXT FROM XmlData INTO @ID_DT, @BRANCH_ID,@DEPT_ID,@COST_AMOUNT,@COST_RATE,@EXP_ACCTNO,@NOTE,@COST_MONTH,@RECORD_STATUS
END
CLOSE XmlData
DEALLOCATE XmlData
UPDATE ASS_COST_ALLOCATION
SET
ASSET_ID = @p_ASSET_ID,
NOTE =@p_NOTE,
AUTH_STATUS='E',
CHECKER_ID= NULL,
APPROVE_DT=NULL,
TRN_DATE = CONVERT(DATE,@p_TRN_DATE,103),
EDITOR_ID = @p_EDITOR_ID,
EDITOR_DT = CONVERT(DATE,@p_EDITOR_DT, 103)
WHERE COS_ID = @p_COS_ID
IF @@Error <> 0 GOTO ABORT
DELETE PL_PROCESS WHERE PROCESS_ID ='UPDATE' AND REQ_ID= @p_COS_ID
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @p_COS_ID,
'UPDATE',
@p_MAKER_ID,
GETDATE(),
N'Giao dịch viên chỉnh sửa thông tin' ,
N'Cập nhật thông tin'
)
COMMIT TRANSACTION
SELECT '0' as Result, @p_COS_ID COS_ID ,'' ErrorDesc
RETURN '0'
ABORT:
BEGIN
CLOSE XmlData
DEALLOCATE XmlData
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' COS_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_UPDATE_ById]'
GO
/*
SELECT * FROM ASS_MASTER
[ASS_UPDATE_ById] 'ASSD00000005883'
*/
ALTER PROCEDURE [dbo].[ASS_UPDATE_ById]
@p_UPDATE_ID varchar(15)
AS
declare @statusHistTmp table(
ASSET_ID VARCHAR(15),
NQL NVARCHAR(200),
[ASS_STATUS] [nvarchar](500) NULL,
[ASSET_DESC] [nvarchar](500) NULL
)
insert into @statusHistTmp(ASSET_ID, NQL,ASS_STATUS, ASSET_DESC)
SELECT ASSET_ID, NQL,ASS_STATUS, ASSET_DESC FROM dbo.GetLatestAssetHis(NULL, DEFAULT)
IF(NOT EXISTS(SELECT 1 FROM ASS_UPDATE AU WHERE AU.UPDATE_ID = @p_UPDATE_ID AND AU.AUTH_STATUS = 'A'))
BEGIN
SELECT UP.UPDATE_ID, UP.AMORT_AMT AS U_AMORT_AMT, UP.APPROVE_DT AS U_APPROVE_DT, UP.ASSET_DESC AS U_ASSET_DESC,UP.ASSET_NAME AS U_ASSET_NAME,UP.ASSET_SERIAL_NO AS U_ASSET_SERIAL_NO,
UP.AUTH_STATUS AS U_AUTH_STATUS, UP.BUY_PRICE AS U_BUY_PRICE, UP.CHECKER_ID AS U_CHECKER_ID, UP.NOTES as U_NOTES, UP.AMORT_MONTH AS U_AMORT_MONTH,
UP.CREATE_DT AS U_CREATE_DT, UP.GROUP_ID AS U_GROUP_ID,UGR.GROUP_CODE AS U_GROUP_CODE, UGR.GROUP_NAME AS U_GROUP_NAME, UP.MAKER_ID AS U_MAKER_ID,ZZZ.AUTH_STATUS_NAME AS U_AUTH_STATUS_NAME,
A.ASSET_ID, A.[TYPE_ID],C.[TYPE_CODE], C.[TYPE_NAME], A.GROUP_ID,B.GROUP_CODE, B.GROUP_NAME, A.ASSET_CODE, A.ASSET_NAME, A.ASSET_SERIAL_NO, A.ASSET_DESC,
A.SUP_ID, A.BUY_PRICE, A.AMORT_AMT, A.ASS_TYPE, A.BRANCH_ID,BR.BRANCH_CODE,BR.BRANCH_NAME,A.DEPT_ID, A.EMP_ID,EM.TLNANME AS EMP_CODE,EM.TLFullName AS EMP_NAME, A.DIVISION_ID,CM.DIV_NAME, CM.ADDR,
A.BUY_DATE, A.USE_DATE, A.SPECIAL_ASS, A.AMORT_MONTH, A.AMORT_RATE, A.AMORT_START_DATE, A.AMORT_END_DATE,
A.FIRST_AMORT_AMT,
A.AMORTIZED_MONTH,
(A.AMORT_MONTH - A.AMORTIZED_MONTH) AS REMAIN_MONTH,
A.AMORTIZED_AMT,
ISNULL((A.AMORT_AMT - A.AMORTIZED_AMT), A.AMORT_AMT) AS REMAIN_AMORTIZED_AMT, --So tien khau hao con lai
A.PO_ID,A.PD_ID, A.WAREHOUSE_ID, A.LOCATION, A.REF_ASSET_ID,
A.REF_AMORTIZED_AMT,
A.WARRANTY_MONTHS,
A.NOTES,
A.AMORT_STATUS,
D.STATUS_NAME AMORT_STATUS_NAME,
--A.ASS_STATUS,
--E.STATUS_NAME ASS_STATUS_NAME, --Tinh trang tai san
A.ASS_STATUS_DESC,
A.RECORD_STATUS,
A.AUTH_STATUS,
ZZ.AUTH_STATUS_NAME , UP.CORE_NOTE, UP.BRANCH_ID AS BRANCH_CREATE, UP.EXT_VALUE, UP.ACCOUNT_GL,
---- khangth, 02/12/2019, hiêu hỉnh lấy len cột tình trạng tài sản đã thay đổi
UP.ASS_STATUS U_ASS_STATUS, F.STATUS_CODE U_ASS_STATUS_CODE, -- lay trang thai moi update
G.STATUS_ID AS ASS_STATUS, -- ID tinh trang tai san gan nhat
G.STATUS_NAME AS ASS_STATUS_NAME, -- STATUS NAME tinh trang tai san gan nhat
A.ASSET_DESC AS L_ASSET_DESC, --Hien trang moi nhat --Nguoi quan ly moi nhat
UP.ASSET_STATUS_DESC, --Hien trang moi nhat
UP.NQL, --Nguoi quan ly moi nhat
UP.LIQ_W_STATUS, -- TuNT them Cho thanh ly,
(CASE WHEN EXISTS(SELECT * FROM dbo.ASS_ENTRIES_POST WHERE TRN_ID =@p_UPDATE_ID AND REF_NO IS NULL) THEN 1
ELSE 0
END) AS IS_REF_NO
--//---------------------------------------------------------------------------
FROM ASS_UPDATE UP
LEFT JOIN ASS_MASTER A ON UP.ASSET_ID=A.ASSET_ID
LEFT JOIN ASS_GROUP B ON A.GROUP_ID = B.GROUP_ID
LEFT JOIN ASS_GROUP UGR ON UGR.GROUP_ID = UP.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
--khangth, 02/12/2019 -- lay tinh trang tai san moi và tinh trang tai san gan nhat
LEFT JOIN ASS_STATUS F ON UP.ASS_STATUS = F.STATUS_ID
LEFT JOIN ASS_STATUS G ON A.ASS_STATUS = G.STATUS_NAME -- join theo name vi ASH luu tinh trang ASS_STATUS là ASS_STATUS_NAME
--//---------------------------------------------------------------------------
LEFT JOIN CM_AUTH_STATUS ZZ ON ZZ.AUTH_STATUS = A.AUTH_STATUS
LEFT JOIN CM_AUTH_STATUS ZZZ ON ZZZ.AUTH_STATUS = UP.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_DIVISION CM ON CM.DIV_ID=A.DIVISION_ID
WHERE 1 = 1
AND UP.UPDATE_ID = @p_UPDATE_ID
END
ELSE -- Hiện thông tin tài sản lúc cập nhật cho phiếu đã duyệt
BEGIN
SELECT UP.UPDATE_ID, UP.AMORT_AMT AS U_AMORT_AMT, UP.APPROVE_DT AS U_APPROVE_DT, UP.ASSET_DESC AS U_ASSET_DESC,UP.ASSET_NAME AS U_ASSET_NAME,UP.ASSET_SERIAL_NO AS U_ASSET_SERIAL_NO,
UP.AUTH_STATUS AS U_AUTH_STATUS, UP.BUY_PRICE AS U_BUY_PRICE, UP.CHECKER_ID AS U_CHECKER_ID, UP.NOTES as U_NOTES, UP.AMORT_MONTH AS U_AMORT_MONTH,
UP.CREATE_DT AS U_CREATE_DT, UP.GROUP_ID AS U_GROUP_ID,UGR.GROUP_CODE AS U_GROUP_CODE, UGR.GROUP_NAME AS U_GROUP_NAME, UP.MAKER_ID AS U_MAKER_ID,ZZZ.AUTH_STATUS_NAME AS U_AUTH_STATUS_NAME,
A.ASSET_ID, A.[TYPE_ID],C.[TYPE_CODE], C.[TYPE_NAME], A.GROUP_ID,B.GROUP_CODE, B.GROUP_NAME, A.ASSET_CODE, A.ASSET_NAME, A.ASSET_SERIAL_NO, A.ASSET_DESC,
A.SUP_ID, A.BUY_PRICE, A.AMORT_AMT, A.ASS_TYPE, A.BRANCH_ID,BR.BRANCH_CODE,BR.BRANCH_NAME,A.DEPT_ID, A.EMP_ID,EM.TLNANME AS EMP_CODE,EM.TLFullName AS EMP_NAME, A.DIVISION_ID,CM.DIV_NAME, CM.ADDR,
A.BUY_DATE, A.USE_DATE, A.SPECIAL_ASS, A.AMORT_MONTH, A.AMORT_RATE, A.AMORT_START_DATE, A.AMORT_END_DATE,
A.FIRST_AMORT_AMT,
A.AMORTIZED_MONTH,
(A.AMORT_MONTH - A.AMORTIZED_MONTH) AS REMAIN_MONTH,
A.AMORTIZED_AMT,
ISNULL((A.AMORT_AMT - A.AMORTIZED_AMT), A.AMORT_AMT) AS REMAIN_AMORTIZED_AMT, --So tien khau hao con lai
A.PO_ID,A.PD_ID, A.WAREHOUSE_ID, A.LOCATION, A.REF_ASSET_ID,
A.REF_AMORTIZED_AMT,
A.WARRANTY_MONTHS,
A.NOTES,
A.AMORT_STATUS,
D.STATUS_NAME AMORT_STATUS_NAME,
--A.ASS_STATUS,
--E.STATUS_NAME ASS_STATUS_NAME, --Tinh trang tai san
A.ASS_STATUS_DESC,
A.RECORD_STATUS,
A.AUTH_STATUS,
ZZ.AUTH_STATUS_NAME , UP.CORE_NOTE, UP.BRANCH_ID AS BRANCH_CREATE, UP.EXT_VALUE, UP.ACCOUNT_GL,
---- khangth, 02/12/2019, hiêu hỉnh lấy len cột tình trạng tài sản đã thay đổi
UP.ASS_STATUS U_ASS_STATUS, F.STATUS_CODE U_ASS_STATUS_CODE, -- lay trang thai moi update
G.STATUS_ID AS ASS_STATUS, -- ID tinh trang tai san gan nhat
ASH.ASS_STATUS AS ASS_STATUS_NAME, -- STATUS NAME tinh trang tai san gan nhat
ASH.ASSET_DESC AS L_ASSET_DESC, --Hien trang moi nhat
ASH.NQL AS L_NQL, --Nguoi quan ly moi nhat
UP.ASSET_STATUS_DESC, --Hien trang moi nhat
UP.NQL, --Nguoi quan ly moi nhat
UP.LIQ_W_STATUS, -- TuNT them Cho thanh ly,
(CASE WHEN EXISTS(SELECT * FROM dbo.ASS_ENTRIES_POST WHERE TRN_ID =@p_UPDATE_ID AND REF_NO IS NULL) THEN 1
ELSE 0
END) AS IS_REF_NO
--//---------------------------------------------------------------------------
FROM ASS_UPDATE UP
LEFT JOIN ASS_TRANSACTIONS AT ON UP.UPDATE_ID=AT.TRN_ID
LEFT JOIN ASS_MASTER_HIST A ON AT.ASSHIST_ID=A.ASSHIST_ID
LEFT JOIN ASS_GROUP B ON A.GROUP_ID = B.GROUP_ID
LEFT JOIN ASS_GROUP UGR ON UGR.GROUP_ID = UP.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
--khangth, 02/12/2019 -- lay tinh trang tai san moi và tinh trang tai san gan nhat
LEFT JOIN ASS_STATUS F ON UP.ASS_STATUS = F.STATUS_ID
LEFT JOIN @statusHistTmp ASH ON ASH.ASSET_ID = UP.ASSET_ID
LEFT JOIN ASS_STATUS G ON ASH.ASS_STATUS = G.STATUS_NAME -- join theo name vi ASH luu tinh trang ASS_STATUS là ASS_STATUS_NAME
--//---------------------------------------------------------------------------
LEFT JOIN CM_AUTH_STATUS ZZ ON ZZ.AUTH_STATUS = A.AUTH_STATUS
LEFT JOIN CM_AUTH_STATUS ZZZ ON ZZZ.AUTH_STATUS = UP.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_DIVISION CM ON CM.DIV_ID=A.DIVISION_ID
WHERE 1 = 1
AND UP.UPDATE_ID = @p_UPDATE_ID
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_LIQUIDATION_BVB_Import]'
GO
ALTER PROCEDURE [dbo].[ASS_LIQUIDATION_BVB_Import]
@p_BRANCH_ID varchar(15) = NULL,
@p_BRANCH_LOGIN varchar(15) = NULL,
@p_LEVEL varchar(10) = NULL,
@p_XML XML
AS
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
BEGIN -- PAGING
declare @tmp table(BRANCH_ID varchar(15))
insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID)
declare @tmpAssetCode table(
STT INT,
ASSET_CODE varchar(50),
LIQ_AMT decimal(18,0),
LIQ_REASON NVARCHAR(1000),
LIQ_TYPE nvarchar(max)
)
Declare @hdoc INT
Exec sp_xml_preparedocument @hdoc Output, @p_XML
insert into @tmpAssetCode
-- select ROW_NUMBER() OVER(ORDER BY (SELECT 1)), ASSET_CODE,LIQ_AMT,LIQ_REASON, CASE
-- WHEN LIQ_TYPE LIKE N'%Toàn%' THEN '1'
-- ELSE '0'
-- END LIQ_TYPE
select ROW_NUMBER() OVER(ORDER BY (SELECT 1)), ASSET_CODE,LIQ_AMT,LIQ_REASON,LIQ_TYPE
from OPENXML(@hdoc,'/Root/LiquiDetail',2)
WITH
(
STT INT,
ASSET_CODE varchar(50),
LIQ_AMT decimal(18,0),
LIQ_REASON NVARCHAR(1000),
LIQ_TYPE nvarchar(100)
)
-- validate begin
DECLARE @ERROR_MESSAGE NVARCHAR(MAX)
--valide dup code
select @ERROR_MESSAGE = STUFF( (
--select ',' + ASSET_CODE from @tmpAssetCode T
SELECT ASSET_CODE, COUNT(ASSET_CODE)
FROM @tmpAssetCode
GROUP BY ASSET_CODE
HAVING COUNT(ASSET_CODE) > 1
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
IF(LEN(@ERROR_MESSAGE) > 0)
BEGIN
set @ERROR_MESSAGE = N'Mã tài sản trong file trùng dữ liệu: ' + @ERROR_MESSAGE
exec sp_seterrormessage @ERROR_MESSAGE
RETURN '-1'
END
------- end dup -----
select @ERROR_MESSAGE = STUFF( (
select ',' + ASSET_CODE from @tmpAssetCode T
WHERE T.ASSET_CODE IS NOT NULL AND NOT EXISTS(
SELECT ASSET_CODE
FROM ASS_MASTER A
WHERE A.ASSET_CODE = T.ASSET_CODE and A.RECORD_STATUS = '1'
AND (
((A.AMORT_STATUS <> 'VNM' 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.AMORT_STATUS = 'VNM' OR (A.AMORT_STATUS = 'DTL' AND (A.BRANCH_ID IS NULL OR A.BRANCH_ID = '')))
--AND ((@p_LEVEL = 'ALL' AND MK.TLSUBBRID IN (SELECT BRANCH_ID from @tmp))
-- OR (@p_LEVEL = 'UNIT' AND MK.TLSUBBRID = @p_BRANCH_ID))) )
AND ((@p_LEVEL = 'ALL' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID from @tmp))
OR (@p_LEVEL = 'UNIT' AND A.BRANCH_CREATE = @p_BRANCH_ID))) )
OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = ''
)
AND (
((A.AMORT_STATUS <> 'VNM' AND ((@p_LEVEL = 'ALL' AND A.BRANCH_ID IN (SELECT BRANCH_ID from @tmp))
OR (@p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_LOGIN)))
OR
((A.AMORT_STATUS = 'VNM' OR (A.AMORT_STATUS = 'DTL' AND (A.BRANCH_ID IS NULL OR A.BRANCH_ID = '')))
AND ((@p_LEVEL = 'ALL' AND A.BRANCH_CREATE IN (SELECT BRANCH_ID from @tmp))
OR (@p_LEVEL = 'UNIT' AND A.BRANCH_CREATE = @p_BRANCH_LOGIN))))
OR @p_BRANCH_LOGIN IS NULL OR @p_BRANCH_LOGIN = ''
)
) FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
IF(LEN(@ERROR_MESSAGE) > 0)
BEGIN
set @ERROR_MESSAGE = N'Mã tài sản không thuộc đơn vị hoặc không tồn tại trong hệ thống: ' + @ERROR_MESSAGE
exec sp_seterrormessage @ERROR_MESSAGE
RETURN '-1'
END
select @ERROR_MESSAGE = STUFF( (
select ',' + ASSET_CODE from @tmpAssetCode T
WHERE T.ASSET_CODE IS NOT NULL AND EXISTS(
SELECT ASSET_CODE
FROM ASS_MASTER A
WHERE A.ASSET_CODE = T.ASSET_CODE and A.RECORD_STATUS = '1' AND A.AMORT_STATUS='DTL'
) FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
-- validate end
IF(LEN(@ERROR_MESSAGE) > 0)
BEGIN
set @ERROR_MESSAGE = N'Mã tài sản đã được thanh lý: ' + @ERROR_MESSAGE
exec sp_seterrormessage @ERROR_MESSAGE
RETURN '-1'
END
---------------------------
SELECT
A.ASSET_ID,
A.ASSET_CODE,
A.ASSET_NAME,
T.LIQ_AMT AS REQ_AMT,
A.BUY_PRICE,
ISNULL(ALRD.REQ_AMT, ISNULL((A.AMORT_AMT - A.AMORTIZED_AMT), A.AMORT_AMT)) AS LIQ_AMT,
ISNULL((A.AMORT_AMT - A.AMORTIZED_AMT), A.AMORT_AMT) AS REMAIN_AMORTIZED_AMT, --So tien khau hao con lai
ISNULL((A.AMORT_AMT - A.AMORTIZED_AMT), A.AMORT_AMT) AS LIQ_PRICE,
CASE WHEN A.BUY_PRICE > 0 THEN A.BUY_PRICE ELSE 0 END AS BUY_PRICE_LIQ,
E.STATUS_NAME ASS_STATUS_NAME, --Tinh trang tai san
A.BRANCH_ID AS BRANCH_ID_USE, A.DEPT_ID AS DEP_ID_USE,
T.LIQ_TYPE AS NOTE,
--(T.BUY_PRICE_LIQ / A.BUY_PRICE) * ISNULL((A.AMORT_AMT - A.AMORTIZED_AMT), A.AMORT_AMT) AS REMAIN_VALUE,
T.LIQ_REASON,
C.BRANCH_NAME AS BRANCH_NAME_USE,
D.DEP_NAME AS DEPT_NAME_USE,
F.STATUS_NAME AMORT_STATUS_NAME,
ISNULL(ALRD.LIQ_REQ_ID, A.CURRENT_TRANS)
FROM ASS_MASTER A
LEFT JOIN ASS_GROUP B ON A.GROUP_ID = B.GROUP_ID AND B.RECORD_STATUS = '1'
LEFT JOIN dbo.CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN dbo.CM_DEPARTMENT D ON A.DEPT_ID = D.DEP_ID
LEFT JOIN ASS_STATUS E ON A.ASS_STATUS = E.STATUS_ID
LEFT JOIN ASS_AMORT_STATUS F ON A.AMORT_STATUS = F.STATUS_CODE
INNER JOIN @tmpAssetCode T ON A.ASSET_CODE = T.ASSET_CODE
LEFT JOIN ASS_LIQ_REQUEST_DT ALRD ON ALRD.ASSET_ID = A.ASSET_ID
ORDER BY STT
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_COLLECT_MULTI_MASTER_KT_Upd]'
GO
ALTER PROCEDURE [dbo].[ASS_COLLECT_MULTI_MASTER_KT_Upd]
@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_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_BRANCH_CREATE varchar(15) = NULL,
@p_XmlData XML = NULL,
@p_CORE_NOTE VARCHAR(1000) = NULL
AS
DECLARE
@COLLECT_MULTI_ID varchar(15),
@ASSET_ID varchar(15),
@BRANCH_ID varchar(15),
@LOCATION Nvarchar(500),
@PURPOSE_ID Nvarchar(500),
@COLLECT_NOTE nvarchar(1000),
@BRANCH_ID_RECEIVE VARCHAR(15) = NULL,
@DEPT_ID_RECEIVE VARCHAR(15) = NULL,
--PHONG BAN SU DUNG
@DEPT_ID_USE VARCHAR(15) = NULL,
@ASS_AMORTIZED_MONTH DECIMAL,
@ASS_AMORTIZED_AMT DECIMAL,
@IS_LIQ varchar(1)= '0',
@l_REMAIN_VALUE DECIMAL(18,0),
@l_BUY_PRICE DECIMAL(18,0),
@EMP_ID_USE VARCHAR(15)
Declare @hdoc INT
Exec sp_xml_preparedocument @hdoc Output,@p_XmlData
DECLARE XmlData CURSOR FOR
SELECT *
FROM OPENXML(@hdoc,'/Root/XmlData',2)
WITH
(
COLLECT_MULTI_ID varchar(15),
ASSET_ID varchar(15),
BRANCH_ID varchar(15),
LOCATION Nvarchar(500),
PURPOSE_ID Nvarchar(500),
COLLECT_NOTE nvarchar(1000),
BRANCH_ID_RECEIVE VARCHAR(15),
DEPT_ID_RECEIVE VARCHAR(15),
DEPT_ID_USE VARCHAR(15),
IS_LIQ varchar(1),
ASS_AMORTIZED_MONTH DECIMAL,
ASS_AMORTIZED_AMT DECIMAL
)
OPEN XmlData
DELETE FROM ASS_COLLECT_MULTI_DT WHERE COL_MULTI_MASTER_ID = @p_COL_MULTI_MASTER_ID
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---------------
UPDATE ASS_COLLECT_MULTI_MASTER SET [BRANCH_ID] = @p_BRANCH_ID,[COLLECT_DT] = CONVERT(DATETIME, @p_COLLECT_DT, 103),[USER_COLLECT] = @p_USER_COLLECT,[NOTES] = @p_NOTES,[RECORD_STATUS] = @p_RECORD_STATUS,
[AUTH_STATUS_KT] = 'E',[CREATE_DT_KT] = CONVERT(DATETIME,@p_CREATE_DT_KT, 103),[APPROVE_DT_KT] = CONVERT(DATETIME, @p_APPROVE_DT_KT, 103),
[CHECKER_ID_KT] = @p_CHECKER_ID_KT,[REPORT_STATUS] = @p_REPORT_STATUS,CORE_NOTE = @p_CORE_NOTE,
MAKER_ID_KT = @p_MAKER_ID_KT
WHERE COL_MULTI_MASTER_ID= @p_COL_MULTI_MASTER_ID
IF @@Error <> 0 GOTO ABORT
--Insert XmlData
FETCH NEXT FROM XmlData INTO @COLLECT_MULTI_ID,@ASSET_ID,@BRANCH_ID,@LOCATION,@PURPOSE_ID,@COLLECT_NOTE,@BRANCH_ID_RECEIVE,@DEPT_ID_RECEIVE,@DEPT_ID_USE,@IS_LIQ,@ASS_AMORTIZED_MONTH,@ASS_AMORTIZED_AMT
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @ERRORSYS NVARCHAR(200) = '',@ASSET_CODE nVARCHAR(20)
-- IF ( EXISTS ( SELECT * FROM ASS_COLLECT_MULTI_DT WHERE [ASSET_ID] = @ASSET_ID AND AUTH_STATUS<>'A' AND [CHECKER_ID_KT] <> 'system'))
-- BEGIN
-- SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID)
-- SET @ERRORSYS = N'Mã: '+@ASSET_CODE+N' đang được thu hồi'
-- CLOSE XmlData
-- DEALLOCATE XmlData
-- ROLLBACK TRANSACTION
-- SELECT '-1' as Result, '' COL_MULTI_MASTER_ID, @ERRORSYS ErrorDesc
-- RETURN '-1'
-- END
-- IF ( EXISTS ( SELECT * FROM ASS_COLLECT WHERE [ASSET_ID] = @ASSET_ID AND AUTH_STATUS<>'A'))
-- BEGIN
-- SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID)
-- SET @ERRORSYS = N'Mã: '+@ASSET_CODE+N' đang được thu hồi'
-- CLOSE XmlData
-- DEALLOCATE XmlData
-- ROLLBACK TRANSACTION
-- SELECT '-1' as Result, '' COL_MULTI_MASTER_ID, @ERRORSYS ErrorDesc
-- RETURN '-1'
--
-- END
IF(LEN(@COLLECT_MULTI_ID) = 0)
BEGIN
EXEC SYS_CodeMasters_Gen 'ASS_COLLECT_MULTI_DT', @COLLECT_MULTI_ID out
IF @COLLECT_MULTI_ID='' OR @COLLECT_MULTI_ID IS NULL GOTO ABORT
END
--LUCTV: 27-12-2018 BO SUNG LAY DON VI SU DUNG, DON VI TAO TS TAI THOI DIEM THU HOI
SET @p_BRANCH_ID = (SELECT BRANCH_ID FROM ASS_MASTER WHERE ASSET_ID =@ASSET_ID)
SET @p_BRANCH_CREATE =(SELECT BRANCH_CREATE FROM ASS_MASTER WHERE ASSET_ID =@ASSET_ID)
SET @DEPT_ID_USE = (SELECT DEPT_ID FROM ASS_MASTER WHERE ASSET_ID =@ASSET_ID)
--END
--PHUCVH 27/02/23 THÊM NGUYÊN GIÁ VÀ GIÁ TRỊ CÒN LẠI TẠI THỜI ĐIỂM TẠO PHIẾU
SELECT @l_BUY_PRICE = A.BUY_PRICE, @l_REMAIN_VALUE = ISNULL((A.AMORT_AMT - A.AMORTIZED_AMT), ISNULL(A.AMORT_AMT,0)),@EMP_ID_USE = A.EMP_ID
FROM ASS_MASTER A
WHERE A.ASSET_ID = @ASSET_ID
INSERT INTO ASS_COLLECT_MULTI_DT([COLLECT_MULTI_ID],[COL_MULTI_MASTER_ID],[ASSET_ID],[BRANCH_ID],[PURPOSE_ID],[COLLECT_DT],[LOCATION],[COLLECT_NOTE],[RECORD_STATUS],
[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT],[BRANCH_CREATE],[AUTH_STATUS_KT],[CREATE_DT_KT],[APPROVE_DT_KT],[MAKER_ID_KT],[CHECKER_ID_KT],[REPORT_STATUS]
,[BRANCH_ID_RECEIVE], [DEPT_ID_RECEIVE], [DEPT_ID_USE],[IS_LIQ], ASS_AMORTIZED_MONTH, ASS_AMORTIZED_AMT,BUY_PRICE,REMAIN_VALUE,EMP_ID_USE)
VALUES(@COLLECT_MULTI_ID ,@p_COL_MULTI_MASTER_ID ,@ASSET_ID ,@p_BRANCH_ID ,@PURPOSE_ID ,CONVERT(DATETIME, @p_COLLECT_DT, 103) ,@LOCATION ,@COLLECT_NOTE ,@p_RECORD_STATUS ,
@p_AUTH_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103) ,@p_BRANCH_CREATE,
@p_AUTH_STATUS_KT ,CONVERT(DATETIME, @p_CREATE_DT_KT, 103) ,CONVERT(DATETIME, @p_APPROVE_DT_KT, 103) ,@p_MAKER_ID_KT ,@p_CHECKER_ID_KT ,'N' ,@BRANCH_ID_RECEIVE, @DEPT_ID_RECEIVE, @DEPT_ID_USE,@IS_LIQ,@ASS_AMORTIZED_MONTH,@ASS_AMORTIZED_AMT,
@l_BUY_PRICE,@l_REMAIN_VALUE,@EMP_ID_USE)
IF @@Error <> 0 GOTO ABORT
FETCH NEXT FROM XmlData INTO @COLLECT_MULTI_ID,@ASSET_ID,@BRANCH_ID,@LOCATION,@PURPOSE_ID,@COLLECT_NOTE,@BRANCH_ID_RECEIVE,@DEPT_ID_RECEIVE,@DEPT_ID_USE,@IS_LIQ,@ASS_AMORTIZED_MONTH,@ASS_AMORTIZED_AMT
END
CLOSE XmlData
DEALLOCATE XmlData
-- HUYHT 06/05/2022: XÓA CÁC PROCESS UPDATE CŨ
DELETE dbo.PL_PROCESS 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,
'UPDATE',
@p_MAKER_ID_KT,
GETDATE(),
N'Giao dịch viên cập nhật hạch toán' ,
N'Giao dịch viên cập nhật hạch toán 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 XmlData
DEALLOCATE XmlData
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].[CM_BRANCH_Search]'
GO
/*
[dbo].[CM_BRANCH_Search] '','','','','','','','','','','','','','','','','','','DV0002'
*/
ALTER PROCEDURE [dbo].[CM_BRANCH_Search]
@p_BRANCH_ID varchar(15) = NULL,
@p_FATHER_ID varchar(15) = NULL,
@p_FATHER_CODE VARCHAR(15) = NULL,
@p_BRANCH_CODE varchar(15) = NULL,
@p_BRANCH_NAME nvarchar(200) = NULL,
@p_REGION_ID varchar(15) = NULL,
@p_REGION_CODE VARCHAR(15) = NULL,
@p_BRANCH_TYPE varchar(5) = NULL,
@p_ADDR nvarchar(200) = NULL,
@p_TEL 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_TOP INT = NULL,
@p_BRANCH_LOGIN varchar(15) = NULL,
@p_USER_LOGIN VARCHAR(20) = NULL,
@p_ISLOADALL BIT = 0
AS
--Validation is here
/*
DECLARE @ERRORSYS NVARCHAR(15) = ''
IF ( [NOT] EXISTS ( SELECT * FROM [TABLE] WHERE [CONDITION] ))
SET @ERRORSYS = ''
IF @ERRORSYS <> ''
BEGIN
SELECT ErrorCode Result, '' CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
RETURN '0'
END */
BEGIN -- PAGING
declare @tmp table(BRANCH_ID varchar(15))
insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)
DECLARE @ROLE_LOGIN TABLE (ROLE_ID varchar(20))
INSERT INTO @ROLE_LOGIN SELECT tugr.ROLE_ID FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN) tugr
IF @p_TOP = 300 SET @p_TOP = 1000
IF(@p_TOP IS NULL OR @p_TOP = '' OR @p_TOP = 0)
-- PAGING BEGIN
SELECT A.*,B.BRANCH_CODE AS F_BRANCH_CODE, B.BRANCH_NAME AS F_BRANCH_NAME, C.AUTH_STATUS_NAME, R.CONTENT AS RECORD_STATUS_NAME, AL.CONTENT AS ACTIVE_STATUS_NAME,
B.BRANCH_CODE + ' - ' + B.BRANCH_NAME as BRACH_NAME_FATHER
-- SELECT END
FROM CM_BRANCH A
LEFT JOIN CM_BRANCH B ON A.FATHER_ID = B.BRANCH_ID
LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS = C.AUTH_STATUS
LEFT JOIN CM_ALLCODE R ON A.RECORD_STATUS = R.CDVAL AND R.CDNAME = 'RECORD_STATUS'
LEFT JOIN CM_ALLCODE AL ON A.AUTH_STATUS = AL.CDVAL AND AL.CDNAME = 'STATUS' AND AL.CDTYPE = 'BR'--doanptt chỉnh sửa ngày 21/08/2021 ở GAPList QTHT.005
WHERE 1 = 1
AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
AND (A.FATHER_ID LIKE '%' + @p_FATHER_ID + '%' OR @p_FATHER_ID IS NULL OR @p_FATHER_ID = '')
AND (B.BRANCH_CODE LIKE '%' + @p_FATHER_CODE + '%' OR @p_FATHER_CODE IS NULL OR @p_FATHER_CODE = '')
AND (A.BRANCH_CODE LIKE '%' + @p_BRANCH_CODE + '%' OR @p_BRANCH_CODE IS NULL OR @p_BRANCH_CODE = '')
AND (A.BRANCH_NAME COLLATE Latin1_general_CI_AI LIKE N'%' + @p_BRANCH_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_BRANCH_NAME IS NULL OR @p_BRANCH_NAME = '')
AND (A.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '')
AND (EXISTS (SELECT * FROM [dbo].[wsiSplit](@p_BRANCH_TYPE, ',') WHERE A.BRANCH_TYPE LIKE '%' + [Value] + '%') OR @p_BRANCH_TYPE IS NULL OR @p_BRANCH_TYPE = '')
AND (A.ADDR LIKE '%' + @p_ADDR + '%' OR @p_ADDR IS NULL OR @p_ADDR = '')
AND (A.TEL LIKE '%' + @p_TEL + '%' OR @p_TEL IS NULL OR @p_TEL = '')
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 (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.RECORD_STATUS = @p_RECORD_STATUS OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
AND ((A.BRANCH_ID = @p_BRANCH_LOGIN OR EXISTS(SELECT ROLE_ID FROM @ROLE_LOGIN WHERE ROLE_ID IN ('QLTS','GDDV_QLTS','GDV_QLTS','GDV','KSV','KSV_QLTS','TBP_QLTS','CV_KHO')) OR @p_ISLOADALL = 1))
ORDER BY A.BRANCH_CODE
-- PAGING END
ELSE
-- PAGING BEGIN
SELECT TOP(CONVERT(INT,@p_TOP))A.*,B.BRANCH_CODE AS F_BRANCH_CODE, B.BRANCH_NAME AS F_BRANCH_NAME, C.AUTH_STATUS_NAME, R.CONTENT AS RECORD_STATUS_NAME,
AL.CONTENT AS ACTIVE_STATUS_NAME, B.BRANCH_CODE + ' - ' + B.BRANCH_NAME as BRACH_NAME_FATHER
-- SELECT END
FROM CM_BRANCH A
LEFT JOIN CM_BRANCH B ON A.FATHER_ID = B.BRANCH_ID
LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS = C.AUTH_STATUS
LEFT JOIN CM_ALLCODE R ON A.RECORD_STATUS = R.CDVAL AND R.CDNAME = 'RECORD_STATUS'
LEFT JOIN CM_ALLCODE AL ON A.AUTH_STATUS = AL.CDVAL AND AL.CDNAME = 'STATUS' AND AL.CDTYPE = 'BR' --doanptt chỉnh sửa ngày 21/08/2021 ở GAPList QTHT.005
WHERE 1 = 1
AND (A.BRANCH_ID LIKE '%' + @p_BRANCH_ID + '%' OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '')
AND (A.FATHER_ID LIKE '%' + @p_FATHER_ID + '%' OR @p_FATHER_ID IS NULL OR @p_FATHER_ID = '')
AND (A.BRANCH_CODE LIKE '%' + @p_BRANCH_CODE + '%' OR @p_BRANCH_CODE IS NULL OR @p_BRANCH_CODE = '')
AND (B.BRANCH_CODE LIKE '%' + @p_FATHER_CODE + '%' OR @p_FATHER_CODE IS NULL OR @p_FATHER_CODE = '')
AND (A.BRANCH_NAME COLLATE Latin1_general_CI_AI LIKE N'%' + @p_BRANCH_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_BRANCH_NAME IS NULL OR @p_BRANCH_NAME = '')
AND (A.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '')
AND (EXISTS (SELECT * FROM [dbo].[wsiSplit](@p_BRANCH_TYPE, ',') WHERE A.BRANCH_TYPE LIKE '%' + [Value] + '%') OR @p_BRANCH_TYPE IS NULL OR @p_BRANCH_TYPE = '')
AND (A.ADDR LIKE '%' + @p_ADDR + '%' OR @p_ADDR IS NULL OR @p_ADDR = '')
AND (A.TEL LIKE '%' + @p_TEL + '%' OR @p_TEL IS NULL OR @p_TEL = '')
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 (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.RECORD_STATUS = @p_RECORD_STATUS OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
AND ((A.BRANCH_ID = @p_BRANCH_LOGIN OR EXISTS(SELECT ROLE_ID FROM @ROLE_LOGIN WHERE ROLE_ID IN ('QLTS','GDDV_QLTS','GDV_QLTS','GDV','KSV','KSV_QLTS','TBP_QLTS','CV_KHO')) OR @p_ISLOADALL = 1))
ORDER BY A.BRANCH_CODE
-- PAGING END
END -- PAGING
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_UPDATE_Upd]'
GO
ALTER PROCEDURE [dbo].[ASS_UPDATE_Upd]
@p_UPDATE_ID varchar(15) = null ,
@p_ASSET_ID varchar(15) = NULL ,
@p_GROUP_ID varchar(15) = NULL ,
@p_ASSET_NAME nvarchar(1000) = NULL ,
@p_ASSET_SERIAL_NO nvarchar(100) = NULL ,
@p_ASSET_DESC nvarchar(MAX) = NULL ,
@p_BUY_PRICE decimal(17) = NULL ,
@p_AMORT_AMT decimal(17) = NULL ,
@p_AMORT_MONTH DECIMAL(18,2) = NULL,
@p_RECORD_STATUS varchar(1) = NULL ,
@p_NOTES nvarchar(1000) = 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_CORE_NOTE nvarchar(500) = NULL,
@p_BRANCH_ID VARCHAR(15) = NULL,
@p_EXT_VALUE DECIMAL(18) = 0,
@p_ACCOUNT_GL VARCHAR(50) = NULL
AS
--Validation is here
DECLARE @ERRORSYS NVARCHAR(15) = ''
declare @l_Amortized_AMT decimal(18,0)
declare @l_AMORTSTATUS varchar(15)
IF ( NOT EXISTS ( SELECT * FROM ASS_UPDATE WHERE UPDATE_ID = @p_UPDATE_ID))
SET @ERRORSYS = ''
--Lay thong tin tai san hien tai
select @l_Amortized_AMT = AMORTIZED_AMT, @l_AMORTSTATUS = AMORT_STATUS
from ASS_MASTER a
where a.ASSET_ID = @p_ASSET_ID
/***** Nguyen gia moi khong duoc nho hon gia tri da khau hao ***********/
IF (@l_Amortized_AMT > @p_AMORT_AMT AND @l_AMORTSTATUS IN ('CKH', 'DKH', 'DPB', 'VNM'))
SET @ERRORSYS = 'ASS-00014'
IF EXISTS(SELECT 1 FROM ASS_MASTER A WHERE A.ASSET_ID = @p_ASSET_ID AND A.AMORT_STATUS='DTL')
SET @ERRORSYS = 'ASS-00017'
IF @ERRORSYS <> ''
BEGIN
SELECT ErrorCode Result, '' CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
RETURN '0'
END
IF EXISTS ( SELECT * FROM ASS_UPDATE WHERE UPDATE_ID = @p_UPDATE_ID AND AUTH_STATUS = 'U')
BEGIN
SELECT '-1' Result, N'Phiếu cập nhật đã được gửi duyệt, không thể chỉnh sửa' ErrorDesc
RETURN '-1'
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---------------
UPDATE ASS_UPDATE SET [ASSET_ID] = @p_ASSET_ID,[GROUP_ID] = @p_GROUP_ID,[ASSET_NAME] = @p_ASSET_NAME,[ASSET_SERIAL_NO] = @p_ASSET_SERIAL_NO,[ASSET_DESC] = @p_ASSET_DESC,[BUY_PRICE] = @p_BUY_PRICE,[AMORT_AMT] = @p_AMORT_AMT, [AMORT_MONTH] = @p_AMORT_MONTH,
[RECORD_STATUS] = @p_RECORD_STATUS, [NOTES] = @p_NOTES,[AUTH_STATUS] = 'E',[MAKER_ID] = @p_MAKER_ID,[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),[CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = NULL,[CORE_NOTE]=@p_CORE_NOTE,
[BRANCH_ID] = @p_BRANCH_ID, [EXT_VALUE] = @p_EXT_VALUE, [ACCOUNT_GL] = @p_ACCOUNT_GL
WHERE UPDATE_ID= @p_UPDATE_ID
--PHONGNT 9/7/22 CHỈ LẤY LẠI LẦN CHỈNH SỬA CUỐI
DELETE PL_PROCESS WHERE REQ_ID =@p_UPDATE_ID AND PROCESS_ID='UPDATE'
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,NOTES
)
VALUES
( @p_UPDATE_ID, -- REQ_ID - varchar(15)
'UPDATE', -- PROCESS_ID - varchar(10)
@p_MAKER_ID, -- CHECKER_ID - varchar(15)
GETDATE(), -- APPROVE_DT - datetime
N'Cập nhật phiếu cập nhật tài sản thành công' ,
N'Cập nhật phiếu cập nhật tài sản' -- PROCESS_DESC - nvarchar(1000)
)
IF @@Error <> 0 GOTO ABORT
COMMIT TRANSACTION
SELECT '0' as Result, @p_UPDATE_ID UPDATE_ID, '' ErrorDesc
RETURN '0'
ABORT:
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' UPDATE_ID, '' ErrorDesc
RETURN '-1'
End
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].[MW_MAST_BAL_Search]'
GO
ALTER PROC [dbo].[MW_MAST_BAL_Search]
@p_PRICE_ID VARCHAR(MAX) = NULL,
@p_BRANCH_ID VARCHAR(15) = NULL,
@p_DEPT_ID VARCHAR(15) = NULL,
@p_QTY_FROM INT = 0,
@p_QTY_TO INT =0,
@p_TOP INT =0,
@p_LEVEL VARCHAR(10) = NULL,
@p_BRANCH_LOGIN VARCHAR(15) = NULL,
@p_WARE_HOUSE VARCHAR(15) = NULL,
@p_IN_ID_MASTER NVARCHAR(50) = NULL,
@p_GROUP_ID VARCHAR(15) = NULL,
@p_MATERIAL_ID VARCHAR(15) = NULL,
@p_NOTES NVARCHAR(1000) = NULL,
@p_MATERIAL_NAME NVARCHAR(1000)= NULL,
@p_OUT_ID VARCHAR(15) = NULL,
@TRANSFER_ID VARCHAR(15) = NULL
AS
BEGIN -- PAGING
--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(@p_PRICE_ID,',')
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)
-- PAGING BEGIN
SELECT
MI.MATERIAL_NAME,
A.MAST_BAL_ID,
A.PRICE_ID,
A.BRANCH_ID,
A.DEPT_ID,
ISNULL(RP.SL_TON,A.QTY_BALANCE) AS QTY_BALANCE,
A.MATERIAL_ID, A.PRICE AS PRICE,B.PRICE_CODE ,
(A.TOTAL_AMT - (A.QTY_BALANCE - ISNULL(RP.SL_TON,A.QTY_BALANCE))*A.PRICE) AS TOTAL_AMT ,B.IN_DATE,
B.MATERIAL_ID AS IN_MATERIAL_ID,
C.BRANCH_CODE,
C.BRANCH_NAME,D.DEP_CODE,D.DEP_NAME,MT.MATERIAL_NAME AS MATERIAL_NAME_NHOM,B.QTY SOlUONG_CODINH,
CAST(ROUND(A.TOTAL_AMT/B.QTY,2) AS DECIMAL(18,2)) DON_GIA,
MI.NOTES, AL.CONTENT WARE_HOUSE_NAME, IM.WARE_HOUSE, MT.EXP_ACCTNO TK_CHIPHI, IM.IN_CODE,MT.MATERIAL_CODE, MI.CREATE_DT
,U.UNIT_ID,U.UNIT_NAME
-- SELECT END
FROM MW_MAST_BAL A
LEFT JOIN MW_MAST_PRICE B ON A.PRICE_ID = B.PRICE_ID
LEFT JOIN MW_IN MI ON B.MATERIAL_ID = MI.IN_ID
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON A.DEPT_ID = D.DEP_ID
LEFT JOIN MW_MATERIAL MT ON A.MATERIAL_ID = MT.MATERIAL_ID
LEFT JOIN MW_IN_MASTER IM ON MI.IN_MASTER_ID = IM.IN_ID
LEFT JOIN CM_ALLCODE AL ON IM.WARE_HOUSE = AL.CDVAL AND AL.CDNAME='WARE_HOUSE_IN'
LEFT JOIN MW_EXPORT_VIEW RP ON A.MAST_BAL_ID = RP.MAST_BAL_ID
LEFT JOIN CM_UNIT U ON MT.UNIT_ID=U.UNIT_ID
WHERE 1=1
--AND(A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID='')
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.DEPT_ID = @p_DEPT_ID OR @p_DEPT_ID IS NULL OR @p_DEPT_ID='')
AND(A.QTY_BALANCE >= @p_QTY_FROM OR @p_QTY_FROM =0 OR @p_QTY_FROM IS NULL)
AND(A.QTY_BALANCE <= @p_QTY_TO OR @p_QTY_TO =0 OR @p_QTY_FROM IS NULL)
AND (A.QTY_BALANCE >0)
AND (MI.GROUP_ID = @p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
AND (MI.MATERIAL_ID = @p_MATERIAL_ID OR @p_MATERIAL_ID IS NULL OR @p_MATERIAL_ID ='')
AND (IM.IN_CODE LIKE N'%'+@p_IN_ID_MASTER +'%'OR @p_IN_ID_MASTER ='' OR @p_IN_ID_MASTER IS NULL)
AND (IM.WARE_HOUSE = @p_WARE_HOUSE OR @p_WARE_HOUSE IS NULL OR @p_WARE_HOUSE ='')
AND (MI.MATERIAL_NAME LIKE '%'+ @p_MATERIAL_NAME+'%'OR @p_MATERIAL_NAME ='' OR @p_MATERIAL_NAME IS NULL)
AND (B.PRICE_CODE LIKE N'%'+@p_PRICE_ID+'%' OR @p_PRICE_ID ='' OR @p_PRICE_ID IS NULL)
--AND (PRICE_CODE IN (SELECT VALUE from @l_LSTSERI) OR @p_PRICE_ID IS NULL OR @p_PRICE_ID ='')
ORDER BY MI.CREATE_DT DESC
-- PAGING END
ELSE
-- PAGING BEGIN
SELECT TOP(CONVERT(INT, @p_TOP))
MI.MATERIAL_NAME,
A.MAST_BAL_ID,
A.PRICE_ID,
A.BRANCH_ID,
A.DEPT_ID,
ISNULL(RP.SL_TON,A.QTY_BALANCE) AS QTY_BALANCE,
A.MATERIAL_ID, A.PRICE AS PRICE,B.PRICE_CODE ,
(A.TOTAL_AMT - (A.QTY_BALANCE - ISNULL(RP.SL_TON,A.QTY_BALANCE))*A.PRICE) AS TOTAL_AMT ,B.IN_DATE,
B.MATERIAL_ID AS IN_MATERIAL_ID,
C.BRANCH_CODE,
C.BRANCH_NAME,D.DEP_CODE,D.DEP_NAME,MT.MATERIAL_NAME AS MATERIAL_NAME_NHOM,B.QTY SOlUONG_CODINH,
CAST(ROUND(A.TOTAL_AMT/B.QTY,2) AS DECIMAL(18,2)) DON_GIA,
MI.NOTES, AL.CONTENT WARE_HOUSE_NAME, IM.WARE_HOUSE, MT.EXP_ACCTNO TK_CHIPHI, IM.IN_CODE,MT.MATERIAL_CODE, MI.CREATE_DT
,U.UNIT_ID,U.UNIT_NAME
-- SELECT END
FROM MW_MAST_BAL A
LEFT JOIN MW_MAST_PRICE B ON A.PRICE_ID = B.PRICE_ID
LEFT JOIN MW_IN MI ON B.MATERIAL_ID = MI.IN_ID
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON A.DEPT_ID = D.DEP_ID
LEFT JOIN MW_MATERIAL MT ON A.MATERIAL_ID = MT.MATERIAL_ID
LEFT JOIN MW_IN_MASTER IM ON MI.IN_MASTER_ID = IM.IN_ID
LEFT JOIN CM_ALLCODE AL ON IM.WARE_HOUSE = AL.CDVAL AND AL.CDNAME='WARE_HOUSE_IN'
LEFT JOIN MW_EXPORT_VIEW RP ON A.MAST_BAL_ID = RP.MAST_BAL_ID
LEFT JOIN CM_UNIT U ON MT.UNIT_ID=U.UNIT_ID
WHERE 1=1
--AND(A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID='')
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.DEPT_ID = @p_DEPT_ID OR @p_DEPT_ID IS NULL OR @p_DEPT_ID='')
AND(A.QTY_BALANCE >= @p_QTY_FROM OR @p_QTY_FROM =0 OR @p_QTY_FROM IS NULL)
AND(A.QTY_BALANCE <= @p_QTY_TO OR @p_QTY_TO =0 OR @p_QTY_FROM IS NULL)
AND (A.QTY_BALANCE >0)
AND (MI.GROUP_ID = @p_GROUP_ID OR @p_GROUP_ID IS NULL OR @p_GROUP_ID ='')
AND (MI.MATERIAL_ID = @p_MATERIAL_ID OR @p_MATERIAL_ID IS NULL OR @p_MATERIAL_ID ='')
AND (IM.IN_CODE LIKE N'%'+@p_IN_ID_MASTER +'%'OR @p_IN_ID_MASTER ='' OR @p_IN_ID_MASTER IS NULL)
AND (IM.WARE_HOUSE = @p_WARE_HOUSE OR @p_WARE_HOUSE IS NULL OR @p_WARE_HOUSE ='')
AND (MI.MATERIAL_NAME LIKE '%'+ @p_MATERIAL_NAME+'%'OR @p_MATERIAL_NAME ='' OR @p_MATERIAL_NAME IS NULL)
AND (B.PRICE_CODE LIKE N'%'+@p_PRICE_ID+'%' OR @p_PRICE_ID ='' OR @p_PRICE_ID IS NULL)
--AND (PRICE_CODE IN (SELECT VALUE from @l_LSTSERI) OR @p_PRICE_ID IS NULL OR @p_PRICE_ID ='')
ORDER BY MI.CREATE_DT DESC
-- PAGING END
END -- PAGING
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[rpt_CCLD_BC8_2]'
GO
ALTER PROCEDURE [dbo].[rpt_CCLD_BC8_2]
@sp_Fromdate VARCHAR(20) = NULL,
@sp_Todate VARCHAR(20) = NULL,
@sp_DVSD VARCHAR(15) = NULL,
@sp_CCLD_Type varchar(15) = NULL,
@sp_Supplier varchar(15) = NULL,
@sp_BRANCH_ID VARCHAR(15) = NULL,
@sp_BRANCH_LOGIN VARCHAR(15) = NULL,
@sp_LEVEL VARCHAR(10) = 'ALL',
@sp_PriceFrom varchar(15) = Null,
@sp_PriceTo varchar(15) = null,
@sp_Dep_ID VARCHAR(15)= NULL
AS
BEGIN
--thieuvq 24/8/2017 - DOC DU LIEU BO QUA COMMIT TRANSACTION
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
declare @tmp table(BRANCH_ID varchar(15))
insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@sp_BRANCH_ID)
declare @tmp_login table(BRANCH_ID varchar(15))
insert into @tmp_login SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@sp_BRANCH_LOGIN)
SELECT
ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS STT,
--F.MA_CCLD,
--F.TEN_CCLD,
SUM(F.SL_GIATRI_TONDAUKY) AS SL_GIATRI_TONDAUKY,
SUM(F.SL_GIATRI_NHAPTRONGKY) AS SL_GIATRI_NHAPTRONGKY,
SUM(F.SL_GIATRI_XUATTRONGKY) AS SL_GIATRI_XUATTRONGKY,
SUM(F.SL_GIATRI_TONCUOIKY) AS SL_GIATRI_TONCUOIKY,
SUM(F.GIATRI_TONDAUKY) AS GIATRI_TONDAUKY,
SUM(F.GIATRI_NHAPTRONGKY) AS GIATRI_NHAPTRONGKY,
SUM(F.GIATRI_XUATTRONGKY) AS GIATRI_XUATTRONGKY,
SUM(F.GIATRI_TONCUOIKY) AS GIATRI_TONCUOIKY,
F.MA_CHI_NHANH_KHO AS MA_CHI_NHANH,
F.TEN_CHI_NHANH_KHO,
'' GHI_CHU,
F.MA_NHOM_CCLD_1,
F.MA_NHOM_CCLD_2,
F.MA_NHOM_CCLD_3,
F.NHOM_CCLD_1,
F.NHOM_CCLD_2,
F.NHOM_CCLD_3,
F.NHOM_CCLD_4,
F.UNIT_NAME_CCLD_3
FROM
( --NHAP KHO
SELECT
STT,
MA_CCLD,
TEN_CCLD,
0 GIATRI_TONDAUKY,
GIATRI AS GIATRI_NHAPTRONGKY,
0 GIATRI_XUATTRONGKY,
GIATRI AS GIATRI_TONCUOIKY,
0 AS SL_GIATRI_TONDAUKY,
1 AS SL_GIATRI_NHAPTRONGKY,
0 AS SL_GIATRI_XUATTRONGKY,
1 AS SL_GIATRI_TONCUOIKY,
MA_CHI_NHANH,
TEN_CHINHANH,
GHI_CHU,
NHOM_CCLD_1,
NHOM_CCLD_2,
NHOM_CCLD_3,
NHOM_CCLD_4,
MA_NHOM_CCLD_1,
MA_NHOM_CCLD_2,
MA_NHOM_CCLD_3,
MA_CHI_NHANH_KHO,
TEN_CHI_NHANH_KHO,
UNIT_NAME_CCLD_3
FROM [dbo].[fn_NHAP_KHO](@sp_Fromdate,@sp_Todate,@sp_DVSD,
@sp_CCLD_Type,@sp_Supplier,@sp_BRANCH_ID,@sp_BRANCH_LOGIN,@sp_LEVEL,@sp_PriceFrom,@sp_PriceTo,@sp_Dep_ID)
UNION ALL
--XUAT KHO
SELECT
STT,
MA_CCLD,
TEN_CCLD,
CASE WHEN (BUY_DATE_KT < CONVERT(datetime, @sp_Fromdate, 103)) THEN GIATRI
ELSE 0
END AS GIATRI_TONDAUKY,
0 GIATRI_NHAPTRONGKY,
GIATRI AS GIATRI_XUATTRONGKY,
CASE WHEN (BUY_DATE_KT < CONVERT(datetime, @sp_Fromdate, 103)) THEN 0
ELSE -GIATRI
END AS GIATRI_TONCUOIKY,
CASE WHEN (BUY_DATE_KT < CONVERT(datetime, @sp_Fromdate, 103)) THEN 1 ELSE 0 END AS SL_GIATRI_TONDAUKY,
0 SL_GIATRI_NHAPTRONGKY,
1 AS SL_GIATRI_XUATTRONGKY,
CASE WHEN (BUY_DATE_KT < CONVERT(datetime, @sp_Fromdate, 103)) THEN 0 ELSE -1 END AS SL_GIATRI_TONCUOIKY,
DVSD AS MA_CHI_NHANH,
TEN_CHINHANH,
GHI_CHU,
NHOM_CCLD_1,
NHOM_CCLD_2,
NHOM_CCLD_3,
NHOM_CCLD_4,
MA_NHOM_CCLD_1,
MA_NHOM_CCLD_2,
MA_NHOM_CCLD_3,
MA_CHI_NHANH_KHO,
TEN_CHI_NHANH_KHO,
UNIT_NAME_CCLD_3
FROM [dbo].[fn_XUAT_KHO](@sp_Fromdate,@sp_Todate,@sp_DVSD,'',@sp_CCLD_Type,@sp_Supplier,
@sp_BRANCH_ID,@sp_BRANCH_LOGIN,@sp_LEVEL,@sp_PriceFrom,@sp_PriceTo,@sp_Dep_ID)
UNION ALL
--TON KHO
SELECT
STT,
MA_CCLD,
TEN_CCLD,
CASE WHEN (BUY_DATE_KT < CONVERT(datetime, @sp_Fromdate, 103)) THEN GIATRI
ELSE 0
END AS GIATRI_TONDAUKY,
0 GIATRI_NHAPTRONGKY,
0 AS GIATRI_XUATTRONGKY,
CASE WHEN (BUY_DATE_KT < CONVERT(datetime, @sp_Fromdate, 103)) THEN GIATRI
ELSE 0
END AS GIATRI_TONCUOIKY,
CASE WHEN (BUY_DATE_KT < CONVERT(datetime, @sp_Fromdate, 103)) THEN 1 ELSE 0 END AS SL_GIATRI_TONDAUKY,
0 AS SL_GIATRI_NHAPTRONGKY,
0 AS SL_GIATRI_XUATTRONGKY,
CASE WHEN (BUY_DATE_KT < CONVERT(datetime, @sp_Fromdate, 103)) THEN 1 ELSE 0 END AS SL_GIATRI_TONCUOIKY,
MA_CHINHANH,
TEN_CHINHANH,
GHI_CHU,
NHOM_CCLD_1,
NHOM_CCLD_2,
NHOM_CCLD_3,
NHOM_CCLD_4,
MA_NHOM_CCLD_1,
MA_NHOM_CCLD_2,
MA_NHOM_CCLD_3,
MA_CHI_NHANH_KHO,
TEN_CHI_NHANH_KHO,
UNIT_NAME_CCLD_3
FROM [dbo].[fn_TON_KHO](@sp_Todate,@sp_DVSD,@sp_CCLD_Type,@sp_Supplier,
@sp_BRANCH_ID,@sp_BRANCH_LOGIN,@sp_LEVEL,@sp_PriceFrom,@sp_PriceTo,@sp_Dep_ID)
)F
--ORDER BY F.MA_CCLD
GROUP BY --F.MA_CCLD,F.TEN_CCLD,
F.MA_NHOM_CCLD_1,F.MA_NHOM_CCLD_2,F.MA_NHOM_CCLD_3,F.MA_CHI_NHANH_KHO,F.NHOM_CCLD_1,F.NHOM_CCLD_2,NHOM_CCLD_3,NHOM_CCLD_4,F.UNIT_NAME_CCLD_3,F.TEN_CHI_NHANH_KHO
END
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 ISNULL(PRP.DEP_ID,'') = ISNULL(@DEP_TRANSFER, ''))
DECLARE @TRANSFER_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 = @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 ISNULL(PRP.DEP_ID,'') = ISNULL(@DEP_RECIVE, ''))
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 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
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, @NAME_TRANSFER AS NAME_TRANSFER, @ADDR_TRANSFER AS ADDR_TRANSFER, @PHONE_TRANSFER AS PHONE_TRANSFER, @POS_TRANSFER 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
@NAME_TRANSFER AS S1,
ISNULL(@POS_TRANSFER, '') + CHAR(13) + N'Đã ký ngày ' + FORMAT(@TRANSFER_CONFIRM_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].[rpt_ASS_USE_MULTI_CONFIRM_Excel]'
GO
ALTER PROC [dbo].[rpt_ASS_USE_MULTI_CONFIRM_Excel]
@USER_MASTER_ID VARCHAR(15) = null,
@BRANCH_ID VARCHAR(15) = null,
@FROMDATE VARCHAR(15) = null,
@TODATE VARCHAR(15) = null,
@IS_CONFIRM VARCHAR(1) = null
as
BEGIN
-- SELECT
-- B.ASSET_CODE, B.ASSET_NAME, B.AMORT_MONTH, B.AMORTIZED_MONTH, B.AMORT_AMT, B.AMORTIZED_AMT, AMORT_AMT - B.AMORTIZED_AMT AS GT_CL, B.NOTES,
-- A.USER_MASTER_ID,CB.BRANCH_CODE,CB.BRANCH_NAME,1 AS SL,B.BUY_PRICE,'' AS UNIT,B.ASSET_SERIAL_NO AS SERIAL_NUMBER,
-- dbo.FN_GET_BRANCH_LEADER(C.BRANCH_ID, c.DEPT_ID) AS TLFullName,D.DEP_CODE,D.DEP_NAME,E.REQ_CODE
-- FROM ASS_USE_MULTI_MASTER A
-- INNER JOIN ASS_USE_MULTI_DT C ON C.USER_MASTER_ID = A.USER_MASTER_ID
-- INNER JOIN ASS_MASTER B ON B.ASSET_ID = C.ASSET_ID
-- LEFT JOIN CM_BRANCH CB ON CB.BRANCH_ID = C.BRANCH_ID
-- LEFT JOIN CM_DEPARTMENT D ON A.DEP_ID = D.DEP_ID
-- LEFT JOIN TR_REQUEST_SHOP_DOC E ON C.REQ_ID = E.REQ_ID
-- WHERE (A.USER_MASTER_ID = @USER_MASTER_ID OR @USER_MASTER_ID IS NULL OR @USER_MASTER_ID = '')
-- AND A.AUTH_STATUS = 'A'
-- AND (C.BRANCH_ID = @BRANCH_ID OR @BRANCH_ID IS NULL OR @BRANCH_ID = '')
-- AND ((@IS_CONFIRM = 'Y' AND A.USER_MASTER_ID IN (SELECT USER_MASTER_ID FROM ASS_CONFIRM_USE_MASTER))
-- OR (@IS_CONFIRM = 'N' AND A.USER_MASTER_ID NOT IN (SELECT USER_MASTER_ID FROM ASS_CONFIRM_USE_MASTER)
-- OR (@IS_CONFIRM= '' OR @IS_CONFIRM IS NULL)))
-- AND (CONVERT(DATE,A.APPROVE_DT) >= CONVERT(DATE, @FROMDATE, 103) OR @FROMDATE is NULL OR @FROMDATE = '')
-- AND (CONVERT(DATE,A.APPROVE_DT) <= CONVERT(DATE, @TODATE, 103) OR @TODATE is NULL OR @TODATE = '')
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS STT
,RE.SO_PYC
,RE.NGAY_TAO_PYC
,RE.MA_PHIEU_XUAT
,RE.NOI_DUNG_BIEN_BAN
,RE.MA_DV_NHAN
,RE.TEN_DV_NHAN
,RE.MA_PB_NHAN
,RE.TEN_PB_NHAN
,RE.NGAY_XUAT
,RE.NGUOI_XUAT
,RE.NGUOI_DUYET
,RE.NGUOI_XAC_NHAN
FROM (
SELECT
A.REQ_CODE AS SO_PYC
,FORMAT(A.REQ_DT,'dd/MM/yyyy') AS NGAY_TAO_PYC
,B.USER_MASTER_ID AS MA_PHIEU_XUAT
,D.CONTENT AS NOI_DUNG_BIEN_BAN
,H.BRANCH_CODE AS MA_DV_NHAN
,H.BRANCH_NAME AS TEN_DV_NHAN
,I.DEP_CODE AS MA_PB_NHAN
,I.DEP_NAME AS TEN_PB_NHAN
,FORMAT(D.CREATE_DT,'dd/MM/yyyy') AS NGAY_XUAT
,E.TLFullName AS NGUOI_XUAT
,F.TLFullName AS NGUOI_DUYET
,G.TLFullName AS NGUOI_XAC_NHAN
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN ASS_USE_MULTI_DT B ON A.REQ_ID = B.REQ_ID
LEFT JOIN ASS_USE_MULTI_MASTER D ON B.USER_MASTER_ID = D.USER_MASTER_ID
LEFT JOIN ASS_USE_CONFIRM_MASTER C ON B.USER_MASTER_ID = C.USER_MASTER_ID
LEFT JOIN TL_USER E ON D.MAKER_ID = E.TLNANME
LEFT JOIN TL_USER F ON D.CHECKER_ID = F.TLNANME
LEFT JOIN TL_USER G ON C.MAKER_ID = G.TLNANME
LEFT JOIN CM_BRANCH H ON D.BRANCH_ID = H.BRANCH_ID
LEFT JOIN CM_DEPARTMENT I ON D.DEP_ID = I.DEP_ID
WHERE ((A.STATUS = 'APPROVE' AND @IS_CONFIRM = 'N')
OR (A.STATUS = 'DONE' AND @IS_CONFIRM = 'Y')
OR ((@IS_CONFIRM IS NULL OR @IS_CONFIRM = '') AND A.STATUS IN ('APPROVE','DONE')))
AND A.REQ_TYPE = 'CPTS'
AND (D.USER_MASTER_ID = @USER_MASTER_ID OR @USER_MASTER_ID IS NULL OR @USER_MASTER_ID = '')
AND ((@IS_CONFIRM = 'Y' AND C.USER_CONFIRM_MASTER_ID IS NOT NULL AND C.USER_CONFIRM_MASTER_ID <> '')
OR (@IS_CONFIRM = 'N' AND C.USER_CONFIRM_MASTER_ID IS NULL)
OR @IS_CONFIRM= '' OR @IS_CONFIRM IS NULL)
AND (CONVERT(DATE,A.APPROVE_DT) >= CONVERT(DATE, @FROMDATE, 103) OR @FROMDATE is NULL OR @FROMDATE = '')
AND (CONVERT(DATE,A.APPROVE_DT) <= CONVERT(DATE, @TODATE, 103) OR @TODATE is NULL OR @TODATE = '')
GROUP BY A.REQ_CODE,A.REQ_DT,B.USER_MASTER_ID,D.CONTENT,H.BRANCH_CODE,H.BRANCH_NAME,I.DEP_CODE,I.DEP_NAME,D.CREATE_DT,E.TLFullName,F.TLFullName,G.TLFullName
UNION ALL
SELECT
NULL AS SO_PYC
,NULL AS NGAY_TAO_PYC
,A.USER_MASTER_ID AS MA_PHIEU_XUAT
,A.CONTENT AS NOI_DUNG_BIEN_BAN
,H.BRANCH_CODE AS MA_DV_NHAN
,H.BRANCH_NAME AS TEN_DV_NHAN
,I.DEP_CODE AS MA_PB_NHAN
,I.DEP_NAME AS TEN_PB_NHAN
,FORMAT(A.CREATE_DT,'dd/MM/yyyy') AS NGAY_XUAT
,E.TLFullName AS NGUOI_XUAT
,F.TLFullName AS NGUOI_DUYET
,G.TLFullName AS NGUOI_XAC_NHAN
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 A.MAKER_ID = E.TLNANME
LEFT JOIN TL_USER F ON A.CHECKER_ID = F.TLNANME
LEFT JOIN TL_USER G ON B.MAKER_ID = G.TLNANME
LEFT JOIN CM_BRANCH H ON A.BRANCH_ID = H.BRANCH_ID
LEFT JOIN CM_DEPARTMENT I ON A.DEP_ID = I.DEP_ID
WHERE NOT EXISTS(SELECT 1 FROM ASS_USE_MULTI_DT K
WHERE K.USER_MASTER_ID = A.USER_MASTER_ID AND K.REQ_ID IS NOT NULL AND K.REQ_ID <> '')
AND (A.USER_MASTER_ID = @USER_MASTER_ID OR @USER_MASTER_ID IS NULL OR @USER_MASTER_ID = '')
AND ((@IS_CONFIRM = 'Y' AND B.USER_CONFIRM_MASTER_ID IS NOT NULL AND B.USER_CONFIRM_MASTER_ID <> '')
OR (@IS_CONFIRM = 'N' AND B.USER_CONFIRM_MASTER_ID IS NULL)
OR @IS_CONFIRM= '' OR @IS_CONFIRM IS NULL)
AND (CONVERT(DATE,A.APPROVE_DT) >= CONVERT(DATE, @FROMDATE, 103) OR @FROMDATE is NULL OR @FROMDATE = '')
AND (CONVERT(DATE,A.APPROVE_DT) <= CONVERT(DATE, @TODATE, 103) OR @TODATE is NULL OR @TODATE = '')
) RE
ORDER BY RE.SO_PYC
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_TRANSFER_MULTI_MASTER_Search]'
GO
ALTER PROCEDURE [dbo].[ASS_TRANSFER_MULTI_MASTER_Search]
@p_TRANS_MULTI_MASTER_ID varchar(15) = NULL,
@p_BRANCH_ID varchar(15) = NULL,
@p_TRANSFER_DT VARCHAR(20) = NULL,
@p_USER_TRANSFER nvarchar(200) = NULL,
@p_USER_TRANSFER_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 = 10,
@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_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)
--TÌM THÔNG TIN USER LOGIN
DECLARE @ROLE_LOGIN TABLE(ROLE_USER 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
--TÌM KIẾM THEO QUYỀN XỬ LÝ
DECLARE @TRANS_MULTI_MASTER_ID_Temp TABLE(TRANS_MASTER_ID VARCHAR(20))
INSERT INTO @TRANS_MULTI_MASTER_ID_Temp
SELECT A.TRANS_MULTI_MASTER_ID FROM ASS_TRANSFER_MULTI_MASTER A
LEFT JOIN PL_REQUEST_PROCESS B ON A.TRANS_MULTI_MASTER_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.TRANS_MULTI_MASTER_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 EXISTS(SELECT * FROM @ROLE_LOGIN RL
JOIN PL_REQUEST_PROCESS C ON C.REQ_ID = A.TRANS_MULTI_MASTER_ID AND C.PROCESS_ID = 'TGD' AND RL.BRANCH_ID = C.BRANCH_ID
AND (C.BRANCH_ID = 'DV0001' OR C.BRANCH_ID <> 'DV0001')
AND RL.ROLE_USER = C.ROLE_USER)
OR A.MAKER_ID = @p_USER_LOGIN)
GROUP BY A.TRANS_MULTI_MASTER_ID
IF(@p_TOP is NULL OR @p_TOP = '' OR @p_TOP = 0)
-- PAGING BEGIN
SELECT A.*,C.BRANCH_CODE, F.AUTH_STATUS_NAME,C.BRANCH_CODE +' - '+ C.BRANCH_NAME AS FULL_BRANCH_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,
@p_USER_LOGIN AS USER_LOGIN,@p_TYPE_SEARCH AS TYPE_SEARCH
, A.STATUS AS STATUS_XL
, A.REQ_ID AS REQ_PARENT_ID, A. REQ_CODE AS REQ_PARENT_CODE,
CASE WHEN C.BRANCH_TYPE = 'HS' THEN C.BRANCH_NAME + ' - ' + CD.DEP_NAME ELSE C.BRANCH_NAME END AS BRANCH_NAME
-- SELECT END
FROM ASS_TRANSFER_MULTI_MASTER A
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT CD ON A.DEPT_CREATE = CD.DEP_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
WHERE 1 = 1
AND (A.TRANS_MULTI_MASTER_ID LIKE '%' + @p_TRANS_MULTI_MASTER_ID + '%' OR @p_TRANS_MULTI_MASTER_ID IS NULL OR @p_TRANS_MULTI_MASTER_ID = '')
-- TIM KIEM TU NGAY O HC
AND ((@p_TYPE_SEARCH = 'HC' AND (CONVERT(DATE,A.TRANSFER_DT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR (@p_TYPE_SEARCH = 'KT' AND (A.STATUS = 'APPROVE') OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
OR(@p_TYPE_SEARCH = 'XN' AND (A.STATUS IN ('APPROVE','XNGN')) 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.TRANSFER_DT,103) <= CONVERT(DATE, @p_TODATE, 103) OR @p_TODATE is NULL OR @p_TODATE = ''))
OR (@p_TYPE_SEARCH = 'KT' AND (A.STATUS = 'APPROVE') OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '')
OR(@p_TYPE_SEARCH = 'XN' AND (A.STATUS IN ('APPROVE','XNGN')) 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 = '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 = '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 = ''))))))
OR (@p_TYPE_SEARCH = 'HC' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '') OR (@p_TYPE_SEARCH = 'XN' 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 = '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 = 'E' 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 = '')))
)))
OR (@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 IS NULL OR @p_TYPE_SEARCH = '') OR (@p_TYPE_SEARCH = 'XN' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = ''))
AND (A.USER_TRANSFER LIKE '%' + @p_USER_TRANSFER + '%' OR @p_USER_TRANSFER IS NULL OR @p_USER_TRANSFER = '')
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 (@p_BRANCH_ID = '' OR @p_BRANCH_ID IS NULL)))
AND A.RECORD_STATUS='1'
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='')
-- 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 XUAT THEO QUYEN KIEM NHIEM
AND (
(@p_TYPE_SEARCH = 'HC'
--KHIEMCHG BỔ SUNG TÌM KIẾM THEO QUYỀN XỬ LÝ
AND EXISTS(SELECT * FROM @TRANS_MULTI_MASTER_ID_Temp RL WHERE RL.TRANS_MASTER_ID = A.TRANS_MULTI_MASTER_ID)
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 (A.STATUS = 'APPROVE'))
OR (@p_TYPE_SEARCH='KT' AND @p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_ID AND (A.STATUS = 'APPROVE'))
-- KHIEMCHG BỔ SUNG TÌM KIẾM THEO MÀN HÌNH XÁC NHẬN ĐIỀU CHUYỂN
OR (@p_TYPE_SEARCH = 'XN'
AND (EXISTS(SELECT * FROM @TRANS_MULTI_MASTER_ID_Temp RL WHERE RL.TRANS_MASTER_ID = A.TRANS_MULTI_MASTER_ID)
AND (A.STATUS IN ('XNGN', 'APPROVE')))
OR A.MAKER_ID = @p_USER_LOGIN
)
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 = '')
ORDER BY A.CREATE_DT DESC
-- PAGING END
ELSE
-- PAGING BEGIN
SELECT A.*,C.BRANCH_CODE, F.AUTH_STATUS_NAME,C.BRANCH_CODE +' - '+ C.BRANCH_NAME AS FULL_BRANCH_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,
@p_USER_LOGIN AS USER_LOGIN,@p_TYPE_SEARCH AS TYPE_SEARCH
, A.STATUS AS STATUS_XL
, A.REQ_ID AS REQ_PARENT_ID, A. REQ_CODE AS REQ_PARENT_CODE,
CASE WHEN C.BRANCH_TYPE = 'HS' THEN C.BRANCH_NAME + ' - ' + CD.DEP_NAME ELSE C.BRANCH_NAME END AS BRANCH_NAME
-- SELECT END
FROM ASS_TRANSFER_MULTI_MASTER A
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT CD ON A.DEPT_CREATE = CD.DEP_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
WHERE 1 = 1
AND (A.TRANS_MULTI_MASTER_ID LIKE '%' + @p_TRANS_MULTI_MASTER_ID + '%' OR @p_TRANS_MULTI_MASTER_ID IS NULL OR @p_TRANS_MULTI_MASTER_ID = '')
-- TIM KIEM TU NGAY O HC
AND ((@p_TYPE_SEARCH = 'HC' AND (CONVERT(DATE,A.TRANSFER_DT,103) >= CONVERT(DATE, @p_FromDate, 103) OR @p_FromDate is NULL OR @p_FromDate = ''))
OR @p_TYPE_SEARCH = 'KT' AND (A.STATUS = 'APPROVE') 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.TRANSFER_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 = '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 = '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 = ''))))))
OR (@p_TYPE_SEARCH = 'HC' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = '') OR (@p_TYPE_SEARCH = 'XN' 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 = '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 = 'E' 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 = '')))
)))
OR (@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 IS NULL OR @p_TYPE_SEARCH = '') OR (@p_TYPE_SEARCH = 'XN' OR @p_TYPE_SEARCH IS NULL OR @p_TYPE_SEARCH = ''))
AND (A.USER_TRANSFER LIKE '%' + @p_USER_TRANSFER + '%' OR @p_USER_TRANSFER IS NULL OR @p_USER_TRANSFER = '')
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 (@p_BRANCH_ID = '' OR @p_BRANCH_ID IS NULL)))
AND A.RECORD_STATUS='1'
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='')
-- 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 XUAT THEO QUYEN KIEM NHIEM
AND (
(@p_TYPE_SEARCH = 'HC'
--KHIEMCHG BỔ SUNG TÌM KIẾM THEO QUYỀN XỬ LÝ
AND EXISTS(SELECT * FROM @TRANS_MULTI_MASTER_ID_Temp RL WHERE RL.TRANS_MASTER_ID = A.TRANS_MULTI_MASTER_ID)
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 (A.STATUS = 'APPROVE'))
OR (@p_TYPE_SEARCH='KT' AND @p_LEVEL = 'UNIT' AND A.BRANCH_ID = @p_BRANCH_ID AND (A.STATUS = 'APPROVE'))
-- KHIEMCHG BỔ SUNG TÌM KIẾM THEO MÀN HÌNH XÁC NHẬN ĐIỀU CHUYỂN
OR (@p_TYPE_SEARCH = 'XN'
AND (EXISTS(SELECT * FROM @TRANS_MULTI_MASTER_ID_Temp RL WHERE RL.TRANS_MASTER_ID = A.TRANS_MULTI_MASTER_ID)
AND (A.STATUS IN ('XNGN', 'APPROVE')))
OR A.MAKER_ID = @p_USER_LOGIN
)
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 = '')
ORDER BY A.CREATE_DT DESC
-- PAGING END
END -- PAGING
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].[BUD_CONTRACT_MASTER_Ins]'
GO
/*
INSERT INTO SYS_PREFIX(ID,Prefix,[Description]) VALUES('BUD_CONTRACT_MASTER','UMA','')
INSERT INTO SYS_CODEMASTERS(Prefix,CurValue,Active) VALUES('UMA','1','1')
INSERT INTO SYS_PREFIX(ID,Prefix,[Description]) VALUES('BUD_CONTRACT_DT','UDT','')
INSERT INTO SYS_CODEMASTERS(Prefix,CurValue,Active) VALUES('UDT','1','1')
INSERT INTO SYS_PREFIX(ID,Prefix,[Description]) VALUES('BUD_CONTACT','UCO','')
INSERT INTO SYS_CODEMASTERS(Prefix,CurValue,Active) VALUES('UCO','1','1')
INSERT INTO SYS_PREFIX(ID,Prefix,[Description]) VALUES('BUD_UTIL_LOG','ULO','')
INSERT INTO SYS_CODEMASTERS(Prefix,CurValue,Active) VALUES('ULO','1','1')
*/
ALTER PROCEDURE [dbo].[BUD_CONTRACT_MASTER_Ins]
@p_CONTRACT_ID varchar(15) = NULL,
@p_BUILDING_ID varchar(15) = NULL,
@p_CONTRACT_NO nvarchar(100) = NULL,
@p_VERSION_NO int = NULL,
@p_CUST_ID varchar(15) = NULL,
@p_INPUT_DT VARCHAR(20) = NULL,
@p_AMEND_DT VARCHAR(20) = NULL,
@p_FROM_DT VARCHAR(20) = NULL,
@p_TO_DATE VARCHAR(20) = NULL,
@p_CLOSE_DT VARCHAR(20) = NULL,
@p_MONTHS int=0,
@p_RENT_PRICE numeric(18) = NULL,
@p_NOTES NVARCHAR(MAX)= NULL,
@p_BRANCH_ID VARCHAR(15) = NULL,
@p_RECORD_STATUS varchar(1) = NULL,
@p_AUTH_STATUS varchar(1) = NULL,
@p_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_XML_TEMP xml = NULL,
@p_VAT DECIMAL(18,0),
@p_VAT_AMT DECIMAL(18,0),
@p_DEPOSITS_AMT DECIMAL(18,0),
@p_PAYMENT_SHEDULE NVARCHAR(500),
@p_IS_SEND_APPR VARCHAR(15),
@p_SEND_APPR_DT VARCHAR(20),
@p_SIGN_USER VARCHAR(100),
@p_SIGN_DT VARCHAR(15),
@p_XML_ELEC_WAR xml = NULL
AS
---BAODNQ 30/12/2021:Thêm cột vào bảng BUD_CONTRACT_MASTER-------
IF (EXISTS ( SELECT * FROM BUD_CONTRACT_MASTER WHERE CONTRACT_NO=@p_CONTRACT_NO AND VERSION_NO=@p_VERSION_NO))
BEGIN
SELECT '-1' Result, '' CONTRACT_ID, N'Số hợp đồng này đã tồn tại' ErrorDesc
RETURN '0'
END
-----------------BẮT BUỘC NHẬP LƯỚI THÔNG TIN CHI TIẾT HỢP ĐỒNG------------------------
DECLARE @p_BUD_CONTRACT_DT_XML_COUNT INT
SET @p_BUD_CONTRACT_DT_XML_COUNT = (
SELECT @p_XML_TEMP.value('count(/Root/XmlData1)', 'INT') AS 'COUNT'
)
PRINT @p_BUD_CONTRACT_DT_XML_COUNT
IF(@p_BUD_CONTRACT_DT_XML_COUNT <= 0)
BEGIN
SELECT '-1' Result, '' CONTRACT_ID,
N'Lưới thông tin chi tiết diện tích sử dụng nội bộ không được để trống' ErrorDesc
RETURN '-1'
END
BEGIN TRANSACTION
DECLARE @stt INT = 0
DECLARE @l_CONTRACT_ID VARCHAR(15)
IF(LEN( @p_CONTRACT_ID)=0 OR @p_CONTRACT_ID IS NULL)
EXEC SYS_CodeMasters_Gen 'BUD_CONTRACT_MASTER', @p_CONTRACT_ID out
IF @p_CONTRACT_ID='' OR @p_CONTRACT_ID IS NULL GOTO ABORT
INSERT INTO BUD_CONTRACT_MASTER([CONTRACT_ID],[BUILDING_ID],[CONTRACT_NO],[VERSION_NO],[CUST_ID],
[INPUT_DT],[AMEND_DT],[FROM_DT],[TO_DATE],[CLOSE_DT],[MONTHS],[RENT_PRICE],[NOTES],
[BRANCH_ID],[RECORD_STATUS],[AUTH_STATUS],[STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],
[APPROVE_DT],[XML_TEMP],[VAT],[VAT_AMT],[DEPOSITS_AMT],[PAYMENT_SHEDULE],[IS_SEND_APPR],[SEND_APPR_DT],
[SIGN_USER], [SIGN_DT])
VALUES(@p_CONTRACT_ID ,@p_BUILDING_ID ,@p_CONTRACT_NO ,@p_VERSION_NO ,@p_CUST_ID ,CONVERT(DATE, @p_INPUT_DT, 103) ,
CONVERT(DATE, @p_AMEND_DT, 103) ,CONVERT(DATE, @p_FROM_DT, 103) ,CONVERT(DATE, @p_TO_DATE, 103) ,
CONVERT(DATE, @p_CLOSE_DT, 103) ,@p_MONTHS ,@p_RENT_PRICE ,@p_NOTES,@p_BRANCH_ID,
'1' ,@p_AUTH_STATUS,'N',@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,NULL ,@p_XML_TEMP,@p_VAT,
(@p_VAT*@p_RENT_PRICE)/100,@p_DEPOSITS_AMT,@p_PAYMENT_SHEDULE,@p_IS_SEND_APPR,
@p_SEND_APPR_DT,@p_SIGN_USER,@p_SIGN_DT)
-----------------------------------------------------------------------------------------------------
----INSERT VAO BANG BUD_CONTACT
DELETE FROM BUD_CONTACT WHERE CONTRACT_ID = @p_CONTRACT_ID
INSERT INTO BUD_CONTACT VALUES(@p_CONTRACT_ID,@p_VERSION_NO,@p_BUILDING_ID,@p_CONTRACT_NO,@p_CUST_ID,CONVERT(DATE, @p_CREATE_DT, 103))
IF @@Error <> 0 GOTO ABORT
Declare @hdoc1 INT
----BAODNQ : Thêm các cột vào bảng BUD_CONTRACT_DT---
DECLARE
@d_CONTRACT_DTID VARCHAR(15),
@d_BUILD_ID VARCHAR(15),
@d_VERSION_NO INT,
@d_BUILDING_AREA_ID VARCHAR(15),
@d_RENT_AREA DECIMAL(18,2),
@d_RENT_AREA_APP DECIMAL(18,2),
@d_AREA_REMAIN DECIMAL(18,2),
@d_RENT_PRICE DECIMAL,
@d_NOTES NVARCHAR(MAX),
@d_DIEN_TICH_TANG DECIMAL(18,2),
@d_DIEN_TICH_SD_NOI_BO DECIMAL(18,2),
@d_DIEN_TICH_DA_CHO_THUE DECIMAL(18,2),
@d_DIEN_TICH_CON_LAI DECIMAL(18,2),
@d_DIEN_TICH_CAN_SD DECIMAL(18,2),
@d_REASON NVARCHAR(MAX),
@d_PRICE DECIMAL,
@d_TOTAL_AMT DECIMAL,
@d_DIEN_TICH_CON_LAI_FINAL DECIMAL(18,2),
@d_BRANCH_ID NVARCHAR(15),
@d_DEP_ID NVARCHAR(15),
@d_VAT INT,
@d_PAY_PHASE VARCHAR(15),
@d_STATUS VARCHAR(15) --Tình trạng (Tốt, bình thường, xuống cấp)
Exec sp_xml_preparedocument @hdoc1 Output,@p_XML_TEMP
DECLARE XmlDataDoc CURSOR FOR
SELECT *
FROM OPENXML(@hdoc1,'/Root/XmlData1',2)
WITH
(
----BAODNQ : Thêm các cột vào bảng BUD_CONTRACT_DT---
CONTRACT_DTID VARCHAR(15),
BUILD_ID VARCHAR(15),
VERSION_NO INT,
BUILDING_AREA_ID VARCHAR(15),
RENT_AREA DECIMAL(18,2),
RENT_AREA_APP DECIMAL(18,2),
AREA_REMAIN DECIMAL(18,2),
RENT_PRICE DECIMAL,
NOTES NVARCHAR(MAX),
DIEN_TICH_TANG DECIMAL(18,2),
DIEN_TICH_SD_NOI_BO DECIMAL(18,2),
DIEN_TICH_DA_CHO_THUE DECIMAL(18,2),
DIEN_TICH_CON_LAI DECIMAL(18,2),
DIEN_TICH_CAN_SD DECIMAL(18,2),
REASON NVARCHAR(MAX),
PRICE DECIMAL,
TOTAL_AMT DECIMAL,
DIEN_TICH_CON_LAI_FINAL DECIMAL(18,2),
BRANCH_ID NVARCHAR(15),
DEP_ID NVARCHAR(15),
VAT INT,
PAY_PHASE VARCHAR(15),
STATUS VARCHAR(15) --Tình trạng (Tốt, bình thường, xuống cấp)
)
OPEN XmlDataDoc
----BAODNQ : Thêm các cột vào bảng BUD_CONTRACT_DT---
FETCH NEXT FROM XmlDataDoc INTO
@d_CONTRACT_DTID,
@d_BUILD_ID,
@d_VERSION_NO,
@d_BUILDING_AREA_ID,
@d_RENT_AREA,
@d_RENT_AREA_APP,
@d_AREA_REMAIN,
@d_RENT_PRICE,
@d_NOTES,
@d_DIEN_TICH_TANG,
@d_DIEN_TICH_SD_NOI_BO,
@d_DIEN_TICH_DA_CHO_THUE,
@d_DIEN_TICH_CON_LAI,
@d_DIEN_TICH_CAN_SD,
@d_REASON,
@d_PRICE,
@d_TOTAL_AMT,
@d_DIEN_TICH_CON_LAI_FINAL,
@d_BRANCH_ID,
@d_DEP_ID,
@d_VAT,
@d_PAY_PHASE,
@d_STATUS --Tình trạng (Tốt, bình thường, xuống cấp)
WHILE @@FETCH_STATUS = 0
BEGIN
-------------BAODNQ 11/3/2022: Check lỗi insert--------
DECLARE @VALUE_ERROR DECIMAL(18,0)
SET @stt= @stt+1
SET @VALUE_ERROR = (
SELECT FLOOR_AREA - (UTILZED_AREA + INTERNAL_AREA)
FROM BUD_AREA_DT WHERE BUILDING_AREA_ID = @d_BUILDING_AREA_ID
)
DECLARE @ERRORSYS NVARCHAR(200) =''
--IF ( @d_DIEN_TICH_CAN_SD > (@VALUE_ERROR + @d_RENT_AREA_APP) OR @d_DIEN_TICH_CAN_SD > @d_DIEN_TICH_CON_LAI_FINAL)
--IF ( @d_DIEN_TICH_CAN_SD > (@VALUE_ERROR + @d_RENT_AREA_APP) OR @d_DIEN_TICH_CAN_SD > @d_DIEN_TICH_CON_LAI)
IF (@d_DIEN_TICH_CAN_SD > @d_DIEN_TICH_CON_LAI)
BEGIN
SET @ERRORSYS =
N'Lưới chi tiết DTSD nội bộ, ' +
N'Dòng '+ convert(nvarchar(2),@stt) +N': DT cần sử dụng phải nhỏ hơn hoặc bằng DT trống'
END
--IF ( @d_DIEN_TICH_CAN_SD = 0)
--BEGIN
-- SET @ERRORSYS =
-- N'Lưới chi tiết DTSD nội bộ, ' +
-- N'Dòng '+ convert(nvarchar(2),@stt) +N': DT cần sử dụng phải lớn hơn 0 '
--END
IF @ERRORSYS <> ''
BEGIN
CLOSE XmlDataDoc
DEALLOCATE XmlDataDoc
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' CONTRACT_ID, @ERRORSYS ErrorDesc
RETURN '-1'
END
---BAODNQ: insert thêm vào các cột trong bảng BUD_CONTRACT_DT---
EXEC SYS_CodeMasters_Gen 'BUD_CONTRACT_DT', @d_CONTRACT_DTID out
IF @d_CONTRACT_DTID='' OR @d_CONTRACT_DTID IS NULL GOTO ABORT
INSERT INTO BUD_CONTRACT_DT([CONTRACT_DTID],[BUILD_ID],[CONTRACT_ID],[VERSION_NO],[BUILDING_AREA_ID],[RENT_AREA],[RENT_AREA_APP],
[AREA_REMAIN],[RENT_PRICE],[NOTES], [DIEN_TICH_TANG], [DIEN_TICH_SD_NOI_BO],[DIEN_TICH_DA_CHO_THUE],[DIEN_TICH_CON_LAI],
[DIEN_TICH_CAN_SD],[REASON],[PRICE],[TOTAL_AMT],[DIEN_TICH_CON_LAI_FINAL],[BRANCH_ID],[DEP_ID], [VAT], [PAY_PHASE],[STATUS])
VALUES(@d_CONTRACT_DTID ,@d_BUILD_ID ,@p_CONTRACT_ID ,@d_VERSION_NO ,@d_BUILDING_AREA_ID ,@d_RENT_AREA,0,@d_AREA_REMAIN,@d_RENT_PRICE,@d_NOTES,
@d_DIEN_TICH_TANG,@d_DIEN_TICH_SD_NOI_BO,@d_DIEN_TICH_DA_CHO_THUE,@d_DIEN_TICH_CON_LAI,@d_DIEN_TICH_CAN_SD,@d_REASON,
@d_PRICE,@d_TOTAL_AMT,@d_DIEN_TICH_CON_LAI_FINAL,@d_BRANCH_ID,@d_DEP_ID, @d_VAT, @d_PAY_PHASE,@d_STATUS)
IF @@Error <> 0 GOTO ABORT
FETCH NEXT FROM XmlDataDoc INTO
@d_CONTRACT_DTID,
@d_BUILD_ID,
@d_VERSION_NO,
@d_BUILDING_AREA_ID,
@d_RENT_AREA,
@d_RENT_AREA_APP,
@d_AREA_REMAIN,
@d_RENT_PRICE,
@d_NOTES,
@d_DIEN_TICH_TANG,
@d_DIEN_TICH_SD_NOI_BO,
@d_DIEN_TICH_DA_CHO_THUE,
@d_DIEN_TICH_CON_LAI,
@d_DIEN_TICH_CAN_SD,
@d_REASON,
@d_PRICE,
@d_TOTAL_AMT,
@d_DIEN_TICH_CON_LAI_FINAL,
@d_BRANCH_ID,
@d_DEP_ID,
@d_VAT,
@d_PAY_PHASE,
@d_STATUS --Tình trạng (Tốt, bình thường, xuống cấp)
END
CLOSE XmlDataDoc
DEALLOCATE XmlDataDoc
---BAODNQ: sửa lấy tổng thành TOTAL_AMT---
SET @p_RENT_PRICE = (SELECT SUM(TOTAL_AMT) FROM BUD_CONTRACT_DT
WHERE CONTRACT_ID =@p_CONTRACT_ID
AND VERSION_NO=@p_VERSION_NO)
UPDATE BUD_CONTRACT_MASTER
--SET RENT_PRICE=@p_RENT_PRICE*MONTHS
SET RENT_PRICE = @p_RENT_PRICE
WHERE CONTRACT_ID=@p_CONTRACT_ID AND VERSION_NO=@p_VERSION_NO
------------------------------------------------------------------
----PHUCVH 25/04/2023 : Thêm các cột vào bảng BUD_CONTRACT_ELEC_WAR_DT---
Declare @hdoc2 INT
DECLARE
@uew_UEW_DTID VARCHAR(15),
@uew_TYPE VARCHAR(15),
@uew_CONTRACT_ID VARCHAR(15),
@uew_BUILD_ID VARCHAR(15),
@uew_BUILDING_AREA_ID VARCHAR(15),
@uew_FROM_DATE VARCHAR(50),
@uew_TO_DATE VARCHAR(50),
@uew_INDICATOR_OLD DECIMAL(18,2),
@uew_INDICATOR DECIMAL(18,2),
@uew_UNIT_PRICE DECIMAL(18,2),
@uew_TOTAL DECIMAL(18,2)
Exec sp_xml_preparedocument @hdoc2 Output,@p_XML_ELEC_WAR
DECLARE XmlDataDoc2 CURSOR FOR
SELECT *
FROM OPENXML(@hdoc2,'/Root/XmlData2',2)
WITH
(
----PHUCVH : Thêm các cột vào bảng BUD_CONTRACT_ELEC_WAR_DT---
TYPE VARCHAR(15),
CONTRACT_ID VARCHAR(15),
BUILD_ID VARCHAR(15),
BUILDING_AREA_ID VARCHAR(15),
FROM_DATE VARCHAR(50),
TO_DATE VARCHAR(50),
INDICATOR_OLD DECIMAL(18,2),
INDICATOR DECIMAL(18,2),
UNIT_PRICE DECIMAL(18,2),
TOTAL DECIMAL(18,2)
)
OPEN XmlDataDoc2
FETCH NEXT FROM XmlDataDoc2 INTO @uew_TYPE,@uew_CONTRACT_ID,@uew_BUILD_ID,@uew_BUILDING_AREA_ID,@uew_FROM_DATE,@uew_TO_DATE,@uew_INDICATOR_OLD,@uew_INDICATOR,@uew_UNIT_PRICE,@uew_TOTAL
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC SYS_CodeMasters_Gen 'BUD_CONTRACT_ELEC_WAR_DT', @uew_UEW_DTID out
IF @uew_UEW_DTID='' OR @uew_UEW_DTID IS NULL GOTO ABORT
INSERT INTO BUD_CONTRACT_ELEC_WAR_DT (UEW_DTID, TYPE, CONTRACT_ID, BUILD_ID, BUILDING_AREA_ID, FROM_DATE, TO_DATE, INDICATOR_OLD, INDICATOR, UNIT_PRICE, TOTAL)
VALUES (@uew_UEW_DTID, @uew_TYPE, @p_CONTRACT_ID,@d_BUILD_ID, @d_BUILDING_AREA_ID,CONVERT(DATETIME,@uew_FROM_DATE,103) , CONVERT(DATETIME,@uew_TO_DATE,103), @uew_INDICATOR_OLD, @uew_INDICATOR, @uew_UNIT_PRICE, @uew_TOTAL);
FETCH NEXT FROM XmlDataDoc2 INTO @uew_TYPE,@uew_CONTRACT_ID,@uew_BUILD_ID,@uew_BUILDING_AREA_ID,@uew_FROM_DATE,@uew_TO_DATE,@uew_INDICATOR_OLD,@uew_INDICATOR,@uew_UNIT_PRICE,@uew_TOTAL
IF @@Error <> 0 GOTO ABORT
END
CLOSE XmlDataDoc2
DEALLOCATE XmlDataDoc2
----PHUCVH 25/04/2023 : Thêm các cột vào bảng BUD_CONTRACT_ELEC_WAR_DT---
---BAODNQ 29/12/2021: Insert vào PL_PROCESS lưu lịch sử xử lý
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @p_CONTRACT_ID,
'INSERT',
@p_MAKER_ID,
GETDATE(),
N'Thêm mới thông tin khai báo DTSD nội bộ thành công' ,
N'Thêm mới thông tin khai báo DTSD nội bộ'
)
IF @@Error <> 0 GOTO ABORT
COMMIT TRANSACTION
SELECT '0' as Result, @p_CONTRACT_ID CONTRACT_ID, '' ErrorDesc
RETURN '0'
ABORT:
BEGIN
--CLOSE XmlDataDoc
--DEALLOCATE XmlDataDoc
CLOSE XmlDataDoc2
DEALLOCATE XmlDataDoc2
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' CONTRACT_ID, '' ErrorDesc
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
@p_EMP_NAME NVARCHAR(500) --DO GIAO DIỆN KHÔNG TRUYỀN EMP_ID NÊN GET EMPNAME
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_EMP_NAME + N'%' COLLATE Latin1_general_CI_AI OR TU.TLNANME 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 = '')
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_EMP_NAME + N'%' COLLATE Latin1_general_CI_AI OR TU.TLNANME 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 = '')
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_EMP_NAME + N'%' COLLATE Latin1_general_CI_AI OR TU.TLNANME 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 = '')
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_EMP_NAME + N'%' COLLATE Latin1_general_CI_AI OR TU.TLNANME 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 = '')
ORDER BY A.REQ_DT DESC
-- PAGING END
END
END
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[THREAD_GET_CONTENT_SEND_MAIL]'
GO
ALTER PROC [dbo].[THREAD_GET_CONTENT_SEND_MAIL]
@p_TIME_RUN_TOOL VARCHAR(50) = NULL,
@p_TIME_SEND_ID INT = NULL,
@p_TIME_VALUE VARCHAR(100) = NULL,
@p_LOCATION VARCHAR(20) = NULL
AS
BEGIN
IF(@p_TIME_VALUE IS NULL OR @p_TIME_VALUE = '' OR @p_TIME_SEND_ID IS NULL OR @p_TIME_SEND_ID = '')
RETURN '-1'
DECLARE @DISTANCE_TIME INT = NULL,
@DISTANCE_TYPE VARCHAR(20) = NULL,
@TOOL_NAME NVARCHAR(1000) = NULL,
@TOOL_VALUE VARCHAR(100) = NULL,
@EXEC_DT DATETIME = NULL,
@MESSAGE NVARCHAR(1000) = NULL,
@EXEC_TYPE VARCHAR(20) = NULL
IF(@p_LOCATION = 'EXEC')
BEGIN
SET @EXEC_TYPE = 'EXECUTE'
END
ELSE
BEGIN
SET @EXEC_TYPE = 'AUTO'
END
SELECT @DISTANCE_TIME = TIME_SEND
,@DISTANCE_TYPE = TIME_SEND_TYPE
,@TOOL_NAME = TIME_CONTENT
,@TOOL_VALUE = TIME_VALUE,
@EXEC_DT = SENT_DATE
FROM THREAD_TIME_SEND
WHERE TIME_VALUE = @p_TIME_VALUE
DECLARE @TEMP TABLE
(
[ID] VARCHAR(20),
[EMAIL] VARCHAR(50),
[NF_MESSAGE_TYPE] VARCHAR(500),
[ROLE_TIFI_TYPE] VARCHAR(500),
IS_SENDMAIL BIT,
IS_RUN_TOOL BIT,
TOOL_NAME NVARCHAR(100),
QUERY_SELECT NVARCHAR(MAX)
)
DECLARE @TIME_SEND INT = NULL,
@TIME_SEND_TYPE VARCHAR(20) = NULL,
@TIME_VALUE VARCHAR(25) = NULL,
@NF_MESSAGE_TYPE VARCHAR(50) = NULL,
@ROLE_TIFI_TYPE VARCHAR(50) = NULL,
@SEND_DATE DATETIME = NULL,
@QUERY_SELECT NVARCHAR(MAX) = NULL,
@EXEC_DATE VARCHAR(50) = NULL
SELECT @TIME_SEND = A.TIME_SEND,@TIME_SEND_TYPE = A.TIME_SEND_TYPE,
@TIME_VALUE = A.TIME_VALUE,@NF_MESSAGE_TYPE = A.NF_MESSAGE_TYPE,
@ROLE_TIFI_TYPE = A.ROLE_TIFI_TYPE,@SEND_DATE = A.SENT_DATE
FROM THREAD_TIME_SEND A
WHERE (A.[STATUS] = 1 OR @p_LOCATION = 'EXEC') AND A.TIME_VALUE = @p_TIME_VALUE AND A.TIME_SEND_ID = @p_TIME_SEND_ID
--FIX THREAD NẾU START VÀ STOP TOOL NHIỀU LẦN THÌ BỊ DUP EXEC
IF(@p_LOCATION <> 'EXEC' OR @p_LOCATION IS NULL OR @p_LOCATION = '')
BEGIN
IF(DATEDIFF(DAYOFYEAR,CONVERT(DATETIME,@p_TIME_RUN_TOOL,103),@SEND_DATE) <> 0)
BEGIN
SET @MESSAGE = N'Ngày không hợp lệ'
GOTO ABORT
END
END
BEGIN --TRANSACTION T1
IF(@p_TIME_VALUE = 'SYNC_EMP')
BEGIN --TOOL ĐỒNG BỘ NGƯỜI DÙNG
IF(EXISTS(SELECT 1 FROM SYS_PARAMETERS WHERE ParaKey = 'GETALL_RECORD_EMPSYNC' AND ParaValue = '1'))
BEGIN
SET @QUERY_SELECT = N'SELECT Id,Loai,MaNS,HoTen,MaDVCu,DVCu,MaDVMoi,DVMoi,MaCDCu,CDCu,MaCDMoi,CDMoi,LoaiHDLD,Email,Ngay,So,NgayHLuc,NgayHetHLuc,TGTao FROM CM_EMPLOYEE_SYNC ORDER BY TGTao'
END
ELSE
BEGIN
SET @QUERY_SELECT = N'SELECT Id,Loai,MaNS,HoTen,MaDVCu,DVCu,MaDVMoi,DVMoi,MaCDCu,CDCu,MaCDMoi,CDMoi,LoaiHDLD,Email,Ngay,So,NgayHLuc,NgayHetHLuc,TGTao FROM CM_EMPLOYEE_SYNC WHERE DATEDIFF(DAYOFYEAR,CONVERT(DATETIME,''' + (ISNULL((SELECT ca.ParaValue FROM SYS_PARAMETERS ca WHERE ca.ParaKey = 'LAST_SYNC_DATE'),GETDATE())) + ''',103),TGTao) >= 0 ORDER BY TGTao'
END
INSERT INTO @TEMP (IS_RUN_TOOL, TOOL_NAME, QUERY_SELECT)
VALUES (1,'CM_EMPLOYEE_SYNC',@QUERY_SELECT);
IF(@p_LOCATION IS NULL)
BEGIN
IF @@Error <> 0 GOTO ABORT
UPDATE SYS_PARAMETERS SET ParaValue = FORMAT(CONVERT(DATE,GETDATE(),103),'dd/MM/yyyy') WHERE ParaKey = 'LAST_SYNC_DATE'
END
END
ELSE IF(@p_TIME_VALUE = 'CHECK_WARRANTY_DT')
BEGIN --TOOL GỬI MAIL THÔNG BÁO TÀI SẢN SẮP HẾT HẠN BẢO HÀNH
INSERT INTO @TEMP (IS_SENDMAIL, TOOL_NAME,NF_MESSAGE_TYPE,ROLE_TIFI_TYPE)
VALUES (1,N'GỬI MAIL',@NF_MESSAGE_TYPE,@ROLE_TIFI_TYPE);
END
ELSE IF(@p_TIME_VALUE = 'CHECK_TRANS_NOT_APPROVE')
BEGIN --GỬI MAIL NHỮNG GIAO DỊCH CHƯA ĐƯỢC PHÊ DUYỆT
INSERT INTO @TEMP (IS_SENDMAIL, TOOL_NAME,NF_MESSAGE_TYPE,ROLE_TIFI_TYPE)
SELECT 1,N'CHECK GIAO DỊCH CHƯA DUYỆT',@NF_MESSAGE_TYPE + '|' + PP.ID, @ROLE_TIFI_TYPE + '|' + PP.ID
FROM (
SELECT A.USER_MASTER_ID + '|ASS_USE|' + CASE WHEN A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U' THEN 'KSV' ELSE 'GDV' END AS ID
FROM ASS_USE_MULTI_MASTER A
LEFT JOIN ASS_USE_CONFIRM_MASTER B ON A.USER_MASTER_ID = B.USER_MASTER_ID
WHERE (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'E' AND B.USER_CONFIRM_MASTER_ID IS NOT NULL)
OR (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U')
UNION
SELECT A.TRANS_MULTI_MASTER_ID + '|ASS_TRANSFER|' + CASE WHEN A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U' THEN 'KSV' ELSE 'GDV' END AS ID
FROM ASS_TRANSFER_MULTI_MASTER A
WHERE (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'E')
OR (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U')
UNION
SELECT A.COL_MULTI_MASTER_ID + '|ASS_COLLECT|' + CASE WHEN A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U' THEN 'KSV' ELSE 'GDV' END AS ID
FROM ASS_COLLECT_MULTI_MASTER A
LEFT JOIN ASS_COLLECT_CONFIRM_MASTER B ON A.COL_MULTI_MASTER_ID = B.COL_MULTI_MASTER_ID
WHERE (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'E' AND B.COL_MULTI_MASTER_CONFIRM_ID IS NOT NULL)
OR (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U')
UNION
SELECT A.LIQ_ID + '|ASS_LIQ|' + CASE WHEN A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U' THEN 'KSV' ELSE 'GDV' END AS ID
FROM ASS_LIQUIDATION A
WHERE (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'E')
OR (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U')
UNION
SELECT A.ADDNEW_ID + '|ASS_ADDNEW|' + CASE WHEN A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U' THEN 'KSV' ELSE 'GDV' END AS ID
FROM ASS_ADDNEW A
WHERE (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'E')
OR (A.AUTH_STATUS = 'A' AND A.AUTH_STATUS_KT = 'U'))PP
END
ELSE IF(@p_TIME_VALUE = 'KH')
BEGIN --TOOL CHẠY KHẤU HAO
SET @EXEC_DATE = CONVERT(VARCHAR(50),@SEND_DATE)
IF((SELECT (((DATEPART(DW, @SEND_DATE) - 1 ) + @@DATEFIRST ) % 7)) NOT IN ('0','6'))
BEGIN -- NẾU KHÁC NGÀY T7 VÀ CN THÌ CHẠY
EXEC ASS_AMORT_StartDO @p_EXECUTE_DATE = @EXEC_DATE
,@p_MAKER_ID = 'bichnn'
,@p_CHECKER_ID = 'bichnn'
,@p_ASSET_TYPE = NULL
,@p_BRANCH_ID_LST = NULL
,@p_EXEC_TYPE = @EXEC_TYPE
END
END
IF @@Error <> 0 GOTO ABORT
IF(@p_LOCATION IS NULL OR @p_LOCATION = '')
BEGIN -- NẾU CHẠY TOOL THÌ UPDATE NGÀY, EXEC TRỰC TIẾP THÌ KHÔNG UPDATE NGÀY
IF(@TIME_SEND_TYPE = 'NGAY')
BEGIN
UPDATE THREAD_TIME_SEND
SET SENT_DATE = DATEADD(DAY,@TIME_SEND,@SEND_DATE)
WHERE TIME_SEND_ID = @p_TIME_SEND_ID AND TIME_VALUE = @p_TIME_VALUE
END
ELSE IF(@TIME_SEND_TYPE = 'THANG')
BEGIN
UPDATE THREAD_TIME_SEND
SET SENT_DATE = DATEADD(MONTH,@TIME_SEND,@SEND_DATE)
WHERE TIME_SEND_ID = @p_TIME_SEND_ID AND TIME_VALUE = @p_TIME_VALUE
END
END
-- COMMIT TRANSACTION T1
END
SELECT * FROM @TEMP
IF(@p_TIME_VALUE <> 'KH')
BEGIN
INSERT INTO THREAD_TIME_SEND_LOG (DISTANCE_TIME, DISTANCE_TYPE, TOOL_NAME, TOOL_VALUE, EXEC_DT, EXEC_TYPE, MESSAGE, CREATE_DT)
VALUES (@DISTANCE_TIME,@DISTANCE_TYPE, @TOOL_NAME, @TOOL_VALUE, @EXEC_DT,@EXEC_TYPE, N'Thực thi thành công', GETDATE());
END
RETURN '0'
ABORT:
BEGIN
--ROLLBACK TRANSACTION T1
--GHI LOG
IF(@p_TIME_VALUE <> 'KH')
BEGIN
INSERT INTO THREAD_TIME_SEND_LOG (DISTANCE_TIME, DISTANCE_TYPE, TOOL_NAME, TOOL_VALUE, EXEC_DT, EXEC_TYPE, MESSAGE, CREATE_DT)
VALUES (@DISTANCE_TIME,@DISTANCE_TYPE, @TOOL_NAME, @TOOL_VALUE, @EXEC_DT,@EXEC_TYPE, ISNULL(@MESSAGE,ERROR_MESSAGE()), GETDATE());
END
RETURN '-1'
End
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_COLLECT_MULTI_MASTER_Ins]'
GO
--ALTER TABLE dbo.ASS_COLLECT_MULTI_DT
-- ADD EMP_ID_USE VARCHAR(20) NULL
--GO
ALTER PROCEDURE [dbo].[ASS_COLLECT_MULTI_MASTER_Ins]
@p_BRANCH_ID varchar(15) = NULL,
@p_COLLECT_DT VARCHAR(20) = NULL,
@p_USER_COLLECT 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_BRANCH_CREATE varchar(15) = NULL,
@p_REQ_ID varchar(15) = NULL,
@p_CONTENT NVARCHAR(MAX) = NULL, --Nội dung biên bản
@p_XmlData XML = NUL
AS
DECLARE
@ASSET_ID varchar(15),
--DVSD
@BRANCH_ID varchar(15),
@LOCATION Nvarchar(500),
@PURPOSE_ID Nvarchar(500),
@COLLECT_NOTE nvarchar(1000),
@BRANCH_ID_RECEIVE VARCHAR(15) = NULL,
@DEPT_ID_RECEIVE VARCHAR(15) = NULL,
--PHONG BAN SU DUNG
@DEPT_ID_USE VARCHAR(15) = NULL,
@IS_LIQ varchar(1)= '0',
@l_DEPT_CREATE VARCHAR(15) = (SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME = @p_MAKER_ID),
@NOTES NVARCHAR(MAX),
@l_REMAIN_VALUE DECIMAL(18,0),
@l_BUY_PRICE DECIMAL(18,0),
@EMP_ID_USE VARCHAR(15)
Declare @hdoc INT
Exec sp_xml_preparedocument @hdoc Output,@p_XmlData
DECLARE XmlData CURSOR FOR
SELECT *
FROM OPENXML(@hdoc,'/Root/XmlData',2)
WITH
(
ASSET_ID varchar(15),
BRANCH_ID varchar(15),
LOCATION Nvarchar(500),
PURPOSE_ID Nvarchar(500),
COLLECT_NOTE nvarchar(1000),
BRANCH_ID_RECEIVE VARCHAR(15),
DEPT_ID_RECEIVE VARCHAR(15),
DEPT_ID_USE VARCHAR(15),
IS_LIQ varchar(1),
NOTES NVARCHAR(MAX)
)
OPEN XmlData
BEGIN TRANSACTION
DECLARE @l_COL_MULTI_MASTER_ID VARCHAR(15)
EXEC SYS_CodeMasters_Gen 'ASS_COLLECT_MULTI_MASTER', @l_COL_MULTI_MASTER_ID out
IF @l_COL_MULTI_MASTER_ID='' OR @l_COL_MULTI_MASTER_ID IS NULL GOTO ABORT
INSERT INTO ASS_COLLECT_MULTI_MASTER([COL_MULTI_MASTER_ID],[BRANCH_ID],[COLLECT_DT],
[USER_COLLECT],[NOTES],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],
[APPROVE_DT],[AUTH_STATUS_KT],[CREATE_DT_KT],[APPROVE_DT_KT],[MAKER_ID_KT],[CHECKER_ID_KT],
[REPORT_STATUS],CORE_NOTE,DEPT_CREATE,REQ_ID, CONTENT)
VALUES(@l_COL_MULTI_MASTER_ID ,@p_BRANCH_ID ,CONVERT(DATETIME, @p_COLLECT_DT, 103) ,@p_USER_COLLECT ,@p_NOTES ,
@p_RECORD_STATUS ,@p_AUTH_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,
CONVERT(DATETIME, @p_APPROVE_DT, 103) ,'E' ,CONVERT(DATETIME, @p_CREATE_DT_KT, 103) ,CONVERT(DATETIME, @p_APPROVE_DT_KT, 103)
,NULL ,@p_CHECKER_ID_KT ,@p_REPORT_STATUS,'',@l_DEPT_CREATE,@p_REQ_ID,@p_CONTENT)
IF @@Error <> 0 GOTO ABORT
--Insert XmlData
FETCH NEXT FROM XmlData INTO @ASSET_ID,@BRANCH_ID,@LOCATION,@PURPOSE_ID,@COLLECT_NOTE,@BRANCH_ID_RECEIVE,@DEPT_ID_RECEIVE,@DEPT_ID_USE,@IS_LIQ,@NOTES
WHILE @@FETCH_STATUS = 0
BEGIN
IF(@BRANCH_ID_RECEIVE = 'DV0001')
BEGIN
IF(@DEPT_ID_RECEIVE IS NULL OR @DEPT_ID_RECEIVE = '')
BEGIN
CLOSE XmlData
DEALLOCATE XmlData
ROLLBACK TRANSACTION
SELECT '-1' as Result, @l_COL_MULTI_MASTER_ID COL_MULTI_MASTER_ID, N'Vui lòng chọn phòng ban thu hồi' ErrorDesc
RETURN '-1'
END
END
DECLARE @ERRORSYS NVARCHAR(200) = '',@ASSET_CODE nVARCHAR(20)
-- IF ( EXISTS ( SELECT * FROM ASS_COLLECT_MULTI_DT WHERE [ASSET_ID] = @ASSET_ID AND AUTH_STATUS<>'A' AND [CHECKER_ID_KT] <> 'system'))
-- BEGIN
-- SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID)
-- SET @ERRORSYS = N'Mã: '+@ASSET_CODE+N' đang được thu hồi'
-- CLOSE XmlData
-- DEALLOCATE XmlData
-- ROLLBACK TRANSACTION
-- SELECT '-1' as Result, '' COL_MULTI_MASTER_ID, @ERRORSYS ErrorDesc
-- RETURN '-1'
--
-- END
--
-- IF ( EXISTS ( SELECT * FROM ASS_COLLECT WHERE [ASSET_ID] = @ASSET_ID AND AUTH_STATUS<>'A'))
-- BEGIN
-- SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID)
-- SET @ERRORSYS = N'Mã: '+@ASSET_CODE+N' đang được thu hồi'
-- CLOSE XmlData
-- DEALLOCATE XmlData
-- ROLLBACK TRANSACTION
-- SELECT '-1' as Result, '' COL_MULTI_MASTER_ID, @ERRORSYS ErrorDesc
-- RETURN '-1'
--
-- END
DECLARE @l_COLLECT_MULTI_ID VARCHAR(15)
EXEC SYS_CodeMasters_Gen 'ASS_COLLECT_MULTI_DT', @l_COLLECT_MULTI_ID out
--LUCTV: 27-12-2018 BO SUNG LAY DON VI SU DUNG, DON VI TAO TS TAI THOI DIEM THU HOI
SET @p_BRANCH_ID = (SELECT BRANCH_ID FROM ASS_MASTER WHERE ASSET_ID =@ASSET_ID)
SET @p_BRANCH_CREATE =(SELECT BRANCH_CREATE FROM ASS_MASTER WHERE ASSET_ID =@ASSET_ID)
SET @DEPT_ID_USE = (SELECT DEPT_ID FROM ASS_MASTER WHERE ASSET_ID =@ASSET_ID)
--END
--PHUCVH 27/02/23 THÊM NGUYÊN GIÁ VÀ GIÁ TRỊ CÒN LẠI TẠI THỜI ĐIỂM TẠO PHIẾU
SELECT @l_BUY_PRICE = A.BUY_PRICE, @l_REMAIN_VALUE = ISNULL((A.AMORT_AMT - A.AMORTIZED_AMT), ISNULL(A.AMORT_AMT,0)), @EMP_ID_USE = A.EMP_ID
FROM ASS_MASTER A
WHERE A.ASSET_ID = @ASSET_ID
IF @l_COLLECT_MULTI_ID='' OR @l_COLLECT_MULTI_ID IS NULL GOTO ABORT
INSERT INTO ASS_COLLECT_MULTI_DT([COLLECT_MULTI_ID],[COL_MULTI_MASTER_ID],[ASSET_ID],[BRANCH_ID],[PURPOSE_ID],[COLLECT_DT],[LOCATION],[COLLECT_NOTE],[RECORD_STATUS],
[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT],[BRANCH_CREATE],[AUTH_STATUS_KT],[CREATE_DT_KT],[APPROVE_DT_KT],[MAKER_ID_KT],[CHECKER_ID_KT],[REPORT_STATUS],
[BRANCH_ID_RECEIVE], [DEPT_ID_RECEIVE], [DEPT_ID_USE],[IS_LIQ],NOTES,BUY_PRICE,REMAIN_VALUE,EMP_ID_USE)
VALUES(@l_COLLECT_MULTI_ID ,@l_COL_MULTI_MASTER_ID ,@ASSET_ID ,ISNULL(@p_BRANCH_ID,'') ,@PURPOSE_ID ,CONVERT(DATETIME, @p_COLLECT_DT, 103) ,@LOCATION ,@COLLECT_NOTE ,
@p_RECORD_STATUS ,@p_AUTH_STATUS ,@p_MAKER_ID ,CONVERT(DATETIME, @p_CREATE_DT, 103) ,@p_CHECKER_ID ,CONVERT(DATETIME, @p_APPROVE_DT, 103) ,@p_BRANCH_CREATE,
@p_AUTH_STATUS_KT ,CONVERT(DATETIME, @p_CREATE_DT_KT, 103) ,CONVERT(DATETIME, @p_APPROVE_DT_KT, 103) ,@p_MAKER_ID_KT ,@p_CHECKER_ID_KT ,'N',
ISNULL(@BRANCH_ID_RECEIVE,''), ISNULL(@DEPT_ID_RECEIVE,''), ISNULL(@DEPT_ID_USE,''),@IS_LIQ,@NOTES,@l_BUY_PRICE,@l_REMAIN_VALUE,@EMP_ID_USE)
--hieuhm Khi thêm từ phiếu yêu cầu thì update trạng thái cho pyc
IF(@p_REQ_ID <> '' OR @p_REQ_ID IS NOT NULL)
BEGIN
UPDATE TR_REQUEST_DOC_ASSET_DT SET STATUS_REQ_DOC = '1' WHERE REQ_DOC_ID = @p_REQ_ID AND ASSET_ID = @ASSET_ID
END
IF @@Error <> 0 GOTO ABORT
FETCH NEXT FROM XmlData INTO @ASSET_ID,@BRANCH_ID,@LOCATION,@PURPOSE_ID,@COLLECT_NOTE,@BRANCH_ID_RECEIVE,@DEPT_ID_RECEIVE,@DEPT_ID_USE,@IS_LIQ,@NOTES
END
CLOSE XmlData
DEALLOCATE XmlData
-- GIANT Insert to table PL_PROCESS
INSERT INTO dbo.PL_PROCESS
(
REQ_ID,
PROCESS_ID,
CHECKER_ID,
APPROVE_DT,
PROCESS_DESC,
NOTES
)
VALUES
( @l_COL_MULTI_MASTER_ID,
'INSERT',
@p_MAKER_ID,
GETDATE(),
N'Thêm mới phiếu thu hồi tài sản ' ,
N'Thêm mới phiếu thu hồi tài sản thành công'
)
COMMIT TRANSACTION
SELECT '0' as Result, @l_COL_MULTI_MASTER_ID COL_MULTI_MASTER_ID, '' ErrorDesc
RETURN '0'
ABORT:
BEGIN
CLOSE XmlData
DEALLOCATE XmlData
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].[CM_BRANCH_Upd]'
GO
/*
[dbo].[CM_BRANCH_Upd] 'BRN000000000005','DV0004','','','','','','','','','','15/10/2013','','','15/10/2013'
INSERT INTO SYS_ERROR(ErrorCode,ErrorDesc,Form) Values ('CMC-00001',N'Mã chi nhánh không tồn tại','CM')
INSERT INTO SYS_ERROR(ErrorCode,ErrorDesc,Form) Values ('CMC-00002',N'Mã chi nhánh cha không tồn tại','CM')
SELECT * FROM CM_BRANCH
*/
ALTER PROCEDURE [dbo].[CM_BRANCH_Upd]
@p_BRANCH_ID varchar(15) = null ,
@p_FATHER_ID varchar(15) = NULL ,
@p_BRANCH_CODE varchar(10) = NULL ,
@p_BRANCH_NAME nvarchar(200) = NULL ,
@p_REGION_ID varchar(15) = NULL ,
@p_BRANCH_TYPE varchar(5) = NULL ,
@p_ADDR nvarchar(200) = NULL ,
@p_TEL varchar(20) = NULL ,
@p_NOTES nvarchar(1000) = NULL ,
@p_IS_POTENTIAL varchar(1) = 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_TAX_NO varchar(50) = NULL,
@p_APPROVE_DT VARCHAR(20) = NULL,
@p_ESTABLISH_DT NVARCHAR(500) = NULL,
@p_XmlData XML = NULL
AS
--Validation is here
DECLARE @ERRORSYS NVARCHAR(15) = ''
IF( EXISTS (SELECT * FROM CM_BRANCH WHERE @p_TAX_NO IS NOT NULL AND @p_TAX_NO != '' AND TAX_NO = @p_TAX_NO AND BRANCH_ID <> @p_BRANCH_ID))
SET @ERRORSYS = 'BRN-001'
IF ( EXISTS ( SELECT * FROM CM_BRANCH WHERE BRANCH_CODE = @p_BRANCH_CODE AND BRANCH_ID != @p_BRANCH_ID))
SET @ERRORSYS = 'CMCD-00001'
IF ( NOT EXISTS ( SELECT * FROM CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_ID))
SET @ERRORSYS = 'CMC-00001'
IF ( @p_FATHER_ID <> NULL OR @p_FATHER_ID <> '')
IF( NOT EXISTS ( SELECT * FROM CM_BRANCH WHERE BRANCH_ID = @p_FATHER_ID ) )
SET @ERRORSYS = 'CMC-00002'
IF @ERRORSYS <> ''
BEGIN
SELECT ErrorCode Result, '' ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS
RETURN '0'
END
DECLARE
@BRANCH_HIS_ID VARCHAR(15),
@BRANCH_ID VARCHAR(15),
@CHANGE_DT VARCHAR(100),
@BRANCH_NAME_OLD NVARCHAR(1000),
@BRANCH_NAME_NEW NVARCHAR(1000),
@ADDR_OLD NVARCHAR(1000),
@ADDR_NEW NVARCHAR(1000),
@NOTES NVARCHAR(1000)
Declare @hdoc INT
Exec sp_xml_preparedocument @hdoc Output,@p_XmlData
DECLARE XmlData CURSOR FOR
SELECT *
FROM OPENXML(@hdoc,'/Root/XmlData',2)
WITH
(
BRANCH_HIS_ID VARCHAR(15),
BRANCH_ID VARCHAR(15),
CHANGE_DT VARCHAR(100),
BRANCH_NAME_OLD NVARCHAR(1000),
BRANCH_NAME_NEW NVARCHAR(1000),
ADDR_OLD NVARCHAR(1000),
ADDR_NEW NVARCHAR(1000),
NOTES NVARCHAR(1000)
)
OPEN XmlData
BEGIN TRANSACTION
UPDATE CM_BRANCH SET
[FATHER_ID] = @p_FATHER_ID,
[BRANCH_CODE] = @p_BRANCH_CODE,
[BRANCH_NAME] = @p_BRANCH_NAME,
[REGION_ID] = @p_REGION_ID,
[BRANCH_TYPE] = @p_BRANCH_TYPE,
[ADDR] = @p_ADDR,
[TEL] = @p_TEL,
[NOTES] = @p_NOTES,
[RECORD_STATUS] = @p_RECORD_STATUS,
[TAX_NO] = @p_TAX_NO,
[IS_POTENTIAL] = @p_IS_POTENTIAL,
[AUTH_STATUS] = @p_AUTH_STATUS,
ESTABLISH_DT = @p_ESTABLISH_DT
WHERE BRANCH_ID= @p_BRANCH_ID
DELETE CM_BRANCH_HIS WHERE BRANCH_ID = @p_BRANCH_ID
FETCH NEXT FROM XmlData INTO @BRANCH_HIS_ID,@BRANCH_ID,@CHANGE_DT,@BRANCH_NAME_OLD,@BRANCH_NAME_NEW,@ADDR_OLD,@ADDR_NEW,@NOTES
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @l_BRANCH_HIS_ID VARCHAR(15)
EXEC SYS_CodeMasters_Gen 'CM_BRANCH', @l_BRANCH_HIS_ID out
IF @l_BRANCH_HIS_ID='' OR @l_BRANCH_HIS_ID IS NULL GOTO ABORT
INSERT INTO CM_BRANCH_HIS (BRANCH_HIS_ID, BRANCH_ID, CHANGE_DT, BRANCH_NAME_OLD, BRANCH_NAME_NEW, ADDR_OLD, ADDR_NEW, NOTES)
VALUES (@l_BRANCH_HIS_ID, @p_BRANCH_ID, CONVERT(DATETIME,@CHANGE_DT,103), @BRANCH_NAME_OLD, @BRANCH_NAME_NEW, @ADDR_OLD, @ADDR_NEW, @NOTES);
FETCH NEXT FROM XmlData INTO @BRANCH_HIS_ID,@BRANCH_ID,@CHANGE_DT,@BRANCH_NAME_OLD,@BRANCH_NAME_NEW,@ADDR_OLD,@ADDR_NEW,@NOTES
END
CLOSE XmlData
DEALLOCATE XmlData
IF @@Error <> 0 GOTO ABORT
COMMIT TRANSACTION
SELECT '0' as Result, @p_BRANCH_ID ID, '' ErrorDesc
RETURN '0'
ABORT:
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' ID, '' ErrorDesc
RETURN '-1'
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[ASS_ADDNEW_VB_BBBG]'
GO
ALTER PROC [dbo].[ASS_ADDNEW_VB_BBBG]
@ADDNEW_ID VARCHAR(15) = NULL
AS
BEGIN
DECLARE @BRANCH_ID VARCHAR(50) = (SELECT AA.BRANCH_ID FROM ASS_ADDNEW AA WHERE AA.ADDNEW_ID = @ADDNEW_ID)
DECLARE @REQ_ID VARCHAR(50) = (SELECT AA.REQ_ID FROM ASS_ADDNEW AA WHERE AA.ADDNEW_ID = @ADDNEW_ID)
--TABLE0
IF((@REQ_ID IS NULL OR @REQ_ID = '') AND (@BRANCH_ID IS NULL OR @BRANCH_ID = ''))
BEGIN
SELECT '' AS INFO_LIQ, '' TLFullName, '' ADDRESS, '' PHONE, '' POS_NAME ,
'' AS BRANCH_NAME
END
ELSE
BEGIN
SELECT DISTINCT
al.FORWARD_CONTENT AS INFO_LIQ, tu.TLFullName, tu.ADDRESS, tu.PHONE, cel.POS_NAME AS POS_NAME ,
CASE WHEN cb.BRANCH_TYPE = 'HS' THEN cb.BRANCH_NAME + ' - ' + CD.DEP_NAME ELSE cb.BRANCH_NAME END AS BRANCH_NAME
FROM ASS_ADDNEW al
LEFT JOIN TL_USER tu ON al.MAKER_ID = tu.TLNANME
LEFT JOIN CM_EMPLOYEE_LOG cel ON al.MAKER_ID = cel.USER_DOMAIN
LEFT JOIN CM_BRANCH cb ON al.BRANCH_CREATE = cb.BRANCH_ID
LEFT JOIN CM_DEPARTMENT CD ON CD.DEP_ID = al.DEPT_CREATE
WHERE al.ADDNEW_ID = @ADDNEW_ID
END
--TABLE1
SELECT DISTINCT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS STT, ald.ADDNEW_ID, am.ASSET_CODE, am.ASSET_NAME, cu.UNIT_NAME,
'1' AS SO_LUONG,ams.STATUS_NAME AS ASS_STATUS_DESC, am.ASSET_SERIAL_NO, prd.REQ_CODE AS TO_TRINH, ald.NOTES, am.ASSET_DESC AS ASS_DESC,
ISNULL(am.REQ_CODE,'') + ISNULL(CHAR(10) + CHAR(10) + am.PL,'') AS REQ_CODE
FROM ASS_ADDNEW ald
LEFT JOIN ASS_TRANSACTIONS AT ON ald.ADDNEW_ID= AT.TRN_ID
LEFT JOIN ASS_MASTER am ON AT .ASSET_ID = am.ASSET_ID
LEFT JOIN ASS_STATUS ams ON am.ASS_STATUS = ams.STATUS_ID
LEFT JOIN ASS_GROUP ag ON am.GROUP_ID = ag.GROUP_ID
LEFT JOIN PL_REQUEST_DOC prd ON am.REQ_ID = prd.REQ_ID
LEFT JOIN CM_UNIT cu ON cu.UNIT_ID = ag.UNIT
--WHERE ald.ADDNEW_ID = 'ASA000000021002'
WHERE ald.ADDNEW_ID = @ADDNEW_ID
ORDER BY STT ASC
--table2
--SELECT DISTINCT al.LIQ_ID, tu.TLFullName FROM TL_USER tu
--RIGHT JOIN ASS_LIQUIDATION al ON al.MAKER_ID = tu.TLNANME
--WHERE al.LIQ_ID = @LIQ_ID
DECLARE @DT DATETIME = (SELECT APPROVE_DT FROM ASS_ADDNEW AA WHERE AA.ADDNEW_ID = @ADDNEW_ID)
DECLARE @BB_DT NVARCHAR(500)
SET @BB_DT = N'Ngày ' + CAST(DAY(@DT) AS VARCHAR(500))
+ N' tháng ' + CAST(MONTH(@DT) AS VARCHAR(500))
+ N' năm ' + CAST(YEAR(@DT) AS VARCHAR(500))
+ N' tại '
+ (SELECT B.BRANCH_NAME FROM dbo.ASS_ADDNEW A JOIN dbo.CM_BRANCH B ON A.BRANCH_CREATE = B.BRANCH_ID WHERE A.ADDNEW_ID = @ADDNEW_ID)
SELECT CASE WHEN cb.BRANCH_TYPE = 'HS' THEN N'Hội sở' + ' - ' + CD.DEP_NAME ELSE cb.BRANCH_NAME END AS BRANCH_NAME,
CASE WHEN cb.BRANCH_TYPE = 'HS' THEN @BB_DT + ' - ' + CD.DEP_NAME ELSE @BB_DT END AS BBBG_DT,
AL.NOTES AS INFO_LIQ, AL.ADDNEW_ID
FROM ASS_ADDNEW AL
LEFT JOIN CM_BRANCH CB ON AL.BRANCH_CREATE = CB.BRANCH_ID
LEFT JOIN CM_DEPARTMENT CD ON AL.DEPT_CREATE = CD.DEP_ID
WHERE AL.ADDNEW_ID = @ADDNEW_ID
--TABLE3
IF((@REQ_ID IS NULL OR @REQ_ID = '') AND (@BRANCH_ID IS NULL OR @BRANCH_ID = ''))
BEGIN
SELECT '' AS INFO_LIQ, '' TLFullName, '' ADDRESS, '' PHONE, '' POS_NAME ,
'' AS BRANCH_NAME
END
ELSE
BEGIN
SELECT DISTINCT
al.FORWARD_CONTENT AS INFO_LIQ, tu.TLFullName, tu.ADDRESS, tu.PHONE, ISNULL(cel.POS_NAME, '') + CHAR(13) + N'Đã ký ngày ' + FORMAT(
((SELECT TOP 1 PP.APPROVE_DT FROM PL_PROCESS PP WHERE PP.REQ_ID = @ADDNEW_ID AND PP.PROCESS_ID = 'SEND' ORDER BY PP.APPROVE_DT DESC))
, 'dd/MM/yyyy HH:mm:ss') AS POS_NAME ,
CASE WHEN cb.BRANCH_TYPE = 'HS' THEN cb.BRANCH_NAME + ' - ' + CD.DEP_NAME ELSE cb.BRANCH_NAME END AS BRANCH_NAME
FROM ASS_ADDNEW al
LEFT JOIN TL_USER tu ON al.MAKER_ID = tu.TLNANME
LEFT JOIN CM_EMPLOYEE_LOG cel ON al.MAKER_ID = cel.USER_DOMAIN
LEFT JOIN CM_BRANCH cb ON al.BRANCH_CREATE = cb.BRANCH_ID
LEFT JOIN CM_DEPARTMENT CD ON CD.DEP_ID = al.DEPT_CREATE
WHERE al.ADDNEW_ID = @ADDNEW_ID
END
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[CM_EMPLOYEE_SYNC_INS]'
GO
ALTER PROCEDURE [dbo].[CM_EMPLOYEE_SYNC_INS]
@p_JSON_DATA NVARCHAR(MAX) = NULL
AS
----Phucvh 20/02/23 Store đồng bộ nhân viên từ DB HR
IF (@p_JSON_DATA IS NULL OR @p_JSON_DATA = '')
BEGIN
SELECT '-1' as Result, '' ID, N'Data NULL Đồng bộ thất bại' ErrorDesc
RETURN '-1'
END
--LUU DATA DONG BO
UPDATE THREAD_TIME_SEND_LOG SET MESSAGE = MESSAGE + @p_JSON_DATA
WHERE TOOL_VALUE = 'SYNC_EMP' AND ID = (SELECT TOP 1 TTSL.ID FROM THREAD_TIME_SEND_LOG TTSL WHERE TTSL.TOOL_VALUE = 'SYNC_EMP' ORDER BY TTSL.ID DESC)
DECLARE @SYNC_DATE VARCHAR(100) = FORMAT(GETDATE(),'dd/MM/yyyy')
DECLARE @Tbl_Data_From_Json TABLE(
Id UNIQUEIDENTIFIER,
Loai INT,
MaNS nvarchar(500),
HoTen nvarchar(500),
MaDVCu nvarchar(500),
DVCu nvarchar(500),
MaDVMoi nvarchar(500),
DVMoi nvarchar(500),
MaCDCu nvarchar(500),
CDCu nvarchar(500),
MaCDMoi nvarchar(500),
CDMoi nvarchar(500),
LoaiHDLD nvarchar(500),
Email nvarchar(500),
Ngay VARCHAR(500),
So nvarchar(500),
NgayHLuc VARCHAR(500),
NgayHetHLuc VARCHAR(500),
TGTao VARCHAR(500)
)
INSERT INTO @Tbl_Data_From_Json
SELECT *
FROM OPENJSON(@p_JSON_DATA)
WITH
(
Id UNIQUEIDENTIFIER '$.Id',
Loai INT '$.Loai',
MaNS nvarchar(500) '$.MaNS',
HoTen nvarchar(500) '$.HoTen',
MaDVCu nvarchar(500) '$.MaDVCu',
DVCu nvarchar(500) '$.DVCu',
MaDVMoi nvarchar(500) '$.MaDVMoi',
DVMoi nvarchar(500) '$.DVMoi',
MaCDCu nvarchar(500) '$.MaCDCu',
CDCu nvarchar(500) '$.CDCu',
MaCDMoi nvarchar(500) '$.MaCDMoi',
CDMoi nvarchar(500) '$.CDMoi',
LoaiHDLD nvarchar(500) '$.LoaiHDLD',
Email nvarchar(500) '$.Email',
Ngay VARCHAR(500) '$.Ngay',
So nvarchar(500) '$.So',
NgayHLuc VARCHAR(500) '$.NgayHLuc',
NgayHetHLuc VARCHAR(500) '$.NgayHetHLuc',
TGTao VARCHAR(500) '$.TGTao'
)
DECLARE
@Id UNIQUEIDENTIFIER, @Loai INT, @MaNS nvarchar(500), @HoTen nvarchar(500),
@MaDVCu nvarchar(500), @DVCu nvarchar(500), @MaDVMoi nvarchar(500), @DVMoi nvarchar(500),
@MaCDCu nvarchar(500), @CDCu nvarchar(500), @MaCDMoi nvarchar(500), @CDMoi nvarchar(500),
@LoaiHDLD nvarchar(500), @Email nvarchar(500), @Ngay VARCHAR(500), @So nvarchar(500),
@NgayHLuc VARCHAR(500), @NgayHetHLuc VARCHAR(500), @TGTao VARCHAR(500)
BEGIN TRANSACTION
DECLARE cur CURSOR FAST_FORWARD READ_ONLY LOCAL FOR
SELECT * FROM @Tbl_Data_From_Json
OPEN cur
FETCH NEXT FROM cur INTO @Id,@Loai,@MaNS,@HoTen,@MaDVCu,@DVCu,@MaDVMoi,@DVMoi,@MaCDCu,@CDCu,@MaCDMoi,@CDMoi,@LoaiHDLD,@Email,@Ngay,@So,@NgayHLuc,@NgayHetHLuc,@TGTao
WHILE @@FETCH_STATUS = 0 BEGIN
IF(NOT EXISTS(SELECT 1 FROM CM_EMPLOYEE_SYNC ces WHERE ces.Id = @Id))
BEGIN
INSERT INTO CM_EMPLOYEE_SYNC (Id, Loai, MaNS, HoTen, MaDVCu, DVCu, MaDVMoi, DVMoi, MaCDCu, CDCu, MaCDMoi, CDMoi, LoaiHDLD, Email, Ngay, So, NgayHLuc, NgayHetHLuc, TGTao, SYNC_DATE)
VALUES(@Id,@Loai,@MaNS,@HoTen,@MaDVCu,@DVCu,@MaDVMoi,@DVMoi,@MaCDCu,@CDCu,@MaCDMoi,@CDMoi,@LoaiHDLD,@Email,CONVERT(DATETIME,@Ngay),@So,CONVERT(DATETIME,@NgayHLuc),CONVERT(DATETIME,@NgayHetHLuc),CONVERT(DATETIME,@TGTao), @SYNC_DATE)
END
FETCH NEXT FROM cur INTO @Id,@Loai,@MaNS,@HoTen,@MaDVCu,@DVCu,@MaDVMoi,@DVMoi,@MaCDCu,@CDCu,@MaCDMoi,@CDMoi,@LoaiHDLD,@Email,@Ngay,@So,@NgayHLuc,@NgayHetHLuc,@TGTao
END
CLOSE cur
DEALLOCATE cur
IF @@Error <> 0 GOTO ABORT
COMMIT TRANSACTION
SELECT '0' as Result, '' ID, N'Đồng bộ chi phí sửa chữa tài sản thành công' ErrorDesc
RETURN '0'
ABORT:
BEGIN
CLOSE cur
DEALLOCATE cur
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' ID, N'Đồng bộ chi phí sửa chữa tài sản thất bại' ErrorDesc
RETURN '-1'
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_PRINT_TEMP]'
GO
/*
[dbo].[ASS_PRINT_TEMP]
@p_ASSET_ID = NULL,
@p_ASSET_CODE = NULL,
@p_ASSET_NAME = NULL,
@p_BRANCH_ID = 'DV0001',
@p_BRANCH_LOGIN = 'DV0001',
@p_ASSET_TYPE = 'TSCD',
@p_ASSET_GROUP = '',
@p_FROM_NUM = '',
@p_TO_NUM = '',
@p_TOP = '',
@p_FromDate = '01/01/2014',
@p_ToDate = '19/03/2014',
@p_DEPT_ID = 'DEP000000000015'
*/
-- SELECT * FROM ASS_MASTER WHERE TYPE_ID = 'CCLD'
ALTER PROCEDURE [dbo].[ASS_PRINT_TEMP]
@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_TOP INT = 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] [VARCHAR](MAX) NULL)
INSERT INTO @l_LSTASSETCODE SELECT VALUE FROM WSISPLIT(@p_ASSET_ID,',')
--- 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,',')
-- khai bao table chua ds seria
DECLARE @l_LSTSERI TABLE (
[ID] [int] IDENTITY(1,1) NOT NULL,
[VALUE] [VARCHAR](MAX) NULL)
INSERT INTO @l_LSTSERI SELECT VALUE FROM WSISPLIT(@p_SerialNo,',')
IF @p_TOP IS NULL OR @p_TOP = ''
BEGIN
SELECT
ROW_NUMBER() OVER(ORDER BY A.ASSET_CODE ASC) AS ROW,
A.ASSET_ID,
CASE
WHEN A.ASSET_CODE IS NULL OR A.ASSET_CODE = '' THEN A.ASS_CODE_TMP
ELSE A.ASSET_CODE
END AS ASSET_CODE,
A.[TYPE_ID],C.[TYPE_CODE], C.[TYPE_NAME], A.GROUP_ID,B.GROUP_CODE, B.GROUP_NAME, B.ASS_CAT, A.ASSET_CODE,
(CASE WHEN LEN(A.ASSET_NAME)>20 THEN SUBSTRING(A.ASSET_NAME,0,17) + '...'ELSE A.ASSET_NAME END) AS ASSET_NAME, A.ASSET_SERIAL_NO, A.ASSET_DESC,
A.SUP_ID, A.BUY_PRICE, A.AMORT_AMT, A.ASS_TYPE, A.BRANCH_ID,BR.BRANCH_CODE,BR.BRANCH_NAME,
ISNULL(DP.DEP_ID,BR.BRANCH_ID) AS DEPT_ID,
ISNULL(DP.DEP_CODE,BR.BRANCH_CODE) AS DEPT_CODE,
A.EMP_ID,EM.EMP_CODE,EM.EMP_NAME, A.DIVISION_ID,
FORMAT(A.BUY_DATE,'dd/MM/yyyy') AS BUY_DATE, FORMAT(A.USE_DATE,'dd/MM/yyyy') AS USE_DATE, A.SPECIAL_ASS, A.AMORT_MONTH, A.AMORT_RATE, A.AMORT_START_DATE, A.AMORT_END_DATE,
A.FIRST_AMORT_AMT,
A.AMORTIZED_MONTH,
(A.AMORT_MONTH - A.AMORTIZED_MONTH) AS REMAIN_MONTH,
A.AMORTIZED_AMT,
ISNULL((A.AMORT_AMT - A.AMORTIZED_AMT), A.AMORT_AMT) AS REMAIN_AMORTIZED_AMT, --So tien khau hao con lai
A.PO_ID,A.PD_ID, A.WAREHOUSE_ID, A.LOCATION, A.REF_ASSET_ID,
A.REF_AMORTIZED_AMT,
A.WARRANTY_MONTHS,
A.NOTES,
A.AMORT_STATUS,
D.STATUS_NAME AMORT_STATUS_NAME,
A.ASS_STATUS,
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,
A.CREATE_DT,
A.CHECKER_ID,
A.APPROVE_DT,
C.TYPE_NAME NHOM_TS,
ISNULL(ISNULL(DP.DEP_NAME,BR.BRANCH_NAME),'') AS DVSD,
DP.DEP_NAME,
A.BUY_DATE_KT
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 CM_EMPLOYEE EM ON EM.EMP_ID=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
LEFT JOIN @TBL_NUMQR TN ON A.ASSET_CODE = TN.ASSET_CODE
WHERE 1 = 1
AND (A.ASSET_ID IN (SELECT VALUE FROM @l_LSTASSETCODE) OR @p_ASSET_ID IS NULL OR @p_ASSET_ID ='')
AND (A.ASSET_NAME like N'%' + @p_ASSET_NAME + '%' OR @p_ASSET_NAME IS NULL OR @p_ASSET_NAME = '')
AND ((@p_LEVEL = 'UNIT' AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = ''))
OR (@p_LEVEL = 'ALL' 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 (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(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 IN (SELECT VALUE FROM @l_LSTSERI) OR @p_SerialNo IS NULL OR @p_SerialNo ='')
AND ((A.ASSET_CODE IN (SELECT VALUE FROM @l_LSTASSETCODE_V1) OR @p_ASSET_CODE IS NULL OR @p_ASSET_CODE ='')
OR (A.ASS_CODE_TMP IN (SELECT VALUE FROM @l_LSTASSETCODE_V1) OR @p_ASSET_CODE IS NULL OR @p_ASSET_CODE =''))
AND (AT.TRN_ID like N'%' + @p_AddNewID + '%' OR @p_AddNewID IS NULL OR @p_AddNewID = '')
AND (AT2.TRN_ID like N'%' + @p_Use_MasterID + '%' OR @p_Use_MasterID IS NULL OR @p_Use_MasterID = '')
END
ELSE
BEGIN
SELECT TOP (@p_TOP)
ROW_NUMBER() OVER(ORDER BY A.ASSET_CODE ASC) AS ROW,
A.ASSET_ID, A.[TYPE_ID],C.[TYPE_CODE], C.[TYPE_NAME], A.GROUP_ID,B.GROUP_CODE, B.GROUP_NAME, B.ASS_CAT,
CASE
WHEN A.ASSET_CODE IS NULL OR A.ASSET_CODE = '' THEN A.ASS_CODE_TMP
ELSE A.ASSET_CODE
END AS ASSET_CODE,
(CASE WHEN LEN(A.ASSET_NAME)>20 THEN SUBSTRING(A.ASSET_NAME,0,17) + '...'ELSE A.ASSET_NAME END) AS ASSET_NAME, A.ASSET_SERIAL_NO, A.ASSET_DESC,
A.SUP_ID, A.BUY_PRICE, A.AMORT_AMT, A.ASS_TYPE, A.BRANCH_ID,BR.BRANCH_CODE,BR.BRANCH_NAME,ISNULL(DP.DEP_ID,BR.BRANCH_ID) AS DEPT_ID,
ISNULL(DP.DEP_CODE,BR.BRANCH_CODE) AS DEPT_CODE
, A.EMP_ID,EM.EMP_CODE,EM.EMP_NAME, A.DIVISION_ID,
FORMAT(A.BUY_DATE,'dd/MM/yyyy') AS BUY_DATE,FORMAT(A.USE_DATE,'dd/MM/yyyy') AS USE_DATE, A.SPECIAL_ASS, A.AMORT_MONTH, A.AMORT_RATE, A.AMORT_START_DATE, A.AMORT_END_DATE,
A.FIRST_AMORT_AMT,
A.AMORTIZED_MONTH,
(A.AMORT_MONTH - A.AMORTIZED_MONTH) AS REMAIN_MONTH,
A.AMORTIZED_AMT,
ISNULL((A.AMORT_AMT - A.AMORTIZED_AMT), A.AMORT_AMT) AS REMAIN_AMORTIZED_AMT, --So tien khau hao con lai
A.PO_ID,A.PD_ID, A.WAREHOUSE_ID, A.LOCATION, A.REF_ASSET_ID,
A.REF_AMORTIZED_AMT,
A.WARRANTY_MONTHS,
A.NOTES,
A.AMORT_STATUS,
D.STATUS_NAME AMORT_STATUS_NAME,
A.ASS_STATUS,
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,
A.CREATE_DT,
A.CHECKER_ID,
A.APPROVE_DT,
C.TYPE_NAME NHOM_TS,
ISNULL(ISNULL(DP.DEP_NAME,BR.BRANCH_NAME),'') AS DVSD,
DP.DEP_NAME ,
A.BUY_DATE_KT
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 CM_EMPLOYEE EM ON EM.EMP_ID=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
LEFT JOIN @TBL_NUMQR TN ON A.ASSET_CODE = TN.ASSET_CODE
WHERE 1 = 1
AND (A.ASSET_ID IN (SELECT VALUE FROM @l_LSTASSETCODE) OR @p_ASSET_ID IS NULL OR @p_ASSET_ID ='')
AND (A.ASSET_NAME like N'%' + @p_ASSET_NAME + '%' OR @p_ASSET_NAME IS NULL OR @p_ASSET_NAME = '')
AND ((@p_LEVEL = 'UNIT' AND (A.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = ''))
OR (@p_LEVEL = 'ALL' 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 (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(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 IN (SELECT VALUE FROM @l_LSTSERI) OR @p_SerialNo IS NULL OR @p_SerialNo ='')
AND ((A.ASSET_CODE IN (SELECT VALUE FROM @l_LSTASSETCODE_V1) OR @p_ASSET_CODE IS NULL OR @p_ASSET_CODE ='')
OR (A.ASS_CODE_TMP IN (SELECT VALUE FROM @l_LSTASSETCODE_V1) OR @p_ASSET_CODE IS NULL OR @p_ASSET_CODE =''))
AND (AT.TRN_ID like N'%' + @p_AddNewID + '%' OR @p_AddNewID IS NULL OR @p_AddNewID = '')
AND (AT2.TRN_ID like N'%' + @p_Use_MasterID + '%' OR @p_Use_MasterID IS NULL OR @p_Use_MasterID = '')
END
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Altering [dbo].[NF_MESSAGE_GetContent]'
GO
ALTER PROCEDURE [dbo].[NF_MESSAGE_GetContent]
@p_TYPE VARCHAR(500) = NULL,
@p_ID varchar(500) = NULL,
@p_TLNAME VARCHAR(100) = NULL
AS
DECLARE @l_LST_REQ_ID TABLE (
[ID] [int] IDENTITY(1,1) NOT NULL,
[REQ_PAY_ID] [VARCHAR](50) NULL)
INSERT INTO @l_LST_REQ_ID SELECT VALUE FROM WSISPLIT(@p_ID,',')
DECLARE @footer NVARCHAR(4000) = N'
P/s: Vui lòng không phản hồi email này. Đây là email được tạo ra bởi hệ thống tự động.
Thanks and Best Regards'
DECLARE @CODE NVARCHAR(1000), @APPROVEDT DATETIME, @DATETIME VARCHAR(100), @URL VARCHAR(1000)
DECLARE @TILTER_MAIL NVARCHAR(1000) ='', @LINK_UAT NVARCHAR(250)= ''
DECLARE @REQ_TYPE VARCHAR(15)= NULL, --LOẠI PYC
@REQ_TYPE_NAME NVARCHAR(100)= NULL,
@REQ_TYPE_NAME_TITLE NVARCHAR(1000)= NULL,
@REQ_CODE NVARCHAR(MAX) = NULL,
@PROCESS_TYPE VARCHAR(100) = NULL,
@PROCESS_ID VARCHAR(100) = NULL,
@PAGE_STATE VARCHAR(100) = NULL,
@BRANCH_USER_CREATE NVARCHAR(MAX) = NULL,
@CREATE_USERNAME NVARCHAR(200) = NULL,
@APPROVE_USERNAME NVARCHAR(MAX),
@REQ_STATUS NVARCHAR(100) = NULL,
@MESSAGE_INVENTORY NVARCHAR(200),
@MESSAGE_STATUS_GDV NVARCHAR(100) = N'Chờ nhân viên kế toán xử lý',
@MESSAGE_STATUS_KSV NVARCHAR(100) = N'Chờ trưởng đơn vị kế toán phê duyệt',
@MESSAGE_STATUS_GDV_LATE NVARCHAR(100) = N'Phiếu bị trễ hạn - Chờ nhân viên kế toán xử lý',
@MESSAGE_STATUS_KSV_LATE NVARCHAR(100) = N'Phiếu bị trễ hạn - Chờ trưởng đơn vị kế toán phê duyệt',
@MESSAGE_STATUS_TDV NVARCHAR(100) = N'Chờ trưởng đơn vị phê duyệt',
@MESSAGE_STATUS_TDV_CONFIRM NVARCHAR(100) = N'Chờ trưởng đơn vị xác nhận',
@MESSAGE_TITLE_TDV NVARCHAR(100) = '',--N' cần phê duyệt.',
@MESSAGE_TITLE_GDV NVARCHAR(100) = '',--N' cần cập nhật hạch toán.',
@MESSAGE_TITLE_KSV NVARCHAR(100) = '',--N' cần phê duyệt.',
@MESSAGE_TITLE_GDV_LATE NVARCHAR(100) = '',--N' cần cập nhật hạch toán.',
@MESSAGE_TITLE_KSV_LATE NVARCHAR(100) = '',--N' cần phê duyệt.',
@MESSAGE_TITLE_TDV_CONFIRM NVARCHAR(100) = '',--N' cần phê duyệt.',
@MESSAGE_TITLE_REJECT NVARCHAR(100) = '',--N' bị trả về.',
@MESSAGE_TITLE_CANCEL NVARCHAR(100) = '',--N' bị huỷ.',
@MESSAGE_TITLE_DONE NVARCHAR(100) = '',--N' đã được phê duyệt hoàn tất.',
@MESSAGE_STATUS_DONE NVARCHAR(100) = N'Đã được phê duyệt hoàn tất.',
@MESSAGE_TITLE_CONFIRM_DONE NVARCHAR(100) = '',--N' đã được Trưởng Đơn Vị xác nhận.',
@MESSAGE_STATUS_CONFIRM_DONE NVARCHAR(100) = N'Đã được Trưởng Đơn Vị xác nhận',
@MESSAGE_STATUS_REJECT NVARCHAR(100) = N'Phiếu bị trả về'
DECLARE @ASS_CHECK_WARRANTY TABLE (ASSET_CODE VARCHAR(20),ASSET_NAME NVARCHAR(500), WARRANTY_END_DT DATETIME)
DECLARE @CURR_TRANS VARCHAR(100),@ROLE_NAME VARCHAR(50), @CURR_TRANS_ID VARCHAR(100), @CURR_TRANS_NAME NVARCHAR(200)
SET @TILTER_MAIL =ISNULL((SELECT TOP 1 TITLE FROM TL_MESSAGE WHERE PROCESS_ID ='TIL'),N'[PHẦN MỀM QUẢN LÝ TÀI SẢN - AMS]')
--INSERT INTO TL_MESSAGE VALUES ('UAT',N'https://it.gsoft.com.vn:3051/app/admin/','')
SET @URL = (SELECT TOP 1 TITLE FROM TL_MESSAGE WHERE PROCESS_ID = 'UAT')
--SET @URL = 'https://localhost:4200/app/admin/'
SET @URL = (SELECT TOP 1 sp.ParaValue FROM SYS_PARAMETERS sp WHERE sp.ParaKey = 'DOMAIN')
SET @LINK_UAT =N'
'+(SELECT TOP 1 TITLE FROM TL_MESSAGE WHERE PROCESS_ID = 'UAT')
--DUYET PO
IF @p_TYPE = 'TR_PO_MASTER_Approve'
BEGIN
SELECT @CODE = PO_CODE FROM TR_PO_MASTER WHERE PO_ID = @p_ID
--SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11)))
SELECT N'[gAMS_Sacombank] Thông báo PO đã được duyệt' AS TITLE,
N'Dear All' +
N',
Số PO: ' + @CODE + N' đã được duyệt.' + @footer
AS MESSAGECONTENT
RETURN 0
END
--DUYET CAP NHAT DON HANG
IF @p_TYPE = 'TR_PO_UP_MASTER_App'
BEGIN
SELECT @CODE = PO_CODE, @APPROVEDT = APPROVE_DT FROM TR_PO_UP_MASTER WHERE PO_UP_ID = @p_ID
SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11)))
SELECT N'[gAMS_Sacombank] Thông báo đã cập nhập đơn hàng' AS TITLE,
N'Dear All'+
N',
Số PO: ' + @CODE + N' đã nhận hàng vào lúc ' + @DATETIME + @footer
AS MESSAGECONTENT
RETURN 0
END
--DUYET PO SUA CHUA
IF @p_TYPE = 'TR_PO_REPAIR_Approve'
BEGIN
SELECT @CODE = PO_CODE FROM TR_PO_REPAIR WHERE PO_REPAIR_ID = @p_ID
SELECT N'[gAMS_Sacombank] Thông báo PO sửa chữa đã được duyệt' AS TITLE,
N'Dear All' +
N',
Số PO: ' + @CODE + N' đã được duyệt.' + @footer
AS MESSAGECONTENT
RETURN 0
END
--DUYET XUAT SU DUNG DON LE
IF @p_TYPE = 'ASS_USE_SearchResult'
BEGIN
SELECT @CODE = ASSET_CODE FROM ASS_MASTER WHERE ASSET_ID = (SELECT A.ASSET_ID FROM ASS_USE A WHERE A.USE_ID = @p_ID)
SELECT N'[gAMS_Sacombank] Thông báo xuất kho được duyệt' AS TITLE,
N'Dear All' +
N',
Tài sản: ' + @CODE + N' đã được xuất sử dụng.' + @footer
AS MESSAGECONTENT
RETURN 0
END
--DUYET XUAT SU DUNG HANG LOAT
IF @p_TYPE = 'ASS_USE_MULTI_MASTER_SearchResult'
BEGIN
SET @CODE = (SELECT STUFF((SELECT '; ' + DTA.PO_CODE
FROM TR_PO_MASTER DTA
INNER JOIN
(
SELECT A.PO_ID FROM ASS_MASTER_PO A
INNER JOIN ASS_USE_MULTI_DT B ON A.ASSET_ID = B.ASSET_ID AND B.USER_MASTER_ID = @p_ID
GROUP BY A.PO_ID
) PODT ON DTA.PO_ID = PODT.PO_ID
FOR XML PATH('')
),1,1,'')
)
SELECT N'[gAMS_Sacombank] Thông báo xuất kho được duyệt' AS TITLE,
N'Dear All' +
N',
Tài sản thuộc PO: ' + @CODE + N' đã được xuất sử dụng.' + @footer
AS MESSAGECONTENT
RETURN 0
END
--DUYET NHAP MOI VA XUAT SU DUNG CUNG LUC
IF @p_TYPE = 'ASS_ADDNEW_SearchResult'
BEGIN
SET @CODE = (SELECT STUFF((SELECT '; ' + DTA.PO_CODE
FROM ASS_ADDNEW_PO DTA
WHERE DTA.ADDNEW_ID = @p_ID
FOR XML PATH('')
),1,1,'')
)
SELECT N'[gAMS_Sacombank] Thông báo xuất kho được duyệt' AS TITLE,
N'Dear All' +
N',
Tài sản thuộc PO: ' + @CODE + N' đã được xuất sử dụng.' + @footer
AS MESSAGECONTENT
RETURN 0
END
-- NOI DUNG GUI EMAIL
IF @p_TYPE = 'TR_REQ_ADVANCE_PAYMENT_SEND_APR'
BEGIN
SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID)
SELECT @TILTER_MAIL+N' Thông báo chờ xác nhận phiếu đề nghị tạm ứng' AS TITLE,
N'Dear All' +
N',
Phiếu đề nghị tạm ứng số : ' + @CODE + N' đang chờ xác nhận.'
+ N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu đề nghị tạm ứng.'
+ @footer
AS MESSAGECONTENT
RETURN 0
END
IF @p_TYPE = 'TR_REQ_ADVANCE_PAYMENT_CONFIRM'
BEGIN
SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID)
SELECT @TILTER_MAIL+N' Thông báo chờ phê duyệt phiếu đề nghị tạm ứng' AS TITLE,
N'Dear All' +
N',
Phiếu đề nghị tạm ứng số : ' + @CODE + N' đang chờ phê duyệt.'
+ N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu đề nghị tạm ứng.'
+ @footer
AS MESSAGECONTENT
RETURN 0
END
IF @p_TYPE = 'TR_REQ_ADVANCE_PAYMENT_APR'
BEGIN
SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID)
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@p_ID AND REQ_PAY_ID IN (SELECT REQ_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_ID AND STATUS='C' AND ROLE_USER IN ('TGD','HDQT'))))
BEGIN
SELECT @TILTER_MAIL+N' Thông báo chờ phê duyệt phiếu đề nghị tạm ứng' AS TITLE,
N'Dear All' +
N',
Phiếu đề nghị tạm ứng số : ' + @CODE + N' đang chờ bạn phê duyệt.' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu đề nghị tạm ứng.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu đề nghị tạm ứng.'
+
+@footer
AS MESSAGECONTENT
RETURN 0
END
ELSE IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@p_ID AND REQ_PAY_ID IN (SELECT REQ_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_ID AND STATUS='C' AND ROLE_USER IN ('TKTGD'))))
BEGIN
IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_ID AND STATUS_JOB ='C' AND TLNAME IN (SELECT TLNANME FROM TL_USER WHERE RoleName ='TKTGD')))
BEGIN
SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID)
SELECT @TILTER_MAIL+N' Thông báo chờ điều phối / phê duyệt phiếu đề nghị tạm ứng' AS TITLE,
N'Dear All' +
N'
Phiếu đề nghị tạm ứng số : ' + @CODE + N' đang chờ bạn:'+
N'
A- Điều phối cho nhân viên xử lý (Sử dụng màn hình Điều phối tạm ứng / thanh toán, nằm trong phân hệ Quản lý thanh toán/ tạm ứng).'+
N',
B- Hoặc bạn có thể trực tiếp phê duyệt không cần điều phối (Sử dụng Màn hình Quản lý thanh toán/ tạm ứng, nằm trong phân hệ Quản lý thanh toán/ tạm ứng).' + ISNULL(@LINK_UAT,'') + @footer
AS MESSAGECONTENT
RETURN 0
END
ELSE
BEGIN
SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID)
SELECT @TILTER_MAIL+N' Thông báo chờ chờ phê duyệt cấp Văn Phòng Thư Kí TGĐ' AS TITLE,
N'Dear All' +
N',
Phiếu đề nghị tạm ứng số : ' + @CODE + N' đã được nhân viên xử lý gửi phê duyệt thành công. Bạn có thể phê duyệt phiếu. Phiếu sẽ chuyển đến cấp Tổng Giám Đốc sau khi phê duyệt thành công.' + @footer
AS MESSAGECONTENT
RETURN 0
END
END
-- NEU BUOC XU LY HIEN TAI CHO THU KI HOI DONG QUAN TRI
ELSE IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@p_ID AND REQ_PAY_ID IN (SELECT REQ_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_ID AND STATUS='C' AND ROLE_USER IN ('TKHDQT'))))
BEGIN
IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_ID AND STATUS_JOB ='C' AND TLNAME IN (SELECT TLNANME FROM TL_USER WHERE RoleName ='TKHDQT')))
BEGIN
SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID)
SELECT @TILTER_MAIL+N' Thông báo chờ điều phối / phê duyệt phiếu đề nghị tạm ứng' AS TITLE,
N'Dear All' +
N',
Phiếu đề nghị tạm ứng số : ' + @CODE + N' đang chờ bạn:'+
N'
A- Điều phối cho nhân viên xử lý (Sử dụng màn hình Điều phối tạm ứng / thanh toán, nằm trong phân hệ Quản lý thanh toán/ tạm ứng).'+
N',
B- Hoặc bạn có thể trực tiếp phê duyệt không cần điều phối ( Sử dụng Màn hình Phiếu đề nghị tạm ứng, nằm trong phân hệ Quản lý thanh toán/ tạm ứng).' + ISNULL(@LINK_UAT,'') +
@footer
AS MESSAGECONTENT
RETURN 0
END
ELSE
BEGIN
SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID)
SELECT @TILTER_MAIL+N' Thông báo chờ chờ phê duyệt cấp Văn Phòng Thư Kí HĐQT' AS TITLE,
N'Dear All' +
N',
Phiếu đề nghị tạm ứng số : ' + @CODE + N' đã được nhân viên xử lý gửi phê duyệt thành công. Bạn có thể phê duyệt phiếu. Phiếu sẽ chuyển đến cấp Hội Đồng Quán Trị sau khi phê duyệt thành công.' + @footer
AS MESSAGECONTENT
RETURN 0
END
END
--
ELSE
BEGIN
IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@p_ID AND AUTH_STATUS ='A'))
BEGIN
SELECT @TILTER_MAIL+N' Thông báo chờ kiểm soát viên điều phối phiếu đề nghị tạm ứng' AS TITLE,
N'Dear All' +
N',
Phiếu đề nghị tạm ứng số : ' + @CODE + N' đang chờ kiểm soát viên điều phối cho giao dịch viên.' + @footer
AS MESSAGECONTENT
RETURN 0
END
ELSE
BEGIN
SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID)
--SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11)))
SELECT N'[PHẦN MỀM QUẢN LÝ TÀI SẢN - AMS] Thông báo chờ phê duyệt phiếu đề nghị tạm ứng' AS TITLE,
N'Dear All' +
N',
Phiếu đề nghị tạm ứng số : ' + @CODE + N' đang chờ phê duyệt.' + @footer
AS MESSAGECONTENT
RETURN 0
END
END
RETURN 0
END
-- GDV XỬ LÝ XONG GỬI LẠI KẾ TOÁN
IF @p_TYPE = 'TR_REQ_ADVANCE_PAYMENT_KT_SEND_APR'
BEGIN
SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID)
SELECT @TILTER_MAIL+N' Thông báo chờ kiểm soát phê duyệt phiếu đề nghị tạm ứng' AS TITLE,
N'Dear All' +
N',
Phiếu đề nghị tạm ứng số : ' + @CODE + N' đang chờ kiểm soát viên phê duyệt.' + @footer
AS MESSAGECONTENT
RETURN 0
END
-- KSV PHÊ DUYỆT XONG THÔNG BÁO CHO NGƯỜI TẠO VÀ GIAO DỊCH VIÊN
-- GDV XỬ LÝ XONG GỬI LẠI KẾ TOÁN
IF @p_TYPE = 'TR_REQ_ADVANCE_PAYMENT_KT_APPR'
BEGIN
SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_ID)
SELECT @TILTER_MAIL+N' Thông báo phiếu tạm ứng đã được kiểm soát viên phê duyệt' AS TITLE,
N'Dear All' +
N',
Phiếu đề nghị tạm ứng số : ' + @CODE + N' đã được kiểm soát viên phê duyệt .' + @footer
AS MESSAGECONTENT
RETURN 0
END
--------- PHIẾU ĐỀ NGHỊ THANH TOÁN ---------------------------------
-------------------------------------------------------------------------
IF @p_TYPE = 'TR_REQ_PAYMENT_SEND_APR'
BEGIN
SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_ID)
--SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11)))
SELECT @TILTER_MAIL+N' Thông báo chờ xác nhận phiếu đề nghị thanh toán' AS TITLE,
N'Dear All' +
N',
Phiếu đề nghị thanh toán số : ' + @CODE + N' đang chờ xác nhận.' + @footer
AS MESSAGECONTENT
RETURN 0
END
IF @p_TYPE = 'TR_REQ_PAYMENT_CONFIRM'
BEGIN
SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_ID)
--SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11)))
SELECT @TILTER_MAIL+N' Thông báo chờ phê duyệt phiếu đề nghị thanh toán' AS TITLE,
N'Dear All' +
N',
Phiếu đề nghị thanh toán số : ' + @CODE + N' đang chờ phê duyệt.' + @footer
AS MESSAGECONTENT
RETURN 0
END
IF @p_TYPE = 'TR_REQ_PAYMENT_APR'
BEGIN
SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_ID)
--SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11)))
SELECT @TILTER_MAIL+N' Thông báo chờ kiểm soát viên điều phối phiếu đề nghị thanh toán' AS TITLE,
N'Dear All' +
N',
Phiếu đề nghị thanh toán số : ' + @CODE + N' đang chờ kiểm soát viên điều phối cho giao dịch viên.' + @footer
AS MESSAGECONTENT
RETURN 0
END
-- KSV DIEU PHOI TAM UNG CHO GDV
IF @p_TYPE = 'TR_REQ_TRANSFER'
BEGIN
IF(NOT EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM @l_LST_REQ_ID)))
BEGIN
SET @CODE = (select STUFF( (select '; ' + DTA.REQ_PAY_CODE FROM TR_REQ_PAYMENT DTA WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM @l_LST_REQ_ID)
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, ''))
SELECT @TILTER_MAIL+N' Thông báo chờ giao dịch viên xử lý hạch toán phiếu đề nghị thanh toán' AS TITLE,
N'Dear All' +
N',
Phiếu đề nghị thanh toán số : ' + @CODE + N' đang chờ giao dịch viên xử lý hạch toán.' + @footer
AS MESSAGECONTENT
RETURN 0
END
ELSE
BEGIN
SET @CODE = (select STUFF( (select '; ' + DTA.REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT DTA WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM @l_LST_REQ_ID)
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, ''))
IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID IN (SELECT REQ_PAY_ID FROM @l_LST_REQ_ID) AND STATUS ='C' AND ROLE_USER IN ('TKTGD')))
BEGIN
SELECT @TILTER_MAIL+N' Thông báo chờ giao dịch viên cập nhật ý kiến tại văn phòng Tổng Giám Đốc' AS TITLE,
N'Dear All' +
N',
Phiếu đề nghị tạm ứng số : ' + @CODE + N' đang chờ nhân viên tại văn phòng Tổng Giám Đốc xác nhận nội dung.' + @footer
AS MESSAGECONTENT
END
ELSE IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE REQ_ID IN (SELECT REQ_PAY_ID FROM @l_LST_REQ_ID) AND STATUS ='C' AND ROLE_USER IN ('TKHDQT')))
BEGIN
SELECT @TILTER_MAIL+N' Thông báo chờ giao dịch viên cập nhật ý kiến tại văn phòng Hội Đồng Quản Trí' AS TITLE,
N'Dear All' +
N',
Phiếu đề nghị tạm ứng số : ' + @CODE + N' đang chờ nhân viên tại văn phòng Hội Đồng Quản Trị xác nhận nội dung.' + @footer
AS MESSAGECONTENT
END
ELSE
BEGIN
SELECT @TILTER_MAIL+N' Thông báo chờ giao dịch viên xử lý hạch toán phiếu đề nghị tạm ứng' AS TITLE,
N'Dear All' +
N',
Phiếu đề nghị tạm ứng số : ' + @CODE + N' đang chờ giao dịch viên xử lý hạch toán.' + @footer
AS MESSAGECONTENT
END
RETURN 0
END
END
-- GDV XỬ LÝ XONG GỬI LẠI KẾ TOÁN
IF @p_TYPE = 'TR_REQ_PAYMENT_KT_SEND_APR'
BEGIN
SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_ID)
SELECT @TILTER_MAIL+N' Thông báo chờ kiểm soát phê duyệt phiếu đề nghị thanh toán' AS TITLE,
N'Dear All' +
N',
Phiếu đề nghị thanh toán số : ' + @CODE + N' đang chờ kiểm soát viên phê duyệt.' + @footer
AS MESSAGECONTENT
RETURN 0
END
-- KSV PHÊ DUYỆT XONG THÔNG BÁO CHO NGƯỜI TẠO VÀ GIAO DỊCH VIÊN
-- GDV XỬ LÝ XONG GỬI LẠI KẾ TOÁN
IF @p_TYPE = 'TR_REQ_PAYMENT_KT_APR'
BEGIN
SET @CODE = (SELECT REQ_PAY_CODE FROM TR_REQ_PAYMENT WHERE REQ_PAY_ID =@p_ID)
SELECT @TILTER_MAIL+N' Thông báo phiếu thanh toán đã được kiểm soát viên phê duyệt' AS TITLE,
N'Dear All' +
N',
Phiếu đề nghị thanh toán số : ' + @CODE + N' đã được kiểm soát viên phê duyệt .' + @footer
AS MESSAGECONTENT
RETURN 0
END
---------- TO TRINH CHU TRUONG
IF (@p_TYPE = 'PL_SEND_APP' OR @p_TYPE ='PL_REQUEST_DOC_App' OR @p_TYPE ='REQ_PROCESS_CHILD_Upd' OR @p_TYPE ='REQ_PROCESS_CHILD_App')
BEGIN
SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID)
IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND PROCESS_ID IN ('TGD','HDQT')))
BEGIN
SELECT @TILTER_MAIL+N' Thông báo tờ trình chủ trương cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Tờ trình chủ trương số : ' + @CODE + N' đang chờ bạn phê duyệt .' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt tờ trình.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt tờ trình.'
+
@footer
AS MESSAGECONTENT
RETURN 0
END
ELSE
BEGIN
---- SETUP MAIL THU KI
IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND REQ_ID IN (SELECT REQ_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_ID AND STATUS='C' AND ROLE_USER IN ('TKTGD'))))
BEGIN
IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_ID AND STATUS_JOB ='C' AND TLNAME IN (SELECT TLNANME FROM TL_USER WHERE RoleName ='TKTGD')))
BEGIN
SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID)
SELECT @TILTER_MAIL+N' Thông báo chờ điều phối / phê duyệt tờ trình chủ trương' AS TITLE,
N'Dear All' +
N',
Tờ trình số : ' + @CODE + N' đang chờ bạn điều phối cho nhân viên xử lý. Hoặc bạn có thể trực tiếp phê duyệt không cần điều phối.' +
N'
Màn hình: Quản lý kế hoạch / Điều phối công việc'+ @footer
AS MESSAGECONTENT
RETURN 0
END
ELSE
BEGIN
SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID)
SELECT @TILTER_MAIL+N' Thông báo chờ chờ phê duyệt cấp Văn Phòng Thư Kí TGĐ ' AS TITLE,
N'Dear All' +
N',
Tờ trình số : ' + @CODE + N' đã được nhân viên xử lý gửi phê duyệt thành công. Bạn có thể phê duyệt phiếu. Phiếu sẽ chuyển đến cấp Tổng Giám Đốc sau khi phê duyệt thành công.'
+ N'
Màn hình: Quản lý kế hoạch / Tờ trình chủ trương DVCM/DVDC'+
+ @footer
AS MESSAGECONTENT
RETURN 0
END
END
-- NEU BUOC XU LY HIEN TAI CHO THU KI HOI DONG QUAN TRI
ELSE IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND REQ_ID IN (SELECT REQ_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_ID AND STATUS='C' AND ROLE_USER IN ('TKHDQT'))))
BEGIN
IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_ID AND STATUS_JOB ='C' AND TLNAME IN (SELECT TLNANME FROM TL_USER WHERE RoleName ='TKHDQT')))
BEGIN
SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID)
SELECT @TILTER_MAIL+N' Thông báo chờ điều phối / phê duyệt tờ trình' AS TITLE,
N'Dear All' +
N',
Tờ trình số : ' + @CODE + N' đang chờ bạn điều phối cho nhân viên xử lý. Hoặc bạn có thể trực tiếp phê duyệt không cần điều phối.' +
CHAR(10) +
N'Màn hình: Quản lý kế hoạch / Điều phối công việc'+ @footer
AS MESSAGECONTENT
RETURN 0
END
ELSE
BEGIN
SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID)
SELECT @TILTER_MAIL+N' Thông báo chờ chờ phê duyệt cấp Văn Phòng Thư Kí HĐQT' AS TITLE,
N'Dear All' +
N',
Tờ trình số : ' + @CODE + N' đã được nhân viên xử lý gửi phê duyệt thành công. Bạn có thể phê duyệt phiếu. Phiếu sẽ chuyển đến cấp Hội Đồng Quán Trị sau khi phê duyệt thành công.'
+ N'
Màn hình: Quản lý kế hoạch / Tờ trình chủ trương DVCM/DVDC'
+ @footer
AS MESSAGECONTENT
RETURN 0
END
END
---- END SETUP MAIL THU KI
--SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11)))
SELECT @TILTER_MAIL+N' Thông báo tờ trình chủ trương cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Tờ trình chủ trương : ' + @CODE + N' đang chờ bạn phê duyệt . ' + @footer
AS MESSAGECONTENT
END
RETURN 0
END
IF ( @p_TYPE ='PL_REQ_PROCESS_CHILD_Ins')
BEGIN
SET @CODE = (select STUFF( (select '; ' + DTA.REQ_CODE FROM PL_REQUEST_DOC DTA WHERE REQ_ID IN (SELECT REQ_PAY_ID FROM @l_LST_REQ_ID)
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, ''))
SELECT @TILTER_MAIL+N' Thông báo tờ trình chủ trương cần xử lý' AS TITLE,
N'Dear All' +
N',
Tờ trình số : ' + @CODE + N' đang chờ bạn xử lý . Vui lòng vào màn Quản lý kế hoạch / Tờ trình chủ trương DVCM - DVDC, tìm kiếm phiếu và xử lý' + @footer
AS MESSAGECONTENT
RETURN 0
END
ELSE IF(@p_TYPE='REQUEST_DOC_PROCESS_Approve')
BEGIN
SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID)
IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND PROCESS_ID IN ('TGD','HDQT')))
BEGIN
SELECT @TILTER_MAIL+N' Thông báo tờ trình chủ trương cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Tờ trình chủ trương số : ' + @CODE + N' đang chờ bạn phê duyệt .' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt tờ trình.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt tờ trình.'
+
@footer
AS MESSAGECONTENT
RETURN 0
END
ELSE
BEGIN
---- SETUP MAIL THU KI
IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND REQ_ID IN (SELECT REQ_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_ID AND STATUS='C' AND ROLE_USER IN ('TKTGD'))))
BEGIN
IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_ID AND STATUS_JOB ='C' AND TLNAME IN (SELECT TLNANME FROM TL_USER WHERE RoleName ='TKTGD')))
BEGIN
SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID)
SELECT @TILTER_MAIL+N' Thông báo chờ điều phối / phê duyệt tờ trình chủ trương' AS TITLE,
N'Dear All' +
N',
Tờ trình số : ' + @CODE + N' đang chờ bạn điều phối cho nhân viên xử lý. Hoặc bạn có thể trực tiếp phê duyệt không cần điều phối.' +
N'
Sử dụng Màn hình: Quản lý kế hoạch / Điều phối công việc'+ ISNULL(@LINK_UAT,'') + @footer
AS MESSAGECONTENT
RETURN 0
END
ELSE
BEGIN
SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID)
SELECT @TILTER_MAIL+N' Thông báo chờ chờ phê duyệt cấp Văn Phòng Thư Kí TGĐ' AS TITLE,
N'Dear All' +
N',
Tờ trình số : ' + @CODE + N' đã được nhân viên xử lý gửi phê duyệt thành công. Bạn có thể phê duyệt phiếu. Phiếu sẽ chuyển đến cấp Tổng Giám Đốc sau khi phê duyệt thành công.'
+N'
Sử dụng Màn hình: Quản lý kế hoạch / Tờ trình chủ trương DVCM - DVDC'+ ISNULL(@LINK_UAT,'') + @footer
AS MESSAGECONTENT
RETURN 0
END
END
-- NEU BUOC XU LY HIEN TAI CHO THU KI HOI DONG QUAN TRI
ELSE IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND REQ_ID IN (SELECT REQ_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID =@p_ID AND STATUS='C' AND ROLE_USER IN ('TKHDQT'))))
BEGIN
IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS_CHILD WHERE REQ_ID =@p_ID AND STATUS_JOB ='C' AND TLNAME IN (SELECT TLNANME FROM TL_USER WHERE RoleName ='TKHDQT')))
BEGIN
SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID)
SELECT @TILTER_MAIL+N' Thông báo chờ điều phối / phê duyệt tờ trình' AS TITLE,
N'Dear All' +
N',
Tờ trình số : ' + @CODE + N' đang chờ bạn điều phối cho nhân viên xử lý. Hoặc bạn có thể trực tiếp phê duyệt không cần điều phối.' +
CHAR(10) +
N'
Sử dụng Màn hình: Quản lý kế hoạch / Điều phối công việc'+ISNULL(@LINK_UAT,'') + @footer
AS MESSAGECONTENT
RETURN 0
END
ELSE
BEGIN
SET @CODE = (SELECT REQ_CODE FROM PL_REQUEST_DOC WHERE REQ_ID =@p_ID)
SELECT @TILTER_MAIL+N' Thông báo chờ chờ phê duyệt cấp Văn Phòng Thư Kí HĐQT' AS TITLE,
N'Dear All' +
N',
Tờ trình số : ' + @CODE + N' đã được nhân viên xử lý gửi phê duyệt thành công. Bạn có thể phê duyệt phiếu. Phiếu sẽ chuyển đến cấp Hội Đồng Quán Trị sau khi phê duyệt thành công.'
+N'
Sử dụng Màn hình: Quản lý kế hoạch / Tờ trình chủ trương DVCM - DVDC'+ ISNULL(@LINK_UAT,'') + @footer
AS MESSAGECONTENT
RETURN 0
END
END
---- END SETUP MAIL THU KI
IF(EXISTS(SELECT * FROM PL_REQUEST_DOC WHERE REQ_ID=@p_ID AND PROCESS_ID <> 'APPROVE'))
BEGIN
SELECT @TILTER_MAIL+N' Thông báo tờ trình chủ trương cần được phê duyệt' AS TITLE,
N'Dear All' +
N',
Tờ trình số : ' + @CODE + N' đang chờ bạn phê duyệt .' + @footer
AS MESSAGECONTENT
RETURN 0
END
ELSE
BEGIN
----SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11)))
SELECT N'[ PHẦN MỀM QUẢN LÝ TÀI SẢN - AMS] Thông báo tờ trình chủ trương đã được phê duyệt hoàn tất' AS TITLE,
N'Dear All' +
N',
Tờ trình số : ' + @CODE + N' đã được phê duyệt hoàn tất và phát sinh phiếu yêu cầu mua sắm .' + @footer
AS MESSAGECONTENT
END
END
RETURN 0
END
------------------------- ---------PHIẾU YÊU CẦU MUA SẮM -------------------------------
DECLARE @p_CURRENT_PROCESS VARCHAR(20)
DECLARE @p_REQUEST_DOC_LINK VARCHAR(200)
DECLARE @p_DMMS_TYPE_JOB VARCHAR(20)
--------------DVKD gửi YC phê duyệt / DMMS/DVCM gửi YC phê duyệt---------------
IF(@p_TYPE = 'TR_REQUEST_DOC_SendApp' OR @p_TYPE ='TR_REQ_PROCESS_CHILD_Upd')
BEGIN
-- KIỂM TRA BƯỚC XỬ LÝ HIỆN TẠI NẾU LÀ TỔNG GIÁM ĐỐC THÌ CHÈN ĐƯỜNG LINK CORE MỚI
SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID =@p_ID)
IF(EXISTS(SELECT * FROM TR_REQUEST_DOC WHERE REQ_ID=@p_ID AND PROCESS_ID IN ('TGD','HDQT')))
BEGIN
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Phiếu yêu cầu mua sắm : ' + @CODE + N' đang chờ bạn phê duyệt .' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
ELSE
BEGIN
SET @p_CURRENT_PROCESS = (SELECT PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_ID AND STATUS = 'C')
--------Nếu PROCESS là ĐVKD----------
IF(@p_CURRENT_PROCESS = 'APPNEW' OR @p_CURRENT_PROCESS = 'SIGN')
BEGIN
SET @p_REQUEST_DOC_LINK = @URL + 'request-doc-view;id=' + @p_ID
END
--------Nếu PROCESS là ĐMMS----------
ELSE IF (@p_CURRENT_PROCESS = 'DMMS')
BEGIN
SET @p_REQUEST_DOC_LINK = @URL + 'request-doc-dvms-view;id=' + @p_ID
END
--------Nếu PROCESS là ĐVCM----------
ELSE IF(@p_CURRENT_PROCESS = 'DVCM')
BEGIN
SET @p_REQUEST_DOC_LINK = @URL + 'request-doc-dvdm-view;id=' + @p_ID
END
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Phiếu yêu cầu mua sắm : ' + @CODE + N' đang chờ bạn phê duyệt .' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu yêu cầu.'
+ @footer
AS MESSAGECONTENT
END
RETURN 0
END
--------------Trưởng ĐV phê duyệt/ cấp duyệt trung gian xác nhận---------------
IF(@p_TYPE = 'TR_REQUEST_DOC_App')
BEGIN
SET @p_CURRENT_PROCESS = (SELECT PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_ID AND STATUS = 'C')
SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID =@p_ID)
---------Khi trưởng ĐV duyệt xong thì sang ĐMMS điều phối-------
IF(@p_CURRENT_PROCESS = 'DMMS')
BEGIN
SET @p_REQUEST_DOC_LINK = @URL + 'TransferJob'
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm cần điều phối xử lý' AS TITLE,
N'Dear All' +
N',
Phiếu yêu cầu mua sắm : ' + @CODE + N' đang chờ bạn điều phối xử lý .' +
N'
Anh/Chị vui lòng nhấn vào đây để thực hiện tìm kiếm và điều phối phiếu.'
+ @footer
AS MESSAGECONTENT
END
ELSE IF(@p_CURRENT_PROCESS = 'APPNEW')
BEGIN
SET @p_REQUEST_DOC_LINK = @URL + 'request-doc-view;id=' + @p_ID
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Phiếu yêu cầu mua sắm : ' + @CODE + N' đang chờ bạn phê duyệt .' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu yêu cầu.'
+ @footer
AS MESSAGECONTENT
END
END
------------Điều phối xử lý----------------
IF ( @p_TYPE ='TR_REQ_PROCESS_CHILD_Ins')
BEGIN
SET @p_CURRENT_PROCESS = (SELECT PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_ID AND STATUS = 'C')
SET @p_DMMS_TYPE_JOB = (
SELECT TOP 1 TYPE_JOB
FROM PL_REQUEST_PROCESS_CHILD
WHERE REQ_ID = @p_ID
AND PROCESS_ID = (SELECT TOP 1 ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_ID AND STATUS = 'C')
AND STATUS_JOB = 'C'
)
SET @CODE = (select STUFF( (select '; ' + DTA.REQ_CODE FROM TR_REQUEST_DOC DTA WHERE REQ_ID IN (SELECT REQ_PAY_ID FROM @l_LST_REQ_ID)
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, ''))
----------Nếu ng xử lý tiếp theo là KS-------
IF(@p_DMMS_TYPE_JOB = 'KS')
BEGIN
SET @p_REQUEST_DOC_LINK = @URL + 'TransferJob'
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm cần xử lý' AS TITLE,
N'Dear All' +
N',
Phiếu yêu cầu mua sắm số : ' + @CODE + N' đang chờ bạn điều phối xử lý .' +
N'
Anh/Chị vui lòng nhấn vào đây để thực hiện tìm kiếm và điều phối phiếu.'
+ @footer
AS MESSAGECONTENT
END
----------Nếu ng xử lý tiếp theo là XL-------
ELSE IF(@p_DMMS_TYPE_JOB = 'XL')
BEGIN
----------Nếu PROCESS là DMMS---------
IF(@p_CURRENT_PROCESS = 'DMMS')
BEGIN
SET @p_REQUEST_DOC_LINK = @URL + 'request-doc-dvms-edit;id=' + @p_ID
END
----------Nếu PROCESS là DVCM---------
ELSE IF(@p_CURRENT_PROCESS = 'DVCM')
BEGIN
SET @p_REQUEST_DOC_LINK = @URL + 'request-doc-dvdm-edit;id=' + @p_ID
END
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm cần xử lý' AS TITLE,
N'Dear All' +
N',
Phiếu yêu cầu mua sắm số : ' + @CODE + N' đang chờ bạn xử lý .' +
N'
Anh/Chị vui lòng nhấn vào đây để thực hiện xử lý phiếu yêu cầu.'
+ @footer
AS MESSAGECONTENT
END
RETURN 0
END
-------------DMMS/DCVM phê duyệt------------
IF(@p_TYPE = 'TR_REQ_PROCESS_CHILD_App')
BEGIN
SET @p_CURRENT_PROCESS = (SELECT PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_ID AND STATUS = 'C')
SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID =@p_ID)
IF(@p_CURRENT_PROCESS = 'DMMS')
BEGIN
SET @p_REQUEST_DOC_LINK = @URL + 'request-doc-dvms-view;id=' + @p_ID
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Phiếu yêu cầu mua sắm : ' + @CODE + N' đang chờ bạn phê duyệt .' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu yêu cầu.'
+ @footer
AS MESSAGECONTENT
END
----------------Nếu PYCMS hoàn tất----------------
IF(@p_CURRENT_PROCESS = 'APPROVE')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm đã được phê duyệt' AS TITLE,
N'Dear All' +
N',
Phiếu yêu cầu mua sắm số : ' + @CODE + N' đã được phê duyệt hoàn tất và phát sinh PO .' + @footer
AS MESSAGECONTENT
END
----------------Nếu PYCMS đến DVCM------------------
ELSE IF (@p_CURRENT_PROCESS = 'DVCM')
BEGIN
SET @p_REQUEST_DOC_LINK = @URL + 'TransferJob'
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm cần điều phối xử lý' AS TITLE,
N'Dear All' +
N',
Phiếu yêu cầu mua sắm : ' + @CODE + N' đang chờ bạn điều phối xử lý .' +
N'
Anh/Chị vui lòng nhấn vào đây để thực hiện tìm kiếm và điều phối phiếu.'
+ @footer
AS MESSAGECONTENT
END
----------------Nếu PYCMS đến GDK HT---------------
ELSE IF(@p_CURRENT_PROCESS = 'GDK_PYC')
BEGIN
SET @p_REQUEST_DOC_LINK = @URL + 'request-doc-process-view;id=' + @p_ID
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Phiếu yêu cầu mua sắm số : ' + @CODE + N' đang chờ bạn phê duyệt .' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu yêu cầu.'
+ @footer
AS MESSAGECONTENT
END
END
--------------Phê duyệt PYCMS-----------------
IF(@p_TYPE='TR_REQUEST_DOC_PROCESS_Approve')
BEGIN
SET @p_CURRENT_PROCESS = (SELECT PROCESS_ID FROM PL_REQUEST_PROCESS WHERE REQ_ID = @p_ID AND STATUS = 'C')
SET @CODE = (SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID =@p_ID)
----SET @DATETIME = (SELECT CONVERT(CHAR(11), @APPROVEDT, 103) + LTRIM(RIGHT(CONVERT(CHAR(20), @APPROVEDT, 22), 11)))
--SELECT N'[ PHẦN MỀM QUẢN LÝ TÀI SẢN - AMS] Thông báo phiếu yêu cầu mua sắm đã được phê duyệt hoàn tất' AS TITLE,
--N'Dear All' +
--N',
Phiếu yêu cầu mua sắm số : ' + @CODE + N' đã được phê duyệt hoàn tất và phát sinh PO .' + @footer
--AS MESSAGECONTENT
----------------TH phiếu chưa hoàn tất-----------
IF(@p_CURRENT_PROCESS <> 'APPROVE')
BEGIN
SET @p_REQUEST_DOC_LINK = @URL + 'request-doc-process-view;id=' + @p_ID
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Phiếu yêu cầu mua sắm số : ' + @CODE + N' đang chờ bạn phê duyệt .' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu yêu cầu.'
+ @footer
AS MESSAGECONTENT
END
----------------TH phiếu đã hoàn tất-----------
ELSE IF (@p_CURRENT_PROCESS = 'APPROVE')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu mua sắm đã được phê duyệt' AS TITLE,
N'Dear All' +
N',
Phiếu yêu cầu mua sắm số : ' + @CODE + N' đã được phê duyệt hoàn tất và phát sinh PO .' + @footer
AS MESSAGECONTENT
END
END
------datmq 7/1/2022: Quản lý cho thuê------------------------
-----Quản lý trụ sở - gửi YC phê duyệt--------
IF(@p_TYPE = 'BUD_MASTER_SEND_APPROVE')
BEGIN
SET @CODE = (SELECT BUILDING_NAME FROM BUD_MASTER WHERE BUILDING_ID = @p_ID)
SELECT @TILTER_MAIL+N' Thông báo trụ sở cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin trụ sở: ' + @CODE+ N' đang chờ bạn phê duyệt.' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
-----Quản lý trụ sở - cấp phê duyệt trung gian đã xác nhận--------
IF(@p_TYPE = 'BUD_MASTER_CONFIRM')
BEGIN
SET @CODE = (SELECT BUILDING_NAME FROM BUD_MASTER WHERE BUILDING_ID = @p_ID)
SELECT @TILTER_MAIL+N' Thông báo trụ sở cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin trụ sở: ' +@CODE + N' đã được xác nhận và đang chờ bạn phê duyệt.' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
-----Quản lý trụ sở - trưởng đơn vị đã duyệt, trả mail về cho ng tạo--------
IF(@p_TYPE = 'BUD_MASTER_APPROVED')
BEGIN
SET @CODE = (SELECT BUILDING_NAME FROM BUD_MASTER WHERE BUILDING_ID = @p_ID)
SELECT @TILTER_MAIL+N' Thông báo trụ sở đã được phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin trụ sở: ' +@CODE+ N' đã được trưởng đơn vị phê duyệt.' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
+
@footer
AS MESSAGECONTENT
END
------BAODNQ 4/1/2022: Quản lý cho thuê------------------------
-----Khai báo DTSD nội bộ - gửi YC phê duyệt--------
IF(@p_TYPE = 'BUD_CONTRACT_MASTER_SEND_APPROVE')
BEGIN
SET @CODE =
(SELECT B.BUILDING_NAME
FROM BUD_CONTRACT_MASTER A
LEFT JOIN BUD_MASTER B ON A.BUILDING_ID = B.BUILDING_ID
WHERE A.CONTRACT_ID = @p_ID
)
SELECT @TILTER_MAIL+N' Thông báo hợp đồng sử dụng DT nội bộ cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin hợp đồng DTSD nội bộ của trụ sở: ' +@CODE+N' đang chờ bạn phê duyệt.' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
-----Khai báo DTSD nội bộ - cấp phê duyệt trung gian đã xác nhận--------
IF(@p_TYPE = 'BUD_CONTRACT_MASTER_CONFIRM')
BEGIN
SET @CODE =
(SELECT B.BUILDING_NAME
FROM BUD_CONTRACT_MASTER A
LEFT JOIN BUD_MASTER B ON A.BUILDING_ID = B.BUILDING_ID
WHERE A.CONTRACT_ID = @p_ID
)
SELECT @TILTER_MAIL+N' Thông báo hợp đồng sử dụng DT nội bộ cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin hợp đồng DTSD nội bộ của trụ sở: ' +@CODE+N' đã được xác nhận và đang chờ bạn phê duyệt.' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
-----Khai báo DTSD nội bộ - trưởng đơn vị đã duyệt, trả mail về cho ng tạo--------
IF(@p_TYPE = 'BUD_CONTRACT_MASTER_APPROVED')
BEGIN
SET @CODE =
(SELECT B.BUILDING_NAME
FROM BUD_CONTRACT_MASTER A
LEFT JOIN BUD_MASTER B ON A.BUILDING_ID = B.BUILDING_ID
WHERE A.CONTRACT_ID = @p_ID
)
SELECT @TILTER_MAIL+N' Thông báo hợp đồng sử dụng DT nội bộ đã được phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin hợp đồng DTSD nội bộ của trụ sở: ' +@CODE+N' đã được trưởng đơn vị phê duyệt.' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
+
@footer
AS MESSAGECONTENT
END
-----Quản lý hợp đồng khách thuê - gửi YC phê duyệt--------
IF(@p_TYPE = 'BUD_CONTRACT_CUST_MASTER_SEND_APPROVE')
BEGIN
SET @CODE = (SELECT CONTRACT_NO FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @p_ID)
SELECT @TILTER_MAIL+N' Thông báo hợp đồng khách thuê trụ sở cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin hợp đồng khách thuê trụ sở số: ' + @CODE + N' đang chờ bạn phê duyệt.' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
-----Quản lý hợp đồng khách thuê - cấp phê duyệt trung gian đã xác nhận--------
IF(@p_TYPE = 'BUD_CONTRACT_CUST_MASTER_CONFIRM')
BEGIN
SET @CODE = (SELECT CONTRACT_NO FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @p_ID)
SELECT @TILTER_MAIL+N' Thông báo hợp đồng khách thuê trụ sở cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin hợp đồng khách thuê trụ sở số: ' + @CODE + N' đã được xác nhận và đang chờ bạn phê duyệt.' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
-----Quản lý hợp đồng khách thuê - trưởng đơn vị đã duyệt, trả mail về cho ng tạo--------
IF(@p_TYPE = 'BUD_CONTRACT_CUST_MASTER_APPROVED')
BEGIN
SET @CODE = (SELECT CONTRACT_NO FROM BUD_CONTRACT_CUST_MASTER WHERE CONTRACT_ID = @p_ID)
SELECT @TILTER_MAIL+N' Thông báo hợp đồng khách thuê trụ sở đã được phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin hợp đồng khách thuê trụ sở số: ' + @CODE + N' đã được phê duyệt.' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
+
@footer
AS MESSAGECONTENT
END
-----PhongNT 15/9/2022: Quản lý TSCĐ/CCLĐ--------
DECLARE @SYS_PREFIX VARCHAR(15),@PAGE NVARCHAR(200),@URLPAGE VARCHAR(2000)
----- Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý - HCQT --------
--IF(@p_TYPE = 'ASS_SEND_TDV')
--BEGIN
--
-- --cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý
-- SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from(
-- SELECT SUBSTRING(@p_ID, PATINDEX('%[a-z]%', @p_ID), LEN(@p_ID)) Val
-- )x)
--
-- SELECT @PAGE = sp.Description,
-- @URLPAGE=(CASE sp.Prefix
-- WHEN 'ASA' THEN 'ass-t-add-new-qlts-view;id='
-- WHEN 'SMAC' THEN 'ass-collect-multi-hcqt-master-view;id='
-- WHEN 'ASSL' THEN 'ass-liq-bvb-hc-view;id='
-- WHEN 'TFS' THEN 'ass-transfer-multi-view;id='
-- WHEN 'SMA' THEN 'ass-use-multi-bvb-master-view;id='
-- WHEN 'ASSD' THEN 'ass-update-view;id='
-- WHEN 'ACAC' THEN 'ass-collect-cost-allocation-view;id='
-- END)
-- FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX
--
--SELECT @TILTER_MAIL+N'Thông báo '+LOWER(@PAGE)+N' cần phê duyệt' AS TITLE,
-- N'Dear All' +
-- N',
Bạn có giao dịch '+LOWER(@PAGE)+N' có ID: '+@p_ID+ N' cần được phê duyệt.' +
-- N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
-- +
-- @footer
-- AS MESSAGECONTENT
--END
--
--IF(@p_TYPE = 'ASS_INVENTORY_MAIN')
--BEGIN
--SELECT @TILTER_MAIL+N'Thông báo kiểm kê tài sản cần xử lý' AS TITLE,
-- N'Dear All' +
-- N',
Bạn có giao dịch kiểm kê tài sản có ID: '+@p_ID+ N' cần được phê duyệt.' +
-- N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
-- +
-- @footer
-- AS MESSAGECONTENT
--END
--
--IF(@p_TYPE = 'ASS_SEND_GDV')
--BEGIN
--
-- --cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý
-- SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from(
-- SELECT SUBSTRING(@p_ID, PATINDEX('%[a-z]%', @p_ID), LEN(@p_ID)) Val
-- )x)
--
-- SELECT @PAGE = sp.Description,
-- @URLPAGE=(CASE sp.Prefix
-- WHEN 'ASA' THEN 'ass-t-add-new-bvb-kt-edit;id='
-- WHEN 'SMAC' THEN 'ass-collect-multi-kt-master-view;id='
-- WHEN 'ASSL' THEN 'ass-liq-bvb-kt-edit;id='
-- WHEN 'TFS' THEN 'ass-transfer-multi-kt-edit;id='
-- WHEN 'SMA' THEN 'ass-use-multi-bvb-kt-edit;id='
-- END)
-- FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX
--
--SELECT @TILTER_MAIL+N'Thông báo '+LOWER(@PAGE)+N' cần xử lý' AS TITLE,
-- N'Dear All' +
-- N',
Bạn có giao dịch '+LOWER(@PAGE)+N' có ID: '+@p_ID+ N' cần được giao dịch viên xử lý.' +
-- N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
-- +
-- @footer
-- AS MESSAGECONTENT
--END
--
--IF(@p_TYPE = 'ASS_SEND_KSV')
--BEGIN
--
-- --cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý
-- SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from(
-- SELECT SUBSTRING(@p_ID, PATINDEX('%[a-z]%', @p_ID), LEN(@p_ID)) Val
-- )x)
--
-- SELECT @PAGE = sp.Description,
-- @URLPAGE=(CASE sp.Prefix
-- WHEN 'ASA' THEN 'ass-t-add-new-bvb-kt-view;id='
-- WHEN 'SMAC' THEN 'ass-collect-multi-kt-master-view;id='
-- WHEN 'ASSL' THEN 'ass-liq-bvb-kt-view;id='
-- WHEN 'TFS' THEN 'ass-transfer-multi-kt-view;id='
-- WHEN 'SMA' THEN 'ass-use-multi-bvb-kt-view;id='END)
-- FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX
--
--SELECT @TILTER_MAIL+N'Thông báo '+LOWER(@PAGE)+N' cần phê duyệt' AS TITLE,
-- N'Dear All' +
-- N',
Bạn có giao dịch '+LOWER(@PAGE)+N' có ID: '+@p_ID+ N' cần được kiểm soát viên phê duyệt.' +
-- N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
-- +
-- @footer
-- AS MESSAGECONTENT
--END
IF(@p_TYPE = 'ASS_SEND_CONFIRM')
BEGIN
--cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý
SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from(
SELECT SUBSTRING(@p_ID, PATINDEX('%[a-z]%', @p_ID), LEN(@p_ID)) Val
)x)
SELECT @PAGE = sp.Description,
@URLPAGE=(CASE sp.Prefix
WHEN 'SMAC' THEN 'ass-collect-confirm-view;id='
WHEN 'SMA' THEN 'ass-use-confirm-master-view;id='
WHEN 'ASSIM' THEN 'ass-inventory-confirm-view;id='
END)
FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX
IF(@SYS_PREFIX = 'SMAC')
BEGIN -- THU HỒI
SELECT TOP 1 @CODE = A.COL_MULTI_MASTER_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName, @REQ_CODE = E.REQ_CODE
FROM ASS_COLLECT_MULTI_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON A.DEPT_CREATE = D.DEP_ID
LEFT JOIN TR_REQUEST_SHOP_DOC E ON A.REQ_ID = E.REQ_ID
WHERE A.COL_MULTI_MASTER_ID = @p_ID
END
ELSE IF(@SYS_PREFIX = 'SMA')
BEGIN -- XUẤT SD
SELECT @REQ_CODE = STUFF( (
SELECT ',' + B.REQ_CODE
FROM ASS_USE_MULTI_DT A
LEFT JOIN TR_REQUEST_SHOP_DOC B ON A.REQ_ID = B.REQ_ID
WHERE A.USER_MASTER_ID = @p_ID AND A.REQ_ID IS NOT NULL AND A.REQ_ID <> ''
GROUP BY B.REQ_CODE
ORDER BY B.REQ_CODE
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
SELECT TOP 1 @CODE = A.USER_MASTER_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName
FROM ASS_USE_MULTI_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON A.BRANCH_CREATE = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON A.DEPT_CREATE = D.DEP_ID
WHERE A.USER_MASTER_ID = @p_ID
END
SELECT @TILTER_MAIL+N' Thông báo phiếu ' + @PAGE + N'( ' + @p_ID + N' ) được yêu cầu bởi ' + @BRANCH_USER_CREATE + @MESSAGE_TITLE_DONE AS TITLE,
N''+
N'Dear All,
Thông tin phiếu ' + @PAGE + ': ' + @p_ID + ''+
N'
Số PYC: '+ ISNULL(@REQ_CODE,'') +
N'
Được yêu cầu bởi: '+ @BRANCH_USER_CREATE +
N'
Người tạo: ' + @CREATE_USERNAME +
N'
Tình trạng: ' + @MESSAGE_STATUS_DONE +
N'
Xem chi tiết tại: ' + N'Hệ thống quản lý tài sản cố định'
+
@footer
AS MESSAGECONTENT
END
IF(@p_TYPE = 'ASS_REJECT_NT')
BEGIN
--cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý
SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from(
SELECT SUBSTRING(@p_ID, PATINDEX('%[a-z]%', @p_ID), LEN(@p_ID)) Val
)x)
SELECT @PAGE = sp.Description,
@URLPAGE=(CASE sp.Prefix
WHEN 'ASA' THEN 'ass-t-add-new-qlts-edit;id='
WHEN 'SMAC' THEN 'ass-collect-multi-hcqt-master-edit;id='
WHEN 'ASSL' THEN 'ass-liq-bvb-hc-edit;id='
WHEN 'TFS' THEN 'ass-transfer-multi-edit;id='
WHEN 'RPMT' THEN 'ass-repair-multi-edit;id='
WHEN 'PRITF'THEN 'ass-private-transfer-multi-edit;id='
WHEN 'ASSIM'THEN 'ass-inventory-edit;id='
WHEN 'SMA' THEN 'ass-use-multi-bvb-master-edit;id='
WHEN 'ACAC' THEN 'ass-collect-cost-allocation-edit;id='
WHEN 'ASSD' THEN 'ass-update-edit;id='END)
FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX
--TRẢ VỀ NGƯỜI TẠO PYC DC,SC,TH,CP
SET @REQ_TYPE = (SELECT TOP 1 trsd.REQ_TYPE FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.REQ_ID = @p_ID)
IF(@REQ_TYPE IS NOT NULL AND @REQ_TYPE <> '')
BEGIN
SELECT TOP 1 @CREATE_USERNAME = B.TLFullName , @REQ_STATUS = CA.CONTENT, @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @REQ_CODE = A.REQ_CODE
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON B.TLSUBBRID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON B.DEP_ID = D.DEP_ID
LEFT JOIN CM_ALLCODE CA ON A.STATUS = CA.CDVAL AND CA.CDNAME = 'TRREQSTATUS' AND CA.CDTYPE = 'STATUS'
WHERE A.REQ_ID = @p_ID
SET @REQ_TYPE_NAME = (SELECT CONTENT FROM CM_ALLCODE WHERE CDNAME = 'TRREQASSTYPE' AND CDTYPE = 'TRREQASSTYPE' AND CDVAL = @REQ_TYPE)
SET @REQ_TYPE_NAME_TITLE = @REQ_TYPE_NAME + N' ( ' + @REQ_CODE + N' ) được yêu cầu bởi ' + @BRANCH_USER_CREATE
--PHIẾU BỊ TRẢ VỀ -> GỬI MAIL NGƯỜI TẠO
SET @URL = @URL + 'trade-request-doc-edit;id=' + @p_ID + ';type=' + @REQ_TYPE
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu ' + @REQ_TYPE_NAME_TITLE + N' bị trả về ' AS TITLE,
N''+
N'Dear All,
Thông tin phiếu yêu cầu ' + @REQ_TYPE_NAME + ': ' + @REQ_CODE + ''+
N'
Được yêu cầu bởi: '+ @BRANCH_USER_CREATE +
N'
Người tạo PYC: ' + @CREATE_USERNAME +
N'
Tình trạng: ' + @REQ_STATUS+
N'
Xem chi tiết tại: ' + N'Hệ thống quản lý tài sản cố định'
+
@footer
AS MESSAGECONTENT
END
ELSE
BEGIN
IF(@SYS_PREFIX = 'SMAC')
BEGIN -- THU HỒI
SELECT TOP 1 @CODE = A.COL_MULTI_MASTER_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName, @REQ_CODE = E.REQ_CODE
FROM ASS_COLLECT_MULTI_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON A.DEPT_CREATE = D.DEP_ID
LEFT JOIN TR_REQUEST_SHOP_DOC E ON A.REQ_ID = E.REQ_ID
WHERE A.COL_MULTI_MASTER_ID = @p_ID
END
ELSE IF(@SYS_PREFIX = 'SMA')
BEGIN -- XUẤT SD
SELECT @REQ_CODE = STUFF( (
SELECT ',' + B.REQ_CODE
FROM ASS_USE_MULTI_DT A
LEFT JOIN TR_REQUEST_SHOP_DOC B ON A.REQ_ID = B.REQ_ID
WHERE A.USER_MASTER_ID = @p_ID AND A.REQ_ID IS NOT NULL AND A.REQ_ID <> ''
GROUP BY B.REQ_CODE
ORDER BY B.REQ_CODE
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
SELECT TOP 1 @CODE = A.USER_MASTER_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName
FROM ASS_USE_MULTI_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON A.BRANCH_CREATE = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON A.DEPT_CREATE = D.DEP_ID
WHERE A.USER_MASTER_ID = @p_ID
END
ELSE IF(@SYS_PREFIX = 'PRITF')
BEGIN --ĐIỀU CHUYỂN NỘI BỘ
SELECT TOP 1 @CODE = A.TRANS_MULTI_MASTER_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName
FROM ASS_PRIVATE_TRANSFER_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON B.TLSUBBRID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON B.DEP_ID = D.DEP_ID
WHERE A.TRANS_MULTI_MASTER_ID = @p_ID
END
ELSE IF(@SYS_PREFIX = 'RPMT')
BEGIN -- SỬA CHỮA NHIỀU TÀI SẢN
SELECT TOP 1 @CODE = A.REPAIR_MUL_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName, @REQ_CODE = E.REQ_CODE
FROM ASS_REPAIR_MULTI_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON B.TLSUBBRID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON B.DEP_ID = D.DEP_ID
LEFT JOIN TR_REQUEST_SHOP_DOC E ON A.REQ_ID = E.REQ_ID
WHERE A.REPAIR_MUL_ID = @p_ID
END
ELSE IF(@SYS_PREFIX = 'ASSL')
BEGIN -- THANH LÝ TÀI SẢN
SELECT TOP 1 @CODE = A.LIQ_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName, @REQ_CODE = A.LIST_LIQ_REQUEST
FROM ASS_LIQUIDATION A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON B.TLSUBBRID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON B.DEP_ID = D.DEP_ID
WHERE A.LIQ_ID = @p_ID
END
ELSE IF(@SYS_PREFIX = 'TFS')
BEGIN -- ĐIỀU CHUYỂN TÀI SẢN
SELECT TOP 1 @CODE = A.TRANS_MULTI_MASTER_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName, @REQ_CODE = A.REQ_CODE
FROM ASS_TRANSFER_MULTI_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON B.TLSUBBRID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON B.DEP_ID = D.DEP_ID
LEFT JOIN TR_REQUEST_SHOP_DOC E ON A.REQ_ID = E.REQ_ID
WHERE A.TRANS_MULTI_MASTER_ID = @p_ID
END
ELSE IF(@SYS_PREFIX = 'ASSIM')
BEGIN -- KIỂM KÊ TÀI SẢN
SELECT TOP 1 @CODE = A.INVENT_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName
FROM ASS_INVENTORY_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON B.TLSUBBRID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON B.DEP_ID = D.DEP_ID
WHERE A.INVENT_ID = @p_ID
END
ELSE IF(@SYS_PREFIX = 'ASA')
BEGIN -- NHẬP MỚI TÀI SẢN
SELECT TOP 1 @CODE = A.ADDNEW_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName, @REQ_CODE = A.REQ_CODE
FROM ASS_ADDNEW A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON B.TLSUBBRID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON B.DEP_ID = D.DEP_ID
WHERE A.ADDNEW_ID = @p_ID
END
ELSE IF(@SYS_PREFIX = 'ASA')
BEGIN -- PHÂN BỔ CHI PHÍ TÀI SẢN
SELECT TOP 1 @CODE = A.COS_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName
FROM ASS_COST_ALLOCATION A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON B.TLSUBBRID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON B.DEP_ID = D.DEP_ID
WHERE A.COS_ID = @p_ID
END
ELSE IF(@SYS_PREFIX = 'ASSD')
BEGIN -- CẬP NHẬT THÔNG TIN TÀI SẢN
SELECT TOP 1 @CODE = A.UPDATE_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName
FROM ASS_UPDATE A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON B.TLSUBBRID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON B.DEP_ID = D.DEP_ID
WHERE A.UPDATE_ID = @p_ID
END
SELECT @TILTER_MAIL+N' Thông báo phiếu ' + @PAGE + N'( ' + @p_ID + N' ) được yêu cầu bởi ' + @BRANCH_USER_CREATE + @MESSAGE_TITLE_REJECT AS TITLE,
N''+
N'Dear All,
Thông tin phiếu ' + @PAGE + ': ' + @p_ID + ''+
N'
Số PYC: '+ ISNULL(@REQ_CODE,'') +
N'
Được yêu cầu bởi: '+ @BRANCH_USER_CREATE +
N'
Người tạo: ' + @CREATE_USERNAME +
N'
Tình trạng: ' + @MESSAGE_STATUS_REJECT +
N'
Xem chi tiết tại: ' + N'Hệ thống quản lý tài sản cố định'
+
@footer
AS MESSAGECONTENT
END
END
IF(@p_TYPE = 'ASS_REJECT_KT')
BEGIN
--cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý
SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from(
SELECT SUBSTRING(@p_ID, PATINDEX('%[a-z]%', @p_ID), LEN(@p_ID)) Val
)x)
SELECT @PAGE = sp.Description,
@URLPAGE=(CASE sp.Prefix
WHEN 'ASA' THEN 'ass-t-add-new-bvb-kt-edit;id='
WHEN 'SMAC' THEN 'ass-collect-multi-kt-master-edit;id='
WHEN 'ASSL' THEN 'ass-liq-bvb-kt-edit;id='
WHEN 'TFS' THEN 'ass-transfer-multi-kt-edit;id='
WHEN 'SMA' THEN 'ass-use-multi-bvb-kt-edit;id='END)
FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX
IF(@SYS_PREFIX = 'SMAC')
BEGIN -- THU HỒI
SELECT TOP 1 @CODE = A.COL_MULTI_MASTER_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName,@REQ_CODE = E.REQ_CODE
FROM ASS_COLLECT_MULTI_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON A.DEPT_CREATE = D.DEP_ID
LEFT JOIN TR_REQUEST_SHOP_DOC E ON A.REQ_ID = E.REQ_ID
WHERE A.COL_MULTI_MASTER_ID = @p_ID
END
ELSE IF(@SYS_PREFIX = 'SMA')
BEGIN -- XUẤT SD
SELECT @REQ_CODE = STUFF( (
SELECT ',' + B.REQ_CODE
FROM ASS_USE_MULTI_DT A
LEFT JOIN TR_REQUEST_SHOP_DOC B ON A.REQ_ID = B.REQ_ID
WHERE A.USER_MASTER_ID = @p_ID AND A.REQ_ID IS NOT NULL AND A.REQ_ID <> ''
GROUP BY B.REQ_CODE
ORDER BY B.REQ_CODE
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
SELECT TOP 1 @CODE = A.USER_MASTER_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName
FROM ASS_USE_MULTI_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON A.BRANCH_CREATE = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON A.DEPT_CREATE = D.DEP_ID
WHERE A.USER_MASTER_ID = @p_ID
END
ELSE IF(@SYS_PREFIX = 'ASSL')
BEGIN -- THANH LÝ TÀI SẢN
SELECT TOP 1 @CODE = A.LIQ_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName,@REQ_CODE = A.LIST_LIQ_REQUEST
FROM ASS_LIQUIDATION A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON B.TLSUBBRID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON B.DEP_ID = D.DEP_ID
WHERE A.LIQ_ID = @p_ID
END
ELSE IF(@SYS_PREFIX = 'TFS')
BEGIN -- ĐIỀU CHUYỂN TÀI SẢN
SELECT TOP 1 @CODE = A.TRANS_MULTI_MASTER_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName,@REQ_CODE = A.REQ_CODE
FROM ASS_TRANSFER_MULTI_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON B.TLSUBBRID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON B.DEP_ID = D.DEP_ID
WHERE A.TRANS_MULTI_MASTER_ID = @p_ID
END
ELSE IF(@SYS_PREFIX = 'ASA')
BEGIN -- NHẬP MỚI TÀI SẢN
SELECT TOP 1 @CODE = A.ADDNEW_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName,@REQ_CODE = A.REQ_CODE
FROM ASS_ADDNEW A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON B.TLSUBBRID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON B.DEP_ID = D.DEP_ID
WHERE A.ADDNEW_ID = @p_ID
END
SELECT @TILTER_MAIL+N' Thông báo phiếu ' + @PAGE + N'( ' + @p_ID + N' ) được yêu cầu bởi ' + @BRANCH_USER_CREATE + @MESSAGE_TITLE_REJECT AS TITLE,
N''+
N'Người tạo: ' + @CREATE_USERNAME +
N'Dear All,
Thông tin phiếu ' + @PAGE + ': ' + @p_ID + ''+
N'
Số PYC: '+ ISNULL(@REQ_CODE,'') +
N'
Được yêu cầu bởi: '+ @BRANCH_USER_CREATE +
N'
Người tạo: ' + @CREATE_USERNAME +
N'
Tình trạng: ' + @MESSAGE_STATUS_REJECT +
N'
Xem chi tiết tại: ' + N'Hệ thống quản lý tài sản cố định'
+
@footer
AS MESSAGECONTENT
END
--IF(@p_TYPE = 'ASS_REJECT_HC')
--BEGIN
--
-- --cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý
-- SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from(
-- SELECT SUBSTRING(@p_ID, PATINDEX('%[a-z]%', @p_ID), LEN(@p_ID)) Val
-- )x)
--
-- SELECT @PAGE = sp.Description,
-- @URLPAGE=(CASE sp.Prefix
-- WHEN 'ASA' THEN 'ass-t-add-new-bvb-view;id='
-- WHEN 'SMAC' THEN 'ass-collect-multi-hcqt-master-view;id='
-- WHEN 'ASSL' THEN 'ass-liq-bvb-hc-view;id='
-- WHEN 'TFS' THEN 'ass-transfer-multi-view;id='
-- WHEN 'SMA' THEN 'ass-use-multi-bvb-master-view;id='
-- WHEN 'ASSD' THEN 'ass-update-view;id='
-- WHEN 'ACAC' THEN 'ass-collect-cost-allocation-view;id='
-- END)
-- FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX
--
--SELECT @TILTER_MAIL+N'Thông báo '+LOWER(@PAGE)+N' bị từ chối' AS TITLE,
-- N'Dear All' +
-- N',
Bạn có giao dịch '+LOWER(@PAGE)+N' có ID: '+@p_ID+ N' bị từ chối.' +
-- N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
-- +
-- @footer
-- AS MESSAGECONTENT
--END
--IF(@p_TYPE = 'ASS_SEND_CONFIRM')
--BEGIN
-- --cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý
-- SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from(
-- SELECT SUBSTRING(@p_ID, PATINDEX('%[a-z]%', @p_ID), LEN(@p_ID)) Val
-- )x)
-- SELECT @PAGE = sp.Description,
-- @URLPAGE=(CASE sp.Prefix
-- WHEN 'SMAC' THEN 'ass-collect-multi-kt-master-view;id='
-- WHEN 'SMA' THEN 'ass-use-multi-bvb-kt-view;id='END)
-- FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX
--SELECT @TILTER_MAIL+N'Thông báo xác nhận '+LOWER(@PAGE)+N' cần phê duyệt' AS TITLE,
-- N'Dear All' +
-- N',
Bạn có giao dịch xác nhận'+LOWER(@PAGE)+N' có ID: '+@p_ID+ N' cần được kiểm soát viên phê duyệt.' +
-- N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
-- +
-- @footer
-- AS MESSAGECONTENT
--END
IF(@p_TYPE = 'ASS_APPROVED')
BEGIN
--cắt chuỗi lấy PREFIX để xác định Thêm mới, Xuất, Điều chuyển, Thu hồi, Thanh lý
SET @SYS_PREFIX =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from(
SELECT SUBSTRING(@p_ID, PATINDEX('%[a-z]%', @p_ID), LEN(@p_ID)) Val
)x)
SELECT @PAGE = sp.Description,
@URLPAGE=(CASE sp.Prefix
WHEN 'ASA' THEN 'ass-t-add-new-bvb-view;id='
WHEN 'SMAC' THEN 'ass-collect-multi-hcqt-master-view;id='
WHEN 'ASSL' THEN 'ass-liq-bvb-hc-view;id='
WHEN 'TFS' THEN 'ass-transfer-multi-view;id='
WHEN 'SMA' THEN 'ass-use-multi-bvb-master-view;id='
WHEN 'ASSD' THEN 'ass-update-view;id='
WHEN 'ACAC' THEN 'ass-collect-cost-allocation-view;id='
END)
FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX
IF(@SYS_PREFIX = 'ASA')
BEGIN --NHẬP MỚI
SELECT TOP 1 @CODE = A.ADDNEW_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName, @REQ_CODE = A.REQ_CODE
FROM ASS_ADDNEW A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON B.TLSUBBRID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON B.DEP_ID = D.DEP_ID
WHERE A.ADDNEW_ID = @p_ID
END
ELSE IF(@SYS_PREFIX = 'SMAC')
BEGIN -- THU HỒI
SELECT TOP 1 @CODE = A.COL_MULTI_MASTER_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName, @REQ_CODE = E.REQ_CODE
FROM ASS_COLLECT_MULTI_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON A.DEPT_CREATE = D.DEP_ID
LEFT JOIN TR_REQUEST_SHOP_DOC E ON A.REQ_ID = E.REQ_ID
WHERE A.COL_MULTI_MASTER_ID = @p_ID
END
ELSE IF(@SYS_PREFIX = 'ASSL')
BEGIN -- THANH LÝ
SELECT TOP 1 @CODE = A.LIQ_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName, @REQ_CODE = A.LIST_LIQ_REQUEST
FROM ASS_LIQUIDATION A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON B.TLSUBBRID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON B.DEP_ID = D.DEP_ID
WHERE A.LIQ_ID = @p_ID
END
ELSE IF(@SYS_PREFIX = 'SMA')
BEGIN -- XUẤT SD
SELECT @REQ_CODE = STUFF( (
SELECT ',' + B.REQ_CODE
FROM ASS_USE_MULTI_DT A
LEFT JOIN TR_REQUEST_SHOP_DOC B ON A.REQ_ID = B.REQ_ID
WHERE A.USER_MASTER_ID = @p_ID AND A.REQ_ID IS NOT NULL AND A.REQ_ID <> ''
GROUP BY B.REQ_CODE
ORDER BY B.REQ_CODE
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
SELECT TOP 1 @CODE = A.USER_MASTER_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName
FROM ASS_USE_MULTI_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON A.BRANCH_CREATE = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON A.DEPT_CREATE = D.DEP_ID
WHERE A.USER_MASTER_ID = @p_ID
END
ELSE IF(@SYS_PREFIX = 'TFS')
BEGIN -- ĐIỀU CHUYỂN
SELECT TOP 1 @CODE = A.TRANS_MULTI_MASTER_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName,@REQ_CODE = A.REQ_CODE
FROM ASS_TRANSFER_MULTI_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON A.DEPT_CREATE = D.DEP_ID
WHERE A.TRANS_MULTI_MASTER_ID = @p_ID
END
SELECT @TILTER_MAIL+N' Thông báo phiếu ' + @PAGE + N'( ' + @p_ID + N' ) được yêu cầu bởi ' + @BRANCH_USER_CREATE + @MESSAGE_TITLE_DONE AS TITLE,
N''+
N'Dear All,
Thông tin phiếu ' + @PAGE + ': ' + @p_ID + ''+
N'
Số PYC: '+ ISNULL(@REQ_CODE,'') +
N'
Được yêu cầu bởi: '+ @BRANCH_USER_CREATE +
N'
Người tạo: ' + @CREATE_USERNAME +
N'
Tình trạng: ' + @MESSAGE_STATUS_DONE +
N'
Xem chi tiết tại: ' + N'Hệ thống quản lý tài sản cố định'
+
@footer
AS MESSAGECONTENT
END
IF(@p_TYPE = 'ASS_TRANSFER_CONFIRM_HANDOVER')
BEGIN
SELECT @TILTER_MAIL+N'Thông báo xác nhận bàn giao tài sản điều chuyển cần được xác nhận' AS TITLE,
N'Dear All' +
N',
Bạn có giao dịch xác nhận bàn giao tài sản điều chuyển có ID: '+@p_ID+ N' cần được xác nhận.' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
+ @footer
AS MESSAGECONTENT
END
IF(@p_TYPE = 'ASS_TRANSFER_CONFIRM_RECEIVER')
BEGIN
SELECT @TILTER_MAIL+N'Thông báo xác nhận bàn nhận tài sản điều chuyển cần được xác nhận' AS TITLE,
N'Dear All' +
N',
Bạn có giao dịch xác nhận nhận tài sản điều chuyển có ID: '+@p_ID+ N' cần được xác nhận.' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
+ @footer
AS MESSAGECONTENT
END
-------PhongNT 9/2/2022:Xuất sử dụng tài sản -HCQT--------
--IF(@p_TYPE = 'ASS_USE_MULTI_BVB_MASTER')
--BEGIN
--SELECT @TILTER_MAIL+N'Thông báo xuất sử dụng tài sản cần phê duyệt' AS TITLE,
-- N'Dear All' +
-- N',
Bạn có giao dịch xuất sử dụng tài sản có ID: '+@p_ID+ N' cần được phê duyệt.' +
-- N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
-- +
-- @footer
-- AS MESSAGECONTENT
--END
-------Điều chuyển tài sản - HCQT--------
--IF(@p_TYPE = 'ASS_TRANSFER_MULTI_APP')
--BEGIN
--SELECT @TILTER_MAIL+N'Thông báo điều chuyển tài sản cần phê duyệt' AS TITLE,
-- N'Dear All' +
-- N',
Bạn có giao dịch điều chuyển tài sản có ID: '+@p_ID+ N' cần được phê duyệt.' +
-- N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
-- +
-- @footer
-- AS MESSAGECONTENT
--END
-------Thu hồi tài sản - HCQT--------
--IF(@p_TYPE = 'ASS_COLLECT_MULTI_HCQT_APP')
--BEGIN
--SELECT @TILTER_MAIL+N'Thông báo thu hồi tài sản cần phê duyệt' AS TITLE,
-- N'Dear All' +
-- N',
Bạn có giao dịch thu hồi tài sản có ID: '+@p_ID+ N' cần được phê duyệt.' +
-- N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
-- +
-- @footer
-- AS MESSAGECONTENT
--END
-------Thu hồi tài sản - HCQT--------
--IF(@p_TYPE = 'ASS_COLLECT_MULTI_HCQT_APP')
--BEGIN
--SELECT @TILTER_MAIL+N'Thông báo thu hồi tài sản cần phê duyệt' AS TITLE,
-- N'Dear All' +
-- N',
Bạn có giao dịch thu hồi tài sản có ID: '+@p_ID+ N' cần được phê duyệt.' +
-- N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
-- +
-- @footer
-- AS MESSAGECONTENT
--END
-------Thanh lý tài sản - HC--------
--IF(@p_TYPE = 'ASS_LIQ_BVB_HC_APP')
--BEGIN
--SELECT @TILTER_MAIL+N'Thông báo thanh lý tài sản cần phê duyệt' AS TITLE,
-- N'Dear All' +
-- N',
Bạn có giao dịch thanh lý tài sản có ID: '+@p_ID+ N' cần được phê duyệt.' +
-- N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
-- +
-- @footer
-- AS MESSAGECONTENT
--END
------------------BAODNQ 15/2/2022: Quản lý BDS---------------------
-----Quản lý BDS - gửi YC phê duyệt--------
IF(@p_TYPE = 'RET_MASTER_SEND_APPROVE')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo thông tin bất động sản cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin bất động sản : ' + @p_ID + N' đang chờ bạn phê duyệt.' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
-----Quản lý BDS - cấp phê duyệt trung gian đã xác nhận--------
IF(@p_TYPE = 'RET_MASTER_CONFIRM')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo thông tin bất động sản cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin bất động sản : ' + @p_ID + N' đã được xác nhận và đang chờ bạn phê duyệt.' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
-----Quản lý BDS - trưởng đơn vị đã duyệt, trả mail về cho ng tạo--------
IF(@p_TYPE = 'RET_MASTER_APPROVED')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo thông tin bất động sản đã được duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin bất động sản : ' + @p_ID + N' đã được phê duyệt.' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
+
@footer
AS MESSAGECONTENT
END
-----Thông tin sửa chữa BDS - gửi YC phê duyệt--------
IF(@p_TYPE = 'RET_REPAIR_SEND_APPROVE')
BEGIN
SET @CODE = (SELECT RET_ID FROM RET_REPAIR WHERE RP_ID = @p_ID)
SELECT @TILTER_MAIL+N' Thông báo thông tin sửa chữa BDS cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin sửa chữa BDS : ' + @CODE + N' đang chờ bạn phê duyệt.' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
-----Thông tin sửa chữa BDS - cấp phê duyệt trung gian đã xác nhận--------
IF(@p_TYPE = 'RET_REPAIR_CONFIRM')
BEGIN
SET @CODE = (SELECT RET_ID FROM RET_REPAIR WHERE RP_ID = @p_ID)
SELECT @TILTER_MAIL+N' Thông báo thông tin sửa chữa BDS cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin sửa chữa BDS : ' + @CODE + N' đã được xác nhận và đang chờ bạn phê duyệt.' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
-----Thông tin sửa chữa BDS - trưởng đơn vị đã duyệt, trả mail về cho ng tạo--------
IF(@p_TYPE = 'RET_REPAIR_APPROVED')
BEGIN
SET @CODE = (SELECT RET_ID FROM RET_REPAIR WHERE RP_ID = @p_ID)
SELECT @TILTER_MAIL+N' Thông báo thông tin sửa chữa BDS đã được phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin sửa chữa BDS : ' + @CODE + N' đã được phê duyệt.' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
+
@footer
AS MESSAGECONTENT
END
-----BDS thuê làm trụ sở CN/PGD - gửi YC phê duyệt--------
IF(@p_TYPE = 'REAL_ESTATE_R_H_SEND_APPROVE')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo BDS thuê làm trụ sở CN/PGD cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin BDS thuê làm trụ sở CN/PGD số: ' + @p_ID + N' đang chờ bạn phê duyệt.' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
-----BDS thuê làm trụ sở CN/PGD - cấp phê duyệt trung gian đã xác nhận--------
IF(@p_TYPE = 'REAL_ESTATE_R_H_CONFIRM')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo BDS thuê làm trụ sở CN/PGD cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin BDS thuê làm trụ sở CN/PGD số: ' + @p_ID + N' đã được xác nhận và đang chờ bạn phê duyệt.' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
-----BDS thuê làm trụ sở CN/PGD - trưởng đơn vị đã duyệt, trả mail về cho ng tạo--------
IF(@p_TYPE = 'REAL_ESTATE_R_H_APPROVED')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo BDS thuê làm trụ sở CN/PGD đã được phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin BDS thuê làm trụ sở CN/PGD số: ' + @p_ID + N' đã được phê duyệt.' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
+
@footer
AS MESSAGECONTENT
END
-----BDS đang hoàn thiện thủ tục pháp lý - gửi YC phê duyệt--------
IF(@p_TYPE = 'REAL_ESTATE_L_C_SEND_APPROVE')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo BDS đang hoàn thiện pháp lý cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin BDS đang hoàn thiện thủ tục pháp lý số: ' + @p_ID + N' đang chờ bạn phê duyệt.' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
-----BDS đang hoàn thiện thủ tục pháp lý - cấp phê duyệt trung gian đã xác nhận--------
IF(@p_TYPE = 'REAL_ESTATE_L_C_CONFIRM')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo BDS đang hoàn thiện pháp lý cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin BDS đang hoàn thiện thủ tục pháp lý số: ' + @p_ID + N' đã được xác nhận và đang chờ bạn phê duyệt.' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
-----BDS đang hoàn thiện thủ tục pháp lý - trưởng đơn vị đã duyệt, trả mail về cho ng tạo--------
IF(@p_TYPE = 'REAL_ESTATE_L_C_APPROVED')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo BDS đang hoàn thiện pháp lý đã được duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin BDS đang hoàn thiện thủ tục pháp lý số: ' + @p_ID + N' đã được phê duyệt.' +
--+
--N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
+
@footer
AS MESSAGECONTENT
END
-----Phiếu yêu cầu công tác - gửi YC phê duyệt--------
IF(@p_TYPE = 'TR_REQUEST_JOB_FORM_SEND_APPROVE')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu công tác cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin phiếu yêu công tác cầu số: ' + @p_ID + N' đang chờ bạn phê duyệt.' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
-----Phiếu yêu cầu công tác - cấp phê duyệt trung gian đã xác nhận--------
IF(@p_TYPE = 'TR_REQUEST_JOB_FORM_CONFIRM')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu công tác cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin phiếu yêu cầu số: ' + @p_ID + N' đã được xác nhận và đang chờ bạn phê duyệt.' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
IF(@p_TYPE = 'TR_REQUEST_JOB_FORM_SEND_MAKER')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu công tác bị từ chối' AS TITLE,
N'Dear All' +
N',
Thông tin phiếu yêu cầu số: ' + @p_ID + N' đã trưởng đơn vị từ chối.' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
+
@footer
AS MESSAGECONTENT
END
-----Phiếu yêu cầu công tác - trưởng đơn vị đã duyệt, trả mail về cho ng tạo--------
IF(@p_TYPE = 'TR_REQUEST_JOB_FORM_APPROVED')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu công tác đã được phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin phiếu yêu cầu số: ' + @p_ID + N' đã được phê duyệt.' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
+
@footer
AS MESSAGECONTENT
END
-----Phiếu yêu cầu xe - gửi YC phê duyệt--------
IF(@p_TYPE = 'TR_REQUEST_CAR_SEND_APPROVE')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu xe cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin phiếu yêu cầu số: ' + @p_ID + N' đang chờ bạn phê duyệt.' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
IF(@p_TYPE = 'TR_REQUEST_CAR_CONFIRM')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu xe cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin phiếu yêu cầu số: ' + @p_ID + N' đã được xác nhận và đang chờ bạn phê duyệt.' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
-----Phiếu yêu cầu công tác - trưởng đơn vị đã duyệt, trả mail về cho ng tạo--------
IF(@p_TYPE = 'TR_REQUEST_CAR_APPROVED')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu xe đã được phê duyệt' AS TITLE,
N'Dear All' +
N',
Thông tin phiếu yêu cầu số: ' + @p_ID + N' đã được phê duyệt.' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
+
@footer
AS MESSAGECONTENT
END
IF(@p_TYPE = 'TR_REQUEST_CAR_COST_SEND_CONFIRM')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu xe cần xác nhận chi phí' AS TITLE,
N'Dear All' +
N',
Chi phí phiếu yêu cầu số: ' + @p_ID + N' đang chờ bạn xác nhận.' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
-----Phiếu yêu cầu công tác - trưởng đơn vị đã duyệt, gửi mail TĐV--------
IF(@p_TYPE = 'TR_REQUEST_CAR_COST_CONFIRM')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu xe cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Chi phí phiếu yêu cầu số: ' + @p_ID + N' đã được người tạo xác nhận và đang chờ bạn phê duyệt.' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
IF(@p_TYPE = 'TR_REQUEST_CAR_COST_App')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu xe cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Chi phí phiếu yêu cầu số: ' + @p_ID + N' đã được trưởng phòng xác nhận và đang chờ bạn phê duyệt.' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
IF(@p_TYPE = 'TR_REQUEST_CAR_COST_CV_App')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu xe cần phê duyệt' AS TITLE,
N'Dear All' +
N',
Chi phí phiếu yêu cầu số: ' + @p_ID + N' đã được chuyên viên điều động xe xác nhận và đang chờ bạn phê duyệt.' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt yêu cầu.'
+
@footer
AS MESSAGECONTENT
END
IF(@p_TYPE = 'TR_REQUEST_CAR_REJECT_TDV')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu xe bị trả về' AS TITLE,
N'Dear All' +
N',
Thông tin phiếu yêu cầu số: ' + @p_ID + N' đã bị trưởng đơn vị trả về!' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
+
@footer
AS MESSAGECONTENT
END
IF(@p_TYPE = 'TR_REQUEST_CAR_REJECT_CV')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu xe bị trả về' AS TITLE,
N'Dear All' +
N',
Thông tin phiếu yêu cầu số: ' + @p_ID + N' đã bị chuyên viên điều động xe trả về!' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
+
@footer
AS MESSAGECONTENT
END
IF(@p_TYPE = 'TR_REQUEST_CAR_CANCEL')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu xe bị huỷ' AS TITLE,
N'Dear All' +
N',
Thông tin phiếu yêu cầu số: ' + @p_ID + N' đã bị chuyên viên điều động xe huỷ!' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết.'
+
@footer
AS MESSAGECONTENT
END
IF(@p_TYPE = 'TR_REQUEST_CAR_COST_SEND_MAKER')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu xe cần xác nhận thông tin' AS TITLE,
N'Dear All' +
N',
Thông tin chuyến đi và chuyến về phiếu yêu cầu số: ' + @p_ID + N' đã được chuyên viên điều động xe thay đổi đang chờ bạn xác nhận.' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và xác nhận.'
+
@footer
AS MESSAGECONTENT
END
IF(@p_TYPE = 'TR_REQUEST_CAR_INFO_SEND_MAKER')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu xe cần xác nhận thông tin' AS TITLE,
N'Dear All' +
N',
Thông tin chuyến đi phiếu yêu cầu số: ' + @p_ID + N' đã được chuyên viên điều động xe thay đổi đang chờ bạn xác nhận.' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và xác nhận.'
+
@footer
AS MESSAGECONTENT
END
IF(@p_TYPE = 'TR_REQUEST_CAR_INFO_SEND_USERUPD')
BEGIN
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu xe cần cập nhật thông tin' AS TITLE,
N'Dear All' +
N',
Phiếu yêu cầu số: ' + @p_ID + N' đang chờ bạn cập nhật thông tin chuyến đi.' +
N'
Anh/Chị vui lòng nhấn vào đây để cập nhật chuyến đi.'
+
@footer
AS MESSAGECONTENT
END
---DUYHD--
---Phiếu đề nghị thanh toán-KT - gửi mail cho người tạo-----
DECLARE @p_CODE VARCHAR(25)
IF(@p_TYPE = 'REQ_PAYMENT_KT_SEND_MAKER')
BEGIN
SELECT @p_CODE = REQ_PAY_CODE from TR_REQ_PAYMENT WHERE REQ_PAY_ID = @p_ID
SELECT @TILTER_MAIL+N' Thông báo phiếu đề nghị thanh toán - KT' AS TITLE,
N'Dear All' +
N',
Thông tin phiếu đề nghị thanh toán - KT số: ' + @p_ID + N' đã được duyệt.' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và xác nhận.'
+
@footer
AS MESSAGECONTENT
END
---Phiếu đề nghị tạm ứng-KT - gửi mail cho người tạo-----
IF(@p_TYPE = 'REQ_ADVANCE_PAYMENT_KT_SEND_MAKER')
BEGIN
SELECT @p_CODE = REQ_PAY_CODE from TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_ID
SELECT @TILTER_MAIL+N' Thông báo phiếu đề nghị tạm ứng - KT' AS TITLE,
N'Dear All' +
N',
Thông tin phiếu đề nghị tạm ứng - KT số: ' + @p_CODE + N' đã được duyệt.' +
N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và xác nhận.'
+
@footer
AS MESSAGECONTENT
END
---Phiếu đề nghị tạm ứng- KT - gửi mail cho tổng giám đốc-----
--IF(@p_TYPE = 'REQ_ADVANCE_PAYMENT_KT_SEND_TGD')
--BEGIN
--SELECT @p_CODE = REQ_PAY_CODE from TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID = @p_ID
--SELECT @TILTER_MAIL+N' Thông báo phiếu đề nghị tạm ứng - KT' AS TITLE,
-- N'Dear All' +
-- N',
Thông tin phiếu đề nghị tạm ứng - KT số: ' + @p_CODE + N' đã được duyệt.' +
-- N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và xác nhận.'
-- +
-- @footer
-- AS MESSAGECONTENT
--END
IF @p_TYPE = 'ASS_USE_MULTI_BVB_MASTER_APPR'
BEGIN
SET @CODE = (SELECT USER_MASTER_ID FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID = @p_ID)
SELECT @TILTER_MAIL+N' Thông báo chờ xác nhận phiếu xuất sử dụng tài sản' AS TITLE,
N'Dear All' +
N',
Phiếu xuất sử dụng số : ' + @CODE + N' đang chờ xác nhận.'
+ N'
Anh/Chị vui lòng nhấn vào đây để xem chi tiết và phê duyệt phiếu xuất sử dụng tài sản.'
+ @footer
AS MESSAGECONTENT
RETURN 0
END
-----Phiếu yêu cầu điều chuyển, sửa chữa, thu hồi, cấp phát
IF(@p_TYPE = 'PYC_VB_CONFIRM_APPROVE')
BEGIN
SELECT TOP 1 @REQ_TYPE = REQ_TYPE, @REQ_CODE = REQ_CODE, @PROCESS_TYPE = B.PROCESS_TYPE, @PROCESS_ID = B.PROCESS_ID
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN PL_REQUEST_PROCESS B ON A.REQ_ID = B.REQ_ID
WHERE A.REQ_ID = @p_ID AND B.STATUS = 'C'
SELECT TOP 1 @CREATE_USERNAME = B.TLFullName , @REQ_STATUS = CA.CONTENT, @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME)
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON B.TLSUBBRID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON B.DEP_ID = D.DEP_ID
LEFT JOIN CM_ALLCODE CA ON A.STATUS = CA.CDVAL AND CA.CDNAME = 'TRREQSTATUS' AND CA.CDTYPE = 'STATUS'
WHERE A.REQ_ID = @p_ID
SET @REQ_TYPE_NAME = (SELECT CONTENT FROM CM_ALLCODE WHERE CDNAME = 'TRREQASSTYPE' AND CDTYPE = 'TRREQASSTYPE' AND CDVAL = @REQ_TYPE)
SET @REQ_TYPE_NAME_TITLE = @REQ_TYPE_NAME + N' ( ' + @REQ_CODE + N' ) được yêu cầu bởi ' + @BRANCH_USER_CREATE
DECLARE @MESSAGE_PYC NVARCHAR(100) = N'phê duyệt.'
IF(@PROCESS_ID = 'CANCEL')
BEGIN --PHIẾU BỊ HUỶ -> GỬI MAIL NGƯỜI TẠO
SET @URL = @URL + 'trade-request-doc-edit;id=' + @p_ID + ';type=' + @REQ_TYPE
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu ' + @REQ_TYPE_NAME_TITLE + @MESSAGE_TITLE_CANCEL AS TITLE,
N''+
N'Dear All,
Thông tin phiếu yêu cầu ' + @REQ_TYPE_NAME + ': ' + @REQ_CODE + ''+
N'
Được yêu cầu bởi: '+ @BRANCH_USER_CREATE +
N'
Người tạo PYC: ' + @CREATE_USERNAME +
N'
Tình trạng: ' + @REQ_STATUS+
N'
Xem chi tiết tại: ' + N'Hệ thống quản lý tài sản cố định'
+
@footer
AS MESSAGECONTENT
END
ELSE IF(@PROCESS_ID = 'REJECT')
BEGIN --PHIẾU BỊ TRẢ VỀ -> GỬI MAIL NGƯỜI TẠO
SET @URL = @URL + 'trade-request-doc-edit;id=' + @p_ID + ';type=' + @REQ_TYPE
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu ' + @REQ_TYPE_NAME_TITLE + @MESSAGE_TITLE_REJECT AS TITLE,
N''+
N'Dear All,
Thông tin phiếu yêu cầu ' + @REQ_TYPE_NAME + ': ' + @REQ_CODE + ''+
N'
Được yêu cầu bởi: '+ @BRANCH_USER_CREATE +
N'
Người tạo PYC: ' + @CREATE_USERNAME +
N'
Tình trạng: ' + @REQ_STATUS+
N'
Xem chi tiết tại: ' + N'Hệ thống quản lý tài sản cố định'
+
@footer
AS MESSAGECONTENT
END
ELSE IF(@PROCESS_ID = 'APPROVE')
BEGIN --PHIẾU DUYỆT HOÀN TẤT. GỬI MAIL BỘ PHẬN QLTS
SET @URL = @URL + 'trade-request-doc-view;id=' + @p_ID + ';type=' + @REQ_TYPE
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu ' + @REQ_TYPE_NAME_TITLE + N' đã được phê duyệt.' AS TITLE,
N''+
N'Dear All,
Thông tin phiếu yêu cầu ' + @REQ_TYPE_NAME + ': ' + @REQ_CODE + ''+
N'
Được yêu cầu bởi: '+ @BRANCH_USER_CREATE +
N'
Người tạo PYC: ' + @CREATE_USERNAME +
N'
Tình trạng: ' + @REQ_STATUS+
N'
Xem chi tiết tại: ' + N'Hệ thống quản lý tài sản cố định'
+
@footer
AS MESSAGECONTENT
END
ELSE
BEGIN --PHIẾU ĐANG XỬ LÝ -> GỬI TDV, DVCM, GDDV DVCM, TBP, TDV QLTS, TTDVNB
IF(@PROCESS_TYPE = 'UPDATE')
BEGIN
SET @PAGE_STATE = 'edit'
SET @MESSAGE_PYC = N'tham vấn ý kiến.'
END
ELSE
BEGIN
SET @PAGE_STATE = 'view'
END
SET @URL = @URL + 'trade-request-doc-' + @PAGE_STATE + ';id=' + @p_ID + ';type=' + @REQ_TYPE
SELECT @TILTER_MAIL+N' Thông báo phiếu yêu cầu ' + @REQ_TYPE_NAME_TITLE AS TITLE,
N''+
N'Dear All,
Thông tin phiếu yêu cầu ' + @REQ_TYPE_NAME + ': ' + @REQ_CODE + ''+
N'
Được yêu cầu bởi: '+ @BRANCH_USER_CREATE +
N'
Người tạo PYC: ' + @CREATE_USERNAME +
N'
Tình trạng: ' + @REQ_STATUS+
N'
Xem chi tiết tại: ' + N'Hệ thống quản lý tài sản cố định'
+
@footer
AS MESSAGECONTENT
END
END
--ĐIỀU CHUYỂN TÀI SẢN NỘI BỘ
IF(@p_TYPE = 'ASS_PRIVATE_TRANSFER_MASTER_SendAppr')
BEGIN
SELECT TOP 1 @CODE = A.TRANS_MULTI_MASTER_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName
FROM ASS_PRIVATE_TRANSFER_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON A.DEPT_CREATE = D.DEP_ID
WHERE A.TRANS_MULTI_MASTER_ID = @p_ID
SELECT @TILTER_MAIL+N' Thông báo phiếu điều chuyển tài sản nội bộ ( ' + @CODE + N' ) được yêu cầu bởi ' + @BRANCH_USER_CREATE + @MESSAGE_TITLE_TDV AS TITLE,
N''+
N'Dear All,
Thông tin phiếu điều chuyển tài sản nội bộ ' + ': ' + @CODE + ''+
N'
Được yêu cầu bởi: '+ @BRANCH_USER_CREATE +
N'
Người tạo: ' + @CREATE_USERNAME +
N'
Tình trạng: ' + @MESSAGE_STATUS_TDV+
N'
Xem chi tiết tại: ' + N'Hệ thống quản lý tài sản cố định'
+
@footer
AS MESSAGECONTENT
RETURN 0
END
--ĐIỀU CHUYỂN TÀI SẢN NỘI BỘ - TDV DUYỆT HOÀN TẤT => GỬI CHO NGƯỜI TẠO
IF(@p_TYPE = 'ASS_PRIVATE_TRANSFER_MASTER_App_SEND_USERCREATE')
BEGIN
SELECT TOP 1 @CODE = A.TRANS_MULTI_MASTER_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName
FROM ASS_PRIVATE_TRANSFER_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON A.DEPT_CREATE = D.DEP_ID
WHERE A.TRANS_MULTI_MASTER_ID = @p_ID
SELECT @TILTER_MAIL+N' Thông báo phiếu điều chuyển tài sản nội bộ ( ' + @CODE + N' ) được yêu cầu bởi ' + @BRANCH_USER_CREATE + @MESSAGE_TITLE_DONE AS TITLE,
N''+
N'Dear All,
Thông tin phiếu điều chuyển tài sản nội bộ ' + ': ' + @CODE + ''+
N'
Được yêu cầu bởi: '+ @BRANCH_USER_CREATE +
N'
Người tạo: ' + @CREATE_USERNAME +
N'
Tình trạng: ' + @MESSAGE_STATUS_DONE+
N'
Xem chi tiết tại: ' + N'Hệ thống quản lý tài sản cố định'
+
@footer
AS MESSAGECONTENT
RETURN 0
END
--SỬA CHỮA NHIỀU TÀI SẢN
IF(@p_TYPE = 'ASS_REPAIR_MULTI_MASTER_SendAppr')
BEGIN
SELECT TOP 1 @CODE = A.REPAIR_MUL_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName, @REQ_CODE = E.REQ_CODE
FROM ASS_REPAIR_MULTI_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON B.TLSUBBRID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON B.DEP_ID = D.DEP_ID
LEFT JOIN TR_REQUEST_SHOP_DOC E ON A.REQ_ID = E.REQ_ID
WHERE A.REPAIR_MUL_ID = @p_ID
SELECT @TILTER_MAIL+N' Thông báo phiếu sửa chữa nhiều tài sản ( ' + @CODE + N' ) được yêu cầu bởi ' + @BRANCH_USER_CREATE + @MESSAGE_TITLE_TDV AS TITLE,
N''+
N'Dear All,
Thông tin phiếu sửa chữa nhiều tài sản ' + ': ' + @CODE + ''+
N'
Số PYC: '+ ISNULL(@REQ_CODE,'') +
N'
Được yêu cầu bởi: '+ @BRANCH_USER_CREATE +
N'
Người tạo: ' + @CREATE_USERNAME +
N'
Tình trạng: ' + @MESSAGE_STATUS_TDV+
N'
Xem chi tiết tại: ' + N'Hệ thống quản lý tài sản cố định'
+
@footer
AS MESSAGECONTENT
RETURN 0
END
--SỬA CHỮA NHIỀU TÀI SẢN - TDV DUYỆT HOÀN TẤT PHIẾU => GỬI CHO NGƯỜI TẠO
IF(@p_TYPE = 'ASS_REPAIR_MULTI_MASTER_App_SEND_USERCREATE')
BEGIN
SELECT TOP 1 @CODE = A.REPAIR_MUL_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName, @REQ_CODE = E.REQ_CODE
FROM ASS_REPAIR_MULTI_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON B.TLSUBBRID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON B.DEP_ID = D.DEP_ID
LEFT JOIN TR_REQUEST_SHOP_DOC E ON A.REQ_ID = E.REQ_ID
WHERE A.REPAIR_MUL_ID = @p_ID
SELECT @TILTER_MAIL+N' Thông báo phiếu sửa chữa nhiều tài sản ( ' + @CODE + N' ) được yêu cầu bởi ' + @BRANCH_USER_CREATE + @MESSAGE_TITLE_DONE AS TITLE,
N''+
N'Dear All,
Thông tin phiếu sửa chữa nhiều tài sản ' + ': ' + @CODE + ''+
N'
Số PYC: '+ ISNULL(@REQ_CODE,'') +
N'
Được yêu cầu bởi: '+ @BRANCH_USER_CREATE +
N'
Người tạo: ' + @CREATE_USERNAME +
N'
Tình trạng: ' + @MESSAGE_STATUS_DONE+
N'
Xem chi tiết tại: ' + N'Hệ thống quản lý tài sản cố định'
+
@footer
AS MESSAGECONTENT
RETURN 0
END
--THU HỒI TÀI SẢN - QLTS (GỬI MAIL CHO GDDV_QLTS DUYỆT)
IF(@p_TYPE = 'ASS_COLLECT_MULTI_MASTER_SendAppr')
BEGIN
SELECT TOP 1 @CODE = A.COL_MULTI_MASTER_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName, @REQ_CODE = E.REQ_CODE
FROM ASS_COLLECT_MULTI_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON A.DEPT_CREATE = D.DEP_ID
LEFT JOIN TR_REQUEST_SHOP_DOC E ON A.REQ_ID = E.REQ_ID
WHERE A.COL_MULTI_MASTER_ID = @p_ID
SELECT @TILTER_MAIL+N' Thông báo phiếu thu hồi tài sản ( ' + @CODE + N' ) được yêu cầu bởi ' + @BRANCH_USER_CREATE + @MESSAGE_TITLE_TDV AS TITLE,
N''+
N'Dear All,
Thông tin phiếu thu hồi tài sản ' + ': ' + @CODE + ''+
N'
Số PYC: '+ ISNULL(@REQ_CODE,'') +
N'
Được yêu cầu bởi: '+ @BRANCH_USER_CREATE +
N'
Người tạo: ' + @CREATE_USERNAME +
N'
Tình trạng: ' + @MESSAGE_STATUS_TDV+
N'
Xem chi tiết tại: ' + N'Hệ thống quản lý tài sản cố định'
+
@footer
AS MESSAGECONTENT
RETURN 0
END
--THU HỒI TÀI SẢN - XÁC NHẬN BÀN GIAO TÀI SẢN THU HỒI (GỬI MAIL CHO GDDV_QLTS CỦA TÀI SẢN CẦN THU HỒI)
IF(@p_TYPE = 'ASS_COLLECT_MULTI_MASTER_App')
BEGIN
SELECT TOP 1 @CODE = A.COL_MULTI_MASTER_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName, @REQ_CODE = E.REQ_CODE
FROM ASS_COLLECT_MULTI_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON A.DEPT_CREATE = D.DEP_ID
LEFT JOIN TR_REQUEST_SHOP_DOC E ON A.REQ_ID = E.REQ_ID
WHERE A.COL_MULTI_MASTER_ID = @p_ID
SELECT @TILTER_MAIL+N' Thông báo phiếu thu hồi tài sản ( ' + @CODE + N' ) được yêu cầu bởi ' + @BRANCH_USER_CREATE + @MESSAGE_TITLE_TDV_CONFIRM AS TITLE,
N''+
N'Dear All,
Thông tin phiếu thu hồi tài sản ' + ': ' + @CODE + ''+
N'
Số PYC: '+ ISNULL(@REQ_CODE,'') +
N'
Được yêu cầu bởi: '+ @BRANCH_USER_CREATE +
N'
Người tạo: ' + @CREATE_USERNAME +
N'
Tình trạng: ' + @MESSAGE_STATUS_TDV_CONFIRM+
N'
Xem chi tiết tại: ' + N'Hệ thống quản lý tài sản cố định'
+
@footer
AS MESSAGECONTENT
RETURN 0
END
--THU HỒI TÀI SẢN - KẾ TOÁN NHẬP (CẬP NHẬT HẠCH TOÁN)
IF(@p_TYPE = 'ASS_COLLECT_CONFIRM_MASTER_Ins')
BEGIN
SELECT TOP 1 @CODE = A.COL_MULTI_MASTER_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName, @REQ_CODE = E.REQ_CODE
FROM ASS_COLLECT_MULTI_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON A.DEPT_CREATE = D.DEP_ID
LEFT JOIN TR_REQUEST_SHOP_DOC E ON A.REQ_ID = E.REQ_ID
WHERE A.COL_MULTI_MASTER_ID = @p_ID
SELECT @TILTER_MAIL+N' Thông báo phiếu thu hồi tài sản ( ' + @CODE + N' ) được yêu cầu bởi ' + @BRANCH_USER_CREATE + @MESSAGE_TITLE_GDV AS TITLE,
N''+
N'Dear All,
Thông tin phiếu thu hồi tài sản ' + ': ' + @CODE + ''+
N'
Số PYC: '+ ISNULL(@REQ_CODE,'') +
N'
Được yêu cầu bởi: '+ @BRANCH_USER_CREATE +
N'
Người tạo: ' + @CREATE_USERNAME +
N'
Tình trạng: ' + @MESSAGE_STATUS_GDV +
N'
Xem chi tiết tại: ' + N'Hệ thống quản lý tài sản cố định'
+
@footer
AS MESSAGECONTENT
RETURN 0
END
--THU HỒI TÀI SẢN - TDV XÁC NHẬN => GỬI MAIL NGƯỜI TẠO
--IF(@p_TYPE = 'ASS_COLLECT_CONFIRM_MASTER_Ins_SEND_USERCREATE')
--BEGIN
-- SELECT TOP 1 @CODE = A.COL_MULTI_MASTER_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName
-- FROM ASS_COLLECT_MULTI_MASTER A
-- LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
-- LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
-- LEFT JOIN CM_DEPARTMENT D ON A.DEPT_CREATE = D.DEP_ID
-- WHERE A.COL_MULTI_MASTER_ID = @p_ID
--
-- SELECT @TILTER_MAIL+N' Thông báo phiếu thu hồi tài sản ( ' + @CODE + N' ) được yêu cầu bởi ' + @BRANCH_USER_CREATE + @MESSAGE_TITLE_CONFIRM_DONE AS TITLE,
-- N''+
-- N'Dear All,
Thông tin phiếu thu hồi tài sản ' + ': ' + @CODE + ''+
-- N'
Được yêu cầu bởi: '+ @BRANCH_USER_CREATE +
-- N'
Người tạo: ' + @CREATE_USERNAME +
-- N'
Tình trạng: ' + @MESSAGE_STATUS_DONE +
-- N'
Xem chi tiết tại: ' + N'Hệ thống quản lý tài sản cố định'
-- +
-- @footer
-- AS MESSAGECONTENT
-- RETURN 0
--END
--THU HỒI TÀI SẢN - KT(DUYỆT) (GDV GỬI KSV PHÊ DUYỆT)
IF(@p_TYPE = 'ASS_COLLECT_MULTI_KT_SendAppr_KT')
BEGIN
SELECT TOP 1 @CODE = A.COL_MULTI_MASTER_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName, @REQ_CODE = E.REQ_CODE
FROM ASS_COLLECT_MULTI_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON A.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON A.DEPT_CREATE = D.DEP_ID
LEFT JOIN TR_REQUEST_SHOP_DOC E ON A.REQ_ID = E.REQ_ID
WHERE A.COL_MULTI_MASTER_ID = @p_ID
SELECT @TILTER_MAIL+N' Thông báo phiếu thu hồi tài sản ( ' + @CODE + N' ) được yêu cầu bởi ' + @BRANCH_USER_CREATE + @MESSAGE_TITLE_KSV TITLE,
N''+
N'Dear All,
Thông tin phiếu thu hồi tài sản ' + ': ' + @CODE + ''+
N'
Số PYC: '+ ISNULL(@REQ_CODE,'') +
N'
Được yêu cầu bởi: '+ @BRANCH_USER_CREATE +
N'
Người tạo: ' + @CREATE_USERNAME +
N'
Tình trạng: ' + @MESSAGE_STATUS_KSV +
N'
Xem chi tiết tại: ' + N'Hệ thống quản lý tài sản cố định'
+
@footer
AS MESSAGECONTENT
RETURN 0
END
--XUẤT SỬ DỤNG TÀI SẢN - QLTS (QLTS GỬI GDDV_QLTS PHÊ DUYỆT)
IF(@p_TYPE = 'ASS_USE_MUILTI_MASTER_SendAppr')
BEGIN
SELECT @REQ_CODE = STUFF( (
SELECT ',' + B.REQ_CODE
FROM ASS_USE_MULTI_DT A
LEFT JOIN TR_REQUEST_SHOP_DOC B ON A.REQ_ID = B.REQ_ID
WHERE A.USER_MASTER_ID = @p_ID AND A.REQ_ID IS NOT NULL AND A.REQ_ID <> ''
GROUP BY B.REQ_CODE
ORDER BY B.REQ_CODE
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
SELECT TOP 1 @CODE = A.USER_MASTER_ID , @BRANCH_USER_CREATE = ISNULL(D.DEP_NAME,C.BRANCH_NAME), @CREATE_USERNAME = B.TLFullName
FROM ASS_USE_MULTI_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_BRANCH C ON A.BRANCH_CREATE = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON A.DEPT_CREATE = D.DEP_ID
WHERE A.USER_MASTER_ID = @p_ID
SELECT @TILTER_MAIL+N' Thông báo phiếu xuất sử dụng tài sản ( ' + @CODE + N' ) được yêu cầu bởi ' + @BRANCH_USER_CREATE + @MESSAGE_TITLE_TDV TITLE,
N'