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 frmRelConferenciaConsumo

    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 ifrmimpFaturas As frmImpFaturas


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

        Try
            Me.txtMesAno.Text = GetConfig("mes.ano.faturamento")
            Me.txtMesAno.Text = FormataData(Me.txtMesAno, 1)

            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 txtMesAno_Leave(sender As Object, e As EventArgs)
        Dim ldteAux As Date

        Try

            If Trim(Me.txtMesAno.Text) <> "" Then
                Me.txtMesAno.Text = FormataData(txtMesAno, 1)
                ldteAux = System.DateTime.FromOADate(CDate("01/" & Me.txtMesAno.Text).ToOADate - 1)
                ldteAux = System.DateTime.FromOADate(CDate("01/" & VB6.Format(ldteAux, "MM/YYYY")).ToOADate - 1)
            Else
                MessageBox.Show("Mês e Ano inválido!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Me.txtMesAno.Focus()
            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 txtMesAno_Enter(sender As Object, e As EventArgs)
        Try

            txtMesAno.SelectionStart = 0
            txtMesAno.SelectionLength = Len(txtMesAno.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 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
        Me.Cursor = Cursors.WaitCursor
        Call sDadosEmpresa(LImagem, sNomeEmpresa, sEnderecoEmpresa, sCepEmpresa, sCidadeEmpresa, sUFempresa, sBairroEmpresa, sFoneEmpresa, sWebEmpresa)
        Me.Cursor = Cursors.WaitCursor
        lPrint("rptRelConferenciaConsumo")
        Me.Cursor = Cursors.Default
    End Sub

    Private Sub lPrint(ByVal vNomeRPT As String)

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

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


            If vNomeRPT = "rptRelConferenciaConsumo" Then

                dt_2 = New DataTable()
                dt_2.Columns.Add("ROTA", GetType(String))
                dt_2.Columns.Add("ZONA", GetType(String))
                dt_2.Columns.Add("LIVRO", GetType(String))
                dt_2.Columns.Add("CONTA", GetType(String))
                dt_2.Columns.Add("SITUACAO", GetType(String))
                dt_2.Columns.Add("SEQUENCIA", GetType(String))
                dt_2.Columns.Add("LEIT_ANTERIOR", GetType(String))
                dt_2.Columns.Add("LEIT_ATUAL", GetType(String))
                dt_2.Columns.Add("CONSUMO", GetType(String))
                dt_2.Columns.Add("MEDIA_PERCENT", GetType(String))
                dt_2.Columns.Add("MEDIA", GetType(String))

                ds = New DataSet

                strTipoRelatorio = "Relatório de Conferencia de Consumo "
                lstrsql = "SELECT "
                lstrsql += " leitmensal.rota , leitmensal.zona, leitmensal.livro, leitmensal.conta, ucf.SITUACAO, convert(seq, CHAR ) SEQUENCIA, leit_ant LEIT_ANTERIOR, leit_atual LEIT_ATUAL, consumo , configuracoes.VALOR MEDIA_PERCENT "
                lstrsql += " , CalculaMediaConsumo( leitmensal.unid_id, leitmensal.cons_id, " + lstrMesAno + " ) MEDIA "
                lstrsql += " FROM leitmensal, configuracoes, uc_faturamento ucf "

                lstrsql += " WHERE configuracoes.NOME = 'percentual.media' "
                lstrsql += "  AND leitmensal.zona = ucf.zona "
                lstrsql += "  AND leitmensal.livro = ucf.livro "
                lstrsql += "  AND leitmensal.conta = ucf.conta"
                If txtRota.Text <> "" Then
                    lstrsql += " AND leitmensal.rota  = '" + txtRota.Text + "' "
                End If

                Dim sOrdem As String
                If rdbMaior.Checked Then
                    sOrdem = "+"
                    lstrsql += " ORDER BY consumo Desc, convert(seq,decimal) "
                Else
                    sOrdem = "-"
                    lstrsql += " ORDER BY consumo ASC, convert(seq,decimal) "
                End If

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

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

                        dt_2.Rows.Add(
                        dr_1("ROTA"),
                        dr_1("ZONA"),
                        dr_1("LIVRO"),
                        dr_1("CONTA"),
                        dr_1("SITUACAO"),
                        dr_1("SEQUENCIA"),
                        dr_1("LEIT_ANTERIOR"),
                        dr_1("LEIT_ATUAL"),
                        dr_1("CONSUMO"),
                        dr_1("MEDIA_PERCENT"),
                        dr_1("MEDIA")
                            )
                    Next dr_1
                End If

                ds.Tables.Add(dt_2)
                ds.Tables(0).TableName = "REL_CONS_ABX_ACM_MEDIA"


                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 rptRelConferenciaConsumo

                    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)
                    rpt.SetParameterValue("ORDEM", sOrdem)

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

End Class