Ir al contenido

Crear Presupuesto

Crea un nuevo presupuesto o factura proforma con los datos del cliente, conceptos e importes.

  1. Clic en “Nuevo Presupuesto” o “Nueva Proforma” según la pestaña activa.
  2. Completa los campos de cabecera (ver tabla abajo).
  3. Clic en ”+ Añadir línea” — añade filas con: descripción, cantidad, precio, IVA.
  4. Revisa el resumen en el panel derecho — subtotal, IVA, retenciones y total.
  5. Clic en “Guardar Borrador” — se guarda sin enviar, puedes editarlo después.
CampoObligatorioDescripciónEjemplo
ClienteSiEl cliente destinatario del presupuestoEmpresa ABC, S.L.
SerieNoSerie de numeración (presupuestos o proformas)PRES
Fecha de emisiónSiDía del presupuesto (por defecto: hoy)15/02/2026
Válido hastaNoFecha límite de validez del presupuesto28/02/2026
Descuento generalNoPorcentaje sobre el subtotal10%
Aplicar retenciónNoMarca si el cliente requiere IRPF
% RetenciónCondicionalAparece si marcas retención15%
ObservacionesNoTexto visible en el PDFCondiciones especiales
Notas internasNoTexto privado no visible en PDFPara seguimiento interno
CampoObligatorioReglaEjemplo
DescripciónSiTexto libreDesarrollo web a medida
CantidadSiMínimo 0.011
Precio unitarioSiSin IVA1500.00
% DescuentoNo0–100%5
% IVASi21%, 10%, 4% o 0%21
Subtotal = Suma de (cantidad x precio)
Base imponible = Subtotal - Descuento general
IVA total = Suma del IVA de cada línea
Retención IRPF = Base x % retención (si activo)
Total = Base + IVA - Retención
  • El presupuesto aparece en la lista con estado “Borrador” (badge gris).
  • Toast de confirmación: “Borrador guardado”.
  • Puedes verlo y editarlo las veces que necesites.
MensajeCausaSolución
”Selecciona un cliente”No elegiste clienteClic en “Cliente” y selecciona uno
”Añade al menos un concepto”Sin líneas de presupuestoClic en ”+ Añadir línea"
"Fecha de emisión requerida”Campo vacíoSelecciona una fecha
”Cantidad mínima: 0.01”Pusiste 0 en cantidadCambia a un valor mayor que 0
”Descripción requerida”Línea sin textoEscribe la descripción del concepto
Información técnica

Validaciones:

CódigoRegla
VAL-01customer_id NOT NULL
VAL-02quote_items count >= 1
VAL-03quantity >= 0.01
VAL-04unit_price >= 0
VAL-05tax_rate 0–100
VAL-06issue_date NOT NULL
VAL-07valid_until >= issue_date (si se proporciona)

Tablas involucradas:

TablaColumnas claveFK
quotesid, business_id, customer_id, quote_number, proforma_number, status, is_proforma, valid_until, total_amountcustomers, businesses, quote_series, proforma_sequences
quote_itemsid, quote_id, description, quantity, unit_price, tax_rate, line_totalquotes
quote_seriesid, business_id, prefix, current_number, paddingbusinesses
proforma_sequencesid, business_id, prefix, current_number, paddingbusinesses

Componente principal: QuoteFormSheet.tsx

Hook: useQuoteForm.ts

Queries de diagnóstico:

-- Presupuesto con datos de cliente
SELECT q.*, c.name, c.cif_nif, c.email
FROM quotes q
LEFT JOIN customers c ON q.customer_id = c.id
WHERE q.id = '<quote_id>';
-- Líneas de presupuesto
SELECT * FROM quote_items
WHERE quote_id = '<quote_id>'
ORDER BY sort_order;

Edge Functions:

  • whatsapp-create-quote - Crear presupuesto vía WhatsApp