USP_DATAFORMTEMPLATE_VIEW_BILLINGTRANSACTIONDETAIL
The load procedure used by the view dataform template "Billing Transaction Detail 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. |
@FINANCIALTRANSACTIONID | uniqueidentifier | INOUT | FINANCIALTRANSACTIONID |
@TYPECODE | tinyint | INOUT | TYPECODE |
@TYPE | nvarchar(100) | INOUT | TYPE |
@TRANSACTIONID | nvarchar(60) | INOUT | ID |
@CHARGINGFOR | nvarchar(100) | INOUT | Charging for |
@DATEACADEMICYEAR | nvarchar(100) | INOUT | Academic year |
@DESCRIPTION | nvarchar(100) | INOUT | Description |
@CREDITINGFOR | nvarchar(100) | INOUT | Crediting for |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_BILLINGTRANSACTIONDETAIL
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@FINANCIALTRANSACTIONID uniqueidentifier = null output,
@TYPECODE tinyint = null output,
@TYPE nvarchar(100) = null output,
@TRANSACTIONID nvarchar(60) = null output,
@CHARGINGFOR nvarchar(100) = null output,
@DATEACADEMICYEAR nvarchar(100) = null output,
@DESCRIPTION nvarchar(100) = null output,
@CREDITINGFOR nvarchar(100) = null output
)
as
set nocount on;
set @DATALOADED = 0;
-- Open the symmetric key for decryption
exec dbo.USP_GET_KEY_ACCESS;
select @DATALOADED = 1,
@FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID,
@TYPECODE = FINANCIALTRANSACTION.TYPECODE,
@TYPE = FINANCIALTRANSACTION.TYPE,
@TRANSACTIONID = FINANCIALTRANSACTION.USERDEFINEDID,
@DATEACADEMICYEAR = case when ((FINANCIALTRANSACTION.TYPECODE = 104) and (not STUDENTPROGRESSION.ID is null)) then
(select ACADEMICYEARNAMECODE.DESCRIPTION
from dbo.ACADEMICYEAR
inner join dbo.ACADEMICYEARNAMECODE
on ACADEMICYEAR.ACADEMICYEARNAMECODEID = ACADEMICYEARNAMECODE.ID
where ACADEMICYEAR.ID = dbo.UFN_ACADEMICYEAR_GET_FORSCHOOL_BYDATE(SCHOOL.ID, STUDENTPROGRESSION.STARTDATE, STUDENTPROGRESSION.ENDDATE))
when ((FINANCIALTRANSACTION.TYPECODE = 106) and (not SP2.ID is null)) then
(select ACADEMICYEARNAMECODE.DESCRIPTION
from dbo.ACADEMICYEAR
inner join dbo.ACADEMICYEARNAMECODE
on ACADEMICYEAR.ACADEMICYEARNAMECODEID = ACADEMICYEARNAMECODE.ID
where ACADEMICYEAR.ID = dbo.UFN_ACADEMICYEAR_GET_FORSCHOOL_BYDATE(S2.ID, SP2.STARTDATE, SP2.ENDDATE))
when (FINANCIALTRANSACTION.TYPECODE = 104 or FINANCIALTRANSACTION.TYPECODE = 106) then
dbo.UFN_BILLINGCYCLE_GETBILLINGCYCLEBYDATE(FINANCIALTRANSACTION.DATE)
else
''
end
+ char(13)
+ (case when (exists (select BILLINGITEM.ID
from dbo.FINANCIALTRANSACTIONLINEITEM
inner join CHARGELINEITEM
on FINANCIALTRANSACTIONLINEITEM.ID = CHARGELINEITEM.ID
left outer join dbo.BILLINGITEM
on CHARGELINEITEM.BILLINGITEMID = BILLINGITEM.ID
where FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = @ID and
BILLINGITEM.PRICETYPECODE=1)) then
Coalesce(dbo.UFN_STUDENT_GETSCHOOLGRADELEVELBYDATE(FINANCIALTRANSACTION.DATE, FINANCIALTRANSACTION.CONSTITUENTID),'')
when (exists (select BILLINGITEM.ID
from dbo.FINANCIALTRANSACTIONLINEITEM
inner join RECEIVABLECREDITLINEITEM
on FINANCIALTRANSACTIONLINEITEM.ID = RECEIVABLECREDITLINEITEM.ID
left outer join dbo.BILLINGITEM
on RECEIVABLECREDITLINEITEM.BILLINGITEMID = BILLINGITEM.ID
where FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = @ID and
BILLINGITEM.PRICETYPECODE=1)) then
Coalesce(dbo.UFN_STUDENT_GETSCHOOLGRADELEVELBYDATE(FINANCIALTRANSACTION.DATE, FINANCIALTRANSACTION.CONSTITUENTID),'')
when FINANCIALTRANSACTION.TYPECODE = 104 then
(case when not CONSTITUENTSCHOOL.ID is null then
CONSTITUENTSCHOOL.KEYNAME + ', ' + GRADELEVEL.DESCRIPTION
when not CONSTITUENTEDUCATIONALINSTITUTION.ID is null then
CONSTITUENTEDUCATIONALINSTITUTION.KEYNAME else ''
end)
when FINANCIALTRANSACTION.TYPECODE = 106 then
(case when not CS2.ID is null then
CS2.KEYNAME + ', ' + GL2.DESCRIPTION
when not CEI2.ID is null then
CEI2.KEYNAME else ''
end)
end)
from dbo.FINANCIALTRANSACTION
left outer join dbo.CHARGE -- Charge specific info
on FINANCIALTRANSACTION.ID = CHARGE.ID
left outer join dbo.STUDENTCHARGE -- Student charge specific info
on CHARGE.ID = STUDENTCHARGE.ID
inner join dbo.CONSTITUENT
on FINANCIALTRANSACTION.CONSTITUENTID = CONSTITUENT.ID
left outer join dbo.STUDENTPROGRESSION
on STUDENTCHARGE.STUDENTPROGRESSIONID=STUDENTPROGRESSION.ID
left outer join dbo.SCHOOLGRADELEVEL
on STUDENTPROGRESSION.SCHOOLGRADELEVELID = SCHOOLGRADELEVEL.ID
left outer join dbo.SCHOOL
on SCHOOLGRADELEVEL.SCHOOLID=SCHOOL.ID
left outer join dbo.CONSTITUENT CONSTITUENTSCHOOL
on CONSTITUENTSCHOOL.ID=SCHOOL.ID
left outer join dbo.GRADELEVEL
on SCHOOLGRADELEVEL.GRADELEVELID=GRADELEVEL.ID
left outer join dbo.EDUCATIONALHISTORY
on STUDENTCHARGE.EDUCATIONALHISTORYID=EDUCATIONALHISTORY.ID
left outer join CONSTITUENT CONSTITUENTEDUCATIONALINSTITUTION
on EDUCATIONALHISTORY.EDUCATIONALINSTITUTIONID=CONSTITUENTEDUCATIONALINSTITUTION.ID
left outer join dbo.RECEIVABLECREDIT -- Credit specific info
on FINANCIALTRANSACTION.ID = RECEIVABLECREDIT.ID
left outer join dbo.STUDENTPROGRESSION SP2
on RECEIVABLECREDIT.STUDENTPROGRESSIONID=SP2.ID
left outer join dbo.SCHOOLGRADELEVEL SGL2
on SP2.SCHOOLGRADELEVELID = SGL2.ID
left outer join dbo.SCHOOL S2
on SGL2.SCHOOLID=S2.ID
left outer join dbo.CONSTITUENT CS2
on CS2.ID=S2.ID
left outer join dbo.GRADELEVEL GL2
on SGL2.GRADELEVELID=GL2.ID
left outer join dbo.EDUCATIONALHISTORY EH2
on RECEIVABLECREDIT.EDUCATIONALHISTORYID=EH2.ID
left outer join CONSTITUENT CEI2
on EH2.EDUCATIONALINSTITUTIONID=CEI2.ID
where FINANCIALTRANSACTION.ID = @ID
-- If we are dealing with a charge then we need to get all the billing items
if (@TYPECODE = 104)
begin
set @CHARGINGFOR =
(select stuff((select char(13) + BILLINGITEM.NAME
from dbo.FINANCIALTRANSACTIONLINEITEM
inner join CHARGELINEITEM
on FINANCIALTRANSACTIONLINEITEM.ID = CHARGELINEITEM.ID
left outer join dbo.BILLINGITEM
on CHARGELINEITEM.BILLINGITEMID = BILLINGITEM.ID
where FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = @ID
for xml path(''), type).value('.', 'nvarchar(max)'), 1, 1, ''))
end
-- If we are dealing with a credit then we need to get all the billing items
if (@TYPECODE = 106)
begin
set @CREDITINGFOR =
(select stuff((select char(13) + BILLINGITEM.NAME
from dbo.FINANCIALTRANSACTIONLINEITEM
inner join RECEIVABLECREDITLINEITEM
on FINANCIALTRANSACTIONLINEITEM.ID = RECEIVABLECREDITLINEITEM.ID
left outer join dbo.BILLINGITEM
on RECEIVABLECREDITLINEITEM.BILLINGITEMID = BILLINGITEM.ID
where FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = @ID
for xml path(''), type).value('.', 'nvarchar(max)'), 1, 1, ''))
end
-- put the descriptions together on separate lines
select @DESCRIPTION = dbo.UDA_BUILDLIST(FINANCIALTRANSACTIONLINEITEM.DESCRIPTION)
from dbo.FINANCIALTRANSACTIONLINEITEM
where (FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = @ID) and
(len(FINANCIALTRANSACTIONLINEITEM.DESCRIPTION) > 0);
close symmetric key sym_BBInfinity;
return 0;