Jump to content

Calculadora de Hipotecas en CMS


Oscarred

Recommended Posts

Hola , tengo un simulador de hipotecas en mi pagina , cuando lo pruebo en el editor ( en local ) me funciona a la perfeccion , luego copio el codigo lo pego en un CMS y en mi pagina no funciona , no me hace el calculo de las cuotas.

 

Mi pregunta es , ¿desde CMS se puede tratar esta informacion y que haga el calculo o desde CMS simplemente no funcionara?

 

Tambien lo tengo en un modulo en la culumna derecha, pero tampoco hace los calculos

 

el enlace de mi pagina el siguiente:

 

http://fincas.16mb.c...ms.php?id_cms=9

 

si lo probais en vuestro editor vereis que funciona , sin embargo en la pagina no.

 

¿alguna idea?

 

el codigo es el siguiente:

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<body>
<script type="text/javascript">// <![CDATA[
function verificar_numero(numero,formulario)
{
 if (numero.value=='')
 {
 }
 var noes=0;
 var str = numero.value;
 for (var i = 0; i < str.length; i++)	   
 { var ch = str.substring(i, i + 1)
	  if ((ch < "0" || "9" < ch) && ch != ',' && ch != '.')
  {  numero.value=''
		 numero.focus()
		 numero.select()
  noes=1
  }			  
 }  
 if (noes==1)
 { alert('El valor introducido "' + str + '" no es un número.')
   return 1
 } else {
  numero.value = str.replace('.', ',');
 }
 return 0;
}
function hay_cambio() {
 if ( document.forms[0].medida_anterior.value != 12.0)
  { return 1 }

 if ( document.forms[0].tipoVF_anterior.value != 1)
  { return 1 }

 if ( document.forms[0].importe.value != document.forms[0].importe_anterior.value)
 { return 1 }
 if ( document.forms[0].plazo.value != document.forms[0].plazo_anterior.value)
 { return 1 }
 if ( document.forms[0].tipo.value != document.forms[0].tipo_anterior.value)
 { return 1 }
 if ( document.forms[0].cuota.value != document.forms[0].cuota_anterior.value)
 { return 1 }
 return 0
}
function almacena() {
 document.forms[0].importe_anterior.value = document.forms[0].importe.value
 document.forms[0].plazo_anterior.value = document.forms[0].plazo.value
 document.forms[0].tipo_anterior.value = document.forms[0].tipo.value
 document.forms[0].cuota_anterior.value = document.forms[0].cuota.value
 document.forms[0].medida_anterior.value = 12.0
 document.forms[0].tipoVF_anterior.value = 0
}
function calculacuota() {
 // CALCULA LA CUOTA A PAGAR CONOCIENDO:
 if ( hay_cambio() == 0 ) { return }
 imp = parseInt(desformatear_numero(document.forms[0].importe.value))
 plazo_meses = parseInt(desformatear_numero(document.forms[0].plazo.value))
 tipo_mensual = parseFloat(desformatear_numero(document.forms[0].tipo.value))

 medida = 12.0

 if ( isNaN(imp) || imp == 0 )
 { alert("Debe rellenar el campo 'Importe a financiar'")
   return }
 if ( isNaN(plazo_meses) || plazo_meses == 0 )
 { alert("Debe rellenar el campo 'Plazo de amortización'")
   return }
 if ( isNaN(tipo_mensual) || tipo_mensual == 0.0 )
 { alert("Debe rellenar el campo 'Tipo de interés'")
   return }
 if ( tipo_mensual > 20.0 )
 { alert("El Tipo de interés es superior al 20% y no es aceptable para un préstamo hipotecario.")
   return }

 plazo_meses = plazo_meses * medida
 // EL TIPO DE INTERES VIENE EN ANIOS Y LOS PASAMOS A TIPO INTERES MENSUAL
 tipo_mensual = tipo_mensual / 1200.0
 y  = 1.0 + tipo_mensual
 cuota = imp * tipo_mensual * Math.pow(y,plazo_meses) / ( Math.pow(y,plazo_meses) - 1.0 )
 document.forms[0].cuota.value = formatear_numero((Math.round(cuota *100.00) / 100.00).toFixed(2))
 almacena()
  tipo_mensual_max = 4.00 / 1200.0;
  yMax= 1.0 + tipo_mensual_max;
  cuotamax = imp * tipo_mensual_max * Math.pow(yMax,plazo_meses) / ( Math.pow(yMax,plazo_meses) - 1.0 );
  document.forms[0].cuotaMax.value = formatear_numero(Math.round(cuotamax *100.00) / 100.00);
  tipo_mensual_min = 6.00 / 1200.0;
  yMin= 1.0 + tipo_mensual_min;
  cuotamin = imp * tipo_mensual_min * Math.pow(yMin,plazo_meses) / ( Math.pow(yMin,plazo_meses) - 1.0 );
  document.forms[0].cuotaMin.value = formatear_numero(Math.round(cuotamin *100.00) / 100.00);
}
function calculaimporte() {
 // CALCULA EL IMPORTE DEL PRESTAMO A SOLICITAR CONOCIENDO:

 if ( hay_cambio() == 0 ) { return }
 plazo_meses = parseFloat(desformatear_numero(document.forms[0].plazo.value))
 tipo_mensual = parseFloat(desformatear_numero(document.forms[0].tipo.value))
 cuota = parseFloat(desformatear_numero(document.forms[0].cuota.value))
 medida = 12.0

 if ( isNaN(cuota) || cuota == 0 )
 { alert("Debe rellenar el campo 'Cuota mensual a pagar'")
   return }
 if ( isNaN(plazo_meses) || plazo_meses == 0 )
 { alert("Debe rellenar el campo 'Plazo de amortización'")
   return }
 if ( isNaN(tipo_mensual) || tipo_mensual == 0.0 )
 { alert("Debe rellenar el campo 'Tipo de interés'")
   return }
 if ( tipo_mensual > 20.0 )
 { alert("El Tipo de interés es superior al 20% y no es aceptable para un préstamo hipotecario.")
   return }

 plazo_meses = plazo_meses * medida
 // EL TIPO DE INTERES VIENE EN ANIOS Y LOS PASAMOS A TIPO INTERES MENSUAL
 tipo_mensual = tipo_mensual / 1200.0
 y  = 1.0 + tipo_mensual
 imp = cuota / ( tipo_mensual * Math.pow(y,plazo_meses) / ( Math.pow(y,plazo_meses) - 1.0 ) )
 document.forms[0].importe.value = formatear_numero(Math.round(imp *100.00) / 100.00)
 almacena()
  tipo_mensual_max = 4.00 / 1200.0;
  yMax= 1.0 + tipo_mensual_max;
  cuotamax = imp * tipo_mensual_max * Math.pow(yMax,plazo_meses) / ( Math.pow(yMax,plazo_meses) - 1.0 );
  document.forms[0].cuotaMax.value = formatear_numero(Math.round(cuotamax *100.00) / 100.00);
  tipo_mensual_min = 6.00 / 1200.0;
  yMin= 1.0 + tipo_mensual_min;
  cuotamin = imp * tipo_mensual_min * Math.pow(yMin,plazo_meses) / ( Math.pow(yMin,plazo_meses) - 1.0 );
  document.forms[0].cuotaMin.value = formatear_numero(Math.round(cuotamin *100.00) / 100.00);
}
function calculaplazo() {
 // CALCULA EL NUMERO DE PLAZOS NECESARIOS CONOCIENDO:

 if ( hay_cambio() == 0 ) { return }

 imp = parseFloat(desformatear_numero(document.forms[0].importe.value))
 cuota = parseFloat(desformatear_numero(document.forms[0].cuota.value))

 tipo_mensual = parseFloat(desformatear_numero(document.forms[0].tipo.value))
 if ( isNaN(imp) || imp == 0 )
 { alert("Debe rellenar el campo 'Importe a financiar'")
   return }
 if ( isNaN(tipo_mensual) || tipo_mensual == 0.0 )
 { alert("Debe rellenar el campo 'Tipo de interés'")
   return }
 if ( isNaN(cuota) || cuota == 0 )
 { alert("Debe rellenar el campo 'Cuota mensual a pagar'")
   return }
 if ( tipo_mensual > 20.0 )
 { alert("El Tipo de interés es superior al 20% y no es aceptable para un préstamo hipotecario.")
   return }

   plazoHipo=-(Math.log(1-((imp*((tipo_mensual/100)/12))/cuota))/Math.log(1+((tipo_mensual/100)/12))) /12; 
 document.forms[0].plazo.value = Math.floor( plazoHipo )
 almacena()
 tipo_mensual_max = 4.00 / 1200.0;
  yMax= 1.0 + tipo_mensual_max;
  cuotamax = imp * tipo_mensual_max * Math.pow(yMax,plazo_meses) / ( Math.pow(yMax,plazo_meses) - 1.0 );
  document.forms[0].cuotaMax.value = formatear_numero(Math.round(cuotamax *100.00) / 100.00);
  tipo_mensual_min = 6.00 / 1200.0;
  yMin= 1.0 + tipo_mensual_min;
  cuotamin = imp * tipo_mensual_min * Math.pow(yMin,plazo_meses) / ( Math.pow(yMin,plazo_meses) - 1.0 );
  document.forms[0].cuotaMin.value = formatear_numero(Math.round(cuotamin *100.00) / 100.00);
}
function calculatipo() {
 // CALCULA EL TIPO DE INTERES CONOCIENDO:

 if ( hay_cambio() == 0 ) { return }
 imp = parseFloat(desformatear_numero(document.forms[0].importe.value))
 cuota = parseInt(desformatear_numero(document.forms[0].cuota.value))
 plazo_meses = parseInt(desformatear_numero(document.forms[0].plazo.value))
 medida = 12.0
 if ( isNaN(imp) || imp == 0 )
 { alert("Debe rellenar el campo 'Importe a financiar'")
   return }
 if ( isNaN(cuota) || cuota == 0 )
 { alert("Debe rellenar el campo 'Cuota mensual a pagar'")
   return }
 if ( isNaN(plazo_meses) || plazo_meses == 0 )
 { alert("Debe rellenar el campo 'Plazo de amortización'")
   return }
 plazo_meses = plazo_meses * medida
 tipo_mensual = 20.0 / 1200.0
 inc_tipo_mensual = 10.0 / 1200.0
 y  = 1.0 + tipo_mensual
 cuota_actual = Math.round(imp * tipo_mensual * Math.pow(y,plazo_meses) / ( Math.pow(y,plazo_meses) - 1.0 ))
 while ( cuota_actual != cuota)
 { y  = 1.0 + tipo_mensual
  cuota_actual = Math.round(imp * tipo_mensual * Math.pow(y,plazo_meses) / ( Math.pow(y,plazo_meses) - 1.0 ))
  if (cuota_actual > cuota)
  { // se aplica un interes muy alto, hay que bajarlo
 tipo_mensual= tipo_mensual - inc_tipo_mensual
  }
  else
  {// se aplica un interes muy bajo, hay que subirlo
 tipo_mensual= tipo_mensual + inc_tipo_mensual
  }
  if ((tipo_mensual * 1200.0) > 20.0)
  { alert("El Tipo de interés a aplicar es superior al interés permitido por un banco (20%)")
 almacena()
 return
  }
  inc_tipo_mensual = inc_tipo_mensual / 2.0
 }
 tipo_mensual = tipo_mensual * 1200.0
 document.forms[0].tipo.value = formatear_numero(Math.round(tipo_mensual * 100.00) / 100.00)
 almacena()
  tipo_mensual_max = 4.00 / 1200.0;
  yMax= 1.0 + tipo_mensual_max;
  cuotamax = imp * tipo_mensual_max * Math.pow(yMax,plazo_meses) / ( Math.pow(yMax,plazo_meses) - 1.0 );
  document.forms[0].cuotaMax.value = formatear_numero(Math.round(cuotamax *100.00) / 100.00);
  tipo_mensual_min = 6.00 / 1200.0;
  yMin= 1.0 + tipo_mensual_min;
  cuotamin = imp * tipo_mensual_min * Math.pow(yMin,plazo_meses) / ( Math.pow(yMin,plazo_meses) - 1.0 );
  document.forms[0].cuotaMin.value = formatear_numero(Math.round(cuotamin *100.00) / 100.00);
}
function nada ()
{
  return
}
function formatear_numero(numero)
{
 var auxNumero='';
 var strNumero= numero + '';
 for (var i = 0; i < strNumero.length; i++)	   
 {
   var ch = strNumero.substring(i, i + 1)
	  if (ch == '.')
	   { 
	    auxNumero = auxNumero + ',';
	   } else {
	    auxNumero = auxNumero + ch;		  
	   }			
 } 
 return auxNumero;
}
function desformatear_numero(numero)
{
 var auxNumero='';
 var strNumero= numero + '';
 for (var i = 0; i < strNumero.length; i++)	   
 {
   var ch = strNumero.substring(i, i + 1)
	  if (ch == ',')
	   { 
	    auxNumero = auxNumero + '.';
	   } else {
	    auxNumero = auxNumero + ch;		  
	   }			
 } 
 return auxNumero;
}
// ]]></script>
<br /><form id="Calculadora" name="Calculadora"><center>
<table style="width: 98%;" align="center">
<tbody>
<tr><th scope="col" align="left" valign="top">
<p style="text-align: center;" align="left"><br /> <input type="hidden" name="importe_anterior" /> <input type="hidden" name="plazo_anterior" /> <input type="hidden" name="tipo_anterior" /> <input type="hidden" name="cuota_anterior" /> <input type="hidden" name="medida_anterior" /> <input type="hidden" name="tipoVF_anterior" /></p>
<p align="left"><strong>Importe a financiar: <span style="margin-left: 80px; margin-top: -35px;"> <input tabindex="1" onblur="verificar_numero(this,Calculadora)" type="text" name="importe" size="10" align="right" /> <input class="button" style="width: 65px;" onclick="calculaimporte( )" tabindex="5" type="button" name="cimporte22" value="Importe" /> </span></strong></p>
<p align="left"><strong>Plazo de amortización: <span style="margin-left: 65px; margin-top: -35px;"> <input tabindex="2" onblur="verificar_numero(this,Calculadora)" type="text" name="plazo" size="10" align="right" /> <input class="button" style="width: 65px;" onclick="calculaplazo( )" tabindex="6" type="button" name="cplazo" value="Plazo" /> <input type="hidden" name="medida" value="1" /> </span></strong><span style="margin-left: 65px; margin-top: -35px;">años</span></p>
<p align="left"><strong>Tipo de interés: <span style="margin-left: 105px; margin-top: -35px;"> <input tabindex="3" onblur="verificar_numero(this,Calculadora)" type="text" name="tipo" size="10" align="right" /> <input class="button" style="width: 65px;" onclick="calculatipo( )" tabindex="7" type="button" name="ctipo" value="Tipo" /> <input type="hidden" name="tipoVF" value="1" /> </span></strong></p>
<p align="left"><strong>Cuota mensual a pagar: </strong><span style="margin-left: 55px; margin-top: -35px;"> <input tabindex="4" onblur="verificar_numero(this,Calculadora)" type="text" name="cuota" size="10" align="right" /> <input class="button" style="width: 65px;" onclick="calculacuota()" tabindex="8" type="button" name="ccuota" value="Cuota" /> </span><br /> <br /> <br /> <input class="button" style="width: 200px; text-align: center; cursor: pointer;" tabindex="9" type="reset" name="reset2" value="BORRAR DATOS" /></p>
<p align="left"> </p>
<p align="left">Cuota mensual con Tipo estimado 4,00%: <input style="font-family: Verdana;" type="text" name="cuotaMax" disabled="disabled" readonly="readonly" size="10" align="right" /></p>
<p align="left">Cuota mensual con Tipo posible 6,00%: <input style="font-family: Verdana;" type="text" name="cuotaMin" disabled="disabled" readonly="readonly" size="10" align="right" /></p>
</th></tr>
</tbody>
</table>
</body>
</html>

 

 

Saludos !!

Link to comment
Share on other sites

Revisando otra vez tu mensaje. (No me he metido a tu tienda)

 

Te recomiendo es meter el "codigo" tienes que en el head , pero en el head de tu tienda, por ejemplo a modo chapuzero editando el header.tpl de tu tienda, y colocando antes de cerrar el </head> (Si metes el codigo javascript en el header.tpl, recuerda meterlo entre {literal} {/literal} por si las moscas.)

 

Y luego el codigo "html", prueba meterlo como lo estabas metiendo, pero solo el codigo html.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...