Foros del Web » Programando para Internet » Javascript »

Problemas al hacer operaciones con valores heredados

Estas en el tema de Problemas al hacer operaciones con valores heredados en el foro de Javascript en Foros del Web. Hola, necesitaria la ayuda de alguno de vosotros para ayudarme a avanzar en la adaptacion que estoy haciendo de un programa de licencia libre de ...
  #1 (permalink)  
Antiguo 23/01/2013, 06:30
 
Fecha de Ingreso: octubre-2012
Mensajes: 3
Antigüedad: 12 años
Puntos: 0
Pregunta Problemas al hacer operaciones con valores heredados

Hola, necesitaria la ayuda de alguno de vosotros para ayudarme a avanzar en la adaptacion que estoy haciendo de un programa de licencia libre de facturacion a las peculiaridades de mi negocio. El programa del que parto es el conocido programa de facturacion codeka 1.0. En el caso de mi negocio en los albaranes que debo ingresar y en las facturas tengo que pagar no solo un iva sino 3 distintos y ademas pago otro impuesto a minoristas que se llama Recargo de Equivalencia y de este tambien hay 3 tipos, mas un 4º que sería sin iva ni R.Eq. Como ademas soy novato he ido dando un poco de palos de ciego pero con mucha voluntad e interes por aprender.
De momento cuando introduzco los productos nuevos ya les indico el tipo de iva y Req que tendrán para así agilizar el proceso de introduccion de lineas aunque tambien hay un combo para cambiar los valores por si acaso. Poniendo la cantidad me hereda el precio y los tipos de iva y req y me calcula el importe de esa linea, lo que tendré que añadir de cada tipo de iva y lo que tendré que añadir de cada tipo de req. las lineas las hago visibles en el albaran con un Frame y me recalcula todos los totales de tipos de ivas y reqs, los totales parciales de ivas y reqs, la suma del importe y el total. Todo eso me lo hace bien. El problema lo tengo al intentar de borrar lineas. Me borra bien las lineas, el problema lo tengo con el recalculo de los totales pues hereda datos confusos. A ciencia cierta que se puede hacer todo de muchas maneras pero no he encontrado la manera correcta y por eso pido vuestra ayuda. Ahi va un poco de codigo y quedo a la espera.. Gracias.

este seria el framelineas.php

Código:
function eliminar_linea(codalbarantmp,numlinea,importe,lineaivaprimero,lineaivasegundo,lineaivatercero,lineareqprimero,lineareqsegundo,lineareqtercero)
//,parcialivaprimero,parcialivasegundo,parcialivatercero,parcialreqprimero,parcialreqsegundo,parcialreqtercero
{
	if (confirm(" Desea eliminar esta linea ? "))	{
		
		            parent.document.getElementById("baseimponible").value=parseFloat(parent.document.getElementById("baseimponible").value) - parseFloat(importe);
					
					parent.document.getElementById("parcialivaprimero").value=parseFloat(parent.document.getElementById("parcialivaprimero").value) - parseFloat(lineaivaprimero);
						
					parent.document.getElementById("parcialreqprimero").value=parseFloat(parent.document.getElementById("parcialreqprimero").value) - parseFloat(lineareqprimero);
					
					parent.document.getElementById("parcialivasegundo").value=parseFloat(parent.document.getElementById("parcialivasegundo").value) - parseFloat(lineaivasegundo);
					
					parent.document.getElementById("parcialreqsegundo").value=parseFloat(parent.document.getElementById("parcialreqsegundo").value) - parseFloat(lineareqsegundo);
						
					parent.document.getElementById("parcialivatercero").value=parseFloat(parent.document.getElementById("parcialivatercero").value) - parseFloat(lineaivatercero);
										
					parent.document.getElementById("parcialreqtercero").value=parseFloat(parent.document.getElementById("parcialreqtercero").value) - parseFloat(lineareqtercero);
					
					
					
					parent.document.getElementById("baseimpuestosreq").value=parseFloat(parent.document.getElementById("parcialreqtercero").value) + parseFloat(parent.document.getElementById("parcialreqsegundo").value) + parseFloat(parent.document.getElementById("parcialreqprimero").value);
					
					parent.document.getElementById("baseimpuestosiva").value=parseFloat(parent.document.getElementById("parcialivatercero").value) + parseFloat(parent.document.getElementById("parcialivasegundo").value) + parseFloat(parent.document.getElementById("parcialivaprimero").value);
					var a1=parseFloat(parent.document.getElementById("baseimponible").value);
					var a2=Math.round(a1*1000)/1000 ;	
					parent.document.getElementById("baseimponible").value=parseFloat(a2);
					
					var b1=parseFloat(parent.document.getElementById("baseimpuestosiva").value);
					var b2=Math.round(b1*1000)/1000 ;
					parent.document.getElementById("baseimpuestosiva").value=parseFloat(b2);
					
					var c1=parseFloat(parent.document.getElementById("baseimpuestosreq").value);
					var c2=Math.round(c1*1000)/1000 ;
					parent.document.getElementById("baseimpuestosreq").value=parseFloat(c2);
					
					var r1=parseFloat(a2 + b2);
					var r2=parseFloat(c2 + r1);
					var r3=Math.round(r2*1000)/1000 ;		
					parent.document.getElementById("preciototal").value=parseFloat(r3);
		
	
		
		
		document.getElementById("frame_datos").src="eliminar_linea.php?codalbarantmp="+codalbarantmp+"&numlinea=" + numlinea;
}
else {
	parent.reload();}}
</script>
en la funcion hago los mismos calculos para el req pero los he quitado para que me quepa el mensaje.
en la url meto mas valores de los necesario para ver lo que esta pasando
y en la pagina padre(nuevo albaran) la funcion para recalcular ivas y reqs

Código:
var precio=document.getElementById("precio").value;
				var cantidad=document.getElementById("cantidad").value;
				var tipoiva=document.getElementById("tipoiva").value;
				tipoiva=tipoiva/100;
				total=precio*cantidad;
				tipoiva=total*tipoiva;
				var conseguir=parseFloat(tipoiva);
				var result=Math.round(conseguir*100)/100 ;				
				document.getElementById("parcialiva").value=parseFloat(result);
				
				
				
				var parcialiva=document.getElementById("tipoiva").value;
				switch (parcialiva) {
                case "4.00":
                document.getElementById("lineaivaprimero").value=result;
				document.getElementById("lineaivasegundo").value=0;
			    document.getElementById("lineaivatercero").value=0;
				document.getElementById("ivaprimero").value=result;
				document.getElementById("ivasegundo").value=0;
			    document.getElementById("ivatercero").value=0;
				break;
				case "10.00":              
				document.getElementById("lineaivasegundo").value=result;
				document.getElementById("lineaivaprimero").value=0;
				document.getElementById("lineaivatercero").value=0;
				document.getElementById("ivasegundo").value=result;
				document.getElementById("ivaprimero").value=0;
				document.getElementById("ivatercero").value=0;
				break;
				case "21.00":
				document.getElementById("lineaivatercero").value=result;
				document.getElementById("lineaivaprimero").value=0;
				document.getElementById("lineaivasegundo").value=0;
				document.getElementById("ivatercero").value=result;
				document.getElementById("ivaprimero").value=0;
				document.getElementById("ivasegundo").value=0;
				break;
				case "0.00":
				document.getElementById("lineaivaprimero").value=0;
			    document.getElementById("lineaivasegundo").value=0;
			    document.getElementById("lineaivatercero").value=0;
				document.getElementById("ivaprimero").value=0;
			    document.getElementById("ivasegundo").value=0;
			    document.getElementById("ivatercero").value=0;
				break;
				default:
                window.alert("La has vuelto a cagar");}
			}
LO mismo que antes, tambien hago lo mismo con los tipos de req pero no los he copiado para que quepa el mensaje.
Para mi es un proyecto enorme y muy importante asi que ansío vuestra ayuda.

Etiquetas: funcion, operaciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:34.