<?php
session_start();
require_once '../include/bd_pdo.php';
require_once '../classes/Fechas.php';

if(!isset($_POST['tipo'])){
    $return['error'] = 'Error! No se recibieron los datos.';
} else {
    date_default_timezone_set('America/Mexico_City');
    switch ($_POST['tipo']) {
        case 1: //Select All
            $error = false;
            $trabajos = array();
            $stmt = $pdo->prepare('SELECT * FROM alu_fs_trabajo(:Usuario_id, null)');
            $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']);
            if(!$stmt->execute()){
                $error = true;
                print_r($stmt->errorInfo());
            } else
                $trabajos = $stmt->fetchAll();
            $stmt->closeCursor();
            $stmt = null;
            if (count($trabajos) > 0){
                $html = '<div class="timeline">';
                foreach ($trabajos as $trabajo){
                    $html.= '<div class="trabajo">
                        <div class="d-flex flex-column justify-content-start align-items-start">
                            <div class="fecha indivisa-text-bold text-white mb-2">' . Fechas::fechaRango($trabajo['Trabajo_fechaInicio'], $trabajo['Trabajo_fechaFin'], '/') . '</div>
                            <div class="indivisa-text-bold">' . $trabajo['Trabajo_empresa'] . '</div>
                            <div class="indivisa-text-italic">' . $trabajo['Trabajo_nombre'] . '</div>
                            <div>' . $trabajo['Trabajo_descripcion'] . '</div>
                            <div class="d-flex flex-row justify-content-end align-items-center w-100">
                                <span class="ing-editar iconAcciones text-azul2" data-tipo="3" data-id="' . $trabajo['Trabajo_id'] . '"></span>
                                <span class="ing-basura iconAcciones text-danger" data-id="' . $trabajo['Trabajo_id'] . '"></span>
                            </div>
                        </div>
                        
                    </div>';
                }
                $html .= '</div>';
                $return['html'] = $html;
            } else {
                $return['html'] = '<div class="d-flex flex-row justify-content-center align-items-center">
                <div class="msgBox d-flex flex-row justify-content-center align-items-center">
                    <img src="img/triangulos.svg" class="imgBoxIzq" />
                    <img src="img/triangulos.svg" class="imgBoxDer" />
                    <hr class="hrArriba">
                    <hr class="hrAbajo">
                    <div class="d-flex flex-column justify-content-center align-items-center display-5 text-center">
                        <div>¡Lo sentimos!</div>
                        <div>Aún no tienes <span class="text-azul1 mx-1">ningún</span>empleo registrado</div>
                    </div>
                </div>
            </div>';
            }
            if ($error)
                $return['html'] = 'ERROR';
            break;
        case 2: //Add Empleo
            $_POST['puesto'] = filter_var($_POST['puesto'], FILTER_SANITIZE_STRING);
            $_POST['empresa'] = filter_var($_POST['empresa'], FILTER_SANITIZE_STRING);
            $_POST['inicio'] = filter_var($_POST['inicio'], FILTER_SANITIZE_STRING);
            $_POST['fin'] = filter_var($_POST['fin'], FILTER_SANITIZE_STRING);            
            if($_POST['fin'] == '')
                $stmt = $pdo->prepare('SELECT * FROM alu_fi_trabajo(:Trabajo_nombre, :Trabajo_empresa, :Trabajo_fechaInicio, :Trabajo_descripcion, :Usuario_id)');
            else{
                $stmt = $pdo->prepare('SELECT * FROM alu_fi_trabajo(:Trabajo_nombre, :Trabajo_empresa, :Trabajo_fechaInicio, :Trabajo_descripcion, :Usuario_id, :Trabajo_fechaFin)');
                $temp = explode('/',$_POST['fin']);
                $fecha_fin = $temp[1] . '-' . $temp[0] . '-01';
                $stmt->bindParam(':Trabajo_fechaFin', $fecha_fin, PDO::PARAM_STR);
            }
            $stmt->bindParam(':Trabajo_nombre', $_POST['puesto'], PDO::PARAM_STR);
            $stmt->bindParam(':Trabajo_empresa', $_POST['empresa'], PDO::PARAM_STR);
            $temp = explode('/',$_POST['inicio']);
            $fecha_inicio = $temp[1] . '-' . $temp[0] . '-01';
            $stmt->bindParam(':Trabajo_fechaInicio', $fecha_inicio, PDO::PARAM_STR);
            $stmt->bindParam(':Trabajo_fechaInicio', $fecha_inicio, PDO::PARAM_STR);
            $stmt->bindParam(':Trabajo_descripcion', $_POST['descripcion'], PDO::PARAM_STR);
            $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']);
            if(!$stmt->execute()){
                print_r($stmt->errorInfo());
                $return['error'] = 'No fue posible agregar el empleo de <span class="text-azul1">' . $_POST['puesto'] . '</span>';
            }
            else
                $return['ok'] = 'Se agregó correctamente el empleo de <span class="text-azul1">' . $_POST['puesto'] . '</span>';
            $stmt->closeCursor();
            $stmt = null;
            break;
        case 3: //Update Empleo
            $_POST['puesto'] = filter_var($_POST['puesto'], FILTER_SANITIZE_STRING);
            $_POST['empresa'] = filter_var($_POST['empresa'], FILTER_SANITIZE_STRING);
            $_POST['inicio'] = filter_var($_POST['inicio'], FILTER_SANITIZE_STRING);
            $_POST['fin'] = filter_var($_POST['fin'], FILTER_SANITIZE_STRING);            
            if($_POST['fin'] == '')
                    $stmt = $pdo->prepare('SELECT * FROM alu_fu_trabajo(:Trabajo_id, :Trabajo_nombre, :Trabajo_empresa, :Trabajo_fechaInicio, :Trabajo_descripcion, :Usuario_id)');
            else{
                $stmt = $pdo->prepare('SELECT * FROM alu_fu_trabajo(:Trabajo_id, :Trabajo_nombre, :Trabajo_empresa, :Trabajo_fechaInicio, :Trabajo_descripcion, :Usuario_id, :Trabajo_fechaFin)');
                $temp = explode('/',$_POST['fin']);
                $fecha_fin = $temp[1] . '-' . $temp[0] . '-01';
                $stmt->bindParam(':Trabajo_fechaFin', $fecha_fin, PDO::PARAM_STR);
            }
            $stmt->bindParam(':Trabajo_id', $_POST['id']);
            $stmt->bindParam(':Trabajo_nombre', $_POST['puesto'], PDO::PARAM_STR);
            $stmt->bindParam(':Trabajo_empresa', $_POST['empresa'], PDO::PARAM_STR);
            $temp = explode('/',$_POST['inicio']);
            $fecha_inicio = $temp[1] . '-' . $temp[0] . '-01';
            $stmt->bindParam(':Trabajo_fechaInicio', $fecha_inicio, PDO::PARAM_STR);
            $stmt->bindParam(':Trabajo_descripcion', $_POST['descripcion'], PDO::PARAM_STR);
            $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']);
            if(!$stmt->execute()) {
                print_r($stmt->errorInfo());
                $return['error'] = 'No fue posible editar el empleo de <span class="text-azul1">' . $_POST['puesto'] . '</span>';
            }
            else
                $return['ok'] = 'Se editó correctamente el empleo de <span class="text-azul1">' . $_POST['puesto'] . '</span>';
            $stmt->closeCursor();
            $stmt = null;
            break;
        case 4: //Delete Empleo
            $_POST['id'] = intval(filter_var($_POST['id'], FILTER_SANITIZE_NUMBER_INT));
            $stmt = $pdo->prepare('SELECT * FROM alu_fd_trabajo(:Trabajo_id, :Usuario_id)');
            $stmt->bindParam(':Trabajo_id', $_POST['id']);
            $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']);
            if(!$stmt->execute()){
                print_r($stmt->errorInfo());
                $return['error'] = 'No fue posible eliminar el empleo ';
            }
            else
                $return['ok'] = 'Se eliminó de manera exitosa el empleo ';
            $stmt->closeCursor();
            $stmt = null;
            break;
        case 5://Select One
            $_POST['id'] = intval(filter_var($_POST['id'], FILTER_SANITIZE_NUMBER_INT));
            $stmt = $pdo->prepare('SELECT * FROM alu_fs_trabajo(:Usuario_id, :Trabajo_id)');
            $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']);
            $stmt->bindParam(':Trabajo_id', $_POST['id']);
            if(!$stmt->execute()){
                $return['error'] = 'No fue posible obtener los datos del empleo ';
                print_r($stmt->errorInfo());
            } else {
                $trabajo = $stmt->fetch();
                $return['puesto'] = $trabajo['Trabajo_nombre'];
                $return['empresa'] = $trabajo['Trabajo_empresa'];
                $temp = explode('/', $trabajo['Trabajo_fechaInicio']);
                $return['inicio'] = $temp[1] . '/' . $temp[0];
                if (!is_null($trabajo['Trabajo_fechaFin'])) {
                    $temp = explode('/', $trabajo['Trabajo_fechaFin']);
                    $return['fin'] = $temp[1] . '/' . $temp[0];
                } else
                    $return['fin'] = '';
                if (!is_null($trabajo['Trabajo_descripcion']))
                    $return['descripcion'] = $trabajo['Trabajo_descripcion'];
                else
                    $return['descripcion'] = '';
            }
            $stmt->closeCursor();
            $stmt = null;
            break;
    }
}
$return['json'] = json_encode($return);
echo json_encode($return);