ALTER PROC [dbo].[CM_ACCOUNT_PAY_Upd] @p_REF_ID VARCHAR(15) = NULL, @p_ACC_TYPE VARCHAR(150) = NULL, @p_ACC_NO VARCHAR(150) = NULL, @p_ACC_NAME NVARCHAR(150) = NULL, @p_MAKER_ID VARCHAR(15)= NULL, @p_TK_GL VARCHAR(100)= NULL, @p_TK_GL_NAME NVARCHAR(1000)= NULL, @p_EDITOR_ID VARCHAR(15)= NULL AS BEGIN TRANSACTION -- CHUYEN THANH CHU IN HOA KHONG DAU SET @p_ACC_NAME = UPPER(dbo.fChuyenCoDauThanhKhongDau(@p_ACC_NAME)) SET @p_TK_GL_NAME = UPPER(dbo.fChuyenCoDauThanhKhongDau(@p_TK_GL_NAME)) IF(@p_TK_GL ='' OR @p_TK_GL IS NULL) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ACC_ID, N'Tài khoản GL không được phép để trống' ErrorDesc RETURN '-1' END IF(@p_TK_GL_NAME ='' OR @p_TK_GL_NAME IS NULL) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ACC_ID, N'Tên tài khoản GL không được phép để trống' ErrorDesc RETURN '-1' END IF(@p_ACC_NO ='' OR @p_ACC_NO IS NULL) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ACC_ID, N'Số tài khoản không được phép để trống' ErrorDesc RETURN '-1' END IF(@p_ACC_NAME ='' OR @p_ACC_NAME IS NULL) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ACC_ID, N'Tên tài khoản không được phép để trống' ErrorDesc RETURN '-1' END IF(@p_ACC_TYPE ='ADV_PAY') BEGIN IF (@p_REF_ID IS NULL OR @p_REF_ID = '') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ACC_ID, N'Người đề nghị tạm ứng không được phép để trống' ErrorDesc RETURN '-1' END IF (LEN(@p_ACC_NO) < 13 OR LEN(@p_ACC_NO) > 13) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ACC_ID, N'Tài khoản tạm ứng nội bộ không hợp lệ: Tài khoản tạm ứng phải đủ 13 ký tự' ErrorDesc RETURN '-1' END IF (SUBSTRING(@p_ACC_NO,7,1) <> '8') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ACC_ID, N'Tài khoản tạm ứng nội bộ không hợp lệ: Ký tự thứ 7 phải là số 8' ErrorDesc RETURN '-1' END UPDATE CM_ACCOUNT_PAY SET ACC_NAME =@p_ACC_NAME, ACC_NUM =@p_ACC_NO,EDITOR_DT = GETDATE(), EDITOR_ID =@p_EDITOR_ID,AUTH_STATUS ='U' WHERE REF_ID =@p_REF_ID --- UPDATE TOAN BO CAC HACH TOAN CO SU DUNG TAI KHOAN TAM UNG --UPDATE TR_REQ_ADVANCE_PAYMENT SET RECEIVER_DEBIT =@p_ACC_NO WHERE REF_ID =@p_REF_ID AND REQ_TYPE ='I' --UPDATE TR_REQ_PAY_ENTRIES SET ACCT= @p_ACC_NO WHERE REQ_PAY_ID IN (SELECT REQ_PAY_ID FROM TR_REQ_ADVANCE_PAYMENT WHERE REF_ID =@p_REF_ID AND REQ_TYPE ='I') END ELSE IF(@p_ACC_TYPE ='CASA') BEGIN IF (LEN(@p_ACC_NO) < 13 OR LEN(@p_ACC_NO) > 13 AND @p_ACC_TYPE ='CASA') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ACC_ID, N'Tài khoản CASA không hợp lệ: Tài khoản CASA phải đủ 13 ký tự' ErrorDesc RETURN '-1' END --KIEM TRA XEM DA TON TAI TAM UNG NOI BO NAO SU DUNG SO TAI KHOAN TAM UNG CUA NHAN VIEN NAY HAY KHONG IF(EXISTS(SELECT * FROM TR_REQ_PAY_ENTRIES WHERE AUTH_STATUS_KT ='A')) BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ACC_ID, N'Tài khoản ' + @p_ACC_NO + N' đã được sử dụng để hạch toán (đã bắn bút toán tạm ứng vào core)' ErrorDesc RETURN '-1' END ELSE BEGIN UPDATE CM_ACCOUNT SET ACC_NAME =@p_ACC_NAME,AUTH_STATUS='U', TK_GL =@p_TK_GL,TK_GL_NAME =@p_TK_GL_NAME WHERE ACC_NO =@p_ACC_NO END END ELSE BEGIN /* IF (LEN(@p_ACC_NO) < 9 OR LEN(@p_ACC_NO) > 9 AND @p_ACC_TYPE ='GL') BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ACC_ID, N'Tài khoản GL không hợp lệ: Tài khoản GL phải đủ 9 ký tự' ErrorDesc RETURN '-1' END */ IF(EXISTS(SELECT * FROM CM_ACCOUNT WHERE ACC_NO =@p_ACC_NO)) BEGIN print 1 END ELSE BEGIN INSERT INTO CM_ACCOUNT(ACC_NO,ACC_NAME,TK_GL,TK_GL_NAME,MAKER_ID,CREATE_DT,AUTH_STATUS,EDITOR_ID,EDITOR_DT,CHECKER_ID,APPROVE_DT) VALUES (@p_ACC_NO,@p_ACC_NAME,@p_TK_GL,@p_TK_GL_NAME,@p_MAKER_ID,GETDATE(),'U',NULL,NULL,NULL,NULL) END END -- UPDATE CHUNG UPDATE CM_ACCOUNT SET TK_GL =@p_TK_GL, TK_GL_NAME = @p_TK_GL_NAME WHERE ACC_NO =@p_ACC_NO COMMIT TRANSACTION SELECT '0' as Result, '' ACC_ID, '' ErrorDesc RETURN '0' ABORT: BEGIN ROLLBACK TRANSACTION SELECT '-1' as Result, '' ACC_ID, '' ErrorDesc RETURN '-1' END