/* SELECT * FROM TR_PO_DETAIL where PO_ID = 'TRPM00000000052' SELECT * FROM TR_PO_MASTER WHERE PO_ID = 'TRPM00000000052' SELECT * FROM TR_PO_PAYMENT WHERE PO_ID = 'TRPM00000000052' SELECT * FROM TR_PO_PAYMENT [TR_PO_MASTER_Upd] 'TRPM00000000052',1,'','MUA HANG DOT 1','','','','','11/11/2013','11/11/2013',0,'','12/12/2013','12/12/2013','','','','','','','', ' TRPD00000000156 PLT0000001 CMG00001 Dien giai CMU00001 2 49500000 49500000 N 30/10/2011 N 30000000 29/11/2013 00001 GHI CHU MANG TINH CHAT MINH HOA ' ,NULL */ /* declare @p24 xml set @p24=convert(xml,N'TRPD00000000325PLM000000000144PLT000000000030GOO000000000185CMU000000000150127000002700000001/01/2014CTT001/01/2014TRPD00000000326PLM000000000144PLT000000000031GOO000000000186CMU000000000150116000001600000002/01/2014CTT002/01/1900TRPD00000000327PLM000000000144PLT000000000033GOO000000000188CMU000000000150115000001500000004/01/2014CTT003/01/1900TRPD00000000328PLM000000000144PLT000000000035GOO000000000190CMU000000000150125000002500000005/01/2014CTT005/01/1900') declare @p25 xml set @p25=convert(xml,N'118/10/20131008300000') declare @p26 int set @p26=0 exec sp_executesql N'EXEC @RETURN_VALUE = [dbo].[TR_PO_MASTER_Upd] @p_PO_ID = @p0, @P_PO_TYPE = @p1, @p_PO_CODE = @p2, @p_PO_NAME = @p3, @p_CONTRACT_ID = @p4, @p_SUP_ID = @p5, @p_SUP_NAME = @p6, @p_SUP_ADDR = @p7, @p_INPUT_DT = @p8, @p_PAYMENT_DT = @p9, @p_TOTAL_AMT = @p10, @p_REQ_DOC_ID = @p11, @p_DELIVERY_DT = @p12, @p_PAYAPP_DT = @p13, @p_NOTES = @p14, @p_RECORD_STATUS = @p15, @p_MAKER_ID = @p16, @p_CREATE_DT = @p17, @p_AUTH_STATUS = @p18, @p_CHECKER_ID = @p19, @p_APPROVE_DT = @p20, @P_LISTASSET = @p21, @P_LISTPAYMENT = @p22',N'@p0 varchar(8000),@p1 int,@p2 varchar(8000),@p3 nvarchar(4000),@p4 varchar(8000),@p5 varchar(8000),@p6 nvarchar(4000),@p7 nvarchar(4000),@p8 varchar(8000),@p9 varchar(8000),@p10 decimal(18,0),@p11 varchar(8000),@p12 varchar(8000),@p13 varchar(8000),@p14 nvarchar(4000),@p15 varchar(8000),@p16 varchar(8000),@p17 varchar(8000),@p18 varchar(8000),@p19 varchar(8000),@p20 varchar(8000),@p21 xml,@p22 xml,@RETURN_VALUE int output',@p0='TRPM00000000103',@p1=1,@p2='PO5555',@p3=N'Mua sam TB VP',@p4='TRC000000000035',@p5=NULL,@p6=N'',@p7=N'',@p8='15/10/2013',@p9='01/01/1900',@p10=8300000,@p11='FFFFF',@p12='01/10/2013',@p13='10/10/2013',@p14=NULL,@p15='1',@p16='taidt',@p17='15/10/2013',@p18='U',@p19=NULL,@p20='01/01/1900',@p21=@p24,@p22=@p25,@RETURN_VALUE=@p26 output */ ALTER PROCEDURE [dbo].[TR_PO_MASTER_Upd] @p_PO_ID varchar(15) = NULL, @P_PO_TYPE INT = NULL, @p_PO_CODE varchar(15) = NULL, @p_PO_NAME nvarchar(200) = NULL, @p_CONTRACT_ID varchar(15) = NULL, @p_SUP_ID varchar(15) = NULL, @p_SUP_NAME nvarchar(200) = NULL, @p_SUP_ADDR nvarchar(200) = NULL, @p_INPUT_DT VARCHAR(20) = NULL, @p_PAYMENT_DT VARCHAR(20) = NULL, @p_TOTAL_AMT decimal(18) = NULL, @p_REQ_DOC_ID varchar(15) = NULL, @p_DELIVERY_DT VARCHAR(20) = NULL, @p_PAYAPP_DT VARCHAR(20) = NULL, @p_NOTES nvarchar(1000) = NULL, @p_RECORD_STATUS varchar(1) = NULL, @p_MAKER_ID varchar(15) = NULL, @p_CREATE_DT VARCHAR(20) = NULL, @p_AUTH_STATUS varchar(50) = NULL, @p_CHECKER_ID varchar(15) = NULL, @p_APPROVE_DT VARCHAR(20) = NULL, @p_TR_REQ_ID VARCHAR(20) = NULL, @p_TR_REQ_CODE VARCHAR(20)= NULL, @P_LISTASSET XML = NULL, @P_LISTPAYMENT XML = NULL, @P_LISTROLE XML = NULL, @p_BRANCH_ID varchar(15) = null, @p_IS_CLOSED VARCHAR(1) = NULL AS DECLARE @REF_CODE VARCHAR(15) = NULL, @PDN_TT VARCHAR(15) = NULL SET @REF_CODE = ( SELECT TOP 1 B.REQ_PAY_CODE FROM TR_REQ_ADVANCE_DT A INNER JOIN TR_REQ_ADVANCE_PAYMENT B ON A.REQ_PAY_ID = B.REQ_PAY_ID WHERE A.REF_ID =@p_PO_ID AND (B.AUTH_STATUS_KT <>'A' OR B.AUTH_STATUS_KT IS NULL) ) --- TIM KIEM XEM PO NAY CO DUOC PHEP THANH TOAN HAY KHONG SET @PDN_TT = ( SELECT TOP 1 B.REQ_PAY_CODE FROM TR_REQ_ADVANCE_DT A INNER JOIN TR_REQ_PAYMENT B ON A.REQ_PAY_ID = B.REQ_PAY_ID WHERE A.REF_ID =@p_CONTRACT_ID AND (B.AUTH_STATUS_KT <>'A' OR B.AUTH_STATUS_KT IS NULL) ) IF(@p_IS_CLOSED ='Y' AND @REF_CODE IS NOT NULL) BEGIN --ROLLBACK TRANSACTION SELECT '-1' Result, @p_PO_ID AS PO_ID, N'PO đang được thực hiện tạm ứng với số phiếu: '+@REF_CODE AS ErrorDesc RETURN '-1' END IF(@p_IS_CLOSED ='Y' AND @PDN_TT IS NOT NULL) BEGIN --ROLLBACK TRANSACTION SELECT '-1' Result, @p_PO_ID AS PO_ID, N'PO đang được thực hiện thanh toán với số phiếu: '+@PDN_TT AS ErrorDesc RETURN '-1' END IF EXISTS(SELECT * FROM TR_PO_MASTER WHERE [PO_CODE] = @p_PO_CODE AND [PO_ID] <> @p_PO_ID) BEGIN SELECT ErrorCode Result, '' PO_ID, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'PO-00002' RETURN '0' END --- 21052020 KIEM TRA XEM NEU PYCMS DA TON TAI HAY CHUA IF((SELECT COUNT(*) FROM TR_REQUEST_DOC_DT WHERE REQ_DOC_ID =@p_REQ_DOC_ID)=1) BEGIN IF(EXISTS(SELECT * FROM TR_PO_MASTER WHERE REQ_DOC_ID =@p_REQ_DOC_ID AND AUTH_STATUS IN ('E','U','A') AND PO_ID <>@p_PO_ID)) BEGIN ROLLBACK TRANSACTION SELECT '-1' Result, @p_PO_ID AS PO_ID, N'Phiếu yêu cầu mua sắm số :'+(SELECT REQ_CODE FROM TR_REQUEST_DOC WHERE REQ_ID =@p_REQ_DOC_ID)+N' đã được link tới PO có số: '+(SELECT TOP 1 PO_CODE FROM TR_PO_MASTER WHERE REQ_DOC_ID =@p_REQ_DOC_ID) AS ErrorDesc RETURN '-1' END END ------ Declare @hdoc INT Exec sp_xml_preparedocument @hdoc Output,@P_LISTASSET DECLARE AssetDetail CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/AssetDetail',2) WITH ( PD_ID VARCHAR(15), PLAN_ID varchar(15) , TRADE_ID varchar(15) , REQ_DT_ID VARCHAR(15), GOODS_ID varchar(15) , [DESCRIPTION] nvarchar(500), UNIT_ID varchar(15) , QUANTITY decimal(18) , PRICE decimal(18,2) , TOTAL_AMT decimal(18,2), IS_DELIVERY varchar(1) , DELIVERY_DT VARCHAR(20), PAYMENT_STATUS varchar(4), AMOUNT_PAID decimal(18) , PAID_DT VARCHAR(20) , INVOICENO varchar(1000), NOTES nvarchar(1000), RECEIVE_BRANCH varchar(15), RECEIVE_ADDR nvarchar(1000), RECEIVE_PERSON nvarchar(500), RECEIVE_TEL varchar(100), EXP_DELIVERY_DT varchar(20), GOODS_NAME NVARCHAR(500), INVOICE_DT VARCHAR(20), --THIEUVQ 100415 THEM LOAI HANG HOA THUC TE GOODSTYPE_REAL VARCHAR(15), GOODSTYPE_REAL_NAME VARCHAR(15), --THIEUVQ 13092016 THEM VAT, CONTRACT_DT VAT DECIMAL(18,2), PRICE_VAT DECIMAL(18,0), CONTRACT_DT VARCHAR(15), CURRENCY VARCHAR(15), RATE INT, TOTAL_AMT_FN DECIMAL(18,2) ) OPEN AssetDetail Exec sp_xml_preparedocument @hdoc Output,@P_LISTPAYMENT DECLARE PaymentDetail CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/PaymentDetail',2) WITH ( PAY_ID VARCHAR(15), PAY_PHASE varchar(15), EXPECTED_DT VARCHAR(20), [PERCENT] decimal(18), [AMOUNT] decimal(18), NOTES nvarchar(1000), CURRENCY VARCHAR(15), RATE INT, TOTAL_AMT DECIMAL(18,2) ) OPEN PaymentDetail PRINT 'PASS KHOI TAO' --Nhom user gui mail (DAO EDIT) Exec sp_xml_preparedocument @hdoc Output,@P_LISTROLE DECLARE LISTROLE CURSOR FOR SELECT * FROM OPENXML(@hDoc,'/Root/LISTROLE',2) WITH ( NOTIFI_ID VARCHAR(15), TL_NAME varchar(15), EDITOR_DT VARCHAR(20), EDITOR_ID VARCHAR(15), NOTES nvarchar(1000) ) OPEN LISTROLE BEGIN TRANSACTION IF @p_DELIVERY_DT = '' SET @p_DELIVERY_DT = NULL IF @p_PAYAPP_DT = '' SET @p_PAYAPP_DT = NULL --insert master UPDATE TR_PO_MASTER SET [PO_TYPE] = @P_PO_TYPE, [PO_CODE] = @p_PO_CODE,[PO_NAME] = @p_PO_NAME, [CONTRACT_ID] = @p_CONTRACT_ID,[SUP_ID] = @p_SUP_ID,[SUP_NAME] = @p_SUP_NAME,[SUP_ADDR] = @p_SUP_ADDR, [INPUT_DT] = CONVERT(DATETIME, @p_INPUT_DT, 103),[PAYMENT_DT] = CONVERT(DATETIME, @p_PAYMENT_DT, 103), [TOTAL_AMT] = @p_TOTAL_AMT,[REQ_DOC_ID] = @p_TR_REQ_ID,[DELIVERY_DT] = CONVERT(DATETIME, @p_DELIVERY_DT, 103), [PAYAPP_DT] = CONVERT(DATETIME, @p_PAYAPP_DT, 103),[NOTES] = @p_NOTES,[RECORD_STATUS] = '1', [MAKER_ID] = @p_MAKER_ID,[CREATE_DT] = CONVERT(DATETIME, @p_CREATE_DT, 103),[AUTH_STATUS] = 'E', [CHECKER_ID] = @p_CHECKER_ID,[APPROVE_DT] = CONVERT(DATETIME, @p_APPROVE_DT, 103), BRANCH_ID = @p_BRANCH_ID WHERE PO_ID= @p_PO_ID IF @@Error <> 0 GOTO ABORT PRINT 'INSERT MASTER SUCCESS' UPDATE dbo.TR_PO_MASTER_TEMP SET TR_REQ_ID=@p_TR_REQ_ID,TR_REQ_CODE=@p_TR_REQ_CODE WHERE PO_ID=@p_PO_ID --insert asset detail tương đương như NỘI DUNG trong bảng contract detail Declare @PAY_ID VARCHAR(15), @PD_ID VARCHAR(15), @PLAN_ID varchar(15), @TRADE_ID varchar(15), @REQ_DT_ID VARCHAR(15), @GOODS_ID varchar(15), @DESCRIPTION nvarchar(500), @UNIT_ID varchar(15), @QUANTITY decimal(18), @PRICE decimal(18,2), @TOTAL_AMT decimal(18,2), @IS_DELIVERY varchar(1), @DELIVERY_DT VARCHAR(20), @PAYMENT_STATUS varchar(4), @AMOUNT_PAID decimal(18), @PAID_DT VARCHAR(20), @INVOICENO varchar(20), @NOTES nvarchar(1000), @PO_ID varchar(15) = NULL, @PAY_PHASE VARCHAR(20) = NULL, @EXPECTED_DT VARCHAR(20) = NULL, @PERCENT decimal(18) = NULL, @AMOUNT decimal(18) = NULL, @RECEIVE_BRANCH varchar(15)=NULL, @RECEIVE_ADDR nvarchar(1000)=NULL, @RECEIVE_PERSON nvarchar(500)=NULL, @RECEIVE_TEL varchar(100)=NULL, @EXP_DELIVERY_DT varchar(20) = NULL, @GOODS_NAME NVARCHAR(500) = NULL, @INVOICE_DT VARCHAR(20), @GOODSTYPE_REAL VARCHAR(15) = NULL, @GOODSTYPE_REAL_NAME VARCHAR(15) = NULL, @VAT DECIMAL(18,2), @PRICE_VAT DECIMAL(18,0), @CONTRACT_DT VARCHAR(15), --DAO MOI THEM @NOTIFI_ID VARCHAR(15), @TL_NAME VARCHAR(15), @EDITOR_DT VARCHAR(20), @EDITOR_ID VARCHAR(15), @NOTES_ROLE nvarchar(1000), @CURRENCY VARCHAR(15), @RATE INT, @TOTAL_AMT_FN DECIMAL(18,2) DECLARE @l_GOODSTYPE_ID VARCHAR(15) DELETE FROM TR_PO_DETAIL WHERE PO_ID = @P_PO_ID FETCH NEXT FROM AssetDetail INTO @PD_ID,@PLAN_ID,@TRADE_ID,@REQ_DT_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY, @PRICE,@TOTAL_AMT,@IS_DELIVERY,@DELIVERY_DT,@PAYMENT_STATUS,@AMOUNT_PAID,@PAID_DT, @INVOICENO,@NOTES, @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL,@EXP_DELIVERY_DT,@GOODS_NAME, @INVOICE_DT, @GOODSTYPE_REAL,@GOODSTYPE_REAL_NAME,@VAT,@PRICE_VAT,@CONTRACT_DT,@CURRENCY,@RATE,@TOTAL_AMT_FN WHILE @@FETCH_STATUS = 0 BEGIN --if( NOT EXISTS (SELECT * FROM PL_MASTER A WHERE A.PLAN_ID = @PLAN_ID)) --BEGIN -- SELECT ErrorCode Result, ErrorDesc ErrorDesc FROM SYS_ERROR WHERE ErrorCode = 'TR-00002' -- GOTO ABORT --END IF(LEN(@PD_ID) = 0) BEGIN EXEC SYS_CodeMasters_Gen 'TR_PO_DETAIL', @PD_ID out IF @PD_ID ='' OR @PD_ID IS NULL GOTO ABORT END IF(@DELIVERY_DT = '') SET @DELIVERY_DT = NULL IF(@PAID_DT = '') SET @PAID_DT = NULL IF(@INVOICE_DT = '') SET @INVOICE_DT = NULL IF @EXP_DELIVERY_DT = '' SET @EXP_DELIVERY_DT = NULL /***THIEUVQ THEM KIEM TRA VA LUU THONG TIN LOAI HANG HOA THUC TE***/ --BEGIN --CHUA CO LOAI HANG HOA THI THEM MOI IF @GOODSTYPE_REAL IS NULL OR @GOODSTYPE_REAL = '' BEGIN --NEU TON TAI THI LAY RA ID SET @GOODSTYPE_REAL = (SELECT TOP 1 GD_RETYPE_ID FROM CM_GOODSTYPE_REAL WHERE [TYPE_NAME] = @GOODSTYPE_REAL_NAME) --NEU CHUA CO THI THEM MOI IF @GOODSTYPE_REAL IS NULL OR @GOODSTYPE_REAL = '' BEGIN EXEC SYS_CodeMasters_Gen 'CM_GOODSTYPE_REAL', @l_GOODSTYPE_ID OUT IF @l_GOODSTYPE_ID='' OR @l_GOODSTYPE_ID IS NULL GOTO ABORT INSERT INTO CM_GOODSTYPE_REAL VALUES (@l_GOODSTYPE_ID, @l_GOODSTYPE_ID, @GOODSTYPE_REAL_NAME, '', '1', @p_MAKER_ID,CONVERT(DATETIME, @p_CREATE_DT, 103),'A',@p_MAKER_ID,CONVERT(DATETIME, @p_CREATE_DT, 103)) IF @@ERROR <> 0 GOTO ABORT SET @GOODSTYPE_REAL = @l_GOODSTYPE_ID END END --END INSERT INTO TR_PO_DETAIL([PD_ID],[PO_ID],[PLAN_ID],[TRADE_ID],[REQ_DT_ID],[GOODS_ID],[DESCRIPTION],[UNIT_ID],[QUANTITY],[PRICE],[TOTAL_AMT],[IS_DELIVERY],[DELIVERY_DT], [PAYMENT_STATUS],[AMOUNT_PAID],[PAID_DT],[INVOICENO],[NOTES], RECEIVE_BRANCH, RECEIVE_ADDR, RECEIVE_PERSON, RECEIVE_TEL,[RECORD_STATUS],[MAKER_ID],[CREATE_DT], [AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],EXP_DELIVERY_DT,GOODS_NAME,INVOICE_DT,GOODSTYPE_REAL,VAT,PRICE_VAT,CONTRACT_DT,CURRENCY,RATE,TOTAL_AMT_FN) VALUES(@PD_ID ,@p_PO_ID ,@PLAN_ID ,@TRADE_ID,@REQ_DT_ID ,@GOODS_ID,@DESCRIPTION ,@UNIT_ID ,@QUANTITY ,@PRICE ,@TOTAL_AMT , @IS_DELIVERY ,CONVERT(DATETIME, @DELIVERY_DT, 103) ,@PAYMENT_STATUS ,@AMOUNT_PAID , CONVERT(DATETIME, @PAID_DT, 103) ,@INVOICENO ,@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),CONVERT(DATETIME, @EXP_DELIVERY_DT, 103), @GOODS_NAME, CONVERT(DATETIME, @INVOICE_DT, 103),@GOODSTYPE_REAL,@VAT,@PRICE_VAT,@CONTRACT_DT,ISNULL(@CURRENCY,'VND'),ISNULL(@RATE,1) ,@TOTAL_AMT*ISNULL(@RATE,1) ) IF @@ERROR <> 0 GOTO ABORT -- next Group_Id FETCH NEXT FROM AssetDetail INTO @PD_ID,@PLAN_ID,@TRADE_ID,@REQ_DT_ID,@GOODS_ID,@DESCRIPTION,@UNIT_ID,@QUANTITY, @PRICE,@TOTAL_AMT,@IS_DELIVERY,@DELIVERY_DT,@PAYMENT_STATUS,@AMOUNT_PAID,@PAID_DT, @INVOICENO,@NOTES, @RECEIVE_BRANCH, @RECEIVE_ADDR, @RECEIVE_PERSON, @RECEIVE_TEL, @EXP_DELIVERY_DT,@GOODS_NAME,@INVOICE_DT, @GOODSTYPE_REAL,@GOODSTYPE_REAL_NAME,@VAT,@PRICE_VAT,@CONTRACT_DT,@CURRENCY,@RATE,@TOTAL_AMT_FN END --insert payment detail DELETE FROM TR_PO_PAYMENT WHERE PO_ID = @p_PO_ID FETCH NEXT FROM PaymentDetail INTO @PAY_ID,@PAY_PHASE,@EXPECTED_DT,@PERCENT,@AMOUNT,@NOTES,@CURRENCY,@RATE,@TOTAL_AMT_FN WHILE @@FETCH_STATUS = 0 BEGIN EXEC SYS_CodeMasters_Gen 'TR_PO_PAYMENT', @PAY_ID out IF @PAY_ID ='' OR @PAY_ID IS NULL GOTO ABORT --PRINT @PAY_ID --IF(LEN(@PAY_ID) = 0) --BEGIN -- EXEC SYS_CodeMasters_Gen 'TR_PO_PAYMENT', @PAY_ID out -- IF @PAY_ID ='' OR @PAY_ID IS NULL GOTO ABORT --END IF @EXPECTED_DT = '' SET @EXPECTED_DT = NULL INSERT INTO TR_PO_PAYMENT([PAY_ID],[PO_ID],[PAY_PHASE],[EXP_DT],[PERCENT],[AMOUNT],[NOTES],[RECORD_STATUS],[MAKER_ID],[CREATE_DT],[AUTH_STATUS],[CHECKER_ID],[APPROVE_DT],CURRENCY,RATE,TOTAL_AMT) VALUES(@PAY_ID ,@p_PO_ID ,@PAY_PHASE ,CONVERT(DATETIME, @EXPECTED_DT, 103) ,@PERCENT ,@AMOUNT ,@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),ISNULL(@CURRENCY,'VND'),ISNULL(@RATE,1) ,@AMOUNT*ISNULL(@RATE,1)) FETCH NEXT FROM PaymentDetail INTO @PAY_ID,@PAY_PHASE,@EXPECTED_DT,@PERCENT,@AMOUNT,@NOTES,@CURRENCY,@RATE,@TOTAL_AMT_FN END CLOSE AssetDetail DEALLOCATE AssetDetail CLOSE PaymentDetail DEALLOCATE PaymentDetail ---INSERT NHOM QUYEN USER THONG BAO (DAO-EDIT) DELETE FROM TL_ROLE_NOTIFICATION WHERE PO_ID=@p_PO_ID FETCH NEXT FROM LISTROLE INTO @NOTIFI_ID, @TL_NAME, @EDITOR_DT, @EDITOR_ID, @NOTES_ROLE WHILE @@FETCH_STATUS = 0 BEGIN IF(LEN(@NOTIFI_ID)=0) EXEC SYS_CodeMasters_Gen 'TL_ROLE_NOTIFICATION', @NOTIFI_ID out IF @NOTIFI_ID='' OR @NOTIFI_ID IS NULL GOTO ABORT 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]) VALUES (@NOTIFI_ID ,'' ,'' ,'PO' ,@p_PO_ID ,@TL_NAME ,@p_BRANCH_ID ,'1' ,'U' ,@EDITOR_ID ,CONVERT(DATETIME, @EDITOR_DT, 103) ,@NOTES_ROLE) IF @@ERROR <> 0 GOTO ABORT FETCH NEXT FROM LISTROLE INTO @NOTIFI_ID, @TL_NAME, @EDITOR_DT, @EDITOR_ID, @NOTES_ROLE END CLOSE LISTROLE DEALLOCATE LISTROLE --- BAT DAU CAP NHAT AUTH_STATUS ='U' NEU BAM GUI PHE DUYET IF(@p_RECORD_STATUS ='U') BEGIN UPDATE TR_PO_MASTER SET AUTH_STATUS ='U' WHERE PO_ID =@p_PO_ID END COMMIT TRANSACTION IF(@p_RECORD_STATUS ='U') BEGIN -- INSERT VAO LOG INSERT INTO dbo.PL_PROCESS ( REQ_ID, PROCESS_ID, CHECKER_ID, APPROVE_DT, PROCESS_DESC,NOTES ) VALUES ( @p_PO_ID, -- REQ_ID - varchar(15) 'SEND', -- PROCESS_ID - varchar(10) @p_MAKER_ID, -- CHECKER_ID - varchar(15) GETDATE(), -- APPROVE_DT - datetime N'Nhân viên gửi phê duyệt phiếu thành công' ,N'Gửi phê duyệt') SELECT '2' as Result, @p_PO_ID PO_ID, N'PO số: '+ @p_PO_CODE +N' đã được gửi phê duyệt thành công. Vui lòng đợi cấp có thẩm quyền phê duyệt' ErrorDesc RETURN '2' END ELSE BEGIN SELECT '0' as Result, @p_PO_ID PO_ID, N'PO số: '+ @p_PO_CODE +N' đã được cập nhật dữ liệu thành công. Bạn có thể bấm gửi phê duyệt' ErrorDesc RETURN '0' END ABORT: BEGIN CLOSE AssetDetail DEALLOCATE AssetDetail CLOSE PaymentDetail DEALLOCATE PaymentDetail CLOSE LISTROLE DEALLOCATE LISTROLE ROLLBACK TRANSACTION SELECT '-1' AS RESULT RETURN '-1' End --SELECT * FROM TR_CONTRACT_DT --SELECT * FROM TR_CONTRACT_PAYMENT --SELECT * FROM TR_CONTRACT