<?= $this->session->flashdata('mensaje') ?>.
<?php if ($this->notaingreso) { ?>
  <div class="row">
    <div class="col-md-4">
      <div class="card card-outline card-primary">
        <div class="card-header">
          <h3 class="card-title">DATOS DE <?= $this->titulo_controlador ?></h3>
        </div>
        <form action="" method="POST" id="form_principal" role="form" autocomplete="off">
          <div class="card-body">
            <div class="form-group">
              <label>Empresa <span class="text-danger">*</span></label>
              <input type="hidden" name="empresa" id="empresa">
              <input type="text" class="form-control limpiar" name="empresas" id="empresas">
              <span class="help-block text-danger"></span>
            </div>
            <div class="form-group">
              <label>Nota Ingreso</label>
              <input type="text" class="form-control" name="codigo" id="codigo" readonly>
            </div>
            <div class="form-group">
              <label>Monto</label>
              <input type="text" class="form-control" id="montototal" name="montototal" readonly>
            </div>
            <div class="form-group">
              <label>Usuario <span class="text-danger">*</span></label>
              <input type="hidden" name="usuario" id="usuario">
              <input type="text" class="form-control limpiar" name="usuarios" id="usuarios">
              <span class="help-block text-danger"></span>
            </div>
          </div>
          <div class="card-footer text-center" id="botones"></div>
        </form>
      </div>
    </div>
    <div class="col-md-8">
      <div class="card card-outline card-info">
        <div class="card-header">
          <h3 class="card-title">DETALLE DE <?= $this->titulo_controlador ?></h3>
        </div>
        <div class="card-body">
          <form id="form_detalle" action="" method="post" role="form" autocomplete="off">
            <div class="row" id="addproduct">
              <div class="col-md-5">
                <div class="form-group">
                  <label>Producto</label>
                  <input type="hidden" name="producto" id="producto">
                  <input type="text" class="form-control limpiar" name="productos" id="productos">
                  <span class="help-block text-danger"></span>
                </div>
              </div>
              <div class="col-md-2">
                <div class="form-group">
                  <label>Precio</label>
                  <input type="text" class="form-control money" id="preciocompra" name="preciocompra" readonly>
                </div>
              </div>
              <div class="col-md-2">
                <div class="form-group">
                  <label>Stock</label>
                  <input type="text" class="form-control" id="stock" name="stock" readonly>
                </div>
              </div>
              <div class="col-md-2">
                <div class="form-group">
                  <label>Cantidad</label>
                  <input type="text" id="cantidad" name="cantidad" class="form-control" onkeydown="if(event.keyCode == 13) { savedetalle() }">
                  <span class="help-block text-danger"></span>
                </div>
              </div>
              <div class="col-md-1">
                <div class="form-group">
                  <label>&nbsp;</label>
                  <button type="button" id="btnSaveDetalle" onclick="savedetalle()" class="btn btn-success btn-block" data-toggle="tooltip" title="AÑADIR">
                    <i class="fas fa-plus"></i>
                  </button>
                </div>
              </div>
            </div>
          </form>
          <hr>
          <div class="table-responsive">
            <table id="tabla_detalle" class="table table-bordered table-striped table-hover">
              <thead>
                <tr>
                  <th>#</th>
                  <th>Codigo</th>
                  <th>Descripcion</th>
                  <th>PU</th>
                  <th>Cant</th>
                  <th>Accion</th>
                  <th>Total</th>
                </tr>
              </thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
      </div>
    </div>
  </div>
<?php } else { ?>
  <div class="row">
    <div class="col-md-12">
      <div class="card card-outline card-warning">
        <div class="card-header">
          <h3 class="card-title"><i class="fas fa-filter text-warning mr-2"></i> Filtro por fecha</h3>
        </div>
        <form autocomplete="off">
          <div class="card-body">
            <div class="row">
              <div class="col-md-6">
                <div class="form-group">
                  <label>Fecha Inicio <span class="text-danger">*</span></label>
                  <input type="date" class="form-control" id="finicio" name="finicio" value="<?= date('Y-m-d') ?>">
                </div>
              </div>
              <div class="col-md-6">
                <div class="form-group">
                  <label>Fecha Fin <span class="text-danger">*</span></label>
                  <input type="date" class="form-control" id="factual" name="factual" value="<?= date('Y-m-d') ?>">
                </div>
              </div>
            </div>
          </div>
          <div class="card-footer text-center">
            <button type="button" onclick="generar()" class="btn btn-warning" data-toggle="tooltip" title="GENERAR"><i class="fas fa-list"></i> Generar</button>
            <button type="button" onclick="pendiente()" class="btn btn-danger" data-toggle="tooltip" title="PENDIENTE"><i class="fas fa-clock"></i> Pendiente</button>
            <button type="button" onclick="exportar()" class="btn btn-success" data-toggle="tooltip" title="EXPORTAR"><i class="fas fa-file-excel"></i> Exportar</button>
            <a href="<?= $this->url ?>/crear" class="btn btn-primary" data-toggle="tooltip" title="NUEVO"><i class="fas fa-plus"></i> Nuevo</a>
            <button type="button" onclick="location.reload()" class="btn btn-secondary" data-toggle="tooltip" title="RECARGAR PÁGINA"><i class="fas fa-sync-alt"></i> Recargar</button>
          </div>
        </form>
      </div>
    </div>
    
    <div class="col-md-12">
      <div class="card card-outline card-primary">
        <div class="card-header">
          <h3 class="card-title"><i class="fas fa-clipboard-list text-primary mr-2"></i> Lista de <?= $this->titulo_controlador ?></h3>
        </div>
        <div class="card-body table-responsive">
          <table id="tabla" class="table table-bordered table-striped table-hover">
            <thead>
              <tr>
                <th>#</th>
                <th>Codigo</th>
                <th>Tipo</th>
                <th>Colaborador</th>
                <th>Estado</th>
                <th>Monto</th>
                <th>Fecha</th>
                <th>Accion</th>
              </tr>
            </thead>
            <tbody></tbody>
          </table>
        </div>
      </div>
    </div>
  </div>
<?php } ?>

<!-- Modal Venta-->
<div class="modal fade" id="compra_form" tabindex="-1" role="dialog" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header bg-primary text-white">
        <h5 class="modal-title">Generar Nota de Ingreso</h5>
        <button type="button" class="close text-white" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        <form id="form_compra" action="" method="post" autocomplete="off">
          <div class="form-group">
            <label>Tipo Doc.</label>
            <input class="form-control" type="text" id="tipoingreso" name="tipoingreso" readonly>
            <span class="help-block text-danger"></span>
          </div>

          <div class="form-group">
            <label>Valor</label>
            <input type="text" class="form-control" id="totales" name="totales" readonly>
            <span class="help-block text-danger"></span>
          </div>

          <div class="form-group">
            <label for="comentario">Observación</label>
            <textarea class="form-control" name="comentario" id="comentario" rows="3"></textarea>
            <span class="help-block text-danger"></span>
          </div>
        </form>
      </div>
      <div class="modal-footer">
        <button type="button" id="btnSaveprocesar" onclick="saveprocesar()" class="btn btn-primary">GRABAR</button>
        <button type="button" class="btn btn-danger" data-dismiss="modal">CERRAR</button>
      </div>
    </div>
  </div>
</div>

<!-- Modal ticket -->
<div class="modal fade" id="ticket" tabindex="-1" role="dialog" aria-hidden="true">
  <div class="modal-dialog modal-lg" role="document">
    <div class="modal-content">
      <div class="modal-header bg-info text-white">
        <h5 class="modal-title"></h5>
        <button type="button" class="close text-white" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div id="printSection" class="modal-body"></div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Cerrar</button>
      </div>
    </div>
  </div>
</div>

<script type="text/javascript">
  var table;
  var table_detalle;
  
  var dtlanguage = {
    "decimal": "",
    "emptyTable": "No hay información",
    "info": "Mostrando _START_ a _END_ de _TOTAL_ Entradas",
    "infoEmpty": "Mostrando 0 to 0 of 0 Entradas",
    "infoFiltered": "(Filtrado de _MAX_ total entradas)",
    "infoPostFix": "",
    "thousands": ",",
    "lengthMenu": "Mostrar _MENU_ Entradas",
    "loadingRecords": "Cargando...",
    "processing": "Procesando...",
    "search": "Buscar:",
    "zeroRecords": "Sin resultados encontrados",
    "paginate": {
      "first": "Primero",
      "last": "Ultimo",
      "next": "Siguiente",
      "previous": "Anterior"
    }
  };

  $(document).ready(function() {
    <?php if ($this->notaingreso) { ?>
      cambiarventa();
      cargar_detalle();
    <?php } else { ?>
      generar();
    <?php } ?>
    $(".limpiar").addClear();
    $('.money').number(true, 6);
    $('#cantidad').numeric();
    $('.enteros').on('input', function() {
      this.value = this.value.replace(/[^0-9]/g, '');
    });
    $('#productos').focus();
    $("#productos").autocomplete({
      source: "<?= $this->url ?>/completarproducto",
      minLength: 2,
      select: function(event, ui) {
        $("#producto").val(ui.item.producto);
        $("#stock").val(ui.item.stock);
        $("#preciocompra").val(ui.item.costo);
        $("#cantidad").focus();
      }
    });
    $("#empresas").autocomplete({
      source: "<?= $this->url ?>/completarempresa",
      minLength: 2,
      select: function(event, ui) {
        $("#empresa").val(ui.item.empresa);
        save();
      }
    });
    $("#usuarios").autocomplete({
      source: "<?= $this->url ?>/completarusuario",
      minLength: 2,
      select: function(event, ui) {
        $("#usuario").val(ui.item.usuario);
        save();
      }
    });
    $("input, textarea, select").change(function() {
      $(this).removeClass('is-invalid');
      $(this).nextAll('.help-block').empty();
    });
  });

  function generar() {
    table = $('#tabla').DataTable({
      language: dtlanguage,
      "destroy": true,
      "ajax": {
        url: "<?= $this->url ?>/ajax_generado/" + $('#finicio').val() + '/' + $('#factual').val(),
        type: 'GET'
      },
    });
  };

  function pendiente() {
    table = $('#tabla').DataTable({
      language: dtlanguage,
      "destroy": true,
      "ajax": {
        url: "<?= $this->url ?>/ajax_pendiente",
        type: 'GET'
      },
    });
  };

  function cargar_detalle() {
    table_detalle = $('#tabla_detalle').DataTable({
      language: dtlanguage,
      "destroy": true,
      "processing": true,
      "ajax": {
        url: "<?= $this->url ?>/ajax_list_detalle",
        type: 'GET'
      },
    });
  };

  function save() {
    $.ajax({
      url: "<?= $this->url ?>/ajax_update",
      type: "POST",
      data: $('#form_principal').serialize(),
      dataType: "JSON",
      success: function(data) {
        if (data.status) {
          Lobibox.notify('success', { size: 'mini', position: 'top right', msg: "El registro fue actualizado exitosamente." });
          cambiarventa();
        } else {
          for (var i = 0; i < data.inputerror.length; i++) {
            $('[name="' + data.inputerror[i] + '"]').addClass('is-invalid');
            $('[name="' + data.inputerror[i] + '"]').nextAll('.help-block').text(data.error_string[i]);
          }
        }
      },
      error: function() {
        Lobibox.notify('error', { size: 'mini', position: 'top right', msg: "Error al actualizar" });
      }
    });
  };

  function savedetalle() {
    $('#btnSaveDetalle').attr('disabled', true);
    $.ajax({
      url: '<?= $this->url ?>/ajax_adddetalle',
      type: "POST",
      data: $('#form_detalle').serialize(),
      dataType: "JSON",
      success: function(data) {
        if (data.status) {
          reload_table_detalle();
          $('#form_detalle')[0].reset();
          Lobibox.notify('success', { size: 'mini', position: 'top right', msg: 'El registro fue creado exitosamente.' });
          cambiarventa();
          $("#productos").focus();
        } else {
          for (var i = 0; i < data.inputerror.length; i++) {
            $('[name="' + data.inputerror[i] + '"]').addClass('is-invalid');
            $('[name="' + data.inputerror[i] + '"]').nextAll('.help-block').text(data.error_string[i]);
          }
        }
        $('#btnSaveDetalle').attr('disabled', false);
      },
      error: function() {
        Lobibox.notify('error', { size: 'mini', position: 'top right', msg: 'Error al añadir detalle' });
        $('#btnSaveDetalle').attr('disabled', false);
      }
    });
  };

  function saveprocesar() {
    $('#btnSaveprocesar').text('guardando...').attr('disabled', true);
    $.ajax({
      url: '<?= $this->url ?>/ajax_addprocesar',
      type: "POST",
      data: $('#form_compra').serialize(),
      dataType: "JSON",
      success: function(data) {
        if (data.status) {
          reload_table_detalle();
          $('#compra_form').modal('hide');
          $('#form_compra')[0].reset();
          Lobibox.notify('success', { size: 'mini', position: 'top right', msg: 'El registro fue creado exitosamente.' });
          cambiarventa();
        } else {
          for (var i = 0; i < data.inputerror.length; i++) {
            $('[name="' + data.inputerror[i] + '"]').addClass('is-invalid');
            $('[name="' + data.inputerror[i] + '"]').nextAll('.help-block').text(data.error_string[i]);
          }
        }
        $('#btnSaveprocesar').text('GRABAR').attr('disabled', false);
      },
      error: function() {
        Lobibox.notify('error', { size: 'mini', position: 'top right', msg: 'Error al procesar nota' });
        $('#btnSaveprocesar').text('GRABAR').attr('disabled', false);
      }
    });
  };

  function borrardetalle(id) {
    bootbox.confirm("Seguro desea Eliminar este registro?", function(result) {
      if (result === true) {
        $.ajax({
          url: "<?= $this->url ?>/ajax_deletedetalle/" + id,
          type: "POST",
          dataType: "JSON",
          success: function(data) {
            reload_table_detalle();
            Lobibox.notify('success', { size: 'mini', position: 'top right', msg: 'El registro fue eliminado exitosamente.' });
            cambiarventa();
            $("#productos").focus();
          },
          error: function() {
            Lobibox.notify('error', { size: 'mini', position: 'top right', msg: 'Error al eliminar detalle' });
          }
        });
      }
    });
  };

  function cambiarcantidad(no) {
    $.ajax({
      url: "<?= $this->url ?>/ajax_updatecantidad",
      type: 'POST',
      data: { cantidad: $('#cantidad' + no).val(), detalle: $('#detalle' + no).val() },
      dataType: 'JSON',
      success: function(data) {
        reload_table_detalle();
        Lobibox.notify('success', { size: 'mini', position: 'top right', msg: 'Cantidad actualizada correctamente.' });
        cambiarventa();
      },
      error: function() {
        Lobibox.notify('error', { size: 'mini', position: 'top right', msg: 'Error al actualizar cantidad' });
      }
    });
  };

  function cambiarventa() {
    $('#botones').load("<?= $this->url ?>/botonpedido");
    $.ajax({
      url: "<?= $this->url ?>/ajax_updateventa",
      type: "GET",
      dataType: "JSON",
      success: function(data) {
        $('[name="empresa"]').val(data.empresa);
        $('[name="empresas"]').val(data.nombreempresa);
        $('[name="usuario"]').val(data.usuario);
        $('[name="usuarios"]').val(data.nombreusuario);
        $('[name="codigo"]').val(data.codigo);
        $('[name="tipoingreso"]').val(data.tipoingreso);
        $('[name="montototal"]').val(data.montototal);
        $('[name="totales"]').val(data.montototal);
        $("#empresas").prop('disabled', (data.contador != 0));
        if (data.estado == 0) {
          $("#usuarios").prop('disabled', false);
          $('#addproduct').show();
        } else {
          $("#usuarios").prop('disabled', true);
          $('#addproduct').hide();
        }
      },
      error: function() {
        Lobibox.notify('error', { size: 'mini', position: 'top right', msg: 'Error al obtener datos' });
      }
    });
  };

  function reload_table_detalle() { table_detalle.ajax.reload(null, false); };
  function reload_table() { table.ajax.reload(null, false); };

  function grabar() {
    $('#compra_form').modal('show');
    $('.modal-title').text('GENERAR <?= $this->titulo_controlador ?>');
  };

  function borrar(id) {
    bootbox.confirm("Seguro desea Eliminar este registro?", function(result) {
      if (result === true) {
        $.ajax({
          url: "<?= $this->url ?>/ajax_delete/" + id,
          type: "POST",
          dataType: "JSON",
          success: function(data) {
            reload_table();
            Lobibox.notify('success', { size: 'mini', position: 'top right', msg: 'El registro fue eliminado exitosamente.' });
          },
          error: function() {
            Lobibox.notify('error', { size: 'mini', position: 'top right', msg: 'Error al eliminar registro' });
          }
        });
      }
    });
  };

  function exportar() {
    window.open('<?= $this->url ?>/excel/' + $('#finicio').val() + '/' + $('#factual').val());
  };

  function imprimir(id) {
    $.ajax({
      url: "<?= $this->url ?>/imprimir/" + id,
      type: "POST",
      success: function(data) {
        $('#printSection').html(data);
        $('#ticket').modal('show');
        $('.modal-title').text('IMPRIMIR');
      },
      error: function() {
        Lobibox.notify('error', { size: 'mini', position: 'top right', msg: 'Error al obtener datos de impresión' });
      }
    });
  };

  function visualizar(id) {
    $.ajax({
      url: "<?= $this->url ?>/visualizar/" + id,
      type: "POST",
      success: function(data) {
        $('#printSection').html(data);
        $('#ticket').modal('show');
        $('.modal-title').text('DETALLE DE NOTA DE INGRESO');
      },
      error: function() {
        Lobibox.notify('error', { size: 'mini', position: 'top right', msg: 'Error al visualizar detalle' });
      }
    });
  };
</script>
<script type="text/javascript" src="<?= base_url() . RECURSOS ?>js/jquery-ui/js/jquery-ui-1.9.2.custom.js"></script>
</script>
<script type="text/javascript" src="<?= base_url() . RECURSOS ?>js/jquery-ui/js/jquery-ui-1.9.2.custom.js"></script>