Cambio lógica de pago de transporte

This commit is contained in:
Alejandro Tasistro 2024-09-05 13:34:33 -03:00
parent d91d46c589
commit c86eb97cb9
3 changed files with 25 additions and 6 deletions

View File

@ -93,7 +93,11 @@ class GrupoDeCompra extends Model
} }
public function calcularCantidadBDT() { public function calcularCantidadBDT() {
return ceil($this->totalPedidosSinBonos() / 500); $total = 0;
foreach ($this->pedidosAprobados() as $pedido) {
$total += $pedido->totalParaTransporte();
}
return ceil($total / 500);
} }
public function totalBonosBarriales() { public function totalBonosBarriales() {

View File

@ -5,6 +5,7 @@ namespace App;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Filtros\FiltroDeProducto; use App\Filtros\FiltroDeProducto;
use Illuminate\Support\Str;
class Producto extends Model class Producto extends Model
{ {
@ -22,6 +23,10 @@ class Producto extends Model
return $this->belongsTo('App\Proveedor'); return $this->belongsTo('App\Proveedor');
} }
public function pagaTransporte() {
return !($this->bono || Str::contains($this->categoria, 'SUBSIDIADO'));
}
//Este método permite que se apliquen los filtros al hacer una request (por ejemplo, de búsqueda) //Este método permite que se apliquen los filtros al hacer una request (por ejemplo, de búsqueda)
public function scopeFiltrar($query, FiltroDeProducto $filtros) public function scopeFiltrar($query, FiltroDeProducto $filtros)
{ {

View File

@ -46,10 +46,20 @@ class Subpedido extends Model
return $this->productosSinBonos()->sum('total'); return $this->productosSinBonos()->sum('total');
} }
public function totalParaTransporte() {
$total = 0;
foreach ($this->productos()->get() as $producto) {
if ($producto->pagaTransporte()) {
$total += $producto->precio * $producto->pivot->cantidad;
}
}
return ceil($total);
}
//Cantidad de bonos de transporte //Cantidad de bonos de transporte
public function cantidadBDT() public function cantidadBDT()
{ {
return ceil($this->totalSinBonos() / 500); return ceil($this->totalParaTransporte() / 500);
} }
//Subtotal de dinero de bonos de transporte //Subtotal de dinero de bonos de transporte