ALTER PROCEDURE [dbo].[TR_REQ_ADVANCE_PAYMENT_Confirm] @p_REQ_PAY_ID varchar(15)= NULL, @p_CHECKER_ID varchar(15) = NULL AS BEGIN TRANSACTION DECLARE @ROLE_SIGN VARCHAR(15), @REQ_TYPE VARCHAR(15), @BRANCH_CREATE_TYPE VARCHAR(15) --SET @BRANCH_CREATE_TYPE = (SELECT TOP 1 BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = (SELECT TOP 1 BRANCH_CREATE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@p_REQ_PAY_ID)) --SET @ROLE_SIGN =(SELECT RoleName FROM TL_USER_V2 WHERE TLNANME =@p_CHECKER_ID) SET @ROLE_SIGN =(SELECT TOP 1 RoleName FROM TL_USER WHERE TLNANME =@p_CHECKER_ID) IF(@ROLE_SIGN IS NOT NULL AND @ROLE_SIGN <>'' AND @ROLE_SIGN IN ('TPGD','GDDV','PGD','PTGD','TGD','HDQT','TP','PP','TBP','KTT','GDK','KSV','TC','NVTC','TPTC','PPGD')) BEGIN PRINT @ROLE_SIGN END ELSE BEGIN --SET @ROLE_ID =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@p_USER_LOGIN) SET @ROLE_SIGN =(SELECT TOP 1 RoleName FROM TL_USER_V2 WHERE TLNANME =@ROLE_SIGN) IF(@ROLE_SIGN IS NULL OR @ROLE_SIGN ='') BEGIN SET @ROLE_SIGN =(SELECT TOP 1 ROLE_NEW FROM TL_SYS_ROLE_MAPPING WHERE ROLE_OLD =(SELECT TOP 1 ROLENAME FROM TL_USER WHERE TLNANME=@ROLE_SIGN)) END END SET @REQ_TYPE =(SELECT REQ_TYPE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@p_REQ_PAY_ID AND AUTH_STATUS ='R')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID ,N'Bạn không được phép xác nhận hoặc phê duyệt giao dịch này. Phiếu đề nghị tạm ứng số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+ N' đang được trả về. Vui lòng đợi nhân viên cập nhật thông tin và gửi phê duyệt lại' ErrorDesc RETURN '-1' END -- KIEM TRA NEU PHIEU DA XAC NHAN ROI THI KHONG CHO PHÉP XAC NHAN LAN THU 2 IF(EXISTS(SELECT * FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID=@p_REQ_PAY_ID AND PROCESS ='0')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_REQ_PAY_ID REQ_PAY_ID ,N'Phiếu đề nghị tạm ứng đã được cấp phê duyệt trung gian xác nhận trước đó' ErrorDesc RETURN '-1' END IF(@REQ_TYPE ='I') BEGIN IF(@ROLE_SIGN IN ('GDDV','PP')) BEGIN UPDATE TR_REQ_ADVANCE_PAYMENT SET PROCESS='0' WHERE REQ_PAY_ID =@p_REQ_PAY_ID INSERT INTO PL_PROCESS VALUES (@p_REQ_PAY_ID,'0',@p_CHECKER_ID, GETDATE(),N'Trưởng đơn vị xác nhận phiếu',N'Xác nhận phiếu tạm ứng') END ELSE BEGIN IF((SELECT BRANCH_CREATE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID) ='DV0001') BEGIN INSERT INTO PL_PROCESS VALUES (@p_REQ_PAY_ID,'0',@p_CHECKER_ID, GETDATE(),N'Cấp phê duyệt trung gian xác nhận phiếu',N'Xác nhận phiếu tạm ứng') END ELSE BEGIN UPDATE TR_REQ_ADVANCE_PAYMENT SET PROCESS='0' WHERE REQ_PAY_ID =@p_REQ_PAY_ID INSERT INTO PL_PROCESS VALUES (@p_REQ_PAY_ID,'0',@p_CHECKER_ID, GETDATE(),N'Cấp phê duyệt trung gian xác nhận phiếu',N'Xác nhận phiếu tạm ứng') END END -- NẾU NGƯỜI DUYỆT TRÙNG VỚI CẤP PHÊ DUYỆT TRUNG GIAN THÌ KHÔNG CẦN UPDATE PROCESS_ID UPDATE TR_REQ_ADVANCE_PAYMENT SET PROCESS='' WHERE REQ_PAY_ID =@p_REQ_PAY_ID AND TRASFER_USER_RECIVE =@p_CHECKER_ID AND @REQ_TYPE ='I' AND @BRANCH_CREATE_TYPE ='HS' END ELSE BEGIN UPDATE TR_REQ_ADVANCE_PAYMENT SET PROCESS='0' WHERE REQ_PAY_ID =@p_REQ_PAY_ID INSERT INTO PL_PROCESS VALUES (@p_REQ_PAY_ID,'0',@p_CHECKER_ID, GETDATE(),N'Cấp phê duyệt trung gian xác nhận phiếu',N'Xác nhận phiếu tạm ứng') END COMMIT TRANSACTION SELECT '0' as Result, @p_REQ_PAY_ID REQ_PAY_ID ,N'Phiếu đề nghị tạm ứng số: '+(SELECT REQ_PAY_CODE FROM TR_REQ_ADVANCE_PAYMENT WHERE REQ_PAY_ID =@p_REQ_PAY_ID)+N'đã được cấp phê duyệt trung gian xác nhận thành công! Vui lòng đợi trưởng đơn vị phê duyệt phiếu' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_PAY_ID, '' ErrorDesc RETURN '-1' END