public void AtualizarEntregavel(EntregavelDTO entregavel_) { ContratoEntregavel entregavel = db.ContratoEntregavel.Where(_ => _.IdContratoEntregavel == entregavel_.Id)?.FirstOrDefault(); if (entregavel != null) { entregavel.DsProduto = entregavel_.Nome; entregavel.DtProduto = entregavel_.DataPrevista; entregavel.IdFrente = entregavel_.Frente.Id; if (entregavel_.Situacao.Id == 89 || entregavel_.Situacao.Id == 90 || entregavel_.Situacao.Id == 91) { entregavel.IdSituacao = entregavel_.Situacao.Id; entregavel.IcAtraso = false; } else { if (entregavel_.DataPrevista != null) { if (entregavel_.DataPrevista.Value.Date < DateTime.Now.Date) { entregavel.IdSituacao = 68; entregavel.IcAtraso = true; } else { if (entregavel_.Situacao.Id == 68 || entregavel_.Situacao.Id == 97) { entregavel.IdSituacao = 56; entregavel.IcAtraso = false; } else { entregavel.IdSituacao = entregavel_.Situacao.Id; entregavel.IcAtraso = false; } } } else { entregavel.IdSituacao = entregavel_.Situacao.Id; entregavel.IcAtraso = false; } } entregavel.VlOrdem = entregavel_.Numero; entregavel.IdContratoCliente = entregavel_.Cliente.Id; db.SaveChanges(); } }
public void ExcluirEntregavel(int idEntregavel_) { ContratoEntregavel entregavel = db.ContratoEntregavel.Where(_ => _.IdContratoEntregavel == idEntregavel_)?.FirstOrDefault(); if (entregavel != null) { var colParcelaEntregavel = db.ContratoParcelaEntregavel.Where(_ => _.IdEntregavel == entregavel.IdContratoEntregavel)?.ToList(); if (colParcelaEntregavel != null) { colParcelaEntregavel.ForEach(_ => db.ContratoParcelaEntregavel.Remove(_)); } db.ContratoEntregavel.Remove(entregavel); db.SaveChanges(); } }
public void AplicarAditivo(InputAplicarAditivo inputAplicarAditivo) { var aditivo = db.ContratoAditivo.FirstOrDefault(_ => _.IdContratoAditivo == inputAplicarAditivo.IdAditivo); var contrato = db.Contrato.FirstOrDefault(_ => _.IdContrato == aditivo.IdContrato); if (aditivo.IcAditivoData != null) { contrato.DtFim = aditivo.DtFimAditivada; } if (aditivo.IcAditivoValor != null) { contrato.VlContrato = aditivo.VlContratoAditivado.GetValueOrDefault(); } aditivo.DtAplicacao = DateTime.Now; aditivo.IdUsuarioAplicacao = AppSettings.constGlobalUserID; aditivo.DtIniExecucaoAditivo = DateTime.Now; aditivo.IdSituacao = 101; var lstContratoCronogramaFinanceiroAntigos = db.ContratoCronogramaFinanceiro.Where(w => w.IdContrato == contrato.IdContrato).ToList(); var lstContratoEntregaveisAntigos = db.ContratoEntregavel.Where(w => w.IdContrato == contrato.IdContrato).ToList(); var lstContratoCronogramaFinanceiroTemporaria = db.ContratoCronogramaFinanceiroTemporaria.Where(w => w.IdContrato == contrato.IdContrato).ToList(); var lstEntregaveisTemporaria = db.ContratoEntregavelTemporaria.Where(w => w.IdContrato == contrato.IdContrato).ToList(); foreach (var entregavelTemp in lstEntregaveisTemporaria) { var contratoEntregavel = new ContratoEntregavel(); contratoEntregavel.IdContrato = entregavelTemp.IdContrato; contratoEntregavel.DsProduto = entregavelTemp.DsProduto; contratoEntregavel.DtProduto = entregavelTemp.DtProduto; contratoEntregavel.IdContratoCliente = entregavelTemp.IdContratoCliente.Value; contratoEntregavel.IdFrente = entregavelTemp.IdFrente; contratoEntregavel.IdSituacao = entregavelTemp.IdSituacao; contratoEntregavel.VlOrdem = entregavelTemp.VlOrdem; db.ContratoEntregavel.Add(contratoEntregavel); db.SaveChanges(); entregavelTemp.IdEntregavel = contratoEntregavel.IdContratoEntregavel; } foreach (var parcelaTemp in lstContratoCronogramaFinanceiroTemporaria) { var contratoCronogramaFinanceiro = new ContratoCronogramaFinanceiro(); contratoCronogramaFinanceiro.CdIss = parcelaTemp.CdIss; // Retorna somente os dois ultimos caracteres do Código da Parcela string codigoReajusteParcela = parcelaTemp.CdParcela.Substring(parcelaTemp.CdParcela.Length - 2, 2); // Remove os dois ultimos caracteres do Código da Parcela parcelaTemp.CdParcela = parcelaTemp.CdParcela.Remove(parcelaTemp.CdParcela.Length - 2, 2); // Soma 1 nos dois ultimos caracteres do Código da Parcela int novoCdReajusteParcela = Convert.ToInt32(codigoReajusteParcela) + 1; codigoReajusteParcela = novoCdReajusteParcela.ToString().Length > 1 ? novoCdReajusteParcela.ToString() : "0" + novoCdReajusteParcela.ToString(); parcelaTemp.CdParcela += codigoReajusteParcela; contratoCronogramaFinanceiro.CdParcela = parcelaTemp.CdParcela; contratoCronogramaFinanceiro.DsTextoCorpoNf = parcelaTemp.DsTextoCorpoNf; contratoCronogramaFinanceiro.DtFaturamento = parcelaTemp.DtFaturamento; contratoCronogramaFinanceiro.DtNotaFiscal = parcelaTemp.DtNotaFiscal; contratoCronogramaFinanceiro.IdContratoCliente = parcelaTemp.IdContratoCliente; contratoCronogramaFinanceiro.IdSituacao = parcelaTemp.IdSituacao; contratoCronogramaFinanceiro.NuNotaFiscal = parcelaTemp.NuNotaFiscal; contratoCronogramaFinanceiro.NuParcela = parcelaTemp.NuParcela; contratoCronogramaFinanceiro.VlParcela = parcelaTemp.VlParcela; contratoCronogramaFinanceiro.IcAtraso = parcelaTemp.IcAtraso; contratoCronogramaFinanceiro.IdContrato = parcelaTemp.IdContrato; contratoCronogramaFinanceiro.IdFrente = parcelaTemp.IdFrente; db.ContratoCronogramaFinanceiro.Add(contratoCronogramaFinanceiro); db.SaveChanges(); // Busca os Registros na Tabela ContratoParcelaEntregavelTemporaria para verificar se a Parcela estava ligada com Entregaveis var lstContratoParcelaEntregavelTemp = db.ContratoParcelaEntregavelTemporaria.Where(w => w.IdParcela == parcelaTemp.IdContratoCronFinanceiro).ToList(); if (lstContratoParcelaEntregavelTemp.Count > 0) { foreach (var contratoParcEntreTemp in lstContratoParcelaEntregavelTemp) { // Busca o registro na tabela ContratoEntregavelTemporaria var contratoEntregavelTemp = lstEntregaveisTemporaria.Where(w => w.IdContratoEntregavel == contratoParcEntreTemp.IdEntregavel).FirstOrDefault(); if (contratoEntregavelTemp != null) { // Com o ContratoEntregavel e a Parcela , cria um novo registro na tabela ContratoEntregavelParcela var contratoParcelaEntregavel = new ContratoParcelaEntregavel(); contratoParcelaEntregavel.IdEntregavel = contratoEntregavelTemp.IdEntregavel.Value; contratoParcelaEntregavel.IdParcela = contratoCronogramaFinanceiro.IdContratoCronFinanceiro; db.ContratoParcelaEntregavel.Add(contratoParcelaEntregavel); db.SaveChanges(); } // Após copiar o relacionamento entre Parcela e Entregavel remove o registro db.ContratoParcelaEntregavelTemporaria.Remove(contratoParcEntreTemp); db.SaveChanges(); } } // Após copiar a Parcela , exclui da tabela Temporaria db.ContratoCronogramaFinanceiroTemporaria.Remove(parcelaTemp); db.SaveChanges(); } // Remove todos os registros de EntregaveisTemporaria do devido Contrato db.ContratoEntregavelTemporaria.RemoveRange(lstEntregaveisTemporaria); db.SaveChanges(); // Busca todas as relações antigas entre Parcela e Entregavel e exclui foreach (var entregavelAntigo in lstContratoEntregaveisAntigos) { var lstParcelaEntregavelAntigo = db.ContratoParcelaEntregavel.Where(w => w.IdEntregavel == entregavelAntigo.IdContratoEntregavel).ToList(); if (lstParcelaEntregavelAntigo.Count > 0) { db.ContratoParcelaEntregavel.RemoveRange(lstParcelaEntregavelAntigo); db.SaveChanges(); } } // Remove todos Registros de Entregaveis e Parcelas antigos (salvos no histórico) db.ContratoEntregavel.RemoveRange(lstContratoEntregaveisAntigos); db.ContratoCronogramaFinanceiro.RemoveRange(lstContratoCronogramaFinanceiroAntigos); db.SaveChanges(); }