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)); } }
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)); } }
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"); } }