Foros del Web » Programando para Internet » Javascript »

[Ayuda] Necesito ayuda para realizar lo siguiente!!

Estas en el tema de [Ayuda] Necesito ayuda para realizar lo siguiente!! en el foro de Javascript en Foros del Web. Hola a todos! Estoy haciendo una aplicación web para un proveedor y se me está complicando la cosa con uno de los módulos, el de ...
  #1 (permalink)  
Antiguo 04/12/2008, 14:58
 
Fecha de Ingreso: julio-2007
Mensajes: 24
Antigüedad: 16 años, 9 meses
Puntos: 0
[Ayuda] Necesito ayuda para realizar lo siguiente!!

Hola a todos!

Estoy haciendo una aplicación web para un proveedor y se me está complicando la cosa con uno de los módulos, el de "pedidos", que debe realizar ciertas operaciones de forma dinámica sobre un formulario que a continuación les comento:

Basicamente tengo los siguientes campos que deben interactuar entre sí:

Cantidad | Precio | Dcto 1 | Dcto 2 | Dcto 3 | IVA 10.5% | IVA 21% | Precio Final

Donde "Dcto 1, Dcto 2 y Dcto 3" son tres alternativas de descuento en %

Todos los calculos se realizan en base al "Precio" que queda fijado en un paso anterior en donde el usuario ingresa el Código de Producto. Hasta ahi todo bien.

Acá viene lo que se me complica a mi, voy a usar un ejemplo para darme a entender

Supongamos que tengo un precio de $50, entonces el usuario en cantidad ingresa un 3, automáticamente el precio FINAL debe cambiar a $150. Seguidamente ingresa la alternativa de descuento 1 (Dcto 1), supongamos 3%, automáticamente el precio FINAL debe quedar en $145.50 (cabe aclarar que LAS TRES alternativas de descuento se van calculando SIEMPRE sobre el valor del precio FINAL). Si ahora pone un 4% en Dcto2 automáticamente el precio FINAL debe quedar en $139.68. Luego supongamos elige un IVA del 10.5%, automáticamente el precio FINAL debe quedar en $154.35.

El tema mas complicado viene cuando el usuario entra a querer modificar los datos sin respetar un orden, por ejemplo, luego de haber hecho todo lo mencionado anteriormente se le ocurre poner una alternativa de descuento 1 del 5% en vez del 3% y un IVA del 21% o quitarle el IVA. Es ahi cuando me entran a fallar los calculos y el precio me queda mal.

Le di muchas vueltas al asunto, probé de varias formas con JavaScript pero no llego a solucionarlo y lo necesito en breve!

Quisiera agregar el archivo en cuestión pero el sistema del foro no me lo permite, tampoco poner el código porque es muy largo asi que a quién desee darme una mano y pegarle una mirada al código me lo pide por Mensaje Privado

Muchisimas gracias de antemano!
  #2 (permalink)  
Antiguo 04/12/2008, 19:43
Avatar de marcopoloaz06  
Fecha de Ingreso: julio-2007
Ubicación: México
Mensajes: 457
Antigüedad: 16 años, 9 meses
Puntos: 11
Respuesta: [Ayuda] Necesito ayuda para realizar lo siguiente!!

Hola, tendrías que tener un buen control y no me se explicar muy bien así que te dejo un ejemplo de como podrías implementar lo que quieres:
Código javascript:
Ver original
  1. var dctoArray = [ 0,0,0 ];
  2. var precioFinal = 10;
  3. var precio = 10;
  4. function dcto( i,n ){
  5.     if(dctoArray[i] != 0){
  6.         precioFinal += dctoArray[i];
  7.     }
  8.     return precioFinal -= dctoArray[i] = ( precio * n ) / 100;
  9. };
  10.  
  11. alert( precioFinal );   // precio final de 10
  12. dcto( 0, 50 );   // primer descuesto de 50%
  13. alert( precioFinal );   // 5
  14. dcto( 1, 20 );  // segundo descuento de 20%
  15. alert( precioFinal );   // 3
  16. dcto( 2, 20 );  // tercer descuento de 20%
  17. alert( precioFinal );   // 1
  18. dcto( 0, 0 );   // remplazamos primer descuento a 0%
  19. dcto( 1, 0 );   // remplazamos segundo descuento a 0%
  20. dcto( 2, 0 );   // remplazamos tercer descuento a 0%
  21. alert( precioFinal );   // precio final de 10

así es como podrías hacer las demás funciones, siempre con 2 precios porque uno es el precio que muestras y otro es el verdadero precio sobre el que sacarías los descuentos y el IVA, etc.

nos vemos
:]
__________________
Aerolíneas Alicia :D

Última edición por marcopoloaz06; 04/12/2008 a las 19:59 Razón: funcion mejorada
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 16:46.