public ActionResult ViewDepartamento(Int32 DepartamentoId, Int32 EdificioId)
        {
            AddEditDepartamentoViewModel ViewModel = new AddEditDepartamentoViewModel();

            ViewModel.EdificioId     = EdificioId;
            ViewModel.DepartamentoId = DepartamentoId;
            ViewModel.Fill(CargarDatosContext());
            return(View(ViewModel));
        }
        public ActionResult AddEditDepartamento(AddEditDepartamentoViewModel ViewModel)
        {
            if (!ModelState.IsValid)
            {
                ViewModel.Fill(CargarDatosContext());
                TryUpdateModel(ViewModel);
                return(View(ViewModel));
            }

            try
            {
                if (!ViewModel.DepartamentoId.HasValue)
                {
                    Departamento _nuevo = new Departamento();
                    _nuevo.EdificioId = ViewModel.EdificioId.ToInteger();
                    _nuevo.Numero     = ViewModel.Numero;

                    try
                    {
                        _nuevo.Piso = Int32.Parse(ViewModel.Numero) / 100;
                    }
                    catch (Exception ex)
                    {
                        _nuevo.Piso = 0;
                    }

                    _nuevo.NombrePropietario = ViewModel.NombreReciboDepartamento == "P" ? true : false;
                    _nuevo.NombreRecibo      = _nuevo.NombrePropietario ? "PROPIETARIO" : "INQUILINO";

                    _nuevo.LecturaAgua       = ViewModel.LecturaAgua;
                    _nuevo.Estado            = ConstantHelpers.EstadoActivo;
                    _nuevo.FactorGasto       = ViewModel.FactorGasto;
                    _nuevo.Estacionamiento   = ViewModel.Estacionamiento;
                    _nuevo.Deposito          = ViewModel.Deposito;
                    _nuevo.DepartamentoM2    = ViewModel.DepartamentoM2;
                    _nuevo.EstacionamientoM2 = ViewModel.EstacionamientoM2;
                    _nuevo.DepositoM2        = ViewModel.DepositoM2;
                    _nuevo.PDistribucion     = ViewModel.PDistribucion;
                    _nuevo.MontoMora         = 0M;
                    _nuevo.TotalM2           = ViewModel.AreaTotalM2;
                    _nuevo.OmitirMora        = false;
                    _nuevo.CuotaDefault      = ViewModel.CuotaDefault;
                    _nuevo.TipoInmuebleId    = ViewModel.TipoInmuebleId;
                    //_nuevo.NombreRecibo = ViewModel.NombreRecibo;
                    _nuevo.AlertaMora = ViewModel.AlertaMoraDrop == "1" ? true : false;
                    context.Departamento.Add(_nuevo);

                    var numeroRecibo   = context.UnidadTiempoReciboDepartamento.Where(x => x.Departamento.EdificioId == ViewModel.EdificioId).Max(x => x.NumeroRecibo);
                    var unidadTiempoId = context.UnidadTiempoReciboDepartamento.FirstOrDefault(x => x.NumeroRecibo == numeroRecibo).UnidadTiempoId;


                    var utRecibo = new UnidadTiempoReciboDepartamento();
                    utRecibo.NumeroRecibo   = numeroRecibo + 1;
                    utRecibo.UnidadTiempoId = unidadTiempoId;
                    utRecibo.Departamento   = _nuevo;
                    context.UnidadTiempoReciboDepartamento.Add(utRecibo);
                }
                else
                {
                    Departamento _editado = context.Departamento.FirstOrDefault(x => x.DepartamentoId == ViewModel.DepartamentoId.Value);
                    if (_editado != null)
                    {
                        _editado.Numero = ViewModel.Numero;
                        try
                        {
                            _editado.Piso = Int32.Parse(ViewModel.Numero) / 100;
                        }
                        catch (Exception ex)
                        {
                            _editado.Piso = 0;
                        }
                        _editado.NombrePropietario = ViewModel.NombreReciboDepartamento == "P" ? true : false;
                        _editado.NombreRecibo      = _editado.NombrePropietario ? "PROPIETARIO" : "INQUILINO";

                        _editado.LecturaAgua       = ViewModel.LecturaAgua;
                        _editado.Estado            = ConstantHelpers.EstadoActivo;
                        _editado.FactorGasto       = ViewModel.FactorGasto;
                        _editado.Estacionamiento   = ViewModel.Estacionamiento;
                        _editado.Deposito          = ViewModel.Deposito;
                        _editado.CuotaDefault      = ViewModel.CuotaDefault;
                        _editado.DepartamentoM2    = ViewModel.DepartamentoM2;
                        _editado.EstacionamientoM2 = ViewModel.EstacionamientoM2;
                        _editado.DepositoM2        = ViewModel.DepositoM2;
                        _editado.PDistribucion     = ViewModel.PDistribucion;
                        _editado.TotalM2           = ViewModel.AreaTotalM2;
                        _editado.TipoInmuebleId    = ViewModel.TipoInmuebleId;
                        //_editado.NombreRecibo = ViewModel.NombreRecibo;
                        _editado.AlertaMora           = ViewModel.AlertaMoraDrop == "1" ? true : false;
                        context.Entry(_editado).State = System.Data.Entity.EntityState.Modified;
                    }
                }
                context.SaveChanges();
                PostMessage(MessageType.Success);
            }
            catch { PostMessage(MessageType.Error); }
            return(RedirectToAction("LstDepartamento", new { DepartamentoId = ViewModel.DepartamentoId, EdificioId = ViewModel.EdificioId }));
        }