DECLARE @RC int
DECLARE @O_iErrorState int
DECLARE @oErrString varchar(255)
DECLARE @I_sCNTRLTYP SMALLINT,
@DocType INT,
--0 - Next Voucher Number
--1 - Next Payment Number
--2 - Next Alignment Number
@I_vVCHNUMWK char(17) ,
@dt as date = FORMAT(GETDATE(),'MM/dd/yyyy'),
@Sequence int = 16384
SELECT
@I_vVCHNUMWK = '',
@I_sCNTRLTYP = 0,
@O_iErrorState = '',
@O_iErrorState = 0,
@oErrString = ''
EXECUTE @RC = taGetPMNextVoucherNumber
@I_vVCHNUMWK OUTPUT,
@I_sCNTRLTYP,
@O_iErrorState OUTPUT
SELECT @I_vVCHNUMWK AS VCHRNMBR, @oErrString AS ErrorString
select
@O_iErrorState = '',
@O_iErrorState = 0
BEGIN TRY
BEGIN TRAN
-- be carefull not to exit this or the transaction will not get committed, you'll lock the table up
exec taPMDistribution
@I_vDOCTYPE = 1,
@I_vVCHRNMBR = @I_vVCHNUMWK,
@I_vVENDORID = 'ACETRAVE0001 ',
@I_vDSTSQNUM = @Sequence,
@I_vDISTTYPE = 6, --1=Cash;
--2=Pay;
--3=Avail;
--4=Taken;
--5=Fnchg;
--6=Purch;
--7=Trade;
--8=Misc;
--9=Freight;
--10=Taxes;
--11=Write;
--12=Other;
--13=Gst;
--14=Wh;
--15=Unit;
--16=Round
--@I_vACTNUMST = 0,
@I_vACTINDX = 270, --Use one or the other
@I_vDEBITAMT = 50,
@I_vCRDTAMNT = 0,
@O_iErrorState = @O_iErrorState OUT,
@oErrString = @oErrString OUT
SELECT @Sequence = @Sequence + 16384
exec taPMDistribution
@I_vDOCTYPE = 1,
@I_vVCHRNMBR = @I_vVCHNUMWK,
@I_vVENDORID = 'ACETRAVE0001 ',
@I_vDSTSQNUM = @Sequence,
@I_vDISTTYPE = 10,
--@I_vACTNUMST = 0,
@I_vACTINDX = 167, --Use one or the other
@I_vDEBITAMT = 50,
@I_vCRDTAMNT = 0,
@O_iErrorState = @O_iErrorState OUT,
@oErrString = @oErrString OUT
SELECT @Sequence = @Sequence + 16384
exec taPMDistribution
@I_vDOCTYPE = 1,
@I_vVCHRNMBR = @I_vVCHNUMWK,
@I_vVENDORID = 'ACETRAVE0001 ',
@I_vDSTSQNUM = @Sequence,
@I_vDISTTYPE = 2,
--@I_vACTNUMST = 0,
@I_vACTINDX = 35, --Use one or the other
@I_vDEBITAMT = 0,
@I_vCRDTAMNT = 50,
@O_iErrorState = @O_iErrorState OUT,
@oErrString = @oErrString OUT
if @O_iErrorState = 0 begin
exec taPMTransactionInsert
@I_vVCHNUMWK = @I_vVCHNUMWK,
@I_vDOCNUMBR = @I_vVCHNUMWK, --this is the vendor's invoice number, it has to be unique. We'll use the voucher number to ensure that... but normally it would be different
@I_vDOCTYPE = '1',
@I_vDOCAMNT = 50,
@I_vCHRGAMNT = 50,
@I_vPRCHAMNT = 50,
@I_vDOCDATE = @dt,
@I_vCREATEDIST = 0, --0 = MANUAL, 1 = AUTOMATIC
@i_vBACHNUMB = 'PAYABLES BATCH ',
@I_vVENDORID = 'ACETRAVE0001 ',
@O_iErrorState = @O_iErrorState OUT,
@oErrString = @oErrString OUT
end
SELECT @oErrString, @O_iErrorState
SELECT * FROM DYNAMICS..TAERRORCODE where errorcode = @O_iErrorState
select * from pm10000 where VCHRNMBR = @I_vVCHNUMWK
select * from pm10100 where VCHRNMBR = @I_vVCHNUMWK
COMMIT TRAN
END TRY
BEGIN CATCH
--find out what went wrong
SELECT
ERROR_NUMBER() AS ErrorNumber,
ERROR_SEVERITY() AS ErrorSeverity,
ERROR_STATE() AS ErrorState,
ERROR_PROCEDURE() AS ErrorProcedure,
ERROR_LINE() AS ErrorLine,
ERROR_MESSAGE() AS ErrorMessage;
--roll everything back
ROLLBACK TRAN
END CATCH