<?php
error_reporting(E_ALL ^ E_NOTICE);
// Permite la conexion desde cualquier origen
header("Access-Control-Allow-Origin: *");
// Permite la ejecucion de los metodos
header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE");
// Se incluye el archivo que contiene la clase generica
include_once '../conexion.php';
$bodyRequest = file_get_contents("php://input");
// Decodifica el cuerpo de la solicitud y lo guarda en un array de PHP
$datos = json_decode($bodyRequest, true);

if ($datos[0] == "1") {
    $sql = "SELECT C.periodo, C.mes, SUM(D.subtotaligv) AS total_ventas, 
              SUBSTRING_INDEX(GROUP_CONCAT(ELT(MONTH(C.fecha_emision), 'Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic') ORDER BY C.fecha_emision), ',', 1) AS nommesabrev,
              SUBSTRING_INDEX(GROUP_CONCAT(ELT(MONTH(C.fecha_emision), 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre') ORDER BY C.fecha_emision), ',', 1) AS nommes
           FROM ventas AS C INNER JOIN detventas AS D ON C.id = D.venta_id 
           WHERE {$datos[1]} {$datos[2]}";
} elseif ($datos[0] == "2") {
    $sql = "SELECT C.periodo, C.mes, SUM(D.margen) AS total_utilidades,
              SUBSTRING_INDEX(GROUP_CONCAT(ELT(MONTH(C.fecha_emision), 'Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic') ORDER BY C.fecha_emision), ',', 1) AS nommesabrev,
              SUBSTRING_INDEX(GROUP_CONCAT(ELT(MONTH(C.fecha_emision), 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre') ORDER BY C.fecha_emision), ',', 1) AS nommes
           FROM ventas AS C INNER JOIN detventas AS D ON C.id = D.venta_id
           WHERE {$datos[1]} {$datos[2]}";
} elseif ($datos[0] ==  "3") {
    $sql = "SELECT C.periodo, C.mes, SUM(D.subtotaligv) AS total_compras,
              SUBSTRING_INDEX(GROUP_CONCAT(ELT(MONTH(C.fecha_emision), 'Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic') ORDER BY C.fecha_emision), ',', 1) AS nommesabrev,
              SUBSTRING_INDEX(GROUP_CONCAT(ELT(MONTH(C.fecha_emision), 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre') ORDER BY C.fecha_emision), ',', 1) AS nommes
           FROM compras AS C INNER JOIN detcompras AS D ON C.id = D.compra_id 
           WHERE {$datos[1]} {$datos[2]}";
} 
  
$rows = array();

//print_r($datos);

if ($result = mysqli_query($conn, $sql)) {
    if (mysqli_num_rows($result) > 0) {
        while ($row = mysqli_fetch_assoc($result)) {
            $rows[] = $row;
        }
        mysqli_free_result($result);
    } else {
        //echo "No records matching your query were found.";
        print_json([]);
    }
} else {
    echo "ERROR: Could not able to execute the query."; // . mysqli_error($this->conn);
}
// Cerrar la conexión a la base de datos
mysqli_close($conn);

print_json($rows);
function print_json($data) {
    header("Content-type: application/json; charset=utf-8");
    echo json_encode($data, JSON_UNESCAPED_UNICODE);
    	
    switch (json_last_error()) {
        case JSON_ERROR_NONE:
            //  echo ' - No errors';
            break;
        case JSON_ERROR_DEPTH:
            echo ' - Maximum stack depth exceeded';
            break;
        case JSON_ERROR_STATE_MISMATCH:
            echo ' - Underflow or the modes mismatch';
            break;
        case JSON_ERROR_CTRL_CHAR:
            echo ' - Unexpected control character found';
            break;
        case JSON_ERROR_SYNTAX:
            echo ' - Syntax error, malformed JSON';
            break;
        case JSON_ERROR_UTF8:
            echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
            break;
        default:
            echo ' - Unknown error';
            break;
	}
}

?>