/*
Run this script on:
118.69.72.241,5036.gAMSPro_VIETBANK_UAT_CUS - This database will be modified
to synchronize it with:
118.69.72.241,5036.gAMSPro_VIETBANK_DEV
You are recommended to back up your database before running this script
Script created by SQL Compare version 13.1.6.5463 from Red Gate Software Ltd at 4/18/2023 2:14:51 PM
*/
SET NUMERIC_ROUNDABORT OFF
GO
SET ANSI_PADDING, ANSI_WARNINGS, CONCAT_NULL_YIELDS_NULL, ARITHABORT, QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
SET XACT_ABORT ON
GO
SET TRANSACTION ISOLATION LEVEL Serializable
GO
BEGIN TRANSACTION
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Creating [dbo].[ASS_IMPORT_UPDATE_DT_ById]'
GO
CREATE PROCEDURE [dbo].[ASS_IMPORT_UPDATE_DT_ById]
@p_IMP_MASTER_ID VARCHAR(15)
AS
SELECT A.*,B.BRANCH_NAME,C.DEP_NAME,D.EMP_NAME,E.ASSET_CODE,
F.BRANCH_NAME AS BRANCH_NAME_OLD, G.DEP_NAME AS DEP_NAME_OLD, H.EMP_NAME AS EMP_NAME_OLD
FROM ASS_IMPORT_UPDATE_DT A
LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID
LEFT JOIN CM_DEPARTMENT C ON A.DEP_ID = C.DEP_ID
LEFT JOIN CM_EMPLOYEE D ON A.EMP_ID = D.EMP_ID
LEFT JOIN ASS_MASTER E ON A.ASSET_ID = E.ASSET_ID
LEFT JOIN CM_BRANCH F ON A.BRANCH_ID_OLD = F.BRANCH_ID
LEFT JOIN CM_DEPARTMENT G ON A.DEP_ID_OLD = G.DEP_ID
LEFT JOIN CM_EMPLOYEE H ON A.EMP_ID_OLD = H.EMP_ID
WHERE A.IMP_MASTER_ID = @p_IMP_MASTER_ID
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Creating [dbo].[ASS_IMPORT_UPDATE_App]'
GO
CREATE PROCEDURE [dbo].[ASS_IMPORT_UPDATE_App]
@p_IMP_MASTER_ID VARCHAR(15),
@p_CHECKER_ID VARCHAR(100),
@p_APPROVE_DT VARCHAR(50)
AS
DECLARE @MESSAGE_VALIDATION NVARCHAR(MAX)
IF(EXISTS(SELECT 1 FROM ASS_IMPORT_UPDATE_MASTER WHERE IMP_MASTER_ID = @p_IMP_MASTER_ID AND AUTH_STATUS = 'A'))
BEGIN
SELECT '-1' Result, N'Phiếu đã được phê duyệt' ErrorDesc
RETURN '-1'
END
IF(EXISTS(SELECT 1 FROM ASS_IMPORT_UPDATE_MASTER WHERE IMP_MASTER_ID = @p_IMP_MASTER_ID AND AUTH_STATUS = 'R'))
BEGIN
SELECT '-1' Result, N'Phiếu đang được trả về' ErrorDesc
RETURN '-1'
END
BEGIN TRANSACTION
UPDATE ASS_IMPORT_UPDATE_MASTER SET AUTH_STATUS = 'A' , CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103)
WHERE IMP_MASTER_ID = @p_IMP_MASTER_ID
--kiểm tra branch,dep của tài sản hiện tại có giống branch,dep import không
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' đã bị thay đổi Đơn vị/Phòng ban so với File Import'
FROM ( SELECT B.ASSET_CODE
FROM ASS_IMPORT_UPDATE_DT A
LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID
WHERE (ISNULL(A.BRANCH_ID,'') <> ISNULL(B.BRANCH_ID,'')
OR ISNULL(A.DEP_ID,'') <> ISNULL(B.DEPT_ID,''))
AND A.IMP_MASTER_ID = @p_IMP_MASTER_ID) C
FOR XML PATH (''))
, '|', '
'))
IF(@MESSAGE_VALIDATION IS NOT NULL AND @MESSAGE_VALIDATION <> '')
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' Result, @MESSAGE_VALIDATION ErrorDesc
RETURN '-1'
END
--check branch,dep của tài sản hiện tại có giống với branch,dep của người dùng không
SET @MESSAGE_VALIDATION = (SELECT REPLACE((SELECT
CASE WHEN ROW_NUMBER() OVER (ORDER BY (SELECT 0)) = 1 THEN ''
ELSE '|' END
+ N'Người dùng ' + C.EMP_NAME + '(' + C.EMP_CODE + ')' + N' không cùng đơn vị/phòng ban với tài sản ' + C.ASSET_CODE
FROM ( SELECT B.ASSET_CODE,D.EMP_CODE,D.EMP_NAME
FROM ASS_IMPORT_UPDATE_DT A
LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID
LEFT JOIN CM_EMPLOYEE D ON A.EMP_ID = D.EMP_ID
WHERE (ISNULL(D.BRANCH_ID,'') <> ISNULL(B.BRANCH_ID,'')
OR ISNULL(D.DEP_ID,'') <> ISNULL(B.DEPT_ID,''))
AND A.IMP_MASTER_ID = @p_IMP_MASTER_ID) C
FOR XML PATH (''))
, '|', '
'))
IF(@MESSAGE_VALIDATION IS NOT NULL AND @MESSAGE_VALIDATION <> '')
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' Result, @MESSAGE_VALIDATION ErrorDesc
RETURN '-1'
END
UPDATE B SET B.EMP_ID = A.EMP_ID, B.ASSET_SERIAL_NO = A.ASSET_SERIAL_NO, B.ASSET_DESC = A.ASSET_DESC, B.NOTES = A.NOTES
FROM ASS_IMPORT_UPDATE_DT A
LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID
WHERE A.IMP_MASTER_ID = @p_IMP_MASTER_ID
INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
VALUES (@p_IMP_MASTER_ID, 'APPROVE', @p_CHECKER_ID, GETDATE(), N'Duyệt phiếu cập nhật tài sản', N'Duyệt phiếu cập nhật tài sản thành công');
IF @@Error <> 0 GOTO ABORT
COMMIT TRANSACTION
SELECT '0' as Result, '' ErrorDesc
RETURN '0'
ABORT:
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' ErrorDesc
RETURN '-1'
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Creating [dbo].[ASS_IMPORT_UPDATE_ById]'
GO
CREATE PROCEDURE [dbo].[ASS_IMPORT_UPDATE_ById]
@p_IMP_MASTER_ID VARCHAR(15)
AS
SELECT A.* , B.TLFullName AS MAKER_NAME, C.AUTH_STATUS_NAME
FROM ASS_IMPORT_UPDATE_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS = C.AUTH_STATUS
WHERE A.IMP_MASTER_ID = @p_IMP_MASTER_ID
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Creating [dbo].[ASS_IMPORT_UPDATE_Del]'
GO
CREATE PROCEDURE [dbo].[ASS_IMPORT_UPDATE_Del]
@p_IMP_MASTER_ID VARCHAR(15)
AS
IF(EXISTS(SELECT 1 FROM ASS_IMPORT_UPDATE_MASTER WHERE IMP_MASTER_ID = @p_IMP_MASTER_ID AND AUTH_STATUS = 'U'))
BEGIN
SELECT '-1' Result, N'Phiếu đang chờ phê duyệt. Xoá thất bại' ErrorDesc
RETURN '-1'
END
IF(EXISTS(SELECT 1 FROM ASS_IMPORT_UPDATE_MASTER WHERE IMP_MASTER_ID = @p_IMP_MASTER_ID AND AUTH_STATUS = 'A'))
BEGIN
SELECT '-1' Result, N'Phiếu đã được phê duyệt. Xoá thất bại' ErrorDesc
RETURN '-1'
END
BEGIN TRANSACTION
DELETE ASS_IMPORT_UPDATE_MASTER WHERE IMP_MASTER_ID = @p_IMP_MASTER_ID
DELETE ASS_IMPORT_UPDATE_DT WHERE IMP_MASTER_ID = @p_IMP_MASTER_ID
IF @@Error <> 0 GOTO ABORT
COMMIT TRANSACTION
SELECT '0' as Result, '' ErrorDesc
RETURN '0'
ABORT:
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' ErrorDesc
RETURN '-1'
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Creating [dbo].[ASS_IMPORT_UPDATE_Ins]'
GO
CREATE PROCEDURE [dbo].[ASS_IMPORT_UPDATE_Ins]
@p_NOTES NVARCHAR(4000) = NULL,
@p_RECORD_STATUS varchar(1) = NULL,
@p_MAKER_ID VARCHAR(100) = NULL,
@p_CREATE_DT VARCHAR(50) = NULL,
@p_AUTH_STATUS VARCHAR(50) = NULL,
@p_CHECKER_ID VARCHAR(100) = NULL,
@p_APPROVE_DT VARCHAR(50) = NULL,
@p_JSON_DATA NVARCHAR(MAX) = NULL
AS
DECLARE
@ASSET_ID VARCHAR(15),
@BRANCH_ID VARCHAR(15),
@DEP_ID VARCHAR(15),
@EMP_ID VARCHAR(15),
@NOTES NVARCHAR(4000),
@ASSET_DESC NVARCHAR(4000),
@ASSET_SERIAL_NO NVARCHAR(4000),
@ASSET_ID_OLD VARCHAR(15),
@BRANCH_ID_OLD VARCHAR(15),
@DEP_ID_OLD VARCHAR(15),
@EMP_ID_OLD VARCHAR(15),
@NOTES_OLD NVARCHAR(4000),
@ASSET_DESC_OLD NVARCHAR(4000),
@ASSET_SERIAL_NO_OLD NVARCHAR(4000)
DECLARE cur CURSOR FAST_FORWARD READ_ONLY LOCAL FOR
SELECT *
FROM OPENJSON(@p_JSON_DATA)
WITH
(
ASSET_ID VARCHAR(15) '$.ASSET_ID',
BRANCH_ID VARCHAR(15) '$.BRANCH_ID',
DEP_ID VARCHAR(15) '$.DEP_ID',
EMP_ID VARCHAR(15) '$.EMP_ID',
NOTES NVARCHAR(4000) '$.NOTES',
ASSET_DESC NVARCHAR(4000) '$.ASSET_DESC',
ASSET_SERIAL_NO NVARCHAR(4000) '$.ASSET_SERIAL_NO',
BRANCH_ID_OLD VARCHAR(15) '$.BRANCH_ID_OLD',
DEP_ID_OLD VARCHAR(15) '$.DEP_ID_OLD',
EMP_ID_OLD VARCHAR(15) '$.EMP_ID_OLD',
NOTES_OLD NVARCHAR(4000) '$.NOTES_OLD',
ASSET_DESC_OLD NVARCHAR(4000) '$.ASSET_DESC_OLD',
ASSET_SERIAL_NO_OLD NVARCHAR(4000) '$.ASSET_SERIAL_NO_OLD'
)
OPEN cur
BEGIN TRANSACTION
DECLARE @p_IMP_MASTER_ID VARCHAR(15)
EXEC SYS_CodeMasters_Gen 'ASS_IMPORT_UPDATE_MASTER', @p_IMP_MASTER_ID out
IF @p_IMP_MASTER_ID ='' OR @p_IMP_MASTER_ID IS NULL GOTO ABORT
INSERT INTO ASS_IMPORT_UPDATE_MASTER (IMP_MASTER_ID, NOTES, RECORD_STATUS, AUTH_STATUS, MAKER_ID, CREATE_DT, CHECKER_ID, APPROVE_DT)
VALUES (@p_IMP_MASTER_ID, @p_NOTES, '1', 'E', @p_MAKER_ID, GETDATE(), NULL, NULL);
FETCH NEXT FROM cur INTO @ASSET_ID,@BRANCH_ID,@DEP_ID,@EMP_ID,@NOTES,@ASSET_DESC,@ASSET_SERIAL_NO,@BRANCH_ID_OLD,@DEP_ID_OLD,@EMP_ID_OLD,@NOTES_OLD,@ASSET_DESC_OLD,@ASSET_SERIAL_NO_OLD
WHILE @@FETCH_STATUS = 0 BEGIN
DECLARE @l_IMP_DT_ID VARCHAR(15)
EXEC SYS_CodeMasters_Gen 'ASS_IMPORT_UPDATE_DT', @l_IMP_DT_ID out
IF @l_IMP_DT_ID='' OR @l_IMP_DT_ID IS NULL GOTO ABORT
INSERT INTO ASS_IMPORT_UPDATE_DT (IMP_DT_ID, IMP_MASTER_ID, ASSET_ID, BRANCH_ID, DEP_ID, EMP_ID, NOTES, ASSET_DESC, ASSET_SERIAL_NO, BRANCH_ID_OLD, DEP_ID_OLD, EMP_ID_OLD, NOTES_OLD, ASSET_DESC_OLD, ASSET_SERIAL_NO_OLD)
VALUES (@l_IMP_DT_ID, @p_IMP_MASTER_ID, @ASSET_ID, @BRANCH_ID, @DEP_ID, @EMP_ID, @NOTES, @ASSET_DESC, @ASSET_SERIAL_NO, @BRANCH_ID_OLD, @DEP_ID_OLD, @EMP_ID_OLD, @NOTES_OLD, @ASSET_DESC_OLD, @ASSET_SERIAL_NO_OLD);
FETCH NEXT FROM cur INTO @ASSET_ID,@BRANCH_ID,@DEP_ID,@EMP_ID,@NOTES,@ASSET_DESC,@ASSET_SERIAL_NO,@BRANCH_ID_OLD,@DEP_ID_OLD,@EMP_ID_OLD,@NOTES_OLD,@ASSET_DESC_OLD,@ASSET_SERIAL_NO_OLD
END
CLOSE cur
DEALLOCATE cur
INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
VALUES (@p_IMP_MASTER_ID, 'CREATE', @p_MAKER_ID, GETDATE(), N'Nhân viên thêm mới', N'Thêm mới import tài sản thành công');
IF @@ERROR <> 0 GOTO ABORT
COMMIT TRANSACTION
SELECT '0' as Result,@p_IMP_MASTER_ID ID, N'Thêm mới thành công' ErrorDesc
RETURN '0'
ABORT:
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' AS RESULT
RETURN '-1'
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Creating [dbo].[ASS_IMPORT_UPDATE_Search]'
GO
CREATE PROCEDURE [dbo].[ASS_IMPORT_UPDATE_Search]
@p_IMP_MASTER_ID VARCHAR(15) = NULL,
@p_NOTES NVARCHAR(4000) = NULL,
@p_MAKER_NAME NVARCHAR(1000) = NULL,
@p_TOP INT = NULL
AS
BEGIN -- PAGING
IF @p_TOP IS NULL OR @p_TOP = ''
BEGIN
-- PAGING BEGIN
SELECT A.*,B.TLFullName AS MAKER_NAME, C.AUTH_STATUS_NAME
-- SELECT END
FROM ASS_IMPORT_UPDATE_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS = C.AUTH_STATUS
WHERE 1=1
AND (@p_IMP_MASTER_ID = A.IMP_MASTER_ID OR @p_IMP_MASTER_ID IS NULL OR @p_IMP_MASTER_ID = '')
AND (B.TLFullName COLLATE Latin1_general_CI_AI LIKE N'%' + @p_MAKER_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_MAKER_NAME IS NULL OR @p_MAKER_NAME = '')
AND (A.NOTES COLLATE Latin1_general_CI_AI LIKE N'%' + @p_NOTES + N'%' COLLATE Latin1_general_CI_AI OR @p_NOTES IS NULL OR @p_NOTES = '')
ORDER BY A.CREATE_DT DESC
-- PAGING END
END
ELSE
BEGIN
-- PAGING BEGIN
SELECT TOP (@p_TOP) A.*, B.TLFullName AS MAKER_NAME, C.AUTH_STATUS_NAME
-- SELECT END
FROM ASS_IMPORT_UPDATE_MASTER A
LEFT JOIN TL_USER B ON A.MAKER_ID = B.TLNANME
LEFT JOIN CM_AUTH_STATUS C ON A.AUTH_STATUS = C.AUTH_STATUS
WHERE 1=1
AND (@p_IMP_MASTER_ID = A.IMP_MASTER_ID OR @p_IMP_MASTER_ID IS NULL OR @p_IMP_MASTER_ID = '')
AND (B.TLFullName COLLATE Latin1_general_CI_AI LIKE N'%' + @p_MAKER_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_MAKER_NAME IS NULL OR @p_MAKER_NAME = '')
AND (A.NOTES COLLATE Latin1_general_CI_AI LIKE N'%' + @p_NOTES + N'%' COLLATE Latin1_general_CI_AI OR @p_NOTES IS NULL OR @p_NOTES = '')
ORDER BY A.CREATE_DT DESC
-- PAGING END
END
END -- PAGING
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Creating [dbo].[ASS_IMPORT_UPDATE_SendAppr]'
GO
CREATE PROCEDURE [dbo].[ASS_IMPORT_UPDATE_SendAppr]
@p_IMP_MASTER_ID VARCHAR(15)
AS
IF(EXISTS(SELECT 1 FROM ASS_IMPORT_UPDATE_MASTER WHERE IMP_MASTER_ID = @p_IMP_MASTER_ID AND AUTH_STATUS = 'U'))
BEGIN
SELECT '-1' Result, N'Phiếu đã được gửi phê duyệt' ErrorDesc
RETURN '-1'
END
IF(EXISTS(SELECT 1 FROM ASS_IMPORT_UPDATE_MASTER WHERE IMP_MASTER_ID = @p_IMP_MASTER_ID AND AUTH_STATUS = 'A'))
BEGIN
SELECT '-1' Result, N'Phiếu đã được phê duyệt' ErrorDesc
RETURN '-1'
END
BEGIN TRANSACTION
UPDATE ASS_IMPORT_UPDATE_MASTER SET AUTH_STATUS = 'U' WHERE IMP_MASTER_ID = @p_IMP_MASTER_ID
IF @@Error <> 0 GOTO ABORT
COMMIT TRANSACTION
SELECT '0' as Result, N'Gửi phê duyệt thành công' ErrorDesc
RETURN '0'
ABORT:
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' as Result, '' ErrorDesc
RETURN '-1'
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Creating [dbo].[ASS_IMPORT_UPDATE_Upd]'
GO
CREATE PROCEDURE [dbo].[ASS_IMPORT_UPDATE_Upd]
@p_IMP_MASTER_ID VARCHAR(15) = NULL,
@p_NOTES NVARCHAR(4000) = NULL,
@p_RECORD_STATUS varchar(1) = NULL,
@p_MAKER_ID VARCHAR(100) = NULL,
@p_CREATE_DT VARCHAR(50) = NULL,
@p_AUTH_STATUS VARCHAR(50) = NULL,
@p_CHECKER_ID VARCHAR(100) = NULL,
@p_APPROVE_DT VARCHAR(50) = NULL,
@p_JSON_DATA NVARCHAR(MAX) = NULL
AS
DECLARE
@ASSET_ID VARCHAR(15),
@BRANCH_ID VARCHAR(15),
@DEP_ID VARCHAR(15),
@EMP_ID VARCHAR(15),
@NOTES NVARCHAR(4000),
@ASSET_DESC NVARCHAR(4000),
@ASSET_SERIAL_NO NVARCHAR(4000),
@ASSET_ID_OLD VARCHAR(15),
@BRANCH_ID_OLD VARCHAR(15),
@DEP_ID_OLD VARCHAR(15),
@EMP_ID_OLD VARCHAR(15),
@NOTES_OLD NVARCHAR(4000),
@ASSET_DESC_OLD NVARCHAR(4000),
@ASSET_SERIAL_NO_OLD NVARCHAR(4000)
DECLARE cur CURSOR FAST_FORWARD READ_ONLY LOCAL FOR
SELECT *
FROM OPENJSON(@p_JSON_DATA)
WITH
(
ASSET_ID VARCHAR(15) '$.ASSET_ID',
BRANCH_ID VARCHAR(15) '$.BRANCH_ID',
DEP_ID VARCHAR(15) '$.DEP_ID',
EMP_ID VARCHAR(15) '$.EMP_ID',
NOTES NVARCHAR(4000) '$.NOTES',
ASSET_DESC NVARCHAR(4000) '$.ASSET_DESC',
ASSET_SERIAL_NO NVARCHAR(4000) '$.ASSET_SERIAL_NO',
BRANCH_ID_OLD VARCHAR(15) '$.BRANCH_ID_OLD',
DEP_ID_OLD VARCHAR(15) '$.DEP_ID_OLD',
EMP_ID_OLD VARCHAR(15) '$.EMP_ID_OLD',
NOTES_OLD NVARCHAR(4000) '$.NOTES_OLD',
ASSET_DESC_OLD NVARCHAR(4000) '$.ASSET_DESC_OLD',
ASSET_SERIAL_NO_OLD NVARCHAR(4000) '$.ASSET_SERIAL_NO_OLD'
)
OPEN cur
BEGIN TRANSACTION
UPDATE ASS_IMPORT_UPDATE_MASTER
SET NOTES = @p_NOTES
WHERE IMP_MASTER_ID = @p_IMP_MASTER_ID
FETCH NEXT FROM cur INTO @ASSET_ID,@BRANCH_ID,@DEP_ID,@EMP_ID,@NOTES,@ASSET_DESC,@ASSET_SERIAL_NO,@BRANCH_ID_OLD,@DEP_ID_OLD,@EMP_ID_OLD,@NOTES_OLD,@ASSET_DESC_OLD,@ASSET_SERIAL_NO_OLD
WHILE @@FETCH_STATUS = 0 BEGIN
DECLARE @l_IMP_DT_ID VARCHAR(15)
EXEC SYS_CodeMasters_Gen 'ASS_IMPORT_UPDATE_DT', @l_IMP_DT_ID out
IF @l_IMP_DT_ID='' OR @l_IMP_DT_ID IS NULL GOTO ABORT
INSERT INTO ASS_IMPORT_UPDATE_DT (IMP_DT_ID, IMP_MASTER_ID, ASSET_ID, BRANCH_ID, DEP_ID, EMP_ID, NOTES, ASSET_DESC, ASSET_SERIAL_NO, BRANCH_ID_OLD, DEP_ID_OLD, EMP_ID_OLD, NOTES_OLD, ASSET_DESC_OLD, ASSET_SERIAL_NO_OLD)
VALUES (@l_IMP_DT_ID, @p_IMP_MASTER_ID, @ASSET_ID, @BRANCH_ID, @DEP_ID, @EMP_ID, @NOTES, @ASSET_DESC, @ASSET_SERIAL_NO, @BRANCH_ID_OLD, @DEP_ID_OLD, @EMP_ID_OLD, @NOTES_OLD, @ASSET_DESC_OLD, @ASSET_SERIAL_NO_OLD);
FETCH NEXT FROM cur INTO @ASSET_ID,@BRANCH_ID,@DEP_ID,@EMP_ID,@NOTES,@ASSET_DESC,@ASSET_SERIAL_NO,@BRANCH_ID_OLD,@DEP_ID_OLD,@EMP_ID_OLD,@NOTES_OLD,@ASSET_DESC_OLD,@ASSET_SERIAL_NO_OLD
END
CLOSE cur
DEALLOCATE cur
INSERT INTO PL_PROCESS (REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES)
VALUES (@p_IMP_MASTER_ID, 'UPDATE', @p_MAKER_ID, GETDATE(), N'Nhân viên cập nhật', N'Cập nhật import tài sản thành công');
IF @@ERROR <> 0 GOTO ABORT
COMMIT TRANSACTION
SELECT '0' as Result,@p_IMP_MASTER_ID ID, N'Cập nhật thành công' ErrorDesc
RETURN '0'
ABORT:
BEGIN
ROLLBACK TRANSACTION
SELECT '-1' AS RESULT
RETURN '-1'
End
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Creating [dbo].[CM_DEPARTMENT_GET_BLOCK_CENTER]'
GO
CREATE PROCEDURE [dbo].[CM_DEPARTMENT_GET_BLOCK_CENTER]
@p_DEP_ID_INPUT VARCHAR(15),
@p_BLOCK_ID VARCHAR(15) OUT,
@p_CENTER_ID VARCHAR(15) OUT,
@p_DEP_ID VARCHAR(15) OUT
AS
SELECT
@p_BLOCK_ID = (CASE WHEN DP.TYPE = 'K' THEN DP.DEP_ID ELSE K.DEP_ID END),
@p_CENTER_ID = (CASE WHEN DP.TYPE = 'TT' THEN DP.DEP_ID ELSE TT.DEP_ID END),
@p_DEP_ID = (CASE WHEN DP.TYPE = 'PB' THEN DP.DEP_ID ELSE NULL END)
FROM CM_DEPARTMENT DP
LEFT JOIN CM_DEPARTMENT TT ON DP.FATHER_ID = TT.DEP_ID --TRUNG TÂM
LEFT JOIN CM_DEPARTMENT K ON DP.KHOI_ID = K.DEP_ID --KHỐI
WHERE DP.DEP_ID = @p_DEP_ID_INPUT
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Creating [dbo].[ASS_IMPORT_UPDATE_Import]'
GO
CREATE PROCEDURE [dbo].[ASS_IMPORT_UPDATE_Import]
@P_JSON_DATA NVARCHAR(MAX)
AS
BEGIN
DECLARE @TMPASSETCODE TABLE(
ASSET_CODE VARCHAR(100),
BRANCH_CODE VARCHAR(100),
DEP_CODE VARCHAR(100),
EMP_CODE VARCHAR(100),
NOTES NVARCHAR(4000),
ASSET_DESC NVARCHAR(4000),
ASSET_SERIAL_NO NVARCHAR(4000)
)
INSERT INTO @TMPASSETCODE
SELECT *
FROM OPENJSON(@P_JSON_DATA)
WITH
(
ASSET_CODE VARCHAR(100) '$.ASSET_CODE',
BRANCH_CODE VARCHAR(1000) '$.BRANCH_CODE',
DEP_CODE VARCHAR(100) '$.DEP_CODE',
EMP_CODE VARCHAR(100) '$.EMP_CODE',
NOTES NVARCHAR(4000) '$.NOTES',
ASSET_DESC NVARCHAR(4000) '$.ASSET_DESC',
ASSET_SERIAL_NO NVARCHAR(4000) '$.ASSET_SERIAL_NO'
)
DECLARE @ERROR_MESSAGE NVARCHAR(MAX)
SELECT @ERROR_MESSAGE = STUFF( (
SELECT ',' + A.ROW FROM (
SELECT CONVERT(VARCHAR(10),ROW_NUMBER() OVER (ORDER BY (SELECT 1))) AS ROW, T.ASSET_CODE
FROM @TMPASSETCODE T ) A
WHERE A.ASSET_CODE IS NULL
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
IF(LEN(@ERROR_MESSAGE) > 0)
BEGIN
SET @ERROR_MESSAGE = N'Dòng: ' + @ERROR_MESSAGE + N' mã tài sản không được để trống'
EXEC SP_SETERRORMESSAGE @ERROR_MESSAGE
RETURN '-1'
END
SELECT @ERROR_MESSAGE = STUFF( (
SELECT ',' + A.ROW FROM (
SELECT CONVERT(VARCHAR(10),ROW_NUMBER() OVER (ORDER BY (SELECT 1))) AS ROW, T.BRANCH_CODE
FROM @TMPASSETCODE T
LEFT JOIN ASS_MASTER B ON T.ASSET_CODE = B.ASSET_CODE
WHERE B.BRANCH_ID IS NOT NULL AND B.BRANCH_ID <> '' ) A
WHERE A.BRANCH_CODE IS NULL
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
IF(LEN(@ERROR_MESSAGE) > 0)
BEGIN
SET @ERROR_MESSAGE = N'Dòng: ' + @ERROR_MESSAGE + N' mã đơn vị không được để trống'
EXEC SP_SETERRORMESSAGE @ERROR_MESSAGE
RETURN '-1'
END
SELECT @ERROR_MESSAGE = STUFF( (
SELECT T.EMP_CODE
FROM @TMPASSETCODE T
LEFT JOIN CM_EMPLOYEE E ON T.EMP_CODE = E.EMP_CODE
WHERE E.EMP_ID IS NULL AND T.EMP_CODE IS NOT NULL AND T.EMP_CODE <> ''
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
IF(LEN(@ERROR_MESSAGE) > 0)
BEGIN
SET @ERROR_MESSAGE = N'Người dùng không tồn tại trên hệ thống: ' + @ERROR_MESSAGE
EXEC SP_SETERRORMESSAGE @ERROR_MESSAGE
RETURN '-1'
END
SELECT @ERROR_MESSAGE = STUFF( (
SELECT N'Người dùng ' + A.EMP_CODE + N' và tài sản ' + A.ASSET_CODE + N' không cùng Đơn vị/Phòng ban với nhau '
FROM @TMPASSETCODE A
LEFT JOIN ASS_MASTER B ON A.ASSET_CODE = B.ASSET_CODE
LEFT JOIN CM_EMPLOYEE E ON A.EMP_CODE = E.EMP_CODE
WHERE A.EMP_CODE IS NOT NULL AND A.EMP_CODE <> '' AND (ISNULL(E.BRANCH_ID,'') <> ISNULL(B.BRANCH_ID,'') OR ISNULL(E.DEP_ID,'') <> ISNULL(B.DEPT_ID,''))
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
IF(LEN(@ERROR_MESSAGE) > 0)
BEGIN
SET @ERROR_MESSAGE = @ERROR_MESSAGE
EXEC SP_SETERRORMESSAGE @ERROR_MESSAGE
RETURN '-1'
END
SELECT @ERROR_MESSAGE = STUFF( (
SELECT ',' + T.ASSET_CODE
FROM @TMPASSETCODE T
LEFT JOIN ASS_MASTER B ON T.ASSET_CODE = B.ASSET_CODE
WHERE B.ASSET_ID IS NULL
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 tồn tại trong hệ thống: ' + @ERROR_MESSAGE
EXEC SP_SETERRORMESSAGE @ERROR_MESSAGE
RETURN '-1'
END
SELECT @ERROR_MESSAGE = STUFF( (
SELECT ',' + T.ASSET_CODE FROM @TMPASSETCODE T
GROUP BY T.ASSET_CODE
HAVING COUNT(*) > 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 bị trùng: ' + @ERROR_MESSAGE
EXEC SP_SETERRORMESSAGE @ERROR_MESSAGE
RETURN '-1'
END
SELECT @ERROR_MESSAGE = STUFF( (
SELECT ',' + T.BRANCH_CODE FROM @TMPASSETCODE T
WHERE T.BRANCH_CODE IS NOT NULL AND T.BRANCH_CODE <> ''
AND NOT EXISTS(SELECT 1 FROM CM_BRANCH B WHERE B.BRANCH_CODE = T.BRANCH_CODE AND B.RECORD_STATUS = '1')
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
IF(LEN(@ERROR_MESSAGE) > 0)
BEGIN
SET @ERROR_MESSAGE = N'Mã đơn vị 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 ',' + A.ASSET_CODE
FROM @TMPASSETCODE A
LEFT JOIN ASS_MASTER B ON A.ASSET_CODE = B.ASSET_CODE
LEFT JOIN CM_BRANCH C ON B.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON B.DEPT_ID = D.DEP_ID
WHERE (ISNULL(C.BRANCH_CODE,'') <> ISNULL(A.BRANCH_CODE,'')
OR ISNULL(D.DEP_CODE,'') <> ISNULL(A.DEP_CODE,'')) AND A.BRANCH_CODE IS NOT NULL AND A.BRANCH_CODE <> ''
FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')
IF(LEN(@ERROR_MESSAGE) > 0)
BEGIN
SET @ERROR_MESSAGE = N'Những tài sản có Đơn vị/Phòng ban không khớp với tài sản trên hệ thống: ' + @ERROR_MESSAGE
EXEC SP_SETERRORMESSAGE @ERROR_MESSAGE
RETURN '-1'
END
SELECT B.ASSET_ID,B.ASSET_CODE,B.ASSET_NAME,
G.BRANCH_ID,G.BRANCH_CODE,G.BRANCH_NAME,
H.DEP_ID,H.DEP_CODE,H.DEP_NAME,
E.EMP_ID,E.EMP_CODE,E.EMP_NAME,
A.NOTES,A.ASSET_DESC,A.ASSET_SERIAL_NO,
B.ASSET_ID AS ASSET_ID_OLD,B.ASSET_CODE AS ASSET_CODE_OLD,B.ASSET_NAME AS ASSET_NAME_OLD,
C.BRANCH_ID AS BRANCH_ID_OLD,C.BRANCH_CODE AS BRANCH_CODE_OLD,C.BRANCH_NAME AS BRANCH_NAME_OLD,
D.DEP_ID AS DEP_ID_OLD,D.DEP_CODE AS DEP_CODE_OLD,D.DEP_NAME AS DEP_NAME_OLD,
F.EMP_ID AS EMP_ID_OLD,F.EMP_CODE AS EMP_CODE_OLD,F.EMP_NAME AS EMP_NAME_OLD,
B.NOTES AS NOTES_OLD,B.ASSET_DESC AS ASSET_DESC_OLD,B.ASSET_SERIAL_NO AS ASSET_SERIAL_NO_OLD
FROM @TMPASSETCODE A
LEFT JOIN ASS_MASTER B ON A.ASSET_CODE = B.ASSET_CODE
LEFT JOIN CM_BRANCH C ON B.BRANCH_ID = C.BRANCH_ID
LEFT JOIN CM_DEPARTMENT D ON B.DEPT_ID = D.DEP_ID
LEFT JOIN CM_EMPLOYEE F ON B.EMP_ID = F.EMP_ID
LEFT JOIN CM_BRANCH G ON A.BRANCH_CODE = G.BRANCH_CODE
LEFT JOIN CM_DEPARTMENT H ON A.DEP_CODE = H.DEP_CODE
LEFT JOIN CM_EMPLOYEE E ON A.EMP_CODE = E.EMP_CODE
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Creating [dbo].[ASS_COST_ALLOCATION_Import]'
GO
CREATE PROCEDURE [dbo].[ASS_COST_ALLOCATION_Import]
@p_XmlData XML = NULL
AS
DECLARE
@BRANCH_CODE VARCHAR(25),
@DEP_CODE VARCHAR(25),
@COST_AMOUNT DECIMAL(18,2),
@COST_MONTH INT,
@COST_RATE DECIMAL(18,2)
DECLARE @TableCost TABLE (
BRANCH_ID VARCHAR(25),
DEPT_ID VARCHAR(25),
COST_AMOUNT VARCHAR(25),
COST_RATE VARCHAR(25),
COST_MONTH VARCHAR(25)
)
Declare @hdoc INT
Exec sp_xml_preparedocument @hdoc Output,@p_XmlData
SELECT T.BRANCH_CODE
,T.DEP_CODE
,T.COST_AMOUNT
,T.COST_MONTH
,T.COST_RATE,
cb.BRANCH_ID,
cb.BRANCH_NAME,
cd.DEP_ID,
cd.DEP_NAME FROM
(
SELECT BRANCH_CODE,DEP_CODE,COST_AMOUNT,COST_MONTH,COST_RATE
FROM OPENXML(@hdoc,'/Root/XmlData',2)
WITH
(
BRANCH_CODE varchar(15),
DEP_CODE VARCHAR(15),
COST_AMOUNT DECIMAL(18,2),
COST_MONTH INT,
COST_RATE DECIMAL(18,2)
)
) T
LEFT JOIN CM_BRANCH cb ON cb.BRANCH_CODE=T.BRANCH_CODE
LEFT JOIN CM_DEPARTMENT cd ON cd.DEP_CODE=T.DEP_CODE
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
PRINT N'Creating [dbo].[TR_REQUEST_SHOP_DOC_Excel]'
GO
CREATE 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
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.SEND_APP_DT IS NOT NULL AND A.SEND_APP_DT <> '' AND A.AUTH_STATUS <> 'A' AND A.AUTH_STATUS <> 'R'
AND A.AUTH_STATUS <> 'E' AND DATEDIFF(DAY,GETDATE(),DATEADD(DAY,CONVERT(INT,SP.ParaValue),A.SEND_APP_DT)) < 0 THEN '#f2dede' ELSE ''
END AS COLOR
--D.AUTH_STATUS_NAME
-- SELECT END
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
LEFT JOIN CM_ALLCODE K ON K.CDNAME = 'TRREQASSTYPE' AND K.CDVAL = A.REQ_TYPE
LEFT JOIN CM_ALLCODE I ON I.CDNAME = 'TRREQSTATUS' AND I.CDVAL = A.[STATUS] AND I.CDTYPE = @p_CDTYPE_PYC
-- LEFT JOIN PL_REQUEST_PROCESS prp1 ON prp1.REQ_ID = A.REQ_ID AND prp1.STATUS = 'C'
--LEFT JOIN dbo.CM_AUTH_STATUS AUTH ON AUTH.AUTH_STATUS = A.AUTH_STATUS
--LEFT JOIN dbo.PL_REQUEST_PROCESS RQT ON RQT.REQ_ID = A.REQ_ID
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR (RQT.PROCESS_ID = A.STATUS AND EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP1 ON PRP1.REQ_ID = A.REQ_ID AND PRP1.PROCESS_ID = 'CVMS_N'
--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP2 ON PRP2.REQ_ID = A.REQ_ID AND PRP2.PROCESS_ID = 'DVKD'
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=A.MAKER_ID
LEFT JOIN SYS_PARAMETERS SP ON 1=1 AND SP.ParaKey = 'NUM_OF_DAYS_LATE'
LEFT JOIN CM_DEPARTMENT CD ON A.DEP_ID = CD.DEP_ID
WHERE 1 = 1
AND (G.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '')
-- AND (CONVERT(DATETIME,@p_DVKD_MANAGE_APP_FROM,103) <= CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_FROM IS NULL OR @p_DVKD_MANAGE_APP_FROM = '')
-- AND (DATEADD(day,1,CONVERT(DATETIME,@p_DVKD_MANAGE_APP_TO,103)) > CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_TO IS NULL OR @p_DVKD_MANAGE_APP_TO = '')
AND (@p_DVKD_MANAGE_APP_FROM IS NULL AND @p_DVKD_MANAGE_APP_TO IS NULL OR
@p_DVKD_MANAGE_APP_TO IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) >= (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103))
OR @p_DVKD_MANAGE_APP_FROM IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103))
OR (CONVERT(DATE, A.REQ_DT, 103)) >= (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103)) AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103))
)
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)))
--AND ((@p_AUTH_STATUS = 'U' AND (RQT.STATUS = 'C' OR RQT.STATUS = 'U')) OR (@p_AUTH_STATUS = 'A' AND (RQT.STATUS = 'P' OR RQT.STATUS IS NULL))OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''))
AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%'
--OR A.REQ_ID LIKE '%' + @p_REQ_CODE + '%'
OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
--AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
AND (DATEDIFF(DAY,A.CREATE_DT , CONVERT(DATETIME,@p_CREATE_DT,103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
-- AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
AND (DATEDIFF(DAY,A.APPROVE_DT , CONVERT(DATETIME,@p_APPROVE_DT,103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE = '')
AND (A.STATUS IN ('NEW','REJECT') AND A.MAKER_ID = @p_USERNAME OR A.STATUS NOT IN ('NEW','REJECT')
OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
WHERE US.TLNANME = @p_USERNAME))
AND (@p_STATUS IS NULL OR @p_STATUS = '' OR A.STATUS = @p_STATUS)
AND (EXISTS(SELECT 1 FROM @REQ_ID_Temp RL WHERE RL.REQ_ID = A.REQ_ID)
OR (@ROLE_KT IN ('GDV','KSV') AND A.AUTH_STATUS = 'A' )
OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
WHERE US.TLNANME = @p_USERNAME))
AND A.RECORD_STATUS = '1'
AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.BRANCH_ID = @p_BRANCH_ID)
AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND( TU.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI OR TU.TLNANME COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI
OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
ORDER BY A.REQ_DT DESC
-- PAGING END
END
ELSE
BEGIN
-- PAGING BEGIN
SELECT TOP(CONVERT(INT,@p_TOP)) A.REQ_ID,
A.REQ_CODE,
A.REQ_NAME,
--ISNULL(PRP.APPROVE_DT,PRP2.APPROVE_DT) AS REQ_DT,
A.REQ_DT,
A.REQ_TYPE,
A.REQ_CONTENT,
A.TOTAL_AMT,
A.NOTES,
A.RECORD_STATUS,
A.MAKER_ID,
A.CREATE_DT,
A.AUTH_STATUS,
A.CHECKER_ID,
A.APPROVE_DT,
A.BRANCH_ID,
CASE WHEN A.REQ_TYPE = 'CPTS' AND A.IS_DONE = '1' AND A.STATUS = 'DONE' THEN 'APPROVE' ELSE A.STATUS END AS STATUS,
A.DEP_ID,
A.HO_NOTES, K.CONTENT AS REQ_TYPE_NAME,
--I.CONTENT AS REQ_STATUS_NAME,
CASE WHEN A.IS_DONE = '1' AND A.STATUS = 'APPROVE' THEN N'Hoàn tất'
ELSE I.CONTENT
END REQ_STATUS_NAME,
@p_RECEIVE_BRANCH AS RECEIVE_BRANCH,G.BRANCH_CODE,
CASE
WHEN A.DEP_ID IS NOT NULL AND A.DEP_ID <> '' THEN G.BRANCH_NAME + ' - ' + CD.DEP_NAME
ELSE G.BRANCH_NAME
END AS BRANCH_NAME,
--CASE WHEN RQT.STATUS = 'C' OR RQT.STATUS = 'U' THEN N'Chờ duyệt'
--ELSE N'Đã duyệt' END AS AUTH_STATUS_NAME
D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME,
I.CONTENT AS REQ_TYPE_NAME,
CASE WHEN A.SEND_APP_DT IS NOT NULL AND A.SEND_APP_DT <> '' AND A.AUTH_STATUS <> 'A' AND A.AUTH_STATUS <> 'R'
AND A.AUTH_STATUS <> 'E' AND DATEDIFF(DAY,GETDATE(),DATEADD(DAY,CONVERT(INT,SP.ParaValue),A.SEND_APP_DT)) < 0 THEN '#f2dede' ELSE ''
END AS COLOR
--D.AUTH_STATUS_NAME
-- SELECT END
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
LEFT JOIN CM_ALLCODE K ON K.CDNAME = 'TRREQASSTYPE' AND K.CDVAL = A.REQ_TYPE
LEFT JOIN CM_ALLCODE I ON I.CDNAME = 'TRREQSTATUS' AND I.CDVAL = A.[STATUS] AND I.CDTYPE = @p_CDTYPE_PYC
-- LEFT JOIN PL_REQUEST_PROCESS prp1 ON prp1.REQ_ID = A.REQ_ID AND prp1.STATUS = 'C'
--LEFT JOIN dbo.CM_AUTH_STATUS AUTH ON AUTH.AUTH_STATUS = A.AUTH_STATUS
--LEFT JOIN dbo.PL_REQUEST_PROCESS RQT ON RQT.REQ_ID = A.REQ_ID
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR (RQT.PROCESS_ID = A.STATUS AND EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP1 ON PRP1.REQ_ID = A.REQ_ID AND PRP1.PROCESS_ID = 'CVMS_N'
LEFT JOIN dbo.PL_REQUEST_PROCESS PRP2 ON PRP2.REQ_ID = A.REQ_ID AND PRP2.PROCESS_ID = 'DVKD'
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=A.MAKER_ID
LEFT JOIN SYS_PARAMETERS SP ON 1=1 AND SP.ParaKey = 'NUM_OF_DAYS_LATE'
LEFT JOIN CM_DEPARTMENT CD ON A.DEP_ID = CD.DEP_ID
WHERE 1 = 1
AND (G.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '')
-- AND (CONVERT(DATETIME,@p_DVKD_MANAGE_APP_FROM,103) <= CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_FROM IS NULL OR @p_DVKD_MANAGE_APP_FROM = '')
-- AND (DATEADD(day,1,CONVERT(DATETIME,@p_DVKD_MANAGE_APP_TO,103)) > CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_TO IS NULL OR @p_DVKD_MANAGE_APP_TO = '')
AND (@p_DVKD_MANAGE_APP_FROM IS NULL AND @p_DVKD_MANAGE_APP_TO IS NULL OR
@p_DVKD_MANAGE_APP_TO IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) >= (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103))
OR @p_DVKD_MANAGE_APP_FROM IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103))
OR (CONVERT(DATE, A.REQ_DT, 103)) >= (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103)) AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103))
)
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)))
--AND ((@p_AUTH_STATUS = 'U' AND (RQT.STATUS = 'C' OR RQT.STATUS = 'U')) OR (@p_AUTH_STATUS = 'A' AND (RQT.STATUS = 'P' OR RQT.STATUS IS NULL))OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''))
AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%'
--OR A.REQ_ID LIKE '%' + @p_REQ_CODE + '%'
OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
--AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
AND (DATEDIFF(DAY,A.CREATE_DT , CONVERT(DATETIME,@p_CREATE_DT,103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
-- AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
AND (DATEDIFF(DAY,A.APPROVE_DT , CONVERT(DATETIME,@p_APPROVE_DT,103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE = '')
AND (A.STATUS IN ('NEW','REJECT') AND A.MAKER_ID = @p_USERNAME OR A.STATUS NOT IN ('NEW','REJECT')
OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
WHERE US.TLNANME = @p_USERNAME))
AND (@p_STATUS IS NULL OR @p_STATUS = '' OR A.STATUS = @p_STATUS)
AND (EXISTS(SELECT 1 FROM @REQ_ID_Temp RL WHERE RL.REQ_ID = A.REQ_ID)
OR (@ROLE_KT IN ('GDV','KSV') AND A.AUTH_STATUS = 'A' )
OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
WHERE US.TLNANME = @p_USERNAME))
AND A.RECORD_STATUS = '1'
AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.BRANCH_ID = @p_BRANCH_ID)
AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND( TU.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI OR TU.TLNANME COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI
OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
ORDER BY A.REQ_DT DESC
-- PAGING END
END
END
ELSE
BEGIN
IF(@p_TOP IS NULL OR @p_TOP = '' OR @p_TOP = 0)
BEGIN
-- PAGING BEGIN
SELECT A.REQ_ID,
A.REQ_CODE,
A.REQ_NAME,
--ISNULL(PRP.APPROVE_DT,PRP2.APPROVE_DT) AS REQ_DT,
A.REQ_DT,
A.REQ_TYPE,
A.REQ_CONTENT,
A.TOTAL_AMT,
A.NOTES,
A.RECORD_STATUS,
A.MAKER_ID,
A.CREATE_DT,
A.AUTH_STATUS,
A.CHECKER_ID,
A.APPROVE_DT,
A.BRANCH_ID,
CASE WHEN A.REQ_TYPE = 'CPTS' AND A.IS_DONE = '1' AND A.STATUS = 'DONE' THEN 'APPROVE' ELSE A.STATUS END AS STATUS,
A.DEP_ID,
A.HO_NOTES, K.CONTENT AS REQ_TYPE_NAME,
--I.CONTENT AS REQ_STATUS_NAME,
CASE WHEN A.IS_DONE = '1' AND A.STATUS = 'APPROVE' THEN N'Hoàn tất'
ELSE I.CONTENT
END REQ_STATUS_NAME,
@p_RECEIVE_BRANCH AS RECEIVE_BRANCH,G.BRANCH_CODE,
CASE
WHEN A.DEP_ID IS NOT NULL AND A.DEP_ID <> '' THEN G.BRANCH_NAME + ' - ' + CD.DEP_NAME
ELSE G.BRANCH_NAME
END AS BRANCH_NAME,
--CASE WHEN RQT.STATUS = 'C' OR RQT.STATUS = 'U' THEN N'Chờ duyệt'
--ELSE N'Đã duyệt' END AS AUTH_STATUS_NAME
D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME,
CASE WHEN A.SEND_APP_DT IS NOT NULL AND A.SEND_APP_DT <> '' AND A.AUTH_STATUS <> 'A' AND A.AUTH_STATUS <> 'R'
AND DATEDIFF(DAY,GETDATE(),DATEADD(DAY,CONVERT(INT,SP.ParaValue),A.SEND_APP_DT)) < 0 THEN '#f2dede' ELSE ''
END AS COLOR
--D.AUTH_STATUS_NAME
-- SELECT END
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
LEFT JOIN CM_ALLCODE K ON K.CDNAME = 'TRREQASSTYPE' AND K.CDVAL = A.REQ_TYPE
LEFT JOIN CM_ALLCODE I ON I.CDNAME = 'TRREQSTATUS' AND I.CDVAL = A.[STATUS] AND I.CDTYPE = @p_CDTYPE_PYC
-- LEFT JOIN PL_REQUEST_PROCESS prp1 ON prp1.REQ_ID = A.REQ_ID AND prp1.STATUS = 'C'
--LEFT JOIN dbo.CM_AUTH_STATUS AUTH ON AUTH.AUTH_STATUS = A.AUTH_STATUS
--LEFT JOIN dbo.PL_REQUEST_PROCESS RQT ON RQT.REQ_ID = A.REQ_ID
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR (RQT.PROCESS_ID = A.STATUS AND EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP1 ON PRP1.REQ_ID = A.REQ_ID AND PRP1.PROCESS_ID = 'CVMS_N'
LEFT JOIN dbo.PL_REQUEST_PROCESS PRP2 ON PRP2.REQ_ID = A.REQ_ID AND PRP2.PROCESS_ID = 'DVKD'
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=A.MAKER_ID
LEFT JOIN SYS_PARAMETERS SP ON 1=1 AND SP.ParaKey = 'NUM_OF_DAYS_LATE'
LEFT JOIN CM_DEPARTMENT CD ON A.DEP_ID = CD.DEP_ID
WHERE 1 = 1
AND (G.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '')
-- AND (CONVERT(DATETIME,@p_DVKD_MANAGE_APP_FROM,103) <= CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_FROM IS NULL OR @p_DVKD_MANAGE_APP_FROM = '')
-- AND (DATEADD(day,1,CONVERT(DATETIME,@p_DVKD_MANAGE_APP_TO,103)) > CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_TO IS NULL OR @p_DVKD_MANAGE_APP_TO = '')
AND (@p_DVKD_MANAGE_APP_FROM IS NULL AND @p_DVKD_MANAGE_APP_TO IS NULL OR
@p_DVKD_MANAGE_APP_TO IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) >= (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103))
OR @p_DVKD_MANAGE_APP_FROM IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103))
OR (CONVERT(DATE, A.REQ_DT, 103)) >= (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103)) AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103))
)
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)))
--AND ((@p_AUTH_STATUS = 'U' AND (RQT.STATUS = 'C' OR RQT.STATUS = 'U')) OR (@p_AUTH_STATUS = 'A' AND (RQT.STATUS = 'P' OR RQT.STATUS IS NULL))OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''))
AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%'
--OR A.REQ_ID LIKE '%' + @p_REQ_CODE + '%'
OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
--AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
AND (DATEDIFF(DAY,A.CREATE_DT , CONVERT(DATETIME,@p_CREATE_DT,103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
-- AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
AND (DATEDIFF(DAY,A.APPROVE_DT , CONVERT(DATETIME,@p_APPROVE_DT,103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE = '')
AND (A.STATUS IN ('NEW','REJECT') AND A.MAKER_ID = @p_USERNAME OR A.STATUS NOT IN ('NEW','REJECT')
OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
WHERE US.TLNANME = @p_USERNAME))
AND (@p_STATUS IS NULL OR @p_STATUS = '' OR A.STATUS = @p_STATUS)
AND (EXISTS(SELECT 1 FROM @REQ_ID_Temp RL WHERE RL.REQ_ID = A.REQ_ID)
OR (@ROLE_KT IN ('GDV','KSV') AND A.AUTH_STATUS = 'A' )
OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
WHERE US.TLNANME = @p_USERNAME))
AND A.RECORD_STATUS = '1'
AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.BRANCH_ID = @p_BRANCH_ID)
AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND( TU.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI OR TU.TLNANME COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI
OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
ORDER BY A.REQ_DT DESC
-- PAGING END
END
ELSE
BEGIN
-- PAGING BEGIN
SELECT TOP(CONVERT(INT,@p_TOP)) A.REQ_ID,
A.REQ_CODE,
A.REQ_NAME,
--ISNULL(PRP.APPROVE_DT,PRP2.APPROVE_DT) AS REQ_DT,
A.REQ_DT,
A.REQ_TYPE,
A.REQ_CONTENT,
A.TOTAL_AMT,
A.NOTES,
A.RECORD_STATUS,
A.MAKER_ID,
A.CREATE_DT,
A.AUTH_STATUS,
A.CHECKER_ID,
A.APPROVE_DT,
A.BRANCH_ID,
CASE WHEN A.REQ_TYPE = 'CPTS' AND A.IS_DONE = '1' AND A.STATUS = 'DONE' THEN 'APPROVE' ELSE A.STATUS END AS STATUS,
A.DEP_ID,
A.HO_NOTES, K.CONTENT AS REQ_TYPE_NAME,
--I.CONTENT AS REQ_STATUS_NAME,
CASE WHEN A.IS_DONE = '1' AND A.STATUS = 'APPROVE' THEN N'Hoàn tất'
ELSE I.CONTENT
END REQ_STATUS_NAME,
@p_RECEIVE_BRANCH AS RECEIVE_BRANCH,G.BRANCH_CODE,
CASE
WHEN A.DEP_ID IS NOT NULL AND A.DEP_ID <> '' THEN G.BRANCH_NAME + ' - ' + CD.DEP_NAME
ELSE G.BRANCH_NAME
END AS BRANCH_NAME,
--CASE WHEN RQT.STATUS = 'C' OR RQT.STATUS = 'U' THEN N'Chờ duyệt'
--ELSE N'Đã duyệt' END AS AUTH_STATUS_NAME
D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME,
CASE WHEN A.SEND_APP_DT IS NOT NULL AND A.SEND_APP_DT <> '' AND A.AUTH_STATUS <> 'A' AND A.AUTH_STATUS <> 'R'
AND DATEDIFF(DAY,GETDATE(),DATEADD(DAY,CONVERT(INT,SP.ParaValue),A.SEND_APP_DT)) < 0 THEN '#f2dede' ELSE ''
END AS COLOR
--D.AUTH_STATUS_NAME
-- SELECT END
FROM TR_REQUEST_SHOP_DOC A
LEFT JOIN CM_AUTH_STATUS D ON D.AUTH_STATUS = A.AUTH_STATUS
LEFT JOIN CM_BRANCH G ON A.BRANCH_ID=G.BRANCH_ID
LEFT JOIN CM_ALLCODE K ON K.CDNAME = 'TRREQASSTYPE' AND K.CDVAL = A.REQ_TYPE
LEFT JOIN CM_ALLCODE I ON I.CDNAME = 'TRREQSTATUS' AND I.CDVAL = A.[STATUS] AND I.CDTYPE = @p_CDTYPE_PYC
-- LEFT JOIN PL_REQUEST_PROCESS prp1 ON prp1.REQ_ID = A.REQ_ID AND prp1.STATUS = 'C'
--LEFT JOIN dbo.CM_AUTH_STATUS AUTH ON AUTH.AUTH_STATUS = A.AUTH_STATUS
--LEFT JOIN dbo.PL_REQUEST_PROCESS RQT ON RQT.REQ_ID = A.REQ_ID
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR (RQT.PROCESS_ID = A.STATUS AND EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN))))
--LEFT JOIN dbo.PL_REQUEST_PROCESS PRP1 ON PRP1.REQ_ID = A.REQ_ID AND PRP1.PROCESS_ID = 'CVMS_N'
LEFT JOIN dbo.PL_REQUEST_PROCESS PRP2 ON PRP2.REQ_ID = A.REQ_ID AND PRP2.PROCESS_ID = 'DVKD'
LEFT JOIN dbo.TL_USER TU ON TU.TLNANME=A.MAKER_ID
LEFT JOIN SYS_PARAMETERS SP ON 1=1 AND SP.ParaKey = 'NUM_OF_DAYS_LATE'
LEFT JOIN CM_DEPARTMENT CD ON A.DEP_ID = CD.DEP_ID
WHERE 1 = 1
AND (G.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '')
--AND (CONVERT(DATETIME,@p_DVKD_MANAGE_APP_FROM,103) <= CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_FROM IS NULL OR @p_DVKD_MANAGE_APP_FROM = '')
--AND (DATEADD(day,1,CONVERT(DATETIME,@p_DVKD_MANAGE_APP_TO,103)) > CAST (PRP2.RECEPTION_DT AS DATE) OR @p_DVKD_MANAGE_APP_TO IS NULL OR @p_DVKD_MANAGE_APP_TO = '')
AND (@p_DVKD_MANAGE_APP_FROM IS NULL AND @p_DVKD_MANAGE_APP_TO IS NULL OR
@p_DVKD_MANAGE_APP_TO IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) >= (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103))
OR @p_DVKD_MANAGE_APP_FROM IS NULL AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103))
OR (CONVERT(DATE, A.REQ_DT, 103)) >= (CONVERT(DATE, @p_DVKD_MANAGE_APP_FROM, 103)) AND (CONVERT(DATE, A.REQ_DT, 103)) <= (CONVERT(DATE, @p_DVKD_MANAGE_APP_TO, 103))
)
--AND (((RQT.PROCESS_ID = A.STATUS AND RQT.ROLE_USER IN (SELECT ROLE_USER FROM @ROLE_LOGIN) AND (@p_USERNAME = RQT.DVKD_USER_APP OR (RQT.DVKD_USER_APP IS NULL OR RQT.DVKD_USER_APP = ''))) OR (RQT.STATUS = 'U' AND RQT.PROCESS_ID = 'DVKD')) OR EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_ROLE' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)))
--AND ((@p_AUTH_STATUS = 'U' AND (RQT.STATUS = 'C' OR RQT.STATUS = 'U')) OR (@p_AUTH_STATUS = 'A' AND (RQT.STATUS = 'P' OR RQT.STATUS IS NULL))OR (@p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = ''))
AND (A.REQ_CODE LIKE '%' + @p_REQ_CODE + '%'
--OR A.REQ_ID LIKE '%' + @p_REQ_CODE + '%'
OR @p_REQ_CODE IS NULL OR @p_REQ_CODE = '')
AND (A.REQ_ID LIKE '%' + @p_REQ_ID + '%' OR @p_REQ_ID IS NULL OR @p_REQ_ID = '')
AND (A.REQ_CONTENT LIKE '%' + @p_REQ_CONTENT + '%' OR @p_REQ_CONTENT IS NULL OR @p_REQ_CONTENT = '')
AND (A.TOTAL_AMT=@p_TOTAL_AMT OR @p_TOTAL_AMT IS NULL OR @p_TOTAL_AMT =0)
--AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND (A.REQ_NAME LIKE '%' + @p_REQ_NAME + '%' OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND (A.RECORD_STATUS LIKE '%' + @p_RECORD_STATUS + '%' OR @p_RECORD_STATUS IS NULL OR @p_RECORD_STATUS = '')
AND (DATEDIFF(DAY,A.CREATE_DT , CONVERT(DATETIME,@p_CREATE_DT,103)) = 0 OR @p_CREATE_DT IS NULL OR @p_CREATE_DT = '')
-- AND (A.AUTH_STATUS LIKE '%' + @p_AUTH_STATUS + '%' OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS = '')
AND (A.CHECKER_ID LIKE '%' + @p_CHECKER_ID + '%' OR @p_CHECKER_ID IS NULL OR @p_CHECKER_ID = '')
AND (DATEDIFF(DAY,A.APPROVE_DT , CONVERT(DATETIME,@p_APPROVE_DT,103)) = 0 OR @p_APPROVE_DT IS NULL OR @p_APPROVE_DT = '')
AND (A.REQ_TYPE = @p_REQ_TYPE OR @p_REQ_TYPE IS NULL OR @p_REQ_TYPE = '')
AND (A.STATUS IN ('NEW','REJECT') AND A.MAKER_ID = @p_USERNAME OR A.STATUS NOT IN ('NEW','REJECT')
OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
WHERE US.TLNANME = @p_USERNAME))
AND (@p_STATUS IS NULL OR @p_STATUS = '' OR A.STATUS = @p_STATUS)
AND (EXISTS(SELECT 1 FROM @REQ_ID_Temp RL WHERE RL.REQ_ID = A.REQ_ID)
OR (@ROLE_KT IN ('GDV','KSV') AND A.AUTH_STATUS = 'A' )
OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US
WHERE US.TLNANME = @p_USERNAME))
AND A.RECORD_STATUS = '1'
AND (@p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '' OR A.BRANCH_ID = @p_BRANCH_ID)
AND (A.REQ_NAME COLLATE Latin1_general_CI_AI Like N'%' + @p_REQ_NAME + N'%' COLLATE Latin1_general_CI_AI OR @p_REQ_NAME IS NULL OR @p_REQ_NAME = '')
AND( TU.TLFullName COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI OR TU.TLNANME COLLATE Latin1_general_CI_AI Like N'%' + @p_MAKER_ID + N'%' COLLATE Latin1_general_CI_AI
OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '')
ORDER BY A.REQ_DT DESC
-- PAGING END
END
END
END
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
COMMIT TRANSACTION
GO
IF @@ERROR <> 0 SET NOEXEC ON
GO
-- This statement writes to the SQL Server Log so SQL Monitor can show this deployment.
IF HAS_PERMS_BY_NAME(N'sys.xp_logevent', N'OBJECT', N'EXECUTE') = 1
BEGIN
DECLARE @databaseName AS nvarchar(2048), @eventMessage AS nvarchar(2048)
SET @databaseName = REPLACE(REPLACE(DB_NAME(), N'\', N'\\'), N'"', N'\"')
SET @eventMessage = N'Redgate SQL Compare: { "deployment": { "description": "Redgate SQL Compare deployed to ' + @databaseName + N'", "database": "' + @databaseName + N'" }}'
EXECUTE sys.xp_logevent 55000, @eventMessage
END
GO
DECLARE @Success AS BIT
SET @Success = 1
SET NOEXEC OFF
IF (@Success = 1) PRINT 'The database update succeeded'
ELSE BEGIN
IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION
PRINT 'The database update failed'
END
GO