Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Drawio
mVer2
zoom1
simple0
inComment0
pageId2856616143
custContentId2916811124
lbox1
diagramDisplayNameJarvis Receipting Process
contentVer1
revision1
baseUrlhttps://sydneyuni.atlassian.net/wiki
diagramNameJarvis Receipting Process
pCenter0
width351
links
tbstyle
height441

...

  1. There must be a Contact that is directly linked to the account (Account is NOT Orphaned) for the receipt to be created.

  2. Gift Date is not in the future

  3. Transaction has not already been receipted

  4. Transaction’s Do Not Receipt is not ticked

...

Test Scenario

...

The following scenarios are for which receipt cannot be created because there was no directly linked contact when Gift was created (except for household, which presumably always created with direct linked contact).

Test Scenario

Contact is selected on the receipt

Transaction Signator

Organization Account no direct linked contacts

Gift created

directly link a contact (do not mark as primary)

(tick)

(error)

Organization Account no direct linked contacts

Gift created

directly link 2 contacts (do not mark as primay)

(error)

(error)

Organization Account no direct linked contacts

Gift created

directly link 2 contacts (mark one a primary)

(tick)

primary contact

(error)

Organization Account no direct linked contacts

Gift created

directly link a contact (do not mark as primary)

manually add a different contact to transaction signatore

(tick)

signator

(tick)

manually added

Household Account (assume always created with direct contact)

no primary contact selected on account

Gift Created

(tick)

signator

(tick)

forced to select in batch creation

Household Account (assume always created with direct contact)

multiple contacts set as primary and secondary

Gift Created - signator is secondary contact

(tick)

signator (secondary)

(tick)

forced to select in batch creation

AQ Receipting Utility - Generating Receipt Records

...

Note

when you have loading loaded the utility, and something has changed (i.e. new transactions created or update happenhappened to transactions), any changes would not reflect in the utility , unless you have to refresh the utility page to see the changes. That means, the find transaction to receipt button may not pickup newly created transactions so make sure you refreshed the page.

Expand
titleGenerating Receipt Records

Receipt Records are generated from AQ Receipting Utility, here’s an excerpt from AQ zendesk:

Receipting Lightning Web Component

To 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.

  1. Choose Find Transactions to Receipt and you will see the number and total of the receipts to be created.

  2. 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

Once 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.

The electronic file will be attached to the Receipt row when issued.

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
serverSystem JIRA
serverIde9de0c6d-9ef6-3ada-b4ce-7168c44d7e8a
keyTAP-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
serverSystem JIRA
serverIde9de0c6d-9ef6-3ada-b4ce-7168c44d7e8a
keyTAP-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

...

Merge Document (Doc template)

...

Some logic were built into the Merge doc template itself. Please see below where the values are being picked from (merge field from document template are mapped to Apsona MSR field). This is technical field 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" : ""

  • "LegalCreditCheck100": "Calculated_Steps____100%"
    where 100% :
    ({!Gift Recognition Credit.Gift Recognition Credit.Legal Credit %}==100) ? "C" : ""

  • "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__

ContactId
  • AccountId__c___

AQB__Deceased__c
  • BillingState"

  • "

LegalCreditCheckLess100Greater0
  • PostCode": "

Calculated_Steps_
  • Receipt____AQB__AccountId__c___

>0<100
  • BillingPostalCode"

Salutation

«SalutationJava»

Code Block
languagejs
(function () {
    var accountType = {!Account.Account.Account Type};
	var grclc = {!Gift Recognition Credit.Gift Recognition Credit.Legal Credit %};
	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; // Dear Salutation + First Name + Last Name
	if ((PLastName != "" && salutation1 == "") || (SLastName != "" && salutation2 == "")){
		if ((PFirstName != "" && PFirstName.length > 1) || (SFirstName != "" && SFirstName.length > 1 )){
			method = 1; // Dear First Name
		} else {
			method = 2; // Dear Supporter
		}
	}
	if ((accountType == 'Household') && (grclc < 100) && (PLastName == SLastName)) {
			switch(method){	
				case 1:
					return (PFirstName + " " + "and" + " " + SFirstName + " " + SLastName);
					break;
				case 2:
					return ("Supporter");
					break;
				default:
					return (salutation1 + " " + "and" + " " + salutation2 + " " + SLastName);
			}
	} else if ((accountType == 'Household') && (grclc < 100) &&  (PLastName != SLastName)) {
				switch(method){
					case 1:
						return (PFirstName + " " + "and" + " " + SFirstName);
						break;
					case 2:
						return ("Supporter");
						break;
					default:
						return (salutation1 + " " + PLastName + " " + "and" + " " + salutation2 + " " + SLastName);
				}
			} else if ((accountType != 'Household') && (careof)){
					return ({!Receipt.Account.Receipting Care of});						
				} else if ((accountType != 'Household')){
							return ("Sir/ Madam");
				} else if ((grclc == 100)){
					
						switch(method){	
							case 1:
								return (PFirstName);
								break;
							case 2:
								return ("Supporter");
								break;
							default:
								return (salutation1 + " " + PLastName);
						}						
				} else {
					return "";
				}
 })()

Body

Date

«IF Pledge»«LastPaymentDate»«ELSE»«GiftDate»«ENDIF»

  • "LastPaymentDate": "Receipt__value__USYD_Gift_Date__c"

  • "GiftDate": "Receipt__value__AQB__GiftDate__c"

Received from

«GiftRecognitionCredit»Gift/Pledge Number.GRC roll-up

  • "GiftRecognitionCredit": "Receipt____AQB__GiftId__c___GRC_roll_up__c"

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»

  • "GiftAmount": "Receipt____AQB__Amount__c"

Receipt

«ReceiptNum»

  • "ReceiptNum": "Receipt____Name"

«COADesignation»

  • "COADesignation": "Receipt____USYD_Transaction_COA_Acc_Num_Roll_Up__c"

Generating Receipt Document

...