<?php
require 'db1.php'; // Incluye el archivo de conexión a la base de datos


date_default_timezone_set('America/Guayaquil');
// Agregar los encabezados para desactivar la caché
header("Cache-Control: no-cache, no-store, must-revalidate");
header("Pragma: no-cache");
header("Expires: 0");

// Endpoint para obtener datos de la tabla conario
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
    if (isset($_GET['pry_id'])) {
        $proyectoId = $_GET['pry_id'];

        $query = "SELECT * FROM proyecto WHERE pry_id = ?";
        $stmt = $conn->prepare($query);
        $stmt->execute([$proyectoId]);

        $data = $stmt->fetch(PDO::FETCH_ASSOC);

        if ($data) {
            echo json_encode($data);
        } else {
            echo json_encode(array("message" => "No se encontró ningún Proyecto"));
        }
    } 
    if (isset($_GET['con_id'])) {
        $con_id = $_GET['con_id'];

        $query = "SELECT * FROM proyecto WHERE con_id = ?";
        $stmt = $conn->prepare($query);
        $stmt->execute([$con_id]);

        $data = $stmt->fetchAll(PDO::FETCH_ASSOC);

        if ($data) {
            echo json_encode($data);
        } else {
            echo json_encode(array("message" => "No se encontró ningún Proyecto"));
        }
    } 
    else {
        $query = "SELECT * FROM proyecto";
        $stmt = $conn->prepare($query);
        $stmt->execute();

        $data = $stmt->fetchAll(PDO::FETCH_ASSOC);

        echo json_encode($data);
    }
}

// Endpoint para insertar datos en la tabla conario
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    try {
        $data = json_decode(file_get_contents('php://input'), true);

        // Extraer los valores del arreglo $data
        $pry_id = $data['pry_id'];
        $pry_fecha_creacion = date('Y-m-d H:i:s');
        $pry_fecha_modificacion = date('Y-m-d H:i:s');
        $pry_estado = $data['pry_estado'];
        $con_id = $data['con_id'];
        $pry_nombre_sipeip = $data['pry_nombre_sipeip'];
        $pry_costo_total = $data['pry_costo_total'];
        $pry_num_viviendas_incentivo_saneamiento = $data['pry_num_viviendas_incentivo_saneamiento'];
        $pry_num_viviendas_planificadas = $data['pry_num_viviendas_planificadas'];
        $pry_plazo_finalizacion = $data['pry_plazo_finalizacion'];
        $pry_fecha_inicio = $data['pry_fecha_inicio'];
        $pry_dias_ampliacion_prorrog_plazo = $data['pry_dias_ampliacion_prorrog_plazo'];
        $pry_monto_total_bien_obra = $data['pry_monto_total_bien_obra'];
        $pry_var_num_viviendas_planif = $data['pry_var_num_viviendas_planif'];
        $pry_num_viviendas_ejecut = $data['pry_num_viviendas_ejecut'];
        $pry_tipo = $data['pry_tipo'];
        
        $query = "INSERT INTO proyecto (
            pry_id,
            pry_fecha_creacion,
            pry_fecha_modificacion,
            pry_estado,
            con_id,
            pry_nombre_sipeip,
            pry_costo_total,
            pry_num_viviendas_incentivo_saneamiento,
            pry_num_viviendas_planificadas,
            pry_plazo_finalizacion,
            pry_fecha_inicio,
            pry_dias_ampliacion_prorrog_plazo,
            pry_monto_total_bien_obra,
            pry_var_num_viviendas_planif,
            pry_num_viviendas_ejecut,
            pry_tipo
        ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

        $stmt = $conn->prepare($query);
        $stmt->execute([
            $pry_id,
            $pry_fecha_creacion,
            $pry_fecha_modificacion,
            $pry_estado,
            $con_id,
            $pry_nombre_sipeip,
            $pry_costo_total,
            $pry_num_viviendas_incentivo_saneamiento,
            $pry_num_viviendas_planificadas,
            $pry_plazo_finalizacion,
            $pry_fecha_inicio,
            $pry_dias_ampliacion_prorrog_plazo,
            $pry_monto_total_bien_obra,
            $pry_var_num_viviendas_planif,
            $pry_num_viviendas_ejecut,
            $pry_tipo
        ]);

        $insertedId = $pry_id; // Assuming the inserted ID is the same as the provided ID
        echo json_encode(array("message" => "0", "inserted_id" => 1));
    } catch (PDOException $e) {
        if ($e->getCode() == 23000) {
            // Código 23000 indica una violación de integridad (clave duplicada)
            echo json_encode(array("message" => "Error: Se intentó ingresar una clave primaria ya existente", "inserted_id" => "-3"));
        } else {
            // Otro error, imprime el mensaje de la excepción
            echo json_encode(array("message" => "Error: " . $e->getMessage(), "inserted_id" => -2));
        }
    }
}


// Endpoint para actualizar datos en la tabla persona
if ($_SERVER['REQUEST_METHOD'] === 'PUT') {
    try {
    if (isset($_GET['pry_id'])) {
    $data = json_decode(file_get_contents('php://input'), true);
    $pry_id_anterior = $_GET['pry_id'];        
    $pry_id = $data['pry_id']; // ID del proyecto a actualizar
    

    // Extraer otros valores del arreglo $data

    $query = "UPDATE proyecto SET
        pry_id = ?,
        pry_fecha_modificacion = ?,
        pry_estado = ?,
        con_id = ?,
        pry_nombre_sipeip = ?,
        pry_costo_total = ?,
        pry_num_viviendas_incentivo_saneamiento = ?,
        pry_num_viviendas_planificadas = ?,
        pry_plazo_finalizacion = ?,
        pry_fecha_inicio = ?,
        pry_dias_ampliacion_prorrog_plazo = ?,
        pry_monto_total_bien_obra = ?,
        pry_var_num_viviendas_planif = ?,
        pry_num_viviendas_ejecut = ?,
        pry_tipo = ?
    WHERE pry_id = ?";

    $stmt = $conn->prepare($query);
    $stmt->execute([
        $pry_id,
        date('Y-m-d H:i:s'), // pry_fecha_modificacion
        $data['pry_estado'],
        $data['con_id'],
        $data['pry_nombre_sipeip'],
        $data['pry_costo_total'],
        $data['pry_num_viviendas_incentivo_saneamiento'],
        $data['pry_num_viviendas_planificadas'],
        $data['pry_plazo_finalizacion'],
        $data['pry_fecha_inicio'],
        $data['pry_dias_ampliacion_prorrog_plazo'],
        $data['pry_monto_total_bien_obra'],
        $data['pry_var_num_viviendas_planif'],
        $data['pry_num_viviendas_ejecut'],
        $data['pry_tipo'],
        $pry_id_anterior
    ]);

    if ($stmt) {
        echo json_encode(array("message" => "1"));
    } else {
        echo json_encode(array("message" => "-1"));
    }

} else {
    $data = json_decode(file_get_contents('php://input'), true);

    $pry_id = $data['pry_id']; // ID del proyecto a actualizar

    // Extraer otros valores del arreglo $data

    $query = "UPDATE proyecto SET
        pry_fecha_modificacion = ?,
        pry_estado = ?,
        con_id = ?,
        pry_nombre_sipeip = ?,
        pry_costo_total = ?,
        pry_num_viviendas_incentivo_saneamiento = ?,
        pry_num_viviendas_planificadas = ?,
        pry_plazo_finalizacion = ?,
        pry_fecha_inicio = ?,
        pry_dias_ampliacion_prorrog_plazo = ?,
        pry_monto_total_bien_obra = ?,
        pry_var_num_viviendas_planif = ?,
        pry_num_viviendas_ejecut = ?,
        pry_tipo = ?
    WHERE pry_id = ?";

    $stmt = $conn->prepare($query);
    $stmt->execute([
        date('Y-m-d H:i:s'), // pry_fecha_modificacion
        $data['pry_estado'],
        $data['con_id'],
        $data['pry_nombre_sipeip'],
        $data['pry_costo_total'],
        $data['pry_num_viviendas_incentivo_saneamiento'],
        $data['pry_num_viviendas_planificadas'],
        $data['pry_plazo_finalizacion'],
        $data['pry_fecha_inicio'],
        $data['pry_dias_ampliacion_prorrog_plazo'],
        $data['pry_monto_total_bien_obra'],
        $data['pry_var_num_viviendas_planif'],
        $data['pry_num_viviendas_ejecut'],
        $data['pry_tipo'],
        $pry_id
    ]);

    if ($stmt) {
        echo json_encode(array("inserted_id" => 1));
    } else {
        echo json_encode(array("inserted_id" => -2));
    }
}
} catch (PDOException $e) {
        if ($e->getCode() == 23000) {
            // Código 23000 indica una violación de integridad (clave duplicada)
            echo json_encode(array("message" => "Error: Se intentó ingresar una clave primaria ya existente", "inserted_id" => "-3"));
        } else {
            // Otro error, imprime el mensaje de la excepción
            echo json_encode(array("message" => "Error: " . $e->getMessage(), "inserted_id" => -2));
        }
    }
}



// Endpoint para eliminar un registro de la tabla persona
if ($_SERVER['REQUEST_METHOD'] === 'DELETE') {
try {
    $data = json_decode(file_get_contents('php://input'), true);

    $pry_id = $data['pry_id']; // ID del proyecto a eliminar

    $query = "DELETE FROM proyecto WHERE pry_id = ?";

    $stmt = $conn->prepare($query);
    if ($stmt->execute([$pry_id])) {
        echo json_encode(array("inserted_id" => 1));
    } else {
        echo json_encode(array("inserted_id" => -2));
    }
} catch (PDOException $e) {
     echo json_encode(array("message" => "Error: " . $e->getMessage(), "inserted_id" => -2));
    }
}

$conn = null;
?>