Option Explicit
Dim strConsulta As String
Dim recordsetCompras As New ADODB.Recordset
Dim marcas As cMarcas
Dim articulos As cArticulos
Dim compras As cCompras
Private Sub buscarArticulos()
On Error GoTo errMsg
Dim cveMarca, i
Screen.MousePointer = vbHourglass
If cboMarcas.ItemData(cboMarcas.ListIndex) <> 0 Then
cveMarca = marcas.getCveMarca(cboMarcas.ItemData(cboMarcas.ListIndex))
Set g2.Recordset = compras.buscarArticulos("", cveMarca, s.Text, "")
Else
Set g2.Recordset = compras.buscarArticulos("", "", s.Text, "")
End If
For i = 1 To (g2.Rows - 1)
g2.TextMatrix(i, 4) = FormatCurrency(g2.TextMatrix(i, 4))
If g2.TextMatrix(i, 6) <> "" Then
g2.TextMatrix(i, 6) = FormatCurrency(g2.TextMatrix(i, 6))
End If
If g2.TextMatrix(i, 8) <> "" Then
g2.TextMatrix(i, 8) = FormatCurrency(g2.TextMatrix(i, 8))
End If
Next
Screen.MousePointer = vbDefault
Exit Sub
errMsg:
End Sub
Private Sub btnFind_Click()
buscarArticulos
End Sub
Private Sub cboFamilias_Click()
On Error GoTo errorcbofamilias
Dim i As Integer
If cboFamilias.Text <> "" Then
i = cboFamilias.ListIndex
cboMarcas.ListIndex = 0
cboFamilias.ListIndex = i
Set g2.Recordset = compras.buscarArticulos(cboFamilias.Text, "", "", "")
End If
s.Text = ""
For i = 1 To (g2.Rows - 1)
g2.TextMatrix(i, 4) = FormatCurrency(g2.TextMatrix(i, 4))
If g2.TextMatrix(i, 6) <> "" Then
g2.TextMatrix(i, 6) = FormatCurrency(g2.TextMatrix(i, 6))
End If
If g2.TextMatrix(i, 8) <> "" Then
g2.TextMatrix(i, 8) = FormatCurrency(g2.TextMatrix(i, 8))
End If
Next
Exit Sub
errorcbofamilias:
End Sub
Private Sub cboMarcas_Click()
If cboFamilias.ListIndex > 0 Then
cboFamilias.ListIndex = 0
End If
End Sub
Private Sub cmdBorrar_Click()
Screen.MousePointer = vbHourglass
With AdodcCompras.Recordset
If (.RecordCount > 0) Then
.delete
.update
End If
End With
AdodcCompras.Recordset.Requery
AdodcCompras.Refresh
gridCompras.Refresh
Screen.MousePointer = vbDefault
Calcular_Total
End Sub
Private Sub cmdBorrarTodos_Click()
Dim cmd As New ADODB.Command
Dim Msg, Style, Title, Response, MyString
Msg = "Esta acción eliminará todos los registros ya capturados. " + vbCr + " ¿ Desea continuar ?" ' Define message.
Style = vbYesNo + vbExclamation + vbDefaultButton2 ' Define buttons.
Title = "¿Borrar todos los registros?" ' Define title.
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then ' User chose Yes.
Screen.MousePointer = vbHourglass
With cmd
.ActiveConnection = AdodcCompras.Recordset.ActiveConnection
.CommandType = adCmdText
.CommandText = "DELETE FROM compras"
.Execute
End With
AdodcCompras.Recordset.Requery
AdodcCompras.Refresh
gridCompras.Refresh
Screen.MousePointer = vbDefault
Calcular_Total
End If
End Sub
Private Sub cmdImprimir_Click()
On Error GoTo errMsg
'report1.WindowShowPrintSetupBtn = True
'report1.Action = 1
Exit Sub
errMsg:
If Err.Number <> 0 Then
errMsg
End If
End Sub
Private Sub Command2_Click()
If (articulos.checkFile(g2.TextMatrix(g2.row, 1), g2.TextMatrix(g2.row, 2))) Then
frmFoto.Show
frmFoto.Caption = g2.TextMatrix(g2.row, 1)
Else
MsgBox ("La foto de este artículo no existe !!")
End If
End Sub
Private Sub Command3_Click()
Dim rs As ADODB.Recordset
Dim drs As ADODB.Recordset
Set drs = AdodcCompras.Recordset
Set rs = g2.DataSource
rs.MoveFirst
Screen.MousePointer = vbHourglass
While Not rs.EOF
If Not drs.EOF Then
drs.MoveFirst
drs.Find "idarticulo = " & rs!idarticulo
If Not drs.EOF Then
GoTo Command3_Click_Siguiente
Exit Sub
End If
drs.MoveLast
End If
drs.AddNew
drs!idarticulo = rs!idarticulo
drs!codigo = rs!codigo
drs!articulo = rs!articulo
drs!marca = rs!marca
drs!origen = rs!origen
drs!cantidad = 1
drs!precio = CCur(rs!precio)
drs!importe = CCur(rs!precio)
drs.update
Command3_Click_Siguiente:
rs.MoveNext
Wend
AdodcCompras.Recordset.Requery
AdodcCompras.Refresh
Calcular_Total
AdodcCompras.Recordset.MoveLast
Screen.MousePointer = vbDefault
End Sub
Private Sub command4_Click()
Dim rs As ADODB.Recordset
Dim grs As ADODB.Recordset
On Error GoTo errMsg
If g2.row >= 1 Then
Screen.MousePointer = vbHourglass
Set rs = AdodcCompras.Recordset
If Not rs.EOF Then
rs.MoveFirst
rs.Find "idarticulo = " & g2.TextMatrix(g2.row, 0)
If Not rs.EOF Then
Screen.MousePointer = vbDefault
MsgBox "Ya ha agregado este producto en la lista de compras", vbOKOnly, "Producto ya existe"
Exit Sub
End If
rs.MoveLast
End If
rs.AddNew
rs!idarticulo = g2.TextMatrix(g2.row, 0)
rs!codigo = g2.TextMatrix(g2.row, 1)
rs!articulo = g2.TextMatrix(g2.row, 2)
rs!marca = g2.TextMatrix(g2.row, 3)
rs!origen = g2.TextMatrix(g2.row, 9)
rs!cantidad = 1
rs!precio = CCur(g2.TextMatrix(g2.row, 4))
rs!importe = CCur(g2.TextMatrix(g2.row, 4))
rs.update
AdodcCompras.Recordset.Requery
AdodcCompras.Refresh
gridCompras.Refresh
Calcular_Total
AdodcCompras.Recordset.MoveLast
Screen.MousePointer = vbDefault
End If
Exit Sub
errMsg:
If Err.Number <> 0 Then
errMsg
End If
End Sub
Private Sub Form_Load()
Screen.MousePointer = vbHourglass
' Abrimos la conexión
With AdodcCompras
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db\ciosa.mdb;Persist Security Info=False"
.RecordSource = "compras"
.CommandType = adCmdTable
.Refresh
End With
Set gridCompras.DataSource = AdodcCompras
' Creamos las marcas y llenamos el combobox
Set marcas = New cMarcas
marcas.fillCboMarcas cboMarcas
Set compras = New cCompras
Set articulos = compras.articulo
'Set articulos = New cArticulos
articulos.fillCboFamilias cboFamilias
'Preparar IVA Subtotal y total
strConsulta = "SELECT subtotal*iva as subiva,subtotal*iva+subtotal as total,subtotal "
strConsulta = strConsulta & " FROM (SELECT sum(importe) as subtotal from compras),config"
recordsetCompras.Open strConsulta, AdodcCompras.Recordset.ActiveConnection, adOpenDynamic
Set txtiva.DataSource = recordsetCompras
Set txtsubTotal.DataSource = recordsetCompras
Set txttotal.DataSource = recordsetCompras
txtiva.DataField = "subiva"
txtsubTotal.DataField = "subtotal"
txttotal.DataField = "total"
cboMarcas.ListIndex = 0
cboFamilias.ListIndex = 0
'Llenamos el grid de artículos
crearGridArticulos
Calcular_Total
'report1.ReportFileName = App.Path & "\reports\" & "compras.rpt"
'report1.DataFiles(0) = dbCiosa
'report1.WindowShowPrintSetupBtn = True
Screen.MousePointer = vbDefault
End Sub
Private Sub crearGridArticulos()
Dim i As Integer
Set g2.DataSource = compras.buscarArticulos("", "", "", "")
g2.ColWidth(0) = 0
g2.ColWidth(1) = 1500
g2.ColWidth(2) = 7000
g2.ColWidth(3) = 1500
g2.ColAlignment(4) = 7
g2.ColAlignment(6) = 7
g2.ColAlignment(8) = 7
For i = 1 To (g2.Rows - 1)
g2.TextMatrix(i, 4) = FormatCurrency(g2.TextMatrix(i, 4))
If g2.TextMatrix(i, 6) <> "" Then
g2.TextMatrix(i, 6) = FormatCurrency(g2.TextMatrix(i, 6))
End If
If g2.TextMatrix(i, 8) <> "" Then
g2.TextMatrix(i, 8) = FormatCurrency(g2.TextMatrix(i, 8))
End If
Next
End Sub
Private Sub Calcular_Total()
recordsetCompras.Close
recordsetCompras.Open strConsulta, AdodcCompras.Recordset.ActiveConnection, adOpenDynamic
Set txtiva.DataSource = recordsetCompras
Set txtsubTotal.DataSource = recordsetCompras
Set txttotal.DataSource = recordsetCompras
txtiva.DataField = "subiva"
txtsubTotal.DataField = "subtotal"
txttotal.DataField = "total"
End Sub