2022-04-19 17:24:59 -03:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Http\Controllers\Api;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
|
|
|
|
class PedidoController extends Controller
|
|
|
|
{
|
|
|
|
public function generarTablas()
|
|
|
|
{
|
2022-06-11 10:49:39 -03:00
|
|
|
//GENERAR TABLA DE PEDIDOS APROBADOS
|
|
|
|
DB::unprepared("DROP VIEW if exists pedidos_aprobados;
|
|
|
|
CREATE VIEW pedidos_aprobados AS
|
|
|
|
SELECT
|
|
|
|
g.id as grupo_de_compra_id,
|
|
|
|
g.nombre as grupo_de_compra_nombre,
|
|
|
|
g.region as grupo_de_compra_region,
|
|
|
|
pr.id AS producto_id,
|
|
|
|
pr.nombre as producto_nombre,
|
|
|
|
pr.precio as producto_precio,
|
|
|
|
SUM(ps.cantidad) as cantidad_pedida,
|
|
|
|
pr.precio*SUM(ps.cantidad) as total_por_producto
|
|
|
|
FROM grupos_de_compra g
|
|
|
|
JOIN subpedidos s ON (s.grupo_de_compra_id = g.id AND s.aprobado=1)
|
|
|
|
JOIN producto_subpedido ps ON (ps.subpedido_id = s.id)
|
|
|
|
JOIN productos pr ON (pr.id = ps.producto_id)
|
|
|
|
GROUP BY g.id, g.nombre, pr.id, pr.nombre;");
|
|
|
|
|
2022-04-19 17:24:59 -03:00
|
|
|
//GENERAR TABLA GENERAL
|
|
|
|
DB::unprepared("DROP VIEW if exists productos_por_grupo_de_compra;
|
|
|
|
SET @barrios = NULL;
|
|
|
|
SELECT
|
|
|
|
GROUP_CONCAT(DISTINCT CONCAT('MAX(IF(`grupo_de_compra_nombre` = \"', `grupo_de_compra_nombre`,'\", `cantidad_pedida`,NULL)) AS \"',`grupo_de_compra_nombre`,'\"')) INTO @barrios
|
2022-06-11 10:49:39 -03:00
|
|
|
FROM pedidos_aprobados;
|
|
|
|
SET @sql = CONCAT('CREATE VIEW productos_por_grupo_de_compra AS SELECT producto_nombre, ', @barrios, ' FROM pedidos_aprobados GROUP BY producto_nombre');
|
2022-04-19 17:24:59 -03:00
|
|
|
PREPARE stmt FROM @sql;
|
|
|
|
EXECUTE stmt;");
|
|
|
|
return "Tabla productos_por_grupo_de_compra generada. " . date('l jS \of F Y h:i:s A');
|
|
|
|
}
|
|
|
|
}
|