<?php $r="../";
require_once($r."inc/funciones.php");
$titlepage="Crear Cotización Electrónica";
validNotSession($r);
$mysqli = connectDB($r);
$_GET['error'];
$_GET['msn'];
$spe=$_SESSION['perfil'];
roleaccess(1820);
?>
  <?php include $r."inc/head.php"; ?>
  <? if($wa!=''){ ?><script>
      window.open("pagina.html","miventana","width=300,height=200,menubar=no")
  </script>
  <? } ?>
<script type="text/javascript">
function EliminarFila(menos,id) {
    var n = id.toString();
    idx = array.indexOf(n);
    array.splice(idx, 1);
    $("#trow" + id).remove();
    total= parseInt(total) - parseInt(menos);
    $("#total").html(total);
    loadretica();
}
</script>
<style>
body.electro { background-color: #f8f9fa; transition: background-color 0.5s ease; }
body.remi { background-color: #e9ecef; transition: background-color 0.5s ease; }
.switch {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 34px;
}
.switch input { 
  opacity: 0;
  width: 0;
  height: 0;
}
.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: .4s;
  transition: .4s;
}
.slider:before {
  position: absolute;
  content: "";
  height: 26px;
  width: 26px;
  left: 4px;
  bottom: 4px;
  background-color: white;
  -webkit-transition: .4s;
  transition: .4s;
}
input:checked + .slider {
  background-color: #2196F3;
}
input:focus + .slider {
  box-shadow: 0 0 1px #2196F3;
}
input:checked + .slider:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}
.slider.round {
  border-radius: 34px;
}
.slider.round:before {
  border-radius: 50%;
}
table.table.hide-precio-base thead th:nth-child(3),
table.table.hide-precio-base tbody td:nth-child(3) {
  display: none;
}
</style>
<body class="fixed-nav sidenav-toggled sticky-footer bg-dark electro" id="page-top">
  <div class="content-wrapper">
    <div class="container-fluid">
      <?php include $r."inc/nav.php"; ?>
      <h4>Cotización</h4>

      <form id="formulario" class="pedido" name="pedido" method="post" action="acciones/procesar_cotizacion_electro.php">
          <input type="hidden" name="pedir" value="pedir">
        <div class="form-group row">
          <label class="col-sm-2 col-form-label">Cliente</label>
          <div class="col-sm-8">
              <select data-placeholder="Seleccionar Cliente" class="chosen-select" id="cliente" name="cliente" onchange="otro(this.value)">
                    <option value="otro">Otro</option>
                    <? $resultado0 = $mysqli->query("SELECT id,nombre,cedula,contacto1,celular1,correo,municipio,direccion,barrio,localidad,perfil FROM z_clientes WHERE eliminado=0 ORDER BY nombre ASC");
                  while ($fila0 = $resultado0->fetch_assoc()){echo '<option value="'.$fila0["id"].'" data-nit="'.htmlspecialchars($fila0["cedula"],ENT_QUOTES).'" data-contacto="'.htmlspecialchars($fila0["contacto1"],ENT_QUOTES).'" data-celular="'.htmlspecialchars($fila0["celular1"],ENT_QUOTES).'" data-correo="'.htmlspecialchars($fila0["correo"],ENT_QUOTES).'" data-ciudad="'.htmlspecialchars($fila0["municipio"],ENT_QUOTES).'" data-direccion="'.htmlspecialchars($fila0["direccion"],ENT_QUOTES).'" data-barrio="'.htmlspecialchars($fila0["barrio"],ENT_QUOTES).'" data-localidad="'.htmlspecialchars($fila0["localidad"],ENT_QUOTES).'" data-perfil="'.htmlspecialchars($fila0["perfil"],ENT_QUOTES).'"> '.$fila0["nombre"].'</option>';
                    } ?>
              </select>
          </div>
        </div>
            <div class="row">
              <div id="otro" class="col-md-6">
                  <div class="form-group row">
                    <label for="Empresa" class="col-sm-2 col-form-label">Empresa</label>
                    <div class="col-sm-10">
                      <input type="text" id="empresa" name="empresa" class="form-control" placeholder="Nombre Empresa" value="">
                    </div>
                  </div>
                  <div class="form-group row">
                    <label for="nit" class="col-sm-2 col-form-label">Cédula/NIT</label>
                    <div class="col-sm-10">
                      <input type="text" name="nit" class="form-control" id="nit" placeholder="Cédula o NIT" value="">
                    </div>
                  </div>
                  <div class="form-group row">
                    <label for="contacto" class="col-sm-2 col-form-label">Contacto</label>
                    <div class="col-sm-10">
                      <input type="text" name="contacto" class="form-control" id="contacto" placeholder="Nombre del Contacto" value="">
                    </div>
                  </div>
                  <div class="form-group row">
                    <label for="celular" class="col-sm-2 col-form-label">Celular</label>
                    <div class="col-sm-10">
                      <input type="tel" name="celular" class="form-control" id="celular" placeholder="Numero del Contacto" value="">
                    </div>
                  </div>
                  <div class="form-group row">
                    <label for="ciudad" class="col-sm-2 col-form-label">Ciudad</label>
                    <div class="col-sm-10">
                        <select class="chosen-select" name="ciudad" id="ciudad">
                            <option value="" disabled selected>Seleccione ciudad</option>
                        <? $resultado = $mysqli->query("SELECT * FROM `z_municipios` ORDER BY `departamento` ASC");
                        while ($fila = $resultado->fetch_assoc()){ $infodepa = info('departamento','z_departamentos',$fila["departamento"]);?> <option value="<?= $fila["id"]; ?>"><?= $fila["municipio"].' - '.$infodepa['departamento']; ?></option>
                        <? } ?>
                    </select>
                      
                    </div>
                  </div>
                  <div class="form-group row">
                    <label for="direccion" class="col-sm-2 col-form-label">Dirección</label>
                    <div class="col-sm-10">
                      <input type="text" name="direccion" class="form-control" id="direccion" placeholder="Direccion..." value="">
                    </div>
                  </div>
                  <div class="form-group row">
                    <label for="barrio" class="col-sm-2 col-form-label">Barrio</label>
                    <div class="col-sm-10">
                      <input type="text" name="barrio" class="form-control" id="barrio" placeholder="Nombre del Barrio" value="">
                    </div>
                  </div>
                  <div class="form-group row">
                    <label for="localidad" class="col-sm-2 col-form-label">Localidad</label>
                    <div class="col-sm-10">
                      <input type="text" name="localidad" class="form-control" id="localidad" placeholder="Localidad" value="">
                    </div>
                  </div>
                  <div class="form-group row">
                    <label for="correo" class="col-sm-2 col-form-label">Correo Electrónico</label>
                    <div class="col-sm-10">
                      <input type="email" name="correo" class="form-control" id="correo" placeholder="Correo del Contacto" value="">
                    </div>
                  </div>
              </div>
              <div class="col-md-6">
                  <div class="form-group">
                    <label for="tipo_persona">Tipo de Persona</label>
                    <select name="tipo_persona" class="form-control" id="tipo_persona" onchange="actualizarRetencion()">
                        <option value="">-- Seleccionar --</option>
                        <option value="natural">Persona Natural</option>
                        <option value="juridica">Persona Jurídica</option>
                        <option value="simple">Régimen de Tributación Simple</option>
                    </select>
                  </div>
                  <div class="form-group">
                    <label for="pago">Pago</label>
                    <select name="pago" class="form-control" id="pago">
                        <? $resultado = $mysqli->query("SELECT * FROM `z_pagos_medios` ORDER BY id ASC");
                  while ($fila = $resultado->fetch_assoc()){echo '<option value="'.$fila["id"].'"> '.$fila["medio"].'</option>';
                    } ?>
                    </select>
                  </div>
                  <div class="form-group">
                    <label for="documentos">Documentos</label>
                    <textarea name="documentos" class="form-control" id="documentos" placeholder="Documentos requeridos"></textarea>
                  </div>
              </div>
          </div>
        <hr/>
      <a id="btnagregar" class="btn btn-primary btn-block text-white" data-toggle="modal" data-target="#exampleModal"><i class="fa fa-plus"></i> Agregar</a>
      <hr/>
        <table style="width:100%" class="table">
          <thead>
            <tr>
              <th>Nombre Producto</th>
              <th>Cantidad</th>
              <th>Precio Base</th>
              <th>Precio</th>
              <th>Total</th>
              <th>Accion</th>
            </tr>
          </thead>
          <tfoot>
            <tr>
                <td colspan="4" class="text-right h6"><b>TOTAL BASE</b></td>
                <td class="text-danger h6">$ <span id="total">0</span> COP</td>
                <td><input type="hidden" name="totalbase"></td>
           </tr>
            <tr>
                <td colspan="4" class="text-right h6"><input type="checkbox" name="civa" checked> <b>TOTAL IVA</b></td>
                <td class="text-danger h6">$ <span id="tiva">0</span> COP</td>
                <td><input type="hidden" name="tiva"></td>
           </tr>
            <tr>
                <td colspan="4" class="text-right h6"><input type="checkbox" name="cica" checked> <b>ICA</b></td>
                <td class="text-danger h6">$ <span id="totalica">0</span> COP</td>
                <td><input type="hidden" name="totalica"></td>
           </tr>
            <tr>
                <td colspan="4" class="text-right h6"><input type="checkbox" name="crete" checked> <b>RETEFUENTE</b></td>
                <td class="text-danger h6">$ <span id="totalretefuente">0</span> COP</td>
                <td><input type="hidden" name="totalretefuente"></td>
           </tr>
            <tr>
                <td colspan="4" class="text-right h6"><b>TOTAL</b></td>
                <td class="text-danger h6">$ <span id="ttotal">0</span> COP</td>
                <td><input type="hidden" name="ttotal"></td>
           </tr>
          </tfoot>
          <tbody id="tabla"></tbody>
        </table>
        <div class="form-group row">
          <label for="cliente" class="col-sm-2 col-form-label">Fecha de pago</label>
          <div class="col-sm-4"><? $fecha=date("Y-m-d"/*, strtotime("+1 days")*/); ?>
            <input type="date" class="form-control" name="fecha"  min="<?= date("Y-m-d"); ?>" value="<?= date("Y-m-d"); ?>"  required>
          </div>
        </div>
        <div class="form-group row">
          <label for="nota" class="col-sm-2 col-form-label">Nota</label>
          <div class="col-sm-5">
            <textarea type="text" class="form-control" name="nota"></textarea>
          </div>
          <label for="otros" class="col-sm-2 col-form-label">Costo adicional</label>
          <div class="col-sm-3">
            <input type="number" class="form-control" name="otros" placeholder="$ 0 COP">
          </div>
        </div>
        <input type="submit" class="btn btn-primary btn-sm btn-block" value="Finalizar Cotización">
      </form>
                <!-- Logout Modal-->
          <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
            <div class="modal-dialog" role="document">
             <div class="modal-content">
                <div id="mesage"></div>
              <div class="modal-header" style="padding-top:0px;padding-bottom:0px;">
                <h5 class="modal-title" id="exampleModalLabel">Agregar Producto</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
              </div>
              
                  <style>
                      #producto_chosen{
                          width:100% !important;
                      }
                  </style>
                <div class="modal-body">
                <form id="cotizacion" method="post" action="pedido.php">
                  <input type="hidden" name="bod" value="0">
                  <div class="form-group row">
                    <label for="recipient-name" class="col-sm-3 col-form-label">Producto:</label>
                    <div class="col-sm-9">
                        <select data-placeholder="Seleccionar producto" class="chosen-select" name="producto" id="producto" onchange="otrop(this.value)" required>
                            <option disabled selected>Selecione producto</option>
                            <? $resultado = $mysqli->query("SELECT * FROM z_productos WHERE eliminado=0 ORDER BY producto ASC");
                            while ($fila = $resultado->fetch_assoc()){ ?><option value="<?= $fila["id"] ?>"><?= quitar_tildes($fila["codigo"].'-'.$fila["producto"]); ?></option>
                            <? }; ?>
                            <option value="0">otro</option>
                      </select>
                    </div>
                  </div>
                  <div class="form-group row d-none" id="nproducto">
                    <label for="recipient-name" class="col-sm-3 col-form-label">Nombre:</label>
                    <div class="col-sm-9">
                        <input type="text" name="nproducto" class="form-control">
                    </div>
                  </div>
                  <div class="form-group row d-none" id="oiva">
                    <label for="recipient-name" class="col-sm-3 col-form-label">IVA:</label>
                    <div class="col-sm-9">
                        <select class="form-control" name="oiva">
                            <? for($i=0;$i<=30;$i++){ ?><option value="<?= $i; ?>"><?= $i.'%'; ?></option><? } ?>
                      </select>
                    </div>
                  </div>
                  <div class="form-group row">
                    <label for="recipient-name" class="col-sm-3 col-form-label">Presentacion:</label>
                    <div class="col-sm-9">
                        <select data-placeholder="Seleccionar present" class="chosen-select" name="present" id="present" required>
                            <option disabled selected>Selecione presentacion</option>
                            <? $resultado = $mysqli->query("SELECT * FROM z_presentaciones_productos ORDER BY presentacion");
                            while ($fila = $resultado->fetch_assoc()){?><option value="<?= $fila["id"]; ?>" <? if($fila["id"]==22){ echo 'selected';} ?>><?= quitar_tildes($fila['presentacion']); ?></option>
                            <? }; ?>
                      </select>
                    </div>
                  </div>
                  <div class="form-group row"  id="ocat">
                    <label for="categoria" class="col-sm-3 col-form-label">Categoria:</label>
                    <div class="col-sm-9">
                        <select class="form-control" name="categoria"required>
                            <option disabled selected>Selecione presentacion</option>
                            <? $resultado = $mysqli->query("SELECT * FROM z_categorias_productos ORDER BY categoria");
                            while ($fila = $resultado->fetch_assoc()){?><option value="<?= $fila["id"]; ?>"><?= quitar_tildes($fila['categoria']); ?></option>
                            <? }; ?>
                      </select>
                    </div>
                  </div>
                  <div class="form-group row">
                    <label for="precio" class="col-sm-3 col-form-label">Cantidad: </label>
                    <div class="col-sm-4"><input class="form-control" type="number" id="cantidad" name="cantidad" placeholder="cantidad" title="cantidad" step="0.001" value="1" required></div>
                    <div class="col-2 h6" id="unidad"></div>
                  </div>
                  <div class="form-group row">
                    <label for="cantidad" class="col-sm-3 col-form-label">precio: </label>
                    <div class="col-sm-7"><input class="form-control" type="number" id="precio" name="precio" placeholder="precio" title="precio" step="0.001" required></div>
                  </div>
                  <div class="form-group">
                    <button type="button" class="btn float-left btn-danger btn-sm" data-dismiss="modal" aria-label="Close">CERRAR</button>
                    <button type="submit" value="Enviar" class="btn float-right btn-success btn-sm">AGREGAR</button>
                  </div>
                </form>
              </div>
            </div>
          </div>
        </div>
        


<!-- Modal -->
<div class="modal fade" id="modalpedido" tabindex="-1" role="dialog" aria-labelledby="modalpedidoLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="modalpedidoLabel">Pedido anterior<span id="code"></span></h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <form id="memoria">
      </form>
    </div>
  </div>
</div>
        
    </div>
  </div>
  <script>
  var array = []; // Declarar array global para productos
  var tipoCotizacion = 'electro'; // electro
  var tipoTributario = 'juridica';
  function actualizarRetencion() {
    updateRetencionControl();
  }
  
  function updateRetencionControl() {
    // Si es remicionable, nunca aplicar retención
    if (tipoCotizacion === 'remi') {
      $('input[name=crete]').prop('checked', false).prop('disabled', true);
    } 
    // Si es electrónica, revisar el tipo tributario o tipo persona
    else if (tipoCotizacion === 'electro') {
      var tipoPersona = document.getElementById('tipo_persona') ? document.getElementById('tipo_persona').value : '';
      var tipoTributarioVal = tipoTributario || 'juridica';
      
      // Persona Natural y Régimen de Tributación Simple no aplican retención
      if (tipoPersona === 'natural' || tipoPersona === 'simple' || tipoTributarioVal === 'natural' || tipoTributarioVal === 'simple') {
        $('input[name=crete]').prop('checked', false).prop('disabled', true);
      } else {
        $('input[name=crete]').prop('disabled', false);
        $('input[name=crete]').prop('checked', true);
      }
    }
    togglePrecioBaseColumn();
  }
  updateRetencionControl();
  togglePrecioBaseColumn();
  function togglePrecioBaseColumn() {
    if (tipoCotizacion === 'remi') {
      $('table.table').addClass('hide-precio-base');
    } else {
      $('table.table').removeClass('hide-precio-base');
    }
  }
        function otro(valor){
            if(valor === 'otro'){
                $('#otro').attr('class','col-md-6 d-block');
                $('#empresa,#nit,#contacto,#celular,#correo,#direccion,#barrio,#localidad').val('');
                $('#ciudad').val('').trigger('chosen:updated');
                tipoTributario = 'juridica';
                $('#tipo_persona').prop('disabled', false).val('');
            }else{
                $('#otro').attr('class','d-none');
                var option = $('#cliente option[value="'+valor+'"]');
                var empresa = option.text().trim();
                var nit = option.data('nit') || '';
                var contacto = option.data('contacto') || '';
                var celular = option.data('celular') || '';
                var correo = option.data('correo') || '';
                var ciudad = option.data('ciudad') || '';
                var direccion = option.data('direccion') || '';
                var barrio = option.data('barrio') || '';
                var localidad = option.data('localidad') || '';
                var perfil = option.data('perfil') || '';

                $('#empresa').val(empresa);
                $('#nit').val(nit);
                $('#contacto').val(contacto);
                $('#celular').val(celular);
                $('#correo').val(correo);
                $('#direccion').val(direccion);
                $('#barrio').val(barrio);
                $('#localidad').val(localidad);
                $('#ciudad').val(ciudad).trigger('chosen:updated');

                tipoTributario = perfil || 'juridica';
                if(perfil){
                    $('#tipo_persona').val(perfil).prop('disabled', true);
                } else {
                    $('#tipo_persona').val('').prop('disabled', false);
                }
            }
            updateRetencionControl();
            loadretica();
        }
        function otrop(valor){
            if(valor == 0){
                $('#nproducto').attr('class','form-group row d-flex');
                $('#oiva').attr('class','form-group row d-flex');
                $('#ocat').attr('class','form-group row d-flex');
                $("input[name=nproducto]").attr("required", "true");
                $("select[name=categoria]").attr("required", "true");
            }else{
                $('#nproducto').attr('class','form-group row d-none');
                $('#oiva').attr('class','form-group row d-none');
                $('#ocat').attr('class','form-group row d-none');
                $("input[name=nproducto]").removeAttr('required');
                $("select[name=categoria]").removeAttr('required');
            }
            loadretica();
        }
        function loadretica(){
            <? $resultado = $mysqli->query("SELECT base,porcentaje FROM `z_ica` ORDER BY `id` DESC"); $fila = $resultado->fetch_assoc();  ?>
            var baseica = <?= $fila['base']; ?>;
            var ica =  <?= $fila['porcentaje']; ?>;
            <? $resultado = $mysqli->query("SELECT base,porcentaje FROM `z_retefuente` ORDER BY `id` DESC"); $fila = $resultado->fetch_assoc(); ?>
            var baseretefuente = <?= $fila['base']; ?>;
            var retefuente = <?= $fila['porcentaje']; ?>;
            var municipio =  $('#ciudad').val();
            var totalcotizacion = 0;
            var tivas = 0;
            setTimeout(function(){
                 array.forEach(function (element) {
                     if(element!=0){
                         var precio = $('input[name=prec'+element+']').val();
                         var cantidad = $('input[name=cant'+element+']').val();
                         var iva = $('input[name=iva'+element+']').val();
                         totalcotizacion = parseFloat(totalcotizacion)+(parseFloat(precio)*parseFloat(cantidad));
                         if( $('input[name=civa]').prop('checked') ) {
                             if (tipoCotizacion === 'electro') {
                                 var sumiva = ((parseFloat(precio)*parseFloat(cantidad))*parseFloat(iva))/100;
                                 tivas = parseFloat(tivas) + parseFloat(sumiva);
                             } else { // remi
                                 var oiva = (parseFloat(iva)+100)/100;
                                 var sumiva = ((parseFloat(precio)*parseFloat(cantidad))/parseFloat(oiva));
                                 tivas = parseFloat(tivas) + parseFloat(sumiva);
                             }
                         }else{
                             tivas = 0;
                         }
                     }
                 });
                 
                var subtotal= parseFloat(totalcotizacion) + parseFloat(tivas);
                if( $('input[name=cica]').prop('checked') ) {
                    if(municipio=='107'){
                        if(totalcotizacion>=baseica){
                            var totalica = Math.round(totalcotizacion * ica)/100;
                            console.log(totalcotizacion+' - '+ica+' - '+totalica);
                            $('#totalica').html(totalica.toLocaleString('en-US'));
                        }else{
                            $('#totalica').html(0);
                            var totalica = 0;
                        }
                    }else{
                        $('#totalica').html(0);
                        var totalica = 0;
                    }
                }else{
                    $('#totalica').html(0);
                    var totalica = 0;
                }
                if( $('input[name=crete]').prop('checked') && tipoCotizacion === 'electro' && tipoTributario !== 'natural' && tipoTributario !== 'simple') {
                    if(totalcotizacion>=baseretefuente){
                        var totalrete = Math.round(totalcotizacion * retefuente)/100;
                        $('#totalretefuente').html(totalrete.toLocaleString('en-US'));
                    }else{
                        $('#totalretefuente').html(0);
                        var totalrete = 0;
                    }
                } else {
                    $('#totalretefuente').html(0);
                    var totalrete = 0;
                }
                
                if (tipoCotizacion === 'electro') {
                    var ttotal = parseInt(totalcotizacion)+parseInt(tivas)-parseInt(totalica)-parseInt(totalrete);
                } else { // remi
                    var ttotal = parseInt(totalcotizacion);
                }
                $('input[name=totalbase]').val(totalcotizacion);
                $('#total').text(parseInt(totalcotizacion));
                $('input[name=totalica]').val(totalica);
                $('input[name=totalretefuente]').val(totalrete);
                $('input[name=ttotal]').val(ttotal);
                $('input[name=tiva]').val(tivas);
                $('#ttotal').html(ttotal.toLocaleString('en-US'));
                $('#tiva').html(parseInt(tivas).toLocaleString('en-US'));
            }, 700);
        }
    </script>
    <?php include $r."inc/foot.php"; ?> <script>
(function(){
  const $empresa = $('input[name=empresa]');
  const $contacto = $('#contacto');
  const $celular = $('#celular');
  const $ciudad = $('#ciudad');
  const $correo = $('#correo');

  function normalizarTexto(v){
    return (v || '').trim();
  }

  function limpiarCampos(detalle = false){
    if(detalle){
      $contacto.val('');
      $celular.val('');
      $correo.val(''); 
      $ciudad.val('');
    }
  }

  $empresa.on('input', function(){
    const valor = normalizarTexto($(this).val());
    if(valor){
      $contacto.val(valor);
      $celular.val('');
      $correo.val('');
      $ciudad.val('');
    }else{
      limpiarCampos(true);
    }
  });
})();
</script>
</body>
</html>