This commit is contained in:
Lizandro Guarnizo
2026-01-29 21:55:00 -05:00
parent 7bffd8a569
commit 177e6b4e3a
7 changed files with 20 additions and 16 deletions
@@ -148,9 +148,9 @@ class ConfeccionResource extends Resource
⚠️ Pendientes: {$faltantes} ⚠️ Pendientes: {$faltantes}
━━━ PAGO ━━━ ━━━ PAGO ━━━
💵 Valor total: $" . number_format($valorTotal, 2) . " 💵 Valor total: $" . number_format($valorTotal, 0) . "
💸 Descuento cobros: $" . number_format($cobrosValor, 2) . " 💸 Descuento cobros: $" . number_format($cobrosValor, 0) . "
A pagar: $" . number_format($valorAPagar, 2); A pagar: $" . number_format($valorAPagar, 0);
}), }),
Forms\Components\Placeholder::make('instrucciones') Forms\Components\Placeholder::make('instrucciones')
@@ -18,7 +18,7 @@ class CobrosRelationManager extends RelationManager
->columns([ ->columns([
TextColumn::make('id')->label('#'), TextColumn::make('id')->label('#'),
TextColumn::make('cantidad')->label('Cantidad'), TextColumn::make('cantidad')->label('Cantidad'),
TextColumn::make('valor')->label('Valor')->money('USD'), TextColumn::make('valor')->label('Valor')->money('COP', divideBy: 1),
TextColumn::make('usuario.name')->label('Usuario'), TextColumn::make('usuario.name')->label('Usuario'),
TextColumn::make('notas')->limit(80)->wrap(), TextColumn::make('notas')->limit(80)->wrap(),
TextColumn::make('created_at')->label('Fecha')->dateTime(), TextColumn::make('created_at')->label('Fecha')->dateTime(),
+2 -2
View File
@@ -97,8 +97,8 @@ class TelaResource extends Resource
Tables\Columns\TextColumn::make('proveedor.nombre')->searchable(), Tables\Columns\TextColumn::make('proveedor.nombre')->searchable(),
Tables\Columns\TextColumn::make('metros_comprados')->numeric(), Tables\Columns\TextColumn::make('metros_comprados')->numeric(),
Tables\Columns\TextColumn::make('metros_disponibles')->numeric(), Tables\Columns\TextColumn::make('metros_disponibles')->numeric(),
Tables\Columns\TextColumn::make('valor_total')->money('USD')->sortable(), Tables\Columns\TextColumn::make('valor_total')->money('COP', divideBy: 1)->sortable(),
Tables\Columns\TextColumn::make('costo_por_metro')->money('USD')->sortable(), Tables\Columns\TextColumn::make('costo_por_metro')->money('COP', divideBy: 1)->sortable(),
Tables\Columns\TextColumn::make('fecha_compra')->date()->sortable(), Tables\Columns\TextColumn::make('fecha_compra')->date()->sortable(),
]) ])
->defaultSort('created_at', 'desc') ->defaultSort('created_at', 'desc')
@@ -165,9 +165,9 @@ class TintoreriaResource extends Resource
⚠️ Pendientes: {$faltantes} ⚠️ Pendientes: {$faltantes}
━━━ PAGO ━━━ ━━━ PAGO ━━━
💵 Valor total: $" . number_format($valorTotal, 2) . " 💵 Valor total: $" . number_format($valorTotal, 0) . "
💸 Descuento cobros: $" . number_format($cobrosValor, 2) . " 💸 Descuento cobros: $" . number_format($cobrosValor, 0) . "
A pagar: $" . number_format($valorAPagar, 2); A pagar: $" . number_format($valorAPagar, 0);
}), }),
Forms\Components\Placeholder::make('instrucciones') Forms\Components\Placeholder::make('instrucciones')
@@ -17,7 +17,7 @@ class CobrosRelationManager extends RelationManager
->columns([ ->columns([
TextColumn::make('id')->label('#'), TextColumn::make('id')->label('#'),
TextColumn::make('cantidad')->label('Cantidad'), TextColumn::make('cantidad')->label('Cantidad'),
TextColumn::make('valor')->label('Valor')->money('USD'), TextColumn::make('valor')->label('Valor')->money('COP', divideBy: 1),
TextColumn::make('usuario.name')->label('Usuario'), TextColumn::make('usuario.name')->label('Usuario'),
TextColumn::make('notas')->limit(80)->wrap(), TextColumn::make('notas')->limit(80)->wrap(),
TextColumn::make('created_at')->label('Fecha')->dateTime(), TextColumn::make('created_at')->label('Fecha')->dateTime(),
+5 -3
View File
@@ -111,10 +111,12 @@ class Confeccion extends Model
public function getFaltantesAttribute() public function getFaltantesAttribute()
{ {
$enviada = (int)($this->cantidad_enviada ?? 0); $enviada = (int)($this->cantidad_enviada ?? 0);
$recibidoNeto = $this->recibido_total; $recepciones = (int) $this->recepciones()->sum(\DB::raw('cantidad - COALESCE(prendas_defectuosas, 0)'));
$ajustes = (int) $this->ajustes()->where('tipo', 'arreglo')->sum('cantidad');
// Lo que puede recibir = enviadas - recibido_neto (sin considerar cobros) // Lo que puede recibir = enviadas - recepciones + arreglos (arreglos permiten re-recepción)
return max(0, $enviada - $recibidoNeto); // NO restamos cobros porque los cobros son sobre prendas que ya llegaron
return max(0, $enviada - $recepciones + $ajustes);
} }
// Total de cobros aplicados // Total de cobros aplicados
+5 -3
View File
@@ -213,10 +213,12 @@ class Tintoreria extends Model
public function getFaltantesAttribute() public function getFaltantesAttribute()
{ {
$enviada = (int)($this->cantidad_enviada ?? 0); $enviada = (int)($this->cantidad_enviada ?? 0);
$recibidoNeto = $this->recibido_total; $recepciones = (int) $this->recepciones()->sum(\DB::raw('cantidad - COALESCE(prendas_defectuosas, 0)'));
$reprocesos = (int) $this->ajustes()->where('tipo', 'reproceso')->sum('cantidad');
// Lo que puede recibir = enviadas - recibido_neto (sin considerar cobros) // Lo que puede recibir = enviadas - recepciones + reprocesos (reprocesos permiten re-recepción)
return max(0, $enviada - $recibidoNeto); // NO restamos cobros porque los cobros son sobre prendas que ya llegaron
return max(0, $enviada - $recepciones + $reprocesos);
} }
// Estado de recepción (Parcial / Completado) // Estado de recepción (Parcial / Completado)