Option Strict Off
Option Explicit On
Imports fatd_faturamento.BLL.Repositorio
Imports fatd_faturamento.ENTIDADE
Imports VB = Microsoft.VisualBasic
Imports System.Collections.Generic
Imports CrystalDecisions
Imports BarcodeLib
Imports CrystalDecisions.CrystalReports.Engine
Imports System.IO
Imports System.Configuration
Imports System.Net.Mail
Public Class frmRelMicrogeracaoXVinculados

    Private dt, dt1, dt2, dt3, dt4 As DataTable
    Private objABD As New entidadeAtualizaBancoDados
    Private repABD As New repositorioAtualizaBancoDados
    Private objExecABD As New entidadeAtualizaBancoDados
    Private repExecABD 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 sTratamentoErro(30) As String
    Private sErroEnvio As Boolean


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

        Try

            txtRota.Focus()


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

    Private Sub cmdImprimir_Click(sender As Object, e As EventArgs) Handles cmdImprimir.Click
        If (txtRota.Text = "") And (txtZona.Text = "" Or txtLivro.Text = "" Or txtConta.Text = "") Then
            MessageBox.Show("A Rota ou Zona/Livro/Conta devem estar preenchidos! ", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Exit Sub
        End If
        Me.Cursor = Cursors.WaitCursor
        Call sDadosEmpresa(LImagem, sNomeEmpresa, sEnderecoEmpresa, sCepEmpresa, sCidadeEmpresa, sUFempresa, sBairroEmpresa, sFoneEmpresa, sWebEmpresa)
        Me.Cursor = Cursors.WaitCursor
        lPrint("rptMicrogeracao_x_Vinculado")
        Me.Cursor = Cursors.Default
    End Sub

    Private Sub lPrint(ByVal vNomeRPT As String)

        Dim dt As DataTable
        Dim ds As DataSet
        Dim lstrsql As String

        Dim strTipoRelatorio As String

        Try
            Dim rpt As New ReportDocument()

            If vNomeRPT = "rptMicrogeracao_x_Vinculado" Then

                ds = New DataSet

                strTipoRelatorio = "Relatório de Microgeração X Vinculados"

                lstrsql = ""
                lstrsql += " SELECT " & vbCrLf
                lstrsql += "   `uc`.`rota`," & vbCrLf
                lstrsql += "   `uc`.`zona`," & vbCrLf
                lstrsql += "   `uc`.`livro`," & vbCrLf
                lstrsql += "   `uc`.`conta`," & vbCrLf
                lstrsql += "   `uc`.`nome`," & vbCrLf
                lstrsql += "   `md`.`zona_d`," & vbCrLf
                lstrsql += "   `md`.`livro_d`," & vbCrLf
                lstrsql += "   `md`.`conta_d`," & vbCrLf
                lstrsql += "   `md`.`nome_d`," & vbCrLf
                lstrsql += "   `md`.`valor` AS 'valor_d'," & vbCrLf
                lstrsql += "   `e`.`logotipo`" & vbCrLf
                lstrsql += " FROM `uc_faturamento` uc" & vbCrLf
                lstrsql += " LEFT JOIN `microgeracao_distribuida` md ON `md`.`zona` = `uc`.`zona` AND `md`.`livro` = `uc`.`livro` AND `md`.`conta` = `uc`.`conta`" & vbCrLf
                lstrsql += " INNER JOIN `empresa` e ON 1 = 1" & vbCrLf
                lstrsql += " WHERE `uc`.`micro_geracao` = 1" & vbCrLf

                If txtRota.Text <> "" Then
                    lstrsql += " AND `uc`.`rota` = '" + txtRota.Text + "' " & vbCrLf
                End If

                If txtZona.Text <> "" Then
                    lstrsql += " AND `uc`.`zona`  = '" + txtZona.Text + "' " & vbCrLf
                End If

                If txtLivro.Text <> "" Then
                    lstrsql += " AND `uc`.`livro`  = '" + txtLivro.Text + "' " & vbCrLf
                End If

                If txtConta.Text <> "" Then
                    lstrsql += " AND `uc`.`conta`  = '" + txtConta.Text + "' " & vbCrLf
                End If

                lstrsql += "ORDER BY `uc`.`rota`, `uc`.`zona`, `uc`.`livro`, `uc`.`conta` ;" & vbCrLf


                objABD.QUERY_NAME = lstrsql
                dt = repABD.Consultar(objABD)

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


                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 rptMicrogeracao_x_Vinculado

                    rpt.SetDataSource(ds.Tables(0))
                    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("TipoRelatorio", strTipoRelatorio)

                    frmViewRelatorios.rpt = rpt

                    frmViewRelatorios.CRViewer.Zoom((100))
                    frmViewRelatorios.Text = "Relatório"
                    frmViewRelatorios.Show()
                    frmViewRelatorios.WindowState = FormWindowState.Maximized
                    Me.Cursor = Cursors.Default
                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 frmEmailEnvio_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress

        Dim KeyAscii As Short = Asc(eventArgs.KeyChar)

        Try

            Select Case KeyAscii
                Case System.Windows.Forms.Keys.Return
                    TabEnter(KeyAscii, eventArgs)
                Case System.Windows.Forms.Keys.Escape
                    Me.Close()
            End Select
            eventArgs.KeyChar = Chr(KeyAscii)
            If KeyAscii = 0 Then
                eventArgs.Handled = True
            End If

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

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

        Try

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

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try


    End Sub

    Private Sub txtZona_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles txtZona.KeyPress

        Dim KeyAscii As Short = Asc(eventArgs.KeyChar)

        Try

            If KeyAscii <> 8 And (KeyAscii < 48 Or KeyAscii > 57) Then
                KeyAscii = 0
            End If
            eventArgs.KeyChar = Chr(KeyAscii)
            If KeyAscii = 0 Then
                eventArgs.Handled = True
            End If

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try


    End Sub

    Private Sub txtZona_Leave(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txtZona.Leave
        Try
            With Me.txtZona
                .Text = VB6.Format(.Text, "000")
            End With

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try


    End Sub

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

        Try

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

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try


    End Sub

    Private Sub txtLivro_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles txtLivro.KeyPress

        Dim KeyAscii As Short = Asc(eventArgs.KeyChar)

        Try

            If KeyAscii <> 8 And (KeyAscii < 48 Or KeyAscii > 57) Then
                KeyAscii = 0
            End If
            eventArgs.KeyChar = Chr(KeyAscii)
            If KeyAscii = 0 Then
                eventArgs.Handled = True
            End If

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try


    End Sub

    Private Sub txtLivro_Leave(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txtLivro.Leave

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

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try


    End Sub

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

        Try

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

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try


    End Sub


    Private Sub txtConta_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles txtConta.KeyPress

        Dim KeyAscii As Short = Asc(eventArgs.KeyChar)

        Try

            If KeyAscii <> 8 And (KeyAscii < 48 Or KeyAscii > 57) Then
                KeyAscii = 0
            End If
            eventArgs.KeyChar = Chr(KeyAscii)
            If KeyAscii = 0 Then
                eventArgs.Handled = True
            End If

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try


    End Sub
    Private Sub txtConta_Leave(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txtConta.Leave

        Try
            With Me.txtConta
                .Text = VB6.Format(.Text, "000000")
                txtRota.Text = ""
            End With

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try


    End Sub

    Private Sub txtRota_Click(sender As Object, e As EventArgs) Handles txtRota.Click
        Try

            txtRota.SelectionStart = 0
            txtRota.SelectionLength = Len(txtRota.Text)

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try

    End Sub

    Private Sub txtRota_Enter(sender As Object, e As EventArgs) Handles txtRota.Enter
        Try

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

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try


    End Sub

    Private Sub txtRota_Leave(sender As Object, e As EventArgs) Handles txtRota.Leave

        Try

            txtZona.Text = ""
            txtLivro.Text = ""
            txtConta.Text = ""

        Catch ex As Exception
            MessageBox.Show("Ocorreu um Erro Inesperado. Favor, Contate o Administrador do Sistema ou a Equipe de Suporte de sua localidade! ", "Fatal - Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try
    End Sub

End Class