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 frmRelUCSemFatura


    Private dt 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 bValidacao As Boolean

    Private Sub frmRelUCSem_Fatura_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: frRelUCSem_Fatura_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
        If bgConsultaUCs.IsBusy Then
            bgConsultaUCs.CancelAsync()
        End If

        Me.Close()
    End Sub

    Private Sub cmdImprimir_Click(sender As Object, e As EventArgs) Handles cmdImprimir.Click

        cmdImprimir.Enabled = False
        lblInfo.Text = "Consultando o banco de dados!..."
        ProgressBar.Style = ProgressBarStyle.Marquee
        ProgressBar.MarqueeAnimationSpeed = 0
        ProgressBar.MarqueeAnimationSpeed = 5
        bgConsultaUCs.RunWorkerAsync()
    End Sub

    Private Sub bgConsultaUCs_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles bgConsultaUCs.DoWork
        Try
            moduleGlobal.Consulta_Unidades_Sem_Leituras_Ou_Sem_Faturas(dt, txtRota.Text.Trim())
            If bgConsultaUCs.CancellationPending Then
                e.Cancel = True
                Return
            End If
        Catch ex As Exception

        End Try

    End Sub

    Private Sub bgConsultaUCs_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bgConsultaUCs.RunWorkerCompleted
        If e.Cancelled Then
            ProgressBar.MarqueeAnimationSpeed = 0
            ProgressBar.Style = ProgressBarStyle.Blocks
            ProgressBar.Value = 0
            lblInfo.Text = "Consulta foi cancelada pelo usuário!"
        ElseIf Not IsNothing(e.Error) Then
            ProgressBar.MarqueeAnimationSpeed = 0
            ProgressBar.Style = ProgressBarStyle.Blocks
            ProgressBar.Value = 0
            lblInfo.Text = "Ocorreu um erro ao gerar consulta no banco de dados!"
        Else
            ProgressBar.MarqueeAnimationSpeed = 0
            ProgressBar.Style = ProgressBarStyle.Blocks
            ProgressBar.Value = 0
            GeraRelatorio()
            cmdImprimir.Enabled = True
        End If
    End Sub

    Private Sub GeraRelatorio()
        Me.Cursor = Cursors.WaitCursor
        Call sDadosEmpresa(LImagem, sNomeEmpresa, sEnderecoEmpresa, sCepEmpresa, sCidadeEmpresa, sUFempresa, sBairroEmpresa, sFoneEmpresa, sWebEmpresa)
        Me.Cursor = Cursors.WaitCursor
        lPrintRel("rptRelEUcSemFatura")
        Me.Cursor = Cursors.Default
    End Sub

    Private Sub lPrintRel(ByVal vNomeRPT As String)

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

        Dim objEmpresa As New entidadeEmpresa
        Dim repositorioEmpresa As New repositorioEmpresa

        Dim lstrMesAno As String
        Dim strTipoRelatorio As String
        lstrMesAno = GetConfig("mes.ano.faturamento").ToString().Substring(3, 4) + GetConfig("mes.ano.faturamento").ToString().Substring(0, 2)

        Try
            Dim rpt As New ReportDocument()
            strTipoRelatorio = "Relatório de UC's sem Leituras ou Faturas"

            If vNomeRPT = "rptRelEUcSemFatura" Then

                dt_2 = New DataTable()

                dt_2.Columns.Add("ZLC", GetType(String))
                dt_2.Columns.Add("NOME", GetType(String))
                dt_2.Columns.Add("ROTA", GetType(String))
                dt_2.Columns.Add("SEQUENCIA", GetType(String))
                dt_2.Columns.Add("SITUACAO", GetType(String))
                dt_2.Columns.Add("DATA_LIGACAO", GetType(String))
                dt_2.Columns.Add("DATA_DESLIGAMENTO", GetType(String))
                dt_2.Columns.Add("DATA_CORTE", GetType(String))
                dt_2.Columns.Add("DT_LEITURA", GetType(String))
                dt_2.Columns.Add("NUMNF", GetType(String))
                dt_2.Columns.Add("IMAGEM", GetType(Byte()))
                dt_2.Columns.Add("GRUPO", GetType(String))

                ds = New DataSet

                If dt.Rows.Count > 0 Then
                    Call BarraProgresso((Me.ProgressBar), (Me.lblPerc), (Me.lblInfo), 0, dt.Rows.Count, "... Carregando as informações do Relatório... ")
                    For Each dr_1 As DataRow In dt.Rows
                        dt_2.Rows.Add(
                            dr_1("ZLC"),
                            dr_1("NOME"),
                            dr_1("ROTA"),
                            dr_1("SEQUENCIA"),
                            dr_1("SITUACAO"),
                            dr_1("DATA_LIGACAO"),
                            dr_1("DATA_DESLIGAMENTO"),
                            dr_1("DATA_CORTE"),
                            dr_1("DT_LEITURA"),
                            dr_1("NUMNF"),
                            LImagem,
                            dr_1("GRUPO")
                            )
                        BarraProgresso((Me.ProgressBar), (Me.lblPerc), (Me.lblInfo), 1,, "... Carregando as informações do Relatório... ")
                    Next dr_1

                    lblInfo.Text = "Relatório sendo gerado... Aguarde!..."
                    ds.Tables.Add(dt_2)
                    ds.Tables(0).TableName = "REL_UC_SEM_FATURA"

                    rpt = New rptRelEUcSemFatura

                    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("TipoRelatorio", strTipoRelatorio)

                    frmViewRelatorios.rpt = rpt

                    frmViewRelatorios.CRViewer.Zoom((100))
                    frmViewRelatorios.Text = "Relatório"
                    frmViewRelatorios.ShowDialog()
                    frmViewRelatorios.WindowState = FormWindowState.Maximized
                    Me.Cursor = Cursors.Default



                Else
                    MessageBox.Show("Não há registros para o relatório escolhido! ", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                    Exit Sub
                End If

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

            End If

            Me.lblInfo.Text = "Relatório gerado com Sucesso! ..."
            Me.lblPerc.Text = ""
            ProgressBar.Value = 0

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

        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