Saltar al contenido

Automatización · Cobros y cartera

Crear un borrador de factura en Odoo con aprobación

Crea una factura borrador en Odoo con aprobación explícita, datos verificados y una lectura final, sin contabilizarla ni enviarla fiscalmente.

¿Cómo creo una factura borrador en Odoo y la reviso antes de contabilizarla?

Un Met identifica la compañía, el cliente y cada variante en Odoo antes de preparar una factura de cliente. Consulta el precio base, los impuestos y los diarios de esa compañía, y distingue dos caminos: dejar que Odoo aplique sus valores configurados o enviar precio_unitario e impuesto_ids manuales que ya fueron autorizados. Genera una referencia opaca sin datos personales, revisa los borradores existentes y presenta todos los inputs en un mensaje. Solo un sí explícito en un mensaje nuevo habilita una única llamada con tipo=out_invoice y confirmar=true. Después consulta la factura por id y devuelve estado, líneas, moneda y totales literales de Odoo. El resultado sigue en borrador: no se contabiliza, no se envía a una autoridad fiscal y no registra un pago.

Qué la pone en marcha

Cuando alguien lo pide

Empieza cuando una persona pide preparar la factura de una venta o servicio que ya fue autorizado para facturarse. No parte de una solicitud de precio ni de una conversación de cotización: el operador inicia el encargo, aporta la fecha y las condiciones acordadas y conserva la decisión de contabilizar para un flujo posterior fuera de esta receta.

Una tarea de ejecución manual: alguien del equipo la corre con un botón, o se la pide al Met por chat.

Quién la ejecuta

Met de facturación en Odoo

Área de Administración

No tiene un nombre propio sembrado. Su tarea es preparar un documento contable revisable a partir de maestros que ya existen y detenerse antes del paso que produce efectos contables o fiscales. No negocia la venta ni reemplaza la aprobación de quien responde por la facturación.

Qué hay que tener conectado

7 pasos · 11 herramientas

El procedimiento, paso a paso

Cada paso muestra la herramienta que se ejecuta. Son las del conector real: si una dejara de existir, esta página no compilaría.

  1. 1

    Fijar la compañía y abrir el cliente exacto

    El Met lista las compañías accesibles y fija un compania_id para todas las llamadas siguientes, incluso si el usuario técnico tiene una compañía predeterminada. Busca el tercero por nombre, identificación, correo o teléfono y consulta el candidato por id. Verifica que corresponda al cliente, que siga activo y que la identificación no sea solo una coincidencia parcial. Si hay resultados ambiguos o el cliente no existe, se detiene; esta receta no crea ni modifica terceros.

  2. 2

    Resolver productos y leer su configuración actual

    Cada concepto se resuelve contra product.product mediante nombre, referencia interna o código de barras. El Met consulta la variante elegida y exige que esté activa y marcada como vendible. Después lee precio_venta, moneda, unidad e impuestos_venta_ids con odoo_consultar_precio. Ese precio es el precio base del producto, no una tarifa calculada para el cliente, y por eso no se convierte en precio_unitario manual por defecto. Si la venta necesita una variante inexistente, una línea libre o una cuenta contable elegida a mano, el flujo se detiene porque la tool no sostiene esos inputs.

  3. 3

    Decidir entre valores de Odoo y ajustes manuales autorizados

    El Met lista los impuestos de venta y los diarios tipo sale de la compañía para poner nombres y compañía a los ids. En el modo predeterminado envía solo producto_id y cantidad: Odoo obtiene el precio del producto, aplica los impuestos configurados y la posición fiscal del cliente, elige un diario de ventas y deriva la cuenta de ingreso del producto, su categoría o el diario. En el modo manual incluye precio_unitario y/o impuesto_ids únicamente cuando el operador aporta y autoriza valores exactos, finitos y no negativos; no hay descuentos, retenciones o cuentas libres implícitos. Un diario_id manual solo se usa si el listado confirma tipo sale y la misma compañía.

  4. 4

    Preparar una referencia opaca y la revisión previa

    El Met crea una referencia externa aleatoria para este intento, por ejemplo MET-INV seguida de caracteres sin significado; no incluye nombre, documento, correo, teléfono ni otro dato personal. Pagina odoo_listar_facturas dentro del rango de fechas acordado con compania_id, tercero_id, tipo=out_invoice y estado=draft. Si encuentra la misma referencia, no crea nada. Luego presenta compañía, cliente, fecha, vencimiento, referencia, diario, productos, cantidades y, por cada línea, si usará defaults de Odoo o precio_unitario/impuesto_ids manuales. No presenta subtotal, impuesto total ni total proyectado: esos importes todavía no existen en un documento leído desde Odoo.

  5. 5

    Esperar otro mensaje y crear una sola vez

    La revisión no autoriza por sí sola. El Met espera un mensaje nuevo con un sí explícito para esos mismos inputs; una pregunta, un cambio o el silencio no cuentan como aprobación. Después repite el preflight con odoo_listar_facturas y la referencia opaca. Si no hay coincidencia, llama una sola vez odoo_crear_factura_borrador con tipo=out_invoice, compania_id y confirmar=true. La guarda requireConfirmation corre antes de la escritura. La tool crea account.move en draft; nunca se encadena contabilización, EDI, envío o pago, y confirmar no se reenvía a las lecturas posteriores.

  6. 6

    Consultar la factura creada y responder con datos literales

    Con el id devuelto, odoo_consultar_factura relee encabezado y líneas. El Met comprueba que tipo sea out_invoice, estado draft, tercero, compañía, referencia y cantidades coincidan con lo aprobado. Solo entonces informa número, fecha, vencimiento, diario, moneda, precio_unitario, impuestos, subtotal, total y saldo tal como Odoo los devolvió. Si Odoo rechazó una configuración de cuenta, impuesto o diario, reporta ese error y no sustituye ids ni inventa un importe para completar.

  7. 7

    Detenerse y reconciliar una respuesta incierta

    Si la creación devuelve posiblemente_creada por timeout o pérdida de red, el Met no repite la escritura. Pagina otra vez los borradores del mismo cliente, compañía, tipo y rango, y compara la referencia opaca literal. Solo si aparece exactamente un candidato lo consulta por id y aplica la misma verificación final. Si no aparece ninguno o aparecen varios, se detiene para revisión manual. El preflight y esta reconciliación reducen el riesgo de duplicado, pero las llamadas son transacciones separadas y no garantizan unicidad ni ofrecen rollback.

Antes de empezar

Qué necesitas tener listo

Ninguno de estos puntos lo resuelve el Met. Si falta uno, la automatización se detiene ahí.

Los límites

Qué NO resuelve esta automatización

Preferimos decirlo aquí que descubrirlo en la implementación.

Preguntas frecuentes

Preguntas sobre esta automatización

No. El sí en un mensaje nuevo autoriza una única creación con confirmar=true. El documento queda en draft y esta receta no llama contabilización, EDI, envío, nota crédito ni pago.

Si se omiten precio_unitario e impuesto_ids, Odoo usa la configuración del producto, la compañía y la posición fiscal. Eso no promete una tarifa negociada del cliente. Si se envían valores manuales, tienen que aparecer de forma exacta en la revisión y estar autorizados antes del sí.

Odoo intenta derivar la cuenta desde el producto, su categoría o el diario y elige un diario tipo sale de la compañía cuando no se envía uno. Si la configuración no alcanza, devuelve un error; el Met no inventa account_id ni cambia de compañía para forzar la creación.

Usa una referencia opaca, lista borradores antes de crear y, ante posiblemente_creada, busca esa misma referencia antes de hacer cualquier otra cosa. Solo acepta un candidato único; con cero o varios se detiene. Esto reduce el riesgo, pero no es una restricción única dentro de Odoo.

No. El flujo fija tipo=out_invoice y valida un cliente. Facturas de proveedor, notas crédito y líneas contables libres necesitan otro procedimiento y otra revisión de permisos e inputs.

Sigue por aquí

Otras automatizaciones con las mismas herramientas

¿Quieres esta automatización corriendo con tus datos?

Te la mostramos con tus cuentas conectadas, no con una demostración enlatada.