private void TransferePropriedades( PropostaViewModel origem, Proposta destino) { destino.Id = origem.Id; destino.IdUsuario = origem.IdUsuario; destino.DataEntrada = origem.DataEntrada; destino.Nome = origem.Nome; destino.CPF = origem.CPF; destino.DataNascimento = origem.DataNascimento; destino.Matricula = origem.Matricula; destino.SenhaConvenio = origem.SenhaConvenio; destino.IdBancoConta = origem.IdBancoConta; destino.Agencia = origem.Agencia; destino.ContaCorrente = origem.ContaCorrente; destino.IdTipoConta = origem.IdTipoConta; destino.IdUsuarioDigitacao = origem.IdUsuarioDigitacao; destino.DataDigitacao = origem.DataDigitacao; destino.IdBanco = origem.IdBanco; destino.IdConvenio = origem.IdConvenio; destino.ValorParcela = origem.ValorParcela; destino.MargemLivre = origem.MargemLivre; destino.MargemUtilizada = origem.MargemUtilizada; destino.Coeficiente = origem.Coeficiente; destino.QtdeParcelas = origem.QtdeParcelas; destino.ValorContrato = origem.ValorContrato; destino.Tabela = origem.Tabela; destino.DataCoeficiente = origem.DataCoeficiente; destino.Observacao = origem.Observacao; destino.Endereco = origem.Endereco; destino.NumeroEndereco = origem.NumeroEndereco; destino.Bairro = origem.Bairro; destino.Cidade = origem.Cidade; destino.Uf = origem.Uf; destino.Cep = origem.Cep; destino.Complemento = origem.Complemento; }
public ActionResult Edit([Bind(Include="Id,IdUsuario,DataEntrada,Nome,CPF,DataNascimento,Matricula,SenhaConvenio,IdBancoConta,Agencia,ContaCorrente,IdTipoConta,IdUsuarioDigitacao,DataDigitacao,IdBanco,IdConvenio,ValorParcela,MargemLivre,MargemUtilizada,Coeficiente,QtdeParcelas,ValorContrato,Tabela,DataCoeficiente,Observacao,Endereco,NumeroEndereco,Bairro,Cidade,Uf,Cep,Complemento")] PropostaViewModel propostaVM) { Seguranca.ValidaAcesso(7); MontaListaTelefones(Request, propostaVM); MontaListaDividas(Request, propostaVM); if (ModelState.IsValid) { propostaVM.CPF = propostaVM.CPF.Replace(".","").Replace("-",""); if (propostaVM.Cep != null) propostaVM.Cep = propostaVM.Cep.Replace("-",""); var proposta = new Proposta(); TransferePropriedades(propostaVM, proposta); if (UsuarioLogado.LimitaProposta) { proposta.IdUsuario = UsuarioLogado.IdUsuario; } db.Entry(proposta).State = EntityState.Modified; try { db.SaveChanges(); int? sequencia = db.ObtemSequencia().FirstOrDefault(); foreach (var item in propostaVM.Telefones) { db.Database.ExecuteSqlCommand("insert into AuxTelefoneProposta (Seq, IdProposta, IdTipoTelefone, Telefone) values({0}, {1}, {2}, {3})", sequencia, proposta.Id, item.IdTipoTelefone, item.Telefone); } db.GravaTelefonesProposta(sequencia, proposta.Id); foreach (var item in propostaVM.Dividas) { db.Database.ExecuteSqlCommand("insert into AuxDividaProposta (Seq, IdProposta, IdBanco, SaldoDevedor, ValorParcela) values({0}, {1}, {2}, {3}, {4})", sequencia, proposta.Id, item.IdBanco, item.SaldoDevedor, item.ValorParcela); } db.GravaDividasProposta(sequencia, proposta.Id); } catch (DbEntityValidationException e) { StringBuilder sb = new StringBuilder(); foreach (var eve in e.EntityValidationErrors) { sb.AppendLine(string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State)); foreach (var ve in eve.ValidationErrors) { sb.AppendLine(string.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage)); } } throw new DbEntityValidationException(sb.ToString(), e); } return RedirectToAction("Index"); } ViewBag.IdBancoConta = new SelectList(db.Bancos, "Id", "Nome", propostaVM.IdBancoConta); ViewBag.IdConvenio = new SelectList(db.Convenios, "Id", "Nome", propostaVM.IdConvenio); ViewBag.IdBanco = new SelectList(db.Bancos, "Id", "Nome", propostaVM.IdBanco); ViewBag.IdTipoConta = new SelectList(db.TiposConta, "Id", "Nome", propostaVM.IdTipoConta); ViewBag.IdUsuario = new SelectList(db.Usuarios, "Id", "Login", propostaVM.IdUsuario); ViewBag.IdUsuarioDigitacao = new SelectList(db.Usuarios, "Id", "Login", propostaVM.IdUsuarioDigitacao); ViewBag.IdTipoTelefone = new SelectList(db.TiposTelefone, "Id", "Nome"); ViewBag.TiposTelefone = db.TiposTelefone; ViewBag.Bancos = db.Bancos; return View(propostaVM); }