Annual Compliance Standard Assignments Library

Doc Auto Team
Doc Auto Team
  • Updated

Streamline your Document Automation in Athennian with the best practice of coding documents using assignments. Instead of complex syntax, utilize single custom variables, booleans, and collections for readability. Updates become a breeze with changes applied universally.

Explore our standardized Annual Resolutions templates coded with teal-colored assignments. Access the real code in the Summary section of each document. Watch the brief video below to learn how to navigate assignments stored in the document properties' Summary section.

Note: You have the option to store assignment code in a separate Word document, similar to Athennian sub-templates. Please use the raw tag '@' syntax to ensure values and hard returns in the assignment code are not populated in the document through sub-template insertion. Please stay tuned for our next articles on how to use raw tags in Athennian document coding. 

Download the coded templates and assignment code snippets below by clicking on the link for an in-depth exploration. Note that each resolution document includes signature sub-template insert code, requiring the inclusion of relevant sub-templates in the documents.

Assignment Name

Assignment Coding

Notes

Entity (General) by Assignments

entityNameASG

{entityNameASG=(entities | grab:1:'entityName')}

 

entityJurisRegionASG

{entityJurisRegionASG=(entities | grab:1:'jurisdictionRegion’)}

 

corpActCanASG

{#(entities | grab:1:’jurisdictionRegion’)=='Canada (Federal)'}

{corpActCanASG='Canada Business Corporations Act'}

{corpActProvCanASG=’’}

{/}

{#(entities | grab:1:’jurisdictionRegion’)=='Nova Scotia'}

{corpActCanASG='Companies Act’}

{corpActProvCanASG=’ (‘+(entities | grab:1:’jurisdictionRegion’)+’)'}

{/}

{#((entities | grab:1:’jurisdictionRegion’)=='Manitoba') || ((entities | grab:1:’jurisdictionRegion’)=='Newfoundland and Labrador')}

{corpActCanASG='Corporations Act'}

{corpActProvCanASG=’ (‘+(entities | grab:1:’jurisdictionRegion’)+’)'}

{/}

{#((entities | grab:1:’jurisdictionRegion’)!='Manitoba')&&((entities | grab:1:’jurisdictionRegion’)!='Newfoundland and Labrador')&&((entities | grab:1:’jurisdictionRegion’)!='Nova Scotia')&&((entities | grab:1:’jurisdictionRegion’)!='Canada (Federal)’)}

{corpActCanASG='Business Corporations Act'}

{corpActProvCanASG=’ (‘+(entities | grab:1:’jurisdictionRegion’)+’)'}

{/}

In this assignment coding, it's imperative to use both corpActCanASG and corpActProvCanASG in tandem within the document coding, as demonstrated below. It's worth noting that {corpActCanASG} is formatted in italics, while {corpActProvCanASG} is directly appended without a space. This distinction arises from two key considerations:

  1. In the code syntax for defining the assignment {corpActProvCanASG}, an additional space has already been accounted for.

  2. As in the 1st logical statement, when jurisdictionRegion is specified as Canada (Federal), an empty string is transmitted. For that reason this format is to prevent an extra space from being printed in the document

{corpActCanASG}{corpActProvCanASG}

Example 1: Canada Business Corporations Act

Example 2: Companies Act (Nova Scotia)

 

 

corpActProvCanASG

companyCorpASG

{#(entities | grab:1:’jurisdictionRegion’)=='Nova Scotia'}

{companyCorpASG='Company'}

{/}{#(entities | grab:1:’jurisdictionRegion’)!='Nova Scotia'}

{companyCorpASG='Corporation'}

{/}

 

waivedAuditorASG

{waivedAuditorASG=(entities | grab:1:’waivedAuditor’)}

A simple boolean assignment

waivedAGMASG

{waivedAGMASG=(entities | grab:1:’waivedAGM’)}

A simple boolean assignment

shareholderAgrmtUnamsASG

{shareholderAgrmtUnamsASG=(entities | grab:1:’shareholderAgreementUnanimous’)}

 

waivedFinancialsASG

{waivedFinancialsASG=(entities | grab:1:’waivedFinancials’)}

A simple boolean assignment

fiscalYearEndASG

{fiscalYearEndASG=(entities | grab:1:’fiscalYearEnd’)}

 

nextAGMMASG

{nextAGMASG=(entities | grab:1:’nextAGM’)}

 

Directors by Assignments 

activeDirectorsASG

{activeDirectorsASG=((RES_affiliations) || (affiliations | status:'!inactive') | filter:’role’:’Officer’ | uniqBy:’participant_profileID’ | except:(tasks | grab:1:’outgoingAffiliations’):'affiliationID')}

This is a collection assignment where the name is in plural form, as opposed to single assignments, which have names in singular form.

Officers by Assignments 

activeOfficersASG

{activeOfficersASG=((RES_affiliations) || (affiliations | status:’!inactive’) | filter:'role':'Officer' | except:(tasks | grab:1:’outgoingAffiliations’):'affiliationID' | uniqBy:'participant_profileID')}

This is a collection assignment where the name is in plural form, as opposed to single assignments, which have names in singular form.

activeOfficersGroupASG

{activeOfficersGroupASG=((RES_affiliations) || (affiliations | status:'!inactive') | filter:’role’:’Officer’ | except:(tasks | grab:1:’outgoingAffiliations’):'affiliationID' | orderBy_B:’rank’ | groupBy:’participant_profileID’)}

:bulb: Here‘s another recommended practice in Athennian assignment coding. As you can see, we've now created a group for all active officers. This is particularly useful because a single individual may hold multiple offices. While we don't want to repeat each person's name as many times as they are appointed to different offices, we do want to display the office titles in a concise manner. For more details, please refer to the document.
:bulb: At the end of the code, you may have observed that we utilized the 'orderBy_B:’rank' syntax to arrange the officers according to their office ranks. It's important to keep in mind that this ordering code functions effectively when the officers are arranged using the drag-and-drop functionality in the Principals window on the front-end.

Shareholders by Assignments

votingShareholderPluralASG

{#(RES_shareholdings || shareholdings) | filter:’totalShares’:'!0' | filter:’totalVotes’:’!0’ | uniqBy:’participantID’ | count | gt:1}

{votingShareholderPluralASG='s'}

{/}

If number of voting shareholders is greater than one, the ASG code add 'S' as pluralization

allShareholdersASG

{allShareholdersASG=((RES_shareholdings || shareholdings) | filter:'totalShares':'!0' | uniqBy:’participantID’)}

Collection assignment

votingShareholdersASG

{votingShareholdersASG=((RES_shareholdings || shareholdings) | filter:'shares':'!0' | filter:’votes’:’!0’ | uniqBy:'participantID')}

Collection assignment

Auditor by Assignments 

activeAuditorsASG

{activeAuditorsASG=((RES_affiliations) || (affiliations | status:'!inactive') | filter:’role’:'Other Professional' | filter:’type’:’Auditor’)}

Collection assignment

Accountant by Assignments 

activeAccountantsASG

{activeAccountantsASG=((RES_affiliations) || (affiliations | status:'!inactive') | filter:’role’:'Other Professional' | filter:’type’:’Accountant’)}

Collection assignment

Registered Office by Assignments 

regOfficeAddressASG

{regOfficeAddressASG=(RES_affiliations) || (affiliations | status:'confirmed') | filter:’title’:’Registered Office’ | grab:1:’addresses’ | filter:’addressStatus’:’!inactive’:'!outgoing' | grab:1:’address’}

 

Task by Assignments 

resignedDirectorsASG

{resignedDirectorsASG=(tasks | grab:1:’outgoingAffiliations’ | filter:’role’:’Director’ | filter:’endReason’:’Resigned’)}

:bulb: In Annual Compliance task workflow, incoming and outgoing principals are selected automatically when you enter Annual Report date.

resignedOfficersASG

{resignedOfficersASG=(tasks | grab:1:’outgoingAffiliations’ | filter:’role’:’Officer’ | filter:’endReason’:’Resigned’}

:bulb:Please ensure that you set the Inactive Reason on the front-end for principals who have resigned. This is crucial because the assignment code relies on a specific filter for the inactive reason of principals who have been selected as outgoing principals in tasks.

resignedOfficersGroupASG

{resignedOfficersGroupASG=(resignedOfficersASG | groupBy:'participant_profileID')}

 

removedOfficersASG

{removedOfficersASG=(tasks | grab:1:’outgoingAffiliations’ | filter:’role’:'Officer’ | filter:’endReason’:’Removed’)}

 

removedOfficersGroupASG

{removedOfficersGroupASG=(removedOfficersASG | groupBy:'participant_profileID')}

 

Related to