Imports fatd_faturamento.BLL.Repositorio
Imports fatd_faturamento.BLL.RegraNegocio
Imports fatd_faturamento.ENTIDADE
Imports BarcodeLib
Imports System.IO

Public Class classAPIGerarFaturas

    'Gerar Faturas API
    Dim strZona As String
    Dim strLivro As String
    Dim strConta As String
    Dim strUsuarioGeradorFaturaAPI As String

    'Global
    Dim istrUsuarioGeradorFatura As String
    Dim istrTabela As String
    Dim istrGrupo As String

    'Form
    Public frmImpFaturas As frmImpFaturas

    Public Sub New()

    End Sub

    Private Sub lClearVariaveisAPI()
        strZona = String.Empty
        strLivro = String.Empty
        strConta = String.Empty
        strUsuarioGeradorFaturaAPI = String.Empty
    End Sub

    Public Function GerarFaturas(ByVal strGrupo As String, ByVal strUsuarioAPI As String) As Boolean

        Dim result As Boolean

        result = False

        Dim objTempFatura As New entidadeTempFatura
        Dim objTempFaturaA As New entidadeTempFaturaA
        Dim objTempHistFaturaA As New entidadeTempHistFaturaA

        Try

            lClearVariaveisAPI()

            strUsuarioGeradorFaturaAPI = strUsuarioAPI

            If strGrupo = "A" Then

                objTempFaturaA.NOMEMAQUINA = strUsuarioGeradorFaturaAPI
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = strUsuarioGeradorFaturaAPI
                lDelete(objTempHistFaturaA)

                GeraFaturaGrupoA("API", 0, String.Empty, 0, 0, "nf")

            ElseIf strGrupo = "B" Then

                objTempFatura.NOMEMAQUINA = strUsuarioGeradorFaturaAPI
                lDelete(objTempFatura)

                GeraFaturaGrupoB("API", 0, String.Empty, 0, 0, "nf")

            End If

            result = True

        Catch ex As Exception
            result = False
        End Try

        GerarFaturas = result

    End Function

    Private Sub lMontarCodBarrasEPixGrupoA(ByRef objTempFaturaA As entidadeTempFaturaA)

        Dim objBarcode As Barcode

        Dim vImgBarcode As Bitmap

        Dim vCodBarcode

        Dim regraNegocioQRCODE As regraNegocioQRCODE = Nothing
        Dim objTempFaturaAImagePixBarras As entidadeTempFaturaAImagePixBarras

        Try
            regraNegocioQRCODE = New regraNegocioQRCODE
            objTempFaturaAImagePixBarras = New entidadeTempFaturaAImagePixBarras

            objBarcode = Nothing
            vImgBarcode = Nothing

            objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
            objTempFaturaAImagePixBarras.NUMNF = objTempFaturaA.NUMNF
            objTempFaturaAImagePixBarras.GRUPO = objTempFaturaA.GRUPO

#Region "Pix"

            'If Not String.IsNullOrWhiteSpace(objIncluirBoletosSicoob.QRCODE) Then
            '    objTempFaturaAImagePixBarras.PIX = objIncluirBoletosSicoob.QRCODE
            '    objTempFaturaAImagePixBarras.IMAGEPIX = regraNegocioQRCODE.ImageToByte(regraNegocioQRCODE.GerarQRCode(200, 200, objTempFaturaAImagePixBarras.PIX))
            'End If

#End Region

#Region "Codigo Barras"

            'If objIncluirBoletosSicoob.STATUS = 200 Then
            '    If Not String.IsNullOrWhiteSpace(objIncluirBoletosSicoob.LINHADIGITAVEL) Then
            '        objTempFaturaA.LINHADIGITAVEL = objIncluirBoletosSicoob.LINHADIGITAVEL
            '    End If
            '    If Not String.IsNullOrWhiteSpace(objIncluirBoletosSicoob.CODIGOBARRAS) Then
            '        objTempFaturaAImagePixBarras.BARRAS = objIncluirBoletosSicoob.CODIGOBARRAS
            '    End If
            'Else
            objTempFaturaAImagePixBarras.BARRAS = objTempFaturaA.CODBARRA
            'End If

            'Barcode
            Using msImgBarcode As New MemoryStream

                vCodBarcode = objTempFaturaAImagePixBarras.BARRAS

                objBarcode = New BarcodeLib.Barcode

                vImgBarcode = New Bitmap(1030, 400)

                Using G = Graphics.FromImage(vImgBarcode)
                    G.Clear(Color.White)
                End Using


                '===== gera a imagem para o codigo de barras =====

                If String.IsNullOrWhiteSpace(objTempFaturaA.AGENC) Then
                    vImgBarcode = objBarcode.Encode(TYPE.Interleaved2of5, vCodBarcode, 1030, 400)
                ElseIf objTempFaturaA.AGENC = "0000" Then
                    vImgBarcode = objBarcode.Encode(TYPE.Interleaved2of5, vCodBarcode, 1030, 400)
                ElseIf objTempFaturaA.AGENC = "009" Then
                    vImgBarcode = objBarcode.Encode(TYPE.Interleaved2of5, vCodBarcode, 1030, 400)
                ElseIf objTempFaturaA.SEGVIA = 1 Then
                    vImgBarcode = objBarcode.Encode(TYPE.Interleaved2of5, vCodBarcode, 1030, 400)
                Else
                    vImgBarcode = objBarcode.Encode(TYPE.Interleaved2of5, vCodBarcode, 1030, 400)
                End If

                vImgBarcode.Save(msImgBarcode, System.Drawing.Imaging.ImageFormat.Bmp)

                objTempFaturaAImagePixBarras.IMAGEBARRAS = msImgBarcode.GetBuffer()

            End Using

#End Region

            lInsert(objTempFaturaAImagePixBarras)

        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFatura As New entidadeTempFatura
                Dim repositorioTempFatura As New repositorioTempFatura

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: lMontarCodBarrasePixGrupoA" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub

        End Try

    End Sub

    Private Sub lMontarCodBarrasEPixGrupoB(ByRef objTempFatura As entidadeTempFatura)

        Dim objBarcode As Barcode

        Dim vImgBarcode As Bitmap

        Dim vCodBarcode

        Dim regraNegocioQRCODE As regraNegocioQRCODE = Nothing
        Dim objTempFaturaBImagePixBarras As entidadeTempFaturaBImagePixBarras

        Try
            regraNegocioQRCODE = New regraNegocioQRCODE
            objTempFaturaBImagePixBarras = New entidadeTempFaturaBImagePixBarras

            objBarcode = Nothing
            vImgBarcode = Nothing

            objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
            objTempFaturaBImagePixBarras.NUMNF = objTempFatura.NUMNF
            objTempFaturaBImagePixBarras.GRUPO = objTempFatura.GRUPO

#Region "Pix"

            'If Not String.IsNullOrWhiteSpace(objIncluirBoletosSicoob.QRCODE) Then
            '    objTempFaturaBImagePixBarras.PIX = objIncluirBoletosSicoob.QRCODE
            '    objTempFaturaBImagePixBarras.IMAGEPIX = regraNegocioQRCODE.ImageToByte(regraNegocioQRCODE.GerarQRCode(200, 200, objTempFaturaBImagePixBarras.PIX))
            'End If

#End Region

#Region "Codigo Barras"

            'If objIncluirBoletosSicoob.STATUS = 200 Then
            '    If Not String.IsNullOrWhiteSpace(objIncluirBoletosSicoob.LINHADIGITAVEL) Then
            '        objTempFatura.LINHADIGITAVEL = objIncluirBoletosSicoob.LINHADIGITAVEL
            '    End If
            '    If Not String.IsNullOrWhiteSpace(objIncluirBoletosSicoob.CODIGOBARRAS) Then
            '        objTempFaturaBImagePixBarras.BARRAS = objIncluirBoletosSicoob.CODIGOBARRAS
            '    End If
            'Else
            objTempFaturaBImagePixBarras.BARRAS = objTempFatura.CODBARRA
            'End If

            'Barcode
            Using msImgBarcode As New MemoryStream

                vCodBarcode = objTempFaturaBImagePixBarras.BARRAS

                objBarcode = New BarcodeLib.Barcode

                vImgBarcode = New Bitmap(1030, 400)

                Using G = Graphics.FromImage(vImgBarcode)
                    G.Clear(Color.White)
                End Using

                '===== gera a imagem para o codigo de barras =====

                If String.IsNullOrWhiteSpace(objTempFatura.AGENC) Then
                    vImgBarcode = objBarcode.Encode(TYPE.Interleaved2of5, vCodBarcode, 1030, 400)
                ElseIf objTempFatura.AGENC = "0000" Then
                    vImgBarcode = objBarcode.Encode(TYPE.Interleaved2of5, vCodBarcode, 1030, 400)
                ElseIf objTempFatura.AGENC = "009" Then
                    vImgBarcode = objBarcode.Encode(TYPE.Interleaved2of5, vCodBarcode, 1030, 400)
                ElseIf objTempFatura.SEGVIA = 1 Then
                    vImgBarcode = objBarcode.Encode(TYPE.Interleaved2of5, vCodBarcode, 1030, 400)
                Else
                    vImgBarcode = objBarcode.Encode(TYPE.Interleaved2of5, vCodBarcode, 1030, 400)
                End If

                vImgBarcode.Save(msImgBarcode, System.Drawing.Imaging.ImageFormat.Bmp)

                objTempFaturaBImagePixBarras.IMAGEBARRAS = msImgBarcode.GetBuffer()

            End Using
#End Region

            lInsert(objTempFaturaBImagePixBarras)

        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempFaturaA As New entidadeTempFaturaA
                Dim repositorioTempFaturaA As New repositorioTempFaturaA

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras

                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: lMontarCodBarrasePixGrupoB" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub

        End Try

    End Sub

    Private Function lApagarArquivosFaturasIndividualPasta(ByVal sCaminho As String) As Boolean

        Dim result As Boolean = True

        Dim arrStr As String() = {}

        arrStr = System.IO.Directory.GetFiles(sCaminho, "*.*")

        If arrStr.Length <> 0 Then

            frmImpFaturas.vResp = MessageBox.Show($"Deseja realmente excluir os registros que contem na pasta {sCaminho} ?", "Confirmação de Exclusão", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)

            If frmImpFaturas.vResp = DialogResult.Yes Then

                For i As Integer = 0 To arrStr.Length - 1

                    Try

                        System.IO.File.Delete(arrStr(i))

                    Catch ex As Exception
                        Continue For
                    End Try

                Next i

                result = True

            ElseIf frmImpFaturas.vResp = DialogResult.No Then
                result = False
            ElseIf frmImpFaturas.vResp = DialogResult.Cancel Then
                result = False
            End If

        End If

        Return result

    End Function

    Private Function MontaFiltroClasse() As String

        Dim lstrAux As String
        Dim lintIdx As Short

        Try

            lstrAux = String.Empty
            With frmImpFaturas.lsvClasses
                If frmImpFaturas.lsvClasses.Items.Item(1).Checked = False Then
                    For lintIdx = 2 To .Items.Count
                        If .Items.Item(lintIdx).Checked = True Then
                            lstrAux = lstrAux & IIf(Len(Trim(lstrAux)) > 0, " OR ", String.Empty) & " FATURAS.CODCLAS " & .Items.Item(lintIdx).SubItems(1).Text
                        End If
                    Next lintIdx
                    lstrAux = " AND (" & lstrAux & ") "
                End If
            End With
            MontaFiltroClasse = lstrAux

        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempFaturaA As New entidadeTempFaturaA
                Dim repositorioTempFaturaA As New repositorioTempFaturaA

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFatura As New entidadeTempFatura
                Dim repositorioTempFatura As New repositorioTempFatura

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: MontaFiltroClasse" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Function

        End Try

    End Function

    Private Sub RefazConsumos(ByVal alngConsId As Integer, ByVal alngUnidId As Integer, ByVal astrZona As String, ByVal astrLivro As String, ByVal astrConta As String, ByVal astrMesAno As String)

        Dim llngDia As Integer
        Dim ldteAtu As Date
        Dim ldteAnt As Date
        Dim lstrLei As String
        Dim lstrMes As String
        Dim lstrMesAnoCanc As String
        Dim ldblCon As Double
        Dim ldtePgt As Date
        Dim lstrPgt As String
        Dim ldblVlr As Double
        Dim lstrOco As String
        Dim ldblMed As Double
        Dim lstrIte As String
        Dim lintCtl As Short

        Dim objConsumos As New entidadeConsumos

        Dim objNf As New entidadeNf
        Dim repositorioNf As New repositorioNf

        Dim vlist

        Try

            objConsumos.ZONA = IIf(String.IsNullOrEmpty(astrZona), String.Empty, astrZona)
            objConsumos.LIVRO = IIf(String.IsNullOrEmpty(astrLivro), String.Empty, astrLivro)
            objConsumos.CONTA = IIf(String.IsNullOrEmpty(astrConta), String.Empty, astrConta)
            objConsumos.UNID_ID = alngUnidId

            lDelete(objConsumos)

            lintCtl = 12

            objNf.ZONA = IIf(String.IsNullOrEmpty(astrZona), String.Empty, astrZona)
            objNf.LIVRO = IIf(String.IsNullOrEmpty(astrLivro), String.Empty, astrLivro)
            objNf.CONTA = IIf(String.IsNullOrEmpty(astrConta), String.Empty, astrConta)
            objNf.CONS_ID = alngConsId
            objNf.UNID_ID = alngUnidId
            'objNf.ANOMES_FAT = astrMesAno
            objNf.ANOMES_FAT = Mid(astrMesAno, 4, 4) & Mid(astrMesAno, 1, 2)
            'objNf.ANOMES_FAT = IIf(String.IsNullOrEmpty(astrMesAno), String.Empty, astrMesAno)

            vlist = repositorioNf.Select_7(objNf)

            If vlist.Count <> 0 Then

                If vlist.Count = 1 Then

                    objConsumos.DIAS0 = 0
                    objConsumos.LEIT0 = 0
                    objConsumos.MESANO0 = " "
                    objConsumos.CONSUMO0 = 0
                    objConsumos.DATAPAG0 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR0 = 0
                    objConsumos.OCORRENCIA0 = " "
                    objConsumos.MEDIA0 = " "

                    objConsumos.DIAS1 = 0
                    objConsumos.LEIT1 = 0
                    objConsumos.MESANO1 = " "
                    objConsumos.CONSUMO1 = 0
                    objConsumos.DATAPAG1 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR1 = 0
                    objConsumos.OCORRENCIA1 = " "
                    objConsumos.MEDIA1 = " "

                    objConsumos.DIAS2 = 0
                    objConsumos.LEIT2 = 0
                    objConsumos.MESANO2 = " "
                    objConsumos.CONSUMO2 = 0
                    objConsumos.DATAPAG2 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR2 = 0
                    objConsumos.OCORRENCIA2 = " "
                    objConsumos.MEDIA2 = " "

                    objConsumos.DIAS3 = 0
                    objConsumos.LEIT3 = 0
                    objConsumos.MESANO3 = " "
                    objConsumos.CONSUMO3 = 0
                    objConsumos.DATAPAG3 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR3 = 0
                    objConsumos.OCORRENCIA3 = " "
                    objConsumos.MEDIA3 = " "

                    objConsumos.DIAS4 = 0
                    objConsumos.LEIT4 = 0
                    objConsumos.MESANO4 = " "
                    objConsumos.CONSUMO4 = 0
                    objConsumos.DATAPAG4 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR4 = 0
                    objConsumos.OCORRENCIA4 = " "
                    objConsumos.MEDIA4 = " "

                    objConsumos.DIAS5 = 0
                    objConsumos.LEIT5 = 0
                    objConsumos.MESANO5 = " "
                    objConsumos.CONSUMO5 = 0
                    objConsumos.DATAPAG5 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR5 = 0
                    objConsumos.OCORRENCIA5 = " "
                    objConsumos.MEDIA5 = " "

                    objConsumos.DIAS6 = 0
                    objConsumos.LEIT6 = 0
                    objConsumos.MESANO6 = " "
                    objConsumos.CONSUMO6 = 0
                    objConsumos.DATAPAG6 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR6 = 0
                    objConsumos.OCORRENCIA6 = " "
                    objConsumos.MEDIA6 = " "

                    objConsumos.DIAS7 = 0
                    objConsumos.LEIT7 = 0
                    objConsumos.MESANO7 = " "
                    objConsumos.CONSUMO7 = 0
                    objConsumos.DATAPAG7 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR7 = 0
                    objConsumos.OCORRENCIA7 = " "
                    objConsumos.MEDIA7 = " "

                    objConsumos.DIAS8 = 0
                    objConsumos.LEIT8 = 0
                    objConsumos.MESANO8 = " "
                    objConsumos.CONSUMO8 = 0
                    objConsumos.DATAPAG8 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR8 = 0
                    objConsumos.OCORRENCIA8 = " "
                    objConsumos.MEDIA8 = " "

                    objConsumos.DIAS9 = 0
                    objConsumos.LEIT9 = 0
                    objConsumos.MESANO9 = " "
                    objConsumos.CONSUMO9 = 0
                    objConsumos.DATAPAG9 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR9 = 0
                    objConsumos.OCORRENCIA9 = " "
                    objConsumos.MEDIA9 = " "

                    objConsumos.DIAS10 = 0
                    objConsumos.LEIT10 = 0
                    objConsumos.MESANO10 = " "
                    objConsumos.CONSUMO10 = 0
                    objConsumos.DATAPAG10 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR10 = 0
                    objConsumos.OCORRENCIA10 = " "
                    objConsumos.MEDIA10 = " "


                ElseIf vlist.Count = 2 Then

                    objConsumos.DIAS0 = 0
                    objConsumos.LEIT0 = 0
                    objConsumos.MESANO0 = " "
                    objConsumos.CONSUMO0 = 0
                    objConsumos.DATAPAG0 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR0 = 0
                    objConsumos.OCORRENCIA0 = " "
                    objConsumos.MEDIA0 = " "

                    objConsumos.DIAS1 = 0
                    objConsumos.LEIT1 = 0
                    objConsumos.MESANO1 = " "
                    objConsumos.CONSUMO1 = 0
                    objConsumos.DATAPAG1 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR1 = 0
                    objConsumos.OCORRENCIA1 = " "
                    objConsumos.MEDIA1 = " "

                    objConsumos.DIAS2 = 0
                    objConsumos.LEIT2 = 0
                    objConsumos.MESANO2 = " "
                    objConsumos.CONSUMO2 = 0
                    objConsumos.DATAPAG2 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR2 = 0
                    objConsumos.OCORRENCIA2 = " "
                    objConsumos.MEDIA2 = " "

                    objConsumos.DIAS3 = 0
                    objConsumos.LEIT3 = 0
                    objConsumos.MESANO3 = " "
                    objConsumos.CONSUMO3 = 0
                    objConsumos.DATAPAG3 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR3 = 0
                    objConsumos.OCORRENCIA3 = " "
                    objConsumos.MEDIA3 = " "

                    objConsumos.DIAS4 = 0
                    objConsumos.LEIT4 = 0
                    objConsumos.MESANO4 = " "
                    objConsumos.CONSUMO4 = 0
                    objConsumos.DATAPAG4 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR4 = 0
                    objConsumos.OCORRENCIA4 = " "
                    objConsumos.MEDIA4 = " "

                    objConsumos.DIAS5 = 0
                    objConsumos.LEIT5 = 0
                    objConsumos.MESANO5 = " "
                    objConsumos.CONSUMO5 = 0
                    objConsumos.DATAPAG5 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR5 = 0
                    objConsumos.OCORRENCIA5 = " "
                    objConsumos.MEDIA5 = " "

                    objConsumos.DIAS6 = 0
                    objConsumos.LEIT6 = 0
                    objConsumos.MESANO6 = " "
                    objConsumos.CONSUMO6 = 0
                    objConsumos.DATAPAG6 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR6 = 0
                    objConsumos.OCORRENCIA6 = " "
                    objConsumos.MEDIA6 = " "

                    objConsumos.DIAS7 = 0
                    objConsumos.LEIT7 = 0
                    objConsumos.MESANO7 = " "
                    objConsumos.CONSUMO7 = 0
                    objConsumos.DATAPAG7 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR7 = 0
                    objConsumos.OCORRENCIA7 = " "
                    objConsumos.MEDIA7 = " "

                    objConsumos.DIAS8 = 0
                    objConsumos.LEIT8 = 0
                    objConsumos.MESANO8 = " "
                    objConsumos.CONSUMO8 = 0
                    objConsumos.DATAPAG8 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR8 = 0
                    objConsumos.OCORRENCIA8 = " "
                    objConsumos.MEDIA8 = " "

                    objConsumos.DIAS9 = 0
                    objConsumos.LEIT9 = 0
                    objConsumos.MESANO9 = " "
                    objConsumos.CONSUMO9 = 0
                    objConsumos.DATAPAG9 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR9 = 0
                    objConsumos.OCORRENCIA9 = " "
                    objConsumos.MEDIA9 = " "


                ElseIf vlist.Count = 3 Then

                    objConsumos.DIAS0 = 0
                    objConsumos.LEIT0 = 0
                    objConsumos.MESANO0 = " "
                    objConsumos.CONSUMO0 = 0
                    objConsumos.DATAPAG0 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR0 = 0
                    objConsumos.OCORRENCIA0 = " "
                    objConsumos.MEDIA0 = " "

                    objConsumos.DIAS1 = 0
                    objConsumos.LEIT1 = 0
                    objConsumos.MESANO1 = " "
                    objConsumos.CONSUMO1 = 0
                    objConsumos.DATAPAG1 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR1 = 0
                    objConsumos.OCORRENCIA1 = " "
                    objConsumos.MEDIA1 = " "

                    objConsumos.DIAS2 = 0
                    objConsumos.LEIT2 = 0
                    objConsumos.MESANO2 = " "
                    objConsumos.CONSUMO2 = 0
                    objConsumos.DATAPAG2 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR2 = 0
                    objConsumos.OCORRENCIA2 = " "
                    objConsumos.MEDIA2 = " "

                    objConsumos.DIAS3 = 0
                    objConsumos.LEIT3 = 0
                    objConsumos.MESANO3 = " "
                    objConsumos.CONSUMO3 = 0
                    objConsumos.DATAPAG3 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR3 = 0
                    objConsumos.OCORRENCIA3 = " "
                    objConsumos.MEDIA3 = " "

                    objConsumos.DIAS4 = 0
                    objConsumos.LEIT4 = 0
                    objConsumos.MESANO4 = " "
                    objConsumos.CONSUMO4 = 0
                    objConsumos.DATAPAG4 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR4 = 0
                    objConsumos.OCORRENCIA4 = " "
                    objConsumos.MEDIA4 = " "

                    objConsumos.DIAS5 = 0
                    objConsumos.LEIT5 = 0
                    objConsumos.MESANO5 = " "
                    objConsumos.CONSUMO5 = 0
                    objConsumos.DATAPAG5 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR5 = 0
                    objConsumos.OCORRENCIA5 = " "
                    objConsumos.MEDIA5 = " "

                    objConsumos.DIAS6 = 0
                    objConsumos.LEIT6 = 0
                    objConsumos.MESANO6 = " "
                    objConsumos.CONSUMO6 = 0
                    objConsumos.DATAPAG6 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR6 = 0
                    objConsumos.OCORRENCIA6 = " "
                    objConsumos.MEDIA6 = " "

                    objConsumos.DIAS7 = 0
                    objConsumos.LEIT7 = 0
                    objConsumos.MESANO7 = " "
                    objConsumos.CONSUMO7 = 0
                    objConsumos.DATAPAG7 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR7 = 0
                    objConsumos.OCORRENCIA7 = " "
                    objConsumos.MEDIA7 = " "

                    objConsumos.DIAS8 = 0
                    objConsumos.LEIT8 = 0
                    objConsumos.MESANO8 = " "
                    objConsumos.CONSUMO8 = 0
                    objConsumos.DATAPAG8 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR8 = 0
                    objConsumos.OCORRENCIA8 = " "
                    objConsumos.MEDIA8 = " "


                ElseIf vlist.Count = 4 Then

                    objConsumos.DIAS0 = 0
                    objConsumos.LEIT0 = 0
                    objConsumos.MESANO0 = " "
                    objConsumos.CONSUMO0 = 0
                    objConsumos.DATAPAG0 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR0 = 0
                    objConsumos.OCORRENCIA0 = " "
                    objConsumos.MEDIA0 = " "

                    objConsumos.DIAS1 = 0
                    objConsumos.LEIT1 = 0
                    objConsumos.MESANO1 = " "
                    objConsumos.CONSUMO1 = 0
                    objConsumos.DATAPAG1 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR1 = 0
                    objConsumos.OCORRENCIA1 = " "
                    objConsumos.MEDIA1 = " "

                    objConsumos.DIAS2 = 0
                    objConsumos.LEIT2 = 0
                    objConsumos.MESANO2 = " "
                    objConsumos.CONSUMO2 = 0
                    objConsumos.DATAPAG2 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR2 = 0
                    objConsumos.OCORRENCIA2 = " "
                    objConsumos.MEDIA2 = " "

                    objConsumos.DIAS3 = 0
                    objConsumos.LEIT3 = 0
                    objConsumos.MESANO3 = " "
                    objConsumos.CONSUMO3 = 0
                    objConsumos.DATAPAG3 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR3 = 0
                    objConsumos.OCORRENCIA3 = " "
                    objConsumos.MEDIA3 = " "

                    objConsumos.DIAS4 = 0
                    objConsumos.LEIT4 = 0
                    objConsumos.MESANO4 = " "
                    objConsumos.CONSUMO4 = 0
                    objConsumos.DATAPAG4 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR4 = 0
                    objConsumos.OCORRENCIA4 = " "
                    objConsumos.MEDIA4 = " "

                    objConsumos.DIAS5 = 0
                    objConsumos.LEIT5 = 0
                    objConsumos.MESANO5 = " "
                    objConsumos.CONSUMO5 = 0
                    objConsumos.DATAPAG5 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR5 = 0
                    objConsumos.OCORRENCIA5 = " "
                    objConsumos.MEDIA5 = " "

                    objConsumos.DIAS6 = 0
                    objConsumos.LEIT6 = 0
                    objConsumos.MESANO6 = " "
                    objConsumos.CONSUMO6 = 0
                    objConsumos.DATAPAG6 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR6 = 0
                    objConsumos.OCORRENCIA6 = " "
                    objConsumos.MEDIA6 = " "

                    objConsumos.DIAS7 = 0
                    objConsumos.LEIT7 = 0
                    objConsumos.MESANO7 = " "
                    objConsumos.CONSUMO7 = 0
                    objConsumos.DATAPAG7 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR7 = 0
                    objConsumos.OCORRENCIA7 = " "
                    objConsumos.MEDIA7 = " "


                ElseIf vlist.Count = 5 Then

                    objConsumos.DIAS0 = 0
                    objConsumos.LEIT0 = 0
                    objConsumos.MESANO0 = " "
                    objConsumos.CONSUMO0 = 0
                    objConsumos.DATAPAG0 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR0 = 0
                    objConsumos.OCORRENCIA0 = " "
                    objConsumos.MEDIA0 = " "

                    objConsumos.DIAS1 = 0
                    objConsumos.LEIT1 = 0
                    objConsumos.MESANO1 = " "
                    objConsumos.CONSUMO1 = 0
                    objConsumos.DATAPAG1 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR1 = 0
                    objConsumos.OCORRENCIA1 = " "
                    objConsumos.MEDIA1 = " "

                    objConsumos.DIAS2 = 0
                    objConsumos.LEIT2 = 0
                    objConsumos.MESANO2 = " "
                    objConsumos.CONSUMO2 = 0
                    objConsumos.DATAPAG2 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR2 = 0
                    objConsumos.OCORRENCIA2 = " "
                    objConsumos.MEDIA2 = " "

                    objConsumos.DIAS3 = 0
                    objConsumos.LEIT3 = 0
                    objConsumos.MESANO3 = " "
                    objConsumos.CONSUMO3 = 0
                    objConsumos.DATAPAG3 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR3 = 0
                    objConsumos.OCORRENCIA3 = " "
                    objConsumos.MEDIA3 = " "

                    objConsumos.DIAS4 = 0
                    objConsumos.LEIT4 = 0
                    objConsumos.MESANO4 = " "
                    objConsumos.CONSUMO4 = 0
                    objConsumos.DATAPAG4 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR4 = 0
                    objConsumos.OCORRENCIA4 = " "
                    objConsumos.MEDIA4 = " "

                    objConsumos.DIAS5 = 0
                    objConsumos.LEIT5 = 0
                    objConsumos.MESANO5 = " "
                    objConsumos.CONSUMO5 = 0
                    objConsumos.DATAPAG5 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR5 = 0
                    objConsumos.OCORRENCIA5 = " "
                    objConsumos.MEDIA5 = " "

                    objConsumos.DIAS6 = 0
                    objConsumos.LEIT6 = 0
                    objConsumos.MESANO6 = " "
                    objConsumos.CONSUMO6 = 0
                    objConsumos.DATAPAG6 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR6 = 0
                    objConsumos.OCORRENCIA6 = " "
                    objConsumos.MEDIA6 = " "


                ElseIf vlist.Count = 6 Then

                    objConsumos.DIAS0 = 0
                    objConsumos.LEIT0 = 0
                    objConsumos.MESANO0 = " "
                    objConsumos.CONSUMO0 = 0
                    objConsumos.DATAPAG0 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR0 = 0
                    objConsumos.OCORRENCIA0 = " "
                    objConsumos.MEDIA0 = " "

                    objConsumos.DIAS1 = 0
                    objConsumos.LEIT1 = 0
                    objConsumos.MESANO1 = " "
                    objConsumos.CONSUMO1 = 0
                    objConsumos.DATAPAG1 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR1 = 0
                    objConsumos.OCORRENCIA1 = " "
                    objConsumos.MEDIA1 = " "

                    objConsumos.DIAS2 = 0
                    objConsumos.LEIT2 = 0
                    objConsumos.MESANO2 = " "
                    objConsumos.CONSUMO2 = 0
                    objConsumos.DATAPAG2 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR2 = 0
                    objConsumos.OCORRENCIA2 = " "
                    objConsumos.MEDIA2 = " "

                    objConsumos.DIAS3 = 0
                    objConsumos.LEIT3 = 0
                    objConsumos.MESANO3 = " "
                    objConsumos.CONSUMO3 = 0
                    objConsumos.DATAPAG3 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR3 = 0
                    objConsumos.OCORRENCIA3 = " "
                    objConsumos.MEDIA3 = " "

                    objConsumos.DIAS4 = 0
                    objConsumos.LEIT4 = 0
                    objConsumos.MESANO4 = " "
                    objConsumos.CONSUMO4 = 0
                    objConsumos.DATAPAG4 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR4 = 0
                    objConsumos.OCORRENCIA4 = " "
                    objConsumos.MEDIA4 = " "

                    objConsumos.DIAS5 = 0
                    objConsumos.LEIT5 = 0
                    objConsumos.MESANO5 = " "
                    objConsumos.CONSUMO5 = 0
                    objConsumos.DATAPAG5 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR5 = 0
                    objConsumos.OCORRENCIA5 = " "
                    objConsumos.MEDIA5 = " "


                ElseIf vlist.Count = 7 Then

                    objConsumos.DIAS0 = 0
                    objConsumos.LEIT0 = 0
                    objConsumos.MESANO0 = " "
                    objConsumos.CONSUMO0 = 0
                    objConsumos.DATAPAG0 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR0 = 0
                    objConsumos.OCORRENCIA0 = " "
                    objConsumos.MEDIA0 = " "

                    objConsumos.DIAS1 = 0
                    objConsumos.LEIT1 = 0
                    objConsumos.MESANO1 = " "
                    objConsumos.CONSUMO1 = 0
                    objConsumos.DATAPAG1 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR1 = 0
                    objConsumos.OCORRENCIA1 = " "
                    objConsumos.MEDIA1 = " "

                    objConsumos.DIAS2 = 0
                    objConsumos.LEIT2 = 0
                    objConsumos.MESANO2 = " "
                    objConsumos.CONSUMO2 = 0
                    objConsumos.DATAPAG2 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR2 = 0
                    objConsumos.OCORRENCIA2 = " "
                    objConsumos.MEDIA2 = " "

                    objConsumos.DIAS3 = 0
                    objConsumos.LEIT3 = 0
                    objConsumos.MESANO3 = " "
                    objConsumos.CONSUMO3 = 0
                    objConsumos.DATAPAG3 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR3 = 0
                    objConsumos.OCORRENCIA3 = " "
                    objConsumos.MEDIA3 = " "

                    objConsumos.DIAS4 = 0
                    objConsumos.LEIT4 = 0
                    objConsumos.MESANO4 = " "
                    objConsumos.CONSUMO4 = 0
                    objConsumos.DATAPAG4 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR4 = 0
                    objConsumos.OCORRENCIA4 = " "
                    objConsumos.MEDIA4 = " "

                ElseIf vlist.Count = 8 Then

                    objConsumos.DIAS0 = 0
                    objConsumos.LEIT0 = 0
                    objConsumos.MESANO0 = " "
                    objConsumos.CONSUMO0 = 0
                    objConsumos.DATAPAG0 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR0 = 0
                    objConsumos.OCORRENCIA0 = " "
                    objConsumos.MEDIA0 = " "

                    objConsumos.DIAS1 = 0
                    objConsumos.LEIT1 = 0
                    objConsumos.MESANO1 = " "
                    objConsumos.CONSUMO1 = 0
                    objConsumos.DATAPAG1 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR1 = 0
                    objConsumos.OCORRENCIA1 = " "
                    objConsumos.MEDIA1 = " "

                    objConsumos.DIAS2 = 0
                    objConsumos.LEIT2 = 0
                    objConsumos.MESANO2 = " "
                    objConsumos.CONSUMO2 = 0
                    objConsumos.DATAPAG2 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR2 = 0
                    objConsumos.OCORRENCIA2 = " "
                    objConsumos.MEDIA2 = " "

                    objConsumos.DIAS3 = 0
                    objConsumos.LEIT3 = 0
                    objConsumos.MESANO3 = " "
                    objConsumos.CONSUMO3 = 0
                    objConsumos.DATAPAG3 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR3 = 0
                    objConsumos.OCORRENCIA3 = " "
                    objConsumos.MEDIA3 = " "



                ElseIf vlist.Count = 9 Then

                    objConsumos.DIAS0 = 0
                    objConsumos.LEIT0 = 0
                    objConsumos.MESANO0 = " "
                    objConsumos.CONSUMO0 = 0
                    objConsumos.DATAPAG0 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR0 = 0
                    objConsumos.OCORRENCIA0 = " "
                    objConsumos.MEDIA0 = " "

                    objConsumos.DIAS1 = 0
                    objConsumos.LEIT1 = 0
                    objConsumos.MESANO1 = " "
                    objConsumos.CONSUMO1 = 0
                    objConsumos.DATAPAG1 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR1 = 0
                    objConsumos.OCORRENCIA1 = " "
                    objConsumos.MEDIA1 = " "

                    objConsumos.DIAS2 = 0
                    objConsumos.LEIT2 = 0
                    objConsumos.MESANO2 = " "
                    objConsumos.CONSUMO2 = 0
                    objConsumos.DATAPAG2 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR2 = 0
                    objConsumos.OCORRENCIA2 = " "
                    objConsumos.MEDIA2 = " "


                ElseIf vlist.Count = 10 Then

                    objConsumos.DIAS0 = 0
                    objConsumos.LEIT0 = 0
                    objConsumos.MESANO0 = " "
                    objConsumos.CONSUMO0 = 0
                    objConsumos.DATAPAG0 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR0 = 0
                    objConsumos.OCORRENCIA0 = " "
                    objConsumos.MEDIA0 = " "

                    objConsumos.DIAS1 = 0
                    objConsumos.LEIT1 = 0
                    objConsumos.MESANO1 = " "
                    objConsumos.CONSUMO1 = 0
                    objConsumos.DATAPAG1 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR1 = 0
                    objConsumos.OCORRENCIA1 = " "
                    objConsumos.MEDIA1 = " "


                ElseIf vlist.Count = 11 Then

                    objConsumos.DIAS0 = 0
                    objConsumos.LEIT0 = 0
                    objConsumos.MESANO0 = " "
                    objConsumos.CONSUMO0 = 0
                    objConsumos.DATAPAG0 = Convert.ToDateTime("01/01/0001")
                    objConsumos.VALOR0 = 0
                    objConsumos.OCORRENCIA0 = " "
                    objConsumos.MEDIA0 = " "

                End If

                For Each objNfFor As entidadeNf In vlist

                    lintCtl = lintCtl - 1

                    ldteAtu = CDate(IIf(IsDBNull(objNfFor.DATALEIT), "1900-01-01", objNfFor.DATALEIT))
                    ldteAnt = CDate(IIf(IsDBNull(objNfFor.DATALEITANT), "1900-01-01", objNfFor.DATALEITANT))
                    llngDia = DateDiff(Microsoft.VisualBasic.DateInterval.Day, ldteAnt, ldteAtu)
                    lstrMes = IIf(IsDBNull(objNfFor.MESANO), String.Empty, objNfFor.MESANO)
                    lstrMesAnoCanc = Trim(IIf(IsDBNull(objNfFor.CANCELADA_MESANO), String.Empty, objNfFor.CANCELADA_MESANO))
                    ldtePgt = CDate(IIf(IsDBNull(objNfFor.DATAPAG), "1900-01-01", objNfFor.DATAPAG))
                    ldblVlr = CDbl(IIf(IsDBNull(objNfFor.VALORTOT), 0, objNfFor.VALORTOT))
                    lstrIte = IIf(IsDBNull(objNfFor.ITENSSERV), String.Empty, objNfFor.ITENSSERV)

                    If CDate(ldtePgt) = CDate("01/01/1900") Or CDate(ldtePgt) = CDate("01/01/0001") Then
                        lstrPgt = "0001-01-01"
                    Else
                        lstrPgt = VB6.Format(ldtePgt, "yyyy-MM-dd")
                    End If

                    If Len(lstrIte) > 0 Then
                        lstrLei = CStr(BuscaVlrItem(lstrIte, "0302990039"))
                        ldblCon = Arredondar(BuscaVlrItem(lstrIte, "030201008"), 0)
                        If InStr(1, lstrIte, "90410000") > 0 Then
                            lstrOco = Mid(lstrIte, InStr(1, lstrIte, "90410000"), 10)
                            ldblMed = BuscaVlrItem(lstrIte, lstrOco)
                        Else
                            lstrOco = CStr(0)
                            ldblMed = 0
                        End If
                    Else
                        lstrLei = CStr(0)
                        ldblCon = 0
                        lstrOco = CStr(0)
                        ldblMed = 0
                    End If

                    objConsumos.ZONA = IIf(String.IsNullOrEmpty(astrZona), String.Empty, astrZona)
                    objConsumos.LIVRO = IIf(String.IsNullOrEmpty(astrLivro), String.Empty, astrLivro)
                    objConsumos.CONTA = IIf(String.IsNullOrEmpty(astrConta), String.Empty, astrConta)
                    objConsumos.UNID_ID = alngUnidId
                    objConsumos.CONS_ID = alngConsId

                    If lintCtl = 0 Then

                        objConsumos.DIAS0 = llngDia

                        If IsNumeric(lstrLei) Then
                            objConsumos.LEIT0 = Arredondar(CDbl(IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)), 0)
                        Else
                            objConsumos.LEIT0 = IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)
                        End If

                        objConsumos.MESANO0 = IIf(IIf(String.IsNullOrEmpty(lstrMesAnoCanc), String.Empty, lstrMesAnoCanc) <> String.Empty, lstrMesAnoCanc, lstrMes)
                        objConsumos.CONSUMO0 = ldblCon
                        objConsumos.DATAPAG0 = IIf(String.IsNullOrEmpty(lstrPgt), String.Empty, lstrPgt)
                        objConsumos.VALOR0 = ldblVlr
                        objConsumos.OCORRENCIA0 = CInt(Microsoft.VisualBasic.Right(lstrOco, 2))
                        objConsumos.MEDIA0 = ldblMed

                    ElseIf lintCtl = 1 Then

                        objConsumos.DIAS1 = llngDia

                        If IsNumeric(lstrLei) Then
                            objConsumos.LEIT1 = Arredondar(CDbl(IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)), 0)
                        Else
                            objConsumos.LEIT1 = IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)
                        End If

                        objConsumos.MESANO1 = IIf(IIf(String.IsNullOrEmpty(lstrMesAnoCanc), String.Empty, lstrMesAnoCanc) <> String.Empty, lstrMesAnoCanc, lstrMes)
                        objConsumos.CONSUMO1 = ldblCon
                        objConsumos.DATAPAG1 = IIf(String.IsNullOrEmpty(lstrPgt), String.Empty, lstrPgt)
                        objConsumos.VALOR1 = ldblVlr
                        objConsumos.OCORRENCIA1 = CInt(Microsoft.VisualBasic.Right(lstrOco, 2))
                        objConsumos.MEDIA1 = ldblMed



                    ElseIf lintCtl = 2 Then

                        objConsumos.DIAS2 = llngDia

                        If IsNumeric(lstrLei) Then
                            objConsumos.LEIT2 = Arredondar(CDbl(IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)), 0)
                        Else
                            objConsumos.LEIT2 = IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)
                        End If

                        objConsumos.MESANO2 = IIf(IIf(String.IsNullOrEmpty(lstrMesAnoCanc), String.Empty, lstrMesAnoCanc) <> String.Empty, lstrMesAnoCanc, lstrMes)
                        objConsumos.CONSUMO2 = ldblCon
                        objConsumos.DATAPAG2 = IIf(String.IsNullOrEmpty(lstrPgt), String.Empty, lstrPgt)
                        objConsumos.VALOR2 = ldblVlr
                        objConsumos.OCORRENCIA2 = CInt(Microsoft.VisualBasic.Right(lstrOco, 2))
                        objConsumos.MEDIA2 = ldblMed

                    ElseIf lintCtl = 3 Then

                        objConsumos.DIAS3 = llngDia

                        If IsNumeric(lstrLei) Then
                            objConsumos.LEIT3 = Arredondar(CDbl(IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)), 0)
                        Else
                            objConsumos.LEIT3 = IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)
                        End If

                        objConsumos.MESANO3 = IIf(IIf(String.IsNullOrEmpty(lstrMesAnoCanc), String.Empty, lstrMesAnoCanc) <> String.Empty, lstrMesAnoCanc, lstrMes)
                        objConsumos.CONSUMO3 = ldblCon
                        objConsumos.DATAPAG3 = IIf(String.IsNullOrEmpty(lstrPgt), String.Empty, lstrPgt)
                        objConsumos.VALOR3 = ldblVlr
                        objConsumos.OCORRENCIA3 = CInt(Microsoft.VisualBasic.Right(lstrOco, 2))
                        objConsumos.MEDIA3 = ldblMed

                    ElseIf lintCtl = 4 Then

                        objConsumos.DIAS4 = llngDia

                        If IsNumeric(lstrLei) Then
                            objConsumos.LEIT4 = Arredondar(CDbl(IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)), 0)
                        Else
                            objConsumos.LEIT4 = IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)
                        End If

                        objConsumos.MESANO4 = IIf(IIf(String.IsNullOrEmpty(lstrMesAnoCanc), String.Empty, lstrMesAnoCanc) <> String.Empty, lstrMesAnoCanc, lstrMes)
                        objConsumos.CONSUMO4 = ldblCon
                        objConsumos.DATAPAG4 = IIf(String.IsNullOrEmpty(lstrPgt), String.Empty, lstrPgt)
                        objConsumos.VALOR4 = ldblVlr
                        objConsumos.OCORRENCIA4 = CInt(Microsoft.VisualBasic.Right(lstrOco, 2))
                        objConsumos.MEDIA4 = ldblMed

                    ElseIf lintCtl = 5 Then

                        objConsumos.DIAS5 = llngDia

                        If IsNumeric(lstrLei) Then
                            objConsumos.LEIT5 = Arredondar(CDbl(IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)), 0)
                        Else
                            objConsumos.LEIT5 = IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)
                        End If

                        objConsumos.MESANO5 = IIf(IIf(String.IsNullOrEmpty(lstrMesAnoCanc), String.Empty, lstrMesAnoCanc) <> String.Empty, lstrMesAnoCanc, lstrMes)
                        objConsumos.CONSUMO5 = ldblCon
                        objConsumos.DATAPAG5 = IIf(String.IsNullOrEmpty(lstrPgt), String.Empty, lstrPgt)
                        objConsumos.VALOR5 = ldblVlr
                        objConsumos.OCORRENCIA5 = CInt(Microsoft.VisualBasic.Right(lstrOco, 2))
                        objConsumos.MEDIA5 = ldblMed

                    ElseIf lintCtl = 6 Then

                        objConsumos.DIAS6 = llngDia

                        If IsNumeric(lstrLei) Then
                            objConsumos.LEIT6 = Arredondar(CDbl(IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)), 0)
                        Else
                            objConsumos.LEIT6 = IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)
                        End If

                        objConsumos.MESANO6 = IIf(IIf(String.IsNullOrEmpty(lstrMesAnoCanc), String.Empty, lstrMesAnoCanc) <> String.Empty, lstrMesAnoCanc, lstrMes)
                        objConsumos.CONSUMO6 = ldblCon
                        objConsumos.DATAPAG6 = IIf(String.IsNullOrEmpty(lstrPgt), String.Empty, lstrPgt)
                        objConsumos.VALOR6 = ldblVlr
                        objConsumos.OCORRENCIA6 = CInt(Microsoft.VisualBasic.Right(lstrOco, 2))
                        objConsumos.MEDIA6 = ldblMed

                    ElseIf lintCtl = 7 Then

                        objConsumos.DIAS7 = llngDia

                        If IsNumeric(lstrLei) Then
                            objConsumos.LEIT7 = Arredondar(CDbl(IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)), 0)
                        Else
                            objConsumos.LEIT7 = IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)
                        End If

                        objConsumos.MESANO7 = IIf(IIf(String.IsNullOrEmpty(lstrMesAnoCanc), String.Empty, lstrMesAnoCanc) <> String.Empty, lstrMesAnoCanc, lstrMes)
                        objConsumos.CONSUMO7 = ldblCon
                        objConsumos.DATAPAG7 = IIf(String.IsNullOrEmpty(lstrPgt), String.Empty, lstrPgt)
                        objConsumos.VALOR7 = ldblVlr
                        objConsumos.OCORRENCIA7 = CInt(Microsoft.VisualBasic.Right(lstrOco, 2))
                        objConsumos.MEDIA7 = ldblMed


                    ElseIf lintCtl = 8 Then

                        objConsumos.DIAS8 = llngDia

                        If IsNumeric(lstrLei) Then
                            objConsumos.LEIT8 = Arredondar(CDbl(IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)), 0)
                        Else
                            objConsumos.LEIT8 = IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)
                        End If

                        objConsumos.MESANO8 = IIf(IIf(String.IsNullOrEmpty(lstrMesAnoCanc), String.Empty, lstrMesAnoCanc) <> String.Empty, lstrMesAnoCanc, lstrMes)
                        objConsumos.CONSUMO8 = ldblCon
                        objConsumos.DATAPAG8 = IIf(String.IsNullOrEmpty(lstrPgt), String.Empty, lstrPgt)
                        objConsumos.VALOR8 = ldblVlr
                        objConsumos.OCORRENCIA8 = CInt(Microsoft.VisualBasic.Right(lstrOco, 2))
                        objConsumos.MEDIA8 = ldblMed


                    ElseIf lintCtl = 9 Then

                        objConsumos.DIAS9 = llngDia

                        If IsNumeric(lstrLei) Then
                            objConsumos.LEIT9 = Arredondar(CDbl(IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)), 0)
                        Else
                            objConsumos.LEIT9 = IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)
                        End If

                        objConsumos.MESANO9 = IIf(IIf(String.IsNullOrEmpty(lstrMesAnoCanc), String.Empty, lstrMesAnoCanc) <> String.Empty, lstrMesAnoCanc, lstrMes)
                        objConsumos.CONSUMO9 = ldblCon
                        objConsumos.DATAPAG9 = IIf(String.IsNullOrEmpty(lstrPgt), String.Empty, lstrPgt)
                        objConsumos.VALOR9 = ldblVlr
                        objConsumos.OCORRENCIA9 = CInt(Microsoft.VisualBasic.Right(lstrOco, 2))
                        objConsumos.MEDIA9 = ldblMed

                    ElseIf lintCtl = 10 Then

                        objConsumos.DIAS10 = llngDia

                        If IsNumeric(lstrLei) Then
                            objConsumos.LEIT10 = Arredondar(CDbl(IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)), 0)
                        Else
                            objConsumos.LEIT10 = IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)
                        End If

                        objConsumos.MESANO10 = IIf(IIf(String.IsNullOrEmpty(lstrMesAnoCanc), String.Empty, lstrMesAnoCanc) <> String.Empty, lstrMesAnoCanc, lstrMes)
                        objConsumos.CONSUMO10 = ldblCon
                        objConsumos.DATAPAG10 = IIf(String.IsNullOrEmpty(lstrPgt), String.Empty, lstrPgt)
                        objConsumos.VALOR10 = ldblVlr
                        objConsumos.OCORRENCIA10 = CInt(Microsoft.VisualBasic.Right(lstrOco, 2))
                        objConsumos.MEDIA10 = ldblMed

                    ElseIf lintCtl = 11 Then

                        objConsumos.DIAS11 = llngDia

                        If IsNumeric(lstrLei) Then
                            objConsumos.LEIT11 = Arredondar(CDbl(IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)), 0)
                        Else
                            objConsumos.LEIT11 = IIf(String.IsNullOrEmpty(lstrLei), String.Empty, lstrLei)
                        End If

                        objConsumos.MESANO11 = IIf(IIf(String.IsNullOrEmpty(lstrMesAnoCanc), String.Empty, lstrMesAnoCanc) <> String.Empty, lstrMesAnoCanc, lstrMes)
                        objConsumos.CONSUMO11 = ldblCon
                        objConsumos.DATAPAG11 = IIf(String.IsNullOrEmpty(lstrPgt), String.Empty, lstrPgt)
                        objConsumos.VALOR11 = ldblVlr
                        objConsumos.OCORRENCIA11 = CInt(Microsoft.VisualBasic.Right(lstrOco, 2))
                        objConsumos.MEDIA11 = ldblMed

                    End If

                Next

                lInsert(objConsumos)

            End If

        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempFaturaA As New entidadeTempFaturaA
                Dim repositorioTempFaturaA As New repositorioTempFaturaA

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFatura As New entidadeTempFatura
                Dim repositorioTempFatura As New repositorioTempFatura

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: RefazConsumos" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub

        End Try

    End Sub

    Private Function VerificaQuitacaoDebito(ByVal alngConsId As Integer, ByVal alngAno As Integer, ByVal astrZona As String, ByVal astrLivro As String, ByVal astrConta As String) As String

        Dim ldteMenor As Date
        Dim ldteMaior As Date
        Dim lstrRet As String

        Dim objDeclaracaoDebito As New entidadeDeclaracaoDebito
        Dim repositorioDeclaracaoDebito As New repositorioDeclaracaoDebito

        Dim objDeclaracaoDebitoFaturas As New entidadeDeclaracaoDebitoFaturas
        Dim repositorioDeclaracaoDebitoFaturas As New repositorioDeclaracaoDebitoFaturas

        Dim vlist

        Dim dt As DataTable

        Try

            objDeclaracaoDebito.ANO = alngAno
            objDeclaracaoDebito.CONS_ID = alngConsId
            objDeclaracaoDebito.ZONA = astrZona
            objDeclaracaoDebito.LIVRO = astrLivro
            objDeclaracaoDebito.CONTA = astrConta

            dt = repositorioDeclaracaoDebito.SelectCount(objDeclaracaoDebito)

            If Convert.ToInt32(dt.Rows(0).ItemArray(0).ToString()) > 0 Then

                objDeclaracaoDebitoFaturas.ANO = alngAno
                objDeclaracaoDebitoFaturas.CONS_ID = alngConsId
                objDeclaracaoDebitoFaturas.ZONA = astrZona
                objDeclaracaoDebitoFaturas.LIVRO = astrLivro
                objDeclaracaoDebitoFaturas.CONTA = astrConta

                vlist = repositorioDeclaracaoDebitoFaturas.Select(objDeclaracaoDebitoFaturas)

                If vlist.Count <> 0 Then

                    For Each objDeclaracaoDebitoFaturasFor As entidadeDeclaracaoDebitoFaturas In vlist

                        ldteMenor = CDate(IIf(IsDBNull(objDeclaracaoDebitoFaturasFor.DATAVENC), "1900-01-01", objDeclaracaoDebitoFaturasFor.DATAVENC))
                        ldteMaior = CDate(IIf(IsDBNull(objDeclaracaoDebitoFaturasFor.DATAPAG), "1900-01-01", objDeclaracaoDebitoFaturasFor.DATAPAG))

                        'lstrRet = "Conforme Lei 12.007, de 29 de Julho de 2009 Art. 2º § 1º.Certifico, a vista de " & vbCrLf & _
                        '"documentos comprobatórios e pesquisa de registros na nossa base de dados, que " & vbCrLf & _
                        '"esta unidade consumidora, se encontra em situação regular, sem débitos, acordos " & vbCrLf & _
                        '"ou serviços a faturar, no período de Janeiro a Dezembro de " & alngAno & "." & vbCrLf

                        'lstrRet = String.Empty
                        'lstrRet = lstrRet & "Atendendo ao §1º Art.2 e Art.4 Lei 12.007/2009 e Art.125 REN.414/2010-ANEEL,    " & vbCrLf
                        'lstrRet = lstrRet & "declaramos quitadas e substituídas pela presente declaração as notas fiscais de " & vbCrLf
                        'lstrRet = lstrRet & "energia elétrica desta unidade consumidora, com vencimento " & Microsoft.VisualBasic.Right("         " & Retorna_Mes(CByte(VB6.Format(ldteMenor, "MM"))), 9) & " a " & Microsoft.VisualBasic.Right("         " & Retorna_Mes(CByte(VB6.Format(ldteMaior, "MM"))), 9) & vbCrLf
                        'lstrRet = lstrRet & alngAno & " e dos anos anteriores. Os casos de procedimento irregular (furto de energia" & vbCrLf
                        'lstrRet = lstrRet & "ou fraude de qualquer natureza) sujeitos a revisão de consumo, débitos ajuizados" & vbCrLf
                        'lstrRet = lstrRet & "ou eventuais cobranças previstas nos Arts.129 a 133 REN.414/2010, não constam   " & vbCrLf
                        'lstrRet = lstrRet & "nesta declaração."

                        lstrRet = String.Empty
                        lstrRet = lstrRet & "ESTA UC NÃO POSSUI DÉBITOS RELATIVOS AO ANO DE " & alngAno & " E ANTERIORES, " & vbCrLf
                        lstrRet = lstrRet & "ESTA DECLARAÇÃO É COMPROVANTE DE PAGAMENTO, E, SUBSTÍTUI PARA COMPROVAÇÃO DO CUMPRIMENTO DAS OBRIGAÇÕES AS QUITAÇÕES DOS FATURAMENTO MENSAIS DOS DÉBITOS DO ANO A QUE SE REFERE, BEM COMO DOS ANOS ANTERIORES."
                    Next

                Else
                    lstrRet = String.Empty
                End If


            Else
                lstrRet = String.Empty
            End If

            VerificaQuitacaoDebito = lstrRet

        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempFaturaA As New entidadeTempFaturaA
                Dim repositorioTempFaturaA As New repositorioTempFaturaA

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFatura As New entidadeTempFatura
                Dim repositorioTempFatura As New repositorioTempFatura

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: VerificaQuitacaoDebito" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Function

        End Try

    End Function

    Private Sub MaiorMenorMediaConsumos(ByVal alngUnidId As Integer, ByVal alngConsId As Integer, ByVal adblConsumoAtual As Double, ByRef adblMaior As Double, ByRef adblMenor As Double, ByRef adblMedia As Double, ByRef astrMesMa As String, ByRef astrMesMe As String)

        Dim ldblAcumulado As Double
        Dim lintConta As Short
        Dim ldblConsumo As Double
        Dim lstrItens As String

        Dim vlist

        Dim objNf As New entidadeNf
        Dim repositorioNf As New repositorioNf

        adblMaior = adblConsumoAtual
        adblMenor = adblConsumoAtual

        lintConta = 0
        ldblAcumulado = 0

        Try

            objNf.UNID_ID = alngUnidId
            objNf.CONS_ID = alngConsId

            vlist = repositorioNf.Select_6(objNf)

            If vlist.Count <> 0 Then

                For Each objNfFor As entidadeNf In vlist

                    lstrItens = IIf(IsDBNull(objNfFor.ITENSSERV), String.Empty, objNfFor.ITENSSERV)
                    ldblConsumo = BuscaVlrItem(lstrItens, "030201008")

                    If ldblConsumo > adblMaior Then
                        adblMaior = ldblConsumo
                    End If

                    If ldblConsumo < adblMenor Then
                        adblMenor = ldblConsumo
                    End If

                    lintConta = lintConta + 1

                    If lintConta <= 3 Then
                        ldblAcumulado = ldblAcumulado + ldblConsumo
                    End If

                Next

                adblMedia = Arredondar(ldblAcumulado / 3, 0)

            End If

        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempFaturaA As New entidadeTempFaturaA
                Dim repositorioTempFaturaA As New repositorioTempFaturaA

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFatura As New entidadeTempFatura
                Dim repositorioTempFatura As New repositorioTempFatura

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: MaiorMenorMediaConsumos" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub

        End Try

    End Sub

    Private Function lEsconderNumerosCpfCnpj(ByVal vCpfCnpj As String) As String

        Dim result As String

        result = String.Empty

        If (vCpfCnpj.Length = 14) Then
            result = "******" + vCpfCnpj.Substring(6, 6) + "**"
        ElseIf (vCpfCnpj.Length = 11) Then
            result = "******" + vCpfCnpj.Substring(6, 3) + "**"
        End If


        Return result

    End Function

    Private Function MontaReaviso(ByVal alngConsId As Integer, ByVal alngUnidId As Integer, ByVal astrZona As String, ByVal astrLivro As String, ByVal astrConta As String, ByVal astrCodClas As String, ByVal adteApresentacao As Date, ByVal adblNumNf As Double, ByVal aintAnoMesFat As Integer) As String

        Dim ldteVencReav As Date
        Dim ldblNumNF As Double
        Dim lstrMesAno As String
        Dim ldblValor As Double
        Dim lstrRetorno As String
        Dim lstrMensagem As String
        Dim lstrSituacao As String

        Dim vlist

        Dim objConcorte As New entidadeConcorte
        Dim repositorioConcorte As New repositorioConcorte

        Try

            lstrRetorno = String.Empty

            If gstrReaviso_na_fatura = "S" Then

                ldteVencReav = System.DateTime.FromOADate(adteApresentacao.ToOADate + 15)

                objConcorte.CONS_ID = alngConsId
                objConcorte.UNID_ID = alngUnidId
                objConcorte.ZONA = astrZona
                objConcorte.LIVRO = astrLivro
                objConcorte.CONTA = astrConta
                objConcorte.FAT_NUMNF = adblNumNf
                objConcorte.FAT_ANOMES_FAT = aintAnoMesFat

                vlist = repositorioConcorte.Select(objConcorte)

                If vlist.Count <> 0 Then

                    For Each objConcorteFor As entidadeConcorte In vlist

                        ldblNumNF = CDbl(IIf(IsDBNull(objConcorteFor.NUMNF), 0, objConcorteFor.NUMNF))
                        lstrMesAno = Trim(IIf(IsDBNull(objConcorteFor.MESANO), String.Empty, objConcorteFor.MESANO))
                        ldblValor = CDbl(IIf(IsDBNull(objConcorteFor.VALOR), 0, objConcorteFor.VALOR))
                        ldteVencReav = CDate(IIf(IsDBNull(objConcorteFor.DATAVENC), "1951-01-01", objConcorteFor.DATAVENC))
                        lstrSituacao = Trim(IIf(IsDBNull(objConcorteFor.SIT), String.Empty, objConcorteFor.SIT))

                        'atualizar o prazo do reaviso na concorte

                        objConcorte.PRAZOREAV = VB6.Format(ldteVencReav, "yyyy-MM-dd")
                        objConcorte.CONS_ID = alngConsId
                        objConcorte.UNID_ID = alngUnidId
                        objConcorte.ZONA = astrZona
                        objConcorte.LIVRO = astrLivro
                        objConcorte.CONTA = astrConta
                        objConcorte.MESANO = lstrMesAno
                        objConcorte.NUMNF = ldblNumNF
                        objConcorte.SIT = lstrSituacao


                        lUpdate(objConcorte)

                        If astrCodClas = 9102 Or astrCodClas = 9105 Then
                            lstrMensagem = "APÓS O RECEBIMENTO DESTE REAVISO DE VENCIMENTO, FICA CONCEDIDO O PRAZO DE 30 DIAS PARA REGULARIZAÇÃO."
                        Else
                            lstrMensagem = "APÓS O RECEBIMENTO DESTE REAVISO DE VENCIMENTO, FICA CONCEDIDO O PRAZO DE 15 DIAS PARA REGULARIZAÇÃO."
                        End If

                        lstrRetorno = String.Empty
                        lstrRetorno = lstrRetorno & "'" & VB6.Format(ldteVencReav, "yyyy-MM-dd") & "'; "
                        lstrRetorno = lstrRetorno & " " & ldblNumNF & "; "
                        lstrRetorno = lstrRetorno & " " & Replace(CStr(ldblValor), ",", ".") & "; "
                        lstrRetorno = lstrRetorno & "'" & lstrMesAno & "'; "
                        lstrRetorno = lstrRetorno & "'" & astrZona & "." & astrLivro & "." & astrConta & "'; "
                        lstrRetorno = lstrRetorno & "'" & lstrMensagem & "'; "

                    Next

                Else
                    lstrRetorno = String.Empty
                    lstrRetorno = lstrRetorno & "0000-00-00; "
                    lstrRetorno = lstrRetorno & "0; "
                    lstrRetorno = lstrRetorno & "0.00; "
                    lstrRetorno = lstrRetorno & "''; "
                    lstrRetorno = lstrRetorno & "''; "
                    lstrRetorno = lstrRetorno & "''; "
                End If

            Else
                lstrRetorno = String.Empty
                lstrRetorno = lstrRetorno & "0000-00-00, "
                lstrRetorno = lstrRetorno & "0, "
                lstrRetorno = lstrRetorno & "0.00, "
                lstrRetorno = lstrRetorno & "'', "
                lstrRetorno = lstrRetorno & "'', "
                lstrRetorno = lstrRetorno & "'', "
            End If

            MontaReaviso = lstrRetorno

        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempFaturaA As New entidadeTempFaturaA
                Dim repositorioTempFaturaA As New repositorioTempFaturaA

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFatura As New entidadeTempFatura
                Dim repositorioTempFatura As New repositorioTempFatura

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: MontaReaviso" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Function

        End Try


    End Function

    Private Sub VerificaCriaTempItemFatura(ByVal strLocalProjeto As String, ByVal adblNumNf As Double, ByVal astrMesAnoRef As String, ByVal aintAnoMes_Fat As Integer, ByVal astrGrupo As String)

        Dim objTempItemFatura As New entidadeTempItemFatura
        Dim repositorioTempItemFatura As New repositorioTempItemFatura

        Dim objTempItemFaturaB As New entidadeTempItemFaturaB
        Dim repositorioTempItemFaturaB As New repositorioTempItemFaturaB

        Dim objNf As New entidadeNf
        Dim repositorioNf As New repositorioNf

        Dim dt As DataTable

        Try

            If astrGrupo = "A" Then

                If strLocalProjeto.ToUpper() = "API" Then

                    If istrTabela <> "nf" Then

                        objTempItemFatura.NUMNF = adblNumNf
                        objTempItemFatura.MESANO = astrMesAnoRef
                        objTempItemFatura.ANOMES_FAT = aintAnoMes_Fat

                        repositorioTempItemFatura.Execute(objTempItemFatura)

                    Else

                        objNf.NUMNF = adblNumNf
                        objNf.MESANO_REF = astrMesAnoRef
                        objNf.ANOMES_FAT = aintAnoMes_Fat

                        repositorioNf.Execute(objNf)

                    End If

                ElseIf strLocalProjeto.ToUpper() = "FORM" Then

                    If Not String.IsNullOrEmpty(frmImpFaturas.strForm) Then

                        If frmImpFaturas.strForm = "frmFatGrupoAaaa" Then

                            objTempItemFatura.NUMNF = adblNumNf
                            objTempItemFatura.MESANO = astrMesAnoRef
                            objTempItemFatura.ANOMES_FAT = aintAnoMes_Fat

                            dt = repositorioTempItemFatura.SelectCount(objTempItemFatura)

                            If Convert.ToInt32(dt.Rows(0).ItemArray(0).ToString()) = 0 Then

                                If istrTabela <> "nf" Then

                                    objTempItemFatura.NUMNF = adblNumNf
                                    objTempItemFatura.MESANO = astrMesAnoRef
                                    objTempItemFatura.ANOMES_FAT = aintAnoMes_Fat

                                    repositorioTempItemFatura.Execute(objTempItemFatura)

                                Else

                                    objNf.NUMNF = adblNumNf
                                    objNf.MESANO_REF = astrMesAnoRef
                                    objNf.ANOMES_FAT = aintAnoMes_Fat

                                    repositorioNf.Execute(objNf)

                                End If

                            End If

                        Else

                            If istrTabela <> "nf" Then

                                objTempItemFatura.NUMNF = adblNumNf
                                objTempItemFatura.MESANO = astrMesAnoRef
                                objTempItemFatura.ANOMES_FAT = aintAnoMes_Fat

                                repositorioTempItemFatura.Execute(objTempItemFatura)

                            Else

                                objNf.NUMNF = adblNumNf
                                objNf.MESANO_REF = astrMesAnoRef
                                objNf.ANOMES_FAT = aintAnoMes_Fat

                                repositorioNf.Execute(objNf)

                            End If

                        End If

                    Else

                        If istrTabela <> "nf" Then

                            objTempItemFatura.NUMNF = adblNumNf
                            objTempItemFatura.MESANO = astrMesAnoRef
                            objTempItemFatura.ANOMES_FAT = aintAnoMes_Fat

                            repositorioTempItemFatura.Execute(objTempItemFatura)

                        Else

                            objNf.NUMNF = adblNumNf
                            objNf.MESANO_REF = astrMesAnoRef
                            objNf.ANOMES_FAT = aintAnoMes_Fat

                            repositorioNf.Execute(objNf)

                        End If

                    End If

                End If

            ElseIf astrGrupo = "B" Then

                If strLocalProjeto.ToUpper() = "API" Then

                    If istrTabela <> "nf" Then

                        objTempItemFaturaB.NUMNF = adblNumNf
                        objTempItemFaturaB.MESANO = astrMesAnoRef
                        objTempItemFaturaB.ANOMES_FAT = aintAnoMes_Fat

                        repositorioTempItemFaturaB.Execute(objTempItemFaturaB)

                    Else

                        objNf.NUMNF = adblNumNf
                        objNf.MESANO_REF = astrMesAnoRef
                        objNf.ANOMES_FAT = aintAnoMes_Fat

                        repositorioNf.Execute_1(objNf)

                    End If

                ElseIf strLocalProjeto.ToUpper() = "FORM" Then

                    If Not String.IsNullOrEmpty(frmImpFaturas.strForm) Then

                        If frmImpFaturas.strForm = "frmFatGrupoAaaa" Then

                            objTempItemFaturaB.NUMNF = adblNumNf
                            objTempItemFaturaB.MESANO = astrMesAnoRef
                            objTempItemFaturaB.ANOMES_FAT = aintAnoMes_Fat

                            dt = repositorioTempItemFaturaB.SelectCount(objTempItemFaturaB)

                            If Convert.ToInt32(dt.Rows(0).ItemArray(0).ToString()) = 0 Then

                                If istrTabela <> "nf" Then

                                    objTempItemFaturaB.NUMNF = adblNumNf
                                    objTempItemFaturaB.MESANO = astrMesAnoRef
                                    objTempItemFaturaB.ANOMES_FAT = aintAnoMes_Fat

                                    repositorioTempItemFaturaB.Execute(objTempItemFaturaB)

                                Else

                                    objNf.NUMNF = adblNumNf
                                    objNf.MESANO_REF = astrMesAnoRef
                                    objNf.ANOMES_FAT = aintAnoMes_Fat

                                    repositorioNf.Execute_1(objNf)

                                End If

                            End If

                        Else

                            If istrTabela <> "nf" Then

                                objTempItemFaturaB.NUMNF = adblNumNf
                                objTempItemFaturaB.MESANO = astrMesAnoRef
                                objTempItemFaturaB.ANOMES_FAT = aintAnoMes_Fat

                                repositorioTempItemFaturaB.Execute(objTempItemFaturaB)

                            Else

                                objNf.NUMNF = adblNumNf
                                objNf.MESANO_REF = astrMesAnoRef
                                objNf.ANOMES_FAT = aintAnoMes_Fat

                                repositorioNf.Execute_1(objNf)

                            End If

                        End If

                    Else

                        If istrTabela <> "nf" Then

                            objTempItemFaturaB.NUMNF = adblNumNf
                            objTempItemFaturaB.MESANO = astrMesAnoRef
                            objTempItemFaturaB.ANOMES_FAT = aintAnoMes_Fat

                            repositorioTempItemFaturaB.Execute(objTempItemFaturaB)

                        Else

                            objNf.NUMNF = adblNumNf
                            objNf.MESANO_REF = astrMesAnoRef
                            objNf.ANOMES_FAT = aintAnoMes_Fat

                            repositorioNf.Execute_1(objNf)

                        End If

                    End If

                End If

            End If

        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempFaturaA As New entidadeTempFaturaA
                Dim repositorioTempFaturaA As New repositorioTempFaturaA

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFatura As New entidadeTempFatura
                Dim repositorioTempFatura As New repositorioTempFatura

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: VerificaCriaTempItemFatura" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub

        End Try


    End Sub

    Public Sub GeraFaturaGrupoA(ByVal strLocalProjeto As String, ByVal aintSegVia As Short, Optional ByVal astrMesAno As String = "", Optional ByVal adblNumNf As Double = 0, Optional ByVal aintBarras As Short = 0, Optional ByVal astrTabela As String = "", Optional ByVal alngNrComplementar As Integer = 0, Optional ByVal aIdentificacao As String = "", Optional ByVal aNumNF As String = "", Optional sCaminho As String = "", Optional ByVal form As String = "", Optional ByVal bSemFiltro As Boolean = False)

        Dim llngBandeira As Integer
        Dim ldteBandeira As Date
        Dim llngConta As Integer
        Dim ldblNumNF As Double
        Dim ldblNumNfIni As Double
        Dim ldblNumNfFim As Double
        Dim lstrAuxiliar As String
        Dim lstrZona As String
        Dim lstrLivro As String
        Dim lstrConta As String
        Dim lstrMesAno As String
        Dim lstrAux As String
        Dim lintTipo(3) As String
        Dim lstrCriterio As String
        Dim lstrNomeRptFat As String
        Dim lintSequenciaFaturas As Integer

        'Dados da Fatura
        Dim ldblFaturasNumNf As Double
        Dim ldblFaturasCfop As Double
        Dim lstrFaturasZona As String
        Dim lstrFaturasLivro As String
        Dim lstrFaturasConta As String
        Dim lstrFaturasRota As String
        Dim ldblFaturasValorTot As Double
        Dim ldblFaturasValorLiq As Double
        Dim lstrFaturasCodClas As String
        Dim ldteFaturasVencimento As Date
        Dim lstrFaturasBanIdent As String
        Dim lstrFaturasMesAno As String
        Dim llngFaturasMesAnoRef As Integer
        Dim llngFaturasAnoMes_Fat As Integer
        Dim ldteFaturasApresentacao As Date
        Dim ldteFaturasEmissao As Date
        Dim ldteFaturasProxLeit As Date
        Dim ldteFaturasLeitura As Date
        Dim ldteFaturasLeitAnterior As Date
        Dim lstrFaturasFase As String
        Dim lstrFaturasTa As String
        Dim lstrFaturasTensao As String
        Dim lstrFaturasCodHash As String
        Dim lstrFaturasItensSev As String
        Dim lstrFaturasItensImp As String
        Dim llngFaturasNsu As Integer
        Dim llngFaturasConsId As Integer
        Dim llngFaturasUnidId As Integer
        Dim lstrFaturasCodBarra As String
        Dim lstrFaturasDvCodBarra As String
        Dim lblnFaturaPeriodoTeste As Boolean
        Dim lstrClasseDescricao As String
        Dim lstrFaturasMensagemBandeira As String
        Dim lintFaturasLivreVerde As Short
        Dim lintFaturasParcCativo As Short
        Dim lstrFaturasFlgst As String
        Dim lstrFaturaLinhaDigitavel As String
        Dim lstrFaturaAjusteCodBarras As String
        Dim lstrFaturaAjusteLinhaDigitavel As String
        Dim lstrFaturaCanceladaMesano As String
        Dim ldlbFaturaCanceladaNumNF As Double
        Dim lstrFaturasBancoFatur As String

        'Dados da Unidade
        Dim lstrUnidaCpfCnpj As String
        Dim lstrUnidaInsc As String
        Dim lstrUnidaRg As String
        Dim lstrUnidaAgenc As String
        Dim lstrUnidaCC As String
        Dim lstrUnidaNome As String
        Dim lstrUnidaCidade As String
        Dim lstrUnidaDistrito As String
        Dim lstrUnidaBairro As String
        Dim lstrUnidaEnd As String
        Dim lstrUnidaNumero As String
        Dim lstrUnidaComplement As String
        Dim lstrUnidaCep As String
        Dim lstrUnidaUf As String
        Dim lstrUnidaLote As String
        Dim lstrUnidaQuadra As String
        Dim lstrUnidaCidEntrega As String
        Dim lstrUnidaDisEntrega As String
        Dim lstrUnidaBaiEntrega As String
        Dim lstrUnidaEndEntrega As String
        Dim lstrUnidaNumEntrega As String
        Dim lstrUnidaComplEntrega As String
        Dim lstrUnidaCepEntrega As String
        Dim lstrUnidaUfEntrega As String
        Dim lstrUnidaLotEntrega As String
        Dim lstrUnidaQuaEntrega As String
        Dim lstrUnidaGrupo As String
        Dim ldblUnidaConstDemanda As Double
        Dim ldblUnidaConstConsFp As Double
        Dim ldblUnidaConstConsP As Double
        Dim ldblUnidaConsReativoP As Double
        Dim ldblUnidaConsReativoFp As Double
        Dim ldblUnidaMedidorDemanda As String
        Dim ldblUnidaMedidorReativo As Double
        Dim ldblUnidaMedidorConsumo As Double
        Dim ldblUnidaDemContrPonta As Double
        Dim ldblUnidaDemContrFp As Double
        Dim ldblUnidaDemAnteriorContrPonta As Double
        Dim ldblUnidaDemAnteriorContrFp As Double
        Dim ldblUnidaConstReativo As Double
        Dim ldblUnidaConstConsumo As Double
        Dim ldblUnidaConstDemandaFp As Double
        Dim ldblUnidaDemandaContr As Double
        Dim ldblUnidaCarga As Double
        Dim ldblUnidaFinal As Double


        'Dados do Consumidor
        Dim lstrConsumidorNome As String
        Dim lstrConsumidorCep As String
        Dim lstrConsumidorUf As String
        Dim lstrConsumidorCgc As String
        Dim lstrConsumidorInsc As String
        Dim lstrConsumidorRg As String
        Dim lintConsumidorMatricula As Integer

        '----------------------------------
        'Itens da fatura
        'Leitura
        'Reativo Consumo
        Dim ldblLeitConsReativoPontaAnter As Double
        Dim ldblLeitConsReativoPontaAtual As Double
        Dim ldblLeitConsReativoForaPAnter As Double
        Dim ldblLeitConsReativoForaPAtual As Double

        'Demanda
        Dim ldblLeitDemandaPontaAnter As Double
        Dim ldblLeitDemandaPontaAtual As Double
        Dim ldblLeitDemandaForaPAnter As Double
        Dim ldblLeitDemandaForaPAtual As Double

        'Consumo
        Dim ldblLeitConsumoPontaAnter As Double
        Dim ldblLeitConsumoPontaAtual As Double
        Dim ldblLeitConsumoForaPAnter As Double
        Dim ldblLeitConsumoForaPAtual As Double

        'Micro Geração
        Dim ldblLeitReversoPontaAnter As Double
        Dim ldblLeitReversoPontaAtual As Double
        Dim ldblLeitReversoForaPAnter As Double
        Dim ldblLeitReversoForaPAtual As Double

        'Consumo Reservado
        Dim ldblLeitConsReservadAtual As Double
        Dim ldblLeitConsReservadAnter As Double

        'Quantidades
        'Consumo
        Dim ldblConsMedidoPonta As Double
        Dim ldblConsMedidoForaP As Double
        Dim ldblConsFaturaPonta As Double
        Dim ldblConsFaturaForaP As Double
        Dim ldblConsContraPonta As Double
        Dim ldblConsContraForaP As Double
        Dim ldblConsMedido As Double
        Dim ldblConsFatura As Double
        Dim ldblConsReservado As Double

        'Micro Geração
        Dim ldblkWhReversoPonta As Double
        Dim ldblkWhReversoForaP As Double
        Dim ldblkWhReversoResPonta As Double
        Dim ldblkWhReversoResForaP As Double
        Dim ldblkWhReversoRecPonta As Double
        Dim ldblkWhReversoRecForaP As Double
        Dim ldblkWhEnviado As Double 'Enviado
        Dim ldblkWhSaldo As Double 'Saldo
        Dim ldblMicroGeracao As Double

        'Demanda
        Dim ldblDemaMedidaPonta As Double
        Dim ldblDemaMedidaForaP As Double
        Dim ldblDemaFaturaPonta As Double
        Dim ldblDemaFaturaForaP As Double
        Dim ldblDemaUltrapPonta As Double
        Dim ldblDemaUltrapForaP As Double
        Dim ldblDemaMedida As Double
        Dim ldblDemaFatura As Double
        Dim ldblDemaUltrap As Double

        'Fator de Potencia Convencional
        Dim ldblFatorPontencia As Double

        'Reativo Consumo
        Dim ldblReatConsumPonta As Double
        Dim ldblReatConsumForaP As Double
        Dim ldblReatMedido As Double

        'Reativo Demanda
        Dim ldblReatDemandPonta As Double
        Dim ldblReatDemandForaP As Double

        ' Tributos
        ' Icms
        Dim ldblBaseIcms As Double
        Dim ldblAliqIcms As Double
        Dim ldblValrIcms As Double
        Dim ldblBaseIcms2 As Double
        Dim ldblAliqIcms2 As Double
        Dim ldblValrIcms2 As Double

        'Pis
        Dim ldblBasePis As Double
        Dim ldblAliqPis As Double
        Dim ldblValrPis As Double

        'Cofins
        Dim ldblBaseCofins As Double
        Dim ldblAliqCofins As Double
        Dim ldblValrCofins As Double

        '********************************************
        'Tributação da comercialização dos Livres
        ' Icms
        Dim ldblBaseIcmSt As Double
        Dim ldblAliqIcmSt As Double
        Dim ldblValrIcmSt As Double

        'Pis
        Dim ldblBasePisSt As Double
        Dim ldblAliqPisSt As Double
        Dim ldblValrPisSt As Double

        'Cofins
        Dim ldblBaseCofSt As Double
        Dim ldblAliqCofSt As Double
        Dim ldblValrCofSt As Double

        'Valor da Compra (R$)
        Dim ldblVCompraSt As Double
        Dim lstrReferenSt As String
        Dim ldblVPMedioSt As Double 'preco médio
        Dim ldblVConsumSt As Double 'Consumo
        '********************************************

        'Indicador de Continuidade
        Dim ldblDecMeta As Double
        Dim ldblFecMeta As Double
        Dim ldblDicMeta As Double
        Dim ldblFicMeta As Double
        Dim ldblDmicMet As Double
        Dim ldblDecReal As Double
        Dim ldblFecReal As Double
        Dim ldblDicReal As Double
        Dim ldblFicReal As Double
        Dim ldblDmicRea As Double
        Dim lstrRefICon As String

        'Rentenção Tributária
        'Consumo
        Dim ldblRetPisCons As Double
        Dim ldblRetCofCons As Double
        Dim ldblRetCslCons As Double
        Dim ldblRetIrpCons As Double

        'Demanda
        Dim ldblRetIrpDema As Double
        Dim ldblRetCslDema As Double
        Dim ldblRetCofDema As Double
        Dim ldblRetPisDema As Double

        'Composição da Fatura
        Dim ldblCompEnergia As Double
        Dim ldblCompTransmissao As Double
        Dim ldblCompDistribuicao As Double
        Dim ldblCompEncargosSetoriais As Double

        'Tarifas
        Dim ldblTarDemaPonta As Double
        Dim ldblTarDemaForaP As Double
        Dim ldblTarDUltPonta As Double
        Dim ldblTarDUltForaP As Double
        Dim ldblTarConsPonta As Double
        Dim ldblTarConsForaP As Double
        '----------------------------------
        Dim lstrMensagem As String
        Dim lstrMensAux As String
        Dim lstrMensAux1 As String
        '----------------------------------

        Dim sBanco As String

        Dim vResultFaturaIndividualPDF As Boolean

        Dim lstrSqlAnd As String

        Dim vlist

        Dim objNf As entidadeNf = Nothing
        Dim repositorioNf As repositorioNf = Nothing

        Dim objNfTransicao As entidadeNfTransicao = Nothing
        Dim repositorioNfTransicao As repositorioNfTransicao = Nothing

        Dim objTempFaturaA As entidadeTempFaturaA = Nothing
        Dim repositorioTempFaturaA As repositorioTempFaturaA = Nothing

        Dim objTempHistFaturaA As entidadeTempHistFaturaA = Nothing
        Dim repositorioTempHistFaturaA As repositorioTempHistFaturaA = Nothing

        Dim objTempFaturaAImagePixBarras As entidadeTempFaturaAImagePixBarras = Nothing
        Dim repositorioTempFaturaAImagePixBarras As repositorioTempFaturaAImagePixBarras = Nothing


        Try

            objNf = New entidadeNf
            repositorioNf = New repositorioNf

            objNfTransicao = New entidadeNfTransicao
            repositorioNfTransicao = New repositorioNfTransicao

            objTempFaturaA = New entidadeTempFaturaA
            repositorioTempFaturaA = New repositorioTempFaturaA

            objTempHistFaturaA = New entidadeTempHistFaturaA
            repositorioTempHistFaturaA = New repositorioTempHistFaturaA

            objTempFaturaAImagePixBarras = New entidadeTempFaturaAImagePixBarras
            repositorioTempFaturaAImagePixBarras = New repositorioTempFaturaAImagePixBarras


            If strLocalProjeto.ToUpper() = "API" Then
                vResultFaturaIndividualPDF = True
            ElseIf strLocalProjeto.ToUpper() = "FORM" Then

                If frmImpFaturas.chkFaturaIndividualPDF.CheckState = System.Windows.Forms.CheckState.Checked Then
                    vResultFaturaIndividualPDF = lApagarArquivosFaturasIndividualPasta(Convert.ToString(GetConfig("caminho.pdf.fatura.individual")))
                Else
                    vResultFaturaIndividualPDF = True
                End If

            End If

            If vResultFaturaIndividualPDF = True Then

                If strLocalProjeto.ToUpper() = "FORM" Then

                    If form <> "" Then
                        frmImpFaturas.strForm = form
                    Else
                        frmImpFaturas.strForm = String.Empty
                    End If

                End If

                If astrMesAno <> "" And aintSegVia <> 4 Then
                    llngFaturasAnoMes_Fat = Convert.ToDateTime("01/" + astrMesAno).ToString("yyyyMM")
                    VerificaCriaTempItemFatura(strLocalProjeto, adblNumNf, astrMesAno, llngFaturasAnoMes_Fat, "A")
                End If

                lintTipo(0) = CStr(0)
                lintTipo(1) = CStr(0)
                lintTipo(2) = CStr(0)
                lintTipo(3) = CStr(0)

                If strLocalProjeto.ToUpper() = "FORM" Then
                    frmImpFaturas.sCaminhoPDF = sCaminho
                End If

                lstrMensAux = GetConfig("fatura.mensagem")

                If Len(Trim(lstrMensAux)) = 0 Or lstrMensAux = "-1" Then
                    lstrMensAux = String.Empty
                End If

                If strLocalProjeto.ToUpper() = "FORM" Then
                    istrTabela = IIf(frmImpFaturas.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Checked, "nftransicao", "nf")
                End If

                istrGrupo = "A"

                If astrTabela <> String.Empty Then
                    istrTabela = astrTabela
                End If


                If strLocalProjeto.ToUpper() = "API" Then

                    lstrZona = strZona
                    lstrLivro = strLivro
                    lstrConta = strConta

                    lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.GRUPO = 'A' "

                    lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.ZONA = """ & lstrZona & """ " & vbCrLf
                    lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.LIVRO = """ & lstrLivro & """ " & vbCrLf
                    lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.CONTA = """ & lstrConta & """ " & vbCrLf

                ElseIf strLocalProjeto.ToUpper() = "FORM" Then

                    ldblNumNF = CDbl(IIf(IsNumeric(frmImpFaturas.txtNumNf.Text), frmImpFaturas.txtNumNf.Text, "0"))
                    ldblNumNfIni = CDbl(IIf(IsNumeric(frmImpFaturas.txtNumNfIni.Text), frmImpFaturas.txtNumNfIni.Text, "0"))
                    ldblNumNfFim = CDbl(IIf(IsNumeric(frmImpFaturas.txtNumNfFim.Text), frmImpFaturas.txtNumNfFim.Text, "0"))

                    If aIdentificacao = "" Then
                        lstrZona = IIf(IsNumeric(frmImpFaturas.txtZona.Text), frmImpFaturas.txtZona.Text, "")
                        lstrLivro = IIf(IsNumeric(frmImpFaturas.txtLivro.Text), frmImpFaturas.txtLivro.Text, "")
                        lstrConta = IIf(IsNumeric(frmImpFaturas.txtConta.Text), frmImpFaturas.txtConta.Text, "")
                    Else
                        lstrZona = Mid(aIdentificacao, 1, 3)
                        lstrLivro = Mid(aIdentificacao, 5, 2)
                        lstrConta = Mid(aIdentificacao, 8)
                    End If

                    If aintSegVia > 0 Or astrTabela <> String.Empty Then
                        lstrMesAno = astrMesAno
                    ElseIf astrMesAno <> "" Then
                        lstrMesAno = astrMesAno
                    Else
                        lstrMesAno = Format(frmImpFaturas.dtpMesAno.Value, "MM/yyyy")
                    End If

                    frmImpFaturas.lblInfo.Text = "Aguarde, buscando as faturas..."
                    frmImpFaturas.lblInfo.Refresh()

                    System.Windows.Forms.Application.DoEvents()


                    If aintSegVia = 0 And astrTabela = String.Empty Then

                        If frmImpFaturas.chkOpcional.CheckState = System.Windows.Forms.CheckState.Unchecked Then
                            'lstrSqlAnd = lstrSqlAnd & "  AND FATURAS.MESANO_REF  = """ & CInt(Microsoft.VisualBasic.Right(lstrMesAno, 4) & Microsoft.VisualBasic.Left(lstrMesAno, 2)) & """ "
                            lstrSqlAnd = lstrSqlAnd & "  AND FATURAS.anomes_fat  = """ & CInt(Microsoft.VisualBasic.Right(lstrMesAno, 4) & Microsoft.VisualBasic.Left(lstrMesAno, 2)) & """ "
                        End If

                        lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.GRUPO = 'A' "

                        If frmImpFaturas.opbFatura.Checked Then

                            If frmImpFaturas.opbAvulsa.Checked Then

                                If ldblNumNF > 0 Then
                                    lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.NUMNF = " & ldblNumNF
                                End If

                            Else

                                If ldblNumNfIni > 0 And ldblNumNfFim > 0 Then
                                    lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.NUMNF BETWEEN " & ldblNumNfIni & " AND " & ldblNumNfFim
                                End If

                            End If

                        ElseIf frmImpFaturas.opbZLC.Checked Or aIdentificacao <> "" Then

                            If Len(Trim(lstrZona)) > 0 Then
                                lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.ZONA = """ & lstrZona & """ "
                            End If

                            If Len(Trim(lstrLivro)) > 0 Then
                                lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.LIVRO = """ & lstrLivro & """ "
                            End If

                            If Len(Trim(lstrConta)) > 0 Then
                                lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.CONTA = """ & lstrConta & """ "
                            End If

                            If Len(Trim(aNumNF)) > 0 Then
                                lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.NumNf = """ & aNumNF & """ " & vbCrLf
                            End If

                            If frmImpFaturas.chkOpcional.CheckState = System.Windows.Forms.CheckState.Checked Then
                                'lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.MESANO_REF BETWEEN " & VB6.Format(Me.dtpAnoMesIni.Value, "yyyyMM") & " AND " & VB6.Format(Me.dtpAnoMesFim.Value, "yyyyMM") & " "
                                lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.anomes_fat BETWEEN " & VB6.Format(frmImpFaturas.dtpAnoMesIni.Value, "yyyyMM") & " AND " & VB6.Format(frmImpFaturas.dtpAnoMesFim.Value, "yyyyMM") & " "
                            End If

                        ElseIf frmImpFaturas.opbSelecao.Checked Then

                            'Filtra Por Rota
                            lstrAuxiliar = String.Empty
                            With frmImpFaturas.lvsRota.Items

                                If .Count <> 0 Then

                                    If .Item(0).Checked = False Then

                                        For llngConta = 1 To .Count - 1
                                            If .Item(llngConta).Checked Then
                                                lstrAuxiliar = lstrAuxiliar & """" & .Item(llngConta).Text & """, "
                                            End If
                                        Next llngConta

                                        If Len(Trim(lstrAuxiliar)) > 0 Then
                                            lstrAuxiliar = Microsoft.VisualBasic.Left(lstrAuxiliar, Len(lstrAuxiliar) - 2)
                                            lstrSqlAnd = lstrSqlAnd & "    AND MID(FATURAS.ROTA,1,4) IN(" & lstrAuxiliar & ") "
                                        End If

                                    End If

                                End If

                            End With

                            'Filtra Por data de Vencimento
                            lstrAuxiliar = String.Empty
                            With frmImpFaturas.lvsVenc.Items

                                If .Count <> 0 Then

                                    If .Item(0).Checked = False Then

                                        For llngConta = 1 To .Count - 1
                                            If .Item(llngConta).Checked Then
                                                lstrAuxiliar = lstrAuxiliar & """" & VB6.Format(CDate(.Item(llngConta).Text), "yyyy-MM-dd") & """, "
                                            End If
                                        Next llngConta

                                        If Len(Trim(lstrAuxiliar)) > 0 Then
                                            lstrAuxiliar = Microsoft.VisualBasic.Left(lstrAuxiliar, Len(lstrAuxiliar) - 2)
                                            lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.DATAVENC IN(" & lstrAuxiliar & ") "
                                        End If

                                    End If

                                End If

                            End With
                            '
                            'Filtra Por Grupo
                            lstrAuxiliar = String.Empty
                            With frmImpFaturas.lvsTarifas.Items

                                If .Count <> 0 Then

                                    If .Item(0).Checked = False Then

                                        For llngConta = 1 To .Count - 1
                                            If .Item(llngConta).Checked Then
                                                lstrAuxiliar = lstrAuxiliar & """" & .Item(llngConta).Text & """, "
                                            End If
                                        Next llngConta

                                        If Len(Trim(lstrAuxiliar)) > 0 Then
                                            lstrAuxiliar = Microsoft.VisualBasic.Left(lstrAuxiliar, Len(lstrAuxiliar) - 2)
                                            lstrSqlAnd = lstrSqlAnd & "     AND FATURAS.TA IN(" & lstrAuxiliar & ") "
                                        End If

                                    End If

                                End If

                            End With

                        End If

                    Else 'se for uma segunda via, pega o parametro
                        lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.GRUPO = 'A' " ' Força o grupo em caso de número da nota existir em ambos os grupos 

                        'lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.MESANO_REF  = """ & CInt(Microsoft.VisualBasic.Right(lstrMesAno, 4) & Microsoft.VisualBasic.Left(lstrMesAno, 2)) & """ " & vbCrLf
                        lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.anomes_fat  = """ & CInt(Microsoft.VisualBasic.Right(lstrMesAno, 4) & Microsoft.VisualBasic.Left(lstrMesAno, 2)) & """ " & vbCrLf
                        lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.NUMNF = " & adblNumNf & vbCrLf
                    End If

                    If frmImpFaturas.chkFatComplementar.CheckState = System.Windows.Forms.CheckState.Unchecked Then
                        lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.FATURA_COMPLEMENTAR = " & alngNrComplementar
                    Else
                        lstrSqlAnd = lstrSqlAnd & "   AND FATURAS.FATURA_COMPLEMENTAR > 0 "
                    End If

                    If frmImpFaturas.chkFaturaEmail.CheckState = System.Windows.Forms.CheckState.Checked Then
                        lstrSqlAnd = lstrSqlAnd & "    AND UC_FATURAMENTO.ENVIO_EMAIL_FATURA = 'S'"
                        lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.anomes_fat  = """ & CInt(Microsoft.VisualBasic.Right(lstrMesAno, 4) & Microsoft.VisualBasic.Left(lstrMesAno, 2)) & """ " & vbCrLf
                    Else
                        If frmImpFaturas.chkEnviarFaturaEmail.CheckState = System.Windows.Forms.CheckState.Unchecked Then
                            lstrSqlAnd = lstrSqlAnd & "    AND UC_FATURAMENTO.ENVIO_EMAIL_FATURA = 'N'"
                        End If
                    End If

                    If frmImpFaturas.chkEnviarFaturaEmail.CheckState = System.Windows.Forms.CheckState.Checked Then
                        lstrSqlAnd = lstrSqlAnd & "    AND UC_FATURAMENTO.ENVIO_EMAIL_FATURA = 'S'"
                        lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.anomes_fat  = """ & CInt(Microsoft.VisualBasic.Right(lstrMesAno, 4) & Microsoft.VisualBasic.Left(lstrMesAno, 2)) & """ " & vbCrLf
                    End If

                    If frmImpFaturas.cmbFilterEndereco.Text = "Endereço UC" Then
                        lstrSqlAnd = lstrSqlAnd & "   AND UC_FATURAMENTO.END = UC_FATURAMENTO.END_ENTREGA "
                    ElseIf frmImpFaturas.cmbFilterEndereco.Text = "Endereço Entrega" Then
                        lstrSqlAnd = lstrSqlAnd & "   AND UC_FATURAMENTO.END <> UC_FATURAMENTO.END_ENTREGA "
                    ElseIf frmImpFaturas.cmbFilterEndereco.Text = "Prefeitura/Outros" Then
                        lstrSqlAnd = lstrSqlAnd & "   AND UC_FATURAMENTO.AGRUPA = 4 "
                    End If

                    If frmImpFaturas.chkFaturaReaviso.CheckState = System.Windows.Forms.CheckState.Checked Then

                        If frmImpFaturas.opbFatura.Checked Then

                            If frmImpFaturas.opbAvulsa.Checked Then
                                If ldblNumNF > 0 Then
                                    lstrSqlAnd = lstrSqlAnd & " AND FATURAS.MESANO = '" & lstrMesAno & "' OR  FATURAS.CANCELADA_MESANO = '" & lstrMesAno & "'   AND FATURAS.NUMNF = " & ldblNumNF & vbCrLf
                                End If
                            Else
                                If ldblNumNfIni > 0 And ldblNumNfFim > 0 Then
                                    lstrSqlAnd = lstrSqlAnd & " AND FATURAS.MESANO = '" & lstrMesAno & "' OR  FATURAS.CANCELADA_MESANO = '" & lstrMesAno & "'   AND FATURAS.NUMNF BETWEEN " & ldblNumNfIni & " AND " & ldblNumNfFim & vbCrLf
                                End If
                            End If

                        ElseIf frmImpFaturas.opbZLC.Checked Or aIdentificacao <> "" Then

                            If Len(Trim(lstrZona)) > 0 And Len(Trim(lstrLivro)) > 0 And Len(Trim(lstrConta)) Then
                                lstrSqlAnd = lstrSqlAnd & "  AND FATURAS.MESANO = '" & lstrMesAno & "' OR  FATURAS.CANCELADA_MESANO = '" & lstrMesAno & "'  AND FATURAS.ZONA = '" & lstrZona & "'  AND FATURAS.LIVRO = '" & lstrLivro & "' AND FATURAS.CONTA = '" & lstrConta & "'" & vbCrLf
                            End If

                            If Len(Trim(aNumNF)) > 0 Then
                                lstrSqlAnd = lstrSqlAnd & " AND FATURAS.MESANO = '" & lstrMesAno & "' OR  FATURAS.CANCELADA_MESANO = '" & lstrMesAno & "'  AND FATURAS.NUMNF = """ & aNumNF & """ " & vbCrLf
                            End If

                            If frmImpFaturas.chkOpcional.CheckState = System.Windows.Forms.CheckState.Checked Then
                                lstrSqlAnd = lstrSqlAnd & "  AND FATURAS.MESANO = '" & lstrMesAno & "' OR  FATURAS.CANCELADA_MESANO = '" & lstrMesAno & "'  AND FATURAS.MESANO_REF BETWEEN " & VB6.Format(frmImpFaturas.dtpAnoMesIni.Value, "yyyyMM") & " AND " & VB6.Format(frmImpFaturas.dtpAnoMesFim.Value, "yyyyMM") & " "
                            End If
                        Else
                            lstrSqlAnd = lstrSqlAnd & " AND FATURAS.MESANO = '" & lstrMesAno & "' OR  FATURAS.CANCELADA_MESANO = '" & lstrMesAno & "' "
                        End If

                    End If

                    If Not bSemFiltro Then lstrSqlAnd = lstrSqlAnd & MontaFiltroClasse()

                End If

                If istrTabela.ToUpper() = "NF" Then

                    objNf.TA = lstrSqlAnd

                    vlist = repositorioNf.SelectOthersTables_7(objNf)

                    If vlist.Count <> 0 Then

                        If strLocalProjeto.ToUpper() = "API" Then

                            istrUsuarioGeradorFatura = String.Empty
                            istrUsuarioGeradorFatura = strUsuarioGeradorFaturaAPI

                        ElseIf strLocalProjeto.ToUpper() = "FORM" Then

                            frmImpFaturas.strUsuarioGeradorFatura = String.Empty
                            frmImpFaturas.strUsuarioGeradorFatura = $"{vUsuario.LOGIN}_{Date.Now.Day.ToString()}_{Date.Now.Month.ToString()}{Date.Now.Year.ToString()}_{Date.Now.Hour.ToString()}_{Date.Now.Minute.ToString()}_{Date.Now.Second.ToString()}_{Date.Now.Millisecond.ToString()}"

                            istrUsuarioGeradorFatura = String.Empty
                            istrUsuarioGeradorFatura = frmImpFaturas.strUsuarioGeradorFatura

                            frmImpFaturas.lblInfo.Text = "Aguarde, limpando dados temporários..."
                            frmImpFaturas.lblInfo.Refresh()

                            System.Windows.Forms.Application.DoEvents()

                            frmImpFaturas.lblInfo.Text = "Aguarde, gerando as faturas..."
                            frmImpFaturas.lblInfo.Refresh()

                            System.Windows.Forms.Application.DoEvents()

                            BarraProgresso((frmImpFaturas.ProgressBar), (frmImpFaturas.lblPerc), (frmImpFaturas.lblInfo), 0, vlist.Count)

                        End If

                        For Each objNfFor As entidadeNf In vlist


                            llngFaturasConsId = CInt(IIf(IsDBNull(objNfFor.CONS_ID), 0, objNfFor.CONS_ID))
                            llngFaturasUnidId = CInt(IIf(IsDBNull(objNfFor.UNID_ID), 0, objNfFor.UNID_ID))

                            ldblFaturasNumNf = CDbl(IIf(IsDBNull(objNfFor.NUMNF), 0, objNfFor.NUMNF))

                            ldblFaturasCfop = CDbl(IIf(IsDBNull(objNfFor.CFOP), 0, objNfFor.CFOP))

                            If Len(ldblFaturasCfop) >= 3 Then
                                ldblFaturasCfop = ldblFaturasCfop / 1000
                            End If

                            lstrFaturasZona = VB6.Format(IIf(IsDBNull(objNfFor.ZONA), "0", objNfFor.ZONA), "000")

                            lstrFaturasLivro = VB6.Format(IIf(IsDBNull(objNfFor.LIVRO), "0", objNfFor.LIVRO), "00")

                            lstrFaturasConta = VB6.Format(IIf(IsDBNull(objNfFor.CONTA), "0", objNfFor.CONTA), "000000")

                            lstrFaturasRota = VB6.Format(IIf(IsDBNull(objNfFor.ROTA), "0", objNfFor.ROTA), "00000000")

                            ldblFaturasValorTot = CDbl(IIf(IsDBNull(objNfFor.VALORTOT), 0, objNfFor.VALORTOT))

                            ldblFaturasValorLiq = CDbl(IIf(IsDBNull(objNfFor.VALORLIQ), 0, objNfFor.VALORLIQ))

                            lstrFaturasCodClas = VB6.Format(IIf(IsDBNull(objNfFor.CODCLAS), "0", objNfFor.CODCLAS), "0000")

                            llngBandeira = BuscaBandeira(CDate("01/" & lstrMesAno), ldteBandeira, lstrFaturasCodClas)

                            ldteFaturasVencimento = CDate(IIf(IsDBNull(objNfFor.DATAVENC), "1900-01-01", objNfFor.DATAVENC))

                            lstrFaturasBanIdent = IIf(IsDBNull(objNfFor.BANIDENT), "", objNfFor.BANIDENT)

                            lstrFaturasBancoFatur = IIf(IsDBNull(objNfFor.BANCO_FATUR), "", objNfFor.BANCO_FATUR)

                            'lstrFaturasMesAno = IIf(IsDBNull(objNfFor.MESANO), "", objNfFor.MESANO)
                            lstrFaturasMesAno = lstrMesAno

                            llngFaturasMesAnoRef = CInt(IIf(IsDBNull(objNfFor.MESANO_REF), 0, objNfFor.MESANO_REF))

                            llngFaturasAnoMes_Fat = CInt(IIf(IsDBNull(objNfFor.ANOMES_FAT), 0, objNfFor.ANOMES_FAT))

                            ldteFaturasApresentacao = CDate(IIf(IsDBNull(objNfFor.DATAAPR), "1900-01-01", objNfFor.DATAAPR))

                            ldteFaturasEmissao = CDate(IIf(IsDBNull(objNfFor.DATAEM), "1900-01-01", objNfFor.DATAEM))

                            ldteFaturasProxLeit = CDate(IIf(IsDBNull(objNfFor.DATAPROXLEIT), "1900-01-01", objNfFor.DATAPROXLEIT))

                            ldteFaturasLeitura = CDate(IIf(IsDBNull(objNfFor.DATALEIT), "1900-01-01", objNfFor.DATALEIT))

                            ldteFaturasLeitAnterior = CDate(IIf(IsDBNull(objNfFor.DATALEITANT), "1900-01-01", objNfFor.DATALEITANT))

                            lstrFaturasFase = Trim(IIf(IsDBNull(objNfFor.FASE), "M", objNfFor.FASE))

                            lstrFaturasTa = Trim(IIf(IsDBNull(objNfFor.TA), "01A400", objNfFor.TA))
                            If Mid(lstrFaturasTa, 3, 2) = "A4" Then
                                lintTipo(0) = CStr(1)
                            End If
                            If Mid(lstrFaturasTa, 3, 2) = "AS" Then
                                lintTipo(3) = CStr(1)
                            End If
                            If Mid(lstrFaturasTa, 3, 2) = "AA" Or Mid(lstrFaturasTa, 3, 2) = "AV" Or Mid(lstrFaturasTa, 3, 2) = "AL" Or Mid(lstrFaturasTa, 3, 2) = "AX" Then
                                lintTipo(1) = CStr(1)
                            End If
                            If Microsoft.VisualBasic.Left(lstrFaturasCodClas, 2) = "63" Then
                                lintTipo(2) = CStr(1)
                                'lintTipo(1) = 0
                            End If

                            lstrFaturasTensao = Trim(IIf(IsDBNull(objNfFor.TENSAO), "220", objNfFor.TENSAO))

                            lstrFaturasCodHash = Trim(IIf(IsDBNull(objNfFor.CODHASH), "", objNfFor.CODHASH))

                            lstrFaturasItensSev = Trim(IIf(IsDBNull(objNfFor.ITENSSERV), "", objNfFor.ITENSSERV))

                            lstrFaturasItensImp = Trim(IIf(IsDBNull(objNfFor.ITENSIMP), "", objNfFor.ITENSIMP))

                            llngFaturasNsu = CInt(IIf(IsDBNull(objNfFor.NSU), "0", objNfFor.NSU))

                            lstrFaturasMensagemBandeira = Trim(IIf(IsDBNull(objNfFor.MENSAGEM_BANDEIRA), "", objNfFor.MENSAGEM_BANDEIRA))

                            lintFaturasLivreVerde = CShort(IIf(IsDBNull(objNfFor.LIVRE_VERDE), 0, objNfFor.LIVRE_VERDE))

                            lintFaturasParcCativo = CShort(IIf(IsDBNull(objNfFor.PARCIALMENTE_CATIVO), 0, objNfFor.PARCIALMENTE_CATIVO))

                            If aintSegVia = 1 Then
                                lstrMensagem = "SEGUNDA VIA" & vbCrLf & IIf(llngFaturasNsu > 0, "NSU: " & VB6.Format(llngFaturasNsu, "0000000000") & vbCrLf, "") & lstrMensAux
                            ElseIf aintSegVia = 2 Then
                                lstrMensagem = "DEMONSTRATIVO DA FATURA, SEM VALOR FISCAL" & vbCrLf & IIf(llngFaturasNsu > 0, "NSU: " & VB6.Format(llngFaturasNsu, "0000000000") & vbCrLf, "") & lstrMensAux
                            Else
                                lstrMensagem = IIf(llngFaturasNsu > 0, "NSU: " & VB6.Format(llngFaturasNsu, "0000000000") & vbCrLf, "") & lstrMensAux
                            End If

                            If strLocalProjeto.ToUpper() = "FORM" Then

                                If frmImpFaturas.chkQuitacaoDebito.CheckState = 1 Then
                                    lstrMensagem = lstrMensagem & vbCrLf & VerificaQuitacaoDebito(llngFaturasConsId, CDbl(Microsoft.VisualBasic.Left(CStr(llngFaturasMesAnoRef), 4)) - 1, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta)
                                End If

                                If frmImpFaturas.chkMsgTarAjuste.CheckState = System.Windows.Forms.CheckState.Checked Then
                                    lstrMensAux1 = GetMensagemTarifaAjuste(Mid(lstrFaturasTa, 3, 2) & IIf(lintFaturasParcCativo <> 1, "", lintFaturasParcCativo), lstrFaturasCodClas, ldteFaturasLeitAnterior, ldteFaturasLeitura)
                                    If lstrMensAux1 <> "" Then
                                        lstrMensAux = ""
                                        lstrMensAux = lstrMensAux & Mid(lstrMensAux1, 1, 90)
                                        lstrMensAux = lstrMensAux & Mid(lstrMensAux1, 91, 90)
                                        lstrMensAux = lstrMensAux & Mid(lstrMensAux1, 181, 90)
                                        lstrMensAux = lstrMensAux & Mid(lstrMensAux1, 271, 90)
                                        lstrMensAux = lstrMensAux & Mid(lstrMensAux1, 361, 90)
                                        lstrMensAux = lstrMensAux & Mid(lstrMensAux1, 451, 90)
                                        lstrMensagem = IIf(llngFaturasNsu > 0, "NSU: " & VB6.Format(llngFaturasNsu, "0000000000") & vbCrLf, "") & lstrMensAux
                                    End If
                                End If

                            End If

                            lstrFaturasCodBarra = Trim(IIf(IsDBNull(objNfFor.CODBARRA_IMAGEM), "", objNfFor.CODBARRA_IMAGEM))

                            lstrFaturasDvCodBarra = Trim(IIf(IsDBNull(objNfFor.DVCODBARRA), "", objNfFor.DVCODBARRA))

                            lstrFaturaLinhaDigitavel = Trim(IIf(IsDBNull(objNfFor.CODBARRA), "", objNfFor.CODBARRA))

                            lstrClasseDescricao = Trim(IIf(IsDBNull(objNfFor.entidadeCLASSE.DESCRICAO), "", objNfFor.entidadeCLASSE.DESCRICAO))

                            lblnFaturaPeriodoTeste = ((CShort(IIf(IsDBNull(objNfFor.PERIODO_TESTE), 0, objNfFor.PERIODO_TESTE))) = 1)

                            lstrFaturasFlgst = IIf(IsDBNull(objNfFor.FLGST), "", objNfFor.FLGST)

                            lstrFaturaCanceladaMesano = IIf(IsDBNull(objNfFor.CANCELADA_MESANO), "", objNfFor.CANCELADA_MESANO)

                            ldlbFaturaCanceladaNumNF = IIf(IsDBNull(objNfFor.CANCELADA_NUMNF), 0, objNfFor.CANCELADA_NUMNF)

                            lstrUnidaCpfCnpj = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.CPF_CNPJ), "", objNfFor.entidadeUCFATURAMENTO.CPF_CNPJ))

                            lstrUnidaInsc = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.INSC), "", objNfFor.entidadeUCFATURAMENTO.INSC))

                            lstrUnidaRg = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.RG), "", objNfFor.entidadeUCFATURAMENTO.RG))

                            lstrUnidaAgenc = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.AGENC), "", objNfFor.entidadeUCFATURAMENTO.AGENC))

                            lstrUnidaCC = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.CC), "", objNfFor.entidadeUCFATURAMENTO.CC))

                            lstrUnidaNome = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.NOME), "", objNfFor.entidadeUCFATURAMENTO.NOME))

                            lstrUnidaCidade = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.CIDADE), "", objNfFor.entidadeUCFATURAMENTO.CIDADE))

                            lstrUnidaDistrito = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.DISTRITO), "", objNfFor.entidadeUCFATURAMENTO.DISTRITO))

                            lstrUnidaBairro = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.BAIRRO), "", objNfFor.entidadeUCFATURAMENTO.BAIRRO))

                            lstrUnidaEnd = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.END), "", objNfFor.entidadeUCFATURAMENTO.END))

                            lstrUnidaNumero = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.NUMERO), "", objNfFor.entidadeUCFATURAMENTO.NUMERO))

                            lstrUnidaComplement = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.COMPLEMENT), "", objNfFor.entidadeUCFATURAMENTO.COMPLEMENT))

                            lstrUnidaCep = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.CEP), "", objNfFor.entidadeUCFATURAMENTO.CEP))

                            lstrUnidaUf = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.UF), "", objNfFor.entidadeUCFATURAMENTO.UF))

                            lstrUnidaLote = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.LOTE), "", objNfFor.entidadeUCFATURAMENTO.LOTE))

                            lstrUnidaQuadra = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.QUADRA), "", objNfFor.entidadeUCFATURAMENTO.QUADRA))

                            lstrUnidaCidEntrega = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.CID_ENTREGA), "", objNfFor.entidadeUCFATURAMENTO.CID_ENTREGA))

                            lstrUnidaDisEntrega = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.DIS_ENTREGA), "", objNfFor.entidadeUCFATURAMENTO.DIS_ENTREGA))

                            lstrUnidaBaiEntrega = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.BAI_ENTREGA), "", objNfFor.entidadeUCFATURAMENTO.BAI_ENTREGA))

                            lstrUnidaEndEntrega = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.END_ENTREGA), "", objNfFor.entidadeUCFATURAMENTO.END_ENTREGA))

                            lstrUnidaNumEntrega = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.NUM_ENTREGA), "", objNfFor.entidadeUCFATURAMENTO.NUM_ENTREGA))

                            lstrUnidaComplEntrega = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.COMPL_ENTREGA), "", objNfFor.entidadeUCFATURAMENTO.COMPL_ENTREGA))

                            lstrUnidaCepEntrega = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.CEP_ENTREGA), "", objNfFor.entidadeUCFATURAMENTO.CEP_ENTREGA))

                            lstrUnidaUfEntrega = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.UF_ENTREGA), "", objNfFor.entidadeUCFATURAMENTO.UF_ENTREGA))

                            lstrUnidaLotEntrega = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.LOT_ENTREGA), "", objNfFor.entidadeUCFATURAMENTO.LOT_ENTREGA))

                            lstrUnidaQuaEntrega = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.QUA_ENTREGA), "", objNfFor.entidadeUCFATURAMENTO.QUA_ENTREGA))

                            lstrUnidaGrupo = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.GRUPO), "", objNfFor.entidadeUCFATURAMENTO.GRUPO))

                            ldblUnidaConstDemanda = CDbl(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.CONST_KW_P), "0", objNfFor.entidadeUCFATURAMENTO.CONST_KW_P))

                            ldblUnidaConstConsFp = CDbl(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.CONST_KWH_FP), "0", objNfFor.entidadeUCFATURAMENTO.CONST_KWH_FP))

                            ldblUnidaConstConsP = CDbl(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.CONST_KWH_P), "0", objNfFor.entidadeUCFATURAMENTO.CONST_KWH_P))

                            ldblUnidaConsReativoP = CDbl(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.CONST_KVARH_P), "0", objNfFor.entidadeUCFATURAMENTO.CONST_KVARH_P))

                            ldblUnidaConsReativoFp = CDbl(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.CONST_KVARH_FP), "0", objNfFor.entidadeUCFATURAMENTO.CONST_KVARH_FP))

                            ldblUnidaMedidorDemanda = IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.NUM), "", objNfFor.entidadeUCFATURAMENTO.NUM)

                            ldblMicroGeracao = CDbl(IIf(IsDBNull(objNfFor.MICRO_GERACAO), "0", objNfFor.MICRO_GERACAO))

                            ldblUnidaMedidorReativo = CDbl(IIf(IsDBNull(IIf(String.IsNullOrEmpty(objNfFor.entidadeUCFATURAMENTO.MEDKVARK), "0", objNfFor.entidadeUCFATURAMENTO.MEDKVARK)), "0", IIf(String.IsNullOrEmpty(objNfFor.entidadeUCFATURAMENTO.MEDKVARK), "0", objNfFor.entidadeUCFATURAMENTO.MEDKVARK)))

                            ldblUnidaMedidorConsumo = CDbl(IIf(IsDBNull(IIf(String.IsNullOrEmpty(objNfFor.entidadeUCFATURAMENTO.ELETR), "0", objNfFor.entidadeUCFATURAMENTO.ELETR)), "0", IIf(String.IsNullOrEmpty(objNfFor.entidadeUCFATURAMENTO.ELETR), "0", objNfFor.entidadeUCFATURAMENTO.ELETR)))

                            ldblUnidaDemContrPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010020")
                            ldblUnidaDemAnteriorContrPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010030")
                            If ldblUnidaDemContrPonta = 0 Then

                                ldblUnidaDemContrPonta = CDbl(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.DEM_CONTR_PONTA), "0", objNfFor.entidadeUCFATURAMENTO.DEM_CONTR_PONTA))
                            End If
                            ldblUnidaDemContrFp = BuscaVlrItem(lstrFaturasItensSev, "0302010024")
                            ldblUnidaDemAnteriorContrFp = BuscaVlrItem(lstrFaturasItensSev, "0302010034")
                            If ldblUnidaDemContrFp = 0 Then

                                ldblUnidaDemContrFp = CDbl(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.DEM_CONTR_FP), "0", objNfFor.entidadeUCFATURAMENTO.DEM_CONTR_FP))
                            End If

                            ldblUnidaConstReativo = CDbl(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.CONST_KVARH), "0", objNfFor.entidadeUCFATURAMENTO.CONST_KVARH))

                            ldblUnidaConstConsumo = CDbl(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.CONST_CONSUMO), "0", objNfFor.entidadeUCFATURAMENTO.CONST_CONSUMO))

                            ldblUnidaConstDemandaFp = CDbl(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.CONST_KW_FP), "0", objNfFor.entidadeUCFATURAMENTO.CONST_KW_FP))

                            If Mid(lstrFaturasTa, 3, 2) = "A4" Or Mid(lstrFaturasTa, 3, 2) = "AS" Then
                                ldblUnidaDemandaContr = BuscaVlrItem(lstrFaturasItensSev, "0302010016")
                            End If

                            If ldblUnidaDemandaContr = 0 Then

                                ldblUnidaDemandaContr = CDbl(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.DEMANDA_CONTR), "0", objNfFor.entidadeUCFATURAMENTO.DEMANDA_CONTR))
                            End If

                            lintSequenciaFaturas = Convert.ToInt32(Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.SEQUENCIA), "0", objNfFor.entidadeUCFATURAMENTO.SEQUENCIA)))

                            ldblUnidaCarga = CDbl(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.CARGA), "0", objNfFor.entidadeUCFATURAMENTO.CARGA))

                            ldblUnidaFinal = CDbl(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.FINAL), "0", objNfFor.entidadeUCFATURAMENTO.FINAL))
                            If ldblUnidaFinal <> 0 Then ldblUnidaFinal *= 100
                            'lstrMesAno = IIf(IsNull(objNfFor.contratos_referencia), "1900-01-01", objNfFor.contratos_referencia)

                            lstrConsumidorNome = Trim(IIf(IsDBNull(objNfFor.entidadeCONSUM.NOME), "", objNfFor.entidadeCONSUM.NOME))

                            lstrConsumidorCep = Trim(IIf(IsDBNull(objNfFor.entidadeCONSUM.CEP), "", objNfFor.entidadeCONSUM.CEP))

                            lstrConsumidorUf = Trim(IIf(IsDBNull(objNfFor.entidadeCONSUM.UF), "", objNfFor.entidadeCONSUM.UF))

                            lstrConsumidorCgc = Trim(IIf(IsDBNull(objNfFor.entidadeCONSUM.CGC), "", objNfFor.entidadeCONSUM.CGC))

                            lstrConsumidorInsc = Trim(IIf(IsDBNull(objNfFor.entidadeCONSUM.INSC), "", objNfFor.entidadeCONSUM.INSC))

                            lstrConsumidorRg = Trim(IIf(IsDBNull(objNfFor.entidadeCONSUM.RG), "", objNfFor.entidadeCONSUM.RG))

                            lintConsumidorMatricula = Trim(IIf(IsDBNull(objNfFor.entidadeCONSUM.MATRICULA), 0, objNfFor.entidadeCONSUM.MATRICULA))


                            'Itens da fatura
                            'Leitura
                            'Reativo Consumo
                            ldblLeitConsReativoPontaAnter = BuscaVlrItem(lstrFaturasItensSev, "0302040015") 'Leitura Reativo na Ponta Anterior
                            ldblLeitConsReativoPontaAtual = BuscaVlrItem(lstrFaturasItensSev, "0302040016") 'Leitura Reativo na Ponta Atual
                            ldblLeitConsReativoForaPAnter = BuscaVlrItem(lstrFaturasItensSev, "0302040017") 'Leitura Reativo Fora da Ponta Anterior
                            ldblLeitConsReativoForaPAtual = BuscaVlrItem(lstrFaturasItensSev, "0302040018") 'Leitura Reativo Fora da Ponta Atual
                            'Demanda
                            ldblLeitDemandaPontaAnter = BuscaVlrItem(lstrFaturasItensSev, "0302040011") 'Leitura Demanda na Ponta Anterior
                            ldblLeitDemandaPontaAtual = BuscaVlrItem(lstrFaturasItensSev, "0302040012") 'Leitura Demanda na Ponta Atual
                            ldblLeitDemandaForaPAnter = BuscaVlrItem(lstrFaturasItensSev, "0302040013") 'Leitura Demanda Fora da Ponta Anterior
                            ldblLeitDemandaForaPAtual = BuscaVlrItem(lstrFaturasItensSev, "0302040014") 'Leitura Demanda Fora da Ponta Atual
                            'Consumo
                            ldblLeitConsumoPontaAnter = BuscaVlrItem(lstrFaturasItensSev, "0302040007") 'Leitura Consumo na Ponta Anterior
                            ldblLeitConsumoPontaAtual = BuscaVlrItem(lstrFaturasItensSev, "0302040008") 'Leitura Consumo na Ponta Atual
                            ldblLeitConsumoForaPAnter = BuscaVlrItem(lstrFaturasItensSev, "0302040009") 'Leitura Consumo Fora da Ponta Anterior
                            ldblLeitConsumoForaPAtual = BuscaVlrItem(lstrFaturasItensSev, "0302040010") 'Leitura Consumo Fora da Ponta Atual
                            'Micro Geração
                            ldblLeitReversoPontaAnter = BuscaVlrItem(lstrFaturasItensSev, "0302040021") 'Leitura Reverso na Ponta Anterior
                            ldblLeitReversoPontaAtual = BuscaVlrItem(lstrFaturasItensSev, "0302040022") 'Leitura Reverso na Ponta Atual
                            ldblLeitReversoForaPAnter = BuscaVlrItem(lstrFaturasItensSev, "0302040023") 'Leitura Reverso Fora da Ponta Anterior
                            ldblLeitReversoForaPAtual = BuscaVlrItem(lstrFaturasItensSev, "0302040024") 'Leitura Reverso Fora da Ponta Atual
                            'Consumo Reservado
                            ldblLeitConsReservadAtual = BuscaVlrItem(lstrFaturasItensSev, "0302040019") 'Leitura do Consumo Reservado Atual
                            ldblLeitConsReservadAnter = BuscaVlrItem(lstrFaturasItensSev, "0302040020") 'Leitura do Consumo Reservado Anterior

                            'Quantidades
                            'Consumo
                            If strLocalProjeto.ToUpper() = "API" Then
                                ldblConsMedidoPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010010") ' Consumo Medido Ponta no caso de CCEE
                                ldblConsMedidoForaP = BuscaVlrItem(lstrFaturasItensSev, "0302010011") ' Consumo Medido Fora da Ponta no caso de CCEE
                            ElseIf strLocalProjeto.ToUpper() = "FORM" Then

                                If frmImpFaturas.chkNew.CheckState = 1 Then
                                    ldblConsMedidoPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010045") ' Consumo Medido Ponta no caso de CCEE
                                    ldblConsMedidoForaP = BuscaVlrItem(lstrFaturasItensSev, "0302010046") ' Consumo Medido Fora da Ponta no caso de CCEE
                                Else
                                    ldblConsMedidoPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010010") ' Consumo Medido Ponta no caso de CCEE
                                    ldblConsMedidoForaP = BuscaVlrItem(lstrFaturasItensSev, "0302010011") ' Consumo Medido Fora da Ponta no caso de CCEE
                                End If

                            End If

                            ldblConsFaturaPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010010") ' Consumo Faturado na Ponta
                            ldblConsFaturaForaP = BuscaVlrItem(lstrFaturasItensSev, "0302010011") ' Consumo Faturado Fora da Ponta
                            ldblConsContraPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010047") ' Consumo Contratado na Ponta
                            ldblConsContraForaP = BuscaVlrItem(lstrFaturasItensSev, "0302010048") ' Consumo Contratado Fora da Ponta
                            ldblConsMedido = BuscaVlrItem(lstrFaturasItensSev, "0302010008") ' Consumo Medido para o Convencional
                            ldblConsFatura = BuscaVlrItem(lstrFaturasItensSev, "0302010009") ' Consumo Faturado para o Convencional
                            ldblConsReservado = BuscaVlrItem(lstrFaturasItensSev, "0302990044") 'Consumo Reservado Horosazonal

                            'Micro Geração
                            ldblkWhReversoPonta = BuscaVlrItem(lstrFaturasItensSev, "0302012010") ' Reverso na Ponta
                            ldblkWhReversoForaP = BuscaVlrItem(lstrFaturasItensSev, "0302012011") ' Reverso Fora da Ponta
                            ldblkWhReversoResPonta = BuscaVlrItem(lstrFaturasItensSev, "0302013010") ' Reverso Residuo na Ponta
                            ldblkWhReversoResForaP = BuscaVlrItem(lstrFaturasItensSev, "0302013011") ' Reverso Residuo Fora da Ponta
                            ldblkWhReversoRecPonta = 0
                            ldblkWhReversoRecForaP = 0
                            ldblkWhEnviado = 0
                            ldblkWhSaldo = 0

                            'Demanda
                            ldblDemaMedidaPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010019") ' Demanda Medida Ponta
                            ldblDemaMedidaForaP = BuscaVlrItem(lstrFaturasItensSev, "0302010023") ' Demanda Medida Fora da Ponta
                            ldblDemaFaturaPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010021") ' Demanda Faturada Ponta
                            ldblDemaFaturaForaP = BuscaVlrItem(lstrFaturasItensSev, "0302010025") ' Demanda Faturada Fora da Ponta
                            ldblDemaUltrapPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010022") ' Demanda Ultrapassada Ponta
                            ldblDemaUltrapForaP = BuscaVlrItem(lstrFaturasItensSev, "0302010026") ' Demanda Ultrapassada Fora da Ponta
                            ldblDemaMedida = BuscaVlrItem(lstrFaturasItensSev, "0302010015") ' Demanda Medida para o Convencional
                            ldblDemaFatura = BuscaVlrItem(lstrFaturasItensSev, "0302010017") ' Demanda Faturada para o Convencional
                            ldblDemaUltrap = BuscaVlrItem(lstrFaturasItensSev, "0302010018") ' Demanda Ultrapassada para o Convencional
                            'Fator de Potencia Convencional
                            ldblFatorPontencia = BuscaVlrItem(lstrFaturasItensSev, "0302030099")
                            'Reativo Consumo
                            ldblReatConsumPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010013") 'Reativo do Consumo na ponta
                            ldblReatConsumForaP = BuscaVlrItem(lstrFaturasItensSev, "0302010014") 'Reativo do Consumo Fora da ponta
                            ldblReatMedido = BuscaVlrItem(lstrFaturasItensSev, "0302010012") 'Reativo do Consumo para o Convencional
                            'Reativo Demanda
                            ldblReatDemandPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010027") 'Reativo da Demanda na Ponta
                            ldblReatDemandForaP = BuscaVlrItem(lstrFaturasItensSev, "0302010028") 'Reativo da Demanda Fora da Ponta
                            ' Tributos
                            ' Icms
                            ldblBaseIcms = BuscaVlrItem(lstrFaturasItensSev, "0302030001")
                            ldblAliqIcms = BuscaVlrItem(lstrFaturasItensSev, "0302030002")
                            ldblValrIcms = BuscaVlrItem(lstrFaturasItensSev, "0302030009")
                            'Icms2
                            ldblBaseIcms2 = BuscaVlrItem(lstrFaturasItensSev, "0302030003")
                            ldblAliqIcms2 = BuscaVlrItem(lstrFaturasItensSev, "0302030013")
                            ldblValrIcms2 = BuscaVlrItem(lstrFaturasItensSev, "0302030010")
                            'Pis
                            ldblBasePis = BuscaVlrItem(lstrFaturasItensSev, "0302020033")
                            ldblAliqPis = BuscaVlrItem(lstrFaturasItensSev, "40PIS00001")
                            ldblValrPis = BuscaVlrItem(lstrFaturasItensSev, "0302020029")
                            'Cofins
                            ldblBaseCofins = BuscaVlrItem(lstrFaturasItensSev, "0302020034")
                            ldblAliqCofins = BuscaVlrItem(lstrFaturasItensSev, "40COF00001")
                            ldblValrCofins = BuscaVlrItem(lstrFaturasItensSev, "0302020030")
                            '********************************************
                            'Tributação da comercialização dos Livres
                            ' Icms
                            ldblBaseIcmSt = BuscaVlrItem(lstrFaturasItensSev, "0602010001")
                            ldblAliqIcmSt = BuscaVlrItem(lstrFaturasItensSev, "0601020001")
                            ldblValrIcmSt = BuscaVlrItem(lstrFaturasItensSev, "0602020001")
                            'Pis
                            ldblBasePisSt = BuscaVlrItem(lstrFaturasItensSev, "0602010002")
                            ldblAliqPisSt = BuscaVlrItem(lstrFaturasItensSev, "0601020002")
                            ldblValrPisSt = BuscaVlrItem(lstrFaturasItensSev, "0602020002")
                            'Cofins
                            ldblBaseCofSt = BuscaVlrItem(lstrFaturasItensSev, "0602010003")
                            ldblAliqCofSt = BuscaVlrItem(lstrFaturasItensSev, "0601020003")
                            ldblValrCofSt = BuscaVlrItem(lstrFaturasItensSev, "0602020003")
                            'Valor da Compra (R$)
                            ldblVCompraSt = BuscaVlrItem(lstrFaturasItensSev, "0601010001") 'compra
                            ldblVPMedioSt = BuscaVlrItem(lstrFaturasItensSev, "0601010005") 'preco médio
                            ldblVConsumSt = BuscaVlrItem(lstrFaturasItensSev, "0601010006") 'Consumo
                            lstrReferenSt = BuscaRefItem(lstrFaturasItensSev, "0601010004") 'referencia
                            '********************************************
                            'Indicador de Continuidade
                            ldblDecMeta = BuscaVlrItem(lstrFaturasItensSev, "0302080101")
                            ldblFecMeta = BuscaVlrItem(lstrFaturasItensSev, "0302080102")
                            ldblDicMeta = BuscaVlrItem(lstrFaturasItensSev, "0302080103")
                            ldblFicMeta = BuscaVlrItem(lstrFaturasItensSev, "0302080104")
                            ldblDmicMet = BuscaVlrItem(lstrFaturasItensSev, "0302080105")
                            ldblDecReal = BuscaVlrItem(lstrFaturasItensSev, "0302080001")
                            ldblFecReal = BuscaVlrItem(lstrFaturasItensSev, "0302080002")
                            ldblDicReal = BuscaVlrItem(lstrFaturasItensSev, "0302080003")
                            ldblFicReal = BuscaVlrItem(lstrFaturasItensSev, "0302080004")
                            ldblDmicRea = BuscaVlrItem(lstrFaturasItensSev, "0302080005")
                            lstrRefICon = BuscaRefItem(lstrFaturasItensSev, "0302080099")
                            'Rentenção Tributária

                            'Consumo
                            ldblRetPisCons = BuscaVlrItem(lstrFaturasItensSev, "9090000001")
                            ldblRetCofCons = BuscaVlrItem(lstrFaturasItensSev, "9090000002")
                            ldblRetCslCons = BuscaVlrItem(lstrFaturasItensSev, "9090000003")
                            ldblRetIrpCons = BuscaVlrItem(lstrFaturasItensSev, "9090000004")
                            'Demanda
                            ldblRetIrpDema = BuscaVlrItem(lstrFaturasItensSev, "9090000005")
                            ldblRetCslDema = BuscaVlrItem(lstrFaturasItensSev, "9090000006")
                            ldblRetCofDema = BuscaVlrItem(lstrFaturasItensSev, "9090000007")
                            ldblRetPisDema = BuscaVlrItem(lstrFaturasItensSev, "9090000008")
                            'Composição da Fatura
                            ldblCompEnergia = 0
                            ldblCompTransmissao = 0
                            ldblCompDistribuicao = 0
                            ldblCompEncargosSetoriais = 0
                            'ldblCompEnergia = BuscaVlrItem(lstrFaturasItensSev, "0302090001")
                            'ldblCompTransmissao = BuscaVlrItem(lstrFaturasItensSev, "0302090002")
                            'ldblCompDistribuicao = BuscaVlrItem(lstrFaturasItensSev, "0302090003")
                            'ldblCompEncargosSetoriais = BuscaVlrItem(lstrFaturasItensSev, "0302090004")

                            'Tarifas
                            ldblTarDemaPonta = BuscaVlrItem(lstrFaturasItensSev, "01" & Mid(lstrFaturasTa, 3, 2) & "012101")
                            ldblTarDemaForaP = BuscaVlrItem(lstrFaturasItensSev, "01" & Mid(lstrFaturasTa, 3, 2) & "012102")
                            ldblTarDUltPonta = BuscaVlrItem(lstrFaturasItensSev, IIf(Mid(lstrFaturasTa, 3, 2) <> "A4" And Mid(lstrFaturasTa, 3, 2) <> "AS", "01" & Mid(lstrFaturasTa, 3, 2) & "012103", "01" & Mid(lstrFaturasTa, 3, 2) & "012102"))
                            ldblTarDUltForaP = BuscaVlrItem(lstrFaturasItensSev, "01" & Mid(lstrFaturasTa, 3, 2) & "012104")
                            ldblTarConsPonta = BuscaVlrItem(lstrFaturasItensSev, "01" & Mid(lstrFaturasTa, 3, 2) & "011101") 'Seca ou Convencional
                            If ldblTarConsPonta = 0 Then
                                ldblTarConsPonta = BuscaVlrItem(lstrFaturasItensSev, "01" & Mid(lstrFaturasTa, 3, 2) & "011105") 'Úmida
                            End If
                            ldblTarConsForaP = BuscaVlrItem(lstrFaturasItensSev, "01" & Mid(lstrFaturasTa, 3, 2) & "011102") 'Seca ou Convencional
                            If ldblTarConsForaP = 0 Then
                                ldblTarConsForaP = BuscaVlrItem(lstrFaturasItensSev, "01" & Mid(lstrFaturasTa, 3, 2) & "011106") 'Úmida
                            End If

                            If strLocalProjeto.ToUpper() = "API" Then

                                If (lstrFaturasCodHash = "0" Or Trim(lstrFaturasCodHash) = "") Then

                                    'Código HASH
                                    ldblBaseIcms = BuscaVlrItem(lstrFaturasItensSev, "0302030001") 'baseicms
                                    ldblValrIcms = BuscaVlrItem(lstrFaturasItensSev, "0302030009") 'icms

                                    lstrFaturasCodHash = PreparaCampo(lstrUnidaCpfCnpj, NUMERICO, 14, 0)
                                    lstrFaturasCodHash = lstrFaturasCodHash & PreparaCampo(Str(ldblFaturasNumNf), NUMERICO, 9, "0")
                                    lstrFaturasCodHash = lstrFaturasCodHash & PreparaCampo(Str(CDbl(Replace(Replace(Format(Arredondar(ldblFaturasValorLiq, 2), "standard"), ",", ""), ".", ""))), NUMERICO, 12, "0")
                                    lstrFaturasCodHash = lstrFaturasCodHash & PreparaCampo(Str(CDbl(Replace(Replace(Format(Arredondar(ldblBaseIcms, 2), "standard"), ",", ""), ".", ""))), NUMERICO, 12, "0")
                                    lstrFaturasCodHash = lstrFaturasCodHash & PreparaCampo(Str(CDbl(Replace(Replace(Format(Arredondar(ldblValrIcms, 2), "standard"), ",", ""), ".", ""))), NUMERICO, 12, "0")

                                    lstrFaturasCodHash = MD5_hash(lstrFaturasCodHash)

                                    objNf.CODHASH = lstrFaturasCodHash
                                    objNf.NUMNF = ldblFaturasNumNf
                                    objNf.MESANO_REF = llngFaturasMesAnoRef

                                    repositorioNf.Update_CodHash(objNf)

                                End If

                                If (Len(lstrFaturasCodBarra) = 0) Or (lstrFaturasCodBarra = "0") Then

                                    sBanco = fRetornaBancoImpFat(IIf(lstrFaturasBancoFatur = "", 0, CLng(lstrFaturasBancoFatur)))
                                    MontaCodBarras(ldblFaturasNumNf, lstrFaturasMesAno, ldblFaturasValorLiq, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, lstrFaturasCodBarra, lstrFaturasDvCodBarra, CStr(ldteFaturasVencimento), lstrFaturaLinhaDigitavel, sBanco)

                                    objNf.CODBARRA = lstrFaturasCodBarra
                                    objNf.DVCODBARRA = lstrFaturasDvCodBarra
                                    objNf.NUMNF = ldblFaturasNumNf
                                    objNf.MESANO_REF = llngFaturasMesAnoRef
                                    objNf.CODBARRA_IMAGEM = lstrFaturaLinhaDigitavel

                                    repositorioNf.Update_CodBarras(objNf)

                                    lstrFaturaAjusteCodBarras = lstrFaturasCodBarra
                                    lstrFaturaAjusteLinhaDigitavel = lstrFaturaLinhaDigitavel

                                    lstrFaturasCodBarra = lstrFaturaAjusteLinhaDigitavel
                                    lstrFaturaLinhaDigitavel = lstrFaturaAjusteCodBarras

                                End If

                            ElseIf strLocalProjeto.ToUpper() = "FORM" Then

                                If (lstrFaturasCodHash = "0" Or Trim(lstrFaturasCodHash) = "") And frmImpFaturas.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Unchecked Then

                                    'Código HASH
                                    ldblBaseIcms = BuscaVlrItem(lstrFaturasItensSev, "0302030001") 'baseicms
                                    ldblValrIcms = BuscaVlrItem(lstrFaturasItensSev, "0302030009") 'icms

                                    lstrFaturasCodHash = PreparaCampo(lstrUnidaCpfCnpj, NUMERICO, 14, 0)
                                    lstrFaturasCodHash = lstrFaturasCodHash & PreparaCampo(Str(ldblFaturasNumNf), NUMERICO, 9, "0")
                                    lstrFaturasCodHash = lstrFaturasCodHash & PreparaCampo(Str(CDbl(Replace(Replace(Format(Arredondar(ldblFaturasValorLiq, 2), "standard"), ",", ""), ".", ""))), NUMERICO, 12, "0")
                                    lstrFaturasCodHash = lstrFaturasCodHash & PreparaCampo(Str(CDbl(Replace(Replace(Format(Arredondar(ldblBaseIcms, 2), "standard"), ",", ""), ".", ""))), NUMERICO, 12, "0")
                                    lstrFaturasCodHash = lstrFaturasCodHash & PreparaCampo(Str(CDbl(Replace(Replace(Format(Arredondar(ldblValrIcms, 2), "standard"), ",", ""), ".", ""))), NUMERICO, 12, "0")

                                    lstrFaturasCodHash = MD5_hash(lstrFaturasCodHash)

                                    objNf.CODHASH = lstrFaturasCodHash
                                    objNf.NUMNF = ldblFaturasNumNf
                                    objNf.MESANO_REF = llngFaturasMesAnoRef

                                    repositorioNf.Update_CodHash(objNf)

                                End If

                                If (Len(lstrFaturasCodBarra) = 0 And frmImpFaturas.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Unchecked) Or (lstrFaturasCodBarra = "0" And frmImpFaturas.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Unchecked) Then

                                    sBanco = fRetornaBancoImpFat(IIf(lstrFaturasBancoFatur = "", 0, CLng(lstrFaturasBancoFatur)))
                                    MontaCodBarras(ldblFaturasNumNf, lstrFaturasMesAno, ldblFaturasValorLiq, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, lstrFaturasCodBarra, lstrFaturasDvCodBarra, CStr(ldteFaturasVencimento), lstrFaturaLinhaDigitavel, sBanco)

                                    objNf.CODBARRA = lstrFaturasCodBarra
                                    objNf.DVCODBARRA = lstrFaturasDvCodBarra
                                    objNf.NUMNF = ldblFaturasNumNf
                                    objNf.MESANO_REF = llngFaturasMesAnoRef
                                    objNf.CODBARRA_IMAGEM = lstrFaturaLinhaDigitavel

                                    repositorioNf.Update_CodBarras(objNf)

                                    lstrFaturaAjusteCodBarras = lstrFaturasCodBarra
                                    lstrFaturaAjusteLinhaDigitavel = lstrFaturaLinhaDigitavel

                                    lstrFaturasCodBarra = lstrFaturaAjusteLinhaDigitavel
                                    lstrFaturaLinhaDigitavel = lstrFaturaAjusteCodBarras

                                End If

                            End If

                            'Monta Insert
                            objTempFaturaA.SEGVIA = aintSegVia
                            objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                            'DADOS DA FATURA
                            objTempFaturaA.UNID_ID = llngFaturasUnidId
                            objTempFaturaA.CONS_ID = llngFaturasConsId
                            objTempFaturaA.NUMNF = ldblFaturasNumNf
                            objTempFaturaA.CFOP = ldblFaturasCfop
                            objTempFaturaA.ZONA = IIf(String.IsNullOrEmpty(lstrFaturasZona), " ", lstrFaturasZona)
                            objTempFaturaA.LIVRO = IIf(String.IsNullOrEmpty(lstrFaturasLivro), " ", lstrFaturasLivro)
                            objTempFaturaA.CONTA = IIf(String.IsNullOrEmpty(lstrFaturasConta), " ", lstrFaturasConta)
                            objTempFaturaA.ROTA = IIf(String.IsNullOrEmpty(lstrFaturasRota), " ", lstrFaturasRota)
                            objTempFaturaA.VALORTOT = ldblFaturasValorTot
                            objTempFaturaA.VALORLIQ = ldblFaturasValorLiq
                            objTempFaturaA.CODCLAS = IIf(String.IsNullOrEmpty(lstrFaturasCodClas), " ", lstrFaturasCodClas)
                            objTempFaturaA.DATAVENC = VB6.Format(ldteFaturasVencimento, "yyyy-MM-dd")
                            objTempFaturaA.BANCO_FATUR = IIf(String.IsNullOrEmpty(lstrFaturasBancoFatur), " ", lstrFaturasBancoFatur) 'IIf(String.IsNullOrEmpty(lstrFaturasBanIdent), " ", lstrFaturasBanIdent)
                            objTempFaturaA.MESANO = IIf(String.IsNullOrEmpty(lstrFaturasMesAno), " ", lstrFaturasMesAno)
                            objTempFaturaA.MESANOREF = llngFaturasMesAnoRef
                            objTempFaturaA.ANOMES_FAT = llngFaturasAnoMes_Fat
                            objTempFaturaA.DATAAPR = VB6.Format(ldteFaturasApresentacao, "yyyy-MM-dd")
                            objTempFaturaA.DATAEMISSAO = VB6.Format(ldteFaturasEmissao, "yyyy-MM-dd")
                            objTempFaturaA.DATAPROXLEIT = VB6.Format(ldteFaturasProxLeit, "yyyy-MM-dd")
                            objTempFaturaA.DATALEIT = VB6.Format(ldteFaturasLeitura, "yyyy-MM-dd")
                            objTempFaturaA.DATALEITANT = VB6.Format(ldteFaturasLeitAnterior, "yyyy-MM-dd")
                            objTempFaturaA.FASE = IIf(String.IsNullOrEmpty(lstrFaturasFase), " ", lstrFaturasFase)
                            objTempFaturaA.TA = IIf(String.IsNullOrEmpty(lstrFaturasTa), " ", lstrFaturasTa)
                            objTempFaturaA.TENSAO = IIf(String.IsNullOrEmpty(lstrFaturasTensao), " ", lstrFaturasTensao)
                            objTempFaturaA.CODHASH = IIf(String.IsNullOrEmpty(lstrFaturasCodHash), " ", lstrFaturasCodHash)
                            objTempFaturaA.CODBARRA = IIf(String.IsNullOrEmpty(lstrFaturasCodBarra), " ", lstrFaturasCodBarra)
                            objTempFaturaA.DVCODBARRA = IIf(String.IsNullOrEmpty(lstrFaturasDvCodBarra), " ", lstrFaturasDvCodBarra)
                            objTempFaturaA.DESCLASSE = IIf(String.IsNullOrEmpty(lstrClasseDescricao), " ", lstrClasseDescricao)
                            objTempFaturaA.LINHADIGITAVEL = IIf(String.IsNullOrEmpty(lstrFaturaLinhaDigitavel), " ", lstrFaturaLinhaDigitavel)
                            objTempFaturaA.FLGST = lstrFaturasFlgst
                            objTempFaturaA.CANCELADA_MESANO = lstrFaturaCanceladaMesano
                            objTempFaturaA.CANCELADA_NUMNF = ldlbFaturaCanceladaNumNF


                            'DADOS DA UNIDADE
                            objTempFaturaA.CGC = IIf(String.IsNullOrEmpty(lstrUnidaCpfCnpj), " ", lstrUnidaCpfCnpj)
                            objTempFaturaA.INSC = IIf(String.IsNullOrEmpty(lstrUnidaInsc), " ", lstrUnidaInsc)
                            objTempFaturaA.RG = IIf(String.IsNullOrEmpty(lstrUnidaRg), " ", lstrUnidaRg)
                            objTempFaturaA.AGENC = IIf(String.IsNullOrEmpty(lstrUnidaAgenc), " ", lstrUnidaAgenc)
                            objTempFaturaA.CC = IIf(String.IsNullOrEmpty(lstrUnidaCC), " ", lstrUnidaCC)
                            objTempFaturaA.NOMECONS = IIf(String.IsNullOrEmpty(lstrUnidaNome), " ", lstrUnidaNome)
                            objTempFaturaA.CIDADE = IIf(String.IsNullOrEmpty(lstrUnidaCidade), " ", lstrUnidaCidade)
                            objTempFaturaA.DISTRITO = IIf(String.IsNullOrEmpty(lstrUnidaDistrito), " ", lstrUnidaDistrito)
                            objTempFaturaA.BAIRRO = IIf(String.IsNullOrEmpty(lstrUnidaBairro), " ", lstrUnidaBairro)
                            objTempFaturaA.END = IIf(String.IsNullOrEmpty(lstrUnidaEnd), " ", lstrUnidaEnd)
                            objTempFaturaA.NUMERO = IIf(String.IsNullOrEmpty(lstrUnidaNumero), " ", lstrUnidaNumero)
                            objTempFaturaA.COMPLEMENT = IIf(String.IsNullOrEmpty(lstrUnidaComplement), " ", lstrUnidaComplement)
                            objTempFaturaA.CEP = IIf(String.IsNullOrEmpty(lstrUnidaCep), " ", lstrUnidaCep)
                            objTempFaturaA.UF = IIf(String.IsNullOrEmpty(lstrUnidaUf), " ", lstrUnidaUf)
                            objTempFaturaA.QUADRA = IIf(String.IsNullOrEmpty(lstrUnidaQuadra), " ", lstrUnidaQuadra)
                            objTempFaturaA.LOTE = IIf(String.IsNullOrEmpty(lstrUnidaLote), " ", lstrUnidaLote)
                            objTempFaturaA.CID_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaCidEntrega), " ", lstrUnidaCidEntrega)
                            objTempFaturaA.DIS_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaDisEntrega), " ", lstrUnidaDisEntrega)
                            objTempFaturaA.BAI_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaBaiEntrega), " ", lstrUnidaBaiEntrega)
                            objTempFaturaA.END_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaEndEntrega), " ", lstrUnidaEndEntrega)
                            objTempFaturaA.NUM_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaNumEntrega), " ", lstrUnidaNumEntrega)
                            objTempFaturaA.COMPL_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaComplEntrega), " ", lstrUnidaComplEntrega)
                            objTempFaturaA.CEP_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaCepEntrega), " ", lstrUnidaCepEntrega)
                            objTempFaturaA.UF_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaUfEntrega), " ", lstrUnidaUfEntrega)
                            objTempFaturaA.QUA_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaQuaEntrega), " ", lstrUnidaQuaEntrega)
                            objTempFaturaA.LOT_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaLotEntrega), " ", lstrUnidaLotEntrega)
                            objTempFaturaA.GRUPO = IIf(String.IsNullOrEmpty(lstrUnidaGrupo), " ", lstrUnidaGrupo)
                            objTempFaturaA.CONST_DEMANDA = ldblUnidaConstDemanda
                            objTempFaturaA.CONST_CONS_FP = ldblUnidaConstConsFp
                            objTempFaturaA.CONST_CONS_P = ldblUnidaConstConsP
                            objTempFaturaA.CONST_KVARH_P = ldblUnidaConsReativoP
                            objTempFaturaA.CONST_KVARH_FP = ldblUnidaConsReativoFp
                            objTempFaturaA.MEDKW = ldblUnidaMedidorDemanda
                            objTempFaturaA.MEDKVARK = ldblUnidaMedidorReativo
                            objTempFaturaA.ELETR = ldblUnidaMedidorConsumo
                            objTempFaturaA.DEMCONTRP = ldblUnidaDemContrPonta
                            objTempFaturaA.DEMCONTRFP = ldblUnidaDemContrFp
                            objTempFaturaA.DEMCONTRPANTERIOR = ldblUnidaDemAnteriorContrPonta
                            objTempFaturaA.DEMCONTRFPANTERIOR = ldblUnidaDemAnteriorContrFp
                            objTempFaturaA.PERIODO_TESTE = IIf(lblnFaturaPeriodoTeste, 1, 0)
                            objTempFaturaA.CONST_KVARH = ldblUnidaConstReativo
                            objTempFaturaA.CONST_KW = ldblUnidaConstDemanda
                            objTempFaturaA.CONST_KWH = ldblUnidaConstConsumo
                            objTempFaturaA.CONST_DEMANDA_FP = ldblUnidaConstDemandaFp
                            objTempFaturaA.KW_CONT = ldblUnidaDemandaContr
                            objTempFaturaA.CARGA = ldblUnidaCarga
                            objTempFaturaA.PERDA = ldblUnidaFinal
                            objTempFaturaA.REFCONS = IIf(String.IsNullOrEmpty(lstrConsumidorNome), " ", lstrConsumidorNome)
                            'LEITURAS
                            'REATIVO CONSUMO
                            objTempFaturaA.LEIT_KVARH_ANT = ldblLeitConsReativoPontaAnter
                            objTempFaturaA.LEIT_KVARH_ATUAL = ldblLeitConsReativoPontaAtual
                            objTempFaturaA.LEITANT_KVARH_P = ldblLeitConsReativoPontaAnter
                            objTempFaturaA.LEIT_KVARH_P = ldblLeitConsReativoPontaAtual
                            objTempFaturaA.LEITANT_KVARH_FP = ldblLeitConsReativoForaPAnter
                            objTempFaturaA.LEIT_KVARH_FP = ldblLeitConsReativoForaPAtual
                            'DEMANDA
                            objTempFaturaA.LEIT_KW_ANT = ldblLeitDemandaPontaAnter
                            objTempFaturaA.LEIT_KW_ATUAL = ldblLeitDemandaPontaAtual
                            objTempFaturaA.LEITANT_KW_P = ldblLeitDemandaPontaAnter
                            objTempFaturaA.LEIT_KW_P = ldblLeitDemandaPontaAtual
                            objTempFaturaA.LEITANT_KW_FP = ldblLeitDemandaForaPAnter
                            objTempFaturaA.LEIT_KW_FP = ldblLeitDemandaForaPAtual
                            'CONSUMO
                            objTempFaturaA.LEIT_KWH_ANT = ldblLeitConsumoPontaAnter
                            objTempFaturaA.LEIT_KWH_ATUAL = ldblLeitConsumoPontaAtual
                            objTempFaturaA.LEITANT_KWH_P = ldblLeitConsumoPontaAnter
                            objTempFaturaA.LEIT_KWH_P = ldblLeitConsumoPontaAtual
                            objTempFaturaA.LEITANT_KWH_FP = ldblLeitConsumoForaPAnter
                            objTempFaturaA.LEIT_KWH_FP = ldblLeitConsumoForaPAtual
                            'MICRO GERAÇÃO
                            objTempFaturaA.LEITANT_REVERSO_P = ldblLeitReversoPontaAnter
                            objTempFaturaA.LEIT_REVERSO_P = ldblLeitReversoPontaAtual
                            objTempFaturaA.LEITANT_REVERSO_FP = ldblLeitReversoForaPAnter
                            objTempFaturaA.LEIT_REVERSO_FP = ldblLeitReversoForaPAtual
                            objTempFaturaA.MICRO_GERACAO = ldblMicroGeracao

                            'CONSUMO RESERVADO
                            objTempFaturaA.LEITANT_KWH_RES = ldblLeitConsReservadAnter
                            objTempFaturaA.LEIT_KWH_RES = ldblLeitConsReservadAtual
                            'QUANTIDADES
                            'CONSUMO
                            objTempFaturaA.CONSMEDIDOP = ldblConsMedidoPonta
                            objTempFaturaA.CONSMEDIDOFP = ldblConsMedidoForaP
                            objTempFaturaA.CONSFATURADOP = ldblConsFaturaPonta
                            objTempFaturaA.CONSFATURADOFP = ldblConsFaturaForaP
                            objTempFaturaA.CONSCONTRP = ldblConsContraPonta
                            objTempFaturaA.CONSCONTRFP = ldblConsContraForaP
                            objTempFaturaA.KWH_MED = ldblConsMedido
                            objTempFaturaA.KWH_FAT = ldblConsFatura
                            objTempFaturaA.CONSRESERVADO = ldblConsReservado
                            'MICRO GERAÇÃO
                            objTempFaturaA.KWH_REVERSO_P = ldblkWhReversoPonta
                            objTempFaturaA.KWH_REVERSO_FP = ldblkWhReversoForaP
                            objTempFaturaA.KWH_REVERSO_RES_P = ldblkWhReversoResPonta
                            objTempFaturaA.KWH_REVERSO_RES_FP = ldblkWhReversoResForaP
                            objTempFaturaA.KWH_REVERSO_REC_P = ldblkWhReversoRecPonta
                            objTempFaturaA.KWH_REVERSO_REC_FP = ldblkWhReversoRecForaP
                            objTempFaturaA.KWH_ENVIADO = ldblkWhEnviado
                            objTempFaturaA.KWH_SALDO = ldblkWhSaldo

                            'DEMANDA
                            objTempFaturaA.DEMMEDIDAP = ldblDemaMedidaPonta
                            objTempFaturaA.DEMMEDIDAFP = ldblDemaMedidaForaP
                            objTempFaturaA.DEMFATURP = ldblDemaFaturaPonta
                            objTempFaturaA.DEMFATURFP = ldblDemaFaturaForaP
                            objTempFaturaA.ULTRAP = ldblDemaUltrapPonta
                            objTempFaturaA.ULTRAFP = ldblDemaUltrapForaP
                            objTempFaturaA.KW_MED = ldblDemaMedida
                            objTempFaturaA.KW_FAT = ldblDemaFatura
                            objTempFaturaA.KW_ULTRA = ldblDemaUltrap
                            'FATOR DE POTENCIA
                            objTempFaturaA.KVARH_FPOT = ldblFatorPontencia
                            'REATIVO CONSUMO
                            objTempFaturaA.FER_P = ldblReatConsumPonta
                            objTempFaturaA.FER_FP = ldblReatConsumForaP
                            objTempFaturaA.KVARH_MED = ldblReatMedido
                            'REATIVO DEMANDA
                            objTempFaturaA.LEIT_KVAR_P = ldblReatDemandPonta
                            objTempFaturaA.LEIT_KVAR_FP = ldblReatDemandForaP
                            'TRIBUTOS
                            'ICMS
                            objTempFaturaA.BASE_ICMS = ldblBaseIcms
                            objTempFaturaA.ALIQ_ICMS = ldblAliqIcms
                            objTempFaturaA.VLR_ICMS = ldblValrIcms
                            objTempFaturaA.BASE_ICMS2 = ldblBaseIcms2
                            objTempFaturaA.ALIQ_ICMS2 = ldblAliqIcms2
                            objTempFaturaA.VLR_ICMS2 = ldblValrIcms2
                            'PIS
                            objTempFaturaA.BASEPIS = ldblBasePis
                            objTempFaturaA.ALIQPIS = ldblAliqPis
                            objTempFaturaA.VLRPIS = ldblValrPis
                            'COFINS
                            objTempFaturaA.BASECOFINS = ldblBaseCofins
                            objTempFaturaA.ALIQCOFINS = ldblAliqCofins
                            objTempFaturaA.VLRCOFINS = ldblValrCofins
                            '********************************************
                            'TRIBUTAÇÃO DA COMERCIALIZAÇÃO DOS LIVRES
                            'ICMS
                            objTempFaturaA.BASE_ICMS_ST = ldblBaseIcmSt
                            objTempFaturaA.ALIQ_ICMS_ST = ldblAliqIcmSt
                            objTempFaturaA.VLR_ICMS_ST = ldblValrIcmSt
                            'PIS
                            objTempFaturaA.BASEPIS_ST = ldblBasePisSt
                            objTempFaturaA.ALIQPIS_ST = ldblAliqPisSt
                            objTempFaturaA.VLRPIS_ST = ldblValrPisSt
                            'COFINS
                            objTempFaturaA.BASECOFINS_ST = ldblBaseCofSt
                            objTempFaturaA.ALIQCOFINS_ST = ldblAliqCofSt
                            objTempFaturaA.VLRCOFINS_ST = ldblValrCofSt
                            'VALOR DA COMPRA (R$)
                            objTempFaturaA.VLRENERGIA_ST = ldblVCompraSt
                            objTempFaturaA.VLRPCMEDIO_ST = ldblVPMedioSt
                            objTempFaturaA.VLRCONSUMO_ST = ldblVConsumSt
                            objTempFaturaA.REFERENCIA_ST = IIf(String.IsNullOrEmpty(lstrReferenSt), " ", lstrReferenSt)
                            '********************************************
                            'INDICADOR DE CONTINUIDADE
                            objTempFaturaA.DEC_META = ldblDecMeta
                            objTempFaturaA.FEC_META = ldblFecMeta
                            objTempFaturaA.DIC_META = ldblDicMeta
                            objTempFaturaA.FIC_META = ldblFicMeta
                            objTempFaturaA.DMIC = ldblDmicMet
                            objTempFaturaA.DEC_REA = ldblDecReal
                            objTempFaturaA.FEC_REA = ldblFecReal
                            objTempFaturaA.DIC_REA = ldblDicReal
                            objTempFaturaA.FIC_REA = ldblFicReal
                            objTempFaturaA.DMIC_REA = ldblDmicRea
                            objTempFaturaA.REFINDICADOR = IIf(String.IsNullOrEmpty(lstrRefICon), " ", lstrRefICon)
                            'RENTENÇÃO TRIBUTÁRIA
                            'CONSUMO
                            objTempFaturaA.RET_PIS = ldblRetPisCons
                            objTempFaturaA.RET_COFINS = ldblRetCofCons
                            objTempFaturaA.RET_CSLL = ldblRetCslCons
                            objTempFaturaA.RET_IRPJC = ldblRetIrpCons
                            'DEMANDA
                            objTempFaturaA.RET_IRPJD = ldblRetIrpDema
                            objTempFaturaA.RET_CSLLD = ldblRetCslDema
                            objTempFaturaA.RET_COFINSD = ldblRetCofDema
                            objTempFaturaA.RET_PISD = ldblRetPisDema
                            'COMPOSIÇÃO DA FATURA
                            objTempFaturaA.COMP_ENERGIA = ldblCompEnergia
                            objTempFaturaA.COMP_TRANSMISSAO = ldblCompTransmissao
                            objTempFaturaA.COMP_DISTRIBUICAO = ldblCompDistribuicao
                            objTempFaturaA.COMP_ENCARGOS_SETORIAIS = ldblCompEncargosSetoriais
                            'TARIFAS
                            objTempFaturaA.TA_DEMP = ldblTarDemaPonta
                            objTempFaturaA.TA_DEMFP = ldblTarDemaForaP
                            objTempFaturaA.TA_ULTRAP = ldblTarDUltPonta
                            objTempFaturaA.TA_ULTRAFP = ldblTarDUltForaP
                            objTempFaturaA.TA_CONSP = ldblTarConsPonta
                            objTempFaturaA.TA_CONSFP = ldblTarConsForaP
                            'MENSAGEM DA FATURA
                            objTempFaturaA.MENSAGEM_BANDEIRA = IIf(String.IsNullOrEmpty(lstrFaturasMensagemBandeira), " ", lstrFaturasMensagemBandeira)
                            objTempFaturaA.BANDEIRA = llngBandeira


                            If strLocalProjeto.ToUpper() = "API" Then
                                objTempFaturaA.FRENTEVERSO = 0
                            ElseIf strLocalProjeto.ToUpper() = "FORM" Then
                                objTempFaturaA.FRENTEVERSO = IIf(frmImpFaturas.chkFrenteVerso.CheckState = System.Windows.Forms.CheckState.Checked, 1, 0)
                            End If

                            objTempFaturaA.LIVRE_VERDE = lintFaturasLivreVerde
                            objTempFaturaA.PARC_CATIVO = lintFaturasParcCativo
                            objTempFaturaA.MENSAGEM = IIf(String.IsNullOrEmpty(lstrMensagem), " ", lstrMensagem)
                            objTempFaturaA.ITENSIMP = IIf(String.IsNullOrEmpty(lstrFaturasItensImp), " ", lstrFaturasItensImp)
                            objTempFaturaA.SEQUENCIA = lintSequenciaFaturas
                            objTempFaturaA.MATRICULA = lintConsumidorMatricula

                            lInsert(objTempFaturaA)

                            lMontarCodBarrasEPixGrupoA(objTempFaturaA)

                            objTempFaturaA.CGC = lEsconderNumerosCpfCnpj(IIf(String.IsNullOrEmpty(lstrUnidaCpfCnpj), " ", lstrUnidaCpfCnpj))

                            lUpdate_1(objTempFaturaA)

                            If aintSegVia <> 4 Then

                                objTempHistFaturaA.NUMNF = IIf(String.IsNullOrEmpty(Convert.ToString(ldblFaturasNumNf)), " ", ldblFaturasNumNf)
                                objTempHistFaturaA.MESANO1 = IIf(String.IsNullOrEmpty(lstrFaturasMesAno), " ", lstrFaturasMesAno)
                                objTempHistFaturaA.MESANO2 = IIf(String.IsNullOrEmpty(lstrFaturasZona), " ", lstrFaturasZona)
                                objTempHistFaturaA.MESANO3 = IIf(String.IsNullOrEmpty(lstrFaturasLivro), " ", lstrFaturasLivro)
                                objTempHistFaturaA.MESANO4 = IIf(String.IsNullOrEmpty(lstrFaturasConta), " ", lstrFaturasConta)
                                objTempHistFaturaA.MESANO5 = IIf(String.IsNullOrEmpty(istrTabela), " ", istrTabela)
                                objTempHistFaturaA.MESANO6 = istrUsuarioGeradorFatura

                                repositorioTempHistFaturaA.Execute(objTempHistFaturaA)

                            End If

                            If strLocalProjeto.ToUpper() = "FORM" Then
                                BarraProgresso((frmImpFaturas.ProgressBar), (frmImpFaturas.lblPerc), (frmImpFaturas.lblInfo), 1)
                            End If

                            'If Me.chkOpcional.CheckState = System.Windows.Forms.CheckState.Checked And Me.chkVerificaCriaTempItemFatura.CheckState = System.Windows.Forms.CheckState.Checked Then
                            'VerificaCriaTempItemFatura(ldblFaturasNumNf, lstrFaturasMesAno)
                            llngFaturasAnoMes_Fat = Convert.ToDateTime("01/" + lstrFaturasMesAno).ToString("yyyyMM")
                            'VerificaCriaTempItemFatura(strLocalProjeto, ldblFaturasNumNf, llngFaturasMesAnoRef, llngFaturasAnoMes_Fat, "A")
                            'End If

                        Next

                        If aintSegVia <> 4 Then
                            'FATURAS PENDENTES

                            If strLocalProjeto.ToUpper() = "FORM" Then
                                frmImpFaturas.lblInfo.Text = "Processando faturas pendentes..."
                                frmImpFaturas.lblInfo.Refresh()
                            End If

                            objTempFaturaA.MESANO = lstrMesAno
                            objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura

                            lUpdate(objTempFaturaA)

                        End If

                        If strLocalProjeto.ToUpper() = "FORM" Then

                            lstrNomeRptFat = String.Empty

                            If frmImpFaturas.chkNew.CheckState = 1 Then
                                If UCase(gstrEmpresa_Sigla) = "CERCI" Then
                                    lstrNomeRptFat = "rptFaturaCerciGrupoAHNovo"
                                Else
                                    lstrNomeRptFat = "rptFaturaEflulGrupoAHNovo"
                                End If
                            Else
                                If aintSegVia <> 4 And frmImpFaturas.chkFatComplementar.CheckState = System.Windows.Forms.CheckState.Unchecked Then

                                    If CDbl(lintTipo(0)) = 1 Then
                                        If UCase(gstrEmpresa_Sigla) = "CERCI" Then
                                            lstrNomeRptFat = "rptFaturaCerciGrupoAHNovo"
                                        Else
                                            lstrNomeRptFat = "rptFaturaEflulGrupoAC"
                                        End If
                                    End If

                                    If CDbl(lintTipo(3)) = 1 Then
                                        lstrNomeRptFat = "rptFaturaEflulGrupoAS"
                                    End If

                                    If CDbl(lintTipo(1)) = 1 Then
                                        If UCase(gstrEmpresa_Sigla) = "CERCI" Then
                                            lstrNomeRptFat = "rptFaturaCerciGrupoAH"
                                        Else
                                            lstrNomeRptFat = "rptFaturaEflulGrupoAH"
                                        End If
                                    End If

                                    If CDbl(lintTipo(2)) = 1 Then
                                        lstrNomeRptFat = "rptFaturaEflulGrupoAPP"
                                    End If

                                ElseIf aintSegVia = 4 Or frmImpFaturas.chkFatComplementar.CheckState = System.Windows.Forms.CheckState.Checked Then
                                    lstrNomeRptFat = "rptFaturaEflulGrupo_Complementar"
                                End If

                            End If

                            If frmImpFaturas.chkFrenteVerso.CheckState = System.Windows.Forms.CheckState.Unchecked Then

                                If aintSegVia = 0 Then

                                    If frmImpFaturas.chkVerso.CheckState = 1 Then
                                        lstrNomeRptFat = "rptFaturaEflulGrupoAVerso"
                                    End If

                                End If

                            End If

                            If frmImpFaturas.chkEnviarFaturaEmail.CheckState = System.Windows.Forms.CheckState.Checked Then
                                frmImpFaturas.lPrintEmail(lstrNomeRptFat)
                            ElseIf frmImpFaturas.chkFaturaIndividualPDF.CheckState = System.Windows.Forms.CheckState.Checked Then
                                frmImpFaturas.lPrintIndividual(lstrNomeRptFat)
                            Else
                                frmImpFaturas.lPrint(lstrNomeRptFat, IIf(frmImpFaturas.sCaminhoPDF = "", False, True))
                            End If

                            objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                            lDelete(objTempFaturaA)

                            objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                            lDelete(objTempHistFaturaA)

                            objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                            lDelete(objTempFaturaAImagePixBarras)

                        End If

                    Else
                        MessageBox.Show("Não foi encontrado nenhuma fatura!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                    End If


                ElseIf istrTabela.ToUpper() = "NFTRANSICAO" Then

                    objNfTransicao.TA = lstrSqlAnd

                    vlist = repositorioNfTransicao.SelectOthersTables_2(objNfTransicao)

                    If vlist.Count <> 0 Then

                        If strLocalProjeto.ToUpper() = "API" Then

                            istrUsuarioGeradorFatura = String.Empty
                            istrUsuarioGeradorFatura = strUsuarioGeradorFaturaAPI

                        ElseIf strLocalProjeto.ToUpper() = "FORM" Then

                            frmImpFaturas.strUsuarioGeradorFatura = String.Empty
                            frmImpFaturas.strUsuarioGeradorFatura = $"{vUsuario.LOGIN}_{Date.Now.Day.ToString()}_{Date.Now.Month.ToString()}{Date.Now.Year.ToString()}_{Date.Now.Hour.ToString()}_{Date.Now.Minute.ToString()}_{Date.Now.Second.ToString()}_{Date.Now.Millisecond.ToString()}"

                            istrUsuarioGeradorFatura = String.Empty
                            istrUsuarioGeradorFatura = frmImpFaturas.strUsuarioGeradorFatura

                            frmImpFaturas.lblInfo.Text = "Aguarde, limpando dados temporários..."
                            frmImpFaturas.lblInfo.Refresh()

                            System.Windows.Forms.Application.DoEvents()

                            frmImpFaturas.lblInfo.Text = "Aguarde, gerando as faturas..."
                            frmImpFaturas.lblInfo.Refresh()

                            System.Windows.Forms.Application.DoEvents()

                            BarraProgresso((frmImpFaturas.ProgressBar), (frmImpFaturas.lblPerc), (frmImpFaturas.lblInfo), 0, vlist.Count)

                        End If

                        For Each objNfTransicaoFor As entidadeNfTransicao In vlist


                            llngFaturasConsId = CInt(IIf(IsDBNull(objNfTransicaoFor.CONS_ID), 0, objNfTransicaoFor.CONS_ID))

                            ldblFaturasNumNf = CDbl(IIf(IsDBNull(objNfTransicaoFor.NUMNF), 0, objNfTransicaoFor.NUMNF))

                            ldblFaturasCfop = CDbl(IIf(IsDBNull(objNfTransicaoFor.CFOP), 0, objNfTransicaoFor.CFOP))

                            If Len(ldblFaturasCfop) >= 3 Then
                                ldblFaturasCfop = ldblFaturasCfop / 1000
                            End If

                            lstrFaturasZona = VB6.Format(IIf(IsDBNull(objNfTransicaoFor.ZONA), "0", objNfTransicaoFor.ZONA), "000")

                            lstrFaturasLivro = VB6.Format(IIf(IsDBNull(objNfTransicaoFor.LIVRO), "0", objNfTransicaoFor.LIVRO), "00")

                            lstrFaturasConta = VB6.Format(IIf(IsDBNull(objNfTransicaoFor.CONTA), "0", objNfTransicaoFor.CONTA), "000000")

                            lstrFaturasRota = VB6.Format(IIf(IsDBNull(objNfTransicaoFor.ROTA), "0", objNfTransicaoFor.ROTA), "00000000")

                            ldblFaturasValorTot = CDbl(IIf(IsDBNull(objNfTransicaoFor.VALORTOT), 0, objNfTransicaoFor.VALORTOT))

                            ldblFaturasValorLiq = CDbl(IIf(IsDBNull(objNfTransicaoFor.VALORLIQ), 0, objNfTransicaoFor.VALORLIQ))

                            lstrFaturasCodClas = VB6.Format(IIf(IsDBNull(objNfTransicaoFor.CODCLAS), "0", objNfTransicaoFor.CODCLAS), "0000")

                            ldteFaturasVencimento = CDate(IIf(IsDBNull(objNfTransicaoFor.DATAVENC), "1900-01-01", objNfTransicaoFor.DATAVENC))

                            lstrFaturasBanIdent = IIf(IsDBNull(objNfTransicaoFor.BANIDENT), "", objNfTransicaoFor.BANIDENT)

                            lstrFaturasBancoFatur = IIf(IsDBNull(objNfTransicaoFor.BANCO_FATUR), "", objNfTransicaoFor.BANCO_FATUR)

                            'lstrFaturasMesAno = IIf(IsDBNull(objNfTransicaoFor.MESANO), "", objNfTransicaoFor.MESANO)
                            lstrFaturasMesAno = lstrMesAno

                            llngFaturasMesAnoRef = CInt(IIf(IsDBNull(objNfTransicaoFor.MESANO_REF), 0, objNfTransicaoFor.MESANO_REF))

                            llngFaturasAnoMes_Fat = CInt(IIf(IsDBNull(objNfTransicaoFor.ANOMES_FAT), 0, objNfTransicaoFor.ANOMES_FAT))

                            ldteFaturasApresentacao = CDate(IIf(IsDBNull(objNfTransicaoFor.DATAAPR), "1900-01-01", objNfTransicaoFor.DATAAPR))

                            ldteFaturasEmissao = CDate(IIf(IsDBNull(objNfTransicaoFor.DATAEM), "1900-01-01", objNfTransicaoFor.DATAEM))

                            ldteFaturasProxLeit = CDate(IIf(IsDBNull(objNfTransicaoFor.DATAPROXLEIT), "1900-01-01", objNfTransicaoFor.DATAPROXLEIT))

                            ldteFaturasLeitura = CDate(IIf(IsDBNull(objNfTransicaoFor.DATALEIT), "1900-01-01", objNfTransicaoFor.DATALEIT))

                            ldteFaturasLeitAnterior = CDate(IIf(IsDBNull(objNfTransicaoFor.DATALEITANT), "1900-01-01", objNfTransicaoFor.DATALEITANT))

                            lstrFaturasFase = Trim(IIf(IsDBNull(objNfTransicaoFor.FASE), "M", objNfTransicaoFor.FASE))

                            lstrFaturasTa = Trim(IIf(IsDBNull(objNfTransicaoFor.TA), "01A400", objNfTransicaoFor.TA))
                            If Mid(lstrFaturasTa, 3, 2) = "A4" Then
                                lintTipo(0) = CStr(1)
                            End If
                            If Mid(lstrFaturasTa, 3, 2) = "AS" Then
                                lintTipo(3) = CStr(1)
                            End If
                            If Mid(lstrFaturasTa, 3, 2) = "AA" Or Mid(lstrFaturasTa, 3, 2) = "AV" Or Mid(lstrFaturasTa, 3, 2) = "AL" Or Mid(lstrFaturasTa, 3, 2) = "AX" Then
                                lintTipo(1) = CStr(1)
                            End If
                            If Microsoft.VisualBasic.Left(lstrFaturasCodClas, 2) = "63" Then
                                lintTipo(2) = CStr(1)
                                'lintTipo(1) = 0
                            End If

                            lstrFaturasTensao = Trim(IIf(IsDBNull(objNfTransicaoFor.TENSAO), "220", objNfTransicaoFor.TENSAO))

                            lstrFaturasCodHash = Trim(IIf(IsDBNull(objNfTransicaoFor.CODHASH), "", objNfTransicaoFor.CODHASH))

                            lstrFaturasItensSev = Trim(IIf(IsDBNull(objNfTransicaoFor.ITENSSERV), "", objNfTransicaoFor.ITENSSERV))

                            lstrFaturasItensImp = Trim(IIf(IsDBNull(objNfTransicaoFor.ITENSIMP), "", objNfTransicaoFor.ITENSIMP))

                            llngFaturasNsu = CInt(IIf(IsDBNull(objNfTransicaoFor.NSU), "0", objNfTransicaoFor.NSU))

                            lstrFaturasMensagemBandeira = Trim(IIf(IsDBNull(objNfTransicaoFor.MENSAGEM_BANDEIRA), "", objNfTransicaoFor.MENSAGEM_BANDEIRA))

                            lintFaturasLivreVerde = CShort(IIf(IsDBNull(objNfTransicaoFor.LIVRE_VERDE), 0, objNfTransicaoFor.LIVRE_VERDE))

                            lintFaturasParcCativo = CShort(IIf(IsDBNull(objNfTransicaoFor.PARCIALMENTE_CATIVO), 0, objNfTransicaoFor.PARCIALMENTE_CATIVO))
                            If aintSegVia = 1 Then
                                lstrMensagem = "SEGUNDA VIA" & vbCrLf & IIf(llngFaturasNsu > 0, "NSU: " & VB6.Format(llngFaturasNsu, "0000000000") & vbCrLf, "") & lstrMensAux
                            ElseIf aintSegVia = 2 Then
                                lstrMensagem = "DEMONSTRATIVO DA FATURA, SEM VALOR FISCAL" & vbCrLf & IIf(llngFaturasNsu > 0, "NSU: " & VB6.Format(llngFaturasNsu, "0000000000") & vbCrLf, "") & lstrMensAux
                            Else
                                lstrMensagem = IIf(llngFaturasNsu > 0, "NSU: " & VB6.Format(llngFaturasNsu, "0000000000") & vbCrLf, "") & lstrMensAux
                            End If

                            If strLocalProjeto.ToUpper() = "FORM" Then

                                If frmImpFaturas.chkQuitacaoDebito.CheckState = 1 Then
                                    lstrMensagem = lstrMensagem & vbCrLf & VerificaQuitacaoDebito(llngFaturasConsId, CDbl(Microsoft.VisualBasic.Left(CStr(llngFaturasMesAnoRef), 4)) - 1, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta)
                                End If

                                If frmImpFaturas.chkMsgTarAjuste.CheckState = System.Windows.Forms.CheckState.Checked Then
                                    lstrMensAux1 = GetMensagemTarifaAjuste(Mid(lstrFaturasTa, 3, 2) & IIf(lintFaturasParcCativo <> 1, "", lintFaturasParcCativo), lstrFaturasCodClas, ldteFaturasLeitAnterior, ldteFaturasLeitura)
                                    If lstrMensAux1 <> "" Then
                                        lstrMensAux = ""
                                        lstrMensAux = lstrMensAux & Mid(lstrMensAux1, 1, 90)
                                        lstrMensAux = lstrMensAux & Mid(lstrMensAux1, 91, 90)
                                        lstrMensAux = lstrMensAux & Mid(lstrMensAux1, 181, 90)
                                        lstrMensAux = lstrMensAux & Mid(lstrMensAux1, 271, 90)
                                        lstrMensAux = lstrMensAux & Mid(lstrMensAux1, 361, 90)
                                        lstrMensAux = lstrMensAux & Mid(lstrMensAux1, 451, 90)
                                        lstrMensagem = IIf(llngFaturasNsu > 0, "NSU: " & VB6.Format(llngFaturasNsu, "0000000000") & vbCrLf, "") & lstrMensAux
                                    End If
                                End If

                            End If

                            lstrFaturasCodBarra = Trim(IIf(IsDBNull(objNfTransicaoFor.CODBARRA_IMAGEM), "", objNfTransicaoFor.CODBARRA_IMAGEM))

                            lstrFaturasDvCodBarra = Trim(IIf(IsDBNull(objNfTransicaoFor.DVCODBARRA), "", objNfTransicaoFor.DVCODBARRA))

                            lstrFaturaLinhaDigitavel = Trim(IIf(IsDBNull(objNfTransicaoFor.CODBARRA), "", objNfTransicaoFor.CODBARRA))

                            lstrFaturaCanceladaMesano = IIf(IsDBNull(objNfTransicaoFor.CANCELADA_MESANO), "", objNfTransicaoFor.CANCELADA_MESANO)

                            ldlbFaturaCanceladaNumNF = IIf(IsDBNull(objNfTransicaoFor.CANCELADA_NUMNF), 0, objNfTransicaoFor.CANCELADA_NUMNF)

                            lstrClasseDescricao = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeCLASSE.DESCRICAO), "", objNfTransicaoFor.entidadeCLASSE.DESCRICAO))

                            lblnFaturaPeriodoTeste = ((CShort(IIf(IsDBNull(objNfTransicaoFor.PERIODO_TESTE), 0, objNfTransicaoFor.PERIODO_TESTE))) = 1)

                            lstrUnidaCpfCnpj = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.CPF_CNPJ), "", objNfTransicaoFor.entidadeUCFATURAMENTO.CPF_CNPJ))

                            lstrUnidaInsc = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.INSC), "", objNfTransicaoFor.entidadeUCFATURAMENTO.INSC))

                            lstrUnidaRg = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.RG), "", objNfTransicaoFor.entidadeUCFATURAMENTO.RG))

                            lstrUnidaAgenc = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.AGENC), "", objNfTransicaoFor.entidadeUCFATURAMENTO.AGENC))

                            lstrUnidaCC = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.CC), "", objNfTransicaoFor.entidadeUCFATURAMENTO.CC))

                            lstrUnidaNome = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.NOME), "", objNfTransicaoFor.entidadeUCFATURAMENTO.NOME))

                            lstrUnidaCidade = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.CIDADE), "", objNfTransicaoFor.entidadeUCFATURAMENTO.CIDADE))

                            lstrUnidaDistrito = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.DISTRITO), "", objNfTransicaoFor.entidadeUCFATURAMENTO.DISTRITO))

                            lstrUnidaBairro = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.BAIRRO), "", objNfTransicaoFor.entidadeUCFATURAMENTO.BAIRRO))

                            lstrUnidaEnd = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.END), "", objNfTransicaoFor.entidadeUCFATURAMENTO.END))

                            lstrUnidaNumero = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.NUMERO), "", objNfTransicaoFor.entidadeUCFATURAMENTO.NUMERO))

                            lstrUnidaComplement = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.COMPLEMENT), "", objNfTransicaoFor.entidadeUCFATURAMENTO.COMPLEMENT))

                            lstrUnidaCep = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.CEP), "", objNfTransicaoFor.entidadeUCFATURAMENTO.CEP))

                            lstrUnidaUf = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.UF), "", objNfTransicaoFor.entidadeUCFATURAMENTO.UF))

                            lstrUnidaLote = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.LOTE), "", objNfTransicaoFor.entidadeUCFATURAMENTO.LOTE))

                            lstrUnidaQuadra = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.QUADRA), "", objNfTransicaoFor.entidadeUCFATURAMENTO.QUADRA))

                            lstrUnidaCidEntrega = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.CID_ENTREGA), "", objNfTransicaoFor.entidadeUCFATURAMENTO.CID_ENTREGA))

                            lstrUnidaDisEntrega = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.DIS_ENTREGA), "", objNfTransicaoFor.entidadeUCFATURAMENTO.DIS_ENTREGA))

                            lstrUnidaBaiEntrega = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.BAI_ENTREGA), "", objNfTransicaoFor.entidadeUCFATURAMENTO.BAI_ENTREGA))

                            lstrUnidaEndEntrega = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.END_ENTREGA), "", objNfTransicaoFor.entidadeUCFATURAMENTO.END_ENTREGA))

                            lstrUnidaNumEntrega = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.NUM_ENTREGA), "", objNfTransicaoFor.entidadeUCFATURAMENTO.NUM_ENTREGA))

                            lstrUnidaComplEntrega = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.COMPL_ENTREGA), "", objNfTransicaoFor.entidadeUCFATURAMENTO.COMPL_ENTREGA))

                            lstrUnidaCepEntrega = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.CEP_ENTREGA), "", objNfTransicaoFor.entidadeUCFATURAMENTO.CEP_ENTREGA))

                            lstrUnidaUfEntrega = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.UF_ENTREGA), "", objNfTransicaoFor.entidadeUCFATURAMENTO.UF_ENTREGA))

                            lstrUnidaLotEntrega = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.LOT_ENTREGA), "", objNfTransicaoFor.entidadeUCFATURAMENTO.LOT_ENTREGA))

                            lstrUnidaQuaEntrega = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.QUA_ENTREGA), "", objNfTransicaoFor.entidadeUCFATURAMENTO.QUA_ENTREGA))

                            lstrUnidaGrupo = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.GRUPO), "", objNfTransicaoFor.entidadeUCFATURAMENTO.GRUPO))

                            ldblUnidaConstDemanda = CDbl(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.CONST_KW_P), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.CONST_KW_P))

                            ldblUnidaConstConsFp = CDbl(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.CONST_KWH_FP), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.CONST_KWH_FP))

                            ldblUnidaConstConsP = CDbl(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.CONST_KWH_P), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.CONST_KWH_P))

                            ldblUnidaConsReativoP = CDbl(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.CONST_KVARH_P), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.CONST_KVARH_P))

                            ldblUnidaConsReativoFp = CDbl(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.CONST_KVARH_FP), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.CONST_KVARH_FP))

                            ldblUnidaMedidorDemanda = IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.NUM), "", objNfTransicaoFor.entidadeUCFATURAMENTO.NUM)
                            'ldblUnidaMedidorDemanda = CDbl(IIf(IsDBNull(objNfTransicaoFor.NUM_MED), "0", objNfTransicaoFor.NUM_MED))

                            ldblMicroGeracao = CDbl(IIf(IsDBNull(objNfTransicaoFor.MICRO_GERACAO), "0", objNfTransicaoFor.MICRO_GERACAO))

                            ldblUnidaMedidorReativo = CDbl(IIf(IsDBNull(IIf(String.IsNullOrEmpty(objNfTransicaoFor.entidadeUCFATURAMENTO.MEDKVARK), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.MEDKVARK)), "0", IIf(String.IsNullOrEmpty(objNfTransicaoFor.entidadeUCFATURAMENTO.MEDKVARK), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.MEDKVARK)))

                            ldblUnidaMedidorConsumo = CDbl(IIf(IsDBNull(IIf(String.IsNullOrEmpty(objNfTransicaoFor.entidadeUCFATURAMENTO.ELETR), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.ELETR)), "0", IIf(String.IsNullOrEmpty(objNfTransicaoFor.entidadeUCFATURAMENTO.ELETR), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.ELETR)))

                            ldblUnidaDemContrPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010020")
                            ldblUnidaDemAnteriorContrPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010030")
                            If ldblUnidaDemContrPonta = 0 Then

                                ldblUnidaDemContrPonta = CDbl(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.DEM_CONTR_PONTA), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.DEM_CONTR_PONTA))
                            End If
                            ldblUnidaDemContrFp = BuscaVlrItem(lstrFaturasItensSev, "0302010024")
                            ldblUnidaDemAnteriorContrFp = BuscaVlrItem(lstrFaturasItensSev, "0302010034")
                            If ldblUnidaDemContrFp = 0 Then

                                ldblUnidaDemContrFp = CDbl(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.DEM_CONTR_FP), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.DEM_CONTR_FP))
                            End If


                            ldblUnidaConstReativo = CDbl(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.CONST_KVARH), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.CONST_KVARH))

                            ldblUnidaConstConsumo = CDbl(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.CONST_CONSUMO), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.CONST_CONSUMO))

                            ldblUnidaConstDemandaFp = CDbl(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.CONST_KW_FP), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.CONST_KW_FP))

                            If Mid(lstrFaturasTa, 3, 2) = "A4" Or Mid(lstrFaturasTa, 3, 2) = "AS" Then
                                ldblUnidaDemandaContr = BuscaVlrItem(lstrFaturasItensSev, "0302010016")
                            End If

                            If ldblUnidaDemandaContr = 0 Then

                                ldblUnidaDemandaContr = CDbl(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.DEMANDA_CONTR), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.DEMANDA_CONTR))
                            End If

                            lintSequenciaFaturas = Convert.ToInt32(Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.SEQUENCIA), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.SEQUENCIA)))

                            ldblUnidaCarga = CDbl(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.CARGA), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.CARGA))

                            ldblUnidaFinal = CDbl(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.FINAL), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.FINAL))
                            If ldblUnidaFinal <> 0 Then ldblUnidaFinal *= 100
                            'lstrMesAno = IIf(IsNull(objNfTransicaoFor.contratos_referencia), "1900-01-01", objNfTransicaoFor.contratos_referencia)

                            lstrConsumidorNome = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeCONSUM.NOME), "", objNfTransicaoFor.entidadeCONSUM.NOME))

                            lstrConsumidorCep = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeCONSUM.CEP), "", objNfTransicaoFor.entidadeCONSUM.CEP))

                            lstrConsumidorUf = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeCONSUM.UF), "", objNfTransicaoFor.entidadeCONSUM.UF))

                            lstrConsumidorCgc = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeCONSUM.CGC), "", objNfTransicaoFor.entidadeCONSUM.CGC))

                            lstrConsumidorInsc = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeCONSUM.INSC), "", objNfTransicaoFor.entidadeCONSUM.INSC))

                            lstrConsumidorRg = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeCONSUM.RG), "", objNfTransicaoFor.entidadeCONSUM.RG))

                            lintConsumidorMatricula = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeCONSUM.MATRICULA), 0, objNfTransicaoFor.entidadeCONSUM.MATRICULA))


                            'Itens da fatura
                            'Leitura
                            'Reativo Consumo
                            ldblLeitConsReativoPontaAnter = BuscaVlrItem(lstrFaturasItensSev, "0302040015") 'Leitura Reativo na Ponta Anterior
                            ldblLeitConsReativoPontaAtual = BuscaVlrItem(lstrFaturasItensSev, "0302040016") 'Leitura Reativo na Ponta Atual
                            ldblLeitConsReativoForaPAnter = BuscaVlrItem(lstrFaturasItensSev, "0302040017") 'Leitura Reativo Fora da Ponta Anterior
                            ldblLeitConsReativoForaPAtual = BuscaVlrItem(lstrFaturasItensSev, "0302040018") 'Leitura Reativo Fora da Ponta Atual
                            'Demanda
                            ldblLeitDemandaPontaAnter = BuscaVlrItem(lstrFaturasItensSev, "0302040011") 'Leitura Demanda na Ponta Anterior
                            ldblLeitDemandaPontaAtual = BuscaVlrItem(lstrFaturasItensSev, "0302040012") 'Leitura Demanda na Ponta Atual
                            ldblLeitDemandaForaPAnter = BuscaVlrItem(lstrFaturasItensSev, "0302040013") 'Leitura Demanda Fora da Ponta Anterior
                            ldblLeitDemandaForaPAtual = BuscaVlrItem(lstrFaturasItensSev, "0302040014") 'Leitura Demanda Fora da Ponta Atual
                            'Consumo
                            ldblLeitConsumoPontaAnter = BuscaVlrItem(lstrFaturasItensSev, "0302040007") 'Leitura Consumo na Ponta Anterior
                            ldblLeitConsumoPontaAtual = BuscaVlrItem(lstrFaturasItensSev, "0302040008") 'Leitura Consumo na Ponta Atual
                            ldblLeitConsumoForaPAnter = BuscaVlrItem(lstrFaturasItensSev, "0302040009") 'Leitura Consumo Fora da Ponta Anterior
                            ldblLeitConsumoForaPAtual = BuscaVlrItem(lstrFaturasItensSev, "0302040010") 'Leitura Consumo Fora da Ponta Atual
                            'Micro Geração
                            ldblLeitReversoPontaAnter = BuscaVlrItem(lstrFaturasItensSev, "0302040021") 'Leitura Reverso na Ponta Anterior
                            ldblLeitReversoPontaAtual = BuscaVlrItem(lstrFaturasItensSev, "0302040022") 'Leitura Reverso na Ponta Atual
                            ldblLeitReversoForaPAnter = BuscaVlrItem(lstrFaturasItensSev, "0302040023") 'Leitura Reverso Fora da Ponta Anterior
                            ldblLeitReversoForaPAtual = BuscaVlrItem(lstrFaturasItensSev, "0302040024") 'Leitura Reverso Fora da Ponta Atual
                            'Consumo Reservado
                            ldblLeitConsReservadAtual = BuscaVlrItem(lstrFaturasItensSev, "0302040019") 'Leitura do Consumo Reservado Atual
                            ldblLeitConsReservadAnter = BuscaVlrItem(lstrFaturasItensSev, "0302040020") 'Leitura do Consumo Reservado Anterior
                            'Quantidades
                            'Consumo
                            If strLocalProjeto.ToUpper() = "API" Then
                                ldblConsMedidoPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010010") ' Consumo Medido Ponta no caso de CCEE
                                ldblConsMedidoForaP = BuscaVlrItem(lstrFaturasItensSev, "0302010011") ' Consumo Medido Fora da Ponta no caso de CCEE
                            ElseIf strLocalProjeto.ToUpper() = "FORM" Then

                                If frmImpFaturas.chkNew.CheckState = 1 Then
                                    ldblConsMedidoPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010045") ' Consumo Medido Ponta no caso de CCEE
                                    ldblConsMedidoForaP = BuscaVlrItem(lstrFaturasItensSev, "0302010046") ' Consumo Medido Fora da Ponta no caso de CCEE
                                Else
                                    ldblConsMedidoPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010010") ' Consumo Medido Ponta no caso de CCEE
                                    ldblConsMedidoForaP = BuscaVlrItem(lstrFaturasItensSev, "0302010011") ' Consumo Medido Fora da Ponta no caso de CCEE
                                End If

                            End If

                            ldblConsFaturaPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010010") ' Consumo Faturado na Ponta
                            ldblConsFaturaForaP = BuscaVlrItem(lstrFaturasItensSev, "0302010011") ' Consumo Faturado Fora da Ponta
                            ldblConsContraPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010047") ' Consumo Contratado na Ponta
                            ldblConsContraForaP = BuscaVlrItem(lstrFaturasItensSev, "0302010048") ' Consumo Contratado Fora da Ponta
                            ldblConsMedido = BuscaVlrItem(lstrFaturasItensSev, "0302010008") ' Consumo Medido para o Convencional
                            ldblConsFatura = BuscaVlrItem(lstrFaturasItensSev, "0302010009") ' Consumo Faturado para o Convencional
                            ldblConsReservado = BuscaVlrItem(lstrFaturasItensSev, "0302990044") 'Consumo Reservado Horosazonal

                            'Micro Geração
                            ldblkWhReversoPonta = BuscaVlrItem(lstrFaturasItensSev, "0302012010") ' Reverso na Ponta
                            ldblkWhReversoForaP = BuscaVlrItem(lstrFaturasItensSev, "0302012011") ' Reverso Fora da Ponta
                            ldblkWhReversoResPonta = BuscaVlrItem(lstrFaturasItensSev, "0302013010") ' Reverso Residuo na Ponta
                            ldblkWhReversoResForaP = BuscaVlrItem(lstrFaturasItensSev, "0302013011") ' Reverso Residuo Fora da Ponta
                            ldblkWhReversoRecPonta = 20
                            ldblkWhReversoRecForaP = 20
                            ldblkWhEnviado = 0
                            ldblkWhSaldo = 0

                            'Demanda
                            ldblDemaMedidaPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010019") ' Demanda Medida Ponta
                            ldblDemaMedidaForaP = BuscaVlrItem(lstrFaturasItensSev, "0302010023") ' Demanda Medida Fora da Ponta
                            ldblDemaFaturaPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010021") ' Demanda Faturada Ponta
                            ldblDemaFaturaForaP = BuscaVlrItem(lstrFaturasItensSev, "0302010025") ' Demanda Faturada Fora da Ponta
                            ldblDemaUltrapPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010022") ' Demanda Ultrapassada Ponta
                            ldblDemaUltrapForaP = BuscaVlrItem(lstrFaturasItensSev, "0302010026") ' Demanda Ultrapassada Fora da Ponta
                            ldblDemaMedida = BuscaVlrItem(lstrFaturasItensSev, "0302010015") ' Demanda Medida para o Convencional
                            ldblDemaFatura = BuscaVlrItem(lstrFaturasItensSev, "0302010017") ' Demanda Faturada para o Convencional
                            ldblDemaUltrap = BuscaVlrItem(lstrFaturasItensSev, "0302010018") ' Demanda Ultrapassada para o Convencional
                            'Fator de Potencia Convencional
                            ldblFatorPontencia = BuscaVlrItem(lstrFaturasItensSev, "0302030099")
                            'Reativo Consumo
                            ldblReatConsumPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010013") 'Reativo do Consumo na ponta
                            ldblReatConsumForaP = BuscaVlrItem(lstrFaturasItensSev, "0302010014") 'Reativo do Consumo Fora da ponta
                            ldblReatMedido = BuscaVlrItem(lstrFaturasItensSev, "0302010012") 'Reativo do Consumo para o Convencional
                            'Reativo Demanda
                            ldblReatDemandPonta = BuscaVlrItem(lstrFaturasItensSev, "0302010027") 'Reativo da Demanda na Ponta
                            ldblReatDemandForaP = BuscaVlrItem(lstrFaturasItensSev, "0302010028") 'Reativo da Demanda Fora da Ponta
                            ' Tributos
                            ' Icms
                            If gstrEmpresa_Sigla = "CERES" Then
                                ldblBaseIcms = 0
                            Else
                                ldblBaseIcms = BuscaVlrItem(lstrFaturasItensSev, "0302030001")
                            End If
                            ldblAliqIcms = BuscaVlrItem(lstrFaturasItensSev, "0302030002")
                            ldblValrIcms = BuscaVlrItem(lstrFaturasItensSev, "0302030009")
                            'Icms2
                            ldblBaseIcms2 = BuscaVlrItem(lstrFaturasItensSev, "0302030003")
                            ldblAliqIcms2 = BuscaVlrItem(lstrFaturasItensSev, "0302030013")
                            ldblValrIcms2 = BuscaVlrItem(lstrFaturasItensSev, "0302030010")
                            'Pis
                            ldblBasePis = BuscaVlrItem(lstrFaturasItensSev, "0302020033")
                            ldblAliqPis = BuscaVlrItem(lstrFaturasItensSev, "40PIS00001")
                            ldblValrPis = BuscaVlrItem(lstrFaturasItensSev, "0302020029")
                            'Cofins
                            ldblBaseCofins = BuscaVlrItem(lstrFaturasItensSev, "0302020034")
                            ldblAliqCofins = BuscaVlrItem(lstrFaturasItensSev, "40COF00001")
                            ldblValrCofins = BuscaVlrItem(lstrFaturasItensSev, "0302020030")
                            '********************************************
                            'Tributação da comercialização dos Livres
                            ' Icms
                            ldblBaseIcmSt = BuscaVlrItem(lstrFaturasItensSev, "0602010001")
                            ldblAliqIcmSt = BuscaVlrItem(lstrFaturasItensSev, "0601020001")
                            ldblValrIcmSt = BuscaVlrItem(lstrFaturasItensSev, "0602020001")
                            'Pis
                            ldblBasePisSt = BuscaVlrItem(lstrFaturasItensSev, "0602010002")
                            ldblAliqPisSt = BuscaVlrItem(lstrFaturasItensSev, "0601020002")
                            ldblValrPisSt = BuscaVlrItem(lstrFaturasItensSev, "0602020002")
                            'Cofins
                            ldblBaseCofSt = BuscaVlrItem(lstrFaturasItensSev, "0602010003")
                            ldblAliqCofSt = BuscaVlrItem(lstrFaturasItensSev, "0601020003")
                            ldblValrCofSt = BuscaVlrItem(lstrFaturasItensSev, "0602020003")
                            'Valor da Compra (R$)
                            ldblVCompraSt = BuscaVlrItem(lstrFaturasItensSev, "0601010001") 'compra
                            ldblVPMedioSt = BuscaVlrItem(lstrFaturasItensSev, "0601010005") 'preco médio
                            ldblVConsumSt = BuscaVlrItem(lstrFaturasItensSev, "0601010006") 'Consumo
                            lstrReferenSt = BuscaRefItem(lstrFaturasItensSev, "0601010004") 'referencia
                            '********************************************
                            'Indicador de Continuidade
                            ldblDecMeta = BuscaVlrItem(lstrFaturasItensSev, "0302080101")
                            ldblFecMeta = BuscaVlrItem(lstrFaturasItensSev, "0302080102")
                            ldblDicMeta = BuscaVlrItem(lstrFaturasItensSev, "0302080103")
                            ldblFicMeta = BuscaVlrItem(lstrFaturasItensSev, "0302080104")
                            ldblDmicMet = BuscaVlrItem(lstrFaturasItensSev, "0302080105")
                            ldblDecReal = BuscaVlrItem(lstrFaturasItensSev, "0302080001")
                            ldblFecReal = BuscaVlrItem(lstrFaturasItensSev, "0302080002")
                            ldblDicReal = BuscaVlrItem(lstrFaturasItensSev, "0302080003")
                            ldblFicReal = BuscaVlrItem(lstrFaturasItensSev, "0302080004")
                            ldblDmicRea = BuscaVlrItem(lstrFaturasItensSev, "0302080005")
                            lstrRefICon = BuscaRefItem(lstrFaturasItensSev, "0302080099")
                            'Rentenção Tributária
                            'Consumo
                            ldblRetPisCons = BuscaVlrItem(lstrFaturasItensSev, "9090000001")
                            ldblRetCofCons = BuscaVlrItem(lstrFaturasItensSev, "9090000002")
                            ldblRetCslCons = BuscaVlrItem(lstrFaturasItensSev, "9090000003")
                            ldblRetIrpCons = BuscaVlrItem(lstrFaturasItensSev, "9090000004")
                            'Demanda
                            ldblRetIrpDema = BuscaVlrItem(lstrFaturasItensSev, "9090000005")
                            ldblRetCslDema = BuscaVlrItem(lstrFaturasItensSev, "9090000006")
                            ldblRetCofDema = BuscaVlrItem(lstrFaturasItensSev, "9090000007")
                            ldblRetPisDema = BuscaVlrItem(lstrFaturasItensSev, "9090000008")
                            'Composição da Fatura
                            ldblCompEnergia = 0
                            ldblCompTransmissao = 0
                            ldblCompDistribuicao = 0
                            ldblCompEncargosSetoriais = 0
                            'ldblCompEnergia = BuscaVlrItem(lstrFaturasItensSev, "0302090001")
                            'ldblCompTransmissao = BuscaVlrItem(lstrFaturasItensSev, "0302090002")
                            'ldblCompDistribuicao = BuscaVlrItem(lstrFaturasItensSev, "0302090003")
                            'ldblCompEncargosSetoriais = BuscaVlrItem(lstrFaturasItensSev, "0302090004")

                            'Tarifas
                            ldblTarDemaPonta = BuscaVlrItem(lstrFaturasItensSev, "01" & Mid(lstrFaturasTa, 3, 2) & "012101")
                            ldblTarDemaForaP = BuscaVlrItem(lstrFaturasItensSev, "01" & Mid(lstrFaturasTa, 3, 2) & "012102")
                            ldblTarDUltPonta = BuscaVlrItem(lstrFaturasItensSev, IIf(Mid(lstrFaturasTa, 3, 2) <> "A4" And Mid(lstrFaturasTa, 3, 2) <> "AS", "01" & Mid(lstrFaturasTa, 3, 2) & "012103", "01" & Mid(lstrFaturasTa, 3, 2) & "012102"))
                            ldblTarDUltForaP = BuscaVlrItem(lstrFaturasItensSev, "01" & Mid(lstrFaturasTa, 3, 2) & "012104")
                            ldblTarConsPonta = BuscaVlrItem(lstrFaturasItensSev, "01" & Mid(lstrFaturasTa, 3, 2) & "011101") 'Seca ou Convencional
                            If ldblTarConsPonta = 0 Then
                                ldblTarConsPonta = BuscaVlrItem(lstrFaturasItensSev, "01" & Mid(lstrFaturasTa, 3, 2) & "011105") 'Úmida
                            End If
                            ldblTarConsForaP = BuscaVlrItem(lstrFaturasItensSev, "01" & Mid(lstrFaturasTa, 3, 2) & "011102") 'Seca ou Convencional
                            If ldblTarConsForaP = 0 Then
                                ldblTarConsForaP = BuscaVlrItem(lstrFaturasItensSev, "01" & Mid(lstrFaturasTa, 3, 2) & "011106") 'Úmida
                            End If

                            If lstrFaturasCodBarra = "" Then

                                sBanco = fRetornaBancoImpFat(IIf(lstrFaturasBancoFatur = "", 0, CLng(lstrFaturasBancoFatur)))
                                MontaCodBarras(ldblFaturasNumNf, lstrFaturasMesAno, ldblFaturasValorLiq, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, lstrFaturasCodBarra, lstrFaturasDvCodBarra, CStr(ldteFaturasVencimento), lstrFaturaLinhaDigitavel, sBanco)

                                objNfTransicao.CODBARRA = lstrFaturasCodBarra
                                objNfTransicao.DVCODBARRA = lstrFaturasDvCodBarra
                                objNfTransicao.NUMNF = ldblFaturasNumNf
                                objNfTransicao.MESANO_REF = llngFaturasMesAnoRef
                                objNfTransicao.CODBARRA_IMAGEM = lstrFaturaLinhaDigitavel

                                repositorioNfTransicao.Update_CodBarras(objNfTransicao)

                                lstrFaturaAjusteCodBarras = lstrFaturasCodBarra
                                lstrFaturaAjusteLinhaDigitavel = lstrFaturaLinhaDigitavel

                                lstrFaturasCodBarra = lstrFaturaAjusteLinhaDigitavel
                                lstrFaturaLinhaDigitavel = lstrFaturaAjusteCodBarras

                            End If

                            'Monta Insert

                            objTempFaturaA.SEGVIA = aintSegVia
                            objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                            'DADOS DA FATURA
                            objTempFaturaA.NUMNF = ldblFaturasNumNf
                            objTempFaturaA.CFOP = ldblFaturasCfop
                            objTempFaturaA.ZONA = IIf(String.IsNullOrEmpty(lstrFaturasZona), " ", lstrFaturasZona)
                            objTempFaturaA.LIVRO = IIf(String.IsNullOrEmpty(lstrFaturasLivro), " ", lstrFaturasLivro)
                            objTempFaturaA.CONTA = IIf(String.IsNullOrEmpty(lstrFaturasConta), " ", lstrFaturasConta)
                            objTempFaturaA.ROTA = IIf(String.IsNullOrEmpty(lstrFaturasRota), " ", lstrFaturasRota)
                            objTempFaturaA.VALORTOT = ldblFaturasValorTot
                            objTempFaturaA.VALORLIQ = ldblFaturasValorLiq
                            objTempFaturaA.CODCLAS = IIf(String.IsNullOrEmpty(lstrFaturasCodClas), " ", lstrFaturasCodClas)
                            objTempFaturaA.DATAVENC = VB6.Format(ldteFaturasVencimento, "yyyy-MM-dd")
                            objTempFaturaA.BANCO_FATUR = IIf(String.IsNullOrEmpty(lstrFaturasBancoFatur), " ", lstrFaturasBancoFatur) 'IIf(String.IsNullOrEmpty(lstrFaturasBanIdent), " ", lstrFaturasBanIdent)
                            objTempFaturaA.MESANO = IIf(String.IsNullOrEmpty(lstrFaturasMesAno), " ", lstrFaturasMesAno)
                            objTempFaturaA.MESANOREF = llngFaturasMesAnoRef
                            objTempFaturaA.ANOMES_FAT = llngFaturasAnoMes_Fat
                            objTempFaturaA.DATAAPR = VB6.Format(ldteFaturasApresentacao, "yyyy-MM-dd")
                            objTempFaturaA.DATAEMISSAO = VB6.Format(ldteFaturasEmissao, "yyyy-MM-dd")
                            objTempFaturaA.DATAPROXLEIT = VB6.Format(ldteFaturasProxLeit, "yyyy-MM-dd")
                            objTempFaturaA.DATALEIT = VB6.Format(ldteFaturasLeitura, "yyyy-MM-dd")
                            objTempFaturaA.DATALEITANT = VB6.Format(ldteFaturasLeitAnterior, "yyyy-MM-dd")
                            objTempFaturaA.FASE = IIf(String.IsNullOrEmpty(lstrFaturasFase), " ", lstrFaturasFase)
                            objTempFaturaA.TA = IIf(String.IsNullOrEmpty(lstrFaturasTa), " ", lstrFaturasTa)
                            objTempFaturaA.TENSAO = IIf(String.IsNullOrEmpty(lstrFaturasTensao), " ", lstrFaturasTensao)
                            objTempFaturaA.CODHASH = IIf(String.IsNullOrEmpty(lstrFaturasCodHash), " ", lstrFaturasCodHash)
                            objTempFaturaA.CODBARRA = IIf(String.IsNullOrEmpty(lstrFaturasCodBarra), " ", lstrFaturasCodBarra)
                            objTempFaturaA.DVCODBARRA = IIf(String.IsNullOrEmpty(lstrFaturasDvCodBarra), " ", lstrFaturasDvCodBarra)
                            objTempFaturaA.LINHADIGITAVEL = IIf(String.IsNullOrEmpty(lstrFaturaLinhaDigitavel), " ", lstrFaturaLinhaDigitavel)
                            objTempFaturaA.DESCLASSE = IIf(String.IsNullOrEmpty(lstrClasseDescricao), " ", lstrClasseDescricao)
                            objTempFaturaA.FLGST = ""
                            objTempFaturaA.CANCELADA_MESANO = lstrFaturaCanceladaMesano
                            objTempFaturaA.CANCELADA_NUMNF = ldlbFaturaCanceladaNumNF

                            'DADOS DA UNIDADE
                            objTempFaturaA.CGC = IIf(String.IsNullOrEmpty(lstrUnidaCpfCnpj), " ", lstrUnidaCpfCnpj)
                            objTempFaturaA.INSC = IIf(String.IsNullOrEmpty(lstrUnidaInsc), " ", lstrUnidaInsc)
                            objTempFaturaA.RG = IIf(String.IsNullOrEmpty(lstrUnidaRg), " ", lstrUnidaRg)
                            objTempFaturaA.AGENC = IIf(String.IsNullOrEmpty(lstrUnidaAgenc), " ", lstrUnidaAgenc)
                            objTempFaturaA.CC = IIf(String.IsNullOrEmpty(lstrUnidaCC), " ", lstrUnidaCC)
                            objTempFaturaA.NOMECONS = IIf(String.IsNullOrEmpty(lstrUnidaNome), " ", lstrUnidaNome)
                            objTempFaturaA.CIDADE = IIf(String.IsNullOrEmpty(lstrUnidaCidade), " ", lstrUnidaCidade)
                            objTempFaturaA.DISTRITO = IIf(String.IsNullOrEmpty(lstrUnidaDistrito), " ", lstrUnidaDistrito)
                            objTempFaturaA.BAIRRO = IIf(String.IsNullOrEmpty(lstrUnidaBairro), " ", lstrUnidaBairro)
                            objTempFaturaA.END = IIf(String.IsNullOrEmpty(lstrUnidaEnd), " ", lstrUnidaEnd)
                            objTempFaturaA.NUMERO = IIf(String.IsNullOrEmpty(lstrUnidaNumero), " ", lstrUnidaNumero)
                            objTempFaturaA.COMPLEMENT = IIf(String.IsNullOrEmpty(lstrUnidaComplement), " ", lstrUnidaComplement)
                            objTempFaturaA.CEP = IIf(String.IsNullOrEmpty(lstrUnidaCep), " ", lstrUnidaCep)
                            objTempFaturaA.UF = IIf(String.IsNullOrEmpty(lstrUnidaUf), " ", lstrUnidaUf)
                            objTempFaturaA.QUADRA = IIf(String.IsNullOrEmpty(lstrUnidaQuadra), " ", lstrUnidaQuadra)
                            objTempFaturaA.LOTE = IIf(String.IsNullOrEmpty(lstrUnidaLote), " ", lstrUnidaLote)
                            objTempFaturaA.CID_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaCidEntrega), " ", lstrUnidaCidEntrega)
                            objTempFaturaA.DIS_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaDisEntrega), " ", lstrUnidaDisEntrega)
                            objTempFaturaA.BAI_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaBaiEntrega), " ", lstrUnidaBaiEntrega)
                            objTempFaturaA.END_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaEndEntrega), " ", lstrUnidaEndEntrega)
                            objTempFaturaA.NUM_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaNumEntrega), " ", lstrUnidaNumEntrega)
                            objTempFaturaA.COMPL_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaComplEntrega), " ", lstrUnidaComplEntrega)
                            objTempFaturaA.CEP_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaCepEntrega), " ", lstrUnidaCepEntrega)
                            objTempFaturaA.UF_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaUfEntrega), " ", lstrUnidaUfEntrega)
                            objTempFaturaA.QUA_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaQuaEntrega), " ", lstrUnidaQuaEntrega)
                            objTempFaturaA.LOT_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaLotEntrega), " ", lstrUnidaLotEntrega)
                            objTempFaturaA.GRUPO = IIf(String.IsNullOrEmpty(lstrUnidaGrupo), " ", lstrUnidaGrupo)
                            objTempFaturaA.CONST_DEMANDA = ldblUnidaConstDemanda
                            objTempFaturaA.CONST_CONS_FP = ldblUnidaConstConsFp
                            objTempFaturaA.CONST_CONS_P = ldblUnidaConstConsP
                            objTempFaturaA.CONST_KVARH_P = ldblUnidaConsReativoP
                            objTempFaturaA.CONST_KVARH_FP = ldblUnidaConsReativoFp
                            objTempFaturaA.MEDKW = ldblUnidaMedidorDemanda
                            objTempFaturaA.MEDKVARK = ldblUnidaMedidorReativo
                            objTempFaturaA.ELETR = ldblUnidaMedidorConsumo
                            objTempFaturaA.DEMCONTRP = ldblUnidaDemContrPonta
                            objTempFaturaA.DEMCONTRFP = ldblUnidaDemContrFp
                            objTempFaturaA.DEMCONTRPANTERIOR = ldblUnidaDemAnteriorContrPonta
                            objTempFaturaA.DEMCONTRFPANTERIOR = ldblUnidaDemAnteriorContrFp
                            objTempFaturaA.PERIODO_TESTE = IIf(lblnFaturaPeriodoTeste, 1, 0)
                            objTempFaturaA.CONST_KVARH = ldblUnidaConstReativo
                            objTempFaturaA.CONST_KW = ldblUnidaConstDemanda
                            objTempFaturaA.CONST_KWH = ldblUnidaConstConsumo
                            objTempFaturaA.CONST_DEMANDA_FP = ldblUnidaConstDemandaFp
                            objTempFaturaA.KW_CONT = ldblUnidaDemandaContr
                            objTempFaturaA.CARGA = ldblUnidaCarga
                            objTempFaturaA.PERDA = ldblUnidaFinal
                            objTempFaturaA.REFCONS = IIf(String.IsNullOrEmpty(lstrConsumidorNome), " ", lstrConsumidorNome)
                            'LEITURAS
                            'REATIVO CONSUMO
                            objTempFaturaA.LEIT_KVARH_ANT = ldblLeitConsReativoPontaAnter
                            objTempFaturaA.LEIT_KVARH_ATUAL = ldblLeitConsReativoPontaAtual
                            objTempFaturaA.LEITANT_KVARH_P = ldblLeitConsReativoPontaAnter
                            objTempFaturaA.LEIT_KVARH_P = ldblLeitConsReativoPontaAtual
                            objTempFaturaA.LEITANT_KVARH_FP = ldblLeitConsReativoForaPAnter
                            objTempFaturaA.LEIT_KVARH_FP = ldblLeitConsReativoForaPAtual
                            'DEMANDA
                            objTempFaturaA.LEIT_KW_ANT = ldblLeitDemandaPontaAnter
                            objTempFaturaA.LEIT_KW_ATUAL = ldblLeitDemandaPontaAtual
                            objTempFaturaA.LEITANT_KW_P = ldblLeitDemandaPontaAnter
                            objTempFaturaA.LEIT_KW_P = ldblLeitDemandaPontaAtual
                            objTempFaturaA.LEITANT_KW_FP = ldblLeitDemandaForaPAnter
                            objTempFaturaA.LEIT_KW_FP = ldblLeitDemandaForaPAtual
                            'CONSUMO
                            objTempFaturaA.LEIT_KWH_ANT = ldblLeitConsumoPontaAnter
                            objTempFaturaA.LEIT_KWH_ATUAL = ldblLeitConsumoPontaAtual
                            objTempFaturaA.LEITANT_KWH_P = ldblLeitConsumoPontaAnter
                            objTempFaturaA.LEIT_KWH_P = ldblLeitConsumoPontaAtual
                            objTempFaturaA.LEITANT_KWH_FP = ldblLeitConsumoForaPAnter
                            objTempFaturaA.LEIT_KWH_FP = ldblLeitConsumoForaPAtual
                            'MICRO GERAÇÃO
                            objTempFaturaA.LEITANT_REVERSO_P = ldblLeitReversoPontaAnter
                            objTempFaturaA.LEIT_REVERSO_P = ldblLeitReversoPontaAtual
                            objTempFaturaA.LEITANT_REVERSO_FP = ldblLeitReversoForaPAnter
                            objTempFaturaA.LEIT_REVERSO_FP = ldblLeitReversoForaPAtual
                            objTempFaturaA.MICRO_GERACAO = ldblMicroGeracao
                            'CONSUMO RESERVADO
                            objTempFaturaA.LEITANT_KWH_RES = ldblLeitConsReservadAnter
                            objTempFaturaA.LEIT_KWH_RES = ldblLeitConsReservadAtual
                            'QUANTIDADES
                            'CONSUMO
                            objTempFaturaA.CONSMEDIDOP = ldblConsMedidoPonta
                            objTempFaturaA.CONSMEDIDOFP = ldblConsMedidoForaP
                            objTempFaturaA.CONSFATURADOP = ldblConsFaturaPonta
                            objTempFaturaA.CONSFATURADOFP = ldblConsFaturaForaP
                            objTempFaturaA.CONSCONTRP = ldblConsContraPonta
                            objTempFaturaA.CONSCONTRFP = ldblConsContraForaP
                            objTempFaturaA.KWH_MED = ldblConsMedido
                            objTempFaturaA.KWH_FAT = ldblConsFatura
                            objTempFaturaA.CONSRESERVADO = ldblConsReservado
                            'MICRO GERAÇÃO
                            objTempFaturaA.KWH_REVERSO_P = ldblkWhReversoPonta
                            objTempFaturaA.KWH_REVERSO_FP = ldblkWhReversoForaP
                            objTempFaturaA.KWH_REVERSO_RES_P = ldblkWhReversoResPonta
                            objTempFaturaA.KWH_REVERSO_RES_FP = ldblkWhReversoResForaP
                            objTempFaturaA.KWH_REVERSO_REC_P = ldblkWhReversoRecPonta
                            objTempFaturaA.KWH_REVERSO_REC_FP = ldblkWhReversoRecForaP
                            objTempFaturaA.KWH_ENVIADO = ldblkWhEnviado
                            objTempFaturaA.KWH_SALDO = ldblkWhSaldo

                            'DEMANDA
                            objTempFaturaA.DEMMEDIDAP = ldblDemaMedidaPonta
                            objTempFaturaA.DEMMEDIDAFP = ldblDemaMedidaForaP
                            objTempFaturaA.DEMFATURP = ldblDemaFaturaPonta
                            objTempFaturaA.DEMFATURFP = ldblDemaFaturaForaP
                            objTempFaturaA.ULTRAP = ldblDemaUltrapPonta
                            objTempFaturaA.ULTRAFP = ldblDemaUltrapForaP
                            objTempFaturaA.KW_MED = ldblDemaMedida
                            objTempFaturaA.KW_FAT = ldblDemaFatura
                            objTempFaturaA.KW_ULTRA = ldblDemaUltrap
                            'FATOR DE POTENCIA
                            objTempFaturaA.KVARH_FPOT = ldblFatorPontencia
                            'REATIVO CONSUMO
                            objTempFaturaA.FER_P = ldblReatConsumPonta
                            objTempFaturaA.FER_FP = ldblReatConsumForaP
                            objTempFaturaA.KVARH_MED = ldblReatMedido
                            'REATIVO DEMANDA
                            objTempFaturaA.LEIT_KVAR_P = ldblReatDemandPonta
                            objTempFaturaA.LEIT_KVAR_FP = ldblReatDemandForaP
                            'TRIBUTOS
                            'ICMS
                            objTempFaturaA.BASE_ICMS = ldblBaseIcms
                            objTempFaturaA.ALIQ_ICMS = ldblAliqIcms
                            objTempFaturaA.VLR_ICMS = ldblValrIcms
                            objTempFaturaA.BASE_ICMS2 = ldblBaseIcms2
                            objTempFaturaA.ALIQ_ICMS2 = ldblAliqIcms2
                            objTempFaturaA.VLR_ICMS2 = ldblValrIcms2
                            'PIS
                            objTempFaturaA.BASEPIS = ldblBasePis
                            objTempFaturaA.ALIQPIS = ldblAliqPis
                            objTempFaturaA.VLRPIS = ldblValrPis
                            'COFINS
                            objTempFaturaA.BASECOFINS = ldblBaseCofins
                            objTempFaturaA.ALIQCOFINS = ldblAliqCofins
                            objTempFaturaA.VLRCOFINS = ldblValrCofins
                            '********************************************
                            'TRIBUTAÇÃO DA COMERCIALIZAÇÃO DOS LIVRES
                            'ICMS
                            objTempFaturaA.BASE_ICMS_ST = ldblBaseIcmSt
                            objTempFaturaA.ALIQ_ICMS_ST = ldblAliqIcmSt
                            objTempFaturaA.VLR_ICMS_ST = ldblValrIcmSt
                            'PIS
                            objTempFaturaA.BASEPIS_ST = ldblBasePisSt
                            objTempFaturaA.ALIQPIS_ST = ldblAliqPisSt
                            objTempFaturaA.VLRPIS_ST = ldblValrPisSt
                            'COFINS
                            objTempFaturaA.BASECOFINS_ST = ldblBaseCofSt
                            objTempFaturaA.ALIQCOFINS_ST = ldblAliqCofSt
                            objTempFaturaA.VLRCOFINS_ST = ldblValrCofSt
                            'VALOR DA COMPRA (R$)
                            objTempFaturaA.VLRENERGIA_ST = ldblVCompraSt
                            objTempFaturaA.VLRPCMEDIO_ST = ldblVPMedioSt
                            objTempFaturaA.VLRCONSUMO_ST = ldblVConsumSt
                            objTempFaturaA.REFERENCIA_ST = IIf(String.IsNullOrEmpty(lstrReferenSt), " ", lstrReferenSt)
                            '********************************************
                            'INDICADOR DE CONTINUIDADE
                            objTempFaturaA.DEC_META = ldblDecMeta
                            objTempFaturaA.FEC_META = ldblFecMeta
                            objTempFaturaA.DIC_META = ldblDicMeta
                            objTempFaturaA.FIC_META = ldblFicMeta
                            objTempFaturaA.DMIC = ldblDmicMet
                            objTempFaturaA.DEC_REA = ldblDecReal
                            objTempFaturaA.FEC_REA = ldblFecReal
                            objTempFaturaA.DIC_REA = ldblDicReal
                            objTempFaturaA.FIC_REA = ldblFicReal
                            objTempFaturaA.DMIC_REA = ldblDmicRea
                            objTempFaturaA.REFINDICADOR = IIf(String.IsNullOrEmpty(lstrRefICon), " ", lstrRefICon)
                            'RENTENÇÃO TRIBUTÁRIA
                            'CONSUMO
                            objTempFaturaA.RET_PIS = ldblRetPisCons
                            objTempFaturaA.RET_COFINS = ldblRetCofCons
                            objTempFaturaA.RET_CSLL = ldblRetCslCons
                            objTempFaturaA.RET_IRPJC = ldblRetIrpCons
                            'DEMANDA
                            objTempFaturaA.RET_IRPJD = ldblRetIrpDema
                            objTempFaturaA.RET_CSLLD = ldblRetCslDema
                            objTempFaturaA.RET_COFINSD = ldblRetCofDema
                            objTempFaturaA.RET_PISD = ldblRetPisDema
                            'COMPOSIÇÃO DA FATURA
                            objTempFaturaA.COMP_ENERGIA = ldblCompEnergia
                            objTempFaturaA.COMP_TRANSMISSAO = ldblCompTransmissao
                            objTempFaturaA.COMP_DISTRIBUICAO = ldblCompDistribuicao
                            objTempFaturaA.COMP_ENCARGOS_SETORIAIS = ldblCompEncargosSetoriais
                            'TARIFAS
                            objTempFaturaA.TA_DEMP = ldblTarDemaPonta
                            objTempFaturaA.TA_DEMFP = ldblTarDemaForaP
                            objTempFaturaA.TA_ULTRAP = ldblTarDUltPonta
                            objTempFaturaA.TA_ULTRAFP = ldblTarDUltForaP
                            objTempFaturaA.TA_CONSP = ldblTarConsPonta
                            objTempFaturaA.TA_CONSFP = ldblTarConsForaP
                            'MENSAGEM DA FATURA
                            objTempFaturaA.MENSAGEM_BANDEIRA = IIf(String.IsNullOrEmpty(lstrFaturasMensagemBandeira), " ", lstrFaturasMensagemBandeira)
                            objTempFaturaA.BANDEIRA = llngBandeira

                            If strLocalProjeto.ToUpper() = "API" Then
                                objTempFaturaA.FRENTEVERSO = 0
                            ElseIf strLocalProjeto.ToUpper() = "FORM" Then
                                objTempFaturaA.FRENTEVERSO = IIf(frmImpFaturas.chkFrenteVerso.CheckState = System.Windows.Forms.CheckState.Checked, 1, 0)
                            End If

                            objTempFaturaA.LIVRE_VERDE = lintFaturasLivreVerde
                            objTempFaturaA.PARC_CATIVO = lintFaturasParcCativo
                            objTempFaturaA.MENSAGEM = IIf(String.IsNullOrEmpty(lstrMensagem), " ", lstrMensagem)
                            objTempFaturaA.ITENSIMP = IIf(String.IsNullOrEmpty(lstrFaturasItensImp), " ", lstrFaturasItensImp)
                            objTempFaturaA.SEQUENCIA = lintSequenciaFaturas
                            objTempFaturaA.MATRICULA = lintConsumidorMatricula

                            lInsert(objTempFaturaA)

                            lMontarCodBarrasEPixGrupoA(objTempFaturaA)

                            objTempFaturaA.CGC = lEsconderNumerosCpfCnpj(IIf(String.IsNullOrEmpty(lstrUnidaCpfCnpj), " ", lstrUnidaCpfCnpj))

                            lUpdate_1(objTempFaturaA)

                            If aintSegVia <> 4 Then

                                objTempHistFaturaA.NUMNF = IIf(String.IsNullOrEmpty(Convert.ToString(ldblFaturasNumNf)), " ", ldblFaturasNumNf)
                                objTempHistFaturaA.MESANO1 = IIf(String.IsNullOrEmpty(lstrFaturasMesAno), " ", lstrFaturasMesAno)
                                objTempHistFaturaA.MESANO2 = IIf(String.IsNullOrEmpty(lstrFaturasZona), " ", lstrFaturasZona)
                                objTempHistFaturaA.MESANO3 = IIf(String.IsNullOrEmpty(lstrFaturasLivro), " ", lstrFaturasLivro)
                                objTempHistFaturaA.MESANO4 = IIf(String.IsNullOrEmpty(lstrFaturasConta), " ", lstrFaturasConta)
                                objTempHistFaturaA.MESANO5 = IIf(String.IsNullOrEmpty(istrTabela), " ", istrTabela)
                                objTempHistFaturaA.MESANO6 = istrUsuarioGeradorFatura

                                repositorioTempHistFaturaA.Execute(objTempHistFaturaA)

                            End If

                            If strLocalProjeto.ToUpper() = "FORM" Then
                                BarraProgresso((frmImpFaturas.ProgressBar), (frmImpFaturas.lblPerc), (frmImpFaturas.lblInfo), 1)
                            End If

                            'If Me.chkOpcional.CheckState = System.Windows.Forms.CheckState.Checked And Me.chkVerificaCriaTempItemFatura.CheckState = System.Windows.Forms.CheckState.Checked Then
                            llngFaturasAnoMes_Fat = Convert.ToDateTime("01/" + lstrFaturasMesAno).ToString("yyyyMM")
                            VerificaCriaTempItemFatura(strLocalProjeto, ldblFaturasNumNf, lstrFaturasMesAno, llngFaturasAnoMes_Fat, "A")
                            'End If

                        Next

                        If aintSegVia <> 4 Then
                            'FATURAS PENDENTES
                            If strLocalProjeto.ToUpper() = "FORM" Then
                                frmImpFaturas.lblInfo.Text = "Processando faturas pendentes..."
                                frmImpFaturas.lblInfo.Refresh()
                            End If

                            objTempFaturaA.MESANO = lstrMesAno
                            objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura

                            lUpdate(objTempFaturaA)

                        End If

                        If strLocalProjeto.ToUpper() = "FORM" Then

                            lstrNomeRptFat = String.Empty

                            If frmImpFaturas.chkNew.CheckState = 1 Then
                                If UCase(gstrEmpresa_Sigla) = "CERCI" Then
                                    lstrNomeRptFat = "rptFaturaCerciGrupoAHNovo"
                                Else
                                    lstrNomeRptFat = "rptFaturaEflulGrupoAHNovo"
                                End If
                            Else
                                If aintSegVia <> 4 And frmImpFaturas.chkFatComplementar.CheckState = System.Windows.Forms.CheckState.Unchecked Then

                                    If CDbl(lintTipo(0)) = 1 Then
                                        If UCase(gstrEmpresa_Sigla) = "CERCI" Then
                                            lstrNomeRptFat = "rptFaturaCerciGrupoAH"
                                        Else
                                            lstrNomeRptFat = "rptFaturaEflulGrupoAC"
                                        End If
                                    End If

                                    If CDbl(lintTipo(3)) = 1 Then
                                        lstrNomeRptFat = "rptFaturaEflulGrupoAS"
                                    End If

                                    If CDbl(lintTipo(1)) = 1 Then
                                        If UCase(gstrEmpresa_Sigla) = "CERCI" Then
                                            lstrNomeRptFat = "rptFaturaCerciGrupoAH"
                                        Else
                                            lstrNomeRptFat = "rptFaturaEflulGrupoAH"
                                        End If
                                    End If

                                    If CDbl(lintTipo(2)) = 1 Then
                                        lstrNomeRptFat = "rptFaturaEflulGrupoAPP"
                                    End If

                                ElseIf aintSegVia = 4 Or frmImpFaturas.chkFatComplementar.CheckState = System.Windows.Forms.CheckState.Checked Then
                                    lstrNomeRptFat = "rptFaturaEflulGrupo_Complementar"
                                End If

                            End If

                            If frmImpFaturas.chkFrenteVerso.CheckState = System.Windows.Forms.CheckState.Unchecked Then

                                If aintSegVia = 0 Then

                                    If frmImpFaturas.chkVerso.CheckState = 1 Then
                                        lstrNomeRptFat = "rptFaturaEflulGrupoAVerso"
                                    End If

                                End If

                            End If

                            If frmImpFaturas.chkEnviarFaturaEmail.CheckState = System.Windows.Forms.CheckState.Checked Then
                                frmImpFaturas.lPrintEmail(lstrNomeRptFat)
                            ElseIf frmImpFaturas.chkFaturaIndividualPDF.CheckState = System.Windows.Forms.CheckState.Checked Then
                                frmImpFaturas.lPrintIndividual(lstrNomeRptFat)
                            Else
                                frmImpFaturas.lPrint(lstrNomeRptFat, IIf(frmImpFaturas.sCaminhoPDF = "", False, True))
                            End If

                            objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                            lDelete(objTempFaturaA)

                            objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                            lDelete(objTempHistFaturaA)

                            objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                            lDelete(objTempFaturaAImagePixBarras)

                        End If

                    Else
                        MessageBox.Show("Não foi encontrado nenhuma fatura!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                    End If

                End If

            End If

        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempFatura As New entidadeTempFatura
                Dim repositorioTempFatura As New repositorioTempFatura

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: GeraFaturaGrupoA" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub

        End Try

    End Sub

    Public Sub GeraFaturaGrupoB(ByVal strLocalProjeto As String, ByVal aintSegVia As Short, Optional ByVal astrMesAno As String = "", Optional ByVal adblNumNf As Double = 0, Optional ByVal aintBarras As Short = 0, Optional ByVal astrTabela As String = "", Optional ByVal aIdentificacao As String = "", Optional ByVal aNumNF As String = "", Optional ByVal sCaminho As String = "", Optional ByVal bSemFiltro As Boolean = False)

        Dim strCriterio As String
        Dim lstrNomeRptFat As String
        Dim llngFaturasAnoMes_Fat As Integer
        Dim ldblFaturasNumNf As Double
        Dim ldblFaturasCfop As Double
        Dim lstrFaturasZona As String
        Dim lstrFaturasLivro As String
        Dim lstrFaturasConta As String
        Dim lstrFaturasRota As String
        Dim llngFaturasUnidId As Integer
        Dim llngFaturasConsId As Integer
        Dim ldblFaturasValorTot As Double
        Dim ldblFaturasValorLiq As Double
        Dim lstrFaturasCodClas As String
        Dim ldteFaturasVencimento As Date
        Dim lstrFaturasBanIdent As String
        Dim lstrFaturasBancoFatur As String
        Dim lstrFaturasMesAno As String
        Dim llngFaturasMesAnoRef As Integer
        Dim ldteFaturasApresentacao As Date
        Dim ldteFaturasEmissao As Date
        Dim ldteFaturasProxLeit As Date
        Dim ldteFaturasLeitura As Date
        Dim ldteFaturasLeitAnterior As Date
        Dim lstrFaturasFase As String
        Dim lstrFaturasTa As String
        Dim lstrFaturasTensao As String
        Dim lstrFaturasCodHash As String
        Dim lstrFaturasItensSev As String
        Dim lstrFaturasItensImp As String
        Dim llngFaturasNsu As Integer
        Dim lstrFaturasCodBarra As String
        Dim lstrFaturasDvCodBarra As String
        Dim lstrClasseDescricao As String
        Dim lstrFaturasNumMed As String
        Dim ldblFaturasConstMed As Double
        Dim lstrFaturasMensagemBandeira As String
        Dim lintSequenciaFaturas As Integer
        Dim lstrFaturasFlgst As String
        Dim lstrFaturaLinhaDigitavel As String
        Dim lstrFaturaAjusteCodBarras As String
        Dim lstrFaturaAjusteLinhaDigitavel As String
        Dim lstrFaturaCanceladaMesano As String
        Dim ldlbFaturaCanceladaNumNF As String

        'Dados da Unidade'
        Dim lstrUnidbCpfCnpj As String
        Dim lstrUnidbInsc As String
        Dim lstrUnidbRg As String
        Dim lstrUnidbAgenc As String
        Dim lstrUnidbCC As String
        Dim lstrUnidbNome As String
        Dim lstrUnidbCidade As String
        Dim lstrUnidbDistrito As String
        Dim lstrUnidbBairro As String
        Dim lstrUnidbEnd As String
        Dim lstrUnidbNumero As String
        Dim lstrUnidbComplement As String
        Dim lstrUnidbCep As String
        Dim lstrUnidbUf As String
        Dim lstrUnidbLote As String
        Dim lstrUnidbQuadra As String
        Dim llngUnidbEntrega As Integer
        Dim lstrUnidbCidEntrega As String
        Dim lstrUnidbDisEntrega As String
        Dim lstrUnidbBaiEntrega As String
        Dim lstrUnidbEndEntrega As String
        Dim lstrUnidbNumEntrega As String
        Dim lstrUnidbComplEntrega As String
        Dim lstrUnidbCepEntrega As String
        Dim lstrUnidbUfEntrega As String
        Dim lstrUnidbLotEntrega As String
        Dim lstrUnidbQuaEntrega As String
        Dim lstrUnidbGrupo As String
        Dim lstrUnidbRegiao As String
        Dim llngUnidbUnidId As Integer
        Dim llngUnidbConsId As Integer
        Dim lstrConsumidorNome As String
        Dim lstrConsumidorConjuge As String
        Dim lstrConsumidorCep As String
        Dim lstrConsumidorUf As String
        Dim lstrConsumidorCgc As String
        Dim lstrConsumidorInsc As String
        Dim lstrConsumidorRg As String
        Dim lintConsumidorMatricula As Integer
        Dim ldblMicroGeracao As Double
        Dim ldblMicroGeracaoDistr As Double
        Dim lstrOrdemJudicial As String = "N"

        'Leituras e Consumos'
        Dim ldblLeitAtual As Double
        Dim ldblLeitAnter As Double
        Dim ldblConsFatura As Double
        Dim ldblConsMedido As Double
        Dim ldblConsResiduo As Double
        Dim ldblVlrConsumo As Double
        Dim llngDiasConsumo As Integer
        Dim ldblVlrDiario As Double
        Dim ldblConDiario As Double
        Dim ldblMaiorConsumo As Double
        Dim ldblMenorConsumo As Double
        Dim ldblMediaConsumo As Double
        Dim lstrMesAnoMaior As String
        Dim lstrMesAnoMenor As String

        ' Reverso
        Dim lintMicroGeracao As Short
        Dim ldblReversoLAtual As Double
        Dim ldblReversoLAnter As Double
        Dim ldblReversokWh As Double 'Lido
        Dim ldblReversokWhRes As Double 'Residuo
        Dim ldblReversokWhFat As Double 'Faturado
        Dim ldblReversokWhRec As Double 'REC
        Dim ldblkWhEnviado As Double 'Enviado
        Dim ldblkWhSaldo As Double 'Saldo


        ' Irrigacao
        Dim ldblIrrigacaoLAtual As Double
        Dim ldblIrrigacaoLAnter As Double
        Dim ldblIrrigacaokWh As Double 'Lido
        Dim ldblIrrigacaokWhFat As Double 'Faturado
        Dim lintIrrigacao As Short 'Irrigante 0 ou 1


        ' Tarifa Branca
        Dim lintTarifaBranca As Short
        Dim ldblTarifaBrancaLAnter_Ponta As Double
        Dim ldblTarifaBrancaLAtual_Ponta As Double
        Dim ldblTarifaBrancaLAnter_Inter As Double
        Dim ldblTarifaBrancaLAtual_Inter As Double
        Dim ldblTarifaBrancaLAnter_ForaP As Double
        Dim ldblTarifaBrancaLAtual_ForaP As Double
        Dim ldblTarifaBrancaResidu_Ponta As Double
        Dim ldblTarifaBrancaResidu_Inter As Double
        Dim ldblTarifaBrancaResidu_ForaP As Double
        Dim ldblTarifaBrancakWh_Ponta As Double
        Dim ldblTarifaBrancakWh_Inter As Double
        Dim ldblTarifaBrancakWh_ForaP As Double

        'Tributos
        'Icms
        Dim ldblBaseIcms1 As Double
        Dim ldblAliqIcms1 As Double
        Dim ldblValrIcms1 As Double
        Dim ldblBaseIcms2 As Double
        Dim ldblAliqIcms2 As Double
        Dim ldblValrIcms2 As Double

        'Pis
        Dim ldblBasePis As Double
        Dim ldblAliqPis As Double
        Dim ldblValrPis As Double

        'Cofins
        Dim ldblBaseCofins As Double
        Dim ldblAliqCofins As Double
        Dim ldblValrCofins As Double

        'Indicador de continuidade
        Dim ldblDecMeta As Double
        Dim ldblDecReal As Double
        Dim ldblFecMeta As Double
        Dim ldblFecReal As Double
        Dim ldblDicMeta As Double
        Dim ldblDicReal As Double
        Dim ldblFicMeta As Double
        Dim ldblFicReal As Double
        Dim ldblDmicMet As Double
        Dim ldblDmicRea As Double
        Dim lstrRefICon As String
        Dim ldblTotNfTrib As Double
        Dim ldblBaseIcmsTotal As Double
        Dim ldblValrIcmsTotal As Double

        'Retenção tributária
        Dim ldblRetIrpj As Double
        Dim ldblRetPis As Double
        Dim ldblRetCsll As Double
        Dim ldblRetCofins As Double

        'Composição da fatura
        Dim ldblCompEnergia As Double
        Dim ldblCompTransmissao As Double
        Dim ldblCompDistribuicao As Double
        Dim ldblCompEncargosSetoriais As Double

        'Outras informações
        Dim lstrOcorrencia As String
        Dim lstrMensagem As String
        Dim lstrMensAux As String
        Dim lstrMensAux1 As String
        Dim lstrMensAux2 As String
        Dim lstrMsg712 As String
        Dim lstrMensAux_OrdemJudicial As String
        Dim llngConta As Integer
        Dim lstrAuxiliar As String
        Dim lstrAux As String
        Dim ldblNumNF As Double
        Dim ldblNumNfIni As Double
        Dim ldblNumNfFim As Double
        Dim lstrZona As String
        Dim lstrLivro As String
        Dim lstrConta As String
        Dim llngBandeira As Integer
        Dim ldteBandeira As Date
        Dim lstrMesAno As String
        Dim ldteBase As Date
        Dim lintConjugeFatura As Short
        Dim ldblSaldoAcumulado As Double
        Dim sCFOP
        Dim sBanco As String

        Dim vResultFaturaIndividualPDF As Boolean

        Dim lstrSqlAnd As String

        Dim vlist

        Dim vlist_1


        Dim objGDCompensacao As entidadeGDCompensacao = Nothing
        Dim repositorioGDCompensacao As repositorioGDCompensacao = Nothing

        Dim objNf As entidadeNf = Nothing
        Dim repositorioNf As repositorioNf = Nothing

        Dim objNfTransicao As entidadeNfTransicao = Nothing
        Dim repositorioNfTransicao As repositorioNfTransicao = Nothing

        Dim objTempFatura As entidadeTempFatura = Nothing
        Dim repositorioTempFatura As repositorioTempFatura = Nothing

        Dim objTempFaturaBImagePixBarras As entidadeTempFaturaBImagePixBarras = Nothing
        Dim repositorioTempFaturaBImagePixBarras As repositorioTempFaturaBImagePixBarras = Nothing



        Try

            objGDCompensacao = New entidadeGDCompensacao
            repositorioGDCompensacao = New repositorioGDCompensacao

            objNf = New entidadeNf
            repositorioNf = New repositorioNf

            objNfTransicao = New entidadeNfTransicao
            repositorioNfTransicao = New repositorioNfTransicao

            objTempFatura = New entidadeTempFatura
            repositorioTempFatura = New repositorioTempFatura

            objTempFaturaBImagePixBarras = New entidadeTempFaturaBImagePixBarras
            repositorioTempFaturaBImagePixBarras = New repositorioTempFaturaBImagePixBarras


            If strLocalProjeto.ToUpper() = "API" Then
                vResultFaturaIndividualPDF = True
            ElseIf strLocalProjeto.ToUpper() = "FORM" Then

                If frmImpFaturas.chkFaturaIndividualPDF.CheckState = System.Windows.Forms.CheckState.Checked Then
                    vResultFaturaIndividualPDF = lApagarArquivosFaturasIndividualPasta(Convert.ToString(GetConfig("caminho.pdf.fatura.individual")))
                Else
                    vResultFaturaIndividualPDF = True
                End If

            End If

            If vResultFaturaIndividualPDF = True Then

                If strLocalProjeto.ToUpper() = "FORM" Then
                    frmImpFaturas.sCaminhoPDF = sCaminho
                End If

                lstrMensAux = GetConfig("fatura.mensagem")
                lstrMensAux_OrdemJudicial = GetConfig("fatura.mensagem.ordem.judicial")

                If Len(Trim(lstrMensAux)) = 0 Or lstrMensAux = "-1" Then
                    lstrMensAux = ""
                End If

                If strLocalProjeto.ToUpper() = "API" Then

                    ldteBase = CDate(UltimoDiaMes((Date.Now.Month), (Date.Now.Year)) & "/" & VB6.Format(Date.Now.ToShortDateString(), "MM/yyyy"))

                    istrTabela = astrTabela

                ElseIf strLocalProjeto.ToUpper() = "FORM" Then

                    ldteBase = CDate(UltimoDiaMes((frmImpFaturas.dtpMesAno.Value.Month), (frmImpFaturas.dtpMesAno.Value.Year)) & "/" & VB6.Format(frmImpFaturas.dtpMesAno.Value, "MM/yyyy"))

                    istrTabela = IIf(frmImpFaturas.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Checked, "nftransicao", "nf")

                End If

                istrGrupo = "B"

                If astrTabela <> "" Then
                    istrTabela = astrTabela
                End If

                If strLocalProjeto.ToUpper() = "API" Then

                    lstrZona = strZona
                    lstrLivro = strLivro
                    lstrConta = strConta

                    lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.GRUPO = 'B' "

                    lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.ZONA = """ & lstrZona & """ " & vbCrLf
                    lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.LIVRO = """ & lstrLivro & """ " & vbCrLf
                    lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.CONTA = """ & lstrConta & """ " & vbCrLf


                ElseIf strLocalProjeto.ToUpper() = "FORM" Then

                    ldblNumNF = CDbl(IIf(IsNumeric(frmImpFaturas.txtNumNf.Text), frmImpFaturas.txtNumNf.Text, "0"))
                    ldblNumNfIni = CDbl(IIf(IsNumeric(frmImpFaturas.txtNumNfIni.Text), frmImpFaturas.txtNumNfIni.Text, "0"))
                    ldblNumNfFim = CDbl(IIf(IsNumeric(frmImpFaturas.txtNumNfFim.Text), frmImpFaturas.txtNumNfFim.Text, "0"))

                    If aIdentificacao = "" Then
                        lstrZona = IIf(IsNumeric(frmImpFaturas.txtZona.Text), frmImpFaturas.txtZona.Text, "")
                        lstrLivro = IIf(IsNumeric(frmImpFaturas.txtLivro.Text), frmImpFaturas.txtLivro.Text, "")
                        lstrConta = IIf(IsNumeric(frmImpFaturas.txtConta.Text), frmImpFaturas.txtConta.Text, "")
                    Else
                        lstrZona = Mid(aIdentificacao, 1, 3)
                        lstrLivro = Mid(aIdentificacao, 5, 2)
                        lstrConta = Mid(aIdentificacao, 8)
                    End If

                    If aintSegVia > 0 Or astrMesAno <> "" Then
                        lstrMesAno = astrMesAno
                    Else
                        lstrMesAno = VB6.Format(frmImpFaturas.dtpMesAno.Value, "mm/yyyy")
                    End If

                    frmImpFaturas.lblInfo.Text = "Aguarde, buscando as faturas..."
                    frmImpFaturas.lblInfo.Refresh()

                    System.Windows.Forms.Application.DoEvents()

                    If aintSegVia = 0 Then

                        If frmImpFaturas.chkOpcional.CheckState = System.Windows.Forms.CheckState.Unchecked Then
                            lstrSqlAnd = lstrSqlAnd & "  AND FATURAS.MESANO_REF = """ & CInt(Microsoft.VisualBasic.Right(lstrMesAno, 4) & Microsoft.VisualBasic.Left(lstrMesAno, 2)) & """ " & vbCrLf
                        End If

                        lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.GRUPO = 'B' "

                        If frmImpFaturas.opbFatura.Checked Then

                            If frmImpFaturas.opbAvulsa.Checked Then
                                If ldblNumNF > 0 Then
                                    lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.NUMNF = " & ldblNumNF & vbCrLf
                                End If
                            Else
                                If ldblNumNfIni > 0 And ldblNumNfFim > 0 Then
                                    lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.NUMNF BETWEEN " & ldblNumNfIni & " AND " & ldblNumNfFim & vbCrLf
                                End If
                            End If

                        ElseIf frmImpFaturas.opbZLC.Checked Or aIdentificacao <> "" Then

                            If Len(Trim(lstrZona)) > 0 Then
                                lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.ZONA = """ & lstrZona & """ " & vbCrLf
                            End If

                            If Len(Trim(lstrLivro)) > 0 Then
                                lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.LIVRO = """ & lstrLivro & """ " & vbCrLf
                            End If

                            If Len(Trim(lstrConta)) > 0 Then
                                lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.CONTA = """ & lstrConta & """ " & vbCrLf
                            End If

                            If Len(Trim(aNumNF)) > 0 Then
                                lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.NUMNF = """ & aNumNF & """ " & vbCrLf
                            End If

                            If frmImpFaturas.chkOpcional.CheckState = System.Windows.Forms.CheckState.Checked Then
                                lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.MESANO_REF BETWEEN " & VB6.Format(frmImpFaturas.dtpAnoMesIni.Value, "yyyyMM") & " AND " & VB6.Format(frmImpFaturas.dtpAnoMesFim.Value, "yyyyMM") & " "
                                'lstrSqlAnd = lstrSqlAnd & " ORDER BY FATURAS.MESANO_REF ASC, FATURAS.NUMNF ASC "
                            End If

                        ElseIf frmImpFaturas.opbSelecao.Checked Then

                            'Filtra Por Rota
                            lstrAuxiliar = ""

                            With frmImpFaturas.lvsRota.Items

                                If .Count <> 0 Then

                                    If .Item(0).Checked = False Then

                                        For llngConta = 1 To .Count - 1

                                            If .Item(llngConta).Checked Then
                                                lstrAuxiliar = lstrAuxiliar & """" & .Item(llngConta).Text & """, "
                                            End If

                                        Next llngConta

                                        If Len(Trim(lstrAuxiliar)) > 0 Then
                                            lstrAuxiliar = Microsoft.VisualBasic.Left(lstrAuxiliar, Len(lstrAuxiliar) - 2)
                                            lstrSqlAnd = lstrSqlAnd & "    AND MID(FATURAS.ROTA,1,4) IN(" & lstrAuxiliar & ") " & vbCrLf
                                        End If

                                    End If

                                End If

                            End With

                            'Filtra Por data de Vencimento
                            lstrAuxiliar = ""

                            With frmImpFaturas.lvsVenc.Items

                                If .Count <> 0 Then

                                    If .Item(0).Checked = False Then

                                        For llngConta = 1 To .Count - 1

                                            If .Item(llngConta).Checked Then
                                                lstrAuxiliar = lstrAuxiliar & """" & VB6.Format(CDate(.Item(llngConta).Text), "yyyy-MM-dd") & """, "
                                            End If

                                        Next llngConta

                                        If Len(Trim(lstrAuxiliar)) > 0 Then
                                            lstrAuxiliar = Microsoft.VisualBasic.Left(lstrAuxiliar, Len(lstrAuxiliar) - 2)
                                            lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.DATAVENC IN(" & lstrAuxiliar & ") " & vbCrLf
                                        End If

                                    End If

                                End If

                            End With

                        End If

                    ElseIf aintSegVia > 0 Then  'SE FOR UMA SEGUNDA VIA, PEGA O PARAMETRO
                        lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.GRUPO = 'B' " ' Força o grupo em caso de notas iguais em ambos os grupos
                        lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.MESANO_REF = """ & CInt(Microsoft.VisualBasic.Right(astrMesAno, 4) & Microsoft.VisualBasic.Left(astrMesAno, 2)) & """ " & vbCrLf
                        lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.NUMNF = " & adblNumNf & vbCrLf
                    End If

                    'lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.NUMNF IN(2523,858,5616,5212,3902,3634,4687,590,4750,5598,5174,4278,609,705,1556,174,82,163,659,2281,2046,1855,2585,3920,4026) "
                    'lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.NUMNF IN(163,754,2128) "
                    'lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.CODCLAS BETWEEN 6100 AND 6199"
                    'lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.CODCLAS BETWEEN 7000 AND 7999"
                    'lstrSqlAnd = lstrSqlAnd & "    AND (FATURAS.FLGST ='' OR (FATURAS.FLGST='P' AND FATURAS.DATAPAG >'2015-12-31'))"

                    If frmImpFaturas.chkSomenteMicroGeracao.CheckState = System.Windows.Forms.CheckState.Checked Then
                        lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.MICRO_GERACAO = 1 "
                    Else
                        lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.MICRO_GERACAO = 0 "
                    End If

                    If frmImpFaturas.chkSomenteMGDistribuida.CheckState = System.Windows.Forms.CheckState.Checked Then
                        lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.MICRO_GERACAO_DISTRIBUIDA = 1"
                    Else
                        lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.MICRO_GERACAO_DISTRIBUIDA = 0"
                    End If

                    If frmImpFaturas.chkFaturaEmail.CheckState = System.Windows.Forms.CheckState.Checked Then
                        lstrSqlAnd = lstrSqlAnd & "    AND UC_FATURAMENTO.ENVIO_EMAIL_FATURA = 'S'"
                        lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.MESANO_REF = """ & CInt(Microsoft.VisualBasic.Right(lstrMesAno, 4) & Microsoft.VisualBasic.Left(lstrMesAno, 2)) & """ " & vbCrLf
                    Else
                        If frmImpFaturas.chkEnviarFaturaEmail.CheckState = System.Windows.Forms.CheckState.Unchecked Then
                            lstrSqlAnd = lstrSqlAnd & "    AND UC_FATURAMENTO.ENVIO_EMAIL_FATURA = 'N'"
                        End If
                    End If

                    If frmImpFaturas.chkEnviarFaturaEmail.CheckState = System.Windows.Forms.CheckState.Checked Then
                        lstrSqlAnd = lstrSqlAnd & "    AND UC_FATURAMENTO.ENVIO_EMAIL_FATURA = 'S'"
                        lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.MESANO_REF = """ & CInt(Microsoft.VisualBasic.Right(lstrMesAno, 4) & Microsoft.VisualBasic.Left(lstrMesAno, 2)) & """ " & vbCrLf
                    End If

                    If frmImpFaturas.cmbFilterEndereco.Text = "Endereço UC" Then
                        If gstrEmpresa_Sigla = "CERCI" Then
                            lstrSqlAnd = lstrSqlAnd & "  AND UC_FATURAMENTO.AGRUPA not in(2, 3, 4, 5, 6 ) "
                        Else
                            lstrSqlAnd = lstrSqlAnd & "  AND UC_FATURAMENTO.AGRUPA not in(2, 12, 13, 19, 23 ) "
                        End If
                    ElseIf frmImpFaturas.cmbFilterEndereco.Text = "Endereço Entrega" Then
                        If gstrEmpresa_Sigla = "CERCI" Then
                            lstrSqlAnd = lstrSqlAnd & "  AND UC_FATURAMENTO.AGRUPA in(2, 3, 4, 5, 6 ) "
                        Else
                            lstrSqlAnd = lstrSqlAnd & "  AND UC_FATURAMENTO.AGRUPA in (2, 12, 13, 19, 23 ) "
                        End If
                    ElseIf frmImpFaturas.cmbFilterEndereco.Text = "Correio" Then
                        If gstrEmpresa_Sigla = "CERCI" Then
                            lstrSqlAnd = lstrSqlAnd & "  AND UC_FATURAMENTO.AGRUPA not in(1, 3, 4, 5, 6 ) "
                        End If
                    ElseIf frmImpFaturas.cmbFilterEndereco.Text = "Empresa" Then
                        If gstrEmpresa_Sigla = "CERCI" Then
                            lstrSqlAnd = lstrSqlAnd & "  AND UC_FATURAMENTO.AGRUPA not in(1, 2, 4, 5, 6 ) "
                        End If
                    ElseIf frmImpFaturas.cmbFilterEndereco.Text = "Prefeitura/Outros" Then
                        If gstrEmpresa_Sigla = "CERCI" Then
                            lstrSqlAnd = lstrSqlAnd & "  AND UC_FATURAMENTO.AGRUPA IN (4) "
                        End If
                    End If

                    '  lstrSqlAnd = lstrSqlAnd & "    And FATURAS.CODCLAS = '9101'"
                    lstrSqlAnd = lstrSqlAnd & "    AND FATURAS.FATURA_COMPLEMENTAR = 0 "

                    If frmImpFaturas.chkFaturaReaviso.CheckState = System.Windows.Forms.CheckState.Checked Then

                        If frmImpFaturas.opbFatura.Checked Then

                            If frmImpFaturas.opbAvulsa.Checked Then
                                If ldblNumNF > 0 Then
                                    lstrSqlAnd = lstrSqlAnd & " AND FATURAS.MESANO = '" & lstrMesAno & "' OR  FATURAS.CANCELADA_MESANO = '" & lstrMesAno & "'   AND FATURAS.NUMNF = " & ldblNumNF & vbCrLf
                                End If
                            Else
                                If ldblNumNfIni > 0 And ldblNumNfFim > 0 Then
                                    lstrSqlAnd = lstrSqlAnd & " AND FATURAS.MESANO = '" & lstrMesAno & "' OR  FATURAS.CANCELADA_MESANO = '" & lstrMesAno & "'   AND FATURAS.NUMNF BETWEEN " & ldblNumNfIni & " AND " & ldblNumNfFim & vbCrLf
                                End If
                            End If
                        ElseIf frmImpFaturas.opbZLC.Checked Or aIdentificacao <> "" Then

                            If Len(Trim(lstrZona)) > 0 And Len(Trim(lstrLivro)) > 0 And Len(Trim(lstrConta)) Then
                                lstrSqlAnd = lstrSqlAnd & "  AND FATURAS.MESANO = '" & lstrMesAno & "' OR  FATURAS.CANCELADA_MESANO = '" & lstrMesAno & "'  AND FATURAS.ZONA = '" & lstrZona & "'  AND FATURAS.LIVRO = '" & lstrLivro & "' AND FATURAS.CONTA = '" & lstrConta & "'" & vbCrLf
                            End If

                            If Len(Trim(aNumNF)) > 0 Then
                                lstrSqlAnd = lstrSqlAnd & " AND FATURAS.MESANO = '" & lstrMesAno & "' OR  FATURAS.CANCELADA_MESANO = '" & lstrMesAno & "'  AND FATURAS.NUMNF = """ & aNumNF & """ " & vbCrLf
                            End If

                            If frmImpFaturas.chkOpcional.CheckState = System.Windows.Forms.CheckState.Checked Then
                                lstrSqlAnd = lstrSqlAnd & "  AND FATURAS.MESANO = '" & lstrMesAno & "' OR  FATURAS.CANCELADA_MESANO = '" & lstrMesAno & "'  AND FATURAS.MESANO_REF BETWEEN " & VB6.Format(frmImpFaturas.dtpAnoMesIni.Value, "yyyyMM") & " AND " & VB6.Format(frmImpFaturas.dtpAnoMesFim.Value, "yyyyMM") & " "
                            End If
                        Else
                            lstrSqlAnd = lstrSqlAnd & " AND FATURAS.MESANO = '" & lstrMesAno & "' OR  FATURAS.CANCELADA_MESANO = '" & lstrMesAno & "' "
                        End If

                    End If

                    If Not bSemFiltro Then lstrSqlAnd = lstrSqlAnd & MontaFiltroClasse()

                End If

                If istrTabela.ToUpper() = "NF" Then

                    objNf.TA = lstrSqlAnd

                    vlist = repositorioNf.SelectOthersTables_8(objNf)

                    If vlist.Count <> 0 Then

                        If strLocalProjeto.ToUpper() = "API" Then

                            istrUsuarioGeradorFatura = String.Empty
                            istrUsuarioGeradorFatura = strUsuarioGeradorFaturaAPI

                        ElseIf strLocalProjeto.ToUpper() = "FORM" Then

                            frmImpFaturas.strUsuarioGeradorFatura = String.Empty
                            frmImpFaturas.strUsuarioGeradorFatura = $"{vUsuario.LOGIN}_{Date.Now.Day.ToString()}_{Date.Now.Month.ToString()}{Date.Now.Year.ToString()}_{Date.Now.Hour.ToString()}_{Date.Now.Minute.ToString()}_{Date.Now.Second.ToString()}_{Date.Now.Millisecond.ToString()}"

                            istrUsuarioGeradorFatura = String.Empty
                            istrUsuarioGeradorFatura = frmImpFaturas.strUsuarioGeradorFatura


                            frmImpFaturas.lblInfo.Text = "Aguarde, limpando dados temporários..."
                            frmImpFaturas.lblInfo.Refresh()

                            System.Windows.Forms.Application.DoEvents()

                            frmImpFaturas.lblInfo.Text = "Aguarde, gerando as faturas..."
                            frmImpFaturas.lblInfo.Refresh()

                            System.Windows.Forms.Application.DoEvents()

                            BarraProgresso((frmImpFaturas.ProgressBar), (frmImpFaturas.lblPerc), (frmImpFaturas.lblInfo), 0, vlist.Count)

                        End If

                        For Each objNfFor As entidadeNf In vlist

                            'Dados da Fatura

                            ldblFaturasNumNf = CDbl(IIf(IsDBNull(objNfFor.NUMNF), 0, objNfFor.NUMNF))

                            ldblFaturasCfop = IIf(IsDBNull(objNfFor.CFOP), 0, objNfFor.CFOP)

                            If Len(ldblFaturasCfop) >= 3 Then
                                ldblFaturasCfop = ldblFaturasCfop / 1000
                            End If

                            lstrFaturasZona = VB6.Format(IIf(IsDBNull(objNfFor.ZONA), "0", objNfFor.ZONA), "000")

                            lstrFaturasLivro = VB6.Format(IIf(IsDBNull(objNfFor.LIVRO), "0", objNfFor.LIVRO), "00")

                            lstrFaturasConta = VB6.Format(IIf(IsDBNull(objNfFor.CONTA), "0", objNfFor.CONTA), "000000")

                            lstrFaturasRota = IIf(IsDBNull(objNfFor.ROTA), "0", objNfFor.ROTA)

                            llngFaturasUnidId = CInt(IIf(IsDBNull(objNfFor.UNID_ID), "0", objNfFor.UNID_ID))

                            llngFaturasConsId = CInt(IIf(IsDBNull(objNfFor.CONS_ID), "0", objNfFor.CONS_ID))

                            If strLocalProjeto.ToUpper() = "API" Then
                                RefazConsumos(llngFaturasConsId, llngFaturasUnidId, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, VB6.Format(Date.Now.ToShortDateString, "mm/yyyy"))
                            ElseIf strLocalProjeto.ToUpper() = "FORM" Then
                                RefazConsumos(llngFaturasConsId, llngFaturasUnidId, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, VB6.Format(frmImpFaturas.dtpMesAno.Value, "mm/yyyy"))
                            End If

                            ldblFaturasValorTot = CDbl(IIf(IsDBNull(objNfFor.VALORTOT), 0, objNfFor.VALORTOT))

                            ldblFaturasValorLiq = CDbl(IIf(IsDBNull(objNfFor.VALORLIQ), 0, objNfFor.VALORLIQ))

                            lstrFaturasCodClas = VB6.Format(IIf(IsDBNull(objNfFor.CODCLAS), "0", objNfFor.CODCLAS), "0000")

                            llngBandeira = BuscaBandeira(CDate("01/" & lstrMesAno), ldteBandeira, lstrFaturasCodClas)

                            ldteFaturasVencimento = CDate(IIf(IsDBNull(objNfFor.DATAVENC), "1900-01-01", objNfFor.DATAVENC))

                            lstrFaturasBanIdent = IIf(IsDBNull(objNfFor.BANIDENT), "", objNfFor.BANIDENT)

                            lstrFaturasBancoFatur = IIf(IsDBNull(objNfFor.BANCO_FATUR), "", objNfFor.BANCO_FATUR)

                            lstrFaturasMesAno = IIf(IsDBNull(objNfFor.MESANO), "", objNfFor.MESANO)

                            llngFaturasMesAnoRef = CInt(IIf(IsDBNull(objNfFor.MESANO_REF), 0, objNfFor.MESANO_REF))

                            ldteFaturasApresentacao = CDate(IIf(IsDBNull(objNfFor.DATAAPR), "1900-01-01", objNfFor.DATAAPR))

                            ldteFaturasEmissao = CDate(IIf(IsDBNull(objNfFor.DATAEM), "1900-01-01", objNfFor.DATAEM))

                            ldteFaturasProxLeit = CDate(IIf(IsDBNull(objNfFor.DATAPROXLEIT), "1900-01-01", objNfFor.DATAPROXLEIT))

                            ldteFaturasLeitura = CDate(IIf(IsDBNull(objNfFor.DATALEIT), "1900-01-01", objNfFor.DATALEIT))

                            ldteFaturasLeitAnterior = CDate(IIf(IsDBNull(objNfFor.DATALEITANT), "1900-01-01", objNfFor.DATALEITANT))

                            lstrFaturasFase = Trim(IIf(IsDBNull(objNfFor.FASE), "M", objNfFor.FASE))

                            lstrFaturasTa = Trim(IIf(IsDBNull(objNfFor.TA), "01B100", objNfFor.TA))

                            lstrFaturasTensao = Trim(IIf(IsDBNull(objNfFor.TENSAO), "220", objNfFor.TENSAO))

                            lstrFaturasCodHash = Trim(IIf(IsDBNull(objNfFor.CODHASH), "", objNfFor.CODHASH))

                            lstrFaturasItensSev = Trim(IIf(IsDBNull(objNfFor.ITENSSERV), "", objNfFor.ITENSSERV))

                            lstrFaturasItensImp = Trim(IIf(IsDBNull(objNfFor.ITENSIMP), "", objNfFor.ITENSIMP))

                            llngFaturasNsu = CInt(IIf(IsDBNull(objNfFor.NSU), "0", objNfFor.NSU))

                            lstrFaturasMensagemBandeira = Trim(IIf(IsDBNull(objNfFor.MENSAGEM_BANDEIRA), "", objNfFor.MENSAGEM_BANDEIRA))

                            lintIrrigacao = CShort(IIf(IsDBNull(objNfFor.IRRIGACAO_AQUICULTURA), "0", objNfFor.IRRIGACAO_AQUICULTURA))

                            lintMicroGeracao = CShort(IIf(IsDBNull(objNfFor.MICRO_GERACAO), "0", objNfFor.MICRO_GERACAO))

                            lstrMensAux1 = ""

                            If Microsoft.VisualBasic.Left(lstrFaturasCodClas, 1) = "9" Then


                                If Len(Trim(astrMesAno)) = 0 Then
                                    astrMesAno = lstrMesAno
                                End If

                                If astrMesAno = "09/2010" Or astrMesAno = "10/2010" Or astrMesAno = "11/2010" Or astrMesAno = "12/2010" Or astrMesAno = "01/2011" Or astrMesAno = "02/2011" Then
                                    lstrMensAux1 = lstrMensAux1 & "TARIFA SOCIAL DE ENERGIA ELETRICA PARA TODAS AS" & vbCrLf
                                    lstrMensAux1 = lstrMensAux1 & "FAMILIAS QUE ESTEJAM INSCRITAS NO CADASTRO UNICO" & vbCrLf
                                    lstrMensAux1 = lstrMensAux1 & "DE PROGRAMAS SOCIAIS, E SEUS MORADORES QUE" & vbCrLf
                                    lstrMensAux1 = lstrMensAux1 & "RECEBAM BENEFICIOS DE PRESTACAO DA ASSISTENCIA" & vbCrLf
                                    lstrMensAux1 = lstrMensAux1 & "SOCIAL CONFORME LEI Nº 12.212 DE 2010." & vbCrLf
                                    lstrMensAux1 = lstrMensAux1 & "QUALQUER DUVIDA, FAVOR DIRIGIR-SE A " & gstrEmpresa_Sigla & "."
                                End If

                            End If

                            If strLocalProjeto.ToUpper() = "API" Then

                                lstrMsg712 = Trim(GetMsgBaixaRenda(CInt(VB6.Format(Date.Now.ToShortDateString, "yyyyMM")), lstrZona, lstrLivro, lstrConta, ldteBase))

                                If (CDbl(Microsoft.VisualBasic.Left(lstrFaturasCodClas, 2)) >= 51 And CDbl(Microsoft.VisualBasic.Left(lstrFaturasCodClas, 2)) <= 57) Or CDbl(Microsoft.VisualBasic.Left(lstrFaturasCodClas, 2)) = 72 Then
                                    lstrMsg712 = Trim(GetMsgRevCadastral(CInt(VB6.Format(Date.Now.ToShortDateString, "yyyyMM")), lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, ldteBase))
                                End If

                            ElseIf strLocalProjeto.ToUpper() = "FORM" Then

                                lstrMsg712 = Trim(GetMsgBaixaRenda(CInt(VB6.Format(frmImpFaturas.dtpMesAno.Value, "yyyyMM")), lstrZona, lstrLivro, lstrConta, ldteBase))

                                If (CDbl(Microsoft.VisualBasic.Left(lstrFaturasCodClas, 2)) >= 51 And CDbl(Microsoft.VisualBasic.Left(lstrFaturasCodClas, 2)) <= 57) Or CDbl(Microsoft.VisualBasic.Left(lstrFaturasCodClas, 2)) = 72 Then
                                    lstrMsg712 = Trim(GetMsgRevCadastral(CInt(VB6.Format(frmImpFaturas.dtpMesAno.Value, "yyyyMM")), lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, ldteBase))
                                End If

                            End If

                            If lstrMsg712 <> "" Then
                                lstrMensAux1 = ""
                                lstrMensAux1 = lstrMensAux1 & Mid(lstrMsg712, 1, 90)
                                lstrMensAux1 = lstrMensAux1 & Mid(lstrMsg712, 91, 90)
                                lstrMensAux1 = lstrMensAux1 & Mid(lstrMsg712, 181, 90)
                                lstrMensAux1 = lstrMensAux1 & Mid(lstrMsg712, 271, 90)
                                lstrMensAux1 = lstrMensAux1 & Mid(lstrMsg712, 361, 90)
                                lstrMensAux1 = lstrMensAux1 & Mid(lstrMsg712, 451, 90)
                            End If

                            If strLocalProjeto.ToUpper() = "FORM" Then

                                If frmImpFaturas.chkMsgTarAjuste.CheckState = System.Windows.Forms.CheckState.Checked Then

                                    lstrMensAux2 = GetMensagemTarifaAjuste(istrGrupo, lstrFaturasCodClas, ldteFaturasLeitAnterior, ldteFaturasLeitura)

                                    If lstrMensAux2 <> "" Then
                                        lstrMensAux1 = ""
                                        lstrMensAux1 = lstrMensAux1 & Mid(lstrMensAux2, 1, 90)
                                        lstrMensAux1 = lstrMensAux1 & Mid(lstrMensAux2, 91, 90)
                                        lstrMensAux1 = lstrMensAux1 & Mid(lstrMensAux2, 181, 90)
                                        lstrMensAux1 = lstrMensAux1 & Mid(lstrMensAux2, 271, 90)
                                        lstrMensAux1 = lstrMensAux1 & Mid(lstrMensAux2, 361, 90)
                                        lstrMensAux1 = lstrMensAux1 & Mid(lstrMensAux2, 451, 90)
                                    End If

                                End If

                            End If

                            If aintSegVia = 1 Then
                                lstrMensagem = "SEGUNDA VIA" & vbCrLf & IIf(llngFaturasNsu > 0, "NSU: " & VB6.Format(llngFaturasNsu, "0000000000") & vbCrLf, "") & IIf(Trim(lstrMensAux1) <> "", lstrMensAux1, lstrMensAux)
                            ElseIf aintSegVia = 2 Then
                                lstrMensagem = "DEMONSTRATIVO DA FATURA, SEM VALOR FISCAL" & vbCrLf & IIf(llngFaturasNsu > 0, "NSU: " & VB6.Format(llngFaturasNsu, "0000000000") & vbCrLf, "") & IIf(Trim(lstrMensAux1) <> "", lstrMensAux1, lstrMensAux)
                            Else
                                lstrMensagem = IIf(llngFaturasNsu > 0, "NSU: " & VB6.Format(llngFaturasNsu, "0000000000") & vbCrLf, "") & IIf(Trim(lstrMensAux1) <> "", lstrMensAux1, lstrMensAux)
                            End If

                            If strLocalProjeto.ToUpper() = "FORM" Then

                                If frmImpFaturas.chkQuitacaoDebito.CheckState = 1 Then
                                    lstrMensagem = lstrMensagem & vbCrLf & VerificaQuitacaoDebito(llngFaturasConsId, CDbl(Microsoft.VisualBasic.Left(CStr(llngFaturasMesAnoRef), 4)) - 1, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta)
                                End If

                            End If

                            lstrOrdemJudicial = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.ORDEM_JUDICIAL), "", objNfFor.entidadeUCFATURAMENTO.ORDEM_JUDICIAL))

                            If lstrOrdemJudicial = "S" Then
                                lstrMensagem = lstrMensagem & vbCrLf & vbCrLf & lstrMensAux_OrdemJudicial
                            End If

                            lstrFaturasCodBarra = Trim(IIf(IsDBNull(objNfFor.CODBARRA_IMAGEM), "", objNfFor.CODBARRA_IMAGEM))

                            lstrFaturasDvCodBarra = Trim(IIf(IsDBNull(objNfFor.DVCODBARRA), "", objNfFor.DVCODBARRA))

                            lstrFaturaLinhaDigitavel = Trim(IIf(IsDBNull(objNfFor.CODBARRA), "", objNfFor.CODBARRA))

                            lstrUnidbRegiao = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.REGIAO), "U", objNfFor.entidadeUCFATURAMENTO.REGIAO))

                            lstrClasseDescricao = Trim(IIf(IsDBNull(objNfFor.entidadeCLASSE.DESCRICAO), "", objNfFor.entidadeCLASSE.DESCRICAO)) '& IIf(Microsoft.VisualBasic.Left(lstrFaturasCodClas, 1) = "9", IIf(lstrUnidbRegiao = "R", " (RURAL)", ""), "")

                            lstrFaturasNumMed = Trim(IIf(IsDBNull(objNfFor.NUM_MED), "", objNfFor.NUM_MED))

                            ldblFaturasConstMed = CDbl(IIf(IsDBNull(objNfFor.CONST_MED), "0", objNfFor.CONST_MED))

                            lstrFaturasFlgst = Trim(IIf(IsDBNull(objNfFor.FLGST), "", objNfFor.FLGST))

                            lstrFaturaCanceladaMesano = IIf(IsDBNull(objNfFor.CANCELADA_MESANO), "", objNfFor.CANCELADA_MESANO)

                            ldlbFaturaCanceladaNumNF = IIf(IsDBNull(objNfFor.CANCELADA_NUMNF), 0, objNfFor.CANCELADA_NUMNF)


                            'Dados da Unidade

                            lstrUnidbCpfCnpj = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.CPF_CNPJ), "", objNfFor.entidadeUCFATURAMENTO.CPF_CNPJ))

                            lstrUnidbInsc = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.INSC), "", objNfFor.entidadeUCFATURAMENTO.INSC))

                            lstrUnidbRg = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.RG), "", objNfFor.entidadeUCFATURAMENTO.RG))

                            lstrUnidbAgenc = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.AGENC), "", objNfFor.entidadeUCFATURAMENTO.AGENC))

                            lstrUnidbCC = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.CC), "", objNfFor.entidadeUCFATURAMENTO.CC))

                            lstrUnidbNome = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.NOME), "", objNfFor.entidadeUCFATURAMENTO.NOME))

                            lstrUnidbCidade = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.CIDADE), "", objNfFor.entidadeUCFATURAMENTO.CIDADE))

                            lstrUnidbDistrito = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.DISTRITO), "", objNfFor.entidadeUCFATURAMENTO.DISTRITO))

                            lstrUnidbBairro = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.BAIRRO), "", objNfFor.entidadeUCFATURAMENTO.BAIRRO))

                            lstrUnidbEnd = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.END), "", objNfFor.entidadeUCFATURAMENTO.END))

                            lstrUnidbNumero = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.NUMERO), "", objNfFor.entidadeUCFATURAMENTO.NUMERO))

                            lstrUnidbComplement = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.COMPLEMENT), "", objNfFor.entidadeUCFATURAMENTO.COMPLEMENT))

                            lstrUnidbCep = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.CEP), "", objNfFor.entidadeUCFATURAMENTO.CEP))

                            lstrUnidbUf = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.UF), "", objNfFor.entidadeUCFATURAMENTO.UF))

                            lstrUnidbLote = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.LOTE), "", objNfFor.entidadeUCFATURAMENTO.LOTE))

                            lstrUnidbQuadra = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.QUADRA), "", objNfFor.entidadeUCFATURAMENTO.QUADRA))

                            llngUnidbEntrega = CInt(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.ENTREGA), "0", objNfFor.entidadeUCFATURAMENTO.ENTREGA))

                            lstrUnidbCidEntrega = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.CID_ENTREGA), "", objNfFor.entidadeUCFATURAMENTO.CID_ENTREGA))

                            lstrUnidbDisEntrega = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.DIS_ENTREGA), "", objNfFor.entidadeUCFATURAMENTO.DIS_ENTREGA))

                            lstrUnidbBaiEntrega = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.BAI_ENTREGA), "", objNfFor.entidadeUCFATURAMENTO.BAI_ENTREGA))

                            lstrUnidbEndEntrega = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.END_ENTREGA), "", objNfFor.entidadeUCFATURAMENTO.END_ENTREGA))

                            lstrUnidbNumEntrega = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.NUM_ENTREGA), "", objNfFor.entidadeUCFATURAMENTO.NUM_ENTREGA))

                            lstrUnidbComplEntrega = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.COMPL_ENTREGA), "", objNfFor.entidadeUCFATURAMENTO.COMPL_ENTREGA))

                            lstrUnidbCepEntrega = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.CEP_ENTREGA), "", objNfFor.entidadeUCFATURAMENTO.CEP_ENTREGA))

                            lstrUnidbUfEntrega = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.UF_ENTREGA), "", objNfFor.entidadeUCFATURAMENTO.UF_ENTREGA))

                            lstrUnidbLotEntrega = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.LOT_ENTREGA), "", objNfFor.entidadeUCFATURAMENTO.LOT_ENTREGA))

                            lstrUnidbQuaEntrega = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.QUA_ENTREGA), "", objNfFor.entidadeUCFATURAMENTO.QUA_ENTREGA))

                            lstrUnidbGrupo = Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.GRUPO), "", objNfFor.entidadeUCFATURAMENTO.GRUPO))

                            llngUnidbUnidId = CInt(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.UNID_ID), "0", objNfFor.entidadeUCFATURAMENTO.UNID_ID))

                            llngUnidbConsId = CInt(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.CONS_ID), "0", objNfFor.entidadeUCFATURAMENTO.CONS_ID))

                            lstrConsumidorNome = Trim(IIf(IsDBNull(objNfFor.entidadeCONSUM.NOME), "", objNfFor.entidadeCONSUM.NOME))

                            lstrConsumidorConjuge = Trim(IIf(IsDBNull(objNfFor.entidadeCONSUM.NOME_CONJUGE), "", objNfFor.entidadeCONSUM.NOME_CONJUGE))

                            lintConjugeFatura = objNfFor.entidadeUCFATURAMENTO.CONJUGE_FATURA

                            lintSequenciaFaturas = Convert.ToInt32(Trim(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.SEQUENCIA), "0", objNfFor.entidadeUCFATURAMENTO.SEQUENCIA)))

                            ldblMicroGeracao = CInt(IIf(IsDBNull(objNfFor.MICRO_GERACAO), "0", objNfFor.MICRO_GERACAO))

                            ldblMicroGeracaoDistr = CInt(IIf(IsDBNull(objNfFor.MICRO_GERACAO_DISTRIBUIDA), "0", objNfFor.MICRO_GERACAO_DISTRIBUIDA))


                            If lintConjugeFatura = 0 Then
                                lstrConsumidorConjuge = ""
                            End If

                            If strLocalProjeto.ToUpper() = "API" Then

                                If (lstrFaturasCodHash = "0" Or Trim(lstrFaturasCodHash) = "") Then

                                    'Código HASH
                                    ldblBaseIcms1 = BuscaVlrItem(lstrFaturasItensSev, "0302030001") 'baseicms
                                    ldblValrIcms1 = BuscaVlrItem(lstrFaturasItensSev, "0302030009") 'icms

                                    lstrFaturasCodHash = PreparaCampo(lstrUnidbCpfCnpj, NUMERICO, 14, 0)
                                    lstrFaturasCodHash = lstrFaturasCodHash & PreparaCampo(Str(ldblFaturasNumNf), NUMERICO, 9, "0")
                                    lstrFaturasCodHash = lstrFaturasCodHash & PreparaCampo(Str(CDbl(Replace(Replace(Format(Arredondar(ldblFaturasValorLiq, 2), "standard"), ",", ""), ".", ""))), NUMERICO, 12, "0")
                                    lstrFaturasCodHash = lstrFaturasCodHash & PreparaCampo(Str(CDbl(Replace(Replace(Format(Arredondar(ldblBaseIcms1, 2), "standard"), ",", ""), ".", ""))), NUMERICO, 12, "0")
                                    lstrFaturasCodHash = lstrFaturasCodHash & PreparaCampo(Str(CDbl(Replace(Replace(Format(Arredondar(ldblValrIcms1, 2), "standard"), ",", ""), ".", ""))), NUMERICO, 12, "0")

                                    lstrFaturasCodHash = MD5_hash(lstrFaturasCodHash)

                                    objNf.CODHASH = lstrFaturasCodHash
                                    objNf.NUMNF = ldblFaturasNumNf
                                    objNf.MESANO_REF = llngFaturasMesAnoRef

                                    repositorioNf.Update_CodHash(objNf)

                                End If

                                If (Len(lstrFaturasCodBarra) = 0) Or (lstrFaturasCodBarra = "0") Then

                                    sBanco = fRetornaBancoImpFat(IIf(lstrFaturasBancoFatur = "", 0, CLng(lstrFaturasBancoFatur)))
                                    MontaCodBarras(ldblFaturasNumNf, lstrFaturasMesAno, ldblFaturasValorLiq, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, lstrFaturasCodBarra, lstrFaturasDvCodBarra, CStr(ldteFaturasVencimento), lstrFaturaLinhaDigitavel, sBanco)

                                    objNf.CODBARRA = lstrFaturasCodBarra
                                    objNf.DVCODBARRA = lstrFaturasDvCodBarra
                                    objNf.NUMNF = ldblFaturasNumNf
                                    objNf.MESANO_REF = llngFaturasMesAnoRef
                                    objNf.CODBARRA_IMAGEM = lstrFaturaLinhaDigitavel

                                    repositorioNf.Update_CodBarras(objNf)

                                    lstrFaturaAjusteCodBarras = lstrFaturasCodBarra
                                    lstrFaturaAjusteLinhaDigitavel = lstrFaturaLinhaDigitavel

                                    lstrFaturasCodBarra = lstrFaturaAjusteLinhaDigitavel
                                    lstrFaturaLinhaDigitavel = lstrFaturaAjusteCodBarras

                                End If


                            ElseIf strLocalProjeto.ToUpper() = "FORM" Then

                                If (lstrFaturasCodHash = "0" Or Trim(lstrFaturasCodHash) = "") And frmImpFaturas.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Unchecked Then

                                    'Código HASH
                                    ldblBaseIcms1 = BuscaVlrItem(lstrFaturasItensSev, "0302030001") 'baseicms
                                    ldblValrIcms1 = BuscaVlrItem(lstrFaturasItensSev, "0302030009") 'icms

                                    lstrFaturasCodHash = PreparaCampo(lstrUnidbCpfCnpj, NUMERICO, 14, 0)
                                    lstrFaturasCodHash = lstrFaturasCodHash & PreparaCampo(Str(ldblFaturasNumNf), NUMERICO, 9, "0")
                                    lstrFaturasCodHash = lstrFaturasCodHash & PreparaCampo(Str(CDbl(Replace(Replace(Format(Arredondar(ldblFaturasValorLiq, 2), "standard"), ",", ""), ".", ""))), NUMERICO, 12, "0")
                                    lstrFaturasCodHash = lstrFaturasCodHash & PreparaCampo(Str(CDbl(Replace(Replace(Format(Arredondar(ldblBaseIcms1, 2), "standard"), ",", ""), ".", ""))), NUMERICO, 12, "0")
                                    lstrFaturasCodHash = lstrFaturasCodHash & PreparaCampo(Str(CDbl(Replace(Replace(Format(Arredondar(ldblValrIcms1, 2), "standard"), ",", ""), ".", ""))), NUMERICO, 12, "0")

                                    lstrFaturasCodHash = MD5_hash(lstrFaturasCodHash)

                                    objNf.CODHASH = lstrFaturasCodHash
                                    objNf.NUMNF = ldblFaturasNumNf
                                    objNf.MESANO_REF = llngFaturasMesAnoRef

                                    repositorioNf.Update_CodHash(objNf)

                                End If

                                If (Len(lstrFaturasCodBarra) = 0 And frmImpFaturas.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Unchecked) Or (lstrFaturasCodBarra = "0" And frmImpFaturas.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Unchecked) Then

                                    sBanco = fRetornaBancoImpFat(IIf(lstrFaturasBancoFatur = "", 0, CLng(lstrFaturasBancoFatur)))
                                    MontaCodBarras(ldblFaturasNumNf, lstrFaturasMesAno, ldblFaturasValorLiq, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, lstrFaturasCodBarra, lstrFaturasDvCodBarra, CStr(ldteFaturasVencimento), lstrFaturaLinhaDigitavel, sBanco)

                                    objNf.CODBARRA = lstrFaturasCodBarra
                                    objNf.DVCODBARRA = lstrFaturasDvCodBarra
                                    objNf.NUMNF = ldblFaturasNumNf
                                    objNf.MESANO_REF = llngFaturasMesAnoRef
                                    objNf.CODBARRA_IMAGEM = lstrFaturaLinhaDigitavel

                                    repositorioNf.Update_CodBarras(objNf)

                                    lstrFaturaAjusteCodBarras = lstrFaturasCodBarra
                                    lstrFaturaAjusteLinhaDigitavel = lstrFaturaLinhaDigitavel

                                    lstrFaturasCodBarra = lstrFaturaAjusteLinhaDigitavel
                                    lstrFaturaLinhaDigitavel = lstrFaturaAjusteCodBarras

                                End If

                            End If

                            If lintMicroGeracao = 1 Then

                                objGDCompensacao.ZONA = lstrFaturasZona
                                objGDCompensacao.LIVRO = lstrFaturasLivro
                                objGDCompensacao.CONTA = lstrFaturasConta
                                objGDCompensacao.CONS_ID = llngFaturasConsId
                                objGDCompensacao.UNID_ID = llngFaturasUnidId

                                vlist_1 = repositorioGDCompensacao.Select(objGDCompensacao)

                                If vlist_1.Count <> 0 Then

                                    For Each objGDCompensacaoFor As entidadeGDCompensacao In vlist_1
                                        ldblSaldoAcumulado = ldblSaldoAcumulado + CDbl(IIf(IsDBNull(objGDCompensacaoFor.SALDO_ATUAL), 0, objGDCompensacaoFor.SALDO_ATUAL))
                                    Next

                                Else
                                    ldblSaldoAcumulado = Convert.ToDouble("0")
                                End If

                            Else
                                ldblSaldoAcumulado = Convert.ToDouble("0")
                            End If


                            lstrConsumidorCep = Trim(IIf(IsDBNull(objNfFor.entidadeCONSUM.CEP), "", objNfFor.entidadeCONSUM.CEP))

                            lstrConsumidorUf = Trim(IIf(IsDBNull(objNfFor.entidadeCONSUM.UF), "", objNfFor.entidadeCONSUM.UF))

                            lstrConsumidorCgc = Trim(IIf(IsDBNull(objNfFor.entidadeCONSUM.CGC), "", objNfFor.entidadeCONSUM.CGC))

                            lstrConsumidorInsc = Trim(IIf(IsDBNull(objNfFor.entidadeCONSUM.INSC), "", objNfFor.entidadeCONSUM.INSC))

                            lstrConsumidorRg = Trim(IIf(IsDBNull(objNfFor.entidadeCONSUM.RG), "", objNfFor.entidadeCONSUM.RG))

                            lintConsumidorMatricula = Trim(IIf(IsDBNull(objNfFor.entidadeCONSUM.MATRICULA), 0, objNfFor.entidadeCONSUM.MATRICULA))

                            '
                            ' Tarifa Branca

                            lintTarifaBranca = IIf(IsDBNull(objNfFor.TARIFA_BRANCA), 0, objNfFor.TARIFA_BRANCA)

                            ldblTarifaBrancaLAnter_Ponta = BuscaValorItem(lstrFaturasItensSev, "0302990061")
                            ldblTarifaBrancaLAtual_Ponta = BuscaValorItem(lstrFaturasItensSev, "0302990062")
                            ldblTarifaBrancaLAnter_Inter = BuscaValorItem(lstrFaturasItensSev, "0302990063")
                            ldblTarifaBrancaLAtual_Inter = BuscaValorItem(lstrFaturasItensSev, "0302990064")
                            ldblTarifaBrancaLAnter_ForaP = BuscaValorItem(lstrFaturasItensSev, "0302990065")
                            ldblTarifaBrancaLAtual_ForaP = BuscaValorItem(lstrFaturasItensSev, "0302990066")
                            ldblTarifaBrancaResidu_Ponta = BuscaValorItem(lstrFaturasItensSev, "0302990067")
                            ldblTarifaBrancaResidu_Inter = BuscaValorItem(lstrFaturasItensSev, "0302990068")
                            ldblTarifaBrancaResidu_ForaP = BuscaValorItem(lstrFaturasItensSev, "0302990069")
                            ldblTarifaBrancakWh_Ponta = BuscaValorItem(lstrFaturasItensSev, "0302010190")
                            ldblTarifaBrancakWh_Inter = BuscaValorItem(lstrFaturasItensSev, "0302010290")
                            ldblTarifaBrancakWh_ForaP = BuscaValorItem(lstrFaturasItensSev, "0302010390")
                            '
                            'Leituras e Consumos
                            '
                            ldblLeitAtual = BuscaVlrItem(lstrFaturasItensSev, "0302990039") 'leit
                            ldblLeitAnter = BuscaVlrItem(lstrFaturasItensSev, "0302990040") 'leituraant
                            ldblConsFatura = BuscaVlrItem(lstrFaturasItensSev, "030201009") 'consfat
                            'ldblConsMedido = BuscaVlrItem(lstrFaturasItensSev, "030201008") 'conslido

                            ldblConsResiduo = BuscaVlrItem(lstrFaturasItensSev, "0302020998") 'consresiduo

                            If ldblConsResiduo > 0 Then
                                ldblConsMedido = BuscaVlrItem(lstrFaturasItensSev, "0302990039") + BuscaVlrItem(lstrFaturasItensSev, "0302020998")
                            Else
                                ldblConsMedido = BuscaVlrItem(lstrFaturasItensSev, "0302990039") - BuscaVlrItem(lstrFaturasItensSev, "0302990040")
                            End If
                            'ldblConsMedido = BuscaVlrItem(lstrFaturasItensSev, "0302990039") - BuscaVlrItem(lstrFaturasItensSev, "0302990040") 'conslido = leit - leituraant

                            If ldblConsMedido < 0 Then ldblConsMedido *= -1

                            ldblVlrConsumo = BuscaVlrItem(lstrFaturasItensSev, "030202009") 'valorconsumo

                            If lintTarifaBranca = 1 Then
                                ldblVlrConsumo = ldblVlrConsumo + ldblTarifaBrancakWh_Ponta + ldblTarifaBrancakWh_Inter + ldblTarifaBrancakWh_ForaP
                                ldblConsFatura = ldblConsFatura + ldblTarifaBrancakWh_Ponta + ldblTarifaBrancakWh_Inter + ldblTarifaBrancakWh_ForaP
                            End If

                            llngDiasConsumo = DateDiff(Microsoft.VisualBasic.DateInterval.Day, ldteFaturasLeitAnterior, ldteFaturasLeitura)
                            ldblVlrDiario = Arredondar(ldblVlrConsumo / llngDiasConsumo, 2)
                            ldblConDiario = Arredondar(ldblConsFatura / llngDiasConsumo, 0)
                            MaiorMenorMediaConsumos(llngFaturasUnidId, llngFaturasConsId, ldblConsMedido, ldblMaiorConsumo, ldblMenorConsumo, ldblMediaConsumo, lstrMesAnoMaior, lstrMesAnoMenor)

                            ldblReversoLAtual = 0
                            ldblReversoLAnter = 0
                            ldblReversokWhRec = 0
                            ldblReversokWhFat = 0
                            ldblReversokWhRes = 0
                            ldblReversokWh = 0
                            ldblkWhEnviado = 0
                            ldblkWhSaldo = 0

                            If ldblMicroGeracao = 1 Or ldblMicroGeracaoDistr = 1 Then
                                '
                                ' Reverso
                                '
                                ldblReversoLAtual = BuscaVlrItem(lstrFaturasItensSev, "0302990049")
                                ldblReversoLAnter = BuscaVlrItem(lstrFaturasItensSev, "0302990050")
                                ldblReversokWhRec = BuscaVlrItem(lstrFaturasItensSev, "0302020991")
                                ldblReversokWhRes = BuscaVlrItem(lstrFaturasItensSev, "0302020997")

                                If ldblMicroGeracaoDistr = 1 Then
                                    If lstrMesAno >= "01/2023" Then
                                        ldblReversokWhFat = BuscaVlrItem(lstrFaturasItensSev, "0302020992")
                                    Else
                                        ldblReversokWhFat = BuscaVlrItem(lstrFaturasItensSev, "0302020995")
                                    End If

                                    'If ldblMicroGeracao = 1 Then
                                    ldblkWhSaldo = BuscaVlrItem(lstrFaturasItensSev, "0302020990")
                                    'Else
                                    'ldblkWhSaldo = BuscaVlrItem(lstrFaturasItensSev, "0302020997")
                                    'End If

                                Else
                                    If llngFaturasMesAnoRef >= "202301" Then
                                        ldblReversokWhFat = BuscaVlrItem(lstrFaturasItensSev, "0302020992")
                                    Else
                                        ldblReversokWhFat = BuscaVlrItem(lstrFaturasItensSev, "0302020995")
                                    End If

                                    ldblkWhEnviado = BuscaVlrItem(lstrFaturasItensSev, "0302021000")

                                    'If ldblMicroGeracao = 1 Then
                                    ldblkWhSaldo = BuscaVlrItem(lstrFaturasItensSev, "0302020990")
                                    'Else
                                    'ldblkWhSaldo = BuscaVlrItem(lstrFaturasItensSev, "0302020997")
                                    'End If
                                End If

                                'If ldblConsMedido > ldblReversokWhRec Then
                                'ldblReversokWhFat = ldblReversokWhRec 'Reverso Compensado
                                'Else
                                'ldblReversokWhFat = ldblReversokWhRec - ldblConsMedido
                                'If ldblReversokWhFat < 0 Then ldblReversokWhFat *= -1
                                'End If

                                ldblReversokWh = BuscaVlrItem(lstrFaturasItensSev, "0302020996")

                            End If

                            '
                            ' Irrigacao
                            '
                            ldblIrrigacaoLAtual = BuscaVlrItem(lstrFaturasItensSev, "0302990051")
                            ldblIrrigacaoLAnter = BuscaVlrItem(lstrFaturasItensSev, "0302990052")
                            ldblIrrigacaokWh = BuscaVlrItem(lstrFaturasItensSev, "0302990053")
                            ldblIrrigacaokWhFat = BuscaVlrItem(lstrFaturasItensSev, "0302990054")
                            '
                            'Tributos
                            'Icms
                            ldblBaseIcms1 = BuscaVlrItem(lstrFaturasItensSev, "0302030001") 'baseicms
                            ldblAliqIcms1 = BuscaVlrItem(lstrFaturasItensSev, "0302030002") 'aliqicms
                            ldblValrIcms1 = BuscaVlrItem(lstrFaturasItensSev, "0302030009") 'icms
                            ldblBaseIcms2 = BuscaVlrItem(lstrFaturasItensSev, "0302030003") 'baseicms1
                            ldblAliqIcms2 = BuscaVlrItem(lstrFaturasItensSev, "0302030013") 'aliqicms1
                            ldblValrIcms2 = BuscaVlrItem(lstrFaturasItensSev, "0302030010") 'icms1
                            'Pis
                            ldblBasePis = BuscaVlrItem(lstrFaturasItensSev, "0302020033") 'basepis
                            ldblAliqPis = BuscaVlrItem(lstrFaturasItensSev, "0302990303") 'aliqpis
                            ldblValrPis = BuscaVlrItem(lstrFaturasItensSev, "0302020029") 'valor pis
                            'Cofins
                            ldblBaseCofins = BuscaVlrItem(lstrFaturasItensSev, "0302020034") 'basecofins
                            ldblAliqCofins = BuscaVlrItem(lstrFaturasItensSev, "0302990304") 'aliqcofins
                            ldblValrCofins = BuscaVlrItem(lstrFaturasItensSev, "0302020030") 'valor cofins
                            'Outros
                            ldblTotNfTrib = (BuscaVlrItem(lstrFaturasItensSev, "030202009") + BuscaVlrItem(lstrFaturasItensSev, "0302030009") + BuscaVlrItem(lstrFaturasItensSev, "0302020029") + BuscaVlrItem(lstrFaturasItensSev, "0302020030")) 'valor total com tributos
                            ldblBaseIcmsTotal = BuscaVlrItem(lstrFaturasItensSev, "0302030015") 'baseicmstotal
                            ldblValrIcmsTotal = BuscaVlrItem(lstrFaturasItensSev, "0302030014") 'vlricmstotal
                            'Indicador de continuidade
                            ldblDecMeta = BuscaVlrItem(lstrFaturasItensSev, "0302080101") 'dec_meta
                            ldblDecReal = BuscaVlrItem(lstrFaturasItensSev, "0302080001") 'dec_rea
                            ldblFecMeta = BuscaVlrItem(lstrFaturasItensSev, "0302080102") 'fec_meta
                            ldblFecReal = BuscaVlrItem(lstrFaturasItensSev, "0302080002") 'fec_rea
                            ldblDicMeta = BuscaVlrItem(lstrFaturasItensSev, "0302080103") 'dic_meta
                            ldblDicReal = BuscaVlrItem(lstrFaturasItensSev, "0302080003") 'dic_rea
                            ldblFicMeta = BuscaVlrItem(lstrFaturasItensSev, "0302080104") 'fic_meta
                            ldblFicReal = BuscaVlrItem(lstrFaturasItensSev, "0302080004") 'fic_rea
                            ldblDmicMet = BuscaVlrItem(lstrFaturasItensSev, "0302080105") 'dmic
                            ldblDmicRea = BuscaVlrItem(lstrFaturasItensSev, "0302080005") 'dmic
                            lstrRefICon = BuscaRefItem(lstrFaturasItensSev, "0302080099") 'refindicador
                            'Retenção tributária
                            ldblRetIrpj = BuscaVlrItem(lstrFaturasItensSev, "9090000004") 'ret_irpj
                            ldblRetPis = BuscaVlrItem(lstrFaturasItensSev, "9090000001") 'ret_pis
                            ldblRetCsll = BuscaVlrItem(lstrFaturasItensSev, "9090000003") 'ret_csll
                            ldblRetCofins = BuscaVlrItem(lstrFaturasItensSev, "9090000002") 'ret_cofins
                            'Composição da fatura
                            ldblCompEnergia = 0 'comp_energia
                            ldblCompTransmissao = 0 'comp_transmissao
                            ldblCompDistribuicao = 0 'comp_distribuicao
                            ldblCompEncargosSetoriais = 0 'comp_encargos_setoriais
                            'ldblCompEnergia = BuscaVlrItem(lstrFaturasItensSev, "0302090001") 'comp_energia
                            'ldblCompTransmissao = BuscaVlrItem(lstrFaturasItensSev, "0302090002") 'comp_transmissao
                            'ldblCompDistribuicao = BuscaVlrItem(lstrFaturasItensSev, "0302090003") 'comp_distribuicao
                            'ldblCompEncargosSetoriais = BuscaVlrItem(lstrFaturasItensSev, "0302090004") 'comp_encargos_setoriais
                            'Outros
                            lstrOcorrencia = BuscaRefItem(lstrFaturasItensSev, "90410000") 'ocorrencias

                            If strLocalProjeto.ToUpper() = "API" Then
                                objTempFatura.SEGVIA = aintSegVia
                            ElseIf strLocalProjeto.ToUpper() = "FORM" Then
                                objTempFatura.SEGVIA = IIf(frmImpFaturas.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Checked, 3, aintSegVia)
                            End If

                            objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura

                            'Dados da Fatura
                            objTempFatura.NUMNF = ldblFaturasNumNf
                            objTempFatura.CFOP = ldblFaturasCfop
                            objTempFatura.ZONA = IIf(String.IsNullOrEmpty(lstrFaturasZona), " ", lstrFaturasZona)
                            objTempFatura.LIVRO = IIf(String.IsNullOrEmpty(lstrFaturasLivro), " ", lstrFaturasLivro)
                            objTempFatura.CONTA = IIf(String.IsNullOrEmpty(lstrFaturasConta), " ", lstrFaturasConta)
                            objTempFatura.CONS_ID = llngFaturasConsId
                            objTempFatura.UNID_ID = llngFaturasUnidId
                            objTempFatura.ROTA = IIf(String.IsNullOrEmpty(lstrFaturasRota), " ", lstrFaturasRota)
                            objTempFatura.VALORTOT = ldblFaturasValorTot
                            objTempFatura.VALORLIQ = ldblFaturasValorLiq
                            objTempFatura.CODCLAS = IIf(String.IsNullOrEmpty(lstrFaturasCodClas), " ", lstrFaturasCodClas)
                            objTempFatura.DATAVENC = VB6.Format(ldteFaturasVencimento, "yyyy-MM-dd")
                            objTempFatura.BANIDENT = IIf(String.IsNullOrEmpty(lstrFaturasBanIdent), " ", lstrFaturasBanIdent)
                            objTempFatura.BANCO_FATUR = IIf(String.IsNullOrEmpty(lstrFaturasBancoFatur), " ", lstrFaturasBancoFatur)
                            objTempFatura.MESANO = IIf(String.IsNullOrEmpty(lstrFaturasMesAno), " ", lstrFaturasMesAno)
                            objTempFatura.MESANOREF = llngFaturasMesAnoRef
                            objTempFatura.DATAAPR = VB6.Format(ldteFaturasApresentacao, "yyyy-MM-dd")
                            objTempFatura.DATAEMISSAO = VB6.Format(ldteFaturasEmissao, "yyyy-MM-dd")
                            objTempFatura.DATAPROXLEIT = VB6.Format(ldteFaturasProxLeit, "yyyy-MM-dd")
                            objTempFatura.DATALEIT = VB6.Format(ldteFaturasLeitura, "yyyy-MM-dd")
                            objTempFatura.DATALEITANT = VB6.Format(ldteFaturasLeitAnterior, "yyyy-MM-dd")
                            objTempFatura.FASE = IIf(String.IsNullOrEmpty(lstrFaturasFase), " ", lstrFaturasFase)
                            objTempFatura.TA = IIf(String.IsNullOrEmpty(lstrFaturasTa), " ", lstrFaturasTa)
                            objTempFatura.TENSAO = IIf(String.IsNullOrEmpty(lstrFaturasTensao), " ", lstrFaturasTensao)
                            objTempFatura.CODHASH = IIf(String.IsNullOrEmpty(lstrFaturasCodHash), " ", lstrFaturasCodHash)
                            objTempFatura.CODBARRA = IIf(String.IsNullOrEmpty(lstrFaturasCodBarra), " ", lstrFaturasCodBarra)
                            objTempFatura.DVCODBARRA = IIf(String.IsNullOrEmpty(lstrFaturasDvCodBarra), " ", lstrFaturasDvCodBarra)
                            objTempFatura.LINHADIGITAVEL = IIf(String.IsNullOrEmpty(lstrFaturaLinhaDigitavel), " ", lstrFaturaLinhaDigitavel)
                            objTempFatura.DESCCLASSE = IIf(String.IsNullOrEmpty(lstrClasseDescricao), " ", lstrClasseDescricao)
                            objTempFatura.NUM_MED = IIf(String.IsNullOrEmpty(lstrFaturasNumMed), " ", lstrFaturasNumMed)
                            objTempFatura.CONST_MED = ldblFaturasConstMed
                            objTempFatura.FLGST = lstrFaturasFlgst
                            objTempFatura.CANCELADA_MESANO = lstrFaturaCanceladaMesano
                            objTempFatura.CANCELADA_NUMNF = ldlbFaturaCanceladaNumNF

                            'Dados da Unidade
                            objTempFatura.CPF_CNPJ = IIf(llngUnidbConsId <> llngFaturasConsId, lstrConsumidorCgc, lstrUnidbCpfCnpj)
                            objTempFatura.RG_IE = IIf(llngUnidbConsId <> llngFaturasConsId, IIf(Len(lstrConsumidorInsc) > 0, lstrConsumidorInsc, lstrConsumidorRg), IIf(Len(lstrUnidbInsc) > 0, lstrUnidbInsc, lstrUnidbRg))
                            objTempFatura.CGC = IIf(String.IsNullOrEmpty(lstrConsumidorCgc), " ", lstrConsumidorCgc)
                            objTempFatura.INSC = IIf(Len(lstrConsumidorInsc) > 0, lstrConsumidorInsc, lstrConsumidorRg)
                            objTempFatura.AGENC = IIf(String.IsNullOrEmpty(lstrUnidbAgenc), " ", lstrUnidbAgenc)
                            objTempFatura.CC = IIf(String.IsNullOrEmpty(lstrUnidbCC), " ", lstrUnidbCC)
                            objTempFatura.NOMECONS = IIf(String.IsNullOrEmpty(lstrUnidbNome), " ", lstrUnidbNome)
                            objTempFatura.REFCONS = IIf(llngUnidbConsId <> llngFaturasConsId, lstrConsumidorNome, lstrUnidbNome)
                            objTempFatura.NOME_CONJUGE = IIf(String.IsNullOrEmpty(lstrConsumidorConjuge), " ", lstrConsumidorConjuge)
                            objTempFatura.CIDADE = IIf(String.IsNullOrEmpty(lstrUnidbCidade), " ", lstrUnidbCidade)
                            objTempFatura.DISTRITO = IIf(String.IsNullOrEmpty(lstrUnidbDistrito), " ", lstrUnidbDistrito)
                            objTempFatura.BAIRRO = IIf(String.IsNullOrEmpty(lstrUnidbBairro), " ", lstrUnidbBairro)
                            objTempFatura.RUA = IIf(String.IsNullOrEmpty(lstrUnidbEnd), " ", lstrUnidbEnd)
                            objTempFatura.NUMERO = IIf(String.IsNullOrEmpty(lstrUnidbNumero), " ", lstrUnidbNumero)
                            objTempFatura.COMPLEMENT = IIf(String.IsNullOrEmpty(lstrUnidbComplement), " ", lstrUnidbComplement)
                            objTempFatura.CEP = IIf(String.IsNullOrEmpty(lstrUnidbCep), " ", lstrUnidbCep)
                            objTempFatura.UF = IIf(String.IsNullOrEmpty(lstrUnidbUf), " ", lstrUnidbUf)
                            objTempFatura.QUADRA = IIf(String.IsNullOrEmpty(lstrUnidbQuadra), " ", lstrUnidbQuadra)
                            objTempFatura.LOTE = IIf(String.IsNullOrEmpty(lstrUnidbLote), " ", lstrUnidbLote)
                            objTempFatura.ENTREGA = llngUnidbEntrega
                            objTempFatura.CID_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidbCidEntrega), " ", lstrUnidbCidEntrega)
                            objTempFatura.DIS_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidbDisEntrega), " ", lstrUnidbDisEntrega)
                            objTempFatura.BAI_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidbBaiEntrega), " ", lstrUnidbBaiEntrega)
                            objTempFatura.END_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidbEndEntrega), " ", lstrUnidbEndEntrega)
                            objTempFatura.NUM_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidbNumEntrega), " ", lstrUnidbNumEntrega)
                            objTempFatura.COMPL_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidbComplEntrega), " ", lstrUnidbComplEntrega)
                            objTempFatura.CEP_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidbCepEntrega), " ", lstrUnidbCepEntrega)
                            objTempFatura.UF_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidbUfEntrega), " ", lstrUnidbUfEntrega)
                            objTempFatura.QUA_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidbQuaEntrega), " ", lstrUnidbQuaEntrega)
                            objTempFatura.LOT_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidbLotEntrega), " ", lstrUnidbLotEntrega)
                            objTempFatura.GRUPO = IIf(String.IsNullOrEmpty(lstrUnidbGrupo), " ", lstrUnidbGrupo)

                            'Leituras e Consumos
                            objTempFatura.LEIT = ldblLeitAtual
                            objTempFatura.LEITURAANT = ldblLeitAnter
                            objTempFatura.CONSFATURADO = ldblConsFatura
                            objTempFatura.CONSLIDO = ldblConsMedido
                            objTempFatura.CONSRESIDUO = ldblConsResiduo
                            objTempFatura.VALORCONSUMO = ldblVlrConsumo
                            objTempFatura.DIASCONSUMO = llngDiasConsumo
                            objTempFatura.VLRDIARIO = ldblVlrDiario
                            objTempFatura.MEDIACONSUMODIARIO = ldblConDiario
                            objTempFatura.MAIORCONSUMO = ldblMaiorConsumo
                            objTempFatura.MESMAIORCONSUMO = IIf(String.IsNullOrEmpty(lstrMesAnoMaior), " ", lstrMesAnoMaior)
                            objTempFatura.MENORCONSUMO = ldblMenorConsumo
                            objTempFatura.MESMENORCONSUMO = IIf(String.IsNullOrEmpty(lstrMesAnoMenor), " ", lstrMesAnoMenor)
                            objTempFatura.MEDIACONSUMO3MESES = ldblMediaConsumo

                            ' Reverso
                            objTempFatura.LEIT_REVERSO_ATUAL = ldblReversoLAtual
                            objTempFatura.LEIT_REVERSO_ANTER = ldblReversoLAnter
                            objTempFatura.KWH_REVERSO_FAT = ldblReversokWhFat
                            objTempFatura.KWH_REVERSO_RES = ldblReversokWhRes
                            objTempFatura.KWH_REVERSO_LID = ldblReversokWh
                            objTempFatura.KWH_REVERSO_REC = ldblReversokWhRec
                            objTempFatura.KWH_ENVIADO = ldblkWhEnviado
                            objTempFatura.KWH_SALDO = ldblkWhSaldo
                            objTempFatura.MICRO_GERACAO = lintMicroGeracao

                            ' Irrigacao
                            objTempFatura.LEIT_IRRIGANTE_ATUAL = ldblIrrigacaoLAtual
                            objTempFatura.LEIT_IRRIGANTE_ANTERIOR = ldblIrrigacaoLAnter
                            objTempFatura.KWH_IRRIGANTE_FATURADO = ldblIrrigacaokWhFat
                            objTempFatura.KWH_IRRIGANTE_LIDO = ldblIrrigacaokWh
                            objTempFatura.IRRIGACAO_AQUICULTURA = lintIrrigacao

                            ' Tarifa Branca
                            objTempFatura.TARIFA_BRANCA = lintTarifaBranca
                            objTempFatura.LEITURA_ANTER_PONTA = ldblTarifaBrancaLAnter_Ponta
                            objTempFatura.LEITURA_ATUAL_PONTA = ldblTarifaBrancaLAtual_Ponta
                            objTempFatura.LEITURA_ANTER_INTER = ldblTarifaBrancaLAnter_Inter
                            objTempFatura.LEITURA_ATUAL_INTER = ldblTarifaBrancaLAtual_Inter
                            objTempFatura.LEITURA_ANTER_FORAP = ldblTarifaBrancaLAnter_ForaP
                            objTempFatura.LEITURA_ATUAL_FORAP = ldblTarifaBrancaLAtual_ForaP
                            objTempFatura.RESIDUO_PONTA = ldblTarifaBrancaResidu_Ponta
                            objTempFatura.RESIDUO_INTER = ldblTarifaBrancaResidu_Inter
                            objTempFatura.RESIDUO_FORAP = ldblTarifaBrancaResidu_ForaP
                            objTempFatura.CONSUMO_PONTA = ldblTarifaBrancakWh_Ponta
                            objTempFatura.CONSUMO_INTER = ldblTarifaBrancakWh_Inter
                            objTempFatura.CONSUMO_FORAP = ldblTarifaBrancakWh_ForaP

                            ' Tributos
                            ' Icms
                            objTempFatura.BASEICMS = ldblBaseIcms1
                            objTempFatura.ALIQICMS = ldblAliqIcms1
                            objTempFatura.VLRICMS = ldblValrIcms1
                            objTempFatura.BASEICMS1 = ldblBaseIcms2
                            objTempFatura.ALIQICMS1 = ldblAliqIcms2
                            objTempFatura.VLRICMS1 = ldblValrIcms2
                            'Pis                       
                            objTempFatura.BASEPIS = ldblBasePis
                            objTempFatura.ALIQPIS = ldblAliqPis
                            objTempFatura.VLRPIS = ldblValrPis
                            'Cofins                        
                            objTempFatura.BASECOFINS = ldblBaseCofins
                            objTempFatura.ALIQCOFINS = ldblAliqCofins
                            objTempFatura.VLRCOFINS = ldblValrCofins
                            'Outros                        
                            objTempFatura.VLRCONSUTRIB = ldblTotNfTrib
                            objTempFatura.BASEICMSTOTAL = ldblBaseIcmsTotal
                            objTempFatura.VLRICMSTOTAL = ldblValrIcmsTotal

                            'Indicador de Continuidade 
                            objTempFatura.DEC_META = ldblDecMeta
                            objTempFatura.FEC_META = ldblFecMeta
                            objTempFatura.DIC_META = ldblDicMeta
                            objTempFatura.FIC_META = ldblFicMeta
                            objTempFatura.DMIC = ldblDmicMet
                            objTempFatura.DEC_REA = ldblDecReal
                            objTempFatura.FEC_REA = ldblFecReal
                            objTempFatura.DIC_REA = ldblDicReal
                            objTempFatura.FIC_REA = ldblFicReal
                            objTempFatura.DMIC_REA = ldblDmicRea
                            objTempFatura.REFINDICADOR = IIf(String.IsNullOrEmpty(lstrRefICon), " ", lstrRefICon)
                            'Retenção Tributária                        
                            objTempFatura.RET_IRPJ = ldblRetIrpj
                            objTempFatura.RET_PIS = ldblRetPis
                            objTempFatura.RET_CSLL = ldblRetCsll
                            objTempFatura.RET_COFINS = ldblRetCofins
                            'Composição da Fatura                       
                            objTempFatura.COMP_ENERGIA = ldblCompEnergia
                            objTempFatura.COMP_TRANSMISSAO = ldblCompTransmissao
                            objTempFatura.COMP_DISTRIBUICAO = ldblCompDistribuicao
                            objTempFatura.COMP_ENCARGOS_SETORIAIS = ldblCompEncargosSetoriais

                            'Reaviso
                            If gstrReaviso_na_fatura = "S" Then
                                Dim strReaviso As String = MontaReaviso(llngFaturasConsId, llngFaturasUnidId, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, lstrFaturasCodClas, ldteFaturasApresentacao, ldblFaturasNumNf, Convert.ToInt32(Convert.ToDateTime("01/" + lstrMesAno).ToString("yyyyMM")))

                                If strReaviso = "0000-00-00; 0; 0.00; ''; ''; ''; " Then

                                    objTempFatura.REAVISO_VECTO = Convert.ToDateTime("01/01/0001")
                                    objTempFatura.REAVISO_NUMNF = 0
                                    objTempFatura.REAVISO_VALOR = 0
                                    objTempFatura.REAVISO_MESANO = String.Empty
                                    objTempFatura.REAVISO_IDENTIFICADOR = String.Empty
                                    objTempFatura.REAVISO_MENSAGEM = String.Empty
                                Else
                                    Dim strReavisos As String() = strReaviso.Split(";")

                                    objTempFatura.REAVISO_VECTO = Convert.ToDateTime(strReavisos(0).Replace("'", "").Trim())
                                    objTempFatura.REAVISO_NUMNF = Convert.ToDouble(strReavisos(1).Replace("'", "").Trim())
                                    objTempFatura.REAVISO_VALOR = Convert.ToDouble(strReavisos(2).Replace("'", "").Replace(".", ",").Trim())
                                    objTempFatura.REAVISO_MESANO = strReavisos(3).Replace("'", "").Trim()
                                    objTempFatura.REAVISO_IDENTIFICADOR = strReavisos(4).Replace("'", "").Trim()
                                    objTempFatura.REAVISO_MENSAGEM = strReavisos(5).Replace("'", "").Trim()
                                End If
                            Else
                                objTempFatura.REAVISO_VECTO = Convert.ToDateTime("01/01/0001")
                                objTempFatura.REAVISO_NUMNF = 0
                                objTempFatura.REAVISO_VALOR = 0
                                objTempFatura.REAVISO_MESANO = String.Empty
                                objTempFatura.REAVISO_IDENTIFICADOR = String.Empty
                                objTempFatura.REAVISO_MENSAGEM = String.Empty
                            End If

                            'Outros
                            objTempFatura.MENSAGEM = IIf(String.IsNullOrEmpty(lstrMensagem), " ", lstrMensagem)
                            objTempFatura.ITENSIMP = IIf(String.IsNullOrEmpty(lstrFaturasItensImp), " ", lstrFaturasItensImp)
                            objTempFatura.MENSAGEM_BANDEIRA = IIf(String.IsNullOrEmpty(lstrFaturasMensagemBandeira), " ", lstrFaturasMensagemBandeira)
                            objTempFatura.BANDEIRA = llngBandeira

                            If strLocalProjeto.ToUpper() = "API" Then
                                objTempFatura.FRENTEVERSO = 0
                            ElseIf strLocalProjeto.ToUpper() = "FORM" Then
                                objTempFatura.FRENTEVERSO = IIf(frmImpFaturas.chkFrenteVerso.CheckState = System.Windows.Forms.CheckState.Checked, 1, 0)
                            End If

                            objTempFatura.OCORRENCIA = IIf(String.IsNullOrEmpty(lstrOcorrencia), " ", lstrOcorrencia)
                            objTempFatura.SALDOACUMULADO = ldblSaldoAcumulado
                            objTempFatura.SEQUENCIA = lintSequenciaFaturas
                            objTempFatura.MATRICULA = lintConsumidorMatricula

                            lInsert(objTempFatura)

                            lMontarCodBarrasEPixGrupoB(objTempFatura)

                            objTempFatura.CPF_CNPJ = lEsconderNumerosCpfCnpj(IIf(llngUnidbConsId <> llngFaturasConsId, lstrConsumidorCgc, lstrUnidbCpfCnpj))

                            lUpdate_2(objTempFatura)

                            If strLocalProjeto.ToUpper() = "FORM" Then
                                BarraProgresso((frmImpFaturas.ProgressBar), (frmImpFaturas.lblPerc), (frmImpFaturas.lblInfo), 1)
                            End If

                            If Len(Trim(astrMesAno)) = 0 Then
                                astrMesAno = lstrMesAno
                            End If


                            If istrTabela <> "nf" Then
                                llngFaturasAnoMes_Fat = Convert.ToDateTime("01/" + astrMesAno).ToString("yyyyMM")
                                VerificaCriaTempItemFatura(strLocalProjeto, ldblFaturasNumNf, astrMesAno, llngFaturasAnoMes_Fat, "B")
                            Else
                                llngFaturasAnoMes_Fat = Convert.ToDateTime("01/" + astrMesAno).ToString("yyyyMM")
                                VerificaCriaTempItemFatura(strLocalProjeto, ldblFaturasNumNf, llngFaturasAnoMes_Fat, llngFaturasAnoMes_Fat, "B")
                            End If

                        Next

                        If strLocalProjeto.ToUpper() = "FORM" Then

                            'FATURAS PENDENTES
                            frmImpFaturas.lblInfo.Text = "Processando faturas pendentes..."
                            frmImpFaturas.lblInfo.Refresh()

                        End If

                        For llngConta = 0 To 11

                            objTempFatura.AUXIMP = llngConta
                            lUpdate(objTempFatura)

                        Next llngConta

                        If strLocalProjeto.ToUpper() = "FORM" Then

                            If frmImpFaturas.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Checked Then
                                If ldlbFaturaCanceladaNumNF = 0 Then
                                    objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                                    lUpdate_1(objTempFatura)
                                End If

                            End If

                            frmImpFaturas.Cursor = System.Windows.Forms.Cursors.Arrow
                            frmImpFaturas.lblInfo.Text = " "

                            lstrNomeRptFat = String.Empty

                            If aintBarras = 1 Then
                                lstrNomeRptFat = "rptFaturaEflulGrupoBBarras"
                            Else
                                lstrNomeRptFat = "rptFaturaEflulGrupoB"
                            End If

                            If frmImpFaturas.chkFrenteVerso.CheckState = System.Windows.Forms.CheckState.Unchecked Then

                                If aintSegVia = 0 Then

                                    If frmImpFaturas.chkVerso.CheckState = 1 Then
                                        lstrNomeRptFat = "rptFaturaEflulGrupoBVerso"
                                    End If

                                End If

                            End If

                            If frmImpFaturas.chk_Reaviso.CheckState = System.Windows.Forms.CheckState.Checked Then
                                lstrNomeRptFat = "rptFaturaEflulGrupoB_Reaviso"
                            End If

                            If frmImpFaturas.chkEnviarFaturaEmail.CheckState = System.Windows.Forms.CheckState.Checked Then
                                frmImpFaturas.lPrintEmail(lstrNomeRptFat)
                            ElseIf frmImpFaturas.chkFaturaIndividualPDF.CheckState = System.Windows.Forms.CheckState.Checked Then
                                frmImpFaturas.lPrintIndividual(lstrNomeRptFat)
                            Else
                                frmImpFaturas.lPrint(lstrNomeRptFat, IIf(frmImpFaturas.sCaminhoPDF = "", False, True))
                            End If

                            objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                            lDelete(objTempFatura)

                            objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                            lDelete(objTempFaturaBImagePixBarras)

                        End If

                    Else
                        MessageBox.Show("Não foi encontrado nenhuma fatura!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                    End If

                ElseIf istrTabela.ToUpper() = "NFTRANSICAO" Then

                    objNfTransicao.TA = lstrSqlAnd

                    vlist = repositorioNfTransicao.SelectOthersTables_3(objNfTransicao)

                    If vlist.Count <> 0 Then

                        If strLocalProjeto.ToUpper() = "API" Then

                            istrUsuarioGeradorFatura = String.Empty
                            istrUsuarioGeradorFatura = strUsuarioGeradorFaturaAPI

                        ElseIf strLocalProjeto.ToUpper() = "FORM" Then

                            frmImpFaturas.strUsuarioGeradorFatura = String.Empty
                            frmImpFaturas.strUsuarioGeradorFatura = $"{vUsuario.LOGIN}_{Date.Now.Day.ToString()}_{Date.Now.Month.ToString()}{Date.Now.Year.ToString()}_{Date.Now.Hour.ToString()}_{Date.Now.Minute.ToString()}_{Date.Now.Second.ToString()}_{Date.Now.Millisecond.ToString()}"

                            istrUsuarioGeradorFatura = String.Empty
                            istrUsuarioGeradorFatura = frmImpFaturas.strUsuarioGeradorFatura

                            frmImpFaturas.lblInfo.Text = "Aguarde, limpando dados temporários..."
                            frmImpFaturas.lblInfo.Refresh()

                            System.Windows.Forms.Application.DoEvents()

                            frmImpFaturas.lblInfo.Text = "Aguarde, gerando as faturas..."
                            frmImpFaturas.lblInfo.Refresh()

                            System.Windows.Forms.Application.DoEvents()

                            BarraProgresso((frmImpFaturas.ProgressBar), (frmImpFaturas.lblPerc), (frmImpFaturas.lblInfo), 0, vlist.Count)

                        End If

                        For Each objNfTransicaoFor As entidadeNfTransicao In vlist

                            'Dados da Fatura

                            ldblFaturasNumNf = CDbl(IIf(IsDBNull(objNfTransicaoFor.NUMNF), 0, objNfTransicaoFor.NUMNF))

                            ldblFaturasCfop = CDbl(IIf(IsDBNull(objNfTransicaoFor.CFOP), 0, objNfTransicaoFor.CFOP))

                            If Len(ldblFaturasCfop) >= 3 Then
                                ldblFaturasCfop = ldblFaturasCfop / 1000
                            End If

                            lstrFaturasZona = VB6.Format(IIf(IsDBNull(objNfTransicaoFor.ZONA), "0", objNfTransicaoFor.ZONA), "000")

                            lstrFaturasLivro = VB6.Format(IIf(IsDBNull(objNfTransicaoFor.LIVRO), "0", objNfTransicaoFor.LIVRO), "00")

                            lstrFaturasConta = VB6.Format(IIf(IsDBNull(objNfTransicaoFor.CONTA), "0", objNfTransicaoFor.CONTA), "000000")

                            lstrFaturasRota = IIf(IsDBNull(objNfTransicaoFor.ROTA), "0", objNfTransicaoFor.ROTA)

                            llngFaturasUnidId = CInt(IIf(IsDBNull(objNfTransicaoFor.UNID_ID), "0", objNfTransicaoFor.UNID_ID))

                            llngFaturasConsId = CInt(IIf(IsDBNull(objNfTransicaoFor.CONS_ID), "0", objNfTransicaoFor.CONS_ID))

                            If strLocalProjeto.ToUpper() = "API" Then
                                RefazConsumos(llngFaturasConsId, llngFaturasUnidId, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, VB6.Format(Date.Now.ToShortDateString, "mm/yyyy"))
                            ElseIf strLocalProjeto.ToUpper() = "FORM" Then
                                RefazConsumos(llngFaturasConsId, llngFaturasUnidId, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, VB6.Format(frmImpFaturas.dtpMesAno.Value, "mm/yyyy"))
                            End If

                            ldblFaturasValorTot = CDbl(IIf(IsDBNull(objNfTransicaoFor.VALORTOT), 0, objNfTransicaoFor.VALORTOT))

                            ldblFaturasValorLiq = CDbl(IIf(IsDBNull(objNfTransicaoFor.VALORLIQ), 0, objNfTransicaoFor.VALORLIQ))

                            lstrFaturasCodClas = VB6.Format(IIf(IsDBNull(objNfTransicaoFor.CODCLAS), "0", objNfTransicaoFor.CODCLAS), "0000")

                            ldteFaturasVencimento = CDate(IIf(IsDBNull(objNfTransicaoFor.DATAVENC), "1900-01-01", objNfTransicaoFor.DATAVENC))

                            lstrFaturasBanIdent = IIf(IsDBNull(objNfTransicaoFor.BANIDENT), "", objNfTransicaoFor.BANIDENT)

                            lstrFaturasBancoFatur = IIf(IsDBNull(objNfTransicaoFor.BANCO_FATUR), "", objNfTransicaoFor.BANCO_FATUR)

                            lstrFaturasMesAno = IIf(IsDBNull(objNfTransicaoFor.MESANO), "", objNfTransicaoFor.MESANO)

                            llngFaturasMesAnoRef = CInt(IIf(IsDBNull(objNfTransicaoFor.MESANO_REF), 0, objNfTransicaoFor.MESANO_REF))

                            ldteFaturasApresentacao = CDate(IIf(IsDBNull(objNfTransicaoFor.DATAAPR), "1900-01-01", objNfTransicaoFor.DATAAPR))

                            ldteFaturasEmissao = CDate(IIf(IsDBNull(objNfTransicaoFor.DATAEM), "1900-01-01", objNfTransicaoFor.DATAEM))

                            ldteFaturasProxLeit = CDate(IIf(IsDBNull(objNfTransicaoFor.DATAPROXLEIT), "1900-01-01", objNfTransicaoFor.DATAPROXLEIT))

                            ldteFaturasLeitura = CDate(IIf(IsDBNull(objNfTransicaoFor.DATALEIT), "1900-01-01", objNfTransicaoFor.DATALEIT))

                            ldteFaturasLeitAnterior = CDate(IIf(IsDBNull(objNfTransicaoFor.DATALEITANT), "1900-01-01", objNfTransicaoFor.DATALEITANT))

                            lstrFaturasFase = Trim(IIf(IsDBNull(objNfTransicaoFor.FASE), "M", objNfTransicaoFor.FASE))

                            lstrFaturasTa = Trim(IIf(IsDBNull(objNfTransicaoFor.TA), "01B100", objNfTransicaoFor.TA))

                            lstrFaturasTensao = Trim(IIf(IsDBNull(objNfTransicaoFor.TENSAO), "220", objNfTransicaoFor.TENSAO))

                            lstrFaturasCodHash = Trim(IIf(IsDBNull(objNfTransicaoFor.CODHASH), "", objNfTransicaoFor.CODHASH))

                            lstrFaturasItensSev = Trim(IIf(IsDBNull(objNfTransicaoFor.ITENSSERV), "", objNfTransicaoFor.ITENSSERV))

                            lstrFaturasItensImp = Trim(IIf(IsDBNull(objNfTransicaoFor.ITENSIMP), "", objNfTransicaoFor.ITENSIMP))

                            llngFaturasNsu = CInt(IIf(IsDBNull(objNfTransicaoFor.NSU), "0", objNfTransicaoFor.NSU))

                            lstrFaturasMensagemBandeira = Trim(IIf(IsDBNull(objNfTransicaoFor.MENSAGEM_BANDEIRA), "", objNfTransicaoFor.MENSAGEM_BANDEIRA))

                            lintIrrigacao = CShort(IIf(IsDBNull(objNfTransicaoFor.IRRIGACAO_AQUICULTURA), "0", objNfTransicaoFor.IRRIGACAO_AQUICULTURA))

                            ldblMicroGeracao = CInt(IIf(IsDBNull(objNfTransicaoFor.MICRO_GERACAO), "0", objNfTransicaoFor.MICRO_GERACAO))

                            ldblMicroGeracaoDistr = CShort(IIf(IsDBNull(objNfTransicaoFor.MICRO_GERACAO_DISTRIBUIDA), "0", objNfTransicaoFor.MICRO_GERACAO_DISTRIBUIDA))

                            lstrMensAux1 = ""

                            If Microsoft.VisualBasic.Left(lstrFaturasCodClas, 1) = "9" Then


                                If Len(Trim(astrMesAno)) = 0 Then
                                    astrMesAno = lstrMesAno
                                End If

                                If astrMesAno = "09/2010" Or astrMesAno = "10/2010" Or astrMesAno = "11/2010" Or astrMesAno = "12/2010" Or astrMesAno = "01/2011" Or astrMesAno = "02/2011" Then
                                    lstrMensAux1 = lstrMensAux1 & "TARIFA SOCIAL DE ENERGIA ELETRICA PARA TODAS As" & vbCrLf
                                    lstrMensAux1 = lstrMensAux1 & "FAMILIAS QUE ESTEJAM INSCRITAS NO CADASTRO UNICO" & vbCrLf
                                    lstrMensAux1 = lstrMensAux1 & "DE PROGRAMAS SOCIAIS, E SEUS MORADORES QUE" & vbCrLf
                                    lstrMensAux1 = lstrMensAux1 & "RECEBAM BENEFICIOS DE PRESTACAO DA ASSISTENCIA" & vbCrLf
                                    lstrMensAux1 = lstrMensAux1 & "SOCIAL CONFORME LEI Nº 12.212 DE 2010." & vbCrLf
                                    lstrMensAux1 = lstrMensAux1 & "QUALQUER DUVIDA, FAVOR DIRIGIR-SE A " & gstrEmpresa_Sigla & "."
                                End If

                            End If

                            If strLocalProjeto.ToUpper() = "API" Then

                                lstrMsg712 = Trim(GetMsgBaixaRenda(CInt(VB6.Format(Date.Now.ToShortDateString, "yyyyMM")), lstrZona, lstrLivro, lstrConta, ldteBase))

                                If (CDbl(Microsoft.VisualBasic.Left(lstrFaturasCodClas, 2)) >= 51 And CDbl(Microsoft.VisualBasic.Left(lstrFaturasCodClas, 2)) <= 57) Or CDbl(Microsoft.VisualBasic.Left(lstrFaturasCodClas, 2)) = 72 Then
                                    lstrMsg712 = Trim(GetMsgRevCadastral(CInt(VB6.Format(Date.Now.ToShortDateString, "yyyyMM")), lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, ldteBase))
                                End If

                            ElseIf strLocalProjeto.ToUpper() = "FORM" Then

                                lstrMsg712 = Trim(GetMsgBaixaRenda(CInt(VB6.Format(frmImpFaturas.dtpMesAno.Value, "yyyyMM")), lstrZona, lstrLivro, lstrConta, ldteBase))

                                If (CDbl(Microsoft.VisualBasic.Left(lstrFaturasCodClas, 2)) >= 51 And CDbl(Microsoft.VisualBasic.Left(lstrFaturasCodClas, 2)) <= 57) Or CDbl(Microsoft.VisualBasic.Left(lstrFaturasCodClas, 2)) = 72 Then
                                    lstrMsg712 = Trim(GetMsgRevCadastral(CInt(VB6.Format(frmImpFaturas.dtpMesAno.Value, "yyyyMM")), lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, ldteBase))
                                End If

                            End If

                            If lstrMsg712 <> "" Then
                                lstrMensAux1 = ""
                                lstrMensAux1 = lstrMensAux1 & Mid(lstrMsg712, 1, 90)
                                lstrMensAux1 = lstrMensAux1 & Mid(lstrMsg712, 91, 90)
                                lstrMensAux1 = lstrMensAux1 & Mid(lstrMsg712, 181, 90)
                                lstrMensAux1 = lstrMensAux1 & Mid(lstrMsg712, 271, 90)
                                lstrMensAux1 = lstrMensAux1 & Mid(lstrMsg712, 361, 90)
                                lstrMensAux1 = lstrMensAux1 & Mid(lstrMsg712, 451, 90)
                            End If

                            If strLocalProjeto.ToUpper() = "FORM" Then

                                If frmImpFaturas.chkMsgTarAjuste.CheckState = System.Windows.Forms.CheckState.Checked Then

                                    lstrMensAux2 = GetMensagemTarifaAjuste(istrGrupo, lstrFaturasCodClas, ldteFaturasLeitAnterior, ldteFaturasLeitura)

                                    If lstrMensAux2 <> "" Then
                                        lstrMensAux1 = ""
                                        lstrMensAux1 = lstrMensAux1 & Mid(lstrMensAux2, 1, 90)
                                        lstrMensAux1 = lstrMensAux1 & Mid(lstrMensAux2, 91, 90)
                                        lstrMensAux1 = lstrMensAux1 & Mid(lstrMensAux2, 181, 90)
                                        lstrMensAux1 = lstrMensAux1 & Mid(lstrMensAux2, 271, 90)
                                        lstrMensAux1 = lstrMensAux1 & Mid(lstrMensAux2, 361, 90)
                                        lstrMensAux1 = lstrMensAux1 & Mid(lstrMensAux2, 451, 90)
                                    End If

                                End If

                            End If

                            If aintSegVia = 1 Then
                                lstrMensagem = "SEGUNDA VIA" & vbCrLf & IIf(llngFaturasNsu > 0, "NSU:  " & VB6.Format(llngFaturasNsu, "0000000000") & vbCrLf, "") & IIf(Trim(lstrMensAux1) <> "", lstrMensAux1, lstrMensAux)
                            ElseIf aintSegVia = 2 Then
                                lstrMensagem = "DEMONSTRATIVO DA FATURA, SEM VALOR FISCAL" & vbCrLf & IIf(llngFaturasNsu > 0, "NSU: " & VB6.Format(llngFaturasNsu, "0000000000") & vbCrLf, "") & IIf(Trim(lstrMensAux1) <> "", lstrMensAux1, lstrMensAux)
                            Else
                                lstrMensagem = IIf(llngFaturasNsu > 0, "NSU: " & VB6.Format(llngFaturasNsu, "0000000000") & vbCrLf, "") & IIf(Trim(lstrMensAux1) <> "", lstrMensAux1, lstrMensAux)
                            End If

                            If strLocalProjeto.ToUpper() = "FORM" Then

                                If frmImpFaturas.chkQuitacaoDebito.CheckState = 1 Then
                                    lstrMensagem = lstrMensagem & vbCrLf & VerificaQuitacaoDebito(llngFaturasConsId, CDbl(Microsoft.VisualBasic.Left(CStr(llngFaturasMesAnoRef), 4)) - 1, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta)
                                End If

                            End If

                            lstrOrdemJudicial = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.ORDEM_JUDICIAL), "", objNfTransicaoFor.entidadeUCFATURAMENTO.ORDEM_JUDICIAL))

                            If lstrOrdemJudicial = "S" Then
                                lstrMensagem = lstrMensagem & vbCrLf & vbCrLf & lstrMensAux_OrdemJudicial
                            End If

                            lstrFaturasCodBarra = Trim(IIf(IsDBNull(objNfTransicaoFor.CODBARRA_IMAGEM), "", objNfTransicaoFor.CODBARRA_IMAGEM))

                            lstrFaturasDvCodBarra = Trim(IIf(IsDBNull(objNfTransicaoFor.DVCODBARRA), "", objNfTransicaoFor.DVCODBARRA))

                            lstrFaturaLinhaDigitavel = Trim(IIf(IsDBNull(objNfTransicaoFor.CODBARRA), "", objNfTransicaoFor.CODBARRA))

                            lstrFaturaCanceladaMesano = IIf(IsDBNull(objNfTransicaoFor.CANCELADA_MESANO), "", objNfTransicaoFor.CANCELADA_MESANO)

                            ldlbFaturaCanceladaNumNF = IIf(IsDBNull(objNfTransicaoFor.CANCELADA_NUMNF), 0, objNfTransicaoFor.CANCELADA_NUMNF)

                            If strLocalProjeto.ToUpper() = "API" Then

                                If Len(lstrFaturasCodBarra) = 0 Then

                                    sBanco = fRetornaBancoImpFat(IIf(lstrFaturasBancoFatur = "", 0, CLng(lstrFaturasBancoFatur)))
                                    MontaCodBarras(ldblFaturasNumNf, lstrFaturasMesAno, ldblFaturasValorLiq, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, lstrFaturasCodBarra, lstrFaturasDvCodBarra, CStr(ldteFaturasVencimento), lstrFaturaLinhaDigitavel, sBanco)

                                    objNfTransicao.CODBARRA = lstrFaturasCodBarra
                                    objNfTransicao.DVCODBARRA = lstrFaturasDvCodBarra
                                    objNfTransicao.NUMNF = ldblFaturasNumNf
                                    objNfTransicao.MESANO_REF = llngFaturasMesAnoRef
                                    objNfTransicao.CODBARRA_IMAGEM = lstrFaturaLinhaDigitavel

                                    repositorioNfTransicao.Update_CodBarras(objNfTransicao)

                                    lstrFaturaAjusteCodBarras = lstrFaturasCodBarra
                                    lstrFaturaAjusteLinhaDigitavel = lstrFaturaLinhaDigitavel

                                    lstrFaturasCodBarra = lstrFaturaAjusteLinhaDigitavel
                                    lstrFaturaLinhaDigitavel = lstrFaturaAjusteCodBarras

                                End If

                            ElseIf strLocalProjeto.ToUpper() = "FORM" Then

                                If Len(lstrFaturasCodBarra) = 0 And frmImpFaturas.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Unchecked Then

                                    sBanco = fRetornaBancoImpFat(IIf(lstrFaturasBancoFatur = "", 0, CLng(lstrFaturasBancoFatur)))
                                    MontaCodBarras(ldblFaturasNumNf, lstrFaturasMesAno, ldblFaturasValorLiq, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, lstrFaturasCodBarra, lstrFaturasDvCodBarra, CStr(ldteFaturasVencimento), lstrFaturaLinhaDigitavel, sBanco)

                                    objNfTransicao.CODBARRA = lstrFaturasCodBarra
                                    objNfTransicao.DVCODBARRA = lstrFaturasDvCodBarra
                                    objNfTransicao.NUMNF = ldblFaturasNumNf
                                    objNfTransicao.MESANO_REF = llngFaturasMesAnoRef
                                    objNfTransicao.CODBARRA_IMAGEM = lstrFaturaLinhaDigitavel

                                    repositorioNfTransicao.Update_CodBarras(objNfTransicao)

                                    lstrFaturaAjusteCodBarras = lstrFaturasCodBarra
                                    lstrFaturaAjusteLinhaDigitavel = lstrFaturaLinhaDigitavel

                                    lstrFaturasCodBarra = lstrFaturaAjusteLinhaDigitavel
                                    lstrFaturaLinhaDigitavel = lstrFaturaAjusteCodBarras

                                End If

                            End If

                            lstrUnidbRegiao = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.REGIAO), "U", objNfTransicaoFor.entidadeUCFATURAMENTO.REGIAO))

                            lstrClasseDescricao = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeCLASSE.DESCRICAO), "", objNfTransicaoFor.entidadeCLASSE.DESCRICAO)) '& IIf(Microsoft.VisualBasic.Left(lstrFaturasCodClas, 1) = "9", IIf(lstrUnidbRegiao = "R", " (RURAL)", ""), "")

                            lstrFaturasNumMed = Trim(IIf(IsDBNull(objNfTransicaoFor.NUM_MED), "", objNfTransicaoFor.NUM_MED))

                            ldblFaturasConstMed = CDbl(IIf(IsDBNull(objNfTransicaoFor.CONST_MED), "0", objNfTransicaoFor.CONST_MED))
                            'Dados da Unidade

                            lstrUnidbCpfCnpj = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.CPF_CNPJ), "", objNfTransicaoFor.entidadeUCFATURAMENTO.CPF_CNPJ))

                            lstrUnidbInsc = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.INSC), "", objNfTransicaoFor.entidadeUCFATURAMENTO.INSC))

                            lstrUnidbRg = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.RG), "", objNfTransicaoFor.entidadeUCFATURAMENTO.RG))

                            lstrUnidbAgenc = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.AGENC), "", objNfTransicaoFor.entidadeUCFATURAMENTO.AGENC))

                            lstrUnidbCC = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.CC), "", objNfTransicaoFor.entidadeUCFATURAMENTO.CC))

                            lstrUnidbNome = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.NOME), "", objNfTransicaoFor.entidadeUCFATURAMENTO.NOME))

                            lstrUnidbCidade = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.CIDADE), "", objNfTransicaoFor.entidadeUCFATURAMENTO.CIDADE))

                            lstrUnidbDistrito = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.DISTRITO), "", objNfTransicaoFor.entidadeUCFATURAMENTO.DISTRITO))

                            lstrUnidbBairro = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.BAIRRO), "", objNfTransicaoFor.entidadeUCFATURAMENTO.BAIRRO))

                            lstrUnidbEnd = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.END), "", objNfTransicaoFor.entidadeUCFATURAMENTO.END))

                            lstrUnidbNumero = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.NUMERO), "", objNfTransicaoFor.entidadeUCFATURAMENTO.NUMERO))

                            lstrUnidbComplement = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.COMPLEMENT), "", objNfTransicaoFor.entidadeUCFATURAMENTO.COMPLEMENT))

                            lstrUnidbCep = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.CEP), "", objNfTransicaoFor.entidadeUCFATURAMENTO.CEP))

                            lstrUnidbUf = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.UF), "", objNfTransicaoFor.entidadeUCFATURAMENTO.UF))

                            lstrUnidbLote = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.LOTE), "", objNfTransicaoFor.entidadeUCFATURAMENTO.LOTE))

                            lstrUnidbQuadra = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.QUADRA), "", objNfTransicaoFor.entidadeUCFATURAMENTO.QUADRA))

                            llngUnidbEntrega = CInt(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.ENTREGA), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.ENTREGA))

                            lstrUnidbCidEntrega = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.CID_ENTREGA), "", objNfTransicaoFor.entidadeUCFATURAMENTO.CID_ENTREGA))

                            lstrUnidbDisEntrega = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.DIS_ENTREGA), "", objNfTransicaoFor.entidadeUCFATURAMENTO.DIS_ENTREGA))

                            lstrUnidbBaiEntrega = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.BAI_ENTREGA), "", objNfTransicaoFor.entidadeUCFATURAMENTO.BAI_ENTREGA))

                            lstrUnidbEndEntrega = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.END_ENTREGA), "", objNfTransicaoFor.entidadeUCFATURAMENTO.END_ENTREGA))

                            lstrUnidbNumEntrega = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.NUM_ENTREGA), "", objNfTransicaoFor.entidadeUCFATURAMENTO.NUM_ENTREGA))

                            lstrUnidbComplEntrega = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.COMPL_ENTREGA), "", objNfTransicaoFor.entidadeUCFATURAMENTO.COMPL_ENTREGA))

                            lstrUnidbCepEntrega = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.CEP_ENTREGA), "", objNfTransicaoFor.entidadeUCFATURAMENTO.CEP_ENTREGA))

                            lstrUnidbUfEntrega = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.UF_ENTREGA), "", objNfTransicaoFor.entidadeUCFATURAMENTO.UF_ENTREGA))

                            lstrUnidbLotEntrega = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.LOT_ENTREGA), "", objNfTransicaoFor.entidadeUCFATURAMENTO.LOT_ENTREGA))

                            lstrUnidbQuaEntrega = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.QUA_ENTREGA), "", objNfTransicaoFor.entidadeUCFATURAMENTO.QUA_ENTREGA))

                            lstrUnidbGrupo = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.GRUPO), "", objNfTransicaoFor.entidadeUCFATURAMENTO.GRUPO))

                            llngUnidbUnidId = CInt(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.UNID_ID), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.UNID_ID))

                            llngUnidbConsId = CInt(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.CONS_ID), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.CONS_ID))

                            lstrConsumidorNome = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeCONSUM.NOME), "", objNfTransicaoFor.entidadeCONSUM.NOME))

                            lstrConsumidorConjuge = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeCONSUM.NOME_CONJUGE), "", objNfTransicaoFor.entidadeCONSUM.NOME_CONJUGE))

                            lintConjugeFatura = objNfTransicaoFor.entidadeUCFATURAMENTO.CONJUGE_FATURA

                            lintSequenciaFaturas = Convert.ToInt32(Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.SEQUENCIA), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.SEQUENCIA)))

                            If lintConjugeFatura = 0 Then
                                lstrConsumidorConjuge = ""
                            End If

                            If lintMicroGeracao = 1 Then

                                objGDCompensacao.ZONA = lstrFaturasZona
                                objGDCompensacao.LIVRO = lstrFaturasLivro
                                objGDCompensacao.CONTA = lstrFaturasConta
                                objGDCompensacao.CONS_ID = llngFaturasConsId
                                objGDCompensacao.UNID_ID = llngFaturasUnidId

                                vlist_1 = repositorioGDCompensacao.Select(objGDCompensacao)

                                If vlist_1.Count <> 0 Then

                                    For Each objGDCompensacaoFor As entidadeGDCompensacao In vlist_1
                                        ldblSaldoAcumulado = ldblSaldoAcumulado + CDbl(IIf(IsDBNull(objGDCompensacaoFor.SALDO_ATUAL), 0, objGDCompensacaoFor.SALDO_ATUAL))
                                    Next

                                Else
                                    ldblSaldoAcumulado = Convert.ToDouble("0")
                                End If

                            Else
                                ldblSaldoAcumulado = Convert.ToDouble("0")
                            End If


                            lstrConsumidorCep = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeCONSUM.CEP), "", objNfTransicaoFor.entidadeCONSUM.CEP))

                            lstrConsumidorUf = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeCONSUM.UF), "", objNfTransicaoFor.entidadeCONSUM.UF))

                            lstrConsumidorCgc = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeCONSUM.CGC), "", objNfTransicaoFor.entidadeCONSUM.CGC))

                            lstrConsumidorInsc = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeCONSUM.INSC), "", objNfTransicaoFor.entidadeCONSUM.INSC))

                            lstrConsumidorRg = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeCONSUM.RG), "", objNfTransicaoFor.entidadeCONSUM.RG))

                            lintConsumidorMatricula = Trim(IIf(IsDBNull(objNfTransicaoFor.entidadeCONSUM.MATRICULA), 0, objNfTransicaoFor.entidadeCONSUM.MATRICULA))

                            '
                            ' Tarifa Branca

                            lintTarifaBranca = IIf(IsDBNull(objNfTransicaoFor.TARIFA_BRANCA), 0, objNfTransicaoFor.TARIFA_BRANCA)

                            ldblTarifaBrancaLAnter_Ponta = BuscaValorItem(lstrFaturasItensSev, "0302990061")
                            ldblTarifaBrancaLAtual_Ponta = BuscaValorItem(lstrFaturasItensSev, "0302990062")
                            ldblTarifaBrancaLAnter_Inter = BuscaValorItem(lstrFaturasItensSev, "0302990063")
                            ldblTarifaBrancaLAtual_Inter = BuscaValorItem(lstrFaturasItensSev, "0302990064")
                            ldblTarifaBrancaLAnter_ForaP = BuscaValorItem(lstrFaturasItensSev, "0302990065")
                            ldblTarifaBrancaLAtual_ForaP = BuscaValorItem(lstrFaturasItensSev, "0302990066")
                            ldblTarifaBrancaResidu_Ponta = BuscaValorItem(lstrFaturasItensSev, "0302990067")
                            ldblTarifaBrancaResidu_Inter = BuscaValorItem(lstrFaturasItensSev, "0302990068")
                            ldblTarifaBrancaResidu_ForaP = BuscaValorItem(lstrFaturasItensSev, "0302990069")
                            ldblTarifaBrancakWh_Ponta = BuscaValorItem(lstrFaturasItensSev, "0302010190")
                            ldblTarifaBrancakWh_Inter = BuscaValorItem(lstrFaturasItensSev, "0302010290")
                            ldblTarifaBrancakWh_ForaP = BuscaValorItem(lstrFaturasItensSev, "0302010390")
                            '
                            'Leituras e Consumos
                            '
                            ldblLeitAtual = BuscaVlrItem(lstrFaturasItensSev, "0302990039") 'leit
                            ldblLeitAnter = BuscaVlrItem(lstrFaturasItensSev, "0302990040") 'leituraant
                            ldblConsFatura = BuscaVlrItem(lstrFaturasItensSev, "030201009") 'consfat
                            ldblConsResiduo = BuscaVlrItem(lstrFaturasItensSev, "0302020998") 'consresiduo

                            'ldblConsMedido = BuscaVlrItem(lstrFaturasItensSev, "030201008") 'conslido

                            If ldblConsResiduo > 0 Then
                                ldblConsMedido = BuscaVlrItem(lstrFaturasItensSev, "0302990039") - BuscaVlrItem(lstrFaturasItensSev, "0302990040") 'conslido = leit - leituraant
                            Else
                                ldblConsMedido = BuscaVlrItem(lstrFaturasItensSev, "0302990039") - BuscaVlrItem(lstrFaturasItensSev, "0302990040") 'conslido = leit - leituraant
                            End If

                            If ldblConsMedido < 0 Then ldblConsMedido *= -1
                            ldblVlrConsumo = BuscaVlrItem(lstrFaturasItensSev, "030202009") 'valorconsumo

                            If lintTarifaBranca = 1 Then
                                ldblVlrConsumo = ldblVlrConsumo + ldblTarifaBrancakWh_Ponta + ldblTarifaBrancakWh_Inter + ldblTarifaBrancakWh_ForaP
                                ldblConsFatura = ldblConsFatura + ldblTarifaBrancakWh_Ponta + ldblTarifaBrancakWh_Inter + ldblTarifaBrancakWh_ForaP
                            End If

                            llngDiasConsumo = DateDiff(Microsoft.VisualBasic.DateInterval.Day, ldteFaturasLeitAnterior, ldteFaturasLeitura)
                            ldblVlrDiario = Arredondar(ldblVlrConsumo / llngDiasConsumo, 2)
                            ldblConDiario = Arredondar(ldblConsFatura / llngDiasConsumo, 0)
                            MaiorMenorMediaConsumos(llngFaturasUnidId, llngFaturasConsId, ldblConsMedido, ldblMaiorConsumo, ldblMenorConsumo, ldblMediaConsumo, lstrMesAnoMaior, lstrMesAnoMenor)

                            ldblReversoLAtual = 0
                            ldblReversoLAnter = 0
                            ldblReversokWhRec = 0
                            ldblReversokWhFat = 0
                            ldblReversokWhRes = 0
                            ldblReversokWh = 0
                            ldblkWhEnviado = 0
                            ldblkWhSaldo = 0

                            If ldblMicroGeracao = 1 Or ldblMicroGeracaoDistr = 1 Then
                                '
                                ' Reverso
                                '
                                ldblReversoLAtual = BuscaVlrItem(lstrFaturasItensSev, "0302990049")
                                ldblReversoLAnter = BuscaVlrItem(lstrFaturasItensSev, "0302990050")
                                ldblReversokWhRec = BuscaVlrItem(lstrFaturasItensSev, "0302020991")
                                ldblReversokWhRes = BuscaVlrItem(lstrFaturasItensSev, "0302020997")

                                If ldblMicroGeracaoDistr = 1 Then
                                    If lstrMesAno >= "01/2023" Then
                                        ldblReversokWhFat = BuscaVlrItem(lstrFaturasItensSev, "0302020992")
                                    Else
                                        ldblReversokWhFat = BuscaVlrItem(lstrFaturasItensSev, "0302020995")
                                    End If

                                    'If ldblMicroGeracao = 1 Then
                                    ldblkWhSaldo = BuscaVlrItem(lstrFaturasItensSev, "0302020990")
                                    'Else
                                    'ldblkWhSaldo = BuscaVlrItem(lstrFaturasItensSev, "0302020997")
                                    'End If

                                Else
                                    If lstrMesAno >= "01/2023" Then
                                        ldblReversokWhFat = BuscaVlrItem(lstrFaturasItensSev, "0302020992")
                                    Else
                                        ldblReversokWhFat = BuscaVlrItem(lstrFaturasItensSev, "0302020995")
                                    End If

                                    ldblkWhEnviado = BuscaVlrItem(lstrFaturasItensSev, "0302021000")

                                    'If ldblMicroGeracao = 1 Then
                                    ldblkWhSaldo = BuscaVlrItem(lstrFaturasItensSev, "0302020990")
                                    'Else
                                    'ldblkWhSaldo = BuscaVlrItem(lstrFaturasItensSev, "0302020997")
                                    'End If

                                End If

                                'ldblReversokWhFat = BuscaVlrItem(lstrFaturasItensSev, "0302020995")
                                'If ldblConsMedido > ldblReversokWhRec Then
                                'ldblReversokWhFat = ldblReversokWhRec 'Reverso Compensado
                                'Else
                                'ldblReversokWhFat = ldblReversokWhRec - ldblConsMedido
                                'End If

                                ldblReversokWh = BuscaVlrItem(lstrFaturasItensSev, "0302020996")

                            End If
                            '
                            ' Irrigacao
                            '
                            ldblIrrigacaoLAtual = BuscaVlrItem(lstrFaturasItensSev, "0302990051")
                            ldblIrrigacaoLAnter = BuscaVlrItem(lstrFaturasItensSev, "0302990052")
                            ldblIrrigacaokWh = BuscaVlrItem(lstrFaturasItensSev, "0302990053")
                            ldblIrrigacaokWhFat = BuscaVlrItem(lstrFaturasItensSev, "0302990054")
                            '
                            'Tributos
                            'Icms
                            ldblBaseIcms1 = BuscaVlrItem(lstrFaturasItensSev, "0302030001") 'baseicms
                            ldblAliqIcms1 = BuscaVlrItem(lstrFaturasItensSev, "0302030002") 'aliqicms
                            ldblValrIcms1 = BuscaVlrItem(lstrFaturasItensSev, "0302030009") 'icms
                            ldblBaseIcms2 = BuscaVlrItem(lstrFaturasItensSev, "0302030003") 'baseicms1
                            ldblAliqIcms2 = BuscaVlrItem(lstrFaturasItensSev, "0302030013") 'aliqicms1
                            ldblValrIcms2 = BuscaVlrItem(lstrFaturasItensSev, "0302030010") 'icms1
                            'Pis
                            ldblBasePis = BuscaVlrItem(lstrFaturasItensSev, "0302020033") 'basepis
                            ldblAliqPis = BuscaVlrItem(lstrFaturasItensSev, "0302990303") 'aliqpis
                            ldblValrPis = BuscaVlrItem(lstrFaturasItensSev, "0302020029") 'valor pis
                            'Cofins
                            ldblBaseCofins = BuscaVlrItem(lstrFaturasItensSev, "0302020034") 'basecofins
                            ldblAliqCofins = BuscaVlrItem(lstrFaturasItensSev, "0302990304") 'aliqcofins
                            ldblValrCofins = BuscaVlrItem(lstrFaturasItensSev, "0302020030") 'valor cofins
                            'Outros
                            ldblTotNfTrib = (BuscaVlrItem(lstrFaturasItensSev, "030202009") + BuscaVlrItem(lstrFaturasItensSev, "0302030009") + BuscaVlrItem(lstrFaturasItensSev, "0302020029") + BuscaVlrItem(lstrFaturasItensSev, "0302020030")) 'valor total com tributos
                            ldblBaseIcmsTotal = BuscaVlrItem(lstrFaturasItensSev, "0302030015") 'baseicmstotal
                            ldblValrIcmsTotal = BuscaVlrItem(lstrFaturasItensSev, "0302030014") 'vlricmstotal
                            'Indicador de continuidade
                            ldblDecMeta = BuscaVlrItem(lstrFaturasItensSev, "0302080101") 'dec_meta
                            ldblDecReal = BuscaVlrItem(lstrFaturasItensSev, "0302080001") 'dec_rea
                            ldblFecMeta = BuscaVlrItem(lstrFaturasItensSev, "0302080102") 'fec_meta
                            ldblFecReal = BuscaVlrItem(lstrFaturasItensSev, "0302080002") 'fec_rea
                            ldblDicMeta = BuscaVlrItem(lstrFaturasItensSev, "0302080103") 'dic_meta
                            ldblDicReal = BuscaVlrItem(lstrFaturasItensSev, "0302080003") 'dic_rea
                            ldblFicMeta = BuscaVlrItem(lstrFaturasItensSev, "0302080104") 'fic_meta
                            ldblFicReal = BuscaVlrItem(lstrFaturasItensSev, "0302080004") 'fic_rea
                            ldblDmicMet = BuscaVlrItem(lstrFaturasItensSev, "0302080105") 'dmic
                            ldblDmicRea = BuscaVlrItem(lstrFaturasItensSev, "0302080005") 'dmic
                            lstrRefICon = BuscaRefItem(lstrFaturasItensSev, "0302080099") 'refindicador
                            'Retenção tributária
                            ldblRetIrpj = BuscaVlrItem(lstrFaturasItensSev, "9090000004") 'ret_irpj
                            ldblRetPis = BuscaVlrItem(lstrFaturasItensSev, "9090000001") 'ret_pis
                            ldblRetCsll = BuscaVlrItem(lstrFaturasItensSev, "9090000003") 'ret_csll
                            ldblRetCofins = BuscaVlrItem(lstrFaturasItensSev, "9090000002") 'ret_cofins
                            'Composição da fatura
                            ldblCompEnergia = 0 'comp_energia
                            ldblCompTransmissao = 0 'comp_transmissao
                            ldblCompDistribuicao = 0 'comp_distribuicao
                            ldblCompEncargosSetoriais = 0 'comp_encargos_setoriais
                            'ldblCompEnergia = BuscaVlrItem(lstrFaturasItensSev, "0302090001") 'comp_energia
                            'ldblCompTransmissao = BuscaVlrItem(lstrFaturasItensSev, "0302090002") 'comp_transmissao
                            'ldblCompDistribuicao = BuscaVlrItem(lstrFaturasItensSev, "0302090003") 'comp_distribuicao
                            'ldblCompEncargosSetoriais = BuscaVlrItem(lstrFaturasItensSev, "0302090004") 'comp_encargos_setoriais
                            'Outros
                            lstrOcorrencia = BuscaRefItem(lstrFaturasItensSev, "90410000") 'ocorrencias

                            If strLocalProjeto.ToUpper() = "API" Then
                                objTempFatura.SEGVIA = 0
                            ElseIf strLocalProjeto.ToUpper() = "FORM" Then
                                objTempFatura.SEGVIA = IIf(frmImpFaturas.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Checked, 3, aintSegVia)
                            End If

                            objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura

                            'Dados da Fatura
                            objTempFatura.NUMNF = ldblFaturasNumNf
                            objTempFatura.CFOP = ldblFaturasCfop
                            objTempFatura.ZONA = IIf(String.IsNullOrEmpty(lstrFaturasZona), " ", lstrFaturasZona)
                            objTempFatura.LIVRO = IIf(String.IsNullOrEmpty(lstrFaturasLivro), " ", lstrFaturasLivro)
                            objTempFatura.CONTA = IIf(String.IsNullOrEmpty(lstrFaturasConta), " ", lstrFaturasConta)
                            objTempFatura.CONS_ID = llngFaturasConsId
                            objTempFatura.UNID_ID = llngFaturasUnidId
                            objTempFatura.ROTA = IIf(String.IsNullOrEmpty(lstrFaturasRota), " ", lstrFaturasRota)
                            objTempFatura.VALORTOT = ldblFaturasValorTot
                            objTempFatura.VALORLIQ = ldblFaturasValorLiq
                            objTempFatura.CODCLAS = IIf(String.IsNullOrEmpty(lstrFaturasCodClas), " ", lstrFaturasCodClas)
                            objTempFatura.DATAVENC = VB6.Format(ldteFaturasVencimento, "yyyy-MM-dd")
                            objTempFatura.BANIDENT = IIf(String.IsNullOrEmpty(lstrFaturasBanIdent), " ", lstrFaturasBanIdent)
                            objTempFatura.BANCO_FATUR = IIf(String.IsNullOrEmpty(lstrFaturasBancoFatur), " ", lstrFaturasBancoFatur)
                            objTempFatura.MESANO = IIf(String.IsNullOrEmpty(lstrFaturasMesAno), " ", lstrFaturasMesAno)
                            objTempFatura.MESANOREF = llngFaturasMesAnoRef
                            objTempFatura.DATAAPR = VB6.Format(ldteFaturasApresentacao, "yyyy-MM-dd")
                            objTempFatura.DATAEMISSAO = VB6.Format(ldteFaturasEmissao, "yyyy-MM-dd")
                            objTempFatura.DATAPROXLEIT = VB6.Format(ldteFaturasProxLeit, "yyyy-MM-dd")
                            objTempFatura.DATALEIT = VB6.Format(ldteFaturasLeitura, "yyyy-MM-dd")
                            objTempFatura.DATALEITANT = VB6.Format(ldteFaturasLeitAnterior, "yyyy-MM-dd")
                            objTempFatura.FASE = IIf(String.IsNullOrEmpty(lstrFaturasFase), " ", lstrFaturasFase)
                            objTempFatura.TA = IIf(String.IsNullOrEmpty(lstrFaturasTa), " ", lstrFaturasTa)
                            objTempFatura.TENSAO = IIf(String.IsNullOrEmpty(lstrFaturasTensao), " ", lstrFaturasTensao)
                            objTempFatura.CODHASH = IIf(String.IsNullOrEmpty(lstrFaturasCodHash), " ", lstrFaturasCodHash)
                            objTempFatura.CODBARRA = IIf(String.IsNullOrEmpty(lstrFaturasCodBarra), " ", lstrFaturasCodBarra)
                            objTempFatura.DVCODBARRA = IIf(String.IsNullOrEmpty(lstrFaturasDvCodBarra), " ", lstrFaturasDvCodBarra)
                            objTempFatura.LINHADIGITAVEL = IIf(String.IsNullOrEmpty(lstrFaturaLinhaDigitavel), " ", lstrFaturaLinhaDigitavel)
                            objTempFatura.DESCCLASSE = IIf(String.IsNullOrEmpty(lstrClasseDescricao), " ", lstrClasseDescricao)
                            objTempFatura.NUM_MED = IIf(String.IsNullOrEmpty(lstrFaturasNumMed), " ", lstrFaturasNumMed)
                            objTempFatura.CONST_MED = ldblFaturasConstMed
                            objTempFatura.FLGST = ""
                            objTempFatura.CANCELADA_MESANO = lstrFaturaCanceladaMesano
                            objTempFatura.CANCELADA_NUMNF = ldlbFaturaCanceladaNumNF

                            'Dados da Unidade
                            objTempFatura.CPF_CNPJ = IIf(llngUnidbConsId <> llngFaturasConsId, lstrConsumidorCgc, lstrUnidbCpfCnpj)
                            objTempFatura.RG_IE = IIf(llngUnidbConsId <> llngFaturasConsId, IIf(Len(lstrConsumidorInsc) > 0, lstrConsumidorInsc, lstrConsumidorRg), IIf(Len(lstrUnidbInsc) > 0, lstrUnidbInsc, lstrUnidbRg))
                            objTempFatura.CGC = IIf(String.IsNullOrEmpty(lstrConsumidorCgc), " ", lstrConsumidorCgc)
                            objTempFatura.INSC = IIf(Len(lstrConsumidorInsc) > 0, lstrConsumidorInsc, lstrConsumidorRg)
                            objTempFatura.AGENC = IIf(String.IsNullOrEmpty(lstrUnidbAgenc), " ", lstrUnidbAgenc)
                            objTempFatura.CC = IIf(String.IsNullOrEmpty(lstrUnidbCC), " ", lstrUnidbCC)
                            objTempFatura.NOMECONS = IIf(String.IsNullOrEmpty(lstrUnidbNome), " ", lstrUnidbNome)
                            objTempFatura.REFCONS = IIf(llngUnidbConsId <> llngFaturasConsId, lstrConsumidorNome, lstrUnidbNome)
                            objTempFatura.NOME_CONJUGE = IIf(String.IsNullOrEmpty(lstrConsumidorConjuge), " ", lstrConsumidorConjuge)
                            objTempFatura.CIDADE = IIf(String.IsNullOrEmpty(lstrUnidbCidade), " ", lstrUnidbCidade)
                            objTempFatura.DISTRITO = IIf(String.IsNullOrEmpty(lstrUnidbDistrito), " ", lstrUnidbDistrito)
                            objTempFatura.BAIRRO = IIf(String.IsNullOrEmpty(lstrUnidbBairro), " ", lstrUnidbBairro)
                            objTempFatura.RUA = IIf(String.IsNullOrEmpty(lstrUnidbEnd), " ", lstrUnidbEnd)
                            objTempFatura.NUMERO = IIf(String.IsNullOrEmpty(lstrUnidbNumero), " ", lstrUnidbNumero)
                            objTempFatura.COMPLEMENT = IIf(String.IsNullOrEmpty(lstrUnidbComplement), " ", lstrUnidbComplement)
                            objTempFatura.CEP = IIf(String.IsNullOrEmpty(lstrUnidbCep), " ", lstrUnidbCep)
                            objTempFatura.UF = IIf(String.IsNullOrEmpty(lstrUnidbUf), " ", lstrUnidbUf)
                            objTempFatura.QUADRA = IIf(String.IsNullOrEmpty(lstrUnidbQuadra), " ", lstrUnidbQuadra)
                            objTempFatura.LOTE = IIf(String.IsNullOrEmpty(lstrUnidbLote), " ", lstrUnidbLote)
                            objTempFatura.ENTREGA = llngUnidbEntrega
                            objTempFatura.CID_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidbCidEntrega), " ", lstrUnidbCidEntrega)
                            objTempFatura.DIS_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidbDisEntrega), " ", lstrUnidbDisEntrega)
                            objTempFatura.BAI_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidbBaiEntrega), " ", lstrUnidbBaiEntrega)
                            objTempFatura.END_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidbEndEntrega), " ", lstrUnidbEndEntrega)
                            objTempFatura.NUM_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidbNumEntrega), " ", lstrUnidbNumEntrega)
                            objTempFatura.COMPL_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidbComplEntrega), " ", lstrUnidbComplEntrega)
                            objTempFatura.CEP_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidbCepEntrega), " ", lstrUnidbCepEntrega)
                            objTempFatura.UF_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidbUfEntrega), " ", lstrUnidbUfEntrega)
                            objTempFatura.QUA_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidbQuaEntrega), " ", lstrUnidbQuaEntrega)
                            objTempFatura.LOT_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidbLotEntrega), " ", lstrUnidbLotEntrega)
                            objTempFatura.GRUPO = IIf(String.IsNullOrEmpty(lstrUnidbGrupo), " ", lstrUnidbGrupo)

                            'Leituras e Consumos
                            objTempFatura.LEIT = ldblLeitAtual
                            objTempFatura.LEITURAANT = ldblLeitAnter
                            objTempFatura.CONSFATURADO = ldblConsFatura
                            objTempFatura.CONSLIDO = ldblConsMedido
                            objTempFatura.CONSRESIDUO = ldblConsResiduo
                            objTempFatura.VALORCONSUMO = ldblVlrConsumo
                            objTempFatura.DIASCONSUMO = llngDiasConsumo
                            objTempFatura.VLRDIARIO = ldblVlrDiario
                            objTempFatura.MEDIACONSUMODIARIO = ldblConDiario
                            objTempFatura.MAIORCONSUMO = ldblMaiorConsumo
                            objTempFatura.MESMAIORCONSUMO = IIf(String.IsNullOrEmpty(lstrMesAnoMaior), " ", lstrMesAnoMaior)
                            objTempFatura.MENORCONSUMO = ldblMenorConsumo
                            objTempFatura.MESMENORCONSUMO = IIf(String.IsNullOrEmpty(lstrMesAnoMenor), " ", lstrMesAnoMenor)
                            objTempFatura.MEDIACONSUMO3MESES = ldblMediaConsumo

                            ' Reverso
                            objTempFatura.LEIT_REVERSO_ATUAL = ldblReversoLAtual
                            objTempFatura.LEIT_REVERSO_ANTER = ldblReversoLAnter
                            objTempFatura.KWH_REVERSO_FAT = ldblReversokWhFat
                            objTempFatura.KWH_REVERSO_RES = ldblReversokWhRes
                            objTempFatura.KWH_REVERSO_LID = ldblReversokWh
                            objTempFatura.KWH_REVERSO_REC = ldblReversokWhRec
                            objTempFatura.KWH_ENVIADO = ldblkWhEnviado
                            objTempFatura.KWH_SALDO = ldblkWhSaldo
                            objTempFatura.MICRO_GERACAO = ldblMicroGeracao

                            ' Irrigacao
                            objTempFatura.LEIT_IRRIGANTE_ATUAL = ldblIrrigacaoLAtual
                            objTempFatura.LEIT_IRRIGANTE_ANTERIOR = ldblIrrigacaoLAnter
                            objTempFatura.KWH_IRRIGANTE_FATURADO = ldblIrrigacaokWhFat
                            objTempFatura.KWH_IRRIGANTE_LIDO = ldblIrrigacaokWh
                            objTempFatura.IRRIGACAO_AQUICULTURA = lintIrrigacao

                            ' Tarifa Branca
                            objTempFatura.TARIFA_BRANCA = lintTarifaBranca
                            objTempFatura.LEITURA_ANTER_PONTA = ldblTarifaBrancaLAnter_Ponta
                            objTempFatura.LEITURA_ATUAL_PONTA = ldblTarifaBrancaLAtual_Ponta
                            objTempFatura.LEITURA_ANTER_INTER = ldblTarifaBrancaLAnter_Inter
                            objTempFatura.LEITURA_ATUAL_INTER = ldblTarifaBrancaLAtual_Inter
                            objTempFatura.LEITURA_ANTER_FORAP = ldblTarifaBrancaLAnter_ForaP
                            objTempFatura.LEITURA_ATUAL_FORAP = ldblTarifaBrancaLAtual_ForaP
                            objTempFatura.RESIDUO_PONTA = ldblTarifaBrancaResidu_Ponta
                            objTempFatura.RESIDUO_INTER = ldblTarifaBrancaResidu_Inter
                            objTempFatura.RESIDUO_FORAP = ldblTarifaBrancaResidu_ForaP
                            objTempFatura.CONSUMO_PONTA = ldblTarifaBrancakWh_Ponta
                            objTempFatura.CONSUMO_INTER = ldblTarifaBrancakWh_Inter
                            objTempFatura.CONSUMO_FORAP = ldblTarifaBrancakWh_ForaP

                            ' Tributos
                            ' Icms
                            objTempFatura.BASEICMS = ldblBaseIcms1
                            objTempFatura.ALIQICMS = ldblAliqIcms1
                            objTempFatura.VLRICMS = ldblValrIcms1
                            objTempFatura.BASEICMS1 = ldblBaseIcms2
                            objTempFatura.ALIQICMS1 = ldblAliqIcms2
                            objTempFatura.VLRICMS1 = ldblValrIcms2
                            'Pis                       
                            objTempFatura.BASEPIS = ldblBasePis
                            objTempFatura.ALIQPIS = ldblAliqPis
                            objTempFatura.VLRPIS = ldblValrPis
                            'Cofins                        
                            objTempFatura.BASECOFINS = ldblBaseCofins
                            objTempFatura.ALIQCOFINS = ldblAliqCofins
                            objTempFatura.VLRCOFINS = ldblValrCofins
                            'Outros                        
                            objTempFatura.VLRCONSUTRIB = ldblTotNfTrib
                            objTempFatura.BASEICMSTOTAL = ldblBaseIcmsTotal
                            objTempFatura.VLRICMSTOTAL = ldblValrIcmsTotal

                            'Indicador de Continuidade 
                            objTempFatura.DEC_META = ldblDecMeta
                            objTempFatura.FEC_META = ldblFecMeta
                            objTempFatura.DIC_META = ldblDicMeta
                            objTempFatura.FIC_META = ldblFicMeta
                            objTempFatura.DMIC = ldblDmicMet
                            objTempFatura.DEC_REA = ldblDecReal
                            objTempFatura.FEC_REA = ldblFecReal
                            objTempFatura.DIC_REA = ldblDicReal
                            objTempFatura.FIC_REA = ldblFicReal
                            objTempFatura.DMIC_REA = ldblDmicRea
                            objTempFatura.REFINDICADOR = IIf(String.IsNullOrEmpty(lstrRefICon), " ", lstrRefICon)
                            'Retenção Tributária                        
                            objTempFatura.RET_IRPJ = ldblRetIrpj
                            objTempFatura.RET_PIS = ldblRetPis
                            objTempFatura.RET_CSLL = ldblRetCsll
                            objTempFatura.RET_COFINS = ldblRetCofins
                            'Composição da Fatura                       
                            objTempFatura.COMP_ENERGIA = ldblCompEnergia
                            objTempFatura.COMP_TRANSMISSAO = ldblCompTransmissao
                            objTempFatura.COMP_DISTRIBUICAO = ldblCompDistribuicao
                            objTempFatura.COMP_ENCARGOS_SETORIAIS = ldblCompEncargosSetoriais


                            'Reaviso
                            If gstrReaviso_na_fatura = "S" Then
                                Dim strReaviso As String = MontaReaviso(llngFaturasConsId, llngFaturasUnidId, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, lstrFaturasCodClas, ldteFaturasApresentacao, ldblFaturasNumNf, Convert.ToInt32(Convert.ToDateTime("01/" + lstrMesAno).ToString("yyyyMM")))

                                If strReaviso = "0000-00-00; 0; 0.00; ''; ''; ''; " Then

                                    objTempFatura.REAVISO_VECTO = Convert.ToDateTime("01/01/0001")
                                    objTempFatura.REAVISO_NUMNF = 0
                                    objTempFatura.REAVISO_VALOR = 0
                                    objTempFatura.REAVISO_MESANO = String.Empty
                                    objTempFatura.REAVISO_IDENTIFICADOR = String.Empty
                                    objTempFatura.REAVISO_MENSAGEM = String.Empty
                                Else
                                    Dim strReavisos As String() = strReaviso.Split(";")

                                    objTempFatura.REAVISO_VECTO = Convert.ToDateTime(strReavisos(0).Replace("'", "").Trim())
                                    objTempFatura.REAVISO_NUMNF = Convert.ToDouble(strReavisos(1).Replace("'", "").Trim())
                                    objTempFatura.REAVISO_VALOR = Convert.ToDouble(strReavisos(2).Replace("'", "").Replace(".", ",").Trim())
                                    objTempFatura.REAVISO_MESANO = strReavisos(3).Replace("'", "").Trim()
                                    objTempFatura.REAVISO_IDENTIFICADOR = strReavisos(4).Replace("'", "").Trim()
                                    objTempFatura.REAVISO_MENSAGEM = strReavisos(5).Replace("'", "").Trim()
                                End If
                            Else
                                objTempFatura.REAVISO_VECTO = Convert.ToDateTime("01/01/0001")
                                objTempFatura.REAVISO_NUMNF = 0
                                objTempFatura.REAVISO_VALOR = 0
                                objTempFatura.REAVISO_MESANO = String.Empty
                                objTempFatura.REAVISO_IDENTIFICADOR = String.Empty
                                objTempFatura.REAVISO_MENSAGEM = String.Empty
                            End If

                            'Outros
                            objTempFatura.MENSAGEM = IIf(String.IsNullOrEmpty(lstrMensagem), " ", lstrMensagem)
                            objTempFatura.ITENSIMP = IIf(String.IsNullOrEmpty(lstrFaturasItensImp), " ", lstrFaturasItensImp)
                            objTempFatura.MENSAGEM_BANDEIRA = IIf(String.IsNullOrEmpty(lstrFaturasMensagemBandeira), " ", lstrFaturasMensagemBandeira)
                            objTempFatura.BANDEIRA = llngBandeira

                            If strLocalProjeto.ToUpper() = "API" Then
                                objTempFatura.FRENTEVERSO = 0
                            ElseIf strLocalProjeto.ToUpper() = "FORM" Then
                                objTempFatura.FRENTEVERSO = IIf(frmImpFaturas.chkFrenteVerso.CheckState = System.Windows.Forms.CheckState.Checked, 1, 0)
                            End If

                            objTempFatura.OCORRENCIA = IIf(String.IsNullOrEmpty(lstrOcorrencia), " ", lstrOcorrencia)
                            objTempFatura.SALDOACUMULADO = ldblSaldoAcumulado
                            objTempFatura.SEQUENCIA = lintSequenciaFaturas
                            objTempFatura.MATRICULA = lintConsumidorMatricula

                            lInsert(objTempFatura)

                            lMontarCodBarrasEPixGrupoB(objTempFatura)

                            objTempFatura.CPF_CNPJ = lEsconderNumerosCpfCnpj(IIf(llngUnidbConsId <> llngFaturasConsId, lstrConsumidorCgc, lstrUnidbCpfCnpj))

                            lUpdate_2(objTempFatura)

                            If strLocalProjeto.ToUpper() = "FORM" Then
                                BarraProgresso((frmImpFaturas.ProgressBar), (frmImpFaturas.lblPerc), (frmImpFaturas.lblInfo), 1)
                            End If

                            If Len(Trim(astrMesAno)) = 0 Then
                                astrMesAno = lstrMesAno
                            End If

                            llngFaturasAnoMes_Fat = Convert.ToDateTime("01/" + astrMesAno).ToString("yyyyMM")

                            'VerificaCriaTempItemFatura(strLocalProjeto, ldblFaturasNumNf, astrMesAno, llngFaturasAnoMes_Fat, "B")

                        Next

                        If strLocalProjeto.ToUpper() = "FORM" Then

                            'FATURAS PENDENTES
                            frmImpFaturas.lblInfo.Text = "Processando faturas pendentes..."
                            frmImpFaturas.lblInfo.Refresh()

                        End If

                        For llngConta = 0 To 11

                            objTempFatura.AUXIMP = llngConta
                            lUpdate(objTempFatura)

                        Next llngConta

                        If strLocalProjeto.ToUpper() = "API" Then

                            If ldlbFaturaCanceladaNumNF = 0 Then
                                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                                lUpdate_1(objTempFatura)
                            End If

                        ElseIf strLocalProjeto.ToUpper() = "FORM" Then

                            If frmImpFaturas.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Checked Then
                                If ldlbFaturaCanceladaNumNF = 0 Then
                                    objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                                    lUpdate_1(objTempFatura)
                                End If
                            End If

                            frmImpFaturas.Cursor = System.Windows.Forms.Cursors.Arrow
                            frmImpFaturas.lblInfo.Text = " "

                            lstrNomeRptFat = String.Empty

                            If aintBarras = 1 Then
                                lstrNomeRptFat = "rptFaturaEflulGrupoBBarras"
                            Else
                                lstrNomeRptFat = "rptFaturaEflulGrupoB"
                            End If

                            If frmImpFaturas.chkFrenteVerso.CheckState = System.Windows.Forms.CheckState.Unchecked Then

                                If aintSegVia = 0 Then

                                    If frmImpFaturas.chkVerso.CheckState = 1 Then
                                        lstrNomeRptFat = "rptFaturaEflulGrupoBVerso"
                                    End If

                                End If

                            End If

                            If frmImpFaturas.chk_Reaviso.CheckState = System.Windows.Forms.CheckState.Checked Then
                                lstrNomeRptFat = "rptFaturaEflulGrupoB_Reaviso"
                            End If

                            If frmImpFaturas.chkEnviarFaturaEmail.CheckState = System.Windows.Forms.CheckState.Checked Then
                                frmImpFaturas.lPrintEmail(lstrNomeRptFat)
                            ElseIf frmImpFaturas.chkFaturaIndividualPDF.CheckState = System.Windows.Forms.CheckState.Checked Then
                                frmImpFaturas.lPrintIndividual(lstrNomeRptFat)
                            Else
                                frmImpFaturas.lPrint(lstrNomeRptFat, IIf(frmImpFaturas.sCaminhoPDF = "", False, True))
                            End If

                            objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                            lDelete(objTempFatura)

                            objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                            lDelete(objTempFaturaBImagePixBarras)

                        End If

                    Else
                        MessageBox.Show("Não foi encontrado nenhuma fatura!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                    End If

                End If

            End If

        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempFaturaA As New entidadeTempFaturaA
                Dim repositorioTempFaturaA As New repositorioTempFaturaA

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: GeraFaturaGrupoB" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub

        End Try


    End Sub

    Public Function lPrintAPIGrupoB(ByVal strUsuarioAPI As String) As entidadeTempFaturaAPIB

        Dim vZona As String
        Dim vLivro As String
        Dim vConta As String
        Dim vCodBarcode
        Dim iNossoNumero As Long

        Dim dt As DataTable
        Dim dc As DataColumn

        Dim regraNegocioPix As New regraNegocioPIX
        Dim regraNegocioQRCODE As New regraNegocioQRCODE

        Dim objTempFaturaAPIB As New entidadeTempFaturaAPIB
        Dim repositorioTempFaturaAPIB As New repositorioTempFaturaAPIB

        Dim objTempFatura As New entidadeTempFatura
        Dim repositorioTempFatura As New repositorioTempFatura

        Dim objConsumos As New entidadeConsumos
        Dim repositorioConsumos As New repositorioConsumos

        Try

            objTempFatura.NOMEMAQUINA = strUsuarioAPI

            dt = repositorioTempFatura.Select(objTempFatura)

            If dt.Rows.Count > 0 Then

                dc = New DataColumn("LEITURA_PIX", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESANOME", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESASIGLA", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESACNPJ", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESAENDERECO", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESAMUNICIPIO", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESAUF", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESACEP", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESA0800", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESAFAX", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESAFONE", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESAEMAIL", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESASITE", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("ACEITE_BANCO", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("AGENCIA_CODBENEFICIARIO_BANCO", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("CARTEIRA_BANCO", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("ESPECIE_BANCO", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("ESPECIES_BANCO", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("NOME_BANCO", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("NOSSONUMERO_BANCO", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("NUMERO_BANCO", GetType(String))
                dt.Columns.Add(dc)

                For Each dr As DataRow In dt.Rows

                    vCodBarcode = dr("CODBARRA")
                    vZona = dr("ZONA")
                    vLivro = dr("LIVRO")
                    vConta = dr("CONTA")

                    dr("LEITURA_PIX") = regraNegocioPix.GerarPix(Convert.ToString(GetConfig("pix.chave")), Convert.ToString(GetConfig("pix.nome.empresa")), Convert.ToString(GetConfig("pix.cidade.empresa")), Convert.ToString(dr("VALORTOT")).Replace(",", "."))
                    dr("EMPRESANOME") = gstrEmpresa_Nome
                    dr("EMPRESASIGLA") = gstrEmpresa_Sigla
                    dr("EMPRESACNPJ") = gstrEmpresa_CNPJ
                    dr("EMPRESAENDERECO") = gstrEmpresa_Endereco
                    dr("EMPRESAMUNICIPIO") = gstrEmpresa_Cidade
                    dr("EMPRESAUF") = gstrEmpresa_UF
                    dr("EMPRESACEP") = GetConfig("empresa.cep")
                    dr("EMPRESA0800") = gstrEmpresa_0800
                    dr("EMPRESAFAX") = GetConfig("empresa.fax")
                    dr("EMPRESAFONE") = GetConfig("empresa.fone")
                    dr("EMPRESAEMAIL") = GetConfig("empresa.email")
                    dr("EMPRESASITE") = gstrEmpresa_Fone

                    If vCodBarcode <> "" And vCodBarcode <> "0" Then

                        If GetConfig("numero.banco.faturas.boleto") <> "104" Then
                            iNossoNumero = Mid(vCodBarcode, 35, 7)
                        Else
                            iNossoNumero = Mid(vCodBarcode, 36, 7)
                            iNossoNumero = "14" & PreparaCampo(iNossoNumero, 0, 15, "0")
                        End If

                        dr("ACEITE_BANCO") = GetConfig("aceite.banco.faturas.boleto")
                        dr("AGENCIA_CODBENEFICIARIO_BANCO") = GetConfig("agencia.codbeneficiario.banco.faturas.boleto")
                        dr("CARTEIRA_BANCO") = GetConfig("carteira.banco.faturas.boleto")
                        dr("ESPECIE_BANCO") = GetConfig("especie.banco.faturas.boleto")
                        dr("ESPECIES_BANCO") = GetConfig("especies.banco.faturas.boleto")
                        dr("NOME_BANCO") = GetConfig("nome.banco.faturas.boleto")
                        dr("NOSSONUMERO_BANCO") = iNossoNumero
                        dr("NUMERO_BANCO") = GetConfig("numero.banco.faturas.boleto")

                    Else

                        dr("ACEITE_BANCO") = GetConfig("aceite.banco.faturas.boleto")
                        dr("AGENCIA_CODBENEFICIARIO_BANCO") = GetConfig("agencia.codbeneficiario.banco.faturas.boleto")
                        dr("CARTEIRA_BANCO") = GetConfig("carteira.banco.faturas.boleto")
                        dr("ESPECIE_BANCO") = GetConfig("especie.banco.faturas.boleto")
                        dr("ESPECIES_BANCO") = GetConfig("especies.banco.faturas.boleto")
                        dr("NOME_BANCO") = GetConfig("nome.banco.faturas.boleto")
                        dr("NOSSONUMERO_BANCO") = GetConfig("nosso.numero.banco.faturas.boleto")
                        dr("NUMERO_BANCO") = GetConfig("numero.banco.faturas.boleto")

                    End If

                    objConsumos.ZONA = vZona
                    objConsumos.LIVRO = vLivro
                    objConsumos.CONTA = vConta

                    objTempFaturaAPIB.entidadeConsumos = repositorioConsumos.Select_4(objConsumos)

                Next

                objTempFaturaAPIB = repositorioTempFaturaAPIB.ConvertDataTableToEntity(dt)

            End If

        Catch ex As Exception

        End Try

        lPrintAPIGrupoB = objTempFaturaAPIB
    End Function

    Public Function lPrintAPIGrupoA(ByVal strUsuarioAPI As String) As entidadeTempFaturaAPIA

        Dim vZona As String
        Dim vLivro As String
        Dim vConta As String
        Dim vCodBarcode
        Dim iNossoNumero As Long

        Dim dt As DataTable
        Dim dc As DataColumn

        Dim regraNegocioPix As New regraNegocioPIX
        Dim regraNegocioQRCODE As New regraNegocioQRCODE

        Dim objTempFaturaA As New entidadeTempFaturaA
        Dim repositorioTempFaturaA As New repositorioTempFaturaA

        Dim objTempFaturaAPIA As New entidadeTempFaturaAPIA
        Dim repositorioTempFaturaAPIA As New repositorioTempFaturaAPIA

        Try

            objTempFaturaA.NOMEMAQUINA = strUsuarioAPI

            dt = repositorioTempFaturaA.Select(objTempFaturaA)

            If dt.Rows.Count > 0 Then

                dc = New DataColumn("LEITURA_PIX", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESANOME", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESASIGLA", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESACNPJ", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESAENDERECO", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESAMUNICIPIO", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESAUF", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESACEP", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESA0800", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESAFAX", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESAFONE", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESAEMAIL", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("EMPRESASITE", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("ACEITE_BANCO", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("AGENCIA_CODBENEFICIARIO_BANCO", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("CARTEIRA_BANCO", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("ESPECIE_BANCO", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("ESPECIES_BANCO", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("NOME_BANCO", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("NOSSONUMERO_BANCO", GetType(String))
                dt.Columns.Add(dc)
                dc = New DataColumn("NUMERO_BANCO", GetType(String))
                dt.Columns.Add(dc)

                For Each dr As DataRow In dt.Rows

                    vCodBarcode = dr("CODBARRA")
                    vZona = dr("ZONA")
                    vLivro = dr("LIVRO")
                    vConta = dr("CONTA")

                    dr("LEITURA_PIX") = regraNegocioPix.GerarPix(Convert.ToString(GetConfig("pix.chave")), Convert.ToString(GetConfig("pix.nome.empresa")), Convert.ToString(GetConfig("pix.cidade.empresa")), Convert.ToString(dr("VALORTOT")).Replace(",", "."))
                    dr("EMPRESANOME") = gstrEmpresa_Nome
                    dr("EMPRESASIGLA") = gstrEmpresa_Sigla
                    dr("EMPRESACNPJ") = gstrEmpresa_CNPJ
                    dr("EMPRESAENDERECO") = gstrEmpresa_Endereco
                    dr("EMPRESAMUNICIPIO") = gstrEmpresa_Cidade
                    dr("EMPRESAUF") = gstrEmpresa_UF
                    dr("EMPRESACEP") = GetConfig("empresa.cep")
                    dr("EMPRESA0800") = gstrEmpresa_0800
                    dr("EMPRESAFAX") = GetConfig("empresa.fax")
                    dr("EMPRESAFONE") = GetConfig("empresa.fone")
                    dr("EMPRESAEMAIL") = GetConfig("empresa.email")
                    dr("EMPRESASITE") = gstrEmpresa_Fone

                    If vCodBarcode <> "" And vCodBarcode <> "0" Then

                        If GetConfig("numero.banco.faturas.boleto") <> "104" Then
                            iNossoNumero = Mid(vCodBarcode, 35, 7)
                        Else
                            iNossoNumero = Mid(vCodBarcode, 36, 7)
                            iNossoNumero = "14" & PreparaCampo(iNossoNumero, 0, 15, "0")
                        End If

                        dr("ACEITE_BANCO") = GetConfig("aceite.banco.faturas.boleto")
                        dr("AGENCIA_CODBENEFICIARIO_BANCO") = GetConfig("agencia.codbeneficiario.banco.faturas.boleto")
                        dr("CARTEIRA_BANCO") = GetConfig("carteira.banco.faturas.boleto")
                        dr("ESPECIE_BANCO") = GetConfig("especie.banco.faturas.boleto")
                        dr("ESPECIES_BANCO") = GetConfig("especies.banco.faturas.boleto")
                        dr("NOME_BANCO") = GetConfig("nome.banco.faturas.boleto")
                        dr("NOSSONUMERO_BANCO") = iNossoNumero
                        dr("NUMERO_BANCO") = GetConfig("numero.banco.faturas.boleto")

                    Else

                        dr("ACEITE_BANCO") = GetConfig("aceite.banco.faturas.boleto")
                        dr("AGENCIA_CODBENEFICIARIO_BANCO") = GetConfig("agencia.codbeneficiario.banco.faturas.boleto")
                        dr("CARTEIRA_BANCO") = GetConfig("carteira.banco.faturas.boleto")
                        dr("ESPECIE_BANCO") = GetConfig("especie.banco.faturas.boleto")
                        dr("ESPECIES_BANCO") = GetConfig("especies.banco.faturas.boleto")
                        dr("NOME_BANCO") = GetConfig("nome.banco.faturas.boleto")
                        dr("NOSSONUMERO_BANCO") = GetConfig("nosso.numero.banco.faturas.boleto")
                        dr("NUMERO_BANCO") = GetConfig("numero.banco.faturas.boleto")

                    End If

                Next

                objTempFaturaAPIA = repositorioTempFaturaAPIA.ConvertDataTableToEntity(dt)

            End If

        Catch ex As Exception

        End Try

        lPrintAPIGrupoA = objTempFaturaAPIA
    End Function

    Private Function lUpdate(ByRef objConcorte As entidadeConcorte) As Boolean
        Dim repositorioConcorte As New repositorioConcorte
        Try

            repositorioConcorte.Update(objConcorte)

            Return True
        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempFaturaA As New entidadeTempFaturaA
                Dim repositorioTempFaturaA As New repositorioTempFaturaA

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFatura As New entidadeTempFatura
                Dim repositorioTempFatura As New repositorioTempFatura

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: lUpdate - Concorte" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return False

        End Try
    End Function

    Private Function lInsert(ByRef objConsumos As entidadeConsumos) As Boolean
        Dim repositorioConsumos As New repositorioConsumos
        Try

            repositorioConsumos.Insert_1(objConsumos)

            Return True
        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempFaturaA As New entidadeTempFaturaA
                Dim repositorioTempFaturaA As New repositorioTempFaturaA

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFatura As New entidadeTempFatura
                Dim repositorioTempFatura As New repositorioTempFatura

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)


            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: lInsert  - Consumos" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return False

        End Try
    End Function

    Private Function lDelete(ByRef objConsumos As entidadeConsumos) As Boolean
        Dim repositorioConsumos As New repositorioConsumos
        Try

            repositorioConsumos.Delete(objConsumos)

            Return True
        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempFaturaA As New entidadeTempFaturaA
                Dim repositorioTempFaturaA As New repositorioTempFaturaA

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFatura As New entidadeTempFatura
                Dim repositorioTempFatura As New repositorioTempFatura

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: lDelete - Consumos" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return False

        End Try
    End Function

    Private Function lInsert(ByRef objTempFaturaA As entidadeTempFaturaA) As Boolean
        Dim repositorioTempFaturaA As New repositorioTempFaturaA
        Try

            repositorioTempFaturaA.Insert(objTempFaturaA)

            Return True
        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFatura As New entidadeTempFatura
                Dim repositorioTempFatura As New repositorioTempFatura

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: lInsert  - TempFaturaA" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return False

        End Try
    End Function

    Private Function lUpdate(ByRef objTempFaturaA As entidadeTempFaturaA) As Boolean
        Dim repositorioTempFaturaA As New repositorioTempFaturaA
        Try

            repositorioTempFaturaA.Update(objTempFaturaA)

            Return True
        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFatura As New entidadeTempFatura
                Dim repositorioTempFatura As New repositorioTempFatura

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: lUpdate - TempFaturaA" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return False

        End Try
    End Function

    Private Function lUpdate_1(ByRef objTempFaturaA As entidadeTempFaturaA) As Boolean
        Dim repositorioTempFaturaA As New repositorioTempFaturaA
        Try

            repositorioTempFaturaA.Update_1(objTempFaturaA)

            Return True
        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFatura As New entidadeTempFatura
                Dim repositorioTempFatura As New repositorioTempFatura

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: lUpdate - TempFaturaA" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return False

        End Try
    End Function

    Private Function lDelete(ByRef objTempFaturaA As entidadeTempFaturaA) As Boolean
        Dim repositorioTempFaturaA As New repositorioTempFaturaA
        Try

            repositorioTempFaturaA.Delete(objTempFaturaA)

            Return True
        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFatura As New entidadeTempFatura
                Dim repositorioTempFatura As New repositorioTempFatura

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: lDelete  - TempFaturaA" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return False

        End Try
    End Function

    Private Function lDelete(ByRef objTempHistFaturaA As entidadeTempHistFaturaA) As Boolean
        Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA
        Try

            repositorioTempHistFaturaA.Delete(objTempHistFaturaA)

            Return True
        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempFaturaA As New entidadeTempFaturaA
                Dim repositorioTempFaturaA As New repositorioTempFaturaA

                Dim objTempFatura As New entidadeTempFatura
                Dim repositorioTempFatura As New repositorioTempFatura

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: lDelete  - TempHistFaturaA" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return False

        End Try
    End Function

    Private Function lDelete(ByRef objTempFatura As entidadeTempFatura) As Boolean
        Dim repositorioTempFatura As New repositorioTempFatura
        Try

            repositorioTempFatura.Delete(objTempFatura)

            Return True
        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempFaturaA As New entidadeTempFaturaA
                Dim repositorioTempFaturaA As New repositorioTempFaturaA

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: lDelete  - TempFatura" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return False

        End Try
    End Function

    Private Function lInsert(ByRef objTempFatura As entidadeTempFatura) As Boolean
        Dim repositorioTempFatura As New repositorioTempFatura
        Try

            repositorioTempFatura.Insert(objTempFatura)

            Return True
        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempFaturaA As New entidadeTempFaturaA
                Dim repositorioTempFaturaA As New repositorioTempFaturaA

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: lInsert  - TempFatura" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return False

        End Try
    End Function

    Private Function lUpdate(ByRef objTempFatura As entidadeTempFatura) As Boolean
        Dim repositorioTempFatura As New repositorioTempFatura
        Try

            repositorioTempFatura.Update(objTempFatura)

            Return True
        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempFaturaA As New entidadeTempFaturaA
                Dim repositorioTempFaturaA As New repositorioTempFaturaA

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: lUpdate - TempFatura" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return False

        End Try
    End Function

    Private Function lUpdate_1(ByRef objTempFatura As entidadeTempFatura) As Boolean
        Dim repositorioTempFatura As New repositorioTempFatura
        Try

            repositorioTempFatura.Update_1(objTempFatura)

            Return True
        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempFaturaA As New entidadeTempFaturaA
                Dim repositorioTempFaturaA As New repositorioTempFaturaA

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: lUpdate_1 - TempFatura" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return False

        End Try
    End Function

    Private Function lUpdate_2(ByRef objTempFatura As entidadeTempFatura) As Boolean
        Dim repositorioTempFatura As New repositorioTempFatura
        Try

            repositorioTempFatura.Update_2(objTempFatura)

            Return True
        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempFaturaA As New entidadeTempFaturaA
                Dim repositorioTempFaturaA As New repositorioTempFaturaA

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: lUpdate_2 - TempFatura" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return False

        End Try
    End Function

    Private Function lInsert(ByRef objTempFaturaAImagePixBarras As entidadeTempFaturaAImagePixBarras) As Boolean
        Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras
        Try

            repositorioTempFaturaAImagePixBarras.Insert(objTempFaturaAImagePixBarras)

            Return True
        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempFaturaA As New entidadeTempFaturaA
                Dim repositorioTempFaturaA As New repositorioTempFaturaA

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFatura As New entidadeTempFatura
                Dim repositorioTempFatura As New repositorioTempFatura

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: lInsert  - TempFatura" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return False

        End Try
    End Function

    Private Function lInsert(ByRef objTempFaturaBImagePixBarras As entidadeTempFaturaBImagePixBarras) As Boolean
        Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras
        Try

            repositorioTempFaturaBImagePixBarras.Insert(objTempFaturaBImagePixBarras)

            Return True
        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempFaturaA As New entidadeTempFaturaA
                Dim repositorioTempFaturaA As New repositorioTempFaturaA

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFatura As New entidadeTempFatura
                Dim repositorioTempFatura As New repositorioTempFatura

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: lInsert  - TempFatura" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return False

        End Try
    End Function

    Private Function lDelete(ByRef objTempFaturaAImagePixBarras As entidadeTempFaturaAImagePixBarras) As Boolean
        Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras
        Try

            repositorioTempFaturaAImagePixBarras.Delete(objTempFaturaAImagePixBarras)

            Return True
        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempFaturaA As New entidadeTempFaturaA
                Dim repositorioTempFaturaA As New repositorioTempFaturaA

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFatura As New entidadeTempFatura
                Dim repositorioTempFatura As New repositorioTempFatura

                Dim objTempFaturaBImagePixBarras As New entidadeTempFaturaBImagePixBarras
                Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: lDelete  - TempFatura" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return False

        End Try
    End Function

    Private Function lDelete(ByRef objTempFaturaBImagePixBarras As entidadeTempFaturaBImagePixBarras) As Boolean
        Dim repositorioTempFaturaBImagePixBarras As New repositorioTempFaturaBImagePixBarras
        Try

            repositorioTempFaturaBImagePixBarras.Delete(objTempFaturaBImagePixBarras)

            Return True
        Catch ex As Exception

            If Not String.IsNullOrWhiteSpace(istrUsuarioGeradorFatura) Then

                Dim objTempFaturaA As New entidadeTempFaturaA
                Dim repositorioTempFaturaA As New repositorioTempFaturaA

                Dim objTempHistFaturaA As New entidadeTempHistFaturaA
                Dim repositorioTempHistFaturaA As New repositorioTempHistFaturaA

                Dim objTempFatura As New entidadeTempFatura
                Dim repositorioTempFatura As New repositorioTempFatura

                Dim objTempFaturaAImagePixBarras As New entidadeTempFaturaAImagePixBarras
                Dim repositorioTempFaturaAImagePixBarras As New repositorioTempFaturaAImagePixBarras


                objTempFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaA)

                objTempHistFaturaA.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempHistFaturaA)

                objTempFatura.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFatura)

                objTempFaturaBImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaBImagePixBarras)

                objTempFaturaAImagePixBarras.NOMEMAQUINA = istrUsuarioGeradorFatura
                lDelete(objTempFaturaAImagePixBarras)

            End If

            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: lDelete  - TempFatura" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return False

        End Try
    End Function


End Class
