CALCULAR RESULTADO DE VARIABLE DENTRO DE WHILE
Publicado por Andry (3 intervenciones) el 18/05/2018 14:46:17
Hola a todos...
Tengo un sistema de nominas, pero debe configurar una escala salarial, para la cual tengo un codigo que registra automaticamente 22 columnas en la base de datos que representan a los 22 niveles de un grado laboral, en la cual hay un campo llamado monto...
El valor de este campo sera:
primer registro: $diferencia=$salario*12/100 ; $monto=$salario+$diferencia;
segundo registro en adelante: $monto2=$monto*12/100; $montonuevo=$monto2+$monto;
para el primer registro me aseguro que el campo grado sea 1 y paso(nivel) sea 1
![form2](/usr/327000/327357/5afec9fd6912f-form2.PNG)
si no ya serian a partir del segundo registro, es en esta sentencia donde busco el ultimo registro insertado y trabajo en base a este ultimo monto.
El problema es que los dos primeros montos coinciden bien pero a partir del 3 el monto que deberia coincidir le faltan numeros para llegar....
![FORM1](/usr/327000/327357/5afec9e975ff7-FORM1.PNG)
Quisiera poder hacer esta acumulación sin tanto rollo... Tienen una mejor idea?
;
Tengo un sistema de nominas, pero debe configurar una escala salarial, para la cual tengo un codigo que registra automaticamente 22 columnas en la base de datos que representan a los 22 niveles de un grado laboral, en la cual hay un campo llamado monto...
El valor de este campo sera:
primer registro: $diferencia=$salario*12/100 ; $monto=$salario+$diferencia;
segundo registro en adelante: $monto2=$monto*12/100; $montonuevo=$monto2+$monto;
para el primer registro me aseguro que el campo grado sea 1 y paso(nivel) sea 1
si no ya serian a partir del segundo registro, es en esta sentencia donde busco el ultimo registro insertado y trabajo en base a este ultimo monto.
El problema es que los dos primeros montos coinciden bien pero a partir del 3 el monto que deberia coincidir le faltan numeros para llegar....
Quisiera poder hacer esta acumulación sin tanto rollo... Tienen una mejor idea?
;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
$net=0;
$sumu=0;
$sald2=0;
$grados=0;
if($grado=="1"){
$porcentaje=mysql_query("SELECT * FROM porcentajeescala order by id_porcentaje desc limit 0,1");
$cuaqqoo11=mysql_fetch_array($porcentaje); // lo mismo que 12%;
$porbase=$cuaqqoo11['porciento']; // 12%
while ($pasol < 22){ // 22 columnas en el registro
$net=$saldo*$porbase/100;
$sumnet=$net+$saldo;
$quick=round($sumnet,2);
$pasol++;
$grados=$grados + $gradol;
$rsr = mysql_query("SELECT * FROM escala order by id_escala desc limit 0,1");
$rowna = mysql_num_rows($rsr);
//busca si hay una escala anterior.
if ($rowna<=0) {
$sqlcc=mysql_query("INSERT INTO escala (grado, paso, antiguedad, monto, fecha_escala, estado_escala) VALUES ('$direccion','$pasol','---','$quick','$fecha','$stat')");
}
else{ // sino la hay.
$recr=mysql_fetch_array($rsr);
$porcientor=$recr['monto'];
$pasolr=$recr['paso'];
$gradolr=$recr['grado'];
$tat=$porcientor+$saldo;
$diferencia0=$tat*$porbase/100;
$salcondiferencia0=$diferencia0+$saldo;
$tati=round($salcondiferencia0,2);
$sqlcc=mysql_query("INSERT INTO escala (grado, paso, antiguedad, monto, fecha_escala, estado_escala) VALUES ('$direccion','$pasol','---','$tati','$fecha','$stat')");
}
}
$sqlmm=mysql_query("UPDATE escala SET antiguedad='Basico', monto='$saldo' where antiguedad='$ant'");
// edita la primera fila insertada con el porcentaje en el formulario...
echo ' <script>
alert("Escala configurada con exito");
document.location.href="escala.php";
</script>';
}
// cuando el grado es mayor que 1
else{
$caeyrqoo11=mysql_query("SELECT * FROM porcentajeescala order by id_porcentaje desc limit 0,1");
$cuaqqoo11=mysql_fetch_array($caeyrqoo11);
$porbase=$cuaqqoo11['porciento']; // el porcentaje 12%
while ($pasol < 22){
$su=$saldo+$co;
$net=$su*$porbase/100;
$sumnet=$net+$su;
$sald2=$sald2 + $net;
$quick=round($sald2,2);
$sald2++;
$net++;
$sumnet++;
$pasol++;
$grados=$grados + $gradol;
$sqlcc=mysql_query("INSERT INTO escala (grado, paso, antiguedad, monto, fecha_escala, estado_escala) VALUES ('$direccion','$pasol','---','$quick','$fecha','$stat')");
}
$sqlmm=mysql_query("UPDATE escala SET antiguedad='Basico', monto='$co' where antiguedad='$ant'");
//edito la primera fila para que quede el salario quede en basico sin diferencia.
echo ' <script>
alert("Escala configurada con exito");
document.location.href="escala.php";
</script>';
}
Valora esta pregunta
![Me gusta: Está pregunta es útil y esta clara Me gusta: Está pregunta es útil y esta clara](/img/img.png?11.51)
![NO me gusta: Está pregunta no esta clara o no es útil No me gusta: Está pregunta no esta clara o no es útil](/img/img.png?11.51)
0