En la Entrada anterior desarrollamos el esqueleto de nuestra aplicación en capas, pueden ver la entrada aquí:
Parte 1
En la parte 2 desarrollaremos la capa Entities y la capa DataAccess.
La clase FacturaDet_Ent contendrá las siguientes propiedades privadas y públicas:
1. Agregar en nuestro proyecto un nuevo item "ADO.NET Entity Data Model" y darle nombre "ModelVentas.edmx", dar clic en agregar.
2. Elegir la opción "Generate from database" y dar clic en siguiente.
3. Configurar una nueva conexión (o utilizar una existente), escoger la conexión creada o existente y darle en la opción "Si, incluir datos sensitivos en la cadena de conexión", darle nombre "EntitiesVentas", luego clic en siguiente.
4. Agregar las tablas de cabecera de factura y detalle, dar nombre al NameSpace "ModelVentas" clic en finalizar.
Parte 1
En la parte 2 desarrollaremos la capa Entities y la capa DataAccess.
Desarrollando la capa Entities:
Lo primero será agregar 2 clases en la capa Entities con nombres:- FacturaCab_Ent
- FacturaDet_Ent
La clase FacturaCab_Ent contendrá las siguientes propiedades privadas y públicas, recuerda escribir "prop" y luego presiona tab 2 veces para que se te genere el código automáticamente.
Private _IdFactura As Integer
Public Property IdFactura() As Integer
Get
Return _IdFactura
End Get
Set(ByVal value As Integer)
_IdFactura = value
End Set
End Property
Private _CodCliente As String
Public Property CodCliente() As String
Get
Return _CodCliente
End Get
Set(ByVal value As String)
_CodCliente = value
End Set
End Property
Private _FechaFact As DateTime
Public Property FechaFact() As DateTime
Get
Return _FechaFact
End Get
Set(ByVal value As DateTime)
_FechaFact = value
End Set
End Property
Private _ValorFact As Double
Public Property ValorFact() As Double
Get
Return _ValorFact
End Get
Set(ByVal value As Double)
_ValorFact = value
End Set
End Property
La clase FacturaDet_Ent contendrá las siguientes propiedades privadas y públicas:
Private _IdFactura As Integer
Public Property IdFactura() As Integer
Get
Return _IdFactura
End Get
Set(ByVal value As Integer)
_IdFactura = value
End Set
End Property
Private _Secuencia As Integer
Public Property Secuencia() As Integer
Get
Return _Secuencia
End Get
Set(ByVal value As Integer)
_Secuencia = value
End Set
End Property
Private _CodProducto As String
Public Property CodProducto() As String
Get
Return _CodProducto
End Get
Set(ByVal value As String)
_CodProducto = value
End Set
End Property
Private _DescProducto As String
Public Property DescProducto() As String
Get
Return _DescProducto
End Get
Set(ByVal value As String)
_DescProducto = value
End Set
End Property
Private _Cantidad As Double
Public Property Cantidad() As Double
Get
Return _Cantidad
End Get
Set(ByVal value As Double)
_Cantidad = value
End Set
End Property
Private _Precio As Double
Public Property Precio() As Double
Get
Return _Precio
End Get
Set(ByVal value As Double)
_Precio = value
End Set
End Property
Private _Total As Double
Public Property Total() As Double
Get
Return _Total
End Get
Set(ByVal value As Double)
_Total = value
End Set
End Property
Desarrollando la capa DataAccess:
Lo primero será crear nuestro Entity Model con los siguientes pasos:1. Agregar en nuestro proyecto un nuevo item "ADO.NET Entity Data Model" y darle nombre "ModelVentas.edmx", dar clic en agregar.
2. Elegir la opción "Generate from database" y dar clic en siguiente.
3. Configurar una nueva conexión (o utilizar una existente), escoger la conexión creada o existente y darle en la opción "Si, incluir datos sensitivos en la cadena de conexión", darle nombre "EntitiesVentas", luego clic en siguiente.
4. Agregar las tablas de cabecera de factura y detalle, dar nombre al NameSpace "ModelVentas" clic en finalizar.
5. Notarás que en tu proyecto se generó un Entity model "ModelVentas.edmx" y un archivo de configuración "App.Config".
Ahora hay que crear las clases que tendrán los métodos de acceso al Entity Model y este a su vez ya se encarga de comunicarse con la base de datos para hacer los selects, inserts, updates, deletes, etc
6. Agregar 2 clases
- FacturaCab_Data.vb
- FacturaDet_Data.vb
Escribir en cada clase los métodos para recuperar, grabar, actualizar y borrar información. Para este caso se usará LINQ.
La clase FacturaCab_Data.vb tendrá el siguiente código:
Imports Entities
Public Class FacturaCab_Data
Public Function RecuperarTodas() As List(Of FacturaCab_Ent)
Using OEntidad As New EntitiesVentas
Dim query = From facturas In OEntidad.Vtas_Factura_Cab
Select facturas
Dim lista As New List(Of FacturaCab_Ent)
For Each item In query
Dim info As New FacturaCab_Ent()
info.IdFactura = item.IdFactura
info.CodCliente = item.CodCliente
info.FechaFact = item.FechaFact
info.ValorFact = item.ValorFact
lista.Add(info)
Next
Return lista
End Using
End Function
Public Function BuscarUna(ByVal codigoFactura As Integer) As FacturaCab_Ent
Using OEntidad As New EntitiesVentas
Dim query = From facturas In OEntidad.Vtas_Factura_Cab
Where facturas.IdFactura = codigoFactura
Select facturas
Return query
End Using
End Function
Public Function Inserta(ByVal factura As FacturaCab_Ent) As Boolean
Try
Using OEntidad As New EntitiesVentas
Dim tbFactura As New Vtas_Factura_Cab
tbFactura.IdFactura = factura.IdFactura
tbFactura.CodCliente = factura.CodCliente
tbFactura.FechaFact = factura.FechaFact
tbFactura.ValorFact = factura.ValorFact
OEntidad.Vtas_Factura_Cab.AddObject(tbFactura)
OEntidad.SaveChanges()
End Using
Return True
Catch ex As Exception
Return False
End Try
End Function
Public Function Modifica(ByVal factura As FacturaCab_Ent) As Boolean
Try
Using OEntidad As New EntitiesVentas()
Dim query = (From fa In OEntidad.Vtas_Factura_Cab
Where fa.IdFactura = factura.IdFactura
Select fa).Single()
query.IdFactura = factura.IdFactura
query.CodCliente = factura.CodCliente
query.FechaFact = factura.FechaFact
query.ValorFact = factura.ValorFact
OEntidad.SaveChanges()
End Using
Return True
Catch ex As Exception
Return False
End Try
End Function
Public Function Elimina(ByVal CodFactura As Integer) As Boolean
Try
Using OEntidad As New EntitiesVentas
Dim recupera = From facturas In OEntidad.Vtas_Factura_Cab
Where facturas.IdFactura = CodFactura
Select facturas
For Each item In recupera
OEntidad.Vtas_Factura_Cab.DeleteObject(item)
Next
OEntidad.SaveChanges()
End Using
Return True
Catch ex As Exception
Return False
End Try
End Function
End Class
La clase FacturaDet_Data.vb tendrá el siguiente código:Imports Entities
Public Class FacturaDet_Data
Public Function BuscarUna(ByVal codigoFactura As Integer) As List(Of FacturaDet_Ent)
Using OEntidad As New EntitiesVentas
Dim query = From facturas In OEntidad.Vtas_Factura_Det
Where facturas.IdFactura = codigoFactura
Select facturas
Dim lista As New List(Of FacturaDet_Ent)
For Each item In query
Dim det As New FacturaDet_Ent
det.IdFactura = item.IdFactura
det.Secuencia = item.Secuencia
det.CodProducto = item.CodProducto
det.DescProducto = item.DescProducto
det.Cantidad = item.Cantidad
det.Precio = item.Precio
det.Total = item.Total
lista.Add(det)
Next
Return lista
End Using
End Function
Public Function Inserta(ByVal Detfactura As List(Of FacturaDet_Ent)) As Boolean
Try
Using OEntidad As New EntitiesVentas
For Each item In Detfactura
Dim tbDetFactura As New Vtas_Factura_Det
tbDetFactura.IdFactura = item.IdFactura
tbDetFactura.Secuencia = item.Secuencia
tbDetFactura.CodProducto = item.CodProducto
tbDetFactura.DescProducto = item.DescProducto
tbDetFactura.Cantidad = item.Cantidad
tbDetFactura.Precio = item.Precio
tbDetFactura.Total = item.Total
OEntidad.Vtas_Factura_Det.AddObject(tbDetFactura)
Next
OEntidad.SaveChanges()
End Using
Return True
Catch ex As Exception
Return False
End Try
End Function
Public Function Modifica(ByVal Detfactura As List(Of FacturaDet_Ent), ByVal CodFactura As Integer) As Boolean
Try
Using OEntidad As New EntitiesVentas()
If Elimina(CodFactura) And Inserta(Detfactura) Then
Return True
Else
Return False
End If
End Using
Return True
Catch ex As Exception
Return False
End Try
End Function
Public Function Elimina(ByVal CodFactura As Integer) As Boolean
Try
Using OEntidad As New EntitiesVentas
Dim recupera = From facturas In OEntidad.Vtas_Factura_Det
Where facturas.IdFactura = CodFactura
Select facturas
For Each item In recupera
OEntidad.Vtas_Factura_Det.DeleteObject(item)
Next
OEntidad.SaveChanges()
End Using
Return True
Catch ex As Exception
Return False
End Try
End Function
End Class
Posteriormente vamos con capa Business Layer en la Parte 3


Comentarios
Publicar un comentario