Option Strict Off
Option Explicit On

Imports System.Configuration
Imports System.Collections.Generic
Imports fatd_faturamento.ENTIDADE
Imports fatd_faturamento.BLL.Repositorio
Imports CrystalDecisions.CrystalReports.Engine


Public Class frmVerifContaGBNovo
    Inherits System.Windows.Forms.Form

    Public istrMesAnoFat As String
    Public iintBanderiaVigente As Short
    Public idteBandeira As Date
    Public idblNumNf As Double
    Public istrTabela As String
    Public ilngLimRes As Integer
    Public ilngLimRur As Integer
    Public idblNsuNr As Double
    Public iQtdBandeira As Integer

    Public idteBase As Date
    Public istrArredTotNf As String

    Public istrFlgRessarcimento As String
    Public istrFlgCalcPisCofNAss As String
    Public istrFlgCalcPisCof As String
    Public istrAgrupaCobrarCorreio As String
    Public istrCodigoAgrupamentoCorreio As String
    Public istrCipIsentoBaixaRenda As String
    Public istrCalculaCodigoRegraEspecial As String

    Public idblAliqPIS As Double
    Public idblAliqCOF As Double
    Public idblPercentual As Double
    Public idblTotalVlrBaseCip As Double
    Public idblTotalNota As Double

    Public istrFlgTributoMunicipalEstadual As String

    Public iintTipoFaturamento As Short
    Private objExecAtualizaBancoDados As New entidadeAtualizaBancoDados
    Private repositorioExecAtualizaBancoDados As New repositorioAtualizaBancoDados

    Private objAtualizaBancoDados As New entidadeAtualizaBancoDados
    Private repositorioAtualizaBancoDados As New repositorioAtualizaBancoDados

    Private sNomeEmpresa As String
    Private sEnderecoEmpresa As String
    Private sCepEmpresa As String
    Private sCidadeEmpresa As String
    Private sUFempresa As String
    Private sBairroEmpresa As String
    Private sFoneEmpresa As String
    Private sWebEmpresa As String
    Private LImagem() As Byte

    Private lUsuario As String
#Region "Propriedades"

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

        lsb_Faturamento_Normal_Avisos.DrawMode = DrawMode.OwnerDrawFixed
        'Revisado em 15/06/2015
        Dim llngIdx As Integer
        Dim lstrAux As String

        'Define variavel para inserir log
        gFormularioParaLog = Me.Text

        Dim classAPIAnalizeProcessamentoFaturas As New classAPIAnalizeProcessamentoFaturas

        If vUsuario.LOGIN <> "admin" Then
            lUsuario = GetConfig("processamento.fatura")
            If lUsuario.Trim().ToUpper() <> System.Environment.UserName.ToUpper().Trim() Then
                If lUsuario <> "" Then
                    MessageBox.Show("Processo sendo utilizado pelo usuário:  " & lUsuario & vbCrLf & vbCrLf & "Verifique", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning)
                    Me.Close()
                Else
                    SetConfig("processamento.fatura", "String", System.Environment.UserName,, "Processamento de Faturas", 1)
                End If
            End If
        End If
        Try

            classAPIAnalizeProcessamentoFaturas.frmVerifContaGBNovo = Me
            If iintTipoFaturamento = 0 Then Me.tb_Faturamento_tp_Refaturamento_Fatura_Final.Enabled = False

            gstrEmpresa_UF = GetEmpresaUF()

            MontaGradeCancDados()

            idteBase = Date.Now.ToShortDateString()

            PreencheRotas()

            With Me.lvw_Faturamento_Normal_Por_Selecao_Rotas_Dados

                .Items.Clear()
                .Columns.Clear()

                If .Columns.Count <= 1 Then
                    .Columns.Add("", "Rota", 140)
                End If

                For llngIdx = 0 To Me.cbx_Faturamento_Normal_Por_Faixa_Rotas_Inicio.Items.Count - 1
                    .Items.Add(Me.cbx_Faturamento_Normal_Por_Faixa_Rotas_Inicio.Items.Item(llngIdx).ToString)
                Next llngIdx

            End With

            LigDesBotoes(False, False, False, False, True, True, False)
            LigDesCampo(True, False)

            'Parametros de calculo do grupo B
            istrMesAnoFat = GetConfig("mes.ano.faturamento")
            istrArredTotNf = Trim(GetConfig("arredondar.total.nf"))

            'Pega limites de consumo
            ilngLimRes = CInt(GetConfig("limite.residencial"))
            ilngLimRur = CInt(GetConfig("limite.rural"))
            iQtdBandeira = CInt(GetConfig("quantidade.bandeiras"))

            'Ressarcimento de Inidicadores
            istrFlgRessarcimento = Trim(GetConfig("calcula.ressarcimento.decfec"))
            If istrFlgRessarcimento = "N" Then
                SetConfig("calcula.ressarcimento.decfec", "STRING", "N", False, "Calcular ressarcimento de indicadores de continuidade.")
                istrFlgRessarcimento = "N"
            ElseIf istrFlgRessarcimento = "" Then
                SetConfig("calcula.ressarcimento.decfec", "STRING", "N")
                istrFlgRessarcimento = "N"
            End If

            'CALCULA_PIS_COFINS
            istrFlgCalcPisCofNAss = Trim(GetConfig("calcula.pis.cofins.nao.socio"))
            If istrFlgCalcPisCofNAss = "N" Then
                SetConfig("calcula.pis.cofins.nao.socio", "STRING", "N", False, "Calcula Pis Cofins Não Associado")
                istrFlgCalcPisCofNAss = "N"
            ElseIf istrFlgCalcPisCofNAss = "" Then
                SetConfig("calcula.pis.cofins.nao.socio", "STRING", "N")
                istrFlgCalcPisCofNAss = "N"
            End If

            istrFlgCalcPisCof = Trim(GetConfig("calcula.pis.cofins"))
            If istrFlgCalcPisCof = "N" Then
                SetConfig("calcula.pis.cofins", "STRING", "N", False, "Calcula Pis Cofins com ICMS")
                istrFlgCalcPisCof = "N"
            ElseIf istrFlgCalcPisCof = "" Then
                SetConfig("calcula.pis.cofins", "STRING", "N")
                istrFlgCalcPisCof = "N"
            End If

            'Aqui ele pega o valor para saber se será ou não cobrada a taxa de correios.
            istrAgrupaCobrarCorreio = Trim(GetConfig("agrupa.cobrar.correio"))
            'Aqui ele pega o codigo que esta configurado para ser o agrupamento correio
            istrCodigoAgrupamentoCorreio = GetConfig("codigo.agrupamento.correio")

            istrCipIsentoBaixaRenda = Trim(GetConfig("baixa.renda.insento.cip"))
            If istrCipIsentoBaixaRenda = "N" Then
                SetConfig("baixa.renda.insento.cip", "S", False, "Insenta iluminação pública baixa renda (S/N).")
                istrCipIsentoBaixaRenda = "S"
            ElseIf istrCipIsentoBaixaRenda = "" Then
                SetConfig("baixa.renda.insento.cip", "STRING", "S")
                istrCipIsentoBaixaRenda = "S"
            End If

            istrCalculaCodigoRegraEspecial = Trim(GetConfig("calcula.codigo.regra.especial"))
            If istrCalculaCodigoRegraEspecial = "N" Then
                SetConfig("calcula.codigo.regra.especial", "N", True, "Calculo de regras especiais para itens dos diversos (S/N).")
                istrCalculaCodigoRegraEspecial = "N"
            ElseIf istrCalculaCodigoRegraEspecial = "" Then
                SetConfig("calcula.codigo.regra.especial", "STRING", "N")
                istrCalculaCodigoRegraEspecial = "N"
            End If

            istrFlgTributoMunicipalEstadual = Trim(GetConfig("tributo.municipal.estadual"))

            'Personaliza os campos de data no form de acordo com o mesano do faturamento
            Me.dtp_Faturamento_Normal_Data_Leitura_Anterior.Value = idteBase
            Me.dtp_Faturamento_Normal_Data_Faturamento.Value = "01/" & istrMesAnoFat

            If CDbl(Microsoft.VisualBasic.Left(istrMesAnoFat, 2)) - 1 < 1 Then
                Me.dtp_Faturamento_Normal_Data_Leitura_Anterior.Value = "01/12/" & CDbl(Microsoft.VisualBasic.Right(istrMesAnoFat, 4)) - 1
            Else
                Me.dtp_Faturamento_Normal_Data_Leitura_Anterior.Value = "01/" & CDbl(Microsoft.VisualBasic.Left(istrMesAnoFat, 2)) - 1 & "/" & Microsoft.VisualBasic.Right(istrMesAnoFat, 4)
            End If

            If CDbl(Microsoft.VisualBasic.Left(istrMesAnoFat, 2)) + 1 > 12 Then
                Me.dtp_Faturamento_Normal_Data_Proxima_Leitura.Value = "01/01/" & CDbl(Microsoft.VisualBasic.Right(istrMesAnoFat, 4)) + 1
            Else
                Me.dtp_Faturamento_Normal_Data_Proxima_Leitura.Value = "01/" & CDbl(Microsoft.VisualBasic.Left(istrMesAnoFat, 2)) + 1 & "/" & Microsoft.VisualBasic.Right(istrMesAnoFat, 4)
            End If

            Me.dtp_Faturamento_Normal_Data_Apresenta.Value = Me.dtp_Faturamento_Normal_Data_Faturamento.Value
            Me.dtp_Faturamento_Normal_Data_Vencimento.Value = classAPIAnalizeProcessamentoFaturas.BuscaDtVcto(Me.dtp_Faturamento_Normal_Data_Apresenta.Value, CStr(0))
            Me.dtp_Faturamento_Normal_Data_Vencimentoo_Poder_Publico.Value = classAPIAnalizeProcessamentoFaturas.BuscaDtVcto(Me.dtp_Faturamento_Normal_Data_Apresenta.Value, CStr(6))

            'Define o nome das tabelas para o relatorio 33
            istrTabela = "temp_fatb33_" & VB6.Format(Date.Now, "yyyymmddHHMMSS")

            Me.mfg_GradeItensTarifab.set_ColWidth(0, 1000)
            Me.mfg_GradeItensTarifab.set_ColWidth(1, 1000)
            Me.mfg_GradeItensTarifab.set_ColWidth(2, 1000)
            Me.mfg_GradeItensTarifab.set_ColWidth(3, 5000)
            Me.mfg_GradeItensTarifab.set_ColWidth(4, 1500)
            Me.mfg_GradeItensTarifab.set_ColWidth(5, 1000)
            Me.mfg_GradeItensTarifab.set_ColWidth(6, 1000)

            sCriaTabelaAuxiliares()

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

    End Sub

    Private Sub btn_Faturamento_Normal_Individual_Buscar_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles btn_Faturamento_Normal_Individual_Buscar.Click

        Dim classAPIAnalizeProcessamentoFaturas As New classAPIAnalizeProcessamentoFaturas
        Dim bValidacao As Boolean

        Try

            classAPIAnalizeProcessamentoFaturas.frmVerifContaGBNovo = Me

            'Conferido em 15/06/2015
            If Len(Trim(txt_Faturamento_Normal_Individual_Zona.Text)) > 0 And Len(Trim(txt_Faturamento_Normal_Individual_Livro.Text)) > 0 And Len(Trim(txt_Faturamento_Normal_Individual_Conta.Text)) > 0 Then
                bValidacao = classAPIAnalizeProcessamentoFaturas.BuscaDadosLeitIndv("FORM", istrMesAnoFat,,,)

                If bValidacao Then
                    classAPIAnalizeProcessamentoFaturas.BuscaDados("FORM",,,,,,,,,)
                End If

            Else
                '' Limpar((Me.fmeTotal))

                LigDesBotoes(False, False, False, False, True, True, False)
                LigDesCampo(True, False)
                MsgBox("Por favor, informe a identificação do consumidor!", MsgBoxStyle.Exclamation)
                txt_Faturamento_Normal_Individual_Zona.Focus()
            End If

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

    End Sub

    Private Sub cmdBuscaFFNf_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles btn_Fatura_Final_Busca_Nota_Fiscal.Click

        Dim result As Boolean

        Dim classAPIAnalizeProcessamentoFaturas As New classAPIAnalizeProcessamentoFaturas

        Try

            classAPIAnalizeProcessamentoFaturas.frmVerifContaGBNovo = Me

            result = classAPIAnalizeProcessamentoFaturas.RefaturamentoFaturaFinal("FORM", istrMesAnoFat, istrTabela, idblPercentual,,,,)

            If result = True Then
                MessageBox.Show("A analise da Fatura final foi recalculada com sucesso.", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Exit Sub
            Else
                MessageBox.Show("Ocorreu um erro ao realizar a analise da Fatura final.", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Exit Sub
            End If


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

    End Sub

    Private Sub cmdBuscaNfCancelada_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles btn_Refaturamento_Busca_Nota_Fiscal.Click

        Dim result As Boolean

        Dim classAPIAnalizeProcessamentoFaturas As New classAPIAnalizeProcessamentoFaturas

        Try

            classAPIAnalizeProcessamentoFaturas.frmVerifContaGBNovo = Me

            result = classAPIAnalizeProcessamentoFaturas.Refaturamento("FORM", , istrTabela, idblPercentual,)

            If result = True Then
                MessageBox.Show("Analise da Fatura foi realizada com sucesso.", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Exit Sub
            Else
                MessageBox.Show("Ocorreu um erro ao realizar a analise da Fatura refaturada.", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Exit Sub
            End If


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

    End Sub

    Private Sub cmdBuscaRotSel_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles btn_Faturamento_Normal_Por_Selecao_Rotas_Buscar.Click

        'Conferido em 15/06/2015
        Dim llngIdx As Integer
        Dim lblSele As Boolean

        Dim classAPIAnalizeProcessamentoFaturas As New classAPIAnalizeProcessamentoFaturas

        Try

            classAPIAnalizeProcessamentoFaturas.frmVerifContaGBNovo = Me
            '
            lblSele = False
            '
            With Me.lvw_Faturamento_Normal_Por_Selecao_Rotas_Dados
                For llngIdx = 1 To .Items.Count
                    If .Items.Item(llngIdx).Checked = True Then
                        lblSele = True
                    End If
                Next llngIdx
            End With
            '
            If lblSele Then

                classAPIAnalizeProcessamentoFaturas.BuscaDados("FORM",,,,,,,,,)
            Else
                '' MDcomum.LimpaCamposObjeto((Me.fmeTotal))
                '
                LigDesBotoes(False, False, False, False, True, True, False)
                LigDesCampo(True, False)
                MsgBox("Favor selecione ao menos uma rota!", MsgBoxStyle.Exclamation)
                Me.lvw_Faturamento_Normal_Por_Selecao_Rotas_Dados.Focus()
            End If

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

    End Sub

    Private Sub cmdRFImprimrFatura_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles btn_Refaturamento_Imprimr_Fatura.Click

        Dim sIdentificacao As String

        Dim ifrmimpFaturas As New frmImpFaturas
        Dim classAPIGerarFaturas As New classAPIGerarFaturas

        Try

            If idblNumNf > 0 Then
                Me.btn_Refaturamento_Calcular.Enabled = False
                Me.btn_Refaturamento_Imprimr_Fatura.Enabled = False
                Me.btn_Refaturamento_Fatura_Final_Fechar.Enabled = False

                frmImpFaturas.chkFaturaEmail.Checked = IIf(txt_Refaturamento_email.Text = "S", True, False)
                sIdentificacao = txt_Refaturamento_Zona.Text & "." & txt_Refaturamento_Livro.Text & "." & txt_Refaturamento_Conta.Text
                classAPIGerarFaturas.frmImpFaturas = ifrmimpFaturas
                classAPIGerarFaturas.GeraFaturaGrupoB("FORM", 0, istrMesAnoFat, idblNumNf,, "nftransicao", sIdentificacao, idblNumNf, "")
                Me.btn_Refaturamento_Calcular.Enabled = True
                Me.btn_Refaturamento_Imprimr_Fatura.Enabled = True
                Me.btn_Refaturamento_Fatura_Final_Fechar.Enabled = True
            Else
                MsgBox("É necessário calcular para poder imprimir a fatura.", MsgBoxStyle.Exclamation)
            End If

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

    End Sub

    Private Sub cmdRFCalcular_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles btn_Refaturamento_Calcular.Click

        Dim result As Boolean

        Dim classAPIAnalizeProcessamentoFaturas As New classAPIAnalizeProcessamentoFaturas

        Try

            classAPIAnalizeProcessamentoFaturas.frmVerifContaGBNovo = Me

            result = classAPIAnalizeProcessamentoFaturas.ReCalcularFaturaNormal("FORM", istrMesAnoFat, istrTabela, idblPercentual,)

            If result = True Then
                MessageBox.Show("Fatura normal recalculada com sucesso.", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Exit Sub
            Else
                MessageBox.Show("Ocorreu um erro ao realizar o recalculo da fatura normal.", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Exit Sub
            End If


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


    End Sub
    Private Sub cmdRFFechar_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles btn_Refaturamento_Fatura_Final_Fechar.Click

        Try
            SetConfig("processamento.fatura", "String", "",, "Processamento de Faturas")
            Me.Close()
        Catch ex As Exception
            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: cmdRFFechar_Click" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub cmdAnalizar_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles btn_Faturamento_Normal_Analizar.Click

        Dim result As Boolean

        Dim classAPIAnalizeProcessamentoFaturas As New classAPIAnalizeProcessamentoFaturas

        Try

            classAPIAnalizeProcessamentoFaturas.frmVerifContaGBNovo = Me

            result = classAPIAnalizeProcessamentoFaturas.AnalizarFaturaNormal("FORM", istrMesAnoFat, istrTabela, idblPercentual,,,,,,,,,,)

            If result = True Then
                MessageBox.Show("Fatura normal analizada com sucesso.", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Exit Sub
            Else
                MessageBox.Show("Ocorreu um erro ao realizar a analize da fatura normal.", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Exit Sub
            End If


        Catch ex As Exception
            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: cmdAnalizar_Click" & "", "Aviso de 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 btn_Faturamento_Normal_Imprimir.Click

        Dim strsql As String
        ''Dim fr As New FrmRelatorio
        Dim strAux As String
        Dim strAux1 As String
        Dim strAux2 As String
        Dim strEmpNome As String
        Dim strTemp As String
        Dim strZLC As String
        Dim strRota As String
        Dim strMedidor As String
        Dim strNome As String
        Dim strEndereco As String
        Dim strSituacao As String
        Dim strConsumo11 As String
        Dim strConsumo10 As String
        Dim strConsumo09 As String
        Dim strConsumo08 As String
        Dim strConsumo07 As String
        Dim strConsumo06 As String
        Dim strConsumo1 As String
        Dim strConsumo2 As String
        Dim strConsumo3 As String
        Dim strOcorrencia As String
        Dim dblConsumo As Double
        Dim dblMedia As Double
        Dim dblAbaixoM As Double
        Dim dblAcimaM As Double
        Dim dblLeitAnt As Double
        Dim dblLeitAtu As Double
        Dim dblconst As Double
        Dim dblKvarhV As Double
        Dim dblKvarhAtual As Double
        Dim lblContinua As Boolean

        'Dim lrstLeitura As ADODB.Recordset
        'Dim lrstConsumos As ADODB.Recordset
        'lrstLeitura = New ADODB.Recordset
        'lrstConsumos = New ADODB.Recordset

        Dim dt As DataTable
        Dim dt1 As DataTable

        Dim objAtualizaBancoDados As New entidadeAtualizaBancoDados
        Dim repositorioAtualizaBancoDados As New repositorioAtualizaBancoDados

        Try

            Me.Cursor = System.Windows.Forms.Cursors.WaitCursor
            LigDesBotoes(False, False, False, False, False, False, False)
            LigDesCampo(False, False)


            ProgressBar.Value = 0
            ProgressBar.Minimum = 0
            System.Windows.Forms.Application.DoEvents()
            lblContinua = True
            strsql = "SELECT * FROM " & istrTabela & " " & " ORDER BY rota asc, zlc ASC"

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

            If dt.Rows.Count <> 0 Then
                For Each row As DataRow In dt.Rows
                    strZLC = Trim(row("zlc"))
                    strRota = IIf(IsDBNull(row("ROTA")), "", row("ROTA"))
                    dblLeitAnt = Arredondar(IIf(IsDBNull(row("leitant")) Or Len(Trim(row("leitant"))) = 0, 0, row("leitant")), 0)
                    dblLeitAtu = Arredondar(IIf(IsDBNull(row("leitatu")) Or Len(Trim(row("leitatu"))) = 0, 0, row("leitatu")), 0)
                    dblconst = IIf(IsDBNull(row("Const")), "0", row("Const"))
                    strMedidor = IIf(IsDBNull(row("medidor")), "", row("medidor"))
                    strNome = Microsoft.VisualBasic.Left(IIf(IsDBNull(row("nome")), "", row("nome")), 50)
                    strEndereco = Microsoft.VisualBasic.Left(IIf(IsDBNull(row("endereco")), "", row("endereco")), 90)
                    dblMedia = IIf(IsDBNull(row("media")), 0, row("media"))
                    dblAcimaM = IIf(IsDBNull(row("acimam")), 0, row("acimam"))
                    dblAbaixoM = IIf(IsDBNull(row("abaixom")), 0, row("abaixom"))
                    dblConsumo = IIf(IsDBNull(row("consumo")), 0, row("consumo"))
                    dblKvarhV = IIf(IsDBNull(row("KvarhAnt")), 0, row("KvarhAnt"))
                    dblKvarhAtual = IIf(IsDBNull(row("KvarhAnt")), 0, row("KvarhAnt"))
                    strOcorrencia = Format(IIf(IsDBNull(row("ocorrenc")), "", row("ocorrenc")), "000")
                    strSituacao = IIf(IsDBNull(row("situacao")), "", row("situacao"))

                    If strSituacao = "C" Or strSituacao = "D" Or strSituacao = "I" Or strSituacao = "N" Then
                        If dblLeitAtu = 0 And dblConsumo = 0 Then
                            lblContinua = False
                        Else
                            lblContinua = True
                        End If
                    Else
                        lblContinua = True
                    End If

                    If lblContinua Then
                        strsql = ""
                        strsql = strsql & "SELECT * "
                        strsql = strsql & "  FROM `consumos` "
                        strsql = strsql & " WHERE `zona` = '" & Microsoft.VisualBasic.Left(Replace(strZLC, ".", ""), 3) & "' "
                        strsql = strsql & "   AND `livro` = '" & Mid(Replace(strZLC, ".", ""), 4, 2) & "' "
                        strsql = strsql & "   AND `conta` = '" & Microsoft.VisualBasic.Right(Replace(strZLC, ".", ""), 6) & "' "


                        objAtualizaBancoDados.QUERY_NAME = strsql
                        dt1 = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)

                        If dt1.Rows.Count <> 0 Then
                            For Each row1 As DataRow In dt1.Rows
                                strConsumo11 = Microsoft.VisualBasic.Right("        " & Val(Replace(IIf(IsDBNull(row1("consumo11")), "", row1("consumo11")), "*", "")), 8)
                                strConsumo10 = Microsoft.VisualBasic.Right("        " & Val(Replace(IIf(IsDBNull(row1("consumo10")), "", row1("consumo10")), "*", "")), 8)
                                strConsumo09 = Microsoft.VisualBasic.Right("        " & Val(Replace(IIf(IsDBNull(row1("consumo9")), "", row1("consumo9")), "*", "")), 8)
                                strConsumo08 = Microsoft.VisualBasic.Right("        " & Val(Replace(IIf(IsDBNull(row1("consumo8")), "", row1("consumo8")), "*", "")), 8)
                                strConsumo07 = Microsoft.VisualBasic.Right("        " & Val(Replace(IIf(IsDBNull(row1("consumo7")), "", row1("consumo7")), "*", "")), 8)
                                strConsumo06 = Microsoft.VisualBasic.Right("        " & Val(Replace(IIf(IsDBNull(row1("consumo6")), "", row1("consumo6")), "*", "")), 8)
                                strConsumo1 = strConsumo11 & "   " & strConsumo10
                                strConsumo2 = strConsumo09 & "   " & strConsumo08
                                strConsumo3 = strConsumo07 & "   " & strConsumo06
                            Next

                        Else
                            strConsumo1 = ""
                            strConsumo2 = ""
                            strConsumo3 = ""
                        End If


                        strsql = ""
                        strsql += "insert into AUX_CONSUMIDORVARIAVEL set "
                        strsql += "NOME = '" & strNome & "',  "
                        strsql += "ENDERECO = '" & strEndereco & "',  "
                        strsql += "SEQUENCIA = '123',  "
                        strsql += "IDENTIFICACAO = '" & strZLC & "',  "
                        strsql += "LEITURAATUAL = '" & dblLeitAtu & "',  "
                        strsql += "LEITURAANTERIOR = '" & dblLeitAnt & "',  "
                        strsql += "CONSUMO = '" & dblConsumo & "',  "
                        strsql += "MEDIA = '" & dblMedia & "',  "
                        strsql += "ULTIMO6CONSUMO = '" & strNome & "',  "
                        strsql += "LIMITEMAIOR = '" & dblAcimaM & "',  "
                        strsql += "LIMITEMENOR = '" & dblAbaixoM & "',  "
                        strsql += "MEDIDORCONST = '" & strMedidor & "',  "
                        strsql += "OCORRENCIA = '" & strOcorrencia & "'  "
                        objExecAtualizaBancoDados.QUERY_NAME = strsql
                        repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)

                    End If

                    ''''''******************* CHAMAR CRISTAL
                    ProgressBar.Value = ProgressBar.Value + 1
                    System.Windows.Forms.Application.DoEvents()
                Next


                Call sDadosEmpresa(LImagem, sNomeEmpresa, sEnderecoEmpresa, sCepEmpresa, sCidadeEmpresa, sUFempresa, sBairroEmpresa, sFoneEmpresa, sWebEmpresa)
                lPrint("rptRelConsVar")

            Else
                MessageBox.Show("Não foi encontrado registro!", "Aviso do sistema", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If

            LigDesBotoes(True, True, True, True, True, True, True)
            LigDesCampo(True, True)
            Me.Cursor = System.Windows.Forms.Cursors.Default


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

    End Sub

    Private Sub btn_Faturamento_Normal_Imprimir_Avisos_Click(sender As Object, e As EventArgs) Handles btn_Faturamento_Normal_Imprimir_Avisos.Click

        Try

            Call sDadosEmpresa(LImagem, sNomeEmpresa, sEnderecoEmpresa, sCepEmpresa, sCidadeEmpresa, sUFempresa, sBairroEmpresa, sFoneEmpresa, sWebEmpresa)
            lPrint("rpt_Aviso_Anal")

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

    End Sub


#End Region

#Region "Métodos"

#End Region


    'Private Sub dtpRFLeitAnt_Change(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles dtpRFLeitAnt.Change
    '	Me.txtRFDiasConsumo.Text = CStr(DateDiff(Microsoft.VisualBasic.DateInterval.Day, Me.dtpRFLeitAnt.Value, Me.dtpRFLeitAtu.Value, FirstDayOfWeek.Sunday, FirstWeekOfYear.Jan1))
    'End Sub

    'Private Sub dtpRFLeitAnt_ClickEvent(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles dtpRFLeitAnt.ClickEvent
    '	Me.txtRFDiasConsumo.Text = CStr(DateDiff(Microsoft.VisualBasic.DateInterval.Day, Me.dtpRFLeitAnt.Value, Me.dtpRFLeitAtu.Value, FirstDayOfWeek.Sunday, FirstWeekOfYear.Jan1))
    'End Sub

    'Private Sub dtpRFLeitAtu_Change(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles dtpRFLeitAtu.Change
    '	Me.txtRFDiasConsumo.Text = CStr(DateDiff(Microsoft.VisualBasic.DateInterval.Day, Me.dtpRFLeitAnt.Value, Me.dtpRFLeitAtu.Value, FirstDayOfWeek.Sunday, FirstWeekOfYear.Jan1))
    'End Sub

    'Private Sub dtpRFLeitAtu_ClickEvent(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles dtpRFLeitAtu.ClickEvent
    '	Me.txtRFDiasConsumo.Text = CStr(DateDiff(Microsoft.VisualBasic.DateInterval.Day, Me.dtpRFLeitAnt.Value, Me.dtpRFLeitAtu.Value, FirstDayOfWeek.Sunday, FirstWeekOfYear.Jan1))
    'End Sub

    'Private Function CabecaRel33(ByRef vsCab As AxVSVIEW6.AxVSPrinter) As Object
    '	Dim strMes As String

    '	strMes = Retorna_Mes(CByte(Mid(istrMesAnoFat, 1, 2)))

    '	vsCab.TableBorder = VSVIEW6.TableBorderSettings.tbNone
    '	vsCab.BrushColor = System.Drawing.Color.White
    '	vsCab.DrawRectangle("7mm", "10mm", "202mm", "30mm", "1mm")
    '	vsCab.BrushColor = System.Drawing.ColorTranslator.FromOle(&HE0E0E0)
    '	vsCab.DrawRectangle("37mm", "10mm", "165mm", "30mm")
    '	vsCab.DrawPicture(System.Drawing.Image.FromFile(My.Application.Info.DirectoryPath & "\" & GetConfig("ARQUIVO_LOGOTIPO")), "10mm", "11mm", "22mm", "18mm")
    '	vsCab.Font = VB6.FontChangeSize(vsCab.Font, 10)
    '	vsCab.Font = VB6.FontChangeBold(vsCab.Font, True)
    '	vsCab.CurrentY = "11mm"
    '	vsCab.Table = "<30mm|^128mm|>35mm;|" & gstrEmpresa_Nome & "|" & Format(Today, "dd/mm/yyyy")
    '	vsCab.Font = VB6.FontChangeBold(vsCab.Font, False)
    '	vsCab.Table = "<30mm|^128mm|>35mm;|" & "Relatório de consumidores da rota " & cmbRotaIni.Text & " até " & cmbRotaFim.Text & "|" & Format(TimeOfDay, "HH:mm")
    '	vsCab.Table = "<30mm|^128mm|>35mm;|" & "Consumo variado em " & (idblPercentual * 100) & "% - Faturamento : " & "|" & "Pag.:" & Format(vsCab.PageCount, "000")
    '	vsCab.Font = VB6.FontChangeBold(vsCab.Font, True)
    '	vsCab.Font = VB6.FontChangeSize(vsCab.Font, 9)

    '	'TituCab
    '	vsCab.Table = "<30mm|^128mm;|" & "Mês/Ano: " & strMes & "/" & Microsoft.VisualBasic.Right(istrMesAnoFat, 4)
    '	vsCab.Font = VB6.FontChangeBold(vsCab.Font, False)
    '	vsCab.Font = VB6.FontChangeSize(vsCab.Font, 8)
    '	vsCab.Table = "<30mm|^128mm;|"

    '	 LineFeed(vsCab, 1)

    '	vsCab.TableBorder = VSVIEW6.TableBorderSettings.tbAll
    '	vsCab.Table = "<63mm|^22mm|^20mm|^15mm|^11mm|^35mm|^14mm|^15mm;" & "Nome" & Chr(13) & "Endereço|Seqüência" & Chr(13) & "Identificação|Leituras" & Chr(13) & "Atual" & Chr(13) & "Anterior|" & "Consumo" & Chr(13) & "KvarhAtu" & Chr(13) & "kvarhAnt|Média|Ultimos 6" & Chr(13) & "Consumos|Limite" & Chr(13) & "Maior" & Chr(13) & "Menor|Medidor" & Chr(13) & "Const" & Chr(13) & "Ocorr."
    'End Function

    'Private Sub cmdImpAvisos_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdImpAvisos.Click
    '	Dim fr As New FrmRelatorio
    '	If Len(Trim(VB6.GetItemString(Avisos, 0))) > 0 Then
    '		Me.Cursor = System.Windows.Forms.Cursors.WaitCursor
    '		' LigDesBotoes(False, False, False, False, False, False, False)
    '		' LigDesCampo(False, False)

    '		fr.quem_chama = Me
    '		fr.VS.Font = VB6.FontChangeName(fr.VS.Font, "Arial")
    '		fr.VS.TableBorder = VSVIEW6.TableBorderSettings.tbNone
    '		fr.VS.PageBorder = VSVIEW6.TableBorderSettings.tbNone
    '		fr.VS.Orientation = VSVIEW6.OrientationSettings.orPortrait
    '		fr.VS.PhysicalPage = True
    '		fr.VS.PaperSize = VSVIEW6.PaperSizeSettings.pprA4
    '		fr.VS.MarginTop = "7mm"
    '		fr.VS.MarginRight = "7mm"
    '		fr.VS.MarginLeft = "7mm"
    '		fr.VS.MarginBottom = "5mm"
    '		fr.VS.TextColor = System.Drawing.Color.Black
    '		fr.VS.BrushStyle = VSVIEW6.BrushStyleSettings.bsSolid
    '		fr.VS.StartDoc()

    '		 RelaAvisos((fr.VS))

    '		fr.VS.EndDoc()
    '		fr.Show()

    '		'  LigDesBotoes(True, True, True, True, True, True, True)
    '		'  LigDesCampo(True, True)

    '		Me.Cursor = System.Windows.Forms.Cursors.Default
    '	Else
    '		MsgBox("Não há avisos para serem impressos!", MsgBoxStyle.Information)
    '	End If
    'End Sub

    'Private Sub RelaAvisos(ByRef aVs As AxVSVIEW6.AxVSPrinter)
    '	Dim strMes As String
    '	Dim strAux As String
    '	Dim strAux2 As String
    '	Dim strTemp As String
    '	Dim lngLinha As Integer

    '	ProgressBar.Minimum = 0
    '	ProgressBar.Value = 0
    '	System.Windows.Forms.Application.DoEvents()
    '	ProgressBar.Maximum = Avisos.Items.Count

    '	strMes = Retorna_Mes(CByte(Mid(istrMesAnoFat, 1, 2)))
    '	If Trim(VB6.GetItemString(Avisos, 0)) = "Iniciando a Analise dos dados" Then
    '		strAux = "Listagem da ánalise do Grupo B da rota: " & cmbRotaIni.Text & " até " & cmbRotaFim.Text
    '	ElseIf Trim(VB6.GetItemString(Avisos, 0)) = "Iniciando o Processamento Financeiro" Then
    '		strAux = "Listagem do processo do Grupo B da rota: " & cmbRotaIni.Text & " até " & cmbRotaFim.Text
    '	End If
    '	strAux2 = "Período de leitura Faturamento : " & strMes & "/" & Microsoft.VisualBasic.Right(istrMesAnoFat, 4)

    '	 Cabecalho_Relatorio(aVs, strAux, strAux2, "2",  , "Avisos")
    '	 LineFeed(aVs, 2)
    '	aVs.Font = VB6.FontChangeBold(aVs.Font, True)
    '	aVs.BrushColor = System.Drawing.Color.White
    '	aVs.Font = VB6.FontChangeSize(aVs.Font, 8)
    '	strTemp = "<10mm|<300mm;|Descrição dos avisos"
    '	aVs.Table = strTemp
    '	aVs.Font = VB6.FontChangeBold(aVs.Font, False)
    '	For lngLinha = 1 To Avisos.Items.Count - 2
    '		strTemp = "<10mm|<300mm;|" & VB6.GetItemString(Avisos, lngLinha)
    '		aVs.Table = strTemp
    '		If aVs.CurrentLine > 160 Then
    '			aVs.NewPage()
    '			aVs.CurrentLine = 1
    '			 Cabecalho_Relatorio(aVs, strAux, strAux2, "2",  , "Avisos")
    '			 LineFeed(aVs, 2)
    '			aVs.Font = VB6.FontChangeBold(aVs.Font, True)
    '			aVs.BrushColor = System.Drawing.Color.White
    '			aVs.Font = VB6.FontChangeSize(aVs.Font, 8)
    '			strTemp = "<10mm|<300mm;|Descrição dos avisos"
    '			aVs.Table = strTemp
    '			aVs.Font = VB6.FontChangeBold(aVs.Font, False)
    '		End If
    '		ProgressBar.Value = ProgressBar.Value + 1
    '		System.Windows.Forms.Application.DoEvents()
    '	Next lngLinha
    'End Sub

    Private Sub cmdProcessar_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles btn_Faturamento_Normal_Processar.Click

        Dim result As Boolean

        Dim classAPIAnalizeProcessamentoFaturas As New classAPIAnalizeProcessamentoFaturas

        Try

            classAPIAnalizeProcessamentoFaturas.frmVerifContaGBNovo = Me

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

            iintTipoFaturamento = 0

            LigDesBotoes(False, False, False, False, False, False, False)

            LigDesCampo(False, False)

            lsb_Faturamento_Normal_Avisos.Items.Clear()

            SetAvisos("Iniciando o Processamento Financeiro... ")

            'iintBanderiaVigente = BuscaBandeira(CDate("01/" & istrMesAnoFat), idteBandeira)

            result = classAPIAnalizeProcessamentoFaturas.CalcularFaturaNormal("FORM", istrMesAnoFat, istrTabela, idblPercentual,,,, IIf(rbt_Faturamento_Normal_Individual.Checked, True, False),,,,,,)

            If result = True Then
                MessageBox.Show("Fatura normal calculada com sucesso.", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Else
                MessageBox.Show("Ocorreu um erro ao realizar o calculo da fatura normal.", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If

            LigDesBotoes(False, False, False, False, True, False, True)
            LigDesCampo(True, False)

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

            btn_Faturamento_Normal_Fechar.Focus()


        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 Function PegaMovimentacaoGD(ByVal astrZona As String, ByVal astrLivro As String, ByVal astrConta As String, ByVal alngConsId As Long, ByVal alngUnidId As Long, ByVal adteFatur As Date) As Double

        Dim objAtualizaBancoDados As New entidadeAtualizaBancoDados
        Dim repositorioAtualizaBancoDados As New repositorioAtualizaBancoDados
        Dim dt As DataTable
        Dim lstrSql As String = ""
        Dim ldblSaldoAtualMov As Double = 0

        lstrSql = lstrSql & "SELECT sum(valor) totalvalor"
        lstrSql = lstrSql & "  FROM `gd_movimentacao` "
        lstrSql = lstrSql & " WHERE `zona` = '" & astrZona & "' "
        lstrSql = lstrSql & "   AND `livro` = '" & astrLivro & "' "
        lstrSql = lstrSql & "   AND `conta` = '" & astrConta & "' "
        lstrSql = lstrSql & "   AND `cons_id` = " & alngConsId & " "
        lstrSql = lstrSql & "   AND `unid_id` = " & alngUnidId & " "
        lstrSql = lstrSql & "   AND `codigo` = 2 "
        lstrSql = lstrSql & "   AND `anomes_fat` = '" & Format(adteFatur, "yyyyMM") & "' "
        objAtualizaBancoDados.QUERY_NAME = lstrSql
        dt = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)

        If dt.Rows.Count <> 0 Then
            For Each row As DataRow In dt.Rows
                ldblSaldoAtualMov = IIf(IsDBNull(row("totalvalor")), 0, row("totalvalor")) * -1
            Next
        End If

        PegaMovimentacaoGD = ldblSaldoAtualMov

    End Function

    Public Sub LigDesCampo(ByRef abRota As Boolean, ByRef abDatas As Boolean)
        cbx_Faturamento_Normal_Por_Faixa_Rotas_Inicio.Enabled = abRota
        cbx_Faturamento_Normal_Por_Faixa_Rotas_Termino.Enabled = abRota
        Me.dtp_Faturamento_Normal_Data_Leitura_Anterior.Enabled = abDatas
        Me.dtp_Faturamento_Normal_Data_Faturamento.Enabled = abDatas
        Me.dtp_Faturamento_Normal_Data_Apresenta.Enabled = abDatas
        Me.dtp_Faturamento_Normal_Data_Vencimento.Enabled = abDatas
        Me.dtp_Faturamento_Normal_Data_Vencimentoo_Poder_Publico.Enabled = abDatas
        Me.dtp_Faturamento_Normal_Data_Proxima_Leitura.Enabled = abDatas

        If abRota Then
            cbx_Faturamento_Normal_Por_Faixa_Rotas_Inicio.BackColor = System.Drawing.ColorTranslator.FromOle(&H80000005)
            cbx_Faturamento_Normal_Por_Faixa_Rotas_Termino.BackColor = System.Drawing.ColorTranslator.FromOle(&H80000005)
        Else
            cbx_Faturamento_Normal_Por_Faixa_Rotas_Inicio.BackColor = System.Drawing.ColorTranslator.FromOle(&H8000000F)
            cbx_Faturamento_Normal_Por_Faixa_Rotas_Termino.BackColor = System.Drawing.ColorTranslator.FromOle(&H8000000F)
        End If
    End Sub

    Public Function LigDesBotoes(ByVal abAnalizar As Boolean, ByVal abImprimir As Boolean, ByVal abTarifa As Boolean, ByVal abProcessar As Boolean, ByVal abFechar As Boolean, Optional ByVal abBuscar As Boolean = False, Optional ByRef abAvisos As Boolean = False) As Object
        Me.btn_Faturamento_Normal_Analizar.Enabled = abAnalizar
        Me.btn_Faturamento_Normal_Imprimir.Enabled = abImprimir
        Me.btn_Faturamento_Normal_Processar.Enabled = abProcessar
        Me.btn_Faturamento_Normal_Fechar.Enabled = abFechar
        Me.btn_Faturamento_Normal_Por_Faixa_Rotas_Buscar.Enabled = abBuscar
        Me.btn_Faturamento_Normal_Imprimir_Avisos.Enabled = abAvisos
        System.Windows.Forms.Application.DoEvents()
    End Function

    Private Sub FrmVerifContaGBNovo_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
        Dim KeyAscii As Short = Asc(eventArgs.KeyChar)

        Try

            Select Case KeyAscii
                Case System.Windows.Forms.Keys.Return
                    TabEnter(KeyAscii, eventArgs)
                Case System.Windows.Forms.Keys.Escape
                    Me.Close()
            End Select
            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 FrmVerifContaGBNovo_MouseUp(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseUp
    ''	Dim Button As Short = eventArgs.Button \ &H100000
    ''	Dim Shift As Short = System.Windows.Forms.Control.ModifierKeys \ &H10000
    ''	Dim X As Single = VB6.PixelsToTwipsX(eventArgs.X)
    ''	Dim Y As Single = VB6.PixelsToTwipsY(eventArgs.Y)
    ''	If (X >= 6800 And X <= 7000) Then
    ''		If Shift = 1 And Button = 1 Then
    ''			Me.Width = VB6.TwipsToPixelsX(11475)
    ''			CenterForm(Me)
    ''			GradeItensTarifab.Visible = True
    ''		ElseIf Shift = 1 And Button = 2 Then
    ''			Me.Width = VB6.TwipsToPixelsX(7095)
    ''			CenterForm(Me)
    ''			GradeItensTarifab.Visible = False
    ''		End If
    ''	End If
    ''End Sub

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

        'Dropa a tabela temporaria do relatorio fatb33 caso exista
        Dim objTempFatB33 As New entidadeTempFatB33
        Dim repositorioTempFatB33 As New repositorioTempFatB33

        'Dropa a tabela temporaria 
        objTempFatB33.TABLE = istrTabela
        repositorioTempFatB33.Execute_1(objTempFatB33)

        objExecAtualizaBancoDados.QUERY_NAME = "DROP TABLE IF EXISTS AUX_CONSUMIDORVARIAVEL"
        repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)

        objExecAtualizaBancoDados.QUERY_NAME = "DROP TABLE IF EXISTS AUX_AVISO_ANALISE"
        repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)

        sCriaTabelaAuxiliares()

    End Sub

    Private Sub dtpApresenta_Leave(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles dtp_Faturamento_Normal_Data_Apresenta.Leave

        Dim classAPIAnalizeProcessamentoFaturas As New classAPIAnalizeProcessamentoFaturas

        classAPIAnalizeProcessamentoFaturas.frmVerifContaGBNovo = Me

        If Me.dtp_Faturamento_Normal_Data_Apresenta.Enabled = True Then
            'UPGRADE_WARNING: DateDiff behavior may be different. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6B38EC3F-686D-4B2E-B5A5-9E8E7A762E32"'
            If DateDiff(Microsoft.VisualBasic.DateInterval.Day, CDate(Me.dtp_Faturamento_Normal_Data_Faturamento.Value), CDate(Me.dtp_Faturamento_Normal_Data_Apresenta.Value)) < 0 Then
                MsgBox("Data do faturamento esta maior que a data da apresentação !", MsgBoxStyle.Exclamation)
                Me.dtp_Faturamento_Normal_Data_Faturamento.Focus()
            End If
            Me.dtp_Faturamento_Normal_Data_Vencimentoo_Poder_Publico.Value = classAPIAnalizeProcessamentoFaturas.BuscaDtVcto(Me.dtp_Faturamento_Normal_Data_Apresenta.Value, CStr(6))
        End If

    End Sub

    Private Sub dtpVectoPP_Leave(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles dtp_Faturamento_Normal_Data_Vencimentoo_Poder_Publico.Leave

        Dim classAPIAnalizeProcessamentoFaturas As New classAPIAnalizeProcessamentoFaturas

        Dim ldteAux As Date

        classAPIAnalizeProcessamentoFaturas.frmVerifContaGBNovo = Me

        If Me.dtp_Faturamento_Normal_Data_Vencimentoo_Poder_Publico.Enabled = True Then
            'Busca a menor data permitida apartir da data de apresentacao para o Poder Publico
            ldteAux = classAPIAnalizeProcessamentoFaturas.BuscaDtVcto(Me.dtp_Faturamento_Normal_Data_Apresenta.Value, CStr(6))
            'Não deixa informar uma data de vencimento publico menor que a permitida
            If DateDiff(Microsoft.VisualBasic.DateInterval.Day, CDate(ldteAux), CDate(Me.dtp_Faturamento_Normal_Data_Vencimentoo_Poder_Publico.Value)) < 0 Then
                MsgBox("A data do vencimento público não pode ser menor que 10 dias úteis a partir da data de apresentação! Res. 456/2000 Art. 86 Inciso II", MsgBoxStyle.Exclamation)
                Me.dtp_Faturamento_Normal_Data_Vencimentoo_Poder_Publico.Value = ldteAux
                Me.dtp_Faturamento_Normal_Data_Vencimentoo_Poder_Publico.Focus()
            End If
        End If

    End Sub

    Private Sub dtpVencto_Leave(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles dtp_Faturamento_Normal_Data_Vencimento.Leave

        Dim classAPIAnalizeProcessamentoFaturas As New classAPIAnalizeProcessamentoFaturas

        Dim ldteAux As Date
        Dim intDias As Short

        classAPIAnalizeProcessamentoFaturas.frmVerifContaGBNovo = Me

        If Me.dtp_Faturamento_Normal_Data_Vencimento.Enabled = True Then
            'Busca a menor data permitida apartir da data de apresentacao para as classes normais
            ldteAux = classAPIAnalizeProcessamentoFaturas.BuscaDtVcto(Me.dtp_Faturamento_Normal_Data_Apresenta.Value, CStr(0))
            'UPGRADE_WARNING: DateDiff behavior may be different. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6B38EC3F-686D-4B2E-B5A5-9E8E7A762E32"'
            intDias = DateDiff(Microsoft.VisualBasic.DateInterval.Day, CDate(Me.dtp_Faturamento_Normal_Data_Leitura_Anterior.Value), CDate(Me.dtp_Faturamento_Normal_Data_Vencimento.Value))
            'Não deixa informar uma data das classes normais menor que a permitida
            'UPGRADE_WARNING: DateDiff behavior may be different. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6B38EC3F-686D-4B2E-B5A5-9E8E7A762E32"'
            If DateDiff(Microsoft.VisualBasic.DateInterval.Day, CDate(ldteAux), CDate(Me.dtp_Faturamento_Normal_Data_Vencimento.Value)) < 0 Then
                MsgBox("A data de vencimento normal não pode ser menor que 5 dias úteis a partir da data da apresentação! Res. 456/2000 Art. 86 Inciso I", MsgBoxStyle.Exclamation)
                Me.dtp_Faturamento_Normal_Data_Vencimento.Value = classAPIAnalizeProcessamentoFaturas.BuscaDtVcto(Me.dtp_Faturamento_Normal_Data_Apresenta.Value, CStr(0))
                Me.dtp_Faturamento_Normal_Data_Vencimento.Focus()
            ElseIf intDias < 27 And intDias > 33 Then
                MsgBox("Data do vencimento esta com limite de tolerância incorreto" & Chr(10) & "em relação a data da leitura anterior !", MsgBoxStyle.Exclamation)
                Me.dtp_Faturamento_Normal_Data_Vencimento.Focus()
            End If
        End If

    End Sub

    Private Sub cmdBuscar_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles btn_Faturamento_Normal_Por_Faixa_Rotas_Buscar.Click

        Dim classAPIAnalizeProcessamentoFaturas As New classAPIAnalizeProcessamentoFaturas

        classAPIAnalizeProcessamentoFaturas.frmVerifContaGBNovo = Me

        If Len(Trim(cbx_Faturamento_Normal_Por_Faixa_Rotas_Inicio.Text)) > 0 And Len(Trim(cbx_Faturamento_Normal_Por_Faixa_Rotas_Termino.Text)) > 0 Then
            classAPIAnalizeProcessamentoFaturas.BuscaDados("FORM",,,,,,,,,)
        Else
            '' MDcomum.LimpaCamposObjeto((Me.fmeTotal))

            LigDesBotoes(False, False, False, False, True, True, False)
            LigDesCampo(True, False)
            MsgBox("Favor informe as rotas!", MsgBoxStyle.Exclamation)
            cbx_Faturamento_Normal_Por_Faixa_Rotas_Inicio.Focus()
        End If

    End Sub

    Private Sub cmdFechar_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles btn_Faturamento_Normal_Fechar.Click
        SetConfig("processamento.fatura", "String", "",, "Processamento de Faturas")
        Me.Close()
    End Sub


    Public Function SetAvisos(ByRef astrTexto As String) As Object
        'Função para adicionar e ir percorrendo o list box a medida que vai adicionando
        lsb_Faturamento_Normal_Avisos.Items.Add(astrTexto)
        lsb_Faturamento_Normal_Avisos.SelectedIndex = lsb_Faturamento_Normal_Avisos.Items.Count - 1
        System.Windows.Forms.Application.DoEvents()
    End Function

    Private Sub cmbRotaIni_SelectedIndexChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cbx_Faturamento_Normal_Por_Faixa_Rotas_Inicio.SelectedIndexChanged
        Dim lintLinhas As Short

        For lintLinhas = 0 To Me.cbx_Faturamento_Normal_Por_Faixa_Rotas_Termino.Items.Count - 1
            If VB6.GetItemString(Me.cbx_Faturamento_Normal_Por_Faixa_Rotas_Termino, lintLinhas) = VB6.GetItemString(Me.cbx_Faturamento_Normal_Por_Faixa_Rotas_Inicio, Me.cbx_Faturamento_Normal_Por_Faixa_Rotas_Inicio.SelectedIndex) Then
                Me.cbx_Faturamento_Normal_Por_Faixa_Rotas_Termino.SelectedIndex = Me.cbx_Faturamento_Normal_Por_Faixa_Rotas_Inicio.SelectedIndex
                lintLinhas = Me.cbx_Faturamento_Normal_Por_Faixa_Rotas_Termino.Items.Count
            End If
        Next lintLinhas

    End Sub

    Private Sub PreencheRotas()
        Dim lstrAux As String
        Dim lstrSql As String
        Dim dt As DataTable
        Dim objAtualizaBancoDados As New entidadeAtualizaBancoDados
        Dim repositorioAtualizaBancoDados As New repositorioAtualizaBancoDados
        '

        lstrSql = "SELECT DISTINCT cast(LEFT(`rota`,4) as decimal) rota "
        lstrSql &= "  FROM `uc_faturamento` "
        lstrSql &= " WHERE `situacao` NOT IN('N','I') "
        lstrSql &= "   AND `rota` IS NOT NULL "
        lstrSql &= "   AND left(`grupo`,1) = 'B' "
        lstrSql &= "ORDER BY `rota` ASC "
        '
        objAtualizaBancoDados.QUERY_NAME = lstrSql
        dt = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)
        '
        If dt.Rows.Count <> 0 Then
            cbx_Faturamento_Normal_Por_Faixa_Rotas_Inicio.Items.Clear()
            cbx_Faturamento_Normal_Por_Faixa_Rotas_Termino.Items.Clear()
            For Each row As DataRow In dt.Rows
                lstrAux = Trim(IIf(IsDBNull(row("rota")), "", row("rota")))
                If lstrAux <> "" Then
                    'If IsNumeric(lstrAux) Then : lstrAux = Strings.Right(Strings.StrDup(10, " ") & Convert.ToDouble(lstrAux), 10) : End If
                    cbx_Faturamento_Normal_Por_Faixa_Rotas_Inicio.Items.Add(lstrAux)
                    cbx_Faturamento_Normal_Por_Faixa_Rotas_Termino.Items.Add(lstrAux)
                End If
            Next
        End If

        If cbx_Faturamento_Normal_Por_Faixa_Rotas_Inicio.Items.Count > 0 Then
            cbx_Faturamento_Normal_Por_Faixa_Rotas_Inicio.SelectedIndex = 0
            cbx_Faturamento_Normal_Por_Faixa_Rotas_Termino.SelectedIndex = cbx_Faturamento_Normal_Por_Faixa_Rotas_Termino.Items.Count - 1
        End If
        System.Windows.Forms.Application.DoEvents()
    End Sub

    Private Sub mfgCancDados_ClickEvent(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles mfg_Refaturamento_Dados_Itens.ClickEvent
        With Me.mfg_Refaturamento_Dados_Itens
            If .Rows > 1 Then
                If .get_TextMatrix(.RowSel, 0) = "X" Then
                    .set_TextMatrix(.RowSel, 0, " ")
                Else
                    .set_TextMatrix(.RowSel, 0, "X")
                End If
            End If
        End With
    End Sub

    Private Sub optIndividual_CheckedChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles rbt_Faturamento_Normal_Individual.CheckedChanged
        If eventSender.Checked Then
            If Me.rbt_Faturamento_Normal_Individual.Checked Then
                Me.tb_Faturamento_Normal_Faturar_tp_Por_Selecao_Rota.Enabled = False
                Me.tb_Faturamento_Normal_Faturar_tp_Por_Rota.Enabled = False
                Me.tb_Faturamento_Normal_Faturar_tp_Individual.Enabled = True
                Me.tb_Faturamento_Normal_Faturar.SelectedTab = tb_Faturamento_Normal_Faturar_tp_Individual
                txt_Faturamento_Normal_Individual_Zona.Focus()
            End If
        End If
    End Sub

    Private Sub optPorRota_CheckedChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles rbt_Faturamento_Normal_Por_Rota.CheckedChanged
        If eventSender.Checked Then
            If rbt_Faturamento_Normal_Por_Rota.Checked Then
                Me.tb_Faturamento_Normal_Faturar_tp_Individual.Enabled = False
                Me.tb_Faturamento_Normal_Faturar_tp_Por_Selecao_Rota.Enabled = False
                Me.tb_Faturamento_Normal_Faturar_tp_Por_Rota.Enabled = True
                Me.tb_Faturamento_Normal_Faturar.SelectedTab = tb_Faturamento_Normal_Faturar_tp_Por_Rota
                cbx_Faturamento_Normal_Por_Faixa_Rotas_Inicio.Focus()
            End If
        End If
    End Sub

    Private Sub optPorSelRota_CheckedChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles rbt_Faturamento_Normal_Por_Selecao_Rota.CheckedChanged
        If eventSender.Checked Then
            If rbt_Faturamento_Normal_Por_Selecao_Rota.Checked Then
                Me.tb_Faturamento_Normal_Faturar_tp_Por_Rota.Enabled = False
                Me.tb_Faturamento_Normal_Faturar_tp_Individual.Enabled = False
                Me.tb_Faturamento_Normal_Faturar_tp_Por_Selecao_Rota.Enabled = True
                Me.tb_Faturamento_Normal_Faturar.SelectedTab = tb_Faturamento_Normal_Faturar_tp_Por_Selecao_Rota
                Me.lvw_Faturamento_Normal_Por_Selecao_Rotas_Dados.Focus()
            End If

        End If
    End Sub

    Private Sub txtCancMesAno_Enter(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Refaturamento_Mes_Ano_Nota_Fiscal.Enter
        With Me.txt_Refaturamento_Mes_Ano_Nota_Fiscal
            .Text = Replace(.Text, "/", "")
            .SelectionStart = 0
            .SelectionLength = Len(.Text)
        End With
    End Sub

    Private Sub txtCancMesAno_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles txt_Refaturamento_Mes_Ano_Nota_Fiscal.KeyPress
        Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
        'If KeyAscii <> System.Windows.Forms.Keys.Back And (KeyAscii < System.Windows.Forms.Keys.D0 Or KeyAscii > System.Windows.Forms.Keys.D9) Then
        '    KeyAscii = 0
        'End If
        'eventArgs.KeyChar = Chr(KeyAscii)
        'If KeyAscii = 0 Then
        '    eventArgs.Handled = True
        'End If
    End Sub

    'Private Sub txtCancMesAno_Leave(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txtCancMesAno.Leave
    '	With Me.txtCancMesAno
    '		.Text = ValidaMesAno(.Text)
    '	End With
    'End Sub

    Private Sub txtCancNumNf_Enter(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Refaturamento_Numero_Nota_Fiscal.Enter
        With Me.txt_Refaturamento_Numero_Nota_Fiscal
            .Text = CStr(CDbl(IIf(IsNumeric(.Text), .Text, 0)))
            .SelectionStart = 0
            .SelectionLength = Len(.Text)
        End With
    End Sub

    Private Sub txtCancNumNf_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles txt_Refaturamento_Numero_Nota_Fiscal.KeyPress
        Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
        If KeyAscii <> System.Windows.Forms.Keys.Back And (KeyAscii < System.Windows.Forms.Keys.D0 Or KeyAscii > System.Windows.Forms.Keys.D9) Then
            KeyAscii = 0
        End If
        eventArgs.KeyChar = Chr(KeyAscii)
        If KeyAscii = 0 Then
            eventArgs.Handled = True
        End If
    End Sub

    'Private Sub txtCancNumNf_Leave(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Refaturamento_Numero_Nota_Fiscal.Leave
    '    With Me.txt_Refaturamento_Numero_Nota_Fiscal
    '        .Text = Format(CDbl(IIf(IsNumeric(.Text), .Text, 0)), "###,###0")
    '    End With
    'End Sub

    Private Sub txtConta_Enter(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Faturamento_Normal_Individual_Conta.Enter
        Try

            With Me.txt_Faturamento_Normal_Individual_Conta
                .SelectionStart = 0
                .SelectionLength = Len(.Text)
            End With

        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 txtConta_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles txt_Faturamento_Normal_Individual_Conta.KeyPress
        Dim KeyAscii As Short = Asc(eventArgs.KeyChar)

        Try

            If KeyAscii <> 8 And (KeyAscii < 48 Or KeyAscii > 57) Then
                KeyAscii = 0
            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 txtConta_Leave(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Faturamento_Normal_Individual_Conta.Leave
        Try

            With Me.txt_Faturamento_Normal_Individual_Conta
                .Text = VB6.Format(.Text, "000000")
            End With

        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 txtFFConta_Enter(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Fatura_Final_Conta.Enter
        With Me.txt_Fatura_Final_Conta
            .SelectionStart = 0
            .SelectionLength = Len(.Text)
        End With
    End Sub

    Private Sub txtFFConta_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles txt_Fatura_Final_Conta.KeyPress
        Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
        If KeyAscii <> 8 And (KeyAscii < 48 Or KeyAscii > 57) Then KeyAscii = 0
        eventArgs.KeyChar = Chr(KeyAscii)
        If KeyAscii = 0 Then
            eventArgs.Handled = True
        End If
    End Sub

    Private Sub txtFFConta_Leave(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Fatura_Final_Conta.Leave
        Try

            With Me.txt_Fatura_Final_Conta
                .Text = VB6.Format(.Text, "000000")
            End With

        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 txtFFLivro_Enter(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Fatura_Final_Livro.Enter
        With Me.txt_Fatura_Final_Livro
            .SelectionStart = 0
            .SelectionLength = Len(.Text)
        End With
    End Sub

    Private Sub txtFFLivro_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles txt_Fatura_Final_Livro.KeyPress
        Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
        If KeyAscii <> 8 And (KeyAscii < 48 Or KeyAscii > 57) Then KeyAscii = 0
        eventArgs.KeyChar = Chr(KeyAscii)
        If KeyAscii = 0 Then
            eventArgs.Handled = True
        End If
    End Sub

    Private Sub txtFFLivro_Leave(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Fatura_Final_Livro.Leave
        Try
            With txt_Fatura_Final_Livro
                .Text = VB6.Format(.Text, "00")
            End With
        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 txtFFZona_Enter(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Fatura_Final_Zona.Enter
        With Me.txt_Fatura_Final_Zona
            .SelectionStart = 0
            .SelectionLength = Len(.Text)
        End With
    End Sub

    Private Sub txtFFZona_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles txt_Fatura_Final_Zona.KeyPress
        Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
        If KeyAscii <> 8 And (KeyAscii < 48 Or KeyAscii > 57) Then KeyAscii = 0
        eventArgs.KeyChar = Chr(KeyAscii)
        If KeyAscii = 0 Then
            eventArgs.Handled = True
        End If
    End Sub

    Private Sub txtFFZona_Leave(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Fatura_Final_Zona.Leave

        Try
            With txt_Fatura_Final_Zona
                .Text = VB6.Format(.Text, "000")
            End With
        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 txtLeitAtu_Enter(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Faturamento_Normal_Individual_Leittura_Atual.Enter
        txt_Faturamento_Normal_Individual_Leittura_Atual.SelectionStart = 0
        txt_Faturamento_Normal_Individual_Leittura_Atual.SelectionLength = Len(txt_Faturamento_Normal_Individual_Leittura_Atual.Text)
    End Sub

    Private Sub txtLeitAtu_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles txt_Faturamento_Normal_Individual_Leittura_Atual.KeyPress
        Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
        If KeyAscii <> 8 And (KeyAscii < 48 Or KeyAscii > 57) Then KeyAscii = 0
        eventArgs.KeyChar = Chr(KeyAscii)
        If KeyAscii = 0 Then
            eventArgs.Handled = True
        End If
    End Sub

    Private Sub txtLivro_Enter(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Faturamento_Normal_Individual_Livro.Enter
        Try

            With Me.txt_Faturamento_Normal_Individual_Livro
                .SelectionStart = 0
                .SelectionLength = Len(.Text)
            End With

        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 txtLivro_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles txt_Faturamento_Normal_Individual_Livro.KeyPress
        Dim KeyAscii As Short = Asc(eventArgs.KeyChar)

        Try

            If KeyAscii <> 8 And (KeyAscii < 48 Or KeyAscii > 57) Then
                KeyAscii = 0
            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 txtLivro_Leave(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Faturamento_Normal_Individual_Livro.Leave
        Try

            With Me.txt_Faturamento_Normal_Individual_Livro
                .Text = VB6.Format(.Text, "00")
            End With

        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 txtRFConstante_Enter(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Refaturamento_Fatura_Final_Constante.Enter
        With Me.txt_Refaturamento_Fatura_Final_Constante
            .Text = CStr(CDbl(IIf(IsNumeric(.Text), .Text, 0)))
            .SelectionStart = 0
            .SelectionLength = Len(.Text)
        End With

    End Sub

    Private Sub txtRFConstante_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles txt_Refaturamento_Fatura_Final_Constante.KeyPress
        Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
        If KeyAscii <> System.Windows.Forms.Keys.Back And (KeyAscii < System.Windows.Forms.Keys.D0 Or KeyAscii > System.Windows.Forms.Keys.D9) Then
            If KeyAscii = System.Windows.Forms.Keys.Delete Then
                KeyAscii = System.Windows.Forms.Keys.Snapshot
            End If
            If KeyAscii <> System.Windows.Forms.Keys.Snapshot Then
                KeyAscii = 0
            Else
                If InStr(1, Me.txt_Refaturamento_Fatura_Final_Constante.Text, ",") > 0 Then
                    KeyAscii = 0
                End If
            End If
        End If
        eventArgs.KeyChar = Chr(KeyAscii)
        If KeyAscii = 0 Then
            eventArgs.Handled = True
        End If
    End Sub

    Private Sub txtRFConstante_Leave(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Refaturamento_Fatura_Final_Constante.Leave

        Dim classAPIAnalizeProcessamentoFaturas As New classAPIAnalizeProcessamentoFaturas

        classAPIAnalizeProcessamentoFaturas.frmVerifContaGBNovo = Me

        With Me.txt_Refaturamento_Fatura_Final_Constante
            .Text = VB6.Format(.Text, "#,#####0.00000")
        End With

        If IsNumeric(Me.txt_Refaturamento_Fatura_Final_Leitura_Atual.Text) Then
            If IsNumeric(Me.txt_Refaturamento_Fatura_Final_Leitura_Anterior.Text) Then
                If IsNumeric(Me.txt_Refaturamento_Fatura_Final_Constante.Text) Then
                    Me.txt_Refaturamento_Fatura_Final_Consumo.Text = CStr(classAPIAnalizeProcessamentoFaturas.CalConsumoN(CDbl(Me.txt_Refaturamento_Fatura_Final_Leitura_Anterior.Text), CDbl(Me.txt_Refaturamento_Fatura_Final_Leitura_Atual.Text), CDbl(Me.txt_Refaturamento_Fatura_Final_Constante.Text), 0, "", "", "", 0, 0, 0, 0, 0))
                End If
            End If
        End If

    End Sub

    Private Sub txtRFConsumo_Enter(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Refaturamento_Fatura_Final_Consumo.Enter
        With Me.txt_Refaturamento_Fatura_Final_Consumo
            .Text = CStr(CDbl(IIf(IsNumeric(.Text), .Text, 0)))
            .SelectionStart = 0
            .SelectionLength = Len(.Text)
        End With
    End Sub

    Private Sub txtRFConsumo_Leave(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Refaturamento_Fatura_Final_Consumo.Leave
        With Me.txt_Refaturamento_Fatura_Final_Consumo
            .Text = VB6.Format(.Text, "###,###0")
        End With
    End Sub

    Private Sub txtRFDiasConsumo_TextChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Refaturamento_Fatura_Final_Dias_Consumo.TextChanged
        Dim classAPIAnalizeProcessamentoFaturas As New classAPIAnalizeProcessamentoFaturas

        classAPIAnalizeProcessamentoFaturas.frmVerifContaGBNovo = Me

        classAPIAnalizeProcessamentoFaturas.CalculaRFConsumos("FORM")

    End Sub

    Private Sub txtRFFaturado_Enter(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Refaturamento_Fatura_Final_Faturado.Enter
        With Me.txt_Refaturamento_Fatura_Final_Faturado
            .Text = CStr(CDbl(IIf(IsNumeric(.Text), .Text, 0)))
            .SelectionStart = 0
            .SelectionLength = Len(.Text)
        End With
    End Sub

    Private Sub txtRFFaturado_Leave(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Refaturamento_Fatura_Final_Faturado.Leave
        With Me.txt_Refaturamento_Fatura_Final_Faturado
            .Text = VB6.Format(.Text, "###,###0")
        End With
    End Sub

    Private Sub txtRFLeituraAnterior_Enter(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Refaturamento_Fatura_Final_Leitura_Anterior.Enter
        With Me.txt_Refaturamento_Fatura_Final_Leitura_Anterior
            .Text = CStr(CDbl(IIf(IsNumeric(.Text), .Text, 0)))
            .SelectionStart = 0
            .SelectionLength = Len(.Text)
        End With
    End Sub

    Private Sub txtRFLeituraAnterior_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles txt_Refaturamento_Fatura_Final_Leitura_Anterior.KeyPress
        Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
        If KeyAscii <> System.Windows.Forms.Keys.Back And (KeyAscii < System.Windows.Forms.Keys.D0 Or KeyAscii > System.Windows.Forms.Keys.D9) Then
            If KeyAscii = System.Windows.Forms.Keys.Delete Then
                KeyAscii = System.Windows.Forms.Keys.Snapshot
            End If
            If KeyAscii <> System.Windows.Forms.Keys.Snapshot Then
                KeyAscii = 0
            Else
                If InStr(1, Me.txt_Refaturamento_Fatura_Final_Leitura_Anterior.Text, ",") > 0 Then
                    KeyAscii = 0
                End If
            End If
        End If
        eventArgs.KeyChar = Chr(KeyAscii)
        If KeyAscii = 0 Then
            eventArgs.Handled = True
        End If
    End Sub

    Private Sub txtRFLeituraAnterior_Leave(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Refaturamento_Fatura_Final_Leitura_Anterior.Leave

        Dim classAPIAnalizeProcessamentoFaturas As New classAPIAnalizeProcessamentoFaturas

        classAPIAnalizeProcessamentoFaturas.frmVerifContaGBNovo = Me

        With Me.txt_Refaturamento_Fatura_Final_Leitura_Anterior
            .Text = VB6.Format(.Text, "###,###0")
        End With

        If IsNumeric(Me.txt_Refaturamento_Fatura_Final_Leitura_Atual.Text) Then
            If IsNumeric(Me.txt_Refaturamento_Fatura_Final_Leitura_Anterior.Text) Then
                If IsNumeric(Me.txt_Refaturamento_Fatura_Final_Constante.Text) Then
                    Me.txt_Refaturamento_Fatura_Final_Consumo.Text = CStr(classAPIAnalizeProcessamentoFaturas.CalConsumoN(CDbl(Me.txt_Refaturamento_Fatura_Final_Leitura_Anterior.Text), CDbl(Me.txt_Refaturamento_Fatura_Final_Leitura_Atual.Text), CDbl(Me.txt_Refaturamento_Fatura_Final_Constante.Text), 0, "", "", "", 0, 0, CDbl(Me.txtResiduo.Text), 0, 0))
                End If
            End If
        End If

        classAPIAnalizeProcessamentoFaturas.CalculaRFConsumos("FORM", "")

    End Sub

    Private Sub txtRFLeituraAtual_Enter(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Refaturamento_Fatura_Final_Leitura_Atual.Enter
        With Me.txt_Refaturamento_Fatura_Final_Leitura_Atual
            .Text = CStr(CDbl(IIf(IsNumeric(.Text), .Text, 0)))
            .SelectionStart = 0
            .SelectionLength = Len(.Text)
        End With
    End Sub

    Private Sub txtRFLeituraAtual_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles txt_Refaturamento_Fatura_Final_Leitura_Atual.KeyPress
        Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
        If KeyAscii <> System.Windows.Forms.Keys.Back And (KeyAscii < System.Windows.Forms.Keys.D0 Or KeyAscii > System.Windows.Forms.Keys.D9) Then
            If KeyAscii = System.Windows.Forms.Keys.Delete Then
                KeyAscii = System.Windows.Forms.Keys.Snapshot
            End If
            If KeyAscii <> System.Windows.Forms.Keys.Snapshot Then
                KeyAscii = 0
            Else
                If InStr(1, Me.txt_Refaturamento_Fatura_Final_Leitura_Atual.Text, ",") > 0 Then
                    KeyAscii = 0
                End If
            End If
        End If
        eventArgs.KeyChar = Chr(KeyAscii)
        If KeyAscii = 0 Then
            eventArgs.Handled = True
        End If
    End Sub

    Private Sub txtRFLeituraAtual_Leave(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Refaturamento_Fatura_Final_Leitura_Atual.Leave

        Dim classAPIAnalizeProcessamentoFaturas As New classAPIAnalizeProcessamentoFaturas


        classAPIAnalizeProcessamentoFaturas.frmVerifContaGBNovo = Me

        With Me.txt_Refaturamento_Fatura_Final_Leitura_Atual
            .Text = VB6.Format(.Text, "###,###0")
        End With

        If IsNumeric(Me.txt_Refaturamento_Fatura_Final_Leitura_Atual.Text) Then
            If IsNumeric(Me.txt_Refaturamento_Fatura_Final_Leitura_Anterior.Text) Then
                If IsNumeric(Me.txt_Refaturamento_Fatura_Final_Constante.Text) Then
                    Me.txt_Refaturamento_Fatura_Final_Consumo.Text = CStr(classAPIAnalizeProcessamentoFaturas.CalConsumoN(CDbl(Me.txt_Refaturamento_Fatura_Final_Leitura_Anterior.Text), CDbl(Me.txt_Refaturamento_Fatura_Final_Leitura_Atual.Text), CDbl(Me.txt_Refaturamento_Fatura_Final_Constante.Text), 0, "", "", "", 0, 0, CDbl(Me.txtResiduo.Text), 0, 0))
                End If
            End If
        End If

        classAPIAnalizeProcessamentoFaturas.CalculaRFConsumos("FORM")

    End Sub

    Private Sub txtZona_Enter(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Faturamento_Normal_Individual_Zona.Enter
        Try

            With Me.txt_Faturamento_Normal_Individual_Zona
                .SelectionStart = 0
                .SelectionLength = Len(.Text)
            End With

        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 txtZona_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles txt_Faturamento_Normal_Individual_Zona.KeyPress
        Dim KeyAscii As Short = Asc(eventArgs.KeyChar)

        Try

            If KeyAscii <> 8 And (KeyAscii < 48 Or KeyAscii > 57) Then
                KeyAscii = 0
            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 txtZona_Leave(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txt_Faturamento_Normal_Individual_Zona.Leave
        Try

            With Me.txt_Faturamento_Normal_Individual_Zona
                .Text = VB6.Format(.Text, "000")
            End With

        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 lsvRotas_ItemCheck(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.ItemCheckEventArgs) Handles lvw_Faturamento_Normal_Por_Selecao_Rotas_Dados.ItemCheck
        Dim aListItem As System.Windows.Forms.ListViewItem = lvw_Faturamento_Normal_Por_Selecao_Rotas_Dados.Items(eventArgs.Index)
        Dim lintLinhas As Short
        With Me.lvw_Faturamento_Normal_Por_Selecao_Rotas_Dados
            If aListItem.Text = "Todas as rotas" Then
                If .Items.Item(1).Checked = True Then
                    For lintLinhas = 1 To .Items.Count
                        .Items.Item(lintLinhas).Checked = True
                    Next lintLinhas
                ElseIf .Items.Item(1).Checked = False Then
                    For lintLinhas = 1 To .Items.Count
                        .Items.Item(lintLinhas).Checked = False
                    Next lintLinhas
                End If
            Else
                If aListItem.Checked = False Then
                    .Items.Item(1).Checked = False
                End If
            End If
        End With
    End Sub

    Public Function BuscaFiltroSelRota() As String
        Dim llngIdx As Integer
        Dim lstrAux As String
        lstrAux = ""
        With Me.lvw_Faturamento_Normal_Por_Selecao_Rotas_Dados
            If .Items.Count > 0 Then
                For llngIdx = 1 To .Items.Count
                    If .Items.Item(llngIdx).Checked = True Then
                        lstrAux = lstrAux & "'" & .Items.Item(llngIdx).Text & "',"
                    End If
                Next llngIdx
            End If
        End With
        If Len(Trim(lstrAux)) > 0 Then
            lstrAux = " ( " & Microsoft.VisualBasic.Left(lstrAux, Len(lstrAux) - 1) & ") "
        Else
            lstrAux = ""
        End If
        BuscaFiltroSelRota = lstrAux
    End Function

    Public Sub MontaGradeCancDados()
        'With mfgCancDados
        '    .Redraw = False
        '    .Rows = 1
        '    .Clear()
        '    .set_TextMatrix(0, 0, "X")
        '    .set_TextMatrix(0, 1, "Código")
        '    .set_TextMatrix(0, 2, "Descrição")
        '    .set_TextMatrix(0, 3, "Referência")
        '    .set_TextMatrix(0, 4, "Valor")
        '    .set_ColAlignment(0, MSFlexGridLib.AlignmentSettings.flexAlignCenterCenter)
        '    .set_ColAlignment(1, MSFlexGridLib.AlignmentSettings.flexAlignLeftCenter)
        '    .set_ColAlignment(2, MSFlexGridLib.AlignmentSettings.flexAlignLeftCenter)
        '    .set_ColAlignment(3, MSFlexGridLib.AlignmentSettings.flexAlignLeftCenter)
        '    .set_ColAlignment(4, MSFlexGridLib.AlignmentSettings.flexAlignRightCenter)
        '    .set_ColWidth(0, 300)
        '    .set_ColWidth(1, 1000)
        '    .set_ColWidth(2, 1000)
        '    .set_ColWidth(3, 1000)
        '    .set_ColWidth(4, 1000)
        '    .Redraw = True
        'End With
    End Sub

    Public Sub SetaParamentros(ByVal astrTipo As String)
        Select Case astrTipo
            Case "F"
                Me.tb_Faturamento_tp_Refaturamento_Fatura_Final.Enabled = True
                Me.tb_Faturamento.TabPages.Remove(tb_Faturamento_tp_Normal)
                tb_Refaturamento_Fatura_Final.TabPages.Remove(tb_Refaturamento_Fatura_Final_Refaturamento)
                Me.Size = New Size(850, 628)

            Case "R"
                Me.tb_Faturamento_tp_Refaturamento_Fatura_Final.Enabled = True
                Me.tb_Faturamento.TabPages.Remove(tb_Faturamento_tp_Normal)
                tb_Refaturamento_Fatura_Final.TabPages.Remove(tb_Refaturamento_Fatura_Final_Fatura_Final)
                chk_Refaturamento_Pagas.Checked = False
                Me.Size = New Size(850, 628)
            Case "RP"
                Me.tb_Faturamento_tp_Refaturamento_Fatura_Final.Enabled = True
                Me.tb_Faturamento.TabPages.Remove(tb_Faturamento_tp_Normal)
                tb_Refaturamento_Fatura_Final.TabPages.Remove(tb_Refaturamento_Fatura_Final_Fatura_Final)
                chk_Refaturamento_Pagas.Checked = True
                Me.Size = New Size(850, 628)
            Case Else
                Me.tb_Faturamento_tp_Normal.Enabled = True
                Me.tb_Faturamento_tp_Refaturamento_Fatura_Final.Enabled = False
                Me.tb_Faturamento.TabPages.Remove(tb_Faturamento_tp_Refaturamento_Fatura_Final)
        End Select


        LigDesBotoes(False, False, False, False, False, False, False)
        iintTipoFaturamento = IIf(astrTipo = "F", 1, IIf(astrTipo = "R", 2, IIf(astrTipo = "RP", 3, 0)))
        'desligado frames do calculo normal
        'Me.gbx_Faturamento_Normal_Lista_Avisos.Enabled = False
        'Me.gbx_Datas_Faturamento_Normal.Enabled = False
        'Me.gbx_Faturamento_Normal_Tipo.Enabled = False
        'Me.gbx_Faturamento_Normal_Total_Quantidade_Leituras.Enabled = False
        'Me.tb_Faturamento_Normal_Faturar_tp_Individual.Enabled = False
        'Me.tb_Faturamento_Normal_Faturar_tp_Por_Rota.Enabled = False
        'Me.tb_Faturamento_Normal_Faturar_tp_Por_Selecao_Rota.Enabled = False
        LigDesBotoes(False, False, False, False, False, False)
    End Sub

    Private Sub CalcCodRegEsp(ByVal alngCidade As Integer, ByVal astrClas As String, ByVal adblConsumo As Double, ByVal adteLeitura As Date, ByVal alngMatricula As Integer)
        Dim lstrCodigo As String
        Dim ldblCalcCodRegEsp As Double
        Dim lblnSocio As Boolean
        Dim lstrSql As String
        'Dim lrstAux As ADODB.Recordset
        'lrstAux = New ADODB.Recordset
        Dim dt As DataTable

        Dim objAtualizaBancoDados As New entidadeAtualizaBancoDados
        Dim repositorioAtualizaBancoDados As New repositorioAtualizaBancoDados

        Dim classAPIAnalizeProcessamentoFaturas As New classAPIAnalizeProcessamentoFaturas

        classAPIAnalizeProcessamentoFaturas.frmVerifContaGBNovo = Me

        lblnSocio = (alngMatricula > 0)

        lstrSql = ""
        lstrSql = lstrSql & "SELECT * "
        lstrSql = lstrSql & "  FROM `codigos` "
        lstrSql = lstrSql & " WHERE `regra_especial` = 1 "
        lstrSql = lstrSql & "ORDER BY `num` ASC "

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

        If dt.Rows.Count <> 0 Then
            For Each row As DataRow In dt.Rows
                lstrCodigo = IIf(IsDBNull(row("num")), "", row("num"))
                ldblCalcCodRegEsp = CalculaCodigosRegrasEspeciais(lstrCodigo, alngCidade, astrClas, adblConsumo, idblTotalVlrBaseCip, adteLeitura, "B", lblnSocio)
                If ldblCalcCodRegEsp <> 0 Then
                    classAPIAnalizeProcessamentoFaturas.AdicionaGridItem(lstrCodigo, ldblCalcCodRegEsp, "", "S", "N")
                    idblTotalNota = idblTotalNota + ldblCalcCodRegEsp
                End If
            Next
        End If

    End Sub
    Public Sub GetTarifasComposicao(ByVal adteReferencia As Date, ByRef pdblEnergia As Double, ByRef pdblTransmissao As Double, ByRef pdblDistribuicao As Double, ByRef pdblEncargos As Double, ByRef pdblPerdas As Double, ByRef pdblTributosIcms As Double, ByRef pdblTributosPisCofins As Double)
        Dim lstrSql As String
        Dim dt As DataTable

        Dim objAtualizaBancoDados As New entidadeAtualizaBancoDados
        Dim repositorioAtualizaBancoDados As New repositorioAtualizaBancoDados

        lstrSql = "SELECT * "
        lstrSql = lstrSql & "  FROM `tarifas_composicao` "
        lstrSql = lstrSql & " WHERE referencia <= '" & Strings.Format(adteReferencia, "yyyy-MM-dd") & "' "
        lstrSql = lstrSql & " LIMIT 0, 1"

        Try

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

            If dt.Rows.Count > 0 Then
                For Each row As DataRow In dt.Rows
                    pdblEnergia = IIf(IsDBNull(row.Item("energia_real")), 0, row.Item("energia_real"))
                    pdblTransmissao = IIf(IsDBNull(row.Item("transmissao")), 0, row.Item("transmissao"))
                    pdblDistribuicao = IIf(IsDBNull(row.Item("distribuicao")), 0, row.Item("distribuicao"))
                    pdblEncargos = IIf(IsDBNull(row.Item("enc_setoriais")), 0, row.Item("enc_setoriais"))
                    pdblPerdas = IIf(IsDBNull(row.Item("perdas")), 0, row.Item("perdas"))
                    pdblTributosIcms = IIf(IsDBNull(row.Item("tributos_icms")), 0, row.Item("tributos_icms"))
                    pdblTributosPisCofins = IIf(IsDBNull(row.Item("tributos_pis_cofins")), 0, row.Item("tributos_pis_cofins"))
                Next
            End If
        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

    'Private Sub cmdImprimir()
    '    'Revisado OK
    '    Dim lstrTemp As String
    '    Dim lstrZLC As String
    '    Dim lstrRota As String
    '    Dim llngConsId As Long
    '    Dim llngUnidId As Long
    '    Dim lstrRotAux As String
    '    Dim lstrMedidor As String
    '    Dim lstrNome As String
    '    Dim lstrEndereco As String
    '    Dim lstrSituacao As String

    '    Dim lstrConsumo(1 To 6) As String
    '    Dim lintAux As Integer
    '    Dim lstrIte As String
    '    Dim ldblKwh As Double
    '    Dim ldblOco As Double

    '    Dim lstrOcorrencia As String
    '    Dim ldblConsumo As Double
    '    Dim ldblMedia As Double
    '    Dim ldblAbaixoMedia As Double
    '    Dim ldblAcimaMedia As Double
    '    Dim ldblLeitAnt As Double
    '    Dim lstrLeitAnt As String
    '    Dim ldblLeitAtu As Double
    '    Dim lstrLeitAtu As String
    '    Dim ldblConstante As Double
    '    Dim llngQMedia As Long
    '    Dim lintCtrPag As Integer
    '    Dim lstrSql As String
    '    Dim lrstCon As ADODB.Recordset
    '    Dim lrstAux As ADODB.Recordset
    '  Set lrstAux = New ADODB.Recordset
    '  Set lrstCon = New ADODB.Recordset
    '  '
    '  Me.MousePointer = vbHourglass
    '    Call LigDesBotoes(False, False, False, False, False, False, False)
    '    Call LigDesCampo(False, False)
    '    lintCtrPag = 831
    '    lstrSql = ""
    '    lstrSql = lstrSql & "SELECT * "
    '    lstrSql = lstrSql & "  FROM " & istrTabela & " "
    '    lstrSql = lstrSql & " ORDER BY rota ASC, zlc ASC "
    '    Call Conectar(lstrSql, lrstAux)
    '    With lrstAux
    '        If .State = ADODB.ObjectStateEnum.adStateOpen Then
    '            If .RecordCount > 0 Then
    '                Call BarraProgresso(Me.ProgressBar, Me.lblPerc, Me.lblInfo, 0, .RecordCount)
    '                'Chama Cabeçalho do Relatório
    '                lstrRota = Strings.Trim(IIf(IsNull(.Fields("rota").value), "", .Fields("rota").value))
    '                lstrRotAux = Strings.Left(lstrRota, 4)
    '                istrRota = lstrRota
    '                With ifrRel33
    '          Set .quem_chama = Me
    '          .VS.FontName = "Tahoma"
    '                    .VS.FontSize = 8
    '                    .VS.TableBorder = tbNone
    '                    .VS.PageBorder = tbNone
    '                    .VS.Orientation = orPortrait
    '                    .VS.PhysicalPage = True
    '                    .VS.PaperSize = pprA4
    '                    .VS.MarginTop = "7mm"
    '                    .VS.MarginRight = "7mm"
    '                    .VS.MarginLeft = "7mm"
    '                    .VS.MarginBottom = "5mm"
    '                    .VS.TextColor = vbBlack
    '                    .VS.BrushStyle = bsSolid
    '                    .VS.FontBold = False
    '                    .VS.StartDoc
    '                End With
    '                While Not .EOF
    '                    lstrZLC = Strings.Trim(IIf(IsNull(.Fields("zlc").value), "", .Fields("zlc").value))
    '                    lstrRota = Strings.Trim(IIf(IsNull(.Fields("rota").value), "", .Fields("rota").value))
    '                    istrRota = lstrRota
    '                    llngConsId = Conversion.CLng(IIf(IsNull(.Fields("cons_id").value), 0, .Fields("cons_id").value))
    '                    llngUnidId = Conversion.CLng(IIf(IsNull(.Fields("unid_id").value), 0, .Fields("unid_id").value))
    '                    With ifrRel33
    '                        If Strings.Left(lstrRota, 4) <> lstrRotAux Then
    '                            istrRota = lstrRota
    '                            Call .VS.NewPage
    '                            .VS.CurrentLine = 1
    '                            If Left(lstrRota, 4) <> lstrRotAux Then
    '                                lstrRotAux = Left(lstrRota, 4)
    '                            End If
    '                        End If
    '                    End With
    '                    lstrLeitAnt = Strings.Trim(IIf(IsNull(.Fields("leitant").value), "", .Fields("leitant").value))
    '                    ldblLeitAnt = Arredondar(Conversion.CDbl(IIf(Strings.Len(Strings.Trim(lstrLeitAnt)) = 0, 0, lstrLeitAnt)), 0)
    '                    lstrLeitAtu = Strings.Trim(IIf(IsNull(.Fields("leitatu").value), "", .Fields("leitatu").value))
    '                    ldblLeitAtu = Arredondar(Conversion.CDbl(IIf(Strings.Len(Strings.Trim(lstrLeitAtu)) = 0, 0, lstrLeitAtu)), 0)
    '                    If lstrLeitAtu <> "" Then lstrLeitAtu = Strings.FormatNumber(ldblLeitAtu, 0)
    '                    If lstrLeitAnt <> "" Then lstrLeitAnt = Strings.FormatNumber(ldblLeitAnt, 0)
    '                    ldblConstante = Conversion.CDbl(IIf(IsNull(.Fields("const").value), 0, .Fields("const").value))
    '                    lstrMedidor = Strings.Trim(IIf(IsNull(.Fields("medidor").value), "", .Fields("medidor").value))
    '                    lstrNome = Strings.Left(Strings.Trim(IIf(IsNull(.Fields("nome").value), "", .Fields("nome").value)), 50)
    '                    lstrEndereco = Strings.Left(Strings.Trim(IIf(IsNull(.Fields("endereco").value), "", .Fields("endereco").value)), 50)
    '                    ldblMedia = Conversion.CDbl(IIf(IsNull(.Fields("media").value), 0, .Fields("media").value))
    '                    ldblAcimaMedia = Conversion.CDbl(IIf(IsNull(.Fields("acimam").value), 0, .Fields("acimam").value))
    '                    ldblAbaixoMedia = Conversion.CDbl(IIf(IsNull(.Fields("abaixom").value), 0, .Fields("abaixom").value))
    '                    ldblConsumo = Conversion.CDbl(IIf(IsNull(.Fields("consumo").value), 0, .Fields("consumo").value))
    '                    lstrOcorrencia = Strings.Format(IIf(IsNull(.Fields("ocorrenc").value), "0", .Fields("ocorrenc").value), "000")
    '                    lstrSituacao = Strings.UCase(Strings.Trim(IIf(IsNull(.Fields("situacao").value), "L", .Fields("situacao").value)))
    '                    For lintAux = 1 To 6
    '                        lstrConsumo(lintAux) = ""
    '                    Next lintAux
    '                    'Buscando os ultimos 6 consumos
    '                    lstrSql = ""
    '                    lstrSql = lstrSql & "SELECT `numnf`, `mesano`, `mesano_ref`, `zona`, `livro`, `conta`, `cons_id`, `unid_id`, `grupo`, SUM(buscavaloritem(`itensserv`,'030201008')) lido, MAX(buscavaloritem(`itensserv`,'90410000')) oco "
    '                    lstrSql = lstrSql & "  FROM `nf` "
    '                    lstrSql = lstrSql & " WHERE `cons_id` = " & llngConsId
    '                    lstrSql = lstrSql & "   AND `unid_id` = " & llngUnidId
    '                    lstrSql = lstrSql & "   AND `grupo`   = 'B' "
    '                    lstrSql = lstrSql & "   AND `flgst`   <> 'C' "
    '                    lstrSql = lstrSql & "   AND `fatura_complementar` = 0 "
    '                    lstrSql = lstrSql & " GROUP BY `numnf`, `mesano`, `mesano_ref`, `zona`, `livro`, `conta`, `cons_id`, `unid_id`, `grupo` "
    '                    lstrSql = lstrSql & " ORDER BY `mesano_ref` DESC LIMIT 0, 6 "
    '                    Call Conectar(lstrSql, lrstCon)

    '                    With lrstCon
    '                        If .State = ADODB.ObjectStateEnum.adStateOpen Then
    '                            If .RecordCount > 0 Then
    '                                lintAux = 1
    '                                llngQMedia = 0
    '                                While Not .EOF
    '                                    'lstrIte = Trim(IIf(IsNull(.Fields("itensserv").value), "", .Fields("itensserv").value))
    '                                    ldblKwh = IIf(IsNull(.Fields("lido").value), 0, .Fields("lido").value) 'BuscaVlrItem(lstrIte, "030201008")
    '                                    ldblOco = IIf(IsNull(.Fields("oco").value), 0, .Fields("oco").value) 'BuscaVlrItem(lstrIte, "90410000")
    '                                    If ldblOco = 1 Then 'Média
    '                                        lstrConsumo(lintAux) = "**MÉDIA***"
    '                                        llngQMedia = llngQMedia + 1
    '                                    Else 'Lido
    '                                        lstrConsumo(lintAux) = Strings.FormatNumber(ldblKwh, 0)
    '                                        If llngQMedia <= 1 Then llngQMedia = 0
    '                                    End If
    '                                    Call .MoveNext
    '                                    lintAux = lintAux + 1
    '                Wend
    '              End If
    '                            Call .Close
    '                        End If
    '                    End With
    '                    lstrTemp = "<63mm|^22mm|>20mm|>15mm|>11mm|>17mm|>18mm|>14mm|>15mm;"
    '                    'Coluna 1
    '                    lstrTemp = lstrTemp & Strings.Mid(lstrNome, 1, 44) & Chr(13)
    '                    lstrTemp = lstrTemp & Strings.Mid(lstrEndereco, 1, 44) & Chr(13)
    '                    lstrTemp = lstrTemp & IIf(Strings.Mid(lstrEndereco, 45) > 0, Strings.Mid(lstrEndereco, 45), "") & " "
    '                    'Coluna 2
    '                    lstrTemp = lstrTemp & "|" & "(" & Strings.Right(Strings.Format(lstrRota, "00000000"), 4) & ")" & Chr(13)
    '                    lstrTemp = lstrTemp & lstrZLC & Chr(13)
    '                    lstrTemp = lstrTemp & Interaction.Switch(lstrSituacao = "D", "Desligado", lstrSituacao = "C", "Cortado", lstrSituacao = "I", "Inativado", lstrSituacao = "N", "Não Ligado", lstrSituacao = "L", "")
    '                    'Coluna 3
    '                    'lstrTemp = lstrTemp & "|" & Chr(13) & IIf(lstrLeitAtu <> "", ldblLeitAtu, lstrLeitAtu) & Chr(13) & IIf(lstrLeitAnt <> "", ldblLeitAnt, lstrLeitAnt)
    '                    lstrTemp = lstrTemp & "|" & Chr(13) & lstrLeitAtu & Chr(13) & lstrLeitAnt
    '                    'Coluna 5
    '                    lstrTemp = lstrTemp & "|" & Chr(13) & Strings.FormatNumber(ldblConsumo, 0)
    '                    'Coluna 6
    '                    lstrTemp = lstrTemp & "|" & Chr(13) & Strings.FormatNumber(ldblMedia, 0)
    '                    'Coluna 7
    '                    lstrTemp = lstrTemp & "|" & lstrConsumo(1) & Chr(13) & lstrConsumo(2) & Chr(13) & lstrConsumo(3)
    '                    'Coluna 8
    '                    lstrTemp = lstrTemp & "|" & lstrConsumo(4) & Chr(13) & lstrConsumo(5) & Chr(13) & lstrConsumo(6)
    '                    'Coluna 9
    '                    lstrTemp = lstrTemp & "|" & Chr(13) & Strings.FormatNumber(ldblAcimaMedia, 0) & Chr(13)
    '                    lstrTemp = lstrTemp & Strings.FormatNumber(ldblAbaixoMedia, 0)
    '                    'Coluna 10
    '                    lstrTemp = lstrTemp & "|" & lstrMedidor & Chr(13)
    '                    lstrTemp = lstrTemp & Replace(Format(ldblConstante, "#,###0.00000"), ",", ".") & Chr(13)
    '                    lstrTemp = lstrTemp & IIf(lstrOcorrencia <> "000", "******" & lstrOcorrencia, lstrOcorrencia)
    '                    With ifrRel33
    '                        .VS.FontSize = 7
    '                        .VS.PenStyle = psTransparent
    '                        .VS.BrushStyle = bsSolid
    '                        .VS.BrushColor = &HE0E0E0 '&H80000015
    '                        If ldblLeitAtu = 0 Or ldblLeitAnt = 0 Or llngQMedia > 2 Then
    '                            .VS.BrushColor = &H808080
    '                            Call .VS.DrawRectangle("7mm", .VS.CurrentY, "202mm", .VS.CurrentY + 500)
    '                        End If
    '                        .VS.BrushColor = vbWhite
    '                        .VS.PenStyle = psSolid
    '                        .VS.FontSize = 7
    '                        .VS.Table = lstrTemp
    '                        If Strings.Left(lstrRota, 4) <> lstrRotAux Then
    '                            istrRota = lstrRota
    '                            Call .VS.NewPage
    '                            .VS.CurrentLine = 1
    '                            If Left(lstrRota, 4) <> lstrRotAux Then
    '                                lstrRotAux = Left(lstrRota, 4)
    '                            End If
    '                        End If
    '                    End With
    '                    Call .MoveNext
    '                    Call BarraProgresso(Me.ProgressBar, Me.lblPerc, Me.lblInfo, 1)
    '                    DoEvents
    '        Wend
    '        With ifrRel33
    '                    .VS.TableBorder = tbNone
    '                    Call .VS.EndDoc
    '                    Call .Show
    '                End With
    '            End If
    '            Call .Close
    '        End If
    '    End With
    '    Call LigDesBotoes(True, True, True, True, True, True, True)
    '    Call LigDesCampo(True, True)
    '    Me.MousePointer = vbDefault
    '  Set lrstAux = Nothing
    '  Set lrstCon = Nothing
    'End Sub
    Private Sub sCriaTabelaAuxiliares()

        Dim lstrsql As String

        Try

            lstrsql = ""
            lstrsql = lstrsql & "DROP TABLE IF EXISTS AUX_CONSUMIDORVARIAVEL"
            objExecAtualizaBancoDados.QUERY_NAME = lstrsql
            repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)

            lstrsql = ""
            lstrsql = lstrsql & "create table IF NOT EXISTS AUX_CONSUMIDORVARIAVEL("
            lstrsql = lstrsql & "NOME VARCHAR(100), "
            lstrsql = lstrsql & "ENDERECO  VARCHAR(100), "
            lstrsql = lstrsql & "SEQUENCIA   VARCHAR(100), "
            lstrsql = lstrsql & "IDENTIFICACAO  VARCHAR(100), "
            lstrsql = lstrsql & "LEITURAATUAL  VARCHAR(100), "
            lstrsql = lstrsql & "LEITURAANTERIOR  VARCHAR(100), "
            lstrsql = lstrsql & "CONSUMO  VARCHAR(100), "
            lstrsql = lstrsql & "MEDIA  VARCHAR(100), "
            lstrsql = lstrsql & "ULTIMO6CONSUMO VARCHAR(100), "
            lstrsql = lstrsql & "LIMITEMAIOR VARCHAR(100), "
            lstrsql = lstrsql & "LIMITEMENOR VARCHAR(100), "
            lstrsql = lstrsql & "MEDIDORCONST VARCHAR(100), "
            lstrsql = lstrsql & "OCORRENCIA VARCHAR(100)) "
            objExecAtualizaBancoDados.QUERY_NAME = lstrsql
            repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)


            lstrsql = ""
            lstrsql = lstrsql & "DROP TABLE IF EXISTS AUX_AVISO_ANALISE"
            objExecAtualizaBancoDados.QUERY_NAME = lstrsql
            repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)

            lstrsql = ""
            lstrsql = lstrsql & "create table IF NOT EXISTS AUX_AVISO_ANALISE("
            lstrsql = lstrsql & "ZLC VARCHAR(20), "
            lstrsql = lstrsql & "ROTA  VARCHAR(20), "
            lstrsql = lstrsql & "CONSUMO   VARCHAR(20), "
            lstrsql = lstrsql & "LIGACAO  VARCHAR(20), "
            lstrsql = lstrsql & "ENTRADA  VARCHAR(20), "
            lstrsql = lstrsql & "RELIGACAO  VARCHAR(20), "
            lstrsql = lstrsql & "CORTE  VARCHAR(20), "
            lstrsql = lstrsql & "ATUAL  VARCHAR(20), "
            lstrsql = lstrsql & "ANTERIOR VARCHAR(20), "
            lstrsql = lstrsql & "RESIDUO VARCHAR(20), "
            lstrsql = lstrsql & "RESUC VARCHAR(20), "
            lstrsql = lstrsql & "CODAVISO VARCHAR(10), "
            lstrsql = lstrsql & "AVISO VARCHAR(100)) "
            objExecAtualizaBancoDados.QUERY_NAME = lstrsql
            repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)



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

    End Sub

    Private Sub lPrint(ByVal vNomeRPT As String)

        Dim dt As DataTable
        Dim dt_1 As DataTable
        Dim dt_2 As DataTable
        Dim dt_3 As DataTable
        Dim dc As DataColumn
        Dim ds As DataSet
        Dim lstrsql As String

        'Dim bytBLOBData() As Byte

        'Dim objEmpresa As New entidadeEmpresa
        'Dim repositorioEmpresa As New repositorioEmpresa

        'Dim vlist


        Dim bytBLOBData() As Byte

        Dim vlist

        'Dim objEmpresa As New entidadeEmpresa
        'Dim repositorioEmpresa As New repositorioEmpresa


        'vlist = repositorioEmpresa.Select(objEmpresa)

        'If vlist.Count <> 0 Then

        '    For Each objEmpresaFor As entidadeEmpresa In vlist

        '        bytBLOBData = objEmpresaFor.LOGOTIPO

        '    Next

        'End If

        Try
            Dim rpt As New ReportDocument()

            'rptRelSampNovoBaixaRenda
            If vNomeRPT = "rptRelConsVar" Then

                dt_2 = New DataTable()
                dt_2.Columns.Add("NOME", GetType(String))
                dt_2.Columns.Add("ENDERECO", GetType(String))
                dt_2.Columns.Add("SEQUENCIA", GetType(String))
                dt_2.Columns.Add("IDENTIFICACAO", GetType(String))
                dt_2.Columns.Add("LEITURAATUAL", GetType(String))
                dt_2.Columns.Add("LEITURAANTERIOR", GetType(String))
                dt_2.Columns.Add("CONSUMO", GetType(String))
                dt_2.Columns.Add("MEDIA", GetType(String))
                dt_2.Columns.Add("ULTIMOSMESES", GetType(String))
                dt_2.Columns.Add("MEDIDORCONST", GetType(String))
                dt_2.Columns.Add("MEDIDOROCORR", GetType(String))
                dt_2.Columns.Add("LIMITEMAIOR", GetType(String))
                dt_2.Columns.Add("LIMITEMENOR", GetType(String))
                'dt_2.Columns.Add("IMAGEM", GetType(Byte()))

                ds = New DataSet

                lstrsql = ""
                lstrsql = "SELECT * FROM AUX_CONSUMIDORVARIAVEL " 'WHERE nm_usuario = '" & My.Computer.Name & "'"
                objAtualizaBancoDados.QUERY_NAME = lstrsql
                dt = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)

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

                        dt_2.Rows.Add(dr_1("NOME"),
                                          dr_1("ENDERECO"),
                                          dr_1("SEQUENCIA"),
                                          dr_1("IDENTIFICACAO"),
                                          dr_1("LEITURAATUAL"),
                                          dr_1("LEITURAANTERIOR"),
                                          dr_1("CONSUMO"),
                                          dr_1("MEDIA"),
                                          dr_1("ULTIMO6CONSUMO"),
                                          dr_1("LIMITEMAIOR"),
                                          dr_1("LIMITEMENOR"),
                                          dr_1("MEDIDORCONST"),
                                          dr_1("OCORRENCIA"))
                        'bytBLOBData)

                    Next dr_1
                End If

                ds.Tables.Add(dt)
                ds.Tables(0).TableName = "REL_CONSVAR"

                If ds.Tables(0).Rows.Count = 0 Then
                    MessageBox.Show("Não há registros para o relatório escolhido! ", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                    Exit Sub
                Else

                    rpt = New rptRelConsVar

                    rpt.SetDataSource(ds)
                    rpt.SetParameterValue("nomeempresa", sNomeEmpresa)
                    rpt.SetParameterValue("enderecoempresa", sEnderecoEmpresa)
                    rpt.SetParameterValue("cepempresa", sCepEmpresa)
                    rpt.SetParameterValue("ufempresa", sUFempresa)
                    rpt.SetParameterValue("cidadeempresa", sCidadeEmpresa)
                    rpt.SetParameterValue("bairroempresa", sBairroEmpresa)
                    rpt.SetParameterValue("foneempresa", sFoneEmpresa)
                    rpt.SetParameterValue("websiteempresa", sWebEmpresa)
                    ' rpt.SetParameterValue("MesAnoRef", Month(dtpMesAno.Value) & "/" & Year(dtpMesAno.Value))
                    'rpt.SetParameterValue("NomeRel", "Grupo B - Baixa Renda 945")

                    frmViewRelatorios.rpt = rpt

                    frmViewRelatorios.CRViewer.Zoom((100))
                    frmViewRelatorios.Text = "Relatório Consumidor Rota Variável"
                    frmViewRelatorios.ShowDialog()

                End If

            ElseIf vNomeRPT = "rpt_Aviso_Anal" Then


                dt_2 = New DataTable()
                dt_2.Columns.Add("ZLC", GetType(String))
                dt_2.Columns.Add("ROTA", GetType(String))
                dt_2.Columns.Add("CONSUMO", GetType(String))
                dt_2.Columns.Add("LIGACAO", GetType(String))
                dt_2.Columns.Add("ENTRADA", GetType(String))
                dt_2.Columns.Add("RELIGACAO", GetType(String))
                dt_2.Columns.Add("CORTE", GetType(String))
                dt_2.Columns.Add("ATUAL", GetType(String))
                dt_2.Columns.Add("ANTERIOR", GetType(String))
                dt_2.Columns.Add("RESIDUO", GetType(String))
                dt_2.Columns.Add("RESUC", GetType(String))
                dt_2.Columns.Add("CODAVISO", GetType(String))
                dt_2.Columns.Add("AVISO", GetType(String))
                'dt_2.Columns.Add("IMAGEM", GetType(Byte()))

                ds = New DataSet

                lstrsql = ""
                lstrsql = "SELECT * FROM AUX_AVISO_ANALISE " 'WHERE nm_usuario = '" & My.Computer.Name & "'"
                objAtualizaBancoDados.QUERY_NAME = lstrsql
                dt = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)

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

                        dt_2.Rows.Add(dr_1("ZLC"),
                                          dr_1("ROTA"),
                                          dr_1("CONSUMO"),
                                          dr_1("LIGACAO"),
                                          dr_1("ENTRADA"),
                                          dr_1("RELIGACAO"),
                                          dr_1("CORTE"),
                                          dr_1("ATUAL"),
                                          dr_1("ANTERIOR"),
                                          dr_1("RESIDUO"),
                                          dr_1("RESUC"),
                                          dr_1("CODAVISO"),
                                          dr_1("AVISO"))
                        'bytBLOBData)

                    Next dr_1
                End If

                ds.Tables.Add(dt)
                ds.Tables(0).TableName = "REL_AVISO_ANAL"

                If ds.Tables(0).Rows.Count = 0 Then
                    MessageBox.Show("Não há registros para o relatório escolhido! ", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                    Exit Sub
                Else

                    rpt = New rpt_Aviso_Anal

                    rpt.SetDataSource(ds)
                    rpt.SetParameterValue("nomeempresa", sNomeEmpresa)
                    rpt.SetParameterValue("enderecoempresa", sEnderecoEmpresa)
                    rpt.SetParameterValue("cepempresa", sCepEmpresa)
                    rpt.SetParameterValue("ufempresa", sUFempresa)
                    rpt.SetParameterValue("cidadeempresa", sCidadeEmpresa)
                    rpt.SetParameterValue("bairroempresa", sBairroEmpresa)
                    rpt.SetParameterValue("foneempresa", sFoneEmpresa)
                    rpt.SetParameterValue("websiteempresa", sWebEmpresa)
                    ' rpt.SetParameterValue("MesAnoRef", Month(dtpMesAno.Value) & "/" & Year(dtpMesAno.Value))
                    'rpt.SetParameterValue("NomeRel", "Grupo B - Baixa Renda 945")

                    frmViewRelatorios.rpt = rpt

                    frmViewRelatorios.CRViewer.Zoom((100))
                    frmViewRelatorios.Text = "Relatório Avisos Tela de Analise"
                    frmViewRelatorios.ShowDialog()

                End If

            End If

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

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs)
        MessageBox.Show("Olá Fabiola! ", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
    End Sub

    Public Sub sInsereImpresao(ByVal alngCodigo As Long, ByVal astrZona As String,
                                                     ByVal astrLivro As String,
                                                     ByVal astrConta As String,
                                                     ByVal astrRota As String,
                                                     ByVal astrNome As String,
                                                     Optional ByVal astrLeitAtu As String = "",
                                                     Optional ByVal astrLeitAnt As String = "",
                                                     Optional ByVal adblResiduo As Double = 0,
                                                     Optional ByVal adblResUnid As Double = 0,
                                                     Optional ByVal alngDiasCon As Long = 0,
                                                     Optional ByVal alngDiasEnt As Long = 0,
                                                     Optional ByVal alngDiasLig As Long = 0,
                                                     Optional ByVal alngDiasRel As Long = 0,
                                                     Optional ByVal alngDiasCor As Long = 0,
                                                     Optional ByVal astrAviso As String = "")

        Try
            Dim strsql As String

            strsql = ""
            strsql += "INSERT INTO AUX_AVISO_ANALISE SET "
            strsql += "ZLC = '" & astrZona & "." & astrLivro & "." & astrConta & "',  "
            strsql += "ROTA = '" & astrRota & "',  "
            strsql += "CONSUMO = '" & alngDiasCon & "',  "
            strsql += "LIGACAO = '" & alngDiasLig & "',  "
            strsql += "ENTRADA = '" & alngDiasEnt & "',  "
            strsql += "RELIGACAO = '" & alngDiasRel & "',  "
            strsql += "CORTE = '" & alngDiasCor & "',  "
            strsql += "ATUAL = '" & astrLeitAtu & "',  "
            strsql += "ANTERIOR = '" & astrLeitAnt & "',  "
            strsql += "RESIDUO = '" & adblResiduo & "',  "
            strsql += "RESUC = '" & adblResUnid & "',  "
            strsql += "CODAVISO = '" & alngCodigo & "',  "
            strsql += "AVISO = '" & astrAviso & "'  "
            objExecAtualizaBancoDados.QUERY_NAME = strsql
            repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)

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

    End Sub
    Public Sub sDeletaTabImpressao()
        Try

            Dim strsql As String

            strsql = ""
            strsql = strsql & "DELETE FROM AUX_CONSUMIDORVARIAVEL"
            objExecAtualizaBancoDados.QUERY_NAME = strsql
            repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)

            strsql = ""
            strsql = strsql & "DELETE FROM AUX_AVISO_ANALISE "
            objExecAtualizaBancoDados.QUERY_NAME = strsql
            repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)

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

    Private Sub txt_Refaturamento_Mes_Ano_Nota_Fiscal_Leave(sender As Object, e As EventArgs) Handles txt_Refaturamento_Mes_Ano_Nota_Fiscal.Leave
        Try
            If Trim(Me.txt_Refaturamento_Mes_Ano_Nota_Fiscal.Text) <> "" Then
                Me.txt_Refaturamento_Mes_Ano_Nota_Fiscal.Text = FormataData(txt_Refaturamento_Mes_Ano_Nota_Fiscal, 1)
            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 txtResiduo_Leave(sender As Object, e As EventArgs) Handles txtResiduo.Leave
        Dim classAPIAnalizeProcessamentoFaturas As New classAPIAnalizeProcessamentoFaturas

        classAPIAnalizeProcessamentoFaturas.frmVerifContaGBNovo = Me

        With Me.txtResiduo
            .Text = VB6.Format(.Text, "###,###0")
        End With

        If IsNumeric(Me.txt_Refaturamento_Fatura_Final_Leitura_Atual.Text) Then
            If IsNumeric(Me.txt_Refaturamento_Fatura_Final_Leitura_Anterior.Text) Then
                If IsNumeric(Me.txt_Refaturamento_Fatura_Final_Constante.Text) Then
                    Me.txt_Refaturamento_Fatura_Final_Consumo.Text = CStr(classAPIAnalizeProcessamentoFaturas.CalConsumoN(CDbl(Me.txt_Refaturamento_Fatura_Final_Leitura_Anterior.Text), CDbl(Me.txt_Refaturamento_Fatura_Final_Leitura_Atual.Text), CDbl(Me.txt_Refaturamento_Fatura_Final_Constante.Text), 0, "", "", "", 0, 0, CDbl(Me.txtResiduo.Text), 0, 0))
                End If
            End If
        End If

        classAPIAnalizeProcessamentoFaturas.CalculaRFConsumos("FORM", "")
    End Sub

    Private Sub lsb_Faturamento_Normal_Avisos_DrawItem(sender As Object, e As DrawItemEventArgs) Handles lsb_Faturamento_Normal_Avisos.DrawItem
        Try
            e.DrawBackground()
            Dim strTexto As String = sender.Items(e.Index).ToString()
            Dim brush As Brush


            If strTexto.Contains("Erro -") Then
                brush = Brushes.Red
            Else
                brush = Brushes.Black
            End If

            e.Graphics.DrawString(strTexto, sender.Font, brush, e.Bounds.X, e.Bounds.Y)

        Catch ex As Exception

        End Try
    End Sub

    Private Sub btn_Fatura_Final_Calcular_Click(sender As Object, e As EventArgs) Handles btn_Fatura_Final_Calcular.Click
        Dim result As Boolean



        Dim classAPIAnalizeProcessamentoFaturas As New classAPIAnalizeProcessamentoFaturas

        Try

            classAPIAnalizeProcessamentoFaturas.frmVerifContaGBNovo = Me


            'classAPIAnalizeProcessamentoFaturas.CalculaFatura(lstrZona, lstrLivro, lstrConta, llngUnidId, llngConsId, lstrRota, ldblCfop, lstrFase, lstrTensao, lstrClasse, lstrGruTar, lintDiaVcto, ldteVctoReal,_
            '                                                  ldteLAtual, ldteLAnter, ldteLProxi, ldteAprest, ldteEmissao, lstrNumMed, ldblFpmMed, lstrOcorrencia, lintGerarMedia, ldblLAtual, ldblLAnter, ldblConsLid,_
            '                                                  ldblConsFat, ldblResiduokWh, ldblReversoLAtual, ldblReversoLAnter, (ldblReversokWh + ldblReversokWhRes), ldblReversokWhFat, ldblReversokWhRes, ldblReversokWhRecebido,_ 
            '                                                  ldblIrriganteLAtual, ldblIrriganteLAnter, ldblIrrigantekWh, ldblIrrigantekWhFat, ldblFatorPotencia, ldblLeitkvahrAtual, ldblLeitkvahrAnter, ldblConsumoReativo,_
            '                                                  llngQtdeFaturasGeradas, ldblCustoConexao, ldblLeiAnterPonta, ldblLeiAtualPonta, ldblLeiAnterInter, ldblLeiAtualInter, ldblLeiAnterForaP, ldblLeiAtualForaP, ldblBrancakWhP,_
            '                                                  ldblBrancakWhI, ldblBrancakWhFP, ldblBrancaResP, ldblBrancaResI, ldblBrancaResFP, ldblReversoValorMesAnt, 0, 0, "")

            If result = True Then
                MessageBox.Show("Fatura normal recalculada com sucesso.", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Exit Sub
            Else
                MessageBox.Show("Ocorreu um erro ao realizar o recalculo da fatura normal.", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Exit Sub
            End If


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