ERPNext and Frappe Framework release v13.9, and v13.10.

A highlight of what’s new in ERPNext and Frappe Framework v13.9, and v13.10.

 · 6 min read

cover image

A bunch of Engineers at Frappe worked on a handful of features and enhancements in ERPNext and the Frappe framework. Let us take a look at the same.

ERPNext v13.9 and v13.10

Organizational chart

Rucha enhanced the organization chart in the system. An organizational chart shows the organizational structure by depicting connections between different employees with their designation, image, and name. In large organizations where it's difficult to remember names, people can interact with the org chart and know the hierarchy through faces and other info. The Edit button navigates to the employee master.

Now, the user gets an option to expand all the nodes. Interaction is disabled until the user collapses all. You can also export it to PNG.

org chart

(Organization chart)

Enable discount accounting

Ganga added a checkbox to enable discount accounting in accounts settings.

discount account

(Enable dicount accounting))

If the above-highlighted box is checked, the discount account field in the items table for Sales and Purchase Invoices will be made visible using Property Setter

additional discount account

(Discount Accounting)

This will allow the user to create GL Entries in the following manner (for Sales Invoice):

General Ledger

(General Ledger)

Additionally, the user could enter a Default Discount Account for an Item, which will be fetched automatically while creating the Invoice. The visibility for this field is also dependent on the Enable Discount Accounting checkbox in Accounts Settings.

Enhancements in Tax Withholding Category

Deepesh added some checks in the tax withholding category to make the Tax withholding process more flexible and manageable.

Tax withholding category

(Tax withholding category)

  • Consider Entire Party Ledger Amount Check

    Enabling this check will consider all Purchase Invoices (irrespective of "Apply Tax Withholding" checkbox is checked or not) for calculating TDS amount. Since this provision was introduced on 1st July old invoices in this fiscal year might not have the Apply Tax Withholding check enabled for all invoices.

  • Only Deduct Tax On Excess Amount

    Currently, tax is withheld for the entire party ledger amount. In some cases, tax has to be withheld only for the amount exceeding the cumulative threshold and not on the entire party ledger amount. Enabling this check will deduct tax only on the amount exceeding the cumulative threshold.

  • Round Off Tax Amount

    In many countries, the withheld tax amount has to be rounded off to the nearest integer. Enabling this check will round off the deducted tax amount to the nearest integer.

Add Primary Address and Contact section in Supplier

The users can have multiple primary addresses against a supplier. They can choose one with the highest priority amongst them.

(Primary address and contact details)

(Primary address and contact details)

POS invoice coupon code feature

Subin worked on the Coupon Code feature which allows you to apply a coupon code created through the existing Coupon Code doctype at the POS checkout screen.

Coupon code feature

(Coupon code feature)

The user can create a pricing rule for 'Selling'. If the 'Apply On' field has an item group selected, add a subsequent item group in the table, same for other options too. The discount will be applicable only for those items which come under the applied option, here its Item Group - POS test items, so items with POS test items as their 'Item Group' only will have this applied. It’ll allow you to create a Coupon Code. The final step is to select the created coupon code at the POS screen.

Capacity for Healthcare Service Unit and other enhancements

For the Healthcare service unit, Rucha fixed the “Allow Overlap check”. If the user enables Allow Overlap, it helps you set Service Unit Capacity. If the user books an appointment for a patient, it lets you book concurrent Appointments for overlap enabled service units within the capacity. She added tests to cover overlap.

For the Healthcare service unit tree, she fixed tree views and added Option to create multiple service units.

For patients, the user can now add the contact and address (which is also linked to the customers) and fixed the dashboard.

Increased number of supported currency exchanges

We switched from to API to get real-time exchange rate to accommodate more currency.

South Africa VAT Audit Report

Anuja added two DocTypes - South Africa VAT Settings & South Africa VAT Accounts. While the user wants to fetch accounts, it will help in generating the VAT report. She also added a custom field as “zero-rated item” which will handle the calculation of 0% tax rate.

VAT Audit report

(VAT Audit report)

Training Event Status Update and Validations

On submitting the Training Feedback, the employee status in the Training Event Attendees child table is updated to "Feedback Submitted". On canceling feedback, the status is reverted to "Completed". Rucha added validations for Training Feedback.

Training Feedback cannot be added if:

  • The employee was absent from the training.
  • The employee did not attend the training.

For the Training Event Status: * If the status is marked as Completed, then for all the attendees, the status is set as Completed, provided the employee was Present and the status is not "Feedback Submitted". * If the status is marked as Scheduled, then for all the attendees, the status is marked as Open.

Allow drafting POS Invoices even if no stock is available

In POS, users can now add the items and create a Draft Sales Invoice, even if stocks are not there in the system. Saqib fixed this issue.

Total Amount Due in Accounts Receivable/Payable Summary

Deepesh added a new column in the Accounts Receivable/Payable Report to show the total amount due as per aging based on the due date.

(Accounts report)

(Accounts report)

Added multi-select fields in a promotional scheme to create multiple pricing rules

Users can select multiple options which creates multiple pricing rules. On updating the promotional scheme, the user can create new pricing rules if the new option is added. This will help in updating the pricing rules.

Over transfer allowance for material transfers

Noah fixed the Over Transfer percentage for material transfers which was similar to overbilling/receipt in stock settings.

Employee reminders

Hussain fixed new reminders in HR settings. From now onwards, employees shall get mails for Birthdays, anniversaries, and holidays.



Unreconcile on cancellation of bank transaction

From hereon, canceling a bank transaction will not roll back the reconciliation changes. Saqib fixed the same.

Frappe Framework 13.9 and 13.10

New API frappe.ui.Scanner

The new API for the UI Scanner supports a number of different formats including barcodes and QR codes. Faris fixed the API and it lets you add an option for the data field to be scannable.

PythonExpression and Python option with syntax validation

Ankush fixed the PythonExpression option for Code docfields to validate conditional expressions, this will validate the scripts and will safeguard from various errors from javascript quotes or curly quotes. He also enabled the validations on Assignment rules, Workflow and Server Script.

Deepesh fixed the doctype links in the child table, which will allow the addition of internal links using Customized Form.

Doctype links

(Doctype links)

Improvements in Webhooks

The user can log in to the Webhook request and it will allow the user to PUT and DELETE requests along with POST using webhooks

Frappe Query Builder

If the user wants to write a query. It has multiple parts, making it intimidating to write all at once that too in a string. For a reviewer, it becomes hard to read, which could result in bugs down the line. A query builder offers a pythonic way of doing this, by breaking it down into variables and building the query one piece at a time.

Improve LDAP implementation to be standards compliant

Jon from the community proposed to contribute and implement LDAP correctly so that the two common LDAP Directories, active directory and open LDAP can be utilized. He added a new drop-down to denote the LDAP Directory Implementation and updated the description for LDAP group. She also made changes in the UI by adding the field LDAP Group OU for the base LDAP search for LDAP groups. Leela reviewed the codes.

Allow duration fields in aggregate function fields

Saqib fixed the dashboard chart doctype while allowing duration fields as an aggregate function field.

For a full list of fixes and more details, visit the discussion forums:

No comments yet.

Add a comment
Ctrl+Enter to add comment