Option Strict Off
Option Explicit On

Imports fatd_faturamento.BLL.Repositorio
Imports fatd_faturamento.ENTIDADE
Imports CrystalDecisions.CrystalReports.Engine
Imports VB = Microsoft.VisualBasic
Imports System.IO
Imports System.Windows.Forms
Imports iTextSharp.text.pdf
Imports iTextSharp.text
Imports System.IO.StreamWriter
Friend Class FrmRecebimentos
    Inherits System.Windows.Forms.Form

    Private objAtualizaBancoDados As New entidadeAtualizaBancoDados
    Private repositorioAtualizaBancoDados As New repositorioAtualizaBancoDados

    Private objExecAtualizaBancoDados As New entidadeAtualizaBancoDados
    Private repositorioExecAtualizaBancoDados As New repositorioAtualizaBancoDados
    Private dt, dt_1, dt_2, dt_3, dtinterno As DataTable
    Private istrNmArq As String

    Private ExcelAPP As Microsoft.Office.Interop.Excel.Application
    Private ExcelPasta As Microsoft.Office.Interop.Excel.Workbook
    Private ExcelPlanilha As Microsoft.Office.Interop.Excel.Worksheet

    Public sRelatorio As String

    Dim istrTabela As String
    Dim iblnCabecDia As Boolean
    Dim istrCabec As String
    Dim istrTamCol As String
    Dim istrBranco As String
    Dim istrNmCabec As String
    Dim istrTemp As String
    Dim istrNomClass As Object
    Dim istrNomClass_Contabilidade_itens As Object
    Dim istrCondicao As Object
    Dim istrCondicao_Contabilidade As Object
    Dim istrCondicao_Contabilidade_itens As Object
    Dim lstrOficial As String
    Dim ds_Relatorio As DataSet
    Dim dt_Relatorio_1 As DataTable
    Dim dt_Relatorio_2 As DataTable
    Dim dt_Relatorio_3 As DataTable
    Dim dt_Relatorio_4 As DataTable


    Dim sAnoMesFat As String

#Region "Propriedades"

    Private Sub FrmRecebimentos_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load

        Try

            Me.cmbOpcao.SelectedIndex = 0
            Me.dtpIni.Value = Date.Now
            Me.dtpFim.Value = UltimoDiaMes(Me.dtpIni.Value.Month, Me.dtpIni.Value.Year) & "/" & Me.dtpIni.Value.Month & "/" & Me.dtpIni.Value.Year

            Call NomeArquivo()
            sAnoMesFat = GetConfig("mes.ano.faturamento")
            If sAnoMesFat = "" Then sAnoMesFat = Format(Date.Now, "MM/yyyy")

            If sRelatorio = "Em Aberto" Then
                Me.Text = "Consumidores em Aberto no Encerramento Cart(9.6)"
                _lblAux_0.Text = "Mês Ano Base"
                dtpIni.CustomFormat = "MM/yyyy"
                chkReserva.Visible = False
                dtpFim.Visible = False
                cmbOpcao.Visible = False
                _lblAux_2.Visible = False
                _lblAux_1.Visible = False
            End If

            sCarregaBanco()
            cmbbancos.SelectedIndex = 0

            'If UCase(vUsuario.LOGIN) = "ADMIN" Then
            'cmdAjuste.Visible = True
            'Else
            'cmdAjuste.Visible = False
            'End If


        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub cmdImprimir_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdImprimir.Click

        Try

            lPrint()

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub cmdFechar_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdFechar.Click
        Try

            lClose()

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try
    End Sub

    Private Sub FrmRecebimentos_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress

        Dim KeyAscii As Short = Asc(eventArgs.KeyChar)

        Try


            If KeyAscii = System.Windows.Forms.Keys.Escape Then
                cmdFechar_Click(cmdFechar, New System.EventArgs())
            ElseIf KeyAscii = System.Windows.Forms.Keys.Return Then
                TabEnter(KeyAscii, eventArgs)
            End If

            eventArgs.KeyChar = Chr(KeyAscii)

            If KeyAscii = 0 Then
                eventArgs.Handled = True
            End If

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub FrmRecebimentos_FormClosed(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        Try




        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try
    End Sub

#End Region

#Region "Métodos"

    Private Sub lClose()

        Try

            Close()

        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

    Private Sub LigDes(ByVal ablnMode As Boolean)

        Try

            Me.dtpIni.Enabled = ablnMode
            Me.dtpFim.Enabled = ablnMode
            Me.cmbOpcao.Enabled = ablnMode
            Me.cmdImprimir.Enabled = ablnMode
            Me.cmdFechar.Enabled = ablnMode
            Me.chkReserva.Enabled = ablnMode

        Catch ex As Exception
            Exit Sub
        End Try

    End Sub
    Private Sub cmdAjuste_Click(sender As Object, e As EventArgs) Handles cmdAjuste.Click

        'FrmajustesDiversos.Show()

        'Dim iAno As Integer = 2022
        'Dim i As Integer

        'If MessageBox.Show("Os ajustes serão feitos conforme filtro selecionado, deseja continuar com essa operação ?", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = vbYes Then

        '    For i = 1 To 1

        '        iAno = iAno + 1

        '        BarraProgresso(Me.ProgressBar, Me.lblPerc, Me.lblInfo, 1, 130)

        '        RelatorioPaisagemMontaTabelaRecebimentos_AJUSTE(Me.cmbOpcao.SelectedIndex, istrTabela, Me.ProgressBar, Me.lblInfo, Me.lblPerc,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  , 0, Me.dtpIni.Value, Me.dtpFim.Value, Me.chkReserva.CheckState = System.Windows.Forms.CheckState.Checked, Me.chkSomenteMiicrogeradoras.CheckState = System.Windows.Forms.CheckState.Checked, Me.opbSomenteMGSefaz.Checked, Me.opbSomenteMGNaoSefaz.Checked, sRelatorio, iAno)

        '        BarraProgresso(Me.ProgressBar, Me.lblPerc, Me.lblInfo, 1)

        '    Next
        '    MessageBox.Show("Pronto !")
        'End If

    End Sub

    Private Sub lPrint()

        Dim lstrCabecalho As String

        Dim ldteFaixa As Date
        Dim ldteDataReferencia As Date

        Dim objTempRecbtosItens As New entidadeTempRecbtosItens
        Dim repositorioTempRecbtosItens As New repositorioTempRecbtosItens

        Dim objTempRecbtos As New entidadeTempRecbtos
        Dim repositorioTempRecbtos As New repositorioTempRecbtos

        Dim objTempRecbtosItensContabilidade As New entidadeTempRecbtosItensContabilidade
        Dim repositorioTempRecbtosItensContabilidade As New repositorioTempRecbtosItensContabilidade

        'Dim ExcelAPP As Microsoft.Office.Interop.Excel.Application
        'Dim ExcelPasta As Microsoft.Office.Interop.Excel.Workbook
        'Dim ExcelPlanilha As Microsoft.Office.Interop.Excel.Worksheet
        Dim squalplanilha As String
        Dim inttotalReg As Integer

        Dim rpt As New ReportDocument()

        Try

            lstrOficial = ""

            If VerificaExisteRegistro("relatorio_oficializado", "anomes = " & Mid(Me.dtpIni.Value, 7, 4) & Mid(Me.dtpIni.Value, 4, 2) & "") Then
                lstrOficial = "S"
            End If

            istrTabela = "temp_recbtos_" & VB6.Format(Date.Now, "yyyymmddHHMMSS")

            'Verifica se foi informado as datas corretamente
            If Me.dtpIni.Value.Date > Me.dtpFim.Value.Date Then
                MessageBox.Show("A data inicial está maior que a data final!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Me.dtpIni.Focus()
            Else

                Me.Cursor = System.Windows.Forms.Cursors.WaitCursor

                LigDes(False)

                RelatorioPaisagemPadraoColunas(istrTamCol, istrCabec, istrTemp, istrBranco, istrNomClass, istrCondicao, IIf(Me.chkSomenteMiicrogeradoras.CheckState = System.Windows.Forms.CheckState.Checked, 1, 0), istrCondicao_Contabilidade, istrCondicao_Contabilidade_itens, istrNomClass_Contabilidade_itens)

                Me.lblInfo.Text = " Limpando as tabelas auxiliares..."
                Me.lblInfo.Refresh()

                Me.lblInfo.Text = " Localizando as faturas do período informado..."
                Me.lblInfo.Refresh()

                Dim bSomenteMGSefaz As Boolean = False
                Dim bSomenteMGNaoSefaz As Boolean = False
                Dim bPlanilha As Boolean = False

                If opbSomenteMGSefaz.Checked = True Then
                    bSomenteMGSefaz = True
                End If

                If opbSomenteMGNaoSefaz.Checked = True Then
                    bSomenteMGNaoSefaz = True
                End If

                If chkPlanilha.Checked = True Then
                    bPlanilha = True
                End If

                If RelatorioPaisagemSelecionaNFs(Me.dtpIni.Value, Me.dtpFim.Value, Me.chkReserva.CheckState = System.Windows.Forms.CheckState.Checked, 0, bSomenteMGSefaz, bSomenteMGNaoSefaz, sRelatorio) = True Then

                    RelatorioPaisagemMontaTabelaRecebimentos(Me.cmbOpcao.SelectedIndex, istrTabela, Me.ProgressBar, Me.lblInfo, Me.lblPerc,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  , 0, Me.dtpIni.Value, Me.dtpFim.Value, Me.chkReserva.CheckState = System.Windows.Forms.CheckState.Checked, Me.chkSomenteMiicrogeradoras.CheckState = System.Windows.Forms.CheckState.Checked, Me.opbSomenteMGSefaz.Checked, Me.opbSomenteMGNaoSefaz.Checked, sRelatorio, IIf(cmbbancos.SelectedIndex > 0, VB6.GetItemData(cmbbancos, cmbbancos.SelectedIndex), 0), bPlanilha)

                    Me.lblInfo.Text = IIf(chkPlanilha.Checked = True, "Montando Planilha...", " Montando Relatório...")
                    Me.lblInfo.Refresh()

                    ds_Relatorio = New DataSet()

                    dt_Relatorio_1 = New DataTable()
                    dt_Relatorio_1.Columns.Add("GRUPO101", GetType(String))
                    dt_Relatorio_1.Columns.Add("GRUPO102", GetType(String))
                    dt_Relatorio_1.Columns.Add("GRUPO103", GetType(String))
                    dt_Relatorio_1.Columns.Add("GRUPO104", GetType(String))
                    dt_Relatorio_1.Columns.Add("GRUPO105", GetType(String))
                    dt_Relatorio_1.Columns.Add("GRUPO106", GetType(String))
                    dt_Relatorio_1.Columns.Add("GRUPO107", GetType(String))
                    dt_Relatorio_1.Columns.Add("GRUPO108", GetType(String))
                    dt_Relatorio_1.Columns.Add("GRUPO109", GetType(String))
                    dt_Relatorio_1.Columns.Add("GRUPO110", GetType(String))
                    dt_Relatorio_1.Columns.Add("GRUPO111", GetType(String))
                    dt_Relatorio_1.Columns.Add("GRUPO112", GetType(String))
                    dt_Relatorio_1.Columns.Add("GRUPO113", GetType(String))
                    dt_Relatorio_1.Columns.Add("GRUPO114", GetType(String))
                    dt_Relatorio_1.Columns.Add("GRUPO115", GetType(String))
                    dt_Relatorio_1.Columns.Add("GRUPO116", GetType(String))
                    dt_Relatorio_1.Columns.Add("GRUPO117", GetType(String))
                    dt_Relatorio_1.Columns.Add("GRUPO118", GetType(String))
                    dt_Relatorio_1.Columns.Add("GRUPO119", GetType(String))
                    dt_Relatorio_1.Columns.Add("GRUPO120", GetType(String))
                    dt_Relatorio_1.Columns.Add("CABECALHO01", GetType(String))
                    dt_Relatorio_1.Columns.Add("CABECALHO02", GetType(String))
                    dt_Relatorio_1.Columns.Add("CABECALHO03", GetType(String))
                    dt_Relatorio_1.Columns.Add("TIPO", GetType(String))
                    dt_Relatorio_1.Columns.Add("GRUPO", GetType(String))
                    dt_Relatorio_1.Columns.Add("NOMEEMPRESA", GetType(String))
                    dt_Relatorio_1.Columns.Add("ENDERECOEMPRESA", GetType(String))
                    dt_Relatorio_1.Columns.Add("FONESITEEMPRESA", GetType(String))
                    dt_Relatorio_1.Columns.Add("BANCO", GetType(String))
                    dt_Relatorio_1.Columns.Add("ID_BANCO", GetType(String))
                    dt_Relatorio_1.Columns.Add("IMAGE", GetType(Byte()))

                    dt_Relatorio_2 = New DataTable()
                    dt_Relatorio_2.Columns.Add("TIPO", GetType(String))
                    dt_Relatorio_2.Columns.Add("CODIGO", GetType(String))
                    dt_Relatorio_2.Columns.Add("DESCRICAO", GetType(String))
                    dt_Relatorio_2.Columns.Add("VALOR", GetType(String))
                    dt_Relatorio_2.Columns.Add("TOTAL", GetType(String))
                    dt_Relatorio_2.Columns.Add("CABECALHO01", GetType(String))
                    dt_Relatorio_2.Columns.Add("CABECALHO02", GetType(String))
                    dt_Relatorio_2.Columns.Add("CABECALHO03", GetType(String))
                    dt_Relatorio_2.Columns.Add("GRUPO", GetType(String))
                    dt_Relatorio_2.Columns.Add("ID_BANCO", GetType(String))

                    dt_Relatorio_3 = New DataTable()
                    dt_Relatorio_3.Columns.Add("CONTA", GetType(String))
                    dt_Relatorio_3.Columns.Add("DESCRICAO", GetType(String))
                    dt_Relatorio_3.Columns.Add("CLASSE", GetType(String))
                    dt_Relatorio_3.Columns.Add("VALOR_CONTABILIDADE", GetType(String))
                    dt_Relatorio_3.Columns.Add("VALOR_FATURAMENTO", GetType(String))


                    dt_Relatorio_4 = New DataTable()
                    dt_Relatorio_4.Columns.Add("CONTA", GetType(String))
                    dt_Relatorio_4.Columns.Add("DATA", GetType(String))
                    dt_Relatorio_4.Columns.Add("LOTE", GetType(String))
                    dt_Relatorio_4.Columns.Add("CCUSTO", GetType(String))
                    dt_Relatorio_4.Columns.Add("HISTORICO", GetType(String))
                    dt_Relatorio_4.Columns.Add("DEBITO", GetType(String))
                    dt_Relatorio_4.Columns.Add("CREDITO", GetType(String))
                    dt_Relatorio_4.Columns.Add("REGSOC", GetType(String))
                    dt_Relatorio_4.Columns.Add("CLASSE", GetType(String))
                    dt_Relatorio_4.Columns.Add("TIPO", GetType(String))
                    dt_Relatorio_4.Columns.Add("IDBANCO", GetType(String))
                    dt_Relatorio_4.Columns.Add("GRUPO", GetType(String))

                    If chkPlanilha.Checked = False Then
                        If Me.cmbOpcao.SelectedIndex = 0 Then

                            lstrCabecalho = CabecaRel()

                            'Total Geral
                            ImprimeTotalGeral(lstrCabecalho, istrCabec)

                        ElseIf Me.cmbOpcao.SelectedIndex = 1 Then

                            Dim iDiasDiferenca As Integer
                            Dim dDataReferencia As Date
                            Dim i As Integer
                            Dim lintTpRec As Short = 2

                            lstrCabecalho = CabecaRel()

                            iDiasDiferenca = DateDiff(Microsoft.VisualBasic.DateInterval.Day, Me.dtpIni.Value, Me.dtpFim.Value)
                            ldteFaixa = Me.dtpIni.Value
                            ldteDataReferencia = Me.dtpIni.Value

                            'Resumo Diário
                            For i = 0 To iDiasDiferenca + IIf(iDiasDiferenca = 0, 0, 1)

                                ldteFaixa = DateAdd(DateInterval.Day, i, ldteDataReferencia)

                                Me.lblInfo.Text = " Imprimindo dia " & ldteFaixa
                                Me.lblInfo.Refresh()

                                System.Windows.Forms.Application.DoEvents()

                                ImprimeResumoDiario(ldteFaixa, lstrCabecalho, istrCabec)

                            Next

                        Else
                            Dim iDiasDiferenca As Integer
                            Dim dDataReferencia As Date
                            Dim i As Integer
                            Dim lintTpRec As Short = 2

                            lstrCabecalho = CabecaRel()

                            iDiasDiferenca = DateDiff(Microsoft.VisualBasic.DateInterval.Day, Me.dtpIni.Value, Me.dtpFim.Value)
                            ldteFaixa = Me.dtpIni.Value
                            ldteDataReferencia = Me.dtpIni.Value

                            'Resumo Diário
                            ' For i = 0 To iDiasDiferenca + IIf(iDiasDiferenca = 0, 0, 1)

                            ldteFaixa = DateAdd(DateInterval.Day, i, ldteDataReferencia)

                            Me.lblInfo.Text = " Imprimindo: " & cmbbancos.Text
                            Me.lblInfo.Refresh()

                                System.Windows.Forms.Application.DoEvents()

                                ImprimeTotalGeralBancos(ldteFaixa, lstrCabecalho, istrCabec)

                            ' Next

                        End If

                        Me.lblInfo.Text = " Pronto!"
                        Me.lblInfo.Refresh()

                        ds_Relatorio.Tables.Add(dt_Relatorio_1)
                        ds_Relatorio.Tables(0).TableName = "REL_ARRECADACAO_RECEBIMENTO_1"

                        ds_Relatorio.Tables.Add(dt_Relatorio_2)
                        ds_Relatorio.Tables(1).TableName = "REL_ARRECADACAO_RECEBIMENTO_2"

                        ds_Relatorio.Tables.Add(dt_Relatorio_3)
                        ds_Relatorio.Tables(2).TableName = "REL_ARRECADACAO_RECEBIMENTO_3"

                        ds_Relatorio.Tables.Add(dt_Relatorio_4)
                        ds_Relatorio.Tables(3).TableName = "REL_ARRECADACAO_RECEBIMENTO_4"


                        If ds_Relatorio.Tables(0).Rows.Count = 0 Then

                            LigDes(True)

                            'Dropa a tabela caso exista
                            objTempRecbtos.TABLE = istrTabela
                            objTempRecbtosItens.TABLE = istrTabela & "_itens"
                            objTempRecbtosItensContabilidade.TABLE = istrTabela & "_itensContabilidade"

                            repositorioTempRecbtos.Execute_1(objTempRecbtos)
                            repositorioTempRecbtosItens.Execute_1(objTempRecbtosItens)
                            repositorioTempRecbtosItensContabilidade.Execute_1(objTempRecbtosItensContabilidade)

                            MessageBox.Show("Não há registros para o relatório escolhido! ", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                            Exit Sub
                        Else

                            If cmbOpcao.SelectedIndex = 0 Then
                                rpt = New rptArrecadacaoRecebimento

                                rpt.SetDataSource(ds_Relatorio)

                                rpt.SetParameterValue("SubContabil", IIf(sRelatorio = "Em Aberto", "N", "S"))
                                'rpt.SetParameterValue("ImprimiContabilidade", IIf(chkcontabilidade.Checked, "S", "N"))
                            ElseIf cmbOpcao.SelectedIndex = 1 Then
                                rpt = New rptArrecadacaoRecebimentoBanco

                                rpt.SetDataSource(ds_Relatorio)

                                rpt.SetParameterValue("SubContabil", IIf(sRelatorio = "Em Aberto", "N", "S"))
                                rpt.SetParameterValue("ImprimiContabilidade", IIf(chkcontabilidade.Checked, "S", "N"))

                            Else

                                rpt = New rptArrecadacaoRecebimentoBancoGeral

                                rpt.SetDataSource(ds_Relatorio)

                                rpt.SetParameterValue("SubContabil", IIf(sRelatorio = "Em Aberto", "N", "S"))
                                rpt.SetParameterValue("ImprimiContabilidade", IIf(chkcontabilidade.Checked, "S", "N"))

                            End If

                            frmViewRelatorios.rpt = rpt

                            frmViewRelatorios.CRViewer.Zoom((150))
                            frmViewRelatorios.Text = "Relatório de Arrecadação de Recebimentos"
                            frmViewRelatorios.ShowDialog()

                        End If

                        LigDes(True)

                        'Dropa a tabela caso exista
                        objTempRecbtos.TABLE = istrTabela
                        objTempRecbtosItens.TABLE = istrTabela & "_itens"
                        objTempRecbtosItensContabilidade.TABLE = istrTabela & "_itensContabilidade"

                        repositorioTempRecbtos.Execute_1(objTempRecbtos)
                        repositorioTempRecbtosItens.Execute_1(objTempRecbtosItens)
                        repositorioTempRecbtosItensContabilidade.Execute_1(objTempRecbtosItensContabilidade)

                    Else

                        Dim iDiasDiferenca As Integer
                        Dim dDataReferencia As Date
                        Dim i As Integer
                        Dim lintTpRec As Short = 2

                        lstrCabecalho = CabecaRel()

                        iDiasDiferenca = DateDiff(Microsoft.VisualBasic.DateInterval.Day, Me.dtpIni.Value, Me.dtpFim.Value)
                        ldteFaixa = Me.dtpIni.Value
                        ldteDataReferencia = Me.dtpIni.Value

                        Dim misValue As Object = System.Reflection.Missing.Value
                        ExcelAPP = New Microsoft.Office.Interop.Excel.Application
                        ExcelPasta = ExcelAPP.Workbooks.Add(misValue)
                        ExcelPlanilha = ExcelPasta.Worksheets.Add()
                        ExcelPlanilha.Name = "Plan1"
                        ExcelPlanilha.Activate()
                        'ExcelPlanilha = ExcelPasta.Sheets("Planilha1")

                        ldteFaixa = DateAdd(DateInterval.Day, i, ldteDataReferencia)

                            Me.lblInfo.Text = " Imprimindo dia " & ldteFaixa
                            Me.lblInfo.Refresh()

                            System.Windows.Forms.Application.DoEvents()

                        sContabilizacaoPlan(ldteFaixa, lstrCabecalho, istrCabec)


                        ExcelPlanilha.SaveAs(txtArquivo.Text)
                        ExcelPasta.Close()
                        ExcelAPP.Quit()

                        MsgBox("Planilha gerada com sucesso", vbInformation + vbOKOnly, "Geração de Planilha da Contabilização")

                        LigDes(True)

                        Me.dtpIni.Focus()

                        Me.lblInfo.Text = ""
                        Me.lblInfo.Refresh()

                        'Dropa a tabela caso exista
                        objTempRecbtos.TABLE = istrTabela
                        objTempRecbtosItens.TABLE = istrTabela & "_itens"
                        objTempRecbtosItensContabilidade.TABLE = istrTabela & "_itensContabilidade"

                        repositorioTempRecbtos.Execute_1(objTempRecbtos)
                        repositorioTempRecbtosItens.Execute_1(objTempRecbtosItens)
                        repositorioTempRecbtosItensContabilidade.Execute_1(objTempRecbtosItensContabilidade)

                    End If

                Else

                        MessageBox.Show("Não existem recebimentos no intervalo selecionado!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)

                        LigDes(True)

                        Me.dtpIni.Focus()

                        Me.lblInfo.Text = ""
                        Me.lblInfo.Refresh()

                    End If


                    Me.Cursor = System.Windows.Forms.Cursors.Default

            End If

        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

    Private Sub ImprimeTotalGeral(ByVal lstrCabecalho As String, ByVal lstrCabecalho_1 As String)

        Dim dt As New DataTable
        Dim dt_1 As New DataTable
        Dim dt_2 As New DataTable

        Dim lstrTab As String
        Dim llngIni As Integer
        Dim llngFim As Integer
        Dim llngAux As Integer
        Dim lintTpRec As Short
        Dim lstrSql As String

        Dim vOpcao As String

        Dim vValueCabecalho As String
        Dim vCabecalho As String()

        Dim vValueCabecalho_1 As String
        Dim vCabecalho_1 As String()

        Dim vValueImprimeTotalGeral As String
        Dim vImprimeTotalGeral As String()

        Dim objTempRecbtos As New entidadeTempRecbtos
        Dim repositorioTempRecbtos As New repositorioTempRecbtos

        Dim bytBLOBData() As Byte

        Dim vlist

        Dim objEmpresa As New entidadeEmpresa
        Dim repositorioEmpresa As New repositorioEmpresa

        Try

            llngIni = LBound(istrNomClass)
            llngFim = UBound(istrNomClass)

            istrNmCabec = ""

            For lintTpRec = 1 To IIf(Me.chkReserva.CheckState = 1, 3, 1)

                vlist = repositorioEmpresa.Select(objEmpresa)

                If vlist.Count <> 0 Then

                    For Each objEmpresaFor As entidadeEmpresa In vlist

                        bytBLOBData = objEmpresaFor.LOGOTIPO

                    Next

                End If

                vValueCabecalho = lstrCabecalho

                If vValueCabecalho <> String.Empty Then
                    vCabecalho = vValueCabecalho.Split("|")
                End If

                If lintTpRec = 1 Then
                    'istrNmCabec = "Reserva"
                    istrNmCabec = "Total Geral"
                ElseIf lintTpRec = 2 Then
                    istrNmCabec = "Total"
                Else
                    istrNmCabec = ""
                End If


                vOpcao = UCase(VB6.GetItemString(Me.cmbOpcao, Me.cmbOpcao.SelectedIndex))

                vValueCabecalho_1 = lstrCabecalho_1

                If vValueCabecalho_1 <> String.Empty Then
                    vCabecalho_1 = vValueCabecalho_1.Split("|")
                End If

                dt_Relatorio_1.Rows.Add(vCabecalho_1(0), vCabecalho_1(1), vCabecalho_1(2), vCabecalho_1(3), vCabecalho_1(4), vCabecalho_1(5), vCabecalho_1(6), vCabecalho_1(7), vCabecalho_1(8), vCabecalho_1(9), vCabecalho_1(10), vCabecalho_1(11), vCabecalho_1(12), vCabecalho_1(13), vCabecalho_1(14), vCabecalho_1(15), vCabecalho_1(16), vCabecalho_1(17), vCabecalho_1(18), vCabecalho_1(19), vCabecalho(0), vCabecalho(1), vCabecalho(2), istrNmCabec, vOpcao, gstrEmpresa_Nome, gstrEmpresa_Endereco, gstrEmpresa_Fone + " - " + gstrEmpresa_Site, "", "", bytBLOBData)

                lstrSql = RelatorioPaisagemSelecionaDados(0, lstrSql, istrTabela, 0)

                BarraProgresso(Me.ProgressBar, Me.lblPerc, Me.lblInfo, 0, llngFim, IIf(lintTpRec = 1, " Arr.Normal ", IIf(lintTpRec = 2, " Arr.Ret.Res. ", " Totalização ")) & " " & istrNomClass(1))

                For llngAux = llngIni To llngFim - 1

                    objTempRecbtos.TABLE = lstrSql & " WHERE 1 = 1 " & IIf(lintTpRec < 3, " AND tipo = " & lintTpRec & " AND ", " AND ") & istrCondicao(llngAux)

                    dt = repositorioTempRecbtos.Execute_2(objTempRecbtos)

                    If dt.Columns.Count > 0 Then

                        'lstrTab = RelatorioPaisagemMontaTemp(dt, IIf(Me.chkSomenteMiicrogeradoras.CheckState = System.Windows.Forms.CheckState.Checked, 1, 0))
                        lstrTab = RelatorioPaisagemMontaTemp(dt, 0, 0)

                        vValueImprimeTotalGeral = istrTamCol & istrNomClass(llngAux) & "|" & lstrTab

                        If vValueImprimeTotalGeral <> String.Empty Then
                            vImprimeTotalGeral = vValueImprimeTotalGeral.Split("|")
                        End If

                        dt_Relatorio_1.Rows.Add(vImprimeTotalGeral(0), vImprimeTotalGeral(1), vImprimeTotalGeral(2), vImprimeTotalGeral(3), vImprimeTotalGeral(4), vImprimeTotalGeral(5), vImprimeTotalGeral(6), vImprimeTotalGeral(7), vImprimeTotalGeral(8), vImprimeTotalGeral(9), vImprimeTotalGeral(10), vImprimeTotalGeral(11), vImprimeTotalGeral(12), vImprimeTotalGeral(13), vImprimeTotalGeral(14), vImprimeTotalGeral(15), vImprimeTotalGeral(16), vImprimeTotalGeral(17), vImprimeTotalGeral(18), vImprimeTotalGeral(19), vCabecalho(0), vCabecalho(1), vCabecalho(2), istrNmCabec, vOpcao, gstrEmpresa_Nome, gstrEmpresa_Endereco, gstrEmpresa_Fone + " - " + gstrEmpresa_Site, "", "", bytBLOBData)

                    End If

                    BarraProgresso(Me.ProgressBar, Me.lblPerc, Me.lblInfo, 1,  , IIf(lintTpRec = 1, " Arr.Normal ", IIf(lintTpRec = 2, " Arr.Ret.Res. ", " Totalização ")) & " " & istrNomClass(llngAux))

                Next llngAux


                '### TOTAL     ######
                objTempRecbtos.TABLE = lstrSql & " WHERE 1 = 1 " & IIf(lintTpRec < 3, " AND tipo = " & lintTpRec & " ", "")

                dt = repositorioTempRecbtos.Execute_2(objTempRecbtos)

                If dt.Columns.Count > 0 Then

                    lstrTab = RelatorioPaisagemMontaTemp(dt, 0, 0)
                    'lstrTab = RelatorioPaisagemMontaTemp(dt, IIf(Me.chkSomenteMiicrogeradoras.CheckState = System.Windows.Forms.CheckState.Checked, 1, 0))

                    vValueImprimeTotalGeral = istrTamCol & "Total|" & lstrTab

                    If vValueImprimeTotalGeral <> String.Empty Then
                        vImprimeTotalGeral = vValueImprimeTotalGeral.Split("|")
                    End If

                    dt_Relatorio_1.Rows.Add(vImprimeTotalGeral(0), vImprimeTotalGeral(1), vImprimeTotalGeral(2), vImprimeTotalGeral(3), vImprimeTotalGeral(4), vImprimeTotalGeral(5), vImprimeTotalGeral(6), vImprimeTotalGeral(7), vImprimeTotalGeral(8), vImprimeTotalGeral(9), vImprimeTotalGeral(10), vImprimeTotalGeral(11), vImprimeTotalGeral(12), vImprimeTotalGeral(13), vImprimeTotalGeral(14), vImprimeTotalGeral(15), vImprimeTotalGeral(16), vImprimeTotalGeral(17), vImprimeTotalGeral(18), vImprimeTotalGeral(19), vCabecalho(0), vCabecalho(1), vCabecalho(2), istrNmCabec, vOpcao, gstrEmpresa_Nome, gstrEmpresa_Endereco, gstrEmpresa_Fone + " - " + gstrEmpresa_Site, "", "", bytBLOBData)

                End If


                dt_1 = ImprimeDetalhamentosPaisagem(istrTabela & "_itens", Me.cmbOpcao.SelectedIndex, lintTpRec)

                If dt_1.Columns.Count > 0 Then

                    For Each row As DataRow In dt_1.Rows
                        dt_Relatorio_2.Rows.Add(istrNmCabec, IIf(IsDBNull(row("CODIGO")), "", row("CODIGO")), IIf(IsDBNull(row("DESCRICAO")), "", row("DESCRICAO")), IIf(IsDBNull(row("VALOR")), "", row("VALOR")), IIf(IsDBNull(row("TOTAL")), "", row("TOTAL")), vCabecalho(0), vCabecalho(1), vCabecalho(2), IIf(IsDBNull(row("GRUPO")), "", row("GRUPO")))
                    Next

                End If

                Dim sValores
                Dim sClasse As String
                Dim sdata

                sdata = Format(dtpIni.Value, "yyyyMM")

                ' Geração da terceira parte do relatório Valor Contabilidade X Valor Faturamento
                lstrSql = RelatorioPaisagemSelecionaDados_Diferenca(0, lstrSql, istrTabela, 0)

                BarraProgresso(Me.ProgressBar, Me.lblPerc, Me.lblInfo, 0, llngFim, IIf(lintTpRec = 1, " Arr.Normal ", IIf(lintTpRec = 2, " Arr.Ret.Res. ", " Totalização ")) & " " & istrNomClass(1))

                For llngAux = llngIni To llngFim - 2

                    objTempRecbtos.TABLE = lstrSql & " WHERE 1 = 1 " & IIf(lintTpRec < 3, " AND tipo = " & lintTpRec & " AND ", " AND ") & istrCondicao_Contabilidade(llngAux)
                    dt = repositorioTempRecbtos.Execute_2(objTempRecbtos)

                    If dt.Rows.Count > 0 Then
                        For Each row As DataRow In dt.Rows

                            sClasse = IIf(IsDBNull(row("Classe")), "", row("Classe"))

                            If sClasse <> "" Then
                                If Mid(sClasse, 1, 1) = "8" Then ' Consumo Próprio
                                    dt_Relatorio_3.Rows.Add("NÃO DISPONÍVEL", "CONSUMO PRÓPRIO", IIf(IsDBNull(row("CLASSE")), "", row("CLASSE")), "0", IIf(IsDBNull(row("IMPORTE")), "", row("IMPORTE")))
                                Else
                                    sValores = fValorContabilidade(row.Item("Classe"), sdata)
                                    sValores = Split(sValores, ";")
                                    dt_Relatorio_3.Rows.Add(sValores(1), sValores(2), IIf(IsDBNull(row("CLASSE")), "", row("CLASSE")), sValores(0), IIf(IsDBNull(row("IMPORTE")), "", row("IMPORTE")))
                                End If
                            End If

                        Next
                    End If

                    BarraProgresso(Me.ProgressBar, Me.lblPerc, Me.lblInfo, 1,  , IIf(lintTpRec = 1, " Arr.Normal ", IIf(lintTpRec = 2, " Arr.Ret.Res. ", " Totalização ")) & " " & istrNomClass(llngAux))

                Next llngAux


                objTempRecbtos.TABLE = "select codigo, sum(valor) as total from " & istrTabela & "_itens where left(codigo,4) = '9040' Group by codigo " '& objCodigoFor.NUM
                dt = repositorioTempRecbtos.Execute_2(objTempRecbtos)

                If dt.Rows.Count > 0 Then
                    For Each row As DataRow In dt.Rows
                        'BarraProgresso(Me.ProgressBar, Me.lblPerc, Me.lblInfo, 0, llngFim, IIf(lintTpRec = 1, " Arr.Normal ", IIf(lintTpRec = 2, " Arr.Ret.Res. ", " Totalização ")) & " " & istrNomClass(1))

                        sValores = fValorContabilidadeTaxas(IIf(IsDBNull(row("codigo")), "", row("codigo")), sdata)
                        sValores = Split(sValores, ";")

                        dt_Relatorio_3.Rows.Add(sValores(1), sValores(2), IIf(IsDBNull(row("codigo")), "", row("codigo")), sValores(0), IIf(IsDBNull(row("total")), "", row("total")))

                        ' BarraProgresso(Me.ProgressBar, Me.lblPerc, Me.lblInfo, 1,  , IIf(lintTpRec = 1, " Arr.Normal ", IIf(lintTpRec = 2, " Arr.Ret.Res. ", " Totalização ")) & " " & istrNomClass(llngAux))
                    Next
                End If


            Next lintTpRec


        Catch ex As Exception
            Exit Sub
        End Try


    End Sub

    Private Function ImprimeResumoDiario(ByVal adteFaixa As Date, ByVal lstrCabecalho As String, ByVal lstrCabecalho_1 As String) As Boolean

        Dim lblnAux As Boolean
        Dim lstrTab As String
        Dim llngIni As Integer
        Dim llngFim As Integer
        Dim llngAux As Integer
        Dim lstrSql As String
        Dim lstrTabDiario As String()

        Dim vOpcao As String

        Dim vValueCabecalho As String
        Dim vCabecalho As String()

        Dim vValueCabecalho_1 As String
        Dim vCabecalho_1 As String()

        Dim vValueImprimeResumoDiario As String
        Dim vImprimeResumoDiario As String()

        Dim dt_1 As New DataTable
        Dim dtcab As New DataTable
        Dim dtCont As New DataTable

        Dim dt As New DataTable

        Dim objTempRecbtos As New entidadeTempRecbtos
        Dim repositorioTempRecbtos As New repositorioTempRecbtos

        Dim objTempRecbtosItensContabilidade As New entidadeTempRecbtosItensContabilidade
        Dim repositorioTempRecbtosItensContabilidade As New repositorioTempRecbtosItensContabilidade

        Dim bytBLOBData() As Byte

        Dim vlist

        Dim objEmpresa As New entidadeEmpresa
        Dim repositorioEmpresa As New repositorioEmpresa

        Try

            lblnAux = False

            llngIni = LBound(istrNomClass)
            llngFim = UBound(istrNomClass)

            iblnCabecDia = False

            vlist = repositorioEmpresa.Select(objEmpresa)

            If vlist.Count <> 0 Then

                For Each objEmpresaFor As entidadeEmpresa In vlist

                    bytBLOBData = objEmpresaFor.LOGOTIPO

                Next

            End If

            vValueCabecalho = lstrCabecalho

            If vValueCabecalho <> String.Empty Then
                vCabecalho = vValueCabecalho.Split("|")
            End If

            vOpcao = VB6.Format(adteFaixa, "dd/mm/yyyy")

            vValueCabecalho_1 = lstrCabecalho_1

            If vValueCabecalho_1 <> String.Empty Then
                vCabecalho_1 = vValueCabecalho_1.Split("|")
            End If

            ' Cabeçalho por banco
            lstrSql = "SELECT distinct(banco) as idbanco, NMBANCO  FROM " & istrTabela & "  WHERE datapag = '" & VB6.Format(adteFaixa, "yyyy-MM-dd") & "'"

            objTempRecbtos.TABLE = lstrSql '
            dtcab = repositorioTempRecbtos.Execute_2(objTempRecbtos)

            For Each row As DataRow In dtcab.Rows
                dt_Relatorio_1.Rows.Add(vCabecalho_1(0), vCabecalho_1(1), vCabecalho_1(2), vCabecalho_1(3), vCabecalho_1(4), vCabecalho_1(5), vCabecalho_1(6), vCabecalho_1(7), vCabecalho_1(8), vCabecalho_1(9), vCabecalho_1(10), vCabecalho_1(11), vCabecalho_1(12), vCabecalho_1(13), vCabecalho_1(14), vCabecalho_1(15), vCabecalho_1(16), vCabecalho_1(17), vCabecalho_1(18), vCabecalho_1(19), vCabecalho(0), vCabecalho(1), vCabecalho(2), vOpcao, vOpcao, gstrEmpresa_Nome, gstrEmpresa_Endereco, gstrEmpresa_Fone + " - " + gstrEmpresa_Site, IIf(IsDBNull(row("NMBANCO")), "", row("NMBANCO")), IIf(IsDBNull(row("idbanco")), "", row("idbanco")), bytBLOBData)
            Next

            lstrSql = RelatorioPaisagemSelecionaDados(1, lstrSql, istrTabela)
            'lstrSql = RelatorioPaisagemSelecionaDados_Recebimentos(1, lstrSql, istrTabela)

            BarraProgresso(Me.ProgressBar, Me.lblPerc, Me.lblInfo, 0, llngFim, " " & VB6.Format(adteFaixa, "yyyy-MM-dd") & " " & istrNomClass(1))

            For llngAux = llngIni To llngFim - 1

                objTempRecbtos.TABLE = lstrSql & " WHERE datapag = '" & VB6.Format(adteFaixa, "yyyy-MM-dd") & "' AND " & istrCondicao(llngAux) & " GROUP BY datapag, banco ASC "

                dt = repositorioTempRecbtos.Execute_2(objTempRecbtos)

                If dt.Columns.Count > 0 Then
                    For Each row As DataRow In dt.Rows
                        'lstrTab = RelatorioPaisagemMontaTemp(dt)
                        'lstrTabDiario = RelatorioPaisagemMontaTemp(dt)

                        lstrTab = ""
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("ncons")), 0, row("ncons")), "#,##0") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("kwhf")), 0, row("kwhf")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("consumo")), 0, row("consumo")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("bandeira")), 0, row("bandeira")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("icms")), 0, row("icms")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("pis")), 0, row("pis")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("cofins")), 0, row("cofins")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("reativo")), 0, row("reativo")), "#,##0.00") & "|"

                        'If aintSomenteMicroGeradora = 1 Then
                        '    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("reversoimporte")), 0, row("reversoimporte")), "#,##0.00") & "|"
                        'End If

                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("importe")), 0, row("importe")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("tip")), 0, row("tip")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("eletrobras")), 0, row("eletrobras")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("taxados")), 0, row("taxados")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("diversos")), 0, row("diversos")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("convenios")), 0, row("convenios")), "#,##0.00") & "|"

                        'If aintSomenteMicroGeradora = 0 Then
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("ece")), 0, row("ece")), "#,##0.00") & "|"
                        'End If

                        'lstrTab = lstrTab & Strings.Format(IIf(IsNull(row("icms_ece")), 0, row("icms_ece")), "#,##0.00") & "|"

                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("reverso")), 0, row("reverso")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("retencao")), 0, row("retencao")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("icms_st")), 0, row("icms_st")) + IIf(IsDBNull(row("pis_st")), 0, row("pis_st")) + IIf(IsDBNull(row("cofins_st")), 0, row("cofins_st")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("total")), 0, row("total")), "#,##0.00") & "|"

                        lstrTab = lstrTab & IIf(IsDBNull(row("nmbanco")), "", row("nmbanco")) & "|"
                        lstrTab = lstrTab & IIf(IsDBNull(row("banco")), 0, row("banco"))

                        If lstrTab <> "" Then
                            vValueImprimeResumoDiario = istrTamCol & istrNomClass(llngAux) & "|" & lstrTab

                            If vValueImprimeResumoDiario <> String.Empty Then
                                vImprimeResumoDiario = vValueImprimeResumoDiario.Split("|")
                            End If

                            dt_Relatorio_1.Rows.Add(vImprimeResumoDiario(0), vImprimeResumoDiario(1), vImprimeResumoDiario(2), vImprimeResumoDiario(3), vImprimeResumoDiario(4), vImprimeResumoDiario(5), vImprimeResumoDiario(6), vImprimeResumoDiario(7), vImprimeResumoDiario(8), vImprimeResumoDiario(9), vImprimeResumoDiario(10), vImprimeResumoDiario(11), vImprimeResumoDiario(12), vImprimeResumoDiario(13), vImprimeResumoDiario(14), vImprimeResumoDiario(15), vImprimeResumoDiario(16), vImprimeResumoDiario(17), vImprimeResumoDiario(18), vImprimeResumoDiario(19), vCabecalho(0), vCabecalho(1), vCabecalho(2), vOpcao, vOpcao, gstrEmpresa_Nome, gstrEmpresa_Endereco, gstrEmpresa_Fone + " - " + gstrEmpresa_Site, vImprimeResumoDiario(20), vImprimeResumoDiario(21), bytBLOBData)

                        End If
                    Next
                    lblnAux = True

                End If

                BarraProgresso(Me.ProgressBar, Me.lblPerc, Me.lblInfo, 1,  , " " & VB6.Format(adteFaixa, "yyyy-MM-dd") & " " & istrNomClass(llngAux))

            Next llngAux


            '### TOTAL     ######
            objTempRecbtos.TABLE = lstrSql & " WHERE datapag = '" & VB6.Format(adteFaixa, "yyyy-MM-dd") & "' GROUP BY banco "

            dt = repositorioTempRecbtos.Execute_2(objTempRecbtos)

            If dt.Columns.Count > 0 Then
                For Each row As DataRow In dt.Rows
                    'lstrTab = RelatorioPaisagemMontaTemp(dt)
                    'lstrTabDiario = RelatorioPaisagemMontaTemp(dt)

                    lstrTab = ""
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("ncons")), 0, row("ncons")), "#,##0") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("kwhf")), 0, row("kwhf")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("consumo")), 0, row("consumo")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("bandeira")), 0, row("bandeira")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("icms")), 0, row("icms")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("pis")), 0, row("pis")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("cofins")), 0, row("cofins")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("reativo")), 0, row("reativo")), "#,##0.00") & "|"

                    'If aintSomenteMicroGeradora = 1 Then
                    '    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("reversoimporte")), 0, row("reversoimporte")), "#,##0.00") & "|"
                    'End If

                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("importe")), 0, row("importe")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("tip")), 0, row("tip")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("eletrobras")), 0, row("eletrobras")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("taxados")), 0, row("taxados")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("diversos")), 0, row("diversos")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("convenios")), 0, row("convenios")), "#,##0.00") & "|"

                    'If aintSomenteMicroGeradora = 0 Then
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("ece")), 0, row("ece")), "#,##0.00") & "|"
                    'End If

                    'lstrTab = lstrTab & Strings.Format(IIf(IsNull(row("icms_ece")), 0, row("icms_ece")), "#,##0.00") & "|"

                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("reverso")), 0, row("reverso")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("retencao")), 0, row("retencao")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("icms_st")), 0, row("icms_st")) + IIf(IsDBNull(row("pis_st")), 0, row("pis_st")) + IIf(IsDBNull(row("cofins_st")), 0, row("cofins_st")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("total")), 0, row("total")), "#,##0.00") & "|"

                    lstrTab = lstrTab & IIf(IsDBNull(row("nmbanco")), "", row("nmbanco")) & "|"
                    lstrTab = lstrTab & IIf(IsDBNull(row("banco")), 0, row("banco"))

                    vValueImprimeResumoDiario = istrTamCol & "Total|" & lstrTab

                    If vValueImprimeResumoDiario <> String.Empty Then
                        vImprimeResumoDiario = vValueImprimeResumoDiario.Split("|")
                    End If

                    dt_Relatorio_1.Rows.Add(vImprimeResumoDiario(0), vImprimeResumoDiario(1), vImprimeResumoDiario(2), vImprimeResumoDiario(3), vImprimeResumoDiario(4), vImprimeResumoDiario(5), vImprimeResumoDiario(6), vImprimeResumoDiario(7), vImprimeResumoDiario(8), vImprimeResumoDiario(9), vImprimeResumoDiario(10), vImprimeResumoDiario(11), vImprimeResumoDiario(12), vImprimeResumoDiario(13), vImprimeResumoDiario(14), vImprimeResumoDiario(15), vImprimeResumoDiario(16), vImprimeResumoDiario(17), vImprimeResumoDiario(18), vImprimeResumoDiario(19), vCabecalho(0), vCabecalho(1), vCabecalho(2), vOpcao, vOpcao, gstrEmpresa_Nome, gstrEmpresa_Endereco, gstrEmpresa_Fone + " - " + gstrEmpresa_Site, vImprimeResumoDiario(20), vImprimeResumoDiario(21), bytBLOBData)
                Next

                lblnAux = True
            End If

            If lblnAux = True Then

                dt_1 = ImprimeDetalhamentosPaisagem_Diario(istrTabela & "_itens", Me.cmbOpcao.SelectedIndex, 3, adteFaixa)

                If dt_1.Columns.Count > 0 Then

                    For Each row As DataRow In dt_1.Rows
                        dt_Relatorio_2.Rows.Add(vOpcao, IIf(IsDBNull(row("CODIGO")), "", row("CODIGO")), IIf(IsDBNull(row("DESCRICAO")), "", row("DESCRICAO")), IIf(IsDBNull(row("VALOR")), "", row("VALOR")), IIf(IsDBNull(row("TOTAL")), "", row("TOTAL")), vCabecalho(0), vCabecalho(1), vCabecalho(2), IIf(IsDBNull(row("GRUPO")), "", row("GRUPO")), IIf(IsDBNull(row("id_banco")), "", row("id_banco")))
                    Next

                End If

            End If

            If chkcontabilidade.Checked Then

                Dim iTotalCidadesCIP As Integer
                Dim iTotalLinhaPlan As Integer = 7 ' sem as possiveis zonas
                Dim iLinhasCIP As Integer
                Dim iarrayLinhasCIP As Integer
                Dim sCidadesZona As String
                Dim sCidades, sZona As String
                Dim j As Integer
                Dim sRepartCidades
                Dim iContagemCidades As Integer
                Dim bCip As Boolean = False

                ' Retorna as cidades cadastradas na tabela CIP (total de zonas)
                lstrSql = "SELECT distinct a.cidade, b.zona FROM CIP a inner join MUNIC b on (a.cidade = b.cod) "
                objTempRecbtosItensContabilidade.TABLE = lstrSql '
                dt = repositorioTempRecbtosItensContabilidade.Execute_2(objTempRecbtosItensContabilidade)

                sCidadesZona = ""
                If dt.Rows.Count > 0 Then
                    For Each row As DataRow In dt.Rows
                        sZona = IIf(IsDBNull(row("zona")), "", row("zona"))
                        sCidadesZona = sCidadesZona & sZona & ";"
                    Next
                Else
                    iTotalCidadesCIP = 0
                End If

                ' Separa em uma variável com index as zonas
                sRepartCidades = Split(sCidadesZona, ";")
                iTotalCidadesCIP = UBound(sRepartCidades)

                ' Soma o total de linhas com o total de zonas
                iTotalLinhaPlan = iTotalLinhaPlan + iTotalCidadesCIP

                Dim Linha As Integer
                Dim sRetCodigos As String
                Dim sArrecadacaotexto As String
                Dim sHistoricotexto As String
                Dim dtotalGeral, dTotaldositens, dtotalDifer As Double
                Dim sTotalGeral As Object
                Dim iContador As Integer
                Dim iMaxLinha As Integer
                Dim dtTotal As DataTable

                For llngAux = llngIni To llngFim - 2

                    dtotalGeral = 0
                    dTotaldositens = 0
                    iMaxLinha = 0
                    iContagemCidades = 0

                    For Linha = 1 To iTotalLinhaPlan '9 '7

                        bCip = False
                        If Linha = 1 Then
                            lstrSql = "SELECT banco, classe, sum(total) as valor, datapag  FROM " & istrTabela & "  WHERE " & istrCondicao_Contabilidade(llngAux) & " AND datapag = '" & VB6.Format(adteFaixa, "yyyy-MM-dd") & "' GROUP BY banco ASC "
                        ElseIf iTotalCidadesCIP > 0 And Linha > 4 And iContagemCidades < iTotalCidadesCIP Then
                            bCip = True
                            sZona = sRepartCidades(iContagemCidades)
                            lstrSql = "SELECT sum(credito) as valor, classe, idbanco, grupo, lote, CCUSTO, HISTORICO, REGSOC,codigo,zona  FROM " & istrTabela & "_itensContabilidade" & "  WHERE zona= '" & sZona & "' AND codigo in (" & fRetornaCodigoContabilidadeCIP(1) & ")  AND " & istrCondicao_Contabilidade_itens(llngAux) & " AND data = '" & VB6.Format(adteFaixa, "yyyy-MM-dd") & "' GROUP BY idbanco ASC" 'and idbanco = " & idBancoItem & " GROUP BY idbanco ASC "
                        Else
                            lstrSql = "SELECT sum(credito) as valor, classe, idbanco, grupo, lote, CCUSTO, HISTORICO, REGSOC,codigo  FROM " & istrTabela & "_itensContabilidade" & "  WHERE codigo in (" & fRetornaCodigoContabilidade(Linha, iTotalCidadesCIP) & ")  AND " & istrCondicao_Contabilidade_itens(llngAux) & " AND data = '" & VB6.Format(adteFaixa, "yyyy-MM-dd") & "' GROUP BY idbanco ASC "
                        End If
                        objTempRecbtosItensContabilidade.TABLE = lstrSql '
                        dtCont = repositorioTempRecbtosItensContabilidade.Execute_2(objTempRecbtosItensContabilidade)

                        If dtCont.Rows.Count > 0 Then
                            For Each row As DataRow In dtCont.Rows

                                If Linha = 1 Then

                                    ' Faz o ínicio(Cabeçalho) de cada Classe com seu itens.
                                    dt_Relatorio_4.Rows.Add("", vOpcao, "", "", istrNomClass_Contabilidade_itens(llngAux), 0, 0, "", "", vOpcao, IIf(IsDBNull(row("banco")), "", row("banco")), "B")

                                    sArrecadacaotexto = "ARREC " & VB6.Format(adteFaixa, "MM/yyyy") & " - " & IIf(IsDBNull(row("banco")), "", row("banco"))
                                    sHistoricotexto = "ARREC. CLASSIFICADA REF. MÊS " & VB6.Format(adteFaixa, "MM-yyyy") & " CONFORME REL. DE ARREC. NO ITEM APC"

                                    dt_Relatorio_4.Rows.Add("1102.4.00.00.000.0.001", vOpcao, sArrecadacaotexto, "", sHistoricotexto, IIf(IsDBNull(row("valor")), 0, row("valor")), 0, "R", IIf(IsDBNull(row("classe")), "", row("classe")), vOpcao, IIf(IsDBNull(row("banco")), "", row("banco")), "B")

                                ElseIf Linha = iTotalLinhaPlan Then

                                    lstrSql = "SELECT banco, classe, sum(total) as totalGeral, datapag  FROM " & istrTabela & "  WHERE " & istrCondicao_Contabilidade(llngAux) & " AND datapag = '" & VB6.Format(adteFaixa, "yyyy-MM-dd") & "' AND  banco = '" & IIf(IsDBNull(row("idbanco")), "", row("idbanco")) & "' GROUP BY banco ASC "
                                    objTempRecbtosItensContabilidade.TABLE = lstrSql '
                                    dtTotal = repositorioTempRecbtosItensContabilidade.Execute_2(objTempRecbtosItensContabilidade)

                                    For Each rowTotal As DataRow In dtTotal.Rows
                                        dtotalGeral = IIf(IsDBNull(rowTotal("totalGeral")), 0, rowTotal("totalGeral"))
                                    Next

                                    dTotaldositens = IIf(IsDBNull(row("valor")), 0, row("valor"))

                                    ' Valor do total dos itens
                                    dtotalDifer = dtotalGeral - dTotaldositens

                                    ' Caso a diferença seja negativa fica na coluna da esquerda
                                    If dtotalDifer < 0 Then
                                        If UCase(gstrEmpresa_Sigla) = "CERCI" Then
                                            dt_Relatorio_4.Rows.Add("1119.1.99.00.000.0.025", vOpcao, IIf(IsDBNull(row("LOTE")), "", row("LOTE")), IIf(IsDBNull(row("CCUSTO")), "", row("CCUSTO")), IIf(IsDBNull(row("HISTORICO")), "", row("HISTORICO")) & " - " & fRetornaCodigoNome(Linha, iTotalCidadesCIP), (dtotalDifer) * -1, 0, IIf(IsDBNull(row("REGSOC")), "", row("REGSOC")), IIf(IsDBNull(row("Classe")), "", row("Classe")), vOpcao, IIf(IsDBNull(row("idbanco")), "", row("idbanco")), IIf(IsDBNull(row("GRUPO")), "", row("GRUPO")))
                                        Else
                                            dt_Relatorio_4.Rows.Add("1119.1.99.00.000.0.048", vOpcao, IIf(IsDBNull(row("LOTE")), "", row("LOTE")), IIf(IsDBNull(row("CCUSTO")), "", row("CCUSTO")), IIf(IsDBNull(row("HISTORICO")), "", row("HISTORICO")) & " - " & fRetornaCodigoNome(Linha, iTotalCidadesCIP), (dtotalDifer) * -1, 0, IIf(IsDBNull(row("REGSOC")), "", row("REGSOC")), IIf(IsDBNull(row("Classe")), "", row("Classe")), vOpcao, IIf(IsDBNull(row("idbanco")), "", row("idbanco")), IIf(IsDBNull(row("GRUPO")), "", row("GRUPO")))
                                        End If
                                    Else
                                        If UCase(gstrEmpresa_Sigla) = "CERCI" Then
                                            dt_Relatorio_4.Rows.Add("1119.1.99.00.000.0.025", vOpcao, IIf(IsDBNull(row("LOTE")), "", row("LOTE")), IIf(IsDBNull(row("CCUSTO")), "", row("CCUSTO")), IIf(IsDBNull(row("HISTORICO")), "", row("HISTORICO")) & " - " & fRetornaCodigoNome(Linha, iTotalCidadesCIP), 0, dtotalDifer, IIf(IsDBNull(row("REGSOC")), "", row("REGSOC")), IIf(IsDBNull(row("Classe")), "", row("Classe")), vOpcao, IIf(IsDBNull(row("idbanco")), "", row("idbanco")), IIf(IsDBNull(row("GRUPO")), "", row("GRUPO")))
                                        Else
                                            dt_Relatorio_4.Rows.Add("1119.1.99.00.000.0.048", vOpcao, IIf(IsDBNull(row("LOTE")), "", row("LOTE")), IIf(IsDBNull(row("CCUSTO")), "", row("CCUSTO")), IIf(IsDBNull(row("HISTORICO")), "", row("HISTORICO")) & " - " & fRetornaCodigoNome(Linha, iTotalCidadesCIP), 0, dtotalDifer, IIf(IsDBNull(row("REGSOC")), "", row("REGSOC")), IIf(IsDBNull(row("Classe")), "", row("Classe")), vOpcao, IIf(IsDBNull(row("idbanco")), "", row("idbanco")), IIf(IsDBNull(row("GRUPO")), "", row("GRUPO")))
                                        End If
                                    End If
                                ElseIf iTotalCidadesCIP > 0 And Linha > 4 And iContagemCidades < iTotalCidadesCIP Then
                                    dt_Relatorio_4.Rows.Add(sRetornaContaTaxas(IIf(IsDBNull(row("codigo")), "", row("codigo")), , IIf(IsDBNull(row("zona")), "", row("zona"))), vOpcao, IIf(IsDBNull(row("LOTE")), "", row("LOTE")), IIf(IsDBNull(row("CCUSTO")), "", row("CCUSTO")), IIf(IsDBNull(row("HISTORICO")), "", row("HISTORICO")) & " - " & fRetornaCodigoNomeCIP(IIf(IsDBNull(row("zona")), "", row("zona"))), 0, IIf(IsDBNull(row("valor")), 0, row("valor")), IIf(IsDBNull(row("REGSOC")), "", row("REGSOC")), IIf(IsDBNull(row("Classe")), "", row("Classe")), vOpcao, IIf(IsDBNull(row("idbanco")), "", row("idbanco")), IIf(IsDBNull(row("GRUPO")), "", row("GRUPO")))
                                Else
                                    dt_Relatorio_4.Rows.Add(sRetornaContaTaxas(IIf(IsDBNull(row("codigo")), "", row("codigo")), IIf(IsDBNull(row("Classe")), "", row("Classe"))), vOpcao, IIf(IsDBNull(row("LOTE")), "", row("LOTE")), IIf(IsDBNull(row("CCUSTO")), "", row("CCUSTO")), IIf(IsDBNull(row("HISTORICO")), "", row("HISTORICO")) & " - " & fRetornaCodigoNome(Linha, iTotalCidadesCIP), 0, IIf(IsDBNull(row("valor")), 0, row("valor")), IIf(IsDBNull(row("REGSOC")), "", row("REGSOC")), IIf(IsDBNull(row("Classe")), "", row("Classe")), vOpcao, IIf(IsDBNull(row("idbanco")), "", row("idbanco")), IIf(IsDBNull(row("GRUPO")), "", row("GRUPO")))
                                End If
                            Next
                            If bCip Then
                                iContagemCidades = iContagemCidades + 1
                            End If
                        Else
                            If bCip Then
                                iContagemCidades = iContagemCidades + 1
                            End If
                        End If
                    Next
                Next
            End If

            ImprimeResumoDiario = lblnAux

        Catch ex As Exception
            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: ImprimeResumoDiario" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Function
        End Try

    End Function

    Public Function CabecaRel() As String

        Dim lstrTab As String
        Dim lstrGrupo As String
        Dim lstrBancos As String

        Try


            If opbGrupoA.Checked = True Then
                lstrGrupo = "Grupo A"
            ElseIf opbGrupoB.Checked = True Then
                lstrGrupo = "Grupo B"
            Else
                lstrGrupo = "Grupo A\B"
            End If

            If cmbOpcao.SelectedIndex = 1 Then
                If cmbbancos.SelectedIndex = 0 Then
                    lstrBancos = "Todos os Bancos"
                Else
                    lstrBancos = "Banco: " & cmbbancos.Text
                End If
            End If

            If sRelatorio = "Em Aberto" Then

                'If lstrOficial = "" Then
                If Format(dtpFim.Value, "MM/yyyy") >= CDate(sAnoMesFat) Then
                    lstrTab = Cabecalho_Relatorio(IIf(Me.chkReserva.CheckState = 1, "BAIXADOS PARA RESERVA - ", "NÃO OFICIAL - CONSUMIDORES EM ABERTO NO ENCERRAMENTO (CART 9.6) - ") & UCase(VB6.GetItemString(cmbOpcao, cmbOpcao.SelectedIndex)), lstrGrupo & " - Período de: " & VB6.Format(dtpIni.Value, "MM/yyyy"), "3", False, IIf(cmbOpcao.SelectedIndex = 1, lstrBancos, istrNmCabec))
                Else
                    lstrTab = Cabecalho_Relatorio(IIf(Me.chkReserva.CheckState = 1, "BAIXADOS PARA RESERVA - ", "OFICIAL - CONSUMIDORES EM ABERTO NO ENCERRAMENTO (CART 9.6) - ") & UCase(VB6.GetItemString(cmbOpcao, cmbOpcao.SelectedIndex)), lstrGrupo & " - Período de: " & VB6.Format(dtpIni.Value, "MM/yyyy"), "3", False, IIf(cmbOpcao.SelectedIndex = 1, lstrBancos, istrNmCabec))
                End If

            Else

                'If lstrOficial = "" Then
                If Format(dtpFim.Value, "MM/yyyy") >= CDate(sAnoMesFat) Then
                    lstrTab = Cabecalho_Relatorio(IIf(Me.chkReserva.CheckState = 1, "BAIXADOS PARA RESERVA - ", "NÃO OFICIAL - RECEBIMENTOS NO PERIODO (CART 9.8) - ") & UCase(VB6.GetItemString(cmbOpcao, cmbOpcao.SelectedIndex)), lstrGrupo & " - Período de: " & VB6.Format(dtpIni.Value, "dd/mm/yyyy") & " até " & VB6.Format(dtpFim.Value, "dd/mm/yyyy"), "3", False, IIf(cmbOpcao.SelectedIndex = 1, lstrBancos, istrNmCabec))
                Else
                    lstrTab = Cabecalho_Relatorio(IIf(Me.chkReserva.CheckState = 1, "BAIXADOS PARA RESERVA - ", "OFICIAL - RECEBIMENTOS NO PERIODO (CART 9.8) - ") & UCase(VB6.GetItemString(cmbOpcao, cmbOpcao.SelectedIndex)), lstrGrupo & " - Período de: " & VB6.Format(dtpIni.Value, "dd/mm/yyyy") & " até " & VB6.Format(dtpFim.Value, "dd/mm/yyyy"), "3", False, IIf(cmbOpcao.SelectedIndex = 1, lstrBancos, istrNmCabec))
                End If

            End If

            CabecaRel = lstrTab

        Catch ex As Exception
            Exit Function
        End Try


    End Function

    Private Function fValorContabilidade(ByVal iClasse As String, ByVal iAnoMes As Integer) As String

        Dim lstrsql As String
        Dim sBancoContabilidade As String = "CTB"
        Dim sBancoContabilidade_Empresa As String = sBancoContabilidade & "_" & gstrEmpresa_Sigla
        Dim sConta As String
        Dim sNomeClasse As String
        Dim iAnoMesAnterior As Integer
        Dim iMesAnterior As Integer

        iAnoMes = iAnoMes
        iMesAnterior = Mid(iAnoMes, 5, 2)
        iAnoMesAnterior = Mid(iAnoMes, 1, 4) & iMesAnterior - 1

        Dim dCredito, dDebito, dSaldoAnterior As Double

        sConta = ""

        If VB.Left(iClasse, 1) = "9" Then
            sConta = sRetornaConta("9100")
            sNomeClasse = sRetornaDescricao("9100")
        ElseIf VB.Left(iClasse, 1) = "3" Then
            sConta = sRetornaConta("0000")
            sNomeClasse = sRetornaDescricao("0000")
        ElseIf VB.Left(iClasse, 1) = "4" Then
            sConta = sRetornaConta("4000")
            sNomeClasse = sRetornaDescricao("4000")
        ElseIf VB.Left(iClasse, 1) = "5" Then
            sConta = sRetornaConta("5000")
            sNomeClasse = sRetornaDescricao("5000")
        ElseIf VB.Left(iClasse, 1) = "6" Then
            If VB.Left(iClasse, 2) = "64" Then
                sConta = sRetornaContaIluminacaoPublica("ITATIAIA")
                sNomeClasse = sRetornaDescricao("6400")
            Else
                sConta = sRetornaConta("6100")
                sNomeClasse = sRetornaDescricao("6100")
            End If
        ElseIf VB.Left(iClasse, 1) = "7" Then
            sConta = sRetornaConta("7100")
            sNomeClasse = sRetornaDescricao("7100")
        ElseIf VB.Left(iClasse, 1) = "8" Then
            sConta = sRetornaConta("8100")
            sNomeClasse = sRetornaDescricao("8100")
        End If

        lstrsql = "Select SUM(b.valor) As valor FROM " & sBancoContabilidade_Empresa & ".diario a "
        lstrsql = lstrsql & " INNER JOIN " & sBancoContabilidade_Empresa & ".diario_det b ON (a.id = b.id_diario)"
        'lstrsql = lstrsql & " INNER Join ctb.`plano_contas` c ON(b.conta_formatada = c.conta)"
        lstrsql = lstrsql & " WHERE b.conta_formatada = '" & sConta & "'"
        lstrsql = lstrsql & " AND a.anomes =" & iAnoMes
        lstrsql = lstrsql & " AND b.deb_cred = 'C'"
        objExecAtualizaBancoDados.QUERY_NAME = lstrsql
        dt = repositorioAtualizaBancoDados.Consultar(objExecAtualizaBancoDados)

        If dt.Rows.Count > 0 Then
            For Each row As DataRow In dt.Rows
                dCredito = IIf(IsDBNull(row("valor")), 0, row("valor"))
            Next
        Else
            dCredito = 0
        End If

        dt = Nothing

        lstrsql = "Select SUM(b.valor) As valor FROM " & sBancoContabilidade_Empresa & ".diario a "
        lstrsql = lstrsql & " INNER JOIN " & sBancoContabilidade_Empresa & ".diario_det b ON (a.id = b.id_diario)"
        'lstrsql = lstrsql & " INNER Join ctb.`plano_contas` c ON(b.conta_formatada = c.conta)"
        lstrsql = lstrsql & " WHERE b.conta_formatada = '" & sConta & "'"
        lstrsql = lstrsql & " AND a.anomes =" & iAnoMes
        lstrsql = lstrsql & " AND b.deb_cred = 'D'"
        objExecAtualizaBancoDados.QUERY_NAME = lstrsql
        dt = repositorioAtualizaBancoDados.Consultar(objExecAtualizaBancoDados)

        If dt.Rows.Count > 0 Then
            For Each row As DataRow In dt.Rows
                dDebito = IIf(IsDBNull(row("valor")), 0, row("valor"))
            Next
        Else
            dDebito = 0
        End If

        dt = Nothing


        lstrsql = " SELECT SUM(saldo_atual) as saldo FROM " & sBancoContabilidade_Empresa & ".saldo WHERE anomes = " & iAnoMesAnterior & " AND conta_formatada =  '" & sConta & "' AND  tipo = 'R' "
        objExecAtualizaBancoDados.QUERY_NAME = lstrsql
        dt = repositorioAtualizaBancoDados.Consultar(objExecAtualizaBancoDados)

        If dt.Rows.Count > 0 Then
            For Each row As DataRow In dt.Rows
                dSaldoAnterior = IIf(IsDBNull(row("saldo")), 0, row("saldo"))
            Next
        Else
            dSaldoAnterior = ""
        End If

        dt = Nothing

        Dim dTotal As Double

        lstrsql = " SELECT SUM(saldo_atual) as saldo "
        lstrsql = lstrsql & " FROM " & sBancoContabilidade_Empresa & ".saldo "
        lstrsql = lstrsql & " WHERE conta_formatada = '" & sConta & "'"
        lstrsql = lstrsql & " AND anomes =" & iAnoMes
        lstrsql = lstrsql & " AND tipo = 'R'"

        objExecAtualizaBancoDados.QUERY_NAME = lstrsql
        dt = repositorioAtualizaBancoDados.Consultar(objExecAtualizaBancoDados)

        If dt.Rows.Count > 0 Then
            For Each row As DataRow In dt.Rows

                dTotal = IIf(IsDBNull(row("saldo")), 0, row("saldo"))

                ' Não tem saldo do mês corrente 
                If dTotal = 0 Then
                    dTotal = dSaldoAnterior + (dDebito - dCredito)
                    fValorContabilidade = dTotal & ";" & sConta & ";" & sNomeClasse
                Else
                    fValorContabilidade = IIf(IsDBNull(row("saldo")), 0, row("saldo")) & ";" & sConta & ";" & sNomeClasse
                End If


            Next
        Else
            fValorContabilidade = ""
        End If


    End Function

    Private Function sRetornaConta(ByVal sClasse As String) As String

        Dim lstrsql As String

        lstrsql = "SELECT conta_faturamento FROM classe WHERE codigo = " & sClasse
        objAtualizaBancoDados.QUERY_NAME = lstrsql
        dt = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)

        If dt.Rows.Count > 0 Then
            For Each row As DataRow In dt.Rows
                sRetornaConta = IIf(IsDBNull(row("conta_faturamento")), "", row("conta_faturamento"))
            Next
        Else
            sRetornaConta = ""
        End If

    End Function

    Private Function sRetornaDescricao(ByVal sClasse As String) As String

        Dim lstrsql As String

        lstrsql = "SELECT descricao FROM classe WHERE codigo = " & sClasse
        objAtualizaBancoDados.QUERY_NAME = lstrsql
        dt = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)

        If dt.Rows.Count > 0 Then
            For Each row As DataRow In dt.Rows
                sRetornaDescricao = IIf(IsDBNull(row("descricao")), "", row("descricao"))
            Next
        Else
            sRetornaDescricao = ""
        End If

    End Function

    Private Function sRetornaContaIluminacaoPublica(ByVal sClasse As String) As String

        Dim lstrsql As String

        If gstrEmpresa_Sigla = "CERES" Then
            lstrsql = "SELECT conta_faturamento FROM munic WHERE nome = '" & sClasse & "'"
        Else
            lstrsql = "SELECT conta_faturamento FROM munic WHERE nome = '" & sClasse & "'"
        End If
        objAtualizaBancoDados.QUERY_NAME = lstrsql
        dt = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)

        If dt.Rows.Count > 0 Then
            For Each row As DataRow In dt.Rows
                sRetornaContaIluminacaoPublica = IIf(IsDBNull(row("conta_faturamento")), "", row("conta_faturamento"))
            Next
        Else
            sRetornaContaIluminacaoPublica = ""
        End If

    End Function

    Private Sub cmbOpcao_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbOpcao.SelectedIndexChanged
        If Me.cmbOpcao.SelectedIndex = 1 Then
            cmbbancos.Visible = True
            cmbbancos.SelectedIndex = 0
            chkPlanilha.Checked = False
            chkPlanilha.Visible = True
            chkcontabilidade.Checked = False
            chkcontabilidade.Visible = True
            cmdArquivo.Enabled = True
        ElseIf Me.cmbOpcao.SelectedIndex = 2 Then
            cmbbancos.Visible = True
            cmbbancos.SelectedIndex = 0
            chkPlanilha.Checked = False
            chkPlanilha.Visible = False
            chkcontabilidade.Checked = False
            chkcontabilidade.Visible = False
            cmdArquivo.Enabled = False
        Else
            cmbbancos.Visible = False
            chkPlanilha.Checked = False
            chkPlanilha.Visible = False
            chkcontabilidade.Checked = False
            chkcontabilidade.Visible = False
            cmdArquivo.Enabled = False
        End If

    End Sub

    Private Function fValorContabilidadeTaxas(ByVal sTaxa As String, ByVal iAnoMes As Integer) As String

        Dim lstrsql As String
        Dim sBancoContabilidade As String = "CTB"
        Dim sBancoContabilidade_Empresa As String = sBancoContabilidade & "_" & gstrEmpresa_Sigla
        Dim sConta As String
        Dim sNomeClasse As String
        Dim iAnoMesAnterior As Integer
        Dim iMesAnterior As Integer

        Dim dCredito, dDebito, dSaldoAnterior As Double

        iAnoMes = iAnoMes
        iMesAnterior = Mid(iAnoMes, 5, 2)
        iAnoMesAnterior = Mid(iAnoMes, 1, 4) & iMesAnterior - 1

        sConta = ""

        sConta = sRetornaContaTaxas(sTaxa)
        sNomeClasse = sRetornaDescricaoTaxa(sTaxa)


        lstrsql = "Select SUM(b.valor) As valor FROM " & sBancoContabilidade_Empresa & ".diario a "
        lstrsql = lstrsql & " INNER JOIN " & sBancoContabilidade_Empresa & ".diario_det b ON (a.id = b.id_diario)"
        'lstrsql = lstrsql & " INNER Join ctb.`plano_contas` c ON(b.conta_formatada = c.conta)"
        lstrsql = lstrsql & " WHERE b.conta_formatada = '" & sConta & "'"
        lstrsql = lstrsql & " AND a.anomes =" & iAnoMes
        lstrsql = lstrsql & " AND b.deb_cred = 'C'"
        objExecAtualizaBancoDados.QUERY_NAME = lstrsql
        dt = repositorioAtualizaBancoDados.Consultar(objExecAtualizaBancoDados)

        If dt.Rows.Count > 0 Then
            For Each row As DataRow In dt.Rows
                dCredito = IIf(IsDBNull(row("valor")), 0, row("valor"))
            Next
        Else
            dCredito = 0
        End If

        dt = Nothing

        lstrsql = "Select SUM(b.valor) As valor FROM " & sBancoContabilidade_Empresa & ".diario a "
        lstrsql = lstrsql & " INNER JOIN " & sBancoContabilidade_Empresa & ".diario_det b ON (a.id = b.id_diario)"
        'lstrsql = lstrsql & " INNER Join ctb.`plano_contas` c ON(b.conta_formatada = c.conta)"
        lstrsql = lstrsql & " WHERE b.conta_formatada = '" & sConta & "'"
        lstrsql = lstrsql & " AND a.anomes =" & iAnoMes
        lstrsql = lstrsql & " AND b.deb_cred = 'D'"
        objExecAtualizaBancoDados.QUERY_NAME = lstrsql
        dt = repositorioAtualizaBancoDados.Consultar(objExecAtualizaBancoDados)

        If dt.Rows.Count > 0 Then
            For Each row As DataRow In dt.Rows
                dDebito = IIf(IsDBNull(row("valor")), 0, row("valor"))
            Next
        Else
            dDebito = 0
        End If

        dt = Nothing


        lstrsql = " SELECT SUM(saldo_atual) as saldo FROM " & sBancoContabilidade_Empresa & ".saldo WHERE anomes = " & iAnoMesAnterior & " AND conta_formatada =  '" & sConta & "' AND  tipo = 'R' "
        objExecAtualizaBancoDados.QUERY_NAME = lstrsql
        dt = repositorioAtualizaBancoDados.Consultar(objExecAtualizaBancoDados)

        If dt.Rows.Count > 0 Then
            For Each row As DataRow In dt.Rows
                dSaldoAnterior = IIf(IsDBNull(row("saldo")), 0, row("saldo"))
            Next
        Else
            dSaldoAnterior = ""
        End If

        dt = Nothing

        Dim dTotal As Double

        lstrsql = " SELECT SUM(saldo_atual) as saldo "
        lstrsql = lstrsql & " FROM " & sBancoContabilidade_Empresa & ".saldo "
        lstrsql = lstrsql & " WHERE conta_formatada = '" & sConta & "'"
        lstrsql = lstrsql & " AND anomes =" & iAnoMes
        lstrsql = lstrsql & " AND tipo = 'R'"

        objExecAtualizaBancoDados.QUERY_NAME = lstrsql
        dt = repositorioAtualizaBancoDados.Consultar(objExecAtualizaBancoDados)

        If dt.Rows.Count > 0 Then
            For Each row As DataRow In dt.Rows

                dTotal = IIf(IsDBNull(row("saldo")), 0, row("saldo"))

                ' Não tem saldo do mês corrente 
                If dTotal = 0 Then
                    dTotal = dSaldoAnterior + (dDebito - dCredito)
                    fValorContabilidadeTaxas = dTotal & ";" & sConta & ";" & sNomeClasse
                Else
                    fValorContabilidadeTaxas = IIf(IsDBNull(row("saldo")), 0, row("saldo")) & ";" & sConta & ";" & sNomeClasse
                End If


            Next
        Else
            fValorContabilidadeTaxas = ""
        End If


    End Function

    Private Sub cmdArquivo_Click(sender As Object, e As EventArgs) Handles cmdArquivo.Click
        Dim lstrAux As String
        Try
            Call NomeArquivo()
            fbdTsee.ShowDialog()
            lstrAux = fbdTsee.SelectedPath & "\"
            'Me.txtArquivo.Text = StrReverse(Mid(lstrAux, CInt(InStr(lstrAux, "\")))) & istrNmArq & ".XLS" '& IIf(Me.chkPlanilha.Checked, "XML", "XLS")
            Me.txtArquivo.Text = lstrAux & istrNmArq & ".XLS" '& IIf(Me.chkPlanilha.Checked, "XML", "XLS")
        Catch ex As Exception
            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: cmdArquivo_Click" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try
    End Sub

    Private Function sRetornaContaTaxas(ByVal sTaxa As String, Optional ByVal classe As String = "", Optional ByVal Zona As String = "") As String

        Dim lstrsql As String
        Dim sClasseConsulta As String

        If VB.Left(classe, 1) = "0" Or VB.Left(classe, 1) = "1" Or VB.Left(classe, 1) = "2" Or VB.Left(classe, 1) = "3" Then
            sClasseConsulta = "0000"
        ElseIf VB.Left(classe, 1) = "9" Then
            sClasseConsulta = "9100"
        ElseIf VB.Left(classe, 1) = "4" Then
            sClasseConsulta = "4000"
        ElseIf VB.Left(classe, 1) = "5" Then
            sClasseConsulta = "5000"
        ElseIf VB.Left(classe, 1) = "6" Then
            If VB.Left(classe, 2) = "64" Then
                sClasseConsulta = "6400"
            Else
                sClasseConsulta = "6100"
            End If
        ElseIf VB.Left(classe, 1) = "7" Then
            sClasseConsulta = "7100"
        ElseIf VB.Left(classe, 1) = "8" Then
            sClasseConsulta = "8100"
        End If

        If classe = "" Then
            If Zona <> "" Then
                lstrsql = "SELECT conta FROM Codigo_Conta a INNER JOIN munic b ON(a.cod_item = b.cod) WHERE a.codigo = " & sTaxa & " AND b.zona = '" & Zona & "'"
            Else
                lstrsql = "SELECT conta FROM Codigo_Conta WHERE codigo = " & sTaxa
            End If
        Else
            If VB.Left(sClasseConsulta, 1) = "6" Then
                lstrsql = "SELECT conta FROM Codigo_Conta WHERE codigo = " & sTaxa & " AND left(cod_item,2) = " & VB.Left(sClasseConsulta, 2)
            Else
                lstrsql = "SELECT conta FROM Codigo_Conta WHERE codigo = " & sTaxa & " AND left(cod_item,1) = " & VB.Left(sClasseConsulta, 1)
            End If
        End If
        objAtualizaBancoDados.QUERY_NAME = lstrsql
        dt = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)

        If dt.Rows.Count > 0 Then
            For Each row As DataRow In dt.Rows
                sRetornaContaTaxas = IIf(IsDBNull(row("conta")), "", row("conta"))
            Next
        Else
            sRetornaContaTaxas = ""
        End If

    End Function

    Private Function sRetornaDescricaoTaxa(ByVal sTaxa As String) As String

        Dim lstrsql As String

        lstrsql = "SELECT descricao FROM Codigo_Conta WHERE codigo = " & sTaxa
        objAtualizaBancoDados.QUERY_NAME = lstrsql
        dt = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)

        If dt.Rows.Count > 0 Then
            For Each row As DataRow In dt.Rows
                sRetornaDescricaoTaxa = IIf(IsDBNull(row("descricao")), "", row("descricao"))
            Next
        Else
            sRetornaDescricaoTaxa = ""
        End If

    End Function

    Private Sub sCarregaBanco()
        Dim lstrsql As String
        Dim dt As DataTable
        Dim lstrNrBco
        Dim lstrNmBco
        Dim lintIdBco
        Dim objAtualizaBancoDados As New entidadeAtualizaBancoDados
        Dim repositorioAtualizaBancoDados As New repositorioAtualizaBancoDados

        Try

            'carrega a combobox de bancos
            lstrsql = ""
            lstrsql = lstrsql & "SELECT * "
            lstrsql = lstrsql & "  FROM `bancos` "
            lstrsql = lstrsql & " WHERE `tpmovto` = 'D' "

            objAtualizaBancoDados.QUERY_NAME = lstrsql
            dt = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)

            If dt.Rows.Count > 0 Then
                Call Me.cmbbancos.Items.Add("- Todos -")
                For Each row As DataRow In dt.Rows
                    lstrNrBco = Trim(IIf(IsDBNull(row.Item("nrbco")), "000", row.Item("nrbco")))
                    lstrNmBco = Trim(IIf(IsDBNull(row.Item("nmbco")), "indefinido", row.Item("nmbco")))
                    lintIdBco = CShort(IIf(IsDBNull(row.Item("ban_id")), 0, row.Item("ban_id")))
                    Call Me.cmbbancos.Items.Add(lstrNrBco & " - " & lstrNmBco)
                    VB6.SetItemData(Me.cmbbancos, Me.cmbbancos.Items.Count - 1, lintIdBco)
                Next
            Else
                Call Me.cmbbancos.Items.Add("000 - indefinido")
                VB6.SetItemData(Me.cmbbancos, Me.cmbbancos.Items.Count - 1, 0)
            End If

        Catch ex As Exception
            Exit Sub
        End Try
    End Sub
    Private Sub sContabilizacaoPlan(ByVal adteFaixa As Date, ByVal lstrCabecalho As String, ByVal lstrCabecalho_1 As String)

        Dim dt_1 As New DataTable
        Dim dtcab As New DataTable
        Dim dtCont As New DataTable
        Dim lblnAux As Boolean
        Dim lstrTab As String
        Dim llngIni As Integer
        Dim llngFim As Integer
        Dim llngAux As Integer
        Dim lstrSql As String

        Dim dt As New DataTable

        Dim objTempRecbtos As New entidadeTempRecbtos
        Dim repositorioTempRecbtos As New repositorioTempRecbtos

        Dim objTempRecbtosItensContabilidade As New entidadeTempRecbtosItensContabilidade
        Dim repositorioTempRecbtosItensContabilidade As New repositorioTempRecbtosItensContabilidade

        'Dim misValue As Object = System.Reflection.Missing.Value
        Dim squalplanilha As String
        Dim inttotalReg As Integer

        Dim scabecalho As String
        Dim strlinha As String

        Try

            llngIni = LBound(istrNomClass)
            llngFim = UBound(istrNomClass)

            Dim Linha As Integer = 1

            ' Monta o Cabeçalho
            ExcelPlanilha.Cells(Linha, 1).value = "Ficha de Lançamento"
            Linha = Linha + 1
            ExcelPlanilha.Cells(Linha, 6).value = "Valores"
            Linha = Linha + 1
            ExcelPlanilha.Cells(Linha, 1).value = "Classificação Contábil"
            ExcelPlanilha.Cells(Linha, 2).value = "Data"
            ExcelPlanilha.Cells(Linha, 3).value = "Lote"
            ExcelPlanilha.Cells(Linha, 4).value = "C.Custo"
            ExcelPlanilha.Cells(Linha, 5).value = "Histórico"
            ExcelPlanilha.Cells(Linha, 6).value = "Débito"
            ExcelPlanilha.Cells(Linha, 7).value = "Crédito"
            ExcelPlanilha.Cells(Linha, 8).value = "RegSoc"

            Dim Linhasql As Integer
            Dim sRetCodigos As String
            Dim sArrecadacaotexto As String
            Dim sHistoricotexto As String
            Dim dtotalGeral, dTotaldositens, dtotalDifer As Double
            Dim sTotalGeral As Object
            Dim iContador As Integer
            Dim iMaxLinha As Integer
            Dim dtTotal As DataTable
            Dim idBancoItem As Integer
            Dim dDataItem As String
            Dim dDataConsulta As String

            ' Dim lstrsql As String
            Dim vOpcao As String

            vOpcao = VB6.Format(adteFaixa, "dd/mm/yyyy")

            Dim iTotalCidadesCIP As Integer
            Dim iTotalLinhaPlan As Integer = 7 ' sem as possiveis zonas
            Dim iLinhasCIP As Integer
            Dim iarrayLinhasCIP As Integer
            Dim sCidadesZona As String
            Dim sCidades, sZona As String
            Dim j As Integer
            Dim sRepartCidades
            Dim iContagemCidades As Integer
            Dim bCip As Boolean = False

            lstrSql = "SELECT distinct a.cidade, b.zona FROM CIP a inner join MUNIC b on (a.cidade = b.cod) "
            objTempRecbtosItensContabilidade.TABLE = lstrSql '
            dt = repositorioTempRecbtosItensContabilidade.Execute_2(objTempRecbtosItensContabilidade)

            sCidadesZona = ""
            If dt.Rows.Count > 0 Then
                For Each row As DataRow In dt.Rows
                    sZona = IIf(IsDBNull(row("zona")), "", row("zona"))
                    sCidadesZona = sCidadesZona & sZona & ";"
                Next
            Else
                iTotalCidadesCIP = 0
            End If

            sRepartCidades = Split(sCidadesZona, ";")
            iTotalCidadesCIP = UBound(sRepartCidades)

            iTotalLinhaPlan = iTotalLinhaPlan + iTotalCidadesCIP

            ' montagem do itens por Classe , Dia e Banco.
            For llngAux = llngIni To llngFim - 2

                dtotalGeral = 0
                dTotaldositens = 0
                iMaxLinha = 0

                lstrSql = "SELECT banco, classe, sum(total) as valor, datapag  FROM " & istrTabela & "  WHERE " & istrCondicao_Contabilidade(llngAux) & "  GROUP BY datapag, banco ORDER BY datapag ,banco "
                objTempRecbtosItensContabilidade.TABLE = lstrSql '
                dtCont = repositorioTempRecbtosItensContabilidade.Execute_2(objTempRecbtosItensContabilidade)

                If dtCont.Rows.Count > 0 Then

                    Linha = Linha + 1
                    ExcelPlanilha.Cells(Linha, 5).value = istrNomClass_Contabilidade_itens(llngAux)
                    Me.lblInfo.Text = "Populando a planilha com os dados...Aguarde !"
                    BarraProgresso(Me.ProgressBar, Me.lblPerc, Me.lblInfo, 0, dtCont.Rows.Count)

                    For Each row As DataRow In dtCont.Rows

                        idBancoItem = IIf(IsDBNull(row("banco")), 0, row("banco"))
                        dDataItem = IIf(IsDBNull(row("datapag")), 0, row("datapag"))
                        dDataConsulta = VB6.Format(dDataItem, "yyyy-MM-dd")
                        sArrecadacaotexto = "ARREC " & VB6.Format(adteFaixa, "MM/yyyy") & " - " & IIf(IsDBNull(row("banco")), "", row("banco"))
                        sHistoricotexto = "ARREC. CLASSIFICADA REF. MÊS " & VB6.Format(adteFaixa, "MM-yyyy") & " CONFORME REL. DE ARREC. NO ITEM APC"

                        Linha = Linha + 1
                        ExcelPlanilha.Cells(Linha, 1).value = "1102.4.00.00.000.0.001"
                        ExcelPlanilha.Cells(Linha, 2).value = dDataConsulta 'vOpcao 
                        ExcelPlanilha.Cells(Linha, 3).value = sArrecadacaotexto
                        ExcelPlanilha.Cells(Linha, 4).value = ""
                        ExcelPlanilha.Cells(Linha, 5).value = sHistoricotexto
                        ExcelPlanilha.Cells(Linha, 6).value = IIf(IsDBNull(row("valor")), 0, row("valor"))
                        ExcelPlanilha.Cells(Linha, 7).value = 0
                        ExcelPlanilha.Cells(Linha, 8).value = "R"

                        iContagemCidades = 0

                        For Linhasql = 2 To iTotalLinhaPlan '9 '7

                            ' Verifica se tem cidades e faz após a linha o COSIP (select)
                            bCip = False
                            If iTotalCidadesCIP > 0 And Linhasql > 4 And iContagemCidades < iTotalCidadesCIP Then
                                bCip = True
                                sZona = sRepartCidades(iContagemCidades)
                                lstrSql = "SELECT sum(credito) as valor, classe, idbanco, grupo, lote, CCUSTO, HISTORICO, REGSOC,codigo,zona  FROM " & istrTabela & "_itensContabilidade" & "  WHERE zona= '" & sZona & "' AND codigo in (" & fRetornaCodigoContabilidadeCIP(1) & ")  AND " & istrCondicao_Contabilidade_itens(llngAux) & " AND data = '" & VB6.Format(dDataItem, "yyyy-MM-dd") & "' and idbanco = " & idBancoItem & " GROUP BY idbanco ASC "
                            Else
                                lstrSql = "SELECT sum(credito) as valor, classe, idbanco, grupo, lote, CCUSTO, HISTORICO, REGSOC,codigo,zona  FROM " & istrTabela & "_itensContabilidade" & "  WHERE codigo in (" & fRetornaCodigoContabilidade(Linhasql, iTotalCidadesCIP) & ")  AND " & istrCondicao_Contabilidade_itens(llngAux) & " AND data = '" & VB6.Format(dDataItem, "yyyy-MM-dd") & "' and idbanco = " & idBancoItem & " GROUP BY idbanco ASC "
                            End If
                            objTempRecbtosItensContabilidade.TABLE = lstrSql '
                            dt = repositorioTempRecbtosItensContabilidade.Execute_2(objTempRecbtosItensContabilidade)

                            If dt.Rows.Count > 0 Then
                                For Each row1 As DataRow In dt.Rows

                                    If Linhasql = iTotalLinhaPlan Then

                                        lstrSql = "SELECT banco, classe, sum(total) as totalGeral, datapag  FROM " & istrTabela & "  WHERE " & istrCondicao_Contabilidade(llngAux) & " AND datapag = '" & VB6.Format(dDataItem, "yyyy-MM-dd") & "' AND  banco = '" & idBancoItem & "' GROUP BY banco ASC "
                                        objTempRecbtosItensContabilidade.TABLE = lstrSql '
                                        dtTotal = repositorioTempRecbtosItensContabilidade.Execute_2(objTempRecbtosItensContabilidade)

                                        For Each rowTotal As DataRow In dtTotal.Rows
                                            dtotalGeral = IIf(IsDBNull(rowTotal("totalGeral")), 0, rowTotal("totalGeral"))
                                        Next

                                        dTotaldositens = IIf(IsDBNull(row1("valor")), 0, row1("valor"))

                                        ' Valor do total dos itens
                                        dtotalDifer = dtotalGeral - dTotaldositens

                                        Linha = Linha + 1
                                        If UCase(gstrEmpresa_Sigla) = "CERCI" Then
                                            ExcelPlanilha.Cells(Linha, 1).value = "1119.1.99.00.000.0.025"
                                        Else
                                            ExcelPlanilha.Cells(Linha, 1).value = "1119.1.99.00.000.0.048"
                                        End If
                                        ExcelPlanilha.Cells(Linha, 2).value = dDataConsulta
                                        ExcelPlanilha.Cells(Linha, 3).value = IIf(IsDBNull(row1("LOTE")), "", row1("LOTE"))
                                        ExcelPlanilha.Cells(Linha, 4).value = ""
                                        ExcelPlanilha.Cells(Linha, 5).value = IIf(IsDBNull(row1("HISTORICO")), "", row1("HISTORICO")) & " - " & fRetornaCodigoNome(Linhasql, iTotalCidadesCIP)
                                        If dtotalDifer < 0 Then
                                            ExcelPlanilha.Cells(Linha, 6).value = dtotalDifer * -1
                                            ExcelPlanilha.Cells(Linha, 7).value = 0
                                        Else
                                            ExcelPlanilha.Cells(Linha, 6).value = 0
                                            ExcelPlanilha.Cells(Linha, 7).value = dtotalDifer
                                        End If
                                        ExcelPlanilha.Cells(Linha, 8).value = IIf(IsDBNull(row1("REGSOC")), "", row1("REGSOC"))

                                    Else

                                        Linha = Linha + 1
                                        ' Verifica se tem cidades e faz após a linha o COSIP
                                        If iTotalCidadesCIP > 0 And Linhasql > 4 And iContagemCidades < iTotalCidadesCIP Then
                                            ExcelPlanilha.Cells(Linha, 1).value = sRetornaContaTaxas(IIf(IsDBNull(row1("codigo")), "", row1("codigo")), , IIf(IsDBNull(row1("zona")), "", row1("zona")))
                                            ExcelPlanilha.Cells(Linha, 2).value = dDataConsulta
                                            ExcelPlanilha.Cells(Linha, 3).value = IIf(IsDBNull(row1("LOTE")), "", row1("LOTE"))
                                            ExcelPlanilha.Cells(Linha, 4).value = ""
                                            ExcelPlanilha.Cells(Linha, 5).value = IIf(IsDBNull(row1("HISTORICO")), "", row1("HISTORICO")) & " - " & fRetornaCodigoNomeCIP(IIf(IsDBNull(row1("zona")), "", row1("zona")))
                                        Else
                                            ExcelPlanilha.Cells(Linha, 1).value = sRetornaContaTaxas(IIf(IsDBNull(row1("codigo")), "", row1("codigo")), IIf(IsDBNull(row1("Classe")), "", row1("Classe")))
                                            ExcelPlanilha.Cells(Linha, 2).value = dDataConsulta
                                            ExcelPlanilha.Cells(Linha, 3).value = IIf(IsDBNull(row1("LOTE")), "", row1("LOTE"))
                                            ExcelPlanilha.Cells(Linha, 4).value = ""
                                            ExcelPlanilha.Cells(Linha, 5).value = IIf(IsDBNull(row1("HISTORICO")), "", row1("HISTORICO")) & " - " & fRetornaCodigoNome(Linhasql, iTotalCidadesCIP)
                                        End If
                                        ExcelPlanilha.Cells(Linha, 6).value = 0
                                        ExcelPlanilha.Cells(Linha, 7).value = IIf(IsDBNull(row1("valor")), 0, row1("valor"))
                                        ExcelPlanilha.Cells(Linha, 8).value = IIf(IsDBNull(row1("REGSOC")), "", row1("REGSOC"))
                                    End If
                                    If bCip Then
                                        iContagemCidades = iContagemCidades + 1
                                    End If
                                Next
                            Else
                                If bCip Then
                                    iContagemCidades = iContagemCidades + 1
                                End If
                            End If

                        Next
                        BarraProgresso(Me.ProgressBar, Me.lblPerc, Me.lblInfo, 1)
                    Next
                End If
                'Next
            Next

        Catch ex As Exception
            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: sContabilizacaoPlan" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub NomeArquivo()
        Dim lstrAux As String
        Dim sExtesion As String

        Try

            Me.txtArquivo.Text = My.Application.Info.DirectoryPath & "\" & istrNmArq & "." & Me.dialArqOpen.DefaultExt
            '  Me.dtpMesAno.CustomFormat = IIf(Me.opbAnual.Checked, "yyyy", "MM/yyyy")
            sExtesion = "xlsx"

            istrNmArq = "Contabilização_Arrecadação_" & gstrEmpresa_Sigla & "_" & VB6.Format(Me.dtpIni.Value, "MMYYYY") & "_" & Format(Now, "ddmmyyyyhhmmss")

            lstrAux = StrReverse(Me.txtArquivo.Text)
            Me.txtArquivo.Text = StrReverse(Mid(lstrAux, CInt(InStr(lstrAux, "\")))) & istrNmArq & "." & sExtesion 'Me.dialArqOpen.DefaultExt
            System.Windows.Forms.Application.DoEvents()

        Catch ex As Exception
            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: NomeArquivo" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Function ImprimeTotalGeralBancos(ByVal adteFaixa As Date, ByVal lstrCabecalho As String, ByVal lstrCabecalho_1 As String) As Boolean

        Dim lblnAux As Boolean
        Dim lstrTab As String
        Dim llngIni As Integer
        Dim llngFim As Integer
        Dim llngAux As Integer
        Dim lstrSql As String
        Dim lstrTabDiario As String()

        Dim vOpcao As String

        Dim vValueCabecalho As String
        Dim vCabecalho As String()

        Dim vValueCabecalho_1 As String
        Dim vCabecalho_1 As String()

        Dim vValueImprimeResumoDiario As String
        Dim vImprimeResumoDiario As String()

        Dim dt_1 As New DataTable
        Dim dtcab As New DataTable
        Dim dtCont As New DataTable

        Dim dt As New DataTable

        Dim objTempRecbtos As New entidadeTempRecbtos
        Dim repositorioTempRecbtos As New repositorioTempRecbtos

        Dim objTempRecbtosItensContabilidade As New entidadeTempRecbtosItensContabilidade
        Dim repositorioTempRecbtosItensContabilidade As New repositorioTempRecbtosItensContabilidade

        Dim bytBLOBData() As Byte

        Dim vlist

        Dim objEmpresa As New entidadeEmpresa
        Dim repositorioEmpresa As New repositorioEmpresa

        Try

            lblnAux = False

            llngIni = LBound(istrNomClass)
            llngFim = UBound(istrNomClass)

            iblnCabecDia = False

            vlist = repositorioEmpresa.Select(objEmpresa)

            If vlist.Count <> 0 Then

                For Each objEmpresaFor As entidadeEmpresa In vlist

                    bytBLOBData = objEmpresaFor.LOGOTIPO

                Next

            End If

            vValueCabecalho = lstrCabecalho

            If vValueCabecalho <> String.Empty Then
                vCabecalho = vValueCabecalho.Split("|")
            End If

            vOpcao = VB6.Format(adteFaixa, "dd/mm/yyyy")

            vValueCabecalho_1 = lstrCabecalho_1

            If vValueCabecalho_1 <> String.Empty Then
                vCabecalho_1 = vValueCabecalho_1.Split("|")
            End If

            ' Cabeçalho por banco
            lstrSql = "SELECT distinct(banco) as idbanco, NMBANCO  FROM " & istrTabela & " " 'WHERE datapag = '" & VB6.Format(adteFaixa, "yyyy-MM-dd") & "'"

            objTempRecbtos.TABLE = lstrSql '
            dtcab = repositorioTempRecbtos.Execute_2(objTempRecbtos)

            For Each row As DataRow In dtcab.Rows
                dt_Relatorio_1.Rows.Add(vCabecalho_1(0), vCabecalho_1(1), vCabecalho_1(2), vCabecalho_1(3), vCabecalho_1(4), vCabecalho_1(5), vCabecalho_1(6), vCabecalho_1(7), vCabecalho_1(8), vCabecalho_1(9), vCabecalho_1(10), vCabecalho_1(11), vCabecalho_1(12), vCabecalho_1(13), vCabecalho_1(14), vCabecalho_1(15), vCabecalho_1(16), vCabecalho_1(17), vCabecalho_1(18), vCabecalho_1(19), vCabecalho(0), vCabecalho(1), vCabecalho(2), vOpcao, vOpcao, gstrEmpresa_Nome, gstrEmpresa_Endereco, gstrEmpresa_Fone + " - " + gstrEmpresa_Site, IIf(IsDBNull(row("NMBANCO")), "", row("NMBANCO")), IIf(IsDBNull(row("idbanco")), "", row("idbanco")), bytBLOBData)
            Next

            lstrSql = RelatorioPaisagemSelecionaDados(1, lstrSql, istrTabela)
            'lstrSql = RelatorioPaisagemSelecionaDados_Recebimentos(1, lstrSql, istrTabela)

            BarraProgresso(Me.ProgressBar, Me.lblPerc, Me.lblInfo, 0, llngFim, " " & VB6.Format(adteFaixa, "yyyy-MM-dd") & " " & istrNomClass(1))

            For llngAux = llngIni To llngFim - 1

                objTempRecbtos.TABLE = lstrSql & " WHERE " & istrCondicao(llngAux) & " GROUP BY datapag, banco ASC "
                'objTempRecbtos.TABLE = lstrSql & " WHERE datapag = '" & VB6.Format(adteFaixa, "yyyy-MM-dd") & "' AND " & istrCondicao(llngAux) & " GROUP BY datapag, banco ASC "

                dt = repositorioTempRecbtos.Execute_2(objTempRecbtos)

                If dt.Columns.Count > 0 Then
                    For Each row As DataRow In dt.Rows
                        'lstrTab = RelatorioPaisagemMontaTemp(dt)
                        'lstrTabDiario = RelatorioPaisagemMontaTemp(dt)

                        lstrTab = ""
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("ncons")), 0, row("ncons")), "#,##0") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("kwhf")), 0, row("kwhf")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("consumo")), 0, row("consumo")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("bandeira")), 0, row("bandeira")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("icms")), 0, row("icms")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("pis")), 0, row("pis")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("cofins")), 0, row("cofins")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("reativo")), 0, row("reativo")), "#,##0.00") & "|"

                        'If aintSomenteMicroGeradora = 1 Then
                        '    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("reversoimporte")), 0, row("reversoimporte")), "#,##0.00") & "|"
                        'End If

                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("importe")), 0, row("importe")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("tip")), 0, row("tip")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("eletrobras")), 0, row("eletrobras")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("taxados")), 0, row("taxados")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("diversos")), 0, row("diversos")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("convenios")), 0, row("convenios")), "#,##0.00") & "|"

                        'If aintSomenteMicroGeradora = 0 Then
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("ece")), 0, row("ece")), "#,##0.00") & "|"
                        'End If

                        'lstrTab = lstrTab & Strings.Format(IIf(IsNull(row("icms_ece")), 0, row("icms_ece")), "#,##0.00") & "|"

                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("reverso")), 0, row("reverso")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("retencao")), 0, row("retencao")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("icms_st")), 0, row("icms_st")) + IIf(IsDBNull(row("pis_st")), 0, row("pis_st")) + IIf(IsDBNull(row("cofins_st")), 0, row("cofins_st")), "#,##0.00") & "|"
                        lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("total")), 0, row("total")), "#,##0.00") & "|"

                        lstrTab = lstrTab & IIf(IsDBNull(row("nmbanco")), "", row("nmbanco")) & "|"
                        lstrTab = lstrTab & IIf(IsDBNull(row("banco")), 0, row("banco"))

                        If lstrTab <> "" Then
                            vValueImprimeResumoDiario = istrTamCol & istrNomClass(llngAux) & "|" & lstrTab

                            If vValueImprimeResumoDiario <> String.Empty Then
                                vImprimeResumoDiario = vValueImprimeResumoDiario.Split("|")
                            End If

                            dt_Relatorio_1.Rows.Add(vImprimeResumoDiario(0), vImprimeResumoDiario(1), vImprimeResumoDiario(2), vImprimeResumoDiario(3), vImprimeResumoDiario(4), vImprimeResumoDiario(5), vImprimeResumoDiario(6), vImprimeResumoDiario(7), vImprimeResumoDiario(8), vImprimeResumoDiario(9), vImprimeResumoDiario(10), vImprimeResumoDiario(11), vImprimeResumoDiario(12), vImprimeResumoDiario(13), vImprimeResumoDiario(14), vImprimeResumoDiario(15), vImprimeResumoDiario(16), vImprimeResumoDiario(17), vImprimeResumoDiario(18), vImprimeResumoDiario(19), vCabecalho(0), vCabecalho(1), vCabecalho(2), vOpcao, vOpcao, gstrEmpresa_Nome, gstrEmpresa_Endereco, gstrEmpresa_Fone + " - " + gstrEmpresa_Site, vImprimeResumoDiario(20), vImprimeResumoDiario(21), bytBLOBData)

                        End If
                    Next
                    lblnAux = True

                End If

                BarraProgresso(Me.ProgressBar, Me.lblPerc, Me.lblInfo, 1,  , " " & VB6.Format(adteFaixa, "yyyy-MM-dd") & " " & istrNomClass(llngAux))

            Next llngAux


            '### TOTAL     ######
            objTempRecbtos.TABLE = lstrSql & " GROUP BY banco "
            ' objTempRecbtos.TABLE = lstrSql & " WHERE datapag = '" & VB6.Format(adteFaixa, "yyyy-MM-dd") & "' GROUP BY banco "

            dt = repositorioTempRecbtos.Execute_2(objTempRecbtos)

            If dt.Columns.Count > 0 Then
                For Each row As DataRow In dt.Rows
                    'lstrTab = RelatorioPaisagemMontaTemp(dt)
                    'lstrTabDiario = RelatorioPaisagemMontaTemp(dt)

                    lstrTab = ""
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("ncons")), 0, row("ncons")), "#,##0") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("kwhf")), 0, row("kwhf")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("consumo")), 0, row("consumo")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("bandeira")), 0, row("bandeira")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("icms")), 0, row("icms")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("pis")), 0, row("pis")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("cofins")), 0, row("cofins")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("reativo")), 0, row("reativo")), "#,##0.00") & "|"

                    'If aintSomenteMicroGeradora = 1 Then
                    '    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("reversoimporte")), 0, row("reversoimporte")), "#,##0.00") & "|"
                    'End If

                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("importe")), 0, row("importe")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("tip")), 0, row("tip")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("eletrobras")), 0, row("eletrobras")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("taxados")), 0, row("taxados")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("diversos")), 0, row("diversos")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("convenios")), 0, row("convenios")), "#,##0.00") & "|"

                    'If aintSomenteMicroGeradora = 0 Then
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("ece")), 0, row("ece")), "#,##0.00") & "|"
                    'End If

                    'lstrTab = lstrTab & Strings.Format(IIf(IsNull(row("icms_ece")), 0, row("icms_ece")), "#,##0.00") & "|"

                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("reverso")), 0, row("reverso")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("retencao")), 0, row("retencao")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("icms_st")), 0, row("icms_st")) + IIf(IsDBNull(row("pis_st")), 0, row("pis_st")) + IIf(IsDBNull(row("cofins_st")), 0, row("cofins_st")), "#,##0.00") & "|"
                    lstrTab = lstrTab & VB6.Format(IIf(IsDBNull(row("total")), 0, row("total")), "#,##0.00") & "|"

                    lstrTab = lstrTab & IIf(IsDBNull(row("nmbanco")), "", row("nmbanco")) & "|"
                    lstrTab = lstrTab & IIf(IsDBNull(row("banco")), 0, row("banco"))

                    vValueImprimeResumoDiario = istrTamCol & "Total|" & lstrTab

                    If vValueImprimeResumoDiario <> String.Empty Then
                        vImprimeResumoDiario = vValueImprimeResumoDiario.Split("|")
                    End If

                    dt_Relatorio_1.Rows.Add(vImprimeResumoDiario(0), vImprimeResumoDiario(1), vImprimeResumoDiario(2), vImprimeResumoDiario(3), vImprimeResumoDiario(4), vImprimeResumoDiario(5), vImprimeResumoDiario(6), vImprimeResumoDiario(7), vImprimeResumoDiario(8), vImprimeResumoDiario(9), vImprimeResumoDiario(10), vImprimeResumoDiario(11), vImprimeResumoDiario(12), vImprimeResumoDiario(13), vImprimeResumoDiario(14), vImprimeResumoDiario(15), vImprimeResumoDiario(16), vImprimeResumoDiario(17), vImprimeResumoDiario(18), vImprimeResumoDiario(19), vCabecalho(0), vCabecalho(1), vCabecalho(2), vOpcao, vOpcao, gstrEmpresa_Nome, gstrEmpresa_Endereco, gstrEmpresa_Fone + " - " + gstrEmpresa_Site, vImprimeResumoDiario(20), vImprimeResumoDiario(21), bytBLOBData)
                Next

                lblnAux = True
            End If

            If lblnAux = True Then

                dt_1 = ImprimeDetalhamentosPaisagem_Diario(istrTabela & "_itens", Me.cmbOpcao.SelectedIndex, 3, adteFaixa)

                If dt_1.Columns.Count > 0 Then

                    For Each row As DataRow In dt_1.Rows
                        dt_Relatorio_2.Rows.Add(vOpcao, IIf(IsDBNull(row("CODIGO")), "", row("CODIGO")), IIf(IsDBNull(row("DESCRICAO")), "", row("DESCRICAO")), IIf(IsDBNull(row("VALOR")), "", row("VALOR")), IIf(IsDBNull(row("TOTAL")), "", row("TOTAL")), vCabecalho(0), vCabecalho(1), vCabecalho(2), IIf(IsDBNull(row("GRUPO")), "", row("GRUPO")), IIf(IsDBNull(row("id_banco")), "", row("id_banco")))
                    Next

                End If

            End If

            If chkcontabilidade.Checked Then

                Dim iTotalCidadesCIP As Integer
                Dim iTotalLinhaPlan As Integer = 7 ' sem as possiveis zonas
                Dim iLinhasCIP As Integer
                Dim iarrayLinhasCIP As Integer
                Dim sCidadesZona As String
                Dim sCidades, sZona As String
                Dim j As Integer
                Dim sRepartCidades
                Dim iContagemCidades As Integer
                Dim bCip As Boolean = False

                ' Retorna as cidades cadastradas na tabela CIP (total de zonas)
                lstrSql = "SELECT distinct a.cidade, b.zona FROM CIP a inner join MUNIC b on (a.cidade = b.cod) "
                objTempRecbtosItensContabilidade.TABLE = lstrSql '
                dt = repositorioTempRecbtosItensContabilidade.Execute_2(objTempRecbtosItensContabilidade)

                sCidadesZona = ""
                If dt.Rows.Count > 0 Then
                    For Each row As DataRow In dt.Rows
                        sZona = IIf(IsDBNull(row("zona")), "", row("zona"))
                        sCidadesZona = sCidadesZona & sZona & ";"
                    Next
                Else
                    iTotalCidadesCIP = 0
                End If

                ' Separa em uma variável com index as zonas
                sRepartCidades = Split(sCidadesZona, ";")
                iTotalCidadesCIP = UBound(sRepartCidades)

                ' Soma o total de linhas com o total de zonas
                iTotalLinhaPlan = iTotalLinhaPlan + iTotalCidadesCIP

                Dim Linha As Integer
                Dim sRetCodigos As String
                Dim sArrecadacaotexto As String
                Dim sHistoricotexto As String
                Dim dtotalGeral, dTotaldositens, dtotalDifer As Double
                Dim sTotalGeral As Object
                Dim iContador As Integer
                Dim iMaxLinha As Integer
                Dim dtTotal As DataTable

                For llngAux = llngIni To llngFim - 2

                    dtotalGeral = 0
                    dTotaldositens = 0
                    iMaxLinha = 0
                    iContagemCidades = 0

                    For Linha = 1 To iTotalLinhaPlan '9 '7

                        bCip = False
                        If Linha = 1 Then
                            lstrSql = "SELECT banco, classe, sum(total) as valor, datapag  FROM " & istrTabela & "  WHERE " & istrCondicao_Contabilidade(llngAux) & " AND datapag = '" & VB6.Format(adteFaixa, "yyyy-MM-dd") & "' GROUP BY banco ASC "
                        ElseIf iTotalCidadesCIP > 0 And Linha > 4 And iContagemCidades < iTotalCidadesCIP Then
                            bCip = True
                            sZona = sRepartCidades(iContagemCidades)
                            lstrSql = "SELECT sum(credito) as valor, classe, idbanco, grupo, lote, CCUSTO, HISTORICO, REGSOC,codigo,zona  FROM " & istrTabela & "_itensContabilidade" & "  WHERE zona= '" & sZona & "' AND codigo in (" & fRetornaCodigoContabilidadeCIP(1) & ")  AND " & istrCondicao_Contabilidade_itens(llngAux) & " AND data = '" & VB6.Format(adteFaixa, "yyyy-MM-dd") & "' GROUP BY idbanco ASC" 'and idbanco = " & idBancoItem & " GROUP BY idbanco ASC "
                        Else
                            lstrSql = "SELECT sum(credito) as valor, classe, idbanco, grupo, lote, CCUSTO, HISTORICO, REGSOC,codigo  FROM " & istrTabela & "_itensContabilidade" & "  WHERE codigo in (" & fRetornaCodigoContabilidade(Linha, iTotalCidadesCIP) & ")  AND " & istrCondicao_Contabilidade_itens(llngAux) & " AND data = '" & VB6.Format(adteFaixa, "yyyy-MM-dd") & "' GROUP BY idbanco ASC "
                        End If
                        objTempRecbtosItensContabilidade.TABLE = lstrSql '
                        dtCont = repositorioTempRecbtosItensContabilidade.Execute_2(objTempRecbtosItensContabilidade)

                        If dtCont.Rows.Count > 0 Then
                            For Each row As DataRow In dtCont.Rows

                                If Linha = 1 Then

                                    ' Faz o ínicio(Cabeçalho) de cada Classe com seu itens.
                                    dt_Relatorio_4.Rows.Add("", vOpcao, "", "", istrNomClass_Contabilidade_itens(llngAux), 0, 0, "", "", vOpcao, IIf(IsDBNull(row("banco")), "", row("banco")), "B")

                                    sArrecadacaotexto = "ARREC " & VB6.Format(adteFaixa, "MM/yyyy") & " - " & IIf(IsDBNull(row("banco")), "", row("banco"))
                                    sHistoricotexto = "ARREC. CLASSIFICADA REF. MÊS " & VB6.Format(adteFaixa, "MM-yyyy") & " CONFORME REL. DE ARREC. NO ITEM APC"

                                    dt_Relatorio_4.Rows.Add("1102.4.00.00.000.0.001", vOpcao, sArrecadacaotexto, "", sHistoricotexto, IIf(IsDBNull(row("valor")), 0, row("valor")), 0, "R", IIf(IsDBNull(row("classe")), "", row("classe")), vOpcao, IIf(IsDBNull(row("banco")), "", row("banco")), "B")

                                ElseIf Linha = iTotalLinhaPlan Then

                                    lstrSql = "SELECT banco, classe, sum(total) as totalGeral, datapag  FROM " & istrTabela & "  WHERE " & istrCondicao_Contabilidade(llngAux) & " AND datapag = '" & VB6.Format(adteFaixa, "yyyy-MM-dd") & "' AND  banco = '" & IIf(IsDBNull(row("idbanco")), "", row("idbanco")) & "' GROUP BY banco ASC "
                                    objTempRecbtosItensContabilidade.TABLE = lstrSql '
                                    dtTotal = repositorioTempRecbtosItensContabilidade.Execute_2(objTempRecbtosItensContabilidade)

                                    For Each rowTotal As DataRow In dtTotal.Rows
                                        dtotalGeral = IIf(IsDBNull(rowTotal("totalGeral")), 0, rowTotal("totalGeral"))
                                    Next

                                    dTotaldositens = IIf(IsDBNull(row("valor")), 0, row("valor"))

                                    ' Valor do total dos itens
                                    dtotalDifer = dtotalGeral - dTotaldositens

                                    ' Caso a diferença seja negativa fica na coluna da esquerda
                                    If dtotalDifer < 0 Then
                                        If UCase(gstrEmpresa_Sigla) = "CERCI" Then
                                            dt_Relatorio_4.Rows.Add("1119.1.99.00.000.0.025", vOpcao, IIf(IsDBNull(row("LOTE")), "", row("LOTE")), IIf(IsDBNull(row("CCUSTO")), "", row("CCUSTO")), IIf(IsDBNull(row("HISTORICO")), "", row("HISTORICO")) & " - " & fRetornaCodigoNome(Linha, iTotalCidadesCIP), (dtotalDifer) * -1, 0, IIf(IsDBNull(row("REGSOC")), "", row("REGSOC")), IIf(IsDBNull(row("Classe")), "", row("Classe")), vOpcao, IIf(IsDBNull(row("idbanco")), "", row("idbanco")), IIf(IsDBNull(row("GRUPO")), "", row("GRUPO")))
                                        Else
                                            dt_Relatorio_4.Rows.Add("1119.1.99.00.000.0.048", vOpcao, IIf(IsDBNull(row("LOTE")), "", row("LOTE")), IIf(IsDBNull(row("CCUSTO")), "", row("CCUSTO")), IIf(IsDBNull(row("HISTORICO")), "", row("HISTORICO")) & " - " & fRetornaCodigoNome(Linha, iTotalCidadesCIP), (dtotalDifer) * -1, 0, IIf(IsDBNull(row("REGSOC")), "", row("REGSOC")), IIf(IsDBNull(row("Classe")), "", row("Classe")), vOpcao, IIf(IsDBNull(row("idbanco")), "", row("idbanco")), IIf(IsDBNull(row("GRUPO")), "", row("GRUPO")))
                                        End If
                                    Else
                                        If UCase(gstrEmpresa_Sigla) = "CERCI" Then
                                            dt_Relatorio_4.Rows.Add("1119.1.99.00.000.0.025", vOpcao, IIf(IsDBNull(row("LOTE")), "", row("LOTE")), IIf(IsDBNull(row("CCUSTO")), "", row("CCUSTO")), IIf(IsDBNull(row("HISTORICO")), "", row("HISTORICO")) & " - " & fRetornaCodigoNome(Linha, iTotalCidadesCIP), 0, dtotalDifer, IIf(IsDBNull(row("REGSOC")), "", row("REGSOC")), IIf(IsDBNull(row("Classe")), "", row("Classe")), vOpcao, IIf(IsDBNull(row("idbanco")), "", row("idbanco")), IIf(IsDBNull(row("GRUPO")), "", row("GRUPO")))
                                        Else
                                            dt_Relatorio_4.Rows.Add("1119.1.99.00.000.0.048", vOpcao, IIf(IsDBNull(row("LOTE")), "", row("LOTE")), IIf(IsDBNull(row("CCUSTO")), "", row("CCUSTO")), IIf(IsDBNull(row("HISTORICO")), "", row("HISTORICO")) & " - " & fRetornaCodigoNome(Linha, iTotalCidadesCIP), 0, dtotalDifer, IIf(IsDBNull(row("REGSOC")), "", row("REGSOC")), IIf(IsDBNull(row("Classe")), "", row("Classe")), vOpcao, IIf(IsDBNull(row("idbanco")), "", row("idbanco")), IIf(IsDBNull(row("GRUPO")), "", row("GRUPO")))
                                        End If
                                    End If
                                ElseIf iTotalCidadesCIP > 0 And Linha > 4 And iContagemCidades < iTotalCidadesCIP Then
                                    dt_Relatorio_4.Rows.Add(sRetornaContaTaxas(IIf(IsDBNull(row("codigo")), "", row("codigo")), , IIf(IsDBNull(row("zona")), "", row("zona"))), vOpcao, IIf(IsDBNull(row("LOTE")), "", row("LOTE")), IIf(IsDBNull(row("CCUSTO")), "", row("CCUSTO")), IIf(IsDBNull(row("HISTORICO")), "", row("HISTORICO")) & " - " & fRetornaCodigoNomeCIP(IIf(IsDBNull(row("zona")), "", row("zona"))), 0, IIf(IsDBNull(row("valor")), 0, row("valor")), IIf(IsDBNull(row("REGSOC")), "", row("REGSOC")), IIf(IsDBNull(row("Classe")), "", row("Classe")), vOpcao, IIf(IsDBNull(row("idbanco")), "", row("idbanco")), IIf(IsDBNull(row("GRUPO")), "", row("GRUPO")))
                                Else
                                    dt_Relatorio_4.Rows.Add(sRetornaContaTaxas(IIf(IsDBNull(row("codigo")), "", row("codigo")), IIf(IsDBNull(row("Classe")), "", row("Classe"))), vOpcao, IIf(IsDBNull(row("LOTE")), "", row("LOTE")), IIf(IsDBNull(row("CCUSTO")), "", row("CCUSTO")), IIf(IsDBNull(row("HISTORICO")), "", row("HISTORICO")) & " - " & fRetornaCodigoNome(Linha, iTotalCidadesCIP), 0, IIf(IsDBNull(row("valor")), 0, row("valor")), IIf(IsDBNull(row("REGSOC")), "", row("REGSOC")), IIf(IsDBNull(row("Classe")), "", row("Classe")), vOpcao, IIf(IsDBNull(row("idbanco")), "", row("idbanco")), IIf(IsDBNull(row("GRUPO")), "", row("GRUPO")))
                                End If
                            Next
                            If bCip Then
                                iContagemCidades = iContagemCidades + 1
                            End If
                        Else
                            If bCip Then
                                iContagemCidades = iContagemCidades + 1
                            End If
                        End If
                    Next
                Next
            End If

            ImprimeTotalGeralBancos = lblnAux

        Catch ex As Exception
            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: ImprimeTotalGeralBancos" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Function
        End Try

    End Function


#End Region

End Class