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

@ -236,4 +236,30 @@ class GrupoDeCompra extends Model
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

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

View File

@ -11,6 +11,16 @@
</a> </a>
</p> </p>
</div> </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>
</div> </div>
</template> </template>

View File

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