Está en la página 1de 5

CAP.

4: ESTRUCTURAS CONDICIONALES 121

ESTRUCTURA CONDICIONAL - LENGUAJE DE PROGRAMACIÓN PHP

CASO DESARROLLADO 01
Caso desarrollado 1: Salario de empleados usando condicional simple:
Diseñar una aplicación web con PHP que permita determinar el salario bruto, descuento y salario
neto de un empleado, el cual ingresa el número total de horas trabajadas y selecciona la categoría
del empleado. Esta categoría determina el costo por hora del empleado.
La interfaz gráficainicialeslasiguiente:

Tener en cuenta: Cƒã›¦ÊÙ°ƒ Pƒ¦Ê ÖÊÙ «Êك


El pago por hora trabajada se realizará de acuerdo a la Jefe $ 50.00
categoría seleccionada para el trabajador. Administrativo $ 30.00
Operario $ 15.00
Practicante $ 5.00

• El salario bruto se determina mediante el producto de las horas trabajadas; el pago por hora
según la categoría del empleado.
• El descuento se calcula en base al 15 % del salario bruto.
• El salario neto es la sustracción del descuento sobre el salario bruto.
• La aplicación no deberá mostrar mensajes de error.
• Al presionar el botón Calcular, deberá mostrar los resultados correctos y, a la vez, los
valores ingresados en el formulario deberán mantenerse después de mostrado el resultado de la
aplicación.
• Los valores monetarios en la aplicación deberán mostrarse en el formato adecuado, es decir,
$ 1582.69 en vez de 1582.69.
• La aplicación debe mostrar los resultados tal como se muestra en la siguiente imagen:
CAP. 4: ESTRUCTURAS CONDICIONALES 123

Archivo: salario.php
<?php
error_reporting(0);
$empleado=$_POST['txtEmpleado']; else
$categoria=$_POST['selCategoria']; $selJ="";
$horas=$_POST['txtHoras']; if ($categoria=='Administrativo')
if ($categoria=='Jefe') $selA='SELECTED';
$selJ='SELECTED'; else
$selA="";
if ($categoria=='Operario')
$selO='SELECTED';
else
$selO="";
if ($categoria=='Practicante')
$selP='SELECTED';
else
$selP="";
?>

<form method="POST" name="frmSalario" action="salario.php">


<table border="0" cellspacing="0" cellpadding="0" >
<tr>
<td width="150">Empleado</td>
<td><input type="text" name="txtEmpleado" size="70"
value="<?php echo $empleado; ?>" />
</td>
</tr>
<tr>
<td>Horas</td>
<td><input type="text" name="txtHoras"
</tr> value="<?php echo $horas; ?>" /></td>
<tr>
<td>Categoria</td>
<td>
<select name="selCategoria">
<option value="Jefe" <?php echo $selJ;?> >Jefe</option>
<option value="Administrativo" <?php echo $selA; ?> >
Administrativo </option>
<option value="Operario" <?php echo $selO; ?> >
Operario</option>
<option value="Practicante" <?php echo $selP; ?> >
Practicante</option>
</select>
</td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="Calcular" name="btnCalcular"/>
<input type="reset" value="Limpiar controles" name="btnLimpiar"/>
</td>
</tr>
<?php
if ($categoria=='Jefe') $pagoHora=50;
if ($categoria=='Administrativo') $pagoHora=30;
if ($categoria=='Operario') $pagoHora=15;
if ($categoria=='Practicante') $pagoHora=5;
$sBruto=$pagoHora*$horas;
$descuento=$sBruto*15.0/100.0;
$sNeto=$sBruto-$descuento;
?>
124 DESARROLLO DE APLICACIONES WEB CON PHP

<tr>
<td>Salario Bruto</td>
<td>
<?php echo "$ ".number_format($sBruto, 2,'.','');?>
</td>
</tr>
<tr>
<td>Descuento</td>
<td>
<?php echo "$ ".number_format($descuento,2,'.',''); ?>
</td>
</tr>
<tr>
<td>Salario Neto</td>
<td>
<?php echo "$ ".number_format($sNeto,2,'.','');?></td>
</tr>
</table>
</form>

Comentarios:

error_reporting(0);

$empleado=$_POST['txtEmpleado'];
$categoria=$_POST['selCategoria'];
$horas=$_POST['txtHoras'];

Omitiremos los errores ocasionados por la impresión de variables antes de ser llenadas de valor,
si observamos la siguiente imagen notamos que el error se ocasiona por la no definición de la
variable txtEmpleado.

Para evitar este error usamos la instrucción error_reporƟng(0). Luego capturamos los valores
ingresados por el usuario en los controles del formulario usando la función $_POST.

txtHoras
selCategoria
selCategoria
txtEmpleado

btnCalcular btnLimpiar

Finalmente, capturamos los valores de los controles usando la función $_POST como el nombre
del empleado, categoría del empleado y las horas trabajadas.
CAP. 4: ESTRUCTURAS CONDICIONALES 125

if ($categoria=='Jefe')
$selJ='SELECTED';
else
$selJ="";
if ($categoria=='Administrativo')
$selA='SELECTED';
else
$selA="";
if ($categoria=='Operario')
$selO='SELECTED';
else
$selO="";
if ($categoria=='Practicante')
$selP='SELECTED';
else
$selP="";

Para poder mantener la categoría seleccionada por el usuario, se debe aplicar la propiedad
SELECTED, para lo cual se han creado variables para cada opción de la categoría, por ejemplo,
en la categoría Jefe la variable sería $selJ. Entonces, si el usuario selecciona la categoría Jefe
se llena la variable $selJ del valor SELECTED y así podrá mantenerla seleccionada después de
mostrado el resultado.

<tr>
<td width="150">Empleado</td>
<td><input type="text" name="txtEmpleado" size="70"
value="<?php echo $empleado; ?>" />
</td>
</tr>

Aquí se imprime el nombre seleccionado por el usuario en el mismo control txtEmpleado, aun
después de mostrada la información resultante.

<tr>
<td>Categoria</td>
<td>
<select name="selCategoria">
<option value="Jefe" <?php echo $selJ;?> >Jefe</option>
<option value="Administrativo" <?php echo $selA; ?> >
Administrativo </option>
<option value="Operario" <?php echo $selO; ?> >
Operario</option>
<option value="Practicante" <?php echo $selP; ?> >
Practicante</option>
</select>
</td>
</tr>

En líneas anteriores usamos variables para asignar la etiqueta SELECTED, según la opción del
menú de categorías seleccionadas; ahora se le asignará a cada una de las opciones después del
atributo VALUE, ya que el usuario podría seleccionar cualquiera de ellas.
126 DESARROLLO DE APLICACIONES WEB CON PHP

if ($categoría=='Jefe') $pagoHora=50;
if ($categoría=='Administrativo') $pagoHora=30;
if ($categoría=='Operario') $pagoHora=15;
if ($categoría=='Practicante') $pagoHora=5;

$sBruto=$pagoHora*$horas;
$descuento=$sBruto*15.0/100.0;
$sNeto=$sBruto-$descuento;

Ahora asignaremos el pago, por hora, según la categoría seleccionada. Como observamos, se ha
evaluado una a una las categorías, ya que estamos evaluando la condicional simple del If, ya que
de otra manera podríamos usar condicionales múltiples.

Luego se calcula en salario bruto ($sBruto), descuento ($descuento); recuerde que este se
divide con 15.0/100.0 para asegurar un valor fraccionario y finalmente el salario neto ($sNeto).

Veamos la impresión de los cálculos resultantes:

Salario Bruto $ 1500.00

<td>Salario Bruto</td>

<td>
<?php echo "$ "
.number_format($sBruto,2,'.','');
?>
</td>

La impresión del valor salario bruto pudo haber sido mucho más simple como, por ejemplo:

<?php echo $sBruto; ?> El resultado sería: 1500

La función number_format permite controlar el número de decimales y el símbolo de millones


de un valor monetario, su formato es:

number_format($variable,Cantidad_decimales,'simbolo_decimal','simbolo_millones');

Finalmente la impresión con number_format hace que el número 1500 tome forma de moneda
y se imprima correctamente; no olvidarse que la función solo permite asignar decimales pero
no muestra el símbolo de la moneda, por eso es que se imprime el símbolo $ directamente,
mediante la función echo, de la siguiente manera:

<?php echo "$ ".number_format($sBruto,2,'.',''); ?>

También podría gustarte