Agregadas timestamps

This commit is contained in:
Alejandro Tasistro 2025-05-16 16:00:03 -03:00
parent 6e0238eef7
commit ea8611771b
5 changed files with 27 additions and 13 deletions

View file

@ -50,7 +50,7 @@ class CanastaHelper
} }
// completar producto // completar producto
$toInsert[] = [ $toInsert[] = DatabaseSeeder::addTimestamps([
'fila' => $i, 'fila' => $i,
'categoria' => $categoria, 'categoria' => $categoria,
'nombre' => trim(str_replace('*', '',$registro[self::PRODUCTO])), 'nombre' => trim(str_replace('*', '',$registro[self::PRODUCTO])),
@ -58,7 +58,7 @@ class CanastaHelper
'es_solidario' => Str::contains($registro[self::PRODUCTO],"*"), 'es_solidario' => Str::contains($registro[self::PRODUCTO],"*"),
'bono' => preg_match(self::REGEX_BONO, $registro[self::TIPO]), 'bono' => preg_match(self::REGEX_BONO, $registro[self::TIPO]),
'requiere_notas'=> $registro[self::TIPO] == self::PRODUCTO_TALLE_COLOR, 'requiere_notas'=> $registro[self::TIPO] == self::PRODUCTO_TALLE_COLOR,
]; ]);
} }
foreach (array_chunk($toInsert,DatabaseSeeder::CHUNK_SIZE) as $chunk) foreach (array_chunk($toInsert,DatabaseSeeder::CHUNK_SIZE) as $chunk)

View file

@ -16,12 +16,12 @@ class Subpedido extends Model
public function productos(): BelongsToMany public function productos(): BelongsToMany
{ {
return $this->belongsToMany('App\Producto')->withPivot(["cantidad", "notas"]); return $this->belongsToMany(Producto::class)->withPivot(["cantidad", "notas"]);
} }
public function grupoDeCompra(): BelongsTo public function grupoDeCompra(): BelongsTo
{ {
return $this->belongsTo('App\GrupoDeCompra'); return $this->belongsTo(GrupoDeCompra::class);
} }
// Permite que se apliquen los filtros al hacer una request (por ejemplo, de búsqueda) // Permite que se apliquen los filtros al hacer una request (por ejemplo, de búsqueda)
@ -91,7 +91,7 @@ class Subpedido extends Model
return TransporteHelper::cantidadTransporte($this->totalCentralesQuePaganTransporte()); return TransporteHelper::cantidadTransporte($this->totalCentralesQuePaganTransporte());
} }
//Actualiza el pedido, agregando o quitando del subpedido según sea necesario. Debe ser llamado desde el controlador de subpedidos, luego de validar que los parámetros $producto y $cantidad son correctos. También calcula el subtotal por producto. // Actualiza el pedido, agregando o quitando del subpedido según sea necesario. Debe ser llamado desde el controlador de subpedidos, luego de validar que los parámetros $producto y $cantidad son correctos. También calcula el subtotal por producto.
public function syncProducto(Producto $producto, int $cantidad, string $notas) public function syncProducto(Producto $producto, int $cantidad, string $notas)
{ {
if ($cantidad) { if ($cantidad) {
@ -106,11 +106,15 @@ class Subpedido extends Model
//si la cantidad es 0, se elimina el producto del subpedido //si la cantidad es 0, se elimina el producto del subpedido
$this->productos()->detach($producto->id); $this->productos()->detach($producto->id);
} }
$this->updated_at = now();
$this->save();
} }
public function toggleAprobacion(bool $aprobacion) public function toggleAprobacion(bool $aprobacion)
{ {
$this->aprobado = $aprobacion; $this->aprobado = $aprobacion;
$this->update(['aprobado' => $aprobacion]);
$this->save(); $this->save();
} }

View file

@ -1,10 +1,19 @@
<?php <?php
use Illuminate\Database\Seeder; use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class DatabaseSeeder extends Seeder class DatabaseSeeder extends Seeder
{ {
const CHUNK_SIZE = 100; const CHUNK_SIZE = 100;
static function addTimestamps($object) {
$now = DB::raw('CURRENT_TIMESTAMP');
$object['created_at'] = $now;
$object['updated_at'] = $now;
return $object;
}
/** /**
* Seed the application's database. * Seed the application's database.
* *

View file

@ -19,21 +19,22 @@ class GrupoDeCompraSeeder extends Seeder
$registros = CsvHelper::getRecords('csv/barrios.csv'); $registros = CsvHelper::getRecords('csv/barrios.csv');
$gdcToInsert = []; $gdcToInsert = [];
$usersToInsert = []; $usersToInsert = [];
$roles = UserRole::where('nombre', 'barrio')->orWhere('nombre', 'barrio_admin')->get(); $roles = UserRole::where('nombre', 'barrio')->orWhere('nombre', 'admin_barrio')->get();
foreach($registros as $key => $registro){ foreach($registros as $key => $registro){
$gdcToInsert[] = [ $gdcToInsert[] = DatabaseSeeder::addTimestamps([
'nombre' => $registro['barrio'], 'nombre' => $registro['barrio'],
'region' => $registro['region'], 'region' => $registro['region'],
]; ]);
foreach($roles as $role) { foreach($roles as $role) {
$usersToInsert[] = [ $nombre = $registro['barrio'] . ($role->nombre == 'barrio' ? '' : '_admin');
'name' => $registro['barrio'], $usersToInsert[] = DatabaseSeeder::addTimestamps([
'name' => $nombre,
'password' => Hash::make("123"), 'password' => Hash::make("123"),
'role_id' => $role->id, 'role_id' => $role->id,
'grupo_de_compra_id' => $key, 'grupo_de_compra_id' => $key,
]; ]);
} }
} }

View file

@ -16,11 +16,11 @@ class UserSeeder extends Seeder
{ {
$usersToInsert = []; $usersToInsert = [];
$usersToInsert[] = [ $usersToInsert[] = DatabaseSeeder::addTimestamps([
'name' => 'comi', 'name' => 'comi',
'password' => Hash::make("123"), 'password' => Hash::make("123"),
'role_id' => UserRole::where('nombre', 'comision')->first()->id, 'role_id' => UserRole::where('nombre', 'comision')->first()->id,
]; ]);
foreach (array_chunk($usersToInsert,DatabaseSeeder::CHUNK_SIZE) as $chunk) foreach (array_chunk($usersToInsert,DatabaseSeeder::CHUNK_SIZE) as $chunk)