Compare commits
5 commits
14193ba027
...
e6fe5e8960
Author | SHA1 | Date | |
---|---|---|---|
e6fe5e8960 | |||
94e55f8161 | |||
7d87471d8b | |||
0ecff9ae68 | |||
ac8ee0799b |
5 changed files with 64 additions and 21 deletions
|
@ -35,6 +35,7 @@ class PedidosExportHelper
|
|||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws InvalidArgument
|
||||
* @throws CannotInsertRecord
|
||||
|
@ -43,16 +44,16 @@ class PedidosExportHelper
|
|||
static public function pedidosDeOllas()
|
||||
{
|
||||
$filePath = "csv/exports/pedidos-de-ollas-" . now()->format('Y-m-d') . ".csv";
|
||||
$tipo_olla = self::getTipoId('olla');
|
||||
$barrios = GrupoDeCompra::barriosMenosPrueba()
|
||||
->whereHas('subpedidos', function ($query) {
|
||||
$tipo_olla = self::getTipoId('olla');
|
||||
->whereHas('subpedidos', function ($query) use ($tipo_olla) {
|
||||
$query->where('tipo_pedido_id', $tipo_olla);
|
||||
})
|
||||
->get();
|
||||
|
||||
$contenido = self::generarContenidoCSV($barrios,
|
||||
fn($grupoId) => "subpedidos.grupo_de_compra_id = $grupoId
|
||||
AND subpedidos.tipo_pedido_id = 2");
|
||||
AND subpedidos.tipo_pedido_id = $tipo_olla");
|
||||
$ollas = self::cantidadDeOllasParaCSV($barrios, $contenido);
|
||||
|
||||
self::exportarCSV(
|
||||
|
@ -128,6 +129,32 @@ class PedidosExportHelper
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws InvalidArgument
|
||||
* @throws CannotInsertRecord
|
||||
* @throws Exception
|
||||
*/
|
||||
static public function faltantesYSobrantes()
|
||||
{
|
||||
$filePath = "csv/exports/faltantes-y-sobrantes-" . now()->format('Y-m-d') . ".csv";
|
||||
$tipoPedidoId = self::getTipoId('faltantes_y_sobrantes');
|
||||
$barrios = GrupoDeCompra::barriosMenosPrueba()
|
||||
->whereHas('subpedidos', function ($query) use ($tipoPedidoId) {
|
||||
$query->where('tipo_pedido_id', $tipoPedidoId);
|
||||
})
|
||||
->get();
|
||||
|
||||
$contenido = self::generarContenidoCSV($barrios,
|
||||
fn($grupoId) => "subpedidos.grupo_de_compra_id = $grupoId
|
||||
AND subpedidos.tipo_pedido_id = $tipoPedidoId");
|
||||
|
||||
self::exportarCSV(
|
||||
$filePath,
|
||||
$barrios,
|
||||
$contenido
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws InvalidArgument
|
||||
* @throws CannotInsertRecord
|
||||
|
@ -252,7 +279,7 @@ class PedidosExportHelper
|
|||
*/
|
||||
public static function getTipoId(string $tipo)
|
||||
{
|
||||
$tipo_olla = TipoPedido::where('nombre', $tipo)->first()->id;
|
||||
return $tipo_olla;
|
||||
$tipoPedido = TipoPedido::where('nombre', $tipo)->first()->id;
|
||||
return $tipoPedido;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -137,7 +137,7 @@ class SubpedidoController extends Controller
|
|||
|
||||
$producto = Producto::find($valid['producto_id']);
|
||||
if ($producto->bono)
|
||||
abort(400, "No te puede haber faltado un bono");
|
||||
abort(400, "No puede haber faltado un bono");
|
||||
|
||||
$cantidad = $valid['cantidad'];
|
||||
if ($cantidad < 0) { // caso faltantes
|
||||
|
@ -145,11 +145,11 @@ class SubpedidoController extends Controller
|
|||
|
||||
$productoPedido = $barrio->productosPedidos()->where('producto_id', $producto->id)->first();
|
||||
if (!$productoPedido)
|
||||
abort(400, "No te puede faltar algo que no pediste");
|
||||
abort(400, "No pueden faltar productos no pedidos");
|
||||
|
||||
$cantidadPedida = intval($productoPedido->cantidad_pedida);
|
||||
if ($cantidadPedida + $cantidad < 0)
|
||||
abort(400, 'No te puede faltar más de lo que pediste');
|
||||
abort(400, 'No puede faltar más de lo pedido');
|
||||
}
|
||||
|
||||
$subpedido->syncProducto($producto, $cantidad);
|
||||
|
|
|
@ -65,6 +65,23 @@ class ComisionesController
|
|||
return response()->download($files[0]);
|
||||
}
|
||||
|
||||
public function descargarFaltantesYSobrantes()
|
||||
{
|
||||
try {
|
||||
PedidosExportHelper::faltantesYSobrantes();
|
||||
} catch (CannotInsertRecord|InvalidArgument|Exception $e) {
|
||||
return response()->json(['message' => $e->getMessage()], 500);
|
||||
}
|
||||
$pattern = storage_path('csv/exports/faltantes-y-sobrantes-*.csv');
|
||||
$files = glob($pattern);
|
||||
|
||||
usort($files, function ($a, $b) {
|
||||
return filemtime($b) <=> filemtime($a);
|
||||
});
|
||||
|
||||
return response()->download($files[0]);
|
||||
}
|
||||
|
||||
public function descargarNotas()
|
||||
{
|
||||
try {
|
||||
|
|
|
@ -14,17 +14,8 @@
|
|||
</div>
|
||||
<div class="dropdown-menu" id="dropdown-menu" role="menu">
|
||||
<div class="dropdown-content">
|
||||
<a href="/comisiones/pedidos/descargar" class="dropdown-item">
|
||||
Pedidos por barrio en csv
|
||||
</a>
|
||||
<a href="/comisiones/pedidos/notas" class="dropdown-item">
|
||||
Notas por barrio en csv
|
||||
</a>
|
||||
<a href="/comisiones/pedidos/pdf" class="dropdown-item">
|
||||
Pedidos por barrio en pdf
|
||||
</a>
|
||||
<a href="/comisiones/pedidos/ollas" class="dropdown-item">
|
||||
Pedidos de ollas en csv
|
||||
<a v-for="(opcion,i) in opciones" :key="i" :href="opcion.href" class="dropdown-item">
|
||||
{{ opcion.nombre }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -36,7 +27,14 @@
|
|||
export default {
|
||||
data() {
|
||||
return {
|
||||
dropdownActivo: false
|
||||
dropdownActivo: false,
|
||||
opciones: [
|
||||
{ nombre: 'Pedidos por barrio en csv', href: '/comisiones/pedidos/descargar' },
|
||||
{ nombre: 'Notas por barrio en csv', href: '/comisiones/pedidos/notas' },
|
||||
{ nombre: 'Pedidos por barrio en pdf', href: '/comisiones/pedidos/pdf' },
|
||||
{ nombre: 'Pedidos de ollas en csv', href: '/comisiones/pedidos/ollas' },
|
||||
{ nombre: 'Faltantes y sobrantes en csv', href: '/comisiones/faltantes-y-sobrantes' },
|
||||
],
|
||||
}
|
||||
},
|
||||
}
|
||||
|
|
|
@ -58,7 +58,8 @@ Route::middleware(['auth', 'role:comision'])->prefix('comisiones')->group( funct
|
|||
Route::post('/canasta', 'ComisionesController@cargarCanasta')->name('comisiones.canasta');
|
||||
Route::get('/saldos/ejemplo', 'ComisionesController@descargarSaldosEjemplo')->name('comisiones.saldos.ejemplo');
|
||||
Route::post('/saldos', 'ComisionesController@cargarSaldos')->name('comisiones.saldos');
|
||||
Route::put('/parametros/{parametro_id}', 'ComisionesController@modificarParametros');
|
||||
Route::put('/parametros/{parametro_id}', 'ComisionesController@modificarParametros')->name('comisiones.parametros.modificar');
|
||||
Route::get('/faltantes-y-sobrantes', 'ComisionesController@descargarFaltantesYSobrantes')->name('comisiones.faltantesYsobrantes');
|
||||
});
|
||||
|
||||
Route::get('/ollas/login', 'OllasController@show')->name('ollas.login');
|
||||
|
|
Loading…
Add table
Reference in a new issue