1. addInvoice
ALTERProcedure [dbo].[addInvoice](@INo Varchar(50),@IDate DateTime,@Cus
Varchar(50),@Total Numeric(18,2),@Paid Numeric(18,2),@rtAM
Numeric(18,2),@writeOff Numeric(18,2))AS
Begin
InsertInto INVOICE Values(@INo,@IDate,@Cus,@Total,@Paid,@rtAM,@writeOff)
Declare @credit Numeric(18,2)
set @Credit=@Total-(@Paid+@WriteOff+@rtAM)
If(@Credit>0)
Begin
declare @bgCredit Numeric(18,2)
DECLARE @endCredit Numeric(18,2)
select @bgCredit=Credit from Customers Where C_ID=@Cus
set @endCredit=@bgCredit+@credit
Update Customers set CREDIT=@endCredit where C_ID=@Cus
InsertInto RecievableHistory
Values(@iDate,@Cus,@BgCredit,@Credit,0,0,@endCredit,@INo)
end
if(@paid>0)
Begin
declare @bAM Numeric(18,2),@eAM Numeric(18,2)
declare @CID Int
set @CID=(SelectMax(ID)from cashFlow)
if(@CID Isnull)
set @bAM=0
else
set @bAM=(Select EndBalance from CashFlow where ID=@CID)
set @eAM=@bAM+@Paid
InsertInto CashFLow
Values(@IDate,@bAM,@Paid,@eAM,@INo,N' ',N' ')
end
END
addInvoiceItem
ALTERProcedure [dbo].[addInvoiceItem](@INo Varchar(50),@PRONAME
NVARCHAR(100),
@W_CAPACITY NUMERIC(18,2),@UN NVarchar(50),
@Price Numeric(18,3),@Qty1 Numeric(18,2),@rtQty Numeric(18,2),
@Dis Numeric(18,2),@Am Numeric(18,2))as
Begin
declare @iDate DateTime
set @iDate=(Select INVDate from Invoice where InvNo=@iNo)
InsertInto InvoiceItems
Values(@INo,@PRONAME,@W_CAPACITY,@Un,@Price,@Qty1,@rtQty,@Dis,@AM)
if(@Qty1>0)
exec processStock 1,@iDate,@W_CAPACITY,@Qty1,N' ',@ino,@PRONAME
if(@rtQty>0)
exec processStock 0,@iDate,@W_CAPACITY,@rtQty,N' ',@ino,@PRONAME
END
END
2. deleteInvoice
ALTERProc [dbo].[deleteInvoice](@invNo Varchar(50))as
Declare @Cid Varchar(50),@credit Numeric(18,2)
Begin
set @Cid=(Select C_id from Invoice where InvNo=@InvNo)
set @Credit=(Select Credit from Invoice Where InvNo=@InvNo)
declare @rID Int
select @rid=CID from RecievableHistory
where C_ID=@CID and INVNO=@InvNo
update customers set credit=credit-@credit
where C_ID=@CID
deletefrom RecievableHistory where CID=@rid
Update RecievableHistory
set BeginBalance=BeginBalance-@credit,EndBalance=EndBalance-@Credit
where C_ID=@CID and CID>@rid
Declare ItemCur CURSOR SCROLL DYNAMIC
forselect PRONAME,QtyS,reQty,W_CAPACITY
from InvoiceItems where InvNo=@InvNo
Declare @pro nVarchar(50),@Qt Numeric(18,2),@retQt Numeric(18,2),@capacity
numeric(18,2)
open ItemCur
fetch first from ItemCur Into @pro,@qt,@retQt,@capacity
while(@@fetch_status=0)
Begin
if(@qt>0)
begin
Declare @RID1 Int
select @RID1=SID from StockHistory
where TranType=N' 'and RefNo=@invNo
Update StockHistory
set BeginStock=BeginStock+@Qt,EndStock=EndStock+@Qt
where SID>@RID1 and RefNo=@invNo
deletefrom StockHistory where SID=@RID1
Update WARTERS set Qty=Qty+@Qt
where SUPLIERName=@Pro and W_capacity=@capacity
end
if(@retQt>0)
Begin
Declare @RID2 Int
select @RID2=SID from StockHistory
where TranType=N' 'and RefNo=@invNo
Update StockHistory
set BeginStock=BeginStock-@retQt,EndStock=EndStock-@retQt
where SID>@RID2 and RefNo=@invNo
Deletefrom StockHistory where SID=@RID2
Update WARTERS set Qty=Qty-@retQt
where SuplierName=@Pro and W_capacity=@capacity
end
fetch next from ItemCur Into @pro,@qt,@retQt,@capacity
end
close itemCur
deallocate ItemCur
Deletefrom Invoice where InvNo=@invNo
deletefrom InvoiceItems where InvNo=@InvNo
END
3. deleteImport
ALTERProcedure [dbo].[deleteImport](@ImpNO Varchar(20))as
Begin
Declare @sup NVarchar(100),@RID Int,@credit Numeric(18,3),@InvRef Varchar(30)
Select @Sup=Supliername,@credit=Credit,@InvRef=Refno from Imports
where ImportNo=@ImpNo
select @RID=PID from PayableHistory Where SuplierName=@sup and RefNo=@InvRef
AND Credit>0
Deletefrom PayableHistory Where PID=@RID
Update PayableHistory Set BeginCredit=BeginCredit-
@Credit,EndCredit=EndCredit-@Credit
Where PID>@RID
Update Supliers set Credit=Credit-credit where SuplierName=@Sup
Declare imCursor CURSOR SCROLL DYNAMIC FORSELECT
Capacity,ImportQty+FreeQty,supliername
from ImportItems WHere ImportNo=@ImpNo
Declare @capcity numeric(18,2),@Qty Numeric(18,2),@supliername
asnvarchar(100)
Open ImCursor
Fetch first from imCursor Into
@capcity,@Qty,@supliername
While(@@fetch_Status=0)
Begin
declare @SID Int
Select @SID=SID from StockHistory
Where RefNo=@ImpNo and W_CAPACITY=@capcity
Deletefrom StockHistory Where SID=@SID
Update StockHistory
Set BeginStock=BeginStock-@QTy,ENDStock=EndStock-@QTy
Where Sid>@sid
Update WARTERS set QTy=Qty-@QTY
Where W_capacity=@capcity and supliername=@supliername
Fetch next from imCursor Into
@capcity,@Qty,@supliername
End
close imCursor
deallocate imCursor
deletefrom ImportItems Where REFNO=@ImpNo
Deletefrom Imports Where REFNO=@ImpNo
END
END
doImportItem
ALTERProcedure [dbo].[doImportItem](@INo nVarchar(50),
@capacity numeric(18,2),@UN NVarchar(50),@Price Numeric(18,2),
@Qty Numeric(18,2),@FreeQty Numeric(18,2),@Disc Numeric(18,2),
@Am Numeric(18,2), @REFNO ASVARCHAR(50),@suppliername asnvarchar(100))as
Begin
declare @iDate DateTime
set @iDate=(Select ImportDate from Imports where ImportNo=@iNo)
InsertInto ImportItems
Values(@INo,@capacity,@Un,@Price,@Qty,@freeQty,@Disc,@AM,@REFNO,@suppliername
)
Declare @TTQT Numeric(18,2)
set @TTQT=@QTy+@FreeQty
exec processStock 0,@iDate,@capacity,@ttQT,N' ',@ino,@suppliername
END
4. processStock
ALTERProc [dbo].[processStock](@State Int,@Date DateTime
,@WCAPACITY NUMERIC(18,2),@Qty Numeric(18,2),@Desc NVarchar(50),
@Ref Varchar(50),@suppliername asnvarchar(100))as
Begin
Declare @BStock Numeric(18),@EStock Numeric(18,2)
Select @BStock=QTY from WARTERS where W_CAPACITY=@WCAPACITY and
supliername=@suppliername
if(@State=0)--Import
Begin
set @eStock=@Bstock+@Qty
end
if(@State=1)--Export
Begin
set @eStock=@Bstock-@Qty
end
Update WARTERS
set Qty=@EStock
where W_CAPACITY=@WCAPACITY and supliername=@suppliername
InsertInto StockHistory
Values(@Date,@WCAPACITY,@BStock,@Qty,@DESC,@EStock,@REF)
END
doCPAIDDetail
ALTERProc [dbo].[doCPAIDDetail](@pNo Varchar(40),@date DateTime,@Cus
Varchar(50),
@Inv Varchar(50),@Total Numeric(18,2),@PAM Numeric(18,2))
AS
Begin
InsertInto CPAIDDETAILS
Values(@PNO,@Inv,@Total,@PAM)
Declare @Bg Numeric(18,2),@end Numeric(18,2)
Select @bg=Credit from Customers Where
C_ID=@Cus
set @end=@bg-@PAM
InsertInto RecievableHistory
Values(@date,@cus,@bg,0,@pam,0,@end,@inv)
Update Customers
set Credit=@end
Where C_ID=@cus
Update Invoice set Paid=Paid+@PAM
where INVNO=@INV
declare @bAM Numeric(18,2),@eAM Numeric(18,2)
declare @CID Int
set @CID=(SelectMax(ID)from cashFlow)
if(@CID Isnull)
set @bAM=0
else
set @bAM=(Select EndBalance from CashFlow where ID=@CID)
set @eAM=@bAM+@pam
InsertInto CashFLow
Values(@Date,@bAM,@Pam,@eAM,@inv,N' ',N' ')
END
5. doimports
ALTERproc [dbo].[doimports](@IMPNO NVARCHAR(50),@IMPDATE DATETIME,
@SUPLIERS NVARCHAR(200),@TOTALAM NUMERIC(18,2),@PAID NUMERIC(18,2)
,@REFNO NVARCHAR(200),@USER VARCHAR(50))
ASBEGIN
INSERTINTO Imports
VALUES(@IMPNO,@IMPDATE,@SUPLIERS,@TOTALAM,@PAID,@REFNO,@USER)
declare @CREDIT numeric(18,2)
set @CREDIT=@TOTALAM-@PAID
if(@TOTALAM>0)
begin
declare @bAM Numeric(18,2),@eAM Numeric(18,2)
declare @CID Int
set @CID=(SelectMax(ID)from cashFlow)
if(@CID Isnull)
set @bAM=0
else
set @bAM=(Select EndBalance from CashFlow where ID=@CID)
set @eAM=@bAM-@TOTALAM
InsertInto CashFLow
Values(@IMPDATE,@bAM,@TOTALAM,@eAM,@REFNO,N' ',N' ')
end
if(@CREDIT>0)
Begin
declare @sbcredit numeric(18,2)
declare @secredit numeric(18,2)
select @sbcredit=credit from Supliers where supliername=@supliers
set @secredit=@sbcredit+@credit
insertinto PayableHistory
values(@IMPDATE,@SUPLIERS,@sbcredit,@credit,0,0,@secredit,@REFNO)
Update Supliers set Credit=@secredit
where supliername=@supliers
end
END
RECIEC
ALTERPROC [dbo].[RECIEC](@RID VARCHAR(50),@CUSNAME NVARCHAR(100),@INVNO
VARCHAR(100),@DATE DATETIME,
@TOTAL NUMERIC(18,2),@PAID NUMERIC(18,2),@RETURN NUMERIC(18,2),@CREDIT
NUMERIC(18,2),
@PAY NUMERIC(18,2),@NEWCREDIT NUMERIC(18,2))AS
BEGIN
INSERTINTO Receic
VALUES(@RID,@CUSNAME,@INVNO,@DATE,@TOTAL,@PAID,@RETURN,@CREDIT,@PAY,@NEWCREDI
T)
END
DOCPAID
ALTERProc [dbo].[DOCPAID](@CPNo Varchar(50),@pDate DateTime,@cus
NVarchar(100),
@total Numeric(18,2),@USER VARCHAR(50))as
Begin
InsertInto CPAIDS Values(@CPNo,@pDate,@cus,@total,@USER)
6. PAIDDetail
ALTERProc [dbo].[PAIDDetail](@pNo NVarchar(40),@IMPDATE DateTime,@supliers
NVarchar(50),
@Inv NVarchar(200),@credit Numeric(18,2),@PAM Numeric(18,2))
AS
Begin
InsertInto PAIDDETAILS
Values(@PNO,@Inv,@credit,@PAM)
declare @sbcredit numeric(18,2)
declare @secredit numeric(18,2)
select @sbcredit=credit from Supliers where supliername=@supliers
set @secredit=@sbcredit-@PAM
insertinto PayableHistory
values(@IMPDATE,@SUPLIERS,@sbcredit,0,@PAM,0,@secredit,@Inv)
Update Supliers set Credit=@secredit
where supliername=@supliers
Update imports set Paid=Paid+@PAM
WHERE REFNO=@INV AND SUPLIERNAME=@SUPLIERS
declare @bAM Numeric(18,2),@eAM Numeric(18,2)
declare @CID Int
set @CID=(SelectMax(ID)from cashFlow)
if(@CID Isnull)
set @bAM=0
else
set @bAM=(Select EndBalance from CashFlow where ID=@CID)
set @eAM=@bAM-@pam
InsertInto CashFLow
Values(@IMPDATE,@bAM,@Pam,@eAM,@inv,N' ',N' ')
END