<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;

class CrearPedidosAprobadosViewCommand extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'view:CrearPedidosAprobadosView';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Crea view "pedidos_aprobados"';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return int
     */
    public function handle(): int
    {
    	DB::statement("
            CREATE OR REPLACE 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
        ;");
        return 0;
    }
}