public ActionResult IBono(Int32?bonoId)
        {
            var viewModel = new AddEditBonoViewModel();

            viewModel.CargarDatos(BonoDAO.context, bonoId);
            return(View(viewModel));
        }
        public ActionResult IBono(AddEditBonoViewModel model)
        {
            if (!ModelState.IsValid)
            {
                TryUpdateModel(model);
                Debug.WriteLine("IBono - no es valido");
                return(View(model));
            }
            try
            {
                using (var transactionScope = new TransactionScope())
                {
                    //Le tengo que especificar que es del Model ya que hay un namespace con Bono y se confunde
                    model.userId = Session.GetUsuarioId();
                    BonoDAO.AddEditEntity(model);
                    Debug.WriteLine("IBono - antes de TransactionScope");
                    transactionScope.Complete();
                    Debug.WriteLine("IBono - Redireccionando al Index");

                    return(RedirectToAction("Index", "Home"));
                }
            }
            catch (Exception ex)
            {
                model.CargarDatos(BonoDAO.context, model.BonoId);
                Debug.WriteLine("IBono - catch -> " + ex.Message + "\n" + ex.InnerException + "\n");
                TryUpdateModel(model);
                return(View(model));
            }
        }
        public void AddEditEntity(AddEditBonoViewModel model)
        {
            var bono = new Models.Bono();

            if (model.BonoId.HasValue)
            {
                Debug.WriteLine("IBono - if:editar");
                bono = context.Bono.Find(model.BonoId);
            }
            else
            {
                Debug.WriteLine("IBono - else:agregar");
                context.Bono.Add(bono);
            }
            model.TransferModel(ref bono);

            Debug.WriteLine("IBono - antes de guardar");
            context.SaveChanges();
        }
Esempio n. 4
0
        public static void TransferModel(this AddEditBonoViewModel model, ref Models.Bono bono /*, ref Models.Bono_Tasa bonoTasa*/)
        {
            //ID del bono se autogenera
            bono.Entidad_ID         = model.userId;
            bono.ValorNominal       = model.ValorNominal.ToDouble();
            bono.ValorComercial     = model.ValorComercial.ToDouble();
            bono.NroAnios           = model.nAnios;
            bono.FrecCupon          = model.frecCupon;
            bono.DiasPorAnio        = model.diasXanio;
            bono.ImpRenta           = model.ImpRenta.ToDouble();
            bono.FechaEmision       = model.FechaEmision;
            bono.TasaAnualDescuento = model.TasaAnualDescuento.ToDouble();

            if (model.LstTasaId.Count != model.LstValorTasa.Count)
            {
                Debug.WriteLine("TranferHelper-(bono, bonoTasa) sizes of List non equal");
                return;
            }
            Debug.WriteLine(model.LstValorTasa.Count + ", " + model.LstTasaId.Count);
            for (var i = 0; i < model.LstValorTasa.Count; i++)
            {
                Debug.WriteLine("i: " + i + " -> " + model.LstTasaId[i] + ", " + model.LstValorTasa[i].ToDouble() + ", " + model.LstCapitalizaciones[i] + ", " + model.LstNroPeriodos[i]);
            }
            for (var i = 0; i < model.LstValorTasa.Count; i++)
            {
                bono.Bono_Tasa.Add(new Bono_Tasa
                {
                    //ID del Bono_Tasa se autogenera
                    TipoTasa_ID = model.LstTasaId[i],
                    //BonoId se autogenera ya que es IDENTITY el pk del Bono
                    TasaInteres    = model.LstValorTasa[i].ToDouble(),
                    NroCuota       = model.LstNroPeriodos[i],
                    capitalizacion = model.LstCapitalizaciones[i].validacionCap(model.LstTasaId[i])
                });
            }

            for (var i = 0; i < model.LstValInflaciones.Count; i++)
            {
                bono.Inflacion.Add(new Inflacion
                {
                    Valor   = model.LstValInflaciones[i].ToDouble(),
                    Periodo = model.LstPerInflaciones[i]
                });
            }


            for (var i = 0; i < model.LstPlazosDeGraciaId.Count; i++)
            {
                if (model.LstPlazosDeGraciaId.Count <= 1 && model.LstPlazosDeGraciaId[0] == 1)
                {
                    break;
                }
                //{

                /*bono.PlazoBono.Add(new PlazoBono
                 * {
                 *  PlazoGracia_ID = 1,
                 *  Periodo = 1
                 * });*/
                //break;
                // }
                // else
                // {
                bono.PlazoBono.Add(new PlazoBono
                {
                    PlazoGracia_ID = model.LstPlazosDeGraciaId[i],
                    Periodo        = model.LstPerPlazoBono[i]
                });
                // }
            }

            for (int i = 0; i < model.LstCostesGastosNombres.Count; i++)
            {
                bono.Costes_Gastos.Add(new Costes_Gastos
                {
                    Nombre = model.LstCostesGastosNombres[i],
                    Valor  = model.LstCostesGastosValores[i].ToDouble(),
                    Emisor = model.LstCostesGastosEmisor[i]
                });
            }
        }