Update Recepcion.php
This commit is contained in:
@@ -65,18 +65,19 @@ class Recepcion extends Model
|
|||||||
$referencia = $rec->referencia;
|
$referencia = $rec->referencia;
|
||||||
$enviada = (int) ($referencia->cantidad_enviada ?? 0);
|
$enviada = (int) ($referencia->cantidad_enviada ?? 0);
|
||||||
|
|
||||||
// Ya recibido efectivo (cantidad - defectuosos) - arreglos permiten re-recepción
|
// Ya recibido efectivo (cantidad - defectuosos)
|
||||||
$yaRecibido = (int) \App\Models\Recepcion::where('referencia_type', get_class($referencia))
|
$yaRecibido = (int) \App\Models\Recepcion::where('referencia_type', get_class($referencia))
|
||||||
->where('referencia_id', $referencia->id)
|
->where('referencia_id', $referencia->id)
|
||||||
->sum(\DB::raw('cantidad - COALESCE(prendas_defectuosas, 0)'));
|
->sum(\DB::raw('cantidad - COALESCE(prendas_defectuosas, 0)'));
|
||||||
|
|
||||||
// Los arreglos se restan porque permiten re-recepción cuando regresen
|
// Los arreglos/reprocesos permiten re-recepción cuando regresen
|
||||||
$arreglos = 0;
|
$arreglos = 0;
|
||||||
if (method_exists($referencia, 'ajustes')) {
|
if (method_exists($referencia, 'ajustes')) {
|
||||||
$arreglos = (int) $referencia->ajustes()->where('tipo', 'arreglo')->sum('cantidad');
|
// Contar tanto 'arreglo' como 'reproceso'
|
||||||
|
$arreglos = (int) $referencia->ajustes()->whereIn('tipo', ['arreglo', 'reproceso'])->sum('cantidad');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Los cobros NO permiten más recepciones (son prendas que no llegaron)
|
// Los cobros son sobre prendas que YA llegaron (no afectan lo que puede recibir)
|
||||||
$cobros = 0;
|
$cobros = 0;
|
||||||
if (method_exists($referencia, 'cobros')) {
|
if (method_exists($referencia, 'cobros')) {
|
||||||
$cobros = (int) $referencia->cobros()->sum('cantidad');
|
$cobros = (int) $referencia->cobros()->sum('cantidad');
|
||||||
@@ -84,7 +85,7 @@ class Recepcion extends Model
|
|||||||
|
|
||||||
$efectivo = $rec->cantidad - $rec->prendas_defectuosas;
|
$efectivo = $rec->cantidad - $rec->prendas_defectuosas;
|
||||||
$yaRecibidoNeto = $yaRecibido - $arreglos;
|
$yaRecibidoNeto = $yaRecibido - $arreglos;
|
||||||
$maxPermitido = $enviada - $cobros;
|
$maxPermitido = $enviada; // NO restar cobros - los cobros no afectan lo que puede recibir
|
||||||
|
|
||||||
if (($yaRecibidoNeto + $efectivo) > $maxPermitido) {
|
if (($yaRecibidoNeto + $efectivo) > $maxPermitido) {
|
||||||
$disponible = max(0, $maxPermitido - $yaRecibidoNeto);
|
$disponible = max(0, $maxPermitido - $yaRecibidoNeto);
|
||||||
@@ -94,8 +95,8 @@ class Recepcion extends Model
|
|||||||
📊 Resumen:
|
📊 Resumen:
|
||||||
• Enviadas: {$enviada}
|
• Enviadas: {$enviada}
|
||||||
• Ya recibidas (neto): {$yaRecibidoNeto}
|
• Ya recibidas (neto): {$yaRecibidoNeto}
|
||||||
• Cobros registrados: {$cobros}
|
• Arreglos/Reprocesos (permiten re-recepción): {$arreglos}
|
||||||
• Arreglos (permiten re-recepción): {$arreglos}
|
• Cobros (sobre prendas recibidas): {$cobros}
|
||||||
• Disponible para recibir: {$disponible}
|
• Disponible para recibir: {$disponible}
|
||||||
|
|
||||||
➡️ Solo puedes recibir {$disponible} prendas más."
|
➡️ Solo puedes recibir {$disponible} prendas más."
|
||||||
|
|||||||
Reference in New Issue
Block a user