VERSION 5.00
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
Begin VB.Form Form_importar_cheques 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Captura de chueques"
   ClientHeight    =   1905
   ClientLeft      =   45
   ClientTop       =   435
   ClientWidth     =   3720
   Icon            =   "form_importar_cheques.frx":0000
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MDIChild        =   -1  'True
   MinButton       =   0   'False
   ScaleHeight     =   1905
   ScaleWidth      =   3720
   Begin MSComDlg.CommonDialog CommonDialog1 
      Left            =   3000
      Top             =   1200
      _ExtentX        =   847
      _ExtentY        =   847
      _Version        =   393216
   End
   Begin VB.CommandButton Command1 
      Caption         =   "Examinar"
      Height          =   495
      Left            =   600
      TabIndex        =   0
      Top             =   960
      Width           =   2055
   End
   Begin VB.Frame Frame1 
      Caption         =   "Captura de cheques"
      BeginProperty Font 
         Name            =   "Arial"
         Size            =   8.25
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H00C00000&
      Height          =   1575
      Left            =   120
      TabIndex        =   1
      Top             =   120
      Width           =   3375
      Begin VB.Label Label1 
         Caption         =   "Selecccione el Archivo Excel"
         BeginProperty Font 
            Name            =   "MS Sans Serif"
            Size            =   8.25
            Charset         =   0
            Weight          =   700
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   495
         Left            =   480
         TabIndex        =   2
         Top             =   480
         Width           =   2415
      End
   End
End
Attribute VB_Name = "Form_importar_cheques"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'Option Explicit
'Dim ObjExcel As cExcel
Dim Cedula   As String
Dim Codigo   As String
Dim reprecen As String

Private Sub button1_Click()

    
End Sub

Private Sub Command1_Click()
Dim monto_cheques As Long
Dim total_cheques As Integer
Dim valor As Long

Dim var_sql As String
Dim objRS As ADODB.Recordset
Set objRS = New ADODB.Recordset
Dim lngUltimaFila As Long
Dim xlApp As Excel.Application

'Variable de tipo Aplicación de Excel
Dim objExcel As Excel.Application
      
'Una variable de tipo Libro de Excel
Dim xLibro As Excel.Workbook
Dim Col As Integer, Fila As Integer
      
'creamos un nuevo objeto excel
Set objExcel = New Excel.Application

Dim Estado As Boolean
Dim linea As String
'Dim fila As Long
Dim Columna As Long
Dim fin_filas As Long

CommonDialog1.DialogTitle = "Seleccione un Archivo Excel"
CommonDialog1.Filter = "Archivos de texto Excel|*.xlsx"
CommonDialog1.ShowOpen

If CommonDialog1.FileName = "" Then
    MsgBox "Debe Seleccionar un Archivo"
  Exit Sub
End If
 
'MsgBox CommonDialog1.FileName

 'Usamos el método open para abrir el archivo que está _
         en el directorio del programa llamado archivo.xls
        'Set xLibro = objExcel.Workbooks.Open(App.Path + "\archivo.xlsx")
Set xLibro = objExcel.Workbooks.Open(CommonDialog1.FileName)
      
        'Hacemos el Excel Visible
objExcel.Visible = False
      
With xLibro
      
            ' Hacemos referencia a la Hoja
    With .Sheets(1)
    
    
      
                'Recorremos la fila desde la 1 hasta la 7
       'Buscamos fin de datos de excel
        Fila = 5
        fin = False
        While fin = False
            Fila = Fila + 1
            If .Cells(Fila, 22) = "" And .Cells((Fila + 1), 22) = "" And .Cells((Fila + 2), 22) = "" _
                And .Cells((Fila + 3), 22) = "" And .Cells((Fila + 4), 22) = "" And .Cells((Fila + 5), 22) = "" _
                And .Cells((Fila + 10), 22) = "" And .Cells((Fila + 15), 22) = "" And .Cells((Fila + 20), 22) = "" Then
                fin = True
                fin_filas = (Fila - 1)
            End If
        Wend
            
'        MsgBox .Cells(1, 7)
'        MsgBox .Cells(4, 22)
                        
        Folio = .Cells(1, 7)
                        
        'Valido folio
        If Val(Folio) = 0 Then
            MsgBox "Error en formato de archivo, documento NO contiene folio", vbInformation
            Exit Sub
        End If
        
        'Valido columna vencimiento de cheque
        If CStr(.Cells(4, 22)) <> CStr("Vencimiento") Then
            MsgBox "Error en formato de archivo", vbInformation
            Exit Sub
        End If
        
        'Valido que el folio del documento no este ingresado
        var_sql = "SELECT * FROM fnza_rendicion_contables WHERE folio_rendicion = " & Folio & " LIMIT 1"
        objRS.Open var_sql, conn
        If objRS.RecordCount > 0 Then
            MsgBox "La rendición con folio " & Folio & " ya fue ingresada", vbInformation
            Exit Sub
        End If
        objRS.Close
                        
        For Fila = 5 To fin_filas
            valor = 0
            'For columna = 2 To 18
                'Agregamos el valor de la fila que _
                corresponde a la columna 2
               ' MsgBox Val(Replace(Replace(.Cells(Fila, 15), "$", ""), ".", ""))
               valor = IIf(.Cells(Fila, 15) = "", 0, Val(Replace(Replace(.Cells(Fila, 15), "$", ""), ".", "")))
               If Len(.Cells(Fila, 22)) > 8 And valor > 0 Then
                
                
                var_sql = "INSERT INTO fnza_rendicion_contables(fecha,desde,hasta,monto,nombre_apoderado,rut_apo," _
                        & "alumno,rut_alu,curso,concepto,efectivo,pat," _
                        & "transferencia,tarjeta,monto_dcto,rut_titular,nombre_titular," _
                        & "banco,cod_banco,cuenta_corriente,numero_cheque,vencimiento,estado,cod_estado,folio_rendicion)" _
                        & " VALUES('" & .Cells(Fila, 1) & "'," & IIf(.Cells(Fila, 2) = "", "NULL", .Cells(Fila, 2)) & "," & IIf(.Cells(Fila, 3) = "", "NULL", .Cells(Fila, 3)) _
                        & "," & IIf(.Cells(Fila, 4) = "", "NULL", .Cells(Fila, 4)) & ",'" & .Cells(Fila, 5) & "','" & .Cells(Fila, 6) & "','" _
                        & .Cells(Fila, 7) & "','" & .Cells(Fila, 8) & "','" & .Cells(Fila, 9) & "','" & .Cells(Fila, 10) & "'," & IIf(.Cells(Fila, 11) = "", "NULL", .Cells(Fila, 11)) _
                        & "," & IIf(.Cells(Fila, 12) = "", "NULL", .Cells(Fila, 12)) & "," _
                        & IIf(.Cells(Fila, 13) = "", "NULL", .Cells(Fila, 13)) & "," & IIf(.Cells(Fila, 14) = "", "NULL", .Cells(Fila, 14)) _
                        & "," & IIf(.Cells(Fila, 15) = "", "NULL", Val(Replace(Replace(.Cells(Fila, 15), "$", ""), ".", ""))) & ",'" & .Cells(Fila, 16) & "','" & .Cells(Fila, 17) & "','" _
                        & .Cells(Fila, 18) & "','" & .Cells(Fila, 19) & "','" & .Cells(Fila, 20) & "','" & .Cells(Fila, 21) & "','" _
                        & .Cells(Fila, 22) & "','" & .Cells(Fila, 23) & "'," & IIf(.Cells(Fila, 24) = "", "NULL", .Cells(Fila, 24)) & "," & Folio & ");"
                conn.Execute var_sql
                
                
                'MsgBox Mid(.Cells(Fila, 22), 7, 4)
                
                    monto_cheques = monto_cheques + valor
                    total_cheques = total_cheques + 1
                End If
                
                
                
                
'validar ingreso de folios
'validadr final de excel
'validadr total de chueques


                
            'Next columna
        Next Fila
        
        If MsgBox("La cantidad de cheques ingresados es " & total_cheques & " y el monto de los cheques es " & monto_cheques & ", ¿Desea guardar los datos?", vbQuestion + vbYesNo) = vbYes Then
            If MsgBox("¿Esta seguro que desea guardar los datos?", vbQuestion + vbYesNo) = vbYes Then
            
                var_sql = "INSERT INTO fnza_cheques_recibidos(chq_serie,run_apo,banco,cta_cte,chq_numero,chq_fecha,run_titular,nom_titular,monto_chq,estado_chq,cod_estado)" _
                        & " SELECT 'SIN-SERIE' AS serie,rut_apo,cod_banco,cuenta_corriente,numero_cheque, CONCAT(MID(vencimiento,7,4),'-',MID(vencimiento,4,2),'-',MID(vencimiento,1,2)) ,rut_titular,nombre_titular,monto_dcto,'cart' AS estado_chq,if(cod_estado is null,1,cod_estado) as cod_estado FROM fnza_rendicion_contables WHERE folio_rendicion = " & Folio _
                        & " AND CONCAT(cuenta_corriente,numero_cheque,monto_dcto) NOT IN" _
                        & " (SELECT CONCAT(cta_cte,chq_numero,monto_chq) FROM fnza_cheques_recibidos)"
                conn.Execute var_sql
                MsgBox "Los datos fueron guardados satisfactoriamente", vbInformation
            Else
                var_sql = "DELETE FROM fnza_rendicion_contables where folio_rendicion = " & Folio
                conn.Execute var_sql
                MsgBox "Los datos no fueron guardados", vbInformation
            End If
            'MsgBox total_cheques & " a " & monto_cheques
        Else
            var_sql = "DELETE FROM fnza_rendicion_contables where folio_rendicion = " & Folio
            conn.Execute var_sql
            MsgBox "Los datos no fueron guardados", vbInformation
            'Exit Sub
        End If
    End With
End With
      
        'Eliminamos los objetos si ya no los usamos
objExcel.Quit
Set objExcel = Nothing
Set xLibro = Nothing
        

End Sub

