Upload
lamtuong
View
212
Download
0
Embed Size (px)
Citation preview
1
CAPITULO 1 1. PRELIMINARES
1.1. Antecedentes Actualmente existen muchos gimnasios que no cuentan con los sistemas
suficientes para llevar un orden y control de sus socios, existiendo muchos
de ellos que ingresan y controlan sus datos manualmente, ocasionando
perdida de tiempo y de recursos.
Nuestro modelo a seguir es el Gimnasio GOLD´S GYM, que cuenta con un
sistema de control de acceso bajo la plataforma Windows con el programa
FoxPro 2.6. Una de las dificultades para controlar el acceso (counter) es
que no se generan procesos en línea, lo que ocasiona que no exista buena
comunicación con el resto de los departamentos, así como, flexibilidad de
la información.
Estas dificultades son comunes en muchos gimnasios por lo que se
buscará soluciones de manera general sin que existan códigos quemados.
1.2. Ámbito y Problemática
El sistema de control de acceso al Gimnasio se utilizará para controlar,
medir, conocer y comparar el ingreso de los socios mediante sus fechas de
2
vencimiento que se generan por los pagos que hayan efectuado; utilizando
para su ingreso la huella digital o una tarjeta de identificación.
Los efectos en los resultados de facturación se darán a conocer en los
informes, analizando el impacto económico que ellos representen.
El departamento de counter tiene como finalidad llevar el control de las
transacciones de facturación ya sean de Facturas, Devoluciones, Ticket de
Parqueo, Ticket de Locker, Ticket de masajes, facturas por canjes, archivos
de socios, vendedores, servicios, tarjetas de crédito, procesos, reportes
para los Gimnasios.
Estos servicios dependerán de cada Gimnasio. Conforme el número de
socios incrementa el control se hace más dificultoso para ciertas
plataformas que no presentan flexibilidad; y, para los que no cuentan con
una base de datos pobre, implicaría el caos total pudiendo reflejar una mala
atención a sus usuarios.
La falta de comunicación entre los departamentos ocasiona que el ingreso
de un nuevo socio sea lento y tedioso, causando malestar a la persona que
desea pertenecer al Gimnasio.
3
1.3 . Solución de la Problemática
La solución que se plantea es que cada uno de estos lugares maneje la
información oportunamente y que no se vean opacados por la falta de
comunicación entre los departamentos, para que se generen procesos en
línea, flexibilidad y crecimiento de sus datos, manejando así grandes
volúmenes de información.
Para un gimnasio ya establecido se procederá, a demás, a eliminar la
redundancia de datos.
La solución más óptima sería que los gimnasios cuenten con un sistema y
una base de datos que controle la información de sus socios.
1.4. Definición del Proyecto
Se desea trabajar bajo una plataforma y una base de datos que sirvan
para generar procesos en línea, brindando flexibilidad y crecimiento de
sus datos, manejando así grandes volúmenes de información.
La metodología que se requerirá es la de bases relacionales, con la cual
eliminaremos la redundancia de datos (esto en el caso de un gimnasio ya
establecido).
Se propone utilizar:
4
o Plataforma Visual Basic.Net 2003
o El diseño de la base de datos se lo hará en la Herramienta SQL
SERVER 2000
Para este caso - como hemos tomado como modelo el Gimnasio Gold´s
Gym- los equipos (Hardware) serán prestados por ellos.
El sistema está parametrizado, con la finalidad de trabajar con varios
modelos de gimnasios.
1.5. Objetivos del Proyecto
1.5.1 Objetivos Generales
EL objetivo radica en crear un sistema para controlar el acceso a
gimnasios, así como, verificar y manipular las transacciones a realizar para
cada uno de sus socios.
Con el Sistema que se propone el departamento de counter tendrá un
mejor manejo de la información siendo esta oportuna, confiable ahorrando
pérdida de recursos, por lo tanto, se mejorará el flujo de la información con
el resto del departamento y áreas involucradas. Así habrá un mejor
desarrollo financiero de la institución.
1.5.2. Objetivos Específicos
El Sistema de control de acceso tiene como fin:
5
Registrar numerosas transacciones de sus diferentes usuarios
con la finalidad de tener cronológicamente las transacciones al
día y en tiempo real
Elaborar el proceso en línea de los socios activos al reloj
Biométrico, mediante un archivo plano que se enviará de la PC
al reloj para activar personas y del reloj a la PC para determinar
sus asistencias. Las características de este equipo: biométrico
marca ATS Cyber Series.
Elaboración de un formulario que muestre información del socio
con su foto al marcar con su huella biométrica en el Reloj
Generación de reportes de asistencia de socios
Elaboración de ticket de servicio, el cual nos permitirá manejar y
administrar turnos entre los socios para determinado servicio,
ya sean estos: ticket de locker, parqueo, masajes, bronceados,
etc.
Elaboración de reportes de ventas
Elaboración de reportes de servicio
Proceso de respaldo cuando el reloj no funcione que será
mediante una tarjeta de identificación con código de barra la
cual será escaneada por un lector y aparecerá en la PC los
datos del cliente que mediante la pulsación de una botonera
dará ingreso al socio
6
El objetivo de este proyecto es desarrollar un sistema que realice los
procesos detallados anteriormente y que permita la elaboración de reportes
que estarán en la capacidad de reflejar información para la comparación de
informes finales y a las funciones de planificación, control y toma de
decisiones. Dichos elementos son entre los más importantes: Canjes con
otras empresas, servicio a los socios mediante relación costo/beneficio y
convenios.
1.6. Alcance del Proyecto
Los alcances del proyecto están definidos de la siguiente manera:
• Módulo Archivos
• Módulo Seguridad
• Módulo Facturación
• Módulo Inventario
Cada uno de estos módulos contará con los submodulos
MANTENIMIENTO, PROCESOS Y CONSULTAS/REPORTE, los cuales
contarán con otros submodulos que a continuación se detallan.
7
1.6.1 MÓDULO ARCHIVOS
En el módulo archivo encontramos el submenú SALIR, que nos permitirá
abandonar el sistema.
1.6.2. MÓDULO SEGURIDAD
Este módulo da mantenimiento a las tablas que se refieren y se relacionan
con los procesos de: administración de usuarios, integración de datos,
restricción de accesos, actualización de claves.
Consta de los siguientes grupos:
1.6.2.1. Mantenimiento
• Creación de usuarios.- quienes manejarán el sistema
• Creación de sucursales.- dependiendo si el gimnasio tiene o no
otros locales (sucursales)
• Creación de parámetros.- son los datos de la empresa que adquiere
el sistema
• Creación de cajas.- se refieren a los counters
1.6.2.2. Procesos
• Permisos por usuarios.- son los accesos que se les dará a los
usuarios que manejarán el sistema
• Horarios.- Se definirán los horarios para los servicios
8
1.6.2.3. Consultas / Reportes
Comprende la salida de información para toma de decisiones ya sea de
manera visual o impresa, ya que podremos controlar las operaciones
realizadas por los usuarios.
• Consulta de usuarios
• Consulta permiso por usuario
• Reporte de horarios
1.6.3. MÓDULO FACTURACIÓN
En el Módulo de Facturación se tendrá el absoluto control de todos los
socios que hayan sido creados mediante pagos de sus facturas, además
de una ficha de servicios y tarjetas que pueden ser usadas en las
respectivas facturas. Se podrán emitir reportes de servicios, clientes,
ventas, etc.
Consta de los siguientes grupos:
1.6.3.1. Mantenimiento
Directorio de socios.-La ficha del socio además de ir con su
número de cédula deberá tener un código secuencial que
identificará a cada cliente y este será el campo de conexión con el
reloj..
9
Catálogo de tarjetas de crédito
Provincia y ciudad
1.6.3.2. Procesos
Facturas: Ingreso de información de cada socio con su
respectivo vendedor, fecha, numeración, forma de pago y
servicios que haya escogido.
Devoluciones: También llamadas notas de crédito, las
cuales
sirven para devolver al socio por algún motivo: dinero, cheque
o voucher recibido por la cajera.
Catálogo de servicios (este grupo incluye el servicio de
cafetería que se dan en ciertos gimnasios, creación de platos,
combos)
Ticket de Servicios: Tanto de parqueo, locker, masajes,
bronceados, personal trainer, pilates, que son servicios
adicionales que adquieren los socios.
Procesar el archivo de socios al reloj, es decir, enviar
información de la PC al reloj, este archivo será diseñado por el
sistema de acuerdo a los estándares del reloj
10
Procesar el archivo de marcadas el cual permitirá importar la
asistencia de socios desde el reloj a la PC y guardarlo en la
base de datos SQL.
Exportar archivos planos para la respectiva contabilización en el
sistema de contabilidad.
1.6.3.3.Consultas / Reportes
Podremos emitir cuanto se ha vendido de forma detallada y la forma
de pago en la que hemos cobrado así también podremos elaborar
reportes de ventas de vendedores, compra de socios por montos,
ventas por horas e informes de tarjetas y cheques. Entre los reportes
que contaremos está:
• Reporte de servicio
✓ ticket por fecha
✓ reporte de personal trainer
• Reporte de cliente
✓ Por sexo
✓ Por secuencia
✓ Por tipo de membresía
✓ Por listado cliente activo
✓ Reporte de asistencia de socios
• Reporte de ventas
11
✓ Diario de ventas
✓ Ventas por forma de pago
✓ Ventas por producto
✓ Ventas por banco
✓ Ventas por meses
✓ Ventas por vendedor
✓ Ventas por tarjeta
✓ Ventas por horas
• Reporte de platos
• Reporte de combos
• Reporte de platos vs. Costos
• Compras socios por montos
• Listado de provincia y ciudades
1.6.4. MÓDULO INVENTARIO
Se tratará el ingreso de los productos, así como, sus egresos. Se definirá
los siguiente:
1.6.4.1. Mantenimiento
• Directorio de productos
1.6.4.2. Procesos
• Ingreso de productos / Egreso de productos
12
1.6.4.3. Consultas / Reportes
• Existencia de productos
• Movimientos de productos por tipo
• Reporte de productos
En cada uno de los modulos hemos contemplado la opción de los
documentos impresos ya que consideramos que son de mucha ayuda, a
continuación mencionamos sus objetivos:
Mantener estándares en la creación de todos los documentos internos
de la institución para que sean fácilmente automatizados con miras a
su respectiva auditoria del Control Interno de la Organización
Mantener el control de la información de los socios de quienes usan
sus servicios
Proveer en forma oportuna y actualizada información relacionada con
los diferentes tipos de documentos que se manejan en el sistema
Apoyar la toma de decisiones en diferentes niveles administrativos
Generar con el menor esfuerzo posible y con la consistencia de un
estilo propio, los documentos internos de redacción común y a la vez
servir de fuente de consulta sobre reglamentación existente por
asunto, materia, sanciones, nombramientos y otros.
13
Reducir el tiempo de ciclo del proceso, eliminando transportes y
demoras ocasionadas por cuellos de botella
1.7.Recursos para el desarrollo del Proyecto
Para la implementación del sistema, se necesitará del cliente los
siguientes requerimientos:
1.7.1 Hardware
➢ Las máquinas instaladas donde funcionará el sistema deben tener
como mínimo las siguientes características:
512 MB de Memoria RAM
40 GB de disco duro
Procesador Pentium IV de 2.8 GH
Monitor de 15”
1 Impresora de inyección a tinta
1 Flash Memory 512 Mb
1 CD-Writer
➢ Se necesitará un computador que funcione como el servidor principal
en donde se alojará la base de datos, las características son:
512 MB de Memoria RAM (o superior)
80 GB de disco (o superior, de preferencia disco
SCSI)
Procesador Pentium IV de 3 GH (o superior)
14
Monitor de 15”
Se necesitara un Reloj Biométrico y una lectora de código de barra
(Scanner Metrologic). Así como, la adquisición de las licencias para los
sistemas operativos y para la base de datos.
1.7.2 Software
Las Plataformas a utilizar son:
Visual Basic.Net 2003
SQL Server 2000 con Server Pack 4
Sistema Operativo Windows XP pro o Windows 2000
Sistema Operativo Windows 2003 con Server Pack 4 para el
Servidor
o Cristal Report Designer 7.0
1.8 Metodología
Para la elaboración de nuestro proyecto de tesis emplearemos métodos y
técnicas de investigación entre las cuales tenemos las siguientes:
• Entrevista con el administrador con la finalidad de obtener
información más detallada de las necesidades del gimnasio así
como conocer los servicos que brindan y para poder extraer el
requerimiento principal y poderle dar solución al problema.
• Análisis de los Requerimientos que nos sirve conocer los procesos,
modelarlos y especificarlos, con este análisis nos permitirá
15
construir el modelo de datos, y los procesos que tendrá nuestro
software.
• El modelo de diseño nos proporcionara una mejor visión de las
diferentes entidades que vamos a crear, para poder conocer el
funcionamiento del sistema.
Una vez realizado estos pasos, continuamos con:
• Creación de la interfaz que permita verificar y observar el
comportamiento de los datos en la Base.
• Una vez creada la interfaz, realizar una serie de pruebas que
verifiquen si este programa funcione de acuerdo a las
expectativas planteadas.
Se verá reflejado el ciclo de vida de un sistema, comenzando por el
Análisis, Diseño, Desarrollo y Pruebas.
16
CAPITULO 2
2. ANÁLISIS 2.1. Levantamiento de información
La base del desarrollo del Sistema fue el gimnasio Gold´s Gym, que
actualmente consta de un programa hecho en Fox Pro bajo Plataforma DOS
que trabaja en ambiente multiusuario y en red; además consta de un lector
de huellas que transmite y recepta datos mediante un puerto serial que va
conectado a un computador que a su vez está enlazado con el servidor
donde se encuentra la aplicación hecha en Fox Pro.
Esa aplicación es básicamente un sistema de facturación que su principal
propósito es el de receptar socios emitiéndole una factura que es la que
propicia que el cliente entre en un estado activo o inactivo de acuerdo a su
pago del servicio; y a su vez alimenta al lector de huellas para que le permita
su ingreso o no al establecimiento.
2.2. Recopilación de los Requerimientos
• El gimnasio necesita que sus transacciones sean en línea y no por
lotes como actualmente está
17
• Se requiere seguridad en su base de datos debido a que el sistema
hecho en fox pro usa tablas nativas a las cuales pueden ingresar
cualquier usuario
• Solicita que en la ficha del cliente aparezca la foto para tener la
certeza de que es el socio
• Controlar la distribución de los horarios de los servicios que brinda el
gimnasio
• Necesita la emisión de reportes gerenciales para toma de decisiones
• Controlar los servicios tales como locker, personal trainer, masajes
porque actualmente no se emiten ningún tipo de comprobante
• Control de restricción de acceso de usuarios al sistema
• Emisión de reportes de asistencia de socios
• Opción para crear promociones de membresías (mensual, anual,
trimestral)
2.3. Análisis de los Requerimientos
En virtud de los requerimientos detallados, hemos decidido realizar un
Software que pueda brindar facilidad, seguridad y que sus transacciones
sean en línea. Con la finalidad de que el gimnasio pueda mantener su
información (datos de socios) segura trabajaremos con la base de datos
SQL Server 2000 y así podremos controlar que los datos no sean alterados y
que esa información solo sea manipulada por usuarios permitidos. Estos
18
usuarios podrán ser creados en el Sistema asignándoles un ID y un
Password y posteriormente habilitándoles los posibles accesos al sistema.
Para cubrir el requerimiento de reportes trabajaremos con la herramienta
Cristal Report 6.0, que nos facilitará la creación y emisión de reportes que
serán de mucha ayuda a la hora de verificar resultados financieros y del
personal que laborará en el gimnasio.
Nuestra misión será desarrollar un Sistema que pueda controlar a cabalidad
el ingreso de los socios al gimnasio así como los servicios y productos que
se ofrezcan. Se lo desarrollará bajo la plataforma Visual Basic.Net.
19
2.4. Diagrama Transición de Datos
LECTORA
HUELLAS
PC
SERVIDOR
CPU
PRESENTACIÓN
REPORTES
BASE
DE
DATOS
PC 2
PC 1
Datos Socios
Envío Información Marcadas
Datos Socios Petición de Reportes
Petición de Reportes
Petición de Reportes
Envío Información Marcadas
FIGURA 2.1. DIAGRAMA DE TRANSICIÓN DE DATOS
20
2.5.Diagramas Flujo de Datos
2.5.1. Ingreso de Clientes
NUEVO
ACTIVO
EMITO
FACTURA
1
INGRESA
DATOS
INICIO
INGRESO
CLIENTE
ELABORACIÓN
FACTURA
1
RENOVAR
FIN
INGRESO
AL GYM
TOMA DE
HUELLA
FACTURA
FIGURA 2.2. INGRESO DE CLIENTES
21
2.5.2. Acceso a Servicios Gimnasio
Consulta
Servicio
LOCKER
PERSONA
TRAINER
PILATES
MASAJE Bronceado
SERVICIO
ESCOGIDO
Comprar
Verificar
disponibilidad
Persona se
acerca al servicio
FACTURA
FIN
CLIENTE SE
ACERCA AL
COUNTER
NO
Emite
Comprobante
FIGURA 2.3. ACCESO A SERVICIOS GIMNASIOS
22
2.5.3. Servicio-compra de un Plato en el Gimnasio
FIGURA 2.4. SERVICIO-COMPRA DE UN PLATO EN EL GIMNASIO
INICIO
Cliente se acerca a
counter (comidas)
STOCK
> 0
SIRVO PLATO
FACTURA
Consulta plato
FIN
SI
NO
23
2.6. DIAGRAMAS CASOS DE USO Caso de Uso 1
Administrador del Sistema
FIGURA 2.5. DIAGRAMA CASO DE USO – ADMINISTRADOR SISTEMA
Mantenimiento
Base de Datos
Creación Usuarios
Creación Permisos
a Usuarios
Presentación de
Reportes
Creación de
Claves
Creación Horarios
Creación
Parámetros
Creación
Cajas
Creación
Sucursales
24
2.6.1. Descripción Caso de Uso 1
NOMBRE Administrador del Sistema
ACTORES Administrador del Sistema
FUNCIÓN Es la persona que se encargará de dar
mantenimiento a la base de datos, así como crear
usuarios, asignarles permisos y horarios, crear cajas,
sucursales, presentar reportes.
2.6.1.1. Escenarios 2.6.1.1.1. Crea usuarios y ya existe
2.6.1.1.2. Crea usuarios y asignan permisos
2.6.1.1.3. Crea usuarios y asigna horarios
2.6.1.1.4. Crea claves y ya existen
2.6.1.1.5. Crea claves y asignan a los usuarios
2.6.1.1.6. Crea sucursales y ya existen
2.6.1.1.7. Crea sucursales y asignan parámetros
2.6.1.1.8. Crea cajas y ya existen
2.6.1.1.9. Presenta reportes
2.6.1.1.10. Da manteniendo a base de datos creada
25
2.6.1.2. CLASES 2.6.1.2.1. Usuarios
2.6.1.2.2. Claves
2.6.1.2.3. Sucursales
2.6.1.2.4. Cajas
2.6.1.3. Representación Clases Crea Usuarios FIGURA 2.6. CREA USUARIOS
Envía
Resultado existe
I
N
F
O
R
M
A
C
I
O
N
Procesa
información
Usuario
26
Crea Claves FIGURA 2.7. CREA CLAVES Crea Sucursales FIGURA 2.8. CREA SUCURSALES
Envía
Resultado existe
I
N
F
O
R
M
A
C
I
O
N
Procesa
información
Claves
Envía
Resultado existe
I
N
F
O
R
M
A
C
I
O
N
Procesa
información
Sucursales
27
Crea Cajas FIGURA 2.9. CREA CAJAS
Envía
Resultado existe
I
N
F
O
R
M
A
C
I
O
N
Procesa
información
Cajas
28
Caso de Uso 2 Supervisor del Sistema FIGURA 2.10. DIAGRAMA CASO DE USO-SUPERVISOR DEL SISTEMA
Egreso de
Productos
Ingreso de
Tarjetas de Crédito
Lectura de
Marcadas
Creación
Combos
Provincias y
Ciudades
Creación de
Productos
Creación
Platos
Exportación
Archivo DBP
Ingreso de
Productos
Expt. Texto para
contabilidad
Presentación de
Reportes
29
2.6.2. Descripción Caso de Uso 2
NOMBRE Supervisor del Sistema
ACTORES Supervisor del Sistema
FUNCIÓN Es la persona que se encargará de la creación de
productos, combos, platos, controlará el ingreso y
egreso de productos, manejará el ingreso de
tarjetas de crédito con las que trabajará el
gimnasio. También controlará la lectura de
marcadas, manejará lo referente a la exportación
de archivo DBP y de texto para contabilidad.
2.6.2.1. Escenarios 2.6.2.1.1. Crea producto y ya existe
2.6.2.1.2. Controla ingreso y egreso de producto
2.6.2.1.3. Crea tarjetas de crédito y ya existen
2.6.2.1.4. Controla lectura de marcadas
2.6.2.1.5. Crea combos y ya existen
2.6.2.1.6. Crea platos y ya existen
2.6.2.1.7. Ingresa provincias y ciudades y ya existen
2.6.2.1.8. Exporta archivo DBP y texto para contabilidad
30
2.6.2.1.9. Presenta reportes
2.6.2.2. CLASES 2.6.2.2.1. Producto
2.6.2.2.2. Tarjetas de Crédito
2.6.2.2.3. Combos
2.6.2.2.4. Platos
2.6.2.2.5. Provincias y Ciudades
2.6.2.3. Representación Clases Crea Producto FIGURA 2.11. CREA PRODUCTOS
Envía
Resultado existe
I
N
F
O
R
M
A
C
I
O
N
Procesa
información
Producto
31
Crea Tarjetas de Crédito FIGURA 2.12. CREA TARJETAS DE CRÉDITO Crea Combos FIGURA 2.13. CREA COMBOS
Envía
Resultado existe
I
N
F
O
R
M
A
C
I
O
N
Procesa
información
Tarjetas de
crédito
Envía
Resultado existe
I
N
F
O
R
M
A
C
I
O
N
Procesa
información
Combos
32
Crea Platos FIGURA 2.14. CREA PLATOS Crea Provincias y Ciudades FIGURA 2.15. CREA PROVINCIAS Y CIUDADES
Envía
Resultado existe
I
N
F
O
R
M
A
C
I
O
N
Procesa
información
Platos
Envía
Resultado existe
I
N
F
O
R
M
A
C
I
O
N
Procesa
información
Provincias
y Ciudades
33
Caso de Uso 3 Usuario del Sistema (cajero) FIGURA 2.16. DIAGRAMA CASO DE USO-USUARIO DEL SISTEMA (CAJERO)
Ingreso de
socios
Facturas
Tickets de
servicios
Presentación de
Reportes
Devoluciones
34
2.6.3. Descripción Caso de Uso 3
NOMBRE Usuario del Sistema (Cajero)
ACTORES Usuario del Sistema (Cajero)
FUNCIÓN Es la persona que se encargará de ingresar los datos de
los socios al sistema, emitir facturas, ticket de servicios y
registrar devoluciones. También presentará reportes.
2.6.3.1. Escenarios 2.6.3.1.1. Ingresa socio y ya existe
2.6.3.1.2. Emite facturas y existe control
2.6.3.1.3. Registra Devoluciones y existe control
2.6.3.1.4. Crea ticket de servicio y ya existe
2.6.3.1.5. Presenta reportes para control
2.6.3.2. CLASES 2.6.2.2.1. Socio
2.6.2.2.2. Facturas
2.6.2.2.3. Devoluciones
2.6.2.2.4. Ticket de servicio
35
2.6.3.3. Representación Clases Crea Socio FIGURA 2.17. CREA SOCIO Crea Facturas FIGURA 2.18. CREA FACTURAS
Envía
Resultado existe
I
N
F
O
R
M
A
C
I
O
N
Procesa
información
Socio
Envía
Factura existe
I
N
F
O
R
M
A
C
I
O
N
Procesa
información
Factura
36
Crea Devoluciones FIGURA 2.19. CREA DEVOLUCIONES Crea Ticket de Servicio FIGURA 2.20. CREA TICKET DE SERVICIO
Envía
Devolución registrada
I
N
F
O
R
M
A
C
I
O
N
Procesa
información
Devoluciones
Envía
Resultado existe
I
N
F
O
R
M
A
C
I
O
N
Procesa
información
Ticket de Servicio
37
Caso de Uso 4 Cliente FIGURA 2.21. DIAGRAMA CASO DE USO - CLIENTE-LECTORA DE HUELLAS 2.6.4. Descripción Caso de Uso 4
NOMBRE Cliente – Lectora de Huellas
ACTORES Cliente
FUNCIÓN La persona pone su huella en el lector de huella, de
ahí se podrá visualizar el nombre del cliente, número
de cédula y fecha de vencimiento de la membresía al
gimnasio
LECTORA DE HUELLAS
Pone su
huella
Visualiza nombre,
número de cédula y
fecha vencimiento
38
2.6.4.1. Escenarios 2.6.4.1.1. Cliente ingresa su huella
2.6.4.1.2. Huella es registrada por el lector de huella
2.6.4.1.3. Cliente visualiza datos personales y membresía
2.6.4.2. CLASES 2.6.4.2.1. Lectora de huellas
2.6.4.2.2. Datos cliente
2.6.4.3. Representación Clases Crea Lectora de Huellas FIGURA 2.22. CREA LECTORA DE HUELLAS
Envía huella
Huella registrada
I
N
F
O
R
M
A
C
I
O
N
Procesa
información
Lectora de Huellas
39
Crea Datos Cliente FIGURA 2.23. CREA DATOS CLIENTE
Envía huella
Visualiza sus datos
Y membresía
I
N
F
O
R
M
A
C
I
O
N
Procesa
información
Datos Cliente
40
Caso de Uso 5 Usuario
FIGURA 2.24. DIAGRAMA CASO DE USO: USUARIO-DATOS CLIENTES 2.6.5. Descripción Caso de Uso 5
NOMBRE Usuario – Datos Cliente
ACTORES Usuario
FUNCIÓN El usuario ingresa datos de los clientes, verifica el tipo de
membresía y la fecha de vencimiento de la misma
DATOS CLIENTES
CLIENTES
Ingresa datos
clientes
Verifica fecha de
vencimiento
Verifica tipo
de membresía
membresía
41
2.6.5.1. Escenarios 2.6.5.1.1. Usuario ingresa datos cliente y ya existen datos
2.6.5.1.2. Usuario verifica tipo de membresía y vencimiento
2.6.5.2. CLASES 2.6.5.2.1. Cliente
2.6.5.2.2. Membresía (tipo y vencimiento)
2.6.5.3. Representación Clases Crea Cliente FIGURA 2.25. CREA CLIENTE
Envía datos
Existe
I
N
F
O
R
M
A
C
I
O
N
Procesa
información
Cliente
42
Crea Membresía (tipo y vencimiento) FIGURA 2.26. CREA MEMBRESIA (TIPO Y VENCIMIENTO)
Envía datos
Visualiza tipo
Membresía y
Fecha de vencimiento
I
N
F
O
R
M
A
C
I
O
N
Procesa
información
Membresía (tipo y vencimiento)
43
Caso de Uso 6 Usuario FIGURA 2.27. DIAGRAMA CASO DE USO – USUARIO-FACTURAS
FACTURAS
CLIENTESCCLIENTE
SCCLIENTES Ingresa datos
clientes
Ingresa
Membresía / Servicio
o Producto
Ingresa forma
de pago
Imprime
factura
44
2.6.6. Descripción Caso de Uso 6
NOMBRE Usuario – Facturas
ACTORES Usuario
FUNCIÓN El usuario ingresará datos del cliente en la factura, el producto
o servicio a comprar, detalla la forma de pago e imprime la
factura
2.6.6.1. Escenarios 2.6.6.1.1. Ingresa datos factura y ya existe
2.6.6.1.2. Imprime factura
2.6.6.2. CLASES 2.6.4.2.1. Factura (datos cliente)
2.6.4.2.2. Imprime-factura
45
2.6.6.3. Representación Clases Crea Factura FIGURA 2.28. CREA FACTURA Crea Imprime-Factura FIGURA 2.29. CREA IMPRIME-FACTURA
Envía datos
Existe
I
N
F
O
R
M
A
C
I
O
N
Procesa
información
Factura
Envía datos
Visualiza Factura
elaborada
I
N
F
O
R
M
A
C
I
O
N
Procesa
información
Imprime-Factura
46
2.7. DIAGRAMA OBJETOS RELACIÓN
Petición
Información
Presentación
de Reportes
Verificación
Horarios
Administrador
Base de
Datos
PC
Reportes
FIGURA 2.30. DIAGRAMA OBJETO RELACIÓN
47
2.8. DIAGRAMA ORIENTADO A OBJETOS
Nombre = ”Francisco”
Cédula = 0919759870
Tipo Membresía =
Mensual
objeto Objeto
Valor del
Atributo
enlace
COUNTER
SERVICIO
DE
COMIDA
SERVICIOS
PT/PL/BRO/MASAJES/
PARQUEO
COMPAÑÍA
CÉDULA CEDULA
Persona
FIGURA 2.31. DIAGRAMA ORIENTADO A OBJETOS
48
CAPITULO 3
3. DISEÑO
3.1. Diseño de datos
Objetos
Administrador
Atributos
Nombre del Administrador Contraseña
Asistencia
Objetos
Asistencia
Atributos
Numero Codigosecuen Nombre Fecha Hora
49
Objetos
Bronceados
Atributos
Numero Numerocaja Cliente Sesion Horainicial Horafinal Tipomembresia Comentario Fecha
Bronceados
Objetos
Cabecera _ factura
Atributos
Numero Tipo Sucursal Caja Numerocaja Fecha Cliente Vendedor CajeroTotal Hora Comentario Observacion
Porcedescto1 Porcedescto2
Porceiva Subtotal Descuento1
Descuento2
Impuesto Impreso
Cabecera _ factura
50
Objetos
Cabecera_Inventario
Atributos numero Tipo Sucursal Caja Numerocaja Tipoingreso Proveedor Subtotalprecio Ivaprecio Totalprecio Subtotalcosto Ivacosto Totalcosto Fecha Hora Usuario Observaciones Impreso Eliminados
Cabecera_Inventario
Objetos
Caja
Atributos
Codcaja Descripcion Estado
Caja
51
Objetos
Combo_Cabecera
Atributos
numero Codcombo Nombre Precio Estado Fecha_creacion Fecha_mod
Combo_Cabecera
Objetos
Combo_Detalle
Atributos
numero Codcombo Codprodserv Estado Cantidad Costo Fecha_creacion Fecha_mod Total Precio Descuento
Combo_Detalle
52
Objetos
Detalle_Factura
Atributos
Id (numero) Numerocab Tipo Sucursal Caja Numerocaja Codigoproducto Fecha Cantidad Total1 Total2 Descuento1 Descuento2 Valordescuento1 Valordescuento2 Precio Costo Iva Hora
Detalle_Factura
53
Objetos
Detalle_Inventario
Atributos
Numero Numerocab Tipo Sucursal Caja Numerocaja Codigoproducto Cantidad Precio Costo Totalp Totalc Iva Fecha Hora
Detalle_Inventario
Objetos
Existencias
Atributos
Numero Tipo Sucursal Caja Numerocaj Numerocab Codigo Fecha Cantidad
Existencias
54
Objetos
Horarios
Atributos
Tipo Nombre Codigo Descripcion Horainicial Horafinal
Horarios
Objetos
Locker
Atributos
Id (numero) Numerocaja Cliente Fecha Tipomembresia Comentario
Locker
55
Objetos
Modulo
Atributos
Codmodulo Descripcion Estado
Modulo
Objetos
Masajes
Atributos
Id (numero) Numerocaja Cliente Masajista Sesion Horainicial Horafinal Tipomembresia Comentario Fecha
Masajes
56
Objetos
Opciones_Por_Modulo
Atributos
Codopcion Codmodulo Codopcxmod Descripcion Opcformulario Opcobservacion Opcfechacreac Opcestado Codusul Pci
Opciones_Por_Modulo
57
Objetos
Pagos_Factura
Atributos
Numero Numerocab Tipo Sucursal Caja Numerocaja Fecha Formapago Porcobrar Valorrecibido Codigotarjeta Numerotarjeta Nombrecliente Telefonotarjeta Lote Fechacheque Codigobanco Numerocheque Ctacte Nombreempleado Cedulaempleado Cancelado Hora
Pagos_Factura
58
Objetos
Parqueo
Atributos
numero Numerocaja Cliente Fecha Horainicial Tipomembresia Comentario
Parqueo
Objetos
Parametros
Atributos
Nombrempresa Direccion Porcentajeiva Telefonoemp Ruc Porcentdescto Sucursal Caja Secuencia Ruta
Parametros
60
Objetos
Persona
Atributos
Codpers Codigosecuen Cedula Codtipoper Pernombre Perapellido Perdireccion Pertelefono Permail Perfax Codciudad Codzona Fechaingreso Fechasalida Percomentario Fechamodif Codempl Perdescto Fechanac Perestdcivil Persexo Perestado Perempresa Perruc Tipo
Persona
61
Objetos
Persona_Trainer
Atributos
Numero Numerocaja Cliente Personal Sesion Horainicial Horafinal Tipomembresia Estado Comentario Fecha
Persona_Trainer
Objetos
Pilates
Atributos
Numero Numerocaja Cliente Pilates Sesion Horainicial Horafinal Tipomembresia Estado Comentario Fecha
Pilates
62
Objetos
Platos_Cabecera
Atributos
Numero Codplato Codprodserv Nombre Precio Estado Fecha_creacion Fecha_mod Costo
Platos_Cabecera
Objetos
Platos_Detalle
Atributos
Numero Codplato Codprodserv Estado Cantidad Costo Fecha_creacion Fecha_mod Precio Medida Total
Platos_Detalle
63
Objetos
Producto_Serv
Atributos
Codprodserv Codpadre Nombre Protipo Codestado Profecing Proiva Proprecio Proprecio2 Proprecio3 Prodesc Profechmodif Prostock Descripcion Costo Tipomembre Dias Estado
Producto_Serv
64
Objetos
Proveedor
Atributos
Codigo Cedula Codtipoprov Prorsocial Proobservacion Estado
Proveedor
Objetos
Secuencias
Atributos
Secuencial Tipo Sucursal Caja Numero
Secuencias
65
Objetos
Sicag_Busquedas
Atributos
Gen_tabla Gen_columna Gen_descripcion Gen_tipo Gen_longitud Gen_observacion
Sicag_Busquedas
Objetos
Sucursal
Atributos
Codsucur Descripcion Estado
Sucursal
66
Objetos
Tarjetas_Credito
Atributos
Codtarjcred Descripcion Abreviatura Estado Codbanco
Tarjetas_Credito
Objetos
Tipo_Banco
Atributos
Codtipobanko Descripcion Estado
Tipo_Banco
67
Objetos
Tipo_Persona
Atributos
CODTIPOPERS DESCRIPCION
Tipo_Persona
Objetos
Usuario
Atributos
Codusu Codcedula Usupassword Usuuser Usufeccreac Usuestado
Usuario
Objetos
Detalle_Zona
Atributos
Numero Codigozona Codigociudad Nombreciudad Estadociudad
Detalle_Zona
69
3.3. Diagrama de contexto de arquitectura y funcionalidad del proyecto
FIGURA 3.2. DIAGRAMA DE CONTEXTO DE ARQUITECTURA Y FUNCIONALIDAD DEL PROYECTO
SISTEMA
CONTROL DE
ACCESO A
GIMNASIO
COUNTER
PRESENTACIÓN
DE LA
INFORMACIÓN
ADMINISTRADOR
(SERVIDOR)
RELOJ
BIOMÉTRICO
BASE DE
DATOS
Ingreso de la
Información
Refleja Situación del
socio
Ve como funciona el
sistema
Salida de la Información
Ingreso y salida de la información del
sistema y reloj
70
3.4. Diagrama arquitectónico de flujo de datos
FIGURA 3.3. DIAGRAMA ARQUITECTÓNICO DE FLUJO DE DATOS 1
INTERFAZ CON ADMINISTRADOR REPORTES
PRESENTACION DE INFORMACIÓN
BASE DE DATOS
PETICIÓN
REPORTE
SALIDA DE
INFORMACIÓN
PETICIÓN DE REPORTE
INFORMACIÓN DE REPORTE
71
INTERFAZ CON ADMINISTRADOR
PERSONAL TRAINER
PRESENTACION DE INFORMACIÓN
BASE DE DATOS
PETICIÓN
PERSONAL TRAINER
SALIDA DE
INFORMACIÓN
PETICIÓN DE PERSONAL TRAINER
INFORMACIÓN DE PERSONAL TRAINER
FIGURA 3.4. DIAGRAMA ARQUITECTÓNICO DE FLUJO DE DATOS 2
72
INTERFAZ CON ADMINISTRADOR
FACTURA PRESENTACION DE INFORMACIÓN
BASE DE DATOS
PETICIÓN
FACTURA
SALIDA DE
INFORMACIÓN
PETICIÓN DE FACTURA
INFORMACIÓN DE FACTURA
FIGURA 3.5. DIAGRAMA ARQUITECTÓNICO DE FLUJO DE DATOS 3
74
3.5. Diseño de Interfaz
La interfaz se la realizó pensando en los usuarios que la manejarán,
con la finalidad de que sea totalmente interactiva y de fácil manejo.
Trabajamos con las formas, declarando objetos con sus respectivas
clases .
Las pantallas realizadas se las apreciará en el manual de usuario.
75
INICIO
Ingreso de Administrador
Ingreso de Login
Login es correcto si o no?
Ingreso al Sistema Gimnasio
Ver Diario de Ventas
Desea Diario
De Ventas
texto
Diario de Ventas texto
Diario de Ventas gráfico
FIN
SI
NO
3.6. Diseño a nivel de componentes
FIGURA 3.6. DISEÑO A NIVEL DE COMPONENTES 1
76
INICIO
Ingreso de Administrador
Ingreso de Login
Login es correcto si o no?
Ingreso al Sistema Gimnasio
Ver comportamiento de usuario
Desea ver
comportamiento
de usuario
Comportamiento de usuario gráfico
FIN
SI
NO
Comportamiento de usuario texto
FIGURA 3.7. DISEÑO A NIVEL DE COMPONENTES 2
77
CAPITULO 4
4. DESARROLLO Y PRUEBA DEL SISTEMA 4.1. Desarrollo
Una vez que concluimos el diseño procedimos a la programación con
la herramienta VISUAL BASIC.NET 2003, SQL SERVER 2000 y
CRISTAL REPORT, es decir dimos paso a la codificación de todas
las especificaciones de las dos etapas de análisis y diseño.
Se procedió a la creación de la Base de Datos, de las tablas,
procedimientos, definimos las clases.
El sistema consta de los siguientes módulos:
o Módulo Archivo
o Módulo Seguridad
o Módulo de Facturación
o Módulo de Inventario
La codificación la encontramos en el manual técnico
78
4.2. Pruebas
Las pruebas se han realizado acorde a las necesidades que se nos
presentaron en el desarrollo del sistema, se fueron coordinando las
relaciones entre las tablas, se fueron creando usuarios y claves donde
se pudo definir la seguridad que se le estaba dando al sistema y a la
base de datos. Una vez finalizado todo el sistema procedimos a
realizar la prueba con el reloj biométrico y la huella digital
comprobando que el sistema cumple a cabalidad con todos los
requerimientos planteados.
79
CONCLUSIONES
Con el desarrollo del sistema los gimnasios contarán con información
oportuna y veraz, satisfaciendo la necesidad de registro diario de las
operaciones de la institución
Se generaran procesos en línea, brindando flexibilidad y crecimiento
de sus datos, manejando grandes volúmenes de información,
facilitando así el trabajo del counter a la llegada de un socio nuevo
Se brindará un mejor servicio a los socios
Se reducirá el tiempo de ciclo del proceso, eliminando transportes y
demoras ocasionadas por cuellos de botella
80
RECOMENDACIONES
El gimnasio debe proporcionar computadoras con las características
detalladas en el presente manual, para un óptimo rendimiento
Se debe dar soporte al usuario para familiarizarlo con el sistema
Se deberá adecuar el sistema a las necesidades prioritarias de los
usuarios.
81
PRESUPUESTO APROXIMADO PARA EL DESARROLLO DEL
SISTEMA
HUMANO $ 8.400
2 Desarrolladores y/o Analistas ($ 350 mes) $8.400
HARDWARE $ 5.830
• 2 PC con las siguientes características: $1.500
512 MB de RAM
Mínimo 40 GB de disco duro
Procesador Pentium IV de 2.8 GByte
Monitor de 15’
• 1 PC Servidor con las siguientes características: $1050
1 GB de RAM
Mínimo 80 GB de disco duro
Procesador Pentium IV de 3 GHz
Monitor de 15’
• 1 Impresora Lexmark $ 65
• 1 Flash Memory 256 Mbyte $ 50
• 1 Reloj Biometrico $ 2890
• 1 Scanner Metrologic $ 275
82
SOFTWARE $ 7.700
Licencias (Valor Promedio) para los siguientes Software:
• Visual Basic.Net 2003 $1.200
• SQL Server 2000 $2.000
• Sistema Operativo Windows XP $1.500
• Windows 2003 Server $3.000
TOTAL $21.930
UNIVERSIDAD DE GUAYAQUIL
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
Sistema para Controlar el Acceso a Gimnasios
TESIS DE GRADO
Previo a la Obtención del Título de:
INGENIERO EN SISTEMAS COMPUTACIONALES
Preliminares, Análisis
Autores:
Mariuxi Rodríguez Jurado Richard Sánchez Pincay
GUAYAQUIL – ECUADOR
Año: 2007
AGRADECIMIENTO
Nuestro agradecimiento está
dedicado especialmente a Dios,
por su bondad infinita, por su
comprensión y por su sabiduría.
A nuestros padres por habernos
guiado por el camino del bien, a
nuestros hermanos, esposo (a),
hijos, amigos y demás familiares
que contribuyeron dándonos
fuerza y apoyo desde la escuela,
colegio y universidad.
DEDICATORIA
“A ti mi Señor Jesús, por tu
bondad infinita”.
Todo nuestro esfuerzo y en
especial nuestro triunfo en esta
etapa estudiantil y en todo el
camino recorrido se lo dedicamos
a nuestros padres, que con su
lucha diaria y dedicación lograron
convertirnos en lo que hoy somos,
personas y profesionales de bien.
Extensiva esta dedicatoria a
nuestra familia, esposo (a), hijos,
que nos dieron una mano amiga,
apoyándonos en todo momento.
TRIBUNAL DE GRADUACIÓN
__________________________ _____________________
Ing. Xxx Ing. Xxxxx
Decano Director de Tesis
__________________________ ______________________
Ing. Xxxxx Ing. Xxxx
Vocal Vocal
_________________________
Ab.
Secretario
DECLARACIÓN EXPRESA
“La autoría de la tesis de grado corresponde exclusivamente los suscrito(s),
perteneciendo a la Universidad de Guayaquil los derechos que generen la
aplicación de la misma”
(Reglamento de Graduación de la Carrera de Ingeniería en Sistemas
Computacionales, Art. 26).
RESUMEN
El sistema de control de acceso desarrollado se basa en la necesidad de los
gimnasios de poder controlar el volumen de socios, sus ingresos, sus
consumos y de esa manera poder reflejar en sus balances la situación
financiera.
Nuestro modelo a seguir es el gimnasio Gold´s Gym quien cuenta con un
sistema bajo la plataforma Windows con el programa FoxPro 2.6 que no
permitía generar procesos en línea lo que ocasionaba pérdida de tiempo y
malestar en los socios nuevos para ingresar al gimnasio -se hacía lento y
tedioso- debido a que cuando el número de socios se incrementaba, el
control se hacía mas dificultoso (no presenta flexibilidad) lo que implicaba el
caos total. Esto también se debe a la falta de comunicación entre los
departamentos.
Para modificar todas las dificultades presentadas en los párrafos anteriores
hemos propuesto un Sistema de Control de Acceso a Gimnasios creado bajo
la plataforma Visual Basic. Net 2003 y base de datos SQL Server 2000, de
esta manera aseguramos que la información se manejará oportunamente,
existiendo comunicación entre los departamentos para que se generen
procesos en línea, flexibilidad y crecimiento de sus datos, manejando así
grandes volúmenes de información.
Se podrá controlar, medir, conocer y comparar el ingreso de los socios
mediante sus fechas de vencimiento que se generan por los pagos que
hayan efectuado; utilizando para su ingreso la huella digital o una tarjeta de
identificación.
Los efectos en los resultados de facturación se darán a conocer en los
informes, analizando el impacto económico que ellos representen.
INDICE GENERAL
Agradecimiento II
Dedicatoria III
Tribunal de Graduación IV
Declaración Expresa V
Resumen VI
Índice General VII
PARTE I
INTRODUCCIÓN
CAPÍTULO 1
1. PRELIMINARES 1 1.1. Antecedentes 1
1.2. Ámbito y Problemática 1-2
1.3. Solución de la Problemática 3
1.4. Definición del Proyecto 3-4
1.5. Objetivos del Proyecto 4
1.5.1 Objetivos Generales 4
1.5.2. Objetivos Específicos 4-6
1.6. Alcance del Proyecto 6
1.6.1 Módulo Archivos 7
1.6.2 Módulo Seguridad 7
1.6.2.1. Mantenimiento 7
1.6.2.2. Procesos 7
1.6.2.3. Consultas / Reportes 8
1.6.3. Modulo Facturación 8
1.6.3.1. Mantenimiento 8-9
1.6.3.2. Procesos 9-10
1.6.3.3. Consultas / Reportes 10-11
1.6.4. Modulo Inventario 11
1.6.4.1. Mantenimiento 11
1.6.4.2. Procesos 11
1.6.4.3. Consultas / Reportes 12-13
1.7.Recursos para el desarrollo del Proyecto 13
1.7.1 Hardware 13-14
1.7.2 Software 14
1.8 Metodología 14-15
CAPÍTULO 2
2. Análisis 16
2.1. Levantamiento de Información 16
2.2. Recopilación de los Requerimientos 16-17
2.3. Análisis de los Requerimientos 17-18
2.4. Diagrama transición de Datos 19
2.5. Diagramas flujo de datos 20
2.5.1. Ingreso de Clientes 20
2.5.2. Acceso a servicios gimnasio 21
2.5.3. Servicio-compra de un plato en el gimnasio 22
2.6. Diagramas casos de uso 1-6 23-43
2.6.1. Descripción Caso de Uso 1 24
2.6.1.1. Escenarios 24
2.6.1.2. Clases 25
2.6.1.3. Representación Clases 25-27
2.6.2. Descripción Caso de Uso 2 29
2.6.2.1. Escenarios 29-30
2.6.2.2. Clases 30
2.6.2.3. Representación Clases 30-32
2.6.3. Descripción Caso de Uso 3 34
2.6.3.1. Escenarios 34
2.6.3.2. Clases 34
2.6.3.3. Representación Clases 35-36
2.6.4. Descripción Caso de Uso 4 37
2.6.4.1. Escenarios 38
2.6.4.2. Clases 38
2.6.4.3. Representación Clases 38-39
2.6.5. Descripción Caso de Uso 5 40
2.6.5.1. Escenarios 41
2.6.5.2. Clases 41
2.6.5.3. Representación Clases 41-42
2.6.6. Descripción Caso de Uso 6 44
2.6.6.1. Escenarios 44
2.6.6.2. Clases 44
2.6.6.3. Representación Clases 45
2.7. Diagrama objeto relación 46
2.8. Diagrama Orientado a objetos 47
CAPITULO 3
3. Diseño 48
3.1. Diseño de Datos 48-67
3.2. Diagrama entidad-relación 68
3.3. Diagrama de contexto de arquitectura y
funcionabilidad del proyecto 69
3.4. Diagrama arquitectónico de flujo de datos 70-72
3.5. Diseño de Interfaz 74
3.6. Diseño a nivel de componentes 75-76
CAPITULO 4
4. Desarrollo y Prueba del Sistema 77
4.1. Desarrollo 77
4.2. Pruebas 78
INDICE DE FIGURAS
Figura 2.1. Diagrama de transición de datos 19
Figura 2.2. Diagrama ingreso de cliente 20
Figura 2.3. Acceso a servicios gimnasio 21
Figura 2.4. Servicios-compra de un plato en gimnasio 22
Figura 2.5. Diagrama caso de uso-Administrador
del sistema 23
Figura 2.6. Crea Usuarios 25
Figura 2.7. Crea Claves 26
Figura 2.8. Crea Sucursales 26
Figura 2.9. Crea Cajas 27
Figura 2.10. Diagrama caso de uso-Supervisor del sistema 28
Figura 2.11. Crea Productos 30
Figura 2.12. Crea Tarjetas de Crédito 31
Figura 2.13. Crea Combos 31
Figura 2.14. Crea Platos 32
Figura 2.15. Crea Provincias y Ciudades 32
Figura 2.16.Diagrama caso de uso-usuario del sistema(cajero) 33
Figura 2.17. Crea Socio 35
Figura 2.18. Crea Facturas 35
Figura 2.19. Crea Devoluciones 36
Figura 2.20. Crea Ticket de Servicio 36
Figura 2.21. Diagrama caso de uso-cliente lectora de huellas 37
Figura 2.22. Crea Lectora de Huellas 38
Figura 2.23. Crea Datos Cliente 39
Figura 2.24. Diagrama caso de uso-usuario datos cliente 40
Figura 2.25. Crea Cliente 41
Figura 2.26. Crea Membresía (Tipo y Vencimiento) 42
Figura 2.27. Diagrama caso de uso-facturas 43
Figura 2.28. Crea Factura 45
Figura 2.29. Crea Imprime-Factura 45
Figura 2.30. Diagrama Objeto relación 46
Figura 2.31. Diagrama orientado a objetos 47
Figura 3.1 Diagrama entidad-relación 68
Figura 3.2. Diagrama de contexto de arquitectura y
funcionabilidad del proyecto 69
Figura 3.3. Diagrama arquitectura de flujo de datos 1 70
Figura 3.4. Diagrama arquitectura de flujo de datos 2 71
Figura 3.5. Diagrama arquitectura de flujo de datos 3 72
Figura 3.6. Diseño a nivel de componentes 1 75
Figura 3.7. Diseño a nivel de componentes 2 76
INTRODUCCIÓN
El Sistema desarrollado ayudará a controlar, medir, conocer y comparar el
ingreso de socios a los gimnasios.
La solución que se plantea es que cada uno de estos lugares maneje la
información oportunamente y que no se vean opacados por la falta de
comunicación entre los departamentos, para que se generen procesos en
línea, flexibilidad y crecimiento de sus datos, manejando así grandes
volúmenes de información.
Para un gimnasio ya establecido se procederá, a demás, a eliminar la
redundancia de datos.
El sistema se lo ha desarrollado bajo la plataforma Visual Basic.Net 2003 y
base de datos SQL Server 2000, además utilizamos Cristal Report Designer
7.0.
Debemos contar con una máquina que funcionará como servidor principal,
debe tener las siguientes características:
▪ 512 MB de Memoria RAM (o superior)
▪ 80 GB de disco (o superior, de preferencia disco SCSI)
▪ Procesador Pentium IV de 3 GH (o superior)
▪ Monitor de 15”
Las máquinas donde funcionará el sistema deben tener como mínimo las
siguientes características:
▪ 512 MB de Memoria RAM
▪ 40 GB de disco duro
▪ Procesador Pentium IV de 2.8 GH
▪ Monitor de 15”
▪ 1 Impresora de inyección a tinta
▪ 1 Flash Memory 512 Mb
▪ 1 CD-Writer
También necesitaremos un Reloj Biométrico y una lectora de código de
barra. Así como, la adquisición de las licencias para los sistemas
operativos y para la base de datos.
Además, las máquinas de usuario deberán tener instalado CRISTAL
REPORTS 7.0.
Se podrán visualizar los reportes tales como:
▪ Reportes por fechas
▪ Reportes por códigos
▪ Reportes históricos
▪ Reportes de auditoria
▪ Reportes de ventas
Para poder ingresar al sistema el administrador deberá crear usuarios con
claves, de tal manera que cada usuario digite su ID y contraseña. Además,
se le definirá los campos a los cuales puede acceder, existiendo restricciones
para muchos.
De esta manera controlaremos los movimientos de cada usuario en el
Sistema.
1
CAPITULO 1
1. TABLAS BASE DE DATOS
1.1. DICCIONARIO DE DATOS
• Tabla ASISTENCIA
CAMPO TIPO
ID (NUMERO) numeric (9)
CODIGOSECUEN nvarchar (13)
NOMBRE nvarchar (50)
FECHA datetime (8)
HORA char (10)
Esta tabla guarda los datos de ingresos de socios al gimnasio, a
continuación describimos sus campos:
- ID (NUMERO): Es el código secuencial
- CODIGOSECUEN: Contiene el numero de cédula del socio,
usuario, proveedor, empleado
- NOMBRE: Es el nombre del socio, usuario, proveedor o
empleado
- FECHA: Es la fecha en la que ingresa (pone su huella)
- HORA: Es la hora en la que pone su huella
2
• Tabla BRONCEADOS
CAMPO TIPO
ID (NUMERO) numeric (9)
NUMEROCAJA numeric (9)
CLIENTE nvarchar (50)
SESION nvarchar (3)
HORAINICIAL nvarchar (8)
HORAFINAL nvarchar (8)
TIPOMEMBRESIA int (4)
COMENTARIO nvarchar (40)
FECHA datetime (8)
Tabla transaccional que registra los datos de todos los bronceados
efectuados a un socio, a continuación describimos sus campos:
- ID (NUMERO): Es el código secuencial
- NUMEROCAJA: Es el número a guardar en la tabla secuencial
- CLIENTE: Es el nombre del cliente que desea el servicio
- SESION: Es el tipo de servicio
- HORAINCIAL: Es la hora en que debe inciar el cliente a tomar
el servico
- HORAFINAL.: Es la hora en que finaliza el servicio que escogió
el cliente
- TIPOMEMBRESIA: Es la membresía que tiene el socio en su
catálogo de cliente
3
- COMENTARIO: Se puede describir cualquier novedad, es un
espacio para detallar algo en particular
- FECHA: Es la fecha de registro (operación)
• Tabla CABECERA_FACTURA
CAMPO TIPO
ID(NUMERO) int (4)
TIPO char (2)
SUCURSAL char (2)
CAJA char (3)
NUMEROCAJA numeric 9(10,0)
FECHA datetime (8)
CLIENTE nvarchar (10)
VENDEDOR nvarchar (10)
CAJERO nvarchar (10)
COMENTARIO nvarchar (1500)
OBSERVACION nvarchar (100)
PORCEDESCTO1 decimal 9(18,0)
PORCEDESCTO2 decimal 9(18,0)
PORCEIVA decimal 9(18,0)
SUBTOTAL float (8)
DESCUENTO1 float (8)
DESCUENTO2 float (8)
IMPUESTO float (8)
TOTAL float (8)
IMPRESO char (1)
HORA char (10)
4
Esta tabla guarda las transacciones de ventas efectuadas por los
vendedores
- ID (NUMERO): Es el código secuencial
- TIPO: Es el tipo de la transacción en este caso es NV (nota de
venta)
- SUCURSAL: Se identifica en que local se está realizando la
transacción.
- CAJA: Es el número que corresponde a la máquina donde se
efectua la operación
- NUMEROCAJA: Es el número secuencial que corresponde a
esa sucursal y a esa caja
- CLIENTE: Es el número de cédula de la persona a la que está
facturando
- VENDEDOR: Es el código de la persona que realiza la factura
- CAJERO: Es el Códgio del cajero que realiza la factura
- COMENTARIO: Se puede describir cualquier novedad, es un
espacio para detallar algo en particular
- OBSERVACIÓN: Parecido al campo comentario, se puede
detallar alguna novedad
- PORCEDESCTO1: Es el porcentaje de descuento que
corresponden a los productos o servicios que se están
facturando
5
- PORCEDESCTO2: Es el porcentaje de descuento aplicado a
toda la factura
- PORCEIVA: Es el porcentaje asignado al rubro IVA (de acuerdo
a lo vigente por la ley)
- SUBTOTAL: Es el valor que refleja sin iva
- DESCUENTO1: Refleja el valor correspondiente al porcentaje
designado en descuento1
- DESCUENTO2: Refleja el valor correspondiente al porcentaje
designado en descuento 2
- IMPUESTO: Es el valor del IVA (de acuerdo al % vigente)
- TOTAL: Es el valor neto a pagar con descuentos e iva
- IMPRESO: Es un valor bolean correspondiente a si la factura
fue impresa o no
- HORA: Es la hora en que se hizo la transacción (Factura)
• Tabla CABECERA_INVENTARIO
CAMPO TIPO
ID(NUMERO) numeric 9(10,0)
TIPO char (2)
SUCURSAL int (4)
CAJA char (3)
NUMEROCAJA numeric 9(18,0)
TIPOINGRESO char (50)
6
PROVEEDOR nvarchar (15)
SUBTOTALPRECIO float (8)
IVAPRECIO float (8)
TOTALPRECIO float (8)
SUBTOTALCOSTO float (8)
IVACOSTO float (8)
TOTALCOSTO float (8)
FECHA datetime (8)
HORA datetime (8)
USUARIO char (10)
OBSERVACIONES nvarchar (1500)
IMPRESO bit (1)
ELIMINADOS bit (1)
Esta tabla guarda todas las transacciones de ingreso y egreso de
bodega, a continuación describimos sus campos:
- ID (numero): Es el código secuencial
- TIPO: Define si es un ingreso o egreso de bodega mediante la
nomenclatura CO y SA, respectivamente
- SUCURSAL: Sirve para identificar en que lugar se
- CAJA: Es el número que corresponde a la máquina donde se
efectua la operación
- NUMEROCAJA: Es el número secuencial que corresponde a
esa sucursal y a esa caja
7
- TIPOINGRESO: Se refiere a la clasificación que pueden se:
por transferencia, importación, compras localels, donaciones
- PROVEEDOR: Es el nombre de la persona que provee el
producto
- SUBTOTALPRECIO: Es el valor que se refleja sin iva para el
cliente
- IVAPRECIO: Es el valor que resulta de sacar el valor del iva
asignado por ley a subtotal precio
- TOTALPRECIO: Es la suma de la cantidad del subtotalprecio
con el ivaprecio
- SUBTOTALCOSTO: Es el costo que se refleja y el que tiene
que pagar el gimnasio por la compra al proveedor
- IVACOSTO: Es el valor que resulta de sacar el porcentaje
correspondiente a subtotalcosto
- TOTALCOSTO: Es la suma de subtotalcosto con ivacosto
- FECHA: Es cuando se realiza la transacción (ingreso o egreso)
- HORA: Es la hora en que se realiza la transacción
- USUARIO: Es quien realiza la transacción puede ser el
administrador o cualquier otro usuario que exista
- OBSERVACIONES: Se puede describir cualquier novedad, es
un espacio para detallar algo en particular
8
- IMPRESO: Valor boolenao para ver si se fue a imprimir la
factura o no
- ELIMINADOS: Cuando se elimina (se anula) la factura
• Tabla CAJA
CAMPO TIPO
ID (CODCAJA) int (4)
DESCRIPCION nvarchar (50)
ESTADO char (2)
Esta tabla guarda las caracteristicas de las diferentes cajas que se
crean, estos pueden ser su estado, el nombre. A continuación
detallamos sus campos:
- ID (CODCAJA): Es el código secuencial
- DESCRIPCIÓN: Es la descripción de la caja
- ESTADO: Si está activa o inactiva
• Tabla COMBO_CABECERA
CAMPO TIPO
ID (NUMERO) int (4)
CODCOMBO int (4)
NOMBRE nvarchar (50)
9
PRECIO decimal 9 (18,2)
ESTADO char (2)
FECHA_CREACION datetime (8)
FECHA_MOD datetime (8)
Esta tabla guarda la información referente a los combos que se
creen por ejemplo el nombre, precio. A continuación describimos sus
campos:
- ID (numero): Es el codigo secuencial
- Codcombo: Es el código del combo que se crea
- Nombre: Es el nombre que se le de al combo que se crea
- Precio: Es el precio del combo que se creó
- Estado: Especifica si el combo está activo o inactivo
- Fecha_creación: Refleja la fecha de creación del combo
- Fecha_mod: Refleja la fecha en que se modifica el combo
• Tabla COMBO_DETALLE
CAMPO TIPO
ID (NUMERO) int (4)
CODCOMBO int (4)
CODPRODSERV int (4)
ESTADO char (2)
CANTIDAD numeric 9(18,0)
10
COSTO float (8)
FECHA_CREACION datetime (8)
FECHA_MOD datetime (8)
TOTAL float (8)
PRECIO float (8)
DESCUENTO Flota (8)
Esta tabla guarda el detalle de la creación del combo como por
ejemplo en que consiste el combo de que estará formado. A
continuación describimos sus campos:
- ID (numero): Es el código secuencial
- Codcombo: Es un código secuencial que relaciona la cabecera
con el detalle del combo
- Codprodserv: Es el código del producto, en este caso el nombre
del combo
- Estado: Si está activo o inactivo
- Cantidad: Es el número de productos que contendrá el combo
- Costo: Es el valor total de los componentes del combo
- Fecha_creación: Es la fecha en que se crea el combo
- Fecha_mod: Es la fecha en que se modifica el combo
- Total: Es el resultado que muestra dependiendo de la cantidad
del producto por su precio unitario
- Precio: Es cuanto costará el combo al público
11
- Descuento: Es el porcentaje asignado para el descuento en
cada uno de los productos que se escoge para formar el combo
• Tabla DETALLE_FACTURA
CAMPO TIPO
ID (NUMERO) numeric 9(10,0)
NUMEROCAB numeric 9(18,0)
TIPO char (2)
SUCURSAL char (3)
CAJA char (3)
NUMEROCAJA numeric 9(18,0)
CODIGOPRODUCTO nvarchar (50)
FECHA datetime (8)
CANTIDAD numeric 9(18,0)
TOTAL1 float (8)
TOTAL2 float (8)
DESCUENTO1 float (8)
DESCUENTO2 float (8)
VALORDESCUENTO1 float (8)
VALORDESCUENTO2 float (8)
PRECIO float (8)
COSTO float (8)
IVA float (8)
HORA char (10)
12
Esta tabla guarda las transacciones de las facturas (productos) , a
continuación describimos sus campos:
- ID (NUMERO): Es el número secuencial
- NUMEROCAB: Código que relaciona la cabecera_factura con el
detalle_factura
- TIPO: Define la nomenclatura de la transacción efectuada
- SUCURSAL: Se refiere a la sucursal donde se está realizando
la transacción
- CAJA: Es el número que corresponde a la máquina donde se
efectua la operación
- NUMEROCAJA: Es el número secuencial que corresponde a
esa sucursal y a esa caja
- CODIGOPRODUCTO: Es el código del producto/servicio que se
está facturando
- FECHA: Es la fecha en que se emite la factura
- CANTIDAD: Es el numero de cuanto desea comprar
- TOTAL1: Es el valor del subtotal
- TOTAL2: Es el valor del sutotal menos el valor del IVA
- DESCUENTO1: Es el porcentaje del descuento de los
productos en linea
- DESCUENTO2: Es el porcentaje del descuento a toda la factura
13
- VALORDESCUENTO1: Es el valor del descuento de los
productos en línea
- VALORDESCUENTO2: Es el valor del descuento a toda la
factura
- PRECIO: Es la suma a pagar o en nuestro caso a cobrar
- COSTO: Es el valor que cancela el gimnasio por adquirir algo
- IVA: Es el porcentaje del 12% que se le suma al preciototal de
la compra
- HORA: Es la hora en la que se realiza la transacción
• Tabla DETALLE_INVENTARIO
CAMPO TIPO
ID (NUMERO) numeric 9(10,0)
NUMEROCAB numeric 9(18,0)
TIPO char (2)
SUCURSAL int (4)
CAJA char (3)
NUMEROCAJA numeric 9(18,0)
CODIGOPRODUCTO nvarchar (50)
CANTIDAD numeric 9(18,0)
PRECIO float (8)
COSTO float (8)
TOTALP float (8)
TOTALC float (8)
14
IVA float (8)
FECHA datetime (8)
HORA nvarchar (50)
Esta tabla guarda los datos relacionados a los ingresos y egresos de
los productos, servios, platos, a continuación describimos sus
campos:
- ID (NUMERO): Es un código secuencial
- NUMEROCAB: Es el codigo que relaciona la
cabecera_inventario con el detalle_inventario
- TIPO: Es el tipo de la transacción que se está realizando
- SUCURSAL: Es donde se está realizando la transacción en cual
local
- CAJA: Es el número que corresponde a la máquina donde se
efectua la operación
- NUMEROCAJA: Es el número secuencial que corresponde a
esa sucursal y a esa caja
- CODIGOPRODUCTO: Es un código del producto o servicio que
se está ingresando o egresando
- CANTIDAD: Es el numero (cuantos) productos o servicios
ingresan o egresan
- PRECIO: Es lo que valdrá al publico
- COSTO: Es cuanto le costará al gimnasio
15
- TOTALP: Es la suma del subtotal mas el iva del precio
- TOTALC: Es la suma del subtotal mas el iva del costo
- IVA: Es el valor correspondiente al 12% asignado para el iva
- FECHA: Es cuando se realiza la transacción
- HORA: Es la hora en la que se está realizando la transacción
• Tabla EXISTENCIAS
CAMPO TIPO
NUMERO numeric 9(18,0)
TIPO char (2)
SUCURSAL char (3)
CAJA char (3)
NUMEROCAJ numeric 9(18,0)
NUMEROCAB numeric 9(18,0)
CODIGO nvarchar (50)
FECHA datetime (8)
CANTIDAD numeric 9(18,0)
Esta tabla guarda todas las transacciones de ventas, compras,
devoluciones y salidas de bodegas para llevar el control de
inventario, a continuación describimos sus campos:
- NUMERO: Es un código secuencial
- TIPO: Es la nomenclatura de la transacción efectuada, ya sea
CO, SA, NV, DE
16
- SUCURSAL: Es donde se está realizando la transacción
- CAJA: Es el número que corresponde a la máquina donde se
efectua la operación
- NUMEROCAJA: Es el número secuencial que corresponde a
esa sucursal y a esa caja
- CODIGO: Es el código del producto
- FECHA: Es cuando se realiza la transacción
- CANTIDAD: Cuanto hay de mis productos
• Tabla HORARIOS
CAMPO TIPO
TIPO char (3)
NOMBRE nvarchar (50)
CODIGO char (3)
DESCRIPCION nvarchar (50)
HORAINICIAL nvarchar (50)
HORAFINAL nvarchar (50)
Esta tabla guarda todos los horarios designados o creados para los
diferentes servicios que ofrece el gimnasio como es de masajes,
personal trainer, pilates, bronceados, a continuación describimos sus
campos:
17
- TIPO: A que servicio se está definiendo el horario en este caso
pueden ser bronceados, masajes, pilates, personal trainer PTR,
MAS, PIL, BRO
- NOMBRE: Es el nombre del servicio
- CODIGO: Es el numero asignado a cada servicio
- DESCRIPCION: De que se está hablando
- HORAINICIAL: La hora en que inicia el servicio seleccionado
- HORAFINAL: La hora en que finaliza el servicio seleccionado
• Tabla LOCKER
CAMPO TIPO
ID (NUMERO) numeric 9(18,0)
NUMEROCAJA numeric 9(18,0)
CLIENTE nvarchar (50)
FECHA datetime (8)
TIPOMEMBRESIA int (4)
COMENTARIO nvarchar (400)
Esta tabla guarda todos los datos relacionados al servicio locker, a
continuación describimos sus campos:
- ID (NUMERO): Es el código secuencial
- NUMEROCAJA: Es el número secuencial que corresponde a
esa sucursal y a esa caja
- CLIENTE: Es el nombre de la persona que solicita el servicio
18
- FECHA: Es la fecha en que solicita el servicio
- TIPOMEMBRESIA: Es el tipo de membresía del cliente
- COMENTARIO: Se puede detallar cualquier inquietud u
observación
• Tabla MASAJES
CAMPO TIPO
ID (NUMERO) numeric 9(18,0)
NUMEROCAJA numeric 9(18,0)
CLIENTE nvarchar (50)
MASAJISTA nvarchar (10)
SESION nvarchar (10)
HORAINICIAL nvarchar (8)
HORAFINAL nvarchar (8)
TIPOMEMBRESIA int (4)
COMENTARIO nvarchar (400)
FECHA datetime (8)
Esta tabla guarda los datos relacionados al servicio masajes, a
continuación describimos sus campos:
- ID (NUMERO): Es un código secuencial
- NUMEROCAJA: Es el número secuencial que corresponde a
esa sucursal y a esa caja
- CLIENTE: Es el nombre de la persona que solicita el servicio
- MASAJISTA: Es el nombre de la persona que dará el servicio
19
- SESION: Es el tipo de servicio
- HORAINICIAL: Es la hora en que inicia el servicio
- HORAFINAL: Es la hora en que termina el servicio
- TIPOMEMBRESIA: Es el tipo de membresía que tiene el cliente
- COMENTARIO: Se puede anotar cualquier novedad
- FECHA: Es la fecha de creación del servicio
• Tabla MODULO
CAMPO TIPO
ID (CODMODULO) int (4)
DESCRIPCION nvarchar (50)
ESTADO char (2)
Esta tabla guarda los módulos del sistema: facturación, inventario y
seguridad, a continuación describimos sus campos:
- ID (CODMODULO): Es el número que identifica que tipo de
módulo es en este caso sería 1,2,3
- DESCRIPCION: Es el nombre del modulo es decir facturación,
inventario y seguridad
- ESTADO: Si se encuentran activos o inactivos
20
• Tabla OPCIONES_POR_MODULO
CAMPO TIPO
ID (CODOPCION) int (4)
CODMODULO int (4)
CODOPCXMOD Numeric 9(10,0)
DESCRIPCION nvarchar (50)
OPCFORMULARIO nvarchar (50)
OPCOBSERVACION nvarchar (50)
OPCFECHACREAC datetime (8)
OPCESTADO char (2)
CODUSUL int (4)
PCI nvarchar (50)
Esta tabla guarda los menús y submenu, a continuación describimos
sus campos:
- ID (CODOPCION): Es el numero de la opcion del menu
CODMODULO: Es el nuemro que identifica que modulo es
- CODOPCXMOD: Es el campo que relaciona la tabla módulo
con la tabla opciones_por_modulo
- DESCRIPCION: Indica el nombre del menú o submenú
- OPCFORMULARIO: Es el nombre del código del menú y
submenú al que pertenece
- OPCOBSERVACION: Es la descripción del menú o submenú
- OPCFECHACREAC: Es la fecha en la que se creo
21
- OPCESTADO: Si se encuentra activo o inactivo
- CODUSUL: Es el usuario que creo el módulo
- PCI: Es el nombre de la máquina donde se creo el nombre
• Tabla PAGOS_FACTURA
CAMPO TIPO
ID (NUMERO) numeric 9(10,0)
NUMEROCAB numeric 9(10,0)
TIPO char (2)
SUCURSAL char (3)
CAJA char (3)
NUMEROCAJA numeric 9(18,0)
FECHA datetime (8)
FORMAPAGO char (2)
PORCOBRAR float (8)
VALORRECIBIDO float (8)
CODIGOTARJETA nvarchar (50)
NUMEROTARJETA nvarchar (50)
NOMBRECLIENTE nvarchar (50)
TELEFONOTARJETA nvarchar (50)
LOTE char (10)
FECHACHEQUE datetime (8)
CODIGOBANCO nvarchar (50)
NUMEROCHEQUE nvarchar (50)
CTACTE nvarchar (50)
NOMBREEMPLEADO nvarchar (50)
CEDULAEMPLEADO char (10)
22
CANCELADO char (2)
HORA char (10)
Esta tabla guarda la forma y el detalle de pagos efectuados en una
factura ya sean estos efectivos, tarjeta, cheque o crredito, a
continuación describimos sus campos:
- ID (NUMERO)
- NUMEROCAB: Es el código que relaciona pagos_factura con la
cabecera de la factura
- TIPO: Es la nomenclatura de la transacción efecutada en este
caso PG
- SUCURSAL: Es en que sucursal se realiza la transacción
- CAJA: Es el número que corresponde a la máquina donde se
efectua la operación
- NUMEROCAJA: Es el número secuencial que corresponde a
esa sucursal y a esa caja
- FECHA: Es la fecha de elaboración de la factura
- FORMAPAGO: Es la nomenclatura respecto al pago en este
caso EF (efectivo), CH (cheque), TA (tarjeta), CR (crédito)
- PORCOBRAR: Es el valor cobrado
- VALORRECIBIDO: Solo almacena un dato si es en efectivo la
forma de pago, que nos sirve para dar el cambio
23
- CODIGOTARJETA: Es el código de la tarjeta de crédito con que
cancelan la factura
- NUMEROTARJETA: Es el número de la tarjeta de crédito del
socio que cancela
- NOMBRECLIENTE: Es el nombre del dueño de la tarjeta con
que se está cancelando
- TELEFONOTARJETA: Es el teléfono del tarjeta ambiente
- LOTE: Es el número de la tarjeta (Código)
- FECHACHEQUE: Es la fecha que tiene el cheque girado con el
que cancelan la factura
- CODIGOBANCO: Es el código del banco a que pertenece el
cheque
- NUMEROCHEQUE: Es el número del cheque con el que están
cancelando
- CTACTE: Es el número de la cuenta corriente a la que
pertenecen los cheques girados (el cheque con el que pagan)
- NOMBREEMPLEADO: Es el nombre del empleado que está
realizando la transacción
- CEDULAEMPLEADO: Es la cédula del empleado
-- CANCELADO: Es un valor boleano que representa si se efectuo
el pago o no
- HORA: Es la hora en que se realiza la transacción
24
• Tabla PARAMETROS
CAMPO TIPO
NOMBREMPRESA nvarchar (100)
DIRECCION nvarchar (150)
PORCENTAJEIVA decimal 9(18,0)
TELEFONOEMP nvarchar (20)
RUC nvarchar (13)
PORCENTDESCTO decimal 9(18,2)
SUCURSAL numeric 9(18,0)
CAJA numeric 9(10,0)
SECUENCIA nvarchar (13)
RUTA nvarchar (50)
Esta tabla guarda los parámetros basicos de la empresa, a
continuación describimos sus campos:
- NOMBREMPRESA: Es el nombre de la empresa que a
comprado el sistema
- DIRECCION: Es la dirección de la empresa que compró el
sistema
- PORCENTAJEIVA: Es el porcentaje para el iva que utilizarán
(debe ser el que rige por ley)
- TELEFONOEMP: Es el número telefonico de la empresa que
compró el sistema
25
- RUC: Es el número de ruc designado por el SRI a la empresa
que compró el sistema
- PORCENTDESCTO: Se define el porcentaje del descuento con
el que trabajará la empresa que compró el sistema
- SUCURSAL: Se definen las sucursales con las que cuenta la
empresa que compró el sistema
- CAJA: Es el número que corresponde a la máquina donde se
efectua alguna operación transaccional, ingreso
- SECUENCIA: Es un número aleatorio
- RUTA: Guarda la dirección del logo de la empresa
• Tabla PARQUEO
CAMPO TIPO
ID (NUMERO) numeric 9(18,0)
NUMEROCAJA numeric 9(18,0)
CLIENTE nvarchar (50)
FECHA datetime (8)
HORAINICIAL nvarchar (8)
TIPOMEMBRESIA char (10)
COMENTARIO nvarchar (400)
Esta tabla guarda los datos de los tickets de parqueos que se han
generado. A continuación describimos sus campos:
- ID (NUMERO): Es un número secuencial
26
- NUMEROCAJA: Es el número secuencial que corresponde a
esa sucursal y a esa caja
- CLIENTE: Es el nombre del cliente que solicita parqueo
- FECHA: Es la fecha en la cual se genera el ticket del parqueo
- HORAINICIAL: Es la hora que se define para que el cliente
haga uso del parqueo
- TIPOMEMBRESIA: Se define el tipo de membresía que tiene el
socio
- COMENTARIO: Se puede escribir cualquier novedad
• Tabla PERMISO_POR_USUARIO
CAMPO TIPO
ID (CODPERXUSU) int (4)
CODCEDULAUSU nvarchar (15)
CODOPC int (4)
ESTADO char (210)
Esta tabla guarda los permisos que el administrador crea para cada
usuario que manejará el sistema. A continuación describimos sus
campos:
- ID (CODPERXUSU): Es el código secuencial
- CODCEDULAUSU: Es el número de cédula del usuario
27
- CODOPC: Se define a que parte del sistema puede ingresar (es
decir los accesos que tiene disponible)
- ESTADO: Si el usuario está activo o inactivo
• Tabla PERSONA
CAMPO TIPO
CODPERS int (4)
CODIGOSECUEN nvarchar (13)
CEDULA nvarchar (15)
CODTIPOPER int (4)
PERNOMBRE nvarchar (50)
PERAPELLIDO nvarchar (50)
PERDIRECCION nvarchar (150)
PERTELEFONO nvarchar (10)
PERMAIL nvarchar (50)
PERFAX nvarchar (50)
CODCIUDAD int (4)
CODZONA int (4)
FECHAINGRESO datetime (8)
FECHASALIDA datetime (8)
PERCOMENTARIO nvarchar (400)
FECHAMODIF datetime (8)
CODEMPL int (4)
PERDESCTO char (2)
FECHANAC datetime (8)
PERESTDCIVIL char (2)
PERSEXO char (2)
28
PERESTADO char (2)
PEREMPRESA nvarchar (50)
PERRUC nvarchar (13)
TIPO numeric 9(18,0)
Esta tabla guarda todos los datos personales de los clientes del
gimanasio (son las personas que ingresan al gym), estos pueden ser
usuarios, clientes, proveedores
- CODPERS: Es el numero secuencial
- CODIGOSECUEN: Es un número aleatorio
- CEDULA: Es el número de cédula de la persona
- CODTIPOPER: Es para identificar si quien ingresa al gimnasio
es un usuario, cliente, proveedor. Es el número
- PERNOMBRE: Es el nombre de la persona que ingresa al
gimnasio
- PERAPELLIDO: Es el apellido de la persona que ingresa al
gimansio
- PERDIRECCION: Es la dirección de la casa de la persona que
ingresará al gimnasio
- PERTELEFONO: Es el número de telefono de la persona que
ingresará al gimnasio
- PERMAIL: Es la descripción del e-mail de la persona que
ingresará al gimnasio
29
- PERFAX: Es el número de fax de la persona
- CODCIUDAD: Es el código de la ciudad donde se encuentra
- CODZONA: Es el código de la zona donde se encuentra
- FECHAINGRESO: Es la fecha de ingreso de la persona al
gimnasio
- FECHASALIDA: Es la fecha de salida (cuando se le cumple el
tipo de membresía que adquirió en el gimnasio)
- PERCOMENTARIO: Se podrá escribir cualquier tipo de
observación
- FECHAMODIF: Es la fecha que se registra cuando se
actualizan los datos de la persona
- CODEMPL: Es el código del empleado
- PERDESCTO: Es en el caso de que hayan descuentos en el
ingreso de una persona
- FECHANAC: Es la fecha de nacimiento de la persona que
ingresará al gimansio
- PERESTDCIVIL: Es si la persona es casada, soltera, viuda,
divorciada
- PERSEXO: Si la persona es hombre o mujer
- PERESTADO: Si se encuentra activo o inactivo
- PEREMPRESA: A que empresa pertenece la persona
30
- PERRUC: El número de ruc de la empresa a la que pertenece
la persona
- TIPO: Es el tipo de transacción que se está realizando, en este
caso es un ingreso
• Tabla PERSONAL_TRAINER
CAMPO TIPO
ID (NUMERO) numeric 9(18,0)
NUMEROCAJA numeric 9(18,0)
CLIENTE nvarchar (50)
PERSONAL nvarchar (50)
SESION nvarchar (3)
HORAINICIAL nvarchar (8)
HORAFINAL nvarchar (8)
TIPOMEMBRESIA int (4)
ESTADO char (2)
COMENTARIO nvarchar (400)
FECHA datetime (8)
Esta tabla guarda toda la información correspondiente a los personal
trainer y sus turnos. A continuación detallamos sus campos:
- ID (NUMERO): Es el número secuencial
- NUMEROCAJA: Es el número secuencial que corresponde a
esa sucursal y a esa caja
31
- CLIENTE: Es el nombre de la persona que solicita el turno
- PERSONAL: Es el nombre del personal trainer seleccionado o
solicitado
- SESION: Es el tipo de servicio
- HORAINICIAL: Es la hora inicial del turno
- HORAFINAL: Es la hora final del turno
- TIPOMEMBRESIA: Es el tipo de membresía que tiene la
persona que solicitó el servicio
- ESTADO: Si se encuentra activo o inactivo la persona
- COMENTARIO: Se puede emitir algún comentario en particular
- FECHA: Es la fecha en la que se separa el turno (elaboración
del ticket)
• Tabla PILATES
CAMPO TIPO
ID (NUMERO) numeric 9(18,0)
NUMEROCAJA numeric 9(18,0)
CLIENTE nvarchar (50)
PILATES nvarchar (50)
SESION nvarchar (50)
HORAINICIAL nvarchar (8)
HORAFINAL nvarchar (8)
TIPOMEMBRESIA int (4)
ESTADO char (2)
32
COMENTARIO nvarchar (400)
FECHA datetime (8)
Esta tabla guarda toda la información correspondiente a los personal
trainer y sus turnos. A continuación detallamos sus campos:
- ID (NUMERO): Es el código secuencial
- NUMEROCAJA: Es el número secuencial que corresponde a
esa sucursal y a esa caja
- CLIENTE: Es el nombre de la persona que solicita el servicio
- PILATES: Es el nombre de la persona que estará a cargo
- SESION: Es el tipo de servicio
- HORAINICIAL: Es la hora de incio de las clases de pilates
- HORAFINAL: Es la hora de fin del servicio de pilates
- TIPOMEMBRESIA: Es el tipo de membresía que tiene la
persona que solicita el servicio de pilates
- ESTADO: Si está activo o inactivo
- COMENTARIO: Se puede escribir cualquier observación
- FECHA: Es la fecha en que se crea el ticket del servicio de
pilates
33
• Tabla PLATOS_CABECERA
CAMPO TIPO
ID (NUMERO) int (4)
CODPLATO int (4)
CODPRODSERV int (4)
NOMBRE nvarchar (50)
PRECIO decimal 9(18,2)
ESTADO char (2)
FECHA_CREACION datetime (8)
FECHA_MOD datetime (8)
COSTO decimal 9(18,2)
Esta tabla guarda los datos de referencia de la creación de platos. A
continuación detallamos sus campos:
- ID (NUMERO): Es un código secuencial
- CODPLATO: Es el numero aleatorio de creación del plato
- CODPRODSERV: es el codigo del producto terminado (ensalda
césar)
- NOMBRE: Es el nombre del plato creado
- PRECIO: Es el precio del plato creado
- ESTADO: Si está activo o inactivo
- FECHA_CREACION: Es la fecha de creación del plato
- FECHA_MOD: Es la fecha de modificación del plato (cuando
algo si cambia)
34
- COSTO: Es el costo del plato creado (para la empresa)
• Tabla PLATOS_DETALLE
CAMPO TIPO
ID (NUMERO) int (4)
CODPLATO int (4)
CODPRODSERV int (4)
ESTADO char (2)
CANTIDAD char (10)
COSTO float (8)
FECHA_CREACION datetime (8)
FECHA_MOD datetime (8)
PRECIO float (8)
MEDIDA char (20)
TOTAL float (8)
Esta tabla guarda el detalle, es decir en que consiste el plato que ha
sido creado, sus componentes. A continuación detallamos sus
campos:
- ID (NUMERO): Es un código secuencial
- CODPLATO: Es el número aleatorio de creación del plato
- CODPRODSERV: es el codigo del producto terminado (ensalda
césar)
- ESTADO: Es si se encuentra activo o inactivo
- CANTIDAD: Es la cantidad de los componentes del plato
35
- COSTO: Es el valor del plato para la empresa
- FECHA_CREACION: Es la fecha de creación del plato
- FECHA_MOD: Es la fecha de modificación del plato que se creó
- PRECIO: Es el valor al público del plato
- MEDIDA: Se indica la cantidad de los ingredientes de un plato
• Tabla PRODUCTO_SERV
CAMPO TIPO
ID (CODPRODSERV) int (4)
CODPADRE int (4)
NOMBRE nvarchar (50)
PROTIPO char (10)
CODESTADO char (10)
PROFECING datetime (8)
PROIVA char (2)
PROPRECIO decimal 9(18,2)
PROPRECIO2 decimal 9(18,2)
PROPRECIO3 float (8)
PRODESC float (8)
PROFECHMODIF datetime (8)
PROSTOCK int (4)
DESCRIPCION nvarchar (1500)
COSTO decimal 9(18,2)
TIPOMEMBRE numeric 9(18,0)
DIAS numeric 9(18,0)
ESTADO char (2)
36
Esta tabla guarda el detalle de todos los productos y servicios que
ofrece el gimnasio. A continuación detallamos sus campos:
- ID (CODPRODSERV): es el codigo del producto terminado
(ensalda césar)
- NOMBRE: Es el nombre del producto o servicio
- PROTIPO: Se define si es producto (P), servicio (S) o
componente ( C)
- CODESTADO: Si está activo o inactivo
- PROFECING: Es la fecha de creación del producto, servicio o
componente
- PROIVA: Es el valor del iva
- PROPRECIO: Es el precio
- PRODESC: Es el valor del descuento
- PROFECHMODIF: Es la fecha en que se modifica alguna
información
- PROSTOCK: Es lo que se tiene actualmetne
- DESCRIPCION: Se define alguna observación del nombre del
producto o servicio
- COSTO: Es el valor del producto, servicio
- TIPOMEMBRE: Es el tipo de membresía que tiene la persona
- ESTADO: Si está activo o inactivo
37
• Tabla PROVEEDOR
CAMPO TIPO
CODIGO numeric 9
CEDULA nvarchar (15)
CODTIPOPROV int (4)
PRORSOCIAL nvarchar (80)
PROOBSERVACION nvarchar (200)
ESTADO char (2)
Esta tabal guarda los datos de los proveedores del gimnasio, a
continuación detallamos sus campos:
- CODIGO: Es un numero secuencial
- CEDULA: Es el número de cédula del proveedor
- CODTIPOPROV: Es el número que identifica que tipo de
proveedor es
- PRORSOCIAL: Es el nombre del Proveedor
- PROOBSERVACION: Cualquier comentario que se desee
hacer
- ESTADO: Si se encuentra activo o inactivo
38
• Tabla SECUENCIAS
CAMPO TIPO
SECUENCIAL numeric 9(10,0)
TIPO char (2)
SUCURSAL int (4)
CAJA int (4)
NUMERO numeric 9(10,0)
Esta tabla almacena todas las secuencias de todos los formularios
transaccionales por ejemplo: personal trainer, masaje, locker, parqueo,
factura, devolución, ingresos, egresos, combos, platos.
- SECUENCIAL: Es el numero de la secuencia del
servicio/producto
- TIPO: Se refiere al tipo de transacción que se efectuó es de dos
dígitos
- SUCURSAL: Se refiere al lugar donde se efectúa la transacción
- CAJA: Es el número que corresponde a la máquina donde se
efectua la operación
- NUMERO: Guarda el último número del servicio/producto
39
• Tabla SICAG_BUSQUEDAS
CAMPO TIPO
GEN_TABLA nvarchar (50)
GEN_COLUMNA nvarchar (50)
GEN_DESCRIPCION nvarchar (50)
GEN_TIPO char (1)
GEN_LONGITUD int (4)
GEN_OBSERVACION nvarchar (100)
En esta tabla se almacenan todas las búsquedas que son por clientes.
A continuación detallamos sus campos:
- GEN_TABLA: Hace referencia a que tabla se está llamando
- GEN_COLUMNA: Identifica la columna de la tabla que se está
llamando
- GEN_DESCRIPCION: Es la descripción de la columna que se
llamó
- GEN_TIPO: Si está activo o inactivo I, A
- GEN_LONGITUD: Hace referencia al ancho de la columna que
se llamó
- GEN_OBSERVACION: Se puede detallar cualquier comentario
40
• Tabla SUCURSAL
CAMPO TIPO
ID(CODSUCUR) int (4)
DESCRIPCION nvarchar (50)
ESTADO char (2)
Esta tabla guarda los datos de las sucursales que el administrador
ingrese, es decir de los otros locales de la matriz del gimnasio. A
continuación detallamos sus campos:
- CODSUCUR: Es el número aleatorio que se genera al crear una
sucursal
- DESCRIPCION: Es el nombre de la sucursal
- ESTADO: Si se encuentra activo o inactivo
• Tabla TARJETAS_CREDITO
CAMPO TIPO
CODTARJCRED int (4)
DESCRIPCION nvarchar (50)
ABREVIATURA nvarchar (50)
ESTADO char (2)
CODBANCO int (4)
41
Esta tabla guarda los datos de las tarjetas de crédito que acepta el
gimnasio, a continuación detallmos sus campos:
- CODTARJCRED: Es el numero secuencial que se genera
cuando se ingresa una tarjeta de crédito
- DESCRIPCION: Es el nombre de la tarjeta de crédito
- ABREVIATURA: Son las iniciales de la tarjeta de crédito
- ESTADO: Si está activa o inactiva
- CODBANCO: Es el banco al que pertenece la tarjeta
• Tabla TIPO_BANCO
CAMPO TIPO
CODTIPOBANKO int (4)
DESCRIPCION nvarchar (50)
ESTADO char (2)
Esta tabla guarda los datos relacionados al nombre de los bancos que
se ingresaron de acuerdo a las tarjetas de crédito. A continuación
detallamos sus campos:
- CODTIPOBANKO: Es número secuencial que se genera
cuando se ingresa el nombre de un banco
- DESCRIPCION: Es el nombre del banco que se ingresó
42
- ESTADO: Si se encuentra activa o inactiva
• Tabla TIPO_PERSONA
CAMPO TIPO
CODTIPOPERS int (4)
DESCRIPCION nvarchar (50)
Esta tabla guarda la clasificación de las personas que ingresan al
gimnasio que pueden ser clientes, proveedor, empleado, usuario. A
continuación detallamos sus campos:
- CODTIPOPERS: Es el número secuencial que se genera
cuando se ingresa el tipo de persona
- DESCRIPCION: es la clasificación que le dimos:
Cliente.- Es la persona extraña al gimnasio
empleado .- es quien trabaja en el gimnasio menos en los
counters
proveedor.- quien provee al gimnasio
usuario.- es quien maneja el sistema
43
• Tabla USUARIO
CAMPO TIPO
ID(CODUSU) int (4)
CODCEDULA nvarchar (50)
USUPASSWORD nvarchar (50)
USUUSER nvarchar (50)
USUFECCREAC datetime (8)
USUESTADO char (2)
Esta tabla guarda los datos de las personas que manejarán el sistema.
Aquí el Administrador ingresa los datos, designa claves y Id para los
usuarios, a continuación detallamos sus campos:
- CODUSU: Es el numero secuencial que se genera cuando se
crea el usuario
- CODCEDULA: Es el número de cédula del usuario
- USUPASSWORD: Es la clave que se le asigna para que
ingrese al sistema
- USUUSER: es el ID para que ingrese al sistema
- USUFECCREAC: Es la fecha en que se crea el usuario
- USUESTADO: Es si está activo o inactivo
44
• Tabla DETALLE_ZONA
CAMPO TIPO
NUMERO num (9)
CODIGOZONA int (4)
CODIGOCIUDAD int (4)
NOMBRECIUDAD nvarchar (50)
ESTADOCIUDAD Char (2)
Esta tabla guarda todos los datos relacionados con las ciudades. A
continuación detallmos sus campos:
- NUMERO: Es el numero secuencial que se genera cuando se
ingresan la ciudad
- CODIGOZONA: Es el numero que identifica a la zona que hago
referencia
- CODIGOCIUDAD: Es el número que identifica a la ciudad que
hago referencia
- NOMBRECIUDAD: Es el nombre de la ciudad que ingreso
- ESTADOCIUDAD: Si se encuentra activo o inactivo
45
CAPITULO 2
2.1. Creación del Script de la Base de Datos IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'Gym') DROP DATABASE [Gym] GO CREATE DATABASE [Gym] ON (NAME = N'GYM_Data', FILENAME = N'C:\Archivos de programa\Microsoft SQL Server\MSSQL\data\gym_Data.MDF' , SIZE = 42, FILEGROWTH = 10%) LOG ON (NAME = N'GYM_Log', FILENAME = N'C:\Archivos de programa\Microsoft SQL Server\MSSQL\data\gym_Log.LDF' , SIZE = 2606, FILEGROWTH = 10%) COLLATE SQL_Latin1_General_CP1_CI_AS GO exec sp_dboption N'Gym', N'autoclose', N'true' GO exec sp_dboption N'Gym', N'bulkcopy', N'false' GO exec sp_dboption N'Gym', N'trunc. log', N'false' GO exec sp_dboption N'Gym', N'torn page detection', N'true' GO exec sp_dboption N'Gym', N'read only', N'false' GO exec sp_dboption N'Gym', N'dbo use', N'false' GO exec sp_dboption N'Gym', N'single', N'false' GO exec sp_dboption N'Gym', N'autoshrink', N'true' GO exec sp_dboption N'Gym', N'ANSI null default', N'false'
46
GO exec sp_dboption N'Gym', N'recursive triggers', N'false' GO exec sp_dboption N'Gym', N'ANSI nulls', N'false' GO exec sp_dboption N'Gym', N'concat null yields null', N'false' GO exec sp_dboption N'Gym', N'cursor close on commit', N'false' GO exec sp_dboption N'Gym', N'default to local cursor', N'false' GO exec sp_dboption N'Gym', N'quoted identifier', N'false' GO exec sp_dboption N'Gym', N'ANSI warnings', N'false' GO exec sp_dboption N'Gym', N'auto create statistics', N'true' GO exec sp_dboption N'Gym', N'auto update statistics', N'true' GO use [Gym] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_MODULO_OPCIONES_POR_MODULO]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[MODULO] DROP CONSTRAINT FK_MODULO_OPCIONES_POR_MODULO GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_PERMISO_POR_USUARIO_OPCIONES_POR_MODULO]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[PERMISO_POR_USUARIO] DROP CONSTRAINT FK_PERMISO_POR_USUARIO_OPCIONES_POR_MODULO
47
GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_PERMISO_POR_USUARIO_USUARIO]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1) ALTER TABLE [dbo].[PERMISO_POR_USUARIO] DROP CONSTRAINT FK_PERMISO_POR_USUARIO_USUARIO GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ASISTENCIAS]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[ASISTENCIAS] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[BRONCEADOS]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[BRONCEADOS] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CABECERA_FACTURA]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[CABECERA_FACTURA] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CABECERA_INVENTARIO]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[CABECERA_INVENTARIO] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CABECERA_ZONA]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[CABECERA_ZONA] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CAJA]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
48
drop table [dbo].[CAJA] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[CIUDAD]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[CIUDAD] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[COMBO_CABECERA]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[COMBO_CABECERA] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[COMBO_DETALLE]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[COMBO_DETALLE] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DETALLE_FACTURA]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[DETALLE_FACTURA] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DETALLE_INVENTARIO]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[DETALLE_INVENTARIO] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DETALLE_ZONA]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[DETALLE_ZONA] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[EXISTENCIAS]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[EXISTENCIAS] GO
49
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[HORARIOS]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[HORARIOS] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[LOCKER]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[LOCKER] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[MASAJES]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[MASAJES] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[MODULO]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[MODULO] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[OPCIONES_POR_MODULO]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[OPCIONES_POR_MODULO] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PAGOS_FACTURA]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[PAGOS_FACTURA] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PARAMETROS]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[PARAMETROS] GO
50
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PARQUEO]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[PARQUEO] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PERMISO_POR_USUARIO]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[PERMISO_POR_USUARIO] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PERSONA]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[PERSONA] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PERSONA_TRAINER]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[PERSONA_TRAINER] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PILATES]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[PILATES] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PLATOS_CABECERA]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[PLATOS_CABECERA] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PLATOS_DETALLE]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[PLATOS_DETALLE] GO
51
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PRODUCTO_SERV]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[PRODUCTO_SERV] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SECUENCIAS]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[SECUENCIAS] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SICAG_BUSQUEDAS]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[SICAG_BUSQUEDAS] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SUCURSAL]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[SUCURSAL] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TARJETAS_CREDITO]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TARJETAS_CREDITO] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TIPO_BANCO]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TIPO_BANCO] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TIPO_PERSONA]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TIPO_PERSONA] GO
52
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[USUARIO]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[USUARIO] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ZONA]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[ZONA] GO CREATE TABLE [dbo].[ASISTENCIAS] ( [NUMERO] [numeric](18, 0) IDENTITY (1, 1) NOT NULL , [CODIGOSECUEN] [nvarchar] (13) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [NOMBRE] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [FECHA] [datetime] NULL , [HORA] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[BRONCEADOS] ( [NUMERO] [numeric](18, 0) IDENTITY (1, 1) NOT NULL , [NUMEROCAJA] [numeric](18, 0) NOT NULL , [CLIENTE] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [SESION] [nvarchar] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [HORAINICIAL] [nvarchar] (8) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [HORAFINAL] [nvarchar] (8) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [TIPOMEMBRESIA] [int] NULL , [COMENTARIO] [nvarchar] (400) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [FECHA] [datetime] NULL ) ON [PRIMARY] GO
53
CREATE TABLE [dbo].[CABECERA_FACTURA] ( [NUMERO] [int] IDENTITY (1, 1) NOT NULL , [TIPO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [SUCURSAL] [char] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [CAJA] [char] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [NUMEROCAJA] [numeric](10, 0) NULL , [FECHA] [datetime] NULL , [BODEGA] [char] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [CLIENTE] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [VENDEDOR] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [CAJERO] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [NUMEROCAJERO] [numeric](18, 0) NULL , [AUTORIZA] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [NOMBRECAJERO] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [COMENTARIO] [nvarchar] (1500) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [OBSERVACION] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [PORCEDESCTO1] [decimal](18, 0) NULL , [PORCEDESCTO2] [decimal](18, 0) NULL , [PORCEIVA] [decimal](18, 0) NULL , [SUBTOTAL] [float] NULL , [DESCUENTO1] [float] NULL , [DESCUENTO2] [float] NULL , [IMPUESTO] [float] NULL , [TOTAL] [float] NULL , [TIPOAPLIC] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [NUMAPLIC] [numeric](18, 0) NULL , [IMPRESO] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [HORA] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ELIMINADO] [bit] NULL ) ON [PRIMARY] GO
54
CREATE TABLE [dbo].[CABECERA_INVENTARIO] ( [NUMERO] [numeric](10, 0) IDENTITY (1, 1) NOT NULL , [TIPO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [SUCURSAL] [int] NULL , [CAJA] [char] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [NUMEROCAJA] [numeric](18, 0) NOT NULL , [SUCURSAL1] [int] NULL , [TIPOINGRESO] [char] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PROVEEDOR] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [TIPOAPLIC] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [NUMEROAPLIC] [numeric](18, 0) NULL , [SUBTOTALPRECIO] [float] NULL , [IVAPRECIO] [float] NULL , [TOTALPRECIO] [float] NULL , [SUBTOTALCOSTO] [float] NULL , [IVACOSTO] [float] NULL , [TOTALCOSTO] [float] NULL , [FECHA] [datetime] NULL , [HORA] [datetime] NULL , [USUARIO] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [OBSERVACIONES] [nvarchar] (1500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [IMPRESO] [bit] NULL , [ELIMINADO] [bit] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[CABECERA_ZONA] ( [NUMERO] [numeric](18, 0) IDENTITY (1, 1) NOT NULL , [CODIGOZONA] [int] NULL , [NOMBREZONA] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ESTADOZONA] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[CAJA] ( [CODCAJA] [int] IDENTITY (1, 1) NOT NULL ,
55
[DESCRIPCION] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [ESTADO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[CIUDAD] ( [CODCIUDAD] [int] IDENTITY (1, 1) NOT NULL , [DESCRIPCION] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [ESTADO] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[COMBO_CABECERA] ( [NUMERO] [int] IDENTITY (1, 1) NOT NULL , [CODCOMBO] [int] NOT NULL , [NOMBRE] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [PRECIO] [decimal](18, 2) NOT NULL , [ESTADO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [FECHA_CREACION] [datetime] NULL , [FECHA_MOD] [datetime] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[COMBO_DETALLE] ( [NUMERO] [int] IDENTITY (1, 1) NOT NULL , [CODCOMBO] [int] NOT NULL , [CODPRODSERV] [int] NOT NULL , [ESTADO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [CANTIDAD] [numeric](18, 0) NULL , [COSTO] [float] NULL , [FECHA_CREACION] [datetime] NULL , [FECHA_MOD] [datetime] NULL , [TOTAL] [float] NULL , [PRECIO] [float] NULL , [DESCUENTO] [float] NULL ) ON [PRIMARY]
56
GO CREATE TABLE [dbo].[DETALLE_FACTURA] ( [NUMERO] [numeric](10, 0) IDENTITY (1, 1) NOT NULL , [NUMEROCAB] [numeric](18, 0) NOT NULL , [TIPO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [SUCURSAL] [char] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [CAJA] [char] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [NUMEROCAJA] [numeric](18, 0) NULL , [CODIGOPRODUCTO] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [BODEGA] [char] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [FECHA] [datetime] NULL , [CANTIDAD] [numeric](18, 0) NULL , [TOTAL1] [float] NULL , [TOTAL2] [float] NULL , [DESCUENTO1] [float] NULL , [DESCUENTO2] [float] NULL , [VALORDESCUENTO1] [float] NULL , [VALORDESCUENTO2] [float] NULL , [PRECIO] [float] NULL , [COSTO] [float] NULL , [IVA] [float] NULL , [HORA] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[DETALLE_INVENTARIO] ( [NUMERO] [numeric](10, 0) IDENTITY (1, 1) NOT NULL , [NUMEROCAB] [numeric](18, 0) NOT NULL , [TIPO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [SUCURSAL] [int] NULL , [CAJA] [char] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [NUMEROCAJA] [numeric](18, 0) NOT NULL , [CODIGOPRODUCTO] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [CANTIDAD] [numeric](18, 0) NULL , [PRECIO] [float] NULL , [COSTO] [float] NULL , [TOTALP] [float] NULL , [TOTALC] [float] NULL ,
57
[IVA] [float] NULL , [FECHA] [datetime] NULL , [HORA] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[DETALLE_ZONA] ( [NUMERO] [numeric](18, 0) IDENTITY (1, 1) NOT NULL , [CODIGOZONA] [int] NULL , [CODIGOCIUDAD] [int] NULL , [NOMBRECIUDAD] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ESTADOCIUDAD] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[EXISTENCIAS] ( [NUMERO] [numeric](18, 0) IDENTITY (1, 1) NOT NULL , [TIPO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [SUCURSAL] [char] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [CAJA] [char] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [NUMEROCAJ] [numeric](18, 0) NULL , [NUMEROCAB] [numeric](18, 0) NOT NULL , [CODIGO] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [FECHA] [datetime] NULL , [CANTIDAD] [numeric](18, 0) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[HORARIOS] ( [TIPO] [char] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [NOMBRE] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [CODIGO] [char] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [DESCRIPCION] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
58
[HORAINICIAL] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [HORAFINAL] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[LOCKER] ( [NUMERO] [numeric](18, 0) IDENTITY (1, 1) NOT NULL , [NUMEROCAJA] [numeric](18, 0) NOT NULL , [CLIENTE] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [FECHA] [datetime] NULL , [TIPOMEMBRESIA] [int] NULL , [COMENTARIO] [nvarchar] (400) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[MASAJES] ( [NUMERO] [numeric](18, 0) IDENTITY (1, 1) NOT NULL , [NUMEROCAJA] [numeric](18, 0) NOT NULL , [CLIENTE] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [MASAJISTA] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [SESION] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [HORAINICIAL] [nvarchar] (8) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [HORAFINAL] [nvarchar] (8) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [TIPOMEMBRESIA] [int] NULL , [COMENTARIO] [nvarchar] (400) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [FECHA] [datetime] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[MODULO] ( [CODMODULO] [int] IDENTITY (1, 1) NOT NULL , [DESCRIPCION] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
59
[ESTADO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[OPCIONES_POR_MODULO] ( [CODOPCION] [int] IDENTITY (1, 1) NOT NULL , [CODMODULO] [int] NOT NULL , [CODOPCXMOD] [numeric](10, 0) NOT NULL , [DESCRIPCION] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [OPCFORMULARIO] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [OPCOBSERVACION] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [OPCFECHACREAC] [datetime] NOT NULL , [OPCESTADO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [CODUSU] [int] NOT NULL , [PCI] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[PAGOS_FACTURA] ( [NUMERO] [numeric](10, 0) IDENTITY (1, 1) NOT NULL , [NUMEROCAB] [numeric](18, 0) NOT NULL , [TIPO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [SUCURSAL] [char] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [CAJA] [char] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [NUMEROCAJA] [numeric](18, 0) NULL , [TIPOAPLIC] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [FECHA] [datetime] NULL , [FORMAPAGO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PORCOBRAR] [float] NULL , [VALORRECIBIDO] [float] NULL , [CODIGOTARJETA] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [NUMEROTARJETA] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
60
[NOMBRECLIENTE] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [TELEFONOTARJETA] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [LOTE] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [FECHACHEQUE] [datetime] NULL , [CODIGOBANCO] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [CODIGOCIUDAD] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [NUMEROCHEQUE] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [CTACTE] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [NOMBREEMPLEADO] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [CEDULAEMPLEADO] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [AUTORIZACIONCRED] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [QUIENREGALA] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [BENEFICIARIO] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [AUTORIZACIONOBS] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [FECHADEVOLUCION] [datetime] NULL , [NUMERODEVOLUCION] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [CANCELADO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [HORA] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [CIERRE] [bit] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[PARAMETROS] ( [NOMBREMPRESA] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [DIRECCION] [nvarchar] (150) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [PORCENTAJEIVA] [decimal](18, 2) NOT NULL ,
61
[TELEFONOEMP] [nvarchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [RUC] [nvarchar] (13) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [PORCENTDESCTO] [decimal](18, 2) NOT NULL , [SUCURSAL] [numeric](18, 0) NULL , [CAJA] [numeric](18, 0) NULL , [SECUENCIA] [nvarchar] (13) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [RUTA] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[PARQUEO] ( [NUMERO] [numeric](18, 0) IDENTITY (1, 1) NOT NULL , [NUMEROCAJA] [numeric](18, 0) NOT NULL , [CLIENTE] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [FECHA] [datetime] NULL , [HORAINICIAL] [nvarchar] (8) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [TIPOMEMBRESIA] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [COMENTARIO] [nvarchar] (400) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[PERMISO_POR_USUARIO] ( [CODPERXUSU] [int] IDENTITY (1, 1) NOT NULL , [CODCEDULAUSU] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [CODOPC] [int] NOT NULL , [ESTADO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[PERSONA] ( [CODPERS] [int] IDENTITY (1, 1) NOT NULL , [CODIGOSECUEN] [nvarchar] (13) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
62
[CEDULA] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [CODTIPOPER] [int] NOT NULL , [PERNOMBRE] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [PERAPELLIDO] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [PERDIRECCION] [nvarchar] (150) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [PERTELEFONO] [nvarchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PERMAIL] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PERFAX] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [CODCIUDAD] [int] NULL , [CODZONA] [int] NULL , [FECHAINGRESO] [datetime] NULL , [FECHASALIDA] [datetime] NULL , [PERCOMENTARIO] [nvarchar] (400) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [FECHAMODIF] [datetime] NULL , [CODEMPL] [int] NULL , [PERDESCTO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [FECHANAC] [datetime] NULL , [PERESTDCIVIL] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PERSEXO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PERESTADO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PEREMPRESA] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PERRUC] [nvarchar] (13) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [TIPO] [numeric](18, 0) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[PERSONA_TRAINER] ( [NUMERO] [numeric](18, 0) IDENTITY (1, 1) NOT NULL , [NUMEROCAJA] [numeric](18, 0) NOT NULL ,
63
[CLIENTE] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PERSONAL] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [SESION] [nvarchar] (3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [HORAINICIAL] [nvarchar] (8) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [HORAFINAL] [nvarchar] (8) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [TIPOMEMBRESIA] [int] NULL , [ESTADO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [COMENTARIO] [nvarchar] (400) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [FECHA] [datetime] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[PILATES] ( [NUMERO] [numeric](18, 0) IDENTITY (1, 1) NOT NULL , [NUMEROCAJA] [numeric](18, 0) NOT NULL , [CLIENTE] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PILATES] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [SESION] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [HORAINICIAL] [nvarchar] (8) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [HORAFINAL] [nvarchar] (8) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [TIPOMEMBRESIA] [int] NULL , [ESTADO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [COMENTARIO] [nvarchar] (400) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [FECHA] [datetime] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[PLATOS_CABECERA] ( [NUMERO] [int] IDENTITY (1, 1) NOT NULL , [CODPLATO] [int] NOT NULL ,
64
[CODPRODSERV] [int] NULL , [NOMBRE] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [PRECIO] [decimal](18, 2) NOT NULL , [ESTADO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [FECHA_CREACION] [datetime] NULL , [FECHA_MOD] [datetime] NULL , [COSTO] [decimal](18, 2) NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[PLATOS_DETALLE] ( [NUMERO] [int] IDENTITY (1, 1) NOT NULL , [CODPLATO] [int] NOT NULL , [CODPRODSERV] [int] NOT NULL , [ESTADO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [CANTIDAD] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [COSTO] [float] NULL , [FECHA_CREACION] [datetime] NULL , [FECHA_MOD] [datetime] NULL , [PRECIO] [float] NULL , [MEDIDA] [char] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [TOTAL] [float] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[PRODUCTO_SERV] ( [CODPRODSERV] [int] IDENTITY (1, 1) NOT NULL , [CODPADRE] [int] NOT NULL , [NOMBRE] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PROTIPO] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [CODESTADO] [char] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [PROFECING] [datetime] NOT NULL , [PROIVA] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [PROPRECIO] [decimal](18, 2) NOT NULL ,
65
[PROPRECIO2] [decimal](18, 2) NOT NULL , [PROPRECIO3] [float] NULL , [PRODESC] [float] NULL , [PROFECHMODIF] [datetime] NULL , [PROSTOCK] [int] NULL , [DESCRIPCION] [nvarchar] (1500) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [CODIGO] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [LINEA] [char] (4) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [GRUPO] [char] (4) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [COSTO] [decimal](18, 2) NOT NULL , [TIPOMEMBRE] [numeric](18, 0) NULL , [DIAS] [numeric](10, 0) NULL , [ESTADO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[SECUENCIAS] ( [SECUENCIAL] [numeric](10, 0) IDENTITY (1, 1) NOT NULL , [TIPO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [SUCURSAL] [int] NULL , [CAJA] [int] NULL , [NUMERO] [numeric](10, 0) NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[SICAG_BUSQUEDAS] ( [GEN_TABLA] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [GEN_COLUMNA] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [GEN_DESCRIPCION] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [GEN_TIPO] [char] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [GEN_LONGITUD] [int] NOT NULL , [GEN_OBSERVACION] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
66
) ON [PRIMARY] GO CREATE TABLE [dbo].[SUCURSAL] ( [CODSUCUR] [int] IDENTITY (1, 1) NOT NULL , [DESCRIPCION] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [ESTADO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TARJETAS_CREDITO] ( [CODTARJCRED] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL , [DESCRIPCION] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ABREVIATURA] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [ESTADO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , [CODBANCO] [int] NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TIPO_BANCO] ( [CODTIPOBANKO] [int] IDENTITY (1, 1) NOT NULL , [DESCRIPCION] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [ESTADO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[TIPO_PERSONA] ( [CODTIPOPERS] [int] IDENTITY (1, 1) NOT NULL , [DESCRIPCION] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY] GO
67
Column name Data Type length Allow Nulls
NUMERO numeric 9
CODIGOSECUEN nvarchar 13 √
NOMBRE nvarchar 50 √
FECHA datetime 8 √
HORA char 10 √
CREATE TABLE [dbo].[USUARIO] ( [CODUSU] [int] IDENTITY (1, 1) NOT NULL , [CODCEDULA] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [USUPASSWORD] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [USUUSER] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [USUFECCREAC] [datetime] NOT NULL , [USUESTADO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[ZONA] ( [CODZONA] [int] IDENTITY (1, 1) NOT NULL , [DESCRIPCION] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [ESTADO] [char] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY] GO
2.2. Diseño del esquema de las tablas * Tabla Asistencia
68
* Tabla Bronceados
Column name Data Type length Allow Nulls
NUMERO numeric 9
NUMEROCAJA numeric 9
CLIENTE nvarchar 50 √
SESION nvarchar 3 √
HORAINICIAL nvarchar 8 √
HORAFINAL nvarchar 8 √
TIPOMEMBRESIA int 4 √
COMENTARIO nvarchar 40 √
FECHA datetime 8 √ * Tabla Cabecera_Factura
Column name Data Type length Allow Nulls
NUMERO int 4
TIPO char 2 √
SUCURSAL char 2 √
CAJA char 3 √
NUMEROCAJA numeric 9(10,0) √
FECHA datetime 8 √
CLIENTE nvarchar 10 √
VENDEDOR nvarchar 10 √
CAJERO nvarchar 10 √
COMENTARIO nvarchar 1500 √
OBSERVACION nvarchar 100 √
PORCEDESCTO1 decimal 9(18,0) √
PORCEDESCTO2 decimal 9(18,0) √
PORCEIVA decimal 9(18,0) √
SUBTOTAL float 8 √
DESCUENTO1 float 8 √
69
DESCUENTO2 float 8 √
IMPUESTO float 8 √
TOTAL float 8 √
IMPRESO char 1 √
HORA char 10 √
* Tabla Cabecera_Inventario
Column name Data Type length Allow Nulls
NUMERO numeric 9(10,0)
TIPO char 2 √
SUCURSAL int 4 √
CAJA char 3 √
NUMEROCAJA numeric 9(18,0) √
TIPOINGRESO char 50 √
PROVEEDOR nvarchar 15 √
SUBTOTALPRECIO float 8 √
IVAPRECIO float 8 √
TOTALPRECIO float 8 √
SUBTOTALCOSTO float 8 √
IVACOSTO float 8 √
TOTALCOSTO float 8 √
FECHA datetime 8 √
HORA datetime 8 √
USUARIO char 10 √
OBSERVACIONES nvarchar 1500 √
IMPRESO bit 1 √
ELIMINADOS bit 1 √
70
* Tabla Caja
Column name Data Type length Allow Nulls
CODCAJA int 4
DESCRIPCION nvarchar 50
ESTADO char 2 √ * Tabla Combo_Cabecera
Column name Data Type length Allow Nulls
NUMERO int 4
CODCOMBO int 4
NOMBRE nvarchar 50
PRECIO decimal 9(18,2)
ESTADO char 2 √
FECHA_CREACION datetime 8 √
FECHA_MOD datetime 8 √
* Tabla Combo_Detalle
Column name Data Type length Allow Nulls
NUMERO int 4
CODCOMBO int 4
CODPRODSERV int 4
ESTADO char 2 √
CANTIDAD numeric 9(18,0) √
COSTO float 8 √
FECHA_CREACION datetime 8 √
FECHA_MOD datetime 8 √
TOTAL float 8 √
PRECIO float 8 √
DESCUENTO Flota 8 √
71
* Tabla Detalle_Factura
Column name Data Type length Allow Nulls
NUMERO numeric 9(10,0)
NUMEROCAB numeric 9(18,0)
TIPO char 2 √
SUCURSAL char 3 √
CAJA char 3 √
NUMEROCAJA numeric 9(18,0) √
CODIGOPRODUCTO nvarchar 50 √
FECHA datetime 8 √
CANTIDAD numeric 9(18,0) √
TOTAL1 float 8 √
TOTAL2 float 8 √
DESCUENTO1 float 8 √
DESCUENTO2 float 8 √
VALORDESCUENTO1 float 8 √
VALORDESCUENTO2 float 8 √
PRECIO float 8 √
COSTO float 8 √
IVA float 8 √
HORA char 10 √
* Tabla Detalle_Inventario
Column name Data Type length Allow Nulls
NUMERO numeric 9(10,0)
NUMEROCAB numeric 9(18,0)
TIPO char 2 √
SUCURSAL int 4 √
CAJA char 3 √
NUMEROCAJA numeric 9(18,0)
72
CODIGOPRODUCTO nvarchar 50 √
CANTIDAD numeric 9(18,0) √
PRECIO float 8 √
COSTO float 8 √
TOTALP float 8 √
TOTALC float 8 √
IVA float 8 √
FECHA datetime 8 √
HORA nvarchar 50 √
* Tabla Existencias
Column name Data Type length Allow Nulls
NUMERO numeric 9(18,0)
TIPO char 2 √
SUCURSAL char 3 √
CAJA char 3 √
NUMEROCAJ numeric 9(18,0) √
NUMEROCAB numeric 9(18,0)
CODIGO nvarchar 50 √
FECHA datetime 8 √
CANTIDAD numeric 9(18,0) √ * Tabla Horarios
Column name Data Type length Allow Nulls
TIPO char 3
NOMBRE nvarchar 50
CODIGO char 3 √
DESCRIPCION nvarchar 50 √
HORAINICIAL nvarchar 50 √
HORAFINAL nvarchar 50 √
73
* Tabla Locker
Column name Data Type length Allow Nulls
NUMERO numeric 9(18,0)
NUMEROCAJA numeric 9(18,0)
CLIENTE nvarchar 50 √
FECHA datetime 8 √
TIPOMEMBRESIA int 4 √
COMENTARIO nvarchar 400 √
* Tabla Masajes
Column name Data Type length Allow Nulls
NUMERO numeric 9(18,0)
NUMEROCAJA numeric 9(18,0)
CLIENTE nvarchar 50 √
MASAJISTA nvarchar 10 √
SESION nvarchar 10 √
HORAINICIAL nvarchar 8 √
HORAFINAL nvarchar 8 √
TIPOMEMBRESIA int 4 √
COMENTARIO nvarchar 400 √
FECHA datetime 8 √
* Tabla Modulo
Column name Data Type length Allow Nulls
CODMODULO int 4
DESCRIPCION nvarchar 50
ESTADO char 2 √
74
* Tabla Opciones_Modul
Column name Data Type length Allow Nulls
CODOPCION int 4
CODMODULO int 4
CODOPCXMOD Numeric 9(10,0)
DESCRIPCION nvarchar 50
OPCFORMULARIO nvarchar 50
OPCOBSERVACION nvarchar 50
OPCFECHACREAC datetime 8
OPCESTADO char 2
CODUSUL int 4
PCI nvarchar 50
* Tabla Pagos_Factura
Column name Data Type length Allow Nulls
NUMERO numeric 9(10,0)
NUMEROCAB numeric 9(10,0)
TIPO char 2 √
SUCURSAL char 3 √
CAJA char 3 √
NUMEROCAJA numeric 9(18,0) √
FECHA datetime 8 √
FORMAPAGO char 2 √
PORCOBRAR float 8 √
VALORRECIBIDO float 8 √
CODIGOTARJETA nvarchar 50 √
NUMEROTARJETA nvarchar 50 √
NOMBRECLIENTE nvarchar 50 √
TELEFONOTARJETA nvarchar 50 √
LOTE char 10 √
75
FECHACHEQUE datetime 8 √
CODIGOBANCO nvarchar 50 √
NUMEROCHEQUE nvarchar 50 √
CTACTE nvarchar 50 √
NOMBREEMPLEADO nvarchar 50 √
CEDULAEMPLEADO char 10 √
CANCELADO char 2 √
HORA char 10 √
* Tabla Parámetros
Column name Data Type length Allow Nulls
NOMBREMPRESA nvarchar 100
DIRECCION nvarchar 150
PORCENTAJEIVA decimal 9(18,0)
TELEFONOEMP nvarchar 20
RUC nvarchar 13
PORCENTDESCTO decimal 9(18,2)
SUCURSAL numeric 9(18,0) √
CAJA numeric 9(10,0) √
SECUENCIA nvarchar 13 √
RUTA nvarchar 50 √
* Tabla Parqueo
Column name Data Type length Allow Nulls
NUMERO numeric 9(18,0)
NUMEROCAJA numeric 9(18,0)
CLIENTE nvarchar 50 √
FECHA datetime 8 √
HORAINICIAL nvarchar 8 √
TIPOMEMBRESIA char 10 √
76
COMENTARIO nvarchar 400 √
* Tabla Permiso_Por_Usuario
Column name Data Type length Allow Nulls
CODPERXUSU int 4
CODCEDULAUSU nvarchar 15
CODOPC int 4
ESTADO char 210 √
* Tabla Persona
Column name Data Type length Allow Nulls
CODPERS int 4
CODIGOSECUEN nvarchar 13 √
CEDULA nvarchar 15
CODTIPOPER int 4
PERNOMBRE nvarchar 50
PERAPELLIDO nvarchar 50
PERDIRECCION nvarchar 150
PERTELEFONO nvarchar 10 √
PERMAIL nvarchar 50 √
PERFAX nvarchar 50 √
CODCIUDAD int 4 √
CODZONA int 4 √
FECHAINGRESO datetime 8 √
FECHASALIDA datetime 8 √
PERCOMENTARIO nvarchar 400 √
FECHAMODIF datetime 8 √
CODEMPL int 4 √
PERDESCTO char 2 √
FECHANAC datetime 8 √
77
PERESTDCIVIL char 2 √
PERSEXO char 2 √
PERESTADO char 2 √
PEREMPRESA nvarchar 50 √
PERRUC nvarchar 13 √
TIPO numeric 9(18,0) √
* Tabla Persona_Trainer
Column name Data Type length Allow Nulls
NUMERO numeric 9(18,0)
NUMEROCAJA numeric 9(18,0)
CLIENTE nvarchar 50 √
PERSONAL nvarchar 50 √
SESION nvarchar 3 √
HORAINICIAL nvarchar 8 √
HORAFINAL nvarchar 8 √
TIPOMEMBRESIA int 4 √
ESTADO char 2 √
COMENTARIO nvarchar 400 √
FECHA datetime 8 √ * Tabla Pilates
Column name Data Type length Allow Nulls
NUMERO numeric 9(18,0)
NUMEROCAJA numeric 9(18,0)
CLIENTE nvarchar 50 √
PILATES nvarchar 50 √
SESION nvarchar 50 √
HORAINICIAL nvarchar 8 √
HORAFINAL nvarchar 8 √
78
TIPOMEMBRESIA int 4 √
ESTADO char 2 √
COMENTARIO nvarchar 400 √
FECHA datetime 8 √
* Tabla Platos_Cabecera
Column name Data Type length Allow Nulls
NUMERO int 4
CODPLATO int 4
CODPRODSERV int 4 √
NOMBRE nvarchar 50
PRECIO decimal 9(18,2)
ESTADO char 2 √
FECHA_CREACION datetime 8 √
FECHA_MOD datetime 8 √
COSTO decimal 9(18,2) √
* Tabla Platos_Detalle
Column name Data Type length Allow Nulls
NUMERO int 4
CODPLATO int 4
CODPRODSERV int 4
ESTADO char 2 √
CANTIDAD char 10 √
COSTO float 8 √
FECHA_CREACION datetime 8 √
FECHA_MOD datetime 8 √
PRECIO float 8 √
MEDIDA char 20 √
TOTAL float 8 √
79
* Tabla Producto_Serv
Column name Data Type length Allow Nulls
CODPRODSERV int 4
CODPADRE int 4
NOMBRE nvarchar 50 √
PROTIPO char 10
CODESTADO char 10 √
PROFECING datetime 8
PROIVA char 2
PROPRECIO decimal 9(18,2)
PROPRECIO2 decimal 9(18,2)
PROPRECIO3 float 8 √
PRODESC float 8 √
PROFECHMODIF datetime 8 √
PROSTOCK int 4 √
DESCRIPCION nvarchar 1500 √
CODIGO nvarchar 10 √
LINEA char 4 √
GRUPO char 4 √
COSTO decimal 9(18,2) √
TIPOMEMBRE numeric 9(18,0) √
DIAS numeric 9(18,0) √
ESTADO char 2 √
* Tabla Proveedor
Column name Data Type length Allow Nulls
CODIGO numeric 9(18,0)
CEDULA nvarchar 15
CODTIPOPROV int 4
PRORSOCIAL nvarchar 80
PROOBSERVACION nvarchar 200 √
80
ESTADO char 2 √ * Tabla Secuencias
Column name Data Type length Allow Nulls
SECUENCIAL numeric 9(10,0)
TIPO char 2 √
SUCURSAL int 4 √
CAJA int 4 √
NUMERO numeric 9(10,0) √
* Tabla Sicag_Busquedas
Column name Data Type length Allow Nulls
GEN_TABLA nvarchar 50 √
GEN_COLUMNA nvarchar 50 √
GEN_DESCRIPCION nvarchar 50 √
GEN_TIPO char 1 √
GEN_LONGITUD int 4
GEN_OBSERVACION nvarchar 100 √
* Tabla Sucursal
Column name Data Type length Allow Nulls
CODSUCUR int 4
DESCRIPCION nvarchar 50
ESTADO char 2 √
81
* Tabla Tarjetas_Credito
Column name Data Type length Allow Nulls
CODTARJCRED int 4
DESCRIPCION nvarchar 50 √
ABREVIATURA nvarchar 50 √
ESTADO char 2 √
CODBANCO int 4 √
* Tabla Tipo_Banco
Column name Data Type length Allow Nulls
CODTIPOBANKO int 4
DESCRIPCION nvarchar 50
ESTADO char 2 √ * Tabla Tipo_Persona
Column name Data Type length Allow Nulls
CODTIPOPERS int 4
DESCRIPCION nvarchar 50
* Tabla Usuario
Column name Data Type length Allow Nulls
CODUSU int 4
CODCEDULA nvarchar 50
USUPASSWORD nvarchar 50
USUUSER nvarchar 50
USUFECCREAC datetime 8
USUESTADO char 2
82
* Tabla Detalle_Zona
Column name Data Type length Allow Nulls
NUMERO num 9
CODIGOZONA int 4 √
CODIGOCIUDAD int 4 √
NOMBRECIUDAD nvarchar 50 √
ESTADOCIUDAD Char 2 √
2.3. Procedimientos 2.3.1 archivo_contable_cab //Crea un archivo texto con toda la información de la cabecera de la factura 6/30/2007 11:17:38 PM CREATE PROCEDURE ARCHIVO_CONTABLE_CAB
@FECHAINI AS VARCHAR(10),
@FECHAFIN AS VARCHAR(10),
@DESDESUC AS INT,
@HASTASUC AS INT
AS
SELECT *
FROM cabecera_factura
WHERE FECHA >= CONVERT(DATETIME, @FECHAINI)
AND FECHA <= CONVERT(DATETIME, @FECHAFIN)
AND SUCURSAL>=@DESDESUC AND SUCURSAL<=@HASTASUC
83
GO
2.3.2. archivo_contable_det
//Crea un archivo texto con toda la información de la detalle de la factura 7/10/2007 5:45:49 PM
CREATE PROCEDURE ARCHIVO_CONTABLE_DET
@FECHAINI AS VARCHAR(10),
@FECHAFIN AS VARCHAR(10),
@DESDESUC AS INT,
@HASTASUC AS INT
AS
SELECT *
FROM detalle_factura
WHERE FECHA >= CONVERT(DATETIME, @FECHAINI)
AND FECHA <= CONVERT(DATETIME, @FECHAFIN)
AND SUCURSAL>=@DESDESUC AND SUCURSAL<=@HASTASUC
GO
2.3.3 archivo_contable_pag
//Crea un archivo texto con toda la información de los pago de la factura 7/10/2007 5:46:09 PM
CREATE PROCEDURE ARCHIVO_CONTABLE_PAG
@FECHAINI AS VARCHAR(10),
84
@FECHAFIN AS VARCHAR(10),
@DESDESUC AS INT,
@HASTASUC AS INT
AS
SELECT *
FROM pagos_factura
WHERE FECHA >= CONVERT(DATETIME, @FECHAINI)
AND FECHA <= CONVERT(DATETIME, @FECHAFIN)
AND SUCURSAL>=@DESDESUC AND SUCURSAL<=@HASTASUC
GO
2.3.4. fac_busca_caducidad_cliente
//Busca la fecha de vencimiento del cliente en la tabla persona
5/24/2007 7:20:59 PM
CREATE PROCEDURE FAC_BUSCA_CADUCIDAD_CLIENTE
@COD AS VARCHAR(15)
AS
SELECT * FROM PERSONA
WHERE CODPERS=@COD
GO
85
2.3.5. fac_busca_detalles
//Permite buscar los detalles de los productos de las facturas y de los pagos
5/21/2007 4:08:03 PM
CREATE PROCEDURE FAC_BUSCA_DETALLES
@CODIGO1 AS NUMERIC,
@OPCION AS INT
AS
IF @OPCION = 1
BEGIN
SELECT PROD.*, DET.* FROM DETALLE_FACTURA AS DET,
PRODUCTO_SERV AS PROD where DET.CODIGOPRODUCTO =
CODPRODSERV AND NUMEROCAB = @CODIGO1
END
IF @OPCION = 2
BEGIN
SELECT * FROM PAGOS_FACTURA WHERE NUMEROCAB =
@CODIGO1
END
GO
86
2.3.6. fac_busca_factura
//Permite buscar una factura por su número
5/21/2007 4:08:14PM
CREATE PROCEDURE FAC_BUSCA_FACTURA
@CODIGO1 AS VARCHAR(15),
@CODIGO2 AS NUMERIC,
@CODIGO3 AS NUMERIC,
@CODIGO4 AS NUMERIC
AS
SELECT * FROM CABECERA_FACTURA WHERE TIPO =
@CODIGO1 AND SUCURSAL = @CODIGO2 AND CAJA = @CODIGO3
AND NUMEROCAJA = @CODIGO4
GO
2.3.7. fac_busca_parametros
//Permite buscar los parámetros del usuario, de la caja y de la sucursal
5/21/2007 4:07:35 PM
CREATE PROCEDURE FAC_BUSCA_PARAMETROS
@CODIGO AS INT,
@OPCION AS INT
AS
IF @OPCION = 1
87
BEGIN
SELECT * FROM CAJA WHERE CODCAJA = @CODIGO
END
IF @OPCION = 2
BEGIN
SELECT * FROM USUARIO WHERE CODUSU = @CODIGO
END
IF @OPCION = 3
BEGIN
SELECT * FROM SUCURSAL WHERE CODSUCUR = @CODIGO
END
GO
2.3.8. fac_busca_secuencia
//Busca el último número de la factura, ingreso, egreso, devolución, tickets,
combos, platos
5/11/2007 6:18:54 PM
CREATE PROCEDURE FAC_BUSCA_SECUENCIA
@CODIGO1 AS CHAR(3),
@CODIGO2 AS INT,
@CODIGO3 AS INT
AS
SELECT NUMERO FROM SECUENCIAS WHERE TIPO =
@CODIGO1 AND SUCURSAL = @CODIGO2 AND CAJA = @CODIGO3
GO
88
2.3.9. fac_cons_espec
//Nos permite buscar el detalle de las personas, facturas, los clientes,
productos
2/24/2007 2:02:19 PM
CREATE PROCEDURE FAC_CONS_ESPEC
@CODIGO AS INT,
@OPCION AS INT
AS
IF @OPCION = 1
BEGIN
SELECT *
FROM PERSONA
WHERE CODPERS=@CODIGO
END
IF @OPCION =2
BEGIN
SELECT * FROM PRODUCTO_SERV
WHERE CODPRODSERV =@CODIGO AND ESTADO=1
END
IF @OPCION =3
BEGIN
SELECT * FROM SUCURSAL
89
WHERE CODSUCUR =@CODIGO
END
IF @OPCION =4
BEGIN
SELECT * FROM PRODUCTO_SERV
WHERE protipo='C' and CODPRODSERV =@CODIGO AND
ESTADO=1
END
IF @OPCION =5
BEGIN
SELECT * FROM PRODUCTO_SERV
WHERE protipo='P' and CODPRODSERV =@CODIGO AND
ESTADO=1
END
IF @OPCION =6
BEGIN
SELECT * FROM PRODUCTO_SERV
WHERE CODPRODSERV =@CODIGO AND ESTADO=1
END
IF @OPCION =7
BEGIN
SELECT * FROM PRODUCTO_SERV
WHERE CODPRODSERV =@CODIGO AND PROTIPO='P' AND
ESTADO=1
END
90
IF @OPCION =8
BEGIN
SELECT * FROM PRODUCTO_SERV
WHERE CODPRODSERV =@CODIGO AND PROTIPO='C' AND
ESTADO=1
END
IF @OPCION =9
BEGIN
SELECT * FROM PRODUCTO_SERV
WHERE CODPRODSERV =@CODIGO
END
IF @OPCION =10
BEGIN
SELECT * FROM PRODUCTO_SERV
WHERE CODPRODSERV =@CODIGO AND ESTADO=1 AND
(PROTIPO='S' OR PROTIPO='P')
END
GO
2.3.10. fac_eli_bronceados
//Permite eliminar un registro de la tabla bronceado
5/28/2007 11:48:52 PM
CREATE PROCEDURE FAC_ELI_BRONCEADOS
@NUMEROCAJA AS INT
AS
91
UPDATE BRONCEADOS
SET SESION='', HORAINICIAL='', HORAFINAL='', TIPOMEMBRESIA='',
COMENTARIO='ANULADO', cliente=''
WHERE numeroCAJA=@numeroCAJA
GO
2.3.11. fac_eli_cabecera
//Nos permite eliminar un registro de la factura
5/21/2007 4:07:23 PM
CREATE PROCEDURE FAC_ELI_CABECERA
@TIPO AS CHAR(3),
@SUCURSAL AS NUMERIC,
@CAJA AS NUMERIC,
@NUMEROCAJA AS NUMERIC,
@OPCION AS INT
AS
IF @OPCION = 1
BEGIN
UPDATE CABECERA_FACTURA
SET PORCEDESCTO1 = 0.00,PORCEDESCTO2 = 0.00,PORCEIVA =
0.00, sUBTOTAL = 0.00, DESCUENTO1 = 0.00,DESCUENTO2 = 0.00,
IMPUESTO = 0.00, TOTAL = 0.00
WHERE TIPO = @TIPO AND SUCURSAL = @SUCURSAL AND
CAJA = @CAJA AND NUMEROCAJA = @NUMEROCAJA
92
END
IF @OPCION = 2
BEGIN
UPDATE CABECERA_FACTURA SET ELIMINADO = 1 WHERE TIPO
= @TIPO AND SUCURSAL = @SUCURSAL AND CAJA = @CAJA AND
NUMEROCAJA = @NUMEROCAJA
END
GO
2.3.12. fac_eli_detalles
//Elimina el detalle de las facturas, en este caso los productos
5/21/2007 4:07:06 PM
CREATE PROCEDURE FAC_ELI_DETALLES
@NUMEROCAB AS NUMERIC,
@OPCION AS INT
AS
IF @OPCION = 1
BEGIN
DELETE FROM DETALLE_FACTURA WHERE NUMEROCAB =
@NUMEROCAB
END
IF @OPCION = 2
93
BEGIN
DELETE FROM PAGOS_FACTURA WHERE NUMEROCAB =
@NUMEROCAB
END
GO
2.3.13. fac_eli_existencias
//Permite eliminar registros ya sean de facturas, ingresos, egresos o
devoluciones que fueron cargados al kardex
7/19/2007 6:52:26 PM
CREATE PROCEDURE FAC_ELI_EXISTENCIAS
@TIPO AS VARCHAR(2),
@NUMEROCAB AS NUMERIC,
@SUCURSAL AS VARCHAR(3),
@CAJA AS VARCHAR(3),
@NUMEROCAJA AS NUMERIC
AS
DELETE FROM EXISTENCIAS
WHERE TIPO=@TIPO
AND NUMEROCAB = @NUMEROCAB
AND SUCURSAL = @SUCURSAL
AND CAJA = @CAJA
AND NUMEROCAJ = @NUMEROCAJA
GO
94
2.3.14. fac_eli_locker
//Permite eliminar (estado inactivo) registros de de la tabla locker
6/17/2007 10:43:01 AM
CREATE PROCEDURE FAC_ELI_LOCKER
@NUMEROCAJA AS INT
AS
UPDATE LOCKER
SET TIPOMEMBRESIA='', COMENTARIO='ANULADO', CLIENTE=''
WHERE numeroCAJA=@numeroCAJA
GO
2.3.15. fac_eli_masajes
//Permite eliminar (estado inactivo) registros de de la tabla masajes
5/28/2007 11:22:58 AM
CREATE PROCEDURE FAC_ELI_MASAJES
@NUMEROCAJA AS INT
AS
UPDATE MASAJES
SET SESION='', HORAINICIAL='', HORAFINAL='', TIPOMEMBRESIA='',
COMENTARIO='ANULADO', CLIENTE='', MASAJISTA=''
WHERE numeroCAJA=@numeroCAJA
GO
95
2.3.16. fac_eli_parqueo
//Permite eliminar (estado inactivo) registros de de la tabla parqueo
6/17/2007 10:03:13 AM
CREATE PROCEDURE FAC_ELI_PARQUEO
@NUMEROCAJA AS INT
AS
UPDATE PARQUEO
SET HORAINICIAL='', TIPOMEMBRESIA='', COMENTARIO='ANULADO',
CLIENTE=''
WHERE numeroCAJA=@numeroCAJA
GO
2.3.17. fac_eli_personalt
//Permite eliminar (estado inactivo) registros de de la tabla personal trainer
5/22/2007 11:10:29 AM
CREATE PROCEDURE FAC_ELI_PERSONALT
@NUMEROCAJA AS INT
AS
UPDATE PERSONA_TRAINER
SET SESION='', HORAINICIAL='', HORAFINAL='', TIPOMEMBRESIA='',
COMENTARIO='ANULADO', ESTADO='0', PERSONAL='',cliente=''
WHERE numeroCAJA=@numeroCAJA
96
GO
2.3.18. fac_eli_pilates
//Permite eliminar (estado inactivo) registros de de la tabla pilates
5/22/2007 6:54:35 PM
CREATE PROCEDURE FAC_ELI_PILATES
@NUMEROCAJA AS INT
AS
UPDATE PILATES
SET SESION='', HORAINICIAL='', HORAFINAL='', TIPOMEMBRESIA='',
COMENTARIO='ANULADO', ESTADO='0', PILATES='',cliente=''
WHERE numeroCAJA=@numeroCAJA
GO
2.3.19. fac_ing_asistencias
//Permite ingresar registros a mi tabla asistencia, en otras palabras son los
datos del reloj
7/20/2007 8:47:14 AM
CREATE PROCEDURE FAC_ING_ASISTENCIAS
@CODIGOSECUEN AS VARCHAR(13),
@NOMBRE AS VARCHAR(50),
@FECHA AS VARCHAR(10),
@HORA AS VARCHAR(10)
97
AS
INSERT INTO ASISTENCIAS
(CODIGOSECUEN, NOMBRE, FECHA, HORA)
VALUES (@CODIGOSECUEN, @NOMBRE, @FECHA, @HORA)
GO
2.3.20. fac_ing_bronceados
//Permite ingresar registros a mi tabla bronceados
5/28/2007 11:49:29 AM
CREATE PROCEDURE FAC_ING_BRONCEADOS
@NUMEROCAJA AS INT,
@CLIENTE AS VARCHAR(10),
@SESION AS VARCHAR(3),
@HORAINICIAL AS VARCHAR(8),
@HORAFINAL AS VARCHAR(8),
@TIPOMEMBRESIA AS VARCHAR(3),
@COMENTARIO AS VARCHAR(400),
@FECHA AS DATETIME
AS
INSERT INTO BRONCEADOS
(NUMEROCAJA,CLIENTE, SESION, HORAINICIAL, HORAFINAL,
TIPOMEMBRESIA, COMENTARIO, FECHA)
98
VALUES (@NUMEROCAJA,@CLIENTE, @SESION, @HORAINICIAL,
@HORAFINAL, @TIPOMEMBRESIA, @COMENTARIO, @FECHA)
GO
2.3.21. fac_ing_cab_factura
//Permite ingresar un registro a la cabecera de la factura
3/11/2007 4:59:36 AM
CREATE PROCEDURE FAC_ING_CAB_FACTURA
@TIPO AS CHAR(2),
@SUCURSAL AS CHAR(3),
@CAJA AS CHAR(3),
@NUMEROCAJA AS NUMERIC,
@FECHA AS DATETIME,
@BODEGA AS CHAR(3),
@CLIENTE AS VARCHAR(10),
@VENDEDOR AS VARCHAR(10),
@CAJERO AS VARCHAR(10),
@NUMEROCAJERO AS NUMERIC,
@AUTORIZA AS VARCHAR(50),
@NOMBRECAJERO AS VARCHAR(50),
@COMENTARIO AS VARCHAR(1500),
@OBSERVACION AS VARCHAR(100),
@PORCEDESCTO1 AS DECIMAL(9,2),
@PORCEDESCTO2 AS DECIMAL(9,2),
@PORCEIVA AS DECIMAL(9,2),
@SUBTOTAL AS DECIMAL(9,2),
@DESCUENTO1 AS DECIMAL(9,2),
99
@DESCUENTO2 AS DECIMAL(9,2),
@IMPUESTO AS DECIMAL(9,2),
@TOTAL AS DECIMAL(9,2),
@TIPOAPLIC AS VARCHAR(2),
@NUMAPLIC AS NUMERIC,
@IMPRESO AS VARCHAR(2),
@HORA AS CHAR(10),
@ELIMINADO AS BIT
AS
INSERT INTO CABECERA_FACTURA
(TIPO,SUCURSAL,CAJA,NUMEROCAJA,FECHA,BODEGA,CLIENTE,
VENDEDOR,CAJERO,NUMEROCAJERO,AUTORIZA,NOMBRECAJERO,C
OMENTARIO,OBSERVACION,PORCEDESCTO1,
PORCEDESCTO2,PORCEIVA,SUBTOTAL,DESCUENTO1,DESCUENTO2,I
MPUESTO,TOTAL,TIPOAPLIC,NUMAPLIC,IMPRESO,HORA,ELIMINADO)
VALUES(@TIPO,@SUCURSAL,@CAJA,@NUMEROCAJA,@FECHA,@BO
DEGA,@CLIENTE,@VENDEDOR,@CAJERO,
@NUMEROCAJERO,@AUTORIZA,@NOMBRECAJERO,@COMENTARIO,
@OBSERVACION,@PORCEDESCTO1,@PORCEDESCTO2,
@PORCEIVA,@SUBTOTAL,@DESCUENTO1,@DESCUENTO2,@IMPUES
TO,@TOTAL,@TIPOAPLIC,@NUMAPLIC,@IMPRESO,@HORA,@ELIMINA
DO)
GO
100
2.3.22. fac_ing_cliente
//Permite ingresar registros a la tabla clientes
2/24/2007 2:02:19 PM
CREATE PROCEDURE FAC_ING_CLIENTE
@SEC AS VARCHAR(13),
@CEDULA AS VARCHAR(15),
@NOMBRE AS VARCHAR(500),
@APELLIDO AS VARCHAR(500),
@DIRECCION AS VARCHAR(500),
@TELEFONO AS VARCHAR(20),
@MAIL AS VARCHAR(100),
@CODCIUDAD AS INT,
@CODZONA AS INT,
@FECHAINGRESO AS VARCHAR(12),
@COMEN AS VARCHAR(400),
@FECHANAC AS VARCHAR(12),
@ESTDCIVIL AS CHAR(2),
@SEXO AS CHAR(2),
@EMPRESA AS VARCHAR(500),
@EST AS CHAR(2),
@FECHAMOD AS VARCHAR(12),
@FECHACAD AS VARCHAR(12),
@CODTIPO AS CHAR(4),
@TIPO AS CHAR(4),
@CODPER AS CHAR(4)
AS
101
INSERT INTO PERSONA (CODIGOSECUEN,CEDULA, CODTIPOPER,
PERNOMBRE, PERAPELLIDO, PERDIRECCION, PERTELEFONO,
PERMAIL, CODCIUDAD, CODZONA,FECHAINGRESO,
PERCOMENTARIO, FECHANAC,PERESTDCIVIL, PERSEXO,
PEREMPRESA, PERESTADO, FECHAMODIF, FECHASALIDA, CODEMPL,
TIPO)
VALUES (@SEC,@CEDULA,@CODTIPO, @NOMBRE, @APELLIDO,
@DIRECCION,@TELEFONO,
@MAIL, @CODCIUDAD, @CODZONA,@FECHAINGRESO, @COMEN,
@FECHANAC, @ESTDCIVIL, @SEXO, @EMPRESA, @EST,
@FECHAMOD,@FECHACAD, @CODPER, @TIPO)
GO
2.3.23. fac_ing_combo_cabecera
//Permite ingresar registros a la cabecera de la tabla combo
6/25/2007 6:43:14 PM
CREATE PROCEDURE FAC_ING_COMBO_CABECERA
@CODCOMBO AS INT,
@NOMBRE AS VARCHAR(50),
@PRECIO AS DECIMAL(9,2),
@ESTADO AS CHAR(2)
AS
INSERT INTO COMBO_CABECERA
(CODCOMBO,NOMBRE, PRECIO,
ESTADO,FECHA_CREACION,FECHA_MOD)
102
VALUES (@CODCOMBO,@NOMBRE, @PRECIO,
@ESTADO,GETDATE(),GETDATE())
GO
2.3.24. fac_ing_detalle
//Permite ingresar un registro al detalle de la factura
3/25/2007 12:23:04 PM
CREATE PROCEDURE FAC_ING_DETALLE
@NUMEROCAB AS NUMERIC,
@TIPO AS VARCHAR(15),
@SUCURSAL AS VARCHAR(15),
@CAJA AS VARCHAR(15),
@NUMEROCAJA AS NUMERIC,
@CODIGOPRODUCTO AS VARCHAR(50),
@BODEGA AS VARCHAR(15),
@FECHA AS DATETIME,
@CANTIDAD AS INT,
@TOTAL1 AS DECIMAL(9,2),
@TOTAL2 AS DECIMAL(9,2),
@DESCUENTO1 AS DECIMAL(9,2),
@DESCUENTO2 AS DECIMAL(9,2),
@VALORDESCUENTO1 AS DECIMAL(9,2),
@VALORDESCUENTO2 AS DECIMAL(9,2),
@PRECIO AS DECIMAL(9,2),
@COSTO AS DECIMAL(9,2),
@IVA AS DECIMAL(9,2),
103
@HORA AS CHAR(10)
AS
INSERT INTO DETALLE_FACTURA
(NUMEROCAB,TIPO,SUCURSAL,CAJA,NUMEROCAJA,CODIGOPRODUC
TO,BODEGA,FECHA,CANTIDAD,TOTAL1,TOTAL2,DESCUENTO1,DESCU
ENTO2,VALORDESCUENTO1,VALORDESCUENTO2,PRECIO,COSTO,IVA,
HORA)
VALUES(@NUMEROCAB,@TIPO,@SUCURSAL,@CAJA,@NUMEROCAJA
,@CODIGOPRODUCTO,@BODEGA,@FECHA,@CANTIDAD,@TOTAL1,@
TOTAL2,@DESCUENTO1,@DESCUENTO2,@VALORDESCUENTO1,@VA
LORDESCUENTO2,@PRECIO,@COSTO,@IVA,@HORA)
GO
2.3.25. fac_ing_detalle_combo
//Permite ingresar un registro al detalle del combo
6/25/2007 11:07:56 PM
CREATE PROCEDURE FAC_ING_DETALLE_COMBO
@CODCOMBO AS INT,
@CODPRODSERV AS VARCHAR(50),
@CANTIDAD AS INT,
@TOTAL AS DECIMAL(9,2),
@COSTO AS DECIMAL(9,2),
@PRECIO AS DECIMAL(9,2),
@ESTADO AS CHAR(2)
AS
104
INSERT INTO COMBO_DETALLE
(CODCOMBO,CODPRODSERV,FECHA_CREACION,FECHA_MOD,CANTI
DAD,COSTO,PRECIO,TOTAL,ESTADO)
VALUES
(@CODCOMBO,@CODPRODSERV,GETDATE(),GETDATE(),@CANTIDAD,
@COSTO,@PRECIO,@TOTAL,@ESTADO)
GO
2.3.26. fac_ing_detalle_platos
//Permite ingresar un registro al detalle de un plato
7/11/2007 8:34:23 PM
CREATE PROCEDURE FAC_ING_DETALLE_PLATOS
@CODPLATOS AS INT,
@CODPRODSERV AS VARCHAR(50),
@MEDIDA AS VARCHAR(20),
@CANTIDAD AS INT,
@TOTAL AS DECIMAL(9,2),
@COSTO AS DECIMAL(9,2),
@PRECIO AS DECIMAL(9,2),
@ESTADO AS CHAR(2)
AS
INSERT INTO PLATOS_DETALLE
(CODPLATO,CODPRODSERV,FECHA_CREACION,FECHA_MOD,CANTID
AD,COSTO,PRECIO,TOTAL,ESTADO,MEDIDA)
VALUES
(@CODPLATOS,@CODPRODSERV,GETDATE(),GETDATE(),@CANTIDAD
,@COSTO,@PRECIO,@TOTAL,@ESTADO,@MEDIDA)
105
GO
2.3.27. fac_ing_existencias
//Permite ingresar un registro a la tabla existencias
7/20/2007 8:47:14 AM
CREATE PROCEDURE FAC_ING_EXISTENCIAS
@TIPO AS VARCHAR(15),
@NUMEROCAB AS NUMERIC,
@SUCURSAL AS VARCHAR(15),
@CAJA AS VARCHAR(15),
@NUMEROCAJA AS NUMERIC,
@CODIGOPRODUCTO AS VARCHAR(50),
@FECHA AS DATETIME,
@CANTIDAD AS INT
AS
INSERT INTO EXISTENCIAS
(TIPO, NUMEROCAB, SUCURSAL, CAJA, NUMEROCAJ, CODIGO,
FECHA,CANTIDAD)
VALUES
(@TIPO, @NUMEROCAB, @SUCURSAL, @CAJA, @NUMEROCAJA,
@CODIGOPRODUCTO,@FECHA,@CANTIDAD)
GO
106
2.3.28. fac_ing_locker
//Permite ingresar un registro a la tabla locker
6/17/2007 10:43:39 AM
CREATE PROCEDURE FAC_ING_LOCKER
@NUMEROCAJA AS INT,
@CLIENTE AS VARCHAR(10),
@TIPOMEMBRESIA AS VARCHAR(3),
@COMENTARIO AS VARCHAR(400),
@FECHA AS DATETIME
AS
INSERT INTO LOCKER
(NUMEROCAJA,CLIENTE,TIPOMEMBRESIA,COMENTARIO,FECHA)
VALUES
(@NUMEROCAJA,@CLIENTE,@TIPOMEMBRESIA,@COMENTARIO,@FE
CHA)
GO
2.3.29. fac_ing_masajes
//Permite ingresar un registro a la tabla masaje
5/28/2007 11:24:19 AM
CREATE PROCEDURE FAC_ING_MASAJES
@NUMEROCAJA AS INT,
107
@CLIENTE AS VARCHAR(10),
@MASAJISTA AS VARCHAR(10),
@SESION AS VARCHAR(3),
@HORAINICIAL AS VARCHAR(8),
@HORAFINAL AS VARCHAR(8),
@TIPOMEMBRESIA AS VARCHAR(3),
@COMENTARIO AS VARCHAR(400),
@FECHA AS DATETIME
AS
INSERT INTO MASAJES
(NUMEROCAJA,CLIENTE,MASAJISTA,SESION,HORAINICIAL,HORAFINAL
,TIPOMEMBRESIA,COMENTARIO,FECHA)
VALUES
(@NUMEROCAJA,@CLIENTE,@MASAJISTA,@SESION,@HORAINICIAL,
@HORAFINAL,@TIPOMEMBRESIA,@COMENTARIO,@FECHA)
GO
2.3.30. fac_ing_pagos
//Permite ingresar un registro a la tabla pagos
5/11/2007 6:57:27 PM
CREATE PROCEDURE FAC_ING_PAGOS
@NUMEROCAB AS numeric,
108
@TIPO AS char(2),
@SUCURSAL AS char(3),
@CAJA AS char(3),
@NUMEROCAJA AS numeric,
@TIPOAPLIC AS char(2),
@FECHA AS datetime,
@FORMAPAGO AS char(2),
@PORCOBRAR AS decimal(9,2),
@VALORRECIBIDO AS decimal(9,2),
@CODIGOTARJETA AS nvarchar(50),
@NUMEROTARJETA AS nvarchar(50),
@NOMBRECLIENTE AS nvarchar(50),
@TELEFONOTARJETA AS nvarchar(50),
@LOTE AS char(10),
@FECHACHEQUE AS datetime,
@CODIGOBANCO AS nvarchar(50),
@CODIGOCIUDAD AS nvarchar(50),
@NUMEROCHEQUE AS nvarchar(50),
@CTACTE AS nvarchar(50),
@NOMBREEMPLEADO AS nvarchar(50),
@CEDULAEMPLEADO AS char(10),
@AUTORIZACIONCRED AS nvarchar(50),
@QUIENREGALA AS nvarchar(50),
@BENEFICIARIO AS nvarchar(50),
@AUTORIZACIONOBS AS nvarchar(50),
@FECHADEVOLUCION AS datetime,
@NUMERODEVOLUCION AS char(10),
@CANCELADO AS char(2),
@HORA AS char(10),
@CIERRE AS BIT
109
AS
INSERT INTO PAGOS_FACTURA
(NUMEROCAB,TIPO,SUCURSAL,CAJA,NUMEROCAJA,TIPOAPLIC,FECHA
,FORMAPAGO,PORCOBRAR,VALORRECIBIDO,CODIGOTARJETA,NUME
ROTARJETA,NOMBRECLIENTE,TELEFONOTARJETA,LOTE,FECHACHEQ
UE,CODIGOBANCO,CODIGOCIUDAD,NUMEROCHEQUE,CTACTE,NOMB
REEMPLEADO,CEDULAEMPLEADO,AUTORIZACIONCRED,QUIENREGAL
A,BENEFICIARIO,AUTORIZACIONOBS,FECHADEVOLUCION,NUMERODE
VOLUCION,CANCELADO,HORA,CIERRE)
VALUES(@NUMEROCAB,@TIPO,@SUCURSAL,@CAJA,@NUMEROCAJA
,@TIPOAPLIC,@FECHA,@FORMAPAGO,@PORCOBRAR,@VALORRECIB
IDO,@CODIGOTARJETA,@NUMEROTARJETA,@NOMBRECLIENTE,@TE
LEFONOTARJETA,@LOTE,@FECHACHEQUE,@CODIGOBANCO,@CODI
GOCIUDAD,@NUMEROCHEQUE,@CTACTE,@NOMBREEMPLEADO,@C
EDULAEMPLEADO,@AUTORIZACIONCRED,@QUIENREGALA,@BENEFI
CIARIO,@AUTORIZACIONOBS,@FECHADEVOLUCION,@NUMERODEVO
LUCION,@CANCELADO,@HORA,@CIERRE)
GO
2.3.31. fac_ing_parqueo
//Permite ingresar un registro a la tabla parqueo
6/17/2007 9:53:30 AM
CREATE PROCEDURE FAC_ING_PARQUEO
@NUMEROCAJA AS INT,
@CLIENTE AS VARCHAR(10),
110
@TIPOMEMBRESIA AS VARCHAR(3),
@COMENTARIO AS VARCHAR(400),
@FECHA AS DATETIME,
@HORAINICIAL AS DATETIME
AS
INSERT INTO PARQUEO
(NUMEROCAJA,CLIENTE,HORAINICIAL,TIPOMEMBRESIA,COMENTARIO,
FECHA)
VALUES
(@NUMEROCAJA,@CLIENTE,@HORAINICIAL,@TIPOMEMBRESIA,@CO
MENTARIO,@FECHA)
GO
2.3.32. fac_ing_personalt
//Permite ingresar un registro a la tabla personal trainer
5/14/2007 11:08:45 AM
CREATE PROCEDURE FAC_ING_PERSONALT
@NUMEROCAJA AS INT,
@CLIENTE AS VARCHAR(10),
@PERSONAL AS VARCHAR(10),
@SESION AS VARCHAR(3),
@HORAINICIAL AS VARCHAR(8),
@HORAFINAL AS VARCHAR(8),
111
@TIPOMEMBRESIA AS VARCHAR(3),
@COMENTARIO AS VARCHAR(400),
@ESTADO AS VARCHAR(2),
@FECHA AS DATETIME
AS
INSERT INTO PERSONA_TRAINER
(NUMEROCAJA,CLIENTE,PERSONAL,SESION,HORAINICIAL,HORAFINAL
,TIPOMEMBRESIA,COMENTARIO,ESTADO,FECHA)
VALUES
(@NUMEROCAJA,@CLIENTE,@PERSONAL,@SESION,@HORAINICIAL,
@HORAFINAL,@TIPOMEMBRESIA,@COMENTARIO,@ESTADO,
@FECHA)
GO
2.3.33. fac_ing_pilates
//Permite ingresar un registro a la tabla pilates
5/15/2007 2:46:13 PM
CREATE PROCEDURE FAC_ING_PILATES
@NUMEROCAJA AS INT,
@CLIENTE AS VARCHAR(10),
@PILATES AS VARCHAR(10),
@SESION AS VARCHAR(3),
@HORAINICIAL AS VARCHAR(8),
@HORAFINAL AS VARCHAR(8),
112
@TIPOMEMBRESIA AS VARCHAR(3),
@COMENTARIO AS VARCHAR(400),
@ESTADO AS VARCHAR(2),
@FECHA AS DATETIME
AS
INSERT INTO PILATES
(NUMEROCAJA,CLIENTE,PILATES,SESION,HORAINICIAL,HORAFINAL,TI
POMEMBRESIA,COMENTARIO,ESTADO,FECHA)
VALUES
(@NUMEROCAJA,@CLIENTE,@PILATES,@SESION,@HORAINICIAL,@H
ORAFINAL,@TIPOMEMBRESIA,@COMENTARIO,@ESTADO,@FECHA)
GO
2.3.34. fac_ing_platos_cabecera
//Permite ingresar un registro a la cabecera de la tabla platos
7/1/2007 8:36:08 PM
CREATE PROCEDURE FAC_ING_PLATOS_CABECERA
@CODPLATOS AS INT,
@CODPRODSERV AS INT,
@NOMBRE AS VARCHAR(50),
@PRECIO AS DECIMAL(9,2),
@COSTOTOTAL AS DECIMAL(9,2),
@ESTADO AS CHAR(2)
AS
113
INSERT INTO PLATOS_CABECERA
(CODPLATO,CODPRODSERV,NOMBRE, PRECIO,
ESTADO,FECHA_CREACION,FECHA_MOD,COSTO)
VALUES (@CODPLATOS,@CODPRODSERV,@NOMBRE, @PRECIO,
@ESTADO,GETDATE(),GETDATE(),@COSTOTOTAL)
GO
2.3.35. fac_ing_prodserv
//Permite ingresar un registro a la tabla PRODUCTO_SERV
4/22/2007 3:22:00 PM
CREATE PROCEDURE FAC_ING_PRODSERV
@DESCRIP AS VARCHAR(500),
@DESCRIPCION AS VARCHAR(1500),
@COSTO AS DECIMAL(18,4),
@PRECIO1 AS DECIMAL(18,4),
@PRECIO2 AS DECIMAL(18,4),
@STOCK AS INT,
@IVA AS CHAR(2),
@TIPOPRO AS CHAR(2),
@TIPOMEMBRE AS CHAR(4),
@DIAS AS NUMERIC,
@ESTADO AS CHAR(2)
AS
INSERT INTO PRODUCTO_SERV (NOMBRE, CODPADRE, PROTIPO,
COSTO, PROPRECIO, PROPRECIO2, PROIVA, PROSTOCK,
114
CODESTADO, PROFECING,
PROFECHMODIF,DESCRIPCION,TIPOMEMBRE,DIAS,ESTADO)
VALUES (@DESCRIP, 1, @TIPOPRO, @COSTO, @PRECIO1, @PRECIO2
, @IVA, @STOCK,@ESTADO, GETDATE(),
GETDATE(),@DESCRIPCION,@TIPOMEMBRE,@DIAS,@ESTADO)
GO
2.3.36. fac_ing_secuencia
//Permite ingresar un registro a la tabla secuencia
5/11/2007 6:57:50 PM
CREATE PROCEDURE FAC_ING_SECUENCIA
@TIPO AS VARCHAR(3),
@SUCURSAL AS INT,
@CAJA AS INT,
@NUMERO AS NUMERIC
AS
INSERT INTO SECUENCIAS (TIPO, SUCURSAL, CAJA, NUMERO)
VALUES (@TIPO, @SUCURSAL, @CAJA, @NUMERO)
GO
2.3.37. fac_mod_bronceados
//Permite modificar un registro de la tabla bronceados
5/28/2007 11:50:14 AM
115
CREATE PROCEDURE FAC_MOD_BRONCEADOS
@NUMEROCAJA AS INT,
@CLIENTE AS VARCHAR(10),
@SESION AS VARCHAR(3),
@HORAINICIAL AS VARCHAR(8),
@HORAFINAL AS VARCHAR(8),
@TIPOMEMBRESIA AS VARCHAR(3),
@COMENTARIO AS VARCHAR(400),
@FECHA AS DATETIME
AS
UPDATE BRONCEADOS
SET SESION=@SESION, HORAINICIAL=@HORAINICIAL,
HORAFINAL=@HORAFINAL, TIPOMEMBRESIA=@TIPOMEMBRESIA,
COMENTARIO=@COMENTARIO, FECHA=@FECHA
WHERE numeroCAJA=@numeroCAJA
GO
2.3.38. fac_mod_cliente
//Permite modificar un registro de la tabla persona
2/24/2007 2:53:35 PM
CREATE PROCEDURE FAC_MOD_CLIENTE
@COD AS VARCHAR(15),
@CEDULA AS VARCHAR(15),
@NOMBRE AS VARCHAR(500),
@APELLIDO AS VARCHAR(500),
116
@DIRECCION AS VARCHAR(500),
@TELEFONO AS VARCHAR(20),
@MAIL AS VARCHAR(100),
@CODCIUDAD AS INT,
@CODZONA AS INT,
@FECHAINGRESO AS VARCHAR(12),
@COMEN AS VARCHAR(400),
@FECHANAC AS VARCHAR(12),
@ESTDCIVIL AS CHAR(2),
@SEXO AS CHAR(2),
@EMPRESA AS VARCHAR(500),
@EST AS CHAR(2),
@FECHAMOD AS VARCHAR(12),
@FECHACAD AS VARCHAR(12),
@CODPER AS CHAR(4),
@CODTIPO AS CHAR(4),
@TIPO AS CHAR(4)
AS
UPDATE PERSONA
SET CEDULA=@CEDULA, CODTIPOPER=@CODTIPO,
PERNOMBRE=@NOMBRE, PERAPELLIDO=@APELLIDO,
PERDIRECCION=@DIRECCION, PERTELEFONO=@TELEFONO,
PERMAIL=@MAIL, CODCIUDAD=@CODCIUDAD,
CODZONA=@CODZONA,FECHAINGRESO=@FECHAINGRESO,
PERCOMENTARIO=@COMEN,FECHANAC=@FECHANAC,PERESTDCIVI
L=@ESTDCIVIL,
PERSEXO=@SEXO, PEREMPRESA=@EMPRESA, PERESTADO=@EST,
FECHASALIDA=@FECHACAD, FECHAMODIF=@FECHAMOD,
CODEMPL=@CODPER, TIPO=@TIPO
117
WHERE CODPERS=@COD
GO
2.3.39. fac_mod_combo_cabecera
//Permite modificar un registro de la cabecera de la tabla combo
6/25/2007 6:45:40 PM
CREATE PROCEDURE FAC_MOD_COMBO_CABECERA
@CODCOMBO AS INT,
@NOMBRE AS VARCHAR(50),
@ESTADO AS CHAR(2),
@PRECIO AS DECIMAL(9,2)
AS
UPDATE COMBO_CABECERA
SET NOMBRE= @NOMBRE,
ESTADO= @ESTADO,
PRECIO = @PRECIO,
FECHA_MOD = GETDATE()
WHERE CODCOMBO = @CODCOMBO
GO
2.3.40. fac_mod_locker
//Permite modificar un registro de la tabla locker
6/17/2007 10:44:17 AM
118
CREATE PROCEDURE FAC_MOD_LOCKER
@NUMEROCAJA AS INT,
@CLIENTE AS VARCHAR(10),
@TIPOMEMBRESIA AS VARCHAR(3),
@COMENTARIO AS VARCHAR(400),
@FECHA AS DATETIME
AS
UPDATE LOCKER
SET TIPOMEMBRESIA=@TIPOMEMBRESIA,
COMENTARIO=@COMENTARIO, FECHA=@FECHA
WHERE numeroCAJA=@numeroCAJA
GO
2.3.41. fac_mod_masajes
//Permite modificar un registro de la tabla masajes
5/28/2007 11:25:39 AM
CREATE PROCEDURE FAC_MOD_MASAJES
@NUMEROCAJA AS INT,
@CLIENTE AS VARCHAR(10),
@MASAJISTA AS VARCHAR(10),
@SESION AS VARCHAR(3),
@HORAINICIAL AS VARCHAR(8),
@HORAFINAL AS VARCHAR(8),
@TIPOMEMBRESIA AS VARCHAR(3),
@COMENTARIO AS VARCHAR(400),
@FECHA AS DATETIME
119
AS
UPDATE MASAJES
SET SESION=@SESION, HORAINICIAL=@HORAINICIAL,
HORAFINAL=@HORAFINAL, TIPOMEMBRESIA=@TIPOMEMBRESIA,
COMENTARIO=@COMENTARIO, FECHA=@FECHA,
MASAJISTA=@MASAJISTA
WHERE numeroCAJA=@numeroCAJA
GO
2.3.42. fac_mod_memb_cliente
//Permite modificar la fecha de modificación de un registro de la tabla
persona
4/22/2007 6:10:25 PM
CREATE PROCEDURE FAC_MOD_MEMB_CLIENTE
@COD AS VARCHAR(15),
@FECHAMOD AS VARCHAR(12),
@FECHACAD AS VARCHAR(12),
@CODTIPO AS CHAR(4)
AS
UPDATE PERSONA
SET FECHASALIDA=@FECHACAD, FECHAMODIF=@FECHAMOD,
TIPO=@CODTIPO
WHERE CODPERS=@COD
GO
120
2.3.43. fac_mod_parqueo
//Permite modificar un registro de la tabla parqueo
6/17/2007 9:46:02 AM
CREATE PROCEDURE FAC_MOD_PARQUEO
@NUMEROCAJA AS INT,
@CLIENTE AS VARCHAR(10),
@TIPOMEMBRESIA AS VARCHAR(3),
@COMENTARIO AS VARCHAR(400),
@FECHA AS DATETIME,
@HORAINICIAL AS DATETIME
AS
UPDATE PARQUEO
SET TIPOMEMBRESIA=@TIPOMEMBRESIA,
COMENTARIO=@COMENTARIO, FECHA=@FECHA,
HORAINICIAL=@HORAINICIAL
WHERE numeroCAJA=@numeroCAJA
GO
2.3.44. fac_mod_personalt
//Permite modificar un registro de la tabla personal trainer
5/14/2007 10:57:54 AM
CREATE PROCEDURE FAC_MOD_PERSONALT
@NUMEROCAJA AS INT,
@CLIENTE AS VARCHAR(10),
121
@PERSONAL AS VARCHAR(10),
@SESION AS VARCHAR(3),
@HORAINICIAL AS VARCHAR(8),
@HORAFINAL AS VARCHAR(8),
@TIPOMEMBRESIA AS VARCHAR(3),
@COMENTARIO AS VARCHAR(400),
@ESTADO AS VARCHAR(2),
@FECHA AS DATETIME
AS
UPDATE PERSONA_TRAINER
SET SESION=@SESION, HORAINICIAL=@HORAINICIAL,
HORAFINAL=@HORAFINAL, TIPOMEMBRESIA=@TIPOMEMBRESIA,
COMENTARIO=@COMENTARIO, FECHA=@FECHA,
ESTADO=@ESTADO, PERSONAL=@PERSONAL
WHERE numeroCAJA=@numeroCAJA
GO
2.3.45. fac_mod_pilates
//Permite modificar un registro de la tabla pilates
5/15/2007 2:56:17 PM
CREATE PROCEDURE FAC_MOD_PILATES
@NUMEROCAJA AS INT,
@CLIENTE AS VARCHAR(10),
@PILATES AS VARCHAR(10),
@SESION AS VARCHAR(3),
@HORAINICIAL AS VARCHAR(8),
122
@HORAFINAL AS VARCHAR(8),
@TIPOMEMBRESIA AS VARCHAR(3),
@COMENTARIO AS VARCHAR(400),
@ESTADO AS VARCHAR(2),
@FECHA AS DATETIME
AS
UPDATE PILATES
SET SESION=@SESION, HORAINICIAL=@HORAINICIAL,
HORAFINAL=@HORAFINAL, TIPOMEMBRESIA=@TIPOMEMBRESIA,
COMENTARIO=@COMENTARIO, FECHA=@FECHA,
ESTADO=@ESTADO, PILATES=@PILATES
WHERE numeroCAJA=@numeroCAJA
GO
2.3.46. fac_mod_platos_cabecera
//Permite modificar un registro de la cabecera de la tabla platos
7/1/2007 8:32:56 PM
CREATE PROCEDURE FAC_MOD_PLATOS_CABECERA
@CODPLATOS AS INT,
@NOMBRE AS VARCHAR(50),
@ESTADO AS CHAR(2),
@COSTOTOTAL AS DECIMAL(9,2),
@PRECIO AS DECIMAL(9,2)
AS
UPDATE PLATOS_CABECERA
123
SET NOMBRE= @NOMBRE,
ESTADO= @ESTADO,
PRECIO = @PRECIO,
COSTO = @COSTOTOTAL,
FECHA_MOD = GETDATE()
WHERE CODPLATO = @CODPLATOS
GO
2.3.47. fac_mod_prodserv
//Permite modificar un registro de la tabla producto_serv
4/22/2007 2:55:28 PM
CREATE PROCEDURE FAC_MOD_PRODSERV
@COD AS VARCHAR(15),
@DESCRIP AS VARCHAR(500),
@DESCRIPCION AS VARCHAR(1500),
@COSTO AS DECIMAL(18,4),
@PRECIO1 AS DECIMAL(18,4),
@PRECIO2 AS DECIMAL(18,4),
@IVA AS CHAR(2),
@TIPOPRO AS CHAR(2),
@FECHAMOD as DATETIME,
@TIPOMEMBRE AS CHAR(4),
@STOCK AS INT,
@DIAS AS NUMERIC,
@ESTADO AS CHAR(2)
AS
124
UPDATE PRODUCTO_SERV
SET NOMBRE=@DESCRIP, PROTIPO=@TIPOPRO,
COSTO=@COSTO,PROPRECIO=@PRECIO1,
PROPRECIO2=@PRECIO2 , PROIVA=@IVA, PROFECHMODIF =
@FECHAMOD,DESCRIPCION=@DESCRIPCION,TIPOMEMBRE=@TIPOM
EMBRE,PROSTOCK=@STOCK,DIAS=@DIAS,ESTADO=@ESTADO
WHERE CODPRODSERV=@COD
GO
2.3.48. fac_mod_secuencia
//Permite modificar el último número de la tabla secuencia del tipo
correspondiente
5/11/2007 6:58:09 PM
CREATE PROCEDURE FAC_MOD_SECUENCIA
@TIPO AS VARCHAR(3),
@SUCURSAL AS INT,
@CAJA AS INT,
@NUMERO AS NUMERIC
AS
UPDATE SECUENCIAS
SET NUMERO = @NUMERO
WHERE TIPO = @TIPO AND SUCURSAL = @SUCURSAL AND CAJA =
@CAJA
GO
125
2.3.49. imp_bronceados1
//Permite imprimir un ticket de bronceado
5/28/2007 11:56:13 AM
CREATE PROCEDURE IMP_BRONCEADOS1
@NUMEROCAJA AS INT
AS
SELECT A.numeroCAJA,
A.cliente,
LTRIM(B.perapellido)+' '+LTRIM(B.pernombre) AS
nombrecliente,
A.horainicial,
A.horafinal,
A.tipomembresia,
A.fecha,
A.comentario
FROM bronceados AS A,
persona AS B
WHERE A.cliente = B.cedula
AND A.numerocaja = @numerocaja
GO
126
2.3.50. imp_clientes
//Permite imprimir un registro de la tabla persona
6/4/2007 8:30:45 PM
CREATE PROCEDURE IMP_CLIENTES
@CEDULA AS VARCHAR(10)
AS
SELECT *
FROM PERSONA
WHERE CEDULA = @CEDULA
GO
2.3.51. imp_combo
//Permite imprimir un registro de la tabla combo
6/22/2007 8:12:08 PM
CREATE PROCEDURE IMP_COMBO
@CODCOMBO AS INT
AS
SELECT
CA.CODCOMBO,CA.NOMBRE,CA.PRECIO,CA.ESTADO,CA.FECHA_CRE
127
ACION,CA.FECHA_MOD,DE.CODPRODSERV,PR.NOMBRE AS
NPRODU,DE.CANTIDAD,DE.COSTO,DE.TOTAL ,DE.PRECIO AS PRECIO1
FROM COMBO_CABECERA AS CA, COMBO_DETALLE AS DE,
PRODUCTO_SERV AS PR
WHERE CA.CODCOMBO=DE.CODCOMBO AND
DE.CODPRODSERV=PR.CODPRODSERV AND
CA.CODCOMBO=@CODCOMBO
GO
2.3.52. imp_locker
//Permite imprimir un registro de la tabla locker
6/17/2007 12:11:00 PM
CREATE PROCEDURE IMP_LOCKER
@NUMEROCAJA AS INT
AS
SELECT A.numeroCAJA,
A.cliente,
LTRIM(B.perapellido)+' '+LTRIM(B.pernombre) AS
nombrecliente,
A.tipomembresia,
A.fecha,
A.comentario
FROM LOCKER AS A,
persona AS B
WHERE A.cliente = B.cedula
128
AND A.numerocaja = @numerocaja
GO
2.3.53. imp_masajes1
//Permite imprimir un ticket de la tabla masaje
5/28/2007 11:26:33 AM
CREATE PROCEDURE IMP_MASAJES1
@NUMEROCAJA AS INT
AS
SELECT a.numerocaja,
a.cliente,LTRIM(B.perapellido) + ' '+ LTRIM(B.pernombre) AS
NOMBRECLIENTE,
a.MASAJISTA,
a.horainicial,
a.horafinal,
a.tipomembresia,
a.comentario,
a.fecha
FROM MASAJES as a,
persona as b
WHERE a.cliente=b.cedula
AND a.numerocaja=@numerocaja
GO
129
2.3.54. imp_masajes2
//Permite imprimir un ticket de la tabla masaje
5/28/2007 11:27:44 AM
CREATE PROCEDURE IMP_MASAJES2
@NUMEROCAJA AS INT
AS
SELECT LTRIM(C.perapellido)+' '+LTRIM(C.pernombre) AS
NOMBREMASAJISTA,
a.MASAJISTA
FROM MASAJES as a,
persona as C
WHERE A.MASAJISTA = C.cedula
AND a.numerocaja=@NUMEROCAJA
GO
2.3.55. imp_parqueo
//Permite imprimir un ticket de la tabla parqueo
6/17/2007 12:09:07 PM
CREATE PROCEDURE IMP_PARQUEO
@NUMEROCAJA AS INT
AS
130
SELECT A.numeroCAJA,
A.cliente,
LTRIM(B.perapellido)+' '+LTRIM(B.pernombre) AS
nombrecliente,
A.horainicial,
A.tipomembresia,
A.fecha,
A.comentario
FROM PARQUEO AS A,
persona AS B
WHERE A.cliente = B.cedula
AND A.numerocaja = @numerocaja
GO
2.3.56. imp_personal1
//Permite imprimir un ticket de la tabla personal trainer
5/23/2007 4:34:13 PM
CREATE PROCEDURE IMP_PERSONAL1
@NUMEROCAJA AS INT
AS
SELECT a.numerocaja,
a.cliente,
LTRIM(B.perapellido) + ' ' + LTRIM(B.pernombre) AS
NOMBRECLIENTE,
a.personal,
131
a.horainicial,
a.horafinal,
a.tipomembresia,
a.estado,
a.comentario,
a.fecha
FROM PERSONA_TRAINER as a,
persona as b
WHERE a.cliente=b.cedula
AND a.numerocaja=@numerocaja
GO
2.3.57. imp_personal2
//Permite imprimir un ticket de la tabla personal trainer
5/23/2007 5:27:01 PM
CREATE PROCEDURE IMP_PERSONAL2
@NUMEROCAJA AS INT
AS
SELECT LTRIM(C.perapellido)+' '+LTRIM(C.pernombre) AS
NOMBREPERSONAL,
a.personal
FROM PERSONA_TRAINER as a,
persona as C
WHERE A.personal=C.cedula
AND a.numerocaja=@NUMEROCAJA
GO
132
2.3.58. imp_pilates1
//Permite imprimir un ticket de la tabla pilates
5/27/2007 6:51:09 PM
CREATE PROCEDURE IMP_PILATES1
@NUMEROCAJA AS INT
AS
SELECT a.numerocaja,
a.cliente,
LTRIM(B.perapellido) + ' ' + LTRIM(B.pernombre) AS
NOMBRECLIENTE,
a.PILATES,
a.horainicial,
a.horafinal,
a.tipomembresia,
a.estado,
a.comentario,
a.fecha
FROM PILATES as a,
persona as b
WHERE a.cliente=b.cedula
AND a.numerocaja=@numerocaja
GO
133
2.3.59. imp_pilates2
//Permite imprimir un ticket de la tabla pilates
5/27/2007 6:51:53 PM
CREATE PROCEDURE IMP_PILATES2
@NUMEROCAJA AS INT
AS
SELECT LTRIM(C.perapellido)+' '+LTRIM(C.pernombre) AS
NOMBREPERSONAL,
a.PILATES
FROM PILATES as
a,persona as C
WHERE A.PILATES=C.cedula
AND a.numerocaja=@NUMEROCAJA
GO
2.3.60. imp_platos
//Permite imprimir un registro de la tabla platos
7/1/2007 8:31:12 PM
CREATE PROCEDURE IMP_PLATOS
@CODPLATOS AS INT
AS
134
SELECT
CA.CODPLATO,CA.NOMBRE,CA.PRECIO,CA.ESTADO,CA.FECHA_CREA
CION,CA.FECHA_MOD,DE.CODPRODSERV,PR.NOMBRE AS
NPRODU,DE.CANTIDAD,DE.COSTO,DE.TOTAL ,DE.PRECIO AS
PRECIO1,de.MEDIDA
FROM PLATOS_CABECERA AS CA, PLATOS_DETALLE AS DE,
PRODUCTO_SERV AS PR
WHERE CA.CODPLATO=DE.CODPLATO AND
DE.CODPRODSERV=PR.CODPRODSERV
AND CA.CODPLATO=@CODPLATOS
GO
2.3.61. imp_productos_serv
//Permite imprimir un registro de la tabla productos_serv
6/5/2007 5:20:23 PM
CREATE PROCEDURE IMP_PRODUCTOS_SERV
@CODIGO AS INT
AS
SELECT *
FROM PRODUCTO_SERV
WHERE CODPRODSERV = @CODIGO
GO
135
2.3.62. imp_rep_asistencias
//Permite imprimir reportes de la asistencia de los socios
7/16/2007 8:23:06 AM
CREATE PROCEDURE IMP_REP_ASISTENCIAS
@FECHAINI AS VARCHAR(10),
@FECHAFIN AS VARCHAR(10),
@DESDECED AS VARCHAR(10),
@HASTACED AS VARCHAR(10)
AS
SELECT ASI.CODIGOSECUEN, ASI.FECHA,
ASI.HORA,(LTRIM(PE.PERAPELLIDO)+' '+LTRIM(PE.PERNOMBRE)) AS
NOMBRES,PE.CEDULA,PE.FECHASALIDA,PE.CODTIPOPER
FROM ASISTENCIAS AS ASI,PERSONA AS PE
WHERE ASI.CODIGOSECUEN=PE.CEDULA
AND ASI.fecha>=convert(datetime,@FECHAINI)
and ASI.fecha<=convert(datetime,@FECHAFIN)
AND PE.CEDULA>=@DESDECED AND PE.CEDULA<=@HASTACED
ORDER BY ASI.CODIGOSECUEN,ASI.FECHA,ASI.HORA
GO
2.3.63. imp_rep_bancos
//Permite imprimir reportes de los pagos efectuados con cheque
7/5/2007 4:41:22 PM
136
CREATE PROCEDURE IMP_REP_BANCOS
@FECHAINI AS VARCHAR(10),
@FECHAFIN AS VARCHAR(10),
@DESDESUC AS INT,
@HASTASUC AS INT
AS
SELECT PA.SUCURSAL, PA.FECHA, PA.FORMAPAGO, PA.PORCOBRAR,
PA.FECHACHEQUE, PA.CODIGOBANCO, BA.DESCRIPCION,
PA.CODIGOCIUDAD, CI.DESCRIPCION, PA.NUMEROCHEQUE,
PA.CTACTE
FROM PAGOS_FACTURA AS PA,TIPO_BANCO AS BA,CIUDAD AS CI
WHERE PA.CODIGOBANCO = BA.CODTIPOBANKO
AND PA.CODIGOCIUDAD = CI.CODCIUDAD
AND PA.SUCURSAL>=@DESDESUC
AND PA.SUCURSAL<=@HASTASUC
AND PA.FECHA>=CONVERT(DATETIME,@FECHAINI)
AND PA.FECHA<=CONVERT(DATETIME,@FECHAFIN)
ORDER BY PA.SUCURSAL,PA.CODIGOBANCO,CODIGOCIUDAD
GO
2.3.64. imp_rep_combos
//Permite imprimir reportes de los combos creados
137
7/5/2007 8:13:10 PM
CREATE PROCEDURE IMP_REP_COMBOS
@DESDECOM AS INT,
@HASTACOM AS INT
AS
SELECT CA.CODCOMBO, CA.NOMBRE, CA.PRECIO, CA.ESTADO,
CA.FECHA_CREACION, CA.FECHA_MOD,
DE.CODPRODSERV, PR.NOMBRE AS PRONOMBRE, DE.CANTIDAD,
DE.COSTO, DE.PRECIO, DE.TOTAL
FROM COMBO_CABECERA AS CA, COMBO_DETALLE AS DE,
PRODUCTO_SERV AS PR
WHERE CA.CODCOMBO=DE.CODCOMBO
AND DE.CODPRODSERV=PR.CODPRODSERV
AND CA.CODCOMBO>=@DESDECOM
AND CA.CODCOMBO<=@HASTACOM
ORDER BY CA.CODCOMBO
GO
2.3.65. imp_rep_cuadredecaja
//Permite imprimir reportes de las formas de pago efectuadas
6/13/2007 7:44:32 PM
138
CREATE PROCEDURE IMP_REP_CUADREDECAJA
@FECHAINI AS VARCHAR(10),
@FECHAFIN AS VARCHAR(10),
@DESDESUC AS INT,
@HASTASUC AS INT
AS
select ca.vendedor,pa.sucursal, pa.caja, pa.numerocaja, pa.fecha,
pa.codigotarjeta, pa.numerotarjeta, pa.nombrecliente, pa.telefonotarjeta,
pa.lote, pa.fechacheque, pa.codigobanco, pa.numerocheque, pa.ctacte,
pa.hora,
CASE PA.FORMAPAGO
WHEN 'EF' THEN (CAST ( PORCOBRAR AS DECIMAL(9,2)))
ELSE (CAST ( 0 AS DECIMAL(9,2)))
END AS EFECTIVO,
CASE PA.FORMAPAGO
WHEN 'CH' THEN (CAST ( PORCOBRAR AS DECIMAL(9,2)))
ELSE (CAST ( 0 AS DECIMAL(9,2)))
END AS CHEQUE,
CASE PA.FORMAPAGO
WHEN 'TA' THEN (CAST ( PORCOBRAR AS DECIMAL(9,2)))
ELSE (CAST ( 0 AS DECIMAL(9,2)))
END AS TARJETA,
CASE PA.FORMAPAGO
WHEN 'CR' THEN (CAST ( PORCOBRAR AS DECIMAL(9,2)))
ELSE (CAST ( 0 AS DECIMAL(9,2)))
END AS CREDITO
INTO TEMP1
139
from pagos_factura AS pa, cabecera_factura as ca
where PA.numerocab=CA.numero and
pa.fecha>=convert(datetime,@FECHAINI) and
pa.fecha<=convert(datetime,@FECHAFIN) AND
pa.SUCURSAL>=@DESDESUC AND pa.SUCURSAL<=@HASTASUC
SELECT SUCURSAL,VENDEDOR,USUUSER,SUM(EFECTIVO) AS
EFECTIVO,SUM(CHEQUE) AS CHEQUE,SUM(TARJETA) AS
TARJETA,SUM(CREDITO) AS CREDITO
FROM TEMP1,USUARIO
WHERE TEMP1.VENDEDOR=USUARIO.CODUSU
GROUP BY SUCURSAL,VENDEDOR,USUUSER
drop table temp1
GO
2.3.66. imp_rep_diariodeventa
//Permite imprimir reportes de las ventas realizadas al detalle
6/6/2007 4:40:49 PM
CREATE PROCEDURE IMP_REP_DIARIODEVENTA
@FECHAINI AS VARCHAR(10),
@FECHAFIN AS VARCHAR(10),
@DESDESUC AS INT,
@HASTASUC AS INT
140
AS
SELECT CA.SUCURSAL AS SUCURSAL,CA.CAJA AS
CAJA,CA.NUMEROCAJA AS
NUMEROCAJA,VENDEDOR,CLIENTE,(LTRIM(CL.PERAPELLIDO)+'
'+LTRIM(PERNOMBRE)) AS NCLIENTE,
SUM(SUBTOTAL) AS SUBTOTAL, sum(DESCUENTO1+DESCUENTO2) AS
DESCUENTO, sum(IMPUESTO) AS IMPUESTO, sum(TOTAL) AS TOTAL,
CASE PA.FORMAPAGO
WHEN 'EF' THEN SUM(CAST ( PORCOBRAR AS DECIMAL(9,2)))
ELSE SUM(CAST ( 0 AS DECIMAL(9,2)))
END AS EFECTIVO,
CASE PA.FORMAPAGO
WHEN 'CH' THEN SUM(CAST ( PORCOBRAR AS DECIMAL(9,2)))
ELSE SUM(CAST ( 0 AS DECIMAL(9,2)))
END AS CHEQUE,
CASE PA.FORMAPAGO
WHEN 'TA' THEN SUM(CAST ( PORCOBRAR AS DECIMAL(9,2)))
ELSE SUM(CAST ( 0 AS DECIMAL(9,2)))
END AS TARJETA,
CASE PA.FORMAPAGO
WHEN 'CR' THEN SUM(CAST ( PORCOBRAR AS DECIMAL(9,2)))
ELSE SUM(CAST ( 0 AS DECIMAL(9,2)))
END AS CREDITO
into temp1
FROM cabecera_factura as CA,pagos_factura as PA, PERSONA AS CL
WHERE CA.numero=PA.numerocab AND CA.CLIENTE=CL.CEDULA
AND CA.FECHA >= CONVERT(DATETIME, @FECHAINI)
AND CA.FECHA <= CONVERT(DATETIME, @FECHAFIN)
141
AND CA.SUCURSAL>=@DESDESUC AND
CA.SUCURSAL<=@HASTASUC
group by CA.SUCURSAL, CA.CAJA, CA.NUMEROCAJA, VENDEDOR,
CLIENTE, (LTRIM(CL.PERAPELLIDO)+'
'+LTRIM(PERNOMBRE)),FORMAPAGO
SELECT
SUCURSAL,CAJA,NUMEROCAJA,VENDEDOR,CLIENTE,NCLIENTE,
AVG(SUBTOTAL) AS SUBTOTAL, AVG(DESCUENTO) AS DESCUENTO,
AVG(IMPUESTO) AS IMPUESTO, AVG(TOTAL) AS TOTAL,
SUM(EFECTIVO) AS EFECTIVO,SUM(CHEQUE)AS CHEQUE,
SUM(TARJETA) AS TARJETA, SUM(CREDITO) AS CREDITO
FROM temp1 GROUP BY
SUCURSAL,CAJA,NUMEROCAJA,VENDEDOR,CLIENTE,NCLIENTE
drop table temp1
GO
2.3.67. imp_rep_existencias
//Permite imprimir reportes de las existencias de productos terminados
7/16/2007 8:23:06 AM
CREATE PROCEDURE IMP_REP_EXISTENCIAS
@DESDEFEC AS VARCHAR(10),
@HASTAFEC AS VARCHAR(10)
142
AS
SELECT EX.TIPO,EX.CODIGO, PR.NOMBRE, EX.CANTIDAD
FROM EXISTENCIAS AS EX, PRODUCTO_SERV AS PR
WHERE EX.CODIGO=PR.CODPRODSERV
AND PROTIPO='P'
AND EX.FECHA >= CONVERT(DATETIME,@DESDEFEC)
AND EX.FECHA <= CONVERT(DATETIME,@HASTAFEC)
ORDER BY EX.TIPO,EX.CODIGO
GO
2.3.68. imp_rep_montosxclientes
//Permite imprimir reportes de las ventas realizadas a clientes por sus
montos
7/5/2007 8:29:30 PM
CREATE PROCEDURE IMP_REP_MONTOSXCLIENTES
@DESDEFEC AS VARCHAR(10),
@HASTAFEC AS VARCHAR(10),
@DESDEMON AS INT,
@HASTAMON AS INT
AS
143
SELECT CLIENTE,LTRIM(PE.PERAPELLIDO)+' '+LTRIM(PE.PERNOMBRE)
AS APELLIDOS,SUM(CA.TOTAL) AS TOTAL
FROM CABECERA_FACTURA AS CA, PERSONA AS PE
WHERE CA.CLIENTE=PE.CEDULA
AND CA.FECHA>=CONVERT(DATETIME,@DESDEFEC)
AND CA.FECHA<=CONVERT(DATETIME,@HASTAFEC)
GROUP BY CLIENTE,PERAPELLIDO,PERNOMBRE
HAVING SUM(CA.TOTAL)>=@DESDEMON AND
SUM(CA.TOTAL)<=@HASTAMON
ORDER BY CLIENTE
GO
2.3.69. imp_rep_movimientoproductos
//Permite imprimir reportes de los movimientos de productos
7/5/2007 8:50:36 PM
CREATE PROCEDURE IMP_REP_MOVIMIENTOPRODUCTOS
@DESDEFEC AS VARCHAR(10),
@HASTAFEC AS VARCHAR(10)
AS
SELECT EX.TIPO,EX.FECHA,EX.CODIGO, PR.NOMBRE, EX.CANTIDAD
FROM EXISTENCIAS AS EX, PRODUCTO_SERV AS PR
WHERE EX.CODIGO=PR.CODPRODSERV
AND EX.FECHA >= CONVERT(DATETIME,@DESDEFEC)
144
AND EX.FECHA <= CONVERT(DATETIME,@HASTAFEC)
GO
2.3.70. imp_rep_personaltrainer
//Permite imprimir un reporte de los personal trainer
6/23/2007 8:27:05 PM
CREATE PROCEDURE IMP_REP_PERSONALTRAINER
@FECHAINI AS VARCHAR(10),
@FECHAFIN AS VARCHAR(10),
@DESDEPER AS VARCHAR(10),
@HASTAPER AS VARCHAR(10)
AS
SELECT PT.numero, PT.FECHA, PT.cliente, (ltrim(perapellido)+'
'+ltrim(pernombre)) as apellido, PT.personal, PT.horainicial, PT.horafinal,
PT.tipomembresia
INTO TEMP2
FROM PERSONA_TRAINER AS PT INNER JOIN PERSONA AS PE
ON PT.cliente = PE.CEDULA
WHERE FECHA>=CONVERT(DATETIME,@FECHAINI)
AND FECHA<=CONVERT(DATETIME,@FECHAFIN)
AND PERSONAL>=@DESDEPER AND PERSONAL<=@HASTAPER
AND ESTADO=1
SELECT TE.numero, TE.FECHA, TE.cliente, TE.APELLIDO, TE.personal,
145
(ltrim(PE.perapellido)+' '+ltrim(pernombre)) as nombrepersonal,
TE.horainicial, TE.horafinal, TE.tipomembresia
FROM TEMP2 AS TE INNER JOIN PERSONA AS PE
ON TE.PERSONAL = PE.CEDULA
ORDER BY TE.PERSONAL,TE.HORAINICIAL
drop table temp2
GO
2.3.71. imp_rep_platos
//Permite imprimir un reporte de los platos creados
7/5/2007 8:05:22 PM
CREATE PROCEDURE IMP_REP_PLATOS
@DESDEPLA AS INT,
@HASTAPLA AS INT
2.3.72. imp_rep_productos
//Permite imprimir un ticket de la tabla productos_serv
7/18/2007 1:58:04 PM
CREATE PROCEDURE IMP_REP_PRODUCTOS
@OPCION AS INT
146
AS
IF @OPCION = 1
BEGIN
SELECT CODPRODSERV, NOMBRE, PROTIPO, PROFECING,
PROPRECIO, COSTO, PROIVA, ESTADO
FROM PRODUCTO_SERV
ORDER BY CODPRODSERV
END
IF @OPCION = 2
BEGIN
SELECT CODPRODSERV, NOMBRE, PROTIPO, PROFECING,
PROPRECIO, COSTO, PROIVA, ESTADO
FROM PRODUCTO_SERV
ORDER BY NOMBRE
END
IF @OPCION = 3
BEGIN
SELECT CODPRODSERV, NOMBRE, PROTIPO, PROFECING,
PROPRECIO, COSTO, PROIVA, ESTADO
FROM PRODUCTO_SERV
ORDER BY PROTIPO
END
IF @OPCION = 4
BEGIN
SELECT CODPRODSERV, NOMBRE, PROTIPO, PROFECING,
PROPRECIO, COSTO, PROIVA, ESTADO
FROM PRODUCTO_SERV
ORDER BY PROFECING
END
147
GO
2.3.73. imp_rep_tarjetas
//Permite imprimir un reporte de los pagos efectuados con tarjetas de crédito
7/5/2007 4:24:36 PM
CREATE PROCEDURE IMP_REP_TARJETAS
@FECHAINI AS VARCHAR(10),
@FECHAFIN AS VARCHAR(10),
@DESDESUC AS INT,
@HASTASUC AS INT
AS
SELECT PA.SUCURSAL, PA.FECHA, PA.FORMAPAGO, PA.PORCOBRAR,
PA.CODIGOTARJETA, TA.DESCRIPCION, PA.NUMEROTARJETA,
PA.NOMBRECLIENTE, PA.LOTE
FROM PAGOS_FACTURA AS PA,TARJETAS_CREDITO AS TA
WHERE PA.CODIGOTARJETA = TA.CODTARJCRED
AND PA.SUCURSAL>=@DESDESUC
AND PA.SUCURSAL<=@HASTASUC
AND PA.FECHA>=CONVERT(DATETIME, @FECHAINI)
AND PA.FECHA<=CONVERT(DATETIME, @FECHAFIN)
ORDER BY PA.SUCURSAL,PA.CODIGOTARJETA
GO
148
2.3.74. imp_rep_ventadeproductos
//Permite imprimir un reporte de las ventas de productos realizados
6/13/2007 11:48:14 PM
CREATE PROCEDURE IMP_REP_VENTADEPRODUCTOS
@FECHAINI AS VARCHAR(10),
@FECHAFIN AS VARCHAR(10),
@DESDESUC AS INT,
@HASTASUC AS INT
AS
select tipo,sucursal,fecha,codigoproducto,nombre,
CASE tipo
WHEN 'NV' THEN CAST ((cantidad*1) AS NUMERIC(10))
ELSE CAST ( (cantidad*-1) AS NUMERIC(10))
END AS CANTIDAD,
CASE tipo
WHEN 'NV' THEN CAST ((((cantidad*precio)-valordescuento1-
valordescuento2)*1) AS NUMERIC(10,2))
ELSE CAST ((((cantidad*precio)-valordescuento1-valordescuento2)*-1)
AS NUMERIC(10,2))
END AS NETO2
into temp1
from detalle_factura as de,producto_serv as pr
where de.codigoproducto=pr.codprodserv
149
and fecha>=convert(datetime,@FECHAINI)
and fecha<=convert(datetime,@FECHAFIN)
AND SUCURSAL>=@DESDESUC AND SUCURSAL<=@HASTASUC
select sucursal,codigoproducto,nombre,sum(cantidad) as cantidad,
sum(neto2) as neto from temp1 group by sucursal,codigoproducto,nombre
order by sucursal,codigoproducto,nombre
drop table temp1
GO
2.3.75. imp_rep_ventasxhoras
//Permite imprimir un reporte de las ventas detalladas por hora
7/5/2007 7:52:55 PM
CREATE PROCEDURE IMP_REP_VENTASXHORAS
@FECHAINI AS VARCHAR(10),
@FECHAFIN AS VARCHAR(10),
@DESDESUC AS INT,
@HASTASUC AS INT
AS
150
select sucursal,tipo,fecha,(subtotal-descuento1-descuento2+impuesto) as
total,hora
from cabecera_factura
where fecha>=convert(datetime,@fechaini)
and fecha<=convert(datetime,@fechafin)
and sucursal>=@desdesuc
and sucursal<=@hastasuc
order by sucursal,hora
GO
2.3.76. imp_rep_ventasxmeses
//Permite imprimir un reporte de las ventas detalladas por meses
7/5/2007 3:25:53 PM
CREATE PROCEDURE IMP_REP_VENTASXMESES
@FECHAINI AS VARCHAR(10),
@FECHAFIN AS VARCHAR(10),
@DESDESUC AS INT,
@HASTASUC AS INT
AS
SELECT SUCURSAL,MONTH(FECHA) AS MES,SUM(SUBTOTAL) AS
SUBTOTAL,(SUM(DESCUENTO1)+SUM(DESCUENTO2)) AS
DECUENTO,SUM(IMPUESTO) AS IVA,SUM(TOTAL) AS TOTAL
FROM CABECERA_FACTURA
WHERE FECHA >= CONVERT(DATETIME, @FECHAINI)
151
AND FECHA <= CONVERT(DATETIME, @FECHAFIN)
AND SUCURSAL>=@DESDESUC
AND SUCURSAL<=@HASTASUC
GROUP BY sucursal,MONTH(FECHA)
ORDER BY sucursal,MONTH(FECHA)
GO
2.3.77. imp_rep_ventasxplatos
//Permite imprimir un reporte de los platos creados
7/16/2007 8:11:27 AM
CREATE PROCEDURE IMP_REP_VENTASXPLATOS
@FECHAINI AS VARCHAR(10),
@FECHAFIN AS VARCHAR(10),
@DESDESUC AS INT,
@HASTASUC AS INT
AS
select DE.NUMERO AS NUMERO,pl.codprodserv as cplcodigo, pl.nombre as
clpnombre, de.fecha as detfecha, de.cantidad as detcantidad, de.total1 as
dettotal1, pl.precio as clpprecio,
pld.codprodserv as dplcodigo,pr.nombre as dplnombre,pld.cantidad as
dplcantidad, pld.precio as dplprecio, pld.medida as dplmedida
from detalle_factura as de,
platos_cabecera as pl,
platos_detalle as pld,
producto_serv as pr
where de.codigoproducto=pl.codprodserv
152
and pl.codplato=pld.codplato
and pld.codprodserv=pr.codprodserv
and de.sucursal>=@DESDESUC and de.sucursal<=@HASTASUC
and de.fecha>=convert(datetime,@FECHAINI)
and de.fecha<=convert(datetime,@FECHAFIN)
and de.tipo= 'NV'
order by detfecha,cplcodigo
GO
2.3.78. imp_rep_ventasxvendedor
//Permite imprimir un reporte de las ventas detalladas por vendedor
7/5/2007 3:57:43 PM
CREATE PROCEDURE IMP_REP_VENTASXVENDEDOR
@FECHAINI AS VARCHAR(10),
@FECHAFIN AS VARCHAR(10),
@DESDESUC AS INT,
@HASTASUC AS INT,
@DESDEVEN AS VARCHAR(10),
@HASTAVEN AS VARCHAR(10)
AS
SELECT CA.SUCURSAL,CA.VENDEDOR,
US.CODCEDULA,US.USUUSER,SUM(CA.SUBTOTAL) AS SUBTOTAL,
SUM(CA.DESCUENTO1) AS DESCUENTO1, SUM(CA.DESCUENTO2) AS
DESCUENTO2, SUM(CA.IMPUESTO) AS IMPUESTO, SUM(CA.TOTAL) AS
TOTAL
153
FROM CABECERA_FACTURA AS CA,USUARIO AS US
WHERE CA.VENDEDOR= US.CODUSU
AND CA.FECHA >= CONVERT(DATETIME, @FECHAINI)
AND CA.FECHA <= CONVERT(DATETIME, @FECHAFIN)
AND CA.SUCURSAL>=@DESDESUC
AND CA.SUCURSAL<=@HASTASUC
AND CA.VENDEDOR>=@DESDEVEN
AND CA.VENDEDOR<=@HASTAVEN
GROUP BY
CA.SUCURSAL,CA.VENDEDOR,US.CODCEDULA,US.USUUSER
ORDER BY
CA.SUCURSAL,CA.VENDEDOR,US.CODCEDULA,US.USUUSER
GO
2.3.79. inv_busca_cab
//Permite buscar el último número de la tabla secuencia de la transacción que
se esté efectuando en ese momento
6/8/2007 3:39:51 PM
CREATE PROCEDURE INV_BUSCA_CAB
@CODIGO1 AS VARCHAR(15),
@CODIGO2 AS NUMERIC,
@CODIGO3 AS NUMERIC,
@CODIGO4 AS NUMERIC
AS
154
SELECT NUMERO FROM CABECERA_INVENTARIO WHERE TIPO
= @CODIGO1 AND SUCURSAL = @CODIGO2 AND CAJA = @CODIGO3
AND NUMEROCAJA = @CODIGO4
GO
2.3.80. inv_busca_cabecera
//Permite buscar el último número de la tabla secuencia de la transacción que
se esté efectuando en ese momento
6/8/2007 3:40:22 PM
CREATE PROCEDURE INV_BUSCA_CABECERA
@CODIGO1 AS VARCHAR(15),
@CODIGO2 AS NUMERIC,
@CODIGO3 AS NUMERIC,
@CODIGO4 AS NUMERIC
AS
SELECT * FROM CABECERA_INVENTARIO WHERE TIPO =
@CODIGO1 AND SUCURSAL = @CODIGO2 AND CAJA = @CODIGO3
AND NUMEROCAJA = @CODIGO4
GO
2.3.81. inv_busca_detalles
//Permite buscar el detalle de un producto en el ingreso de bodega
6/8/2007 3:40:08 PM
155
CREATE PROCEDURE INV_BUSCA_DETALLES
@NUMEROCAB AS NUMERIC
AS
SELECT PROD.*, DET.* FROM DETALLE_INVENTARIO AS DET,
PRODUCTO_SERV AS PROD where DET.CODIGOPRODUCTO =
PROD.CODPRODSERV AND NUMEROCAB = @NUMEROCAB
GO
2.3.82. inv_eli_cabecera
//Permite actualizar la cabecera de la tabla cabecera_inventario
6/8/2007 3:39:37 PM
CREATE PROCEDURE INV_ELI_CABECERA
@TIPO AS CHAR(3),
@SUCURSAL AS NUMERIC,
@CAJA AS NUMERIC,
@NUMEROCAJA AS NUMERIC,
@OPCION AS INT
AS
IF @OPCION = 1
BEGIN
UPDATE CABECERA_INVENTARIO
156
SET IVAPRECIO = 0.0000, SUBTOTALPRECIO = 0.0000,
TOTALPRECIO = 0.0000,IVACOSTO = 0.0000, SUBTOTALCOSTO =
0.0000, TOTALCOSTO = 0.0000
WHERE TIPO = @TIPO AND SUCURSAL = @SUCURSAL AND
CAJA = @CAJA AND NUMEROCAJA = @NUMEROCAJA
END
IF @OPCION = 2
BEGIN
UPDATE CABECERA_INVENTARIO SET ELIMINADO = 1 WHERE
TIPO = @TIPO AND SUCURSAL = @SUCURSAL AND CAJA = @CAJA
AND NUMEROCAJA = @NUMEROCAJA
END
GO
2.3.83. inv_eli_detalles
//Permite eliminar los productos de la tabla detalle inventario
6/8/2007 3:36:01 PM
CREATE PROCEDURE INV_ELI_DETALLES
@NUMEROCAB AS NUMERIC
AS
DELETE FROM DETALLE_INVENTARIO WHERE NUMEROCAB =
@NUMEROCAB
GO
157
2.3.84. inv_imp_ingreso
//Permite imprimir un registro de la tabla cabecera de inventario
6/16/2007 11:45:07 PM
CREATE PROCEDURE INV_IMP_INGRESO
@CODIGO1 AS VARCHAR(15),
@CODIGO2 AS NUMERIC,
@CODIGO3 AS NUMERIC,
@CODIGO4 AS NUMERIC
AS
SELECT CAB.*,DET.*, PROD.*, PROV.*, SUC.*, USU.* FROM
CABECERA_INVENTARIO AS CAB, DETALLE_INVENTARIO AS DET,
PRODUCTO_SERV AS PROD, PROVEEDOR AS PROV, SUCURSAL
AS SUC, USUARIO AS USU
WHERE CAB.NUMERO = DET.NUMEROCAB AND
DET.CODIGOPRODUCTO = PROD.CODPRODSERV
AND CAB.PROVEEDOR = PROV.CEDULA AND CAB.SUCURSAL =
SUC.CODSUCUR AND CAB.USUARIO = USU.CODUSU
AND CAB.TIPO = @CODIGO1 AND CAB.SUCURSAL = @CODIGO2
AND CAB.CAJA = @CODIGO3 AND CAB.NUMEROCAJA = @CODIGO4
GO
2.3.85. inv_ing_cabecera
//Permite ingresar un registro a la tabla cabecera inventario
6/8/2007 3:40:53 PM
158
CREATE PROCEDURE INV_ING_CABECERA
@TIPO AS CHAR(2),
@SUCURSAL AS CHAR(3),
@CAJA AS CHAR(3),
@NUMEROCAJA AS NUMERIC,
@SUCURSAL1 AS CHAR(3),
@TIPOINGRESO AS VARCHAR(50),
@PROVEEDOR AS CHAR(4),
@TIPOAPLIC AS VARCHAR(2),
@NUMEROAPLIC AS NUMERIC,
@SUBTOTALPRECIO AS DECIMAL(9,2),
@IVAPRECIO AS DECIMAL(9,2),
@TOTALPRECIO AS DECIMAL(9,2),
@SUBTOTALCOSTO AS DECIMAL(9,2),
@IVACOSTO AS DECIMAL(9,2),
@TOTALCOSTO AS DECIMAL(9,2),
@FECHA AS DATETIME,
@HORA AS DATETIME,
@OBSERVACIONES AS VARCHAR(1500),
@USUARIO AS VARCHAR(10),
@IMPRESO AS VARCHAR(2),
@ELIMINADO AS BIT
AS
159
INSERT INTO CABECERA_INVENTARIO
(TIPO,SUCURSAL,CAJA,NUMEROCAJA,SUCURSAL1,TIPOINGRESO,PRO
VEEDOR,TIPOAPLIC,
NUMEROAPLIC,SUBTOTALPRECIO,IVAPRECIO,TOTALPRECIO,SU
BTOTALCOSTO,IVACOSTO,TOTALCOSTO,FECHA,
HORA,OBSERVACIONES,USUARIO,IMPRESO,ELIMINADO)
VALUES
(@TIPO,@SUCURSAL,@CAJA,@NUMEROCAJA,@SUCURSAL1,@
TIPOINGRESO,@PROVEEDOR,@TIPOAPLIC,
@NUMEROAPLIC,@SUBTOTALPRECIO,@IVAPRECIO,@TOTALPR
ECIO,@SUBTOTALCOSTO,@IVACOSTO,@TOTALCOSTO,@FECHA,
@HORA,@OBSERVACIONES,@USUARIO,@IMPRESO,@ELIMINA
DO)
GO
2.3.86. inv_ing_ciudad
//Permite ingresar un registro a la tabla ciudad
2/26/2007 6:30:56 PM
CREATE PROCEDURE INV_ING_CIUDAD
@DESCRIP AS VARCHAR(500),
@ESTADO AS VARCHAR(50)
AS
INSERT INTO CIUDAD (DESCRIPCION, ESTADO)
VALUES (@DESCRIP,@ESTADO)
160
GO
2.3.87. inv_ing_detalle
//Permite ingresar los detalles a la tabla detalle inventario
6/8/2007 3:40:38 PM
CREATE PROCEDURE INV_ING_DETALLE
@NUMEROCAB AS NUMERIC,
@TIPO AS VARCHAR(15),
@SUCURSAL AS VARCHAR(15),
@CAJA AS VARCHAR(15),
@NUMEROCAJA AS NUMERIC,
@CODIGOPRODUCTO AS VARCHAR(50),
@CANTIDAD AS INT,
@PRECIO AS DECIMAL(9,2),
@COSTO AS DECIMAL(9,2),
@TOTALP AS DECIMAL(9,2),
@TOTALC AS DECIMAL(9,2),
@IVA AS DECIMAL(9,2),
@FECHA AS DATETIME,
@HORA AS DATETIME
AS
INSERT INTO DETALLE_INVENTARIO
(NUMEROCAB,TIPO,SUCURSAL,CAJA,NUMEROCAJA,CODIGOPRODUC
TO,CANTIDAD,
PRECIO,COSTO,TOTALP,TOTALC,IVA,FECHA,HORA)
161
VALUES
(@NUMEROCAB,@TIPO,@SUCURSAL,@CAJA,@NUMEROCAJA,
@CODIGOPRODUCTO,@CANTIDAD,
@PRECIO,@COSTO,@TOTALP,@TOTALC,@IVA,@FECHA,@HOR
A)
GO
2.3.88. inv_mod_ciudad
//Permite modificar un registro de la tabla ciudad
2/26/2007 6:29:04 PM
CREATE PROCEDURE INV_MOD_CIUDAD
@CODCIUDAD AS INT,
@DESCRIP AS VARCHAR(500),
@ESTADO AS VARCHAR(50)
AS
BEGIN
UPDATE CIUDAD SET DESCRIPCION=@DESCRIP,
ESTADO=@ESTADO
WHERE CODCIUDAD=@CODCIUDAD
END
GO
162
2.3.89. rep_bronceados
//Permite imprimir un reporte de los bronceados creados
6/18/2007 9:06:04 PM
CREATE PROCEDURE REP_BRONCEADOS
@FECHAINI AS VARCHAR(10),
@FECHAFIN AS VARCHAR(10)
AS
SELECT pe.numerocaja, pe.fecha, pe.cliente, (ltrim(cl.perapellido)+'
'+ltrim(cl.pernombre)) as apellido,
(ltrim(pe.horainicial)+'-'+ltrim(pe.horafinal)) as horas, pe.tipomembresia
FROM bronceados as pe,persona as cl
WHERE pe.cliente=cl.cedula
AND pe.fecha >=convert(datetime,@FECHAINI)
AND pe.fecha <=convert(datetime,@FECHAFIN)
GO
2.3.90. rep_locker
//Permite imprimir un reporte de los locker creados
6/18/2007 9:07:56 PM
CREATE PROCEDURE REP_LOCKER
@FECHAINI AS VARCHAR(10),
163
@FECHAFIN AS VARCHAR(10)
AS
SELECT pe.numerocaja, pe.fecha, pe.cliente, (ltrim(cl.perapellido)+'
'+ltrim(cl.pernombre)) as apellido,
pe.tipomembresia
FROM locker as pe,persona as cl
WHERE pe.cliente=cl.cedula
AND pe.fecha >=convert(datetime,@FECHAINI)
AND pe.fecha <=convert(datetime,@FECHAFIN)
GO
2.3.91. rep_masajes
//Permite imprimir un reporte de los masajes creados
6/18/2007 9:02:46 PM
CREATE PROCEDURE REP_MASAJES
@FECHAINI AS VARCHAR(10),
@FECHAFIN AS VARCHAR(10)
AS
SELECT pe.numerocaja, pe.fecha, pe.cliente, (ltrim(cl.perapellido)+'
'+ltrim(cl.pernombre)) as apellido,
164
pe.masajista, (ltrim(pe.horainicial)+'-'+ltrim(pe.horafinal)) as horas,
pe.tipomembresia
FROM masajes as pe,persona as cl
WHERE pe.cliente=cl.cedula
AND pe.fecha >=convert(datetime,@FECHAINI)
AND pe.fecha <=convert(datetime,@FECHAFIN)
GO
2.3.92. rep_parqueo
//Permite imprimir un reporte de los parqueos creados
6/18/2007 9:09:23 PM
CREATE PROCEDURE REP_PARQUEO
@FECHAINI AS VARCHAR(10),
@FECHAFIN AS VARCHAR(10)
AS
SELECT pe.numerocaja, pe.fecha, pe.cliente, (ltrim(cl.perapellido)+'
'+ltrim(cl.pernombre)) as apellido,
pe.tipomembresia
FROM parqueo as pe,persona as cl
WHERE pe.cliente=cl.cedula
AND pe.fecha >=convert(datetime,@FECHAINI)
AND pe.fecha <=convert(datetime,@FECHAFIN)
GO
165
2.3.93. rep_personaltrainer
//Permite imprimir un reporte de los personal trainer creados
6/18/2007 8:47:53 PM
CREATE PROCEDURE REP_PERSONALTRAINER
@FECHAINI AS VARCHAR(10),
@FECHAFIN AS VARCHAR(10)
AS
SELECT pe.numerocaja,pe.fecha,pe.cliente,(ltrim(cl.perapellido)+'
'+ltrim(cl.pernombre)) as apellido,pe.personal,(ltrim(pe.horainicial)+'-
'+ltrim(pe.horafinal)) as horas,pe.tipomembresia,pe.estado
FROM persona_trainer as pe,persona as cl
WHERE pe.cliente=cl.cedula
AND pe.fecha >= convert(datetime,@FECHAINI)
AND pe.fecha <= convert(datetime,@FECHAFIN)
GO
2.3.94. rep_pilates
//Permite imprimir un reporte de los pilates creados
6/18/2007 8:59:51 PM
166
CREATE PROCEDURE REP_PILATES
@FECHAINI AS VARCHAR(10),
@FECHAFIN AS VARCHAR(10)
AS
SELECT pe.numerocaja, pe.fecha, pe.cliente, (ltrim(cl.perapellido)+'
'+ltrim(cl.pernombre)) as apellido,
pe.pilates, (ltrim(pe.horainicial)+'-'+ltrim(pe.horafinal)) as horas,
pe.tipomembresia, pe.estado
FROM pilates as pe,persona as cl
WHERE pe.cliente=cl.cedula
AND pe.fecha >=convert(datetime,@FECHAINI)
AND pe.fecha <=convert(datetime,@FECHAFIN)
GO
2.3.95. seg_borra_spread
//Permite eliminar los detalles de la tabla horarios
5/10/2007 2:59:07 PM
CREATE PROCEDURE SEG_BORRA_SPREAD
@TIPO AS VARCHAR (3)
AS
DELETE HORARIOS WHERE TIPO=@TIPO
GO
167
2.3.96. seg_busca_cab
//Permite buscar el último número de la tabla cabecera factura
5/11/2007 7:56:02 PM
CREATE PROCEDURE SEG_BUSCA_CAB
@CODIGO1 AS VARCHAR(15),
@CODIGO2 AS NUMERIC,
@CODIGO3 AS NUMERIC,
@CODIGO4 AS NUMERIC
AS
SELECT NUMERO FROM CABECERA_FACTURA WHERE TIPO =
@CODIGO1 AND SUCURSAL = @CODIGO2 AND CAJA = @CODIGO3
AND NUMEROCAJA = @CODIGO4
GO
2.3.97. seg_busca_cab_combo
//Permite buscar el último número de la tabla cabecera combo
6/25/2007 8:41:32 PM
CREATE PROCEDURE SEG_BUSCA_CAB_COMBO
@CODCOMBO AS NUMERIC
AS
168
SELECT * FROM COMBO_CABECERA
WHERE CODCOMBO = @CODCOMBO
GO
2.3.98. seg_busca_cab_platos
//Permite buscar un registro de la tabla cabecera platos
7/1/2007 8:29:21 PM
CREATE PROCEDURE SEG_BUSCA_CAB_PLATOS
@CODPLATOS AS NUMERIC
AS
SELECT * FROM PLATOS_CABECERA
WHERE CODPLATO = @CODPLATOS
GO
2.3.99. seg_busca_datos_bronceados
//Permite buscar un registro de la tabla bronceados
5/28/2007 11:57:42 AM
CREATE PROCEDURE SEG_BUSCA_DATOS_BRONCEADOS
@NUMEROCAJA AS INT
AS
169
BEGIN
SELECT *
FROM BRONCEADOS
WHERE NUMEROCAJA=@NUMEROCAJA
END
GO
2.3.100. seg_busca_datos_locker
//Permite buscar un registro de la tabla locker
6/17/2007 10:44:59 AM
CREATE PROCEDURE SEG_BUSCA_DATOS_LOCKER
@NUMEROCAJA AS INT
AS
BEGIN
SELECT *
FROM LOCKER
WHERE NUMEROCAJA=@NUMEROCAJA
END
GO
170
2.3.101. seg_busca_datos_masajes
//Permite buscar un registro de la tabla masajes
5/28/2007 11:43:25 AM
CREATE PROCEDURE SEG_BUSCA_DATOS_MASAJES
@NUMEROCAJA AS INT
AS
BEGIN
SELECT *
FROM MASAJES
WHERE NUMEROCAJA=@NUMEROCAJA
END
GO
2.3.102. seg_busca_datos_parqueo
//Permite buscar un registro de la tabla parqueo
6/17/2007 10:00:01 AM
CREATE PROCEDURE SEG_BUSCA_DATOS_PARQUEO
@NUMEROCAJA AS INT
AS
171
BEGIN
SELECT *
FROM PARQUEO
WHERE NUMEROCAJA=@NUMEROCAJA
END
GO
2.3.103. seg_busca_datos_personal
//Permite buscar un registro de la tabla personal trainer
5/28/2007 11:42:49 AM
CREATE PROCEDURE SEG_BUSCA_DATOS_PERSONAL
@NUMEROCAJA AS INT
AS
BEGIN
SELECT *
FROM PERSONA_TRAINER
WHERE NUMEROCAJA=@NUMEROCAJA
END
GO
2.3.104. seg_busca_datos_pilates
//Permite buscar un registro de la tabla pilates
5/28/2007 11:43:07 AM
172
CREATE PROCEDURE SEG_BUSCA_DATOS_PILATES
@NUMEROCAJA AS INT
AS
BEGIN
SELECT *
FROM PILATES
WHERE NUMEROCAJA=@NUMEROCAJA
END
GO
2.3.105. seg_busca_det_combo
//Permite buscar un registro de la tabla detalle combo
6/26/2007 11:21:28 PM
CREATE PROCEDURE SEG_BUSCA_DET_COMBO
@CODCOMBO AS NUMERIC
AS
SELECT
DE.NUMERO,DE.CODCOMBO,PR.NOMBRE,DE.CODPRODSERV,DE.EST
ADO,DE.CANTIDAD,DE.COSTO,DE.FECHA_CREACION,DE.FECHA_MOD,
DE.TOTAL,DE.PRECIO FROM COMBO_DETALLE AS
DE,PRODUCTO_SERV AS PR
173
WHERE DE.CODPRODSERV=PR.CODPRODSERV
AND DE.CODCOMBO=@CODCOMBO
GO
2.3.106. seg_busca_det_platos
//Permite buscar un registro de la tabla detalle platos
7/1/2007 8:27:55 PM
CREATE PROCEDURE SEG_BUSCA_DET_PLATOS
@CODPLATOS AS NUMERIC
AS
SELECT
DE.NUMERO,DE.CODPLATO,PR.NOMBRE,DE.CODPRODSERV,DE.ESTA
DO,DE.CANTIDAD,DE.COSTO,DE.FECHA_CREACION,DE.FECHA_MOD,D
E.TOTAL,DE.PRECIO,DE.MEDIDA
FROM PLATOS_DETALLE AS DE,PRODUCTO_SERV AS PR
WHERE DE.CODPRODSERV=PR.CODPRODSERV
AND DE.CODPLATO=@CODPLATOS
GO
2.3.107. seg_busca_especif
//Permite buscar de manera general en cualquier tabla de la base GYM
11/15/2006 6:23:35 AM
174
CREATE PROCEDURE SEG_BUSCA_ESPECIF
@CODIGO AS VARCHAR(15),
@OPCION AS INT
AS
IF @OPCION =1
BEGIN
SELECT COALESCE(PERAPELLIDO, '') + ' ' + COALESCE(
PERNOMBRE, '') AS NOMBRE FROM PERSONA WHERE
CEDULA=@CODIGO
END
IF @OPCION = 2
BEGIN
SELECT CODCEDULA FROM USUARIO WHERE USUUSER=
@CODIGO
END
IF @OPCION = 3
BEGIN
SELECT COALESCE(PERAPELLIDO, '') AS APELLIDOS,
COALESCE( PERNOMBRE, '') AS NOMBRE,
USUUSER, USUPASSWORD, USUESTADO AS ESTADO,
USUFECCREAC AS FECHA
FROM PERSONA, USUARIO
WHERE CEDULA=@CODIGO AND CEDULA = CODCEDULA
END
IF @OPCION = 4
BEGIN
175
SELECT * FROM CIERRE_ARQUEO
WHERE CODCIERRE=@CODIGO
END
IF @OPCION = 5
BEGIN
SELECT * FROM VIS_CONS_CLIENTES
WHERE CEDULA = @CODIGO
END
IF @OPCION = 6
BEGIN
SELECT * FROM TARJETAS_CREDITO
WHERE CODBANCO = @CODIGO
END
IF @OPCION = 7
BEGIN
SELECT * FROM CABECERA_FACT
WHERE Cedcli = @CODIGO
END
IF @OPCION = 8
BEGIN
SELECT * FROM USUARIO
WHERE CODCEDULA = @CODIGO
END
IF @OPCION = 9
BEGIN
SELECT * FROM persona
176
WHERE CODPERS=@CODIGO
END
IF @OPCION = 10
BEGIN
SELECT * FROM PRODUCTO_SERV WHERE CODPADRE =
@CODIGO
END
IF @OPCION = 11
BEGIN
SELECT * FROM PERSONA_TRAINER WHERE NUMERO =
@CODIGO
END
IF @OPCION = 12
BEGIN
SELECT CODPERS, CODIGOSECUEN, CEDULA, CODTIPOPER,
COALESCE (PERAPELLIDO, ' ') + ' ' + COALESCE (PERNOMBRE, ' ') AS
NOMBRE,
PERDIRECCION, PERTELEFONO, TIPO
FROM PERSONA
WHERE (CODTIPOPER = 1) AND CEDULA=@CODIGO
END
IF @OPCION = 13
BEGIN
SELECT CODPERS, CODIGOSECUEN, CEDULA, CODTIPOPER,
COALESCE (PERAPELLIDO, ' ') + ' ' + COALESCE (PERNOMBRE, ' ') AS
NOMBRE,
177
PERDIRECCION, PERTELEFONO, TIPO
FROM PERSONA
WHERE (CODTIPOPER = 2) AND CEDULA=@CODIGO
END
IF @OPCION = 14
BEGIN
SELECT COALESCE(PERAPELLIDO, '') + ' ' + COALESCE(
PERNOMBRE, '') AS NOMBRE FROM USUARIO,PERSONA WHERE
USUARIO.CODCEDULA=PERSONA.CEDULA AND
USUARIO.CODCEDULA = @CODIGO
END
IF @OPCION = 15
BEGIN
SELECT * FROM VIS_CONS_PROVEEDORES
WHERE CEDULA = @CODIGO
END
GO
2.3.108. seg_busca_especif1
//Permite buscar de manera general en cualquier tabla de la base GYM
1/7/2007 9:48:26 AM
CREATE PROCEDURE SEG_BUSCA_ESPECIF1
@CODIGO AS VARCHAR(15)
178
AS
SELECT COALESCE(PERAPELLIDO, '') AS APELLIDOS, COALESCE(
PERNOMBRE, '') AS NOMBRE,
USUUSER, USUPASSWORD, USUESTADO AS ESTADO,
USUFECCREAC AS FECHA
FROM PERSONA, USUARIO
WHERE CEDULA=@CODIGO AND CEDULA = CODCEDULA
GO
2.3.109. seg_busca_gen
//Permite buscar de manera general en cualquier tabla de la base GYM
11/16/2007 5:25:50 AM
CREATE PROCEDURE SEG_BUSCA_GEN
@OPCION AS INT
AS
IF @OPCION = 1
BEGIN
SELECT * FROM MODULO WHERE ESTADO='A'
END
IF @OPCION = 2
BEGIN
SELECT * FROM SUCURSAL
END
179
IF @OPCION = 3
BEGIN
SELECT * FROM CIUDAD
END
IF @OPCION = 4
BEGIN
SELECT * FROM TARJETAS_CREDITO
END
IF @OPCION = 5
BEGIN
SELECT * FROM TIPO_PAGO
END
IF @OPCION = 6
BEGIN
SELECT * FROM ZONA
END
IF @OPCION = 7
BEGIN
SELECT * FROM CIERRE_ARQUEO
END
IF @OPCION = 8
BEGIN
SELECT * FROM PARAMETROS
END
180
IF @OPCION = 9
BEGIN
SELECT * FROM PERSONA
END
IF @OPCION = 10
BEGIN
SELECT * FROM TIPO_BANCO
END
IF @OPCION = 11
BEGIN
SELECT * FROM CAJA
END
IF @OPCION = 12
BEGIN
SELECT * FROM producto_serv where protipo='P'
END
IF @OPCION = 13
BEGIN
SELECT * FROM producto_serv where protipo='CC'
END
IF @OPCION = 14
BEGIN
SELECT * FROM PERSONA where codtipoper=4
END
181
IF @OPCION = 15
BEGIN
SELECT * FROM TIPO_PERSONA
END
IF @OPCION = 16
BEGIN
SELECT * FROM CABECERA_FACT
END
IF @OPCION = 17
BEGIN
SELECT * FROM TIPO_PROVEEDOR
END
IF @OPCION = 18
BEGIN
SELECT * FROM VIS_INV_PADPROD
END
IF @OPCION = 19
BEGIN
SELECT * FROM PRODUCTO_SERV WHERE NOMBRE LIKE
"MEMBRESIA"
END
IF @OPCION = 20
BEGIN
SELECT * FROM PERSONA ORDER BY PERAPELLIDO
END
IF @OPCION = 21
BEGIN
182
SELECT * FROM producto_serv order by nombre
END
IF @OPCION = 22
BEGIN
SELECT * FROM CAJA
END
IF @OPCION = 23
BEGIN
SELECT * FROM horarios
END
IF @OPCION = 24
BEGIN
SELECT TIPO,NOMBRE FROM HORARIOS GROUP BY
TIPO,NOMBRE
END
IF @OPCION = 26
BEGIN
SELECT * FROM PERSONA where codtipoper=2
END
GO
2.3.110. seg_busca_horarios
//Permite buscar un registro en la tabla horarios
5/9/2007 5:08:41 PM
CREATE PROCEDURE SEG_BUSCA_HORARIOS
@TIPO as VARCHAR(3)
AS
183
SELECT * FROM HORARIOS
WHERE TIPO= @TIPO
GO
2.3.111. seg_busca_mem
//Permite buscar el tipo de membresía de un cliente
5/11/2007 3:03:00 PM
CREATE PROCEDURE SEG_BUSCA_MEM
@CEDULA AS VARCHAR(10)
AS
BEGIN
SELECT TIPO FROM PERSONA WHERE CEDULA= @CEDULA
END
GO
2.3.112. seg_busca_numero
//Permite buscar el número de las tablas personal trainer, pilates, masaje,
bronceados y parqueos
5/14/2007 11:24:02 AM
CREATE PROCEDURE SEG_BUSCA_NUMERO
@numeroCAJA as int,
@OPCION AS int
184
AS
IF @OPCION = 1
BEGIN
SELECT NUMEROCAJA FROM PERSONA_TRAINER WHERE
NUMEROCAJA=@numeroCAJA
END
IF @OPCION = 2
BEGIN
SELECT NUMEROCAJA FROM PILATES WHERE
NUMEROCAJA=@numeroCAJA
END
IF @OPCION = 3
BEGIN
SELECT NUMEROCAJA FROM MASAJES WHERE
NUMEROCAJA=@numeroCAJA
END
IF @OPCION = 4
BEGIN
SELECT numeroCAJA FROM BRONCEADOS WHERE
NUMEROCAJA=@numeroCAJA
END
IF @OPCION = 5
BEGIN
SELECT numeroCAJA FROM PARQUEO WHERE
NUMEROCAJA=@numeroCAJA
END
IF @OPCION = 6
BEGIN
SELECT numeroCAJA FROM LOCKER WHERE
NUMEROCAJA=@numeroCAJA
185
END
GO
2.3.113. Seg_Busca_Permisos
//Permite buscar los permisos de los usuarios
11/15/2007 11:49:07 PM
CREATE PROCEDURE Seg_Busca_Permisos
@cedula as VARCHAR(15)
AS
SELECT OPCFORMULARIO FROM PERMISO_POR_USUARIO,
OPCIONES_POR_MODULO
WHERE CODCEDULAUSU= @CEDULA and ESTADO='A' AND
CODOPCION=CODOPC
GO
2.3.114. seg_busca_sesion
//Permite buscar el horario o sesión del personal trainer, masajes,
bronceados
5/11/2007 11:36:26 AM
CREATE PROCEDURE SEG_BUSCA_SESION
@TIPO AS VARCHAR(3)
AS
186
IF @TIPO='PTR'
BEGIN
select * from horarios where tipo ='PTR'
END
IF @TIPO='MAS'
BEGIN
select * from horarios where tipo ='MAS'
END
IF @TIPO='PIL'
BEGIN
select * from horarios where tipo ='PIL'
END
IF @TIPO='LOC'
BEGIN
select * from horarios where tipo ='LOC'
END
IF @TIPO='BRO'
BEGIN
select * from horarios where tipo ='BRO'
END
GO
2.3.115. seg_busca_sucurcaja
//Permite buscar la sucursal y la caja
6/22/2007 11:25:36 PM
187
CREATE PROCEDURE SEG_BUSCA_SUCURCAJA
@CODSUCUR AS INT,
@OPCION AS INT
AS
IF @OPCION = 1
BEGIN
SELECT * FROM SUCURSAL WHERE CODSUCUR =
@CODSUCUR
END
IF @OPCION = 1
BEGIN
SELECT * FROM CAJA WHERE CODCAJA = @CODSUCUR
END
GO
2.3.116. seg_busca_sucursal
//Permite buscar la sucursal en la tabla sucursal
5/21/2007 4:06:25 PM
CREATE PROCEDURE SEG_BUSCA_SUCURSAL
@CODSUCUR AS INT
188
AS
SELECT * FROM SUCURSAL WHERE CODSUCUR =
@CODSUCUR
GO
2.3.117. SEG_BUSCA_TOTALES
//Permite buscar los pagos para comprobar los totales de las facturas
5/21/2007 4:06:52 PM
CREATE PROCEDURE SEG_BUSCA_TOTALES
@FECHA AS DATETIME
AS
SELECT * FROM PAGOS_FACTURA WHERE FECHA = @FECHA
GO
2.3.118. seg_busca_usu
//Permite buscar los usuarios en la tabla personas
4/30/2007 11:41:46 PM
CREATE PROCEDURE SEG_BUSCA_USU
@CODPERS AS VARCHAR (10)
AS
189
SELECT * FROM PERSONA WHERE codtipoper=4 and
codpers=@CODPERS
GO
2.3.119. seg_cons_caja
//Permite buscar las cajas activas
5/8/2007 12:50:17 PM
CREATE PROCEDURE SEG_CONS_CAJA
AS
SELECT * FROM CAJA WHERE ESTADO='A'
GO
2.3.120. seg_cons_parametro
//Permite buscar los parámetros generales de la empresa activa
11/10/2006 5:28:05 AM
CREATE PROCEDURE SEG_CONS_PARAMETRO
AS
SELECT * FROM PARAMETROS
GO
190
2.3.121. seg_cons_sucur
//Permite buscar las sucursales que se encuentren activas
11/10/2006 5:07:51 AM
CREATE PROCEDURE SEG_CONS_SUCUR
AS
SELECT * FROM SUCURSAL WHERE ESTADO='A'
GO
2.3.122. seg_consul_bronceados
//Permite buscar los horarios de bronceados para ver si están ocupados o no
5/28/2007 11:58:58 AM
CREATE PROCEDURE SEG_CONSUL_BRONCEADOS
@HORAINICIAL AS VARCHAR(8),
@FECHA AS DATETIME
AS
SELECT COUNT(numero) AS conteo,
horainicial
FROM bronceados
WHERE horainicial = @HORAINICIAL
AND FECHA=@FECHA
GROUP BY horainicial
GO
191
2.3.123. seg_consul_horario
//Permite buscar los horarios
5/10/2007 12:15:05 PM
CREATE PROCEDURE SEG_CONSUL_HORARIO
@TIPO AS VARCHAR (3),
@NOMBRE VARCHAR (50)
AS
SELECT
TIPO,NOMBRE,CODIGO,DESCRIPCION,HORAINICIAL,HORAFINAL FROM
HORARIOS WHERE TIPO= @TIPO AND NOMBRE=@NOMBRE
GO
2.3.124. seg_consul_masajes
//Permtie buscar los horarios de masajes ocupados
5/28/2007 11:32:42 AM
CREATE PROCEDURE SEG_CONSUL_MASAJES
@HORAINICIAL AS VARCHAR(8),
@FECHA AS DATETIME
AS
SELECT COUNT(numero) AS conteo,
horainicial
FROM masajes
WHERE horainicial = @HORAINICIAL
AND FECHA=@FECHA
192
GROUP BY horainicial
GO
2.3.125. seg_consul_personal
//Permtie buscar los horarios de los personal trainer ocupados
5/15/2007 8:02:46 PM
CREATE PROCEDURE SEG_CONSUL_PERSONAL
@HORAINICIAL AS VARCHAR (8),
@PERSONAL VARCHAR (10)
AS
SELECT count(numero) as conteo,
personal,
horainicial
FROM persona_trainer
WHERE horainicial=@HORAINICIAL
AND personal = @PERSONAL
AND estado=1
GROUP BY personal,
horainicial
GO
2.3.126. seg_consul_pilates
//Permtie buscar los horarios de pilates ocupados
5/27/2007 6:47:15 PM
193
CREATE PROCEDURE SEG_CONSUL_PILATES
@HORAINICIAL AS VARCHAR (8),
@PERSONAL VARCHAR (10)
AS
SELECT count(numero) as conteo,
pilates,
horainicial
FROM pilates
WHERE horainicial=@HORAINICIAL
AND pilates = @PERSONAL
AND estado=1
GROUP BY pilates,
horainicial
GO
2.3.127. seg_consul_usuario
//Permtie buscar los usuarios con sus pasword
11/4/2006 2:33:48 PM
CREATE PROCEDURE SEG_CONSUL_USUARIO
@USU AS VARCHAR (10),
@PASSW VARCHAR (10)
AS
SELECT CODUSU, USUUSER, USUPASSWORD FROM USUARIO
WHERE USUUSER= @USU AND USUPASSWORD=@PASSW
GO
194
2.3.128. seg_eli_perxusu
//Permite borrar los permisos a usuarios
1/26/2007 3:33:12 PM
CREATE PROCEDURE SEG_ELI_PERXUSU
@CODCEDULAUSU AS VARCHAR(50)
AS
DELETE FROM PERMISO_POR_USUARIO
WHERE CODCEDULAUSU=@CODCEDULAUSU
GO
2.3.129. seg_ing_caja
//Permite ingresar cajas
5/8/2007 12:40:55 PM
CREATE PROCEDURE SEG_ING_CAJA
@DESCRIP AS VARCHAR(500),
@EST AS VARCHAR(10)
AS
INSERT INTO CAJA (DESCRIPCION, ESTADO)
VALUES (@DESCRIP, @EST)
GO
195
2.3.130. seg_ing_horarios
//Permite ingresar horarios
5/8/2007 4:21:17 PM
CREATE PROCEDURE SEG_ING_HORARIOS
@TIPO AS VARCHAR(3),
@NOMBRE AS VARCHAR(50),
@CODIGO AS VARCHAR(3),
@DESCRIPCION AS VARCHAR(50),
@HORAINICIAL AS VARCHAR(10),
@HORAFINAL AS VARCHAR(10)
AS
INSERT INTO HORARIOS
(TIPO,NOMBRE,CODIGO,DESCRIPCION, HORAINICIAL,HORAFINAL)
VALUES (@TIPO,@NOMBRE,@CODIGO,@DESCRIPCION,
@HORAINICIAL,@HORAFINAL)
GO
2.3.131. seg_ing_parametro
//Permite ingresar parámetros (detalle de la empresa)
11/9/2006 2:50:21 AM
CREATE PROCEDURE SEG_ING_PARAMETRO
@RUC AS VARCHAR(10),
@EMPRESA AS VARCHAR(50),
196
@DIRECCION AS VARCHAR(150),
@TELEFONO AS VARCHAR(10),
@SUCURSAL AS INT,
@CAJA AS INT,
@IVA AS DECIMAL(18,4),
@DESCTO AS DECIMAL(18,4),
@RUTA AS VARCHAR(50)
AS
INSERT INTO PARAMETROS(NOMBREMPRESA, DIRECCION,
PORCENTAJEIVA,
TELEFONOEMP,RUC,PORCENTDESCTO,SUCURSAL,CAJA,RUTA)
VALUES (@EMPRESA ,@DIRECCION ,@IVA, @TELEFONO
,@RUC,@DESCTO,@SUCURSAL,@CAJA,@RUTA)
GO
2.3.132. seg_ing_perxusu
//Permite crear permisos a los usuarios
1/8/2007 11:46:15 PM
CREATE PROCEDURE SEG_ING_PERXUSU
--@CODPERXUSU AS VARCHAR(10),
@CODCEDULAUSU AS VARCHAR(50),
@CODOPC AS VARCHAR(50),
@ESTADO AS VARCHAR(10)
AS
197
INSERT INTO PERMISO_POR_USUARIO(CODCEDULAUSU, CODOPC,
ESTADO)
VALUES (@CODCEDULAUSU ,@CODOPC, @ESTADO)
GO
2.3.133. seg_ing_secuencia
//Permite ingresar la secuencia de la persona creada
5/2/2007 11:52:37 AM
CREATE PROCEDURE SEG_ING_SECUENCIA
@SEC AS VARCHAR(13)
AS
UPDATE PARAMETROS SET SECUENCIA= @SEC
GO
2.3.134. seg_ing_sucursal
//Permite crear sucursales
2/2/2007 5:46:40 AM
CREATE PROCEDURE SEG_ING_SUCURSAL
@DESCRIP AS VARCHAR(500),
@EST AS VARCHAR(10)
AS
INSERT INTO SUCURSAL (DESCRIPCION, ESTADO)
VALUES (@DESCRIP, @EST)
198
GO
2.3.135. seg_ing_tarjetas
//Permite crear tarjetas de crédito
2/26/2007 7:06:55 PM
CREATE PROCEDURE SEG_ING_TARJETAS
@DESCRIP AS VARCHAR(500),
@ABREV AS VARCHAR(500),
@ESTADO AS VARCHAR(50),
@CODBANCO AS INT
AS
INSERT INTO TARJETAS_CREDITO (DESCRIPCION,
ABREVIATURA, ESTADO, CODBANCO)
VALUES (@DESCRIP,@ABREV, @ESTADO, @CODBANCO)
GO
2.3.136. seg_ing_usuario
//Permite ingresar el usuario en la tabla persona cuando es la primera vez
que se lo crea
11/16/2006 7:46:24 AM
CREATE PROCEDURE SEG_ING_USUARIO
@CEDULA AS VARCHAR(13),
199
@PERNOMBRE AS VARCHAR(50),
@PERAPELLIDO AS VARCHAR(50),
@USUPASSWORD AS VARCHAR(50),
@USUUSER AS VARCHAR(40),
@USUFECCREAC AS DATETIME,
@SEC AS VARCHAR(13)
AS
INSERT INTO PERSONA (CEDULA, CODTIPOPER, PERNOMBRE,
PERAPELLIDO,
PERDIRECCION,PERTELEFONO,PERMAIL,PERFAX,CODCIUDAD,CODZ
ONA,FECHAINGRESO,FECHASALIDA,PERCOMENTARIO,FECHAMODIF,
CODEMPL,PERDESCTO,FECHANAC,PERESTDCIVIL,PERSEXO,PEREST
ADO,PEREMPRESA,PERRUC,TIPO,CODIGOSECUEN)
VALUES (@CEDULA, 4, @PERNOMBRE, @PERAPELLIDO,
'','N/A','N/A','N/A',1,1,@USUFECCREAC,@USUFECCREAC,'N/A',@USUFE
CCREAC,0,0,@USUFECCREAC,'S','M','1','N/A','N/A',1,@SEC)
INSERT INTO USUARIO (CODCEDULA, USUPASSWORD, USUUSER,
USUFECCREAC, USUESTADO)
VALUES (@CEDULA, @USUPASSWORD, @USUUSER,
@USUFECCREAC, 'A')
GO
2.3.137. seg_ing_zona
//Permite crear registros en la tabla zona
2/19/2007 4:03:47 PM
CREATE PROCEDURE SEG_ING_ZONA
200
@DESCRIP AS VARCHAR(500),
@EST AS VARCHAR(10)
AS
INSERT INTO ZONA(DESCRIPCION, ESTADO)
VALUES (@DESCRIP, @EST)
GO
2.3.138. seg_mod_banco
//Permite modificar los bancos creados
3/9/2007 11:21:14 PM
CREATE PROCEDURE SEG_MOD_BANCO
@CODBANCO AS INT,
@DESCRIP AS VARCHAR(500),
@ESTADO AS VARCHAR(50)
AS
BEGIN
UPDATE TIPO_BANCO SET DESCRIPCION=@DESCRIP,
ESTADO=@ESTADO
WHERE CODTIPOBANKO=@CODBANCO
END
GO
2.3.139. seg_mod_caja
//Permite modificar las cajas creadas
5/8/2007 12:39:48 PM
201
CREATE PROCEDURE SEG_MOD_CAJA
@CODCAJA AS INT,
@DESCRIP AS VARCHAR(500),
@EST AS VARCHAR(2)
AS
BEGIN
UPDATE CAJA SET DESCRIPCION=@DESCRIP, ESTADO=@EST
WHERE CODCAJA=@CODCAJA
END
GO
2.3.140. seg_mod_horarios
//Permite modificar los horarios creados
5/8/2007 4:12:56 PM
CREATE PROCEDURE SEG_MOD_HORARIOS
@TIPO AS VARCHAR(3),
@NOMBRE AS VARCHAR(50),
@CODIGO AS VARCHAR(3),
@DESCRIPCION AS VARCHAR(50),
@HORAINICIAL AS VARCHAR(10),
@HORAFINAL AS VARCHAR(10)
AS
BEGIN
UPDATE HORARIOS SET NOMBRE=@NOMBRE,
DESCRIPCION=@DESCRIPCION, HORAINICIAL=@HORAINICIAL,
HORAFINAL=@HORAFINAL
202
WHERE TIPO=@TIPO AND CODIGO=@CODIGO
END
GO
2.3.141. seg_mod_parametro
//Permite modificar los parámetros de la empresa
11/10/2006 6:35:02 AM
CREATE PROCEDURE SEG_MOD_PARAMETRO
@RUC AS VARCHAR(13),
@EMPRESA AS VARCHAR(50),
@DIRECCION AS VARCHAR(150),
@TELEFONO AS VARCHAR(10),
@SUCURSAL AS INT,
@CAJA AS INT,
@IVA AS DECIMAL(18,4),
@DESCTO AS DECIMAL(18,4),
@RUTA AS VARCHAR(50)
AS
UPDATE PARAMETROS SET RUC=@RUC , NOMBREMPRESA=
@EMPRESA ,DIRECCION= @DIRECCION ,PORCENTAJEIVA= @IVA,
TELEFONOEMP=@TELEFONO ,
PORCENTDESCTO=
@DESCTO,SUCURSAL= @SUCURSAL,CAJA=@CAJA,RUTA=@RUTA
GO
203
2.3.142. seg_mod_sucursal
//Permite modificar la sucursal creada
2/2/2007 5:35:08 AM
CREATE PROCEDURE SEG_MOD_SUCURSAL
@CODSUC AS INT,
@DESCRIP AS VARCHAR(500),
@EST AS VARCHAR(2)
AS
BEGIN
UPDATE SUCURSAL SET DESCRIPCION=@DESCRIP,
ESTADO=@EST
WHERE CODSUCUR=@CODSUC
END
GO
2.3.143. seg_mod_tarjeta
//Permite modificar las tarjetas de crédito ingresadas
2/26/2007 7:04:53 PM
CREATE PROCEDURE SEG_MOD_TARJETA
@CODTARJ AS INT,
@DESCRIP AS VARCHAR(500),
@ABREV AS VARCHAR(500),
204
@ESTADO AS VARCHAR(50),
@CODBANCO AS VARCHAR(50)
AS
BEGIN
UPDATE TARJETAS_CREDITO SET DESCRIPCION=@DESCRIP,
ABREVIATURA=@ABREV, ESTADO=@ESTADO
WHERE CODBANCO=@CODBANCO AND
CODTARJCRED=@CODTARJ
END
GO
2.3.144. seg_mod_usuario
//Permite modificar los usuarios creados
1/8/2007 10:12:45 PM
CREATE PROCEDURE SEG_MOD_USUARIO
@CEDULA AS VARCHAR(13),
@PERNOMBRE AS VARCHAR(50),
@PERAPELLIDO AS VARCHAR(50),
@USUPASSWORD AS VARCHAR(50),
@USUUSER AS VARCHAR(40),
@CODESTADO AS VARCHAR(2)
AS
UPDATE PERSONA SET PERNOMBRE =@PERNOMBRE,
PERAPELLIDO=@PERAPELLIDO
WHERE CEDULA =@CEDULA
205
UPDATE USUARIO SET USUPASSWORD=@USUPASSWORD, USUUSER
=@USUUSER, USUESTADO=@CODESTADO
WHERE CODCEDULA =@CEDULA
GO
2.3.145. seg_mod_zona
//Permite modificar las zonas creadas
2/19/2007 4:04:29 PM
CREATE PROCEDURE SEG_MOD_ZONA
@CODZONA AS INT,
@DESCRIP AS VARCHAR(50),
@EST AS VARCHAR(2)
AS
BEGIN
UPDATE ZONA SET DESCRIPCION=@DESCRIP, ESTADO=@EST
WHERE CODZONA=@CODZONA
END
GO
2.3.146. seg_permisos
//Permite consultar los permisos dados a usuarios
1/8/2007 9:23:50 PM
CREATE PROCEDURE SEG_PERMISOS
206
@MODULO AS INT
AS
BEGIN
SELECT B.CODMODULO, A.DESCRIPCION , A.OPCFORMULARIO,
OPCOBSERVACION, OPCFECHACREAC, ESTADO, A.CODOPCION
FROM OPCIONES_POR_MODULO AS A, MODULO AS B
WHERE A.CODMODULO=B.CODMODULO AND
A.CODMODULO=@MODULO
END
GO
2.3.147. seg_permxusu
//Permite consultar el número de permisos dados a usuarios
1/6/2007 11:05:23 AM
CREATE PROCEDURE SEG_PERMXUSU
@CODIGO AS VARCHAR(15),
@MODULO AS INT
AS
BEGIN
DECLARE @CTA AS INT
BEGIN
SELECT @CTA=COUNT( a.codopc) FROM PERMISO_POR_USUARIO as
a, OPCIONES_POR_MODULO as b
WHERE CODCEDULAUSU=@CODIGO AND
CODOPCION=CODOPC and codmodulo=@MODULO
207
END
BEGIN
SELECT a.codopc, b.descripcion, b.opcobservacion, b.opcformulario,
b.opcfechacreac, a.ESTADO, @CTA AS CTA FROM
PERMISO_POR_USUARIO as a, OPCIONES_POR_MODULO as b
WHERE CODCEDULAUSU=@CODIGO AND
CODOPCION=CODOPC and codmodulo=@MODULO
END
END
GO
2.3.148. seg_upd_perxusu
//Permite actualizar los permisos a usuarios
1/9/2007 1:26:21 AM
CREATE PROCEDURE SEG_UPD_PERXUSU
@CODCEDULAUSU AS VARCHAR(50),
@CODOPC AS VARCHAR(150),
@ESTADO AS VARCHAR(10)
AS
UPDATE PERMISO_POR_USUARIO SET ESTADO=@ESTADO
WHERE CODCEDULAUSU=@CODCEDULAUSU AND
CODOPC=@CODOPC
GO
208
2.3.149. sicag_busqueda_espe
//Permite la busqueda al detalle de la tabla busqueda general
11/15/2006 4:08:03 AM
CREATE Procedure SICAG_BUSQUEDA_ESPE
@TABLA nvarchar(100),
@CAMPO nvarchar(100)
AS
Begin
Select gen_tipo From SICAG_BUSQUEDAS Where GEN_TABLA =
@TABLA and gen_columna = @CAMPO
End
GO
2.3.150. sicag_busqueda_gen
//Permite la busqueda general
11/12/2006 6:52:49 PM
CREATE PROCEDURE SICAG_BUSQUEDA_GEN
@TABLA nvarchar(100)
AS
Begin
select * from SICAG_BUSQUEDAS where GEN_TABLA = @TABLA
end
209
GO
2.3.151. verifica_existencia
//Permite consultar la existencia de un producto
7/15/2007 9:42:14 AM
CREATE PROCEDURE VERIFICA_EXISTENCIA
@CODIGO AS int
AS
select ex.codigo,protipo,
sum(CASE tipo
WHEN 'NV'
THEN (CAST ((cantidad*-1) AS numeric(10)))
WHEN 'SA'
THEN (CAST ((cantidad*-1) AS numeric(10)))
WHEN 'CO'
THEN (CAST ((cantidad) AS numeric(10)))
WHEN 'DE'
THEN (CAST ((cantidad) AS numeric(10)))
ELSE
(CAST (0 AS numeric(10)))
END) AS cantidad
from existencias as ex,producto_serv as pr
where ex.codigo=pr.codprodserv and ex.codigo= @CODIGO
group by ex.codigo,protipo
210
GO
2.4 Indice (Campos primarios)
* Tabla Asistencia
- Clave primaria: número
- Validación: numeric
* Tabla Bronceados
- Clave primaria: número
- Validación: numeric
* Tabla Cabecera_Factura
- Clave primaria: número
- Validación: int
* Tabla Cabecera_Inventario
- Clave primaria: número
- Validación: numeric
* Tabla Caja
- Clave primaria: codcaja
- Validación: int
211
* Tabla Combo_Cabecera
- Clave primaria: número
- Validación: int
* Tabla Combo_Detalle
- Clave primaria: numero
- Validación: int
* Tabla Detalle_Factura
- Clave primaria: número
- Validación: numeric
* Tabla Detalle_Inventario
- Clave primaria: número
- Validación: numeric
* Tabla Existencias
- Clave primaria: número
- Validación: numeric
212
* Tabla Horarios
- Clave primaria: tipo
- Validación: char
* Tabla Locker
- Clave primaria: numero
- Validación: numeric
* Tabla Masajes
- Clave primaria: numero
- Validación: numeric
* Tabla Módulo
- Clave primaria: codmodulo
- Validación: int
* Tabla Opciones_por_Modul
- Clave primaria: codopcion
- Validación: int
* Tabla Pagos_Factura
- Clave primaria: numero
213
- Validación: numeric
* Tabla Parámetros
- Clave primaria: Nombrempresa
- Validación: nvarchar
* Tabla Parqueo
- Clave primaria: numero
- Validación: numeric
* Tabla Permiso_por_usuario
- Clave primaria: codperxusu
- Validación: int
* Tabla Persona
- Clave primaria: codpers
- Validación: int
* Tabla Persona_Trainer
- Clave primaria: número
- Validación: numeric
214
* Tabla Pilates
- Clave primaria: número
- Validación: numeric
* Tabla Platos_Cabecera
- Clave primaria: número
- Validación: int
* Tabla Platos_Detalle
- Clave primaria: número
- Validación: int
* Tabla Producto_Serv
- Clave primaria: codprodserv
- Validación: int
* Tabla Proveedor
- Clave primaria: Codigo
- Validación: numeric
* Tabla Secuencias
- Clave primaria: secuencial
215
- Validación: numeric
* Tabla Sicag_Busquedas
- Clave primaria: gen_tabla
- Validación: nvarchar
* Tabla Sucursal
- Clave primaria: codsucur
- Validación: int
* Tabla Tarjetas_Credito
- Clave primaria: codtarjcred
- Validación: int
* Tabla Tipo_Banco
- Clave primaria: codtipobanko
- Validación: int
* Tabla Tipo_Persona
- Clave primaria: codtipopers
- Validación: int
216
* Tabla Usuario
- Clave primaria: codusu
- Validación: int
* Tabla Detalle_Zona
- Clave primaria: numero
- Validación: numeric
2.5. Validación de Campo
2.5.1 Identificación de campos obligatorios
* Tabla Asistencia
- Campos: número
* Tabla Bronceados
- Campos: número, numerocaja
* Tabla Cabecera_Factura
- Campos: numero
* Tabla Cabecera_Inventario
- Campos: número, numerocaja
217
* Tabla Caja
- Campos: codcaja, descripción
* Tabla Combo_Cabecera
- Campo: numero, codcombo, nombre, precio
* Tabla Combo_Detalle
- Campos: numero, codcombo, codprodserv
* Tabla Detalle_Factura
- Campos: numero, numerocab
* Tabla Detalle_Inventario
- Campos: numero, numerocab, numerocaja
* Tabla Existencias
- Campos: numero, numerocab
* Tabla Horarios
- Campos: tipo, nombre
218
* Tabla Locker
- Campos: numero, numerocaja
* Tabla Masajes
- Campos: numero, numerocaja
* Tabla Módulo
- Campos: codmodulo, descripcion
* Tabla Opciones_por_Modul
- Campos: id (codopcion), codmodulo, codopcxmod, descripción
opcformulario, opcobservacion, opcfechacreac, opcestado
codusul, pci
* Tabla Pagos_Factura
- Campos: numero, numerocab
* Tabla Parámetros
- Campos: nombrempresa, dirección, porcentajeiva,
telefonoemp, ruc, porcentdescto
* Tabla Parqueo
219
- Campos: numero, numerocaja
* Tabla Permiso_por_usuario
- Campos: codperxusu, codcedulausu, codopc
* Tabla Persona
- Campos: codpers, cedula, codtipoper, pernombre, perapellido,
perdireccion
* Tabla Persona_Trainer
- Campos: numero, numerocaja
* Tabla Pilates
- Campos: numero, numerocaja
* Tabla Platos_Cabecera
- Campos: numero, codplato, nombre, precio, costo
* Tabla Platos_Detalle
- Campos: numero, codplato, codprodserv,
220
* Tabla Producto_Serv
- Campos: codprodserv, codpadre, protipo, profecing, proiva,
proprecio, proprecio2, descripción, costo
* Tabla Proveedor
- Campos: codigo, cedula, codtipoprov, prorsocial,
* Tabla Secuencias
- Campos: secuencial
* Tabla Sicag_Busquedas
- Campos: gen_longitud
* Tabla Sucursal
- Campos: codsucur, descripcion
* Tabla Tarjetas_Credito
- Campos: codtarjcred
* Tabla Tipo_Banco
- Campos: codtipobanko, descripcion
221
* Tabla Tipo_Persona
- Campos: codtipopers, descripcion
* Tabla Usuario
- Campos: codusu, codcedula, usupassword, usuuser,
usufeccreac, usuestado
* Tabla Detalle_Zona
- Campos: numero
2.6. Código Fuente
* Programa Modulo.vb
Imports System.Data.SqlClient Module Modulo Public cn As New SqlConnection Public cn1 As New SqlConnection Public cmd As New SqlCommand Public dr As SqlDataReader Public dr1 As SqlDataReader Public cmd2 As New SqlCommand 'Variables publicas para todas las formas Public TablaBuscada As String Public Campo1 As String Public Campo2 As String Public Campo3 As String Public S_Codigo As String Public usu, cedula As String Public EXISTE As Boolean Public Cod_Usu As String Public CODUSU, CODSUCU, opcion As Integer
222
Public SUCURSAL As String Public Ruta_Reporte As String End Module
* Programa Assembly.vb
Imports System Imports System.Reflection Imports System.Runtime.InteropServices ' La información general de un ensamblado se controla mediante el siguiente ' conjunto de atributos. Cambie estos atributos para modificar la información ' asociada con un ensamblado. ' Revisar los valores de los atributos del ensamblado <Assembly: AssemblyTitle("")> <Assembly: AssemblyDescription("")> <Assembly: AssemblyCompany("")> <Assembly: AssemblyProduct("")> <Assembly: AssemblyCopyright("")> <Assembly: AssemblyTrademark("")> <Assembly: CLSCompliant(True)> 'El siguiente GUID sirve como identificador de la biblioteca de tipos si este proyecto se expone a COM <Assembly: Guid("0B4155EE-9589-468E-8121-2C37F34B4F0C")> ' La información de versión de un ensamblado consta de los siguientes cuatro valores: ' ' Versión principal ' Versión secundaria ' Versión de compilación ' Revisión ' ' Puede especificar todos los valores o usar los valores predeterminados (número de versión de compilación y de revisión) ' usando el símbolo '*' como se muestra a continuación: <Assembly: AssemblyVersion("1.0.*")>
223
* Clase Verifica_datos.vb
Public Class Verifica_datos Public Function Verificar_Usuario(ByVal usuario As String, ByVal clave As String) As SqlClient.SqlDataReader cmd.CommandText = "SEG_CONSUL_USUARIO" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@usu", usuario) cmd.Parameters.Add("@passw", clave) Try dr = cmd.ExecuteReader() Return dr Catch ex As Exception MsgBox(ex.Message) End Try dr.Close() End Function Public Function verifica_permisos() As Boolean If cn.State = ConnectionState.Closed Then cn.Open() End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_ESPECIF", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", usu) cmd.Parameters.Add("@OPCION", 2) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then cedula = dr("CODCEDULA") verifica_permisos = True Else verifica_permisos = False End If dr.Close()
224
End Function Public Function Verificar_PerxUsuario(ByVal cedula As String) As SqlClient.SqlDataReader Dim oComando As New SqlClient.SqlCommand Dim oDatareader As SqlClient.SqlDataReader oComando.CommandType = CommandType.Text oComando = New SqlClient.SqlCommand("select CODCEDULAUSU from PERMISO_POR_USUARIO where CODCEDULAUSU= CEDULA", cn) oDatareader = oComando.ExecuteReader() Return oDatareader End Function End Class
* Clase Form1.vb
Imports System.Data.SqlClient Public Class Form1 Inherits System.Windows.Forms.Form Private Shared formglo As Form1 Public Shared Property gf() As Form1 Get If formglo Is Nothing OrElse formglo.IsDisposed Then formglo = New Form1 End If Return formglo End Get Set(ByVal Value As Form1) formglo = Value End Set End Property Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Resize Dim imagen As New Drawing.Bitmap(PictureBox1.Image, Me.Width,
Me.Height) Me.BackgroundImage = imagen End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim ctl As Control Dim ctlMDI As MdiClient
225
For Each ctl In Me.Controls Try ctlMDI = CType(ctl, MdiClient) ctlMDI.BackColor = Me.BackColor Catch exc As InvalidCastException End Try Next Me.gf = Me Me.PictureBox1.Dock = DockStyle.Fill Dim cn As New SqlConnection Dim Codigo As New Verifica_datos cn.ConnectionString = "server=(local); user id=sa; pwd=sasa; database=GYM" Try cn.Open() MsgBox("Bienvenidos a SICAG") If usu <> "ADMIN" Then DESHABILITA_MENU() If Codigo.verifica_permisos = True Then habilita_menu() End If End If Catch ex As Exception MsgBox(ex.Message) End Try End Sub Private Sub habilita_menu() cmd = New SqlClient.SqlCommand("seg_busca_permisos", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CEDULA", cedula) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then EXISTE = True dr.Close() dr = cmd.ExecuteReader() While dr.Read
226
Select Case dr("OPCFORMULARIO") '-se escoge el criterio 'Menu Seguridad 'MANTENIMIENTO Case "Mnu_usuario" Mnu_usuario.Enabled = True Case "Mnu_sucur" Mnu_sucur.Enabled = True Case "Mnu_parametro" Mnu_parametro.Enabled = True Case "Mnu_Caja" Mnu_Caja.Enabled = True 'PROCESOS Case "Mnu_permxusu" Mnu_permxusu.Enabled = True Case "Mnu_Horarios" Mnu_Horarios.Enabled = True 'CONSULTAS Case "Mnu_cons_usu" Mnu_cons_usu.Enabled = True Case "Mnu_cons_permxusu" Mnu_cons_permxusu.Enabled = True Case "Mnu_Rep_Horarios" Mnu_Rep_Horarios.Enabled = True 'Menu Facturacion 'MANTENIMIENTOS Case "Mnu_clientes" Mnu_Clientes.Enabled = True Case "Mnu_tarjCred" Mnu_tarjCred.Enabled = True Case "Mnu_zona" Mnu_zona.Enabled = True 'PROCESOS Case "Mnu_factura" Mnu_factura.Enabled = True Case "Mnu_Devolucion" Mnu_Devolucion.Enabled = True Case "Mnu_proc_lecturaMarcadas" Mnu_proc_lecturaMarcadas.Enabled = True Case "Mnu_creaCombos" Mnu_creaCombos.Enabled = True ' PRECESOS - TICKETS DE SERVICIOS Case "Mnu_PersonalTrainer" Mnu_PersonalTrainer.Enabled = True Case "Mnu_Pilates"
227
Mnu_Pilates.Enabled = True Case "Mnu_Masajes" Mnu_Masajes.Enabled = True Case "Mnu_Bronceados" Mnu_Bronceados.Enabled = True Case "Mnu_Locker" Mnu_Locker.Enabled = True Case "Mnu_Parqueo" Mnu_Parqueo.Enabled = True Case "Mnu_ExportarDbf" Mnu_ExportarDbf.Enabled = True Case "Mnu_EnviarTexto" Mnu_EnviarTexto.Enabled = True Case "Mnu_creaPlatos" Mnu_creaPlatos.Enabled = True 'CONSULTAS 'CONSULTAS REPORTES DE SERVICIO Case "Mnu_Rep_TicketsPorFechas" Mnu_Rep_TicketsPorFechas.Enabled = True Case "Mnu_ReportePersonalTrainer" Mnu_ReportePersonalTrainer.Enabled = True 'CONSULTAS REPORTES DE CLIENTES Case "Mnu_ReporteClientesxSexo" Mnu_ReporteClientesxSexo.Enabled = True Case "Mnu_ReporteClientesxSecuencia" Mnu_ReporteClientesxSecuencia.Enabled = True Case "Mnu_ReportedeClientesxTipo" Mnu_ReportedeClientesxTipo.Enabled = True Case "Mnu_consListaCli" Mnu_consListaCli.Enabled = True Case "Mnu_ReportedeAsistencias" Mnu_ReportedeAsistencias.Enabled = True ' CONSULTAS REPORTES DE VENTAS Case "Mnu_ReporteDiarioVenta" Mnu_ReporteDiarioVenta.Enabled = True Case "Mnu_ReporteCuadreCaja" Mnu_ReporteCuadreCaja.Enabled = True Case "Mnu_ReporteVentasProducto" Mnu_ReporteVentasProducto.Enabled = True Case "Mnu_VentasxBanco" Mnu_VentasxBanco.Enabled = True Case "Mnu_VentasxMeses" Mnu_VentasxMeses.Enabled = True Case "Mnu_VentasxVendedor"
228
Mnu_VentasxVendedor.Enabled = True Case "Mnu_VentasTarjeta" Mnu_VentasTarjeta.Enabled = True Case "Mnu_VentasPorHoras" Mnu_VentasPorHoras.Enabled = True Case "Mnu_ReportePlatos" Mnu_ReportePlatos.Enabled = True Case "Mnu_ReporteCombos" Mnu_ReporteCombos.Enabled = True Case "Mnu_ReportePlatosCostos" Mnu_ReportePlatosCostos.Enabled = True Case "Mnu_ReporteComprasSocios" Mnu_ReporteComprasSocios.Enabled = True Case "Mnu_Ciudades" Mnu_Ciudades.Enabled = True 'MENU INVENTARIO 'MANTENIMIENOS Case "Mnu_prodserv" Mnu_prodserv.Enabled = True 'PROCESOS Case "Mnu_Ingreso" Mnu_Ingreso.Enabled = True Case "Mnu_Egresos" Mnu_Egresos.Enabled = True 'REPORTES Case "Mnu_inv_Existencia" Mnu_inv_Existencia.Enabled = True Case "Mnu_inv_Movimientos" Mnu_inv_Movimientos.Enabled = True Case "Mnu_Rep_Productos" Mnu_Rep_Productos.Enabled = True End Select End While Else EXISTE = False MsgBox("NO TIENE PERMISOS") 'Menu Seguridad 'MANTENIMIENTO Mnu_usuario.Enabled = False Mnu_sucur.Enabled = False Mnu_parametro.Enabled = False Mnu_Caja.Enabled = False 'PROCESOS Mnu_permxusu.Enabled = False
229
Mnu_Horarios.Enabled = False 'CONSULTAS Mnu_cons_usu.Enabled = False Mnu_cons_permxusu.Enabled = False Mnu_Rep_Horarios.Enabled = False 'Menu Facturacion 'MANTENIMIENTOS Mnu_Clientes.Enabled = False Mnu_tarjCred.Enabled = False Mnu_zona.Enabled = False 'PROCESOS Mnu_factura.Enabled = False Mnu_Devolucion.Enabled = False Mnu_proc_lecturaMarcadas.Enabled = False Mnu_creaCombos.Enabled = False ' PRECESOS - TICKETS DE SERVICIOS Mnu_PersonalTrainer.Enabled = False Mnu_Pilates.Enabled = False Mnu_Masajes.Enabled = False Mnu_Bronceados.Enabled = False Mnu_Locker.Enabled = False Mnu_Parqueo.Enabled = False Mnu_ExportarDbf.Enabled = False Mnu_EnviarTexto.Enabled = False Mnu_creaPlatos.Enabled = False 'CONSULTAS 'CONSULTAS REPORTES DE SERVICIO Mnu_Rep_TicketsPorFechas.Enabled = False 'Mnu_Rep_TicketsPorSesion.Enabled = False 'Mnu_Rep_TicketsPorMembresia.Enabled = False 'Mnu_Rep_TicketsPorCliente.Enabled = False Mnu_ReportePersonalTrainer.Enabled = False 'CONSULTAS REPORTES DE CLIENTES Mnu_ReporteClientesxSexo.Enabled = False Mnu_ReporteClientesxSecuencia.Enabled = False Mnu_ReportedeClientesxTipo.Enabled = False Mnu_consListaCli.Enabled = False Mnu_ReportedeAsistencias.Enabled = False ' CONSULTAS REPORTES DE VENTAS Mnu_ReporteDiarioVenta.Enabled = False Mnu_ReporteCuadreCaja.Enabled = False Mnu_ReporteVentasProducto.Enabled = False Mnu_VentasxBanco.Enabled = False Mnu_VentasxMeses.Enabled = False
230
Mnu_VentasxVendedor.Enabled = False Mnu_VentasTarjeta.Enabled = False Mnu_VentasPorHoras.Enabled = False Mnu_ReportePlatos.Enabled = False Mnu_ReporteCombos.Enabled = False Mnu_ReportePlatosCostos.Enabled = False Mnu_ReporteComprasSocios.Enabled = False Mnu_Ciudades.Enabled = False 'MENU INVENTARIO 'MANTENIMIENOS Mnu_prodserv.Enabled = False 'PROCESOS Mnu_Ingreso.Enabled = False Mnu_Egresos.Enabled = False 'REPORTES Mnu_inv_Existencia.Enabled = False Mnu_inv_Movimientos.Enabled = False Mnu_Rep_Productos.Enabled = False End If dr.Close() End Sub Sub DESHABILITA_MENU() 'Menu Seguridad 'MANTENIMIENTO Mnu_usuario.Enabled = False Mnu_sucur.Enabled = False Mnu_parametro.Enabled = False Mnu_Caja.Enabled = False 'PROCESOS Mnu_permxusu.Enabled = False Mnu_Horarios.Enabled = False 'CONSULTAS Mnu_cons_usu.Enabled = False Mnu_cons_permxusu.Enabled = False Mnu_Rep_Horarios.Enabled = False 'Menu Facturacion 'MANTENIMIENTOS Mnu_Clientes.Enabled = False Mnu_tarjCred.Enabled = False Mnu_zona.Enabled = False 'PROCESOS Mnu_factura.Enabled = False Mnu_Devolucion.Enabled = False Mnu_proc_lecturaMarcadas.Enabled = False
231
Mnu_creaCombos.Enabled = False ' PRECESOS - TICKETS DE SERVICIOS Mnu_PersonalTrainer.Enabled = False Mnu_Pilates.Enabled = False Mnu_Masajes.Enabled = False Mnu_Bronceados.Enabled = False Mnu_Locker.Enabled = False Mnu_Parqueo.Enabled = False Mnu_ExportarDbf.Enabled = False Mnu_EnviarTexto.Enabled = False Mnu_creaPlatos.Enabled = False 'CONSULTAS 'CONSULTAS REPORTES DE SERVICIO Mnu_Rep_TicketsPorFechas.Enabled = False 'Mnu_Rep_TicketsPorSesion.Enabled = False 'Mnu_Rep_TicketsPorMembresia.Enabled = False 'Mnu_Rep_TicketsPorCliente.Enabled = False Mnu_ReportePersonalTrainer.Enabled = False 'CONSULTAS REPORTES DE CLIENTES Mnu_ReporteClientesxSexo.Enabled = False Mnu_ReporteClientesxSecuencia.Enabled = False Mnu_ReportedeClientesxTipo.Enabled = False Mnu_consListaCli.Enabled = False Mnu_ReportedeAsistencias.Enabled = False ' CONSULTAS REPORTES DE VENTAS Mnu_ReporteDiarioVenta.Enabled = False Mnu_ReporteCuadreCaja.Enabled = False Mnu_ReporteVentasProducto.Enabled = False Mnu_VentasxBanco.Enabled = False Mnu_VentasxMeses.Enabled = False Mnu_VentasxVendedor.Enabled = False Mnu_VentasTarjeta.Enabled = False Mnu_VentasPorHoras.Enabled = False Mnu_ReportePlatos.Enabled = False Mnu_ReporteCombos.Enabled = False Mnu_ReportePlatosCostos.Enabled = False Mnu_ReporteComprasSocios.Enabled = False Mnu_Ciudades.Enabled = False 'MENU INVENTARIO 'MANTENIMIENOS Mnu_prodserv.Enabled = False 'PROCESOS Mnu_Ingreso.Enabled = False Mnu_Egresos.Enabled = False
232
'REPORTES Mnu_inv_Existencia.Enabled = False Mnu_inv_Movimientos.Enabled = False Mnu_Rep_Productos.Enabled = False End Sub Private Sub Mnu_usuperm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_mant_seg.Click Dim frm_usu As New Frm_mant_usuario frm_usu.MdiParent = Me frm_usu.Show() End Sub Private Sub Mnu_tarjCred_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_tarjCred.Click Dim Frm_tarjCred As New Frm_mant_tarj_credito Frm_tarjCred.MdiParent = Me Frm_tarjCred.Show() End Sub Private Sub Mnu_factura_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_factura.Click Dim Frm_Factura As New Frm_pro_facturación Frm_Factura.MdiParent = Me Frm_Factura.Show() End Sub Private Sub Frm_cant_venxprod_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 'Dim frm_cant_vendxproduct As New Frm_cons_cant_venxprod 'frm_cant_vendxproduct.Show() End Sub Private Sub Mnu_Salir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_Salir.Click End End Sub Private Sub Mnu_prodserv_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_prodserv.Click Dim Frm_mant_prodServ As New Frm_mant_prodserv Frm_mant_prodServ.MdiParent = Me Frm_mant_prodServ.Show() End Sub Private Sub Mnu_parametro_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_parametro.Click Dim Frm_parametro As New Frm_mant_parametros Frm_parametro.MdiParent = Me Frm_parametro.Show()
233
End Sub Private Sub Mnu_zona_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_zona.Click Dim Frm_zona As New Frm_mant_provincias Frm_zona.MdiParent = Me Frm_zona.Show() End Sub Private Sub Mnu_proc_lecturaMarcadas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_proc_lecturaMarcadas.Click Dim Frm_lecturaMarcadas As New Frm_pro_lecturaMarcadas Frm_lecturaMarcadas.MdiParent = Me Frm_lecturaMarcadas.Show() End Sub Private Sub Mnu_creaCombos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_creaCombos.Click Dim Frm_Creacombos As New Frm_CreacionCombos Frm_Creacombos.MdiParent = Me Frm_Creacombos.Show() End Sub Private Sub Mnu_list_combo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim Frm_lista_comb As New Frm_CreacionCombos Frm_lista_comb.Show() End Sub 'Private Sub Mnu_confImp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_confImp.Click ' AxCommonDialog1.ShowPrinter() 'End Sub Private Sub Mnu_permxusu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_permxusu.Click Dim FRM_PERMXUSU As New Frm_mant_permisosxusu FRM_PERMXUSU.MdiParent = Me FRM_PERMXUSU.Show() End Sub Private Sub Mnu_usuario_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_usuario.Click Dim FRM_USU As New Frm_mant_usuario FRM_USU.MdiParent = Me FRM_USU.Show() End Sub Private Sub Mnu_sucur_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_sucur.Click Dim Frm_Sucur As New Frm_mant_sucursal
234
Frm_Sucur.MdiParent = Me Frm_Sucur.Show() End Sub Private Sub Mnu_cons_usu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_cons_usu.Click Dim repo As CrystalReport1 Dim FRM_REPO_CONSULTA As New ReporteUsuarios FRM_REPO_CONSULTA.Show() End Sub Private Sub Form1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed End End Sub Private Sub Mnu_cons_permxusu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_cons_permxusu.Click Dim repo As CrystalReport1 Dim FRM_REPO_RESTACC As New ReporteRestriccionAccesos FRM_REPO_RESTACC.Show() End Sub Private Sub Mnu_clientes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_Clientes.Click Dim Frm_cli As New Frm_mant_cliente Frm_cli.MdiParent = Me Frm_cli.Show() End Sub Private Sub Mnu_Caja_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_Caja.Click Dim Frm_Caja As New Frm_mant_caja Frm_Caja.MdiParent = Me Frm_Caja.Show() End Sub Private Sub Mnu_Horarios_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_Horarios.Click Dim Frm_Horarios As New Frm_Man_Horarios Frm_Horarios.MdiParent = Me Frm_Horarios.Show() End Sub Private Sub Mnu_PersonalTrainer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_PersonalTrainer.Click Dim FrmPersonal As New Frm_PersonalTrainer FrmPersonal.MdiParent = Me FrmPersonal.Show() End Sub
235
Private Sub Mnu_Ciudades_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_Ciudades.Click Dim FrmZonas As New Frm_Rep_Zonas FrmZonas.MdiParent = Me FrmZonas.Show() End Sub Private Sub Mnu_Pilates_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_Pilates.Click Dim Frm_MantPilates As New Frm_Pilates Frm_MantPilates.MdiParent = Me Frm_MantPilates.Show() End Sub Private Sub Mnu_Masajes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_Masajes.Click Dim Frm_Masajistas As New Frm_Masajes Frm_Masajistas.MdiParent = Me Frm_Masajistas.Show() End Sub Private Sub Mnu_Bronceados_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_Bronceados.Click Dim Frm_Bronceado As New Frm_Bronceados Frm_Bronceado.MdiParent = Me Frm_Bronceado.Show() End Sub Private Sub Mnu_Devolucion_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_Devolucion.Click Dim Frm_Devolucion As New Frm_pro_Credito Frm_Devolucion.MdiParent = Me Frm_Devolucion.Show() End Sub Private Sub Mnu_Egresos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_Egresos.Click Dim Frm_Egreso As New Frm_pro_salida Frm_Egreso.MdiParent = Me Frm_Egreso.Show() End Sub Private Sub Mnu_Ingreso_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_Ingreso.Click Dim Frm_Ingreso As New Frm_pro_ingreso Frm_Ingreso.MdiParent = Me Frm_Ingreso.Show() End Sub Private Sub Mnu_Locker_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_Locker.Click
236
Dim Frm_Loc As New Frm_Locker Frm_Loc.MdiParent = Me Frm_Loc.Show() End Sub Private Sub Mnu_Parqueo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_Parqueo.Click Dim Frm_Par As New Frm_Parqueo Frm_Par.MdiParent = Me Frm_Par.Show() End Sub Private Sub Mnu_Rep_TicketsPorFechas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_Rep_TicketsPorFechas.Click Dim Frm_RepServ As New Frm_Rep_Servicios Frm_RepServ.MdiParent = Me Frm_RepServ.Show() End Sub Private Sub Mnu_ReporteDiarioVenta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_ReporteDiarioVenta.Click Dim frm_RepDiariodeVentas As New Frm_Rep_DiarioVenta frm_RepDiariodeVentas.MdiParent = Me frm_RepDiariodeVentas.Show() End Sub Private Sub Mnu_ReporteCuadreCaja_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_ReporteCuadreCaja.Click Dim Frm_RepCuadreDeCaja As New Frm_Rep_CuadreDeCaja Frm_RepCuadreDeCaja.MdiParent = Me Frm_RepCuadreDeCaja.Show() End Sub Private Sub Mnu_ReporteVentasProducto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_ReporteVentasProducto.Click Dim Frm_RepVentProd As New Frm_Rep_Productos Frm_RepVentProd.MdiParent = Me Frm_RepVentProd.Show() End Sub Private Sub Mnu_ReportePersonalTrainer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_ReportePersonalTrainer.Click Dim Frm_ImpRepPerTra As New Frm_Rep_PersonalTrainer Frm_ImpRepPerTra.MdiParent = Me Frm_ImpRepPerTra.Show()
237
End Sub Private Sub Mnu_ReportedeClientesxTipo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_ReportedeClientesxTipo.Click Dim repo As CrystalReport1 Dim FRM_REPO_CLIENTESXTIPO As New ConsultaClientesxTipo FRM_REPO_CLIENTESXTIPO.Show() End Sub Private Sub Mnu_ReporteClientesxSecuencia_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_ReporteClientesxSecuencia.Click Dim repo As CrystalReport1 Dim FRM_REPO_CLIENTESXSECUENCIA As New ConsultaClientesxSecuencia FRM_REPO_CLIENTESXSECUENCIA.Show() End Sub Private Sub Mnu_ReporteClientesxSexo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_ReporteClientesxSexo.Click Dim repo As CrystalReport1 Dim FRM_REPO_CLIENTESXSEXO As New ConsultaClientesxSexo FRM_REPO_CLIENTESXSEXO.Show() End Sub Private Sub Mnu_consListaCli_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_consListaCli.Click Dim repo As CrystalReport1 Dim FRM_REPO_clientesactivos As New ConsultaClientesActivos FRM_REPO_clientesactivos.MdiParent = Me FRM_REPO_clientesactivos.Show() End Sub Private Sub Mnu_ExportarDbf_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_ExportarDbf.Click Dim Frm_DBF As New Frm_Man_ExportarDbf Frm_DBF.MdiParent = Me Frm_DBF.Show() End Sub Private Sub Mnu_EnviarTexto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_EnviarTexto.Click Dim Frm_Contabilizar As New Frm_Man_EnviarTexto Frm_Contabilizar.MdiParent = Me Frm_Contabilizar.Show() End Sub Private Sub Mnu_creaPlatos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_creaPlatos.Click
238
Dim Frm_Platos As New Frm_CreacionDePlatos Frm_Platos.MdiParent = Me Frm_Platos.Show() End Sub Private Sub Mnu_ReportedeAsistencias_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_ReportedeAsistencias.Click Dim Frm_Asistencias As New Frm_ReportedeAsistencias Frm_Asistencias.MdiParent = Me Frm_Asistencias.Show() End Sub Private Sub Mnu_VentasxMeses_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_VentasxMeses.Click Dim Frm_VMeses As New Frm_Rep_VentasXMeses Frm_VMeses.MdiParent = Me Frm_VMeses.Show() End Sub Private Sub Mnu_VentasPorHoras_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_VentasPorHoras.Click Dim Frm_VxHoras As New Frm_Rep_VentasXHoras Frm_VxHoras.MdiParent = Me Frm_VxHoras.Show() End Sub Private Sub Mnu_ReportePlatos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_ReportePlatos.Click Dim Frm_RepPla As New Frm_Rep_Platos Frm_RepPla.MdiParent = Me Frm_RepPla.Show() End Sub Private Sub Mnu_ReporteCombos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_ReporteCombos.Click Dim Frm_RepComb As New Frm_Rep_Combos Frm_RepComb.MdiParent = Me Frm_RepComb.Show() End Sub Private Sub Mnu_ReportePlatosCostos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_ReportePlatosCostos.Click Dim Frm_VentaPlatosCom As New Frm_RepVentasPlatosVSComponentes Frm_VentaPlatosCom.MdiParent = Me Frm_VentaPlatosCom.Show() End Sub
239
Private Sub Mnu_ReporteComprasSocios_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_ReporteComprasSocios.Click Dim Frm_Montos As New Frm_Rep_MontosXClientes Frm_Montos.MdiParent = Me Frm_Montos.Show() End Sub Private Sub Mnu_inv_Existencia_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_inv_Existencia.Click Dim Frm_Exist As New Frm_Rep_Existencias Frm_Exist.MdiParent = Me Frm_Exist.Show() End Sub Private Sub Mnu_inv_Movimientos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_inv_Movimientos.Click Dim Frm_Movim As New Frm_Rep_MovimientosDeProductos Frm_Movim.MdiParent = Me Frm_Movim.Show() End Sub Private Sub Mnu_VentasxBanco_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_VentasxBanco.Click Dim Frm_VenBanc As New Frm_Rep_VentasXBancos Frm_VenBanc.MdiParent = Me Frm_VenBanc.Show() End Sub Private Sub Mnu_VentasTarjeta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_VentasTarjeta.Click Dim Frm_VenTarj As New Frm_Rep_VentasXTarjetas Frm_VenTarj.MdiParent = Me Frm_VenTarj.Show() End Sub Private Sub Mnu_VentasxVendedor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_VentasxVendedor.Click Dim Frm_VenVend As New Frm_Rep_VentasXVendedor Frm_VenVend.MdiParent = Me Frm_VenVend.Show() End Sub Private Sub Mnu_Rep_Productos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_Rep_Productos.Click Dim Frm_RepProd As New Frm_ReporteProductos Frm_RepProd.MdiParent = Me Frm_RepProd.Show()
240
End Sub Private Sub Mnu_Rep_Horarios_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Mnu_Rep_Horarios.Click Dim Frm_RepHora As New Frm_Rep_Horarios Frm_RepHora.MdiParent = Me Frm_RepHora.Show() End Sub End Class
* Clase Frm_busqueda.vb
Public Class Frm_busqueda Inherits System.Windows.Forms.Form Dim acumula As Integer Private Sub Frm_busqueda_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Txt_Criterio.CharacterCasing = CharacterCasing.Upper Cmb_criterio.SelectedIndex = 0 Spr_resultado.MaxRows = 0 cmd = New SqlClient.SqlCommand("SICAG_BUSQUEDA_GEN", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@TABLA", TablaBuscada) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try Cmb_por.Items.Clear() Cmb_por2.Items.Clear() While dr.Read Cmb_por.Items.Add(dr("GEN_DESCRIPCION")) Cmb_por2.Items.Add(dr("GEN_COLUMNA")) Spr_resultado.MaxCols = Cmb_por.Items.Count
241
Spr_resultado.SetText(Cmb_por.Items.Count, 0, dr("gen_descripcion")) Spr_Resultado.set_ColWidth(Cmb_por.Items.Count, dr("gen_longitud")) acumula = acumula + dr("gen_longitud") End While If Cmb_por.Items.Count > 0 Then Cmb_por.SelectedIndex = 0 Cmb_por2.SelectedIndex = 0 End If Spr_Resultado.MaxRows = 1 dr.Close() End Sub Private Sub Spr_resultado_KeyDownEvent(ByVal sender As System.Object, ByVal e As AxFPSpread._DSpreadEvents_KeyDownEvent) If e.keyCode = 27 Then Close() End If End Sub Private Sub Txt_Criterio_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Txt_Criterio.KeyDown If e.KeyCode = 27 Then Close() End If End Sub Private Sub Txt_Criterio_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Txt_Criterio.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then Call llenar_resultado() If Spr_Resultado.MaxRows > 0 Then Spr_Resultado.Focus() End If End If End Sub Private Sub llenar_resultado() Dim cadena As String Dim indice As Integer Dim fila As Integer Dim criter As Double ' cadena = "" cadena = "Select" '--escogemos todos las columnas a buscar del combo oculto cmb_por2 For indice = 1 To Cmb_por2.Items.Count
242
Cmb_por2.SelectedIndex = indice - 1 cadena = cadena & Space(1) & Me.Cmb_por2.Text If Cmb_por2.SelectedIndex < Cmb_por2.Items.Count - 1 Then cadena = cadena & "," End If Next '---anexamos la tabla que se desea buscar cadena = cadena & Space(1) & "from" & Space(1) & TablaBuscada & Space(1) & "where" & Space(1) '---buscamos el tipo de dato de la columna a buscar Cmb_por2.SelectedIndex = Cmb_por.SelectedIndex cmd = New SqlClient.SqlCommand("SICAG_BUSQUEDA_ESPE", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@TABLA", TablaBuscada) cmd.Parameters.Add("@CAMPO", Cmb_por2.Text) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read = True Then Select Case dr("GEN_TIPO") '--se selecciona el tipo de dato a buscar '-en el caso de que sea un entero o numerico Case "I" If IsNumeric(Txt_Criterio) Then criter = Txt_Criterio.Text Else criter = 0 End If '--------------------------------------------------- Select Case Me.Cmb_criterio.Text '-se escoge el criterio Case "Mayor que" cadena = cadena & Cmb_por2.Text & Space(1) & ">" & Space(1) & criter Case "Menor que" cadena = cadena & Cmb_por2.Text & Space(1) & "<" & Space(1) & criter Case "Equivalente" cadena = cadena & Cmb_por2.Text & Space(1) & "=" & Space(1) & criter Case "Diferente" cadena = cadena & Cmb_por2.Text & Space(1) & "<>" & Space(1) & criter
243
End Select '-en el caso de que sea un alfanumerico o una letra Case "A" Select Case Cmb_criterio.Text '-se escoge el criterio Case "Mayor que" cadena = cadena & Cmb_por2.Text & Space(1) & "like" & Space(1) & "'" & Txt_Criterio.Text & "%'" Case "Menor que" cadena = cadena & Cmb_por2.Text & Space(1) & "like" & Space(1) & "'%" & Txt_Criterio.Text & "'" Case "Equivalente" cadena = cadena & Cmb_por2.Text & Space(1) & "like" & Space(1) & "'%" & Txt_Criterio.Text & "%'" Case "Diferente" cadena = cadena & Cmb_por2.Text & Space(1) & "not like" & Space(1) & "'%" & Txt_Criterio.Text & "%'" End Select Case "D" Select Case Cmb_criterio.Text '-se escoge el criterio para las fechas Case "Mayor que" cadena = cadena & Cmb_por2.Text & Space(1) & ">" & Space(1) & "'" + Txt_Criterio.Text + "'" Case "Menor que" cadena = cadena & Cmb_por2.Text & Space(1) & "<" & Space(1) & "'" + Txt_Criterio.Text + "'" Case "Equivalente" cadena = cadena & Cmb_por2.Text & Space(1) & "=" & Space(1) & "'" + Txt_Criterio.Text + "'" Case "Diferente" cadena = cadena & Cmb_por2.Text & Space(1) & "<>" & Space(1) & "'" + Txt_Criterio.Text + "'" End Select End Select End If dr.Close() If Txt_Criterio.Text <> "" Then cmd.CommandType = CommandType.Text cmd = New SqlClient.SqlCommand(cadena, cn) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try
244
'---colocar los resultados en el spreed Me.Spr_Resultado.MaxRows = 0 With Spr_Resultado fila = 1 .MaxRows = 1 Do Until Not dr.Read '------------------------- indice = 1 For indice = 1 To Cmb_por2.Items.Count Cmb_por2.SelectedIndex = indice - 1 cadena = Cmb_por2.Text .SetText(indice, fila, dr(Cmb_por2.Text)) fila = fila + 1 Next .MaxRows = .MaxRows + 1 Loop End With Else Spr_Resultado.MaxRows = 0 MsgBox("La Busqueda no genero Resultados!", MsgBoxStyle.Information, "Mensaje") Txt_Criterio.Focus() End If dr.Close() 'cn.Close() End Sub Private Sub Cmb_por_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Cmb_por.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then Cmb_criterio.Focus() End If End Sub Private Sub Cmb_por_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Cmb_por.KeyDown If e.KeyCode = Keys.Escape Then Close() End If End Sub Private Sub Cmb_criterio_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Cmb_criterio.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then Txt_Criterio.Focus() End If
245
End Sub Private Sub Cmb_criterio_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Cmb_criterio.KeyDown If e.KeyCode = Keys.Escape Then Close() End If End Sub Private Sub Spr_Resultado_DblClick(ByVal sender As Object, ByVal e As AxFPSpread._DSpreadEvents_DblClickEvent) Handles Spr_Resultado.DblClick Try With Me.Spr_Resultado .Col = 1 .Row = .ActiveRow S_Codigo = .Text If S_Codigo <> "" Then Close() End If End With Catch ex As Exception MsgBox(ex.Message) End Try End Sub Private Sub Spr_Resultado_KeyPressEvent1(ByVal sender As Object, ByVal e As AxFPSpread._DSpreadEvents_KeyPressEvent) Handles Spr_Resultado.KeyPressEvent Try With Me.Spr_Resultado .Col = 1 .Row = .ActiveRow S_Codigo = .Text If e.keyAscii = 13 Then If S_Codigo <> "" Then Close() End If End If End With Catch ex As Exception MsgBox(ex.Message) End Try End Sub
246
Private Sub Cmb_por2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmb_por2.SelectedIndexChanged End Sub Private Sub Txt_Criterio_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Txt_Criterio.TextChanged End Sub End Class
* Clase Frm_Clave.vb
Imports System.Data.SqlClient Public Class Frm_clave Inherits System.Windows.Forms.Form Private Sub Txt_usuario_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Txt_usuario.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then Txt_password.Focus() End If End Sub Private Sub Txt_password_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Txt_password.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then Cmb_aceptar.Focus() End If End Sub Private Sub Cmb_salir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmb_salir.Click Frm_clave.ActiveForm.Close() End Sub
247
Private Sub Frm_clave_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load cn.ConnectionString = "server=(local); user id=sa; pwd=sasa; database=GYM" Me.Txt_usuario.CharacterCasing = CharacterCasing.Upper Try cn.Open() llena_SUC() Catch ex As Exception MsgBox(ex.Message) End Try End Sub Private Sub Cmb_aceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cmb_aceptar.Click Dim MDIGYM As New Form1 Dim Codigo As New Verifica_datos Dim dr As SqlClient.SqlDataReader = Codigo.Verificar_Usuario(Me.Txt_usuario.Text, Me.Txt_password.Text) If dr.Read() = True Then usu = Txt_usuario.Text Cod_Usu = dr("CODUSU") SUCURSAL = CStr(Cmb_sucursal.Text) CODSUCU = Val(Trim(Microsoft.VisualBasic.Right(Me.Cmb_sucursal.Text, 4))) 'Me.Cmb_sucursal.SelectedIndex = 1 If EXISTE = False Then Close() End If cn.Close() MDIGYM.Show() Else MsgBox("Usuario o clave incorrecto...!", MsgBoxStyle.Information, "Mensaje") Me.Txt_usuario.Focus() End If dr.Close() End Sub Private Sub llena_SUC() If cn.State = ConnectionState.Closed Then cn.Open()
248
End If 'Me.Cmb_sucursal = "" cmd = New SqlClient.SqlCommand("SEG_CONS_SUCUR", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() ' cmd.Parameters.Add("@OPCION", 2) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try While dr.Read Me.Cmb_sucursal.Items.Add(dr("DESCRIPCION") & Space(100) & dr("CODSUCUR")) End While Cmb_sucursal.SelectedIndex = (0) dr.Close() End Sub End Class
* Clase Frm_Man_ExportarDbf.vb
Imports System.Data.OleDb Public Class Frm_Man_ExportarDbf Inherits System.Windows.Forms.Form Dim au As String
249
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Timer1.Enabled = True ' Construimos la cadena de conexión Ole Db, para crear el archivo DBF, indicando ' únicamente la ruta de la carpeta donde se creará. Dim connString As String = "Provider = Microsoft.Jet.OLEDB.4.0;" & "Data Source = C:\tmp;" & "Extended Properties='dBASE 5.0;'" ' Creamos un nuevo objeto Connection Dim cnn As New OleDbConnection(connString) Try Dim sql As String = _ "SELECT cedula AS CODIGO," & _ "pernombre AS NOMBRE," & _ "perapellido AS APELLIDO," & _ "CODIGOSECUEN AS SECUENCIA," & _ "PERDIRECCION AS DIRECCION," & _ "PERTELEFONO AS TELEFONOS," & _ "PERFAX AS FAX," & _ "PERMAIL AS EMAIL," & _ "CODCIUDAD AS CIUDAD," & _ "CODZONA AS ZONA," & _ "TIPO AS TIPO," & _ "FECHAINGRESO AS FEC_AFIL," & _ "FECHASALIDA AS FEC_VENC," & _ "FECHASALIDA AS FEC_CADU," & _ "FECHAMODIF AS FEC_MODI," & _ "FECHANAC AS FEC_NAC1," & _ "PERESTDCIVIL AS EST_CIV," & _ "PEREMPRESA AS EMPRESA," & _ "PERRUC AS RUC," & _ "PERESTADO AS ESTADO " & _ "INTO [fcclient#dbf] " & _ "FROM [Persona] " & _ "IN ''[ODBC;DRIVER={SQL Server};" & _ "Server=(local);" & _ "Database=GYM;" & _ "UID=sa;" & _ "PWD=sasa]"
250
Dim cmd As New OleDbCommand(sql, cnn) cnn.Open() Dim n As Integer = cmd.ExecuteNonQuery() Timer1.Enabled = False MessageBox.Show("Se creado satisfactoriamente el archivo. " & _ "Número de registros afectados: " & n.ToString, _ "Crear archivo dBASE") Catch ex As OleDbException MessageBox.Show(ex.Errors(0).Message) Catch ex As Exception MessageBox.Show(ex.Message) Finally cnn.Close() cnn = Nothing End Try End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If BARRA.Value < 5 Then BARRA.Value = BARRA.Value + 100 Else If BARRA.Value = 5 Then Timer1.Enabled = False End If End If End Sub Private Sub TlbBotones_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles TlbBotones.ButtonClick Select Case e.Button.Tag Case "Ingresar" 'Call IngresarDatos() Case "Grabar" 'Call GrabarDatos() Case "Modificar" 'Call ModificarDatos() Case "Eliminar"
251
'Call EliminarDatos() Case "Buscar" 'Call BuscarDatos() Case "Deshacer" 'Call DeshacerDatos() Case "Imprimir" 'Call ImprimirDatos() Case "Salir" Call SalirDatos() End Select End Sub Private Sub SalirDatos() Me.Close() End Sub End Class
* Clase Frm_Man_Horarios.vb
Imports System Imports System.Data Imports System.Data.SqlClient Imports CrystalDecisions.Shared Imports System.Drawing.Image Imports System.IO Public Class Frm_Man_Horarios Inherits System.Windows.Forms.Form Dim accion_modifica As Boolean Dim fila_actual As Integer Dim FILA, I, J As Integer Dim ingresa As Boolean Private Sub Frm_Man_Horarios_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load deshabilita() Txt_Tipo.Focus() Txt_Nombre.Enabled = False End Sub Private Sub consulta_gen() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_HORARIOS", cn)
252
cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", Trim(Me.Txt_Tipo.Text)) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try Spr_Horarios.MaxRows = 0 With Spr_Horarios Do While dr.Read .MaxRows = .MaxRows + 1 .SetText(1, .MaxRows, dr("CODIGO")) .SetText(2, .MaxRows, dr("DESCRIPCION")) .SetText(3, .MaxRows, dr("HORAINICIAL")) .SetText(4, .MaxRows, dr("HORAFINAL")) .Col = 2 .Row = .MaxRows Me.Txt_Tipo.Text = dr("TIPO") Me.Txt_Nombre.Text = dr("NOMBRE") Loop '.Enabled = True End With dr.Close() End Sub Private Sub deshabilita() Me.TlbBotones.Buttons(0).Enabled = True : Me.TlbBotones.Buttons(2).Enabled = False Me.TlbBotones.Buttons(6).Enabled = True : Me.TlbBotones.Buttons(12).Enabled = True Me.TlbBotones.Buttons(10).Enabled = False : Me.TlbBotones.Buttons(4).Enabled = True Me.TlbBotones.Buttons(8).Enabled = True : Me.TlbBotones.Buttons(14).Enabled = True Me.Txt_Nombre.Enabled = False Me.Spr_Horarios.Enabled = False Me.Spr_Horarios.Enabled = False End Sub Private Sub Consulta_Horario() If Me.Txt_Tipo.Text <> "" Then If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_HORARIOS", cn)
253
cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", Trim(Me.Txt_Tipo.Text)) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then Txt_Nombre.Text = dr("NOMBRE") I = 1 While dr.Read With Spr_Horarios .Row = I : .Col = 1 : .Text = dr("CODIGO") .Col = 2 : .Text = dr("DESCRIPCION") .Col = 4 : .Text = dr("HORAINICIAL") .Col = 5 : .Text = dr("HORAFINAL") End With I = I + 1 End While Else MsgBox("Horario no Existe..!", MsgBoxStyle.Information, "Mensaje") Me.Txt_Tipo.Focus() End If Else MsgBox("Ingrese tipo de horarios..!", MsgBoxStyle.Information, "Mensaje") End If dr.Close() End Sub Private Sub IngresarDatos() limpia_textos() habilita() Txt_Tipo.Focus() accion_modifica = False ingresa = True End Sub Private Sub limpia_textos() Me.Txt_Tipo.Text = "" Me.Txt_Nombre.Text = "" Me.Spr_Horarios.MaxRows = 1 Me.Spr_Horarios.MaxRows = 0 : Me.Spr_Horarios.MaxRows = 1 Me.Spr_Horarios.Row = Me.Spr_Horarios.MaxRows
254
Me.Spr_Horarios.Col = 1 : Me.Spr_Horarios.Text = 1 End Sub Private Sub habilita() Me.TlbBotones.Buttons(0).Enabled = False : Me.TlbBotones.Buttons(2).Enabled = True Me.TlbBotones.Buttons(6).Enabled = False : Me.TlbBotones.Buttons(12).Enabled = False Me.TlbBotones.Buttons(10).Enabled = True : Me.TlbBotones.Buttons(4).Enabled = False Me.TlbBotones.Buttons(8).Enabled = False : Me.TlbBotones.Buttons(14).Enabled = True Me.Txt_Tipo.Enabled = True Me.Txt_Nombre.Enabled = True Me.Spr_Horarios.Enabled = True End Sub Private Sub GrabarDatos() Dim codiopc As Integer Dim descrip As String Dim i As Integer Dim j As Integer Dim vacio As Boolean vacio = False If ((Me.Txt_Tipo.Text = "PTR" Or Me.Txt_Tipo.Text = "MAS" Or Me.Txt_Tipo.Text = "BRO" Or Me.Txt_Tipo.Text = "PIL") And Trim(Me.Txt_Nombre.Text) <> "" And Me.Spr_Horarios.MaxRows >= 1) Then If accion_modifica = True Then Call Borra_Spread() With Spr_Horarios For fila_actual = 1 To .MaxRows .Col = 1 .Row = fila_actual If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "SEG_ING_HORARIOS" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", Me.Txt_Tipo.Text) cmd.Parameters.Add("@NOMBRE", Me.Txt_Nombre.Text) .Col = 1 .Row = fila_actual cmd.Parameters.Add("@CODIGO", CStr(.Text))
255
.Col = 2 .Row = fila_actual cmd.Parameters.Add("@DESCRIPCION", .Text) .Col = 3 .Row = fila_actual cmd.Parameters.Add("@HORAINICIAL", .Text) .Col = 4 .Row = fila_actual cmd.Parameters.Add("@HORAFINAL", .Text) Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try Next End With MsgBox("Registro Modificado") dr.Close() deshabilita() accion_modifica = False Txt_Tipo.Enabled = True Else If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_HORARIOS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", Txt_Tipo.Text) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try If Not dr.Read = True Then If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "SEG_ING_HORARIOS" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() With Spr_Horarios For fila_actual = 1 To .MaxRows .Col = 1
256
.Row = fila_actual cmd.Parameters.Add("@TIPO", Me.Txt_Tipo.Text) cmd.Parameters.Add("@NOMBRE", Me.Txt_Nombre.Text) .Col = 1 .Row = fila_actual cmd.Parameters.Add("@CODIGO", CStr(.Text)) .Col = 2 .Row = fila_actual cmd.Parameters.Add("@DESCRIPCION", .Text) .Col = 3 .Row = fila_actual cmd.Parameters.Add("@HORAINICIAL", .Text) .Col = 4 .Row = fila_actual cmd.Parameters.Add("@HORAFINAL", .Text) Try cmd.ExecuteNonQuery() MsgBox("Registro Ingresado exitosamente", MsgBoxStyle.Information, "Mensaje") dr.Close() deshabilita() Txt_Tipo.Enabled = True Catch ex As Exception MsgBox(ex.Message) End Try Next End With Else MsgBox("Horario ya existe", MsgBoxStyle.Information, "Mensaje") Txt_Tipo.Focus() End If End If End If End Sub Private Sub Borra_Spread() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("SEG_BORRA_SPREAD", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", Me.Txt_Tipo.Text) Try dr = cmd.ExecuteReader()
257
Catch ex As Exception MsgBox(ex.Message) End Try dr.Close() End Sub Private Sub ModificarDatos() Dim cod, n, Max As Integer If Trim(Me.Txt_Tipo.Text) <> "" And Trim(Me.Txt_Nombre.Text) <> "" Then habilita() accion_modifica = True Me.Txt_Tipo.Enabled = False Me.Spr_Horarios.Enabled = True ingresa = False Else MsgBox("No Existen datos a modificar...", vbInformation, "A T E N C I O N") Me.Txt_Tipo.Focus() End If End Sub Private Sub DeshacerDatos() limpia_textos() deshabilita() Me.Txt_Tipo.Enabled = True Me.Txt_Tipo.Focus() End Sub Private Sub SalirDatos() ingresa = False Me.Close() End Sub Private Sub Spr_Horarios_KeyPressEvent(ByVal sender As Object, ByVal e As AxFPSpreadADO._DSpreadEvents_KeyPressEvent) Handles Spr_Horarios.KeyPressEvent Dim I As Integer Dim DESCRIB As String If e.keyAscii = 13 Then With Spr_Horarios If .ActiveCol = 1 Then .Col = 1 .Row = .MaxRows DESCRIB = .Text For I = 1 To .MaxRows - 1 .Col = 1
258
.Row = I If CStr(DESCRIB) = .Text Then MsgBox("Codigo ya existe..!", MsgBoxStyle.Information, "Mensaje") .SetActiveCell(1, .MaxRows) .Focus() End If Next End If If .ActiveCol = 3 Then .Col = 3 .Row = .MaxRows DESCRIB = .Text For I = 1 To .MaxRows - 1 .Col = 3 .Row = I If CStr(DESCRIB) = .Text Then MsgBox("Codigo ya existe..!", MsgBoxStyle.Information, "Mensaje") .SetActiveCell(3, .MaxRows) .Focus() End If Next End If If .ActiveCol = 4 Then .Col = 3 .Row = .MaxRows DESCRIB = .Text For I = 1 To .MaxRows - 1 .Col = 3 .Row = I If CStr(DESCRIB) = .Text Then MsgBox("Codigo ya existe..!", MsgBoxStyle.Information, "Mensaje") .SetActiveCell(3, .MaxRows) .Focus() End If Next .Col = 1 .Row = .ActiveRow
259
If .Row = .MaxRows And Trim(.Text) <> "" Then .MaxRows = .MaxRows + 1 End If End If End With End If End Sub Private Sub Txt_Nombre_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Txt_Nombre.KeyPress End Sub Private Sub Txt_Tipo_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Txt_Tipo.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then If Txt_Tipo.Text <> "" Then If Me.Txt_Tipo.Text = "PTR" Or Me.Txt_Tipo.Text = "MAS" Or Me.Txt_Tipo.Text = "BRO" Or Me.Txt_Tipo.Text = "PIL" Then Call consulta_gen() Txt_Nombre.Enabled = True Txt_Nombre.Focus() Else MsgBox("Tipo de Dato Invalido(PTR/PIL/MAS/BRO)...", vbInformation, "A T E N C I O N") Me.Txt_Tipo.Focus() End If Else MsgBox("Debe ingresar un tipo..", MsgBoxStyle.Information, "SICAG") End If End If End Sub Private Sub TlbBotones_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles TlbBotones.ButtonClick Select Case e.Button.Tag Case "Ingresar" Call IngresarDatos() Case "Grabar" Call GrabarDatos() Case "Modificar" Call ModificarDatos() Case "Eliminar" 'Call EliminarDatos() Case "Buscar"
260
Call BuscarDatos() Case "Deshacer" Call DeshacerDatos() Case "Imprimir" If Trim(Me.Txt_Tipo.Text) <> "" Then Call ImprimirDatos() Else MsgBox("No Existen datos a imprimir...", vbInformation, "A T E N C I O N") Me.Txt_Tipo.Focus() End If Case "Salir" Call SalirDatos() End Select End Sub Private Sub BuscarDatos() Call consulta_gen() End Sub Private Sub ImprimirDatos() Dim frm_busq As New FrmParamImpHorarios frm_busq.CrpReporteHorarios.ReportSource = Nothing Dim paraminicio As New ParameterDiscreteValue paraminicio.Value = Me.Txt_Tipo.Text Dim paramlist As New ParameterFields Dim paramtemp As ParameterField paramtemp = New ParameterField paramtemp.ParameterFieldName = "@tipo" paramtemp.CurrentValues.Add(paraminicio) paramlist.Add(paramtemp) frm_busq.CrpReporteHorarios.ParameterFieldInfo = paramlist frm_busq.CrpReporteHorarios.ReportSource = New Rpt_ImpHorarios frm_busq.ShowDialog() End Sub Private Sub Spr_Horarios_KeyDownEvent(ByVal sender As Object, ByVal e As AxFPSpreadADO._DSpreadEvents_KeyDownEvent) Handles Spr_Horarios.KeyDownEvent
261
Dim I As Integer Dim DESCRIB As String With Spr_Horarios If e.keyCode = Keys.Delete Then If .MaxRows > 1 Then If MessageBox.Show("Esta seguro de Eliminar la Linea?...", "Alerta", MessageBoxButtons.YesNo) = DialogResult.Yes Then .Row = .ActiveRow : .Col = 2 .Action = FPSpread.ActionConstants.ActionDeleteRow.ActionDeleteRow : .MaxRows = .MaxRows - 1 .SetActiveCell(2, .MaxRows) : .Focus() End If End If End If If (e.keyCode = 5 Or e.keyCode = 4 Or e.keyCode = 19 Or e.keyCode = 24 Or e.keyCode = 9) Then If .ActiveCol = 1 Then .Col = 1 .Row = .MaxRows DESCRIB = .Text For I = 1 To .MaxRows - 1 .Col = 1 .Row = I If CStr(DESCRIB) = .Text Then MsgBox("Codigo ya existe..!", MsgBoxStyle.Information, "Mensaje") .SetActiveCell(1, .MaxRows) .Focus() End If Next End If If .ActiveCol = 3 Then .Col = 3 .Row = .MaxRows DESCRIB = .Text For I = 1 To .MaxRows - 1 .Col = 3 .Row = I If CStr(DESCRIB) = .Text Then MsgBox("Codigo ya existe..!", MsgBoxStyle.Information, "Mensaje")
262
.SetActiveCell(3, .MaxRows) .Focus() End If Next End If If .ActiveCol = 4 Then .Col = 3 .Row = .MaxRows DESCRIB = .Text For I = 1 To .MaxRows - 1 .Col = 3 .Row = I If CStr(DESCRIB) = .Text Then MsgBox("Codigo ya existe..!", MsgBoxStyle.Information, "Mensaje") .SetActiveCell(3, .MaxRows) .Focus() End If Next End If End If End With End Sub End Class
* Clase Frm_mant_permisosxusu.vb
Public Class Frm_mant_permisosxusu Inherits System.Windows.Forms.Form Dim FILA As Integer
263
Public MODIFICA As Boolean Private Sub Frm_mant_permisosxusu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load llena_combo_modulo() deshabilita() End Sub Private Sub llena_combo_modulo() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_GEN", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@OPCION", 1) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try While dr.Read Me.Cbo_modulo.Items.Add(dr("DESCRIPCION") & Space(50) & dr("CODMODULO")) End While Me.Cbo_modulo.SelectedIndex = 0 dr.Close() End Sub Private Sub busca_nombre_usu() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If If Not IsNumeric(Txt_codusu.Text) = True Then MsgBox("Introduzca un valor con números") Else If Me.Txt_codusu.Text <> "" Then cmd = New SqlClient.SqlCommand("SEG_BUSCA_ESPECIF", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", Me.Txt_codusu.Text) cmd.Parameters.Add("@OPCION", 14) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then
264
Txt_nombUsu.Text = dr("NOMBRE") dr.Close() llena_opciones_con_permisos() Else Txt_nombUsu.Text = "" MsgBox("Usuario no existe..!", MsgBoxStyle.Information, "Mensaje") Me.Txt_codusu.Focus() End If Else MsgBox("Ingrese numero de cédula del usuario..!", MsgBoxStyle.Information, "Mensaje") End If dr.Close() End If End Sub Private Sub llena_opciones_con_permisos() Dim fila, I As Integer Dim acceso As Integer Dim flag As Boolean If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("SEG_PERMXUSU", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", Me.Txt_codusu.Text) cmd.Parameters.Add("@MODULO", Val(Trim(Microsoft.VisualBasic.Right(Me.Cbo_modulo.Text, 4)))) I = Val(Trim(Microsoft.VisualBasic.Right(Me.Cbo_modulo.Text, 4))) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try Me.Spr_Opciones.MaxRows = 0 With Spr_Opciones Do Until Not dr.Read flag = True .MaxRows = .MaxRows + 1 .SetText(1, .MaxRows, dr("DESCRIPCION")) .SetText(2, .MaxRows, dr("OPCFORMULARIO")) .SetText(3, .MaxRows, dr("OPCOBSERVACION")) .SetText(4, .MaxRows, dr("OPCFECHACREAC"))
265
.Lock = True If Trim(dr("ESTADO")) = "A" Then acceso = 1 Else acceso = 0 End If .SetText(5, .MaxRows, acceso) .SetText(6, .MaxRows, dr("CODOPC")) Loop End With deshabilita() MODIFICA = True Me.TlbBotones.Buttons(0).Enabled = True : Me.TlbBotones.Buttons(2).Enabled = True dr.Close() If flag <> True Then llena_opciones_sin_permisos() End If End Sub Private Sub llena_opciones_sin_permisos() Dim fila, I As Integer Dim acceso As Integer Dim flag As Boolean If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("SEG_PERMISOS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@MODULO", Val(Trim(Microsoft.VisualBasic.Right(Me.Cbo_modulo.Text, 4)))) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try Me.Spr_Opciones.MaxRows = 0 With Spr_Opciones Do Until Not dr.Read flag = False .MaxRows = .MaxRows + 1 .SetText(1, .MaxRows, dr("DESCRIPCION"))
266
.SetText(2, .MaxRows, dr("OPCFORMULARIO")) .SetText(3, .MaxRows, dr("OPCOBSERVACION")) .SetText(4, .MaxRows, dr("OPCFECHACREAC")) .Lock = True If Trim(dr("ESTADO")) = "A" Then acceso = 1 End If .SetText(5, .MaxRows, acceso) .SetText(6, .MaxRows, dr("CODOPCION")) 'MsgBox(dr("CODOPCION")) Loop End With dr.Close()
'graba el permiso en la tabla de permxusu si el spread devuelve algo aqui With Spr_Opciones For fila = 1 To .MaxRows cmd.CommandText = "SEG_ING_PERXUSU" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() 'cmd.Parameters.Add("@CODPERXUSU", fila) cmd.Parameters.Add("@CODCEDULAUSU", Me.Txt_codusu.Text) .Col = 6 .Row = fila cmd.Parameters.Add("@CODOPC", .Text) .Col = 5 If .Value = 1 Then cmd.Parameters.Add("@ESTADO", "A") Else cmd.Parameters.Add("@ESTADO", "I") End If MODIFICA = True Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try Next End With
267
dr.Close() End Sub Private Sub Txt_codusu_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Txt_codusu.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then If Txt_codusu.Text <> "" Then Call busca_nombre_usu() If Trim(Txt_nombUsu.Text) <> "" Then Me.Cbo_modulo.Focus() End If Else MsgBox("Debe ingresar un usuario para asignar o ver las asignaciones de permisos..", MsgBoxStyle.Information, "SICAG") Me.Txt_codusu.Focus() Txt_nombUsu.Text = "" End If End If End Sub Private Sub SalirDatos() Me.Close() End Sub Private Sub ModificarDatos() Dim FILA As Integer If Trim(Me.Txt_codusu.Text) <> "" Then With Spr_Opciones For FILA = 1 To .MaxRows .Col = 5 .Row = FILA .Lock = False Next End With MODIFICA = True habilita() Else MsgBox("No Existen datos a modificar...", vbInformation, "A T E N C I O N") Me.Txt_codusu.Focus() End If End Sub Private Sub habilita() Me.TlbBotones.Buttons(0).Enabled = False : Me.TlbBotones.Buttons(2).Enabled = True
268
Me.TlbBotones.Buttons(6).Enabled = False : Me.TlbBotones.Buttons(12).Enabled = False Me.TlbBotones.Buttons(10).Enabled = True : Me.TlbBotones.Buttons(4).Enabled = False Me.TlbBotones.Buttons(8).Enabled = False : Me.TlbBotones.Buttons(14).Enabled = True End Sub Private Sub GrabarDatos() Dim codiopc As Integer If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If If Not IsNumeric(Txt_codusu.Text) = True Then MsgBox("Introduzca un valor con números") Else If Me.Txt_codusu.Text <> "" And Me.Cbo_modulo.Text <> "" And Me.Txt_nombUsu.Text <> "" Then If MODIFICA = True Then With Spr_Opciones For FILA = 1 To .MaxRows cmd.CommandText = "SEG_UPD_PERXUSU" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@CODCEDULAUSU", CStr(Me.Txt_codusu.Text)) .Col = 6 .Row = FILA 'MsgBox(.Text) cmd.Parameters.Add("@CODOPC", .Text) .Col = 5 If .Value = 1 Then cmd.Parameters.Add("@ESTADO", "A") Else cmd.Parameters.Add("@ESTADO", "I") End If 'cmd.ExecuteNonQuery() Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message)
269
End Try Next End With MsgBox("Registro Modificado") deshabilita() Me.Txt_codusu.Enabled = True MODIFICA = False Else If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If With Spr_Opciones For FILA = 1 To .MaxRows cmd.CommandText = "SEG_ING_PERXUSU" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@CODCEDULAUSU", CStr(Me.Txt_codusu.Text)) .Col = 6 .Row = FILA cmd.Parameters.Add("@CODOPC", .Text) .Col = 5 If .Value = 1 Then cmd.Parameters.Add("@ESTADO", "A") Else cmd.Parameters.Add("@ESTADO", "I") End If Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try Next End With MsgBox("Registro Ingresado exitosamente", MsgBoxStyle.Information, "Mensaje") Spr_Opciones.MaxRows = 0 'limpia_textos() Me.Txt_codusu.Enabled = True Call deshabilita() Me.Txt_codusu.Focus() End If Else
270
MsgBox("Faltan datos de llenar", MsgBoxStyle.Information, "Mensaje") End If End If End Sub Private Sub elimina_permisosxusu() With Spr_Opciones cmd.CommandText = "SEG_ELI_PERXUSU" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@CODCEDULAUSU", Me.Txt_codusu.Text) End With Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try End Sub Private Sub DeshacerDatos() deshabilita() Me.Txt_codusu.Enabled = True Me.Txt_codusu.Focus() Me.Spr_Opciones.MaxRows = 0 End Sub Private Sub TlbBotones_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles TlbBotones.ButtonClick Select Case e.Button.Tag Case "Ingresar" 'Call IngresarDatos() Case "Grabar" Call GrabarDatos() Case "Modificar" Call ModificarDatos() Case "Eliminar" 'Call EliminarDatos() Case "Buscar" 'Call BuscarDatos() Case "Deshacer" Call DeshacerDatos() Case "Imprimir" 'Call ImprimirDatos() Case "Salir"
271
Call SalirDatos() End Select End Sub Private Sub deshabilita() Me.TlbBotones.Buttons(0).Enabled = True : Me.TlbBotones.Buttons(2).Enabled = False Me.TlbBotones.Buttons(6).Enabled = False : Me.TlbBotones.Buttons(12).Enabled = False Me.TlbBotones.Buttons(10).Enabled = False : Me.TlbBotones.Buttons(4).Enabled = True Me.TlbBotones.Buttons(8).Enabled = False : Me.TlbBotones.Buttons(14).Enabled = True End Sub Private Sub Btn_busca_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_busca.Click If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If Dim frm_busq As New Frm_Buscar Spr_Opciones.MaxRows = 0 S_Codigo = "" TablaBuscada = "VIS_SICAG_BUSQUEDA" Campo1 = "CODCEDULA" Campo2 = "NOMBRE" Campo3 = "Busqueda Por Usuario" frm_busq.ShowDialog() If S_Codigo <> "" Then Txt_codusu.Text = S_Codigo Call busca_nombre_usu() End If End Sub Private Sub Cbo_modulo_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Cbo_modulo.SelectedIndexChanged If Trim(Txt_nombUsu.Text) <> "" Then llena_opciones_con_permisos() End If End Sub End Class
272
* Clase Frm_mant_provincias.vb
Imports System Imports System.Data Imports System.Data.SqlClient Imports CrystalDecisions.Shared Imports System.Drawing.Image Imports System.IO Public Class Frm_mant_provincias Inherits System.Windows.Forms.Form Public tipo As String Dim xcodigo As String Public cadena As Boolean Dim cod_per As Integer Dim accion_modifica As Boolean Dim CODCAJA, DIASMEMBRESIA, FILA, I, J As Integer Dim CodigoSuc As Integer Dim iva, TotalG As Double Private Sub TlbBotones_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles TlbBotones.ButtonClick Select Case e.Button.Tag Case "Ingresar" Call IngresarDatos() Case "Grabar" Call GrabarDatos() Case "Modificar" Call ModificarDatos() Case "Eliminar" 'Call EliminarDatos() Case "Buscar" Call BuscarDatos() Case "Deshacer" Call DeshacerDatos() Case "Imprimir" If Trim(Me.Txt_codigo.Text) <> "" Then
273
Call ImprimirDatos() Else MsgBox("No Existen datos a imprimir...", vbInformation, "A T E N C I O N") Me.Txt_codigo.Focus() End If Case "Salir" Call SalirDatos() End Select End Sub Private Sub BuscarDatos() If Trim(Txt_codigo.Text) <> "" Then SprDetalleCiudad.MaxRows = 0 SprDetalleCiudad.MaxRows = 1 If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_CAB_ZONA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGOZONA", CInt(Txt_codigo.Text)) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then Txt_Nombre.Text = dr("NOMBREZONA") If Trim(dr("ESTADOZONA")) <> "1" Then cbx_estado.SelectedIndex = 1 Else cbx_estado.SelectedIndex = 0 End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_DET_ZONA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGOZONA", CInt(Txt_codigo.Text)) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try
274
I = 1 While dr.Read With SprDetalleCiudad .Row = I : .Col = 1 : .Text = dr("CODIGOCIUDAD") .Col = 2 : .Text = dr("NOMBRECIUDAD") '.Col = 3 : .Text = dr("ESTADOCIUDAD") .MaxRows = .MaxRows + 1 End With I = I + 1 End While Else MsgBox("Provincia no existe..!", MsgBoxStyle.Information, "Mensaje") Me.Txt_codigo.Focus() End If Else MsgBox("Ingrese Provincia a Buscar..!", MsgBoxStyle.Information, "Mensaje") Me.Txt_codigo.Focus() End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub ImprimirDatos() Dim frm_busq As New FrmParamImpZonas frm_busq.CrpImprimirZonas.ReportSource = Nothing Dim paraminicio As New ParameterDiscreteValue paraminicio.Value = Me.Txt_codigo.Text Dim paramlist As New ParameterFields Dim paramtemp As ParameterField paramtemp = New ParameterField paramtemp.ParameterFieldName = "@CODIGOZONA" paramtemp.CurrentValues.Add(paraminicio) paramlist.Add(paramtemp) frm_busq.CrpImprimirZonas.ParameterFieldInfo = paramlist frm_busq.CrpImprimirZonas.ReportSource = New Rpt_Zonas frm_busq.ShowDialog() End Sub
275
Private Sub SalirDatos() Me.Close() End Sub Private Sub Verifica_Textos(ByRef cadena As Boolean) cadena = True If Txt_codigo.Text = "" Then MsgBox("No ha Ingresado el Codigo de la Zona...", vbInformation, "A T E N C I O N") Txt_codigo.Focus() cadena = False Exit Sub End If If Txt_Nombre.Text = "" Then MsgBox("No ha Ingresado el Nombre de la Zona...", vbInformation, "A T E N C I O N") Txt_Nombre.Focus() cadena = False Exit Sub End If End Sub Private Sub IngresarDatos() limpia_textos() ObtieneSecuencia() habilita() Txt_Nombre.Focus() accion_modifica = False SprDetalleCiudad.Col = 3 SprDetalleCiudad.TypeComboBoxCurSel = 0 End Sub Private Sub ObtieneSecuencia() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_SECUENCIA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", CStr("ZO")) cmd.Parameters.Add("@CODIGO2", CInt(CodigoSuc)) cmd.Parameters.Add("@CODIGO3", CInt(CODCAJA)) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try
276
If dr.Read Then Txt_codigo.Text = dr("NUMERO") + 1 Else Txt_codigo.Text = "1" End If dr.Close() End Sub Private Sub DeshacerDatos() limpia_textos() deshabilita() Me.Txt_codigo.Enabled = True Me.Txt_codigo.Focus() End Sub Private Sub ModificarDatos() If Trim(Me.Txt_codigo.Text) <> "" And Trim(Me.Txt_Nombre.Text) <> "" Then habilita() accion_modifica = True Txt_codigo.Enabled = False Me.SprDetalleCiudad.Enabled = True Else MsgBox("No Existen datos a modificar...", vbInformation, "A T E N C I O N") Me.Txt_codigo.Focus() End If End Sub Private Sub GrabarDatos() Dim CodigoCabecera As Integer Dim CodEstado As Integer Dim Cantidad As Integer Dim Descuento As Double Dim Neto, Bruto, xvalor_desc As Double Dim MEMBRESIA As Boolean Dim TotalPagos As Double Dim FormaPago As String TotalPagos = 0 Verifica_Textos(cadena) If cadena = True And Me.SprDetalleCiudad.MaxRows >= 1 Then If accion_modifica = True Then If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "FAC_MOD_ZONA_CABECERA" cmd.CommandType = CommandType.StoredProcedure
277
cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGOZONA", CInt(Me.Txt_codigo.Text)) cmd.Parameters.Add("@NOMBREZONA", CStr(Me.Txt_Nombre.Text)) If Me.cbx_estado.Text = "ACTIVO" Then cmd.Parameters.Add("@ESTADOZONA", "1") Else cmd.Parameters.Add("@ESTADOZONA", "0") End If Try cmd.ExecuteNonQuery() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_CAB_ZONAS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGOZONA", CInt(Txt_codigo.Text)) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then CodigoCabecera = dr("CODIGOZONA") CodEstado = dr("ESTADOZONA") End If ' BORRA DETALLES DE PROVINCIAS If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_ELI_DETALLE_ZONA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGOZONA", CodigoCabecera) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try
278
If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If Catch ex As Exception MsgBox(ex.Message) End Try '********************INGRESA DETALLE With SprDetalleCiudad For FILA = 1 To .MaxRows - 1 cmd.CommandText = "FAC_ING_DETALLE_ZONA" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGOZONA", CodigoCabecera) .Col = 1 : .Row = FILA cmd.Parameters.Add("@CODIGOCIUDAD", CStr(.Text)) .Col = 2 cmd.Parameters.Add("@NOMBRECIUDAD", CStr(.Text)) .Col = 3 cmd.Parameters.Add("@ESTADOCIUDAD", CStr("1")) Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try Next End With Try MsgBox("PROVINCIAS GENERADAS EXITOSAMENTE") Catch ex As Exception MsgBox(ex.Message) End Try Else If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "FAC_ING_ZONA_CABECERA" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGOZONA", CInt(Me.Txt_codigo.Text)) cmd.Parameters.Add("@NOMBREZONA", CStr(Me.Txt_Nombre.Text)) If Me.cbx_estado.Text = "ACTIVO" Then
279
cmd.Parameters.Add("@ESTADOZONA", "1") Else cmd.Parameters.Add("@ESTADOZONA", "0") End If Try cmd.ExecuteNonQuery() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_CAB_ZONAS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGOZONA", CInt(Txt_codigo.Text)) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then CodigoCabecera = dr("CODIGOZONA") CodEstado = dr("ESTADOZONA") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If Catch ex As Exception MsgBox(ex.Message) End Try '********************INGRESA DETALLE With SprDetalleCiudad For FILA = 1 To .MaxRows - 1 cmd.CommandText = "FAC_ING_DETALLE_ZONA" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGOZONA", CodigoCabecera) .Col = 1 : .Row = FILA cmd.Parameters.Add("@CODIGOCIUDAD", CStr(.Text)) .Col = 2 cmd.Parameters.Add("@NOMBRECIUDAD", CStr(.Text)) .Col = 3 cmd.Parameters.Add("@ESTADOCIUDAD", CStr("1")) Try cmd.ExecuteNonQuery()
280
Catch ex As Exception MsgBox(ex.Message) End Try Next End With Call GrabaSecuencia() Try cmd.ExecuteNonQuery() MsgBox("PROVINCIAS GENERADAS EXITOSAMENTE") Catch ex As Exception MsgBox(ex.Message) End Try End If dr.Close() deshabilita() Else If cadena = False Then Else MsgBox("Faltan datos de llenar...", vbInformation, "A T E N C I O N") End If End If End Sub Private Sub GrabaSecuencia() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_SECUENCIA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", CStr("ZO")) cmd.Parameters.Add("@CODIGO2", CInt(CodigoSuc)) cmd.Parameters.Add("@CODIGO3", CInt(CODCAJA)) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "FAC_MOD_SECUENCIA" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear()
281
cmd.Parameters.Add("@TIPO", CStr("ZO")) cmd.Parameters.Add("@SUCURSAL", CInt(CodigoSuc)) cmd.Parameters.Add("@CAJA", CInt(CODCAJA)) cmd.Parameters.Add("@NUMERO", CInt(Val(Txt_codigo.Text))) Try cmd.ExecuteNonQuery() dr.Close() Catch ex As Exception MsgBox(ex.Message) End Try Else If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "FAC_ING_SECUENCIA" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", CStr("ZO")) cmd.Parameters.Add("@SUCURSAL", CInt(CodigoSuc)) cmd.Parameters.Add("@CAJA", CInt(CODCAJA)) cmd.Parameters.Add("@NUMERO", 1) Try cmd.ExecuteNonQuery() dr.Close() Catch ex As Exception MsgBox(ex.Message) End Try End If End Sub Private Sub deshabilita() Me.TlbBotones.Buttons(0).Enabled = True : Me.TlbBotones.Buttons(2).Enabled = False Me.TlbBotones.Buttons(6).Enabled = True : Me.TlbBotones.Buttons(12).Enabled = True Me.TlbBotones.Buttons(10).Enabled = False : Me.TlbBotones.Buttons(4).Enabled = True Me.TlbBotones.Buttons(8).Enabled = True : Me.TlbBotones.Buttons(14).Enabled = True Me.Txt_Nombre.Enabled = False Me.SprDetalleCiudad.Enabled = False cbx_estado.Enabled = False End Sub Private Sub habilita()
282
Me.TlbBotones.Buttons(0).Enabled = False : Me.TlbBotones.Buttons(2).Enabled = True Me.TlbBotones.Buttons(6).Enabled = False : Me.TlbBotones.Buttons(12).Enabled = False Me.TlbBotones.Buttons(10).Enabled = True : Me.TlbBotones.Buttons(4).Enabled = False Me.TlbBotones.Buttons(8).Enabled = False : Me.TlbBotones.Buttons(14).Enabled = True Me.Txt_Nombre.Enabled = True Me.cbx_estado.Enabled = True Me.Txt_codigo.Enabled = False Me.SprDetalleCiudad.Enabled = True End Sub Private Sub limpia_textos() Txt_Nombre.Text = "" Me.SprDetalleCiudad.MaxRows = 1 Me.SprDetalleCiudad.MaxRows = 0 : Me.SprDetalleCiudad.MaxRows = 1 Me.SprDetalleCiudad.Row = Me.SprDetalleCiudad.MaxRows Me.SprDetalleCiudad.Col = 1 : Me.SprDetalleCiudad.Text = 1 Me.cbx_estado.SelectedIndex = 0 End Sub Private Sub Frm_mant_provincias_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Me.SprDetalleCiudad.MaxRows = 0 deshabilita() Txt_codigo.Focus() LlenaParametros() cbx_estado.SelectedIndex = 0 End Sub Private Sub LlenaParametros() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_GEN", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@OPCION", 11) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try
283
If dr.Read Then CODCAJA = dr("CODCAJA") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("SEG_CONS_PARAMETRO", cn) cmd.CommandType = CommandType.StoredProcedure Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If CodigoSuc = Val(Trim(Microsoft.VisualBasic.Right(SUCURSAL, 3))) End Sub Private Sub Txt_codigo_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Txt_codigo.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then Call CargarProvincias() End If End Sub Private Sub CargarProvincias() If Trim(Txt_codigo.Text) <> "" Then SprDetalleCiudad.MaxRows = 0 SprDetalleCiudad.MaxRows = 1 If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_CAB_ZONAS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGOZONA", CInt(Txt_codigo.Text)) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then Txt_Nombre.Text = dr("NOMBREZONA") If Trim(dr("ESTADOZONA")) <> "1" Then Me.cbx_estado.SelectedIndex = 1
284
Else Me.cbx_estado.SelectedIndex = 0 End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_DET_ZONA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGOZONA", CInt(Txt_codigo.Text)) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try I = 1 While dr.Read With SprDetalleCiudad .Row = I : .Col = 1 : .Text = dr("CODIGOCIUDAD") .Col = 2 : .Text = dr("NOMBRECIUDAD") '.Col = 3 : .Text = dr("ESTADOCIUDAD") .MaxRows = .MaxRows + 1 End With I = I + 1 End While Else MsgBox("Provincias no existen..!", MsgBoxStyle.Information, "Mensaje") Me.Txt_codigo.Focus() End If Else MsgBox("Ingrese Provincia a Buscar..!", MsgBoxStyle.Information, "Mensaje") Me.Txt_codigo.Focus() End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub SprDetalleCiudad_KeyPressEvent(ByVal sender As Object, ByVal e As AxFPSpread._DSpreadEvents_KeyPressEvent) Handles SprDetalleCiudad.KeyPressEvent Dim CONTADOR As Integer
285
With SprDetalleCiudad If .ActiveCol = 2 Then If e.keyAscii = 13 Then .Col = 1 If Trim(.Text) = "" Then CONTADOR = 0 Else CONTADOR = .Text End If .Col = 2 .Row = .ActiveRow .Col = 2 .Row = .MaxRows If Len(.Text) > 0 Then .MaxRows = .MaxRows + 1 Else .SetActiveCell(2, .ActiveRow) End If .Row = .MaxRows .Col = 1 : .Text = CONTADOR + 1 .SetActiveCell(1, .MaxRows) .Focus() End If End If End With End Sub Private Sub SprDetalleCiudad_KeyDownEvent(ByVal sender As Object, ByVal e As AxFPSpread._DSpreadEvents_KeyDownEvent) Handles SprDetalleCiudad.KeyDownEvent With SprDetalleCiudad If e.keyCode = Keys.Delete Then If .MaxRows > 1 Then If MessageBox.Show("Esta seguro de Eliminar la Linea?...", "Alerta", MessageBoxButtons.YesNo) = DialogResult.Yes Then .Row = .ActiveRow : .Col = 2 .Action = FPSpread.ActionConstants.ActionDeleteRow.ActionDeleteRow : .MaxRows = .MaxRows - 1 .SetActiveCell(2, .MaxRows) : .Focus() End If End If End If End With
286
End Sub End Class
* Clase Frm_mant_usuario.vb
Imports System.Data.SqlClient Imports System.Windows.Forms.ToolTip Imports System.Data Imports CrystalDecisions.Shared Public Class Frm_mant_usuario Inherits System.Windows.Forms.Form Private rs As ADODB.Recordset Dim MODIFICA As Boolean Dim S_codigoCli As String Dim VarFecha As Date Public cedulavalida As Boolean Private Sub Frm_mant_usuario_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load deshabilita() If Not (rs.BOF) Or Not (rs.EOF) Then rs.MoveLast() Call DisplayCurrentRecord() End If cbx_estado.SelectedIndex = 0 End Sub Private Sub Txt_codusu_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Txt_codusu.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then If Txt_codusu.Text <> "" Then Call busca_nombre_usu() Else
287
MsgBox("Debe ingresar un Cliente ..", MsgBoxStyle.Information, "SICAG") Me.Txt_codusu.Focus() End If End If End Sub Private Sub busca_nombre_usu() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If If Not IsNumeric(Txt_codusu.Text) = True Then MsgBox("Introduzca un valor con números") Else If Me.Txt_codusu.Text <> "" Then cmd = New SqlClient.SqlCommand("SEG_BUSCA_ESPECIF", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", CStr(Me.Txt_codusu.Text)) cmd.Parameters.Add("@OPCION", 3) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then txt_nombre.Text = dr("NOMBRE") txt_apellido.Text = dr("APELLIDOS") txt_usuario.Text = dr("USUUSER") txt_contraseña.Text = dr("USUPASSWORD") dtp_fecharegistro.Value = dr("FECHA") If Trim(dr("ESTADO")) <> "1" Then cbx_estado.SelectedIndex = 1 Else cbx_estado.SelectedIndex = 0 End If deshabilita() Else MsgBox("Usuario no existe..!", MsgBoxStyle.Information, "Mensaje") Txt_codusu.Focus() End If dr.Close() Else
288
MsgBox("Ingrese numero de cédula del Cliente..!", MsgBoxStyle.Information, "Mensaje") End If End If End Sub Private Sub deshabilita() txt_contraseña.Enabled = False txt_nombre.Enabled = False txt_usuario.Enabled = False txt_contraseña.Enabled = False dtp_fecharegistro.Enabled = False cbx_estado.Enabled = False txt_apellido.Enabled = False Me.TlbBotones.Buttons(0).Enabled = True : Me.TlbBotones.Buttons(2).Enabled = False Me.TlbBotones.Buttons(6).Enabled = False : Me.TlbBotones.Buttons(12).Enabled = False Me.TlbBotones.Buttons(10).Enabled = False : Me.TlbBotones.Buttons(4).Enabled = True Me.TlbBotones.Buttons(8).Enabled = True : Me.TlbBotones.Buttons(14).Enabled = True End Sub Private Sub IngresarDatos() limpia_textos() 'Call ObtieneSecuencia() habilita() MODIFICA = False Txt_codusu.Focus() Me.TlbCursores.Enabled = False End Sub Private Sub limpia_textos() Me.Txt_codusu.Text = "" dtp_fecharegistro.Value = Today() Me.txt_nombre.Text = "" Me.txt_apellido.Text = "" Me.txt_usuario.Text = "" Me.txt_contraseña.Text = "" Me.cbx_estado.SelectedIndex = 0 End Sub Private Sub habilita() Me.TlbBotones.Buttons(0).Enabled = False : Me.TlbBotones.Buttons(2).Enabled = True
289
Me.TlbBotones.Buttons(6).Enabled = False : Me.TlbBotones.Buttons(12).Enabled = False Me.TlbBotones.Buttons(10).Enabled = True : Me.TlbBotones.Buttons(4).Enabled = False Me.TlbBotones.Buttons(8).Enabled = False : Me.TlbBotones.Buttons(14).Enabled = True Me.txt_contraseña.Enabled = True Me.txt_nombre.Enabled = True Me.txt_usuario.Enabled = True Me.txt_apellido.Enabled = True Me.txt_contraseña.Enabled = True Me.dtp_fecharegistro.Enabled = True Me.cbx_estado.Enabled = True End Sub Private Sub GrabarDatos() Dim SECUENCIA As String Vertifica_Cedula(Me.Txt_codusu.Text) If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If If Not IsNumeric(Txt_codusu.Text) = False Then If Me.Txt_codusu.Text <> "" And Me.txt_nombre.Text <> "" And Me.txt_apellido.Text <> "" And Me.txt_usuario.Text <> "" Then If cedulavalida = True Then If MODIFICA = True Then cmd.CommandText = "SEG_MOD_USUARIO" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@CEDULA", CStr(Me.Txt_codusu.Text)) cmd.Parameters.Add("@PERNOMBRE", CStr(Me.txt_nombre.Text)) cmd.Parameters.Add("@PERAPELLIDO", CStr(Me.txt_apellido.Text)) cmd.Parameters.Add("@USUPASSWORD", CStr(Me.txt_contraseña.Text)) cmd.Parameters.Add("@USUUSER", CStr(Me.txt_usuario.Text)) If Me.cbx_estado.Text = "ACTIVO" Then cmd.Parameters.Add("@CODESTADO", "1") Else cmd.Parameters.Add("@CODESTADO", "0") End If
290
Try cmd.ExecuteNonQuery() MsgBox("Registro Modificado") Me.TlbCursores.Enabled = True Catch ex As Exception MsgBox(ex.Message) End Try deshabilita() Me.Txt_codusu.Enabled = True MODIFICA = False Else '******************** If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_GEN", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@OPCION", 8) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try If Not dr.Read = True Then dr.Close() Else SECUENCIA = dr("SECUENCIA") End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If 'dr.Close() cmd = New SqlClient.SqlCommand("SEG_BUSCA_ESPECIF", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", Txt_codusu.Text) cmd.Parameters.Add("@OPCION", 8) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try If Not dr.Read = True Then
291
'dr.Close() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "SEG_ING_USUARIO" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@CEDULA", Me.Txt_codusu.Text) cmd.Parameters.Add("@PERNOMBRE", Me.txt_nombre.Text) cmd.Parameters.Add("@PERAPELLIDO", Me.txt_apellido.Text) cmd.Parameters.Add("@USUPASSWORD", Me.txt_contraseña.Text) cmd.Parameters.Add("@USUUSER", Me.txt_usuario.Text) cmd.Parameters.Add("@USUFECCREAC", Me.dtp_fecharegistro.Value) SECUENCIA = SECUENCIA + 1 cmd.Parameters.Add("@SEC", CStr(SECUENCIA)) Try cmd.ExecuteNonQuery() MsgBox("Registro Ingresado", MsgBoxStyle.Information, "Mensaje") Me.Txt_codusu.Enabled = True Call deshabilita() Me.TlbCursores.Enabled = True Catch ex As Exception MsgBox(ex.Message) End Try 'ACTUALIZA CAMPO SECUENCIA 'dr.Close() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "SEG_ING_SECUENCIA" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@SEC", SECUENCIA) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message)
292
End Try If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If '*** FIN DE SECUENCIA Else MsgBox("Usuario ya existe", MsgBoxStyle.Information, "Mensaje") End If End If Else Me.Txt_codusu.Focus() End If Else MsgBox("Faltan datos de llenar", MsgBoxStyle.Information, "Mensaje") End If Else MsgBox("La cedula debe tener datos numéricos", MsgBoxStyle.Information, "Mensaje") End If dr.Close() rs.Close() rs.Open("select top 1000 * from usuario", "SERVER=(local);UID=sa;PWD=sasa;DATABASE=GYM;Provider=SQLOLEDB") End Sub Private Sub BuscarDatos() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If limpia_textos() Dim frm_busq As New Frm_Buscar S_Codigo = "" TablaBuscada = "VIS_SICAG_BUSQUEDA1" Campo1 = "CODCEDULA" Campo2 = "NOMBRE" Campo3 = "Busqueda Por Usuario" frm_busq.ShowDialog() If S_Codigo <> "" Then Txt_codusu.Text = S_Codigo Call busca_nombre_usu() End If End Sub
293
Private Sub SalirDatos() If rs.State = 1 Then rs.Close() End If Me.Close() End Sub Private Sub ModificarDatos() If Trim(Me.Txt_codusu.Text) <> "" Then habilita() Me.txt_usuario.Enabled = False Me.dtp_fecharegistro.Enabled = False MODIFICA = True Me.TlbCursores.Enabled = False Else MsgBox("No Existen datos a modificar...", vbInformation, "A T E N C I O N") Me.Txt_codusu.Focus() End If End Sub Private Sub DeshacerDatos() limpia_textos() deshabilita() Me.Txt_codusu.Enabled = True Me.Txt_codusu.Focus() Me.TlbCursores.Enabled = True If rs.BOF And rs.EOF Then Else rs.MoveLast() DisplayCurrentRecord() End If End Sub Private Sub TlbBotones_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles TlbBotones.ButtonClick Select Case e.Button.Tag Case "Ingresar" Call IngresarDatos() Case "Grabar" Call GrabarDatos() Case "Modificar" Call ModificarDatos() Case "Eliminar" 'Call EliminarDatos() Case "Buscar"
294
Call BuscarDatos() Case "Deshacer" Call DeshacerDatos() Case "Imprimir" 'Call ImprimirDatos() Case "Salir" Call SalirDatos() End Select End Sub Private Sub TlbCursores_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles TlbCursores.ButtonClick Select Case e.Button.Tag Case "Primero" If rs.BOF And rs.EOF Then Else rs.MoveFirst() DisplayCurrentRecord() End If Case "Anterior" If rs.BOF And rs.EOF Then Else rs.MovePrevious() DisplayCurrentRecord() End If Case "Siguiente" If rs.BOF And rs.EOF Then Else rs.MoveNext() DisplayCurrentRecord() End If Case "Ultimo" If rs.BOF And rs.EOF Then Else rs.MoveLast() DisplayCurrentRecord() End If End Select End Sub Private Sub DisplayCurrentRecord() Dim i As Integer Dim s As String If rs.BOF Then rs.MoveFirst()
295
End If If rs.EOF Then rs.MoveLast() End If Me.Txt_codusu.Text = rs.Fields("codcedula").Value.ToString Me.txt_contraseña.Text = rs.Fields("USUPASSWORD").Value.ToString Me.txt_usuario.Text = rs.Fields("USUUSER").Value.ToString Me.dtp_fecharegistro.Value = rs.Fields("USUFECCREAC").Value If Trim(Me.Txt_codusu.Text) <> "" Then S_Codigo = Me.Txt_codusu.Text If S_Codigo <> "" Then txt_apellido.Text = S_Codigo Call busca_nombre_usu() End If End If If Trim(rs.Fields("USUESTADO").Value.ToString) = "1" Then cbx_estado.SelectedIndex = 0 Else cbx_estado.SelectedIndex = 1 End If End Sub Private Sub dtp_fecharegistro_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dtp_fecharegistro.ValueChanged Me.dtp_fecharegistro.MaxDate = Today() End Sub Private Sub Vertifica_Cedula(ByVal campocedula As String) cedulavalida = True Dim numero As String Dim suma As Integer Dim residuo As Integer Dim pri As Boolean Dim pub As Boolean Dim nat As Boolean Dim numeroProvincias As Integer Dim modulo As Integer Dim d1, d2, d3, d4, d5, d6, d7, d8, d9, d10 As Integer Dim p1, p2, p3, p4, p5, p6, p7, p8, p9, p10 As Integer Dim digitoverificador As Integer numero = campocedula suma = 0 residuo = 0
296
pri = False pub = False nat = False numeroProvincias = 22 modulo = 11 Dim ok As Integer ok = 1 For I As Integer = 0 To numeroProvincias Next I d1 = numero.Substring(0, 1) d2 = numero.Substring(1, 1) d3 = numero.Substring(2, 1) d4 = numero.Substring(3, 1) d5 = numero.Substring(4, 1) d6 = numero.Substring(5, 1) d7 = numero.Substring(6, 1) d8 = numero.Substring(7, 1) d9 = numero.Substring(8, 1) d10 = numero.Substring(9, 1) If d3 = 7 Or d3 = 8 Then MsgBox("El tercer dígito ingresado es inválido...", vbInformation, "A T E N C I O N") cedulavalida = False End If 'Solo para personas naturales (modulo 10) If d3 < 6 Then nat = True p1 = d1 * 2 : If p1 >= 10 Then p1 -= 9 p2 = d2 * 1 : If p2 >= 10 Then p2 -= 9 p3 = d3 * 2 : If p3 >= 10 Then p3 -= 9 p4 = d4 * 1 : If p4 >= 10 Then p4 -= 9 p5 = d5 * 2 : If p5 >= 10 Then p5 -= 9 p6 = d6 * 1 : If p6 >= 10 Then p6 -= 9 p7 = d7 * 2 : If p7 >= 10 Then p7 -= 9 p8 = d8 * 1 : If p8 >= 10 Then p8 -= 9 p9 = d9 * 2 : If p9 >= 10 Then p9 -= 9 modulo = 10 Else If d3 = 6 Then
297
pub = True p1 = d1 * 3 p2 = d2 * 2 p3 = d3 * 7 p4 = d4 * 6 p5 = d5 * 5 p6 = d6 * 4 p7 = d7 * 3 p8 = d8 * 2 p9 = 0 Else If d3 = 9 Then pri = True p1 = d1 * 4 p2 = d2 * 3 p3 = d3 * 2 p4 = d4 * 7 p5 = d5 * 6 p6 = d6 * 5 p7 = d7 * 4 p8 = d8 * 3 p9 = d9 * 2 End If End If End If ' Solo para entidades privadas (modulo 11) */ suma = p1 + p2 + p3 + p4 + p5 + p6 + p7 + p8 + p9 residuo = suma Mod modulo 'Si residuo=0, dig.ver.=0, caso contrario 10 - residuo*/ If residuo = 0 Then digitoverificador = 0 Else digitoverificador = modulo - residuo End If 'ahora comparamos el elemento de la posicion 10 con el dig. ver. If pub = True Then If digitoverificador <> d9 Then MsgBox("El ruc de la empresa del sector público es incorrecto...", vbInformation, "A T E N C I O N") cedulavalida = False End If
298
'El ruc de las empresas del sector publico terminan con 0001*/ If numero.Length > 10 Then If numero.Length = 13 Then If numero.Substring(9, 4) <> "0001" Then MsgBox("El ruc de la empresa del sector público debe terminar con 0001...", vbInformation, "A T E N C I O N") cedulavalida = False End If Else MsgBox("El numero debe tener 10 o 13 numeros ...", vbInformation, "A T E N C I O N") cedulavalida = False End If End If Else If pri = True Then If digitoverificador <> d10 Then MsgBox("El ruc de la empresa del sector privado es incorrecto...", vbInformation, "A T E N C I O N") cedulavalida = False End If If numero.Length > 10 Then If numero.Length = 13 Then If numero.Substring(10, 3) <> "001" Then MsgBox("El ruc de la empresa del sector privado debe terminar con 001'...", vbInformation, "A T E N C I O N") cedulavalida = False End If Else MsgBox("El numero debe tener 10 o 13 numeros ...", vbInformation, "A T E N C I O N") cedulavalida = False End If End If Else If nat = True Then If digitoverificador <> d10 Then MsgBox("El número de cédula de la persona natural es incorrecto...", vbInformation, "A T E N C I O N") cedulavalida = False End If If numero.Length > 10 Then If numero.Length = 13 Then If numero.Substring(10, 3) <> "001" Then
299
MsgBox("El ruc de la persona natural debe terminar con 001...", vbInformation, "A T E N C I O N") cedulavalida = False End If Else MsgBox("El numero debe tener 10 o 13 numeros ...", vbInformation, "A T E N C I O N") cedulavalida = False End If End If End If End If End If End Sub Private Sub Txt_codusu_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Txt_codusu.TextChanged End Sub End Class
* Clase Frm_pro_Credito.vb
Imports System.Data Imports System.Data.OleDb Imports System.Data.SqlClient Public Class Frm_pro_Credito Inherits System.Windows.Forms.Form Private rs As ADODB.Recordset Dim COD_PROD As Integer Dim iva, TotalG As Double Public MODIFICA As Boolean
300
Dim CODCAJA, COD_PER, DIASMEMBRESIA, FILA, I As Integer 'VARIABLES PARA BUSQUEDA DE FACTURA CABECERA Dim VarFecha As Date Dim VarHora As DateTime Dim VarNumero, VarNumero1, VarNumeroCajero, VarNumFac As Integer Dim VarPorcedescto1, VarPorcedescto2, VarPorIva As Decimal Dim VarSubtotal, VarDescuento1, VarDescuento2, VarImpuesto, VarTotal As Double Dim VarAutoriza, VarTipoAplic, VarImpreso, VarNombreCajero, VarComentario As String Dim VarTipo, VarSucursal, VarCaja, VarBodega, VarCliente, VarVendedor, VarCajero As String 'VARIABLES PARA BUSQUEDA DE FACTURA DETALLES Dim DetVarFecha As Date Dim DetVarHora As DateTime Dim DetVarNumerocab, DetVarNumerocaja, DetVarCantidad As Integer Dim DetVarTipo, DetVarSucursal, DetVarCaja, DetVarCodigoproducto, DetVarBodega As String Dim DetVarTotal1, DetVarTotal2, DetVarDescuento1, DetVarDescuento2, DetVarValordescuento1, DetVarValordescuento2, DetVarPrecio, DetVarCosto, DetVarIva As Decimal 'VARIABLES PARA BUSQUEDA DE FACTURA PAGOS Dim PagVarHora As DateTime Dim PagVarNumerocab, PagVarNumerocaja As Integer Dim PagVarPorcobrar, PagVarValorrecibido As Double Dim PagVarFecha, PagVarFechacheque, PagVarFechadevolucion As Date Dim PagVarTipo, PagVarSucursal, PagVarCaja, PagVarTipoaplic, PagVarFormapago As String Dim PagVarCodigotarjeta, PagVarNumerotarjeta, PagVarNombrecliente, PagVarTelefonotarjeta, PagVarLote, PagVarNumerodevolucion, PagVarCancelado As String Dim PagVarCodigobanco, PagVarCodigociudad, PagVarNumerocheque, PagVarCtacte, PagVarNombreempleado, PagVarCedulaempleado, PagVarAutorizacioncred, PagVarQuienregala, PagVarBeneficiario, PagVarAutorizacionobs As String '****************FUNCIONES PROPIAS****************' Private Sub LlenaParametros() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If
301
cmd = New SqlClient.SqlCommand("SEG_BUSCA_GEN", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@OPCION", 11) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtCaja.Text = dr("DESCRIPCION") CODCAJA = dr("CODCAJA") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If 'CARGO VALOR DE IVA cmd = New SqlClient.SqlCommand("SEG_CONS_PARAMETRO", cn) cmd.CommandType = CommandType.StoredProcedure Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then iva = dr("PORCENTAJEIVA") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If Me.TxtVendedor.Text = CStr(usu) : Me.TxtSucursal.Text = CStr(SUCURSAL) End Sub Private Sub Habilita() Me.TlbBotones.Buttons(0).Enabled = False : Me.TlbBotones.Buttons(2).Enabled = True Me.TlbBotones.Buttons(6).Enabled = False : Me.TlbBotones.Buttons(12).Enabled = False Me.TlbBotones.Buttons(10).Enabled = True : Me.TlbBotones.Buttons(4).Enabled = False Me.TlbBotones.Buttons(8).Enabled = False : Me.TlbBotones.Buttons(14).Enabled = True Me.TxtNumero.Enabled = False : Me.TxtNumfac.Enabled = True Me.SprDetalleDevolucion.Enabled = True End Sub
302
Private Sub Deshabilita() Me.TlbBotones.Buttons(0).Enabled = True : Me.TlbBotones.Buttons(2).Enabled = False Me.TlbBotones.Buttons(6).Enabled = True : Me.TlbBotones.Buttons(12).Enabled = True Me.TlbBotones.Buttons(10).Enabled = False : Me.TlbBotones.Buttons(4).Enabled = True Me.TlbBotones.Buttons(8).Enabled = True : Me.TlbBotones.Buttons(14).Enabled = True Me.SprDetalleDevolucion.Enabled = False : Me.DtpFechaRegistro.Enabled = False Me.TxtNumero.Enabled = True : Me.TxtNumfac.Enabled = False End Sub Private Sub BuscaNombreCli() If Me.TxtCodCli.Text <> "" Then cmd = New SqlClient.SqlCommand("SEG_BUSCA_ESPECIF", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", Me.TxtCodCli.Text) cmd.Parameters.Add("@OPCION", 5) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtNombreCli.Text = dr("NOMBRE") COD_PER = dr("CODPERS") Else MsgBox("Cliente no existe..!", MsgBoxStyle.Information, "Mensaje") Me.TxtCodCli.Focus() End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If Else MsgBox("Ingrese numero de cédula del cliente..!", MsgBoxStyle.Information, "Mensaje") End If End Sub Private Sub Limpia() DtpFechaRegistro.Value = Today() : TxtCodCli.Text = ""
303
SprDetalleDevolucion.MaxRows = 0 : SprDetalleDevolucion.MaxRows = 1 SprDetalleDevolucion.Row = SprDetalleDevolucion.MaxRows SprDetalleDevolucion.Col = 1 : SprDetalleDevolucion.Text = 0.0 SprDetalleDevolucion.Col = 2 : SprDetalleDevolucion.Text = 1 TxtSubtotal.Text = "" : TxtDescto.Text = "" Txtiva.Text = "" : Txttotal.Text = "" : TxtNumfac.Text = "" End Sub Private Sub CambioMembresia() Dim HOY As DateTime Dim FechaCaducidad As DateTime 'AQUIIIIIIII If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "FAC_BUSCA_CADUCIDAD_CLIENTE" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@COD", CInt(COD_PER)) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then FechaCaducidad = dr("FECHASALIDA") If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "FAC_MOD_MEMB_CLIENTE" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@COD", CInt(COD_PER)) cmd.Parameters.Add("@FECHAMOD", Today) If COD_PROD = 1 Then HOY = FechaCaducidad.AddDays(-DIASMEMBRESIA) : cmd.Parameters.Add("@FECHACAD", HOY) : cmd.Parameters.Add("@CODTIPO", 1) ElseIf COD_PROD = 2 Then HOY = FechaCaducidad.AddDays(-DIASMEMBRESIA) : cmd.Parameters.Add("@FECHACAD", HOY) : cmd.Parameters.Add("@CODTIPO", 2)
304
ElseIf COD_PROD = 3 Then HOY = FechaCaducidad.AddDays(-DIASMEMBRESIA) : cmd.Parameters.Add("@FECHACAD", HOY) : cmd.Parameters.Add("@CODTIPO", 3) ElseIf COD_PROD = 4 Then HOY = FechaCaducidad.AddDays(-DIASMEMBRESIA) : cmd.Parameters.Add("@FECHACAD", HOY) : cmd.Parameters.Add("@CODTIPO", 4) ElseIf COD_PROD = 5 Then HOY = FechaCaducidad.AddDays(-DIASMEMBRESIA) : cmd.Parameters.Add("@FECHACAD", HOY) : cmd.Parameters.Add("@CODTIPO", 5) ElseIf COD_PROD = 6 Then HOY = FechaCaducidad.AddDays(-DIASMEMBRESIA) : cmd.Parameters.Add("@FECHACAD", HOY) : cmd.Parameters.Add("@CODTIPO", 6) ElseIf COD_PROD = 7 Then HOY = FechaCaducidad.AddDays(-DIASMEMBRESIA) : cmd.Parameters.Add("@FECHACAD", HOY) : cmd.Parameters.Add("@CODTIPO", 7) ElseIf COD_PROD = 8 Then HOY = FechaCaducidad.AddDays(-DIASMEMBRESIA) : cmd.Parameters.Add("@FECHACAD", HOY) : cmd.Parameters.Add("@CODTIPO", 8) Else HOY = FechaCaducidad.AddDays(-DIASMEMBRESIA) : cmd.Parameters.Add("@FECHACAD", HOY) : cmd.Parameters.Add("@CODTIPO", 9) End If Try cmd.ExecuteNonQuery() MsgBox("Ha cambiado la membresia del cliente") Catch ex As Exception MsgBox(ex.Message) End Try End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub ObtieneSecuencia() Dim CodigoSuc As Integer CodigoSuc = Val(Trim(Microsoft.VisualBasic.Right(SUCURSAL, 3))) If cn.State = ConnectionState.Closed Then : cn.Open() : End If
305
If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_SECUENCIA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", CStr("DE")) cmd.Parameters.Add("@CODIGO2", CInt(CodigoSuc)) cmd.Parameters.Add("@CODIGO3", CInt(CODCAJA)) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtNumero.Text = dr("NUMERO") + 1 Else TxtNumero.Text = "1" End If dr.Close() End Sub Private Sub GrabaSecuencia() Dim CodigoSuc As Integer CodigoSuc = Val(Trim(Microsoft.VisualBasic.Right(SUCURSAL, 3))) If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_SECUENCIA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", CStr("DE")) cmd.Parameters.Add("@CODIGO2", CInt(CodigoSuc)) cmd.Parameters.Add("@CODIGO3", CInt(CODCAJA)) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "FAC_MOD_SECUENCIA" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", CStr("DE"))
306
cmd.Parameters.Add("@SUCURSAL", CInt(CodigoSuc)) cmd.Parameters.Add("@CAJA", CInt(CODCAJA)) cmd.Parameters.Add("@NUMERO", CInt(Val(TxtNumero.Text))) Try cmd.ExecuteNonQuery() dr.Close() Catch ex As Exception MsgBox(ex.Message) End Try Else If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "FAC_ING_SECUENCIA" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", CStr("DE")) cmd.Parameters.Add("@SUCURSAL", CInt(CodigoSuc)) cmd.Parameters.Add("@CAJA", CInt(CODCAJA)) cmd.Parameters.Add("@NUMERO", 1) Try cmd.ExecuteNonQuery() dr.Close() Catch ex As Exception MsgBox(ex.Message) End Try End If End Sub Public Sub CargarFactura() If Trim(TxtNumero.Text) <> "" Then SprDetalleDevolucion.MaxRows = 0 SprDetalleDevolucion.MaxRows = 1 If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_FACTURA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", CStr("NV")) cmd.Parameters.Add("@CODIGO2", CODSUCU) cmd.Parameters.Add("@CODIGO3", CODCAJA) cmd.Parameters.Add("@CODIGO4", CInt(Trim(TxtNumfac.Text))) Try dr = cmd.ExecuteReader()
307
Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then VarNumero = dr("NUMERO") : VarNumero1 = dr("NUMEROCAJA") : VarTipo = dr("TIPO") : VarSucursal = dr("SUCURSAL") : VarCaja = dr("CAJA") VarFecha = dr("FECHA") : VarBodega = dr("BODEGA") : VarCliente = dr("CLIENTE") : VarVendedor = dr("VENDEDOR") VarCajero = dr("CAJERO") : VarNumeroCajero = dr("NUMEROCAJERO") : VarAutoriza = dr("AUTORIZA") : VarNombreCajero = dr("NOMBRECAJERO") VarComentario = dr("COMENTARIO") : VarPorcedescto1 = dr("PORCEDESCTO1") : VarPorcedescto2 = dr("PORCEDESCTO2") : VarPorIva = dr("PORCEIVA") VarSubtotal = dr("SUBTOTAL") : VarDescuento1 = dr("DESCUENTO1") : VarDescuento2 = dr("DESCUENTO2") : VarImpuesto = dr("IMPUESTO") VarTotal = dr("TOTAL") : VarTipoAplic = dr("TIPOAPLIC") : VarImpreso = dr("IMPRESO") : VarHora = dr("HORA") DtpFechaRegistro.Value = CDate(VarFecha) If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_PARAMETROS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", VarCaja) cmd.Parameters.Add("@OPCION", 1) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtCaja.Text = dr("DESCRIPCION") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_PARAMETROS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", VarVendedor)
308
cmd.Parameters.Add("@OPCION", 2) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtVendedor.Text = dr("USUUSER") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_PARAMETROS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", VarSucursal) cmd.Parameters.Add("@OPCION", 3) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtSucursal.Text = dr("DESCRIPCION") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_ESPECIF", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", VarCliente) cmd.Parameters.Add("@OPCION", 5) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtCodCli.Text = dr("CEDULA") TxtNombreCli.Text = dr("NOMBRE") COD_PER = dr("CODPERS") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If
309
cmd = New SqlClient.SqlCommand("FAC_BUSCA_PARAMETROS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", VarBodega) cmd.Parameters.Add("@OPCION", 3) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtBodega.Text = dr("DESCRIPCION") End If TxtSubtotal.Text = Format(CDbl(VarSubtotal), "######.00") TxtDescto.Text = Format(CDbl(VarDescuento1), "######.00") Txtiva.Text = Format(CDbl(VarImpuesto), "######.00") Txttotal.Text = Format(CDbl(VarTotal), "######.00") If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_DETALLES", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", VarNumero) cmd.Parameters.Add("@OPCION", 1) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try I = 1 While dr.Read DetVarCodigoproducto = dr("CODIGOPRODUCTO") : DetVarFecha = dr("FECHA") : DetVarCantidad = dr("CANTIDAD") DetVarTotal1 = dr("TOTAL1") : DetVarTotal2 = dr("TOTAL2") : DetVarDescuento1 = dr("DESCUENTO1") : DetVarDescuento2 = dr("DESCUENTO2") DetVarValordescuento1 = dr("VALORDESCUENTO1") : DetVarValordescuento2 = dr("VALORDESCUENTO2") : DetVarPrecio = dr("PRECIO") DetVarCosto = dr("COSTO") : DetVarIva = dr("IVA") : DetVarHora = dr("HORA")
310
With SprDetalleDevolucion .Row = I : .Col = 1 : .Text = DetVarDescuento1 .Col = 2 : .Text = DetVarCantidad .Col = 3 : .Text = DetVarCodigoproducto .Col = 5 : .Text = dr("NOMBRE") .Col = 6 : .Text = DetVarPrecio .Col = 7 : .Text = DetVarTotal2 .Col = 9 : .Text = DetVarIva .Col = 10 : .Text = CStr(dr("TIPOMEMBRE")) .Col = 11 : .Text = CInt(dr("DIAS")) .Col = 12 : .Text = DetVarCosto .Col = 13 : .Text = DetVarValordescuento1 .Col = 14 : .Text = DetVarCodigoproducto .MaxRows = .MaxRows + 1 End With I = I + 1 End While Else MsgBox("Factura no existe..!", MsgBoxStyle.Information, "Mensaje") Me.TxtNumero.Focus() End If Else MsgBox("Ingrese Factura a Buscar..!", MsgBoxStyle.Information, "Mensaje") Me.TxtNumero.Focus() End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Public Sub CargarDevolucion() If Trim(TxtNumero.Text) <> "" Then SprDetalleDevolucion.MaxRows = 0 SprDetalleDevolucion.MaxRows = 1 If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_FACTURA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", CStr("DE")) cmd.Parameters.Add("@CODIGO2", CODSUCU) cmd.Parameters.Add("@CODIGO3", CODCAJA) cmd.Parameters.Add("@CODIGO4", CInt(Trim(TxtNumero.Text)))
311
Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then VarNumero = dr("NUMERO") : VarNumFac = dr("NUMAPLIC") : VarTipo = dr("TIPO") : VarSucursal = dr("SUCURSAL") : VarCaja = dr("CAJA") VarFecha = dr("FECHA") : VarBodega = dr("BODEGA") : VarCliente = dr("CLIENTE") : VarVendedor = dr("VENDEDOR") VarCajero = dr("CAJERO") : VarNumeroCajero = dr("NUMEROCAJERO") : VarAutoriza = dr("AUTORIZA") : VarNombreCajero = dr("NOMBRECAJERO") VarComentario = dr("COMENTARIO") : VarPorcedescto1 = dr("PORCEDESCTO1") : VarPorcedescto2 = dr("PORCEDESCTO2") : VarPorIva = dr("PORCEIVA") VarSubtotal = dr("SUBTOTAL") : VarDescuento1 = dr("DESCUENTO1") : VarDescuento2 = dr("DESCUENTO2") : VarImpuesto = dr("IMPUESTO") VarTotal = dr("TOTAL") : VarTipoAplic = dr("TIPOAPLIC") : VarImpreso = dr("IMPRESO") : VarHora = dr("HORA") DtpFechaRegistro.Value = CDate(VarFecha) If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_PARAMETROS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", VarCaja) cmd.Parameters.Add("@OPCION", 1) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtCaja.Text = dr("DESCRIPCION") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_PARAMETROS", cn) cmd.CommandType = CommandType.StoredProcedure
312
cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", VarVendedor) cmd.Parameters.Add("@OPCION", 2) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtVendedor.Text = dr("USUUSER") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_PARAMETROS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", VarSucursal) cmd.Parameters.Add("@OPCION", 3) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtSucursal.Text = dr("DESCRIPCION") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_ESPECIF", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", VarCliente) cmd.Parameters.Add("@OPCION", 5) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtCodCli.Text = dr("CODPERS") TxtNombreCli.Text = dr("NOMBRE") COD_PER = dr("CODPERS") End If
313
If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If TxtSubtotal.Text = Format(CDbl(VarSubtotal), "######.00") TxtDescto.Text = Format(CDbl(VarDescuento1), "######.00") Txtiva.Text = Format(CDbl(VarImpuesto), "######.00") Txttotal.Text = Format(CDbl(VarTotal), "######.00") If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_DETALLES", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", VarNumero) cmd.Parameters.Add("@OPCION", 1) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try I = 1 While dr.Read DetVarCodigoproducto = dr("CODIGOPRODUCTO") : DetVarFecha = dr("FECHA") : DetVarCantidad = dr("CANTIDAD") DetVarTotal1 = dr("TOTAL1") : DetVarTotal2 = dr("TOTAL2") : DetVarDescuento1 = dr("DESCUENTO1") : DetVarDescuento2 = dr("DESCUENTO2") DetVarValordescuento1 = dr("VALORDESCUENTO1") : DetVarValordescuento2 = dr("VALORDESCUENTO2") : DetVarPrecio = dr("PRECIO") DetVarCosto = dr("COSTO") : DetVarIva = dr("IVA") : DetVarHora = dr("HORA") With SprDetalleDevolucion .Row = I : .Col = 1 : .Text = DetVarDescuento1 .Col = 2 : .Text = DetVarCantidad .Col = 3 : .Text = DetVarCodigoproducto .Col = 5 : .Text = dr("NOMBRE") .Col = 6 : .Text = DetVarPrecio .Col = 7 : .Text = DetVarTotal2 .Col = 9 : .Text = DetVarIva .Col = 10 : .Text = CStr(dr("TIPOMEMBRE")) .Col = 11 : .Text = CInt(dr("DIAS")) .Col = 12 : .Text = DetVarCosto .Col = 13 : .Text = DetVarCantidad .Col = 14 : .Text = DetVarCodigoproducto
314
.MaxRows = .MaxRows + 1 End With I = I + 1 End While Else MsgBox("Devolución no existe..!", MsgBoxStyle.Information, "Mensaje") Me.TxtNumero.Focus() End If Else MsgBox("Ingrese Devolución a Buscar..!", MsgBoxStyle.Information, "Mensaje") Me.TxtNumero.Focus() End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub DisplayCurrentRecord() Dim i As Integer Dim s As String Dim CodigoCabecera As Integer If rs.BOF Then rs.MoveFirst() End If If rs.EOF Then rs.MoveLast() End If SprDetalleDevolucion.MaxRows = 0 SprDetalleDevolucion.MaxRows = 1 Me.TxtNumero.Text = rs.Fields("numerocaja").Value.ToString Me.TxtNumfac.Text = rs.Fields("numaplic").Value.ToString Me.TxtCodCli.Text = rs.Fields("cliente").Value.ToString Me.DtpFechaRegistro.Value = rs.Fields("fecha").Value Me.TxtSubtotal.Text = rs.Fields("subtotal").Value.ToString Me.Txtiva.Text = rs.Fields("impuesto").Value.ToString Me.TxtDescto.Text = rs.Fields("descuento1").Value.ToString Me.Txttotal.Text = rs.Fields("total").Value.ToString CodigoCabecera = rs.Fields("numero").Value If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_PARAMETROS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear()
315
cmd.Parameters.Add("@CODIGO", rs.Fields("caja").Value) cmd.Parameters.Add("@OPCION", 1) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtCaja.Text = dr("DESCRIPCION") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_PARAMETROS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", rs.Fields("vendedor").Value) cmd.Parameters.Add("@OPCION", 2) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtVendedor.Text = dr("USUUSER") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_PARAMETROS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", rs.Fields("sucursal").Value) cmd.Parameters.Add("@OPCION", 3) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtSucursal.Text = dr("DESCRIPCION") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_ESPECIF", cn) cmd.CommandType = CommandType.StoredProcedure
316
cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", rs.Fields("cliente").Value) cmd.Parameters.Add("@OPCION", 5) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtNombreCli.Text = dr("NOMBRE") COD_PER = dr("CODPERS") End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_DETALLES", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", CodigoCabecera) cmd.Parameters.Add("@OPCION", 1) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try i = 1 While dr.Read DetVarCodigoproducto = dr("CODIGOPRODUCTO") : DetVarFecha = dr("FECHA") : DetVarCantidad = dr("CANTIDAD") DetVarTotal1 = dr("TOTAL1") : DetVarTotal2 = dr("TOTAL2") : DetVarDescuento1 = dr("DESCUENTO1") : DetVarDescuento2 = dr("DESCUENTO2") DetVarValordescuento1 = dr("VALORDESCUENTO1") : DetVarValordescuento2 = dr("VALORDESCUENTO2") : DetVarPrecio = dr("PRECIO") DetVarCosto = dr("COSTO") : DetVarIva = dr("IVA") : DetVarHora = dr("HORA") With SprDetalleDevolucion .Row = i : .Col = 1 : .Text = DetVarDescuento1 .Col = 2 : .Text = DetVarCantidad .Col = 3 : .Text = DetVarCodigoproducto .Col = 5 : .Text = dr("NOMBRE") .Col = 6 : .Text = DetVarPrecio .Col = 7 : .Text = DetVarTotal2 .Col = 9 : .Text = DetVarIva
317
.Col = 10 : .Text = CStr(dr("TIPOMEMBRE")) .Col = 11 : .Text = CInt(dr("DIAS")) .Col = 12 : .Text = DetVarCosto .MaxRows = .MaxRows + 1 End With i = i + 1 End While If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub IngresarDatos() Call Limpia() Call ObtieneSecuencia() Call Habilita() TxtNumfac.Focus() End Sub Private Sub ModificarDatos() If Trim(TxtNumero.Text) <> "" And Trim(TxtCodCli.Text) <> "" Then Call Habilita() TxtNumfac.Focus() Else MsgBox("Ingrese una Nota de Credito para modificar", MsgBoxStyle.Information, "ATENCION") TxtNumero.Focus() End If End Sub Private Sub EliminaFactura() Dim CodigoCabecera As Integer If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_CAB", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", "DE") cmd.Parameters.Add("@CODIGO2", CODSUCU) cmd.Parameters.Add("@CODIGO3", CODCAJA) cmd.Parameters.Add("@CODIGO4", CInt(TxtNumero.Text)) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message)
318
End Try If dr.Read Then CodigoCabecera = dr("NUMERO") End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_ELI_CABECERA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", "DE") cmd.Parameters.Add("@SUCURSAL", CODSUCU) cmd.Parameters.Add("@CAJA", CODCAJA) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) cmd.Parameters.Add("@OPCION", 1) Try cmd.ExecuteNonQuery() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_ELI_CABECERA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", "DE") cmd.Parameters.Add("@SUCURSAL", CODSUCU) cmd.Parameters.Add("@CAJA", CODCAJA) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) cmd.Parameters.Add("@OPCION", 2) Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_ELI_DETALLES", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@NUMEROCAB", CodigoCabecera) cmd.Parameters.Add("@OPCION", 1) Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try If cn.State = ConnectionState.Closed Then : cn.Open() : End If
319
If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_ELI_DETALLES", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@NUMEROCAB", CodigoCabecera) cmd.Parameters.Add("@OPCION", 2) Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_ELI_EXISTENCIAS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", "DE") cmd.Parameters.Add("@NUMEROCAB", CodigoCabecera) cmd.Parameters.Add("@SUCURSAL", Trim(CODSUCU)) cmd.Parameters.Add("@CAJA", Str(CODCAJA)) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) Try cmd.ExecuteNonQuery() MsgBox("DEVOLUCION ELIMINADA EXITOSAMENTE") Catch ex As Exception MsgBox(ex.Message) End Try Catch ex As Exception MsgBox(ex.Message) End Try End Sub Private Sub EliminarDatos() If Trim(TxtNumero.Text <> "") Then If MessageBox.Show("Va a Eliminar un Registro de la Base. Desea Continuar?...", "ALERTA", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.Yes Then Call EliminaFactura() End If End If End Sub Private Sub CalculaTotales()
320
Dim Descuento, DescuentoT, ValIva, ValIvaT, Subtotal, Total, PrecioU, PrecioT As Double Dim Cantidad As Integer TotalG = 0 With SprDetalleDevolucion For I = 1 To .MaxRows - 1 .Col = 8 : .Row = I If .Value = 0 Then .Row = I : .Col = 2 : Cantidad = Val(.Text) .Col = 6 : PrecioU = CDbl(Val(.Text)) .Col = 7 : PrecioT = CDbl(Val(.Text)) .Col = 1 : Descuento = CDbl(Val(.Text)) Subtotal = Subtotal + (Math.Round(PrecioT, 2)) DescuentoT = DescuentoT + Math.Round(((Math.Round(PrecioT, 2)) * Math.Round((Descuento / 100), 2)), 2) .Col = 9 If CDbl(.Text) <> 0.0 Then ValIva = ValIva + Math.Round((((Math.Round(PrecioT, 2)) - ((Math.Round(PrecioT, 2)) * Math.Round((Descuento / 100), 2))) * iva), 2) Total = Total + Math.Round(((Math.Round(PrecioT, 2)) - ((Math.Round(PrecioT, 2)) * Math.Round((Descuento / 100), 2)) + (((Math.Round(PrecioT, 2)) - ((Math.Round(PrecioT, 2)) * Math.Round((Descuento / 100), 2))) * iva)), 2) Else ValIva = ValIva + 0 Total = Total + Math.Round(((Math.Round(PrecioT, 2)) - ((Math.Round(PrecioT, 2)) * Math.Round((Descuento / 100), 2)) + 0), 2) End If End If Next End With ValIvaT = ValIvaT + (Math.Round(ValIva, 2)) TotalG = TotalG + (Math.Round(Total, 2)) TxtSubtotal.Text = Format(Subtotal, "###,##0.00") TxtDescto.Text = Format(DescuentoT, "###,##0.00") Txtiva.Text = Format(ValIvaT, "###,##0.00") Txttotal.Text = Format(TotalG, "###,##0.00") End Sub Private Sub GrabarDatos()
321
Dim CodigoCabecera As Integer Dim Cantidad As Integer Dim Neto, Bruto, xvalor_desc, xvalor_iva As Double Dim MEMBRESIA As Boolean Dim TotalPagos As Double Dim FormaPago As String TotalPagos = 0 If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If If Me.TxtCodCli.Text <> "" And Me.SprDetalleDevolucion.MaxRows >= 1 Then If MODIFICA = True Then MsgBox("LA DEVOLUCION NO PUEDE SER MODIFICADA") Else If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "FAC_ING_CAB_FACTURA" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", "DE") cmd.Parameters.Add("@SUCURSAL", Trim(CODSUCU)) cmd.Parameters.Add("@CAJA", Str(CODCAJA)) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) cmd.Parameters.Add("@FECHA", DtpFechaRegistro.Value) cmd.Parameters.Add("@BODEGA", Trim(CODSUCU)) cmd.Parameters.Add("@CLIENTE", Trim(TxtCodCli.Text)) cmd.Parameters.Add("@VENDEDOR", Cod_Usu) cmd.Parameters.Add("@CAJERO", Cod_Usu) cmd.Parameters.Add("@NUMEROCAJERO", CInt(2)) cmd.Parameters.Add("@AUTORIZA", "") cmd.Parameters.Add("@NOMBRECAJERO", usu) cmd.Parameters.Add("@COMENTARIO", "") cmd.Parameters.Add("@OBSERVACION", "") cmd.Parameters.Add("@PORCEDESCTO1", CDbl(0.0)) cmd.Parameters.Add("@PORCEDESCTO2", CDbl(0.0)) cmd.Parameters.Add("@PORCEIVA", (iva * 100)) cmd.Parameters.Add("@SUBTOTAL", (CDbl(TxtSubtotal.Text) * -1)) cmd.Parameters.Add("@DESCUENTO1", (CDbl(TxtDescto.Text) * -1)) cmd.Parameters.Add("@DESCUENTO2", (CDbl(0.0) * -1))
322
cmd.Parameters.Add("@IMPUESTO", (CDbl(Txtiva.Text) * -1)) cmd.Parameters.Add("@TOTAL", (CDbl(Txttotal.Text) * -1)) cmd.Parameters.Add("@TIPOAPLIC", "DE") cmd.Parameters.Add("@NUMAPLIC", CInt(TxtNumfac.Text)) cmd.Parameters.Add("@IMPRESO", "N") cmd.Parameters.Add("@HORA", TimeString) cmd.Parameters.Add("@ELIMINADO", False) Try cmd.ExecuteNonQuery() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_CAB", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", "DE") cmd.Parameters.Add("@CODIGO2", CODSUCU) cmd.Parameters.Add("@CODIGO3", CODCAJA) cmd.Parameters.Add("@CODIGO4", CInt(TxtNumero.Text)) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then CodigoCabecera = dr("NUMERO") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If Catch ex As Exception MsgBox(ex.Message) End Try '********************INGRESA DETALLE With SprDetalleDevolucion For FILA = 1 To .MaxRows - 1 cmd.CommandText = "FAC_ING_DETALLE" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@NUMEROCAB", CodigoCabecera) cmd.Parameters.Add("@TIPO", "DE") cmd.Parameters.Add("@SUCURSAL", Trim(CODSUCU)) cmd.Parameters.Add("@CAJA", Str(CODCAJA)) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text))
323
.Col = 3 : .Row = FILA cmd.Parameters.Add("@CODIGOPRODUCTO", CStr(.Text)) cmd.Parameters.Add("@BODEGA", Trim(CODSUCU)) cmd.Parameters.Add("@FECHA", DtpFechaRegistro.Value) .Col = 10 If Val(CInt(.Text)) = 1 Or Val(CInt(.Text)) = 2 Or Val(CInt(.Text)) = 3 Or Val(CInt(.Text)) = 4 Or Val(CInt(.Text)) = 5 Or Val(CInt(.Text)) = 6 Or Val(CInt(.Text)) = 7 Or Val(CInt(.Text)) = 8 Or Val(CInt(.Text)) = 9 Then MEMBRESIA = True : COD_PROD = CInt(.Text) .Col = 11 : DIASMEMBRESIA = CInt(.Text) End If .Col = 2 : Cantidad = CInt(.Text) cmd.Parameters.Add("@CANTIDAD", Cantidad) .Col = 6 : Bruto = Cantidad * CDbl(.Text) cmd.Parameters.Add("@TOTAL1", Bruto) .Col = 13 : xvalor_desc = CDbl(.Text) .Col = 9 : cmd.Parameters.Add("@IVA", CDbl(.Text)) .Col = 7 : Neto = CDbl(.Text) - xvalor_desc cmd.Parameters.Add("@TOTAL2", Neto) .Col = 1 : cmd.Parameters.Add("@DESCUENTO1", CDbl(.Text)) cmd.Parameters.Add("@DESCUENTO2", CDbl(0.0)) cmd.Parameters.Add("@VALORDESCUENTO1", CDbl(xvalor_desc)) cmd.Parameters.Add("@VALORDESCUENTO2", CDbl(0.0)) .Col = 6 : cmd.Parameters.Add("@PRECIO", CDbl(.Text)) .Col = 12 If Trim(.Text) = "" Then cmd.Parameters.Add("@COSTO", CDbl(0.0)) Else cmd.Parameters.Add("@COSTO", CDbl(.Text)) End If cmd.Parameters.Add("@HORA", TimeString) Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try '*********** INGRESA ARCHIVO DE EXISTENCIAS cmd.CommandText = "FAC_ING_EXISTENCIAS" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear()
324
cmd.Parameters.Add("@TIPO", "DE") cmd.Parameters.Add("@NUMEROCAB", CodigoCabecera) cmd.Parameters.Add("@SUCURSAL", Trim(CODSUCU)) cmd.Parameters.Add("@CAJA", Str(CODCAJA)) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) .Col = 3 : .Row = FILA cmd.Parameters.Add("@CODIGOPRODUCTO", CStr(.Text)) cmd.Parameters.Add("@FECHA", DtpFechaRegistro.Value) .Col = 2 : Cantidad = CInt(.Text) cmd.Parameters.Add("@CANTIDAD", Cantidad) Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try '*** TERMINA ARCHIVO DE EXISTENCIAS Next End With '********************INGRESA PAGOS cmd.CommandText = "FAC_ING_PAGOS" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@NUMEROCAB", CodigoCabecera) cmd.Parameters.Add("@TIPO", "DE") cmd.Parameters.Add("@SUCURSAL", Trim(CODSUCU)) cmd.Parameters.Add("@CAJA", Str(CODCAJA)) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) cmd.Parameters.Add("@TIPOAPLIC", "PG") cmd.Parameters.Add("@FECHA", DtpFechaRegistro.Value) FormaPago = "CR" cmd.Parameters.Add("@FORMAPAGO", FormaPago) cmd.Parameters.Add("@PORCOBRAR", (CDbl(Txttotal.Text) * -1)) cmd.Parameters.Add("@VALORRECIBIDO", (CDbl(Txttotal.Text) * -1)) cmd.Parameters.Add("@CODIGOTARJETA", "") cmd.Parameters.Add("@NUMEROTARJETA", "") cmd.Parameters.Add("@NOMBRECLIENTE", "") cmd.Parameters.Add("@TELEFONOTARJETA", "") cmd.Parameters.Add("@LOTE", "") cmd.Parameters.Add("@FECHACHEQUE", "")
325
cmd.Parameters.Add("@CODIGOBANCO", "") cmd.Parameters.Add("@CODIGOCIUDAD", "") cmd.Parameters.Add("@NUMEROCHEQUE", "") cmd.Parameters.Add("@CTACTE", "") cmd.Parameters.Add("@NOMBREEMPLEADO", Trim(TxtCodCli.Text)) cmd.Parameters.Add("@CEDULAEMPLEADO", Trim(TxtCodCli.Text)) cmd.Parameters.Add("@AUTORIZACIONCRED", 1) cmd.Parameters.Add("@QUIENREGALA", "") cmd.Parameters.Add("@BENEFICIARIO", "") cmd.Parameters.Add("@AUTORIZACIONOBS", "") cmd.Parameters.Add("@FECHADEVOLUCION", "") cmd.Parameters.Add("@NUMERODEVOLUCION", "") cmd.Parameters.Add("@CANCELADO", "Si") cmd.Parameters.Add("@HORA", TimeString) cmd.Parameters.Add("@CIERRE", False) Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try ' FIN DE PAGOS Call GrabaSecuencia() Call Deshabilita() Try cmd.ExecuteNonQuery() MsgBox("DEVOLUCION GENERADA EXITOSAMENTE") If MEMBRESIA = True And DIASMEMBRESIA > 0 Then Call CambioMembresia() End If Catch ex As Exception MsgBox(ex.Message) End Try End If Else MsgBox("Faltan datos de llenar", MsgBoxStyle.Information, "Mensaje") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub SalirDatos()
326
If Me.TlbBotones.Buttons(0).Enabled = False Then If MessageBox.Show("Esta en modo de Ingreso. Desea Cancelar la Devolución?...", "ALERTA", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.Yes Then Call Limpia() : Call Deshabilita() : Me.TxtNumero.Focus() : Me.Close() Else If SprDetalleDevolucion.Enabled = True Then SprDetalleDevolucion.Focus() : SprDetalleDevolucion.SetActiveCell(3, SprDetalleDevolucion.MaxRows) Else TxtNumero.Focus() End If End If Else Me.Close() End If End Sub Private Sub DeshacerDatos() Call Limpia() : Call Deshabilita() : Me.TxtNumero.Focus() End Sub '******************FIN DE FUNCIONES PROPIAS*****************' Private Sub TxtNumero_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtNumero.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then Call CargarDevolucion() End If End Sub Private Sub SprDetalleDevolucion_ButtonClicked(ByVal sender As Object, ByVal e As AxFPSpread._DSpreadEvents_ButtonClickedEvent) Handles SprDetalleDevolucion.ButtonClicked Dim Cantidad As Integer Dim DescuentoLin, PrecioU, TotalU As Double With SprDetalleDevolucion If .ActiveCol = 8 Then If .MaxRows > 1 Then .Row = .ActiveRow : .Col = 8 .Action = FPSpread.ActionConstants.ActionDeleteRow.ActionDeleteRow : .MaxRows = .MaxRows - 1
327
.SetActiveCell(8, .MaxRows) : .Focus() : Call CalculaTotales() End If End If End With If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub SprDetalleDevolucion_KeyPressEvent(ByVal sender As Object, ByVal e As AxFPSpread._DSpreadEvents_KeyPressEvent) Handles SprDetalleDevolucion.KeyPressEvent Dim DescuentoLin, PrecioU, TotalU As Double Dim Cantidad As Integer Dim var1 As Integer Dim var2 As Integer Dim cod1 As String Dim cod2 As String With SprDetalleDevolucion If .ActiveCol = 2 Then If e.keyAscii = 13 Then .Col = 2 var1 = Val(Trim(.Text)) .Row = .ActiveRow : .Col = 3 If Trim(.Text) <> "" Then .Col = 13 : var2 = Val(Trim(.Text)) If var2 >= var1 Then .Col = 1 : DescuentoLin = CDbl(Val(.Text)) .Col = 2 : Cantidad = CDbl(Val(.Text)) .Col = 6 : PrecioU = CDbl(Val(.Text)) TotalU = PrecioU * Cantidad .SetText(7, .ActiveRow, Format(CDbl(TotalU), "######.00")) Call CalculaTotales() Else .Col = 2 .Text = var2 MsgBox("Solo puede ingresar un maximo de " & var2 & IIf(var2 = 1, " Cantidad", " Cantidades"), MsgBoxStyle.Information, "ATENCION") .SetActiveCell(2, .ActiveRow) End If End If End If End If
328
End With If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub TxtNumfac_KeyPress1(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtNumfac.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If Call CargarFactura() End If End Sub Private Sub TlbCursores_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Select Case e.Button.Tag Case "Primero" If Not (rs.BOF) Then rs.MoveFirst() Call DisplayCurrentRecord() End If Case "Anterior" If Not (rs.BOF) Then rs.MovePrevious() Call DisplayCurrentRecord() End If Case "Siguiente" If Not (rs.EOF) Then rs.MoveNext() Call DisplayCurrentRecord() End If Case "Ultimo" If Not (rs.EOF) Then rs.MoveLast() Call DisplayCurrentRecord() End If End Select End Sub Private Sub TlbBotones_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles TlbBotones.ButtonClick Select Case e.Button.Tag
329
Case "Ingresar" Call IngresarDatos() Case "Grabar" Call GrabarDatos() Case "Modificar" Call ModificarDatos() Case "Eliminar" Call EliminarDatos() Case "Buscar" 'Call buscardatos() Case "Deshacer" Call DeshacerDatos() Case "Imprimir" 'Call imprimirdatos() Case "Salir" Call SalirDatos() End Select End Sub Private Sub Frm_pro_Credito_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call LlenaParametros() Call Deshabilita() If Not rs.EOF Or Not rs.BOF Then rs.MoveLast() Call DisplayCurrentRecord() End If TxtNumero.Focus() End Sub End Class
* Clase Frm_pro_facturación.vb
Imports System.Data Imports System.Data.OleDb Imports System.Data.SqlClient Imports System.Drawing.Printing Public Class Frm_pro_facturación Inherits System.Windows.Forms.Form Private rs As ADODB.Recordset Dim ContenidoDelTexto As PrintPageEventArgs
330
Dim WithEvents Reporte As New PrintDocument Public cadena As Boolean Dim xcodigo As String Dim TipoProducto As String Dim CantidadExistencia As Integer Dim COD_PROD As Integer Dim iva, TotalG As Double Public MODIFICA As Boolean Dim CODCAJA, COD_PER, DIASMEMBRESIA, FILA, I, J As Integer Dim productoencontrado As Boolean 'VARIABLES PARA BUSQUEDA DE FACTURA CABECERA Dim VarFecha As Date Dim VarHora As DateTime Dim VarNumero, VarNumeroCajero As Integer Dim VarPorcedescto1, VarPorcedescto2, VarPorIva As Decimal Dim VarSubtotal, VarDescuento1, VarDescuento2, VarImpuesto, VarTotal As Double Dim VarAutoriza, VarTipoAplic, VarImpreso, VarNombreCajero, VarComentario As String Dim VarTipo, VarSucursal, VarCaja, VarBodega, VarCliente, VarVendedor, VarCajero As String 'VARIABLES PARA BUSQUEDA DE FACTURA DETALLES Dim DetVarFecha As Date Dim DetVarHora As DateTime Dim DetVarNumerocab, DetVarNumerocaja, DetVarCantidad As Integer Dim DetVarTipo, DetVarSucursal, DetVarCaja, DetVarCodigoproducto, DetVarBodega As String Dim DetVarTotal1, DetVarTotal2, DetVarDescuento1, DetVarDescuento2, DetVarValordescuento1, DetVarValordescuento2, DetVarPrecio, DetVarCosto, DetVarIva As Decimal 'VARIABLES PARA BUSQUEDA DE FACTURA PAGOS Dim PagVarHora As DateTime Dim PagVarNumerocab, PagVarNumerocaja As Integer Dim PagVarPorcobrar, PagVarValorrecibido As Double Dim PagVarFecha, PagVarFechacheque, PagVarFechadevolucion As Date Dim PagVarTipo, PagVarSucursal, PagVarCaja, PagVarTipoaplic, PagVarFormapago As String
331
Dim PagVarCodigotarjeta, PagVarNumerotarjeta, PagVarNombrecliente, PagVarTelefonotarjeta, PagVarLote, PagVarNumerodevolucion, PagVarCancelado As String Dim PagVarCodigobanco, PagVarCodigociudad, PagVarNumerocheque, PagVarCtacte, PagVarNombreempleado, PagVarCedulaempleado, PagVarAutorizacioncred, PagVarQuienregala, PagVarBeneficiario, PagVarAutorizacionobs As String Private Sub Frm_pro_facturación_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call VerTextoBoton() : Call LlenaParametros() : Call LlenaCombos() : Call Deshabilita() If Not (rs.BOF) Or Not (rs.EOF) Then : rs.MoveLast() : Call DisplayCurrentRecord() : End If TxtNumero.Focus() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim frm_busq As New Frm_Buscar S_Codigo = "" TablaBuscada = "VIS_CONS_CLIENTES" Campo1 = "CEDULA" Campo2 = "NOMBRE" Campo3 = "Busqueda Por Cliente" frm_busq.ShowDialog() If S_Codigo <> "" Then TxtCodCli.Text = S_Codigo Call BuscaNombreCli() If Trim(TxtNombreCli.Text) <> "" Then SprDetalleFactura.Enabled = True SprDetalleFactura.Focus() SprDetalleFactura.SetActiveCell(3, SprDetalleFactura.ActiveRow) End If End If End Sub Private Sub IngresarDatos() Call Limpia() : Call ObtieneSecuencia() : Call Habilita() : TxtCodCli.Focus() : Me.Btn_Autoriza.Enabled = True End Sub Private Sub GrabarDatos() Dim CodigoCabecera As Integer
332
Dim Cantidad As Integer Dim Neto, Bruto, xvalor_desc, xvalor_iva As Double Dim MEMBRESIA As Boolean Dim TotalPagos As Double Dim FormaPago As String Dim xcobro, xrecibo As Double TotalPagos = 0 valida_campos(cadena) If cadena = True Then If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If If Me.TxtCodCli.Text <> "" And Me.SprDetalleFactura.MaxRows >= 1 Then With SprFormadePago For I = 1 To .MaxRows .Row = I : .Col = 1 If Trim(.Text) <> "" Then .Col = 2 : TotalPagos = TotalPagos + CDbl(Val(.Text)) End If Next End With If Txttotal.Text = "" Then Txttotal.Text = 0.0 End If If Math.Round(CDbl(TotalPagos), 2) = CDbl(Txttotal.Text) Then If MODIFICA = True Then MsgBox("LA FACTURA NO PUEDE SER MODIFICADA") Else If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "FAC_ING_CAB_FACTURA" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", "NV") cmd.Parameters.Add("@SUCURSAL", Trim(CODSUCU)) cmd.Parameters.Add("@CAJA", Str(CODCAJA)) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) cmd.Parameters.Add("@FECHA", DtpFechaRegistro.Value) cmd.Parameters.Add("@BODEGA", Trim(CODSUCU)) cmd.Parameters.Add("@CLIENTE", Trim(TxtCodCli.Text))
333
cmd.Parameters.Add("@VENDEDOR", Cod_Usu) cmd.Parameters.Add("@CAJERO", Cod_Usu) cmd.Parameters.Add("@NUMEROCAJERO", CInt(2)) cmd.Parameters.Add("@AUTORIZA", "") cmd.Parameters.Add("@NOMBRECAJERO", usu) cmd.Parameters.Add("@COMENTARIO", "") cmd.Parameters.Add("@OBSERVACION", "") cmd.Parameters.Add("@PORCEDESCTO1", CDbl(0.0)) cmd.Parameters.Add("@PORCEDESCTO2", CDbl(0.0)) cmd.Parameters.Add("@PORCEIVA", (iva * 100)) cmd.Parameters.Add("@SUBTOTAL", CDbl(TxtSubtotal.Text)) cmd.Parameters.Add("@DESCUENTO1", CDbl(TxtDescto.Text)) cmd.Parameters.Add("@DESCUENTO2", CDbl(0.0)) cmd.Parameters.Add("@IMPUESTO", CDbl(Txtiva.Text)) cmd.Parameters.Add("@TOTAL", CDbl(Txttotal.Text)) cmd.Parameters.Add("@TIPOAPLIC", "NV") cmd.Parameters.Add("@NUMAPLIC", CDbl(0)) cmd.Parameters.Add("@IMPRESO", "S") cmd.Parameters.Add("@HORA", TimeString) cmd.Parameters.Add("@ELIMINADO", False) Try cmd.ExecuteNonQuery() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_CAB", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", "NV") cmd.Parameters.Add("@CODIGO2", CODSUCU) cmd.Parameters.Add("@CODIGO3", CODCAJA) cmd.Parameters.Add("@CODIGO4", CInt(TxtNumero.Text)) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then CodigoCabecera = dr("NUMERO") End If
334
If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If Catch ex As Exception MsgBox(ex.Message) End Try '********************INGRESA DETALLE With SprDetalleFactura For FILA = 1 To .MaxRows - 1 cmd.CommandText = "FAC_ING_DETALLE" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@NUMEROCAB", CodigoCabecera) cmd.Parameters.Add("@TIPO", "NV") cmd.Parameters.Add("@SUCURSAL", Trim(CODSUCU)) cmd.Parameters.Add("@CAJA", Str(CODCAJA)) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) .Col = 3 : .Row = FILA cmd.Parameters.Add("@CODIGOPRODUCTO", CStr(.Text)) cmd.Parameters.Add("@BODEGA", Trim(CODSUCU)) cmd.Parameters.Add("@FECHA", DtpFechaRegistro.Value) .Col = 10 If Val(CInt(.Text)) = 1 Or Val(CInt(.Text)) = 2 Or Val(CInt(.Text)) = 3 Or Val(CInt(.Text)) = 4 Or Val(CInt(.Text)) = 5 Or Val(CInt(.Text)) = 6 Or Val(CInt(.Text)) = 7 Or Val(CInt(.Text)) = 8 Or Val(CInt(.Text)) = 9 Then MEMBRESIA = True : COD_PROD = CInt(.Text) .Col = 11 : DIASMEMBRESIA = CInt(.Text) End If .Col = 2 : Cantidad = CInt(.Text) cmd.Parameters.Add("@CANTIDAD", Cantidad) .Col = 6 : Bruto = Cantidad * CDbl(.Text) cmd.Parameters.Add("@TOTAL1", Bruto) .Col = 13 : xvalor_desc = CDbl(.Text) .Col = 14 : cmd.Parameters.Add("@IVA", CDbl(.Text)) .Col = 7 : Neto = CDbl(.Text) - xvalor_desc cmd.Parameters.Add("@TOTAL2", Neto) .Col = 1 : cmd.Parameters.Add("@DESCUENTO1", CDbl(.Text))
335
cmd.Parameters.Add("@DESCUENTO2", CDbl(0.0)) cmd.Parameters.Add("@VALORDESCUENTO1", CDbl(xvalor_desc)) cmd.Parameters.Add("@VALORDESCUENTO2", CDbl(0.0)) .Col = 6 : cmd.Parameters.Add("@PRECIO", CDbl(.Text)) .Col = 12 If Trim(.Text) = "" Then cmd.Parameters.Add("@COSTO", CDbl(0.0)) Else cmd.Parameters.Add("@COSTO", CDbl(.Text)) End If cmd.Parameters.Add("@HORA", TimeString) Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try '*********** INGRESA ARCHIVO DE EXISTENCIAS cmd.CommandText = "FAC_ING_EXISTENCIAS" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", "NV") cmd.Parameters.Add("@NUMEROCAB", CodigoCabecera) cmd.Parameters.Add("@SUCURSAL", Trim(CODSUCU)) cmd.Parameters.Add("@CAJA", Str(CODCAJA)) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) .Col = 3 : .Row = FILA cmd.Parameters.Add("@CODIGOPRODUCTO", CStr(.Text)) cmd.Parameters.Add("@FECHA", DtpFechaRegistro.Value) .Col = 2 : Cantidad = CInt(.Text) cmd.Parameters.Add("@CANTIDAD", Cantidad) Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try '*** TERMINA ARCHIVO DE EXISTENCIAS Next
336
End With '********************INGRESA PAGOS With SprFormadePago For FILA = 1 To .MaxRows .Row = FILA cmd.CommandText = "FAC_ING_PAGOS" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@NUMEROCAB", CodigoCabecera) cmd.Parameters.Add("@TIPO", "NV") cmd.Parameters.Add("@SUCURSAL", Trim(CODSUCU)) cmd.Parameters.Add("@CAJA", Str(CODCAJA)) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) cmd.Parameters.Add("@TIPOAPLIC", "PG") cmd.Parameters.Add("@FECHA", DtpFechaRegistro.Value) .Col = 1 : FormaPago = Microsoft.VisualBasic.UCase(Microsoft.VisualBasic.Left(.Text, 2)) cmd.Parameters.Add("@FORMAPAGO", FormaPago) If Trim(.Text) = "Tarjeta" Then .Col = 2 : cmd.Parameters.Add("@PORCOBRAR", CDbl(.Text)) cmd.Parameters.Add("@VALORRECIBIDO", CDbl(0.0)) .Col = 4 : cmd.Parameters.Add("@CODIGOTARJETA", .Text) .Col = 5 : cmd.Parameters.Add("@NUMEROTARJETA", .Text) .Col = 6 : cmd.Parameters.Add("@NOMBRECLIENTE", .Text) .Col = 7 : cmd.Parameters.Add("@TELEFONOTARJETA", .Text) .Col = 8 : cmd.Parameters.Add("@LOTE", CStr(.Text)) cmd.Parameters.Add("@FECHACHEQUE", "") cmd.Parameters.Add("@CODIGOBANCO", "") cmd.Parameters.Add("@CODIGOCIUDAD", "") cmd.Parameters.Add("@NUMEROCHEQUE", "") cmd.Parameters.Add("@CTACTE", "") cmd.Parameters.Add("@NOMBREEMPLEADO", "")
337
cmd.Parameters.Add("@CEDULAEMPLEADO", "") cmd.Parameters.Add("@AUTORIZACIONCRED", "") cmd.Parameters.Add("@QUIENREGALA", "") cmd.Parameters.Add("@BENEFICIARIO", "") cmd.Parameters.Add("@AUTORIZACIONOBS", "") cmd.Parameters.Add("@FECHADEVOLUCION", "") cmd.Parameters.Add("@NUMERODEVOLUCION", "") End If If Trim(.Text) = "Efectivo" Then '.Col = 4 : cmd.Parameters.Add("@PORCOBRAR", CDbl(.Text)) .Col = 2 : cmd.Parameters.Add("@PORCOBRAR", CDbl(.Text)) xcobro = CDbl(.Text) If Trim(.Text) = "" Then .Col = 5 : cmd.Parameters.Add("@VALORRECIBIDO", CDbl(0.0)) xrecibo = CDbl(.Text) Else .Col = 5 : cmd.Parameters.Add("@VALORRECIBIDO", CDbl(.Text)) xrecibo = CDbl(.Text) End If If xrecibo < xcobro Then MsgBox("EL pago debe ser mayor o igual...", vbInformation, "A T E N C I O N") TxtRecibido.Focus() cadena = False Exit Sub End If cmd.Parameters.Add("@CODIGOTARJETA", "") cmd.Parameters.Add("@NUMEROTARJETA", "") cmd.Parameters.Add("@NOMBRECLIENTE", "") cmd.Parameters.Add("@TELEFONOTARJETA", "") cmd.Parameters.Add("@LOTE", "") cmd.Parameters.Add("@FECHACHEQUE", "") cmd.Parameters.Add("@CODIGOBANCO", "") cmd.Parameters.Add("@CODIGOCIUDAD", "") cmd.Parameters.Add("@NUMEROCHEQUE", "") cmd.Parameters.Add("@CTACTE", "") cmd.Parameters.Add("@NOMBREEMPLEADO", "") cmd.Parameters.Add("@CEDULAEMPLEADO", "") cmd.Parameters.Add("@AUTORIZACIONCRED", "") cmd.Parameters.Add("@QUIENREGALA", "")
338
cmd.Parameters.Add("@BENEFICIARIO", "") cmd.Parameters.Add("@AUTORIZACIONOBS", "") cmd.Parameters.Add("@FECHADEVOLUCION", "") cmd.Parameters.Add("@NUMERODEVOLUCION", "") End If If Trim(.Text) = "Cheque" Then .Col = 2 : cmd.Parameters.Add("@PORCOBRAR", CDbl(.Text)) cmd.Parameters.Add("@VALORRECIBIDO", CDbl(0.0)) cmd.Parameters.Add("@CODIGOTARJETA", "") cmd.Parameters.Add("@NUMEROTARJETA", "") cmd.Parameters.Add("@NOMBRECLIENTE", "") cmd.Parameters.Add("@TELEFONOTARJETA", "") cmd.Parameters.Add("@LOTE", "") cmd.Parameters.Add("@FECHACHEQUE", DtpFechaCheque.Value) cmd.Parameters.Add("@CODIGOBANCO", Trim(Microsoft.VisualBasic.Right(CmbBancos.Text, 2))) cmd.Parameters.Add("@CODIGOCIUDAD", Trim(Microsoft.VisualBasic.Right(CmbCiudad.Text, 2))) cmd.Parameters.Add("@NUMEROCHEQUE", TxtCheque.Text) cmd.Parameters.Add("@CTACTE", TxtCuenta.Text) cmd.Parameters.Add("@NOMBREEMPLEADO", "") cmd.Parameters.Add("@CEDULAEMPLEADO", "") cmd.Parameters.Add("@AUTORIZACIONCRED", "") cmd.Parameters.Add("@QUIENREGALA", "") cmd.Parameters.Add("@BENEFICIARIO", "") cmd.Parameters.Add("@AUTORIZACIONOBS", "") cmd.Parameters.Add("@FECHADEVOLUCION", "") cmd.Parameters.Add("@NUMERODEVOLUCION", "") End If If Trim(.Text) = "Credito" Then .Col = 2 : cmd.Parameters.Add("@PORCOBRAR", CDbl(.Text)) cmd.Parameters.Add("@VALORRECIBIDO", CDbl(0.0)) cmd.Parameters.Add("@CODIGOTARJETA", "") cmd.Parameters.Add("@NUMEROTARJETA", "") cmd.Parameters.Add("@NOMBRECLIENTE", "") cmd.Parameters.Add("@TELEFONOTARJETA", "") cmd.Parameters.Add("@LOTE", "")
339
cmd.Parameters.Add("@FECHACHEQUE", "") cmd.Parameters.Add("@CODIGOBANCO", "") cmd.Parameters.Add("@CODIGOCIUDAD", "") cmd.Parameters.Add("@NUMEROCHEQUE", "") cmd.Parameters.Add("@CTACTE", "") .Col = 4 : cmd.Parameters.Add("@NOMBREEMPLEADO", .Text) .Col = 5 : cmd.Parameters.Add("@CEDULAEMPLEADO", .Text) .Col = 6 : cmd.Parameters.Add("@AUTORIZACIONCRED", .Text) cmd.Parameters.Add("@QUIENREGALA", "") cmd.Parameters.Add("@BENEFICIARIO", "") cmd.Parameters.Add("@AUTORIZACIONOBS", "") cmd.Parameters.Add("@FECHADEVOLUCION", "") cmd.Parameters.Add("@NUMERODEVOLUCION", "") End If cmd.Parameters.Add("@CANCELADO", "Si") cmd.Parameters.Add("@HORA", TimeString) cmd.Parameters.Add("@CIERRE", False) Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try Next End With Call GrabaSecuencia() Call Deshabilita() Try cmd.ExecuteNonQuery() MsgBox("FACTURA GENERADA EXITOSAMENTE") If MEMBRESIA = True And DIASMEMBRESIA > 0 Then Call CambioMembresia() End If Catch ex As Exception MsgBox(ex.Message) End Try End If Else MsgBox("Los pagos no coinciden con el total", MsgBoxStyle.Critical, "Mensaje") End If Else
340
MsgBox("Faltan datos de llenar", MsgBoxStyle.Information, "Mensaje") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Math.Round(CDbl(TotalPagos), 2) = CDbl(Txttotal.Text) Then If Me.TxtNumero.Text <> "" And Me.TxtCodCli.Text <> "" And Me.TxtSubtotal.Text <> "" And Me.Txttotal.Text <> "" And Me.TxtDescto.Text <> "" And Me.Txtiva.Text <> "" Then Reporte.Print() Else MsgBox("No Existen datos a imprimir...", vbInformation, "A T E N C I O N") Me.TxtNumero.Focus() End If End If End If End Sub 'Private Sub btn_salir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_salir.Click Private Sub SalirDatos() If Me.TlbBotones.Buttons(0).Enabled = False Then If MessageBox.Show("Esta en modo de Ingreso. Desea Cancelar la Factura?...", "ALERTA", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.Yes Then Call Limpia() : Call Deshabilita() : Me.TxtNumero.Focus() : Me.Close() Else If SprDetalleFactura.Enabled = True Then SprDetalleFactura.Focus() : SprDetalleFactura.SetActiveCell(3, SprDetalleFactura.MaxRows) Else TxtCodCli.Focus() End If End If Else Me.Close() End If End Sub 'Private Sub Btn_deshacer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_deshacer.Click Private Sub DeshacerDatos()
341
Call Limpia() : Call Deshabilita() : Me.TxtNumero.Focus() End Sub Private Sub TxtCodCli_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtCodCli.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then Call BuscaNombreCli() If Trim(TxtNombreCli.Text) <> "" Then SprDetalleFactura.Enabled = True SprDetalleFactura.Focus() : SprDetalleFactura.SetActiveCell(3, SprDetalleFactura.ActiveRow) End If End If End Sub Private Sub SprFormadePago_KeyPressEvent(ByVal sender As Object, ByVal e As AxFPSpread._DSpreadEvents_KeyPressEvent) Handles SprFormadePago.KeyPressEvent If e.keyAscii = 13 Then With SprFormadePago If .ActiveCol = 2 Then .Row = .ActiveRow : .Col = 2 If Trim(.Text) <> "" Then .Col = 1 If Trim(.Text) = "Tarjeta" Then Call GruposVisibles(False, True, False, False, False, False) Call LimpiaTarjeta() : Tarjeta.Focus() : CmbTarjetas.Focus() End If If Trim(.Text) = "Efectivo" Then Call GruposVisibles(True, False, False, False, False, False) Call LimpiaEfectivo() .Col = 2 : TxtPorCobrar.Text = Format(CDbl(.Text), "$###,##0.00") : Efectivo.Focus() : TxtRecibido.Focus() End If If Trim(.Text) = "Cheque" Then Call GruposVisibles(False, False, True, False, False, False) Call LimpiaCheque() : Cheque.Focus() : DtpFechaCheque.Focus() End If If Trim(.Text) = "Credito" Then Call GruposVisibles(False, False, False, True, False, False) Call LimpiaCredito() : Credito.Focus() : TxtNombreEmpleado.Focus() End If
342
End If End If End With End If End Sub Private Sub SprFormadePago_KeyDownEvent(ByVal sender As Object, ByVal e As AxFPSpread._DSpreadEvents_KeyDownEvent) Handles SprFormadePago.KeyDownEvent With SprFormadePago If e.keyCode = Keys.Delete Then If .MaxRows > 1 Then If MessageBox.Show("Esta seguro de Eliminar la Linea?...", "Alerta", MessageBoxButtons.YesNo) = DialogResult.Yes Then .Row = .ActiveRow : .Col = 2 .Action = FPSpread.ActionConstants.ActionDeleteRow.ActionDeleteRow .Col = 1 For I = 1 To .MaxRows .Row = I If Trim(.Text) = "" Then .MaxRows = I - 1 Exit For End If Next .SetActiveCell(1, .MaxRows) : .Focus() : Call ValidaPagos() End If End If End If End With End Sub Private Sub SprFormadePago_Change(ByVal sender As Object, ByVal e As AxFPSpread._DSpreadEvents_ChangeEvent) Handles SprFormadePago.Change Dim Sumatoria As Double With SprFormadePago If .ActiveCol = 1 Then For I = 1 To .MaxRows - 1 .Col = 2 : .Row = I : Sumatoria = Sumatoria + Val(CDbl(.Text)) Next I .Col = 2 : .Row = .ActiveRow .Text = CDbl(Txttotal.Text) - Sumatoria .SetActiveCell(2, .ActiveRow)
343
End If If .ActiveCol = 2 Then .Col = 1 : .Row = .ActiveRow If Trim(.Text) = "Efectivo" Then .Col = 2 TxtPorCobrar.Text = Format(CDbl(.Text), "$###,##0.00") TxtRecibido.Text = Format(CDbl(.Text), "$###,##0.00") TxtRecibido.Focus() End If If Trim(.Text) = "Tarjeta" Then CmbTarjetas.Focus() End If If Trim(.Text) = "Cheque" Then DtpFechaCheque.Focus() End If If Trim(.Text) = "Credito" Then TxtNombreEmpleado.Focus() End If End If End With End Sub Private Sub SprFormadePago_DblClick(ByVal sender As Object, ByVal e As AxFPSpread._DSpreadEvents_DblClickEvent) Handles SprFormadePago.DblClick Call LlenaCampos() End Sub Private Sub SprDetalleFactura_KeyPressEvent(ByVal sender As Object, ByVal e As AxFPSpread._DSpreadEvents_KeyPressEvent) Handles SprDetalleFactura.KeyPressEvent Dim DescuentoLin, PrecioU, TotalU, Valor_desc, Valor_Iva As Double Dim Cantidad As Integer Dim xxnombre As String Dim xxproprecio As String Dim xxproiva As Integer Dim xxtipomembre As String Dim xxdias As String Dim xxcosto As String With SprDetalleFactura If .ActiveCol = 1 Then If e.keyAscii = 13 Then .Row = .ActiveRow : .Col = 3 If Trim(.Text) <> "" Then .Col = 1 : DescuentoLin = CDbl(.Text)
344
.Col = 2 : Cantidad = CDbl(.Text) .Col = 6 : PrecioU = CDbl(.Text) TotalU = PrecioU * Cantidad .SetText(7, .ActiveRow, Format(CDbl(TotalU), "$###,##0.00")) Call CalculaTotales() End If End If End If If .ActiveCol = 2 Then If e.keyAscii = 13 Then .Row = .ActiveRow : .Col = 3 If Trim(.Text) <> "" Then .Col = 1 : DescuentoLin = CDbl(.Text) .Col = 2 : Cantidad = CDbl(.Text) .Col = 6 : PrecioU = CDbl(.Text) TotalU = PrecioU * Cantidad .SetText(7, .ActiveRow, Format(CDbl(TotalU), "$###,##0.00")) Call CalculaTotales() End If End If End If If .ActiveCol = 3 Then If e.keyAscii = 13 Then Dim PROXIVA As Double TablaBuscada = "PRODUCTO_SERV" .Row = .ActiveRow : .Col = 3 : S_Codigo = .Text If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("FAC_CONS_ESPEC", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", CDbl(S_Codigo)) cmd.Parameters.Add("@OPCION", 10) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then xcodigo = S_Codigo TipoProducto = Trim(dr("protipo")) xxnombre = dr("NOMBRE") xxproprecio = dr("PROPRECIO") xxproiva = dr("PROIVA")
345
xxtipomembre = dr("TIPOMEMBRE") xxdias = dr("DIAS") xxcosto = dr("COSTO") Call Verifica_Existencias() If TipoProducto = "P" And CantidadExistencia <= 0 Then .Col = 3 .Row = .ActiveRow .Text = "" .SetActiveCell(3, .ActiveRow) : .Focus() MsgBox(CantidadExistencia, MsgBoxStyle.Information, "No hay Stock Existencia:") .Col = 3 .Row = .ActiveRow .Text = "" .SetActiveCell(3, .ActiveRow) : .Focus() Else .SetText(5, .ActiveRow, xxnombre) .SetText(6, .ActiveRow, Format(CDbl(xxproprecio), "###,##0.00")) .Row = .ActiveRow .Col = 1 : DescuentoLin = CDbl(.Text) .Col = 2 : Cantidad = CDbl(.Text) .Col = 6 : PrecioU = CDbl(.Text) TotalU = PrecioU * Cantidad Valor_desc = Math.Round((TotalU * DescuentoLin / 100), 2) If xxproiva = 1 Then Valor_Iva = Math.Round(((TotalU - Valor_desc) * 0.12), 2) Else Valor_Iva = 0.0 End If .SetText(7, .ActiveRow, Format(CDbl(TotalU), "###,##0.00")) .SetText(9, .ActiveRow, CDbl(xxproiva)) .Col = 10 : .Text = CStr(xxtipomembre) .Col = 11 : .Text = CInt(xxdias) .Col = 12 : .Text = CInt(xxcosto) .Col = 13 : .Text = Valor_desc .Col = 14 : .Text = Valor_Iva .Col = 3 : .Row = .MaxRows If Trim(.Text) Then .MaxRows = .MaxRows + 1 Else .SetActiveCell(3, .ActiveRow)
346
End If Call CalculaTotales() .Row = .MaxRows : .Col = 1 : .Text = "0.00" .Col = 2 : .Text = "1" .SetActiveCell(2, .MaxRows) : .Focus() If TipoProducto = "P" Then 'MsgBox(CantidadExistencia, MsgBoxStyle.Information, "Existencia:") .Row = .MaxRows : .Col = 1 : .Text = "0.00" .Col = 2 : .Text = "1" .SetActiveCell(2, .MaxRows) : .Focus() .Col = 3 .Row = .ActiveRow .Text = "" .SetActiveCell(3, .ActiveRow) : .Focus() End If End If Else .Col = 3 .Row = .ActiveRow .Text = "" .SetActiveCell(3, .ActiveRow) : .Focus() MsgBox("Producto o Servicio no existe..!", MsgBoxStyle.Information, "Mensaje") .Col = 3 .Row = .ActiveRow .Text = "" .SetActiveCell(3, .ActiveRow) : .Focus() End If End If End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End With End Sub Private Sub SprDetalleFactura_ButtonClicked(ByVal sender As Object, ByVal e As AxFPSpread._DSpreadEvents_ButtonClickedEvent) Handles SprDetalleFactura.ButtonClicked Dim Cantidad As Integer Dim DescuentoLin, PrecioU, TotalU, Valor_desc, Valor_Iva As Double Dim xxnombre As String Dim xxproprecio As String Dim xxproiva As Integer
347
Dim xxtipomembre As String Dim xxdias As String Dim xxcosto As String With SprDetalleFactura If .ActiveCol = 4 Then Dim frm_busq As New Frm_Buscar S_Codigo = "" : TablaBuscada = "VIS_CONS_PRODUCTOS" Campo1 = "CODPRODSERV" Campo2 = "NOMBRE" Campo3 = "Busqueda Por Producto" frm_busq.ShowDialog() If S_Codigo <> "" Then xcodigo = S_Codigo .SetText(3, .ActiveRow, S_Codigo) With SprDetalleFactura If S_Codigo <> "" Then If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("FAC_CONS_ESPEC", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", CDbl(S_Codigo)) cmd.Parameters.Add("@OPCION", 10) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then xcodigo = S_Codigo TipoProducto = Trim(dr("protipo")) xxnombre = dr("NOMBRE") xxproprecio = dr("PROPRECIO") xxproiva = dr("PROIVA") xxtipomembre = dr("TIPOMEMBRE") xxdias = dr("DIAS") xxcosto = dr("COSTO") Call Verifica_Existencias() If TipoProducto = "P" And CantidadExistencia <= 0 Then .Col = 3 .Row = .ActiveRow
348
.Text = "" .SetActiveCell(3, .ActiveRow) : .Focus() MsgBox(CantidadExistencia, MsgBoxStyle.Information, "No hay Stock Existencia:") .Col = 3 .Row = .ActiveRow .Text = "" .SetActiveCell(3, .ActiveRow) : .Focus() Else .SetText(5, .ActiveRow, xxnombre) .SetText(6, .ActiveRow, Format(CDbl(xxproprecio), "###,##0.00")) .Row = .ActiveRow .Col = 1 : DescuentoLin = CDbl(.Text) .Col = 2 : Cantidad = CDbl(.Text) .Col = 6 : PrecioU = CDbl(.Text) TotalU = PrecioU * Cantidad Valor_desc = Math.Round((TotalU * DescuentoLin / 100), 2) If xxproiva = 1 Then Valor_Iva = Math.Round(((TotalU - Valor_desc) * 0.12), 2) Else Valor_Iva = 0.0 End If .SetText(7, .ActiveRow, Format(CDbl(TotalU), "###,##0.00")) .SetText(9, .ActiveRow, CDbl(xxproiva)) .Col = 10 : .Text = CStr(xxtipomembre) .Col = 11 : .Text = CInt(xxdias) .Col = 12 : .Text = CInt(xxcosto) .Col = 13 : .Text = Valor_desc .Col = 14 : .Text = Valor_Iva .Col = 3 : .Row = .MaxRows If Trim(.Text) Then .MaxRows = .MaxRows + 1 Else .SetActiveCell(3, .ActiveRow) End If Call CalculaTotales() .Row = .MaxRows : .Col = 1 : .Text = "0.00" .Col = 2 : .Text = "1" .SetActiveCell(2, .MaxRows) : .Focus() If TipoProducto = "P" Then
349
'MsgBox(CantidadExistencia, MsgBoxStyle.Information, "Existencia:") .Row = .MaxRows : .Col = 1 : .Text = "0.00" .Col = 2 : .Text = "1" .SetActiveCell(2, .MaxRows) : .Focus() .Col = 3 .Row = .ActiveRow .Text = "" .SetActiveCell(3, .ActiveRow) : .Focus() End If End If Else .Col = 3 .Row = .ActiveRow .Text = "" .SetActiveCell(3, .ActiveRow) : .Focus() MsgBox("Producto o Servicio no existe..!", MsgBoxStyle.Information, "Mensaje") .Col = 3 .Row = .ActiveRow .Text = "" .SetActiveCell(3, .ActiveRow) : .Focus() End If Else MsgBox("Ingrese código de Producto o Servicio..!", MsgBoxStyle.Information, "Mensaje") End If End With End If End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End With End Sub Private Sub SprDetalleFactura_KeyDownEvent(ByVal sender As Object, ByVal e As AxFPSpread._DSpreadEvents_KeyDownEvent) Handles SprDetalleFactura.KeyDownEvent With SprDetalleFactura If e.keyCode = Keys.Delete Then If .MaxRows > 1 Then If MessageBox.Show("Esta seguro de Eliminar la Linea?...", "Alerta", MessageBoxButtons.YesNo) = DialogResult.Yes Then .Row = .ActiveRow : .Col = 3
350
.Action = FPSpread.ActionConstants.ActionDeleteRow.ActionDeleteRow : .MaxRows = .MaxRows - 1 .SetActiveCell(3, .MaxRows) : .Focus() : Call CalculaTotales() End If End If End If End With End Sub Private Sub TxtAutorizacion_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then Call LlenaSpread() : Call ValidaPagos() End If End Sub Private Sub TxtAutorizacionCred_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtAutorizacionCred.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then Call LlenaSpread() : Call ValidaPagos() End If End Sub Private Sub TxtDevolucion_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then Call LlenaSpread() : Call ValidaPagos() End If End Sub Private Sub TxtCuenta_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtCuenta.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then Call LlenaSpread() : Call ValidaPagos() Else If e.KeyChar.IsDigit(e.KeyChar) Then e.Handled = False ElseIf e.KeyChar.IsControl(e.KeyChar) Then e.Handled = False Else e.Handled = True End If
351
End If End Sub Private Sub TxtRecibido_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtRecibido.KeyPress Dim KeyASCII As Short If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then If Trim(TxtRecibido.Text) <> "" Then If CDbl(TxtRecibido.Text) < CDbl(TxtPorCobrar.Text) Then MsgBox("EL pago debe ser mayor o igual...", vbInformation, "A T E N C I O N") TxtRecibido.Focus() Exit Sub ''OJO Else TxtCambio.Text = Format(CDbl(Math.Round((CDbl(TxtRecibido.Text) - CDbl(TxtPorCobrar.Text)), 2)), "$###,##0.00") Call LlenaSpread() : Call ValidaPagos() End If Else KeyASCII = Asc(e.KeyChar) If (KeyASCII >= 48 And KeyASCII <= 57) Or (KeyASCII = 46) Or (KeyASCII = 8) Or (KeyASCII = 13) Then e.Handled = False Else e.Handled = True End If End If End If End Sub Private Sub TxtLote_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtLote.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then Call LlenaSpread() : Call ValidaPagos() Else If e.KeyChar.IsDigit(e.KeyChar) Then e.Handled = False ElseIf e.KeyChar.IsControl(e.KeyChar) Then e.Handled = False Else e.Handled = True End If
352
End If End Sub Private Sub TxtNumeroTarjeta_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtNumeroTarjeta.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then TxtNombreCliente.Focus() Call LlenaSpread() Else If e.KeyChar.IsDigit(e.KeyChar) Then e.Handled = False ElseIf e.KeyChar.IsControl(e.KeyChar) Then e.Handled = False Else e.Handled = True End If End If End Sub Private Sub TxtNombreCliente_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtNombreCliente.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then TxtTelefonos.Focus() Call LlenaSpread() End If End Sub Private Sub TxtTelefonos_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtTelefonos.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then TxtLote.Focus() Call LlenaSpread() Else If e.KeyChar.IsDigit(e.KeyChar) Then e.Handled = False ElseIf e.KeyChar.IsControl(e.KeyChar) Then e.Handled = False Else e.Handled = True End If End If
353
End Sub Private Sub TxtLote_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtLote.LostFocus Call LlenaSpread() : Call ValidaPagos() End Sub Private Sub TxtAutorizacion_LostFocus(ByVal sender As System.Object, ByVal e As System.EventArgs) Call LlenaSpread() : Call ValidaPagos() End Sub Private Sub TxtAutorizacionCred_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtAutorizacionCred.LostFocus Call LlenaSpread() : Call ValidaPagos() End Sub Private Sub TxtDevolucion_LostFocus(ByVal sender As System.Object, ByVal e As System.EventArgs) Call LlenaSpread() : Call ValidaPagos() End Sub Private Sub TxtCuenta_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtCuenta.LostFocus Call LlenaSpread() : Call ValidaPagos() End Sub Private Sub TxtCambio_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TxtCambio.LostFocus Call LlenaSpread() : Call ValidaPagos() End Sub Private Sub TxtNombreEmpleado_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtNombreEmpleado.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then TxtCedula.Focus() End If End Sub Private Sub TxtCedula_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtCedula.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then TxtAutorizacionCred.Focus() End If End Sub
354
Private Sub TxtCheque_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtCheque.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then TxtCuenta.Focus() Else If e.KeyChar.IsDigit(e.KeyChar) Then e.Handled = False ElseIf e.KeyChar.IsControl(e.KeyChar) Then e.Handled = False Else e.Handled = True End If End If End Sub Private Sub TxtNumero_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtNumero.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then If TxtNumero.Text <> "" Then If Not IsNumeric(TxtNumero.Text) = True Then MsgBox("Introduzca un valor con números") Me.TxtNumero.Focus() Else Call CargarFactura() End If Else MsgBox("Debe ingresar un Numero ..", MsgBoxStyle.Information, "SICAG") Me.TxtNumero.Focus() End If End If End Sub Private Sub CalculaTotales() Dim Descuento, DescuentoT, ValIva, ValIvaT, Subtotal, Total, PrecioU, PrecioT As Double Dim Cantidad As Integer TotalG = 0 With SprDetalleFactura For I = 1 To .MaxRows - 1 .Col = 8 : .Row = I
355
If .Value = 0 Then .Row = I : .Col = 2 : Cantidad = Val(.Text) .Col = 6 : PrecioU = CDbl(.Text) .Col = 7 : PrecioT = CDbl(.Text) .Col = 1 : Descuento = CDbl(.Text) Subtotal = Subtotal + (Math.Round(PrecioT, 2)) DescuentoT = DescuentoT + Math.Round(((Math.Round(PrecioT, 2)) * Math.Round((Descuento / 100), 2)), 2) .Col = 9 If Val(.Text) = 1 Then ValIva = ValIva + Math.Round((((Math.Round(PrecioT, 2)) - ((Math.Round(PrecioT, 2)) * Math.Round((Descuento / 100), 2))) * iva), 2) Total = Total + Math.Round(((Math.Round(PrecioT, 2)) - ((Math.Round(PrecioT, 2)) * Math.Round((Descuento / 100), 2)) + (((Math.Round(PrecioT, 2)) - ((Math.Round(PrecioT, 2)) * Math.Round((Descuento / 100), 2))) * iva)), 2) Else ValIva = ValIva + 0 Total = Total + Math.Round(((Math.Round(PrecioT, 2)) - ((Math.Round(PrecioT, 2)) * Math.Round((Descuento / 100), 2)) + 0), 2) End If End If Next End With ValIvaT = ValIvaT + (Math.Round(ValIva, 2)) TotalG = TotalG + (Math.Round(Total, 2)) TxtSubtotal.Text = Format(Subtotal, "$###,##0.00") TxtDescto.Text = Format(DescuentoT, "$###,##0.00") Txtiva.Text = Format(ValIvaT, "$###,##0.00") Txttotal.Text = Format(TotalG, "$###,##0.00") End Sub Private Sub LlenaSpread() With SprFormadePago .Col = 1 .Row = .ActiveRow If Trim(.Text) = "Tarjeta" Then .Col = 4 : .Text = Trim(Microsoft.VisualBasic.Right(CmbTarjetas.Text, 2)) .Col = 5 : .Text = TxtNumeroTarjeta.Text .Col = 6 : .Text = TxtNombreCliente.Text .Col = 7 : .Text = TxtTelefonos.Text .Col = 8 : .Text = TxtLote.Text
356
End If If Trim(.Text) = "Efectivo" Then .Col = 4 : .Text = Format(CDbl(TxtPorCobrar.Text), "$###,##0.00") '.Col = 2 : .Text = Format(CDbl(TxtPorCobrar.Text), "$###,##0.00") .Col = 5 : .Text = Format(CDbl(TxtRecibido.Text), "$###,##0.00") .Col = 6 If Trim(TxtCambio.Text) <> "" Then .Text = Format(CDbl(TxtCambio.Text), "$###,##0.00") Else .Text = Format(0.0, "$###,##0.00") End If End If If Trim(.Text) = "Cheque" Then .Col = 4 : .Text = DtpFechaCheque.Text .Col = 5 : .Text = Trim(Microsoft.VisualBasic.Right(CmbBancos.Text, 2)) .Col = 6 : .Text = Trim(Microsoft.VisualBasic.Right(CmbCiudad.Text, 2)) .Col = 7 : .Text = TxtCheque.Text .Col = 8 : .Text = TxtCuenta.Text End If If Trim(.Text) = "Credito" Then .Col = 4 : .Text = TxtNombreEmpleado.Text .Col = 5 : .Text = TxtCedula.Text .Col = 6 : .Text = TxtAutorizacionCred.Text End If End With End Sub Private Sub ValidaPagos() Dim ValorPago As Double With SprFormadePago For I = 1 To .MaxRows .Row = I : .Col = 2 : ValorPago = ValorPago + CDbl(Val(.Text)) Next If Math.Round(TotalG, 2) > Math.Round(ValorPago, 2) Then .MaxRows = .MaxRows + 1 .Col = 2 : .Row = .MaxRows : .Text = Math.Round(TotalG, 2) - Math.Round(ValorPago, 2) .Focus() : .SetActiveCell(1, .MaxRows) Else .Focus() : .SetActiveCell(2, .MaxRows) End If
357
End With End Sub Private Sub LlenaParametros() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_GEN", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@OPCION", 11) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtCaja.Text = dr("DESCRIPCION") CODCAJA = dr("CODCAJA") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If 'CARGO VALOR DE IVA cmd = New SqlClient.SqlCommand("SEG_CONS_PARAMETRO", cn) cmd.CommandType = CommandType.StoredProcedure Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then iva = dr("PORCENTAJEIVA") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If Me.TxtVendedor.Text = CStr(usu) : Me.TxtSucursal.Text = CStr(SUCURSAL) End Sub Private Sub LlenaCombos() 'Llena los Bancos Me.CmbBancos.Text = "" cmd = New SqlClient.SqlCommand("SEG_BUSCA_GEN", cn)
358
cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@OPCION", 10) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try While dr.Read Me.CmbBancos.Items.Add(dr("DESCRIPCION") & Space(50) & dr("CODTIPOBANKO")) End While CmbBancos.SelectedIndex = (0) If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If 'Llena las Tarjetas de Credito Me.CmbTarjetas.Text = "" cmd = New SqlClient.SqlCommand("SEG_BUSCA_GEN", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@OPCION", 4) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try While dr.Read Me.CmbTarjetas.Items.Add(dr("DESCRIPCION") & Space(50) & dr("CODTARJCRED")) End While CmbTarjetas.SelectedIndex = (0) If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If 'Llena las Ciudades Me.CmbCiudad.Text = "" cmd = New SqlClient.SqlCommand("SEG_BUSCA_GEN", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@OPCION", 29) Try dr = cmd.ExecuteReader Catch ex As Exception
359
MsgBox(ex.Message) End Try While dr.Read Me.CmbCiudad.Items.Add(dr("NOMBRECIUDAD") & Space(50) & dr("CODIGOCIUDAD")) End While If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub Habilita() Me.Button1.Enabled = True : Me.TlbBotones.Buttons(0).Enabled = False Me.TlbBotones.Buttons(2).Enabled = True : Me.TlbBotones.Buttons(6).Enabled = False Me.TlbBotones.Buttons(12).Enabled = False : Me.TlbBotones.Buttons(10).Enabled = True Me.TlbBotones.Buttons(4).Enabled = False : Me.TlbBotones.Buttons(8).Enabled = False Me.TlbBotones.Buttons(14).Enabled = True : Me.Efectivo.Enabled = True Me.Cheque.Enabled = True : Me.Credito.Enabled = True Me.TxtCodCli.Enabled = True : Me.TxtNumero.Enabled = False End Sub Private Sub Deshabilita() Me.Button1.Enabled = False : Me.TlbBotones.Buttons(0).Enabled = True Me.TlbBotones.Buttons(2).Enabled = False : Me.TlbBotones.Buttons(6).Enabled = True Me.TlbBotones.Buttons(12).Enabled = True : Me.TlbBotones.Buttons(10).Enabled = False Me.TlbBotones.Buttons(4).Enabled = True : Me.TlbBotones.Buttons(8).Enabled = True Me.TlbBotones.Buttons(14).Enabled = True : Me.SprDetalleFactura.Enabled = False Me.Btn_Autoriza.Enabled = False : Me.Efectivo.Enabled = False Me.Cheque.Enabled = False : Me.Credito.Enabled = False Me.TxtCodCli.Enabled = False : Me.DtpFechaRegistro.Enabled = False SprDetalleFactura.Enabled = False End Sub Private Sub VerTextoBoton() Me.TlbBotones.Buttons(0).ToolTipText = "Nuevo" Me.TlbBotones.Buttons(2).ToolTipText = "Grabar" Me.TlbBotones.Buttons(4).ToolTipText = "Modificar"
360
Me.TlbBotones.Buttons(6).ToolTipText = "Eliminar" Me.TlbBotones.Buttons(8).ToolTipText = "Buscar" Me.TlbBotones.Buttons(10).ToolTipText = "Deshacer" Me.TlbBotones.Buttons(12).ToolTipText = "Imprimir" Me.TlbBotones.Buttons(14).ToolTipText = "Salir" End Sub Private Sub BuscaNombreCli() If Me.TxtCodCli.Text <> "" Then cmd = New SqlClient.SqlCommand("SEG_BUSCA_ESPECIF", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", Me.TxtCodCli.Text) cmd.Parameters.Add("@OPCION", 5) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtNombreCli.Text = dr("NOMBRE") COD_PER = dr("CODPERS") Else MsgBox("Cliente no existe..!", MsgBoxStyle.Information, "Mensaje") Me.TxtCodCli.Focus() End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If Else MsgBox("Ingrese numero de cédula del cliente..!", MsgBoxStyle.Information, "Mensaje") End If End Sub Private Sub Limpia() Me.DtpFechaRegistro.Value = Today() : Me.TxtCodCli.Text = "" Me.SprDetalleFactura.MaxRows = 0 : Me.SprDetalleFactura.MaxRows = 1 Me.SprFormadePago.MaxRows = 0 : Me.SprFormadePago.MaxRows = 1 Me.SprDetalleFactura.Row = Me.SprDetalleFactura.MaxRows Me.SprDetalleFactura.Col = 1 : Me.SprDetalleFactura.Text = 0.0 Me.SprDetalleFactura.Col = 2 : Me.SprDetalleFactura.Text = 1 Me.TxtSubtotal.Text = "" : Me.TxtDescto.Text = ""
361
Me.Txtiva.Text = "" : Me.Txttotal.Text = "" : Me.TxtNombreCli.Text = "" Call LimpiaTarjeta() Call LimpiaEfectivo() Call LimpiaCheque() Call LimpiaCredito() End Sub Private Sub CambioMembresia() Dim HOY As DateTime If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "FAC_MOD_MEMB_CLIENTE" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@COD", CInt(COD_PER)) cmd.Parameters.Add("@FECHAMOD", Today) If COD_PROD = 1 Then HOY = Today.AddDays(DIASMEMBRESIA) : cmd.Parameters.Add("@FECHACAD", HOY) : cmd.Parameters.Add("@CODTIPO", 1) ElseIf COD_PROD = 2 Then HOY = Today.AddDays(DIASMEMBRESIA) : cmd.Parameters.Add("@FECHACAD", HOY) : cmd.Parameters.Add("@CODTIPO", 2) ElseIf COD_PROD = 3 Then HOY = Today.AddDays(DIASMEMBRESIA) : cmd.Parameters.Add("@FECHACAD", HOY) : cmd.Parameters.Add("@CODTIPO", 3) ElseIf COD_PROD = 4 Then HOY = Today.AddDays(DIASMEMBRESIA) : cmd.Parameters.Add("@FECHACAD", HOY) : cmd.Parameters.Add("@CODTIPO", 4) ElseIf COD_PROD = 5 Then HOY = Today.AddDays(DIASMEMBRESIA) : cmd.Parameters.Add("@FECHACAD", HOY) : cmd.Parameters.Add("@CODTIPO", 5) ElseIf COD_PROD = 6 Then HOY = Today.AddDays(DIASMEMBRESIA) : cmd.Parameters.Add("@FECHACAD", HOY) : cmd.Parameters.Add("@CODTIPO", 6) ElseIf COD_PROD = 7 Then
362
HOY = Today.AddDays(DIASMEMBRESIA) : cmd.Parameters.Add("@FECHACAD", HOY) : cmd.Parameters.Add("@CODTIPO", 7) ElseIf COD_PROD = 8 Then HOY = Today.AddDays(DIASMEMBRESIA) : cmd.Parameters.Add("@FECHACAD", HOY) : cmd.Parameters.Add("@CODTIPO", 8) Else HOY = Today.AddDays(DIASMEMBRESIA) : cmd.Parameters.Add("@FECHACAD", HOY) : cmd.Parameters.Add("@CODTIPO", 9) End If Try cmd.ExecuteNonQuery() MsgBox("Ha cambiado la membresia del cliente") dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub ObtieneSecuencia() Dim CodigoSuc As Integer CodigoSuc = Val(Trim(Microsoft.VisualBasic.Right(SUCURSAL, 3))) If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_SECUENCIA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", CStr("NV")) cmd.Parameters.Add("@CODIGO2", CInt(CodigoSuc)) cmd.Parameters.Add("@CODIGO3", CInt(CODCAJA)) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtNumero.Text = dr("NUMERO") + 1 Else TxtNumero.Text = "1" End If
363
Me.TxtVendedor.Text = CStr(usu) If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_PARAMETROS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", CInt(CODSUCU)) cmd.Parameters.Add("@OPCION", 3) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtSucursal.Text = dr("DESCRIPCION") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub GrabaSecuencia() Dim CodigoSuc As Integer CodigoSuc = Val(Trim(Microsoft.VisualBasic.Right(SUCURSAL, 3))) If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_SECUENCIA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", CStr("NV")) cmd.Parameters.Add("@CODIGO2", CInt(CodigoSuc)) cmd.Parameters.Add("@CODIGO3", CInt(CODCAJA)) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "FAC_MOD_SECUENCIA" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn
364
cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", CStr("NV")) cmd.Parameters.Add("@SUCURSAL", CInt(CodigoSuc)) cmd.Parameters.Add("@CAJA", CInt(CODCAJA)) cmd.Parameters.Add("@NUMERO", CInt(Val(TxtNumero.Text))) Try cmd.ExecuteNonQuery() dr.Close() Catch ex As Exception MsgBox(ex.Message) End Try Else If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "FAC_ING_SECUENCIA" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", CStr("NV")) cmd.Parameters.Add("@SUCURSAL", CInt(CodigoSuc)) cmd.Parameters.Add("@CAJA", CInt(CODCAJA)) cmd.Parameters.Add("@NUMERO", 1) Try cmd.ExecuteNonQuery() dr.Close() Catch ex As Exception MsgBox(ex.Message) End Try End If End Sub Private Sub GruposVisibles(ByVal G1 As Boolean, ByVal G2 As Boolean, ByVal G3 As Boolean, ByVal G4 As Boolean, ByVal G5 As Boolean, ByVal G6 As Boolean) Efectivo.Visible = G1 : Tarjeta.Visible = G2 : Cheque.Visible = G3 Credito.Visible = G4 End Sub Private Sub LimpiaEfectivo() TxtPorCobrar.Text = "" : TxtRecibido.Text = "" : TxtCambio.Text = "" End Sub
365
Private Sub LimpiaTarjeta() CmbTarjetas.SelectedIndex = 1 : TxtNumeroTarjeta.Text = "" TxtNombreCliente.Text = "" : TxtTelefonos.Text = "" : TxtLote.Text = "" End Sub Private Sub LimpiaCheque() DtpFechaCheque.Value = Date.Today.Date : CmbBancos.SelectedIndex = 1 CmbCiudad.SelectedIndex = 1 : TxtCheque.Text = "" : TxtCuenta.Text = "" End Sub Private Sub LimpiaCredito() TxtNombreEmpleado.Text = "" : TxtCedula.Text = "" : TxtAutorizacionCred.Text = "" End Sub Public Sub CargarFactura() If Trim(TxtNumero.Text) <> "" Then SprDetalleFactura.MaxRows = 0 SprDetalleFactura.MaxRows = 1 SprFormadePago.MaxRows = 0 SprFormadePago.MaxRows = 1 If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_FACTURA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", CStr("NV")) cmd.Parameters.Add("@CODIGO2", CODSUCU) cmd.Parameters.Add("@CODIGO3", CODCAJA) cmd.Parameters.Add("@CODIGO4", CInt(Trim(TxtNumero.Text))) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then VarNumero = dr("NUMERO") : VarTipo = dr("TIPO") : VarSucursal = dr("SUCURSAL") : VarCaja = dr("CAJA") VarFecha = dr("FECHA") : VarBodega = dr("BODEGA") : VarCliente = dr("CLIENTE") : VarVendedor = dr("VENDEDOR")
366
VarCajero = dr("CAJERO") : VarNumeroCajero = dr("NUMEROCAJERO") : VarAutoriza = dr("AUTORIZA") : VarNombreCajero = dr("NOMBRECAJERO") VarComentario = dr("COMENTARIO") : VarPorcedescto1 = dr("PORCEDESCTO1") : VarPorcedescto2 = dr("PORCEDESCTO2") : VarPorIva = dr("PORCEIVA") VarSubtotal = dr("SUBTOTAL") : VarDescuento1 = dr("DESCUENTO1") : VarDescuento2 = dr("DESCUENTO2") : VarImpuesto = dr("IMPUESTO") VarTotal = dr("TOTAL") : VarTipoAplic = dr("TIPOAPLIC") : VarImpreso = dr("IMPRESO") : VarHora = dr("HORA") DtpFechaRegistro.Value = CDate(VarFecha) If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_PARAMETROS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", VarCaja) cmd.Parameters.Add("@OPCION", 1) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtCaja.Text = dr("DESCRIPCION") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_PARAMETROS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", VarVendedor) cmd.Parameters.Add("@OPCION", 2) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtVendedor.Text = dr("USUUSER") End If
367
If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_PARAMETROS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", VarSucursal) cmd.Parameters.Add("@OPCION", 3) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtSucursal.Text = dr("DESCRIPCION") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_ESPECIF", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", VarCliente) cmd.Parameters.Add("@OPCION", 5) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtCodCli.Text = dr("CODPERS") TxtNombreCli.Text = dr("NOMBRE") COD_PER = dr("CODPERS") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If TxtSubtotal.Text = Format(CDbl(VarSubtotal), "$###,##0.00") TxtDescto.Text = Format(CDbl(VarDescuento1), "$###,##0.00") Txtiva.Text = Format(CDbl(VarImpuesto), "$###,##0.00") Txttotal.Text = Format(CDbl(VarTotal), "$###,##0.00") If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_DETALLES", cn)
368
cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", VarNumero) cmd.Parameters.Add("@OPCION", 1) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try I = 1 While dr.Read DetVarCodigoproducto = dr("CODIGOPRODUCTO") : DetVarFecha = dr("FECHA") : DetVarCantidad = dr("CANTIDAD") DetVarTotal1 = dr("TOTAL1") : DetVarTotal2 = dr("TOTAL2") : DetVarDescuento1 = dr("DESCUENTO1") : DetVarDescuento2 = dr("DESCUENTO2") DetVarValordescuento1 = dr("VALORDESCUENTO1") : DetVarValordescuento2 = dr("VALORDESCUENTO2") : DetVarPrecio = dr("PRECIO") DetVarCosto = dr("COSTO") : DetVarIva = dr("IVA") : DetVarHora = dr("HORA") With SprDetalleFactura .Row = I : .Col = 1 : .Text = DetVarDescuento1 .Col = 2 : .Text = DetVarCantidad .Col = 3 : .Text = DetVarCodigoproducto .Col = 5 : .Text = dr("NOMBRE") .Col = 6 : .Text = Format(CDbl(DetVarPrecio), "###,##0.00") .Col = 7 : .Text = Format(CDbl(DetVarTotal1), "###,##0.00") .Col = 9 : .Text = DetVarIva .Col = 10 : .Text = CStr(dr("TIPOMEMBRE")) .Col = 11 : .Text = CInt(dr("DIAS")) .Col = 12 : .Text = DetVarCosto .MaxRows = .MaxRows + 1 End With I = I + 1 End While If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_DETALLES", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", VarNumero) cmd.Parameters.Add("@OPCION", 2)
369
Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try I = 1 While dr.Read PagVarNumerocab = dr("NUMEROCAB") : PagVarTipo = dr("TIPO") : PagVarSucursal = dr("SUCURSAL") : PagVarCaja = dr("CAJA") PagVarNumerocaja = dr("NUMEROCAJA") : PagVarTipoaplic = dr("TIPOAPLIC") : PagVarFecha = dr("FECHA") : PagVarFormapago = dr("FORMAPAGO") PagVarPorcobrar = dr("PORCOBRAR") : PagVarValorrecibido = dr("VALORRECIBIDO") : PagVarCodigotarjeta = dr("CODIGOTARJETA") PagVarNumerotarjeta = dr("NUMEROTARJETA") : PagVarNombrecliente = dr("NOMBRECLIENTE") : PagVarTelefonotarjeta = dr("TELEFONOTARJETA") PagVarLote = dr("LOTE") : PagVarFechacheque = dr("FECHACHEQUE") : PagVarCodigobanco = dr("CODIGOBANCO") : PagVarCodigociudad = dr("CODIGOCIUDAD") PagVarNumerocheque = dr("NUMEROCHEQUE") : PagVarCtacte = dr("CTACTE") : PagVarNombreempleado = dr("NOMBREEMPLEADO") : PagVarCedulaempleado = dr("CEDULAEMPLEADO") PagVarAutorizacioncred = dr("AUTORIZACIONCRED") : PagVarQuienregala = dr("QUIENREGALA") : PagVarBeneficiario = dr("BENEFICIARIO") : PagVarAutorizacionobs = dr("AUTORIZACIONOBS") PagVarFechadevolucion = dr("FECHADEVOLUCION") : PagVarNumerodevolucion = dr("NUMERODEVOLUCION") : PagVarCancelado = dr("CANCELADO") : PagVarHora = dr("HORA") 'LLENAR SPREAD DE PAGOS With SprFormadePago .Col = 1 .Row = I If UCase(Trim(PagVarFormapago)) = "TA" Then .Col = 1 : .Text = "Tarjeta" .Col = 2 : .Text = PagVarPorcobrar .Col = 4 : .Text = PagVarCodigotarjeta .Col = 5 : .Text = PagVarNumerotarjeta .Col = 6 : .Text = PagVarNombrecliente .Col = 7 : .Text = PagVarTelefonotarjeta .Col = 8 : .Text = PagVarLote Call LlenaCampos() End If
370
If UCase(Trim(PagVarFormapago)) = "EF" Then .Col = 1 : .Text = "Efectivo" .Col = 2 : .Text = Format(CDbl(PagVarPorcobrar), "###,##0.00") .Col = 4 : .Text = Format(CDbl(PagVarPorcobrar), "###,##0.00") .Col = 5 : .Text = Format(CDbl(PagVarValorrecibido), "###,##0.00") .Col = 6 : .Text = Math.Round((PagVarValorrecibido - PagVarPorcobrar), 2) Call LlenaCampos() End If If UCase(Trim(PagVarFormapago)) = "CH" Then .Col = 1 : .Text = "Cheque" .Col = 2 : .Text = PagVarPorcobrar .Col = 4 : .Text = PagVarFechacheque .Col = 5 : .Text = PagVarCodigobanco .Col = 6 : .Text = PagVarCodigociudad .Col = 7 : .Text = PagVarNumerocheque .Col = 8 : .Text = PagVarCtacte Call LlenaCampos() End If If UCase(Trim(PagVarFormapago)) = "CR" Then .Col = 1 : .Text = "Credito" .Col = 2 : .Text = Format(CDbl(PagVarPorcobrar), "###,##0.00") .Col = 4 : .Text = PagVarNombreempleado .Col = 5 : .Text = PagVarCedulaempleado .Col = 6 : .Text = PagVarAutorizacioncred Call LlenaCampos() End If .MaxRows = .MaxRows + 1 End With I = I + 1 End While SprFormadePago.Col = 1 SprFormadePago.Row = SprFormadePago.MaxRows If Trim(SprFormadePago.Text) = "" Then SprFormadePago.MaxRows = SprFormadePago.MaxRows - 1 End If Else MsgBox("Factura no existe..!", MsgBoxStyle.Information, "Mensaje") Me.TxtNumero.Focus()
371
End If Else MsgBox("Ingrese Factura a Buscar..!", MsgBoxStyle.Information, "Mensaje") Me.TxtNumero.Focus() End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub LlenaCampos() With SprFormadePago .Row = .ActiveRow : .Col = 1 If Trim(.Text) = "Tarjeta" Then .Col = 4 : CmbTarjetas.SelectedIndex = 0 For I = 0 To Me.CmbTarjetas.Items.Count - 1 If Val(Trim(Microsoft.VisualBasic.Right(CmbTarjetas.Text, 2))) = Val(Trim(.Text)) Then Me.CmbTarjetas.SelectedIndex = I Exit For End If If I <> Me.CmbTarjetas.Items.Count - 1 Then Me.CmbTarjetas.SelectedIndex = I + 1 End If Next .Col = 5 : TxtNumeroTarjeta.Text = .Text .Col = 6 : TxtNombreCliente.Text = .Text .Col = 7 : TxtTelefonos.Text = .Text .Col = 8 : TxtLote.Text = .Text Call GruposVisibles(False, True, False, False, False, False) End If If Trim(.Text) = "Efectivo" Then .Col = 4 : TxtPorCobrar.Text = Format(CDbl(.Text), "$###,##0.00") .Col = 2 : TxtPorCobrar.Text = Format(CDbl(.Text), "$###,##0.00") .Col = 5 : TxtRecibido.Text = Format(CDbl(.Text), "$###,##0.00") .Col = 6 : TxtCambio.Text = Format(CDbl(.Text), "$###,##0.00") Call GruposVisibles(True, False, False, False, False, False) End If If Trim(.Text) = "Cheque" Then .Col = 4 : DtpFechaCheque.Text = .Text .Col = 5 : CmbBancos.SelectedIndex = 0 For I = 0 To Me.CmbBancos.Items.Count - 1 If Val(Trim(Microsoft.VisualBasic.Right(CmbBancos.Text, 2))) = Val(Trim(.Text)) Then
372
Me.CmbBancos.SelectedIndex = I Exit For End If If I <> Me.CmbBancos.Items.Count - 1 Then Me.CmbBancos.SelectedIndex = I + 1 End If Next .Col = 6 : CmbCiudad.SelectedIndex = 0 For I = 0 To Me.CmbCiudad.Items.Count - 1 If Val(Trim(Microsoft.VisualBasic.Right(CmbCiudad.Text, 2))) = Val(Trim(.Text)) Then Me.CmbCiudad.SelectedIndex = I Exit For End If If I <> Me.CmbCiudad.Items.Count - 1 Then Me.CmbCiudad.SelectedIndex = I + 1 End If Next .Col = 7 : TxtCheque.Text = .Text .Col = 8 : TxtCuenta.Text = .Text Call GruposVisibles(False, False, True, False, False, False) End If If Trim(.Text) = "Credito" Then .Col = 4 : TxtNombreEmpleado.Text = .Text .Col = 5 : TxtCedula.Text = .Text .Col = 6 : TxtAutorizacionCred.Text = .Text Call GruposVisibles(False, False, False, True, False, False) End If End With End Sub Private Sub EliminarDatos() If Trim(TxtNumero.Text <> "") Then If Not IsNumeric(TxtNumero.Text) = True Then MsgBox("Introduzca un valor con números") Me.TxtNumero.Focus() Else If MessageBox.Show("Va a Eliminar un Registro de la Base. Desea Continuar?...", "ALERTA", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.Yes Then Call EliminaFactura() End If End If End If End Sub
373
Private Sub EliminaFactura() Dim CodigoCabecera As Integer If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_CAB", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", "NV") cmd.Parameters.Add("@CODIGO2", CODSUCU) cmd.Parameters.Add("@CODIGO3", CODCAJA) cmd.Parameters.Add("@CODIGO4", CInt(TxtNumero.Text)) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then CodigoCabecera = dr("NUMERO") End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_ELI_CABECERA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", "NV") cmd.Parameters.Add("@SUCURSAL", CODSUCU) cmd.Parameters.Add("@CAJA", CODCAJA) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) cmd.Parameters.Add("@OPCION", 1) Try cmd.ExecuteNonQuery() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_ELI_CABECERA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", "NV") cmd.Parameters.Add("@SUCURSAL", CODSUCU) cmd.Parameters.Add("@CAJA", CODCAJA) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) cmd.Parameters.Add("@OPCION", 2) Try
374
cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_ELI_DETALLES", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@NUMEROCAB", CodigoCabecera) cmd.Parameters.Add("@OPCION", 1) Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_ELI_DETALLES", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@NUMEROCAB", CodigoCabecera) cmd.Parameters.Add("@OPCION", 2) Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_ELI_EXISTENCIAS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", "NV") cmd.Parameters.Add("@NUMEROCAB", CodigoCabecera) cmd.Parameters.Add("@SUCURSAL", Trim(CODSUCU)) cmd.Parameters.Add("@CAJA", Str(CODCAJA)) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) Try cmd.ExecuteNonQuery() MsgBox("FACTURA ELIMINADA EXITOSAMENTE") Catch ex As Exception
375
MsgBox(ex.Message) End Try Catch ex As Exception MsgBox(ex.Message) End Try End Sub Private Sub DisplayCurrentRecord() Dim i As Integer Dim s As String Dim CodigoCabecera As Integer If rs.BOF Then rs.MoveFirst() End If If rs.EOF Then rs.MoveLast() End If SprDetalleFactura.MaxRows = 0 SprDetalleFactura.MaxRows = 1 SprFormadePago.MaxRows = 0 SprFormadePago.MaxRows = 1 Me.TxtNumero.Text = rs.Fields("numerocaja").Value.ToString Me.TxtCodCli.Text = rs.Fields("CLIENTE").Value.ToString Me.DtpFechaRegistro.Value = rs.Fields("fecha").Value Me.TxtSubtotal.Text = Format(CDbl(rs.Fields("subtotal").Value.ToString), "$###,##0.00") Me.Txtiva.Text = Format(CDbl(rs.Fields("impuesto").Value.ToString), "$###,##0.00") Me.TxtDescto.Text = Format(CDbl(rs.Fields("descuento1").Value.ToString), "$###,##0.00") Me.Txttotal.Text = Format(CDbl(rs.Fields("total").Value.ToString), "$###,##0.00") CodigoCabecera = rs.Fields("numero").Value If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_PARAMETROS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", rs.Fields("caja").Value) cmd.Parameters.Add("@OPCION", 1) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message)
376
End Try If dr.Read Then TxtCaja.Text = dr("DESCRIPCION") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_PARAMETROS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", rs.Fields("vendedor").Value) cmd.Parameters.Add("@OPCION", 2) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtVendedor.Text = dr("USUUSER") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_PARAMETROS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", rs.Fields("sucursal").Value) cmd.Parameters.Add("@OPCION", 3) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtSucursal.Text = dr("DESCRIPCION") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_ESPECIF", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", rs.Fields("cliente").Value) cmd.Parameters.Add("@OPCION", 5) Try dr = cmd.ExecuteReader() Catch ex As Exception
377
MsgBox(ex.Message) End Try If dr.Read Then TxtNombreCli.Text = dr("NOMBRE") COD_PER = dr("CODPERS") End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_DETALLES", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", CodigoCabecera) cmd.Parameters.Add("@OPCION", 1) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try i = 1 While dr.Read DetVarCodigoproducto = dr("CODIGOPRODUCTO") : DetVarFecha = dr("FECHA") : DetVarCantidad = dr("CANTIDAD") DetVarTotal1 = dr("TOTAL1") : DetVarTotal2 = dr("TOTAL2") : DetVarDescuento1 = dr("DESCUENTO1") : DetVarDescuento2 = dr("DESCUENTO2") DetVarValordescuento1 = dr("VALORDESCUENTO1") : DetVarValordescuento2 = dr("VALORDESCUENTO2") : DetVarPrecio = dr("PRECIO") DetVarCosto = dr("COSTO") : DetVarIva = dr("IVA") : DetVarHora = dr("HORA") With SprDetalleFactura .Row = i : .Col = 1 : .Text = DetVarDescuento1 .Col = 2 : .Text = DetVarCantidad .Col = 3 : .Text = DetVarCodigoproducto .Col = 5 : .Text = dr("NOMBRE") .Col = 6 : .Text = Format(CDbl(DetVarPrecio), "###,##0.00") .Col = 7 : .Text = Format(CDbl(DetVarTotal1), "###,##0.00") .Col = 9 : .Text = DetVarIva .Col = 10 : .Text = CStr(dr("TIPOMEMBRE")) .Col = 11 : .Text = CInt(dr("DIAS")) .Col = 12 : .Text = DetVarCosto .MaxRows = .MaxRows + 1 End With
378
i = i + 1 End While If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_DETALLES", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", CodigoCabecera) cmd.Parameters.Add("@OPCION", 2) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try i = 1 While dr.Read PagVarNumerocab = dr("NUMEROCAB") : PagVarTipo = dr("TIPO") : PagVarSucursal = dr("SUCURSAL") : PagVarCaja = dr("CAJA") PagVarNumerocaja = dr("NUMEROCAJA") : PagVarTipoaplic = dr("TIPOAPLIC") : PagVarFecha = dr("FECHA") : PagVarFormapago = dr("FORMAPAGO") PagVarPorcobrar = dr("PORCOBRAR") : PagVarValorrecibido = dr("VALORRECIBIDO") : PagVarCodigotarjeta = dr("CODIGOTARJETA") PagVarNumerotarjeta = dr("NUMEROTARJETA") : PagVarNombrecliente = dr("NOMBRECLIENTE") : PagVarTelefonotarjeta = dr("TELEFONOTARJETA") PagVarLote = dr("LOTE") : PagVarFechacheque = dr("FECHACHEQUE") : PagVarCodigobanco = dr("CODIGOBANCO") : PagVarCodigociudad = dr("CODIGOCIUDAD") PagVarNumerocheque = dr("NUMEROCHEQUE") : PagVarCtacte = dr("CTACTE") : PagVarNombreempleado = dr("NOMBREEMPLEADO") : PagVarCedulaempleado = dr("CEDULAEMPLEADO") PagVarAutorizacioncred = dr("AUTORIZACIONCRED") : PagVarQuienregala = dr("QUIENREGALA") : PagVarBeneficiario = dr("BENEFICIARIO") : PagVarAutorizacionobs = dr("AUTORIZACIONOBS") PagVarFechadevolucion = dr("FECHADEVOLUCION") : PagVarNumerodevolucion = dr("NUMERODEVOLUCION") : PagVarCancelado = dr("CANCELADO") : PagVarHora = dr("HORA") 'LLENAR SPREAD DE PAGOS With SprFormadePago .Col = 1 .Row = i If UCase(Trim(PagVarFormapago)) = "TA" Then .Col = 1 : .Text = "Tarjeta"
379
.Col = 2 : .Text = PagVarPorcobrar .Col = 4 : .Text = PagVarCodigotarjeta .Col = 5 : .Text = PagVarNumerotarjeta .Col = 6 : .Text = PagVarNombrecliente .Col = 7 : .Text = PagVarTelefonotarjeta .Col = 8 : .Text = PagVarLote Call LlenaCampos() End If If UCase(Trim(PagVarFormapago)) = "EF" Then .Col = 1 : .Text = "Efectivo" .Col = 2 : .Text = Format(CDbl(PagVarPorcobrar), "###,##0.00") .Col = 4 : .Text = Format(CDbl(PagVarPorcobrar), "###,##0.00") .Col = 5 : .Text = Format(CDbl(PagVarValorrecibido), "###,##0.00") .Col = 6 : .Text = Math.Round((PagVarValorrecibido - PagVarPorcobrar), 2) Call LlenaCampos() End If If UCase(Trim(PagVarFormapago)) = "CH" Then .Col = 1 : .Text = "Cheque" .Col = 2 : .Text = PagVarPorcobrar .Col = 4 : .Text = PagVarFechacheque .Col = 5 : .Text = PagVarCodigobanco .Col = 6 : .Text = PagVarCodigociudad .Col = 7 : .Text = PagVarNumerocheque .Col = 8 : .Text = PagVarCtacte Call LlenaCampos() End If If UCase(Trim(PagVarFormapago)) = "CR" Then .Col = 1 : .Text = "Credito" .Col = 2 : .Text = Format(CDbl(PagVarPorcobrar), "###,##0.00") .Col = 4 : .Text = PagVarNombreempleado .Col = 5 : .Text = PagVarCedulaempleado .Col = 6 : .Text = PagVarAutorizacioncred Call LlenaCampos() End If .MaxRows = .MaxRows + 1 End With i = i + 1 End While SprFormadePago.Col = 1 SprFormadePago.Row = SprFormadePago.MaxRows If Trim(SprFormadePago.Text) = "" Then SprFormadePago.MaxRows = SprFormadePago.MaxRows - 1
380
End If End Sub 'Procedimiento de evento Reporte_PrintPage. Construyendo el informe Private Sub Reporte_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles Reporte.PrintPage Dim NombreCliente As String Dim Cedula As String Dim Vendedor As String Dim equis As String Dim fecha As Date Dim total As Double 'objeto PrintPageEventArgs, cuyas propiedades MarginBounds, Graphics, ' HasMorePage, etc.. no ayudarán a configurar el texto para la impresión ContenidoDelTexto = e NombreCliente = Trim(Mid(Me.TxtNombreCli.Text, 1, 22)) fecha = Format(Me.DtpFechaRegistro.Value, "dd/MMMM/yyyy") ContenidoDelTexto.Graphics.DrawString("Fecha: " & fecha, New Font("Arial", 8), Brushes.Black, 0, 0) ContenidoDelTexto.Graphics.DrawString("Cliente: " & NombreCliente, New Font("Arial", 8), Brushes.Black, 0, 10) ContenidoDelTexto.Graphics.DrawString(" CI: " & Me.TxtCodCli.Text, New Font("Arial", 8), Brushes.Black, 200, 10) ContenidoDelTexto.Graphics.DrawString("Vendedor: " & Me.TxtVendedor.Text, New Font("Arial", 8), Brushes.Black, 0, 20) ContenidoDelTexto.Graphics.DrawString("I Cant. Producto P.Total Dsc.", New Font("Arial", 9), Brushes.Black, 0, 40) ContenidoDelTexto.Graphics.DrawString("========================================", New Font("Arial", 9), Brushes.Black, 0, 50) For I = 1 To Me.SprDetalleFactura.MaxRows Me.SprDetalleFactura.Col = 5 Me.SprDetalleFactura.Row = I If Me.SprDetalleFactura.Text = "" Then Exit For End If Me.SprDetalleFactura.Col = 9 Me.SprDetalleFactura.Row = I If Me.SprDetalleFactura.Text = "12" Then
381
equis = "*" Else equis = " " End If ContenidoDelTexto.Graphics.DrawString(equis, New Font("Arial", 7), Brushes.Black, 0, (20 * I) + 40) Me.SprDetalleFactura.Col = 2 : Me.SprDetalleFactura.Row = I ContenidoDelTexto.Graphics.DrawString(Me.SprDetalleFactura.Text, New Font("Arial", 7), Brushes.Black, 16, (20 * I) + 40) Me.SprDetalleFactura.Col = 5 : Me.SprDetalleFactura.Row = I ContenidoDelTexto.Graphics.DrawString(Trim(Mid(Me.SprDetalleFactura.Text, 1, 18)), New Font("Arial", 7), Brushes.Black, 48, (20 * I) + 40) ContenidoDelTexto.Graphics.DrawString("$", New Font("Arial", 7), Brushes.Black, 208, (20 * I) + 40) Me.SprDetalleFactura.Col = 7 : Me.SprDetalleFactura.Row = I ContenidoDelTexto.Graphics.DrawString(Me.SprDetalleFactura.Text, New Font("Arial", 7), Brushes.Black, 224, (20 * I) + 40) Me.SprDetalleFactura.Col = 1 : Me.SprDetalleFactura.Row = I ContenidoDelTexto.Graphics.DrawString(Me.SprDetalleFactura.Text, New Font("Arial", 7), Brushes.Black, 260, (20 * I) + 40) Me.SprDetalleFactura.Col = 3 : Me.SprDetalleFactura.Row = I ContenidoDelTexto.Graphics.DrawString("Codigo: " & Me.SprDetalleFactura.Text, New Font("Arial", 7), Brushes.Black, 0, (20 * I) + 50) Next ContenidoDelTexto.Graphics.DrawString("========" & Me.SprDetalleFactura.Text, New Font("Arial", 9), Brushes.Black, 190, (20 * I) + 60) ContenidoDelTexto.Graphics.DrawString(" Subtotal: " & Format(CDbl(Me.Txttotal.Text), "######.00"), New Font("Arial", 8), Brushes.Black, 0, (20 * I) + 70) ContenidoDelTexto.Graphics.DrawString("========" & Me.SprDetalleFactura.Text, New Font("Arial", 9), Brushes.Black, 190, (20 * I) + 80) ContenidoDelTexto.Graphics.DrawString(" Total a Pagar: " & Format(CDbl(Me.Txttotal.Text), "######.00"), New Font("Arial", 8), Brushes.Black, 0, (20 * I) + 90) ContenidoDelTexto.Graphics.DrawString(" Forma de Pago", New Font("Arial", 8), Brushes.Black, 0, (20 * I) + 110) For J = 1 To Me.SprFormadePago.MaxRows Me.SprFormadePago.Col = 2 Me.SprFormadePago.Row = J If Me.SprFormadePago.Text = "" Then
382
Exit For End If Me.SprFormadePago.Col = 1 : Me.SprFormadePago.Row = J ContenidoDelTexto.Graphics.DrawString(Me.SprFormadePago.Text & " : ", New Font("Arial", 8), Brushes.Black, 16, (10 * I) + 200) Me.SprFormadePago.Col = 2 : Me.SprFormadePago.Row = J ContenidoDelTexto.Graphics.DrawString(Me.SprFormadePago.Text, New Font("Arial", 8), Brushes.Black, 120, (10 * I) + 200) I = I + 1 Next ContenidoDelTexto.Graphics.DrawString(" Gracias por Preferirnos", New Font("Arial", 9), Brushes.Black, 0, (20 * I) + 170) ContenidoDelTexto.Graphics.DrawString(" Salida la mercaderia", New Font("Arial", 9), Brushes.Black, 0, (20 * I) + 180) ContenidoDelTexto.Graphics.DrawString(" No se aceptan devoluciones", New Font("Arial", 9), Brushes.Black, 0, (20 * I) + 190) ContenidoDelTexto.Graphics.DrawString(" EPSON TM-U200PD/MODELO", New Font("Arial", 9), Brushes.Black, 0, (20 * I) + 200) ContenidoDelTexto.Graphics.DrawString(" M119D-SERIE 2ZUK113232", New Font("Arial", 9), Brushes.Black, 0, (20 * I) + 210) 'Indica que no hay más páginas a imprimir ContenidoDelTexto.HasMorePages = False End Sub Private Sub ImprimirDatos() If Me.TxtNumero.Text <> "" And Me.TxtCodCli.Text <> "" And Me.TxtSubtotal.Text <> "" And Me.Txttotal.Text <> "" And Me.TxtDescto.Text <> "" And Me.Txtiva.Text <> "" Then Reporte.Print() Else MsgBox("No Existen datos a imprimir...", vbInformation, "A T E N C I O N") Me.TxtNumero.Focus() End If End Sub Private Sub TlbBotones_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles TlbBotones.ButtonClick Select Case e.Button.Tag Case "Ingresar" Call IngresarDatos() Case "Grabar" Call GrabarDatos()
383
Case "Modificar" 'Call ModificarDatos() Case "Eliminar" Call EliminarDatos() Case "Buscar" 'Call buscardatos() Case "Deshacer" Call DeshacerDatos() Case "Imprimir" Call ImprimirDatos() Case "Salir" Call SalirDatos() End Select End Sub Private Sub valida_campos(ByRef cadena As Boolean) cadena = True With SprFormadePago .Col = 1 .Row = .ActiveRow If Trim(.Text) = "Tarjeta" Then Call LlenaSpread() If TxtNumeroTarjeta.Text = "" Then MsgBox("Ingrese el numero de tarjeta...", vbInformation, "A T E N C I O N") TxtNumeroTarjeta.Focus() cadena = False Exit Sub End If If TxtNombreCliente.Text = "" Then MsgBox("Ingrese el nombre del Cliente...", vbInformation, "A T E N C I O N") TxtNombreCliente.Focus() cadena = False Exit Sub End If If TxtTelefonos.Text = "" Then MsgBox("Ingrese el Telefono...", vbInformation, "A T E N C I O N") TxtTelefonos.Focus() cadena = False Exit Sub End If If TxtLote.Text = "" Then MsgBox("Ingrese el lote...", vbInformation, "A T E N C I O N")
384
TxtLote.Focus() cadena = False Exit Sub End If End If If Trim(.Text) = "Efectivo" Then Call LlenaSpread() If TxtRecibido.Text = "" Then MsgBox("No ha Ingresado el valor a pagar...", vbInformation, "A T E N C I O N") TxtRecibido.Focus() cadena = False Exit Sub End If End If If Trim(.Text) = "Cheque" Then Call LlenaSpread() If TxtCheque.Text = "" Then MsgBox("Ingrese el numero de cheque...", vbInformation, "A T E N C I O N") TxtCheque.Focus() cadena = False Exit Sub End If If TxtCuenta.Text = "" Then MsgBox("Ingrese el numero de cuenta...", vbInformation, "A T E N C I O N") TxtCuenta.Focus() cadena = False Exit Sub End If End If If Trim(.Text) = "Credito" Then Call LlenaSpread() If TxtNombreEmpleado.Text = "" Then MsgBox("Ingrese el nombre del Empleado...", vbInformation, "A T E N C I O N") TxtNombreEmpleado.Focus() cadena = False Exit Sub End If If TxtCedula.Text = "" Then MsgBox("Ingrese la cedula del Empleado...", vbInformation, "A T E N C I O N")
385
TxtCedula.Focus() cadena = False Exit Sub End If If TxtAutorizacionCred.Text = "" Then MsgBox("No ha Ingresado el valor a pagar...", vbInformation, "A T E N C I O N") TxtRecibido.Focus() cadena = False Exit Sub End If End If End With End Sub Private Sub Verifica_Existencias() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If With SprDetalleFactura cmd = New SqlClient.SqlCommand("VERIFICA_EXISTENCIA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", CInt(xcodigo)) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then CantidadExistencia = dr("CANTIDAD") Else CantidadExistencia = 0 End If End With If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If End Sub Private Sub Btn_Autoriza_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Autoriza.Click If Me.Btn_Autoriza.Enabled = True Then GroupBox4.Enabled = True Else GroupBox4.Enabled = False End If
386
End Sub End Class
* Clase Frm_pro_ingreso.vb
Imports System.Data Imports System.Data.OleDb Imports System.Data.SqlClient Imports System.Drawing.Printing Imports CrystalDecisions.Shared Public Class Frm_pro_ingreso Inherits System.Windows.Forms.Form Private rs As ADODB.Recordset Dim ContenidoDelTexto As PrintPageEventArgs Dim Reporte As New PrintDocument Dim COD_PROD As Integer Dim iva, TotalG As Double Public MODIFICA As Boolean Dim CODCAJA, COD_PRO, DIASMEMBRESIA, FILA, I As Integer 'VARIABLES PARA BUSQUEDA DE INGRESO CABECERA Dim VarFecha As Date Dim VarHora As DateTime Dim VarTipoAplic, VarImpreso, VarNombreCajero As String Dim VarSubtotalCosto, VarImpuestoCosto, VarTotalCosto As Double Dim VarSubtotalPrecio, VarImpuestoPrecio, VarTotalPrecio As Double Dim VarTipo, VarCaja, VarProveedor, VarUsuario, VarComentario, VarTipoIngreso As String Dim VarNumero, VarSucursal, VarSucursal1, VarNumeroCajero, VarNumeroAplic As Integer 'VARIABLES PARA BUSQUEDA DE INGRESO DETALLES Dim DetVarFecha As Date Dim DetVarHora As DateTime Dim DetVarTipo, DetVarCodigoproducto, DetVarBodega As String Dim DetVarNumerocab, DetVarNumerocaja, DetVarCantidad As Integer Dim DetVarTotalPrecio, DetVarTotalCosto, DetVarPrecio, DetVarCosto, DetVarIva As Decimal
387
Private Sub Frm_pro_ingreso_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call LlenaParametros() : Call LlenaCombos() : Call Deshabilita() If Not (rs.BOF) Or Not (rs.EOF) Then : rs.MoveLast() : Call DisplayCurrentRecord() : End If TxtNumero.Focus() End Sub Private Sub IngresarDatos() Call Limpia() : Call ObtieneSecuencia() : Call Habilita() : Me.TxtProveedor.Focus() End Sub Private Sub GrabarDatos() Dim CodigoCabecera, Cantidad As Integer Dim Precio, Costo, TotalPagos As Double Dim MEMBRESIA As Boolean Dim FormaPago As String TotalPagos = 0 If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If If Me.SprIngresoEgreso.MaxRows >= 1 Then If MODIFICA = True Then MsgBox("EL INGRESO NO PUEDE SER MODIFICADO") Else If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "INV_ING_CABECERA" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", "IN") cmd.Parameters.Add("@SUCURSAL", Val(Trim(Microsoft.VisualBasic.Right(Me.CmbSucursalOrigen.Text, 4)))) cmd.Parameters.Add("@CAJA", Str(CODCAJA)) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) cmd.Parameters.Add("@SUCURSAL1", Val(Trim(Microsoft.VisualBasic.Right(Me.CmbSucursalDestino.Text, 4)))) cmd.Parameters.Add("@TIPOINGRESO", Trim(Me.CmbTipoIngreso.Text))
388
cmd.Parameters.Add("@PROVEEDOR", Trim(Me.TxtProveedor.Text)) cmd.Parameters.Add("@TIPOAPLIC", "SA") cmd.Parameters.Add("@NUMEROAPLIC", Trim(Me.TxtReferencia.Text)) cmd.Parameters.Add("@SUBTOTALPRECIO", CDbl(TxtSubtotalPrecio.Text)) cmd.Parameters.Add("@IVAPRECIO", CDbl(TxtIvaPrecio.Text)) cmd.Parameters.Add("@TOTALPRECIO", CDbl(TxtTotalPrecio.Text)) cmd.Parameters.Add("@SUBTOTALCOSTO", CDbl(TxtSubtotalCosto.Text)) cmd.Parameters.Add("@IVACOSTO", CDbl(TxtIvaCosto.Text)) cmd.Parameters.Add("@TOTALCOSTO", CDbl(TxtTotalCosto.Text)) cmd.Parameters.Add("@FECHA", Me.DtpFechaRegistro.Value) cmd.Parameters.Add("@HORA", Today.Hour) cmd.Parameters.Add("@OBSERVACIONES", Trim(Me.TxtObservaciones.Text)) cmd.Parameters.Add("@USUARIO", Cod_Usu) cmd.Parameters.Add("@IMPRESO", False) cmd.Parameters.Add("@ELIMINADO", False) Try cmd.ExecuteNonQuery() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("INV_BUSCA_CAB", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", "IN") cmd.Parameters.Add("@CODIGO2", CODSUCU) cmd.Parameters.Add("@CODIGO3", CODCAJA) cmd.Parameters.Add("@CODIGO4", CInt(TxtNumero.Text)) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then CodigoCabecera = dr("NUMERO") End If If Not dr.IsClosed Then : dr.Close() : End If
389
If cn.State = ConnectionState.Closed Then : cn.Open() : End If Catch ex As Exception MsgBox(ex.Message) End Try '********************INGRESA DETALLE With SprIngresoEgreso For FILA = 1 To .MaxRows - 1 cmd.CommandText = "INV_ING_DETALLE" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@NUMEROCAB", CodigoCabecera) cmd.Parameters.Add("@TIPO", "IN") cmd.Parameters.Add("@SUCURSAL", Val(Trim(CODSUCU))) cmd.Parameters.Add("@CAJA", Str(CODCAJA)) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) .Col = 3 : .Row = FILA cmd.Parameters.Add("@CODIGOPRODUCTO", CStr(.Text)) .Col = 2 : Cantidad = CInt(.Text) cmd.Parameters.Add("@CANTIDAD", Cantidad) .Col = 7 : Precio = CDbl(.Text) .Col = 8 : Costo = CDbl(.Text) cmd.Parameters.Add("@PRECIO", CDbl(Precio)) cmd.Parameters.Add("@COSTO", CDbl(Costo)) cmd.Parameters.Add("@TOTALP", Cantidad * CDbl(Precio)) cmd.Parameters.Add("@TOTALC", Cantidad * CDbl(Costo)) .Col = 11 : cmd.Parameters.Add("@IVA", CDbl(.Text)) cmd.Parameters.Add("@FECHA", DtpFechaRegistro.Value) cmd.Parameters.Add("@HORA", Today) Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try '*********** INGRESA ARCHIVO DE EXISTENCIAS cmd.CommandText = "FAC_ING_EXISTENCIAS" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", "CO") cmd.Parameters.Add("@NUMEROCAB", CodigoCabecera) cmd.Parameters.Add("@SUCURSAL", Trim(CODSUCU)) cmd.Parameters.Add("@CAJA", Str(CODCAJA))
390
cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) .Col = 3 : .Row = FILA cmd.Parameters.Add("@CODIGOPRODUCTO", CStr(.Text)) cmd.Parameters.Add("@FECHA", DtpFechaRegistro.Value) .Col = 2 : Cantidad = CInt(.Text) cmd.Parameters.Add("@CANTIDAD", Cantidad) Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try '*** TERMINA ARCHIVO DE EXISTENCIAS Next End With Call GrabaSecuencia() : Call Deshabilita() Try cmd.ExecuteNonQuery() MsgBox("INGRESO GENERADO EXITOSAMENTE") Catch ex As Exception MsgBox(ex.Message) End Try End If Else MsgBox("Faltan datos de llenar", MsgBoxStyle.Information, "Mensaje") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub SalirDatos() If Me.TlbBotones.Buttons(0).Enabled = False Then If MessageBox.Show("Esta en modo de Ingreso. Desea Cancelar la Operación?...", "ALERTA", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.Yes Then Call Limpia() : Call Deshabilita() : Me.TxtNumero.Focus() : Me.Close() Else If SprIngresoEgreso.Enabled = True Then SprIngresoEgreso.Focus() : SprIngresoEgreso.SetActiveCell(3, SprIngresoEgreso.MaxRows) Else
391
TxtNumero.Focus() End If End If Else Me.Close() End If End Sub Private Sub DeshacerDatos() Call Limpia() : Call Deshabilita() : Me.TxtNumero.Focus() End Sub Private Sub TxtReferencia_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtReferencia.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) And Trim(TxtReferencia.Text) <> "" Then SprIngresoEgreso.Enabled = True SprIngresoEgreso.Focus() : SprIngresoEgreso.SetActiveCell(3, SprIngresoEgreso.ActiveRow) Else If e.KeyChar.IsDigit(e.KeyChar) Then e.Handled = False ElseIf e.KeyChar.IsControl(e.KeyChar) Then e.Handled = False Else e.Handled = True End If End If End Sub Private Sub SprIngresoEgreso_KeyPressEvent(ByVal sender As Object, ByVal e As AxFPSpread._DSpreadEvents_KeyPressEvent) Handles SprIngresoEgreso.KeyPressEvent Dim CostoU, PrecioU, TotalCU, TotalPU As Double Dim Cantidad As Integer If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If With SprIngresoEgreso If .ActiveCol = 2 Then If e.keyAscii = 13 Then .Row = .ActiveRow : .Col = 3 If Trim(.Text) <> "" Then
392
.Col = 2 : Cantidad = CDbl(.Text) .Col = 7 : PrecioU = CDbl(.Text) .Col = 8 : CostoU = CDbl(.Text) TotalCU = (CostoU * Cantidad) TotalPU = (PrecioU * Cantidad) .SetText(9, .ActiveRow, Format(CDbl(TotalPU), "###,##0.0000")) .SetText(10, .ActiveRow, Format(CDbl(TotalCU), "###,##0.0000")) .SetText(11, .ActiveRow, CDbl(dr("PROIVA"))) Call CalculaTotales() End If End If End If If .ActiveCol = 3 Then If e.keyAscii = 13 Then Dim PROXIVA As Double TablaBuscada = "PRODUCTO_SERV" .Row = .ActiveRow : .Col = 3 : S_Codigo = .Text If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("FAC_CONS_ESPEC", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", CDbl(S_Codigo)) cmd.Parameters.Add("@OPCION", 2) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then .SetText(5, .ActiveRow, dr("NOMBRE")) .SetText(7, .ActiveRow, Format(CDbl(dr("PROPRECIO")), "###,##0.0000")) .SetText(8, .ActiveRow, Format(CDbl(dr("COSTO")), "###,##0.0000")) .Row = .ActiveRow .Col = 2 : Cantidad = CDbl(.Text) .Col = 7 : PrecioU = CDbl(.Text) .Col = 8 : CostoU = CDbl(.Text) TotalCU = (CostoU * Cantidad) TotalPU = (PrecioU * Cantidad)
393
.SetText(9, .ActiveRow, Format(CDbl(TotalPU), "###,##0.0000")) .SetText(10, .ActiveRow, Format(CDbl(TotalCU), "###,##0.0000")) .SetText(11, .ActiveRow, CDbl(dr("PROIVA"))) .Col = 3 : .Row = .MaxRows If Trim(.Text) Then .MaxRows = .MaxRows + 1 Else .SetActiveCell(3, .ActiveRow) End If Call CalculaTotales() .Row = .MaxRows : .Col = 2 : .Text = "1" .SetActiveCell(3, .MaxRows) : .Focus() Else .SetActiveCell(3, .ActiveRow) : .Focus() .Col = 3 : .Row = .ActiveRow : .Text = "" MsgBox("Producto o Servicio no existe..!", MsgBoxStyle.Information, "Mensaje") End If End If End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End With End Sub Private Sub SprIngresoEgreso_ButtonClicked(ByVal sender As Object, ByVal e As AxFPSpread._DSpreadEvents_ButtonClickedEvent) Handles SprIngresoEgreso.ButtonClicked Dim CostoU, PrecioU, TotalCU, TotalPU As Double Dim Cantidad As Integer If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If With SprIngresoEgreso If .ActiveCol = 4 Then Dim frm_busq As New Frm_Buscar S_Codigo = "" : TablaBuscada = "VIS_CONS_PRODCOMPO" Campo1 = "CODPRODSERV" Campo2 = "NOMBRE" Campo3 = "Busqueda Por Producto" frm_busq.ShowDialog()
394
If S_Codigo <> "" Then .SetText(3, .ActiveRow, S_Codigo) With SprIngresoEgreso If S_Codigo <> "" Then If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("FAC_CONS_ESPEC", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", CDbl(S_Codigo)) cmd.Parameters.Add("@OPCION", 2) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then .Row = .ActiveRow .SetText(5, .ActiveRow, dr("NOMBRE")) .SetText(7, .ActiveRow, Format(CDbl(dr("PROPRECIO")), "###,##0.0000")) .SetText(8, .ActiveRow, Format(CDbl(dr("COSTO")), "###,##0.0000")) .Col = 2 : Cantidad = CDbl(.Text) .Col = 7 : PrecioU = CDbl(.Text) .Col = 8 : CostoU = CDbl(.Text) TotalCU = (CostoU * Cantidad) TotalPU = (PrecioU * Cantidad) .SetText(9, .ActiveRow, Format(CDbl(TotalPU), "###,##0.0000")) .SetText(10, .ActiveRow, Format(CDbl(TotalCU), "###,##0.0000")) .SetText(11, .ActiveRow, CDbl(dr("PROIVA"))) .MaxRows = .MaxRows + 1 Call CalculaTotales() .Row = .MaxRows : .Col = 2 : .Text = "1" .SetActiveCell(3, .MaxRows) : .Focus() Else .SetActiveCell(2, .ActiveRow) : .Focus() .Col = 3 : .Row = .ActiveRow : .Text = ""
395
MsgBox("Producto o Servicio no existe..!", MsgBoxStyle.Information, "Mensaje") End If Else MsgBox("Ingrese código de Producto o Servicio..!", MsgBoxStyle.Information, "Mensaje") End If End With End If End If End With If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub SprIngresoEgreso_KeyDownEvent(ByVal sender As Object, ByVal e As AxFPSpread._DSpreadEvents_KeyDownEvent) Handles SprIngresoEgreso.KeyDownEvent With SprIngresoEgreso If e.keyCode = Keys.Delete Then If .MaxRows > 1 Then If MessageBox.Show("Esta seguro de Eliminar la Linea?...", "Alerta", MessageBoxButtons.YesNo) = DialogResult.Yes Then .Row = .ActiveRow : .Col = 3 .Action = FPSpread.ActionConstants.ActionDeleteRow.ActionDeleteRow : .MaxRows = .MaxRows - 1 .SetActiveCell(3, .MaxRows) : .Focus() : Call CalculaTotales() End If End If End If End With End Sub Private Sub TxtNumero_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtNumero.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then Call CargarIngreso() End If End Sub Private Sub CalculaTotales()
396
Dim ValIvaTC, ValIvaTP, ValIvaCosto, ValIvaPrecio, SubtotalCosto, SubtotalPrecio, TotalP, TotalC, TotalGP, TotalGC, CostoU, PrecioU, TotalCU, TotalPU As Double Dim Cantidad As Integer TotalG = 0 With SprIngresoEgreso For I = 1 To .MaxRows - 1 .Col = 12 : .Row = I If .Value = 0 Then .Row = I .Col = 2 : Cantidad = CDbl(.Text) .Col = 7 : PrecioU = CDbl(.Text) TotalPU = PrecioU * Cantidad SubtotalPrecio = Math.Round(SubtotalPrecio, 4) + Math.Round(TotalPU, 4) .Col = 8 : CostoU = CDbl(.Text) TotalCU = CostoU * Cantidad SubtotalCosto = Math.Round(SubtotalCosto, 4) + Math.Round(TotalCU, 4) .Col = 11 If Val(.Text) = 1 Then ValIvaCosto = Math.Round(TotalCU, 4) * iva ValIvaPrecio = Math.Round(TotalPU, 4) * iva Else ValIvaCosto = 0 ValIvaPrecio = 0 End If TotalP = Math.Round(SubtotalPrecio, 4) ValIvaTP = Math.Round(ValIvaTP, 4) + Math.Round(ValIvaPrecio, 4) TotalGP = Math.Round(TotalP, 4) + Math.Round(ValIvaTP, 4) TotalC = Math.Round(SubtotalCosto, 4) ValIvaTC = Math.Round(ValIvaTC, 4) + Math.Round(ValIvaCosto, 4) TotalGC = Math.Round(TotalC, 4) + Math.Round(ValIvaTC, 4) End If Next End With TxtSubtotalPrecio.Text = Format(TotalP, "$###,##0.0000") TxtIvaPrecio.Text = Format(ValIvaTP, "$###,##0.0000") TxtTotalPrecio.Text = Format(TotalGP, "$###,##0.0000") TxtSubtotalCosto.Text = Format(TotalC, "$###,##0.0000") TxtIvaCosto.Text = Format(ValIvaTC, "$###,##0.0000")
397
TxtTotalCosto.Text = Format(TotalGC, "$###,##0.0000") End Sub Private Sub LlenaParametros() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_GEN", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@OPCION", 11) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then CODCAJA = dr("CODCAJA") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If 'CARGO VALOR DE IVA cmd = New SqlClient.SqlCommand("SEG_CONS_PARAMETRO", cn) cmd.CommandType = CommandType.StoredProcedure Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then iva = dr("PORCENTAJEIVA") End If Me.TxtUsuario.Text = CStr(usu) If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub LlenaCombos() 'Llena los Bancos Me.CmbSucursalDestino.Text = "" : Me.CmbSucursalOrigen.Text = "" If Not dr.IsClosed Then : dr.Close() : End If
398
If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_GEN", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@OPCION", 2) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try While dr.Read Me.CmbSucursalDestino.Items.Add(dr("DESCRIPCION") & Space(50) & dr("CODSUCUR")) Me.CmbSucursalOrigen.Items.Add(dr("DESCRIPCION") & Space(50) & dr("CODSUCUR")) End While Me.CmbSucursalDestino.SelectedIndex = (0) : Me.CmbSucursalOrigen.SelectedIndex = (0) For I = 0 To Me.CmbSucursalOrigen.Items.Count - 1 If Val(Trim(Microsoft.VisualBasic.Right(Me.CmbSucursalOrigen.Text, 4))) = CODSUCU Then Me.CmbSucursalOrigen.SelectedIndex = I : Exit For End If If I <> Me.CmbSucursalOrigen.Items.Count - 1 Then Me.CmbSucursalOrigen.SelectedIndex = I + 1 End If Next If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub Habilita() Me.TlbBotones.Buttons(0).Enabled = False : Me.TlbBotones.Buttons(2).Enabled = True Me.TlbBotones.Buttons(6).Enabled = False : Me.TlbBotones.Buttons(12).Enabled = False Me.TlbBotones.Buttons(10).Enabled = True : Me.TlbBotones.Buttons(4).Enabled = False Me.TlbBotones.Buttons(8).Enabled = False : Me.TlbBotones.Buttons(14).Enabled = True Me.TxtNumero.Enabled = False : Me.CmbSucursalDestino.Enabled = True Me.TxtReferencia.Enabled = True : Me.TxtProveedor.Enabled = True
399
End Sub Private Sub Deshabilita() Me.TlbBotones.Buttons(0).Enabled = True : Me.TlbBotones.Buttons(2).Enabled = False Me.TlbBotones.Buttons(6).Enabled = True : Me.TlbBotones.Buttons(12).Enabled = True Me.TlbBotones.Buttons(10).Enabled = False : Me.TlbBotones.Buttons(4).Enabled = True Me.TlbBotones.Buttons(8).Enabled = True : Me.TlbBotones.Buttons(14).Enabled = True Me.SprIngresoEgreso.Enabled = False : Me.DtpFechaRegistro.Enabled = False Me.TxtNumero.Enabled = True : Me.CmbSucursalDestino.Enabled = False Me.TxtReferencia.Enabled = False : Me.TxtProveedor.Enabled = False End Sub Private Sub Limpia() Me.DtpFechaRegistro.Value = Today() : Me.TxtNumero.Text = "" Me.SprIngresoEgreso.MaxRows = 0 : Me.SprIngresoEgreso.MaxRows = 1 Me.SprIngresoEgreso.Row = Me.SprIngresoEgreso.MaxRows Me.SprIngresoEgreso.Col = 2 : Me.SprIngresoEgreso.Text = 1 Me.TxtSubtotalCosto.Text = "" : Me.TxtIvaCosto.Text = "" : Me.TxtTotalCosto.Text = "" Me.TxtSubtotalPrecio.Text = "" : Me.TxtIvaPrecio.Text = "" : Me.TxtTotalPrecio.Text = "" Me.TxtProveedor.Text = "" : Me.TxtNombreProveedor.Text = "" : Me.TxtReferencia.Text = "" End Sub Private Sub ObtieneSecuencia() Dim CodigoSuc As Integer CodigoSuc = Val(Trim(Microsoft.VisualBasic.Right(SUCURSAL, 3))) If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_SECUENCIA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", CStr("IN")) cmd.Parameters.Add("@CODIGO2", CInt(CodigoSuc)) cmd.Parameters.Add("@CODIGO3", CInt(CODCAJA))
400
Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtNumero.Text = dr("NUMERO") + 1 Else TxtNumero.Text = "1" End If dr.Close() End Sub Private Sub GrabaSecuencia() Dim CodigoSuc As Integer CodigoSuc = Val(Trim(Microsoft.VisualBasic.Right(SUCURSAL, 3))) If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_SECUENCIA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", CStr("IN")) cmd.Parameters.Add("@CODIGO2", CInt(CodigoSuc)) cmd.Parameters.Add("@CODIGO3", CInt(CODCAJA)) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "FAC_MOD_SECUENCIA" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", CStr("IN")) cmd.Parameters.Add("@SUCURSAL", CInt(CodigoSuc)) cmd.Parameters.Add("@CAJA", CInt(CODCAJA)) cmd.Parameters.Add("@NUMERO", CInt(Val(TxtNumero.Text))) Try cmd.ExecuteNonQuery()
401
dr.Close() Catch ex As Exception MsgBox(ex.Message) End Try Else If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "FAC_ING_SECUENCIA" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", CStr("IN")) cmd.Parameters.Add("@SUCURSAL", CInt(CodigoSuc)) cmd.Parameters.Add("@CAJA", CInt(CODCAJA)) cmd.Parameters.Add("@NUMERO", 1) Try cmd.ExecuteNonQuery() dr.Close() Catch ex As Exception MsgBox(ex.Message) End Try End If End Sub Public Sub CargarIngreso() If Trim(TxtNumero.Text) <> "" Then SprIngresoEgreso.MaxRows = 0 : SprIngresoEgreso.MaxRows = 1 If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("INV_BUSCA_CABECERA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", CStr("IN")) cmd.Parameters.Add("@CODIGO2", CODSUCU) cmd.Parameters.Add("@CODIGO3", CODCAJA) cmd.Parameters.Add("@CODIGO4", CInt(Trim(TxtNumero.Text))) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then
402
VarNumero = dr("NUMERO") : VarTipo = dr("TIPO") : VarSucursal = dr("SUCURSAL") : VarSucursal1 = dr("SUCURSAL1") : VarCaja = dr("CAJA") VarUsuario = dr("USUARIO") : VarComentario = dr("OBSERVACIONES") : VarTipoIngreso = dr("TIPOINGRESO") VarSubtotalPrecio = dr("SUBTOTALPRECIO") : VarImpuestoPrecio = dr("IVAPRECIO") : VarTotalPrecio = dr("TOTALPRECIO") : VarTipoAplic = dr("TIPOAPLIC") VarSubtotalCosto = dr("SUBTOTALCOSTO") : VarImpuestoCosto = dr("IVACOSTO") : VarTotalCosto = dr("TOTALCOSTO") VarNumeroAplic = dr("NUMEROAPLIC") : VarImpreso = dr("IMPRESO") : VarFecha = dr("FECHA") : VarHora = dr("HORA") DtpFechaRegistro.Value = CDate(VarFecha) Me.TxtProveedor.Text = dr("proveedor") Call BuscaNombreProveedor() If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_PARAMETROS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", VarUsuario) cmd.Parameters.Add("@OPCION", 2) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtUsuario.Text = dr("USUUSER") End If For I = 0 To Me.CmbTipoIngreso.Items.Count - 1 If Trim(CmbTipoIngreso.Text) = VarTipoIngreso Then Me.CmbTipoIngreso.SelectedIndex = I : Exit For End If If I <> Me.CmbTipoIngreso.Items.Count - 1 Then Me.CmbTipoIngreso.SelectedIndex = I + 1 End If Next For I = 0 To Me.CmbSucursalOrigen.Items.Count - 1 If Val(Trim(Microsoft.VisualBasic.Right(CmbSucursalOrigen.Text, 4))) = VarSucursal Then
403
Me.CmbSucursalOrigen.SelectedIndex = I : Exit For End If If I <> Me.CmbSucursalOrigen.Items.Count - 1 Then Me.CmbSucursalOrigen.SelectedIndex = I + 1 End If Next For I = 0 To Me.CmbSucursalDestino.Items.Count - 1 If Val(Trim(Microsoft.VisualBasic.Right(CmbSucursalDestino.Text, 4))) = VarSucursal1 Then Me.CmbSucursalDestino.SelectedIndex = I : Exit For End If If I <> Me.CmbSucursalDestino.Items.Count - 1 Then Me.CmbSucursalDestino.SelectedIndex = I + 1 End If Next If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If TxtSubtotalPrecio.Text = Format(CDbl(VarSubtotalPrecio), "$###,##0.0000") TxtIvaPrecio.Text = Format(CDbl(VarImpuestoPrecio), "$###,##0.0000") TxtTotalPrecio.Text = Format(CDbl(VarTotalPrecio), "$###,##0.0000") TxtSubtotalCosto.Text = Format(CDbl(VarSubtotalCosto), "$###,##0.0000") TxtIvaCosto.Text = Format(CDbl(VarImpuestoCosto), "$###,##0.0000") TxtTotalCosto.Text = Format(CDbl(VarTotalCosto), "$###,##0.0000") LblNumeroCab.Text = VarNumero If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("INV_BUSCA_DETALLES", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@NUMEROCAB", VarNumero) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try
404
I = 1 While dr.Read DetVarCodigoproducto = dr("CODIGOPRODUCTO") : DetVarFecha = dr("FECHA") : DetVarCantidad = dr("CANTIDAD") DetVarTotalPrecio = dr("TOTALP") : DetVarTotalCosto = dr("TOTALC") DetVarPrecio = dr("PRECIO") : DetVarCosto = dr("COSTO") : DetVarIva = dr("IVA") : DetVarHora = dr("HORA") With SprIngresoEgreso .Col = 2 : .Text = DetVarCantidad .Col = 3 : .Text = DetVarCodigoproducto .Col = 5 : .Text = dr("NOMBRE") .Col = 7 : .Text = DetVarPrecio .Col = 8 : .Text = DetVarCosto .Col = 9 : .Text = DetVarTotalPrecio .Col = 10 : .Text = DetVarTotalCosto .Col = 11 : .Text = DetVarIva .MaxRows = .MaxRows + 1 End With I = I + 1 End While Else MsgBox("Ingreso no existe..!", MsgBoxStyle.Information, "Mensaje") : Me.TxtNumero.Focus() End If Else MsgBox("Ingrese Documento a Buscar..!", MsgBoxStyle.Information, "Mensaje") : Me.TxtNumero.Focus() End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub EliminarDatos() If Trim(TxtNumero.Text <> "") Then If MessageBox.Show("Va a Eliminar un Registro de la Base. Desea Continuar?...", "ALERTA", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.Yes Then Call EliminaIngreso() End If End If End Sub Private Sub EliminaIngreso()
405
Dim CodigoCabecera As Integer If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("INV_BUSCA_CAB", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", "IN") cmd.Parameters.Add("@CODIGO2", CODSUCU) cmd.Parameters.Add("@CODIGO3", CODCAJA) cmd.Parameters.Add("@CODIGO4", CInt(TxtNumero.Text)) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then CodigoCabecera = dr("NUMERO") End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("INV_ELI_CABECERA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", "IN") cmd.Parameters.Add("@SUCURSAL", CODSUCU) cmd.Parameters.Add("@CAJA", CODCAJA) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) cmd.Parameters.Add("@OPCION", 1) Try cmd.ExecuteNonQuery() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("INV_ELI_CABECERA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", "IN") cmd.Parameters.Add("@SUCURSAL", CODSUCU) cmd.Parameters.Add("@CAJA", CODCAJA) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) cmd.Parameters.Add("@OPCION", 2) Try
406
cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("INV_ELI_DETALLES", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@NUMEROCAB", CodigoCabecera) Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_ELI_EXISTENCIAS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", "CO") cmd.Parameters.Add("@NUMEROCAB", CodigoCabecera) cmd.Parameters.Add("@SUCURSAL", Trim(CODSUCU)) cmd.Parameters.Add("@CAJA", Str(CODCAJA)) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) Try cmd.ExecuteNonQuery() MsgBox("INGRESO ELIMINADO EXITOSAMENTE") Catch ex As Exception MsgBox(ex.Message) End Try Catch ex As Exception MsgBox(ex.Message) End Try End Sub Private Sub ModificarDatos() End Sub Private Sub DisplayCurrentRecord() Dim i As Integer Dim s As String
407
Dim CodigoCabecera As Integer Dim VarTempSuc As Integer If rs.BOF Then : rs.MoveFirst() : End If If rs.EOF Then : rs.MoveLast() : End If SprIngresoEgreso.MaxRows = 0 : SprIngresoEgreso.MaxRows = 1 Me.TxtNumero.Text = rs.Fields("NUMEROCAJA").Value.ToString Me.DtpFechaRegistro.Value = rs.Fields("FECHA").Value Me.TxtSubtotalPrecio.Text = Format(CDbl(rs.Fields("subtotalPrecio").Value.ToString), "$###,##0.0000") Me.TxtIvaPrecio.Text = Format(CDbl(rs.Fields("IVAPrecio").Value.ToString), "$###,##0.0000") Me.TxtTotalPrecio.Text = Format(CDbl(rs.Fields("totalPrecio").Value.ToString), "$###,##0.0000") Me.TxtSubtotalCosto.Text = Format(CDbl(rs.Fields("subtotalCosto").Value.ToString), "$###,##0.0000") Me.TxtIvaCosto.Text = Format(CDbl(rs.Fields("IVACosto").Value.ToString), "$###,##0.0000") Me.TxtTotalCosto.Text = Format(CDbl(rs.Fields("totalCosto").Value.ToString), "$###,##0.0000") Me.LblNumeroCab.Text = rs.Fields("numero").Value.ToString CodigoCabecera = rs.Fields("numero").Value Me.TxtProveedor.Text = rs.Fields("proveedor").Value.ToString Call BuscaNombreProveedor() If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_PARAMETROS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", rs.Fields("USUARIO").Value) cmd.Parameters.Add("@OPCION", 2) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtUsuario.Text = dr("USUUSER") End If CmbTipoIngreso.SelectedIndex = 0 For i = 0 To Me.CmbTipoIngreso.Items.Count - 1 If Trim(CmbTipoIngreso.Text) = rs.Fields("tipoingreso").Value Then
408
Me.CmbTipoIngreso.SelectedIndex = i : Exit For End If If i <> Me.CmbTipoIngreso.Items.Count - 1 Then Me.CmbTipoIngreso.SelectedIndex = i + 1 End If Next CmbSucursalDestino.SelectedIndex = 0 For i = 0 To Me.CmbSucursalDestino.Items.Count - 1 VarTempSuc = Val(Trim(Microsoft.VisualBasic.Right(CmbSucursalDestino.Text, 4))) If VarTempSuc = rs.Fields("sucursal1").Value Then Me.CmbSucursalDestino.SelectedIndex = i : Exit For End If If i <> Me.CmbSucursalDestino.Items.Count - 1 Then Me.CmbSucursalDestino.SelectedIndex = i + 1 End If Next CmbSucursalOrigen.SelectedIndex = 0 For i = 0 To Me.CmbSucursalOrigen.Items.Count - 1 If Val(Trim(Microsoft.VisualBasic.Right(CmbSucursalOrigen.Text, 4))) = rs.Fields("sucursal").Value Then Me.CmbSucursalOrigen.SelectedIndex = i : Exit For End If If i <> Me.CmbSucursalOrigen.Items.Count - 1 Then Me.CmbSucursalOrigen.SelectedIndex = i + 1 End If Next If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("INV_BUSCA_DETALLES", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@NUMEROCAB", CodigoCabecera) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try i = 1 While dr.Read DetVarCodigoproducto = dr("CODIGOPRODUCTO") : DetVarFecha = dr("FECHA") : DetVarCantidad = dr("CANTIDAD")
409
DetVarTotalPrecio = dr("TOTALP") : DetVarTotalCosto = dr("TOTALC") DetVarPrecio = dr("PRECIO") : DetVarCosto = dr("COSTO") : DetVarIva = dr("IVA") : DetVarHora = dr("HORA") With SprIngresoEgreso .Row = i .Col = 2 : .Text = DetVarCantidad .Col = 3 : .Text = DetVarCodigoproducto .Col = 5 : .Text = dr("NOMBRE") .Col = 7 : .Text = DetVarPrecio .Col = 8 : .Text = DetVarCosto .Col = 9 : .Text = DetVarTotalPrecio .Col = 10 : .Text = DetVarTotalCosto .Col = 11 : .Text = DetVarIva .MaxRows = .MaxRows + 1 End With i = i + 1 End While If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub BuscaNombreProveedor() If Me.TxtProveedor.Text <> "" Then If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_ESPECIF", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", Me.TxtProveedor.Text) cmd.Parameters.Add("@OPCION", 15) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtNombreProveedor.Text = dr("PRORSOCIAL") : COD_PRO = dr("CEDULA") : TxtReferencia.Focus() Else MsgBox("Proveedor no existe..!", MsgBoxStyle.Information, "Mensaje") : Me.TxtProveedor.Focus()
410
End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If Else MsgBox("Ingrese código del Proveedor..!", MsgBoxStyle.Information, "Mensaje") End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim frm_busq As New Frm_Buscar S_Codigo = "" TablaBuscada = "VIS_CONS_PROVEEDORES" Campo1 = "CEDULA" Campo2 = "PRORSOCIAL" Campo3 = "Busqueda Por Proveedor" frm_busq.ShowDialog() If S_Codigo <> "" Then TxtProveedor.Text = S_Codigo Call BuscaNombreProveedor() End If End Sub Private Sub TxtProveedor_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtProveedor.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then Call BuscaNombreProveedor() End If End Sub Private Sub TlbBotones_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles TlbBotones.ButtonClick Select Case e.Button.Tag Case "Ingresar" : Call IngresarDatos() Case "Grabar" : Call GrabarDatos() Case "Modificar" : Call ModificarDatos() Case "Eliminar" : Call EliminarDatos() Case "Buscar" : Call BuscarDatos() Case "Deshacer" : Call DeshacerDatos() Case "Imprimir"
411
If Trim(Me.TxtNumero.Text) <> "" Then Call ImprimirDatos() Else MsgBox("No Existen datos a imprimir...", vbInformation, "A T E N C I O N") Me.TxtNumero.Focus() End If Case "Salir" : Call SalirDatos() End Select End Sub Private Sub TlbCursores_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles TlbCursores.ButtonClick Select Case e.Button.Tag Case "Primero" If Not (rs.BOF) Then rs.MoveFirst() Call DisplayCurrentRecord() End If Case "Anterior" If Not (rs.BOF) Then rs.MovePrevious() Call DisplayCurrentRecord() End If Case "Siguiente" If Not (rs.EOF) Then rs.MoveNext() Call DisplayCurrentRecord() End If Case "Ultimo" If Not (rs.EOF) Then rs.MoveLast() Call DisplayCurrentRecord() End If End Select End Sub Private Sub BuscarDatos() End Sub Private Sub ImprimirDatos() Dim frm_busq As New FrmParamImpIngreso
412
frm_busq.CrpImprimirIngreso.ReportSource = Nothing Dim paramtipo As New ParameterDiscreteValue Dim paramsucursal As New ParameterDiscreteValue Dim paramcaja As New ParameterDiscreteValue Dim paramnumerocaja As New ParameterDiscreteValue 'paramtipo.Value = CStr("IN") 'paramsucursal.Value = CInt(Trim(Microsoft.VisualBasic.Right(Me.CmbSucursalOrigen.Text, 4))) 'paramcaja.Value = CInt(CODCAJA) 'paramnumerocaja.Value = CInt(Me.TxtNumero.Text) paramtipo.Value = "IN" paramsucursal.Value = Trim(Microsoft.VisualBasic.Right(Me.CmbSucursalOrigen.Text, 4)) paramcaja.Value = CODCAJA paramnumerocaja.Value = Me.TxtNumero.Text Dim paramlist As New ParameterFields Dim paramtemp As ParameterField paramtemp = New ParameterField paramtemp.ParameterFieldName = "@CODIGO1" paramtemp.CurrentValues.Add(paramtipo) paramlist.Add(paramtemp) paramtemp = New ParameterField paramtemp.ParameterFieldName = "@CODIGO2" paramtemp.CurrentValues.Add(paramsucursal) paramlist.Add(paramtemp) paramtemp = New ParameterField paramtemp.ParameterFieldName = "@CODIGO3" paramtemp.CurrentValues.Add(paramcaja) paramlist.Add(paramtemp) paramtemp = New ParameterField paramtemp.ParameterFieldName = "@CODIGO4" paramtemp.CurrentValues.Add(paramnumerocaja) paramlist.Add(paramtemp) frm_busq.CrpImprimirIngreso.ParameterFieldInfo = paramlist
413
'AGREGUE LA SIGUIENTE LINEA 'frm_busq.CrpImprimirBronceados.PrintReport() frm_busq.CrpImprimirIngreso.ReportSource = New Rpt_ImpIngreso frm_busq.ShowDialog() End Sub Private Sub DtpFechaRegistro_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DtpFechaRegistro.ValueChanged Me.DtpFechaRegistro.MaxDate = Today() End Sub End Class
* Clase Frm_pro_lecturaMarcadas.vb
Imports System.Data.OleDb Imports System.Data.Odbc Imports System.Data Imports System Public Class Frm_pro_lecturaMarcadas Inherits System.Windows.Forms.Form Dim cadini As String Dim cadfin As String Dim FECHA_INI As Date Dim FECHA_FIN As Date Private Sub BtnImportar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnImportar.Click Try Dim ANO As String Dim MES As String Dim DIA As String ANO = Year(Me.Dpt_FechaIni.Text) MES = Month(Me.Dpt_FechaIni.Text) If MES >= CInt(1) And MES <= CInt(9) Then : MES = "0" + MES : End If DIA = Microsoft.VisualBasic.DateAndTime.Day(Me.Dpt_FechaIni.Text)
414
If DIA >= CInt(1) And DIA <= CInt(9) Then : DIA = "0" + DIA : End If FECHA_INI = "#" + MES + "/" + DIA + "/" + ANO + "#" ANO = Year(Me.Dpt_FechaFin.Text) MES = Month(Me.Dpt_FechaFin.Text) If MES >= CInt(1) And MES <= CInt(9) Then : MES = "0" + MES : End If DIA = Microsoft.VisualBasic.DateAndTime.Day(Me.Dpt_FechaFin.Text) If DIA >= CInt(1) And DIA <= CInt(9) Then : DIA = "0" + DIA : End If FECHA_FIN = "#" + MES + "/" + DIA + "/" + ANO + "#" cadini = "{d'" + Format(FECHA_INI, "yyyy-MM-dd") + "'}" cadfin = "{d'" + Format(FECHA_FIN, "yyyy-MM-dd") + "'}" Dim contador As Integer Dim tConnectionString As String = "DSN=dat_asi;UID=;PWD=;SourceDB=c:\tmp;SourceType=DBF;" Dim tConnection As OdbcConnection = New OdbcConnection(tConnectionString) Dim tSQLString As String = "" BARRA.Maximum = 0 tSQLString = "select * from dat_asi where fechahora>=" + cadini + " and fechahora<=" + cadfin Dim tOdbcCommand As OdbcCommand = New OdbcCommand(tSQLString, tConnection) tConnection.Open() Dim tOdbcDataReader1 As OdbcDataReader = tOdbcCommand.ExecuteReader(CommandBehavior.SequentialAccess) contador = 0 While tOdbcDataReader1.Read contador = contador + 1 End While tConnection.Close() tConnection.Open() Dim tOdbcDataReader As OdbcDataReader = tOdbcCommand.ExecuteReader(CommandBehavior.SequentialAccess) BARRA.Maximum = contador BARRA.Value = 0
415
While tOdbcDataReader.Read BARRA.Value = BARRA.Value + 1 If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd.CommandText = "FAC_ING_ASISTENCIAS" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGOSECUEN", CStr(tOdbcDataReader.GetString(0))) cmd.Parameters.Add("@NOMBRE", CStr(tOdbcDataReader.GetString(1))) cmd.Parameters.Add("@FECHA", CStr(tOdbcDataReader.GetString(2))) cmd.Parameters.Add("@HORA", Mid(CStr(tOdbcDataReader.GetString(2)), 12, 8)) Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try End While tConnection.Close() MsgBox("Proceso Terminado", MsgBoxStyle.Exclamation + MsgBoxStyle.OKOnly, "Sistema") BARRA.Maximum = 0 BARRA.Value = 0 If Not tOdbcDataReader.IsClosed Then : tOdbcDataReader.Close() : End If If Not tOdbcDataReader1.IsClosed Then : tOdbcDataReader1.Close() : End If Catch ex As OdbcException MessageBox.Show(ex.Errors(0).Message) Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Private Sub TlbBotones_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles TlbBotones.ButtonClick Select Case e.Button.Tag Case "Ingresar" 'Call IngresarDatos() Case "Grabar"
416
'Call GrabarDatos() Case "Modificar" 'Call ModificarDatos() Case "Eliminar" 'Call EliminarDatos() Case "Buscar" 'Call BuscarDatos() Case "Deshacer" 'Call DeshacerDatos() Case "Imprimir" 'Call ImprimirDatos() Case "Salir" Call SalirDatos() End Select End Sub Private Sub SalirDatos() Me.Close() End Sub Private Sub Dpt_FechaIni_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Dpt_FechaIni.ValueChanged Me.Dpt_FechaIni.MaxDate = Today() End Sub Private Sub Dpt_FechaFin_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Dpt_FechaFin.ValueChanged Me.Dpt_FechaFin.MaxDate = Today() End Sub End Class
* Clase Frm_pro_salida.vb
Imports System.Data Imports System.Data.OleDb Imports System.Data.SqlClient Imports System.Drawing.Printing Imports CrystalDecisions.Shared Public Class Frm_pro_salida
417
Inherits System.Windows.Forms.Form Private rs As ADODB.Recordset Dim ContenidoDelTexto As PrintPageEventArgs Dim Reporte As New PrintDocument Dim COD_PROD As Integer Dim iva, TotalG As Double Public MODIFICA As Boolean Dim CODCAJA, COD_PRO, DIASMEMBRESIA, FILA, I As Integer 'VARIABLES PARA BUSQUEDA DE SALIDA CABECERA Dim VarFecha As Date Dim VarHora As DateTime Dim VarNumero, VarNumeroCajero, VarPorcentajeIva, VarNumeroAplic As Integer Dim VarSubtotalPrecio, VarImpuestoPrecio, VarTotalPrecio As Double Dim VarSubtotalCosto, VarImpuestoCosto, VarTotalCosto As Double Dim VarTipoAplic, VarImpreso, VarNombreCajero, VarComentario As String Dim VarTipo, VarSucursal, VarSucursal1, VarCaja, VarProveedor, VarUsuario As String 'VARIABLES PARA BUSQUEDA DE SALIDA DETALLES Dim DetVarFecha As Date Dim DetVarHora As DateTime Dim DetVarNumerocab, DetVarNumerocaja, DetVarCantidad As Integer Dim DetVarTipo, DetVarSucursal, DetVarCaja, DetVarCodigoproducto, DetVarBodega As String Dim DetVarTotalPrecio, DetVarTotalCosto, DetVarPrecio, DetVarCosto, DetVarIva As Decimal Private Sub Frm_pro_salida_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call LlenaParametros() : Call LlenaCombos() : Call Deshabilita() If Not (rs.BOF) Or Not (rs.EOF) Then : rs.MoveLast() : Call DisplayCurrentRecord() : End If TxtNumero.Focus() End Sub Private Sub IngresarDatos() Call Limpia() : Call ObtieneSecuencia() : Call Habilita() : Me.TxtProveedor.Focus() End Sub
418
Private Sub GrabarDatos() Dim CodigoCabecera, Cantidad As Integer Dim Precio, Costo, TotalPagos As Double Dim MEMBRESIA As Boolean Dim FormaPago As String TotalPagos = 0 If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If If Me.SprIngresoEgreso.MaxRows >= 1 Then If MODIFICA = True Then MsgBox("LA SALIDA NO PUEDE SER MODIFICADA") Else If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "INV_ING_CABECERA" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", "SA") cmd.Parameters.Add("@SUCURSAL", Trim(Microsoft.VisualBasic.Right(Me.CmbSucursalOrigen.Text, 4))) cmd.Parameters.Add("@CAJA", Str(CODCAJA)) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) cmd.Parameters.Add("@SUCURSAL1", Trim(Microsoft.VisualBasic.Right(Me.CmbSucursalDestino.Text, 4))) cmd.Parameters.Add("@TIPOINGRESO", Trim(Me.CmbTipoIngreso.Text)) cmd.Parameters.Add("@PROVEEDOR", Trim(Me.TxtProveedor.Text)) cmd.Parameters.Add("@TIPOAPLIC", "SA") cmd.Parameters.Add("@NUMEROAPLIC", Trim(Me.TxtReferencia.Text)) cmd.Parameters.Add("@SUBTOTALPRECIO", CDbl(TxtSubtotalPrecio.Text)) cmd.Parameters.Add("@IVAPRECIO", CDbl(TxtIvaPrecio.Text)) cmd.Parameters.Add("@TOTALPRECIO", CDbl(TxtTotalPrecio.Text)) cmd.Parameters.Add("@SUBTOTALCOSTO", CDbl(TxtSubtotalCosto.Text)) cmd.Parameters.Add("@IVACOSTO", CDbl(TxtIvaCosto.Text))
419
cmd.Parameters.Add("@TOTALCOSTO", CDbl(TxtTotalCosto.Text)) cmd.Parameters.Add("@FECHA", Me.DtpFechaRegistro.Value) cmd.Parameters.Add("@HORA", Today.Hour) cmd.Parameters.Add("@OBSERVACIONES", Trim(Me.TxtObservaciones.Text)) cmd.Parameters.Add("@USUARIO", Cod_Usu) cmd.Parameters.Add("@IMPRESO", False) cmd.Parameters.Add("@ELIMINADO", False) Try cmd.ExecuteNonQuery() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("INV_BUSCA_CAB", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", "SA") cmd.Parameters.Add("@CODIGO2", CODSUCU) cmd.Parameters.Add("@CODIGO3", CODCAJA) cmd.Parameters.Add("@CODIGO4", CInt(TxtNumero.Text)) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then CodigoCabecera = dr("NUMERO") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If Catch ex As Exception MsgBox(ex.Message) End Try '********************INGRESA DETALLE With SprIngresoEgreso For FILA = 1 To .MaxRows - 1 cmd.CommandText = "INV_ING_DETALLE" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@NUMEROCAB", CodigoCabecera) cmd.Parameters.Add("@TIPO", "SA")
420
cmd.Parameters.Add("@SUCURSAL", Trim(CODSUCU)) cmd.Parameters.Add("@CAJA", Str(CODCAJA)) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) .Col = 3 : .Row = FILA cmd.Parameters.Add("@CODIGOPRODUCTO", CStr(.Text)) .Col = 2 : Cantidad = CInt(.Text) cmd.Parameters.Add("@CANTIDAD", Cantidad) .Col = 7 : Precio = CDbl(.Text) .Col = 8 : Costo = CDbl(.Text) cmd.Parameters.Add("@PRECIO", CDbl(Precio)) cmd.Parameters.Add("@COSTO", CDbl(Costo)) cmd.Parameters.Add("@TOTALP", Cantidad * CDbl(Precio)) cmd.Parameters.Add("@TOTALC", Cantidad * CDbl(Costo)) .Col = 11 : cmd.Parameters.Add("@IVA", CDbl(.Text)) cmd.Parameters.Add("@FECHA", DtpFechaRegistro.Value) cmd.Parameters.Add("@HORA", Today) Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try '*********** INGRESA ARCHIVO DE EXISTENCIAS cmd.CommandText = "FAC_ING_EXISTENCIAS" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", "SA") cmd.Parameters.Add("@NUMEROCAB", CodigoCabecera) cmd.Parameters.Add("@SUCURSAL", Trim(CODSUCU)) cmd.Parameters.Add("@CAJA", Str(CODCAJA)) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) .Col = 3 : .Row = FILA cmd.Parameters.Add("@CODIGOPRODUCTO", CStr(.Text)) cmd.Parameters.Add("@FECHA", DtpFechaRegistro.Value) .Col = 2 : Cantidad = CInt(.Text) cmd.Parameters.Add("@CANTIDAD", Cantidad) Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try '*** TERMINA ARCHIVO DE EXISTENCIAS
421
Next End With Call GrabaSecuencia() : Call Deshabilita() Try cmd.ExecuteNonQuery() MsgBox("SALIDA GENERADA EXITOSAMENTE") Catch ex As Exception MsgBox(ex.Message) End Try End If Else MsgBox("Faltan datos de llenar", MsgBoxStyle.Information, "Mensaje") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub SalirDatos() If Me.TlbBotones.Buttons(0).Enabled = False Then If MessageBox.Show("Esta en modo de Ingreso. Desea Cancelar la Operación?...", "ALERTA", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.Yes Then Call Limpia() : Call Deshabilita() : Me.TxtNumero.Focus() : Me.Close() Else If SprIngresoEgreso.Enabled = True Then SprIngresoEgreso.Focus() : SprIngresoEgreso.SetActiveCell(3, SprIngresoEgreso.MaxRows) Else TxtNumero.Focus() End If End If Else Me.Close() End If End Sub Private Sub DeshacerDatos() Call Limpia() : Call Deshabilita() : Me.TxtNumero.Focus() End Sub
422
Private Sub TxtReferencia_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtReferencia.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) And Trim(TxtReferencia.Text) <> "" Then SprIngresoEgreso.Enabled = True SprIngresoEgreso.Focus() : SprIngresoEgreso.SetActiveCell(3, SprIngresoEgreso.ActiveRow) Else If e.KeyChar.IsDigit(e.KeyChar) Then e.Handled = False ElseIf e.KeyChar.IsControl(e.KeyChar) Then e.Handled = False Else e.Handled = True End If End If End Sub Private Sub SprIngresoEgreso_KeyPressEvent(ByVal sender As Object, ByVal e As AxFPSpread._DSpreadEvents_KeyPressEvent) Handles SprIngresoEgreso.KeyPressEvent Dim CostoU, PrecioU, TotalCU, TotalPU As Double Dim Cantidad As Integer If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If With SprIngresoEgreso If .ActiveCol = 2 Then If e.keyAscii = 13 Then .Row = .ActiveRow : .Col = 3 If Trim(.Text) <> "" Then .Col = 2 : Cantidad = CDbl(.Text) .Col = 7 : PrecioU = CDbl(.Text) .Col = 8 : CostoU = CDbl(.Text) TotalCU = (CostoU * Cantidad) TotalPU = (PrecioU * Cantidad) .SetText(9, .ActiveRow, Format(CDbl(TotalPU), "###,##0.0000")) .SetText(10, .ActiveRow, Format(CDbl(TotalCU), "###,##0.0000")) .SetText(11, .ActiveRow, CDbl(dr("PROIVA"))) Call CalculaTotales() End If
423
End If End If If .ActiveCol = 3 Then If e.keyAscii = 13 Then Dim PROXIVA As Double TablaBuscada = "PRODUCTO_SERV" .Row = .ActiveRow : .Col = 3 : S_Codigo = .Text If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("FAC_CONS_ESPEC", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", CDbl(S_Codigo)) cmd.Parameters.Add("@OPCION", 2) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then .SetText(5, .ActiveRow, dr("NOMBRE")) .SetText(7, .ActiveRow, Format(CDbl(dr("PROPRECIO")), "###,##0.0000")) .SetText(8, .ActiveRow, Format(CDbl(dr("COSTO")), "###,##0.0000")) .Row = .ActiveRow .Col = 2 : Cantidad = CDbl(.Text) .Col = 7 : PrecioU = CDbl(.Text) .Col = 8 : CostoU = CDbl(.Text) TotalCU = (CostoU * Cantidad) TotalPU = (PrecioU * Cantidad) .SetText(9, .ActiveRow, Format(CDbl(TotalPU), "###,##0.0000")) .SetText(10, .ActiveRow, Format(CDbl(TotalCU), "###,##0.0000")) .SetText(11, .ActiveRow, CDbl(dr("PROIVA"))) .Col = 3 : .Row = .MaxRows If Trim(.Text) Then .MaxRows = .MaxRows + 1 Else .SetActiveCell(3, .ActiveRow) End If Call CalculaTotales()
424
.Row = .MaxRows : .Col = 2 : .Text = "1" .SetActiveCell(3, .MaxRows) : .Focus() Else .SetActiveCell(3, .ActiveRow) : .Focus() .Col = 3 : .Row = .ActiveRow : .Text = "" MsgBox("Producto o Servicio no existe..!", MsgBoxStyle.Information, "Mensaje") End If End If End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End With End Sub Private Sub SprIngresoEgreso_ButtonClicked(ByVal sender As Object, ByVal e As AxFPSpread._DSpreadEvents_ButtonClickedEvent) Handles SprIngresoEgreso.ButtonClicked Dim CostoU, PrecioU, TotalCU, TotalPU As Double Dim Cantidad As Integer If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If With SprIngresoEgreso If .ActiveCol = 4 Then Dim frm_busq As New Frm_Buscar S_Codigo = "" : TablaBuscada = "VIS_CONS_PRODCOMPO" Campo1 = "CODPRODSERV" Campo2 = "NOMBRE" Campo3 = "Busqueda Por Producto" frm_busq.ShowDialog() If S_Codigo <> "" Then .SetText(3, .ActiveRow, S_Codigo) With SprIngresoEgreso If S_Codigo <> "" Then If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("FAC_CONS_ESPEC", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear()
425
cmd.Parameters.Add("@CODIGO", CDbl(S_Codigo)) cmd.Parameters.Add("@OPCION", 2) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then .Row = .ActiveRow .SetText(5, .ActiveRow, dr("NOMBRE")) .SetText(7, .ActiveRow, Format(CDbl(dr("PROPRECIO")), "###,##0.0000")) .SetText(8, .ActiveRow, Format(CDbl(dr("COSTO")), "###,##0.0000")) .Col = 2 : Cantidad = CDbl(.Text) .Col = 7 : PrecioU = CDbl(.Text) .Col = 8 : CostoU = CDbl(.Text) TotalCU = (CostoU * Cantidad) TotalPU = (PrecioU * Cantidad) .SetText(9, .ActiveRow, Format(CDbl(TotalPU), "###,##0.0000")) .SetText(10, .ActiveRow, Format(CDbl(TotalCU), "###,##0.0000")) .SetText(11, .ActiveRow, CDbl(dr("PROIVA"))) .MaxRows = .MaxRows + 1 Call CalculaTotales() .Row = .MaxRows : .Col = 2 : .Text = "1" .SetActiveCell(3, .MaxRows) : .Focus() Else .SetActiveCell(2, .ActiveRow) : .Focus() .Col = 3 : .Row = .ActiveRow : .Text = "" MsgBox("Producto o Servicio no existe..!", MsgBoxStyle.Information, "Mensaje") End If Else MsgBox("Ingrese código de Producto o Servicio..!", MsgBoxStyle.Information, "Mensaje") End If End With End If End If End With If Not dr.IsClosed Then : dr.Close() : End If
426
If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub SprIngresoEgreso_KeyDownEvent(ByVal sender As Object, ByVal e As AxFPSpread._DSpreadEvents_KeyDownEvent) Handles SprIngresoEgreso.KeyDownEvent With SprIngresoEgreso If e.keyCode = Keys.Delete Then If .MaxRows > 1 Then If MessageBox.Show("Esta seguro de Eliminar la Linea?...", "Alerta", MessageBoxButtons.YesNo) = DialogResult.Yes Then .Row = .ActiveRow : .Col = 3 .Action = FPSpread.ActionConstants.ActionDeleteRow.ActionDeleteRow : .MaxRows = .MaxRows - 1 .SetActiveCell(3, .MaxRows) : .Focus() : Call CalculaTotales() End If End If End If End With End Sub Private Sub TxtNumero_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtNumero.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then Call CargarIngreso() End If End Sub Private Sub CalculaTotales() Dim ValIvaTC, ValIvaTP, ValIvaCosto, ValIvaPrecio, SubtotalCosto, SubtotalPrecio, TotalP, TotalC, TotalGP, TotalGC, CostoU, PrecioU, TotalCU, TotalPU As Double Dim Cantidad As Integer TotalG = 0 With SprIngresoEgreso For I = 1 To .MaxRows - 1 .Col = 12 : .Row = I If .Value = 0 Then .Row = I .Col = 2 : Cantidad = CDbl(.Text) .Col = 7 : PrecioU = CDbl(.Text) TotalPU = PrecioU * Cantidad
427
SubtotalPrecio = Math.Round(SubtotalPrecio, 4) + Math.Round(TotalPU, 4) .Col = 8 : CostoU = CDbl(.Text) TotalCU = CostoU * Cantidad SubtotalCosto = Math.Round(SubtotalCosto, 4) + Math.Round(TotalCU, 4) .Col = 11 If Val(.Text) = 1 Then ValIvaCosto = Math.Round(TotalCU, 4) * iva ValIvaPrecio = Math.Round(TotalPU, 4) * iva Else ValIvaCosto = 0 ValIvaPrecio = 0 End If TotalP = Math.Round(SubtotalPrecio, 4) ValIvaTP = Math.Round(ValIvaTP, 4) + Math.Round(ValIvaPrecio, 4) TotalGP = Math.Round(TotalP, 4) + Math.Round(ValIvaTP, 4) TotalC = Math.Round(SubtotalCosto, 4) ValIvaTC = Math.Round(ValIvaTC, 4) + Math.Round(ValIvaCosto, 4) TotalGC = Math.Round(TotalC, 4) + Math.Round(ValIvaTC, 4) End If Next End With TxtSubtotalPrecio.Text = Format(TotalP, "$###,##0.0000") TxtIvaPrecio.Text = Format(ValIvaTP, "$###,##0.0000") TxtTotalPrecio.Text = Format(TotalGP, "$###,##0.0000") TxtSubtotalCosto.Text = Format(TotalC, "$###,##0.0000") TxtIvaCosto.Text = Format(ValIvaTC, "$###,##0.0000") TxtTotalCosto.Text = Format(TotalGC, "$###,##0.0000") End Sub Private Sub LlenaParametros() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_GEN", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@OPCION", 11) Try dr = cmd.ExecuteReader()
428
Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then CODCAJA = dr("CODCAJA") End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If 'CARGO VALOR DE IVA cmd = New SqlClient.SqlCommand("SEG_CONS_PARAMETRO", cn) cmd.CommandType = CommandType.StoredProcedure Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then iva = dr("PORCENTAJEIVA") End If Me.TxtUsuario.Text = CStr(usu) If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub LlenaCombos() 'Llena los Bancos Me.CmbSucursalDestino.Text = "" : Me.CmbSucursalOrigen.Text = "" If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_GEN", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@OPCION", 2) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try While dr.Read Me.CmbSucursalDestino.Items.Add(dr("DESCRIPCION") & Space(50) & dr("CODSUCUR"))
429
Me.CmbSucursalOrigen.Items.Add(dr("DESCRIPCION") & Space(50) & dr("CODSUCUR")) End While Me.CmbSucursalDestino.SelectedIndex = (0) : Me.CmbSucursalOrigen.SelectedIndex = (0) For I = 0 To Me.CmbSucursalOrigen.Items.Count - 1 If Val(Trim(Microsoft.VisualBasic.Right(Me.CmbSucursalOrigen.Text, 4))) = CODSUCU Then Me.CmbSucursalOrigen.SelectedIndex = I : Exit For End If If I <> Me.CmbSucursalOrigen.Items.Count - 1 Then Me.CmbSucursalOrigen.SelectedIndex = I + 1 End If Next If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub Habilita() Me.TlbBotones.Buttons(0).Enabled = False : Me.TlbBotones.Buttons(2).Enabled = True Me.TlbBotones.Buttons(6).Enabled = False : Me.TlbBotones.Buttons(12).Enabled = False Me.TlbBotones.Buttons(10).Enabled = True : Me.TlbBotones.Buttons(4).Enabled = False Me.TlbBotones.Buttons(8).Enabled = False : Me.TlbBotones.Buttons(14).Enabled = True Me.TxtNumero.Enabled = False : Me.CmbSucursalDestino.Enabled = True Me.TxtReferencia.Enabled = True : Me.TxtProveedor.Enabled = True End Sub Private Sub Deshabilita() Me.TlbBotones.Buttons(0).Enabled = True : Me.TlbBotones.Buttons(2).Enabled = False Me.TlbBotones.Buttons(6).Enabled = True : Me.TlbBotones.Buttons(12).Enabled = True Me.TlbBotones.Buttons(10).Enabled = False : Me.TlbBotones.Buttons(4).Enabled = True Me.TlbBotones.Buttons(8).Enabled = True : Me.TlbBotones.Buttons(14).Enabled = True Me.SprIngresoEgreso.Enabled = False : Me.DtpFechaRegistro.Enabled = False
430
Me.TxtNumero.Enabled = True : Me.CmbSucursalDestino.Enabled = False Me.TxtReferencia.Enabled = False : Me.TxtProveedor.Enabled = False End Sub Private Sub Limpia() Me.DtpFechaRegistro.Value = Today() : Me.TxtNumero.Text = "" Me.SprIngresoEgreso.MaxRows = 0 : Me.SprIngresoEgreso.MaxRows = 1 Me.SprIngresoEgreso.Row = Me.SprIngresoEgreso.MaxRows Me.SprIngresoEgreso.Col = 2 : Me.SprIngresoEgreso.Text = 1 Me.TxtSubtotalCosto.Text = "" : Me.TxtIvaCosto.Text = "" : Me.TxtTotalCosto.Text = "" Me.TxtSubtotalPrecio.Text = "" : Me.TxtIvaPrecio.Text = "" : Me.TxtTotalPrecio.Text = "" Me.TxtProveedor.Text = "" : Me.TxtNombreProveedor.Text = "" : Me.TxtReferencia.Text = "" End Sub Private Sub ObtieneSecuencia() Dim CodigoSuc As Integer CodigoSuc = Val(Trim(Microsoft.VisualBasic.Right(SUCURSAL, 3))) If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_SECUENCIA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", CStr("SA")) cmd.Parameters.Add("@CODIGO2", CInt(CodigoSuc)) cmd.Parameters.Add("@CODIGO3", CInt(CODCAJA)) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtNumero.Text = dr("NUMERO") + 1 Else TxtNumero.Text = "1" End If dr.Close() End Sub
431
Private Sub GrabaSecuencia() Dim CodigoSuc As Integer CodigoSuc = Val(Trim(Microsoft.VisualBasic.Right(SUCURSAL, 3))) If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_SECUENCIA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", CStr("SA")) cmd.Parameters.Add("@CODIGO2", CInt(CodigoSuc)) cmd.Parameters.Add("@CODIGO3", CInt(CODCAJA)) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "FAC_MOD_SECUENCIA" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", CStr("SA")) cmd.Parameters.Add("@SUCURSAL", CInt(CodigoSuc)) cmd.Parameters.Add("@CAJA", CInt(CODCAJA)) cmd.Parameters.Add("@NUMERO", CInt(Val(TxtNumero.Text))) Try cmd.ExecuteNonQuery() dr.Close() Catch ex As Exception MsgBox(ex.Message) End Try Else If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd.CommandText = "FAC_ING_SECUENCIA" cmd.CommandType = CommandType.StoredProcedure cmd.Connection = cn cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", CStr("SA"))
432
cmd.Parameters.Add("@SUCURSAL", CInt(CodigoSuc)) cmd.Parameters.Add("@CAJA", CInt(CODCAJA)) cmd.Parameters.Add("@NUMERO", 1) Try cmd.ExecuteNonQuery() dr.Close() Catch ex As Exception MsgBox(ex.Message) End Try End If End Sub Public Sub CargarIngreso() If Trim(TxtNumero.Text) <> "" Then SprIngresoEgreso.MaxRows = 0 : SprIngresoEgreso.MaxRows = 1 If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("INV_BUSCA_CABECERA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", CStr("SA")) cmd.Parameters.Add("@CODIGO2", CODSUCU) cmd.Parameters.Add("@CODIGO3", CODCAJA) cmd.Parameters.Add("@CODIGO4", CInt(Trim(TxtNumero.Text))) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then VarNumero = dr("NUMERO") : VarTipo = dr("TIPO") : VarSucursal = dr("SUCURSAL") : VarSucursal1 = dr("SUCURSAL1") : VarCaja = dr("CAJA") VarUsuario = dr("USUARIO") : VarComentario = dr("OBSERVACIONES") VarSubtotalPrecio = dr("SUBTOTALPRECIO") : VarImpuestoPrecio = dr("IVAPRECIO") : VarTotalPrecio = dr("TOTALPRECIO") : VarTipoAplic = dr("TIPOAPLIC") VarSubtotalCosto = dr("SUBTOTALCOSTO") : VarImpuestoCosto = dr("IVACOSTO") : VarTotalCosto = dr("TOTALCOSTO") VarNumeroAplic = dr("NUMEROAPLIC") : VarImpreso = dr("IMPRESO") : VarFecha = dr("FECHA") : VarHora = dr("HORA") DtpFechaRegistro.Value = CDate(VarFecha)
433
Me.TxtProveedor.Text = dr("proveedor") Call BuscaNombreProveedor() If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_PARAMETROS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", VarUsuario) cmd.Parameters.Add("@OPCION", 2) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtUsuario.Text = dr("USUUSER") End If For I = 0 To Me.CmbSucursalOrigen.Items.Count - 1 If Val(Trim(Microsoft.VisualBasic.Right(CmbSucursalOrigen.Text, 4))) = VarSucursal Then Me.CmbSucursalOrigen.SelectedIndex = I : Exit For End If If I <> Me.CmbSucursalOrigen.Items.Count - 1 Then Me.CmbSucursalOrigen.SelectedIndex = I + 1 End If Next For I = 0 To Me.CmbSucursalDestino.Items.Count - 1 If Val(Trim(Microsoft.VisualBasic.Right(CmbSucursalDestino.Text, 4))) = VarSucursal1 Then Me.CmbSucursalDestino.SelectedIndex = I : Exit For End If If I <> Me.CmbSucursalDestino.Items.Count - 1 Then Me.CmbSucursalDestino.SelectedIndex = I + 1 End If Next If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If TxtSubtotalPrecio.Text = Format(CDbl(VarSubtotalPrecio), "$###,##0.0000")
434
TxtIvaPrecio.Text = Format(CDbl(VarImpuestoPrecio), "$###,##0.0000") TxtTotalPrecio.Text = Format(CDbl(VarTotalPrecio), "$###,##0.0000") TxtSubtotalCosto.Text = Format(CDbl(VarSubtotalCosto), "$###,##0.0000") TxtIvaCosto.Text = Format(CDbl(VarImpuestoCosto), "$###,##0.0000") TxtTotalCosto.Text = Format(CDbl(VarTotalCosto), "$###,##0.0000") If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("INV_BUSCA_DETALLES", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@NUMEROCAB", VarNumero) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try I = 1 While dr.Read DetVarCodigoproducto = dr("CODIGOPRODUCTO") : DetVarFecha = dr("FECHA") : DetVarCantidad = dr("CANTIDAD") DetVarTotalPrecio = dr("TOTALP") : DetVarTotalCosto = dr("TOTALC") DetVarPrecio = dr("PRECIO") : DetVarCosto = dr("COSTO") : DetVarIva = dr("IVA") : DetVarHora = dr("HORA") With SprIngresoEgreso .Col = 2 : .Text = DetVarCantidad .Col = 3 : .Text = DetVarCodigoproducto .Col = 5 : .Text = dr("NOMBRE") .Col = 7 : .Text = DetVarPrecio .Col = 8 : .Text = DetVarCosto .Col = 9 : .Text = DetVarTotalPrecio .Col = 10 : .Text = DetVarTotalCosto .Col = 11 : .Text = DetVarIva .MaxRows = .MaxRows + 1 End With I = I + 1 End While Else
435
MsgBox("Salida no existe..!", MsgBoxStyle.Information, "Mensaje") : Me.TxtNumero.Focus() End If Else MsgBox("Ingrese Documento a Buscar..!", MsgBoxStyle.Information, "Mensaje") : Me.TxtNumero.Focus() End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub EliminarDatos() If Trim(TxtNumero.Text <> "") Then If MessageBox.Show("Va a Eliminar un Registro de la Base. Desea Continuar?...", "ALERTA", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.Yes Then Call EliminaIngreso() End If End If End Sub Private Sub EliminaIngreso() Dim CodigoCabecera As Integer If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("INV_BUSCA_CAB", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO1", "SA") cmd.Parameters.Add("@CODIGO2", CODSUCU) cmd.Parameters.Add("@CODIGO3", CODCAJA) cmd.Parameters.Add("@CODIGO4", CInt(TxtNumero.Text)) Try dr = cmd.ExecuteReader Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then CodigoCabecera = dr("NUMERO") End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If
436
cmd = New SqlClient.SqlCommand("INV_ELI_CABECERA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", "SA") cmd.Parameters.Add("@SUCURSAL", CODSUCU) cmd.Parameters.Add("@CAJA", CODCAJA) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) cmd.Parameters.Add("@OPCION", 1) Try cmd.ExecuteNonQuery() If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("INV_ELI_CABECERA", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", "SA") cmd.Parameters.Add("@SUCURSAL", CODSUCU) cmd.Parameters.Add("@CAJA", CODCAJA) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) cmd.Parameters.Add("@OPCION", 2) Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("INV_ELI_DETALLES", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@NUMEROCAB", CodigoCabecera) Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message) End Try If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("FAC_ELI_EXISTENCIAS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@TIPO", "SA")
437
cmd.Parameters.Add("@NUMEROCAB", CodigoCabecera) cmd.Parameters.Add("@SUCURSAL", Trim(CODSUCU)) cmd.Parameters.Add("@CAJA", Str(CODCAJA)) cmd.Parameters.Add("@NUMEROCAJA", CInt(TxtNumero.Text)) Try cmd.ExecuteNonQuery() MsgBox("SALIDA ELIMINADA EXITOSAMENTE") Catch ex As Exception MsgBox(ex.Message) End Try Catch ex As Exception MsgBox(ex.Message) End Try End Sub Private Sub ModificarDatos() End Sub Private Sub DisplayCurrentRecord() Dim i As Integer Dim s As String Dim CodigoCabecera As Integer If rs.BOF Then : rs.MoveFirst() : End If If rs.EOF Then : rs.MoveLast() : End If SprIngresoEgreso.MaxRows = 0 : SprIngresoEgreso.MaxRows = 1 Me.TxtNumero.Text = rs.Fields("NUMEROCAJA").Value.ToString Me.DtpFechaRegistro.Value = rs.Fields("FECHA").Value Me.TxtSubtotalPrecio.Text = Format(CDbl(rs.Fields("SUBTOTALPRECIO").Value.ToString), "$###,##0.0000") Me.TxtIvaPrecio.Text = Format(CDbl(rs.Fields("IVAPRECIO").Value.ToString), "$###,##0.0000") Me.TxtTotalPrecio.Text = Format(CDbl(rs.Fields("TOTALPRECIO").Value.ToString), "$###,##0.0000") Me.TxtSubtotalCosto.Text = Format(CDbl(rs.Fields("SUBTOTALCOSTO").Value.ToString), "$###,##0.0000") Me.TxtIvaCosto.Text = Format(CDbl(rs.Fields("IVACOSTO").Value.ToString), "$###,##0.0000") Me.TxtTotalCosto.Text = Format(CDbl(rs.Fields("TOTALCOSTO").Value.ToString), "$###,##0.0000") CodigoCabecera = rs.Fields("NUMERO").Value Me.TxtProveedor.Text = rs.Fields("proveedor").Value.ToString
438
Call BuscaNombreProveedor() If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("FAC_BUSCA_PARAMETROS", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", rs.Fields("USUARIO").Value) cmd.Parameters.Add("@OPCION", 2) Try dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try If dr.Read Then TxtUsuario.Text = dr("USUUSER") End If For i = 0 To Me.CmbSucursalDestino.Items.Count - 1 If Val(Trim(Microsoft.VisualBasic.Right(CmbSucursalDestino.Text, 4))) = rs.Fields("sucursal").Value Then Me.CmbSucursalDestino.SelectedIndex = i : Exit For End If If i <> Me.CmbSucursalDestino.Items.Count - 1 Then Me.CmbSucursalDestino.SelectedIndex = i + 1 End If Next For i = 0 To Me.CmbSucursalOrigen.Items.Count - 1 If Val(Trim(Microsoft.VisualBasic.Right(CmbSucursalOrigen.Text, 4))) = rs.Fields("sucursal1").Value Then Me.CmbSucursalOrigen.SelectedIndex = i : Exit For End If If i <> Me.CmbSucursalOrigen.Items.Count - 1 Then Me.CmbSucursalOrigen.SelectedIndex = i + 1 End If Next If cn.State = ConnectionState.Closed Then : cn.Open() : End If If Not dr.IsClosed Then : dr.Close() : End If cmd = New SqlClient.SqlCommand("INV_BUSCA_DETALLES", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@NUMEROCAB", CodigoCabecera) Try
439
dr = cmd.ExecuteReader() Catch ex As Exception MsgBox(ex.Message) End Try i = 1 While dr.Read DetVarCodigoproducto = dr("CODIGOPRODUCTO") : DetVarFecha = dr("FECHA") : DetVarCantidad = dr("CANTIDAD") DetVarTotalPrecio = dr("TOTALP") : DetVarTotalCosto = dr("TOTALC") DetVarPrecio = dr("PRECIO") : DetVarCosto = dr("COSTO") : DetVarIva = dr("IVA") : DetVarHora = dr("HORA") With SprIngresoEgreso .Row = i .Col = 2 : .Text = DetVarCantidad .Col = 3 : .Text = DetVarCodigoproducto .Col = 5 : .Text = dr("NOMBRE") .Col = 7 : .Text = DetVarPrecio .Col = 8 : .Text = DetVarCosto .Col = 9 : .Text = DetVarTotalPrecio .Col = 10 : .Text = DetVarTotalCosto .Col = 11 : .Text = DetVarIva .MaxRows = .MaxRows + 1 End With i = i + 1 End While If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub BuscaNombreProveedor() If Me.TxtProveedor.Text <> "" Then If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If cmd = New SqlClient.SqlCommand("SEG_BUSCA_ESPECIF", cn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.Clear() cmd.Parameters.Add("@CODIGO", Me.TxtProveedor.Text) cmd.Parameters.Add("@OPCION", 15) Try dr = cmd.ExecuteReader() Catch ex As Exception
440
MsgBox(ex.Message) End Try If dr.Read Then TxtNombreProveedor.Text = dr("PRORSOCIAL") : COD_PRO = dr("CEDULA") : TxtReferencia.Focus() Else MsgBox("Proveedor no existe..!", MsgBoxStyle.Information, "Mensaje") : Me.TxtProveedor.Focus() End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If Else MsgBox("Ingrese código del Proveedor..!", MsgBoxStyle.Information, "Mensaje") End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim frm_busq As New Frm_Buscar S_Codigo = "" TablaBuscada = "VIS_CONS_PROVEEDORES" Campo1 = "CEDULA" Campo2 = "PRORSOCIAL" Campo3 = "Busqueda Por Proveedor" frm_busq.ShowDialog() If S_Codigo <> "" Then TxtProveedor.Text = S_Codigo Call BuscaNombreProveedor() End If End Sub Private Sub TxtProveedor_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtProveedor.KeyPress If e.KeyChar = Microsoft.VisualBasic.ChrW(13) Then Call BuscaNombreProveedor() End If End Sub Private Sub TlbBotones_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles TlbBotones.ButtonClick
441
Select Case e.Button.Tag Case "Ingresar" : Call IngresarDatos() Case "Grabar" : Call GrabarDatos() Case "Modificar" : Call ModificarDatos() Case "Eliminar" : Call EliminarDatos() Case "Buscar" : Call BuscarDatos() Case "Deshacer" : Call DeshacerDatos() Case "Imprimir" If Trim(Me.TxtNumero.Text) <> "" Then Call ImprimirDatos() Else MsgBox("No Existen datos a imprimir...", vbInformation, "A T E N C I O N") Me.TxtNumero.Focus() End If Case "Salir" : Call SalirDatos() End Select End Sub Private Sub TlbCursores_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles TlbCursores.ButtonClick Select Case e.Button.Tag Case "Primero" If Not (rs.BOF) Then rs.MoveFirst() Call DisplayCurrentRecord() End If Case "Anterior" If Not (rs.BOF) Then rs.MovePrevious() Call DisplayCurrentRecord() End If Case "Siguiente" If Not (rs.EOF) Then rs.MoveNext() Call DisplayCurrentRecord() End If Case "Ultimo" If Not (rs.EOF) Then rs.MoveLast() Call DisplayCurrentRecord() End If End Select
442
End Sub Private Sub BuscarDatos() End Sub Private Sub ImprimirDatos() Dim frm_busq As New FrmParamImpIngreso frm_busq.CrpImprimirIngreso.ReportSource = Nothing Dim paramtipo As New ParameterDiscreteValue Dim paramsucursal As New ParameterDiscreteValue Dim paramcaja As New ParameterDiscreteValue Dim paramnumerocaja As New ParameterDiscreteValue paramtipo.Value = "SA" paramsucursal.Value = Trim(Microsoft.VisualBasic.Right(Me.CmbSucursalOrigen.Text, 4)) paramcaja.Value = CODCAJA paramnumerocaja.Value = Me.TxtNumero.Text Dim paramlist As New ParameterFields Dim paramtemp As ParameterField paramtemp = New ParameterField paramtemp.ParameterFieldName = "@CODIGO1" paramtemp.CurrentValues.Add(paramtipo) paramlist.Add(paramtemp) paramtemp = New ParameterField paramtemp.ParameterFieldName = "@CODIGO2" paramtemp.CurrentValues.Add(paramsucursal) paramlist.Add(paramtemp) paramtemp = New ParameterField paramtemp.ParameterFieldName = "@CODIGO3" paramtemp.CurrentValues.Add(paramcaja) paramlist.Add(paramtemp) paramtemp = New ParameterField paramtemp.ParameterFieldName = "@CODIGO4" paramtemp.CurrentValues.Add(paramnumerocaja) paramlist.Add(paramtemp)
443
frm_busq.CrpImprimirIngreso.ParameterFieldInfo = paramlist frm_busq.CrpImprimirIngreso.ReportSource = New Rpt_ImpIngreso frm_busq.ShowDialog() End Sub Private Sub DtpFechaRegistro_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DtpFechaRegistro.ValueChanged Me.DtpFechaRegistro.MaxDate = Today() End Sub End Class
*Clase Frm_Rep_CuadreDeCaja.vb
Imports System.Data Imports System.Data.SqlClient Imports CrystalDecisions.Shared Public Class Frm_Rep_CuadreDeCaja Inherits System.Windows.Forms.Form Private Sub TlbBotones_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles TlbBotones.ButtonClick Select Case e.Button.Tag Case "Ingresar" 'Call IngresarDatos() Case "Grabar" 'Call GrabarDatos() Case "Modificar" 'Call ModificarDatos() Case "Eliminar" 'Call EliminarDatos() Case "Buscar"
444
'Call BuscarDatos() Case "Deshacer" 'Call DeshacerDatos() Case "Imprimir" Call ImprimirDatos() Case "Salir" Call SalirDatos() End Select End Sub Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick If BARRA.Value < 5 Then BARRA.Value = BARRA.Value + 100 Else If BARRA.Value = 5 Then Timer1.Enabled = False End If End If End Sub Private Sub SalirDatos() Me.Close() End Sub Private Sub ImprimirDatos() Timer1.Enabled = True Dim frm_busq As New FrmParamImpRepCuadreDeCaja frm_busq.CrpImpRepCuadreDeCaja.ReportSource = Nothing Dim paramFechaInicio As New ParameterDiscreteValue Dim paramFechaFinal As New ParameterDiscreteValue Dim paramSucIni As New ParameterDiscreteValue Dim paramSucFin As New ParameterDiscreteValue paramFechaInicio.Value = Me.Dpt_FechaIni.Text paramFechaFinal.Value = Me.Dpt_FechaFin.Text paramSucIni.Value = Me.Txt_DesdeSucursal.Text paramSucFin.Value = Me.Txt_HastaSucursal.Text Dim paramlist As New ParameterFields Dim paramtemp As ParameterField paramtemp = New ParameterField paramtemp.ParameterFieldName = "@fechaini" paramtemp.CurrentValues.Add(paramFechaInicio) paramlist.Add(paramtemp)
445
paramtemp = New ParameterField paramtemp.ParameterFieldName = "@fechafin" paramtemp.CurrentValues.Add(paramFechaFinal) paramlist.Add(paramtemp) paramtemp = New ParameterField paramtemp.ParameterFieldName = "@desdesuc" paramtemp.CurrentValues.Add(paramSucIni) paramlist.Add(paramtemp) paramtemp = New ParameterField paramtemp.ParameterFieldName = "@hastasuc" paramtemp.CurrentValues.Add(paramSucFin) paramlist.Add(paramtemp) frm_busq.CrpImpRepCuadreDeCaja.ParameterFieldInfo = paramlist 'AGREGUE LA SIGUIENTE LINEA 'frm_busq.CrpImprimirPersonal.PrintReport() frm_busq.CrpImpRepCuadreDeCaja.ReportSource = New Rpt_ImpRepCuadreDeCaja Timer1.Enabled = False frm_busq.ShowDialog() End Sub Private Sub Dpt_FechaIni_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Dpt_FechaIni.ValueChanged Me.Dpt_FechaIni.MaxDate = Today() End Sub Private Sub Dpt_FechaFin_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Dpt_FechaFin.ValueChanged Me.Dpt_FechaFin.MaxDate = Today() End Sub End Class
* Clase Frm_Rep_DiarioVenta.vb
Imports System.Data Imports System.Data.SqlClient
446
Imports CrystalDecisions.Shared Public Class Frm_Rep_DiarioVenta Inherits System.Windows.Forms.Form Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox Dim au As String Private Sub TlbBotones_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles TlbBotones.ButtonClick Select Case e.Button.Tag Case "Ingresar" 'Call IngresarDatos() Case "Grabar" 'Call GrabarDatos() Case "Modificar" 'Call ModificarDatos() Case "Eliminar" 'Call EliminarDatos() Case "Buscar" 'Call BuscarDatos() Case "Deshacer" 'Call DeshacerDatos() Case "Imprimir" Call ImprimirDatos() Case "Salir" Call SalirDatos() End Select End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If BARRA.Value < 5 Then BARRA.Value = BARRA.Value + 100 Else If BARRA.Value = 5 Then Timer1.Enabled = False 'au = MsgBox("Bienvenido", MsgBoxStyle.Exclamation + MsgBoxStyle.OKOnly, "Sistema") End If End If End Sub Private Sub SalirDatos() Me.Close()
447
End Sub Private Sub ImprimirDatos() Timer1.Enabled = True Dim frm_busq As New FrmParamImpRepDiarioVentas frm_busq.CrpImpRepDiariodeVentas.ReportSource = Nothing Dim paramFechaInicio As New ParameterDiscreteValue Dim paramFechaFinal As New ParameterDiscreteValue Dim paramSucIni As New ParameterDiscreteValue Dim paramSucFin As New ParameterDiscreteValue paramFechaInicio.Value = Me.Dpt_FechaIni.Text paramFechaFinal.Value = Me.Dpt_FechaFin.Text paramSucIni.Value = Me.Txt_DesdeSucursal.Text paramSucFin.Value = Me.Txt_HastaSucursal.Text Dim paramlist As New ParameterFields Dim paramtemp As ParameterField paramtemp = New ParameterField paramtemp.ParameterFieldName = "@fechaini" paramtemp.CurrentValues.Add(paramFechaInicio) paramlist.Add(paramtemp) paramtemp = New ParameterField paramtemp.ParameterFieldName = "@fechafin" paramtemp.CurrentValues.Add(paramFechaFinal) paramlist.Add(paramtemp) paramtemp = New ParameterField paramtemp.ParameterFieldName = "@desdesuc" paramtemp.CurrentValues.Add(paramSucIni) paramlist.Add(paramtemp) paramtemp = New ParameterField paramtemp.ParameterFieldName = "@hastasuc" paramtemp.CurrentValues.Add(paramSucFin) paramlist.Add(paramtemp) frm_busq.CrpImpRepDiariodeVentas.ParameterFieldInfo = paramlist 'AGREGUE LA SIGUIENTE LINEA 'frm_busq.CrpImprimirPersonal.PrintReport()
448
frm_busq.CrpImpRepDiariodeVentas.ReportSource = New Rpt_ImpRepDiarioVentas Timer1.Enabled = False frm_busq.ShowDialog() End Sub Private Sub Dpt_FechaIni_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Dpt_FechaIni.ValueChanged Me.Dpt_FechaIni.MaxDate = Today() End Sub Private Sub Dpt_FechaFin_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Dpt_FechaFin.ValueChanged Me.Dpt_FechaFin.MaxDate = Today() End Sub End Class
‘ Clase Frm_Rep_Horarios.vb
Imports System.Data Imports System.Data.SqlClient Imports CrystalDecisions.Shared Public Class Frm_Rep_Horarios Inherits System.Windows.Forms.Form Dim au As String Private Sub TlbBotones_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles TlbBotones.ButtonClick Select Case e.Button.Tag Case "Ingresar" 'Call IngresarDatos() Case "Grabar" 'Call GrabarDatos() Case "Modificar" 'Call ModificarDatos()
449
Case "Eliminar" 'Call EliminarDatos() Case "Buscar" 'Call BuscarDatos() Case "Deshacer" 'Call DeshacerDatos() Case "Imprimir" Call ImprimirDatos() Case "Salir" Call SalirDatos() End Select End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If BARRA.Value < 5 Then BARRA.Value = BARRA.Value + 100 Else If BARRA.Value = 5 Then Timer1.Enabled = False 'au = MsgBox("Bienvenido", MsgBoxStyle.Exclamation + MsgBoxStyle.OKOnly, "Sistema") End If End If End Sub Private Sub SalirDatos() Me.Close() End Sub Private Sub ImprimirDatos() Timer1.Enabled = True Dim frm_busq As New FrmParamImpReporteHorarios frm_busq.CrpImpReporteHorarios.ReportSource = Nothing Dim paramDesPla As New ParameterDiscreteValue Dim paramHasPla As New ParameterDiscreteValue paramDesPla.Value = Me.Txt_DesdeSucursal.Text paramHasPla.Value = Me.Txt_HastaSucursal.Text Dim paramlist As New ParameterFields Dim paramtemp As ParameterField paramtemp = New ParameterField paramtemp.ParameterFieldName = "@desdetipo"
450
paramtemp.CurrentValues.Add(paramDesPla) paramlist.Add(paramtemp) paramtemp = New ParameterField paramtemp.ParameterFieldName = "@hastatipo" paramtemp.CurrentValues.Add(paramHasPla) paramlist.Add(paramtemp) frm_busq.CrpImpReporteHorarios.ParameterFieldInfo = paramlist frm_busq.CrpImpReporteHorarios.ReportSource = New Rpt_ImpReporteHorarios Timer1.Enabled = False frm_busq.ShowDialog() End Sub End Class
* Clase Frm_Rep_Servicios.vb
Imports System.Data Imports System.Data.SqlClient Imports CrystalDecisions.Shared Public Class Frm_Rep_Servicios Inherits System.Windows.Forms.Form Dim au As String Private Sub TlbBotones_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles TlbBotones.ButtonClick Select Case e.Button.Tag Case "Imprimir" Call ImprimirDatos() Case "Salir" Call SalirDatos() End Select
451
End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If BARRA.Value < 5 Then BARRA.Value = BARRA.Value + 100 Else If BARRA.Value = 5 Then Timer1.Enabled = False 'au = MsgBox("Bienvenido", MsgBoxStyle.Exclamation + MsgBoxStyle.OKOnly, "Sistema") End If End If End Sub Private Sub SalirDatos() Me.Close() End Sub Private Sub ImprimirDatos() Select Case Me.Cmb_TipoServicios.Text Case "Personal Trainer" Call PersonalTrainer() Case "Pilates" Call Pilates() Case "Bronceados" Call Bronceados() Case "Masajes" Call Masajes() Case "Locker" Call Locker() Case "Parqueo" Call Parqueo() End Select End Sub Private Sub PersonalTrainer() Timer1.Enabled = True Dim frm_busq As New Frm_ParamReportePersonalTrainer frm_busq.CrpReportePersonalTrainer.ReportSource = Nothing Dim paramFechaInicio As New ParameterDiscreteValue Dim paramFechaFinal As New ParameterDiscreteValue Dim paramSucIni As New ParameterDiscreteValue Dim paramSucFin As New ParameterDiscreteValue paramFechaInicio.Value = Me.Dpt_FechaIni.Text paramFechaFinal.Value = Me.Dpt_FechaFin.Text
452
Dim paramlist As New ParameterFields Dim paramtemp As ParameterField paramtemp = New ParameterField paramtemp.ParameterFieldName = "@fechaini" paramtemp.CurrentValues.Add(paramFechaInicio) paramlist.Add(paramtemp) paramtemp = New ParameterField paramtemp.ParameterFieldName = "@fechafin" paramtemp.CurrentValues.Add(paramFechaFinal) paramlist.Add(paramtemp) frm_busq.CrpReportePersonalTrainer.ParameterFieldInfo = paramlist 'AGREGUE LA SIGUIENTE LINEA 'frm_busq.CrpImprimirPersonal.PrintReport() frm_busq.CrpReportePersonalTrainer.ReportSource = New Rpt_ReportePersonalTrainer Timer1.Enabled = False frm_busq.ShowDialog() End Sub Private Sub Pilates() Timer1.Enabled = True Dim frm_busq As New Frm_ParamReportePilates frm_busq.CrpReportePilates.ReportSource = Nothing Dim paramFechaInicio As New ParameterDiscreteValue Dim paramFechaFinal As New ParameterDiscreteValue Dim paramSucIni As New ParameterDiscreteValue Dim paramSucFin As New ParameterDiscreteValue paramFechaInicio.Value = Me.Dpt_FechaIni.Text paramFechaFinal.Value = Me.Dpt_FechaFin.Text Dim paramlist As New ParameterFields Dim paramtemp As ParameterField paramtemp = New ParameterField paramtemp.ParameterFieldName = "@fechaini" paramtemp.CurrentValues.Add(paramFechaInicio) paramlist.Add(paramtemp)
453
paramtemp = New ParameterField paramtemp.ParameterFieldName = "@fechafin" paramtemp.CurrentValues.Add(paramFechaFinal) paramlist.Add(paramtemp) frm_busq.CrpReportePilates.ParameterFieldInfo = paramlist 'AGREGUE LA SIGUIENTE LINEA 'frm_busq.CrpImprimirPersonal.PrintReport() frm_busq.CrpReportePilates.ReportSource = New Rpt_ReportePilates Timer1.Enabled = False frm_busq.ShowDialog() End Sub Private Sub Bronceados() Timer1.Enabled = True Dim frm_busq As New Frm_ParamReporteBronceados frm_busq.CrpReporteBronceados.ReportSource = Nothing Dim paramFechaInicio As New ParameterDiscreteValue Dim paramFechaFinal As New ParameterDiscreteValue Dim paramSucIni As New ParameterDiscreteValue Dim paramSucFin As New ParameterDiscreteValue paramFechaInicio.Value = Me.Dpt_FechaIni.Text paramFechaFinal.Value = Me.Dpt_FechaFin.Text Dim paramlist As New ParameterFields Dim paramtemp As ParameterField paramtemp = New ParameterField paramtemp.ParameterFieldName = "@fechaini" paramtemp.CurrentValues.Add(paramFechaInicio) paramlist.Add(paramtemp) paramtemp = New ParameterField paramtemp.ParameterFieldName = "@fechafin" paramtemp.CurrentValues.Add(paramFechaFinal) paramlist.Add(paramtemp) frm_busq.CrpReporteBronceados.ParameterFieldInfo = paramlist 'AGREGUE LA SIGUIENTE LINEA 'frm_busq.CrpImprimirPersonal.PrintReport() frm_busq.CrpReporteBronceados.ReportSource = New Rpt_ReporteBronceados
454
Timer1.Enabled = False frm_busq.ShowDialog() End Sub Private Sub Masajes() Timer1.Enabled = True Dim frm_busq As New Frm_ParamReporteMasajes frm_busq.CrpReporteMasajes.ReportSource = Nothing Dim paramFechaInicio As New ParameterDiscreteValue Dim paramFechaFinal As New ParameterDiscreteValue Dim paramSucIni As New ParameterDiscreteValue Dim paramSucFin As New ParameterDiscreteValue paramFechaInicio.Value = Me.Dpt_FechaIni.Text paramFechaFinal.Value = Me.Dpt_FechaFin.Text Dim paramlist As New ParameterFields Dim paramtemp As ParameterField paramtemp = New ParameterField paramtemp.ParameterFieldName = "@fechaini" paramtemp.CurrentValues.Add(paramFechaInicio) paramlist.Add(paramtemp) paramtemp = New ParameterField paramtemp.ParameterFieldName = "@fechafin" paramtemp.CurrentValues.Add(paramFechaFinal) paramlist.Add(paramtemp) frm_busq.CrpReporteMasajes.ParameterFieldInfo = paramlist 'AGREGUE LA SIGUIENTE LINEA 'frm_busq.CrpImprimirPersonal.PrintReport() frm_busq.CrpReporteMasajes.ReportSource = New Rpt_ReporteMasajes Timer1.Enabled = False frm_busq.ShowDialog() End Sub Private Sub Locker() Timer1.Enabled = True Dim frm_busq As New Frm_ParamReporteLocker frm_busq.CrpReporteLocker.ReportSource = Nothing
455
Dim paramFechaInicio As New ParameterDiscreteValue Dim paramFechaFinal As New ParameterDiscreteValue Dim paramSucIni As New ParameterDiscreteValue Dim paramSucFin As New ParameterDiscreteValue paramFechaInicio.Value = Me.Dpt_FechaIni.Text paramFechaFinal.Value = Me.Dpt_FechaFin.Text Dim paramlist As New ParameterFields Dim paramtemp As ParameterField paramtemp = New ParameterField paramtemp.ParameterFieldName = "@fechaini" paramtemp.CurrentValues.Add(paramFechaInicio) paramlist.Add(paramtemp) paramtemp = New ParameterField paramtemp.ParameterFieldName = "@fechafin" paramtemp.CurrentValues.Add(paramFechaFinal) paramlist.Add(paramtemp) frm_busq.CrpReporteLocker.ParameterFieldInfo = paramlist 'AGREGUE LA SIGUIENTE LINEA 'frm_busq.CrpImprimirPersonal.PrintReport() frm_busq.CrpReporteLocker.ReportSource = New Rpt_ReporteLocker Timer1.Enabled = False frm_busq.ShowDialog() End Sub Private Sub Parqueo() Timer1.Enabled = True Dim frm_busq As New Frm_ParamReporteParqueo frm_busq.CrpReporteParqueo.ReportSource = Nothing Dim paramFechaInicio As New ParameterDiscreteValue Dim paramFechaFinal As New ParameterDiscreteValue Dim paramSucIni As New ParameterDiscreteValue Dim paramSucFin As New ParameterDiscreteValue paramFechaInicio.Value = Me.Dpt_FechaIni.Text paramFechaFinal.Value = Me.Dpt_FechaFin.Text Dim paramlist As New ParameterFields Dim paramtemp As ParameterField
456
paramtemp = New ParameterField paramtemp.ParameterFieldName = "@fechaini" paramtemp.CurrentValues.Add(paramFechaInicio) paramlist.Add(paramtemp) paramtemp = New ParameterField paramtemp.ParameterFieldName = "@fechafin" paramtemp.CurrentValues.Add(paramFechaFinal) paramlist.Add(paramtemp) frm_busq.CrpReporteParqueo.ParameterFieldInfo = paramlist 'AGREGUE LA SIGUIENTE LINEA 'frm_busq.CrpImprimirPersonal.PrintReport() frm_busq.CrpReporteParqueo.ReportSource = New Rpt_ReporteParqueo Timer1.Enabled = False frm_busq.ShowDialog() End Sub Private Sub Dpt_FechaIni_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Dpt_FechaIni.ValueChanged Me.Dpt_FechaIni.MaxDate = Today() End Sub Private Sub Dpt_FechaFin_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Dpt_FechaFin.ValueChanged Me.Dpt_FechaFin.MaxDate = Today() End Sub End Class
* clase Frm_ReportedeAsistencias.vb
Imports System.Data Imports System.Data.SqlClient Imports CrystalDecisions.Shared
457
Public Class Frm_ReportedeAsistencias Inherits System.Windows.Forms.Form Private Sub TlbBotones_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles TlbBotones.ButtonClick Select Case e.Button.Tag Case "Ingresar" 'Call IngresarDatos() Case "Grabar" 'Call GrabarDatos() Case "Modificar" 'Call ModificarDatos() Case "Eliminar" 'Call EliminarDatos() Case "Buscar" 'Call BuscarDatos() Case "Deshacer" 'Call DeshacerDatos() Case "Imprimir" Call ImprimirDatos() Case "Salir" Call SalirDatos() End Select End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If BARRA.Value < 5 Then BARRA.Value = BARRA.Value + 100 Else If BARRA.Value = 5 Then Timer1.Enabled = False 'au = MsgBox("Bienvenido", MsgBoxStyle.Exclamation + MsgBoxStyle.OKOnly, "Sistema") End If End If End Sub Private Sub SalirDatos()
458
Me.Close() End Sub Private Sub ImprimirDatos() Timer1.Enabled = True Dim frm_busq As New FrmParamImpRepAsistencias frm_busq.Crp_RepAsistencias.ReportSource = Nothing Dim paramFechaInicio As New ParameterDiscreteValue Dim paramFechaFinal As New ParameterDiscreteValue Dim paramSucIni As New ParameterDiscreteValue Dim paramSucFin As New ParameterDiscreteValue paramFechaInicio.Value = Me.Dpt_FechaIni.Text paramFechaFinal.Value = Me.Dpt_FechaFin.Text paramSucIni.Value = Me.Txt_DesdeSucursal.Text paramSucFin.Value = Me.Txt_HastaSucursal.Text Dim paramlist As New ParameterFields Dim paramtemp As ParameterField paramtemp = New ParameterField paramtemp.ParameterFieldName = "@fechaini" paramtemp.CurrentValues.Add(paramFechaInicio) paramlist.Add(paramtemp) paramtemp = New ParameterField paramtemp.ParameterFieldName = "@fechafin" paramtemp.CurrentValues.Add(paramFechaFinal) paramlist.Add(paramtemp) paramtemp = New ParameterField paramtemp.ParameterFieldName = "@desdeced" paramtemp.CurrentValues.Add(paramSucIni) paramlist.Add(paramtemp) paramtemp = New ParameterField paramtemp.ParameterFieldName = "@hastaced" paramtemp.CurrentValues.Add(paramSucFin) paramlist.Add(paramtemp) frm_busq.Crp_RepAsistencias.ParameterFieldInfo = paramlist frm_busq.Crp_RepAsistencias.ReportSource = New Rpt_ImpRepAsistencias
459
Timer1.Enabled = False frm_busq.ShowDialog() End Sub Private Sub Dpt_FechaIni_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Dpt_FechaIni.ValueChanged Me.Dpt_FechaIni.MaxDate = Today() End Sub Private Sub Dpt_FechaFin_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Dpt_FechaFin.ValueChanged Me.Dpt_FechaFin.MaxDate = Today() End Sub Private Sub Btn_Desde_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Desde.Click If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If Dim frm_busq As New Frm_Buscar S_Codigo = "" TablaBuscada = "VIS_CONS_CLIENTES" Campo1 = "CEDULA" Campo2 = "NOMBRE" Campo3 = "Busqueda Por Cliente" frm_busq.ShowDialog() If S_Codigo <> "" Then Txt_DesdeSucursal.Text = S_Codigo 'Call BuscaNombreCli() End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub Private Sub Btn_Hasta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Hasta.Click If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If Dim frm_busq As New Frm_Buscar S_Codigo = "" TablaBuscada = "VIS_CONS_CLIENTES" Campo1 = "CEDULA" Campo2 = "NOMBRE"
460
Campo3 = "Busqueda Por Cliente" frm_busq.ShowDialog() If S_Codigo <> "" Then Txt_HastaSucursal.Text = S_Codigo 'Call BuscaNombreCli() End If If Not dr.IsClosed Then : dr.Close() : End If If cn.State = ConnectionState.Closed Then : cn.Open() : End If End Sub End Class
461
CAPITULO 3
3. Configuración del Sistema
3.1. Instalación
Instalamos Microsoft Visual Studio.Net 2003
Instalamos el SQL Server 2000
Como hemos trabajado con Cristal Report, debemos instalarlo
en cada máquina de los usuarios, esto también es por el tema
de las licencias de permiso.
Instalar el spread 6.0 en cada máquina
Ejecutamos el script de la base de datos
Creamos el ODBC en cada máquina donde se intalará el
sistema
Creamos la carpeta reportes en la siguiente ruta:
C:\gimnasios1-2
Creamos la carpeta imágenes en la siguiente ruta
C:\gimnasios1-2
Se instala el ejecutable gimnasios1-2
462
3.2. Ruta de la Base de Datos
C:\Archivos de programa\Microsoft SQL
Server\MSSQL\data\gym_Data.MDF
3.3. Usuario de la Base de Datos
Hemos creado un usuario de la base de datos con nombre sa y el
password asignado es sasa
UNIVERSIDAD DE GUAYAQUIL
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
Sistema para Controlar el Acceso a Gimnasios
TESIS DE GRADO
Previo a la Obtención del Título de:
INGENIERO EN SISTEMAS COMPUTACIONALES
MANUAL TECNICO
Autores:
Mariuxi Rodríguez Jurado Richard Sánchez Pincay
GUAYAQUIL – ECUADOR
Año: 2007
INDICE GENERAL
CAPITULO 1
1. Tablas Base de Datos 1
1.1. Diccionario de Datos 1-44
CAPITULO 2
2.1. Creación del Script de la base de datos 45-67 2.2. Diseño del esquema de las tablas 67-82 2.3. Procedimientos 82 2.3.1. archivo_contable_cab 82-83 2.3.2. archivo_contable_det 83 2.3.3. archivo_contable_pag 83-84
2.3.4. fac_busca_caducidad_cliente 84
2.3.5. fac_busca_detalles 85
2.3.6. fac_busca_factura 86
2.3.7. fac_busca_parametros 86-87
2.3.8. fac_busca_secuencia 87
2.3.9. fac_cons_espec 88-90
2.3.10. fac_eli_bronceados 90-91
2.3.11. fac_eli_cabecera 91-92
2.3.12. fac_eli_detalles 92-93
2.3.13. fac_eli_existencias 93
2.3.14. fac_eli_locker 94
2.3.15. fac_eli_masajes 94
2.3.16. fac_eli_parqueo 95
2.3.17. fac_eli_personalt 95-96
2.3.18. fac_eli_pilates 96
2.3.19. fac_ing_asistencias 96-97
2.3.20. fac_ing_bronceados 97-98
2.3.21. fac_ing_cab_factura 98-99
2.3.22. fac_ing_cliente 100-101
2.3.23. fac_ing_combo_cabecera 101-102
2.3.24. fac_ing_detalle 102-103
2.3.25. fac_ing_detalle_combo 103-104
2.3.26. fac_ing_detalle_platos 104-105
2.3.27. fac_ing_existencias 105
2.3.28. fac_ing_locker 106
2.3.29. fac_ing_masajes 106-107
2.3.30. fac_ing_pagos 107-109
2.3.31. fac_ing_parqueo 109-110
2.3.32. fac_ing_personalt 110-111
2.3.33. fac_ing_pilates 111-112
2.3.34. fac_ing_platos_cabecera 112-113
2.3.35. fac_ing_prodserv 113-114
2.3.36. fac_ing_secuencia 114
2.3.37. fac_mod_bronceados 114-115
2.3.38. fac_mod_cliente 115-117
2.3.40. fac_mod_combo_cabecera 117
2.3.41. fac_mod_locker 117-118
2.3.42. fac_mod_masajes 118-119
2.3.43. fac_mod_memb_cliente 119
2.3.44. fac_mod_parqueo 120
2.3.45. fac_mod_personalt 120-121
2.3.46. fac_mod_pilates 121-122
2.3.47. fac_mod_platos_cabecera 122-123
2.3.48. fac_mod_prodserv 123-124
2.3.49. fac_mod_secuencia 124
2.3.50. imp_bronceados1 125
2.3.51. imp_clientes 126
2.3.52. imp_combo 126-127
2.3.53. imp_locker 127-128
2.3.54. imp_masajes1 128
2.3.55. imp_masajes2 129
2.3.56. imp_parqueo 129-130
2.3.57. imp_personal1 130-131
2.3.58. imp_personal2 131
2.3.59. imp_pilates1 132
2.3.60. imp_pilates2 132
2.3.61. imp_platos 133-134
2.3.62. imp_productos_serv 134
2.3.63. imp_rep_asistencias 135
2.3.64. imp_rep_bancos 135-136
2.3.65. imp_rep_combos 136-137
2.3.66. imp_rep_cuadredecaja 137-139
2.3.67 imp_rep_diariodeventa 139-141
2.3.68. imp_rep_existencias 141-142
2.3.69. imp_rep_montosxclientes 142-143
2.3.70. imp_rep_movimientoproductos 143-144
2.3.71. imp_rep_personaltrainer 144-145
2.3.72. imp_rep_platos 145
2.3.73. imp_rep_productos 145-147
2.3.74. imp_rep_tarjetas 147
2.3.75. imp_rep_ventadeproductos 148-149
2.3.76. imp_rep_ventasxhoras 149-150
2.3.77. imp_rep_ventasxmeses 150-151
2.3.78. imp_rep_ventasxplatos 151-152
2.3.79. imp_rep_ventasxvendedor 152-153
2.3.80. inv_busca_cab 153-154
2.3.81. inv_busca_cabecera 154
2.3.82. inv_busca_detalles 154-155
2.3.83. inv_eli_cabecera 155-156
2.3.84. inv_eli_detalles 156
2.3.85. inv_imp_ingreso 157
2.3.86. inv_ing_cabecera 157-159
2.3.87. inv_ing_ciudad 159-160
2.3.88. inv_ing_detalle 160-161
2.3.89. inv_mod_ciudad 161
2.3.90. rep_bronceados 162
2.3.91. rep_locker 162-163
2.3.92. rep_masajes 163-164
2.3.93. rep_parqueo 164
2.3.94. rep_personaltrainer 165
2.3.95. rep_pilates 165-166
2.3.96. seg_borra_spread 166
2.3.97. seg_busca_cab 167
2.3.98. seg_busca_cab_combo 167-168
2.3.99. seg_busca_cab_platos 168
2.3.100. seg_busca_datos_bronceados 168-169
2.3.101. seg_busca_datos_locker 169
2.3.102. seg_busca_datos_masajes 170
2.3.103. seg_busca_datos_parqueo 170-171
2.3.104. seg_busca_datos_personal 171
2.3.105. seg_busca_datos_pilates 171-172
2.3.106. seg_busca_det_combo 172-173
2.3.107. seg_busca_det_platos 173
2.3.108. seg_busca_especif 173-177
2.3.109. seg_busca_especif1 177-178
2.3.110. seg_busca_gen 178-182
2.3.111. seg_busca_horarios 182-183
2.3.112. seg_busca_mem 183
2.3.113. seg_busca_numero 183-185
2.3.114. Seg_Busca_Permisos 185
2.3.115. seg_busca_sesion 185-186
2.3.116. seg_busca_sucurcaja 186-187
2.3.117. seg_busca_sucursal 187-188
2.3.118. seg_busca_totales 188
2.3.119. seg_busca_usu 188-189
2.3.120. seg_cons_caja 189
2.3.121. seg_cons_parametro 189
2.3.122. seg_cons_sucur 190
2.3.123. seg_consul_bronceados 190
2.3.124. seg_consul_horario 191
2.3.125. seg_consul_masajes 191-192
2.3.126. seg_consul_personal 192
2.3.127. seg_consul_pilates 192-193
2.3.128. seg_consul_usuario 193
2.3.129. seg_eli_perxusu 194
2.3.130. seg_ing_caja 194
2.3.131. seg_ing_horarios 195
2.3.132. seg_ing_parametro 195-196
2.3.133. seg_ing_perxusu 196-197
2.3.134. seg_ing_secuencia 197
2.3.135. seg_ing_sucursal 197-198
2.3.136. seg_ing_tarjetas 198
2.3.137. seg_ing_usuario 198-199
2.3.138. seg_ing_zona 199-200
2.3.139. seg_mod_banco 200
2.3.140. seg_mod_horarios 201-202
2.3.141. seg_mod_parametro 202
2.3.142. seg_mod_sucursal 203
2.3.143. seg_mod_tarjeta 203-204
2.3.144. seg_mod_usuario 204-205
2.3.145. seg_mod_zona 205
2.3.146. seg_permisos 205-206
2.3.147. seg_permxusu 206-207
2.3.148. seg_upd_perxusu 207
2.3.149. sicag_busqueda_espe 208
2.3.150. sicag_busqueda_gen 208-209
2.3.151. verifica_existencia 209-210
2.4. Índice (Campos Primarios) 210-216
2.5. Validación de Campo 216
2.5.1 Identificación de Campos obligatorios 216-221
2.6. Código Fuente 221-460
CAPITULO 3
3. Configuración del Sistema 461
3.1. Instalación 461
3.2. Ruta de la Base de datos 462
3.3. Usuario de la Base de datos 462
1
CAPITULO 1
1. ACCESO AL SISTEMA
Para ingresar al sistema SICAG debemos registrar un usuario y una
clave, en esta ventana también consta el detalle de la sucursal, en el
caso de que se tengan varias filiales.
.
Una vez realizado este paso nos aparecerá la pantalla de bienvenida
Al aceptar se nos presenta la pantalla donde consta el menú principal
1.1. MENÚ PRINCIPAL
2
Se presenta la siguiente pantalla donde tenemos el menú archivo,
seguridad, facturación e inventario
3
CAPITULO 2
2. MÓDULO FACTURACIÓN
2.1. Mantenimiento
2.1.1. Ingreso de Cliente (Directorio de Socios)
En el menú principal para poder acceder al Directorio de Socios
ya sea para ingresar un nuevo registro como para modificar algún
dato del socio se debe ingresar a la siguiente ventana. Pero el
ingreso estará restringido para ciertos usuarios ya que no todos
podrán manipular el sistema.
Cuando damos clic en Directorio de Socios se nos presenta la
siguiente pantalla:
4
Del lado izquierdo se irán grabando en orden alfabético los socios
que se ingresan. Para ingresar un socio damos clic en el botón
INGRESAR se habilitan las celdas para poder escribir los datos
que solicitan como cédula, nombre, apellido, dirección, empresa,
fecha de nacimiento, sexo, teléfono, e-mail, ciudad, zona, estado
civil. El usuario le da el estado de activo o inactivo de acuerdo al
estado de su membresía.
5
La secuencia es un número que se incrementa cada vez que se
realiza una transacción.
2.1.1.1. Tipo de Cliente
Se debe definir que tipo de socio es el que se está ingresando al
gimnasio, pueden ser:
2.1.1.1.1.Cliente.- Es una persona que se inscribe como socio al
gimnasio pagando una membresía
2.1.1.1.2.Empleado.- Es una persona que trabaja en el gimnasio
6
2.1.1.1.3.Proveedor- Es la persona que nos provee de algún
servicio ya sea colas, toallas, etc.
2.1.1.1.4.Usuario.- Es una persona que maneja el sistema
2.1.1.2. Membresía
Se debe definir que tipo de membresía va a pagar el socio, estas
pueden ser:
2.1.1.2.1. SEMANAL
2.1.1.2.2. MENSUAL
2.1.1.2.3. TRIMESTRAL
7
2.1.1.2.4. SEMANAL
2.1.1.2.3. ANUAL
2.1.1.2.4. GOLD
2.1.1.2.5. LIMITED
2.1.1.2.6. OTRAS MEMBRESIAS
2.1.1.3. Guía
Aquí se definen los nombres de las personas que estarán de guía
en el gimnasio, se abrirá un listado y se deberá escoger al
instructor.
8
2.1.1.4. CADUCIDAD DE LA MEMBRESÍA
Esta fecha se modificará dependiendo de la membresía
seleccionada y una vez hecha la factura.
2.1.2. Catálogo de Tarjetas de Crédito
Se tiene un registro de las tarjetas de crédito con las que trabajará el
gimnasio, así mismo tenemos la opción de poder incrementar en el
sistema más tarjetas siempre y cuando se cumpla con las
condiciones de cada institución financiera.
9
Damos clic en TARJETA DE CRÉDITO y se despliega la siguiente ventana
Si queremos ingresar una nueva tarjeta damos clic en INGRESAR,
se habilitan las celdas para llenar (descripción, abreviatura, estado),
10
también se habilita la lista de los bancos existentes. El dato
ingresado (tarjeta de crédito) se reflejará a la hora de llenar la
factura. Este tema lo describiremos mejor en la facturación.
Se da clic en grabar y el sistema agrega la nueva tarjeta.
2.1.3. Provincias y Ciudades
Aquí se registran las provincias y ciudades haciendo relación entre
ellas de acuerdo a la realidad. Estos datos los utilizamos en el
momento de ingresar un cliente al gimnasio.
11
S ingresan las provincias y se relaciona cada provincia ingresando la
ciudad correspondiente. Tanto la provincia como la ciudad tendrán
un códigos.
Damos clic en provincia y ciudades y se nos presenta la siguiente pantalla
donde comenzamos a ingresar las provincias y ciudades que nos consten
en el sistema.
12
2.2. Procesos
2.2.1. Facturas
Se registrará el ingreso de información de cada socio, estos
ingresos pueden ser por adquirir una membresía, por adquirir
algún servicio.
Damos clic en facturación:
13
Estamos listo para llenar la factura a través del botón
INGRESAR, procedemos a buscar el cliente de nuestro listado
(este paso es cuando llenamos el cuadro de Directorio de
Socios)
Una vez que tenemos el nombre del cliente procedemos a
registrar el consumo
14
Clic se despliega la pantalla BUSQUEDA GENERAL de
donde seleccionamos el servicio que desea, como estos
servicios se encuentran definidos nos aparecerá con el valor
respectivo (la definición de los costos la veremos mas
adelante en la pantalla de mantenimiento de productos y
servicios).
Se define la forma de pago habilitando el casillero, luego se
procede a definir si es en efectivo, con cheque, tarjeta de
crédito o a crédito. Si es con tarjeta de Crédito se debe llenar
15
el campo detallando la tarjeta que es, número de tarjeta,
nombre del cliente, teléfono del cliente y número de lote de
tarjeta; luego grabamos e imprimimos.
2.2.2. Devoluciones (Nota de Crédito)
Las devoluciones o notas de crédito sirven para devolver al socio
por algún motivo: dinero, cheque o voucher recibido por los
puntos de caja.
Se ingresa de la siguiente manera:
17
Vemos que ya hemos dado clic en la opción MODIFICAR por
lo que nos piden que ingresemos el numero de factura que
vamos a cambiar para la devolución, cuando digitamos el
número de la factura automáticamente se nos presentan los
datos de esa factura y de ahí procedemos a realizar los
cambios para la devolución.
Nos podemos dar cuenta que eliminamos el rubro VASO
COLA MEDIANO por lo que el valor de la factura disminuyó,
procedemos a dar clic en grabar y nos aparece el cuadro
DEVOLUCION GENERADA EXITOSAMENTE.
18
Se ha generado la devolución y el sistema lo registra.
2.2.3. LECTURA DE MARCADAS
Nos permitirá importar la asistencia de socios desde el reloj a la
PC y guardarlo a la base de datos SQL.
19
Damos clic en LECTURA DE MARCADAS de ahí aparece el
siguiente recuadro, donde debemos indicar de que fecha
hasta que fecha deseamos hacer el importe de información,
luego damos clic en el botón IMPORTAR y listo.
2.2.4. CREACION DE COMBOS
Sirve cuando se quiera definir alguna promoción para llamar la
atención de los socios y adquirir más clientela, hacer
promociones de comidas a degustar.
20
Damos clic en creación de combos para definir en que consiste,
aparece la pantalla y clic en INGRESAR, automáticamente se
genera el código del combo.
Podemos notar que el código se genera aleatoriamente como se
formen los combos, se habilita la celda para poner el nombre al
código, en el detalle para elegir en que consiste el combo damos
clic en el botoncito se nos abre el casillero de BUSQUEDA
GENERAL (Que se ha demostrado anteriormente como funciona)
seleccionamos y nos aparece el nombre del producto con su precio
de venta al público normal y el precio que quedaría por la
promoción.
Debemos recordar que los componentes, servicios nos
proporciona la base de Mantenimiento de productos y servicios.
21
2.2.5. Ticket de Servicios
Son los tickets que se generaran para los socios que deseen
adquirir un servicio adicional en el gimnasio, que pueden ser de
personal trainer, pilates, masaje, bronceadores, locker y parqueo.
También podemos modificar algún ticket (se debe recordar que a
los usuarios se les da restricciones y permisos para manejar el
sistema, lo veremos mas adelante). Se ingresa en el menú de la
siguiente manera:
2.2.5.1. Ticket Personal Trainer
Sirve para separar turno a un socio con un personal trainer en
especial. Si la persona que ella escoge ya está ocupado para la hora
que requiere el sistema le emitirá un mensaje indicándole.
22
Procedemos a dar clic en INGRESAR se habilitan los campos, el
campo número el sistema lo alimenta automáticamente en orden
secuencial, nos da la opción de buscar al cliente en el listado que
tenemos por medio del campo cédula, así mismo buscar a la
persona que el cliente elija PERSONAL TRAINER, indicamos las
hora (hemos dividido el tiempo en lapsos de una hora).
Procedemos a grabar dando clic en botón grabar
2.2.5.2. Ticket Pilates
Para separar turnos para el servicio de pilates, damos clic en el
botón ingresar y se habilitan las celdas, menos la de número porque
23
es aleatorio, el sistema lo genera. Una vez ingresado el nombre del
cliente y designado el instructor de pilates procedemos a grabar.
2.2.5.3. Tickets Masajes
Procedemos de la misma manera explicada en pilates y personal
trainer. Separamos turno a un socio para el servicio de masajes,
indicamos de que hora a que hora tienen turnos.
24
2.2.5.4. Ticket Bronceados
De igual manera ingresamos los datos que nos solicitan a excepción
del instructor, cuyo campo no existe, solo se define la hora.
25
2.2.5.5. Ticket de Locker
Registramos el nombre del socio que solicita el servicio, se refleja el
tipo de membresía que tiene. Una vez ingresado los datos
procedemos a grabar. Con esto ya definimos el espacio físico del
locker que le corresponde al socio.
2.2.5.6. Ticket de Parqueo Estos tickets sirven para definir un espacio físico en el área del
parqueo, ingresamos los datos del socio que solicita el servicio
automáticamente se refleja el tipo de membresía que tienen.
26
Todos Los tickets una vez grabados procedemos a imprimirlos para
dárselos a los socios solicitantes. Ejemplo:
27
2.2.6. Exportar Archivo DBF
Debemos procesar el archivo de socios al reloj, es decir enviar la
información de la Pc (de la base de datos) al reloj. El archivo será
diseñado por el sistema de acuerdo a los estándares del reloj.
Damos clic en EXPORTAR ARCHIVO DBF de ahí aparece el
siguiente recuadro, donde debemos dar clic en el botón EXPORTAR
y listo, comienza el proceso.
28
2.2.7. Archivo texto para Contabilidad
Este archivo servirá para exportar archivos planos para la respectiva
contabilización en el sistema de contabilidad.
Damos clic en ARCHIVO TEXTO PARA CONTABILIDAD, nos
aparece esta ventana y debemos seleccionar la fecha inicial y la
fecha final que deseamos exportar, así como desde que sucursal
hasta que sucursal.
29
2.2.8. Creación de Platos
Para la creación de platos nos basamos en lo ingresado en
Mantenimiento de productos y servicios; esto es en el momento de
realizar la búsqueda de los componentes del plato a preparar.
Se accede de la siguiente manera:
Damos clic en CREACION DE PLATOS y procedemos a detallar los
ingredientes que automáticamente detallaran sus valores
30
2.3. Consultas / Reportes
Los reportes comprenden todos los documentos de los registros y
archivos de las transacciones. Esta salida de información sirve para
la toma de decisiones ya sea de manera visual o impresa.
2.3.1. Reporte de Servicios
Encontramos los reportes de ticket por fecha y los reportes de
personal trainer
2.3.1.1. Ticket por Fecha Podremos apreciar un reporte de los tickets que se hayan emitido
por fechas de los diferentes servicios (bronceados, masajes, locker,
etc) que ofrece el gimnasio
31
Damos clic en TICKETS POR FECHAS, se nos despliega la
siguiente ventana
Debemos elegir de que fecha a que fecha queremos consultar y
elegir el tipo de servicio
32
2.3.1.1.1. Tipo de Servicio Personal Trainer por Fecha
Elegimos el reporte para personal trainer, debemos indicar de que
fecha a que fecha queremos consultar, una vez que lo definimos
damos clic en el botón imprimir. Saldrá impreso el reporte como a
continuación podemos observar.
33
2.3.1.1.2. Reporte de Pilates por fecha
Elegimos el reporte de pilates por fecha, debemos indicar de que
fecha a que fecha queremos consultar, una vez que lo definimos
damos clic en el botón imprimir. Saldrá impreso el reporte como a
continuación podemos observar.
34
2.3.1.1.3. Reporte de bronceados por fecha Elegimos el reporte de bronceados por fecha, debemos indicar de
que fecha a que fecha queremos consultar, una vez que lo definimos
35
damos clic en el botón imprimir. Saldrá impreso el reporte como a
continuación podemos observar.
2.3.1.1.4. Reporte de masajes por fecha Elegimos el reporte de masajes por fecha, debemos indicar de que
fecha a que fecha queremos consultar, una vez que lo definimos
36
damos clic en el botón imprimir. Saldrá impreso el reporte como a
continuación podemos observar.
2.3.1.1.5. Reporte de parqueo por fecha
Elegimos el reporte de parqueo por fecha, debemos indicar de que
fecha a que fecha queremos consultar, una vez que lo definimos
38
2.3.1.1.6. Reporte de locker por fecha
Elegimos el reporte de locker por fecha, debemos indicar de que
fecha a que fecha queremos consultar, una vez que lo definimos
damos clic en el botón imprimir. Saldrá impreso el reporte como a
continuación podemos observar.
39
2.3.1.2. Reporte de Personal Trainer
Presenta el reporte de los turnos que han tenido los personal trainer
y detallan el nombre de los clientes. Constan los campos horas,
fecha, cedula y nombre del cliente y el tipo de membresía. Al final
muestra el total de clientes que ha tenido cada entrenador.
Damos clic en REPORTE DE PERSONAL TRAINER y nos aparece
el siguiente cuadro donde indicamos la fecha inicial y fecha final de
búsqueda y asignamos la búsqueda por código del personal trainer.
40
Continuamos dando clic en imprimir y nos presenta el reporte
agrupados por personal trainer indicándonos a cuantos socios a
atendido durante las fechas que seleccionamos.
2.3.2. Reporte de Clientes
Veremos todos aquellos reportes que tienen que ver con los
movimientos de los clientes.
Tenemos los siguientes:
41
2.3.2.1. Reporte Clientes por Sexo
Accedemos de la siguiente manera:
Damos clic en REPORTE CLIENTES X SEXO y nos aparece
directamente el reporte clasificado en dos grupos (sexo masculino y
sexo femenino) con sus respectivos totales de socios.
43
2.3.2.2. Reporte Clientes por Secuencia
Nos indica el listado de los socios con sus respectivos datos de
acuerdo a la secuencia que han tenido.
Damos clic en REPORTE CLIENTES POR SECUENCIA y
tendremos nuestro reporte
44
2.3.2.3. Reporte Clientes por Tipo de Membresía
El Listado que nos aparecerá detallará los clientes de acuerdo a la
membresía que tienen, los separará en bloques indicando el total de
socios.
45
2.3.2.4. Listado de Clientes Activos
Mostrará el listado de los socios que se encuentran al día es decir
que el pago que hicieron (la membresía que tienen) se encuentra
vigente. Este reporte podría servir de ayuda cuando queremos hacer
un sondeo para llamar a las personas que ya ingresaron por primera
vez al gimnasio y no han renovado su membresía.
46
2.3.2.5. Reporte de Asistencia de Socios
Seleccionamos del menú principal como indica el grafico hasta dar
clic en Reporte de Asistencia de Socios.
De ahí se nos presenta la siguiente pantalla donde debemos indicar
de que fecha (inicial) hasta que fecha (final) y desde que número de
cédula hasta que número de cédula queremos buscar.
47
Una vez definido los campos damos clic en imprimir y se nos
muestra el reporte que se imprimirá.
Presenta el reporte de los socios de su asistencia al gimnasio
detallando la hora, fecha y el tipo de membresía que tienen.
48
2.3.3. Reporte de Ventas
Ingresamos de la manera como nos indica el gráfico, podemos notar
que existe un desglose en REPORTE DE VENTAS, como: Diario de
ventas, ventas por forma de pago, ventas por producto, ventas por
banco, ventas por meses, ventas por vendedor, ventas por tarjeta,
ventas por hora.
2.3.3.1. Diario de Ventas
Muestra un reporte detallado de las ventas que se encuentran en el
lapso de tiempo detallado en la fecha de inicio y fin. El reporte
constas de sucursales, vendedor, cliente, nombre del cliente,
subtotal, descuentos, impuesto, total efectivo, cheque, tarjeta y
crédito.
49
Se nos presenta la siguiente pantalla donde debemos indicar las
fechas de búsqueda tanto de inicio y final, así como de cuales
sucursales queremos el reporte.
Una vez definido los campos damos clic en el botón imprimir y nos
muestra el reporte, para su posterior impresión.
50
2.3.3.2. Ventas por Forma de Pago
El reporte presentará bloques de información por sucursales donde
se detalla el vendedor y las diferentes formas de pago.
De igual manera indico fechas de inicio y fin, así como defino las
sucursales.
52
2.3.3.3. Ventas por Producto
Nos muestra el listado de los productos vendidos por sucursales, al
final muestra el total de lo vendido en cada una. Detalla código,
nombre, cantidad, venta neta.
Definimos de que fecha a que fecha queremos el reporte
53
Damos clic en imprimir y nos muestra el reporte
2.3.3.4. Ventas por Banco Este reporte presenta las ventas que se han hecho en las diferentes
sucursales y que nos han pagado con cheques de diferentes
bancos. Se agrupan por sucursales y en cada sucursal se agrupan
por bancos, mostrando el total en cada banco.
55
2.3.3.5. Ventas por Meses
El reporte nos presenta las ventas hechas en diferentes sucursales
(de acuerdo a las que se indiquen), agrupará las ventas por meses y
mostrará el total en cada sucursal.
Definimos de que fecha a que fecha deseamos el reporte
56
2.3.3.6. Ventas por Vendedor
Nos pedirá que ingresemos fecha de inicio y fin, sucursales y
definamos los vendedores para consultar las ventas que han tenido.
Este reporte detallará en grupos de sucursales los vendedores con
sus respectivas ventas y al final mostrará el total general.
58
2.3.3.7. Ventas por Tarjeta
Presenta las ventas que se han hecho clasificadas por grupos de
tarjetas de crédito y muestra el total de cada venta. Constan los
rubros fecha, valor, cliente, # de tarjeta y lote.
Detallamos de que fecha hasta que fecha deseamos el reporte
59
2.3.3.8. Ventas por Hora
Detalla las ventas (cantidad) realizadas por horas en cada sucursal y
nos muestra la suma total.
61
2.3.4. Reporte de Platos
Detalla por bloques los platos preparados donde indican los
ingredientes, medida, cantidad costo y precio. Se refleja el valor del
costo y el valor del precio al público.
Se ingresa desde que código hasta que código de plato se quiere
consultar.
63
2.3.5. Reporte de Combos
Detalla en que consiste cada combo el valor de cada uno de sus
componentes y el valor total.
Se ingresa desde que código hasta que código de combo se quiere
consultar.
64
2.3.6. Reporte de Platos VS. Costos
Nos presentará un reporte separado en bloques por platos,
detallándonos sus componentes y el número de factura donde se
cobró el valor total.
66
2.3.7. Reporte Compras Socios por Montos
Presenta el reporte detallando número de registro, total en orden
ascendente, cédula y nombre del cliente.
Damos clic en Reporte Compras Socios por Montos, de ahí nos
aparece la siguiente pantalla.
Indicamos fecha de inicio y fin de la consulta, así como los montos
que deseamos consultar.
67
2.3.8. Listado de Provincias y Ciudades. Lista todas las ciudades que se encuentran ingresadas en el
sistema.
69
CAPITULO 3
3. MÓDULO SEGURIDAD
Este módulo da mantenimiento a las tablas que se refieren y se
relacionan con procesos de administración de usuarios, restricción
de accesos, actualización de claves.
3.1. Mantenimiento 3.1.1. Usuarios Este Catálogo sirve para poder controlar quienes son las personas
encargadas del manejo del sistema es decir los que se encuentran
en el counter, máquina 1, personal.
Se ingresa de la siguiente manera
70
Damos clic en usuarios y se nos presenta la siguiente pantalla:
Una vez en esa ventana podemos ingresar un nuevo usuario
(vendedor) dando clic en el icono INGRESAR, se habilitarán los
campos para ser llenados, una vez ingresados todos los datos
grabamos
71
Para modificar algún usuario ya existente damos clic en buscar, nos
aparecerá una nueva ventana llamada BUSQUEDA GENERAL
donde se podrá buscar por código o nombre y en diferentes criterios
(mayor que, menor que, equivalente, diferente). Una vez dispuesta la
búsqueda nos aparecerá la ventana así:
En esa pantalla nos detallan los nombres de los diferentes usuarios,
podemos seleccionar uno de ellos dando doble clic en el nombre o
cedula.
3.1.2. Sucursales
Sirve cuando un gimnasio a parte de su matriz tiene sucursales en
otros sectores se crean de acuerdo a los locales que se creen, por
72
ejemplo tenemos 4 sucursales a las que le ponemos el estado de
activo o inactivo. El estado permitirá que dicha sucursal pueda o no
manejar transacciones.
Para modificar el estado de una sucursal ya existente damos clic en
modificar, ahí se habilita el casillero y escogemos la opción
ACTIVO- INACTIVO.
Para ingresar una nueva sucursal damos clic en INGRESAR.
ponemos el nombre y le damos el estado de activo o inactivo.
73
3.1.3. Parámetros
Define los datos de la empresa a la cual pertenecerá el sistema, la
sucursal en la que se encuentra, el tipo de caja. Se podrá definir el
IVA que utilizará y de ser el caso el tipo de descuento con el que
contará. Estos datos los podrá manejar solamente el personal
autorizado.
74
3.1.4. Cajas
Para modificar el estado de una caja ya existente damos clic en
modificar, ahí se habilita el casillero y escogemos la opción
ACTIVO- INACTIVO.
Para ingresar una nueva opción (otra caja) damos clic en
INGRESAR.
Los tipos de cajas que hay son:
Personal
Maquina 1
Counter
Estos son puestos de traque que se los identifica como cajas. Ingresamos la descripción y le damos el estatus de activo o inactivo
75
3.2. Procesos 3.2.1. Permiso por Usuario Accedemos de la siguiente manera:
Una vez que damos clic en Permiso por Usuario, se nos presenta la
pantalla que abajo se indica, en la cual se busca el usuario al que
queremos asignar o restringir las opciones en el sistema.
76
Una vez elegido el usuario, se despliega la lista donde constan las
opciones que se pueden permitir o restringir, el nombre del
formulario y la observación (es decir que podrá hacer), también hay
otra columna de la fecha de creación de la opción y una columna de
ACCESO donde debemos dar visto que significa activado o dejar en
blanco que significa inhabilitado.
Dando clic en el botón grabar se guardan los cambios.
77
3.2.2. Horarios
Se detallaran los horarios que se deben regir, ingresamos de la
siguiente manera:
78
3.3. Consultas / Reportes 3.3.1. Consulta de Usuarios
Accedemos al menú de la siguiente manera
Dando clic en CONSULTA USUARIOS aparece el reporte
detallando todos los usuarios designados con su estado (activo o
inactivo), quienes se encargarán de manejar el sistema.
79
3.3.2. Consulta Permisos por Usuario Accedemos al menú de la siguiente manera
Dando clic en CONSULTA PERMISO POR USUARIOS aparece el
reporte donde se nos indica las opciones de accesos y restricciones
que tenemos para darles a los usuarios.
80
3.3.3. Consulta Reporte de Horarios Accedemos al menú de la siguiente manera
Dando clic en REPORTE DE HORARIOS y nos presenta la siguiente
pantalla donde indicamos de donde a donde queremos el reporte de
los horarios
Damos clic en imprimir y nos aparece el reporte donde se nos indica
los horarios creados de los diferentes servicios.
82
CAPITULO 4
4. MODULOS INVENTARIO
4.1. Mantenimiento 4.1.1. Directorio de Productos y Servicios
En este paso vamos a controlar el stock de los productos para la
elaboración de platos, veremos los servicios, los combos que se
pueden ofrecer. Podemos ingresar más variedad, sus costos, definir
su precio a la venta.
En la factura nos servirá para poder controlar si lo que el socio
desea en el caso de alguna comida si tenemos en stock o no.
Damos clic en DIRECTORIO DE PRODUCTOS y se nos presenta la
siguiente pantalla
83
La pantalla se divide en dos; de un lado aparecerá los servicios
existentes, los combos elaborados, los platos, los servicios. En este
ejemplo notamos que existe un combo por el día de la madre (es un
servicio) que tiene una membresía trimestral y cuesta $175.00. Este
combo lo podemos modificar haciendo clic en el botón MODIFICAR.
84
En este segundo ejemplo hemos llamado a un producto terminado,
pudiendo ver su costo y precios.
También podemos ingresar un nuevo servicio dando clic en el botón
INGRESAR, se habilitarán las celdas y procederemos a llenar.
Referente a los precios: Precio 1.- Es el precio normal para cualquier
85
persona. Precio 2.- Es el segundo precio que normalmente se lo dan
a los empleados.
4.2. Procesos
4.2.1. Ingreso de Productos
Se ingresan los productos que llegan para la cafetería o pueden ser
también el registrar maquinarias o servicios nuevos que se presten.
Ingresamos al sistema de la siguiente manera:
Damos clic en ingreso de productos y se nos presenta el siguiente cuadro,
procedemos a llenar sus campos indicando los precios y costos, tenemos
la opción de búsqueda para indicar que proveedor es.
86
4.2.2. Egreso de Productos
Se registran los egresos de los productos que salen del gimnasio,
pueden ser productos de cafetería, maquinarias.
Ingresamos al sistema de la siguiente manera:
87
Damos clic en egreso de productos y se nos presenta el siguiente cuadro,
procedemos a llenar sus campos indicando los precios y costos, tenemos
la opción de búsqueda para indicar a que proveedor pertenece.
4.3. Consultas / Reportes
4.3.1. Existencia de Productos
Ingresamos la fecha de inicio y fin de la consulta que queremos
hacer, nos ayuda para saber cuanto hay o cuanto hubo de existencia
de los productos terminados.
El reporte nos presenta el código, el nombre y la cantidad que hay
en stock.
88
En este cuadro detallamos la fecha inicial y la fecha final de ahí damos clic
en imprimir
Se nos presenta el siguiente reporte
89
4.3.2. Movimientos de Productos por Tipo Detalla por bloques de productos (membresía anual, combos, platos)
los movimientos realizados desglosados por fecha, tipo, cantidad y
sumatoria.
En este cuadro detallamos la fecha inicial y la fecha final de ahí
damos clic en imprimir
Se nos presenta el siguiente reporte
90
4.3.3. Reporte de Productos
Este reporte muestra los productos que tiene el gimnasio, ordenados
de acuerdo a las instrucciones que digitemos, estas pueden ser por
código, nombre, tipo y por fecha de creación.
91
Detalla el nombre del producto, el tipo, la fecha, el costo, el precio,
porcentaje de iva y el estado.
Se puede elegir el campo por el cual queremos ordenar el reporte 1.-
código; 2.- por nombre; 3.-por tipo; 4.-por fecha de creación.
Damos clic en imprimir y nos presenta los reportes.
94
CAPITULO 5
5. SALIDA DEL SISTEMA
En el menú archivo encontramos el submenú salir damos clic en esa
opción y salimos del sistema.
UNIVERSIDAD DE GUAYAQUIL
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
Sistema para Controlar el Acceso a Gimnasios
TESIS DE GRADO
Previo a la Obtención del Título de:
INGENIERO EN SISTEMAS COMPUTACIONALES
MANUAL DE USUARIO
Autores:
Mariuxi Rodríguez Jurado Richard Sánchez Pincay
GUAYAQUIL – ECUADOR
Año: 2007
INDICE GENERAL
CAPITULO 1
1. Acceso al Sistema 1
1.1. Menú Principal 1-2
CAPITULO 2
2. Módulo Facturación 3
2.1. Mantenimiento
2.1.1. Ingreso de Cliente (Directorio de Socios) 3-5
2.1.1.1. Tipo de Cliente 5
2.1.1.1.1. Cliente 5
2.1.1.1.2. Empleado 5
2.1.1.1.3. Proveedor 6
2.1.1.1.4. Usuario 6
2.1.1.2. Membresía 6
2.1.1.2.1.Semanal 6
2.1.1.2.2. Mensual 6
2.1.1.2.3. Trimestral 6
2.1.1.2.4. Semanal 7
2.1.1.2.5. Anual 7
2.1.1.2.6. Gold 7
2.1.1.2.7. Limited 7
2.1.1.2.8. Otras Membresías 7
2.1.1.3. Guía 7
2.1.1.4. Caducidad de la Membresía 8
2.1.2. Catálogo de Tarjetas de Crédito 8-10
2.1.3. Provincias y Ciudades 10-11
2.2. Procesos 12
2.2.1. Facturas 12-15
2.2.2. Devoluciones (Nota de Crédito) 15-18
2.2.3. Lectura de Marcadas 18-19
2.2.4. Creación de Combos 19-20
2.2.5. Ticket de Servicios 21
2.2.5.1. Ticket Personal Trainer 21-22
2.2.5.2. Ticket Pilates 22-23
2.2.5.3. Tickets Masajes 23-24
2.2.5.4. Ticket Bronceados 24
2.2.5.5. Ticket de Locker 25
2.2.5.6. Ticket de Parqueo 25-26
2.2.6. Exportar Archivo DBF 27
2.2.7. Archivo texto para Contabilidad 28
2.2.8. Creación de Platos 29
2.3. Consultas / Reportes 30
2.3.1. Reporte de Servicios 30
2.3.1.1. Ticket por Fecha 30-31
2.3.1.1.1. Tipo de Servicio Personal Trainer por Fecha 32-33
2.3.1.1.2. Reporte de Pilates por fecha 33-34
2.3.1.1.3. Reporte de bronceados por fecha 34- 35
2.3.1.1.4. Reporte de masajes por fecha 35-36
2.3.1.1.5. Reporte de parqueo por fecha 36-37
2.3.1.1.6. Reporte de locker por fecha 38
2.3.1.2. Reporte de Personal Trainer 39-40
2.3.2. Reporte de Clientes 40-41
2.3.2.1. Reporte Clientes por Sexo 41-42
2.3.2.2. Reporte Clientes por Secuencia 43
2.3.2.3. Reporte Clientes por Tipo de Membresía 44
2.3.2.4. Listado de Clientes Activos 45
2.3.2.5. Reporte de Asistencia de Socios 46-47
2.3.3. Reporte de Ventas 48
2.3.3.1. Diario de Ventas 48-50
2.3.3.2. Ventas por Forma de Pago 50-51
2.3.3.3. Ventas por Producto 52-53
2.3.3.4. Ventas por Banco 53-54
2.3.3.5. Ventas por Meses 55-56
2.3.3.6. Ventas por Vendedor 56-57
2.3.3.7. Ventas por Tarjeta 58-59
2.3.3.8. Ventas por Hora 59-61
2.3.4. Reporte de Platos 61-62
2.3.5. Reporte de Combos 63-64
2.3.6. Reporte de Platos VS. Combos 64-65
2.3.7. Reporte Compras Socios por Montos 66-67
2.3.8. Listado de Provincias y Ciudades 67-68
CAPITULO 3
3. Módulo Seguridad 69
3.1. Mantenimiento 69
3.1.1. Usuario 69-71
3.1.2. Sucursales 71-72
3.1.3. Parámetros 73
3.1.4. Cajas 74-75
3.2. Procesos 75
3.2.1. Permisos por usuario 75-76
3.2.2. Horarios 77
3.3. Consultas / Reportes 78
3.3.1. Consulta de Usuarios 78
3.3.2. Permiso por Usuario 79
3.3.3. Consulta Reporte de Horarios 80-81
CAPITULO 4
4. Modulo Inventario 82
4.1. Mantenimiento 82
4.1.1. Directorio de Servicios y Productos 82-85
4.2. Procesos 85
4.2.1. Ingreso de Productos 85-86
4.2.2. Egreso de Productos 86-87
4.3. Consulta / Reporte 87
4.3.1. Existencia de Productos 87-88
4.3.2. Movimientos de Productos por Tipo 89-90
4.3.3. Reporte de Productos 90-93