public void ValidarPrestacoesPagas(ContratoEntidade contrato) { string[] tipos = { "A", "AV" }; var prestacoesPagas = contrato.Prestacoes .Count(x => !tipos.Contains(x.TIPO) && x.DT_PAGTO != null); bool disponibilidade = true; if (contrato.Natureza.RENOVACAO_MIN_PERC.HasValue && contrato.Natureza.RENOVACAO_MIN_PERC.Value > 0) { decimal prazovezeslimitemin = (contrato.PRAZO * (contrato.Natureza.RENOVACAO_MIN_PERC.Value / 100M)).Trunca(0); decimal diferenca = prazovezeslimitemin - prestacoesPagas; if (diferenca >= 1) { disponibilidade = false; //inválido para reforma } } else if (contrato.Natureza.CAR_RENOVACAO.HasValue && contrato.Natureza.CAR_RENOVACAO.Value > 0) { disponibilidade = contrato.Natureza.CAR_RENOVACAO <= prestacoesPagas; } if (disponibilidade == false) { MotivoGlobal += "Contrato não pode ser reformado, quantidade de parcelas pagas menor que o limite mínimo.\n"; DisponibilidadeGlobal = disponibilidade; } }
private static ContratoEntidade BuscarDetalhesContratos(string CD_FUNDACAO, ContratoEntidade contrato) { contrato.Modalidade = new ModalidadeProxy().BuscarPorCodigo(contrato.CD_MODAL); contrato.Natureza = new NaturezaProxy().BuscarPorCdNatur(contrato.CD_NATUR); contrato.Prestacoes = new PrestacaoProxy().BuscarPorFundacaoContrato(CD_FUNDACAO, contrato.ANO_CONTRATO, contrato.NUM_CONTRATO).ToList(); contrato.Prestacoes.ForEach(prestacao => { prestacao.DES_VL_RECEBIDO = prestacao.VL_RECEBIDO != 0 ? prestacao.VL_RECEBIDO.Value.ToString("C") : string.Empty; }); contrato.DES_NUM_CONTRATO = $"{contrato.NUM_CONTRATO}/{contrato.ANO_CONTRATO}"; contrato.DES_PARCELAS = $"{contrato.Prestacoes.Count(x => x.DT_PAGTO != null)}/{contrato.PRAZO}"; return(contrato); }
// POST: api/Contrato public long Post([FromBody] ContratoEntidade aEntidade) { try { return(new ContratoNegocio().Cadastrar(aEntidade)); } catch (Exception ex) { var erro = new HttpResponseMessage(HttpStatusCode.NotAcceptable) { Content = new StringContent(ex.Message) }; throw new HttpResponseException(erro); } }