Para el desarrollo web se debe crear un Landing page el cual debe tener 3 páginas web
• INDEX.PHP (no crear la página desde cero, solo lo que se pide)
o Una tabla que muestre por base sus productos de venta (nombre, código, precio, descripción, stock), pero solo los 10 productos menos vendidos (por cantidad) en
el año 2021 entre los meses de mayo a julio (Este lo obtendrá de una vista, poner la sentencia de la creación de la vista, crear el datatable correspondiente, recuerde que el
datatable debe estar en español).
o Cada fila de producto al final debe tener un enlace que envíe a otra página con su ID.
<table id="productos">
<thead>
<th>NOMBRE</th>
<th>CODIGO</th>
<th>PRECIO</th>
<th>DESCRIPCION</th>
<th>STOCK</th>
</thead>
<tbody>
<?php
$query = "select p.id,p.nombre,p.codigo,p.precio,p.descripcion,p.stock from productos p, ventas v where (p.id=v.idproducto)
order by cantidad asc limit 10";
$resultado = $db->query($query);
while($fila=$resultado->fetch_array()){
?>
<tr>
<td><?php echo $fila['NOMBRE']; ?></td>
<td><?php echo $fila['CODIGO']; ?></td>
<td><?php echo $fila['PRECIO']; ?></td>
<td><?php echo $fila['DESCRIPCION']; ?></td>
<td><?php echo $fila['STOCK']; ?></td>
<td><a href="FORMULARIO.PHP?id=<?php echo $fila['ID']; ?>">EDITAR</a></td>
</tr>
<?php } ?>
</tbody>
</table>
<script>
$(document).ready(function () {
$('#tablin').DataTable({
language: {
search: "Buscar",
decimal: "",
emptyTable: "No hay información",
info: "Mostrando START a END de TOTAL Entradas",
infoEmpty: "Mostrando 0 to 0 of 0 Entradas",
infoFiltered: "(Filtrado de MAX total entradas)",
infoPostFix: "",
thousands: ",",
lengthMenu: "Mostrar MENU Entradas",
loadingRecords: "Cargando...",
processing: "Procesando...",
zeroRecords: "Sin resultados encontrados",
paginate: {
first: "Primero",
last: "Ultimo",
next: "Siguiente",
previous: "Anterior"
}
}
});
});
</script>
• FORMULARIO.PHP (no crear la página desde cero, solo lo que se pide)
o Con la función de php que se utiliza para preguntar si existe o no la variable enviada, obtener el id de la página anterior
o Con el id obtenido, extraer de la base el nombre, precio del producto y el nombre del tipo de producto (recordando que el producto y el tipo de producto son dos
tablas diferentes y se unen por FK).
o Crear un formulario para obtener los siguientes datos del futuro cliente: Nombre, Apellido, cédula, teléfono, email, dirección de domicilio, además presentara un
select para elegir el sexo y una fecha de ingreso que por defecto deber tener la fecha actual y el botón de guardar que enviara por POST a la página de guardado.
o El formulario tendrá un select especial que se llenará en base de una tabla de las formas de pago más usadas en diciembre del 2022.
o Recuerde que es una empresa seria y necesita que todos los datos estén correctos por ende debe tener las siguientes validaciones: el nombre y el apellido solo
deben aceptar letras, la cedula solo números y deben ser 10 números, y el mail debe ser validado. (debe hacer las funciones javascript de validación).
<script>
function validar_correo(){
let cor = $("#cor").val();
var cont = 0;
var indice = cor.indexOf(".");
if (indice==-1) {
$("#cor").val("");
alert("Correo no válido");
return
}
var porte = cor.length;
for(var i=0; i<porte; i++){
if (cor[i]=="@"){
cont = cont + 1;
}
}
if (cont>1){
$("#cor").val("");
alert("Correo no válido");
}
}
function soloLetras(e){
var caracter = (document.all) ? e.keyCode: e.which;
if(caracter==8) return true;
var patron = /[A-Za-z\s]/;
var letra = String.fromCharCode(caracter);
return patron.test(letra);
}
function soloNumeros(e){
var caracter = (document.all) ? e.keyCode: e.which;
if(caracter==8) return true;
var patron = /[0-9]/;
var letra = String.fromCharCode(caracter);
return patron.test(letra);
}
</script>
<?php
if(isset($_GET['ID']==true)){
echo '<script> alert("existe") </script>';
$query = "select p.nombre,p.precio,t.nombre from producto p, tipo t where (t.id=p.idtipo) and (p.id='$_GET['ID']')";
$resultado = $db->query($query);
?>
<form method="post" action="guardar_cliente.php" >
<label>NOMBRE:</label>
<input id="nombre" name="nombre" onkeypress="return soloLetras(event)" type="text">
<label>APELLIDO:</label>
<input id="apellido" name="apellido" onkeypress="return soloLetras(event)" type="text">
<label>CEDULA:</label>
<input id="ced" name="ced" oninput="if (this.value.length > this.maxLength) this.value = this.value.slice(0, this.maxLength);"
onkeypress="return soloNumeros(event)" maxlength="10" type="number">
<label>TELEFONO:</label>
<input id="telf" name="telf" onkeypress="return soloNumeros(event)" type="text">
<label>CORREO:</label>
<input id="cor" name="cor" onchange="validar_correo()" type="email" >
<label>DIRECCION:</label>
<input id="direc" name="direc" type="text">
<label>SEXO</label>
<select id="sexo" name="sexo">
<option value="1">M</option>
<option value="2">F</option>
<option value="3">N/D</option>
</select>
<label>FECHA DE INGRESO:</label>
<input type="date" id="fing" name="fing" value="<?php echo date('Y-m-d'); ?>">
<label>FORMA DE PAGO:</label>
<select id="pago" name="pago">
<?php
$query1 = "select DISTINCT(f.idpagos),p.id, p.nombre from pagos p, factura f where (f.idpagos=p.id) and (f.fecha BETWEEN
'2023-12-01' AND '2023-12-31')";
$resul = $db->query($query1);
while($fila=$resul->fetch_array()){
?>
<option value="<?php echo $fila['id']; ?>"><?php echo $fila['nombre'];?></option>
<?php } ?>
</select>
<input type="submit" value="GRABAR DATOS">
</form>
• GUARDAR_CLIENTE.PHP (no crear la página desde cero, solo lo que se pide)
o Esta página debe tener la conexión a la base, el inicio de sesión, el envío de todos los inputs y selects de los formularios
o Hacer el insert correspondiente para la tabla de cliente y regresar a la página index.php
<?php
include("bd/conexion.php");
$db = DataBase::connect();
date_default_timezone_set("America/Guayaquil");
$fecha = date('Y-m-d H:i:s');
$nom = $_POST['nombre'];
$ape = $_POST['apellido'];
$ced = $_POST['ced'];
$fing = $fecha;
$telf = $_POST['telf'];
$dir = $_POST['direc'];
$cor = $_POST['cor'];
$sexo = $_POST['sexo'];
$pago = $_POST['pago'];
$kfc = "insert into empleado
values('','$nom','$ape','$ced','$fing','$cor','$telf',
'$dir','$sexo','$pago',1)";
$resultado = $db->query($kfc);
if($resultado==true){
header("location:index.php");
}else{
header("location:index.php");
}
?>