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() {
return ceil($this->totalPedidosSinBonos() / 500);
$total = 0;
foreach ($this->pedidosAprobados() as $pedido) {
$total += $pedido->totalParaTransporte();
}
return ceil($total / 500);
}
public function totalBonosBarriales() {

View File

@ -5,6 +5,7 @@ namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
use App\Filtros\FiltroDeProducto;
use Illuminate\Support\Str;
class Producto extends Model
{
@ -16,12 +17,16 @@ class Producto extends Model
{
return $this->belongsToMany('App\Subpedido','productos_subpedidos')->withPivot(["cantidad"]);
}
public function 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)
public function scopeFiltrar($query, FiltroDeProducto $filtros)
{
@ -44,5 +49,5 @@ class Producto extends Model
public static function productosIDNombre() {
return Producto::pluck('nombre', 'id',)->all();
}
}

View File

@ -46,10 +46,20 @@ class Subpedido extends Model
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
public function cantidadBDT()
{
return ceil($this->totalSinBonos() / 500);
return ceil($this->totalParaTransporte() / 500);
}
//Subtotal de dinero de bonos de transporte
@ -98,11 +108,11 @@ class Subpedido extends Model
$view = view("pdfgen.subpedido_tabla", ["subpedido" => $this]);
return $view->render();
}
public function getDevoluciones() {
return $this->devoluciones_total;
}
public function getNotasDevoluciones() {
return $this->devoluciones_notas;
}