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;