Table of Contents |
---|
minLevel | 1 |
---|
maxLevel | 7 |
---|
outline | true |
---|
|
...
AQ Receipting Utility - Generating Receipt Records
...
Criteria for the Transaction to be pulled in for receipting:
Transaction.Receipt Number field has to be null in order for the transaction to be looked at (links the transaction to the receipt, if this field is populated, the utility assumes a receipt has already been generated)
On transaction type has to be Grant Payment or Payment
Image AddedMethod can't be soft credit, transfer or service
Note |
---|
when you have loaded the utility, and something has changed (i.e. new transactions created or update happened to transactions), any changes would not reflect in the utility unless you refresh the utility page. That means, the find transaction to receipt button may not pickup newly created transactions so make sure you refreshed the page. |
Expand |
---|
title | Generating Receipt Records |
---|
|
Receipt Records are generated from AQ Receipting Utility, here’s an excerpt from AQ zendesk: Receipting Lightning Web ComponentTo access the Receipting Lightning Web Component, go to the App Launcher and select Receipting (you may need to create at tab - please see Configuration - Receipting Receipts can be generated for a date range, by batch or individually by gift number. Annual Receipts and Receipts Needing Approval are excluded by default, but can be added to the group to be receipted by checking the boxes. Choose Find Transactions to Receipt and you will see the number and total of the receipts to be created. Then choose Create Receipts.
Info |
---|
Note that after creating the receipts, the tab will need to be refreshed (or new window) in order for the records created to be recognized. Otherwise, the tool will keep on fetching the same transactions to be receipted. The reset button just clears out the input boxes. Therefore, if something has changed that needed to be reflected in the Receipting Utility, it is necessary to reload the tool in a new window. Please see attached video for illustration. This has been raised to AQ Zendesk for reference https://affinaquest.zendesk.com/hc/en-us/requests/3997 | video1120102716.mp4 Image ModifiedOnce receipt rows have been created and receipts generated, you can view the receipt information on the Account. Information on the receipt is on the gift record and the check boxes can be updated if needed after gift entry. The receipt count cannot be updated manually. It will increment based on the number of times the receipt is issued or voided. Image ModifiedThe electronic file will be attached to the Receipt row when issued. Image Modified Info |
---|
How the system fetches “unreceipted” transaction is through the “Receip Number” on Transaction record. Transaction.Receipt Number links the transaction to the receipt, if this field is populated, the utility assumes a receipt has already been generated. Transaction type has to be grant payment or payment. Method can't be soft credit, transfer or service. Jira Ticket Jira Legacy |
---|
server | System JIRA |
---|
serverId | e9de0c6d-9ef6-3ada-b4ce-7168c44d7e8a |
---|
key | TAP-889 |
---|
| had an issue because the dummy Receipt has been deleted when cleaning up receipts. Because of this, previously receipted transactions are being fetched and included into the new receipt being created. |
Note |
---|
when we run the receipting by date range it automatically voids all receipts in that date range that are attached to a modified gift. Jira ticket Jira Legacy |
---|
server | System JIRA |
---|
serverId | e9de0c6d-9ef6-3ada-b4ce-7168c44d7e8a |
---|
key | TAP-107 |
---|
| tackles an open issue on receitping where Annual receipt is being receipted by the utility and recurring gift batchs is not being receipted with batch # search. |
|
Apsona MSR - Data Derivation for receipting General Template/Mapping
...
| Merge Document (Doc template) | Jarvis (Apsona) - Field Mapping |
---|
Date | «ReceiptDate» | |
Heading | «IF CareOf»«AccountName» «ELSE IF AccrecordType !="Household"» «AccountName»«ENDIF» «IF CareOf»Care Of: «CareOf» «ELSE IF Deceased»Sir/Madam «ELSE IF LegalCreditCheckLess100Greater0» «IF PSalutation»«PSalutation»«ENDIF» «PFirstName» «PLastName»«IF PSuffix»«PSuffix»«ENDIF» and «IFSSalutation»«SSalutation»«ENDIF» «SFirstName» «SLastName»«IF SSuffix» «SSuffix»«ENDIF» «ELSE IF LegalCreditCheck100» «IF LegalCreditSalutation»«LegalCreditSalutation»«ENDIF» «LegalCreditFirstName» «LegalCreditLastName» «IF LegalCreditSuffix» «LegalCreditSuffix»«ENDIF»«ENDIF» «IF MailingLine1»«MailingLine1»«ENDIF» «IF MailingLine2»«MailingLine2»«ENDIF» «IF MailingLine3»«MailingLine3»«ENDIF» «IF City»«City»«ENDIF» «State» «PostCode» «Country» | "CareOf":"Receipt____AQB__AccountId__c___USYD_Receipting_Care_of__c" "AccrecordType":"Account____RecordTypeId" "AccountName":"Receipt____AQB__AccountId__c___Name" "Deceased":"Receipt____AQB__ContactId__c___AQB__Deceased__c" "LegalCreditCheckLess100Greater0":"Calculated_Steps____>0<100" where >0<100 : ({!Gift Recognition Credit.Gift Recognition Credit.Legal Credit %} > 0) && ({!Gift Recognition Credit.Gift Recognition Credit.Legal Credit %} < 100) ? "PS" : ""
"PSalutation": "Account____AQB__PrimaryContact__c___Salutation" "PFirstName": "Account____AQB__PrimaryContact__c___FirstName" "PLastName": "Account____AQB__PrimaryContact__c___LastName" "PSuffix": "Account____AQB__PrimaryContact__c___Suffix" "SSalutation": "Account____AQB__SecondaryContact__c___Salutation" "SFirstName": "Account____AQB__SecondaryContact__c___FirstName" "SLastName": "Account____AQB__SecondaryContact__c___LastName" "SSuffix": "Account____AQB__SecondaryContact__c___Suffix" "LegalCreditSalutation": "Gift_Recognition_Credit____AQB__ContactId__c___Salutation" "LegalCreditFirstName": "Gift_Recognition_Credit____AQB__ContactId__c___FirstName" "LegalCreditLastName": "Gift_Recognition_Credit____AQB__ContactId__c___LastName" "LegalCreditSuffix": "Gift_Recognition_Credit____AQB__ContactId__c___Suffix" "MailingLine1": "Receipt____AQB__AccountId__c___AQB__AccountMailingStreetLineOne__c" "MailingLine2": "Receipt____AQB__AccountId__c___AQB__AccountMailingStreetLineTwo__c" "MailingLine3": "Receipt____AQB__AccountId__c___AQB__AccountMailingStreetLineThree__c" "City": "Receipt____AQB__AccountId__c___BillingCity" "State": "Receipt____AQB__AccountId__c___BillingState" "PostCode": "Receipt____AQB__AccountId__c___BillingPostalCode"
|
Salutation | «SalutationJava» | Code Block |
---|
| (function () {
// define all merge fields to be used as variables for shorter reference
var accountType = {!Account.Account.Account Type};
var grclc = {!Gift Recognition Credit.Gift Recognition Credit.Legal Credit %};
// it is actually not accurate to assume that the GRC is given to the Primary and Secondary contacts of the account.
// it is actually possible to have the primary and secondary contact not set and still award the GRC records, in the off
// chance that this happens to be, the receipt will print blank names on salutaion.
var PLastName = {!Account.Primary Contact.Last Name} ? {!Account.Primary Contact.Last Name} : "";
var PFirstName = {!Account.Primary Contact.First Name} ? {!Account.Primary Contact.First Name} : "";
var SLastName = {!Account.Secondary Contact.Last Name} ? {!Account.Secondary Contact.Last Name} : "";
var SFirstName = {!Account.Secondary Contact.First Name} ? {!Account.Secondary Contact.First Name} : "";
var salutation1 = {!Account.Primary Contact.Salutation} ? {!Account.Primary Contact.Salutation} : "";
var salutation2 = {!Account.Secondary Contact.Salutation} ? {!Account.Secondary Contact.Salutation} : "";
var careof = {!Receipt.Account.Receipting Care of};
var method = 0;
var PstandaloneSal = {!Contact Primary.Salutation Link.Standalone Salutation};
var SstandaloneSal = {!Contact Secondary.Salutation Link.Standalone Salutation};
// if standalone salutation, don't print the names
if (PstandaloneSal) {
PLastName = "";
PFirstName = "";
}
// if standalone salutation, don't print the names
if (SstandaloneSal) {
SLastName = "";
SFirstName = "";
}
if (grclc == 100) {
// only one contact gets legal credit, we get the first GRC record and the credit contact of that GRC Record
PLastName = {!Gift Recognition Credit.Contact Credited.Last Name} ? {!Gift Recognition Credit.Contact Credited.Last Name} : "";
PFirstName = {!Gift Recognition Credit.Contact Credited.First Name} ? {!Gift Recognition Credit.Contact Credited.First Name} : "";
// if standalone salutation, don't print the names
if (PstandaloneSal) {
PLastName = "";
PFirstName = "";
}
salutation1 = {!Gift Recognition Credit.Contact Credited.Salutation} ? {!Gift Recognition Credit.Contact Credited.Salutation} : "";
// second contact is blank
salutation2 = "";
SLastName = "";
SFirstName = "";
}
// if no salutation to either of the two contacts, set the Method : use first name or Supporter
if ((PLastName != "" && salutation1 == "") || (SLastName != "" && salutation2 == "")){
if (PFirstName != "" && PFirstName.length > 1 && SFirstName == ""){ // one contact, first name is not one character,
method = 1; // use first name
} else if (PFirstName != "" && PFirstName.length > 1 && SFirstName != "" && SFirstName.length > 1){ // two contacts, first name is not one character
method = 1; // use first name for both contacts
} else {
method = 2; // no salutation and no first name, use Dear Supporter
}
}
// Household and two contact same surname - Dear Mr Ryan and Mrs Francesca Bryant
if ((accountType == 'Household') && (grclc < 100) && (PLastName == SLastName)) {
switch(method){
case 1: // Dear Ryan and Francesca Bryant
return (PFirstName + " " + "and" + " " + SFirstName + " " + SLastName);
break;
case 2: // Dear Supporter
return ("Supporter");
break;
default: // Dear Mr and Mrs Bryant or Dear Chancellor and Mrs Bryant
return (salutation1 + " " + "and" + " " + salutation2 + " " + SLastName);
}
// Household and two contact different surname - Dear Mr Ryan Bryant and Mrs Francesca Parkes
} else if ((accountType == 'Household') && (grclc < 100) && (PLastName != SLastName)) {
switch(method){
case 1: // Dear Ryan and Francesca
return (PFirstName + " " + "and" + " " + SFirstName);
break;
case 2: // Dear Supporter
return ("Supporter");
break;
default: // Dear Mr Bryant and Mrs Parkes or Dear Chancellor and Mrs Parkes
return (salutation1 + " " + PLastName + " " + "and" + " " + salutation2 + " " + SLastName);
}
// Not Household with careof
} else if ((accountType != 'Household') && (careof)){
return ({!Receipt.Account.Receipting Care of});
} else if ((accountType != 'Household')){
return ("Sir/ Madam");
} else if ((grclc == 100)){ // Household and only one LC
switch(method){
case 1: // Dear Ryan
return (PFirstName);
break;
case 2: // Dear Supporter
return ("Supporter");
break;
default: // Dear Mr Bryant or Dear Chancellor
return (salutation1 + " " + PLastName);
}
} else {
return "";
}
})() |
|
Body | | |
Date | «IF Pledge»«LastPaymentDate»«ELSE»«GiftDate»«ENDIF» | |
Received from | «GiftRecognitionCredit» | Flow: Gift Pledge Update - V6 Trigger: Gift/Pledge Created or Edited If GRC exist: concatenate contacts’: Contact.Receipt Name or Contact.FirstName Contact.LastName else: Account.Account Name Gift Pledge Update - V6 |
Amount | «GiftAmount» | |
Receipt | «ReceiptNum» | |
| «COADesignation» | |
Email Recipient | Receipt.Receipt Email | AQB__Receipt__c.AQC_Receipt_Email__c which is a formula: If the Contact email is blank or the Account is not a household, this will display the Account email, otherwise it will display the Contact email. IF(ISBLANK(AQB__ContactId__r.Email),AQB__AccountId__r.AQB__Email__c, AQB__ContactId__r.Email) |
...