0% encontró este documento útil (0 votos)
95 vistas21 páginas

Manual Tecnico

Este documento describe el panel de administración de un sistema de ventas, incluyendo secciones para usuarios, clientes, productos, ventas y configuración de la empresa.

Cargado por

Thenayarb 21
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
95 vistas21 páginas

Manual Tecnico

Este documento describe el panel de administración de un sistema de ventas, incluyendo secciones para usuarios, clientes, productos, ventas y configuración de la empresa.

Cargado por

Thenayarb 21
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

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 &copy; 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

También podría gustarte