Posted
over 3 years
ago
by
ced
Gray Concrete Road Between Green Trees Under White Clouds and Blue Sky1280×853 156 KB
We are proud to announce the 6.0 Long Term Support release of Tryton .
This release provides many bug fixes and some significant improvements.
... [More]
Among other changes you will find the display of attached documents, reinforced security and many accounting improvements. There are also no more than 11 new modules that include support for things such as Incoterms, Avatars and Product kits. Tryton has now also been translated into Romanian which brings the number of languages to 24.
You can give it a try on the demo server, use the docker image or download it here.
As usual migration from previous series is fully supported. Some manual operations may be required, see Migration from 5.8 to 6.0.
Here is a list of the most noticeable changes:
Changes for the User
The clients can now display documents inside a form. The supported document formats are dependent on the client. For the web client it is the one supported by the browser (usually images and pdfs). And for the desktop client it is also images and the formats supported by Evince.
Attachment with document displayed in web client1918×985 72.3 KB
Attachment with document displayed in desktop client1111×647 33.2 KB
Thanks to the document widget, it is possible to display, next to any form, a preview of the attachments. This can be used, for example, when entering a supplier invoice from the attached PDF.
Supplier invoice form with attachment preview in web client1918×985 95.9 KB
Supplier invoice form with attachment preview in desktop client1436×860 78.1 KB
When sending an email from the client, in addition to being able to attach any report, it is now possible to also attach any of the record’s attachments.
More
The dialog opened under a revision show in their title the revision.
When exporting into CSV file a tree, the first column is indented according to its level in the tree.
When opening many dialog, the title is now composed of a breadcrumb trail of all the dialog opened before. This avoid to loose the user in his navigation.
The name of the tabs opened from the menu is now the name of the menu entry.
Web Client
The CSV export and import dialog can now be reordered using drag and drop.
The web client can now also propose completion for the search input of the xxx2Many and Dict widgets.
The email and URL widgets now use the appropriate input type. So that mobile devices can display the best virtual keyboard.
More
Each selection entry can display its own help text.
Desktop Client
When printing reports that are single (like the invoice), the server sends a zip file containing one document for each record. The client now recognizes these files and can send each file from the zip to the printer.
When running the client on UNIX platforms, it is now possible to use the direct print feature. The client will uses the lp or lpr commands and for OpenDocuments it uses soffice. (It continues to use the print command on Windows).
Some reports can take a long time to generate so the client runs them with an asynchronous request. This allows the user to still perform other operations while the report is being generated.
An interactive search has been added to the list and tree views. It pops up when you start to type on the list and puts the focus on the first line which matches the results. You can jump to the next matching entry with +↓ and previous with +↑.
Desktop client quick searching on sale lines1176×396 39.6 KB
Accounting
The Income Statement and Balance Sheet can now be printed. Only the records that are open in the client are printed.
The general journal is now printed from a list of moves. This adds, as a nice side effect, the ability to print a single move if needed.
The General Ledger (accounts and lines) can now be filtered by journal. And from the lines it is also possible to perform a reconciliation.
The terms on the Aged Balance can now be expressed in weeks and years in addition to the existing days and months.
The Spanish accounting module now provides a report for the VAT book.
Companies can not always deduct the full amount of the taxes on supplier invoices. We now allow the accountant to set the deductible rate of each invoice line. You can set a default value for the rate on the product category.
Some companies can never deduct taxes, thus they can be configured to always use a 0% deductible rate.
It is now possible to make the link between invoice lines and stock moves after they have been posted and done. In these cases the unit price is also updated on the stock move, and if needed the cost price will be recalculated.
More
Account type from balance statement can be marked as debt. So they can be used directly to book invoices.
It is now possible to open directly from a party his general ledger accounts.
The balance of the general ledger lines start with the start value of the account.
The reconciliation sequence can now be set in the accounting configuration.
Once a move has been numbered, it is no more allowed to change its journal. This is because the numbering is based on the journal.
It is now possible to define an other date than the invoice date to use to compute the payment term for an invoice.
If you try to post a customer invoice with a maturity date in the past, Tryton will raise a warning.
We added a summary field on the invoice line list that display the first line of the description.
It is now possible to define a default customer payment term for all parties that have no term defined.
When the supplier sent an invoice to correct a price, it is now possible to mark it as correction. In this case the quantity will not be counted to compute the cost price on the related stock moves.
The payments record now the employees who approved, noted as succeeded or failure them.
The customer record of Braintree and Stripe are now kept up to date.
We warn the user when he posts a statement linked to a cancelled or already paid invoice.
The origin of the move line are now filled with the statement line.
The analytic lines are now filled for the closing move of an asset.
Commission
The date of the commission now uses the invoice date if the method is “on posting” and the payment date if the method is “on payment”. This is more coherent than using the date when the commission was generated.
Company
The users can now choose if they want to see only records for their current company or for all their companies.
It is now optional to define a number of hours in a working day, week, month and year.
Currency
You can configure a scheduled task to fetch currency rates at a specific frequency. By default it gets the rates from the European Central Bank.
Marketing
The marketing emails can now use the same formatting methods as the report.
Party
An specific contact mechanism can be used as email recipient. This is useful for example to send the sale order notifications to the email of the contact who placed the order instead to the generic one of the customer.
For that we added also an optional language to the contact mechanism to be used instead of the language of the linked party.
More
We added the new identifiers available from python-stdnum.
Product
When you deactivate a product, its variants are also automatically deactivated.
From the category view, it is now possible to add or remove products. This is useful when you have a lot of products that needs to be categorized.
It is now possible to use the list price of the product form in the formula of the price list. This is useful for businesses that have regulated prices (e.g. books in France).
Production
You can define a scheduled task that will try to automatically assign any productions that are planned for today. The productions that can not be fully assigned are listed in a new “Partially Assigned” tab.
More
The productions are now ordered by date.
Project
When invoicing a project based on the time-sheets, it is now possible to define for each work a date that limits the time-sheets invoiced. This date can be set, for example, once the customer has accepted the work done up to that date.
Purchase
When creating a return of a purchase, the original purchase is linked to the return.
You can now define a default lead time for each supplier. This is used when the product does not have a specific lead time set for that supplier.
The payment term and invoice method are now set by default based on the last purchases made from the supplier.
The amendment mechanism now supports changing lines without a product.
It is now easier to manually change the shipment cost of a purchase. A check box has been added to allow the price to be manually altered and to prevent any automatic re-calculation.
More
We added a summary field on the purchase and requisition line lists that display the first line of the description.
We added a relate to open purchase from a request and vice-versa.
The product supplier can now be deactivated.
Sale
You can now configure a global lead time. This is used for products that have no specific lead time.
The amendment mechanism now supports changing lines without a product.
The complaint action to credit the customer now make an invoice correction. This improves the product margin statistics.
The amount of the complaint action is now calculated automatically. This makes it easier to decide whether to validate the complaint, or not.
It is now possible to create promotions that are based on the total amount of the sale. The shipment cost can be excluded from these promotions.
We now only add the unsold shipment cost to the outgoing moves following the shipment cost method. The cost of the shipment for the company is calculated using the purchase price of the carrier. And the shipment cost for the sale can be free (price of zero).
It is now easier to manually change the shipment cost of a sale. A check box has been added to allow the cost to be altered and to prevent any automatic recalculation.
More
We added a summary field on the sale line lists that display the first line of the description.
The complaint type and product customer can now be deactivated.
It is now possible to set the sale line of a shipment cost to 0.
The carrier is now displayed on the shipment list. This is useful when you must prepare the shipment of a specific carrier in priority.
By default the shipment cost is now excluded from the promotion amount.
The effective date of drop shipment can now be defined.
It is now possible to open the drop shipments of a party from its form.
Stock
You can now define a scheduled task that tries to automatically assign all the shipments that are planned for today. The shipments that could not be fully assigned are listed in a “Partially Assigned” tab.
The graph that shows a product’s quantities over time of for each warehouse, can now display this for multiple products on the same graph. This is useful when comparing different products or if you want to analyze the scheduling of a shipment composed of multiple products.
We added a report that calculates the margin of goods by product or category.
As a counterpart to manually assigning a shipment, it is now possible to also manually unassign a shipment. The wizard asks, for each assigned move, the quantity to unassign and then restores an original move for this quantity.
When you use stock lots as a serial number, it can be time consuming to split the moves and add a lot for each unit. So we added a wizard to make this task easier. The wizard can also automatically generate the lot number using a sequence defined on the product.
You can now define the package used for a supplier shipment returns.
More
We added a relate from an assigned shipment that opens the quantities by warehouse for the products on the shipment.
The shipments are now ordered by default by date.
The contact mechanism can be defined for delivery usage.
When the storage and output zone are the same, the outgoing moves of customer shipments are now still editable in waiting and packed state.
The move list of the product quantities by warehouse display now the document from where they originate.
A sequence to automatically number lot can be configured on each product.
We now include the additional weight of the package to the total weight of a parcel.
The packages have now a field that contains the tracking URL.
The dimension of a package can be modified from the default value set for its type. This is useful to store for example the height of a pallet.
It is now possible to configure the product and format to use for a DPD carrier.
Timesheet
We added a tab on the time-sheet works to list the “Open” and “Closed” work.
More
The active field has been removed from the time-sheet work as it was redundant with the start and end dates.
New Modules
Account Invoice Defer
The Account Invoice Defer Module allows an invoice line’s expenses or revenues to be deferred over many periods.
Carrier Subdivision
The Carrier Subdivision Module extends the carrier selection pattern with the subdivision and the postal code.
These can be used to restrict the usage of a carrier to a specific subdivision or specific postal code.
Incoterm
This Incoterm Model is used to manage the Incoterms on sales, purchases and shipments. The module contains the Incoterms versions 2010 and 2020.
Party Avatar
The Party Avatar Module adds an avatar to each party.
List of parties with avatar in web client900×686 41.4 KB
List of parties with avatar in desktop client1172×747 69.1 KB
Product Cost Warehouse
The Product Cost Warehouse Module allows the cost price of products to be calculated separately for each warehouse.
Product Kit
The Product Kit Module adds kits and components to products. This enables a defined set of products to be sold or purchased using a single line.
Purchase Price List
The Purchase Price List Module allows price lists to be defined for suppliers.
Sale Gift Card
The Sale Gift Card Module manages the selling and redeeming of gift cards.
Stock Quantity Early Planning
The Stock Quantity Early Planning Module helps reduce stock levels by suggesting where stock can be consumed earlier.
Stock Quantity Issue
The Stock Quantity Issue Module helps to solve stock quantity issues.
Stock Shipment Cost
The Stock Shipment Cost Module adds a shipment cost on the outgoing moves. This cost is added to the product margin reports.
Changes for the System Administrator
The Tryton server now includes protection of trusted devices against brute force attack mitigation. This means that these devices (which have been authenticated once) are not delayed by anonymous brute force attack.
A new curses command trytond-stat has been added which displays some statistics about the running trytond. For now it displays the running requests. This is useful to detect those that are taking too much time. It also displays how performant the caches are by showing the number of hits, misses and the ratio.
The user groups can now inherit access permissions from another group. This is used by the “Administrator” version of a group to extend the rights of the normal group.
More
It is now possible to define the email’s FROM per language.
The trytond-admin command has a new option --validate that can be used to validate all the records or a random percentage. This is useful to verify that a migration was correct.
Currency
We added a new parameter rate_decimal which defines the number of decimal places that are used to store currency exchange rates. This is useful when using currencies that needs more than 6 decimals places for conversion.
Party
We received some feedback about users getting lost when selecting from the large list of identifiers available in Tryton when they were only interested in local identifiers. So we added a configuration option to define which types of identifiers are available for use.
Stock
The shipping labels can now be stored in the filestore instead of the database thanks to a configuration parameter. This helps reduce the size of the database.
Changes for the Developer
Tryton supports now Python 3.9.
We unified the string format of PYSON between all the implementations.
It is now possible to use a URL as source for icon. The target image is then cached by the client. This is used to implement the avatar feature.
The data passed to ir.action now also contains the context model used and the paths (as a tree) of the selected records.
The actions can now define that they run on the selected records (default and historical behavior) or the listed records. The last one is used, for example, to print a tree structure as the user has it open.
We use now immutable data-structures for Dict and MultiSelection fields. This enforces good practice because the framework cannot detect modifications on those mutable values.
Thanks to the new context item _skip_warnings, non-interactive operations (like scheduled tasks, queue jobs etc.) are no longer blocked by warnings which have no user to ignore them.
The record rules are now only applied if _check_access is set in the context. This improves the multi-company support.
We added a new Mixin to add support for avatars on any ModelStorage. This exposes the avatar on a public but anonymized URL. This URL accepts a parameter to resize the image on request and automatically store the result in a cache. It can also generate a pseudo-random avatar using, by default, the record name.
The ORM now supports full text and similarity searches if the database back-end support it. This is used automatically for searches using ilike and a clause %…%. The similarity threshold is set by default to 0.3.
A new type of field has also been added - FullText. This stores, in the database, a list of strings representing the document as a vector so that indexes can be defined to improve searching and ordering on it.
We added the __access__ attribute to Model which contains a set of relation fields to which the access rights are delegated. This is used, for example, when a document is designed with multiple models like sale orders which are made up from Sale and SaleLine. Here the SaleLine delegates its access rights to the Sale.
More
The method to get the next sequence value is now an instance method.
The sequence type is now stored as a Many2One on the sequence.
A new route wrapper has been added to accept null as origin of a request. This is needed for add-ons application like Chronos.
The method ModelView.parse_view is now officially public.
Each value of a selection of multiselection can now have its own help text.
The trigonometric functions have been added to the SQLite back-end.
When a process change the list of activated modules, the others must refresh their pool.
A new method on Cache allows to clear all the cache instances.
The HTML editor supports now the Genshi element directives.
A new tool has been added firstline which return the first non empty line of a text.
When browsing ModelStorage instances, no access rights are enforced.
When multiple Function fields have the same getter we eagerly compute them.
The decorator button_change accepts now to depends on other methods like the other decorators.
It is now supported to use the standard Python copy method to copy Model instances.
When the server generates a default form view for a ModelView, it includes now automatically all the buttons.
All white spaces except space are forbidden on Char fields.
The Report can now group the rendering of a list of records by header keys. This is useful when OpenDocument templates the header and footer which are global for the whole document.
The URI to configure the database connection supports now parameters.
The table handler can not test the SQL type of a column. This is useful to decide to make a migration or not.
The timedelta converter supports now to have empty value for some keys.
Web Client
We removed the dependency to tempusdominus. Instead we use the HTML standard date and date-time inputs.
Accounting
The Move.query_get filter is now also based on the journal key in the context.
The method call_deposit now accepts an optional maximum amount to recall.
A new method has been added to Invoice to post invoices by batch. On large installations posting invoices can become a bottleneck due to the strict sequence constraint. With this batch method it is possible to speed up the process by reducing the time spent locking the invoice sequence.
More
We removed the foreign key constraint for the sequence link on Invoice. It creates new lock contention for no benefit.
The zip code in Stripe checkout has been removed because it was not used.
It is now possible to define the preferred locales to the Stripe Customer.
We do not create anymore account moves for the stock with a single empty line.
Company
We removed the tree structure from Company and replaced it with a flat list of companies that user has access to.
We added a generic test which ensures the definition of record rules for company related models.
We also added another generic test that checks if fields targeting company multivalue models have a company context defined.
It is highly advised to use this test mixin if your custom module depends on company.
We now use the report header feature on the CompanyReport instead of relying on the contextual company value. This now means that records on which these reports are based, must have a company field.
Country
We renamed the “Zip” model into “Postal Code” which is more generic.
Party
We renamed the “Zip” field into “Postal Code” which is more generic.
We implemented a simple distance field on the party module which is fully extended in the party_relationship module. This allows for other modules to implement distance behavior without having to depend on party_relationship.
Sale
We added the TaxableMixin to the sale line. This is used to base promotions on an amount without or without taxes.
Stock
We added a dedicated model for the “Products by Locations” and “Lots by Location” reports which makes it easier to customize compared to using the product or lot model.
More
We renamed the quantity_added to quantity in the inventory counting wizard.
1 post - 1 participant
Read full topic
[Less]
|
Posted
over 3 years
ago
by
ced
Gray Concrete Road Between Green Trees Under White Clouds and Blue Sky1280×853 156 KB
We are proud to announce the 6.0 Long Term Support release of Tryton .
This release provides many bug fixes and some significant improvements.
... [More]
Among other changes you will find the display of attached documents, reinforced security and many accounting improvements. There are also no more than 11 new modules that include support for things such as Incoterms, Avatars and Product kits. Tryton has now also been translated into Romanian which brings the number of languages to 24.
You can give it a try on the demo server, use the docker image or download it here.
As usual migration from previous series is fully supported. Some manual operations may be required, see Migration from 5.8 to 6.0.
Here is a list of the most noticeable changes:
Changes for the User
The clients can now display documents inside a form. The supported document formats are dependent on the client. For the web client it is the one supported by the browser (usually images and pdfs). And for the desktop client it is also images and the formats supported by Evince.
Attachment with document displayed in web client1918×985 72.3 KB
Attachment with document displayed in desktop client1111×647 33.2 KB
Thanks to the document widget, it is possible to display, next to any form, a preview of the attachments. This can be used, for example, when entering a supplier invoice from the attached PDF.
Supplier invoice form with attachment preview in web client1918×985 95.9 KB
Supplier invoice form with attachment preview in desktop client1436×860 78.1 KB
When sending an email from the client, in addition to being able to attach any report, it is now possible to also attach any of the record’s attachments.
More
The dialog opened under a revision show in their title the revision.
When exporting into CSV file a tree, the first column is indented according to its level in the tree.
When opening many dialog, the title is now composed of a breadcrumb trail of all the dialog opened before. This avoid to loose the user in his navigation.
The name of the tabs opened from the menu is now the name of the menu entry.
Web Client
The CSV export and import dialog can now be reordered using drag and drop.
The web client can now also propose completion for the search input of the xxx2Many and Dict widgets.
The email and URL widgets now use the appropriate input type. So that mobile devices can display the best virtual keyboard.
More
Each selection entry can display its own help text.
Desktop Client
When printing reports that are single (like the invoice), the server sends a zip file containing one document for each record. The client now recognizes these files and can send each file from the zip to the printer.
When running the client on UNIX platforms, it is now possible to use the direct print feature. The client will uses the lp or lpr commands and for OpenDocuments it uses soffice. (It continues to use the print command on Windows).
Some reports can take a long time to generate so the client runs them with an asynchronous request. This allows the user to still perform other operations while the report is being generated.
An interactive search has been added to the list and tree views. It pops up when you start to type on the list and puts the focus on the first line which matches the results. You can jump to the next matching entry with +↓ and previous with +↑.
Desktop client quick searching on sale lines1176×396 39.6 KB
Accounting
The Income Statement and Balance Sheet can now be printed. Only the records that are open in the client are printed.
The general journal is now printed from a list of moves. This adds, as a nice side effect, the ability to print a single move if needed.
The General Ledger (accounts and lines) can now be filtered by journal. And from the lines it is also possible to perform a reconciliation.
The terms on the Aged Balance can now be expressed in weeks and years in addition to the existing days and months.
The Spanish accounting module now provides a report for the VAT book.
Companies can not always deduct the full amount of the taxes on supplier invoices. We now allow the accountant to set the deductible rate of each invoice line. You can set a default value for the rate on the product category.
Some companies can never deduct taxes, thus they can be configured to always use a 0% deductible rate.
It is now possible to make the link between invoice lines and stock moves after they have been posted and done. In these cases the unit price is also updated on the stock move, and if needed the cost price will be recalculated.
More
Account type from balance statement can be marked as debt. So they can be used directly to book invoices.
It is now possible to open directly from a party his general ledger accounts.
The balance of the general ledger lines start with the start value of the account.
The reconciliation sequence can now be set in the accounting configuration.
Once a move has been numbered, it is no more allowed to change its journal. This is because the numbering is based on the journal.
It is now possible to define an other date than the invoice date to use to compute the payment term for an invoice.
If you try to post a customer invoice with a maturity date in the past, Tryton will raise a warning.
We added a summary field on the invoice line list that display the first line of the description.
It is now possible to define a default customer payment term for all parties that have no term defined.
When the supplier sent an invoice to correct a price, it is now possible to mark it as correction. In this case the quantity will not be counted to compute the cost price on the related stock moves.
The payments record now the employees who approved, noted as succeeded or failure them.
The customer record of Braintree and Stripe are now kept up to date.
We warn the user when he posts a statement linked to a cancelled or already paid invoice.
The origin of the move line are now filled with the statement line.
The analytic lines are now filled for the closing move of an asset.
Commission
The date of the commission now uses the invoice date if the method is “on posting” and the payment date if the method is “on payment”. This is more coherent than using the date when the commission was generated.
Company
The users can now choose if they want to see only records for their current company or for all their companies.
It is now optional to define a number of hours in a working day, week, month and year.
Currency
You can configure a scheduled task to fetch currency rates at a specific frequency. By default it gets the rates from the European Central Bank.
Marketing
The marketing emails can now use the same formatting methods as the report.
Party
An specific contact mechanism can be used as email recipient. This is useful for example to send the sale order notifications to the email of the contact who placed the order instead to the generic one of the customer.
For that we added also an optional language to the contact mechanism to be used instead of the language of the linked party.
More
We added the new identifiers available from python-stdnum.
Product
When you deactivate a product, its variants are also automatically deactivated.
From the category view, it is now possible to add or remove products. This is useful when you have a lot of products that needs to be categorized.
It is now possible to use the list price of the product form in the formula of the price list. This is useful for businesses that have regulated prices (e.g. books in France).
Production
You can define a scheduled task that will try to automatically assign any productions that are planned for today. The productions that can not be fully assigned are listed in a new “Partially Assigned” tab.
More
The productions are now ordered by date.
Project
When invoicing a project based on the time-sheets, it is now possible to define for each work a date that limits the time-sheets invoiced. This date can be set, for example, once the customer has accepted the work done up to that date.
Purchase
When creating a return of a purchase, the original purchase is linked to the return.
You can now define a default lead time for each supplier. This is used when the product does not have a specific lead time set for that supplier.
The payment term and invoice method are now set by default based on the last purchases made from the supplier.
The amendment mechanism now supports changing lines without a product.
It is now easier to manually change the shipment cost of a purchase. A check box has been added to allow the price to be manually altered and to prevent any automatic re-calculation.
More
We added a summary field on the purchase and requisition line lists that display the first line of the description.
We added a relate to open purchase from a request and vice-versa.
The product supplier can now be deactivated.
Sale
You can now configure a global lead time. This is used for products that have no specific lead time.
The amendment mechanism now supports changing lines without a product.
The complaint action to credit the customer now make an invoice correction. This improves the product margin statistics.
The amount of the complaint action is now calculated automatically. This makes it easier to decide whether to validate the complaint, or not.
It is now possible to create promotions that are based on the total amount of the sale. The shipment cost can be excluded from these promotions.
We now only add the unsold shipment cost to the outgoing moves following the shipment cost method. The cost of the shipment for the company is calculated using the purchase price of the carrier. And the shipment cost for the sale can be free (price of zero).
It is now easier to manually change the shipment cost of a sale. A check box has been added to allow the cost to be altered and to prevent any automatic recalculation.
More
We added a summary field on the sale line lists that display the first line of the description.
The complaint type and product customer can now be deactivated.
It is now possible to set the sale line of a shipment cost to 0.
The carrier is now displayed on the shipment list. This is useful when you must prepare the shipment of a specific carrier in priority.
By default the shipment cost is now excluded from the promotion amount.
The effective date of drop shipment can now be defined.
It is now possible to open the drop shipments of a party from its form.
Stock
You can now define a scheduled task that tries to automatically assign all the shipments that are planned for today. The shipments that could not be fully assigned are listed in a “Partially Assigned” tab.
The graph that shows a product’s quantities over time of for each warehouse, can now display this for multiple products on the same graph. This is useful when comparing different products or if you want to analyze the scheduling of a shipment composed of multiple products.
We added a report that calculates the margin of goods by product or category.
As a counterpart to manually assigning a shipment, it is now possible to also manually unassign a shipment. The wizard asks, for each assigned move, the quantity to unassign and then restores an original move for this quantity.
When you use stock lots as a serial number, it can be time consuming to split the moves and add a lot for each unit. So we added a wizard to make this task easier. The wizard can also automatically generate the lot number using a sequence defined on the product.
You can now define the package used for a supplier shipment returns.
More
We added a relate from an assigned shipment that opens the quantities by warehouse for the products on the shipment.
The shipments are now ordered by default by date.
The contact mechanism can be defined for delivery usage.
When the storage and output zone are the same, the outgoing moves of customer shipments are now still editable in waiting and packed state.
The move list of the product quantities by warehouse display now the document from where they originate.
A sequence to automatically number lot can be configured on each product.
We now include the additional weight of the package to the total weight of a parcel.
The packages have now a field that contains the tracking URL.
The dimension of a package can be modified from the default value set for its type. This is useful to store for example the height of a pallet.
It is now possible to configure the product and format to use for a DPD carrier.
Timesheet
We added a tab on the time-sheet works to list the “Open” and “Closed” work.
More
The active field has been removed from the time-sheet work as it was redundant with the start and end dates.
New Modules
Account Invoice Defer
The Account Invoice Defer Module allows an invoice line’s expenses or revenues to be deferred over many periods.
Carrier Subdivision
The Carrier Subdivision Module extends the carrier selection pattern with the subdivision and the postal code.
These can be used to restrict the usage of a carrier to a specific subdivision or specific postal code.
Incoterm
This Incoterm Model is used to manage the Incoterms on sales, purchases and shipments. The module contains the Incoterms versions 2010 and 2020.
Party Avatar
The Party Avatar Module adds an avatar to each party.
List of parties with avatar in web client900×686 41.4 KB
List of parties with avatar in desktop client1172×747 69.1 KB
Product Cost Warehouse
The Product Cost Warehouse Module allows the cost price of products to be calculated separately for each warehouse.
Product Kit
The Product Kit Module adds kits and components to products. This enables a defined set of products to be sold or purchased using a single line.
Purchase Price List
The Purchase Price List Module allows price lists to be defined for suppliers.
Sale Gift Card
The Sale Gift Card Module manages the selling and redeeming of gift cards.
Stock Quantity Early Planning
The Stock Quantity Early Planning Module helps reduce stock levels by suggesting where stock can be consumed earlier.
Stock Quantity Issue
The Stock Quantity Issue Module helps to solve stock quantity issues.
Stock Shipment Cost
The Stock Shipment Cost Module adds a shipment cost on the outgoing moves. This cost is added to the product margin reports.
Changes for the System Administrator
The Tryton server now includes protection of trusted devices against brute force attack mitigation. This means that these devices (which have been authenticated once) are not delayed by anonymous brute force attack.
A new curses command trytond-stat has been added which displays some statistics about the running trytond. For now it displays the running requests. This is useful to detect those that are taking too much time. It also displays how performant the caches are by showing the number of hits, misses and the ratio.
The user groups can now inherit access permissions from another group. This is used by the “Administrator” version of a group to extend the rights of the normal group.
More
It is now possible to define the email’s FROM per language.
The trytond-admin command has a new option --validate that can be used to validate all the records or a random percentage. This is useful to verify that a migration was correct.
Currency
We added a new parameter rate_decimal which defines the number of decimal places that are used to store currency exchange rates. This is useful when using currencies that needs more than 6 decimals places for conversion.
Party
We received some feedback about users getting lost when selecting from the large list of identifiers available in Tryton when they were only interested in local identifiers. So we added a configuration option to define which types of identifiers are available for use.
Stock
The shipping labels can now be stored in the filestore instead of the database thanks to a configuration parameter. This helps reduce the size of the database.
Changes for the Developer
Tryton supports now Python 3.9.
We unified the string format of PYSON between all the implementations.
It is now possible to use a URL as source for icon. The target image is then cached by the client. This is used to implement the avatar feature.
The data passed to ir.action now also contains the context model used and the paths (as a tree) of the selected records.
The actions can now define that they run on the selected records (default and historical behavior) or the listed records. The last one is used, for example, to print a tree structure as the user has it open.
We use now immutable data-structures for Dict and MultiSelection fields. This enforces good practice because the framework cannot detect modifications on those mutable values.
Thanks to the new context item _skip_warnings, non-interactive operations (like scheduled tasks, queue jobs etc.) are no longer blocked by warnings which have no user to ignore them.
The record rules are now only applied if _check_access is set in the context. This improves the multi-company support.
We added a new Mixin to add support for avatars on any ModelStorage. This exposes the avatar on a public but anonymized URL. This URL accepts a parameter to resize the image on request and automatically store the result in a cache. It can also generate a pseudo-random avatar using, by default, the record name.
The ORM now supports full text and similarity searches if the database back-end support it. This is used automatically for searches using ilike and a clause %…%. The similarity threshold is set by default to 0.3.
A new type of field has also been added - FullText. This stores, in the database, a list of strings representing the document as a vector so that indexes can be defined to improve searching and ordering on it.
We added the __access__ attribute to Model which contains a set of relation fields to which the access rights are delegated. This is used, for example, when a document is designed with multiple models like sale orders which are made up from Sale and SaleLine. Here the SaleLine delegates its access rights to the Sale.
More
The method to get the next sequence value is now an instance method.
The sequence type is now stored as a Many2One on the sequence.
A new route wrapper has been added to accept null as origin of a request. This is needed for add-ons application like Chronos.
The method ModelView.parse_view is now officially public.
Each value of a selection of multiselection can now have its own help text.
The trigonometric functions have been added to the SQLite back-end.
When a process change the list of activated modules, the others must refresh their pool.
A new method on Cache allows to clear all the cache instances.
The HTML editor supports now the Genshi element directives.
A new tool has been added firstline which return the first non empty line of a text.
When browsing ModelStorage instances, no access rights are enforced.
When multiple Function fields have the same getter we eagerly compute them.
The decorator button_change accepts now to depends on other methods like the other decorators.
It is now supported to use the standard Python copy method to copy Model instances.
When the server generates a default form view for a ModelView, it includes now automatically all the buttons.
All white spaces except space are forbidden on Char fields.
The Report can now group the rendering of a list of records by header keys. This is useful when OpenDocument templates the header and footer which are global for the whole document.
The URI to configure the database connection supports now parameters.
The table handler can not test the SQL type of a column. This is useful to decide to make a migration or not.
The timedelta converter supports now to have empty value for some keys.
Web Client
We removed the dependency to tempusdominus. Instead we use the HTML standard date and date-time inputs.
Accounting
The Move.query_get filter is now also based on the journal key in the context.
The method call_deposit now accepts an optional maximum amount to recall.
A new method has been added to Invoice to post invoices by batch. On large installations posting invoices can become a bottleneck due to the strict sequence constraint. With this batch method it is possible to speed up the process by reducing the time spent locking the invoice sequence.
More
We removed the foreign key constraint for the sequence link on Invoice. It creates new lock contention for no benefit.
The zip code in Stripe checkout has been removed because it was not used.
It is now possible to define the preferred locales to the Stripe Customer.
We do not create anymore account moves for the stock with a single empty line.
Company
We removed the tree structure from Company and replaced it with a flat list of companies that user has access to.
We added a generic test which ensures the definition of record rules for company related models.
We also added another generic test that checks if fields targeting company multivalue models have a company context defined.
It is highly advised to use this test mixin if your custom module depends on company.
We now use the report header feature on the CompanyReport instead of relying on the contextual company value. This now means that records on which these reports are based, must have a company field.
Country
We renamed the “Zip” model into “Postal Code” which is more generic.
Party
We renamed the “Zip” field into “Postal Code” which is more generic.
We implemented a simple distance field on the party module which is fully extended in the party_relationship module. This allows for other modules to implement distance behavior without having to depend on party_relationship.
Sale
We added the TaxableMixin to the sale line. This is used to base promotions on an amount without or without taxes.
Stock
We added a dedicated model for the “Products by Locations” and “Lots by Location” reports which makes it easier to customize compared to using the product or lot model.
More
We renamed the quantity_added to quantity in the inventory counting wizard.
2 posts - 1 participant
Read full topic
[Less]
|
Posted
over 3 years
ago
by
ced
We are proud to announce the 6.0 Long Term Support release of Tryton .
This release provides many bug fixes and some significant improvements. Among other changes you will find the display of attached documents, reinforced security
... [More]
and many accounting improvements. There are also no more than 11 new modules that include support for things such as Incoterms, Avatars and Product kits. Tryton has now also been translated into Romanian which brings the number of languages to 24.
You can give it a try on the demo server, use the docker image or download it here.
As usual migration from previous series is fully supported. Some manual operations may be required, see Migration from 5.8 to 6.0.
Here is a list of the most noticeable changes:
Changes for the User
The clients can now display documents inside a form. The supported document formats are dependent on the client. For the web client it is the one supported by the browser (usually images and pdfs). And for the desktop client it is also images and the formats supported by Evince.
Thanks to the document widget, it is possible to display, next to any form, a preview of the attachments. This can be used, for example, when entering a supplier invoice from the attached PDF.
When sending an email from the client, in addition to being able to attach any report, it is now possible to also attach any of the record’s attachments.
More (click for more details)
Web Client
The CSV export and import dialog can now be reordered using drag and drop.
The web client can now also propose completion for the search input of the xxx2Many and Dict widgets.
The email and URL widgets now use the appropriate input type. So that mobile devices can display the best virtual keyboard.
More (click for more details)
Desktop Client
When printing reports that are single (like the invoice), the server sends a zip file containing one document for each record. The client now recognizes these files and can send each file from the zip to the printer.
When running the client on UNIX platforms, it is now possible to use the direct print feature. The client will uses the lp or lpr commands and for OpenDocuments it uses soffice. (It continues to use the print command on Windows).
Some reports can take a long time to generate so the client runs them with an asynchronous request. This allows the user to still perform other operations while the report is being generated.
An interactive search has been added to the list and tree views. It pops up when you start to type on the list and puts the focus on the first line which matches the results. You can jump to the next matching entry with +↓ and previous with +↑.
Accounting
The Income Statement and Balance Sheet can now be printed. Only the records that are open in the client are printed.
The general journal is now printed from a list of moves. This adds, as a nice side effect, the ability to print a single move if needed.
The General Ledger (accounts and lines) can now be filtered by journal. And from the lines it is also possible to perform a reconciliation.
The terms on the Aged Balance can now be expressed in weeks and years in addition to the existing days and months.
The Spanish accounting module now provides a report for the VAT book.
Companies can not always deduct the full amount of the taxes on supplier invoices. We now allow the accountant to set the deductible rate of each invoice line. You can set a default value for the rate on the product category.
Some companies can never deduct taxes, thus they can be configured to always use a 0% deductible rate.
It is now possible to make the link between invoice lines and stock moves after they have been posted and done. In these cases the unit price is also updated on the stock move, and if needed the cost price will be recalculated.
More (click for more details)
Commission
The date of the commission now uses the invoice date if the method is “on posting” and the payment date if the method is “on payment”. This is more coherent than using the date when the commission was generated.
Company
The users can now choose if they want to see only records for their current company or for all their companies.
It is now optional to define a number of hours in a working day, week, month and year.
Currency
You can configure a scheduled task to fetch currency rates at a specific frequency. By default it gets the rates from the European Central Bank.
Marketing
The marketing emails can now use the same formatting methods as the report.
Party
An specific contact mechanism can be used as email recipient. This is useful for example to send the sale order notifications to the email of the contact who placed the order instead to the generic one of the customer.
For that we added also an optional language to the contact mechanism to be used instead of the language of the linked party.
More (click for more details)
Product
When you deactivate a product, its variants are also automatically deactivated.
From the category view, it is now possible to add or remove products. This is useful when you have a lot of products that needs to be categorized.
It is now possible to use the list price of the product form in the formula of the price list. This is useful for businesses that have regulated prices (e.g. books in France).
Production
You can define a scheduled task that will try to automatically assign any productions that are planned for today. The productions that can not be fully assigned are listed in a new “Partially Assigned” tab.
More (click for more details)
Project
When invoicing a project based on the time-sheets, it is now possible to define for each work a date that limits the time-sheets invoiced. This date can be set, for example, once the customer has accepted the work done up to that date.
Purchase
When creating a return of a purchase, the original purchase is linked to the return.
You can now define a default lead time for each supplier. This is used when the product does not have a specific lead time set for that supplier.
The payment term and invoice method are now set by default based on the last purchases made from the supplier.
The amendment mechanism now supports changing lines without a product.
It is now easier to manually change the shipment cost of a purchase. A check box has been added to allow the price to be manually altered and to prevent any automatic re-calculation.
More (click for more details)
Sale
You can now configure a global lead time. This is used for products that have no specific lead time.
The amendment mechanism now supports changing lines without a product.
The complaint action to credit the customer now make an invoice correction. This improves the product margin statistics.
The amount of the complaint action is now calculated automatically. This makes it easier to decide whether to validate the complaint, or not.
It is now possible to create promotions that are based on the total amount of the sale. The shipment cost can be excluded from these promotions.
We now only add the unsold shipment cost to the outgoing moves following the shipment cost method. The cost of the shipment for the company is calculated using the purchase price of the carrier. And the shipment cost for the sale can be free (price of zero).
It is now easier to manually change the shipment cost of a sale. A check box has been added to allow the cost to be altered and to prevent any automatic recalculation.
More (click for more details)
Stock
You can now define a scheduled task that tries to automatically assign all the shipments that are planned for today. The shipments that could not be fully assigned are listed in a “Partially Assigned” tab.
The graph that shows a product’s quantities over time of for each warehouse, can now display this for multiple products on the same graph. This is useful when comparing different products or if you want to analyze the scheduling of a shipment composed of multiple products.
We added a report that calculates the margin of goods by product or category.
As a counterpart to manually assigning a shipment, it is now possible to also manually unassign a shipment. The wizard asks, for each assigned move, the quantity to unassign and then restores an original move for this quantity.
When you use stock lots as a serial number, it can be time consuming to split the moves and add a lot for each unit. So we added a wizard to make this task easier. The wizard can also automatically generate the lot number using a sequence defined on the product.
You can now define the package used for a supplier shipment returns.
More (click for more details)
Timesheet
We added a tab on the time-sheet works to list the “Open” and “Closed” work.
More (click for more details)
New Modules
Account Invoice Defer
The Account Invoice Defer Module allows an invoice line’s expenses or revenues to be deferred over many periods.
Carrier Subdivision
The Carrier Subdivision Module extends the carrier selection pattern with the subdivision and the postal code.
These can be used to restrict the usage of a carrier to a specific subdivision or specific postal code.
Incoterm
This Incoterm Model is used to manage the Incoterms on sales, purchases and shipments. The module contains the Incoterms versions 2010 and 2020.
Party Avatar
The Party Avatar Module adds an avatar to each party.
Product Cost Warehouse
The Product Cost Warehouse Module allows the cost price of products to be calculated separately for each warehouse.
Product Kit
The Product Kit Module adds kits and components to products. This enables a defined set of products to be sold or purchased using a single line.
Purchase Price List
The Purchase Price List Module allows price lists to be defined for suppliers.
Sale Gift Card
The Sale Gift Card Module manages the selling and redeeming of gift cards.
Stock Quantity Early Planning
The Stock Quantity Early Planning Module helps reduce stock levels by suggesting where stock can be consumed earlier.
Stock Quantity Issue
The Stock Quantity Issue Module helps to solve stock quantity issues.
Stock Shipment Cost
The Stock Shipment Cost Module adds a shipment cost on the outgoing moves. This cost is added to the product margin reports.
Changes for the System Administrator
The Tryton server now includes protection of trusted devices against brute force attack mitigation. This means that these devices (which have been authenticated once) are not delayed by anonymous brute force attack.
A new curses command trytond-stat has been added which displays some statistics about the running trytond. For now it displays the running requests. This is useful to detect those that are taking too much time. It also displays how performant the caches are by showing the number of hits, misses and the ratio.
The user groups can now inherit access permissions from another group. This is used by the “Administrator” version of a group to extend the rights of the normal group.
More (click for more details)
Currency
We added a new parameter rate_decimal which defines the number of decimal places that are used to store currency exchange rates. This is useful when using currencies that needs more than 6 decimals places for conversion.
Party
We received some feedback about users getting lost when selecting from the large list of identifiers available in Tryton when they were only interested in local identifiers. So we added a configuration option to define which types of identifiers are available for use.
Stock
The shipping labels can now be stored in the filestore instead of the database thanks to a configuration parameter. This helps reduce the size of the database.
Changes for the Developer
Tryton supports now Python 3.9.
We unified the string format of PYSON between all the implementations.
It is now possible to use a URL as source for icon. The target image is then cached by the client. This is used to implement the avatar feature.
The data passed to ir.action now also contains the context model used and the paths (as a tree) of the selected records.
The actions can now define that they run on the selected records (default and historical behavior) or the listed records. The last one is used, for example, to print a tree structure as the user has it open.
We use now immutable data-structures for Dict and MultiSelection fields. This enforces good practice because the framework cannot detect modifications on those mutable values.
Thanks to the new context item _skip_warnings, non-interactive operations (like scheduled tasks, queue jobs etc.) are no longer blocked by warnings which have no user to ignore them.
The record rules are now only applied if _check_access is set in the context. This improves the multi-company support.
We added a new Mixin to add support for avatars on any ModelStorage. This exposes the avatar on a public but anonymized URL. This URL accepts a parameter to resize the image on request and automatically store the result in a cache. It can also generate a pseudo-random avatar using, by default, the record name.
The ORM now supports full text and similarity searches if the database back-end support it. This is used automatically for searches using ilike and a clause %…%. The similarity threshold is set by default to 0.3.
A new type of field has also been added - FullText. This stores, in the database, a list of strings representing the document as a vector so that indexes can be defined to improve searching and ordering on it.
We added the __access__ attribute to Model which contains a set of relation fields to which the access rights are delegated. This is used, for example, when a document is designed with multiple models like sale orders which are made up from Sale and SaleLine. Here the SaleLine delegates its access rights to the Sale.
More (click for more details)
Web Client
We removed the dependency to tempusdominus. Instead we use the HTML standard date and date-time inputs.
Accounting
The Move.query_get filter is now also based on the journal key in the context.
The method call_deposit now accepts an optional maximum amount to recall.
A new method has been added to Invoice to post invoices by batch. On large installations posting invoices can become a bottleneck due to the strict sequence constraint. With this batch method it is possible to speed up the process by reducing the time spent locking the invoice sequence.
More (click for more details)
Company
We removed the tree structure from Company and replaced it with a flat list of companies that user has access to.
We added a generic test which ensures the definition of record rules for company related models.
We also added another generic test that checks if fields targeting company multivalue models have a company context defined.
It is highly advised to use this test mixin if your custom module depends on company.
We now use the report header feature on the CompanyReport instead of relying on the contextual company value. This now means that records on which these reports are based, must have a company field.
Country
We renamed the “Zip” model into “Postal Code” which is more generic.
Party
We renamed the “Zip” field into “Postal Code” which is more generic.
We implemented a simple distance field on the party module which is fully extended in the party_relationship module. This allows for other modules to implement distance behavior without having to depend on party_relationship.
Sale
We added the TaxableMixin to the sale line. This is used to base promotions on an amount without or without taxes.
Stock
We added a dedicated model for the “Products by Locations” and “Lots by Location” reports which makes it easier to customize compared to using the product or lot model.
More (click for more details)
3 posts - 2 participants
Read full topic
[Less]
|
Posted
over 3 years
ago
by
ced
Gray Concrete Road Between Green Trees Under White Clouds and Blue Sky1280×853 156 KB
We are proud to announce the 6.0 Long Term Support release of Tryton .
This release provides many bug fixes and some significant improvements.
... [More]
Among other changes you will find the display of attached documents, reinforced security and many accounting improvements. There are also no more than 11 new modules that include support for things such as Incoterms, Avatars and Product kits. Tryton has now also been translated into Romanian which brings the number of languages to 24.
You can give it a try on the demo server, use the docker image or download it here.
As usual migration from previous series is fully supported. Some manual operations may be required, see Migration from 5.8 to 6.0.
Here is a list of the most noticeable changes:
Changes for the User
The clients can now display documents inside a form. The supported document formats are dependent on the client. For the web client it is the one supported by the browser (usually images and pdfs). And for the desktop client it is also images and the formats supported by Evince.
Attachment with document displayed in web client1918×985 72.3 KB
Attachment with document displayed in desktop client1111×647 33.2 KB
Thanks to the document widget, it is possible to display, next to any form, a preview of the attachments. This can be used, for example, when entering a supplier invoice from the attached PDF.
Supplier invoice form with attachment preview in web client1918×985 95.9 KB
Supplier invoice form with attachment preview in desktop client1436×860 78.1 KB
When sending an email from the client, in addition to being able to attach any report, it is now possible to also attach any of the record’s attachments.
More
The dialog opened under a revision show in their title the revision.
When exporting into CSV file a tree, the first column is indented according to its level in the tree.
When opening many dialog, the title is now composed of a breadcrumb trail of all the dialog opened before. This avoid to loose the user in his navigation.
The name of the tabs opened from the menu is now the name of the menu entry.
Web Client
The CSV export and import dialog can now be reordered using drag and drop.
The web client can now also propose completion for the search input of the xxx2Many and Dict widgets.
The email and URL widgets now use the appropriate input type. So that mobile devices can display the best virtual keyboard.
More
Each selection entry can display its own help text.
Desktop Client
When printing reports that are single (like the invoice), the server sends a zip file containing one document for each record. The client now recognizes these files and can send each file from the zip to the printer.
When running the client on UNIX platforms, it is now possible to use the direct print feature. The client will uses the lp or lpr commands and for OpenDocuments it uses soffice. (It continues to use the print command on Windows).
Some reports can take a long time to generate so the client runs them with an asynchronous request. This allows the user to still perform other operations while the report is being generated.
An interactive search has been added to the list and tree views. It pops up when you start to type on the list and puts the focus on the first line which matches the results. You can jump to the next matching entry with +↓ and previous with +↑.
Desktop client quick searching on sale lines1176×396 39.6 KB
Accounting
The Income Statement and Balance Sheet can now be printed. Only the records that are open in the client are printed.
The general journal is now printed from a list of moves. This adds, as a nice side effect, the ability to print a single move if needed.
The General Ledger (accounts and lines) can now be filtered by journal. And from the lines it is also possible to perform a reconciliation.
The terms on the Aged Balance can now be expressed in weeks and years in addition to the existing days and months.
The Spanish accounting module now provides a report for the VAT book.
Companies can not always deduct the full amount of the taxes on supplier invoices. We now allow the accountant to set the deductible rate of each invoice line. You can set a default value for the rate on the product category.
Some companies can never deduct taxes, thus they can be configured to always use a 0% deductible rate.
It is now possible to make the link between invoice lines and stock moves after they have been posted and done. In these cases the unit price is also updated on the stock move, and if needed the cost price will be recalculated.
More
Account type from balance statement can be marked as debt. So they can be used directly to book invoices.
It is now possible to open directly from a party his general ledger accounts.
The balance of the general ledger lines start with the start value of the account.
The reconciliation sequence can now be set in the accounting configuration.
Once a move has been numbered, it is no more allowed to change its journal. This is because the numbering is based on the journal.
It is now possible to define an other date than the invoice date to use to compute the payment term for an invoice.
If you try to post a customer invoice with a maturity date in the past, Tryton will raise a warning.
We added a summary field on the invoice line list that display the first line of the description.
It is now possible to define a default customer payment term for all parties that have no term defined.
When the supplier sent an invoice to correct a price, it is now possible to mark it as correction. In this case the quantity will not be counted to compute the cost price on the related stock moves.
The payments record now the employees who approved, noted as succeeded or failure them.
The customer record of Braintree and Stripe are now kept up to date.
We warn the user when he posts a statement linked to a cancelled or already paid invoice.
The origin of the move line are now filled with the statement line.
The analytic lines are now filled for the closing move of an asset.
Commission
The date of the commission now uses the invoice date if the method is “on posting” and the payment date if the method is “on payment”. This is more coherent than using the date when the commission was generated.
Company
The users can now choose if they want to see only records for their current company or for all their companies.
It is now optional to define a number of hours in a working day, week, month and year.
Currency
You can configure a scheduled task to fetch currency rates at a specific frequency. By default it gets the rates from the European Central Bank.
Marketing
The marketing emails can now use the same formatting methods as the report.
Party
An specific contact mechanism can be used as email recipient. This is useful for example to send the sale order notifications to the email of the contact who placed the order instead to the generic one of the customer.
For that we added also an optional language to the contact mechanism to be used instead of the language of the linked party.
More
We added the new identifiers available from python-stdnum.
Product
When you deactivate a product, its variants are also automatically deactivated.
From the category view, it is now possible to add or remove products. This is useful when you have a lot of products that needs to be categorized.
It is now possible to use the list price of the product form in the formula of the price list. This is useful for businesses that have regulated prices (e.g. books in France).
Production
You can define a scheduled task that will try to automatically assign any productions that are planned for today. The productions that can not be fully assigned are listed in a new “Partially Assigned” tab.
More
The productions are now ordered by date.
Project
When invoicing a project based on the time-sheets, it is now possible to define for each work a date that limits the time-sheets invoiced. This date can be set, for example, once the customer has accepted the work done up to that date.
Purchase
When creating a return of a purchase, the original purchase is linked to the return.
You can now define a default lead time for each supplier. This is used when the product does not have a specific lead time set for that supplier.
The payment term and invoice method are now set by default based on the last purchases made from the supplier.
The amendment mechanism now supports changing lines without a product.
It is now easier to manually change the shipment cost of a purchase. A check box has been added to allow the price to be manually altered and to prevent any automatic re-calculation.
More
We added a summary field on the purchase and requisition line lists that display the first line of the description.
We added a relate to open purchase from a request and vice-versa.
The product supplier can now be deactivated.
Sale
You can now configure a global lead time. This is used for products that have no specific lead time.
The amendment mechanism now supports changing lines without a product.
The complaint action to credit the customer now make an invoice correction. This improves the product margin statistics.
The amount of the complaint action is now calculated automatically. This makes it easier to decide whether to validate the complaint, or not.
It is now possible to create promotions that are based on the total amount of the sale. The shipment cost can be excluded from these promotions.
We now only add the unsold shipment cost to the outgoing moves following the shipment cost method. The cost of the shipment for the company is calculated using the purchase price of the carrier. And the shipment cost for the sale can be free (price of zero).
It is now easier to manually change the shipment cost of a sale. A check box has been added to allow the cost to be altered and to prevent any automatic recalculation.
More
We added a summary field on the sale line lists that display the first line of the description.
The complaint type and product customer can now be deactivated.
It is now possible to set the sale line of a shipment cost to 0.
The carrier is now displayed on the shipment list. This is useful when you must prepare the shipment of a specific carrier in priority.
By default the shipment cost is now excluded from the promotion amount.
The effective date of drop shipment can now be defined.
It is now possible to open the drop shipments of a party from its form.
Stock
You can now define a scheduled task that tries to automatically assign all the shipments that are planned for today. The shipments that could not be fully assigned are listed in a “Partially Assigned” tab.
The graph that shows a product’s quantities over time of for each warehouse, can now display this for multiple products on the same graph. This is useful when comparing different products or if you want to analyze the scheduling of a shipment composed of multiple products.
We added a report that calculates the margin of goods by product or category.
As a counterpart to manually assigning a shipment, it is now possible to also manually unassign a shipment. The wizard asks, for each assigned move, the quantity to unassign and then restores an original move for this quantity.
When you use stock lots as a serial number, it can be time consuming to split the moves and add a lot for each unit. So we added a wizard to make this task easier. The wizard can also automatically generate the lot number using a sequence defined on the product.
You can now define the package used for a supplier shipment returns.
More
We added a relate from an assigned shipment that opens the quantities by warehouse for the products on the shipment.
The shipments are now ordered by default by date.
The contact mechanism can be defined for delivery usage.
When the storage and output zone are the same, the outgoing moves of customer shipments are now still editable in waiting and packed state.
The move list of the product quantities by warehouse display now the document from where they originate.
A sequence to automatically number lot can be configured on each product.
We now include the additional weight of the package to the total weight of a parcel.
The packages have now a field that contains the tracking URL.
The dimension of a package can be modified from the default value set for its type. This is useful to store for example the height of a pallet.
It is now possible to configure the product and format to use for a DPD carrier.
Timesheet
We added a tab on the time-sheet works to list the “Open” and “Closed” work.
More
The active field has been removed from the time-sheet work as it was redundant with the start and end dates.
New Modules
Account Invoice Defer
The Account Invoice Defer Module allows an invoice line’s expenses or revenues to be deferred over many periods.
Carrier Subdivision
The Carrier Subdivision Module extends the carrier selection pattern with the subdivision and the postal code.
These can be used to restrict the usage of a carrier to a specific subdivision or specific postal code.
Incoterm
This Incoterm Model is used to manage the Incoterms on sales, purchases and shipments. The module contains the Incoterms versions 2010 and 2020.
Party Avatar
The Party Avatar Module adds an avatar to each party.
List of parties with avatar in web client900×686 41.4 KB
List of parties with avatar in desktop client1172×747 69.1 KB
Product Cost Warehouse
The Product Cost Warehouse Module allows the cost price of products to be calculated separately for each warehouse.
Product Kit
The Product Kit Module adds kits and components to products. This enables a defined set of products to be sold or purchased using a single line.
Purchase Price List
The Purchase Price List Module allows price lists to be defined for suppliers.
Sale Gift Card
The Sale Gift Card Module manages the selling and redeeming of gift cards.
Stock Quantity Early Planning
The Stock Quantity Early Planning Module helps reduce stock levels by suggesting where stock can be consumed earlier.
Stock Quantity Issue
The Stock Quantity Issue Module helps to solve stock quantity issues.
Stock Shipment Cost
The Stock Shipment Cost Module adds a shipment cost on the outgoing moves. This cost is added to the product margin reports.
Changes for the System Administrator
The Tryton server now includes protection of trusted devices against brute force attack mitigation. This means that these devices (which have been authenticated once) are not delayed by anonymous brute force attack.
A new curses command trytond-stat has been added which displays some statistics about the running trytond. For now it displays the running requests. This is useful to detect those that are taking too much time. It also displays how performant the caches are by showing the number of hits, misses and the ratio.
The user groups can now inherit access permissions from another group. This is used by the “Administrator” version of a group to extend the rights of the normal group.
More
It is now possible to define the email’s FROM per language.
The trytond-admin command has a new option --validate that can be used to validate all the records or a random percentage. This is useful to verify that a migration was correct.
Currency
We added a new parameter rate_decimal which defines the number of decimal places that are used to store currency exchange rates. This is useful when using currencies that needs more than 6 decimals places for conversion.
Party
We received some feedback about users getting lost when selecting from the large list of identifiers available in Tryton when they were only interested in local identifiers. So we added a configuration option to define which types of identifiers are available for use.
Stock
The shipping labels can now be stored in the filestore instead of the database thanks to a configuration parameter. This helps reduce the size of the database.
Changes for the Developer
Tryton supports now Python 3.9.
We unified the string format of PYSON between all the implementations.
It is now possible to use a URL as source for icon. The target image is then cached by the client. This is used to implement the avatar feature.
The data passed to ir.action now also contains the context model used and the paths (as a tree) of the selected records.
The actions can now define that they run on the selected records (default and historical behavior) or the listed records. The last one is used, for example, to print a tree structure as the user has it open.
We use now immutable data-structures for Dict and MultiSelection fields. This enforces good practice because the framework cannot detect modifications on those mutable values.
Thanks to the new context item _skip_warnings, non-interactive operations (like scheduled tasks, queue jobs etc.) are no longer blocked by warnings which have no user to ignore them.
The record rules are now only applied if _check_access is set in the context. This improves the multi-company support.
We added a new Mixin to add support for avatars on any ModelStorage. This exposes the avatar on a public but anonymized URL. This URL accepts a parameter to resize the image on request and automatically store the result in a cache. It can also generate a pseudo-random avatar using, by default, the record name.
The ORM now supports full text and similarity searches if the database back-end support it. This is used automatically for searches using ilike and a clause %…%. The similarity threshold is set by default to 0.3.
A new type of field has also been added - FullText. This stores, in the database, a list of strings representing the document as a vector so that indexes can be defined to improve searching and ordering on it.
We added the __access__ attribute to Model which contains a set of relation fields to which the access rights are delegated. This is used, for example, when a document is designed with multiple models like sale orders which are made up from Sale and SaleLine. Here the SaleLine delegates its access rights to the Sale.
More
The method to get the next sequence value is now an instance method.
The sequence type is now stored as a Many2One on the sequence.
A new route wrapper has been added to accept null as origin of a request. This is needed for add-ons application like Chronos.
The method ModelView.parse_view is now officially public.
Each value of a selection of multiselection can now have its own help text.
The trigonometric functions have been added to the SQLite back-end.
When a process change the list of activated modules, the others must refresh their pool.
A new method on Cache allows to clear all the cache instances.
The HTML editor supports now the Genshi element directives.
A new tool has been added firstline which return the first non empty line of a text.
When browsing ModelStorage instances, no access rights are enforced.
When multiple Function fields have the same getter we eagerly compute them.
The decorator button_change accepts now to depends on other methods like the other decorators.
It is now supported to use the standard Python copy method to copy Model instances.
When the server generates a default form view for a ModelView, it includes now automatically all the buttons.
All white spaces except space are forbidden on Char fields.
The Report can now group the rendering of a list of records by header keys. This is useful when OpenDocument templates the header and footer which are global for the whole document.
The URI to configure the database connection supports now parameters.
The table handler can not test the SQL type of a column. This is useful to decide to make a migration or not.
The timedelta converter supports now to have empty value for some keys.
Web Client
We removed the dependency to tempusdominus. Instead we use the HTML standard date and date-time inputs.
Accounting
The Move.query_get filter is now also based on the journal key in the context.
The method call_deposit now accepts an optional maximum amount to recall.
A new method has been added to Invoice to post invoices by batch. On large installations posting invoices can become a bottleneck due to the strict sequence constraint. With this batch method it is possible to speed up the process by reducing the time spent locking the invoice sequence.
More
We removed the foreign key constraint for the sequence link on Invoice. It creates new lock contention for no benefit.
The zip code in Stripe checkout has been removed because it was not used.
It is now possible to define the preferred locales to the Stripe Customer.
We do not create anymore account moves for the stock with a single empty line.
Company
We removed the tree structure from Company and replaced it with a flat list of companies that user has access to.
We added a generic test which ensures the definition of record rules for company related models.
We also added another generic test that checks if fields targeting company multivalue models have a company context defined.
It is highly advised to use this test mixin if your custom module depends on company.
We now use the report header feature on the CompanyReport instead of relying on the contextual company value. This now means that records on which these reports are based, must have a company field.
Country
We renamed the “Zip” model into “Postal Code” which is more generic.
Party
We renamed the “Zip” field into “Postal Code” which is more generic.
We implemented a simple distance field on the party module which is fully extended in the party_relationship module. This allows for other modules to implement distance behavior without having to depend on party_relationship.
Sale
We added the TaxableMixin to the sale line. This is used to base promotions on an amount without or without taxes.
Stock
We added a dedicated model for the “Products by Locations” and “Lots by Location” reports which makes it easier to customize compared to using the product or lot model.
More
We renamed the quantity_added to quantity in the inventory counting wizard.
3 posts - 2 participants
Read full topic
[Less]
|
Posted
over 3 years
ago
by
ced
A lot of development has finally landed, laying a solid foundation for the upcoming 6.0 release.
Changes for the User
We’ve improved the default ordering for shipments and production orders. It is now based on either the effective
... [More]
date or the planned date.
The shipping labels can now be stored in the filestore. Doing this can help to reduce the size of the database.
The price list formula can explicitly use the list price of a product. This is useful for some regulated business where the purchase price is fixed based on the public price.
The report that shows the quantities of a product by warehouse can now display it for multiple products. We also added a relate from assigned shipments and productions to show the quantities for all the products included in the document.
It is now possible to modify the dimension of packages. By default, they are filled in with the value from the package type. The main use case is for pallets where the height is only known after it is filled in.
The import and export CSV dialog for the web client now supports drag and drop on the columns to reorder them.
Any stock moves that get cancelled are now automatically removed from the package they were linked to.
The income statement and balance sheet can now be printed.
When exporting tree structures as CSV data the first column is now indented.
The client now allows sending emails with any of the record’s existing attachments.
The stock packages now display the tracking URL for each carrier.
Changes to the shipment cost on shipments has been simplified. This has been done by adding an edit checkbox which helps avoid unexpected re-calculations of the cost when moves are changed.
We replaced the “Print General Journal” with a generic report on accounting moves. This provides more flexibility on what content is printed.
It is now possible to configure the party identifiers that are available.
We removed the unpractical tree structure from companies. The user’s “Main Company” has been replaced by a flat list.
It is now possible to define a supplier invoice line as a price correction to update the cost price of its product.
When the carrier cost is not fully covered by the shipment cost paid by the customer, the unsold part is added to the outgoing moves as a shipment cost.
The return purchases are now linked to the original purchase.
The calculated weight of a shipment parcel now also includes the weight of the package used.
The general ledger lines display now the cumulative balance starting at the balance of the account.
New Modules
The Purchase Price List Module allows price lists to be defined for suppliers.
The Stock Shipment Cost Module adds a shipment cost to outgoing moves. This cost is added to the product margin reports.
The Stock Quantity Issue Module helps to solve stock quantity issues.
The Product Cost Warehouse Module allows the cost price of products to be calculated separately for each warehouse.
The Stock Quantity Early Planning Module helps reduce stock levels by proposing earlier use of stock.
The Incoterm Module is used to manage Incoterms on sales, purchases and shipments.
The Autopilot Module stores all user inputs in a blockchain, automatically analyses and predicts the best next logical step in business (yes, AI with tensor flow) and finally act autonomous, e.g. purchase products and sell them, without human interaction.
The Avatar Module adds an avatar to each party.
Changes for the System Administrator
The groups can have now a parent from which they inherit their access permissions. This is useful, for example, when creating “Administration” groups which normally have all the rights from the standard group along with some additional rights.
We added a new command trytond-stat which displays the currently processed requests, tasks and jobs for each of the trytond processes on the host.
Changes for the Developer
We’ve added a method to post invoices by batch. It delegates the numbering to a deferred task. This can be used to reduce contention on the invoice numbering sequence.
We’ve added a generic test in the company module that ensures the company context is set on fields that target a company multivalue model.
The MPTT update is now only called for affected fields.
A new route decorator has been added to allow null as its origin. This is useful for web-extensions like Chronos as browsers now use this origin instead of the extension ID.
Model.__access__ is a new attribute which contains the names of a relation field for which the access rights must also be checked. This simplifies the definition of access rights for documents composed of several models like, for example, the invoice with lines and taxes.
The actions can now define whether they run on the selected records (as usual) or the listed records.
Also if the action is run on a tree structure then a path for each record is sent to the server.
The context fields of parent records are now automatically added to the on_change calls. This ensures that records are instantiated with the proper context.
The sequence definition has been simplified. The type is now directly stored on the sequence with a Many2One and the next value is obtained using an instance method.
A field’s dependencies are now also loaded when form is displayed.
When recalling a deposit it is now possible to specify a maximum amount to be recalled.
It is now possible to use a URL as the source of an icon.
The code has been updated to iterate over the database cursor when possible instead of using fetchall.
For the back-ends that support it, Char and Text fields can be searched with full text and similarity. A new internal FullText field type is available which helps to store and index FULLTEXT columns.
The distance between parties has been moved from the party_relationship to the party module. This was done so that third parties can use, by default, the minimal distance field without depending on the party_relationship module.
A new widget document has been added for the Binary field. It relies on the tag in the browser and on the Evince library. It can display, at the very least, images and PDF documents.
We added an AvatarMixin which adds support for avatars on any model. The avatar is then publicly available through a URL. The URL accept a size parameter that resizes the image on the fly. Each resized image is stored in a cache.
4 posts - 3 participants
Read full topic
[Less]
|
Posted
over 3 years
ago
by
ced
Pink Flowers On Trees1280×853 486 KB
A lot of development has finally landed, laying a solid foundation for the upcoming 6.0 release.
Changes for the User
We’ve improved the default ordering for shipments and production orders. It is
... [More]
now based on either the effective date or the planned date.
The shipping labels can now be stored in the filestore. Doing this can help to reduce the size of the database.
The price list formula can explicitly use the list price of a product. This is useful for some regulated business where the purchase price is fixed based on the public price.
The report that shows the quantities of a product by warehouse can now display it for multiple products. We also added a relate from assigned shipments and productions to show the quantities for all the products included in the document.
It is now possible to modify the dimension of packages. By default, they are filled in with the value from the package type. The main use case is for pallets where the height is only known after it is filled in.
The import and export CSV dialog for the web client now supports drag and drop on the columns to reorder them.
Any stock moves that get cancelled are now automatically removed from the package they were linked to.
The income statement and balance sheet can now be printed.
When exporting tree structures as CSV data the first column is now indented.
The client now allows sending emails with any of the record’s existing attachments.
The stock packages now display the tracking URL for each carrier.
Changes to the shipment cost on shipments has been simplified. This has been done by adding an edit checkbox which helps avoid unexpected re-calculations of the cost when moves are changed.
We replaced the “Print General Journal” with a generic report on accounting moves. This provides more flexibility on what content is printed.
It is now possible to configure the party identifiers that are available.
We removed the unpractical tree structure from companies. The user’s “Main Company” has been replaced by a flat list.
It is now possible to define a supplier invoice line as a price correction to update the cost price of its product.
When the carrier cost is not fully covered by the shipment cost paid by the customer, the unsold part is added to the outgoing moves as a shipment cost.
The return purchases are now linked to the original purchase.
The calculated weight of a shipment parcel now also includes the weight of the package used.
The general ledger lines display now the cumulative balance starting at the balance of the account.
New Modules
The Purchase Price List Module allows price lists to be defined for suppliers.
The Stock Shipment Cost Module adds a shipment cost to outgoing moves. This cost is added to the product margin reports.
The Stock Quantity Issue Module helps to solve stock quantity issues.
The Product Cost Warehouse Module allows the cost price of products to be calculated separately for each warehouse.
The Stock Quantity Early Planning Module helps reduce stock levels by proposing earlier use of stock.
The Incoterm Module is used to manage Incoterms on sales, purchases and shipments.
The Autopilot Module stores all user inputs in a blockchain, automatically analyses and predicts the best next logical step in business (yes, AI with tensor flow) and finally act autonomous, e.g. purchase products and sell them, without human interaction.
The Avatar Module adds an avatar to each party.
Changes for the System Administrator
The groups can have now a parent from which they inherit their access permissions. This is useful, for example, when creating “Administration” groups which normally have all the rights from the standard group along with some additional rights.
We added a new command trytond-stat which displays the currently processed requests, tasks and jobs for each of the trytond processes on the host.
Changes for the Developer
We’ve added a method to post invoices by batch. It delegates the numbering to a deferred task. This can be used to reduce contention on the invoice numbering sequence.
We’ve added a generic test in the company module that ensures the company context is set on fields that target a company multivalue model.
The MPTT update is now only called for affected fields.
A new route decorator has been added to allow null as its origin. This is useful for web-extensions like Chronos as browsers now use this origin instead of the extension ID.
Model.__access__ is a new attribute which contains the names of a relation field for which the access rights must also be checked. This simplifies the definition of access rights for documents composed of several models like, for example, the invoice with lines and taxes.
The actions can now define whether they run on the selected records (as usual) or the listed records.
Also if the action is run on a tree structure then a path for each record is sent to the server.
The context fields of parent records are now automatically added to the on_change calls. This ensures that records are instantiated with the proper context.
The sequence definition has been simplified. The type is now directly stored on the sequence with a Many2One and the next value is obtained using an instance method.
A field’s dependencies are now also loaded when form is displayed.
When recalling a deposit it is now possible to specify a maximum amount to be recalled.
It is now possible to use a URL as the source of an icon.
The code has been updated to iterate over the database cursor when possible instead of using fetchall.
For the back-ends that support it, Char and Text fields can be searched with full text and similarity. A new internal FullText field type is available which helps to store and index FULLTEXT columns.
The distance between parties has been moved from the party_relationship to the party module. This was done so that third parties can use, by default, the minimal distance field without depending on the party_relationship module.
A new widget document has been added for the Binary field. It relies on the tag in the browser and on the Evince library. It can display, at the very least, images and PDF documents.
We added an AvatarMixin which adds support for avatars on any model. The avatar is then publicly available through a URL. The URL accept a size parameter that resizes the image on the fly. Each resized image is stored in a cache.
2 posts - 2 participants
Read full topic
[Less]
|
Posted
over 3 years
ago
by
ced
Pink Flowers On Trees1280×853 486 KB
A lot of development has finally landed, laying a solid foundation for the upcoming 6.0 release.
Changes for the User
We’ve improved the default ordering for shipments and production orders. It is
... [More]
now based on either the effective date or the planned date.
The shipping labels can now be stored in the filestore. Doing this can help to reduce the size of the database.
The price list formula can explicitly use the list price of a product. This is useful for some regulated business where the purchase price is fixed based on the public price.
The report that shows the quantities of a product by warehouse can now display it for multiple products. We also added a relate from assigned shipments and productions to show the quantities for all the products included in the document.
It is now possible to modify the dimension of packages. By default, they are filled in with the value from the package type. The main use case is for pallets where the height is only known after it is filled in.
The import and export CSV dialog for the web client now supports drag and drop on the columns to reorder them.
Any stock moves that get cancelled are now automatically removed from the package they were linked to.
The income statement and balance sheet can now be printed.
When exporting tree structures as CSV data the first column is now indented.
The client now allows sending emails with any of the record’s existing attachments.
The stock packages now display the tracking URL for each carrier.
Changes to the shipment cost on shipments has been simplified. This has been done by adding an edit checkbox which helps avoid unexpected re-calculations of the cost when moves are changed.
We replaced the “Print General Journal” with a generic report on accounting moves. This provides more flexibility on what content is printed.
It is now possible to configure the party identifiers that are available.
We removed the unpractical tree structure from companies. The user’s “Main Company” has been replaced by a flat list.
It is now possible to define a supplier invoice line as a price correction to update the cost price of its product.
When the carrier cost is not fully covered by the shipment cost paid by the customer, the unsold part is added to the outgoing moves as a shipment cost.
The return purchases are now linked to the original purchase.
The calculated weight of a shipment parcel now also includes the weight of the package used.
The general ledger lines display now the cumulative balance starting at the balance of the account.
New Modules
The Purchase Price List Module allows price lists to be defined for suppliers.
The Stock Shipment Cost Module adds a shipment cost to outgoing moves. This cost is added to the product margin reports.
The Stock Quantity Issue Module helps to solve stock quantity issues.
The Product Cost Warehouse Module allows the cost price of products to be calculated separately for each warehouse.
The Stock Quantity Early Planning Module helps reduce stock levels by proposing earlier use of stock.
The Incoterm Module is used to manage Incoterms on sales, purchases and shipments.
The Autopilot Module stores all user inputs in a blockchain, automatically analyses and predicts the best next logical step in business (yes, AI with tensor flow) and finally act autonomous, e.g. purchase products and sell them, without human interaction.
The Avatar Module adds an avatar to each party.
Changes for the System Administrator
The groups can have now a parent from which they inherit their access permissions. This is useful, for example, when creating “Administration” groups which normally have all the rights from the standard group along with some additional rights.
We added a new command trytond-stat which displays the currently processed requests, tasks and jobs for each of the trytond processes on the host.
Changes for the Developer
We’ve added a method to post invoices by batch. It delegates the numbering to a deferred task. This can be used to reduce contention on the invoice numbering sequence.
We’ve added a generic test in the company module that ensures the company context is set on fields that target a company multivalue model.
The MPTT update is now only called for affected fields.
A new route decorator has been added to allow null as its origin. This is useful for web-extensions like Chronos as browsers now use this origin instead of the extension ID.
Model.__access__ is a new attribute which contains the names of a relation field for which the access rights must also be checked. This simplifies the definition of access rights for documents composed of several models like, for example, the invoice with lines and taxes.
The actions can now define whether they run on the selected records (as usual) or the listed records.
Also if the action is run on a tree structure then a path for each record is sent to the server.
The context fields of parent records are now automatically added to the on_change calls. This ensures that records are instantiated with the proper context.
The sequence definition has been simplified. The type is now directly stored on the sequence with a Many2One and the next value is obtained using an instance method.
A field’s dependencies are now also loaded when form is displayed.
When recalling a deposit it is now possible to specify a maximum amount to be recalled.
It is now possible to use a URL as the source of an icon.
The code has been updated to iterate over the database cursor when possible instead of using fetchall.
For the back-ends that support it, Char and Text fields can be searched with full text and similarity. A new internal FullText field type is available which helps to store and index FULLTEXT columns.
The distance between parties has been moved from the party_relationship to the party module. This was done so that third parties can use, by default, the minimal distance field without depending on the party_relationship module.
A new widget document has been added for the Binary field. It relies on the tag in the browser and on the Evince library. It can display, at the very least, images and PDF documents.
We added an AvatarMixin which adds support for avatars on any model. The avatar is then publicly available through a URL. The URL accept a size parameter that resizes the image on the fly. Each resized image is stored in a cache.
4 posts - 3 participants
Read full topic
[Less]
|
Posted
over 3 years
ago
by
ced
Pink Flowers On Trees1280×853 486 KB
A lot of development has finally landed, laying a solid foundation for the upcoming 6.0 release.
Changes for the User
We’ve improved the default ordering for shipments and production orders. It is
... [More]
now based on either the effective date or the planned date.
The shipping labels can now be stored in the filestore. Doing this can help to reduce the size of the database.
The price list formula can explicitly use the list price of a product. This is useful for some regulated business where the purchase price is fixed based on the public price.
The report that shows the quantities of a product by warehouse can now display it for multiple products. We also added a relate from assigned shipments and productions to show the quantities for all the products included in the document.
It is now possible to modify the dimension of packages. By default, they are filled in with the value from the package type. The main use case is for pallets where the height is only known after it is filled in.
The import and export CSV dialog for the web client now supports drag and drop on the columns to reorder them.
Any stock moves that get cancelled are now automatically removed from the package they were linked to.
The income statement and balance sheet can now be printed.
When exporting tree structures as CSV data the first column is now indented.
The client now allows sending emails with any of the record’s existing attachments.
The stock packages now display the tracking URL for each carrier.
Changes to the shipment cost on shipments has been simplified. This has been done by adding an edit checkbox which helps avoid unexpected re-calculations of the cost when moves are changed.
We replaced the “Print General Journal” with a generic report on accounting moves. This provides more flexibility on what content is printed.
It is now possible to configure the party identifiers that are available.
We removed the unpractical tree structure from companies. The user’s “Main Company” has been replaced by a flat list.
It is now possible to define a supplier invoice line as a price correction to update the cost price of its product.
When the carrier cost is not fully covered by the shipment cost paid by the customer, the unsold part is added to the outgoing moves as a shipment cost.
The return purchases are now linked to the original purchase.
The calculated weight of a shipment parcel now also includes the weight of the package used.
The general ledger lines display now the cumulative balance starting at the balance of the account.
New Modules
The Purchase Price List Module allows price lists to be defined for suppliers.
The Stock Shipment Cost Module adds a shipment cost to outgoing moves. This cost is added to the product margin reports.
The Stock Quantity Issue Module helps to solve stock quantity issues.
The Product Cost Warehouse Module allows the cost price of products to be calculated separately for each warehouse.
The Stock Quantity Early Planning Module helps reduce stock levels by proposing earlier use of stock.
The Incoterm Module is used to manage Incoterms on sales, purchases and shipments.
The Autopilot Module stores all user inputs in a blockchain, automatically analyses and predicts the best next logical step in business (yes, AI with tensor flow) and finally act autonomous, e.g. purchase products and sell them, without human interaction.
The Avatar Module adds an avatar to each party.
Changes for the System Administrator
The groups can have now a parent from which they inherit their access permissions. This is useful, for example, when creating “Administration” groups which normally have all the rights from the standard group along with some additional rights.
We added a new command trytond-stat which displays the currently processed requests, tasks and jobs for each of the trytond processes on the host.
Changes for the Developer
We’ve added a method to post invoices by batch. It delegates the numbering to a deferred task. This can be used to reduce contention on the invoice numbering sequence.
We’ve added a generic test in the company module that ensures the company context is set on fields that target a company multivalue model.
The MPTT update is now only called for affected fields.
A new route decorator has been added to allow null as its origin. This is useful for web-extensions like Chronos as browsers now use this origin instead of the extension ID.
Model.__access__ is a new attribute which contains the names of a relation field for which the access rights must also be checked. This simplifies the definition of access rights for documents composed of several models like, for example, the invoice with lines and taxes.
The actions can now define whether they run on the selected records (as usual) or the listed records.
Also if the action is run on a tree structure then a path for each record is sent to the server.
The context fields of parent records are now automatically added to the on_change calls. This ensures that records are instantiated with the proper context.
The sequence definition has been simplified. The type is now directly stored on the sequence with a Many2One and the next value is obtained using an instance method.
A field’s dependencies are now also loaded when form is displayed.
When recalling a deposit it is now possible to specify a maximum amount to be recalled.
It is now possible to use a URL as the source of an icon.
The code has been updated to iterate over the database cursor when possible instead of using fetchall.
For the back-ends that support it, Char and Text fields can be searched with full text and similarity. A new internal FullText field type is available which helps to store and index FULLTEXT columns.
The distance between parties has been moved from the party_relationship to the party module. This was done so that third parties can use, by default, the minimal distance field without depending on the party_relationship module.
A new widget document has been added for the Binary field. It relies on the tag in the browser and on the Evince library. It can display, at the very least, images and PDF documents.
We added an AvatarMixin which adds support for avatars on any model. The avatar is then publicly available through a URL. The URL accept a size parameter that resizes the image on the fly. Each resized image is stored in a cache.
3 posts - 3 participants
Read full topic
[Less]
|
Posted
over 3 years
ago
by
pokoli
The Foundation has decided to publish a budget for 2021. This is an exercise in transparency so everyone can see our plans. Note that the income of the foundation comes only from donations so we cannot guarantee that all the things
... [More]
will get done. We have ordered the points by priority. Each point will be done once we get a total amount of donations.
Budget points
1700€: Infrastructure maintenance (rental and services to maintain our servers).
2300€: Create a public overview of how all the current infrastructure is setup.
3100€: Buy a new Mac mini to support Apple Silicon
4300€: Improve the contents of the current website by writing more details about supported features and including more sucess stories.
7300€: Build a new code review system
The amounts do not represent the amount needed for each individual point but the total amount of donations we need to be able to work on it. The cost of each point can be calculated by subtracting its amount from the amount of the previous point.
If you want to help make these things happen please consider donating to the foundation. Any amount will be appreciated. We would also like to thank everyone who has already donated to the foundation. Last but not least, we would like to receive enough in donations to buy the Mac mini before the next Tryton release, scheduled for 3rd of May, so we can include support for new Apple devices.
About maintenance and infrastructure cost
If you have been following Tryton for some time you will have noticed that the maintenance budget has increased this year from 500€ to 1700€. The main reason for this is that we have agreed to also include all the services related to maintenance in this cost. Until now B2CK have been providing these services for free, but as it is a time consuming task, and sometimes needs to be done in a hurry when something isn’t working properly, we agreed that it should be paid.
During this year, we are also relying on B2CK to provide the maintenance services, but our plan is to allow other companies to also offer these services. This will allow us to choose which one is best. For this reason we added the second point on the budget, which will allow everyone to have an overview of what needs to be maintained.
2 posts - 1 participant
Read full topic
[Less]
|
Posted
over 3 years
ago
by
pokoli
Jar filled with money labeled money640×560 120 KB
The Foundation has decided to publish a budget for 2021. This is an exercise in transparency so everyone can see our plans. Note that the income of the foundation comes only from
... [More]
donations so we cannot guarantee that all the things will get done. We have ordered the points by priority. Each point will be done once we get a total amount of donations.
Budget points
1700€: Infrastructure maintenance (rental and services to maintain our servers).
2300€: Create a public overview of how all the current infrastructure is setup.
3100€: Buy a new Mac mini to support Apple Silicon
4300€: Improve the contents of the current website by writing more details about supported features and including more sucess stories.
7300€: Build a new code review system
The amounts do not represent the amount needed for each individual point but the total amount of donations we need to be able to work on it. The cost of each point can be calculated by subtracting its amount from the amount of the previous point.
If you want to help make these things happen please consider donating to the foundation. Any amount will be appreciated. We would also like to thank everyone who has already donated to the foundation. Last but not least, we would like to receive enough in donations to buy the Mac mini before the next Tryton release, scheduled for 3rd of May, so we can include support for new Apple devices.
About maintenance and infrastructure cost
If you have been following Tryton for some time you will have noticed that the maintenance budget has increased this year from 500€ to 1700€. The main reason for this is that we have agreed to also include all the services related to maintenance in this cost. Until now B2CK have been providing these services for free, but as it is a time consuming task, and sometimes needs to be done in a hurry when something isn’t working properly, we agreed that it should be paid.
During this year, we are also relying on B2CK to provide the maintenance services, but our plan is to allow other companies to also offer these services. This will allow us to choose which one is best. For this reason we added the second point on the budget, which will allow everyone to have an overview of what needs to be maintained.
2 posts - 1 participant
Read full topic
[Less]
|