Setup and Concept notes for the Moneyworks Purchase Order Authorisation scripts
Credits
Concept, design, testing, original documentation
- Janet Udy, Golden Micro Solutions Ltd
- PO Box 590, Blenheim
- T: 03 578 4466
- E: janet@golden.co.nz
Development
- Mandeswori Maharjan & Craig Drown,
- Sustainable Solutions (NZ) Ltd
- 14/30 Upper Queen St, Auckland 1010
- T: 09 9506778
- E: craig@sussol.net
Overview of the Purchasing Process
The concept is that purchasing by staff be approved by the Finance department. The process is as follows:
- Staff enter Purchase Orders
- Finance staff approve these Purchase Orders
- Staff print approved Purchase Orders only and send them to the supplier
- Finance staff receive the creditor invoices and process the Purchase Orders into creditor invoices.
- For each creditor invoice generated, Finance staff highlight it and run the ‘Emailer’ script to send a message to the originator of the Purchase Order asking them to authorise the creditor invoice for payment.
- The Finance staff then check the details of the creditor invoice that has been emailed to them and authorises it using the Command menu option ‘Authorise Invoice’.
- Finance staff pay the authorised invoices.
Authorisation Script
This script provides a means of flagging Purchase Orders as authorised so that the staff who have entered them have approval to go ahead and order the goods.
Installing the Authorisation Script
The authorisation script, called ‘Authroise_PO v3’ should be installed in the Scripts folder within the Moneyworks Custom Plug-Ins folder for those users who have authorisation privilege. That is, for those staff members who will review Purchase Orders and approve them. This script should also be installed for those administration users who are processing Purchase Orders. This is explained in a separated section. The place to install it for each user is: C:\Documents and Settings\”User”\Application Data\Cognito\MoneyWorks Gold\Datacentre\MoneyWorks Custom Plug-Ins\Scripts where “User” is the name of the user. Once installed it will appear as the last item on the Command menu for those users who have it installed.
Using the Authorisation Script
To use the Authorisation Script:
- Highlight the Purchase Order or Orders you want to authorise
- Select Authorise_PO v3 from the Command menu.
- This will assign the Initials of the authorising user to the the first authorisation field, if the Purchase Order has not yet been authorised. It will assign the user’s initials to the second authorisation field if the PO has already been authorised by someone else.
- If the current user has already authorised a particular PO then a message will be displayed to this effect.
- If a PO was previously authorised by another authoriser and then subsequently modified before the current authoriser tried to authorise it, then the authorisation will be completely cleared.
- Sort on the current sort column by clicking on it twice.
- When a PO is authorised, the authorisors initials are not automatically displayed in the Authorisation columns — you need to refresh the window first. Clicking on the current sort column twice just forces the window to refresh and thus display any values in the Authorisation columns.
What the Authorisation Script Does
When the first person authorises a Purchase Order, the authorisation script creates a check sum using the Order quantity, product code, Detail Gross plus the OrderShipped amount. This value is stored in the User Table along with the first Authorisor’s initials.
When the second person authorises a Purchase Order, the script checks the checksum is still the same. If it is, then it stores the second user’s intials in the User Table. If not, it clears the checksum and first user’s initials and then warns the user that the authorisation has been cleared. The stored checksum is used by the Helper script (see below) and when a Purchase Order is printed (see below).
Purchase Order Printing
A special Purchase Order form has been written. It should be signed for all users who need to print Purchase Orders. When this form is printed, it checks to see if the Purchase Order is fully authorised:
- If it is, then it prints ‘Approved’ on the printed Purchase Order
- If it is not, then it prints ‘Not Approved’ and clears any authorisation recorded in the User Table.
If there is an authorisation stored within the User Table, the script on the form recalculates the checksum and compares it to the stored checksum. If they are not the same then it clears the authorisation. Normally, you would expect if the Purchase Order had been modified after it was authorised, then the Helper Script (see below) would have cleared the authorisation. However, if a user hasn’t got the Helper Script installed for whatever reason, then the system won’t pick up on the modification until the user tries to print the Purchase Order. At this point, the Purchase Order printing will clear the authorisation and print ‘Not Approved’ on the form.
Helper Script
Once a Purchase Order has been approved, it is expected that it would not be modified. This script notifies a user if they make changes to an authorised Purchase Order and gives the user the option of canceling out of the changes they’ve made. If the user goes ahead with the changes, then the authorisation is wiped and the Purchase Order will need to be authorised again before it can be printed and sent to the supplier. This script should be installed for all users who have access to Moneyworks. If it is not installed for a particular user, then it will have the following consequences:
- The user won’t be warned if they make changes to a Purchase Order.
- The Purchase Order authorisation will not be wiped so the Purchase Order will still ‘look’ authorised when it is not.
- When the user goes to print the Purchase Order, it will print ‘Not Approved’ and wipe the authorisation at this point.
- Users will be able to use the option ‘Accountants Export’ because the user must have the ‘Export’ privilege in order to use the script. This would allow them to export all or any of the transactions within Moneyworks in a format suitable for importing into various accounting packages.
Installing the Helper Script
The following Moneyworks preferences should be set in order for the Helper Script to work correctly:
- The Order number on the Sequence Nos page of Document Preferences should be set so it cannot be change.
- The helper script relies on having unique Order numbers to identify the Order when checking the Order values against the stored checksum for an authorised Purchase Order.
- On the Data Entry page of Document Preferences, the duplication option should be set to ‘Allocate a new reference number’
- This is for the same reason as above. If you wish to have the ‘Ask’ option set (for example, when you are duplicating in other areas of Moneyworks), then you must always select to allocate a new reference number if you duplicate a Purchase Order.
A user must have the following privileges in order for the Helper Script to work correctly:
- The user privilege ‘Exporting’ must be turned on
- The user privilege ‘Execute External Scripts’ must be turned on
To install the Helper Script:
- Install the Helper Script into the Custom Plug-ins folder for each user.
- There are two versions of this script — one for the Mac and one for Windows.
- On Windows this folder can be found here: C:\Documents and Settings\”User”\Application Data\Cognito\MoneyWorks Gold\Datacentre\MoneyWorks Custom Plug-Ins\Scripts, where “User” is the name of the user.
- On the Mac this folder can be found here: Hard drive name : Users : Username : Library : Application Support : Cognito : Moneyworks Gold : Datacentre : Moneyworks Custom Plug-ins.
Alternatively, this folder can be found by going into Moneyworks, selecting Index to Reports, from the Reports menu, selecting Custom Reports from the pop up menu and then clicking on the folder to the left of the pop up menu. This takes you to the Reports folder. The scripts folder sits alongside the Reports folder. On Windows, you then need to register the script by right clicking on the Helper script and selecting Register.
Helper Script - Reminder
This helper script is for installation on up to three admin computers. It will send out a reminder message to staff who have not authorised invoices generated from their Purchase Orders (see the section on Creditor Invoice Authorisation for further details.)
For this to work correctly a Product record needs to be created with the following information:
- code = ~reminder
- comment = message to go to user. The invoice number and details will automatically be generated by the script in next line of message.
- custom1 = number of days old before a reminder is sent
- custom2 = number of days to look back (eg 90). Without this, will look back forever, and will be too slow once creditor invoice table grows large
- custom3 = minimum number of days between reminders (to stop three reminders a day if Moneyworks is started 3 times)
Installing the Helper - Reminder Script
To install the Helper Script:
- Edit the script and enter the Login initials of the three admin staff who are authorised to send the reminder messages. Save the changes.
- Install the Helper Script into the Custom Plug-ins folder for each admin user.
On Windows this folder can be found here: C:\Documents and Settings\”User”\Application Data\Cognito\MoneyWorks Gold\Datacentre\MoneyWorks Custom Plug-Ins\Scripts, where “User” is the name of the user.
Alternatively, this folder can be found by going into Moneyworks, selecting Index to Reports, from the Reports menu, selecting Custom Reports from the pop up menu and then clicking on the folder to the left of the pop up menu. This takes you to the Reports folder. The scripts folder sits alongside the Reports folder. You then need to register the script by right clicking on the Helper script and selecting Register.
Processing Purchase Orders
This section describes the general procedures for processing a Purchase Order.
- The creditor invoice will arrive from the Supplier
- An admin staff member will find the creditor invoice in Moneyworks
- The admin staff member will highlight the Purchase Order and run the option ‘Authorise_PO v3’ from the Command menu.
- This should only be done if the two authorisation columns are showing the Purchase is authorised. It is needed to be done because if a staff member doesn’t have the Helper script running properly on their logon and they make a change to a Purchase Order, then it won’t clear the authorisation. Rerunning the authorisation at this point, will clear it if it has been changed.
- If the Purchase Order is no longer authorised, then the admin staff member should contact the Finance Manger.
- If the Purchase Order is authorised and matches the creditor invoice, then it should be processed by clicking on the ‘Grinder’ button.
- A Purchase Order will not always match the creditor invoice exactly as the amounts may vary slightly. It is a Finance Department decision as to how much variance should be allowed.
- Finally, email the invoice to the originator of the Purchase Order so they can authorise payment of the invoice. (See the section below for details of how to do this.)
Back Orders
A Purchase Order will remain authorised if the items are put on back order provided that the price or quantity does not change.
However, it is likely that the price will change when a Purchase Order is partially processed so the Purchase Order will no longer be authorised. However, the two authorisation columns will still show as authorised until someone reruns the authorisation process or reprints the Purchase Order.
This could cause confusion as to whether a partially processed Purchase Order has been approved or not.
It is recommended that procedures are put in place to manage back orders. One suggestion would be that once a Purchase Order has been partially processed, the admin user runs the Authorisation script twice against the Purchase Order. The first time, this will clear the Authorisation, the second time it will authorise it with the admin users initials. They could then also add a note in the Description field or User defined field to make it clear that this PO was authorised but is now on back order.
Thus, by looking at the initials of the authorisor it should be clear that the PO has been reauthorised because it is on back order.
Email Script
This script allows admin staff to email the details of a Creditor Invoice to the originator of the Purchase Order. This is so that they can authorise the credtior invoice for payment. This script should only be installed for Finance department staff and is a Windows only script.
Installing the Email Script
The first step is to install a program called ‘Blat’ which is necessary for actually sending the email.
- Download the Blat program from: http://sourceforge.net/projects/blat/files/ [
Is there a version for Macs
]
- The current version as of August 2012 is blat262.
- Decompress the downloaded file and install it on your C: drive.
- Find the executable program, blat.exe, and copy it to the top level of your c drive.
- From the Start Menu, select ‘All Programs’ | Accessories | Command Prompt.
- Run Blat to install the settings to the registry as follows:
- c:\ blat.exe -install 192.168.1.223 fred@somewhere.com 3 - - username password, where:
- 192.168.1.223 is IP address of mail server
- fred@somewhere.com is “from” email address to use
- username and password are for smtp authenticated server (which yours should be)
To test that it has been installed correctly, run the following from the Command line prompt:
- blat.exe -t fred@testmail.com -body “this is the body”, where
- fred@testmail.com is an email address you want to send a test message to. (Note - fred@testmail.com is fictitious
)
To install the script:
- Copy the script called ‘Email.vbs’ to the Scripts folder within the Moneyworks Custom Plug-ins folder for each user that will be using it.
- The location of the Plug-ins folder is as follows: C:\Documents and Settings\”User”\Application Data\Cognito\MoneyWorks Gold\Datacentre\MoneyWorks Custom Plug-Ins\Scripts, where “User” is the name of the user.
To set up it up for use within Moneyworks:
- Create a Name record for each Moneyworks user, using their Initials as the Name Code.
- Put their email address in the Contact email addresses on the name record.
- You can put the email address in either or both contact email addresses but it is suggested that one email address would be the staff member who originated the PO and the other could be the Head of Department.
To use the script:
- Highlight the Creditor Invoice
- Select Email from the Command menu.
- The script will find the PO by order number and look for the initial of the user who entered it and then email it to the user.
Creditor Invoice Authorisation Script
This script allows staff (originators of Purchase Orders) to authorise payment of a creditor invoice sent in by a supplier. There are two versions — a Windows version and a Mac version. To install the script:
- For Windows users, copy the script, called ‘Authorise Invoice’ to the Scripts folder within the Moneyworks Custom Plug-ins folder of an admin user and then upload it to the Datacentre Server.It will then be downloaded onto each users computer.
- For Mac users, install the script into the Scripts folder on each user’s computer.
- The location of this folder can be found here:
- Hard drive name : Users : Username : Library : Application Support : Cognito : Moneyworks Gold : Datacentre : Moneyworks Custom Plug-ins, where Username is the name of the user.
Authorising Creditor Invoices
- Select ‘Authorise Invoice’ from the Command menu
- Enter the Invoice number into the Input box.
- The Input box won’t come up as the front window. You will see it on the status bar and you will have to click on it.
- A user can only authorise Invoices for Purchase Orders they’ve entered.
- To view the Authorisation (for admin users)
- Once the Invoice is authorised it will add the user’s intials and date to a user data record. This can be viewed by an admin staff member by adding a column with the following calculation: Lookup(SequenceNumber,“User.data”)