Você está na página 1de 42

CONTENIDO

OBJETIVOS ............................................................................................................. I
INTRODUCCION .................................................................................................... II
1. Requerimientos Técnicos ................................................................................. 1
1.1. Requerimientos mínimos de hardware ....................................................... 1
1.2. Requerimientos mínimos de software ........................................................ 1
2. HERRAMIENTAS UTILIZADAS PARA EL DESARROLLO .............................. 2
2.1. NetBeans IDE 8.2 ...................................................................................... 2
2.2. MySQL 8.0 ................................................................................................. 3
2.3. MySQL Workbench 8.0 CE ........................................................................ 3
2.4. Mysql-connector-java-5.1.47-bin.jar ........................................................... 4
3. Paquete Controlador ......................................................................................... 5
3.1. CtrlProducto.java ........................................................................................ 5
3.2. btnGuardar ................................................................................................. 6
3.3. btnModificar ................................................................................................ 7
3.4. btnEliminar ................................................................................................. 8
3.5. btnBuscar ................................................................................................... 8
3.6. btnLimpiar .................................................................................................. 9
3.7. CtrlVentas.java ........................................................................................... 9
4. Paquete Modelo .............................................................................................. 12
4.1. Conexión.java .......................................................................................... 12
4.2. ConsultaVentas.java ................................................................................ 13
4.3. ConsultaProducto.java ............................................................................. 15
4.4. Producto.java ........................................................................................... 19
4.5. Ventas.java .............................................................................................. 20
4.6. SqlUsuarios.java ...................................................................................... 21
4.7. Usuarios.java ........................................................................................... 23
5. Paquete Vista ................................................................................................. 24
5.1. frmPreventa.java ...................................................................................... 24
5.2. Diseño del Frame Preventa y programación de los botones .................... 27
5.2.1. Botón Buscar ..................................................................................... 27
5.2.2. Botón Agregar.................................................................................... 28
5.2.3. Botón Facturar ................................................................................... 29
5.2.4. frmVentas .......................................................................................... 29
5.3. Diseño de Frame Ventas y Programación de Botones ............................ 31
5.3.1. Botón Facturar ................................................................................... 32
6. Botón Nueva Venta .................................................................................. 33
6.1.1. frmProducto ....................................................................................... 33
6.1.2. frmLogin ............................................................................................. 34
6.2. Diseño frame Login y programación de botón .......................................... 34
6.2.1. Boton Ingresar ................................................................................... 35
6.2.2. frmRegistro ........................................................................................ 36
6.3. Diseño del Frame Registrar y programación de los botones .................... 36
6.3.1. Botón Registrar .................................................................................. 37
6.3.2. Botón Regresar.................................................................................. 38
OBJETIVOS

General

 Brindar la información necesaria para entender el funcionamiento interno del


programa de punto de venta.

Específicos

 Representar la funcionalidad técnica de la estructura, diseño y definición del


software.
 Definir claramente la lógica y el código utilizado.
 Detallar la especificación de los requerimientos de hardware y software para
trabajar un proyecto de esta índole.
 Describir las herramientas utilizadas para el diseño y desarrollo del prototipo.

I
INTRODUCCION

El manual INSYDAB describe el proceso de elaboración de un aplicativo diseñado


para un punto de venta para empresas que manejan variedad de productos o
servicios. Toda la información de inventario se almacena en una base de datos, para
poder ser gestionada, actualizándose cuando hay cambios después de cada venta.

Este manual proporciona información recopilada para poder desarrollar un software


que cumpla las exigencias de una empresa, logrando controlar y facturar las ventas
de una mejor manera.

II
1. REQUERIMIENTOS TÉCNICOS

1.1. Requerimientos mínimos de hardware

 Procesador: Core
 Memoria RAM: Mínimo: 1 Gigabytes (GB)
 Disco Duro:

1.2. Requerimientos mínimos de software

 Privilegios de administrador
 Sistema Operativo: Windows NT/98/Me/2000/2003/XP/Vista

Manual Tecnico Integrated System with Database 1


2. HERRAMIENTAS UTILIZADAS PARA EL DESARROLLO

2.1. NetBeans IDE 8.2

Es un Framework que simplifica el desarrollo de aplicaciones para Java Swing. El


paquete de NetBeans IDE para Java SE contiene lo que se necesita para empezar
a desarrollar plugins y aplicaciones basadas en la plataforma NetBeans; no se
requiere un SDK adicional.

Las aplicaciones pueden instalar módulos dinámicamente. Algunas aplicaciones


pueden incluir un modulo de actualización para permitir a los usuarios descargar
Actualizaciones de firma digital y nuevas características directamente dentro de la
aplicación en ejecución. Reinstalando una actualización o una nueva versión, no
obligando a los usuarios a descargar toda la aplicación de nuevo.

La plataforma ofrece servicios reusables comunes para las aplicaciones de


escritorio, permitiendo a los desarrolladores centrarse en la lógica de sus
aplicaciones. Algunas de las características de la aplicación son:

 Gestión de la interfaz de usuario (menús y barras de herramientas


 Gestión de configuración de usuario
 Gestión de almacenamiento (guardar o cargar algún tipo de dato)
 Gestión de ventana
 Marco Asistente (soporta diálogos paso a paso)
 Librería visual de Netbeans
 Herramientas de desarrollo integrado

NetBeans IDE es libre, código abierto, multiplataforma con soporte integrado para
el lenguaje de programación Java.

Manual Tecnico Integrated System with Database 2


2.2. MySQL 8.0

Es un sistema de gestión de bases de datos relacional desarrollado bajo licencia


dual: Licencia pública general/Licencia comercial por Oracle Corporation y está
considerada como la base datos de código abierto más popular del mundo,12 y una
de las más populares en general junto a Oracle y Microsoft SQL Server, sobre todo
para entornos de desarrollo web.

Está desarrollado en su mayor parte en ANSI C y C++.4 Tradicionalmente se


considera uno de los cuatro componentes de la pila de desarrollo LAMP y WAMP.
MySQL es usado por muchos sitios web grandes y populares, como Wikipedia, 5
Google67 (aunque no para búsquedas), Facebook, 8910 Twitter, 11 Flickr, 12 y
YouTube.

Es muy utilizado en aplicaciones web, como Joomla, Wordpress, Drupal o phpBB,


en plataformas (Linux/Windows-Apache-MySQL-PHP/Perl/Python), y por
herramientas de seguimiento de errores como Bugzilla. Su popularidad como
aplicación web está muy ligada a PHP, que a menudo aparece en combinación con
MySQL.

2.3. MySQL Workbench 8.0 CE

MySQL Workbench es una herramienta visual unificada para arquitectos de bases


de datos, desarrolladores y administradores de bases de datos, proporciona
modelado de datos, desarrollo de SQL y herramientas de administración integrales
para la configuración del servidor, la administración de usuarios, las copias de
respaldo y mucho más. Está disponible en Windows, Linux y Mac OS X.

Manual Tecnico Integrated System with Database 3


Permite a un DBA, desarrollador o arquitecto de datos diseñar, modelar, generar y
administrar bases de datos visualmente. Incluye todo lo que necesita un modelador
de datos para crear modelos complejos de ER, ingeniería directa e inversa, y
también ofrece características clave para realizar tareas difíciles de gestión de
cambios y documentación que normalmente requieren mucho tiempo y esfuerzo.

Ofrece herramientas visuales para crear, ejecutar y optimizar consultas SQL. El


Editor de SQL proporciona resaltado de sintaxis de color, autocompletado,
reutilización de fragmentos de código SQL e historial de ejecución de SQL.

MySQL Workbench ahora proporciona una solución completa y fácil de usar para
migrar Microsoft SQL Server, Microsoft Access, Sybase ASE, PostreSQL y otras
tablas, objetos y datos RDBMS a MySQL. Los desarrolladores y los DBA pueden
convertir rápida y fácilmente las aplicaciones existentes para que se ejecuten en
MySQL tanto en Windows como en otras plataformas. La migración también admite
la migración de versiones anteriores de MySQL a las últimas versiones.

2.4. Mysql-connector-java-5.1.47-bin.jar

Proporciona conectividad para aplicaciones cliente desarrolladas en el lenguaje de


programación Java.

Manual Tecnico Integrated System with Database 4


3. PAQUETE CONTROLADOR

3.1. CtrlProducto.java

Esta clase es muy importante debido a que en ella se realizan todos los métodos y
acciones de los botones en nuestro formulario, para empezar a trabajar esta clase
debemos importar todas las librerías necesarias para la realización de este
proyecto, las librerías que importamos son las siguientes:

Posteriormente definimos nuestras variables a utilizar de la misma manera estamos


utilizando una implementación de interfaces, con la sentencia implements podemos
crear los métodos definidos por la interfaz que en este caso es ActionListener.

Creamos un método constructor con nuestras variables ya creadas y de la misma


manera creamos dentro los botones que ocuparemos en el proyecto, nótese que
añadimos un add.ActionListener porque cada uno de ellos ejecutara una acción.

Manual Tecnico Integrated System with Database 5


Creamos un método iniciar () en donde añadimos un título a nuestro frame,
definimos la posición y si es visible.

Después en nuestro método actionPerformed realizamos un if anidado en donde


validamos que acción genera cada botón al seleccionarlo. En cada if se almacena
la acción de determinado botón.

3.2. btnGuardar

El botón guardar obtendrá el texto introducido de Código y Nombre con un getText


de la misma manera obtenemos la información de Precio que lo parseamos a un
Double igual que Cantidad la convertimos a un Int este procedimiento lo realizamos
debido a que originalmente eran de tipo Sting y las necesitamos ocupar como
Double e Int respectivamente. Si el registro fue exitoso se desplegará un
JOptionPane donde despliega el siguiente mensaje “Registro Guardado” de lo
contrario mostrará un mensaje de “Error Guardado”. Observemos que cada mensaje

Manual Tecnico Integrated System with Database 6


tiene un método llamado limpiar () este simplemente convierte a null todos los
campos de texto del frame.

3.3. btnModificar

De igual manera que el botón guardar este obtendrá los datos del Id que se convierte
a un int, se realizará un getText también para código, nombre y las variables precio
y cantidad se parsean a doublé e int respectivamente. Al finalizar la modificación se
mostrará un mensaje que indicará que el “Registro Modificado” sino se cumple esta
condición muestra un error. Al finalizar se cualquier condición se ejecuta el método
limpiar ().

Manual Tecnico Integrated System with Database 7


3.4. btnEliminar

Para la acción del botón eliminar solamente se necesitará obtener con un get el id
debido a que es único. De la misma manera que los anteriores botones muestran
una alerta que indica si la acción fue exitosa o lo contrario.

3.5. btnBuscar

Para el botón buscar necesitamos obtener el código del producto una vez ingresado
el código se tendrá que obtener todos los datos del mismo, realizamos una
conversión tipo Sting para Id, Precio y Cantidad debido a que necesitamos
únicamente valores tipo Sting (cadena de texto). Si el código ingresado existe
mostrara todos sus datos en caso contrario mostrara un mensaje que indica un error
al buscar.

Manual Tecnico Integrated System with Database 8


3.6. btnLimpiar

Por ultimo tenemos el botón limpiar que simplemente cuando se efectúa su acción
llama al método limpiar () al finalizar este último if se cierra con una llave el if
principal. El método limpiar () únicamente establece como tipo null los campos de
texto.

3.7. CtrlVentas.java

La clase CtrlVentas se asemeja a CtrlProducto debido a que en este se desglosan


las acciones y métodos de los botones para las ventas. De igual manera importamos
las librerías necesarias para la ejecución de nuestro proyecto, las librerías son las
siguientes:

Manual Tecnico Integrated System with Database 9


Definimos las variables a utilizar en nuestra clase igualmente creamos una
implementación de interfaces utilizando la palabra implements donde se crearán
métodos definidos para la interfaz de igual manera con ActionListener.

Creamos el método constructor con todos los parámetros a utilizar en el proyecto,


añadimos un botón con su addActionListener para la acción del mismo.

De la misma manera como en la anterior clase tenemos un método iniciar () donde


le asignamos un título, posición y utilizamos setEnabled para poder habilitar o
deshabilitar el elemento del menú txtFactura.

Manual Tecnico Integrated System with Database 10


Posteriormente en nuestro actionPerformed creamos nuestro if en donde getSource
es igual a btnFacturarVenta realizamos un get para el Nit, Cliente, Direccion y
Total_venta donde realizamos un parseDouble, al obtener estos campos realizamos
un JOptionPane donde colocamos un mensaje que indique que la venta se realizó
correctamente sino se cumple esta condición muestra un mensaje que indica un
error. De esta manera se finaliza esta clase.

Manual Tecnico Integrated System with Database 11


4. PAQUETE MODELO

4.1. Conexión.java

La clase Conexión es fundamental para nuestro proyecto debido a que con ella
creamos el objeto conexión el cual ejecutara la conexión con nuestra base de datos,
por ello necesitamos algunas librerias especificas por ejemplo import
com.mysql.jdbc.Connection la cual nos sirve para crear el objeto conexión y nos
permite usar el jdbc de la API de java especifico de mysql, import
java.sql.DriverManager que incluye metodos para poder agregar y eliminar
controladores asi mismo utilizamos SQLException devolver los errores o las
condiciones de excepción después de ejecutar un comando de bases de datos SQL.

Seguidamente en nuestra Conexión creamos las variables para poder crear la


conexión donde colocamos todos los datos de nuestra base de datos por ejemplo
el nombre, el tipo de usuario, la contraseña de la base de datos, el url de nuestra
base y por ultimo creamos una variable tipo Connection.

Manual Tecnico Integrated System with Database 12


Posterior a eso creamos el objeto conexión, utilizamos el método Class.forName
donde especificamos el controlador que ocuparemos en el proyecto, ocupamos la
variable que declaramos de tipo connection ocupamos el método de la librería
DriverManager.getConnection y enviamos los parámetros de nuestra base de datos,
colocamos nuestra url, user, y contraseña. Este procedimiento lo encerrar en un try
y catch, nuestro catch lo declaramos de tipo SQLException para poder las
excepciones o errores que nuestro código podría generar.

4.2. ConsultaVentas.java

Esta clase será fundamental cuando deseemos insertar una nueva venta a nuestra
base de datos para ello debemos importar ciertas librerías que nos ayudaran a la
realización de este proyecto por ejemplo la librería import java.sql.Connection que
nos sirve para realizar una conexión con nuestros datos utilizamos por primera vez
la librería import java.sql.PreparedStatement, con la clase PreparedStatement se
pueden crear sentencias SQL pre compiladas que las podremos usar varias veces
y utilizaremos una SQLException para tomar las excepciones que pueden ocurrir
dentro del programa.

Manual Tecnico Integrated System with Database 13


Después de eso observamos que al declarar nuestra clase esta palabra extends
seguida de nuestra Conexión esto genera que la clase ConsultaVentas herede
todos los elementos de la clase conexión, igualmente podemos ver declaramos una
variable de tipo boolean que utilizaremos más adelante para la obtención de la
información, posterior a eso creamos nuestra variable preparedStatement, una
variable que contenga nuestro método getConexion() y por ultimo creamos nuestro
String sql donde crearemos la inserción de los datos, llamamos a los campos que
serán intervenidos al momento de la inserción también podemos observar que hay
unos símbolos de interrogación al momento de realizar el values esto representa un
parámetro de sentencia donde su valor se determinara en el desarrollo de ejecución
del programa que se enlazara con una variable de nuestro programa.

Finalmente creamos un método try-catch donde realizaremos los métodos set que
nos servirán para asignar los valores de los parámetros que utilizamos con el
símbolo ?, podemos ver también que utilizamos nuestra variable preparedStatement
y le designamos el String sql que realizamos anteriormente utilizamos el método
execute para ejecutarlo de igual realizamos un finally con el cual cerramos la
conexión y agregamos una excepción sql y damos por finalizado esta clase.

Manual Tecnico Integrated System with Database 14


4.3. ConsultaProducto.java

En la clase ConsultaProducto crearemos todos los String sql para nuestro programa,
primeramente, importamos las librerías que ocuparemos o que necesitaremos para
realizar todos los métodos con los String sql. Esta vez ocupamos una librería más
que la anterior clase la cual es import java.sql.ResultSet en la cual se obtiene un
objeto de tipo ResultSet el cual permite leer una fila del resultado de la consulta
cada vez.

De la misma manera que ConsultaVentas con la palabra extends heredamos todos


los elementos de la clase Conexión, de igual manera creamos una variable con la
cual obtendremos la información de los campos ingresados por el usuario, creamos
nuestra variable Preparedstatement con la cual podremos tener sentencias Sql pre
compiladas, la variable que contiene nuestro método Conexión y nuestro String sql
en el cual insertamos nuestra consulta que en este es una inserción en la tabla
producto recordemos que colocamos el signo de interrogación porque el valor de
los parámetros se ingresara en el desarrollo del programa.

Manual Tecnico Integrated System with Database 15


Igualmente creamos un método try-
catch y finally donde realizamos el
método set y get que nos servirá para
asignar los datos que obtendremos de
los campos del frame, de igual forma
creamos nuestra variable
preparedStatement y contendrá
nuestro String sql. Realizamos un
catch para obtener un error si lo
hubiera y en finally utilizamos
con.close() para finalizar la conexión y
finalmente realizamos la
SQLException para atrapar una
excepción Sql.

Seguidamente creamos otro método que nos servirá para modificar los datos por
medio del id del producto, de igual manera creamos nuestra variable
preparedStatement, creamos nuestra variable con la conexión y por ultimo nuestro
String sql donde colocaremos nuestro Update donde especificamos los campos que
serán actualizados una vez más colocamos el símbolo ? debido a que el valor que
tendrán se obtendrá durante el desarrollo del programa.

Del mismo modo utilizamos un try-catch y finally en el cual nuevamente preparamos


nuestro String sql con preparedStatement y utilizamos los set y get para insertar los
datos actualizados realizamos un catch para atrapar un posible error y en el bloque
finally finalizamos nuestra variable con y tenemos una SQLException en el catch.

Manual Tecnico Integrated System with Database 16


Con el siguiente método podremos
eliminar un campo utilizando el id de
este mismo, necesitaremos
nuevamente las variables que hemos
estado ocupando para el programa
como la variable PreparedStatement
que ya hemos explicado para que la
necesitaremos, la variable con que
contiene la conexión a nuestra base de
datos y nuestro String sql que en este
caso es un Delete esta función nos
sirve para eliminar datos en específico
de alguna tabla en la base de datos.

Seguidamente con el método try-catch y finally en donde obtenemos en id ingresado


por el usuario y con preparedStatement procede a realizar la sentencia sql a utilizar,
de igual modo en el catch obtenemos un posible error y en el finally finalizamos
nuestra conexión y atrapamos una posible Sqlexception en el catch.

Finalmente, en el último método que realizaremos en esta consulta es el de buscar,


realizamos de la misma manera una variable preparedStatement, otra tipo conexión
y el String sql que en este caso buscaremos nuestros datos por medio del código,
en este caso también crearemos una variable de tipo resultset donde utilizaremos
el método executeQuery que se utilizara si la sentencia Sql nos devuelve datos.

Manual Tecnico Integrated System with Database 17


En nuestro método try-catch
primeramente obtenemos el
código que fue ingresado por el
usuario y utilizamos el método
executeQuery() el cual nos
devolverá nos elementos de la
búsqueda realizada, dentro del
try también colocamos un if en
cual si se cumple la condición
obtendrá los datos de la
búsqueda y los mostraran como
cadenas de texto realizamos un
parse cuando no son de tipo
String, realizamos el respectivo
catch y en el finally finaliza
nuestra conexión y atrapamos
una posible SQLException en
caso de algún error, con este

Manual Tecnico Integrated System with Database 18


4.4. Producto.java

En esta clase simplemente se realiza la creación de las variables a necesitar y


posteriormente la codificación y realización de los métodos get() y set() de las
variables para poder obtener o ya sea asignar algún valor que necesitemos para
nuestro programa, sin esta clase se dificultaría la obtención y asignación de la
información.

Manual Tecnico Integrated System with Database 19


4.5. Ventas.java

Esta clase es completamente igual en fundamentos que Producto.java de igual


manera creamos las variables que ocuparemos o que intervengan con las ventas,
de mismo modo realizamos los métodos get() y set() para la obtención y asignación
de las variables declaradas. Esta clase tiene igual de importancia que Producto.java
de modo que su realización es fundamental.

Manual Tecnico Integrated System with Database 20


4.6. SqlUsuarios.java

Esta clase hace las consultas de los usuarios en la base de datos.

Manual Tecnico Integrated System with Database 21


Manual Tecnico Integrated System with Database 22
4.7. Usuarios.java

Esta clase tiene los setters y getters de las variables.

Manual Tecnico Integrated System with Database 23


5. PAQUETE VISTA

5.1. frmPreventa.java

Este frame agrega los productos seleccionados en la table visible al carrito compras
(tablaauxiliar). Se declaran las librerías que se utilizan a lo largo del frame y se
declaran las variables que se usan para calcular el total a pagar y descontar los
productos que fueron facturados.

Manual Tecnico Integrated System with Database 24


Carga la tabla de la base de datos al abrir la ventana.

La función de este método es consultar el producto seleccionado en la tabla y los


traslada a los campos correspondientes.

Manual Tecnico Integrated System with Database 25


Este método regresa los campos a un valor vacío.

Manual Tecnico Integrated System with Database 26


5.2. Diseño del Frame Preventa y programación de los botones

5.2.1. Botón Buscar

Este botón hace la búsqueda del producto por medio del código ingresado. El código
utilizado fue el siguiente:

Manual Tecnico Integrated System with Database 27


5.2.2. Botón Agregar

Este botón agrega el producto seleccionado en la tabla (tableVentas) de orden de


compra, para poder ser facturado posteriormente. El código para programar este
botón es el siguiente:

Manual Tecnico Integrated System with Database 28


5.2.3. Botón Facturar

Este botón manda a llamar el formulario de venta para ingresar los datos del cliente.
El código para programador este botón es el siguiente:

5.2.4. frmVentas

En este frame se declara las variable totalventa que reciben el valor de frmPreventa
ubicada en el campo txtTotalVenta. Y la variable int para colocar el numero de
factura correspondiente.

Manual Tecnico Integrated System with Database 29


Carga la tabla con los productos seleccionados en preventa.

Manual Tecnico Integrated System with Database 30


Sirve para que el frame anterior pueda colocar el total de venta de la tabla anterior.

5.3. Diseño de Frame Ventas y Programación de Botones

Manual Tecnico Integrated System with Database 31


5.3.1. Botón Facturar

Manda el total y datos del cliente a la tabla ventas y crea un nuevo registro en la
base datos en la tabla ventas.

Código para eliminar todos los datos de la tabla auxiliar venta.

Manual Tecnico Integrated System with Database 32


6. Botón Nueva Venta
Cierra.

6.1.1. frmProducto

Este frame es controlado por medio del modeloMVC (Modelo vista controlador) y
tiene la función de un CRUD (Create Read Update Delete)*.

1. Botón Buscar: Read (Leer) Este busca si hay productos en existencia


mediante el código ingresado
2. Botón guardar: Create (Crear) Guarda el nuevo producto ingresado
3. Botón Modificar: Update (Actualizar) Modifica un producto ingresado
anteriormente
4. Botón Eliminar: Delete (Eliminar) Borra el producto encontrado por el código
5. Botón limpiar: Borra los datos de los campos.

*CRUD: Es el acrónimo de "Crear, Leer, Actualizar y Borrar" (del original en inglés:


Create, Read, Update and Delete), que se usa para referirse a las funciones básicas
en bases de datos o la capa de persistencia en un software. Se usa también a veces
para describir convenciones de interfaz de usuario que facilita la vista, búsqueda y
modificación de la información; a menudo se usa en programación de formularios
(forms) e informes (reports).

Manual Tecnico Integrated System with Database 33


6.1.2. frmLogin

Esta sección de código muestra las librerías importadas al frame.

6.2. Diseño frame Login y programación de botón

Manual Tecnico Integrated System with Database 34


6.2.1. Boton Ingresar

Este botón comprueba los datos ingresados en los campos en la base de datos.

Manual Tecnico Integrated System with Database 35


6.2.2. frmRegistro

Este frame es el encargado de solicitar los datos del nuevo usuario que empezara
a usar los servicios del aplicativo.

6.3. Diseño del Frame Registrar y programación de los botones

1 2

Manual Tecnico Integrated System with Database 36


6.3.1. Botón Registrar

Este botón almacena los datos ingresados en los campos en la base de datos,
creando un usuario nuevo.

Manual Tecnico Integrated System with Database 37


6.3.2. Botón Regresar

Este botón nos regresa al login principal para ingresar como otro usuario.

Manual Tecnico Integrated System with Database 38

Você também pode gostar