Program Enhancements – 7.02.00.00
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.
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
- 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
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.
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.
All projects has been updated to .Net 4.7.1 and .Net 4.7.1 is installed as part of the installation process.
A Total field that is the sum of the components Last Cost has been added to the Component grid.
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
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
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
- Added ability to create / edit / delete journal sets
- Added ability to create / edit / delete shipments
- Added ability to create / edit / delete shipment bookins
- Added ability to create / edit / delete tax rates
- 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:
Event Description bookin.created Occurs when a new book in is created bookin.updated Occurs when a book in is modified creditor.created Occurs when a new creditor (supplier) is created creditor.deleted Occurs when a creditor (supplier) is deleted creditor.updated Occurs when a creditor (supplier) is modified creditorclassification.created Occurs when a new creditor classification is created creditorclassification.deleted Occurs when a creditor classification is deleted creditorclassification.updated Occurs when a creditor classification is modified debtor.created Occurs when a new debtor (customer) is created debtor.deleted Occurs when a debtor (customer) is deleted debtor.updated Occurs when a debtor (customer) is modified debtorcategory.created Occurs when a new debtor category is created debtorcategory.deleted Occurs when a debtor category is deleted debtorcategory.updated Occurs when a debtor category is modified debtorclassification.created Occurs when a new debtor classification is created debtorclassification.deleted Occurs when a debtor classification is deleted debtorclassification.updated Occurs when a debtor classification is modified goodsreceivednote.created Occurs when a new goods received note is created goodsreceivednote.updated Occurs when a goods received note is modified inventory.created Occurs when a new inventory item (product) is created inventory.deleted Occurs when an inventory item (product) is deleted inventory.updated Occurs when an inventory item (product) is modified inventory.stocklevel Occurs when an inventory item stock level changes inventorycategory.created Occurs when a new inventory category is created inventorycategory.deleted Occurs when an inventory category is deleted inventorycategory.updated Occurs when an inventory category is modified inventoryclassification.created Occurs when a new inventory classification is created inventoryclassification.deleted Occurs when an inventory classification is deleted inventoryclassification.updated Occurs when an inventory classification is modified purchaseorder.created Occurs when a new purchase order is created purchaseorder.deleted Occurs when a purchase order is deleted purchaseorder.updated Occurs when a purchase order is modified salesorder.created Occurs when a new sales order is created salesorder.updated Occurs when a sales order is modified salesquote.created Occurs when a new sales quote is created salesquote.updated Occurs when a sales quote is modified shipment.created Occurs when a new shipment is created shipment.updated Occurs when a shipment is modified warehousetransferin.created Occurs when a new warehouse transfer in is created warehousetransferin.updated Occurs when a warehouse transfer in is modified warehousetransferout.created Occurs when a new warehouse transfer out is created warehousetransferout.updated Occurs when a warehouse transfer out is modified
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
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:
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.
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
Complete List of Changes