<?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');
    }
}