Boton para descargar notas en pag de compras

This commit is contained in:
Rodrigo 2024-10-15 20:44:28 -03:00
parent 1e443ea2ca
commit b5f4443836
4 changed files with 47 additions and 4 deletions

View File

@ -228,12 +228,38 @@ class GrupoDeCompra extends Model
$planilla = GrupoDeCompra::obtenerTemplateDeFilasVacias($gdcs->count());
$planilla = self::getPlanilla($gdcs, $planilla);
// Guardar en un archivo .csv
// Guardar en un archivo .csv
try {
$writer = Writer::createFromPath(resource_path('csv/exports/total-pedidos.csv'), 'w');
$writer->insertAll($planilla);
$writer = Writer::createFromPath(resource_path('csv/exports/total-pedidos.csv'), 'w');
$writer->insertAll($planilla);
} catch (CannotInsertRecord $e) {
var_export($e->getRecords());
var_export($e->getRecords());
}
}
public static function exportarProductosConNotasEnCSV() {
$gdcs = GrupoDeCompra::all();
foreach ($gdcs as $i => $gdc) {
$productos_en_pedido = DB::table('pedidos_aprobados')->where('grupo_de_compra_id', $gdc->id)->get()->keyBy('producto_id');
$pedidos = $gdc->pedidosAprobados();
foreach ($productos_en_pedido as $id => $producto_pedido) {
foreach ($pedidos as $pedido) {
$producto = $pedido->productos()->find($id);
if ($producto != null && $producto->requiere_notas) {
$planilla[$i+1][0] = $gdc->nombre;
$planilla[$i+1][1] = $producto->nombre;
$planilla[$i+1][2] = $producto->pivot->cantidad;
$planilla[$i+1][3] = $producto->pivot->notas;
}
}
}
}
// Guardar en un archivo .csv
try {
$writer = Writer::createFromPath(resource_path('csv/exports/pedidos-notas.csv'), 'w');
$writer->insertAll($planilla);
} catch (CannotInsertRecord $e) {
var_export($e->getRecords());
}
}
}

View File

@ -15,6 +15,12 @@ class ComprasController
$file = resource_path('csv/exports/total-pedidos.csv');
return response()->download($file);
}
public function descargarNotas() {
GrupoDeCompra::exportarProductosConNotasEnCSV();
$file = resource_path('csv/exports/pedidos-notas.csv');
return response()->download($file);
}
public function show()
{

View File

@ -11,6 +11,16 @@
</a>
</p>
</div>
<div class="field">
<p class="control">
<a href="/compras/pedidos/notas" class="button">
<span class="icon is-small">
<i class="fas fa-sticky-note"></i>
</span>
<span>Descargar planilla de notas</span>
</a>
</p>
</div>
</div>
</div>
</template>

View File

@ -81,4 +81,5 @@ Route::get('/compras', 'ComprasController@show')->name('compras_login.show');
Route::middleware(['compras'])->group( function() {
Route::get('/compras/pedidos', 'ComprasController@indexPedidos')->name('compras.pedidos');
Route::get('/compras/pedidos/descargar', 'ComprasController@descargarPedidos')->name('compras.pedidos.descargar');
Route::get('/compras/pedidos/notas', 'ComprasController@descargarNotas')->name('compras.pedidos.descargar');
});