Contenido
Panel de administración (código index).............................................................................................2
Conexión............................................................................................................................................8
Header...............................................................................................................................................9
Footer...............................................................................................................................................12
Ventas..............................................................................................................................................13
Agregar.............................................................................................................................................17
Panel de administración (código index)
<?php include_once "includes/header.php"; ?><!—INCLUYE EL CODIGO DEL HEADER-- >
<div class="container-fluid">
<div class="d-sm-flex align-items-center justify-content-between mb-4">
<h1 class="h3 mb-0 text-gray-800">Panel de Administración</h1> <!--titulo de la
pagina-->
</div>
<!-- Content Row -->
<div class="row">
<!--esta seccion tiene la parte superior de la pantalla principal
//muestra un contador de los usuarios, clientes, productos y las
ventas existentes.-->
<a class="col-xl-3 col-md-6 mb-4" href="lista_usuarios.php">
<!--referencia al código de lista de Usuarios-->
<div class="card border-left-primary shadow h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-primary text-uppercase mb-
1">Usuarios</div>
<div class="h5 mb-0 font-weight-bold text-gray-800"><?php echo
$data['usuarios']; ?></div></div>
<div class="col-auto"><i class="fas fa-user fa-2x
text-gray-300"></i></div></div></div></div></a>
<a class="col-xl-3 col-md-6 mb-4" href="lista_cliente.php"><!--referencia al
código de lista de Clientes-->
<div class="card border-left-success shadow h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-success text-uppercase mb-
1">Clientes</div>
<div class="h5 mb-0 font-weight-bold text-gray-800"><?php echo
$data['clientes']; ?></div></div>
<div class="col-auto">
<i class="fas fa-users fa-2x text-gray-300"></i></div></div></div></div></a>
<a class="col-xl-3 col-md-6 mb-4" href="lista_productos.php"><!--referencia al
código de lista de Productos-->
<div class="card border-left-info shadow h-100 py-2"><div class="card-body">
<div class="row no-gutters align-items-center"><div class="col mr-2">
<div class="text-xs font-weight-bold text-info text-uppercase
mb-1">Productos</div>
<div class="row no-gutters align-items-center"><div class="col-auto">
<div class="h5 mb-0 mr-3 font-weight-bold text-gray-800"><?php echo
$data['productos']; ?></div></div>
<div class="col">
<div class="progress progress-sm mr-2">
<div class="progress-bar bg-info" role="progressbar" style="width: 50%" aria-
valuenow="50" aria-valuemin="0" aria-valuemax="100"></div>
</div></div></div></div><div class="col-auto">
<i class="fas fa-clipboard-list fa-2x text-gray-300"></i>
</div></div></div</div></a>
<a class="col-xl-3 col-md-6 mb-4" href="ventas.php"><!--referencia al código de
lista de Ventas-->
<div class="card border-left-warning shadow h-100 py-2">
<div class="card-body">
<div class="row no-gutters align-items-center">
<div class="col mr-2">
<div class="text-xs font-weight-bold text-warning text-uppercase
mb-1">Ventas</div>
<div class="h5 mb-0 font-weight-bold text-gray-800"><?php echo
$data['ventas']; ?></div></div>
<div class="col-auto">
<i class="fas fa-dollar-sign fa-2x
text-gray-300"></i></div></div></div></div></a></div>
<!--dentro de este fragmento se muestra las sección de Configuración que
contiene la información de usuario actual y un menú para el cambio de
Contraseña-->
<div class="d-sm-flex align-items-center justify-content-between mb-4">
<h1 class="h3 mb-0 text-gray-800">Configuración</h1></div>
<div class="row">
<div class="col-lg-6">
<div class="card">
<div class="card-header bg-primary text-white">Información Personal</div>
<div class="card-body"><!--aqui comienza la tarjeta de información-->
<div class="form-group">
<label>Nombre: <strong><?php echo $_SESSION['nombre']; ?></strong></label><!--
muestra el usuario--></div>
<div class="form-group">
<label>Correo: <strong><?php echo $_SESSION['email']; ?></strong></label><!--
muestra el email--></div>
<div class="form-group">
<label>Rol: <strong><?php echo $_SESSION['rol_name']; ?></strong></label><!--
muestra el rol--></div>
<div class="form-group">
<label>Usuario: <strong><?php echo $_SESSION['user']; ?></strong></label><!--
muestra el usuario--></div>
<ul class="list-group">
<li class="list-group-item active">Cambiar Contraseña</li><!--y aqui está la
tarjeta para cambiar la contraseña-->
<form action="" method=" post" name="frmChangePass" id="frmChangePass" class="p-
3">
<div class="form-group">
<label>Contraseña Actual</label><!--ingresas tu contraseña actual-->
<input type="password" name="actual" id="actual" placeholder="Clave Actual"
required class="form-control"></div>
<div class="form-group">
<label>Nueva Contraseña</label><!--ingresa tu nueva contraseña-->
<input type="password" name="nueva" id="nueva" placeholder="Nueva Clave"
required class="form-control"></div>
<div class="form-group"><!--verifica la contraseña-->
<label>Confirmar Contraseña</label>
<input type="password" name="confirmar" id="confirmar" placeholder="Confirmar
clave" required class="form-control"></div>
<div class="alertChangePass" style="display:none;"> </div><div>
<button type="submit" class="btn btn-primary btnChangePass">Cambiar
Contraseña</button><!--boton para confirmar el cambio-->
</div></form></ul></div></div></div>
<?php if ($_SESSION['rol'] == 1) { ?><!--verifica si el rol coincide con el
primero en la tabla de roles (admin), si es así, permite la modificacion-->
<div class="col-lg-6"><div class="card">
<div class="card-header bg-primary text-white">Datos de la Empresa</div>
<div class="card-body">
<form action="empresa.php" method="post" id="frmEmpresa" class="p-3"><div
class="form-group">
<label>Ruc:</label><!-- aqui va el RFC de la empresa-->
<input type="number" name="txtDni" value="<?php echo $dni; ?>" id="txtDni"
placeholder="Dni de la Empresa" required class="form-control"></div>
<div class="form-group">
<label>Nombre:</label><!-- aca se escribe el nombre de la empresa-->
<input type="text" name="txtNombre" class="form-control" value="<?php echo
$nombre_empresa; ?>" id="txtNombre" placeholder="Nombre de la Empresa" required
class="form-control"></div>
<div class="form-group">
<label>Razon Social:</label><!-- esta seccion contiene la razon social-->
<input type="text" name="txtRSocial" class="form-control" value="<?php echo
$razonSocial; ?>" id="txtRSocial" placeholder="Razon Social de la Empresa">
</div>
<div class="form-group">
<label>Teléfono:</label><!-- numero de telefono de la empresa-->
<input type="number" name="txtTelEmpresa" class="form-control" value="<?php echo
$telEmpresa; ?>" id="txtTelEmpresa" placeholder="teléfono de la Empresa"
required></div>
<div class="form-group">
<label>Correo Electrónico:</label><!-- el correo electronico de la empresa-->
<input type="email" name="txtEmailEmpresa" class="form-control" value="<?php
echo $emailEmpresa; ?>" id="txtEmailEmpresa" placeholder="Correo de la Empresa"
required></div>
<div class="form-group">
<label>Dirección:</label><!--Dirección física de las oficinales centrales de la
empresa-->
<input type="text" name="txtDirEmpresa" class="form-control" value="<?php echo
$dirEmpresa; ?>" id="txtDirEmpresa" placeholder="Dirreción de la Empresa"
required></div>
<div class="form-group">
<label>IGV (%):</label><!--IGV de la empresa-->
<input type="text" name="txtIgv" class="form-control" value="<?php echo $igv; ?
>" id="txtIgv" placeholder="IGV de la Empresa" required></div>
<?php echo isset($alert) ? $alert : ''; ?>
<div><!--boton para guardar los cambios realizados solo Disponibles para el
administrador-->
<button type="submit" class="btn btn-primary btnChangePass"><i class="fas fa-
save"></i> Guardar Datos</button></div></form></div></div></div>
<?php } else { ?>
<div class="col-lg-6">
<div class="card">
<div class="card-header bg-primary text-white"><!-- esta tarjeta aparece solo
para usuarios que no son administradores es la misma que la anterior pero sin
las opciones de edición-->
Datos de la Empresa
</div>
<div class="card-body">
<div class="p-3">
<div class="form-group">
<strong>Ruc:</strong><h6><?php echo $dni; ?></h6></div>
<div class="form-group"><strong>Nombre:</strong>
<h6><?php echo $nombre_empresa; ?></h6></div>
<div class="form-group">
<strong>Razon Social:</strong>
<h6><?php echo $razonSocial; ?></h6></div><div class="form-group">
<strong>Teléfono:</strong>
<?php echo $telEmpresa; ?></div>
<div class="form-group">
<strong>Correo Electrónico:</strong>
<h6><?php echo $emailEmpresa; ?></h6></div><div class="form-group">
<strong>Dirección:</strong>
<h6><?php echo $dirEmpresa; ?></h6></div><div class="form-group">
<strong>IGV (%):</strong>
<h6><?php echo $igv; ?></h6></div></div></div></div></div>
<?php } ?> </div>
</div>
</div>
<!—FIN DEL CONTENIDO PRINCIPAL-- >
<?php include_once "includes/footer.php"; ?><!--contenedor del pie de página del
sistema
Conexión
<?php
//variables para iniciar la conexión
$host = "localhost:33065";
$user = "root";
$clave = "";
$bd = "sis_venta";
//instrucción para crear la conexión
$conexion = mysqli_connect($host,$user,$clave,$bd);
if (mysqli_connect_errno()){ //mensaje de error si la conexión falla
echo "No se pudo conectar a la base de datos";
exit();
} // y si se puede establecer conexión al servidor pero no está la BD manda otro error
mysqli_select_db($conexion,$bd) or die("No se encuentra la base de datos");
mysqli_set_charset($conexion,"utf8");
?>
Header
<?php
session_start(); // llama al script js para iniciar la sesión
if (empty($_SESSION['active'])) { // si no esta iniciada entonces no se agrega a
la pantalla
header('location: ../');}
include "includes/functions.php"; //incluye el código de funcionesphp este se
encarga de procesar código
include "../conexion.php"; //incluye el script de la conexión a la BD
// datos Empresa variables que almacenan la información de la empresa
$dni = '';
$nombre_empresa = '';
$razonSocial = '';
$emailEmpresa = '';
$telEmpresa = '';
$dirEmpresa = '';
$igv = '';
//este query seleccion los datos desde la tabla CONFIGURACION
$query_empresa = mysqli_query($conexion, "SELECT * FROM configuracion");
$row_empresa = mysqli_num_rows($query_empresa);
//si la columna es mayor a 0 entonces se pasa a lo siguiente
if ($row_empresa > 0) {
//si la ifno de la empresa es igual al query realizado las variables
pasan a ser las del query
if ($infoEmpresa = mysqli_fetch_assoc($query_empresa)) {
$dni = $infoEmpresa['dni'];
$nombre_empresa = $infoEmpresa['nombre'];
$razonSocial = $infoEmpresa['razon_social'];
$telEmpresa = $infoEmpresa['telefono'];
$emailEmpresa = $infoEmpresa['email'];
$dirEmpresa = $infoEmpresa['direccion'];
$igv = $infoEmpresa['igv'];}}
//realizamos la búsqueda
$query_data = mysqli_query($conexion, "CALL data();");
$result_data = mysqli_num_rows($query_data);
// si la posición de la búsqueda es mayor entonces los datos se añaden a data
if ($result_data > 0) {$data = mysqli_fetch_assoc($query_data);}
?>
<!DOCTYPE html>
<html lang="en"><head>
<!--etiquetas meta usadas para proveer información al navegador -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1,
shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Punto de Venta</title>
<!-- Custom styles for this template-->
<link href="css/sb-admin-2.min.css" rel="stylesheet">
<link rel="stylesheet" href="css/dataTables.bootstrap4.min.css"> </head>
<body id="page-top">
<?php
//incluimos la conexión para lo siguiente
include "../conexion.php";
// realizamos un query
$query_data = mysqli_query($conexion, "CALL data();");
$result_data = mysqli_num_rows($query_data);
if ($result_data > 0) {$data = mysqli_fetch_assoc($query_data);}
?>
<div id="wrapper">
<!-- incluimos el menu -->
<?php include_once "includes/menu.php"; ?>
<!-- esta parte de aquí da la estructura de la interfaz
es una barra de navegación-->
<div id="content-wrapper" class="d-flex flex-column"><div id="content">
<nav class="navbar navbar-expand navbar-light bg-primary text-white topbar mb-4
static-top shadow">
<!—Este es un botón -- >
<button id="sidebarToggleTop" class="btn btn-link d-md-none rounded-circle mr-
3">
<i class="fa fa-bars"></i></button>
<div class="input-group">
<h6>Sistema de Venta</h6>
<!-- esta línea de aquí lo que hace es mostrar la ubicación y la fecha actual-->
<p class="ml-auto"><strong>México, </strong><?php echo fecha(); ?></p></div>
<!-- Topbar Navbar -->
<ul class="navbar-nav ml-auto">
<div class="topbar-divider d-none d-sm-block"></div>
<!-- Nav Item - User Information -->
<li class="nav-item dropdown no-arrow">
<! – DROPDOWN PARA OPCIONES -->
<a class="nav-link dropdown-toggle" href="#" id="userDropdown" role="button"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="mr-2 d-none d-lg-inline small text-white"><?php echo
$_SESSION['nombre']; ?></span></a>
<!-- Dropdown - User Information -->
<div class="dropdown-menu dropdown-menu-right shadow animated--grow-in" aria-
labelledby="userDropdown">
<a class="dropdown-item" href="#">
<i class="fas fa-user fa-sm fa-fw mr-2 text-gray-400"></i>
<!—MUESTRA dos opciones una para salir y otra que muestra tu información y te
lleva a la pantalla principal -- >
<?php echo $_SESSION['email']; ?></a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="salir.php">
<i class="fas fa-sign-out-alt fa-sm fa-fw mr-2
text-gray-400"></i>Salir</a></div></li></ul></nav>
<!—FIN DEL DOCUMENTO -->
Footer
<!-- Footer -->
<footer class="sticky-footer bg-white">
<div class="container my-auto">
<div class="copyright text-center my-auto">
<!-- marca de copyright y año de registro -->
<span>Copyright © Brayan Saenz <?php echo date("Y"); ?></span>
</div>
</div>
</footer>
<!-- End of Footer -->
</div>
<!-- End of Content Wrapper -->
</div>
<!-- End of Page Wrapper -->
<!-- Scroll to Top Button-->
<a class="scroll-to-top rounded" href="#page-top">
<i class="fas fa-angle-up"></i>
</a>
Ventas
<?php include_once "includes/header.php"; ?> <!-- agregamos el header
como con todos -->
<!-- Begin Page Content -->
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<div class="form-group"><!-- iniciamos este formulario para los datos del
cliente-->
<h4 class="text-center">Datos del Cliente</h4>
<a href="#" class="btn btn-primary btn_new_cliente"><i class="fas fa-
user-plus"></i> Nuevo Cliente</a></div>
<div class="card">
<div class="card-body"><!-- incluimos el formulario de dni, nombre
teléfono y dirección –->
<form method="post" name="form_new_cliente_venta"
id="form_new_cliente_venta">
<input type="hidden" name="action" value="addCliente">
<input type="hidden" id="idcliente" value="1" name="idcliente" required>
<div class="row">
<div class="col-lg-4">
<div class="form-group">
<label>ID</label>
<input type="number" name="dni_cliente" id="dni_cliente" class="form-
control"> </div></div>
<div class="col-lg-4"><div class="form-group"><label>Nombre</label>
<input type="text" name="nom_cliente" id="nom_cliente" class="form-
control" disabled required> </div></div>
<div class="col-lg-4">
<div class="form-group"><label>Teléfono</label>
<input type="number" name="tel_cliente" id="tel_cliente" class="form-
control" disabled required>
</div></div>
<div class="col-lg-4">
<div class="form-group">
<label>Direción</label>
<input type="text" name="dir_cliente" id="dir_cliente" class="form-
control" disabled required> </div> </div>
<div id="div_registro_cliente" style="display: none;">
<!--aqui tenemos el botón para guardar -->
<button type="submit" class="btn btn-primary">Guardar</button>
</div> </div></form></div></div>
<!-- esta sección agrega los datos de los productos que se van a vender
-->
<h4 class="text-center">Datos Venta</h4> <div class="row">
<div class="col-lg-6">
<div class="form-group">
<label><i class="fas fa-user"></i> VENDEDOR</label> <!-- el vendedor se
registra automáticamente con la sesión de usuario actual -->
<p style="font-size: 16px; text-transform: uppercase; color: blue;"><?
php echo $_SESSION['nombre']; ?></p>
</div>
</div>
<div class="col-lg-6">
<label>Acciones</label>
<div id="acciones_venta" class="form-group">
<a href="#" class="btn btn-danger" id="btn_anular_venta">Anular</a>
<a href="#" class="btn btn-primary" id="btn_facturar_venta"><i class="fas
fa-save"></i> Generar Venta</a></div></div></div>
<div class="table-responsive">
<table class="table table-hover">
<thead class="thead-dark">
<tr>
<!-- aqui agregamos al codigo del producto y el sistema agrega los demás
datos -->
<th width="100px">Código</th>
<th>Des.</th>
<th>Stock</th>
<th width="100px">Cantidad</th>
<th class="textright">Precio</th>
<th class="textright">Precio Total</th>
<th>Acciones</th></tr><tr>
<td><input type="number" name="txt_cod_producto"
id="txt_cod_producto"></td>
<td id="txt_descripcion">-</td>
<td id="txt_existencia">-</td>
<td><input type="text" name="txt_cant_producto"
id="txt_cant_producto"value="0" min="1" disabled></td>
<td id="txt_precio" class="textright">0.00</td>
<td id="txt_precio_total" class="txtright">0.00</td>
<td><a href="#" id="add_product_venta" class="btn btn-dark"
style="display: none;">Agregar</a></td>
</tr>
<tr><th>Código</th>
<th colspan="2">Descripción</th>
<th>Cantidad</th>
<th class="textright">Precio</th>
<th class="textright">Precio Total</th>
<th>Acciones</th></tr>
</thead>
<tbody id="detalle_venta">
<!-- Contenido ajax --></tbody>
<tfoot id="detalle_totales">
<!-- Contenido ajax -->
</tfoot></table>
</div>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
<?php include_once "includes/footer.php"; ?> <!—finalizamos incluyendo el
pie de página otra vez -->
Agregar
<?php include_once "includes/header.php";//incluye el código de la cabecera
include "../conexion.php";// incluye el código de la conexión a la BD
if (!empty($_POST)) {//si los campos no están vacios mandar el POST
$alert = "";
if (empty($_POST['nombre']) || empty($_POST['telefono']) ||
empty($_POST['direccion'])) {
$alert = '<p class"error">Todo los campos son requeridos</p>';//Indica que
si está vacío un campo entonces se niega la acción
} else {//si lo anterior está bien entonces se hace una transacción donde las
variables obtienen los valores de los campos
$idcliente = $_POST['id'];
$dni = $_POST['dni'];
$nombre = $_POST['nombre'];
$telefono = $_POST['telefono'];
$direccion = $_POST['direccion'];
$result = 0;
if (is_numeric($dni) and $dni != 0) {//validamos que dni no sea 0 y que sea
un número
$query = mysqli_query($conexion, "SELECT * FROM cliente where (dni =
'$dni' AND idcliente != $idcliente)");//realizamos el query en la BD
$result = mysqli_fetch_array($query);
$resul = mysqli_num_rows($query);
if ($resul >= 1) {//verifica si se realiza un cambio en la tabla, si no, no
hace nada y da una alerta
$alert = '<p class"error">El dni ya existe</p>';
} else {
if ($dni == '') {
$dni = 0;
}//si no se encuentra problema se realiza en update en la tabla
$sql_update = mysqli_query($conexion, "UPDATE cliente SET dni = $dni,
nombre = '$nombre' , telefono = '$telefono', direccion = '$direccion' WHERE
idcliente = $idcliente");
if ($sql_update) {//y finalizamos con un mensaje de exito si el cambio se
realiza y uno de error si falla
$alert = '<p class"exito">Cliente Actualizado correctamente</p>';
} else {
$alert = '<p class"error">Error al Actualizar el Cliente</p>';}}}}
// Mostrar Datos
//este fragmento se encarga de mostrar los clientes existentes en la pantalla
de clientes,
if (empty($_REQUEST['id'])) {
header("Location: lista_cliente.php");
$idcliente = $_REQUEST['id'];
$sql = mysqli_query($conexion, "SELECT * FROM cliente WHERE idcliente =
$idcliente");
$result_sql = mysqli_num_rows($sql);
if ($result_sql == 0) {
header("Location: lista_cliente.php");
} else {
while ($data = mysqli_fetch_array($sql)) {//realiza un ciclo WHILE en donde
se selecciona toda la información del cliente
$idcliente = $data['idcliente'];
$dni = $data['dni'];
$nombre = $data['nombre'];
$telefono = $data['telefono'];
$direccion = $data['direccion'];}}
?>
//este contiene el formulario para la edición de la información de un cliente,
y ejecuta el código anterior
<!-- Begin Page Content -->
<div class="container-fluid">
<div class="row">
<div class="col-lg-6 m-auto">
<form class="" action="" method="post">
<?php echo isset($alert) ? $alert : ''; ?>
<input type="hidden" name="id" value="<?php echo $idcliente; ?
>">
<div class="form-group">
<label for="dni">Dni</label>
<input type="number" placeholder="Ingrese ID" name="ID"
id="ID" class="form-control" value="<?php echo $dni; ?>">
</div>
<div class="form-group">
<label for="nombre">Nombre</label>
<input type="text" placeholder="Ingrese Nombre" name="nombre"
class="form-control" id="nombre" value="<?php echo $nombre; ?>">
</div>
<div class="form-group">
<label for="telefono">Teléfono</label>
<input type="number" placeholder="Ingrese Teléfono"
name="telefono" class="form-control" id="telefono" value="<?php echo $telefono;
?>">
</div>
<div class="form-group">
<label for="direccion">Dirección</label>
<input type="text" placeholder="Ingrese Direccion"
name="direccion" class="form-control" id="direccion" value="<?php echo
$direccion; ?>">
</div>
<button type="submit" class="btn btn-primary"><i class="fas fa-
user-edit"></i> Editar Cliente</button>
</form> </div> </div> </div>
<!-- /.container-fluid -->
</div>
<!-- End of Main Content -->
<?php include_once "includes/footer.php"; ?>//finalmente esta parte
agrega el pie de la página a la interfaz