/*
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