Compare commits

..

No commits in common. "e334234c9fc23a7f236fdbb5441410fe756c0aa5" and "bb29e34b1be2a2fa6bb4595ca018ca1f530182f0" have entirely different histories.

6 changed files with 55 additions and 33 deletions

View file

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

View file

@ -5,7 +5,6 @@ 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
{ {
@ -23,10 +22,6 @@ 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,20 +46,10 @@ 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->totalParaTransporte() / 500); return ceil($this->totalSinBonos() / 500);
} }
//Subtotal de dinero de bonos de transporte //Subtotal de dinero de bonos de transporte

View file

@ -12,6 +12,7 @@ class DatabaseSeeder extends Seeder
*/ */
public function run() public function run()
{ {
$this->call(CanastaSeeder::class); $this->call(GrupoDeCompraSeeder::class);
$this->call(ImportarProductoSeeder::class);
} }
} }

View file

@ -4,7 +4,7 @@ use Illuminate\Database\Seeder;
use League\Csv\Reader; use League\Csv\Reader;
use App\Proveedor; use App\Proveedor;
class CanastaSeeder extends Seeder class ImportarProductoSeeder extends Seeder
{ {
const FILA_HEADER = "Tipo"; const FILA_HEADER = "Tipo";
const ULTIMA_FILA = "TOTAL"; const ULTIMA_FILA = "TOTAL";

View file

@ -0,0 +1,40 @@
<?php
use Illuminate\Database\Seeder;
use League\Csv\Reader;
use App\Proveedor;
class ProductoSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$csv = Reader::createFromPath(resource_path('csv/productos.csv'), 'r');
$csv->setDelimiter("|");
$csv->setEnclosure("'");
$csv->setHeaderOffset(0);
$registros = $csv->getRecords();
$toInsert = [];
foreach($registros as $registro){
$toInsert[] = [
'categoria' => $registro['categoria'],
'nombre' => $registro['producto'],
'precio' => $registro['precio'],
'proveedor_id' => isset($registro['proveedor']) ? Proveedor::firstOrCreate([
'nombre' => $registro['proveedor']
])->id : null,
'bono' => $registro['categoria'] == 'BONOS Y FINANCIAMIENTO SORORO'
];
}
foreach (array_chunk($toInsert,DatabaseSeeder::CHUNK_SIZE) as $chunk)
{
DB::table('productos')->insert($chunk);
}
}
}