Skip to end of metadata
Go to start of metadata

Program Enhancements –

Bill of Materials

Bill of Materials Import

A plugin has been included in the standard plugins that supports importing of Bill of Material maintenance records.  Full details to implement are detailed in the plugin together with a sample import file.



A plugin, "Cashbook Bank CSV Import" is included but disabled which provides a framework for other plugins to add CSV import functionality.  Another plugin, "Bendigo Bank Cashbook CSV Imports" uses this framework to allow importing from the Bendigo bank CSV formats (simple or extended).  When both plugins are enabled, the Cash Book ribbon has a new drop-down tool in the Actions group - "CSV Import" - and the user can select either the "Bendigo Bank Simple" or "Bendigo Bank Extended" options.

Other plugins can extend the options - so other CSV formats can be added.

Samples used for testing the 2 Bendigo Bank imports are attached in the Documents tab of the Bendigo Bank Cashbook CSV Imports plugin . 

    • negative amounts - receipts are ignored when importing into a Cash book payment, and positive amounts - payments - are ignored when importing into a Cash book receipt.
    • Transactions outside the month of the Cash book date are ignored
    • If the cash book contains no transactions, then at the start of import the cash book date is set to the earliest date in the CSV
    • An MD5 hash of the CSV transaction is stored against the batch line - this is used to prevent duplicate transactions being imported - when a line is to be imported, the hash is computed and then a search performed to see if another batch for the same bank exists with the same hash - if so, then the line is skipped from import.


Creditor Maintenance

Custom field support has been implemented in the Creditor > Transactions tab in the credit and debit grids

Custom Field Support

Custom field support has been added to the following forms

    • Creditors - Transactions tab, both debit and credit grids
    • Debtors - Transactions tab, both debit and credit grids
    • Landed Cost - Shipment Bookins


Debtor Maintenance

    • Custom field support has been implemented in the Debtor > Transactions tab for both the debit and credit grids
    • The issue of memory not being released with repeated opening and closing of the Maintenance from has been addressed by improving the cleanup code of base maintenance userinterface class, and explicitly overriding the remove handlers method of this form. NOTE: Any plugins which add event handlers to either the debtor form or business logic and do not remove their handlers will cause the issue to still occur.

Debtor Specific Pricing

A standard plugin has been implemented that extends the Inventory CSV Import to allow debtor specific prices to be imported - sample file example below:

DebtorSpecificPriceRecID, PartNo, DebtorAccountNo, Source, Mode, Amount, UseQuantityBreak, Debtor Quantity Break
, 1170, 1001, sellprice, Percentage, -5.25, true, 5
, 1170, 1001, lastcost, Percentage, 8.50, true, 6
78E5AD93EDC84A1DBF7A, 1171, 1001, rrp, Percentage, -10.00, true, 10
, 1171, 1001, p1, Percentage, -10.00, true, 15
, 1172, 1001, p1, None, 112.25, true, 20

Demonstration Database

The data in the demonstration database has been incremented by one year, with Current Year being 2018 (1 July 2017 to 30 June 2018) and Next Year being 2019 (1 July 2018 to 30 June 2019).  Items that use serial numbers have SN included in the part numbers and some serialised items that appeared in the list when loading inventory in Part Number order have had SN added to the start of the part number e.g. SN1090-M1-SN, SN1090-M2-SN.  All relevant inventory history has been updated.

File Watcher

The File Watcher journal import now includes the ability to import GST codes in the CSV file.  A sample file Journal Set - With BAS Codes.csv is available in the directory C:\Program Files (x86)\Jiwa Financials\Jiwa 7\Documentation and Samples\File Watcher Plugin\CSV

Goods Received Notes

A new Sort Order based on Received Date has been added to the GRN form and is the default sort order when opening the form i.e. the most recent GRN is the form displayed by default when loading this module.  It was previously loaded in GRN number order.


Removed requirement for Australian short date format "dd/MM/yyyy" - any date format can be used.

Installation Process

All projects has been updated to .Net 4.7.1 and .Net 4.7.1 is installed as part of the installation process.

Inventory Maintenance


Total field that is the sum of the components Last Cost has been added to the Component grid.

Selling Prices

Column headings set up in the System Settings > System Configuration > Inventory tab are reflected in the Inventory Prices > Selling Prices tab 


The warehouse columns of the following grids of the SOH tab of inventory maintenance are now colour coded as per the colour defined by the logical warehouse:

    • Transaction Detail
    • Warehouse Summary
    • Default Bin Locations
    • Default Order Locations
    • Product Availability

Transaction History

This grid has been enhanced to report 

    • Work Order Inputs for Work Order Outputs for physical and non-physical items

    • Non-Physical items used in Job Costing

Landed Cost


Custom field support has been added to the Bookin form - gridlines


We have added back the ability to have concurrent licences.  The licensing logic has been modified such that if a user is not explicitly attached to a licence, and there are licences available (not attached to other users) and the count of other users concurrently using the software is less than the licence count issued, then allow the user to consume a licence.

NOTE: This will require the VIEW SERVER STATE permission to have been granted to the SQL User associated with the user. In some environments such a permission will not be able to be granted - and so in those circumstances concurrent user licencing will not be possible.  Run the following query against the master database on the SQL server (the master database will appear under the System Databases folder):

GRANT VIEW SERVER STATE TO JiwaUser (where 'JiwaUser' is the SQL login associated with the Jiwa users).

We now only automatically allocate licences to users when importing if the user was allocated to a previous licence.  Previously any unallocated licences were allocated by username alphabetically.


New events have been added to printing to allow plugins greater control in setting printing properties.See to DEV-6609 for more information about these features.


API Key Authentication

Authentication previously only supported user credential authentication, now API Keys can be used to authenticate also. There are two types of API Keys - Staff API Keys and Debtor API Keys.

Staff API Keys are another way for staff members (Jiwa users) to authenticate.  The Staff Maintenance form is used to generate and associate API Keys to Jiwa Staff Members.

Debtor API Keys are intended to be given to customers.  Debtor API Keys are generated and associated with debtors via the Debtor Maintenance form.  Requests made using Debtor API Keys undergo request and response filtering to ensure the data provided and returned is santised appropriately for customer use.

See Consuming the REST API for more information on API Keys.


  • Added ability to create / edit / delete creditor classifications

Journal Sets

  • Added ability to create / edit / delete journal sets

Landed Cost

    • Added ability to create / edit / delete shipments
    • Added ability to create / edit / delete shipment bookins

Tax Rates

    • Added ability to create / edit / delete tax rates

Warehouse Transfers

      • Added ability to create / edit / delete warehouse transfers out and in


      • Webhook functionality merged from separate plugin to the REST API plugin, webhooks now exist for the following:

        bookin.createdOccurs when a new book in is created
        bookin.updatedOccurs when a book in is modified
        creditor.createdOccurs when a new creditor (supplier) is created
        creditor.deletedOccurs when a creditor (supplier) is deleted
        creditor.updatedOccurs when a creditor (supplier) is modified
        creditorclassification.createdOccurs when a new creditor classification is created
        creditorclassification.deletedOccurs when a creditor classification is deleted
        creditorclassification.updatedOccurs when a creditor classification is modified
        debtor.createdOccurs when a new debtor (customer) is created
        debtor.deletedOccurs when a debtor (customer) is deleted
        debtor.updatedOccurs when a debtor (customer) is modified
        debtorcategory.createdOccurs when a new debtor category is created
        debtorcategory.deletedOccurs when a debtor category is deleted
        debtorcategory.updatedOccurs when a debtor category is modified
        debtorclassification.createdOccurs when a new debtor classification is created
        debtorclassification.deletedOccurs when a debtor classification is deleted
        debtorclassification.updatedOccurs when a debtor classification is modified
        goodsreceivednote.createdOccurs when a new goods received note is created
        goodsreceivednote.updatedOccurs when a goods received note is modified
        inventory.createdOccurs when a new inventory item (product) is created
        inventory.deletedOccurs when an inventory item (product) is deleted
        inventory.updatedOccurs when an inventory item (product) is modified
        inventory.stocklevelOccurs when an inventory item stock level changes
        inventorycategory.createdOccurs when a new inventory category is created
        inventorycategory.deletedOccurs when an inventory category is deleted
        inventorycategory.updatedOccurs when an inventory category is modified
        inventoryclassification.createdOccurs when a new inventory classification is created
        inventoryclassification.deletedOccurs when an inventory classification is deleted
        inventoryclassification.updatedOccurs when an inventory classification is modified
        purchaseorder.createdOccurs when a new purchase order is created
        purchaseorder.deletedOccurs when a purchase order is deleted
        purchaseorder.updatedOccurs when a purchase order is modified
        salesorder.createdOccurs when a new sales order is created
        salesorder.updatedOccurs when a sales order is modified
        salesquote.createdOccurs when a new sales quote is created
        salesquote.updatedOccurs when a sales quote is modified
        shipment.createdOccurs when a new shipment is created
        shipment.updatedOccurs when a shipment is modified
        warehousetransferin.createdOccurs when a new warehouse transfer in is created
        warehousetransferin.updatedOccurs when a warehouse transfer in is modified
        warehousetransferout.createdOccurs when a new warehouse transfer out is created
        warehousetransferout.updatedOccurs when a warehouse transfer out is modified

Sales Orders

MNT30003 - Picking Sheet

A new report MNT30003 - Picking Sheet has been added to the standard suite of reports.  It's purpose is to facilitate the selection of items from warehouse storage for delivery. The report displays the bin location (and serial number if applicable) for each item on the sales order.

The report also displays:

    • Unit of Measure names and quantities
    • Courier notes about the order;
    • The expected delivery date, so that picking can be prioritised for earlier deliveries over later deliveries;
    • The total number of units to be delivered so that the user can check they have gathered all items.

MNT30004 - Packing Slip

A new report MNT30004 - Packing Slip has been added to the standard suite of reports.  The report is similar to the Picking Sheet but does not display the bin location for each item on the sales order. It does display the serial number if applicable.

The report also displays:

    • Unit of Measure names and quantities
    • Courier notes about the order;
    • The expected delivery date, so that packing can be prioritised for earlier deliveries over later deliveries;
    • The total number of units to be delivered so that the user can check they have packed all items.

MNT30005 - Order Confirmation

A new report MNT30005 - Order Confirmation has been added to the standard suite of reports.  This report is sent to the customer to confirm their order quantities and order price.  The price is calculated on order quantity, not delivered quantity, therefore back-orders are irrelevant.  This report is similar to the standard invoice, however quantity supplied and quantity on back order is not included.  Serial numbers are also not included as this report is intended to be used before picking, packing and delivery.

We have added the payment remark (SO_Payment.PaymentRef) to sales order global search - sales order Payments tab, field Remark. 

To apply to databases prior to 7.02.00, review details on this link - How can I search for remarks entered in the Payments tab of sales orders?


Serial Number Tracking

This form has been enhanced and now includes the following sources:

    • Sales Orders
    • Credit Notes
    • Stock Transfers
    • Stock Takes
    • Warehouse Transfers
    • Goods Receipt Notes
    • Shipment Bookins
    • Supplier Returns Shipping
    • Work Order Inputs
    • Work Order Outputs
    • Job Cost Entry
    • Job Cost Finished Goods

SQL Logins

It is recommended that each customer use their own SQL credentials for use by the Jiwa application.  To encourage this, we have imposed a requirement that whenever a new database is created or a demo database is created, the user must now provide the SQL credentials which will be used by the Jiwa application - our assumption is now that we do not know the SQL credentials (previously we defaulted to assuming a user "JiwaUser" and "JiwaReports" would be used).

We also no longer create the SQL logins or users "JiwaUser" and "JiwaReports". Whatever SQL Credentials is provided is the SQL Logins and SQL Users we now create (if they don't already exist).

Upgrading a database the user has the option of providing new SQL credentials to be set for all staff members - and we will create these SQL Logins and SQL Users (if they don't already exist). This should make it trivial upon upgrade for customers to choose their own secret SQL credentials - and this is strongly recommended.

If the SQL Logins do not exist, then they are created with the credentials provided. If the SQL Users for the login in the database do not exist, then they are created.

When granting permissions, we now look for the distinct list of SQL Users for all staff and grant permissions to those users - so having a number of different SQL credentials for staff members will not be a problem.

Grant_All_User_Tables is now retired, replaced with usp_Jiwa_Grant_Application_Permissions and usp_Jiwa_Grant_Reporting_Permissions.

These changes will make it less challenging to host multiple customer databases on the same SQL Server without compromising security.

Now, two new stored procedures are invoked after database upgrade:

    • usp_Jiwa_Grant_Application_Permissions
    • usp_Jiwa_Grant_Reporting_Permissions

Both accept a parameter @SQLLogin - which is the SQL Login to grant permissions to.

E.g. usp_Jiwa_Grant_Application_Permissions 'JiwaUser'

A distinct list of SQL Logins and Reporting SQL Logins are extracted from the HR_Staff table and the two new stored procedures are invoked.  This ensures no matter what SQL Logins are setup they will have the appropriate permission after upgrade.

Staff Maintenance

The ability to copy staff maintenance records, including all current settings has been implemented.  Saving of the new record is disallowed where the username is not unique

List of Program Enhancements

Getting issues...

Key Summary Component/s T Status

Complete List of Changes

Getting issues...

Key Summary Component/s T Status