Skip to main content

šŸ“‘ Ventas


1. 🧩 Descripción General​

El módulo de Ventas permite registrar y controlar el proceso comercial desde la generación de cotizaciones, pedidos y su facturación. Este módulo se conecta directamente con Clientes, Inventario, Finanzas y Facturación para asegurar un proceso fluido y trazable.


2. 🧱 Modelos del Módulo​

a. Quotation​

  • id: integer (PK)
  • client_id: FK → Client
  • created_by: FK → User
  • status: enum (pendiente, aprobada, vencida)
  • valid_until: date
  • subtotal, tax, total: decimal

b. QuotationItem​

  • id: integer (PK)
  • quotation_id: FK → Quotation
  • product_id: FK → Product
  • quantity: decimal
  • unit_price: decimal

c. SalesOrder​

  • id: integer (PK)
  • client_id: FK → Client
  • quotation_id: FK (opcional)
  • status: enum (pendiente, enviado, parcial, completo, cancelado)
  • created_by: FK → User
  • subtotal, tax, total: decimal

d. SalesOrderItem​

  • id: integer (PK)
  • sales_order_id: FK → SalesOrder
  • product_id: FK → Product
  • quantity: decimal
  • unit_price: decimal
  • quantity_delivered: decimal

3. šŸ” Funciones del Controlador​

  • index(): Listar pedidos de venta.
  • store(): Crear pedido de venta (con o sin cotización previa).
  • show($id): Ver detalle del pedido.
  • update($id): Editar pedido (estado pendiente).
  • destroy($id): Cancelar pedido.
  • deliver(): Registrar entrega parcial o total.
  • convertQuotation($id): Generar pedido a partir de una cotización.
  • quotationIndex(): Listar cotizaciones.
  • quotationStore(): Crear cotización.
  • quotationApprove(): Aprobar cotización.

4. 🌐 Endpoints detallados y justificados​

MétodoRutaDescripciónJustificación
GET/api/sales-ordersLista de pedidosSeguimiento comercial
POST/api/sales-ordersCrear pedidoProceso formal de venta
GET/api/sales-orders/{id}Ver pedidoDetalle por cliente y producto
PUT/api/sales-orders/{id}EditarCambios antes de envĆ­o
DELETE/api/sales-orders/{id}CancelarAnulación
POST/api/sales-orders/{id}/deliverEntregar productosActualiza stock y seguimiento
GET/api/quotationsLista de cotizacionesProceso previo a pedido
POST/api/quotationsCrear cotizaciónPropuesta comercial
POST/api/quotations/{id}/approveAprobarConvertir en pedido
POST/api/quotations/{id}/convertCrear pedido desde cotizaciónFlujo integrado

5. šŸ–„ļø DiseƱo UX sugerido (flujo de usuario)​

PĆ”gina: "Cotizaciones"​

  • Tabla con cotizaciones
  • Acciones:
    • Ver, Aprobar, Convertir
    • Crear nueva cotización

PĆ”gina: "Pedidos de Venta"​

  • Tabla con pedidos
  • Acciones:
    • Ver detalle
    • Editar (si no enviado)
    • Entregar

PĆ”gina: "Entrega de productos"​

  • Lista de productos por entregar
  • Campos: cantidad, observaciones
  • Botón: confirmar entrega

6. šŸ“„ Vistas sugeridas (tipo wireframe)​

VistaCampos sugeridosAcciones
CotizacionesCliente, productos, estado, totalAprobar, Convertir
PedidosCliente, productos, estado, totalVer, Entregar
Formulario cotizaciónCliente, producto, cantidad, precioGuardar
EntregaProducto, cantidad pedida, entregadaConfirmar

7. šŸ”— Conexión Frontend ↔ API JSON:API​

Acción en FrontendMétodo/APIResultado esperado
Ver cotizacionesGET /api/quotationsTabla
Crear cotizaciónPOST /api/quotationsFormulario
Aprobar cotizaciónPOST /api/quotations/{id}/approveEstado actualizado
Convertir a pedidoPOST /api/quotations/{id}/convertPedido creado
Ver pedidosGET /api/sales-ordersTabla
Crear pedidoPOST /api/sales-ordersRegistro nuevo
Entregar pedidoPOST /api/sales-orders/{id}/deliverActualiza inventario

šŸ“¦ Este módulo permite gestionar el flujo comercial con control y trazabilidad, integrando cotizaciones, pedidos y entregas con el inventario y la facturación del ERP.