Local - Fees Transactions
There may be a requirement to get fees transactions for students. The easiest way to do this is to create a report.
Sample code from Local - SIMS 7 Fees Example Code | ESS Portal (sims-partners.com) shows how this can be achieved.
Using command reporter to run it, see Local API - Hello World (Read Only) | ESS Portal (sims-partners.com) for instructions on how to code the solution. This will look something like this when you've re-used the sample code.
public static TransactionsSuperStarReport GetTransations(DateTime Start, DateTime End, string _File, string Server, string Database, string User, string Password)
{
if (SIMSReportingEngine.ReportingEngine.Load(_File, Server, Database, User, Password))
{
XmlDocument d = SIMSReportingEngine.ReportingEngine.Run("Fees Data Export Transactions v1", Server, Database, User, Password);
XmlSerializer serializer = new XmlSerializer(typeof(TransactionsSuperStarReport));
TransactionsSuperStarReport tssr = null;
using (StringReader reader = new StringReader(d.InnerXml))
{
tssr = (TransactionsSuperStarReport)serializer.Deserialize(reader);
}
return tssr;
}
return null;
}
The report generates a document
<SuperStarReport>
<Record>
<multiple_id>12337,12260</multiple_id>
<StudentID>12337</StudentID>
<PupilReference>PARKSP</PupilReference>
<ExternalId>6fca7a6a-7597-4ef5-ad5b-fd9ab2273688</ExternalId>
<Payer_Outstanding_Balance>10900.00</Payer_Outstanding_Balance>
<Pupil_Payer_Outstanding_Balance>10900.00</Pupil_Payer_Outstanding_Balance>
<PayerReference>PARK4854</PayerReference>
</Record>
<Record>
<multiple_id>11827,11795</multiple_id>
<StudentID>11827</StudentID>
<PupilReference>Pottsi</PupilReference>
<ExternalId>23314cd4-f20b-46ff-b83d-d1389f94a68d</ExternalId>
<Payer_Outstanding_Balance>10900.00</Payer_Outstanding_Balance>
<Pupil_Payer_Outstanding_Balance>10900.00</Pupil_Payer_Outstanding_Balance>
<PayerReference>POTT3383</PayerReference>
</Record>
</SuperStarReport>
This can be deserialized in to:
[XmlRoot(ElementName = "Record")]
public class TransactionRecord
{
/// <summary>
/// The Fees reference for a student
/// </summary>
[XmlElement(ElementName = "PupilReference")]
public string PupilReference { get; set; }
/// <summary>
/// Internal ID of a Student
/// </summary>
[XmlElement(ElementName = "ID")]
public int ID { get; set; }
/// <summary>
/// External ID of a student
/// </summary>
[XmlElement(ElementName = "ExternalId")]
public string ExternalId { get; set; }
/// <summary>
/// Transaction type for this transaction
/// </summary>
[XmlElement(ElementName = "TransactionType")]
public string TransactionType { get; set; }
/// <summary>
/// Description
/// </summary>
[XmlElement(ElementName = "TransactionDescription")]
public string TransactionDescription { get; set; }
/// <summary>
/// Amount of the transaction
/// </summary>
[XmlElement(ElementName = "Amount")]
public double? Amount { get; set; }
/// <summary>
/// VAT amount of the transaction
/// </summary>
[XmlElement(ElementName = "VATAmount")]
public double? VATAmount { get; set; }
/// <summary>
/// Amount + VAT
/// </summary>
[XmlElement(ElementName = "GrossAmount")]
public double? GrossAmount { get; set; }
/// <summary>
/// Transaction Date
/// </summary>
[XmlElement(ElementName = "Date")]
public DateTime? Date { get; set; }
/// <summary>
/// Transaction batch number
/// </summary>
[XmlElement(ElementName = "BatchNumber")]
public string BatchNumber { get; set; }
/// <summary>
/// Sequence number in the batch
/// </summary>
[XmlElement(ElementName = "BatchSequence")]
public string BatchSequence { get; set; }
/// <summary>
/// Reference of Payer
/// </summary>
[XmlElement(ElementName = "PayerReference")]
public string PayerReference { get; set; }
/// <summary>
/// Amount allocated
/// </summary>
[XmlElement(ElementName = "AmountAllocated")]
public double? AmountAllocated { get; set; }
/// <summary>
/// Amount available to allocate
/// </summary>
[XmlElement(ElementName = "AmountUnallocated")]
public double? AmountUnallocated { get; set; }
/// <summary>
/// Transaction Type
/// </summary>
[XmlElement(ElementName = "Type")]
public string Type { get; set; }
/// <summary>
/// Disputed flag
/// </summary>
[XmlElement(ElementName = "DisputedBill")]
public string DisputedBill { get; set; }
}
Alternative reports can match internal / external ids to Payer Reference.