Código PHP:
if(!session_is_registered('SALARIO_MIN')){
mysql_select_db($database_cx, $cx);
//consulta el salario minimo mensual vijente
$query = "SELECT valor
FROM configuracion
WHERE estado = 1 AND
descripcion = 'SALARIO_MIN_MENSUAL'
ORDER BY fecha_registro DESC
LIMIT 1";
$temp = mysql_query($query, $cx) or die("Error ".__FILE__." - ".__LINE__."<br /><br />".mysql_error());
$result = mysql_fetch_assoc($temp);
session_register('SALARIO_MIN', 'CV', 'CF', 'SALARIO_MIN_DIA');
$_SESSION['SALARIO_MIN'] = $result['valor'];
$_SESSION['SALARIO_MIN_DIA'] = number_format(($_SESSION['SALARIO_MIN'] / 30), 2, '.', '');
//consulta el porcentaje de CV
$query = "SELECT valor
FROM configuracion
WHERE estado = 1 AND
descripcion = 'PORCENTAJE_CV'
ORDER BY fecha_registro DESC
LIMIT 1";
$temp = mysql_query($query, $cx) or die("Error ".__FILE__." - ".__LINE__."<br /><br />".mysql_error());
$result = mysql_fetch_assoc($temp);
$_SESSION['CV'] = number_format(($_SESSION['SALARIO_MIN'] * $result['valor']), 2, '.', '');
//consulta el porcentaje de CF
$query = "SELECT valor
FROM configuracion
WHERE estado = 1 AND
descripcion = 'PORCENTAJE_CF'
ORDER BY fecha_registro DESC
LIMIT 1";
$temp = mysql_query($query, $cx) or die("Error ".__FILE__." - ".__LINE__."<br /><br />".mysql_error());
$result = mysql_fetch_assoc($temp);
$_SESSION['CF'] = number_format(($_SESSION['SALARIO_MIN'] * $result['valor']), 2, '.', '');
//consulta el cargo fijo de la ciudad (m)
$query = "SELECT valor
FROM configuracion
WHERE estado = 1 AND
descripcion = 'CARGO_FIJO_CIUDAD'
ORDER BY fecha_registro DESC
LIMIT 1";
$temp = mysql_query($query, $cx) or die("Error ".__FILE__." - ".__LINE__."<br /><br />".mysql_error());
$result = mysql_fetch_assoc($temp);
$_SESSION['M'] = $result['valor'];
}
// Funcion verifica que no existan dos cargos fijos en la generacion del oficio
function verificacion_cf($formulario){
$objResponse = new xajaxResponse();
$array_tipos = array('VIVIENDA', 'VIVIENDA_VIS', 'COMERCIO', 'INDUSTRIA', 'INSTITUCIONAL');
for($cont_p = 1; $cont_p <= 3; $cont_p++){
for($cont = 0; $cont < count($array_tipos); $cont++){
$name_campo = strtolower($array_tipos[$cont])."_".$cont_p;
if($formulario[$name_campo] != '' && $formulario[$name_campo] != '0,00'){
$totalCf++;
}
}
}
if($totalCf > 1){
$objResponse->addAlert('No debe existir mas de un cargo fijo al tiempo');
}else{
$objResponse->addScript("document.form1.submit();");
}
return $objResponse;
}
// Funcion que recive le numero de vecinos que se van a digitar.
function liquidacion($formulario){
global $database_cx, $cx;
$objResponse = new xajaxResponse();
mysql_select_db($database_cx, $cx);
$array_tipos = array('VIVIENDA', 'VIVIENDA_VIS', 'COMERCIO', 'INDUSTRIA', 'INSTITUCIONAL');
for($cont_p = 1; $cont_p <= 3; $cont_p++){
for($cont = 0; $cont < count($array_tipos); $cont++){
$name_campo = strtolower($array_tipos[$cont])."_cant_".$cont_p;
$name = strtolower($array_tipos[$cont])."_".$cont_p;
//descuenta el reforzamiento estructural (si aplica)
$metros = $formulario[$name_campo];
if($metros <= 0){
$objResponse->addAssign($name, "value", "");
$objResponse->addAssign(strtolower($array_tipos[$cont])."_total_".$cont_p, "value", "");
$objResponse->addAssign("d_".strtolower($array_tipos[$cont])."_total_".$cont_p, "innerHTML", "");
continue;
}
switch($array_tipos[$cont]){
case 'VIVIENDA':
//consulta el factor i
$query = sprintf("SELECT valor
FROM configuracion
WHERE estado = 1 AND
descripcion = 'I_VIVIENDA_%s'
ORDER BY fecha_registro DESC
LIMIT 1", $formulario['estrato_'.$cont_p]);
$temp = mysql_query($query, $cx) or die("Error ".__FILE__." - ".__LINE__."<br /><br />".mysql_error());
$result = mysql_fetch_assoc($temp);
if(mysql_num_rows($temp) == 1){
$total = $_SESSION['CF'] * $result['valor'] * $_SESSION['M'];
}else{
$total = 0;
}
//descuenta la VIS (si aplica)
if($formulario['vivienda_VISD_'.$cont_p] == 1){
$descuento = 1;
}
$total = number_format($total, 2, '.', '');
$tipo_j = 'CONSTRUCCION';
break;
case 'VIVIENDA_VIS':
$total = ($_SESSION['SALARIO_MIN_DIA'] * 5) * $metros;
$total = number_format($total, 2, '.', '');
break;
case 'INSTITUCIONAL':
case 'COMERCIO' :
case 'INDUSTRIA' :
//consulta el factor i
$query = sprintf("SELECT valor
FROM configuracion
WHERE estado = 1 AND
descripcion = 'OTRO_USOS_%s' AND
rango1 <= %s AND
rango2 >= %s
ORDER BY fecha_registro DESC
LIMIT 1", $array_tipos[$cont], $metros, $metros);
$temp = mysql_query($query, $cx) or die("Error ".__FILE__." - ".__LINE__."<br /><br />".mysql_error());
$result = mysql_fetch_assoc($temp);
if(mysql_num_rows($temp) == 1){
$total = $_SESSION['CF'] * $result['valor'] * $_SESSION['M'];
}else{
$total = 0;
}
$total = number_format($total, 2, '.', '');
$tipo_j = 'CONSTRUCCION';
//descuenta la DOT (si aplica)
if($formulario['institucional_dot_'.$cont_p] == 1){
$descuento = 1;
}
break;
}//fin del switch
if($cont_p == 3){
$tipo_j = 'URBANISMO_PARCELACION';
}
if($formulario[strtolower($array_tipos[$cont]).'_ref_est_1'] == 1){
$descuento_ref = 1;
}
//verifica si el cargo fijo lo setearon en CERO
if($formulario['cero_'.$name] == 1){
$total = 0;
}
//asigna el cargo fijo
$objResponse->addAssign($name, "value", number_format(floor($total), 2, ',', '.'));
$cargo_fijo = $total;
$cargo_fijo_total += $cargo_fijo;
$I = $result['valor'];
//consulta el factor J
if($metros > 0){
if($tipo_j == 'URBANISMO_PARCELACION'){
$query = sprintf("SELECT *
FROM configuracion
WHERE estado = 1 AND
descripcion = 'J_%s'
ORDER BY fecha_registro DESC
LIMIT 1", $tipo_j);
}else{
$query = sprintf("SELECT *
FROM configuracion
WHERE estado = 1 AND
descripcion = 'J_%s' AND
rango1 <= %s AND
rango2 > %s
ORDER BY fecha_registro DESC
LIMIT 1", $tipo_j, $metros, $metros);
}
$temp = mysql_query($query, $cx) or die("Error ".__FILE__." - ".__LINE__."<br /><br />".mysql_error());
$result = mysql_fetch_assoc($temp);
if(mysql_num_rows($temp) == 1){
if($result['comentario'] == NULL || $result['comentario'] == 'NULL'){
$J = $result['valor'];
}else{
$J = $result['valor'] / ($result['comentario'] + ($result['valor2'] / $metros));
}
}
}
$cargo_variable = number_format(($_SESSION['CV'] * $I * $_SESSION['M'] * $J), 2, '.', '');
$cargo_variable_total += $cargo_variable;
//carga el total en el campo oculto
$rvalor = $total + $cargo_variable;
if(isset($descuento)){
$rvalor = $rvalor / 2;
unset($descuento);
}
if(isset($descuento_ref)){
$rvalor = $rvalor * 0.3;
unset($descuento_ref);
}
$totales_ocultos += $rvalor;
$objResponse->addAssign(strtolower($array_tipos[$cont])."_total_".$cont_p, "value", $rvalor);
$objResponse->addAssign("d_".strtolower($array_tipos[$cont])."_total_".$cont_p, "innerHTML", $rvalor);