Imports System.IO
Imports System.Xml.Serialization
Imports fatd_faturamento.ENTIDADE
Imports fatd_faturamento.BLL.Repositorio
Imports fatd_faturamento.SuiteClient.XML.NF3e
Imports System

Public Class frmExportaNF3E
    Private mItem As System.Windows.Forms.ListViewItem ' Objeto que controla a linha do listviews
    Dim listNF3eSelecionada As String
    Dim vCodigo As String
    Dim istrTabela As String
    Dim istrGrupo As String
    Dim istrMensagemRetornoNF3e As String


#Region "Propriedades"

    Private Sub frmExportaNF3E_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Try

            listNF3eSelecionada = String.Empty

            SetaFrameDados(False)

            txtArquivo.Text = String.Empty
            txtDiretorio.Text = String.Empty

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

    Private Sub lvwEnviarNF3e_Click(sender As Object, e As EventArgs) Handles lvwEnviarNF3e.Click

        Dim Item As ListViewItem
        Try

            If lvwEnviarNF3e.Items.Count > 0 Then

                vCodigo = lvwEnviarNF3e.FocusedItem.Text.Trim()

                For Each Item In lvwEnviarNF3e.Items

                    If Item.Text = vCodigo Then

                        If (Item.SubItems(4).Text) = "Não Autorizada" Then
                            'Pega a Coluna 0
                            listNF3eSelecionada = listNF3eSelecionada + (Item.Text) + ","
                        End If

                    End If

                Next

                Item = Nothing

            End If

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

    End Sub

    Private Sub lvwEnviarNF3e_ColumnClick(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.ColumnClickEventArgs) Handles lvwEnviarNF3e.ColumnClick
        Dim ColumnHeader As System.Windows.Forms.ColumnHeader = lvwEnviarNF3e.Columns(eventArgs.Column)
        Try
            lvwEnviarNF3e.ListViewItemSorter = New ListViewItemComparer(eventArgs.Column)
            lvwEnviarNF3e.Sort()
        Catch ex As Exception
            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: lvwEnviarNF3e_ColumnClick" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try
    End Sub

    Private Sub lvwEnviarNF3e_DoubleClick(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles lvwEnviarNF3e.DoubleClick
        Try
            If lvwEnviarNF3e.Items.Count > 0 Then
                lEdit(lvwEnviarNF3e.FocusedItem.Text.Trim())
            End If
        Catch ex As Exception
            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: lvwEnviarNF3e_DoubleClick" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try
    End Sub

    Private Sub cmdCancelar_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdCancelar.Click

        Try

            lCancel()

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

    End Sub

    Private Sub cmdFiltrar_Click(sender As Object, e As EventArgs) Handles cmdFiltrar.Click

        Dim objTempFaturaNF3EA As New entidadeTempFaturaNF3EA
        Dim repositorioTempFaturaNF3EA As New repositorioTempFaturaNF3EA

        Dim objTempFaturaNF3EB As New entidadeTempFaturaNF3EB
        Dim repositorioTempFaturaNF3EB As New repositorioTempFaturaNF3EB

        Try

            listNF3eSelecionada = String.Empty

            If Me.opbSim.Checked = True Then
                cmdExporta.Enabled = False
            Else
                cmdExporta.Enabled = True
            End If

            If Me.opbGrupoA.Checked Then

                objTempFaturaNF3EA.MESANOREF = Format(Me.dtpMesAno.Value, "yyyyMM")
                objTempFaturaNF3EA.ENVIADONF3E = IIf(Me.opbSim.Checked = True, 1, 0)

                CarregarGridFilterGrupoA(objTempFaturaNF3EA)

            Else

                objTempFaturaNF3EB.MESANOREF = Format(Me.dtpMesAno.Value, "yyyyMM")
                objTempFaturaNF3EB.ENVIADONF3E = IIf(Me.opbSim.Checked = True, 1, 0)

                CarregarGridFilterGrupoB(objTempFaturaNF3EB)

            End If

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

    Private Sub cmdExporta_Click(sender As Object, e As EventArgs) Handles cmdExporta.Click

        Try

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

            If txtDiretorio.Text = String.Empty Or txtArquivo.Text = String.Empty Then
                MsgBox("Diretório é obrigatório, favor verificar.", MsgBoxStyle.Critical, "Folha.Net")
                txtDiretorio.Focus()
                Me.Cursor = System.Windows.Forms.Cursors.Default
                Exit Sub
            End If

            If Me.opbGrupoA.Checked Then

                If txtArquivo.Text <> String.Empty Then

                    'Gerar Fatura Grupo A
                    GeraFaturaGrupoA(0, String.Empty, 0)

                    'Gerar XML Grupo A
                    GerarXMLNF3eGrupoA(txtArquivo.Text)

                Else
                    MsgBox("Favor escolha o local do arquivo!")
                    Exit Sub
                End If

            Else

                If txtArquivo.Text <> String.Empty Then

                    'Gerar Fatura Grupo B
                    'GeraFaturaGrupoB_TabOrigen(0, String.Empty, 0)
                    GeraFaturaGrupoB(0, String.Empty, 0)

                    'Gerar XML Grupo B
                    GerarXMLNF3eGrupoB(txtArquivo.Text)

                Else
                    MsgBox("Favor escolha o local do arquivo!")
                    Exit Sub
                End If

            End If

            listNF3eSelecionada = String.Empty

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

            MsgBox("Arquivo XML gerado com sucesso.")

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


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

    End Sub

    Private Sub cmdFechar_Click(sender As Object, e As EventArgs) Handles cmdFechar.Click

        Try

            lClose()

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

    End Sub

    Private Sub cmdArquivo_Click(sender As Object, e As EventArgs) Handles cmdArquivo.Click

        Try


            'Define as propriedades do controle FolderBrowserDialog

            fbd1.Description = "Selecione uma pasta para exportar o arquivo"
            fbd1.RootFolder = Environment.SpecialFolder.MyComputer
            fbd1.ShowNewFolderButton = True

            'Exibe a caixa de diálogo
            If fbd1.ShowDialog = Windows.Forms.DialogResult.OK Then

                'Exibe a pasta selecionada
                txtArquivo.Text = fbd1.SelectedPath

            End If

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

    End Sub

#End Region

#Region "Métodos"

    Private Sub lClose()

        Try

            Me.Close()

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

    End Sub

    Private Sub lCancel()

        Try

            SetaFrameDados(False)

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

    End Sub

    Private Sub SetaFrameDados(ByVal modo As Boolean)

        Try

            frameDados1.Enabled = modo
            frameDados1.Visible = modo

            If modo = True Then
                lvwEnviarNF3e.Enabled = False
                cmdFiltrar.Enabled = False
                cmdExporta.Enabled = False
                cmdFechar.Enabled = False
                cmdArquivo.Enabled = False
                fmeReferencia.Enabled = False
                fmeGrupo.Enabled = False
                fmeEnviado.Enabled = False
            ElseIf modo = False Then
                lvwEnviarNF3e.Enabled = True
                cmdFiltrar.Enabled = True
                cmdExporta.Enabled = True
                cmdFechar.Enabled = True
                cmdArquivo.Enabled = True
                fmeReferencia.Enabled = True
                fmeGrupo.Enabled = True
                fmeEnviado.Enabled = True
            End If

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

    End Sub

    Private Sub lEdit(ByRef Item As String)

        vCodigo = Item

        Try

            PreencherValoresList(vCodigo)

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

    End Sub

    Private Sub PreencherValoresList(ByRef Items As String)

        vCodigo = Items

        Dim Item As ListViewItem

        Try

            For Each Item In lvwEnviarNF3e.Items

                If Item.Text = vCodigo Then

                    'Pega a Coluna 0
                    txtNF.Text = (Item.Text)

                    'Para pegar os SubItems e so fazer o seguinte
                    txtObservacao.Text = (Item.SubItems(5).Text)

                End If


            Next

            Item = Nothing

            SetaFrameDados(True)

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

    End Sub

    Public Sub PrepararListView()

        Try

            lvwEnviarNF3e.Items.Clear()
            lvwEnviarNF3e.Columns.Clear()
            lvwEnviarNF3e.Columns.Add(String.Empty, "Número da Nota Fiscal", 100)
            lvwEnviarNF3e.Columns.Add(String.Empty, "Mês/Ano", 100)
            lvwEnviarNF3e.Columns.Add(String.Empty, "Valor Total", 100)
            lvwEnviarNF3e.Columns.Add(String.Empty, "Nome do XML", 100)
            lvwEnviarNF3e.Columns.Add(String.Empty, "Situação", 100)
            lvwEnviarNF3e.Columns.Add(String.Empty, "Observação", 330)

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

    End Sub

    Public Sub CarregarGridFilterGrupoA(ByRef objTempFaturaNF3EA As entidadeTempFaturaNF3EA)

        Try
            PrepararListView()
            For Each objTempFaturaNF3EAFor As entidadeTempFaturaNF3EA In New repositorioTempFaturaNF3EA().Select_4(objTempFaturaNF3EA)
                AddListItemGrupoA(mItem, objTempFaturaNF3EAFor)
            Next

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

    End Sub

    Public Sub CarregarGridFilterGrupoB(ByRef objTempFaturaNF3EB As entidadeTempFaturaNF3EB)

        Try
            PrepararListView()
            For Each objTempFaturaNF3EBFor As entidadeTempFaturaNF3EB In New repositorioTempFaturaNF3EB().Select_4(objTempFaturaNF3EB)
                AddListItemGrupoB(mItem, objTempFaturaNF3EBFor)
            Next

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

    End Sub

    Public Sub CarregarGridExportGrupoA(ByRef objTempFaturaNF3EA As entidadeTempFaturaNF3EA)

        Try
            PrepararListView()
            For Each objTempFaturaNF3EAFor As entidadeTempFaturaNF3EA In New repositorioTempFaturaNF3EA().Select_5(objTempFaturaNF3EA)
                AddListItemGrupoA(mItem, objTempFaturaNF3EAFor)
            Next

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

    End Sub

    Public Sub CarregarGridExportGrupoB(ByRef objTempFaturaNF3EB As entidadeTempFaturaNF3EB)

        Try
            PrepararListView()
            For Each objTempFaturaNF3EBFor As entidadeTempFaturaNF3EB In New repositorioTempFaturaNF3EB().Select_5(objTempFaturaNF3EB)
                AddListItemGrupoB(mItem, objTempFaturaNF3EBFor)
            Next

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

    End Sub

    Private Sub AddListItemGrupoA(ByRef xItem As System.Windows.Forms.ListViewItem, ByRef objTempFaturaNF3EA As entidadeTempFaturaNF3EA)

        Try

            xItem = lvwEnviarNF3e.Items.Add(objTempFaturaNF3EA.NUMNF.ToString(), objTempFaturaNF3EA.NUMNF.ToString(), String.Empty)

            If (String.IsNullOrEmpty(objTempFaturaNF3EA.MESANO.ToString())) Then
                xItem.SubItems.Add(Space(1))
            Else
                xItem.SubItems.Add(objTempFaturaNF3EA.MESANO.ToString())
            End If

            If (String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.VALORTOT))) Then
                xItem.SubItems.Add(Space(1))
            Else
                xItem.SubItems.Add(Convert.ToString(objTempFaturaNF3EA.VALORTOT))
            End If

            If (String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.NUMNF))) Then
                xItem.SubItems.Add(Space(1))
            Else
                xItem.SubItems.Add("XML_" + Convert.ToString(objTempFaturaNF3EA.NUMNF) + ".xml")
            End If

            If (String.IsNullOrEmpty(objTempFaturaNF3EA.ENVIADONF3E)) Then
                xItem.SubItems.Add(Space(1))
            Else
                xItem.SubItems.Add(IIf(objTempFaturaNF3EA.ENVIADONF3E = 0, "Não Autorizada", "Autorizada"))
            End If

            If (String.IsNullOrEmpty(objTempFaturaNF3EA.JSONDADOSSEFAZ.ToString())) Then
                xItem.SubItems.Add(Space(1))
            Else
                xItem.SubItems.Add(objTempFaturaNF3EA.JSONDADOSSEFAZ.ToString())
            End If

            xItem.BackColor = IIf(objTempFaturaNF3EA.ENVIADONF3E = 0, Color.Red, Color.Green)

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

    End Sub

    Private Sub AddListItemGrupoB(ByRef xItem As System.Windows.Forms.ListViewItem, ByRef objTempFaturaNF3EB As entidadeTempFaturaNF3EB)

        Try

            xItem = lvwEnviarNF3e.Items.Add(objTempFaturaNF3EB.NUMNF.ToString(), objTempFaturaNF3EB.NUMNF.ToString(), String.Empty)

            If (String.IsNullOrEmpty(objTempFaturaNF3EB.MESANO.ToString())) Then
                xItem.SubItems.Add(Space(1))
            Else
                xItem.SubItems.Add(objTempFaturaNF3EB.MESANO.ToString())
            End If

            If (String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.VALORTOT))) Then
                xItem.SubItems.Add(Space(1))
            Else
                xItem.SubItems.Add(Convert.ToString(objTempFaturaNF3EB.VALORTOT))
            End If

            If (String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.NUMNF))) Then
                xItem.SubItems.Add(Space(1))
            Else
                xItem.SubItems.Add("XML_" + Convert.ToString(objTempFaturaNF3EB.NUMNF) + ".xml")
            End If

            If (String.IsNullOrEmpty(objTempFaturaNF3EB.ENVIADONF3E)) Then
                xItem.SubItems.Add(Space(1))
            Else
                xItem.SubItems.Add(IIf(objTempFaturaNF3EB.ENVIADONF3E = 0, "Não Autorizada", "Autorizada"))
            End If

            If (String.IsNullOrEmpty(objTempFaturaNF3EB.JSONDADOSSEFAZ.ToString())) Then
                xItem.SubItems.Add(Space(1))
            Else
                xItem.SubItems.Add(objTempFaturaNF3EB.JSONDADOSSEFAZ.ToString())
            End If

            xItem.BackColor = IIf(objTempFaturaNF3EB.ENVIADONF3E = 0, Color.Red, Color.Green)

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

    End Sub

    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
            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
            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: MaiorMenorMediaConsumos" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    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.MESANO = 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
            MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: RefazConsumos" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub VerificaCriaTempItemFatura(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

                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

            ElseIf astrGrupo = "B" 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 = aintAnoMes_Fat
                        objNf.ANOMES_FAT = aintAnoMes_Fat

                        repositorioNf.Execute_1(objNf)

                    End If

                End If

            End If

        Catch ex As Exception
            '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 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)

        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

        '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 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 lstrFaturaCodImagem 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 Double
        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

        '----------------------------------
        '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

        '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 lstrSqlAnd As String

        Dim listEnviadoNF3E As String

        Dim vlist

        Dim objNf As New entidadeNf
        Dim repositorioNf As New repositorioNf

        Dim objNfTransicao As New entidadeNfTransicao
        Dim repositorioNfTransicao As New repositorioNfTransicao

        Dim objTempFaturaNF3EA As New entidadeTempFaturaNF3EA
        Dim repositorioTempFaturaNF3EA As New repositorioTempFaturaNF3EA

        Dim objTempHistFaturaNF3EA As New entidadeTempHistFaturaNF3EA
        Dim repositorioTempHistFaturaNF3EA As New repositorioTempHistFaturaNF3EA

        Try

            objTempFaturaNF3EA.ENVIADONF3E = 1
            objTempFaturaNF3EA.MESANOREF = Format(Me.dtpMesAno.Value, "yyyyMM")

            vlist = repositorioTempFaturaNF3EA.Select_1(objTempFaturaNF3EA)

            If vlist.Count <> 0 Then

                listEnviadoNF3E = String.Empty

                For Each objTempFaturaNF3EAFor As entidadeTempFaturaNF3EA In vlist
                    listEnviadoNF3E = listEnviadoNF3E + Convert.ToString(objTempFaturaNF3EAFor.NUMNF) + ","
                Next

                listEnviadoNF3E = listEnviadoNF3E.Remove(listEnviadoNF3E.Length - 1)

            Else
                listEnviadoNF3E = String.Empty
            End If


            If astrMesAno <> "" And aintSegVia <> 4 Then
                VerificaCriaTempItemFatura(adblNumNf, astrMesAno, llngFaturasAnoMes_Fat, "A")
            End If

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

            lstrMensAux = GetConfig("fatura.mensagem")

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

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

            istrGrupo = "A"

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

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

            Me.lblInfo.Text = "Aguarde, buscando as faturas..."

            System.Windows.Forms.Application.DoEvents()

            lstrSqlAnd = lstrSqlAnd & "  AND FATURAS.anomes_fat  = """ & CInt(Microsoft.VisualBasic.Right(lstrMesAno, 4) & Microsoft.VisualBasic.Left(lstrMesAno, 2)) & """ "
            lstrSqlAnd = lstrSqlAnd & "  AND FATURAS.GRUPO = 'A' "

            If Not String.IsNullOrEmpty(listEnviadoNF3E) Then

                lstrSqlAnd = lstrSqlAnd & " AND FATURAS.NUMNF NOT IN (" + listEnviadoNF3E + ") "

            End If

            If Not String.IsNullOrEmpty(listNF3eSelecionada) Then

                listNF3eSelecionada = listNF3eSelecionada.Remove(listNF3eSelecionada.Length - 1)

                lstrSqlAnd = lstrSqlAnd & " AND FATURAS.NUMNF IN (" + listNF3eSelecionada + ") "

            End If

            If gstrEmpresa_Sigla = "CERES" Then
                lstrSqlAnd = lstrSqlAnd & " AND UC_FATURAMENTO.UF = 'RJ' "
            End If


            If istrTabela.ToUpper() = "NF" Then

                objNf.TA = lstrSqlAnd

                vlist = repositorioNf.SelectOthersTables_7(objNf)

                If vlist.Count <> 0 Then

                    Me.lblInfo.Text = "Aguarde, limpando dados temporários..."

                    System.Windows.Forms.Application.DoEvents()

                    objTempFaturaNF3EA.ENVIADONF3E = 0
                    objTempFaturaNF3EA.MESANOREF = Format(Me.dtpMesAno.Value, "yyyyMM")
                    lDelete(objTempFaturaNF3EA)

                    objTempHistFaturaNF3EA.LISTENVIADONF3E = listEnviadoNF3E
                    'lDelete(objTempHistFaturaNF3EA)

                    Me.lblInfo.Text = "Aguarde, gerando as faturas..."

                    System.Windows.Forms.Application.DoEvents()

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

                    For Each objNfFor As entidadeNf In vlist


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

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

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

                        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)

                        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)
                        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 chkQuitacaoDebito.CheckState = 1 Then
                        '    lstrMensagem = lstrMensagem & vbCrLf & VerificaQuitacaoDebito(llngFaturasConsId, CDbl(Microsoft.VisualBasic.Left(CStr(llngFaturasMesAnoRef), 4)) - 1, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta)
                        'End If

                        'If Me.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

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

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

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

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

                        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 = CDbl(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.MEDKW), "0", objNfFor.entidadeUCFATURAMENTO.MEDKW))

                        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

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

                        ldblUnidaFinal = CDbl(IIf(IsDBNull(objNfFor.entidadeUCFATURAMENTO.FINAL), "0", objNfFor.entidadeUCFATURAMENTO.FINAL))

                        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))

                        '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 Me.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

                        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

                        '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 lstrFaturasCodBarra = "" Then
                            MontaCodBarras(ldblFaturasNumNf, lstrFaturasMesAno, ldblFaturasValorLiq, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, lstrFaturasCodBarra, lstrFaturasDvCodBarra, CStr(ldteFaturasVencimento), lstrFaturaCodImagem)
                        End If

                        'Monta Insert

                        objTempFaturaNF3EA.SEGVIA = aintSegVia
                        objTempFaturaNF3EA.NOMEMAQUINA = vUsuario.LOGIN
                        'DADOS DA FATURA
                        objTempFaturaNF3EA.NUMNF = ldblFaturasNumNf
                        objTempFaturaNF3EA.CFOP = ldblFaturasCfop
                        objTempFaturaNF3EA.ZONA = IIf(String.IsNullOrEmpty(lstrFaturasZona), " ", lstrFaturasZona)
                        objTempFaturaNF3EA.LIVRO = IIf(String.IsNullOrEmpty(lstrFaturasLivro), " ", lstrFaturasLivro)
                        objTempFaturaNF3EA.CONTA = IIf(String.IsNullOrEmpty(lstrFaturasConta), " ", lstrFaturasConta)
                        objTempFaturaNF3EA.ROTA = IIf(String.IsNullOrEmpty(lstrFaturasRota), " ", lstrFaturasRota)
                        objTempFaturaNF3EA.VALORTOT = ldblFaturasValorTot
                        objTempFaturaNF3EA.VALORLIQ = ldblFaturasValorLiq
                        objTempFaturaNF3EA.CODCLAS = IIf(String.IsNullOrEmpty(lstrFaturasCodClas), " ", lstrFaturasCodClas)
                        objTempFaturaNF3EA.DATAVENC = VB6.Format(ldteFaturasVencimento, "yyyy-MM-dd")
                        objTempFaturaNF3EA.BANCO_FATUR = IIf(String.IsNullOrEmpty(lstrFaturasBanIdent), " ", lstrFaturasBanIdent)
                        objTempFaturaNF3EA.MESANO = IIf(String.IsNullOrEmpty(lstrFaturasMesAno), " ", lstrFaturasMesAno)
                        objTempFaturaNF3EA.MESANOREF = llngFaturasMesAnoRef
                        objTempFaturaNF3EA.ANOMES_FAT = llngFaturasAnoMes_Fat
                        objTempFaturaNF3EA.DATAAPR = VB6.Format(ldteFaturasApresentacao, "yyyy-MM-dd")
                        objTempFaturaNF3EA.DATAEMISSAO = VB6.Format(ldteFaturasEmissao, "yyyy-MM-dd")
                        objTempFaturaNF3EA.DATAPROXLEIT = VB6.Format(ldteFaturasProxLeit, "yyyy-MM-dd")
                        objTempFaturaNF3EA.DATALEIT = VB6.Format(ldteFaturasLeitura, "yyyy-MM-dd")
                        objTempFaturaNF3EA.DATALEITANT = VB6.Format(ldteFaturasLeitAnterior, "yyyy-MM-dd")
                        objTempFaturaNF3EA.FASE = IIf(String.IsNullOrEmpty(lstrFaturasFase), " ", lstrFaturasFase)
                        objTempFaturaNF3EA.TA = IIf(String.IsNullOrEmpty(lstrFaturasTa), " ", lstrFaturasTa)
                        objTempFaturaNF3EA.TENSAO = IIf(String.IsNullOrEmpty(lstrFaturasTensao), " ", lstrFaturasTensao)
                        objTempFaturaNF3EA.CODHASH = IIf(String.IsNullOrEmpty(lstrFaturasCodHash), " ", lstrFaturasCodHash)
                        objTempFaturaNF3EA.CODBARRA = IIf(String.IsNullOrEmpty(lstrFaturasCodBarra), " ", lstrFaturasCodBarra)
                        objTempFaturaNF3EA.DVCODBARRA = IIf(String.IsNullOrEmpty(lstrFaturasDvCodBarra), " ", lstrFaturasDvCodBarra)
                        objTempFaturaNF3EA.DESCLASSE = IIf(String.IsNullOrEmpty(lstrClasseDescricao), " ", lstrClasseDescricao)
                        'DADOS DA UNIDADE
                        objTempFaturaNF3EA.CGC = IIf(String.IsNullOrEmpty(lstrUnidaCpfCnpj), " ", lstrUnidaCpfCnpj)
                        objTempFaturaNF3EA.INSC = IIf(String.IsNullOrEmpty(lstrUnidaInsc), " ", lstrUnidaInsc)
                        objTempFaturaNF3EA.RG = IIf(String.IsNullOrEmpty(lstrUnidaRg), " ", lstrUnidaRg)
                        objTempFaturaNF3EA.AGENC = IIf(String.IsNullOrEmpty(lstrUnidaAgenc), " ", lstrUnidaAgenc)
                        objTempFaturaNF3EA.CC = IIf(String.IsNullOrEmpty(lstrUnidaCC), " ", lstrUnidaCC)
                        objTempFaturaNF3EA.NOMECONS = IIf(String.IsNullOrEmpty(lstrUnidaNome), " ", lstrUnidaNome)
                        objTempFaturaNF3EA.CIDADE = IIf(String.IsNullOrEmpty(lstrUnidaCidade), " ", lstrUnidaCidade)
                        objTempFaturaNF3EA.DISTRITO = IIf(String.IsNullOrEmpty(lstrUnidaDistrito), " ", lstrUnidaDistrito)
                        objTempFaturaNF3EA.BAIRRO = IIf(String.IsNullOrEmpty(lstrUnidaBairro), " ", lstrUnidaBairro)
                        objTempFaturaNF3EA.END = IIf(String.IsNullOrEmpty(lstrUnidaEnd), " ", lstrUnidaEnd)
                        objTempFaturaNF3EA.NUMERO = IIf(String.IsNullOrEmpty(lstrUnidaNumero), " ", lstrUnidaNumero)
                        objTempFaturaNF3EA.COMPLEMENT = IIf(String.IsNullOrEmpty(lstrUnidaComplement), " ", lstrUnidaComplement)
                        objTempFaturaNF3EA.CEP = IIf(String.IsNullOrEmpty(lstrUnidaCep), " ", lstrUnidaCep)
                        objTempFaturaNF3EA.UF = IIf(String.IsNullOrEmpty(lstrUnidaUf), " ", lstrUnidaUf)
                        objTempFaturaNF3EA.QUADRA = IIf(String.IsNullOrEmpty(lstrUnidaQuadra), " ", lstrUnidaQuadra)
                        objTempFaturaNF3EA.LOTE = IIf(String.IsNullOrEmpty(lstrUnidaLote), " ", lstrUnidaLote)
                        objTempFaturaNF3EA.CID_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaCidEntrega), " ", lstrUnidaCidEntrega)
                        objTempFaturaNF3EA.DIS_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaDisEntrega), " ", lstrUnidaDisEntrega)
                        objTempFaturaNF3EA.BAI_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaBaiEntrega), " ", lstrUnidaBaiEntrega)
                        objTempFaturaNF3EA.END_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaEndEntrega), " ", lstrUnidaEndEntrega)
                        objTempFaturaNF3EA.NUM_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaNumEntrega), " ", lstrUnidaNumEntrega)
                        objTempFaturaNF3EA.COMPL_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaComplEntrega), " ", lstrUnidaComplEntrega)
                        objTempFaturaNF3EA.CEP_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaCepEntrega), " ", lstrUnidaCepEntrega)
                        objTempFaturaNF3EA.UF_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaUfEntrega), " ", lstrUnidaUfEntrega)
                        objTempFaturaNF3EA.QUA_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaQuaEntrega), " ", lstrUnidaQuaEntrega)
                        objTempFaturaNF3EA.LOT_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaLotEntrega), " ", lstrUnidaLotEntrega)
                        objTempFaturaNF3EA.GRUPO = IIf(String.IsNullOrEmpty(lstrUnidaGrupo), " ", lstrUnidaGrupo)
                        objTempFaturaNF3EA.CONST_DEMANDA = ldblUnidaConstDemanda
                        objTempFaturaNF3EA.CONST_CONS_FP = ldblUnidaConstConsFp
                        objTempFaturaNF3EA.CONST_CONS_P = ldblUnidaConstConsP
                        objTempFaturaNF3EA.CONST_KVARH_P = ldblUnidaConsReativoP
                        objTempFaturaNF3EA.CONST_KVARH_FP = ldblUnidaConsReativoFp
                        objTempFaturaNF3EA.MEDKW = ldblUnidaMedidorDemanda
                        objTempFaturaNF3EA.MEDKVARK = ldblUnidaMedidorReativo
                        objTempFaturaNF3EA.ELETR = ldblUnidaMedidorConsumo
                        objTempFaturaNF3EA.DEMCONTRP = ldblUnidaDemContrPonta
                        objTempFaturaNF3EA.DEMCONTRFP = ldblUnidaDemContrFp
                        objTempFaturaNF3EA.DEMCONTRPANTERIOR = ldblUnidaDemAnteriorContrPonta
                        objTempFaturaNF3EA.DEMCONTRFPANTERIOR = ldblUnidaDemAnteriorContrFp
                        objTempFaturaNF3EA.PERIODO_TESTE = IIf(lblnFaturaPeriodoTeste, 1, 0)
                        objTempFaturaNF3EA.CONST_KVARH = ldblUnidaConstReativo
                        objTempFaturaNF3EA.CONST_KW = ldblUnidaConstDemanda
                        objTempFaturaNF3EA.CONST_KWH = ldblUnidaConstConsumo
                        objTempFaturaNF3EA.CONST_DEMANDA_FP = ldblUnidaConstDemandaFp
                        objTempFaturaNF3EA.KW_CONT = ldblUnidaDemandaContr
                        objTempFaturaNF3EA.CARGA = ldblUnidaCarga
                        objTempFaturaNF3EA.PERDA = ldblUnidaFinal
                        objTempFaturaNF3EA.REFCONS = IIf(String.IsNullOrEmpty(lstrConsumidorNome), " ", lstrConsumidorNome)
                        'LEITURAS
                        'REATIVO CONSUMO
                        objTempFaturaNF3EA.LEIT_KVARH_ANT = ldblLeitConsReativoPontaAnter
                        objTempFaturaNF3EA.LEIT_KVARH_ATUAL = ldblLeitConsReativoPontaAtual
                        objTempFaturaNF3EA.LEITANT_KVARH_P = ldblLeitConsReativoPontaAnter
                        objTempFaturaNF3EA.LEIT_KVARH_P = ldblLeitConsReativoPontaAtual
                        objTempFaturaNF3EA.LEITANT_KVARH_FP = ldblLeitConsReativoForaPAnter
                        objTempFaturaNF3EA.LEIT_KVARH_FP = ldblLeitConsReativoForaPAtual
                        'DEMANDA
                        objTempFaturaNF3EA.LEIT_KW_ANT = ldblLeitDemandaPontaAnter
                        objTempFaturaNF3EA.LEIT_KW_ATUAL = ldblLeitDemandaPontaAtual
                        objTempFaturaNF3EA.LEITANT_KW_P = ldblLeitDemandaPontaAnter
                        objTempFaturaNF3EA.LEIT_KW_P = ldblLeitDemandaPontaAtual
                        objTempFaturaNF3EA.LEITANT_KW_FP = ldblLeitDemandaForaPAnter
                        objTempFaturaNF3EA.LEIT_KW_FP = ldblLeitDemandaForaPAtual
                        'CONSUMO
                        objTempFaturaNF3EA.LEIT_KWH_ANT = ldblLeitConsumoPontaAnter
                        objTempFaturaNF3EA.LEIT_KWH_ATUAL = ldblLeitConsumoPontaAtual
                        objTempFaturaNF3EA.LEITANT_KWH_P = ldblLeitConsumoPontaAnter
                        objTempFaturaNF3EA.LEIT_KWH_P = ldblLeitConsumoPontaAtual
                        objTempFaturaNF3EA.LEITANT_KWH_FP = ldblLeitConsumoForaPAnter
                        objTempFaturaNF3EA.LEIT_KWH_FP = ldblLeitConsumoForaPAtual
                        'MICRO GERAÇÃO
                        objTempFaturaNF3EA.LEITANT_REVERSO_P = ldblLeitReversoPontaAnter
                        objTempFaturaNF3EA.LEIT_REVERSO_P = ldblLeitReversoPontaAtual
                        objTempFaturaNF3EA.LEITANT_REVERSO_FP = ldblLeitReversoForaPAnter
                        objTempFaturaNF3EA.LEIT_REVERSO_FP = ldblLeitReversoForaPAtual
                        'CONSUMO RESERVADO
                        objTempFaturaNF3EA.LEITANT_KWH_RES = ldblLeitConsReservadAnter
                        objTempFaturaNF3EA.LEIT_KWH_RES = ldblLeitConsReservadAtual
                        'QUANTIDADES
                        'CONSUMO
                        objTempFaturaNF3EA.CONSMEDIDOP = ldblConsMedidoPonta
                        objTempFaturaNF3EA.CONSMEDIDOFP = ldblConsMedidoForaP
                        objTempFaturaNF3EA.CONSFATURADOP = ldblConsFaturaPonta
                        objTempFaturaNF3EA.CONSFATURADOFP = ldblConsFaturaForaP
                        objTempFaturaNF3EA.CONSCONTRP = ldblConsContraPonta
                        objTempFaturaNF3EA.CONSCONTRFP = ldblConsContraForaP
                        objTempFaturaNF3EA.KWH_MED = ldblConsMedido
                        objTempFaturaNF3EA.KWH_FAT = ldblConsFatura
                        objTempFaturaNF3EA.CONSRESERVADO = ldblConsReservado
                        'MICRO GERAÇÃO
                        objTempFaturaNF3EA.KWH_REVERSO_P = ldblkWhReversoPonta
                        objTempFaturaNF3EA.KWH_REVERSO_FP = ldblkWhReversoForaP
                        objTempFaturaNF3EA.KWH_REVERSO_RES_P = ldblkWhReversoResPonta
                        objTempFaturaNF3EA.KWH_REVERSO_RES_FP = ldblkWhReversoResForaP
                        'DEMANDA
                        objTempFaturaNF3EA.DEMMEDIDAP = ldblDemaMedidaPonta
                        objTempFaturaNF3EA.DEMMEDIDAFP = ldblDemaMedidaForaP
                        objTempFaturaNF3EA.DEMFATURP = ldblDemaFaturaPonta
                        objTempFaturaNF3EA.DEMFATURFP = ldblDemaFaturaForaP
                        objTempFaturaNF3EA.ULTRAP = ldblDemaUltrapPonta
                        objTempFaturaNF3EA.ULTRAFP = ldblDemaUltrapForaP
                        objTempFaturaNF3EA.KW_MED = ldblDemaMedida
                        objTempFaturaNF3EA.KW_FAT = ldblDemaFatura
                        objTempFaturaNF3EA.KW_ULTRA = ldblDemaUltrap
                        'FATOR DE POTENCIA
                        objTempFaturaNF3EA.KVARH_FPOT = ldblFatorPontencia
                        'REATIVO CONSUMO
                        objTempFaturaNF3EA.FER_P = ldblReatConsumPonta
                        objTempFaturaNF3EA.FER_FP = ldblReatConsumForaP
                        objTempFaturaNF3EA.KVARH_MED = ldblReatMedido
                        'REATIVO DEMANDA
                        objTempFaturaNF3EA.LEIT_KVAR_P = ldblReatDemandPonta
                        objTempFaturaNF3EA.LEIT_KVAR_FP = ldblReatDemandForaP
                        'TRIBUTOS
                        'ICMS
                        objTempFaturaNF3EA.BASE_ICMS = ldblBaseIcms
                        objTempFaturaNF3EA.ALIQ_ICMS = ldblAliqIcms
                        objTempFaturaNF3EA.VLR_ICMS = ldblValrIcms
                        objTempFaturaNF3EA.BASE_ICMS2 = ldblBaseIcms2
                        objTempFaturaNF3EA.ALIQ_ICMS2 = ldblAliqIcms2
                        objTempFaturaNF3EA.VLR_ICMS2 = ldblValrIcms2
                        'PIS
                        objTempFaturaNF3EA.BASEPIS = ldblBasePis
                        objTempFaturaNF3EA.ALIQPIS = ldblAliqPis
                        objTempFaturaNF3EA.VLRPIS = ldblValrPis
                        'COFINS
                        objTempFaturaNF3EA.BASECOFINS = ldblBaseCofins
                        objTempFaturaNF3EA.ALIQCOFINS = ldblAliqCofins
                        objTempFaturaNF3EA.VLRCOFINS = ldblValrCofins
                        '********************************************
                        'TRIBUTAÇÃO DA COMERCIALIZAÇÃO DOS LIVRES
                        'ICMS
                        objTempFaturaNF3EA.BASE_ICMS_ST = ldblBaseIcmSt
                        objTempFaturaNF3EA.ALIQ_ICMS_ST = ldblAliqIcmSt
                        objTempFaturaNF3EA.VLR_ICMS_ST = ldblValrIcmSt
                        'PIS
                        objTempFaturaNF3EA.BASEPIS_ST = ldblBasePisSt
                        objTempFaturaNF3EA.ALIQPIS_ST = ldblAliqPisSt
                        objTempFaturaNF3EA.VLRPIS_ST = ldblValrPisSt
                        'COFINS
                        objTempFaturaNF3EA.BASECOFINS_ST = ldblBaseCofSt
                        objTempFaturaNF3EA.ALIQCOFINS_ST = ldblAliqCofSt
                        objTempFaturaNF3EA.VLRCOFINS_ST = ldblValrCofSt
                        'VALOR DA COMPRA (R$)
                        objTempFaturaNF3EA.VLRENERGIA_ST = ldblVCompraSt
                        objTempFaturaNF3EA.VLRPCMEDIO_ST = ldblVPMedioSt
                        objTempFaturaNF3EA.VLRCONSUMO_ST = ldblVConsumSt
                        objTempFaturaNF3EA.REFERENCIA_ST = IIf(String.IsNullOrEmpty(lstrReferenSt), " ", lstrReferenSt)
                        '********************************************
                        'INDICADOR DE CONTINUIDADE
                        objTempFaturaNF3EA.DEC_META = ldblDecMeta
                        objTempFaturaNF3EA.FEC_META = ldblFecMeta
                        objTempFaturaNF3EA.DIC_META = ldblDicMeta
                        objTempFaturaNF3EA.FIC_META = ldblFicMeta
                        objTempFaturaNF3EA.DMIC = ldblDmicMet
                        objTempFaturaNF3EA.DEC_REA = ldblDecReal
                        objTempFaturaNF3EA.FEC_REA = ldblFecReal
                        objTempFaturaNF3EA.DIC_REA = ldblDicReal
                        objTempFaturaNF3EA.FIC_REA = ldblFicReal
                        objTempFaturaNF3EA.DMIC_REA = ldblDmicRea
                        objTempFaturaNF3EA.REFINDICADOR = IIf(String.IsNullOrEmpty(lstrRefICon), " ", lstrRefICon)
                        'RENTENÇÃO TRIBUTÁRIA
                        'CONSUMO
                        objTempFaturaNF3EA.RET_PIS = ldblRetPisCons
                        objTempFaturaNF3EA.RET_COFINS = ldblRetCofCons
                        objTempFaturaNF3EA.RET_CSLL = ldblRetCslCons
                        objTempFaturaNF3EA.RET_IRPJC = ldblRetIrpCons
                        'DEMANDA
                        objTempFaturaNF3EA.RET_IRPJD = ldblRetIrpDema
                        objTempFaturaNF3EA.RET_CSLLD = ldblRetCslDema
                        objTempFaturaNF3EA.RET_COFINSD = ldblRetCofDema
                        objTempFaturaNF3EA.RET_PISD = ldblRetPisDema
                        'COMPOSIÇÃO DA FATURA
                        objTempFaturaNF3EA.COMP_ENERGIA = ldblCompEnergia
                        objTempFaturaNF3EA.COMP_TRANSMISSAO = ldblCompTransmissao
                        objTempFaturaNF3EA.COMP_DISTRIBUICAO = ldblCompDistribuicao
                        objTempFaturaNF3EA.COMP_ENCARGOS_SETORIAIS = ldblCompEncargosSetoriais
                        'TARIFAS
                        objTempFaturaNF3EA.TA_DEMP = ldblTarDemaPonta
                        objTempFaturaNF3EA.TA_DEMFP = ldblTarDemaForaP
                        objTempFaturaNF3EA.TA_ULTRAP = ldblTarDUltPonta
                        objTempFaturaNF3EA.TA_ULTRAFP = ldblTarDUltForaP
                        objTempFaturaNF3EA.TA_CONSP = ldblTarConsPonta
                        objTempFaturaNF3EA.TA_CONSFP = ldblTarConsForaP
                        'MENSAGEM DA FATURA
                        objTempFaturaNF3EA.MENSAGEM_BANDEIRA = IIf(String.IsNullOrEmpty(lstrFaturasMensagemBandeira), " ", lstrFaturasMensagemBandeira)
                        objTempFaturaNF3EA.BANDEIRA = llngBandeira
                        objTempFaturaNF3EA.FRENTEVERSO = 0
                        objTempFaturaNF3EA.LIVRE_VERDE = lintFaturasLivreVerde
                        objTempFaturaNF3EA.PARC_CATIVO = lintFaturasParcCativo
                        objTempFaturaNF3EA.MENSAGEM = IIf(String.IsNullOrEmpty(lstrMensagem), " ", lstrMensagem)
                        objTempFaturaNF3EA.ITENSIMP = IIf(String.IsNullOrEmpty(lstrFaturasItensImp), " ", lstrFaturasItensImp)

                        lInsert(objTempFaturaNF3EA)

                        If aintSegVia <> 4 Then


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


                            'repositorioTempHistFaturaNF3EA.Execute(objTempHistFaturaNF3EA)

                        End If


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

                        'If Me.chkOpcional.CheckState = System.Windows.Forms.CheckState.Checked And Me.chkVerificaCriaTempItemFatura.CheckState = System.Windows.Forms.CheckState.Checked Then
                        'VerificaCriaTempItemFatura(ldblFaturasNumNf, lstrFaturasMesAno)
                        'VerificaCriaTempItemFatura(ldblFaturasNumNf, llngFaturasMesAnoRef, llngFaturasAnoMes_Fat)
                        'End If

                    Next

                    If aintSegVia <> 4 Then
                        'FATURAS PENDENTES
                        Me.lblInfo.Text = "Processando faturas pendentes..."
                        Me.lblInfo.Refresh()

                        objTempFaturaNF3EA.MESANO = lstrMesAno
                        objTempFaturaNF3EA.NOMEMAQUINA = vUsuario.LOGIN
                        objTempFaturaNF3EA.LISTENVIADONF3E = listEnviadoNF3E

                        lUpdate(objTempFaturaNF3EA)

                    End If

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

                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

                    Me.lblInfo.Text = "Aguarde, limpando dados temporários..."

                    System.Windows.Forms.Application.DoEvents()

                    objTempFaturaNF3EA.ENVIADONF3E = 0
                    objTempFaturaNF3EA.MESANOREF = Format(Me.dtpMesAno.Value, "yyyyMM")
                    lDelete(objTempFaturaNF3EA)

                    objTempHistFaturaNF3EA.LISTENVIADONF3E = listEnviadoNF3E
                    lDelete(objTempHistFaturaNF3EA)

                    Me.lblInfo.Text = "Aguarde, gerando as faturas..."

                    System.Windows.Forms.Application.DoEvents()

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

                    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))

                        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)

                        '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)
                        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 chkQuitacaoDebito.CheckState = 1 Then
                        '    lstrMensagem = lstrMensagem & vbCrLf & VerificaQuitacaoDebito(llngFaturasConsId, CDbl(Microsoft.VisualBasic.Left(CStr(llngFaturasMesAnoRef), 4)) - 1, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta)
                        'End If

                        'If Me.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

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

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

                        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 = CDbl(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.MEDKW), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.MEDKW))

                        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

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

                        ldblUnidaFinal = CDbl(IIf(IsDBNull(objNfTransicaoFor.entidadeUCFATURAMENTO.FINAL), "0", objNfTransicaoFor.entidadeUCFATURAMENTO.FINAL))

                        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))

                        '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 Me.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

                        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

                        '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 lstrFaturasCodBarra = "" Then
                            MontaCodBarras(ldblFaturasNumNf, lstrFaturasMesAno, ldblFaturasValorLiq, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, lstrFaturasCodBarra, lstrFaturasDvCodBarra, CStr(ldteFaturasVencimento), lstrFaturaCodImagem)
                        End If

                        'Monta Insert

                        objTempFaturaNF3EA.SEGVIA = aintSegVia
                        objTempFaturaNF3EA.NOMEMAQUINA = vUsuario.LOGIN
                        'DADOS DA FATURA
                        objTempFaturaNF3EA.NUMNF = ldblFaturasNumNf
                        objTempFaturaNF3EA.CFOP = ldblFaturasCfop
                        objTempFaturaNF3EA.ZONA = IIf(String.IsNullOrEmpty(lstrFaturasZona), " ", lstrFaturasZona)
                        objTempFaturaNF3EA.LIVRO = IIf(String.IsNullOrEmpty(lstrFaturasLivro), " ", lstrFaturasLivro)
                        objTempFaturaNF3EA.CONTA = IIf(String.IsNullOrEmpty(lstrFaturasConta), " ", lstrFaturasConta)
                        objTempFaturaNF3EA.ROTA = IIf(String.IsNullOrEmpty(lstrFaturasRota), " ", lstrFaturasRota)
                        objTempFaturaNF3EA.VALORTOT = ldblFaturasValorTot
                        objTempFaturaNF3EA.VALORLIQ = ldblFaturasValorLiq
                        objTempFaturaNF3EA.CODCLAS = IIf(String.IsNullOrEmpty(lstrFaturasCodClas), " ", lstrFaturasCodClas)
                        objTempFaturaNF3EA.DATAVENC = VB6.Format(ldteFaturasVencimento, "yyyy-MM-dd")
                        objTempFaturaNF3EA.BANCO_FATUR = IIf(String.IsNullOrEmpty(lstrFaturasBanIdent), " ", lstrFaturasBanIdent)
                        objTempFaturaNF3EA.MESANO = IIf(String.IsNullOrEmpty(lstrFaturasMesAno), " ", lstrFaturasMesAno)
                        objTempFaturaNF3EA.MESANOREF = llngFaturasMesAnoRef
                        objTempFaturaNF3EA.ANOMES_FAT = llngFaturasAnoMes_Fat
                        objTempFaturaNF3EA.DATAAPR = VB6.Format(ldteFaturasApresentacao, "yyyy-MM-dd")
                        objTempFaturaNF3EA.DATAEMISSAO = VB6.Format(ldteFaturasEmissao, "yyyy-MM-dd")
                        objTempFaturaNF3EA.DATAPROXLEIT = VB6.Format(ldteFaturasProxLeit, "yyyy-MM-dd")
                        objTempFaturaNF3EA.DATALEIT = VB6.Format(ldteFaturasLeitura, "yyyy-MM-dd")
                        objTempFaturaNF3EA.DATALEITANT = VB6.Format(ldteFaturasLeitAnterior, "yyyy-MM-dd")
                        objTempFaturaNF3EA.FASE = IIf(String.IsNullOrEmpty(lstrFaturasFase), " ", lstrFaturasFase)
                        objTempFaturaNF3EA.TA = IIf(String.IsNullOrEmpty(lstrFaturasTa), " ", lstrFaturasTa)
                        objTempFaturaNF3EA.TENSAO = IIf(String.IsNullOrEmpty(lstrFaturasTensao), " ", lstrFaturasTensao)
                        objTempFaturaNF3EA.CODHASH = IIf(String.IsNullOrEmpty(lstrFaturasCodHash), " ", lstrFaturasCodHash)
                        objTempFaturaNF3EA.CODBARRA = IIf(String.IsNullOrEmpty(lstrFaturasCodBarra), " ", lstrFaturasCodBarra)
                        objTempFaturaNF3EA.DVCODBARRA = IIf(String.IsNullOrEmpty(lstrFaturasDvCodBarra), " ", lstrFaturasDvCodBarra)
                        objTempFaturaNF3EA.DESCLASSE = IIf(String.IsNullOrEmpty(lstrClasseDescricao), " ", lstrClasseDescricao)
                        'DADOS DA UNIDADE
                        objTempFaturaNF3EA.CGC = IIf(String.IsNullOrEmpty(lstrUnidaCpfCnpj), " ", lstrUnidaCpfCnpj)
                        objTempFaturaNF3EA.INSC = IIf(String.IsNullOrEmpty(lstrUnidaInsc), " ", lstrUnidaInsc)
                        objTempFaturaNF3EA.RG = IIf(String.IsNullOrEmpty(lstrUnidaRg), " ", lstrUnidaRg)
                        objTempFaturaNF3EA.AGENC = IIf(String.IsNullOrEmpty(lstrUnidaAgenc), " ", lstrUnidaAgenc)
                        objTempFaturaNF3EA.CC = IIf(String.IsNullOrEmpty(lstrUnidaCC), " ", lstrUnidaCC)
                        objTempFaturaNF3EA.NOMECONS = IIf(String.IsNullOrEmpty(lstrUnidaNome), " ", lstrUnidaNome)
                        objTempFaturaNF3EA.CIDADE = IIf(String.IsNullOrEmpty(lstrUnidaCidade), " ", lstrUnidaCidade)
                        objTempFaturaNF3EA.DISTRITO = IIf(String.IsNullOrEmpty(lstrUnidaDistrito), " ", lstrUnidaDistrito)
                        objTempFaturaNF3EA.BAIRRO = IIf(String.IsNullOrEmpty(lstrUnidaBairro), " ", lstrUnidaBairro)
                        objTempFaturaNF3EA.END = IIf(String.IsNullOrEmpty(lstrUnidaEnd), " ", lstrUnidaEnd)
                        objTempFaturaNF3EA.NUMERO = IIf(String.IsNullOrEmpty(lstrUnidaNumero), " ", lstrUnidaNumero)
                        objTempFaturaNF3EA.COMPLEMENT = IIf(String.IsNullOrEmpty(lstrUnidaComplement), " ", lstrUnidaComplement)
                        objTempFaturaNF3EA.CEP = IIf(String.IsNullOrEmpty(lstrUnidaCep), " ", lstrUnidaCep)
                        objTempFaturaNF3EA.UF = IIf(String.IsNullOrEmpty(lstrUnidaUf), " ", lstrUnidaUf)
                        objTempFaturaNF3EA.QUADRA = IIf(String.IsNullOrEmpty(lstrUnidaQuadra), " ", lstrUnidaQuadra)
                        objTempFaturaNF3EA.LOTE = IIf(String.IsNullOrEmpty(lstrUnidaLote), " ", lstrUnidaLote)
                        objTempFaturaNF3EA.CID_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaCidEntrega), " ", lstrUnidaCidEntrega)
                        objTempFaturaNF3EA.DIS_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaDisEntrega), " ", lstrUnidaDisEntrega)
                        objTempFaturaNF3EA.BAI_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaBaiEntrega), " ", lstrUnidaBaiEntrega)
                        objTempFaturaNF3EA.END_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaEndEntrega), " ", lstrUnidaEndEntrega)
                        objTempFaturaNF3EA.NUM_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaNumEntrega), " ", lstrUnidaNumEntrega)
                        objTempFaturaNF3EA.COMPL_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaComplEntrega), " ", lstrUnidaComplEntrega)
                        objTempFaturaNF3EA.CEP_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaCepEntrega), " ", lstrUnidaCepEntrega)
                        objTempFaturaNF3EA.UF_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaUfEntrega), " ", lstrUnidaUfEntrega)
                        objTempFaturaNF3EA.QUA_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaQuaEntrega), " ", lstrUnidaQuaEntrega)
                        objTempFaturaNF3EA.LOT_ENTREGA = IIf(String.IsNullOrEmpty(lstrUnidaLotEntrega), " ", lstrUnidaLotEntrega)
                        objTempFaturaNF3EA.GRUPO = IIf(String.IsNullOrEmpty(lstrUnidaGrupo), " ", lstrUnidaGrupo)
                        objTempFaturaNF3EA.CONST_DEMANDA = ldblUnidaConstDemanda
                        objTempFaturaNF3EA.CONST_CONS_FP = ldblUnidaConstConsFp
                        objTempFaturaNF3EA.CONST_CONS_P = ldblUnidaConstConsP
                        objTempFaturaNF3EA.CONST_KVARH_P = ldblUnidaConsReativoP
                        objTempFaturaNF3EA.CONST_KVARH_FP = ldblUnidaConsReativoFp
                        objTempFaturaNF3EA.MEDKW = ldblUnidaMedidorDemanda
                        objTempFaturaNF3EA.MEDKVARK = ldblUnidaMedidorReativo
                        objTempFaturaNF3EA.ELETR = ldblUnidaMedidorConsumo
                        objTempFaturaNF3EA.DEMCONTRP = ldblUnidaDemContrPonta
                        objTempFaturaNF3EA.DEMCONTRFP = ldblUnidaDemContrFp
                        objTempFaturaNF3EA.DEMCONTRPANTERIOR = ldblUnidaDemAnteriorContrPonta
                        objTempFaturaNF3EA.DEMCONTRFPANTERIOR = ldblUnidaDemAnteriorContrFp
                        objTempFaturaNF3EA.PERIODO_TESTE = IIf(lblnFaturaPeriodoTeste, 1, 0)
                        objTempFaturaNF3EA.CONST_KVARH = ldblUnidaConstReativo
                        objTempFaturaNF3EA.CONST_KW = ldblUnidaConstDemanda
                        objTempFaturaNF3EA.CONST_KWH = ldblUnidaConstConsumo
                        objTempFaturaNF3EA.CONST_DEMANDA_FP = ldblUnidaConstDemandaFp
                        objTempFaturaNF3EA.KW_CONT = ldblUnidaDemandaContr
                        objTempFaturaNF3EA.CARGA = ldblUnidaCarga
                        objTempFaturaNF3EA.PERDA = ldblUnidaFinal
                        objTempFaturaNF3EA.REFCONS = IIf(String.IsNullOrEmpty(lstrConsumidorNome), " ", lstrConsumidorNome)
                        'LEITURAS
                        'REATIVO CONSUMO
                        objTempFaturaNF3EA.LEIT_KVARH_ANT = ldblLeitConsReativoPontaAnter
                        objTempFaturaNF3EA.LEIT_KVARH_ATUAL = ldblLeitConsReativoPontaAtual
                        objTempFaturaNF3EA.LEITANT_KVARH_P = ldblLeitConsReativoPontaAnter
                        objTempFaturaNF3EA.LEIT_KVARH_P = ldblLeitConsReativoPontaAtual
                        objTempFaturaNF3EA.LEITANT_KVARH_FP = ldblLeitConsReativoForaPAnter
                        objTempFaturaNF3EA.LEIT_KVARH_FP = ldblLeitConsReativoForaPAtual
                        'DEMANDA
                        objTempFaturaNF3EA.LEIT_KW_ANT = ldblLeitDemandaPontaAnter
                        objTempFaturaNF3EA.LEIT_KW_ATUAL = ldblLeitDemandaPontaAtual
                        objTempFaturaNF3EA.LEITANT_KW_P = ldblLeitDemandaPontaAnter
                        objTempFaturaNF3EA.LEIT_KW_P = ldblLeitDemandaPontaAtual
                        objTempFaturaNF3EA.LEITANT_KW_FP = ldblLeitDemandaForaPAnter
                        objTempFaturaNF3EA.LEIT_KW_FP = ldblLeitDemandaForaPAtual
                        'CONSUMO
                        objTempFaturaNF3EA.LEIT_KWH_ANT = ldblLeitConsumoPontaAnter
                        objTempFaturaNF3EA.LEIT_KWH_ATUAL = ldblLeitConsumoPontaAtual
                        objTempFaturaNF3EA.LEITANT_KWH_P = ldblLeitConsumoPontaAnter
                        objTempFaturaNF3EA.LEIT_KWH_P = ldblLeitConsumoPontaAtual
                        objTempFaturaNF3EA.LEITANT_KWH_FP = ldblLeitConsumoForaPAnter
                        objTempFaturaNF3EA.LEIT_KWH_FP = ldblLeitConsumoForaPAtual
                        'MICRO GERAÇÃO
                        objTempFaturaNF3EA.LEITANT_REVERSO_P = ldblLeitReversoPontaAnter
                        objTempFaturaNF3EA.LEIT_REVERSO_P = ldblLeitReversoPontaAtual
                        objTempFaturaNF3EA.LEITANT_REVERSO_FP = ldblLeitReversoForaPAnter
                        objTempFaturaNF3EA.LEIT_REVERSO_FP = ldblLeitReversoForaPAtual
                        'CONSUMO RESERVADO
                        objTempFaturaNF3EA.LEITANT_KWH_RES = ldblLeitConsReservadAnter
                        objTempFaturaNF3EA.LEIT_KWH_RES = ldblLeitConsReservadAtual
                        'QUANTIDADES
                        'CONSUMO
                        objTempFaturaNF3EA.CONSMEDIDOP = ldblConsMedidoPonta
                        objTempFaturaNF3EA.CONSMEDIDOFP = ldblConsMedidoForaP
                        objTempFaturaNF3EA.CONSFATURADOP = ldblConsFaturaPonta
                        objTempFaturaNF3EA.CONSFATURADOFP = ldblConsFaturaForaP
                        objTempFaturaNF3EA.CONSCONTRP = ldblConsContraPonta
                        objTempFaturaNF3EA.CONSCONTRFP = ldblConsContraForaP
                        objTempFaturaNF3EA.KWH_MED = ldblConsMedido
                        objTempFaturaNF3EA.KWH_FAT = ldblConsFatura
                        objTempFaturaNF3EA.CONSRESERVADO = ldblConsReservado
                        'MICRO GERAÇÃO
                        objTempFaturaNF3EA.KWH_REVERSO_P = ldblkWhReversoPonta
                        objTempFaturaNF3EA.KWH_REVERSO_FP = ldblkWhReversoForaP
                        objTempFaturaNF3EA.KWH_REVERSO_RES_P = ldblkWhReversoResPonta
                        objTempFaturaNF3EA.KWH_REVERSO_RES_FP = ldblkWhReversoResForaP
                        'DEMANDA
                        objTempFaturaNF3EA.DEMMEDIDAP = ldblDemaMedidaPonta
                        objTempFaturaNF3EA.DEMMEDIDAFP = ldblDemaMedidaForaP
                        objTempFaturaNF3EA.DEMFATURP = ldblDemaFaturaPonta
                        objTempFaturaNF3EA.DEMFATURFP = ldblDemaFaturaForaP
                        objTempFaturaNF3EA.ULTRAP = ldblDemaUltrapPonta
                        objTempFaturaNF3EA.ULTRAFP = ldblDemaUltrapForaP
                        objTempFaturaNF3EA.KW_MED = ldblDemaMedida
                        objTempFaturaNF3EA.KW_FAT = ldblDemaFatura
                        objTempFaturaNF3EA.KW_ULTRA = ldblDemaUltrap
                        'FATOR DE POTENCIA
                        objTempFaturaNF3EA.KVARH_FPOT = ldblFatorPontencia
                        'REATIVO CONSUMO
                        objTempFaturaNF3EA.FER_P = ldblReatConsumPonta
                        objTempFaturaNF3EA.FER_FP = ldblReatConsumForaP
                        objTempFaturaNF3EA.KVARH_MED = ldblReatMedido
                        'REATIVO DEMANDA
                        objTempFaturaNF3EA.LEIT_KVAR_P = ldblReatDemandPonta
                        objTempFaturaNF3EA.LEIT_KVAR_FP = ldblReatDemandForaP
                        'TRIBUTOS
                        'ICMS
                        objTempFaturaNF3EA.BASE_ICMS = ldblBaseIcms
                        objTempFaturaNF3EA.ALIQ_ICMS = ldblAliqIcms
                        objTempFaturaNF3EA.VLR_ICMS = ldblValrIcms
                        objTempFaturaNF3EA.BASE_ICMS2 = ldblBaseIcms2
                        objTempFaturaNF3EA.ALIQ_ICMS2 = ldblAliqIcms2
                        objTempFaturaNF3EA.VLR_ICMS2 = ldblValrIcms2
                        'PIS
                        objTempFaturaNF3EA.BASEPIS = ldblBasePis
                        objTempFaturaNF3EA.ALIQPIS = ldblAliqPis
                        objTempFaturaNF3EA.VLRPIS = ldblValrPis
                        'COFINS
                        objTempFaturaNF3EA.BASECOFINS = ldblBaseCofins
                        objTempFaturaNF3EA.ALIQCOFINS = ldblAliqCofins
                        objTempFaturaNF3EA.VLRCOFINS = ldblValrCofins
                        '********************************************
                        'TRIBUTAÇÃO DA COMERCIALIZAÇÃO DOS LIVRES
                        'ICMS
                        objTempFaturaNF3EA.BASE_ICMS_ST = ldblBaseIcmSt
                        objTempFaturaNF3EA.ALIQ_ICMS_ST = ldblAliqIcmSt
                        objTempFaturaNF3EA.VLR_ICMS_ST = ldblValrIcmSt
                        'PIS
                        objTempFaturaNF3EA.BASEPIS_ST = ldblBasePisSt
                        objTempFaturaNF3EA.ALIQPIS_ST = ldblAliqPisSt
                        objTempFaturaNF3EA.VLRPIS_ST = ldblValrPisSt
                        'COFINS
                        objTempFaturaNF3EA.BASECOFINS_ST = ldblBaseCofSt
                        objTempFaturaNF3EA.ALIQCOFINS_ST = ldblAliqCofSt
                        objTempFaturaNF3EA.VLRCOFINS_ST = ldblValrCofSt
                        'VALOR DA COMPRA (R$)
                        objTempFaturaNF3EA.VLRENERGIA_ST = ldblVCompraSt
                        objTempFaturaNF3EA.VLRPCMEDIO_ST = ldblVPMedioSt
                        objTempFaturaNF3EA.VLRCONSUMO_ST = ldblVConsumSt
                        objTempFaturaNF3EA.REFERENCIA_ST = IIf(String.IsNullOrEmpty(lstrReferenSt), " ", lstrReferenSt)
                        '********************************************
                        'INDICADOR DE CONTINUIDADE
                        objTempFaturaNF3EA.DEC_META = ldblDecMeta
                        objTempFaturaNF3EA.FEC_META = ldblFecMeta
                        objTempFaturaNF3EA.DIC_META = ldblDicMeta
                        objTempFaturaNF3EA.FIC_META = ldblFicMeta
                        objTempFaturaNF3EA.DMIC = ldblDmicMet
                        objTempFaturaNF3EA.DEC_REA = ldblDecReal
                        objTempFaturaNF3EA.FEC_REA = ldblFecReal
                        objTempFaturaNF3EA.DIC_REA = ldblDicReal
                        objTempFaturaNF3EA.FIC_REA = ldblFicReal
                        objTempFaturaNF3EA.DMIC_REA = ldblDmicRea
                        objTempFaturaNF3EA.REFINDICADOR = IIf(String.IsNullOrEmpty(lstrRefICon), " ", lstrRefICon)
                        'RENTENÇÃO TRIBUTÁRIA
                        'CONSUMO
                        objTempFaturaNF3EA.RET_PIS = ldblRetPisCons
                        objTempFaturaNF3EA.RET_COFINS = ldblRetCofCons
                        objTempFaturaNF3EA.RET_CSLL = ldblRetCslCons
                        objTempFaturaNF3EA.RET_IRPJC = ldblRetIrpCons
                        'DEMANDA
                        objTempFaturaNF3EA.RET_IRPJD = ldblRetIrpDema
                        objTempFaturaNF3EA.RET_CSLLD = ldblRetCslDema
                        objTempFaturaNF3EA.RET_COFINSD = ldblRetCofDema
                        objTempFaturaNF3EA.RET_PISD = ldblRetPisDema
                        'COMPOSIÇÃO DA FATURA
                        objTempFaturaNF3EA.COMP_ENERGIA = ldblCompEnergia
                        objTempFaturaNF3EA.COMP_TRANSMISSAO = ldblCompTransmissao
                        objTempFaturaNF3EA.COMP_DISTRIBUICAO = ldblCompDistribuicao
                        objTempFaturaNF3EA.COMP_ENCARGOS_SETORIAIS = ldblCompEncargosSetoriais
                        'TARIFAS
                        objTempFaturaNF3EA.TA_DEMP = ldblTarDemaPonta
                        objTempFaturaNF3EA.TA_DEMFP = ldblTarDemaForaP
                        objTempFaturaNF3EA.TA_ULTRAP = ldblTarDUltPonta
                        objTempFaturaNF3EA.TA_ULTRAFP = ldblTarDUltForaP
                        objTempFaturaNF3EA.TA_CONSP = ldblTarConsPonta
                        objTempFaturaNF3EA.TA_CONSFP = ldblTarConsForaP
                        'MENSAGEM DA FATURA
                        objTempFaturaNF3EA.MENSAGEM_BANDEIRA = IIf(String.IsNullOrEmpty(lstrFaturasMensagemBandeira), " ", lstrFaturasMensagemBandeira)
                        objTempFaturaNF3EA.BANDEIRA = llngBandeira
                        objTempFaturaNF3EA.FRENTEVERSO = 0
                        objTempFaturaNF3EA.LIVRE_VERDE = lintFaturasLivreVerde
                        objTempFaturaNF3EA.PARC_CATIVO = lintFaturasParcCativo
                        objTempFaturaNF3EA.MENSAGEM = IIf(String.IsNullOrEmpty(lstrMensagem), " ", lstrMensagem)
                        objTempFaturaNF3EA.ITENSIMP = IIf(String.IsNullOrEmpty(lstrFaturasItensImp), " ", lstrFaturasItensImp)

                        lInsert(objTempFaturaNF3EA)

                        If aintSegVia <> 4 Then

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

                            repositorioTempHistFaturaNF3EA.Execute(objTempHistFaturaNF3EA)

                        End If


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

                        'If Me.chkOpcional.CheckState = System.Windows.Forms.CheckState.Checked And Me.chkVerificaCriaTempItemFatura.CheckState = System.Windows.Forms.CheckState.Checked Then
                        VerificaCriaTempItemFatura(ldblFaturasNumNf, llngFaturasMesAnoRef, llngFaturasAnoMes_Fat, "A")
                        'End If

                    Next

                    If aintSegVia <> 4 Then
                        'FATURAS PENDENTES
                        Me.lblInfo.Text = "Processando faturas pendentes..."
                        Me.lblInfo.Refresh()

                        objTempFaturaNF3EA.MESANO = lstrMesAno
                        objTempFaturaNF3EA.NOMEMAQUINA = vUsuario.LOGIN
                        objTempFaturaNF3EA.LISTENVIADONF3E = listEnviadoNF3E

                        lUpdate(objTempFaturaNF3EA)

                    End If

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

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

            End If

        Catch ex As Exception
            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 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 = "")

        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 lstrFaturasAnoMes_Fat As String
        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 lstrFaturaCodImagem 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

        '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

        ' 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 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 lstrSqlAnd As String

        Dim listEnviadoNF3E As String

        Dim vlist

        Dim vlist_1

        Dim objGDCompensacao As New entidadeGDCompensacao
        Dim repositorioGDCompensacao As New repositorioGDCompensacao

        Dim objNf As New entidadeNf
        Dim repositorioNf As New repositorioNf

        Dim objNfTransicao As New entidadeNfTransicao
        Dim repositorioNfTransicao As New repositorioNfTransicao

        Dim objTempFaturaNF3EB As New entidadeTempFaturaNF3EB
        Dim repositorioTempFaturaNF3EB As New repositorioTempFaturaNF3EB

        Dim dblContador As Double = 0


        Try

            objTempFaturaNF3EB.ENVIADONF3E = 1
            objTempFaturaNF3EB.MESANOREF = Format(Me.dtpMesAno.Value, "yyyyMM")

            vlist = repositorioTempFaturaNF3EB.Select_1(objTempFaturaNF3EB)

            If vlist.Count <> 0 Then

                listEnviadoNF3E = String.Empty

                For Each objTempFaturaNF3EBFor As entidadeTempFaturaNF3EB In vlist
                    listEnviadoNF3E = listEnviadoNF3E + Convert.ToString(objTempFaturaNF3EBFor.NUMNF) + ","
                Next

                listEnviadoNF3E = listEnviadoNF3E.Remove(listEnviadoNF3E.Length - 1)

            Else
                listEnviadoNF3E = String.Empty
            End If

            lstrMensAux = GetConfig("fatura.mensagem")

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

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

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

            istrGrupo = "B"

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

            If aintSegVia > 0 Then
                lstrMesAno = astrMesAno
            Else
                'lstrMesAno = VB6.Format(Me.dtpMesAno.Value, "mm/yyyy")
                lstrMesAno = VB6.Format(Me.dtpMesAno.Value, "yyyyMM")
            End If

            Me.lblInfo.Text = "Aguarde, buscando as faturas..."
            System.Windows.Forms.Application.DoEvents()

            'lstrSqlAnd = lstrSqlAnd & "  AND FATURAS.MESANO_REF = """ & CInt(Microsoft.VisualBasic.Right(lstrMesAno, 4) & Microsoft.VisualBasic.Left(lstrMesAno, 2)) & """ " & vbCrLf
            lstrSqlAnd = lstrSqlAnd & "  AND FATURAS.ANOMES_FAT = " & lstrMesAno & " " & vbCrLf
            lstrSqlAnd = lstrSqlAnd & "  AND FATURAS.GRUPO = 'B' "

            If Not String.IsNullOrEmpty(listEnviadoNF3E) Then

                lstrSqlAnd = lstrSqlAnd & " AND FATURAS.NUMNF NOT IN (" + listEnviadoNF3E + ") "

            End If

            If Not String.IsNullOrEmpty(listNF3eSelecionada) Then

                listNF3eSelecionada = listNF3eSelecionada.Remove(listNF3eSelecionada.Length - 1)

                lstrSqlAnd = lstrSqlAnd & " AND FATURAS.NUMNF IN (" + listNF3eSelecionada + ") "

            End If

            If gstrEmpresa_Sigla = "CERES" Then
                lstrSqlAnd = lstrSqlAnd & " AND UC_FATURAMENTO.UF = 'RJ' "
            End If

            If istrTabela.ToUpper() = "NF" Then

                objNf.TA = lstrSqlAnd

                vlist = repositorioNf.SelectOthersTables_8(objNf)

                If vlist.Count <> 0 Then


                    Me.lblInfo.Text = "Aguarde, limpando dados temporários..."

                    System.Windows.Forms.Application.DoEvents()

                    objTempFaturaNF3EB.ENVIADONF3E = 0
                    objTempFaturaNF3EB.MESANOREF = Format(Me.dtpMesAno.Value, "yyyyMM")
                    lDelete(objTempFaturaNF3EB)

                    Me.lblInfo.Text = "Aguarde, gerando as faturas..."

                    System.Windows.Forms.Application.DoEvents()

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

                    For Each objNfFor As entidadeNf In vlist

                        If dblContador = 697 Then
                            dblContador = dblContador
                        End If

                        'Dados da Fatura

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

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

                        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), "000000000")

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

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

                        'Arlindo 160822
                        'RefazConsumos(llngFaturasConsId, llngFaturasUnidId, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, VB6.Format(Me.dtpMesAno.Value, "mm/yyyy"))

                        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/" & Mid(lstrMesAno, 5, 2) & "/" & Mid(lstrMesAno, 1, 4)), 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)

                        lstrFaturasAnoMes_Fat = IIf(IsDBNull(objNfFor.MESANO), "", objNfFor.ANOMES_FAT)

                        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 = Mid(lstrMesAno, 5, 2) & "/" & Mid(lstrMesAno, 1, 4)
                            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

                        lstrMsg712 = Trim(GetMsgBaixaRenda(CInt(VB6.Format(Me.dtpMesAno.Value, "yyyyMM")), lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, 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(Me.dtpMesAno.Value, "yyyyMM")), lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, ldteBase))
                        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 Me.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

                        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 chkQuitacaoDebito.CheckState = 1 Then
                        '    lstrMensagem = lstrMensagem & vbCrLf & VerificaQuitacaoDebito(llngFaturasConsId, CDbl(Microsoft.VisualBasic.Left(CStr(llngFaturasMesAnoRef), 4)) - 1, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta)
                        'End If

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

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

                        If Len(lstrFaturasCodBarra) = 0 And Me.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Unchecked Then
                            MontaCodBarras(ldblFaturasNumNf, lstrFaturasMesAno, ldblFaturasValorLiq, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, lstrFaturasCodBarra, lstrFaturasDvCodBarra, CStr(ldteFaturasVencimento), lstrFaturaCodImagem)
                        Else
                            '            lstrFaturasCodBarra = ""
                            '            lstrFaturasDvCodBarra = ""
                        End If

                        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))

                        '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

                        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(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))
                        '
                        ' 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, "0302010009") 'consfat
                        ldblConsMedido = BuscaVlrItem(lstrFaturasItensSev, "030201008") 'conslido
                        ldblConsResiduo = BuscaVlrItem(lstrFaturasItensSev, "0302020998") 'consresiduo
                        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)

                        '
                        ' Reverso
                        '
                        ldblReversoLAtual = BuscaVlrItem(lstrFaturasItensSev, "0302990049")
                        ldblReversoLAnter = BuscaVlrItem(lstrFaturasItensSev, "0302990050")
                        ldblReversokWhFat = BuscaVlrItem(lstrFaturasItensSev, "0302020995")
                        ldblReversokWhRes = BuscaVlrItem(lstrFaturasItensSev, "0302020997")
                        ldblReversokWh = BuscaVlrItem(lstrFaturasItensSev, "0302020996")
                        '
                        ' 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

                        objTempFaturaNF3EB.SEGVIA = IIf(Me.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Checked, 3, aintSegVia)
                        objTempFaturaNF3EB.NOMEMAQUINA = vUsuario.LOGIN

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

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

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

                        ' Reverso
                        objTempFaturaNF3EB.LEIT_REVERSO_ATUAL = ldblReversoLAtual
                        objTempFaturaNF3EB.LEIT_REVERSO_ANTER = ldblReversoLAnter
                        objTempFaturaNF3EB.KWH_REVERSO_FAT = ldblReversokWhFat
                        objTempFaturaNF3EB.KWH_REVERSO_RES = ldblReversokWhRes
                        objTempFaturaNF3EB.KWH_REVERSO_LID = ldblReversokWh
                        objTempFaturaNF3EB.MICRO_GERACAO = lintMicroGeracao

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

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

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

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

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

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

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

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

                        'Outros
                        objTempFaturaNF3EB.MENSAGEM = IIf(String.IsNullOrEmpty(lstrMensagem), " ", lstrMensagem)
                        objTempFaturaNF3EB.ITENSIMP = IIf(String.IsNullOrEmpty(lstrFaturasItensImp), " ", lstrFaturasItensImp)
                        objTempFaturaNF3EB.MENSAGEM_BANDEIRA = IIf(String.IsNullOrEmpty(lstrFaturasMensagemBandeira), " ", lstrFaturasMensagemBandeira)
                        objTempFaturaNF3EB.BANDEIRA = llngBandeira
                        objTempFaturaNF3EB.FRENTEVERSO = 0
                        objTempFaturaNF3EB.OCORRENCIA = IIf(String.IsNullOrEmpty(lstrOcorrencia), " ", lstrOcorrencia)
                        objTempFaturaNF3EB.SALDOACUMULADO = ldblSaldoAcumulado

                        lInsert(objTempFaturaNF3EB)

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

                        astrMesAno = "01/" & Mid(lstrMesAno, 1, 4)

                        'llngFaturasAnoMes_Fat = Convert.ToDateTime("01/" + astrMesAno).ToString("yyyyMM")
                        llngFaturasAnoMes_Fat = lstrMesAno
                        'VerificaCriaTempItemFatura(ldblFaturasNumNf, astrMesAno, llngFaturasAnoMes_Fat, "B")

                        dblContador += 1

                    Next

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

                    For llngConta = 0 To 11

                        objTempFaturaNF3EB.AUXIMP = llngConta
                        objTempFaturaNF3EB.LISTENVIADONF3E = listEnviadoNF3E
                        lUpdate(objTempFaturaNF3EB)

                    Next llngConta

                    If Me.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Checked Then

                        objTempFaturaNF3EB.NOMEMAQUINA = vUsuario.LOGIN
                        objTempFaturaNF3EB.LISTENVIADONF3E = listEnviadoNF3E
                        lUpdate_1(objTempFaturaNF3EB)

                    End If

                    Me.Cursor = System.Windows.Forms.Cursors.Arrow
                    lblInfo.Text = " "
                    Me.lblInfo.Refresh()


                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

                    Me.lblInfo.Text = "Aguarde, limpando dados temporários..."

                    System.Windows.Forms.Application.DoEvents()

                    objTempFaturaNF3EB.ENVIADONF3E = 0
                    objTempFaturaNF3EB.MESANOREF = Format(Me.dtpMesAno.Value, "yyyyMM")
                    lDelete(objTempFaturaNF3EB)

                    Me.lblInfo.Text = "Aguarde, gerando as faturas..."

                    System.Windows.Forms.Application.DoEvents()

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

                    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))

                        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), "000000000")

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

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

                        'Arlindo 160822
                        'RefazConsumos(llngFaturasConsId, llngFaturasUnidId, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, VB6.Format(Me.dtpMesAno.Value, "mm/yyyy"))

                        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)

                        lstrFaturasAnoMes_Fat = IIf(IsDBNull(objNfTransicaoFor.ANOMES_FAT), "", objNfTransicaoFor.ANOMES_FAT)

                        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))

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

                        lstrMensAux1 = ""

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


                            If Len(Trim(astrMesAno)) = 0 Then
                                astrMesAno = Format(lstrMesAno, "MM/yyyy")
                            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

                        lstrMsg712 = Trim(GetMsgBaixaRenda(CInt(VB6.Format(Me.dtpMesAno.Value, "yyyyMM")), lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, 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(Me.dtpMesAno.Value, "yyyyMM")), lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, ldteBase))
                        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 Me.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

                        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 chkQuitacaoDebito.CheckState = 1 Then
                        '    lstrMensagem = lstrMensagem & vbCrLf & VerificaQuitacaoDebito(llngFaturasConsId, CDbl(Microsoft.VisualBasic.Left(CStr(llngFaturasMesAnoRef), 4)) - 1, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta)
                        'End If

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

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

                        If Len(lstrFaturasCodBarra) = 0 And Me.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Unchecked Then
                            MontaCodBarras(ldblFaturasNumNf, lstrFaturasMesAno, ldblFaturasValorLiq, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, lstrFaturasCodBarra, lstrFaturasDvCodBarra, CStr(ldteFaturasVencimento), lstrFaturaCodImagem)
                        Else
                            '            lstrFaturasCodBarra = ""
                            '            lstrFaturasDvCodBarra = ""
                        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

                        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))
                        '
                        ' 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
                        ldblConsMedido = BuscaVlrItem(lstrFaturasItensSev, "030201008") 'conslido
                        ldblConsResiduo = BuscaVlrItem(lstrFaturasItensSev, "0302020998") 'consresiduo
                        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)
                        '
                        ' Reverso
                        '
                        ldblReversoLAtual = BuscaVlrItem(lstrFaturasItensSev, "0302990049")
                        ldblReversoLAnter = BuscaVlrItem(lstrFaturasItensSev, "0302990050")
                        ldblReversokWhFat = BuscaVlrItem(lstrFaturasItensSev, "0302020995")
                        ldblReversokWhRes = BuscaVlrItem(lstrFaturasItensSev, "0302020997")
                        ldblReversokWh = BuscaVlrItem(lstrFaturasItensSev, "0302020996")
                        '
                        ' 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


                        objTempFaturaNF3EB.SEGVIA = IIf(Me.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Checked, 3, aintSegVia)
                        objTempFaturaNF3EB.NOMEMAQUINA = vUsuario.LOGIN

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

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

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

                        ' Reverso
                        objTempFaturaNF3EB.LEIT_REVERSO_ATUAL = ldblReversoLAtual
                        objTempFaturaNF3EB.LEIT_REVERSO_ANTER = ldblReversoLAnter
                        objTempFaturaNF3EB.KWH_REVERSO_FAT = ldblReversokWhFat
                        objTempFaturaNF3EB.KWH_REVERSO_RES = ldblReversokWhRes
                        objTempFaturaNF3EB.KWH_REVERSO_LID = ldblReversokWh
                        objTempFaturaNF3EB.MICRO_GERACAO = lintMicroGeracao

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

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

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

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

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

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

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

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

                        'Outros
                        objTempFaturaNF3EB.MENSAGEM = IIf(String.IsNullOrEmpty(lstrMensagem), " ", lstrMensagem)
                        objTempFaturaNF3EB.ITENSIMP = IIf(String.IsNullOrEmpty(lstrFaturasItensImp), " ", lstrFaturasItensImp)
                        objTempFaturaNF3EB.MENSAGEM_BANDEIRA = IIf(String.IsNullOrEmpty(lstrFaturasMensagemBandeira), " ", lstrFaturasMensagemBandeira)
                        objTempFaturaNF3EB.BANDEIRA = llngBandeira
                        objTempFaturaNF3EB.FRENTEVERSO = 0
                        objTempFaturaNF3EB.OCORRENCIA = IIf(String.IsNullOrEmpty(lstrOcorrencia), " ", lstrOcorrencia)
                        objTempFaturaNF3EB.SALDOACUMULADO = ldblSaldoAcumulado


                        lInsert(objTempFaturaNF3EB)

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

                        astrMesAno = "01/" & Mid(lstrMesAno, 1, 4)
                        llngFaturasAnoMes_Fat = lstrMesAno

                        'llngFaturasAnoMes_Fat = Convert.ToDateTime("01/" + astrMesAno).ToString("yyyyMM")
                        VerificaCriaTempItemFatura(ldblFaturasNumNf, astrMesAno, llngFaturasAnoMes_Fat, "B")

                    Next

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

                    For llngConta = 0 To 11

                        objTempFaturaNF3EB.AUXIMP = llngConta
                        objTempFaturaNF3EB.LISTENVIADONF3E = listEnviadoNF3E
                        lUpdate(objTempFaturaNF3EB)

                    Next llngConta

                    If Me.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Checked Then

                        objTempFaturaNF3EB.NOMEMAQUINA = vUsuario.LOGIN
                        objTempFaturaNF3EB.LISTENVIADONF3E = listEnviadoNF3E
                        lUpdate_1(objTempFaturaNF3EB)

                    End If

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

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


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


            End If


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

    End Sub

    Public Sub GeraFaturaGrupoB_TabOrigen(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 = "")

        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 lstrFaturasAnoMes_Fat As String
        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 lstrFaturaCodImagem 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

        '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

        ' 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 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 lstrSqlAnd As String

        Dim listEnviadoNF3E As String

        Dim vlist

        Dim vlist_1

        Dim objGDCompensacao As New entidadeGDCompensacao
        Dim repositorioGDCompensacao As New repositorioGDCompensacao

        Dim objNf As New entidadeNf
        Dim repositorioNf As New repositorioNf

        Dim objNfTransicao As New entidadeNfTransicao
        Dim repositorioNfTransicao As New repositorioNfTransicao

        Dim objTempFaturaNF3EB As New entidadeTempFaturaNF3EB
        Dim repositorioTempFaturaNF3EB As New repositorioTempFaturaNF3EB

        Dim dblContador As Double = 0

        Try

            objTempFaturaNF3EB.ENVIADONF3E = 1
            objTempFaturaNF3EB.MESANOREF = Format(Me.dtpMesAno.Value, "yyyyMM")

            vlist = repositorioTempFaturaNF3EB.Select_1(objTempFaturaNF3EB)

            If vlist.Count <> 0 Then

                listEnviadoNF3E = String.Empty

                For Each objTempFaturaNF3EBFor As entidadeTempFaturaNF3EB In vlist
                    listEnviadoNF3E = listEnviadoNF3E + Convert.ToString(objTempFaturaNF3EBFor.NUMNF) + ","
                Next

                listEnviadoNF3E = listEnviadoNF3E.Remove(listEnviadoNF3E.Length - 1)

            Else
                listEnviadoNF3E = String.Empty
            End If

            lstrMensAux = GetConfig("fatura.mensagem")

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

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

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

            istrGrupo = "B"

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

            If aintSegVia > 0 Then
                lstrMesAno = astrMesAno
            Else
                lstrMesAno = VB6.Format(Me.dtpMesAno.Value, "yyyyMM")
            End If

            Me.lblInfo.Text = "Aguarde, buscando as faturas..."
            System.Windows.Forms.Application.DoEvents()

            lstrSqlAnd = lstrSqlAnd & "  AND FATURAS.ANOMES_FAT = " & lstrMesAno & " " & vbCrLf
            lstrSqlAnd = lstrSqlAnd & "  AND FATURAS.GRUPO = 'B' "

            If Not String.IsNullOrEmpty(listEnviadoNF3E) Then
                lstrSqlAnd = lstrSqlAnd & " AND FATURAS.NUMNF NOT IN (" + listEnviadoNF3E + ") "
            End If

            If Not String.IsNullOrEmpty(listNF3eSelecionada) Then

                listNF3eSelecionada = listNF3eSelecionada.Remove(listNF3eSelecionada.Length - 1)

                lstrSqlAnd = lstrSqlAnd & " AND FATURAS.NUMNF IN (" + listNF3eSelecionada + ") "

            End If

            If gstrEmpresa_Sigla = "CERES" Then
                lstrSqlAnd = lstrSqlAnd & " AND UC_FATURAMENTO.UF = 'RJ' "
            End If

            If istrTabela.ToUpper() = "NF" Then

                objNf.TA = lstrSqlAnd

                vlist = repositorioNf.SelectOthersTables_8(objNf)

                If vlist.Count <> 0 Then

                    Me.lblInfo.Text = "Aguarde, limpando dados temporários..."

                    System.Windows.Forms.Application.DoEvents()

                    objTempFaturaNF3EB.ENVIADONF3E = 0
                    objTempFaturaNF3EB.MESANOREF = Format(Me.dtpMesAno.Value, "yyyyMM")
                    lDelete(objTempFaturaNF3EB)

                    Me.lblInfo.Text = "Aguarde, gerando as faturas..."

                    System.Windows.Forms.Application.DoEvents()

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

                    For Each objNfFor As entidadeNf In vlist

                        If dblContador = 697 Then
                            dblContador = dblContador
                        End If

                        'Dados da Fatura

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

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

                        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), "000000000")

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

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

                        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/" & Mid(lstrMesAno, 5, 2) & "/" & Mid(lstrMesAno, 1, 4)), 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)

                        lstrFaturasAnoMes_Fat = IIf(IsDBNull(objNfFor.MESANO), "", objNfFor.ANOMES_FAT)

                        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 = Mid(lstrMesAno, 5, 2) & "/" & Mid(lstrMesAno, 1, 4)
                            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

                        lstrMsg712 = Trim(GetMsgBaixaRenda(CInt(VB6.Format(Me.dtpMesAno.Value, "yyyyMM")), lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, 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(Me.dtpMesAno.Value, "yyyyMM")), lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, ldteBase))
                        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 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

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

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

                        If Len(lstrFaturasCodBarra) = 0 And Me.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Unchecked Then
                            MontaCodBarras(ldblFaturasNumNf, lstrFaturasMesAno, ldblFaturasValorLiq, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, lstrFaturasCodBarra, lstrFaturasDvCodBarra, CStr(ldteFaturasVencimento), lstrFaturaCodImagem)
                        End If

                        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))

                        '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

                        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(objNfFor.entidadeCONSUM.CEP), "0", objNfFor.entidadeCONSUM.CEP))

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

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

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

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

                        ' 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, "0302010009") 'consfat
                        ldblConsMedido = BuscaVlrItem(lstrFaturasItensSev, "030201008") 'conslido
                        ldblConsResiduo = BuscaVlrItem(lstrFaturasItensSev, "0302020998") 'consresiduo
                        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)

                        ' Reverso
                        ldblReversoLAtual = BuscaVlrItem(lstrFaturasItensSev, "0302990049")
                        ldblReversoLAnter = BuscaVlrItem(lstrFaturasItensSev, "0302990050")
                        ldblReversokWhFat = BuscaVlrItem(lstrFaturasItensSev, "0302020995")
                        ldblReversokWhRes = BuscaVlrItem(lstrFaturasItensSev, "0302020997")
                        ldblReversokWh = BuscaVlrItem(lstrFaturasItensSev, "0302020996")

                        ' 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

                        'Outros
                        lstrOcorrencia = BuscaRefItem(lstrFaturasItensSev, "90410000") 'ocorrencias

                        objTempFaturaNF3EB.SEGVIA = IIf(Me.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Checked, 3, aintSegVia)
                        objTempFaturaNF3EB.NOMEMAQUINA = vUsuario.LOGIN

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

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

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

                        ' Reverso
                        objTempFaturaNF3EB.LEIT_REVERSO_ATUAL = ldblReversoLAtual
                        objTempFaturaNF3EB.LEIT_REVERSO_ANTER = ldblReversoLAnter
                        objTempFaturaNF3EB.KWH_REVERSO_FAT = ldblReversokWhFat
                        objTempFaturaNF3EB.KWH_REVERSO_RES = ldblReversokWhRes
                        objTempFaturaNF3EB.KWH_REVERSO_LID = ldblReversokWh
                        objTempFaturaNF3EB.MICRO_GERACAO = lintMicroGeracao

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

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

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

                        'Indicador de Continuidade 
                        objTempFaturaNF3EB.DEC_META = ldblDecMeta
                        objTempFaturaNF3EB.FEC_META = ldblFecMeta
                        objTempFaturaNF3EB.DIC_META = ldblDicMeta
                        objTempFaturaNF3EB.FIC_META = ldblFicMeta
                        objTempFaturaNF3EB.DMIC = ldblDmicMet
                        objTempFaturaNF3EB.DEC_REA = ldblDecReal
                        objTempFaturaNF3EB.FEC_REA = ldblFecReal
                        objTempFaturaNF3EB.DIC_REA = ldblDicReal
                        objTempFaturaNF3EB.FIC_REA = ldblFicReal
                        objTempFaturaNF3EB.DMIC_REA = ldblDmicRea
                        objTempFaturaNF3EB.REFINDICADOR = IIf(String.IsNullOrEmpty(lstrRefICon), " ", lstrRefICon)

                        'Retenção Tributária                        
                        objTempFaturaNF3EB.RET_IRPJ = ldblRetIrpj
                        objTempFaturaNF3EB.RET_PIS = ldblRetPis
                        objTempFaturaNF3EB.RET_CSLL = ldblRetCsll
                        objTempFaturaNF3EB.RET_COFINS = ldblRetCofins

                        'Composição da Fatura                       
                        objTempFaturaNF3EB.COMP_ENERGIA = ldblCompEnergia
                        objTempFaturaNF3EB.COMP_TRANSMISSAO = ldblCompTransmissao
                        objTempFaturaNF3EB.COMP_DISTRIBUICAO = ldblCompDistribuicao
                        objTempFaturaNF3EB.COMP_ENCARGOS_SETORIAIS = ldblCompEncargosSetoriais

                        'Outros
                        objTempFaturaNF3EB.MENSAGEM = IIf(String.IsNullOrEmpty(lstrMensagem), " ", lstrMensagem)
                        objTempFaturaNF3EB.ITENSIMP = IIf(String.IsNullOrEmpty(lstrFaturasItensImp), " ", lstrFaturasItensImp)
                        objTempFaturaNF3EB.MENSAGEM_BANDEIRA = IIf(String.IsNullOrEmpty(lstrFaturasMensagemBandeira), " ", lstrFaturasMensagemBandeira)
                        objTempFaturaNF3EB.BANDEIRA = llngBandeira
                        objTempFaturaNF3EB.FRENTEVERSO = 0
                        objTempFaturaNF3EB.OCORRENCIA = IIf(String.IsNullOrEmpty(lstrOcorrencia), " ", lstrOcorrencia)
                        objTempFaturaNF3EB.SALDOACUMULADO = ldblSaldoAcumulado

                        lInsert(objTempFaturaNF3EB)

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

                        astrMesAno = "01/" & Mid(lstrMesAno, 1, 4)

                        llngFaturasAnoMes_Fat = lstrMesAno

                        dblContador += 1

                    Next

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

                    For llngConta = 0 To 11

                        objTempFaturaNF3EB.AUXIMP = llngConta
                        objTempFaturaNF3EB.LISTENVIADONF3E = listEnviadoNF3E
                        lUpdate(objTempFaturaNF3EB)

                    Next llngConta

                    If Me.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Checked Then

                        objTempFaturaNF3EB.NOMEMAQUINA = vUsuario.LOGIN
                        objTempFaturaNF3EB.LISTENVIADONF3E = listEnviadoNF3E
                        lUpdate_1(objTempFaturaNF3EB)

                    End If

                    Me.Cursor = System.Windows.Forms.Cursors.Arrow
                    lblInfo.Text = " "
                    Me.lblInfo.Refresh()

                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

                    Me.lblInfo.Text = "Aguarde, limpando dados temporários..."

                    System.Windows.Forms.Application.DoEvents()

                    objTempFaturaNF3EB.ENVIADONF3E = 0
                    objTempFaturaNF3EB.MESANOREF = Format(Me.dtpMesAno.Value, "yyyyMM")
                    lDelete(objTempFaturaNF3EB)

                    Me.lblInfo.Text = "Aguarde, gerando as faturas..."

                    System.Windows.Forms.Application.DoEvents()

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

                    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))

                        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), "000000000")

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

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

                        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)

                        lstrFaturasAnoMes_Fat = IIf(IsDBNull(objNfTransicaoFor.ANOMES_FAT), "", objNfTransicaoFor.ANOMES_FAT)

                        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))

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

                        lstrMensAux1 = ""

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

                            If Len(Trim(astrMesAno)) = 0 Then
                                astrMesAno = Format(lstrMesAno, "MM/yyyy")
                            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

                        lstrMsg712 = Trim(GetMsgBaixaRenda(CInt(VB6.Format(Me.dtpMesAno.Value, "yyyyMM")), lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, 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(Me.dtpMesAno.Value, "yyyyMM")), lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, ldteBase))
                        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 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

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

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

                        If Len(lstrFaturasCodBarra) = 0 And Me.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Unchecked Then
                            MontaCodBarras(ldblFaturasNumNf, lstrFaturasMesAno, ldblFaturasValorLiq, lstrFaturasZona, lstrFaturasLivro, lstrFaturasConta, lstrFaturasCodBarra, lstrFaturasDvCodBarra, CStr(ldteFaturasVencimento), lstrFaturaCodImagem)
                        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

                        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))

                        ' 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
                        ldblConsMedido = BuscaVlrItem(lstrFaturasItensSev, "030201008") 'conslido
                        ldblConsResiduo = BuscaVlrItem(lstrFaturasItensSev, "0302020998") 'consresiduo
                        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)

                        ' Reverso
                        ldblReversoLAtual = BuscaVlrItem(lstrFaturasItensSev, "0302990049")
                        ldblReversoLAnter = BuscaVlrItem(lstrFaturasItensSev, "0302990050")
                        ldblReversokWhFat = BuscaVlrItem(lstrFaturasItensSev, "0302020995")
                        ldblReversokWhRes = BuscaVlrItem(lstrFaturasItensSev, "0302020997")
                        ldblReversokWh = BuscaVlrItem(lstrFaturasItensSev, "0302020996")

                        ' 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

                        'Outros
                        lstrOcorrencia = BuscaRefItem(lstrFaturasItensSev, "90410000") 'ocorrencias

                        objTempFaturaNF3EB.SEGVIA = IIf(Me.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Checked, 3, aintSegVia)
                        objTempFaturaNF3EB.NOMEMAQUINA = vUsuario.LOGIN

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

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

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

                        ' Reverso
                        objTempFaturaNF3EB.LEIT_REVERSO_ATUAL = ldblReversoLAtual
                        objTempFaturaNF3EB.LEIT_REVERSO_ANTER = ldblReversoLAnter
                        objTempFaturaNF3EB.KWH_REVERSO_FAT = ldblReversokWhFat
                        objTempFaturaNF3EB.KWH_REVERSO_RES = ldblReversokWhRes
                        objTempFaturaNF3EB.KWH_REVERSO_LID = ldblReversokWh
                        objTempFaturaNF3EB.MICRO_GERACAO = lintMicroGeracao

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

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

                        ' Tributos
                        ' Icms
                        objTempFaturaNF3EB.BASEICMS = ldblBaseIcms1
                        objTempFaturaNF3EB.ALIQICMS = ldblAliqIcms1
                        objTempFaturaNF3EB.VLRICMS = ldblValrIcms1
                        objTempFaturaNF3EB.BASEICMS1 = ldblBaseIcms2
                        objTempFaturaNF3EB.ALIQICMS1 = ldblAliqIcms2
                        objTempFaturaNF3EB.VLRICMS1 = ldblValrIcms2

                        'Pis                       
                        objTempFaturaNF3EB.BASEPIS = ldblBasePis
                        objTempFaturaNF3EB.ALIQPIS = ldblAliqPis
                        objTempFaturaNF3EB.VLRPIS = ldblValrPis

                        'Cofins                        
                        objTempFaturaNF3EB.BASECOFINS = ldblBaseCofins
                        objTempFaturaNF3EB.ALIQCOFINS = ldblAliqCofins
                        objTempFaturaNF3EB.VLRCOFINS = ldblValrCofins

                        'Outros                        
                        objTempFaturaNF3EB.VLRCONSUTRIB = ldblTotNfTrib
                        objTempFaturaNF3EB.BASEICMSTOTAL = ldblBaseIcmsTotal
                        objTempFaturaNF3EB.VLRICMSTOTAL = ldblValrIcmsTotal

                        'Indicador de Continuidade 
                        objTempFaturaNF3EB.DEC_META = ldblDecMeta
                        objTempFaturaNF3EB.FEC_META = ldblFecMeta
                        objTempFaturaNF3EB.DIC_META = ldblDicMeta
                        objTempFaturaNF3EB.FIC_META = ldblFicMeta
                        objTempFaturaNF3EB.DMIC = ldblDmicMet
                        objTempFaturaNF3EB.DEC_REA = ldblDecReal
                        objTempFaturaNF3EB.FEC_REA = ldblFecReal
                        objTempFaturaNF3EB.DIC_REA = ldblDicReal
                        objTempFaturaNF3EB.FIC_REA = ldblFicReal
                        objTempFaturaNF3EB.DMIC_REA = ldblDmicRea
                        objTempFaturaNF3EB.REFINDICADOR = IIf(String.IsNullOrEmpty(lstrRefICon), " ", lstrRefICon)

                        'Retenção Tributária                        
                        objTempFaturaNF3EB.RET_IRPJ = ldblRetIrpj
                        objTempFaturaNF3EB.RET_PIS = ldblRetPis
                        objTempFaturaNF3EB.RET_CSLL = ldblRetCsll
                        objTempFaturaNF3EB.RET_COFINS = ldblRetCofins

                        'Composição da Fatura                       
                        objTempFaturaNF3EB.COMP_ENERGIA = ldblCompEnergia
                        objTempFaturaNF3EB.COMP_TRANSMISSAO = ldblCompTransmissao
                        objTempFaturaNF3EB.COMP_DISTRIBUICAO = ldblCompDistribuicao
                        objTempFaturaNF3EB.COMP_ENCARGOS_SETORIAIS = ldblCompEncargosSetoriais

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

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

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

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

                        'Outros
                        objTempFaturaNF3EB.MENSAGEM = IIf(String.IsNullOrEmpty(lstrMensagem), " ", lstrMensagem)
                        objTempFaturaNF3EB.ITENSIMP = IIf(String.IsNullOrEmpty(lstrFaturasItensImp), " ", lstrFaturasItensImp)
                        objTempFaturaNF3EB.MENSAGEM_BANDEIRA = IIf(String.IsNullOrEmpty(lstrFaturasMensagemBandeira), " ", lstrFaturasMensagemBandeira)
                        objTempFaturaNF3EB.BANDEIRA = llngBandeira
                        objTempFaturaNF3EB.FRENTEVERSO = 0
                        objTempFaturaNF3EB.OCORRENCIA = IIf(String.IsNullOrEmpty(lstrOcorrencia), " ", lstrOcorrencia)
                        objTempFaturaNF3EB.SALDOACUMULADO = ldblSaldoAcumulado

                        lInsert(objTempFaturaNF3EB)

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

                        astrMesAno = "01/" & Mid(lstrMesAno, 1, 4)
                        llngFaturasAnoMes_Fat = lstrMesAno

                        VerificaCriaTempItemFatura(ldblFaturasNumNf, astrMesAno, llngFaturasAnoMes_Fat, "B")

                    Next

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

                    For llngConta = 0 To 11

                        objTempFaturaNF3EB.AUXIMP = llngConta
                        objTempFaturaNF3EB.LISTENVIADONF3E = listEnviadoNF3E
                        lUpdate(objTempFaturaNF3EB)

                    Next llngConta

                    If Me.chkNfTrans.CheckState = System.Windows.Forms.CheckState.Checked Then

                        objTempFaturaNF3EB.NOMEMAQUINA = vUsuario.LOGIN
                        objTempFaturaNF3EB.LISTENVIADONF3E = listEnviadoNF3E
                        lUpdate_1(objTempFaturaNF3EB)

                    End If

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

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

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

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

    End Sub

    Private Sub GerarXMLNF3eGrupoA(ByRef caminho As String)

        Dim nomeArquivoXML As String

        Dim objTempFaturaNF3EA As New entidadeTempFaturaNF3EA
        Dim repositorioTempFaturaNF3EA As New repositorioTempFaturaNF3EA

        Dim listNF As String

        Dim vlist

        Try

            If Not String.IsNullOrEmpty(listNF3eSelecionada) Then
                objTempFaturaNF3EA.ENVIADONF3E = 0
                objTempFaturaNF3EA.MESANOREF = Format(Me.dtpMesAno.Value, "yyyyMM")
                objTempFaturaNF3EA.LISTNUMNF = listNF3eSelecionada

                vlist = repositorioTempFaturaNF3EA.Select_2(objTempFaturaNF3EA)
            Else
                objTempFaturaNF3EA.ENVIADONF3E = 0
                objTempFaturaNF3EA.MESANOREF = Format(Me.dtpMesAno.Value, "yyyyMM")

                vlist = repositorioTempFaturaNF3EA.Select_1(objTempFaturaNF3EA)
            End If

            If vlist.Count <> 0 Then

                listNF = String.Empty

                Me.lblInfo.Text = "Gerando o XML NF3e"
                Me.lblInfo.Refresh()

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

                For Each objTempFaturaNF3EAFor As entidadeTempFaturaNF3EA In vlist

                    listNF = listNF + Convert.ToString(objTempFaturaNF3EAFor.NUMNF) + ","

                    nomeArquivoXML = "XML_" + objTempFaturaNF3EAFor.NUMNF.ToString + ".xml"

                    ExportarXMLNF3eGrupoA(caminho, nomeArquivoXML, objTempFaturaNF3EAFor)

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

                Next

                listNF = listNF.Remove(listNF.Length - 1)

                objTempFaturaNF3EA.LISTNUMNF = listNF

                CarregarGridExportGrupoA(objTempFaturaNF3EA)

            End If


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


    End Sub

    Private Sub GerarXMLNF3eGrupoB(ByRef caminho As String)

        Dim nomeArquivoXML As String

        Dim objTempFaturaNF3EB As New entidadeTempFaturaNF3EB
        Dim repositorioTempFaturaNF3EB As New repositorioTempFaturaNF3EB

        Dim listNF As String

        Dim vlist

        Try

            If Not String.IsNullOrEmpty(listNF3eSelecionada) Then
                objTempFaturaNF3EB.ENVIADONF3E = 0
                objTempFaturaNF3EB.MESANOREF = Format(Me.dtpMesAno.Value, "yyyyMM")
                objTempFaturaNF3EB.LISTNUMNF = listNF3eSelecionada

                vlist = repositorioTempFaturaNF3EB.Select_2(objTempFaturaNF3EB)
            Else
                objTempFaturaNF3EB.ENVIADONF3E = 0
                objTempFaturaNF3EB.MESANOREF = Format(Me.dtpMesAno.Value, "yyyyMM")

                vlist = repositorioTempFaturaNF3EB.Select_1(objTempFaturaNF3EB)
            End If

            If vlist.Count <> 0 Then

                listNF = String.Empty

                Me.lblInfo.Text = "Gerando o XML NF3e"
                Me.lblInfo.Refresh()

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

                For Each objTempFaturaNF3EBFor As entidadeTempFaturaNF3EB In vlist

                    listNF = listNF + Convert.ToString(objTempFaturaNF3EBFor.NUMNF) + ","

                    nomeArquivoXML = "XML_" + objTempFaturaNF3EBFor.NUMNF.ToString + ".xml"

                    ExportarXMLNF3eGrupoB(caminho, nomeArquivoXML, objTempFaturaNF3EBFor)

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

                Next

                listNF = listNF.Remove(listNF.Length - 1)

                objTempFaturaNF3EB.LISTNUMNF = listNF

                CarregarGridExportGrupoB(objTempFaturaNF3EB)

            End If


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


    End Sub

    Private Sub ExportarXMLNF3eGrupoA(ByRef caminho As String, ByRef nomeArquivoXML As String, ByRef objTempFaturaNF3EA As entidadeTempFaturaNF3EA)

        Dim composicaoNotaInfNF3eId As String

        Dim objNf As New entidadeNf
        Dim repositorioNf As New repositorioNf

        Dim objNfTransicao As New entidadeNfTransicao
        Dim repositorioNfTransicao As New repositorioNfTransicao

        Dim objUCFaturamento As New entidadeUCFaturamento
        Dim repositorioUCFaturamento As New repositorioUCFaturamento

        Dim objConsum As New entidadeConsum
        Dim repositorioConsum As New repositorioConsum

        Dim objEmpresa As New entidadeEmpresa
        Dim repositorioEmpresa As New repositorioEmpresa

        Dim objUfCepNSS As New entidadeUfCepNSS
        Dim repositorioUfCepNSS As New repositorioUfCepNSS

        Dim objCidadeCepNSS As New entidadeCidadeCepNSS
        Dim repositorioCidadeCepNSS As New repositorioCidadeCepNSS

        Dim objCidadeCepNSS_Destinatario As New entidadeCidadeCepNSS
        Dim repositorioCidadeCepNSS_Destinatario As New repositorioCidadeCepNSS

        Dim objTempItemFatura As New entidadeTempItemFatura
        Dim repositorioTempItemFatura As New repositorioTempItemFatura

        Dim objCodigo As New entidadeCodigo
        Dim repositorioCodigo As New repositorioCodigo

        Dim objTempHistFaturaNF3EA As New entidadeTempHistFaturaNF3EA
        Dim repositorioTempHistFaturaNF3EA As New repositorioTempHistFaturaNF3EA

        Dim nota As New nf3e_v1_00()

        Dim ValorTotalItem As Double

        Dim dt As DataTable
        Dim dt_1 As DataTable

        Dim vlist

        Dim FATURADO As Double
        Dim ITEM As Double

        Dim strSql As String
        Dim objAtualizaBancoDados As New entidadeAtualizaBancoDados
        Dim repositorioAtualizaBancoDados As New repositorioAtualizaBancoDados
        Dim dtCons As DataTable
        Dim regExiste As Boolean = False

        Dim var_FATURADA_TEXTO As String = String.Empty
        Dim var_CODITEM2 As String = String.Empty
        Dim var_FATURADA_SPLIT As String()
        Dim var_QFATURADA As String = String.Empty
        Dim var_VITEM As String = String.Empty

        Try

#Region "Geração de Dados importantes para emissão do xml"


            'Geração de Dados importantes para emissão do xml

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

            If istrTabela.ToUpper() = "NF" Then

                objNf.NUMNF = objTempFaturaNF3EA.NUMNF

                vlist = repositorioNf.Select_22(objNf)

                If vlist.Count = 1 Then

                    For Each objNfFor As entidadeNf In vlist
                        objNf = objNfFor
                    Next

                End If

            ElseIf istrTabela.ToUpper() = "NFTRANSICAO" Then

                objNfTransicao.NUMNF = objTempFaturaNF3EA.NUMNF

                vlist = repositorioNfTransicao.Select_11(objNfTransicao)

                If vlist.Count = 1 Then

                    For Each objNfTransicaoFor As entidadeNfTransicao In vlist
                        objNfTransicao = objNfTransicaoFor
                    Next

                End If

            End If

            objUCFaturamento.ZONA = objTempFaturaNF3EA.ZONA
            objUCFaturamento.LIVRO = objTempFaturaNF3EA.LIVRO
            objUCFaturamento.CONTA = objTempFaturaNF3EA.CONTA

            vlist = repositorioUCFaturamento.Select_4(objUCFaturamento)

            If vlist.Count = 1 Then

                For Each objUCFaturamentoFor As entidadeUCFaturamento In vlist
                    objUCFaturamento = objUCFaturamentoFor
                Next

            End If

            objConsum.CONSREG = objUCFaturamento.CONS_ID

            vlist = repositorioConsum.Select(objConsum)

            If vlist.Count = 1 Then

                For Each objConsumFor As entidadeConsum In vlist
                    objConsum = objConsumFor
                Next

            End If

            objEmpresa.CNPJ = gstrEmpresa_CNPJ

            vlist = repositorioEmpresa.Select_1(objEmpresa)

            If vlist.Count = 1 Then

                For Each objEmpresaFor As entidadeEmpresa In vlist
                    objEmpresa = objEmpresaFor
                Next

            End If

            objUfCepNSS.SIGLA = objEmpresa.UF

            vlist = repositorioUfCepNSS.Select(objUfCepNSS)

            If vlist.Count = 1 Then

                For Each objUfCepNSSFor As entidadeUfCepNSS In vlist
                    objUfCepNSS = objUfCepNSSFor
                Next

            End If

            objCidadeCepNSS.DESCRICAO = objEmpresa.MUNICIPIO

            vlist = repositorioCidadeCepNSS.Select(objCidadeCepNSS)

            If vlist.Count = 1 Then

                For Each objCidadeCepNSSFor As entidadeCidadeCepNSS In vlist
                    objCidadeCepNSS = objCidadeCepNSSFor
                Next

            End If

            objCidadeCepNSS_Destinatario.DESCRICAO = objTempFaturaNF3EA.CIDADE

            vlist = repositorioCidadeCepNSS.Select(objCidadeCepNSS_Destinatario)

            If vlist.Count = 1 Then

                For Each objCidadeCepNSS_DestinatarioFor As entidadeCidadeCepNSS In vlist
                    objCidadeCepNSS_Destinatario = objCidadeCepNSS_DestinatarioFor
                Next

            End If

#End Region

            'infNF3e
            nota.infNF3e = New TNF3eInfNF3e()
            nota.infNF3e.ide = New TNF3eInfNF3eIde()
            nota.infNF3e.emit = New TNF3eInfNF3eEmit()
            nota.infNF3e.emit.enderEmit = New TEndeEmi()
            nota.infNF3e.dest = New TNF3eInfNF3eDest()
            nota.infNF3e.dest.enderDest = New TEndeEmi()
            nota.infNF3e.acessante = New TNF3eInfNF3eAcessante()
            nota.infNF3e.gGrContrat = New TNF3eInfNF3eGGrContrat(0) {}
            nota.infNF3e.gMed = New TNF3eInfNF3eGMed(0) {}
            nota.infNF3e.NFdet = New TNF3eInfNF3eNFdet(0) {}
            nota.infNF3e.total = New TNF3eInfNF3eTotal()
            nota.infNF3e.total.ICMSTot = New TNF3eInfNF3eTotalICMSTot()
            nota.infNF3e.total.vRetTribTot = New TNF3eInfNF3eTotalVRetTribTot()
            nota.infNF3e.gFat = New TNF3eInfNF3eGFat()
            nota.infNF3e.gANEEL = New TANEELGHistFat(0) {}
            nota.infNF3e.infAdic = New TNF3eInfNF3eInfAdic()
            nota.infNF3e.gRespTec = New TRespTec()

#Region "infNF3e  - Informações da NF3e"


            'Versão do leiaute
            nota.infNF3e.versao = "1.00"

            'Identificador da tag a ser assinada
            'Informar a chave de acesso da NF3e e precedida do literal "NF3e"
            'NF3e + cUF + dhEmi+ CNPJ + mod + serie + nNF + tpEmis + cNF

            'composicaoNotaInfNF3eId = objUfCepNSS.IBGE.ToString() + Date.Now.ToString("yyMM") + Convert.ToString(gstrEmpresa_CNPJ) + "66" + "0" + Convert.ToString(objTempFaturaNF3EA.NUMNF) + "2" + Convert.ToString(objTempFaturaNF3EA.NUMNF)
            'nota.infNF3e.Id = "NF3e" + composicaoNotaInfNF3eId

#End Region

#Region "ide - Identificação da NF3e"


            'Código da UF do emitente da NF3e 
            'Código da UF do emitente do Documento Fiscal.Utilizar a
            'Tabela do IBGE de código de unidades da federação.
            If Not String.IsNullOrEmpty(Convert.ToString(objUfCepNSS.IBGE)) Then

                If objUfCepNSS.IBGE = 11 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item11
                ElseIf objUfCepNSS.IBGE = 12 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item12
                ElseIf objUfCepNSS.IBGE = 13 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item13
                ElseIf objUfCepNSS.IBGE = 14 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item14
                ElseIf objUfCepNSS.IBGE = 15 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item15
                ElseIf objUfCepNSS.IBGE = 16 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item16
                ElseIf objUfCepNSS.IBGE = 17 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item17
                ElseIf objUfCepNSS.IBGE = 21 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item21
                ElseIf objUfCepNSS.IBGE = 22 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item22
                ElseIf objUfCepNSS.IBGE = 23 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item23
                ElseIf objUfCepNSS.IBGE = 24 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item24
                ElseIf objUfCepNSS.IBGE = 25 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item25
                ElseIf objUfCepNSS.IBGE = 26 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item26
                ElseIf objUfCepNSS.IBGE = 27 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item27
                ElseIf objUfCepNSS.IBGE = 28 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item28
                ElseIf objUfCepNSS.IBGE = 29 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item29
                ElseIf objUfCepNSS.IBGE = 31 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item31
                ElseIf objUfCepNSS.IBGE = 32 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item32
                ElseIf objUfCepNSS.IBGE = 33 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item33
                ElseIf objUfCepNSS.IBGE = 35 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item35
                ElseIf objUfCepNSS.IBGE = 41 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item41
                ElseIf objUfCepNSS.IBGE = 42 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item42
                ElseIf objUfCepNSS.IBGE = 43 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item43
                ElseIf objUfCepNSS.IBGE = 50 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item50
                ElseIf objUfCepNSS.IBGE = 51 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item51
                ElseIf objUfCepNSS.IBGE = 52 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item52
                ElseIf objUfCepNSS.IBGE = 53 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item53
                Else
                    nota.infNF3e.ide.cUF = "0"
                End If

            End If

            'Tipo do Ambiente 
            '1 - Produção;
            '2 - Homologação
            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.tipo.ambiente"))) Then

                If GetConfig("nf3e.tipo.ambiente") = "1" Then
                    nota.infNF3e.ide.tpAmb = TAmb.Item1
                ElseIf GetConfig("nf3e.tipo.ambiente") = "2" Then
                    nota.infNF3e.ide.tpAmb = TAmb.Item2
                Else
                    nota.infNF3e.ide.tpAmb = "0"
                End If

            End If

            'Modelo da NF3e 
            'Utilizar o código 66 para identificação da NF3e
            nota.infNF3e.ide.mod = TModNF3e.Item66

            'Série Do documento fiscal
            'Informar a série do documento fiscal (informar zero para série única).
            nota.infNF3e.ide.serie = "0"

            'Número do documento fiscal
            'Número que identifica o documento fiscal 1 a 999999999.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.NUMNF)) Then
                nota.infNF3e.ide.nNF = Convert.ToString(objTempFaturaNF3EA.NUMNF).Trim()
            Else
                nota.infNF3e.ide.nNF = "0"
            End If

            'Código numérico que compõe a Chave de Acesso.
            'Código aleatório gerado pelo emitente, com o objetivo de evitar acessos indevidos ao documento.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.NUMNF)) Then
                nota.infNF3e.ide.cNF = Convert.ToString(objTempFaturaNF3EA.NUMNF).Trim()
            Else
                nota.infNF3e.ide.cNF = "0"
            End If

            'Digito verificador da chave de acesso
            'Informar o dígito de controle da chave de acesso documento fiscal, que deve ser calculado com a aplicação do algoritmo módulo 11 (base 2, 9) da chave de acesso.
            nota.infNF3e.ide.cDV = "0"

            'Data e hora de emissão do documento fiscal
            'Formato AAAA-MM-DDTHH:MM:DD TZD
            'nota.infNF3e.ide.dhEmi = DateTime.Now.ToString("s") + "-03:00"
            nota.infNF3e.ide.dhEmi = Format(DateTime.Now.AddDays(-1), "yyyy-MM-dd") & "T" & Format(DateTime.Now, "hh:mm:ss") + "-03:00"
            'nota.infNF3e.ide.dhEmi = objTempFaturaNF3EA.DATAEMISSAO.ToString("yyyy-MM-dd") & "T" & Format(DateTime.Now, "hh:mm:ss") + "-03:00"

            'Forma de emissão do Documento Fiscal
            '1 - Normal;
            '2 - Contingência Off Line
            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.forma.emissao.documento.fiscal"))) Then

                If GetConfig("nf3e.forma.emissao.documento.fiscal") = "1" Then
                    nota.infNF3e.ide.tpEmis = TtpEmis.Item1
                ElseIf GetConfig("nf3e.forma.emissao.documento.fiscal") = "2" Then
                    nota.infNF3e.ide.tpEmis = TtpEmis.Item2
                Else
                    nota.infNF3e.ide.tpEmis = "0"
                End If
            Else
                nota.infNF3e.ide.tpEmis = "0"
            End If

            'Identificação do número do Site do Autorizador de recepção da NF3e
            'Se o autorizador da NF3e possuir apenas um site deverá ser informado com Zero(0),
            'em caso de autorizador trabalhar com múltiplos sites indicar o número do site para
            'qual foi endereçada a NF3e(1 a 9). Observação: O ambiente autorizador que trabalhar
            'com mais de um Site deverá divulgar para cada endereço de Site qual número correspondente
            'de nSiteAutoriz o contribuinte pode usar
            nota.infNF3e.ide.nSiteAutoriz = "0"

            'Código do município de ocorrência do fato gerador
            If Not String.IsNullOrEmpty(Convert.ToString(objCidadeCepNSS.IBGE)) Then
                nota.infNF3e.ide.cMunFG = objCidadeCepNSS.IBGE.Trim()
            Else
                nota.infNF3e.ide.cMunFG = "."
            End If

            'Finalidade de emissão da NF3e
            '1 - NF3e normal;
            '2 - NF3e substituição;
            '3 - NF3e normal com ajuste;
            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.finalidade.emissao"))) Then

                If GetConfig("nf3e.finalidade.emissao") = "1" Then
                    nota.infNF3e.ide.finNF3e = TFinNF3e.Item1
                ElseIf GetConfig("nf3e.finalidade.emissao") = "2" Then
                    nota.infNF3e.ide.finNF3e = TFinNF3e.Item2
                ElseIf GetConfig("nf3e.finalidade.emissao") = "3" Then
                    nota.infNF3e.ide.finNF3e = TFinNF3e.Item3
                Else
                    nota.infNF3e.ide.finNF3e = "0"
                End If
            Else
                nota.infNF3e.ide.finNF3e = "0"
            End If

            'Versão do processo de emissão
            'Informar a versão do aplicativo emissor de NF3e.
            nota.infNF3e.ide.verProc = "1"

            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.forma.emissao.documento.fiscal"))) Then

                If GetConfig("nf3e.forma.emissao.documento.fiscal") = "2" Then

                    'Data e Hora da entrada em contingência
                    'Informar a data e hora no formato AAAA-MM - DDTHH: MM : SS
                    'nota.infNF3e.ide.dhCont = DateTime.Now.ToString("s") + "-03:00"
                    nota.infNF3e.ide.dhCont = objTempFaturaNF3EA.DATALEIT.ToString("yyyy-MM-dd") & "T" & Format(DateTime.Now, "hh:mm:ss") + "-03:00"

                    'Justificativa da entrada em contingência
                    nota.infNF3e.ide.xJust = "Sistema Offline."

                End If

            End If

#End Region

#Region "emit - Identificação do Emitente do documento fiscal"

            'CNPJ do emitente
            'Informar zeros não significativos
            If Not String.IsNullOrEmpty(Convert.ToString(gstrEmpresa_CNPJ)) Then
                nota.infNF3e.emit.CNPJ = Convert.ToString(gstrEmpresa_CNPJ).Trim()
            End If

            'Inscrição Estadual do emitente
            If Not String.IsNullOrEmpty(Convert.ToString(objEmpresa.INSC)) Then
                nota.infNF3e.emit.IE = objEmpresa.INSC.Replace(".", "").Replace("-", "").Trim()
            End If

            'Razão social ou Nome do emitente
            If Not String.IsNullOrEmpty(Convert.ToString(gstrEmpresa_Nome)) Then
                nota.infNF3e.emit.xNome = gstrEmpresa_Nome.Trim()
            Else
                nota.infNF3e.emit.xNome = "."
            End If

            'Nome fantasia do emitente
            If Not String.IsNullOrEmpty(Convert.ToString(gstrEmpresa_Nome)) Then
                nota.infNF3e.emit.xFant = gstrEmpresa_Nome.Trim()
            Else
                nota.infNF3e.emit.xFant = "."
            End If

#Region "enderEmit - Endereço do emitente"

            'Logradouro
            If Not String.IsNullOrEmpty(Convert.ToString(gstrEmpresa_Endereco)) Then
                nota.infNF3e.emit.enderEmit.xLgr = gstrEmpresa_Endereco.Trim()
            Else
                nota.infNF3e.emit.enderEmit.xLgr = "."
            End If

            'Número
            If Not String.IsNullOrEmpty(Convert.ToString(objEmpresa.NUMERO)) Then
                nota.infNF3e.emit.enderEmit.nro = Convert.ToString(objEmpresa.NUMERO).Trim()
            Else
                nota.infNF3e.emit.enderEmit.nro = "0"
            End If

            'Complemento
            If Not String.IsNullOrEmpty(Convert.ToString(String.Empty)) Then
                nota.infNF3e.emit.enderEmit.xCpl = String.Empty
            Else
                nota.infNF3e.emit.enderEmit.xCpl = "A"
            End If

            'Bairro
            If Not String.IsNullOrEmpty(Convert.ToString(objEmpresa.BAIRRO)) Then
                nota.infNF3e.emit.enderEmit.xBairro = objEmpresa.BAIRRO.Trim()
            Else
                nota.infNF3e.emit.enderEmit.xBairro = "NAO TEM"
            End If

            'Código do município (utilizar a tabela do IBGE)
            If Not String.IsNullOrEmpty(Convert.ToString(objCidadeCepNSS.IBGE)) Then
                nota.infNF3e.emit.enderEmit.cMun = objCidadeCepNSS.IBGE.Trim()
            Else
                nota.infNF3e.emit.enderEmit.cMun = "."
            End If

            'Nome do município
            If Not String.IsNullOrEmpty(Convert.ToString(gstrEmpresa_Cidade)) Then
                nota.infNF3e.emit.enderEmit.xMun = gstrEmpresa_Cidade.Trim()
            Else
                nota.infNF3e.emit.enderEmit.xMun = "."
            End If

            'CEP
            'Informar zeros não significativos
            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("empresa.cep"))) Then
                nota.infNF3e.emit.enderEmit.CEP = Convert.ToString(GetConfig("empresa.cep")).Replace("-", "").Trim()
            Else
                nota.infNF3e.emit.enderEmit.CEP = "0"
            End If

            'Sigla da UF
            If Not String.IsNullOrEmpty(Convert.ToString(gstrEmpresa_UF)) Then

                If Convert.ToString(gstrEmpresa_UF) = "AC" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.AC
                ElseIf Convert.ToString(gstrEmpresa_UF) = "AL" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.AL
                ElseIf Convert.ToString(gstrEmpresa_UF) = "AM" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.AM
                ElseIf Convert.ToString(gstrEmpresa_UF) = "AP" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.AP
                ElseIf Convert.ToString(gstrEmpresa_UF) = "BA" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.BA
                ElseIf Convert.ToString(gstrEmpresa_UF) = "CE" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.CE
                ElseIf Convert.ToString(gstrEmpresa_UF) = "DF" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.DF
                ElseIf Convert.ToString(gstrEmpresa_UF) = "ES" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.ES
                ElseIf Convert.ToString(gstrEmpresa_UF) = "GO" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.GO
                ElseIf Convert.ToString(gstrEmpresa_UF) = "MA" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.MA
                ElseIf Convert.ToString(gstrEmpresa_UF) = "MG" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.MG
                ElseIf Convert.ToString(gstrEmpresa_UF) = "MS" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.MS
                ElseIf Convert.ToString(gstrEmpresa_UF) = "MT" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.MT
                ElseIf Convert.ToString(gstrEmpresa_UF) = "PA" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.PA
                ElseIf Convert.ToString(gstrEmpresa_UF) = "PB" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.PB
                ElseIf Convert.ToString(gstrEmpresa_UF) = "PE" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.PE
                ElseIf Convert.ToString(gstrEmpresa_UF) = "PI" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.PI
                ElseIf Convert.ToString(gstrEmpresa_UF) = "PR" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.PR
                ElseIf Convert.ToString(gstrEmpresa_UF) = "RJ" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.RJ
                ElseIf Convert.ToString(gstrEmpresa_UF) = "RN" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.RN
                ElseIf Convert.ToString(gstrEmpresa_UF) = "RO" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.RO
                ElseIf Convert.ToString(gstrEmpresa_UF) = "RR" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.RR
                ElseIf Convert.ToString(gstrEmpresa_UF) = "RS" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.RS
                ElseIf Convert.ToString(gstrEmpresa_UF) = "SC" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.SC
                ElseIf Convert.ToString(gstrEmpresa_UF) = "SE" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.SE
                ElseIf Convert.ToString(gstrEmpresa_UF) = "SP" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.SP
                ElseIf Convert.ToString(gstrEmpresa_UF) = "TO" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.TO
                Else
                    nota.infNF3e.emit.enderEmit.UF = "."
                End If

            End If

            'Telefone
            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("empresa.fone"))) Then
                nota.infNF3e.emit.enderEmit.fone = Convert.ToString(GetConfig("empresa.fone")).Replace("(", "").Replace(")", "").Replace("-", "").Replace(" ", "").Trim()
            Else
                nota.infNF3e.emit.enderEmit.fone = "00000000"
            End If

            'Endereço de E-mail
            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("empresa.email"))) Then
                nota.infNF3e.emit.enderEmit.email = Convert.ToString(GetConfig("empresa.email")).Trim()
            Else
                nota.infNF3e.emit.enderEmit.email = "."
            End If

#End Region

#End Region

#Region "dest - Identificação do destinatário / acessante"

            'Razão social ou Nome do destinatário / acessante
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.NOMECONS)) Then
                nota.infNF3e.dest.xNome = objTempFaturaNF3EA.NOMECONS.Trim()
            Else
                nota.infNF3e.dest.xNome = "."
            End If

            If Len(objTempFaturaNF3EA.CGC) > 11 Then

                'Número do CNPJ
                'Em caso de empresa não estabelecida no Brasil, será informado o CNPJ com zeros.
                'Informar os zeros não significativos.
                If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.CGC)) Then
                    nota.infNF3e.dest.ItemElementName = ItemChoiceType.CNPJ
                    nota.infNF3e.dest.Item = Convert.ToString(objTempFaturaNF3EA.CGC).Trim().PadLeft(14, "0")
                End If

            Else

                'Número do CPF
                'Informar os zeros não significativos.
                If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.CGC)) Then
                    nota.infNF3e.dest.ItemElementName = ItemChoiceType.CPF
                    nota.infNF3e.dest.Item = Convert.ToString(objTempFaturaNF3EA.CGC).Trim().PadLeft(11, "0")
                End If

                'Identificação do destinatário outros
                'Identificação do destinatário não obrigado a inscrição do CPF tais como
                'estrangeiro, indígena(por exemplo nro Do RANI) e quilombola; ou destinatário
                'que a distribuidora não possui a informação(nestes casos orienta-se informar "00000").
                'If Not String.IsNullOrEmpty(Convert.ToString("00000")) Then
                'nota.infNF3e.dest.ItemElementName = ItemChoiceType.idOutros
                'nota.infNF3e.dest.Item = 
                'End If

            End If

            'Indicador da IE do Destinatário/Acessante
            '1 - Contribuinte ICMS (informar a IE do destinatário);
            '2 - Contribuinte isento de Inscrição no cadastro de Contribuintes do ICMS;
            '9 - Não Contribuinte, que pode ou não possuir Inscrição Estadual no Cadastro de Contribuintes do ICMS.
            'Nota:  No caso de Contribuinte Isento de Inscrição(indIEDest = 2)
            'informar a tag IE Do destinatário com o literal ISENTO.
            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.indicador.ie.destinatario.acessante"))) Then

                If String.IsNullOrEmpty(Convert.ToString(objConsum.INSC)) Then
                    nota.infNF3e.dest.indIEDest = TIndIEDest.Item9
                ElseIf Convert.ToString(GetConfig("nf3e.indicador.ie.destinatario.acessante")) = "1" Then
                    nota.infNF3e.dest.indIEDest = TIndIEDest.Item1
                ElseIf Convert.ToString(GetConfig("nf3e.indicador.ie.destinatario.acessante")) = "2" Then
                    nota.infNF3e.dest.indIEDest = TIndIEDest.Item2
                ElseIf Convert.ToString(GetConfig("nf3e.indicador.ie.destinatario.acessante")) = "9" Then
                    nota.infNF3e.dest.indIEDest = TIndIEDest.Item9
                Else
                    nota.infNF3e.dest.indIEDest = "0"
                End If
            End If

            'Inscrição Estadual do destinatário / acessante
            If Not String.IsNullOrEmpty(Convert.ToString(objConsum.INSC)) Then
                'nota.infNF3e.dest.IE = objConsum.INSC.Trim()
                nota.infNF3e.dest.IE = Str_Retira(objConsum.INSC.Trim(), ".-/ ")
            End If

            'Inscrição Municipal
            'If Not String.IsNullOrEmpty(Convert.ToString(objConsum.INSC)) Then
            'nota.infNF3e.dest.IM = objConsum.INSC.Trim()
            'nota.infNF3e.dest.IM = "ISENTO"
            'End If

            'Número da Identificação Social
            If Not String.IsNullOrEmpty(Convert.ToString(objConsum.NIS_NUMER)) Then
                nota.infNF3e.dest.Item1ElementName = Item1ChoiceType.cNIS
                nota.infNF3e.dest.Item1 = objConsum.NIS_NUMER.Trim()
            End If

            'Número do benefício
            If Not String.IsNullOrEmpty(Convert.ToString(objConsum.CIP)) Then
                nota.infNF3e.dest.Item1ElementName = Item1ChoiceType.NB
                nota.infNF3e.dest.Item1 = objConsum.CIP.Trim()
            End If

            'Nome de destinatário adicional
            'Exemplo: Nome do Cônjuge,Companheira(o)
            If Not String.IsNullOrEmpty(Convert.ToString(objConsum.NOME_CONJUGE)) Then
                nota.infNF3e.dest.xNomeAdicional = objConsum.NOME_CONJUGE.Trim()
            Else
                nota.infNF3e.dest.xNomeAdicional = "NÃO TEM"
            End If

#Region "enderDest - Endereço do destinatário / acessante"

            'Logradouro
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.END)) Then
                nota.infNF3e.dest.enderDest.xLgr = objTempFaturaNF3EA.END.Trim()
            Else
                nota.infNF3e.dest.enderDest.xLgr = "NAO TEM"
            End If
            nota.infNF3e.dest.enderDest.xLgr = Replace(nota.infNF3e.dest.enderDest.xLgr.ToString.Trim(), "'", "")

            'Número
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.NUMERO)) Then
                nota.infNF3e.dest.enderDest.nro = Convert.ToString(objTempFaturaNF3EA.NUMERO).Trim()
            Else
                nota.infNF3e.dest.enderDest.nro = "0"
            End If

            'Complemento
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.COMPLEMENT)) Then
                nota.infNF3e.dest.enderDest.xCpl = objTempFaturaNF3EA.COMPLEMENT
            Else
                nota.infNF3e.dest.enderDest.xCpl = "NAO TEM"
            End If
            If nota.infNF3e.dest.enderDest.xCpl.ToString.Trim() = "" Then
                nota.infNF3e.dest.enderDest.xCpl = "NAO TEM"
            End If
            nota.infNF3e.dest.enderDest.xCpl = Replace(nota.infNF3e.dest.enderDest.xCpl, "'", "")

            'Bairro
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.BAIRRO)) Then
                nota.infNF3e.dest.enderDest.xBairro = objTempFaturaNF3EA.BAIRRO.Trim()
            Else
                nota.infNF3e.dest.enderDest.xBairro = "NAO TEM"
            End If

            'Código do município (utilizar a tabela do IBGE)
            If Not String.IsNullOrEmpty(Convert.ToString(objCidadeCepNSS_Destinatario.IBGE)) Then
                nota.infNF3e.dest.enderDest.cMun = Convert.ToString(objCidadeCepNSS_Destinatario.IBGE).Trim()
            Else
                nota.infNF3e.dest.enderDest.cMun = "0"
            End If

            'Nome do município
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.CIDADE)) Then
                nota.infNF3e.dest.enderDest.xMun = objTempFaturaNF3EA.CIDADE.Trim()
            Else
                nota.infNF3e.dest.enderDest.xMun = "."
            End If

            'CEP
            'Informar zeros não significativos
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.CEP)) Then
                nota.infNF3e.dest.enderDest.CEP = Convert.ToString(objTempFaturaNF3EA.CEP).Trim()
            Else
                nota.infNF3e.dest.enderDest.CEP = "0"
            End If

            'Sigla da UF
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.UF)) Then

                If objTempFaturaNF3EA.UF = "AC" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.AC
                ElseIf objTempFaturaNF3EA.UF = "AL" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.AL
                ElseIf objTempFaturaNF3EA.UF = "AM" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.AM
                ElseIf objTempFaturaNF3EA.UF = "AP" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.AP
                ElseIf objTempFaturaNF3EA.UF = "BA" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.BA
                ElseIf objTempFaturaNF3EA.UF = "CE" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.CE
                ElseIf objTempFaturaNF3EA.UF = "DF" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.DF
                ElseIf objTempFaturaNF3EA.UF = "ES" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.ES
                ElseIf objTempFaturaNF3EA.UF = "GO" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.GO
                ElseIf objTempFaturaNF3EA.UF = "MA" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.MA
                ElseIf objTempFaturaNF3EA.UF = "MG" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.MG
                ElseIf objTempFaturaNF3EA.UF = "MS" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.MS
                ElseIf objTempFaturaNF3EA.UF = "MT" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.MT
                ElseIf objTempFaturaNF3EA.UF = "PA" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.PA
                ElseIf objTempFaturaNF3EA.UF = "PB" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.PB
                ElseIf objTempFaturaNF3EA.UF = "PE" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.PE
                ElseIf objTempFaturaNF3EA.UF = "PI" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.PI
                ElseIf objTempFaturaNF3EA.UF = "PR" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.PR
                ElseIf objTempFaturaNF3EA.UF = "RJ" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.RJ
                ElseIf objTempFaturaNF3EA.UF = "RN" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.RN
                ElseIf objTempFaturaNF3EA.UF = "RO" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.RO
                ElseIf objTempFaturaNF3EA.UF = "RR" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.RR
                ElseIf objTempFaturaNF3EA.UF = "RS" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.RS
                ElseIf objTempFaturaNF3EA.UF = "SC" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.SC
                ElseIf objTempFaturaNF3EA.UF = "SE" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.SE
                ElseIf objTempFaturaNF3EA.UF = "SP" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.SP
                ElseIf objTempFaturaNF3EA.UF = "TO" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.TO
                Else
                    nota.infNF3e.dest.enderDest.UF = "."
                End If

            End If

            'Telefone
            If Not String.IsNullOrEmpty(Convert.ToString(objConsum.TELEFONE)) Then
                nota.infNF3e.dest.enderDest.fone = objConsum.TELEFONE.Trim()
            Else
                nota.infNF3e.dest.enderDest.fone = "00000000"
            End If

            'Endereço de E-mail
            If Not String.IsNullOrEmpty(Convert.ToString(objConsum.EMAIL)) Then
                nota.infNF3e.dest.enderDest.email = Replace(objConsum.EMAIL.Trim(), "'", "")
            Else
                nota.infNF3e.dest.enderDest.email = "naotem@naotem.com"
            End If

#End Region

#End Region

#Region "acessante - Dados do acessante"


            'Código único de Identificação da Unidade Consumidora ou
            'Ponto de Acesso adotado pela distribuidora.
            If Not String.IsNullOrEmpty(Convert.ToString(objUCFaturamento.UNID_ID)) Then
                nota.infNF3e.acessante.idAcesso = Convert.ToString(objUCFaturamento.UNID_ID).Trim()
            Else
                nota.infNF3e.acessante.idAcesso = "."
            End If

            'Código de Identificação do Cliente para
            'empresa emitente
            If Not String.IsNullOrEmpty(Convert.ToString(objUCFaturamento.CONS_ID)) Then
                nota.infNF3e.acessante.idCodCliente = Convert.ToString(objUCFaturamento.CONS_ID).Trim()
            Else
                nota.infNF3e.acessante.idCodCliente = "0"
            End If

            'Tipo de Acessante
            '0 - Gerador;
            '1 – Cativo;
            '2 – Livre;
            '3 – Parcialmente Livre;
            '4 – Consumidor Especial;
            '5 – Parcialmente Especial;
            '6 – Comunhão;
            '7 – Suprimento;
            '8 – Distribuidora.
            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.tipo.acessante"))) Then

                If Convert.ToString(GetConfig("nf3e.tipo.acessante")) = "0" Then
                    nota.infNF3e.acessante.tpAcesso = TAcessante.Item0
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.acessante")) = "1" Then
                    nota.infNF3e.acessante.tpAcesso = TAcessante.Item1
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.acessante")) = "2" Then
                    nota.infNF3e.acessante.tpAcesso = TAcessante.Item2
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.acessante")) = "3" Then
                    nota.infNF3e.acessante.tpAcesso = TAcessante.Item3
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.acessante")) = "4" Then
                    nota.infNF3e.acessante.tpAcesso = TAcessante.Item4
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.acessante")) = "5" Then
                    nota.infNF3e.acessante.tpAcesso = TAcessante.Item5
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.acessante")) = "6" Then
                    nota.infNF3e.acessante.tpAcesso = TAcessante.Item6
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.acessante")) = "7" Then
                    nota.infNF3e.acessante.tpAcesso = TAcessante.Item7
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.acessante")) = "8" Then
                    nota.infNF3e.acessante.tpAcesso = TAcessante.Item8
                Else
                    nota.infNF3e.acessante.tpAcesso = TAcessante.Item
                End If

            End If

            'Nome da Unidade Consumidora
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.NOMECONS)) Then
                nota.infNF3e.acessante.xNomeUC = objTempFaturaNF3EA.NOMECONS.Trim()
            Else
                nota.infNF3e.acessante.xNomeUC = "."
            End If

            'Classe de Consumo da Unidade Consumidora
            '01 - Comercial;
            '02 - Consumo Próprio;
            '03 - Iluminação Pública;
            '04 - Industrial;
            '05 - Poder Público;
            '06 - Residencial;
            '07 - Rural;
            '08 - Serviço Público.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.DESCLASSE)) Then

                nota.infNF3e.acessante.tpClasseSpecified = True

                If objTempFaturaNF3EA.DESCLASSE.ToString.ToUpper Like "*COMERCIAL*" Then
                    nota.infNF3e.acessante.tpClasse = TClasse.Item01
                ElseIf objTempFaturaNF3EA.DESCLASSE.ToString.ToUpper Like "*CONSUMO*" Then
                    nota.infNF3e.acessante.tpClasse = TClasse.Item02
                ElseIf objTempFaturaNF3EA.DESCLASSE.ToString.ToUpper Like "*ILUMINAÇÃO*" Then
                    nota.infNF3e.acessante.tpClasse = TClasse.Item03
                ElseIf objTempFaturaNF3EA.DESCLASSE.ToString.ToUpper Like "*INDUSTRIAL*" Then
                    nota.infNF3e.acessante.tpClasse = TClasse.Item04
                ElseIf objTempFaturaNF3EA.DESCLASSE.ToString.ToUpper Like "*PODER*" Then
                    nota.infNF3e.acessante.tpClasse = TClasse.Item05
                ElseIf objTempFaturaNF3EA.DESCLASSE.ToString.ToUpper Like "*RESIDENCIAL*" Then
                    nota.infNF3e.acessante.tpClasse = TClasse.Item06
                ElseIf objTempFaturaNF3EA.DESCLASSE.ToString.ToUpper Like "*RURAL*" Then
                    nota.infNF3e.acessante.tpClasse = TClasse.Item07
                ElseIf objTempFaturaNF3EA.DESCLASSE.ToString.ToUpper Like "*SERVIÇO*" Then
                    nota.infNF3e.acessante.tpClasse = TClasse.Item08
                Else
                    nota.infNF3e.acessante.tpClasse = TClasse.Item01
                End If

            End If

            'Subclasse de Consumo da Unidade Consumidora
            '01 - Residencial;
            '02 - Residencial baixa renda;
            '03 - Residencial baixa renda indígena;
            '04 - Residencial baixa renda quilombola;
            '05 - Residencial baixa renda benefício de prestação continuada da assistência social;
            '06 - Residencial baixa renda multifamiliar;
            '07 - Comercial;
            '08 - Serviços de transporte, exceto tração elétrica;
            '09 - Serviços de comunicação e telecomunicação;
            '10 - Associação e entidades filantrópicas;
            '11 - Templos religiosos;
            '12 - Administração condominial: iluminação e instalações de uso comum de prédio ou conjunto de edificações;
            '13 - Iluminação em rodovias solicitada por quem detenha concessão ou autorização para administração em rodovias;
            '14 - Semáforos, radares e câmeras de monitoramento de trânsito, solicitados por quem detenha concessão ou autorização para controle de trânsito;
            '15 - Outros serviços e outras atividades da classe comercial;
            '16 - Agropecuária rural;
            '17 - Agropecuária urbana;
            '18 - Residencial rural;
            '19 - Cooperativa de eletrificação rural;
            '20 - Agroindustrial;
            '21 - Serviço público de irrigação rural;
            '22 - Escola agrotécnica;
            '23 - Aquicultura;
            '24 - Poder público Federal;
            '25 - Poder Público Estadual ou Distrital;
            '26 - Poder público Municipal;
            '27 - Tração Elétrica;
            '28 - Água esgoto ou saneamento;
            '99 - Outros.

            nota.infNF3e.acessante.tpSubClasseSpecified = True

            If objTempFaturaNF3EA.CODCLAS = "9101" Then
                nota.infNF3e.acessante.tpSubClasse = TSubClasse.Item01
            ElseIf objTempFaturaNF3EA.CODCLAS = "9102" Then
                nota.infNF3e.acessante.tpSubClasse = TSubClasse.Item02
            ElseIf Mid(objTempFaturaNF3EA.CODCLAS, 1, 1) = "4" Then
                nota.infNF3e.acessante.tpSubClasse = TSubClasse.Item07
            ElseIf Mid(objTempFaturaNF3EA.CODCLAS, 1, 1) = "5" Then
                nota.infNF3e.acessante.tpSubClasse = TSubClasse.Item16
            ElseIf Mid(objTempFaturaNF3EA.CODCLAS, 1, 2) = "63" Then
                nota.infNF3e.acessante.tpSubClasse = TSubClasse.Item24
            ElseIf Mid(objTempFaturaNF3EA.CODCLAS, 1, 2) = "62" Then
                nota.infNF3e.acessante.tpSubClasse = TSubClasse.Item25
            ElseIf Mid(objTempFaturaNF3EA.CODCLAS, 1, 2) = "61" Then
                nota.infNF3e.acessante.tpSubClasse = TSubClasse.Item26
            ElseIf Mid(objTempFaturaNF3EA.CODCLAS, 1, 2) = "71" Then
                nota.infNF3e.acessante.tpSubClasse = TSubClasse.Item27
            ElseIf Mid(objTempFaturaNF3EA.CODCLAS, 1, 2) = "72" Then
                nota.infNF3e.acessante.tpSubClasse = TSubClasse.Item28
            Else
                nota.infNF3e.acessante.tpSubClasse = TSubClasse.Item99
            End If

            'Tipo de ligação
            '1 - Monofásico;
            '2 - Bifásico;
            '3 - Trifásico;
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.FASE)) Then

                If objTempFaturaNF3EA.FASE = "M" Then
                    nota.infNF3e.acessante.tpFase = TFase.Item1
                ElseIf objTempFaturaNF3EA.FASE = "B" Then
                    nota.infNF3e.acessante.tpFase = TFase.Item2
                ElseIf objTempFaturaNF3EA.FASE = "T" Then
                    nota.infNF3e.acessante.tpFase = TFase.Item3
                Else
                    nota.infNF3e.acessante.tpFase = "0"
                End If

            End If

            'Grupo e Subgrupo de Tensão
            '01 - A1 - Alta Tensão (230kV ou mais);
            '02 - A2 - Alta Tensão (88 a 138kV);
            '03 - A3 - Alta Tensão (69kV);
            '04 - A3a - Alta Tensão (30kV a 44kV);
            '05 - A4 - Alta Tensão (2,3kV a 25kV);
            '06 - AS - Alta Tensão Subterrâneo;
            '07 - B1 - Residencial;
            '08 - B1 - Residencial Baixa Renda;
            '09 - B2 - Rural;
            '10 - B2 - Cooperativa de Eletrificação Rural;
            '11 - B2 - Serviço Público de Irrigação;
            '12 - B3 - Demais Classes;
            '13 - B4a - Iluminação Pública - rede de distribuição;
            '14 - B4b - Iluminação Pública - bulbo de lâmpada.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.TA)) Then

                If objTempFaturaNF3EA.TA.ToString.ToUpper Like "*A1*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item01
                ElseIf objTempFaturaNF3EA.TA.ToString.ToUpper Like "*A2*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item02
                ElseIf objTempFaturaNF3EA.TA.ToString.ToUpper Like "*A3*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item03
                ElseIf objTempFaturaNF3EA.TA.ToString.ToUpper Like "*A3a*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item04
                ElseIf objTempFaturaNF3EA.TA.ToString.ToUpper Like "*A4*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item05
                ElseIf objTempFaturaNF3EA.TA.ToString.ToUpper Like "*AS*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item06
                ElseIf objTempFaturaNF3EA.TA.ToString.ToUpper Like "*AV*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item02
                ElseIf objTempFaturaNF3EA.TA.ToString.ToUpper Like "*B1*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item07
                ElseIf objTempFaturaNF3EA.TA.ToString.ToUpper Like "*B1*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item08
                ElseIf objTempFaturaNF3EA.TA.ToString.ToUpper Like "*B2*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item09
                ElseIf objTempFaturaNF3EA.TA.ToString.ToUpper Like "*B2*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item10
                ElseIf objTempFaturaNF3EA.TA.ToString.ToUpper Like "*B2*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item11
                ElseIf objTempFaturaNF3EA.TA.ToString.ToUpper Like "*B3*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item12
                ElseIf objTempFaturaNF3EA.TA.ToString.ToUpper Like "*B4a*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item13
                ElseIf objTempFaturaNF3EA.TA.ToString.ToUpper Like "*B4b*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item14
                Else
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item01
                End If

            End If

            'Modalidade Tarifária
            '01 – Convencional Monômia;
            '02 – Convencional Binômia;
            '03 – Horária Azul;
            '04 – Horária Azul APE;
            '05 – Horária Verde;
            '06 – Horária Verde APE;
            '07 – Horária Branca;
            '08 – Pré-pagamento;
            '09 – Geração;
            '10 – Distribuição.
            If istrTabela.ToUpper() = "NF" Then

                If Not String.IsNullOrEmpty(Convert.ToString(objNf.TA)) Then

                    If objNf.TA.ToString.ToUpper Like "*01*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item01
                    ElseIf objNf.TA.ToString.ToUpper Like "*02*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item02
                    ElseIf objNf.TA.ToString.ToUpper Like "*03*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item03
                    ElseIf objNf.TA.ToString.ToUpper Like "*04*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item04
                    ElseIf objNf.TA.ToString.ToUpper Like "*05*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item05
                    ElseIf objNf.TA.ToString.ToUpper Like "*06*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item06
                    ElseIf objNf.TA.ToString.ToUpper Like "*07*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item07
                    ElseIf objNf.TA.ToString.ToUpper Like "*08*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item08
                    ElseIf objNf.TA.ToString.ToUpper Like "*09*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item09
                    ElseIf objNf.TA.ToString.ToUpper Like "*10*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item10
                    Else
                        nota.infNF3e.acessante.tpModTar = "."
                    End If

                End If

            ElseIf istrTabela.ToUpper() = "NFTRANSICAO" Then

                If Not String.IsNullOrEmpty(Convert.ToString(objNfTransicao.TA)) Then

                    If objNfTransicao.TA.ToString.ToUpper Like "*01*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item01
                    ElseIf objNfTransicao.TA.ToString.ToUpper Like "*02*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item02
                    ElseIf objNfTransicao.TA.ToString.ToUpper Like "*03*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item03
                    ElseIf objNfTransicao.TA.ToString.ToUpper Like "*04*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item04
                    ElseIf objNfTransicao.TA.ToString.ToUpper Like "*05*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item05
                    ElseIf objNfTransicao.TA.ToString.ToUpper Like "*06*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item06
                    ElseIf objNfTransicao.TA.ToString.ToUpper Like "*07*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item07
                    ElseIf objNfTransicao.TA.ToString.ToUpper Like "*08*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item08
                    ElseIf objNfTransicao.TA.ToString.ToUpper Like "*09*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item09
                    ElseIf objNfTransicao.TA.ToString.ToUpper Like "*10*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item10
                    Else
                        nota.infNF3e.acessante.tpModTar = "."
                    End If

                End If

            End If

            'Latitude do ponto geográfico da localização da captura
            If Not String.IsNullOrEmpty(Convert.ToString(objUCFaturamento.LATITUDE)) Then
                If objUCFaturamento.LATITUDE.Replace(",", ".").Trim() = "0" Then
                    nota.infNF3e.acessante.latGPS = "0.000000"
                Else
                    nota.infNF3e.acessante.latGPS = objUCFaturamento.LATITUDE.Replace(",", ".").Trim()
                End If
            End If

            'Longitude do ponto geográfico da localização da captura
            If Not String.IsNullOrEmpty(Convert.ToString(objUCFaturamento.LONGITUDE)) Then
                If objUCFaturamento.LONGITUDE.Replace(",", ".").Trim() = "0" Then
                    nota.infNF3e.acessante.longGPS = "0.000000"
                Else
                    nota.infNF3e.acessante.longGPS = objUCFaturamento.LONGITUDE.Replace(",", ".").Trim()
                End If
            End If

            'Não Consta no XML Enviado
            'codRoteiroLeitura - Roteiro da Leitura para uso operacional
            'Nome da unidade consumidora, exclusivamente para a classe Poder
            'Público, desde que informado previamente e solicitado pelo consumidor.

#End Region

#Region "gSub - Grupo de informações da substituição - Não Consta no XML Enviado"

            'chNF3e - Chave de acesso da NF3e referenciada

            'gNF - Informação da NF modelo 06 referenciada 

            'CNPJ - CNPJ do Emitente 
            'Informar o CNPJ do emitente do Documento Fiscal

            'serie - Serie do documento fiscal 
            'Aceita de 1 a 3 caracteres alfa

            'nNF - Número do documento fiscal 

            'CompetEmis - Ano e mês da emissão da NF Mod. 06 (AAAAMM)

            'CompetApur - Ano e mês de apuração (AAAAMM) 

            'hash115 - Hash do registro no arquivo do convênio
            'Campo poderá ser exigido a critério da UF

            'motSub - Motivo da substituição 
            '01 – Erro de Leitura
            '02 – Erro de Preço ou Erro de Tarifa;
            '03 – Decisão Judicial
            '04 – Erro Cadastral;
            '05 - Erro de Tributação

#End Region

#Region "gJudic - Grupo de informações para referenciar a NF3e original que foi separada judicialmente - Não Consta no XML Enviado"

            'chNF3e - Chave de acesso da NF3e referenciada

#End Region

#Region "gGrContrat - Grupo de informações das quantidades contratadas"

            nota.infNF3e.gGrContrat(0) = New TNF3eInfNF3eGGrContrat()

            'Número de referência para informar nos
            'produtos a relação com a quantidade contratada
            'If Not String.IsNullOrEmpty(Convert.ToString(objUCFaturamento.DEMANDA_CONTR)) Then
            '    nota.infNF3e.gGrContrat(0).nContrat = IIf(Convert.ToInt32(objUCFaturamento.DEMANDA_CONTR) <= 9, "0" + Convert.ToString(objUCFaturamento.DEMANDA_CONTR).Trim(), Convert.ToString(objUCFaturamento.DEMANDA_CONTR).Trim())
            'End If
            nota.infNF3e.gGrContrat(0).nContrat = "01"

            'Tipo de grandeza contratada 
            '1 - Demanda;
            '2 - Montante de Uso do Sistema de Distribuição;
            '3 - Reserva de Capacidade;
            '4 - Energia Contratada.
            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.tipo.grandeza.contratada"))) Then

                If Convert.ToString(GetConfig("nf3e.tipo.grandeza.contratada")) = "1" Then
                    nota.infNF3e.gGrContrat(0).tpGrContrat = TGrContrat.Item1
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.grandeza.contratada")) = "2" Then
                    nota.infNF3e.gGrContrat(0).tpGrContrat = TGrContrat.Item2
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.grandeza.contratada")) = "3" Then
                    nota.infNF3e.gGrContrat(0).tpGrContrat = TGrContrat.Item3
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.grandeza.contratada")) = "4" Then
                    nota.infNF3e.gGrContrat(0).tpGrContrat = TGrContrat.Item4
                Else
                    nota.infNF3e.gGrContrat(0).tpGrContrat = "0"
                End If

            End If

            'Tipo de Posto Tarifário Contratado 
            '0 - Único
            '1 - Ponta
            '2 - Fora Ponta
            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.tipo.posto.tarifario.contratado"))) Then

                If Convert.ToString(GetConfig("nf3e.tipo.posto.tarifario.contratado")) = "0" Then
                    nota.infNF3e.gGrContrat(0).tpPosTar = TPosTarSimples.Item0
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.posto.tarifario.contratado")) = "1" Then
                    nota.infNF3e.gGrContrat(0).tpPosTar = TPosTarSimples.Item1
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.posto.tarifario.contratado")) = "2" Then
                    nota.infNF3e.gGrContrat(0).tpPosTar = TPosTarSimples.Item2
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.posto.tarifario.contratado")) = "3" Then
                    nota.infNF3e.gGrContrat(0).tpPosTar = TPosTarSimples.Item3
                Else
                    nota.infNF3e.gGrContrat(0).tpPosTar = "."
                End If

            End If

            'Quantidade Contratada em kW ou kWh 
            '15 posições, sendo 13 inteiras e 2 decimais ou 19 posições, sendo 13 inteiras e 6 decimais
            If Not String.IsNullOrEmpty(Convert.ToString(objUCFaturamento.DEMANDA_CONTR)) Then
                nota.infNF3e.gGrContrat(0).qUnidContrat = Convert.ToString(objUCFaturamento.DEMANDA_CONTR).Trim()
            Else
                nota.infNF3e.gGrContrat(0).qUnidContrat = "0"
            End If

#End Region

#Region "gMed - Grupo de informações dos Medidores"

            nota.infNF3e.gMed(0) = New TNF3eInfNF3eGMed()

            'Número de referência para informar nos produtos a relação com a medição
            nota.infNF3e.gMed(0).nMed = "01"

            'Identificação do medidor 
            If Not String.IsNullOrEmpty(Convert.ToString(objUCFaturamento.NUM)) Then
                nota.infNF3e.gMed(0).idMedidor = objUCFaturamento.NUM.Trim()
            Else
                nota.infNF3e.gMed(0).idMedidor = "."
            End If

            'Data da leitura anterior 
            'Formato AAAA-MM-DD
            nota.infNF3e.gMed(0).dMedAnt = objTempFaturaNF3EA.DATALEITANT.ToString("yyyy-MM-dd")

            'Data da leitura atual 
            'Formato AAAA-MM-DD
            nota.infNF3e.gMed(0).dMedAtu = objTempFaturaNF3EA.DATALEIT.ToString("yyyy-MM-dd")

#End Region

#Region "gSCEE - Grupo dos dados do Sistema de Compensação de Energia Elétrica  - Não Consta no XML Enviado"

            'tpPartComp - Tipo de participação no sistema de compensação de energia elétrica
            '1 - Mini ou microgeração (somente uma UC);
            '2 - Múltiplas unidades consumidoras (condomínio em área definida);
            '3 - Autoconsumo remoto;
            '4 - Geração compartilhada (consórcio ou cooperativa);
            '5 - Mista (utilizar quando enquadrado em mais de um tipo de participação)

#Region "gConsumidor - Participação no SCEE como Consumidor  - Não Consta no XML Enviado"


            'idAcessGer - Código Único de identificação da unidade geradora
            'Informar o Código Único adotado pela companhia distribuidora para o ponto de
            'acesso da unidade geradora cuja energia foi destinada a esta unidade consumidora.

            'vPotInst - Potência instalada do micro ou minigeraçao em kW
            '8 posições, sendo 5 inteiras e 3 decimais.

            ' tpFonteEnergia - Tipo da fonte de energia utilizada 
            '1-Hidráulica,
            '2-Solar,
            '3-Eólica,
            '4-Térmica
            '5-Híbrida

            'enerAloc - Energia alocada
            'Tipo Decimal com 11 dígitos, sendo 8 inteiros e 3 decimais Quantidade de energia
            'excedente que é destinado pela unidade geradora a esta unidade consumidora em kWh.

            'tpPosTar - Tipo de Posto Tarifário
            '0 - Único
            '1 - Ponta
            '2 - Fora Ponta;
            '3 - Intermediário

#End Region

#Region "gSaldoCred -Saldos de Créditos por posto tarifário - Não Consta no XML Enviado"

            'tpPosTar 3 Tipo de Posto Tarifário E N 1 - 1 1 D29
            '0 - Único
            '1 - Ponta
            '2 - Fora Ponta;
            '3 - Intermediário

            'vSaldAnt 3 Saldo Anterior de Créditos em kWh E N 1 - 1 11, 0
            '11 posições, sendo 11 inteiras e 0 decimais ou 15 posições, sendo 11 inteiras e 4 decimais.

            'vCredExpirado 3 Créditos Expirados
            '11 posições, sendo 11 inteiras e 0 decimais ou 15 posições, sendo 11 inteiras e 4 decimais.

            'vSaldAtual - Saldo Atual de Créditos em kWh 
            '11 posições, sendo 11 inteiras e 0 decimais ou 15 posições, sendo 11 inteiras e 4 decimais.

#End Region

            'vCredExpirar 3 Créditos a Expirar 
            '11 posições, sendo 11 inteiras e 0 decimais ou 15 posições, sendo 11 inteiras e 4 decimais.
            'Próxima parcela do saldo atualizado de créditos a expirar

            'CompetExpirar 3 Ciclo de faturamento em que ocorrerá a expiração(AAAAMM)

#End Region

#Region "NFdet - Detalhamento de Produtos e Serviços - Quando NF3e Normal com ajustes, utilizar a última nota do detalhamento para apresentar a fatura do mês atual"

            'Não Consta no XML Enviado

            'chNF3eAnt - Chave de Acesso da NF3e anterior - Informar apenas para finalidade de Ajuste

            'mod6HashAnt - HashCode da Modelo 6 Anterior - Informar apenas para finalidade de Ajuste

#Region " det - Detalhamento de Produtos e Serviços"

            Dim var_ITEMESPEC As Integer = 0
            Dim var_DESCR As String = String.Empty
            Dim iNFdet As Integer
            Dim iDet As Integer

            iNFdet = 0
            iDet = 0

            dt_1 = New DataTable()
            dt_1.Columns.Add("COD", GetType(Integer))
            dt_1.Columns.Add("NUMNF", GetType(Integer))
            dt_1.Columns.Add("DESCR", GetType(String))
            dt_1.Columns.Add("VALOR_ITEM", GetType(Decimal))
            dt_1.Columns.Add("CODITEM", GetType(String))
            dt_1.Columns.Add("TA", GetType(String))
            dt_1.Columns.Add("REF", GetType(String))
            dt_1.Columns.Add("MESANO", GetType(String))
            dt_1.Columns.Add("CLASSE", GetType(String))
            dt_1.Columns.Add("ANOMES_FAT", GetType(Integer))
            dt_1.Columns.Add("UN", GetType(String))

            objTempItemFatura.NUMNF = objTempFaturaNF3EA.NUMNF

            dt = repositorioTempItemFatura.Select(objTempItemFatura)

            For Each dr As DataRow In dt.Rows
                If Not IsDBNull(dr("DESCR")) Then
                    var_DESCR = dr("DESCR").ToString.Trim
                    If var_DESCR.Contains("BASE") Or var_DESCR.Contains("ALIQUOTA") Then
                        var_ITEMESPEC = 0
                    Else
                        var_ITEMESPEC = 1
                    End If
                    If var_ITEMESPEC = 1 Then
                        If dr("UN").ToString().ToUpper() = "R$" Then
                            dt_1.Rows.Add(dr("COD"), dr("NUMNF"), dr("DESCR"), dr("VALOR_ITEM"), dr("CODITEM"), dr("TA"), dr("REF"), Convert.ToDateTime(dr("ANOMES_FAT").ToString().Substring(4, 2) + "/" + dr("ANOMES_FAT").ToString().Substring(0, 4)).ToString("MM/yyyy"), dr("CLASSE"), dr("ANOMES_FAT"), dr("UN").ToString())
                            'ValorTotalItem += dr("VALOR_ITEM")
                        End If
                    End If
                Else
                    Exit For
                End If
            Next dr

            nota.infNF3e.NFdet(iNFdet) = New TNF3eInfNF3eNFdet()
            nota.infNF3e.NFdet(iNFdet).det = New TNF3eInfNF3eNFdetDet(dt_1.Rows.Count()) {}

            For Each dr_1 As DataRow In dt_1.Rows

                'Geração de Dados importantes para emissão do xml

                objCodigo.NUM = Convert.ToString(dr_1("CODITEM")).Trim()

                vlist = repositorioCodigo.Select_3(objCodigo)

                If vlist.Count = 1 Then

                    For Each objCodigoFor As entidadeCodigo In vlist
                        objCodigo = objCodigoFor
                    Next

                End If

                nota.infNF3e.NFdet(iNFdet).det(iDet) = New TNF3eInfNF3eNFdetDet()
                nota.infNF3e.NFdet(iNFdet).det(iDet).Item = New TNF3eInfNF3eNFdetDetDetItem(dt_1.Rows.Count()) {}

                nota.infNF3e.NFdet(iNFdet).det(iDet).nItem = iDet + 1

                Dim detItem As New TNF3eInfNF3eNFdetDetDetItem()
                detItem.prod = New TNF3eInfNF3eNFdetDetDetItemProd()
                detItem.imposto = New TNF3eInfNF3eNFdetDetDetItemImposto()
                detItem.imposto.Item = New TNF3eInfNF3eNFdetDetDetItemImpostoICMS00()
                Dim ICMS00 As New TNF3eInfNF3eNFdetDetDetItemImpostoICMS00()
                detItem.imposto.PIS = New TNF3eInfNF3eNFdetDetDetItemImpostoPIS()
                detItem.imposto.PISEfet = New TNF3eInfNF3eNFdetDetDetItemImpostoPISEfet()
                detItem.imposto.COFINS = New TNF3eInfNF3eNFdetDetDetItemImpostoCOFINS()
                detItem.imposto.COFINSEfet = New TNF3eInfNF3eNFdetDetDetItemImpostoCOFINSEfet()
                detItem.imposto.retTrib = New TNF3eInfNF3eNFdetDetDetItemImpostoRetTrib()

#Region "gAjusteNF3eAnt - Grupo de identificação do ajuste do item de NF3e anterior -  Somente informar no caso de item relacionado a NF3e anterior - Não Consta no XML Enviado"

                'tpAjuste - Tipo de ajuste a ser aplicado ao item 
                '1 - Item a ser substituído (deve informar detItemAnt);
                '2 - Item de substituição (nova imagem Do item anterior);
                '3 - Item a ser eliminado (deve informar detItemAnt);
                '4 - Item a ser incluído referente a NF3e anterior

                'motAjuste - Motivo do Ajuste 
                '1 – Erro de Leitura
                '2 – Erro de Preço ou Erro de Tarifa
                '3 – Decisão Judicial
                '4 – Erro Cadastral
                '5 - Erro de Tributação

#End Region

#Region "detItemAnt - Grupo de informações referentes a item da NF3e anterior - Este grupo somente deverá ser preenchido para detalhar item ajustado de nota anterior nos casos de item alterado ou excluído - Não Consta no XML Enviado"

                'nItemAnt - Número do item da NF3e anterior 

                'vItem - Valor unitário do item 
                '15 posições, sendo 13 inteiras e 2
                'decimais ou 23 posições, sendo 13 inteiras e 10 decimais.
                'Informar o valor sem a influência da decisão judicial / administrativa.

                'qFaturada - Quantidade Faturada 
                '11 posições, sendo 11 inteiras e 0 decimais ou 15 posições, sendo 11
                'inteiras e 4 decimais Informar a quantidade de comercialização do produto.


                'vProd - Valor total do item 
                '15 posições, sendo 13 inteiras e 2 decimais ou 23 posições, sendo 13 inteiras e 10 decimais.
                'Informar o valor sem a influência da decisão judicial / administrativa.

                'cClass - Código de classificação 
                'Tabela de Classificação de Item da NF3e de Energia Elétrica (validar por RV)

                'vBC - Valor da BC do ICMS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'pICMS - Alíquota do ICMS 
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vICMS - Valor do ICMS
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vFCP - Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vBCST - Valor da BC do ICMS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vICMSST - Valor do ICMS ST retido 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vFCPST - Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vPIS - Valor do PIS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vPISEfet - Valor efetivo do PIS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vCOFINS - Valor do COFINS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vCOFINSEfet - Valor Efetivo do COFINS 
                '15 posições, sendo 13 inteiras e 2 decimais.


#End Region

#Region "retTrib - Grupo de informações de retenção de tributos federais Do item anterior - Não Consta no XML Enviado"

                'vRetPIS - Valor do PIS retido
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vRetCofins - Valor do COFNS retido 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vRetCSLL - Valor da CSLL retida 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vBCIRRF - Base de cálculo do IRRF 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vIRRF - Valor do IRRF retido 
                '15 posições, sendo 13 inteiras e 2 decimais.

#End Region

#Region "detItem - Grupo de informações referentes a item da NF3e - Não Consta no XML Enviado"

                'nItemAnt - Número do item da NF3e anterior que este item está substituindo. Deve sempre existir um detItemAnt que corresponda

#End Region

#Region "gTarif - Grupo de Tarifas por Período  - Não Consta no XML Enviado"

                'dIniTarif - Data de início da aplicação da tarifa 
                'Data de início da aplicação da tarifa no
                'período considerado para o faturamento (Formato AAAA-MM-DD)

                'dFimTarif - Data de fim da aplicação da tarifa E D 1 - 1 10
                'Data de fim da aplicação da tarifa no
                'período considerado para o faturamento (Formato AAAA-MM-DD)

                'tpAto - Tipo de Ato da ANEEL 
                '1 - REH (Resolução homologatória);
                '2 - Despacho;
                '3 - REN (Resolução Normativa)

                'nAto - Número do Ato da ANEEL 

                'anoAto - Ano do Ato da ANEEL (AAAA) 

                'tpTarif - Tarifa de aplicação 
                '1 - TE;
                '2 - TUSD

                'cPosTarif - Tipo de posto tarifário 
                '0 - Único/Não se aplica;
                '1 - Ponta;
                '2 - Fora Ponta;
                '3 - Intermediário;
                '4 - Ponta Reservado;
                '5 - Fora ponta Reservado;
                '6 - Intermediário Reservado
                '7 - Reservado

                'uMed - Unidade de Medida 
                '1 - kW (Aplica-se somente a TUSD);
                '2 - kWh (Aplica-se tanto a TUSD quanto TE)

                'vTarifHom - Valor da tarifa homologada pela ANEEL 
                '17 posições, sendo 9 inteiras e 8 decimais.

                'vTarifAplic - Valor da tarifa aplicada 
                '17 posições, sendo 9 inteiras e 8 decimais.

                'motDifTarif - Motivo da diferença de tarifa aplicada com a homologada
                '01 - Decisão judicial;
                '02 - Decisão da distribuidora (tarifa homologada equivale a preço teto);
                '03 - Desconto Tarifário
                '04 – Alteração tarifária

#End Region

#Region "gAdBand - Grupo de Adicional de Bandeira - Não Consta no XML Enviado"

                'dIniAdBand - Data de início da aplicação do adicional 
                'Data de início da aplicação do adicional
                'de bandeira no período considerado para o faturamento (Formato AAAA-MMDD)

                'dFimAdBand - Data de fim da aplicação do adicional 
                'Data de fim da aplicação do adicional de
                'bandeira no período considerado para o faturamento(Formato AAAA-MM-DD)

                'tpBand - Tipo da bandeira tarifária 
                '1 – Verde;
                '2 – Amarela;
                '3 – Vermelha patamar 1;
                '4 – Vermelha patamar 2

                'vAdBand - Valor do Adicional tarifário 
                '15 posições, sendo 13 inteiras e 2 decimais ou 23 posições, sendo 13
                'inteiras e 10 decimais Resultado decorrente da aplicação do
                'adicional de cada bandeira sobre o consumo faturado no período
                'considerado entre as datas de início e fim. Quando for bandeira verde o campo
                'valor do adicional tarifário deverá ser preenchido com zero (0.00).


                'vAdBandAplic - Valor do adicional tarifário aplicado 
                '15 posições, sendo 13 inteiras e 2  decimais ou 23 posições, sendo 13 inteiras e 10 decimais

                'motDifBand - Motivo da diferença do adicional aplicado 
                '01 - Decisão judicial;
                '02 - Decisão da distribuidora (tarifa
                'homologada equivale a preço teto);
                '03 - Desconto tarifário
                '04 – Alteração tarifária

#End Region

#Region "prod - Dados do Produto ou Serviço"


                'Indicador da origem da quantidade faturada
                '1 - Media;
                '2 - Medido;
                '3 - Contratada;
                '4 - Calculada;
                '5 - Custo de disponibilidade;
                '6 - Sem quantidade
                If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.indicador.origem.qtd.faturada"))) Then

                    If Convert.ToString(GetConfig("nf3e.indicador.origem.qtd.faturada")) = "1" Then
                        detItem.prod.indOrigemQtd = TOrigemQtd.Item1
                    ElseIf Convert.ToString(GetConfig("nf3e.indicador.origem.qtd.faturada")) = "2" Then
                        detItem.prod.indOrigemQtd = TOrigemQtd.Item2
                    ElseIf Convert.ToString(GetConfig("nf3e.indicador.origem.qtd.faturada")) = "3" Then
                        detItem.prod.indOrigemQtd = TOrigemQtd.Item3
                    ElseIf Convert.ToString(GetConfig("nf3e.indicador.origem.qtd.faturada")) = "4" Then
                        detItem.prod.indOrigemQtd = TOrigemQtd.Item4
                    ElseIf Convert.ToString(GetConfig("nf3e.indicador.origem.qtd.faturada")) = "5" Then
                        detItem.prod.indOrigemQtd = TOrigemQtd.Item5
                    ElseIf Convert.ToString(GetConfig("nf3e.indicador.origem.qtd.faturada")) = "6" Then
                        detItem.prod.indOrigemQtd = TOrigemQtd.Item6
                    Else
                        detItem.prod.indOrigemQtd = "0"
                    End If

                End If

#End Region

#Region "gMedicao - Grupo para referenciar qual medição e medida estão relacionadas ao item - Não Consta no XML Enviado"

                'nMed - Referência para a medição ao qual se refere o item

                'nContrat - Referência para o grupo de demanda

#End Region

#Region "gMedida - Grupo de medida"

                'Não Consta no XML Enviado

                'tpGrMed - Tipo de grandeza medida 
                '01 - Demanda;
                '02 - Demanda Reativa
                '03 - Energia Ativa;
                '04 - Energia Ativa injetada
                '05 - Energia Reativa

                'cPosTarif - Tipo de posto tarifário 
                '0 - Único/Não se aplica;
                '1 - Ponta;
                '2 - Fora Ponta;
                '3 - Intermediário;
                '4 - Ponta Reservado;
                '5 - Fora ponta Reservado;
                '6 - Intermediário Reservado
                '7 - Reservado

                'uMed - Unidade Básica de Medida 
                '1 - kW
                '2 - kWh;
                '3 - kVAr;
                '4 - kVArh

                'vMedAnt - Valor da medição (leitura) anterior 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vMedAtu - Valor da medição (leitura) atual 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vConst - Indicar o fator de multiplicação do medidor 
                '15 posições, sendo 13 inteiras e 2 decimais ou 19 posições, sendo 13 inteiras e 6 decimais

                'vMed -Valor da medição 
                '15 posições, sendo 13 inteiras e 2 decimais. (vMedAtu – vMedAnt) * vConst

                'pPerdaTran - Perda de Transformação(percentual) 
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vMedPerdaTran - Valor medido após perda de transformação
                '15 posições, sendo 13 inteiras e 2 decimais. vMed * (1 + pPerdTran / 100)

                'vMedPerdaTec - Valor medido após perda técnica 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'tpMotNaoLeitura - Tipo Motivo da não leitura
                '1 - Consumidor;
                '2 - Distribuidora;
                '3 - Independente do Consumidor e
                'distribuidora;

                'Código do produto ou serviço.
                If Not String.IsNullOrEmpty(Convert.ToString(objCodigo.NUM)) Then
                    detItem.prod.cProd = Convert.ToString(objCodigo.NUM).Trim()
                Else
                    detItem.prod.cProd = "0"
                End If

                'Descrição do produto ou serviço
                If Not String.IsNullOrEmpty(Convert.ToString(dr_1("DESCR"))) Then
                    detItem.prod.xProd = Convert.ToString(dr_1("DESCR")).Trim()
                Else
                    detItem.prod.xProd = "."
                End If

                'Código de classificação 
                'Tabela de Classificação de Item da NF3e de Energia Elétrica (validar por RV)
                If Not String.IsNullOrEmpty(Convert.ToString(objCodigo.CODCLASS)) Then
                    detItem.prod.cClass = Convert.ToString(objCodigo.CODCLASS).Trim()
                Else
                    detItem.prod.cClass = "0"
                End If

                'CFOP 
                'Utilizar Tabela de CFOP. (O CFOP não será exigido no caso de deduções e cobranças)
                If istrTabela.ToUpper() = "NF" Then

                    If Not String.IsNullOrEmpty(Convert.ToString(objNf.CFOP)) Then
                        detItem.prod.CFOP = Convert.ToString(objNf.CFOP).Trim()
                    Else
                        detItem.prod.CFOP = "0"
                    End If

                ElseIf istrTabela.ToUpper() = "NFTRANSICAO" Then

                    If Not String.IsNullOrEmpty(Convert.ToString(objNfTransicao.CFOP)) Then
                        detItem.prod.CFOP = Convert.ToString(objNfTransicao.CFOP).Trim()
                    Else
                        detItem.prod.CFOP = "0"
                    End If

                End If

                'Unidade Básica de Medida 
                '1 - kW
                '2 - kWh;
                '3 - kVAr;
                '4 - kVArh;
                '5 - UN
                If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida.detitem"))) Then

                    If Convert.ToString(GetConfig("nf3e.unidade.basica.medida.detitem")) = "1" Then
                        detItem.prod.uMed = TUMedItem.Item1
                    ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida.detitem")) = "2" Then
                        detItem.prod.uMed = TUMedItem.Item2
                    ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida.detitem")) = "3" Then
                        detItem.prod.uMed = TUMedItem.Item3
                    ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida.detitem")) = "4" Then
                        detItem.prod.uMed = TUMedItem.Item4
                    ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida.detitem")) = "5" Then
                        detItem.prod.uMed = TUMedItem.Item5
                    End If

                    If String.IsNullOrEmpty(Convert.ToString(dr_1("REF"))) Then
                        detItem.prod.uMed = TUMedItem.Item5
                    End If

                End If

                FATURADO = 0

                'Quantidade Faturada 
                '11 posições, sendo 11 inteiras e 0 decimais ou 15 posições, sendo 11
                'inteiras e 4 decimais. Informar a quantidade de comercialização do produto.
                If Not String.IsNullOrEmpty(Convert.ToString(dr_1("REF"))) Then
                    'If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.VALORLIQ)) Then
                    If Convert.ToString(dr_1("DESCR")) = "CONSUMO FORA DE PONTA" Then
                        detItem.prod.qFaturada = IIf(Convert.ToString(objTempFaturaNF3EA.CONSFATURADOFP) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.CONSFATURADOFP.ToString("N2")).Replace(".", "").Replace(",", "."))
                        FATURADO = Convert.ToString(objTempFaturaNF3EA.CONSFATURADOFP.ToString("N2"))
                    ElseIf Convert.ToString(dr_1("DESCR")) = "CONSUMO PONTA" Then
                        detItem.prod.qFaturada = IIf(Convert.ToString(objTempFaturaNF3EA.CONSFATURADOP) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.CONSFATURADOP.ToString("N2")).Replace(".", "").Replace(",", "."))
                        FATURADO = Convert.ToString(objTempFaturaNF3EA.CONSFATURADOP.ToString("N2"))
                    ElseIf Convert.ToString(dr_1("DESCR")) = "UFER PONTA" Then
                        detItem.prod.qFaturada = IIf(Convert.ToString(objTempFaturaNF3EA.FER_P) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.FER_P.ToString("N2")).Replace(".", "").Replace(",", "."))
                        FATURADO = Convert.ToString(objTempFaturaNF3EA.FER_P.ToString("N2"))
                    ElseIf Convert.ToString(dr_1("DESCR")) = "UFER FORA DE PONTA" Then
                        detItem.prod.qFaturada = IIf(Convert.ToString(objTempFaturaNF3EA.FER_FP) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.FER_FP.ToString("N2")).Replace(".", "").Replace(",", "."))
                        FATURADO = Convert.ToString(objTempFaturaNF3EA.FER_FP.ToString("N2"))
                    ElseIf Convert.ToString(dr_1("DESCR")) = "DEMANDA" Then
                        If Convert.ToString(objTempFaturaNF3EA.DEMFATURP) > 0 Then
                            detItem.prod.qFaturada = IIf(Convert.ToString(objTempFaturaNF3EA.DEMFATURP) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.DEMFATURP.ToString("N2")).Replace(".", "").Replace(",", "."))
                            FATURADO = Convert.ToString(objTempFaturaNF3EA.DEMFATURP.ToString("N2"))
                        Else
                            detItem.prod.qFaturada = IIf(Convert.ToString(objTempFaturaNF3EA.DEMFATURFP) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.DEMFATURFP.ToString("N2")).Replace(".", "").Replace(",", "."))
                            FATURADO = Convert.ToString(objTempFaturaNF3EA.DEMFATURFP.ToString("N2"))
                        End If
                    ElseIf Convert.ToString(dr_1("DESCR")) = "DEMANDA ULTRAP." Then

                        'detItem.prod.qFaturada = IIf(Convert.ToString(objTempFaturaNF3EA.ULTRAFP) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.ULTRAFP.ToString()).Replace(".", "").Replace(",", "."))
                        detItem.prod.qFaturada = IIf(Convert.ToString(objTempFaturaNF3EA.ULTRAFP) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.ULTRAFP.ToString("N2")).Replace(".", "").Replace(",", "."))
                        FATURADO = Convert.ToString(objTempFaturaNF3EA.ULTRAFP.ToString("N2"))
                    Else
                        detItem.prod.qFaturada = "0.00"
                    End If
                Else
                    detItem.prod.qFaturada = "1.00"
                    FATURADO = "1,00"
                End If

                'Valor unitário do item 
                '15 posições, sendo 13 inteiras e 2 decimais ou 23 posições, sendo 13
                'inteiras e 10 decimais O valor unitário do item no caso de
                'energia elétrica corresponde ao valor da tarifa e dos tributos que devam compor
                'a base de cálculo. O item pode estar acrescido do adicional da bandeira
                'tarifária ou o adicional de bandeira poderá ser lançado como um item
                'específico. Este campo também corresponde ao preço médio efetivo relativo ao consumo
                'ativo do período, quando aplicáveis os termos do inciso I da clausula primeira
                'Do Convênio ICMS 77/11 (DEVEC).

                'If detItem.prod.cProd = "9080000066" Then
                '    MsgBox("1")
                'End If
                If Not String.IsNullOrEmpty(Convert.ToString(dr_1("REF"))) Then
                    If Not String.IsNullOrEmpty(Convert.ToString(dr_1("VALOR_ITEM"))) Then
                        If Convert.ToString(dr_1("DESCR")) = "DEMANDA ULTRAP." Then
                            var_FATURADA_TEXTO = dr_1("REF")

                            If ((var_FATURADA_TEXTO.Contains("(")) And (var_FATURADA_TEXTO.Contains("X"))) Then
                                var_CODITEM2 = Replace(var_FATURADA_TEXTO, "(", "")
                                var_CODITEM2 = Replace(var_CODITEM2, ")", "")
                                var_CODITEM2 = Replace(var_CODITEM2, " ", "")
                                var_CODITEM2 = Replace(var_CODITEM2, ",", ".")
                                var_CODITEM2 = var_CODITEM2.ToString.Trim

                                var_FATURADA_SPLIT = Split(var_FATURADA_TEXTO, "X")
                                var_QFATURADA = Replace(var_FATURADA_SPLIT(0), "(", "").ToString.Trim
                                var_VITEM = Replace(var_FATURADA_SPLIT(1), ")", "").ToString.Trim

                                detItem.prod.vItem = IIf(Convert.ToString(var_VITEM) = "0", "0.00", Convert.ToString(Convert.ToDecimal(var_VITEM).ToString("N2")).Replace(".", "").Replace(",", "."))
                                ITEM = var_VITEM
                            Else
                                detItem.prod.vItem = IIf(Convert.ToString(dr_1("REF")) = "0", "0.00", Convert.ToString(Convert.ToDecimal(dr_1("REF")).ToString("N2")).Replace(".", "").Replace(",", "."))
                            End If

                        ElseIf Convert.ToString(dr_1("DESCR")) = "CONSUMO FORA DE PONTA" Then
                            detItem.prod.vItem = Convert.ToString(objTempFaturaNF3EA.TA_CONSFP).Replace(",", ".")
                            ITEM = objTempFaturaNF3EA.TA_CONSFP
                        ElseIf Convert.ToString(dr_1("DESCR")) = "CONSUMO PONTA" Then
                            detItem.prod.vItem = Convert.ToString(objTempFaturaNF3EA.TA_CONSP).Replace(",", ".")
                            ITEM = objTempFaturaNF3EA.TA_CONSP
                        ElseIf Convert.ToString(dr_1("DESCR")) = "DEMANDA" Then
                            detItem.prod.vItem = Convert.ToString(objTempFaturaNF3EA.TA_DEMFP).Replace(",", ".")
                            ITEM = objTempFaturaNF3EA.TA_DEMFP
                        ElseIf Convert.ToString(dr_1("DESCR")) = "DIF.DEM.CONT.FORA PONTA" Then
                            detItem.prod.vItem = Convert.ToString(objTempFaturaNF3EA.TA_DEMFP).Replace(",", ".")
                            ITEM = objTempFaturaNF3EA.TA_DEMFP
                        ElseIf Convert.ToString(dr_1("DESCR")) = "DIF.DEM.CONT.FORA PONTA" Then
                            detItem.prod.vItem = Convert.ToString(objTempFaturaNF3EA.TA_DEMFP).Replace(",", ".")
                            ITEM = objTempFaturaNF3EA.TA_DEMFP
                        Else
                            detItem.prod.vItem = "0.00"
                        End If
                    Else
                        detItem.prod.vItem = "0.00"
                    End If
                Else
                    detItem.prod.vItem = IIf(Convert.ToString(dr_1("VALOR_ITEM")) = "0", "0.00", Convert.ToString(Convert.ToDecimal(dr_1("VALOR_ITEM")).ToString("N2")).Replace(".", "").Replace(",", "."))
                    ITEM = dr_1("VALOR_ITEM")
                End If

                'If detItem.prod.cProd = "0302020014" Then
                '    MsgBox("1")
                'End If

                'Valor total do item 
                '15 posições, sendo 13 inteiras e 2 decimais ou 23 posições, sendo 13 inteiras e 10 decimais.
                If Not String.IsNullOrEmpty(Convert.ToString(dr_1("VALOR_ITEM"))) Then
                    'detItem.prod.vProd = IIf(Convert.ToString(objTempFaturaNF3EA.VLRCONSUMO_ST) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.VLRCONSUMO_ST.ToString("N2")).Replace(".", "").Replace(",", "."))
                    'detItem.prod.vProd = IIf(Convert.ToString(dr_1("VALOR_ITEM")) = "0", "0.00", Convert.ToString(dr_1("VALOR_ITEM")).Replace(".", "").Replace(",", "."))
                    'detItem.prod.vProd = Convert.ToString(Convert.ToDecimal(FATURADO * ITEM).ToString("N2").Replace(".", "").Replace(",", "."))

                    detItem.prod.vProd = Convert.ToDecimal(Truncate((FATURADO * ITEM), 2).ToString("N2"))
                    ValorTotalItem = ValorTotalItem + detItem.prod.vProd
                    detItem.prod.vProd = Convert.ToString(detItem.prod.vProd).Replace(".", "").Replace(",", ".")

                    If ITEM > 0 And detItem.prod.vItem = "0.00" Then
                        detItem.prod.vItem = IIf(Convert.ToString(ITEM) = "0", "0.00", Convert.ToString(Convert.ToDecimal(ITEM).ToString("N2")).Replace(".", "").Replace(",", "."))
                    End If

                Else
                    detItem.prod.vProd = "0.00"
                End If

                'Não Consta no XML Enviado

                'indDevolucao - Indicador de devolução do valor do item
                '1 – Devolução do valor do item

                'indPrecoACL - Preço 
                'Valor declarado na DEVEC de acordo com convênio ICMS 77/11 Deve informar
                'ICMS10 e não poderá informar grupo de tarifas aplicadas.

#End Region

#Region "imposto - Tributos incidentes no Produto ou Serviço"


#Region "ICMS00 - Prestação sujeito à tributação normal do ICMS - Tributada integralmente"

                'classificação Tributária do Serviço 
                '00 - Tributação normal ICMS
                ICMS00.CST = TNF3eInfNF3eNFdetDetDetItemImpostoICMS00CST.Item00

                'Valor da BC do ICMS 
                '15 posições, sendo 13 inteiras e 2 decimais.
                'If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.BASE_ICMS)) Then
                'ICMS00.vBC = IIf(Convert.ToString(objTempFaturaNF3EA.BASE_ICMS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.BASE_ICMS.ToString("N2")).Replace(".", "").Replace(",", "."))
                'Else
                ICMS00.vBC = "0.00"
                'End If

                'Alíquota do ICMS 
                '5 posições, sendo 3 inteiras e 2 decimais.
                If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.ALIQ_ICMS)) Then
                    ICMS00.pICMS = IIf(Convert.ToString(objTempFaturaNF3EA.ALIQ_ICMS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.ALIQ_ICMS.ToString("N2")).Replace(".", "").Replace(",", "."))
                Else
                    ICMS00.pICMS = "0.00"
                End If

                'Valor do ICMS 
                '15 posições, sendo 13 inteiras e 2 decimais.
                If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.VLR_ICMS)) Then
                    ICMS00.vICMS = IIf(Convert.ToString(objTempFaturaNF3EA.VLR_ICMS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.VLR_ICMS.ToString("N2")).Replace(".", "").Replace(",", "."))
                Else
                    ICMS00.vICMS = "0.00"
                End If

                'Percentual de ICMS relativo ao Fundo de Combate à Pobreza (FCP).
                '5 posições, sendo 3 inteiras e 2 decimais.
                ICMS00.pFCP = "0.00"

                'Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).
                '15 posições, sendo 13 inteiras e 2 decimais.
                ICMS00.vFCP = "0.00"

#End Region

#Region "ICMS10 - Tributada e com cobrança do ICMS por substituição tributária - Não Consta no XML Enviado"

                'CST - classificação Tributária do Serviço
                '10 - Tributada e com cobrança do ICMS por substituição tributária

                'vBCST - Valor da BC do ICMS ST 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'pICMSST - Alíquota do ICMS ST 
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vICMSST - Valor do ICMS ST retido 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'pFCPST - Percentual de ICMS relativo ao Fundo de Combate à Pobreza (FCP).
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vFCPST - Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).
                '15 posições, sendo 13 inteiras e 2 decimais.

#End Region

#Region "ICMS20 - Prestação sujeito à tributação com redução de BC Do ICMS - Não Consta no XML Enviado"


                'CST - Classificação Tributária do serviço 
                'Tributação com BC reduzida do ICMS

                'pRedBC - Percentual de redução da BC 
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vBC - Valor da BC do ICMS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'pICMS - Alíquota do ICMS 
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vICMS - Valor do ICMS
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vICMSDeson - Valor do ICMS de desoneração 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'cBenef - Código de Benefício Fiscal na UF aplicado ao item
                'Código de Benefício Fiscal utilizado pela UF, aplicado ao item.

                'pFCP - Percentual de ICMS relativo ao Fundo de Combate à Pobreza (FCP).
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vFCP - Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).
                '15 posições, sendo 13 inteiras e 2 decimais.

#End Region

#Region "ICMS40 - Tributação Isenta, Não tributada - Não Consta no XML Enviado"

                'CST -  Classificação Tributária do serviço 
                '40 - Isenta;
                '41 - Não tributada;

                'vICMSDeson - Valor do ICMS de desoneração
                '15 posições, sendo 13 inteiras e 2 decimais.

                'cBenef - Código de Benefício Fiscal na UF aplicado ao item
                'Código de Benefício Fiscal utilizado pela UF, aplicado ao item.

#End Region

#Region "ICMS51 - Tributação com Diferimento CG - A exigência do preenchimento das informações do ICMS diferido fica a critério de cada UF - Não Consta no XML Enviado"

                'CST - Classificação Tributária do serviço 
                'Tributação pelo ICMS 51 - Diferimento

                'vICMSDeson - Valor do ICMS de desoneração 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'cBenef - Código de Benefício Fiscal na UF aplicado ao item
                'Código de Benefício Fiscal utilizado pela UF, aplicado ao item.

#End Region

#Region "ICMS90 - ICMS Outros CG - Será usado no caso da subvenção ou para NF3e de ajuste quando for o caso. - Não Consta no XML Enviado"

                'CST - Classificação Tributária do Serviço 
                '90 - ICMS outros

                'vBC - Valor da BC do ICMS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'pICMS - Alíquota do ICMS 
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vICMS - Valor do ICMS 
                '15 posições, sendo 13 inteiras e 2 decimais.

#End Region

#Region "PIS - Dados do PIS"

                'classificação Tributária do PIS 
                '01 – Tributável com alíquota básica
                '02 – Tributável com alíquota diferenciada
                '06 – Tributável com alíquota erro
                '07 – Operação isenta de contribuição
                '08 – Operação sem incidência da contribuição
                '09 – Operação com suspensão da contribuição
                '49 – Outras operações de saída
                If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.classificacao.triutaria.pis"))) Then

                    If Convert.ToString(GetConfig("nf3e.classificacao.triutaria.pis")) = "01" Then
                        detItem.imposto.PIS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoPISCST.Item01
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.pis")) = "02" Then
                        detItem.imposto.PIS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoPISCST.Item02
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.pis")) = "06" Then
                        detItem.imposto.PIS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoPISCST.Item06
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.pis")) = "07" Then
                        detItem.imposto.PIS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoPISCST.Item07
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.pis")) = "08" Then
                        detItem.imposto.PIS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoPISCST.Item08
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.pis")) = "09" Then
                        detItem.imposto.PIS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoPISCST.Item09
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.pis")) = "49" Then
                        detItem.imposto.PIS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoPISCST.Item49
                    Else
                        detItem.imposto.PIS.CST = "0"
                    End If

                End If

                If nota.infNF3e.NFdet(iNFdet).det(iDet).nItem = 1 Then

                    'Valor da BC do PIS 
                    '15 posições, sendo 13 inteiras e 2 decimais.
                    If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.BASEPIS)) Then
                        detItem.imposto.PIS.vBC = IIf(Convert.ToString(objTempFaturaNF3EA.BASEPIS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.BASEPIS.ToString("N2")).Replace(".", "").Replace(",", "."))
                    Else
                        detItem.imposto.PIS.vBC = "0.00"
                    End If

                    'Alíquota do PIS (em percentual)
                    '5 posições, sendo 3 inteiras e 2 decimais ou 7 posições, sendo 3 inteiras e 4 decimais
                    If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.ALIQPIS)) And Not String.IsNullOrEmpty(Convert.ToString(dr_1("REF"))) Then
                        If objTempFaturaNF3EA.ALIQPIS <> 0 Then
                            detItem.imposto.PIS.pPIS = IIf(Convert.ToString(objTempFaturaNF3EA.ALIQPIS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.ALIQPIS.ToString("N2")).Replace(".", "").Replace(",", "."))
                        Else
                            detItem.imposto.PIS.pPIS = "0.65"
                        End If
                    Else
                        detItem.imposto.PIS.pPIS = "0.65"
                    End If

                    'Valor do PIS 
                    '15 posições, sendo 13 inteiras e 2 decimais.
                    If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.VLRPIS)) Then
                        detItem.imposto.PIS.vPIS = IIf(Convert.ToString(objTempFaturaNF3EA.VLRPIS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.VLRPIS.ToString("N2")).Replace(".", "").Replace(",", "."))
                    Else
                        detItem.imposto.PIS.vPIS = "0.00"
                    End If

                Else
                    detItem.imposto.PIS.vBC = "0.00"
                    detItem.imposto.PIS.pPIS = "0.65"
                    detItem.imposto.PIS.vPIS = "0.00"
                End If

#End Region

#Region "PISEfet - Dados do PIS Efetivo"

                If nota.infNF3e.NFdet(iNFdet).det(iDet).nItem = 1 Then

                    'Valor da BC do PIS efetivo 
                    '15 posições, sendo 13 inteiras e 2 decimais.
                    If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.BASEPIS)) And Not String.IsNullOrEmpty(Convert.ToString(dr_1("REF"))) Then
                        detItem.imposto.PISEfet.vBCPISEfet = IIf(Convert.ToString(objTempFaturaNF3EA.BASEPIS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.BASEPIS.ToString("N2")).Replace(".", "").Replace(",", "."))
                    Else
                        detItem.imposto.PISEfet.vBCPISEfet = "0.00"
                    End If

                    'Alíquota efetiva do PIS (em percentual) 
                    '5 posições, sendo 3 inteiras e 2 decimais ou 7 posições, sendo 3 inteiras e 4 decimais
                    If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.ALIQPIS)) And Not String.IsNullOrEmpty(Convert.ToString(dr_1("REF"))) Then
                        If objTempFaturaNF3EA.ALIQPIS <> 0 Then
                            detItem.imposto.PISEfet.pPISEfet = IIf(Convert.ToString(objTempFaturaNF3EA.ALIQPIS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.ALIQPIS.ToString("N2")).Replace(".", "").Replace(",", "."))
                        Else
                            detItem.imposto.PISEfet.pPISEfet = "0.65"
                        End If
                    Else
                        detItem.imposto.PISEfet.pPISEfet = "0.65"
                    End If

                    'Valor efetivo do PIS 
                    '15 posições, sendo 13 inteiras e 2 decimais.
                    If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.VLRPIS)) And Not String.IsNullOrEmpty(Convert.ToString(dr_1("REF"))) Then
                        detItem.imposto.PISEfet.vPISEfet = IIf(Convert.ToString(objTempFaturaNF3EA.VLRPIS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.VLRPIS.ToString("N2")).Replace(".", "").Replace(",", "."))
                    Else
                        detItem.imposto.PISEfet.vPISEfet = "0.00"
                    End If

                Else
                    detItem.imposto.PISEfet.vBCPISEfet = "0.00"
                    detItem.imposto.PISEfet.pPISEfet = "0.65"
                    detItem.imposto.PISEfet.vPISEfet = "0.00"
                End If

#End Region

#Region "COFINS - Dados do COFINS"

                'classificação Tributária do COFINS
                '01 – Tributável com alíquota básica
                '02 – Tributável com alíquota
                'diferenciada
                '06 – Tributável com alíquota erro
                '07 – Operação isenta de contribuição
                '08 – Operação sem incidência da
                'contribuição
                '09 – Operação com suspensão da
                'contribuição
                '49 – Outras operações de saída
                If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.classificacao.triutaria.cofins"))) Then

                    If Convert.ToString(GetConfig("nf3e.classificacao.triutaria.cofins")) = "01" Then
                        detItem.imposto.COFINS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoCOFINSCST.Item01
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.cofins")) = "02" Then
                        detItem.imposto.COFINS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoCOFINSCST.Item02
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.cofins")) = "06" Then
                        detItem.imposto.COFINS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoCOFINSCST.Item06
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.cofins")) = "07" Then
                        detItem.imposto.COFINS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoCOFINSCST.Item07
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.cofins")) = "08" Then
                        detItem.imposto.COFINS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoCOFINSCST.Item08
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.cofins")) = "09" Then
                        detItem.imposto.COFINS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoCOFINSCST.Item09
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.cofins")) = "49" Then
                        detItem.imposto.COFINS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoCOFINSCST.Item49
                    Else
                        detItem.imposto.COFINS.CST = "0"
                    End If

                End If

                If nota.infNF3e.NFdet(iNFdet).det(iDet).nItem = 1 Then

                    'Valor da BC do COFINS 
                    '15 posições, sendo 13 inteiras e 2 decimais.
                    If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.BASECOFINS)) And Not String.IsNullOrEmpty(Convert.ToString(dr_1("REF"))) Then
                        detItem.imposto.COFINS.vBC = IIf(Convert.ToString(objTempFaturaNF3EA.BASECOFINS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.BASECOFINS.ToString("N2")).Replace(".", "").Replace(",", "."))
                    Else
                        detItem.imposto.COFINS.vBC = "0.00"
                    End If

                    'Alíquota do COFINS (em percentual) 
                    '5 posições, sendo 3 inteiras e 2 decimais ou 7 posições, sendo 3 inteiras e 4 decimais
                    If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.ALIQCOFINS)) And Not String.IsNullOrEmpty(Convert.ToString(dr_1("REF"))) Then
                        If objTempFaturaNF3EA.ALIQCOFINS <> 0 Then
                            detItem.imposto.COFINS.pCOFINS = IIf(Convert.ToString(objTempFaturaNF3EA.ALIQCOFINS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.ALIQCOFINS.ToString("N2")).Replace(".", "").Replace(",", "."))
                        Else
                            detItem.imposto.COFINS.pCOFINS = "3.0000"
                        End If
                    Else
                        detItem.imposto.COFINS.pCOFINS = "3.0000"
                    End If

                    'Valor do COFINS 
                    ' 15 posições, sendo 13 inteiras e 2 decimais.
                    If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.VLRCOFINS)) And Not String.IsNullOrEmpty(Convert.ToString(dr_1("REF"))) Then
                        detItem.imposto.COFINS.vCOFINS = IIf(Convert.ToString(objTempFaturaNF3EA.VLRCOFINS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.VLRCOFINS.ToString("N2")).Replace(".", "").Replace(",", "."))
                    Else
                        detItem.imposto.COFINS.vCOFINS = "0.00"
                    End If

                Else
                    detItem.imposto.COFINS.vBC = "0.00"
                    detItem.imposto.COFINS.pCOFINS = "3.0000"
                    detItem.imposto.COFINS.vCOFINS = "0.00"
                End If

#End Region

#Region "COFINSEfet - Dados do COFINS Efetivo"

                If nota.infNF3e.NFdet(iNFdet).det(iDet).nItem = 1 Then

                    'Valor da BC do COFINS efetivo 
                    '15 posições, sendo 13 inteiras e 2 decimais.
                    If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.BASECOFINS)) Then
                        detItem.imposto.COFINSEfet.vBCCOFINSEfet = IIf(Convert.ToString(objTempFaturaNF3EA.BASECOFINS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.BASECOFINS.ToString("N2")).Replace(".", "").Replace(",", "."))
                    Else
                        detItem.imposto.COFINSEfet.vBCCOFINSEfet = "0.00"
                    End If

                    'Alíquota Efetiva do COFINS (em percentual)
                    '5 posições, sendo 3 inteiras e 2 decimais ou 7 posições, sendo 3 inteiras e 4 decimais
                    If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.ALIQCOFINS)) And Not String.IsNullOrEmpty(Convert.ToString(dr_1("REF"))) Then
                        If objTempFaturaNF3EA.ALIQCOFINS <> 0 Then
                            detItem.imposto.COFINSEfet.pCOFINSEfet = IIf(Convert.ToString(objTempFaturaNF3EA.ALIQCOFINS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.ALIQCOFINS.ToString("N2")).Replace(".", "").Replace(",", "."))
                        Else
                            detItem.imposto.COFINSEfet.pCOFINSEfet = "3.0000"
                        End If
                    Else
                        detItem.imposto.COFINSEfet.pCOFINSEfet = "3.0000"
                    End If


                    'Valor Efetivo do COFINS 
                    '15 posições, sendo 13 inteiras e 2  decimais.
                    If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.VLRCOFINS)) Then
                        detItem.imposto.COFINSEfet.vCOFINSEfet = IIf(Convert.ToString(objTempFaturaNF3EA.VLRCOFINS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.VLRCOFINS.ToString("N2")).Replace(".", "").Replace(",", "."))
                    Else
                        detItem.imposto.COFINSEfet.vCOFINSEfet = "0.00"
                    End If
                Else
                    detItem.imposto.COFINSEfet.vBCCOFINSEfet = "0.00"
                    detItem.imposto.COFINSEfet.pCOFINSEfet = "3.0000"
                    detItem.imposto.COFINSEfet.vCOFINSEfet = "0.00"
                End If

#End Region

#Region "retTrib - Grupo de informações de retenção de tributos federais"

                'Valor do PIS retido 
                '15 posições, sendo 13 inteiras e 2 decimais.
                detItem.imposto.retTrib.vRetPIS = "0.00"

                'Valor do COFNS retido 
                '15 posições, sendo 13 inteiras e 2  decimais.
                detItem.imposto.retTrib.vRetCofins = "0.00"

                'Valor da CSLL retida 
                '15 posições, sendo 13 inteiras e 2 decimais.
                detItem.imposto.retTrib.vRetCSLL = "0.00"

                'Base de cálculo do IRRF 
                '15 posições, sendo 13 inteiras e 2 decimais.
                detItem.imposto.retTrib.vBCIRRF = "0.00"

                'Valor do IRRF retido 
                '15 posições, sendo 13 inteiras e 2 decimais.
                detItem.imposto.retTrib.vIRRF = "0.00"

#End Region

#Region "gProcRef - Grupo Processo referenciado - Não Consta no XML Enviado"

                'vItem - Valor unitário do item 
                '15 posições, sendo 13 inteiras e 2 decimais ou 23 posições, sendo 13 inteiras e 10 decimais.
                'Informar o valor sem a influência da decisão judicial / administrativa.

                'qFaturada - Quantidade Faturada 
                '11 posições, sendo 11 inteiras e 0 decimais ou 15 posições, sendo 11
                'inteiras e 4 decimais Informar a quantidade de comercialização do produto. 

                'vProd - Valor total do item
                '15 posições, sendo 13 inteiras e 2 decimais ou 23 posições, sendo 13 inteiras e 10 decimais.

                'indDevolucao - Indicador de devolução do valor do item 
                '1 – Devolução do valor do item

                'vBC - Valor da BC do ICMS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'pICMS - Alíquota do ICMS 
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vICMS - Valor do ICMS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'pFCP - Percentual de ICMS relativo ao Fundo de Combate à Pobreza (FCP).
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vFCP - Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vBCST - Valor da BC do ICMS ST 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'pICMSST - Alíquota do ICMS ST 
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vICMSST - Valor do ICMS ST retido 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'pFCPST - Percentual de ICMS relativo ao Fundo de
                'Combate à Pobreza (FCP).
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vFCPST - Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vPIS - Valor do PIS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vPISEfet - Valor efetivo do PIS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vCOFINS - Valor do COFINS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vCOFINSEfet - Valor Efetivo do COFINS 
                '15 posições, sendo 13 inteiras e 2 decimais.

#End Region

#Region "gProc - Grupo identificador do Processo - Não Consta no XML Enviado"

                'tpProc - Tipo de Processo 
                '0 - SEFAZ;
                '1 - Justiça Federal;
                '2 - Justiça Estadual

                'nProcesso - Número do Processo 

#End Region

#Region "gContab - Grupo de Informações Contábeis - Não Consta no XML Enviado"

                'cContab - Número da Conta Contábil do lançamento 
                'xContab - Descrição da conta contábil 
                'vContab - Valor do lançamento na conta contábil 
                '15 posições, sendo 13 inteiras e 2 decimais. Informar o valor do lançamento contábil
                'referente a cada conta a débito e a crédito.
                'tpLanc - Tipo de lançamento contábil 
                'Informar o tipo do lançamento contábil referente a esta conta (D/C).
                'infAdProd - Informações adicionais do produto (norma referenciada, informações complementares, etc)

#End Region


#End Region

                detItem.imposto.Item = ICMS00

                nota.infNF3e.NFdet(iNFdet).det(iDet).Item = detItem

                iDet = iDet + 1

            Next dr_1

#End Region


#End Region

#Region "total - Dados dos totais da NF3e"

            'Valor Total dos produtos e serviços 
            '15 posições, sendo 13 inteiras e 2 decimais.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.VALORTOT)) Then
                'nota.infNF3e.total.vProd = IIf(Convert.ToString(objTempFaturaNF3EA.VALORTOT) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.VALORTOT.ToString("N2")).Replace(".", "").Replace(",", "."))
                nota.infNF3e.total.vProd = Convert.ToString(ValorTotalItem.ToString("N2")).Replace(".", "").Replace(",", ".")
            Else
                nota.infNF3e.total.vProd = "0.00"
            End If

#Region "ICMSTot - Totais referentes ao ICMS"

            'BC do ICMS 
            '15 posições, sendo 13 inteiras e 2 decimais.
            'If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.BASE_ICMS)) Then
            'nota.infNF3e.total.ICMSTot.vBC = IIf(Convert.ToString(objTempFaturaNF3EA.BASE_ICMS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.BASE_ICMS.ToString("N2")).Replace(".", "").Replace(",", "."))
            'Else
            nota.infNF3e.total.ICMSTot.vBC = "0.00"
            'End If

            'Valor Total do ICMS 
            '15 posições, sendo 13 inteiras e 2 decimais.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.VLR_ICMS)) Then
                nota.infNF3e.total.ICMSTot.vICMS = IIf(Convert.ToString(objTempFaturaNF3EA.VLR_ICMS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.VLR_ICMS.ToString("N2")).Replace(".", "").Replace(",", "."))
            Else
                nota.infNF3e.total.ICMSTot.vICMS = "0.00"
            End If

            ' Valor Total do ICMS desonerado 
            '15 posições, sendo 13 inteiras e 2 decimais.
            nota.infNF3e.total.ICMSTot.vICMSDeson = "0.00"

            'Valor Total do FCP (Fundo de Combate à Pobreza).
            '15 posições, sendo 13 inteiras e 2 decimais.
            nota.infNF3e.total.ICMSTot.vFCP = "0.00"

            'BC do ICMS ST 
            '15 posições, sendo 13 inteiras e 2 decimais.
            nota.infNF3e.total.ICMSTot.vBCST = "0.00"

            'Valor Total do ICMS ST 
            '15 posições, sendo 13 inteiras e 2 decimais.
            nota.infNF3e.total.ICMSTot.vST = "0.00"

            'Valor Total do FCP (Fundo de Combate à Pobreza) retido por substituição tributária.
            '15 posições, sendo 13 inteiras e 2 decimais.
            nota.infNF3e.total.ICMSTot.vFCPST = "0.00"

#End Region

#Region "vRetTribTot - Total da retenção de tributos federais"

            'Valor do PIS retido 
            '15 posições, sendo 13 inteiras e 2 decimais.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.RET_PIS)) Then
                nota.infNF3e.total.vRetTribTot.vRetPIS = IIf(Convert.ToString(objTempFaturaNF3EA.RET_PIS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.RET_PIS.ToString("N2")).Replace(".", "").Replace(",", "."))
            Else
                nota.infNF3e.total.vRetTribTot.vRetPIS = "0.00"
            End If

            'Valor do COFNS retido 
            '15 posições, sendo 13 inteiras e 2 decimais.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.RET_COFINS)) Then
                nota.infNF3e.total.vRetTribTot.vRetCofins = IIf(Convert.ToString(objTempFaturaNF3EA.RET_COFINS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.RET_COFINS.ToString("N2")).Replace(".", "").Replace(",", "."))
            Else
                nota.infNF3e.total.vRetTribTot.vRetCofins = "0.00"
            End If

            'Valor da CSLL retida 
            '15 posições, sendo 13 inteiras e 2 decimais.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.RET_CSLL)) Then
                nota.infNF3e.total.vRetTribTot.vRetCSLL = IIf(Convert.ToString(objTempFaturaNF3EA.RET_CSLL) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.RET_CSLL.ToString("N2")).Replace(".", "").Replace(",", "."))
            Else
                nota.infNF3e.total.vRetTribTot.vRetCSLL = "0.00"
            End If

            'Não sei de onde pegar - Deixei  vazio
            'Valor do IRRF retido 
            '15 posições, sendo 13 inteiras e 2 decimais.
            nota.infNF3e.total.vRetTribTot.vIRRF = "0.00"

            'Valor do COFINS 
            '15 posições, sendo 13 inteiras e 2 decimais.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.VLRCOFINS)) Then
                nota.infNF3e.total.vCOFINS = IIf(Convert.ToString(objTempFaturaNF3EA.VLRCOFINS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.VLRCOFINS.ToString("N2")).Replace(".", "").Replace(",", "."))
            Else
                nota.infNF3e.total.vCOFINS = "0.00"
            End If

            'Total do Valor Efetivo do COFINS 
            '15 posições, sendo 13 inteiras e 2 decimais.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.VLRCOFINS)) Then
                nota.infNF3e.total.vCOFINSEfet = IIf(Convert.ToString(objTempFaturaNF3EA.VLRCOFINS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.VLRCOFINS.ToString("N2")).Replace(".", "").Replace(",", "."))
            Else
                nota.infNF3e.total.vCOFINSEfet = "0.00"
            End If

            'Valor do PIS 
            '15 posições, sendo 13 inteiras e 2 decimais.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.VLRPIS)) Then
                nota.infNF3e.total.vPIS = IIf(Convert.ToString(objTempFaturaNF3EA.VLRPIS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.VLRPIS.ToString("N2")).Replace(".", "").Replace(",", "."))
            Else
                nota.infNF3e.total.vPIS = "0.00"
            End If

            'Total do Valor Efetivo do PIS 
            '15 posições, sendo 13 inteiras e 2 decimais.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.VLRPIS)) Then
                nota.infNF3e.total.vPISEfet = IIf(Convert.ToString(objTempFaturaNF3EA.VLRPIS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.VLRPIS.ToString("N2")).Replace(".", "").Replace(",", "."))
            Else
                nota.infNF3e.total.vPISEfet = "0.00"
            End If

            'Valor Total da NF-e 
            '15 posições, sendo 13 inteiras e 2 decimais.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.VALORTOT)) Then
                'nota.infNF3e.total.vNF = IIf(Convert.ToString(objTempFaturaNF3EA.VALORTOT) = "0", "0.00", Convert.ToString(objTempFaturaNF3EA.VALORTOT.ToString("N2")).Replace(".", "").Replace(",", "."))
                nota.infNF3e.total.vNF = Convert.ToString(ValorTotalItem.ToString("N2")).Replace(".", "").Replace(",", ".")
            Else
                nota.infNF3e.total.vNF = "0.00"
            End If

#End Region

#End Region

#Region "gFat - Grupo de informações de controle da Fatura"

            'Ano e mês referência do faturamento (AAAAMM)
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.MESANOREF)) Then
                nota.infNF3e.gFat.CompetFat = Convert.ToString(objTempFaturaNF3EA.MESANOREF)
            Else
                nota.infNF3e.gFat.CompetFat = "0"
            End If

            'Data de vencimento da fatura 
            'Formato AAAA-MM-DD
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.DATAVENC)) Then
                nota.infNF3e.gFat.dVencFat = objTempFaturaNF3EA.DATAVENC.ToString("yyyy-MM-dd")
            Else
                nota.infNF3e.gFat.dVencFat = "0"
            End If

            'Não Consta no XML Enviado

            'dApresFat - Data de apresentação da fatura 
            'Formato AAAA-MM-DD Não obrigatória, conforme item 2.3.2 da
            'Seção 11.1 do Módulo 11 do PRODIST.

            'Data prevista próxima leitura
            'Formato AAAA-MM-DD
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.DATAPROXLEIT)) Then
                nota.infNF3e.gFat.dProxLeitura = objTempFaturaNF3EA.DATAPROXLEIT.ToString("yyyy-MM") & "-30"
            Else
                nota.infNF3e.gFat.dProxLeitura = "0"
            End If

            'Número da Fatura 
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.NUMNF)) Then
                nota.infNF3e.gFat.nFat = Convert.ToString(objTempFaturaNF3EA.NUMNF)
            Else
                nota.infNF3e.gFat.nFat = "0"
            End If

            'Linha digitável do código de barras 
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EA.CODBARRA)) Then
                nota.infNF3e.gFat.codBarras = Convert.ToString(objTempFaturaNF3EA.CODBARRA)
            Else
                nota.infNF3e.gFat.codBarras = "0"
            End If

            'Não sei de onde pegar - Deixei vazio
            'Código de autorização débito em conta 
            If Not String.IsNullOrEmpty(Convert.ToString("0")) Then
                nota.infNF3e.gFat.ItemsElementName = ItemsChoiceType.codDebAuto
                nota.infNF3e.gFat.Item = "0"
            Else
                nota.infNF3e.gFat.ItemsElementName = "0"
                nota.infNF3e.gFat.Item = "0"
            End If

            'Não Consta no XML Enviado

            'codBanco - Número do banco para débito em conta 

            'codAgencia - Número da agência bancária para débito em conta

#End Region

#Region "enderCorresp - Endereço de entrega da fatura. - Informar se diferente do endereço do destinatário - Não Consta no XML Enviado"

            'xLgr - Logradouro 

            'nro - Número 

            'xCpl - Complemento 

            'xBairro - Bairro 

            'cMun - Código do município (utilizar a tabela do IBGE)

            'xMun - Nome do município 

            'CEP - CEP 
            'Informar zeros não significativos

            'UF - Sigla da UF 

            'fone - Telefone 

            'email - Endereço de E-mail

#End Region

#Region "gPIX - Grupo de informações do PIX - Não Consta no XML Enviado"

            'urlQRCodePIX - URL do QRCode do PIX que será apresentado na fatura

#End Region

#Region "gANEEL - Grupo de informações da Agência Nacional de Energia Eletrica"

#Region "gHistFat -Histórico de Faturamento"

            nota.infNF3e.gANEEL(0) = New TANEELGHistFat()

            'Nome da grandeza faturada para exibição 
            'Exemplo: Consumo Meses Anteriores
            nota.infNF3e.gANEEL(0).xGrandFat = "Consumo Meses Anteriores"

#Region "gGrandFat - Grandezas faturadas"

            strSql = "Select * From CONSUMOS "
            strSql += "Where zona = '" & objTempFaturaNF3EA.ZONA & "' "
            strSql += "And livro = '" & objTempFaturaNF3EA.LIVRO & "' "
            strSql += "And conta = '" & objTempFaturaNF3EA.CONTA & "' "
            objAtualizaBancoDados.QUERY_NAME = strSql
            dtCons = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)
            If dtCons.Rows.Count > 0 Then
                regExiste = True
            Else
                regExiste = False
            End If

            nota.infNF3e.gANEEL(0).gGrandFat = New TANEELGHistFatGGrandFat(12) {}

            If regExiste = False Then
                For j As Integer = 0 To 12
                    nota.infNF3e.gANEEL(0).gGrandFat(j) = New TANEELGHistFatGGrandFat()
                    nota.infNF3e.gANEEL(0).gGrandFat(j).CompetFat = "190001"
                    nota.infNF3e.gANEEL(0).gGrandFat(j).vFat = "0.00"
                    nota.infNF3e.gANEEL(0).gGrandFat(j).uMed = TUMed.Item2
                    nota.infNF3e.gANEEL(0).gGrandFat(j).qtdDias = "00"
                Next
            Else

                objTempHistFaturaNF3EA.NUMNF = Convert.ToString(objTempFaturaNF3EA.NUMNF)

                vlist = repositorioTempHistFaturaNF3EA.Select_1(objTempHistFaturaNF3EA)

                For Each objTempHistFaturaNF3EAFor As entidadeTempHistFaturaNF3EA In vlist

                    For i As Integer = 0 To 12

                        nota.infNF3e.gANEEL(0).gGrandFat(i) = New TANEELGHistFatGGrandFat()

                        If i = 0 Then

                            'Ano e mês referência do faturamento (AAAAMM)
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.MESANO13)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objTempHistFaturaNF3EAFor.MESANO13.Substring(3, 4) + objTempHistFaturaNF3EAFor.MESANO13.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "0"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR13)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR13) = "0", "0.00", Convert.ToString(objTempHistFaturaNF3EAFor.VALOR13.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Não sei de onde pegar - Deixei vazio
                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.DIAS13)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objTempHistFaturaNF3EAFor.DIAS13 <= 9, "0" + Convert.ToString(objTempHistFaturaNF3EAFor.DIAS13), Convert.ToString(objTempHistFaturaNF3EAFor.DIAS13))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "0"
                            End If

                        ElseIf i = 1 Then

                            'Ano e mês referência do faturamento (AAAAMM)
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.MESANO12)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objTempHistFaturaNF3EAFor.MESANO12.Substring(3, 4) + objTempHistFaturaNF3EAFor.MESANO12.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "0"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR12)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR12) = "0", "0.00", Convert.ToString(objTempHistFaturaNF3EAFor.VALOR12.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Não sei de onde pegar - Deixei vazio
                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.DIAS12)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objTempHistFaturaNF3EAFor.DIAS12 <= 9, "0" + Convert.ToString(objTempHistFaturaNF3EAFor.DIAS12), Convert.ToString(objTempHistFaturaNF3EAFor.DIAS12))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "0"
                            End If

                        ElseIf i = 2 Then

                            'Ano e mês referência do faturamento (AAAAMM)
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.MESANO11)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objTempHistFaturaNF3EAFor.MESANO11.Substring(3, 4) + objTempHistFaturaNF3EAFor.MESANO11.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "0"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR11)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR11) = "0", "0.00", Convert.ToString(objTempHistFaturaNF3EAFor.VALOR11.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Não sei de onde pegar - Deixei vazio
                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.DIAS11)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objTempHistFaturaNF3EAFor.DIAS11 <= 9, "0" + Convert.ToString(objTempHistFaturaNF3EAFor.DIAS11), Convert.ToString(objTempHistFaturaNF3EAFor.DIAS11))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "0"
                            End If

                        ElseIf i = 3 Then

                            'Ano e mês referência do faturamento (AAAAMM)
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.MESANO10)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objTempHistFaturaNF3EAFor.MESANO10.Substring(3, 4) + objTempHistFaturaNF3EAFor.MESANO10.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "0"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR10)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR10) = "0", "0.00", Convert.ToString(objTempHistFaturaNF3EAFor.VALOR10.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Não sei de onde pegar - Deixei vazio
                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.DIAS10)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objTempHistFaturaNF3EAFor.DIAS10 <= 9, "0" + Convert.ToString(objTempHistFaturaNF3EAFor.DIAS10), Convert.ToString(objTempHistFaturaNF3EAFor.DIAS10))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "0"
                            End If

                        ElseIf i = 4 Then

                            'Ano e mês referência do faturamento (AAAAMM)
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.MESANO9)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objTempHistFaturaNF3EAFor.MESANO9.Substring(3, 4) + objTempHistFaturaNF3EAFor.MESANO9.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "0"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR9)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR9) = "0", "0.00", Convert.ToString(objTempHistFaturaNF3EAFor.VALOR9.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Não sei de onde pegar - Deixei vazio
                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.DIAS9)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objTempHistFaturaNF3EAFor.DIAS9 <= 9, "0" + Convert.ToString(objTempHistFaturaNF3EAFor.DIAS9), Convert.ToString(objTempHistFaturaNF3EAFor.DIAS9))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "0"
                            End If

                        ElseIf i = 5 Then

                            'Ano e mês referência do faturamento (AAAAMM)
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.MESANO8)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objTempHistFaturaNF3EAFor.MESANO8.Substring(3, 4) + objTempHistFaturaNF3EAFor.MESANO8.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "0"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR8)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR8) = "0", "0.00", Convert.ToString(objTempHistFaturaNF3EAFor.VALOR8.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Não sei de onde pegar - Deixei vazio
                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.DIAS8)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objTempHistFaturaNF3EAFor.DIAS8 <= 9, "0" + Convert.ToString(objTempHistFaturaNF3EAFor.DIAS8), Convert.ToString(objTempHistFaturaNF3EAFor.DIAS8))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "0"
                            End If

                        ElseIf i = 6 Then

                            'Ano e mês referência do faturamento (AAAAMM)
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.MESANO7)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objTempHistFaturaNF3EAFor.MESANO7.Substring(3, 4) + objTempHistFaturaNF3EAFor.MESANO7.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "0"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR7)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR7) = "0", "0.00", Convert.ToString(objTempHistFaturaNF3EAFor.VALOR7.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Não sei de onde pegar - Deixei vazio
                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.DIAS7)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objTempHistFaturaNF3EAFor.DIAS7 <= 9, "0" + Convert.ToString(objTempHistFaturaNF3EAFor.DIAS7), Convert.ToString(objTempHistFaturaNF3EAFor.DIAS7))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "0"
                            End If

                        ElseIf i = 7 Then

                            'Ano e mês referência do faturamento (AAAAMM)
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.MESANO6)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objTempHistFaturaNF3EAFor.MESANO6.Substring(3, 4) + objTempHistFaturaNF3EAFor.MESANO6.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "0"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR6)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR6) = "0", "0.00", Convert.ToString(objTempHistFaturaNF3EAFor.VALOR6.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Não sei de onde pegar - Deixei vazio
                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.DIAS6)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objTempHistFaturaNF3EAFor.DIAS6 <= 9, "0" + Convert.ToString(objTempHistFaturaNF3EAFor.DIAS6), Convert.ToString(objTempHistFaturaNF3EAFor.DIAS6))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "0"
                            End If

                        ElseIf i = 8 Then

                            'Ano e mês referência do faturamento (AAAAMM)
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.MESANO5)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objTempHistFaturaNF3EAFor.MESANO5.Substring(3, 4) + objTempHistFaturaNF3EAFor.MESANO5.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "0"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR5)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR5) = "0", "0.00", Convert.ToString(objTempHistFaturaNF3EAFor.VALOR5.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Não sei de onde pegar - Deixei vazio
                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.DIAS5)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objTempHistFaturaNF3EAFor.DIAS5 <= 9, "0" + Convert.ToString(objTempHistFaturaNF3EAFor.DIAS5), Convert.ToString(objTempHistFaturaNF3EAFor.DIAS5))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "0"
                            End If

                        ElseIf i = 9 Then

                            'Ano e mês referência do faturamento (AAAAMM)
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.MESANO4)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objTempHistFaturaNF3EAFor.MESANO4.Substring(3, 4) + objTempHistFaturaNF3EAFor.MESANO4.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "0"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR4)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR4) = "0", "0.00", Convert.ToString(objTempHistFaturaNF3EAFor.VALOR4.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                    '                            Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Não sei de onde pegar - Deixei vazio
                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.DIAS4)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objTempHistFaturaNF3EAFor.DIAS4 <= 9, "0" + Convert.ToString(objTempHistFaturaNF3EAFor.DIAS4), Convert.ToString(objTempHistFaturaNF3EAFor.DIAS4))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "0"
                            End If

                        ElseIf i = 10 Then

                            'Ano e mês referência do faturamento (AAAAMM)
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.MESANO3)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objTempHistFaturaNF3EAFor.MESANO3.Substring(3, 4) + objTempHistFaturaNF3EAFor.MESANO3.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "0"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR3)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR3) = "0", "0.00", Convert.ToString(objTempHistFaturaNF3EAFor.VALOR3.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Não sei de onde pegar - Deixei vazio
                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.DIAS3)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objTempHistFaturaNF3EAFor.DIAS3 <= 9, "0" + Convert.ToString(objTempHistFaturaNF3EAFor.DIAS3), Convert.ToString(objTempHistFaturaNF3EAFor.DIAS3))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "0"
                            End If

                        ElseIf i = 11 Then

                            'Ano e mês referência do faturamento (AAAAMM)
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.MESANO2)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objTempHistFaturaNF3EAFor.MESANO2.Substring(3, 4) + objTempHistFaturaNF3EAFor.MESANO2.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "0"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR2)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR2) = "0", "0.00", Convert.ToString(objTempHistFaturaNF3EAFor.VALOR2.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Não sei de onde pegar - Deixei vazio
                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.DIAS2)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objTempHistFaturaNF3EAFor.DIAS2 <= 9, "0" + Convert.ToString(objTempHistFaturaNF3EAFor.DIAS2), Convert.ToString(objTempHistFaturaNF3EAFor.DIAS2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "0"
                            End If

                        ElseIf i = 12 Then

                            'Ano e mês referência do faturamento (AAAAMM)
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.MESANO1)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objTempHistFaturaNF3EAFor.MESANO1.Substring(3, 4) + objTempHistFaturaNF3EAFor.MESANO1.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "0"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR1)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objTempHistFaturaNF3EAFor.VALOR1) = "0", "0.00", Convert.ToString(objTempHistFaturaNF3EAFor.VALOR1.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Não sei de onde pegar - Deixei vazio
                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempHistFaturaNF3EAFor.DIAS1)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objTempHistFaturaNF3EAFor.DIAS1 <= 9, "0" + Convert.ToString(objTempHistFaturaNF3EAFor.DIAS1), Convert.ToString(objTempHistFaturaNF3EAFor.DIAS1))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "0"
                            End If

                        End If

                    Next

                Next

            End If

#End Region
#End Region

#End Region

#Region "autXML - Autorizados para download do XML do - Informar CNPJ ou CPF. Preencher os zeros não significativos. - Não Consta no XML Enviado"

            'CNPJ - CNPJ do autorizado
            'Informar zeros não significativos

            'CPF - CPF do autorizado 
            'Informar zeros não significativos

#End Region

#Region "infAdic - Informações Adicionais"

            'Não Consta no XML Enviado
            'infAdFisco - 'Informações adicionais de interesse do Fisco
            'Norma referenciada, informações complementares, etc

            'Informações complementares de interesse do Contribuinte
            If Not String.IsNullOrEmpty(Convert.ToString(String.Empty)) Then
                nota.infNF3e.infAdic.infCpl = {String.Empty}
            End If

#End Region

#Region "gRespTec - Informações do Responsável Técnico pela emissão do DF-e"

            'CNPJ da pessoa jurídica responsável técnica pelo sistema utilizado na emissão
            'Do documento fiscal eletrônico
            'Informar o CNPJ da pessoa jurídica desenvolvedora do sistema utilizado na emissão
            'do documento fiscal eletrônico.
            nota.infNF3e.gRespTec.CNPJ = "07001069000189"

            'Nome da pessoa a ser contatada 
            'Informar o nome da pessoa a ser contatada na empresa desenvolvedora
            'Do sistema utilizado na emissão do documento fiscal eletrônico.
            'No caso de pessoa física, informar o respectivo nome.
            nota.infNF3e.gRespTec.xContato = "DD System"

            'E-mail da pessoa jurídica a ser contatada 
            nota.infNF3e.gRespTec.email = "helpdesk@ddsystem.com.br"

            'Telefone da pessoa jurídica a ser contatada
            'Preencher com o Código DDD + número Do telefone.
            nota.infNF3e.gRespTec.fone = "1136943398"

            'Não Consta no XML Enviado

            'idCSRT - Identificador do código de segurança do responsável técnico
            'Identificador do CSRT utilizado para geração do hash

            'hashCSRT - Hash do token do código de segurança do responsável técnico
            'O hashCSRT é o resultado das funções SHA-1 e base64 do token CSRT fornecido pelo fisco + chave de acesso
            'Do DF-e. (Implementação em futura NT) Observação: 28 caracteres são representados no schema como 20 bytes do tipo base64Binary

#End Region

            Dim ser As New XmlSerializer(GetType(nf3e_v1_00))

            Dim arquivo As New FileStream(caminho + "\" + nomeArquivoXML, FileMode.CreateNew)

            ser.Serialize(arquivo, nota)

            arquivo.Close()

            arquivo.Dispose()

            'Parametros - Descrição

            'conteudo - Conteúdo de emissão do documento.

            'tpConteudo - Tipo de conteúdo que está sendo enviado. Valores possíveis: json, xml, txt

            'CNPJ - CNPJ do emitente do documento. (Sem o - e os pontos)

            'tpDown - Tipo de arquivos a serem baixados.Valores possíveis
            'X -Xml
            'J -JSON
            'P -PDF
            'XP -Xml e PDF
            'JP -JSON e PDF

            'tpAmb - Ambiente onde foi autorizado o documento.Valores possíveis
            '1 - produção
            '2 - homologação

            'exibeNaTela - Se For baixado a DFe, exibir o PDF na tela após a autorização. Valores possíveis: 
            'True - será exibido
            'False - não será exibido(Default)

            'a3 - Se será feito a emissao por utilizando certificado digital a3. Valores possíveis: 
            'True - será exibido
            'False - não será exibido(Default)

            Dim retorno As String = NSSuite.emitirNF3eSincrono(nota.ToXMLString(), "xml", Convert.ToString(gstrEmpresa_CNPJ), "XP", Convert.ToString(GetConfig("nf3e.tipo.ambiente")), caminho)

            istrMensagemRetornoNF3e = retorno

            If istrMensagemRetornoNF3e Like "*Autorizado o uso da NF3e*" Then
                objTempFaturaNF3EA.ENVIADONF3E = 1
            Else
                objTempFaturaNF3EA.ENVIADONF3E = 0
            End If

            objTempFaturaNF3EA.JSONDADOSSEFAZ = istrMensagemRetornoNF3e

            lUpdate_1(objTempFaturaNF3EA)

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

    End Sub

    Private Sub ExportarXMLNF3eGrupoB(ByRef caminho As String, ByRef nomeArquivoXML As String, ByRef objTempFaturaNF3EB As entidadeTempFaturaNF3EB)

        Dim composicaoNotaInfNF3eId As String

        Dim objNf As New entidadeNf
        Dim repositorioNf As New repositorioNf

        Dim objNfTransicao As New entidadeNfTransicao
        Dim repositorioNfTransicao As New repositorioNfTransicao

        Dim objUCFaturamento As New entidadeUCFaturamento
        Dim repositorioUCFaturamento As New repositorioUCFaturamento

        Dim objConsum As New entidadeConsum
        Dim repositorioConsum As New repositorioConsum

        Dim objEmpresa As New entidadeEmpresa
        Dim repositorioEmpresa As New repositorioEmpresa

        Dim objUfCepNSS As New entidadeUfCepNSS
        Dim repositorioUfCepNSS As New repositorioUfCepNSS

        Dim objCidadeCepNSS As New entidadeCidadeCepNSS
        Dim repositorioCidadeCepNSS As New repositorioCidadeCepNSS

        Dim objCidadeCepNSS_Destinatario As New entidadeCidadeCepNSS
        Dim repositorioCidadeCepNSS_Destinatario As New repositorioCidadeCepNSS

        Dim objTempItemFaturaB As New entidadeTempItemFaturaB
        Dim repositorioTempItemFaturaB As New repositorioTempItemFaturaB

        Dim objCodigo As New entidadeCodigo
        Dim repositorioCodigo As New repositorioCodigo

        Dim objConsumos As New entidadeConsumos
        Dim repositorioConsumos As New repositorioConsumos

        Dim objExecAtualizaBancoDados As New entidadeAtualizaBancoDados
        Dim repositorioExecAtualizaBancoDados As New repositorioAtualizaBancoDados

        Dim nota As New nf3e_v1_00()

        Dim dt As DataTable
        Dim dt_1 As DataTable
        Dim dt_notas As DataTable
        Dim dt_item2 As DataTable
        Dim dt_item3 As DataTable
        Dim dt_item_notas As DataTable
        Dim dt_item_cod As DataTable
        Dim dt_coluna As DataTable

        Dim ValorTotalItem As Double

        Dim vlist

        Dim cont As Double = 0

        Dim strSql As String
        Dim objAtualizaBancoDados As New entidadeAtualizaBancoDados
        Dim repositorioAtualizaBancoDados As New repositorioAtualizaBancoDados
        Dim dtCons As DataTable
        Dim regExiste As Boolean = False

        Try

#Region "Geração de Dados importantes para emissão do xml"


            'Geração de Dados importantes para emissão do xml

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

            If istrTabela.ToUpper() = "NF" Then

                objNf.NUMNF = objTempFaturaNF3EB.NUMNF

                vlist = repositorioNf.Select_22(objNf)

                If vlist.Count = 1 Then

                    For Each objNfFor As entidadeNf In vlist
                        objNf = objNfFor
                    Next

                End If

            ElseIf istrTabela.ToUpper() = "NFTRANSICAO" Then

                objNfTransicao.NUMNF = objTempFaturaNF3EB.NUMNF

                vlist = repositorioNfTransicao.Select_11(objNfTransicao)

                If vlist.Count = 1 Then

                    For Each objNfTransicaoFor As entidadeNfTransicao In vlist
                        objNfTransicao = objNfTransicaoFor
                    Next

                End If

            End If

            objUCFaturamento.ZONA = objTempFaturaNF3EB.ZONA
            objUCFaturamento.LIVRO = objTempFaturaNF3EB.LIVRO
            objUCFaturamento.CONTA = objTempFaturaNF3EB.CONTA

            vlist = repositorioUCFaturamento.Select_4(objUCFaturamento)

            If vlist.Count = 1 Then

                For Each objUCFaturamentoFor As entidadeUCFaturamento In vlist
                    objUCFaturamento = objUCFaturamentoFor
                Next

            End If


            objConsum.CONSREG = objUCFaturamento.CONS_ID

            vlist = repositorioConsum.Select(objConsum)

            If vlist.Count = 1 Then

                For Each objConsumFor As entidadeConsum In vlist
                    objConsum = objConsumFor
                Next

            End If

            objEmpresa.CNPJ = gstrEmpresa_CNPJ

            vlist = repositorioEmpresa.Select_1(objEmpresa)

            If vlist.Count = 1 Then

                For Each objEmpresaFor As entidadeEmpresa In vlist
                    objEmpresa = objEmpresaFor
                Next

            End If


            objUfCepNSS.SIGLA = objEmpresa.UF

            vlist = repositorioUfCepNSS.Select(objUfCepNSS)

            If vlist.Count = 1 Then

                For Each objUfCepNSSFor As entidadeUfCepNSS In vlist
                    objUfCepNSS = objUfCepNSSFor
                Next

            End If

            objCidadeCepNSS.DESCRICAO = objEmpresa.MUNICIPIO

            vlist = repositorioCidadeCepNSS.Select(objCidadeCepNSS)

            If vlist.Count = 1 Then

                For Each objCidadeCepNSSFor As entidadeCidadeCepNSS In vlist
                    objCidadeCepNSS = objCidadeCepNSSFor
                Next

            End If

            objCidadeCepNSS_Destinatario.DESCRICAO = objTempFaturaNF3EB.CIDADE

            vlist = repositorioCidadeCepNSS.Select(objCidadeCepNSS_Destinatario)

            If vlist.Count = 1 Then

                For Each objCidadeCepNSS_DestinatarioFor As entidadeCidadeCepNSS In vlist
                    objCidadeCepNSS_Destinatario = objCidadeCepNSS_DestinatarioFor
                Next

            End If



#End Region

            'infNF3e
            nota.infNF3e = New TNF3eInfNF3e()
            nota.infNF3e.ide = New TNF3eInfNF3eIde()
            nota.infNF3e.emit = New TNF3eInfNF3eEmit()
            nota.infNF3e.emit.enderEmit = New TEndeEmi()
            nota.infNF3e.dest = New TNF3eInfNF3eDest()
            nota.infNF3e.dest.enderDest = New TEndeEmi()
            nota.infNF3e.acessante = New TNF3eInfNF3eAcessante()
            nota.infNF3e.gGrContrat = New TNF3eInfNF3eGGrContrat(0) {}
            nota.infNF3e.gMed = New TNF3eInfNF3eGMed(0) {}
            nota.infNF3e.NFdet = New TNF3eInfNF3eNFdet(0) {}
            nota.infNF3e.total = New TNF3eInfNF3eTotal()
            nota.infNF3e.total.ICMSTot = New TNF3eInfNF3eTotalICMSTot()
            nota.infNF3e.total.vRetTribTot = New TNF3eInfNF3eTotalVRetTribTot()
            nota.infNF3e.gFat = New TNF3eInfNF3eGFat()
            nota.infNF3e.gANEEL = New TANEELGHistFat(0) {}
            nota.infNF3e.infAdic = New TNF3eInfNF3eInfAdic()
            nota.infNF3e.gRespTec = New TRespTec()

#Region "infNF3e  - Informações da NF3e"


            'Versão do leiaute
            nota.infNF3e.versao = "1.00"

            'Identificador da tag a ser assinada
            'Informar a chave de acesso da NF3e e precedida do literal "NF3e"
            'NF3e + cUF + dhEmi+ CNPJ + mod + serie + nNF + tpEmis + cNF

            'composicaoNotaInfNF3eId = objUfCepNSS.IBGE.ToString() + Date.Now.ToString("yyMM") + Convert.ToString(gstrEmpresa_CNPJ) + "66" + "0" + Convert.ToString(objTempFaturaNF3EB.NUMNF) + "2" + Convert.ToString(objTempFaturaNF3EB.NUMNF)
            'nota.infNF3e.Id = "NF3e" + composicaoNotaInfNF3eId

#End Region

#Region "ide - Identificação da NF3e"


            'Código da UF do emitente da NF3e 
            'Código da UF do emitente do Documento Fiscal.Utilizar a
            'Tabela do IBGE de código de unidades da federação.
            If Not String.IsNullOrEmpty(Convert.ToString(objUfCepNSS.IBGE)) Then

                If objUfCepNSS.IBGE = 11 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item11
                ElseIf objUfCepNSS.IBGE = 12 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item12
                ElseIf objUfCepNSS.IBGE = 13 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item13
                ElseIf objUfCepNSS.IBGE = 14 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item14
                ElseIf objUfCepNSS.IBGE = 15 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item15
                ElseIf objUfCepNSS.IBGE = 16 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item16
                ElseIf objUfCepNSS.IBGE = 17 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item17
                ElseIf objUfCepNSS.IBGE = 21 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item21
                ElseIf objUfCepNSS.IBGE = 22 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item22
                ElseIf objUfCepNSS.IBGE = 23 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item23
                ElseIf objUfCepNSS.IBGE = 24 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item24
                ElseIf objUfCepNSS.IBGE = 25 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item25
                ElseIf objUfCepNSS.IBGE = 26 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item26
                ElseIf objUfCepNSS.IBGE = 27 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item27
                ElseIf objUfCepNSS.IBGE = 28 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item28
                ElseIf objUfCepNSS.IBGE = 29 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item29
                ElseIf objUfCepNSS.IBGE = 31 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item31
                ElseIf objUfCepNSS.IBGE = 32 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item32
                ElseIf objUfCepNSS.IBGE = 33 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item33
                ElseIf objUfCepNSS.IBGE = 35 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item35
                ElseIf objUfCepNSS.IBGE = 41 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item41
                ElseIf objUfCepNSS.IBGE = 42 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item42
                ElseIf objUfCepNSS.IBGE = 43 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item43
                ElseIf objUfCepNSS.IBGE = 50 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item50
                ElseIf objUfCepNSS.IBGE = 51 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item51
                ElseIf objUfCepNSS.IBGE = 52 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item52
                ElseIf objUfCepNSS.IBGE = 53 Then
                    nota.infNF3e.ide.cUF = TCodUfIBGE.Item53
                Else
                    objUfCepNSS.IBGE = 0
                End If
            End If

            'Tipo do Ambiente 
            '1 - Produção;
            '2 - Homologação
            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.tipo.ambiente"))) Then
                If GetConfig("nf3e.tipo.ambiente") = "1" Then
                    nota.infNF3e.ide.tpAmb = TAmb.Item1
                ElseIf GetConfig("nf3e.tipo.ambiente") = "2" Then
                    nota.infNF3e.ide.tpAmb = TAmb.Item2
                Else
                    nota.infNF3e.ide.tpAmb = "0"
                End If
            End If

            'Modelo da NF3e 
            'Utilizar o código 66 para identificação da NF3e
            nota.infNF3e.ide.mod = TModNF3e.Item66
            If nota.infNF3e.ide.mod = 0 Then
                nota.infNF3e.ide.mod = "0"
            End If

            'Série Do documento fiscal
            'Informar a série do documento fiscal (informar zero para série única).
            nota.infNF3e.ide.serie = "0"

            'Número do documento fiscal
            'Número que identifica o documento fiscal 1 a 999999999.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.NUMNF)) Then
                nota.infNF3e.ide.nNF = Convert.ToString(objTempFaturaNF3EB.NUMNF).Trim()
            Else
                nota.infNF3e.ide.nNF = "0"
            End If

            'Código numérico que compõe a Chave de Acesso.
            'Código aleatório gerado pelo emitente, com o objetivo de evitar acessos indevidos ao documento.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.NUMNF)) Then
                nota.infNF3e.ide.cNF = Convert.ToString(objTempFaturaNF3EB.NUMNF).Trim()
            Else
                nota.infNF3e.ide.cNF = "0"
            End If

            'Digito verificador da chave de acesso
            'Informar o dígito de controle da chave de acesso documento fiscal, que deve ser calculado com a aplicação do algoritmo módulo 11 (base 2, 9) da chave de acesso.
            nota.infNF3e.ide.cDV = "0"

            'Data e hora de emissão do documento fiscal
            'Formato AAAA-MM-DDTHH:MM:DD TZD
            'nota.infNF3e.ide.dhEmi = DateTime.Now.ToString("s") + "-03:00"
            'nota.infNF3e.ide.dhEmi = objTempFaturaNF3EB.DATAEMISSAO.ToString("yyyy-MM-dd") & "T" & Format(DateTime.Now, "hh:mm:ss") + "-03:00"

            nota.infNF3e.ide.dhEmi = Format(DateTime.Now.AddDays(-1), "yyyy-MM-dd") & "T" & Format(DateTime.Now, "hh:mm:ss") + "-03:00"
            'Forma de emissão do Documento Fiscal
            '1 - Normal;
            '2 - Contingência Off Line
            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.forma.emissao.documento.fiscal"))) Then
                If GetConfig("nf3e.forma.emissao.documento.fiscal") = "1" Then
                    nota.infNF3e.ide.tpEmis = TtpEmis.Item1
                ElseIf GetConfig("nf3e.forma.emissao.documento.fiscal") = "2" Then
                    nota.infNF3e.ide.tpEmis = TtpEmis.Item2
                Else
                    nota.infNF3e.ide.tpEmis = "0"
                End If
            Else
                nota.infNF3e.ide.tpEmis = "0"
            End If

            'Identificação do número do Site do Autorizador de recepção da NF3e
            'Se o autorizador da NF3e possuir apenas um site deverá ser informado com Zero(0),
            'em caso de autorizador trabalhar com múltiplos sites indicar o número do site para
            'qual foi endereçada a NF3e(1 a 9). Observação: O ambiente autorizador que trabalhar
            'com mais de um Site deverá divulgar para cada endereço de Site qual número correspondente
            'de nSiteAutoriz o contribuinte pode usar
            nota.infNF3e.ide.nSiteAutoriz = "0"

            'Código do município de ocorrência do fato gerador
            If Not String.IsNullOrEmpty(Convert.ToString(objCidadeCepNSS.IBGE)) Then
                nota.infNF3e.ide.cMunFG = objCidadeCepNSS.IBGE.Trim()
            Else
                nota.infNF3e.ide.cMunFG = "0"
            End If

            'Finalidade de emissão da NF3e
            '1 - NF3e normal;
            '2 - NF3e substituição;
            '3 - NF3e normal com ajuste;
            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.finalidade.emissao"))) Then

                If GetConfig("nf3e.finalidade.emissao") = "1" Then
                    nota.infNF3e.ide.finNF3e = TFinNF3e.Item1
                ElseIf GetConfig("nf3e.finalidade.emissao") = "2" Then
                    nota.infNF3e.ide.finNF3e = TFinNF3e.Item2
                ElseIf GetConfig("nf3e.finalidade.emissao") = "3" Then
                    nota.infNF3e.ide.finNF3e = TFinNF3e.Item3
                Else
                    nota.infNF3e.ide.finNF3e = "0"
                End If
            Else
                nota.infNF3e.ide.finNF3e = "0"
            End If

            'Versão do processo de emissão
            'Informar a versão do aplicativo emissor de NF3e.
            nota.infNF3e.ide.verProc = "1"

            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.forma.emissao.documento.fiscal"))) Then
                If GetConfig("nf3e.forma.emissao.documento.fiscal") = "2" Then
                    'Data e Hora da entrada em contingência
                    'Informar a data e hora no formato AAAA-MM - DDTHH: MM : SS
                    'nota.infNF3e.ide.dhCont = DateTime.Now.ToString("s") + "-03:00"
                    nota.infNF3e.ide.dhCont = objTempFaturaNF3EB.DATALEIT.ToString("yyyy-MM-dd") & "T" & Format(DateTime.Now, "hh:mm:ss") + "-03:00"

                    'Justificativa da entrada em contingência
                    nota.infNF3e.ide.xJust = "Sistema Offline."
                End If
            End If

#End Region

#Region "emit - Identificação do Emitente do documento fiscal"

            'CNPJ do emitente
            'Informar zeros não significativos
            If Not String.IsNullOrEmpty(Convert.ToString(gstrEmpresa_CNPJ)) Then
                nota.infNF3e.emit.CNPJ = Convert.ToString(gstrEmpresa_CNPJ).Trim()
            End If

            'Inscrição Estadual do emitente
            If Not String.IsNullOrEmpty(Convert.ToString(objEmpresa.INSC)) Then
                nota.infNF3e.emit.IE = objEmpresa.INSC.Replace(".", "").Replace("-", "").Trim()
            End If

            'Razão social ou Nome do emitente
            If Not String.IsNullOrEmpty(Convert.ToString(gstrEmpresa_Nome)) Then
                nota.infNF3e.emit.xNome = gstrEmpresa_Nome.Trim()
            End If

            'Nome fantasia do emitente
            If Not String.IsNullOrEmpty(Convert.ToString(gstrEmpresa_Nome)) Then
                nota.infNF3e.emit.xFant = gstrEmpresa_Nome.Trim()
            End If

#Region "enderEmit - Endereço do emitente"

            'Logradouro
            If Not String.IsNullOrEmpty(Convert.ToString(gstrEmpresa_Endereco)) Then
                nota.infNF3e.emit.enderEmit.xLgr = Replace(gstrEmpresa_Endereco.Trim(), "'", "")
            Else
                nota.infNF3e.emit.enderEmit.xLgr = "NÂO TEM"
            End If

            'Número
            If Not String.IsNullOrEmpty(Convert.ToString(objEmpresa.NUMERO)) Then
                nota.infNF3e.emit.enderEmit.nro = Convert.ToString(objEmpresa.NUMERO).Trim()
            Else
                nota.infNF3e.emit.enderEmit.nro = "0"
            End If

            'Complemento
            'If Not String.IsNullOrEmpty(Convert.ToString(String.Empty)) Then
            nota.infNF3e.emit.enderEmit.xCpl = "A"
            'End If

            'Bairro
            If Not String.IsNullOrEmpty(Convert.ToString(objEmpresa.BAIRRO)) Then
                nota.infNF3e.emit.enderEmit.xBairro = objEmpresa.BAIRRO.Trim()
            Else
                nota.infNF3e.emit.enderEmit.xBairro = "NAO TEM"
            End If
            If Len(nota.infNF3e.emit.enderEmit.xBairro.Trim()) = 1 Then
                nota.infNF3e.emit.enderEmit.xBairro = "NAO TEM"
            End If

            'Código do município (utilizar a tabela do IBGE)
            If Not String.IsNullOrEmpty(Convert.ToString(objCidadeCepNSS.IBGE)) Then
                nota.infNF3e.emit.enderEmit.cMun = objCidadeCepNSS.IBGE.Trim()
            Else
                nota.infNF3e.emit.enderEmit.cMun = "20021000"
            End If

            'Nome do município
            If Not String.IsNullOrEmpty(Convert.ToString(gstrEmpresa_Cidade)) Then
                nota.infNF3e.emit.enderEmit.xMun = gstrEmpresa_Cidade.Trim()
            Else
                nota.infNF3e.emit.enderEmit.xMun = "."
            End If

            'CEP
            'Informar zeros não significativos
            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("empresa.cep"))) Then
                nota.infNF3e.emit.enderEmit.CEP = Convert.ToString(GetConfig("empresa.cep")).Replace("-", "").Trim()
            Else
                nota.infNF3e.emit.enderEmit.CEP = "20021000"
            End If

            'Sigla da UF
            If Not String.IsNullOrEmpty(Convert.ToString(gstrEmpresa_UF)) Then

                If Convert.ToString(gstrEmpresa_UF) = "AC" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.AC
                ElseIf Convert.ToString(gstrEmpresa_UF) = "AL" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.AL
                ElseIf Convert.ToString(gstrEmpresa_UF) = "AM" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.AM
                ElseIf Convert.ToString(gstrEmpresa_UF) = "AP" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.AP
                ElseIf Convert.ToString(gstrEmpresa_UF) = "BA" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.BA
                ElseIf Convert.ToString(gstrEmpresa_UF) = "CE" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.CE
                ElseIf Convert.ToString(gstrEmpresa_UF) = "DF" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.DF
                ElseIf Convert.ToString(gstrEmpresa_UF) = "ES" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.ES
                ElseIf Convert.ToString(gstrEmpresa_UF) = "GO" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.GO
                ElseIf Convert.ToString(gstrEmpresa_UF) = "MA" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.MA
                ElseIf Convert.ToString(gstrEmpresa_UF) = "MG" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.MG
                ElseIf Convert.ToString(gstrEmpresa_UF) = "MS" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.MS
                ElseIf Convert.ToString(gstrEmpresa_UF) = "MT" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.MT
                ElseIf Convert.ToString(gstrEmpresa_UF) = "PA" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.PA
                ElseIf Convert.ToString(gstrEmpresa_UF) = "PB" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.PB
                ElseIf Convert.ToString(gstrEmpresa_UF) = "PE" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.PE
                ElseIf Convert.ToString(gstrEmpresa_UF) = "PI" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.PI
                ElseIf Convert.ToString(gstrEmpresa_UF) = "PR" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.PR
                ElseIf Convert.ToString(gstrEmpresa_UF) = "RJ" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.RJ
                ElseIf Convert.ToString(gstrEmpresa_UF) = "RN" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.RN
                ElseIf Convert.ToString(gstrEmpresa_UF) = "RO" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.RO
                ElseIf Convert.ToString(gstrEmpresa_UF) = "RR" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.RR
                ElseIf Convert.ToString(gstrEmpresa_UF) = "RS" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.RS
                ElseIf Convert.ToString(gstrEmpresa_UF) = "SC" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.SC
                ElseIf Convert.ToString(gstrEmpresa_UF) = "SE" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.SE
                ElseIf Convert.ToString(gstrEmpresa_UF) = "SP" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.SP
                ElseIf Convert.ToString(gstrEmpresa_UF) = "TO" Then
                    nota.infNF3e.emit.enderEmit.UF = TUf_sem_EX.TO
                Else
                    nota.infNF3e.emit.enderEmit.UF = "."
                End If
            End If

            'Telefone
            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("empresa.fone"))) Then
                nota.infNF3e.emit.enderEmit.fone = Convert.ToString(GetConfig("empresa.fone")).Replace("(", "").Replace(")", "").Replace("-", "").Replace(" ", "").Trim()
            Else
                nota.infNF3e.emit.enderEmit.fone = "00000000"
            End If

            'Endereço de E-mail
            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("empresa.email"))) Then
                nota.infNF3e.emit.enderEmit.email = Replace(Convert.ToString(GetConfig("empresa.email")).Trim(), "'", "")
            Else
                nota.infNF3e.emit.enderEmit.email = "."
            End If

#End Region

#End Region

#Region "dest - Identificação do destinatário / acessante"

            'Razão social ou Nome do destinatário / acessante
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.NOMECONS)) Then
                nota.infNF3e.dest.xNome = Replace(objTempFaturaNF3EB.NOMECONS.Trim(), "'", "")
            End If

            'If nota.infNF3e.dest.xNome.ToString.Trim = "JOSEF MARIA BAVO WOLLENS" Then
            '    MsgBox("1")
            'End If

            If Len(objTempFaturaNF3EB.CPF_CNPJ) > 11 Then

                'Número do CNPJ
                'Em caso de empresa não estabelecida no Brasil, será informado o CNPJ com zeros.
                'Informar os zeros não significativos.
                If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.CPF_CNPJ)) Then
                    nota.infNF3e.dest.ItemElementName = ItemChoiceType.CNPJ
                    nota.infNF3e.dest.Item = Convert.ToString(objTempFaturaNF3EB.CPF_CNPJ).Trim().PadLeft(14, "0")
                End If

            Else

                'Número do CPF
                'Informar os zeros não significativos.
                If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.CPF_CNPJ)) Then
                    nota.infNF3e.dest.ItemElementName = ItemChoiceType.CPF
                    nota.infNF3e.dest.Item = Convert.ToString(objTempFaturaNF3EB.CPF_CNPJ).Trim().PadLeft(11, "0")
                End If

                'Identificação do destinatário outros
                'Identificação do destinatário não obrigado a inscrição do CPF tais como
                'estrangeiro, indígena(por exemplo nro Do RANI) e quilombola; ou destinatário
                'que a distribuidora não possui a informação(nestes casos orienta-se informar "00000").
                'If Not String.IsNullOrEmpty(Convert.ToString("00000")) Then
                'nota.infNF3e.dest.ItemElementName = ItemChoiceType.idOutros
                'nota.infNF3e.dest.Item = "00000"
                'End If

            End If

            If objTempFaturaNF3EB.CPF_CNPJ = "" Then
                nota.infNF3e.dest.ItemElementName = ItemChoiceType.CNPJ
                nota.infNF3e.dest.Item = "00000000000000"
            End If

            'Indicador da IE do Destinatário/Acessante
            '1 - Contribuinte ICMS (informar a IE do destinatário);
            '2 - Contribuinte isento de Inscrição no cadastro de Contribuintes do ICMS;
            '9 - Não Contribuinte, que pode ou não possuir Inscrição Estadual no Cadastro de Contribuintes do ICMS.
            'Nota:  No caso de Contribuinte Isento de Inscrição(indIEDest = 2)
            'informar a tag IE Do destinatário com o literal ISENTO.
            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.indicador.ie.destinatario.acessante"))) Then

                If Convert.ToString(GetConfig("nf3e.indicador.ie.destinatario.acessante")) = "1" Then
                    nota.infNF3e.dest.indIEDest = TIndIEDest.Item1
                ElseIf Convert.ToString(GetConfig("nf3e.indicador.ie.destinatario.acessante")) = "2" Then
                    nota.infNF3e.dest.indIEDest = TIndIEDest.Item2
                ElseIf Convert.ToString(GetConfig("nf3e.indicador.ie.destinatario.acessante")) = "9" Then
                    nota.infNF3e.dest.indIEDest = TIndIEDest.Item9
                End If

            End If

            'Inscrição Estadual do destinatário / acessante
            If Not String.IsNullOrEmpty(Convert.ToString(objConsum.INSC)) Then
                nota.infNF3e.dest.IE = objConsum.INSC.Trim()
                nota.infNF3e.dest.IE = Str_Retira(objConsum.INSC.Trim(), ".-/ ")
            Else
                nota.infNF3e.dest.indIEDest = TIndIEDest.Item2
                nota.infNF3e.dest.IE = "ISENTO"
            End If

            'Inscrição Municipal
            'If Not String.IsNullOrEmpty(Convert.ToString(objConsum.INSC)) Then
            'nota.infNF3e.dest.IM = objConsum.INSC.Trim()
            'End If

            'Número da Identificação Social
            If Not String.IsNullOrEmpty(Convert.ToString(objConsum.NIS_NUMER)) Then
                nota.infNF3e.dest.Item1ElementName = Item1ChoiceType.cNIS
                nota.infNF3e.dest.Item1 = objConsum.NIS_NUMER.Trim()
            End If

            'Número do benefício
            If Not String.IsNullOrEmpty(Convert.ToString(objConsum.CIP)) Then
                nota.infNF3e.dest.Item1ElementName = Item1ChoiceType.NB
                nota.infNF3e.dest.Item1 = objConsum.CIP.Trim()
            End If

            'Nome de destinatário adicional
            'Exemplo: Nome do Cônjuge,Companheira(o)
            If Not String.IsNullOrEmpty(Convert.ToString(objConsum.NOME_CONJUGE)) Then
                nota.infNF3e.dest.xNomeAdicional = Replace(objConsum.NOME_CONJUGE.Trim(), "'", "")
            End If

#Region "enderDest - Endereço do destinatário / acessante"

            'Logradouro
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.RUA.ToString.Trim)) And Convert.ToString(objTempFaturaNF3EB.RUA.ToString.Trim) <> "" Then
                nota.infNF3e.dest.enderDest.xLgr = Replace(objTempFaturaNF3EB.RUA.Trim(), "'", "")
            Else
                nota.infNF3e.dest.enderDest.xLgr = "NÂO TEM"
            End If
            If Len(nota.infNF3e.dest.enderDest.xLgr) = 1 Then
                nota.infNF3e.dest.enderDest.xLgr = nota.infNF3e.dest.enderDest.xLgr.Trim & nota.infNF3e.dest.enderDest.xLgr.Trim
            End If

            'Número
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.NUMERO.Trim)) Then
                nota.infNF3e.dest.enderDest.nro = Convert.ToString(objTempFaturaNF3EB.NUMERO).Trim()
            Else
                nota.infNF3e.dest.enderDest.nro = "0"
            End If

            'Complemento
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.COMPLEMENT)) Then
                nota.infNF3e.dest.enderDest.xCpl = Replace(Strings.Left((objTempFaturaNF3EB.COMPLEMENT.Trim() & "A").ToString.Trim, 60), "'", "")
            Else
                nota.infNF3e.dest.enderDest.xCpl = "A"
            End If

            'Bairro
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.BAIRRO)) Then
                nota.infNF3e.dest.enderDest.xBairro = objTempFaturaNF3EB.BAIRRO.Trim()
            End If
            If Len(nota.infNF3e.dest.enderDest.xBairro.Trim()) = 1 Then
                nota.infNF3e.dest.enderDest.xBairro = "NAO TEM"
            End If
            If nota.infNF3e.dest.enderDest.xBairro.Trim() = "" Then
                nota.infNF3e.dest.enderDest.xBairro = "NAO TEM"
            End If

            'Código do município (utilizar a tabela do IBGE)
            If Not String.IsNullOrEmpty(Convert.ToString(objCidadeCepNSS_Destinatario.IBGE)) Then
                nota.infNF3e.dest.enderDest.cMun = Convert.ToString(objCidadeCepNSS_Destinatario.IBGE).Trim()
            Else
                nota.infNF3e.dest.enderDest.cMun = "3304557"
            End If

            'Nome do município
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.CIDADE)) Then
                nota.infNF3e.dest.enderDest.xMun = objTempFaturaNF3EB.CIDADE.Trim()
            End If

            'CEP
            'Informar zeros não significativos
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.CEP)) Then
                nota.infNF3e.dest.enderDest.CEP = Convert.ToString(objTempFaturaNF3EB.CEP).Trim().PadRight(8, "0")
            Else
                nota.infNF3e.dest.enderDest.CEP = "20021000"
            End If
            If nota.infNF3e.dest.enderDest.CEP = "" Then
                nota.infNF3e.dest.enderDest.CEP = "20021000"
            End If

            'Sigla da UF
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.UF)) Then

                If objTempFaturaNF3EB.UF = "AC" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.AC
                ElseIf objTempFaturaNF3EB.UF = "AL" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.AL
                ElseIf objTempFaturaNF3EB.UF = "AM" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.AM
                ElseIf objTempFaturaNF3EB.UF = "AP" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.AP
                ElseIf objTempFaturaNF3EB.UF = "BA" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.BA
                ElseIf objTempFaturaNF3EB.UF = "CE" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.CE
                ElseIf objTempFaturaNF3EB.UF = "DF" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.DF
                ElseIf objTempFaturaNF3EB.UF = "ES" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.ES
                ElseIf objTempFaturaNF3EB.UF = "GO" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.GO
                ElseIf objTempFaturaNF3EB.UF = "MA" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.MA
                ElseIf objTempFaturaNF3EB.UF = "MG" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.MG
                ElseIf objTempFaturaNF3EB.UF = "MS" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.MS
                ElseIf objTempFaturaNF3EB.UF = "MT" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.MT
                ElseIf objTempFaturaNF3EB.UF = "PA" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.PA
                ElseIf objTempFaturaNF3EB.UF = "PB" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.PB
                ElseIf objTempFaturaNF3EB.UF = "PE" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.PE
                ElseIf objTempFaturaNF3EB.UF = "PI" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.PI
                ElseIf objTempFaturaNF3EB.UF = "PR" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.PR
                ElseIf objTempFaturaNF3EB.UF = "RJ" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.RJ
                ElseIf objTempFaturaNF3EB.UF = "RN" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.RN
                ElseIf objTempFaturaNF3EB.UF = "RO" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.RO
                ElseIf objTempFaturaNF3EB.UF = "RR" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.RR
                ElseIf objTempFaturaNF3EB.UF = "RS" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.RS
                ElseIf objTempFaturaNF3EB.UF = "SC" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.SC
                ElseIf objTempFaturaNF3EB.UF = "SE" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.SE
                ElseIf objTempFaturaNF3EB.UF = "SP" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.SP
                ElseIf objTempFaturaNF3EB.UF = "TO" Then
                    nota.infNF3e.dest.enderDest.UF = TUf_sem_EX.TO
                End If

            End If

            'Telefone
            'If Not String.IsNullOrEmpty(Convert.ToString(objConsum.TELEFONE)) Then
            'nota.infNF3e.dest.enderDest.fone = objConsum.TELEFONE.Trim()
            'End If

            'Endereço de E-mail
            If Not String.IsNullOrEmpty(Convert.ToString(objConsum.EMAIL)) Then
                nota.infNF3e.dest.enderDest.email = Replace(objConsum.EMAIL.Trim(), "'", "")
            End If

#End Region

#End Region

#Region "acessante - Dados do acessante"

            'Código único de Identificação da Unidade Consumidora ou
            'Ponto de Acesso adotado pela distribuidora.
            If Not String.IsNullOrEmpty(Convert.ToString(objUCFaturamento.UNID_ID)) Then
                nota.infNF3e.acessante.idAcesso = Format(objUCFaturamento.UNID_ID, "000000")
            Else
                nota.infNF3e.acessante.idAcesso = "0"
            End If

            'Código de Identificação do Cliente para
            'empresa emitente
            If Not String.IsNullOrEmpty(Convert.ToString(objUCFaturamento.CONS_ID)) Then
                nota.infNF3e.acessante.idCodCliente = Format(objUCFaturamento.CONS_ID, "000000")
            Else
                nota.infNF3e.acessante.idCodCliente = "0"
            End If

            'Tipo de Acessante
            '0 - Gerador;
            '1 – Cativo;
            '2 – Livre;
            '3 – Parcialmente Livre;
            '4 – Consumidor Especial;
            '5 – Parcialmente Especial;
            '6 – Comunhão;
            '7 – Suprimento;
            '8 – Distribuidora.
            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.tipo.acessante"))) Then

                If Convert.ToString(GetConfig("nf3e.tipo.acessante")) = "0" Then
                    nota.infNF3e.acessante.tpAcesso = TAcessante.Item0
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.acessante")) = "1" Then
                    nota.infNF3e.acessante.tpAcesso = TAcessante.Item1
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.acessante")) = "2" Then
                    nota.infNF3e.acessante.tpAcesso = TAcessante.Item2
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.acessante")) = "3" Then
                    nota.infNF3e.acessante.tpAcesso = TAcessante.Item3
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.acessante")) = "4" Then
                    nota.infNF3e.acessante.tpAcesso = TAcessante.Item4
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.acessante")) = "5" Then
                    nota.infNF3e.acessante.tpAcesso = TAcessante.Item5
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.acessante")) = "6" Then
                    nota.infNF3e.acessante.tpAcesso = TAcessante.Item6
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.acessante")) = "7" Then
                    nota.infNF3e.acessante.tpAcesso = TAcessante.Item7
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.acessante")) = "8" Then
                    nota.infNF3e.acessante.tpAcesso = TAcessante.Item8
                Else
                    nota.infNF3e.acessante.tpAcesso = TAcessante.Item
                End If

            End If

            'Nome da Unidade Consumidora
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.NOMECONS)) Then
                nota.infNF3e.acessante.xNomeUC = Replace(objTempFaturaNF3EB.NOMECONS.Trim(), "'", "")
            Else
                nota.infNF3e.acessante.xNomeUC = "."
            End If

            'Classe de Consumo da Unidade Consumidora
            '01 - Comercial;
            '02 - Consumo Próprio;
            '03 - Iluminação Pública;
            '04 - Industrial;
            '05 - Poder Público;
            '06 - Residencial;
            '07 - Rural;
            '08 - Serviço Público.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.DESCCLASSE)) Then

                nota.infNF3e.acessante.tpClasseSpecified = True

                If objTempFaturaNF3EB.DESCCLASSE.ToString.ToUpper Like "*COMERCIAL*" Then
                    nota.infNF3e.acessante.tpClasse = TClasse.Item01
                ElseIf objTempFaturaNF3EB.DESCCLASSE.ToString.ToUpper Like "*CONSUMO*" Then
                    nota.infNF3e.acessante.tpClasse = TClasse.Item02
                ElseIf objTempFaturaNF3EB.DESCCLASSE.ToString.ToUpper Like "*ILUMINAÇÃO*" Then
                    nota.infNF3e.acessante.tpClasse = TClasse.Item03
                ElseIf objTempFaturaNF3EB.DESCCLASSE.ToString.ToUpper Like "*INDUSTRIAL*" Then
                    nota.infNF3e.acessante.tpClasse = TClasse.Item04
                ElseIf objTempFaturaNF3EB.DESCCLASSE.ToString.ToUpper Like "*PODER*" Then
                    nota.infNF3e.acessante.tpClasse = TClasse.Item05
                ElseIf objTempFaturaNF3EB.DESCCLASSE.ToString.ToUpper Like "*RESIDENCIAL*" Then
                    nota.infNF3e.acessante.tpClasse = TClasse.Item06
                ElseIf objTempFaturaNF3EB.DESCCLASSE.ToString.ToUpper Like "*RURAL*" Then
                    nota.infNF3e.acessante.tpClasse = TClasse.Item07
                ElseIf objTempFaturaNF3EB.DESCCLASSE.ToString.ToUpper Like "*SERVIÇO*" Then
                    nota.infNF3e.acessante.tpClasse = TClasse.Item08
                Else
                    nota.infNF3e.acessante.tpClasse = "0"
                End If

            End If

            'Subclasse de Consumo da Unidade Consumidora
            '01 - Residencial;
            '02 - Residencial baixa renda;
            '03 - Residencial baixa renda indígena;
            '04 - Residencial baixa renda quilombola;
            '05 - Residencial baixa renda benefício de prestação continuada da assistência social;
            '06 - Residencial baixa renda multifamiliar;
            '07 - Comercial;
            '08 - Serviços de transporte, exceto tração elétrica;
            '09 - Serviços de comunicação e telecomunicação;
            '10 - Associação e entidades filantrópicas;
            '11 - Templos religiosos;
            '12 - Administração condominial: iluminação e instalações de uso comum de prédio ou conjunto de edificações;
            '13 - Iluminação em rodovias solicitada por quem detenha concessão ou autorização para administração em rodovias;
            '14 - Semáforos, radares e câmeras de monitoramento de trânsito, solicitados por quem detenha concessão ou autorização para controle de trânsito;
            '15 - Outros serviços e outras atividades da classe comercial;
            '16 - Agropecuária rural;
            '17 - Agropecuária urbana;
            '18 - Residencial rural;
            '19 - Cooperativa de eletrificação rural;
            '20 - Agroindustrial;
            '21 - Serviço público de irrigação rural;
            '22 - Escola agrotécnica;
            '23 - Aquicultura;
            '24 - Poder público Federal;
            '25 - Poder Público Estadual ou Distrital;
            '26 - Poder público Municipal;
            '27 - Tração Elétrica;
            '28 - Água esgoto ou saneamento;
            '99 - Outros.
            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.tipo.acessante"))) Then

                nota.infNF3e.acessante.tpSubClasseSpecified = True

                If objTempFaturaNF3EB.CODCLAS = "9101" Then
                    nota.infNF3e.acessante.tpSubClasse = TSubClasse.Item01
                ElseIf objTempFaturaNF3EB.CODCLAS = "9102" Then
                    nota.infNF3e.acessante.tpSubClasse = TSubClasse.Item02
                ElseIf Mid(objTempFaturaNF3EB.CODCLAS, 1, 1) = "4" Then
                    nota.infNF3e.acessante.tpSubClasse = TSubClasse.Item07
                ElseIf Mid(objTempFaturaNF3EB.CODCLAS, 1, 1) = "5" Then
                    nota.infNF3e.acessante.tpSubClasse = TSubClasse.Item16
                ElseIf Mid(objTempFaturaNF3EB.CODCLAS, 1, 2) = "63" Then
                    nota.infNF3e.acessante.tpSubClasse = TSubClasse.Item24
                ElseIf Mid(objTempFaturaNF3EB.CODCLAS, 1, 2) = "62" Then
                    nota.infNF3e.acessante.tpSubClasse = TSubClasse.Item25
                ElseIf Mid(objTempFaturaNF3EB.CODCLAS, 1, 2) = "61" Then
                    nota.infNF3e.acessante.tpSubClasse = TSubClasse.Item26
                ElseIf Mid(objTempFaturaNF3EB.CODCLAS, 1, 2) = "71" Then
                    nota.infNF3e.acessante.tpSubClasse = TSubClasse.Item27
                ElseIf Mid(objTempFaturaNF3EB.CODCLAS, 1, 2) = "72" Then
                    nota.infNF3e.acessante.tpSubClasse = TSubClasse.Item28
                Else
                    nota.infNF3e.acessante.tpSubClasse = TSubClasse.Item99
                End If

            End If

            'Tipo de ligação
            '1 - Monofásico;
            '2 - Bifásico;
            '3 - Trifásico;
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.FASE)) Then

                If objTempFaturaNF3EB.FASE = "M" Then
                    nota.infNF3e.acessante.tpFase = TFase.Item1
                ElseIf objTempFaturaNF3EB.FASE = "B" Then
                    nota.infNF3e.acessante.tpFase = TFase.Item2
                ElseIf objTempFaturaNF3EB.FASE = "T" Then
                    nota.infNF3e.acessante.tpFase = TFase.Item3
                Else
                    nota.infNF3e.acessante.tpFase = "."
                End If

            End If

            'Grupo e Subgrupo de Tensão
            '01 - A1 - Alta Tensão (230kV ou mais);
            '02 - A2 - Alta Tensão (88 a 138kV);
            '03 - A3 - Alta Tensão (69kV);
            '04 - A3a - Alta Tensão (30kV a 44kV);
            '05 - A4 - Alta Tensão (2,3kV a 25kV);
            '06 - AS - Alta Tensão Subterrâneo;
            '07 - B1 - Residencial;
            '08 - B1 - Residencial Baixa Renda;
            '09 - B2 - Rural;
            '10 - B2 - Cooperativa de Eletrificação Rural;
            '11 - B2 - Serviço Público de Irrigação;
            '12 - B3 - Demais Classes;
            '13 - B4a - Iluminação Pública - rede de distribuição;
            '14 - B4b - Iluminação Pública - bulbo de lâmpada.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.TA)) Then

                If objTempFaturaNF3EB.TA.ToString.ToUpper Like "*A1*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item01
                ElseIf objTempFaturaNF3EB.TA.ToString.ToUpper Like "*A2*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item02
                ElseIf objTempFaturaNF3EB.TA.ToString.ToUpper Like "*A3*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item03
                ElseIf objTempFaturaNF3EB.TA.ToString.ToUpper Like "*A3a*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item04
                ElseIf objTempFaturaNF3EB.TA.ToString.ToUpper Like "*A4*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item05
                ElseIf objTempFaturaNF3EB.TA.ToString.ToUpper Like "*AS*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item06
                ElseIf objTempFaturaNF3EB.TA.ToString.ToUpper Like "*B1*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item07
                ElseIf objTempFaturaNF3EB.TA.ToString.ToUpper Like "*B1*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item08
                ElseIf objTempFaturaNF3EB.TA.ToString.ToUpper Like "*B2*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item09
                ElseIf objTempFaturaNF3EB.TA.ToString.ToUpper Like "*B2*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item10
                ElseIf objTempFaturaNF3EB.TA.ToString.ToUpper Like "*B2*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item11
                ElseIf objTempFaturaNF3EB.TA.ToString.ToUpper Like "*B3*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item12
                ElseIf objTempFaturaNF3EB.TA.ToString.ToUpper Like "*B4a*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item13
                ElseIf objTempFaturaNF3EB.TA.ToString.ToUpper Like "*B4b*" Then
                    nota.infNF3e.acessante.tpGrpTensao = TGrpTensao.Item14
                Else
                    nota.infNF3e.acessante.tpGrpTensao = "0"
                End If

            End If

            'Modalidade Tarifária
            '01 – Convencional Monômia;
            '02 – Convencional Binômia;
            '03 – Horária Azul;
            '04 – Horária Azul APE;
            '05 – Horária Verde;
            '06 – Horária Verde APE;
            '07 – Horária Branca;
            '08 – Pré-pagamento;
            '09 – Geração;
            '10 – Distribuição.
            If istrTabela.ToUpper() = "NF" Then

                If Not String.IsNullOrEmpty(Convert.ToString(objNf.TA)) Then

                    If objNf.TA.ToString.ToUpper Like "*01*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item01
                    ElseIf objNf.TA.ToString.ToUpper Like "*02*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item02
                    ElseIf objNf.TA.ToString.ToUpper Like "*03*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item03
                    ElseIf objNf.TA.ToString.ToUpper Like "*04*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item04
                    ElseIf objNf.TA.ToString.ToUpper Like "*05*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item05
                    ElseIf objNf.TA.ToString.ToUpper Like "*06*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item06
                    ElseIf objNf.TA.ToString.ToUpper Like "*07*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item07
                    ElseIf objNf.TA.ToString.ToUpper Like "*08*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item08
                    ElseIf objNf.TA.ToString.ToUpper Like "*09*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item09
                    ElseIf objNf.TA.ToString.ToUpper Like "*10*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item10
                    Else
                        nota.infNF3e.acessante.tpModTar = "0"
                    End If

                End If

            ElseIf istrTabela.ToUpper() = "NFTRANSICAO" Then

                If Not String.IsNullOrEmpty(Convert.ToString(objNfTransicao.TA)) Then

                    If objNfTransicao.TA.ToString.ToUpper Like "*01*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item01
                    ElseIf objNfTransicao.TA.ToString.ToUpper Like "*02*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item02
                    ElseIf objNfTransicao.TA.ToString.ToUpper Like "*03*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item03
                    ElseIf objNfTransicao.TA.ToString.ToUpper Like "*04*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item04
                    ElseIf objNfTransicao.TA.ToString.ToUpper Like "*05*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item05
                    ElseIf objNfTransicao.TA.ToString.ToUpper Like "*06*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item06
                    ElseIf objNfTransicao.TA.ToString.ToUpper Like "*07*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item07
                    ElseIf objNfTransicao.TA.ToString.ToUpper Like "*08*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item08
                    ElseIf objNfTransicao.TA.ToString.ToUpper Like "*09*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item09
                    ElseIf objNfTransicao.TA.ToString.ToUpper Like "*10*" Then
                        nota.infNF3e.acessante.tpModTar = TModTar.Item10
                    Else
                        nota.infNF3e.acessante.tpModTar = "0"
                    End If

                End If

            End If

            'Latitude do ponto geográfico da localização da captura
            If Not String.IsNullOrEmpty(Convert.ToString(objUCFaturamento.LATITUDE)) Then
                If objUCFaturamento.LATITUDE.Replace(",", ".").Trim() = "0" Then
                    nota.infNF3e.acessante.latGPS = "0.000000"
                Else
                    nota.infNF3e.acessante.latGPS = objUCFaturamento.LATITUDE.Replace(",", ".").Trim()
                End If
            Else
                nota.infNF3e.acessante.latGPS = "0.000000"
            End If

            'Longitude do ponto geográfico da localização da captura
            If Not String.IsNullOrEmpty(Convert.ToString(objUCFaturamento.LONGITUDE)) Then
                If objUCFaturamento.LONGITUDE.Replace(",", ".").Trim() = "0" Then
                    nota.infNF3e.acessante.longGPS = "0.000000"
                Else
                    nota.infNF3e.acessante.longGPS = objUCFaturamento.LONGITUDE.Replace(",", ".").Trim()
                End If
            Else
                nota.infNF3e.acessante.longGPS = "0.000000"
            End If

            'Não Consta no XML Enviado
            'codRoteiroLeitura - Roteiro da Leitura para uso operacional
            'Nome da unidade consumidora, exclusivamente para a classe Poder
            'Público, desde que informado previamente e solicitado pelo consumidor.

#End Region

#Region "gSub - Grupo de informações da substituição - Não Consta no XML Enviado"

            'chNF3e - Chave de acesso da NF3e referenciada

            'gNF - Informação da NF modelo 06 referenciada 

            'CNPJ - CNPJ do Emitente 
            'Informar o CNPJ do emitente do Documento Fiscal

            'serie - Serie do documento fiscal 
            'Aceita de 1 a 3 caracteres alfa

            'nNF - Número do documento fiscal 

            'CompetEmis - Ano e mês da emissão da NF Mod. 06 (AAAAMM)

            'CompetApur - Ano e mês de apuração (AAAAMM) 

            'hash115 - Hash do registro no arquivo do convênio
            'Campo poderá ser exigido a critério da UF

            'motSub - Motivo da substituição 
            '01 – Erro de Leitura
            '02 – Erro de Preço ou Erro de Tarifa;
            '03 – Decisão Judicial
            '04 – Erro Cadastral;
            '05 - Erro de Tributação

#End Region

#Region "gJudic - Grupo de informações para referenciar a NF3e original que foi separada judicialmente - Não Consta no XML Enviado"

            'chNF3e - Chave de acesso da NF3e referenciada

#End Region

#Region "gGrContrat - Grupo de informações das quantidades contratadas"


            nota.infNF3e.gGrContrat(0) = New TNF3eInfNF3eGGrContrat()

            'Número de referência para informar nos
            'produtos a relação com a quantidade contratada
            'If Not String.IsNullOrEmpty(Convert.ToString(objUCFaturamento.DEMANDA_CONTR)) Then
            '    nota.infNF3e.gGrContrat(0).nContrat = IIf(Convert.ToInt32(objUCFaturamento.DEMANDA_CONTR) <= 9, "0" + Convert.ToString(objUCFaturamento.DEMANDA_CONTR).Trim(), Convert.ToString(objUCFaturamento.DEMANDA_CONTR).Trim())
            'End If
            nota.infNF3e.gGrContrat(0).nContrat = "01"

            'Tipo de grandeza contratada 
            '1 - Demanda;
            '2 - Montante de Uso do Sistema de Distribuição;
            '3 - Reserva de Capacidade;
            '4 - Energia Contratada.
            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.tipo.grandeza.contratada"))) Then

                If Convert.ToString(GetConfig("nf3e.tipo.grandeza.contratada")) = "1" Then
                    nota.infNF3e.gGrContrat(0).tpGrContrat = TGrContrat.Item1
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.grandeza.contratada")) = "2" Then
                    nota.infNF3e.gGrContrat(0).tpGrContrat = TGrContrat.Item2
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.grandeza.contratada")) = "3" Then
                    nota.infNF3e.gGrContrat(0).tpGrContrat = TGrContrat.Item3
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.grandeza.contratada")) = "4" Then
                    nota.infNF3e.gGrContrat(0).tpGrContrat = TGrContrat.Item4
                Else
                    nota.infNF3e.gGrContrat(0).tpGrContrat = "0"
                End If

            End If

            'Tipo de Posto Tarifário Contratado 
            '0 - Único
            '1 - Ponta
            '2 - Fora Ponta
            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.tipo.posto.tarifario.contratado"))) Then

                If Convert.ToString(GetConfig("nf3e.tipo.posto.tarifario.contratado")) = "0" Then
                    nota.infNF3e.gGrContrat(0).tpPosTar = TPosTarSimples.Item0
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.posto.tarifario.contratado")) = "1" Then
                    nota.infNF3e.gGrContrat(0).tpPosTar = TPosTarSimples.Item1
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.posto.tarifario.contratado")) = "2" Then
                    nota.infNF3e.gGrContrat(0).tpPosTar = TPosTarSimples.Item2
                ElseIf Convert.ToString(GetConfig("nf3e.tipo.posto.tarifario.contratado")) = "3" Then
                    nota.infNF3e.gGrContrat(0).tpPosTar = TPosTarSimples.Item3
                Else
                    nota.infNF3e.gGrContrat(0).tpPosTar = "."
                End If

            End If

            'Quantidade Contratada em kW ou kWh 
            '15 posições, sendo 13 inteiras e 2 decimais ou 19 posições, sendo 13 inteiras e 6 decimais
            If Not String.IsNullOrEmpty(Convert.ToString(objUCFaturamento.DEMANDA_CONTR)) Then
                nota.infNF3e.gGrContrat(0).qUnidContrat = Convert.ToString(objUCFaturamento.DEMANDA_CONTR).Trim()
            Else
                nota.infNF3e.gGrContrat(0).qUnidContrat = "0"
            End If

#End Region

#Region "gMed - Grupo de informações dos Medidores"

            nota.infNF3e.gMed(0) = New TNF3eInfNF3eGMed()

            'Número de referência para informar nos produtos a relação com a medição
            nota.infNF3e.gMed(0).nMed = "01"

            'Identificação do medidor 
            'If Not String.IsNullOrEmpty(Convert.ToString(objUCFaturamento.NUM)) And Convert.ToString(objUCFaturamento.NUM) <> 0 Then
            If ((Not String.IsNullOrEmpty(Convert.ToString(objUCFaturamento.NUM))) And (objUCFaturamento.NUM.ToString <> "0")) Then
                nota.infNF3e.gMed(0).idMedidor = objUCFaturamento.NUM.Trim()
            Else
                nota.infNF3e.gMed(0).idMedidor = "1234"
            End If

            'Data da leitura anterior 
            'Formato AAAA-MM-DD
            nota.infNF3e.gMed(0).dMedAnt = objTempFaturaNF3EB.DATALEITANT.ToString("yyyy-MM-dd")

            'Data da leitura atual 
            'Formato AAAA-MM-DD
            nota.infNF3e.gMed(0).dMedAtu = objTempFaturaNF3EB.DATALEIT.ToString("yyyy-MM-dd")

#End Region

#Region "gSaldoCred -Saldos de Créditos por posto tarifário - Não Consta no XML Enviado"


            'tpPosTar 3 Tipo de Posto Tarifário E N 1 - 1 1 D29
            '0 - Único
            '1 - Ponta
            '2 - Fora Ponta;
            '3 - Intermediário

            'vSaldAnt 3 Saldo Anterior de Créditos em kWh E N 1 - 1 11, 0
            '11 posições, sendo 11 inteiras e 0 decimais ou 15 posições, sendo 11 inteiras e 4 decimais.

            'vCredExpirado 3 Créditos Expirados
            '11 posições, sendo 11 inteiras e 0 decimais ou 15 posições, sendo 11 inteiras e 4 decimais.

            'vSaldAtual - Saldo Atual de Créditos em kWh 
            '11 posições, sendo 11 inteiras e 0 decimais ou 15 posições, sendo 11 inteiras e 4 decimais.

#End Region

            'vCredExpirar 3 Créditos a Expirar 
            '11 posições, sendo 11 inteiras e 0 decimais ou 15 posições, sendo 11 inteiras e 4 decimais.
            'Próxima parcela do saldo atualizado de créditos a expirar

            'CompetExpirar 3 Ciclo de faturamento em que ocorrerá a expiração(AAAAMM)



#End Region

#Region "NFdet - Detalhamento de Produtos e Serviços - Quando NF3e Normal com ajustes, utilizar a última nota do detalhamento para apresentar a fatura do mês atual"

            'Não Consta no XML Enviado

            'chNF3eAnt - Chave de Acesso da NF3e anterior - Informar apenas para finalidade de Ajuste

            'mod6HashAnt - HashCode da Modelo 6 Anterior - Informar apenas para finalidade de Ajuste

#Region " det - Detalhamento de Produtos e Serviços"


            Dim iNFdet As Integer
            Dim iDet As Integer

            Dim var_ITEM_NOTA As String = String.Empty
            Dim var_ITENSSERV As String = String.Empty
            Dim var_ITENSIMP As String = String.Empty
            Dim var_TEXTOEXISTENAIMPRESSAO As Boolean = False
            Dim var_COD As Integer = 0
            Dim var_NUMNF As Integer = 0
            Dim var_DESCR As String = String.Empty
            Dim var_VALOR_ITEM As Decimal = 0
            Dim var_CODITEM As String = String.Empty
            Dim var_ITEMESPEC As String = String.Empty
            Dim var_CODITEM2 As String = String.Empty
            Dim var_CODITEM2_ANT As String = String.Empty
            Dim var_CONTADOR As Integer = 0
            Dim var_NAOGRAVA As Integer = 0
            Dim var_TA As String = String.Empty
            Dim var_REF As String = String.Empty
            Dim var_MESANO As String = String.Empty
            Dim var_CLASSE As String = String.Empty
            Dim var_ANOMES_FAT As Integer = 0
            Dim var_UN As String = String.Empty
            Dim var_FATURADA_TEXTO As String = String.Empty
            Dim var_FATURADA_SPLIT As String()
            Dim var_QFATURADA As String = String.Empty
            Dim var_VITEM As String = String.Empty
            Dim var_VPROD As String = String.Empty
            Dim var_CLASS_PRODUTO As String = String.Empty

            Dim var_codigo_nao_incluir As String = "0303010090, 0304010090, 0313010090, 0314010090, 0302030099, 0302990040, 0302990050 "

            iNFdet = 0
            iDet = 0
            ValorTotalItem = 0

            objTempItemFaturaB.NUMNF = objTempFaturaNF3EB.NUMNF
            objTempItemFaturaB.MESANO = objTempFaturaNF3EB.MESANO

            Try
                repositorioTempItemFaturaB.Delete(objTempItemFaturaB)

                strSql = "Delete From TEMP_ITEM_FATURA_B "
                strSql += "Where 1 = 1 "
                strSql += "And numnf = '" & objTempFaturaNF3EB.NUMNF & "'"
                objExecAtualizaBancoDados.QUERY_NAME = strSql
                repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)

                dt_1 = New DataTable()
                dt_1.Columns.Add("COD", GetType(Integer))
                dt_1.Columns.Add("NUMNF", GetType(Integer))
                dt_1.Columns.Add("DESCR", GetType(String))
                dt_1.Columns.Add("VALOR_ITEM", GetType(Decimal))
                dt_1.Columns.Add("CODITEM", GetType(String))
                dt_1.Columns.Add("TA", GetType(String))
                dt_1.Columns.Add("REF", GetType(String))
                dt_1.Columns.Add("MESANO", GetType(String))
                dt_1.Columns.Add("CLASSE", GetType(String))
                dt_1.Columns.Add("ANOMES_FAT", GetType(Integer))
                dt_1.Columns.Add("UN", GetType(String))

                strSql = "Select Max(cod) As Cod From TEMP_ITEM_FATURA_B "
                objAtualizaBancoDados.QUERY_NAME = strSql
                dt_item_cod = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)
                If dt_item_cod.Rows.Count > 0 Then
                    For Each row As DataRow In dt_item_cod.Rows
                        var_COD = IIf(IsDBNull(row.Item("Cod")), 0, row.Item("Cod"))
                    Next
                Else
                    var_COD = 0
                End If

                strSql = "Select Distinct num, descri  From codigos where descri like '%CONSUMO%' "
                strSql += "And num not in (" & var_codigo_nao_incluir & ") "
                strSql += "union "
                strSql += "Select Distinct num, descri  From codigos where descri like '%TUSD%' "
                strSql += "And num not in (" & var_codigo_nao_incluir & ") "
                strSql += "union "
                strSql += "Select Distinct num, descri  From codigos where descri like '%TE%' "
                strSql += "And num not in (" & var_codigo_nao_incluir & ") "
                strSql += "union "
                strSql += "Select Distinct num, descri  From codigos where descri like '%PIS%' and descri not like '%BASE%' and descri not like '%ALIQUOTA%' "
                strSql += "And num not in (" & var_codigo_nao_incluir & ") "
                strSql += "union "
                strSql += "Select Distinct num, descri  From codigos where descri like '%COFINS%' and descri not like '%BASE%' and descri not like '%ALIQUOTA%' "
                strSql += "And num not in (" & var_codigo_nao_incluir & ") "
                strSql += "union "
                strSql += "Select Distinct num, descri  From codigos where num like '9070%' "
                strSql += "And num not in (" & var_codigo_nao_incluir & ") "
                strSql += "union "
                strSql += "Select Distinct num, descri  From codigos where num like '9080%' "
                strSql += "And num not in (" & var_codigo_nao_incluir & ") "
                strSql += "union "
                strSql += "Select Distinct num, descri From codigos where num in ('0301000003','9040000042', '0307010090', '0302020079', '0302020080', '9040000061') "
                strSql += "order by num "
                objAtualizaBancoDados.QUERY_NAME = strSql
                dt_item_notas = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)
                If dt_item_notas.Rows.Count > 0 Then
                    For Each row As DataRow In dt_item_notas.Rows
                        var_ITEM_NOTA = IIf(IsDBNull(row.Item("num")), 0, row.Item("num"))
                        var_DESCR = IIf(IsDBNull(row.Item("descri")), 0, row.Item("descri"))

                        'If var_ITEM_NOTA = "0302020080" Then
                        '    'If objTempFaturaNF3EB.NUMNF = "780099" And var_ITEM_NOTA = "0302020080" Then
                        '    MsgBox("1")
                        'End If

                        If var_ITEM_NOTA <> String.Empty Then

                            strSql = "Select numnf, "
                            strSql += "'VALOR CONSUMO' As descr, "
                            strSql += "ta, "
                            strSql += "mesano_ref as ref, "
                            strSql += "mesano, "
                            strSql += "codclas as classe, "
                            strSql += "anomes_fat, "
                            strSql += "'R$' as un, "
                            strSql += "itensserv, "
                            strSql += "itensimp "
                            strSql += "From nf "
                            strSql += "Where 1 = 1 "
                            strSql += "And numnf = '" & objTempFaturaNF3EB.NUMNF & "'"
                            strSql += "And Ifnull(flgst,'') <> 'C' "
                            objAtualizaBancoDados.QUERY_NAME = strSql
                            dt_notas = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)
                            If dt_notas.Rows.Count > 0 Then
                                For Each row_nota As DataRow In dt_notas.Rows
                                    var_NAOGRAVA = 0
                                    var_ITENSSERV = IIf(IsDBNull(row_nota.Item("itensserv")), "", row_nota.Item("itensserv"))
                                    var_ITENSIMP = IIf(IsDBNull(row_nota.Item("itensimp")), "", row_nota.Item("itensimp"))
                                    If (var_ITENSSERV <> String.Empty) And (var_ITENSIMP <> String.Empty) Then

                                        var_NUMNF = IIf(IsDBNull(row_nota.Item("numnf")), 0, row_nota.Item("numnf"))

                                        var_FATURADA_TEXTO = BuscaRefItemLocal(var_ITENSSERV, var_ITEM_NOTA, 1)

                                        If var_ITEM_NOTA = "0301000003" Then
                                            var_DESCR = "ILUMINAÇÃO PÚBLICA MUNICIPAL"
                                        ElseIf var_ITEM_NOTA = "9070000079" Then
                                            var_DESCR = "Bônus ITAIPU art 21 Lei 10.438/02"
                                        Else
                                            If var_DESCR.ToString.Trim = "CONSUMO" Then
                                                var_DESCR = "VALOR CONSUMO " & var_FATURADA_TEXTO
                                            End If
                                        End If

                                        var_CODITEM = var_ITEM_NOTA

                                        var_ITEMESPEC = 0
                                        If var_CODITEM = "0301000003" Or
                                            var_CODITEM = "9070000079" Or
                                            var_CODITEM = "9040000042" Or
                                            var_CODITEM = "9080000061" Or
                                            var_CODITEM = "9080000066" Or
                                            var_CODITEM = "9080000067" Then
                                            var_ITEMESPEC = 1
                                        End If

                                        If var_DESCR.Contains("CONSUMO") Then
                                            var_ITEMESPEC = 0
                                        Else
                                            var_ITEMESPEC = 1
                                        End If

                                        var_TA = IIf(IsDBNull(row_nota.Item("ta")), "", row_nota.Item("ta"))
                                        var_REF = IIf(IsDBNull(row_nota.Item("ref")), "", row_nota.Item("ref"))
                                        var_MESANO = IIf(IsDBNull(row_nota.Item("mesano")), "", row_nota.Item("mesano"))
                                        var_CLASSE = IIf(IsDBNull(row_nota.Item("classe")), "", row_nota.Item("classe"))
                                        var_ANOMES_FAT = IIf(IsDBNull(row_nota.Item("anomes_fat")), 0, row_nota.Item("anomes_fat"))
                                        var_UN = IIf(IsDBNull(row_nota.Item("un")), "", row_nota.Item("un"))

                                        var_VPROD = BuscaValorItemLocal(var_ITENSSERV, var_ITEM_NOTA, "", 1)

                                        var_TEXTOEXISTENAIMPRESSAO = False
                                        If IsNothing(var_FATURADA_TEXTO) Then
                                            var_FATURADA_TEXTO = ""
                                        End If
                                        If var_FATURADA_TEXTO <> String.Empty Or var_ITEMESPEC = 1 Then
                                            If var_ITENSIMP.Contains(var_FATURADA_TEXTO) Then
                                                var_TEXTOEXISTENAIMPRESSAO = True
                                            End If
                                        Else
                                            var_TEXTOEXISTENAIMPRESSAO = False
                                        End If

                                        'Add na tabela temp
                                        If (Not IsDBNull(row_nota.Item("DESCR"))) And (var_TEXTOEXISTENAIMPRESSAO = True) Then
                                            If ((var_FATURADA_TEXTO <> String.Empty) Or (var_ITEMESPEC = "1" And var_VPROD <> "0")) Then
                                                If row_nota.Item("UN").ToString().ToUpper() = "R$" Then
                                                    var_COD += 1
                                                    var_CONTADOR += 1

                                                    If (var_ITEMESPEC <> "1") And (var_FATURADA_TEXTO.Contains("(") And var_FATURADA_TEXTO.Contains("X")) Then
                                                        var_CODITEM2 = Replace(var_FATURADA_TEXTO, "(", "")
                                                        var_CODITEM2 = Replace(var_CODITEM2, ")", "")
                                                        var_CODITEM2 = Replace(var_CODITEM2, " ", "")
                                                        var_CODITEM2 = Replace(var_CODITEM2, ",", ".")
                                                        var_CODITEM2 = var_CODITEM2.ToString.Trim

                                                        var_FATURADA_SPLIT = Split(var_FATURADA_TEXTO, "X")
                                                        var_QFATURADA = Replace(var_FATURADA_SPLIT(0), "(", "").ToString.Trim
                                                        var_VITEM = Replace(var_FATURADA_SPLIT(1), ")", "").ToString.Trim
                                                    End If

                                                    var_VPROD = BuscaValorItemLocal(var_ITENSSERV, var_ITEM_NOTA, "", 1)

                                                    If (var_ITEMESPEC = "1") Then
                                                        var_QFATURADA = var_VPROD
                                                        If var_QFATURADA = String.Empty Or var_QFATURADA = "0" Then
                                                            var_VITEM = "0"
                                                        Else
                                                            var_VITEM = "1"
                                                        End If
                                                    End If

                                                    If var_CONTADOR > 1 Then
                                                        strSql = "Select * From TEMP_ITEM_FATURA_B "
                                                        strSql += "Where 1 = 1 "
                                                        strSql += "And numnf = '" & row_nota.Item("NUMNF") & "' "
                                                        strSql += "And replace(replace(QFATURADA,'.',''),',','') = '" & Replace(Replace(var_QFATURADA, ".", ""), ",", "") & "' "
                                                        strSql += "And replace(replace(VITEM,'.',''),',','') = '" & Replace(Replace(var_VITEM, ".", ""), ",", "") & "' "
                                                        strSql += "And replace(replace(VPROD,'.',''),',','') = '" & Replace(Replace(var_VPROD, ".", ""), ",", "") & "' "
                                                        If var_ITEMESPEC = 1 Then
                                                            strSql += "And coditem = '" & var_CODITEM & "' "
                                                        End If
                                                        objAtualizaBancoDados.QUERY_NAME = strSql
                                                        dt_item2 = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)
                                                        If dt_item2.Rows.Count > 0 Then
                                                            var_NAOGRAVA = 1
                                                        Else
                                                            var_NAOGRAVA = 0
                                                        End If
                                                    Else
                                                        var_NAOGRAVA = 0
                                                    End If

                                                    If (var_CODITEM <> "0302020029") And (var_CODITEM <> "0302020030") Then
                                                        If ((var_DESCR.Contains("PIS")) Or (var_DESCR.Contains("COFINS"))) Then
                                                            var_NAOGRAVA = 1
                                                        End If
                                                    End If

                                                    strSql = "Select Ifnull(codclass,'') As codclass From codigos "
                                                    strSql += "Where num = '" & var_CODITEM & "' "
                                                    objAtualizaBancoDados.QUERY_NAME = strSql
                                                    dt_item3 = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)
                                                    If dt_item3.Rows.Count > 0 Then
                                                        For Each row_classif As DataRow In dt_item3.Rows
                                                            var_CLASS_PRODUTO = IIf(IsDBNull(row_classif.Item("codclass")), "", row_classif.Item("codclass"))
                                                        Next
                                                    Else
                                                        var_CLASS_PRODUTO = "NAOEXISTE"
                                                    End If
                                                    If Strings.Left(var_CLASS_PRODUTO, 3) = "560" Then
                                                        var_NAOGRAVA = 1
                                                    End If

                                                    If var_NAOGRAVA = 0 Then
                                                        dt_1.Rows.Add(
                                                            var_COD,
                                                            row_nota.Item("NUMNF"),
                                                            var_DESCR,
                                                            var_VPROD,
                                                            var_CODITEM,
                                                            row_nota.Item("TA"),
                                                            row_nota.Item("REF"),
                                                            Convert.ToDateTime(row_nota.Item("ANOMES_FAT").ToString().Substring(4, 2) + "/" + row_nota.Item("ANOMES_FAT").ToString().Substring(0, 4)).ToString("MM/yyyy"),
                                                            row_nota.Item("CLASSE"),
                                                            row_nota.Item("ANOMES_FAT"),
                                                            row_nota.Item("UN").ToString())

                                                        'If row_nota.Item("NUMNF") = "1059780" And var_COD = "0302020090" Then
                                                        '    MsgBox("1")
                                                        'End If
                                                        '
                                                        'If (Strings.Left(var_ITEM_NOTA, 4) = "9070") Or (Strings.Left(var_ITEM_NOTA, 4) = "0313") Or (Strings.Left(var_ITEM_NOTA, 4) = "0314") Then
                                                        '    'Or (Strings.Left(var_CLASS_PRODUTO, 3) = "560")
                                                        '    ValorTotalItem = ValorTotalItem - Replace(var_VPROD, "-", "")
                                                        'Else
                                                        '    ValorTotalItem = ValorTotalItem + var_VPROD
                                                        'End If

                                                        strSql = "Select * From  information_schema.COLUMNS Where COLUMN_NAME = 'QFATURADA' And TABLE_NAME = 'TEMP_ITEM_FATURA_B' "
                                                        objAtualizaBancoDados.QUERY_NAME = strSql
                                                        dt_coluna = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)
                                                        If dt_coluna.Rows.Count = 0 Then
                                                            strSql = "alter table TEMP_ITEM_FATURA_B add QFATURADA varchar(50)"
                                                            objExecAtualizaBancoDados.QUERY_NAME = strSql
                                                            repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)
                                                        End If

                                                        strSql = "Select * From  information_schema.COLUMNS Where COLUMN_NAME = 'VITEM' And TABLE_NAME = 'TEMP_ITEM_FATURA_B' "
                                                        objAtualizaBancoDados.QUERY_NAME = strSql
                                                        dt_coluna = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)
                                                        If dt_coluna.Rows.Count = 0 Then
                                                            strSql = "alter table TEMP_ITEM_FATURA_B add VITEM varchar(50)"
                                                            objExecAtualizaBancoDados.QUERY_NAME = strSql
                                                            repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)
                                                        End If

                                                        strSql = "Select * From  information_schema.COLUMNS Where COLUMN_NAME = 'VPROD' And TABLE_NAME = 'TEMP_ITEM_FATURA_B' "
                                                        objAtualizaBancoDados.QUERY_NAME = strSql
                                                        dt_coluna = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)
                                                        If dt_coluna.Rows.Count = 0 Then
                                                            strSql = "alter table TEMP_ITEM_FATURA_B add VPROD varchar(50)"
                                                            objExecAtualizaBancoDados.QUERY_NAME = strSql
                                                            repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)
                                                        End If

                                                        strSql = "Insert Into TEMP_ITEM_FATURA_B ("
                                                        strSql += "cod, numnf, descr, valor_item, coditem, ta, REF, mesano, classe, anomes_fat, un, QFATURADA, VITEM, VPROD) Values ("
                                                        strSql += "" & var_COD & ", "
                                                        strSql += "" & row_nota.Item("NUMNF") & ", "
                                                        strSql += "'" & var_DESCR & "', "
                                                        strSql += "" & Replace(var_VPROD, ",", ".") & ", "
                                                        strSql += "'" & var_CODITEM & "', "
                                                        strSql += "'" & Strings.Mid(row_nota.Item("TA"), 3, 2) & "', "
                                                        strSql += "'" & row_nota.Item("REF") & "', "
                                                        strSql += "'" & Convert.ToDateTime(row_nota.Item("ANOMES_FAT").ToString().Substring(4, 2) + "/" + row_nota.Item("ANOMES_FAT").ToString().Substring(0, 4)).ToString("MM/yyyy") & "', "
                                                        strSql += "'" & row_nota.Item("CLASSE") & "', "
                                                        strSql += "" & row_nota.Item("ANOMES_FAT") & ", "
                                                        strSql += "'" & row_nota.Item("UN").ToString() & "', "
                                                        strSql += "" & Replace(var_QFATURADA, ",", ".") & ", "
                                                        strSql += "'" & Replace(var_VITEM, ",", ".") & "', "
                                                        strSql += "" & Replace(var_VPROD, ",", ".") & ") "
                                                        objExecAtualizaBancoDados.QUERY_NAME = strSql
                                                        repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)
                                                    End If

                                                End If
                                            End If
                                        Else

                                            Exit For
                                        End If
                                    End If
                                Next
                            Else
                                Exit Sub
                            End If
                        End If
                    Next
                End If

            Catch ex As Exception
                'MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: ExportarXMLNF3eGrupoB" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
                Exit Sub
            End Try
            'For Each dr As DataRow In dt_1.Rows
            '    If Not IsDBNull(dr("DESCR")) Then
            '        If dr("UN").ToString().ToUpper() = "R$" Then
            '            dt_1.Rows.Add(dr("COD"), dr("NUMNF"), dr("DESCR"), dr("VALOR_ITEM"), dr("CODITEM"), dr("TA"), dr("REF"), Convert.ToDateTime(dr("ANOMES_FAT").ToString().Substring(4, 2) + "/" + dr("ANOMES_FAT").ToString().Substring(0, 4)).ToString("MM/yyyy"), dr("CLASSE"), dr("ANOMES_FAT"), dr("UN").ToString())
            '            ValorTotalItem += dr("VALOR_ITEM")
            '        End If
            '    Else
            '        Exit For
            '    End If
            'Next dr

            objTempItemFaturaB.NUMNF = objTempFaturaNF3EB.NUMNF

            dt = repositorioTempItemFaturaB.Select(objTempItemFaturaB)

            nota.infNF3e.NFdet(iNFdet) = New TNF3eInfNF3eNFdet()
            nota.infNF3e.NFdet(iNFdet).det = New TNF3eInfNF3eNFdetDet(dt_1.Rows.Count()) {}

            For Each dr_1 As DataRow In dt_1.Rows

                'Geração de Dados importantes para emissão do xml

                objCodigo.NUM = Convert.ToString(dr_1("CODITEM")).Trim()

                vlist = repositorioCodigo.Select_3(objCodigo)

                If vlist.Count = 1 Then

                    For Each objCodigoFor As entidadeCodigo In vlist
                        objCodigo = objCodigoFor
                    Next

                End If

                nota.infNF3e.NFdet(iNFdet).det(iDet) = New TNF3eInfNF3eNFdetDet()
                nota.infNF3e.NFdet(iNFdet).det(iDet).Item = New TNF3eInfNF3eNFdetDetDetItem(dt_1.Rows.Count()) {}

                nota.infNF3e.NFdet(iNFdet).det(iDet).nItem = iDet + 1

                Dim detItem As New TNF3eInfNF3eNFdetDetDetItem()
                detItem.prod = New TNF3eInfNF3eNFdetDetDetItemProd()
                detItem.imposto = New TNF3eInfNF3eNFdetDetDetItemImposto()
                detItem.imposto.Item = New TNF3eInfNF3eNFdetDetDetItemImpostoICMS00()
                Dim ICMS00 As New TNF3eInfNF3eNFdetDetDetItemImpostoICMS00()
                detItem.imposto.PIS = New TNF3eInfNF3eNFdetDetDetItemImpostoPIS()
                detItem.imposto.PISEfet = New TNF3eInfNF3eNFdetDetDetItemImpostoPISEfet()
                detItem.imposto.COFINS = New TNF3eInfNF3eNFdetDetDetItemImpostoCOFINS()
                detItem.imposto.COFINSEfet = New TNF3eInfNF3eNFdetDetDetItemImpostoCOFINSEfet()
                detItem.imposto.retTrib = New TNF3eInfNF3eNFdetDetDetItemImpostoRetTrib()


#Region "gAjusteNF3eAnt - Grupo de identificação do ajuste do item de NF3e anterior -  Somente informar no caso de item relacionado a NF3e anterior - Não Consta no XML Enviado"

                'tpAjuste - Tipo de ajuste a ser aplicado ao item 
                '1 - Item a ser substituído (deve informar detItemAnt);
                '2 - Item de substituição (nova imagem Do item anterior);
                '3 - Item a ser eliminado (deve informar detItemAnt);
                '4 - Item a ser incluído referente a NF3e anterior

                'motAjuste - Motivo do Ajuste 
                '1 – Erro de Leitura
                '2 – Erro de Preço ou Erro de Tarifa
                '3 – Decisão Judicial
                '4 – Erro Cadastral
                '5 - Erro de Tributação

#End Region

#Region "detItemAnt - Grupo de informações referentes a item da NF3e anterior - Este grupo somente deverá ser preenchido para detalhar item ajustado de nota anterior nos casos de item alterado ou excluído - Não Consta no XML Enviado"

                'nItemAnt - Número do item da NF3e anterior 

                'vItem - Valor unitário do item 
                '15 posições, sendo 13 inteiras e 2
                'decimais ou 23 posições, sendo 13 inteiras e 10 decimais.
                'Informar o valor sem a influência da decisão judicial / administrativa.

                'qFaturada - Quantidade Faturada 
                '11 posições, sendo 11 inteiras e 0 decimais ou 15 posições, sendo 11
                'inteiras e 4 decimais Informar a quantidade de comercialização do produto.


                'vProd - Valor total do item 
                '15 posições, sendo 13 inteiras e 2 decimais ou 23 posições, sendo 13 inteiras e 10 decimais.
                'Informar o valor sem a influência da decisão judicial / administrativa.

                'cClass - Código de classificação 
                'Tabela de Classificação de Item da NF3e de Energia Elétrica (validar por RV)

                'vBC - Valor da BC do ICMS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'pICMS - Alíquota do ICMS 
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vICMS - Valor do ICMS
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vFCP - Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vBCST - Valor da BC do ICMS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vICMSST - Valor do ICMS ST retido 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vFCPST - Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vPIS - Valor do PIS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vPISEfet - Valor efetivo do PIS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vCOFINS - Valor do COFINS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vCOFINSEfet - Valor Efetivo do COFINS 
                '15 posições, sendo 13 inteiras e 2 decimais.


#End Region

#Region "retTrib - Grupo de informações de retenção de tributos federais Do item anterior - Não Consta no XML Enviado"

                'vRetPIS - Valor do PIS retido
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vRetCofins - Valor do COFNS retido 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vRetCSLL - Valor da CSLL retida 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vBCIRRF - Base de cálculo do IRRF 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vIRRF - Valor do IRRF retido 
                '15 posições, sendo 13 inteiras e 2 decimais.

#End Region

#Region "detItem - Grupo de informações referentes a item da NF3e - Não Consta no XML Enviado"

                'nItemAnt - Número do item da NF3e anterior que este item está substituindo. Deve sempre existir um detItemAnt que corresponda

#End Region

#Region "gTarif - Grupo de Tarifas por Período  - Não Consta no XML Enviado"

                'dIniTarif - Data de início da aplicação da tarifa 
                'Data de início da aplicação da tarifa no
                'período considerado para o faturamento (Formato AAAA-MM-DD)

                'dFimTarif - Data de fim da aplicação da tarifa E D 1 - 1 10
                'Data de fim da aplicação da tarifa no
                'período considerado para o faturamento (Formato AAAA-MM-DD)

                'tpAto - Tipo de Ato da ANEEL 
                '1 - REH (Resolução homologatória);
                '2 - Despacho;
                '3 - REN (Resolução Normativa)

                'nAto - Número do Ato da ANEEL 

                'anoAto - Ano do Ato da ANEEL (AAAA) 

                'tpTarif - Tarifa de aplicação 
                '1 - TE;
                '2 - TUSD

                'cPosTarif - Tipo de posto tarifário 
                '0 - Único/Não se aplica;
                '1 - Ponta;
                '2 - Fora Ponta;
                '3 - Intermediário;
                '4 - Ponta Reservado;
                '5 - Fora ponta Reservado;
                '6 - Intermediário Reservado
                '7 - Reservado

                'uMed - Unidade de Medida 
                '1 - kW (Aplica-se somente a TUSD);
                '2 - kWh (Aplica-se tanto a TUSD quanto TE)

                'vTarifHom - Valor da tarifa homologada pela ANEEL 
                '17 posições, sendo 9 inteiras e 8 decimais.

                'vTarifAplic - Valor da tarifa aplicada 
                '17 posições, sendo 9 inteiras e 8 decimais.

                'motDifTarif - Motivo da diferença de tarifa aplicada com a homologada
                '01 - Decisão judicial;
                '02 - Decisão da distribuidora (tarifa homologada equivale a preço teto);
                '03 - Desconto Tarifário
                '04 – Alteração tarifária


#End Region

#Region "gAdBand - Grupo de Adicional de Bandeira - Não Consta no XML Enviado"

                'dIniAdBand - Data de início da aplicação do adicional 
                'Data de início da aplicação do adicional
                'de bandeira no período considerado para o faturamento (Formato AAAA-MMDD)

                'dFimAdBand - Data de fim da aplicação do adicional 
                'Data de fim da aplicação do adicional de
                'bandeira no período considerado para o faturamento(Formato AAAA-MM-DD)

                'tpBand - Tipo da bandeira tarifária 
                '1 – Verde;
                '2 – Amarela;
                '3 – Vermelha patamar 1;
                '4 – Vermelha patamar 2

                'vAdBand - Valor do Adicional tarifário 
                '15 posições, sendo 13 inteiras e 2 decimais ou 23 posições, sendo 13
                'inteiras e 10 decimais Resultado decorrente da aplicação do
                'adicional de cada bandeira sobre o consumo faturado no período
                'considerado entre as datas de início e fim. Quando for bandeira verde o campo
                'valor do adicional tarifário deverá ser preenchido com zero (0.00).


                'vAdBandAplic - Valor do adicional tarifário aplicado 
                '15 posições, sendo 13 inteiras e 2  decimais ou 23 posições, sendo 13 inteiras e 10 decimais

                'motDifBand - Motivo da diferença do adicional aplicado 
                '01 - Decisão judicial;
                '02 - Decisão da distribuidora (tarifa
                'homologada equivale a preço teto);
                '03 - Desconto tarifário
                '04 – Alteração tarifária

#End Region

#Region "prod - Dados do Produto ou Serviço"

                'Indicador da origem da quantidade faturada
                '1 - Media;
                '2 - Medido;
                '3 - Contratada;
                '4 - Calculada;
                '5 - Custo de disponibilidade;
                '6 - Sem quantidade
                If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.indicador.origem.qtd.faturada"))) Then

                    If Convert.ToString(GetConfig("nf3e.indicador.origem.qtd.faturada")) = "1" Then
                        detItem.prod.indOrigemQtd = TOrigemQtd.Item1
                    ElseIf Convert.ToString(GetConfig("nf3e.indicador.origem.qtd.faturada")) = "2" Then
                        detItem.prod.indOrigemQtd = TOrigemQtd.Item2
                    ElseIf Convert.ToString(GetConfig("nf3e.indicador.origem.qtd.faturada")) = "3" Then
                        detItem.prod.indOrigemQtd = TOrigemQtd.Item3
                    ElseIf Convert.ToString(GetConfig("nf3e.indicador.origem.qtd.faturada")) = "4" Then
                        detItem.prod.indOrigemQtd = TOrigemQtd.Item4
                    ElseIf Convert.ToString(GetConfig("nf3e.indicador.origem.qtd.faturada")) = "5" Then
                        detItem.prod.indOrigemQtd = TOrigemQtd.Item5
                    ElseIf Convert.ToString(GetConfig("nf3e.indicador.origem.qtd.faturada")) = "6" Then
                        detItem.prod.indOrigemQtd = TOrigemQtd.Item6
                    Else
                        detItem.prod.indOrigemQtd = TOrigemQtd.Item6
                    End If

                End If

#End Region

#Region "gMedicao - Grupo para referenciar qual medição e medida estão relacionadas ao item - Não Consta no XML Enviado"

                'nMed - Referência para a medição ao qual se refere o item

                'nContrat - Referência para o grupo de demanda

#End Region

#Region "gMedida - Grupo de medida"

                'Não Consta no XML Enviado

                'tpGrMed - Tipo de grandeza medida 
                '01 - Demanda;
                '02 - Demanda Reativa
                '03 - Energia Ativa;
                '04 - Energia Ativa injetada
                '05 - Energia Reativa

                'cPosTarif - Tipo de posto tarifário 
                '0 - Único/Não se aplica;
                '1 - Ponta;
                '2 - Fora Ponta;
                '3 - Intermediário;
                '4 - Ponta Reservado;
                '5 - Fora ponta Reservado;
                '6 - Intermediário Reservado
                '7 - Reservado

                'uMed - Unidade Básica de Medida 
                '1 - kW
                '2 - kWh;
                '3 - kVAr;
                '4 - kVArh

                'vMedAnt - Valor da medição (leitura) anterior 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vMedAtu - Valor da medição (leitura) atual 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vConst - Indicar o fator de multiplicação do medidor 
                '15 posições, sendo 13 inteiras e 2 decimais ou 19 posições, sendo 13 inteiras e 6 decimais

                'vMed -Valor da medição 
                '15 posições, sendo 13 inteiras e 2 decimais. (vMedAtu – vMedAnt) * vConst

                'pPerdaTran - Perda de Transformação(percentual) 
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vMedPerdaTran - Valor medido após perda de transformação
                '15 posições, sendo 13 inteiras e 2 decimais. vMed * (1 + pPerdTran / 100)

                'vMedPerdaTec - Valor medido após perda técnica 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'tpMotNaoLeitura - Tipo Motivo da não leitura
                '1 - Consumidor;
                '2 - Distribuidora;
                '3 - Independente do Consumidor e
                'distribuidora;

                'Código do produto ou serviço.
                If Not String.IsNullOrEmpty(Convert.ToString(objCodigo.NUM)) Then
                    detItem.prod.cProd = Convert.ToString(objCodigo.NUM).Trim()
                Else
                    detItem.prod.cProd = "0"
                End If

                'Descrição do produto ou serviço
                If Not String.IsNullOrEmpty(Convert.ToString(dr_1("DESCR"))) Then
                    detItem.prod.xProd = Convert.ToString(dr_1("DESCR")).Trim()
                Else
                    detItem.prod.xProd = "."
                End If

                'Código de classificação 
                'Tabela de Classificação de Item da NF3e de Energia Elétrica (validar por RV)
                If Not String.IsNullOrEmpty(Convert.ToString(objCodigo.CODCLASS)) Then
                    detItem.prod.cClass = Convert.ToString(objCodigo.CODCLASS).Trim().PadLeft(7, "0")
                Else
                    detItem.prod.cClass = "0000000"
                End If

                'CFOP 
                'Utilizar Tabela de CFOP. (O CFOP não será exigido no caso de deduções e cobranças)
                If istrTabela.ToUpper() = "NF" Then

                    If Not String.IsNullOrEmpty(Convert.ToString(objNf.CFOP)) Then
                        detItem.prod.CFOP = Convert.ToString(objNf.CFOP).Trim()
                    Else
                        detItem.prod.CFOP = "0"
                    End If

                ElseIf istrTabela.ToUpper() = "NFTRANSICAO" Then

                    If Not String.IsNullOrEmpty(Convert.ToString(objNfTransicao.CFOP)) Then
                        detItem.prod.CFOP = Convert.ToString(objNfTransicao.CFOP).Trim()
                    Else
                        detItem.prod.CFOP = "0"
                    End If

                Else
                    detItem.prod.CFOP = "0"
                End If

                'Unidade Básica de Medida 
                '1 - kW
                '2 - kWh;
                '3 - kVAr;
                '4 - kVArh;
                '5 - UN
                If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida.detitem"))) Then

                    If Convert.ToString(GetConfig("nf3e.unidade.basica.medida.detitem")) = "1" Then
                        detItem.prod.uMed = TUMedItem.Item1
                    ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida.detitem")) = "2" Then
                        detItem.prod.uMed = TUMedItem.Item2
                    ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida.detitem")) = "3" Then
                        detItem.prod.uMed = TUMedItem.Item3
                    ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida.detitem")) = "4" Then
                        detItem.prod.uMed = TUMedItem.Item4
                    ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida.detitem")) = "5" Then
                        detItem.prod.uMed = TUMedItem.Item5
                    End If

                    If String.IsNullOrEmpty(Convert.ToString(dr_1("REF"))) Then
                        detItem.prod.uMed = TUMedItem.Item5
                    End If

                End If

                Dim dt_novovalor As New DataTable
                Dim var_qfaturada2 As String = String.Empty
                Dim var_vitem2 As String = String.Empty
                Dim var_vprod2 As String = String.Empty
                Dim var_qfaturadaAnt As String = String.Empty
                Dim var_vitemAnt As String = String.Empty
                Dim var_vprodAnt As String = String.Empty
                Dim vContador As Integer = 0
                strSql = "Select DISTINCT QFATURADA, VITEM, VPROD From TEMP_ITEM_FATURA_B "
                strSql += "Where 1 = 1 "
                strSql += "And numnf = '" & objTempItemFaturaB.NUMNF & "' "
                strSql += "And coditem = '" & detItem.prod.cProd & "' "
                strSql += "And LENGTH(ref)=6 "
                strSql += "Order By QFATURADA "
                objAtualizaBancoDados.QUERY_NAME = strSql
                dt_novovalor = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)
                If dt_novovalor.Rows.Count > 0 Then
                    For Each row_item As DataRow In dt_novovalor.Rows
                        var_qfaturada2 = IIf(IsDBNull(row_item.Item("QFATURADA")), "", row_item.Item("QFATURADA"))
                        var_qfaturadaAnt = var_qfaturada2
                        var_vitem2 = IIf(IsDBNull(row_item.Item("VITEM")), "", row_item.Item("VITEM"))
                        var_vitemAnt = var_vitem2
                        var_vprod2 = IIf(IsDBNull(row_item.Item("VPROD")), "", row_item.Item("VPROD"))
                        var_vprodAnt = var_vprod2
                        If var_qfaturada2 <> String.Empty Then
                            Exit For
                        End If
                        vContador = +1
                    Next
                End If
                If var_qfaturada2 <> String.Empty Then
                    If var_qfaturada2 < 0 Then
                        var_qfaturada2 = Replace(var_qfaturada2, "-", "")
                    End If
                    var_qfaturada2 = Replace(var_qfaturada2, ".", ",")
                    detItem.prod.qFaturada = Replace(Replace(Decimal.Parse(var_qfaturada2).ToString("N2"), ".", ""), ",", ".")
                Else
                    detItem.prod.qFaturada = Convert.ToString(dr_1("CLASSE").ToString)
                End If
                If var_vitem2 <> String.Empty Then
                    If var_vitem2 < 0 Then
                        var_vitem2 = Replace(var_vitem2, "-", "")
                    End If
                    detItem.prod.vItem = Replace(var_vitem2, ",", ".")
                Else
                    detItem.prod.vItem = "0.00"
                End If
                If var_vprod2 <> String.Empty Then
                    If var_vprod2 < 0 Then
                        var_vprod2 = Replace(var_vprod2, "-", "")
                    End If
                    var_vprod2 = Replace(var_vprod2, ".", ",")
                    detItem.prod.vProd = Replace(Replace(Decimal.Parse(var_vprod2).ToString("N2"), ".", ""), ",", ".")
                Else
                    detItem.prod.vProd = "0.00"
                End If
                If detItem.prod.cProd = "9070000079" Then
                    detItem.prod.indDevolucao = 1
                End If

                'If objTempItemFaturaB.NUMNF = "1057726" And detItem.prod.cProd = "0302020090" Then
                '    MsgBox("1")
                'End If

                Dim var_valorprod As Decimal = 0
                Dim var_valorprod02 As String()
                var_valorprod = CDec(Replace(detItem.prod.qFaturada, ".", ",")) * CDec(Replace(detItem.prod.vItem, ".", ","))
                var_valorprod02 = Split(var_valorprod, ",")
                var_valorprod = CDec(var_valorprod02(0) & "," & Strings.Left(var_valorprod02(1), 2))
                detItem.prod.vProd = Replace(Replace(Decimal.Parse(var_valorprod).ToString("N2"), ".", ""), ",", ".")
                If (Strings.Left(var_ITEM_NOTA, 4) = "9070") Or (Strings.Left(var_ITEM_NOTA, 4) = "0313") Or (Strings.Left(var_ITEM_NOTA, 4) = "0314") Then
                    ValorTotalItem = ValorTotalItem - Replace(var_valorprod, "-", "")
                Else
                    ValorTotalItem = ValorTotalItem + var_valorprod
                End If

                'If CDec(Replace(detItem.prod.vProd, ".", ",")) <> Decimal.Parse(var_valorprod).ToString("N2") Then
                '    ValorTotalItem = ValorTotalItem - CDec(Replace(detItem.prod.vProd, ".", ","))
                '    var_valorprod = CDec(Replace(detItem.prod.qFaturada, ".", ",")) * CDec(Replace(detItem.prod.vItem, ".", ","))
                '    detItem.prod.vProd = Replace(Replace(Decimal.Parse(var_valorprod).ToString("N2"), ".", ""), ",", ".")
                '    ValorTotalItem = ValorTotalItem + var_valorprod
                'End If
                'If detItem.prod.vProd = "0.00" Then
                '    If (detItem.prod.qFaturada <> "0.00") And (detItem.prod.vItem <> "0.00") Then
                '        var_valorprod = CDec(Replace(detItem.prod.qFaturada, ".", ",")) * CDec(Replace(detItem.prod.vItem, ".", ","))
                '        detItem.prod.vProd = Replace(Replace(Decimal.Parse(var_valorprod).ToString("N2"), ".", ""), ",", ".")
                '        ValorTotalItem = ValorTotalItem + var_valorprod
                '    End If
                'End If
#End Region

#Region "gSCEE - Grupo dos dados do Sistema de Compensação de Energia Elétrica  - Não Consta no XML Enviado"

                If Strings.Left(detItem.prod.cClass, 3) = "560" Then

                    nota.infNF3e.gSCEE = New TNF3eInfNF3eGSCEE()
                    nota.infNF3e.gSCEE.gConsumidor = New TNF3eInfNF3eGSCEEGConsumidor(0) {}
                    nota.infNF3e.gSCEE.gSaldoCred = New TNF3eInfNF3eGSCEEGSaldoCred(0) {}

                    Dim dt_scee As New DataTable
                    Dim var_TPartComp As String = String.Empty
                    Dim var_idAcessGer As String = String.Empty
                    Dim var_vPotInst As String = String.Empty
                    Dim var_tpFonteEnergia As String = String.Empty
                    Dim var_enerAloc As String() = {"0.001"}
                    Dim var_tpPosTar As TPosTarSimples() = {"0"}

                    strSql = "Select "
                    strSql += "'1' As TPartComp, "
                    strSql += "ucc.unid_id As idAcessGer, "
                    strSql += "ucc.potencia as vPotInst, "
                    strSql += "ucc.descricao_ceg_tipos As tpFonteEnergia "
                    strSql += "From unidade_consumidora_ceg ucc "
                    strSql += "Inner Join nf "
                    strSql += "On ucc.livro = nf.livro And ucc.conta = nf.conta "
                    strSql += "Where nf.numnf = '" & objTempItemFaturaB.NUMNF & "' "
                    objAtualizaBancoDados.QUERY_NAME = strSql
                    dt_scee = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)
                    If dt_scee.Rows.Count > 0 Then
                        For Each row_item As DataRow In dt_scee.Rows
                            var_TPartComp = IIf(IsDBNull(row_item.Item("TPartComp")), "1", row_item.Item("TPartComp"))
                            var_idAcessGer = IIf(IsDBNull(row_item.Item("idAcessGer")), "", row_item.Item("idAcessGer"))
                            var_vPotInst = IIf(IsDBNull(row_item.Item("vPotInst")), "0", row_item.Item("vPotInst"))
                            var_tpFonteEnergia = IIf(IsDBNull(row_item.Item("tpFonteEnergia")), "", row_item.Item("tpFonteEnergia"))

                            If (var_tpFonteEnergia = "Hidráulica" Or var_tpFonteEnergia = "Hidraulica") Then
                                var_tpFonteEnergia = "1"
                            ElseIf var_tpFonteEnergia = "Solar" Then
                                var_tpFonteEnergia = "2"
                            ElseIf (var_tpFonteEnergia = "Eólica" Or var_tpFonteEnergia = "Eolica") Then
                                var_tpFonteEnergia = "3"
                            ElseIf (var_tpFonteEnergia = "Térmica" Or var_tpFonteEnergia = "Termica") Then
                                var_tpFonteEnergia = "4"
                            ElseIf (var_tpFonteEnergia = "Híbrida" Or var_tpFonteEnergia = "Hibrida") Then
                                var_tpFonteEnergia = "5"
                            Else
                                var_tpFonteEnergia = "2"
                            End If
                        Next
                    End If

                    'tpPartComp - Tipo de participação no sistema de compensação de energia elétrica
                    '1 - Mini ou microgeração (somente uma UC);
                    '2 - Múltiplas unidades consumidoras (condomínio em área definida);
                    '3 - Autoconsumo remoto;
                    '4 - Geração compartilhada (consórcio ou cooperativa);
                    '5 - Mista (utilizar quando enquadrado em mais de um tipo de participação)
                    If var_TPartComp = "" Then
                        var_TPartComp = "1"
                    End If
                    nota.infNF3e.gSCEE().tpPartComp = var_TPartComp

                    'idAcessGer - Código Único de identificação da unidade geradora
                    'Informar o Código Único adotado pela companhia distribuidora para o ponto de
                    'acesso da unidade geradora cuja energia foi destinada a esta unidade consumidora.
                    'nota.infNF3e.gSCEE().gConsumidor(0).idAcessGer = var_idAcessGer
                    nota.infNF3e.gSCEE().gConsumidor(0) = New TNF3eInfNF3eGSCEEGConsumidor()
                    nota.infNF3e.gSCEE().gSaldoCred(0) = New TNF3eInfNF3eGSCEEGSaldoCred()
                    If var_idAcessGer = "" Then
                        var_idAcessGer = "00"
                    End If
                    nota.infNF3e.gSCEE().gConsumidor(0).idAcessGer = var_idAcessGer

                    'vPotInst - Potência instalada do micro ou minigeraçao em kW
                    '8 posições, sendo 5 inteiras e 3 decimais.
                    If var_vPotInst = "" Then
                        var_vPotInst = "0"
                    End If
                    nota.infNF3e.gSCEE.gConsumidor(0).vPotInst = IIf(Convert.ToString(CDec(var_vPotInst)) = "0", "0.000", Convert.ToString(CDec(var_vPotInst).ToString("N3")).Replace(".", "").Replace(",", "."))

                    'tpFonteEnergia - Tipo da fonte de energia utilizada 
                    '1-Hidráulica,
                    '2-Solar,
                    '3-Eólica,
                    '4-Térmica
                    '5-Híbrida
                    If var_tpFonteEnergia = "" Then
                        var_tpFonteEnergia = "2"
                    End If
                    nota.infNF3e.gSCEE.gConsumidor(0).tpFonteEnergia = var_tpFonteEnergia

                    'enerAloc - Energia alocada
                    'Tipo Decimal com 11 dígitos, sendo 8 inteiros e 3 decimais Quantidade de energia
                    'excedente que é destinado pela unidade geradora a esta unidade consumidora em kWh.
                    nota.infNF3e.gSCEE.gConsumidor(0).enerAloc = var_enerAloc

                    'tpPosTar - Tipo de Posto Tarifário
                    '0 - Único
                    '1 - Ponta
                    '2 - Fora Ponta;
                    '3 - Intermediário
                    nota.infNF3e.gSCEE.gConsumidor(0).tpPosTar = var_tpPosTar

                    'Tipo de Posto Tarifário
                    '0 - Único
                    '1 - Ponta
                    '2 - Fora Ponta;
                    '3 - Intermediário 
                    nota.infNF3e.gSCEE().gSaldoCred(0).tpPosTar = "0"

                    'Saldo Anterior de Créditos em kWh
                    '11 posições, sendo 11 inteiras e 0
                    'decimais ou 15 posições, sendo 11
                    'inteiras e 4 decimais.
                    nota.infNF3e.gSCEE().gSaldoCred(0).vSaldAnt = "00000000000"

                    'Créditos Expirados
                    '11 posições, sendo 11 inteiras e 0
                    'decimais ou 15 posições, sendo 11
                    'inteiras e 4 decimais. 
                    nota.infNF3e.gSCEE().gSaldoCred(0).vCredExpirado = "00000000000"

                    'Saldo Atual de Créditos em kWh
                    '11 posições, sendo 11 inteiras e 0
                    'decimais ou 15 posições, sendo 11
                    'inteiras e 4 decimais.
                    nota.infNF3e.gSCEE().gSaldoCred(0).vSaldAtual = "00000000000"

                    'Créditos a Expirar
                    '11 posições, sendo 11 inteiras e 0
                    'decimais ou 15 posições, sendo 11
                    'inteiras e 4 decimais.
                    'Próxima parcela do saldo atualizado de
                    'créditos a expirar
                    nota.infNF3e.gSCEE().gSaldoCred(0).vCredExpirar = "00000000000"

                    'Ciclo de faturamento em que ocorrerá a expiração(AAAAMM)
                    nota.infNF3e.gSCEE().gSaldoCred(0).CompetExpirar = "190001"

                End If

#Region "gConsumidor - Participação no SCEE como Consumidor  - Não Consta no XML Enviado"

#End Region

#Region "imposto - Tributos incidentes no Produto ou Serviço"


#Region "ICMS00 - Prestação sujeito à tributação normal Do ICMS - Tributada integralmente"

                'classificação Tributária do Serviço 
                '00 - Tributação normal ICMS
                ICMS00.CST = TNF3eInfNF3eNFdetDetDetItemImpostoICMS00CST.Item00

                'Valor da BC do ICMS 
                '15 posições, sendo 13 inteiras e 2 decimais.
                If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.BASEICMS)) Then
                    ICMS00.vBC = IIf(Convert.ToString(objTempFaturaNF3EB.BASEICMS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.BASEICMS.ToString("N2")).Replace(".", "").Replace(",", "."))
                Else
                    ICMS00.vBC = "0.00"
                End If

                'Alíquota do ICMS 
                '5 posições, sendo 3 inteiras e 2 decimais.
                If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.ALIQICMS)) Then
                    ICMS00.pICMS = IIf(Convert.ToString(objTempFaturaNF3EB.ALIQICMS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.ALIQICMS.ToString("N2")).Replace(".", "").Replace(",", "."))
                Else
                    ICMS00.pICMS = "0.00"
                End If

                'Valor do ICMS 
                '15 posições, sendo 13 inteiras e 2 decimais.
                If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.VLRICMS)) Then
                    ICMS00.vICMS = IIf(Convert.ToString(objTempFaturaNF3EB.VLRICMS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.VLRICMS.ToString("N2")).Replace(".", "").Replace(",", "."))
                Else
                    ICMS00.vICMS = "0.00"
                End If

                'Percentual de ICMS relativo ao Fundo de Combate à Pobreza (FCP).
                '5 posições, sendo 3 inteiras e 2 decimais.
                ICMS00.pFCP = "0.00"

                'Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).
                '15 posições, sendo 13 inteiras e 2 decimais.
                ICMS00.vFCP = "0.00"



#End Region

#Region "ICMS10 - Tributada e com cobrança Do ICMS por substituição tributária - Não Consta no XML Enviado"

                'CST - classificação Tributária do Serviço
                '10 - Tributada e com cobrança do ICMS por substituição tributária

                'vBCST - Valor da BC do ICMS ST 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'pICMSST - Alíquota do ICMS ST 
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vICMSST - Valor do ICMS ST retido 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'pFCPST - Percentual de ICMS relativo ao Fundo de Combate à Pobreza (FCP).
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vFCPST - Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).
                '15 posições, sendo 13 inteiras e 2 decimais.

#End Region

#Region "ICMS20 - Prestação sujeito à tributação com redução de BC Do ICMS - Não Consta no XML Enviado"


                'CST - Classificação Tributária do serviço 
                'Tributação com BC reduzida do ICMS

                'pRedBC - Percentual de redução da BC 
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vBC - Valor da BC do ICMS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'pICMS - Alíquota do ICMS 
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vICMS - Valor do ICMS
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vICMSDeson - Valor do ICMS de desoneração 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'cBenef - Código de Benefício Fiscal na UF aplicado ao item
                'Código de Benefício Fiscal utilizado pela UF, aplicado ao item.

                'pFCP - Percentual de ICMS relativo ao Fundo de Combate à Pobreza (FCP).
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vFCP - Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).
                '15 posições, sendo 13 inteiras e 2 decimais.




#End Region

#Region "ICMS40 - Tributação Isenta, Não tributada - Não Consta no XML Enviado"

                'CST -  Classificação Tributária do serviço 
                '40 - Isenta;
                '41 - Não tributada;

                'vICMSDeson - Valor do ICMS de desoneração
                '15 posições, sendo 13 inteiras e 2 decimais.

                'cBenef - Código de Benefício Fiscal na UF aplicado ao item
                'Código de Benefício Fiscal utilizado pela UF, aplicado ao item.

#End Region

#Region "ICMS51 - Tributação com Diferimento CG - A exigência Do preenchimento das informações Do ICMS diferido fica a critério de cada UF - Não Consta no XML Enviado"

                'CST - Classificação Tributária do serviço 
                'Tributação pelo ICMS 51 - Diferimento

                'vICMSDeson - Valor do ICMS de desoneração 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'cBenef - Código de Benefício Fiscal na UF aplicado ao item
                'Código de Benefício Fiscal utilizado pela UF, aplicado ao item.



#End Region

#Region "ICMS90 - ICMS Outros CG - Será usado no caso da subvenção ou para NF3e de ajuste quando For o caso. - Não Consta no XML Enviado"

                'CST - Classificação Tributária do Serviço 
                '90 - ICMS outros

                'vBC - Valor da BC do ICMS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'pICMS - Alíquota do ICMS 
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vICMS - Valor do ICMS 
                '15 posições, sendo 13 inteiras e 2 decimais.



#End Region

#Region "PIS - Dados Do PIS"

                'classificação Tributária do PIS 
                '01 – Tributável com alíquota básica
                '02 – Tributável com alíquota diferenciada
                '06 – Tributável com alíquota erro
                '07 – Operação isenta de contribuição
                '08 – Operação sem incidência da contribuição
                '09 – Operação com suspensão da contribuição
                '49 – Outras operações de saída

                If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.classificacao.triutaria.pis"))) Then

                    If Convert.ToString(GetConfig("nf3e.classificacao.triutaria.pis")) = "01" Then
                        detItem.imposto.PIS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoPISCST.Item01
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.pis")) = "02" Then
                        detItem.imposto.PIS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoPISCST.Item02
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.pis")) = "06" Then
                        detItem.imposto.PIS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoPISCST.Item06
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.pis")) = "07" Then
                        detItem.imposto.PIS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoPISCST.Item07
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.pis")) = "08" Then
                        detItem.imposto.PIS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoPISCST.Item08
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.pis")) = "09" Then
                        detItem.imposto.PIS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoPISCST.Item09
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.pis")) = "49" Then
                        detItem.imposto.PIS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoPISCST.Item49
                    End If

                End If

                If nota.infNF3e.NFdet(iNFdet).det(iDet).nItem = 1 Then

                    'Valor da BC do PIS 
                    '15 posições, sendo 13 inteiras e 2 decimais.
                    If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.BASEPIS)) And Convert.ToString(dr_1("REF")) <> 0 Then
                        detItem.imposto.PIS.vBC = IIf(Convert.ToString(objTempFaturaNF3EB.BASEPIS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.BASEPIS.ToString("N2")).Replace(".", "").Replace(",", "."))
                    Else
                        detItem.imposto.PIS.vBC = "0.00"
                    End If

                    'Alíquota do PIS (em percentual)
                    '5 posições, sendo 3 inteiras e 2 decimais ou 7 posições, sendo 3 inteiras e 4 decimais
                    If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.ALIQPIS)) And Convert.ToString(dr_1("REF")) <> 0 Then
                        detItem.imposto.PIS.pPIS = IIf(Convert.ToString(objTempFaturaNF3EB.ALIQPIS) = "0", "0.6500", Convert.ToString(objTempFaturaNF3EB.ALIQPIS.ToString("N2")).Replace(".", "").Replace(",", "."))
                    Else
                        detItem.imposto.PIS.pPIS = "0.0000"
                    End If

                    'Valor do PIS 
                    '15 posições, sendo 13 inteiras e 2 decimais.
                    If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.VLRPIS)) And Convert.ToString(dr_1("REF")) <> 0 Then
                        detItem.imposto.PIS.vPIS = IIf(Convert.ToString(objTempFaturaNF3EB.VLRPIS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.VLRPIS.ToString("N2")).Replace(".", "").Replace(",", "."))
                    Else
                        detItem.imposto.PIS.vPIS = "0.00"
                    End If

                Else
                    detItem.imposto.PIS.vBC = "0.00"
                    detItem.imposto.PIS.pPIS = "0.65"
                    detItem.imposto.PIS.vPIS = "0.00"
                End If

#End Region

#Region "PISEfet - Dados Do PIS Efetivo"

                If nota.infNF3e.NFdet(iNFdet).det(iDet).nItem = 1 Then

                    detItem.imposto.PISEfet.vBCPISEfet = "0.00"
                    detItem.imposto.PISEfet.pPISEfet = "0.65"
                    detItem.imposto.PISEfet.vPISEfet = "0.00"

                    ''Valor da BC do PIS efetivo 
                    ''15 posições, sendo 13 inteiras e 2 decimais.
                    'If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.BASEPIS)) And Convert.ToString(dr_1("REF")) <> 0 Then
                    '    detItem.imposto.PISEfet.vBCPISEfet = IIf(Convert.ToString(objTempFaturaNF3EB.BASEPIS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.BASEPIS.ToString("N2")).Replace(".", "").Replace(",", "."))
                    'Else
                    '    detItem.imposto.PISEfet.vBCPISEfet = "0.00"
                    'End If
                    '
                    '
                    ''Alíquota efetiva do PIS (em percentual) 
                    ''5 posições, sendo 3 inteiras e 2 decimais ou 7 posições, sendo 3 inteiras e 4 decimais
                    'If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.ALIQPIS)) And Convert.ToString(dr_1("REF")) <> 0 Then
                    '    detItem.imposto.PISEfet.pPISEfet = IIf(Convert.ToString(objTempFaturaNF3EB.ALIQPIS) = "0", "0.6500", Convert.ToString(objTempFaturaNF3EB.ALIQPIS.ToString("N2")).Replace(".", "").Replace(",", "."))
                    'Else
                    '    detItem.imposto.PISEfet.pPISEfet = "0.0000"
                    'End If
                    '
                    ''Valor efetivo do PIS 
                    ''15 posições, sendo 13 inteiras e 2 decimais.
                    'If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.VLRPIS)) And Convert.ToString(dr_1("REF")) <> 0 Then
                    '    detItem.imposto.PISEfet.vPISEfet = IIf(Convert.ToString(objTempFaturaNF3EB.VLRPIS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.VLRPIS.ToString("N2")).Replace(".", "").Replace(",", "."))
                    'Else
                    '    detItem.imposto.PISEfet.vPISEfet = "0.00"
                    'End If

                Else
                    detItem.imposto.PISEfet.vBCPISEfet = "0.00"
                    detItem.imposto.PISEfet.pPISEfet = "0.65"
                    detItem.imposto.PISEfet.vPISEfet = "0.00"
                End If


#End Region

#Region "COFINS - Dados Do COFINS"

                'classificação Tributária do COFINS
                '01 – Tributável com alíquota básica
                '02 – Tributável com alíquota
                'diferenciada
                '06 – Tributável com alíquota erro
                '07 – Operação isenta de contribuição
                '08 – Operação sem incidência da
                'contribuição
                '09 – Operação com suspensão da
                'contribuição
                '49 – Outras operações de saída
                If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.classificacao.triutaria.cofins"))) Then

                    If Convert.ToString(GetConfig("nf3e.classificacao.triutaria.cofins")) = "01" Then
                        detItem.imposto.COFINS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoCOFINSCST.Item01
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.cofins")) = "02" Then
                        detItem.imposto.COFINS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoCOFINSCST.Item02
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.cofins")) = "06" Then
                        detItem.imposto.COFINS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoCOFINSCST.Item06
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.cofins")) = "07" Then
                        detItem.imposto.COFINS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoCOFINSCST.Item07
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.cofins")) = "08" Then
                        detItem.imposto.COFINS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoCOFINSCST.Item08
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.cofins")) = "09" Then
                        detItem.imposto.COFINS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoCOFINSCST.Item09
                    ElseIf Convert.ToString(GetConfig("nf3e.classificacao.triutaria.cofins")) = "49" Then
                        detItem.imposto.COFINS.CST = TNF3eInfNF3eNFdetDetDetItemImpostoCOFINSCST.Item49
                    End If

                End If

                If nota.infNF3e.NFdet(iNFdet).det(iDet).nItem = 1 Then

                    detItem.imposto.COFINS.vBC = "0.00"
                    detItem.imposto.COFINS.pCOFINS = "3.0000"
                    detItem.imposto.COFINS.vCOFINS = "0.00"

                    ''Valor da BC do COFINS 
                    ''15 posições, sendo 13 inteiras e 2 decimais.
                    'If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.BASECOFINS)) And Convert.ToString(dr_1("REF")) <> 0 Then
                    '    detItem.imposto.COFINS.vBC = IIf(Convert.ToString(objTempFaturaNF3EB.BASECOFINS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.BASECOFINS.ToString("N2")).Replace(".", "").Replace(",", "."))
                    'Else
                    '    detItem.imposto.COFINS.vBC = "0.00"
                    'End If
                    '
                    '
                    ''Alíquota do COFINS (em percentual) 
                    ''5 posições, sendo 3 inteiras e 2 decimais ou 7 posições, sendo 3 inteiras e 4 decimais
                    'If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.ALIQCOFINS)) And Convert.ToString(dr_1("REF")) <> 0 Then
                    '    detItem.imposto.COFINS.pCOFINS = IIf(Convert.ToString(objTempFaturaNF3EB.ALIQCOFINS) = "0", "3.0000", Convert.ToString(objTempFaturaNF3EB.ALIQCOFINS.ToString("N2")).Replace(".", "").Replace(",", "."))
                    'Else
                    '    detItem.imposto.COFINS.pCOFINS = "0.0000"
                    'End If
                    '
                    ''Valor do COFINS 
                    '' 15 posições, sendo 13 inteiras e 2 decimais.
                    'If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.VLRCOFINS)) And Convert.ToString(dr_1("REF")) <> 0 Then
                    '    detItem.imposto.COFINS.vCOFINS = IIf(Convert.ToString(objTempFaturaNF3EB.VLRCOFINS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.VLRCOFINS.ToString("N2")).Replace(".", "").Replace(",", "."))
                    'Else
                    '    detItem.imposto.COFINS.vCOFINS = "0.00"
                    'End If

                Else
                    detItem.imposto.COFINS.vBC = "0.00"
                    detItem.imposto.COFINS.pCOFINS = "3.0000"
                    detItem.imposto.COFINS.vCOFINS = "0.00"
                End If

#End Region

#Region "COFINSEfet - Dados Do COFINS Efetivo"

                If nota.infNF3e.NFdet(iNFdet).det(iDet).nItem = 1 Then

                    detItem.imposto.COFINSEfet.vBCCOFINSEfet = "0.00"
                    detItem.imposto.COFINSEfet.pCOFINSEfet = "3.0000"
                    detItem.imposto.COFINSEfet.vCOFINSEfet = "0.00"

                    ''Valor da BC do COFINS efetivo 
                    ''15 posições, sendo 13 inteiras e 2 decimais.
                    'If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.BASECOFINS)) And Convert.ToString(dr_1("REF")) <> 0 Then
                    '    detItem.imposto.COFINSEfet.vBCCOFINSEfet = IIf(Convert.ToString(objTempFaturaNF3EB.BASECOFINS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.BASECOFINS.ToString("N2")).Replace(".", "").Replace(",", "."))
                    'Else
                    '    detItem.imposto.COFINSEfet.vBCCOFINSEfet = "0.00"
                    'End If
                    '
                    '
                    ''Alíquota Efetiva do COFINS (em percentual)
                    ''5 posições, sendo 3 inteiras e 2 decimais ou 7 posições, sendo 3 inteiras e 4 decimais
                    'If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.ALIQCOFINS)) And Convert.ToString(dr_1("REF")) <> 0 Then
                    '    detItem.imposto.COFINSEfet.pCOFINSEfet = IIf(Convert.ToString(objTempFaturaNF3EB.ALIQCOFINS) = "0", "3.0000", Convert.ToString(objTempFaturaNF3EB.ALIQCOFINS.ToString("N2")).Replace(".", "").Replace(",", "."))
                    'Else
                    '    detItem.imposto.COFINSEfet.pCOFINSEfet = "0.00"
                    'End If
                    '
                    ''Valor Efetivo do COFINS 
                    ''15 posições, sendo 13 inteiras e 2  decimais.
                    'If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.VLRCOFINS)) And Convert.ToString(dr_1("REF")) <> 0 Then
                    '    detItem.imposto.COFINSEfet.vCOFINSEfet = IIf(Convert.ToString(objTempFaturaNF3EB.VLRCOFINS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.VLRCOFINS.ToString("N2")).Replace(".", "").Replace(",", "."))
                    'Else
                    '    detItem.imposto.COFINSEfet.vCOFINSEfet = "0.00"
                    'End If

                Else
                    detItem.imposto.COFINSEfet.vBCCOFINSEfet = "0.00"
                    detItem.imposto.COFINSEfet.pCOFINSEfet = "3.0000"
                    detItem.imposto.COFINSEfet.vCOFINSEfet = "0.00"
                End If

#End Region

#Region "retTrib - Grupo de informações de retenção de tributos federais"

                'Valor do PIS retido 
                '15 posições, sendo 13 inteiras e 2 decimais.
                detItem.imposto.retTrib.vRetPIS = "0.00"

                'Valor do COFNS retido 
                '15 posições, sendo 13 inteiras e 2  decimais.
                detItem.imposto.retTrib.vRetCofins = "0.00"

                'Valor da CSLL retida 
                '15 posições, sendo 13 inteiras e 2 decimais.
                detItem.imposto.retTrib.vRetCSLL = "0.00"

                'Base de cálculo do IRRF 
                '15 posições, sendo 13 inteiras e 2 decimais.
                detItem.imposto.retTrib.vBCIRRF = "0.00"

                'Valor do IRRF retido 
                '15 posições, sendo 13 inteiras e 2 decimais.
                detItem.imposto.retTrib.vIRRF = "0.00"

#End Region

#Region "gProcRef - Grupo Processo referenciado - Não Consta no XML Enviado"

                'vItem - Valor unitário do item 
                '15 posições, sendo 13 inteiras e 2 decimais ou 23 posições, sendo 13 inteiras e 10 decimais.
                'Informar o valor sem a influência da decisão judicial / administrativa.

                'qFaturada - Quantidade Faturada 
                '11 posições, sendo 11 inteiras e 0 decimais ou 15 posições, sendo 11
                'inteiras e 4 decimais Informar a quantidade de comercialização do produto. 

                'vProd - Valor total do item
                '15 posições, sendo 13 inteiras e 2 decimais ou 23 posições, sendo 13 inteiras e 10 decimais.

                'indDevolucao - Indicador de devolução do valor do item 
                '1 – Devolução do valor do item

                'vBC - Valor da BC do ICMS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'pICMS - Alíquota do ICMS 
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vICMS - Valor do ICMS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'pFCP - Percentual de ICMS relativo ao Fundo de Combate à Pobreza (FCP).
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vFCP - Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vBCST - Valor da BC do ICMS ST 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'pICMSST - Alíquota do ICMS ST 
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vICMSST - Valor do ICMS ST retido 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'pFCPST - Percentual de ICMS relativo ao Fundo de
                'Combate à Pobreza (FCP).
                '5 posições, sendo 3 inteiras e 2 decimais.

                'vFCPST - Valor do ICMS relativo ao Fundo de Combate à Pobreza (FCP).
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vPIS - Valor do PIS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vPISEfet - Valor efetivo do PIS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vCOFINS - Valor do COFINS 
                '15 posições, sendo 13 inteiras e 2 decimais.

                'vCOFINSEfet - Valor Efetivo do COFINS 
                '15 posições, sendo 13 inteiras e 2 decimais.



#End Region

#Region "gProc - Grupo identificador Do Processo - Não Consta no XML Enviado"

                'tpProc - Tipo de Processo 
                '0 - SEFAZ;
                '1 - Justiça Federal;
                '2 - Justiça Estadual

                'nProcesso - Número do Processo 


#End Region

#Region "gContab - Grupo de Informações Contábeis - Não Consta no XML Enviado"

                'cContab - Número da Conta Contábil do lançamento 


                'xContab - Descrição da conta contábil 


                'vContab - Valor do lançamento na conta contábil 
                '15 posições, sendo 13 inteiras e 2 decimais. Informar o valor do lançamento contábil
                'referente a cada conta a débito e a crédito.


                'tpLanc - Tipo de lançamento contábil 
                'Informar o tipo do lançamento contábil referente a esta conta (D/C).


                'infAdProd - Informações adicionais do produto (norma referenciada, informações complementares, etc)



#End Region


#End Region

                detItem.imposto.Item = ICMS00

                nota.infNF3e.NFdet(iNFdet).det(iDet).Item = detItem

                iDet = iDet + 1

            Next dr_1

#End Region

#End Region

#Region "total - Dados dos totais da NF3e"

            'Valor Total dos produtos e serviços 
            '15 posições, sendo 13 inteiras e 2 decimais.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.VALORTOT)) Then
                'nota.infNF3e.total.vProd = IIf(Convert.ToString(objTempFaturaNF3EB.VALORTOT) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.VALORTOT.ToString("N2")).Replace(".", "").Replace(",", "."))
                nota.infNF3e.total.vProd = Convert.ToString(ValorTotalItem.ToString("N2")).Replace(".", "").Replace(",", ".")
            Else
                nota.infNF3e.total.vProd = "0.00"
            End If

#Region "ICMSTot - Totais referentes ao ICMS"

            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.BASEICMS)) Then
                nota.infNF3e.total.ICMSTot.vBC = IIf(Convert.ToString(objTempFaturaNF3EB.BASEICMS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.BASEICMS.ToString("N2")).Replace(".", "").Replace(",", "."))
            Else
                nota.infNF3e.total.ICMSTot.vBC = "0.00"
            End If

            'Valor Total do ICMS 
            '15 posições, sendo 13 inteiras e 2 decimais.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.VLRICMS)) Then
                nota.infNF3e.total.ICMSTot.vICMS = IIf(Convert.ToString(objTempFaturaNF3EB.VLRICMS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.VLRICMS.ToString("N2")).Replace(".", "").Replace(",", "."))
            Else
                nota.infNF3e.total.ICMSTot.vICMS = "0.00"
            End If

            ' Valor Total do ICMS desonerado 
            '15 posições, sendo 13 inteiras e 2 decimais.
            nota.infNF3e.total.ICMSTot.vICMSDeson = "0.00"

            'Valor Total do FCP (Fundo de Combate à Pobreza).
            '15 posições, sendo 13 inteiras e 2 decimais.
            nota.infNF3e.total.ICMSTot.vFCP = "0.00"

            'BC do ICMS ST 
            '15 posições, sendo 13 inteiras e 2 decimais.
            nota.infNF3e.total.ICMSTot.vBCST = "0.00"

            'Valor Total do ICMS ST 
            '15 posições, sendo 13 inteiras e 2 decimais.
            nota.infNF3e.total.ICMSTot.vST = "0.00"

            'Valor Total do FCP (Fundo de Combate à Pobreza) retido por substituição tributária.
            '15 posições, sendo 13 inteiras e 2 decimais.
            nota.infNF3e.total.ICMSTot.vFCPST = "0.00"

#End Region

#Region "vRetTribTot - Total da retenção de tributos federais"

            nota.infNF3e.total.vRetTribTot.vRetPIS = "0.00"
            nota.infNF3e.total.vRetTribTot.vRetCofins = "0.00"
            nota.infNF3e.total.vRetTribTot.vRetCSLL = "0.00"
            nota.infNF3e.total.vRetTribTot.vIRRF = "0.00"
            nota.infNF3e.total.vCOFINS = "0.00"
            nota.infNF3e.total.vCOFINSEfet = "0.00"
            nota.infNF3e.total.vPIS = "0.00"
            nota.infNF3e.total.vPISEfet = "0.00"

            ''Valor do PIS retido 
            ''15 posições, sendo 13 inteiras e 2 decimais.
            'If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.RET_PIS)) Then
            '    nota.infNF3e.total.vRetTribTot.vRetPIS = IIf(Convert.ToString(objTempFaturaNF3EB.RET_PIS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.RET_PIS.ToString("N2")).Replace(".", "").Replace(",", "."))
            'Else
            '    nota.infNF3e.total.vRetTribTot.vRetPIS = "0.00"
            'End If

            ''Valor do COFNS retido 
            ''15 posições, sendo 13 inteiras e 2 decimais.
            'If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.RET_COFINS)) Then
            '    nota.infNF3e.total.vRetTribTot.vRetCofins = IIf(Convert.ToString(objTempFaturaNF3EB.RET_COFINS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.RET_COFINS.ToString("N2")).Replace(".", "").Replace(",", "."))
            'Else
            '    nota.infNF3e.total.vRetTribTot.vRetCofins = "0.00"
            'End If
            '
            ''Valor da CSLL retida 
            ''15 posições, sendo 13 inteiras e 2 decimais.
            'If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.RET_CSLL)) Then
            '    nota.infNF3e.total.vRetTribTot.vRetCSLL = IIf(Convert.ToString(objTempFaturaNF3EB.RET_CSLL) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.RET_CSLL.ToString("N2")).Replace(".", "").Replace(",", "."))
            'Else
            '    nota.infNF3e.total.vRetTribTot.vRetCSLL = "0.00"
            'End If
            '
            ''Valor do IRRF retido 
            ''15 posições, sendo 13 inteiras e 2 decimais.
            'If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.RET_IRPJ)) Then
            '    nota.infNF3e.total.vRetTribTot.vIRRF = IIf(Convert.ToString(objTempFaturaNF3EB.RET_IRPJ) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.RET_IRPJ.ToString("N2")).Replace(".", "").Replace(",", "."))
            'Else
            '    nota.infNF3e.total.vRetTribTot.vIRRF = "0.00"
            'End If
            '
            ''Valor do COFINS 
            ''15 posições, sendo 13 inteiras e 2 decimais.
            'If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.VLRCOFINS)) Then
            '    nota.infNF3e.total.vCOFINS = "0.00"
            '    'nota.infNF3e.total.vCOFINS = IIf(Convert.ToString(objTempFaturaNF3EB.VLRCOFINS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.VLRCOFINS.ToString("N2")).Replace(".", "").Replace(",", "."))
            'Else
            '    nota.infNF3e.total.vCOFINS = "0.00"
            'End If
            '
            ''Total do Valor Efetivo do COFINS 
            ''15 posições, sendo 13 inteiras e 2 decimais.
            'If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.VLRCOFINS)) Then
            '    nota.infNF3e.total.vCOFINSEfet = "0.00"
            '    'nota.infNF3e.total.vCOFINSEfet = IIf(Convert.ToString(objTempFaturaNF3EB.VLRCOFINS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.VLRCOFINS.ToString("N2")).Replace(".", "").Replace(",", "."))
            'Else
            '    nota.infNF3e.total.vCOFINSEfet = "0.00"
            'End If
            '
            'Valor do PIS 
            '15 posições, sendo 13 inteiras e 2 decimais.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.VLRPIS)) Then
                nota.infNF3e.total.vPIS = IIf(Convert.ToString(objTempFaturaNF3EB.VLRPIS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.VLRPIS.ToString("N2")).Replace(".", "").Replace(",", "."))
            Else
                nota.infNF3e.total.vPIS = "0.00"
            End If

            'Total do Valor Efetivo do PIS 
            '15 posições, sendo 13 inteiras e 2 decimais.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.VLRPIS)) Then
                nota.infNF3e.total.vPISEfet = "0.00"
                'nota.infNF3e.total.vPISEfet = IIf(Convert.ToString(objTempFaturaNF3EB.VLRPIS) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.VLRPIS.ToString("N2")).Replace(".", "").Replace(",", "."))
            Else
                nota.infNF3e.total.vPISEfet = "0.00"
            End If

            'ValorTotalItem += objTempFaturaNF3EB.VLRPIS + objTempFaturaNF3EB.VLRCOFINS

            'Valor Total da NF-e 
            '15 posições, sendo 13 inteiras e 2 decimais.
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.VALORTOT)) Then
                'nota.infNF3e.total.vNF = IIf(Convert.ToString(objTempFaturaNF3EB.VALORTOT) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.VALORTOT.ToString("N2")).Replace(".", "").Replace(",", "."))
                'nota.infNF3e.total.vNF = Convert.ToString(ValorTotalItem.ToString("N2")).Replace(".", "").Replace(",", ".")
                nota.infNF3e.total.vNF = Convert.ToString(ValorTotalItem.ToString("N2")).Replace(".", "").Replace(",", ".")
            Else
                nota.infNF3e.total.vNF = "0.00"
            End If

#End Region

#End Region

#Region "gFat - Grupo de informações de controle da Fatura"

            'Ano e mês referência do faturamento (AAAAMM)
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.MESANOREF)) Then
                nota.infNF3e.gFat.CompetFat = Convert.ToString(objTempFaturaNF3EB.MESANOREF)
            End If

            'Data de vencimento da fatura 
            'Formato AAAA-MM-DD
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.DATAVENC)) Then
                nota.infNF3e.gFat.dVencFat = objTempFaturaNF3EB.DATAVENC.ToString("yyyy-MM-dd")
            End If

            'Não Consta no XML Enviado

            'dApresFat - Data de apresentação da fatura 
            'Formato AAAA-MM-DD Não obrigatória, conforme item 2.3.2 da
            'Seção 11.1 do Módulo 11 do PRODIST.

            'Data prevista próxima leitura
            'Formato AAAA-MM-DD
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.DATAPROXLEIT)) Then
                nota.infNF3e.gFat.dProxLeitura = objTempFaturaNF3EB.DATAPROXLEIT.ToString("yyyy-MM-dd")
            End If

            'Número da Fatura 
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.NUMNF)) Then
                nota.infNF3e.gFat.nFat = Convert.ToString(objTempFaturaNF3EB.NUMNF)
            End If

            'Linha digitável do código de barras 
            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.CODBARRA)) Then
                nota.infNF3e.gFat.codBarras = Convert.ToString(objTempFaturaNF3EB.CODBARRA)
            End If

            'Não sei de onde pegar - Deixei vazio
            'Código de autorização débito em conta 
            If Not String.IsNullOrEmpty(Convert.ToString("0")) Then
                nota.infNF3e.gFat.ItemsElementName = ItemsChoiceType.codDebAuto
                nota.infNF3e.gFat.Item = "0"
            Else
                nota.infNF3e.gFat.ItemsElementName = "."
                nota.infNF3e.gFat.Item = "0"
            End If

            'Não Consta no XML Enviado

            'codBanco - Número do banco para débito em conta 

            'codAgencia - Número da agência bancária para débito em conta

#End Region

#Region "enderCorresp - Endereço de entrega da fatura. - Informar se diferente Do endereço Do destinatário - Não Consta no XML Enviado"


            'xLgr - Logradouro 

            'nro - Número 

            'xCpl - Complemento 

            'xBairro - Bairro 

            'cMun - Código do município (utilizar a tabela do IBGE)

            'xMun - Nome do município 

            'CEP - CEP 
            'Informar zeros não significativos

            'UF - Sigla da UF 

            'fone - Telefone 

            'email - Endereço de E-mail

#End Region

#Region "gPIX - Grupo de informações Do PIX - Não Consta no XML Enviado"

            'urlQRCodePIX - URL do QRCode do PIX que será apresentado na fatura

#End Region

#Region "gANEEL - Grupo de informações da Agência Nacional de Energia Eletrica"

#Region "gHistFat -Histórico de Faturamento"

            nota.infNF3e.gANEEL(0) = New TANEELGHistFat()

            'Nome da grandeza faturada para exibição 
            'Exemplo: Consumo Meses Anteriores
            nota.infNF3e.gANEEL(0).xGrandFat = "Consumo Meses Anteriores"

#Region "gGrandFat - Grandezas faturadas"

            strSql = "Select * From CONSUMOS "
            strSql += "Where zona = '" & objTempFaturaNF3EB.ZONA & "' "
            strSql += "And livro = '" & objTempFaturaNF3EB.LIVRO & "' "
            strSql += "And conta = '" & objTempFaturaNF3EB.CONTA & "' "
            objAtualizaBancoDados.QUERY_NAME = strSql
            dtCons = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)
            If dtCons.Rows.Count > 0 Then
                regExiste = True
            Else
                regExiste = False
            End If

            nota.infNF3e.gANEEL(0).gGrandFat = New TANEELGHistFatGGrandFat(12) {}

            objConsumos.ZONA = objTempFaturaNF3EB.ZONA
            objConsumos.LIVRO = objTempFaturaNF3EB.LIVRO
            objConsumos.CONTA = objTempFaturaNF3EB.CONTA

            If regExiste = False Then
                For j As Integer = 0 To 12
                    nota.infNF3e.gANEEL(0).gGrandFat(j) = New TANEELGHistFatGGrandFat()
                    nota.infNF3e.gANEEL(0).gGrandFat(j).CompetFat = "190001"
                    nota.infNF3e.gANEEL(0).gGrandFat(j).vFat = "0.00"
                    nota.infNF3e.gANEEL(0).gGrandFat(j).uMed = TUMed.Item2
                    nota.infNF3e.gANEEL(0).gGrandFat(j).qtdDias = "00"
                Next
            Else
                vlist = repositorioConsumos.Select_4(objConsumos)

                For Each objConsumosFor As entidadeConsumos In vlist

                    For i As Integer = 0 To 12

                        nota.infNF3e.gANEEL(0).gGrandFat(i) = New TANEELGHistFatGGrandFat()

                        If i = 0 Then

                            'Ano e mês referência do faturamento (AAAAMM)
                            'If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.MESANO0)) Then
                            If Convert.ToString(objConsumosFor.MESANO0.ToString.Trim) <> "" Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objConsumosFor.MESANO0.Substring(3, 4) + objConsumosFor.MESANO0.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "190001"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.VALOR0)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objConsumosFor.VALOR0) = "0", "0.00", Convert.ToString(objConsumosFor.VALOR0.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.DIAS0)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objConsumosFor.DIAS0 <= 9, "0" + Convert.ToString(objConsumosFor.DIAS0), Convert.ToString(objConsumosFor.DIAS0))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "00"
                            End If


                        ElseIf i = 1 Then


                            'Ano e mês referência do faturamento (AAAAMM)
                            'If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.MESANO1)) Then
                            If Convert.ToString(objConsumosFor.MESANO1.ToString.Trim) <> "" Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objConsumosFor.MESANO1.Substring(3, 4) + objConsumosFor.MESANO1.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "190001"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.VALOR1)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objConsumosFor.VALOR1) = "0", "0.00", Convert.ToString(objConsumosFor.VALOR1.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.DIAS1)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objConsumosFor.DIAS1 <= 9, "0" + Convert.ToString(objConsumosFor.DIAS1), Convert.ToString(objConsumosFor.DIAS1))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "00"
                            End If

                        ElseIf i = 2 Then


                            'Ano e mês referência do faturamento (AAAAMM)
                            'If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.MESANO2)) Then
                            If Convert.ToString(objConsumosFor.MESANO2.ToString.Trim) <> "" Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objConsumosFor.MESANO2.Substring(3, 4) + objConsumosFor.MESANO2.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "190001"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.VALOR2)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objConsumosFor.VALOR2) = "0", "0.00", Convert.ToString(objConsumosFor.VALOR2.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.DIAS2)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objConsumosFor.DIAS2 <= 9, "0" + Convert.ToString(objConsumosFor.DIAS2), Convert.ToString(objConsumosFor.DIAS2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "00"
                            End If

                        ElseIf i = 3 Then


                            'Ano e mês referência do faturamento (AAAAMM)
                            'If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.MESANO3)) Then
                            If Convert.ToString(objConsumosFor.MESANO3.ToString.Trim) <> "" Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objConsumosFor.MESANO3.Substring(3, 4) + objConsumosFor.MESANO3.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "190001"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.VALOR3)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objConsumosFor.VALOR3) = "0", "0.00", Convert.ToString(objConsumosFor.VALOR3.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.DIAS3)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objConsumosFor.DIAS3 <= 9, "0" + Convert.ToString(objConsumosFor.DIAS3), Convert.ToString(objConsumosFor.DIAS3))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "00"
                            End If

                        ElseIf i = 4 Then


                            'Ano e mês referência do faturamento (AAAAMM)
                            'If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.MESANO4)) Then
                            If Convert.ToString(objConsumosFor.MESANO4.ToString.Trim) <> "" Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objConsumosFor.MESANO4.Substring(3, 4) + objConsumosFor.MESANO4.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "190001"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.VALOR4)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objConsumosFor.VALOR4) = "0", "0.00", Convert.ToString(objConsumosFor.VALOR4.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.DIAS4)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objConsumosFor.DIAS4 <= 9, "0" + Convert.ToString(objConsumosFor.DIAS4), Convert.ToString(objConsumosFor.DIAS4))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "00"
                            End If

                        ElseIf i = 5 Then


                            'Ano e mês referência do faturamento (AAAAMM)
                            'If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.MESANO5)) Then
                            If Convert.ToString(objConsumosFor.MESANO5.ToString.Trim) <> "" Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objConsumosFor.MESANO5.Substring(3, 4) + objConsumosFor.MESANO5.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "190001"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.VALOR5)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objConsumosFor.VALOR5) = "0", "0.00", Convert.ToString(objConsumosFor.VALOR5.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.DIAS5)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objConsumosFor.DIAS5 <= 9, "0" + Convert.ToString(objConsumosFor.DIAS5), Convert.ToString(objConsumosFor.DIAS5))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "00"
                            End If

                        ElseIf i = 6 Then


                            'Ano e mês referência do faturamento (AAAAMM)
                            'If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.MESANO6)) Then
                            If Convert.ToString(objConsumosFor.MESANO6.ToString.Trim) <> "" Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objConsumosFor.MESANO6.Substring(3, 4) + objConsumosFor.MESANO6.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "190001"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.VALOR6)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objConsumosFor.VALOR6) = "0", "0.00", Convert.ToString(objConsumosFor.VALOR6.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.DIAS6)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objConsumosFor.DIAS6 <= 9, "0" + Convert.ToString(objConsumosFor.DIAS6), Convert.ToString(objConsumosFor.DIAS6))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "00"
                            End If

                        ElseIf i = 7 Then


                            'Ano e mês referência do faturamento (AAAAMM)
                            'If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.MESANO7)) Then
                            If Convert.ToString(objConsumosFor.MESANO7.ToString.Trim) <> "" Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objConsumosFor.MESANO7.Substring(3, 4) + objConsumosFor.MESANO7.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "190001"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.VALOR7)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objConsumosFor.VALOR7) = "0", "0.00", Convert.ToString(objConsumosFor.VALOR7.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.DIAS7)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objConsumosFor.DIAS7 <= 9, "0" + Convert.ToString(objConsumosFor.DIAS7), Convert.ToString(objConsumosFor.DIAS7))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "00"
                            End If

                        ElseIf i = 8 Then

                            'Ano e mês referência do faturamento (AAAAMM)
                            'If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.MESANO8)) Then
                            If Convert.ToString(objConsumosFor.MESANO8.ToString.Trim) <> "" Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objConsumosFor.MESANO8.Substring(3, 4) + objConsumosFor.MESANO8.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "190001"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.VALOR8)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objConsumosFor.VALOR8) = "0", "0.00", Convert.ToString(objConsumosFor.VALOR8.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.DIAS8)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objConsumosFor.DIAS8 <= 9, "0" + Convert.ToString(objConsumosFor.DIAS8), Convert.ToString(objConsumosFor.DIAS8))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "00"
                            End If

                        ElseIf i = 9 Then

                            'Ano e mês referência do faturamento (AAAAMM)
                            'If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.MESANO9)) Then
                            If Convert.ToString(objConsumosFor.MESANO9.ToString.Trim) <> "" Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objConsumosFor.MESANO9.Substring(3, 4) + objConsumosFor.MESANO9.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "190001"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.VALOR9)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objConsumosFor.VALOR9) = "0", "0.00", Convert.ToString(objConsumosFor.VALOR9.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.DIAS9)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objConsumosFor.DIAS9 <= 9, "0" + Convert.ToString(objConsumosFor.DIAS9), Convert.ToString(objConsumosFor.DIAS9))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "00"
                            End If

                        ElseIf i = 10 Then


                            'Ano e mês referência do faturamento (AAAAMM)
                            'If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.MESANO10)) Then
                            If Convert.ToString(objConsumosFor.MESANO10.ToString.Trim) <> "" Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objConsumosFor.MESANO10.Substring(3, 4) + objConsumosFor.MESANO10.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "190001"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.VALOR10)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objConsumosFor.VALOR10) = "0", "0.00", Convert.ToString(objConsumosFor.VALOR10.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.DIAS10)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objConsumosFor.DIAS10 <= 9, "0" + Convert.ToString(objConsumosFor.DIAS10), Convert.ToString(objConsumosFor.DIAS10))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "00"
                            End If

                        ElseIf i = 11 Then


                            'Ano e mês referência do faturamento (AAAAMM)
                            'If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.MESANO11)) Then
                            If Convert.ToString(objConsumosFor.MESANO11.ToString.Trim) <> "" Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objConsumosFor.MESANO11.Substring(3, 4) + objConsumosFor.MESANO11.Substring(0, 2))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "190001"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.VALOR11)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objConsumosFor.VALOR11) = "0", "0.00", Convert.ToString(objConsumosFor.VALOR11.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Quantidade de dias de medição 
                            If Not String.IsNullOrEmpty(Convert.ToString(objConsumosFor.DIAS11)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objConsumosFor.DIAS11 <= 9, "0" + Convert.ToString(objConsumosFor.DIAS11), Convert.ToString(objConsumosFor.DIAS11))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "00"
                            End If

                        ElseIf i = 12 Then


                            'Ano e mês referência do faturamento (AAAAMM)
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.MESANOREF)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = Convert.ToString(objTempFaturaNF3EB.MESANOREF)
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).CompetFat = "190001"
                            End If

                            'Valor Faturado
                            '15 posições, sendo 13 inteiras e 2 decimais.
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.VALORTOT)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = IIf(Convert.ToString(objTempFaturaNF3EB.VALORTOT) = "0", "0.00", Convert.ToString(objTempFaturaNF3EB.VALORTOT.ToString("N2")).Replace(".", "").Replace(",", "."))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).vFat = "0.00"
                            End If

                            'Unidade Básica de Medida
                            '1 - kW;
                            '2 - kWh;
                            '3 - kVAr;
                            '4 - kVArh
                            If Not String.IsNullOrEmpty(Convert.ToString(GetConfig("nf3e.unidade.basica.medida"))) Then

                                If Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "1" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item1
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "2" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item2
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "3" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item3
                                ElseIf Convert.ToString(GetConfig("nf3e.unidade.basica.medida")) = "4" Then
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = TUMed.Item4
                                Else
                                    nota.infNF3e.gANEEL(0).gGrandFat(i).uMed = "0"
                                End If

                            End If

                            'Quantidade de dias de medição
                            If Not String.IsNullOrEmpty(Convert.ToString(objTempFaturaNF3EB.DIASCONSUMO)) Then
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = IIf(objTempFaturaNF3EB.DIASCONSUMO <= 9, "0" + Convert.ToString(objTempFaturaNF3EB.DIASCONSUMO), Convert.ToString(objTempFaturaNF3EB.DIASCONSUMO))
                            Else
                                nota.infNF3e.gANEEL(0).gGrandFat(i).qtdDias = "00"
                            End If
                        End If

                    Next

                Next

            End If

#End Region


#End Region

#End Region

#Region "autXML - Autorizados para download do XML do - Informar CNPJ ou CPF. Preencher os zeros não significativos. - Não Consta no XML Enviado"

            'CNPJ - CNPJ do autorizado
            'Informar zeros não significativos

            'CPF - CPF do autorizado 
            'Informar zeros não significativos


#End Region

#Region "infAdic - Informações Adicionais"

            'Não Consta no XML Enviado
            'infAdFisco - 'Informações adicionais de interesse do Fisco
            'Norma referenciada, informações complementares, etc

            'Informações complementares de interesse do Contribuinte
            If Not String.IsNullOrEmpty(Convert.ToString(String.Empty)) Then
                nota.infNF3e.infAdic.infCpl = {String.Empty}
            End If

#End Region

#Region "gRespTec - Informações do Responsável Técnico pela emissão do DF-e"

            'CNPJ da pessoa jurídica responsável técnica pelo sistema utilizado na emissão
            'Do documento fiscal eletrônico
            'Informar o CNPJ da pessoa jurídica desenvolvedora do sistema utilizado na emissão
            'do documento fiscal eletrônico.
            nota.infNF3e.gRespTec.CNPJ = "07001069000189"

            'Nome da pessoa a ser contatada 
            'Informar o nome da pessoa a ser contatada na empresa desenvolvedora
            'Do sistema utilizado na emissão do documento fiscal eletrônico.
            'No caso de pessoa física, informar o respectivo nome.
            nota.infNF3e.gRespTec.xContato = "DD System"

            'E-mail da pessoa jurídica a ser contatada 
            nota.infNF3e.gRespTec.email = "helpdesk@ddsystem.com.br"

            'Telefone da pessoa jurídica a ser contatada
            'Preencher com o Código DDD + número Do telefone.
            nota.infNF3e.gRespTec.fone = "1136943398"

            'Não Consta no XML Enviado

            'idCSRT - Identificador do código de segurança do responsável técnico
            'Identificador do CSRT utilizado para geração do hash


            'hashCSRT - Hash do token do código de segurança do responsável técnico
            'O hashCSRT é o resultado das funções SHA-1 e base64 do token CSRT fornecido pelo fisco + chave de acesso
            'Do DF-e. (Implementação em futura NT) Observação: 28 caracteres são representados no schema como 20 bytes do tipo base64Binary


#End Region


            Dim ser As New XmlSerializer(GetType(nf3e_v1_00))

            Dim arquivo As New FileStream(caminho + "\" + nomeArquivoXML, FileMode.CreateNew)

            ser.Serialize(arquivo, nota)

            arquivo.Close()

            arquivo.Dispose()

            'Parametros - Descrição

            'conteudo - Conteúdo de emissão do documento.

            'tpConteudo - Tipo de conteúdo que está sendo enviado. Valores possíveis: json, xml, txt

            'CNPJ - CNPJ do emitente do documento. (Sem o - e os pontos)

            'tpDown - Tipo de arquivos a serem baixados.Valores possíveis
            'X -Xml
            'J -JSON
            'P -PDF
            'XP -Xml e PDF
            'JP -JSON e PDF

            'tpAmb - Ambiente onde foi autorizado o documento.Valores possíveis
            '1 - produção
            '2 - homologação

            'exibeNaTela - Se For baixado a DFe, exibir o PDF na tela após a autorização. Valores possíveis: 
            'True - será exibido
            'False - não será exibido(Default)

            'a3 - Se será feito a emissao por utilizando certificado digital a3. Valores possíveis: 
            'True - será exibido
            'False - não será exibido(Default)

            Dim retorno As String
            Try
                retorno = NSSuite.emitirNF3eSincrono(nota.ToXMLString(), "xml", Convert.ToString(gstrEmpresa_CNPJ), "XP", GetConfig("nf3e.tipo.ambiente"), caminho)
            Catch ex As Exception
                retorno = "*Erro*"
            End Try

            istrMensagemRetornoNF3e = retorno

            Dim contador As Integer = 0, quant As Integer = 0
            Dim pos As Integer = -1, pos_ant As Integer = -1, pos_ini As Integer = -1
            Dim retorno2 As String = Replace(Replace(retorno, """", ""), " ", "")
            Dim vetor As Integer()
            Dim strErro1 As String, strErro2 As String

            strErro2 = String.Empty
            While contador < retorno2.Length
                strErro1 = String.Empty
                pos = retorno2.IndexOf("cvc", contador)
                If pos <> pos_ant And pos <> -1 Then
                    pos_ini = pos
                    quant += 1
                    ReDim Preserve vetor(quant)
                    vetor(quant) = pos
                    If quant > 1 Then
                        strErro1 = Mid(retorno2.Trim, vetor(quant - 1), vetor(quant) - vetor(quant - 1))
                        'strErro2 += IIf(Mensageria(strErro1) <> "", Mensageria(strErro1) & vbCrLf, "")
                    End If
                End If
                contador += 1
                pos_ant = pos
            End While

            Dim contadorA(3) As Integer
            For quant = 0 To 2
                contadorA(quant) = quant
            Next quant


            If istrMensagemRetornoNF3e Like "*Autorizado o uso da NF3e*" Then
                objTempFaturaNF3EB.ENVIADONF3E = 1
            Else
                objTempFaturaNF3EB.ENVIADONF3E = 0
            End If

            'objTempFaturaNF3EB.JSONDADOSSEFAZ = istrMensagemRetornoNF3e & " - " & strErro2
            objTempFaturaNF3EB.JSONDADOSSEFAZ = istrMensagemRetornoNF3e

            lUpdate_2(objTempFaturaNF3EB)


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

    End Sub

    Private Function Mensageria(lngValor As String) As String
        Dim strMsg As String = String.Empty
        Dim strGrupo As String = "Grupo: "
        Try
            'infNF3e - Informações da NF3e

            If lngValor.Contains("#AnonType_cClassproddetItemdetNFdetinfNF3eTNF3e") Then
                strGrupo += "detItem - "
                strMsg = strGrupo + "Grupo de informações referentes a item da NF3e"

            ElseIf lngValor.Contains("TCfop") Then
                strGrupo += "infNF3e - "
                strMsg = strGrupo + "NF3e com CFOP inválido"

            ElseIf lngValor.Contains("TCompet") Then
                strGrupo += "gFat - "
                strMsg = strGrupo + "Ano e mês referência do faturamento (AAAAMM) inválido"

            ElseIf lngValor.Contains("versao") Then
                strGrupo += "infNF3e - "
                strMsg = strGrupo + "Versão do leiaute (versao)"
            ElseIf lngValor.Contains("Id") Then
                strGrupo += "Id - "
                strMsg = strGrupo + "Identificador da tag a ser assinada  (Id)."

                'ide - Identificação da NF3e
            ElseIf lngValor.Contains("cUF") Then
                strGrupo += "ide - "
                strMsg = strGrupo + "Código da UF do emitente da NF3e (cUF)."
            ElseIf lngValor.Contains("tpAmb") Then
                strGrupo += "ide - "
                strMsg = strGrupo + "Tipo do Ambiente (tpAmb)."
            ElseIf lngValor.Contains("mod") Then
                strGrupo += "ide - "
                strMsg = strGrupo + "Modelo da NF3e (mod)."
            ElseIf lngValor.Contains("serie") Then
                strGrupo += "ide - "
                strMsg = strGrupo + "Série do documento fiscal (serie)."
            ElseIf lngValor.Contains("nNF") Then
                strGrupo += "ide - "
                strMsg = strGrupo + "Número do documento fiscal (nNF)."
            ElseIf lngValor.Contains("cNF") Then
                strGrupo += "ide - "
                strMsg = strGrupo + "Código numérico que compõe a Chave de Acesso. (cNF)."
            ElseIf lngValor.Contains("cDV") Then
                strGrupo += "ide - "
                strMsg = strGrupo + "Digito verificador da chave de acesso. (cDV)."
            ElseIf lngValor.Contains("dhEmi") Then
                strGrupo += "ide - "
                strMsg = strGrupo + "Data e hora de emissão do documento fiscal. (dhEmi)."
            ElseIf lngValor.Contains("tpEmis") Then
                strGrupo += "ide - "
                strMsg = strGrupo + "Forma de emissão do Documento Fiscal. (tpEmis)."
            ElseIf lngValor.Contains("nSiteAutoriz") Then
                strGrupo += "ide - "
                strMsg = strGrupo + "Identificação do número do Site do Autorizador de recepção da NF3e. (nSiteAutoriz)."
            ElseIf lngValor.Contains("cMunFG") Then
                strGrupo += "ide - "
                strMsg = strGrupo + "Código do município de ocorrência do fato gerador. (cMunFG)."
            ElseIf lngValor.Contains("finNF3e") Then
                strGrupo += "ide - "
                strMsg = strGrupo + "Finalidade de emissão da NF3e. (finNF3e)."
            ElseIf lngValor.Contains("verProc") Then
                strGrupo += "ide - "
                strMsg = strGrupo + "Versão do processo de emissão. (verProc)."
            ElseIf lngValor.Contains("--- x ---") Then
                strGrupo += "ide - "
                strMsg = strGrupo + "Digito verificador da chave de acesso. (--- x ---)."
            ElseIf lngValor.Contains("dhCont") Then
                strGrupo += "ide - "
                strMsg = strGrupo + "Data e Hora da entrada em contingência. (dhCont)."
            ElseIf lngValor.Contains("xJust") Then
                strGrupo += "ide - "
                strMsg = strGrupo + "Justificativa da entrada em contingência. (xJust)."

                'emit - Identificação do Emitente do documento fiscal
            ElseIf lngValor.Contains("CNPJ") Then
                strGrupo += "emit - "
                strMsg = strGrupo + "CNPJ do emitente (CNPJ)."
            ElseIf lngValor.Contains("IE") Then
                strGrupo += "emit - "
                strMsg = strGrupo + "Inscrição Estadual do emitente (IE)."
            ElseIf lngValor.Contains("xNome") Then
                strGrupo += "emit - "
                strMsg = strGrupo + "Razão social ou Nome do emitente (xNome)."
            ElseIf lngValor.Contains("xFant") Then
                strGrupo += "emit - "
                strMsg = strGrupo + "Nome fantasia do emitente (xFant)."

                'enderEmit - Endereço do emitente
            ElseIf lngValor.Contains("xLgr") Then
                strGrupo += "enderEmit - "
                strMsg = strGrupo + "Logradouro (xLgr)."
            ElseIf lngValor.Contains("nro") Then
                strGrupo += "enderEmit - "
                strMsg = strGrupo + "Número (nro)."
            ElseIf lngValor.Contains("xCpl") Then
                strGrupo += "enderEmit - "
                strMsg = strGrupo + "Complemento (xCpl)."
            ElseIf lngValor.Contains("xBairro") Then
                strGrupo += "enderEmit - "
                strMsg = strGrupo + "Bairro (xBairro)."
            ElseIf lngValor.Contains("cMun") Then
                strGrupo += "enderEmit - "
                strMsg = strGrupo + " Código do município (utilizar a tabela do IBGE) (cMun)."
            ElseIf lngValor.Contains("xMun") Then
                strGrupo += "enderEmit - "
                strMsg = strGrupo + "Nome do município  (xMun)."
            ElseIf lngValor.Contains("CEP") Then
                strGrupo += "enderEmit - "
                strMsg = strGrupo + "CEP (CEP)."
            ElseIf lngValor.Contains("UF") Then
                strGrupo += "enderEmit - "
                strMsg = strGrupo + "Sigla da UF (UF)."
            ElseIf lngValor.Contains("fone") Then
                strGrupo += "enderEmit - "
                strMsg = strGrupo + "Telefone (fone)."
            ElseIf lngValor.Contains("email") Then
                strGrupo += "enderEmit - "
                strMsg = strGrupo + "Endereço de E-mail (email)."

                'dest - Identificação do destinatário / acessante
            ElseIf lngValor.Contains("xNome") Then
                strGrupo += "dest - "
                strMsg = strGrupo + "Razão social ou Nome do destinatário / acessante (xNome)."
            ElseIf lngValor.Contains("CNPJ") Then
                strGrupo += "dest - "
                strMsg = strGrupo + "Número do CNPJ (CNPJ)."
            ElseIf lngValor.Contains("CPF") Then
                strGrupo += "dest - "
                strMsg = strGrupo + "Número do CPF (CPF)."
            ElseIf lngValor.Contains("idOutros") Then
                strGrupo += "dest - "
                strMsg = strGrupo + "Identificação do destinatário outros (idOutros)."
            ElseIf lngValor.Contains("indIEDest") Then
                strGrupo += "dest - "
                strMsg = strGrupo + "Indicador da IE do Destinatário/Acessante (indIEDest)."
            ElseIf lngValor.Contains("IE") Then
                strGrupo += "dest - "
                strMsg = strGrupo + "Inscrição Estadual do destinatário / acessante (IE)."
            ElseIf lngValor.Contains("IM") Then
                strGrupo += "dest - "
                strMsg = strGrupo + "Inscrição Municipal (IM)."
            ElseIf lngValor.Contains("cNIS") Then
                strGrupo += "dest - "
                strMsg = strGrupo + "Número da Identificação Social - NIS (cNIS)."
            ElseIf lngValor.Contains("NB") Then
                strGrupo += "dest - "
                strMsg = strGrupo + "Número do benefício (NB)."
            ElseIf lngValor.Contains("xNomeAdicional") Then
                strGrupo += "dest - "
                strMsg = strGrupo + "Nome de destinatário adicional (xNomeAdicional)."

                'enderDest - Endereço do destinatário / acessante
            ElseIf lngValor.Contains("xLgr") Then
                strGrupo += "enderDest - "
                strMsg = strGrupo + "Logradouro (xLgr)."
            ElseIf lngValor.Contains("nro") Then
                strGrupo += "enderDest - "
                strMsg = strGrupo + "Número (nro)."
            ElseIf lngValor.Contains("xCpl") Then
                strGrupo += "enderDest - "
                strMsg = strGrupo + "Complemento (xCpl)."
            ElseIf lngValor.Contains("xBairro") Then
                strGrupo += "enderDest - "
                strMsg = strGrupo + "Bairro (xBairro)."
            ElseIf lngValor.Contains("cMun") Then
                strGrupo += "enderDest - "
                strMsg = strGrupo + "Código do município (utilizar a tabela do IBGE) (cMun)."
            ElseIf lngValor.Contains("xMun") Then
                strGrupo += "enderDest - "
                strMsg = strGrupo + "Nome do município (xMun)."
            ElseIf lngValor.Contains("CEP") Then
                strGrupo += "enderDest - "
                strMsg = strGrupo + "CEP (CEP)."
            ElseIf lngValor.Contains("UF") Then
                strGrupo += "enderDest - "
                strMsg = strGrupo + "Sigla da UF (UF)."
            ElseIf lngValor.Contains("fone") Then
                strGrupo += "enderDest - "
                strMsg = strGrupo + "Telefone (fone)."
            ElseIf lngValor.Contains("email") Then
                strGrupo += "enderDest - "
                strMsg = strGrupo + "Endereço de E-mail (email)."

                'acessante - Dados do acessante
            ElseIf lngValor.Contains("idAcesso") Then
                strGrupo += "acessante - "
                strMsg = strGrupo + "Código único de Identificação da Unidade Consumidora ou Ponto de Acesso adotado pela distribuidora (idAcesso)."
            ElseIf lngValor.Contains("idCodCliente") Then
                strGrupo += "acessante - "
                strMsg = strGrupo + "Código de Identificação do Cliente para empresa emitente (idCodCliente)."
            ElseIf lngValor.Contains("tpAcesso") Then
                strGrupo += "acessante - "
                strMsg = strGrupo + "Tipo de Acessante (tpAcesso)."
            ElseIf lngValor.Contains("xNomeUC") Then
                strGrupo += "acessante - "
                strMsg = strGrupo + "Nome da Unidade Consumidora (xNomeUC)."
            ElseIf lngValor.Contains("tpClasse") Then
                strGrupo += "acessante - "
                strMsg = strGrupo + "Classe de Consumo da Unidade Consumidora (tpClasse)."
            ElseIf lngValor.Contains("tpSubClasse") Then
                strGrupo += "acessante - "
                strMsg = strGrupo + "Subclasse de Consumo da Unidade Consumidora (tpSubClasse)."
            ElseIf lngValor.Contains("tpFase") Then
                strGrupo += "acessante - "
                strMsg = strGrupo + "Tipo de ligação (tpFase)."
            ElseIf lngValor.Contains("tpGrpTensao") Then
                strGrupo += "acessante - "
                strMsg = strGrupo + "Grupo e Subgrupo de Tensão (tpGrpTensao)."
            ElseIf lngValor.Contains("tpModTar") Then
                strGrupo += "acessante - "
                strMsg = strGrupo + "Modalidade Tarifária (tpModTar)."
            ElseIf lngValor.Contains("latGPS") Then
                strGrupo += "acessante - "
                strMsg = strGrupo + "Latitude do ponto geográfico da localização da captura (latGPS)."
            ElseIf lngValor.Contains("longGPS") Then
                strGrupo += "acessante - "
                strMsg = strGrupo + "Longitude do ponto geográfico da localização da captura (longGPS)."
            ElseIf lngValor.Contains("codRoteiroLeitura") Then
                strGrupo += "acessante - "
                strMsg = strGrupo + "Roteiro da Leitura para uso operacional (codRoteiroLeitura)."

                'gSub - Grupo de informações da substituição
            ElseIf lngValor.Contains("chNF3e") Then
                strGrupo += "gSub - "
                strMsg = strGrupo + "Roteiro da Leitura para uso operacional (chNF3e)."

                'gNF - Informação da NF modelo 06 referenciada
            ElseIf lngValor.Contains("CNPJ") Then
                strGrupo += "gNF - "
                strMsg = strGrupo + "CNPJ do Emitente (CNPJ)."
            ElseIf lngValor.Contains("serie") Then
                strGrupo += "gNF - "
                strMsg = strGrupo + "Serie do documento fiscal (serie)."
            ElseIf lngValor.Contains("nNF") Then
                strGrupo += "gNF - "
                strMsg = strGrupo + "Número do documento fiscal (nNF)."
            ElseIf lngValor.Contains("CompetEmis") Then
                strGrupo += "gNF - "
                strMsg = strGrupo + "Ano e mês da emissão da NF mod. 06 (CompetEmis)."
            ElseIf lngValor.Contains("CompetApur") Then
                strGrupo += "gNF - "
                strMsg = strGrupo + "Ano e mês de apuração (CompetApur)."
            ElseIf lngValor.Contains("hash115") Then
                strGrupo += "gNF - "
                strMsg = strGrupo + "Hash do registro no arquivo do convênio 115 (hash115)."
            ElseIf lngValor.Contains("motSub") Then
                strGrupo += "gNF - "
                strMsg = strGrupo + "Motivo da substituição (motSub)."

                'gJudic - Grupo de informações para referenciar a NF3e original que foi separada judicialmente
            ElseIf lngValor.Contains("chNF3e") Then
                strGrupo += "gJudic - "
                strMsg = strGrupo + "Chave de acesso da NF3e referenciada (chNF3e)."

                'gGrContrat - Grupo de informações das quantidades contratadas
            ElseIf lngValor.Contains("nContrat") Then
                strGrupo += "gGrContrat - "
                strMsg = strGrupo + "Número de referência para informar nos produtos a relação com a quantidade contratada (nContrat)."
            ElseIf lngValor.Contains("tpGrContrat") Then
                strGrupo += "gGrContrat - "
                strMsg = strGrupo + "Tipo de grandeza contratada (tpGrContrat)."
            ElseIf lngValor.Contains("tpPosTar") Then
                strGrupo += "gGrContrat - "
                strMsg = strGrupo + "Tipo de Posto Tarifário Contratado (tpPosTar)."
            ElseIf lngValor.Contains("qUnidContrat") Then
                strGrupo += "gGrContrat - "
                strMsg = strGrupo + "Quantidade Contratada em kW ou kWh (qUnidContrat)."

                'gMed - Grupo de informações dos Medidores
            ElseIf lngValor.Contains("nMed") Then
                strGrupo += "gMed - "
                strMsg = strGrupo + "Número de referência para informar nos produtos a relação com a medição (nMed)."
            ElseIf lngValor.Contains("idMedidor") Then
                strGrupo += "gMed - "
                strMsg = strGrupo + "Identificação do medidor (idMedidor)."
            ElseIf lngValor.Contains("dMedAnt") Then
                strGrupo += "gMed - "
                strMsg = strGrupo + "Data da leitura anterior (dMedAnt)."
            ElseIf lngValor.Contains("dMedAtu") Then
                strGrupo += "gMed - "
                strMsg = strGrupo + "Data da leitura atual (dMedAtu)."

                'gSCEE - Grupo dos dados do Sistema de Compensação de Energia Elétrica
            ElseIf lngValor.Contains("tpPartComp") Then
                strGrupo += "gSCEE - "
                strMsg = strGrupo + "Tipo de participação no sistema de compensação de energia elétrica (tpPartComp)."

                'gConsumidor - Participação no SCEE como Consumidor
            ElseIf lngValor.Contains("idAcessGer") Then
                strGrupo += "gConsumidor - "
                strMsg = strGrupo + "Código Único de identificação da unidade geradora (idAcessGer)."
            ElseIf lngValor.Contains("vPotInst") Then
                strGrupo += "gConsumidor - "
                strMsg = strGrupo + "Potência instalada do micro ou minigeraçao em kW (vPotInst)."
            ElseIf lngValor.Contains("tpFonteEnergia") Then
                strGrupo += "gConsumidor - "
                strMsg = strGrupo + "Tipo da fonte de energia utilizada (tpFonteEnergia)."
                '--- x --- Sequência XML
            ElseIf lngValor.Contains("enerAloc") Then
                strGrupo += "gConsumidor - "
                strMsg = strGrupo + "Energia alocada (enerAloc)."
            ElseIf lngValor.Contains("tpPosTar") Then
                strGrupo += "gConsumidor - "
                strMsg = strGrupo + "Tipo de Posto Tarifário (tpPosTar)."

                'gSaldoCred - Saldos de Créditos por posto tarifário
            ElseIf lngValor.Contains("tpPosTar") Then
                strGrupo += "gSaldoCred - "
                strMsg = strGrupo + "Tipo de Posto Tarifário (tpPosTar)."
            ElseIf lngValor.Contains("vSaldAnt") Then
                strGrupo += "gSaldoCred - "
                strMsg = strGrupo + "Saldo Anterior de Créditos em kWh (vSaldAnt)."
            ElseIf lngValor.Contains("vCredExpirado") Then
                strGrupo += "gSaldoCred - "
                strMsg = strGrupo + "Créditos Expirados (vCredExpirado)."
            ElseIf lngValor.Contains("vSaldAtual") Then
                strGrupo += "gSaldoCred - "
                strMsg = strGrupo + "Saldo Atual de Créditos em kWh (vSaldAtual)."
                '--- x --- Sequência XML
            ElseIf lngValor.Contains("vCredExpirar") Then
                strGrupo += "gSaldoCred - "
                strMsg = strGrupo + "Créditos a Expirar (vCredExpirar)."
            ElseIf lngValor.Contains("CompetExpirar") Then
                strGrupo += "gSaldoCred - "
                strMsg = strGrupo + "Ciclo de faturamento em que ocorrerá a expiração (CompetExpirar)."

                'NFdet - Detalhamento de Produtos e Serviços
            ElseIf lngValor.Contains("chNF3eAnt") Then
                strGrupo += "NFdet - "
                strMsg = strGrupo + "Chave de Acesso da NF3e anterior (chNF3eAnt)."
            ElseIf lngValor.Contains("mod6HashAnt") Then
                strGrupo += "NFdet - "
                strMsg = strGrupo + "HashCode da Modelo 6 Anterior (mod6HashAnt)."

                'det - Detalhamento de Produtos e Serviços
            ElseIf lngValor.Contains("nItem") Then
                strGrupo += "det - "
                strMsg = strGrupo + "Número do item da NF3e (nItem)."

                'gAjusteNF3eAnt - Grupo de identificação do ajuste do item de NF3e anterior
            ElseIf lngValor.Contains("tpAjuste") Then
                strGrupo += "gAjusteNF3eAnt - "
                strMsg = strGrupo + "Tipo de ajuste a ser aplicado ao item (tpAjuste)."
            ElseIf lngValor.Contains("motAjuste") Then
                strGrupo += "gAjusteNF3eAnt - "
                strMsg = strGrupo + "Motivo do Ajuste (motAjuste)."

                'detItemAnt - Grupo de informações referentes a item da NF3e anterior
            ElseIf lngValor.Contains("nItemAnt") Then
                strGrupo += "detItemAnt - "
                strMsg = strGrupo + "Número do item da NF3e anterior (nItemAnt)."
            ElseIf lngValor.Contains("vItem") Then
                strGrupo += "detItemAnt - "
                strMsg = strGrupo + "Valor unitário do item (vItem)."
            ElseIf lngValor.Contains("qFaturada") Then
                strGrupo += "detItemAnt - "
                strMsg = strGrupo + "Quantidade Faturada (qFaturada)."
            ElseIf lngValor.Contains("vProd") Then
                strGrupo += "detItemAnt - "
                strMsg = strGrupo + "Valor total do item (vProd)."
            ElseIf lngValor.Contains("cClass") Then
                strGrupo += "detItemAnt - "
                strMsg = strGrupo + "Código de classificação (cClass)."
            ElseIf lngValor.Contains("vBC") Then
                strGrupo += "detItemAnt - "
                strMsg = strGrupo + "Valor da BC do ICMS (vBC)."
            ElseIf lngValor.Contains("pICMS") Then
                strGrupo += "detItemAnt - "
                strMsg = strGrupo + "Alíquota do ICMS (pICMS)."
            ElseIf lngValor.Contains("vICMS") Then
                strGrupo += "detItemAnt - "
                strMsg = strGrupo + "Valor do ICMS (vICMS)."
            ElseIf lngValor.Contains("vFCP") Then
                strGrupo += "detItemAnt - "
                strMsg = strGrupo + "Valor do ICMS relativo ao Fundo de Combate à Pobreza - FCP (vFCP)."
            ElseIf lngValor.Contains("vBCST") Then
                strGrupo += "detItemAnt - "
                strMsg = strGrupo + "Valor da BC do ICMS ST (vBCST)."
            ElseIf lngValor.Contains("vICMSST") Then
                strGrupo += "detItemAnt - "
                strMsg = strGrupo + "Valor do ICMS ST retido (vICMSST)."
            ElseIf lngValor.Contains("vFCPST") Then
                strGrupo += "detItemAnt - "
                strMsg = strGrupo + "Valor do ICMS relativo ao Fundo de Combate à Pobreza - FCP (vFCPST)."
            ElseIf lngValor.Contains("vPIS") Then
                strGrupo += "detItemAnt - "
                strMsg = strGrupo + "Valor do PIS (vPIS)."
            ElseIf lngValor.Contains("vPISEfet") Then
                strGrupo += "detItemAnt - "
                strMsg = strGrupo + "Valor efetivo do PIS (vPISEfet)."
            ElseIf lngValor.Contains("vCOFINS") Then
                strGrupo += "detItemAnt - "
                strMsg = strGrupo + "Valor do COFINS (vCOFINS)."
            ElseIf lngValor.Contains("vCOFINSEfet") Then
                strGrupo += "detItemAnt - "
                strMsg = strGrupo + "Valor Efetivo do COFINS (vCOFINSEfet)."

                'retTrib - Grupo de informações de retenção de tributos federais do item anterior
            ElseIf lngValor.Contains("vRetPIS") Then
                strGrupo += "retTrib - "
                strMsg = strGrupo + "Valor do PIS retido (vRetPIS)."
            ElseIf lngValor.Contains("vRetCofins") Then
                strGrupo += "retTrib - "
                strMsg = strGrupo + "ValValor do COFNS retido (vRetCofins)."
            ElseIf lngValor.Contains("vRetCSLL") Then
                strGrupo += "retTrib - "
                strMsg = strGrupo + "Valor da CSLL retida (vRetCSLL)."
            ElseIf lngValor.Contains("vBCIRRF") Then
                strGrupo += "retTrib - "
                strMsg = strGrupo + "Base de cálculo do IRRF (vBCIRRF)."
            ElseIf lngValor.Contains("vIRRF") Then
                strGrupo += "retTrib - "
                strMsg = strGrupo + "Valor do IRRF retido (vIRRF)."

                'detItem - Grupo de informações referentes a item da NF3e
            ElseIf lngValor.Contains("nItemAnt") Then
                strGrupo += "detItem - "
                strMsg = strGrupo + "Número do item da NF3e anterior que este item está substituindo. Deve sempre existir um detItemAnt que corresponda (nItemAnt)."

                'gTarif - Grupo de Tarifas por Período
            ElseIf lngValor.Contains("dIniTarif") Then
                strGrupo += "gTarif - "
                strMsg = strGrupo + "Data de início da aplicação da tarifa (dIniTarif)."
            ElseIf lngValor.Contains("dFimTarif") Then
                strGrupo += "gTarif - "
                strMsg = strGrupo + "Data de fim da aplicação da tarifa (dFimTarif)."
            ElseIf lngValor.Contains("tpAto") Then
                strGrupo += "gTarif - "
                strMsg = strGrupo + "Tipo de Ato da ANEEL (tpAto)."
            ElseIf lngValor.Contains("nAto") Then
                strGrupo += "gTarif - "
                strMsg = strGrupo + "Número do Ato da ANEEL (nAto)."
            ElseIf lngValor.Contains("anoAto") Then
                strGrupo += "gTarif - "
                strMsg = strGrupo + "Ano do Ato da ANEEL - AAAA (anoAto)."
            ElseIf lngValor.Contains("tpTarif") Then
                strGrupo += "gTarif - "
                strMsg = strGrupo + "Tarifa de aplicação (tpTarif)."
            ElseIf lngValor.Contains("cPosTarif") Then
                strGrupo += "gTarif - "
                strMsg = strGrupo + "Tipo de posto tarifário (cPosTarif)."
            ElseIf lngValor.Contains("uMed") Then
                strGrupo += "gTarif - "
                strMsg = strGrupo + "Unidade de Medida (uMed)."
            ElseIf lngValor.Contains("vTarifHom") Then
                strGrupo += "gTarif - "
                strMsg = strGrupo + "Valor da tarifa homologada pela ANEEL (vTarifHom)."
                '--- x --- Sequência XML
            ElseIf lngValor.Contains("vTarifAplic") Then
                strGrupo += "gTarif - "
                strMsg = strGrupo + "Valor da tarifa aplicada (vTarifAplic)."
            ElseIf lngValor.Contains("motDifTarif") Then
                strGrupo += "gTarif - "
                strMsg = strGrupo + "Motivo da diferença de tarifa aplicada com a homologada (motDifTarif)."

                'gAdBand - Grupo de Adicional de Bandeira
            ElseIf lngValor.Contains("dIniAdBand") Then
                strGrupo += "gAdBand - "
                strMsg = strGrupo + "Data de início da aplicação do adicional (dIniAdBand)."
            ElseIf lngValor.Contains("dFimAdBand") Then
                strGrupo += "gAdBand - "
                strMsg = strGrupo + "Data de fim da aplicação do adicional (dFimAdBand)."
            ElseIf lngValor.Contains("tpBand") Then
                strGrupo += "gAdBand - "
                strMsg = strGrupo + "Tipo da bandeira tarifária (tpBand)."
            ElseIf lngValor.Contains("vAdBand") Then
                strGrupo += "gAdBand - "
                strMsg = strGrupo + "Valor do Adicional tarifário (vAdBand)."
                '--- x --- Sequência XML
            ElseIf lngValor.Contains("vAdBandAplic") Then
                strGrupo += "gAdBand - "
                strMsg = strGrupo + "Valor do adicional tarifário aplicado (vAdBandAplic)."
            ElseIf lngValor.Contains("motDifBand") Then
                strGrupo += "gAdBand - "
                strMsg = strGrupo + "Motivo da diferença do adicional aplicado (motDifBand)."

                'prod - Dados do Produto ou Serviço
            ElseIf lngValor.Contains("indOrigemQtd") Then
                strGrupo += "prod - "
                strMsg = strGrupo + "Indicador da origem da quantidade faturada (indOrigemQtd)."

                'gMedicao - Grupo para referenciar qual medição e medida estão relacionadas ao item
            ElseIf lngValor.Contains("nMed") Then
                strGrupo += "gMedicao - "
                strMsg = strGrupo + "Referência para a medição ao qual se refere o item (nMed)."
            ElseIf lngValor.Contains("nContrat") Then
                strGrupo += "gMedicao - "
                strMsg = strGrupo + "Referência para o grupo de demanda contratada ao qual se refere o item (nContrat)."

                'gMedida - Grupo de medida
            ElseIf lngValor.Contains("tpGrMed") Then
                strGrupo += "gMedida - "
                strMsg = strGrupo + "Tipo de grandeza medida (tpGrMed)."
            ElseIf lngValor.Contains("cPosTarif") Then
                strGrupo += "gMedida - "
                strMsg = strGrupo + "Tipo de posto tarifário (cPosTarif)."
            ElseIf lngValor.Contains("uMed") Then
                strGrupo += "gMedida - "
                strMsg = strGrupo + "Unidade Básica de Medida (uMed)."
            ElseIf lngValor.Contains("vMedAnt") Then
                strGrupo += "gMedida - "
                strMsg = strGrupo + "Valor da medição - leitura anterior (vMedAnt)."
            ElseIf lngValor.Contains("vMedAtu") Then
                strGrupo += "gMedida - "
                strMsg = strGrupo + "Valor da medição - leitura atual  (vMedAtu)."
            ElseIf lngValor.Contains("vConst") Then
                strGrupo += "gMedida - "
                strMsg = strGrupo + "Indicar o fator de multiplicação do medidor (vConst)."
            ElseIf lngValor.Contains("vMed") Then
                strGrupo += "gMedida - "
                strMsg = strGrupo + "Valor da medição (vMed)."
                '--- x --- Sequência XML
            ElseIf lngValor.Contains("pPerdaTran") Then
                strGrupo += "gMedida - "
                strMsg = strGrupo + "Perda de Transformação - percentual (pPerdaTran)."
            ElseIf lngValor.Contains("vMedPerdaTran") Then
                strGrupo += "gMedida - "
                strMsg = strGrupo + "Valor medido após perda de transformação (vMedPerdaTran)."
            ElseIf lngValor.Contains("vMedPerdaTec") Then
                strGrupo += "gMedida - "
                strMsg = strGrupo + "Valor medido após perda técnica (vMedPerdaTec)."
            ElseIf lngValor.Contains("tpMotNaoLeitura") Then
                strGrupo += "gMedida - "
                strMsg = strGrupo + "Tipo Motivo da não leitura (tpMotNaoLeitura)."
            ElseIf lngValor.Contains("cProd") Then
                strGrupo += "gMedida - "
                strMsg = strGrupo + "Código do produto ou serviço (cProd)."
            ElseIf lngValor.Contains("xProd") Then
                strGrupo += "gMedida - "
                strMsg = strGrupo + "Descrição do produto ou serviço (xProd)."

            ElseIf lngValor.Contains("cClass") Then
                strGrupo += "gMedida - "
                strMsg = strGrupo + "Código de classificação (cClass)."
            ElseIf lngValor.Contains("CFOP") Then
                strGrupo += "gMedida - "
                strMsg = strGrupo + "CFOP (CFOP)."
            ElseIf lngValor.Contains("uMed") Then
                strGrupo += "gMedida - "
                strMsg = strGrupo + "Unidade Básica de Medida (uMed)."
            ElseIf lngValor.Contains("qFaturada") Then
                strGrupo += "gMedida - "
                strMsg = strGrupo + "Quantidade Faturada (qFaturada)."
            ElseIf lngValor.Contains("vItem") Then
                strGrupo += "gMedida - "
                strMsg = strGrupo + "Valor unitário do item (vItem)."
            ElseIf lngValor.Contains("vProd") Then
                strGrupo += "gMedida - "
                strMsg = strGrupo + "Valor total do item (vProd)."
            ElseIf lngValor.Contains("indDevolucao") Then
                strGrupo += "gMedida - "
                strMsg = strGrupo + "Indicador de devolução do valor do item (indDevolucao)."
            ElseIf lngValor.Contains("indPrecoACL") Then
                strGrupo += "gMedida - "
                strMsg = strGrupo + "Preço ACL (indPrecoACL)."

                'imposto - Tributos incidentes no Produto ou Serviço
                'ICMS00 - Prestação sujeito à tributação normal do ICMS
            ElseIf lngValor.Contains("CST") Then
                strGrupo += "ICMS00 - "
                strMsg = strGrupo + "classificação Tributária do Serviço (CST)."
            ElseIf lngValor.Contains("vBC") Then
                strGrupo += "ICMS00 - "
                strMsg = strGrupo + "Valor da BC do ICMS (vBC)."
            ElseIf lngValor.Contains("pICMS") Then
                strGrupo += "ICMS00 - "
                strMsg = strGrupo + "Alíquota do ICMS (pICMS)."
            ElseIf lngValor.Contains("vICMS") Then
                strGrupo += "ICMS00 - "
                strMsg = strGrupo + "Valor do ICMS (vICMS)."
                '--- x --- Sequência XML
            ElseIf lngValor.Contains("pFCP") Then
                strGrupo += "ICMS00 - "
                strMsg = strGrupo + "Percentual de ICMS relativo ao Fundo de Combate à Pobreza - FCP (pFCP)."
            ElseIf lngValor.Contains("vFCP") Then
                strGrupo += "ICMS00 - "
                strMsg = strGrupo + "Valor do ICMS relativo ao Fundo de Combate à Pobreza - FCP (vFCP)."

                'ICMS10 - Tributada e com cobrança do ICMS por substituição tributária
            ElseIf lngValor.Contains("CST") Then
                strGrupo += "ICMS10 - "
                strMsg = strGrupo + "classificação Tributária do Serviço (CST)."
            ElseIf lngValor.Contains("vBCST") Then
                strGrupo += "ICMS10 - "
                strMsg = strGrupo + "Valor da BC do ICMS ST (vBCST)."
            ElseIf lngValor.Contains("pICMSST") Then
                strGrupo += "ICMS10 - "
                strMsg = strGrupo + "Alíquota do ICMS ST (pICMSST)."
            ElseIf lngValor.Contains("vICMSST") Then
                strGrupo += "ICMS10 - "
                strMsg = strGrupo + "Valor do ICMS ST retido (vICMSST)."
                '--- x --- Sequência XML
            ElseIf lngValor.Contains("pFCPST") Then
                strGrupo += "ICMS10 - "
                strMsg = strGrupo + "Percentual de ICMS relativo ao Fundo de Combate à Pobreza - FCP (pFCPST)."
            ElseIf lngValor.Contains("vFCPST") Then
                strGrupo += "ICMS10 - "
                strMsg = strGrupo + "Valor do ICMS relativo ao Fundo de Combate à Pobreza - FCP (vFCPST)."

                'ICMS20 - Prestação sujeito à tributação com redução de BC do ICMS
            ElseIf lngValor.Contains("CST") Then
                strGrupo += "ICMS20 - "
                strMsg = strGrupo + "Classificação Tributária do serviço (CST)."
            ElseIf lngValor.Contains("pRedBC") Then
                strGrupo += "ICMS20 - "
                strMsg = strGrupo + "Percentual de redução da BC (pRedBC)."
            ElseIf lngValor.Contains("vBC") Then
                strGrupo += "ICMS20 - "
                strMsg = strGrupo + "Valor da BC do ICMS (vBC)."
            ElseIf lngValor.Contains("pICMS") Then
                strGrupo += "ICMS20 - "
                strMsg = strGrupo + " Alíquota do ICMS (pICMS)."
            ElseIf lngValor.Contains("vICMS") Then
                strGrupo += "ICMS20 - "
                strMsg = strGrupo + "Valor do ICMS (vICMS)."
                '--- x --- Sequência XML
            ElseIf lngValor.Contains("vICMSDeson") Then
                strGrupo += "ICMS20 - "
                strMsg = strGrupo + "Valor do ICMS de desoneração (vICMSDeson)."
            ElseIf lngValor.Contains("cBenef") Then
                strGrupo += "ICMS20 - "
                strMsg = strGrupo + "Código de Benefício Fiscal na UF aplicado ao item (cBenef)."
                '--- x --- Sequência XML
            ElseIf lngValor.Contains("pFCP") Then
                strGrupo += "ICMS20 - "
                strMsg = strGrupo + "Percentual de ICMS relativo ao Fundo de Combate à Pobreza - FCP (pFCP)."
            ElseIf lngValor.Contains("vFCP") Then
                strGrupo += "ICMS20 - "
                strMsg = strGrupo + "Valor do ICMS relativo ao Fundo de Combate à Pobreza - FCP (vFCP)."

                'ICMS40 - Tributação Isenta, Não tributada
            ElseIf lngValor.Contains("CST") Then
                strGrupo += "ICMS40 - "
                strMsg = strGrupo + "Classificação Tributária do serviço (CST)."
                '--- x --- Sequência XML
            ElseIf lngValor.Contains("vICMSDeson") Then
                strGrupo += "ICMS40 - "
                strMsg = strGrupo + "Valor do ICMS de desoneração (vICMSDeson)."
            ElseIf lngValor.Contains("cBenef") Then
                strGrupo += "ICMS40 - "
                strMsg = strGrupo + "Código de Benefício Fiscal na UF aplicado ao item (cBenef)."

                'ICMS51 - Tributação com Diferimento
            ElseIf lngValor.Contains("CST") Then
                strGrupo += "ICMS51 - "
                strMsg = strGrupo + "Classificação Tributária do serviço (CST)."
                '--- x --- Sequência XML
            ElseIf lngValor.Contains("vICMSDeson") Then
                strGrupo += "ICMS51 - "
                strMsg = strGrupo + "Valor do ICMS de desoneração (vICMSDeson)."
            ElseIf lngValor.Contains("cBenef") Then
                strGrupo += "ICMS51 - "
                strMsg = strGrupo + "Código de Benefício Fiscal na UF aplicado ao item (cBenef)."

                'ICMS90 - ICMS Outros
            ElseIf lngValor.Contains("CST") Then
                strGrupo += "ICMS90 - "
                strMsg = strGrupo + "Classificação Tributária do serviço (CST)."
                '--- x --- Sequência XML
            ElseIf lngValor.Contains("vBC") Then
                strGrupo += "ICMS90 - "
                strMsg = strGrupo + "Valor da BC do ICMS (vBC)."
            ElseIf lngValor.Contains("pICMS") Then
                strGrupo += "ICMS90 - "
                strMsg = strGrupo + "Alíquota do ICMS (pICMS)."
            ElseIf lngValor.Contains("vICMS") Then
                strGrupo += "ICMS90 - "
                strMsg = strGrupo + "Valor do ICMS (vICMS)."

                'PIS - Dados do PIS
            ElseIf lngValor.Contains("CST") Then
                strGrupo += "PIS - "
                strMsg = strGrupo + "classificação Tributária do PIS (CST)."
            ElseIf lngValor.Contains("vBC") Then
                strGrupo += "PIS - "
                strMsg = strGrupo + "Valor da BC do PIS (vBC)."
            ElseIf lngValor.Contains("pPIS") Then
                strGrupo += "PIS - "
                strMsg = strGrupo + "Alíquota do PIS - em percentual (pPIS)."
            ElseIf lngValor.Contains("vPIS") Then
                strGrupo += "PIS - "
                strMsg = strGrupo + "Valor do PIS (vPIS)."

                'PISEfet - Dados do PIS Efetivo
            ElseIf lngValor.Contains("vBCPISEfet") Then
                strGrupo += "PISEfet - "
                strMsg = strGrupo + "Valor da BC do PIS efetivo (vBCPISEfet)."
            ElseIf lngValor.Contains("pPISEfet") Then
                strGrupo += "PISEfet - "
                strMsg = strGrupo + "Alíquota efetiva do PIS - em percentual (pPISEfet)."
            ElseIf lngValor.Contains("vPISEfet") Then
                strGrupo += "PISEfet - "
                strMsg = strGrupo + "Valor efetivo do PIS (vPISEfet)."

                'COFINS - Dados do COFINS
            ElseIf lngValor.Contains("CST") Then
                strGrupo += "COFINS - "
                strMsg = strGrupo + "classificação Tributária do COFINS (CST)."
            ElseIf lngValor.Contains("vBC") Then
                strGrupo += "COFINS - "
                strMsg = strGrupo + "Valor da BC do COFINS (vBC)."
            ElseIf lngValor.Contains("pCOFINS") Then
                strGrupo += "COFINS - "
                strMsg = strGrupo + "Alíquota do COFINS - em percentual (pCOFINS)."
            ElseIf lngValor.Contains("vCOFINS") Then
                strGrupo += "COFINS - "
                strMsg = strGrupo + "Valor do COFINS (vCOFINS)."

                'COFINSEfet - Dados do COFINS Efetivo
            ElseIf lngValor.Contains("vBCCOFINSEfet") Then
                strGrupo += "COFINSEfet - "
                strMsg = strGrupo + "Valor da BC do COFINS efetivo (vBCCOFINSEfet)."
            ElseIf lngValor.Contains("pCOFINSEfet") Then
                strGrupo += "COFINSEfet - "
                strMsg = strGrupo + "Alíquota Efetiva do COFINS - em percentual (pCOFINSEfet)."
            ElseIf lngValor.Contains("vCOFINSEfet") Then
                strGrupo += "COFINSEfet - "
                strMsg = strGrupo + "Valor Efetivo do COFINS (vCOFINSEfet)."

                'retTrib - Grupo de informações de retenção de tributos federais
            ElseIf lngValor.Contains("vRetPIS") Then
                strGrupo += "retTrib - "
                strMsg = strGrupo + "Valor do PIS retido (retTrib)."
            ElseIf lngValor.Contains("vRetCofins") Then
                strGrupo += "retTrib - "
                strMsg = strGrupo + "Valor do COFNS retido (retTrib)."
            ElseIf lngValor.Contains("vRetCSLL") Then
                strGrupo += "retTrib - "
                strMsg = strGrupo + "Valor da CSLL retida (retTrib)."
            ElseIf lngValor.Contains("vBCIRRF") Then
                strGrupo += "retTrib - "
                strMsg = strGrupo + "Base de cálculo do IRRF (retTrib)."
            ElseIf lngValor.Contains("vIRRF") Then
                strGrupo += "retTrib - "
                strMsg = strGrupo + "Valor do IRRF retido (retTrib)."

                'gProcRef - Grupo Processo referenciado
            ElseIf lngValor.Contains("vItem") Then
                strGrupo += "gProcRef - "
                strMsg = strGrupo + "Valor unitário do item (gProcRef)."
            ElseIf lngValor.Contains("qFaturada") Then
                strGrupo += "gProcRef - "
                strMsg = strGrupo + "Quantidade Faturada (gProcRef)."
            ElseIf lngValor.Contains("vProd") Then
                strGrupo += "gProcRef - "
                strMsg = strGrupo + "Valor total do item (gProcRef)."
            ElseIf lngValor.Contains("indDevolucao") Then
                strGrupo += "gProcRef - "
                strMsg = strGrupo + "Indicador de devolução do valor do item (gProcRef)."
            ElseIf lngValor.Contains("vBC") Then
                strGrupo += "gProcRef - "
                strMsg = strGrupo + "Valor da BC do ICMS (gProcRef)."
            ElseIf lngValor.Contains("pICMS") Then
                strGrupo += "gProcRef - "
                strMsg = strGrupo + "Alíquota do ICMS (gProcRef)."
            ElseIf lngValor.Contains("vICMS") Then
                strGrupo += "gProcRef - "
                strMsg = strGrupo + "Valor do ICMS (gProcRef)."
                '--- x --- Sequência XML
            ElseIf lngValor.Contains("pFCP") Then
                strGrupo += "gProcRef - "
                strMsg = strGrupo + "Percentual de ICMS relativo ao Fundo de Combate à Pobreza - FCP (gProcRef)."
            ElseIf lngValor.Contains("vFCP") Then
                strGrupo += "gProcRef - "
                strMsg = strGrupo + "Valor do ICMS relativo ao Fundo de Combate à Pobreza - FCP (gProcRef)."
                '--- x --- Sequência XML
            ElseIf lngValor.Contains("vBCST") Then
                strGrupo += "gProcRef - "
                strMsg = strGrupo + "Valor da BC do ICMS ST (gProcRef)."
            ElseIf lngValor.Contains("pICMSST") Then
                strGrupo += "gProcRef - "
                strMsg = strGrupo + "Alíquota do ICMS ST (gProcRef)."
            ElseIf lngValor.Contains("vICMSST") Then
                strGrupo += "gProcRef - "
                strMsg = strGrupo + "Valor do ICMS ST retido (gProcRef)."
                '--- x --- Sequência XML
            ElseIf lngValor.Contains("pFCPST") Then
                strGrupo += "gProcRef - "
                strMsg = strGrupo + "Percentual de ICMS relativo ao Fundo de Combate à Pobreza - FCP (gProcRef)."
            ElseIf lngValor.Contains("vFCPST") Then
                strGrupo += "gProcRef - "
                strMsg = strGrupo + "Valor do ICMS relativo ao Fundo de Combate à Pobreza - FCP (gProcRef)."
            ElseIf lngValor.Contains("vPIS") Then
                strGrupo += "gProcRef - "
                strMsg = strGrupo + "Valor do PIS (gProcRef)."
            ElseIf lngValor.Contains("vPISEfet") Then
                strGrupo += "gProcRef - "
                strMsg = strGrupo + "Valor efetivo do PIS (gProcRef)."
            ElseIf lngValor.Contains("vCOFINS") Then
                strGrupo += "gProcRef - "
                strMsg = strGrupo + "Valor do COFINS (gProcRef)."
            ElseIf lngValor.Contains("vCOFINSEfet") Then
                strGrupo += "gProcRef - "
                strMsg = strGrupo + "Valor Efetivo do COFINS (gProcRef)."

                'gProc - Grupo identificador do Processo
            ElseIf lngValor.Contains("tpProc") Then
                strGrupo += "gProc - "
                strMsg = strGrupo + "Tipo de Processo (gProc)."
            ElseIf lngValor.Contains("nProcesso") Then
                strGrupo += "gProc - "
                strMsg = strGrupo + "Número do Processo (gProc)."


                '*****
                'gContab - Grupo de Informações Contábeis
            ElseIf lngValor.Contains("cContab") Then
                strGrupo += "gContab - "
                strMsg = strGrupo + "Número da Conta Contábil do lançamento (gContab)."
            ElseIf lngValor.Contains("xContab") Then
                strGrupo += "gContab - "
                strMsg = strGrupo + "Descrição da conta contábil (gContab)."
            ElseIf lngValor.Contains("vContab") Then
                strGrupo += "gContab - "
                strMsg = strGrupo + "Valor do lançamento na conta contábil (gContab)."
            ElseIf lngValor.Contains("tpLanc") Then
                strGrupo += "gContab - "
                strMsg = strGrupo + "Tipo de lançamento contábil (gContab)."
            ElseIf lngValor.Contains("infAdProd") Then
                strGrupo += "gContab - "
                strMsg = strGrupo + "Informações adicionais do produto norma referenciada, informações complementares, etc (gContab)."

                'total - Dados dos totais da NF3e
            ElseIf lngValor.Contains("vProd") Then
                strGrupo += "total - "
                strMsg = strGrupo + "Valor Total dos produtos e serviços (total)."

                'ICMSTot - Totais referentes ao ICMS
            ElseIf lngValor.Contains("vBC") Then
                strGrupo += "ICMSTot - "
                strMsg = strGrupo + "BC do ICMS (ICMSTot)."
            ElseIf lngValor.Contains("vICMS") Then
                strGrupo += "ICMSTot - "
                strMsg = strGrupo + "Valor Total do ICMS (ICMSTot)."
            ElseIf lngValor.Contains("vICMSDeson") Then
                strGrupo += "ICMSTot - "
                strMsg = strGrupo + "Valor Total do ICMS desonerado (ICMSTot)."
            ElseIf lngValor.Contains("vFCP") Then
                strGrupo += "ICMSTot - "
                strMsg = strGrupo + "Valor Total do FCP - Fundo de Combate à Pobreza (ICMSTot)."
            ElseIf lngValor.Contains("vBCST") Then
                strGrupo += "ICMSTot - "
                strMsg = strGrupo + "BC do ICMS ST (ICMSTot)."
            ElseIf lngValor.Contains("vST") Then
                strGrupo += "ICMSTot - "
                strMsg = strGrupo + "Valor Total do ICMS ST (ICMSTot)."
            ElseIf lngValor.Contains("vFCPST") Then
                strGrupo += "ICMSTot - "
                strMsg = strGrupo + "Valor Total do FCP - Fundo de Combate à Pobreza - retido por substituição tributária (ICMSTot)."

                'vRetTribTot - Total da retenção de tributos federais
            ElseIf lngValor.Contains("vRetPIS") Then
                strGrupo += "vRetTribTot - "
                strMsg = strGrupo + "Valor do PIS retido (vRetTribTot)."
            ElseIf lngValor.Contains("vRetCofins") Then
                strGrupo += "vRetTribTot - "
                strMsg = strGrupo + "Valor do COFNS retido (vRetTribTot)."
            ElseIf lngValor.Contains("vRetCSLL") Then
                strGrupo += "vRetTribTot - "
                strMsg = strGrupo + "Valor da CSLL retida (vRetTribTot)."
            ElseIf lngValor.Contains("vIRRF") Then
                strGrupo += "vRetTribTot - "
                strMsg = strGrupo + "Valor do IRRF retido (vRetTribTot)."
            ElseIf lngValor.Contains("vCOFINS") Then
                strGrupo += "vRetTribTot - "
                strMsg = strGrupo + "Valor do COFINS (vRetTribTot)."
            ElseIf lngValor.Contains("vCOFINSEfet") Then
                strGrupo += "vRetTribTot - "
                strMsg = strGrupo + "Total do Valor Efetivo do COFINS (vRetTribTot)."
            ElseIf lngValor.Contains("vPIS") Then
                strGrupo += "vRetTribTot - "
                strMsg = strGrupo + "Valor do PIS (vRetTribTot)."
            ElseIf lngValor.Contains("vPISEfet") Then
                strGrupo += "vRetTribTot - "
                strMsg = strGrupo + "Total do Valor Efetivo do PIS (vRetTribTot)."
            ElseIf lngValor.Contains("vNF") Then
                strGrupo += "vRetTribTot - "
                strMsg = strGrupo + "Valor Total da NF-e (vRetTribTot)."

                'gFat - Grupo de informações de controle da Fatura
            ElseIf lngValor.Contains("CompetFat") Then
                strGrupo += "gFat - "
                strMsg = strGrupo + "Ano e mês referência do faturamento - AAAAMM (gFat)"
            ElseIf lngValor.Contains("dVencFat") Then
                strGrupo += "gFat - "
                strMsg = strGrupo + "Data de vencimento da fatura (gFat)"
            ElseIf lngValor.Contains("dApresFat") Then
                strGrupo += "gFat - "
                strMsg = strGrupo + "Data de apresentação da fatura (gFat)"
            ElseIf lngValor.Contains("dProxLeitura") Then
                strGrupo += "gFat - "
                strMsg = strGrupo + "Data prevista próxima leitura (gFat)"
            ElseIf lngValor.Contains("nFat") Then
                strGrupo += "gFat - "
                strMsg = strGrupo + "Número da Fatura (gFat)"
            ElseIf lngValor.Contains("codBarras") Then
                strGrupo += "gFat - "
                strMsg = strGrupo + "Linha digitável do código de barras (gFat)"
            ElseIf lngValor.Contains("codDebAuto") Then
                strGrupo += "gFat - "
                strMsg = strGrupo + "Código de autorização débito em conta (gFat)"
                '--- x --- Sequência XML
            ElseIf lngValor.Contains("codBanco") Then
                strGrupo += "gFat - "
                strMsg = strGrupo + "Número do banco para débito em conta (gFat)"
            ElseIf lngValor.Contains("codAgencia") Then
                strGrupo += "gFat - "
                strMsg = strGrupo + "Número da agência bancária para débito em conta (gFat)"

                'enderCorresp - Endereço de entrega da fatura.
            ElseIf lngValor.Contains("xLgr") Then
                strGrupo += "enderCorresp - "
                strMsg = strGrupo + "Logradouro (enderCorresp)"
            ElseIf lngValor.Contains("nro") Then
                strGrupo += "enderCorresp - "
                strMsg = strGrupo + "Número (enderCorresp)"
            ElseIf lngValor.Contains("xCpl") Then
                strGrupo += "enderCorresp - "
                strMsg = strGrupo + "Complemento (enderCorresp)"
            ElseIf lngValor.Contains("xBairro") Then
                strGrupo += "enderCorresp - "
                strMsg = strGrupo + "Bairro (enderCorresp)"
            ElseIf lngValor.Contains("cMun") Then
                strGrupo += "enderCorresp - "
                strMsg = strGrupo + "Código do município - utilizar a tabela do IBGE (enderCorresp)"
            ElseIf lngValor.Contains("xMun") Then
                strGrupo += "enderCorresp - "
                strMsg = strGrupo + "Nome do município (enderCorresp)"
            ElseIf lngValor.Contains("CEP") Then
                strGrupo += "enderCorresp - "
                strMsg = strGrupo + "CEP (enderCorresp)"
            ElseIf lngValor.Contains("UF") Then
                strGrupo += "enderCorresp - "
                strMsg = strGrupo + "Sigla da UF (enderCorresp)"
            ElseIf lngValor.Contains("fone") Then
                strGrupo += "enderCorresp - "
                strMsg = strGrupo + "Telefone (enderCorresp)"
            ElseIf lngValor.Contains("email") Then
                strGrupo += "enderCorresp - "
                strMsg = strGrupo + "Endereço de E-mail (enderCorresp)"

                'gPIX - Grupo de informações do PIX
            ElseIf lngValor.Contains("urlQRCodePIX") Then
                strGrupo += "gPIX - "
                strMsg = strGrupo + "URL do QRCode do PIX que será apresentado na fatura (gPIX)"

                'gANEEL - Grupo de informações da Agência Nacional de Energia Eletrica
                'gHistFat - Histórico de Faturamento
            ElseIf lngValor.Contains("xGrandFat") Then
                strGrupo += "gHistFat - "
                strMsg = strGrupo + "Nome da grandeza faturada para exibição (gHistFat)"

                'gGrandFat - Grandezas faturadas
            ElseIf lngValor.Contains("CompetFat") Then
                strGrupo += "gGrandFat - "
                strMsg = strGrupo + "Ano e mês referência do faturamento - AAAAMM (gGrandFat)"
            ElseIf lngValor.Contains("vFat") Then
                strGrupo += "gGrandFat - "
                strMsg = strGrupo + "Valor Faturado (gGrandFat)"
            ElseIf lngValor.Contains("uMed") Then
                strGrupo += "gGrandFat - "
                strMsg = strGrupo + "Unidade Básica de Medida (gGrandFat)"
            ElseIf lngValor.Contains("qtdDias") Then
                strGrupo += "gGrandFat - "
                strMsg = strGrupo + "Quantidade de dias de medição (gGrandFat)"

                'autXML - Autorizados para download do XML do DF-e
            ElseIf lngValor.Contains("CNPJ") Then
                strGrupo += "autXML - "
                strMsg = strGrupo + "CNPJ do autorizado (autXML)"
            ElseIf lngValor.Contains("CPF") Then
                strGrupo += "autXML - "
                strMsg = strGrupo + "CPF do autorizado (autXML)"

                'infAdic - Informações Adicionais
                '--- x --- Sequência XML
            ElseIf lngValor.Contains("infAdFisco") Then
                strGrupo += "infAdic - "
                strMsg = strGrupo + "Informações adicionais de interesse do Fisco (infAdic)"
            ElseIf lngValor.Contains("infCpl") Then
                strGrupo += "infAdic - "
                strMsg = strGrupo + "Informações complementares de interesse do Contribuinte (infAdic)"

                'gRespTec - Informações do Responsável Técnico pela emissão do DF-e
            ElseIf lngValor.Contains("CNPJ") Then
                strGrupo += "gRespTec - "
                strMsg = strGrupo + "CNPJ da pessoa jurídica responsável técnica pelo sistema utilizado na emissão do documento fiscal eletrônico (gRespTec)"
            ElseIf lngValor.Contains("xContato") Then
                strGrupo += "gRespTec - "
                strMsg = strGrupo + "Nome da pessoa a ser contatada (gRespTec)"
            ElseIf lngValor.Contains("email") Then
                strGrupo += "gRespTec - "
                strMsg = strGrupo + "E-mail da pessoa jurídica a ser contatada (gRespTec)"
            ElseIf lngValor.Contains("fone") Then
                strGrupo += "gRespTec - "
                strMsg = strGrupo + "Telefone da pessoa jurídica a ser contatada (gRespTec)"
                '--- x --- Sequência XML
            ElseIf lngValor.Contains("idCSRT") Then
                strGrupo += "gRespTec - "
                strMsg = strGrupo + "Identificador do código de segurança do responsável técnico (gRespTec)"
            ElseIf lngValor.Contains("hashCSRT") Then
                strGrupo += "gRespTec - "
                strMsg = strGrupo + " Hash do token do código de segurança do responsável técnico (gRespTec)"

                'infNF3eSupl - Informações suplementares da NF3e
            ElseIf lngValor.Contains("qrCodNF3e") Then
                strGrupo += "infNF3eSupl - "
                strMsg = strGrupo + "Texto com o QR-Code para consulta da NF3e (infNF3eSupl)"
                'ds:Signature

            Else
                Return ""
            End If
            Return strMsg & " não localizada/o! "
        Catch ex As Exception
            Return ""
        End Try
    End Function
    Private Function lUpdate(ByRef objTempFaturaNF3EB As entidadeTempFaturaNF3EB) As Boolean
        Dim repositorioTempFaturaNF3EB As New repositorioTempFaturaNF3EB
        Try

            repositorioTempFaturaNF3EB.Update(objTempFaturaNF3EB)

            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function

    Private Function lUpdate(ByRef objTempFaturaNF3EA As entidadeTempFaturaNF3EA) As Boolean
        Dim repositorioTempFaturaNF3EA As New repositorioTempFaturaNF3EA
        Try

            repositorioTempFaturaNF3EA.Update(objTempFaturaNF3EA)

            Return True
        Catch ex As Exception
            Return False
        End Try
    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
            Return False
        End Try
    End Function

    Private Function lUpdate_1(ByRef objTempFaturaNF3EA As entidadeTempFaturaNF3EA) As Boolean
        Dim repositorioTempFaturaNF3EA As New repositorioTempFaturaNF3EA
        Try

            repositorioTempFaturaNF3EA.Update_1(objTempFaturaNF3EA)

            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function

    Private Function lUpdate_1(ByRef objTempFaturaNF3EB As entidadeTempFaturaNF3EB) As Boolean
        Dim repositorioTempFaturaNF3EB As New repositorioTempFaturaNF3EB
        Try

            repositorioTempFaturaNF3EB.Update_1(objTempFaturaNF3EB)

            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function

    Private Function lUpdate_2(ByRef objTempFaturaNF3EB As entidadeTempFaturaNF3EB) As Boolean
        Dim repositorioTempFaturaNF3EB As New repositorioTempFaturaNF3EB
        Try

            repositorioTempFaturaNF3EB.Update_2(objTempFaturaNF3EB)

            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function

    Private Function lDelete(ByRef objTempFaturaNF3EB As entidadeTempFaturaNF3EB) As Boolean
        Dim repositorioTempFaturaNF3EB As New repositorioTempFaturaNF3EB
        Try

            repositorioTempFaturaNF3EB.Delete(objTempFaturaNF3EB)

            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function

    Private Function lDelete(ByRef objTempFaturaNF3EA As entidadeTempFaturaNF3EA) As Boolean
        Dim repositorioTempFaturaNF3EA As New repositorioTempFaturaNF3EA
        Try

            repositorioTempFaturaNF3EA.Delete(objTempFaturaNF3EA)

            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function

    Private Function lDelete(ByRef objTempHistFaturaNF3EA As entidadeTempHistFaturaNF3EA) As Boolean
        Dim repositorioTempHistFaturaNF3EA As New repositorioTempHistFaturaNF3EA
        Try

            repositorioTempHistFaturaNF3EA.Delete(objTempHistFaturaNF3EA)

            Return True
        Catch ex As Exception
            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
            Return False
        End Try
    End Function

    Private Function lInsert(ByRef objTempFaturaNF3EA As entidadeTempFaturaNF3EA) As Boolean
        Dim repositorioTempFaturaNF3EA As New repositorioTempFaturaNF3EA
        Try

            repositorioTempFaturaNF3EA.Insert(objTempFaturaNF3EA)

            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function

    Private Function lInsert(ByRef objTempFaturaNF3EB As entidadeTempFaturaNF3EB) As Boolean
        Dim repositorioTempFaturaNF3EB As New repositorioTempFaturaNF3EB
        Try

            repositorioTempFaturaNF3EB.Insert(objTempFaturaNF3EB)

            Return True
        Catch ex As Exception
            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
            Return False
        End Try
    End Function

    Private Sub btnDiretorio_Click(sender As Object, e As EventArgs) Handles btnDiretorio.Click
        Try
            Dim fbd1 As New FolderBrowserDialog()
            fbd1.Description = "Selecione um diretório para realizar a geração"
            fbd1.RootFolder = Environment.SpecialFolder.MyComputer
            fbd1.ShowNewFolderButton = True
            If fbd1.ShowDialog = Windows.Forms.DialogResult.OK Then
                txtDiretorio.Text = fbd1.SelectedPath
                txtArquivo.Text = fbd1.SelectedPath
            Else
                txtDiretorio.Text = String.Empty
                txtArquivo.Text = String.Empty
                Exit Sub
            End If

            'Dim sfd1 As New SaveFileDialog()
            'sfd1.Filter = "txt files (*.re)|*.re"
            'sfd1.FilterIndex = 2
            'sfd1.RestoreDirectory = True
            'sfd1.FileName = "sefip.re"
            'If sfd1.ShowDialog() = DialogResult.OK Then
            '    txtDiretorio.Text = sfd1.InitialDirectory
            '    txtArquivo.Text = sfd1.FileName
            'Else
            '    txtDiretorio.Text = String.Empty
            '    txtArquivo.Text = String.Empty
            '    Exit Sub
            'End If
        Catch ex As Exception

        End Try
    End Sub

    Private Sub btLimparTipoLogradouro_Click(sender As Object, e As EventArgs) Handles btLimparTipoLogradouro.Click
        txtDiretorio.Text = String.Empty
    End Sub

    Public Function BuscaRefItemLocal(ByVal astrTexto As String, ByVal astrBusca As String, Optional astrProximo As Integer = 0) As String

        Dim intP1 As Short
        Dim intP2 As Short
        Dim intP3 As Short
        Dim intP4 As Short
        Dim strAux As String
        Dim strCod As String

        Try

            intP1 = 1

            intP1 = InStr(intP1, astrTexto, astrBusca)

            If intP1 > 0 Then
                While intP1 <= Len(astrTexto)
                    intP2 = InStr(intP1, astrTexto, ";")
                    strAux = Mid(astrTexto, intP1, intP2 - intP1)
                    intP3 = InStr(1, strAux, "?")
                    intP4 = InStr(1, strAux, "$")
                    strCod = Strings.Left(strAux, intP3 - 1)
                    If Strings.Left(strCod, Len(astrBusca)) = astrBusca Then
                        If intP4 > 0 Then
                            BuscaRefItemLocal = Mid(strAux, intP4 + 1, (intP2 - 1) - intP3)
                        Else
                            BuscaRefItemLocal = String.Empty
                        End If
                    End If
                    If (BuscaRefItemLocal <> String.Empty) And (astrProximo = 1) Then
                        Exit While
                    End If
                    intP1 = intP2 + 1
                End While
            End If

        Catch ex As Exception
            Exit Function
        End Try

    End Function

    Public Function BuscaValorItemLocal(ByVal astrTexto As String, ByVal astrBusca As String, Optional ByVal astrTarifa As String = "", Optional ByVal astrProximo As Integer = 0) As Double

        Dim intP1 As Short
        Dim intP2 As Short
        Dim intP3 As Short
        Dim intP4 As Short
        Dim intTe As Short
        Dim strAux As String
        Dim strCod As String
        Dim dblValor As Double
        Dim ldblRet As Double

        Try

            intP1 = 1
            intP1 = InStr(intP1, astrTexto, astrBusca)
            ldblRet = 0
            If intP1 > 0 Then
                While intP1 <= Len(astrTexto)
                    intP2 = InStr(intP1, astrTexto, ";")
                    strAux = Trim(Mid(astrTexto, intP1, intP2 - intP1))
                    intP3 = InStr(1, strAux, "?")
                    intP4 = InStr(1, strAux, "$")
                    If intP3 > 0 Then
                        strCod = Strings.Left(strAux, intP3 - 1)

                        If intP4 > 0 Then
                            If strCod <> "0302080099" Then
                                If (intP3 + 1) = intP4 Then
                                    dblValor = 0
                                Else
                                    If astrTarifa <> "" Then
                                        If strCod.Substring(0, 3) = astrTarifa.Substring(0, 3) And strCod.Substring(strCod.Length - 3).Substring(0, IIf(astrTarifa.Contains("B"), 2, 3)) = astrTarifa.Substring(astrTarifa.Length - 3).Substring(0, IIf(astrTarifa.Contains("B"), 2, 3)) Then
                                            dblValor = CDbl(Replace(Mid(strAux, intP3 + 1, IIf(((intP4 - 1) - intP3) <= 0, 1, (intP4 - 1) - intP3)), ".", ","))
                                            'dblValor = CDbl(Replace(Mid(strAux, intP3 + 1, IIf((Len(strAux) - intP3) <= 0, 1, Len(strAux) - intP3)), ".", ","))
                                        Else
                                            dblValor = 0
                                        End If
                                    Else
                                        dblValor = CDbl(Replace(Mid(strAux, intP3 + 1, IIf(((intP4 - 1) - intP3) <= 0, 1, (intP4 - 1) - intP3)), ".", ","))
                                    End If
                                End If
                            End If
                        Else
                            If strCod <> "0302080099" Then
                                If intP3 + 1 > Len(strAux) Then
                                    dblValor = 0
                                Else
                                    If astrTarifa <> "" Then
                                        If strCod.Substring(0, 3) = astrTarifa.Substring(0, 3) And strCod.Substring(strCod.Length - 3).Substring(0, IIf(astrTarifa.Contains("B"), 2, 3)) = astrTarifa.Substring(astrTarifa.Length - 3).Substring(0, IIf(astrTarifa.Contains("B"), 2, 3)) Then
                                            dblValor = CDbl(Replace(Mid(strAux, intP3 + 1, IIf((Len(strAux) - intP3) <= 0, 1, Len(strAux) - intP3)), ".", ","))
                                        Else
                                            dblValor = 0
                                        End If
                                    Else
                                        dblValor = CDbl(Replace(Mid(strAux, intP3 + 1, IIf((Len(strAux) - intP3) <= 0, 1, Len(strAux) - intP3)), ".", ","))
                                    End If
                                End If
                            End If
                        End If
                        If Strings.Left(strCod, Len(astrBusca)) = astrBusca Then
                            ldblRet = ldblRet + dblValor
                        End If
                    End If

                    If (dblValor > 0) And (astrProximo = 1) Then
                        Exit While
                    End If

                    intP1 = intP2 + 1
                End While
            End If
            BuscaValorItemLocal = ldblRet

        Catch ex As Exception
            Exit Function
        End Try

    End Function

#End Region

End Class