hasMany('App\Subpedido'); } public function exportarPlanillasAPdf() { $subpedidos = $this->subpedidos; //generar pdf $mpdf = new Mpdf();; foreach ($subpedidos as $subpedido) { $tabla = $subpedido->generarHTML(); // agregar la tabla al pdf en una nueva página $mpdf->WriteHTML($tabla); $mpdf->AddPage(); } // imprimir el pdf $mpdf->Output(); } //Asume que los productos están gruadados en orden de fila private function obtenerTemplateDeFilasVacias(){ $productosFilaID = Producto::productosFilaID(); $productosIDNombre = Producto::productosIDNombre(); $num_fila = 1; $template = []; foreach ($productosFilaID as $fila => $id) { for ($i = $num_fila; $i < $fila; $i++) { $template[$i] = ["", "0"]; } $template[$fila] = [$productosIDNombre[$id], "0"]; $num_fila = $fila+1; } return $template; } public function exportarPedidoEnCSV(){ $productos_en_pedido = DB::table('pedidos_aprobados')->where('grupo_de_compra_id',$this->id)->get()->keyBy('producto_id'); //si no hay pedidos aprobados, salir if ($productos_en_pedido->count() == 0) { \Log::debug("El grupo de compra ". $this->nombre . " no tiene pedidos aprobados."); return; } $records = $this->obtenerTemplateDeFilasVacias(); $productos_id_fila = Producto::productosIdFila(); foreach ($productos_en_pedido as $id => $producto_pedido){ $fila = $productos_id_fila[$id]; $records[$fila][1] = $producto_pedido->cantidad_pedida; } try { $writer = Writer::createFromPath(resource_path('csv/exports/'.$this->nombre.'.csv'), 'w'); $writer->insertAll($records); } catch (CannotInsertRecord $e) { var_export($e->getRecords()); } } public static function exportarTodosLosPedidosEnCSV(){ $gdcs=GrupoDeCompra::all(); foreach ($gdcs as $gdc){ $gdc->exportarPedidoEnCSV(); } } }