# Tryton Release 6.4

**URL:** <https://discuss.tryton.org/t/tryton-release-6-4/5180>\
**Category:** News\
**Created:** [May 3, 2022, 6:00am UTC](https://discuss.tryton.org/t/tryton-release-6-4/5180 "2022-05-03T06:00:42Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![ced](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/ced/32/1237_2.png) [@ced](https://discuss.tryton.org/u/ced)\
**Post date:** [May 3, 2022, 6:00am UTC](https://discuss.tryton.org/t/tryton-release-6-4/5180/1 "2022-05-03T06:00:42Z")

</div>

![Top View Photo of People Discussing](https://discuss-cdn.tryton.org/uploads/default/original/2X/2/2dc1a16e7e431d0fe4bd4f48e306d7bed97e86fd.jpeg)

We are proud to announce the 6.4 release of [Tryton](https://www.tryton.org/).  
This release provides many bug fixes, performance improvements and some fine tuning. What is also significant is the addition of 9 new modules.  
You can give it a [try on the demo server](https://www.tryton.org/download#demo), [use the docker image](https://www.tryton.org/download#docker) or [download it here](https://www.tryton.org/download).  
As usual migration from previous series is fully supported. One optional manual operations could be needed, see [https://discuss.tryton.org/t/migration-from-6-2-to-6-4/5241](https://discuss.tryton.org/t/migration-from-6-2-to-6-4/5241).

Here is a list of the most noticeable changes:

## Changes for the User

It is now possible for modules to display a notification message from the server while the user is filling in a form. This is already used by the `sale_stock_quantity` module to display a message when user selects a product which has a forecast quantity that is not enough for the order.

 ![Web client with quantity notification](https://discuss-cdn.tryton.org/uploads/default/original/2X/c/c476c1476a99ff516e1699f1ad51d6b0476c5f66.png)

Users can now choose which optional columns are displayed on list and tree views. All modules have been reviewed to make non-essential columns optional and thus provide a lean interface by default.

 ![Web client with optional menu](https://discuss-cdn.tryton.org/uploads/default/original/2X/b/bb2ef829d16a05424cd47d8821072485c8a6b66c.png)

Some views can now be used to edit but not create new records. This can be used, for example, to setup an editable list that allows the data to be modified, but creating a new record will always use the form view.

The CSV import now skips empty rows inside `One2Many` fields. It is now possible to import many `One2Many` fields in the same file but with different lengths.

The CSV import error messages have been improved to include the model, field and column. This makes it much easier to find and solve problems with the CSV data.

> **More**
>
> - Display the number of selected records
> - Humanize the count result
> - Order not sorted Selection by index definition
> - Use expire delay instead of UTC datetime in reset password email

### Web Client

Reference fields can now be opened from the list and tree views like `Many2One` fields. They are rendered as a link which opens a new tab using the form of the target model.

### Desktop Client

CSV exports encoded in UTF-8 now include, by default, the [Byte Order Mark](https://en.wikipedia.org/wiki/Byte_order_mark) to increase compatibility with other systems.

The multi-selection widget now uses the same default selection behavior as other lists. This solves inconsistency in the behavior.

### Accounting

The reconciliation wizard now has an option to automatically reconcile the default suggestions. This speeds up the process for accounting with a lot of entries when the system is well configured.

Similar to the debit type, we now have also an optional credit type on accounts. Of course an accountant can only have one optional debit or credit type.

The general ledger now displays, by default, debit/credit columns only when there are actually lines in the account for the period. And it also display the number of lines.

We now use the invoice date (instead of the accounting date) to enforce the sequence order for customer invoices. This is more flexible and is still consistent with most country’s rules.

When interactively validating a supplier invoice with the same reference as an existing one, Tryton raises a warning as the user may be entering the same invoice twice.

Lines in a payable or receivable account can now only be added to a payment if they have a maturity date. This avoids creating payments for purely accounting lines.

The receivable payments can now be processed without needing to be approved first, just submitted. This simplifies the workflow for receiving payments like checks where there is no need for a second approval.  
It is also now possible to edit the amount of a payment that is in a processing state. This is because sometimes a different amount is read from a check compared to the amount read by the bank.

We no longer create dunnings for lines with a pending payment.

It is no longer possible to select reconciled payments or groups when entering a statement. This simplifies the selection task for the user, and for the rare case where they still need to select a reconciled payment, they can still unreconcile them before selection.

The clearing line of a payment is now automatically reconciled with all the statement lines linked to it.

The user can now choose the allocation method to apply to the shipment cost.

> **More**
>
> - Prevent creating fiscal year before closed one
> - Prevent changing the type of journal with posted moves
> - Mute reconciled payable/receivable lines
> - Add delegated amount on move lines
> - Handle errors in move template expression
> - Rename split lines into reschedule lines
> - Prevent delete tax identifier used on invoice
> - Add shipments reference on invoice and invoice line
> - Add approving employee on refunds
> - Store sepa message id and sepa payment info id
> - Add Stripe setup intent expire delay
> - Create default statement journal
> - Remove 61 tax code - no longer used in AEAT303
> - Include 120, 122, 123 and 124 new keys in model 303 format

### Banking

Tryton can now fill in or create the related bank from an [IBAN](https://en.wikipedia.org/wiki/International_Bank_Account_Number).

When searching for a bank name, Tryton also searches on the [BIC](https://en.wikipedia.org/wiki/ISO_9362).

### Party

The country name on a printed address is always shown in English in order to follow the international standard.

The [SIREN](https://en.wikipedia.org/wiki/SIREN_code) and [SIRET](https://en.wikipedia.org/wiki/SIRET_code) codes are now managed as identifiers on the party.

A party identifier can now be linked to one of the addresses of the party. The SIRET number uses this new feature.

The “autonomous city” is now allowed as subdivision for Spain.

All the lines of the street are now used as part of the record name of an address.

### Product

It is now forbidden to decrease the number of digits of a unit of measure. This prevents invalidating existing quantities linked to the unit.

We now warn users who try to deactivate a product that still has stock.

### Production

The stock move form now also shows, where applicable, the production it is linked to.

### Purchase

It is now possible to define a default currency for each supplier.

### Sale

It is now possible to define a default currency for each customer.

The origin name of an invoice line for advance payment is now filled in with the advance payment condition name.  
The advance payments are now recalled with a negative quantity instead of a negative price.

The opportunities reports now use real date fields to display the month instead of two fields - year and month. This improve the search possibilities.

Sales made by [POS](https://en.wikipedia.org/wiki/Point_of_sale) are now included in the general sales reports.

When registering cash change given using the POS, we use a negative debit or credit in the accounts. This prevents artificially increasing the totals.

A notification is now displayed directly to the user when entering in a sale of goods whose forecast quantity is not high enough to cover the sale.

### Stock

Tryton now also recalculates the cost price on the moves of drop shipments.

The assignation process now uses the lot number as criteria if it is populated.

Upward and downward traces have been added to stock lots to improve lot traceability.

It is now possible to select the UPS notification service.

The forecasts are now applied to all the stock supplies instead of only the purchase requests.

> **More**
>
> - Add location or warehouse in shipment tree view
> - Add warehouses selection to supply stock wizard
> - Allow package type to be deactivated
> - Add volume dimensions to package
> - Use configured unit for measurements
> - Add packages weight
> - Filter out moves without quantity from package
> - Prevent early planning of production missing moves
> - Compute early date for partial quantity of stock move
> - Update early date base on internal incoming requests

### Web Shop

Tryton now supports editing orders from Shopify.

## New Modules

### Account Spanish SII

The [_Account Spanish SII Module_](https://docs.tryton.org/projects/modules-account-es-sii/en/6.4/) allows sending invoices to the [SII](https://www.agenciatributaria.es/AEAT.internet/Ayuda_P_G417_IVA_Llevanza_libros_registro_SII.shtml) portal. This is legal requirement for some Spanish Companies.

### Account Invoice Watermark

The [_Account Invoice Watermark Module_](https://docs.tryton.org/projects/modules-account-invoice-watermark/en/6.4/) adds a draft or paid watermark to the printed invoice.

### Account Receivable Rule

The [_Account Receivable Rule Module_](https://docs.tryton.org/projects/modules-account-receivable-rule/en/6.4/) defines rules to reconcile receivables between accounts.

### Account Stock Shipment Cost Weight

The [_Account Stock Shipment Cost Weight Module_](https://docs.tryton.org/projects/modules-account-stock-shipment-cost-weight/en/6.4/) adds “By Weight” as an allocation method for shipment costs.

### Account Tax Non-Deductible

The [_Account Tax Non-Deductible Module_](https://docs.tryton.org/projects/modules-account-tax-non-deductible/en/6.4/) allows the definition of non-deductible taxes and adds reports for them.

### Purchase Product Quantity

The [_Purchase Product Quantity Module_](https://docs.tryton.org/projects/modules-purchase-product-quantity/en/6.4/) permits enforcing minimum and rounded quantities to be purchased per supplier from purchase requests.

### Sale Invoice Date

The [_Sale Invoice Date Module_](https://docs.tryton.org/projects/modules-sale-invoice-date/en/6.4/) fills in the invoice date for invoices created by sales.

### Sale Product Quantity

The [_Sale Product Quantity Module_](https://docs.tryton.org/projects/modules-sale-product-quantity/en/6.4/) permits enforcing minimum and rounded quantities to be sold per product.

### Stock Shipment Cost Weight"

The [_Stock Shipment Cost Weight Module_](https://docs.tryton.org/projects/modules-stock-shipment-cost-weight/en/latest/) adds “By Weight” as an allocation method for shipment costs on the carrier.

## Changes for the System Administrator

The CORS configuration is now also applied to the root path.

Tryton now automatically retries sending emails if there is a temporary failure status.

We removed the password validation based on entropy. It was not a good measurement for robustness of password.

The login methods receive the [options `ip_address` and `device_cookie`](https://docs.tryton.org/projects/server/en/latest/topics/configuration.html#authentications).

### Country

The script to load postal codes now uses the Tryton CDN for more reliability.

We now support pycountry 22.1.10.

## Changes for the Developer

We now use the [unittest discover](https://docs.python.org/3/library/unittest.html#unittest-test-discovery) method as a replacement for the deprecated `test` command from setuptools.

The documentation now contains a tutorial on how to [create a Tryton module](https://docs.tryton.org/projects/server/en/6.4/tutorial/module/index.html#tutorial-module).

The models now have an [`on_change_notify`](https://docs.tryton.org/projects/server/en/6.4/ref/models.html#trytond.model.Model.on_change_notify) method which is used to display messages on the client while user is filling in a record.

The `ModelStorage` has now a [`validate_fields`](https://docs.tryton.org/projects/server/en/6.4/ref/models.html#trytond.model.ModelStorage.validate_fields) method which permits validation to occur only when specific fields have been modified. This is useful if the validation is expensive. All the modules have been reviewed to take advantage of this new feature.

The `depends` on the `Field` are now python sets. It is also no longer necessary to define depends for the states, domain and digits expression. Tryton calculates them automatically. However, it is still needed for the context if you want to be sure that it will always be set.

We include in the view only the depends fields that are needed for that type of view (editable or not).

We prevent creating or deleting singletons. The corresponding actions are disabled in the clients.

The `Reference` fields use a dictionary for `domain` and `search_order`. The keys are the name of the target model.

It is possible to define a field on a tree view as optional. The user will then have the choice of whether to display it or not.

The `creatable` attribute on tree and form views allows defining whether the view can be used to create new records or not. If not the client will switch to another view from which records can be created.

The local cache of instances created by `Function` fields are now populated with the values that have already been read. This speed up the calculation of these fields.

The value of `Function` fields are now cached during the transaction if it is readonly.

We use the `JSONB` column type to store `Dict` fields on PostgreSQL backend.

> **More**
>
> - Test all XML view and SVG icon files are used
> - Add support for Python 3.10
> - Remove support for Python 3.6
> - Drop support for PyPy and psycopg2cffi
> - Remove support for pysqlite2
> - Add limit to search\_count
> - Limit board action domain to active id and ids
> - Call view\_get for board view
> - Apply view inheritance to board
> - Apply view inheritance to all matching elements
> - Set view\_id in the context when calling view\_attributes
> - Make warning check re-entrant
> - Deduplicate entries in domain inversion’s simplify
> - Allow button access to be deactivated
> - Always return tuple for MultiSelection
> - Use default selectors instead of select
> - Add batch option to push queue tasks
> - Support ref value for reference field
> - Enforce ref model in XML data
> - Support limit and offset to ModelSQL count search and search\_count
> - Add RPC view\_get method to View
> - Manage DatabaseDataError in ModelSQL
> - Use RENAME and DROP COLUMN with SQLite backend
> - Support window functions with SQLite backend
> - Use datetime for user role planning

### Web Client

We now use ECMAScript version 6.

### Desktop Client

We added an option to define the logging output location.

### Accounting

A date must always be set in order to calculate taxes.

We enforce the same type for the children of an account with a type set.

A unique `Reference` field is now used to on the statement line instead of multiple `Many2One` fields.

> **More**
>
> - Add amount\_line\_paid property on payments
> - Rename generate\_message button to sepa\_generate\_message
> - Store allocation of landed cost and shipment cost factors

### Banking

We enforce the uniqueness of the IBAN and permit only one per bank account.

> **More**
>
> - Remove starting wildcard when searching account number

### Country

The script to load subdivisions no longer fails for unknown subdivision types.

### Web Shop

A route has been added to support the Shopify webhook for orders. This allows quicker order synchronization.

We removed the API backoff time and now support request retries using the Shopify `Retry-After` header.

We modify only the metafields managed by Tryton.

---

<div class="post-metadata">

**Author:** ![ced](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/ced/32/1237_2.png) [@ced](https://discuss.tryton.org/u/ced)\
**Post date:** [May 3, 2022, 12:50pm UTC](https://discuss.tryton.org/t/tryton-release-6-4/5180/2 "2022-05-03T12:50:40Z")

</div>



---

<div class="post-metadata">

**Author:** ![ced](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/ced/32/1237_2.png) [@ced](https://discuss.tryton.org/u/ced)\
**Post date:** [May 3, 2022, 8:44pm UTC](https://discuss.tryton.org/t/tryton-release-6-4/5180/3 "2022-05-03T20:44:08Z")

</div>

A post was split to a new topic: [Example of Reference field domain](https://discuss.tryton.org/t/example-of-reference-field-domain/5234)

---

<div class="post-metadata">

**Author:** ![bagginstyrone](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/bagginstyrone/32/1408_2.png) [@bagginstyrone](https://discuss.tryton.org/u/bagginstyrone)\
**Post date:** [May 14, 2022, 10:20am UTC](https://discuss.tryton.org/t/tryton-release-6-4/5180/4 "2022-05-14T10:20:37Z")

</div>

I am excited to see the great improvements in the Tryton 6.4. I was quite impressed with what I saw in this release, especially because it has been out for a while now and many of us are using it on a daily basis. My love for Tryton has significantly increased.

---

<div class="post-metadata">

**Author:** ![system](https://discuss-cdn.tryton.org/uploads/default/original/1X/c6f8ec0a40525cdcd50058c734283450a4b3d38b.png) [@system](https://discuss.tryton.org/u/system)\
**Post date:** [June 2, 2022, 6:01am UTC](https://discuss.tryton.org/t/tryton-release-6-4/5180/5 "2022-06-02T06:01:20Z")

</div>

This topic was automatically closed after 30 days. New replies are no longer allowed.
