New Tryton release 4.0

Publicat: 2016-05-02 18:00:00+00:00 release

We are proud to announce the 4.0 release of Tryton.

This is the first release of Tryton that adds support for Python 3. The server and most of the modules support it. The missing modules are mainly the ones using the WebDAV and LDAP. The client will be ported once GTK-3 support is added. The release sees also a large refactoring of the protocol stack which was previously based on the SimpleHTTPServer of Python. Now it uses a WSGI application running on the Werkzeug server by default. Any WSGI server can be used to run Tryton, this removes the design constraint of single threaded process and opens the way for using workers. All modules have been reviewed to enforce the naming convention about the document identification. The name "code" is used for all referential documents like parties, product. The name "number" is used for the internal identification of all operational documents like sales, purchases, invoices etc. And finally, the name "reference" is used for identifications from external systems like the sale order number of the supplier of your purchase. Two new languages are now available on default installation the Lao and the Simplified Chinese.

As Richard Stallman reminded to us, the migration from previous series is fully supported.

Major changes for the user

  • The new note functionality handles the management system for general textual notes on any arbitrary model in Tryton. On click it opens a notes dialog, where the user can maintain notes. The read state of every note is managed per user. Like the attachments, the icon in the tool-bar visualizes when there are notes on a model.

    Tryton note Sao note
  • The CSV import and export has been highly reworked for a better experience. The import dialog now supports drag and drop to order the selected columns like the CSV export wizard. Both wizards are able to use any of the encodings available in Python. It is now possible to configure the CSV parameters for the export result.

    Export CSV
  • The charts provided by the graph view have been improved. Now they use softer colors, thinner lines and smaller arcs. On the background, dash style is used instead normal line for axis representation. A smart transparency value is applied for filling lines to always show through it.

  • A new button in the scheduler allows running a job once, useful to run jobs on demand or to test new settings.


  • The report design of the General Ledger, Trial Balance and Aged Balance has been re-worked. They are now based on the new dynamic views. This provides a performance burst and allows to filter the records more precisely. In addition to the previous printable output, they also gain the CSV export which is useful to perform specific operations in a spreadsheet application.

    General Ledger
  • A date field is added to the Aged Balance, to modify the date on which the calculations are based. With this feature, it is possible to generate reports based on a past date as if it would have been generated by ignoring reconciliation that happened after that date.

  • The functionality of Third Party Balance is merged into the Aged Balance. We found that the Third Party Balance computed the same data as the Aged Balance with the type Customers and Suppliers.


  • The Name field on party is no longer required for input. This solves a long standing request to be able to maintain parties where the name is not known on creation.


  • A configuration form is added to the product module with these options:

    • The default value for Use Category fields.
    • The default value for the Cost Price Method.
  • It was not always easy to explain the design of products with the templates, especially when it was not really relevant for the current business. So we have redesigned both views to be very similar and indeed they use the exact same design. The fields, that do not exist on the product, are automatically replaced by the value of the template.

    Product Variant
  • The field Category is replaced by a Categories field, to support the ability of adding many categories to one product. This is very useful for example to create multi-axis categories for web shop.


This new module defines the reference basis to create different kinds of classifications for products. It adds a generic field Classification on the product form.

Classification Taxonomic

This new module introduces the taxonomic classification of products as an example using the new Classification module. It includes classifications by Taxon and by Cultivar.


  • The field Delivery Time on product supplier is replaced by Lead Time which increases the precision from days to microseconds.
  • For each warehouse, it is now possible to define the location where the goods are picked in case of supplier return. If this location is not defined, the default storage will be used.


The purchase request functionalities have been decoupled from stock_supply and sale_supply modules into a new separate module named purchase_request. This is to prepare future work that will use only purchase requests without the need of other stock_supply features.

  • A new state Exception is added to the purchase request. This is useful to manage cancelled purchase when linked to drop shipments.


  • The field Delivery Date on model Sale Line is renamed into Shipping Date to avoid any confusion.
  • The field Delivery Time on product form is replaced by Lead Time which increases the precision from days to microseconds.
  • The custom history management on Sale Opportunity is replaced by the general revision functionality of the client. This increases its precision and works automatically for any new fields.


  • The address of the destination warehouse of the Internal Shipment is now displayed on the report.
  • Now it is possible to manually do a move with the new Do button. This is useful for example to get correct accounting when you have long living productions.
  • Supplier return shipments now have a supplier and a delivery address fields. Those fields will be automatically populated for shipments created from purchase.



This new module defines the routings, steps and operations for productions. A routing is a list of ordered steps and each step is defined by a generic operation.


This new module completes the routing module by creating the Works of a production based on its routing. A Work is linked to a Work Center which defines the cost using one of these two methods: Per Cycle or Per Hour. The cost of a work is computed using the Cycles created on it and later added to the global cost of the production.

Major changes for the developer

  • The domains are now accepting a new parent_of operator which recursively returns all the records that are parents of the searched records. This is the opposite of the existing child_of operator.
  • It is now possible to inherit from a view that already inherits another view from a different model.
  • The new where domain operator is useful when you need to search on a xxx2Many with a full sub-domain instead of separated clauses. It has the advantage to avoid to fetch an intermediary result by using a sub-query.
  • The Transaction design has been reworked to be closer to the design defined by the PEP-0249. This new design allows to support nested transactions. It also supports multiple cursors for the same transaction, reducing the memory consumption when iterating over large result sets.
  • A new context model is introduced, to save the trouble of writing simple wizards for configuring reports by setting some values in the context. With this new design, the developer can define a model for which each field will define the values of the context. The form of this model will be displayed on top of the view and the view will be automatically reloaded when the context is changed.
  • Now its possible to have reports in plain, XML, HTML and XHTML reports. With this change the report infrastructure can be reused for example to design email templates.
  • This release adds support for the Two-Phase commit protocol which allows to coordinate distributed transactions. By default, Tryton uses a single transaction from the database back-end. But when Tryton has to communicate with other systems, it is good to use TPC to keep data integrity. The implementation follows the API of the Zope Data Manager. The data managers of the Zope community can be used within Tryton.
  • Thanks to the two-phase commit protocol now mails can be sent when the transaction is committed, so if something goes wrong and the transaction is rolled back no mails are sent.


  • The reconciliation process now stores the date of the reconciliation. By default, it is the highest date of the reconciled lines. This allows to filter reconciled lines based on this date, for example to generate a report with the unreconciled lines before a specific date.

  • The Credit Notes have been merged into the Invoices. They are now standard invoices with negative quantities. This allows to easily group both types into a single document. The numbering can still be differentiated depending on the sign of the lines.

    Note: with the merge of Invoice and Credit Note, the signs of the taxes for Credit Note must be inverted manually.


  • Uom.round is now an instance method which makes more sense according to its signature.


  • The Purchase has received a done transition like the Sale to allow extensions to perform some action when this transition is performed.
  • It is now possible to search Purchase Requests using the Purchase field.


WebDAV has been decoupled from trytond into a separate module which improves the modularity of the system. Indeed many setups do not use the WebDAV so it was a little bit bloated to have it into the base. Also dependencies of this module prevented to add the support of Python 3 to trytond. So, for now, the WebDAV protocol is managed by a separated process but it will probably return in the future into the main process.

I Jornadas Tryton a Barcelona - Convocatòria de xerrades

Publicat: 2016-03-24 00:51:07+00:00 jornadas

Com ja vam anunciar a la llista de correu en castellà, diverses empreses espanyoles proveïdores de serveis al voltant de Tryton estem organitzant les I Jornadas Tryton a Barcelona, que tindrà lloc els dies 23 i 24 de maig en un lloc excel·lent, el Mobile World Centre.

El contingut de les jornades es dividirà en l'orientat a usuaris el dilluns 23 i l'orientat a desenvolupadors el dimarts 24.

La subscripció ja està oberta a Eventbrite.

Però l'esdeveniment no serà un èxit sense la teva participació, així que és el moment de recollir les teves propostes per fer una presentació a les jornades, que seran en castellà.

Els temes poden estar orientats a usuaris o desenvolupadors i poden incloure, entre d'altres:

No dubtis en enviar-nos la teva proposta. Estem desitjant aprendre del que saps i de com Tryton està canviant les empreses del teu voltant.

Simplement envia'ns un correu a abans del 17 d'abril amb una breu explicació sobre el contingut de la xerrada.

Desconferència Tryton 2016 - Crida per a propostes de seus

Publicat: 2016-03-23 14:05:31+00:00 TUL

Desprès de l'excel·lent darrera edició de la Desconferència de Tryton a Buenos Aires, la Fundació Tryton ha començat a pensar en la desconferència d'aquest any, que tindrà lloc just desprès del llançament de la versió 4.2 prevista a la tardor.

Si estàs interessat com a persona o organització per fer d'amfitrió de la TUx 2016 (la nostra sisena desconferència!) no dubtis a enviar la teva sol·licitud a abans del 30 d'abril.

Quina ciutat seguirà a Liège, Barcelona, Leipzig i Buenos Aires?

Vídeos de la Tryton Unconference 2015

Publicat: 2016-01-01 09:00:00+00:00 TUBA video

Els vídeos gravats durant la darrera Tryton Unconference 2015 estan disponibles.

Les presentacions també es poden descarregar.

Publicació seguretat per issue5167

Publicat: 2015-12-17 07:00:00+00:00 release security


Una vulnerabilitat en trytond ha estat trobada per Cédric Krier, que podria permetre a un usuari maliciós autenticat escriure en camps en els que no tingui accés (veure issue5167).


Qualsevol usuari autenticat pot escriure en camps en els que no tingui accés. Els altres permisos d'accés es verifiquen correctament.


No existeix cap alternativa.


Tots els usuaris han d'actualitzar trytond a l'última versió.

Versions afectades: <=3.8.0, <=3.6.4, <=3.4.7 and <=3.2.9

Versions no afectades: >=3.8.1, >=3.6.5, >=3.4.8 and >=3.2.10


Qualsevol incidència de seguretat ha de ser reportada al bug-tracker amb el tipus security.

Nova versió 3.8 de Tryton

Publicat: 2015-11-02 18:00:00+00:00 release

Estem contents d'anunciar la publicació de la versió 3.8 de Tryton.

Per primera vegada conté sao, el nou client web de Tryton. És el resultat de la campanya IndieGoGo . S'ha desenvolupat principalment usant jQuery i Bootstrap i el seu disseny és adaptatiu. Es requereix un navegador actual compatible amb HTML5. Per utilitzar-lo no cal cap modificació en el costat del servidor, cada mòdul treballa tal qual amb sao igual que ho fa amb el client GTK. Està disponible una demostració a usant demo_es/demo com a usuari/contrasenya d'inici de sessió. Això comporta que el nombre de clients compatibles per Tryton ja siguin tres.

S'ha treballat molt per millorar l'accessibilitat dels clients web i GTK. Per al client GTK s'ha seguit la Guia d'accessibilitat GNOME per desenvolupadors tant com ha estat possible i per al client web s'ha seguit la Iniciativa d'accessibilitat web del W3C. Podeu seguir els avenços en aquest tema en el issue3459.

I per descomptat, aquesta versió conté moltes correccions d'errors i millores de rendiment.

Com sempre, la migració de les versions anteriors està totalment suportada

Les següents captures de pantalla es basen en sao però les mateixes característiques existeixen també en el client GTK.

Aquesta és una comparació de la visualització del client sao front el client GTK:

Venda amb sao Venda amb GTK

Canvis importants per a l'usuari

  • Ara el client és capaç de generar missatges d'error significatius per tot tipus de validació. Aquests missatges d'error utilitzen la mateixa sintaxi que el filtre de cerca.

    Missatge d'error
  • Per a una millor accessibilitat s'ha substituït el color de fons personalitzat per etiquetes en 'negreta' per als camps requerits i per etiquetes en 'cursiva' per als camps editables. Pel mateix motiu, el color de les files s'ha eliminat i pot ser reemplaçat per icones.

    Etiquetes en negreta i cursiva
  • S'ha afegit al client una nova opció per tabulació ràpida. Si s'activa, es salten els camps de només lectura en navegar amb el tabulador. Aquest era el comportament predeterminat anterior, que havia de ser opcional per permetre als usuaris amb discapacitats desplaçar-se pels camps de només lectura per a la seva lectura.

  • Ara la funció d'exportació només funciona amb els registres seleccionats però permet exportar una estructura d'arbre.


  • S'ha afegit un nou informe que mostra els imports d'un diari d'efectiu en un període. Això és útil per comprovar el tancament de la caixa.

  • La comptabilitat francesa genera la FEC (Fichier des Écritures Comptables).

  • L'assistent que genera els pagaments permet indicar una data en lloc de la per defecte que és avui.

  • Els comptes d'ingressos i despeses predeterminats es poden configurar des de la configuració de comptabilitat.

    Configuració de comptes
  • La data dels extractes es pot corregir després de la seva comptabilització.


  • Ara l'idioma del tercer depèn de l'empresa.

  • Una llista extensible d'identificadors reemplaça l'únic camp CIF/NIF.

    Identificadors del tercer


El càlcul de l'arbre del projecte ha estat enormement millorat mitjançant l'agrupació del càlcul i l'ús de millors consultes.

  • Ara hi ha un camp de progrés en els projectes i tasques i, per descomptat, un total que és la suma dels fills.

    El progrés del projecte
  • S'ha afegit un nou mètode per generar la factura del projecte que es basa en el camp de progrés.

  • Ara és possible vincular línies de compra a un projecte que s'afegiran al camp de cost.

  • Ara els treballs dels fulls de treball tenen un camp total d'hores que calcula la durada del treball i els seus fills.

    Hores del treball


  • La data de lliurament en la línia de venda mostra la data efectiva un cop que els béns són lliurats.

  • Ara és possible enviar la venda a un altre tercer diferent de l'indicat en la factura. Això és un complement a l'enviament directe que permet que Tryton suporti totalment els enviaments directes.

    Tercer d'enviament en la venda
  • L'enviament directe ara utilitza dos moviments diferents utilitzant una ubicació temporal.


  • La data de lliurament en la línia de compra mostra la data efectiva un cop que els béns són rebuts.
  • Es poden cancel·lar moviments d'estoc des de la vista de la compra sense haver de crear un albarà de proveïdor i cancel·lar-lo.


  • És possible sol·licitar a Tryton tornar a calcular el preu de cost mitjà d'un producte mitjançant la reproducció de tots els moviments des del principi.

  • És possible configurar una altra ubicació de recollida diferent de la ubicació d'emmagatzematge per als magatzems.

    Ubicació de recollida del magatzem
  • És possible establir un proveïment intern per ubicació que s'utilitza per a les regles d'estoc internes per defecte per a tots els productes.

Cost de recepció

Aquests nous mòduls permeten guardar el cost de recepció en els enviaments dels proveïdors després de la recepció. Es crea un nou document per vincular línies de factura de proveïdors amb enviaments i definir el mètode que s'utilitzarà per a l'assignació de costos. Actualment hi ha dos mètodes disponibles: Per Valor i Per pes. I gràcies a l'assistent Actualització preu de cost, el preu de cost dels productes pot ser recalculat tenint en compte el cost de recepció.

Cost de recepció


Aquest nou mòdul permet definir el Codi de Tarifa del Sistema harmonitzat i la seva taxa de duana sobre els productes. El tipus de taxa s'emmagatzema per a un país durant un període i estan disponibles dos tipus de càlcul: un import fix o un import per quantitat.

Reclamació de venda

Aquest nou mòdul serveix per gestionar les reclamacions dels clients sobre les vendes o factures. Permet definir les accions per resoldre les queixes, com retornar la venda o abonar la factura. Permet establir un flux de treball per a l'aprovació de les accions de reclamació mitjançant els permisos d'accés.

Promoció de venda

Ara és possible aplicar promocions basades en fórmules sobre les vendes seleccionades mitjançant certs criteris. La promoció canvia el preu unitari de la línia quan la venda canvia a pressupost (i es restableix si es torna a esborrany) però només si la promoció és a favor del client. Els criteris disponibles són: la tarifa, un període, la quantitat i els productes.

Quantitat d'estoc a la venda

Aquest nou mòdul comprova en vendes en estat pressupost si hi ha prou quantitat de productes en el magatzem. També comprova que la nova venda no perjudiqui vendes anteriors que seran enviades més tard.

Canvis importants per al desenvolupador

  • El camp de barra de progrés funciona amb un real entre 0 i 1 per facilitar el seu ús com a percentatge.
  • El camp de text enriquit ara utilitza un subconjunt d'HTML per permetre la seva implementació a sao.
  • El camp Many2One té una nova opció target_search que defineix el tipus de consulta a utilitzar per a la cerca desreferenciada. Les opcions són subquery i la nova join (que és el valor per defecte). El mètode join genera una consulta més ràpida en la majoria dels casos.
  • Les restriccions de SQL utilitzen una sintaxi similar a python-sql. Això dóna més flexibilitat per implementar el backend per altres bases de dades.
  • Tractar de crear/escriure/eliminar en un Model basat en una` table_query` genera una excepció en lloc d'un error silenciós.
  • El nom de la taula d'un ModelSQL es pot reemplaçar amb un arxiu de configuració. Això permet evitar les limitacions de certes bases de dades respecte a la longitud dels noms de les taules.
  • S'ha afegit als assistents el nou StateReport per simplificar el codi dels assistents que executen un informe.
  • S'ha eliminat l'estil dels informes, l'experiència mostra que aquesta funció no era utilitzada.
  • El backend de PostgreSQL ara gestiona l' esquema. Això permet que diferents instàncies de Tryton comparteixin la mateixa base de dades.
  • La clau forana genèrica per a crear/modificar l'usuari en tots els ModelSQL ha estat reemplaçada per una regla que impedeix eliminar usuaris. Això millora enormement l'escalabilitat en algunes circumstàncies.
  • El camp Property ara suporta valors float i integer.
  • Un subdirectori locale/override permet als mòduls sobreescriure traduccions d'altres mòduls.


  • Els plans comptables ja no són traduïbles. En lloc d'això s'ha de proporcionar plans comptables traduïts a través d'una plantilla usant XSLT.
  • La factura no calcula un preu unitat per línia. Per tenir aquesta funció s'ha d'utilitzar els mòduls de compres o vendes.
  • Alguns camps de la factura com les Notes i l' Origen són editables després de comptabilitzar la factura.


  • La conversió entre unitats ja no genera errors silenciosos sinó que apareix un error explícit.
  • S'ha afegit la propietat volum als productes.


  • L'estructura d'arbre del projecte i del full de treball s'han separat, cada objecte té la seva pròpia estructura d'arbre.
  • La tarifa utilitza els mateixos decimals que el producte.
  • El preu de cost de l'empleat s'emmagatzema a la línia del full de treball segons la data de la línia. Això permet sumar els costos del full de treball més ràpid.


  • Ara l'estat de la sol·licitud de compra permet fer cerques.
  • Les sol·licituds de compra es generen fins i tot si la quantitat arrodonida és zero per permetre a l'usuari comprar més.


  • Moltes restriccions innecessàries en l'edició dels camps dels moviments han estat eliminades.
  • La quantitat esperada de les línies d'inventari es calculen sempre, fins i tot si s'afegeixen manualment.
  • És possible crear moviments en estat En procés i Esborrany utilitzant ubicacions de tipus Vista. Aquestes ubicacions hauran de ser canviades per poder finalitzar el moviment.
  • L'inventari utilitza la funció d'agrupació per crear els moviments. Això permet suportar fàcilment el lot (o qualsevol altre camp extra).

Tryton Unconference Buenos Aires 2015

Publicat: 2015-08-24 12:00:00+00:00 TUBA

Aquest any l'edició anual de la Tryton Unconference tindrà lloc a Buenos Aires des del 13 al 17 de novembre al Hotel Bauen i a la gcoop.

Aquesta serà la cinquena edició i la primera fora d'Europa. Usuaris, desenvolupadors i gent interessada tindrà l'oportunitat de descobrir o parlar de Tryton.

Les propostes i planificació de ponències es gestiona a Lanyrd.

La tercera reunió dels Patrons de la Fundació tindrà lloc el dissabte 14 a les 18.00.

El 15, 16 y 17 està previst un Sprint a la gcoop.

Les inscripcions estan obertes a TUBA 2015.

Si vols sol·licitar una xerrada sobre un tema específic, pots enviar la proposta a la llista de correu de Tryton. Si tens alguna pregunta sobre l'organització, posa't en contacte amb la fundació a

I no t'oblidis de fer córrer la veu! #TUBA2015

Tryton Unconference Buenos Aires 2015 Sprint de codi ampliat

Publicat: 2015-07-08 12:00:00+00:00 TUBA

Us informem que el Sprint de codi de la Tryton Unconference 2015 ha estat ampliat a tres dies. Tindrà lloc des del 15 al 17 de novembre.

Si tens alguna pregunta sobre l'organització, posa't en contacte amb la fundació a

Lanyrd #TUBA2015

Tryton Unconference Buenos Aires 2015

Publicat: 2015-06-11 12:00:00+00:00 TUBA

La cinquena edició anual de la Tryton Unconference tindrà lloc a Buenos Aires el 13, 14 i 15 de novembre.

Aquesta és l'oportunitat de reunir membres de la comunitat (usuaris i desenvolupadors), persones interessades, empresaris i professionals per parlar sobre el present i el futur de Tryton, i descobrir la ciutat de Buenos Aires.

Si tens alguna pregunta sobre l'organització, posa't en contacte amb la fundació a

Reserva't aquestes dates ... aviat hi haurà més informació sobre l'esdeveniment. #TUBA2015

Nova versió 3.6 de Tryton

Publicat: 2015-04-22 18:00:00+00:00 release

Estem contents d'anunciar la publicació de la versió 3.6 de Tryton.

Aquesta versió incorpora el suport oficial de PyPy que és una implementació alternativa de Python centrada en la velocitat i la eficiència.

Com sempre, la migració de les versions anteriors està totalment suportada a excepció del mòdul ldap_connection que ha estat eliminat.

Canvis principals per a l'usuari

  • Un esquema de colors nou per als gràfics que reemplaça l'única variació de brillantor que hi havia. Ara l'esquema de colors també canvia el matís de cada color mitjançant l'angle d'or (que assegura que un color no sigui seleccionat dues vegades).

    Esquema de colors per als gràfics
  • El camp diccionari rep suggeriments a partir de la cerca del text de forma similar a altres camps.

  • Els camps data i hora han estat reescrits completament per poder ser més flexibles amb el format a teclejar. Però també són més pràctics si s'usen amb el ratolí gràcies a un calendari emergent real i a una llista desplegable per a l'hora.

    Camp data Camp data i hora
  • Les columnes de la vista llistat que tenen sempre el mateix valor s'oculten automàticament degut a que no proporcionen informació. Per exemple, la llista de factures comptabilitzades no mostren la columna estat perquè, per definició, totes elles estan comptabilitzades.


  • Ara es pot afegir una descripció a l'assentament de cancel·lació des de l'assistent.

  • En el llibre major apareix una nova opció per mostrar només el saldo.

  • Es poden configurar els impostos per modificar el preu base per als següents impostos de la llista.

  • Ara es poden definir plantilles per a assentaments habituals. Quan s'executa una plantilla, l'usuari se li demanarà que introdueixi algunes dades com un import o un tercer, per poder generar un assentament amb aquestes dades.

    Plantilla d'assentament
  • S'ha afegit un informe imprimible per a l'amortització d'actius.

  • Els plans comptables per a França i Bèlgica han estat actualitzats. I el de Bèlgica ha estat traduït a l'holandès.

  • Es disposa d'un assistent de prova per veure els resultats generats per un termini de pagament. Com que els terminis de pagament són molt flexibles perquè permeten aplicar diversos increments de temps (en lloc d'un), no sempre és fàcil preveure el comportament.

    Prova de termini de pagament
  • S'ha estès la cobertura de SEPA amb els sabors pain.001.003.03 i 008.003.02 que s'utilitzen a Alemanya. I també és possible regenerar un missatge SEPA en cas de configuració errònia en la primera generació.

  • Els extractes creen assentaments agrupats per número, data i tercer per defecte. Així, quan una línia d'extracte es divideix per conciliar factures, només es crea un assentament i l'origen d'aquest assentament és el grup de les línies d'extracte.

  • Les regles d'impostos ara poden dependre del país d'origen i de destí gràcies al nou mòdul account_tax_rule_country.

  • S'ha afegit el format SEPA personalitzat (no estàndard) CFONB amb el nou mòdul account_payment_sepa_cfonb.

  • El nou mòdul account_deposit afegeix un nou tipus de compte Bestreta. Permet facturar bestretes i recuperar aquest import més tard a la següent factura.


  • Ara es pot definir una tarifa amb impostos inclosos. Tryton calcularà el preu sense impostos segons els impostos aplicats.


  • S'ha afegit un nou estat Guanyada a les oportunitats de venda. L'oportunitat canvia a aquest estat automàticament quan una de les seves vendes es confirma i totes les altres estan també confirmades o cancel·lades.
  • L'import de les oportunitats s'actualitza segons l'import de les vendes relacionades. Això permet obtenir informes més precisos.
  • El càlcul del cost d'enviament només es calcula en passar a pressupost. Això redueix la càrrega en el client quan la venda és força llarga ja que el cost es calcularà una sola vegada en lloc de cada vegada que una línia sigui afegida.
  • El mòdul nou sale_extra permet afegir línies extres a les vendes segons diversos criteris. La línia extra pot ser tant un producte gratuït com un cost de servei addicional.


  • Ara hi ha una relació entre un producte i les seves regles de proveïment.
  • La creació de sol·licituds de compra avisa també de produccions anteriors igual com ho feia d'albarans d'entrada anteriors.
  • Les informacions de vida útil i data de caducitat estan incloses en el nou mòdul stock_lot_sled. Quan un lot caduca, no s'utilitza més per calcular la quantitat prevista d'estoc.


Aquesta nova àrea es gestiona amb un conjunt de nous mòduls commission. Es creen comissions per a l'agent definit en una venda o factura utilitzant un pla de comissions. També permet definir agents principals en els productes als quals també caldrà pagar comissions.

Principals canvis per al desenvolupador

  • Ara es permet tenir diverses vegades el mateix camp en una vista llistat/arbre.
  • El camp datetime ha desaparegut de les vistes llistat/arbre, cal utilitzar en el seu lloc dues columnes, una amb el camp data i una altra amb el camp hora.
  • En aquesta versió apareix un nou camp TimeDelta per representar una durada. Reemplaça el camp float_time que té alguns problemes d'arrodoniment. Aquest nou camp ja s'usa en els mòduls timesheet i project.
  • Es pot configurar els camps One2Many per utilitzar un producte cartesià amb la selecció de diversos valors de camps Many2One o Reference.
  • S'afegeix el mètode restore_history_before a ModelSQL que es comporta com l'existent restore_history però restaurant els registres just abans d'una data-hora.
  • Els mètodes on_change han estat migrats per tenir un comportament més consistent amb el Active Record Pattern utilitzat a Tryton. En comptes de tornar un diccionari amb els valors a canviar, es canvia la instància directament. Això permet encadenar fàcilment els mètodes on_change o reutilitzar-los en altres mètodes reduint la duplicació de codi.
  • El mètode save de ModelStorage ara és un dualmethod que significa que pugui ser cridat com sempre com a mètode d'instància però també com a mètode de classe amb una llista de registres. D'aquesta manera, desar diversos registres alhora millora el rendiment ja que el mètode minimitzarà el nombre de peticions a la base de dades i validarà el resultat sencer.
  • El camp Dict rep el mètode translated per crear descriptors amb els que traduir els valors o les claus, de forma similar al mateix mètode en els camps Selection.
  • Ara es pot utilitzar la notació amb punt en el paràmetre ordre d'una cerca. El ORM generarà automàticament les agrupacions necessàries.
  • La API de la classe Report ha estat reescrita per millorar la personalització del motor d'informes. Ara els mètodes de format són més estrictes per prevenir fallades silencioses.
  • La funció safe_eval (que no és per res segura) ha estat completament eliminada. En els llocs on el codi avaluat era de totes maneres segur s'utilitza la funció estàndard eval. Per avaluar codi des de l'exterior ara s'utilitza una notació JSON. S'han desenvolupat algunes utilitats per facilitar la creació de JSON des de XML o a les vistes.
  • S'ha afegit una nova classe de botó que treballa sobre registres no desats. Són similars als on_change però són disparats per un clic a un botó en lloc d'un canvi en un camp.


  • S'ha afegit un mètode nou reverse_compute als impostos que permet calcular l'import base a partir de l'import amb impostos.
  • El signe de l'import en la segona moneda d'un apunt es força a que sigui el mateix que el signe del deure - haver.
  • La gestió de la comptabilitat analítica ha estat reescrita per utilitzar realment camps One2Many en lloc de pseudo-camps. Aquesta simplificació ha estat possible gràcies a les noves funcionalitats recents com l'ús d'un camp Reference en un One2Many.


  • Ara es guarda el número de CIF/NIF en la seva forma compacta.


  • Ara es pot definir el nombre de decimals per als càlculs interns de preus com un paràmetre de configuració price_decimal. Aquest paràmetre s'usa a tots els llocs per assegurar consistència entre tots els mòduls.


  • Les línies de compres/vendes suporten ambdós tipus de factura (factura i factura d'abonament) a cada línia quan es calcula la quantitat facturada.


  • S'ha afegit un nou estat staging en els moviments. Aquest estat no impacta en cap càlcul dels nivells d'estoc. S'utilitza per al proveïment en vendes, per crear moviments per avançat.
  • També es calculen els productes inactius per saber el nivell d'estoc.
  • S'ha millorat el càlcul dels moviments assignats per tenir en compte només els moviments assignats de sortida, no els d'entrada. Això comporta un nivell d'estoc menys optimista i per tant evita assignar moviments amb una entrada que estigui assignada però encara no finalitzada.
  • Les previsions són desactivades automàticament quan el seu període forma part del passat.