PHP - CALCULAR RESULTADO DE VARIABLE DENTRO DE WHILE

 
Vista:
Imágen de perfil de Andry
Val: 14
Ha aumentado su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

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


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

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 claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder