Facturación desde los traslados

Odoo estándar factura un pedido de venta o de compra en su totalidad (o mediante el propio asistente Crear factura del pedido); no permite que un usuario de almacén convierta una entrega o una recepción concreta ya validada en una factura, y tampoco mantiene un registro explícito de qué traslados terminaron exactamente en qué línea de factura. Los clientes de eYssen que facturan por albarán, que agrupan varias entregas del mismo cliente en una única factura colectiva, o que necesitan rastrear una línea de factura hasta el movimiento físico de bienes que la justifica, necesitan ambas capacidades. Esta función añade una acción Facturación directamente en los traslados de existencias, un indicador de estado de facturación por traslado, y un enlace permanente en ambos sentidos entre los traslados y las facturas o facturas de proveedor generadas a partir de ellos.

Estado de facturación en los traslados de existencias

screenshot: invoicing-from-transfers-picking-list-status
menu
Inventory ‣ Deliveries ‣ Filters ‣ To be Invoice
shows
Inventory app, Deliveries list view, with the "Invoice Status" column visible (badges: Not invoiced / To Invoice / Fully Invoiced / Over Invoiced) and the "To be Invoice" filter applied.
module
eyssen_stock_picking_invoice_link, eyssen_purchase_stock_picking_invoice_link
notes
English UI, light theme, 1440px width.

Cada stock.picking (entrega, recepción o traslado interno) recibe un campo Estado de facturación con cinco valores posibles: Sin facturar, Por facturar, Facturado por completo, Facturado en exceso y No es necesario facturar. Se calcula comparando la cantidad total movida en las operaciones del traslado con la cantidad ya recogida por las líneas de factura, y se muestra como una insignia de color tanto en la lista de traslados como en el formulario del traslado.

La vista de lista también incorpora un concepto de Dirección expuesto como Tipo de operación (Recepción, Entrega o Traslado interno), un filtro rápido Por facturar y una opción Agrupar por: Estado de la factura, de modo que el departamento de contabilidad pueda encontrar rápidamente cualquier traslado completado que aún esté pendiente de facturar.

En la pestaña de operaciones del formulario del traslado, cada línea muestra una columna de cantidad Facturado junto a la demanda, coloreada en verde cuando la línea está facturada por completo, en naranja cuando aún no se ha facturado nada, en azul cuando está facturada parcialmente y en rojo cuando está facturada en exceso.

Crear una factura directamente desde uno o varios traslados

screenshot: invoicing-from-transfers-picking-form-button
menu
Inventory ‣ Deliveries ‣ open a Done transfer
shows
A validated (Done) outgoing delivery form, showing the "Számlázás" header button, the "Invoice Status" field next to Source Document, and the "Invoiced" quantity column on the operations list.
module
eyssen_stock_picking_invoice_link, eyssen_purchase_stock_picking_invoice_link
notes
English UI, light theme, 1440px width.

Un traslado completado cuyo Estado de facturación sea Sin facturar o Por facturar muestra un botón de cabecera Facturación (con la etiqueta Számlázás en la interfaz actual). La misma acción también está disponible como acción masiva desde la lista de traslados, de modo que se pueden seleccionar varios traslados y facturarlos juntos con un solo clic.

screenshot: invoicing-from-transfers-bulk-invoice-action
menu
Inventory ‣ Deliveries ‣ select rows ‣ Actions (gear icon)
shows
Deliveries list view with several Done rows for the same customer selected via checkboxes, and the gear/Actions menu open showing the "Számlázás" action.
module
eyssen_stock_picking_invoice_link, eyssen_purchase_stock_picking_invoice_link
notes
English UI, light theme, 1440px width.

Al activarse, ya sea sobre un traslado o sobre una selección múltiple, la acción:

  • requiere que todos los traslados seleccionados pertenezcan al mismo contacto, estén en el estado Hecho y compartan la misma divisa; de lo contrario, se detiene con un error claro;

  • decide el tipo de documento de destino a partir del tipo de operación del traslado: los traslados salientes crean una factura de cliente, y cualquier otra dirección (recepciones, traslados internos utilizados como movimientos de proveedor) crea una factura de proveedor;

  • resuelve una fecha de cumplimiento para cada traslado: en el caso de una entrega, prioriza la fecha real de finalización de Odoo y recurre a la propia fecha de entrega del traslado si no está disponible; en el caso de una recepción, prioriza la fecha de entrega registrada (que puede ser anterior a la fecha en la que se validó la recepción en Odoo) y recurre a la fecha de finalización si no está disponible;

  • si los traslados seleccionados no comparten todos la misma fecha de cumplimiento, el contacto debe tener marcada la casilla Acuerdo de factura agregada (un ajuste de la localización húngara en el cliente); de lo contrario, la acción se rechaza: una sola factura no puede combinar de forma silenciosa varias fechas de cumplimiento sin ese acuerdo activo;

  • sigue negándose a combinar traslados cuyas fechas de cumplimiento caigan en meses naturales distintos, incluso con un acuerdo de factura agregada; y

  • crea una nueva factura o factura de proveedor en borrador para el contacto, la fecha y la divisa resueltos, y la rellena de inmediato con una línea por cada movimiento de existencias sin facturar de los traslados seleccionados (vea a continuación), y después abre el nuevo documento.

Añadir líneas de albarán a una factura existente

screenshot: invoicing-from-transfers-add-from-deliveries
menu
Accounting ‣ Customer Invoices ‣ New ‣ set Customer
shows
A draft customer invoice (or vendor bill) form with a customer set, showing the "Add Products from Delivery Notes" button above the invoice lines table.
module
eyssen_stock_picking_invoice_link, eyssen_purchase_stock_picking_invoice_link
notes
English UI, light theme, 1440px width.

Las facturas no tienen por qué originarse en un traslado. Cualquier factura o factura de proveedor en borrador que ya tenga establecido un Cliente/Proveedor muestra un botón Añadir productos desde albaranes encima de las líneas de factura. Este botón abre un asistente Selección de albaranes filtrado previamente a los traslados en estado Hecho de ese contacto que aún no estén facturados por completo (excluyendo los traslados internos).

screenshot: invoicing-from-transfers-select-deliveries-wizard
menu
from the invoice form, click "Add Products from Delivery Notes"
shows
The "Selection of Delivery Notes" popup wizard, listing candidate Done/unbilled transfers for the invoice's partner, with one or more rows selected and the "Loading Items" button visible.
module
eyssen_stock_picking_invoice_link, eyssen_purchase_stock_picking_invoice_link
notes
English UI, light theme, 1440px width.

Después de seleccionar uno o varios traslados y hacer clic en Cargar artículos, el asistente añade una línea de factura por cada movimiento de existencias pendiente de facturar, trasladando el producto, la cantidad sin facturar, el precio unitario del movimiento (o el precio de la línea del pedido de venta vinculada cuando el movimiento no tenga ninguno), la fecha de cumplimiento de esa línea concreta y un enlace a la línea del pedido de venta o de compra correspondiente cuando proceda. El signo de la cantidad se ajusta de forma automática, por lo que el mismo asistente también funciona al cargar movimientos de devolución o reembolso en una nota de crédito. A menos que la factura sea una factura agregada o un documento rectificativo o de reversión (que debe conservar la fecha de la factura original), la Fecha de factura y la Fecha de entrega de la cabecera se actualizan a la fecha de la línea más reciente, y las órdenes de venta que contribuyen se añaden al campo Origen de la factura.

Trazabilidad entre traslados y facturas

screenshot: invoicing-from-transfers-invoice-lines-detail
menu
invoice form ‣ Invoice Lines tab, after loading lines from the wizard
shows
The resulting invoice's Invoice Lines tab, with the "Delivery Note" column and the green/red truck "fully delivered" icon column visible next to the product lines.
module
eyssen_stock_picking_invoice_link, eyssen_purchase_stock_picking_invoice_link
notes
English UI, light theme, 1440px width.

Cada línea de factura creada a partir de un traslado, ya sea mediante el botón Facturación descrito antes, el asistente Añadir productos desde albaranes, o la propia facturación de pedidos de venta o de compra de Odoo, conserva un enlace con el movimiento o movimientos de existencias exactos a partir de los cuales se facturó. Esto se muestra en varios lugares:

  • las líneas de factura obtienen una columna Albarán de solo lectura que muestra el nombre o nombres del traslado o traslados que hay detrás de la línea (con la referencia del documento del propio contacto entre corchetes cuando se registró una en la recepción), y una columna de icono sin etiqueta que muestra un camión verde cuando la cantidad facturada de la línea coincide con lo que realmente se entregó o recibió, o un camión rojo en caso contrario;

  • el formulario del movimiento de existencias obtiene un grupo Líneas de factura que enumera la línea o líneas de factura en las que se ha facturado (visible para el grupo de Facturación);

  • el formulario del traslado obtiene un botón inteligente Facturas, y el formulario de la factura o factura de proveedor obtiene un botón inteligente equivalente Traslados; ambos abren directamente el registro o registros vinculados, como formulario cuando solo hay uno, o como lista filtrada cuando hay varios;

screenshot: invoicing-from-transfers-invoice-picking-smart-buttons
menu
open an already-invoiced transfer, and the invoice created from it
shows
Two linked records side by side (or two crops): the picking form with the "Invoices" smart button (pencil-square icon) in the button box, and the invoice form with the "Pickings" smart button (truck icon) in its button box.
module
eyssen_stock_picking_invoice_link, eyssen_purchase_stock_picking_invoice_link
notes
English UI, light theme, 1440px width.
  • en cuanto un movimiento de existencias está hecho y tiene una línea de factura vinculada, su cantidad ya no se puede editar; Odoo rechaza el cambio con un error, de modo que un movimiento ya facturado no puede desincronizarse de forma silenciosa con la factura.

En el lado de las ventas, el flujo estándar Crear factura de Odoo se amplía de modo que, para cada línea del pedido de venta, solo se vinculan a la nueva línea de factura los movimientos de existencias hechos, no desechados y orientados al cliente que todavía tengan una cantidad sin facturar (o, en el caso de un reembolso, solo los movimientos marcados como Para reembolsar), de forma que esta trazabilidad se rellena de forma automática incluso al facturar directamente desde el pedido de venta en lugar de desde un traslado.

Facturación de pedidos de compra

screenshot: invoicing-from-transfers-purchase-bill-link
menu
Purchase ‣ a confirmed order ‣ Create Bill ‣ post the bill ‣ open the bill form
shows
A posted vendor bill created from a confirmed purchase order, with the "Pickings" smart button in the button box.
module
eyssen_stock_picking_invoice_link, eyssen_purchase_stock_picking_invoice_link
notes
English UI, light theme, 1440px width.

La misma trazabilidad se aplica en el lado de las compras: crear una factura de proveedor a partir de un pedido de compra vincula cada línea de la factura con el movimiento o movimientos de existencias de recepción que cubren su cantidad, respetando la política de facturación del producto (Cantidades pedidas usa la cantidad pedida menos la facturada, y Cantidades recibidas usa la cantidad recibida menos la facturada), y recorriendo los movimientos del más al menos reciente.

También se puede crear una factura de proveedor antes de recibir los bienes cuando el producto se factura por cantidades pedidas. En ese caso, en cuanto se valide más tarde la recepción correspondiente, el movimiento de existencias recién hecho se vincula de forma retroactiva con la línea de la factura de proveedor que ya se había contabilizado para esa línea del pedido de compra, de modo que el botón inteligente Traslados y la trazabilidad de los albaranes se mantienen correctos incluso cuando la facturación se produce antes que la recepción física.

Excluir un traslado de la facturación

screenshot: invoicing-from-transfers-no-need-to-invoice
menu
open a transfer ‣ Other Info tab ‣ scroll to the Számlázás group
shows
Picking form, "Other Info" tab, "Számlázás" group, with "No need to invoice" checked and a "Reason" filled in.
module
eyssen_stock_picking_invoice_link, eyssen_purchase_stock_picking_invoice_link
notes
English UI, light theme, 1440px width.

Un traslado que nunca se va a facturar (un envío de muestras, una corrección interna, etc.) se puede marcar como No es necesario facturar en su pestaña Otra información, con un texto obligatorio en Motivo. Esto establece su Estado de facturación en No es necesario facturar y lo elimina del filtro Por facturar y del ámbito del botón Facturación.

Importante

Solo los usuarios del grupo Contabilidad/Gerente de contabilidad (account.group_account_manager) pueden activar o desactivar este indicador; cualquier otra persona que intente editarlo recibirá un error de permisos.

Configuración

La función no requiere ninguna pantalla de ajustes específica: se activa de forma automática en cuanto se instalan los tres módulos que se describen a continuación sobre sale_stock o purchase. Sí depende de un par de campos que pertenecen a otros módulos de eYssen:

  • la casilla Acuerdo de factura agregada del cliente (localización húngara, eyssen_l10n_hu) debe estar habilitada en Contactos antes de poder combinar en una sola factura los traslados de ese cliente con fechas de cumplimiento distintas;

  • la referencia del documento del propio contacto en la recepción (eyssen_stock_deliveryslip), cuando está rellenada, se añade a la etiqueta Albarán que se muestra en las líneas de factura.

Nota

Solo el grupo Contabilidad/Gerente de contabilidad puede activar o desactivar No es necesario facturar en un traslado; no es necesario conceder ningún derecho de acceso adicional para el resto de la función más allá de los grupos de acceso habituales de Inventario y Facturación.

Uso

  1. Valide una entrega o una recepción como de costumbre para que alcance el estado Hecho.

  2. Desde la vista de lista o el formulario del traslado, compruebe su Estado de facturación. Si es Sin facturar o Por facturar, haga clic en Facturación (en el formulario) o seleccione varios traslados del mismo contacto y ejecute la acción masiva desde la lista.

  3. Revise la factura o factura de proveedor en borrador que abre Odoo: ya está rellenada con una línea por cada movimiento de existencias sin facturar, con el producto, la cantidad, el precio y la referencia del albarán. Ajústela y contabilícela como cualquier otra factura.

  4. Para añadir más traslados a una factura que ya existe (por ejemplo, un borrador cargado parcialmente, o una factura creada manualmente), ábrala, haga clic en Añadir productos desde albaranes, seleccione los traslados adicionales en el asistente y haga clic en Cargar artículos.

  5. Desde cualquiera de los dos lados del enlace, utilice los botones inteligentes para navegar: Facturas en un traslado para ver en qué se facturó, o Traslados en una factura o factura de proveedor para ver qué traslados cubre.

  6. Si un traslado nunca se debe facturar, ábralo, vaya a Otra información, marque No es necesario facturar y rellene el Motivo.

Alcance y módulos

La función se distribuye en tres módulos:

  • eyssen_stock_picking_invoice: el botón Facturación y la acción masiva en los traslados, los campos Estado de facturación/No es necesario facturar del traslado, el asistente Añadir productos desde albaranes, y las columnas Albarán y de entrega completa en las líneas de factura.

  • eyssen_stock_picking_invoice_link: el enlace de muchos a muchos subyacente entre los movimientos de existencias y las líneas de factura, los botones inteligentes Facturas/Traslados, la protección contra la edición de un movimiento ya facturado, el enlace automático al facturar desde un pedido de venta, y el reenlace correcto al crear una nota de crédito (bifurcación del módulo stock_picking_invoice_link de la OCA).

  • eyssen_purchase_stock_picking_invoice_link: amplía el mismo enlace a los pedidos de compra y a las facturas de proveedor, incluido el enlace retroactivo para los bienes facturados antes de su recepción (bifurcación del módulo purchase_stock_picking_invoice_link de la OCA).