public ActionResult CadastrarFuncionario(Pessoa oFuncionario, HttpPostedFileBase Imagem, string Salario) { Empresa aEmpresa = DbPessoa.SelecionarEmpresa(Convert.ToInt32(Session["IDEmpresa"])); oFuncionario.Pes_DataCadastro = aEmpresa.Emp_DataAtual; ViewBag.Pes_Cargo_Car_ID = new SelectList(DbPessoa.SelecionarVagasEmpresa(Convert.ToInt32(Session["IDEmpresa"])), "Vag_ID", "Vag_Titulo", oFuncionario.Pes_Vaga_Vag_ID); if (Convert.ToBoolean(Session["Avaliativa"])) { if (DbPessoa.LimiteFuncionariosEmpresaAvaliativa(Convert.ToInt32(Session["IDEmpresa"]))) { ModelState.AddModelError("Limite", "O limite de funcionários nessa Empresa Avaliativa foi atingido. (Limite de Funcionários = 5)"); } } if (Imagem == null) { ModelState.AddModelError("Imagem", "Por favor selecione a imagem do funcionário"); return(View()); } else { byte[] ImagemFuncionario = new byte[Imagem.ContentLength]; Imagem.InputStream.Read(ImagemFuncionario, 0, Imagem.ContentLength); oFuncionario.Pes_Imagem = ImagemFuncionario; } if (string.IsNullOrEmpty(Salario)) { ModelState.AddModelError("Pes_Salario", "Digite o Salário do funcionário"); } Vaga aVaga = DbPessoa.SelecionarVaga(oFuncionario.Pes_Vaga_Vag_ID); Cargo oCargo = DbPessoa.SelecionarCargo(aVaga.Vag_Cargo_Car_ID); if (oCargo.Car_Chefe) { if (DbPessoa.CargoOcupado(oCargo.Car_ID)) { ModelState.AddModelError("CargoChefe", "Este cargo selecionado é um cargo com uma posição de chefe do setor e já está ocupado por outro funcionário, o cargo de chefe do setor só pode existir um funcionário que o ocupe"); } } if (ModelState.IsValid) { oFuncionario.Pes_Situation = true; oFuncionario.Pes_Salario = Convert.ToDouble(Salario); DbPessoa.CadastrarFuncionario(oFuncionario); return(RedirectToAction("MeusFuncionarios")); } return(View()); }