Option Strict Off
Option Explicit On

Imports System.Configuration
Imports fatd_faturamento.BLL.Repositorio
Imports fatd_faturamento.ENTIDADE
Imports CrystalDecisions.CrystalReports.Engine

Friend Class frmRelatorioMedidoresLevantamento
    Inherits System.Windows.Forms.Form
    Dim vResp As Short
    Dim vNew As Boolean
    Dim iintIdx As Short

#Region "Propriedades"

    Private Sub frmRelMedidoresLevantamento_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load

        Try
            lClear()
        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 txtIdTransformador_Enter(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txtIdTransformador.Enter

        Dim Index As Short

        Try

            Index = txtIdTransformador.GetIndex(eventSender)

            With Me.txtIdTransformador(Index)
                .Text = Replace(.Text, ".", "")
                .SelectionStart = 0
                .SelectionLength = Len(.Text)
            End With

            iintIdx = Index

        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 txtIdTransformador_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles txtIdTransformador.KeyPress

        Dim KeyAscii As Short = Asc(eventArgs.KeyChar)
        Dim Index As Short


        Try

            Index = txtIdTransformador.GetIndex(eventSender)

            If KeyAscii = System.Windows.Forms.Keys.Return Then
                TabEnter(KeyAscii, eventArgs)
            ElseIf KeyAscii <> System.Windows.Forms.Keys.Back And (KeyAscii < System.Windows.Forms.Keys.D0 Or KeyAscii > System.Windows.Forms.Keys.D9) Then
                KeyAscii = 0
            End If

            iintIdx = Index

            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 txtIdTransformador_Leave(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txtIdTransformador.Leave

        Dim Index As Short


        Try

            Index = txtIdTransformador.GetIndex(eventSender)

            With Me.txtIdTransformador(Index)
                If IsNumeric(.Text) Then
                    SetaCodigo("transformador", CInt(.Text))
                    .Text = FormatNumber(IIf(Len(.Text) = 0, 0, .Text), 0)
                Else
                    Me.txtDsTransformador(Index).Text = String.Empty
                End If
            End With

            iintIdx = Index

        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 cmdLocalizarTransformador_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdLocalizarTransformador.Click

        Dim Index As Short


        Try

            Index = cmdLocalizarTransformador.GetIndex(eventSender)

            iintIdx = Index

            frmLocalizadorGeral.SetParametros("transformador", "Transformador", Me)
            frmLocalizadorGeral.Show()

        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(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdFechar.Click

        Try

            lClose()

        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 cmdImprimir_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdImprimir.Click

        Try

            lPrint()

        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 frmRelMedidoresLevantamento_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress

        Dim KeyAscii As Short = Asc(eventArgs.KeyChar)


        Try

            If KeyAscii = System.Windows.Forms.Keys.Escape Then
                Call cmdFechar_Click(cmdFechar, New System.EventArgs())
            ElseIf KeyAscii = System.Windows.Forms.Keys.Return Then
                TabEnter(KeyAscii, eventArgs)
            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


#End Region

#Region "Métodos"

    Private Sub lClear()

        Try

            iintIdx = 0

        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

    Private Sub lClose()

        Try

            Close()

        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

    Private Sub lPrint()

        Dim dt As DataTable
        Dim dc As DataColumn
        Dim ds As DataSet

        Dim bytBLOBData() As Byte

        Dim rpt As New ReportDocument()

        Dim vlist

        Dim objTipoFase As New entidadeTipoFase
        Dim repositorioTipoFase As New repositorioTipoFase

        Dim objTipoMedidor As New entidadeTipoMedidor
        Dim repositorioTipoMedidor As New repositorioTipoMedidor

        Dim objTipoGrandezaMedida As New entidadeTipoGrandezaMedida
        Dim repositorioTipoGrandezaMedida As New repositorioTipoGrandezaMedida

        Dim objUCFaturamento As New entidadeUCFaturamento
        Dim repositorioUCFaturamento As New repositorioUCFaturamento

        Dim objEmpresa As New entidadeEmpresa
        Dim repositorioEmpresa As New repositorioEmpresa

        Try


            If CInt(IIf(IsNumeric(Me.txtIdTransformador(0).Text), Me.txtIdTransformador(0).Text, 0)) = 0 Or CInt(IIf(IsNumeric(Me.txtIdTransformador(1).Text), Me.txtIdTransformador(1).Text, 0)) = 0 Then
                MessageBox.Show("Você tem que selecionar ao menos uma faixa de transformador!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Else

                If CInt(IIf(IsNumeric(Me.txtIdTransformador(0).Text), Me.txtIdTransformador(0).Text, 0)) > CInt(IIf(IsNumeric(Me.txtIdTransformador(1).Text), Me.txtIdTransformador(1).Text, 0)) Then
                    MessageBox.Show("O transformador inicial não pode ser menor que o transformador final!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Else

                    Me.Cursor = System.Windows.Forms.Cursors.WaitCursor
                    Me.cmdImprimir.Enabled = False
                    Me.cmdFechar.Enabled = False

                    ds = New DataSet

                    vlist = repositorioEmpresa.Select(objEmpresa)

                    If vlist.Count <> 0 Then

                        For Each objEmpresaFor As entidadeEmpresa In vlist

                            bytBLOBData = objEmpresaFor.LOGOTIPO

                        Next

                    End If

                    objUCFaturamento.INSTAL = txtIdTransformador(0).Text
                    objUCFaturamento.INSC = txtIdTransformador(1).Text

                    dt = repositorioUCFaturamento.Select_2(objUCFaturamento)

                    If dt.Rows.Count > 0 Then

                        dc = New DataColumn("IMAGE", GetType(Byte()))
                        dc.DefaultValue = bytBLOBData
                        dt.Columns.Add(dc)

                    End If

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

                    objTipoFase.ID = 0

                    vlist = repositorioTipoFase.Select(objTipoFase)

                    If vlist.Count > 0 Then

                        dt = New DataTable()
                        dt.Columns.Add("ID", GetType(Integer))
                        dt.Columns.Add("DESCRICAO", GetType(String))
                        dt.Columns.Add("SITUACAO", GetType(String))
                        dt.Columns.Add("IDUSUARIOS", GetType(Integer))


                        For Each objTipoFaseFor As entidadeTipoFase In vlist

                            dt.Rows.Add(objTipoFaseFor.ID, objTipoFaseFor.DESCRICAO, objTipoFaseFor.SITUACAO, objTipoFaseFor.IDUSUARIOS)

                        Next

                    End If

                    ds.Tables.Add(dt)
                    ds.Tables(1).TableName = "REL_MEDIDORES_LEVANTAMENTO_TIPO_FASES"


                    objTipoMedidor.ID = 0

                    vlist = repositorioTipoMedidor.Select(objTipoMedidor)

                    If vlist.Count > 0 Then

                        dt = New DataTable()
                        dt.Columns.Add("ID", GetType(Integer))
                        dt.Columns.Add("DESCRICAO", GetType(String))
                        dt.Columns.Add("SITUACAO", GetType(String))
                        dt.Columns.Add("IDUSUARIOS", GetType(Integer))


                        For Each objTipoMedidorFor As entidadeTipoMedidor In vlist

                            dt.Rows.Add(objTipoMedidorFor.ID, objTipoMedidorFor.DESCRICAO, objTipoMedidorFor.SITUACAO, objTipoMedidorFor.IDUSUARIOS)

                        Next

                    End If

                    ds.Tables.Add(dt)
                    ds.Tables(2).TableName = "REL_MEDIDORES_LEVANTAMENTO_TIPO_MEDIDOR"

                    objTipoGrandezaMedida.ID = 0

                    vlist = repositorioTipoGrandezaMedida.Select(objTipoGrandezaMedida)

                    If vlist.Count > 0 Then

                        dt = New DataTable()
                        dt.Columns.Add("ID", GetType(Integer))
                        dt.Columns.Add("DESCRICAO", GetType(String))
                        dt.Columns.Add("SITUACAO", GetType(String))
                        dt.Columns.Add("IDUSUARIOS", GetType(Integer))


                        For Each objTipoGrandezaMedidaFor As entidadeTipoGrandezaMedida In vlist

                            dt.Rows.Add(objTipoGrandezaMedidaFor.ID, objTipoGrandezaMedidaFor.DESCRICAO, objTipoGrandezaMedidaFor.SITUACAO, objTipoGrandezaMedidaFor.IDUSUARIOS)

                        Next

                    End If

                    ds.Tables.Add(dt)
                    ds.Tables(3).TableName = "REL_MEDIDORES_LEVANTAMENTO_TIPO_GRANDEZA_MEDIDA"

                    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 rptCroquiOSMedidor

                        rpt.SetDataSource(ds)

                        frmViewRelatorios.rpt = rpt

                        frmViewRelatorios.CRViewer.Zoom((100))
                        frmViewRelatorios.Text = "Relatório de Ficha de levantamento de medidores U.C.B.T."
                        frmViewRelatorios.ShowDialog()

                    End If

                    Me.cmdImprimir.Enabled = True
                    Me.cmdFechar.Enabled = True
                    Me.Cursor = System.Windows.Forms.Cursors.Default

                End If

            End If

        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

    Public Sub SetaCodigo(ByVal astrTabela As String, ByVal alngId_A As Integer, Optional ByVal alngId_B As Integer = 0, Optional ByVal alngId_C As Integer = 0, Optional ByVal alngId_D As Integer = 0)

        Dim vlist

        Dim objTransformador As New entidadeTransformador
        Dim repositorioTransformador As New repositorioTransformador

        Try

            If alngId_A > 0 Then


                If astrTabela.ToUpper() = "TRANSFORMADOR" Then

                    objTransformador.ID = alngId_A

                    vlist = repositorioTransformador.Select(objTransformador)

                    If vlist.Count > 0 Then

                        For Each objTransformadorFor As entidadeTransformador In vlist

                            Me.txtIdTransformador(iintIdx).Text = FormatNumber(Convert.ToInt64(IIf(IsDBNull(objTransformadorFor.ID), 0, objTransformadorFor.ID)), 0)
                            Me.txtDsTransformador(iintIdx).Text = Trim(IIf(IsDBNull(objTransformadorFor.DESCRICAO), "", objTransformadorFor.DESCRICAO))

                        Next

                    Else
                        MessageBox.Show("Não foi possível encontrar o registro!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                        Me.txtDsTransformador(iintIdx).Text = String.Empty
                        Me.txtIdTransformador(iintIdx).Focus()
                    End If

                End If

            End If

        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

#End Region


End Class