Documente Academic
Documente Profesional
Documente Cultură
S.A de C.V.
ELABORADO POR:
Eduardo Ismael De La Cruz Enriquez
TUTOR:
ASESOR:
Felipe Jonatan Alcocer Sifuentes.
Dedicatoria.
Primero que nada le quiero agradecer este logro a Dios pues siempre estuvo
conmigo aunque no me lo merezca, dedic de manera especial a mi madre Rosa
Elva Enriquez por este logro pues ella fue la nica persona que siempre me apoyo,
ella es el cimiento para la construccin de mi vida profesional tambin quiero
agradecer a mi abuela Clara Elena Carrizales que aun, a su larga edad es presencia
de esta nueva etapa de mi vida, sus palabras de aliento para no dejarme decaer y
siguiera adelante, a mi hermana menor Gladys De La Cruz Enriquez, siempre me
esfuerzo cada da para ser su gran.
NDICE
Introduccin ..4
CAPTULO I. Investigacin
1.1 Datos de la empresa .. Pag.7
1.2 Antecedentes del proyecto
.. Pag.8
.. Pag.9
Indic de figuras.
Calendarizacin de actividades Pg.21
Diagrama entidad relacin Pg. 22
Diccionario de datos...................................................................... Pg.23
Diagrama SQL.. Pg.25
Interface Y cdigo de Agregar categoras Pg. 26
Interface Y cdigo de Eliminar Categora. Pg.28
Interface y cdigo de Agregar Producto Pg.29
Interface y cdigo de Eliminar Producto Pg.31
Interface y cdigo de Agregar Usuario.. pg.32
Interface de cdigo de Eliminar Usuario Pg.34
Interface Y cdigo De Detalle Venta...Pg.35
INTRODUCCIN
Captulo I.
Investigacin
Para saber las ganancias diarias se tiene que contar el dinero que hay en la caja
pero el dueo no se puede garantizar si el dinero que est en la caja coincide con lo
que realmente se vendi en el da, pues no se cuenta con un registro o un sistema
que almacene las ventas, como consecuencia se puede cobrar una cantidad errnea
en los productos ya que es muy difcil que los empleados memoricen el costo de
todos los productos, si el cliente tiene alguna queja o duda de lo que compro no
puede verificarlo ya que no se le entrega ningn ticket o comprobante alguno al
cliente
Antes de realizar el sistema que necesitaba el negocio se tuvo que llevar distintos
procesos de anlisis para que el proyecto fuera implementado a la perfeccin.
Primero se realiz una entrevista, este mtodo de investigacin es de gran utilidad
para obtener informacin cualitativa como opiniones, o descripciones subjetivas de
actividades. Esta tcnica es muy usada y requiere una mayor preparacin por parte
del analista.
10
11
12
Captulo II.
Propuesta
13
14
2.2 PROPUESTA
15
2.3 OBJETIVOS
16
El sistema cumple con todas las funciones requeridas por el cliente y cuenta
con una interfaces amigables e intuitivas pero el alcance de este proyecto puede
llegar ms lejos, se observ que muchos clientes de confianza suelen realizar
compras a crdito y, dichas compras por algn cliente en especfico se anotan en un
cuaderno, una vez que el cliente paga la deuda se borra del cuaderno, este proceso
de compra a crdito se puede mejorar, aplicando 2 mdulos nuevo al sistema los
cuales sern los siguientes.
Un mdulo de clientes para registrar toda su informacin y otro mdulo de
adeudos para ver la cantidad que debe pagar cada cliente, el mdulo de ventas se
modificara dando la opcin de elegir si la venta ser ha contado o a crdito en caso
de ser a contado el proceso de cobra ser igual a como esta en el sistema
actualmente pero de ser a crdito tendr que buscar primero al cliente por su
nombre, seleccionarlo y despus agregar los productos que comprar. Despus que el
cliente quiera pagar su deuda el usuario se ira al mdulo de adeudos y registrara la
cantidad que pagara y se restara por la cantidad que debe.
17
Captulo III.
Desarrollo e Implementacin
18
HP Pavilion P6010IN
PC P6010IN
Teclado Multimedia HP
19
20
Fecha de inicio
Fecha final
Das de elaboracin
Obtencin de requerimientos:
Realizar una entrevista con la
duea de la empresa
Elaborar la base de datos
Elaboracin de la base de
datos en SQL
Diseo de interfaces:
Categoras, Productos y
Usuarios
Interfaces insertando
Categoras, Productos y
Usuarios
Interfaces Eliminando
Categoras, Productos y
Usuarios
Interfaces modificando
Diseo del logo del sistema
Diseo de interface:
Iniciar Sesin
02 de mayo
03 de mayo
04 de mayo
06 de mayo
05 de mayo
09 de mayo
1
3
10 de mayo
17 de mayo
18 de mayo
23 de mayo
24 de mayo
26 de mayo
27 de mayo
07 de junio
10 de junio
06 de junio
09 de junio
13 de junio
10
2
3
14 de junio
15 de junio
Validacin de interfaces
Categoras, productos y
Usuarios
Diseo de interface: Venta
16 de julio
24 de junio
27 de junio
28 de junio
29 de junio
12 de junio
11 de junio
18 de julio
12
6
18 de julio
20 de julio
28 de julio
05 de agosto
21
Id_producto
Nombre_producto
Nombre_categoria
Cdigo_barra
s
Id_categoria
Id_categoria
descripcion
Productos
Categoria
Tiene
n
precio
Id_venta
Agregan
Precio
Id_detalle_venta
Id_venta
Detalle De Venta
Venta
Fecha_venta
Id_producto
Cantidad
Realizan
Id_usuario
Usuario
contrasena
usuario
Id_usuario
22
Diccionario de datos
Tabla: Detalle Venta
Llave primaria: Id_detalle_venta
Llave fornea:
Nombre
Descripcin
Restriccione
s
Id_detalle_venta
Int
Not Null
Id_venta
Int
Not Null
Id_producto
Int
Not Null
Precio
Double
Not Null
Cantidad
Double
Not null
Tabla: Venta
Llave Primaria: id_venta
Llave fornea: id_usuario
Nombre
Id_venta
Descripcin
Alias Tipo De Dato
numero identificador nico, el cual es asigna
Int
de manera auto numrica para hacer nica la
informacin de la venta
Restricciones
Not Null
Fecha_venta
Date
Not null
Id_usuario
Int
Not Null
23
Tabla: Usuario
Llave primaria:
Llave fornea:
Nombre
Id_usuario
Descripcin
Alias Tipo De Dato
numero identificador nico, el cual es asigna
Int
de manera auto numrica para hacer nica la
informacin del usuario
Restricciones
Not Null
Usuario
Varchar(14)
Not null
Contrasena
Varchar(14)
Not Null
Tabla: Productos
Llave Primaria: Id_producto
Llave Fornea: Id_categoria
Nombre
Id_producto
Descripcin
Numero identificador auto numrico.
Id_categoria
int
Not Null
Varchar(50)
Not Null
Varchar(25)
Not Null
Varchar(80)
Not null
Double
Not null
codigo_barras
Nombre_producto
Descripcin
Precio
Restricciones
Not Null
24
Tabla: Categoras
Llave Primaria: Id_categoria
Nombre
Id_Categoria
Descripcin
Numero identificador auto numrico.
Nombre_categoria
Nombre de la categora
Restricciones
Not Null
Not Null
Diagrama SQL
25
-Cdigo:
Private Sub AgregarCategoria_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
If (quienerestu = "Nuevo") Then
Me.btnmodificar.Visible = False
ElseIf (quienerestu = "Modificar") Then
'Ejecuar consulta para llenar los campos
Try
buscar.Ejecutar_SQL("select * from categorias where id_categoria='" +
idmodificar + "'")
Me.txtnombre_categoria.DataBindings.Add("Text", buscar.get_Tabla,
"nombre_categoria")
Catch ex As ArgumentException
End Try
Me.btnagregar.Visible = False
End If End Sub
26
27
-Eliminar Categora
Cdigo:
Private Sub btneliminar_Click(sender As Object, e As EventArgs) Handles
btneliminar.Click
Dim renglon As Integer, valor As String
'Try
If (MsgBox("Estas seguro de eliminarlo?", MsgBoxStyle.YesNo, "Confirmacion
de eliminar") = MsgBoxResult.Yes) Then
renglon = Me.dgvcategorias.CurrentRow.Index
valor = Me.dgvcategorias.Item(0, renglon).Value
buscar.Ejecutar_SQL("delete from categorias where id_categoria='" + valor +
"'")
Me.btnbuscar.PerformClick()
End If End Sub
28
-Agregar Producto
Cdigo:
Private Sub AgregarProducto_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
Dim tabla As New DataTable
buscar_categoria.Ejecutar_SQL("select id_categoria,nombre_categoria from
categorias")
Me.cmbcategorias.DataSource = buscar_categoria.get_Tabla
Me.cmbcategorias.DisplayMember = "nombre_categoria"
Me.cmbcategorias.ValueMember = "id_categoria"
If (quienerestu = "Nuevo") Then
Me.btnmodificar.Visible = False
ElseIf (quienerestu = "Modificar") Then
'Ejecuar consulta para llenar los campos
Try
buscar.Ejecutar_SQL("select
id_producto,
nombre_categoria,
codigo_barras,nombre_producto, descripcion, precio, precio_kilo from productos
inner join categorias on productos.id_categoria = categorias.id_categoria where
id_producto='" + idmodificar + "'")
tabla = buscar.get_Tabla
29
Me.cmbcategorias.DataBindings.Add("Text",
buscar.get_Tabla,
"nombre_categoria")
Me.txtcodigo_barras.DataBindings.Add("Text",
buscar.get_Tabla,
"codigo_barras")
Me.txtnombre_producto.DataBindings.Add("Text",
buscar.get_Tabla,
"nombre_producto")
Me.txtdescripcion.DataBindings.Add("Text",
buscar.get_Tabla,
"descripcion")
Me.txtprecio_venta.DataBindings.Add("Text", buscar.get_Tabla, "precio")
Me.txtprecio_kilo.DataBindings.Add("Text", buscar.get_Tabla, "precio_kilo")
Catch ex As ArgumentException
End Try
Me.btnagregar.Visible = False End If
End Sub
Private Sub btnagregar_Click(sender As Object, e As EventArgs) Handles
btnagregar.Click
Try
If Me.ValidateChildren And txtnombre_producto.Text <> String.Empty And
txtdescripcion.Text <> String.Empty And txtprecio_venta.Text <> String.Empty Then
insertar.Ejecutar_SQL("insert
into
productos(id_categoria,codigo_barras,nombre_producto,descripcion,precio,precio_kil
o) values('" & Me.cmbcategorias.SelectedValue & "','" + Me.txtcodigo_barras.Text +
"','" + Me.txtnombre_producto.Text + "','" + Me.txtdescripcion.Text + "','" +
Me.txtprecio_venta.Text + "','" + Me.txtprecio_kilo.Text + "')")
MessageBox.Show("Se inserto correctamente", "Agregar Producto",
MessageBoxButtons.OK, MessageBoxIcon.Information)
Me.Close() Else
MessageBox.Show("Ingresar los datos restantes", "Agregar Producto",
MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
Catch ex As Exception
End Try
End Sub
30
-Eliminar Producto
-Cdigo:
Private Sub btneliminar_Click(sender As Object, e As EventArgs) Handles
btneliminar.Click
Dim renglon As Integer, valor As String
'Try
If (MsgBox("Estas seguro de eliminarlo?", MsgBoxStyle.YesNo, "Confirmacion
de eliminar") = MsgBoxResult.Yes) Then
renglon = Me.dgvproductos.CurrentRow.Index
valor = Me.dgvproductos.Item(0, renglon).Value
buscar.Ejecutar_SQL("delete from productos where id_producto='" + valor +
"'")
Me.btnbuscar.PerformClick()
End If
End Sub
31
-Agregar Usuario
Me.btnagregar.Visible = False
End If End Sub
Private Sub btnagregar_Click(sender As Object, e As EventArgs) Handles
btnagregar.Click
Try
If Me.ValidateChildren And txtusuario.Text <> String.Empty And
txtcontrasena.Text <> String.Empty And txtcontrasena.Text = txtconfirmar.Text Then
insertar.Ejecutar_SQL("insert into usuarios(usuario,contrasena) values('" +
Me.txtusuario.Text + "','" + Me.txtcontrasena.Text + "')")
MessageBox.Show("Se inserto correctamente", "Agregar Usuario",
MessageBoxButtons.OK, MessageBoxIcon.Information)
Me.Close()
Else
If (Me.txtcontrasena.Text = Me.txtconfirmar.Text) Then
MessageBox.Show("Ingresar los datos restantes", "Agregar Usuario",
MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
MessageBox.Show("Las contraseas no coinciden", "Agregar Usuario",
MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
Catch ex As Exception
End Try
End Sub
33
-Eliminar Usuario
Cdigo:
Private Sub btneliminar_Click(sender As Object, e As EventArgs) Handles
btneliminar.Click
Dim renglon As Integer, valor As String
'Try
If (MsgBox("Estas seguro de eliminarlo?", MsgBoxStyle.YesNo, "Confirmacion
de eliminar") = MsgBoxResult.Yes) Then
renglon = Me.dgvusuarios.CurrentRow.Index
valor = Me.dgvusuarios.Item(0, renglon).Value
buscar.Ejecutar_SQL("delete from usuarios where id_usuario='" + valor + "'")
Me.btnbuscar.PerformClick()
End If
End Sub
34
-Agregar Venta
-Cdigo:
Private Sub Venta_Load(sender As Object, e As EventArgs) Handles MyBase.Load
buscar_ultimaventa.Ejecutar_SQL("select max(id_venta) as 'UltimoID' from
ventas WHERE id_venta=-1")
Me.txtultimoidventa.DataBindings.Add("Text", buscar_ultimaventa.get_Tabla,
"UltimoID")
Me.txtfecha_venta.Text = Today
Me.txtfecha_venta.Enabled = False
Me.txtusuario.Enabled = False
Me.txttotal.Enabled = False
'Se asigna nombre del empleado
buscar_usuario.Ejecutar_SQL("Select usuario as 'NombreUsuario' from usuarios
where id_usuario='" + declaraciones.idusuario + "'")
Me.txtusuario.DataBindings.Add("Text", buscar_usuario.get_Tabla,
"NombreUsuario")
35
37
4. RESULTADOS
Especificar, comparar y registrar las mejoras que se obtuvieron al aplicar el
proyecto, contra los datos antiguos o la forma en que se manejaba antes el proceso
escogido.
Actualmente ya implementado el software los ndices de productividad del
negocio han subido, ya que el proceso de ventas se ha agilizado gracias al sistema,
a diferencia de antes que se perda tiempo en sumar todos los productos y restarlo
con el pago del cliente y sobre todo recordar lo que cuesta todos los productos,
ahora el sistema tiene la informacin de todos los productos y con el cdigo de
barras el lector los identifica rpidamente as el empleado no perder tiempo en
recordar el costo de todos los productos una vez agregado todos los productos en la
venta, se sumaran automticamente al igual con el cambio del cliente y por ultimo
saldr un ticket como comprueba, con este proceso ms rpido se evitara tener esas
largas filas que se hacan antes.
Antes para saber las ganancias por da, llevaba mucho tiempo y era algo
tedioso ya que se tena que contar el dinero que haba en la caja y ahora gracias al
sistema el inventario se realiza en segundos ya que el software guardara todas la
ventas y al momento que el usuario las verifique se sumaran y darn una ganancia
total.
38
5. CONCLUSIONES
El proyecto ha cumpli con sus objetivos sin embargo a pesar de que se haya
agilizado el proceso de ventas esto no quiere decir que algn da puedan hacerse
largas filas de clientes por lo tanto una vez que el negocio crezca ms gracias a su
variedad de productos, servicio rpido y de buena calidad se propone hacer otra
lnea de cobro de ventas implementando el otro equipo pero utilizando el mismo
sistema de ventas de esta manera el servicio al cliente ser al doble de rpido y
seguirn liderando en el mercado. Tambin se propone comprar cestas (Canastas
metlicas de supermercado) para as darle una mayor comodidad al cliente pues de
tener una gran demanda esto los hara destacar an ms ante la competencia por
ltimo se observ que clientes de confianza realizan sus compras a crdito por lo
tanto se propone que el sistema podra ser modificado para que realice ventas a
contado y ventas a crdito y as tener toda la informacin registrada en la base de
datos.
39
6. GLOSARIO
40
Validaciones.
Las validaciones son tcnicas que permiten asegurar que los valores con los
que se vaya a operar estn dentro de determinado dominio.
Estas tcnicas son particularmente importantes al momento de utilizar entradas del
usuario o de un archivo (o entradas externas en general) en nuestro cdigo, y
tambin se las utiliza para comprobar precondiciones. Al uso intensivo de estas
tcnicas se lo suele llamar programacin defensiva.
Llave Primaria:
Se llama clave primaria a un campo o a una combinacin de campos que identifica
de forma nica a cada fila de una tabla. Una clave primaria comprende de esta
manera una columna o conjunto de columnas. No puede haber 2 filas en una tabla
que tengan la misma clave primaria.
Llave fornea:
Identifica una columna o grupo de columnas en una tabla (tabla referente) que se
refiere a una columna o un grupo en otra tabla (Tabla maestra). Las columnas en la
tabla referendo deben ser clave primaria. U otra clave candidata en la tabla
referencia
Analista:
El analista de sistemas en un profesional especializado del rea de informtica
encargado del desarrollo de aplicaciones en lo que respecta a su diseo y obtencin
de los algoritmos , as como de analizar las posibles utilidades y modificaciones
necesarias de los sistemas operativos para la mayor eficiencia de un servicio
informtico.
41
7. Apndices.
42
8. BIBLIOGRAFA
Rosita Wachenchauzer.
(24 de Julio del 2011). 12.3. Validaciones. Del Sitio web:
http://librosweb.es/libro/algoritmos_python/capitulo_12/validaciones.html
43