VERSION 5.00
Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "MSFLXGRD.OCX"
Object = "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCT2.OCX"
Begin VB.Form Form_academias_masivo 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Masivo Academias"
   ClientHeight    =   5475
   ClientLeft      =   45
   ClientTop       =   435
   ClientWidth     =   9555
   Icon            =   "Form_academias_masivo.frx":0000
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MDIChild        =   -1  'True
   MinButton       =   0   'False
   ScaleHeight     =   5475
   ScaleWidth      =   9555
   Begin VB.CommandButton Command2 
      Caption         =   "Agregar al Libro"
      BeginProperty Font 
         Name            =   "Arial"
         Size            =   8.25
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Left            =   7680
      TabIndex        =   7
      Top             =   4800
      Width           =   1695
   End
   Begin VB.Frame Frame1 
      Caption         =   "Masivo Academias"
      BeginProperty Font 
         Name            =   "Arial"
         Size            =   8.25
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H00C00000&
      Height          =   4455
      Left            =   120
      TabIndex        =   0
      Top             =   120
      Width           =   9375
      Begin MSComCtl2.DTPicker dtp_impresion 
         Height          =   285
         Left            =   5520
         TabIndex        =   8
         Top             =   600
         Width           =   1455
         _ExtentX        =   2566
         _ExtentY        =   503
         _Version        =   393216
         Format          =   17170433
         CurrentDate     =   45769
      End
      Begin MSFlexGridLib.MSFlexGrid grid_academias 
         Height          =   3255
         Left            =   120
         TabIndex        =   6
         Top             =   1080
         Width           =   9135
         _ExtentX        =   16113
         _ExtentY        =   5741
         _Version        =   393216
      End
      Begin VB.CommandButton Command1 
         Caption         =   "Imprimir"
         BeginProperty Font 
            Name            =   "Arial"
            Size            =   8.25
            Charset         =   0
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   495
         Left            =   7560
         TabIndex        =   5
         Top             =   240
         Width           =   1695
      End
      Begin MSComCtl2.DTPicker dtp_hasta 
         Height          =   285
         Left            =   2520
         TabIndex        =   2
         Top             =   600
         Width           =   1455
         _ExtentX        =   2566
         _ExtentY        =   503
         _Version        =   393216
         Format          =   17170433
         CurrentDate     =   45751
      End
      Begin MSComCtl2.DTPicker dtp_desde 
         Height          =   285
         Left            =   240
         TabIndex        =   1
         Top             =   600
         Width           =   1455
         _ExtentX        =   2566
         _ExtentY        =   503
         _Version        =   393216
         Format          =   17170433
         CurrentDate     =   45751
      End
      Begin VB.Label Label3 
         Caption         =   "Fecha Impresion"
         BeginProperty Font 
            Name            =   "Arial"
            Size            =   8.25
            Charset         =   0
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   255
         Left            =   5520
         TabIndex        =   9
         Top             =   360
         Width           =   1575
      End
      Begin VB.Label Label2 
         Caption         =   "Hasta"
         BeginProperty Font 
            Name            =   "Arial"
            Size            =   8.25
            Charset         =   0
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   255
         Left            =   2520
         TabIndex        =   4
         Top             =   360
         Width           =   855
      End
      Begin VB.Label Label1 
         Caption         =   "Desde"
         BeginProperty Font 
            Name            =   "Arial"
            Size            =   8.25
            Charset         =   0
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   255
         Left            =   240
         TabIndex        =   3
         Top             =   360
         Width           =   975
      End
   End
End
Attribute VB_Name = "Form_academias_masivo"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()
    Dim var_sql As String
    Dim objRS As ADODB.Recordset
    Set objRS = New ADODB.Recordset
    Dim ruta2 As String
    Dim Registro As String
    Dim registro0 As String
    Dim registro1 As String
    Dim registro2 As String
    Dim registro3 As String
    Dim registro4 As String
    Dim registro5 As String
    Dim registro6 As String
    Dim registro7 As String
    Dim registro8 As String
    
    var_sql = "drop table if exists temp_boletas_academia;"
    conn.Execute var_sql
    
    var_sql = "create table `temp_boletas_academia` (" _
            & "`folio` int (10)," _
            & "`estado` varchar (15)," _
            & "`fecha_pago` date," _
            & "`vencimiento` date," _
            & "`rut_apo` varchar (30)," _
            & "`monto` int (10)," _
            & "`apoderado` varchar (216)," _
            & "`ci_alu` varchar (33)," _
            & "`email` varchar (135)," _
            & "`alumno` varchar (291)," _
            & "`curso` varchar (30)," _
            & "`deuda` varchar (180)," _
            & "`dir_apo` varchar (300)," _
            & "`ciudad` char (24)," _
            & "`id_academia` int (10)," _
            & "`comuna` varchar (60)) type = MyISAM;"
    conn.Execute var_sql
    
    var_sql = "UPDATE fnza_upago_recaudado_academias SET rut = CONCAT('0',rut) WHERE LENGTH(rut) = 9"
    conn.Execute var_sql
    
    aaa = ConectarSQL(connSQL, "192.168.7.13", colegio, "sa", "passCORPsa.2024", True)
    var_sql = "select max(folio) as folio from " & DevuelveCampo("fnza_temp_boleta_electronica", "", "sector", "1=1", conn) & ".softland.iw_gsaen where tipo = 'B'"
    objRS.Open var_sql, connSQL
    If objRS.RecordCount > 0 Then
        If objRS("folio") < 17975 Then
            Folio = 17975
        Else
            Folio = objRS("folio") + 1
        End If
    End If
    objRS.Close
    connSQL.Close
    
    Folio = InputBox("Ingrese folio para masivo, ultimo generado fue " & Folio, "Folio de inicio de boletas")
    
    If Format(dtp_hasta.Value, "yyyy-mm-dd") = "2025-04-02" Then
        var_sql = "SELECT i.id,vencimiento,r.monto,CONCAT(des_ens_abrev,' ',CAST(IF(m.cod_ens = '110' OR m.cod_ens = '310',m.num_gra,'') AS CHAR),CAST(IF(m.cod_ens = '110' OR m.cod_ens = '310','º ','') AS CHAR)) AS Curso,fecha_pago,apo.rut_apo,CONCAT(ape1_apo,' ',ape2_apo,' ',noms_apo) AS apoderado,axa.ci_alu,apo.email,CONCAT(ape_pat_alu,' ',ape_mat_alu,' ',nom_alu) AS alumno,deuda,dir_apo,'SANTIAGO' AS ciudad,comuna" _
                & " FROM fnza_upago_recaudado_academias r,apo_x_alu axa,inscripciones_academias i,academias a,apoderados apo,postulantes p,matriculas m,codigos__geograficos cg,codigos_ensenanza ce" _
                & " WHERE r.rut = axa.rut_apo AND axa.agno = 2026 AND axa.ci_alu = i.rut AND axa.rut_apo = apo.rut_apo AND axa.ci_alu = p.ci_alu AND axa.ci_alu = m.ci_alu AND axa.agno = m.anno_mat AND apo.comuna_apo = cg.cod_geo AND" _
                & " fecha_pago >= '" & Format(dtp_desde.Value, "yyyy-mm-dd") & "' AND fecha_pago <= '" & Format(dtp_hasta.Value, "yyyy-mm-dd") & "' AND i.academia_id = a.id" _
                & " AND (MID(deuda,10) = a.nombre OR deuda = 'LCH 2025 BÁSQUETBOL MIXTO 2 - 3° Y 4° BÁSICO') and m.cod_ens = ce.cod_ens" _
                & " AND i.id <> 446 AND i.id <> 137 AND i.id <> 142 AND DATE_FORMAT(pago_cliente,'%Y-%m-%d') > DATE_FORMAT(fecha_inscripcion,'%Y-%m-%d') GROUP BY id"
    
    Else
        var_sql = "SELECT i.id,vencimiento,r.monto,CONCAT(des_ens_abrev,' ',CAST(IF(m.cod_ens = '110' OR m.cod_ens = '310',m.num_gra,'') AS CHAR),CAST(IF(m.cod_ens = '110' OR m.cod_ens = '310','º ','') AS CHAR)) AS Curso,fecha_pago,apo.rut_apo,CONCAT(ape1_apo,' ',ape2_apo,' ',noms_apo) AS apoderado,axa.ci_alu,apo.email,CONCAT(ape_pat_alu,' ',ape_mat_alu,' ',nom_alu) AS alumno,deuda,dir_apo,'SANTIAGO' AS ciudad,comuna" _
                & " FROM fnza_upago_recaudado_academias r,apo_x_alu axa,inscripciones_academias i,academias a,apoderados apo,postulantes p,matriculas m,codigos__geograficos cg,codigos_ensenanza ce" _
                & " WHERE r.rut = axa.rut_apo AND axa.agno = 2026 AND axa.ci_alu = i.rut AND axa.rut_apo = apo.rut_apo AND axa.ci_alu = p.ci_alu AND axa.ci_alu = m.ci_alu AND axa.agno = m.anno_mat AND apo.comuna_apo = cg.cod_geo AND" _
                & " fecha_pago >= '" & Format(dtp_desde.Value, "yyyy-mm-dd") & "' AND fecha_pago <= '" & Format(dtp_hasta.Value, "yyyy-mm-dd") & "' AND i.academia_id = a.id" _
                & " AND (MID(deuda,12) = a.nombre OR MID(deuda,10) = a.nombre OR deuda = '24761039 - BÁSQUETBOL 5º A 8º BÁSICO - RECREATIVO' OR deuda = '24900768 - BÁSQUETBOL 5º A 8º BÁSICO - RECREATIVO') and m.cod_ens = ce.cod_ens" _
                & " AND i.agno = 2026 AND i.id <> 959 AND i.id <> 959 AND MID(r.deuda,1,8) = MID(i.rut,1,8) GROUP BY id"
    End If
    objRS.Open var_sql, conn
    
    While Not objRS.EOF
        var_sql = "insert into `temp_boletas_academia` (id_academia,vencimiento,monto,fecha_pago,folio,estado,`rut_apo`, `apoderado`, `ci_alu`, `email`, `alumno`,curso, `deuda`, `dir_apo`, `ciudad`, `comuna`)" _
                & " values(" & objRS("id") & ",'" & Format(objRS("vencimiento"), "yyyy-mm-dd") & "'," & objRS("monto") & ",'" & Format(dtp_impresion.Value, "yyyy-mm-dd") & "'," & Folio & ",'Impaga','" & objRS("rut_apo") & "','" & objRS("apoderado") & "','" & objRS("ci_alu") & "','" & objRS("email") _
                & "','" & objRS("alumno") & "','" & objRS("curso") & "','" & objRS("deuda") & "','" & objRS("dir_apo") & "','SANTIAGO','" & objRS("comuna") & "');"
        conn.Execute var_sql
        Folio = Folio + 1
        objRS.MoveNext
    Wend
    objRS.Close
    
    var_sql = "select * from temp_boletas_academia order by folio"
    
    objRS.Open var_sql, conn
    If Not objRS.EOF Then
        Call Rec2Grid(objRS, grid_academias, True)
        ' msflex_alumnos.ColSel = 5
    Else
        'MsgBox "Esta mensualidad aún no ha vencido", vbInformation
    End If
    objRS.Close
    
    
   
    
    
  '  Exit Sub
    
    ruta2 = DevuelveCampo("usuarios", "", "ruta_softland", "AUT_NOMBRE_USUARIO ='" & Nom_usu_ses & "'", conn)
'    Call Crear_Archivo_Cobranza(ruta2)
'
'    'Derecho Matricula
'    enumeracion_concepto = "B2"
'    detalle_producto = "DERECHO MATRICULA AÑO ESCOLAR 2017"
'    valor_concepto = 0
'    desc_beca = 0
'    desc_otros = 0
'    total_boleta = MArancel - (MExencion + OtrasExencion)
'
'                            '1  2 3 4               5                                6                7              8CAM                  9        1011 listo
'                registro1 = "B;S;V;" & caja & ";" & Folio & ";" & Format(FEmision, "dd") & "/" & Format(FEmision, "mm") & "/" & Format(FEmision, "yyyy") & ";0" & "1" & ";" & Format(FEmision, "dd") & "/" & Format(FEmision, "mm") & "/" & Format(FEmision, "yyyy") & ";" & alumno_curso & ";;;"
'                '12 - 16      17 ok            18              19                20             21ok            22ok
'                registro2 = ";;;;;" & RutApo & ";" & NomApo & ";" & Replace(RutApo, "-", "") & ";" & MesBoleta & ";" & mail & ";" & direccion & ";"
'                            '         23                24ok          25ok   262728         35          30 - 40
'                registro3 = "" & agno_boleta & ";" & Comuna & ";" & Ciudad & ";;;;;;;;;;" & forma_pago & ";;;;;;" & MesBoleta
'                             '42-58                    59                        60             61          62            636465         66          676869     70         71      72
'                registro4 = ";;;;;;;;;;;;;;;;;;" & total_boleta & ";" & enumeracion_concepto & ";;" & detalle_producto & ";;1;1;" & valor_concepto & ";;;;" & desc_beca & ";;" & desc_otros & ";;;;;;;;"
'                            '81  -  153
'                registro5 = ";;;;;;;;S;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
'                Registro = registro1 & registro2 & registro3 & registro4 & registro5
'                registro6 = Registro
'                registro7 = registro6
'
'                'Call AgregarRegistroCobranza(Base64EncodeString(Registro), ruta)
'                Call AgregarRegistroCobranza(Registro, ruta2)
'
'                'Mensualidades
'                enumeracion_concepto = "B3"
'                detalle_producto = "MONTO MENSUAL"
'                valor_concepto = MArancel
'                desc_beca = MExencion
'                desc_otros = OtrasExencion
'               '1  2 3 4               5                                6                7              8CAM                  9        1011
'                registro1 = "B;S;V;" & caja & ";" & Folio & ";" & Format(FEmision, "dd") & "/" & Format(FEmision, "mm") & "/" & Format(FEmision, "yyyy") & ";0" & "1" & ";" & Format(FEmision, "dd") & "/" & Format(FEmision, "mm") & "/" & Format(FEmision, "yyyy") & ";" & alumno_curso & ";;;"
'               '12 - 16      17 ok            18              19                20             21ok            22ok
'                registro2 = ";;;;;" & RutApo & ";" & NomApo & ";" & Replace(RutApo, "-", "") & ";" & MesBoleta & ";" & mail & ";" & direccion & ";"
'              '                      23                24ok           25ok   262728           35         30 - 40
'                registro3 = "" & agno_boleta & ";" & Comuna & ";" & Ciudad & ";;;;;;;;;;" & forma_pago & ";;;;;;" & MesBoleta
'                 '41-53                                59                     60                61           62          636465           66         676869    70          71      72
'                registro4 = ";;;;;;;;;;;;;;;;;;" & total_boleta & ";" & enumeracion_concepto & ";;" & detalle_producto & ";;1;1;" & valor_concepto & ";;;;" & desc_beca & ";;" & desc_otros & ";;;;;;;;"
'                '81 - 153
'                registro5 = ";;;;;;;;S;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
'                Registro = registro1 & registro2 & registro3 & registro4 & registro5
'                registro7 = registro7 & vbCrLf & Registro
'                'Call AgregarRegistroCobranza(Base64EncodeString(Registro), ruta)
'                Call AgregarRegistroCobranza(Registro, ruta2)
'               'End If
'


'Ruta Boleta
            ' ruta = "\\vsoftland\Users\lriveros\Desktop\BOLETA ELECTRONICA\boleta_electronica_base64.txt"
            ruta2 = DevuelveCampo("usuarios", "", "ruta_softland", "AUT_NOMBRE_USUARIO ='" & Nom_usu_ses & "'", conn)
            ' ruta2 = "C:\Boleta Electronica\boleta_electronica.txt"
    
            a = Crear_Archivo_Cobranza(ruta2)
            
            
     registro0 = "Tipo_de_Documento_de_Venta;Subtipo_del_Documento;Estado_del_Documento;Bodega_Origen_de_los_Productos;Numero_de_Documento;Fecha_de_Generacion_del_Documento;Concepto_del_Documento;Fecha_de_Vencimiento_del_Documento;Observacion;Moneda_del_Documento;Equivalencia_de_la_Moneda_de_Venta_del_Documento;" _
                & "NCredito_por_Devolucion_o_Refacturacion;Guia_de_Entrada_que_Referencia;Motivo_Anulacion;Nro_Documento_que_Referencia;Tipo_de_documento_que_referencia;" _
                & "Codigo_de_Cliente;Nombre_del_Cliente;Rut_del_Cliente;Giro_del_Cliente;Mail_DTE_del_Cliente;Direccion_del_Cliente;N_Direccion_del_Cliente;Comuna_del_Cliente;Ciudad_del_Cliente;Lugar_del_Documento;Direccion_del_Documento;Codigo_Comuna_del_Documento;Codigo_Ciudad_del_Documento;Codigo_Region_del_Documento;" _
                & "Codigo_Pais_del_Documento;Codigo_Lista_de_Precios;Codigo_de_Vendedor;Codigo_Centro_de_Costo;Codigo_Condicion_de_Pago;Codigo_de_Distribuidor;Nombre_de_Distribuidor;Codigo_Lugar_de_Despacho;Retirado_Por;Patente_del_Camion_de_Despacho;Solicitado_Por;Rut_Solicitante;Despachado_Por;Rut_Transportista;" _
                & "Cuenta_Contable_para_Notas_de_Debito;Porcentaje_de_Descuento_1;Valor_de_Descuento_1;Porcentaje_de_Descuento_2;Valor_de_Descuento_2;Porcentaje_de_Descuento_3;Valor_de_Descuento_3;Porcentaje_de_Descuento_4;Valor_de_Descuento_4;Porcentaje_de_Descuento_5;Valor_de_Descuento_5;Flete;Embalaje;" _
                & "Codigo_de_Canal_de_Ventas;Total_Final;Codigo_de_Producto;Codigo_Unidad_de_Medida;Detalle_del_Producto;Descripcion_del_Producto;Cantidad_Facturada;Cantidad_Despachada;Precio_Unitario_Moneda_Base;Precio_Unitario_Moneda_de_Venta;Equivalencia_de_la_moneda_del_producto_vs_base;Porcentaje_de_Descuento_de_Linea_1;" _
                & "Valor_de_Descuento_de_Linea_1;Porcentaje_de_Descuento_de_Linea_2;Valor_de_Descuento_de_Linea_2;Porcentaje_de_Descuento_de_Linea_3;Valor_de_Descuento_de_Linea_3;" _
                & "Porcentaje_de_Descuento_de_Linea_4;Valor_de_Descuento_de_Linea_4;Porcentaje_de_Descuento_de_Linea_5;Valor_de_Descuento_de_Linea_5;Valor_Total_Descuentos_de_Linea;Porcentaje_de_credito_Empresas_Constructoras;Valor_Total_de_Credito_Empresas_Constructoras;Partida_o_Talla;Pieza_o_Color;" _
                & "Fecha_de_Vencimiento_de_la_Partida_o_Pieza;Serie;Numero_Nota_de_Venta;Identificador_Impresora_Fiscal;Conserva_Folio_Asignado_al_DTE;Referencia_1_Tipo_Documento_SII;Referencia_1_Descripcion;Referencia_1_Numero_Documento;Referencia_1_Fecha_Documento;" _
                & "Referencia_1_Codigo_Referencia_Boleta;Referencia_2_Tipo_Documento_SII;Referencia_2_Descripcion;Referencia_2_Numero_Documento;Referencia_2_Fecha_Documento;Referencia_2_Codigo_Referencia_Boleta;Referencia_3_Tipo_Documento_SII;Referencia_3_Descripcion;Referencia_3_Numero_Documento;Referencia_3_Fecha_Documento;" _
                & "Referencia_3_Codigo_Referencia_Boleta;Referencia_4_Tipo_Documento_SII;Referencia_4_Descripcion;Referencia_4_Numero_Documento;Referencia_4_Fecha_Documento;Referencia_4_Codigo_Referencia_Boleta;Referencia_5_Tipo_Documento_SII;Referencia_5_Descripcion;Referencia_5_Numero_Documento;Referencia_5_Fecha_Documento;" _
                & "Referencia_5_Codigo_Referencia_Boleta;Tipo_de_Transaccion;Forma_Pago_SII;ExportacionIndicador_de_Servicio;ExportacionForma_de_Pago_Exportacion;ExportacionIdAdicional_Receptor_Extranjero;ExportacionRut_Chofer;ExportacionNombre_Chofer;ExportacionModalidad_de_Venta;ExportacionClausula_de_Exportacion;ExportacionTotal_Clausula_de_Ventas_Exportacion;ExportacionRecargo_sTotal_Clausula_de_Venta;ExportacionVia_de_Transporte;" _
                & "ExportacionIddel_Medio_de_Transporte;ExportacionRut_Compania_Transportista;ExportacionNombre_Compania_Transportadora;ExportacionIdAdicional_Cia_Transportadora;ExportacionBooking;ExportacionMotoNave;ExportacionCodigo_de_Operador;ExportacionPuerto_de_Embarque;ExportacionIdAdicional_Puerto_de_Embarque;" _
                & "ExportacionPuerto_de_Desembarque;ExportacionIdAdicional_Puerto_de_Desembarque;ExportacionTara;ExportacionUnidad_de_Medida_Tara;ExportacionTotal_Peso_Bruto;ExportacionUnidad_Peso_Bruto;ExportacionTotal_Peso_Neto;ExportacionUnidad_Peso_Neto;ExportacionTotal_Items;ExportacionTotal_Bultos;ExportacionTipo_de_Bulto;" _
                & "ExportacionMarca;ExportacionId_Container;ExportacionSello;ExportacionEmisor_Sello;ExportacionFlete;ExportacionSeguro;ExportacionCodigo_Pais_Receptor;ExportacionTipo_Moneda_Transaccion"
     registro7 = registro0
     Call AgregarRegistroCobranza(registro0, ruta2)
            
    var_sql = "select * from temp_boletas_academia order by folio"
    
    objRS.Open var_sql, conn
    If Not objRS.EOF Then
    total_monto = 0
    total_boletas = 0
    While Not objRS.EOF
    '' txt_folio , dtp_fecha, alumno_curso, rut, apoderado, MesBoleta, mail, direccion, Año, Comuna, Ciudad, forma_pago, total_boleta, detalle_producto
    txt_folio = objRS("folio")
    fecha_boleta = objRS("fecha_pago")
    alumno_curso = objRS("alumno") & "          Curso: " & objRS("curso")
    rut = objRS("rut_apo")
    apoderado = objRS("apoderado")
    MesBoleta = objRS("deuda")
    mail = objRS("email")
    direccion = objRS("dir_apo")
    Año = Year(Date)
    Comuna = objRS("comuna")
    Ciudad = "SANTIAGO"
    forma_pago = "109"
    total_boleta = objRS("monto")
    total_monto = total_monto + objRS("monto")
    total_boletas = total_boletas + 1
            
    'Cuota Incorporacion
    enumeracion_concepto = "B1"
    detalle_producto = "CUOTA INCORPORACION"
    valor_concepto = 0
    desc_beca = 0
    desc_otros = 0
    'Format(rs("feceval"), "dd-mm-yyyy")
    
    '' txt_folio , dtp_fecha, alumno_curso, rut, apoderado, MesBoleta, mail, direccion, Año, Comuna, Ciudad, forma_pago, total_boleta, detalle_producto
    
                      '1  2 3 4               5                                6                7              8CAM                  9        1011
    registro1 = "B;S;V;1;" & txt_folio & ";" & Format(fecha_boleta, "dd") & "/" & Format(fecha_boleta, "mm") & "/" & Format(fecha_boleta, "yyyy") & ";0" & "1" & ";" & Format(fecha_boleta, "dd") & "/" & Format(fecha_boleta, "mm") & "/" & Format(fecha_boleta, "yyyy") & ";" & alumno_curso & ";;;"
                   '12 - 16      17 ok            18              19                20             21ok            22ok
    registro2 = ";;;;;" & rut & ";" & apoderado & ";" & Replace(rut, "-", "") & ";" & Mid(MesBoleta, 1, 30) & ";" & mail & ";" & direccion & ";"
                  '         23                24ok           25ok   262728       35         30 - 40
    registro3 = "" & Year(Date) & ";" & Comuna & ";" & Ciudad & ";;;;;;;;;;" & forma_pago & ";;;;;;" & Mid(MesBoleta, 1, 30)
                      '42-58               59cam                   60               61           62           636465         66          676869     70         71      72
    registro4 = ";;;;;;;;;;;;;;;;;;" & total_boleta & ";" & enumeracion_concepto & ";;" & detalle_producto & ";;1;1;" & valor_concepto & ";;;;" & desc_beca & ";;" & desc_otros & ";;;;;;;;"
                     '81 - 153
    registro5 = ";;;;;;;;S;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
    Registro = registro1 & registro2 & registro3 & registro4 & registro5
    registro6 = Registro
    registro7 = registro7 & vbCrLf & registro6
    'Call AgregarRegistroCobranza(Base64EncodeString(Registro), ruta)
    Call AgregarRegistroCobranza(Registro, ruta2)
            
    'Derecho Matricula
    enumeracion_concepto = "B2"
    detalle_producto = "DERECHO MATRICULA AÑO ESCOLAR 2017"
    valor_concepto = 0
    desc_beca = 0
    desc_otros = 0
                    '1  2 3 4               5                                6                7              8CAM                  9        1011
    registro1 = "B;S;V;1;" & txt_folio & ";" & Format(fecha_boleta, "dd") & "/" & Format(fecha_boleta, "mm") & "/" & Format(fecha_boleta, "yyyy") & ";0" & "1" & ";" & Format(fecha_boleta, "dd") & "/" & Format(fecha_boleta, "mm") & "/" & Format(fecha_boleta, "yyyy") & ";" & alumno_curso & ";;;"
                   '12 - 16      17 ok            18              19                20             21ok            22ok
    registro2 = ";;;;;" & rut & ";" & apoderado & ";" & Replace(rut, "-", "") & ";" & Mid(MesBoleta, 1, 30) & ";" & mail & ";" & direccion & ";"
                  '         23                24ok           25ok   262728      29ok         30 - 40
    registro3 = "" & Year(Date) & ";" & Comuna & ";" & Ciudad & ";;;;;;;;;;" & forma_pago & ";;;;;;" & Mid(MesBoleta, 1, 30)
                      '42-58               59                      60               61          62           636465         66           676869     70         71      72
    registro4 = ";;;;;;;;;;;;;;;;;;" & total_boleta & ";" & enumeracion_concepto & ";;" & detalle_producto & ";;1;1;" & valor_concepto & ";;;;" & desc_beca & ";;" & desc_otros & ";;;;;;;;"
                     '81 - 153
    registro5 = ";;;;;;;;S;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
    Registro = registro1 & registro2 & registro3 & registro4 & registro5
    registro6 = Registro
    registro7 = registro7 & vbCrLf & registro6

    'Call AgregarRegistroCobranza(Base64EncodeString(Registro), ruta)
    Call AgregarRegistroCobranza(Registro, ruta2)
    
    'Mensualidades
    enumeracion_concepto = "B3"
    detalle_producto = "MONTO MENSUAL"
    valor_concepto = 0
    desc_beca = 0
    desc_otros = 0
               '1  2 3 4               5                                6                7              8CAM                  9        1011
    registro1 = "B;S;V;1;" & txt_folio & ";" & Format(fecha_boleta, "dd") & "/" & Format(fecha_boleta, "mm") & "/" & Format(fecha_boleta, "yyyy") & ";0" & "1" & ";" & Format(fecha_boleta, "dd") & "/" & Format(fecha_boleta, "mm") & "/" & Format(fecha_boleta, "yyyy") & ";" & alumno_curso & ";;;"
               '12 - 16      17 ok            18              19                20             21ok            22ok
    registro2 = ";;;;;" & rut & ";" & apoderado & ";" & Replace(rut, "-", "") & ";" & Mid(MesBoleta, 1, 30) & ";" & mail & ";" & direccion & ";"
              '         23                24ok           25ok   262728      29ok         30 - 40
    registro3 = "" & Year(Date) & ";" & Comuna & ";" & Ciudad & ";;;;;;;;;;" & forma_pago & ";;;;;;" & Mid(MesBoleta, 1, 30)
                 '42-58                    59                   60                61        62             636465         66           676869     70         71       72
    registro4 = ";;;;;;;;;;;;;;;;;;" & total_boleta & ";" & enumeracion_concepto & ";;" & detalle_producto & ";;1;1;" & valor_concepto & ";;;;" & desc_beca & ";;" & desc_otros & ";;;;;;;;"
                '81 - 153
    registro5 = ";;;;;;;;S;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
    Registro = registro1 & registro2 & registro3 & registro4 & registro5
    registro7 = registro7 & vbCrLf & Registro
    'Call AgregarRegistroCobranza(Base64EncodeString(Registro), ruta)
    Call AgregarRegistroCobranza(Registro, ruta2)
    'End If
        
    ' Talleres
    enumeracion_concepto = "B4"
    detalle_producto = "TALLERES"
    valor_concepto = total_boleta
    desc_beca = 0
    desc_otros = 0
               '1  2 3 4               5                                6                7              8CAM                  9        1011
    registro1 = "B;S;V;1;" & txt_folio & ";" & Format(fecha_boleta, "dd") & "/" & Format(fecha_boleta, "mm") & "/" & Format(fecha_boleta, "yyyy") & ";0" & "1" & ";" & Format(fecha_boleta, "dd") & "/" & Format(fecha_boleta, "mm") & "/" & Format(fecha_boleta, "yyyy") & ";" & alumno_curso & ";;;"
               '12 - 16      17 ok            18              19                20             21ok            22ok
    registro2 = ";;;;;" & rut & ";" & apoderado & ";" & Replace(rut, "-", "") & ";" & Mid(MesBoleta, 1, 30) & ";" & mail & ";" & direccion & ";"
              '         23                24ok           25ok   262728      29ok         30 - 40
    registro3 = "" & Year(Date) & ";" & Comuna & ";" & Ciudad & ";;;;;;;;;;" & forma_pago & ";;;;;;" & Mid(MesBoleta, 1, 30)
                 '42-58                    59                     60                61         62             636465          66         676869     70         71       72
    registro4 = ";;;;;;;;;;;;;;;;;;" & total_boleta & ";" & enumeracion_concepto & ";;" & detalle_producto & ";;1;1;" & valor_concepto & ";;;;" & desc_beca & ";;" & desc_otros & ";;;;;;;;"
                '81 - 153
    registro5 = ";;;;;;;;S;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
    Registro = registro1 & registro2 & registro3 & registro4 & registro5
    'registro6 = Registro
    registro7 = registro7 & vbCrLf & Registro
    Call AgregarRegistroCobranza(Registro, ruta2)
    objRS.MoveNext
    Wend
    objRS.Close
    MsgBox "Se ha generado archivo para masivo por " & total_monto & " en, " & ruta2, vbInformation
    Else
    MsgBox "No hay pagos para generar", vbInformation
    End If
    
       
End Sub

Private Sub Rec2Grid(ByRef rec As ADODB.Recordset, ByRef grid As Object, Optional ByVal Numeracion As Boolean = True)
Dim Variable As String
Variable = "(*)"
    grid.Clear
    If rec.RecordCount > 0 Then
        grid.Cols = rec.Fields.count + 1
        grid.Rows = rec.RecordCount + 1
        grid.FixedCols = 1
        grid.FixedRows = 1
        grid.TextMatrix(0, 0) = "Nº"
        grid.ColWidth(0) = IIf(Numeracion, TextWidth(grid.TextMatrix(0, 0)) + 100, 0)
        For i = 1 To rec.Fields.count
            'grid.TextMatrix(0, i) = UCase(rec.Fields(i - 1).Name)
            If rec.Fields(i - 1).Name = "Pasaporte" Then
                grid.TextMatrix(0, i) = "Rut o Pasaporte(*)"
            ElseIf rec.Fields(i - 1).Name = "Celular" Or rec.Fields(i - 1).Name = "Concepto" Or rec.Fields(i - 1).Name = "InteresMora" _
                   Or rec.Fields(i - 1).Name = "DiasMora" Or rec.Fields(i - 1).Name = "DetalleMora" Then
                grid.TextMatrix(0, i) = rec.Fields(i - 1).Name
            Else
                grid.TextMatrix(0, i) = rec.Fields(i - 1).Name & Variable
            End If
            
            grid.ColWidth(i) = TextWidth(grid.TextMatrix(0, i)) + 100
        Next i
        rec.MoveFirst
        For i = 1 To rec.RecordCount
            'progreso.Value = i
            grid.TextMatrix(i, 0) = i
            grid.ColWidth(0) = IIf(Numeracion, IIf(TextWidth(grid.TextMatrix(i, 0)) + 100 > grid.ColWidth(0), TextWidth(grid.TextMatrix(i, 0)) + 100, grid.ColWidth(0)), 0)
            For j = 1 To rec.Fields.count
                grid.TextMatrix(i, j) = IIf(IsNull(rec(j - 1)), "Null", rec(j - 1))
                grid.ColWidth(j) = IIf(TextWidth(grid.TextMatrix(i, j)) + 100 > grid.ColWidth(j), TextWidth(grid.TextMatrix(i, j)) + 100, grid.ColWidth(j))
            Next j
            rec.MoveNext
        Next i
    Else
        grid.Cols = 2
        grid.Rows = 2
    End If
End Sub

Function Crear_Archivo_Cobranza(ruta As String) As Boolean
On Error GoTo Controlerror:
    'ArchBCI = "\\" & Form_main.Winsock1.LocalIP & "\Reg_Cobranza\" & "deuda.txt"
    ArchBCI = ruta
    Crear_Archivo_Cobranza = False
    Canc = FreeFile
    Open ArchBCI For Output As #Canc
    Close #Canc

    Crear_Archivo_Cobranza = True
    Exit Function
Controlerror:
    Err.Raise Err.Number, "CrearArchBCI->" & Err.Source, Err.Description
    Resume
End Function

Function AgregarRegistroCobranza(Registro As String, ruta As String) As Boolean
On Error GoTo Controlerror:
    Dim num_arch As Integer
    
    AgregarRegistroCobranza = False
    
    num_arch = FreeFile
    Arch = ruta
    Open Arch For Append As #num_arch
        Print #num_arch, Registro
    Close #num_arch
    AgregarRegistroCobranza = True
    Exit Function
Controlerror:
    Err.Raise Err.Number, "AgregarRegistroArchivoGeneracion->" & Err.Source, Err.Description
End Function

Private Sub Command2_Click()
    Dim var_sql As String
    Dim fecha_pago As Date
    Dim vencimiento As Date
    Dim objRS As ADODB.Recordset
    Set objRS = New ADODB.Recordset
    
    var_sql = "DROP TABLE IF EXISTS temp_boletas_softland;"
    conn.Execute var_sql
   
    colegio = DevuelveCampo("cfg", "", "valor", "param = 'codbc'", conn)
    If colegio = "HUE001" Then
        colegio = "HUECHURABA"
    Else
        colegio = "CORPORACIONBC"
    End If
    '' Softland
    aaa = ConectarSQL(connSQL, "192.168.7.13", colegio, "sa", "passCORPsa.2024", True)
        
    var_sql = "create table temp_boletas_softland(" _
            & " folio int(10)," _
            & "fecha date," _
            & "codaux varchar(10)," _
            & "montoexento int(10)," _
            & " primary key(folio)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"
    conn.Execute var_sql
            
    bode1 = DevuelveCampo("cfg", "", "valor", "param = 'Bodega_CAJA'", conn)
    bode2 = DevuelveCampo("cfg", "", "valor", "param = 'Bodega_BCI'", conn)
    bode3 = DevuelveCampo("cfg", "", "valor", "param = 'Bodega_IBR'", conn)
    bode4 = DevuelveCampo("cfg", "", "valor", "param = 'Bodega_UPAGO'", conn)
            
    var_sql = "SELECT folio,fecha,codaux,netoexento from softland.iw_gsaen " _
            & "where fecha >= '" & dtp_impresion.Value & "' and fecha <= '" & dtp_impresion.Value & "' and tipo = 'B' and (codbode = " & bode1 & " or codbode = " & bode2 & " or codbode = " & bode3 & " or codbode = " & bode4 & ")" _
            & " order by folio"
    objRS.Open var_sql, connSQL
    While Not objRS.EOF
        var_sql = "insert into temp_boletas_softland(folio,fecha,codaux,montoexento)" _
                & " values(" & objRS("folio") & ",'" & Format(objRS("fecha"), "yyyy-mm-dd") & "','" & objRS("codaux") & "'," & val(objRS("netoexento")) & ")"
        conn.Execute var_sql
        objRS.MoveNext
    Wend
    objRS.Close
    connSQL.Close
    
    ' Valido que boletas esten en softland antes
    var_sql = "SELECT * FROM temp_boletas_academia WHERE folio not IN (SELECT folio FROM temp_boletas_softland)"
    objRS.Open var_sql, conn
    If objRS.RecordCount > 0 Then
        MsgBox "No se puede agregar boletas a Gescol si antes no estan en Softland", vbInformation
        objRS.Close
        Exit Sub
    End If
    objRS.Close
    
     ' Valido que boletas no esten en gescol para que no de error
    var_sql = "SELECT * FROM temp_boletas_academia WHERE folio IN (SELECT folio_blta_fisico FROM fnza_boletas WHERE fecha_blta >= '" & Format(dtp_impresion.Value, "yyyy-mm-dd") & "' AND fecha_blta <= '" & Format(dtp_impresion.Value, "yyyy-mm-dd") & "' AND tipo_blta = 3 AND estado_blta = 'aprb')"
    objRS.Open var_sql, conn
    If objRS.RecordCount > 0 Then
        MsgBox "No se pueden agregar boletas a Gescol porque ya estan agregadas", vbInformation
        objRS.Close
        Exit Sub
    End If
    objRS.Close
    
    
    ' Proceso agregar boletas al libro
        
    var_sql = "select * from temp_boletas_academia order by folio"
    
    objRS.Open var_sql, conn
    If Not objRS.EOF Then
    total_monto = 0
    total_boletas = 0
            
    While Not objRS.EOF
    
'''        var_sql = "insert into `fnza_boletas` (`FOLIO_BLTA`, `FECHA_BLTA`, `FECHA_PAGO`, `RUN_APO`, `RUN_ALU`," _
'''                & "`FOLIO_BLTA_FISICO`, `COLEGIO`, `ESTADO_BLTA`, `COD_ANULACION_BLTA`, `MONTO_BLTA`," _
'''                & "`TIPO_DOC`, `BLTA_REL`, `TIPO_BLTA`, `usuario_ingreso`, `fecha_ingreso`)" _
'''                & " values('247955','2025-03-31','2025-03-31','11819405-5','23060620-K'," _
'''                & "'120652','HUE001','aprb','none','2836881'," _
'''                & "'blta','0','3','Nicole Santibáñez Verdugo','2025-04-03 17:27:37');"
'''        var_sql = "INSERT INTO `fnza_movimientos_mensualidad` (`FOLIO_MVTO`, `FOLIO_DTLL`, `FECH_VENC_CPTOS`, `COD_CONCEPTO`, `FECH_PAGO`," _
'''                & "`PROC_PAGO`, `TIPO_PAGO`, `MONTO_PAGO`, `ESTADO_PAGO`, `colegio`)" _
'''                & " VALUES('497632','307068507','2024-12-10','esco','2025-03-31'," _
'''                & "'caja','tcre','315209','aprb',NULL);"
'''        var_sql = "insert into `fnza_dtll_mvto` (`FOLIO_MVTO`, `FOLIO_DTLL`, `FOLIO_BLTA`, `colegio`)" _
'''                & " values('497624','307068499','247955',NULL);"
            
        colegio = DevuelveCampo("cfg", "", "valor", "param = 'codbc'", conn)
        fecha_pago = objRS("fecha_pago")
        vencimiento = objRS("vencimiento")
        folio_dtll = DevuelveCampo("fnza_detalle_mensualidad", "", "MIN(folio_dtll)", "agno = " & Format(fecha_pago, "yyyy") & " AND run_alu = '" & objRS("ci_alu") & "' AND concepto = 'esco'", conn)
                   
        var_sql = "INSERT INTO fnza_boletas(fecha_ingreso,usuario_ingreso,folio_blta_fisico, colegio, run_apo," _
                & "run_alu, fecha_blta,fecha_pago, monto_blta, estado_blta," _
                & "cod_anulacion_blta, tipo_doc,tipo_blta) " _
                & " VALUES (now(),'" & Nom_com_usu_ses & "','" & objRS("folio") & "','" & Left(colegio, 6) & "','" & objRS("rut_apo") _
                & "','" & objRS("ci_alu") & "','" & Format(fecha_pago, "yyyy-mm-dd") & "','" & Format(fecha_pago, "yyyy-mm-dd") & "','" & objRS("monto") & "','aprb'," _
                & "'none','blta',3);"
        conn.Execute var_sql
    
        var_sql = "INSERT INTO fnza_movimientos_mensualidad(folio_dtll, fech_pago,proc_pago,tipo_pago," _
                & "monto_pago,cod_concepto,fech_venc_cptos,estado_pago) "
                var_sql = var_sql & " Values ('" & folio_dtll & "','" & Format(fecha_pago, "yyyy-mm-dd") & "','caja','upag', "
                var_sql = var_sql & "  '" & objRS("monto") & "','aca0','" & Format(vencimiento, "yyyy-mm-dd") & "','aprb')"
        conn.Execute var_sql
                
        var_sql = "SELECT max(folio_mvto) as folio_mvto FROM fnza_movimientos_mensualidad WHERE folio_dtll = " & folio_dtll & " and fech_pago='" & Format(fecha_pago, "yyyy-mm-dd") & "' AND cod_concepto='aca0' AND fech_venc_cptos='" & Format(vencimiento, "yyyy-mm-dd") & "' AND TIPO_PAGO = 'upag'  LIMIT 1;"
                   
        folio_mvto = DevuelveCampo("fnza_movimientos_mensualidad", "", "max(folio_mvto) as folio_mvto", "folio_dtll = " & folio_dtll & " and fech_pago='" & Format(fecha_pago, "yyyy-mm-dd") & "' AND cod_concepto='aca0' AND fech_venc_cptos='" & Format(vencimiento, "yyyy-mm-dd") & "' AND TIPO_PAGO = 'upag'  LIMIT 1", conn)
        
        var_sql = "SELECT folio_blta FROM fnza_boletas WHERE folio_blta_fisico=" & objRS("folio") & " AND mid(colegio,1,6) = '" & Mid(colegio, 1, 6) & "' AND tipo_doc='blta' and tipo_blta = 3;"
                
        folio_blta = DevuelveCampo("fnza_boletas", "", "folio_blta", "folio_blta_fisico=" & objRS("folio") & " AND mid(colegio,1,6) = '" & Mid(colegio, 1, 6) & "' AND tipo_doc='blta' and tipo_blta = 3", conn)
                
        var_sql = "INSERT INTO fnza_dtll_mvto(folio_blta,folio_dtll,folio_mvto) " & _
             "VALUES ('" & folio_blta & "','" & folio_dtll & "','" & folio_mvto & "');"
        conn.Execute var_sql
        
        var_sql = "UPDATE inscripciones_academias SET pagado = 130000 WHERE id = " & objRS("id_academia")
        conn.Execute var_sql
        
        total_monto = total_monto + objRS("monto")
        total_boletas = total_boletas + 1
        
        objRS.MoveNext
    Wend
    objRS.Close
    MsgBox "Se han agregado los folio al sistema", vbInformation
    Else
    MsgBox "No hay folios para agregar al sistema", vbInformation
    End If
    
End Sub

Private Sub Form_Load()
    dtp_desde.Value = Date
    dtp_hasta.Value = Date
    dtp_impresion.Value = Date
End Sub
