public ActionResult Cadastrar(NovoContratoViewModel entidade) { if (ModelState.IsValid) { try { if (entidade?.Departamento?.Count > 0) { if (entidade?.SubContratadas?.Count > 0 && !string.IsNullOrEmpty(entidade.UKFornecedor)) { if (entidade.SubContratadas.Where(a => a.Equals(entidade.UKFornecedor)).Count() > 0) { throw new Exception("Não é possível selecionar o mesmo fornecedor no campo sub-contratada"); } } Contrato obj = new Contrato() { UniqueKey = Guid.NewGuid(), Numero = entidade.Numero, Descricao = entidade.Descricao, DataInicio = entidade.DataInicio, DataFim = entidade.DataFim, UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login }; ContratoBusiness.Inserir(obj); if (!string.IsNullOrEmpty(entidade.UKFornecedor)) { REL_ContratoFornecedor rel = new REL_ContratoFornecedor() { UKContrato = obj.UniqueKey, UKFornecedor = Guid.Parse(entidade.UKFornecedor), UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login, TipoContratoFornecedor = GISModel.Enums.ETipoContratoFornecedor.Contratada }; REL_ContratoFornecedorBusiness.Inserir(rel); } if (entidade?.SubContratadas?.Count > 0) { foreach (string sub in entidade.SubContratadas) { REL_ContratoFornecedor rel = new REL_ContratoFornecedor() { UKContrato = obj.UniqueKey, UKFornecedor = Guid.Parse(sub), UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login, TipoContratoFornecedor = GISModel.Enums.ETipoContratoFornecedor.SubContratada }; REL_ContratoFornecedorBusiness.Inserir(rel); } } foreach (string Dep in entidade.Departamento) { REL_DepartamentoContrato objDepContrato = new REL_DepartamentoContrato() { UKContrato = obj.UniqueKey, UKDepartamento = Guid.Parse(Dep), UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login }; REL_DepartamentoContratoBusiness.Inserir(objDepContrato); } } else { throw new Exception("É necessário informar pelo menos um departamento para prosseguir com o cadastro do contrato."); } Extensions.GravaCookie("MensagemSucesso", "O Contrato '" + entidade.Numero + "' foi cadastrado com sucesso!", 10); return(Json(new { resultado = new RetornoJSON() { URL = Url.Action("Index", "Contrato") } })); } catch (Exception ex) { if (ex.GetBaseException() == null) { return(Json(new { resultado = new RetornoJSON() { Erro = ex.Message } })); } else { return(Json(new { resultado = new RetornoJSON() { Erro = ex.GetBaseException().Message } })); } } } else { return(Json(new { resultado = TratarRetornoValidacaoToJSON() })); } }
public ActionResult Terminar(string IDContrato) { Guid Guid = Guid.Parse(IDContrato); try { Contrato oContrato = ContratoBusiness.Consulta.FirstOrDefault(p => string.IsNullOrEmpty(p.UsuarioExclusao) && p.UniqueKey.Equals(Guid)); if (oContrato == null) { return(Json(new { resultado = new RetornoJSON() { Erro = "Não foi possível excluir o Contrato, pois o mesmo não foi localizado." } })); } else { oContrato.DataExclusao = DateTime.Now; oContrato.UsuarioExclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login; ContratoBusiness.Alterar(oContrato); List <REL_ContratoFornecedor> fornecedores = REL_ContratoFornecedorBusiness.Consulta.Where(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKContrato.Equals(Guid)).ToList(); if (fornecedores?.Count > 0) { foreach (REL_ContratoFornecedor rel in fornecedores) { rel.DataExclusao = DateTime.Now; rel.UsuarioExclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login; REL_ContratoFornecedorBusiness.Alterar(rel); } } REL_DepartamentoContrato dep = REL_DepartamentoContratoBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKContrato.Equals(Guid)); if (dep != null) { dep.DataExclusao = DateTime.Now; dep.UsuarioExclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login; REL_DepartamentoContratoBusiness.Alterar(dep); } return(Json(new { resultado = new RetornoJSON() { Sucesso = "O Contrato '" + oContrato.Numero + "' foi excluído com sucesso." } })); } } catch (Exception ex) { if (ex.GetBaseException() == null) { return(Json(new { resultado = new RetornoJSON() { Erro = ex.Message } })); } else { return(Json(new { resultado = new RetornoJSON() { Erro = ex.GetBaseException().Message } })); } } }