Skip to end of metadata
Go to start of metadata

Cash Book Receipts & Payments

Search Window

The search windows for Cash Receipts and Cash Book Payments include the field Description for each batch:

3 new filters have also been added to both forms so batches can be searched and the databases scrolled based on the status of the batches:

  • No Filter
  • Activated
  • Not Activated

Informative Message

When there are issues activating a Cash Book Receipts batch, activating the batch now displays the line and issue so the user can correct the problem. The issues are generally caused when full payment is received on a sales order that has back orders or the user selects an invoice twice to record payment using Add Debtor Transactions in the receipt form.


Crystal Reports Print Engine

The Crystal Print engine has been updated to v. (SP15)



CRM Dashboard

A new CRM dashboard has been implemented and appears in the menu by default under the System -> Dashboards folder. What displays is determined by the user logged in i.e. Admin sees the data for all users, specific user only sees information relevant to their customers. The screen display includes sections for:

  • Quotes and Sales – drill down is available from each box to displays all records in that category – e.g. quotes expiring in 7 days, unprocessed sales order, sales orders ready to ship. Information in these screens can be copied and pasted into Excel or drill down is available to each source document
  • Opportunities Funnel – chart display of quotes in the users pipeline
  • My Customers – grid display of customer name and dollar values for open quotes, YTD and monthly budgets and YTD and monthly sales
  • Sales history – Last 12 months – graph on sales for the last 12 months with drill down on each month. If the user has filtered the debtors, then the list is also filtered by those debtors.
  • My To-Dos – list of current and outstanding To-Do’s

Generic Dashboard

Drill down has been added the Generic Dashboard on the Sales chart. When the user clicks on a bar of the chart for a given month, a new navigation list form will be displayed showing the sales orders making up that chart data.



Cash Only Customers

A tick-box has been added to the Credit tab to mark a debtor as "Cash Only". A ticked "Cash Only" tick-box disables other fields such as terms, terms type (invoice/statement) and Credit Limit.

A setting has been added to Invoicing – AllowSalesOrderSaveForCashOnlyDebtors and is ticked by default. When Unticked, a sales order for a cash only debtor will not save until payments have been entered covering the full amount of the sales order including back orders.

Debtor Adjustments

The System setting in Debtors - SuggestRemitNo applies to the adjustment form for Debtors consistent with being applied to debtor invoices.


The "Don't age transactions" tick box moved from Credit tab to Financials→General



Filtering Grids

Right clicking on a grid's column header now has the option to check on a "Show Filter Row" option.

When checked, a filter row will appear at the top of the grid, allowing the user to select filters for which rows to display. The state of this option (show or don't show filter row - not the actual filters applied) is stored per grid per user.

Sort Order in a Grid

A sort can be applied to a grid e.g. Debtors > Transactions sorted on Date descending and will be retained for while searching and reloading of other customers using that form. Loading a new Debtors Maintenance form and the sort will need to be re-applied



Business Logic

Events have been added for before and after business logic object creation. This will assist in developing some plugins. It will allow the interception of business logic creation, regardless of where they are created. Two new events are in the BusinessLogicFactory of the JiwaApplication.Manager class - BeforeBusinessLogicSetup and AfterBusinessLogicSetup.

An example of intercepting when a business logic object is created is posted in this forum thread

Jiwa Collection Class

We have added by default, asynchronous saves of collections. Collections are things like sales order lines, journal lines, et cetera.

Previously the software would iterate through each item on save, issue the SQL to insert, update or delete and await the response from the SQL server before proceeding to the item.

This new default now threads each save of the items off, so they can be performed concurrently. In systems where latency is a key factor it should see some performance benefit.

This behaviour can be overridden by plugins. The JiwaCollection class now has a new property "MultiThreadSave" which is true by default. Plugins can set his to false if needed and the behaviour will be as before this change.

SQL Connectivity

A new icon has been added to the status bar showing SQL Server connectivity, balloon prompt when disconnected and option to reconnect.

When the connection to the SQL server is lost, a balloon tooltip will appear informing that the connection has been lost. Clicking on the icon will give a "reconnect" context menu option - selecting that will attempt to re-connect to the SQL Server.


Goods Receipt Notes (GRN's)

Reversal of a GRN

A "Reverse" tool has been added to the Ribbon/Toolbar in the GRN form. Only Activated GRN's can be reversed. Where the GRN was based on a purchase order, the field "Prev Del" is updated to reflect the reversal of the GRN. A journal is created reflecting the reversal. Once a GRN is reversed, it cannot be reversed again. The status of the original GRN is updated to show it’s been reversed. The Create Purchase Invoice button is also disabled.

The "Reverse" process creates a new GRN which cannot be edited - cannot add lines, remove lines or adjust quantities. The objective is to completely undo the GRN.

To receive in the stock again:

  • Use the ‘Copy’ tool to the ribbon from the original GRN. Only GRN's that are not reversals can be copied. This will facilitate the workflow for a reversing and re-doing a GRN including a GRN based on a purchase order.

When activating a reversal GRN, if any of the stock has been taken then an error will be thrown - all the stock needs to be still available. Delete the GRN if this error is reported and correct the receipt of stock by another way e.g. stock transfers, Supplier Return Credit.



Import Inventory

We have added custom field support for importing inventory items from CSV. In the mappings drop-down selection, inventory custom fields are now displayed and able to be selected.

We have also restructured the business logic such that plugins can override existing logic for setting a field from a mapping, or add new mappings, or remove existing mappings.

In addition, we have added the ability for mappings in the Import Inventory screen to be saved as well as the ability to update inventory records only by ticking the relevant tick box.



Payments has been re-written. This was done to enable creation of a POS plugin. There is no longer a hard-coded payment type "Type", only a flag to denote whether a payment type is of type credit card or not.



Allow Notes in Purchase Orders to Always Be Editable

The Notes grid on purchase orders is locked when the status of the purchase order is set to "Closed" or "Sent". This plugin makes the Notes grid always editable, regardless of the purchase order status. By default this plugin is disabled and will need to be enabled for this behaviour to be active.

Export EFT Batch to ABA File

A new field called "User Identification Number" has been added to the bank details form that is loaded from EFT / Cheque Payments > Utilities > Other > Set Bank Details. We have modified the standard ABA plugin to use the value in "User Identification Number" instead of the hard-coded value.

As per the ABA specifications, the UserIdentificationNumber field is limited to 6 chars

IFS Smartfreight

A new plugin - "IFS Smartfreight" has been added that integrates with the IFS Smartfreight web service to submit freight information and obtain a consignment note number and cost.

This plugin uses the Freight tab of the sales order entry form. Freight details are entered there (No. boxes, weight, size, etc). When the "Send to Freight System" button is clicked the IFS Smartfreight service is contacted and the freight details sent. The resultant consignment note number is attached to the sales order and the freight items, and the freight charge and GST is stored on the consignment note.

The plugin introduces a new tab to the System Configuration form: "IFS Smartfreight". This tab contains 3 settings - the address of the smartfreight webservice, the id and password.

The service address should be set to "" if using smartfreight express, otherwise set to the URI of the on-premise smartfreight service).

If using smartfreight express, IFS should be contacted to obtain an id and password - see for more details.

Inventory Console

There is a new plugin "Inventory Console" that is disabled by default. This is a conversion of the legacy version 6 "pluglet" of the same name It adds a tab to inventory maintenance "Inventory Console" and adds a customer lookup, customer price, lead time and stock summary.

Journals Created From Sales Orders - Group by Sign and Account

Processing a sales order will produce a journal set where the lines have been grouped together by sign and general ledger account. This grouping can simplify reconciliation, and can improve transaction grid performance, because less individual transactions are created. By default, this plugin is disabled.

Magento Integration

Magento is a web store / ecommerce solution. The Magento Integration plugin provides a link to the Magento store by pulling and pushing changes to and from the Magento store.

The plugin is designed to allow additional plugins to alter the behaviour if things like the default mappings, etc. want to be changed.

The following actions are possible:

Import to Jiwa

  • Products
  • Product Categories
  • Customers
  • Customer Pricing Groups
  • Sales Orders
  • Ship Notices
  • Credit Memos

Export to Magento

  • Inventory Items
  • Stock Levels
  • Ship Notices
  • Inventory Categories

The plugin introduces a configuration form to control which of the above actions are to be used.

For more information, see the wiki entry here

There is also a plugin of a sample of how to introduce a new integration action for use by the Magento Integration plugin - Magento Integration Action Sample


A simple POS form that allows item to be quickly added to a sales order for either an account sale or a cash sale has been implemented as a plugin. Payments are accepted, change due indicated, and the sales order then saved and processed.

See the wiki entry here for more information.

Sales Order - Print Invoice On Save

When enabled, this plugin will print the first invoice report for a sales order when a new sales order is created and saved. By default, this plugin is disabled.

Sales Orders - Round Cash Sales to Nearest 5c

Disabled by default and, when enabled, rounds sales orders with a payment type of Cash to the nearest 5 cents. This is achieved by adding a non-inventory item to the order.

Service Job Labour - Set BillingTime To Elapsed Time

We have added a new plugin (disabled by default) to set service job labour billing time to be the elapsed time.

When adding a labour line, or editing the Start or End elapsed time, the billing time is set in accordance with the "BillingTimeRounding" system setting for labour.

Support for C#

We have added support for plugins to be written using C#. Previously plugins were written using VB.NET only. Now when creating a plugin the author has the option of using either C# or VB.NET. Once a plugin is created in a language, it cannot be changed.


Process Back Orders

Where a debtor is ‘On Hold’ these orders are now excluded from this process. It would previously warn at the end of the process ‘"Cannot save an invoice or active order when the debtor is on hold".


Purchase Invoices

Change FX Rate

The ability to change the FX rate in purchase invoices for creditors using foreign currency has been implemented in this release.


Purchase Orders

Order Units

The OrderUnits property of Purchase Order Lines have now been enabled in the business logic. It was writable in Version 6 and now version 6 breakouts that overrode the OrderUnits property are able to be converted to version 7.

Part No. Search Window

The pin-board has been added to inventory search to allow selection of multiple inventory items.

Supress Message Boxes

We have added two new events from the UI - "AboutToAskItemAlreadyOnOrder" and "AboutToAskItemNotOrderedFromSupplier". 


Public Event AboutToAskItemAlreadyOnOrder(ByVal PartNo As String, ByRef Cancel As Boolean)
Public Event AboutToAskItemNotOrderedFromSupplier(ByVal PartNo As String, ByRef Cancel As Boolean)

When the Cancel parameter is set to true, the existing messagebox is not shown.


Sales Orders

Process Sales Orders

"Order by Debtor Name" now allows range selection by debtor name instead of debtor account no.

Sorting of the grid is now enabled, and the invoices are processed in the order they appear in the grid as sorted.

Process Sales Orders - Payments Only

We added an optional parameter for an anonymous method to be passed to sales order payment processing.

This is useful for those using the sales order API to process the payments on the sales order and wanting to alter the behaviour in respect to the cash book transaction created.

In the JiwaSales.SalesOrder.SalesOrder class, the method

Public Sub ProcessPayments()

Was changed to:

Public Sub ProcessPayments(Optional x As Func(Of JiwaCashBook.CashBookTransaction, JiwaCashBook.CashBookTransaction) = Nothing)


Example of use:

The following passes an anonymous method, which sets a custom field on the cash book transaction created to be a web store order id.

salesOrder.ProcessPayments((cashbooktransaction) => { cashbooktransaction.CustomFieldValues.get_ItemFromSettingName("magento_increment_id").Contents = salesOrderEntity.increment_id; return cashbooktransaction; });


We also added new events when processing payments on a sales order - PaymentProcessingStart, PaymentProcessingEnding and PaymentProcessingEnd.

These can be used by plugins to do things like make changes to the cash book receipt line created (customise the reference, set custom field values, etc).

' Occurs when Payment processing for a payment begins.
Public Event PaymentProcessingStart(SalesOrder As SalesOrder, ByVal Payment As Payment)

' Occurs when Payment processing for a payment is ending.
Public Event PaymentProcessingEnding(SalesOrder As SalesOrder, ByVal Payment As Payment, ByVal CashBookTransaction As JiwaCashBook.CashBookTransaction)

' Occurs when Payment processing for a payment ends.
Public Event PaymentProcessingEnd(SalesOrder As SalesOrder, ByVal Payment As Payment, ByVal CashBookTransaction As JiwaCashBook.CashBookTransaction)

Service Manager

Labour Lines

The date and time fields have been split into two fields for Start Time and End time for ease of data entry.

Labour Lines - Activities & Budgets

The ability to attach Activities to Labour Lines in Service Manager has been implemented. Activity descriptions are setup in the Activities form under Service Manager > Configuration and are selected from a search window in the Labour lines grid.

A new tab for Budgets against these labour activities for each task has been added to this module.


We have added a timesheet entry form for service jobs. This form allows one timesheet per staff member per day. Some intelligence has been put in to make adding items as streamlined as possible.

When adding an item to a timesheet, the start time is automatically set to the current time, provided the timesheet date is for today. The end time will remain blank until the next time is added - then the end time of the line is set to the current line.

When activated, the labour items are added to the related service manager job tasks. Multiple timesheet forms can be entered for the one day for the same user if needed.


System Configuration

When you use the search from the ribbon, and select a result from the search window, the correct tab is selected, and the cell is bounded with a selection rectangle, and the font is changed to bold and green.


Complete List of Changes

Getting issues...

Key Summary T Created Updated Due Assignee Reporter P Status Resolution