USP_SIMPLEDATALIST_CHARGESCHOOLS

Simple list of schools for a student charge

Parameters

Parameter Parameter Type Mode Description
@STUDENTID uniqueidentifier IN
@CHARGEDATE date IN
@BILLINGITEMID uniqueidentifier IN

Definition

Copy


            CREATE procedure dbo.USP_SIMPLEDATALIST_CHARGESCHOOLS
            (
                @STUDENTID uniqueidentifier,
                @CHARGEDATE date  = null,
                @BILLINGITEMID uniqueidentifier
            )
            as
                declare @COUNT int;
                declare @TYPECODE tinyint;


                --Check billing item price type 

                select @TYPECODE=PRICETYPECODE from dbo.BILLINGITEM where ID=@BILLINGITEMID

                --If vary by school retrieve the valid student progression school or the enrollment school

                if (@TYPECODE = 3)
                 begin
                    (select 
                        SCHOOL.ID as VALUE,
                        CONSTITUENT.KEYNAME as LABEL
                    from 
                        dbo.EDUCATIONALHISTORY as EDUCATION 
                    inner join 
                        dbo.SCHOOL on EDUCATION.EDUCATIONALINSTITUTIONID = SCHOOL.ID
                    inner join 
                        dbo.CONSTITUENT on SCHOOL.ID = CONSTITUENT.ID
                    inner join 
                        dbo.ACADEMICYEAR AY on SCHOOL.ID = AY.SCHOOLID 
                    where (@CHARGEDATE IS NOT NULL) and
                        (EDUCATION.CONSTITUENTID = @STUDENTID) and
                        (dbo.UFN_DATE_FROMFUZZYDATE(EDUCATION.STARTDATE) <= @CHARGEDATE) and
                        ((dbo.UFN_DATE_FROMFUZZYDATE(EDUCATION.DATELEFT) >= @CHARGEDATE) or (EDUCATION.DATELEFT = '00000000')) and
                        (AY.BILLINGSTARTDATE <= @CHARGEDATE) and
                        (AY.BILLINGENDDATE >= @CHARGEDATE)    
                    group by SCHOOL.ID, CONSTITUENT.KEYNAME)
                    UNION
                    (select
                        SG.SCHOOLID as VALUE,
                        CONSTITUENT.KEYNAME as LABEL
                    from 
                        dbo.ACADEMICYEAR as AY
                    inner join 
                        dbo.STUDENTPROGRESSION as SP on (AY.STARTDATE = SP.STARTDATE) and (AY.ENDDATE = SP.ENDDATE) 
                    inner join
                        dbo.EDUCATIONALHISTORY as ENROLLMENT on SP.ENROLLMENTID = ENROLLMENT.ID
                    inner join 
                        dbo.SCHOOLGRADELEVEL as SG on (SP.SCHOOLGRADELEVELID = SG.ID) and (AY.SCHOOLID = SG.SCHOOLID)
                    inner join 
                        dbo.CONSTITUENT on SG.SCHOOLID = CONSTITUENT.ID
                    where (@CHARGEDATE IS NOT NULL
                        and (AY.BILLINGSTARTDATE<=@CHARGEDATE
                        and (AY.BILLINGENDDATE>=@CHARGEDATE
                        and (ENROLLMENT.CONSTITUENTID = @STUDENTID
                    group by SG.SCHOOLID, CONSTITUENT.KEYNAME)
                 end
                --All other types retrieve the valid progression schools

                else
                 begin
                    select
                        SG.SCHOOLID as VALUE,
                        CONSTITUENT.KEYNAME as LABEL
                    from 
                        dbo.ACADEMICYEAR as AY
                    inner join 
                        dbo.STUDENTPROGRESSION as SP on (AY.STARTDATE = SP.STARTDATE) and (AY.ENDDATE = SP.ENDDATE) 
                    inner join
                        dbo.EDUCATIONALHISTORY as ENROLLMENT on SP.ENROLLMENTID = ENROLLMENT.ID
                    inner join 
                        dbo.SCHOOLGRADELEVEL as SG on (SP.SCHOOLGRADELEVELID = SG.ID) and (AY.SCHOOLID = SG.SCHOOLID)
                    inner join 
                        dbo.CONSTITUENT on SG.SCHOOLID = CONSTITUENT.ID
                    where (@CHARGEDATE IS NOT NULL
                        and (AY.BILLINGSTARTDATE<=@CHARGEDATE
                        and (AY.BILLINGENDDATE>=@CHARGEDATE
                        and (ENROLLMENT.CONSTITUENTID = @STUDENTID
                    group by SG.SCHOOLID, CONSTITUENT.KEYNAME
                 end