<?php include('./templates/cabecera.php'); ?>
<?php include('./config/db.php'); ?>
<?php include('funciones.php'); ?>
<?php 
$html = "instalaciones.php";
if(!$_GET){
    echo "<script>location.href='$html?pagina=1';</script>";
}

if($_SESSION['perfil'] == 2){
    echo "<script>location.href='index.php?pagina=1';</script>";
}

$error = "";
$ok = "";
$txtFiltro=(isset($_GET['txtFiltro']))?$_GET['txtFiltro']:"";
$totalPaginas = 10;
$paginadorSalto = 9;
$txtId=(isset($_POST['txtId']))?$_POST['txtId']:"";
if(isset($_POST['chkActivo']) == "on"){
    $chkActivo = 1; //activo
}else{
    $chkActivo = 0; //inactivo
}
$txtNomInstalacion=(isset($_POST['txtNomInstalacion']))?$_POST['txtNomInstalacion']:"";
$selRegion=(isset($_POST['selRegion']))?$_POST['selRegion']:"";
$txtDireccion=(isset($_POST['txtDireccion']))?$_POST['txtDireccion']:"";
$selSupervisor=(isset($_POST['selSupervisor']))?$_POST['selSupervisor']:"";
$selPrevencionista=(isset($_POST['selPrevencionista']))?$_POST['selPrevencionista']:"";
$selCliente=(isset($_POST['selCliente']))?$_POST['selCliente']:"";

$action=(isset($_POST['action']))?$_POST['action']:"";

switch($action){
    case "Agregar":
            $txtNomInstalacion = limpiaHTML($txtNomInstalacion);
            if($txtNomInstalacion == ""){
                $error = $error."-Debe ingresar un nombre de instalación<br>";
            }
            
            try{
                $sql=$conexion->prepare("SELECT * FROM instalacion where nombre LIKE :nombre;");  
                $sql->bindParam(":nombre",$txtNomInstalacion);
                $sql->execute();
                if($sql->rowCount() > 0){
                    $error = $error."-El nombre ingresado ya se encuentra en nuestros registros<br>";
                }
            }catch (Exception $err) {
                echo ("Ha ocurrido un error en la solicitud. ");  
            }
            
        if(strlen($error) == 0){
            try{
                $txtDireccion = limpiaHTML($txtDireccion);
                $sql=$conexion->prepare("INSERT INTO instalacion (activo,nombre, regionId, direccion, 
                supervisorId, prevencionistaId, clienteId) 
                VALUES (:activo,:nombre,:regionId,:direccion,:supervisorID,:prevencionistaId,:ClienteId);");  
                $sql->bindParam(":activo",$chkActivo);
                $sql->bindParam(":nombre",$txtNomInstalacion);
                $sql->bindParam(":regionId",$selRegion);
                $sql->bindParam(":direccion",$txtDireccion);
                $sql->bindParam(":supervisorID",$selSupervisor);
                $sql->bindParam(":prevencionistaId",$selPrevencionista);
                $sql->bindParam(":ClienteId",$selCliente);
                $sql->execute();
                echo("<script>alert('Se ha ingresado el registro satisfactoriamente');</script>");
                echo "<script>location.href='$html';</script>";
            }catch (Exception $err) {
                $error = ("Ha ocurrido un error al agregar la solicitud");  
            }
        }
        break;
    case "Modificar":
            if($txtNomInstalacion == ""){
                $error = $error."-Debe ingresar un nombre de instalación<br>";
            }
            if(strlen($error) == 0){
                try{
                    $txtNomInstalacion = limpiaHTML($txtNomInstalacion);
                    
                    $txtDireccion = limpiaHTML($txtDireccion);
                    $sql=$conexion->prepare("UPDATE instalacion SET activo=:activo, nombre=:nombre, 
                    regionId=:regionId, direccion=:direccion, supervisorId=:supervisorID, 
                    prevencionistaId=:prevencionistaId, clienteId=:ClienteId where id=:id;");  
                    $sql->bindParam(":id",$txtId);
                    $sql->bindParam(":activo",$chkActivo);
                    $sql->bindParam(":nombre",$txtNomInstalacion);
                    $sql->bindParam(":regionId",$selRegion);
                    $sql->bindParam(":direccion",$txtDireccion);
                    $sql->bindParam(":supervisorID",$selSupervisor);
                    $sql->bindParam(":prevencionistaId",$selPrevencionista);
                    $sql->bindParam(":ClienteId",$selCliente);
                    $sql->execute();
                    echo("<script>alert('Se ha modificado el registro satisfactoriamente');</script>");
                    echo "<script>location.href='$html';</script>";
                }catch (Exception $err) {
                    $error = ("Ha ocurrido un error al modificar la solicitud");  
                }
            }
        break;
    case "Volver":
        echo "<script>location.href='index.php';</script>";
        break;
    case "Seleccionar":
        try{
            $sql=$conexion->prepare("SELECT * FROM instalacion where id=:id;");  
            $sql->bindParam(":id",$txtId);
            $sql->execute();
            $Instalacion = $sql->fetch(PDO::FETCH_LAZY); //1 solo atributo, para trabajar con él
            $txtId= $Instalacion['id'];
            $chkActivo = $Instalacion['activo'];
            $txtNomInstalacion = $Instalacion['nombre'];
            $selRegion = $Instalacion['regionId'];
            $txtDireccion = $Instalacion['direccion'];
            $selSupervisor = $Instalacion['supervisorId'];
            $selPrevencionista = $Instalacion['prevencionistaId'];
            $selCliente = $Instalacion['clienteId'];
        }catch (Exception $err) {
            $error = ("Ha ocurrido un error al seleccionar el registro"); 
        }
        break;
}

$sqlInstalacion="SELECT ins.id, ins.nombre, ins.activo, ins.regionId, ins.direccion, reg.region, reg.abreviatura 
FROM instalacion ins inner join regiones reg on reg.id=ins.regionId ";  
if($txtFiltro!="" ){
    $sqlInstalacion = $sqlInstalacion . " where ins.direccion LIKE :id or reg.region LIKE :id or ins.nombre LIKE :id";
}
try{
    $sql=$conexion->prepare($sqlInstalacion); 
    if($txtFiltro!="" ){
        $txtFiltro2=limpiaHTML("%".$txtFiltro."%");
        $sql->bindParam(":id",$txtFiltro2);
    }

    $sql->execute();
    if($sql->rowCount() > 0){
        $totalDatos = $sql->rowCount();
        $paginas = $totalDatos/$totalPaginas;
        $paginas = ceil($paginas);
    }else{
        $paginas = 1;
    }
}catch (Exception $err) {
    echo ("Ha ocurrido un error en la solicitud. ");    
    //throw $th;
}
if(is_null($_GET['pagina'])){
    $getPagina=0;
}else{
    $getPagina = intval($_GET['pagina']);
}

$iniciar = ($getPagina-1) * $totalPaginas;
$sqlInstalacion=$sqlInstalacion." ORDER BY id LIMIT :iniciar,:totalPaginas;";

try{
    $sql=$conexion->prepare($sqlInstalacion); 
    if($txtFiltro!="" ){
        $txtFiltro2=limpiaHTML("%".$txtFiltro."%");
        $sql->bindParam(":id",$txtFiltro2);
    }
    $sql->bindParam(":iniciar",$iniciar, PDO::PARAM_INT);
    $sql->bindParam(":totalPaginas",$totalPaginas, PDO::PARAM_INT);
    $sql->execute();
}catch (Exception $err) {
    echo ("Ha ocurrido un error en la solicitud. ");    
    throw $err;
}
$listaInstalacion = $sql->fetchAll(PDO::FETCH_ASSOC); //almacena todos los registros como arreglo
?>
<script type="text/javascript">
	$(document).ready(function(){
		/*$('#selRegion').change(function(){
			recargaComuna();
		});*/
        $('#selSupervisor').select2();
        $('#selPrevencionista').select2();
        $('#selCliente').select2();
	})
</script>
<div class="col-md-4">
    <div class="card">
        <div class="card-header">
            <h4>Instalaciones<h4/>
        </div>
        <div class="card-body">
                <?php if(strlen($error) > 0) {?>
                    <div class='alert alert-danger' role="alert">
                        <?php echo $error; ?>
                    </div>
                <?php }?>
            <form method="POST" enctype="multipart/form-data">
                <input type="hidden" class="form-control" name="txtId" id="txtId" value="<?php echo $txtId; ?>" >
                <div class="form-check form-switch">
                    <label for="chkActivo">Activo</label>
                    <input class="form-check-input" type="checkbox" id="chkActivo" name="chkActivo" <?php if($chkActivo == "1") {echo ("checked"); } ?>>
                </div>
                <!--i class="bi-alarm" style="font-size: 2rem; color: cornflowerblue;"></i-->
                <div class = "form-group">
                    <label for="exampleSelect1" class="form-label mt-1">Nombre instalaci&oacute;n*</label>
                    <input type="text" required class="form-control" name="txtNomInstalacion" id="txtNomInstalacion" value="<?php echo $txtNomInstalacion; ?>">
                </div>
                <div class = "form-group">
                    <label for="exampleSelect1" class="form-label mt-1">Regi&oacute;n</label>
                    <select class="form-select" id="selRegion" name="selRegion" >
                    <?php
                    try{
                    $sqlRegion=$conexion->prepare("SELECT id, region FROM regiones;");  
                    $sqlRegion->execute();
                    $listaRegion = $sqlRegion->fetchAll(PDO::FETCH_ASSOC); //almacena todos los registros como arreglo
                        foreach($listaRegion as $reg) { ?>
                            <option value="<?php echo $reg['id'] ?>" <?php if($selRegion==$reg['id']) {echo ("selected"); } ?>><?php echo $reg['region'] ?></option>
                        <?php 
                        } 
                    }catch (Exception $err) {
                        echo ("Ha ocurrido un error en la solicitud. ");    
                        throw $err;
                    }
                    ?>
                    </select>
                </div>
                <div class = "form-group">
                    <label for="exampleSelect1" class="form-label mt-1">Direcci&oacute;n</label>
                    <input type="text" class="form-control" name="txtDireccion" id="txtDireccion" value="<?php echo $txtDireccion; ?>">
                </div>
                <div class = "form-group">
                    <label for="exampleSelect1" class="form-label mt-1">Supervisor</label>
                    <select required class="form-select" id="selSupervisor" name="selSupervisor" >
                    <option value="0">Seleccione</option>
                    <?php
                    try{
                    $sqlSupervisor=$conexion->prepare("SELECT id, nombres, apellidos FROM usuarios where activo=1 and perfil in (2);");  
                    $sqlSupervisor->execute();
                    $listaSupervisor = $sqlSupervisor->fetchAll(PDO::FETCH_ASSOC); //almacena todos los registros como arreglo
                        foreach($listaSupervisor as $sup) { ?>
                            <option value="<?php echo $sup['id'] ?>" <?php if($selSupervisor==$sup['id']) {echo ("selected"); } ?>><?php echo $sup['nombres']." ".$sup['apellidos'] ?></option>
                        <?php 
                        } 
                    }catch (Exception $err) {
                        echo ("Ha ocurrido un error en la solicitud. ");    
                        throw $err;
                    }
                    ?>
                    </select>
                </div>
                <div class = "form-group">
                    <label for="exampleSelect1" class="form-label mt-1">Prevencionista</label>
                    <select required class="form-select" id="selPrevencionista" name="selPrevencionista" >
                    <option value="0">Seleccione</option>
                    <?php
                    try{
                    $sqlPrevencionista=$conexion->prepare("SELECT id, nombres, apellidos FROM usuarios where activo=1 and perfil in (3);"); 
                    $sqlPrevencionista->execute();
                    $listaPrevencionista = $sqlPrevencionista->fetchAll(PDO::FETCH_ASSOC); //almacena todos los registros como arreglo
                        foreach($listaPrevencionista as $prev) { ?>
                            <option value="<?php echo $prev['id'] ?>" <?php if($selPrevencionista==$prev['id']) {echo ("selected"); } ?>><?php echo $prev['nombres']." ".$prev['apellidos'] ?></option>
                        <?php 
                        } 
                    }catch (Exception $err) {
                        echo ("Ha ocurrido un error en la solicitud. ");    
                        throw $err;
                    }
                    ?>
                    </select>
                </div>
                <div class = "form-group">
                    <label for="exampleSelect1" class="form-label mt-1">Cliente*</label>
                    <select required class="form-select" id="selCliente" name="selCliente" >
                    <?php
                    try{
                    $sqlCliente=$conexion->prepare("SELECT id, nombre, rut FROM cliente where activo=1;");  
                    $sqlCliente->execute();
                    $listaCliente = $sqlCliente->fetchAll(PDO::FETCH_ASSOC); //almacena todos los registros como arreglo
                        foreach($listaCliente as $cli) { ?>
                            <option value="<?php echo $cli['id'] ?>" <?php if($selCliente==$cli['id']) {echo ("selected"); } ?>><?php echo $cli['rut']." ".$cli['nombre'] ?></option>
                        <?php 
                        } 
                    }catch (Exception $err) {
                        echo ("Ha ocurrido un error en la solicitud. ");    
                        throw $err;
                    }
                    ?>
                    </select>
                </div>
                
                <br/>
                <div class="btn-group" role="group" aria-label="">
                    <button type="submit" name="action" <?php if ($action=="Seleccionar" or $action=="Modificar"  ){echo ("disabled");} ?> value="Agregar" class="btn btn-outline-success" onclick="return confirm('¿Está seguro de agregar el registro?')">Agregar</button> &nbsp;
                    <button type="submit" name="action" <?php if ($action!="Seleccionar" and $action!="Modificar"){echo ("disabled");} ?> value="Modificar" class="btn btn-outline-warning" onclick="return confirm('¿Está seguro de modificar el registro?')">Modificar</button>&nbsp;
                    <button type="submit" name="action" formnovalidate="" value="Volver" class="btn btn-outline-info">Volver</button>
                </div>
            </form>
        </div>
    </div>
</div>
<div class="col-md-8">
        <form class="d-flex" method="GET">
            <input type="hidden" class="form-control" name="pagina" id="pagina" value="<?php echo $getPagina; ?>" >
            <input class="form-control me-sm-2" type="text" placeholder="filtrar" name="txtFiltro" id="txtFiltro" value="<?php echo ($txtFiltro!="")?$txtFiltro:""; ?>">
            <button class="btn btn-outline-info" name="action" type="submit" value="Filtrar">Filtrar</button>
        </form>
    <table class="table table-hover">
        <thead>
            <tr>
                <th>ID</th>
                <th>Nombre</th>
                <th>Regi&oacute;n</th>
                <th>Direcci&oacute;n</th>
                <th>Acci&oacute;n</th>
            </tr>
        </thead>
        <tbody>
            <?php 
            foreach($listaInstalacion as $cli) { ?>
            <tr>
                <td><?php echo $cli['id'] ?></td>
                <td><?php echo $cli['nombre'] ?></td>
                <td><?php echo $cli['abreviatura'] ?></td>
                <td><?php echo $cli['direccion'] ?></td>
                <td>
                    <form method="post">
                        <input type="hidden" name="txtId" id="txtId" value="<?php echo $cli['id'] ?>">
                        <!--input type="submit" name="action" value="Seleccionar" class="btn btn-outline-dark "-->
                        <button type="submit" name="action" class="btn btn-outline-dark" value="Seleccionar">
                            <i type="submit" class="bi bi-check2-circle" style="font-size: 1rem; color: #BA0700;"></i>
                        </button>
                    </form>
                </td>
            </tr>
            <?php } ?>
        </tbody>
    </table>
    <div>
        <ul class="pagination">
            <li class="page-item <?php echo ($getPagina<=1)?"disabled":""; ?>">
                <a class="page-link" href="<?php echo $html; ?>?pagina=<?php echo $getPagina-1 ?>&txtFiltro=<?php echo $txtFiltro; ?>">&laquo;</a>
            </li>
            <?php for($i=0; $i< $paginas; $i++ ) { 
                    if((($i+1)%$paginadorSalto)==0){
                        echo("</ul><ul class='pagination'>");
                    } 
                ?>
            <li class="page-item <?php echo ($getPagina==$i+1)?"active":""; ?>">
                <a class="page-link" href="<?php echo $html; ?>?pagina=<?php echo $i+1 ?>&txtFiltro=<?php echo $txtFiltro; ?>"><?php echo $i+1 ?></a>
            </li>
            <?php } ?>
            <li class="page-item <?php echo ($getPagina>=$paginas)?"disabled":""; ?>">
                <a class="page-link" href="<?php echo $html; ?>?pagina=<?php echo $getPagina+1 ?>&txtFiltro=<?php echo $txtFiltro; ?>">&raquo;</a>
            </li>
        </ul>
    </div>
</div>

<?php include('./templates/pie.php'); ?>