<?php
session_start();
require_once ("../conexion.php");
require_once('../include/sesiones.php');
$ord_id=$_GET['id'];
$cano=mysqli_query($con,"SELECT * FROM orden_servicios where ord_id='$ord_id'") or die(mysqli_error($con)); 
$dato=mysqli_fetch_array($cano);
$clie_nombre=$dato["ord_clie_nombre"];
$ord_clie_id=$dato["ord_clie_id"];

$cli=mysqli_query($con,"SELECT * FROM cliente where clie_id='$ord_clie_id' AND empresa='$empresa'") or die(mysqli_error($con)); 
$cli=mysqli_fetch_array($cli);
$clie_nota_credito=$cli['clie_nota_credito'];

$sumador_total=0;
$total=0;
$sql2=mysqli_query($con,"SELECT * from orden_detalle where orden_servicios_ord_id='$ord_id' ");
while ($row=mysqli_fetch_array($sql2))
{
    $ordt_cantidad=$row["ordt_cantidad"];
    $ordt_precio=$row["ordt_precio"];
    $ordt_desc=$row["ordt_desc"];
    $precio_total=$ordt_precio*$ordt_cantidad;
    $descuento=($ordt_desc/100)*$precio_total;
    $total+=$precio_total-$descuento;//Sumador
}
$sql=mysqli_query($con,"SELECT sum(ord_abono) as abono from orden_abonos va where orden_servicios_ord_id='$ord_id' and empresa='$empresa'");
$sql=mysqli_fetch_array($sql);
$abono=$sql['abono'];
$sumador_total=$total-$abono;
?>

<?php 

if ($puntos=='si') 
  {
   $total_punto=floor($total/$valor_punto_dinero);
  } 
else
   { 
    $total_punto=0;
   }

 ?>
<pre style="font-size:24px;text-align:center"><strong class="text-danger">$<?php echo number_format($sumador_total,0); ?></strong></pre>
<div id="resultado"></div>
<form method="post" action="" name="form_efectivo_efec" id="form_efectivo_efec">
    <input type="hidden" name="total_punto" id="total_punto" value="<?php echo $total_punto; ?>">
    <div class="middle" id="ventana2">
        <label>
            <input type="radio" name="forma_pag" id="forma_efec" value="efectivo" checked onChange="medio_pago2(this)"/>
            <div class="front-end box"><span>EFECTIVO</span></div>
        </label>
        <label>
            <input type="radio" name="forma_pag" id="forma_tran" value="transferencia" onChange="medio_pago2(this)"/>
            <div class="back-end box"><span>TRANSFERENCIA</span></div>
        </label>
        <label>
            <input type="radio" name="forma_pag" id="forma_tarj" value="tarjeta" onChange="medio_pago2(this)"/>
            <div class="back-end box"><span>TARJETA</span></div>
        </label>
        <label>
            <input type="radio" name="forma_pag" id="forma_comb" value="combinado" onChange="medio_pago2(this)"/>
            <div class="back-end box"><span>COMBINADO</span></div>
        </label>
       
    </div> 
    </br>  
<!-- /.efectivo -->
<div id="ventana_efec">
    <div id="efe" style="display: block; ">
        <label>NUMERACION</label>
            <select name="serie_remi" id="serie_remi" class="form-control name_list" >
                <?php
                    $serie11=mysqli_query($con,"SELECT * FROM serie_factura WHERE empresa='$empresa' and ser_predeterminda='si' and ser_tipo='pos' and ser_estado='activo' ") ;
                    while( $serie1 = mysqli_fetch_array( $serie11 ) )
                    {
                        echo' <option value="'.$serie1['ser_id'].'">'.$serie1['ser_prefijo'].' '.$serie1['ser_inicio'].'-'.$serie1['ser_fin'].'</option>';
                    }

                    $serie22=mysqli_query($con,"SELECT * FROM serie_factura WHERE empresa='$empresa' and ser_predeterminda='no' and ser_tipo='pos' and ser_estado='activo' ") ;
                    while( $serie2 = mysqli_fetch_array( $serie22 ) )
                    {
                        echo' <option value="'.$serie2['ser_id'].'">'.$serie2['ser_prefijo'].' '.$serie2['ser_inicio'].'-'.$serie2['ser_fin'].'</option>';
                    }
                    $serie22=mysqli_query($con,"SELECT * FROM serie_factura WHERE empresa='$empresa' and ser_predeterminda='no' and ser_tipo='remision' and ser_estado='activo' ") ;
                    while( $serie2 = mysqli_fetch_array( $serie22 ) )
                    {
                        echo' <option value="'.$serie2['ser_id'].'">'.$serie2['ser_prefijo'].' '.$serie2['ser_inicio'].'-'.$serie2['ser_fin'].'</option>';
                    }
                ?>
            </select>
        <label>VENDEDOR</label>
        <section id="intro" >
            <select name="vendedor" id="vendedor" class="form-control name_list" >
                <?php
                    $datos = mysqli_query($con,"SELECT * FROM usuario WHERE empresa_emp_id='$empresa' and usu_id='$usu_id' and usu_estado='Activo' ") ;
                    while( $fila = mysqli_fetch_array( $datos ) )
                        {
                            echo' <option value="'.$fila['usu_id'].'">'.$fila['usu_nombre'].'</option>';
                        }
                    $datos = mysqli_query($con,"SELECT * FROM usuario WHERE empresa_emp_id='$empresa' and usu_id<>'$usu_id' and usu_estado='Activo' and sucursal='$sucursal' ") ;
                    while( $fila = mysqli_fetch_array( $datos ) )
                        {
                            echo' <option value="'.$fila['usu_id'].'">'.$fila['usu_nombre'].'</option>';
                        }
                ?>
            </select>
        </section>
        <input type="hidden" name="comicion" id="comicion" class="form-control input-sm" value="">

        <div id="div_efectiv" style="display: "> </div>

        <div id="div_medio_pag" style="display: none">
            <label>PLATAFORMA DE PAGO</label>
            <select name="medio_pago" id="medio_pago" class="form-control name_list input-sm" >
                <?php
                    $datos = mysqli_query($con,"SELECT * FROM banco WHERE empresa='$empresa' order by ban_nombre asc") ;
                    while( $fila = mysqli_fetch_array( $datos ) )
                    {
                        echo' <option value="'.$fila['ban_nombre'].'">'.$fila['ban_nombre'].'</option>';
                    }
                ?>
            </select>
        </div>

                <!-- /.combinado -->
        <div id="div_combinado" style="display: none; ">
            <input type="hidden" name="tipo_venta" value="pos">
            <input type="hidden" name="total_punto" id="total_punto" value="<?php echo $total_punto; ?>">
            <input type="hidden" name="comicion" id="comicion" value="">
           

              <p></p>
              <label class="col-md-12" style="text-align: center; color: darkgreen; font-size: 16px;">FORMAS DE PAGO</label>

           
            <p></p>

            <!-- Contenedor donde se agregarán los campos -->
            <!-- Esto puede ir en cualquier lugar del HTML, fuera del contenedor -->
            <input type="hidden" id="nota_credito_valor" value="<?php echo $clie_nota_credito; ?>">

            <div id="campos-container">
                <div class="campo-pago">
                    <div class="col-md-6" style="padding-right: 0px">
                        <label>Medio de pago</label>
                        <select name="medio_pago[]" class="form-control medio-pago-select input-sm" >
                            <option value="" disabled selected>Seleccione...</option>
                            <option value="efectivo">Efectivo</option>
                            <?php if ($clie_nota_credito>0) { ?>
                            <option value="nota credito">Nota Credito</option>
                            <?php } ?>
                            <?php
                                $datos = mysqli_query($con,"SELECT * FROM banco WHERE empresa='$empresa' ORDER BY ban_nombre ASC");
                                while($fila = mysqli_fetch_array($datos)) {
                                    echo '<option value="'.$fila['ban_nombre'].'">'.$fila['ban_nombre'].'</option>';
                                }
                            ?>
                        </select>
                    </div>
                    <div class="col-md-5">
                        <label>Valor</label>
                        <input type="number" name="valores[]" class="form-control input-sm" >
                        <small class="text-danger mensaje-error" style="display: none;">Valor excede el total disponible</small>
                    </div>
                    <div class="col-md-1">
                        <label>&nbsp;</label>
                         <a type="button" class="btn btn-xs btn-danger btn-block eliminar_pago"> <i class="btn-icon-only icon-remove"></i></a>
                    </div>
                </div>
            </div>

            <div>&nbsp;</div>

             <!-- Botón para agregar campos -->
            <div style="margin-top: 10px;">
                <div class="col-md-12">
                    <button type="button" class="btn btn-warning btn-sm" onclick="agregarCampos()">+ Agregar Medio de Pago</button>
                </div>
            </div>


            <div>&nbsp;</div>

                <input type="hidden" value="<?php echo $sumador_total; ?>" name="total_factura" id="total_factura">
                <input type="hidden" value="" name="credi_com" id="credi_com">
                <div class="col-md-12">
                <!-- Mostrar saldo restante -->
                <span style="color: red; font-size: 20px; font-style: normal;">SALDO POR PAGAR $ : </span>
                <span id="saldo_restante" style="color: red; font-size: 20px; font-style: normal;"> </span>
                </div>
       
        </div>


        <input type="hidden" name="sumador_total" id="sumador_total" value="<?php echo $sumador_total; ?>">
        <input type="hidden" name="ord_id" id="ord_id" value="<?php echo $ord_id; ?>">
        <br>
        <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
            <button name="btn_efectivo1" value="btn_efectivo1" type="submit" class="btn btn-success" accesskey="s" title="alt + s" ><i class="icon-ok"></i> <strong>Aceptar</strong></button> 
        </div>
    </div>
</div>
</form>

<script type="text/javascript">
//EFECTIVO efectivo
$( "#form_efectivo_efec" ).submit(function( event ) {
    event.preventDefault(); // Mover esta línea al principio para evitar que el formulario se envíe

    // Quitar required de todos los inputs/selects que no están visibles (independientemente del contenedor)
    $(this).find("input, select").each(function() {
        if (!$(this).is(":visible")) {
            $(this).prop("required", false);
        }
    });

   // Verificar si la opción seleccionada es "Combinado"
    var formaPagoSeleccionada = document.querySelector('input[name="forma_pag"]:checked');
    var esCombinado = formaPagoSeleccionada && formaPagoSeleccionada.value === "combinado";

    // Solo validar el saldo pendiente si es "Combinado"
    if (esCombinado) {
        var credi_com = parseFloat(document.getElementById("credi_com").value || "0");
        if (credi_com !== 0) {
            alert('Debes completar los abonos. Saldo pendiente: ' + credi_com.toLocaleString());
            return;
        }
    }


$('#btn_efectivo1').attr("disabled", true);
$('#ventana2').hide(); 
$('#ventana_efec').hide(); 
 var parametros = $(this).serialize();
   $.ajax({
      type: "POST",
      url: "php_orden_de_servicios/registrar_venta_efectivo.php",
      data: parametros,
        beforeSend: function(objeto){
         $('#resultado').html('<center><img src="./img/ajax-loader.gif"> CARGANDO...</center>');
        },
      success: function(datos){
      $("#resultado").html(datos);
      $('#btn_efectivo1').attr("disabled", false);
     load(1);
      }
  });
  event.preventDefault();
})



function agregarCampos() {
    const contenedor = document.getElementById('campos-container');
    const campos = document.querySelector('.campo-pago');
    const clon = campos.cloneNode(true); // clona todo el grupo

    // Limpiar valores del clon
    clon.querySelectorAll('input').forEach(input => input.value = '');
    clon.querySelectorAll('select').forEach(select => select.value = '');
    clon.querySelectorAll('.mensaje-error').forEach(el => el.style.display = 'none');

    contenedor.appendChild(clon);
   // actualizarOpciones();
    actualizarSaldo();
    actualizarOpcionesDisponibles();
}

// eliminar grupo de campos
$(document).on('click', '.eliminar_pago', function () {
    if ($('.campo-pago').length > 1) {
        $(this).closest('.campo-pago').remove();
    }
   // actualizarOpciones();
    actualizarSaldo();
    actualizarOpcionesDisponibles();
});


function actualizarOpcionesDisponibles() {
    let seleccionados = [];

    // Recoger valores seleccionados
    $('.medio-pago-select').each(function() {
        let val = $(this).val();
        if (val) {
            seleccionados.push(val);
        }
    });

    // Para cada select, ocultar opciones seleccionadas en otros
    $('.medio-pago-select').each(function() {
        let actual = $(this).val();
        $(this).find('option').each(function() {
            let val = $(this).val();

            if (seleccionados.includes(val)) {
                // Ocultar opciones ya usadas en otros selects
                $(this).hide();
            } else {
                $(this).show();
            }
        });
    });
}


$('#campos-container').on('change', '.medio-pago-select', function() {
    actualizarOpcionesDisponibles();

    // Si seleccionan "nota credito", poner el valor automáticamente
    const valorNotaCredito = parseFloat(document.getElementById('nota_credito_valor').value) || 0;
    
  let campoPago = $(this).closest('.campo-pago');
let inputValor = campoPago.find('input[name="valores[]"]');

if ($(this).val() === 'nota credito') {
    inputValor.val(valorNotaCredito); // asigna el valor automáticamente
} else {
    inputValor.val(''); // limpia si se cambia a otro medio
}
actualizarSaldo(); // en ambos casos

});




function actualizarSaldo() {
    const totalFactura = parseFloat(document.getElementById('total_factura').value) || 0;
    let inputs = document.querySelectorAll('input[name="valores[]"]');
    let sumaValores = 0;
    let saldoRestante = totalFactura;

    inputs.forEach((input, index) => {
        let valor = parseFloat(input.value);
        if (!isNaN(valor)) {
            sumaValores += valor;
        }
    });

    saldoRestante = totalFactura - sumaValores;

    // Evitar que el saldo sea negativo
    if (saldoRestante < 0) {
        let ultimoInput = [...inputs].find(input => document.activeElement === input);
        if (ultimoInput) {
            let sumaSinEste = 0;
            inputs.forEach(input => {
                if (input !== ultimoInput && !isNaN(parseFloat(input.value))) {
                    sumaSinEste += parseFloat(input.value);
                }
            });

            let maxPermitido = totalFactura - sumaSinEste;
            ultimoInput.value = maxPermitido.toFixed(0);
            saldoRestante = 0;

            // Mostrar mensaje visual
            const errorMsg = ultimoInput.parentNode.querySelector('.mensaje-error');
            if (errorMsg) {
                errorMsg.style.display = 'block';
                setTimeout(() => {
                    errorMsg.style.display = 'none';
                }, 3000);
            }
        }
    }

    // Mostrar saldo actualizado en el span saldo total
    document.getElementById('saldo_restante').textContent = saldoRestante.toLocaleString('es-CO');
    // También actualiza el valor del input oculto (sin formato)
    document.getElementById('credi_com').value = saldoRestante;    
}



// Detectar cambios
document.addEventListener('input', function(e) {
    if (e.target.name === 'valores[]') {
        actualizarSaldo();
    }
});

</script>



<script>
function medio_pago2(sel) {
    // Obtener referencias a los contenedores de los métodos de pago
    const divEfectivo = document.getElementById("div_efectiv");
    const divTransferencia = document.getElementById("div_medio_pag");
    const divCombinado = document.getElementById("div_combinado");

    // Ocultar todos los contenedores para limpiar la vista
    divEfectivo.style.display = "none";
    divTransferencia.style.display = "none";
    divCombinado.style.display = "none";

    // Desactivar el atributo 'required' en los campos de selección y valores de medios de pago ocultos
    document.querySelectorAll(
        "#div_medio_pag select, #div_combinado select, #div_combinado input[name='valores[]']"
    ).forEach(el => {
        el.required = false;
    });

    // Verificar qué opción fue seleccionada y mostrar el contenedor correspondiente
    if (sel.value === "efectivo") {
        // Mostrar el contenedor para pago en efectivo
        divEfectivo.style.display = "block";

    } else if (sel.value === "transferencia" || sel.value === "tarjeta") {
        // Mostrar el contenedor para pago por transferencia o tarjeta
        divTransferencia.style.display = "block";

        // Seleccionar el campo 'medio_pago' dentro del contenedor transferencia y hacerlo obligatorio
        const medioPagoSelect = document.querySelector("#medio_pago");
        if (medioPagoSelect) medioPagoSelect.required = true;

    } else if (sel.value === "combinado") {
        // Mostrar el contenedor para pago combinado (varios medios)
        divCombinado.style.display = "block";

        // Activar el atributo 'required' en todos los selects y campos de valor dentro de combinado
        document.querySelectorAll("#div_combinado select, #div_combinado input[name='valores[]']").forEach(el => {
            el.required = true;
        });
    }
}

// Al cargar la página (cuando el DOM esté listo)
document.addEventListener("DOMContentLoaded", function () {
    // Buscar el botón de radio seleccionado por defecto (el que está marcado)
    const selected = document.querySelector('input[name="forma_pag"]:checked');

    // Si existe uno seleccionado, llamar a la función para mostrar su contenido correcto
    if (selected) medio_pago2(selected);
});
</script>




<style>
.middle {
  width: 100%;
  text-align: center;
  /* Made by */
}
.middle h1 {
  font-family: "Dax", sans-serif;
  color: #ccc;
}
.middle input[type="radio"] {
  display: none;
}
.middle input[type="radio"]:checked + .box {
  background-color: #009e90;
}
.middle input[type="radio"]:checked + .box span {
  color: white;
  transform: translateY(70px);
}
.middle input[type="radio"]:checked + .box span:before {
  transform: translateY(0px);
  opacity: 1;
}
.middle .box {
  width: 131px;
  height: 60px;
  background-color: #ccc;
  transition: all 250ms ease;
  will-change: transition;
  display: inline-block;
  text-align: center;
  cursor: pointer;
  position: relative;
  font-family: "Dax", sans-serif;
  font-weight: 900;
  padding-top: 19px;
}
.middle .box span {
  left: 0;
  right: 0;
}
</style>