<?php if($this->nota) { ?>
  <div class="row">
    <div class="col-md-4">
      <div class="card card-outline card-primary">
        <div class="card-header">
          <h3 class="card-title"><i class="fas fa-info-circle text-primary mr-2"></i> Datos de <?= $this->titulo_controlador ?></h3>
        </div>
        <form action="" class="form-horizontal" id="form_principal" method="POST" role="form" autocomplete="off">
          <div class="card-body">
            <div class="form-group">
              <label>Empresa</label>
              <select class="form-control" name="empresa" id="empresa" onchange="save()">
                <?php foreach ($empresas as $value) { ?>
                  <option value="<?= $value->id ?>"><?= $value->ruc.' | '.$value->razonsocial ?></option>
                <?php } ?>
              </select>
              <input type="text" class="form-control" name="empresas" id="empresas" readonly>
            </div>

            <div class="form-group" id="numeraciones">
              <label><a id="vtipoventa"><span></span></a></label>
              <input type="text" class="form-control" id="numeracion" name="numeracion" readonly>
            </div>

            <div class="form-group">
              <label>Venta <span class="text-danger">*</span></label>
              <input type="hidden" name="venta" id="venta">
              <input type="text" class="form-control enteros" name="ventas" id="ventas" placeholder="Buscar venta...">
              <span class="help-block text-danger"></span>
            </div>

            <div class="form-group">
              <label>Tipo</label>
              <select id="tiponota" name="tiponota" class="form-control" onchange="save()">
                <option value="07">NOTA DE CREDITO</option>
                <option value="08">NOTA DE DEBITO</option>
              </select>
              <span class="help-block text-danger"></span>
            </div>

            <div class="form-group" id="motivodebitos">
              <label>Motivo</label>
              <select id="motivodebito" name="motivodebito" class="form-control" onchange="save()">
                <option value="01">INTERESES POR MORA</option>
                <option value="02">AUMENTO EN EL VALOR</option>
                <option value="03">PENALIDADES/OTROS CONCEPTOS</option>
              </select>
            </div>

            <div class="form-group" id="motivocreditos">
              <label>Motivo</label>
              <select id="motivocredito" name="motivocredito" class="form-control" onchange="save()">
                <option value="01">ANULACIÓN DE LA OPERACION</option>
                <option value="02">ANULACIÓN POR ERROR EN EL RUC</option>
                <option value="03">CORRECCIÓN POR ERROR EN LA DESCRIPCIÓN</option>
                <option value="04">DESCUENTO GLOBAL</option>
                <option value="05">DESCUENTO POR ITEM</option>
                <option value="06">DEVOLUCION TOTAL</option>
                <option value="07">DEVOLUCION POR ITEM</option>
                <option value="08">BONIFICACION</option>
                <option value="09">DISMINUCIÓN EN EL VALOR</option>
                <option value="10">OTROS CONCEPTOS</option>
              </select>
            </div>

            <div class="form-group">
              <label>Vendedor <span class="text-danger">*</span></label>
              <input type="hidden" name="usuario" id="usuario">
              <input type="text" class="form-control" name="usuarios" id="usuarios">
            </div>

            <div class="form-group">
              <label>Monto</label>
              <input readonly type="text" class="form-control text-right font-weight-bold" id="totales" name="totales">
            </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"><i class="fas fa-list text-info mr-2"></i> Detalle de <?= $this->titulo_controlador ?></h3>
          <div class="card-tools">
            <button id="cargador" onclick="cargar()" class="btn btn-warning btn-sm" data-toggle="tooltip" title="CARGAR"><i class="fas fa-upload"></i></button>
            <button id="limpiador" onclick="limpiar()" class="btn btn-danger btn-sm" data-toggle="tooltip" title="LIMPIAR"><i class="fas fa-trash-alt"></i></button>
          </div>
        </div>
        <div class="card-body table-responsive">
          <table id="tabla_detalle" class="table table-hover table-bordered table-striped">
            <thead>
              <tr>
                <th width="50">#</th>
                <th>Descripción</th>
                <th class="text-right">P/U</th>
                <th class="text-center">Cant.</th>
                <th width="50"></th>
              </tr>
            </thead>
            <tbody></tbody>
          </table>
        </div>
      </div>
    </div>
  </div>
<?php } else { ?>
  <div class="row" id="cuerpo_comprobante">
    <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>
        <div class="card-body">
          <form class="form-horizontal" autocomplete="off">
            <div class="row">
              <div class="col-md-4">
                <div class="form-group">
                  <label>Fecha Inicio</label>
                  <input type="date" class="form-control" id="finicio" name="finicio" value="<?= date('Y-m-d') ?>">
                </div>
              </div>
              <div class="col-md-4">
                <div class="form-group">
                  <label>Fecha Fin</label>
                  <input type="date" class="form-control" id="factual" name="factual" value="<?= date('Y-m-d') ?>">
                </div>
              </div>
              <div class="col-md-4">
                <div class="form-group">
                  <label>Empresa</label>
                  <select id="empresa" name="empresa" class="form-control">
                    <?php foreach ($empresas as $value) { ?>
                      <option value="<?= $value->id ?>"><?= $value->razonsocial.' '.$value->nombre ?></option>
                    <?php } ?>
                  </select>
                </div>
              </div>
            </div>
            <div class="text-center mt-3">
              <button type="button" onclick="generar()" class="btn btn-warning" data-toggle="tooltip" title="GENERADOS"><i class="fas fa-list"></i> GENERADOS</button>
              <button type="button" onclick="pendiente()" class="btn btn-danger" data-toggle="tooltip" title="PENDIENTES"><i class="fas fa-clock"></i> PENDIENTES</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>
    <div class="col-md-12" id="respuesta_proceso"></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-file-invoice text-primary mr-2"></i> Lista de <?= $this->titulo_controlador ?></h3>
        </div>
        <div class="card-body table-responsive">
          <table id="tabla" class="table table-hover table-bordered table-striped">
            <thead>
              <tr>
                <th width="50">#</th>
                <th>Tipo Nota</th>
                <th>Tipo Venta</th>
                <th>Número</th>
                <th>Estado</th>
                <th>Sunat</th>
                <th class="text-right">Monto</th>
                <th>Fecha</th>
                <th width="150">Acciones</th>
              </tr>
            </thead>
            <tbody></tbody>
          </table>
        </div>
      </div>
    </div>
  </div>
<?php } ?>

<!-- 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">COMPROBANTE</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">
        <div class="table-responsive" id="printSection"></div>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Cerrar</button>
      </div>
    </div>
 </div>
</div>

<!-- Modal ver notas -->
<div class="modal fade" id="vernotas" tabindex="-1" role="dialog" aria-hidden="true">
 <div class="modal-dialog modal-lg" role="document">
    <div class="modal-content">
      <div class="modal-header bg-secondary text-white">
        <h5 class="modal-title">COMPROBANTE</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 class="form-horizontal" autocomplete="off" method="post">
          <div id="vernotasdetalle"></div>
        </form>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Cerrar</button>
      </div>
    </div>
 </div>
</div>

<!-- Modal Venta-->
<div class="modal fade" id="venta_form" tabindex="-1" role="dialog" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <form id="form_venta" autocomplete="off">
        <div class="modal-header bg-primary 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 class="modal-body">
          <div class="form-group">
            <label>Venta</label>
            <input class="form-control" type="text" id="ventas" name="ventas" readonly>
            <span class="help-block text-danger"></span>
          </div>

          <div class="form-group">
            <label>Monto</label>
            <input readonly class="form-control font-weight-bold" id="totales" name="totales">
            <span class="help-block text-danger"></span>
          </div>

          <div class="form-group" id="metodo">
            <label>Metodo de Pago <span class="text-danger">*</span></label>
            <select id="metodopago" name="metodopago" class="form-control">
              <option value="EFECTIVO">EFECTIVO</option>
              <option value="TARJETA">TARJETA</option>
            </select>
          </div>

          <div class="form-group" id="tipocard">
            <label>Tipo Tarjeta</label>
            <div class="d-flex align-items-center mb-2">
              <i class="fab fa-cc-visa fa-2x mr-2 text-primary"></i>
              <i class="fab fa-cc-mastercard fa-2x mr-2 text-danger"></i>
              <i class="fab fa-cc-amex fa-2x mr-2 text-info"></i>
            </div>
            <select class="form-control" name="tipotarjeta" id="tipotarjeta">
              <option value="VISA">VISA</option>
              <option value="DISCOVER">DISCOVER</option>
              <option value="MASTERCARD">MASTERCARD</option>
              <option value="DINERS CLUB">DINERS CLUB</option>
              <option value="AMERICAN EXPRESS">AMERICAN EXPRESS</option>
            </select>
          </div>

          <div class="form-group" id="numberoperacion">
            <label>Número de operación</label>
            <input type="number" name="operacion" class="form-control" id="operacion">
            <span class="help-block text-danger"></span>
          </div>

          <div class="form-group" id="descontado">
            <label>Descuento</label>
            <input type="text" class="form-control money" id="descuento" name="descuento" value="0">
            <span class="help-block text-danger"></span>
          </div>

          <div class="form-group">
            <label>Descripción <span class="text-danger">*</span></label>
            <textarea class="form-control" id="descripcion" name="descripcion" rows="3"></textarea>
            <span class="help-block text-danger"></span>
          </div>

          <div class="form-group">
            <label>Fecha</label>
            <input type="date" class="form-control" id="fecha" name="fecha" value="<?= date('Y-m-d') ?>">
            <span class="help-block text-danger"></span>
          </div>
        </div>
        <div class="modal-footer">
          <button type="button" id="btnSaveprocesar" onclick="saveprocesar()" class="btn btn-primary">GRABAR</button>
          <button type="button" class="btn btn-secondary" data-dismiss="modal">CERRAR</button>
        </div>
      </form>
    </div>
  </div>
</div>

<script type="text/javascript">
var table;
var table_detalle;
const RUTA_API = "http://localhost:8000";
const $impresoraSeleccionada = document.querySelector("#impresoraSeleccionada");
const refrescarNombreDeImpresoraSeleccionada = () => {
  Impresora.getImpresora()
  .then(nombreImpresora => {
    $impresoraSeleccionada.textContent = '80mm Series Printer';
  });
};
$(document).ready(function() {
  <?php if($this->nota) { ?>
    cargar_detalle();
    setTimeout(cambiarventa, 100);
  <?php } else { ?>
    generar();
  <?php } ?>
  $("#ventas").autocomplete({
    source: "<?= $this->url ?>/completarventa",
    minLength: 2,
    select: function( event, ui ) {
      $("#venta").val(ui.item.venta);
    }
  });
  $('.enteros').on('input', function () {
    this.value = this.value.replace(/[^0-9]/g, '');
  });
  $('.money').number(true, 2);
  $('#descripcion').mayusculassintildes();
  $('#operacion').attr('minLength', 4);
  $('#operacion').attr('maxlength', 4);
  $('#tiponota').change(function(e) {
    if ($('#tiponota').val() == '1') {
      $('#motivocreditos').show();
      $('#motivodebitos').hide();
      $('#montos').hide();
      $("#metodo").hide();
      $("#tipocard").hide();
      $("#numberoperacion").hide();
    } else {
      $('#motivocreditos').hide();
      $('#motivodebitos').show();
      $('#montos').show();
      $("#metodo").show();
      if($('#metodopago').val() == 'TARJETA') {
        $("#tipocard").show();
        $("#numberoperacion").show();
      }
    }
  });
});
function generar() {
  table = $('#tabla').DataTable({
    language: {
      "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"
      }
    },
    "destroy": true,
    // Load data for the table's content from an Ajax source
    "ajax": {
      "url": "<?= $this->url ?>/ajax_list_generado/" + $('#finicio').val() + '/' + $('#factual').val() + '/' + $('#empresa').val(),
      "type": "GET"
    },
  });
};
function pendiente() {
  table = $('#tabla').DataTable({
    language: {
      "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"
      }
    },
    "destroy": true,
    // Load data for the table's content from an Ajax source
    "ajax": {
      "url": "<?= $this->url ?>/ajax_list_pendiente/" + $('#empresa').val(),
      "type": "GET"
    },
  });
};
function cargar_detalle() {
  table_detalle = $('#tabla_detalle').DataTable({
    language: {
      "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"
      }
    },
    "destroy": true,
    // Load data for the table's content from an Ajax source
    "ajax": {
      url : "<?= $this->url ?>/ajax_list_detalle",
      type : 'GET'
    },
  });
};
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) {
          //if success reload ajax table
          reload_table();
          Lobibox.notify('success', {
            size: 'mini',
            position: 'top right',
            msg: 'El registro fue eliminado exitosamente.'
          });
        },
        error: function (jqXHR, textStatus, errorThrown) {
          Lobibox.notify('error', {
            size: 'mini',
            position: 'top right',
            msg: 'No se puede eliminar este registro por seguridad de su base de datos, Contacte al Administrador del Sistema'
          });
        }
      });
    }
  });
};
function save() {
  // ajax adding data to database
  $.ajax({
    url : "<?= $this->url ?>/ajax_update",
    type: "POST",
    data: $('#form_principal').serialize(),
    dataType: "JSON",
    success: function(data) {
      //if success close modal and reload ajax table
      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]+'"]').parent().parent().addClass('has-error'); //select parent twice to select div form-group class and add has-error class
          $('[name="'+data.inputerror[i]+'"]').next().text(data.error_string[i]); //select span help-block class set text error string
        }
      }
    },
    error: function (jqXHR, textStatus, errorThrown) {
      Lobibox.notify('error', {
        size: 'mini',
        position: 'top right',
        msg: "El registro no se pudo actualizar. Verifique la operación"
      });
    }
  });
};
function cambiarprecio(producto, tipo) {
  $.ajax({
    data: { "producto": producto, "tipo": tipo },
    url: '<?= $this->url ?>/precio',
    type: 'post',
    success: function(data) {
      $('[name="precioventa"]').val(data.precioventa);
    }
  });
  $("#cantidad").focus();
};
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) {
      //if success close modal and reload ajax table
      Lobibox.notify('success', {
        size: 'mini',
        position: 'top right',
        msg: "El registro fue actualizado exitosamente."
      });
      reload_table_detalle();
      cambiarventa();
    },
    error: function (jqXHR, textStatus, errorThrown) {
      Lobibox.notify('error', {
        size: 'mini',
        position: 'top right',
        msg: 'Ocurrió un problema, favor contacte con el administrador del sistema.'
      });
    }
  });
};
function cambiarsubtotal(no) {
  $.ajax({
    url:"<?= $this->url ?>/ajax_updatesubtotal",
    type:'POST',
    data:{ precio: $('#precio'+no).val(), detalle: $('#detalle'+no).val() },
    dataType:'JSON',
    success:function(data) {
      Lobibox.notify('success', {
        size: 'mini',
        position: 'top right',
        msg: 'Examen actualizado correctamente.'
      });
      reload_table_detalle();
      cambiarventa();
    },
    error: function (jqXHR, textStatus, errorThrown) {
      Lobibox.notify('error', {
        size: 'mini',
        position: 'top right',
        msg: 'Ocurrió un problema, favor contacte con el administrador del sistema.'
      });
    }
  });
};
function cambiarventa() {
  $('#botones').load("<?= $this->url ?>/botonpedido");
  //Ajax Load data from ajax
  $.ajax({
    url : "<?= $this->url ?>/ajax_updateventa",
    type: "GET",
    dataType: "JSON",
    success: function(data) {
      $('[name="tiponota"]').val(data.tiponota);
      $('[name="numeracion"]').val(data.numeracion);
      $('[name="motivocredito"]').val(data.motivo);
      $('[name="motivodebito"]').val(data.motivo);
      $('[name="venta"]').val(data.venta);
      $('[name="ventas"]').val(data.nombreventa);
      $('[name="totales"]').val(data.montototal);
      $('[name="pago"]').val(data.montototal);
      $('[name="empresa"]').val(data.empresa);
      $('[name="empresas"]').val(data.razonsocial);
      $('[name="usuario"]').val(data.usuario);
      $('[name="usuarios"]').val(data.nombreusuario);
      if(data.venta) {
        if(data.contador > 0) {
          $('#ventas').attr('disabled',true);
          $('#empresas').attr('disabled',true);
          $('#empresa').hide();
          $('#empresas').show();
          $('#cargador').hide();
          $('#limpiador').show();
        } else {
          $('#ventas').attr('disabled',false);
          $('#empresas').attr('disabled',false);
          $('#empresa').show();
          $('#empresas').hide();
          $('#cargador').show();
          $('#limpiador').hide();
        }
      } else {
        $('#ventas').attr('disabled',false);
        $('#empresas').attr('disabled',false);
        $('#empresa').show();
        $('#empresas').hide();
        $('#cargador').hide();
        $('#limpiador').hide();
      }
      if(data.tiponota === '07') {
        $('#motivocreditos').show();
        $('#motivodebitos').hide();
      } else {
        $('#motivocreditos').hide();
        $('#motivodebitos').show();
      }
      if(data.estado === '0') {
        $('#usuarios').attr('disabled',false);
        $('#botoncliente').show();
        $('#numeraciones').hide();
        $('#totalitos').hide();
        $('#tipoventas').show();
        $('#addproduct').show();
      }
      if(data.estado === '1') {
        $('#usuarios').attr('disabled',true);
        $('#botoncliente').hide();
        $('#numeraciones').show();
        $('#totalitos').show();
        $('#tipoventas').hide();
        $('#addproduct').hide();
      }
    },
    error: function (jqXHR, textStatus, errorThrown) {
      Lobibox.notify('error', {
        size: 'mini',
        position: 'top right',
        msg: 'Error al obtener datos de ajax.'
      });
    }
  });
};
function cargar() {
  // ajax adding data to database
  $.ajax({
    url : "<?= $this->url ?>/ajax_add_detalle",
    type: "POST",
    dataType: "JSON",
    success: function(data) {
      Lobibox.notify('success', {
        size: 'mini',
        position: 'top right',
        msg: "El registro fue actualizado exitosamente."
      });
      reload_table_detalle();
      cambiarventa();
    },
    error: function (jqXHR, textStatus, errorThrown) {
      Lobibox.notify('error', {
        size: 'mini',
        position: 'top right',
        msg: "El registro no se pudo actualizar. Verifique la operación"
      });
    }
  });
};
function limpiar() {
  bootbox.confirm("Seguro desea Limpiar el Detalle?", function(result) {
    if (result === true) {
      $.ajax({
        url : "<?= $this->url ?>/ajax_delete_detalle",
        type: "POST",
        dataType: "JSON",
        success: function(data) {
          //if success reload ajax table
          reload_table_detalle();
          cambiarventa();
          Lobibox.notify('success', {
            size: 'mini',
            position: 'top right',
            msg: 'El Detalle fue Limpiado exitosamente.'
          });
        },
        error: function (jqXHR, textStatus, errorThrown) {
          Lobibox.notify('error', {
            size: 'mini',
            position: 'top right',
            msg: 'No se puede limpiar el Detalle por seguridad de su base de datos, Contacte al Administrador del Sistema'
          });
        }
      });
    }
  });
};
function reload_table_detalle() {
  table_detalle.ajax.reload(null,false); //reload datatable ajax
};
function grabar() {
  $('#venta_form').modal('show');
  $('.modal-title').text('PROCESAR NOTA');
  $("#tipocard").hide();
  $("#vencimiento").hide();
  $("#numberoperacion").hide();
  $('#operacion').attr('minLength', 4);
  $('#operacion').attr('maxlength', 4);
  $('#metodopago').change(function(e) {
    if ($('#metodopago').val() == 'EFECTIVO') {
      $('#tipocard').hide();
      $('#numberoperacion').hide();
    } else {
      $('#tipocard').show();
      $('#numberoperacion').show();
    }
  });
};
function saveprocesar() {
  $('#btnSaveprocesar').text('guardando...'); //change button text
  $('#btnSaveprocesar').attr('disabled',true); //set button disable
  // ajax adding data to database
  $.ajax({
    url : '<?= $this->url ?>/ajax_addprocesar',
    type: "POST",
    data: $('#form_venta').serialize(),
    dataType: "JSON",
    success: function(data) {
      //if success close modal and reload ajax table
      if(data.status) {
          reload_table_detalle();
          $('#venta_form').modal('hide');
          $('#form_venta')[0].reset();
          Lobibox.notify('success', {
            size: 'mini',
            position: 'top right',
            msg: 'El registro fue creado exitosamente.'
          });
          setTimeout(cambiarventa, 100);
      } else {
        for (var i = 0; i < data.inputerror.length; i++) {
          $('[name="'+data.inputerror[i]+'"]').parent().parent().addClass('has-error'); //select parent twice to select div form-group class and add has-error class
          $('[name="'+data.inputerror[i]+'"]').next().text(data.error_string[i]); //select span help-block class set text error string
        }
      }
      $('#btnSaveprocesar').text('GRABAR'); //change button text
      $('#btnSaveprocesar').attr('disabled',false); //set button enable
    },
    error: function (jqXHR, textStatus, errorThrown) {
      Lobibox.notify('error', {
        size: 'mini',
        position: 'top right',
        msg: 'El registro no se pudo crear verifique las validaciones.'
      });
      $('#btnSaveprocesar').text('GRABAR'); //change button text
      $('#btnSaveprocesar').attr('disabled',false); //set button enable
    }
  });
};
function imprimir(id, tipoimpresora) {
  if(tipoimpresora === 0) {
    $.ajax({
      url: '<?= $this->url ?>/imprimir/' + id,
      type: 'POST',
    });
  }
  if(tipoimpresora === 1) {
    var Url = '<?= $this->url ?>/cpepdf/' + id;
    window.open(Url, 'Pruebas', 'fullscreen=yes, scrollbars=auto');
  }
  if(tipoimpresora === 2) {
    var request = $.ajax({
      url: "<?= $this->url ?>/getimprimir/" + id,
      method: "POST",
      dataType: "json"
    });
    request.done(function(msg) {
      let impresora = new Impresora(RUTA_API);
      impresora.setFontSize(1, 1);
      impresora.setAlign("center");
      if(msg.empresa.tipo == 0) {
        impresora.write(msg.empresa.nombre + "\n");
        impresora.write(msg.empresa.razonsocial + "\n");
      } else {
        impresora.write(msg.empresa.razonsocial + "\n");
      }
      if(msg.ventas.tipoventa !== 'OTROS') {
        impresora.write(msg.empresa.direccion + "\n");
        impresora.write(msg.empresa.distrito + " " + msg.empresa.provincia + " " + msg.empresa.departamento + "\n");
        impresora.write("RUC " + msg.empresa.ruc + "\n");
        impresora.write("TELF. " + msg.empresa.telefono + "\n");
        impresora.write(msg.ventas.tipoventa + " DE VENTA ELECTRONICA\n");
      } else {
        impresora.write("TICKET DE VENTA\n");
      }
      impresora.write(msg.ventas.serie + "-" + msg.ventas.numero + "\n");
      impresora.setAlign("left");
      impresora.write(msg.cliente.tipo + ": " + msg.cliente.documento + "\n");
      impresora.write("CLIENTE: " + msg.cliente.nombre + " " + msg.cliente.apellido + "\n");
      impresora.write("DIRECCION: " + msg.cliente.direccion + "\n");
      if(msg.ventas.tipoventa !== 'OTROS') {
        impresora.write("FECHA DE EMISION: " + msg.ventas.created + " " + msg.ventas.hora + "\n");
        impresora.write("FECHA DE VENC.: " + msg.ventas.created + "\n");
        impresora.write("MONEDA: SOLES\n");
      }
      impresora.feed(2);
      impresora.write("[CANT.]   DESCRIPCION         P/U      TOTAL\n");
      $.each(msg.ventadetalle, function(index, value) {
        impresora.write(" " + value.nombre + "\n");
        impresora.write(" [ " + value.cantidad + " ]                     " + value.precio + "        " + value.subtotal + "\n");
      });
      impresora.setAlign("right");
      impresora.write("OP. EXONERADA: S/ " + msg.ventas.montototal + "\n");
      impresora.write("IGV: S/ 0.00\n");
      impresora.write("TOTAL: S/ " + msg.ventas.montototal + "\n");
      $.each(msg.pagos, function(index, value) {
        impresora.write(value.metodopago + ": S/ " + value.monto + "\n");
      });
      impresora.write("VUELTO: S/ " + msg.vuelto + "\n");
      impresora.setAlign("left");
      impresora.feed(2);
      impresora.write("IMPORTE EN LETRA: " + msg.importeletra + "\n");
      impresora.write("VENDEDOR: " + msg.usuario.nombre + " " + msg.usuario.apellido + "\n");
      if(msg.ventas.tipoventa !== 'OTROS') {
        impresora.write("HASH: " + msg.ventas.hash + "\n");
        impresora.setAlign("center");
        impresora.qr(msg.codigoqr);
      }
      impresora.setAlign("center");
      impresora.write("NO SE ACEPTAN DEVOLUCIONES Y/O\n");
      impresora.write("CAMBIOS DESPUES DE LAS 24 HORAS\n");
      impresora.feed(2);
      if(msg.ventas.tipoventa !== 'OTROS') {
        impresora.write("REPRESENTACION IMPRESA DE\n");
        impresora.write("COMPROBANTE ELECTRONICO\n");
        impresora.write("AUTORIZADO MEDIANTE LA RESOLUCION\n");
        impresora.write("DE INTENDENCIA N°. 034-005-0005315\n");
      } else {
        impresora.write("GRACIAS POR SU COMPRA\n");
      }
      impresora.end().then();
    });
    request.fail(function( jqXHR, textStatus ) {
      alert( "Request failed: " + textStatus );
    });
  }
  if(tipoimpresora === 3) {
    $.ajax({
      url : "<?= $this->url ?>/pdfimprimir/" + id,
      type: "POST",
      success: function(data) {
        $('#printSection').html(data);
        $('#ticket').modal('show');
        $('.modal-title').text('COMPROBANTE'); // Set Title to Bootstrap modal title
      },
      error: function (jqXHR, textStatus, errorThrown) {
        Lobibox.notify('error', {
          size: 'mini',
          position: 'top right',
          msg: 'Error al obtener datos de ajax.'
        });
      }
    });
  }
};
function vernotas(id) {
  $.ajax({
    url : "<?= $this->url ?>/vernotas/"+id,
    type: "POST",
    success: function(data) {
      $('#vernotasdetalle').html(data);
      $('#vernotas').modal('show');
    },
    error: function (jqXHR, textStatus, errorThrown) {
      alert("error");
    }
  });
};
function procesar_documento_electronico(id) {
  var light = $('#cuerpo_comprobante').parent();
  $("#vernotas").modal('hide');
  $(light).block({
    message: '<div class="loader"></div> <p><br />Enviando data, espera un momento!...</p>',
    overlayCSS: {
      backgroundColor: '#fff',
      opacity: 0.8,
      cursor: 'wait'
    },
    css: {
      border: 0,
      padding: 0,
      backgroundColor: 'none'
    }
  });
	$.ajax({
    url : '<?= $this->url ?>/emitir/' + id,
    method : 'POST',
    dataType : "json",
  }).then(function(data) {
    if(data.respuesta == 'ok') {
      swal({
        title: 'Resultado',
        text: 'Su comprobante se ha procesado correctamente!',
        html: true,
        type: "success",
        confirmButtonText: "Ok",
        confirmButtonColor: "#2196F3"
      }, function() {
        $("#respuesta_proceso").html('<div class="alert alert-success alert-styled-left alert-arrow-left alert-bordered">\
        <button type="button" class="close" data-dismiss="alert"><span>×</span><span class="sr-only">Close</span></button>\
        Su Documento se ha procesado correctamente...<br><br>\
        HASH: '+ data.hash_cpe +'</div>');
      });
    } else {
      swal({
        title: 'ERROR',
        text: data.mensaje,
        html: true,
        type: "error",
        confirmButtonText: "Ok",
        confirmButtonColor: "#2196F3"
      }, function() {
        $("#respuesta_proceso").html('<div class="alert alert-danger alert-styled-left alert-bordered">\
        <button type="button" class="close" data-dismiss="alert"><span>×</span><span class="sr-only">Close</span></button>\
        ' + data.mensaje + '.\
        </div>');
      });
    }
    $(light).unblock();
    reload_table();
  }, function(reason) {
    console.log(reason);
    $(light).unblock();
    reload_table();
  });
};
function addnotas() {
  $('#form_notas')[0].reset();
  $('#notas_modal').modal('show');
};
function savenotas() {
  $('#btnSavenotas').text('guardando...'); //change button text
  $('#btnSavenotas').attr('disabled',true); //set button disable
  // ajax adding data to database
  $.ajax({
    url : '<?= $this->url ?>/ajax_addnota',
    type: "POST",
    data: $('#form_notas').serialize(),
    dataType: "JSON",
    success: function(data) {
      //if success close modal and reload ajax table
      if(data.status) {
        reload_table();
        $('#notas_modal').modal('hide');
        $('#form_notas')[0].reset();
        Lobibox.notify('success', {
          size: 'mini',
          position: 'top right',
          msg: 'El registro fue creado exitosamente.'
        });
      } else {
        for (var i = 0; i < data.inputerror.length; i++) {
          $('[name="'+data.inputerror[i]+'"]').parent().parent().addClass('has-error'); //select parent twice to select div form-group class and add has-error class
          $('[name="'+data.inputerror[i]+'"]').next().text(data.error_string[i]); //select span help-block class set text error string
        }
      }
      $('#btnSavenotas').text('GRABAR'); //change button text
      $('#btnSavenotas').attr('disabled',false); //set button enable
    },
    error: function (jqXHR, textStatus, errorThrown) {
      Lobibox.notify('error', {
        size: 'mini',
        position: 'top right',
        msg: 'El registro no se pudo crear verifique las validaciones.'
      });
      $('#btnSavenotas').text('GRABAR'); //change button text
      $('#btnSavenotas').attr('disabled',false); //set button enable
    }
  });
};
function reload_table() {
  table.ajax.reload(null,false); //reload datatable ajax
};
</script>
<script type="text/javascript" src="<?= base_url().RECURSOS ?>js/jquery-ui/js/jquery-ui-1.9.2.custom.js"></script>
