if exists (select * from sysobjects where id = object_id('dbo.PostDepInv') and sysstat & 0xf = 4)
	drop procedure dbo.PostDepInv
GO

CREATE PROCEDURE dbo.PostDepInv @InvId int AS
declare @InvNumber     int
declare @logarea        int
declare @InvCount       int
declare @depotno        varchar(5)
declare @loginind    int
BEGIN TRAN PostDepInv
/*   Get the next system invoice number  */
SELECT @logarea = (SELECT Login FROM tblInvoice_wrk WHERE InvNo = @InvId) 
SELECT @InvNumber = (SELECT MAX(InvNo) FROM tblInvoice WHERE Login = @logarea)
IF @InvNumber = NULL SELECT @InvNumber = 0 
select @InvNumber = @InvNumber + 1
SELECT @InvCount = (SELECT MAX(InvCounter) FROM tblInvoice)
IF @InvCount = NULL SELECT @InvCount = 0 
select @InvCount = @InvCount + 1
/* Update INVOICE NUMBER */
UPDATE tblInvoice_wrk SET InvNo = @InvNumber  WHERE InvNo  = @InvId  
UPDATE tblInvoice_wrk SET InvCounter = @InvCount  WHERE InvNo  = @InvNumber  
SELECT @loginind = (SELECT Login FROM tblInvoice_wrk WHERE InvNo = @InvNumber)
SELECT @depotno = 'J' + CONVERT(varchar(4),@InvNumber)
if @loginind = 4 SELECT @depotno = 'G' + CONVERT(varchar(4),@InvNumber)
if @loginind = 5 SELECT @depotno = 'J' + CONVERT(varchar(4),@InvNumber)
if @loginind = 6 SELECT @depotno = 'D' + CONVERT(varchar(4),@InvNumber)
if @loginind = 7 SELECT @depotno = 'JD' + CONVERT(varchar(3),@InvNumber)
if @loginind = 9 SELECT @depotno = 'F' + CONVERT(varchar(4),@InvNumber)
UPDATE tblInvoice_wrk SET DepotNo = @depotno  WHERE InvNo  = @InvNumber  
/* ----------- Post invoice header details from work table to invoice table ---------------- */
INSERT INTO tblInvoice SELECT * FROM tblInvoice_wrk WHERE InvNo = @InvNumber
/* ------------ Clear work table  ----------------- */
DELETE FROM tblInvoice_wrk WHERE InvNo = @InvNumber
COMMIT TRAN PostDepInv
GO

GRANT  EXECUTE  ON dbo.PostDepInv  TO SQLUser
GO

GRANT  EXECUTE  ON dbo.PostDepInv  TO AllGlobalUsers
GO

GRANT  EXECUTE  ON dbo.PostDepInv  TO sa
GO

GRANT  EXECUTE  ON dbo.PostDepInv  TO KOBUS
GO


