Beispiel #1
0
        public bool UpdateSituacao(Funcionario func, HistoricoSituacao historico)
        {
            using (var ctx = new BalcaoContext())
            {
                var current = ctx.FuncionarioDao.Find(func.IdFuncionario);

                current.Situacao = historico.Situacao;
                current.HistoricoSituacao.Add(historico);

                //atualiza o objeto de onde foi chamado
                func.Update(current);

                return(ctx.FuncionarioDao.Update(current));
            }
        }
Beispiel #2
0
        public bool DemitirFuncionario(Funcionario func, string motivo, Nullable <DateTime> dtDemissao = null)
        {
            using (var ctx = new BalcaoContext())
            {
                var current = ctx.FuncionarioDao.Find(func.IdFuncionario);
                current.Situacao = TypeSituacaoFuncionario.Demitido;

                var historico = new HistoricoSituacao(func.IdFilial,
                                                      func.DataAdmissao, current.Situacao, motivo);

                historico.DataDemissao = dtDemissao;

                current.HistoricoSituacao.Add(historico);

                return(ctx.FuncionarioDao.Update(current));
            }
        }
Beispiel #3
0
        private void barBtnSalvar_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (lookUpMatrizFilial1.IsMatrizFilial)
            {
                var filial = lookUpMatrizFilial1.Filial;

                var situacao   = cbSituacao.GetSelectedItem <TypeSituacaoFuncionario>();
                var dtDemissao = dtEditDtDemissao.DateTime.Date.ValidateDate();

                if (situacao == this.func.Situacao && filial.IdFilial == this.func.IdFilial)
                {
                    XMessageIts.Advertencia("A situação e filial são iguais.\n"
                                            + "Para que haja um alteração \"Situação e Filial\" devem ser diferentes.");
                }
                else
                {
                    //atualiza filial
                    this.func.IdFilial = filial.IdFilial;
                    this.func.Situacao = situacao;

                    if (dtEditDtDemissao.Visible && dtDemissao == null)
                    {
                        XMessageIts.Advertencia("Informe a data da demissão");
                    }
                    else
                    {
                        HistoricoSituacao historico = new HistoricoSituacao(func.IdFilial, func.DataAdmissao,
                                                                            situacao, memoEditHistorico.Text);

                        historico.IdFilial = filial.IdFilial;

                        //se existe a data de demissao
                        if (dtDemissao != null)
                        {
                            historico = new HistoricoSituacao(func.IdFilial, func.DataAdmissao, dtEditDtDemissao.DateTime,
                                                              situacao, memoEditHistorico.Text);
                        }

                        var validador = new ValidadorDTO();

                        if (ValidadorDTO.ValidateWarning(func) && ValidadorDTO.ValidateWarning(historico))
                        {
                            if (dtDemissao != null)
                            {
                                var op = XMessageIts.Confirmacao("Confirma demissão do funcionário: " + func.NomeFuncionario);

                                if (op == DialogResult.Yes)
                                {
                                    var flag = new HistoricoFuncionarioManager().
                                               DemitirFuncionario(func, this.memoEditHistorico.Text, dtDemissao);

                                    if (flag)
                                    {
                                        XMessageIts.Mensagem("Funcionário demitido!");

                                        //atualiza o objeto de onde foi chamado
                                        this.Dispose();
                                    }
                                }
                            }
                            else if (new HistoricoFuncionarioManager().UpdateSituacao(func, historico))
                            {
                                XMessageIts.Mensagem("Situação alterada com sucesso!");
                                this.Dispose();
                            }
                        }
                    }
                }
            }
            else
            {
                XMessageIts.Mensagem("Matriz e Filial não informadas", "Atenção");
            }
        }