USP_DATAFORMTEMPLATE_VIEW_INVOICE
The load procedure used by the view dataform template "Invoice View Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter used to load the fields defined on the form. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@AMOUNT | money | INOUT | Invoice amount |
@BALANCE | money | INOUT | Balance |
@INVOICEDATE | datetime | INOUT | Invoice date |
@DATEDUE | datetime | INOUT | Due date |
@DAYSPASTDUE | int | INOUT | Days past due |
@POSTSTATUS | nvarchar(14) | INOUT | Post status |
@POSTDATE | datetime | INOUT | Post date |
@PAYMENTMETHOD | nvarchar(50) | INOUT | Payment method |
@DISCOUNTPERCENT | decimal(20, 4) | INOUT | Discount percent |
@DISCOUNTEDTOTAL | money | INOUT | Amount after discount |
@DISCOUNTAMOUNT | money | INOUT | Discount amount |
@DISCOUNTEXPIRATIONDATE | datetime | INOUT | Discount expiration date |
@HOLDPAYMENT | bit | INOUT | On hold |
@PURCHASEORDERID | nvarchar(20) | INOUT | PO number |
@ALLOWVENDORPAYMENTS | bit | INOUT | Payments are not allowed for this vendor |
@APPLIEDAMOUNTS | money | INOUT | Payments and discounts taken |
@ISLOCKED | bit | INOUT | Invoice is locked |
@ZEROBALANCE | bit | INOUT | Invoice is fully paid |
@HADDISCOUNT | bit | INOUT | Has discount |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_INVOICE
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@AMOUNT money = null output,
@BALANCE money = null output,
@INVOICEDATE datetime = null output,
@DATEDUE datetime = null output,
@DAYSPASTDUE integer = null output,
@POSTSTATUS nvarchar(14) = null output,
@POSTDATE datetime = null output,
@PAYMENTMETHOD nvarchar(50) = null output,
@DISCOUNTPERCENT decimal(20,4) = null output,
@DISCOUNTEDTOTAL money = null output,
@DISCOUNTAMOUNT money = null output,
@DISCOUNTEXPIRATIONDATE datetime = null output,
@HOLDPAYMENT bit = null output,
@PURCHASEORDERID nvarchar(20) = null output,
@ALLOWVENDORPAYMENTS bit = null output
,@APPLIEDAMOUNTS money = null output
,@ISLOCKED bit = null output
,@ZEROBALANCE bit = null output
,@HADDISCOUNT bit = null output
)
as
set nocount on;
-- be sure to set this, in case the select returns no rows
set @DATALOADED = 0;
-- populate the output parameters, which correspond to fields on the form. Note that
-- we set @DATALOADED = 1 to indicate that the load was successful. Otherwise, the system
-- will display a "no data loaded" message.
-- Make sure to update Balance when the Payment Information comes in.
select top 1
@DATALOADED = 1,
@AMOUNT = F.TRANSACTIONAMOUNT,
@BALANCE = I.BALANCE,
@INVOICEDATE = F.[DATE],
@DATEDUE = I.DATEDUE,
@POSTSTATUS = F.POSTSTATUS,
@POSTDATE = F.POSTDATE,
@PAYMENTMETHOD = I.PAYMENTMETHOD,
@DAYSPASTDUE = (case
when DATEDIFF(D, I.DATEDUE, GETDATE()) > 0
then DATEDIFF(D, I.DATEDUE, GETDATE())
else 0 end),
@DISCOUNTPERCENT = I.DISCOUNTPERCENT,
@DISCOUNTEDTOTAL = I.DISCOUNTEDTOTAL,
@DISCOUNTAMOUNT = I.DISCOUNTAMOUNT,
@DISCOUNTEXPIRATIONDATE = I.DISCOUNTEXPIRATIONDATE,
@HOLDPAYMENT = I.HOLDPAYMENT,
@PURCHASEORDERID = I.PURCHASEORDERID,
@ALLOWVENDORPAYMENTS = PV.ALLOWPAYMENTS,
@ISLOCKED = case when I.DISBURSEMENTPROCESSID is null then 0 else 1 end,
@ZEROBALANCE = I.ZEROBALANCE
from dbo.INVOICE I
inner join dbo.FINANCIALTRANSACTION F on F.ID = I.ID and F.TYPECODE = 101
inner join dbo.CONSTITUENT C on F.CONSTITUENTID = C.ID
inner join dbo.VENDOR PV on PV.ID = C.ID
where F.ID = @ID;
select
@APPLIEDAMOUNTS = sum(FTA.AMOUNT)
from
dbo.FINANCIALTRANSACTIONSCHEDULE as FTS
inner join dbo.FINANCIALTRANSACTIONAPPLICATION as FTA on FTS.ID = FTA.FINANCIALTRANSACTIONSCHEDULEID
where
FTS.FINANCIALTRANSACTIONID = @ID and FTS.DELETED = 0
and FTA.STATUSCODE = 1 -- applied;
select @HADDISCOUNT = 1
from dbo.FINANCIALTRANSACTIONSCHEDULE as FTS
inner join dbo.FINANCIALTRANSACTIONAPPLICATION as FTA on FTS.ID = FTA.FINANCIALTRANSACTIONSCHEDULEID
where
FTS.FINANCIALTRANSACTIONID = @ID and FTS.DELETED = 0
and FTA.STATUSCODE = 1 -- applied
and FTA.TYPECODE = 1 --Discount;
if @HADDISCOUNT is null
set @HADDISCOUNT = 0;
return 0;