Version_1.0

This commit is contained in:
Mauricio GM 2024-11-21 18:53:54 -06:00
commit c9272ae768
726 changed files with 108987 additions and 0 deletions

104
ajax/articulo.php Normal file
View File

@ -0,0 +1,104 @@
<?php
ob_start();
session_start();
require_once "../modelos/Articulo.php";
$articulo=new Articulo();
$idarticulo=isset($_POST["idarticulo"])? limpiarCadena($_POST["idarticulo"]):"";
$idcategoria=isset($_POST["idcategoria"])? limpiarCadena($_POST["idcategoria"]):"";
$codigo=isset($_POST["codigo"])? limpiarCadena($_POST["codigo"]):"";
$nombre=isset($_POST["nombre"])? limpiarCadena($_POST["nombre"]):"";
$stock=isset($_POST["stock"])? limpiarCadena($_POST["stock"]):"";
$descripcion=isset($_POST["descripcion"])? limpiarCadena($_POST["descripcion"]):"";
$imagen=isset($_POST["imagen"])? limpiarCadena($_POST["imagen"]):"";
switch ($_GET["op"]) {
case 'guardaryeditar':
if (!file_exists($_FILES['imagen']['tmp_name'])|| !is_uploaded_file($_FILES['imagen']['tmp_name'])) {
$imagen=$_POST["imagenactual"];
}else{
$ext=explode(".", $_FILES["imagen"]["name"]);
if ($_FILES['imagen']['type']=="image/jpg" || $_FILES['imagen']['type']=="image/jpeg" || $_FILES['imagen']['type']=="image/png") {
$imagen=round(microtime(true)).'.'. end($ext);
move_uploaded_file($_FILES["imagen"]["tmp_name"], "../files/articulos/".$imagen);
}
}
if (empty($idarticulo)) {
$rspta=$articulo->insertar($idcategoria,$codigo,$nombre,$stock,$descripcion,$imagen);
echo $rspta ? "Datos registrados correctamente" : "No se pudo registrar los datos";
}else{
$rspta=$articulo->editar($idarticulo,$idcategoria,$codigo,$nombre,$stock,$descripcion,$imagen);
echo $rspta ? "Datos actualizados correctamente" : "No se pudo actualizar los datos";
}
break;
case 'desactivar':
$rspta=$articulo->desactivar($idarticulo);
echo $rspta ? "Datos desactivados correctamente" : "No se pudo desactivar los datos";
break;
case 'activar':
$rspta=$articulo->activar($idarticulo);
echo $rspta ? "Datos activados correctamente" : "No se pudo activar los datos";
break;
case 'mostrar':
$rspta=$articulo->mostrar($idarticulo);
echo json_encode($rspta);
break;
case 'listar':
$rspta=$articulo->listar();
$data=Array();
if ($_SESSION['acceso']==1) {
while ($reg=$rspta->fetch_object()) {
$data[]=array(
"0"=>($reg->condicion)?'<button class="btn btn-warning btn-xs" onclick="mostrar('.$reg->idarticulo.')"><i class="fa fa-pencil"></i></button>'.' '.'<button class="btn btn-danger btn-xs" onclick="desactivar('.$reg->idarticulo.')"><i class="fa fa-close"></i></button>':'<button class="btn btn-warning btn-xs" onclick="mostrar('.$reg->idarticulo.')"><i class="fa fa-pencil"></i></button>'.' '.'<button class="btn btn-primary btn-xs" onclick="activar('.$reg->idarticulo.')"><i class="fa fa-check"></i></button>',
"1"=>$reg->nombre,
"2"=>$reg->categoria,
"3"=>$reg->codigo,
"4"=>$reg->stock,
"5"=>"<img src='../files/articulos/".$reg->imagen."' height='50px' width='50px'>",
"6"=>$reg->descripcion,
"7"=>($reg->condicion)?'<span class="label bg-green">Activado</span>':'<span class="label bg-red">Desactivado</span>'
);
}
}else{
while ($reg=$rspta->fetch_object()) {
$data[]=array(
"0"=>'Sin Acceso',
"1"=>$reg->nombre,
"2"=>$reg->categoria,
"3"=>$reg->codigo,
"4"=>$reg->stock,
"5"=>"<img src='../files/articulos/".$reg->imagen."' height='50px' width='50px'>",
"6"=>$reg->descripcion,
"7"=>($reg->condicion)?'<span class="label bg-green">Activado</span>':'<span class="label bg-red">Desactivado</span>'
);
}
}
$results=array(
"sEcho"=>1,//info para datatables
"iTotalRecords"=>count($data),//enviamos el total de registros al datatable
"iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
"aaData"=>$data);
echo json_encode($results);
break;
case 'selectCategoria':
require_once "../modelos/Categoria.php";
$categoria=new Categoria();
$rspta=$categoria->select();
while ($reg=$rspta->fetch_object()) {
echo '<option value=' . $reg->idcategoria.'>'.$reg->nombre.'</option>';
}
break;
}
?>

70
ajax/categoria.php Normal file
View File

@ -0,0 +1,70 @@
<?php
ob_start();
session_start();
require_once "../modelos/Categoria.php";
$categoria=new Categoria();
$idcategoria=isset($_POST["idcategoria"])? limpiarCadena($_POST["idcategoria"]):"";
$nombre=isset($_POST["nombre"])? limpiarCadena($_POST["nombre"]):"";
$descripcion=isset($_POST["descripcion"])? limpiarCadena($_POST["descripcion"]):"";
switch ($_GET["op"]) {
case 'guardaryeditar':
if (empty($idcategoria)) {
$rspta=$categoria->insertar($nombre,$descripcion);
echo $rspta ? "Datos registrados correctamente" : "No se pudo registrar los datos";
}else{
$rspta=$categoria->editar($idcategoria,$nombre,$descripcion);
echo $rspta ? "Datos actualizados correctamente" : "No se pudo actualizar los datos";
}
break;
case 'desactivar':
$rspta=$categoria->desactivar($idcategoria);
echo $rspta ? "Datos desactivados correctamente" : "No se pudo desactivar los datos";
break;
case 'activar':
$rspta=$categoria->activar($idcategoria);
echo $rspta ? "Datos activados correctamente" : "No se pudo activar los datos";
break;
case 'mostrar':
$rspta=$categoria->mostrar($idcategoria);
echo json_encode($rspta);
break;
case 'listar':
$rspta=$categoria->listar();
$data=Array();
if ($_SESSION['acceso']==1) {
while ($reg=$rspta->fetch_object()) {
$data[]=array(
"0"=>($reg->condicion)?'<button class="btn btn-warning btn-xs" onclick="mostrar('.$reg->idcategoria.')"><i class="fa fa-pencil"></i></button>'.' '.'<button class="btn btn-danger btn-xs" onclick="desactivar('.$reg->idcategoria.')"><i class="fa fa-close"></i></button>':'<button class="btn btn-warning btn-xs" onclick="mostrar('.$reg->idcategoria.')"><i class="fa fa-pencil"></i></button>'.' '.'<button class="btn btn-primary btn-xs" onclick="activar('.$reg->idcategoria.')"><i class="fa fa-check"></i></button>',
"1"=>$reg->nombre,
"2"=>$reg->descripcion,
"3"=>($reg->condicion)?'<span class="label bg-green">Activado</span>':'<span class="label bg-red">Desactivado</span>'
);
}
}else{
while ($reg=$rspta->fetch_object()) {
$data[]=array(
"0"=>'Sin Acceso',
"1"=>$reg->nombre,
"2"=>$reg->descripcion,
"3"=>($reg->condicion)?'<span class="label bg-green">Activado</span>':'<span class="label bg-red">Desactivado</span>'
);
}
}
$results=array(
"sEcho"=>1,//info para datatables
"iTotalRecords"=>count($data),//enviamos el total de registros al datatable
"iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
"aaData"=>$data);
echo json_encode($results);
break;
}
?>

64
ajax/consultas.php Normal file
View File

@ -0,0 +1,64 @@
<?php
require_once "../modelos/Consultas.php";
$consulta = new Consultas();
switch ($_GET["op"]) {
case 'comprasfecha':
$fecha_inicio=$_REQUEST["fecha_inicio"];
$fecha_fin=$_REQUEST["fecha_fin"];
$rspta=$consulta->comprasfecha($fecha_inicio,$fecha_fin);
$data=Array();
while ($reg=$rspta->fetch_object()) {
$data[]=array(
"0"=>$reg->fecha,
"1"=>$reg->usuario,
"2"=>$reg->proveedor,
"3"=>$reg->tipo_comprobante,
"4"=>$reg->serie_comprobante.' '.$reg->num_comprobante,
"5"=>$reg->total_compra,
"6"=>$reg->impuesto,
"7"=>($reg->estado=='Aceptado')?'<span class="label bg-green">Aceptado</span>':'<span class="label bg-red">Anulado</span>'
);
}
$results=array(
"sEcho"=>1,//info para datatables
"iTotalRecords"=>count($data),//enviamos el total de registros al datatable
"iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
"aaData"=>$data);
echo json_encode($results);
break;
case 'ventasfechacliente':
$fecha_inicio=$_REQUEST["fecha_inicio"];
$fecha_fin=$_REQUEST["fecha_fin"];
$idcliente=$_REQUEST["idcliente"];
$rspta=$consulta->ventasfechacliente($fecha_inicio,$fecha_fin,$idcliente);
$data=Array();
while ($reg=$rspta->fetch_object()) {
$data[]=array(
"0"=>$reg->fecha,
"1"=>$reg->usuario,
"2"=>$reg->cliente,
"3"=>$reg->tipo_comprobante,
"4"=>$reg->serie_comprobante.' '.$reg->num_comprobante,
"5"=>$reg->total_venta,
"6"=>$reg->impuesto,
"7"=>($reg->estado=='Aceptado')?'<span class="label bg-green">Aceptado</span>':'<span class="label bg-red">Anulado</span>'
);
}
$results=array(
"sEcho"=>1,//info para datatables
"iTotalRecords"=>count($data),//enviamos el total de registros al datatable
"iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
"aaData"=>$data);
echo json_encode($results);
break;
}
?>

138
ajax/ingreso.php Normal file
View File

@ -0,0 +1,138 @@
<?php
require_once "../modelos/Ingreso.php";
if (strlen(session_id())<1)
session_start();
$ingreso=new Ingreso();
$idingreso=isset($_POST["idingreso"])? limpiarCadena($_POST["idingreso"]):"";
$idproveedor=isset($_POST["idproveedor"])? limpiarCadena($_POST["idproveedor"]):"";
$idusuario=$_SESSION["idusuario"];
$tipo_comprobante=isset($_POST["tipo_comprobante"])? limpiarCadena($_POST["tipo_comprobante"]):"";
$serie_comprobante=isset($_POST["serie_comprobante"])? limpiarCadena($_POST["serie_comprobante"]):"";
$num_comprobante=isset($_POST["num_comprobante"])? limpiarCadena($_POST["num_comprobante"]):"";
$fecha_hora=isset($_POST["fecha_hora"])? limpiarCadena($_POST["fecha_hora"]):"";
$impuesto=isset($_POST["impuesto"])? limpiarCadena($_POST["impuesto"]):"";
$total_compra=isset($_POST["total_compra"])? limpiarCadena($_POST["total_compra"]):"";
switch ($_GET["op"]) {
case 'guardaryeditar':
if (empty($idingreso)) {
$rspta=$ingreso->insertar($idproveedor,$idusuario,$tipo_comprobante,$serie_comprobante,$num_comprobante,$fecha_hora,$impuesto,$total_compra,$_POST["idarticulo"],$_POST["cantidad"],$_POST["precio_compra"],$_POST["precio_venta"]);
echo $rspta ? "Datos registrados correctamente" : "No se pudo registrar los datos";
}else{
}
break;
case 'anular':
$rspta=$ingreso->anular($idingreso);
echo $rspta ? "Ingreso anulado correctamente" : "No se pudo anular el ingreso";
break;
case 'mostrar':
$rspta=$ingreso->mostrar($idingreso);
echo json_encode($rspta);
break;
case 'listarDetalle':
//recibimos el idingreso
$id=$_GET['id'];
$rspta=$ingreso->listarDetalle($id);
$total=0;
echo ' <thead style="background-color:#A9D0F5">
<th>Opciones</th>
<th>Articulo</th>
<th>Cantidad</th>
<th>Precio Compra</th>
<th>Precio Venta</th>
<th>Subtotal</th>
</thead>';
while ($reg=$rspta->fetch_object()) {
echo '<tr class="filas">
<td></td>
<td>'.$reg->nombre.'</td>
<td>'.$reg->cantidad.'</td>
<td>'.$reg->precio_compra.'</td>
<td>'.$reg->precio_venta.'</td>
<td>'.$reg->precio_compra*$reg->cantidad.'</td>
<td></td>
</tr>';
$total=$total+($reg->precio_compra*$reg->cantidad);
}
echo '<tfoot>
<th>TOTAL</th>
<th></th>
<th></th>
<th></th>
<th></th>
<th><h4 id="total">S/. '.$total.'</h4><input type="hidden" name="total_compra" id="total_compra"></th>
</tfoot>';
break;
case 'listar':
$rspta=$ingreso->listar();
$data=Array();
while ($reg=$rspta->fetch_object()) {
$data[]=array(
"0"=>($reg->estado=='Aceptado')?'<button class="btn btn-warning btn-xs" onclick="mostrar('.$reg->idingreso.')"><i class="fa fa-eye"></i></button>'.' '.'<button class="btn btn-danger btn-xs" onclick="anular('.$reg->idingreso.')"><i class="fa fa-close"></i></button>':'<button class="btn btn-warning btn-xs" onclick="mostrar('.$reg->idingreso.')"><i class="fa fa-eye"></i></button>',
"1"=>$reg->fecha,
"2"=>$reg->proveedor,
"3"=>$reg->usuario,
"4"=>$reg->tipo_comprobante,
"5"=>$reg->serie_comprobante. '-' .$reg->num_comprobante,
"6"=>$reg->total_compra,
"7"=>($reg->estado=='Aceptado')?'<span class="label bg-green">Aceptado</span>':'<span class="label bg-red">Anulado</span>'
);
}
$results=array(
"sEcho"=>1,//info para datatables
"iTotalRecords"=>count($data),//enviamos el total de registros al datatable
"iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
"aaData"=>$data);
echo json_encode($results);
break;
case 'selectProveedor':
require_once "../modelos/Persona.php";
$persona = new Persona();
$rspta = $persona->listarp();
while ($reg = $rspta->fetch_object()) {
echo '<option value='.$reg->idpersona.'>'.$reg->nombre.'</option>';
}
break;
case 'listarArticulos':
require_once "../modelos/Articulo.php";
$articulo=new Articulo();
$rspta=$articulo->listarActivos();
$data=Array();
while ($reg=$rspta->fetch_object()) {
$data[]=array(
"0"=>'<button class="btn btn-warning" onclick="agregarDetalle('.$reg->idarticulo.',\''.$reg->nombre.'\')"><span class="fa fa-plus"></span></button>',
"1"=>$reg->nombre,
"2"=>$reg->categoria,
"3"=>$reg->codigo,
"4"=>$reg->stock,
"5"=>"<img src='../files/articulos/".$reg->imagen."' height='50px' width='50px'>"
);
}
$results=array(
"sEcho"=>1,//info para datatables
"iTotalRecords"=>count($data),//enviamos el total de registros al datatable
"iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
"aaData"=>$data);
echo json_encode($results);
break;
}
?>

28
ajax/permiso.php Normal file
View File

@ -0,0 +1,28 @@
<?php
require_once "../modelos/Permiso.php";
$categoria=new Permiso();
switch ($_GET["op"]) {
case 'listar':
$rspta=$categoria->listar();
$data=Array();
while ($reg=$rspta->fetch_object()) {
$data[]=array(
"0"=>$reg->nombre
);
}
$results=array(
"sEcho"=>1,//info para datatables
"iTotalRecords"=>count($data),//enviamos el total de registros al datatable
"iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
"aaData"=>$data);
echo json_encode($results);
break;
}
?>

97
ajax/persona.php Normal file
View File

@ -0,0 +1,97 @@
<?php
ob_start();
session_start();
require_once "../modelos/Persona.php";
$persona=new Persona();
$idpersona=isset($_POST["idpersona"])? limpiarCadena($_POST["idpersona"]):"";
$tipo_persona=isset($_POST["tipo_persona"])? limpiarCadena($_POST["tipo_persona"]):"";
$nombre=isset($_POST["nombre"])? limpiarCadena($_POST["nombre"]):"";
$tipo_documento=isset($_POST["tipo_documento"])? limpiarCadena($_POST["tipo_documento"]):"";
$num_documento=isset($_POST["num_documento"])? limpiarCadena($_POST["num_documento"]):"";
$direccion=isset($_POST["direccion"])? limpiarCadena($_POST["direccion"]):"";
$telefono=isset($_POST["telefono"])? limpiarCadena($_POST["telefono"]):"";
$email=isset($_POST["email"])? limpiarCadena($_POST["email"]):"";
switch ($_GET["op"]) {
case 'guardaryeditar':
if (empty($idpersona)) {
$rspta=$persona->insertar($tipo_persona,$nombre,$tipo_documento,$num_documento,$direccion,$telefono,$email);
echo $rspta ? "Datos registrados correctamente" : "No se pudo registrar los datos";
}else{
$rspta=$persona->editar($idpersona,$tipo_persona,$nombre,$tipo_documento,$num_documento,$direccion,$telefono,$email);
echo $rspta ? "Datos actualizados correctamente" : "No se pudo actualizar los datos";
}
break;
case 'eliminar':
$rspta=$persona->eliminar($idpersona);
echo $rspta ? "Datos eliminados correctamente" : "No se pudo eliminar los datos";
break;
case 'mostrar':
$rspta=$persona->mostrar($idpersona);
echo json_encode($rspta);
break;
case 'listarp':
$rspta=$persona->listarp();
$data=Array();
while ($reg=$rspta->fetch_object()) {
$data[]=array(
"0"=>'<button class="btn btn-warning btn-xs" onclick="mostrar('.$reg->idpersona.')"><i class="fa fa-pencil"></i></button>'.' '.'<button class="btn btn-danger btn-xs" onclick="eliminar('.$reg->idpersona.')"><i class="fa fa-trash"></i></button>',
"1"=>$reg->nombre,
"2"=>$reg->tipo_documento,
"3"=>$reg->num_documento,
"4"=>$reg->telefono,
"5"=>$reg->email
);
}
$results=array(
"sEcho"=>1,//info para datatables
"iTotalRecords"=>count($data),//enviamos el total de registros al datatable
"iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
"aaData"=>$data);
echo json_encode($results);
break;
case 'listarc':
$rspta=$persona->listarc();
$data=Array();
if ($_SESSION['acceso']==1) {
while ($reg=$rspta->fetch_object()) {
$data[]=array(
"0"=>'<button class="btn btn-warning btn-xs" onclick="mostrar('.$reg->idpersona.')"><i class="fa fa-pencil"></i></button>'.' '.'<button class="btn btn-danger btn-xs" onclick="eliminar('.$reg->idpersona.')"><i class="fa fa-trash"></i></button>',
"1"=>$reg->nombre,
"2"=>$reg->tipo_documento,
"3"=>$reg->num_documento,
"4"=>$reg->telefono,
"5"=>$reg->email
);
}
}else{
while ($reg=$rspta->fetch_object()) {
$data[]=array(
"0"=>'Sin Acceso',
"1"=>$reg->nombre,
"2"=>$reg->tipo_documento,
"3"=>$reg->num_documento,
"4"=>$reg->telefono,
"5"=>$reg->email
);
}
}
$results=array(
"sEcho"=>1,//info para datatables
"iTotalRecords"=>count($data),//enviamos el total de registros al datatable
"iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
"aaData"=>$data);
echo json_encode($results);
break;
}
?>

164
ajax/usuario.php Normal file
View File

@ -0,0 +1,164 @@
<?php
session_start();
require_once "../modelos/Usuario.php";
$usuario=new Usuario();
$idusuario=isset($_POST["idusuario"])? limpiarCadena($_POST["idusuario"]):"";
$nombre=isset($_POST["nombre"])? limpiarCadena($_POST["nombre"]):"";
$tipo_documento=isset($_POST["tipo_documento"])? limpiarCadena($_POST["tipo_documento"]):"";
$num_documento=isset($_POST["num_documento"])? limpiarCadena($_POST["num_documento"]):"";
$direccion=isset($_POST["direccion"])? limpiarCadena($_POST["direccion"]):"";
$telefono=isset($_POST["telefono"])? limpiarCadena($_POST["telefono"]):"";
$email=isset($_POST["email"])? limpiarCadena($_POST["email"]):"";
$cargo=isset($_POST["cargo"])? limpiarCadena($_POST["cargo"]):"";
$login=isset($_POST["login"])? limpiarCadena($_POST["login"]):"";
$clave=isset($_POST["clave"])? limpiarCadena($_POST["clave"]):"";
$imagen=isset($_POST["imagen"])? limpiarCadena($_POST["imagen"]):"";
switch ($_GET["op"]) {
case 'guardaryeditar':
if (!file_exists($_FILES['imagen']['tmp_name'])|| !is_uploaded_file($_FILES['imagen']['tmp_name'])) {
$imagen=$_POST["imagenactual"];
}else{
$ext=explode(".", $_FILES["imagen"]["name"]);
if ($_FILES['imagen']['type']=="image/jpg" || $_FILES['imagen']['type']=="image/jpeg" || $_FILES['imagen']['type']=="image/png") {
$imagen=round(microtime(true)).'.'. end($ext);
move_uploaded_file($_FILES["imagen"]["tmp_name"], "../files/usuarios/".$imagen);
}
}
//Hash SHA256 para la contraseña
$clavehash=hash("SHA256", $clave);
if (empty($idusuario)) {
$rspta=$usuario->insertar($nombre,$tipo_documento,$num_documento,$direccion,$telefono,$email,$cargo,$login,$clavehash,$imagen,$_POST['permiso']);
echo $rspta ? "Datos registrados correctamente" : "No se pudo registrar todos los datos del usuario";
}else{
$rspta=$usuario->editar($idusuario,$nombre,$tipo_documento,$num_documento,$direccion,$telefono,$email,$cargo,$login,$clavehash,$imagen,$_POST['permiso']);
echo $rspta ? "Datos actualizados correctamente" : "No se pudo actualizar los datos";
}
break;
case 'desactivar':
$rspta=$usuario->desactivar($idusuario);
echo $rspta ? "Datos desactivados correctamente" : "No se pudo desactivar los datos";
break;
case 'activar':
$rspta=$usuario->activar($idusuario);
echo $rspta ? "Datos activados correctamente" : "No se pudo activar los datos";
break;
case 'mostrar':
$rspta=$usuario->mostrar($idusuario);
echo json_encode($rspta);
break;
case 'listar':
$rspta=$usuario->listar();
$data=Array();
while ($reg=$rspta->fetch_object()) {
$data[]=array(
"0"=>($reg->condicion)?'<button class="btn btn-warning btn-xs" onclick="mostrar('.$reg->idusuario.')"><i class="fa fa-pencil"></i></button>'.' '.'<button class="btn btn-danger btn-xs" onclick="desactivar('.$reg->idusuario.')"><i class="fa fa-close"></i></button>':'<button class="btn btn-warning btn-xs" onclick="mostrar('.$reg->idusuario.')"><i class="fa fa-pencil"></i></button>'.' '.'<button class="btn btn-primary btn-xs" onclick="activar('.$reg->idusuario.')"><i class="fa fa-check"></i></button>',
"1"=>$reg->nombre,
"2"=>$reg->tipo_documento,
"3"=>$reg->num_documento,
"4"=>$reg->telefono,
"5"=>$reg->email,
"6"=>$reg->login,
"7"=>"<img src='../files/usuarios/".$reg->imagen."' height='50px' width='50px'>",
"8"=>($reg->condicion)?'<span class="label bg-green">Activado</span>':'<span class="label bg-red">Desactivado</span>'
);
}
$results=array(
"sEcho"=>1,//info para datatables
"iTotalRecords"=>count($data),//enviamos el total de registros al datatable
"iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
"aaData"=>$data);
echo json_encode($results);
break;
case 'permisos':
//obtenemos toodos los permisos de la tabla permisos
require_once "../modelos/Permiso.php";
$permiso=new Permiso();
$rspta=$permiso->listar();
//obtener permisos asigandos
$id=$_GET['id'];
$marcados=$usuario->listarmarcados($id);
$valores=array();
//almacenar permisos asigandos
while ($per=$marcados->fetch_object()) {
array_push($valores, $per->idpermiso);
}
//mostramos la lista de permisos
while ($reg=$rspta->fetch_object()) {
$sw=in_array($reg->idpermiso,$valores)?'checked':'';
echo '<li><input type="checkbox" '.$sw.' name="permiso[]" value="'.$reg->idpermiso.'">'.$reg->nombre.'</li>';
}
break;
case 'verificar':
//validar si el usuario tiene acceso al sistema
$logina=$_POST['logina'];
$clavea=$_POST['clavea'];
//Hash SHA256 en la contraseña
$clavehash=hash("SHA256", $clavea);
$rspta=$usuario->verificar($logina, $clavehash);
$fetch=$rspta->fetch_object();
if (isset($fetch)) {
# Declaramos la variables de sesion
$_SESSION['idusuario']=$fetch->idusuario;
$_SESSION['nombre']=$fetch->nombre;
$_SESSION['imagen']=$fetch->imagen;
$_SESSION['login']=$fetch->login;
//obtenemos los permisos
$marcados=$usuario->listarmarcados($fetch->idusuario);
//declaramos el array para almacenar todos los permisos
$valores=array();
//almacenamos los permisos marcados en al array
while ($per = $marcados->fetch_object()) {
array_push($valores, $per->idpermiso);
}
//determinamos lo accesos al usuario
in_array(1, $valores)?$_SESSION['escritorio']=1:$_SESSION['escritorio']=0;
in_array(2, $valores)?$_SESSION['almacen']=1:$_SESSION['almacen']=0;
in_array(3, $valores)?$_SESSION['compras']=1:$_SESSION['compras']=0;
in_array(4, $valores)?$_SESSION['ventas']=1:$_SESSION['ventas']=0;
in_array(5, $valores)?$_SESSION['acceso']=1:$_SESSION['acceso']=0;
in_array(6, $valores)?$_SESSION['consultac']=1:$_SESSION['consultac']=0;
in_array(7, $valores)?$_SESSION['consultav']=1:$_SESSION['consultav']=0;
}
echo json_encode($fetch);
break;
case 'salir':
//limpiamos la variables de la secion
session_unset();
//destruimos la sesion
session_destroy();
//redireccionamos al login
header("Location: ../index.php");
break;
}
?>

146
ajax/venta.php Normal file
View File

@ -0,0 +1,146 @@
<?php
require_once "../modelos/Venta.php";
if (strlen(session_id())<1)
session_start();
$venta = new Venta();
$idventa=isset($_POST["idventa"])? limpiarCadena($_POST["idventa"]):"";
$idcliente=isset($_POST["idcliente"])? limpiarCadena($_POST["idcliente"]):"";
$idusuario=$_SESSION["idusuario"];
$tipo_comprobante=isset($_POST["tipo_comprobante"])? limpiarCadena($_POST["tipo_comprobante"]):"";
$serie_comprobante=isset($_POST["serie_comprobante"])? limpiarCadena($_POST["serie_comprobante"]):"";
$num_comprobante=isset($_POST["num_comprobante"])? limpiarCadena($_POST["num_comprobante"]):"";
$fecha_hora=isset($_POST["fecha_hora"])? limpiarCadena($_POST["fecha_hora"]):"";
$impuesto=isset($_POST["impuesto"])? limpiarCadena($_POST["impuesto"]):"";
$total_venta=isset($_POST["total_venta"])? limpiarCadena($_POST["total_venta"]):"";
switch ($_GET["op"]) {
case 'guardaryeditar':
if (empty($idventa)) {
$rspta=$venta->insertar($idcliente,$idusuario,$tipo_comprobante,$serie_comprobante,$num_comprobante,$fecha_hora,$impuesto,$total_venta,$_POST["idarticulo"],$_POST["cantidad"],$_POST["precio_venta"],$_POST["descuento"]);
echo $rspta ? "Datos registrados correctamente" : "No se pudo registrar los datos";
}else{
}
break;
case 'anular':
$rspta=$venta->anular($idventa);
echo $rspta ? "Ingreso devuelto correctamente" : "No se pudo devolver el ingreso";
break;
case 'mostrar':
$rspta=$venta->mostrar($idventa);
echo json_encode($rspta);
break;
case 'listarDetalle':
//recibimos el idventa
$id=$_GET['id'];
$rspta=$venta->listarDetalle($id);
$total=0;
echo ' <thead style="background-color:#A9D0F5">
<th>Opciones</th>
<th>Articulo</th>
<th>Cantidad</th>
<th>Precio Venta</th>
<th>Descuento</th>
<th>Subtotal</th>
</thead>';
while ($reg=$rspta->fetch_object()) {
echo '<tr class="filas">
<td></td>
<td>'.$reg->nombre.'</td>
<td>'.$reg->cantidad.'</td>
<td>'.$reg->precio_venta.'</td>
<td>'.$reg->descuento.'</td>
<td>'.$reg->subtotal.'</td></tr>';
$total=$total+($reg->precio_venta*$reg->cantidad-$reg->descuento);
}
echo '<tfoot>
<th>TOTAL</th>
<th></th>
<th></th>
<th></th>
<th></th>
<th><h4 id="total">MXN/. '.$total.'</h4><input type="hidden" name="total_venta" id="total_venta"></th>
</tfoot>';
break;
case 'listar':
$rspta=$venta->listar();
$data=Array();
while ($reg=$rspta->fetch_object()) {
if ($reg->tipo_comprobante=='Ticket') {
$url='../reportes/exTicket.php?id=';
}else{
$url='../reportes/exFactura.php?id=';
}
$data[]=array(
"0"=>(($reg->estado=='Aceptado')?'<button class="btn btn-warning btn-xs" onclick="mostrar('.$reg->idventa.')"><i class="fa fa-eye"></i></button>'.' '.'<button class="btn btn-danger btn-xs" onclick="anular('.$reg->idventa.')"><i class="fa fa-close"></i></button>':'<button class="btn btn-warning btn-xs" onclick="mostrar('.$reg->idventa.')"><i class="fa fa-eye"></i></button>'),
"1"=>$reg->fecha,
"2"=>$reg->cliente,
"3"=>$reg->usuario,
"4"=>$reg->tipo_comprobante,
"5"=>$reg->serie_comprobante. '-' .$reg->num_comprobante,
"6"=>$reg->total_venta,
"7"=>($reg->estado=='Aceptado')?'<span class="label bg-green">Aceptado</span>':'<span class="label bg-red">Devuelto</span>'
);
}
$results=array(
"sEcho"=>1,//info para datatables
"iTotalRecords"=>count($data),//enviamos el total de registros al datatable
"iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
"aaData"=>$data);
echo json_encode($results);
break;
case 'selectCliente':
require_once "../modelos/Persona.php";
$persona = new Persona();
$rspta = $persona->listarc();
while ($reg = $rspta->fetch_object()) {
echo '<option value='.$reg->idpersona.'>'.$reg->nombre.'</option>';
}
break;
case 'listarArticulos':
require_once "../modelos/Articulo.php";
$articulo=new Articulo();
$rspta=$articulo->listarActivosVenta();
$data=Array();
while ($reg=$rspta->fetch_object()) {
$data[]=array(
"0"=>'<button class="btn btn-warning" onclick="agregarDetalle('.$reg->idarticulo.',\''.$reg->nombre.'\','.$reg->precio_venta.')"><span class="fa fa-plus"></span></button>',
"1"=>$reg->nombre,
"2"=>$reg->categoria,
"3"=>$reg->codigo,
"4"=>$reg->stock,
"5"=>$reg->precio_venta,
"6"=>"<img src='../files/articulos/".$reg->imagen."' height='50px' width='50px'>"
);
}
$results=array(
"sEcho"=>1,//info para datatables
"iTotalRecords"=>count($data),//enviamos el total de registros al datatable
"iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
"aaData"=>$data);
echo json_encode($results);
break;
}
?>

48
config/Conexion.php Normal file
View File

@ -0,0 +1,48 @@
<?php
require_once "global.php";
$conexion=new mysqli(DB_HOST,DB_USERNAME,DB_PASSWORD,DB_NAME);
mysqli_query($conexion, 'SET NAMES "'.DB_ENCODE.'"');
//muestra posible error en la conexion
if (mysqli_connect_errno()) {
printf("Falló en la conexion con la base de datos: %s\n",mysqli_connect_error());
exit();
}
if (!function_exists('ejecutarConsulta')) {
Function ejecutarConsulta($sql){
global $conexion;
$query=$conexion->query($sql);
return $query;
}
function ejecutarConsultaArray($sql) {
global $conexion;
$result = $conexion->query($sql);
return $result->fetch_all(MYSQLI_ASSOC);
}
function ejecutarConsultaSimpleFila($sql){
global $conexion;
$query=$conexion->query($sql);
$row=$query->fetch_assoc();
return $row;
}
function ejecutarConsulta_retornarID($sql){
global $conexion;
$query=$conexion->query($sql);
return $conexion->insert_id;
}
function limpiarCadena($str){
global $conexion;
$str=mysqli_real_escape_string($conexion,trim($str));
return htmlspecialchars($str);
}
}
?>

19
config/global.php Normal file
View File

@ -0,0 +1,19 @@
<?php
//ip de la pc servidor base de datos
define("DB_HOST", "localhost");
// nombre de la base de datos
define("DB_NAME", "dbsistema");
//nombre de usuario de base de datos
define("DB_USERNAME", "root");
//conraseña del usuario de base de datos
define("DB_PASSWORD", "");
//codificacion de caracteres
define("DB_ENCODE", "utf8");
//nombre del proyecto
define("PRO_NOMBRE", "Inventario RoboTec");
?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Some files were not shown because too many files have changed in this diff Show More