<?php $r="../";
require_once($r."inc/funciones.php");
validNotSession($r);
$mysqli = connectDB($r);
$idcaja = $_GET['id'];
$infocaja = sinfo('z_caja_new', $idcaja);
$fecha = $infocaja['fecha'];
$sql2 = $mysqli->query("SELECT * FROM z_caja_new WHERE fecha = '$fecha' AND estado<2");
$saldo =0;


?>
<!DOCTYPE html>
<html lang="es">
  <?php include $r."inc/head.php"; ?>
<body class="fixed-nav sidenav-toggled sticky-footer bg-dark" id="page-top">
  <div class="container">
    <div id="mensaje" style="position:fixed;width:90%;padding-left:10%;top:20px;left:0px;margin:0 auto;z-index:9999;"></div>
  </div>
  <?php include $r."inc/nav.php"; ?>
  <style>
      .table td, .table th {
    padding: 0.35rem;
}
  </style>
  <div class="content-wrapper">
    <div class="container-fluid">
      <div class="card mb-3">
        <div class="card-header">
          <div class="row">
            <div class="col-sm">
                <h3><i class="fa fa-table"></i> CAJA FECHA <?= $fecha ?></h3>
            </div>
            <div class="col-sm">
              <?if(!$infocaja["estado"]){ ?>
                <a class="btn btn-danger float-right m-1" onclick="closecaja(<?= $idcaja; ?>)" ><i class="fa fa-close mr-1"></i>CERRAR CAJA</a>
                <a class="btn btn-primary float-right m-1" onclick="addmovimiento()" title="NUEVO MOVIMIENTO" ><i class="fa fa-plus mr-1"></i> NUEVO REGISTRO</a>
              <? } ?>
            </div>
         </div>
            
            
        </div>
        <div class="card-body">
          <div class="table-responsive">
            <table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
              <thead>
                <tr>
                  <th>FECHA</th>
                  <th>DETALLES</th>
                  <th>NOMBRE</th>
                  <th>INGRESO</th>
                  <th>EGRESO</th>
                  <th>SALDO</th>
                 <?if(!$infocaja["estado"]){ ?><th></th><? } ?>
                </tr>
              </thead>
              <tfoot>
                <tr>
                  <th>FECHA</th>
                  <th>DETALLES</th>
                  <th>NOMBRE</th>
                  <th>INGRESO</th>
                  <th>EGRESO</th>
                  <th>SALDO</th>
                  <?if(!$infocaja["estado"]){ ?><th></th><? } ?>
                </tr>
              </tfoot>
              <tbody id="tabla_registros">
                    <?php 
                    while($row2 = $sql2->fetch_assoc()) { ?>
                      <tr>
                        <td><?= $row2["fecha"]; ?></td>
                        <td><?= $row2["detalle"]; ?></td>
                        <td><?= sinfo('z_caja_new_usuarios',$row2["usuario"])['nombre']; ?></td>
                        <td><?= moneda($row2["ingreso"]); $saldo = $saldo + $row2["ingreso"]; ?></td>
                        <td><?= moneda($row2["egreso"]); $saldo = $saldo - $row2["egreso"];  ?></td>
                        <td><?= moneda($saldo); ?></td>
                        <?if(!$infocaja["estado"]){ ?><td>
                            <? if($row2["tipo"]==0){ ?><i class="text-danger fa fa-trash" style="cursor:pointer" onclick="eliminarmovimiento(<?= $row2["id"]; ?>)"></i><? } ?>
                            <i class="text-primary fa fa-pencil" style="cursor:pointer" onclick="editmovimiento(<?= $row2["id"]; ?>)"></i>
                        </td><? } ?>
                      </tr>
                    <?php } ?>
              <tbody>
            </table>
          </div>
        </div>
      </div>
    </div>
  </div>
  
  
<div class="modal fade" id="addmovimiento" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document" style="max-width:100%">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">NUEVO MOVIMIENTO</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        <form class="row m-1" id="formaddmovimiento" action="acciones_new_caja.php">
          <div class="m-0 p-1 col-md-2 col-sm-12">
            <label for="staticEmail2" class="sr-only">FECHA</label>
            <input type="date" class="form-control" name="fecha"  value="<?= $fecha; ?>" readonly>
          </div>
          <div id="divdetalle" class="m-0 p-1 col-md-3 col-sm-12">
            <label for="inputPassword2" class="sr-only">DETALLE</label>
            <input type="text" class="form-control" name="detalle" placeholder="DETALLE">
            <input type="hidden"  id="formaction" name="add" value="1">
          </div>
          <div id="divnombre" class="m-0 p-1 col-md-3 col-sm-12">
            <label for="inputPassword2" class="sr-only">NOMBRE</label>
            <select class="chosen-select" name="nombre" id="nombre" data-placeholder="NOMBRE...">
                <option selected disabled></option>
                <?php  $sql3 = $mysqli->query("SELECT * FROM `z_caja_new_usuarios`");
                    while($row3 = $sql3->fetch_assoc()) { ?>
                      <option value="<?= $row3['id']; ?>"><?= $row3['nombre']; ?></option>
                    <?php } ?>
                <option value="OTRO">OTRO</option>
            </select>
          </div>
          <!-- Input para el caso "OTRO" (inicialmente oculto) -->
          
          <div id="otroInputContainer" class="m-0 p-1 col-md-2 col-sm-12" style="display:none">
            <label for="inputPassword2" class="sr-only">CUAL OTRO</label>
            <input type="text" class="form-control" name="otro"  placeholder="CUAL OTRO">
          </div>
          <div class="m-0 p-1 col-md-2 col-sm-12">
            <label for="inputPassword2" class="sr-only">INGRESO</label>
            <input type="number" class="form-control" name="ingreso"  placeholder="INGRESO">
          </div>
          <div class="m-0 p-1 col-md-2 col-sm-12">
            <label for="inputPassword2" class="sr-only">EGRESO</label>
            <input type="number" class="form-control" name="egreso"  placeholder="EGRESO">
          </div>
        </form>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">CERRAR</button>
        <button type="submit" class="btn btn-primary" form="formaddmovimiento">GUARDAR</button>
      </div>
    </div>
  </div>
</div>



  <?php include $r."inc/foot.php"; ?>
</body>

<script>
    $(document).ready(function(){
        // Función que se ejecuta al seleccionar OTRO
        $('#nombre').change(function(){
            if($(this).val() == 'OTRO'){
                $('#otroInputContainer').show();
                 $('#divdetalle').removeClass('col-md-3').addClass('col-md-2');
                 $('#divnombre').removeClass('col-md-3').addClass('col-md-2');
            } else {
                // Oculta el input si no se selecciona OTRO
                $('#otroInputContainer').hide();
                 $('#divdetalle').removeClass('col-md-2').addClass('col-md-3');
                 $('#divnombre').removeClass('col-md-2').addClass('col-md-3');
            }
        });
        // Función que se ejecuta al enviar el formulario
        $('#formaddmovimiento').submit(function(event){
            event.preventDefault(); // Evita el envío tradicional del formulario
            
            // Validación para que solo sea ingreso o egreso, no ambos
            var ingreso = parseFloat($('input[name="ingreso"]').val());
            var egreso = parseFloat($('input[name="egreso"]').val());
            var edit = parseFloat($('input[name="edit"]').val());

            if (isNaN(ingreso) && isNaN(egreso)) {
                alert("Debes ingresar al menos un valor en Ingreso o Egreso.");
                return;
            }

            if (!isNaN(ingreso) && !isNaN(egreso)) {
                alert("Debes ingresar solo un valor en Ingreso o Egreso, no ambos.");
                return;
            }
             var nombre = $('#nombre').val();
            // Envía el formulario utilizando AJAX (ejemplo básico)
            $.ajax({
                type: 'POST',
                url: $(this).attr('action'),
                data: $(this).serialize()+ '&nombre=' + nombre,
                success: function(response){
                    // Maneja la respuesta del servidor si es necesario
                    action_responde(response);
                    if(edit!=0){
                        $('#addmovimiento').modal('hide');
                    }
                },
                error: function(error){
                    // Maneja los errores si es necesario
                    swal({
                        title: 'ERROR',
                        text: 'Ocurrió un error: ',
                        icon: 'warning',
                    });
                }
            });
        });
        
    });
    $('#dataTable').DataTable( {
        "pageLength": 50,
        "order": [[ 0, "asc" ]]
    } );
    
    function addmovimiento(){
        $('#addmovimiento').modal('show');
        $('#formaction').attr('name','add');
        $('input[name=detalle]').removeAttr('readonly');
        $('#formaddmovimiento')[0].reset();
        $('#nombre').val('').trigger('chosen:updated');
        $('input[name=egreso]').show();
        $('#formaction').val('1');
    }
    function editmovimiento(id){
        
        $('#formaddmovimiento')[0].reset();
        $('#nombre').val('').trigger('chosen:updated');
        $.post( "acciones_new_caja.php", { loadmovimiento: id })
          .done(function( data ) {
                $('input[name=detalle]').val(data.detalle);
                if (data.detalle == 'SALDO ANTERIOR') { 
                   $('input[name=detalle]').attr('readonly', true);
                $('input[name=egreso]').hide();
                } else {
                    $('input[name=detalle]').removeAttr('readonly');
                $('input[name=egreso]').show();
                }
                $('select[name=nombre]').val(data.usuario).trigger('chosen:updated');
                if (data.ingreso>0) {
                    $('input[name=ingreso]').val(data.ingreso);
                }
                if (data.egreso>0) {
                    $('input[name=egreso]').val(data.egreso);
                }
                $('#formaction').attr('name','edit');
                $('#formaction').val(data.id);
          });
        $('#addmovimiento').modal('show');
    }
    
    function action_responde(data){
        if (data.addvalor !== undefined && data.addvalor !== null) {
            $('select[name="nombre"]').append('<option value="' + data.addvalor + '">' + data.addnombre + '</option>');
            $("#nombre").trigger("chosen:updated");
        }
        if(data.tipo === 'redirect'){
            window.location.href = data.url;
        }
        if(data.tipo === 'msn'){
            swal({
                title: data.title,
                text: data.mensaje,
                icon: 'info',
            });
        }
        if (data.tipo === 'modal') {
            swal({
                title: data.title,
                text: data.mensaje,
                icon: 'info',
            })
            // Resetea el formulario
            $('#formaddmovimiento')[0].reset();

            // Resetea el select-chosen
            $('#nombre').val('').trigger('chosen:updated');
            $('#otroInputContainer').hide();
            reload_table();
            
        }
    }
    
    function reload_table(){
        $.post( "acciones_new_caja.php", { loadtable: <?= $idcaja; ?> })
          .done(function( data ) {
            $('#tabla_registros').html(data);
          });
        
    }
    
    function eliminarmovimiento(idmovimiento){
        $.post( "acciones_new_caja.php", { remove: idmovimiento })
          .done(function( data ) {
            reload_table();
          });
        
    }
    
    function closecaja(URL){
        swal({
            title: "ESTAS SEGURA DE CERRAR LA CAJA",
            type: "warning",
            showCancelButton: true,
            confirmButtonColor: "#DD6B55",
            confirmButtonText: "si",
            closeOnConfirm: false,
            cancelButtonText: "cancelar",
            showLoaderOnConfirm: true,
        },
        function(){
            window.location.href = 'acciones_new_caja.php?close='+URL;
        });
    }
</script>
</html>    