/* 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:07 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'Altering [dbo].[FN_GET_USER_BY_ROLE]' GO ALTER FUNCTION [dbo].[FN_GET_USER_BY_ROLE] ( @ROLE_NAME VARCHAR(MAX), @BRANCH_ID VARCHAR(20) = NULL, @DEPT_ID VARCHAR(20) = NULL) RETURNS @result TABLE ( TLNANME VARCHAR(100), TLFullName NVARCHAR(200), BRANCH_ID VARCHAR(15), DEP_ID VARCHAR(50), ROLE_OLD VARCHAR(100), ROLE_NEW VARCHAR(100), EFF_DATE DATETIME, EXP_DATE DATETIME ) AS BEGIN DECLARE @ROLES TABLE(RoleName VARCHAR(20)) INSERT @ROLES(RoleName) SELECT VALUE FROM wsiSplit(@ROLE_NAME,',') DECLARE @BRANCH_TYPE VARCHAR(15) = (SELECT BRANCH_TYPE FROM dbo.CM_BRANCH WHERE BRANCH_ID = @BRANCH_ID) INSERT INTO @result SELECT * FROM ( SELECT TU.TLNANME, TU.TLFullName, TU.TLSUBBRID AS BRANCH_ID, TU.SECUR_CODE AS DEP_ID, R.DisplayName AS ROLE_OLD, TRM.ROLE_NEW,NULL AS EFF_DATE, NULL AS EXP_DATE FROM dbo.TL_USER TU LEFT JOIN dbo.AbpUserRoles UR ON TU.ID = UR.UserId INNER JOIN dbo.AbpRoles R ON R.Id = UR.RoleId LEFT JOIN (SELECT * FROM dbo.TL_SYS_ROLE_MAPPING RM WHERE RM.TLNAME IS NULL OR RM.TLNAME = '') TRM ON (TRM.ROLE_OLD = R.DisplayName) UNION ALL SELECT TU.TLNANME, TU.TLFullName, RM.BRANCH_ID, RM.DEP_ID, RM.ROLE_OLD, RM.ROLE_NEW, RM.EFF_DATE,RM.EXP_DATE FROM dbo.TL_USER TU LEFT JOIN dbo.TL_SYS_ROLE_MAPPING RM ON TU.TLNANME = RM.TLNAME WHERE CAST(RM.EXP_DATE AS DATE) >= CAST(GETDATE() AS DATE) ) TMP WHERE 1 = 1 AND ((TMP.ROLE_OLD IN (SELECT * FROM @ROLES) OR TMP.ROLE_NEW IN (SELECT * FROM @ROLES)) OR @ROLE_NAME IS NULL OR @ROLE_NAME = '') AND ((@BRANCH_TYPE = 'HS' AND TMP.BRANCH_ID = @BRANCH_ID AND TMP.DEP_ID = @DEPT_ID) OR (@BRANCH_TYPE <> 'HS' AND TMP.BRANCH_ID = @BRANCH_ID) OR (@BRANCH_ID IS NULL OR @BRANCH_ID = '') ) RETURN; END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[ASS_COLLECT_CONFIRM_MASTER_Ins]' GO ALTER PROCEDURE [dbo].[ASS_COLLECT_CONFIRM_MASTER_Ins] @p_BRANCH_ID varchar(15) = NULL, @p_DEP_ID varchar(15) = NULL, @p_COLLECT_DT VARCHAR(20) = NULL, @p_USER_COLLECT nvarchar(200) = NULL, @p_MAKER_ID varchar(100) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_COL_MULTI_MASTER_ID varchar(20) = null AS IF(EXISTS(SELECT 1 FROM ASS_COLLECT_CONFIRM_MASTER WHERE COL_MULTI_MASTER_ID = @p_COL_MULTI_MASTER_ID)) BEGIN SELECT '-1' as Result, N'Phiếu thu hồi đã được xác nhận' ErrorDesc RETURN '-1' END BEGIN TRANSACTION DECLARE @l_COL_MULTI_MASTER_CONFIRM_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'ASS_COLLECT_CONFIRM_MASTER', @l_COL_MULTI_MASTER_CONFIRM_ID out IF @l_COL_MULTI_MASTER_CONFIRM_ID='' OR @l_COL_MULTI_MASTER_CONFIRM_ID IS NULL GOTO ABORT INSERT INTO ASS_COLLECT_CONFIRM_MASTER ( [COL_MULTI_MASTER_CONFIRM_ID], [COL_MULTI_MASTER_ID], [BRANCH_ID], [DEP_ID], [COLLECT_DT], [MAKER_ID], [CONFIRM_DT], [CONFIRM_STATUS] ) VALUES ( @l_COL_MULTI_MASTER_CONFIRM_ID, @p_COL_MULTI_MASTER_ID , @p_BRANCH_ID, @p_DEP_ID, CONVERT(DATETIME, @p_COLLECT_DT, 103), @p_MAKER_ID, GETDATE(), 'Y' ) IF @@Error <> 0 GOTO ABORT -- 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, 'CONFIRM', @p_MAKER_ID, GETDATE(), N'Xác nhận phiếu thu hồi tài sản ' , N'Xác nhận phiếu thu hồi tài sản thành công' ) COMMIT TRANSACTION SELECT '0' as Result, @l_COL_MULTI_MASTER_CONFIRM_ID CONFIRM_COL_MULTI_MASTER_ID,@p_COL_MULTI_MASTER_ID COL_MULTI_MASTER_ID, N'Xác nhận bàn giao tài sản thu hồi thành công' ErrorDesc RETURN '0' ABORT: BEGIN CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION SELECT '-1' as Result, '' CONFIRM_COL_MULTI_MASTER_ID, '' ErrorDesc RETURN '-1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[CM_DEPARTMENT_Upd]' GO ALTER PROCEDURE [dbo].[CM_DEPARTMENT_Upd] @p_DEP_ID varchar(15) = null , @p_DEP_CODE varchar(15) = NULL , @p_DEP_NAME nvarchar(200) = NULL , @p_DAO_CODE varchar(40) = NULL , @p_DAO_NAME nvarchar(500) = NULL , @p_BRANCH_ID varchar(15) = NULL , @p_GROUP_ID varchar(15) = NULL , @p_TEL varchar(20) = 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_CHECKER_ID varchar(12) = NULL , @p_APPROVE_DT VARCHAR(20) = NULL, @p_FATHER_ID VARCHAR(15) = NULL, @p_KHOI_ID VARCHAR(20)=NULL, @p_TYPE VARCHAR(5) = NULL AS --Validation is here DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( NOT EXISTS ( SELECT * FROM CM_DEPARTMENT WHERE DEP_ID = @p_DEP_ID)) SET @ERRORSYS = '' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END --Start Phucvh: 23/09/22 Check trùng DEP_CODE IF ( EXISTS ( SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE = @p_DEP_CODE and DEP_ID <> @p_DEP_ID)) BEGIN SELECT '' Result, '' ID, N'Mã phòng đã tồn tại' ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END --End Phucvh: 23/09/22 Check trùng DEP_CODE IF(@p_TYPE = 'TT') BEGIN SET @p_FATHER_ID = NULL --CHECK MAPPING KHỐI VÀ ĐV IF(NOT EXISTS(SELECT cd.BRANCH_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_ID = @p_KHOI_ID AND cd.BRANCH_ID = @p_BRANCH_ID)) BEGIN --ROLLBACK TRANSACTION SELECT '' Result, '' ID, N'Khối không trực thuộc đơn vị' ErrorDesc RETURN '0' END END ELSE IF(@p_TYPE = 'PB') BEGIN --CHECK MAPPING DV,KHỐI,TRUNG TÂM IF(@p_FATHER_ID IS NOT NULL AND @p_FATHER_ID <> '') BEGIN IF(NOT EXISTS(SELECT cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_ID = @p_KHOI_ID AND cd.BRANCH_ID = @p_BRANCH_ID AND cd.DEP_ID IN (SELECT cd.KHOI_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_ID = @p_FATHER_ID))) BEGIN --ROLLBACK TRANSACTION SELECT '' Result, '' ID, N'Khối, Trung tâm, Đơn vị phải trực thuộc nhau' ErrorDesc RETURN '0' END END ELSE IF(NOT EXISTS(SELECT cd.BRANCH_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_ID = @p_KHOI_ID AND cd.BRANCH_ID = @p_BRANCH_ID)) BEGIN --ROLLBACK TRANSACTION SELECT '' Result, '' ID, N'Khối không trực thuộc đơn vị' ErrorDesc RETURN '0' END END BEGIN TRANSACTION UPDATE CM_DEPARTMENT SET [DEP_CODE] = @p_DEP_CODE,[DEP_NAME] = @p_DEP_NAME, [DAO_CODE] = @p_DAO_CODE,[DAO_NAME] = @p_DAO_NAME,[BRANCH_ID] = @p_BRANCH_ID,[GROUP_ID] = @p_GROUP_ID, [TEL] = @p_TEL,[NOTES] = @p_NOTES,[RECORD_STATUS] = @p_RECORD_STATUS,[KHOI_ID]=@p_KHOI_ID, [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), [FATHER_ID] = @p_FATHER_ID, [TYPE] = @p_TYPE WHERE DEP_ID= @p_DEP_ID IF @@Error <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, @p_DEP_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_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 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 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_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 NULL OR A.ASS_STATUS = '' THEN ASS.STATUS_NAME ELSE ASS2.STATUS_NAME END AS ASS_STATUS_NAME, --Tinh trang tai san 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 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 --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)) --Put valodation here --THIEUVQ 11/07/2014 /***********LAY BRANCH_ID CUA USER THUC HIEN CHAY KHAU HAO**************/ SELECT @l_BRANCH_ID_DO = TLSUBBRID FROM TL_USER WHERE TLNANME = @p_MAKER_ID IF @l_BRANCH_ID_DO = '' OR @l_BRANCH_ID_DO IS NULL BEGIN SET @ERRORSYS = 'ASS-AMR-0005' GOTO THROW_ERR END --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 --IF @l_BRANCH_TYPE_DO = 'PGD' OR @l_BRANCH_TYPE_DO IS NULL --BEGIN -- SET @ERRORSYS = 'ASS-AMR-1006' -- GOTO THROW_ERR --END --11/07/2014 ----------------BO DUNG DANH SACH PGD DUOC CN PHAN BO GIUM THIEUVQ - 28092016------------------ IF @p_BRANCH_ID_LST IS NOT NULL AND @l_BRANCH_TYPE_DO = 'CN' BEGIN Declare @hdoc INT Exec sp_xml_preparedocument @hdoc Output, @p_BRANCH_ID_LST INSERT INTO @LST_BRANCH SELECT * FROM OPENXML(@hdoc,'/Root/BRANCHLIST',2) WITH ( BRANCH_ID varchar(15), BRANCH_CODE varchar(15) ) END ----------------------------------------------------------------------------------------------- /******** 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 ----------------BO DUNG DANH SACH PGD DUOC CN PHAN BO GIUM THIEUVQ - 28092016------------------ IF @l_BRANCH_TYPE_DO = 'CN' BEGIN DECLARE @LSTERROR VARCHAR(500) = '' SELECT @LSTERROR = @LSTERROR + B.BRANCHCODE + ';' FROM ASS_AMORT A LEFT JOIN @LST_BRANCH B ON B.BRANCHID = A.BRANCH_ID WHERE A.AMORT_TERM = @l_AMORT_TERM AND A.BRANCH_ID IN (SELECT BRANCHID FROM @LST_BRANCH) IF LEN(@LSTERROR) > 0 BEGIN CLOSE cur DEALLOCATE cur SELECT '-1' Result, N'PGD sau đã tự chạy phân bổ: ' + @LSTERROR 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 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, N'PGD sau đã tự chạy phân bổ: ' + @LSTERROR, GETDATE()); RETURN '0' END END ELSE BEGIN IF @l_BRANCH_TYPE_DO = 'PGD' BEGIN IF EXISTS(SELECT 1 FROM ASS_AMORT_BRN A WHERE A.AMORT_TERM = @l_AMORT_TERM AND A.BRANCH_ID = @l_BRANCH_ID_DO) BEGIN SET @ERRORSYS = 'ASS-AMR-0007' GOTO THROW_ERR END END END END /***** Ngay thuc thi khau hao phai lon hon ngay chay cuoi cung da chay *****/ --IF EXISTS(SELECT 1 FROM ASS_AMORT A WHERE convert(date,A.EXECUTE_DT) > convert(date,@sExecDT)) --BEGIN -- SET @ERRORSYS = 'ASS-AMR-0004' -- GOTO THROW_ERR --END /************ Kiem tra cac tai khoan hach toan trong bang ASS_GROUP ******/ 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 -- AND (A.BRANCH_ID = @l_BRANCH_ID_DO -- OR (@p_ASSET_TYPE = 'TSCD') -- OR (@l_BRANCH_TYPE_DO = 'CN' --NEU LA CN THI PHAN BO LUON CHO PGD THUOC CHI NHANH DO -- --AND A.BRANCH_ID IN (SELECT * FROM [dbo].[CM_BRANCH_GETCHILDID](@l_BRANCH_ID_DO)))) --THIEUVQ -- AND A.BRANCH_ID IN (SELECT BRANCHID FROM @LST_BRANCH))) --THIEUVQ CHINH SUA 28092016 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 ) ----------------BO DUNG DANH SACH PGD DUOC CN PHAN BO GIUM THIEUVQ - 28092016------------------ IF @l_BRANCH_TYPE_DO = 'CN' BEGIN INSERT INTO ASS_AMORT_BRN SELECT @l_AMORT_ID, @l_AMORT_TERM, BRANCHID FROM @LST_BRANCH END ----------------------------------------------------------------------------------------------- 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 --SET @l_DESC = N'Khấu hao kỳ ' + @l_AMORT_TERM 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 '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 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) 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) 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) 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) 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) BEGIN SET @l_AMT_OVER = @l_CURR_AMORT_AMT - @l_MONTHLY_AMT END END --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) 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_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_CURR_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_CURR_AMORT_AMT-@l_AMT_OVER, @l_ASSET_CODE,@sExecDT, @p_MAKER_ID, @p_CHECKER_ID, @DEP_CODE, @l_DESC_CORE); 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_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) EXEC ENTRIES_POST_GEN_NO @p_BRANCH_ID = @l_BRANCH_CREATE ,@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_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_COST_ALLOCATION_Byid]' GO ALTER PROC [dbo].[ASS_COST_ALLOCATION_Byid] @p_COS_ID VARCHAR(15) AS SELECT A.*,B.BRANCH_CODE, B.BRANCH_NAME, ISNULL(C.DEP_CODE,B.BRANCH_CODE) DEP_CODE, ISNULL(C.DEP_NAME,B.BRANCH_NAME) DEP_NAME FROM ASS_COST_ALLOC_DT A LEFT JOIN CM_BRANCH B ON A.BRANCH_ID = B.BRANCH_ID LEFT JOIN CM_DEPARTMENT C ON A.DEPT_ID = C.DEP_ID WHERE 1=1 AND(A.COS_ID =@p_COS_ID) AND A.RECORD_STATUS <>'D' 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 @tmp1 table(BRANCH_ID varchar(15)) insert into @tmp1 SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID) declare @tmp2 table(BRANCH_ID varchar(15)) insert into @tmp2 SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN) --IF @p_TOP = '' SET @p_TOP = 1000000 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 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 -- 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' 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 -- 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' 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].[ASS_INVENTORY_MASTER_SendApp]' GO ALTER PROC [dbo].[ASS_INVENTORY_MASTER_SendApp] @p_INVENT_ID VARCHAR(20), @p_USERLOGIN VARCHAR(50), @p_TYPE VARCHAR(15), @p_AUTH_STATUS VARCHAR(1) AS BEGIN TRANSACTION IF(EXISTS(SELECT INVENT_ID FROM dbo.ASS_INVENTORY_MASTER WHERE INVENT_ID = @p_INVENT_ID AND AUTH_STATUS = @p_AUTH_STATUS ) ) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result , '' INVENT_ID, N'Phiếu kiểm kê đã được gửi phê duyệt trước đó.' ErrorDesc RETURN '-1' END IF (NOT EXISTS (SELECT INVENT_ID FROM ASS_INVENTORY_PARTY_DT WHERE INVENT_ID = @p_INVENT_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result , '' INVENT_ID, N'Danh sách thành phần kiểm kê không được để trống.' ErrorDesc RETURN '-1' END IF (NOT EXISTS (SELECT aim.INVENT_ID FROM ASS_INVENTORY_MASTER aim WHERE aim.INVENT_ID = @p_INVENT_ID AND aim.SIGN_USER IS NOT NULL AND aim.SIGN_USER <> '')) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result , '' INVENT_ID, N'Vui lòng chọn kiểm soát viên rà soát dữ liệu trước khi kiểm kê.' ErrorDesc RETURN '-1' END IF (NOT EXISTS (SELECT INVENT_ID FROM ASS_INVENTORY_PARTY_DT WHERE INVENT_ID = @p_INVENT_ID AND IS_MAIN = '1')) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result , '' INVENT_ID, N'Danh sách thành phần kiểm kê phải có ít nhất một trưởng bản kiểm kê.' ErrorDesc RETURN '-1' END IF (NOT EXISTS (SELECT INVENT_ID FROM ASS_INVENTORY_PARTY_DT WHERE INVENT_ID = @p_INVENT_ID AND IS_RECIVE_MAIL = '1' AND IS_MAIN <> '1')) BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result , '' INVENT_ID, N'Danh sách thành phần kiểm kê phải có ít nhất 1 người nhận mail ngoại trừ trưởng ban.' ErrorDesc RETURN '-1' END DECLARE @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20), @MAKER_ID VARCHAR(100) UPDATE ASS_INVENTORY_MASTER SET AUTH_STATUS = @p_AUTH_STATUS, AUTH_STATUS_DVKD = @p_AUTH_STATUS, PROCESS_ID='DKK' WHERE INVENT_ID = @p_INVENT_ID SELECT @BRANCH_ID =TLSUBBRID,@DEP_ID=SECUR_CODE FROM dbo.TL_USER WHERE TLNANME=@p_USERLOGIN SET @MAKER_ID = (SELECT aim.MAKER_ID FROM ASS_INVENTORY_MASTER aim WHERE aim.INVENT_ID = @p_INVENT_ID) DELETE FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_INVENT_ID IF(EXISTS(SELECT * FROM ASS_INVENTORY_MASTER WHERE INVENT_ID = @p_INVENT_ID AND SIGN_USER IS NOT NULL AND SIGN_USER <>'')) BEGIN DECLARE @BRANCH_SIGN_ID VARCHAR(20),@DEP_SIGN_ID VARCHAR(20),@BRANCH_SIGN_TYPE VARCHAR(10),@SIGN_NAME VARCHAR(20) SELECT @BRANCH_SIGN_ID=TLSUBBRID,@DEP_SIGN_ID=SECUR_CODE,@BRANCH_SIGN_TYPE=BRANCH_TYPE, @SIGN_NAME = TLNANME FROM dbo.TL_USER WHERE TLNANME =(SELECT SIGN_USER FROM ASS_INVENTORY_MASTER WHERE INVENT_ID = @p_INVENT_ID) UPDATE ASS_INVENTORY_MASTER SET PROCESS_ID='SIGN' WHERE INVENT_ID = @p_INVENT_ID INSERT INTO dbo.PL_REQUEST_PROCESS ( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, DEP_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES, IS_HAS_CHILD, PROCESS_TYPE ) VALUES ( @p_INVENT_ID, -- REQ_ID - varchar(15) 'SIGN', -- PROCESS_ID - varchar(10) 'C', -- STATUS - varchar(5) @SIGN_NAME, -- ROLE_USER - varchar(50) @BRANCH_SIGN_ID, CASE WHEN @BRANCH_SIGN_TYPE='HS' THEN @DEP_SIGN_ID ELSE '' END, -- BRANCH_ID - varchar(15) '', -- CHECKER_ID - varchar(15) NULL, -- APPROVE_DT - datetime '', -- PARENT_PROCESS_ID - varchar(10) 'N', -- IS_LEAF - varchar(1) '', -- COST_ID - varchar(15) '', -- DVDM_ID - varchar(15) N'Chờ kiểm soát viên xác nhận phiếu', -- NOTES - nvarchar(500) NULL, -- IS_HAS_CHILD - bit 'Approve' ) INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_INVENT_ID, 'SEND', @p_USERLOGIN, GETDATE(), N'Nhân viên tạo phiếu gửi kiểm soát viên xác nhận phiếu' , N'Nhân viên gửi phê duyệt' ) END ELSE BEGIN INSERT INTO dbo.PL_REQUEST_PROCESS ( REQ_ID, PROCESS_ID, STATUS, ROLE_USER, BRANCH_ID, DEP_ID, CHECKER_ID, APPROVE_DT, PARENT_PROCESS_ID, IS_LEAF, COST_ID, DVDM_ID, NOTES, IS_HAS_CHILD, PROCESS_TYPE ) VALUES ( @p_INVENT_ID, -- REQ_ID - varchar(15) 'DKK', -- PROCESS_ID - varchar(10) 'C', -- STATUS - varchar(5) @MAKER_ID, -- ROLE_USER - varchar(50) @BRANCH_ID, @DEP_ID, -- BRANCH_ID - varchar(15) '', -- CHECKER_ID - varchar(15) NULL, -- APPROVE_DT - datetime '', -- PARENT_PROCESS_ID - varchar(10) 'N', -- IS_LEAF - varchar(1) '', -- COST_ID - varchar(15) '', -- DVDM_ID - varchar(15) -- N'Chờ trưởng đơn vị phê duyệt', -- NOTES - nvarchar(500) N'Đang kiểm kê' , NULL, -- IS_HAS_CHILD - bit 'Update' ) INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_INVENT_ID, 'SEND', @p_USERLOGIN, GETDATE(), N'Bắt đầu thực hiện kiểm kê' , N'Nhân viên gửi phê duyệt' ) END IF @@Error <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result,'' REQ_CODE,''REQ_ID, N'Phiếu kiểm kê: '+(SELECT INVENT_ID FROM ASS_INVENTORY_MASTER WHERE INVENT_ID = @p_INVENT_ID)+N' đã được gửi phê duyệt thành công.' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result,'' REQ_CODE,''REQ_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[CM_BRANCH_DEP_Search]' GO ALTER PROCEDURE [dbo].[CM_BRANCH_DEP_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_DEP_NAME NVARCHAR(500)=NULL, @p_DEP_CODE VARCHAR(20) =NULL, @p_DEP_ID VARCHAR(20) = NULL 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 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,CD.DEP_CODE,CD.DEP_NAME,CD.DEP_ID, CD.TYPE AS DEP_TYPE, (CASE WHEN CD.TYPE = 'K' THEN (SELECT CD.DEP_ID) ELSE (SELECT CD.KHOI_ID) END) AS BLOCK_ID,--MÃ KHỐI CASE WHEN CD.TYPE = 'K' THEN (SELECT CD.DEP_NAME) ELSE (SELECT A1.DEP_NAME FROM CM_DEPARTMENT A1 WHERE A1.DEP_ID = CD.KHOI_ID) END AS BLOCK_NAME,--TÊN KHỐI CASE WHEN CD.TYPE = 'TT' THEN(SELECT CD.DEP_ID) ELSE (SELECT CD.FATHER_ID) END AS CENTER_ID,--MÃ TRUNG TÂM CASE WHEN CD.TYPE = 'TT' THEN CD.DEP_NAME ELSE (SELECT A1.DEP_NAME FROM CM_DEPARTMENT A1 WHERE A1.DEP_ID = CD.FATHER_ID) END AS CENTER_NAME,--TÊN TRUNG TÂM CASE WHEN CD.TYPE = 'PB' THEN CD.DEP_ID END AS DEPT_ID_1,--MÃ PHÒNG BAN CASE WHEN CD.TYPE = 'PB' THEN (SELECT CD.DEP_NAME) END AS DEP_NAME_1 --TÊN PHÒNG BAN -- SELECT END FROM CM_BRANCH A LEFT JOIN CM_BRANCH B ON A.FATHER_ID = B.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT CD ON CD.BRANCH_ID=A.BRANCH_ID AND A.BRANCH_TYPE='HS' 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 = '' OR CD.DEP_CODE LIKE '%' +@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 = '' OR CD.DEP_NAME COLLATE Latin1_general_CI_AI LIKE N'%' + @p_BRANCH_NAME + N'%' COLLATE Latin1_general_CI_AI) AND (A.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '') AND (A.BRANCH_TYPE LIKE '%' + @p_BRANCH_TYPE + '%' 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 = '1' AND ((A.BRANCH_ID IN (SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_LOGIN)) OR @p_BRANCH_LOGIN IS NULL OR @p_BRANCH_LOGIN = '')) 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,CD.DEP_CODE,CD.DEP_NAME,CD.DEP_ID,CD.TYPE AS DEP_TYPE ,(CASE WHEN CD.TYPE = 'K' THEN (SELECT CD.DEP_ID) ELSE (SELECT CD.KHOI_ID) END) AS BLOCK_ID,--MÃ KHỐI CASE WHEN CD.TYPE = 'K' THEN (SELECT CD.DEP_NAME) ELSE (SELECT A1.DEP_NAME FROM CM_DEPARTMENT A1 WHERE A1.DEP_ID = CD.KHOI_ID) END AS BLOCK_NAME,--TÊN KHỐI CASE WHEN CD.TYPE = 'TT' THEN(SELECT CD.DEP_ID) ELSE (SELECT CD.FATHER_ID) END AS CENTER_ID,--MÃ TRUNG TÂM CASE WHEN CD.TYPE = 'TT' THEN CD.DEP_NAME ELSE (SELECT A1.DEP_NAME FROM CM_DEPARTMENT A1 WHERE A1.DEP_ID = CD.FATHER_ID) END AS CENTER_NAME,--TÊN TRUNG TÂM CASE WHEN CD.TYPE = 'PB' THEN CD.DEP_ID END AS DEPT_ID_1,--MÃ PHÒNG BAN CASE WHEN CD.TYPE = 'PB' THEN (SELECT CD.DEP_NAME) END AS DEP_NAME_1 --TÊN PHÒNG BAN -- SELECT END FROM CM_BRANCH A LEFT JOIN CM_BRANCH B ON A.FATHER_ID = B.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT CD ON CD.BRANCH_ID=A.BRANCH_ID AND A.BRANCH_TYPE='HS' 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 = '' OR CD.DEP_CODE LIKE '%' +@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 = '' OR CD.DEP_NAME COLLATE Latin1_general_CI_AI LIKE N'%' + @p_BRANCH_NAME + N'%' COLLATE Latin1_general_CI_AI) AND (A.REGION_ID LIKE '%' + @p_REGION_ID + '%' OR @p_REGION_ID IS NULL OR @p_REGION_ID = '') AND (A.BRANCH_TYPE LIKE '%' + @p_BRANCH_TYPE + '%' 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 = '1' AND ((A.BRANCH_ID IN (SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID] (@p_BRANCH_LOGIN)) OR @p_BRANCH_LOGIN IS NULL OR @p_BRANCH_LOGIN = '')) ORDER BY A.BRANCH_CODE -- PAGING END END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[rpt_TSCD_BC017_Excel_BanViet]' GO ALTER PROCEDURE [dbo].[rpt_TSCD_BC017_Excel_BanViet] -- Add the parameters for the stored procedure here @p_BRANCH_ID varchar(30) = NULL, @p_FromDate varchar(30) = 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 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, --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 L.APPROVE_DT_KT NGAY_TL, -- --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_AMT_BE_VAT - LD.REMAIN_VALUE) LAI_LO, LD.LIQ_PRICE AS GT_TL, L.BUY_COMPANY_ID, -- DON VI MUA CASE WHEN M.BRANCH_ID <>'' THEN BR.BRANCH_NAME ELSE BR_CR.BRANCH_NAME END DVSD, -- DON VI SU DUNG CASE WHEN M.BRANCH_ID <>'' THEN BR.BRANCH_CODE ELSE BR_CR.BRANCH_CODE END BRANCH_CODE, -- DON VI SU DUNG DP.DEP_NAME PHONGBAN_SD,DP.DEP_CODE, -- PHONG BAN SU DUNG M.AMORT_START_DATE NGAYBD_KHPB, -- NGAY BAT DAU KHAU HAO PHAN BO M.AMORT_MONTH THOIGIAN_KH,-- THOI GIAN KHAU HAO PHAN BO M.AMORT_MONTH - (M.AMORTIZED_MONTH - ISNULL(AMT.ST_KH_PD_TAM,0)) SOTHANG_KH_CL ,-- SO THANG HAU HAO CON LAI, M.BRANCH_CREATE, M.BRANCH_ID 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 LEFT JOIN CM_BRANCH BR ON M.BRANCH_ID = BR.BRANCH_ID LEFT JOIN CM_BRANCH BR_CR ON M.BRANCH_CREATE = BR_CR.BRANCH_ID LEFT JOIN CM_DEPARTMENT DP ON M.DEPT_ID = DP.DEP_ID -- TINH SO THANG DA KHAU HAO = AMORTED_MONTH - SỐ THÁNG ĐÃ KHẤU HAO : AMORT_DT > TO_DATE LEFT JOIN ( --SELECT AM_DT.ASSET_ID, ISNULL(SUM(ISNULL(AM_DT.AMORT_AMT,0)),0) AS ST_DA_PB FROM ASS_AMORT_DT AM_DT SELECT AM_DT.ASSET_ID, ISNULL(COUNT (*),0) AS ST_KH_PD_TAM FROM ASS_AMORT_DT AM_DT WHERE CONVERT(DATE,AM_DT.AMORT_DT) > CONVERT(DATE,@p_ToDate,103) AND AM_DT.CRDR='C' GROUP BY AM_DT.ASSET_ID ) AMT ON AMT.ASSET_ID = M.ASSET_ID -- END -- SELECT * FROM ASS_LIQUIDATION WHERE --(M.BRANCH_ID = @p_BRANCH_ID OR @p_BRANCH_ID IS NULL OR @p_BRANCH_ID = '') --LUCTV: 26-12-2018: CHUYEN TU APPROVE HANH CHINH SANG APPROVE KE TOAN --LUCTV : 03-12-2018: CHI LAY NHUNG THANH LY DA DUOC DUYET (L.AUTH_STATUS_KT='A') AND(CONVERT(datetime,L.APPROVE_DT_KT,103)>= CONVERT(datetime, @p_FromDate, 103) OR @p_FromDate IS NULL OR @p_FromDate = '') AND (CONVERT(datetime,L.APPROVE_DT_KT,103)<= 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 = '') -- PHAN QUYEN --AND ((@p_LEVEL = 'ALL' AND M.BRANCH_ID IN (select BRANCH_ID from @tmp) or M.BRANCH_ID='' or M.BRANCH_ID is null ) --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 M.BRANCH_ID='' or M.BRANCH_ID is null) --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 <> '') --LUCTV: 04-12-2019 : BỔ SUNG THÊM NẾU CHƯA XUẤT SỬ DỤNG THÌ LỌC TÀI SẢN THEO ĐƠN VỊ TẠO --AND ((@p_LEVEL = 'ALL' AND M.BRANCH_ID IN (select BRANCH_ID from @tmp) OR (M.BRANCH_ID IS NULL OR M.BRANCH_ID ='' AND M.BRANCH_CREATE IN(SELECT BRANCH_ID FROM @tmp))) --OR (@p_LEVEL = 'UNIT' AND M.BRANCH_ID = @p_BRANCH_ID OR (M.BRANCH_ID IS NULL OR M.BRANCH_ID ='' AND M.BRANCH_CREATE = @p_BRANCH_ID))) --AND ((@p_LEVEL = 'ALL' AND M.BRANCH_ID IN (select BRANCH_ID from @tmp_login) OR (M.BRANCH_ID IS NULL OR M.BRANCH_ID ='' AND M.BRANCH_CREATE IN (SELECT BRANCH_ID FROM @tmp_login))) --OR (@p_LEVEL = 'UNIT' AND M.BRANCH_ID = @p_BRANCH_LOGIN OR (M.BRANCH_ID IS NULL OR M.BRANCH_ID ='' AND M.BRANCH_CREATE =@p_BRANCH_LOGIN))) AND ((@p_LEVEL = 'ALL' AND (M.BRANCH_ID IN (select BRANCH_ID from @tmp) OR (M.BRANCH_ID ='' AND M.BRANCH_CREATE IN (SELECT BRANCH_ID FROM @tmp)))) OR (@p_LEVEL = 'UNIT' AND((M.BRANCH_ID ='' AND M.BRANCH_CREATE = @p_BRANCH_ID) OR M.BRANCH_ID = @p_BRANCH_ID))) --AND ((@p_LEVEL = 'ALL' AND (M.BRANCH_ID IN (select BRANCH_ID from @tmp_login) OR (M.BRANCH_ID ='' AND M.BRANCH_CREATE IN (SELECT BRANCH_ID FROM @tmp_login)))) --luctv 01/01/19 bo dieu kien Unit di vi dieu kien nay bi sai. --OR (@p_LEVEL = 'UNIT' AND((M.BRANCH_ID ='' AND M.BRANCH_CREATE = @p_BRANCH_LOGIN)OR M.BRANCH_ID =@p_BRANCH_LOGIN)) --) AND ((M.BRANCH_ID IN (select BRANCH_ID from @tmp_login) OR (M.BRANCH_ID ='' AND M.BRANCH_CREATE IN (SELECT BRANCH_ID FROM @tmp_login)))) --@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 IF( SELECT COUNT(M.BRANCH_ID) 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 LEFT JOIN CM_BRANCH BR ON M.BRANCH_ID = BR.BRANCH_ID LEFT JOIN CM_BRANCH BR_CR ON M.BRANCH_CREATE = BR_CR.BRANCH_ID LEFT JOIN CM_DEPARTMENT DP ON M.DEPT_ID = DP.DEP_ID LEFT JOIN ( SELECT AM_DT.ASSET_ID, ISNULL(COUNT (*),0) AS ST_KH_PD_TAM FROM ASS_AMORT_DT AM_DT WHERE CONVERT(DATE,AM_DT.AMORT_DT) > CONVERT(DATE,@p_ToDate,103) AND AM_DT.CRDR='C' GROUP BY AM_DT.ASSET_ID ) AMT ON AMT.ASSET_ID = M.ASSET_ID WHERE (L.AUTH_STATUS_KT='A') AND(CONVERT(datetime,L.APPROVE_DT_KT,103)>= CONVERT(datetime, @p_FromDate, 103) OR @p_FromDate IS NULL OR @p_FromDate = '') AND (CONVERT(datetime,L.APPROVE_DT_KT,103)<= 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 ((@p_LEVEL = 'ALL' AND (M.BRANCH_ID IN (select BRANCH_ID from @tmp) OR (M.BRANCH_ID ='' AND M.BRANCH_CREATE IN (SELECT BRANCH_ID FROM @tmp)))) OR (@p_LEVEL = 'UNIT' AND((M.BRANCH_ID ='' AND M.BRANCH_CREATE = @p_BRANCH_ID) OR M.BRANCH_ID = @p_BRANCH_ID))) AND ((M.BRANCH_ID IN (select BRANCH_ID from @tmp_login) OR (M.BRANCH_ID ='' AND M.BRANCH_CREATE IN (SELECT BRANCH_ID FROM @tmp_login)))) GROUP BY M.BRANCH_ID) = 1 BEGIN SELECT TOP 1 L.MAKER_ID_KT AS GDV, L.CHECKER_ID_KT AS KSV 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 LEFT JOIN CM_BRANCH BR ON M.BRANCH_ID = BR.BRANCH_ID LEFT JOIN CM_BRANCH BR_CR ON M.BRANCH_CREATE = BR_CR.BRANCH_ID LEFT JOIN CM_DEPARTMENT DP ON M.DEPT_ID = DP.DEP_ID LEFT JOIN ( SELECT AM_DT.ASSET_ID, ISNULL(COUNT (*),0) AS ST_KH_PD_TAM FROM ASS_AMORT_DT AM_DT WHERE CONVERT(DATE,AM_DT.AMORT_DT) > CONVERT(DATE,@p_ToDate,103) AND AM_DT.CRDR='C' GROUP BY AM_DT.ASSET_ID ) AMT ON AMT.ASSET_ID = M.ASSET_ID WHERE (L.AUTH_STATUS_KT='A') AND(CONVERT(datetime,L.APPROVE_DT_KT,103)>= CONVERT(datetime, @p_FromDate, 103) OR @p_FromDate IS NULL OR @p_FromDate = '') AND (CONVERT(datetime,L.APPROVE_DT_KT,103)<= 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 ((@p_LEVEL = 'ALL' AND (M.BRANCH_ID IN (select BRANCH_ID from @tmp) OR (M.BRANCH_ID ='' AND M.BRANCH_CREATE IN (SELECT BRANCH_ID FROM @tmp)))) OR (@p_LEVEL = 'UNIT' AND((M.BRANCH_ID ='' AND M.BRANCH_CREATE = @p_BRANCH_ID) OR M.BRANCH_ID = @p_BRANCH_ID))) AND ((M.BRANCH_ID IN (select BRANCH_ID from @tmp_login) OR (M.BRANCH_ID ='' AND M.BRANCH_CREATE IN (SELECT BRANCH_ID FROM @tmp_login)))) END 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 --- 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(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 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 --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) 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 --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].[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 VARCHAR(200) = NULL, @p_ACC_NUM_OUT VARCHAR(100) = NULL, @p_ACC_NAME_OUT VARCHAR(100) = NULL, @p_BANK_NAME_OUT VARCHAR(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_USE_MULTI_BVB_MASTER_Ins]' GO ALTER PROCEDURE [dbo].[ASS_USE_MULTI_BVB_MASTER_Ins] @p_BRANCH_ID varchar(15) = NULL, @p_USE_EXPORT_DT VARCHAR(20) = NULL, @p_USER_EXPORT 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_DEP_ID VARCHAR(15) = NULL, @p_CONTENT NVARCHAR(200) = NULL, --NỘI DUNG TỜ TRÌNH @p_XmlData XML = NULL AS /* --Validation is here DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( NOT EXISTS ( SELECT * FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID=@p_USER_MASTER_ID SET @ERRORSYS = '' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' USER_MASTER_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END */ --LUCTV - KHAI BAO SO THANG KHAU HAO MIN, MAX CUA TAI SAN DECLARE @NHOMTS VARCHAR(15) DECLARE @MIN_AMR INT, @MAX_AMR INT, @INDEX INT SET @INDEX=0 --END DECLARE @ASSET_ID varchar(15), @BRANCH_ID varchar(15), @DEPT_ID varchar(15), @EMP_ID varchar(15), @DIVISION_ID varchar(15), @AMORT_START_DATE VARCHAR(20), @AMORT_MONTH decimal(18), @AMORT_END_DATE VARCHAR(20), @CORE_NOTE nvarchar(500), @NOTES nvarchar(1000), @DEPT_CREATE VARCHAR(15) = (SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME = @p_MAKER_ID), --Phucvh 06/10/22 Bổ sung Khối, Trung tâm @SUBBRANCH_ID VARCHAR(15), @FATHER_ID VARCHAR(15), @REQ_ID VARCHAR(15), @NUM_REPORT NVARCHAR(200) --Số tờ trình 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), DEPT_ID varchar(15), DIVISION_ID varchar(15), EMP_ID varchar(15), AMORT_START_DATE VARCHAR(20), AMORT_MONTH decimal(18), AMORT_END_DATE VARCHAR(20), CORE_NOTE nvarchar(500), NOTES nvarchar(1000), --Phucvh 06/10/22 Bổ sung Khối, Trung tâm SUBBRANCH_ID VARCHAR(15), FATHER_ID VARCHAR(15), REQ_ID VARCHAR(15), NUM_REPORT NVARCHAR(200) --Số tờ trình ) OPEN XmlData BEGIN TRANSACTION DECLARE @l_USER_MASTER_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'ASS_USE_MULTI_MASTER', @l_USER_MASTER_ID out IF @l_USER_MASTER_ID='' OR @l_USER_MASTER_ID IS NULL GOTO ABORT INSERT INTO ASS_USE_MULTI_MASTER([USER_MASTER_ID],[BRANCH_ID],[USE_EXPORT_DT],[USER_EXPORT],[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],DEP_ID,BRANCH_CREATE,CONTENT) VALUES(@l_USER_MASTER_ID,@p_BRANCH_ID ,CONVERT(DATETIME, @p_USE_EXPORT_DT, 103) ,@p_USER_EXPORT ,@p_NOTES ,@p_RECORD_STATUS ,'E' ,@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) ,@p_MAKER_ID_KT ,@p_CHECKER_ID_KT ,@p_REPORT_STATUS,'',@DEPT_CREATE,@p_DEP_ID,(SELECT TOP 1 tu.TLSUBBRID FROM TL_USER tu WHERE tu.TLNANME = @p_MAKER_ID), @p_CONTENT) IF @@Error <> 0 GOTO ABORT --Insert XmlData FETCH NEXT FROM XmlData INTO @ASSET_ID,@BRANCH_ID,@DEPT_ID,@DIVISION_ID,@EMP_ID,@AMORT_START_DATE,@AMORT_MONTH,@AMORT_END_DATE,@CORE_NOTE,@NOTES, --Phucvh 06/10/22 Bổ sung Khối, Trung tâm @SUBBRANCH_ID, @FATHER_ID, @REQ_ID, @NUM_REPORT WHILE @@FETCH_STATUS = 0 BEGIN SET @INDEX= @INDEX+1 SET @DEPT_ID = @p_DEP_ID -- --LUCTV - KIEM TRA SO THANG KHAU HAO PHAI NAM TRONG MIN -MAX -- SET @NHOMTS =(SELECT GROUP_ID FROM ASS_MASTER WHERE ASSET_ID= @ASSET_ID) -- SET @MIN_AMR =(SELECT AMORT_MONTH_MIN FROM ASS_GROUP WHERE GROUP_ID =@NHOMTS) -- SET @MAX_AMR =(SELECT AMORT_MONTH_MAX FROM ASS_GROUP WHERE GROUP_ID=@NHOMTS) -- IF(@AMORT_MONTH >@MAX_AMR OR @AMORT_MONTH <@MIN_AMR) -- BEGIN --CLOSE XmlData --DEALLOCATE XmlData --ROLLBACK TRANSACTION --SELECT '-1' as Result,N'Dòng' +CONVERT(VARCHAR(15),@INDEX) +N': Số tháng khấu hao phải nằm trong khoảng ('+CONVERT(VARCHAR(15),@MIN_AMR)+' - '+CONVERT(VARCHAR(15),@MAX_AMR)+N') tháng' ErrorDesc --RETURN '-1' -- END if(@AMORT_START_DATE='') set @AMORT_START_DATE=NULL if(@AMORT_END_DATE='') set @AMORT_END_DATE=NULL DECLARE @ERRORSYS NVARCHAR(200) = '',@ASSET_CODE nVARCHAR(200), @USER_CODE NVARCHAR(20) -- DIEU KIEN CU --IF ( EXISTS ( SELECT * FROM ASS_USE_MULTI_DT WHERE [ASSET_ID] = @ASSET_ID AND CHECKER_ID_KT<>'system') -- DIEU KIEN MOI -- LUCTV: 3072019 THAY DOI DIEU KIEN KHONG CHO PHEP XUAT SU DUNG N TAI SAN CUNG LUC (LOAI TRU TAI SAN THUOC GIAO DICH BI HUY -- IF ( EXISTS ( SELECT 1 -- FROM ASS_USE_MULTI_DT A -- INNER JOIN ASS_USE_MULTI_MASTER B ON A.USER_MASTER_ID = B.USER_MASTER_ID -- WHERE A.[ASSET_ID] = @ASSET_ID AND B.RECORD_STATUS = '1' AND -- (A.CHECKER_ID IS NULL OR A.CHECKER_ID_KT IS NULL OR (A.CHECKER_ID_KT IS NOT NULL AND A.CHECKER_ID_KT<>'system')))) -- BEGIN -- SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID) -- SET @USER_CODE = (SELECT TOP 1 A.USER_MASTER_ID -- FROM ASS_USE_MULTI_DT A -- INNER JOIN ASS_USE_MULTI_MASTER B ON A.USER_MASTER_ID = B.USER_MASTER_ID -- WHERE A.[ASSET_ID] = @ASSET_ID AND B.RECORD_STATUS = '1' AND -- (A.CHECKER_ID IS NULL OR A.CHECKER_ID_KT IS NULL OR (A.CHECKER_ID_KT IS NOT NULL AND A.CHECKER_ID_KT<>'system'))) -- SET @ERRORSYS = N'Mã: '+@ASSET_CODE+N' đang xuất sử dụng trong phiếu xuất: ' + @USER_CODE -- CLOSE XmlData -- DEALLOCATE XmlData -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' USER_MASTER_ID, @ERRORSYS ErrorDesc -- RETURN '-1' -- -- END -- IF ( EXISTS ( SELECT * FROM ASS_USE WHERE [ASSET_ID] = @ASSET_ID)) -- BEGIN -- SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID) -- SET @USER_CODE = (SELECT USE_ID FROM ASS_USE WHERE [ASSET_ID] = @ASSET_ID) -- SET @ERRORSYS = N'Mã: '+@ASSET_CODE+N' đang xuất sử dụng trong phiếu xuất: ' + @USER_CODE -- CLOSE XmlData -- DEALLOCATE XmlData -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' USER_MASTER_ID, @ERRORSYS ErrorDesc -- RETURN '-1' -- -- END -- luctv 03/08/2021 người nhận phải cùng đơn vị nhận -- IF (SELECT BRANCH_ID FROM CM_DEPARTMENT WHERE DEP_ID = @DEPT_ID) <> @p_BRANCH_ID -- BEGIN -- SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID) -- SELECT '-1' Result, '' USER_MASTER_ID, N'TS: '+ @ASSET_CODE + N' Phòng ban nhận phải thuộc về đơn vị nhận.' ErrorDesc -- CLOSE XmlData -- DEALLOCATE XmlData -- ROLLBACK TRANSACTION -- RETURN '-1' -- END -- IF (SELECT DEP_ID FROM CM_EMPLOYEE WHERE EMP_ID = @EMP_ID) <> @DEPT_ID -- BEGIN -- SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID) -- SELECT '-1' Result, '' TRANSFER_ID, N'TS: '+ @ASSET_CODE + N' Người nhận phải thuộc về phòng ban nhận.' ErrorDesc -- CLOSE XmlData -- DEALLOCATE XmlData -- ROLLBACK TRANSACTION -- RETURN '-1' -- END DECLARE @l_USE_MULTI_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'ASS_USE_MULTI_DT', @l_USE_MULTI_ID out IF @l_USE_MULTI_ID='' OR @l_USE_MULTI_ID IS NULL GOTO ABORT INSERT INTO ASS_USE_MULTI_DT([USE_MULTI_ID],[USER_MASTER_ID],[ASSET_ID],[AMORT_START_DATE],[BRANCH_ID],[DEPT_ID],[EMP_ID],[DIVISION_ID],[NOTES],[CORE_NOTE],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT],[BRANCH_CREATE],[AMORT_MONTH],[AUTH_STATUS_KT],[REPORT_STATUS],[AMORT_END_DATE],REQ_ID,NUM_REPORT) VALUES(@l_USE_MULTI_ID ,@l_USER_MASTER_ID,@ASSET_ID ,CONVERT(DATETIME, @AMORT_START_DATE, 103) ,@p_BRANCH_ID ,@DEPT_ID ,@EMP_ID ,@DIVISION_ID ,@NOTES ,@CORE_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 ,@AMORT_MONTH , 'E' ,'N' ,CONVERT(DATETIME, @AMORT_END_DATE, 103), @REQ_ID,@NUM_REPORT ) IF @@Error <> 0 GOTO ABORT FETCH NEXT FROM XmlData INTO @ASSET_ID,@BRANCH_ID,@DEPT_ID,@DIVISION_ID,@EMP_ID,@AMORT_START_DATE,@AMORT_MONTH,@AMORT_END_DATE,@CORE_NOTE,@NOTES, --Phucvh 06/10/22 Bổ sung Khối, Trung tâm @SUBBRANCH_ID, @FATHER_ID, @REQ_ID, @NUM_REPORT END CLOSE XmlData DEALLOCATE XmlData DECLARE @MESSAGE_VALIDATION NVARCHAR(MAX) = NULL SET @MESSAGE_VALIDATION = (SELECT REPLACE((SELECT CASE WHEN ROW_NUMBER() OVER (ORDER BY (SELECT 0)) = 1 THEN '' ELSE '|' END + VAL.MESS FROM ( SELECT N'Tài sản ' + ASS.ASSET_CODE + N' được nhập mới theo yêu cầu của ' + ISNULL(F.DEP_NAME,E.BRANCH_NAME) + N'. Không thể xuất cho ' + ISNULL(D.DEP_NAME,C.BRANCH_NAME) AS MESS FROM ASS_USE_MULTI_DT A LEFT JOIN ASS_MASTER ASS ON A.ASSET_ID = ASS.ASSET_ID LEFT JOIN TR_REQUEST_SHOP_DOC B ON A.REQ_ID = B.REQ_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 CM_BRANCH E ON B.BRANCH_ID = E.BRANCH_ID LEFT JOIN CM_DEPARTMENT F ON B.DEP_ID = F.DEP_ID WHERE A.REQ_ID IS NOT NULL AND A.REQ_ID <> '' AND A.USER_MASTER_ID = @l_USER_MASTER_ID AND (ISNULL(A.BRANCH_ID,'') <> ISNULL(B.BRANCH_ID,'') OR ISNULL(A.DEPT_ID,'') <> ISNULL(B.DEP_ID,''))) VAL FOR XML PATH ('')) , '|', '
')) IF(@MESSAGE_VALIDATION IS NOT NULL AND @MESSAGE_VALIDATION <> '') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' USER_MASTER_ID, @MESSAGE_VALIDATION ErrorDesc RETURN '-1' END -- GIANT 21/09/2021 INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @l_USER_MASTER_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 xuất sử dụng' , N'Thêm mới phiếu xuất sử dụng thành công' -- PROCESS_DESC - nvarchar(1000) ) COMMIT TRANSACTION SELECT '0' as Result, @l_USER_MASTER_ID USER_MASTER_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION SELECT '-1' as Result, '' USER_MASTER_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[ASS_TRANSFER_MULTI_MASTER_Ins]' GO ALTER PROCEDURE [dbo].[ASS_TRANSFER_MULTI_MASTER_Ins] @p_BRANCH_ID varchar(15) = NULL, @p_TRANSFER_DT VARCHAR(20) = NULL, @p_USER_TRANSFER 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_TRANSFER_CONTENT NVARCHAR(MAX) = NULL, @p_REQ_PARENT_ID VARCHAR(15) = NULL, @p_REQ_PARENT_CODE VARCHAR(15) = NULL, @p_XmlData XML = NULL AS /* */ DECLARE @ASSET_ID varchar(15), @ASSET_CODE varchar(100), @BRANCH_ID varchar(15), @KHOI_ID varchar(15), @CENTER_ID varchar(15), @DEPT_ID varchar(15), @EMP_ID varchar(15), @LOCATION varchar(500), @DESCRIPTION nvarchar(1000), @BRANCH_ID_OLD varchar(15), @KHOI_ID_OLD varchar(15), @CENTER_ID_OLD varchar(15), @DEPT_ID_OLD varchar(15), @EMP_ID_OLD varchar(15), @REMAIN_VALUE DECIMAL(18,0), @BUY_PRICE DECIMAL(18,0), @DEPT_CREATE VARCHAR(15) = (SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME = @p_MAKER_ID) 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), ASSET_CODE varchar(100), BRANCH_ID varchar(15), KHOI_ID VARCHAR(15), CENTER_ID VARCHAR(15), DEP_ID varchar(15), EMP_ID varchar(15), BRANCH_ID_OLD varchar(15), KHOI_ID_OLD varchar(15), CENTER_ID_OLD varchar(15), DEPT_ID_OLD varchar(15), EMP_ID_OLD varchar(15), LOCATION varchar(500), [DESCRIPTION] nvarchar(1000), REMAIN_VALUE DECIMAL(18,0), BUY_PRICE DECIMAL(18,0) ) OPEN XmlData BEGIN TRANSACTION DECLARE @l_TRANS_MULTI_MASTER_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'ASS_TRANSFER_MULTI_MASTER', @l_TRANS_MULTI_MASTER_ID out IF @l_TRANS_MULTI_MASTER_ID='' OR @l_TRANS_MULTI_MASTER_ID IS NULL GOTO ABORT print 'error' INSERT INTO ASS_TRANSFER_MULTI_MASTER([TRANS_MULTI_MASTER_ID],[BRANCH_ID],[TRANSFER_DT],[USER_TRANSFER],[NOTES],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT],[REPORT_STATUS],[DEPT_CREATE], TRANSFER_CONTENT, REQ_ID, REQ_CODE, STATUS) VALUES(@l_TRANS_MULTI_MASTER_ID ,@p_BRANCH_ID ,CONVERT(DATETIME, @p_TRANSFER_DT, 103) ,@p_USER_TRANSFER ,@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) ,@p_REPORT_STATUS,@DEPT_CREATE, @p_TRANSFER_CONTENT, @p_REQ_PARENT_ID, @p_REQ_PARENT_CODE, 'ADDNEW') IF @@Error <> 0 GOTO ABORT DECLARE @COUNT INT; SET @COUNT = 1; --Insert XmlData FETCH NEXT FROM XmlData INTO @ASSET_ID,@ASSET_CODE,@BRANCH_ID, @KHOI_ID, @CENTER_ID,@DEPT_ID,@EMP_ID,@BRANCH_ID_OLD,@KHOI_ID_OLD,@CENTER_ID_OLD,@DEPT_ID_OLD, @EMP_ID_OLD,@LOCATION,@DESCRIPTION, @REMAIN_VALUE, @BUY_PRICE WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @BRANCH_TYPE VARCHAR(15) = (SELECT CB.BRANCH_TYPE FROM CM_BRANCH CB WHERE CB.BRANCH_ID = @BRANCH_ID) DECLARE @ERRORSYS NVARCHAR(200) = ''--,@ASSET_CODE nVARCHAR(20) IF (@BRANCH_ID IS NULL OR @BRANCH_ID = '') BEGIN SET @ERRORSYS = N'Dòng số '+ CAST(@COUNT AS NVARCHAR) + N': Đơn vị nhận bắt buộc chọn.' CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION SELECT '-1' as Result, '' TRANS_MULTI_MASTER_ID, @ERRORSYS ErrorDesc RETURN '-1' END IF (@BRANCH_TYPE = 'HS') IF ((@DEPT_ID IS NULL OR @DEPT_ID = '') AND (@KHOI_ID IS NULL OR @KHOI_ID = '') AND (@CENTER_ID IS NULL OR @CENTER_ID = '')) BEGIN SET @ERRORSYS = N'Dòng số '+ CAST(@COUNT AS NVARCHAR) + N': phải chọn Phòng ban nhận hoặc Khối nhận hoặc Trung tâm nhận.' CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION SELECT '-1' as Result, '' TRANS_MULTI_MASTER_ID, @ERRORSYS ErrorDesc RETURN '-1' END DECLARE @MESSAGE_VALIDATION NVARCHAR(MAX) = '' DECLARE @check TABLE(TRANSFER_ID VARCHAR(20), ASSET_ID VARCHAR(20)) INSERT INTO @check SELECT TRANS_MULTI_MASTER_ID, ASSET_ID FROM ASS_TRANSFER_MULTI_DT WHERE [ASSET_ID] = @ASSET_ID AND AUTH_STATUS<>'A' IF (EXISTS(SELECT TOP 1 * FROM @check)) 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 mã: ' + C.ASSET_CODE + N' đang được điều chuyển ở phiếu: ' + C.TRANS_MULTI_MASTER_ID FROM (SELECT ISNULL(C.ASSET_CODE,C.ASS_CODE_TMP) AS ASSET_CODE,A.TRANS_MULTI_MASTER_ID 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.ASSET_ID IN (SELECT ASSET_ID FROM @check) AND B.AUTH_STATUS <> 'A') C FOR XML PATH ('')) , '|', '
')) CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION SELECT '-1' as Result, '' TRANS_MULTI_MASTER_ID, @MESSAGE_VALIDATION ErrorDesc RETURN '-1' END DECLARE @l_TRANSFER_MULTI_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'ASS_TRANSFER_MULTI_DT', @l_TRANSFER_MULTI_ID out IF @l_TRANSFER_MULTI_ID='' OR @l_TRANSFER_MULTI_ID IS NULL GOTO ABORT --LAY THONG TIN DON VI CU TRUOC DIEU CHUYEN SELECT @BRANCH_ID_OLD = BRANCH_ID, @DEPT_ID_OLD = DEPT_ID, @EMP_ID_OLD = EMP_ID FROM ASS_MASTER WHERE ASSET_ID = @ASSET_ID --thieuvq 07/09/2016 -- ngay 231120 Thieuvq bo sung neu la HOI SO thi khong kiem tra trung theo yeu cau Anh Tan - dieu chuyen ts tu kho HCQT cho HCQT su dung IF @BRANCH_ID_OLD <> 'DV0001' AND @BRANCH_ID = @BRANCH_ID_OLD AND ISNULL(@DEPT_ID,'') = ISNULL(@DEPT_ID_OLD,'') AND ISNULL(@EMP_ID,'') = ISNULL(@EMP_ID_OLD,'') BEGIN SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID) SELECT '-1' Result, '' TRANSFER_ID, N'TS: '+@ASSET_CODE+ N' Đơn vị nhận hoặc người nhận phải khác với đơn vị/nhân viên đang sử dụng hiện tại.' ErrorDesc CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION RETURN '-1' END -- luctv 03/08/2021 người nhận phải cùng đơn vị nhận IF (SELECT BRANCH_ID FROM CM_DEPARTMENT WHERE DEP_ID = @DEPT_ID) <> @BRANCH_ID BEGIN SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID) SELECT '-1' Result, '' TRANSFER_ID, N'TS: '+ @ASSET_CODE + N' Phòng bản nhận phải thuộc về đơn vị nhận.' ErrorDesc CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION RETURN '-1' END -- IF (SELECT DEP_ID FROM CM_EMPLOYEE WHERE EMP_ID = @EMP_ID) <> @DEPT_ID -- BEGIN -- SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID) -- SELECT '-1' Result, '' TRANSFER_ID, N'TS: '+ @ASSET_CODE + N' Người nhận phải thuộc về phòng ban nhận.' ErrorDesc -- CLOSE XmlData -- DEALLOCATE XmlData -- ROLLBACK TRANSACTION -- RETURN '-1' -- END --print 'error1' INSERT INTO ASS_TRANSFER_MULTI_DT( [TRANSFER_MULTI_ID], [TRANS_MULTI_MASTER_ID], [ASSET_ID], [BRANCH_ID], [KHOI_ID], [CENTER_ID], [DEPT_ID], [EMP_ID], [BRANCH_ID_OLD], [KHOI_ID_OLD], [CENTER_ID_OLD], [DEPT_ID_OLD], [EMP_ID_OLD], [USE_START_DT], [DESCRIPTION], [LOCATION], [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], REMAIN_VALUE, BUY_PRICE ) VALUES( @l_TRANSFER_MULTI_ID, @l_TRANS_MULTI_MASTER_ID, @ASSET_ID, @BRANCH_ID, @KHOI_ID, @CENTER_ID, @DEPT_ID, @EMP_ID, @BRANCH_ID_OLD, @KHOI_ID_OLD, @CENTER_ID_OLD, @DEPT_ID_OLD, @EMP_ID_OLD, CONVERT(DATETIME, @p_TRANSFER_DT, 103), @DESCRIPTION, @LOCATION, @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', @REMAIN_VALUE, @BUY_PRICE ) IF @@Error <> 0 GOTO ABORT SET @COUNT = @COUNT + 1; FETCH NEXT FROM XmlData INTO @ASSET_ID,@ASSET_CODE,@BRANCH_ID, @KHOI_ID, @CENTER_ID,@DEPT_ID,@EMP_ID,@BRANCH_ID_OLD,@KHOI_ID_OLD,@CENTER_ID_OLD,@DEPT_ID_OLD, @EMP_ID_OLD,@LOCATION,@DESCRIPTION, @REMAIN_VALUE, @BUY_PRICE END CLOSE XmlData DEALLOCATE XmlData -- GIANT 21/09/2021 print 'error2' -- INSERT INTO dbo.PL_PROCESS -- ( -- REQ_ID, -- PROCESS_ID, -- CHECKER_ID, -- APPROVE_DT, -- PROCESS_DESC,NOTES -- ) -- VALUES -- ( @l_TRANS_MULTI_MASTER_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 điều chuyển thành công' , -- N'Đơn vị tạo phiếu' -- PROCESS_DESC - nvarchar(1000) -- ) INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID) VALUES(@l_TRANS_MULTI_MASTER_ID,'ADDNEW','C','QLTS',@p_BRANCH_ID,'',@DEPT_CREATE) INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID) VALUES(@l_TRANS_MULTI_MASTER_ID,'QLTS_D','U','TBP_QLTS',@p_BRANCH_ID,'ADDNEW',@DEPT_CREATE) COMMIT TRANSACTION SELECT '0' as Result, @l_TRANS_MULTI_MASTER_ID TRANS_MULTI_MASTER_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN CLOSE XmlData DEALLOCATE XmlData 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].[TR_REQUEST_SHOP_DOC_DT_ById_ASS_REQ_GROUP_ID]' GO ALTER PROCEDURE [dbo].[TR_REQUEST_SHOP_DOC_DT_ById_ASS_REQ_GROUP_ID] @p_LST_ASSET_ID VARCHAR(MAX) = NULL, @p_LST_GROUP_ID VARCHAR(MAX) = NULL, @p_LST_REQ_ID VARCHAR(MAX) = NULL AS BEGIN SELECT A.ASSET_ID, B.ASS_GROUP_ID, C.REQ_ID, (SELECT TOP 1 TRDT.EMP_ID FROM TR_REQUEST_SHOP_DOC_DT TRDT WHERE TRDT.REQ_DOC_ID = C.REQ_ID AND TRDT.ASS_GROUP_ID = B.ASS_GROUP_ID AND (TRDT.REQ_DT_TYPE = 'BUYNEW' OR (TRDT.REQ_DT_TYPE = 'XKSD' AND TRDT.TYPE_XL = 'CPTK'))) AS EMP_ID,--ID NGƯỜi SỬ DỤng PHIẾu CẤp PHÁt (SELECT TOP 1 ce.EMP_NAME FROM TR_REQUEST_SHOP_DOC_DT TRDT LEFT JOIN CM_EMPLOYEE ce ON TRDT.EMP_ID = ce.EMP_ID WHERE TRDT.REQ_DOC_ID = C.REQ_ID AND TRDT.ASS_GROUP_ID = B.ASS_GROUP_ID AND (TRDT.REQ_DT_TYPE = 'BUYNEW' OR (TRDT.REQ_DT_TYPE = 'XKSD' AND TRDT.TYPE_XL = 'CPTK'))) AS EMP_NAME, --TÊn NGƯỜi SỬ DỤng TRONG PHIẾu CẤp PHÁt --(SELECT TOP 1 trsd.PL_CODE FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.REQ_ID = C.REQ_ID) AS PL_CODE--Số tờ trình PYC AA.PL_CODE FROM (SELECT row_number() over (order by (SELECT 0)) AS ID, VALUE AS ASSET_ID FROM STRING_SPLIT(@p_LST_ASSET_ID,',')) A LEFT JOIN (SELECT row_number() over (order by (SELECT 0)) AS ID, VALUE AS ASS_GROUP_ID FROM STRING_SPLIT(@p_LST_GROUP_ID,',')) B ON A.ID = B.ID LEFT JOIN (SELECT row_number() over (order by (SELECT 0)) AS ID, VALUE AS REQ_ID FROM STRING_SPLIT(@p_LST_REQ_ID,',')) C ON A.ID = C.ID LEFT JOIN ASS_ADDNEW AA ON C.REQ_ID = AA.REQ_ID WHERE C.REQ_ID IS NOT NULL AND C.REQ_ID <> '' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[ASS_ADDNEW_QLTS_Appr]' GO ALTER PROCEDURE [dbo].[ASS_ADDNEW_QLTS_Appr] @p_ADDNEW_ID VARCHAR(15) = NULL, @p_CHECKER_ID varchar(100) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL AS IF((SELECT AUTH_STATUS FROM ASS_ADDNEW WHERE ADDNEW_ID = @p_ADDNEW_ID) = 'A') BEGIN SELECT '-1' as Result, '' ADDNEW_ID, N'Dữ liệu đã được duyệt' ErrorDesc RETURN '-1' END DECLARE @l_SUP_ID varchar(15) DECLARE @l_BUY_DATE datetime = NULL DECLARE @l_TYPE_ID varchar(15) = NULL DECLARE @l_GROUP_ID varchar(15) = NULL DECLARE @l_ASSET_NAME nvarchar(1000) = NULL DECLARE @l_ASSET_SERIAL_NO nvarchar(max) = NULL DECLARE @l_ASSET_DESC nvarchar(max) = NULL DECLARE @l_BRANCH_ID varchar(15) = NULL DECLARE @l_DEPT_ID varchar(15) = NULL DECLARE @l_EMP_ID varchar(15) = NULL DECLARE @l_DIVISION_ID varchar(15) = NULL DECLARE @l_BUY_PRICE decimal(18) = NULL DECLARE @l_AMORT_AMT decimal(18) = NULL DECLARE @l_AMORT_MONTH decimal(18,2) = NULL DECLARE @l_AMORT_RATE decimal(18,2) = NULL DECLARE @l_IS_MULTIPLE varchar(1) = NULL DECLARE @l_QTY int = NULL DECLARE @l_PO_ID varchar(15) = NULL DECLARE @l_PD_ID varchar(15) = NULL DECLARE @l_REF_ASSET_ID varchar(15) = NULL DECLARE @l_REF_AMORTIZED_AMT decimal(18) = NULL DECLARE @l_WARRANTY_MONTHS int = NULL DECLARE @l_NOTES nvarchar(1000) = NULL DECLARE @l_CORE_NOTE nvarchar(200) = NULL declare @l_ENTRY_BOOKED varchar(1) = null DECLARE @l_MAKER_ID varchar(15) DECLARE @l_AUTH_STATUS varchar(1) declare @l_DO_BRANCH_ID varchar(15) DECLARE @l_CONSTRUCT_ID varchar(15) = NULL DECLARE @l_AMORT_STATUS nvarchar(20) DECLARE @l_AMORT_START_DATE datetime, @l_AMORT_END_DATE datetime DECLARE @l_FIRST_AMORT_AMT numeric(18,0) DECLARE @l_MONTHLY_AMT numeric(18,0) DECLARE @l_HO_BRN_ID varchar(15) DECLARE @l_WAH_ID varchar(15) DECLARE @sToday varchar(10) = convert(varchar(10), getdate(), 103) DECLARE @l_USE_DATE varchar(15) DECLARE @l_ASS_TYPE varchar(1) = '1' declare @l_TRN_REF_NO varchar(20) DECLARE @l_ET_ID varchar(15) DECLARE @l_VALUE_ID varchar(15) DECLARE @l_ASSET_ID varchar(15) DECLARE @l_ASSET_CODE nvarchar(100) DECLARE @l_WAHDT_ID varchar(15) DECLARE @l_LOCHIST_ID varchar(15) DECLARE @l_SUPPEND_GL varchar(50) DECLARE @l_ASSET_GL varchar(50) declare @l_ASSET_VALUE decimal(18,0) DECLARE @ERRORSYS NVARCHAR(15) = '' DECLARE @BRANCH_CREATE VARCHAR(15) = NULL DECLARE @ACCOUNT_GL VARCHAR(50) DECLARE @VAT DECIMAL(18,2) DECLARE @PRICE_VAT DECIMAL(18,0) DECLARE @REQ_ID VARCHAR(15) DECLARE @REQ_CODE VARCHAR(50) DECLARE @WIN VARCHAR(1) DECLARE @OFFICE VARCHAR(1) DECLARE @ASS_CONTRACT_CODE VARCHAR(50) DECLARE @PL_CODE VARCHAR(50) DECLARE @i INT PRINT 'OK1' --DECLARE @PD_ID VARCHAR(15) --SELECT @PD_ID = PD_ID FROM ASS_ADDNEW WHERE ADDNEW_ID = @p_ADDNEW_ID --DECLARE @TOTAL_TT INT, @TOTAL_PO INT --SET @TOTAL_TT = (SELECT SUM(QTY) FROM ASS_ADDNEW WHERE PD_ID = @PD_ID AND AUTH_STATUS = 'A') + (SELECT QTY FROM ASS_ADDNEW WHERE ADDNEW_ID = @p_ADDNEW_ID) --SET @TOTAL_PO = (SELECT SUM(QUANTITY) FROM TR_PO_DETAIL WHERE PD_ID = @PD_ID) --IF(@TOTAL_TT > @TOTAL_PO) --BEGIN -- SELECT '-1' as Result, '' ADDNEW_ID, N'Số lượng hàng hóa đã nhập vượt quá số lượng PO' ErrorDesc -- RETURN '-1' --END --lay thong tin giao dich SELECT @l_BUY_DATE = BUY_DATE, @l_TYPE_ID = A.[TYPE_ID], @l_GROUP_ID = A.GROUP_ID, @l_ASSET_NAME = ASSET_NAME, @l_ASSET_SERIAL_NO = ASSET_SERIAL_NO, @l_ASSET_DESC = ASSET_DESC, @l_CONSTRUCT_ID = CONSTRUCT_ID, @l_BRANCH_ID = BRANCH_ID, @l_DEPT_ID = DEPT_ID, @l_EMP_ID = EMP_ID, @l_DIVISION_ID = DIVISION_ID, @l_BUY_PRICE = BUY_PRICE, @l_AMORT_AMT = AMORT_AMT, @l_AMORT_START_DATE = AMORT_START_DATE, --@l_AMORT_MONTH = AMORT_MONTH, @l_AMORT_MONTH = CASE WHEN G.AMORT_MONTH<>0 THEN G.AMORT_MONTH ELSE A.AMORT_MONTH END, @l_AMORT_RATE = A.AMORT_RATE, @l_CORE_NOTE = A.CORE_NOTE, @l_IS_MULTIPLE = IS_MULTIPLE, @l_QTY = QTY, @l_PO_ID = PO_ID,@l_PD_ID=PD_ID, @l_REF_ASSET_ID = REF_ASSET_ID, @l_REF_AMORTIZED_AMT = REF_AMORTIZED_AMT, @l_WARRANTY_MONTHS = WARRANTY_MONTHS, @l_NOTES = A.NOTES, @l_ENTRY_BOOKED = ENTRY_BOOKED, @l_MAKER_ID = A.MAKER_ID, @l_AUTH_STATUS = A.AUTH_STATUS, @l_AMORT_END_DATE = AMORT_END_DATE, @BRANCH_CREATE = BRANCH_CREATE, @ACCOUNT_GL = A.ACCOUNT_GL, @VAT = A.VAT, @PRICE_VAT = A.PRICE_VAT, @REQ_CODE = A.REQ_CODE, @REQ_ID = A.REQ_ID, @WIN = A.WIN_CRACK, @OFFICE = A.OFFICE_CRACK , @l_SUP_ID = A.SUP_ID, @ASS_CONTRACT_CODE = A.CONTRACT_ID, @PL_CODE = A.PL_CODE FROM ASS_ADDNEW A INNER JOIN ASS_GROUP G on G.GROUP_ID = A.GROUP_ID WHERE ADDNEW_ID = @p_ADDNEW_ID IF @@Error <> 0 GOTO ABORT /********** chekc vadilation ************/ IF (@l_AUTH_STATUS = 'A') SET @ERRORSYS = 'ASS-99998' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END BEGIN TRANSACTION IF @l_BRANCH_ID <>'' OR @l_BRANCH_ID IS NOT NULL SET @l_ENTRY_BOOKED = 'Y' IF @l_BRANCH_ID ='' OR @l_BRANCH_ID IS NULL SET @l_AMORT_STATUS = 'VNM' DECLARE @l_SL_IN_PYC INT =(SELECT ISNULL(SUM(TRSDD.QTY_ETM),0) FROM TR_REQUEST_SHOP_DOC_DT TRSDD LEFT JOIN TR_REQUEST_SHOP_DOC TRSD ON TRSD.REQ_ID = TRSDD.REQ_DOC_ID WHERE TRSD.REQ_CODE = @REQ_CODE AND TRSDD.ASS_GROUP_ID = @l_GROUP_ID AND TRSDD.REQ_DT_TYPE = 'BUYNEW') DECLARE @l_SL_ASS_MASTER INT =(SELECT ISNULL(COUNT(*),0) FROM ASS_MASTER AM WHERE AM.GROUP_ID = @l_GROUP_ID AND AM.REQ_CODE = @REQ_CODE) IF (@REQ_CODE IS NOT NULL OR @REQ_CODE <> '') BEGIN --kiem tra so luong so voi PYC IF((SELECT ISNULL(QTY,0) FROM ASS_ADDNEW WHERE ADDNEW_ID = @p_ADDNEW_ID) > (@l_SL_IN_PYC - @l_SL_ASS_MASTER)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ADDNEW_ID, N'Số lượng tài sản không được lớn hơn số lượng tài sản có cùng loại được thêm mới theo Phiếu yêu cầu.' ErrorDesc RETURN '-1' END END --INSERT TYPE_XL PYC IF(@REQ_CODE IS NOT NULL OR @REQ_CODE <> '') BEGIN --TĂNG LOCATED NẾU XSD IF(@l_BRANCH_ID IS NOT NULL OR @l_BRANCH_ID <> '') BEGIN SET @l_USE_DATE = convert(varchar(10), getdate(), 103) UPDATE TR_REQUEST_SHOP_DOC_DT SET ALLOCATED = ALLOCATED + @l_QTY WHERE REQDT_ID IN (SELECT TRSDD.REQDT_ID FROM TR_REQUEST_SHOP_DOC_DT TRSDD WHERE TRSDD.REQ_DOC_ID = @REQ_ID AND TRSDD.ASS_GROUP_ID = @l_GROUP_ID AND TRSDD.REQ_DT_TYPE = 'BUYNEW') END END --INSERT TYPE_XL PYC END --UPDATE GIAO DICH ADDNEW UPDATE ASS_ADDNEW SET AUTH_STATUS = 'A', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103), AUTH_STATUS_KT = 'E' WHERE ADDNEW_ID = @p_ADDNEW_ID IF @@Error <> 0 GOTO ABORT IF (@l_IS_MULTIPLE = '0') --nhap tai san don le BEGIN --Phat sinh Asset_ID EXEC SYS_CodeMasters_Gen 'ASS_MASTER', @l_ASSET_ID out IF @l_ASSET_ID='' OR @l_ASSET_ID IS NULL GOTO ABORT DECLARE @ASSET_CODE_TMP VARCHAR(50) --Phat sinh ma tai san -- EXEC ASS_CODE_Gen @l_TYPE_ID, @l_GROUP_ID, @ASSET_CODE_TMP OUT -- IF @l_ASSET_CODE='' OR @l_ASSET_CODE IS NULL GOTO ABORT --Insert bang ASS_MASTER INSERT INTO ASS_MASTER ( [ASSET_ID], [TYPE_ID], [GROUP_ID], [ASSET_CODE], [ASSET_NAME], [ASSET_SERIAL_NO], [ASSET_DESC], [SUP_ID], [BUY_PRICE], [AMORT_AMT], [ASS_TYPE], [BRANCH_ID], [DEPT_ID], [EMP_ID], [DIVISION_ID], [BUY_DATE], [USE_DATE], [SPECIAL_ASS], [AMORT_MONTH], [AMORT_RATE], [AMORT_START_DATE], [AMORT_END_DATE], [FIRST_AMORT_AMT], [MONTHLY_AMORT_AMT], [AMORTIZED_MONTH], [AMORTIZED_AMT], [PO_ID], [PD_ID], [WAREHOUSE_ID], [LOCATION], [REF_ASSET_ID], [REF_AMORTIZED_AMT], [WARRANTY_MONTHS], [NOTES], [AMORT_STATUS], [ASS_STATUS], [ASS_STATUS_DESC], [ENTRY_BOOKED], [RECORD_STATUS], [AUTH_STATUS], [MAKER_ID], [CREATE_DT], [CHECKER_ID], [APPROVE_DT], [CONSTRUCT_ID], [USE_STATUS], [BRANCH_CREATE], [ACCOUNT_GL], VAT,PRICE_VAT, LIQ_W_STATUS, -- HUNGDV MAC DINH = '0', REQ_ID, REQ_CODE, -- KHIEMCHG thêm số phiếu yêu cầu để biết tài sản sinh ra từ pyc nào, ASS_CODE_TMP --khiemchg lưu asset code được gen ra lưu tạm ,OS, MO_LICENSE, ASS_CONTRACT_CODE, PL ) VALUES ( @l_ASSET_ID, @l_TYPE_ID , @l_GROUP_ID, @l_ASSET_ID, @l_ASSET_NAME, @l_ASSET_SERIAL_NO, @l_ASSET_DESC, @l_SUP_ID, @l_BUY_PRICE, @l_AMORT_AMT, @l_ASS_TYPE, @l_BRANCH_ID, @l_DEPT_ID, @l_EMP_ID, @l_DIVISION_ID, CONVERT(DATETIME, @l_BUY_DATE, 103), CONVERT(DATETIME, @l_USE_DATE, 103), '0', @l_AMORT_MONTH, @l_AMORT_RATE, @l_AMORT_START_DATE, @l_AMORT_END_DATE, @l_FIRST_AMORT_AMT, @l_MONTHLY_AMT, 0, 0, @l_PO_ID, @l_PD_ID, NULL, NULL, @l_REF_ASSET_ID, @l_REF_AMORTIZED_AMT, @l_WARRANTY_MONTHS, @l_NOTES, @l_AMORT_STATUS, '1', --Mac dinh moi insert vao tinh trang tai san la binh thuong N'', @l_ENTRY_BOOKED, '1', 'U', @l_MAKER_ID, CONVERT(DATETIME, @sToday, 103), @p_CHECKER_ID, CONVERT(DATETIME, @p_APPROVE_DT, 103) , @l_CONSTRUCT_ID, 'BT', @BRANCH_CREATE, @ACCOUNT_GL, @VAT,@PRICE_VAT, '0' -- LIQ_W_STATUS HUNGDV MAC DINH = '0' ,@REQ_ID ,@REQ_CODE, @l_ASSET_ID, @WIN, @OFFICE, @ASS_CONTRACT_CODE, @PL_CODE ) IF @@Error <> 0 GOTO ABORT --INSERT CHI TIET TAI SAN INSERT INTO ASS_MASTER_PO SELECT @l_ASSET_ID, POAD.PO_ID, GDDT.TRPO_ID,CONVERT(DATETIME, @sToday, 103) FROM ASS_ADDNEW_PO POAD LEFT JOIN ASS_ADDNEW_GD GDDT ON GDDT.PO_ID = POAD.PO_ID AND GDDT.ADDNEW_ID = @p_ADDNEW_ID WHERE POAD.ADDNEW_ID = @p_ADDNEW_ID --Insert bang ASS_WARRANTY_DET tu bang ASS_ADDNEW_DT insert into ASS_WARRANTY_DT(ASSET_ID, WAR_DT, WAR_CONTENT, WAR_END_DT) select @l_ASSET_ID, A.WAR_DT, A.WAR_CONTENT, WAR_EXPIRED from ASS_ADDNEW_DT A WHERE A.ADDNEW_ID= @p_ADDNEW_ID IF @@Error <> 0 GOTO ABORT --INSERT VAO BANG ASS_TRANSACTIONS INSERT INTO ASS_TRANSACTIONS(ASSET_ID, TRN_ID, TRN_TYPE, TRN_DATE, RECORD_STATUS, AUTH_STATUS, [MAKER_ID], [CREATE_DT], [CHECKER_ID], [APPROVE_DT] )VALUES ( @l_ASSET_ID, @p_ADDNEW_ID, 'ADD_NEW', CONVERT(DATETIME, @sToday, 103), '1', 'A', @l_MAKER_ID, CONVERT(DATETIME, @sToday, 103), @p_CHECKER_ID, CONVERT(DATETIME, @p_APPROVE_DT, 103) ) IF @@Error <> 0 GOTO ABORT --Insert bang ASS_LOCATION_HIST EXEC SYS_CodeMasters_Gen 'ASS_LOCATION_HIST', @l_LOCHIST_ID out IF @l_LOCHIST_ID='' OR @l_LOCHIST_ID IS NULL GOTO ABORT INSERT INTO ASS_LOCATION_HIST ( LOCHIST_ID, ASSET_ID, USE_START_DT, USE_END_DT, BRANCH_ID, DEPT_ID, EMP_ID, LOCATION, ISLEAF, PARENT_ID ) VALUES ( @l_LOCHIST_ID, @l_ASSET_ID, GETDATE(), NULL, @l_BRANCH_ID, @l_DEPT_ID, @l_EMP_ID, '', 'Y', NULL ) IF @@Error <> 0 GOTO ABORT END ELSE --- NHẬP LÔ BEGIN IF(EXISTS(SELECT * FROM ASS_TRANSACTIONS AT WHERE AT.TRN_ID = @p_ADDNEW_ID)) BEGIN DELETE ASS_MASTER_PO WHERE ASSET_ID IN (SELECT AT.ASSET_ID FROM ASS_TRANSACTIONS AT WHERE AT.TRN_ID = @p_ADDNEW_ID) DELETE ASS_MASTER WHERE ASSET_ID IN (SELECT AT.ASSET_ID FROM ASS_TRANSACTIONS AT WHERE AT.TRN_ID = @p_ADDNEW_ID) DELETE ASS_LOCATION_HIST WHERE ASSET_ID IN (SELECT AT.ASSET_ID FROM ASS_TRANSACTIONS AT WHERE AT.TRN_ID = @p_ADDNEW_ID) DELETE ASS_WARRANTY_DT WHERE ASSET_ID IN (SELECT AT.ASSET_ID FROM ASS_TRANSACTIONS AT WHERE AT.TRN_ID = @p_ADDNEW_ID) DELETE ASS_TRANSACTIONS WHERE TRN_ID = @p_ADDNEW_ID END ----thieuvq 14/10/2014 nhap seri theo lo --DECLARE @l_LSTSERI TABLE ( -- [ID] [int] NULL, -- [VALUE] [NVARCHAR](MAX) NULL) --DECLARE @l_SERI VARCHAR(MAX) ----LAY THONG TIN SO SERI --INSERT INTO @l_LSTSERI SELECT ROW_NUMBER() OVER (ORDER BY VALUE), VALUE FROM WSISPLIT(@l_ASSET_SERIAL_NO,',') --thieuvq 14/10/2014 nhap seri theo lo DECLARE @l_LSTSERI TABLE ( [ID] [int] IDENTITY(1,1) NOT NULL, [VALUE] [NVARCHAR](MAX) NULL) DECLARE @l_SERI VARCHAR(MAX) --LAY THONG TIN SO SERI --INSERT INTO @l_LSTSERI SELECT ROW_NUMBER() OVER (ORDER BY VALUE), VALUE FROM WSISPLIT(@l_ASSET_SERIAL_NO,',') INSERT INTO @l_LSTSERI SELECT VALUE FROM WSISPLIT(@l_ASSET_SERIAL_NO,',') DECLARE @TBTEMP TABLE(PO_ID VARCHAR(15),PD_ID VARCHAR(15),CREATE_DATE DATETIME) --INSERT CHI TIET TAI SAN INSERT INTO @TBTEMP SELECT POAD.PO_ID, GDDT.TRPO_ID,CONVERT(DATETIME, @sToday, 103) FROM ASS_ADDNEW_PO POAD LEFT JOIN ASS_ADDNEW_GD GDDT ON GDDT.PO_ID = POAD.PO_ID AND GDDT.ADDNEW_ID = @p_ADDNEW_ID WHERE POAD.ADDNEW_ID = @p_ADDNEW_ID -- SET @i = 1 WHILE (@i <= @l_QTY) BEGIN --Phat sinh Asset_ID EXEC SYS_CodeMasters_Gen 'ASS_MASTER', @l_ASSET_ID out IF @l_ASSET_ID='' OR @l_ASSET_ID IS NULL GOTO ABORT --Phat sinh ma tai san -- EXEC ASS_CODE_Gen @l_TYPE_ID, @l_GROUP_ID, @l_ASSET_CODE OUT -- IF @l_ASSET_CODE='' OR @l_ASSET_CODE IS NULL GOTO ABORT --THIEUVQ 14/10/2014 LAY SO SERI SET @l_SERI = (SELECT VALUE FROM @l_LSTSERI WHERE ID = @i) --Insert bang ASS_MASTER INSERT INTO ASS_MASTER ( [ASSET_ID], [TYPE_ID], [GROUP_ID], [ASSET_CODE], [ASSET_NAME], [ASSET_SERIAL_NO], [ASSET_DESC], [SUP_ID], [BUY_PRICE], [AMORT_AMT], [ASS_TYPE], [BRANCH_ID], [DEPT_ID], [EMP_ID], [DIVISION_ID], [BUY_DATE], [USE_DATE], [SPECIAL_ASS], [AMORT_MONTH], [AMORT_RATE], [AMORT_START_DATE], [AMORT_END_DATE], [FIRST_AMORT_AMT], [MONTHLY_AMORT_AMT], [AMORTIZED_MONTH], [AMORTIZED_AMT], [PO_ID], [PD_ID], [WAREHOUSE_ID], [LOCATION], [REF_ASSET_ID], [REF_AMORTIZED_AMT], [WARRANTY_MONTHS], [NOTES], [AMORT_STATUS], [ASS_STATUS], [ASS_STATUS_DESC], [ENTRY_BOOKED], [RECORD_STATUS], [AUTH_STATUS], [MAKER_ID], [CREATE_DT], [CHECKER_ID], [APPROVE_DT], [CONSTRUCT_ID], [USE_STATUS], [BRANCH_CREATE],[ACCOUNT_GL], VAT,PRICE_VAT, LIQ_W_STATUS -- HUNGDV MAC DINH = '0' ,REQ_ID ,REQ_CODE, -- KHIEMCHG thêm số phiếu yêu cầu để biết tài sản sinh ra từ pyc nào ASS_CODE_TMP,OS, MO_LICENSE ) VALUES ( @l_ASSET_ID, @l_TYPE_ID , @l_GROUP_ID, @l_ASSET_ID, @l_ASSET_NAME, @l_SERI, --@l_ASSET_SERIAL_NO, @l_ASSET_DESC, @l_SUP_ID, @l_BUY_PRICE, @l_AMORT_AMT, @l_ASS_TYPE, @l_BRANCH_ID, @l_DEPT_ID, @l_EMP_ID, @l_DIVISION_ID, CONVERT(DATETIME, @l_BUY_DATE, 103), CONVERT(DATETIME, @l_USE_DATE, 103), '0', @l_AMORT_MONTH, @l_AMORT_RATE, @l_AMORT_START_DATE, @l_AMORT_END_DATE, @l_FIRST_AMORT_AMT, @l_MONTHLY_AMT, 0, 0, @l_PO_ID, @l_PD_ID, NULL, NULL, @l_REF_ASSET_ID, @l_REF_AMORTIZED_AMT, @l_WARRANTY_MONTHS, @l_NOTES, @l_AMORT_STATUS, '1', --Mac dinh moi insert vao tinh trang tai san la binh thuong N'', @l_ENTRY_BOOKED, '1', 'U', @l_MAKER_ID, CONVERT(DATETIME, @sToday, 103), @p_CHECKER_ID, CONVERT(DATETIME, @p_APPROVE_DT, 103), @l_CONSTRUCT_ID , 'BT', @BRANCH_CREATE,@ACCOUNT_GL, @VAT,@PRICE_VAT, '0' -- HUNGDV LIQ_W_STATUS MAC DINH = '0' ,@REQ_ID ,@REQ_CODE,@l_ASSET_ID, @WIN, @OFFICE ) IF @@Error <> 0 GOTO ABORT --INSERT CHI TIET TAI SAN INSERT INTO ASS_MASTER_PO SELECT @l_ASSET_ID, * FROM @TBTEMP --Insert bang ASS_WARRANTY_DET tu bang ASS_ADDNEW_DT insert into ASS_WARRANTY_DT(ASSET_ID, WAR_DT, WAR_CONTENT) select @l_ASSET_ID, A.WAR_DT, A.WAR_CONTENT from ASS_ADDNEW_DT A WHERE A.ADDNEW_ID= @p_ADDNEW_ID IF @@Error <> 0 GOTO ABORT --INSERT VAO BANG ASS_TRANSACTIONS INSERT INTO ASS_TRANSACTIONS(ASSET_ID, TRN_ID, TRN_TYPE, TRN_DATE, RECORD_STATUS, AUTH_STATUS, [MAKER_ID], [CREATE_DT], [CHECKER_ID], [APPROVE_DT] )VALUES ( @l_ASSET_ID, @p_ADDNEW_ID, 'ADD_NEW', CONVERT(DATETIME, @sToday, 103), '1', 'A', @l_MAKER_ID, CONVERT(DATETIME, @sToday, 103), @p_CHECKER_ID, CONVERT(DATETIME, @p_APPROVE_DT, 103) ) IF @@Error <> 0 GOTO ABORT --Insert bang ASS_LOCATION_HIST EXEC SYS_CodeMasters_Gen 'ASS_LOCATION_HIST', @l_LOCHIST_ID out IF @l_LOCHIST_ID='' OR @l_LOCHIST_ID IS NULL GOTO ABORT INSERT INTO ASS_LOCATION_HIST ( LOCHIST_ID, ASSET_ID, USE_START_DT, USE_END_DT, BRANCH_ID, DEPT_ID, EMP_ID, LOCATION, ISLEAF, PARENT_ID ) VALUES ( @l_LOCHIST_ID, @l_ASSET_ID, GETDATE(), NULL, @l_BRANCH_ID, @l_DEPT_ID, @l_EMP_ID, '', 'Y', NULL ) IF @@Error <> 0 GOTO ABORT SET @i = @i + 1 END END ---- SET VE NULL ĐỂ KT LƯU HIỆN RÀNG BUỘC UPDATE ASS_ADDNEW SET AMORT_MONTH = NULL WHERE ADDNEW_ID = @p_ADDNEW_ID INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_ADDNEW_ID, 'APPROVE', @p_CHECKER_ID, GETDATE(), N'Trưởng đơn vị phê duyệt' , N'Trưởng đơn vị phê duyệt thành công' ) -- ---UPDATE NGAY HOA DON VA SO HOA DON LEN PO -- UPDATE TR_PO_DETAIL SET INVOICENO = A.INVOICE_NO, INVOICE_DT = A.INVOICE_DT -- FROM ASS_ADDNEW_GD A -- WHERE A.TRPO_ID = PD_ID AND A.ADDNEW_ID = @p_ADDNEW_ID -- UPDATE SỐ TỜ TRÌNH VÀO PYC --IF(@REQ_CODE IS NOT NULL AND @REQ_CODE <> '') UPDATE TR_REQUEST_SHOP_DOC SET PL_CODE = @PL_CODE WHERE REQ_CODE = @REQ_CODE COMMIT TRANSACTION SELECT '0' as Result, @p_ADDNEW_ID ADDNEW_ID, @l_TYPE_ID ErrorDesc--LUU TRU TAM DE GUI MAIL THONG BAO -- HUNGDV Them Code de gui notification , (SELECT STUFF((SELECT '; ' + DTA.PO_CODE FROM ASS_ADDNEW_PO DTA WHERE DTA.ADDNEW_ID = @p_ADDNEW_ID FOR XML PATH('') ),1,1,'') ) as CODE RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ADDNEW_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[ASS_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(50) 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_TRANSFER_EMP_Search]' GO ALTER PROCEDURE [dbo].[ASS_TRANSFER_EMP_Search] @p_EMP_CODE varchar(15) = NULL , @p_EMP_NAME nvarchar(50) = NULL , @p_BRANCH_ID_OLD varchar(15) = NULL , @p_BRANCH_ID_NEW varchar(15) = NULL, @p_STATUS VARCHAR(20) = NULL, @p_TRANSFER_DT VARCHAR(50) = NULL, @p_TOP INT = NULL AS BEGIN -- PAGING SET @p_TRANSFER_DT = NULL IF(@p_TOP IS NULL OR @p_TOP = '' OR @p_TOP = 0) -- PAGING BEGIN SELECT A.*, E.CONTENT AS STATUS_NAME,--Trạng thái điều chuyển O.BRANCH_NAME AS BRANCH_NAME_OLD,--Đơn vị cũ O.BRANCH_CODE AS BRANCH_CODE_OLD,--Đơn vị cũ N.BRANCH_NAME AS BRANCH_NAME_NEW,--Đơn vị mới N.BRANCH_CODE AS BRANCH_CODE_NEW,--Đơn vị mới ce.EMP_CODE, --NHÂN VIÊN ce.EMP_NAME --NHÂN VIÊN -- SELECT END FROM CM_EMPLOYEE_TRANSFER_LOG A LEFT JOIN CM_BRANCH O ON A.BRANCH_ID_OLD = O.BRANCH_ID --Đơn vị cũ LEFT JOIN CM_BRANCH N ON A.BRANCH_ID_NEW = N.BRANCH_ID --Đơn vị mới LEFT JOIN CM_ALLCODE E ON E.CDNAME = 'TF_EMP_STATUS' AND E.CDVAL = A.STATUS LEFT JOIN CM_EMPLOYEE ce ON A.EMP_ID = ce.EMP_ID --NHÂN VIÊN WHERE 1 = 1 AND (ce.EMP_CODE LIKE '%' + @p_EMP_CODE + '%' OR @p_EMP_CODE IS NULL OR @p_EMP_CODE = '') AND (ce.EMP_NAME LIKE '%' + @p_EMP_NAME + '%' OR @p_EMP_NAME IS NULL OR @p_EMP_NAME = '') AND (A.BRANCH_ID_OLD LIKE '%' + @p_BRANCH_ID_OLD + '%' OR @p_BRANCH_ID_OLD IS NULL OR @p_BRANCH_ID_OLD = '') AND (A.BRANCH_ID_NEW LIKE '%' + @p_BRANCH_ID_NEW + '%' OR @p_BRANCH_ID_NEW IS NULL OR @p_BRANCH_ID_NEW = '') AND (A.STATUS LIKE '%' + @p_STATUS + '%' OR @p_STATUS IS NULL OR @p_STATUS = '') AND (DATEDIFF(DAY,A.TRANSFER_DT ,CONVERT(DATETIME, @p_TRANSFER_DT, 103)) =0 OR @p_TRANSFER_DT IS NULL OR @p_TRANSFER_DT = '') -- PAGING END ELSE -- PAGING BEGIN SELECT TOP(CONVERT(INT,@p_TOP))A.*, E.CONTENT AS STATUS_NAME,--Trạng thái điều chuyển O.BRANCH_NAME AS BRANCH_NAME_OLD,--Đơn vị cũ O.BRANCH_CODE AS BRANCH_CODE_OLD,--Đơn vị cũ N.BRANCH_NAME AS BRANCH_NAME_NEW,--Đơn vị mới N.BRANCH_CODE AS BRANCH_CODE_NEW,--Đơn vị mới ce.EMP_CODE, --NHÂN VIÊN ce.EMP_NAME --NHÂN VIÊN -- SELECT END FROM CM_EMPLOYEE_TRANSFER_LOG A LEFT JOIN CM_BRANCH O ON A.BRANCH_ID_OLD = O.BRANCH_ID --Đơn vị cũ LEFT JOIN CM_BRANCH N ON A.BRANCH_ID_NEW = N.BRANCH_ID --Đơn vị mới LEFT JOIN CM_ALLCODE E ON E.CDNAME = 'TF_EMP_STATUS' AND E.CDVAL = A.STATUS LEFT JOIN CM_EMPLOYEE ce ON A.EMP_ID = ce.EMP_ID --NHÂN VIÊN WHERE 1 = 1 AND (ce.EMP_CODE LIKE '%' + @p_EMP_CODE + '%' OR @p_EMP_CODE IS NULL OR @p_EMP_CODE = '') AND (ce.EMP_NAME LIKE '%' + @p_EMP_NAME + '%' OR @p_EMP_NAME IS NULL OR @p_EMP_NAME = '') AND (A.BRANCH_ID_OLD LIKE '%' + @p_BRANCH_ID_OLD + '%' OR @p_BRANCH_ID_OLD IS NULL OR @p_BRANCH_ID_OLD = '') AND (A.BRANCH_ID_NEW LIKE '%' + @p_BRANCH_ID_NEW + '%' OR @p_BRANCH_ID_NEW IS NULL OR @p_BRANCH_ID_NEW = '') AND (A.STATUS LIKE '%' + @p_STATUS + '%' OR @p_STATUS IS NULL OR @p_STATUS = '') AND (DATEDIFF(DAY,A.TRANSFER_DT ,CONVERT(DATETIME, @p_TRANSFER_DT, 103)) =0 OR @p_TRANSFER_DT IS NULL OR @p_TRANSFER_DT = '') -- PAGING END END -- PAGING 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, B.NOTES AS QUY_CACH, A.NOTES, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS STT ,CE.EMP_NAME FROM ASS_USE_MULTI_DT A LEFT JOIN TR_REQUEST_SHOP_DOC R ON A.REQ_ID = R.REQ_ID LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID LEFT JOIN ASS_GROUP C ON B.GROUP_ID = C.GROUP_ID LEFT JOIN CM_UNIT D ON C.UNIT = D.UNIT_ID LEFT JOIN ASS_STATUS E ON B.ASS_STATUS = E.STATUS_ID LEFT JOIN CM_EMPLOYEE CE ON A.EMP_ID = CE.EMP_ID WHERE A.USER_MASTER_ID = @USER_MASTER_ID --TABLE 4 CHỮ KÝ SELECT TOP 1 E.TLFullName AS CHECKER_NAME, --BÊN NHẬN ISNULL(C.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP WHERE PP.REQ_ID = A.USER_MASTER_ID AND PP.PROCESS_ID = 'CONFIRM' AND PP.CHECKER_ID = B.MAKER_ID ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME_2,--BÊN NHẬN D.TLFullName AS MAKER_NAME, --BÊN GIAO --G.TLFullName AS INTERMEDIATE_UNIT_NAME, --ĐƠN VỊ TRUNG GIAN ISNULL(F.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP WHERE PP.REQ_ID = A.USER_MASTER_ID AND PP.PROCESS_ID = 'SEND' AND PP.CHECKER_ID = A.MAKER_ID ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME --BÊN GIAO --H.POS_NAME AS POS_NAME_1 -- ĐƠN VỊ TRUNG GIAN FROM ASS_USE_MULTI_MASTER A LEFT JOIN ASS_USE_CONFIRM_MASTER B ON A.USER_MASTER_ID = B.USER_MASTER_ID LEFT JOIN TL_USER E ON B.MAKER_ID = E.TLNANME --BÊN NHẬN LEFT JOIN CM_EMPLOYEE_LOG C ON B.MAKER_ID = C.USER_DOMAIN --BÊN NHẬN LEFT JOIN TL_USER D ON A.MAKER_ID = D.TLNANME --BÊN GIAO LEFT JOIN CM_EMPLOYEE_LOG F ON D.TLNANME = F.USER_DOMAIN --LEFT JOIN TL_USER G ON A.CHECKER_ID = G.TLNANME -- DVTG --LEFT JOIN CM_EMPLOYEE_LOG H ON A.CHECKER_ID = H.USER_DOMAIN --DVTG WHERE A.USER_MASTER_ID = @USER_MASTER_ID --TABLE 5 SỐ SELECT @USER_MASTER_ID AS NO --TABLE 6 ĐƠN VỊ TRUNG GIAN SELECT '' TLFullName, '' ADDRESS, '' PHONE, '' POS_NAME --SELECT TOP 1 B.TLFullName, B.ADDRESS, B.PHONE, C.POS_NAME, ISNULL(D.BRANCH_NAME,'') + ISNULL(' - ' + E.DEP_NAME,'') AS BRANCH_NAME --FROM ASS_USE_MULTI_MASTER A --LEFT JOIN TL_USER B ON A.CHECKER_ID = B.TLNANME --LEFT JOIN CM_EMPLOYEE_LOG C ON B.TLNANME = C.USER_DOMAIN --LEFT JOIN CM_BRANCH D ON A.BRANCH_CREATE = D.BRANCH_ID --LEFT JOIN CM_DEPARTMENT E ON A.DEPT_CREATE = E.DEP_ID --WHERE A.USER_MASTER_ID = @USER_MASTER_ID END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[ASS_TRANSFER_EM_Upd_By_LogId]' GO ALTER PROCEDURE [dbo].[ASS_TRANSFER_EM_Upd_By_LogId] @p_LOG_ID INT AS --Validation is here IF(NOT EXISTS(SELECT * FROM CM_EMPLOYEE_TRANSFER_LOG cetl WHERE cetl.LOG_ID = @p_LOG_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' Result, N'Không tồn tại LOG_ID' ErrorDesc RETURN -1 END DECLARE @I_EMP_ID VARCHAR(20) = (SELECT cetl.EMP_ID FROM CM_EMPLOYEE_TRANSFER_LOG cetl WHERE cetl.LOG_ID = @p_LOG_ID) DECLARE @C_Ma_DV_Cu VARCHAR(20) = (SELECT cetl.BRANCH_ID_OLD FROM CM_EMPLOYEE_TRANSFER_LOG cetl WHERE cetl.LOG_ID = @p_LOG_ID) DECLARE @C_Ma_DV_Moi VARCHAR(20) = (SELECT cetl.BRANCH_ID_NEW FROM CM_EMPLOYEE_TRANSFER_LOG cetl WHERE cetl.LOG_ID = @p_LOG_ID) DECLARE @I_STATUS VARCHAR(1) BEGIN TRANSACTION BEGIN IF(EXISTS( SELECT atmd.ASSET_ID FROM ASS_TRANSFER_MULTI_DT atmd WHERE (atmd.EMP_ID = @I_EMP_ID AND atmd.EMP_ID_OLD = @I_EMP_ID AND (atmd.BRANCH_ID = @C_Ma_DV_Moi AND atmd.BRANCH_ID_OLD = @C_Ma_DV_Cu) AND atmd.AUTH_STATUS_KT <> 'A') --ĐIỀU CHUYỂN TS TỪ ĐV NÀY SANG ĐV KHÁC CHO CHÙNG NV OR (atmd.EMP_ID_OLD = @I_EMP_ID AND atmd.BRANCH_ID_OLD = @C_Ma_DV_Cu AND atmd.EMP_ID <> @I_EMP_ID AND atmd.AUTH_STATUS_KT <> 'A') --ĐIỀU CHUYỂN TS TỪ ĐV NÀY SANG ĐV KHÁC NHƯNG KHÁC NV UNION ALL SELECT am.ASSET_ID FROM ASS_MASTER am WHERE am.BRANCH_ID = @C_Ma_DV_Cu AND am.EMP_ID = @I_EMP_ID)) SET @I_STATUS = '0' ELSE SET @I_STATUS = '1' IF(@I_STATUS = '0') GOTO ABORT ELSE UPDATE CM_EMPLOYEE_TRANSFER_LOG SET STATUS = '1' WHERE LOG_ID = @p_LOG_ID IF @@Error <> 0 GOTO ABORT END COMMIT TRANSACTION SELECT '0' as Result, N'Xác nhận thành công' ErrorDesc RETURN 0 ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, N'Tài sản của nhân viên chưa điều chuyển hết. Xác nhận thất bại' ErrorDesc RETURN -1 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 (BRN_HIST.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 --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].[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) EXEC ENTRIES_POST_GEN_NO @p_BRANCH_ID = 'DV0001' ,@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].[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 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 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].[ASS_MASTER_ById]' GO /* [ASS_MASTER_ById] 'ASS000000000001','' SELECT * FROM ASS_MASTER ORDER BY ASSET_CODE */ ALTER PROCEDURE [dbo].[ASS_MASTER_ById] @p_ASSET_ID varchar(15) = NULL, @p_ASSET_CODE varchar(150) = NULL AS declare @l_Asset_ID varchar(15) BEGIN SELECT @l_Asset_ID = ASSET_ID FROM ASS_MASTER WHERE ASSET_CODE = @p_ASSET_CODE SELECT --TOP 1 A.ASSET_ID, A.[TYPE_ID],C.[TYPE_CODE], C.[TYPE_NAME], A.GROUP_ID,B.GROUP_CODE, B.GROUP_NAME,B.EXP_ACCTNO, 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.MONTHLY_AMORT_AMT 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, DP.DEP_ID , DP.DEP_CODE, DP.DEP_NAME,B.EXP_ACCTNO, A.MONTHLY_AMORT_AMT, --luctv:09/01/2019 So tien khau hau 1 thang a.FIRST_AMORT_AMT, --luctv:09/01/2019 So tien khau hao thang dau tien ------------BAODNQ 14/4/2022 : LẤY THÔNG TIN ĐƠN VỊ TẠO------ A.BRANCH_CREATE AS BRANCH_CREATE_ID, BRC.BRANCH_NAME AS BRANCH_CREATE_NAME, ------------END BAODNQ----------------- --khanhnhd B.DVCM_ID --end khanhnhd 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_DIVISION CM ON CM.DIV_ID=A.DIVISION_ID LEFT JOIN CM_DEPARTMENT DP ON DP.DEP_ID = A.DEPT_ID --------------BAODNQ :14/4/2022: LẤY THÔNG TIN ĐƠN VỊ TẠO--------- LEFT JOIN CM_BRANCH BRC ON A.BRANCH_CREATE = BRC.BRANCH_ID ----------------END BAODNQ------------- WHERE 1 = 1 AND (A.ASSET_ID = @p_ASSET_ID OR @p_ASSET_ID IS NULL OR @p_ASSET_ID = '') AND (A.ASSET_CODE = @p_ASSET_CODE OR @p_ASSET_CODE IS NULL OR @p_ASSET_CODE = '') --SELECT * --FROM ASS_WARRANTY_DT A --WHERE 1=1 -- AND (A.ASSET_ID = @l_Asset_ID OR @l_Asset_ID IS NULL OR @l_Asset_ID = '') END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[ASS_USE_MUILTI_MASTER_SendAppr]' GO ALTER PROCEDURE [dbo].[ASS_USE_MUILTI_MASTER_SendAppr] @p_USER_MASTER_ID VARCHAR(15) = NULL, @p_USER_LOGIN VARCHAR(100) = 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_USE_MULTI_DT A where A.USER_MASTER_ID = @p_USER_MASTER_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 IF(EXISTS(SELECT 1 FROM dbo.ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID=@p_USER_MASTER_ID AND AUTH_STATUS='R')) BEGIN ROLLBACK TRANSACTION SELECT '-1' Result, N'Gửi duyệt thất bại! Thông tin xuất sử dụng phiếu số: '+@p_USER_MASTER_ID+ N' đang bị từ chối. Vui lòng xử lý phiếu' ErrorDesc RETURN '-1' END IF(NOT EXISTS(SELECT 1 FROM ASS_USE_MULTI_DT aumd WHERE aumd.USER_MASTER_ID = @p_USER_MASTER_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' Result, N'Danh sách tài sản không được để trống.' ErrorDesc RETURN '-1' END --PHUCVH 16/11/22 NẾU ĐV ĐỀ NGHỊ LÀ HỘI SỞ THÌ CHỈ XUẤT SỬ DỤNG CHO CÙNG 1 PHÒNG BAN ĐỀ NGHỊ TRONG 1 PHIẾU IF(EXISTS(SELECT TOP 1 A.USER_MASTER_ID FROM ASS_USE_MULTI_MASTER A LEFT JOIN ASS_USE_MULTI_DT B ON A.USER_MASTER_ID = B.USER_MASTER_ID WHERE A.USER_MASTER_ID = @p_USER_MASTER_ID AND A.DEP_ID <> B.DEPT_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' Result, N'Gửi duyệt thất bại! Phòng ban đề nghị và Phòng ban xuất sử dụng không khớp nhau.' ErrorDesc RETURN '-1' END --PHUCVH 14/11/22 UPDATE TÀI SẢN ĐANG TREO GIAO DỊCH UPDATE ASS_MASTER SET CURRENT_TRANS = @p_USER_MASTER_ID, CURRENT_TRANS_TYPE = 'ASS_USE_MUL' WHERE ASSET_ID IN (SELECT B.ASSET_ID FROM ASS_USE_MULTI_DT B WHERE B.USER_MASTER_ID = @p_USER_MASTER_ID) --START PHUCVH 07/10/22 UPDATE ALLOCATED PHIẾU YÊU CẦU DT DECLARE @TBL_GROUP_CODE_ASS_USE TABLE (GROUP_ID VARCHAR(100)) 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 DECLARE @ALLOCATED_CURR INT DECLARE @QTY_ETM INT DECLARE @ALLOCATED_OLD INT DECLARE @IS_MULTI_GROUP VARCHAR(1) = '0' 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 = '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_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 -- AND C.GROUP_ID IN (SELECT GROUP_ID FROM @TBL_GROUP_CODE_ASS_USE) -- AND ((@C_REQ_DT_TYPE = 'BUYNEW' AND C.REQ_ID = @C_REQ_DOC_ID))))TMP) SET @ALLOCATED_CURR = (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_USER_MASTER_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_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 -- AND C.GROUP_ID IN (SELECT GROUP_ID FROM @TBL_GROUP_CODE_ASS_USE) -- AND ((@C_TYPE_XL = 'CPTK' 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_USE_MULTI_DT A LEFT JOIN ASS_MASTER C ON A.ASSET_ID = C.ASSET_ID WHERE A.USER_MASTER_ID = @p_USER_MASTER_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 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 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 UPDATE ASS_USE_MULTI_MASTER SET AUTH_STATUS = 'U' WHERE USER_MASTER_ID = @p_USER_MASTER_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_USER_MASTER_ID AND PROCESS_ID = 'UPDATE' INSERT INTO dbo.PL_PROCESS(REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES) VALUES(@p_USER_MASTER_ID, 'SEND', @p_USER_LOGIN, GETDATE(), N'Nhân viên gửi phê duyệt', N'Nhân viên tạo phiếu và gửi phê duyệt thành công') IF @@ERROR <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, N'Hồ sơ số: '+@p_USER_MASTER_ID+ N' đã được gửi phê duyệt thành công. Vui lòng đợi trưởng đơn vị phê duyệt.' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' USER_MASTER_ID, '' ErrorDesc RETURN '-1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[CM_EMPLOYEE_Search_NotMapping]' GO ALTER PROCEDURE [dbo].[CM_EMPLOYEE_Search_NotMapping] @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_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 IF(@p_TOP IS NULL OR @p_TOP = '' OR @p_TOP = 0) -- PAGING BEGIN SELECT A.* -- SELECT END FROM CM_EMPLOYEE A 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 LIKE '%' + @p_EMP_NAME + '%' OR @p_EMP_NAME IS NULL OR @p_EMP_NAME = '') 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 A.EMP_CODE NOT IN (SELECT EL.EMP_CODE FROM CM_EMPLOYEE_LOG EL) -- 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.* -- SELECT END FROM CM_EMPLOYEE A 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 LIKE '%' + @p_EMP_NAME + '%' OR @p_EMP_NAME IS NULL OR @p_EMP_NAME = '') 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 A.EMP_CODE NOT IN (SELECT EL.EMP_CODE FROM CM_EMPLOYEE_LOG EL) -- 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_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) 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 EXEC ENTRIES_POST_GEN_NO @p_BRANCH_ID = 'DV0001' ,@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 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' 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_LIQUIDATION_BVB_Export]' GO ALTER PROCEDURE [dbo].[ASS_LIQUIDATION_BVB_Export] @p_LIQ_ID varchar(15) = NULL AS BEGIN SELECT ROW_NUMBER() OVER (ORDER BY A.LIQ_ID) AS STT, A.*, B.ASSET_NAME, B.ASSET_CODE, --A.REMAIN_VALUE AS REMAIN_AMORTIZED_AMT, ISNULL((B.AMORT_AMT - B.AMORTIZED_AMT), B.AMORT_AMT) AS REMAIN_AMORTIZED_AMT, --So tien khau hao con lai E.STATUS_NAME ASS_STATUS_NAME, --Tinh trang tai san BR_C.BRANCH_CODE BRANCH_CODE_CRE, BR_C.BRANCH_NAME BRANCH_NAME_CRE, BR_U.BRANCH_CODE BRANCH_CODE_USE, BR_U.BRANCH_NAME BRANCH_NAME_USE, AMORT_MONTH,ISNULL(AMORT_MONTH-AMORTIZED_MONTH,AMORT_MONTH) AS REMAIN_AMORT_MONTH, DP_U.DEP_CODE AS DEPT_CODE_USE, DP_U.DEP_NAME AS DEPT_NAME_USE,B.BUY_DATE_KT,B.AMORTIZED_MONTH,B.AMORTIZED_AMT, TY.TYPE_NAME,convert(nvarchar(20),convert(INT,AMORT_MONTH/12) ) + N' năm' as R_AMORT_MONTH,CM.TERM_TYPE, BD.CREATE_DT, B.USE_DATE, BR_C.BRANCH_CODE FROM ASS_LIQUIDATION_DT A LEFT JOIN ASS_MASTER B ON A.ASSET_ID=B.ASSET_ID LEFT JOIN ASS_TYPE TY ON B.TYPE_ID=TY.TYPE_ID LEFT JOIN ASS_LIQ_REQUEST BDD ON A.LIQ_ID=BDD.LIQ_ID LEFT JOIN CM_TERM CM ON BDD.TERM_ID=CM.TERM_ID LEFT JOIN ASS_LIQUIDATION BD ON A.LIQ_ID=BD.LIQ_ID LEFT JOIN ASS_STATUS E ON B.ASS_STATUS = E.STATUS_ID --LUCTV: 19-12-2018 BO SUNG LEFT JOIN DE LAY THONG TIN DON VI NHAP TAI SAN, DON VI DANG SU SUNG TAI SAN LEFT JOIN CM_BRANCH BR_C ON B.BRANCH_CREATE = BR_C.BRANCH_ID LEFT JOIN CM_BRANCH BR_U ON B.BRANCH_ID = BR_U.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT DP_U ON B.DEPT_ID = DP_U.DEP_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_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,B.NOTES AS QUY_CACH, A.NOTES, --ROW_NUMBER() OVER (PARTITION BY B.ASSET_NAME ORDER BY B.ASSET_NAME) AS STT, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS STT, CA.CONTENT AS COLLECT_REASON FROM ASS_COLLECT_MULTI_DT A LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID LEFT JOIN ASS_GROUP C ON B.GROUP_ID = C.GROUP_ID LEFT JOIN CM_UNIT D ON C.UNIT = D.UNIT_ID LEFT JOIN ASS_STATUS E ON B.ASS_STATUS = E.STATUS_ID LEFT JOIN ASS_COLLECT_MULTI_MASTER F ON A.COL_MULTI_MASTER_ID = F.COL_MULTI_MASTER_ID LEFT JOIN TR_REQUEST_SHOP_DOC REQ ON F.REQ_ID = REQ.REQ_ID LEFT JOIN CM_ALLCODE CA ON A.PURPOSE_ID = CA.CDVAL AND CA.CDNAME = 'REASON_ASS_REQ' AND CA.CDTYPE = 'REQ_ASSET' WHERE A.COL_MULTI_MASTER_ID = @COL_MULTI_MASTER_ID --TABLE 4 CHỮ KÝ --SELECT '' SELECT TOP 1 E.TLFullName AS MAKER_NAME, --BÊN GIAO ISNULL(C.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP WHERE PP.REQ_ID = A.COL_MULTI_MASTER_ID AND PP.PROCESS_ID = 'CONFIRM' AND PP.CHECKER_ID = B.MAKER_ID ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME,--BÊN GIAO D.TLFullName AS CHECKER_NAME, --BÊN NHẬN --D.TLFullName AS INTERMEDIATE_UNIT_NAME, --ĐƠN VỊ TRUNG GIAN --F.POS_NAME AS POS_NAME_1, --ĐƠN VỊ TRUNG GIAN ISNULL(F.POS_NAME,'') + CHAR(13) + N'Đã ký ngày ' + FORMAT((SELECT top 1 PP.APPROVE_DT FROM PL_PROCESS PP WHERE PP.REQ_ID = A.COL_MULTI_MASTER_ID AND PP.PROCESS_ID = 'APPROVE' AND PP.CHECKER_ID = A.CHECKER_ID ORDER BY PP.ID DESC),'dd/MM/yyyy HH:mm:ss') AS POS_NAME_2 --BÊN NHẬN FROM ASS_COLLECT_MULTI_MASTER A LEFT JOIN ASS_COLLECT_CONFIRM_MASTER B ON A.COL_MULTI_MASTER_ID = B.COL_MULTI_MASTER_ID LEFT JOIN TL_USER E ON B.MAKER_ID = E.TLNANME --BÊN GIAO LEFT JOIN CM_EMPLOYEE_LOG C ON B.MAKER_ID = C.USER_DOMAIN --BÊN GIAO LEFT JOIN TL_USER D ON A.CHECKER_ID = D.TLNANME --BÊN NHẬN + ĐƠN VỊ TRUNG GIAN LEFT JOIN CM_EMPLOYEE_LOG F ON A.CHECKER_ID = F.USER_DOMAIN --BÊN NHẬN + ĐƠN VỊ TRUNG GIAN WHERE A.COL_MULTI_MASTER_ID = @COL_MULTI_MASTER_ID --TABLE 5 SỐ SELECT @COL_MULTI_MASTER_ID AS NO --TABLE 6 ĐƠN VỊ TRUNG GIAN SELECT '' TLFullName, '' ADDRESS, '' PHONE, '' POS_NAME --SELECT TOP 1 B.TLFullName, B.ADDRESS, B.PHONE, C.POS_NAME,ISNULL(D.BRANCH_NAME,'') + ISNULL(' - ' + E.DEP_NAME,'') AS BRANCH_NAME --FROM ASS_COLLECT_MULTI_MASTER A --LEFT JOIN TL_USER B ON A.CHECKER_ID = B.TLNANME --LEFT JOIN CM_EMPLOYEE_LOG C ON B.TLNANME = C.USER_DOMAIN --LEFT JOIN CM_BRANCH D ON A.BRANCH_ID = D.BRANCH_ID --LEFT JOIN CM_DEPARTMENT E ON A.DEPT_CREATE = E.DEP_ID --WHERE A.COL_MULTI_MASTER_ID = @COL_MULTI_MASTER_ID END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[CM_EMPLOYEE_LOG_Ins]' GO ALTER PROCEDURE [dbo].[CM_EMPLOYEE_LOG_Ins] @p_EMP_CODE varchar(15) = NULL, @p_EMP_NAME nvarchar(50) = NULL, @p_BRANCH_CODE varchar(15) = NULL, @p_DEP_CODE varchar(15) = NULL, @p_USER_DOMAIN varchar(15) = NULL, @p_POS_CODE varchar(15) = NULL, @p_POS_NAME nvarchar(500) = NULL, @p_CREATE_DT varchar(20) = NULL AS --Validation is here --DECLARE @ERRORSYS NVARCHAR(15) = '' -- IF ( EXISTS ( SELECT 1 FROM CM_EMPLOYEE_LOG WHERE USER_DOMAIN = @p_USER_DOMAIN)) -- SET @ERRORSYS = 'EMPLOG-001' --IF @ERRORSYS <> '' --BEGIN -- SELECT ErrorCode Result, '' ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS -- RETURN '0' --END BEGIN TRANSACTION DECLARE @l_EMP_ID VARCHAR(15) INSERT INTO CM_EMPLOYEE_LOG(EMP_CODE, EMP_NAME, BRANCH_CODE, DEP_CODE, USER_DOMAIN, POS_CODE, POS_NAME, CREATE_DT) VALUES(@p_EMP_CODE, @p_EMP_NAME, @p_BRANCH_CODE, @p_DEP_CODE, @p_USER_DOMAIN, @p_POS_CODE, @p_POS_NAME, CONVERT(DATETIME, @p_CREATE_DT, 103)) --PHUCVH 26/12/22 UPDATE CHỨC DANH BẢNG CM_EMPLOYEE. ĐỂ CM_EMPLOYEE VÀ CM_EMPLOYEE_LOG ĐỒNG BỘ DATA VỚI NHAU UPDATE CM_EMPLOYEE SET POS_NAME = @p_POS_NAME, POS_CODE = @p_POS_CODE WHERE EMP_CODE = @p_EMP_CODE IF @@Error <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, @l_EMP_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_USE_CONFIRM_MASTER_Ins]' GO ALTER PROCEDURE [dbo].[ASS_USE_CONFIRM_MASTER_Ins] @p_BRANCH_ID varchar(15) = NULL, @p_DEP_ID varchar(15) = NULL, @p_USE_EXPORT_DT VARCHAR(20) = NULL, @p_USER_MASTER_ID varchar(15) = null, @p_USER_EXPORT 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 = NUL AS --START MOVE TỪ APPROVE HS QUA 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) DECLARE @l_OLD_LOCHIST_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 IF(EXISTS(SELECT 1 FROM ASS_USE_CONFIRM_MASTER WHERE USER_MASTER_ID = @p_USER_MASTER_ID)) BEGIN SELECT '-1' as Result, N'Phiếu xuất sử dụng đã được xác nhận' ErrorDesc RETURN '-1' END --END MOVE TỪ APPROVE HS QUA DECLARE @TBL_GROUP_CODE_ASS_USE TABLE (GROUP_ID VARCHAR(100)) BEGIN TRANSACTION DECLARE @l_USER_CONFIRM_MASTER_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'ASS_CONFIRM_USE_MASTER', @l_USER_CONFIRM_MASTER_ID out IF @l_USER_CONFIRM_MASTER_ID='' OR @l_USER_CONFIRM_MASTER_ID IS NULL GOTO ABORT INSERT INTO ASS_USE_CONFIRM_MASTER ( [USER_CONFIRM_MASTER_ID], [USER_MASTER_ID], [USE_EXPORT_DT], [BRANCH_ID], [DEP_ID], [MAKER_ID], [CONFIRM_DT], [CONFIRM_STATUS] ) VALUES ( @l_USER_CONFIRM_MASTER_ID, @p_USER_MASTER_ID, CONVERT(DATETIME, @p_USE_EXPORT_DT, 103), @p_BRANCH_ID, @p_DEP_ID, @p_MAKER_ID, GETDATE(), 'Y' ) IF @@Error <> 0 GOTO ABORT -- GIANT INSERT TO TABLE PL_PROCESS INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_USER_MASTER_ID, 'CONFIRM', @p_MAKER_ID, GETDATE(), N'Xác nhận xuất sử dụng tài sản ' , N'Xác nhận xuất sử dụng tài sản thành công' ) --START MOVE TỪ APPROVE HS QUA --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 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 --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 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), USE_DATE_KT = NULL -- ENTRY_BOOKED = @l_ENTRY_BOOKED, -- AMORT_RATE = @l_AMORT_RATE WHERE ASSET_ID = @l_ASSET_ID /***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 --Lay LOCHIST_ID SELECT @l_OLD_LOCHIST_ID = LOCHIST_ID FROM ASS_LOCATION_HIST WHERE ASSET_ID = @l_ASSET_ID AND ISLEAF='Y' 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' ----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', @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, @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 -- 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 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 @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_REQ_DOC_ID,@C_ASS_GROUP_ID,@C_ASS_ID,@C_REQ_DT_TYPE,@C_TYPE_XL DECLARE @ALLOCATED INT, @ALLOCATED_CHECK 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 = '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_USER_MASTER_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_USER_MASTER_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 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,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,0) WHERE REQDT_ID = @C_REQDT_ID IF @@Error <> 0 GOTO ABORT2 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 MOVE TỪ APPROVE HS QUA --PHUCVH 11/10/22 DONE PHIẾU YÊU CẦU DECLARE MYCURSOR CURSOR FOR SELECT aumd.REQ_ID FROM ASS_USE_MULTI_DT aumd WHERE aumd.USER_MASTER_ID= @p_USER_MASTER_ID AND aumd.REQ_ID IS NOT NULL AND aumd.REQ_ID <> '' GROUP BY aumd.REQ_ID OPEN MYCURSOR DECLARE @p_REQ_ID VARCHAR(20) FETCH NEXT FROM MYCURSOR INTO @p_REQ_ID WHILE @@FETCH_STATUS = 0 BEGIN IF(NOT EXISTS(SELECT TOP 1 A.REQDT_ID FROM TR_REQUEST_SHOP_DOC_DT A WHERE A.REQ_DOC_ID = @p_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 = @p_REQ_ID UPDATE PL_REQUEST_PROCESS SET STATUS = 'P' WHERE PROCESS_ID = 'APPROVE' AND REQ_ID = @p_REQ_ID INSERT INTO PL_REQUEST_PROCESS (REQ_ID, PROCESS_ID, STATUS, IS_LEAF) VALUES (@p_REQ_ID,'DONE','C','Y') END IF @@Error <> 0 GOTO ABORT3 FETCH NEXT FROM MYCURSOR INTO @p_REQ_ID END CLOSE MYCURSOR DEALLOCATE MYCURSOR COMMIT TRANSACTION SELECT '0' as Result, @l_USER_CONFIRM_MASTER_ID USER_CONFIM_MASTER_ID, N'Xác nhận xuất sử dụng tài sản thành công' ErrorDesc, @p_USER_MASTER_ID USER_MASTER_ID RETURN '0' ABORT: BEGIN CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION SELECT '-1' as Result, '' USER_MASTER_ID, '' ErrorDesc RETURN '-1' End ABORT2: BEGIN CLOSE DATA_CURSOR_CHECK_UPD DEALLOCATE DATA_CURSOR_CHECK_UPD ROLLBACK TRANSACTION SELECT '-1' as Result, '' USER_MASTER_ID, '' ErrorDesc RETURN '-1' END ABORT3: BEGIN CLOSE MYCURSOR DEALLOCATE MYCURSOR ROLLBACK TRANSACTION SELECT '-1' as Result, '' USER_MASTER_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 VARCHAR(200) = NULL, @p_ACC_NUM_OUT VARCHAR(100) = NULL, @p_ACC_NAME_OUT VARCHAR(100) = NULL, @p_BANK_NAME_OUT VARCHAR(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_ADDNEW_Search]' GO ALTER PROCEDURE [dbo].[ASS_ADDNEW_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 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) 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, ISNULL(A.BUY_PRICE,0) AS BUY_PRICE, ISNULL(A.AMORT_AMT,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)) 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 --- 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.[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 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('KSV_QLTS,GDDV,GDDV_QLTS,TBP_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, ISNULL(A.BUY_PRICE,0) AS BUY_PRICE, ISNULL(A.AMORT_AMT,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)) 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 --- 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.[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 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('KSV_QLTS,GDDV,GDDV_QLTS,TBP_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_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 = 'DV0001' ,@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_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_TRANSFER_MULTI_MASTER_KT_Upd]' GO ALTER PROCEDURE [dbo].[ASS_TRANSFER_MULTI_MASTER_KT_Upd] @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_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_CORE_NOTE VARCHAR(MAX) = NULL, @p_XmlData XML = NULL AS DECLARE @TRANSFER_MULTI_ID varchar(15), @ASSET_ID varchar(15), @BRANCH_ID varchar(15), @KHOI_ID varchar(15), @CENTER_ID varchar(15), @DEPT_ID varchar(15), @EMP_ID varchar(15), @LOCATION varchar(500), @DESCRIPTION nvarchar(1000), @BRANCH_ID_OLD varchar(15), @KHOI_ID_OLD varchar(15), @CENTER_ID_OLD varchar(15), @DEPT_ID_OLD varchar(15), @EMP_ID_OLD varchar(15), @REMAIN_VALUE DECIMAL(18,0),@ASS_AMORTIZED_MONTH DECIMAL, @ASS_AMORTIZED_AMT DECIMAL Declare @hdoc INT Exec sp_xml_preparedocument @hdoc Output,@p_XmlData DECLARE XmlData CURSOR FOR SELECT * FROM OPENXML(@hdoc,'/Root/XmlData',2) WITH ( TRANSFER_MULTI_ID varchar(15), ASSET_ID varchar(15), BRANCH_ID varchar(15), KHOI_ID VARCHAR(15), CENTER_ID VARCHAR(15), DEP_ID varchar(15), EMP_ID varchar(15), BRANCH_ID_OLD varchar(15), KHOI_ID_OLD varchar(15), CENTER_ID_OLD varchar(15), DEPT_ID_OLD varchar(15), EMP_ID_OLD varchar(15), LOCATION varchar(500), [DESCRIPTION] nvarchar(1000), REMAIN_VALUE DECIMAL(18,0), ASS_AMORTIZED_MONTH DECIMAL, ASS_AMORTIZED_AMT DECIMAL ) OPEN XmlData 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--------------- --DELETE FROM ASS_TRANSFER_MULTI_DT WHERE TRANS_MULTI_MASTER_ID = @p_TRANS_MULTI_MASTER_ID UPDATE ASS_TRANSFER_MULTI_MASTER SET [BRANCH_ID] = @p_BRANCH_ID, [TRANSFER_DT] = CONVERT(DATETIME, @p_TRANSFER_DT, 103), [USER_TRANSFER] = @p_USER_TRANSFER, [NOTES] = @p_NOTES, [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), [CREATE_DT_KT] = CONVERT(DATETIME, @p_CREATE_DT_KT, 103),[APPROVE_DT_KT] = CONVERT(DATETIME, @p_APPROVE_DT_KT, 103),[MAKER_ID_KT] = @p_MAKER_ID_KT, [CHECKER_ID_KT] = @p_CHECKER_ID_KT,[REPORT_STATUS] = @p_REPORT_STATUS,CORE_NOTE =@p_CORE_NOTE, ---LUCTV: 24-12-2018 BO SUNG CAP NHAT AUTH_STATUS =U. AUTH_STATUS_KT='E' WHERE TRANS_MULTI_MASTER_ID= @p_TRANS_MULTI_MASTER_ID IF @@Error <> 0 GOTO ABORT --Insert XmlData DELETE FROM ASS_TRANSFER_MULTI_DT WHERE TRANS_MULTI_MASTER_ID = @p_TRANS_MULTI_MASTER_ID FETCH NEXT FROM XmlData INTO @TRANSFER_MULTI_ID,@ASSET_ID,@BRANCH_ID, @KHOI_ID, @CENTER_ID,@DEPT_ID,@EMP_ID,@BRANCH_ID_OLD,@KHOI_ID_OLD,@CENTER_ID_OLD,@DEPT_ID_OLD, @EMP_ID_OLD,@LOCATION,@DESCRIPTION, @REMAIN_VALUE, @ASS_AMORTIZED_MONTH , @ASS_AMORTIZED_AMT WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @ERRORSYS NVARCHAR(200) = '',@ASSET_CODE nVARCHAR(20) IF ( EXISTS ( SELECT * FROM ASS_TRANSFER_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 điều chuyển' CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION SELECT '-1' as Result, @p_TRANS_MULTI_MASTER_ID TRANS_MULTI_MASTER_ID, @ERRORSYS ErrorDesc RETURN '-1' END IF ( EXISTS ( SELECT * FROM ASS_TRANSFER 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 điều chuyển' CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION SELECT '-1' as Result, @p_TRANS_MULTI_MASTER_ID TRANS_MULTI_MASTER_ID, @ERRORSYS ErrorDesc RETURN '-1' END IF(LEN(@TRANSFER_MULTI_ID) = 0) BEGIN EXEC SYS_CodeMasters_Gen 'ASS_TRANSFER_MULTI_DT', @TRANSFER_MULTI_ID out IF @TRANSFER_MULTI_ID='' OR @TRANSFER_MULTI_ID IS NULL GOTO ABORT END --LAY THONG TIN DON VI CU TRUOC DIEU CHUYEN SELECT @BRANCH_ID_OLD = BRANCH_ID, @DEPT_ID_OLD = DEPT_ID, @EMP_ID_OLD = EMP_ID FROM ASS_MASTER WHERE ASSET_ID = @ASSET_ID --thieuvq 07/09/2016 -- IF @BRANCH_ID = @BRANCH_ID_OLD AND ISNULL(@DEPT_ID,'') = ISNULL(@DEPT_ID_OLD,'') AND ISNULL(@EMP_ID,'') = ISNULL(@EMP_ID_OLD,'') -- BEGIN -- SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID) -- SELECT '-1' Result, '' TRANSFER_ID, N'TS: '+@ASSET_CODE+ N' Đơn vị nhận hoặc người nhận phải khác với đơn vị/nhân viên đang sử dụng hiện tại.' ErrorDesc -- CLOSE XmlData -- DEALLOCATE XmlData -- ROLLBACK TRANSACTION -- RETURN '-1' -- END INSERT INTO ASS_TRANSFER_MULTI_DT( [TRANSFER_MULTI_ID], [TRANS_MULTI_MASTER_ID], [ASSET_ID], [BRANCH_ID], [KHOI_ID], [CENTER_ID], [DEPT_ID], [EMP_ID], [BRANCH_ID_OLD], [KHOI_ID_OLD], [CENTER_ID_OLD], [DEPT_ID_OLD], [EMP_ID_OLD], [USE_START_DT], [DESCRIPTION], [LOCATION], [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], REMAIN_VALUE, ASS_AMORTIZED_MONTH, ASS_AMORTIZED_AMT ) VALUES( @TRANSFER_MULTI_ID, @p_TRANS_MULTI_MASTER_ID, @ASSET_ID, @BRANCH_ID, @KHOI_ID, @CENTER_ID, @DEPT_ID, @EMP_ID, @BRANCH_ID_OLD, @KHOI_ID_OLD, @CENTER_ID_OLD, @DEPT_ID_OLD, @EMP_ID_OLD, CONVERT(DATETIME, @p_TRANSFER_DT, 103), @DESCRIPTION, @LOCATION, @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', @REMAIN_VALUE, @ASS_AMORTIZED_MONTH , @ASS_AMORTIZED_AMT ) IF @@Error <> 0 GOTO ABORT FETCH NEXT FROM XmlData INTO @TRANSFER_MULTI_ID,@ASSET_ID,@BRANCH_ID, @KHOI_ID, @CENTER_ID,@DEPT_ID,@EMP_ID,@BRANCH_ID_OLD,@KHOI_ID_OLD,@CENTER_ID_OLD,@DEPT_ID_OLD, @EMP_ID_OLD,@LOCATION,@DESCRIPTION, @REMAIN_VALUE, @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_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) 'UPDATE', -- PROCESS_ID - varchar(10) @p_MAKER_ID_KT, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime N'Giao dịch viên cập nhật hạch toán', -- PROCESS_DESC - nvarchar(1000) 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_TRANS_MULTI_MASTER_ID TRANS_MULTI_MASTER_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION SELECT '-1' as Result, @p_TRANS_MULTI_MASTER_ID TRANS_MULTI_MASTER_ID, '' ErrorDesc RETURN '-1' 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, 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 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].[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')) 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')) 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].[FN_GET_BRANCH_LEADER]' GO ALTER FUNCTION [dbo].[FN_GET_BRANCH_LEADER] ( @BRANCH_ID VARCHAR(15), @DEPT_ID VARCHAR(50) ) RETURNS NVARCHAR(MAX) AS BEGIN DECLARE @BRANCH_TYPE VARCHAR(15), @TLNAME NVARCHAR(MAX) DECLARE @LST_USER_RECIVE TABLE (TLNAME VARCHAR(10)) SET @BRANCH_TYPE = (SELECT BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @BRANCH_ID) IF(@BRANCH_TYPE = 'PGD' ) BEGIN SET @TLNAME = (SELECT STUFF((SELECT '; ' + TLFullName FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_ID AND RoleName IN ('TPGD','PPGD','GDDV') FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'),1,2,'')) END ELSE IF(@BRANCH_TYPE = 'CN' ) BEGIN SET @TLNAME = (SELECT STUFF((SELECT '; ' + TLFullName FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_ID AND RoleName IN ('GDDV','PGD') FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'),1,2,'')) END ELSE IF(@BRANCH_TYPE = 'HS' ) BEGIN SET @TLNAME = (SELECT STUFF((SELECT '; ' + TLFullName FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_ID AND SECUR_CODE = @DEPT_ID AND RoleName IN ('GDDV','PP','TP') FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'),1,2,'')) END ELSE BEGIN SET @TLNAME = (SELECT STUFF((SELECT '; ' + TLFullName FROM TL_USER WHERE 1=1 AND TLSUBBRID = @BRANCH_ID AND SECUR_CODE = @DEPT_ID AND RoleName IN ('GDDV') FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'),1,2,'')) END RETURN @TLNAME 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 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 C.ID = @MAX_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 CRP.STATUS = 'B' THEN N'Mới tạo' WHEN A.IS_REJECTED = 0 THEN CRP.DESCRIBE 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 CRP.STATUS = 'B' THEN N'Lưu nháp' WHEN A.IS_REJECTED = 0 AND CRP.STATUS = 'M' 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 CRP.STATUS = 'B' THEN N'Mới tạo' WHEN A.IS_REJECTED = 0 THEN CRP.DESCRIBE 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 CRP.STATUS = 'B' THEN N'Lưu nháp' WHEN A.IS_REJECTED = 0 AND CRP.STATUS = 'M' 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].[TR_REQUEST_SHOP_DOC_ById]' GO ALTER PROCEDURE [dbo].[TR_REQUEST_SHOP_DOC_ById] @REQ_ID varchar(15), @p_USERNAME VARCHAR(100), @p_STATUS VARCHAR(20) AS DECLARE @ROLE_KT VARCHAR(50) = (SELECT TU.RoleName FROM TL_USER TU WHERE TU.TLNANME = @p_USERNAME) DECLARE @BRANCHID VARCHAR(20),@DEP_ID VARCHAR(20),@ROLE VARCHAR(20) SELECT @BRANCHID=TLSUBBRID ,@DEP_ID=DEP_ID FROM dbo.TL_USER WHERE TLNANME=@p_USERNAME 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_USERNAME) tugr DECLARE @lstCOST TABLE ( COST_ID VARCHAR(20) ) INSERT INTO @lstCOST SELECT COST_ID FROM dbo.TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID = @REQ_ID --SET @p_STATUS = (SELECT STATUS FROM dbo.TR_REQUEST_SHOP_DOC WHERE REQ_ID=@REQ_ID) SET @ROLE=(SELECT TOP 1 ROLE_USER FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@REQ_ID AND STATUS='C') 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 HAVING A.REQ_ID = @REQ_ID SELECT T.*, B.BRANCH_NAME, B.BRANCH_TYPE AS BRANCH_CRTYPE, PR.DVKD_USER_APP, PL.DVKD_USER_APP AS QLTS_USER_APP, CD.DEP_CODE, CD.DEP_NAME, 'Admin' AS DVKD_USER_APP ,TU2.TLFullName AS MAKER_NAME, TU.TLFullName AS CHECKER_NAME ,CASE WHEN T.REQ_TYPE = 'CPTS' AND T.IS_DONE = '1' AND T.STATUS = 'DONE' THEN 'APPROVE' ELSE T.STATUS END AS STATUS FROM TR_REQUEST_SHOP_DOC T LEFT JOIN CM_BRANCH B ON T.BRANCH_ID = B.BRANCH_ID LEFT JOIN CM_DEPARTMENT CD ON T.DEP_ID = CD.DEP_ID LEFT JOIN PL_REQUEST_PROCESS PR ON PR.REQ_ID=T.REQ_ID AND PR.PROCESS_ID = 'APPNEW' LEFT JOIN PL_REQUEST_PROCESS PL ON PL.REQ_ID=T.REQ_ID AND PL.PROCESS_ID = 'TTQLTS_D' LEFT JOIN TL_USER TU ON T.CHECKER_ID = TU.TLNANME LEFT JOIN TL_USER TU2 ON T.MAKER_ID = TU2.TLNANME WHERE T.REQ_ID = @REQ_ID AND (EXISTS(SELECT * FROM @REQ_ID_Temp RL WHERE RL.REQ_ID = T.REQ_ID) OR (@ROLE_KT IN ('GDV','KSV') AND T.AUTH_STATUS = 'A') OR EXISTS(SELECT 1 FROM dbo.FN_GET_USER_BY_ROLE_VB('QLTS',NULL,NULL) US WHERE US.TLNANME = @p_USERNAME)) GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[ASS_USE_MULTI_BVB_KT_Upd]' GO ALTER PROCEDURE [dbo].[ASS_USE_MULTI_BVB_KT_Upd] @p_USER_MASTER_ID varchar(15) = 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_BRANCH_CREATE varchar(15) = NULL, @p_CORE_NOTE VARCHAR(1000)= NULL, @p_NOTES NVARCHAR(1000) = NULL, @p_XmlData XML = NULL, @p_MAKER_ID_KT VARCHAR(100) = NULL, @p_CREATE_DT_KT VARCHAR(20) = NULL AS BEGIN TRANSACTION --LUCTV - KHAI BAO SO THANG KHAU HAO MIN, MAX CUA TAI SAN DECLARE @NHOMTS VARCHAR(15) DECLARE @MIN_AMR INT, @MAX_AMR INT, @INDEX INT DECLARE @ERRORSYS NVARCHAR(200) = '',@ASSET_CODE nVARCHAR(20) SET @INDEX=0 --END DECLARE @USE_MULTI_ID varchar(15), @ASSET_ID varchar(15), @BRANCH_ID varchar(15), @DEPT_ID varchar(15), @DIVISION_ID varchar(15), @EMP_ID varchar(15), @AMORT_START_DATE VARCHAR(20), @AMORT_MONTH decimal(18), @AMORT_END_DATE VARCHAR(20), @CORE_NOTE varchar(1000), @NOTES nvarchar(1000), @SUBBRANCH_ID VARCHAR(15), @FATHER_ID VARCHAR(15), @REQ_ID VARCHAR(15), @NUM_REPORT NVARCHAR(200) --Số tờ trình ,@ASS_AMORTIZED_MONTH DECIMAL, @ASS_AMORTIZED_AMT DECIMAL, @l_REMAIN_VALUE DECIMAL(18,0), @l_BUY_PRICE DECIMAL(18,0) Declare @hdoc INT Exec sp_xml_preparedocument @hdoc Output,@p_XmlData DECLARE XmlData CURSOR FOR SELECT * FROM OPENXML(@hdoc,'/Root/XmlData',2) WITH ( USE_MULTI_ID varchar(15), ASSET_ID varchar(15), BRANCH_ID varchar(15), DEPT_ID varchar(15), DIVISION_ID varchar(15), EMP_ID varchar(15), AMORT_START_DATE VARCHAR(20), AMORT_MONTH decimal(18), AMORT_END_DATE VARCHAR(20), CORE_NOTE varchar(1000), NOTES nvarchar(1000), SUBBRANCH_ID VARCHAR(15), FATHER_ID VARCHAR(15), REQ_ID VARCHAR(15), NUM_REPORT NVARCHAR(200), --Số tờ trình, ASS_AMORTIZED_MONTH DECIMAL, ASS_AMORTIZED_AMT DECIMAL ) OPEN XmlData ----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_USE_MULTI_MASTER SET [AUTH_STATUS_KT] = 'E',CORE_NOTE =@p_CORE_NOTE,NOTES=@p_NOTES, [CREATE_DT_KT] = GETDATE(),[MAKER_ID_KT] = @p_MAKER_ID_KT,[REPORT_STATUS] = 'N' WHERE USER_MASTER_ID= @p_USER_MASTER_ID DELETE FROM ASS_USE_MULTI_DT WHERE USER_MASTER_ID = @p_USER_MASTER_ID IF @@Error <> 0 GOTO ABORT --Insert XmlData FETCH NEXT FROM XmlData INTO @USE_MULTI_ID,@ASSET_ID,@BRANCH_ID,@DEPT_ID,@DIVISION_ID,@EMP_ID,@AMORT_START_DATE,@AMORT_MONTH,@AMORT_END_DATE,@CORE_NOTE,@NOTES ,@SUBBRANCH_ID, @FATHER_ID, @REQ_ID, @NUM_REPORT, @ASS_AMORTIZED_MONTH , @ASS_AMORTIZED_AMT WHILE @@FETCH_STATUS = 0 BEGIN SET @INDEX= @INDEX+1 IF(@BRANCH_ID = 'DV0001') BEGIN --NẾU PHIẾU MASTER LÀ HỘI SỞ THỊ CHECK K_TT_PB IF(@DEPT_ID IS NOT NULL AND @DEPT_ID <> '') BEGIN SET @DEPT_ID = @DEPT_ID END ELSE BEGIN IF(@FATHER_ID IS NOT NULL AND @FATHER_ID <> '') BEGIN SET @DEPT_ID = @FATHER_ID END ELSE BEGIN IF(@SUBBRANCH_ID IS NOT NULL AND @SUBBRANCH_ID <> '') BEGIN SET @DEPT_ID = @SUBBRANCH_ID END ELSE BEGIN DEALLOCATE XmlData ROLLBACK TRANSACTION SELECT '-1' as Result, '' USER_MASTER_ID, N'Dòng thứ ' + CONVERT(VARCHAR(5),@INDEX) + N' vui lòng chọn Khối/Trung tâm/Phòng ban' ErrorDesc RETURN '-1' END END END END ELSE --NẾU PHIẾU MASTER KHÔNG PHẢI HỘI SỞ THÌ GÁN PHÒNG BAN = NULL BEGIN SET @DEPT_ID = NULL END --LUCTV - KIEM TRA SO THANG KHAU HAO PHAI NAM TRONG MIN -MAX SET @NHOMTS =(SELECT GROUP_ID FROM ASS_MASTER WHERE ASSET_ID= @ASSET_ID) SET @MIN_AMR =(SELECT AMORT_MONTH_MIN FROM ASS_GROUP WHERE GROUP_ID =@NHOMTS) SET @MAX_AMR =(SELECT AMORT_MONTH_MAX FROM ASS_GROUP WHERE GROUP_ID=@NHOMTS) IF(@AMORT_MONTH >@MAX_AMR OR @AMORT_MONTH <@MIN_AMR) BEGIN CLOSE XmlData DEALLOCATE XmlData ROLLBACK TRANSACTION SELECT '-1' as Result,N'Dòng' +CONVERT(VARCHAR(15),@INDEX) +N': Số tháng khấu hao phải nằm trong khoảng ('+CONVERT(VARCHAR(15),@MIN_AMR)+' - '+CONVERT(VARCHAR(15),@MAX_AMR)+N') tháng' ErrorDesc RETURN '-1' END -- 23-07-2019 KIEM TRA -- IF ( EXISTS ( SELECT * FROM ASS_USE_MULTI_DT WHERE [ASSET_ID] = @ASSET_ID AND USER_MASTER_ID<> @p_USER_MASTER_ID AND -- (CHECKER_ID IS NULL OR CHECKER_ID_KT IS NULL OR (CHECKER_ID_KT IS NOT NULL 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 xuất sử dụng' -- CLOSE XmlData -- DEALLOCATE XmlData -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' USER_MASTER_ID, @ERRORSYS ErrorDesc -- RETURN '-1' -- -- END --END if(@AMORT_START_DATE='') set @AMORT_START_DATE=NULL if(@AMORT_END_DATE='') set @AMORT_END_DATE=NULL IF(LEN(@USE_MULTI_ID) = 0) BEGIN EXEC SYS_CodeMasters_Gen 'ASS_USE_MULTI_DT', @USE_MULTI_ID out IF @USE_MULTI_ID='' OR @USE_MULTI_ID IS NULL GOTO ABORT 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)) FROM ASS_MASTER A WHERE A.ASSET_ID = @ASSET_ID INSERT INTO ASS_USE_MULTI_DT([USE_MULTI_ID],[USER_MASTER_ID],[ASSET_ID],[AMORT_START_DATE],[BRANCH_ID], [DEPT_ID],[EMP_ID],[DIVISION_ID],[NOTES],[CORE_NOTE],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID], [CREATE_DT],[CHECKER_ID],[APPROVE_DT],[BRANCH_CREATE], [AMORT_MONTH], [AUTH_STATUS_KT],[CREATE_DT_KT], [MAKER_ID_KT],[REPORT_STATUS],[AMORT_END_DATE],REQ_ID,NUM_REPORT, ASS_AMORTIZED_MONTH, ASS_AMORTIZED_AMT,BUY_PRICE,REMAIN_VALUE) VALUES(@USE_MULTI_ID ,@p_USER_MASTER_ID,@ASSET_ID ,CONVERT(DATETIME, @AMORT_START_DATE, 103) ,@BRANCH_ID , @DEPT_ID ,@EMP_ID ,@DIVISION_ID ,@NOTES ,@p_CORE_NOTE--@CORE_NOTE LAY CORE NOTE MASTER ,@p_RECORD_STATUS ,@p_AUTH_STATUS ,@p_MAKER_ID ,CONVERT(DATE, @p_CREATE_DT,103) ,@p_CHECKER_ID ,CONVERT(DATE, @p_APPROVE_DT,103) ,@p_BRANCH_CREATE , @AMORT_MONTH , 'U' ,CONVERT(DATETIME, @p_CREATE_DT_KT, 103), @p_MAKER_ID_KT ,'N' ,CONVERT(DATETIME, @AMORT_END_DATE, 103),@REQ_ID,@NUM_REPORT, @ASS_AMORTIZED_MONTH , @ASS_AMORTIZED_AMT, @l_BUY_PRICE,@l_REMAIN_VALUE) IF @@Error <> 0 GOTO ABORT FETCH NEXT FROM XmlData INTO @USE_MULTI_ID,@ASSET_ID,@BRANCH_ID,@DEPT_ID,@DIVISION_ID,@EMP_ID,@AMORT_START_DATE,@AMORT_MONTH,@AMORT_END_DATE,@CORE_NOTE,@NOTES ,@SUBBRANCH_ID, @FATHER_ID, @REQ_ID, @NUM_REPORT, @ASS_AMORTIZED_MONTH , @ASS_AMORTIZED_AMT END CLOSE XmlData DEALLOCATE XmlData IF @@Error <> 0 GOTO ABORT -- HUYHT 06/05/2022: XÓA CÁC PROCESS UPDATE CŨ DELETE dbo.PL_PROCESS 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) 'UPDATE', -- PROCESS_ID - varchar(10) @p_MAKER_ID, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime 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' -- PROCESS_DESC - nvarchar(1000) ) COMMIT TRANSACTION SELECT '0' as Result,'' ErrorDesc, @p_USER_MASTER_ID AS USER_MASTER_ID RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION CLOSE XmlData DEALLOCATE XmlData SELECT '-1' as Result,'' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[rpt_ASS_TRANSFER_MULTI_CONFIRM_Excel]' GO ALTER PROC [dbo].[rpt_ASS_TRANSFER_MULTI_CONFIRM_Excel] @TRANS_MULTI_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.TRANS_MULTI_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, A.REQ_CODE, CD.DEP_NAME, CD.DEP_CODE FROM ASS_TRANSFER_MULTI_MASTER A INNER JOIN ASS_TRANSFER_MULTI_DT C ON C.TRANS_MULTI_MASTER_ID = A.TRANS_MULTI_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 CD ON C.DEPT_ID = CD.DEP_ID WHERE (A.TRANS_MULTI_MASTER_ID = @TRANS_MULTI_MASTER_ID OR @TRANS_MULTI_MASTER_ID IS NULL OR @TRANS_MULTI_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.TRANS_MULTI_MASTER_ID IN (SELECT TRANS_MULTI_MASTER_ID FROM dbo.ASS_TRANSFER_CONFIRM_MASTER WHERE CONFIRM_STATUS_BN = 'Y')) OR (@IS_CONFIRM = 'N' AND A.TRANS_MULTI_MASTER_ID NOT IN (SELECT TRANS_MULTI_MASTER_ID FROM dbo.ASS_TRANSFER_CONFIRM_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 = '') END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_REQUEST_SHOP_DOC_Del]' GO ALTER PROCEDURE [dbo].[TR_REQUEST_SHOP_DOC_Del] @REQ_ID varchar(15) AS DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( NOT EXISTS ( SELECT * FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID= @REQ_ID)) SET @ERRORSYS = 'REQ-00002' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END IF ( NOT EXISTS( SELECT 1 FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID= @REQ_ID AND AUTH_STATUS IN ('E','R'))) BEGIN SELECT '-1' Result, N'Phiếu đang được gửi phê duyệt. Xoá thất bại' ErrorDesc RETURN '0' END BEGIN TRANSACTION IF( (SELECT AUTH_STATUS FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID= @REQ_ID) = 'A') BEGIN UPDATE TR_REQUEST_SHOP_DOC SET RECORD_STATUS = '0' WHERE REQ_ID= @REQ_ID IF @@Error <> 0 GOTO ABORT --UPDATE DETAIL UPDATE TR_REQUEST_SHOP_DOC_DT SET RECORD_STATUS = '0' WHERE REQ_DOC_ID = @REQ_ID END ELSE BEGIN IF(EXISTS(SELECT 1 FROM TR_REQUEST_SHOP_DOC WHERE AUTH_STATUS IN ('E','R'))) BEGIN Delete FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID= @REQ_ID delete FROM TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID=@REQ_ID END IF @@Error <> 0 GOTO ABORT END COMMIT TRANSACTION SELECT '0' as Result, '' ErrorDesc, N'Xoá thành công' SuccessfullyDeleted RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[CM_PROCESS_DT_Create]' GO ALTER PROC [dbo].[CM_PROCESS_DT_Create] @p_ID VARCHAR(15) = NULL, @p_REQ_ID VARCHAR(50)=NULL, @p_TLNAME VARCHAR(200)=NULL AS BEGIN DECLARE @BRANCH_ID VARCHAR(20), @DEP_ID VARCHAR(20), @ROLE VARCHAR(20), @CURRENTSTATE VARCHAR(15), @CONDITION_STATUS VARCHAR(1), @DESCRIBE NVARCHAR(MAX), @COUNTDVCM INT, @TEMPDVCM_ID INT DECLARE @TEMPDVCM TABLE ( ID INT NOT NULL IDENTITY(1,1), COST_ID VARCHAR(15), REQ_ID VARCHAR(15) --,RANGE_PROCESS VARCHAR(15) ) BEGIN TRANSACTION SET @CURRENTSTATE = (SELECT TOP 1 crp.[STATUS] FROM CM_REQUEST_PROCESS crp WHERE crp.REQ_ID = @p_REQ_ID AND PROCESS_ID=CONVERT(INT, @p_ID)) SET @CONDITION_STATUS = (SELECT TOP 1 [STATUS] FROM CM_PROCESS WHERE ID=CONVERT(INT, @p_ID)) SET @ROLE = (SELECT TOP 1 ROLE FROM CM_PROCESS cp WHERE CONDITION_STATUS IN (SELECT [STATUS] FROM CM_PROCESS WHERE ID=CONVERT(INT, @p_ID)) AND CONDITION_STATUS<>[STATUS] ) INSERT INTO @TEMPDVCM SELECT trsc.COST_ID, trsc.REQ_ID FROM TR_REQUEST_SHOP_COSTCENTER trsc WHERE trsc.REQ_ID = @p_REQ_ID AND trsc.COST_ID NOT IN (SELECT crp.DEPT_ID FROM CM_REQUEST_PROCESS crp WHERE crp.REQ_ID = @p_REQ_ID AND crp.STATUS = 'G' AND crp.PROCESS_ID = 32) SET @TEMPDVCM_ID = 1 SET @COUNTDVCM = (SELECT COUNT(*) FROM @TEMPDVCM WHERE [@TEMPDVCM].REQ_ID = @p_REQ_ID GROUP BY [@TEMPDVCM].REQ_ID) INSERT INTO [dbo].[PL_PROCESS] ([REQ_ID] ,[PROCESS_ID] ,[CHECKER_ID] ,[APPROVE_DT] ,[PROCESS_DESC] ,[NOTES] ,[AUTH_STATUS]) SELECT @p_REQ_ID ,ID ,@p_TLNAME ,GETDATE() ,UPPER(LEFT(cp.DESCRIPTION,1))+LOWER(SUBSTRING(cp.DESCRIPTION,2,LEN(cp.DESCRIPTION))) --uppercase/capitalize the first letter vs just wanted to change it only for displaying and do not need the actual data in table to change ,cp.NOTES ,[STATUS] FROM CM_PROCESS cp WHERE ID=CONVERT(INT, @p_ID) DECLARE @TABLE VARCHAR(50)=NULL --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ý,... DECLARE @SYS_PREFIX VARCHAR(20) =(SELECT LEFT(Val,PATINDEX('%[^a-z]%', Val+'0')-1) from( SELECT SUBSTRING(@p_REQ_ID, PATINDEX('%[a-z]%', @p_REQ_ID), LEN(@p_REQ_ID)) Val )x) SET @TABLE=(SELECT sp.ID FROM SYS_PREFIX sp WHERE sp.Prefix = @SYS_PREFIX) SELECT @BRANCH_ID=BRANCH_ID,@DEP_ID=DEP_ID FROM ASS_LIQ_REQUEST ALR WHERE ALR.LIQ_REQ_ID = @p_REQ_ID --UPDATE STATUS DONE CM_REQUEST_PROCESS UPDATE CM_REQUEST_PROCESS SET DONE=1 WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID=CONVERT(INT, @p_ID) AND(DEPT_ID=(SELECT DEP_ID FROM TL_USER WHERE TLNANME=@p_TLNAME) OR DEPT_ID IS NULL OR DEPT_ID='') DELETE CM_REQUEST_PROCESS WHERE (DONE<>1 OR DONE IS NULL) AND REQ_ID=@p_REQ_ID AND PROCESS_ID<>CONVERT(INT, @p_ID) AND CONDITION_STATUS=(SELECT TOP 1 CONDITION_STATUS FROM CM_REQUEST_PROCESS WHERE PROCESS_ID=CONVERT(INT, @p_ID) AND REQ_ID=@p_REQ_ID) AND(DEPT_ID=(SELECT DEP_ID FROM TL_USER WHERE TLNANME=@p_TLNAME) OR DEPT_ID IS NULL OR DEPT_ID='') IF @ROLE LIKE '%QLTS' BEGIN SET @BRANCH_ID = 'DV0001' SET @DEP_ID = 'DEP000000000048' END IF(@CURRENTSTATE = 'E' AND NOT EXISTS (SELECT * FROM TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID=@p_REQ_ID)) BEGIN SET @p_ID = (SELECT cp.ID FROM CM_PROCESS cp WHERE cp.[STATUS] = 'G') SET @BRANCH_ID = 'DV0001' SET @DEP_ID = 'DEP000000000048' SET @CONDITION_STATUS = 'E' SET @ROLE = 'QLTS' END IF @ROLE LIKE '%DVCM' --AND @COUNTDVCM = 1 BEGIN SET @BRANCH_ID = 'DV0001' SET @DEP_ID = (SELECT COST_ID FROM @TEMPDVCM WHERE REQ_ID = @p_REQ_ID AND ID = 1)--(SELECT TRS.COST_ID FROM TR_REQUEST_SHOP_COSTCENTER TRS WHERE TRS.REQ_ID=@p_REQ_ID) END -- IF @ROLE LIKE 'DVCM' AND @COUNTDVCM > 1 AND NOT EXISTS (SELECT * FROM CM_REQUEST_PROCESS crp WHERE crp.REQ_ID = @p_REQ_ID AND crp.STATUS = 'F' AND crp.ROLE LIKE 'DVCM') -- BEGIN -- SET @BRANCH_ID = 'DV0001' -- SET @DEP_ID = (SELECT COST_ID FROM @TEMPDVCM WHERE REQ_ID = @p_REQ_ID AND ID = 1) -- END IF(@ROLE LIKE 'GDDVCM') BEGIN SET @ROLE = 'GDDV' SET @BRANCH_ID = 'DV0001' SET @DEP_ID = (SELECT COST_ID FROM @TEMPDVCM WHERE REQ_ID = @p_REQ_ID AND ID = 1)--(SELECT TRS.COST_ID FROM TR_REQUEST_SHOP_COSTCENTER TRS WHERE TRS.REQ_ID=@p_REQ_ID) END --CHECK STEP DVCM IN PROCESS IF(EXISTS(SELECT * FROM CM_PROCESS WHERE ID=CONVERT(INT,@p_ID) AND [STATUS] IN (SELECT CONDITION_STATUS FROM CM_PROCESS WHERE RANGE_PROCESS='DEPT')) AND NOT EXISTS (SELECT * FROM TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID=@p_REQ_ID)) BEGIN --CHANGE ID TO NEXT STEP SET @p_ID=(SELECT TOP(1) ID FROM CM_PROCESS WHERE [ORDER]>(SELECT [ORDER] FROM CM_PROCESS WHERE ID=CONVERT(INT, @p_ID)) AND (RANGE_PROCESS='DEPT') ORDER BY [ORDER] DESC) SET @DEP_ID = (SELECT TRS.COST_ID FROM TR_REQUEST_SHOP_COSTCENTER TRS WHERE TRS.REQ_ID=@p_REQ_ID) END IF(@CURRENTSTATE = 'G' AND EXISTS(SELECT * FROM @TEMPDVCM WHERE COST_ID IS NOT NULL AND REQ_ID = @p_REQ_ID)) BEGIN SET @p_ID = (SELECT cp.ID FROM CM_PROCESS cp WHERE cp.[STATUS] = 'E') SET @BRANCH_ID = 'DV0001' SET @DEP_ID = (SELECT COST_ID FROM @TEMPDVCM WHERE REQ_ID = @p_REQ_ID AND ID = 1) SET @CONDITION_STATUS = 'G' SET @ROLE = 'DVCM' END --INSERT INTO PL_REQUEST_PROCESS IF( NOT EXISTS(SELECT * FROM CM_REQUEST_PROCESS WHERE PROCESS_ID=CONVERT(INT,@p_ID) AND REQ_ID=@p_REQ_ID AND (DONE<>1 OR DONE IS NULL OR DONE ='') AND [ACTION]='APPROVE') -- AND -- NOT EXISTS(SELECT * FROM CM_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND [STATUS] IN(SELECT [STATUS] FROM CM_PROCESS WHERE CONDITION_STATUS=(SELECT [STATUS] FROM CM_PROCESS WHERE ID=CONVERT(INT, @p_ID)) AND CONDITION_STATUS<>[STATUS] ) ) ) BEGIN INSERT INTO [dbo].[CM_REQUEST_PROCESS] ([REQ_ID] ,PROCESS_KEY ,[PROCESS_ID] ,[STATUS] ,[ROLE] ,[BRANCH_ID] ,[DEPT_ID] ,[DEP_ID] ,[NOTES] ,[ORDER] ,[ACTION] ,[FROM_STATUS] ,[FROM] ,[CONDITION_STATUS] ,[DESCRIBE] ,[NAME_ACTION] ,[RANGE_PROCESS] ,[MARKER_ID] ,CHECKER_ID ,APPROVE_DT) SELECT @p_REQ_ID ,CP.PROCESS_KEY ,CP.ID ,CP.[STATUS] ,@ROLE ,@BRANCH_ID ,[@TEMPDVCM].COST_ID --TRSC.COST_ID-- ,@DEP_ID ,CP.NOTES ,CP.[ORDER] ,[ACTION] ,FROM_STATUS ,[STATUS] ,@CONDITION_STATUS ,DESCRIBE ,NAME_ACTION ,RANGE_PROCESS ,alr.MAKER_ID ,alr.CHECKER_ID ,CONVERT(DATETIME,GETDATE(),103) FROM CM_PROCESS CP LEFT JOIN ASS_LIQ_REQUEST alr ON alr.LIQ_REQ_ID = @p_REQ_ID --LEFT JOIN TR_REQUEST_SHOP_COSTCENTER TRSC ON TRSC.REQ_ID=@p_REQ_ID AND CP.RANGE_PROCESS='DEPT' LEFT JOIN @TEMPDVCM ON [@TEMPDVCM].REQ_ID = @p_REQ_ID AND CP.RANGE_PROCESS='DEPT' AND [@TEMPDVCM].ID = 1--AND TRSC.COST_ID = [@TEMPDVCM].COST_ID WHERE CONDITION_STATUS IN (SELECT [STATUS] FROM CM_PROCESS WHERE ID=CONVERT(INT, @p_ID)) AND CONDITION_STATUS <> [STATUS] --IF @@ERROR <> 0 GOTO ABORT END -- END INSERT PL_REQUEST_PROCESS COMMIT TRANSACTION SELECT '0' as Result, @p_REQ_ID REQ_ID, '' ErrorDesc, @p_ID ID, @BRANCH_ID BRANCH_ID, @DEP_ID DEP_ID, @ROLE [ROLE], @CURRENTSTATE CURRENTSTATE, @COUNTDVCM COUNTDVCM, @TEMPDVCM_ID TEMPDVCM_ID RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' REQ_ID, '' ErrorDesc RETURN '-1' End END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_REQUEST_SHOP_DOC_DT_ById]' GO ALTER PROCEDURE [dbo].[TR_REQUEST_SHOP_DOC_DT_ById] @p_REQ_ID varchar(15), @BRANCH_LOGIN varchar(15) = NULL, @ASSET_TYPE varchar(15) = 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 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.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,EMP.EMP_CODE, EMP.EMP_ID,EMP.EMP_NAME, AG.GROUP_CODE AS ASS_GROUP_CODE, AG.GROUP_NAME AS ASS_GROUP_NAME, CASE WHEN A.EMP_ID IS NULL OR A.EMP_ID = '' THEN E.BRANCH_ID ELSE CBE.BRANCH_ID END AS BRANCH_OLD, CASE WHEN A.EMP_ID IS NULL OR A.EMP_ID = '' THEN E.BRANCH_CODE ELSE CBE.BRANCH_CODE END AS BRANCH_OLD_CODE, CASE WHEN A.EMP_ID IS NULL OR A.EMP_ID = '' THEN E.BRANCH_NAME ELSE CBE.BRANCH_NAME END AS BRANCH_OLD_NAME, CASE WHEN A.EMP_ID IS NULL OR A.EMP_ID = '' THEN CDR.DEP_ID ELSE CDE.DEP_ID END AS DEP_OLD, CASE WHEN A.EMP_ID IS NULL OR A.EMP_ID = '' THEN CDR.DEP_CODE ELSE CDE.DEP_CODE END AS DEP_OLD_CODE, CASE WHEN A.EMP_ID IS NULL OR A.EMP_ID = '' THEN CDR.DEP_NAME ELSE CDE.DEP_NAME END AS DEP_OLD_NAME, --CBE.BRANCH_ID AS BRANCH_OLD, CBE.BRANCH_CODE AS BRANCH_OLD_CODE, CBE.BRANCH_NAME AS BRANCH_OLD_NAME, CDE.DEP_ID AS DEP_OLD, CDE.DEP_CODE AS DEP_OLD_CODE, CDE.DEP_NAME AS DEP_OLD_NAME, CD.DEP_CODE AS R_DEP_CODE,CD.DEP_NAME AS R_DEP_NAME, AG.DVCM_ID AS ID_DVCM, R.REQ_CODE, R.REQ_NAME, A.ALLOCATED, (CASE WHEN A.REQ_DT_TYPE = 'BUYNEW' THEN N'Mua mới' WHEN A.TYPE_XL = 'CPTK' THEN N'Xuất kho' WHEN A.TYPE_XL = 'CPDC' THEN N'Tận dụng/Điều chuyển' END) AS REQ_DT_TYPE_NAME 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 dbo.CM_DEPARTMENT CDR ON CDR.DEP_ID=R.DEP_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 CM_BRANCH CBE ON CBE.BRANCH_ID = EMP.BRANCH_ID LEFT JOIN dbo.CM_DEPARTMENT CDE ON CDE.DEP_ID=EMP.DEP_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 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 = '') ORDER BY A.CREATE_DT DESC --EXEC TR_PO_DETAIL_ById 'TRPM00000000001', 'DV0001' GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[ASS_LIQ_REQUEST_App]' GO ALTER PROCEDURE [dbo].[ASS_LIQ_REQUEST_App] @p_LIQ_REQ_ID VARCHAR(15), @p_AUTH_STATUS VARCHAR(1), @p_CHECKER_ID VARCHAR(12), @p_APPROVE_DT VARCHAR(20) AS --Validation is here DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( NOT EXISTS ( SELECT * FROM ASS_LIQ_REQUEST WHERE LIQ_REQ_ID = @p_LIQ_REQ_ID)) SET @ERRORSYS = 'ASSL-00002' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END --khanhnhd kiểm tra thêm loại thanh lý role 'PHCQT_QLTS' /*IF(EXISTS(SELECT * FROM [dbo].[TL_USER_GET_ROLES] (@p_CHECKER_ID) WHERE ROLE_ID = 'PHCQT_QLTS') AND EXISTS(SELECT * FROM ASS_LIQ_REQUEST WHERE LIQ_REQ_ID = @p_LIQ_REQ_ID AND (TERM_ID IS NULL OR TERM_ID =''))) BEGIN SELECT '-1' as Result, N'Vui lòng chọn loại thanh lý' ErrorDesc RETURN '-1' END */ --end khanhnhd kiểm tra thêm loại thanh lý role 'PHCQT_QLTS' 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 ALD.ASSET_ID FROM ASS_LIQ_REQUEST_DT ALD LEFT JOIN ASS_MASTER AM ON ALD.ASSET_ID = AM.ASSET_ID where ALD.LIQ_REQ_ID = @p_LIQ_REQ_ID AND AM.CURRENT_TRANS <> @p_LIQ_REQ_ID) B FOR XML PATH ('')) IF(@p_AUTH_STATUS = 'B') --IF(EXISTS(SELECT * FROM ASS_MASTER AM WHERE AM.ASSET_ID IN (SELECT * FROM STRING_SPLIT(@ASSET_ID_LST,',')) AND AM.CURRENT_TRANS <> @p_LIQ_REQ_ID)) BEGIN BEGIN 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, '' LIQ_ID, @CURRENT_TRANS_ERROR ErrorDesc RETURN '-1' END END END Declare @ASSET_CODE VARCHAR(30), @CURRENT_TRANS VARCHAR(20), @CURRENT_TRANS_TYPE VARCHAR(20), @ROLEDVCM VARCHAR(5), @ROLEGDDVCM VARCHAR(10) --Declare @ASSET_ID varchar(15) = (select ASSET_ID from ASS_LIQ_REQUEST_DT where LIQ_REQ_ID = @p_LIQ_REQ_ID ) --UPDATE ASS_MASTER SET CURRENT_TRANS = @p_LIQ_REQ_ID, CURRENT_TRANS_TYPE = 'ASS_LIQ' --WHERE ASSET_ID = @ASSET_ID -- KIEM TRA MA TAI SAN SET @ROLEDVCM = (SELECT ROLE_ID FROM [dbo].[TL_USER_GET_ROLES] (@p_CHECKER_ID) WHERE ROLE_ID = 'DVCM') SET @ROLEGDDVCM = (SELECT ROLE_ID FROM [dbo].[TL_USER_GET_ROLES] (@p_CHECKER_ID) WHERE ROLE_ID = 'GDDVCM') IF(@p_AUTH_STATUS = 'F' OR @p_AUTH_STATUS = 'G') BEGIN UPDATE trsc SET AUTH_STATUS ='A' FROM TR_REQUEST_SHOP_COSTCENTER trsc LEFT JOIN CM_DEPARTMENT cd ON cd.DEP_ID = trsc.COST_ID LEFT JOIN TL_USER tu1 ON cd.DEP_ID = tu1.DEP_ID WHERE REQ_ID = @p_LIQ_REQ_ID AND tu1.TLNANME = @p_CHECKER_ID END IF (@ROLEDVCM = 'DVCM' AND (EXISTS ( SELECT trsc.RE_CONTENT FROM TR_REQUEST_SHOP_COSTCENTER trsc LEFT JOIN TL_USER tu ON trsc.COST_ID = tu.DEP_ID WHERE trsc.REQ_ID = @p_LIQ_REQ_ID AND tu.TLNANME = @p_CHECKER_ID AND trsc.RE_CONTENT = ''))) GOTO ABORT2 IF(@ROLEGDDVCM = 'GDDVCM' AND @p_AUTH_STATUS = 'F') GOTO ABORT3 UPDATE ASS_LIQ_REQUEST SET AUTH_STATUS = @p_AUTH_STATUS, CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103), IS_REJECTED = 0 WHERE LIQ_REQ_ID = @p_LIQ_REQ_ID UPDATE ASS_LIQ_REQUEST SET AUTH_STATUS = @p_AUTH_STATUS, CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(DATETIME,@p_APPROVE_DT,103), IS_REJECTED = 0 WHERE LIQ_REQ_ID = @p_LIQ_REQ_ID UPDATE CM_REQUEST_PROCESS SET CHECKER_ID = (SELECT alr.CHECKER_ID FROM ASS_LIQ_REQUEST alr WHERE LIQ_REQ_ID = @p_LIQ_REQ_ID) WHERE REQ_ID = @p_LIQ_REQ_ID AND DONE = 0 OR DONE = '' IF @@Error <> 0 GOTO ABORT -- 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_REQ_ID, -- 'APPROVE', -- @p_CHECKER_ID, -- GETDATE(), -- N'Trưởng đơn vị phê duyệt thành công' , -- N'Trưởng đơn vị phê duyệt' -- ) IF(@p_AUTH_STATUS = 'B') BEGIN UPDATE ASS_MASTER SET CURRENT_TRANS = @p_LIQ_REQ_ID, CURRENT_TRANS_TYPE = 'ASS_LIQ_REQ' WHERE ASSET_ID IN (SELECT ASSET_ID FROM ASS_LIQ_REQUEST_DT WHERE LIQ_REQ_ID = @p_LIQ_REQ_ID) END COMMIT TRANSACTION SELECT '0' as Result, '' ErrorDesc, @ROLEDVCM RoleDVCM, @ROLEGDDVCM RoleGDDVCM RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ErrorDesc, @ROLEDVCM RoleDVCM, @ROLEGDDVCM RoleGDDVCM RETURN '-1' END ABORT2: BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result, N'Nội dung đề xuất không được để trống !' ErrorDesc RETURN '-1' END ABORT3: BEGIN ROLLBACK TRANSACTION SELECT '-1' AS Result, N'Xác nhận thất bại ! Trưởng đơn vị chuyên môn không được quyền xác nhận phiếu này ! Vui lòng chờ chuyên viên đơn vị chuyên môn xác nhận' ErrorDesc RETURN '-1' 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_PENDING_ITEM_Searchnew]' GO ALTER PROCEDURE [dbo].[ASS_PENDING_ITEM_Searchnew] @p_CREATE_DT varchar(15) = NULL, @p_BRANCH_ID VARCHAR(15) = NULL, @p_BRANCH_LOGIN NVARCHAR(100) = NULL, @p_ASSET_TYPE VARCHAR(15) = NULL, @p_MAKER_ID VARCHAR(100) = NULL, @p_AUTH_STATUS VARCHAR(15) = NULL, @p_MODULE NVARCHAR(500) = NULL, @p_USER_LOGIN varchar(20) = NULL AS DECLARE @l_BRANCH_TYPE VARCHAR(15) SET @l_BRANCH_TYPE = (SELECT A.BRANCH_TYPE FROM CM_BRANCH A WHERE A.BRANCH_ID = @p_BRANCH_LOGIN) declare @tmp table(BRANCH_ID varchar(15)) insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID) DECLARE @LISTTYPE TABLE(TRN_TYPE VARCHAR(50), DUONGDAN VARCHAR(500), PHANHE NVARCHAR(500)) INSERT INTO @LISTTYPE values ('ASS_ADDNEW', '/AssetManager/ASSAddNewList',N'Quản lý TSCĐ/CCLĐ') INSERT INTO @LISTTYPE values('ASS_USE', '/AssetManager/ASSUseList',N'Quản lý TSCĐ/CCLĐ') INSERT INTO @LISTTYPE values('ASS_TRANSFER', '/AssetManager/ASSTransferList',N'Quản lý TSCĐ/CCLĐ') INSERT INTO @LISTTYPE values('ASS_MASTER', '/AssetManager/ASSMasterList',N'Quản lý TSCĐ/CCLĐ') INSERT INTO @LISTTYPE values('ASS_COLLECT', '/AssetManager/ASSCollectList',N'Quản lý TSCĐ/CCLĐ') INSERT INTO @LISTTYPE values('ASS_GROUP', '/AssCommon/AssetGroupList',N'Quản lý danh mục') INSERT INTO @LISTTYPE values('ASS_AMORT', '/AssetManager/ASSAmort',N'Quản lý TSCĐ/CCLĐ') INSERT INTO @LISTTYPE values('ASS_UPDATE', '/AssetManager/ASSUpdateList',N'Quản lý TSCĐ/CCLĐ') BEGIN -- PAGING select A.*, BB.DUONGDAN DUONGDAN, BB.PHANHE PHANHE, CM.BRANCH_NAME -- SELECT END from ASS_PENDING_ITEM A LEFT JOIN CM_BRANCH CM ON A.BRANCH_CREATE= CM.BRANCH_ID LEFT JOIN @LISTTYPE BB ON A.TRAN_TYPE = BB.TRN_TYPE where --A.BRANCH_CREATE LIKE '%'+ @p_BRANCH_CREATE +'%' OR @p_BRANCH_CREATE = '' OR @p_BRANCH_CREATE IS NULL (A.MAKER_ID_KT LIKE '%'+ @p_MAKER_ID +'%' OR @p_MAKER_ID IS NULL OR @p_MAKER_ID = '') --AND(CM.BRANCH_NAME LIKE '%'+@p_BRANCH_NAME +'%' OR @p_BRANCH_NAME IS NULL OR @p_BRANCH_NAME='') AND (CONVERT(DATE,A.CREATE_DT_KT)= CONVERT(DATE,@p_CREATE_DT,103) OR @p_CREATE_DT IS NULL OR @p_CREATE_DT='') AND (A.AUTH_STATUS_KT =@p_AUTH_STATUS OR @p_AUTH_STATUS IS NULL OR @p_AUTH_STATUS ='') AND (BB.PHANHE = @p_MODULE OR @p_MODULE IS NULL OR @p_MODULE = '' OR @p_MODULE = N'---Tất cả---') AND ((A.BRANCH_CREATE IN (SELECT * FROM @tmp) OR @p_BRANCH_ID = '' OR @p_BRANCH_ID IS NULL) OR ((A.BRANCH_CREATE IS NULL OR A.BRANCH_CREATE = '') AND @l_BRANCH_TYPE = 'HS')) -- PAGING END END -- PAGING GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[rpt_LIET_KE_CHUNG_TU_VietBank]' GO ALTER PROCEDURE [dbo].[rpt_LIET_KE_CHUNG_TU_VietBank] @p_DATE VARCHAR(25), @p_BRANCH_ID VARCHAR(15) = '', @p_MAKER_ID VARCHAR(200) =NULL AS BEGIN --LAY MA DON VI CUA HS NEU TIM THEO HS IF @p_BRANCH_ID='HS' BEGIN SELECT @p_BRANCH_ID=BRANCH_ID FROM CM_BRANCH WHERE BRANCH_TYPE='HS' END; SELECT CHAR(10) + CC.DRCR_IND + CHAR(10) AS DRCR_IND, CHAR(10) + CC.ET_ID + CHAR(10) AS REF_NO, CHAR(10) + CC.ETP_ID + CHAR(10) AS RNO, CHAR(10) + CC.RELATED_REFERENCE + CHAR(10) AS ASSET_CODE, CHAR(10) + CC.TRN_NO + CHAR(10) AS TRN_NO, CHAR(10) + CC.TRN_ID + CHAR(10) AS TRN_ID, CHAR(10)+ CC.TRN_DESC + CHAR(10) AS TRN_DESC, CHAR(10)+ CC.BRANCH_NAME + CHAR(10) AS BRANCH_NAME, CHAR(10) + FORMAT(CC.TRN_DATE,'dd/MM/yyyy') + CHAR(10) AS TRN_DATE, CHAR(10)+ CC.DR_BRANCH_CODE + CHAR(10) AS DR_BRANCH_CODE, CHAR(10)+ CC.CR_BRANCH_CODE + CHAR(10) AS CR_BRANCH_CODE, CHAR(10) + REPLACE (FORMAT ((CC.AMT),'#,###'),',','.') +',00 ' + CHAR(10) AS AMT, CHAR(10)+ CC.CCY+ CHAR(10) AS CCY, CHAR(10) + CC.CHECKER_ID + CHAR(10) AS CHECKER_ID FROM( SELECT (CONVERT(DATE, A.TRN_DT, 103)) AS TRN_DATE, A.TRN_ID,A.ETP_ID, SUM(A.FCY_AMOUNT) AS AMT, UPPER(A.DESC_TRANS) AS TRN_DESC, D.BRANCH_NAME AS BRANCH_NAME, UPPER(A.USER_ID) AS MAKER_ID, UPPER(A.AUTH_ID) AS CHECKER_ID, CASE WHEN A.DRCR_IND = 'D' THEN ISNULL(A.AC_NO, '') +' '+ D.BRANCH_CODE ELSE '' END AS DR_BRANCH_CODE, CASE WHEN A.DRCR_IND = 'C' THEN ISNULL(A.AC_NO, '') +' '+ D.BRANCH_CODE ELSE '' END AS CR_BRANCH_CODE, 'VND' AS CCY, A.TRN_NO, A.ET_ID, A.RELATED_REFERENCE, A.DRCR_IND FROM ASS_ENTRIES_POST_SYNC A LEFT JOIN ASS_ENTRIES_POST AEP ON A.ET_ID = AEP.ET_ID LEFT JOIN ASS_MASTER B ON A.RELATED_REFERENCE=B.ASSET_CODE LEFT JOIN CM_BRANCH D ON D.BRANCH_CODE=A.AC_BRANCH WHERE DATEDIFF(DAYOFYEAR, A.TRN_DT, CONVERT(DATETIME, @p_DATE, 103))=0 AND(A.USER_ID=@p_MAKER_ID OR @p_MAKER_ID IS NULL OR @p_MAKER_ID='') AND AEP.TRN_TYPE <> 'AMORT' GROUP BY A.TRN_ID, A.AC_NO, A.AC_BRANCH, A.DESC_TRANS, CONVERT(DATE, A.TRN_DT, 103), D.BRANCH_NAME ,A.USER_ID, A.AUTH_ID, D.BRANCH_CODE,A.TRN_NO, A.ET_ID, A.RELATED_REFERENCE, A.DRCR_IND,A.ETP_ID ) AS CC ORDER BY cc.ET_ID ASC SELECT N' Ngày lập phiếu: '+ FORMAT (GETDATE(),'dd/MM/yyyy H:mm:ss') AS NGAY_TAO, 'CN /PGD : ' + (SELECT TOP 1 BRANCH_NAME FROM CM_BRANCH WHERE BRANCH_ID =@p_BRANCH_ID) AS DVKD, @p_DATE AS NGAY_LAP_PHIEU SELECT CHAR(10) +'STT'+ CHAR(10) AS STT, CHAR(10) +'REF'+ CHAR(10) AS REF, CHAR(10) +N'MÃ TÀI SẢN'+ CHAR(10) AS ASSET_CODE, CHAR(10) +N'SỐ CHỨNG TỪ / REF AMS'+ CHAR(10) AS SO_CT, CHAR(10) +N'SỐ GIAO DỊCH / REF NO'+ CHAR(10) AS SO_GD, CHAR(10) +N'DIỄN GIẢI TRANSACTION'+ CHAR(10) AS CORE_NOTE, CHAR(10) +N'THỜI GIAN '+ CHAR(10) AS NGAY_GD, CHAR(10) +CHAR(10) +N'TÀI KHOẢN NỢ '+ CHAR(10) AS [NO], CHAR(10) +N'TÀI KHOẢN CÓ '+ CHAR(10) AS [CO], CHAR(10) +N'CCY '+ CHAR(10) AS CCY, CHAR(10) +N'NGUYÊN TỆ '+ CHAR(10) AS NT, CHAR(10) +N'QUY ĐỔI '+ CHAR(10) AS QD, CHAR(10) +N'GDV '+ CHAR(10) AS GDV, CHAR(10) +N'KSV '+ CHAR(10) AS KSV, CHAR(10) +N'PHÒNG BAN '+ CHAR(10) AS PB END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[CM_DEPARTMENT_Ins]' GO ALTER PROCEDURE [dbo].[CM_DEPARTMENT_Ins] @p_DEP_CODE varchar(15) = NULL, @p_DEP_NAME nvarchar(200) = NULL, @p_DAO_CODE varchar(40) = NULL, @p_DAO_NAME nvarchar(500) = NULL, @p_BRANCH_ID varchar(15) = NULL, @p_GROUP_ID varchar(15) = NULL, @p_TEL varchar(20) = 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_CHECKER_ID varchar(12) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_FATHER_ID VARCHAR(15) = NULL, @p_KHOI_ID VARCHAR(20)=NULL, @p_TYPE VARCHAR(5) = NULL AS --Validation is here /* DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( NOT EXISTS ( SELECT * FROM CM_DEPARTMENT WHERE )) SET @ERRORSYS = '' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' CAR_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END */ --IF(@p_KHOI_ID IS NOT NULL AND @p_KHOI_ID <> '') --BEGIN IF(@p_TYPE = 'TT') BEGIN SET @p_FATHER_ID = NULL --CHECK MAPPING KHỐI VÀ ĐV IF(NOT EXISTS(SELECT cd.BRANCH_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_ID = @p_KHOI_ID AND cd.BRANCH_ID = @p_BRANCH_ID)) BEGIN -- ROLLBACK TRANSACTION SELECT '' Result, '' ID, N'Khối không trực thuộc đơn vị' ErrorDesc RETURN '0' END END ELSE IF(@p_TYPE = 'PB') BEGIN --CHECK MAPPING DV,KHỐI,TRUNG TÂM IF(@p_FATHER_ID IS NOT NULL AND @p_FATHER_ID <> '') BEGIN IF(NOT EXISTS(SELECT cd.DEP_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_ID = @p_KHOI_ID AND cd.BRANCH_ID = @p_BRANCH_ID AND cd.DEP_ID IN (SELECT cd.KHOI_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_ID = @p_FATHER_ID))) BEGIN -- ROLLBACK TRANSACTION SELECT '' Result, '' ID, N'Khối, Trung tâm, Đơn vị phải trực thuộc nhau' ErrorDesc RETURN '0' END END ELSE IF(NOT EXISTS(SELECT cd.BRANCH_ID FROM CM_DEPARTMENT cd WHERE cd.DEP_ID = @p_KHOI_ID AND cd.BRANCH_ID = @p_BRANCH_ID)) BEGIN -- ROLLBACK TRANSACTION SELECT '' Result, '' ID, N'Khối không trực thuộc đơn vị' ErrorDesc RETURN '0' END END --END --Validation is here DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( EXISTS ( SELECT * FROM CM_DEPARTMENT WHERE DEP_CODE = @p_DEP_CODE)) SET @ERRORSYS = 'CMCD-00001' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END BEGIN TRANSACTION DECLARE @l_DEP_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'CM_DEPARTMENT', @l_DEP_ID out IF @l_DEP_ID='' OR @l_DEP_ID IS NULL GOTO ABORT INSERT INTO CM_DEPARTMENT([DEP_ID],[DEP_CODE],[DEP_NAME],[DAO_CODE],[DAO_NAME],[BRANCH_ID],[GROUP_ID],[TEL],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT], FATHER_ID,[KHOI_ID],[TYPE]) VALUES(@l_DEP_ID ,@p_DEP_CODE ,@p_DEP_NAME ,@p_DAO_CODE ,@p_DAO_NAME ,@p_BRANCH_ID ,@p_GROUP_ID ,@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_FATHER_ID,@p_KHOI_ID,@p_TYPE) IF @@Error <> 0 GOTO ABORT COMMIT TRANSACTION SELECT '0' as Result, @l_DEP_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_USE_MULTI_BVB_MASTER_Upd]' GO ALTER PROCEDURE [dbo].[ASS_USE_MULTI_BVB_MASTER_Upd] @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_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_DEP_ID VARCHAR(15) = NULL, @p_CONTENT NVARCHAR(200) = NULL, @p_XmlData XML = NULL AS /* --Validation is here DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( NOT EXISTS ( SELECT * FROM ASS_USE_MULTI_MASTER WHERE USER_MASTER_ID=@p_USER_MASTER_ID SET @ERRORSYS = '' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, ''USER_MASTER_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END */ --------LUCTV - KHAI BAO SO THANG KHAU HAO MIN, MAX CUA TAI SAN DECLARE @NHOMTS VARCHAR(15) DECLARE @MIN_AMR INT, @MAX_AMR INT, @INDEX INT SET @INDEX=0 --END DECLARE @USE_MULTI_ID varchar(15), @ASSET_ID varchar(15), @BRANCH_ID varchar(15), @DEPT_ID varchar(15), @DIVISION_ID varchar(15), @EMP_ID varchar(15), @AMORT_START_DATE VARCHAR(20), @AMORT_MONTH decimal(18), @AMORT_END_DATE VARCHAR(20), @CORE_NOTE nvarchar(500), @NOTES nvarchar(1000), --Phucvh 06/10/22 Bổ sung Khối, Trung tâm @SUBBRANCH_ID VARCHAR(15), @FATHER_ID VARCHAR(15), @REQ_ID VARCHAR(15), @NUM_REPORT NVARCHAR(200) -- Số tờ trình Declare @hdoc INT Exec sp_xml_preparedocument @hdoc Output,@p_XmlData DECLARE XmlData CURSOR FOR SELECT * FROM OPENXML(@hdoc,'/Root/XmlData',2) WITH ( USE_MULTI_ID varchar(15), ASSET_ID varchar(15), BRANCH_ID varchar(15), DEPT_ID varchar(15), DIVISION_ID varchar(15), EMP_ID varchar(15), AMORT_START_DATE VARCHAR(20), AMORT_MONTH decimal(18), AMORT_END_DATE VARCHAR(20), CORE_NOTE nvarchar(500), NOTES nvarchar(1000), --Phucvh 06/10/22 Bổ sung Khối, Trung tâm SUBBRANCH_ID VARCHAR(15), FATHER_ID VARCHAR(15), REQ_ID VARCHAR(15), NUM_REPORT NVARCHAR(200) ) OPEN XmlData DELETE FROM ASS_USE_MULTI_DT WHERE USER_MASTER_ID = @p_USER_MASTER_ID BEGIN TRANSACTION UPDATE ASS_USE_MULTI_MASTER SET [BRANCH_ID] = @p_BRANCH_ID,[USE_EXPORT_DT] = CONVERT(DATETIME, @p_USE_EXPORT_DT, 103),[USER_EXPORT] = @p_USER_EXPORT,[NOTES] = @p_NOTES,[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] = CONVERT(DATETIME, @p_APPROVE_DT, 103),[AUTH_STATUS_KT] = 'E', [CREATE_DT_KT] = CONVERT(DATETIME, @p_CREATE_DT_KT, 103),[APPROVE_DT_KT] = CONVERT(DATETIME, @p_APPROVE_DT_KT, 103),[MAKER_ID_KT] = @p_MAKER_ID_KT,[CHECKER_ID_KT] = @p_CHECKER_ID_KT,[REPORT_STATUS] = @p_REPORT_STATUS, DEP_ID = @p_DEP_ID, CONTENT = @p_CONTENT WHERE USER_MASTER_ID= @p_USER_MASTER_ID IF @@Error <> 0 GOTO ABORT --Insert XmlData FETCH NEXT FROM XmlData INTO @USE_MULTI_ID,@ASSET_ID,@BRANCH_ID,@DEPT_ID,@DIVISION_ID,@EMP_ID,@AMORT_START_DATE,@AMORT_MONTH,@AMORT_END_DATE,@CORE_NOTE,@NOTES, --Phucvh 06/10/22 Bổ sung Khối, Trung tâm @SUBBRANCH_ID, @FATHER_ID, @REQ_ID, @NUM_REPORT WHILE @@FETCH_STATUS = 0 BEGIN SET @INDEX= @INDEX+1 SET @DEPT_ID = @p_DEP_ID --Phucvh 06/10/22 CHECK DATA NULL -- IF((@SUBBRANCH_ID IS NULL OR @SUBBRANCH_ID = '') AND (@FATHER_ID IS NULL OR @FATHER_ID = '') AND (@DEPT_ID IS NULL OR @DEPT_ID = '')) -- BEGIN -- CLOSE XmlData -- DEALLOCATE XmlData -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' USER_MASTER_ID, N'Dòng thứ ' + CONVERT(VARCHAR(5),@INDEX) + ' vui lòng chọn Khối/Trung tâm/Phòng ban' ErrorDesc -- RETURN '-1' -- END -- IF(@p_BRANCH_ID = 'DV0001') -- BEGIN --NẾU PHIẾU MASTER LÀ HỘI SỞ THỊ CHECK K_TT_PB -- IF(@DEPT_ID IS NOT NULL AND @DEPT_ID <> '') -- BEGIN -- SET @DEPT_ID = @DEPT_ID -- END -- ELSE -- BEGIN -- IF(@FATHER_ID IS NOT NULL AND @FATHER_ID <> '') -- BEGIN -- SET @DEPT_ID = @FATHER_ID -- END -- ELSE -- BEGIN -- IF(@SUBBRANCH_ID IS NOT NULL AND @SUBBRANCH_ID <> '') -- BEGIN -- SET @DEPT_ID = @SUBBRANCH_ID -- END -- ELSE -- BEGIN -- DEALLOCATE XmlData -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' USER_MASTER_ID, N'Dòng thứ ' + CONVERT(VARCHAR(5),@INDEX) + ' vui lòng chọn Khối/Trung tâm/Phòng ban' ErrorDesc -- RETURN '-1' -- END -- END -- END -- END -- ELSE -- BEGIN --NẾU PHIẾU MASTER KHÔNG PHẢI HỘI SỞ THÌ GÁN PHÒNG BAN = NULL -- SET @DEPT_ID = NULL -- END -- --LUCTV - KIEM TRA SO THANG KHAU HAO PHAI NAM TRONG MIN -MAX -- SET @NHOMTS =(SELECT GROUP_ID FROM ASS_MASTER WHERE ASSET_ID= @ASSET_ID) -- SET @MIN_AMR =(SELECT AMORT_MONTH_MIN FROM ASS_GROUP WHERE GROUP_ID =@NHOMTS) -- SET @MAX_AMR =(SELECT AMORT_MONTH_MAX FROM ASS_GROUP WHERE GROUP_ID=@NHOMTS) -- IF(@AMORT_MONTH >@MAX_AMR OR @AMORT_MONTH <@MIN_AMR) -- BEGIN --ROLLBACK TRANSACTION --CLOSE XmlData --DEALLOCATE XmlData --SELECT '-1' as Result,N'Dòng' +CONVERT(VARCHAR(15),@INDEX) +N': Số tháng khấu hao phải nằm trong khoảng ('+CONVERT(VARCHAR(15),@MIN_AMR)+' - '+CONVERT(VARCHAR(15),@MAX_AMR)+N') tháng' ErrorDesc --RETURN '-1' -- END --END if(@AMORT_START_DATE='') set @AMORT_START_DATE=NULL if(@AMORT_END_DATE='') set @AMORT_END_DATE=NULL DECLARE @ERRORSYS NVARCHAR(200) = '',@ASSET_CODE nVARCHAR(200) -- IF ( EXISTS ( SELECT 1 -- FROM ASS_USE_MULTI_DT A -- INNER JOIN ASS_USE_MULTI_MASTER B ON A.USER_MASTER_ID = B.USER_MASTER_ID -- WHERE [ASSET_ID] = @ASSET_ID AND A.USER_MASTER_ID<> @p_USER_MASTER_ID AND -- (A.CHECKER_ID IS NULL OR A.CHECKER_ID_KT IS NULL OR (A.CHECKER_ID_KT IS NOT NULL AND A.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 xuất sử dụng' -- CLOSE XmlData -- DEALLOCATE XmlData -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' USER_MASTER_ID, @ERRORSYS ErrorDesc -- RETURN '-1' -- -- END -- -- IF ( EXISTS ( SELECT * FROM ASS_USE WHERE [ASSET_ID] = @ASSET_ID)) -- BEGIN -- SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID) -- SET @ERRORSYS = N'Mã: '+@ASSET_CODE+N' đang xuất sử dụng' -- CLOSE XmlData -- DEALLOCATE XmlData -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' USER_MASTER_ID, @ERRORSYS ErrorDesc -- RETURN '-1' -- -- END -- luctv 03/08/2021 người nhận phải cùng đơn vị nhận -- IF (SELECT BRANCH_ID FROM CM_DEPARTMENT WHERE DEP_ID = @DEPT_ID) <> @p_BRANCH_ID -- BEGIN -- SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID) -- SELECT '-1' Result, '' USER_MASTER_ID, N'TS: '+ @ASSET_CODE + N' Phòng ban nhận phải thuộc về đơn vị nhận.' ErrorDesc -- CLOSE XmlData -- DEALLOCATE XmlData -- ROLLBACK TRANSACTION -- RETURN '-1' -- END -- IF (SELECT DEP_ID FROM CM_EMPLOYEE WHERE EMP_ID = @EMP_ID) <> @DEPT_ID -- BEGIN -- SET @ASSET_CODE=(SELECT ASSET_CODE FROM ASS_MASTER WHERE [ASSET_ID] = @ASSET_ID) -- SELECT '-1' Result, '' TRANSFER_ID, N'TS: '+ @ASSET_CODE + N' Người nhận phải thuộc về phòng ban nhận.' ErrorDesc -- CLOSE XmlData -- DEALLOCATE XmlData -- ROLLBACK TRANSACTION -- RETURN '-1' -- END IF(LEN(@USE_MULTI_ID) = 0) BEGIN EXEC SYS_CodeMasters_Gen 'ASS_USE_MULTI_DT', @USE_MULTI_ID out IF @USE_MULTI_ID='' OR @USE_MULTI_ID IS NULL GOTO ABORT END INSERT INTO ASS_USE_MULTI_DT([USE_MULTI_ID],[USER_MASTER_ID],[ASSET_ID],[AMORT_START_DATE],[BRANCH_ID],[DEPT_ID],[EMP_ID],[DIVISION_ID],[NOTES], [CORE_NOTE],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT],[BRANCH_CREATE],[AMORT_MONTH],[AUTH_STATUS_KT],[REPORT_STATUS],[AMORT_END_DATE], REQ_ID, NUM_REPORT) VALUES(@USE_MULTI_ID ,@p_USER_MASTER_ID,@ASSET_ID ,CONVERT(DATETIME, @AMORT_START_DATE, 103) ,@p_BRANCH_ID ,@DEPT_ID ,@EMP_ID ,@DIVISION_ID ,@NOTES ,@CORE_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 ,@AMORT_MONTH , 'E' ,'N' ,CONVERT(DATETIME, @AMORT_END_DATE, 103),@REQ_ID,@NUM_REPORT ) IF @@Error <> 0 GOTO ABORT FETCH NEXT FROM XmlData INTO @USE_MULTI_ID,@ASSET_ID,@BRANCH_ID,@DEPT_ID,@DIVISION_ID,@EMP_ID,@AMORT_START_DATE,@AMORT_MONTH,@AMORT_END_DATE,@CORE_NOTE,@NOTES, --Phucvh 06/10/22 Bổ sung Khối, Trung tâm @SUBBRANCH_ID, @FATHER_ID, @REQ_ID, @NUM_REPORT END CLOSE XmlData DEALLOCATE XmlData DECLARE @MESSAGE_VALIDATION NVARCHAR(MAX) = NULL SET @MESSAGE_VALIDATION = (SELECT REPLACE((SELECT CASE WHEN ROW_NUMBER() OVER (ORDER BY (SELECT 0)) = 1 THEN '' ELSE '|' END + VAL.MESS FROM ( SELECT N'Tài sản ' + ASS.ASSET_CODE + N' được nhập mới theo yêu cầu của ' + ISNULL(F.DEP_NAME,E.BRANCH_NAME) + N'. Không thể xuất cho ' + ISNULL(D.DEP_NAME,C.BRANCH_NAME) AS MESS FROM ASS_USE_MULTI_DT A LEFT JOIN ASS_MASTER ASS ON A.ASSET_ID = ASS.ASSET_ID LEFT JOIN TR_REQUEST_SHOP_DOC B ON A.REQ_ID = B.REQ_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 CM_BRANCH E ON B.BRANCH_ID = E.BRANCH_ID LEFT JOIN CM_DEPARTMENT F ON B.DEP_ID = F.DEP_ID WHERE A.REQ_ID IS NOT NULL AND A.REQ_ID <> '' AND A.USER_MASTER_ID = @p_USER_MASTER_ID AND (ISNULL(A.BRANCH_ID,'') <> ISNULL(B.BRANCH_ID,'') OR ISNULL(A.DEPT_ID,'') <> ISNULL(B.DEP_ID,''))) VAL FOR XML PATH ('')) , '|', '
')) IF(@MESSAGE_VALIDATION IS NOT NULL AND @MESSAGE_VALIDATION <> '') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' USER_MASTER_ID, @MESSAGE_VALIDATION ErrorDesc RETURN '-1' END -- HUYHT 06/05/2022: XÓA CÁC PROCESS UPDATE CŨ --DELETE dbo.PL_PROCESS 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) 'UPDATE', -- PROCESS_ID - varchar(10) @p_MAKER_ID, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime N'Cập nhật phiếu xuất sử dụng' , N'Cập nhật phiếu xuất sử dụng thành công' -- PROCESS_DESC - nvarchar(1000) ) COMMIT TRANSACTION SELECT '0' as Result, @p_USER_MASTER_ID USER_MASTER_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' USER_MASTER_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[ASS_LIQ_REQUEST_Upd]' GO ALTER PROCEDURE [dbo].[ASS_LIQ_REQUEST_Upd] @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_CHECKER_ID varchar(12) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_LiqDetails XML = NULL, @p_ListCostCenter XML = NULL, @p_BRANCH_CREATE VARCHAR(15) = NULL, @p_DEP_ID VARCHAR(15) = NULL, @p_TERM_ID VARCHAR(15) = NULL, @p_HO_NOTES NVARCHAR(1000) = NULL, @p_USER_LOGIN VARCHAR(15) AS --Validation is here DECLARE @ERRORSYS NVARCHAR(15) = '' IF ( NOT EXISTS ( SELECT * FROM ASS_LIQ_REQUEST WHERE LIQ_REQ_ID= @p_LIQ_REQ_ID)) SET @ERRORSYS = '' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' LIQ_REQ_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '0' END Declare @hdoc INT Exec sp_xml_preparedocument @hdoc Output,@p_LiqDetails --Them dieu kien kiem tra lý do de xuat khong duoc de trong DECLARE @reason NVARCHAR(max) = '' SELECT @reason = COALESCE(@reason + ', ', '') + ASSET_CODE FROM OPENXML(@hdoc,'/Root/LiquiDetail',2) WITH ( ASSET_ID varchar(15), LIQ_REASON nvarchar(1000), NOTES nvarchar(1000) , REQ_AMT DECIMAL(18,0), LIQ_RECEIVE NVARCHAR(500), BRANCH_USE VARCHAR(15), DEPT_USE VARCHAR(15), REMAIN_VALUE DECIMAL(18,0), ASSET_CODE varchar(100), IS_IMP varchar(15) ) WHERE LIQ_REASON = '' OR LIQ_REASON IS NULL IF @reason <> '' BEGIN SELECT '-1' as Result, '' LIQ_REQ_ID, N'Lý do đề xuất thanh lý không được để trống! DS tài sản: '+ @reason ErrorDesc RETURN '-1' END -------BO SUNG PHAN IMPORT TS TU FILE ----KIEM TRA TS IMPORT PHAI THUOC DON VI DA CHON declare @tmp table(BRANCH_ID varchar(15)) insert into @tmp SELECT BRANCH_ID FROM [dbo].[CM_BRANCH_GETCHILDID](@p_BRANCH_ID) DECLARE liqDetail CURSOR FOR SELECT B.DETAIL_ID, --A.ASSET_ID, B.ASSET_ID, B.LIQ_REASON, B.NOTES, B.REQ_AMT, B.LIQ_RECEIVE, --khanhnhd --(CASE WHEN IS_IMP = 'N' THEN B.BRANCH_USE ELSE B.ASSET_ID END) BRANCH_USE, --(CASE WHEN IS_IMP = 'N' THEN B.DEPT_USE ELSE B.ASSET_ID END) DEPT_USE, B.BRANCH_USE, B.DEPT_USE, --end khanhnhd B.REMAIN_VALUE FROM OPENXML(@hdoc,'/Root/LiquiDetail',2) WITH ( DETAIL_ID VARCHAR(15), ASSET_ID varchar(15), LIQ_REASON nvarchar(1000), NOTES nvarchar(1000) , REQ_AMT DECIMAL(18,0), LIQ_RECEIVE NVARCHAR(500), BRANCH_USE VARCHAR(15), DEPT_USE VARCHAR(15), REMAIN_VALUE DECIMAL(18,0), ASSET_CODE varchar(100), IS_IMP varchar(15) ) B --LAY MA TAI SAN --LEFT JOIN ASS_MASTER A ON A.ASSET_CODE = B.ASSET_CODE AND A.BRANCH_ID IN (SELECT C.* FROM @tmp C) OPEN liqDetail BEGIN TRANSACTION IF @p_APPROVE_DT = '' SET @p_APPROVE_DT = NULL SET @p_MAKER_ID = (SELECT alr.MAKER_ID FROM ASS_LIQ_REQUEST alr WHERE LIQ_REQ_ID = @p_LIQ_REQ_ID) UPDATE ASS_LIQ_REQUEST SET [ASS_TYPE_ID] = @p_ASS_TYPE_ID,[REQ_DT] = CONVERT(DATETIME, @p_REQ_DT, 103),[BRANCH_ID] = @p_BRANCH_ID,[NOTES] = @p_NOTES,[RECORD_STATUS] = @p_RECORD_STATUS,[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), BRANCH_CREATE= @p_BRANCH_CREATE, TERM_ID = @p_TERM_ID,DEP_ID=@p_DEP_ID, HO_NOTES = @p_HO_NOTES WHERE LIQ_REQ_ID= @p_LIQ_REQ_ID IF @@Error <> 0 GOTO ABORT PRINT 'A' DELETE FROM ASS_LIQ_REQUEST_DT WHERE LIQ_REQ_ID = @p_LIQ_REQ_ID PRINT 'B' Declare @DETAIL_ID VARCHAR(15), @ASSET_ID VARCHAR(15), @LIQ_REASON NVARCHAR(1000),@NOTES NVARCHAR(1000), @REQ_AMT DECIMAL(18,0), @LIQ_RECEIVE NVARCHAR(500), @BRANCH_USE VARCHAR(15), @DEPT_USE VARCHAR(15), @REMAIN_VALUE DECIMAL(18,0) FETCH NEXT FROM liqDetail INTO @DETAIL_ID,@ASSET_ID, @LIQ_REASON, @NOTES, @REQ_AMT, @LIQ_RECEIVE,@BRANCH_USE, @DEPT_USE, @REMAIN_VALUE WHILE @@FETCH_STATUS = 0 BEGIN IF LEN (@DETAIL_ID) = 0 BEGIN PRINT 'C' EXEC SYS_CodeMasters_Gen 'ASS_LIQ_REQUEST_DT', @DETAIL_ID out IF @DETAIL_ID='' OR @DETAIL_ID IS NULL GOTO ABORT END PRINT @DETAIL_ID --print 'asset_id: ' + @ASSET_ID INSERT INTO ASS_LIQ_REQUEST_DT([LIQREQDT_ID],[LIQ_REQ_ID],[ASSET_ID],[LIQ_REASON],[NOTES],[RECORD_STATUS], [MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT], [REQ_AMT], [LIQ_RECEIVE], [BRANCH_USE], [DEPT_USE], [REMAIN_VALUE]) VALUES(@DETAIL_ID ,@p_LIQ_REQ_ID ,@ASSET_ID ,@LIQ_REASON ,@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), @REQ_AMT, @LIQ_RECEIVE, @BRANCH_USE, @DEPT_USE, @REMAIN_VALUE ) IF @@Error <> 0 GOTO ABORT FETCH NEXT FROM liqDetail INTO @DETAIL_ID,@ASSET_ID, @LIQ_REASON, @NOTES, @REQ_AMT, @LIQ_RECEIVE,@BRANCH_USE, @DEPT_USE, @REMAIN_VALUE END CLOSE liqDetail DEALLOCATE liqDetail --khanhnhd cập nhật đơn vị chuyên môn Declare @hdocc INT Exec sp_xml_preparedocument @hdocc Output,@p_ListCostCenter DECLARE ConcenterDetaisls CURSOR FOR SELECT D.REQ_COST_ID, D.COST_ID, D.REQ_ID, D.ASS_STATUS, D.RE_CONTENT, D.NOTES, D.AUTH_STATUS FROM OPENXML(@hdocc,'/Root/ListCostCenter',2) WITH ( REQ_COST_ID varchar(15), COST_ID nvarchar(1000), REQ_ID nvarchar(1000), ASS_STATUS NVARCHAR(100), RE_CONTENT NVARCHAR(100), NOTES nvarchar(500), AUTH_STATUS NVARCHAR(500) )D OPEN ConcenterDetaisls Declare @REQ_COST_ID VARCHAR(15), @COST_ID NVARCHAR(1000), @REQ_ID NVARCHAR(1000), @ASS_STATUS NVARCHAR(100), @RE_CONTENT NVARCHAR(100), @AUTH_STATUS NVARCHAR(500) DELETE FROM TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID =@p_LIQ_REQ_ID FETCH NEXT FROM ConcenterDetaisls INTO @REQ_COST_ID, @COST_ID, @REQ_ID, @ASS_STATUS, @RE_CONTENT, @NOTES, @AUTH_STATUS WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @l_REQ_COST_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'TR_REQUEST_SHOP_COSTCENTER', @l_REQ_COST_ID out IF @l_REQ_COST_ID='' OR @l_REQ_COST_ID IS NULL GOTO ABORT IF(EXISTS(SELECT tugr.ROLE_ID FROM dbo.TL_USER_GET_ROLES(@p_USER_LOGIN) tugr WHERE ROLE_ID LIKE 'DVCM') AND @RE_CONTENT IS NULL) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' LIQ_REQ_ID, N'Nội dung đề xuất không được để trống!' ErrorDesc RETURN '-1' END INSERT INTO TR_REQUEST_SHOP_COSTCENTER([REQ_COST_ID],[COST_ID],[ASS_STATUS],[RE_CONTENT],[REQ_ID],[NOTES],[AUTH_STATUS]) VALUES(@l_REQ_COST_ID ,@COST_ID, @ASS_STATUS, @RE_CONTENT, @p_LIQ_REQ_ID, @NOTES, @AUTH_STATUS) IF @@Error <> 0 GOTO ABORT FETCH NEXT FROM ConcenterDetaisls INTO @REQ_COST_ID, @COST_ID, @REQ_ID, @ASS_STATUS, @RE_CONTENT, @NOTES, @AUTH_STATUS END CLOSE ConcenterDetaisls DEALLOCATE ConcenterDetaisls --end khanhnhd --INSERT DETAIL COMMIT TRANSACTION SELECT '0' as Result, @p_LIQ_REQ_ID LIQ_REQ_ID, @l_REQ_COST_ID REQ_COST_ID,'' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' LIQ_REQ_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[CM_REJECT_LOG_PREVIOUS_Ins]' GO ALTER PROC [dbo].[CM_REJECT_LOG_PREVIOUS_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(100) = NULL, @p_REJECTED_DT VARCHAR(50) = NULL AS BEGIN TRANSACTION --THÔNG TIN GỬI MAIL DECLARE @IS_SENDMAIL VARCHAR(1) = '0' -- 0 LÀ GỬI 1 LÀ KHÔNG GỬI DECLARE @TLNAME_SENTMAIL VARCHAR(MAX) = '' --DANH SÁCH TÊN TLNAME CỦA NHỮNG USER CẦN GỬI MAIL. NẾU NHIỀU USER THÌ CÁCH NHAU DẤU , DECLARE @TRN_TYPE VARCHAR(MAX) = '' --TYPE ĐỂ XÁC ĐỊNH GIAO DỊCH GET CONTENT VÀ URL GỬI MAIL --TRẢ VỀ BƯỚC XỬ LÝ TRƯỚC ĐÓ 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 @BRANCH_LOGIN VARCHAR(15), @DEP_LOGIN VARCHAR(15) DECLARE @p_MESSAGE NVARCHAR(100) = NULL IF(EXISTS (SELECT 1 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 SELECT @BRANCH_LOGIN = tu.TLSUBBRID, @DEP_LOGIN = tu.DEP_ID FROM TL_USER tu WHERE tu.TLNANME = @p_REJECTED_BY --LOẠI PYC DECLARE @REQ_TYPE VARCHAR(50) = (SELECT trsd.REQ_TYPE FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.REQ_ID = @p_TRN_ID) DECLARE @CURRENT_PROCESS VARCHAR(50) = (SELECT TOP 1 prp.PROCESS_ID FROM PL_REQUEST_PROCESS prp WHERE prp.STATUS = 'C' AND prp.REQ_ID = @p_TRN_ID) DECLARE @PROCESS_PREVIOUS VARCHAR(20) = '', --BƯỚC XỬ LÝ ROLLBACK VỀ @PL_ID INT --ID CỦA BƯỚC XỬ LÝ ROLLBACK IF(@p_TRN_TYPE ='ASS_TRANSFER' OR @p_TRN_TYPE = 'ASS_COLLECT' OR @p_TRN_TYPE = 'ASS_REPAIR_ASS') BEGIN --PHIẾU YÊU CẦU DC,SC,TH SET @TRN_TYPE = 'PYC' SELECT TOP 1 @PROCESS_PREVIOUS = A.PROCESS_ID, @PL_ID = A.ID FROM PL_REQUEST_PROCESS A WHERE A.REQ_ID = @p_TRN_ID AND A.PROCESS_TYPE = 'UPDATE' AND A.PROCESS_ID <> @CURRENT_PROCESS ORDER BY A.ID DESC IF(@PROCESS_PREVIOUS = '') BEGIN --BƯỚC TDV TRẢ VỀ -> TRẢ VỀ NGƯỜI TẠO DELETE PL_REQUEST_PROCESS WHERE REQ_ID = @p_TRN_ID 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_TRN_ID) END ELSE 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_TRN_ID) END UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'REJECT', AUTH_STATUS = 'R', SEND_APP_DT = NULL WHERE REQ_ID = @p_TRN_ID SET @TLNAME_SENTMAIL = (SELECT TOP 1 trsd.MAKER_ID FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.REQ_ID = @p_TRN_ID) END ELSE BEGIN --TRẢ VỀ DVCM HOẶC QLTS IF(@CURRENT_PROCESS = 'DVCM_D' OR @CURRENT_PROCESS = 'DVCM') BEGIN --NẾU TRƯỞNG DVCM THÌ TRẢ VỀ NHÂN VIÊN DVCM UPDATE PL_REQUEST_PROCESS SET STATUS = 'C', CHECKER_ID = NULL, APPROVE_DT = NULL WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DVCM' AND DEP_ID = @DEP_LOGIN UPDATE PL_REQUEST_PROCESS SET STATUS = 'U' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DVCM_D' AND DEP_ID = @DEP_LOGIN UPDATE TR_REQUEST_SHOP_COSTCENTER SET AUTH_STATUS = 'E' WHERE REQ_ID = @p_TRN_ID AND COST_ID = @DEP_LOGIN SET @TLNAME_SENTMAIL = (SELECT TOP 1 trsc.MAKER_ID FROM TR_REQUEST_SHOP_COSTCENTER trsc WHERE trsc.REQ_ID = @p_TRN_ID AND trsc.COST_ID = @DEP_LOGIN AND trsc.AUTH_STATUS = 'E') END ELSE BEGIN SET @TLNAME_SENTMAIL = ( SELECT TOP 1 STUFF((SELECT ',' + B.CHECKER_ID FROM PL_REQUEST_PROCESS B WHERE B.REQ_ID = @p_TRN_ID AND B.PROCESS_ID = @PROCESS_PREVIOUS FOR XML PATH ('')), 1, 1, '') FROM PL_REQUEST_PROCESS A WHERE A.REQ_ID = @p_TRN_ID AND A.PROCESS_ID = @PROCESS_PREVIOUS) DELETE PL_REQUEST_PROCESS WHERE ID > @PL_ID AND REQ_ID = @p_TRN_ID --UPDATE BƯỚC XỬ LÝ ROLLBACK UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' , CHECKER_ID = NULL, APPROVE_DT = NULL WHERE PROCESS_ID = @PROCESS_PREVIOUS AND REQ_ID = @p_TRN_ID --UPDATE PYC UPDATE TR_REQUEST_SHOP_DOC SET STATUS = @PROCESS_PREVIOUS, AUTH_STATUS = 'U' , SEND_APP_DT = GETDATE() WHERE REQ_ID = @p_TRN_ID IF(@PROCESS_PREVIOUS = 'DVCM') BEGIN --ROLLBACK VỀ 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_TRN_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', N'Chờ trưởng DVCM duyệt', 'Approve' FROM TR_REQUEST_SHOP_COSTCENTER A WHERE REQ_ID = @p_TRN_ID UPDATE TR_REQUEST_SHOP_COSTCENTER SET CHECKER_ID = NULL, APPROVE_DT = NULL, AUTH_STATUS = 'E' WHERE REQ_ID = @p_TRN_ID UPDATE TR_REQUEST_SHOP_DOC SET SEND_APP_DT = GETDATE() WHERE REQ_ID = @p_TRN_ID IF(@REQ_TYPE = 'SC') BEGIN UPDATE TR_REQUEST_SHOP_DOC SET HO_NOTES = NULL, SEND_APP_DT = GETDATE() WHERE REQ_ID = @p_TRN_ID END END ELSE IF(@PROCESS_PREVIOUS = 'QLTS_N') BEGIN --ROLLBACK VỀ QLTS UPDATE TR_REQUEST_SHOP_DOC SET HO_NOTES = NULL, SEND_APP_DT = GETDATE() WHERE REQ_ID = @p_TRN_ID UPDATE TR_REQUEST_SHOP_COSTCENTER SET MAKER_ID = NULL, CREATE_DT = NULL, CHECKER_ID = NULL, APPROVE_DT = NULL, AUTH_STATUS = 'E' WHERE REQ_ID = @p_TRN_ID END 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(), N'Trả về bước xử lý trước', @p_REASON ) SET @p_MESSAGE =N'Trả về bước xử lý trước thành công' END ------- PYC CẤP PHÁT TÀI SẢN ------------------ ELSE IF (@p_TRN_TYPE='PYC_CPTS') BEGIN SET @TRN_TYPE = 'PYC' SELECT TOP 1 @PROCESS_PREVIOUS = A.PARENT_PROCESS_ID, @PL_ID = A.ID FROM PL_REQUEST_PROCESS A WHERE A.REQ_ID = @p_TRN_ID AND A.STATUS = 'C' ORDER BY A.ID DESC IF(@PROCESS_PREVIOUS = 'ADDNEW') BEGIN --BƯỚC TDV TRẢ VỀ -> TRẢ VỀ NGƯỜI TẠO DELETE PL_REQUEST_PROCESS where REQ_ID =@p_TRN_ID UPDATE PL_REQUEST_PROCESS SET STATUS = 'U' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @CURRENT_PROCESS --UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @PROCESS_PREVIOUS UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'REJECT', AUTH_STATUS = 'R', 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', PARENT_PROCESS_ID = @CURRENT_PROCESS WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'REJECT' END ELSE BEGIN 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', @BRANCH_LOGIN, @p_REJECTED_BY , GETDATE(), @CURRENT_PROCESS, 'N', '', '', N'Từ chối phiếu', 0, @DEP_LOGIN, '', GETDATE()); END SET @TLNAME_SENTMAIL = (SELECT TOP 1 trsd.MAKER_ID FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.REQ_ID = @p_TRN_ID) END ELSE IF(@PROCESS_PREVIOUS = 'APPNEW') BEGIN --BƯỚC QLTS_N TRẢ VỀ -> TRẢ VỀ NGƯỜI TẠO DELETE PL_REQUEST_PROCESS where REQ_ID =@p_TRN_ID UPDATE PL_REQUEST_PROCESS SET STATUS = 'U' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @PROCESS_PREVIOUS --UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'ADDNEW' UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'REJECT', AUTH_STATUS = 'R', 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', PARENT_PROCESS_ID = @CURRENT_PROCESS WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'REJECT' END ELSE BEGIN 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', @BRANCH_LOGIN,@p_REJECTED_BY , GETDATE(), @CURRENT_PROCESS, 'N', '', '', N'Từ chối phiếu', 0, @DEP_LOGIN, '', GETDATE()); END SET @TLNAME_SENTMAIL = (SELECT TOP 1 trsd.MAKER_ID FROM TR_REQUEST_SHOP_DOC trsd WHERE trsd.REQ_ID = @p_TRN_ID) END ELSE IF(@PROCESS_PREVIOUS = 'QLTS_N') BEGIN --BƯỚC TDV TRẢ VỀ -> TRẢ VỀ NGƯỜI TẠO UPDATE PL_REQUEST_PROCESS SET STATUS = 'U' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @CURRENT_PROCESS UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @PROCESS_PREVIOUS UPDATE TR_REQUEST_SHOP_DOC SET STATUS = @PROCESS_PREVIOUS, SEND_APP_DT = NULL WHERE REQ_ID = @p_TRN_ID SET @TLNAME_SENTMAIL = (SELECT TOP 1 trsd.CHECKER_ID FROM PL_REQUEST_PROCESS trsd WHERE trsd.REQ_ID = @p_TRN_ID AND STATUS = 'C') END ELSE IF(@PROCESS_PREVIOUS = 'DVCM') BEGIN IF(@CURRENT_PROCESS = 'DVCM_D' OR @CURRENT_PROCESS = 'DVCM') BEGIN --NẾU TRƯỞNG DVCM THÌ TRẢ VỀ NHÂN VIÊN DVCM UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DVCM' AND DEP_ID = @DEP_LOGIN UPDATE PL_REQUEST_PROCESS SET STATUS = 'U' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DVCM_D' AND DEP_ID = @DEP_LOGIN UPDATE TR_REQUEST_SHOP_COSTCENTER SET AUTH_STATUS = 'E' WHERE REQ_ID = @p_TRN_ID AND COST_ID = @DEP_LOGIN UPDATE TR_REQUEST_SHOP_DOC SET SEND_APP_DT = NULL WHERE REQ_ID = @p_TRN_ID SET @TLNAME_SENTMAIL = ( SELECT TOP 1 STUFF((SELECT ',' + B.CHECKER_ID FROM PL_REQUEST_PROCESS B WHERE B.REQ_ID = @p_TRN_ID AND B.PROCESS_ID = @PROCESS_PREVIOUS FOR XML PATH ('')), 1, 1, '') FROM PL_REQUEST_PROCESS A WHERE A.REQ_ID = @p_TRN_ID AND A.PROCESS_ID = @PROCESS_PREVIOUS) END END ELSE IF(@PROCESS_PREVIOUS = 'DVCM_D') BEGIN IF(@CURRENT_PROCESS = 'QLTS_NL') BEGIN --NẾU QLTS THÌ TRẢ VỀ NHÂN VIÊN DVCM UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DVCM' UPDATE PL_REQUEST_PROCESS SET STATUS = 'U' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'DVCM_D' UPDATE PL_REQUEST_PROCESS SET STATUS = 'U' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'QLTS_NL' UPDATE TR_REQUEST_SHOP_COSTCENTER SET AUTH_STATUS = 'E' WHERE REQ_ID = @p_TRN_ID UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'DVCM' ,SEND_APP_DT = NULL WHERE REQ_ID = @p_TRN_ID SET @TLNAME_SENTMAIL = ( SELECT TOP 1 STUFF((SELECT ',' + B.CHECKER_ID FROM PL_REQUEST_PROCESS B WHERE B.REQ_ID = @p_TRN_ID AND B.PROCESS_ID = 'DVCM' FOR XML PATH ('')), 1, 1, '') FROM PL_REQUEST_PROCESS A WHERE A.REQ_ID = @p_TRN_ID AND A.PROCESS_ID = 'DVCM') END END ELSE IF(@PROCESS_PREVIOUS = 'QLTS_NL' AND @CURRENT_PROCESS = 'TBP_D') --ROLLBACK VỀ QLTS TỪ TRƯỞNG BỘ PHẬN BEGIN UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @PROCESS_PREVIOUS UPDATE PL_REQUEST_PROCESS SET STATUS = 'U' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @CURRENT_PROCESS --UPDATE PYC UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'QLTS_NL', SEND_APP_DT = NULL WHERE REQ_ID = @p_TRN_ID SET @TLNAME_SENTMAIL = (SELECT TOP 1 trsd.CHECKER_ID FROM PL_REQUEST_PROCESS trsd WHERE trsd.REQ_ID = @p_TRN_ID AND STATUS = 'C') END ELSE IF(@PROCESS_PREVIOUS = 'TBP_D' AND @CURRENT_PROCESS = 'QLTS_D') --ROLLBACK VỀ QLTS TỪ TRƯỞNG ĐƠN VỊ QLTS BEGIN UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'QLTS_NL' UPDATE PL_REQUEST_PROCESS SET STATUS = 'U' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @CURRENT_PROCESS UPDATE PL_REQUEST_PROCESS SET STATUS = 'U' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @PROCESS_PREVIOUS --UPDATE PYC UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'QLTS_NL', SEND_APP_DT = NULL WHERE REQ_ID = @p_TRN_ID SET @TLNAME_SENTMAIL = (SELECT TOP 1 trsd.CHECKER_ID FROM PL_REQUEST_PROCESS trsd WHERE trsd.REQ_ID = @p_TRN_ID AND STATUS = 'C') END ELSE IF(@PROCESS_PREVIOUS = 'QLTS_D' AND @CURRENT_PROCESS = 'TTQLTS_D') --ROLLBACK VỀ QLTS TỪ TT DỊCH VỤ NB BEGIN UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'QLTS_NL' UPDATE PL_REQUEST_PROCESS SET STATUS = 'U' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = 'TBP_D' UPDATE PL_REQUEST_PROCESS SET STATUS = 'U' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @CURRENT_PROCESS UPDATE PL_REQUEST_PROCESS SET STATUS = 'U' WHERE REQ_ID = @p_TRN_ID AND PROCESS_ID = @PROCESS_PREVIOUS --UPDATE PYC UPDATE TR_REQUEST_SHOP_DOC SET STATUS = 'QLTS_NL', SEND_APP_DT = NULL WHERE REQ_ID = @p_TRN_ID SET @TLNAME_SENTMAIL = (SELECT TOP 1 trsd.CHECKER_ID FROM PL_REQUEST_PROCESS trsd WHERE trsd.REQ_ID = @p_TRN_ID AND STATUS = 'C') END BEGIN 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ề bước xử lý trước', @p_REASON ) SET @p_MESSAGE =N'Trả về bước xử lý trước thành công' END 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, @IS_SENDMAIL IS_SENDMAIL, @TLNAME_SENTMAIL TLNAME_SENTMAIL, @TRN_TYPE TRN_TYPE RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' LOG_ID, '' ErrorDesc RETURN '-1' END 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) EXEC ENTRIES_POST_GEN_NO @p_BRANCH_ID = 'DV0001' ,@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 = '') 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 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 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].[ASS_ADDNEW_BVB_ById]' GO /* [ASS_ADDNEW_ById] 'ASA000000000001', 'DV0006' */ ALTER PROCEDURE [dbo].[ASS_ADDNEW_BVB_ById] @p_ADDNEW_ID varchar(15) = NULL, @p_BRANCH_LOGIN varchar(15) = NULL AS --thieuvq them 22/04/2014 -- DECLARE @l_BRANCH_TYPE VARCHAR(20) = '' SELECT @l_BRANCH_TYPE = BRANCH_TYPE FROM CM_BRANCH WHERE BRANCH_ID = @p_BRANCH_LOGIN --LAY GIA TRI QUY DINH LA TSCD HAY CCLD DECLARE @l_ASSET_VALUE DECIMAL = 30000000 SELECT @l_ASSET_VALUE = CONVERT(decimal(18,0), ParaValue) FROM SYS_PARAMETERS WHERE ParaKey = 'ASSET_VALUE' -- --THONG TIN CHI TIET TAI SAN SELECT A.*, BR.BRANCH_TYPE, BR.FATHER_ID, (CASE WHEN EXISTS(SELECT 1 FROM ASS_ENTRIES_POST aep WHERE aep.TRN_ID=@p_ADDNEW_ID AND aep.REF_NO IS NULL) THEN 1 ELSE 0 END) AS IS_REF_NO FROM vASS_ADDNEW A LEFT JOIN CM_BRANCH BR ON A.BRANCH_ID = BR.BRANCH_ID WHERE A.ADDNEW_ID = @p_ADDNEW_ID -- THONG TIN ASS_PO --SELECT AP.ASS_PO_ID, AP.ADD_NEW_ID AS ASS_PO_ADDNEWID, AP.PO_CODE AS ASS_PO_CODE, AP.INVOICE_NO AS AS_INVOICE_NO, AP.INVOICE_DT AS ASS_INVOICE_DT --FROM ASS_PO AP WHERE AP.ADD_NEW_ID =@p_ADDNEW_ID --LAY MA PO MA TAI SAN THAM CHIU DEN DECLARE @l_PO_ID VARCHAR(15) = (SELECT B.PO_ID FROM ASS_ADDNEW B WHERE B.ADDNEW_ID = @p_ADDNEW_ID) --THONG TIN PO - TAI SAN THUOC PO NAO SELECT TR.PO_ID, TR.PO_CODE, TR.PO_NAME, TR.CONTRACT_ID, TR.SUP_ID, TR.SUP_NAME, TR.SUP_ADDR, TR.INPUT_DT, TR.PAYMENT_DT, TR.TOTAL_AMT, TR.REQ_DOC_ID, TR.DELIVERY_DT, TR.PAYAPP_DT, TR.NOTES, TR.RECORD_STATUS, TR.MAKER_ID, TR.CREATE_DT, TR.AUTH_STATUS, TR.CHECKER_ID, TR.APPROVE_DT, TR.PO_TYPE, TR.BRANCH_ID, TR.CONTRACT_CODE, TR.AUTH_STATUS_NAME, TR.S_SUP_CODE, TR.S_SUP_NAME, TR.S_ADDR, TR.C_CONTRACT_CODE, TR.C_CONTRACT_NAME, TR.C_TOTAL_AMT, TR.C_DONE_AMT, PO.ADDNEW_PO_ID, PO.INVOICE_NO, PO.INVOICE_DT, PO.INVOICE_SYMPOL FROM TR_PO_MASTER_VIEW TR INNER JOIN ASS_ADDNEW_PO PO ON PO.PO_ID = TR.PO_ID WHERE PO.ADDNEW_ID = @p_ADDNEW_ID --DANH SACH PO_DETAIL - CAC HANG HOA TRONG PO SELECT POD.PD_ID, GDS.PO_ID, POD.PLAN_ID, POD.TRADE_ID, POD.GOODS_ID, POD.DESCRIPTION, POD.UNIT_ID, POD.QUANTITY, POD.PRICE, POD.TOTAL_AMT, POD.IS_DELIVERY, POD.DELIVERY_DT, POD.PAYMENT_STATUS, POD.AMOUNT_PAID, POD.PAID_DT, GDS.INVOICE_NO AS INVOICENO, POD.NOTES, POD.RECEIVE_BRANCH, POD.RECEIVE_ADDR, POD.RECEIVE_PERSON, POD.RECEIVE_TEL, POD.RECORD_STATUS, POD.MAKER_ID, POD.CREATE_DT, POD.AUTH_STATUS, POD.CHECKER_ID, POD.APPROVE_DT, POD.EXP_DELIVERY_DT, POD.GOODS_NAME, GDS.INVOICE_DT AS INVOICE_DT, GDS.INVOICE_SYMPOL, POD.GOODSTYPE_REAL, POD.VAT, POD.PRICE_VAT, POD.CONTRACT_DT, POD.PRICE_D, POD.BRANCH_CODE, POD.BRANCH_ID, POD.BRANCH_NAME, POD.GD_CODE, POD.GD_ID, POD.GOODS_NAME AS GD_NAME, POD.UNIT_CODE, POD.UNIT_NAME, POD.PLAN_CODE, POD.PLAN_NAME, POD.REMAIN_AMOUNT, POD.R_BRANCH_CODE, POD.R_BRANCH_NAME, POD.GD_RETYPE_ID, POD.GD_RETYPE_CODE, POD.GDREAL_TYPE_NAME, GDS.ADDNEW_GD_ID FROM TR_PO_DETAIL_VIEW POD INNER JOIN ASS_ADDNEW_GD GDS ON POD.PD_ID = GDS.TRPO_ID --WHERE (POD.PO_ID = @l_PO_ID AND POD.RECEIVE_BRANCH = @p_BRANCH_LOGIN) -- OR(POD.PO_ID = @l_PO_ID AND @l_BRANCH_TYPE = 'HS' AND POD.PRICE > @l_ASSET_VALUE) WHERE GDS.ADDNEW_ID = @p_ADDNEW_ID --THONG TIN LICH BAO HANH SELECT A.* FROM ASS_ADDNEW_DT A WHERE A.ADDNEW_ID = @p_ADDNEW_ID -- ADDNEW SELECT B.PO_CODE, B.INVOICE_NO, B.INVOICE_SYMPOL, B.INVOICE_DATE, A.AUTH_STATUS, A.AUTH_STATUS_KT, UM2.TLFullName AS CREATE_USER_NAME, UM3.TLFullName AS APPROVE_NAME_KT, UM4.TLFullName AS CREATE_USER_NAME_KT, UM.TLFullName MAKER_NAME, B.ASSPO_ID ,AG1.GROUP_ID AS PARENT_GROUP_ID, AG1.GROUP_CODE AS PARENT_GROUP_CODE, A.WIN_CRACK AS WIN, A.OFFICE_CRACK AS OFFICE FROM dbo.ASS_ADDNEW A LEFT JOIN dbo.ASS_PO B ON B.ADDNEW_ID = A.ADDNEW_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 UM3.TLNANME = A.CHECKER_ID_KT LEFT JOIN TL_USER UM4 ON UM4.TLNANME = A.MAKER_ID_KT LEFT JOIN ASS_GROUP AG ON A.GROUP_ID = AG.GROUP_ID LEFT JOIN ASS_GROUP AG1 ON AG.PARENT_ID = AG1.GROUP_ID WHERE A.ADDNEW_ID = @p_ADDNEW_ID GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[ASS_PRIVATE_TRANSFER_MASTER_Ins]' GO ALTER PROCEDURE [dbo].[ASS_PRIVATE_TRANSFER_MASTER_Ins] @p_BRANCH_ID varchar(15) = NULL, @p_TRANSFER_DT VARCHAR(100) = NULL, @p_USER_TRANSFER 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(100) = NULL, @p_CHECKER_ID varchar(100) = NULL, @p_APPROVE_DT VARCHAR(100) = NULL, @p_AUTH_STATUS_KT varchar(15) = NULL, @p_CREATE_DT_KT varchar(100) = NULL, @p_APPROVE_DT_KT VARCHAR(100) = 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 = NUL AS /* */ DECLARE @ASSET_ID varchar(15), @BRANCH_ID varchar(15), @DEPT_ID varchar(15), @EMP_ID varchar(15), @LOCATION varchar(500), @DESCRIPTION nvarchar(1000), @BRANCH_ID_OLD varchar(15), @DEPT_ID_OLD varchar(15), @EMP_ID_OLD varchar(15), @REMAIN_VALUE DECIMAL(18,0), @BUY_PRICE DECIMAL(18,0), @DEPT_CREATE VARCHAR(15) = (SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME = @p_MAKER_ID) 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), DEPT_ID varchar(15), EMP_ID varchar(15), LOCATION varchar(500), [DESCRIPTION] nvarchar(1000), REMAIN_VALUE DECIMAL(18,0), BUY_PRICE DECIMAL(18,0) ) OPEN XmlData BEGIN TRANSACTION DECLARE @l_TRANS_MULTI_MASTER_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'ASS_PRIVATE_TRANSFER_MASTER', @l_TRANS_MULTI_MASTER_ID out IF @l_TRANS_MULTI_MASTER_ID='' OR @l_TRANS_MULTI_MASTER_ID IS NULL GOTO ABORT print 'error' INSERT INTO ASS_PRIVATE_TRANSFER_MASTER([TRANS_MULTI_MASTER_ID],[BRANCH_ID],[TRANSFER_DT],[USER_TRANSFER],[NOTES],[RECORD_STATUS],[AUTH_STATUS],[MAKER_ID],[CREATE_DT],[CHECKER_ID],[APPROVE_DT],[REPORT_STATUS],[DEPT_CREATE]) VALUES(@l_TRANS_MULTI_MASTER_ID ,@p_BRANCH_ID ,CONVERT(DATETIME, @p_TRANSFER_DT, 103) ,@p_USER_TRANSFER ,@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) ,@p_REPORT_STATUS,@DEPT_CREATE) IF @@Error <> 0 GOTO ABORT DECLARE @COUNT INT; SET @COUNT = 1; --Insert XmlData FETCH NEXT FROM XmlData INTO @ASSET_ID,@BRANCH_ID,@DEPT_ID,@EMP_ID,@LOCATION,@DESCRIPTION, @REMAIN_VALUE, @BUY_PRICE WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @ERRORSYS NVARCHAR(200) = '',@ASSET_CODE nVARCHAR(100) SELECT @EMP_ID_OLD = A.EMP_ID, @BRANCH_ID = A.BRANCH_ID, @DEPT_ID = A.DEPT_ID FROM ASS_MASTER A WHERE A.ASSET_ID = @ASSET_ID DECLARE @l_TRANSFER_MULTI_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'ASS_PRIVATE_TRANSFER_DT', @l_TRANSFER_MULTI_ID out IF @l_TRANSFER_MULTI_ID='' OR @l_TRANSFER_MULTI_ID IS NULL GOTO ABORT INSERT INTO ASS_PRIVATE_TRANSFER_DT([TRANSFER_MULTI_ID],[TRANS_MULTI_MASTER_ID],[ASSET_ID],[BRANCH_ID],[DEPT_ID],[EMP_ID],[USE_START_DT],[DESCRIPTION],[LOCATION],[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_OLD], [DEPT_ID_OLD], [EMP_ID_OLD], REMAIN_VALUE,BUY_PRICE) VALUES(@l_TRANSFER_MULTI_ID ,@l_TRANS_MULTI_MASTER_ID ,@ASSET_ID ,@BRANCH_ID ,@DEPT_ID ,@EMP_ID ,CONVERT(DATETIME, @p_TRANSFER_DT, 103) ,@DESCRIPTION ,@LOCATION ,@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, @DEPT_ID , @EMP_ID_OLD, @REMAIN_VALUE,@BUY_PRICE) IF @@Error <> 0 GOTO ABORT SET @COUNT = @COUNT + 1; FETCH NEXT FROM XmlData INTO @ASSET_ID,@BRANCH_ID,@DEPT_ID,@EMP_ID,@LOCATION,@DESCRIPTION, @REMAIN_VALUE, @BUY_PRICE END CLOSE XmlData DEALLOCATE XmlData -- GIANT 21/09/2021 print 'error2' INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @l_TRANS_MULTI_MASTER_ID, -- REQ_ID - varchar(15) 'INSERT', -- PROCESS_ID - varchar(10) @p_MAKER_ID, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime N'Đơn vị tạo phiếu', -- PROCESS_DESC - nvarchar(1000) N'Thêm mới phiều điều chuyển thành công' ) COMMIT TRANSACTION SELECT '0' as Result, @l_TRANS_MULTI_MASTER_ID TRANS_MULTI_MASTER_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN CLOSE XmlData DEALLOCATE XmlData 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].[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 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].[ASS_PRIVATE_TRANSFER_MASTER_Upd]' GO ALTER PROCEDURE [dbo].[ASS_PRIVATE_TRANSFER_MASTER_Upd] @p_TRANS_MULTI_MASTER_ID varchar(15) = null , @p_BRANCH_ID varchar(15) = NULL , @p_TRANSFER_DT VARCHAR(100) = NULL, @p_USER_TRANSFER 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(100) = NULL, @p_CHECKER_ID varchar(100) = NULL , @p_APPROVE_DT VARCHAR(100) = NULL, @p_AUTH_STATUS_KT varchar(100) = NULL , @p_CREATE_DT_KT varchar(100) = NULL, @p_APPROVE_DT_KT VARCHAR(100) = 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 = NUL AS DECLARE @TRANSFER_MULTI_ID varchar(15), @ASSET_ID varchar(15), @BRANCH_ID varchar(15), @DEPT_ID varchar(15), @EMP_ID varchar(15), @LOCATION varchar(500), @DESCRIPTION nvarchar(1000), @BRANCH_ID_OLD varchar(15), @DEPT_ID_OLD varchar(15), @EMP_ID_OLD varchar(15), @REMAIN_VALUE DECIMAL(18,0), @BUY_PRICE DECIMAL(18,0) Declare @hdoc INT Exec sp_xml_preparedocument @hdoc Output,@p_XmlData DECLARE XmlData CURSOR FOR SELECT * FROM OPENXML(@hdoc,'/Root/XmlData',2) WITH ( TRANSFER_MULTI_ID varchar(15), ASSET_ID varchar(15), BRANCH_ID varchar(15), DEPT_ID varchar(15), EMP_ID varchar(15), LOCATION varchar(500), [DESCRIPTION] nvarchar(1000), REMAIN_VALUE DECIMAL(18,0), BUY_PRICE DECIMAL(18,0) ) OPEN XmlData DELETE FROM ASS_PRIVATE_TRANSFER_DT WHERE TRANS_MULTI_MASTER_ID = @p_TRANS_MULTI_MASTER_ID BEGIN TRANSACTION UPDATE ASS_PRIVATE_TRANSFER_MASTER SET [BRANCH_ID] = @p_BRANCH_ID,[TRANSFER_DT] = CONVERT(DATETIME, @p_TRANSFER_DT, 103),[USER_TRANSFER] = @p_USER_TRANSFER,[NOTES] = @p_NOTES,[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),[REPORT_STATUS] = @p_REPORT_STATUS WHERE TRANS_MULTI_MASTER_ID= @p_TRANS_MULTI_MASTER_ID IF @@Error <> 0 GOTO ABORT DECLARE @COUNT INT; SET @COUNT = 1; --Insert XmlData FETCH NEXT FROM XmlData INTO @TRANSFER_MULTI_ID,@ASSET_ID,@BRANCH_ID,@DEPT_ID,@EMP_ID,@LOCATION,@DESCRIPTION, @REMAIN_VALUE, @BUY_PRICE WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @ERRORSYS NVARCHAR(200) = '',@ASSET_CODE nVARCHAR(100) EXEC SYS_CodeMasters_Gen 'ASS_PRIVATE_TRANSFER_DT', @TRANSFER_MULTI_ID out IF @TRANSFER_MULTI_ID='' OR @TRANSFER_MULTI_ID IS NULL GOTO ABORT SELECT @EMP_ID_OLD = A.EMP_ID, @BRANCH_ID = A.BRANCH_ID, @DEPT_ID = A.DEPT_ID FROM ASS_MASTER A WHERE A.ASSET_ID = @ASSET_ID INSERT INTO ASS_PRIVATE_TRANSFER_DT([TRANSFER_MULTI_ID],[TRANS_MULTI_MASTER_ID],[ASSET_ID],[BRANCH_ID],[DEPT_ID],[EMP_ID],[USE_START_DT],[DESCRIPTION],[LOCATION],[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_OLD], [DEPT_ID_OLD], [EMP_ID_OLD], [REMAIN_VALUE], BUY_PRICE) VALUES(@TRANSFER_MULTI_ID ,@p_TRANS_MULTI_MASTER_ID ,@ASSET_ID ,@BRANCH_ID ,@DEPT_ID ,@EMP_ID ,CONVERT(DATETIME, @p_TRANSFER_DT, 103) ,@DESCRIPTION ,@LOCATION ,@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, @DEPT_ID , @EMP_ID_OLD,@REMAIN_VALUE, @BUY_PRICE) IF @@Error <> 0 GOTO ABORT SET @COUNT = @COUNT + 1; FETCH NEXT FROM XmlData INTO @TRANSFER_MULTI_ID,@ASSET_ID,@BRANCH_ID,@DEPT_ID,@EMP_ID,@LOCATION,@DESCRIPTION, @REMAIN_VALUE, @BUY_PRICE END CLOSE XmlData DEALLOCATE XmlData -- HUYHT 06/05/2022: XÓA CÁC PROCESS UPDATE CŨ DELETE dbo.PL_PROCESS 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) 'UPDATE', -- PROCESS_ID - varchar(10) @p_MAKER_ID, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime N'Đơn vị cập nhật phiếu' , N'Cập nhật phiếu điều chuyển thành công' ) COMMIT TRANSACTION SELECT '0' as Result, @p_TRANS_MULTI_MASTER_ID TRANS_MULTI_MASTER_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN CLOSE XmlData DEALLOCATE XmlData 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_USE_MULTI_BVB_MASTER_ByReqId]' GO ALTER PROCEDURE [dbo].[ASS_USE_MULTI_BVB_MASTER_ByReqId] @p_REQ_ID varchar(15), @p_ASS_GROUP_ID VARCHAR(15) AS DECLARE @TBL_GROUP_CODE_ASS_USE TABLE (GROUP_ID VARCHAR(100)) 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 = @p_ASS_GROUP_ID) SELECT TOP 1 A.REQ_ID ,A.REQ_CODE ,A.REQ_NAME ,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.STATUS ,A.HO_NOTES ,A.REQ_PARENT_ID ,A.AFTER_APPROVE ,A.IS_DONE, AA.PL_CODE, -- @R_SUBBRANCH_ID AS R_SUBBRANCH_ID, --KHỐI SỬ DỤNG -- @R_SUBBRANCH_NAME AS R_SUBBRANCH_NAME, --KHỐI SỬ DỤNG -- @R_FATHER_ID AS R_FATHER_ID, --TRUNG TÂM SỬ DỤNG -- @R_FATHER_NAME AS R_FATHER_NAME, --TRUGN TÂM SỬ DỤNG -- @R_DEP_ID AS R_DEP_ID, --PHÒNG BAN SỬ DỤNG -- @R_DEP_NAME AS R_DEP_NAME, --PHÒNG BAN SỬ DỤNG G.BRANCH_ID, G.BRANCH_NAME, (CASE WHEN DP.TYPE = 'K' THEN (SELECT DP.DEP_ID) ELSE (SELECT DP.KHOI_ID) END) AS R_SUBBRANCH_ID,--MÃ KHỐI CASE WHEN DP.TYPE = 'K' THEN (SELECT DP.DEP_NAME) ELSE (SELECT A1.DEP_NAME FROM CM_DEPARTMENT A1 WHERE A1.DEP_ID = DP.KHOI_ID) END AS R_SUBBRANCH_NAME,--TÊN KHỐI CASE WHEN DP.TYPE = 'TT' THEN(SELECT DP.DEP_ID) ELSE (SELECT DP.FATHER_ID) END AS R_FATHER_ID,--MÃ TRUNG TÂM CASE WHEN DP.TYPE = 'TT' THEN DP.DEP_NAME ELSE (SELECT A1.DEP_NAME FROM CM_DEPARTMENT A1 WHERE A1.DEP_ID = DP.FATHER_ID) END AS R_FATHER_NAME,--TÊN TRUNG TÂM CASE WHEN DP.TYPE = 'PB' THEN DP.DEP_ID END AS R_DEP_ID,--MÃ PHÒNG BAN CASE WHEN DP.TYPE = 'PB' THEN (SELECT DP.DEP_NAME) END AS R_DEP_NAME, --TÊN PHÒNG BAN EM.EMP_ID AS RECEIVE_PERSON, --ID NGƯỜI SỬ DỤNG EM.EMP_NAME AS R_PERSON_NAME --TÊN NGƯỜI SỬ DỤNG FROM TR_REQUEST_SHOP_DOC_DT B LEFT JOIN TR_REQUEST_SHOP_DOC A ON B.REQ_DOC_ID = A.REQ_ID LEFT JOIN ASS_ADDNEW AA ON A.REQ_ID = AA.REQ_ID LEFT JOIN CM_BRANCH G ON G.BRANCH_ID = A.BRANCH_ID LEFT JOIN CM_DEPARTMENT DP ON A.DEP_ID = DP.DEP_ID LEFT JOIN CM_EMPLOYEE EM ON B.EMP_ID = EM.EMP_ID WHERE B.REQ_DOC_ID = @p_REQ_ID AND B.ASS_GROUP_ID IN (SELECT GROUP_ID FROM @TBL_GROUP_CODE_ASS_USE) AND (B.REQ_DT_TYPE = 'BUYNEW' OR (B.REQ_DT_TYPE = 'XKSD' AND B.TYPE_XL = 'CPTK')) GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[TR_REQUEST_SHOP_DOC_Search]' GO ALTER PROCEDURE [dbo].[TR_REQUEST_SHOP_DOC_Search] @p_REQ_ID varchar(15) = NULL, @p_REQ_CODE nvarchar(100) = NULL, @p_REQ_NAME nvarchar(200) = NULL, @p_REQ_DT VARCHAR(20) = NULL, @p_REQ_TYPE varchar(20) = NULL, @p_REQ_CONTENT NVARCHAR(1000)=NULL, @p_TOTAL_AMT decimal = NULL, @p_NOTES nvarchar(1000) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_MAKER_ID NVARCHAR(100) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_AUTH_STATUS varchar(50) = NULL, @p_CHECKER_ID VARCHAR(100) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_RECEIVE_BRANCH VARCHAR(15) = NULL, @p_USERNAME VARCHAR(100) = NULL, @p_BRANCH_ID VARCHAR(15)=NULL, @p_DEP_ID VARCHAR(15)=NULL, @p_STATUS VARCHAR(15)=NULL, @p_TOP INT = 10, @p_DVKD_MANAGE_APP_FROM VARCHAR(20) = NULL, @p_DVKD_MANAGE_APP_TO VARCHAR(20) = NULL, @p_REGION_ID varchar(15) = NULL, @p_CDTYPE_PYC VARCHAR(20) = NULL --Phucvh Truyền thêm CDTYPE để xác định loại PYC AS BEGIN -- PAGING DECLARE @ROLE_KT VARCHAR(50) = (SELECT TU.RoleName FROM TL_USER TU WHERE TU.TLNANME = @p_USERNAME) DECLARE @DEP_ID VARCHAR(20),@BRANCH_ID VARCHAR(20) DECLARE @ROLE_LOGIN TABLE(ROLE_USER VARCHAR(20), BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20)) -- INSERT INTO @ROLE_LOGIN SELECT DisplayName AS ROLE_USER FROM AbpRoles WHERE Id IN (SELECT A.RoleId FROM AbpUserRoles A -- LEFT JOIN TL_USER B ON A.UserId = B.ID -- WHERE B.TLNANME = @p_USERNAME) INSERT INTO @ROLE_LOGIN SELECT tugr.ROLE_ID, tugr.BRANCH_ID, tugr.DEPT_ID FROM dbo.TL_USER_GET_ROLES(@p_USERNAME) tugr SET @DEP_ID= (SELECT DEP_ID FROM dbo.TL_USER WHERE TLNANME=@p_USERNAME) SET @BRANCH_ID= (SELECT TLSUBBRID FROM dbo.TL_USER WHERE TLNANME=@p_USERNAME) DECLARE @lstCOST TABLE ( COST_ID VARCHAR(20) ) INSERT INTO @lstCOST SELECT COST_ID FROM dbo.CM_COSTCENTER_DT WHERE BRANCH_ID=@BRANCH_ID AND DEP_ID=@DEP_ID -- TienLee 11/14/21 -- -- DECLARE @TempSTATUS TABLE ( STATUS VARCHAR(20) ) IF(EXISTS(SELECT ROLE_USER FROM @ROLE_LOGIN WHERE ROLE_USER ='QLTS' )) BEGIN INSERT INTO @TempSTATUS VALUES('DVKD') INSERT INTO @TempSTATUS VALUES('DVCM') END ELSE IF(EXISTS(SELECT ROLE_USER FROM @ROLE_LOGIN WHERE ROLE_USER ='DVCM' )) BEGIN INSERT INTO @TempSTATUS VALUES('QLTS_N') INSERT INTO @TempSTATUS VALUES('DVCM') END ELSE IF(EXISTS(SELECT ROLE_USER FROM @ROLE_LOGIN WHERE ROLE_USER ='CVMS' )) BEGIN INSERT INTO @TempSTATUS VALUES('QLTS_N') INSERT INTO @TempSTATUS VALUES('QLTS_XL') INSERT INTO @TempSTATUS VALUES('DVCM') END DECLARE @lstBRANCH_DEP TABLE ( BRANCH_ID VARCHAR(20), DEP_ID VARCHAR(20) ) -- IF(NOT EXISTS(SELECT ROLE_USER FROM @ROLE_LOGIN WHERE ROLE_USER ='DVCM' OR ROLE_USER='CVMS_TBP' )) -- BEGIN -- INSERT INTO @lstBRANCH_DEP -- (BRANCH_ID,DEP_ID) -- SELECT TLSUBBRID,DEP_ID FROM dbo.TL_USER WHERE TLNANME=@p_USERNAME -- -- INSERT INTO @lstBRANCH_DEP -- (BRANCH_ID,DEP_ID) -- SELECT BRANCH_ID,DEP_ID FROM dbo.CM_KHOI_DT -- WHERE KHOI_ID IN (SELECT KHOI_ID FROM dbo.CM_KHOI_DT WHERE DEP_ID= @DEP_ID AND BRANCH_ID=@BRANCH_ID) -- END -- -- -- -- DECLARE @tbDep TABLE(DEP_ID VARCHAR(20)) --INSERT INTO @tbDep --SELECT ckd.DEP_ID FROM CM_DEPARTMENT cd ----LEFT JOIN CM_KHOI ck ON cd.DEP_CODE=ck.KHOI_CODE ----LEFT JOIN CM_KHOI_DT ckd ON ck.KHOI_ID = ckd.KHOI_ID --WHERE cd.DEP_ID=@p_DEP_ID DECLARE @REQ_ID_Temp TABLE(REQ_ID VARCHAR(20)) INSERT INTO @REQ_ID_Temp SELECT A.REQ_ID FROM TR_REQUEST_SHOP_DOC A LEFT JOIN PL_REQUEST_PROCESS B ON A.REQ_ID = B.REQ_ID AND B.STATUS = 'C' WHERE (EXISTS(SELECT RL.ROLE_USER FROM @ROLE_LOGIN RL WHERE RL.BRANCH_ID = B.BRANCH_ID AND (B.BRANCH_ID = 'DV0001' AND B.DEP_ID = RL.DEP_ID OR B.BRANCH_ID <> 'DV0001') AND RL.ROLE_USER = B.ROLE_USER) OR EXISTS(SELECT * FROM @ROLE_LOGIN RL JOIN PL_REQUEST_PROCESS C ON C.REQ_ID = A.REQ_ID AND C.STATUS = 'P' AND RL.BRANCH_ID = C.BRANCH_ID AND (C.BRANCH_ID = 'DV0001' AND C.DEP_ID = RL.DEP_ID OR C.BRANCH_ID <> 'DV0001') AND RL.ROLE_USER = C.ROLE_USER) OR A.MAKER_ID = @p_USERNAME) GROUP BY A.REQ_ID IF((EXISTS(SELECT * FROM PL_CONFIG_DATA WHERE TYPE_DATA = 'REQUEST_DOC_SLAS' AND REF_ID IN (SELECT ROLE_USER FROM @ROLE_LOGIN)))) BEGIN IF(@p_TOP IS NULL OR @p_TOP = '' OR @p_TOP = 0) BEGIN -- PAGING BEGIN SELECT A.REQ_ID, A.REQ_CODE, A.REQ_NAME, --ISNULL(PRP.APPROVE_DT,PRP2.APPROVE_DT) AS REQ_DT, A.REQ_DT, A.REQ_TYPE, A.REQ_CONTENT, A.TOTAL_AMT, A.NOTES, A.RECORD_STATUS, A.MAKER_ID, A.CREATE_DT, A.AUTH_STATUS, A.CHECKER_ID, A.APPROVE_DT, A.BRANCH_ID, CASE WHEN A.REQ_TYPE = 'CPTS' AND A.IS_DONE = '1' AND A.STATUS = 'DONE' THEN 'APPROVE' ELSE A.STATUS END AS STATUS, A.DEP_ID, A.HO_NOTES, K.CONTENT AS REQ_TYPE_NAME, --I.CONTENT AS REQ_STATUS_NAME, CASE WHEN A.IS_DONE = '1' AND A.STATUS = 'APPROVE' THEN N'Hoàn tất' ELSE I.CONTENT END REQ_STATUS_NAME, @p_RECEIVE_BRANCH AS RECEIVE_BRANCH,G.BRANCH_CODE, CASE WHEN A.DEP_ID IS NOT NULL AND A.DEP_ID <> '' THEN G.BRANCH_NAME + ' - ' + CD.DEP_NAME ELSE G.BRANCH_NAME END AS BRANCH_NAME, --CASE WHEN RQT.STATUS = 'C' OR RQT.STATUS = 'U' THEN N'Chờ duyệt' --ELSE N'Đã duyệt' END AS AUTH_STATUS_NAME D.AUTH_STATUS_NAME AS AUTH_STATUS_NAME, I.CONTENT AS REQ_TYPE_NAME, CASE WHEN A.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 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 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,''' + (SELECT ca.ParaValue FROM SYS_PARAMETERS ca WHERE ca.ParaKey = 'LAST_SYNC_DATE') + ''',103),TGTao) >= 0 ORDER BY TGTao' 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_PRIVATE_TRANSFER_MASTER_App]' GO ALTER PROCEDURE [dbo].[ASS_PRIVATE_TRANSFER_MASTER_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) --DECLARE @l_CUR_BRANCH_ID VARCHAR(15), @l_ASSET_TYPE VARCHAR(15), @l_AMORT_ACCTNO VARCHAR(50), -- @l_ASSET_GROUP VARCHAR(15), @l_ET_ID VARCHAR(15), @l_TRN_REF_NO VARCHAR(15), -- @l_DO_BRANCH_ID VARCHAR(15), @l_CUR_AMORT_AMT DECIMAL(18), @l_AMORT_STATUS VARCHAR(15) -- --DECLARE @NOTE NVARCHAR(500), @CRET DATETIME --SELECT @NOTE = NOTES, @CRET = CREATE_DT --FROM [ASS_TRANSFER_MULTI_MASTER] --WHERE [TRANS_MULTI_MASTER_ID] = @p_TRANS_MULTI_MASTER_ID --LUCTV: 26-12-2018 KIEM TRA NEU TINH TRANG DANG LA 'R' THI KHONG CHO PHEP DUYET IF(EXISTS(SELECT * FROM ASS_PRIVATE_TRANSFER_MASTER WHERE AUTH_STATUS ='R' AND TRANS_MULTI_MASTER_ID =@p_TRANS_MULTI_MASTER_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' COL_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(NOT EXISTS (SELECT * FROM dbo.TL_USER_GET_ROLES(@p_CHECKER_ID) WHERE (ROLE_ID = 'GDDV' OR ROLE_ID = 'GDDV_QLTS'))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' COL_MULTI_MASTER_ID, N'Bạn không có quyền duyệt phiếu này' 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_PRIVATE_TRANSFER_MASTER] -- SET AUTH_STATUS = 'A',AUTH_STATUS_KT='U', -- CHECKER_ID = @p_CHECKER_ID, -- APPROVE_DT = CONVERT(datetime, @p_APPROVE_DT, 103),MAKER_ID_KT = NULL,APPROVE_DT_KT = NULL, CHECKER_ID_KT = NULL -- WHERE [TRANS_MULTI_MASTER_ID] = @p_TRANS_MULTI_MASTER_ID -- DECLARE @TRANSFER_MULTI_ID varchar(15), @IS_PRIVATE int = 0, @count int =0 DECLARE @ASSET_ID varchar(15), @BRANCH_ID_OLD VARCHAR(15), @DEP_ID_OLD VARCHAR(15), @EMP_ID_OLD VARCHAR(15) DECLARE DataCusor SCROLL CURSOR FOR SELECT A.TRANSFER_MULTI_ID,A.ASSET_ID FROM [dbo].[ASS_PRIVATE_TRANSFER_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_MAKER_ID = MAKER_ID, @BRANCH_ID_OLD = BRANCH_ID_OLD, @DEP_ID_OLD = DEPT_ID_OLD, @EMP_ID_OLD = EMP_ID_OLD FROM [ASS_PRIVATE_TRANSFER_DT] WHERE TRANSFER_MULTI_ID = @TRANSFER_MULTI_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 EMP_ID = @l_EMP_ID WHERE ASSET_ID = @l_ASSET_ID IF @@Error <> 0 GOTO ABORT 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 --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, @TRANSFER_MULTI_ID, 'PRIVATE_TRANSFER', CONVERT(DATETIME, @p_APPROVE_DT, 103), '1', 'A', @l_MAKER_ID, CONVERT(DATETIME, @p_APPROVE_DT, 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 @TRANSFER_MULTI_ID,@ASSET_ID END UPDATE [dbo].[ASS_PRIVATE_TRANSFER_MASTER] SET AUTH_STATUS_KT = 'A',AUTH_STATUS = 'A', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(datetime, @p_APPROVE_DT, 103), CHECKER_ID_KT = 'ADMIN', APPROVE_DT_KT = CONVERT(datetime, @p_APPROVE_DT, 103), CREATE_DT_KT = CONVERT(datetime, @p_APPROVE_DT, 103), MAKER_ID_KT = 'ADMIN' WHERE [TRANS_MULTI_MASTER_ID] = @p_TRANS_MULTI_MASTER_ID UPDATE ASS_PRIVATE_TRANSFER_DT SET AUTH_STATUS_KT = 'A',AUTH_STATUS = 'A', CHECKER_ID = @p_CHECKER_ID, APPROVE_DT = CONVERT(datetime, @p_APPROVE_DT, 103), CHECKER_ID_KT = 'ADMIN', APPROVE_DT_KT = CONVERT(datetime, @p_APPROVE_DT, 103), CREATE_DT_KT = CONVERT(datetime, @p_APPROVE_DT, 103), MAKER_ID_KT = 'ADMIN' WHERE [TRANS_MULTI_MASTER_ID] = @p_TRANS_MULTI_MASTER_ID UPDATE B SET B.EMP_ID = A.EMP_ID FROM ASS_PRIVATE_TRANSFER_DT A LEFT JOIN ASS_MASTER B ON A.ASSET_ID = B.ASSET_ID WHERE A.TRANS_MULTI_MASTER_ID = @p_TRANS_MULTI_MASTER_ID -- 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'Trưởng đơn vị phê duyệt ' , N'Trưởng đơn vị phê duyệt thành công' -- PROCESS_DESC - nvarchar(1000) ) -- HUYHT 01/11/2021 -- DECLARE @BRANCH_ID_BG VARCHAR(15), @DEP_ID_BG VARCHAR(15), @BRANCH_ID_BN VARCHAR(15), @DEP_ID_BN VARCHAR(15) -- SELECT TOP 1 @BRANCH_ID_BG = DT.BRANCH_ID_OLD, @DEP_ID_BG = DT.DEPT_ID_OLD, @BRANCH_ID_BN = DT.BRANCH_ID, @DEP_ID_BN = DT.DEPT_ID -- FROM dbo.ASS_TRANSFER_MULTI_MASTER AM -- INNER JOIN dbo.ASS_TRANSFER_MULTI_DT DT ON AM.TRANS_MULTI_MASTER_ID = DT.TRANS_MULTI_MASTER_ID -- WHERE AM.TRANS_MULTI_MASTER_ID = @p_TRANS_MULTI_MASTER_ID -- ORDER BY DT.TRANSFER_MULTI_ID ASC -- DECLARE @l_TRANS_MULTI_MASTER_CONFIRM_ID VARCHAR(15) -- EXEC SYS_CodeMasters_Gen 'ASS_TRANSFER_CONFIRM_MASTER', @l_TRANS_MULTI_MASTER_CONFIRM_ID out -- IF @l_TRANS_MULTI_MASTER_CONFIRM_ID='' OR @l_TRANS_MULTI_MASTER_CONFIRM_ID IS NULL GOTO ABORT -- -- INSERT INTO [ASS_TRANSFER_CONFIRM_MASTER] -- ( -- [TRANS_MULTI_MASTER_CONFIRM_ID], -- [TRANS_MULTI_MASTER_ID], -- [BRANCH_ID_BG], -- [DEP_ID_BG], -- [BRANCH_ID_BN], -- [DEP_ID_BN] -- ) -- VALUES -- ( -- @l_TRANS_MULTI_MASTER_CONFIRM_ID, -- @p_TRANS_MULTI_MASTER_ID , -- @BRANCH_ID_BG, -- @DEP_ID_BG, -- @BRANCH_ID_BN, -- @DEP_ID_BN -- ) --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 A.ASSET_ID FROM ASS_PRIVATE_TRANSFER_DT A WHERE A.TRANS_MULTI_MASTER_ID = @p_TRANS_MULTI_MASTER_ID) COMMIT TRANSACTION SELECT '0' as Result, @p_TRANS_MULTI_MASTER_ID COL_MULTI_MASTER_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' COL_MULTI_MASTER_ID, ERROR_MESSAGE() ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[ASS_LIQUIDATION_BVB_KT_Upd]' GO ALTER PROCEDURE [dbo].[ASS_LIQUIDATION_BVB_KT_Upd] @p_LIQUIDATION_ID VARCHAR(15) = NULL, @p_BUY_COMPANY_ID Nvarchar(500) = NULL, @p_BUY_PRICE decimal(18) = NULL, @p_NOTES nvarchar(1000) = NULL, @p_CONTENTSMINUTES nvarchar(1000) = NULL, @p_CORE_NOTE nvarchar(500) = 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_LiqDetails XML = NULL, @p_BRANCH_ID VARCHAR(15) = NULL, @p_AUTH_STATUS_KT varchar(15) = NULL, @p_MAKER_ID_KT varchar(100) = NULL, @p_CREATE_DT_KT varchar(100) = NULL, @p_CHECKER_ID_KT varchar(100) = NULL, @p_APPROVE_DT_KT varchar(20) = NULL AS --IF EXISTS(SELECT * FROM PL_MASTER WHERE [PLAN_CODE]=@p_PLAN_CODE) --BEGIN -- SELECT ErrorCode Result, '' PLAN_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'PL-00003' -- RETURN '0' --END Declare @hdoc INT Exec sp_xml_preparedocument @hdoc Output,@p_LiqDetails DECLARE liqDetail CURSOR FOR SELECT * FROM OPENXML(@hdoc,'/Root/LiquiDetail',2) WITH ( LIQDT_ID VARCHAR(15), ASSET_ID varchar(15), LIQ_PRICE decimal(18,0), LIQ_TYPE varchar(1), REMAIN_VALUE decimal(18,0), BUY_PRICE decimal(18,0), BUY_PRICE_LIQ decimal(18,0), LIQ_AMT decimal(18,0), REMAIN_AMORTIZED_AMT decimal(18,0), ASSET_CODE VARCHAR(30), LIQ_REASON NVARCHAR(1000), NOTE NVARCHAR(500), REQ_AMT DECIMAL(18, 0), BRANCH_ID_USE VARCHAR(50), DEPT_ID_USE VARCHAR(50), LIQ_REQ_ID VARCHAR(50), ASS_AMORTIZED_MONTH DECIMAL, ASS_AMORTIZED_AMT DECIMAL, LIQ_VAT DECIMAL, LIQ_PRICE_VAT DECIMAL, LIQ_AMT_BE_VAT DECIMAL ) OPEN liqDetail -- Kiem tra ma ke hoach co ton tai hay chua 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_LIQUIDATION SET [BUY_COMPANY_ID] = @p_BUY_COMPANY_ID,[BUY_PRICE] = @p_BUY_PRICE, [NOTES] = @p_NOTES,CORE_NOTE=@p_CORE_NOTE,[RECORD_STATUS] = @p_RECORD_STATUS, BRANCH_ID=@p_BRANCH_ID,[CONTENTSMINUTES] = @p_CONTENTSMINUTES, --AUTH_STATUS_KT = @p_AUTH_STATUS_KT, MAKER_ID_KT=@p_MAKER_ID_KT, CREATE_DT_KT =CONVERT(DATE,@p_CREATE_DT_KT,103), --CHECKER_ID_KT =CHECKER_ID_KT, --APPROVE_DT_KT =CONVERT(DATE,@p_APPROVE_DT_KT,103), ---LUCTV: 24-12-2018 BO SUNG CAP NHAT AUTH_STATUS =U. AUTH_STATUS_KT='E' WHERE LIQ_ID= @p_LIQUIDATION_ID IF @@Error <> 0 GOTO ABORT1 Declare @LIQDT_ID VARCHAR(15), @ASSET_ID varchar(15), @LIQ_PRICE decimal(18,0),@LIQ_TYPE varchar(1), @REMAIN_VALUE decimal(18,0),@LIQ_REASON NVARCHAR(1000), @BUY_PRICE decimal(18,0),@REQ_AMT decimal(18,0), @BRANCH_ID_USE VARCHAR(50),@DEPT_ID_USE VARCHAR(50),@ASSET_CODE VARCHAR(30),@LIQ_REQ_ID VARCHAR(50), @BUY_PRICE_LIQ decimal(18,0),@LIQ_AMT decimal(18,0),@REMAIN_AMORTIZED_AMT decimal(18,0), @NOTE NVARCHAR(500), @ASS_AMORTIZED_MONTH DECIMAL, @ASS_AMORTIZED_AMT DECIMAL, @LIQ_VAT DECIMAL, @LIQ_PRICE_VAT DECIMAL, @LIQ_AMT_BE_VAT DECIMAL Declare @ASS_STATUS VARCHAR(20) Declare @AMORT_STATUS VARCHAR(20) DELETE FROM ASS_LIQUIDATION_DT WHERE LIQ_ID = @p_LIQUIDATION_ID FETCH NEXT FROM liqDetail INTO @LIQDT_ID,@ASSET_ID, @LIQ_PRICE, @LIQ_TYPE,@REMAIN_VALUE, @BUY_PRICE, @BUY_PRICE_LIQ,@LIQ_AMT, @REMAIN_AMORTIZED_AMT,@ASSET_CODE,@LIQ_REASON,@NOTE,@REQ_AMT, @BRANCH_ID_USE,@DEPT_ID_USE,@LIQ_REQ_ID,@ASS_AMORTIZED_MONTH,@ASS_AMORTIZED_AMT, @LIQ_VAT, @LIQ_PRICE_VAT,@LIQ_AMT_BE_VAT WHILE @@FETCH_STATUS = 0 BEGIN IF ((@LIQ_AMT_BE_VAT + @LIQ_PRICE_VAT > @REQ_AMT) OR (@LIQ_AMT_BE_VAT + @LIQ_PRICE_VAT < @REQ_AMT)) BEGIN CLOSE liqDetail DEALLOCATE liqDetail ROLLBACK TRANSACTION SELECT '-1' as Result, N'Tổng số tiền trước VAT và tiền thuế VAT không được lớn hơn số tiền sau thuế' ErrorDesc, @p_LIQUIDATION_ID LIQUIDATION_ID RETURN '-1' END SELECT @AMORT_STATUS = AM.AMORT_STATUS, @ASS_STATUS = AM.ASS_STATUS FROM ASS_MASTER AM WHERE AM.ASSET_ID = @ASSET_ID IF( LEN(@LIQDT_ID) = 0) BEGIN EXEC SYS_CodeMasters_Gen 'ASS_LIQUIDATION_DT', @LIQDT_ID out IF @LIQDT_ID ='' OR @LIQDT_ID IS NULL GOTO ABORT1 END -- IF (@LIQ_AMT > @REMAIN_AMORTIZED_AMT) -- BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' LIQ_AMT, N'số tiền thanh lý không được lớn hơn nguyên giá còn lại' ErrorDesc -- RETURN '-1' -- END INSERT INTO ASS_LIQUIDATION_DT([LIQDT_ID],[LIQ_ID],[ASSET_ID],[LIQ_PRICE],[LIQ_TYPE],[REMAIN_VALUE], [BUY_PRICE], [BUY_PRICE_LIQ],[LIQ_AMT],[REMAIN_AMORTIZED_AMT],[LIQ_REASON],[NOTE],REQ_AMT, BRANCH_ID_USE, DEP_ID_USE, ASS_AMORTIZED_MONTH, ASS_AMORTIZED_AMT, LIQ_VAT, LIQ_PRICE_VAT, LIQ_AMT_BE_VAT, LIQ_REQ_ID, ASS_STATUS, AMORT_STATUS) VALUES(@LIQDT_ID,@p_LIQUIDATION_ID,@ASSET_ID,@LIQ_PRICE,@LIQ_TYPE,@REMAIN_VALUE, @BUY_PRICE, @BUY_PRICE_LIQ,@LIQ_AMT,@REMAIN_AMORTIZED_AMT,@LIQ_REASON,@NOTE,@REQ_AMT, @BRANCH_ID_USE, @DEPT_ID_USE,@ASS_AMORTIZED_MONTH,@ASS_AMORTIZED_AMT, @LIQ_VAT, @LIQ_PRICE_VAT,@LIQ_AMT_BE_VAT,@LIQ_REQ_ID, @ASS_STATUS, @AMORT_STATUS) -- next Group_Id IF @@ERROR <> 0 GOTO ABORT1 FETCH NEXT FROM liqDetail INTO @LIQDT_ID,@ASSET_ID, @LIQ_PRICE, @LIQ_TYPE,@REMAIN_VALUE, @BUY_PRICE, @BUY_PRICE_LIQ,@LIQ_AMT, @REMAIN_AMORTIZED_AMT,@ASSET_CODE,@LIQ_REASON,@NOTE,@REQ_AMT, @BRANCH_ID_USE,@DEPT_ID_USE,@LIQ_REQ_ID,@ASS_AMORTIZED_MONTH,@ASS_AMORTIZED_AMT, @LIQ_VAT, @LIQ_PRICE_VAT,@LIQ_AMT_BE_VAT END CLOSE liqDetail DEALLOCATE liqDetail -- GIANT Insert to table PL_PROCESS INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_LIQUIDATION_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,@LIQ_AMT LIQ_AMT, @p_LIQUIDATION_ID LIQUIDATION_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, @p_LIQUIDATION_ID LIQUIDATION_ID, '' ErrorDesc RETURN '-1' End ABORT1: BEGIN CLOSE liqDetail DEALLOCATE liqDetail ROLLBACK TRANSACTION SELECT '-1' as Result, @p_LIQUIDATION_ID LIQUIDATION_ID, '' ErrorDesc RETURN '-1' End GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[ASS_AMORT_DO_ASSCODE]' GO ALTER PROCEDURE [dbo].[ASS_AMORT_DO_ASSCODE] @p_ASSET_CODE varchar(1000) = NULL, @p_sExecDT DATETIME=NULL 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),@p_MAKER_ID VARCHAR(100) ,@p_CHECKER_ID VARCHAR(100) 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) SET @l_AMORT_TERM = convert(varchar(2), datepart(month, @sExecDT)) + '/' + convert(varchar(4), datepart(year, @sExecDT)) SET @sExecDT =@p_sExecDT 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 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.ASSET_CODE IN ( SELECT value FROM dbo.wsiSplit(@p_ASSET_CODE,',')) open pCur select @l_LAST_AMORT_ID = AMORT_ID FROM ASS_AMORT WHERE IS_LEAF = 'Y' --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_sExecDT, 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 ) ----------------BO DUNG DANH SACH PGD DUOC CN PHAN BO GIUM THIEUVQ - 28092016------------------ 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 WHILE @@FETCH_STATUS = 0 BEGIN --SET @l_DESC = N'Khấu hao kỳ ' + @l_AMORT_TERM 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 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 END UPDATE ASS_AMORT SET TOTAL_AMT = @l_TOTAL_AMT WHERE AMORT_ID = @l_AMORT_ID SELECT @l_AMORT_ID GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[ASS_TRANSFER_MULTI_Master_SendAppr]' GO ALTER PROCEDURE [dbo].[ASS_TRANSFER_MULTI_Master_SendAppr] @p_TRANSFER_MULTI_ID VARCHAR(15) = NULL, @p_TYPE_APP NVARCHAR(15) = NUll, @p_USER_LOGIN VARCHAR(15) = NULL, @p_DESC NVARCHAR(max) = NULL AS DECLARE @ASSET_ID_LST VARCHAR(MAX), @CURRENT_TRANS_ERROR NVARCHAR(MAX) BEGIN TRANSACTION DECLARE @PRICE_OF_ASSET DECIMAL = (SELECT MAX(A.BUY_PRICE) FROM ASS_TRANSFER_MULTI_DT ATMD LEFT JOIN ASS_MASTER A ON A.ASSET_ID = ATMD.ASSET_ID WHERE ATMD.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) DECLARE @BRANCH_ID VARCHAR(15) = (SELECT TU.TLSUBBRID FROM TL_USER TU WHERE TU.TLNANME = @p_USER_LOGIN) DECLARE @DEP_ID VARCHAR(15) = (SELECT TU.SECUR_CODE FROM TL_USER TU WHERE TU.TLNANME = @p_USER_LOGIN) DECLARE @NOTISENDAPP NVARCHAR(MAX) = N' đã được gửi phê duyệt thành công. Vui lòng đợi bộ phận phê duyệt xác nhận.' DECLARE @NOTISENDAPPZ NVARCHAR(MAX) = N'Trưởng đơn vị ' + (SELECT CB.BRANCH_NAME FROM TL_USER TU LEFT JOIN CM_BRANCH CB ON TU.TLSUBBRID = CB.BRANCH_ID WHERE TU.TLNANME = @p_USER_LOGIN) + N' xác nhận điều chuyển' DECLARE @SL_PYC INT DECLARE @TYPE_PYC VARCHAR(15) = (SELECT TOP 1 B.TYPE_XL FROM ASS_TRANSFER_MULTI_MASTER A LEFT JOIN TR_REQUEST_SHOP_DOC_DT B ON A.REQ_ID = B.REQ_DOC_ID WHERE TRANS_MULTI_MASTER_ID=@p_TRANSFER_MULTI_ID) DECLARE @PROCESS_C VARCHAR(20) = (SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_TRANSFER_MULTI_ID AND STATUS='C') DECLARE @PARENT_ID VARCHAR(20) DECLARE @DEP_QLTS VARCHAR(20), @DEP_DVNB VARCHAR(20), @DEP_HTKD VARCHAR(20) SET @DEP_QLTS = (SELECT TOP 1 sp.ParaValue FROM SYS_PARAMETERS sp WHERE sp.ParaKey = 'DEP_QLTS') SET @DEP_DVNB = (SELECT TOP 1 sp.ParaValue FROM SYS_PARAMETERS sp WHERE sp.ParaKey = 'DEP_TTQLTS') SET @DEP_HTKD = (SELECT TOP 1 sp.ParaValue FROM SYS_PARAMETERS sp WHERE sp.ParaKey = 'DEP_KQLTS') IF (@p_TYPE_APP = 'S_TDV') BEGIN -- KIỂM TRA TÀI SẢN ĐANG TREO TRONG GIAO DỊCH KHÁC SET @ASSET_ID_LST = (SELECT B.ASSET_ID + '|' FROM (SELECT A.ASSET_ID FROM ASS_TRANSFER_MULTI_DT A where A.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) B FOR XML PATH ('')) SELECT @CURRENT_TRANS_ERROR = dbo.ASSET_CHECK_CURRENT_TRANS(@ASSET_ID_LST) IF(@CURRENT_TRANS_ERROR IS NOT NULL AND @CURRENT_TRANS_ERROR <> '') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, @CURRENT_TRANS_ERROR ErrorDesc RETURN '-1' END --CHECK MAPPING TT/PB/K DECLARE @HS TABLE(ID INT IDENTITY, DEP VARCHAR(50), KHOI VARCHAR(50), TT VARCHAR(50)) INSERT INTO @HS SELECT A.DEPT_ID, A.KHOI_ID, A.CENTER_ID FROM ASS_TRANSFER_MULTI_DT A LEFT JOIN CM_BRANCH CB ON A.BRANCH_ID = CB.BRANCH_ID WHERE A.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID AND CB.BRANCH_TYPE ='HS' IF(EXISTS(SELECT * FROM @HS WHERE 1=1 AND (DEP IS NULL OR DEP = '' ) AND (KHOI IS NULL OR KHOI = '' ) AND (TT IS NULL OR TT = '' ))) BEGIN ROLLBACK TRANSACTION SELECT '-1' Result, N'Gửi duyệt thất bại! Thông tin điều chuyển phiếu số: '+@p_TRANSFER_MULTI_ID+ N'
Đơn vị nhận Hội sở cần chọn Phòng ban nhận hoặc Khối nhận hoặc Trung tâm nhận. Vui lòng xử lý phiếu' ErrorDesc RETURN '-1' END UPDATE ASS_TRANSFER_MULTI_MASTER SET AUTH_STATUS = 'U' WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID IF @@ERROR <> 0 GOTO ABORT --khiemchg tạo bảng tạm chứa các loại tài sản điều chuyển sai số lượng -- DECLARE @check_QTY TABLE(QTY_DC DECIMAL, GROUP_CODE NVARCHAR(MAX),GROUP_NAME NVARCHAR(MAX), QTY_PYC DECIMAL) -- INSERT INTO @check_QTY SELECT A.QTY AS QTY_DC,A.GROUP_CODE, A.GROUP_NAME, ISNULL(B.QTY_ETM, 0.00) AS QTY_PYC -- FROM -- (SELECT COUNT(A.ASSET_ID) AS QTY, AG.GROUP_CODE, AG.GROUP_NAME -- FROM ASS_TRANSFER_MULTI_DT A -- LEFT JOIN ASS_MASTER AM ON A.ASSET_ID = AM.ASSET_ID -- LEFT JOIN ASS_GROUP AG ON AM.GROUP_ID = AG.GROUP_ID -- LEFT JOIN ASS_TRANSFER_MULTI_MASTER ATMM ON A.TRANS_MULTI_MASTER_ID = ATMM.TRANS_MULTI_MASTER_ID -- WHERE ATMM.REQ_ID = (SELECT ATM.REQ_ID FROM ASS_TRANSFER_MULTI_MASTER ATM WHERE ATM.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) -- AND (ATMM.AUTH_STATUS <> 'E' OR ATMM.AUTH_STATUS <> 'R') -- GROUP BY AG.GROUP_CODE, AG.GROUP_NAME) A -- LEFT JOIN (SELECT TRSDD.QTY_ETM, AG2.GROUP_CODE, AG2.GROUP_NAME FROM TR_REQUEST_SHOP_DOC_DT TRSDD -- LEFT JOIN ASS_GROUP AG2 ON TRSDD.ASS_GROUP_ID = AG2.GROUP_ID -- WHERE -- TRSDD.REQ_DOC_ID = (SELECT ATMM.REQ_ID FROM ASS_TRANSFER_MULTI_MASTER ATMM WHERE ATMM.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) -- AND TRSDD.TYPE_XL = 'CPDC') B ON A.GROUP_CODE = B.GROUP_CODE -- WHERE A.QTY > B.QTY_ETM -- -- DECLARE @QTY_ERROR NVARCHAR(MAX) = (SELECT STUFF((SELECT ', ' + GROUP_NAME FROM @check_QTY FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')) -- IF((SELECT COUNT(*) FROM @check_QTY) > 0) -- BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' Result, N'Gửi duyệt thất bại! Thông tin điều chuyển phiếu số: '+@p_TRANSFER_MULTI_ID + '
' + -- N' Số lượng tài sản thuộc loại: "'+ @QTY_ERROR + N'" không được lớn hơn số lượng tài sản được cấp điều chuyển theo Phiếu yêu cầu.' -- + N' Vui lòng xử lý phiếu' ErrorDesc -- RETURN '-1' -- END --khiemchg. IF(EXISTS(SELECT 1 FROM dbo.ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID=@p_TRANSFER_MULTI_ID AND AUTH_STATUS='R')) BEGIN ROLLBACK TRANSACTION SELECT '-1' Result, N'Gửi duyệt thất bại! Thông tin điều chuyển phiếu số: '+@p_TRANSFER_MULTI_ID+ N' đang bị từ chối. Vui lòng xử lý phiếu' ErrorDesc RETURN '-1' END IF(EXISTS(SELECT 1 FROM dbo.ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID=@p_TRANSFER_MULTI_ID AND AUTH_STATUS='R')) BEGIN ROLLBACK TRANSACTION SELECT '-1' Result, N'Gửi duyệt thất bại! Thông tin điều chuyển phiếu số: '+@p_TRANSFER_MULTI_ID+ N' đang bị từ chối. Vui lòng xử lý phiếu' ErrorDesc RETURN '-1' END IF(@TYPE_PYC = 'CPDC') BEGIN SET @SL_PYC = (SELECT SUM(ISNULL(B.QTY_ETM, 0)) FROM ASS_TRANSFER_MULTI_MASTER A LEFT JOIN TR_REQUEST_SHOP_DOC_DT B ON A.REQ_ID = B.REQ_DOC_ID WHERE TRANS_MULTI_MASTER_ID=@p_TRANSFER_MULTI_ID) IF((SELECT COUNT(ASSET_ID) FROM ASS_TRANSFER_MULTI_DT WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) > @SL_PYC) BEGIN ROLLBACK TRANSACTION SELECT '-1' Result, N'Gửi duyệt thất bại! Thông tin điều chuyển phiếu số: '+@p_TRANSFER_MULTI_ID+ N' sai số lượng so với PYC được chọn. Vui lòng xử lý phiếu' ErrorDesc RETURN '-1' END END UPDATE ASS_TRANSFER_MULTI_MASTER SET AUTH_STATUS = 'U' WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID IF @@ERROR <> 0 GOTO ABORT -- HUYHT 06/05/2022: THAY ĐỔI TRẠNG THÁI UPDATE CŨ THÀNH UPDATE_HC UPDATE dbo.PL_PROCESS SET PROCESS_ID = 'UPDATE_HC' WHERE REQ_ID = @p_TRANSFER_MULTI_ID AND PROCESS_ID = 'UPDATE' UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C', RECEPTION_DT=GETDATE() WHERE REQ_ID=@p_TRANSFER_MULTI_ID AND PROCESS_ID='QLTS_D' INSERT INTO dbo.PL_PROCESS(REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES) VALUES(@p_TRANSFER_MULTI_ID, 'SEND', @p_USER_LOGIN, GETDATE(), N'Gửi Trưởng đơn vị phê duyệt', N'Nhân viên tạo phiếu và gửi phê duyệt thành công') UPDATE PL_REQUEST_PROCESS SET STATUS = 'P' WHERE REQ_ID = @p_TRANSFER_MULTI_ID AND PROCESS_ID = 'ADDNEW' UPDATE ASS_TRANSFER_MULTI_MASTER SET STATUS = 'QLTS_D' WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID --khiemchg update treo tài sản khi thực hiện điều chuyển UPDATE ASS_MASTER SET CURRENT_TRANS = @p_TRANSFER_MULTI_ID, CURRENT_TRANS_TYPE = 'ASS_TF_MUL' WHERE ASSET_ID IN (SELECT ASSET_ID FROM ASS_TRANSFER_MULTI_DT WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) IF @@ERROR <> 0 GOTO ABORT BEGIN -- IF(@PRICE_OF_ASSET <= 30000000) -- BEGIN --SET @PARENT_ID = 'QLTS_D' -- END --IF(@PRICE_OF_ASSET > 30000000 AND @PRICE_OF_ASSET <= 50000000) -- IF(@PRICE_OF_ASSET > 30000000) -- BEGIN -- INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID) -- VALUES(@p_TRANSFER_MULTI_ID,'TT_DVNB','U','GDDV_QLTS','DV0001','QLTS_D', @DEP_DVNB) -- SET @PARENT_ID = 'TT_DVNB' -- END -- ELSE IF (@PRICE_OF_ASSET > 50000000 AND @PRICE_OF_ASSET <= 100000000) -- BEGIN -- INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID) -- VALUES(@p_TRANSFER_MULTI_ID,'TT_DVNB','C','GDDV_QLTS','DV0001','QLTS_D', @DEP_DVNB) -- ---- INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID) ---- VALUES(@p_TRANSFER_MULTI_ID,'K_HTKD','U','GDDV','DV0001','TT_DVNB', @DEP_HTKD) -- -- SET @PARENT_ID = 'TT_DVNB' -- END -- ELSE IF (@PRICE_OF_ASSET > 100000000) -- BEGIN -- INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID) -- VALUES(@p_TRANSFER_MULTI_ID,'TT_DVNB','C','GDDV_QLTS','DV0001','QLTS_D', @DEP_DVNB) -- ---- INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID) ---- VALUES(@p_TRANSFER_MULTI_ID,'K_HTKD','U','GDDV','DV0001','TT_DVNB', @DEP_HTKD) ---- ---- INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID) ---- VALUES(@p_TRANSFER_MULTI_ID,'TGD','U','TGD','DV0001','K_HTKD') -- -- SET @PARENT_ID = 'TT_DVNB' -- END SET @PARENT_ID = 'QLTS_D' --Khiemchg lấy danh sách đơn vị nhận và cho DECLARE @lstBranch TABLE ( ID INT IDENTITY, Branch_Id VARCHAR(50), Dep_Id VARCHAR(50), Center_Id VARCHAR(50), Khoi_Id VARCHAR(50) ) DECLARE @temp TABLE ( BRN_SD VARCHAR(50), K_SD VARCHAR(50), TT_SD VARCHAR(50), DEP_SD VARCHAR(50), BRN_N VARCHAR(50), K_N VARCHAR(50), TT_N VARCHAR(50), DEP_N VARCHAR(50) ) INSERT INTO @temp SELECT DISTINCT BRANCH_ID_OLD, KHOI_ID_OLD, CENTER_ID_OLD, DEPT_ID_OLD, BRANCH_ID, KHOI_ID, CENTER_ID, DEPT_ID FROM ASS_TRANSFER_MULTI_DT WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID -- DELETE @temp WHERE (BRN_SD = BRN_N AND DEP_SD = DEP_N AND K_SD = K_N AND TT_SD = TT_N) -- OR (BRN_SD = BRN_N AND DEP_SD = DEP_N AND K_SD = K_N AND TT_SD = TT_N) DELETE @temp WHERE (BRN_SD = BRN_N AND DEP_SD = DEP_N) INSERT INTO @lstBranch(Branch_Id, Dep_Id, Center_Id, Khoi_Id) SELECT DISTINCT BRN_SD, DEP_SD, TT_SD, K_SD FROM @temp INSERT INTO @lstBranch(Branch_Id, Dep_Id, Center_Id, Khoi_Id) SELECT DISTINCT BRN_N, DEP_N, TT_N, K_N FROM @temp DECLARE @int INT = 1 DECLARE @countt INT = (SELECT COUNT(ID) FROM @lstBranch) --IF(@count > 1) BEGIN WHILE @int <= @countt BEGIN DECLARE @BRANCH VARCHAR(20) = (SELECT Branch_Id FROM @lstBranch WHERE ID = @int) DECLARE @DEPT VARCHAR(20) = (SELECT Dep_Id FROM @lstBranch WHERE ID = @int) DECLARE @CENTER VARCHAR(20) = (SELECT Center_Id FROM @lstBranch WHERE ID = @int) DECLARE @KHOI VARCHAR(20) = (SELECT Khoi_Id FROM @lstBranch WHERE ID = @int) IF(@BRANCH <> '' OR @BRANCH IS NOT NULL) BEGIN IF((@KHOI IS NOT NULL AND @KHOI <> '') AND (@CENTER IS NOT NULL AND @CENTER <> '') AND (@DEPT IS NOT NULL AND @DEPT <> '')) BEGIN INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID) VALUES(@p_TRANSFER_MULTI_ID,'XNGN','U','GDDV',@BRANCH,@PARENT_ID, @DEPT) END ELSE IF((@KHOI IS NOT NULL AND @KHOI <> '') AND (@CENTER IS NOT NULL AND @CENTER <> '') AND (@DEPT IS NULL OR @DEPT = '')) BEGIN INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID) VALUES(@p_TRANSFER_MULTI_ID,'XNGN','U','GDDV',@BRANCH,@PARENT_ID, @CENTER) END ELSE IF((@KHOI IS NOT NULL AND @KHOI <> '') AND (@CENTER IS NULL OR @CENTER = '') AND (@DEPT IS NULL OR @DEPT = '')) BEGIN INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID) VALUES(@p_TRANSFER_MULTI_ID,'XNGN','U','GDDV',@BRANCH,@PARENT_ID, @KHOI) END ELSE BEGIN INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID) VALUES(@p_TRANSFER_MULTI_ID,'XNGN','U','GDDV',@BRANCH,@PARENT_ID, @DEPT) END END SET @int = @int + 1 END END IF(EXISTS(SELECT * FROM PL_REQUEST_PROCESS PRP WHERE PRP.REQ_ID = @p_TRANSFER_MULTI_ID AND PRP.PROCESS_ID = 'XNGN')) SET @PARENT_ID = 'XNGN' INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],PARENT_PROCESS_ID) VALUES(@p_TRANSFER_MULTI_ID,'APPROVE','U',@PARENT_ID) END END ELSE IF (@p_TYPE_APP = 'CONFIRM') BEGIN IF (@PROCESS_C = 'XNGN') BEGIN IF((SELECT CB.BRANCH_TYPE FROM TL_USER TU LEFT JOIN CM_BRANCH CB ON TU.TLSUBBRID = CB.BRANCH_ID WHERE TU.TLNANME = @p_USER_LOGIN) = 'HS') BEGIN SET @NOTISENDAPP = N' Trưởng đơn vị ' + (SELECT CB.DEP_NAME FROM TL_USER TU LEFT JOIN CM_DEPARTMENT CB ON TU.SECUR_CODE = CB.DEP_ID WHERE TU.TLNANME = @p_USER_LOGIN) + N' đã xác nhận điều chuyển thành công' SET @NOTISENDAPPZ = N' Trưởng đơn vị ' + (SELECT CB.DEP_NAME FROM TL_USER TU LEFT JOIN CM_DEPARTMENT CB ON TU.SECUR_CODE = CB.DEP_ID WHERE TU.TLNANME = @p_USER_LOGIN) + N' đã xác nhận điều chuyển' END UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='P', CHECKER_ID = @p_USER_LOGIN, APPROVE_DT=GETDATE() WHERE REQ_ID = @p_TRANSFER_MULTI_ID AND PROCESS_ID='XNGN' AND ((@BRANCH_ID = 'DV0001' AND BRANCH_ID = @BRANCH_ID AND DEP_ID = @DEP_ID) OR (@BRANCH_ID <> 'DV0001' AND BRANCH_ID = @BRANCH_ID)) AND STATUS = 'C' INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_TRANSFER_MULTI_ID, 'CONFIRM', @p_USER_LOGIN, GETDATE(), N'Trưởng đơn vị xác nhận thành công' , @NOTISENDAPPZ ) IF(NOT EXISTS(SELECT * FROM PL_REQUEST_PROCESS WHERE PROCESS_ID = 'XNGN' AND STATUS = 'C' AND REQ_ID = @p_TRANSFER_MULTI_ID) AND (SELECT ATMM.AUTH_STATUS FROM ASS_TRANSFER_MULTI_MASTER ATMM WHERE ATMM.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) = 'U') BEGIN UPDATE ASS_TRANSFER_MULTI_MASTER SET STATUS = 'APPROVE' , AUTH_STATUS = 'A' WHERE [TRANS_MULTI_MASTER_ID] = @p_TRANSFER_MULTI_ID UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C', APPROVE_DT=GETDATE() WHERE REQ_ID = @p_TRANSFER_MULTI_ID AND PROCESS_ID = 'APPROVE' AND STATUS = 'U' INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_TRANSFER_MULTI_ID, 'CONFIRMED', GETDATE(), N'Hoàn thành xác nhận tài sản', N'Phiếu hoàn thành xác nhận tài sản sau khi Trưởng đơn vị bên cho và nhận xác nhận' ) END END END ELSE IF (@p_TYPE_APP = 'KT') BEGIN IF((SELECT CORE_NOTE FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) IS NULL OR (SELECT CORE_NOTE FROM ASS_TRANSFER_MULTI_MASTER WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) = '') BEGIN ROLLBACK TRANSACTION SELECT '-1' Result, N'Gửi duyệt thất bại! Thông tin điều chuyển phiếu số: '+@p_TRANSFER_MULTI_ID+ N' đang trống diễn giải hạch toán' ErrorDesc RETURN '-1' END UPDATE ASS_TRANSFER_MULTI_MASTER SET AUTH_STATUS_KT = 'U' WHERE TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_TRANSFER_MULTI_ID, 'GDV', @p_USER_LOGIN, GETDATE(), N'Giao dịch viên Kế toán gửi Kiểm soát viên phê duyệt' , N'Giao dịch viên Kế toán gửi duyệt' ) END --PHUCVH 06/03/23 BỔ SUNG MESSAGE DECLARE @MESSAGE NVARCHAR(MAX) IF (@p_TYPE_APP = 'S_TDV') BEGIN DECLARE @REQ_DOC_ID VARCHAR(15) = (SELECT TOP 1 atmm.REQ_ID FROM ASS_TRANSFER_MULTI_MASTER atmm WHERE atmm.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID) IF(@REQ_DOC_ID IS NOT NULL AND @REQ_DOC_ID <> '') BEGIN SET @MESSAGE = '

' + ( SELECT REPLACE( (SELECT STUFF((SELECT ' ' + DDDD.MESSAGE FROM ( SELECT CASE WHEN ROW_NUMBER() OVER (ORDER BY (SELECT 0)) = 1 THEN ''ELSE '/' END + N'Loại tài sản: ' + ISNULL(BB.GROUP_NAME,'') + N' | Số lượng yêu cầu: ' + CONVERT(VARCHAR(10),ISNULL(AA.QTY_ETM,0)) + N' | Số lượng đã điều chuyển: ' + CONVERT(VARCHAR(10),ISNULL(AA.ALLOCATED,0)) + N' | Số lượng điều chuyển trong phiếu hiện tại: ' + CONVERT(VARCHAR(10),ISNULL((SELECT SUM(TMP.COUNT) FROM ( (SELECT COUNT(*) AS COUNT FROM ASS_TRANSFER_MULTI_DT A LEFT JOIN ASS_TRANSFER_MULTI_MASTER B ON A.TRANS_MULTI_MASTER_ID = B.TRANS_MULTI_MASTER_ID LEFT JOIN ASS_MASTER C ON A.ASSET_ID = C.ASSET_ID WHERE A.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID GROUP BY B.REQ_ID, C.GROUP_ID, C.REQ_ID HAVING B.REQ_ID = @REQ_DOC_ID AND ((C.GROUP_ID = BB.GROUP_ID AND (SELECT COUNT(*) FROM ASS_GROUP ag WHERE ag.GROUP_CODE = BB.GROUP_CODE AND ag.GROUP_ID IN (SELECT trsdd.ASS_GROUP_ID FROM TR_REQUEST_SHOP_DOC_DT trsdd WHERE trsdd.REQ_DOC_ID = AA.REQ_DOC_ID AND trsdd.REQ_DT_TYPE = 'XKSD' AND trsdd.TYPE_XL = 'CPDC'))>1 ) OR C.GROUP_ID IN (SELECT ag.GROUP_ID FROM ASS_GROUP ag WHERE ag.GROUP_CODE = BB.GROUP_CODE)) AND (C.REQ_ID IS NULL OR C.REQ_ID = '')))TMP),0)) AS MESSAGE FROM TR_REQUEST_SHOP_DOC_DT AA LEFT JOIN ASS_GROUP BB ON AA.ASS_GROUP_ID = BB.GROUP_ID WHERE AA.REQ_DOC_ID = @REQ_DOC_ID AND AA.REQ_DT_TYPE = 'XKSD' AND AA.TYPE_XL = 'CPDC') DDDD FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 1, '')),'/','
')) END --CHECK ALLOCATED DECLARE @TBL_CHECK_UPD TABLE (REQDT_ID VARCHAR(15), ASS_GROUP_ID VARCHAR(15), REQ_DOC_ID VARCHAR(15)) DECLARE @TBL_GROUP_CODE_ASS_USE TABLE (GROUP_ID VARCHAR(15)) INSERT INTO @TBL_CHECK_UPD SELECT A.REQDT_ID, A.ASS_GROUP_ID,A.REQ_DOC_ID FROM TR_REQUEST_SHOP_DOC_DT A WHERE A.REQ_DOC_ID = @REQ_DOC_ID AND A.REQ_DT_TYPE = 'XKSD' AND A.TYPE_XL = 'CPDC' DECLARE @C_REQDT_ID VARCHAR(15), @C_ASS_GROUP_ID VARCHAR(15), @C_REQ_DOC_ID VARCHAR(15) DECLARE @IS_MULTI_GROUP VARCHAR(1) = '0' DECLARE DATA_CURSOR_CHECK_UPD CURSOR FOR SELECT * FROM @TBL_CHECK_UPD OPEN DATA_CURSOR_CHECK_UPD FETCH NEXT FROM DATA_CURSOR_CHECK_UPD INTO @C_REQDT_ID,@C_ASS_GROUP_ID,@C_REQ_DOC_ID DECLARE @ALLOCATED INT,@ALLOCATED_CURR INT, @ALLOCATED_OLD INT, @QTY_ETM INT WHILE @@FETCH_STATUS = 0 BEGIN SET @IS_MULTI_GROUP = '0' DELETE @TBL_GROUP_CODE_ASS_USE INSERT INTO @TBL_GROUP_CODE_ASS_USE (GROUP_ID) SELECT A.GROUP_ID FROM ASS_GROUP A WHERE A.GROUP_CODE IN (SELECT B.GROUP_CODE FROM ASS_GROUP B WHERE B.GROUP_ID = @C_ASS_GROUP_ID) IF((SELECT COUNT(*) FROM @TBL_GROUP_CODE_ASS_USE WHERE GROUP_ID IN (SELECT trsdd.ASS_GROUP_ID FROM TR_REQUEST_SHOP_DOC_DT trsdd WHERE trsdd.REQ_DOC_ID = @C_REQ_DOC_ID AND trsdd.REQ_DT_TYPE = 'XKSD' AND trsdd.TYPE_XL = 'CPDC')) > 1) BEGIN SET @IS_MULTI_GROUP = '1' END SET @ALLOCATED_CURR = (SELECT SUM(TMP.COUNT) FROM ( (SELECT COUNT(*) AS COUNT FROM ASS_TRANSFER_MULTI_DT A LEFT JOIN ASS_TRANSFER_MULTI_MASTER B ON A.TRANS_MULTI_MASTER_ID = B.TRANS_MULTI_MASTER_ID LEFT JOIN ASS_MASTER C ON A.ASSET_ID = C.ASSET_ID WHERE A.TRANS_MULTI_MASTER_ID = @p_TRANSFER_MULTI_ID GROUP BY B.REQ_ID, C.GROUP_ID, C.REQ_ID HAVING B.REQ_ID = @C_REQ_DOC_ID AND C.GROUP_ID IN (SELECT GROUP_ID FROM @TBL_GROUP_CODE_ASS_USE WHERE ((@IS_MULTI_GROUP = '1' AND C.GROUP_ID = @C_ASS_GROUP_ID) OR @IS_MULTI_GROUP = '0')) AND (C.REQ_ID IS NULL OR C.REQ_ID = '')))TMP) SELECT TOP 1 @ALLOCATED_OLD = trsdd.ALLOCATED, @QTY_ETM = trsdd.QTY_ETM FROM TR_REQUEST_SHOP_DOC_DT trsdd WHERE trsdd.REQDT_ID = @C_REQDT_ID IF(@QTY_ETM < (ISNULL(@ALLOCATED_OLD,0) + ISNULL(@ALLOCATED_CURR,0))) BEGIN ROLLBACK TRANSACTION CLOSE DATA_CURSOR_CHECK_UPD DEALLOCATE DATA_CURSOR_CHECK_UPD SELECT '-1' as Result, '' USER_MASTER_ID, N'Số lượng cấp phát vượt yêu cầu của đơn vị' +ISNULL(@MESSAGE,',') ErrorDesc RETURN '-1' END FETCH NEXT FROM DATA_CURSOR_CHECK_UPD INTO @C_REQDT_ID,@C_ASS_GROUP_ID,@C_REQ_DOC_ID END CLOSE DATA_CURSOR_CHECK_UPD DEALLOCATE DATA_CURSOR_CHECK_UPD END COMMIT TRANSACTION SELECT '0' as Result, N'Hồ sơ số: '+@p_TRANSFER_MULTI_ID+@NOTISENDAPP + ISNULL(@MESSAGE,'') ErrorDesc, @p_TRANSFER_MULTI_ID TRANS_MULTI_MASTER_ID RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' TRANS_MULTI_MASTER_ID, '' ErrorDesc RETURN '-1' END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[GET_LAST_SYNC_DATE]' GO ALTER PROCEDURE [dbo].[GET_LAST_SYNC_DATE] AS BEGIN SELECT CONVERT(DATETIME,ca.ParaValue,103) AS LAST_SYNC_DATE FROM SYS_PARAMETERS ca WHERE ca.ParaKey = 'LAST_SYNC_DATE' 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 @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) 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)) 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) DECLARE @emp_ID_OLD VARCHAR(15) EXEC ENTRIES_POST_GEN_NO @p_BRANCH_ID = 'DV0001' ,@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].[TR_REQUEST_SHOP_PROCESS_Update]' GO ALTER PROCEDURE [dbo].[TR_REQUEST_SHOP_PROCESS_Update] @p_REQ_ID varchar(15) = NULL, @p_TYPE_PROCESS varchar(15) = 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_CURRENT_URI NVARCHAR(200) = NULL, @p_NOTES NVARCHAR(500)= NULL, @p_DVKD_USER_APP NVARCHAR(500)= NULL AS BEGIN DECLARE @NOTIFATION NVARCHAR(100) = NULL, @NOTIFY_TO_USER NVARCHAR(100) = NULL, @EMAIL_CONTENT NVARCHAR(500) = NULL, @TYPE VARCHAR(10), @ROLE VARCHAR(20)= NULL, @BRANCHID VARCHAR(20)= NULL, @PROCESS_CURR VARCHAR(20)= NULL, @PROCESS_NEXT VARCHAR(20)= NULL, @BRANCH_NEXT VARCHAR(20)=NULL, @DEP_NEXT VARCHAR(20) = NULL, @DEP_ID VARCHAR(20) IF(@p_NOTES = 'QLTSconfirmandSendApprove') SET @p_NOTES = N'Bộ phận QLTS gửi đến Bộ phận ĐVCM tham vấn' SELECT @BRANCHID=TLSUBBRID ,@DEP_ID=DEP_ID FROM dbo.TL_USER WHERE TLNANME=@p_USERNAME DECLARE @lstCOST TABLE ( COST_ID VARCHAR(20) ) DECLARE @usersToNotify TABLE ( TLNANME VARCHAR(100) ) INSERT INTO @lstCOST SELECT COST_ID FROM dbo.TR_REQUEST_SHOP_COSTCENTER TRSC WHERE TRSC.REQ_ID = @p_REQ_ID DECLARE @p_LOG_ID VARCHAR(20),@COMPLETE BIT,@PROCESS_PARENT VARCHAR(20),@PROCESS_DES NVARCHAR(500) 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_USERNAME) tugr SET @PROCESS_CURR=(SELECT TOP 1 PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND STATUS='C' AND EXISTS(SELECT * FROM PL_REQUEST_PROCESS A WHERE A.ID = PL_REQUEST_PROCESS.ID AND A.REQ_ID = @p_REQ_ID AND A.STATUS = 'C' 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))) SET @COMPLETE=0 DECLARE @DEP_QLTS VARCHAR(20), @DEP_DVNB VARCHAR(20), @DEP_HTKD VARCHAR(20) SET @DEP_QLTS = (SELECT TOP 1 sp.ParaValue FROM SYS_PARAMETERS sp WHERE sp.ParaKey = 'DEP_QLTS') SET @DEP_DVNB = (SELECT TOP 1 sp.ParaValue FROM SYS_PARAMETERS sp WHERE sp.ParaKey = 'DEP_TTQLTS') SET @DEP_HTKD = (SELECT TOP 1 sp.ParaValue FROM SYS_PARAMETERS sp WHERE sp.ParaKey = 'DEP_KQLTS') BEGIN TRANSACTION -- GỬI DVKD IF(@p_TYPE_PROCESS='S_TDV') BEGIN --check tài sản thay thế ở phiếu đã duyệt BEGIN IF(EXISTS(SELECT * FROM TR_REQUEST_SHOP_DOC_DT TRSDD WHERE TRSDD.REQ_DOC_ID = @p_REQ_ID AND REQ_DT_TYPE = 'ASSET_BROKEN' AND TRSDD.ASS_ID IS NOT NULL OR TRSDD.ASS_ID <> '')) BEGIN DECLARE @MESSAGE_VALIDATION NVARCHAR(MAX) DECLARE @TABLE_ASSCODE_VALIDATION TABLE (ASSET_CODE VARCHAR(100), REQ_CODE VARCHAR(100)) 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 C.REQ_DT_TYPE = 'ASSET_BROKEN') --AND B.IS_DONE = '0' AND B.REQ_TYPE = 'CPTS' AND B.AUTH_STATUS <> 'E' 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' đã được chọn trong tài sản yêu cầu thay thế ở phiếu số ' + C.REQ_CODE FROM (SELECT DISTINCT ISNULL(C.ASSET_CODE,C.ASS_CODE_TMP) AS ASSET_CODE,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 C.REQ_DT_TYPE = 'ASSET_BROKEN') --AND B.IS_DONE = '0' AND B.REQ_TYPE = 'CPTS' AND B.AUTH_STATUS <> 'E' AND A.REQ_DOC_ID <> @p_REQ_ID) C FOR XML PATH ('')) , '|', '
')) ROLLBACK TRANSACTION SELECT '-1' as Result, @MESSAGE_VALIDATION ErrorDesc RETURN '-1' END END END -- CẬP NHẬT TRẠNG THÁI CHO REQUEST_PROCESS --IF(@PROCESS_CURR IS NULL OR @PROCESS_CURR='') BEGIN UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='C', DVKD_USER_APP = @p_DVKD_USER_APP, RECEPTION_DT = GETDATE() WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='APPNEW' UPDATE dbo.PL_REQUEST_PROCESS SET STATUS='P',CHECKER_ID=@p_CHECKER_ID,APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103), RECEPTION_DT = GETDATE() WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='ADDNEW' INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID, DEP_ID, DVKD_USER_APP, PROCESS_TYPE) VALUES(@p_REQ_ID,'QLTS_N','U','QLTS','DV0001','APPNEW', @DEP_QLTS, @p_DVKD_USER_APP, 'Update') IF @@Error <> 0 GOTO ABORT UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]='APPNEW', AUTH_STATUS = 'U' WHERE REQ_ID=@p_REQ_ID INSERT INTO @usersToNotify SELECT DISTINCT U.TLNANME FROM TL_USER u where u.TLNANME= @p_DVKD_USER_APP SET @p_CURRENT_URI = REPLACE(@p_CURRENT_URI, 'add', 'edit') + ';id=' + @p_REQ_ID IF @@Error <> 0 GOTO ABORT IF(EXISTS(SELECT TLNANME FROM @usersToNotify)) SET @COMPLETE=1 ELSE SET @COMPLETE=0 SET @PROCESS_CURR = 'APPNEW' END SET @COMPLETE=1 SET @NOTIFATION= N'Gửi trưởng đơn vị thành công' SET @PROCESS_DES=N'NEW' SET @NOTIFY_TO_USER = 'DVKD_APP' SET @EMAIL_CONTENT = 'TYPE_PROCESS_REQ_ADD_NEW'; SET @PROCESS_DES=N'Nhân viên tạo phiếu và gửi đến Trưởng đơn vị phê duyệt' END -- GỬI HỘI SỞ ELSE IF(@p_TYPE_PROCESS='S_QLTS') BEGIN IF(EXISTS(SELECT * FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID AND STATUS = 'CANCEL')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Phiếu yêu cầu đã bị hủy' ErrorDesc RETURN '-1' END -- CẬP NHẬT TRẠNG THÁI CHO REQUEST_PROCESS --SET @PROCESS_PARENT=(SELECT PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='QLTS_N') --IF(@PROCESS_CURR=@PROCESS_PARENT) BEGIN 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='APPNEW' --AND (ROLE_USER IN (SELECT ROLE_ID FROM dbo.TL_USER_GET_ROLES(@p_USERNAME))) IF @@Error <> 0 GOTO ABORT UPDATE PL_REQUEST_PROCESS SET [STATUS]='C', RECEPTION_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103), NOTES = @p_NOTES WHERE PROCESS_ID = 'QLTS_N' AND REQ_ID=@p_REQ_ID SELECT @PROCESS_NEXT=PROCESS_ID,@ROLE=ROLE_USER,@BRANCH_NEXT=BRANCH_ID,@DEP_NEXT=DEP_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND STATUS='C' UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]='QLTS_N', CHECKER_ID = @p_CHECKER_ID,APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103), SEND_APP_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE REQ_ID=@p_REQ_ID IF @@Error <> 0 GOTO ABORT SET @COMPLETE=1 END SET @NOTIFATION= N'Phiếu đã được chuyển đến bộ phận QLTS - HO' SET @PROCESS_DES=N'Gửi phòng hành' SET @NOTIFY_TO_USER = 'UD_REQ_S_HCQT' SET @EMAIL_CONTENT = 'TYPE_PROCESS_REQ_S_HCQT'; SET @PROCESS_DES=N'Trưởng đơn vị phê duyệt và gửi đến bộ phận QLTS' END ELSE IF(@p_TYPE_PROCESS='S_DVCM') BEGIN SET @PROCESS_PARENT=(SELECT TOP (1) PARENT_PROCESS_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_ID='DVCM') -- CẬP NHẬT TRẠNG THÁI CHO REQUEST_PROCESS 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 [STATUS]='C' AND PROCESS_ID='QLTS_N' IF((SELECT COUNT(*) FROM TR_REQUEST_SHOP_COSTCENTER TRSC WHERE TRSC.REQ_ID = @p_REQ_ID) = 0) BEGIN 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,'QLTS_NL','C','QLTS','DV0001','QLTS_N',@DEP_QLTS, 'Update') 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,'TBP_D','U','TBP_QLTS','DV0001','QLTS_NL',@DEP_QLTS, 'Approve') -- DUYỆT 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,'QLTS_D','U','GDDV_QLTS','DV0001','TBP_D',@DEP_QLTS, 'Approve') INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],PARENT_PROCESS_ID) VALUES(@p_REQ_ID,'APPROVE','U','QLTS_D') -- HOÀN TẤT INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],PARENT_PROCESS_ID) VALUES(@p_REQ_ID,'DONE','U','APPROVE') UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]='QLTS_NL' , SEND_APP_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE REQ_ID=@p_REQ_ID UPDATE TR_REQUEST_SHOP_DOC SET HO_NOTES = N'- Kế hoạch (Trong/Ngoài NS): ' + CHAR(10) + N'- Nội dung cấp: ' + CHAR(10) + N'- Ghi chú khác: ' WHERE REQ_ID=@p_REQ_ID INSERT INTO @usersToNotify SELECT DISTINCT U.TLNANME FROM TL_USER u LEFT JOIN AbpUserRoles ur ON ur.UserId = u.ID LEFT JOIN AbpRoles r ON ur.RoleId = r.Id INNER JOIN ( SELECT CC.COST_ID AS DEP_ID,CD.BRANCH_ID FROM dbo.PL_REQUEST_PROCESS PL LEFT JOIN dbo.TR_REQUEST_SHOP_COSTCENTER CC ON CC.COST_ID=pl.COST_ID LEFT JOIN CM_DEPARTMENT CD ON CC.COST_ID = CD.DEP_ID WHERE PL.REQ_ID=@p_REQ_ID AND PL.PROCESS_ID='DVCM' ) T ON T.DEP_ID=u.DEP_ID AND T.BRANCH_ID=u.TLSUBBRID where r.DisplayName = @ROLE AND u.TLNANME != @p_USERNAME IF @@Error <> 0 GOTO ABORT SET @COMPLETE=1 SET @p_NOTES = N'Bộ phận QLTS gửi đến Trưởng Bộ phận QLTS phê duyệt' SET @NOTIFATION= N'Bộ phận QLTS đã tiếp nhận phiếu' SET @NOTIFY_TO_USER = 'UD_REQ_S_APP' SET @EMAIL_CONTENT = 'TYPE_PROCESS_REQ_S_APPP'; SET @PROCESS_DES=N'QLTS tiếp nhận và đang kiểm duyệt' END ELSE BEGIN --UPDATE PL_REQUEST_PROCESS SET [STATUS]='C', RECEPTION_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE PROCESS_ID = 'DVCM' AND REQ_ID=@p_REQ_ID SELECT TOP 1 @PROCESS_NEXT=PROCESS_ID,@ROLE=ROLE_USER FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND STATUS='C' INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID, PROCESS_TYPE) SELECT trsc.REQ_ID, 'DVCM', 'C', 'DVCM', 'DV0001', 'QLTS_N', trsc.COST_ID,'Update' FROM TR_REQUEST_SHOP_COSTCENTER trsc WHERE trsc.REQ_ID = @p_REQ_ID INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],ROLE_USER,BRANCH_ID,PARENT_PROCESS_ID,DEP_ID,PROCESS_TYPE) SELECT trsc.REQ_ID, 'DVCM_D', 'U', 'GDDV', 'DV0001', 'DVCM', trsc.COST_ID, 'Approve' FROM TR_REQUEST_SHOP_COSTCENTER trsc WHERE trsc.REQ_ID = @p_REQ_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,'QLTS_NL','U','QLTS','DV0001','DVCM_D',@DEP_QLTS, 'Update') 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,'TBP_D','U','TBP_QLTS','DV0001','QLTS_NL',@DEP_QLTS, 'Approve') 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,'QLTS_D','U','GDDV_QLTS','DV0001','TBP_D',@DEP_QLTS, 'Approve') -- DUYỆT INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],PARENT_PROCESS_ID) VALUES(@p_REQ_ID,'APPROVE','U','QLTS_D') -- HOÀN TẤT INSERT INTO PL_REQUEST_PROCESS(REQ_ID,[PROCESS_ID],[STATUS],PARENT_PROCESS_ID) VALUES(@p_REQ_ID,'DONE','U','APPROVE') UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]='DVCM' WHERE REQ_ID=@p_REQ_ID INSERT INTO @usersToNotify SELECT DISTINCT U.TLNANME FROM TL_USER u LEFT JOIN AbpUserRoles ur ON ur.UserId = u.ID LEFT JOIN AbpRoles r ON ur.RoleId = r.Id INNER JOIN ( SELECT CC.COST_ID AS DEP_ID,CD.BRANCH_ID FROM dbo.PL_REQUEST_PROCESS PL LEFT JOIN dbo.TR_REQUEST_SHOP_COSTCENTER CC ON CC.COST_ID=pl.COST_ID LEFT JOIN CM_DEPARTMENT CD ON CC.COST_ID = CD.DEP_ID WHERE PL.REQ_ID=@p_REQ_ID AND PL.PROCESS_ID='DVCM' ) T ON T.DEP_ID=u.DEP_ID AND T.BRANCH_ID=u.TLSUBBRID where r.DisplayName = @ROLE AND u.TLNANME != @p_USERNAME IF @@Error <> 0 GOTO ABORT SET @COMPLETE=1 SET @NOTIFATION= N'Gửi ĐVCM thành công' SET @PROCESS_DES=N'Gửi ĐVCM' SET @NOTIFY_TO_USER = 'UD_REQ_S_DVCM' SET @EMAIL_CONTENT = 'TYPE_PROCESS_REQ_S_DVCM'; SET @PROCESS_DES=N'QLTS tiếp nhận và gửi đến ĐVCM' END END ELSE IF(@p_TYPE_PROCESS='S_TDVCM') BEGIN DECLARE @USERDVCM VARCHAR(15) = '' SELECT @USERDVCM = TU.SECUR_CODE FROM TL_USER TU WHERE TU.TLNANME = @p_CHECKER_ID IF(EXISTS(SELECT * FROM dbo.TR_REQUEST_SHOP_COSTCENTER TRSC WHERE REQ_ID = @p_REQ_ID AND TRSC.COST_ID = @USERDVCM AND (TRSC.RE_CONTENT IS NULL OR TRSC.RE_CONTENT = ''))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Chưa nhập ý kiến bộ phận Đơn vị chuyên môn' ErrorDesc RETURN '-1' END UPDATE PL_REQUEST_PROCESS SET STATUS = 'P', APPROVE_DT = GETDATE(), CHECKER_ID = @p_CHECKER_ID, NOTES = N'Đơn vị chuyên môn đã xác nhận' WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'DVCM' AND STATUS = 'C' AND DEP_ID = @USERDVCM UPDATE TR_REQUEST_SHOP_COSTCENTER SET AUTH_STATUS = 'U' WHERE REQ_ID = @p_REQ_ID AND COST_ID = @USERDVCM UPDATE PL_REQUEST_PROCESS SET STATUS = 'C' WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'DVCM_D' AND DEP_ID = @USERDVCM -- INSERT INTO @usersToNotify -- SELECT DISTINCT U.TLNANME FROM TL_USER u -- LEFT JOIN AbpUserRoles ur ON ur.UserId = u.ID -- LEFT JOIN AbpRoles r ON ur.RoleId = r.Id -- INNER JOIN -- ( -- SELECT CC.COST_ID AS DEP_ID,CD.BRANCH_ID FROM dbo.PL_REQUEST_PROCESS PL -- LEFT JOIN dbo.TR_REQUEST_SHOP_COSTCENTER CC ON CC.COST_ID=pl.COST_ID -- LEFT JOIN CM_DEPARTMENT CD ON CC.COST_ID = CD.DEP_ID -- WHERE PL.REQ_ID=@p_REQ_ID AND PL.PROCESS_ID='DVCM' -- ) T ON T.DEP_ID=u.DEP_ID AND T.BRANCH_ID=u.TLSUBBRID -- where r.DisplayName = @ROLE AND u.TLNANME != @p_USERNAME IF @@Error <> 0 GOTO ABORT BEGIN SET @COMPLETE=1 SET @NOTIFATION= N'Gửi Trưởng ĐVCM duyệt thành công' SET @PROCESS_DES=N'Gửi Trưởng ĐVCM duyệt' SET @NOTIFY_TO_USER = 'UD_REQ_S_DVCM' SET @EMAIL_CONTENT = 'TYPE_PROCESS_REQ_S_DVCM'; END END ELSE IF(@p_TYPE_PROCESS='DVCM_D') BEGIN IF(@PROCESS_CURR='DVCM_D') BEGIN UPDATE PL_REQUEST_PROCESS SET [STATUS]='P', CHECKER_ID=@p_USERNAME, APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103), NOTES = @p_NOTES WHERE REQ_ID=@p_REQ_ID AND STATUS='C' AND PROCESS_ID = 'DVCM_D' AND DEP_ID = @DEP_ID UPDATE TR_REQUEST_SHOP_COSTCENTER SET AUTH_STATUS = 'A', CHECKER_ID = @p_CHECKER_ID WHERE REQ_ID = @p_REQ_ID AND COST_ID = @DEP_ID IF(NOT EXISTS(SELECT REQ_COST_ID FROM dbo.TR_REQUEST_SHOP_COSTCENTER WHERE REQ_ID=@p_REQ_ID AND AUTH_STATUS <> 'A')) BEGIN UPDATE PL_REQUEST_PROCESS SET [STATUS]='C' WHERE REQ_ID=@p_REQ_ID AND PARENT_PROCESS_ID=@PROCESS_CURR -- CẬP NHẬT TRẠNG THÁI CHO REQUEST_PROCESS SELECT @PROCESS_NEXT=PROCESS_ID,@ROLE=ROLE_USER,@BRANCH_NEXT=BRANCH_ID,@DEP_NEXT=DEP_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND STATUS='C' UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]= @PROCESS_NEXT WHERE REQ_ID=@p_REQ_ID UPDATE TR_REQUEST_SHOP_DOC SET HO_NOTES = N'- Kế hoạch (Trong/Ngoài NS): ' + CHAR(10) + N'- Nội dung cấp: ' + CHAR(10) + N'- Ghi chú khác: ' , SEND_APP_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE REQ_ID=@p_REQ_ID IF @@Error <> 0 GOTO ABORT SET @COMPLETE=1 END END SET @NOTIFATION= N'Duyệt thành công' SET @NOTIFY_TO_USER = 'UD_REQ_DVCM_XN' SET @EMAIL_CONTENT = 'TYPE_PROCESS_REQ_DVCM_XN'; SET @PROCESS_DES=N'Trưởng đơn vị chuyển môn duyệt' END ELSE IF(@p_TYPE_PROCESS='QLTS_NL') BEGIN -- Bắt buộc nhập ý kiến phòng hành chính IF( NOT EXISTS (SELECT HO_NOTES FROM dbo.TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID AND HO_NOTES IS NOT NULL AND HO_NOTES <> '')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Chưa nhập ý kiến bộ phận Quản lý tài sản' ErrorDesc RETURN '-1' END -- Check có chọn loại ts ở lưới QLTS chưa, ko thì ko cho gửi IF( NOT EXISTS (SELECT * FROM dbo.TR_REQUEST_SHOP_DOC_DT WHERE REQ_DOC_ID = @p_REQ_ID AND REQ_DT_TYPE IN ('BUYNEW','XKSD'))) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Thông tin ở lưới CHI TIẾT LOẠI TÀI SẢN CẤP PHÁT - QLTS đang trống' ErrorDesc RETURN '-1' END UPDATE PL_REQUEST_PROCESS SET [STATUS]='P', CHECKER_ID=@p_USERNAME, APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE REQ_ID=@p_REQ_ID AND STATUS='C' AND PROCESS_ID = 'QLTS_NL' UPDATE PL_REQUEST_PROCESS SET [STATUS]='C' WHERE REQ_ID=@p_REQ_ID AND PARENT_PROCESS_ID=@PROCESS_CURR UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]= 'TBP_D' WHERE REQ_ID=@p_REQ_ID SET @COMPLETE=1 SET @p_NOTES = N'Bộ phận QLTS gửi đến Trưởng Bộ phận QLTS phê duyệt' SET @NOTIFATION= N'Trưởng bộ phận QLTS đã tiếp nhận phiếu' SET @NOTIFY_TO_USER = 'UD_REQ_S_APP' SET @EMAIL_CONTENT = 'TYPE_PROCESS_REQ_S_APPP'; SET @PROCESS_DES=N'Trưởng Bộ phận QLTS tiếp nhận và đang kiểm duyệt' END ELSE IF(@p_TYPE_PROCESS='QLTS_D') BEGIN -- IF(@p_DVKD_USER_APP IS NULL OR @p_DVKD_USER_APP = '') -- BEGIN -- ROLLBACK TRANSACTION -- SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Chưa chọn TT. QLTS để gửi duyệt' ErrorDesc -- RETURN '-1' -- END -- IF(@p_DVKD_USER_APP IS NOT NULL OR @p_DVKD_USER_APP <> '') BEGIN INSERT INTO PL_REQUEST_PROCESS (REQ_ID, [PROCESS_ID], [STATUS], ROLE_USER, BRANCH_ID, PARENT_PROCESS_ID, DEP_ID, DVKD_USER_APP,PROCESS_TYPE) VALUES (@p_REQ_ID, 'TTQLTS_D', 'C', 'GDDV_QLTS', 'DV0001', 'QLTS_D', @DEP_DVNB, @p_DVKD_USER_APP, 'Approve') --DVKD USER APP TẠI BƯƠC NÀY LÀ TT QLTS USER UPDATE PL_REQUEST_PROCESS SET [STATUS]='P',CHECKER_ID=@p_USERNAME,APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103) WHERE REQ_ID=@p_REQ_ID AND STATUS='C' AND PROCESS_ID = 'QLTS_D' UPDATE PL_REQUEST_PROCESS SET PARENT_PROCESS_ID = 'TTQLTS_D' WHERE REQ_ID = @p_REQ_ID AND PROCESS_ID = 'APPROVE' UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]= 'TTQLTS_D' WHERE REQ_ID=@p_REQ_ID IF @@Error <> 0 GOTO ABORT SET @COMPLETE=1 SET @NOTIFATION= N'QLTS gửi đến Trung Tâm QLTS duyệt' SET @NOTIFY_TO_USER = 'QLTS_S_TTQLTS' SET @EMAIL_CONTENT = 'TYPE_PROCESS_REQ_QLTS_S_TTQLTS'; SET @PROCESS_DES=N'QLTS gửi đến Trung Tâm QLTS duyệt' END END ELSE IF(@p_TYPE_PROCESS='TBP_D') BEGIN UPDATE PL_REQUEST_PROCESS SET [STATUS]='P',CHECKER_ID=@p_USERNAME,APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103), NOTES = @p_NOTES WHERE REQ_ID=@p_REQ_ID AND STATUS='C' AND PROCESS_ID = @PROCESS_CURR UPDATE PL_REQUEST_PROCESS SET [STATUS]='C' WHERE REQ_ID=@p_REQ_ID AND PARENT_PROCESS_ID=@PROCESS_CURR UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]= 'QLTS_D' WHERE REQ_ID=@p_REQ_ID IF @@Error <> 0 GOTO ABORT SET @COMPLETE=1 SET @NOTIFATION= N'Trưởng Bộ Phận QLTS phê duyệt và gửi đến Trưởng đơn vị QLTS duyệt' SET @NOTIFY_TO_USER = 'QLTS_S_TTQLTS' SET @EMAIL_CONTENT = 'TYPE_PROCESS_REQ_QLTS_S_TTQLTS'; SET @PROCESS_DES=N'Trưởng Bộ Phận QLTS phê duyệt và gửi đến Trưởng đơn vị QLTS duyệt' END ELSE IF(@p_TYPE_PROCESS='QLTS_A') BEGIN IF(EXISTS(SELECT * FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID AND STATUS = 'CANCEL')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Phiếu yêu cầu đã bị hủy' ErrorDesc RETURN '-1' END BEGIN UPDATE PL_REQUEST_PROCESS SET [STATUS]='P',CHECKER_ID=@p_USERNAME,APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103), NOTES = @p_NOTES WHERE REQ_ID=@p_REQ_ID AND [STATUS]='C' AND PROCESS_ID='QLTS_D' AND (ROLE_USER IN (SELECT ROLE_ID FROM dbo.TL_USER_GET_ROLES(@p_USERNAME))) IF @@Error <> 0 GOTO ABORT UPDATE PL_REQUEST_PROCESS SET [STATUS]='C', RECEPTION_DT = CONVERT(DATETIME, @p_APPROVE_DT, 103), CHECKER_ID=@p_USERNAME,APPROVE_DT=CONVERT(DATETIME, @p_APPROVE_DT, 103) , NOTES = @p_NOTES WHERE PROCESS_ID = 'APPROVE' AND REQ_ID=@p_REQ_ID SELECT @PROCESS_NEXT=PROCESS_ID,@ROLE=ROLE_USER,@BRANCH_NEXT=BRANCH_ID,@DEP_NEXT=DEP_ID FROM dbo.PL_REQUEST_PROCESS WHERE REQ_ID=@p_REQ_ID AND STATUS='C' UPDATE TR_REQUEST_SHOP_DOC SET [STATUS]='APPROVE', AUTH_STATUS = 'A' WHERE REQ_ID=@p_REQ_ID IF @@Error <> 0 GOTO ABORT SET @COMPLETE=1 END SET @NOTIFATION= N'Duyệt thành công phiếu yêu cầu' SET @PROCESS_DES=N'QLTS duyệt' SET @NOTIFY_TO_USER = 'UD_REQ_S_HCQT' SET @EMAIL_CONTENT = 'TYPE_PROCESS_REQ_QLTS_APP'; SET @PROCESS_DES=N'Bộ phận QLTS đã phê duyệt' END ELSE IF(@p_TYPE_PROCESS='CANCEL') BEGIN IF(EXISTS(SELECT * FROM TR_REQUEST_SHOP_DOC WHERE REQ_ID = @p_REQ_ID AND STATUS = 'CANCEL')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' WH_O_HCQT_MUL_ID, N'Phiếu yêu cầu đã bị hủy' ErrorDesc RETURN '-1' 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(),@PROCESS_CURR,'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' SET @COMPLETE=1 END -- NOTIFATIONS IF(@COMPLETE=1) BEGIN DECLARE @BXL NVARCHAR(MAX) = '' IF(@p_TYPE_PROCESS = 'S_TDV') SET @BXL = N'Gửi Trưởng đơn vị phê duyệt' IF(@p_TYPE_PROCESS = 'S_QLTS') SET @BXL = N'Trưởng đơn vị phê duyệt' IF(@p_TYPE_PROCESS = 'S_DVCM') SET @BXL = N'Bộ phận QLTS nhận phiếu' IF(@p_TYPE_PROCESS = 'S_TDVCM') SET @BXL = N'Bộ phận ĐVCM xử lý phiếu' IF(@p_TYPE_PROCESS = 'DVCM_D') SET @BXL = N'Trưởng đơn vị chuyên môn duyệt' IF(@p_TYPE_PROCESS = 'QLTS_NL') SET @BXL = N'Bộ phận QLTS xác nhận' IF(@p_TYPE_PROCESS = 'TBP_D') SET @BXL = N'Trưởng Bộ phận QLTS phê duyệt' IF(@p_TYPE_PROCESS = 'QLTS_A') SET @BXL = N'Bộ phận QLTS phê duyệt' IF(@p_TYPE_PROCESS = 'QLTS_D') SET @BXL = N'Gửi Trung Tâm QLTS phê duyệt' IF(@p_TYPE_PROCESS = 'CANCEL') SET @BXL = N'Chuyên viên QLTS huỷ phiếu' IF(@p_TYPE_PROCESS = 'CANCEL') SET @PROCESS_CURR = 'CANCEL' IF(@p_TYPE_PROCESS = 'S_TDV' AND @p_NOTES IS NULL) SET @p_NOTES = N'Nhân viên tạo phiếu và gửi đến Trưởng đơn vị phê duyệt' IF(@p_TYPE_PROCESS = 'S_TDVCM' AND @p_NOTES IS NULL) SET @p_NOTES = N'Nhân viên ĐVCM gửi Trưởng ĐCVM vị phê duyệt' IF(@p_TYPE_PROCESS = 'QLTS_NL' AND @p_NOTES IS NULL) SET @p_NOTES = N'QLTS gửi đến Trưởng bộ phận QLTS duyệt' IF(@p_TYPE_PROCESS = 'QLTS_D' AND @p_NOTES IS NULL) SET @p_NOTES = N'QLTS gửi đến Trung Tâm QLTS duyệt' IF(@p_TYPE_PROCESS = 'QLTS_A' AND @p_NOTES IS NULL) SET @p_NOTES = N'Trung Tâm Dịch Vụ Nội Bộ phê duyệt phiếu thành công' -- insert log INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC, NOTES ) VALUES ( @p_REQ_ID, -- REQ_ID - varchar(15) @PROCESS_CURR, -- PROCESS_ID - varchar(10) @p_USERNAME, -- CHECKER_ID - varchar(100) CONVERT(DATETIME, @p_APPROVE_DT, 103), -- APPROVE_DT - datetime @BXL, -- PROCESS_DESC - nvarchar(1000) @p_NOTES -- NOTES - nvarchar(1000) ) DECLARE @ID_PROCESS INT IF(@p_TYPE_PROCESS='REJECT' OR @p_TYPE_PROCESS='REJECT_DVCM' OR @p_TYPE_PROCESS='REJECT_CVMS' OR @p_TYPE_PROCESS='REJECT_QLTS' ) BEGIN SET @ID_PROCESS=(SELECT TOP 1 ID FROM dbo.PL_PROCESS WHERE REQ_ID=@p_REQ_ID AND PROCESS_DESC=@p_TYPE_PROCESS ORDER BY ID DESC) END IF NOT EXISTS (SELECT 1 FROM @usersToNotify) BEGIN --INSERT INTO @usersToNotify --SELECT U.TLNANME FROM TL_USER u -- LEFT JOIN AbpUserRoles ur ON ur.UserId = u.ID -- LEFT JOIN AbpRoles r ON ur.RoleId = r.Id -- where r.DisplayName = @ROLE and u.TLNANME != @p_USERNAME INSERT INTO @usersToNotify SELECT U.TLNANME FROM TL_USER u WHERE u.TLNANME != @p_USERNAME and U.ID IN (SELECT ur.UserId FROM AbpUserRoles ur LEFT JOIN AbpRoles r ON ur.RoleId = r.Id where r.DisplayName = @ROLE) END Declare @C_TLNAME VARCHAR(100) -- declare a cursor DECLARE insert_cursor CURSOR FOR SELECT TLNANME FROM @usersToNotify WHERE TLNANME IS NOT NULL AND TLNANME <>'' -- open cursor and fetch first row into variables OPEN insert_cursor UPDATE dbo.TL_ROLE_NOTIFICATION SET RECORD_STATUS = '0' WHERE PO_ID = @p_REQ_ID AND RECORD_STATUS = '1' FETCH NEXT FROM insert_cursor into @C_TLNAME WHILE @@FETCH_STATUS=0 BEGIN DECLARE @NOTIFI_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'TL_ROLE_NOTIFICATION', @NOTIFI_ID OUT INSERT INTO [dbo].[TL_ROLE_NOTIFICATION] ([NOTIFI_ID] ,[NOTIFI_CODE] ,[NOTIFI_NAME] ,[TYPE] ,[PO_ID] ,[TL_NAME] ,[BRANCH_ID] ,[RECORD_STATUS] ,[AUTH_STATUS] ,[EDITOR_ID] ,[EDIT_DT] ,[NOTES] ,[MAKER_ID] ,[CREATE_DT]) VALUES (@NOTIFI_ID ,NULL ,NULL ,'UD_REQ' ,@p_REQ_ID ,@C_TLNAME ,@BRANCHID ,'1' ,'U' ,@C_TLNAME ,CONVERT(DATETIME,GETDATE(),103) ,NULL ,@C_TLNAME ,CONVERT(DATETIME,GETDATE(),103)) -- Thông báo email DECLARE @NFM_ID VARCHAR(15) EXEC SYS_CodeMasters_Gen 'NF_MESSAGE', @NFM_ID OUT INSERT INTO dbo.NF_MESSAGE ( MESSAGE_ID, SENDER_ID, RECIPIENT_ID, TARGET_ID, MESSAGE_CONTENT, CREATE_DATE, SEND_DATE, MESSAGE_STATUS, READ_STATUS, PAGE_OCCUR, RECORD_ID, DATATYPE_NAME ) VALUES ( @NOTIFI_ID, -- MESSAGE_ID - varchar(15) NULL, -- SENDER_ID - varchar(100) 'UD_REQ', -- RECIPIENT_ID - varchar(100) @p_REQ_ID, -- TARGET_ID -- @EMAIL_CONTENT, -- MESSAGE_CONTENT - nvarchar(1000) GETDATE(), -- CREATE_DATE - datetime NULL, -- SEND_DATE - datetime 'NS', -- MESSAGE_STATUS - varchar(100) NULL, -- READ_STATUS - varchar(100) @p_CURRENT_URI, --'http://localhost:4200/app/admin/trade-request-doc-edit;id=' + @p_REQ_ID, -- PAGE_OCCUR - varchar(100) @NFM_ID, -- RECORD_ID - varchar(100) @ID_PROCESS -- DATATYPE_NAME - varchar(100) ) print @C_TLNAME IF @@ERROR <> 0 GOTO ABORT -- check for a new row -- do complex operation here FETCH NEXT FROM insert_cursor into @C_TLNAME END close insert_cursor Deallocate insert_cursor DECLARE @NOTIFI_ID_MAKER VARCHAR(15) DECLARE @NFM_ID_MAKER VARCHAR(15) IF(@p_TYPE_PROCESS <> 'S_DVKD' AND (NOT EXISTS (SELECT * FROM @usersToNotify N WHERE N.TLNANME = @p_MAKERID))) BEGIN EXEC SYS_CodeMasters_Gen 'TL_ROLE_NOTIFICATION', @NOTIFI_ID_MAKER OUT INSERT INTO [dbo].[TL_ROLE_NOTIFICATION] ([NOTIFI_ID] ,[NOTIFI_CODE] ,[NOTIFI_NAME] ,[TYPE] ,[PO_ID] ,[TL_NAME] ,[BRANCH_ID] ,[RECORD_STATUS] ,[AUTH_STATUS] ,[EDITOR_ID] ,[EDIT_DT] ,[NOTES] ,[MAKER_ID] ,[CREATE_DT]) VALUES (@NOTIFI_ID_MAKER ,NULL ,NULL ,'UD_REQ_MAKER' ,@p_REQ_ID ,@p_MAKERID --@C_TLNAME ,@BRANCHID ,'1' ,'U' ,@p_MAKERID ,CONVERT(DATETIME,GETDATE(),103) ,NULL ,@p_MAKERID ,CONVERT(DATETIME,GETDATE(),103)) -- Thông báo email EXEC SYS_CodeMasters_Gen 'NF_MESSAGE', @NFM_ID_MAKER OUT INSERT INTO dbo.NF_MESSAGE ( MESSAGE_ID, SENDER_ID, RECIPIENT_ID, TARGET_ID, MESSAGE_CONTENT, CREATE_DATE, SEND_DATE, MESSAGE_STATUS, READ_STATUS, PAGE_OCCUR, RECORD_ID, DATATYPE_NAME ) VALUES ( @NOTIFI_ID_MAKER, -- MESSAGE_ID - varchar(15) NULL, -- SENDER_ID - varchar(100) 'UD_REQ_MAKER', -- RECIPIENT_ID - varchar(100) @p_REQ_ID, -- TARGET_ID -- @EMAIL_CONTENT, -- MESSAGE_CONTENT - nvarchar(1000) GETDATE(), -- CREATE_DATE - datetime NULL, -- SEND_DATE - datetime 'NS', -- MESSAGE_STATUS - varchar(100) NULL, -- READ_STATUS - varchar(100) @p_CURRENT_URI, --'http://localhost:4200/app/admin/trade-request-doc-edit;id=' + @p_REQ_ID, -- PAGE_OCCUR - varchar(100) @NFM_ID_MAKER, -- RECORD_ID - varchar(100) @ID_PROCESS -- DATATYPE_NAME - varchar(100) ) END ELSE BEGIN EXEC SYS_CodeMasters_Gen 'TL_ROLE_NOTIFICATION', @NOTIFI_ID_MAKER OUT INSERT INTO [dbo].[TL_ROLE_NOTIFICATION] ([NOTIFI_ID] ,[NOTIFI_CODE] ,[NOTIFI_NAME] ,[TYPE] ,[PO_ID] ,[TL_NAME] ,[BRANCH_ID] ,[RECORD_STATUS] ,[AUTH_STATUS] ,[EDITOR_ID] ,[EDIT_DT] ,[NOTES] ,[MAKER_ID] ,[CREATE_DT]) VALUES (@NOTIFI_ID_MAKER ,NULL ,NULL ,'UD_REQ_MAKER' ,@p_REQ_ID ,'app.qlts' --@C_TLNAME ,@BRANCHID ,'1' ,'U' ,'app.qlts' ,CONVERT(DATETIME,GETDATE(),103) ,NULL ,'app.qlts' ,CONVERT(DATETIME,GETDATE(),103)) -- Thông báo email EXEC SYS_CodeMasters_Gen 'NF_MESSAGE', @NFM_ID_MAKER OUT INSERT INTO dbo.NF_MESSAGE ( MESSAGE_ID, SENDER_ID, RECIPIENT_ID, TARGET_ID, MESSAGE_CONTENT, CREATE_DATE, SEND_DATE, MESSAGE_STATUS, READ_STATUS, PAGE_OCCUR, RECORD_ID, DATATYPE_NAME ) VALUES ( @NOTIFI_ID_MAKER, -- MESSAGE_ID - varchar(15) NULL, -- SENDER_ID - varchar(100) 'UD_REQ_MAKER', -- RECIPIENT_ID - varchar(100) @p_REQ_ID, -- TARGET_ID -- @EMAIL_CONTENT, -- MESSAGE_CONTENT - nvarchar(1000) GETDATE(), -- CREATE_DATE - datetime NULL, -- SEND_DATE - datetime 'NS', -- MESSAGE_STATUS - varchar(100) NULL, -- READ_STATUS - varchar(100) @p_CURRENT_URI, --'http://localhost:4200/app/admin/trade-request-doc-edit;id=' + @p_REQ_ID, -- PAGE_OCCUR - varchar(100) @NFM_ID_MAKER, -- RECORD_ID - varchar(100) @ID_PROCESS -- DATATYPE_NAME - varchar(100) ) END END COMMIT TRANSACTION SELECT '0' as Result, @NOTIFATION AS NOTIFATION, '' ErrorDesc, @NOTIFY_TO_USER AS NEXT_USER_NOTIFI, @COMPLETE COMPLETE RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' AS RESULT RETURN '-1' End END GO IF @@ERROR <> 0 SET NOEXEC ON GO PRINT N'Altering [dbo].[ASS_ADDNEW_BVB_Ins]' GO ALTER PROCEDURE [dbo].[ASS_ADDNEW_BVB_Ins] @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 KT 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) = 'Y', @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, @p_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(50) 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 nvarchar(25) DECLARE @l_WAR_CONTENT nvarchar(1000) DECLARE @l_DEPT_CREATE VARCHAR(15) = (SELECT SECUR_CODE FROM dbo.TL_USER WHERE TLNANME = @p_MAKER_ID) /************ Vadilation here ***************/ DECLARE @ERRORSYS NVARCHAR(15) = '' BEGIN TRY /*** so thang khau hao phai lon hon 0 ************/ IF (@p_AMORT_MONTH < 0) SET @ERRORSYS = 'ASS-00016' --/****KIEM TRA NHAP SO TIEN > 0****/ --IF (@p_BUY_PRICE <= 0) -- SET @ERRORSYS = 'ASS-99995' IF @ERRORSYS <> '' BEGIN SELECT ErrorCode Result, '' ADDNEW_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = @ERRORSYS RETURN '-1' END /***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(@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 /*******************End validaiton **************/ Exec sp_xml_preparedocument @hdoc Output, @p_ADDNEW_DT DECLARE AddnewDT CURSOR LOCAL FOR SELECT * FROM OPENXML(@hdoc,'/Root/ADDNEWDT',2) WITH ( WAR_DT varchar(20), WAR_CONTENT nvarchar(1000) ) OPEN AddnewDT Exec sp_xml_preparedocument @hdoc Output, @p_ADDNEW_PO DECLARE AddnewPO CURSOR LOCAL 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 LOCAL FOR SELECT * FROM OPENXML(@hdoc,'/Root/ADDNEWDT',2) WITH ( TRPO_ID varchar(15),--PD_ID 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 NVARCHAR(25), PO_ID VARCHAR(15) ) BEGIN TRANSACTION SET @p_ACCOUNT_GL = (SELECT ParaValue FROM SYS_PARAMETERS WHERE ParaKey = 'ASSET_SUPPEND_GL') IF @p_QTY = '0' OR @p_IS_MULTIPLE = '0' BEGIN SET @p_QTY = '1' SET @p_IS_MULTIPLE = '0' END IF(@p_BRANCH_ID IS NULL) BEGIN SELECT @p_BRANCH_ID = CE.BRANCH_ID, @p_DEPT_ID = CE.DEP_ID FROM CM_EMPLOYEE CE WHERE CE.EMP_ID = @p_EMP_ID END 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 END SET @p_REQ_ID = (SELECT REQ_ID FROM TR_REQUEST_SHOP_DOC WHERE REQ_CODE = @p_REQ_CODE) 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 OR @p_REQ_CODE = '') 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 IF(@p_REQ_CODE = '') BEGIN SET @p_REQ_CODE = NULL END EXEC SYS_CodeMasters_Gen 'ASS_ADDNEW', @l_ADDNEW_ID out IF @l_ADDNEW_ID='' OR @l_ADDNEW_ID IS NULL GOTO ABORT DECLARE @l_AMORT_START_DATE_CV NVARCHAR(25) = NULL DECLARE @l_AMORT_END_DATE_CV NVARCHAR(25) = NULL IF @p_AMORT_START_DATE IS NOT NULL AND @p_AMORT_START_DATE <> '' BEGIN SET @l_AMORT_START_DATE_CV = CONVERT(DATETIME, @p_AMORT_START_DATE, 103) END IF @p_AMORT_END_DATE IS NOT NULL AND @p_AMORT_END_DATE <> '' BEGIN SET @l_AMORT_END_DATE_CV = CONVERT(DATETIME, @p_AMORT_END_DATE, 103) END INSERT INTO ASS_ADDNEW ( [ADDNEW_ID], [BUY_DATE], [TYPE_ID], [GROUP_ID], [ASSET_NAME], [ASSET_SERIAL_NO], [ASSET_DESC], [BRANCH_ID], [DEPT_ID],------------------Them [EMP_ID],--------------------------Them [DIVISION_ID],-----------------Them [AMORT_START_DATE],-----------Them [BUY_PRICE], [AMORT_AMT], [AMORT_MONTH], [AMORT_RATE], [IS_MULTIPLE], [QTY], [PO_ID], PD_ID, [REF_ASSET_ID], [REF_AMORTIZED_AMT], [WARRANTY_MONTHS], [NOTES], [CORE_NOTE], [ENTRY_BOOKED], [RECORD_STATUS], [AUTH_STATUS], [MAKER_ID], [CREATE_DT], [CHECKER_ID], [APPROVE_DT], [CONSTRUCT_ID], ----------------Them POSTED_STATUS,--THEM 14/04/2014 [BRANCH_CREATE],--THEM 14/04/2014 [AUTH_STATUS_KT], -- THEM 08/05/2014, [REPORT_STATUS], [AMORT_END_DATE], [ACCOUNT_GL], [VAT], [PRICE_VAT], [DEPT_CREATE], CONTRACT_ID, SUP_ID, ASS_STATUS, PL_CODE, WAR_EXPIRE_DT,REQ_ID, REQ_CODE, PR_CODE, UNIT, WIN_CRACK, OFFICE_CRACK, FORWARD_CONTENT ) VALUES ( @l_ADDNEW_ID , CONVERT(DATETIME, @p_BUY_DATE, 103) , @p_TYPE_ID , @p_GROUP_ID , @p_ASSET_NAME , @p_ASSET_SERIAL_NO , @p_ASSET_DESC , @p_BRANCH_ID , @p_DEPT_ID,----------------Them @p_EMP_ID,---------------Them @p_DIVISION_ID,---------Them @l_AMORT_START_DATE_CV,--CONVERT(DATETIME, @p_AMORT_START_DATE, 103), -------------Them ISNULL(@p_BUY_PRICE, 0), @p_AMORT_AMT , @p_AMORT_MONTH , @p_AMORT_RATE , @p_IS_MULTIPLE , @p_QTY , @p_PO_ID , @p_PD_ID, @p_REF_ASSET_ID , @p_REF_AMORTIZED_AMT , @p_WARRANTY_MONTHS , @p_NOTES , @p_CORE_NOTE, @p_ENTRY_BOOKED, @p_RECORD_STATUS , @p_AUTH_STATUS , @p_MAKER_ID , CONVERT(DATETIME, @p_CREATE_DT, 103) , @p_CHECKER_ID , CASE WHEN @p_APPROVE_DT = '' OR @p_APPROVE_DT IS NULL THEN NULL ELSE CONVERT(DATETIME, @p_APPROVE_DT, 103) END, @p_CONSTRUCT_ID, @p_POSTED_STATUS, @p_BRANCH_CREATE, 'E','N',@l_AMORT_END_DATE_CV, @p_ACCOUNT_GL , @VAT , @PRICE_VAT, @l_DEPT_CREATE ,@p_CONTRACT_ID ,@p_SUP_ID ,@p_ASS_STATUS ,@p_PL_CODE ,CONVERT(DATETIME, @p_WAR_EXPIRE_DT, 103) ,@p_REQ_ID ,@p_REQ_CODE ,@p_PR_CODE ,@p_UNIT, @p_WIN, @p_OFFICE, @p_FORWARD_CONTENT ) IF @@Error <> 0 GOTO ABORT --INSERT VAO BANG ASS_PO -------------------------------- EXEC SYS_CodeMasters_Gen 'ASS_PO', @p_ASS_PO_ID out IF @p_ASS_PO_ID='' OR @p_ASS_PO_ID IS NULL GOTO ABORT INSERT INTO dbo.ASS_PO ( ASSPO_ID,ADDNEW_ID,PO_CODE,INVOICE_NO,INVOICE_DATE,NOTES,RECORD_STATUS,AUTH_STATUS,MAKER_ID,CREATE_DT, CHECKER_ID,APPROVE_DT,BRANCH_ID, INVOICE_SYMPOL ) VALUES (@p_ASS_PO_ID,@l_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) -- BO SUNG THEM DOAN CODE INSERT PO_ID CHO BANG ADD_NEW - LUCTV - 09-11-2018 UPDATE ASS_ADDNEW SET PO_ID = @p_ASS_PO_ID WHERE ADDNEW_ID =@l_ADDNEW_ID IF @@Error <> 0 GOTO ABORT ------------------------------------------------------------ FETCH NEXT FROM AddnewDT INTO @l_WAR_DT, @l_WAR_CONTENT WHILE @@FETCH_STATUS = 0 BEGIN IF(NOT EXISTS (SELECT * FROM ASS_ADDNEW_DT WHERE ADDNEW_ID=@p_ADDNEW_ID AND CONVERT(DATE,WAR_DT, 103) = CONVERT(DATE,@l_WAR_DT,103))) BEGIN IF(@l_WAR_DT IS NULL OR @l_WAR_DT = '') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ADDNEW_ID, N'Thời gian bảo hành không được để trống' ErrorDesc RETURN '-1' 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, @l_ADDNEW_ID, CONVERT(DATETIME, @l_WAR_DT, 103), @l_WAR_CONTENT) END 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 --INSERT DANH SACH PO DECLARE @PO_ID varchar(15) , @ADD_PO_ID VARCHAR(15), @PO_CODE varchar(15) , @INVOICE_NO varchar(200), @INVOICE_DT NVARCHAR(25) OPEN AddnewPO FETCH NEXT FROM AddnewPO INTO @ADD_PO_ID, @PO_ID, @PO_CODE--, @INVOICE_NO, @INVOICE_DT WHILE @@FETCH_STATUS = 0 BEGIN EXEC SYS_CodeMasters_Gen 'ASS_ADDNEW_PO', @ADD_PO_ID out INSERT INTO ASS_ADDNEW_PO VALUES (@ADD_PO_ID,@l_ADDNEW_ID, @PO_ID, @PO_CODE, '',NULL, '',@p_INVOICE_SYMPOL) FETCH NEXT FROM AddnewPO INTO @ADD_PO_ID, @PO_ID, @PO_CODE--, @INVOICE_NO, @INVOICE_DT END CLOSE AddnewPO DEALLOCATE AddnewPO --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), @QUANTITY int , @GD_PO_ID VARCHAR(15) 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 EXEC SYS_CodeMasters_Gen 'ASS_ADDNEW_GD', @ADD_GD_ID out IF @INVOICE_DT = '' SET @INVOICE_DT = NULL INSERT INTO ASS_ADDNEW_GD VALUES (@ADD_GD_ID,@l_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 -- GIANT Insert to table PL_PROCESS --INSERT INTO dbo.PL_PROCESS -- ( -- REQ_ID, -- PROCESS_ID, -- CHECKER_ID, -- APPROVE_DT, -- PROCESS_DESC, -- NOTES -- ) -- VALUES -- ( @l_ADDNEW_ID, -- 'INSERT', -- @p_MAKER_ID, -- GETDATE(), -- N'Thêm mới phiếu nhập kho thành công' , -- N'Đơn vị tạo phiếu nhập kho' -- ) COMMIT TRANSACTION SELECT '0' as Result, @l_ADDNEW_ID ADDNEW_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ADDNEW_ID, '' ErrorDesc RETURN '-1' End END TRY BEGIN CATCH ROLLBACK TRANSACTION SELECT '-1' as Result, '' ADDNEW_ID, ERROR_MESSAGE() ErrorDesc RETURN '-1' END CATCH 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