VERSION 5.00
Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "MSFLXGRD.OCX"
Object = "{6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.3#0"; "comctl32.ocx"
Begin VB.Form Form_pagos_alumnos_con_descuento_hermano 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Deuda alumnos con descuento de hermano"
   ClientHeight    =   8835
   ClientLeft      =   45
   ClientTop       =   375
   ClientWidth     =   13110
   Icon            =   "Form_deuda_por_agno.frx":0000
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MDIChild        =   -1  'True
   MinButton       =   0   'False
   ScaleHeight     =   8835
   ScaleWidth      =   13110
   Begin VB.CommandButton Command2 
      Caption         =   "Exportar Excel"
      BeginProperty Font 
         Name            =   "Arial"
         Size            =   8.25
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   855
      Left            =   1560
      Picture         =   "Form_deuda_por_agno.frx":2A8B2
      Style           =   1  'Graphical
      TabIndex        =   5
      Top             =   7800
      Width           =   1575
   End
   Begin VB.CommandButton cmd_salir 
      Caption         =   "Salir"
      BeginProperty Font 
         Name            =   "Arial"
         Size            =   8.25
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   855
      Left            =   9960
      Picture         =   "Form_deuda_por_agno.frx":2AE98
      Style           =   1  'Graphical
      TabIndex        =   4
      Top             =   7800
      Width           =   1575
   End
   Begin VB.Frame Frame1 
      Caption         =   "Listado de alumnos"
      BeginProperty Font 
         Name            =   "Arial"
         Size            =   8.25
         Charset         =   0
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H00C00000&
      Height          =   7095
      Left            =   120
      TabIndex        =   0
      Top             =   120
      Width           =   12855
      Begin VB.Frame Frame3 
         BeginProperty Font 
            Name            =   "Arial"
            Size            =   8.25
            Charset         =   0
            Weight          =   700
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         ForeColor       =   &H00C00000&
         Height          =   1095
         Left            =   120
         TabIndex        =   8
         Top             =   480
         Width           =   12615
         Begin VB.ComboBox cb_agno 
            Height          =   315
            Left            =   240
            TabIndex        =   10
            Text            =   "Combo1"
            Top             =   480
            Visible         =   0   'False
            Width           =   1335
         End
         Begin VB.CommandButton Command1 
            Caption         =   "Listar alumnos"
            BeginProperty Font 
               Name            =   "Arial"
               Size            =   8.25
               Charset         =   0
               Weight          =   400
               Underline       =   0   'False
               Italic          =   0   'False
               Strikethrough   =   0   'False
            EndProperty
            Height          =   495
            Left            =   9960
            TabIndex        =   9
            Top             =   360
            Width           =   2535
         End
      End
      Begin VB.Frame Frame2 
         Caption         =   "Frame2"
         Height          =   2175
         Left            =   2160
         TabIndex        =   1
         Top             =   3360
         Visible         =   0   'False
         Width           =   9015
         Begin VB.Label Label2 
            Caption         =   "En proceso"
            BeginProperty Font 
               Name            =   "Arial"
               Size            =   48
               Charset         =   0
               Weight          =   400
               Underline       =   0   'False
               Italic          =   0   'False
               Strikethrough   =   0   'False
            EndProperty
            Height          =   975
            Left            =   2040
            TabIndex        =   2
            Top             =   600
            Width           =   5175
         End
      End
      Begin MSFlexGridLib.MSFlexGrid MSFlexGrid1 
         Height          =   5055
         Left            =   120
         TabIndex        =   3
         Top             =   1920
         Width           =   12615
         _ExtentX        =   22251
         _ExtentY        =   8916
         _Version        =   393216
      End
   End
   Begin ComctlLib.ProgressBar pgbar 
      Height          =   255
      Left            =   120
      TabIndex        =   6
      Top             =   7440
      Width           =   12855
      _ExtentX        =   22675
      _ExtentY        =   450
      _Version        =   327682
      Appearance      =   1
   End
   Begin VB.Label Label1 
      Caption         =   "Label1"
      Height          =   495
      Left            =   6000
      TabIndex        =   7
      Top             =   3600
      Width           =   1215
   End
End
Attribute VB_Name = "Form_pagos_alumnos_con_descuento_hermano"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Rec2Grid(ByRef rec As ADODB.Recordset, ByRef grid As Object, Optional ByVal Numeracion As Boolean = True)
    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)
            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

Private Sub cmd_Salir_Click()
    Unload Me
End Sub

Private Sub Command1_Click()
    Dim var_sql As String
    Dim maximo_mes As Integer
    Dim fecha As Date
   
    Dim objRS As ADODB.Recordset
    Set objRS = New ADODB.Recordset
    
    Frame2.Visible = True
    
    MSFlexGrid1.Cols = 2
    MSFlexGrid1.Rows = 2
    MSFlexGrid1.Clear
    
    fecha2 = DevuelveCampo("fnza_detalle_mensualidad", "", "MAX(fech_pago) AS fecha", "agno = 2025", conn)
    fecha = "2024-" & Format(fecha2, "mm-dd")
    
    marzo = ""
    abril = ""
    mayo = ""
    junio = ""
    julio = ""
    agosto = ""
    septiembre = ""
    octubre = ""
    noviembre = ""
    diciembre = ""
    
''''    marzo = "SUM(IF(mes = 3,monto_tot_cuota,0)) AS A_pagar_marzo_2024,SUM(IF(mes = 3,monto_abono,0)) AS Pagado_marzo_2024"
''''    abril = "SUM(IF(mes = 4,monto_tot_cuota,0)) AS A_pagar_abril_2024,SUM(IF(mes = 4,monto_abono,0)) AS Pagado_abril_2024"
''''    mayo = "SUM(IF(mes = 5,monto_tot_cuota,0)) AS A_pagar_mayo_2024,SUM(IF(mes = 5,monto_abono,0)) AS Pagado_mayo_2024"
''''    junio = "SUM(IF(mes = 6,monto_tot_cuota,0)) AS A_pagar_junio_2024,SUM(IF(mes = 6,monto_abono,0)) AS Pagado_junio_2024"
''''    julio = "SUM(IF(mes = 7,monto_tot_cuota,0)) AS A_pagar_julio_2024,SUM(IF(mes = 7,monto_abono,0)) AS Pagado_julio_2024"
''''    agosto = "SUM(IF(mes = 8,monto_tot_cuota,0)) AS A_pagar_agosto_2024,SUM(IF(mes = 8,monto_abono,0)) AS Pagado_agosto_2024"
''''    septiembre = "SUM(IF(mes = 9,monto_tot_cuota,0)) AS A_pagar_septiembre_2024,SUM(IF(mes = 9,monto_abono,0)) AS Pagado_septiembre_2024"
''''    octubre = "SUM(IF(mes = 10,monto_tot_cuota,0)) AS A_pagar_octubre_2024,SUM(IF(mes = 10,monto_abono,0)) AS Pagado_octubre_2024"
''''    noviembre = "SUM(IF(mes = 11,monto_tot_cuota,0)) AS A_pagar_noviembre_2024,SUM(IF(mes = 11,monto_abono,0)) AS Pagado_noviembre_2024"
''''    diciembre = "SUM(IF(mes = 12,monto_tot_cuota,0)) AS A_pagar_diciembre_2024,SUM(IF(mes = 12,monto_abono,0)) AS Pagado_diciembre_2024"
    
    marzo = "SUM(IF(mes = 3,monto_tot_cuota,0)) AS A_pagar_2024,SUM(IF(mes = 3,monto_abono,0)) AS Pagado_marzo_2024"
    abril = "SUM(IF(mes = 4,monto_abono,0)) AS Pagado_abril_2024"
    mayo = "SUM(IF(mes = 5,monto_abono,0)) AS Pagado_mayo_2024"
    junio = "SUM(IF(mes = 6,monto_abono,0)) AS Pagado_junio_2024"
    julio = "SUM(IF(mes = 7,monto_abono,0)) AS Pagado_julio_2024"
    agosto = "SUM(IF(mes = 8,monto_abono,0)) AS Pagado_agosto_2024"
    septiembre = "SUM(IF(mes = 9,monto_abono,0)) AS Pagado_septiembre_2024"
    octubre = "SUM(IF(mes = 10,monto_abono,0)) AS Pagado_octubre_2024"
    noviembre = "SUM(IF(mes = 11,monto_abono,0)) AS Pagado_noviembre_2024"
    diciembre = "SUM(IF(mes = 12,monto_abono,0)) AS Pagado_diciembre_2024"
    
        
    mes = Month(Date)
    If mes = 5 Then con_2024 = marzo & "," & abril & "," & mayo
    If mes = 6 Then con_2024 = marzo & "," & abril & "," & mayo & "," & junio
    If mes = 7 Then con_2024 = marzo & "," & abril & "," & mayo & "," & junio & "," & julio
    If mes = 8 Then con_2024 = marzo & "," & abril & "," & mayo & "," & junio & "," & julio & "," & agosto
    If mes = 9 Then con_2024 = marzo & "," & abril & "," & mayo & "," & junio & "," & julio & "," & agosto & "," & septiembre
    If mes = 10 Then con_2024 = marzo & "," & abril & "," & mayo & "," & junio & "," & julio & "," & agosto & "," & septiembre & "," & octubre
    If mes = 11 Then con_2024 = marzo & "," & abril & "," & mayo & "," & junio & "," & julio & "," & agosto & "," & septiembre & "," & octubre & "," & noviembre
    If mes = 12 Then con_2024 = marzo & "," & abril & "," & mayo & "," & junio & "," & julio & "," & agosto & "," & septiembre & "," & octubre & "," & noviembre & "," & diciembre
    
    
    marzo = ""
    abril = ""
    mayo = ""
    junio = ""
    julio = ""
    agosto = ""
    septiembre = ""
    octubre = ""
    noviembre = ""
    diciembre = ""
    
    marzo = "SUM(IF(mes = 3,monto_tot_cuota,0)) AS A_pagar_marzo_2025,SUM(IF(mes = 3,monto_abono,0)) AS Pagado_marzo_2025"
    abril = "SUM(IF(mes = 4,monto_tot_cuota,0)) AS A_pagar_abril_2025,SUM(IF(mes = 4,monto_abono,0)) AS Pagado_abril_2025"
    mayo = "SUM(IF(mes = 5,monto_tot_cuota,0)) AS A_pagar_mayo_2025,SUM(IF(mes = 5,monto_abono,0)) AS Pagado_mayo_2025"
    junio = "SUM(IF(mes = 6,monto_tot_cuota,0)) AS A_pagar_junio_2025,SUM(IF(mes = 6,monto_abono,0)) AS Pagado_junio_2025"
    julio = "SUM(IF(mes = 7,monto_tot_cuota,0)) AS A_pagar_julio_2025,SUM(IF(mes = 7,monto_abono,0)) AS Pagado_julio_2025"
    agosto = "SUM(IF(mes = 8,monto_tot_cuota,0)) AS A_pagar_agosto_2025,SUM(IF(mes = 8,monto_abono,0)) AS Pagado_agosto_2025"
    septiembre = "SUM(IF(mes = 9,monto_tot_cuota,0)) AS A_pagar_septiembre_2025,SUM(IF(mes = 9,monto_abono,0)) AS Pagado_septiembre_2025"
    octubre = "SUM(IF(mes = 10,monto_tot_cuota,0)) AS A_pagar_octubre_2025,SUM(IF(mes = 10,monto_abono,0)) AS Pagado_octubre_2025"
    noviembre = "SUM(IF(mes = 11,monto_tot_cuota,0)) AS A_pagar_noviembre_2025,SUM(IF(mes = 11,monto_abono,0)) AS Pagado_noviembre_2025"
    diciembre = "SUM(IF(mes = 12,monto_tot_cuota,0)) AS A_pagar_diciembre_2025,SUM(IF(mes = 12,monto_abono,0)) AS Pagado_diciembre_2025"
    
    marzo = "SUM(IF(mes = 3,monto_tot_cuota,0)) AS A_pagar_2025,SUM(IF(mes = 3,monto_abono,0)) AS Pagado_marzo_2025"
    abril = "SUM(IF(mes = 4,monto_abono,0)) AS Pagado_abril_2025"
    mayo = "SUM(IF(mes = 5,monto_abono,0)) AS Pagado_mayo_2025"
    junio = "SUM(IF(mes = 6,monto_abono,0)) AS Pagado_junio_2025"
    julio = "SUM(IF(mes = 7,monto_abono,0)) AS Pagado_julio_2025"
    agosto = "SUM(IF(mes = 8,monto_abono,0)) AS Pagado_agosto_2025"
    septiembre = "SUM(IF(mes = 9,monto_abono,0)) AS Pagado_septiembre_2025"
    octubre = "SUM(IF(mes = 10,monto_abono,0)) AS Pagado_octubre_2025"
    noviembre = "SUM(IF(mes = 11,monto_abono,0)) AS Pagado_noviembre_2025"
    diciembre = "SUM(IF(mes = 12,monto_abono,0)) AS Pagado_diciembre_2025"
        
    mes = Month(Date)
    If mes = 5 Then con_2025 = marzo & "," & abril & "," & mayo
    If mes = 6 Then con_2025 = marzo & "," & abril & "," & mayo & "," & junio
    If mes = 7 Then con_2025 = marzo & "," & abril & "," & mayo & "," & junio & "," & julio
    If mes = 8 Then con_2025 = marzo & "," & abril & "," & mayo & "," & junio & "," & julio & "," & agosto
    If mes = 9 Then con_2025 = marzo & "," & abril & "," & mayo & "," & junio & "," & julio & "," & agosto & "," & septiembre
    If mes = 10 Then con_2025 = marzo & "," & abril & "," & mayo & "," & junio & "," & julio & "," & agosto & "," & septiembre & "," & octubre
    If mes = 11 Then con_2025 = marzo & "," & abril & "," & mayo & "," & junio & "," & julio & "," & agosto & "," & septiembre & "," & octubre & "," & noviembre
    If mes = 12 Then con_2025 = marzo & "," & abril & "," & mayo & "," & junio & "," & julio & "," & agosto & "," & septiembre & "," & octubre & "," & noviembre & "," & diciembre
        
    var_sql = "SELECT ma_2025.*," & con_2024 _
            & " From (SELECT c.ci_alu AS Rut,CONCAT(ape_pat_alu,' ',ape_mat_alu,' ',nom_alu) AS Alumno," _
            & "des_ens_abrev AS Nivel,CONCAT(CAST(IF(c.cod_ens = '110' OR c.cod_ens = '310',c.num_gra,'') AS CHAR)," _
            & "CAST(IF(c.cod_ens = '110' OR c.cod_ens = '310','º ','') AS CHAR),c.let_cur) AS Curso," _
            & "a.rut_apo,CONCAT(noms_apo,' ',ape1_apo,' ',ape2_apo) AS apoderado," _
            & con_2025 _
            & " FROM alu_x_cur c,codigos_ensenanza ce,matriculas m,postulantes p,apo_x_alu axa,apoderados a,fnza_detalle_mensualidad f" _
            & " WHERE c.ci_alu = m.ci_alu AND c.agno = m.anno_mat AND c.cod_ens = ce.cod_ens AND c.ci_alu = p.ci_alu AND" _
            & " c.ci_alu = axa.ci_alu And c.agno = axa.agno And axa.rut_apo = a.rut_apo And c.agno = f.agno And c.ci_alu = f.run_alu And f.mes >= 3 And f.mes <= MONTH(NOW())" _
            & " AND ind_beca = 0 AND c.agno = 2025 AND c.activo_alu = 'SI'" _
            & " AND c.ci_alu IN (SELECT run_alu FROM fnza_detalle_mensualidad WHERE agno = 2025 AND monto_exen_hno > 0 AND mes = MONTH(NOW())" _
            & " AND run_alu IN (SELECT run_alu FROM fnza_detalle_mensualidad WHERE agno = 2024 AND monto_exen_hno > 0 AND mes = 12))" _
            & " GROUP BY c.ci_alu ORDER BY ord_ens,curso,num_mat) AS ma_2025," _
            & " (SELECT run_alu,monto_tot_cuota,IF(fech_pago > '" & Format(fecha, "yyyy-mm-dd") & "',0,monto_abono) AS monto_abono,mes FROM fnza_detalle_mensualidad WHERE agno = 2024 AND mes >= 3 AND mes <= MONTH(NOW())) AS ma_2024" _
            & " Where ma_2025.rut = ma_2024.run_alu GROUP BY ma_2025.rut"
    
    objRS.Open var_sql, conn
    If Not objRS.EOF Then
        Call Rec2Grid(objRS, MSFlexGrid1, True)
       ' msflex_alumnos.ColSel = 5
    Else
        'MsgBox "Esta mensualidad aún no ha vencido", vbInformation
    End If
    objRS.Close
    MSFlexGrid1.Refresh
    
    Frame2.Visible = False
    
End Sub

Private Sub Command2_Click()
    Dim ApExcel As Variant
    Set ApExcel = CreateObject("Excel.application")
    ApExcel.Workbooks.Add
          
    For i = 1 To Me.MSFlexGrid1.Cols - 1
        ApExcel.Cells(1, i).Font.Size = 12
        ApExcel.Cells(1, i).Font.Bold = True
        ApExcel.Cells(1, i).Formula = Me.MSFlexGrid1.TextMatrix(0, i)
    Next i
    pgbar.Min = 1
    pgbar.Max = MSFlexGrid1.Rows
    pgbar.Value = pgbar.Min
    For i = 1 To MSFlexGrid1.Rows - 1

         For j = 1 To MSFlexGrid1.Cols - 1
            ApExcel.Cells((i + 1), j).Formula = IIf(MSFlexGrid1.TextMatrix(i, j) = "Null", "", MSFlexGrid1.TextMatrix(i, j))
        
        pgbar.Value = i
        Next j
    Next i
            
    ApExcel.Visible = True
    'ApExcel.Range("a1:x1").Borders.color = RGB(255, 0, 0)
    Set ApExcel = Nothing
End Sub


Private Sub Form_Load()
    Dim i As Integer
    For i = 2011 To Anno
        cb_agno.AddItem i
    Next i
    cb_agno.Text = Anno
End Sub
