Print Templates

Customize Receipt Templates
Receipt Content Reference

Most of the receipts that print from the Evergreen staff client software are managed via the Print Template Editor (Administration → Workstation → Print Templates) and can be customized on an individual workstation basis. Typically, library systems will set up the receipts the way they want them to print out on one workstation at a branch, then export the settings as a file and import that file to each of the other workstations at that branch.

If Hatch is installed receipts can be forced to use specific printer settings. Printer Settings can be set at Administration → Workstation → Printer Settings.

This is a complete list of the receipts currently in use in Evergreen.

List of Receipts

Customize Receipt Templates

  1. In Evergreen, go to Administration → Workstation → Print Templates.
  2. Select the Template Name of the receipt you wish to customize.

    images/admin/printtemplate1.png
  3. If Hatch is enabled, you can choose different printers for different receipts with the Force Printer Context field. Otherwise, disregard this field.
  4. Make changes to the code in the Template editor field on right. Examples of code and formatting are below.
  5. Click Save Locally.

    images/admin/printtemplate2.png

Formatting

The print templates follow W3C HTML standards http://w3schools.com/html/default.asp.

Print templates use variables for various pieces of information coming from the Evergreen database. These variables deal with everything from the library name to the due date of an item. Information from the database is entered in the templates with curly brackets. Different types of print templates have access to different pieces of information. Example: {{checkout.title}}

Some print templates have sections that are repeated for each item in a list. For example, the portion of the Checkout print template below repeats every item that is checked out in HTML list format by means of the ng-repeat in the li tag.

<ol>
<li ng-repeat="checkout in circulations">
<b>{{checkout.title}}</b><br/>
Barcode: {{checkout.copy.barcode}}<br/>
Due: {{checkout.circ.due_date | date:"short"}}<br/>
</li>
</ol>

Table 58.1. Text Formatting

Goal Original Code Result

Bold (HTML)

hello

<b>hello</b>

hello

Bold (CSS)

hello

<span style="font-weight:bold;">hello</span>

hello

Capitalize

circulation

<span style="text-transform:capitalize;">circulation</span>

Circulation

Currency

1

{{1 | currency}}

$1.00


Table 58.2. Date Formatting

Code Result

{{today}}

2017-08-01T14:18:51.445Z

{{today | date:'short'}}

8/1/17 10:18 AM

{{today | date:'M/d/yyyy'}}

8/1/2017


Table 58.3. Currency Formatting

Code Result

{{xact.summary.balance_owed | currency}}

$2.50


Conditional Formatting

You can use Angular JS to only print a line if the data matches. For example:

`$$<div ng-if="hold.email_notify == 't'">Notify by email: {{patron.email}}</div>$$`

This will only print the “Notify by email:” line if email notification is enabled for that hold.

See also: https://docs.angularjs.org/api/ng/directive/ngIf

Substrings

To print just a substring of a variable, you can use a limitTo function: {{variable | limitTo:limit}} where limit is the number of characters you want.

Original

Code

Result

The Sisterhood of the Traveling Pants

{{checkout.title | limitTo:10}}

The Sisterhood of th

123456789

{{patron.card.barcode | limitTo:-5}}

56789

Images

You can use HTML and CSS to add an image to your print template if you have the image uploaded onto a publicly available web server. The logo image from your Evergreen public catalogue can be used for this.

<img src="https://LIBRARYCODE.PROVINCE.catalogue.libraries.coop/eg/opac/images/small_logo.png" style="width:150px;padding:5px;">

Sort Order

You can sort the items in an ng-repeat block using orderBy. For example, the following will sort a list of holds by the shelving location first, then by the call number:

`$$<tr ng-repeat="hold_data in holds | orderBy : ['copy.location.name','volume.label']">$$`

Reset Print Templates to Default

Click Reset to Default.

Export / Import Customized Templates

To quickly set up all workstations in a branch in the same way, set up one workstation’s receipt templates completely, then use the “Export Customized Templates” function to save an external file of templates that you can import into other workstations. Just remember to 'Save Locally' once you import the receipts on the new machine.

Export Customized Templates

  1. Click Export Customized Templates.
  2. The file will open in your default text editor, select the location to save the file to, name the file, and click Save.
  3. Click OK.

Import Customized Templates

  1. Click Import.
  2. Navigate to and select the file that you want to import. Click Open.
  3. A message displays advising file imported.
  4. Click Save Locally.

Receipt Content Reference

Table 58.4. Any Type of Print Template

Tag Notes

{{current_location.name}}

Current library’s full name

{{current_location.shortname}}

Current library’s short name

{{current_location.email}}

Current library’s email address

{{current_location.phone}}

Current library’s phone number

{{today}}

Today’s time and date - raw data

{{today|date:'short'}}

Readable time and date: 8/1/17 10:18 AM

{{today|date:'M/d/yyyy'}}

Date only: 8/1/2017

{{staff.first_given_name}}

Staff first name


Table 58.5. Bills, Current

Tag Notes

{{xact.summary.balance_owed}}

Balance remaining

{{xact.copy_barcode}}

Barcode

{{xact.id}}

Bill ID

{{xact.xact_start}}

Bill start date

{{xact.summary.xact_type}}

Bill type (circulation vs. grocery)

{{xact.summary.last_billing_note}}

Last billing note

{{xact.summary.last_billing_type}}

Last billing type

{{xact.summary.last_payment_note}}

Last payment note

{{xact.summary.last_payment_type}}

Last payment type

{{xact.title}}

Title

{{xact.summary.total_owed}}

Total billed

{{xact.summary.total_paid}}

Total paid


Table 58.6. Bills, Historical

Tag Notes

{{xact.summary.balance_owed}}

Balance remaining

{{xact.copy_barcode}}

Barcode

{{xact.id}}

Bill ID

{{xact.xact_start}}

Bill start date

{{xact.summary.xact_type}}

Bill type (circulation vs. grocery)

{{xact.summary.last_billing_type}}

Last billing type

{{xact.summary.total_owed}}

Total billed

{{xact.summary.total_paid|currency}}

Total paid

{{xact.summary.last_billing_note}}

Last billing note

{{xact.summary.last_billing_type}}

Last billing type

{{xact.summary.last_payment_note}}

Last payment note

{{xact.summary.last_payment_type}}

Last payment type

{{xact.title}}

Title

{{xact.summary.total_owed}}

Total billed

{{xact.summary.total_paid}}

Total paid


Table 58.7. Bills, Payment

Tag Notes

{{payment_applied}}

Amount paid

{{amount_voided}}

Amount voided

{{change_given}}

Change given

{{payment_note}}

Payment note

{{payment_type}}

Payment type

{{previous_balance}}

Previous balance

{{new_balance}}

Remaining balance

{{payment.xact.copy_barcode}}

Barcode

{{payment.xact.summary.last_billing_type}}

Last billing type

{{payment.xact.id}}

Payment ID

{{payment.amount}}

Payment received

{{payment.xact.title}}

Title


Table 58.8. Checkin

Tag Notes

{{checkin.copy_barcode}}

Barcode

{{checkin.call_number.label||"Not Cataloged"}}

Call Number (if no call number, displays “Not Cataloged”)

{{checkin.title}}

Title


Table 58.9. Checkout

Tag Notes

{{patron_money.balance_owed}}

Amount Owed

{{checkout.author}}

Author

{{checkout.copy_barcode}}

Barcode

{{checkout.call_number.label}}

Call Number

{{checkout.circ.due_date}}

Due Date

{{checkout.copy.price}}

Price

{{checkout.title}}

Title


Table 58.10. Hold Pull List

Tag Notes

{{hold_data.author}}

Author

{{hold_data.copy.barcode}}

Barcode

{{hold_data.volume.label}}

Call number

{{hold_data.hold.hold_type}}

Hold type

{{hold_data.part.label}}

Part

{{hold_data.copy.location.name}}

Shelving location

{{hold.title}}

Title


Table 58.11. Hold Shelf Slip

Tag Notes

{{call_number.label}}

Call Number

{{today}}

Hold available date

div ng-switch on="hold.behind_desk">div ng-switch-when="t">strong>Private - Hold Behind Desk/strong>/div>div ng-switch-when="f">strong>Public Holds Shelf/strong>/div>/div>

Hold location (Hold behind desk or public holds shelf)

ol>li ng-repeat="note in hold_notes|filter: {slip : 't'}">strong>{{note.title}}/strong>br/>{{note.body}}/li>/ol>

Hold Notes

{{hold.request_time | date:'M/d/yyyy'}}

Hold request date

{{hold.shelf_expire_time | date:'M/d/yyyy'}}

Hold shelf expire date

{{author}}

Item author

{{copy.barcode}}

Item barcode

{{title}}

Item title

{{hold.email_notify}}

Returns true or false flag

{{hold.phone_notify}}

Notification phone number

{{hold.sms_notify}}

Notification SMS text number

{{patron.card.barcode}}

Patron barcode

{{patron.email}}

Patron email address

{{patron.first_given_name}}

Patron first name

{{patron.family_name}}

Patron last Name

{{patron.second_given_name}}

Patron middle name


Table 58.12. Hold Transit Slip

Tag Notes

{{dest_address.city}}

Destination city

{{dest_courier_code}}

Destination courier code

{{dest_location.name}}

Destination full name

{{dest_location.shortname}}

Destination short name

{{dest_address.state}}

Destination state

{{dest_address.street1}}

Destination street address 1

{{dest_address.street2}}

Destination street address 2

{{dest_address.post_code}}

Destination zip code

{{hold.behind_desk}}

Hold behind desk

{{hold.request_time}}

Hold request date

{{author}}

Item author

{{copy.barcode}}

Item barcode

{{title}}

Item title

{{hold.email_notify}}

Notification email address

{{hold.phone_notify}}

Notification phone number

{{hold.sms_notify}}

Notification SMS text number

{{patron.card.barcode}}

Patron barcode

{{patron.first_given_name}}

Patron first name

{{patron.family_name}}

Patron last Name

{{patron.second_given_name}}

Patron middle name


Table 58.13. Holds for Bib Record

Tag Notes

{{holds[0].title}}

Title

{{hold_data.author}}

Author

{{hold.copy.barcode}}

Hold target copy barcode

{{hold.hold.request_time}}

Hold request date

{{hold.patron_barcode}}

Patron barcode

{{hold.patron_alias}}

Patron hold alias

{{hold.patron_last}}

Patron last name


Table 58.14. Holds for Patron

Tag Notes

{{hold.author}}

Author

div ng-if="hold.hold.email_notify == 't'"> {{hold.hold.requestor.email}} /div>

Notify by email (shows email only if selected)

{{hold.hold.phone_notify}}

Notify by phone (shows number)

{{hold.hold.sms_notify}}

Notify by SMS text (shows number)

{{hold.hold.pickup_lib.name}}

Pickup library

{{hold.hold.request_time}}

Request date

{{hold.title}}

Title


Table 58.15. In-House Use List

Tag Notes

{{ihu.copy.barcode}}

Barcode

{{ihu.num_uses}}

Number of uses


Table 58.16. Item Status

Tag Notes

{{copy.barcode}}

Barcode

{{copy['call_number.record.simple_record.title']}}

Title


Table 58.17. Items Out

Tag Notes

{{checkout.copy.barcode}}

Barcode

{{checkout.circ.due_date}}

Due date

{{checkout.title}}

Title


Table 58.18. Patron Address

Tag Notes

{{patron.first_given_name}}

Patron first name

{{patron.second_given_name}}

Patron middle name

{{patron.family_name}}

Patron last name

{{address.street1}}

Street address 1

{{address.street2}}

Street address 2

{{address.city}}

City

{{address.state}}

State

{{address.post_code}}

Zip code


Table 58.19. Patron Note

Tag Notes

{{note.value}}

Note contents

{{note.create_date}}

Note creation date

{{note.title}}

Note title

{{note.usr.card.barcode}}

Patron barcode

{{note.usr.first_name}}

Patron first name

{{note.usr.family_name}}

Patron last name

{{note.usr.second_given_name}}

Patron middle name


Table 58.20. Renew

Tag Notes

{{renewal.copy.barcode}}

Barcode

{{renewal.circ.due_date}}

Due date

{{renewal.title}}

Title


Table 58.21. Transit List

Tag Notes

{{transit.target_copy.barcode}}

Barcode

{{transit.source_send_time}}

Date sent

{{transit.dest.shortname}}

Short name of destination library

{{transit.source.shortname}}

Short name of sending library

{{transit.target_copy.call_number.record.simple_record.title}}

Title


Table 58.22. Transit Slip

Tag Notes

{{dest_address.city}}

Destination city

{{dest_courier_code}}

Destination courier code

{{dest_location.name}}

Destination full name

{{dest_location.shortname}}

Destination short name

{{dest_address.state}}

Destination state

{{dest_address.street1}}

Destination street address 1

{{dest_address.street2}}

Destination street address 2

{{dest_address.post_code}}

Destination zip code

{{author}}

Item author

{{copy.barcode}}

Item barcode

{{title}}

Item title


Copyright © 2008-2018, BC Libraries Cooperative