2 codigo software c emprise

47
CODIGO C-EMPRISE: SOFTWARE PARA MANEJO DE INVENTARIOS EN NEGOCIOS DE BARRIO INTEGRANTES Nelson Ariza David Duque Jhoan Aguirre Johan Barreto Félix Arias SERVICIO NACIONAL DE APRENDIZAJE-SENA

Upload: felix-ariza

Post on 14-Aug-2015

119 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2 codigo software c emprise

CODIGO C-EMPRISE:

SOFTWARE PARA MANEJO DE INVENTARIOS

EN NEGOCIOS DE BARRIO

INTEGRANTES

Nelson Ariza

David Duque

Jhoan Aguirre

Johan Barreto

Félix Arias

SERVICIO NACIONAL DE APRENDIZAJE-SENA

CME-CENTRO DE MATERIALES Y ENSAYOS

TÉCNICO EN PROGRAMACIÓN DE SOFTWARE

FICHA DE FORMACIÓN No. 682605

REGIONAL DISTRITO CAPITAL

2014

Page 2: 2 codigo software c emprise

CODIGO C-EMPRISE:

SOFTWARE PARA MANEJO DE INVENTARIOS

EN NEGOCIOS DE BARRIO

INTEGRANTES

Nelson Ariza

David Duque

Jhoan Aguirre

Johan Barreto

Félix Arias

PROYECTO PARA OPTAR AL TÍTULO DE TÉCNICO EN PROGRAMACIÓN DE SOFTWARE

INSTRUCTORA DEL PROGRAMA: Ingeniera Diana Cruz

ASESORA DEL PROYECTO: Instructora Ingeniera Ingrid Criollo

SERVICIO NACIONAL DE APRENDIZAJE-SENA

CME-CENTRO DE MATERIALES Y ENSAYOS

TECNICO EN PROGRAMACION DE SOFTWARE

FICHA DE FORMACION No. 682605

REGIONAL DISTRITO CAPITAL

2014

Page 3: 2 codigo software c emprise

FORM No 1

Pantallazo No 1

Code No 1

Imports System.DataImports System.Data.OleDbImports System.Text.RegularExpressions

Public Class Form1 Dim consulta As New OleDbCommand 'variable que guardará una de consulta de sql Dim consulta2 As New OleDbCommand 'variable que guardará una de consulta de sql Dim adaptador As New OleDbDataAdapter Dim registro As New DataSet Dim buscar As String 'crea una nueva variable de tipo string Dim lista As Byte 'crea una nueva variable de tipo byte Dim si As Byte Dim col As Integer Dim col2 As Integer

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles btnmodificar.Click txtcodigoprod.Enabled = False txtnombreprod.Enabled = True txtpreciocompra.Enabled = True txtprecioventa.Enabled = True btnactualizar.Enabled = True btnmodificar.Enabled = False btnagregar.Enabled = False ' btneliminar.Enabled = False btnlimpiar.Enabled = True

End Sub

Page 4: 2 codigo software c emprise

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnbuscar.Click If txtbuscar.Text <> "" Then 'si el campo txtbuscar no está vacío entonces buscar = "SELECT * FROM Productos WHERE Cod_producto=" & txtbuscar.Text 'se asigna la consulta sql a la variable buscar adaptador = New OleDbDataAdapter(buscar, Form2.conexion) 'se utiliza la variable adaptador registro = New DataSet adaptador.Fill(registro, "Productos") lista = registro.Tables("Productos").Rows.Count If lista <> 0 Then 'si la consulta devuelve algun resultado txtcodigoprod.Text = registro.Tables("Productos").Rows(0).Item("Cod_producto") txtnombreprod.Text = registro.Tables("Productos").Rows(0).Item("Nombre_producto") txtpreciocompra.Text = registro.Tables("Productos").Rows(0).Item("Precio_compra") txtprecioventa.Text = registro.Tables("Productos").Rows(0).Item("Precio_venta") txtcodigoprod.Enabled = False txtnombreprod.Enabled = False txtpreciocompra.Enabled = False txtprecioventa.Enabled = False btnactualizar.Enabled = False btnagregar.Enabled = False btnmodificar.Enabled = True ' btneliminar.Enabled = True btnlimpiar.Enabled = True Else MsgBox("El dato no existe en la lista", vbCritical, "Error") ' si no se encontro ningun resultado entonces se informa que el dato no existe. End If End If End Sub

Private Sub btnactualizar_Click(sender As Object, e As EventArgs) Handles btnactualizar.Click If txtcodigoprod.Text <> "" And txtnombreprod.Text <> "" And txtpreciocompra.Text <> "" And txtprecioventa.Text <> "" Then buscar = "SELECT * FROM Productos WHERE Cod_producto=" + txtcodigoprod.Text 'se asigna la consulta sql a la variable buscar adaptador = New OleDbDataAdapter(buscar, Form2.conexion) 'se utiliza la variable adaptador registro = New DataSet adaptador.Fill(registro, "Usuarios") lista = registro.Tables("Usuarios").Rows.Count If lista <> 0 Then si = MsgBox("¿Está seguro que desea actualizar los datos del producto?", vbYesNo, "Está seguro?") If si = vbYes Then Try 'intentar consulta = New OleDbCommand("UPDATE Productos SET Nombre_producto='" + txtnombreprod.Text + "',Precio_compra='" + txtpreciocompra.Text + "',Precio_venta='" + txtprecioventa.Text + "' WHERE Cod_producto=" + txtcodigoprod.Text, Form2.conexion) 'consulta para actualizar consulta.ExecuteNonQuery() ' se ejecuta la consulta MsgBox("Se actualizó el dato", vbInformation, "Correcto") ' muestra un mensaje indicando que se actualizo el dato

Page 5: 2 codigo software c emprise

txtcodigoprod.Enabled = False txtnombreprod.Enabled = False txtpreciocompra.Enabled = False txtprecioventa.Enabled = False btnactualizar.Enabled = False btnagregar.Enabled = False btnmodificar.Enabled = True ' btneliminar.Enabled = True btnlimpiar.Enabled = True Catch ex As Exception 'en caso de fallar MsgBox(ex.Message) 'muestra un mensaje con el error correspondiente End Try Else MsgBox("Canceló la operación", vbExclamation, "Atención") End If Else MsgBox("No existe un producto con código: " + txtcodigoprod.Text, vbExclamation, "Atención") End If Else MsgBox("Existen campos vacíos que son obligatorios", vbExclamation, "Atención") End If

End Sub

Private Sub btnagregar_Click(sender As Object, e As EventArgs) Handles btnagregar.Click If txtcodigoprod.Text <> "" And txtnombreprod.Text <> "" And txtpreciocompra.Text <> "" And txtprecioventa.Text <> "" Then If IsNumeric(txtcodigoprod.Text) Then If IsNumeric(txtpreciocompra.Text) And IsNumeric(txtprecioventa.Text) Then If Val(txtprecioventa.Text) > Val(txtpreciocompra.Text) Then buscar = "SELECT Cod_producto FROM Productos WHERE Cod_producto=" + txtcodigoprod.Text 'se asigna la consulta sql a la variable buscar adaptador = New OleDbDataAdapter(buscar, Form2.conexion) 'se utiliza la variable adaptador registro = New DataSet adaptador.Fill(registro, "Usuarios") lista = registro.Tables("Usuarios").Rows.Count If lista <> 0 Then 'si la consulta devuelve algun resultado MsgBox("Ya existe un Producto con código: " & txtcodigoprod.Text, vbCritical, "Error") Else Try 'intentar consulta = New OleDbCommand("INSERT INTO Productos VALUES(txtcodigoprod,txtnombreprod,txtpreciocompra,txtprecioventa);", Form2.conexion) 'ejecuta el comando con la consulta para insertar el nuevo dato y la conexion como parámetros consulta.Parameters.AddWithValue("@Cod_producto", txtcodigoprod.Text) consulta.Parameters.AddWithValue("@Nombre_producto", txtnombreprod.Text) 'se le asignan los datos al espacio correspondiente

Page 6: 2 codigo software c emprise

consulta.Parameters.AddWithValue("@Precio_compra", txtpreciocompra.Text) consulta.Parameters.AddWithValue("@Precio_venta", txtprecioventa.Text) consulta.ExecuteNonQuery() 'se ejecuta la consulta MsgBox("Se insertó el nuevo dato", vbInformation, "Correcto") ' se muestra un mensaje informando que se insertó el nuevo dato txtcodigoprod.Enabled = False txtnombreprod.Enabled = False txtpreciocompra.Enabled = False txtprecioventa.Enabled = False btnactualizar.Enabled = False btnagregar.Enabled = False btnmodificar.Enabled = True 'btneliminar.Enabled = True btnlimpiar.Enabled = True consulta2 = New OleDbCommand("INSERT INTO Inventario VALUES(txtcodigoprod,0);", Form2.conexion) 'ejecuta el comando con la consulta para insertar el nuevo dato y la conexion como parámetros consulta2.Parameters.AddWithValue("@Cod_prod", txtcodigoprod.Text) consulta2.Parameters.AddWithValue("@Stock", 0) 'se le asignan los datos al espacio correspondiente consulta2.ExecuteNonQuery() 'se ejecuta la consulta Catch ex As Exception ' en caso de no poder insertar el dato MsgBox(ex.Message) 'muestra un mensaje con el error correspondiente End Try End If Else MsgBox("El precio de venta debe ser mayor al precio de compra", vbExclamation, "Atencion") End If Else MsgBox("El precio de compra y el precio de venta deben ser valores numéricos", vbExclamation, "Atencion") End If Else MsgBox("El código del producto debe ser numérico", vbExclamation, "Atencion") End If Else MsgBox("Hay campos vacíos que son obligatorios", vbExclamation, "Atención") End If

End Sub

Private Sub btneliminar()

If txtcodigoprod.Text <> "" Then buscar = "SELECT * FROM Productos WHERE Cod_producto=" & txtcodigoprod.Text 'se asigna la consulta sql a la variable buscar adaptador = New OleDbDataAdapter(buscar, Form2.conexion) 'se utiliza la variable adaptador registro = New DataSet

Page 7: 2 codigo software c emprise

adaptador.Fill(registro, "Productos") lista = registro.Tables("Productos").Rows.Count If lista <> 0 Then si = MsgBox("¿Está seguro que desea eliminar el producto?", vbYesNo, "¿Está seguro?") If si = vbYes Then Try 'intentar consulta = New OleDbCommand("DELETE FROM Productos WHERE Cod_producto=" + txtcodigoprod.Text, Form2.conexion) 'consulta para actualizar consulta.ExecuteNonQuery() ' se ejecuta la consulta MsgBox("Se eliminó el dato", vbInformation, "Correcto") ' muestra un mensaje indicando que se actualizo el dato txtcodigoprod.Clear() txtnombreprod.Clear() txtpreciocompra.Clear() txtprecioventa.Clear() txtcodigoprod.Enabled = True txtnombreprod.Enabled = True txtpreciocompra.Enabled = True txtprecioventa.Enabled = True btnmodificar.Enabled = False btnactualizar.Enabled = False btnagregar.Enabled = True 'btneliminar.Enabled = False btnlimpiar.Enabled = True Catch ex As Exception 'en caso de fallar MsgBox(ex.Message) 'muestra un mensaje con el error correspondiente End Try Else MsgBox("Canceló la operación", vbExclamation, "Atención") End If Else MsgBox("No existe un producto con codigo: " + txtcodigoprod.Text, vbExclamation, "No existe") End If

Else MsgBox("El codigo está vacío", vbExclamation, "Atención") End If End Sub

Sub limpiar() txtcodigoprod.Clear() txtnombreprod.Clear() txtpreciocompra.Clear() txtprecioventa.Clear() txtcodigoprod.Enabled = True txtnombreprod.Enabled = True txtpreciocompra.Enabled = True txtprecioventa.Enabled = True btnmodificar.Enabled = False btnactualizar.Enabled = False btnagregar.Enabled = True ' btneliminar.Enabled = False btnlimpiar.Enabled = True End Sub

Page 8: 2 codigo software c emprise

Private Sub btnlimpiar_Click(sender As Object, e As EventArgs) Handles btnlimpiar.Click limpiar() End Sub

Private Sub btncerrarsesion_Click(sender As Object, e As EventArgs) Handles btncerrarsesion.Click Me.Close() Form2.txtcontrasena.Clear() Form2.Show()

End Sub

Private Sub btnbus_Click(sender As Object, e As EventArgs) Handles btnbus.Click If txtbus.Text <> "" Then 'si el campo txtbuscar no está vacío entonces buscar = "SELECT Usuario,Nombres,Apellidos,Telefono,E_mail,Rol_usuario,Contrasena FROM Usuarios WHERE Usuario='" & txtbus.Text & "'" 'se asigna la consulta sql a la variable buscar adaptador = New OleDbDataAdapter(buscar, Form2.conexion) 'se utiliza la variable adaptador registro = New DataSet adaptador.Fill(registro, "Usuarios") lista = registro.Tables("Usuarios").Rows.Count If lista <> 0 Then 'si la consulta devuelve algun resultado combotxtrolusuario.Text = registro.Tables("Usuarios").Rows(0).Item("Rol_usuario") txtusuario.Text = registro.Tables("Usuarios").Rows(0).Item("Usuario") txtnombres.Text = registro.Tables("Usuarios").Rows(0).Item("Nombres") txtapellidos.Text = registro.Tables("Usuarios").Rows(0).Item("Apellidos") txttelefono.Text = registro.Tables("Usuarios").Rows(0).Item("Telefono") txtemail.Text = registro.Tables("Usuarios").Rows(0).Item("E_mail") txtcontrasena.Text = registro.Tables("Usuarios").Rows(0).Item("Contrasena") txtcontrasena2.Text = registro.Tables("Usuarios").Rows(0).Item("Contrasena") combotxtrolusuario.Enabled = False txtusuario.Enabled = False txtnombres.Enabled = False txtapellidos.Enabled = False txttelefono.Enabled = False txtemail.Enabled = False txtcontrasena.Enabled = False txtcontrasena2.Enabled = False chcaracteres.Enabled = False btnact.Enabled = False btnagr.Enabled = False btnmod.Enabled = True 'btneli.Enabled = True

Page 9: 2 codigo software c emprise

btnlim.Enabled = True Else MsgBox("El dato no existe en la lista", vbCritical, "Error") ' si no se encontro ningun resultado entonces se informa que el dato no existe. End If Else MsgBox("El campo de búsqueda se encuentra vacío!", vbExclamation, "Atención")

End If End Sub

Private Sub chcaracteres_CheckedChanged(sender As Object, e As EventArgs) Handles chcaracteres.CheckedChanged If chcaracteres.Checked Then txtcontrasena.PasswordChar = "*" txtcontrasena2.PasswordChar = "*" Else txtcontrasena.PasswordChar = "" txtcontrasena2.PasswordChar = "" End If End Sub Sub limpiar2() combotxtrolusuario.Text = "" txtusuario.Clear() txtnombres.Clear() txtapellidos.Clear() txttelefono.Clear() txtemail.Clear() txtcontrasena.Clear() txtcontrasena2.Clear() combotxtrolusuario.Enabled = True txtusuario.Enabled = True txtnombres.Enabled = True txtapellidos.Enabled = True txttelefono.Enabled = True txtemail.Enabled = True txtcontrasena.Enabled = True txtcontrasena2.Enabled = True btnmod.Enabled = False btnact.Enabled = False btnagr.Enabled = True ' btneli.Enabled = False btnlim.Enabled = True chcaracteres.Checked = True chcaracteres.Enabled = True

End Sub Private Sub btnlim_Click(sender As Object, e As EventArgs) Handles btnlim.Click limpiar2() End Sub

Private Sub btnmod_Click(sender As Object, e As EventArgs) Handles btnmod.Click

combotxtrolusuario.Enabled = True txtusuario.Enabled = False txtnombres.Enabled = True txtapellidos.Enabled = True

Page 10: 2 codigo software c emprise

txttelefono.Enabled = True txtemail.Enabled = True txtcontrasena.Enabled = True txtcontrasena2.Enabled = True btnmod.Enabled = False btnact.Enabled = True btnagr.Enabled = False ' btneli.Enabled = False btnlim.Enabled = True chcaracteres.Checked = True chcaracteres.Enabled = True End Sub

Private Sub btnact_Click(sender As Object, e As EventArgs) Handles btnact.Click If combotxtrolusuario.Text <> "" And txtusuario.Text <> "" And txtnombres.Text <> "" And txtapellidos.Text <> "" And txttelefono.Text <> "" And txtemail.Text <> "" And txtcontrasena.Text <> "" And txtcontrasena2.Text <> "" Then Dim bln As Boolean = IsValidEmail(txtemail.Text) If bln = False Then MessageBox.Show("Verifique Email Formato Incorrecto") txtemail.Focus() Else If txtcontrasena.Text = txtcontrasena2.Text Then buscar = "SELECT * FROM Usuarios WHERE Usuario='" + txtusuario.Text + "'" 'se asigna la consulta sql a la variable buscar adaptador = New OleDbDataAdapter(buscar, Form2.conexion) 'se utiliza la variable adaptador registro = New DataSet adaptador.Fill(registro, "Usuarios") lista = registro.Tables("Usuarios").Rows.Count If lista <> 0 Then si = MsgBox("¿Está seguro que desea actualizar los datos del usuario?", vbYesNo, "Está seguro?") If si = vbYes Then Try 'intentar consulta = New OleDbCommand("UPDATE Usuarios SET Nombres='" + txtnombres.Text + "',Apellidos='" + txtapellidos.Text + "',Telefono=" + txttelefono.Text + ",E_mail='" + txtemail.Text + "',Contrasena='" + txtcontrasena.Text + "',Rol_usuario='" + combotxtrolusuario.Text + "' WHERE Usuario='" + txtusuario.Text + "'", Form2.conexion) 'consulta para actualizar consulta.ExecuteNonQuery() ' se ejecuta la consulta MsgBox("Se actualizó el dato", vbInformation, "Correcto") ' muestra un mensaje indicando que se actualizo el dato limpiar2() Catch ex As Exception 'en caso de fallar MsgBox(ex.Message) 'muestra un mensaje con el error correspondiente End Try Else MsgBox("Canceló la operación", vbExclamation, "Atención") End If Else MsgBox("No existe un usuario: " + txtusuario.Text, vbExclamation, "Atención") End If

Page 11: 2 codigo software c emprise

Else MsgBox("No coinciden las contraseñas, por favor verifíquelas", vbExclamation, "Atención") End If End If Else MsgBox("Existen campos vacíos que son obligatorios", vbExclamation, "Atención") End If End Sub

Private Sub btnagr_Click(sender As Object, e As EventArgs) Handles btnagr.Click If combotxtrolusuario.Text <> "" And txtusuario.Text <> "" And txtnombres.Text <> "" And txtapellidos.Text <> "" And txttelefono.Text <> "" And txtemail.Text <> "" And txtcontrasena.Text <> "" And txtcontrasena2.Text <> "" Then Dim bln As Boolean = IsValidEmail(txtemail.Text) If bln = False Then MessageBox.Show("Verifique Email Formato Incorrecto") txtemail.Focus() Else If txtcontrasena.Text = txtcontrasena2.Text Then buscar = "SELECT Usuario FROM Usuarios WHERE Usuario='" + txtusuario.Text + "'" 'se asigna la consulta sql a la variable buscar adaptador = New OleDbDataAdapter(buscar, Form2.conexion) 'se utiliza la variable adaptador registro = New DataSet adaptador.Fill(registro, "Usuarios") lista = registro.Tables("Usuarios").Rows.Count If lista <> 0 Then 'si la consulta devuelve algun resultado MsgBox("Ya existe un usuario: " & txtusuario.Text, vbCritical, "Error") Else Try 'intentar consulta = New OleDbCommand("INSERT INTO Usuarios VALUES(txtusuario,txtnombres,txtapellidos,txttelefono,txtemail,txtcontrasena,combotxtrolusuario);", Form2.conexion) 'ejecuta el comando con la consulta para insertar el nuevo dato y la conexion como parámetros consulta.Parameters.AddWithValue("@Usuario", txtusuario.Text) 'se le asignan los datos al espacio correspondiente consulta.Parameters.AddWithValue("@Nombres", txtnombres.Text) consulta.Parameters.AddWithValue("@Apellidos", txtapellidos.Text) consulta.Parameters.AddWithValue("@Telefono", txttelefono.Text) consulta.Parameters.AddWithValue("@E_mail", txtemail.Text) consulta.Parameters.AddWithValue("@Contrasena", txtcontrasena.Text) consulta.Parameters.AddWithValue("@Rol_usuario", combotxtrolusuario.Text) consulta.ExecuteNonQuery() 'se ejecuta la consulta MsgBox("Se insertó el nuevo dato", vbInformation, "Correcto") ' se muestra un mensaje informando que se insertó el nuevo dato txtcodigoprod.Enabled = False txtnombreprod.Enabled = False txtpreciocompra.Enabled = False

Page 12: 2 codigo software c emprise

txtprecioventa.Enabled = False btnactualizar.Enabled = False btnagregar.Enabled = False btnmodificar.Enabled = True ' btneliminar.Enabled = True btnlimpiar.Enabled = True Catch ex As Exception ' en caso de no poder insertar el dato MsgBox(ex.Message) 'muestra un mensaje con el error correspondiente End Try End If Else MsgBox("No coinciden las contraseñas, por favor verifíquelas", vbExclamation, "Atención") End If End If Else MsgBox("Hay campos vacíos que son obligatorios", vbExclamation, "Atención") End If

End Sub

Private Sub btneli_Click(sender As Object, e As EventArgs)

If txtusuario.Text <> "" Then buscar = "SELECT * FROM Usuarios WHERE Usuario='" + txtusuario.Text + "'" 'se asigna la consulta sql a la variable buscar adaptador = New OleDbDataAdapter(buscar, Form2.conexion) 'se utiliza la variable adaptador registro = New DataSet adaptador.Fill(registro, "Usuarios") lista = registro.Tables("Usuarios").Rows.Count If lista <> 0 Then si = MsgBox("¿Está seguro que desea eliminar el usuario?", vbYesNo, "¿Está seguro?") If si = vbYes Then Try 'intentar consulta = New OleDbCommand("DELETE FROM Usuarios WHERE Usuario='" + txtusuario.Text + "'", Form2.conexion) 'consulta para actualizar consulta.ExecuteNonQuery() ' se ejecuta la consulta MsgBox("Se eliminó el dato", vbInformation, "Correcto") ' muestra un mensaje indicando que se actualizo el dato limpiar2() Catch ex As Exception 'en caso de fallar MsgBox(ex.Message) 'muestra un mensaje con el error correspondiente End Try Else MsgBox("Canceló la operación", vbExclamation, "Atención") End If Else MsgBox("No existe un usuario: " + txtusuario.Text, vbExclamation, "No existe") End If

Else

Page 13: 2 codigo software c emprise

MsgBox("El campo de usuario está vacío", vbExclamation, "No existe") End If End Sub

Private Sub btnlistar_Click(sender As Object, e As EventArgs) Handles btnlis.Click Dim listar As Byte Form5.Text = "Reporte de usuarios existentes" Form5.Show() Me.Hide() buscar = "SELECT * FROM Usuarios" adaptador = New OleDbDataAdapter(buscar, Form2.conexion) registro = New DataSet adaptador.Fill(registro, "Usuarios") listar = registro.Tables("Usuarios").Rows.Count Form5.DataGridView2.DataSource = registro ' ESTA LINEA MUESTRA EL RESULTADO DE LA BASE DE DATOS Form5.DataGridView2.DataMember = "Usuarios" ' ESTA LINEA CARGA LOS DATOS DE LA BASE DE DATOS End Sub

Private Sub btnlistar_Click_1(sender As Object, e As EventArgs) Handles btnlistar.Click Dim listar As Byte Form5.Text = "Reporte de productos en stock" Form5.Show() Me.Hide() buscar = "SELECT Cod_producto,Nombre_producto,Precio_compra,Precio_venta,Stock FROM Productos INNER JOIN Inventario ON Productos.Cod_producto=Inventario.Cod_prod ORDER BY Cod_producto" adaptador = New OleDbDataAdapter(buscar, Form2.conexion) registro = New DataSet adaptador.Fill(registro, "Productos") listar = registro.Tables("Productos").Rows.Count Form5.DataGridView2.DataSource = registro ' ESTA LINEA MUESTRA EL RESULTADO DE LA BASE DE DATOS Form5.DataGridView2.DataMember = "Productos" ' ESTA LINEA CARGA LOS DATOS DE LA BASE DE DATOS

End Sub

Sub añadir() Dim codigo As String Dim nombre As String Dim precio As Integer Dim Cant As Integer Dim total As String Dim x As Integer Dim stock As Integer

x = 0 total = 0 Cant = 1

If txtnuevoelemento.Text <> "" And txtcant.Text <> "" And IsNumeric(txtnuevoelemento.Text) And IsNumeric(txtcant.Text) Then 'si el campo txtbuscar no está vacío entonces Cant = txtcant.Text

Page 14: 2 codigo software c emprise

If Cant > 0 Then buscar = "SELECT Productos.Cod_producto,Productos.Nombre_producto,Productos.Precio_venta,Inventario.Stock FROM Productos INNER JOIN Inventario ON Productos.Cod_producto = Inventario.Cod_prod WHERE Productos.Cod_producto=" & txtnuevoelemento.Text 'se asigna la consulta sql a la variable buscar adaptador = New OleDbDataAdapter(buscar, Form2.conexion) 'se utiliza la variable adaptador registro = New DataSet adaptador.Fill(registro, "Productos") lista = registro.Tables("Productos").Rows.Count If lista <> 0 Then 'si la consulta devuelve algun resultado codigo = registro.Tables("Productos").Rows(0).Item("Cod_producto") nombre = registro.Tables("Productos").Rows(0).Item("Nombre_producto") precio = registro.Tables("Productos").Rows(0).Item("Precio_venta") stock = registro.Tables("Productos").Rows(0).Item("Stock") 'DataGridView1.Item(0, col).Value = col + 1 'DataGridView1.Item(1, col).Value = codigo 'DataGridView1.Item(2, col).Value = nombre 'DataGridView1.Item(3, col).Value = precio 'DataGridView1.Item(4, col).Value = Cant 'DataGridView1.Item(5, col).Value = precio * Cant For i As Integer = 0 To col - 1 Step 1 If DataGridView1.Item(1, i).Value.ToString = codigo Then If DataGridView1.Item(4, i).Value + Cant <= stock Then DataGridView1.Item(4, i).Value = DataGridView1.Item(4, i).Value + Cant DataGridView1.Item(5, i).Value = DataGridView1.Item(4, i).Value * DataGridView1.Item(3, i).Value x = 1 Else MsgBox("No se puede añadir el producto ya que no hay suficiente cantidad disponible en el stock", vbExclamation, "Atención") x = 1 End If End If Next If x = 0 Then If Cant <= stock Then DataGridView1.Rows.Add(col + 1, codigo, nombre, precio, Cant, precio * Cant, stock) col += 1 Else MsgBox("No se puede añadir el producto ya que no hay suficiente cantidad disponible en el stock", vbExclamation, "Atención") End If End If Else MsgBox("No existe un producto con código " + txtnuevoelemento.Text, vbInformation, "Atención") End If Else MsgBox("la cantidad a vender debe ser mayor que 0", vbInformation, "Atención") End If

Page 15: 2 codigo software c emprise

For i As Integer = 0 To col - 1 Step 1 total += Val(DataGridView1.Item(5, i).Value.ToString()) Next txttotal.Text = total Else MsgBox("Datos incompletos o no válidos", vbInformation, "Atención") End If End Sub

Private Sub btningresar_Click(sender As Object, e As EventArgs) Handles btningresar.Click añadir() End Sub

Private Sub btndeshacer_Click(sender As Object, e As EventArgs) Handles btndeshacer.Click Dim total2 As Integer total2 = 0 If col >= 1 Then DataGridView1.Rows.RemoveAt(col - 1) col -= 1 For i As Integer = 0 To col - 1 Step 1 total2 += Val(DataGridView1.Item(5, i).Value.ToString()) Next txttotal.Text = total2 End If End Sub

Private Sub btningresarprod_Click(sender As Object, e As EventArgs) Handles btningresarprod.Click Dim codigo As String Dim nombre As String Dim precio As Integer Dim Cant As Integer Dim total As String Dim x As Integer Dim stock As Integer

x = 0 total = 0 Cant = 1

If txtingreso.Text <> "" And txtcantidad.Text <> "" And IsNumeric(txtingreso.Text) And IsNumeric(txtcantidad.Text) Then 'si el campo txtbuscar no está vacío entonces Cant = txtcantidad.Text If Cant > 0 Then buscar = "SELECT Productos.Cod_producto,Productos.Nombre_producto,Productos.Precio_compra,Inventario.Stock FROM Productos INNER JOIN Inventario ON Productos.Cod_producto = Inventario.Cod_prod WHERE Productos.Cod_producto=" & txtingreso.Text 'se asigna la consulta sql a la variable buscar adaptador = New OleDbDataAdapter(buscar, Form2.conexion) 'se utiliza la variable adaptador registro = New DataSet adaptador.Fill(registro, "Productos") lista = registro.Tables("Productos").Rows.Count If lista <> 0 Then 'si la consulta devuelve algun resultado

Page 16: 2 codigo software c emprise

codigo = registro.Tables("Productos").Rows(0).Item("Cod_producto") nombre = registro.Tables("Productos").Rows(0).Item("Nombre_producto") precio = registro.Tables("Productos").Rows(0).Item("Precio_compra") stock = registro.Tables("Productos").Rows(0).Item("Stock") 'DataGridView1.Item(0, col).Value = col + 1 'DataGridView1.Item(1, col).Value = codigo 'DataGridView1.Item(2, col).Value = nombre 'DataGridView1.Item(3, col).Value = precio 'DataGridView1.Item(4, col).Value = Cant 'DataGridView1.Item(5, col).Value = precio * Cant For i As Integer = 0 To col2 - 1 Step 1 If DataGridView2.Item(1, i).Value.ToString = codigo Then DataGridView2.Item(4, i).Value = DataGridView2.Item(4, i).Value + Cant DataGridView2.Item(5, i).Value = DataGridView2.Item(4, i).Value * DataGridView2.Item(3, i).Value x = 1 End If Next If x = 0 Then DataGridView2.Rows.Add(col2 + 1, codigo, nombre, precio, Cant, precio * Cant, stock) col2 += 1 End If Else MsgBox("No existe un producto con código " + txtingreso.Text, vbInformation, "Atención") End If Else MsgBox("la cantidad a ingresar debe ser mayor que 0", vbInformation, "Atención") End If For i As Integer = 0 To col2 - 1 Step 1 total += Val(DataGridView2.Item(5, i).Value.ToString()) Next txttotal2.Text = total Else MsgBox("Datos incompletos o no válidos", vbInformation, "Atención") End If End Sub

Private Sub btndeshacer2_Click(sender As Object, e As EventArgs) Handles btndeshacer2.Click Dim total2 As Integer total2 = 0 If col2 >= 1 Then DataGridView2.Rows.RemoveAt(col2 - 1) col2 -= 1 For i As Integer = 0 To col2 - 1 Step 1 total2 += Val(DataGridView2.Item(5, i).Value.ToString()) Next txttotal2.Text = total2 End If End Sub

Page 17: 2 codigo software c emprise

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load lbltxtusuario.Text = "Usuario: " + Form2.txtusuario.Text lblfecha.Text = DateTime.Now() lblfecha.Text = DateTime.Now().ToShortDateString() lblhora.Text = "La hora es " + DateTime.Now() 'lblhora.Text = "La hora es " + DateTime.Now().ToShortDateString("hh:mm:ss tt") lblhora.Text = "La hora es " + TimeString

End Sub

Private Sub txtvender_Click(sender As Object, e As EventArgs) Handles txtvender.Click Dim stock As String Dim venta As Boolean Dim nostock As Boolean Dim codi As Long Dim canti As Integer Dim preci As Integer Dim nombre As String Dim preciouni As Integer venta = False nostock = False

si = MsgBox("¿Está seguro que desea registrar la venta?", vbYesNo, "¿Está seguro?") If si = vbYes Then If col > 0 Then For i As Integer = 0 To col - 1 Step 1 If DataGridView1.Item(1, i).Value.ToString() <> "" Then buscar = "SELECT Cod_prod,Stock FROM Inventario WHERE Cod_prod=" & DataGridView1.Item(1, i).Value.ToString() 'se asigna la consulta sql a la variable buscar adaptador = New OleDbDataAdapter(buscar, Form2.conexion) 'se utiliza la variable adaptador registro = New DataSet adaptador.Fill(registro, "Inventario") lista = registro.Tables("Inventario").Rows.Count If lista <> 0 Then 'si la consulta devuelve algun resultado stock = registro.Tables("Inventario").Rows(0).Item("Stock") If stock >= Val(DataGridView1.Item(4, i).Value.ToString()) Then If stock >= 0 Then If Val(DataGridView1.Item(4, i).Value.ToString()) > 0 Then Try 'intentar consulta = New OleDbCommand("UPDATE Inventario SET Stock=Stock-" + DataGridView1.Item(4, i).Value.ToString() + " WHERE Cod_prod=" + DataGridView1.Item(1, i).Value.ToString(), Form2.conexion) 'consulta para actualizar consulta.ExecuteNonQuery() ' se ejecuta la consulta venta = True codi = Val(DataGridView1.Item(1, i).Value.ToString()) nombre = DataGridView1.Item(2, i).Value.ToString()

Page 18: 2 codigo software c emprise

preciouni = Val(DataGridView1.Item(3, i).Value.ToString()) canti = Val(DataGridView1.Item(4, i).Value.ToString()) preci = Val(DataGridView1.Item(5, i).Value.ToString()) consulta2 = New OleDbCommand("INSERT INTO Ventas VALUES(codi,nombre,preciouni,canti,preci,lblfecha,Form2.txtusuario);", Form2.conexion) 'ejecuta el comando con la consulta para insertar el nuevo dato y la conexion como parámetros consulta2.Parameters.AddWithValue("@Cod_producto", codi) consulta2.Parameters.AddWithValue("@Nombre_producto", nombre) consulta2.Parameters.AddWithValue("@Precio_unitario", preciouni) consulta2.Parameters.AddWithValue("@Cantidad", canti) 'se le asignan los datos al espacio correspondiente consulta2.Parameters.AddWithValue("@Precio_total", preci) consulta2.Parameters.AddWithValue("@Fecha", lblfecha.Text) consulta2.Parameters.AddWithValue("@Usuario", Form2.txtusuario.Text) consulta2.ExecuteNonQuery() 'se ejecuta la consulta DataGridView1.Rows.RemoveAt(i) col -= 1 i = -1 Catch ex As Exception 'en caso de fallar MsgBox(ex.Message) 'muestra un mensaje con el error correspondiente End Try Else MsgBox("La cantidad a vender en el producto " + DataGridView1.Item(1, i).Value.ToString() + " debe ser mayor que 0", vbInformation, "Atención") End If Else MsgBox("No hay productos con código " + DataGridView1.Item(1, i).Value.ToString() + " disponibles en stock", vbInformation, "Atención") End If Else nostock = True End If End If End If If col = i + 1 Then Exit For End If Next If venta = True And nostock = False Then MsgBox("Se ha registrado la venta", vbInformation, "Correcto") ElseIf venta = False And nostock = True Then

Page 19: 2 codigo software c emprise

MsgBox("No se pudo registrar la venta ya que la cantidad solicitada de los productos es mayor a la cantidad disponible en el stock", vbCritical, "Atención") ElseIf venta = True And nostock = True Then MsgBox("Se ha registrado la venta, pero los productos en la lista no pudieron ser registrados ya que la cantidad solicitada es superior a la cantidad disponible en stock", vbExclamation, "Atención") Else MsgBox("No se ha registrado exitósamente la venta", vbExclamation, "Atención") End If Else MsgBox("No ha ingresado ningun producto", vbExclamation, "Atención") End If End If End Sub

Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click Dim stock As String Dim exitoso As Boolean Dim codi As Long Dim canti As Integer Dim preci As Integer Dim nombre As String Dim preciouni As Integer exitoso = False

si = MsgBox("¿Está seguro que desea registrar la venta?", vbYesNo, "¿Está seguro?") If si = vbYes Then If col2 > 0 Then For i As Integer = 0 To col2 - 1 Step 1 buscar = "SELECT Cod_prod,Stock FROM Inventario WHERE Cod_prod=" & DataGridView2.Item(1, i).Value.ToString() 'se asigna la consulta sql a la variable buscar adaptador = New OleDbDataAdapter(buscar, Form2.conexion) 'se utiliza la variable adaptador registro = New DataSet adaptador.Fill(registro, "Inventario") lista = registro.Tables("Inventario").Rows.Count If lista <> 0 Then 'si la consulta devuelve algun resultado stock = registro.Tables("Inventario").Rows(0).Item("Stock") If Val(DataGridView2.Item(4, i).Value.ToString()) > 0 Then Try 'intentar consulta = New OleDbCommand("UPDATE Inventario SET Stock=Stock+" + DataGridView2.Item(4, i).Value.ToString() + " WHERE Cod_prod=" + DataGridView2.Item(1, i).Value.ToString(), Form2.conexion) 'consulta para actualizar consulta.ExecuteNonQuery() ' se ejecuta la consulta codi = Val(DataGridView2.Item(1, i).Value.ToString()) nombre = DataGridView2.Item(2, i).Value.ToString()

Page 20: 2 codigo software c emprise

preciouni = Val(DataGridView2.Item(3, i).Value.ToString()) canti = Val(DataGridView2.Item(4, i).Value.ToString()) preci = Val(DataGridView2.Item(5, i).Value.ToString()) consulta2 = New OleDbCommand("INSERT INTO Compras VALUES(codi,nombre,preciouni,canti,preci,lblfecha,Form2.txtusuario);", Form2.conexion) 'ejecuta el comando con la consulta para insertar el nuevo dato y la conexion como parámetros consulta2.Parameters.AddWithValue("@Cod_producto", codi) consulta2.Parameters.AddWithValue("@Nombre_producto", nombre) consulta2.Parameters.AddWithValue("@Precio_unitario", preciouni) consulta2.Parameters.AddWithValue("@Cantidad", canti) 'se le asignan los datos al espacio correspondiente consulta2.Parameters.AddWithValue("@Precio_total", preci) consulta2.Parameters.AddWithValue("@Fecha", lblfecha.Text) consulta2.Parameters.AddWithValue("@Usuario", Form2.txtusuario.Text) consulta2.ExecuteNonQuery() 'se ejecuta la consulta DataGridView2.Rows.RemoveAt(i) col2 -= 1 i = -1 exitoso = True Catch ex As Exception 'en caso de fallar MsgBox(ex.Message) 'muestra un mensaje con el error correspondiente End Try Else MsgBox("La cantidad a ingresar en el producto " + DataGridView2.Item(1, i).Value.ToString() + " debe ser mayor que 0", vbInformation, "Atención") End If Else MsgBox("No hay productos con código " + DataGridView2.Item(1, i).Value.ToString() + " disponibles en stock", vbInformation, "Atención") End If If col2 = i + 1 Then Exit For End If Next If exitoso = True Then MsgBox("Se ha registrado exitósamente la compra", vbInformation, "Correcto") End If End If End If End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick lblfecha.Text = DateTime.Now().ToShortDateString() lblhora.Text = "la hora es: " + TimeString

Page 21: 2 codigo software c emprise

End Sub

Private Sub chcant_CheckedChanged(sender As Object, e As EventArgs) Handles chcant.CheckedChanged If chcant.Checked Then txtcant.Text = "" txtcant.Enabled = True txtcant.Focus()

Else txtcant.Text = 1 txtcant.Enabled = False End If End Sub

Private Sub Button2_Click_1(sender As Object, e As EventArgs) Handles Button2.Click Dim listar As Byte If Comboreportes.Text <> "" Then Form5.Show() Me.Hide() If Comboreportes.Text = "Reporte de ventas" Then Form5.Text = "Reporte de ventas por fecha" buscar = "SELECT * FROM Ventas WHERE Fecha BETWEEN #" & CDate(Datedesde.Text) & "# AND #" & CDate(Datehasta.Text) & "# ORDER BY Fecha;" adaptador = New OleDbDataAdapter(buscar, Form2.conexion) registro = New DataSet adaptador.Fill(registro, "Ventas") listar = registro.Tables("Ventas").Rows.Count Form5.DataGridView2.DataSource = registro ' ESTA LINEA MUESTRA EL RESULTADO DE LA BASE DE DATOS Form5.DataGridView2.DataMember = "Ventas" ' ESTA LINEA CARGA LOS DATOS DE LA BASE DE DATOS ElseIf Comboreportes.Text = "Reporte de compras" Then Form5.Text = "Reporte de compras por fecha" buscar = "SELECT * FROM Compras WHERE Fecha BETWEEN #" & CDate(Datedesde.Text) & "# AND #" & CDate(Datehasta.Text) & "# ORDER BY Fecha;" adaptador = New OleDbDataAdapter(buscar, Form2.conexion) registro = New DataSet adaptador.Fill(registro, "Compras") listar = registro.Tables("Compras").Rows.Count Form5.DataGridView2.DataSource = registro ' ESTA LINEA MUESTRA EL RESULTADO DE LA BASE DE DATOS Form5.DataGridView2.DataMember = "Compras" ' ESTA LINEA CARGA LOS DATOS DE LA BASE DE DATOS Else

End If Else MsgBox("Por favor seleccione un tipo de reporte", vbExclamation, "Atención") End If End Sub

Private Sub txtnuevoelemento_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtnuevoelemento.KeyDown If e.KeyCode = Keys.Enter Then

Page 22: 2 codigo software c emprise

añadir() txtnuevoelemento.Clear() End If End Sub

Public Function IsValidEmail(ByVal email As String) As Boolean If email = String.Empty Then Return False ' Compruebo si el formato de la dirección es correcto. Dim re As Regex = New Regex("^([0-9a-zA-Z]([-\.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$") Dim m As Match = re.Match(email) Return (m.Captures.Count <> 0) End Function

End Class

Page 23: 2 codigo software c emprise

FORM No 2

Pantallazo No 2

Code No 2

Imports System.DataImports System.Data.OleDb

Public Class Form2

Public conexion As New OleDbConnection Dim consulta As New OleDbCommand Dim adaptador As New OleDbDataAdapter Dim registro As New DataSet Dim rol As String Dim us As String Dim co As String Dim buscar As String 'crea una nueva variable de tipo string Dim lista As Byte 'crea una nueva variable de tipo byte

Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load Try conexion.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Datos.accdb" conexion.Open() MsgBox("Conexion establecida", vbInformation, "Correcto") Catch ex As Exception MsgBox("Error al conectarse", vbCritical, "Error") End Try End Sub

Sub entrar() Try 'intentar

Page 24: 2 codigo software c emprise

consulta = New OleDbCommand("Select count(Usuario) From Usuarios Where Usuario='" + txtusuario.Text + "' and Contrasena='" + txtcontrasena.Text + "' and Rol_usuario='" + txtcomborolusuario.Text + "'", conexion) consulta.ExecuteNonQuery() ' se ejecuta la consulta Catch ex As Exception 'en caso de fallar MsgBox(ex.Message) ' muestra un mensaje con el error correspondiente End Try If txtusuario.Text <> "" And txtcontrasena.Text <> "" And txtcomborolusuario.Text <> "" Then 'si el campo txtbuscar no está vacío entonces buscar = "Select Usuario,Contrasena,Rol_usuario From Usuarios Where Usuario='" + txtusuario.Text + "'" 'se asigna la consulta sql a la variable buscar adaptador = New OleDbDataAdapter(buscar, conexion) 'se utiliza la variable adaptador registro = New DataSet adaptador.Fill(registro, "Usuarios") lista = registro.Tables("Usuarios").Rows.Count If lista <> 0 Then 'si la consulta devuelve algun resultado us = registro.Tables("Usuarios").Rows(0).Item("Usuario") co = registro.Tables("Usuarios").Rows(0).Item("Contrasena") rol = registro.Tables("Usuarios").Rows(0).Item("Rol_usuario") If us = txtusuario.Text And co = txtcontrasena.Text And rol = txtcomborolusuario.Text Then If txtcomborolusuario.Text = "Administrador" Then Form1.Show() Me.Hide() End If If txtcomborolusuario.Text = "Vendedor" Then Form4.Show() Me.Hide() End If ElseIf us = txtusuario.Text And co = txtcontrasena.Text And rol <> txtcomborolusuario.Text Then MsgBox("Rol de usuario incorrecto, intente nuevamente", vbCritical, "Rol Incorrecto") ElseIf us = txtusuario.Text And co <> txtcontrasena.Text And rol = txtcomborolusuario.Text Then MsgBox("Contraseña incorrecta, intente nuevamente", vbCritical, "Contraseña Incorrecta") Else MsgBox("Rol de usuario y contraseña incorrectos, intente nuevamente", vbCritical, "Datos Incorrectos") End If Else MsgBox("El usuario " + txtusuario.Text + " no existe ", vbExclamation, "Usuario no existe") ' si no se encontro ningun resultado entonces se informa que el dato no existe. End If

Else MsgBox("Por favor llene todos los campos", vbExclamation, "Atención") End If

End Sub

Page 25: 2 codigo software c emprise

Private Sub btningresar_Click(sender As Object, e As EventArgs) Handles btningresar.Click entrar() End Sub

Private Sub btnregistrarse_Click(sender As Object, e As EventArgs) Form3.Show() Me.Visible = False End Sub

Private Sub btnsalir_Click(sender As Object, e As EventArgs) Handles btnsalir.Click conexion.Close() Me.Close() End Sub

Private Sub txtcontrasena_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtcontrasena.KeyDown If e.KeyCode = Keys.Enter Then entrar() End If End Sub

End Class

Page 26: 2 codigo software c emprise

FORM No 3

Pantallazo No 3

Code No 3

Imports System.DataImports System.Data.OleDbImports System.Text.RegularExpressions

Public Class Form3

Dim consulta As New OleDbCommand 'variable que guardará una de consulta de sql Dim buscar As String Dim lista As Byte Dim adaptador As New OleDbDataAdapter Dim registro As New DataSet Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load

End Sub

Private Sub btncancelar_Click_1(sender As Object, e As EventArgs) Handles btncancelar.Click Form2.Show() Me.Close() End Sub

Private Sub chcaracteres_CheckedChanged(sender As Object, e As EventArgs) If chcaracteres.Checked Then txtcontrasena.PasswordChar = "*" txtcontrasena2.PasswordChar = "*" Else

Page 27: 2 codigo software c emprise

txtcontrasena.PasswordChar = "" txtcontrasena2.PasswordChar = "" End If End Sub

Private Sub chcaracteres_CheckedChanged_1(sender As Object, e As EventArgs) Handles chcaracteres.CheckedChanged If chcaracteres.Checked Then txtcontrasena.PasswordChar = "*" txtcontrasena2.PasswordChar = "*" Else txtcontrasena.PasswordChar = "" txtcontrasena2.PasswordChar = "" End If End Sub

Private Sub btnregistrarse_Click(sender As Object, e As EventArgs) Handles btnregistrarse.Click If txtusuario.Text <> "" And txtnombres.Text <> "" And txtapellidos.Text <> "" And txttelefono.Text <> "" And txtemail.Text <> "" And txtcontrasena.Text <> "" And txtcontrasena2.Text <> "" And combotxtrolusuario.Text <> "" Then Dim bln As Boolean = IsValidEmail(txtemail.Text) If bln = False Then MessageBox.Show("Verifique Email Formato Incorrecto") txtemail.Focus() Else buscar = "select Usuario from Usuarios where Usuario='" + txtusuario.Text + "'" adaptador = New OleDbDataAdapter(buscar, Form2.conexion) 'se utiliza la variable adaptador registro = New DataSet adaptador.Fill(registro, "Usuarios") lista = registro.Tables("Usuarios").Rows.Count If txtcontrasena2.Text = txtcontrasena.Text Then If lista = 0 Then Try 'intentar consulta = New OleDbCommand("INSERT INTO Usuarios VALUES(txtusuario,txtnombres,txtapellidos,txttelefono,txtemail,txtcontrasena,combotxtrolusuario);", Form2.conexion) 'ejecuta el comando con la consulta para insertar el nuevo dato y la conexion como parámetros consulta.Parameters.AddWithValue("@Usuario", txtusuario.Text) consulta.Parameters.AddWithValue("@Nombres", txtnombres.Text) 'se le asignan los datos al espacio correspondiente consulta.Parameters.AddWithValue("@Apellidos", txtapellidos.Text) consulta.Parameters.AddWithValue("@Telefono", txttelefono.Text) consulta.Parameters.AddWithValue("@E_mail", txtemail.Text) consulta.Parameters.AddWithValue("@Contrasena", txtcontrasena.Text) consulta.Parameters.AddWithValue("@Rol_usuario", combotxtrolusuario.Text) consulta.ExecuteNonQuery() 'se ejecuta la consulta MsgBox("Se ha registrado satisfactoriamente", vbInformation, "Correcto") ' se muestra un mensaje informando que se insertó el nuevo dato Form2.Show()

Page 28: 2 codigo software c emprise

Me.Close()

Catch ex As Exception ' en caso de no poder insertar el dato MsgBox(ex.Message) 'muestra un mensaje con el error correspondiente End Try Else MsgBox("El usuario " + txtusuario.Text + " ya existe, por favor cambie el nombre de usuario", vbExclamation, "Usuario ya existe") End If Else MsgBox("Las contraseñas no coinciden por favor verifíquelas", vbExclamation, "Atención") End If End If Else MsgBox("Hay campos vacíos que son obligatorios", vbExclamation, "Atención") End If End Sub

Public Function IsValidEmail(ByVal email As String) As Boolean If email = String.Empty Then Return False ' Compruebo si el formato de la dirección es correcto. Dim re As Regex = New Regex("^([0-9a-zA-Z]([-\.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$") Dim m As Match = re.Match(email) Return (m.Captures.Count <> 0) End Function

End Class

FORM No 4

Pantallazo No 4

Page 29: 2 codigo software c emprise

Code No 4

Imports System.DataImports System.Data.OleDb

Public Class Form4 Dim consulta As New OleDbCommand 'variable que guardará una de consulta de sql Dim consulta2 As New OleDbCommand 'variable que guardará una de consulta de sql Dim adaptador As New OleDbDataAdapter Dim registro As New DataSet Dim buscar As String 'crea una nueva variable de tipo string Dim lista As Byte 'crea una nueva variable de tipo byte Dim si As Byte Dim col As Integer Dim col2 As Integer Private Sub Form4_Load(sender As Object, e As EventArgs) Handles MyBase.Load lbltxtusuario.Text = "Usuario: " + Form2.txtusuario.Text lblfecha.Text = DateTime.Now() lblfecha.Text = DateTime.Now().ToShortDateString() lblhora.Text = "La hora es " + DateTime.Now() 'lblhora.Text = "La hora es " + DateTime.Now().ToShortDateString("hh:mm:ss tt") lblhora.Text = "La hora es " + TimeString End Sub

Private Sub btncerrarsesion_Click(sender As Object, e As EventArgs) Handles btncerrarsesion.Click Me.Close() Form2.txtcontrasena.Clear() Form2.Show() End Sub

Sub añadir() Dim codigo As String Dim nombre As String Dim precio As Integer Dim Cant As Integer Dim total As String Dim x As Integer Dim stock As Integer

x = 0 total = 0 Cant = 1

If txtnuevoelemento.Text <> "" And txtcant.Text <> "" And IsNumeric(txtnuevoelemento.Text) And IsNumeric(txtcant.Text) Then 'si el campo txtbuscar no está vacío entonces Cant = txtcant.Text If Cant > 0 Then buscar = "SELECT Productos.Cod_producto,Productos.Nombre_producto,Productos.Precio_venta,Inventario.Stock FROM Productos INNER JOIN Inventario ON Productos.Cod_producto = Inventario.Cod_prod WHERE Productos.Cod_producto=" & txtnuevoelemento.Text 'se asigna la consulta sql a la variable buscar

Page 30: 2 codigo software c emprise

adaptador = New OleDbDataAdapter(buscar, Form2.conexion) 'se utiliza la variable adaptador registro = New DataSet adaptador.Fill(registro, "Productos") lista = registro.Tables("Productos").Rows.Count If lista <> 0 Then 'si la consulta devuelve algun resultado codigo = registro.Tables("Productos").Rows(0).Item("Cod_producto") nombre = registro.Tables("Productos").Rows(0).Item("Nombre_producto") precio = registro.Tables("Productos").Rows(0).Item("Precio_venta") stock = registro.Tables("Productos").Rows(0).Item("Stock") 'DataGridView1.Item(0, col).Value = col + 1 'DataGridView1.Item(1, col).Value = codigo 'DataGridView1.Item(2, col).Value = nombre 'DataGridView1.Item(3, col).Value = precio 'DataGridView1.Item(4, col).Value = Cant 'DataGridView1.Item(5, col).Value = precio * Cant For i As Integer = 0 To col - 1 Step 1 If DataGridView1.Item(1, i).Value.ToString = codigo Then If DataGridView1.Item(4, i).Value + Cant <= stock Then DataGridView1.Item(4, i).Value = DataGridView1.Item(4, i).Value + Cant DataGridView1.Item(5, i).Value = DataGridView1.Item(4, i).Value * DataGridView1.Item(3, i).Value x = 1 Else MsgBox("No se puede añadir el producto ya que no hay suficiente cantidad disponible en el stock", vbExclamation, "Atención") x = 1 End If End If Next If x = 0 Then If Cant <= stock Then DataGridView1.Rows.Add(col + 1, codigo, nombre, precio, Cant, precio * Cant, stock) col += 1 Else MsgBox("No se puede añadir el producto ya que no hay suficiente cantidad disponible en el stock", vbExclamation, "Atención") End If End If Else MsgBox("No existe un producto con código " + txtnuevoelemento.Text, vbInformation, "Atención") End If Else MsgBox("la cantidad a vender debe ser mayor que 0", vbInformation, "Atención") End If For i As Integer = 0 To col - 1 Step 1 total += Val(DataGridView1.Item(5, i).Value.ToString()) Next txttotal.Text = total Else

Page 31: 2 codigo software c emprise

MsgBox("Datos incompletos o no válidos", vbInformation, "Atención") End If End Sub

Private Sub btningresar_Click(sender As Object, e As EventArgs) Handles btningresar.Click añadir() End Sub

Private Sub btndeshacer_Click(sender As Object, e As EventArgs) Handles btndeshacer.Click Dim total2 As Integer total2 = 0 If col >= 1 Then DataGridView1.Rows.RemoveAt(col - 1) col -= 1 For i As Integer = 0 To col - 1 Step 1 total2 += Val(DataGridView1.Item(5, i).Value.ToString()) Next txttotal.Text = total2 End If End Sub

Private Sub chcant_CheckedChanged(sender As Object, e As EventArgs) Handles chcant.CheckedChanged If chcant.Checked Then txtcant.Text = "" txtcant.Enabled = True txtcant.Focus()

Else txtcant.Text = 1 txtcant.Enabled = False End If End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim stock As String Dim venta As Boolean Dim nostock As Boolean Dim codi As Integer Dim canti As Integer Dim preci As Integer Dim nombre As String Dim preciouni As Integer venta = False nostock = False

si = MsgBox("¿Está seguro que desea registrar la venta?", vbYesNo, "¿Está seguro?") If si = vbYes Then If col > 0 Then For i As Integer = 0 To col - 1 Step 1 If DataGridView1.Item(1, i).Value.ToString() <> "" Then buscar = "SELECT Cod_prod,Stock FROM Inventario WHERE Cod_prod=" & DataGridView1.Item(1, i).Value.ToString() 'se asigna la consulta sql a la variable buscar

Page 32: 2 codigo software c emprise

adaptador = New OleDbDataAdapter(buscar, Form2.conexion) 'se utiliza la variable adaptador registro = New DataSet adaptador.Fill(registro, "Inventario") lista = registro.Tables("Inventario").Rows.Count If lista <> 0 Then 'si la consulta devuelve algun resultado stock = registro.Tables("Inventario").Rows(0).Item("Stock") If stock >= Val(DataGridView1.Item(4, i).Value.ToString()) Then If stock >= 0 Then If Val(DataGridView1.Item(4, i).Value.ToString()) > 0 Then Try 'intentar consulta = New OleDbCommand("UPDATE Inventario SET Stock=Stock-" + DataGridView1.Item(4, i).Value.ToString() + " WHERE Cod_prod=" + DataGridView1.Item(1, i).Value.ToString(), Form2.conexion) 'consulta para actualizar consulta.ExecuteNonQuery() ' se ejecuta la consulta venta = True codi = Val(DataGridView1.Item(1, i).Value.ToString()) nombre = DataGridView1.Item(2, i).Value.ToString() preciouni = Val(DataGridView1.Item(3, i).Value.ToString()) canti = Val(DataGridView1.Item(4, i).Value.ToString()) preci = Val(DataGridView1.Item(5, i).Value.ToString()) consulta2 = New OleDbCommand("INSERT INTO Ventas VALUES(codi,nombre,preciouni,canti,preci,lblfecha,Form2.txtusuario);", Form2.conexion) 'ejecuta el comando con la consulta para insertar el nuevo dato y la conexion como parámetros consulta2.Parameters.AddWithValue("@Cod_producto", codi) consulta2.Parameters.AddWithValue("@Nombre_producto", nombre) consulta2.Parameters.AddWithValue("@Precio_unitario", preciouni) consulta2.Parameters.AddWithValue("@Cantidad", canti) 'se le asignan los datos al espacio correspondiente consulta2.Parameters.AddWithValue("@Precio_total", preci) consulta2.Parameters.AddWithValue("@Fecha", lblfecha.Text) consulta2.Parameters.AddWithValue("@Usuario", Form2.txtusuario.Text) consulta2.ExecuteNonQuery() 'se ejecuta la consulta DataGridView1.Rows.RemoveAt(i) col -= 1 i = -1 Catch ex As Exception 'en caso de fallar

Page 33: 2 codigo software c emprise

MsgBox(ex.Message) 'muestra un mensaje con el error correspondiente End Try Else MsgBox("La cantidad a vender en el producto " + DataGridView1.Item(1, i).Value.ToString() + " debe ser mayor que 0", vbInformation, "Atención") End If Else MsgBox("No hay productos con código " + DataGridView1.Item(1, i).Value.ToString() + " disponibles en stock", vbInformation, "Atención") End If Else nostock = True End If End If End If If col = i + 1 Then Exit For End If Next If venta = True And nostock = False Then MsgBox("Se ha registrado la venta", vbInformation, "Correcto") ElseIf venta = False And nostock = True Then MsgBox("No se pudo registrar la venta ya que la cantidad solicitada de los productos es mayor a la cantidad disponible en el stock", vbCritical, "Atención") ElseIf venta = True And nostock = True Then MsgBox("Se ha registrado la venta, pero los productos en la lista no pudieron ser registrados ya que la cantidad solicitada es superior a la cantidad disponible en stock", vbExclamation, "Atención") Else MsgBox("No se ha registrado exitósamente la venta", vbExclamation, "Atención") End If End If End If End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick lblfecha.Text = DateTime.Now().ToShortDateString() lblhora.Text = "la hora es: " + TimeString End Sub

Private Sub txtnuevoelemento_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtnuevoelemento.KeyDown If e.KeyCode = Keys.Enter Then añadir() txtnuevoelemento.Clear()

End If End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Dim listar As Byte If Comboreportes.Text <> "" Then

Page 34: 2 codigo software c emprise

Form6.Show() Me.Hide() If Comboreportes.Text = "Reporte de ventas" Then Form6.Text = "Reporte de ventas por fecha" buscar = "SELECT * FROM Ventas WHERE Fecha BETWEEN #" & CDate(Datedesde.Text) & "# AND #" & CDate(Datehasta.Text) & "# ORDER BY Fecha;" adaptador = New OleDbDataAdapter(buscar, Form2.conexion) registro = New DataSet adaptador.Fill(registro, "Ventas") listar = registro.Tables("Ventas").Rows.Count Form6.DataGridView2.DataSource = registro ' ESTA LINEA MUESTRA EL RESULTADO DE LA BASE DE DATOS Form6.DataGridView2.DataMember = "Ventas" ' ESTA LINEA CARGA LOS DATOS DE LA BASE DE DATOS ElseIf Comboreportes.Text = "Reporte de compras" Then Form6.Text = "Reporte de compras por fecha" buscar = "SELECT * FROM Compras WHERE Fecha BETWEEN #" & CDate(Datedesde.Text) & "# AND #" & CDate(Datehasta.Text) & "# ORDER BY Fecha;" adaptador = New OleDbDataAdapter(buscar, Form2.conexion) registro = New DataSet adaptador.Fill(registro, "Compras") listar = registro.Tables("Compras").Rows.Count Form6.DataGridView2.DataSource = registro ' ESTA LINEA MUESTRA EL RESULTADO DE LA BASE DE DATOS Form6.DataGridView2.DataMember = "Compras" ' ESTA LINEA CARGA LOS DATOS DE LA BASE DE DATOS Else

End If Else MsgBox("Por favor seleccione un tipo de reporte", vbExclamation, "Atención") End If End SubEnd Class

Form No 5

Pantallazo No 5

Page 35: 2 codigo software c emprise

Code No 5

Imports System.DataImports System.Data.OleDb

Public Class Form5

Dim consulta As String 'VARIABLE DE CONSULTA Dim listar As Byte Dim adaptador As New OleDbDataAdapter Dim registro As New DataSet

Private Sub btnatras_Click(sender As Object, e As EventArgs) Handles btnatras.Click Form1.Show() Me.Hide()

End Sub

Private Sub Form5_Load(sender As Object, e As EventArgs) Handles MyBase.Load

End SubEnd Class

Form No 6

Pantallazo No 6

Page 36: 2 codigo software c emprise

Code No 6

Imports System.DataImports System.Data.OleDb

Public Class Form6

Dim consulta As String 'VARIABLE DE CONSULTA Dim listar As Byte Dim adaptador As New OleDbDataAdapter Dim registro As New DataSet

Private Sub btnatras_Click(sender As Object, e As EventArgs) Handles btnatras.Click Form4.Show() Me.Hide()

End Sub

Private Sub Form6_Load(sender As Object, e As EventArgs) Handles MyBase.Load

End SubEnd Class