Option Strict Off
Option Explicit On

Imports fatd_faturamento.BLL.Repositorio
Imports fatd_faturamento.ENTIDADE
Friend Class frmCadastroTipoPadraoMedicao
    Inherits System.Windows.Forms.Form
    Dim vResp As Short
    Dim vNew As Boolean

#Region "Propriedades"

    Private Sub frmCadTipoPadraoMedicao_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 txtDescricao_Enter(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txtDescricao.Enter

        Try

            With Me.txtDescricao
                .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 txtDescricao_Leave(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles txtDescricao.Leave

        Try

            With Me.txtDescricao
                .Text = UCase(.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 cmdLocalizar_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdLocalizar.Click

        Try
            frmLocalizadorGeral.SetParametros("tipo_padrao_medicao", "Tipo de Padrão da Medição", 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 cmdExcluir_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdExcluir.Click

        Dim objTipoPadraoMedicao As New entidadeTipoPadraoMedicao


        Try

            If Trim(Me.txtId.Text) <> "0" Then

                vResp = MessageBox.Show("Esta operação não possui retorno!" & vbCrLf & vbCrLf & "Tem certeza de que deseja excluir este registro?", "Confirmação de Exclusão", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)

                If vResp = DialogResult.Yes Then

                    objTipoPadraoMedicao.ID = Convert.ToInt32(txtId.Text)

                    If Not lDelete(objTipoPadraoMedicao) Then

                        MessageBox.Show("Tipo de Padrão da Medição não pode ser excluído!", "Confirmação de Exclusão", MessageBoxButtons.OK, MessageBoxIcon.Information)

                        vResp = MessageBox.Show("Esta operação não possui retorno!" & vbCrLf & vbCrLf & "Tem certeza de que deseja desativar este registro?", "Confirmação de Exclusão", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)

                        If vResp = DialogResult.Yes Then

                            If Not lUpdate_1(objTipoPadraoMedicao) Then
                                MessageBox.Show("Tipo de Padrão da Medição não pode ser alterado!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                                Exit Sub
                            Else
                                MessageBox.Show("Tipo de Padrão da Medição alterado com sucesso!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                                SetaCodigo("tipo_padrao_medicao", CInt(Me.txtId.Text))
                            End If

                        ElseIf vResp = DialogResult.Cancel Then
                            Exit Sub
                        End If

                    Else
                        MessageBox.Show("Tipo de Padrão da Medição excluído com sucesso!", "Confirmação de Exclusão", MessageBoxButtons.OK, MessageBoxIcon.Information)
                        frmCadTipoPadraoMedicao_Load(Me, New System.EventArgs())
                    End If

                ElseIf vResp = DialogResult.Cancel Then
                    Exit Sub
                End If

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

        Dim objTipoPadraoMedicao As New entidadeTipoPadraoMedicao
        Dim repositorioTipoPadraoMedicao As New repositorioTipoPadraoMedicao

        Dim vlist

        Try

            If vNew = True Then

                If Me.txtId.Text = "0" Then

                    If lInsert() Then

                        MessageBox.Show("Tipo de Padrão da Medição criada com sucesso!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)

                        vlist = repositorioTipoPadraoMedicao.SelectMax(objTipoPadraoMedicao)

                        For Each objTipoPadraoMedicaoFor As entidadeTipoPadraoMedicao In vlist
                            Me.txtId.Text = CStr(CInt(IIf(IsDBNull(objTipoPadraoMedicaoFor.ID), 0, objTipoPadraoMedicaoFor.ID)))
                        Next

                        SetaCodigo("tipo_padrao_medicao", CInt(Me.txtId.Text))

                    Else
                        MessageBox.Show("Tipo de Padrão da Medição não pode ser criada!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                        Exit Sub
                    End If

                End If

            Else

                If Me.txtId.Text <> "0" Then

                    If lUpdate() Then

                        MessageBox.Show("Tipo de Padrão da Medição atualizada com sucesso!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)

                        vlist = repositorioTipoPadraoMedicao.SelectMax(objTipoPadraoMedicao)

                        For Each objTipoPadraoMedicaoFor As entidadeTipoPadraoMedicao In vlist
                            Me.txtId.Text = CStr(CInt(IIf(IsDBNull(objTipoPadraoMedicaoFor.ID), 0, objTipoPadraoMedicaoFor.ID)))
                        Next

                        SetaCodigo("tipo_padrao_medicao", CInt(Me.txtId.Text))

                    Else
                        MessageBox.Show("Tipo de Padrão da Medição não pode ser atualizada!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                        Exit Sub
                    End If

                End If

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

        Try

            lNew()

        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 frmCadTipoPadraoMedicao_FormClosed(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed

        Try
            If Not vfrmOld Is Nothing Then
                vfrmOld.Enabled = 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 frmCadTipoPadraoMedicao_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 lNew()

        Try

            vNew = True

            lClear()

        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

    Private Sub lClear()

        Try

            Me.txtId.Text = "0"
            Me.txtDescricao.Text = String.Empty
            Me.lblSituacao.Text = String.Empty

        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

    Public Sub SetaParametros(ByRef frmOld As System.Windows.Forms.Form)

        Try

            vfrmOld = frmOld
            vfrmOld.Enabled = False

        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 objTipoPadraoMedicao As New entidadeTipoPadraoMedicao
        Dim repositorioTipoPadraoMedicao As New repositorioTipoPadraoMedicao

        Try

            If astrTabela.ToUpper() = "TIPO_PADRAO_MEDICAO" Then

                objTipoPadraoMedicao.ID = alngId_A

                vlist = repositorioTipoPadraoMedicao.Select(objTipoPadraoMedicao)

                If vlist.Count > 0 Then

                    For Each objTipoPadraoMedicaoFor As entidadeTipoPadraoMedicao In vlist

                        Me.txtId.Text = Format(Convert.ToInt64(IIf(IsDBNull(objTipoPadraoMedicaoFor.ID), 0, objTipoPadraoMedicaoFor.ID)), "#,##0")
                        Me.txtDescricao.Text = Trim(IIf(IsDBNull(objTipoPadraoMedicaoFor.DESCRICAO), "", objTipoPadraoMedicaoFor.DESCRICAO))
                        Me.lblSituacao.Text = "Situação: " & Trim(IIf(IsDBNull(objTipoPadraoMedicaoFor.SITUACAO), "Ativo", objTipoPadraoMedicaoFor.SITUACAO)) & "  -  último acesso: " & BuscaNomeUsuario(CInt(IIf(IsDBNull(objTipoPadraoMedicaoFor.IDUSUARIOS), 0, objTipoPadraoMedicaoFor.IDUSUARIOS)))
                        vNew = False
                        Me.txtDescricao.Focus()

                    Next

                Else
                    MessageBox.Show("Não foi possível encontrar o registro!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information)
                End If

            End If

        Catch ex As Exception
            Exit Sub
        End Try

    End Sub

    Private Function lInsert() As Boolean

        Dim objTipoPadraoMedicao As New entidadeTipoPadraoMedicao
        Dim repositorioTipoPadraoMedicao As New repositorioTipoPadraoMedicao

        Try

            objTipoPadraoMedicao.DESCRICAO = Trim(IIf(String.IsNullOrEmpty((txtDescricao.Text)), " ", Replace(Trim(Me.txtDescricao.Text), "'", "\'")))
            objTipoPadraoMedicao.SITUACAO = "Ativo"
            objTipoPadraoMedicao.IDUSUARIOS = Convert.ToInt32(Trim(IIf(String.IsNullOrEmpty((vUsuario.ID)), "0", vUsuario.ID)))

            repositorioTipoPadraoMedicao.Insert(objTipoPadraoMedicao)

            Return True
        Catch ex As Exception
            Return False
        End Try

    End Function

    Private Function lUpdate() As Boolean

        Dim objTipoPadraoMedicao As New entidadeTipoPadraoMedicao
        Dim repositorioTipoPadraoMedicao As New repositorioTipoPadraoMedicao


        Try

            objTipoPadraoMedicao.ID = Convert.ToInt32(Trim(IIf(String.IsNullOrEmpty((txtId.Text)), "0", txtId.Text)))
            objTipoPadraoMedicao.DESCRICAO = Trim(IIf(String.IsNullOrEmpty((txtDescricao.Text)), " ", Replace(Trim(Me.txtDescricao.Text), "'", "\'")))
            objTipoPadraoMedicao.SITUACAO = "Ativo"
            objTipoPadraoMedicao.IDUSUARIOS = Convert.ToInt32(Trim(IIf(String.IsNullOrEmpty((vUsuario.ID)), "0", vUsuario.ID)))

            repositorioTipoPadraoMedicao.Update(objTipoPadraoMedicao)

            Return True
        Catch ex As Exception
            Return False
        End Try

    End Function

    Private Function lUpdate_1(ByRef objTipoPadraoMedicao As entidadeTipoPadraoMedicao) As Boolean
        Dim repositorioTipoPadraoMedicao As New repositorioTipoPadraoMedicao
        Try

            repositorioTipoPadraoMedicao.Update_1(objTipoPadraoMedicao)

            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function

    Private Function lDelete(ByRef objTipoPadraoMedicao As entidadeTipoPadraoMedicao) As Boolean
        Dim repositorioTipoPadraoMedicao As New repositorioTipoPadraoMedicao
        Try

            repositorioTipoPadraoMedicao.Delete(objTipoPadraoMedicao)

            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function

#End Region


End Class