New Tryton release 4.0

Publicado: 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 en Barcelona - Convocatoria de charlas

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

Como ya anunciamos en la lista de correo en español, varias empresas españolas proveedoras de servicios alrededor de Tryton estamos organizando las I Jornadas Tryton en Barcelona, que tendrán lugar los días 23 y 24 de mayo en un lugar excelente, el Mobile World Centre.

El contenido de las jornadas se dividirá en el orientado a usuarios el lunes 23 y el orientado a desarrolladores el martes 24.

La suscripción ya está abierta en Eventbrite.

Pero el evento no será un éxito sin tu participación, así que es el momento de recoger tus propuestas para realizar una presentación en el evento, que será en castellano.

Los temas pueden estar orientados a usuarios o desarrolladores y pueden incluir, entre otros:

No dudes en mandarnos tu propuesta. Estamos deseando aprender de lo que sabes y como Tryton está cambiando las empresas de tu alrededor.

Simplemente mándanos un correo a antes del 17 de abril con una breve explicación acerca del contenido de la charla.

Desconferencia Tryton 2016 - Llamada para propuestas de sedes

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

Después de la excelente última edición de la desconferencia de Tryton en Buenos Aires, la Fundación Tryton ha empezado a pensar en la desconferencia de este año, que tendrá lugar justo después del lanzamiento de la versión 4.2 prevista en otoño.

Si estás interesado como persona u organización para hacer de anfitrión de la TUx 2016 (¡nuestra sexta desconferencia!) no dudes en enviar tu solicitud a antes del 30 de abril.

¿Qué ciudad seguirá a Liège, Barcelona, Leipzig y Buenos Aires?

Videos de la Tryton Unconference 2015

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

Los vídeos grabados durante la última Tryton Unconference 2015 están disponibles.

Las presentaciones también se pueden descargar.

Publicación seguridad para issue5167

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


Una vulnerabilidad en trytond ha sido encontrada por Cédric Krier, que podría permitir a un usuario malicioso autenticado escribir en campos en los cuales no tiene acceso (ver issue5167).


Cualquier usuario autenticado puede escribir en campos en los cuales no tiene acceso. Los otros permisos de acceso se verifican correctamente.


No existe ninguna alternativa.


Todos los usuarios deben actualizar trytond a la última versión.

Versiones afectadas: <=3.8.0, <=3.6.4, <=3.4.7 and <=3.2.9

Versiones no afectadas: >=3.8.1, >=3.6.5, >=3.4.8 and >=3.2.10


Cualquier incidencia de seguridad debe ser reportada en el bug-tracker con el tipo security.

Nueva versión 3.8 de Tryton

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

Estamos contentos de anunciar la publicación de la versión 3.8 de Tryton.

Por primera vez contiene sao, el nuevo cliente web de Tryton. Es el resultado de la campaña Indiegogo . Se ha desarrollado principalmente usando jQuery y Bootstrap y su diseño es adaptativo. Se requiere un navegador actual compatible con HTML5. Para utilizarlo no se requiere ninguna modificación en el lado del servidor, cada módulo trabaja tal cual con sao al igual que lo hace con el cliente GTK. Está disponible una demostración en usando demo_es/demo como usuario/contraseña de inicio de sesión. Esto conlleva a que el número de clientes compatibles para Tryton ya sean tres.

Se ha trabajado mucho para mejorar la accesibilidad de los clientes web y GTK. Para el cliente GTK se ha seguido la Guía de accesibilidad GNOME para desarrolladores tanto como ha sido posible y para el cliente web se ha seguido la Iniciativa de accesibilidad Web del W3C. Puede seguir los avances en este tema en el issue3459.

Y por supuesto, esta versión contiene muchas correcciones de errores y mejoras de rendimiento.

Como siempre, la migración de las versiones anteriores está totalmente soportada

Las siguientes capturas de pantalla se basan en sao pero las mismas características existen también en el cliente GTK.

Esta es una comparación de la visualización del cliente sao frente el cliente GTK:

Venta con sao Venta con GTK

Cambios importantes para el usuario

  • Ahora el cliente es capaz de generar mensajes de error significativos para todo tipo de validación. Estos mensajes de error utilizan la misma sintaxis que el filtro de búsqueda.

    Mensaje de error
  • Para una mejor accesibilidad se ha sustituido el color de fondo personalizado por etiquetas en 'negrita' para los campos requeridos y por etiquetas en 'cursiva' para los campos editables. Por el mismo motivo, el color de filas se ha eliminado y puede ser reemplazado por iconos.

    Etiquetas en negrita y cursiva
  • Se ha añadido al cliente una nueva opción para tabulación rápida. Si se activa, se salta los campos de sólo lectura al navegar con el tabulador. Este era el comportamiento predeterminado anterior, que debía ser opcional para permitir a los usuarios con discapacidades desplazarse por los campos de sólo lectura para su lectura.

  • Ahora la función de exportación sólo funciona con los registros seleccionados pero permite exportar una estructura de árbol.


  • Se ha añadido un nuevo informe que muestra los importes de un diario de efectivo en un período. Esto es útil para comprobar el cierre de la caja.

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

  • El asistente que genera los pagos permite indicar una fecha en lugar de la por defecto que es hoy.

  • Las cuentas de ingresos y gastos predeterminadas se pueden configurar desde la configuración de contabilidad.

    Configuración de cuentas
  • La fecha de los extractos se puede corregir después de su contabilización.


  • Ahora el idioma del tercero depende de la empresa.

  • Una lista extensible de identificadores reemplaza el único campo CIF/NIF.

    Identificadores del tercero


El cálculo del árbol del proyecto ha sido enormemente mejorado mediante la agrupación del cálculo y el uso de mejores consultas.

  • Ahora existe un campo de progreso en los proyectos y tareas y, por supuesto, un total que es la suma de los hijos.

    El progreso del proyecto
  • Se ha añadido un nuevo método para generar la factura del proyecto que se basa en el campo de progreso.

  • Ahora es posible vincular líneas de compra a un proyecto que se añadirán al campo de coste.

  • Ahora los trabajos de las hojas de trabajo tienen un campo total de horas que calcula la duración del trabajo y sus hijos.

    Horas del trabajo


  • La fecha de entrega en la línea de venta muestra la fecha efectiva una vez que los bienes son entregados.

  • Ahora es posible enviar la venta a otro tercero distinto del indicado en la factura. Esto es un complemento al envío directo que permite que Tryton soporte totalmente los envíos directos.

    Tercero de envío en la venta
  • El envío directo ahora utiliza dos movimientos distintos utilizando una ubicación temporal.


  • La fecha de entrega en la línea de compra muestra la fecha efectiva una vez que los bienes son recibidos.
  • Se pueden cancelar movimientos de stock desde la vista de la compra sin tener que crear un albarán de proveedor y cancelarlo.


  • Es posible solicitar a Tryton volver a calcular el precio de coste medio de un producto mediante la reproducción de todos los movimientos desde el principio.

  • Es posible configurar otra ubicación de recogida diferente de la ubicación de almacenamiento para los almacenes.

    Ubicación de recogida del almacén
  • Es posible establecer un aprovisionamiento interno por ubicación que se utiliza para las reglas de stock internas por defecto para todos los productos.

Coste de recepción

Estos nuevos módulos permiten guardar el coste de recepción en los envíos de los proveedores después de su recepción. Se crea un nuevo documento para vincular líneas de factura de proveedores con envíos y definir el método que se utilizará para la asignación de costes. Actualmente hay dos métodos disponibles: Por Valor y Por peso. Y gracias al asistente Actualización precio de coste, el precio de coste de los productos puede ser recalculado teniendo en cuenta el coste de recepción.

Coste de recepción


Este nuevo módulo permite definir el Código de Tarifa del Sistema Armonizado y su tasa de aduana sobre los productos. El tipo de tasa se almacena para un país durante un período y están disponibles dos tipos de cálculo: un importe fijo o un importe por cantidad.

Reclamación de venta

Este nuevo módulo sirve para gestionar las reclamaciones de los clientes acerca las ventas o facturas. Permite definir las acciones para resolver las quejas, como devolver la venta o abonar la factura. Permite establecer un flujo de trabajo para la aprobación de las acciones de reclamación mediante los permisos de acceso.

Promoción de venta

Ahora es posible aplicar promociones basadas en fórmulas sobre las ventas seleccionadas mediante ciertos criterios. La promoción cambia el precio unitario de la línea cuando la venta cambia a presupuesto (y se restablece si se vuelve a borrador) pero sólo si la promoción es a favor del cliente. Los criterios disponibles son: la tarifa, un período, la cantidad y los productos.

Cantidad de stock en la venta

Este nuevo módulo comprueba en ventas en estado presupuesto si hay suficiente cantidad de productos en el almacén. También comprueba que la nueva venta no perjudique a ventas anteriores que serán enviadas más tarde.

Cambios importantes para el desarrollador

  • El campo de barra de progreso funciona con un real entre 0 y 1 para facilitar su uso como porcentaje.
  • El campo de texto enriquecido ahora utiliza un subconjunto de HTML para permitir su implementación en sao.
  • El campo Many2One tiene una nueva opción target_search que define el tipo de consulta a utilizar para la búsqueda desreferenciada. Las opciones son subquery y la nueva join (que es el valor por defecto). El método join genera una consulta más rápida en la mayoría de los casos.
  • Las restricciones de SQL utilizan una sintaxis similar a python-sql. Esto da más flexibilidad para implementar el backend para otras bases de datos.
  • Tratar de crear/escribir/borrar en un Model basado en una table_query genera una excepción en lugar de un error silencioso.
  • El nombre de la tabla de un ModelSQL se puede reemplazar con un archivo de configuración. Esto permite evitar las limitaciones de ciertas bases de datos respecto a la longitud de los nombres de las tablas.
  • Se ha añadido a los asistentes el nuevo StateReport para simplificar el código de los asistentes que ejecutan un informe.
  • Se ha eliminado el estilo de los informes, la experiencia muestra que esta función no era utilizada.
  • El backend de PostgreSQL ahora gestiona el esquema. Esto permite que distintas instancias de Tryton compartan la misma base de datos.
  • La clave foránea genérica para crear/modificar el usuario en todos los ModelSQL ha sido reemplazada por una regla que impide eliminar usuarios. Esto mejora enormemente la escalabilidad en algunas circunstancias.
  • El campo Property ahora soporta valores float y integer.
  • Un subdirectorio locale/override permite a los módulos sobrescribir traducciones de otros módulos.


  • Los planes contables ya no son traducibles. En lugar de ello debe proporcionarse planes contables traducidos a través de una plantilla usando XSLT.
  • La factura no calcula un precio unidad en cada línea. Para tener esta función debe utilizarse los módulos de compras o ventas.
  • Algunos campos de la factura como las Notas y el Origen son editables después de contabilizar la factura.


  • La conversión entre unidades ya no genera fallos silenciosos sino que aparece un error explícito.
  • Se ha añadido la propiedad volumen a los productos.


  • La estructura de árbol del proyecto y de la hoja de trabajo se han separado, cada objeto tiene su propia estructura de árbol.
  • La tarifa utiliza los mismos decimales que el producto.
  • El precio de coste del empleado se almacena en la línea de la hoja de trabajo según la fecha de la línea. Esto permite sumar los costes de la hoja de trabajo más rápido.


  • Ahora el estado de la solicitud de compra permite realizar búsquedas.
  • Las solicitudes de compra se generan incluso si la cantidad redondeada es cero para permitir al usuario comprar más.


  • Muchas restricciones innecesarias en la edición de los campos de los movimientos han sido eliminadas.
  • La cantidad esperada de las líneas de inventario se calculan siempre, incluso si se añaden manualmente.
  • Es posible crear movimientos en estado En proceso y Borrador utilizando ubicaciones de tipo Vista. Estas ubicaciones tendrán que ser cambiadas para poder finalizar el movimiento.
  • El inventario utiliza la función de agrupación para crear los movimientos. Esto permite soportar fácilmente el lote (o cualquier otro campo extra).

Tryton Unconference Buenos Aires 2015

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

Este año la edición anual de la Tryton Unconference tendrá lugar en Buenos Aires desde el 13 al 17 de noviembre en el Hotel Bauen y en gcoop.

Esta será la quinta edición y la primera fuera de Europa. Usuarios, desarrolladores y gente interesada tendrá la oportunidad de descubrir o hablar de Tryton.

Las propuestas y planificación de ponencias se gestiona en Lanyrd.

La tercera reunión de los Patronos de la Fundación tendrá lugar el sábado 14 a las 18.00.

El 15, 16 y 17 está previsto un Sprint en gcoop.

Las inscripciones están abiertas en TUBA 2015.

Si quieres solicitar una charla sobre un tema específico, puedes enviar la propuesta a la lista de correo de Tryton. Si tienes alguna pregunta acerca de la organización, por favor ponte en contacto con la fundación en

¡Y no olvides de correr la voz! #TUBA2015

Tryton Unconference Buenos Aires 2015 Sprint de código ampliado

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

Os informamos que el Sprint de código de la Tryton Unconference 2015 ha sido ampliado a tres días. Tendrá lugar desde el 15 al 17 de noviembre.

Si tienes alguna pregunta sobre la organización, ponte en contacto con la fundación en

Lanyrd #TUBA2015

Tryton Unconference Buenos Aires 2015

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

La quinta edición anual de la Tryton Unconference tendrá lugar en Buenos Aires el 13, 14 y 15 de noviembre.

Esta es la oportunidad de reunir miembros de la comunidad (usuarios y desarrolladores), personas interesadas, empresarios y profesionales para hablar sobre el presente y el futuro de Tryton, y descubrir la ciudad de Buenos Aires.

Si tienes alguna pregunta sobre la organización, ponte en contacto con la fundación en

Reserva estas fechas ... pronto habrá más información sobre el evento. #TUBA2015

Nueva versión 3.6 de Tryton

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

Estamos contentos de anunciar la publicación de la versión 3.6 de Tryton.

Esta versión incorpora el soporte oficial de PyPy que es una implementación alternativa de Python centrada en la velocidad y la eficiencia.

Como siempre, la migración de las versiones anteriores está totalmente soportada a excepción del módulo ldap_connection que ha sido eliminado.

Cambios principales para el usuario

  • Un esquema de colores nuevo para los gráficos que remplaza la única variación de brillo que había. Ahora el esquema de colores también cambia el matiz de cada color mediante el ángulo de oro (que asegura que un color no sea seleccionado dos veces).

    Esquema de colores para los gráficos
  • El campo diccionario recibe sugerencias a partir de la búsqueda del texto de forma similar a otros campos.

  • Los campos fecha y hora han sido reescritos completamente para poder ser más flexibles con el formato a teclear. Pero también son más prácticos si se usan con el ratón gracias a un calendario emergente real y a una lista desplegable para la hora.

    Campo fecha Campo fecha y hora
  • Las columnas de la vista listado que tienen siempre el mismo valor se ocultan automáticamente debido a que no proporcionan información. Por ejemplo, la lista de facturas contabilizadas no muestran la columna estado porque, por definición, todas ellas están contabilizadas.


  • Ahora se puede añadir una descripción al asiento de cancelación desde el asistente.

  • En el libro mayor aparece una nueva opción para mostrar sólo el saldo.

  • Se pueden configurar los impuestos para modificar el precio base para los siguientes impuestos de la lista.

  • Ahora se pueden definir plantillas para asientos habituales. Cuando se ejecuta una plantilla, al usuario se le preguntará que introduzca algunos datos como un importe o un tercero, para poder generar un asiento con estos datos.

    Plantilla de asiento
  • Se ha añadido un informe imprimible para la amortización de activos.

  • Los planes contables para Francia y Bélgica han sido actualizados. Y el de Bélgica ha sido traducido al holandés.

  • Se dispone de un asistente de prueba para ver los resultados generados por un plazo de pago. Como los plazos de pago son muy flexibles porqué permiten aplicar varios incrementos de tiempo (en lugar de uno), no siempre es fácil prever el comportamiento.

    Prueba de plazo de pago
  • Se ha extendido la cobertura de SEPA con los sabores pain.001.003.03 y 008.003.02 que se utilizan en Alemania. Y también es posible regenerar un mensaje SEPA en caso de configuración errónea en la primera generación.

  • Los extractos crean asientos agrupados por número, fecha y tercero por defecto. Así, cuando una línea de extracto se divide para conciliar facturas, sólo se crea un asiento y el origen de este asiento es el grupo de las líneas de extracto.

  • Las reglas de impuestos ahora pueden depender del país de origen y de destino gracias al nuevo módulo account_tax_rule_country.

  • Se ha añadido el formato SEPA personalizado (no estándar) CFONB con el nuevo módulo account_payment_sepa_cfonb.

  • El nuevo módulo account_deposit añade un nuevo tipo de cuenta Adelanto. Permite facturar adelantos y recuperar este importe más tarde en la siguiente factura.


  • Ahora se puede definir una tarifa con impuestos incluidos. Tryton calculará el precio sin impuestos según los impuestos aplicados.


  • Se ha añadido un nuevo estado Ganada a las oportunidades de venta. La oportunidad cambia a este estado automáticamente cuando una de sus ventas se confirma y todas las otras están también confirmadas o canceladas.
  • El importe de las oportunidades se actualiza según el importe de las ventas relacionadas. Esto permite obtener informes más precisos.
  • El cálculo del coste de envío sólo se calcula al pasar a presupuesto. Esto reduce la carga en el cliente cuando la venta es bastante larga ya que el coste se calculará una sola vez en lugar de cada vez que una línea sea añadida.
  • El módulo nuevo sale_extra permite añadir líneas extras en las ventas según varios criterios. La línea extra puede ser tanto un producto gratis como un coste de servicio adicional.


  • Ahora hay una relación entre un producto y sus reglas de abastecimiento.
  • La creación de solicitudes de compra avisa también de producciones anteriores igual como lo hacía de albaranes de entrada anteriores.
  • Las informaciones de vida útil y fecha de caducidad están incluidas en el nuevo módulo stock_lot_sled. Cuando un lote caduca, no se utiliza más para calcular la cantidad prevista de stock.


Esta nueva área se gestiona con un conjunto de nuevos módulos commission. Se crean comisiones para el agente definido en una venta o factura utilizando un plan de comisiones. También permite definir agentes principales en los productos a los que también habrá que pagar comisiones.

Principales cambios para el desarrollador

  • Ahora se permite tener varias veces el mismo campo en una vista listado/árbol.
  • El campo datetime ha desaparecido en las vistas listado/árbol, hay que usar en su lugar dos columnas, una con el campo fecha y otra con el campo hora.
  • En esta versión aparece un nuevo campo TimeDelta para representar una duración. Reemplaza el campo float_time que tiene algunos problemas de redondeo. Este nuevo campo ya se usa en los módulos timesheet y project.
  • Se puede configurar los campos One2Many para utilizar un producto cartesiano con la selección de varios valores de campos Many2One o Reference.
  • Se añade el método restore_history_before a ModelSQL que se comporta como el existente restore_history pero restaurando los registros justo antes de una fecha-hora.
  • Los métodos on_change han sido migrados para tener un comportamiento más consistente con el Active Record Pattern utilizado en Tryton. En vez de devolver un diccionario con los valores a cambiar, se cambia la instancia directamente. Esto permite encadenar fácilmente los métodos on_change o reutilizarlos en otros métodos reduciendo la duplicación de código.
  • El método save de ModelStorage ahora es un dualmethod que significa que pueda ser llamado como siempre como método de instancia pero también como método de clase con una lista de registros. De este modo, guardar varios registros a la vez mejora el rendimiento ya que el método minimizará el número de peticiones a la base de datos y validará el resultado entero.
  • El campo Dict recibe el método translated para crear descriptores con los que traducir los valores o las claves, de forma similar al mismo método en los campos Selection.
  • Ahora se puede utilizar la notación con punto en el parámetro orden de una búsqueda. El ORM generará automáticamente las agrupaciones necesarias.
  • La API de la clase Report ha sido reescrita para mejorar la personalización del motor de informes. Ahora los métodos de formato son más estrictos para prevenir fallos silenciosos.
  • La función safe_eval (que no es para nada segura) ha sido completamente eliminada. En los lugares donde el código evaluado era de todos modos seguro se utiliza la función estándar eval. Para evaluar código desde el exterior ahora se utiliza una notación JSON. Se han desarrollado algunas utilidades para facilitar la creación de JSON desde XMl o en las vistas.
  • Se ha añadido una nueva clase de botón que trabaja sobre registros no guardados. Son similares a los on_change pero son disparados por un clic en un botón en lugar de un cambio en un campo.


  • Se ha añadido un método nuevo reverse_compute a los impuestos que permite calcular el importe base a partir del importe con impuestos.
  • El signo del importe en la segunda moneda de un apunte se fuerza a que sea el mismo que el signo del debe - haber.
  • La gestión de la contabilidad analítica ha sido reescrita para usar realmente campos One2Many en lugar de pseudo-campos. Esta simplificación ha sido posible gracias a las nuevas funcionalidades recientes como el uso de un campo Reference en un One2Many.


  • Ahora se guarda el número de CIF/NIF en su forma compacta.


  • Ahora se puede definir el número de decimales para los cálculos internos de precios como un parámetro de configuración price_decimal. Este parámetro se usa en todos los sitios para asegurar consistencia entre todos los módulos.


  • Las líneas de compras/ventas soportan ambos tipos de factura (factura y factura de abono) en cada línea cuando se calcula la cantidad facturada.


  • Se ha añadido un nuevo estado staging en los movimientos. Este estado no impacta en ningún cálculo de los niveles de stock. Se utiliza para el suministro en ventas, para crear movimientos por adelantado.
  • También se calculan los productos inactivos para saber el nivel de stock.
  • Se ha mejorado el cálculo de los movimientos asignados para tener en cuenta sólo los movimientos asignados de salida, no los de entrada. Esto comporta un nivel de stock menos optimista y por tanto evita asignar movimientos con una entrada que esté asignada pero todavía no finalizada.
  • Las previsiones son desactivadas automáticamente cuando su periodo forma parte del pasado.