<?php namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\DB; class PedidoController extends Controller { public function generarTablas() { //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;"); //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 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'); PREPARE stmt FROM @sql; EXECUTE stmt;"); return "Tabla productos_por_grupo_de_compra generada. " . date('l jS \of F Y h:i:s A'); } }