From 087f9c84bf677364d84595d3c50777e0b0156cb2 Mon Sep 17 00:00:00 2001 From: ale Date: Tue, 13 May 2025 17:01:21 -0300 Subject: [PATCH 1/4] Agregadas constantes y cambiada logica de bono usando regex --- app/Helpers/CanastaHelper.php | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/app/Helpers/CanastaHelper.php b/app/Helpers/CanastaHelper.php index 9d3edcf..7a80fee 100644 --- a/app/Helpers/CanastaHelper.php +++ b/app/Helpers/CanastaHelper.php @@ -14,10 +14,12 @@ use Illuminate\Support\Str; class CanastaHelper { const TIPO = "Tipo"; - const TOTAL = "TOTAL"; + const PRODUCTO = 'Producto'; + const PRECIO = 'Precio'; + const REGEX_BONO = "/^[BF]/i"; const ARCHIVO_SUBIDO = 'Archivo subido'; const CANASTA_CARGADA = 'Canasta cargada'; - const TIPOS_BONO = ["B", "F", "BE"]; + const PRODUCTO_TALLE_COLOR = "PTC"; public static function guardarCanasta($data, $path): string { $nombre = $data->getClientOriginalName(); @@ -37,10 +39,6 @@ class CanastaHelper $categoria = ''; foreach($registros as $i => $registro) { - // finalizar - if ($registro[self::TIPO] == self::TOTAL) - break; - // saltear filas que no tienen tipo if (self::noTieneTipo($registro)) { var_dump("no hay tipo en la fila " . $i); @@ -53,7 +51,7 @@ class CanastaHelper } // obtener categoria si no hay producto - if ($registro['Producto'] == '') { + if ($registro[self::PRODUCTO] == '') { // no es la pregunta de la copa? if (!Str::contains($registro[self::TIPO],"¿")) $categoria = $registro[self::TIPO]; @@ -64,11 +62,11 @@ class CanastaHelper $toInsert[] = [ 'fila' => $i, 'categoria' => $categoria, - 'nombre' => trim(str_replace('*', '',$registro['Producto'])), - 'precio' => $registro['Precio'], - 'proveedor_id' => self::obtenerProveedor($registro['Producto']), - 'bono' => in_array($registro[self::TIPO], self::TIPOS_BONO), - 'requiere_notas'=> $registro[self::TIPO] =="PTC", + 'nombre' => trim(str_replace('*', '',$registro[self::PRODUCTO])), + 'precio' => $registro[self::PRECIO], + 'proveedor_id' => self::obtenerProveedor($registro[self::PRODUCTO]), + 'bono' => preg_match(self::REGEX_BONO, $registro[self::TIPO]), + 'requiere_notas'=> $registro[self::TIPO] == self::PRODUCTO_TALLE_COLOR, ]; } -- 2.48.1 From 3bd7219ca2b3c0b2e34df98f6bfa6a31e2903376 Mon Sep 17 00:00:00 2001 From: ale Date: Tue, 13 May 2025 17:10:56 -0300 Subject: [PATCH 2/4] Productos ordenados por id en el pdf (en el orden de la planilla cargada) --- app/GrupoDeCompra.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/app/GrupoDeCompra.php b/app/GrupoDeCompra.php index 6d56966..3a0fe18 100644 --- a/app/GrupoDeCompra.php +++ b/app/GrupoDeCompra.php @@ -110,7 +110,7 @@ class GrupoDeCompra extends Model function pedidoParaPdf(): array { - $productos = $this->productosPedidos(true, true); + $productos = $this->productosPedidos(true, true, 'producto_id'); $pedido = []; $pedido['productos'] = []; @@ -260,10 +260,7 @@ class GrupoDeCompra extends Model return $result; } - /** - * @return Collection - */ - public function productosPedidos($excluirBarriales = false, $excluirBonos = false): Collection + public function productosPedidos($excluirBarriales = false, $excluirBonos = false, $orderBy = 'producto_nombre'): Collection { $query = DB::table('pedidos_aprobados') ->where('grupo_de_compra_id', $this->id); @@ -274,6 +271,7 @@ class GrupoDeCompra extends Model $query = $query->where('producto_es_bono',false); return $query + ->orderBy($orderBy) ->get() ->keyBy('producto_id'); } -- 2.48.1 From f85a8b777f3e975535ec453a14a1cdf5803acce1 Mon Sep 17 00:00:00 2001 From: ale Date: Tue, 13 May 2025 17:01:21 -0300 Subject: [PATCH 3/4] Agregadas constantes y cambiada logica de bono usando regex --- app/Helpers/CanastaHelper.php | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/app/Helpers/CanastaHelper.php b/app/Helpers/CanastaHelper.php index 9d3edcf..7a80fee 100644 --- a/app/Helpers/CanastaHelper.php +++ b/app/Helpers/CanastaHelper.php @@ -14,10 +14,12 @@ use Illuminate\Support\Str; class CanastaHelper { const TIPO = "Tipo"; - const TOTAL = "TOTAL"; + const PRODUCTO = 'Producto'; + const PRECIO = 'Precio'; + const REGEX_BONO = "/^[BF]/i"; const ARCHIVO_SUBIDO = 'Archivo subido'; const CANASTA_CARGADA = 'Canasta cargada'; - const TIPOS_BONO = ["B", "F", "BE"]; + const PRODUCTO_TALLE_COLOR = "PTC"; public static function guardarCanasta($data, $path): string { $nombre = $data->getClientOriginalName(); @@ -37,10 +39,6 @@ class CanastaHelper $categoria = ''; foreach($registros as $i => $registro) { - // finalizar - if ($registro[self::TIPO] == self::TOTAL) - break; - // saltear filas que no tienen tipo if (self::noTieneTipo($registro)) { var_dump("no hay tipo en la fila " . $i); @@ -53,7 +51,7 @@ class CanastaHelper } // obtener categoria si no hay producto - if ($registro['Producto'] == '') { + if ($registro[self::PRODUCTO] == '') { // no es la pregunta de la copa? if (!Str::contains($registro[self::TIPO],"¿")) $categoria = $registro[self::TIPO]; @@ -64,11 +62,11 @@ class CanastaHelper $toInsert[] = [ 'fila' => $i, 'categoria' => $categoria, - 'nombre' => trim(str_replace('*', '',$registro['Producto'])), - 'precio' => $registro['Precio'], - 'proveedor_id' => self::obtenerProveedor($registro['Producto']), - 'bono' => in_array($registro[self::TIPO], self::TIPOS_BONO), - 'requiere_notas'=> $registro[self::TIPO] =="PTC", + 'nombre' => trim(str_replace('*', '',$registro[self::PRODUCTO])), + 'precio' => $registro[self::PRECIO], + 'proveedor_id' => self::obtenerProveedor($registro[self::PRODUCTO]), + 'bono' => preg_match(self::REGEX_BONO, $registro[self::TIPO]), + 'requiere_notas'=> $registro[self::TIPO] == self::PRODUCTO_TALLE_COLOR, ]; } -- 2.48.1 From 01dbb9667adb4cd7d715e610eadb5ac2a4bbe7b9 Mon Sep 17 00:00:00 2001 From: ale Date: Tue, 13 May 2025 17:10:56 -0300 Subject: [PATCH 4/4] Productos ordenados por id en el pdf (en el orden de la planilla cargada) --- app/GrupoDeCompra.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/app/GrupoDeCompra.php b/app/GrupoDeCompra.php index 6d56966..3a0fe18 100644 --- a/app/GrupoDeCompra.php +++ b/app/GrupoDeCompra.php @@ -110,7 +110,7 @@ class GrupoDeCompra extends Model function pedidoParaPdf(): array { - $productos = $this->productosPedidos(true, true); + $productos = $this->productosPedidos(true, true, 'producto_id'); $pedido = []; $pedido['productos'] = []; @@ -260,10 +260,7 @@ class GrupoDeCompra extends Model return $result; } - /** - * @return Collection - */ - public function productosPedidos($excluirBarriales = false, $excluirBonos = false): Collection + public function productosPedidos($excluirBarriales = false, $excluirBonos = false, $orderBy = 'producto_nombre'): Collection { $query = DB::table('pedidos_aprobados') ->where('grupo_de_compra_id', $this->id); @@ -274,6 +271,7 @@ class GrupoDeCompra extends Model $query = $query->where('producto_es_bono',false); return $query + ->orderBy($orderBy) ->get() ->keyBy('producto_id'); } -- 2.48.1