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 FrmRelConsumBaixaRenda
	Inherits System.Windows.Forms.Form
	'Dim fr As New FrmRelatorio

	Private objAtualizaBancoDados As New entidadeAtualizaBancoDados
	Private repositorioAtualizaBancoDados As New repositorioAtualizaBancoDados

	Private objExecAtualizaBancoDados As New entidadeAtualizaBancoDados
	Private repositorioExecAtualizaBancoDados As New repositorioAtualizaBancoDados

	Private dt, dt1, dt2, dt3 As DataTable
	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 Sub BtCancel_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles BtCancel.Click
		Me.Close()
	End Sub

    Private Sub BtEmitir_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles BtEmitir.Click
        Call sDadosEmpresa(LImagem, sNomeEmpresa, sEnderecoEmpresa, sCepEmpresa, sCidadeEmpresa, sUFempresa, sBairroEmpresa, sFoneEmpresa, sWebEmpresa)
		Call RelNormal((cOpcao.SelectedIndex))
	End Sub

    Private Sub FrmRelConsumBaixaRenda_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
		Try
			cOpcao.SelectedIndex = 0
			cOrdem.SelectedIndex = 0
			txtMesAno.Text = GetConfig("mes.ano.faturamento")
			Call sCriaTabelaAuxiliar()
		Catch ex As Exception
			MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: FrmRelConsumBaixaRenda_Load" & "", "Aviso de Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
			Exit Sub
		End Try
	End Sub

	Private Sub FrmRelConsumBaixaRenda_FormClosed(sender As Object, e As FormClosedEventArgs) Handles MyBase.FormClosed

		Try

			Dim lstrsql As String

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


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

	Private Sub RelNormal(ByRef Filtro As Short)
		Dim strSql As String
		Dim strTemp As String
		Dim strTamCol As String
		Dim sIdentificacao As String
		Dim sRota As String
		Dim sEndereco As String
		Dim sNome As String
		Dim sClasse As String

		Try
			strSql = ""
			strSql = "delete from AUX_CONSUMIDORES_BAIXA_RENDA"
			objExecAtualizaBancoDados.QUERY_NAME = strSql
			repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)

			strSql = "SELECT u.zona, u.livro, u.conta, n.codclas, u.end, u.cons_id, u.rota, u.nome " & "  FROM uc_faturamento u, nf n "

			If Filtro = 0 Then
				strSql = strSql & " WHERE (LEFT(n.codclas,1) = 9 AND RIGHT(n.codclas,2) <> '01') "
			ElseIf Filtro = 1 Then
				strSql = strSql & " WHERE n.codclas = '9104' "
			ElseIf Filtro = 2 Then
				strSql = strSql & " WHERE n.codclas = '9106' "
			ElseIf Filtro = 3 Then
				strSql = strSql & " WHERE n.codclas = '9102' "
			ElseIf Filtro = 4 Then
				strSql = strSql & " WHERE n.codclas = '9105' "
			End If

			strSql = strSql & " AND u.zona = n.zona " & " AND u.livro = n.livro " & " AND u.conta = n.conta " & " AND n.mesano = """ & txtMesAno.Text & """ "

			If cOrdem.SelectedIndex = 0 Then
				strSql = strSql & " ORDER BY u.zona ASC, u.livro ASC, u.conta ASC"
			ElseIf cOrdem.SelectedIndex = 1 Then
				strSql = strSql & " ORDER BY u.nome ASC"
			Else
				strSql = strSql & " ORDER BY LEFT(u.rota,4) ASC, RIGHT(u.rota,4) ASC"
			End If

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

			If dt.Rows.Count > 0 Then
				For Each row As DataRow In dt.Rows
					sIdentificacao = VB6.Format(row.Item("Zona"), "000") & "." & VB6.Format(row.Item("Livro"), "00") & "." & VB6.Format(row.Item("Conta"), "000000")
					sRota = VB6.Format(row.Item("Rota"), "00000000")
					sNome = IIf(IsDBNull(row.Item("nome")), "", row.Item("nome"))
					sEndereco = IIf(IsDBNull(row.Item("end")), "", row.Item("end"))
					sClasse = IIf(IsDBNull(row.Item("codclas")), "", row.Item("codclas"))

					strSql = "insert into AUX_CONSUMIDORES_BAIXA_RENDA("
					strSql = strSql & "IDENTIFICACAO,"
					strSql = strSql & "ROTA,"
					strSql = strSql & "NOME,"
					strSql = strSql & "ENDERECO,"
					strSql = strSql & "CLASSE ) VALUES ("
					strSql = strSql & "'" & sIdentificacao & "',"
					strSql = strSql & "'" & sRota & "',"
					strSql = strSql & "'" & sNome & "',"
					strSql = strSql & "'" & sEndereco & "',"
					strSql = strSql & "'" & sClasse & "')"
					objExecAtualizaBancoDados.QUERY_NAME = strSql
					repositorioExecAtualizaBancoDados.Execute(objExecAtualizaBancoDados)

				Next

				Call lPrint("rptConsumidorBaixaRenda")
			Else
				MsgBox("Nenhum registro foi encontrado!", vbInformation + vbOKOnly, "Aviso!")
			End If

		Catch ex As Exception
			MessageBox.Show("Ocorreu o Erro: " & Err.Description & " - Rotina: RelNormal" & "", "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()

			If vNomeRPT = "rptConsumidorBaixaRenda" Then

				'vlist = repositorioEmpresa.Select(objEmpresa)

				'If vlist.Count <> 0 Then
				'    For Each objEmpresaFor As entidadeEmpresa In vlist
				'        bytBLOBData = objEmpresaFor.LOGOTIPO
				'    Next
				'End If

				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("CLASSE", GetType(String))
				dt_2.Columns.Add("IMAGEM", GetType(Byte()))

				ds = New DataSet

				lstrsql = ""
				lstrsql = "SELECT * FROM AUX_CONSUMIDORES_BAIXA_RENDA " '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("CLASSE"),
										  LImagem)
					Next dr_1
				End If


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


				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 rptConsumidorBaixaRenda

					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)

					frmViewRelatorios.rpt = rpt

					frmViewRelatorios.CRViewer.Zoom((100))
					frmViewRelatorios.Text = "Relatório Consumidores Baixa Renda"
					frmViewRelatorios.ShowDialog()

				End If


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

	End Sub

	Private Sub sCriaTabelaAuxiliar()
		Dim lstrsql As String

		Try

			lstrsql = ""
			lstrsql = "create table if not exists AUX_CONSUMIDORES_BAIXA_RENDA("
			lstrsql = lstrsql & "IDENTIFICACAO varchar(15) , "
			lstrsql = lstrsql & "ROTA varchar(15), "
			lstrsql = lstrsql & "NOME varchar(50), "
			lstrsql = lstrsql & "ENDERECO varchar(50), "
			lstrsql = lstrsql & "CLASSE varchar(15))"
			objExecAtualizaBancoDados.QUERY_NAME = lstrsql
			repositorioAtualizaBancoDados.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