Option Strict Off
Option Explicit On
Imports VB = Microsoft.VisualBasic
Imports fatd_faturamento.BLL.Repositorio
Imports fatd_faturamento.ENTIDADE
Imports CrystalDecisions.CrystalReports.Engine
Friend Class frmRelDesligados
	Inherits System.Windows.Forms.Form
	'Private ifrmRelDesligados As FrmRelatorio
	Private istrCabecalho As String
	Private istrTitulo As String
	Private istrSubTitulo As String
	Private istrSubTitulo2 As String
	Private iblnGeraCabecalho As Boolean
	Private dt, dt1, dt2, dt3 As DataTable
	Private objAtualizaBancoDados As New entidadeAtualizaBancoDados
	Private repositorioAtualizaBancoDados As New repositorioAtualizaBancoDados

	Private objExecAtualizaBancoDados As New entidadeAtualizaBancoDados
	Private repositorioExecAtualizaBancoDados As New repositorioAtualizaBancoDados
	Private LImagem() As Byte
	Private sNomeEmpresa As String
	Private sEnderecoEmpresa As String
	Private sCepEmpresa As String
	Private sCidadeEmpresa As String
	Private sUFempresa As String
	Private sBairroEmpresa As String
	Private sFoneEmpresa As String
	Private sWebEmpresa As String
	Private bValidacao As Boolean
	Private Sub chkMonofasico_CheckStateChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles chkMonofasico.CheckStateChanged
		Try
			If (Me.chkMonofasico.CheckState) Then
				Me.txtQtdM.Enabled = True
				Me.txtQtdM.BackColor = System.Drawing.SystemColors.Window
			Else
				Me.txtQtdM.Enabled = False
				Me.txtQtdM.BackColor = System.Drawing.SystemColors.Control
			End If
		Catch ex As Exception
			MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: chkMonofasico_CheckStateChanged" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
			Exit Sub
		End Try
	End Sub
	Private Sub chkBifasico_CheckStateChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles chkBifasico.CheckStateChanged
		Try
			If (Me.chkBifasico.CheckState) Then
				Me.txtQtdB.Enabled = True
				Me.txtQtdB.BackColor = System.Drawing.SystemColors.Window
			Else
				Me.txtQtdB.Enabled = False
				Me.txtQtdB.BackColor = System.Drawing.SystemColors.Control
			End If
		Catch ex As Exception
			MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: chkBifasico_CheckStateChanged" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
			Exit Sub
		End Try
	End Sub
	Private Sub chkTrifasico_CheckStateChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles chkTrifasico.CheckStateChanged
		Try
			If (Me.chkTrifasico.CheckState) Then
				Me.txtQtdT.Enabled = True
				Me.txtQtdT.BackColor = System.Drawing.SystemColors.Window
			Else
				Me.txtQtdT.Enabled = False
				Me.txtQtdT.BackColor = System.Drawing.SystemColors.Control
			End If
		Catch ex As Exception
			MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: chkTrifasico_CheckStateChanged" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
			Exit Sub
		End Try
	End Sub

	Private Sub cmdFechar_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdFechar.Click
		Call Me.Close()
	End Sub
	Private Sub GerarRelDesligados()
		Dim lstrZLC As String
		Dim lstrNome As String
		Dim lstrEndereco As String
		Dim lstrEndNum As String
		Dim lstrEndBai As String
		Dim lstrEndCom As String
		Dim lstrEndQua As String
		Dim lstrEndLot As String
		Dim lstrMedidor As String
		Dim lstrFase As String
		Dim lstrRota As String
		Dim lstrStatus As String
		Dim ldteStatus As Date
		Dim lstrTemp As String
		Dim lstrTamCol As String
		'
		Dim lstrUltRota As String
		'
		Dim llngCortados As Integer
		Dim llngDesligados As Integer
		Dim llngDesativados As Integer
		Dim llngTotCortados As Integer
		Dim llngTotDesligados As Integer
		Dim llngTotDesativados As Integer
		'
		Dim lstrFilSit As String
		Dim lstrSql As String
		'Dim lrstConsulta As ADODB.Recordset
		'lrstConsulta = New ADODB.Recordset

		Try

			Me.lblInfo.Text = " Buscando dados..."
			Call Me.lblInfo.Refresh()
			'
			lstrTamCol = "<20mm|<15mm|<65mm|<122mm|>16mm|<12mm|<16mm|<16mm;"
			istrTitulo = "Relatório de Desligados"
			If Me.chkCortados.CheckState = System.Windows.Forms.CheckState.Checked Then
				istrTitulo = istrTitulo & " + Cortados"
			End If
			If Me.chkDesativados.CheckState = System.Windows.Forms.CheckState.Checked Then
				istrTitulo = istrTitulo & " + Desativados"
			End If
			istrTitulo = istrTitulo & " até " & VB6.Format(Me.dtpBase.Value, "dd/mm/yyyy")
			istrSubTitulo = ""
			If Me.chkComMedidor.CheckState = System.Windows.Forms.CheckState.Checked Then
				istrSubTitulo = istrSubTitulo & " Com Medidor"
			Else
				istrSubTitulo = istrSubTitulo & " Todos"
			End If
			If Me.opbGrupoAB.Checked Then
				istrSubTitulo = istrSubTitulo & " - Grupo (A+B) "
			ElseIf Me.opbGrupoA.Checked Then
				istrSubTitulo = istrSubTitulo & " - Grupo (A) "
			ElseIf Me.opbGrupoB.Checked Then
				istrSubTitulo = istrSubTitulo & " - Grupo (B) "
			End If
			istrSubTitulo2 = ""
			istrCabecalho = lstrTamCol & "Identificação|Rota|Nome|Endereço|Medidor|Fase|Status|Dt. Status"
			iblnGeraCabecalho = True
			'
			'Filtro da situacao
			lstrFilSit = "`situacao` IN('D'"
			If Me.chkCortados.CheckState = System.Windows.Forms.CheckState.Checked Then
				lstrFilSit = lstrFilSit & ", 'C'"
			End If
			If Me.chkDesativados.CheckState = System.Windows.Forms.CheckState.Checked Then
				lstrFilSit = lstrFilSit & ", 'I'"
			End If
			lstrFilSit = lstrFilSit & ")"
			'Filtro do Grupo
			lstrSql = ""
			If Me.opbGrupoA.Checked Or Me.opbGrupoAB.Checked Then
				lstrSql = lstrSql & "SELECT `zona`, `livro`, `conta`, `cons_id`, `unid_id`, "
				lstrSql = lstrSql & "       `nome`, `end` AS `endereco`, `numero`, `complement`, `bairro`, `lote`, `quadra`, "
				lstrSql = lstrSql & "       `fase`, `situacao`, `data_desligamento`, `data_corte`, `rota`, `eletr` AS `medidor` "
				lstrSql = lstrSql & "  FROM `uc_faturamento` "
				lstrSql = lstrSql & " WHERE "
				lstrSql = lstrSql & " ((data_desligamento ='0000-00-00' OR data_desligamento <= '" & VB6.Format(Me.dtpBase.Value, "yyyy-MM-dd") & "') OR "
				lstrSql = lstrSql & "  (data_corte ='0000-00-00' OR data_corte <= '" & VB6.Format(Me.dtpBase.Value, "yyyy-MM-dd") & "')) AND " & lstrFilSit
				If Me.chkComMedidor.CheckState = System.Windows.Forms.CheckState.Checked Then
					lstrSql = lstrSql & " AND (eletr IS NOT NULL AND eletr <> '' AND eletr <> '0') "
				End If
			End If

			lstrSql = lstrSql & " ORDER BY RIGHT(rota, 6) ASC, zona ASC, livro ASC, conta ASC"
			objAtualizaBancoDados.QUERY_NAME = lstrSql
			dt = repositorioAtualizaBancoDados.Consultar(objAtualizaBancoDados)

			If dt.Rows.Count > 0 Then
				For Each rowRota As DataRow In dt.Rows
					lstrRota = VB6.Format(Trim(IIf(IsDBNull(rowRota.Item("rota")), "", rowRota.Item("rota"))), "00000000")
					istrSubTitulo2 = "rota: " & VB.Right(VB.Left(lstrRota, 4), 2)
				Next
				Call BarraProgresso((Me.ProgressBar), (Me.lblPerc), (Me.lblInfo), 0, dt.Rows.Count)
				llngDesligados = 0
				llngCortados = 0
				llngDesativados = 0
				llngTotDesligados = 0
				llngTotCortados = 0
				llngTotDesativados = 0
				lstrUltRota = ""
				For Each row As DataRow In dt.Rows

					lstrZLC = VB6.Format(Trim(IIf(IsDBNull(row.Item("zona")), "000", row.Item("zona"))), "000") & "." & VB6.Format(Trim(IIf(IsDBNull(row.Item("livro")), "00", row.Item("livro"))), "00") & "." & VB6.Format(Trim(IIf(IsDBNull(row.Item("conta")), "000000", row.Item("conta"))), "000000")
					lstrNome = Trim(IIf(IsDBNull(row.Item("nome")), "", row.Item("nome")))
					lstrNome = VB.Left(lstrNome, 30)
					lstrEndereco = Trim(IIf(IsDBNull(row.Item("endereco")), "", row.Item("endereco")))
					lstrEndNum = Trim(IIf(IsDBNull(row.Item("numero")), "", row.Item("numero")))
					lstrEndCom = Trim(IIf(IsDBNull(row.Item("complement")), "", row.Item("complement")))
					lstrEndQua = Trim(IIf(IsDBNull(row.Item("quadra")), "", row.Item("quadra")))
					lstrEndLot = Trim(IIf(IsDBNull(row.Item("lote")), "", row.Item("lote")))
					lstrEndBai = Trim(IIf(IsDBNull(row.Item("bairro")), "", row.Item("bairro")))
					If Len(lstrEndNum) > 0 Then
						lstrEndereco = lstrEndereco & ", " & lstrEndNum
					End If
					If Len(lstrEndCom) > 0 Then
						lstrEndereco = lstrEndereco & " - " & lstrEndCom
					End If
					If Len(lstrEndQua) > 0 Then
						lstrEndereco = lstrEndereco & " - Q: " & lstrEndQua
					End If
					If Len(lstrEndLot) > 0 Then
						lstrEndereco = lstrEndereco & " - L: " & lstrEndLot
					End If
					If Len(lstrEndBai) > 0 Then
						lstrEndereco = lstrEndereco & " - " & lstrEndBai
					End If

					lstrMedidor = Trim(IIf(IsDBNull(row.Item("medidor")), "", row.Item("medidor")))

					lstrRota = VB6.Format(Trim(IIf(IsDBNull(row.Item("rota")), "", row.Item("rota"))), "00000000")
					istrSubTitulo2 = "Rota: " & VB.Right(VB.Left(lstrRota, 4), 2)
					If (lstrUltRota <> "" And lstrUltRota <> VB.Right(VB.Left(lstrRota, 4), 2)) Then
						'Monta Resumo da Rota
						'Call MontaResumoDesligados(llngDesligados, llngCortados, llngDesativados, "Resumo da Rota")
						'ifrmRelDesligados.VS.NewPage()
						llngDesligados = 0
						llngCortados = 0
						llngDesativados = 0
					End If
					lstrFase = Trim(IIf(IsDBNull(row.Item("fase")), "M", row.Item("fase")))
					If lstrFase = "M" Then
						lstrFase = "Monof."
					ElseIf lstrFase = "B" Then
						lstrFase = "Bif."
					ElseIf lstrFase = "T" Then
						lstrFase = "Trif."
					End If
					lstrStatus = UCase(Trim(IIf(IsDBNull(row.Item("situacao")), "L", row.Item("situacao"))))
					If lstrStatus = "D" Then
						lstrStatus = "Desligado"
						ldteStatus = CDate(IIf(IsDBNull(row.Item("data_desligamento")), "1900-01-01", row.Item("data_desligamento")))
						llngDesligados = llngDesligados + 1
						llngTotDesligados = llngTotDesligados + 1
					ElseIf lstrStatus = "C" Then
						lstrStatus = "Cortado"
						ldteStatus = CDate(IIf(IsDBNull(row.Item("data_corte")), "1900-01-01", row.Item("data_corte")))
						llngCortados = llngCortados + 1
						llngTotCortados = llngTotCortados + 1
					ElseIf lstrStatus = "I" Then
						lstrStatus = "Desativado"
						ldteStatus = CDate(IIf(IsDBNull(row.Item("data_desligamento")), "1900-01-01", row.Item("data_desligamento")))
						llngDesativados = llngDesativados + 1
						llngTotDesativados = llngTotDesativados + 1
					End If

					lstrTemp = ""
					lstrTemp = lstrTemp & lstrZLC & "|"
					lstrTemp = lstrTemp & VB.Left(lstrRota, 4) & "." & VB.Right(lstrRota, 4) & "|"
					lstrTemp = lstrTemp & lstrNome & "|"
					lstrTemp = lstrTemp & lstrEndereco & "|"
					lstrTemp = lstrTemp & lstrMedidor & "|"
					lstrTemp = lstrTemp & lstrFase & "|"
					lstrTemp = lstrTemp & lstrStatus & "|"
					lstrTemp = lstrTemp & IIf(ldteStatus <> CDate("01/01/1900"), VB6.Format(ldteStatus, "dd/mm/yyyy"), "__/__/____")
					'ifrmRelDesligados.VS.Table = lstrTamCol & lstrTemp
					lstrUltRota = VB.Right(VB.Left(lstrRota, 4), 2)

					lstrSql = "INSERT INTO AUX_DESLIGADOS SET "
					lstrSql = lstrSql & "IDENTIFICACAO = '" & lstrZLC & "' ,"
					lstrSql = lstrSql & "ROTA = '" & VB.Left(lstrRota, 4) & "' ,"
					lstrSql = lstrSql & "NOME = '" & lstrNome & "',"
					lstrSql = lstrSql & "ENDERECO = '" & lstrEndereco & "',"
					lstrSql = lstrSql & "MEDIDOR = '" & lstrMedidor & "',"
					lstrSql = lstrSql & "FASE = '" & lstrFase & "',"
					lstrSql = lstrSql & "STATUS = '" & lstrStatus & "',"
					lstrSql = lstrSql & "ROTA_COMP = '" & VB.Left(lstrRota, 4) & "." & VB.Right(lstrRota, 4) & "',"
					lstrSql = lstrSql & "DTSTATUS = '" & IIf(ldteStatus <> CDate("01/01/1900"), VB6.Format(ldteStatus, "dd/mm/yyyy"), "__/__/____") & "'"
					objExecAtualizaBancoDados.QUERY_NAME = lstrSql
					repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)

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

				'Monta Resumo da Última Rota
				'Call MontaResumoDesligados(llngDesligados, llngCortados, llngDesativados, "Resumo da Rota")

				'Monta Resumo Geral
				iblnGeraCabecalho = False
				istrSubTitulo2 = "Resumo Geral"
				'ifrmRelDesligados.VS.NewPage()
				'Call MontaResumoDesligados(llngTotDesligados, llngTotCortados, llngTotDesativados, "Resumo Geral")

				Me.lblInfo.Text = " Montando relatório..."
				Me.lblInfo.Refresh()

				'Call ifrmRelDesligados.VS.EndDoc()
				'Call ifrmRelDesligados.Show()

				Me.lblInfo.Text = " Concluído!"
				Me.lblInfo.Refresh()

			Else
				Me.lblInfo.Text = " Não há dados!"
				Me.lblInfo.Refresh()
			End If

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

	End Sub

	'Private Sub MontaResumoDesligados(ByVal alngDesligados As Integer, ByVal alngCortados As Integer, ByVal alngDesativados As Integer, ByVal astrTitulo As String)
	'	iblnGeraCabecalho = False
	'	'With ifrmRelDesligados
	'	'	.VS.TableBorder = VSVIEW6.TableBorderSettings.tbNone
	'	'	Call LineFeed(.VS, 2)
	'	'	.VS.MarginLeft = "110mm"
	'	'	'.VS.FontBold = True
	'	'	.VS.Table = "<50mm|>12mm;" & astrTitulo & "|"
	'	'	.VS.TableBorder = VSVIEW6.TableBorderSettings.tbAll
	'	'	.VS.Table = "<50mm|>12mm;Total de Desligados|" & VB6.Format(alngDesligados, "#,##0")
	'	'	If Me.chkCortados.CheckState = System.Windows.Forms.CheckState.Checked Then
	'	'		.VS.Table = "<50mm|>12mm;Total de Cortados|" & VB6.Format(alngCortados, "#,##0")
	'	'	End If
	'	'	If Me.chkDesativados.CheckState = System.Windows.Forms.CheckState.Checked Then
	'	'		.VS.Table = "<50mm|>12mm;Total de Desativados|" & VB6.Format(alngDesativados, "#,##0")
	'	'	End If
	'	'	.VS.TableBorder = VSVIEW6.TableBorderSettings.tbNone
	'	'	Call LineFeed(.VS, 1)
	'	'	.VS.TableBorder = VSVIEW6.TableBorderSettings.tbAll
	'	'	.VS.Table = "<50mm|>12mm;Total de Consumidores|" & VB6.Format(alngDesligados + alngCortados + alngDesativados, "#,##0")
	'	'	'.VS.FontBold = False
	'	'	.VS.MarginLeft = "7mm"
	'	'End With
	'	iblnGeraCabecalho = True
	'End Sub

	Private Sub GerarRelLigados()
		Dim lstrSql As String
		Dim lstrSqlFiltro As String
		'Dim lrstConsulta As ADODB.Recordset
		Dim lstrZLC As String
		Dim lstrGrupo As String
		Dim lstrNome As String
		Dim lstrEndereco As String
		Dim lstrMedidor As String
		Dim lstrFase As String
		Dim lstrStatus As String
		Dim lstrDtStatus As String
		Dim llngConsId As Integer
		Dim llngUnidId As Integer
		Dim lstrConsumo As String
		Dim lstrConst As String
		Dim lstrTemp As String
		Dim lstrTamCol As String
		Dim lstrRota As String
		Dim llngMonof As Integer
		Dim llngBif As Integer
		Dim llngTrif As Integer

		'lrstConsulta = New ADODB.Recordset
		Try

			lstrTamCol = "<20mm|<15mm|<65mm|<122mm|>16mm|>16mm|>16mm|<12mm;"
			istrTitulo = "Relatório de Ligados por Fase"
			istrSubTitulo = "Consumo referente ao Mês/Ano: " & VB6.Format(Me.dtpMesAno.Value, "mm/yyyy") & vbCrLf
			istrSubTitulo2 = ""
			If Me.chkMonofasico.CheckState = System.Windows.Forms.CheckState.Checked Then
				istrSubTitulo2 = istrSubTitulo2 & "Monofásicos até " & VB6.Format(Me.txtQtdM.Text, "#,##0") & "   -   "
				lstrSqlFiltro = lstrSqlFiltro & "u.fase = 'M' OR "
			End If
			If Me.chkBifasico.CheckState = System.Windows.Forms.CheckState.Checked Then
				istrSubTitulo2 = istrSubTitulo2 & "Bifásicos até " & VB6.Format(Me.txtQtdB.Text, "#,##0") & "   -   "
				lstrSqlFiltro = lstrSqlFiltro & "u.fase = 'B' OR "
			End If
			If Me.chkTrifasico.CheckState = System.Windows.Forms.CheckState.Checked Then
				istrSubTitulo2 = istrSubTitulo2 & "Trifásicos até " & VB6.Format(Me.txtQtdT.Text, "#,##0") & "   -   "
				lstrSqlFiltro = lstrSqlFiltro & "u.fase = 'T' OR "
			End If
			If Me.chkMonofasico.CheckState = System.Windows.Forms.CheckState.Checked Or Me.chkBifasico.CheckState = System.Windows.Forms.CheckState.Checked Or Me.chkTrifasico.CheckState = System.Windows.Forms.CheckState.Checked Then
				istrSubTitulo2 = VB.Left(istrSubTitulo2, Len(istrSubTitulo2) - 7)
				lstrSqlFiltro = VB.Left(lstrSqlFiltro, Len(lstrSqlFiltro) - 4)
			End If
			istrCabecalho = lstrTamCol & "Identificação|Rota|Nome|Endereço|Medidor|Consumo|Const.|Fase"

			'Filtro do Grupo
			'If Me.opbGrupoA.Checked Or Me.opbGrupoAB.Checked Then
			lstrSql = "SELECT u.zona, u.livro, u.conta, " & "       u.nome, u.`end` as endereco, u.numero, u.complement, u.bairro, u.lote, u.quadra, " & "       u.fase, u.`eletr` AS medidor, " & "       u.situacao, u.unid_id, u.cons_id, u.rota, '-' AS const, grupo " & "  FROM UC_FATURAMENTO u " & "  WHERE situacao = 'L'" & IIf(Len(Trim(lstrSqlFiltro)) > 0, " AND (" & lstrSqlFiltro & ")", "")
			'End If
			'If Me.opbGrupoAB.Checked Then
			'	lstrSql = " UNION "
			'End If
			'If Me.opbGrupoB.Checked Or Me.opbGrupoAB.Checked Then
			'	lstrSql = "SELECT u.zona, u.livro, u.conta, " & "       u.nome, u.`end` as endereco, u.numero, u.complement, u.bairro, u.lote, u.quadra, " & "       u.fase, u.num AS medidor, " & "       u.situacao, u.unid_id, u.cons_id, u.rota, u.const, grupo " & "  FROM unidb u " & "  WHERE situacao = 'L'" & IIf(Len(Trim(lstrSqlFiltro)) > 0, " AND (" & lstrSqlFiltro & ")", "")
			'End If
			lstrSql = lstrSql & " ORDER BY RIGHT(rota, 6) ASC, zona ASC, livro ASC, conta ASC"

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

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

			If dt.Rows.Count > 0 Then

				llngMonof = 0
				llngBif = 0
				llngTrif = 0

				Call BarraProgresso((Me.ProgressBar), (Me.lblPerc), (Me.lblInfo), 0, dt.Rows.Count)

				For Each row As DataRow In dt.Rows
					lstrZLC = VB6.Format(Trim(IIf(IsDBNull(row.Item("zona")), "000", row.Item("zona"))), "000") & "." & VB6.Format(Trim(IIf(IsDBNull(row.Item("livro")), "00", row.Item("livro"))), "00") & "." & VB6.Format(Trim(IIf(IsDBNull(row.Item("conta")), "000000", row.Item("conta"))), "000000")
					lstrNome = VB.Left(Trim(IIf(IsDBNull(row.Item("nome")), "", row.Item("nome"))), 30)
					lstrGrupo = VB.Left(Trim(IIf(IsDBNull(row.Item("grupo")), "", row.Item("grupo"))), 1)
					lstrEndereco = Trim(IIf(IsDBNull(row.Item("endereco")), "", row.Item("endereco")))
					If Not IsDBNull(row.Item("numero")) And Len(Trim(row.Item("numero"))) > 0 Then
						lstrEndereco = lstrEndereco & ", " & Trim(row.Item("numero"))
					End If
					If Not IsDBNull(row.Item("complement")) And Len(Trim(row.Item("complement"))) > 0 Then
						lstrEndereco = lstrEndereco & " - " & Trim(row.Item("complement"))
					End If
					If Not IsDBNull(row.Item("quadra")) And Len(Trim(row.Item("quadra"))) > 0 Then
						lstrEndereco = lstrEndereco & " - Q: " & Trim(row.Item("quadra"))
					End If
					If Not IsDBNull(row.Item("lote")) And Len(Trim(row.Item("lote"))) > 0 Then
						lstrEndereco = lstrEndereco & " - L: " & Trim(row.Item("lote"))
					End If
					If Not IsDBNull(row.Item("bairro")) And Len(Trim(row.Item("bairro"))) > 0 Then
						lstrEndereco = lstrEndereco & " - " & row.Item("bairro")
					End If

					lstrMedidor = Trim(IIf(IsDBNull(row.Item("medidor")), "", row.Item("medidor")))
					lstrRota = Trim(IIf(IsDBNull(row.Item("rota")), "", row.Item("rota")))
					lstrConst = (IIf(IsDBNull(row.Item("const")), 0, row.Item("const")))
					If lstrConst <> "-" Then lstrConst = VB6.Format(lstrConst, "0.00000")

					lstrFase = Trim(IIf(IsDBNull(row.Item("fase")), "", row.Item("fase")))
					llngUnidId = IIf(IsDBNull(row.Item("unid_id")), 0, row.Item("unid_id"))
					llngConsId = IIf(IsDBNull(row.Item("cons_id")), 0, row.Item("cons_id"))
					lstrFase = Trim(IIf(IsDBNull(row.Item("fase")), "", row.Item("fase")))
					lstrConsumo = CStr(BuscaConsumo(lstrGrupo, llngUnidId, VB6.Format(Me.dtpMesAno.Value, "mm/yyyy"), llngConsId, 0))
					'
					If (Me.chkMonofasico.CheckState = System.Windows.Forms.CheckState.Checked And lstrFase = "M" And CDbl(IIf(lstrConsumo = "", 0, lstrConsumo)) <= CDbl(Me.txtQtdM.Text)) Or (Me.chkBifasico.CheckState = System.Windows.Forms.CheckState.Checked And lstrFase = "B" And CDbl(IIf(lstrConsumo = "", 0, lstrConsumo)) <= CDbl(Me.txtQtdB.Text)) Or (Me.chkTrifasico.CheckState = System.Windows.Forms.CheckState.Checked And lstrFase = "T" And CDbl(IIf(lstrConsumo = "", 0, lstrConsumo)) <= CDbl(Me.txtQtdT.Text)) Then

						If lstrFase = "M" Then
							lstrFase = "Monof."
							llngMonof = llngMonof + 1
						ElseIf lstrFase = "B" Then
							lstrFase = "Bif."
							llngBif = llngBif + 1
						ElseIf lstrFase = "T" Then
							lstrFase = "Trif."
							llngTrif = llngTrif + 1
						End If

						lstrTemp = lstrZLC & "|" & VB.Left(lstrRota, 4) & "." & VB.Right(lstrRota, 4) & "|" & lstrNome & "|" & lstrEndereco & "|" & lstrMedidor & "|" & lstrConsumo & "|" & lstrConst & "|" & lstrFase
						'ifrmRelDesligados.VS.Table = lstrTamCol & lstrTemp

						lstrSql = "INSERT INTO AUX_LIGADOS SET "
						lstrSql = lstrSql & "IDENTIFICACAO = '" & lstrZLC & "' ,"
						lstrSql = lstrSql & "ROTA = '" & VB.Left(lstrRota, 4) & "' ,"
						lstrSql = lstrSql & "NOME = '" & lstrNome & "',"
						lstrSql = lstrSql & "ENDERECO = '" & lstrEndereco & "',"
						lstrSql = lstrSql & "MEDIDOR = '" & lstrMedidor & "',"
						lstrSql = lstrSql & "CONSUMO = '" & lstrConsumo & "',"
						lstrSql = lstrSql & "CONST = '" & lstrConst & "',"
						lstrSql = lstrSql & "FASE = '" & lstrFase & "',"
						lstrSql = lstrSql & "ROTA_COMP = '" & VB.Left(lstrRota, 4) & "." & VB.Right(lstrRota, 4) & "'"
						'lstrSql = lstrSql & "DTSTATUS = '" & IIf(ldteStatus <> CDate("01/01/1900"), VB6.Format(ldteStatus, "dd/mm/yyyy"), "__/__/____") & "'"
						objExecAtualizaBancoDados.QUERY_NAME = lstrSql
						repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)

						System.Windows.Forms.Application.DoEvents()
					End If

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

				Me.lblInfo.Text = " Montando relatório..."
				Me.lblInfo.Refresh()

				Me.lblInfo.Text = " Concluído!"
				Me.lblInfo.Refresh()

			Else
				Me.lblInfo.Text = " Não há dados!"
				Me.lblInfo.Refresh()
			End If

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

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


			objExecAtualizaBancoDados.QUERY_NAME = "delete from AUX_DESLIGADOS "
			repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)

			objExecAtualizaBancoDados.QUERY_NAME = "delete from AUX_LIGADOS "
			repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)

			Call sDadosEmpresa(LImagem, sNomeEmpresa, sEnderecoEmpresa, sCepEmpresa, sCidadeEmpresa, sUFempresa, sBairroEmpresa, sFoneEmpresa, sWebEmpresa)
			If Me.opbDesligados.Checked Then
				Call GerarRelDesligados()
				lPrint("rptRelDesligados")
			ElseIf Me.opbLigados.Checked Then
				Call GerarRelLigados()
				lPrint("rptRelligados")
			End If

		Catch ex As Exception
			MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: ImprimeGeral" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
		Exit Sub
		End Try
	End Sub
	Private Sub frmRelDesligados_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
		Try
			Me.dtpBase.Value = Date.Now
			Me.dtpMesAno.Value = Me.dtpBase.Value
			Call opbDesligados_CheckedChanged(opbDesligados, New System.EventArgs())
			sCriaTabelaAuxiliar()
		Catch ex As Exception
			MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: ImprimeGeral" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
			Exit Sub
		End Try
	End Sub

	Private Sub frmRelDesligados_FormClosed(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
		Try
			Dim lstrsql As String

			objExecAtualizaBancoDados.QUERY_NAME = "drop table if exists AUX_DESLIGADOS"
			repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)

			objExecAtualizaBancoDados.QUERY_NAME = "drop table if exists AUX_LIGADOS"
			repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)

		Catch ex As Exception
			MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: frmRelDesligados_FormClosed" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
			Exit Sub
		End Try
	End Sub
	Private Sub opbDesligados_CheckedChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles opbDesligados.CheckedChanged
		Try
			If eventSender.Checked Then
				Call SetaStatusFrame((Me.fmeFiltroDesligados), True)
				Call SetaStatusFrame((Me.fmeFiltroLigados), False)
			End If
		Catch ex As Exception
			MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: ImprimeGeral" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
			Exit Sub
		End Try
	End Sub
	Private Sub opbLigados_CheckedChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles opbLigados.CheckedChanged
		Try
			If eventSender.Checked Then
				Call SetaStatusFrame((Me.fmeFiltroDesligados), False)
				Call SetaStatusFrame((Me.fmeFiltroLigados), True)
			End If
		Catch ex As Exception
			MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: ImprimeGeral" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
			Exit Sub
		End Try
	End Sub
	Private Sub txtQtdM_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles txtQtdM.KeyPress
		Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
		Try
			If KeyAscii <> 8 And (KeyAscii < 48 Or KeyAscii > 57) Then
				KeyAscii = 0
			End If
			eventArgs.KeyChar = Chr(KeyAscii)
			If KeyAscii = 0 Then
				eventArgs.Handled = True
			End If
		Catch ex As Exception
			MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: ImprimeGeral" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
			Exit Sub
		End Try
	End Sub
	Private Sub txtQtdB_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles txtQtdB.KeyPress
		Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
		Try
			If KeyAscii <> 8 And (KeyAscii < 48 Or KeyAscii > 57) Then
				KeyAscii = 0
			End If
			eventArgs.KeyChar = Chr(KeyAscii)
			If KeyAscii = 0 Then
				eventArgs.Handled = True
			End If
		Catch ex As Exception
			MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: ImprimeGeral" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
			Exit Sub
		End Try
	End Sub
	Private Sub txtQtdT_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles txtQtdT.KeyPress
		Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
		Try
			If KeyAscii <> 8 And (KeyAscii < 48 Or KeyAscii > 57) Then
				KeyAscii = 0
			End If
			eventArgs.KeyChar = Chr(KeyAscii)
			If KeyAscii = 0 Then
				eventArgs.Handled = True
			End If
		Catch ex As Exception
			MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: ImprimeGeral" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
			Exit Sub
		End Try
	End Sub
	Private Sub lPrint(ByVal vNomeRPT As String)

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

		Dim bytBLOBData() As Byte

		Dim objEmpresa As New entidadeEmpresa
		Dim repositorioEmpresa As New repositorioEmpresa

		Dim vlist

		Try
			Dim rpt As New ReportDocument()

			'rptConsumidorAVencer
			If vNomeRPT = "rptRelDesligados" Then


				dt_2 = New DataTable()
				dt_2.Columns.Add("IDENTIFICACAO", GetType(String))
				dt_2.Columns.Add("ROTA", GetType(String))
				dt_2.Columns.Add("NOME", GetType(String))
				dt_2.Columns.Add("ENDERECO", GetType(String))
				dt_2.Columns.Add("MEDIDOR", GetType(String))
				dt_2.Columns.Add("FASE", GetType(String))
				dt_2.Columns.Add("STATUS", GetType(String))
				dt_2.Columns.Add("DTSTATUS", GetType(String))
				dt_2.Columns.Add("ROTA_COMP", GetType(String))
				dt_2.Columns.Add("IMAGEM", GetType(Byte()))

				ds = New DataSet

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

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

						dt_2.Rows.Add(dr_1("IDENTIFICACAO"),
										  dr_1("ROTA"),
										  dr_1("NOME"),
										  dr_1("ENDERECO"),
										  dr_1("MEDIDOR"),
										  dr_1("FASE"),
										  dr_1("STATUS"),
										  dr_1("DTSTATUS"),
										  dr_1("ROTA_COMP"),
										  bytBLOBData)
					Next dr_1
				End If

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


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

					rpt = New rptRelDesligados

					rpt.SetDataSource(ds)
					rpt.SetParameterValue("nomeempresa", sNomeEmpresa)
					rpt.SetParameterValue("enderecoempresa", sEnderecoEmpresa)
					rpt.SetParameterValue("cepempresa", sCepEmpresa)
					rpt.SetParameterValue("ufempresa", sUFempresa)
					rpt.SetParameterValue("cidadeempresa", sCidadeEmpresa)
					rpt.SetParameterValue("bairroempresa", sBairroEmpresa)
					rpt.SetParameterValue("foneempresa", sFoneEmpresa)
					rpt.SetParameterValue("websiteempresa", sWebEmpresa)
					rpt.SetParameterValue("titulo", "Relatório de Desligados + Cortados + Desativados até: " & VB6.Format(Me.dtpMesAno.Value, "dd/MM/yyyy"))
					rpt.SetParameterValue("subtitulo", "Com Medidor")
					'rpt.SetParameterValue("Tipo", IIf(cmbOpcao.Text = "Geral", "Geral", "Munícipio"))
					'rpt.SetParameterValue("MesAnoRef", Month(dtpMesAno.Value) & "/" & Year(dtpMesAno.Value))
					'rpt.SetParameterValue("NomeRel", "Grupo A - Período de: " & dtpIni.Value & " Até: " & dtpFim.Value)

					frmViewRelatorios.rpt = rpt

					frmViewRelatorios.CRViewer.Zoom((100))
					frmViewRelatorios.Text = "Relatório Consumidor a Vencer"
					frmViewRelatorios.ShowDialog()

				End If

			Else

				dt_2 = New DataTable()
				dt_2.Columns.Add("IDENTIFICACAO", GetType(String))
				dt_2.Columns.Add("ROTA", GetType(String))
				dt_2.Columns.Add("NOME", GetType(String))
				dt_2.Columns.Add("ENDERECO", GetType(String))
				dt_2.Columns.Add("MEDIDOR", GetType(String))
				dt_2.Columns.Add("CONSUMO", GetType(String))
				dt_2.Columns.Add("CONST", GetType(String))
				dt_2.Columns.Add("FASE", GetType(String))
				dt_2.Columns.Add("ROTA_COMP", GetType(String))
				dt_2.Columns.Add("IMAGEM", GetType(Byte()))

				ds = New DataSet

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

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

						dt_2.Rows.Add(dr_1("IDENTIFICACAO"),
										  dr_1("ROTA"),
										  dr_1("NOME"),
										  dr_1("ENDERECO"),
										  dr_1("MEDIDOR"),
										  dr_1("CONSUMO"),
										  dr_1("CONST"),
										  dr_1("FASE"),
										  dr_1("ROTA_COMP"),
										  bytBLOBData)
					Next dr_1
				End If

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


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

					rpt = New rptRelLigados

					rpt.SetDataSource(ds)
					rpt.SetParameterValue("nomeempresa", sNomeEmpresa)
					rpt.SetParameterValue("enderecoempresa", sEnderecoEmpresa)
					rpt.SetParameterValue("cepempresa", sCepEmpresa)
					rpt.SetParameterValue("ufempresa", sUFempresa)
					rpt.SetParameterValue("cidadeempresa", sCidadeEmpresa)
					rpt.SetParameterValue("bairroempresa", sBairroEmpresa)
					rpt.SetParameterValue("foneempresa", sFoneEmpresa)
					rpt.SetParameterValue("websiteempresa", sWebEmpresa)
					rpt.SetParameterValue("titulo", "Consumo referente ao Mês/Ano: " & VB6.Format(Me.dtpMesAno.Value, "mm/yyyy"))
					rpt.SetParameterValue("subtitulo", istrSubTitulo2)

					'rpt.SetParameterValue("Tipo", IIf(cmbOpcao.Text = "Geral", "Geral", "Munícipio"))
					'rpt.SetParameterValue("MesAnoRef", Month(dtpMesAno.Value) & "/" & Year(dtpMesAno.Value))
					'rpt.SetParameterValue("NomeRel", "Grupo A - Período de: " & dtpIni.Value & " Até: " & dtpFim.Value)

					frmViewRelatorios.rpt = rpt

					frmViewRelatorios.CRViewer.Zoom((100))
					frmViewRelatorios.Text = "Relatório Consumidor a Vencer"
					frmViewRelatorios.ShowDialog()

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

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

	End Sub
	Private Sub sCriaTabelaAuxiliar()

		Try
			Dim lstrsql As String


			objExecAtualizaBancoDados.QUERY_NAME = "drop table if exists AUX_DESLIGADOS"
			repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)

			lstrsql = ""
			lstrsql = "create table AUX_DESLIGADOS ("
			lstrsql = lstrsql & "IDENTIFICACAO VARCHAR(20),"
			lstrsql = lstrsql & "ROTA VARCHAR(20),"
			lstrsql = lstrsql & "NOME VARCHAR(100),"
			lstrsql = lstrsql & "ENDERECO VARCHAR(200),"
			lstrsql = lstrsql & "MEDIDOR  VARCHAR(20),"
			lstrsql = lstrsql & "FASE VARCHAR(20),"
			lstrsql = lstrsql & "STATUS VARCHAR(20),"
			lstrsql = lstrsql & "ROTA_COMP VARCHAR(20),"
			lstrsql = lstrsql & "DTSTATUS  VARCHAR(20))"
			objExecAtualizaBancoDados.QUERY_NAME = lstrsql
			repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)



			objExecAtualizaBancoDados.QUERY_NAME = "drop table if exists AUX_LIGADOS"
			repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)

			lstrsql = ""
			lstrsql = "create table AUX_LIGADOS ("
			lstrsql = lstrsql & "IDENTIFICACAO VARCHAR(20),"
			lstrsql = lstrsql & "ROTA VARCHAR(20),"
			lstrsql = lstrsql & "NOME VARCHAR(100),"
			lstrsql = lstrsql & "ENDERECO VARCHAR(100),"
			lstrsql = lstrsql & "MEDIDOR  VARCHAR(20),"
			lstrsql = lstrsql & "CONSUMO VARCHAR(20),"
			lstrsql = lstrsql & "CONST VARCHAR(20),"
			lstrsql = lstrsql & "FASE VARCHAR(20),"
			lstrsql = lstrsql & "ROTA_COMP  VARCHAR(20))"
			objExecAtualizaBancoDados.QUERY_NAME = lstrsql
			repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)


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

	End Sub
End Class