private void IncluirFuncionario(FuncionarioDTO funcionario) { Funcionarios.Add(funcionario); rptFuncionarios.DataSource = Funcionarios.OrderByDescending(f => f.ObterNumeroSequencial); rptFuncionarios.DataBind(); }
protected void IncluindoNovoFuncionario(object sender, EventArgs e) { try { if (!NHibernateSessionPerRequest.GetCurrentSession().Contains(Departamento)) NHibernateSessionPerRequest.GetCurrentSession().Refresh(Departamento); if (ddlCentrosDeCusto.SelectedValue == "0") { Notificacao = "É obrigatório selecionar um centro de custo para incluir um novo funcionário"; EnviarMensagem(); return; } //if (this.Departamento.CentrosDeCusto.Where(c => c.CodigoDoCentroDeCusto == ddlCentrosDeCusto.SelectedValue).FirstOrDefault().Funcionarios != null && // this.Departamento.CentrosDeCusto.Where(c => c.CodigoDoCentroDeCusto == ddlCentrosDeCusto.SelectedValue).FirstOrDefault().Funcionarios.Any(f => f.Matricula == txtMatricula.Text)) //{ // Notificacao = "Não é possivel adicionar um funcionário com o mesmo numero de matricula."; // EnviarMensagem(); // return; //} if (string.IsNullOrEmpty(txCargo.Text)) { Notificacao = "Não é possivel adicionar um funcionário sem cargo."; EnviarMensagem(); return; } double salario = 0; if (!string.IsNullOrEmpty(txtSalario.Text)) salario = double.Parse(txtSalario.Text.Replace(".", "")); else { Notificacao = "Salário é obrigatório"; EnviarMensagem(); return; } int dataAdmissao = 0; if (!string.IsNullOrEmpty(ddlDataDeAdmissao.SelectedItem.Value)) dataAdmissao = int.Parse(ddlDataDeAdmissao.SelectedItem.Value); else { Notificacao = "Data de admissão é obrigatória"; EnviarMensagem(); return; } if (txtNome.SelectedValue == "0") { Notificacao = "Selecione motivo da contratacão"; EnviarMensagem(); return; } if (DivVaga.Visible == true && ddlVaga.SelectedItem.Value == "0") { Notificacao = "Não é possivel repor um funcionario sem informar a vaga."; EnviarMensagem(); return; } if (DivVaga.Visible == true && Funcionarios.Where(f => f.NumeroDeVaga == int.Parse(ddlVaga.SelectedItem.Value)).Count() > 1) { Notificacao = "Esta vaga não esta disponivel."; EnviarMensagem(); return; } if (DivVaga.Visible == true && Funcionarios.FirstOrDefault(f => f.NumeroDeVaga == int.Parse(ddlVaga.SelectedItem.Value) && f.Demitido) == null) { Notificacao = "Não existe vaga disponível para reposição neste centro de custo"; EnviarMensagem(); return; } var funcionarioProximaMatricula = Funcionarios.Where(f => !string.IsNullOrEmpty(f.InicialNumeroMatricula)) .OrderByDescending(f => int.Parse(f.Matricula.Substring(1))).FirstOrDefault(); int countFuncionarios = Funcionarios.Where(f => !string.IsNullOrEmpty(f.InicialNumeroMatricula) && f.InicialNumeroMatricula == "N").Count(); var funcionario = new FuncionarioDTO() { Hospital = Departamento.Nome, Nome = txtNome.SelectedValue.ToUpper(), Matricula = txtNome.SelectedValue == "Aumento de Quadro" ? funcionarioProximaMatricula != null ? "N" + (Convert.ToInt32(funcionarioProximaMatricula.Matricula.Substring(1)) + 1) : "N1" : funcionarioProximaMatricula != null ? "R" + (Convert.ToInt32(funcionarioProximaMatricula.Matricula.Substring(1)) + 1) : "R1", InicialNumeroMatricula = txtNome.SelectedValue == "Aumento de Quadro" ? "N" : "R", DataDeAdmissao = dataAdmissao, SalarioBase = salario, Cargo = txCargo.Text.ToUpper(), AnoAdmissao = 2014, NumeroDeVaga = DivVaga.Visible == false ? countFuncionarios > 0 ? Funcionarios.Where(f => !string.IsNullOrEmpty(f.InicialNumeroMatricula) && f.InicialNumeroMatricula == "N").OrderByDescending(f => f.NumeroDeVaga).FirstOrDefault().NumeroDeVaga + 1 : 60000 : int.Parse(ddlVaga.SelectedItem.Value) }; IncluirFuncionario(funcionario); } catch (Exception ex) { Notificacao = ex.Message; } //if (string.IsNullOrEmpty(Notificacao)) // SalvarOrcamento(); EnviarMensagem(); }