Tryton Release 3.8

We are proud to announce the 3.8 release of Tryton.

For the first time the release contains sao, the new web client of Tryton.
It is the result of the Indiegogo campaign. It is developed using mainly jQuery and Bootstrap and its design is responsive. It requires a recent HTML5 compatible browser.
Its usage doesn’t require any modification on the server side, every modules are working out of the box with sao just like they do with the GTK client.
A demo is available at http://demo.tryton.org using demo/demo as login/password.
This brings to 3 the number of supported client for Tryton.

A lot of work has been done to improve the accessibility of the GTK and web clients. For the GTK client, we followed the GNOME Accessibility Developers Guide as much as possible and for the web client, we followed the Web Accessibility Initiative of the W3C.
You can follow further progress on this topic on the issue3459.

And of course, this release contains many bug fixes and performance improvements.

As usual, migration from previous series is fully supported.

The following screenshots are based on sao but the same feature exists also on the GTK client.

Here is a comparison of the render of sao versus tryton:

Major changes for the user

  • The client is now able to generate meaningful error messages for all kind of validation. Those error messages use the same syntax as the search filter.

  • For a better accessibility the custom background color on widget is replaced by ‘bold’ label for required fields and ‘italic’ label for editable fields. In the same spirit, the color of rows has been removed and can be replaced by icons.

  • A new option for fast tabbing has been added to the client. If activated, it skips read-only fields when navigating with the tab key. This was the previous default behaviour which needed to be optional to allow users with disabilities to navigate on read-only field for reading.

  • The export feature now works only on selected records but it can export a tree structure.

Accounting

  • A new report showing the cash journal amounts over a period is added. This is useful to check closing cashier.

  • The French accounting generates the FEC (Fichier des Écritures Comptables).

  • The wizard that generates payments allows to set a date instead of the default which is today.

  • The default revenue and expense accounts can be configured from accounting configuration.

  • The date of statements can be corrected after they are posted.

Party

  • The language of the party depends on the company now.

  • An extensible list of identifiers replace the field VAT.

Party identifiers

Project

The computation of the project tree has been hugely improved by grouping the computation and use of better queries.

  • There is now a progress field on the projects and tasks and of course a total which is the sum of the children.

  • A new method to generate invoice from project has been added which is based on the progress field.

  • It is now possible to link purchase lines to a project which will be added to the cost field.

  • The time sheet works have now a total duration field which compute the duration of the work and its children.

Sale

  • The delivery date on sale line shows the effective date once the goods are delivered.

  • It is now possible to deliver the sale to another party from the one on the invoice. This is the other side of the drop shipment which makes Tryton fully support drop shipments.

Sale shipment party

  • The drop shipment now uses two distinct moves using an temporary drop location.

Purchase

  • The delivery date on purchase line shows the effective date once the goods are received.

  • Stock moves can be cancelled from the purchase view without having to create a supplier shipment.

Stock

  • It is possible to ask Tryton to recompute the average cost price of a product by replaying all the moves since the beginning.

  • It is possible to configure another picking location different from the storage location for the warehouses.

  • It is possible to set an internal provisioning per location which is used for internal order point by default for all products.

Landed Cost

Those new modules allow to record landed cost on supplier shipments after their reception. A new document is created to link supplier invoice lines with shipments and to define which method to use for cost allocation. For now, there are two methods available: By Value and By Weight.
And thanks to the Update Cost Price wizard, the cost price of the products can recomputed taking into account the landed cost.

Customs

A new module allows to define the Tarif Code from the Harmonized System and its duty rate on the products. The duty rate is stored for a country over a period and two computation types are available: a fixed amount or an amount per quantity.

Sale Complaint

This new module is for managing customer complaint about sales or invoices. Actions can be defined to solve the complaints like returning the sale or crediting the invoice. A work flow for approval of the complaint actions is set up using the access rights.

Sale Promotion

It is now possible to apply formula based promotions on sales selected thanks to some criteria. The promotion changes the unit price of the line when the sale goes into quotation (and is restored if it goes back to draft) but only if the promotion is in favor of the customer. The available criteria are: the price list, a period, the quantity and the products.

Sale Stock Quantity

This new module checks at the quotation of the sale if there are enough quantity of products in the warehouse. It also checks that the new sale will not hurt older sale that will be shipped later.

Major changes for the developer

  • The progress bar widget works with float between 0 and 1 to ease usage as percentage.

  • The rich text widget uses now a subset of HTML to allow its implementation in sao.

  • The Many2One has a new option target_search which define the kind of query to use for dereferenced search. The options are subquery and the new join (which is the default). The join method generate a faster query in most cases.

  • The SQL constraints use a similar syntax to python-sql. This gives more flexibility to implement backend for other databases.

  • Trying to create/write/delete on a Model based on a table_query raises an exception instead of a silent error.

  • The table name of a ModelSQL can be overridden with a configuration file. This allows to work around database limitations on the length of table names.

  • The new StateReport has been added to wizards, to simplify the code of wizards that run a report.

  • The style on reports has been removed, experience show that this feature was not used.

  • The PostgreSQL backend manages now schema. This allows different instances of Tryton sharing the same database.

  • The generic foreign key to create/write user on all ModelSQL has been replaced by a rule that prevent to delete users. This greatly improves scalability in some circumstances.

  • The Property field supports now float and integer values.

  • A subdirectory locale/override is supported for modules that override translations of other modules.

Accounting

  • The charts of account are no longer translatable. Instead we provide translated charts via a template using XSLT.

  • The invoice doesn’t set a unit price on the line. For this feature the purchase or sale module must be used.

  • Some fields of the invoice like the note and the origin are editable after posting the invoice.

Product

  • Conversion between units no longer results in silent failures but an explicit error is risen.

  • The volume property has been added to the products.

Project

  • The tree structure of the project and the time sheet have been separated, each object has its own one.

  • The price list uses the same decimal precision as the product.

  • The cost price of the employee is stored on the time sheet line for the date of the line. This allows to sum the costs of time sheet faster

Purchase

  • The state of the purchase request is now searchable.

  • The purchase requests are generated even if the rounded quantity is zero to allow the user to still decide to purchase more.

Stock

  • Many unnecessary restrictions on the edition of move fields have been removed.

  • The expected quantity of the inventory lines is always computed even if they are added manually.

  • It is possible to create staging and draft moves using view locations. Those locations will have to be changed to really do the move.

  • The inventory uses the grouping feature to create the moves. This allows to easily support the lot (or any other extra field).