Data Entities

These are objects which represent the data stored in onCourse.
You will typically search for them using the onCourse query language.
These objects will be in the Cayenne Context named 'context' by default, so you can make changes and store them back
into onCourse using context.commitChanges(). The database tables often don't match the description of
the entities here since we use inheritance and different naming to better describe the data schema in code.

ACLAccessKey

Access keys define access to a specific feature of onCourse for an ACLRole

createdOn()

  • Returns: Date the date and time this record was created

keycode()

  • Returns: KeyCode the keycode this access right refers to

mask()

  • Returns: Integer the mask for the access key, including any always allowed masks and removing any always denied

modifiedOn()

  • Returns: Date the date and time this record was modified

role()

  • Returns: ACLRole the role for this key

ACLRole

An ACLRole (or just "Role") is a grouping of authorisation rights @see ish.oncourse.server.cayenne.ACLAccessKey
to various parts of the system. Every login user @see ish.oncourse.server.cayenne.SystemUser is assigned to a single
ACLRole, or no role at all if they are an adminstrator.

accessKeyForKeyCode(keyCode)

  • keyCode: KeyCode the KeyCode to gain ACLAccessKey for @return ACLAccessKey of the given keyCode

  • Returns: ACLAccessKey ACLAccessKey of the given keyCode

accessKeys()

  • Returns: List of ACLAccessKey a list of all access keys for this role

createdOn()

  • Returns: Date the date and time this record was created

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String the name of the Role

systemUsers()

  • Returns: List of SystemUser a list of all users attached to this role

AbstractInvoiceLine

Includes the behavior implemented in InvoicePayableLineWrapper

cosAccount()

  • Returns: Account COS account linked to this invoice line

createdOn()

  • Returns: Date the date and time this record was created

description()

  • Returns: String invoice line description

discountEachExTax()

  • Returns: Money discount amount excluding tax per single item on this invoice line

discountEachIncTax()

  • Returns: Money discount amount including tax per single item on this invoice line

discountTotalExTax()

  • Returns: Money total discount amount (discount per single item times quantity) excluding tax

discountTotalIncTax()

  • Returns: Money total discounted amount including tax for all items on this invoice line (discount for single item times quantity)

discountedPriceTotalExTax()

  • Returns: Money total price (price per single item times quantity) including discount and excluding tax

discountedPriceTotalIncTax()

  • Returns: Money total price (price per single item times quantity) including discount and including tax

discountedPriceTotalTax()

  • Returns: Money total tax amount calculated by subtracting total discounted price excluding tax from total discounted price including tax

discountedTaxOnPriceEach()

  • Returns: Money discounted tax amount per single item on this invoice line

discounts()

  • Returns: List of Discount list of discounts linked to this invoice line

finalPriceToPayExTax()

  • Returns: Money final price for this invoice line excluding tax

finalPriceToPayIncTax()

  • Returns: Money final price for this invoice line including tax

modifiedOn()

  • Returns: Date the date and time this record was modified

prepaidFeesAccount()

  • Returns: Account prepaid fees liability account

prepaidFeesRemaining()

  • Returns: Money remaining amount on prepaid fees liability account which is not yet transferred to income account

priceEachExTax()

  • Returns: Money price per single item without discounts excluding tax

priceEachIncTax()

  • Returns: Money price per single item without discounts including tax

priceTotalExTax()

  • Returns: Money total price (price per single item times quantity) without discount excluding tax

priceTotalIncTax()

  • Returns: Money total price (price per single item times quantity) without discount including tax

quantity()

  • Returns: BigDecimal quantity of items

tax()

  • Returns: Tax tax linked to this invoice line

taxEach()

  • Returns: Money tax amount per single item

taxRate()

  • Returns: float the of tax rate expressing found by dividing the tax amount by the total price

title()

  • Returns: String invoice line title

totalTax()

  • Returns: Money total tax amount (tax amount per single item times quantity)

unit()

  • Returns: String quantity unit of measurement (e.g. kg)

Account

An Account is a representation of a General Ledger transactional account for the finance backend of onCourse.

accountCode()

  • Returns: String an account code as used in an external accounting system or general ledger

balance(until)

  • until: LocalDate get data up to a given date @return balance up until a given

  • Returns: Money balance up until a given

createdOn()

  • Returns: Date the date and time this record was created

description()

  • Returns: String a description which will appear in the user interface alongside the account code

isEnabled()

Accounts cannot be deleted once used, so you can only disable them in order to prevent them from being used in the future.
Note that disabling an account doesn't "turn it off", it only hides that account from being selected in the user
interface. Existing records already linked to that account will continue to be linked and use that account.

  • Returns: Boolean whether the account is enabled

modifiedOn()

  • Returns: Date the date and time this record was modified

movements(from, to)

  • from: LocalDate Documentation not yet available

  • to: LocalDate Documentation not yet available

  • Returns: Money Documentation not yet available

type()

  • Returns: AccountType the type of account (asset, liability, etc)

isAsset()

  • Returns: boolean true if the account is an asset type

isCOS()

  • Returns: boolean true if the account is a cost of sale type (this is a particular type of expense)

isCredit()

Is this account one of the credit types.

  • LIABILITY

  • INCOME

  • Returns: boolean true if the account is an equity type

isDebit()

Is this account one of the debit types.

  • ASSET

  • COS

  • EQUITY

  • EXPENSE

  • Returns: boolean true if the account is an equity type

isEquity()

Equity account types are rarely used in onCourse.

  • Returns: boolean true if the account is an equity type

isExpense()

  • Returns: boolean true if the account is an expense type

isIncome()

  • Returns: boolean true if the account is an income type

isLiability()

  • Returns: boolean true if the account is a liability type

AccountTransaction

AccountTransactions are entries against the general ledger in onCourse. They are immutable (cannot be edited) and
can only be created in pairs.

account()

  • Returns: Account the account for this transaction

amount()

  • Returns: Money the value of this transaction

contactName()

Get contact related to the transaction through invoice or payment.

  • Returns: String contact name

createdOn()

  • Returns: Date the date and time this record was created

id()

  • Returns: Long The primary key for this record. This value will never change once the record is created.

invoiceNumber()

Get number of related invoice if transaction is linked to an invoice line

  • Returns: Long invoice number

isLocked()

Return true if transaction day cannot be changed.

  • Returns: boolean true if transaction day is locked

modifiedOn()

  • Returns: Date the date and time this record was modified

printTitle()

Returns the name of the contact related to this transaction. If transaction is:

invoice line: return invoice.contact.name

payment in: return paymentIn.contact.name

payment out: return paymentOut.payee.name

  • Returns: String name of contact related to this AccountTransaction

relatedInvoiceLine()

  • Returns: InvoiceLine the related invoiceLine to this AccountTransaction, if it exists

source()

  • Returns: String a human readable string of the source class which generated this transaction

sourceClass()

  • Returns: Class extends PersistentObject the Java class which generated this transaction

transactionDate()

  • Returns: LocalDate the transaction date. This may be different to the creation or modification date

transactionDescription()

Generate description for transaction:

  • Invoice transaction -> invoice number + contact name

  • Payment in/out -> payment type (cc/cheque/cash/etc) + contact name

  • Returns: String string describing transaction

Application

Applications are a way for students to express interest in a course and process through the steps of sending in
supporting materials, arranging interviews or getting custom pricing from the college. The college
can then track the status changes of the application through:

  • New
  • Offered
  • Accepted
  • Rejected
  • Withdrawn

Once an application is "Offered" then the student is able to enrol online into any class for that course, at the
special price (if any).

Tags can be used for more detailed workflow and tracking of progress.

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

allCustomFields()

  • Returns: Map of String, Object all custom field values

allNotes()

  • Returns: List of Note all related notes

confirmationStatus()

We track whether the confirmation email has been sent for this particular record in order to avoid sending it twice.

course()

Applications are always linked to a course rather than to a specific class.

  • Returns: Course course to which this application is linked

createdOn()

  • Returns: Date the date and time this record was created

customFieldValue(key)

  • key: String custom field unique key @return custom field value @throws MissingPropertyException

  • Returns: Object custom field value @throws MissingPropertyException

documents()

  • Returns: List of Document all attached documents

enrolBy()

The Application can sometimes be valid for a specific length of time.

  • Returns: Date date until when students can apply

feeOverride()

Class fee can be overridden for enrolments using applications.

  • Returns: Money fee which student will pay when enrolling with this application if fee is overridden per application, null otherwise

modifiedOn()

  • Returns: Date the date and time this record was modified

notes()

  • Returns: String concatenated private notes

reason()

  • Returns: String reason for decision (accept or reject) on this application

source()

  • Returns: PaymentSource source where application was created: website or onCourse

status()

student()

  • Returns: Student the student who lodged the application

tags()

  • Returns: List of Tag The list of tags assigned to application

ApplicationFieldConfiguration

A field configuration which is used to collect application information

createdOn()

  • Returns: Date the date and time this record was created

fieldHeadings()

  • Returns: List of FieldHeading a list of all headings attached to this field configuration

fields()

  • Returns: List of Field a sorted list of all fields attached to this field configuration

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String the name of this field configuration. Not shown to students anywhere.

Article

Represents an instance of generic product which has been sold through onCourse.

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

allCustomFields()

  • Returns: Map of String, Object all custom field values

confirmationStatus()

  • Returns: ConfirmationStatus confirmation email sending status: not sent, sent or suppressed from sending

contact()

  • Returns: Contact contact who owns this product item

createdOn()

  • Returns: Date the date and time this record was created

customFieldValue(key)

  • key: String custom field unique key @return custom field value @throws MissingPropertyException

  • Returns: Object custom field value @throws MissingPropertyException

documents()

  • Returns: List of Document all attached documents

expiryDate()

  • Returns: Date date when product item (e.g. membership) expires

invoiceLine()

  • Returns: InvoiceLine purchase invoice line for this product item

modifiedOn()

  • Returns: Date the date and time this record was modified

product()

  • Returns: Product product type of this item

status()

  • Returns: ProductStatus current status of this product item: active, cancelled, credited, redeemed, expired or delivered

ArticleProduct

Represents generic product type which can be sold.

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

allCustomFields()

  • Returns: Map of String, Object all custom field values

allNotes()

  • Returns: List of Note all related notes

customFieldValue(key)

  • key: String custom field unique key @return custom field value @throws MissingPropertyException

  • Returns: Object custom field value @throws MissingPropertyException

documents()

  • Returns: List of Document all attached documents

notes()

  • Returns: String concatenated private notes

weight()

  • Returns: Double weight of this product

Assessment

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

active()

  • Returns: Boolean true if active

allNotes()

  • Returns: List of Note all related notes

assessmentClasses()

AssesmentClasses is the relational object between an Assesment and a CourseClass

  • Returns: List of AssessmentClass all assesmentclasses this assesment is linked to

code()

  • Returns: String Documentation not yet available

createdOn()

  • Returns: Date the date and time this record was created

description()

  • Returns: String Documentation not yet available

documents()

  • Returns: List of Document all attached documents

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String Documentation not yet available

notes()

  • Returns: String concatenated private notes

AssessmentClass

assessment()

  • Returns: Assessment Documentation not yet available

assessmentSubmissions()

courseClass()

createdOn()

  • Returns: Date the date and time this record was created

dueDate()

  • Returns: Date Documentation not yet available

modifiedOn()

  • Returns: Date the date and time this record was modified

modules()

Gets a list of modules associated with this assessment

  • Returns: List of Module a list of modules related to this assessment

releaseDate()

If a task does not have a release date, it will be available to enrolled students in the portal immediately after enrolment, like other course/class resources.

  • Returns: Date release date

tutors()

  • Returns: List of Tutor a list of tutors related to this assessment

AssessmentSubmission

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

allNotes()

  • Returns: List of Note all related notes

assessmentClass()

  • Returns: AssessmentClass the assessment class: connection between a courseClass and the assessment submission

assessmentName()

  • Returns: String the assessment name

courseClassName()

  • Returns: String the courseClass name in next format: 'courseName courseCode-classCode'

createdOn()

  • Returns: Date the date and time this record was created

documents()

  • Returns: List of Document all attached documents

enrolment()

  • Returns: Enrolment the enrolment which is related to the assessment submission

markedBy()

  • Returns: Contact the id of the assessor who marked the assessment submission

modifiedOn()

  • Returns: Date the date and time this record was modified

notes()

  • Returns: String concatenated private notes

studentName()

  • Returns: String the full name of student

AttachableTrait

Entities which extends this trait may have custom fields, for example Contact, Course

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

documents()

  • Returns: List of Document all attached documents

Attendance

This entity represents the relationship between a tutor or student, and the sessions that comprise
a CourseClass. They can be used to track whether students show up for sessions (and for how long)
and also whether tutors should be paid for delivery.

attendanceType()

Attendance types represent the result of particular attendance marking.

attendedFrom()

If null, then assume the attendance started when the session started.

  • Returns: Date the time that this attendance started

attendedUntil()

If null, then assume the attendance ended when the session ended.

  • Returns: Date the time this attendance ended

createdOn()

  • Returns: Date the date and time this record was created

durationMinutes()

  • Returns: Integer the duration in minutes of the attendance

markedByTutor()

Tutors can login and mark student attendances for their classes in onCourse portal

  • Returns: Tutor the ID of a tutor who marked student's attendance

markedByTutorDate()

  • Returns: Date date and time when attendance was marked by a tutor

modifiedOn()

  • Returns: Date the date and time this record was modified

note()

  • Returns: String any additional notes entered by the tutor

session()

  • Returns: Session the session this attendance is linked to

student()

  • Returns: Student which student the attendance is for

AutomationBinding

Banking

adminSite()

If the banking was done manually then this is the location (site) at which the banking
was done. This can be useful to group cash and cheque banking performed at a single location.

  • Returns: Site admin site

createdBy()

The user who created the banking. Null if it was generated automatically.

createdOn()

  • Returns: Date the date and time this record was created

modifiedOn()

  • Returns: Date the date and time this record was modified

paymentsIn()

All the payments-in banked in this batch

  • Returns: List of PaymentIn list of payments-in

paymentsOut()

All the payments-out banked in this batch

  • Returns: List of PaymentOut list of payments-out

settlementDate()

The settlement date represents the date on which money should be available to a bank account.

  • Returns: LocalDate which money should be available

type()

The type of banking event this record represents. Typically this is separated into
automatic gateway banking which is created once a day, and

Certificate

A certificate is an object describing a qualification or set of outcomes issued to a student.
Certificates might be created at the end of a single enrolment to capture just the
outcomes from that class. Or they might bring today outcomes from separate enrolments
and from RPL.

Certificates cannot be deleted once they are printed or issued to the student. They can however
be revoked.

addToOutcomes(outcome)

Attaches Certificate to the given Outcome

  • outcome: Outcome The Outcome to attach the certificate to

  • Returns: def Documentation not yet available

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

certificateNumber()

  • Returns: Long a unique number for this certificate

createdOn()

  • Returns: Date the date and time this record was created

documents()

  • Returns: List of Document all attached documents

isQualification()

  • Returns: Boolean true if this certificate is for a full qualification (or accredited course)

lastOutcome()

  • Returns: def the CertificateOutcome with the most recent EndDate attached to this certificate

modifiedOn()

  • Returns: Date the date and time this record was modified

outcomes()

Outcomes attached to the Certificate

  • Returns: def list of outcomes

portalUrl()

A certificate can be issued for outcomes toward a certain qualification even if the qualification
itself is not issued. Check getIsQualification() to see whether this was a full qualification.

  • Returns: String the qualification

printedOn()

  • Returns: LocalDate the date this certificate was first printed

privateNotes()

  • Returns: String any private notes

publicNotes()

  • Returns: String public visible notes

qRCodeImage()

Returns a 128x128 PNG of the unique QR code used to validate this certificate. This is to be used to render the QR code on a printed Certficate report.

  • Returns: def QRCode

qrUniqueCode()

return existing uniqueCode or generate it if it's NULL.

  • Returns: def uniqueCode for this certificate

qualification()

A certificate can be issued for outcomes toward a certain qualification even if the qualification
itself is not issued. Check getIsQualification() to see whether this was a full qualification.

revokedOn()

If a certificate is revoked, this field will be not null. It is important to check this value
before a certificate is exported or printed.

  • Returns: LocalDate the date of revocation

student()

  • Returns: Student the student who received the qualification

studentFirstName()

  • Returns: String student first name @Deprecated Use certificate.student.contact.firstName instead

studentLastName()

  • Returns: String student last name @Deprecated Use certificate.student.contact.lastName instead

successfulOutcomes()

  • Returns: def list of Outcomes with an ASSESSABLE OutcomeStatus

uniqueCode()

  • Returns: String Certificate unique code

verificationURL()

Returns a web URL that can be entered into a web browser to validate this certificate.

  • Returns: def QRCode

Checkout

A shopping cart record typically created by a user who abandoned their cart during checkout on the onCourse website

createdOn()

  • Returns: Date the date and time this record was created

modifiedOn()

  • Returns: Date the date and time this record was modified

payer()

  • Returns: Contact the contact set as the payer in the shopping cart

shoppingCartClasses()

Note: all products with ids from shopping cart should be replicated

  • Returns: List of CourseClass list of all course classes, whose ids shopping cart contains

shoppingCartProductQuantity(productId)

  • productId: Long - angel id of product @return quantity of product with this id into shopping cart or null, if product not found

  • Returns: Integer quantity of product with this id into shopping cart or null, if product not found

shoppingCartProducts()

Note: all products with ids from shopping cart should be replicated

  • Returns: List of Product list of all products, whose ids shopping cart contains

totalValue()

  • Returns: Money the value of te shopping cart

ClassCost

Object representing income or expense associated with running particular class.
This includes enrolment fees, tutor wages, discounts and other incomes or expenses.

budgetedCost()

  • Returns: Money Documentation not yet available

calcActualCost()

  • Returns: Money Documentation not yet available

calcMaximumCost()

  • Returns: Money Documentation not yet available

calcPerUnitAmountExTax()

  • Returns: Money Documentation not yet available

contact()

  • Returns: Contact contact linked to this class cost (e.g. tutor for wage cost types)

courseClass()

createdBy()

  • Returns: SystemUser onCourse user who created this class cost

createdOn()

  • Returns: Date the date and time this record was created

currentOncostRate()

  • Returns: BigDecimal

description()

  • Returns: String description of this class cost record

discountCourseClass()

  • Returns: DiscountCourseClass discount record linked to this class cost (applies for flow type "discount")

flowType()

  • Returns: ClassCostFlowType flow type of this class cost record: expense, income, wages or discount

invoiceToStudent()

  • Returns: Boolean true if class cost is invoiced to student

isSunk()

  • Returns: Boolean true if this class cost is sunk

minimumCost()

  • Returns: Money minimum amount for this class cost

modifiedOn()

  • Returns: Date the date and time this record was modified

onCostRate()

  • Returns: BigDecimal

payableOnEnrolment()

  • Returns: Boolean true if this class cost is payable on student enrolment

paylines()

  • Returns: List of PayLine paylines generated from this class cost record

perUnitAmountExTax()

  • Returns: Money per unit amount excluding tax

repetitionType()

  • Returns: ClassCostRepetitionType repetition type for this class cost: fixed, per session, per enrolment, per unit, discount, per timetabled hour or per student contact hour

sessionCount(until)

  • until: Date Documentation not yet available

  • Returns: Integer number of sessions if this class cost record has "per session" repetition type

sessionPayableHours(until)

  • until: Date Documentation not yet available

  • Returns: BigDecimal amoount of payable hours if this class cost record has "per timetabled hour" or "per student contact" hour repetition type If until = null returns payable hours without date limitations

tax()

  • Returns: Tax tax linked to this class cost record

taxAdjustment()

  • Returns: Money tax adjustment value (used for rounding)

tutorRole()

  • Returns: CourseClassTutor the tutor role for this class cost. This may determine pay rates based on the date of the class or session.

unit2()

  • Returns: String Documentation not yet available

unitCount()

  • Returns: BigDecimal number of units for this class cost

valueForKey(key)

  • key: String Documentation not yet available

  • Returns: Object

isAmountOverride()

  • Returns: boolean Documentation not yet available

ConcessionType

ConcessionTypes are a user definable set of concessions which can be linked to students. You might like to define
concessions like a Senior's Card or Centrelink card. Or you could create a concession for something less concrete
like 'staff member' or 'alumni'.

The main purpose of these concessions is to control the application of discounts.

concessionTypeDiscounts()

createdOn()

  • Returns: Date the date and time this record was created

hasConcessionNumber()

  • Returns: Boolean true if entering of concession card number is required

hasExpiryDate()

  • Returns: Boolean true if concession expiry date must be always specified

isEnabled()

  • Returns: Boolean true if this concession type is active

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String the name of this Concession

Contact

Contacts are at the heart of onCourse. A Contact might be an individual or a company. Contacts can be extended by
Student or Tutor classes, however a Contact can also exist on its own.

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

abn()

  • Returns: String ABN (Australian Business Number) mostly for companies, but tutors might also have one for payment

address()

  • Returns: String address details concatenated together: suburb, state, postcode with line breaks as appropriate

address()

Provides formatted address (Australian format). should be used every time is required to ensure identical formatting everywhere.

  • Returns: String String address

age()

Get the age in whole years

  • Returns: Integer the contact's age

allCustomFields()

  • Returns: Map of String, Object all custom field values

allNotes()

  • Returns: List of Note all related notes

allowEmail()

  • Returns: Boolean whether the contact opted into email marketing

allowPost()

  • Returns: Boolean whether the contact opted into postal (mail) marketing

allowSms()

  • Returns: Boolean whether the contact opted into SMS marketing

birthDate()

  • Returns: LocalDate yep, the contact's date of birth as LocalDate

classCosts()

  • Returns: List of ClassCost ClassCost records associated with this contact

concessionsAuthorised()

contactType()

corporatePasses()

  • Returns: List of CorporatePass CorporatePass records associated with this contact

country()

Some validation rules (such as postcode) only apply if this country is "Australia"

  • Returns: Country the country for the address of this contact

createdOn()

  • Returns: Date the date and time this record was created

customFieldValue(key)

  • key: String custom field unique key @return custom field value @throws MissingPropertyException

  • Returns: Object custom field value @throws MissingPropertyException

dateOfBirth()

  • Returns: Date the contact's date of birth as Date

deliveryStatusEmail()

  • Returns: Integer number of failed consecutive attempts to deliver email to this contact, when this value reaches 6 onCourse considers emails to this contact undeliverable

deliveryStatusPost()

  • Returns: Integer number which shows if postal messages can be delivered to this contact, 0 means messages can be delivered, 6 means that postage is undeliverable

deliveryStatusSms()

  • Returns: Integer number of failed consecutive attempts to deliver SMS message to this contact, when this value reaches 6 onCourse considers messages to this contact undeliverable

documents()

  • Returns: List of Document all attached documents

email()

  • Returns: String Documentation not yet available

fax()

  • Returns: String facsimile number (do we still use those?)

firstName()

  • Returns: String first name, null for companies

fullName()

  • Returns: String the full name for this contact including the middle name, or just the name of the company

gender()

  • Returns: Gender gender for the contact

homePhone()

  • Returns: String home phone number, formatted just how it was entered in the UI

honorific()

  • Returns: String the honorific is the bit before the name (eg. Dr, Mrs, The Honorable)

invoiceTerms()

When an invoice is created in Quick Enrol, or as a manual invoice,
use value from the contact to set the due date.
This date can still be changed during creation to another date by the user.
Picks up the default preference value if it isn't overridden by the contact.

  • Returns: Integer invoice terms

invoices()

Remember that a contact's invoices don't necessarily represent what they enrolled in. A contact might be billed
for someone else's enrolments or other purchases.

  • Returns: List of Invoice all the invoices linked to this contact, including those already paid

isCompany()

  • Returns: Boolean true if this contact is a company

lastName()

  • Returns: String last name of this contact

memberships()

  • Returns: List of Membership all the memberships (including expired) subscribed to by this contact

message()

  • Returns: String message (alert for operator) associated with this contact

messages()

  • Returns: List of Message list of all Message records which were sent to this contact

middleName()

  • Returns: String middle name

mobilePhone()

  • Returns: String contact's mobile phone

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

Convenience method, same as getName(false)

  • Returns: String contact name in a format it is most commonly used in reports: 'Smith, John'

notes()

  • Returns: String concatenated private notes

owingInvoices()

  • Returns: List of Invoice invoices that belong to contact which have positive amount owing value

payments()

  • Returns: List of PaymentInterface all payment in and payment out records linked to this contact

paymentsIn()

  • Returns: List of PaymentIn all PaymentIn records associated with this contact

paymentsOut()

  • Returns: List of PaymentOut all PaymentOut records associated with this contact

payslips()

  • Returns: List of Payslip all Payslip records associated with this contact

portalLink(target, timeout)

Generates signed URL granting access to specific page in portal.
For example following statement
restrictedPortalURL(courseClass, '2016-01-11')
if executed on 1 Jan 2016 will yield the following URL:
https://www.skillsoncourse.com.au/portal/class/1531?valid=20160111&key=k9_S8uk68W5PoCvq5lSUp70sqQY

Target - the specific object on the basis of which url to certain portal page will be assembled.

Available objects are:

courseClass - link to class page
enrolment - link to class page
invoice - link to one invoice details
document - link to download file directly
"USI" string - link to USI details entering page in portal
"someOtherPagePath" string - link to page defined by customer (for example: 'timetable', 'results', 'resources', 'subscriptions' and other

Timeout - acceptable for different parameter types:

 java.util.Date - date after which URL will expire and no longer be valid,<
 java.lang.String - string representation of date (format is 'yyyy-MM-dd') after which URL will expire and no longer be valid,
 java.lang.Integer - number of days after which URL will expire and no longer be valid.

If timeout == null or not defined then url link will be valid for 7 days.

  • target: def object on the basis of which url to certain portal page will be assembled @param date or time after which the generated URL will expire @return signed portal url to certain page (target)

  • timeout: def Documentation not yet available

  • Returns: String signed portal url to certain page (target)

portalLoginURL()

Generates URL to portal login page.

  • Returns: String portal login page URL

postcode()

  • Returns: String contact's postcode

productItems()

  • Returns: List of ProductItem all ProductItem records associated with this contact

quotes()

  • Returns: List of Quote all the quotes linked to this contact

relatedContacts()

  • Returns: List of Contact all contacts related to this one

relatedContacts(relationName)

Get all related contacts with a specific relationship type name

  • relationName: String (eg. 'parent') @return

  • Returns: List of Contact

state()

  • Returns: String contact's state

street()

  • Returns: String contact's address

student()

  • Returns: Student Student record associated with this contact

suburb()

  • Returns: String contact's suburb

tags()

  • Returns: List of Tag The list of tags assigned to this contact

tfn()

  • Returns: String contact's TFN (Tax File Number)

title()

  • Returns: String contact's title

totalInvoiced()

  • Returns: Money Total paid amount for all contact invoices

totalOwing()

  • Returns: Money total of all owing amounts for this contact, regardless of due date or payment plan

tutor()

  • Returns: Tutor Tutor record associated with this contact

unbalancedInvoices()

Get unbalanced invoices

  • Returns: List of Invoice unbalanced invoices

uniqueCode()

  • Returns: String alphanumeric 16 character unique code associated with this contact

workPhone()

  • Returns: String contact's work phone

ContactRelation

Object representing relation between two individual contacts. For example parent-child, employer-employee, etc.

createdOn()

  • Returns: Date the date and time this record was created

fromContact()

  • Returns: Contact contact on the left side of the relation

modifiedOn()

  • Returns: Date the date and time this record was modified

relationType()

toContact()

  • Returns: Contact contact on the right side of the relation

ContactRelationType

Object representing type of relation between two contacts. For example parent-child, employer-employee, etc.

createdOn()

  • Returns: Date the date and time this record was created

delegatedAccessToContact()

  • Returns: Boolean true if contact on the left side of the relation can access portal account of the other related contact

fromContactName()

  • Returns: String name of the left side of the relation, e.g. "parent", "employer", etc.

membeshipDiscountRelations()

modifiedOn()

  • Returns: Date the date and time this record was modified

toContactName()

  • Returns: String name of the right side of the relation, e.g. "child", "employee", etc.

CorporatePass

CorporatePass allows corporate users to enrol students or purchase items without paying immediately.
Using CorporatePass will create invoice in onCourse which can be paid later.

contact()

  • Returns: Contact contact linked to this corporate pass

corporatePassCourseClasses()

  • Returns: List of CorporatePassCourseClass list of CorporatePassCourseClass relation records linked to this corporate pass, corporate pass can be used only when enrolling into classes from this list

corporatePassProduct()

  • Returns: List of CorporatePassProduct list of products linked to this corporate pass, corporate pass can be used only when purchasing products from this list

createdOn()

  • Returns: Date the date and time this record was created

email()

  • Returns: String Returns the email of the invoice recipient

expiryDate()

  • Returns: Date expiry date of this corporate pass

invoiceEmail()

  • Returns: String email to which invoice will be sent if this corporate pass is used

invoiceLines()

  • Returns: def collection of all invoices lines from linked invoices

invoices()

  • Returns: List of Invoice list of invoices for purchases made using this corporate pass

linkedClassesList()

  • Returns: def all related classes unique codes in a comma separated list

modifiedOn()

  • Returns: Date the date and time this record was modified

password()

  • Returns: String password code for this corporate pass

timesUsed()

  • Returns: def how many times this corporate pass used

totalAmount()

  • Returns: def sum of invoice totals across all linked invoices

totalAmountOwing()

  • Returns: def sum of total amount owing across all linked invoices

validClasses()

  • Returns: List of CourseClass list of classes linked to this corporate pass, corporate pass can be used only when enrolling into classes from this list

CorporatePassCourseClass

Object representing relation between CorporatePass and class.
CorporatePass can only be used for enrolling into classes which are linked to it.

corporatePass()

courseClass()

createdOn()

  • Returns: Date the date and time this record was created

modifiedOn()

  • Returns: Date the date and time this record was modified

CorporatePassProduct

Object representing relation between CorporatePass and product.
CorporatePass can only be used for purchasing products which are linked to it.

corporatePass()

createdOn()

  • Returns: Date the date and time this record was created

modifiedOn()

  • Returns: Date the date and time this record was modified

product()

Country

This table is read-only since it is updated through an automated process, pulling changes and new records
from an onCourse update service. That data is turn is fed from updates to the ABS (Australian Beureau of Statistics)
reference data.

Note that the ABS will sometimes remove entries, however we will always preserve historic records.

createdOn()

  • Returns: Date the date and time this record was created

isoCodeAlpha3()

  • Returns: String the three character ISO code for the country

isoCodeNumeric()

  • Returns: Integer the ISO numeric code for the country

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String the human readable name for the country

saccCode()

  • Returns: Integer the numerical statistical code for the country. This one is used for AVETMISS reporting.

isAustralia()

The countries in this table are not unique. For example, there are at least five records pointing to Australia.

  • Returns: boolean true if this country is one of the "Australia" countries

Course

Courses are the 'product' students purchase when they enrol. They are enrolled into an instance of a Course, called
a CourseClass. The Course carries all the marketing information and is typically what you tag to create a navigation
structure on the website.

Traineeships are just a special type of course.

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

allCustomFields()

  • Returns: Map of String, Object all custom field values

allNotes()

  • Returns: List of Note all related notes

allowWaitingLists()

Courses can have waiting lists enabled to allow students to add and remove themselves from a waiting list.

  • Returns: Boolean true if waiting lists are enabled for this course

applications()

  • Returns: List of Application application records linked to this course

cancelledClassesCount()

  • Returns: Integer count of cancelled classes for the course

code()

This code must be unique across all courses. It cannot contain spaces or hyphens. Because it is used to generate
a URL for the course, it should also be selected for readability, websafe characters and SEO.

  • Returns: String course code

courseClasses()

  • Returns: List of CourseClass all courseClasses, whether current, past or future

courseModules()

  • Returns: List of CourseModule CourseModule records linked to this course

createdOn()

  • Returns: Date the date and time this record was created

currentClassesCount()

  • Returns: Integer count of current classes for the course

currentlyOffered()

  • Returns: Boolean true if the course is currently advertised

customFieldValue(key)

  • key: String custom field unique key @return custom field value @throws MissingPropertyException

  • Returns: Object custom field value @throws MissingPropertyException

documents()

  • Returns: List of Document all attached documents

enrolmentType()

Courses can have classes which are enrolled into directly, or they can be 'course by application' where students
apply to the course and then (if accepted) are able to enrol into a class.

enrolments()

  • Returns: List of Enrolment all enrolments from all classes

fieldConfigurationSchema()

Data collection rules allow a course to have a defined {@link FieldConfigurationScheme} which
is used to define the data collection form displayed to users at time of enrolment, waiting list
or application.

fieldOfEducation()

  • Returns: String the NCVER 'Subject field of education' identifer code

futureClasseCount()

  • Returns: Integer count of future classes for the course

isShownOnWeb()

  • Returns: Boolean whether this course is displayed on the website for browsing and searching

isSufficientForQualification()

  • Returns: Boolean true, if students completing this course will be granted a qualification

isTraineeship()

  • Returns: Boolean true if this course is really a traineeship rather than standard course

isVET()

  • Returns: Boolean whether this is a VET course

modifiedOn()

  • Returns: Date the date and time this record was modified

modules()

  • Returns: List of Module modules linked to this course

name()

Note that course names don't need to be the VET official name. It is preferable that they are names appropriate
for the best marketing of the course.

  • Returns: String the human readable name of the course

nextAvailableCode(courseClass)

creates next logical code for a class. code is based on current code or code for the last available class.

  • courseClass: CourseClass Documentation not yet available

  • Returns: String new code

notes()

  • Returns: String concatenated private notes

passedClassesCount()

  • Returns: Integer count of passed classes for the course

printedBrochureDescription()

  • Returns: String a shorter plaint text description suitable for a brochure

qualification()

relatedCourses()

  • Returns: List of Course a list of all courses related to this one. It is a union of relatedToCourses and relatedFromCourses

relatedCourses(name)

A list of all courses related to this one by type with specified name

  • name: String Documentation not yet available

  • Returns: List of Course

relatedFromCourses()

  • Returns: List of Course a list of courses related to this one (relashionships, created in other courses to this one)

relatedFromCourses(name)

  • name: String Documentation not yet available

  • Returns: List of Course a list of courses related to this one (relashionships, created in other courses to this one) by type with specified name

relatedFromProducts()

  • Returns: List of Product a list of courses this one relate to

relatedProducts()

  • Returns: List of Product a list of all products related to this one

relatedToCourses()

  • Returns: List of Course a list of courses that this course is related to (relationships to courses, created from this one)

relatedToCourses(name)

  • name: String Documentation not yet available

  • Returns: List of Course a list of courses that this course is related to (relationships to courses, created from this course) by type with specified name

relatedToProducts()

  • Returns: List of Product a list of products related to this one

reportableHours()

If this is a VET course, it might have reportable hours recorded for AVETMISS reporting

  • Returns: BigDecimal number of reportable hours

selfPacedClassesCount()

  • Returns: Integer count of self paced classes for the course

sessions()

  • Returns: List of Session list of sessions linked to this course

shortWebDescription()

The course short description is displayed on the courses page as a description of course under the title.
If value not set, webDescription will be displayed.
It can contain rich text for embedding images, blocks, video, dynamic text, and more. It also supported unicode for multi-language support.

  • Returns: String a rich text field for display on the web

status()

  • Returns: CourseStatusDTO Documentation not yet available

tags()

  • Returns: List of Tag The list of tags assigned to course

unscheduledClassesCount()

  • Returns: Integer count of unscheduled classes for the course

voucherProduct()

  • Returns: List of VoucherProduct list of sutable Vouchers for this course

waitingLists()

  • Returns: List of WaitingList all the waiting list entries for this course

webDescription()

The course description is displayed on the course detail page. It can contain rich text for embedding images,
blocks, video, dynamic text, and more. It also supported unicode for multi-language support.

  • Returns: String a rich text field for display on the web

CourseClass

The CourseClass entity is what you see in the user interface called just "class". The term
'CourseClass' is used because 'class' is a reserved word in Java and will cause ambiguity.

A CourseClass is the object which can be enrolled in by students, has a price, timetable and represents
the instance of the Course which is sold and delivered.

addDiscount(discount)

Add given discount to available class discounts list

  • discount: Discount Documentation not yet available

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

activeAttendances()

  • Returns: List of Attendance attendance records for all SUCCESS enrolments

actualCustomInvoices()

  • Returns: def Documentation not yet available

actualDiscounts()

  • Returns: def Documentation not yet available

actualFeeIncome()

  • Returns: def Documentation not yet available

actualOtherIncome()

  • Returns: def Documentation not yet available

actualTotalCost()

  • Returns: def Documentation not yet available

actualTotalIncome()

  • Returns: def Documentation not yet available

actualTotalProfit()

  • Returns: def Documentation not yet available

allCustomFields()

  • Returns: Map of String, Object all custom field values

allNotes()

  • Returns: List of Note all related notes

assessmentClasses()

attendance()

An alias for getAttendance(true)

  • Returns: def attendance lines for this particular courseClass including tutors

attendanceType()

attendanceWithoutTutor()

An alias for getAttendance(false)

  • Returns: def attendance lines for this particular courseClass excluding tutors

budgetedCustomInvoices()

  • Returns: def Documentation not yet available

budgetedDiscounts()

  • Returns: def Documentation not yet available

budgetedFeeIncome()

  • Returns: def Documentation not yet available

budgetedOtherIncome()

  • Returns: def Documentation not yet available

budgetedPlaces()

  • Returns: Integer number of budgeted places

budgetedTotalCost()

  • Returns: def Documentation not yet available

budgetedTotalIncome()

  • Returns: def Documentation not yet available

budgetedTotalProfit()

  • Returns: def Documentation not yet available

cancelWarningMessage()

  • Returns: String class cacellation warning message

category()

Returns the first child of the 'Subject' tag of the course this courseClass belongs to
Subject/[Languages]/Japanese

  • Returns: def the name of the Subject child tag applied to this CourseClass

censusDate()

  • Returns: LocalDate the census date for NCVER reporting

classroomHours()

  • Returns: BigDecimal the sum of the duration of all sessions attached to this CourseClass

code()

  • Returns: String class code

corporatePassCourseClass()

Returns all CorperatePasses that can be used with this CourseClass

costs()

  • Returns: List of ClassCost all ClassCosts linked to this CourseClass

course()

  • Returns: Course course record linked to this class

createdOn()

  • Returns: Date the date and time this record was created

customFieldValue(key)

  • key: String custom field unique key @return custom field value @throws MissingPropertyException

  • Returns: Object custom field value @throws MissingPropertyException

deliveryMode()

  • Returns: DeliveryMode standard deliveryMode value for AVETMISS reporting

deposit()

description()

  • Returns: String description for this class containing its course name and venue where it is held

detBookingId()

DET Booking ID are used for NSW ePayments AVETMISS reporting.

  • Returns: String standard DET Booking ID string

discountCourseClasses()

Returns all Discount that can be used with this CourseClass

discountedInvoiceLinesForEnrolments()

Collects all successful enrolments attached to this courseClass used a discount

  • Returns: def InvoiceLines sorted by discount name

discounts()

Return the immutable list of discounts available for class
To add more available discounts for the class see CourseClass.addDiscount(Discount)

  • Returns: List of Discount available discounts list for this class

discountsDescription()

Returns a string with the format "discount.name discount.description discount.feeExGst" for all discounts attached to this CourseClass

  • Returns: def

displayableLocation()

  • Returns: String a string representation of the site name, street, suburb, and postcode.

documents()

  • Returns: List of Document all attached documents

endDateTime()

  • Returns: Date end date and time of the last session of the class

enrolments()

  • Returns: List of Enrolment complete list of enrolments (successful, failed or cancelled) ever made to this class

enrolmentsCount()

  • Returns: def Integer number of successful enrolments in this CourseClass

enrolmentsToProceed()

Get number of enrolments for class to cover its running costs.

  • Returns: def required number of enrolments

enrolmentsToProfit()

Get number of enrolments for class to be profitable.

  • Returns: def required number of enrolments

enrolmentsWithinDateRange(from, to)

Get number of enrolments for class created in a given date range

  • from: Date start Date range @param to end Date range @return number of enrolments created within the given range

  • to: Date end Date range @return number of enrolments created within the given range

  • Returns: def number of enrolments created within the given range

expectedHours()

  • Returns: BigDecimal

feeExGst()

  • Returns: Money the class free exclusing GST

feeGST()

  • Returns: Money the GST of the class fee

feeIncGst()

  • Returns: Money class fee including GST

finalDETexport()

  • Returns: String

firstRoom()

  • Returns: def the Room associated with the first session of the class

firstSession()

Convenience method to get the very first (chronologically) session for a class

  • Returns: Session first session (in chronological order)

firstSubjectTag()

  • Returns: def the first child of the Subject tag applied to this class

fullFeeEnrolments()

  • Returns: def all enrolments that did not use a discount

fullFeeEnrolmentsFeesSum()

  • Returns: def the sum of all enrolment fees for all enrolments that did not use a discount

hasZeroWages()

  • Returns: boolean Documentation not yet available

incomeAccount()

initialDETexport()

  • Returns: String

invoiceLines()

  • Returns: List of InvoiceLine invoice lines related to this class

isActive()

  • Returns: Boolean true if class is active and can accept enrolments

isCancelled()

  • Returns: Boolean true if class has been cancelled

isClassFeeApplicationOnly()

  • Returns: Boolean

isDistantLearningCourse()

  • Returns: Boolean true if class is distant learning, this means that class type is Distant Learning

isHybrid()

  • Returns: Boolean true if class is hybrid, this means that class type is Hybrid

isShownOnWeb()

  • Returns: Boolean true if class is visible and searchable on college website

isTraineeship()

  • Returns: boolean Documentation not yet available

manuallyDiscountedEnrolments()

  • Returns: def all enrolments in this courseClass enrolled with a manual discount

maxStudentAge()

  • Returns: Integer the maximum age of students allowed to enrol in this courseClass

maximumDays()

  • Returns: Integer

maximumPlaces()

  • Returns: Integer maximum number of enrolments class can accept

maximumTotalCost()

  • Returns: def Documentation not yet available

maximumTotalIncome()

  • Returns: def Documentation not yet available

maximumTotalProfit()

  • Returns: def Documentation not yet available

message()

  • Returns: String

midwayDETexport()

  • Returns: String

minStudentAge()

  • Returns: Integer the minimum age of students allowed to enrol in this courseClass

minimumPlaces()

  • Returns: Integer minimim number of enrolments required for class to proceed

modifiedOn()

  • Returns: Date the date and time this record was modified

nominalHours()

  • Returns: BigDecimal Documentation not yet available

notCancelledAttendance()

An alias for getAttendance(true)

  • Returns: def attendance lines for this particular courseClass including tutors

notes()

  • Returns: String concatenated private notes

outcomes()

  • Returns: def all outcomes of all enrolments in this courseCLass

payableClassroomHours()

  • Returns: BigDecimal sum of payable hours in all sessions of this courseClass

percentageOfDeliveredScheduledHoursBeforeDate(treshold)

Convenience method to get the percentage of delivered hours

  • treshold: Date - date to calculate the ratio @return percentage of delivered hours

  • Returns: BigDecimal percentage of delivered hours

placesLeft()

  • Returns: int Documentation not yet available

placesLeft()

  • Returns: def number of enrolments left before reaching the maxiumum number of enrolments in the courseClass

prepaidFeesForMonth(monthsCount)

  • monthsCount: int Documentation not yet available

  • Returns: def Documentation not yet available

publicRelativeURL()

  • Returns: String /class/uniqueCode

qualificationHours()

  • Returns: BigDecimal Documentation not yet available

quoteLines()

  • Returns: List of QuoteLine quote lines related to this class

refundedAndCancelledEnrolments()

  • Returns: def Documentation not yet available

relatedFundingSource()

Returns the funding source for this CourseClass.

reportableHours()

  • Returns: BigDecimal

room()

  • Returns: Room main room associated with this class

sessionModules()

  • Returns: def Documentation not yet available

sessions()

  • Returns: List of Session list of sessions linked to this class

sessionsCountForTutor(t)

  • t: Tutor Documentation not yet available

  • Returns: int

startDateTime()

  • Returns: Date start date and time of the first session of the class

studentContactHours()

  • Returns: BigDecimal Documentation not yet available

subcategory()

Returns the first child of the 'Subject' tag of the course this courseClass belongs to
Subject/Languages/[Japanese]

  • Returns: def the name of the 2nd Subject child tag applied to this CourseClass

successAndQueuedEnrolments()

  • Returns: List of Enrolment list of successful and in transaction enrolments made to this class

suppressAvetmissExport()

  • Returns: Boolean true if this class is suppressed from AVETMISS export

tags()

  • Returns: List of Tag The list of tags assigned to course class

taxAdjustment()

timeZone()

  • Returns: TimeZone time zone of the class venue or default server time zone if not specified

timetableSummary()

  • Returns: def Documentation not yet available

totalIncomeAmount()

  • Returns: def Documentation not yet available

totalIncomeAmountWithoutPrepaidFees()

  • Returns: def Documentation not yet available

tutorNames()

  • Returns: def Documentation not yet available

tutorNamesAbriged()

  • Returns: def Documentation not yet available

tutorRoles()

Returns the a list of TutorRole objects that is used to relate CourseClasses and Tutors

  • Returns: List of CourseClassTutor relation TutorRole object of each Tutor assigned to this class

tutorsAbridged()

  • Returns: String Documentation not yet available

type()

  • Returns: CourseClassType class type like With Sessions, Distant Learning, Hybrid

uniqueCode()

  • Returns: String a unique identifier in the form courseCode-classCode.

uniqueSessionModules()

  • Returns: def Documentation not yet available

validEnrolmentCount()

  • Returns: int number of successful and in transaction enrolments made to this class

valueForKey(key)

  • key: String Documentation not yet available

  • Returns: Object

vetCourseSiteID()

  • Returns: Integer

vetFundingSourceStateID()

  • Returns: String

vetPurchasingContractID()

  • Returns: String

vetPurchasingContractScheduleID()

  • Returns: String

webDescription()

  • Returns: String web description field that is rendered on courseClass webpage

isActual()

Checks if CourseClass isn't finished and isn't cancelled in the moment of method call

  • Returns: def

removeDiscount(discount)

Remove given discount from available class discounts list

  • discount: Discount Documentation not yet available

CourseClassTutor

A CourseClass record may have one or more Tutors attached to it. The same Tutor may even
be attached several times with different roles. For example, as a lecturer and an assessor.
This then feeds the tutor attendance and payroll functionality.

confirmedOn()

  • Returns: Date the date this tutor has been confirmed on

courseClass()

createdOn()

  • Returns: Date the date and time this record was created

definedTutorRole()

  • Returns: DefinedTutorRole the role with which the Tutor has been attached to the CourseClass

inPublicity()

  • Returns: Boolean returns true if this tutor is publically shown in class information

modifiedOn()

  • Returns: Date the date and time this record was modified

sessionSummary()

A summary of the CourseClass sessions. Returns the number of sessions and the sum of hours in all sessions
The output for a class with 3 sessions and 5 hours per session would be:

3 (15)
  • Returns: def number of sessions and total hours

sessionsTutors()

  • Returns: List of TutorAttendance the attendance records related to this tutor and their role in the courseClass

tutor()

  • Returns: Tutor the linked Tutor

CourseModule

Object representing relation between course and module.

course()

  • Returns: Course linked course record

createdOn()

  • Returns: Date the date and time this record was created

modifiedOn()

  • Returns: Date the date and time this record was modified

module()

  • Returns: Module linked module record

CustomField

A CustomField value. Only String is currently supported.

createdOn()

  • Returns: Date the date and time this record was created

customFieldType()

modifiedOn()

  • Returns: Date the date and time this record was modified

value()

  • Returns: String the stored value

CustomFieldTrait

CustomFieldType

A definition of a custom field which can be used to extend the Contact object.

createdOn()

  • Returns: Date the date and time this record was created

dataType()

Custom fields can have a data type to constrain the data which can be stored. This cannot be changed once the field has been created.

defaultValue()

When a new records is created, the custom field can be populated with a default value

  • Returns: String default value for this custom field type

entityIdentifier()

The entity (eg. Contact, Enrolment) to which this custom field type is bound.

  • Returns: String

isMandatory()

  • Returns: Boolean if true, the custom field must be not null and not empty in order to save the Contact record

key()

Key, by which custom field may be referenced (for example in groovy DSL). Once set, cannot be changed, unlike Name
E.g. for getting value from contact custom field "Passport number" with key "passNum" following expression can be
used: 'contact.passNum' as alternative to 'contact.customField("Passport Number")'

  • Returns: String set fieldKey value

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

Name of the custom field, mandatory, can be changed

  • Returns: String the human readable name of the field

DefinedTutorRole

Tutor roles represent the type of engagement a tutor has in a class. They might be a 'trainer', 'assistant' or
'assessor' or any number of other roles. The DefinedTutorRole objects are set up in preferences and typically not changed
often.

Each role can have a set of pay rates, although the specific pay rate can also be overridden per tutor per class.

active()

Tutor roles need the capacity to be retired.
So if active is false they no longer appear in the drop down list inside the class add tutor process

  • Returns: Boolean true if TutorRole is active and can be applied for class

currentPayrate()

  • Returns: PayRate Documentation not yet available

description()

  • Returns: String the description for this tutor role

name()

  • Returns: String the name of this role

payRateForCourseClass(courseclass)

For the start date of a particular class, get the pay rate for this role. If the class has no schedule,
and therefore no start date, use today's date.

  • courseclass: CourseClass calculate the payrate for a particular class @return the applicable pay rate

  • Returns: PayRate the applicable pay rate

payRateForDate(date)

For a particular date, get the rate which is valid. If nothing is applicable, return null

  • date: Date date to get payrate for @return the applicable pay rate

  • Returns: PayRate the applicable pay rate

payRateForSession(session)

For a particular session, get the pay rate. If you pass a session without a defined start date, then use
today's date.

  • session: Session calculate the payrate for a particular session @return the applicable pay rate

  • Returns: PayRate the applicable pay rate

payRates()

Pay rates can be given a starting date in which case the new rate takes over from the previous one on that date.
In this way forward planning for pay rises can be built in.

  • Returns: List of PayRate a list of applicable pay rates for this role

Discount

A discount represents a set of rules used to determine whether a different price can be applied to an enrolments.
Discounts can be negative (in which case they represent a surcharge).

addCourseClass(courseClass)

Add the discount to given class available discounts list

  • courseClass: CourseClass Documentation not yet available

addByDefault()

  • Returns: Boolean true if discount is added by default when creating a new class

applicableDiscounts(courseClass)

  • courseClass: CourseClass class to check @return list of applicable discounts

  • Returns: List of Discount list of applicable discounts

availableFor()

code()

  • Returns: String promotion code for this discount

cosAccount()

  • Returns: Account cos account for this discount

createdOn()

  • Returns: Date the date and time this record was created

discountConcessionTypes()

discountCourseClasses()

  • Returns: List of DiscountCourseClass list of classes linked to this discount, discount can be applied only if enrolling to classes from this list

discountDollar()

  • Returns: Money discount's dollar value

discountMax()

Maximum discount value sets a cap on the discount value which can be applied.
For example, if invoice line amount is $100, discount is 30% and maximum discount value is set to $10,
only $10 discount will be applied.

  • Returns: Money maximum value for this discount

discountMemberships()

discountMin()

Minimum discount value sets a minimal discount value for this discount
For example, if invoice line amount is $100, discount is 10% and minimum discount value is set to $20,
then $20 discount will be applied instead of $10.

  • Returns: Money minimum value for this discount

discountPercent()

  • Returns: BigDecimal discount's percentage

discountType()

  • Returns: DiscountType type of discount: percent, dollar value or fee override

discountedEnrolments()

Get all the active enrolments which used this discount and the amount of the discount isn't $0

  • Returns: List of Enrolment a list of enrolments

discountedEnrolments(from, to)

Get all the active enrolments which used this discount and the amount of the discount isn't $0
Filter that list of enrolments to a date range. If you pass a null date in either option, then that part of the
filter is not applied. The date range applies to the invoice creation date, not the enrolment date.

  • from: Date the starting date of the range. This date will automatically be extended to the previous midnight @param to the ending date of the range. This date will automatically be extended to the next midnight @return a list of enrolments

  • to: Date the ending date of the range. This date will automatically be extended to the next midnight @return a list of enrolments

  • Returns: List of Enrolment a list of enrolments

hideOnWeb()

  • Returns: Boolean true if this discount is hidden from promotions list on website

isAvailableOnWeb()

  • Returns: Boolean true if discount is available to students enrolling on website

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String the name of the discount. Will be displayed on the website as well.

predictedStudentsPercentage()

  • Returns: BigDecimal predicted percentage of students using this discount

publicDescription()

  • Returns: String a description which may be displayed to students

rounding()

After the discount is applied, different rounding options can be applied to the resulting amount.

studentAge()

The discount can be limited to students up to a certain age.

  • Returns: String Maximum student age in years TODO: why does this return String?

studentEnrolledWithinDays()

  • Returns: Integer number of days from last enrolment student should not exceed to receive the discount

studentPostcode()

The discount can be limited to students who live in certain postcodes. If more than one postcode is needed,
separate them with commas ",".

  • Returns: String one or more postcodes for the student's address

studentPostcodes()

  • Returns: List of String list of postcodes whose residents are eligible for this discount

totalDiscountExTax(from, to)

Get the total amount of discount (ex tax) applied to all invoices created in the date range. If you pass a
null date in either option, then that part of the filter is not applied.

  • from: Date the starting date of the range. This date will automatically be extended to the previous midnight @param to the ending date of the range. This date will automatically be extended to the next midnight @return total amount of discount ex tax

  • to: Date the ending date of the range. This date will automatically be extended to the next midnight @return total amount of discount ex tax

  • Returns: def total amount of discount ex tax

totalDiscountIncTax(from, to)

Get the total amount of discount (including tax) applied to all invoices created in the date range. If you pass a
null date in either option, then that part of the filter is not applied.

  • from: Date the starting date of the range. This date will automatically be extended to the previous midnight @param to the ending date of the range. This date will automatically be extended to the next midnight @return total amount of discount inc tax

  • to: Date the ending date of the range. This date will automatically be extended to the next midnight @return total amount of discount inc tax

  • Returns: Money total amount of discount inc tax

validFrom()

If this value is null the discount doesn't have a start date.

  • Returns: Date the date before which the discount will not be applied

validTo()

If this value is null the discount doesn't have an expiry date.

  • Returns: Date the date after which the discount will not be applied

isStudentEligibile(contact, newMemberships, courseClass, enrolledClasses, purchaseTotal)

Determines if the given student is eligible for this Discount. Note that this checks just the student attributes
and not whether enrolment, time or other restrictions of the discount might prevent its application.

  • contact: Contact Documentation not yet available

  • newMemberships: List of MembershipProduct Documentation not yet available

  • courseClass: CourseClassTrait Documentation not yet available

  • enrolledClasses: List of CourseClass Documentation not yet available

  • purchaseTotal: Money Documentation not yet available

  • Returns: boolean true if student is eligible

removeCourseClass(courseClass)

Remove the discount from given class available discounts list

  • courseClass: CourseClass Documentation not yet available

DiscountConcessionType

Object representing relation between discount and concession type.

concessionType()

createdOn()

  • Returns: Date the date and time this record was created

discount()

modifiedOn()

  • Returns: Date the date and time this record was modified

DiscountCourseClass

Object representing relation between discount and course class.

classCost()

  • Returns: ClassCost linked class cost record linked

courseClass()

createdOn()

  • Returns: Date the date and time this record was created

discount()

discountedEnrolments(from, to)

Returns all the discounted enrolments in the related courseclasses created in the provided date ranged

  • from: Date start of date range @param to end of date range @return discount enrolments in the related courseClass

  • to: Date end of date range @return discount enrolments in the related courseClass

  • Returns: def discount enrolments in the related courseClass

discountedInvoiceLines(from, to)

Returns all the invoicelines for enrolments in the related courseclasses created in the provided date ranged

  • from: Date start of date range @param to end of date range @return invoicelines joined to discount enrolments in the related courseClass

  • to: Date end of date range @return invoicelines joined to discount enrolments in the related courseClass

  • Returns: def invoicelines joined to discount enrolments in the related courseClass

modifiedOn()

  • Returns: Date the date and time this record was modified

predictedStudentsPercentage()

  • Returns: BigDecimal predicted percentage of students using this discount

totalDiscountedValue(from, to)

Returns the total amount discounted for enrolments created in a given date range

  • from: Date start of date range @param to end of date range @return total amount discounted

  • to: Date end of date range @return total amount discounted

  • Returns: def total amount discounted

DiscountMembership

Object representing relation between discount and membership.

applyToMemberOnly()

  • Returns: Boolean true if discount can only be applied to the owner of the membership and can't be applied to their related contacts

createdOn()

  • Returns: Date the date and time this record was created

discount()

discountMembershipRelationTypes()

membershipProduct()

modifiedOn()

  • Returns: Date the date and time this record was modified

DiscountMembershipRelationType

Object representing relation between DiscountMembership object and contact relation type.
Used to describe membership owner's contact relations which can use linked discount along with them.

contactRelationType()

createdOn()

  • Returns: Date the date and time this record was created

discountMembership()

modifiedOn()

  • Returns: Date the date and time this record was modified

Document

Document is a file (like text document, image, pdf, etc.) which can be attached to different types of
records in onCourse. Documents can have multiple versions allowing to track historic information for
RTO compliance purposes.

createdOn()

  • Returns: Date the date and time this record was created

currentVersion()

description()

  • Returns: String text description of this document

fileUUID()

Unique file identifier is assigned to every document stored in Amazon S3.
This id is used to generate HTTP links to the document.

  • Returns: String unique id for this attachment in Amazon S3 storage

isRemoved()

  • Returns: Boolean true if the document has been marked as removed

isShared()

  • Returns: Boolean true if document can be attached to multiple records at once

link()

  • Returns: String Documentation not yet available

linkOnCourse()

Generates URL to access file.

for 'Public' documents it is static address taht can be acceassable in any time.
for non 'Public' documents generate signed link which can be used in next 10 minutes only

  • Returns: String Documentation not yet available

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String name of this document

tags()

  • Returns: List of Tag The list of tags assigned to document

versions()

  • Returns: List of DocumentVersion historical list of versions of this document

webVisibility()

  • Returns: AttachmentInfoVisibility visibility setting for this document: private, public, enrolled students and tutors or tutors only

isActive()

  • Returns: Boolean Documentation not yet available

DocumentVersion

Specific version of a document record stored in onCourse.

byteSize()

  • Returns: Long size of attachment in bytes

createdByName()

  • Returns: String onCourse user / portal tutor name, who created this document version

createdByUser()

  • Returns: SystemUser onCourse user who created this document version

createdOn()

  • Returns: Date the date and time this record was created

description()

  • Returns: String description of this document version

displayableSize()

  • Returns: String displayble size of attachment in bytes

document()

fileName()

  • Returns: String default file name for this document version

hash()

  • Returns: String SHA-1 hash of the attachment file data

mimeType()

  • Returns: String MIME type of the attachment

modifiedOn()

  • Returns: Date the date and time this record was modified

pixelHeight()

  • Returns: Integer height of the image attachment in pixels, null if attachment is not image

pixelWidth()

  • Returns: Integer width of the image attachment in pixels, null if attachment is not image

thumbnail()

  • Returns: byte[] 140x140 thumbnail of the image attachment, null if attachment is not image

timestamp()

  • Returns: Date date and time when this document version was created

versionId()

  • Returns: String identifier of this document version used by Amazon S3 storage

EmailTemplate

Email template defines generic structure of an email suited for some particular purpose (enrolment confirmation,
invoice, cancellation notice) which is meant to be filled in with specific data and sent out repeatedly.
Email templates in onCourse use Groovy templates engine which uses Groovy language syntax.

bodyHtml()

  • Returns: String email HTML body template

bodyPlain()

  • Returns: String email plain text body template

createdOn()

  • Returns: Date the date and time this record was created

entity()

  • Returns: String specific record type email is linked to (e.g. enrolment for enrolment confirmation)

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String name of this email template

subject()

  • Returns: String email subject

Enrolment

An enrolment joins a student to a class. There can be only one enrolment per student per class.

An enrolment doesn't directly carry any financial information about the cost of the enrolment, however it might be linked
to one or more invoice lines which you can interrogate to determine the cost, discounts and follow through to the invoice
and payments. The join between InvoiceLine and Enrolment is one of the few places in onCourse where financial data
touches educational data. This is a quite deliberate delineation between the two.

An enrolment also doesn't carry information about attendance; there is an Attendance object which joins the Enrolment to
each Session in the CourseClass.

If you are looking for Outcomes for each unit of competency (Module) undertaken by the Student, then of course follow
the relation to Outcomes for this Enrolment.

allowedToPrint()

  • Returns: boolean true if this enrolment will be printed

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

allCustomFields()

  • Returns: Map of String, Object all custom field values

allNotes()

  • Returns: List of Note all related notes

attendancePercent()

Will return null if the class is self paced

  • Returns: Integer percent Attendance

attendanceType()

attendances()

  • Returns: List of Attendance related attendance list

cancelWarningMessage()

  • Returns: String class cacellation warning message

classAttendancePercent()

This is the percentage of the class time of the corresponding course class that the student attended during the whole sesssions time

  • Returns: Integer attendace per cent as a number from 0 to 100

confirmationStatus()

  • Returns: ConfirmationStatus enrolment confirmation email status: not sent, sent or suppressed from sending

courseClass()

courseModules()

  • Returns: List of Module all modules belongs to the course this enrolment belongs to

createdOn()

  • Returns: Date the date and time this record was created

creditFOEId()

  • Returns: String

creditLevel()

  • Returns: CreditLevel highest level of prior VET study

creditOfferedValue()

  • Returns: String

creditProvider()

  • Returns: String

creditProviderType()

creditTotal()

creditType()

  • Returns: CreditType details of prior study for which credit/RPL was offered

creditUsedValue()

  • Returns: String

cricosConfirmation()

  • Returns: String

customFieldValue(key)

  • key: String custom field unique key @return custom field value @throws MissingPropertyException

  • Returns: Object custom field value @throws MissingPropertyException

displayStatus()

  • Returns: String display status name

documents()

  • Returns: List of Document all attached documents

eligibilityExemptionIndicator()

  • Returns: Boolean

feeHelpAmount()

feeHelpStatus()

feeStatus()

invoiceLines()

  • Returns: List of InvoiceLine invoice lines related to this enrolment

modifiedOn()

  • Returns: Date the date and time this record was modified

notes()

  • Returns: String concatenated private notes

originalInvoiceLine()

  • Returns: InvoiceLine original invoice line which was created during enrolment process. Such invoice line store original enrolment price, discount amount and other properties which usually uses by customers in reports, exports and other components.

originalInvoiceLine()

  • Returns: def original invoice line which was created during enrolment process. Such invoice line store original enrolment price, discount amount and other properties which usually uses by customers in reports, exports and other components.

outcomes()

Non-VET classes will still have a single outcome for each enrolment, even though that outcome isn't linked to a
Module.

VET classes may have one or many outcomes. These outcomes are initially attached to the enrolment by creating one
Outcome for each Module attached to the Course. However a user may remove and attach other Modules by creating
or deleting Outcomes for this specific Enrolment.

  • Returns: List of Outcome a list of outcomes

quoteLines()

  • Returns: List of QuoteLine quote lines related to this class

relatedFundingSource()

Returns the funding source for this enrolment.

source()

Payment can be made in onCourse (office) or from the onCourse website (web).

  • Returns: PaymentSource where the payment for this enrolment was made

status()

student()

  • Returns: Student the student who enrolled

studentIndustryANZSICCode()

  • Returns: Integer ANZSIC standard code for industrial classification

studyReason()

  • Returns: StudyReason standard set of values for AVETMISS reporting

suppressAvetmissExport()

  • Returns: Boolean true if enrolment is suppressed from appearing in AVETMISS export

surveys()

  • Returns: List of Survey all survey results for this enrolment

trainingPlanDeveloped()

  • Returns: Boolean

vetClientID()

  • Returns: String

vetFeeExemptionType()

vetFeeIndicator()

  • Returns: Boolean

vetFundingSourceStateID()

An AVETMISS reporting requirement for the VET Funding source state ID of an enrolment. If the VET Funding source state ID
is not overridden in the enrolment, this function will return the value from the class.

  • Returns: String

vetIsFullTime()

  • Returns: Boolean returns true if this is a full time enrolment

vetPurchasingContractID()

An AVETMISS reporting requirement for the purchasing contract ID of an enrolment. If the purchasing contract ID
is not overridden in the enrolment, this function will return the value from the class.

  • Returns: String

vetPurchasingContractScheduleID()

  • Returns: String default value of vet purchasing contact schedule ids of related outcomes

vetTrainingContractID()

  • Returns: String

hasAttendance()

  • Returns: boolean true if related attendances exist for this enrolment

isCompleted()

  • Returns: boolean if enrolment is completed

EnrolmentFieldConfiguration

A field configuration which is used to collect enrolment information

createdOn()

  • Returns: Date the date and time this record was created

fieldHeadings()

  • Returns: List of FieldHeading a list of all headings attached to this field configuration

fields()

  • Returns: List of Field a sorted list of all fields attached to this field configuration

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String the name of this field configuration. Not shown to students anywhere.

EntityRelation

An Entity relation is a link between two records in onCourse. At the moment, Course and Product
relations are the only ones implemented.

Typically you would not use this record directly, but instead use methods on (for exmample) the Course
entity such as relatedCourses()

createdOn()

  • Returns: Date the date and time this record was created

fromEntity()

  • Returns: String type of entity on the left side of the relation

fromRecordId()

  • Returns: Long id of the record on the left side of the relation

modifiedOn()

  • Returns: Date the date and time this record was modified

relationType()

toEntity()

  • Returns: String type of entity on the right side of the relation

toRecordId()

  • Returns: Long id of record on the right side of the relation

EntityRelationType

considerHistory()

When considering shopping cart actions, do we need to consider only the current shopping cart
or should be look at all of the user's history of purchases and enrolments?

  • Returns: Boolean true if we should consider history

createdOn()

  • Returns: Date the date and time this record was created

description()

  • Returns: String the text description of this relation type

discount()

  • Returns: Discount a discount to apply to the record on the right side of the relation

entityRelations()

fromName()

  • Returns: String the label name of record on the left side of the relation

isShownOnWeb()

  • Returns: Boolean true if relation type is shown on web

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String the name of relation type

shoppingCart()

During a checkout process, we might need to apply certain rules.

  • Returns: EntityRelationCartAction the cart action which should be applied to the record on the right

toName()

  • Returns: String the label name of record on the right side of the relation

ExportTemplate

Export template describes the way records from onCourse are transformed into specific export format (XML, CSV, etc.)
Export templates in onCourse rely on Groovy script for defining transformation logic.

body()

  • Returns: String body of this export template

createdOn()

  • Returns: Date the date and time this record was created

entity()

  • Returns: String type of entity this export template can be applied to

keyCode()

  • Returns: String unique key code identifier of this export template

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String name of this export template

Faculty

A Faculty is the section of the University offering a course.

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

allNotes()

  • Returns: List of Note all related notes

code()

This code must be unique across all faculties. It cannot contain spaces or hyphens. Because it is used to generate
a URL for the faculty, it should also be selected for readability, websafe characters and SEO.

  • Returns: String course code

courses()

  • Returns: List of Course courses in which this faculty is assigned

createdOn()

  • Returns: Date the date and time this record was created

documents()

  • Returns: List of Document all attached documents

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String The name for this faculty.

notes()

  • Returns: String concatenated private notes

shortWebDescription()

The faculty short description is displayed on the faculties page as a description of faculty under the title.
If value not set, webDescription will be displayed.
It can contain rich text for embedding images, blocks, video, dynamic text, and more. It also supported unicode for multi-language support.

  • Returns: String a rich text field for display on the web

tags()

  • Returns: List of Tag The list of tags assigned to faculty

webDescription()

The faculty description is displayed on the faculty detail page. It can contain rich text for embedding images,
blocks, video, dynamic text, and more. It also supported unicode for multi-language support.

  • Returns: String a rich text field for display on the web

Field

Data collection rules {@link FieldConfigurationScheme} are made up of Fields.
They are ordered and grouped with headings.

Note that some fields have special treatment in the user interface. For example
validation on email address or date of birth, or autocomplete on suburb and postcode.

createdOn()

  • Returns: Date the date and time this record was created

description()

  • Returns: String a description of the field is typically used for help or hover text in the UI

fieldConfiguration()

Fields are grouped into FieldConfigurations

fieldHeading()

  • Returns: FieldHeading the FieldHeading under which this Field is grouped

mandatory()

  • Returns: Boolean true if this field is required to have a non-null value to validate the data collection

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String the name of the field is usually shown as a label in the UI

property()

  • Returns: String a string property key which identifies which attribute this fields points to

FieldConfiguration

Data collection rules {@link FieldConfigurationScheme} comprise several FieldConfigurations:

  1. waiting list
  2. enrolment
  3. application
  4. survey

A {@link FieldConfiguration} can be reused as part of several different schemes

createdOn()

  • Returns: Date the date and time this record was created

fieldHeadings()

  • Returns: List of FieldHeading a list of all headings attached to this field configuration

fields()

  • Returns: List of Field a sorted list of all fields attached to this field configuration

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String the name of this field configuration. Not shown to students anywhere.

schemes()

FieldConfigurationScheme

Data collection rules {@link ish.oncourse.cayenne.FieldConfigurationScheme} comprise several FieldConfigurations:

  1. waiting list
  2. enrolment
  3. application
  4. survey

A {@link ish.oncourse.cayenne.FieldConfiguration} can be reused as part of several different schemes. Although called
{@link ish.oncourse.cayenne.FieldConfigurationScheme} here in the API, the user interface refers only to Data Collection Rules.

Each course is linked to a single scheme which then determines how forms are displayed to a student.

FieldConfiguration contains both FieldHeading and Field in a sorted order.

applicationFieldConfiguration()

courses()

  • Returns: List of Course a list of all courses attached. Careful, this could be a long list and isn't paginated.

createdOn()

  • Returns: Date the date and time this record was created

enrolFieldConfiguration()

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

This is displayed in the UI when attaching a course to a scheme but never shown to students.

  • Returns: String The name of the scheme.

waitingListFieldConfiguration()

FieldHeading

Data collection rules {@link FieldConfigurationScheme} have zero or more headings under which
the Fields are grouped.

createdOn()

  • Returns: Date the date and time this record was created

description()

The description is usually shown in the UI under the name, within some sort of border or panel

  • Returns: String a description: it might be several paragraphs

fieldConfiguration()

FieldHeadings are grouped into FieldConfigurations

fields()

  • Returns: List of Field a sorted list of the fields under this heading

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String the name of the heading is usually shown in a large font in the UI

FundingSource

active()

  • Returns: Boolean true if active

createdOn()

  • Returns: Date the date and time this record was created

enrolments()

  • Returns: List of Enrolment enrolments created using this funding source

flavour()

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String name of this funding source

FundingUpload

createdOn()

  • Returns: Date the date and time this record was created

fundingUploadOutcomes()

modifiedOn()

  • Returns: Date the date and time this record was modified

outcomeCount()

  • Returns: Long Documentation not yet available

status()

systemUser()

  • Returns: SystemUser Documentation not yet available

FundingUploadOutcome

createdOn()

  • Returns: Date the date and time this record was created

endDate()

  • Returns: LocalDate Documentation not yet available

fundingUpload()

modifiedOn()

  • Returns: Date the date and time this record was modified

outcome()

  • Returns: Outcome Documentation not yet available

startDate()

  • Returns: LocalDate Documentation not yet available

GradingItem

The GradingItem is one of the entry of grading type, if the grading entry type is entries.
The GradingItem has next properties:

  • name
  • a lower bound which allows specifying the appropriate entry

createdOn()

  • Returns: Date the date and time this record was created

gradingType()

  • Returns: GradingType a grading type which this item has related to

itemName()

  • Returns: String name of this grading type

lowerBound()

  • Returns: BigDecimal a lower bound of allowed range for the entry

modifiedOn()

  • Returns: Date the date and time this record was modified

GradingType

The GradingType allows to describe possible grading types. The description includes into itself:

  • name
  • min value of allowed range
  • max value of allowed range
  • entry type: numberic or entries.
    If the entry type of grading is entries the grading type will have list of graiding items.

createdOn()

  • Returns: Date the date and time this record was created

entryType()

  • Returns: GradingEntryType entry type

gradingItems()

  • Returns: List of GradingItem list of grading items, which related to this type

maxValue()

  • Returns: BigDecimal max allowed value for this grading type

minValue()

  • Returns: BigDecimal min allowed value for this grading type

modifiedOn()

  • Returns: Date the date and time this record was modified

typeName()

  • Returns: String name of this grading type

Import

Import describes the way some external format (XML, CSV, etc.) can be transformed into onCourse records.
Imports in onCourse rely on Groovy script for defining transformation logic.

createdOn()

  • Returns: Date the date and time this record was created

keyCode()

  • Returns: String the unique keycode for this import

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String the visible name for this import in the UI

script()

  • Returns: String The groovy script which processes the import

Invoice

Invoices are where the accounting side of onCourse meets the training and delivery parts of the
database. Invoices can be created to any contact. The financial data on them is immutable, that is
the dates and dollar amounts cannot be modified after creation.

Invoice lines may join to enrolments or products for sale.

Negative invoices represent credit notes.

enrolmentsPerStudent()

Builds a list of enrolments from the invoice lines mapped per student.

  • Returns: Map of Student, Enrolment a map of enrolments (values as Collection) per student (keys)

allCustomFields()

  • Returns: Map of String, Object all custom field values

contact()

This is the contact to whom the invoice was issued. They are liable for the debt this invoice represents.
Note that the invoice contact might not be the same contact as the person enrolled in classes linked to
invoice lines.

  • Returns: Contact to whom the invoice was issued

customFieldValue(key)

  • key: String custom field unique key @return custom field value @throws MissingPropertyException

  • Returns: Object custom field value @throws MissingPropertyException

debtorsAccount()

enrolmentsWithStatus(enrolmentStatus)

  • enrolmentStatus: EnrolmentStatus Documentation not yet available

  • Returns: List of Enrolment a list of enrolments with a specified status

invoiceLines()

  • Returns: List of InvoiceLine list of invoice line records linked to this invoice

paymentInLines()

Follow this join to find all payments made against this invoice. Remember that onCourse supports multiple payments
against one invoice and also partial payments against an invoice, so you can follow this join to many payments
and some of those payment may also link to other invoices.

  • Returns: List of PaymentInLine all payementInLines against this invoice

paymentLines()

Get a list of paymentInLines and paymentOutLines linked to this invoice

  • Returns: List of PaymentLineInterface all paymentLines against this invoice

paymentOutLines()

If this invoice was a credit note, then a PaymentOut (or several) might be linked against it.

  • Returns: List of PaymentOutLine all payementOutLines against this invoice

printHeading()

Prints 'Tax Invoice' or 'Credit Note' depending on the amount owing on this invoive

  • Returns: def invoice print heading

unpaidInvoiceDueDates()

  • Returns: def all unpaid InvoiceDueDates for this Invoice

hasNonTaxableInvoiceLines()

  • Returns: def Documentation not yet available

hasTaxableInvoiceLines()

  • Returns: def

InvoiceDueDate

Object representing single payment due date of a payment plan.

amount()

  • Returns: Money amount due to be paid

createdOn()

  • Returns: Date the date and time this record was created

dueDate()

  • Returns: LocalDate the date when payment is due

invoice()

  • Returns: Invoice invoice record linked to this

modifiedOn()

  • Returns: Date the date and time this record was modified

unpaidAmount()

  • Returns: def amount that still unpaid for the associate invoice

InvoiceLine

account()

  • Returns: Account account linked to this invoice line

courseClass()

  • Returns: CourseClass class linked to this invoice line

enrolment()

  • Returns: Enrolment enrolment linked to this invoice line

invoiceLineDiscounts()

productItems()

  • Returns: List of ProductItem product items linked to this invoice line

voucherPaymentIn()

  • Returns: List of VoucherPaymentIn voucher payment records linked to this invoice line

isTaxableAccount()

Is it possible for tax to be applied to this account? For now this is a simplistic test: liability and asset
accounts cannot have tax applied.

  • Returns: def true if tax could be applied

InvoiceLineDiscount

Object representing relation between InvoiceLine and Discount.

createdOn()

  • Returns: Date the date and time this record was created

discount()

invoiceLine()

modifiedOn()

  • Returns: Date the date and time this record was modified

Language

This table is read-only since it is updated through an automated process, pulling changes and new records
from an onCourse update service. That data is turn is fed from updates to the ABS (Australian Beureau of Statistics)
reference data.

Note that the ABS will sometimes remove entries, however we will always preserve historic records.

absCode()

  • Returns: String The language code defined by the ABS

createdOn()

  • Returns: Date the date and time this record was created

isActive()

When older languages are removed from the government standards list, they aren't deleted here but just disabled.

  • Returns: Boolean whether this language is still available for use

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String the name of the language

Membership

A persistent class mapped as "Membership" Cayenne entity.

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

allCustomFields()

  • Returns: Map of String, Object all custom field values

confirmationStatus()

  • Returns: ConfirmationStatus confirmation email sending status: not sent, sent or suppressed from sending

contact()

  • Returns: Contact contact who owns this product item

createdOn()

  • Returns: Date the date and time this record was created

customFieldValue(key)

  • key: String custom field unique key @return custom field value @throws MissingPropertyException

  • Returns: Object custom field value @throws MissingPropertyException

documents()

  • Returns: List of Document all attached documents

expiryDate()

  • Returns: Date date when product item (e.g. membership) expires

invoiceLine()

  • Returns: InvoiceLine purchase invoice line for this product item

modifiedOn()

  • Returns: Date the date and time this record was modified

product()

  • Returns: Product product type of this item

status()

  • Returns: ProductStatus current status of this product item: active, cancelled, credited, redeemed, expired or delivered

MembershipProduct

A persistent class mapped as "MembershipProduct" Cayenne entity.

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

allCustomFields()

  • Returns: Map of String, Object all custom field values

allNotes()

  • Returns: List of Note all related notes

customFieldValue(key)

  • key: String custom field unique key @return custom field value @throws MissingPropertyException

  • Returns: Object custom field value @throws MissingPropertyException

discountMemberships()

  • Returns: List of DiscountMembership relational object mapping this object to the Discount used to purchase it

discountsAvailable()

  • Returns: List of Discount Discounts available to be used with purchase of this Membership

documents()

  • Returns: List of Document all attached documents

notes()

  • Returns: String concatenated private notes

Message

A message sent to a Contact record can represent an SMS, email or postal document. A Message might be sent as email, SMS or post all at the same time and be delivered by two or more of those means to the same users. It is possible for a Message to
sent to a single Contact or to thousands.

Email and SMS messages are queued on the onCourse server and delivered in the background in a batch process every minute
or so.

contact()

  • Returns: Contact the contact to whom the message will be delivered

createdBy()

  • Returns: SystemUser the SystemUser who created the message

createdOn()

  • Returns: Date the date and time this record was created

creatorKey()

  • Returns: String specific key of the message. It can be set in scripts.

destinationAddress()

This field will be null for postal messages, contain a mobile phone number for SMS or email address for email messages

  • Returns: String a destination address

emailBody()

If this message is an email, this returns the plaintext body. Although it is possible to send an email with an
html part only, it is recommended that you always send a plaintext part as well in order to support all users
with different devices.

  • Returns: String plaintext message

emailFrom()

  • Returns: String a properly formatted email address

emailHtmlBody()

If this message is an email, this returns the html body. It is possible for this part to be null or empty even if
the message is an email, in which case only the plaintext message will be sent.

  • Returns: String html message

emailSubject()

If this message is an email, this must contain a not empty subject string

  • Returns: String subject

modifiedOn()

  • Returns: Date the date and time this record was modified

numberOfAttempts()

  • Returns: Integer the number of times we attempted to deliver the message

postDescription()

If this message is sent by snail mail (post), this contains a description of what was sent

  • Returns: String a human entered description of the message

response()

  • Returns: String the response from the mail server or SMS gateway, if any

smsText()

If this message is an SMS, this contains the text. If the text is longer than a standard SMS length, it will be
delivered as two or more SMS messages, incurring additional charges

  • Returns: String SMS content

status()

timeOfDelivery()

  • Returns: Date the time and date on which the message was delivered

type()

  • Returns: MessageType a type representing email, SMS or post

Module

The Module class contains records from both modules (state based) and units of competetency (national)
from the training.gov.au website. You cannot create or delete records in this table since they are
automatically kept in sync with data from the official website.

courses()

  • Returns: List of Course a list of courses linked to this module

createdOn()

  • Returns: Date the date and time this record was created

creditPoints()

Credit points may be issued for the award of this module.

  • Returns: BigDecimal number of credit points as a decimal

creditPointsStatus()

  • Returns: ModuleCreditPointsStatusDTO Documentation not yet available

expiryDays()

Some modules are valid only for a certain period of time before they need to be renewed.

  • Returns: Integer Number of days after award before expiry

fieldOfEducation()

  • Returns: String the NCVER 'Subject field of education' identifer code

isOffered()

  • Returns: Boolean true if this module is offered by the college

modifiedOn()

  • Returns: Date the date and time this record was modified

nationalCode()

  • Returns: String a unique code which could be issued by an educational governing body or created by the college

nominalHours()

A number of hours in which this module is expected to be delivered.

  • Returns: BigDecimal nominal hours

relatedCourses()

  • Returns: List of Course courses related to this module

specialization()

  • Returns: String Documentation not yet available

title()

  • Returns: String title

type()

  • Returns: ModuleType the educational accreditation type of module

Note

A Note is a freeform piece of text attached to another record. Each note is timestamped and we record who created it
and when they did. Normally you'd set access rights so that most users can create but not edit notes in order to create
a comprehensive audit trail.

changedBy()

  • Returns: SystemUser the user who last changed this note

createdOn()

  • Returns: Date the date and time this record was created

modifiedOn()

  • Returns: Date the date and time this record was modified

note()

  • Returns: String the text of the note itself

systemUser()

  • Returns: SystemUser the user who created this note

Outcome

Outcomes are a relationship between a student and a Module/Unit of Competency and represents
a student's progress through training, and the result of their assessment.
Typically an outcome is linked to a single enrolment, but it is possible for outcomes to be
created which aren't linked to an enrolment at all for recognition of prior learning.

actualEndDate()

  • Returns: LocalDate actual end date of outcome: depends on attendances and assessment submissions

actualStartDate()

  • Returns: LocalDate actual start date of outcome: depends on attendances and assessment submissions

certificate()

All the certificates this outcome has ever been linked to. Be careful since this might return a large number of records.
You might be better performing a query on the certificate entity to get just the results you need.

code()

  • Returns: String the national code of this outcome. If it is not VET, then the code of the course or name of prior learning

createdOn()

  • Returns: Date the date and time this record was created

deliveryMode()

An AVETMISS reporting requirement for the delivery mode of an outcome.
TODO: review why this isn't picking up the status from the class when this value is null

endDate()

  • Returns: def end date and time of the outcome

enrolment()

  • Returns: Enrolment onCourse enrolment linked to the outcome

fundingSource()

An AVETMISS reporting requirement for the funding source of an outcome. If the funding source
is not overridden in the outcome, this function will return the value from the enrolment.

hoursAttended()

  • Returns: Integer

markedByTutor()

Tutors can login and mark outcomes for their students in onCourse portal

  • Returns: Tutor the ID of a tutor who marked the outcome

markedByTutorDate()

  • Returns: Date date and time when outcome was marked by a tutor

modifiedOn()

  • Returns: Date the date and time this record was modified

module()

  • Returns: Module unit of competency linked to the outcome

name()

  • Returns: String the title of this outcome. If it is not VET, then the name of the course or prior learning

outcomeVetFundingSourceStateID()

An AVETMISS reporting requirement for the funding source state ID of an outcome. Returns value from outcome even if it doesn't override
the same related enrolment property.

  • Returns: String funding source state ID related to outcome

outcomeVetPurchasingContractID()

An AVETMISS reporting requirement for the purchasing contract ID of an outcome. If the purchasing contract ID
is not overridden in the outcome, this function will still return the value from the outcome instead of related enrolment property.

  • Returns: String purchasing contract ID related to outcome

printedCertificate()

  • Returns: String 'Yes' if outcome linked to at least 1 printed and non-revoked certificate

priorLearning()

PriorLearning is an outcome that was imported into onCourse from outside sources (e.g. different college) or was added manually
without a link to existing enrolment

reportableHours()

  • Returns: BigDecimal

specificProgramIdentifier()

  • Returns: String specific program identifier used for NCVER reporting

startDate()

  • Returns: def start date and time of the outcome

status()

An AVETMISS reporting requirement for the outcome status.
If this payline was created from a classCost record, then this is Nonnull

trainingPlanEndDate()

  • Returns: LocalDate end date of training plan

trainingPlanStartDate()

  • Returns: LocalDate start date of training plan

vetFundingSourceStateID()

An AVETMISS reporting requirement for the funding source state ID of an outcome. If the funding source state ID
is not overridden in the outcome, this function will return the value from the enrolment and if not set there from the class.

  • Returns: String funding source state ID

vetPurchasingContractID()

An AVETMISS reporting requirement for the purchasing contract ID of an outcome. If the purchasing contract ID
is not overridden in the outcome, this function will return the value from the enrolment and if not set there from the class.

  • Returns: String purchasing contract ID

vetPurchasingContractScheduleID()

An AVETMISS reporting requirement for the purchasing contract schedule ID of an outcome. If the purchasing contract schedule ID
is not overridden in the outcome, this function will return the value from the class.

  • Returns: String VET purchasing contract schedule ID

PayLine

A persistent class mapped as "PayLine" Cayenne entity.

budgetedQuantity()

If this payline was created from a classCost record, then this is the
quantity budgeted. The amount might have been overriden, but this is the original value.

  • Returns: BigDecimal value of original budget quantity

budgetedTaxValue()

If this payline was created from a classCost record, then this is the
amount budgeted for tax. The amount might have been overriden, but this is the original value.
Tax is typically only applicable for contractors who charge GST. This is not PAYG tax.

  • Returns: Money value of original budget tax

budgetedValue()

If this payline was created from a classCost record, then this is the
amount budgeted. The amount might have been overriden, but this is the original value.

  • Returns: Money value of original budget

classCost()

  • Returns: ClassCost class cost associated to this payline

createdOn()

  • Returns: Date the date and time this record was created

dateFor()

  • Returns: LocalDate the date this payline is for

description()

A description derived from the class, course name and other data to show the recipient on a payslip.

  • Returns: String description

modifiedOn()

  • Returns: Date the date and time this record was modified

payslip()

Paylines are grouped together in a payslip

quantity()

  • Returns: BigDecimal

session()

If this payline is related to a specific session, you can retrieve it here.

taxValue()

  • Returns: Money the amount of tax against this payline

value()

  • Returns: Money the value of this payline

PayRate

A persistent class mapped as "PayRate" Cayenne entity.

createdOn()

  • Returns: Date the date and time this record was created

definedTutorRole()

description()

  • Returns: String the description of this payrate

editedByUser()

  • Returns: SystemUser the last user who has edited this record

modifiedOn()

  • Returns: Date the date and time this record was modified

oncostRate()

  • Returns: BigDecimal

rate()

  • Returns: Money the rate of pay

type()

validFrom()

  • Returns: Date the date from when this payrate is valid

PaymentIn

A payment received by the college. Each payment can be linked to one or more invoices (or credit notes), and may
partially pay an invoice or fully discharge the amount owing.

account()

Returns the account this PaymentIn is payed in to

  • Returns: def account associated with this payment

accountIn()

This account is copied from the PaymentMethod object when the PaymentIn is created. We keep a copy here
because the PaymentMethod account might change from time to time and we need to store the value at time
of creation.

  • Returns: Account this is the asset account into which the payment is deposited

administrationCentre()

Some sites can be designated as "administration centres" meaning that they are allowed to accept payments
and perform banking functions. A user can choose their site when they log in and all payments created by them
from that point are linked to that Site. This is then used to group payments when performing banking.

  • Returns: Site the site which received the payment

amount()

  • Returns: Money amount of money paid

chequeBank()

  • Returns: String bank information of a cheque

chequeBranch()

  • Returns: String branch information for a cheque

chequeDrawer()

  • Returns: String drawer name for a cheque

confirmationStatus()

  • Returns: ConfirmationStatus confirmation email sending status: not sent, sent or suppressed from sending

createdBy()

  • Returns: SystemUser user who created this payment

createdOn()

  • Returns: Date the date and time this record was created

creditCardClientReference()

  • Returns: String the onCourse payment gateway reference. This value will start with "W" for payments taken online.

dateBanked()

  • Returns: LocalDate date when payment was banked

gatewayReference()

  • Returns: String the reference code returned by the banking system

gatewayResponse()

This is typically only useful for debugging since the data here can vary a lot.

  • Returns: String the details of the response received from the banking system.

invoices()

  • Returns: List of Invoice list of invoices linked to this payment record

modifiedOn()

  • Returns: Date the date and time this record was modified

payer()

  • Returns: Contact contact who is the payer

paymentInLines()

  • Returns: List of PaymentInLine list of payment lines linked to this payment

paymentLines()

  • Returns: List of PaymentLineInterface list of payment lines linked to this payment

paymentMethod()

privateNotes()

Private notes are typically not to be shared with the customer.

  • Returns: String any private notes stored on the payment

reconciled()

  • Returns: Boolean true if this payment is reconciled

reversalOf()

  • Returns: PaymentIn another payment instance which current payment reverses, null if this payment is not a reversal

reversedBy()

A user can reverse a payment, which cancels it and reverses the general ledger transactions.

  • Returns: PaymentIn payment in which reversed this payment, null if payment is not reversed

source()

  • Returns: PaymentSource this records whether the payment was created online or in the office

status()

During processing in onCourse payment undergoes a number of status changes until it settles on one of the final
statuses. On creation payment receives NEW status immediately, after payment details are settled and processing
begins payment is set to IN TRANSACTION status, then after processing is finished payment receives final status
which may be one of the FAILED statuses or a SUCCESSFUL status.

  • Returns: PaymentStatus current status of processing for this payment

statusString()

Returns the PaymentStatus of this PaymentIn

  • Returns: def PaymentStatus as a stringz`

voucherPayments()

isFinalised()

See PaymentStatus for a list of statuses which are final.

  • Returns: boolean true if the payment is in a final state which can no longer be changed

PaymentInLine

Payment line links payment with one or multiple invoices which are getting paid for.

account()

  • Returns: Account account linked to this PaymentInLine

accountOut()

amount()

  • Returns: Money amount of money paid against this particular invoice

createdOn()

  • Returns: Date the date and time this record was created

invoice()

  • Returns: Invoice linked invoice record

modifiedOn()

  • Returns: Date the date and time this record was modified

payment()

paymentIn()

payslip()

PaymentMethod

Payment methods are user definable ways that a payment might be taken. Typically you'd have cash, credit card,
cheque, EFT as the basic payment methods. But you might add more such as "internal transfer" or perhaps different
types of cheques to be handled and banked separately.

account()

Each payment method is linked to an asset account into which the payment is deposited.

  • Returns: Account account linked with this payment method

active()

A payment method which has already been used cannot be deleted, but it can be deactivated so
it can no longer be used for future payments.

  • Returns: Boolean true if the method is active

bankedAutomatically()

If set, this payment will be marked as banked immediately upon creation.
This is useful for payments which are processed in real time, such as credit cards.

  • Returns: Boolean true is this method banks automatically

name()

Each payment method can have an arbitrary name set.

  • Returns: String name of this payment method

reconcilable()

If set, this payment will be marked as reconciled immediately upon creation.

  • Returns: Boolean true if reconcilable on creation

type()

Return the special internal payment type. These payment types invoke special actions, such as opening a credit card
processing window in a browser.

PaymentOut

A payment or refund from college to someone else. Each payment can be linked to one or more invoices (or credit notes), and may
partially pay an invoice or fully discharge the amount owing.

account()

  • Returns: def account linked with this PaymentOut

accountOut()

  • Returns: Account account linked with this PaymentOut

administrationCentre()

Some sites can be designated as "administration centres" meaning that they are allowed to accept payments
and perform banking functions. A user can choose their site when they log in and all payments created by them
from that point are linked to that Site.

  • Returns: Site the site which issued the PaymentOut

amount()

  • Returns: Money amount of money paid

chequeBank()

  • Returns: String

chequeBranch()

  • Returns: String

chequeDrawer()

  • Returns: String

chequeNumber()

  • Returns: String

confirmationStatus()

  • Returns: ConfirmationStatus confirmation email sending status: not sent, sent or suppressed from sending

contact()

  • Returns: Contact contact who receives the payment

createdBy()

  • Returns: SystemUser user who created this payment

createdOn()

  • Returns: Date the date and time this record was created

dateBanked()

  • Returns: LocalDate date when payment was banked

gatewayReference()

  • Returns: String payment reference code in the banking system

modifiedOn()

  • Returns: Date the date and time this record was modified

payee()

  • Returns: Contact contact who receives the payment

paymentDate()

  • Returns: LocalDate

paymentInGatewayReference()

  • Returns: String

paymentLines()

  • Returns: List of PaymentLineInterface list of linked payment lines

paymentMethod()

paymentOutLines()

  • Returns: List of PaymentOutLine list of payment lines linked to this payment

privateNotes()

Private notes are typically not to be shared with the customer.

  • Returns: String any private notes stored on the payment

reconciled()

  • Returns: Boolean true if this payment has been reconciled

status()

During processing in onCourse payment undergoes a number of status changes until it settles on one of the final
statuses. On creation payment receives NEW status immediately, after payment details are settled and processing
begins payment is set to IN TRANSACTION status, then after processing is finished payment receives final status
which may be one of the FAILED statuses or a SUCCESSFUL status.

  • Returns: PaymentStatus current status of processing for this payment

statusString()

  • Returns: def the display name of the PaymentOut status

type()

  • Returns: String payment method name

PaymentOutLine

Payment line links payment with one or multiple invoices which are getting paid for.

accountIn()

  • Returns: Account account linked to this invoice line

amount()

  • Returns: Money amount of money paid against this particular invoice

createdOn()

  • Returns: Date the date and time this record was created

invoice()

  • Returns: Invoice linked invoice record

modifiedOn()

  • Returns: Date the date and time this record was modified

payment()

paymentOut()

Payslip

A payslip is a collection of paylines for a specific tutor, generated at one time. They can be altered until exported
after which the numerical data within the paylines is immutable.

Payslips are generated either from a specific set of classes, or across the whole college. In either case, the user
specifies an end-date and paylines are only generated for payments until that date.

contact()

  • Returns: Contact the contact for the tutor this payslip belongs to

createdOn()

  • Returns: Date the date and time this record was created

modifiedOn()

  • Returns: Date the date and time this record was modified

notes()

  • Returns: String public notes appended to this payslip

payType()

The payslip can be either for an employee (payroll) or contractor (invoice)

paylines()

  • Returns: List of PayLine all paylines attached to this payslip

privateNotes()

  • Returns: String private notes appended to this payslip

status()

Preference

Preferences are key-value entities containing settings defining onCourse behavior in various situations.

createdOn()

  • Returns: Date the date and time this record was created

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String name of the preference

uniqueKey()

  • Returns: String unique key of the preference (equal to name if non user specific preference)

user()

  • Returns: SystemUser onCourse user to whom preference belongs, null if non user specific preference

value()

  • Returns: byte[] preference value in binary form

valueString()

  • Returns: String preference string value

PriorLearning

Student's prior learning record.

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

createdOn()

  • Returns: Date the date and time this record was created

documents()

  • Returns: List of Document all attached documents

modifiedOn()

  • Returns: Date the date and time this record was modified

notes()

  • Returns: String notes linked to this prior learning record

qualification()

  • Returns: Qualification qualification linked to this prior learning record

student()

  • Returns: Student student linked to this prior learning record

Product

Product is an abstract entity describing product type which can be sold through onCourse.
Currently this includes article, membership and voucher.

createdOn()

  • Returns: Date the date and time this record was created

description()

  • Returns: String description of this product type

expiryDays()

  • Returns: Integer number of days after purchase product is valid

expiryType()

  • Returns: ExpiryType expiry type of this product type

feeGST()

  • Returns: Money GST tax amount for this product type

incomeAccount()

  • Returns: Account income account linked to this product type

isOnSale()

  • Returns: Boolean true if this product can be currently purchased

isWebVisible()

  • Returns: Boolean true if this product type can be purchased on website

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String name of this product type

notes()

  • Returns: String Documentation not yet available

priceExTax()

  • Returns: Money price for this product type excluding tax

productItems()

  • Returns: List of ProductItem product items of this product type

relatedCourses()

  • Returns: List of Course courses related to this product type

sku()

  • Returns: String SKU of this product type

tax()

  • Returns: Tax tax linked to this product type

taxAdjustment()

  • Returns: Money tax adjustment value (used for rounding)

ProductItem

ProductItem is an abstract entity describing product item which has been sold through onCourse.
Currently this includes articles, memberships and vouchers.

allNotes()

  • Returns: List of Note all related notes

confirmationStatus()

  • Returns: ConfirmationStatus confirmation email sending status: not sent, sent or suppressed from sending

contact()

  • Returns: Contact contact who owns this product item

createdOn()

  • Returns: Date the date and time this record was created

expiryDate()

  • Returns: Date date when product item (e.g. membership) expires

invoiceLine()

  • Returns: InvoiceLine purchase invoice line for this product item

modifiedOn()

  • Returns: Date the date and time this record was modified

notes()

  • Returns: String concatenated private notes

product()

  • Returns: Product product type of this item

status()

  • Returns: ProductStatus current status of this product item: active, cancelled, credited, redeemed, expired or delivered

Qualification

The Qualification class contains records from both accredited courses (state based) and qualifications (national)
from the training.gov.au website. You cannot create or delete records in this table since they are
automatically kept in sync with data from the official website.

anzsco()

  • Returns: String ANZSCO code

courses()

  • Returns: List of Course all courses linked to this qualification

createdOn()

  • Returns: Date the date and time this record was created

fieldOfEducation()

  • Returns: String the NCVER 'Subject field of education' identifer code

isOffered()

  • Returns: Boolean true if this module is offered by the college

level()

  • Returns: String the level as a string

modifiedOn()

  • Returns: Date the date and time this record was modified

nationalCode()

  • Returns: String the national code. This value is unique.

nominalHours()

  • Returns: BigDecimal nominal hours

relatedCourses()

  • Returns: List of Course courses related to this qualification

title()

  • Returns: String the qualification title

type()

  • Returns: QualificationType the type of qualification (eg. accredited course, qualification, skill set)

Quote

Pre-invoice state

allCustomFields()

  • Returns: Map of String, Object all custom field values

amountOwing()

  • Returns: Money They shouldn't have an owing amount because they can't accept payments.

billToAddress()

  • Returns: String billing address for this quote

contact()

This is the contact to whom the quote was issued. They are liable for the debt this quote represents.
Note that the quote contact might not be the same contact as the person enrolled in classes linked to
quote lines.

  • Returns: Contact to whom the quote was issued

createdByUser()

The user who created this quote, or null if it was created through a web purchase.

  • Returns: SystemUser internal user who created this quote

customFieldValue(key)

  • key: String custom field unique key @return custom field value @throws MissingPropertyException

  • Returns: Object custom field value @throws MissingPropertyException

customerReference()

Some arbitrary piece of text such as a PO number or customer reference which is displayed on the printed quote.

  • Returns: String

dateDue()

  • Returns: LocalDate the date on which this quote amount falls due

description()

The quote description might be shown on printed reports or in emails.

  • Returns: String quote description text

invoiceDate()

  • Returns: LocalDate date when this quote was created

overdue()

  • Returns: Money They shouldn't have an overdue amount

quoteLines()

  • Returns: List of QuoteLine list of quote line records linked to this quote

shippingAddress()

  • Returns: String shipping address for this invoice

title()

  • Returns: String Title of this Quote or null if it is not set

total()

  • Returns: Money the total without tax

totalIncTax()

  • Returns: Money the total of this quote including tax.

totalTax()

  • Returns: Money the total amount of tax included in this quote

Report

Report template which can be printed or saved to PDF.

Reports are usually printed from onCourse user interface, but can also be generated from within a script. For example:

	report {
	    keycode "ish.onCourse.studentDetailsReport"
	    records ObjectSelect.query(Contact).select(args.context)
	}

Optionaly you can use extended list of arguments:

	report {
	    keycode "ish.onCourse.studentDetailsReport"
	    entity "Contact"
	    records ObjectSelect.query(Contact).select(args.context)
	    background  "backgroundName"
	    param "dateRange_from" :  Date.parse("yyyy-MM-dd", "2016-01-01"),  "dateRange_to" : Date.parse("yyyy-MM-dd", "2016-01-02")
	}

'param' argument is Map<String, Object> which currently acceptable for dateRange_from/dateRange_to values.

This parameters are required for some reports when you need to determine reportable period (the same possibility presented on user interface).
If client app run in different time zone with server app you need to provide date range parameters
in corresponded server time zone to be sure that output report result will correct: Date.parse("yyyy-MM-dd Z", "2016-01-01 +1100")

If you want to print report from records source which has different type with report entity type (Account Transaction report from contacts records for example)
then you need provide 'entity' (entity "Contact") parameter

Keep 'param' map as generic (Object data type) to possible extension of acceptable arguments in future.

'background' argument is name of available ReportOverlay records which stored in onCourse system.

This will return PDF report represented in binary format, which you can for example save to a file or send in an email as an attachment:

smtp {
		from "[email protected]"
	to "[email protected]"
	subject "report example"
	content "report printing example"
	attachment "report.pdf", "application/pdf", report {
         keycode "ish.onCourse.studentDetailsReport"
         records ObjectSelect.query(Contact).select(args.context)
	}
}

body()

  • Returns: String body of this report

createdOn()

  • Returns: Date the date and time this record was created

data()

  • Returns: byte[] report content as byte array

description()

  • Returns: String description of this report

entity()

  • Returns: String root entity for this report

followingReports()

A report can be set to automatically chain another report to immediately follow it and print together.

  • Returns: String the keycode of another report which follows this one

isVisible()

  • Returns: Boolean true if report is shown in the print dialog selection list (mainly used to hide subreports)

keyCode()

  • Returns: String unique key code of this report

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String name of this report

pageBreakType()

Reports can be a list type where every record appears right after the previous, breaking pages only when we run
out of paper. Or they can have a page break after each record. For example, each invoice might start on a new page.

  • Returns: PageBreakType the type of page breaking for this report

report()

  • Returns: String report as string

tags()

  • Returns: List of Tag The list of tags assigned to report

ReportOverlay

A report can be printed with an overlay to add logos, headers or other graphics. More correctly this 'overlay'
is an 'underlay' since it is added to the output PDF underneath the report itself.

A user can print any report with any overlay, and onCourse will default to the last overlay used by each user.

Common overlays are 'letterhead' for invoices and a certificate background with logos and signatures.

createdOn()

  • Returns: Date the date and time this record was created

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String the name of the overlay which appears in the user interface

overlay()

Overlays are stored in the database as a PDF.

  • Returns: byte[] the binary PDF data

isPortrait()

  • Returns: Boolean Documentation not yet available

Room

A room in a location in which training is delivered. It may be a virtual room (linked to a virtual site)
or a physical location.

Every site must have at least one room.

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

allCustomFields()

  • Returns: Map of String, Object all custom field values

allNotes()

  • Returns: List of Note all related notes

courseClasses()

Use of this method is discouraged since it can return a very large number of objects.
Instead consider a query to find only the records you require.

  • Returns: List of CourseClass all courseclasses held or to be held in this room

createdOn()

  • Returns: Date the date and time this record was created

customFieldValue(key)

  • key: String custom field unique key @return custom field value @throws MissingPropertyException

  • Returns: Object custom field value @throws MissingPropertyException

directions()

Directions should be relative to the site. That is, a person arrives at the site by public transport
or driving and then these directions will get them from the site to the room itself.

  • Returns: String directions (rich text)

documents()

  • Returns: List of Document all attached documents

facilities()

  • Returns: String facilities available in this room (not usually made public)

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String The public name for this room. For example "The great hall" or "Room 143"

notes()

  • Returns: String concatenated private notes

seatedCapacity()

  • Returns: Integer The number of people this room holds.

sessions()

Use of this method is discouraged since it can return a very large number of objects.
Instead consider a query to find only the records you require.

  • Returns: List of Session all sessions held or to be held in this room

site()

  • Returns: Site The site in which this room is located

tags()

  • Returns: List of Tag The list of tags assigned to room

Script

Definition of script instance. onCourse supports scripts written in Groovy programming language.
Scripts can be executed on demand or scheduled to be executed at certain time (cron schedule) or
when certain event happens (record creation/removal, new enrolment etc.)
onCourse has variety of pre defined scripts to satisfy common needs but also allows users to add
their own scripts to solve specific problems.

createdOn()

  • Returns: Date the date and time this record was created

cronSchedule()

  • Returns: String cron schedule for this script

enabled()

  • Returns: Boolean true if this script is enabled

entityClass()

  • Returns: String name of entity whose change triggers this script

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String name of this script

script()

  • Returns: String script content

Session

Sessions represent the classroom sessions a student attends when enrolled in a class. Sessions are a timetabled event. Not all classes have sessions.
Self paced classes will no related sessions attached to them.

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

activeAttendances()

  • Returns: List of Attendance attendance records for all SUCCESS enrolments

attendance()

  • Returns: List of Attendance attendance records for all students/tutors enrolled/teaching this session

course()

This is just a convenience to save having to write session.courseClass.course

  • Returns: Course the course related to this session

courseClass()

  • Returns: CourseClass the class related to this session

createdOn()

  • Returns: Date the date and time this record was created

documents()

  • Returns: List of Document all attached documents

durationHoursPart()

  • Returns: Integer number of round hours of this session duratiom

durationInHours()

  • Returns: BigDecimal the duration of this session in hours

durationMinutesPart()

  • Returns: Integer number of round minutes of this session duratiom

end()

  • Returns: LocalDateTime JSR-310 compatible end date time of the session

endDatetime()

  • Returns: Date the end time for this session

modifiedOn()

  • Returns: Date the date and time this record was modified

modules()

  • Returns: List of Module all modules delivered as part of the training plan

payLines()

  • Returns: List of PayLine payroll entries for this session

payableDurationInHours()

  • Returns: BigDecimal duration in hours depending on TutorAttendances

privateNotes()

  • Returns: String private notes for this session

publicNotes()

  • Returns: String public notes (rich text)

room()

  • Returns: Room the room in which the session is held

sessionTutors()

  • Returns: List of TutorAttendance list of tutors attendances, related to this session

start()

  • Returns: LocalDateTime JSR-310 compatible start date time of the session

startDatetime()

  • Returns: Date the start time for this session

timeZone()

Every session has a natural timezone which is derived from the site in which
that session is delivered. For sessions not linked to a room or site, the default
timezone for the college is returned.

Note that on the onCourse website, virtual sessions (eg. online delivery) will be shown in
the browser's local timezone.

  • Returns: TimeZone timezone

tutors()

  • Returns: List of Tutor all tutors delivering this session

hasModule(module)

Returns true when session linked to specified module.

  • module: Module module to search @return if session linked to specified module

  • Returns: boolean if session linked to specified module

SessionModule

Object representing relation between session and module.

createdOn()

  • Returns: Date the date and time this record was created

modifiedOn()

  • Returns: Date the date and time this record was modified

module()

  • Returns: Module linked module

moduleEndDate()

  • Returns: def the date of the last sessions that this module is attached to

moduleStartDate()

  • Returns: def the date of the first sessions that this module is attached to

session()

tutorNames()

  • Returns: def a list of all tutors delivering this session

Site

A Site is a location where training occurs or payments are received (an administrative site).
A virtual site can be used for online training.

A site has latitude and longitude and directions, and contains one or more rooms in which training
is delivered. Even if a site contains only a single room, it is important to create both the site and room.

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

allCustomFields()

  • Returns: Map of String, Object all custom field values

allNotes()

  • Returns: List of Note all related notes

country()

  • Returns: Country the country of this site

createdOn()

  • Returns: Date the date and time this record was created

customFieldValue(key)

  • key: String custom field unique key @return custom field value @throws MissingPropertyException

  • Returns: Object custom field value @throws MissingPropertyException

documents()

  • Returns: List of Document all attached documents

drivingDirections()

  • Returns: String driving directions for the site (rich text)

isAdministrationCentre()

An administration centre is a site which is used for the collection of money.
When cash or cheques are receipted, they are linked to a particular administration centre
so that banking can be performed separately for each centre.

  • Returns: Boolean true if this is an admin centre

isShownOnWeb()

  • Returns: Boolean whether this site is visible on the website in the /sites list

isVirtual()

Virtual sites are a special online type for delivery of online training. Typically you
would have just one of these.

  • Returns: Boolean true for virtual sites

latitude()

Use for directions on your website and allowing students to find classes "near me"

  • Returns: BigDecimal latitude of this site

localTimezone()

Timezones are vital for interpreting the session times for delivery at a particular site.
If you deliver in multliple timezones, your website will automatically detect the student timezone
and adjust delivery times for online training.

  • Returns: String the timezone of the site

longitude()

Use for directions on your website and allowing students to find classes "near me"

  • Returns: BigDecimal longitude of this site

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String the public name for this site.

notes()

  • Returns: String concatenated private notes

postcode()

  • Returns: String the postcode of the site

publicTransportDirections()

  • Returns: String public transport directions for the site (rich text)

rooms()

A site must have at least one room. Even virtual sites have virtual rooms.

  • Returns: List of Room all the rooms located in this site

specialInstructions()

  • Returns: String special instructions are displayed on the website (rich text)

state()

  • Returns: String the state of the site (eg. NSW, VIC, QLD)

street()

  • Returns: String the street address of the site

suburb()

  • Returns: String the suburb of the site

tags()

  • Returns: List of Tag The list of tags assigned to site

waitingLists()

  • Returns: List of WaitingList all the waiting list records linked to this site

Student

A student is a type of contact who is able to be enrolled. Every Student object will be linked to exactly one
Contact. Only student specific data is stored here: for all regular contact attributes and relationships, refer to the
Contact object.

A contact can be both a student and tutor at the same time.

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

activeAttendances()

  • Returns: List of Attendance attendance records for all SUCCESS enrolments

allCustomFields()

  • Returns: Map of String, Object all custom field values

applications()

  • Returns: List of Application applications made by this student

attendancePercent()

  • Returns: def the culmative attendance percentage for all sessions for all classes this student has been enrolled in

attendancePercent(start, end)

  • start: Date Documentation not yet available

  • end: Date Documentation not yet available

  • Returns: Integer the culmative attendance for all sessions in a given date period

attendances()

  • Returns: List of Attendance list of all attendance records for this student

certificates()

  • Returns: List of Certificate list of all certificates awarded to this student

chessn()

Commonwealth Higher Education Student Support Number

  • Returns: String CHESSN number for this student

citizenship()

  • Returns: StudentCitizenship the a value represneting the citzenship of this student for AVETMISS reporting

concessions()

contact()

  • Returns: Contact contact record linked to this student

countryOfBirth()

  • Returns: Country country where student was born

countryOfResidency()

  • Returns: Country student's country of residency

createdOn()

  • Returns: Date the date and time this record was created

customFieldValue(key)

  • key: String custom field unique key @return custom field value @throws MissingPropertyException

  • Returns: Object custom field value @throws MissingPropertyException

disabilityType()

documents()

  • Returns: List of Document all attached documents

englishProficiency()

enrolments()

  • Returns: List of Enrolment list of all enrolments (either successful, failed or cancelled) linked to this student

feeHelpEligible()

  • Returns: Boolean true if the student is eligible for fee help

fullName()

  • Returns: String full name of the student, including the middle name if any.

highestSchoolLevel()

indigenousStatus()

invoices()

  • Returns: List of Invoice list of invoices linked to this student

isOverseasClient()

  • Returns: Boolean true if this is an overseas client

isStillAtSchool()

  • Returns: Boolean true if this student is still at school

labourForceStatus()

language()

  • Returns: Language the language spoken by this student

medicalInsurance()

  • Returns: String

modifiedOn()

  • Returns: Date the date and time this record was modified

passportNumber()

  • Returns: String passport number for this student

priorEducationCode()

specialNeeds()

  • Returns: String special needs of this student

specialNeedsAssistance()

  • Returns: Boolean true if the student needs assistance

studentNumber()

  • Returns: Long unique student number

tags()

  • Returns: List of Tag a list of all the tags for this student

townOfBirth()

  • Returns: String where this student was born

uniqueLearnerIndentifier()

  • Returns: String

usi()

  • Returns: String the USI for this student

usiStatus()

A verified USI can be validated against the government verification service.

  • Returns: UsiStatus the verification status fof the students USI

visaExpiryDate()

  • Returns: Date the date this students visa expires

visaNumber()

  • Returns: String the visa number of this student

visaType()

  • Returns: String the visa type of this student

waitingLists()

  • Returns: List of WaitingList a list of all the waiting lists for this student

yearSchoolCompleted()

  • Returns: Integer the year this student left/completed schooling

StudentConcession

StudentConcessions are attributes of Students describing the properties of a particular ConcessionType held
by that student.

For example, a student may hold a Senior's Card with no expiry date (they aren't getting younger), or a Centrelink
unemployment benefit which expires a year after creation.

The main purpose of these concessions is to control the application of discounts.

authorisedBy()

  • Returns: Contact user who created concession

concessionNumber()

Concession numbers are not validated by onCourse.

  • Returns: String an identifier for the concession

concessionType()

createdOn()

  • Returns: Date the date and time this record was created

expiresOn()

  • Returns: Date the date after which the conncession will not longer be valid

modifiedOn()

  • Returns: Date the date and time this record was modified

student()

  • Returns: Student student to whom this concession belongs

Survey

Surveys are a record of student satisfaction with a particular enrolment. We score three different attributes:
course, tutor and venue.

Each score is a value from 0 to 5.

We also store a net promoter score to measure loyalty, a public testimonial and a flag for whether that testimonial should be published.

allCustomFields()

  • Returns: Map of String, Object all custom field values

comment()

Where students are given the opportunity to record a comment, it is stored here. This comment is not intended to
be shared publically.

  • Returns: String comments made by student on survey

courseScore()

  • Returns: Integer a score from 0-5 for the course and materials

createdOn()

  • Returns: Date the date and time this record was created

customFieldValue(key)

  • key: String custom field unique key @return custom field value @throws MissingPropertyException

  • Returns: Object custom field value @throws MissingPropertyException

enrolment()

  • Returns: Enrolment the enrolment for which the student is reporting their results

modifiedOn()

  • Returns: Date the date and time this record was modified

netPromoterScore()

A net promoter score as a mark out of 10 as the answer to the question:
How likely is it that you would recommend our company/product/service to a friend or colleague?

It is designed to measure loyalty.

  • Returns: Integer NPS as a value from 0-10

testimonial()

The college admin staff may wish to edit student comments before displaying it publicly. The edited
version will be available here.

  • Returns: String public facing text which might be displayed on a website

tutorScore()

  • Returns: Integer a score from 0-5 for the tutor(s)

venueScore()

  • Returns: Integer a score from 0-5 for the room and site

visibility()

Visibility of survey on a website or other location.

SurveyFieldConfiguration

A field configuration which is used to collect survey information

createdOn()

  • Returns: Date the date and time this record was created

fieldHeadings()

  • Returns: List of FieldHeading a list of all headings attached to this field configuration

fields()

  • Returns: List of Field a sorted list of all fields attached to this field configuration

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String the name of this field configuration. Not shown to students anywhere.

SystemUser

These objects represent people who are allowed to log into onCourse.

canEditCMS()

  • Returns: Boolean true if the user can log into the CMS

createdOn()

  • Returns: Date the date and time this record was created

defaultAdministrationCentre()

  • Returns: Site default administration site for this user

email()

  • Returns: String the user's email address

firstName()

  • Returns: String the user's first name

fullName(firstNameFirst)

  • firstNameFirst: boolean flag which specify that first name is first or not @return full name of system user

  • Returns: String full name of system user

fullName()

Convenience method to return 'firstName lastName'

  • Returns: def the user's full name

isActive()

  • Returns: Boolean true if the user is allowed to log into onCourse or the CMS

isAdmin()

  • Returns: Boolean true if the user is an administrator who bypasses all access control checks

lastLoginIP()

  • Returns: String the IP address from which the user logged in last time

lastLoginOn()

  • Returns: Date the last time this user logged in

lastName()

  • Returns: String the user's last name

login()

  • Returns: String the login name

modifiedOn()

  • Returns: Date the date and time this record was modified

passwordLastChanged()

  • Returns: LocalDate date of last password update

passwordUpdateRequired()

  • Returns: Boolean true if user needs to update password on next log into onCourse

preferences()

  • Returns: List of Preference preferences belonging to this user

Tag

A tag is a piece of arbitrary information which can be attached to many other types of objects.
Tags are arranged hierarchically, and each tree of tags has a root node also called a "tag group"
The tag group "Subjects" is special and always exists in every onCourse database.

The complete path to a tag is unique (that is, siblings cannot have the same tag name).

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

allChildren()

The resulting map has the tag name as the key and the tag itself as a value.

  • Returns: Map of String, Tag map of children tags

childTags()

  • Returns: List of Tag all the children of this tag @see Tag#getAllChildren()

contents()

  • Returns: String the description of the tag (rich text)

createdOn()

  • Returns: Date the date and time this record was created

documents()

  • Returns: List of Document all attached documents

generation()

This method returns the 'depth' of the tag For example, calculating the generation on the tag 'Japanese' with the following path would
return 2. 'Japanese' has parent 'Languages', which has the parent 'Subjects'

Subjects/Languages/Japanese

  • Returns: int the depth of a tag

isWebVisible()

  • Returns: Boolean true if this tag is visible on the website

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String the name of the tag

parentTag()

  • Returns: Tag the parent of this tag

pathName()

  • Returns: String full path name for this tag starting from root delimited with "-"

root()

  • Returns: Tag the top-most tag of this tree. Also known as a tag group.

shortName()

Tags can have a shorter name which is used in URLs on a website
The short name must be unique amongst siblings. If the short name is null, then
the long name is used for the URL.

  • Returns: String the short name

siblings()

This method gets all tags with the same parent as the current tag

  • Returns: List of Tag siblings of this tag

tagRequirements()

  • Returns: List of TagRequirement all the requirements for this tag group

weight()

A weight is an arbitrary number for determining ordering. The actual value of the weight
should be ignored and this value should only be used for sorting.

  • Returns: Integer weight

isMultipleFor(entity)

Some objects can have multiple tags from the same tag group attached to them.
For example, a course may be tagged with both "Finance" and "Computing" subjects.

  • entity: Class extends Taggable the entity which is being tagged @return true if multiple tags from the same group are allowed

  • Returns: boolean true if multiple tags from the same group are allowed

isRequiredFor(entity)

The objects from some entities must be tagged with at least one tag from a certain tag group

  • entity: Class extends Taggable the entity class which is being tagged @return true if a tag is required from the tag group this tag is part of

  • Returns: boolean true if a tag is required from the tag group this tag is part of

isRoot()

  • Returns: boolean true if this tag is the top of the tree (the tag group)

isTagAncestor(anotherTag)

Determine whether this object is an ancestor of anotherTag. Note: ancestor is the opposite of descendant!

  • anotherTag: Tag - the node to search is ancestors on. @return true if this object is an ancestor of anotherNode

  • Returns: boolean true if this object is an ancestor of anotherNode

TagRelation

Object representing relation between tag and entity record tagged with it.

createdOn()

  • Returns: Date the date and time this record was created

entity()

  • Returns: TaggableClasses entity type of the related record TODO: change the model to use the enum directly so we don't need this hack

entityAngelId()

  • Returns: Long angel id of the related record

modifiedOn()

  • Returns: Date the date and time this record was modified

tag()

  • Returns: Tag linked tag

taggableClassesIdentifier()

To be overridden returning a constant from the TaggableClasses enum.

TagRequirement

Object representing requirements and limitations put on applicability of a tag to certain entity type,
e.g. make tag mandatory or allow entity to have only one of certain type.

createdOn()

  • Returns: Date the date and time this record was created

entityClass()

  • Returns: Class extends Taggable class of entity this tag requirement applies to

entityIdentifier()

  • Returns: TaggableClasses entity type identifier of entity this tag requirement applies to

isRequired()

  • Returns: Boolean true if entity records are required to be tagged with at least one child tag of this tag

manyTermsAllowed()

  • Returns: Boolean true if entity records are allowed to have more than one child of this tag simultaneously

modifiedOn()

  • Returns: Date the date and time this record was modified

tag()

  • Returns: Tag linked tag

Tax

createdOn()

  • Returns: Date the date and time this record was created

description()

  • Returns: String

isGSTTaxType()

  • Returns: Boolean

modifiedOn()

  • Returns: Date the date and time this record was modified

payableToAccount()

rate()

  • Returns: BigDecimal the rate of this tax expressed as a decimal (so a 10% tax would return 0.1)

receivableFromAccount()

taxCode()

  • Returns: String

TrainingPackage

The Training Package class contains records from training packages (national)
from the training.gov.au website. You cannot create or delete records in this table since they are
automatically kept in sync with data from the official website.

createdOn()

  • Returns: Date the date and time this record was created

modifiedOn()

  • Returns: Date the date and time this record was modified

nationalISC()

  • Returns: String national ISC

title()

  • Returns: String the title of the training package

Tutor

A tutor is a type of contact who is able to deliver training. Every Tutor object will be linked to exactly one
Contact. Only tutor specific data is stored here: for all regular contact attributes and relationships, refer to the
Contact object.

A contact can be both a student and tutor at the same time.

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

allCustomFields()

  • Returns: Map of String, Object all custom field values

contact()

  • Returns: Contact the contact object linked to this tutor

courseClassRoles()

courseClasses()

  • Returns: List of CourseClass all courseClasses linked via CourseClassTutor join

createdOn()

  • Returns: Date the date and time this record was created

customFieldValue(key)

  • key: String custom field unique key @return custom field value @throws MissingPropertyException

  • Returns: Object custom field value @throws MissingPropertyException

dateFinished()

  • Returns: Date the termination date for this tutor

dateStarted()

  • Returns: Date the date this tutor was first hired

documents()

  • Returns: List of Document all attached documents

familyNameLegal()

A tutor can have a different legal name to their regular publicised name. Use this one for official reports, like payroll.

  • Returns: String legal last (family) name

givenNameLegal()

A tutor can have a different legal name to their regular publicised name. Use this one for official reports, like payroll.

  • Returns: String legal first name

modifiedOn()

  • Returns: Date the date and time this record was modified

payType()

By default, what type of Payslip to create for tutor pay associated with this tutor.
If NULL, then don't create tutor pay at all.

payrollRef()

  • Returns: String

resume()

  • Returns: String this tutor's resume

sessions()

This returns a list of every single session this tutor is teaching, past or present. For tutors with a lot of
history, this could be slow, so perform a query instead for the specific data you need.

  • Returns: List of Session all sessions linked to this tutor

tags()

  • Returns: List of Tag a list of all the tags for this tutor

tutorAttendances()

This returns a list of every single session attendance this tutor has/had/will has.

  • Returns: List of TutorAttendance all tutor attendances linked to this tutor

wwChildrenCheckedOn()

Working with children check was verified

  • Returns: Date date of the check

wwChildrenExpiry()

Working with children check was verified

  • Returns: Date date that the verification expires and should be checked again

wwChildrenRef()

Working with children check was verified

  • Returns: String reference code from the WWC authority

wwChildrenStatus()

Working with children check was verified

TutorAttendance

This entity represents the relationship between a tutor and the sessions that comprise
a CourseClass. They can be used to track whether tutor was present at a session (and for how long)
and also whether they should be paid for delivery.

actualPayableDurationMinutes()

  • Returns: Integer actual payable duration of the attendance

allCustomFields()

  • Returns: Map of String, Object all custom field values

approvedByUser()

  • Returns: SystemUser user who approved this attendance

attendanceType()

courseClassTutor()

createdOn()

  • Returns: Date the date and time this record was created

customFieldValue(key)

  • key: String custom field unique key @return custom field value @throws MissingPropertyException

  • Returns: Object custom field value @throws MissingPropertyException

endDatetime()

  • Returns: Date tutor attendance end date time (roster end date time)

markedByUser()

  • Returns: SystemUser user who marked this attendance

modifiedOn()

  • Returns: Date the date and time this record was modified

note()

  • Returns: String private notes about attendance, to be seen only by the college staff

session()

  • Returns: Session session linked to this attendance

startDatetime()

  • Returns: Date tutor attendance start date time (roster start date time)

timeZone()

  • Returns: TimeZone time zone of session that was got from site of room

UnavailableRule

Rule determining period of time when room or tutor is unavailable.

allDay()

  • Returns: Boolean if unavailability spans for the whole day

createdOn()

  • Returns: Date the date and time this record was created

endDateTime()

  • Returns: Date end date and time of unavailability

explanation()

  • Returns: String explanation fot the unavailability

modifiedOn()

  • Returns: Date the date and time this record was modified

recurrenceInterval()

  • Returns: Integer unavailability repeat interval if custom repeat type is chosen

repetitionCount()

  • Returns: Integer number of times this rule will repeat

startDateTime()

  • Returns: Date date and time when unavailability starts

untilDateTime()

  • Returns: Date date and time until unavailability is will be repeated

Voucher

A Voucher is an instance of a Voucher Product which is purchased by a particular contact

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

allCustomFields()

  • Returns: Map of String, Object all custom field values

code()

  • Returns: String voucher code user is required to enter to use it

confirmationStatus()

  • Returns: ConfirmationStatus confirmation email sending status: not sent, sent or suppressed from sending

contact()

  • Returns: Contact contact who owns this product item

createdOn()

  • Returns: Date the date and time this record was created

customFieldValue(key)

  • key: String custom field unique key @return custom field value @throws MissingPropertyException

  • Returns: Object custom field value @throws MissingPropertyException

documents()

  • Returns: List of Document all attached documents

expiryDate()

  • Returns: Date date when product item (e.g. membership) expires

invoiceLine()

  • Returns: InvoiceLine purchase invoice line for this product item

modifiedOn()

  • Returns: Date the date and time this record was modified

product()

  • Returns: Product product type of this item

redeemableBy()

  • Returns: Contact contact who can redeem this voucher, null if voucher can be redeemed by anyone

redeemedCourseCount()

  • Returns: Integer for enrolment count vouchers - number of enrolments which have been purchased with this voucher, null for money vouchers

redemptionValue()

  • Returns: Money remaining money value of this voucher

source()

  • Returns: PaymentSource whether this voucher was purchased online or in the office

status()

  • Returns: ProductStatus current status of this product item: active, cancelled, credited, redeemed, expired or delivered

valueOnPurchase()

  • Returns: Money starting money value of this voucher when it was purchased

voucherPaymentsIn()

A voucher can be redeemed mutiple times as long as the total does not exceed the total
value of the voucher

  • Returns: List of VoucherPaymentIn all VoucherPaymentInLines joined to this voucher

voucherProduct()

VoucherPaymentIn

Object representing relation between voucher and payment record made using it.

createdOn()

  • Returns: Date the date and time this record was created

enrolmentsCount()

  • Returns: Integer number of enrolments purchased for enrolment count vouchers, null for money vouchers

invoiceLine()

  • Returns: InvoiceLine invoice line paid for with the voucher

modifiedOn()

  • Returns: Date the date and time this record was modified

paymentIn()

status()

voucher()

  • Returns: Voucher linked voucher record

VoucherProduct

The Voucher Product represents an item available for sale (through the office or on the website).
When sold, a Voucher is created for the contact. So think of VoucherProduce as the template for what
that voucher will look like once sold.

A voucher may be for a dollar amount or for a certain number of enrolments in particular
courses.

Vouchers should be thought of as a storage of value. When sold, they do not create a tax invoice
since they aren't a taxable sale. They are only a way for a customer to store value with the college, similar
to the student storing value in a bank account. For this reason, income is not posted to the GL
on sale. Instead a liability is created which is extinguished only when the student redeems the voucher or
the voucher expires.

attachDocument(doc)

  • doc: Document the document to be attached to this tutor

allCustomFields()

  • Returns: Map of String, Object all custom field values

allNotes()

  • Returns: List of Note all related notes

courses()

If getMaxCoursesRedemption() is not null, then this function will return a list of courses which can be redeemed
using this voucher. If getMaxCoursesRedemption() is not null and this list is empty, then the voucher
can be used against any enrollable class.

  • Returns: List of Course a list of courses into which the student can enrol

customFieldValue(key)

  • key: String custom field unique key @return custom field value @throws MissingPropertyException

  • Returns: Object custom field value @throws MissingPropertyException

documents()

  • Returns: List of Document all attached documents

liabilityAccount()

Vouchers are a liability when created. This method can return the account of the general ledger these liabilities are created in

  • Returns: Account the account joined to this voucher product

maxCoursesRedemption()

If this value is not null, the voucher can be redeemed for one or more enrolments. If this value is not null, then
getValue() will be null.

  • Returns: Integer the maximum number of enrolments which can be redeemed with this voucher

notes()

  • Returns: String concatenated private notes

underpaymentAccount()

Vouchers which are redeemed for a value different to their sale price need to put the underpayment into an appropriate expense account.

  • Returns: Account the account joined to this voucher product

value()

If this value is not null, the voucher can be redeemed for a specific dollar value. If this value is not null,
then getMaxCoursesRedemption() will be null.

If getMaxCoursesRedemption() is null and getValue() is also null, then the value of the Voucher on creation will
be equal to the sale price. For example, if the voucher is sold for $100 then it will also be worth $100 in redemption
value. This allows you to create VoucherProduct records which can be sold for any arbitrary value.

  • Returns: Money a dollar value for this voucher

WaitingList

A waiting list represents a student's interest in a course.

Typically students add themselves to a waiting list when they don't want any of the class
dates or locations currently on offer. Or just want to be reminded in the future for new availability.

allCustomFields()

  • Returns: Map of String, Object all custom field values

course()

  • Returns: Course the course the student is waiting for

createdOn()

  • Returns: Date the date and time this record was created

customFieldValue(key)

  • key: String custom field unique key @return custom field value @throws MissingPropertyException

  • Returns: Object custom field value @throws MissingPropertyException

modifiedOn()

  • Returns: Date the date and time this record was modified

notes()

  • Returns: String internal notes created by the staff

sites()

  • Returns: List of Site a list of preferred sites (can be empty)

student()

  • Returns: Student the student who is waiting

studentCount()

  • Returns: Integer the number of enrolments (including the primary student)

studentNotes()

  • Returns: String notes the student entered when creating the waiting list

WaitingListFieldConfiguration

A field configuration which is used to collect waiting list information

createdOn()

  • Returns: Date the date and time this record was created

fieldHeadings()

  • Returns: List of FieldHeading a list of all headings attached to this field configuration

fields()

  • Returns: List of Field a sorted list of all fields attached to this field configuration

modifiedOn()

  • Returns: Date the date and time this record was modified

name()

  • Returns: String the name of this field configuration. Not shown to students anywhere.