New question

Question:

Date: 16-02-2019 02:06:13 (In Spanish)

problema con codigo para enviar datos[Unresolved]

recurro nuevamente a su sabiduría en un problema q me tiene algo atascado. Les explico mi situación, necesito extraer un dato de un array estirarla desde la función.. tiene que ser asi porq la funcion es llamada desde varios lugares y solo en una situacion hay algo q enviar a la funcion por lo q pienso q seria mas facil si se puede estirar desde la misma funcion

la formacion del array es la siguiente: el select de la configuracion del autocomplete (se que el array no esta definido en el codigo q publique pero ya esta definido.)

$("#producto").autocomplete({
        source:function(request, response){
            $.ajax({
                url:  "http://localhost/ventas_ci/movimientos/ventas/getproductos",
                type: "POST",
                dataType: "json",
                data:{ valor: request.term},
                success:function(data){ console.log(data); response(data); }
            });
        },
        minLength:2,
        select: function(event, ui){
            data = ui.item.id_producto +"*"+ ui.item.codigo_producto +"*"+ ui.item.label +"*"+ ui.item.precio_producto +"*"+ ui.item.iva_valor_producto +"*"+ ui.item.stock_producto;
            $("#btn-agregar").val(data);
        },
    });


me gustaria estirar ui.item.iva_valor_producto en la función sumar

function sumar(iva){
    subtotal = 0;
    $("#tbventas tbody tr").each(function(){
        subtotal = subtotal + Number($(this).find("td:eq(5)").text());
    });
    $("input[name=subtotal]").val(subtotal)
       porcentaje = $("#iva").val();
       iva = subtotal * (porcentaje/100);
       $("input[name=iva]").val(iva);
       descuento = $("input[name=descuento]").val();
       total = subtotal + iva - descuento;
       $("input[name=total]").val(total);
    
}   


podria darme una manito x favor?
Tags: CodeIgniter - PHP - Question - Sublime Text Votes: 0 - Answers: 8 - Views: 11 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  •  
      0  
     
    Date: 16-02-2019 06:31:25 Hola.
    quieres usar el valor iva_valor_producto de la opcion que seleccionaste dentro de la funcion sumar?
    si es asi, podrias declarar una variable fuera de la funcion que inicie con un valor 0 y luego cuando seleccionas le asignas un valor y esa variable podrias pasarsela a la funcion sumar en los casos que necesites, todo esto estamos hablando en el script de js ?
      Votes: 0 - Link answer
     
  • Date: 18-02-2019 01:31:37 Hola Raul, como andamos?? al final solucione con JQUERY pues te permite seleccionar los elementos de la vista de acuerdo a su id..
    pero estoy con un problema

    te explico x si de repente podes darme una mano de nuevo:

    como t habras dado cuenta, estoy haciendo un progamita para gestionar ventas,
    hasta ahi todo bien.. hago las ventas el impuesto todo.. pero estoy tratando de cargar la opcion de descuento tb a través de 2 botones

    el boton de hacer el descuento por porcentaje

    $(document).on("click",".btn-porcentaje",function()
        {
            subt = $("input[name=subtotal]").val();
            if (subt != 0){
                $("input[name='inp_descuento']").prop({'disabled': false});
                $("button[name='desc_guaranies']").prop({'disabled': true});
                document.getElementById("inp_descuento").focus();
            }
            else
            {
                alert("No se ha ingresado ninguna venta...");
            }
            $(document).on("keyup","#inp_descuento", function(){
                dscpor = $("input[name='inp_descuento']").val();
                subt = $("input[name=subtotal]").val();
                if (dscpor >= 100)
                {
                    alert("El % de descuento debe ser menor a 100");
                    dsc = $("input[name='inp_descuento']").val(0);
                }
               
                descuento = subt * (dsc/100);
                 $("input[name=descuento]").val(descuento);
                
                sumar();
            });
        });


    y el boton de hacer descuento en guaranies

    $(document).on("click",".btn-guaranies",function()
        {
            subt = $("input[name=subtotal]").val();
            if (subt != 0){
                $("input[name='inp_descuento']").prop({'disabled': false});
                $("button[name='desc_porcentaje']").prop({'disabled': true});
                document.getElementById("inp_descuento").focus();
            }
            else
            {
                alert("No se ha ingresado ninguna venta...");
            }
            $(document).on("keyup","#inp_descuento", function(){
                dscgs = $("input[name='inp_descuento']").val();
                total = $("input[name=total]").val();
                if (dscgs > total){
                    alert("El descuento debe ser menor al total");
                    dsc = $("input[name='inp_descuento']").val(0);
                    $("input[name='descuento']").val(0);
                }
                else
                {
                    $("input[name='descuento']").val(dsc);
                    sumar();
                }
            });
        });


    ademas hay un boton desacer que lo que hace es permitirte cambiar el tipo de descuento en caso de error

    $(document).on("click",".btn-desacer",function()
        {
            $("input[name='inp_descuento']").val(0);
            $("input[name='descuento']").val(0);
            $("input[name='inp_descuento']").prop({'disabled': true});
            $("button[name='desc_porcentaje']").prop({'disabled': false});
            $("button[name='desc_guaranies']").prop({'disabled': false});
            alert(dscpo);
            sumar();
        });


    me salen 2 errores, el primero cuando hago descuento en guaraníes, mientras el valor de mi venta es menor a 10000 funciona, pero pasa ese monto y entra en el IF correspondiente a ese botón aunq no se cumpla la condición (???)

    el segundo es que cuando le doy desacer, y selecciono otro metodo de descuento entra en el IF del metodo de descuento x porcentaje.

    tenes experiencia con algo asi??

    la vd q en este punto ya no se q lenguaje estoy usando.. pero creo que es el plug-in jquery..
      Votes: 0 - Link answer
     
  • Date: 18-02-2019 03:11:03 Hola Elvio Bienvenido a PHPCentral

    No entiendo bien tu codigo pero a lo que vi tienes problemas en los if y else recuerda que para que entre a un if en especifico se debe cumplir ciertos condiciones y debe ser true y veo un pequeño error:

    
    if (subt != 0){
     // entraria aqui aunque fuera -0 -1 -2 -3 -4 -5 ect
    }
    
    


    exlico supongo que sabes que tambien en javascript existen los numeros negativos la forma correcta seria:

    if (subt > 0){
     // entraria aqui si el valor es mayor a 0 por lo tanto no entra si el valor es negativo
    }
    


    ahora tambien veo que usas el evento keyup?
    para que usas este evento?
    si es para reducir no seria mas facil usar html y la etiqueta input de tipo number? y usar en evento change?
      Votes: 1 - Link answer
     
  • Date: 18-02-2019 04:35:05 hola Amigo, como estas?? gracias x tu respuesta, con respecto al
    if (subt != 0)
    lo uso de esa forma xq subt es un campo que se genera automáticamente, como lo que hago es un sistema de ventas, en subt cargo la sumatoria de lo que voy vendiendo.. y lo que pregunto básicamente es que ya se haya generado una venta, por eso lo use de esa forma, pero es correcta tu aclaración, muchas gracias.

    el keyup uso para detectar los cambios en el input descuentos, entonces los cálculos se realizan en tiempo real, la vd no conocía ese evento change.. voy a investigar q hace y si cumple con lo q necesito voy a cambiarlo, xq la vd q ahora mismo no se muy bien como proceder.. Muchas gracias de nuevo x la ayuda amigo.. Saludos
      Votes: 0 - Link answer
     
  •  
      1  
     
    Date: 18-02-2019 05:24:43 Hola Elvio.
    Te hice esto, es lo que entendí, espero te sirva, crea un archivo y pruebalo, es algo sencillo.
    espero te sirva.
    Saludos

    
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    </head>
    <body>
    
    	Subtotal:  <input type="number" name="subtotal" id="subtotal"> <br><br>
    	Inp Descuento: <input type="number" name="inp_descuento" id="inp_descuento" disabled> <br><br>
    	Descuento: <input type="number"  name="descuento" id="descuento" disabled readonly> <br><br>
    	Total Pagar: <input type="number" name="total" id="total" disabled readonly> <br><br>
    	<button name="btn-guaranies" id="btn-guaranies">Guaranies</button>
    	<button name="btn-porcentaje" id="btn-porcentaje">Porcentaje</button>
    	<button name="btn-cancelar" id="btn-cancelar">Cancelar</button>
    
    	
    	<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
    	<script type="text/javascript">
    		$(function(){
    
    			$('#btn-guaranies').click(function(){
    				$(this).prop('disabled',false);
    				$('#btn-porcentaje').prop('disabled',true);
    				limpiarCampos();
    				habilitarDescuento(true);
    			});
    
    			$('#btn-porcentaje').click(function(){
    				$(this).prop('disabled',false);
    				$('#btn-guaranies').prop('disabled',true);
    				limpiarCampos();
    				habilitarDescuento(true);
    			});
    
    			$('#btn-cancelar').click(function(){
    				$('#btn-guaranies').prop('disabled',false);
    				$('#btn-porcentaje').prop('disabled',false);
    				limpiarCampos();
    				habilitarDescuento(false);
    			});
    
    			// A medida va escribiendo en inp_descuento va evaluando que hacer.
    			$('#inp_descuento').keyup(function(){
    
    				if($('#subtotal').val().length <= 0){
    					alert("No se ha ingresado ninguna venta...");
    					$(this).val('');
    					return;
    				}
    
    				// Si el boton de guaranies esta seleccionado hace esto
    				if($('#btn-guaranies').prop('disabled')==false && $('#btn-porcentaje').prop('disabled')==true){
    					var desc=$('#inp_descuento').val();
    					var sbt=$('#subtotal').val();
    
    					// Aquí si solo comparaba las variables me daba una info incorrecta,
    					// solo tomaba en cuenta el primer caracter para comparar
    					if(parseFloat(desc) > parseFloat(sbt)){
    						console.log(sbt);
    						alert("El descuento debe ser menor al total");
    						limpiarCampos();
    						return;
    					}
    
    					$('#descuento').val($('#inp_descuento').val());
    					$('#total').val(sbt - desc);
    
    				}
    
    				// Si el boton de porcentaje esta seleccionado hace esto
    				if($('#btn-porcentaje').prop('disabled')==false && $('#btn-guaranies').prop('disabled')==true){
    
    					if($('#inp_descuento').val() > 100){
    						alert("El % de descuento debe ser menor a 100");
    						limpiarCampos();
    						return;
    					}
    					var sbt = $('#subtotal').val();
    					var desc= sbt * ($('#inp_descuento').val()/100);
    					//Lo del .toFixed(2) lo utilize para que solo te redondee en 2 decimales
    					//lo puedes sacar.
    					$('#descuento').val(desc.toFixed(2));
    					var total= sbt - desc;
    					$('#total').val(total.toFixed(2));
    
    				}/*btn-porcentaje*/
    
    			});/*inp_descuento*/
    
    			function limpiarCampos(){
    				$('#inp_descuento').val('');
    				$('#descuento').val('');
    				$('#total').val('');
    			}
    
    			function habilitarDescuento(valor){
    				$('#inp_descuento').prop('disabled',!valor);
    				$('#descuento').prop('disabled',!valor);
    				$('#total').prop('disabled',!valor);				
    			}
    
    		});
    	</script>
    	
    </body>
    </html>
    
    
    
      Votes: 1 - Link answer
     
  • Date: 18-02-2019 06:54:44 Genio!! Llego a casa y lo pruebo!! Muchas gracias!!   Votes: 0 - Link answer
     
  • Date: 18-02-2019 12:40:19 Raúl, una vez mas salvaste el día amigo!!!

    if($('#btn-porcentaje').prop('disabled')==false && $('#btn-guaranies').prop('disabled')==true){}


    este era exactamente el código q estaba necesitando!! gracias en serio amigo!!
      Votes: 0 - Link answer
     
  •  
      1  
     
    Date: 18-02-2019 13:37:32 Ok, que bueno. de nada.
    Estamos en contacto.
    Saludos...
      Votes: 1 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In
 
frjcbbae garagebible.com