Planilla de notas + ignorar barrio PRUEBA

This commit is contained in:
Alejandro Tasistro 2024-12-09 12:33:42 -03:00
parent acc21091f9
commit f778a4f24e
1 changed files with 18 additions and 13 deletions

View File

@ -83,17 +83,19 @@ class Producto extends Model
static public function planillaTotales() { static public function planillaTotales() {
$headers = ['Producto']; $headers = ['Producto'];
$barrios = DB::table('grupos_de_compra')->pluck('nombre')->toArray(); $barrios = DB::table('grupos_de_compra')
->where('nombre', '<>', 'PRUEBA')
->pluck('nombre')->toArray();
$headers = array_merge($headers, $barrios); $headers = array_merge($headers, $barrios);
$cantidadesPorBarrio = Producto::cantidadesPorBarrio(); $cantidadesPorBarrio = self::cantidadesPorBarrio();
$planilla = []; $planilla = [];
$ultimaFila = 1; $ultimaFila = 1;
foreach ($cantidadesPorBarrio as $productoCantidades) { foreach ($cantidadesPorBarrio as $productoCantidades) {
$fila = $productoCantidades->fila; $fila = $productoCantidades->fila;
while ($fila - $ultimaFila > 1) { while ($fila - $ultimaFila > 1) {
$producto = Producto::where('fila', $ultimaFila)->first(); $producto = self::where('fila', $ultimaFila)->first();
$planilla[$ultimaFila] = [$producto ? $producto->nombre : '']; $planilla[$ultimaFila] = [$producto ? $producto->nombre : ''];
$ultimaFila++; $ultimaFila++;
} }
@ -104,7 +106,6 @@ class Producto extends Model
$ultimaFila = $fila; $ultimaFila = $fila;
} }
// Guardar en un archivo .csv
try { try {
$writer = Writer::createFromPath(resource_path('csv/exports/total-pedidos.csv'), 'w'); $writer = Writer::createFromPath(resource_path('csv/exports/total-pedidos.csv'), 'w');
$writer->insertOne($headers); $writer->insertOne($headers);
@ -114,12 +115,9 @@ class Producto extends Model
} }
} }
static public function planillaNotas() { public static function notasPorBarrio(): \Illuminate\Support\Collection
$headers = ['Producto']; {
$barrios = DB::table('grupos_de_compra')->pluck('nombre')->toArray(); return DB::table('productos')
$headers = array_merge($headers, $barrios);
$notasPorBarrio = DB::table('productos')
->join('producto_subpedido', 'productos.id', '=', 'producto_subpedido.producto_id') ->join('producto_subpedido', 'productos.id', '=', 'producto_subpedido.producto_id')
->join('subpedidos', 'producto_subpedido.subpedido_id', '=', 'subpedidos.id') ->join('subpedidos', 'producto_subpedido.subpedido_id', '=', 'subpedidos.id')
->join('grupos_de_compra', 'subpedidos.grupo_de_compra_id', '=', 'grupos_de_compra.id') ->join('grupos_de_compra', 'subpedidos.grupo_de_compra_id', '=', 'grupos_de_compra.id')
@ -130,18 +128,25 @@ class Producto extends Model
'producto_subpedido.notas' 'producto_subpedido.notas'
) )
->get() ->get()
->groupBy('producto'); // Group notes by product ->groupBy('producto');
}
static public function planillaNotas() {
$headers = ['Producto'];
$barrios = DB::table('grupos_de_compra')
->where('nombre', '<>', 'PRUEBA')
->pluck('nombre')->toArray();
$headers = array_merge($headers, $barrios);
$notasPorBarrio = self::notasPorBarrio();
$planilla = []; $planilla = [];
foreach ($notasPorBarrio as $producto => $notasGrupo) { foreach ($notasPorBarrio as $producto => $notasGrupo) {
$fila = [$producto]; $fila = [$producto];
foreach ($barrios as $barrio) { foreach ($barrios as $barrio) {
$notas = $notasGrupo->where('barrio', $barrio)->pluck('notas')->implode('; '); $notas = $notasGrupo->where('barrio', $barrio)->pluck('notas')->implode('; ');
$fila[] = $notas ?: ''; $fila[] = $notas ?: '';
} }
$planilla[] = $fila; $planilla[] = $fila;
} }