示例#1
0
 private static List<PageIndexItem> SortPages(List<PageIndexItem> pages, SortOrder sortOrder, SortDirection sortDirection) {
     switch (sortOrder) {
         case SortOrder.CreatedDate:
             pages = pages.OrderBy(p => p.CreatedDate).ToList();
             break;
         case SortOrder.PageName:
             pages = pages.OrderBy(p => p.PageName).ToList();
             break;
         case SortOrder.SortIndex:
             pages = pages.OrderBy(p => p.SortOrder).ToList();
             break;
         case SortOrder.StartPublishDate:
             pages = pages.OrderBy(p => p.StartPublish ?? DateTime.MinValue).ToList();
             break;
         case SortOrder.UpdateDate:
             pages = pages.OrderBy(p => p.UpdateDate).ToList();
             break;
     }
     if (sortDirection == SortDirection.Descending) {
         pages.Reverse();
     }
     return pages;
 }
        private SelectList GetEmptyListWithParohiisForDropdown()
        {
            var parohiis = new List<DropdownMenuViewModel>();
            var orderedParohiis = parohiis.OrderBy(p => p.Id != -1).ThenBy(p => p.Name).ToList();

            var selectedListParohiis = new SelectList(orderedParohiis, "Id", "Name");
            return selectedListParohiis;
        }
        public ActionResult GetBunuriCulturaleReport(PostBunuriCulturaleViewModel model)
        {
            var bunuriCulturales = this.Data.BunuriCulturales
                .All();

            var reports = new List<GetBunuriCulturaleViewModel>();
            var selectedParohii = this.Data.Parohiis
                .All()
                .FirstOrDefault(p => p.Cif == model.Parohii);

            if (model.Protopopiate == -1 && model.Parohii == -1)
            {
                reports = bunuriCulturales
                  .Select(b => new GetBunuriCulturaleViewModel()
                  {
                      Cif = b.Cif,
                      NrInventar = b.NrInventar,
                      DataIntrarii = b.DataIntrarii,
                      Denumire = b.Denumire,
                      AutorLocalizare = b.AutorLocalizare,
                      Descriere = b.Descriere,
                      NrFisaFototeca = b.NrFisaFototeca,
                      NrBucati = b.NrBucati,
                      LocDataAutorDescoperiere = b.LocDataAutorDescoperiere,
                      Colectia = b.Colectia,
                      MaterialulTitlul = b.MaterialulTitlul,
                      Dimensiuni = b.Dimensiuni,
                      Greutate = b.Greutate,
                      StareConservare = b.StareConservare,
                      Provenienta = b.Provenienta,
                      DocumentIntrare = b.DocumentIntrare,
                      ValoareIntrare = b.ValoareIntrare,
                      Iesire = b.Iesire,
                      Verificare = b.Verificare,
                      Observatii = b.Observatii
                  })
                  .ToList();

                foreach (var report in reports)
                {
                    var parohii = this.Data.Parohiis
                        .All()
                        .FirstOrDefault(p => p.Cif == report.Cif);

                    var protopopiate = this.Data.Protopopiates
                        .All()
                        .FirstOrDefault(p => p.ProtopopiateId == parohii.ProtopopiateId);

                    report.ParohiiDenumire = parohii.Denumire;
                    report.ProtopopiateDenumire = protopopiate.Denumire;
                }
            }
            else if (model.Protopopiate != -1 && model.Parohii == -1)
            {
                reports = bunuriCulturales
                    .Where(b => b.Parohii.ProtopopiateId == model.Protopopiate)
                   .Select(b => new GetBunuriCulturaleViewModel()
                   {
                       ProtopopiateDenumire = b.Parohii.Protopopiate.Denumire,
                       ParohiiDenumire = b.Parohii.Denumire,
                       Cif = b.Cif,
                       NrInventar = b.NrInventar,
                       DataIntrarii = b.DataIntrarii,
                       Denumire = b.Denumire,
                       AutorLocalizare = b.AutorLocalizare,
                       Descriere = b.Descriere,
                       NrFisaFototeca = b.NrFisaFototeca,
                       NrBucati = b.NrBucati,
                       LocDataAutorDescoperiere = b.LocDataAutorDescoperiere,
                       Colectia = b.Colectia,
                       MaterialulTitlul = b.MaterialulTitlul,
                       Dimensiuni = b.Dimensiuni,
                       Greutate = b.Greutate,
                       StareConservare = b.StareConservare,
                       Provenienta = b.Provenienta,
                       DocumentIntrare = b.DocumentIntrare,
                       ValoareIntrare = b.ValoareIntrare,
                       Iesire = b.Iesire,
                       Verificare = b.Verificare,
                       Observatii = b.Observatii
                   })
                  .ToList();
            }
            else if (model.Protopopiate != -1 && model.Protopopiate != -1)
            {
                reports = bunuriCulturales
                    .Where(b => b.Cif == selectedParohii.Cif)
                    .Select(b => new GetBunuriCulturaleViewModel()
                    {
                        ProtopopiateDenumire = b.Parohii.Protopopiate.Denumire,
                        ParohiiDenumire = b.Parohii.Denumire,
                        Cif = b.Cif,
                        NrInventar = b.NrInventar,
                        DataIntrarii = b.DataIntrarii,
                        Denumire = b.Denumire,
                        AutorLocalizare = b.AutorLocalizare,
                        Descriere = b.Descriere,
                        NrFisaFototeca = b.NrFisaFototeca,
                        NrBucati = b.NrBucati,
                        LocDataAutorDescoperiere = b.LocDataAutorDescoperiere,
                        Colectia = b.Colectia,
                        MaterialulTitlul = b.MaterialulTitlul,
                        Dimensiuni = b.Dimensiuni,
                        Greutate = b.Greutate,
                        StareConservare = b.StareConservare,
                        Provenienta = b.Provenienta,
                        DocumentIntrare = b.DocumentIntrare,
                        ValoareIntrare = b.ValoareIntrare,
                        Iesire = b.Iesire,
                        Verificare = b.Verificare,
                        Observatii = b.Observatii
                    })
                   .ToList();
            }

            var orderedReports = reports
                .OrderBy(r => r.ParohiiDenumire)
                .ThenBy(r => r.ProtopopiateDenumire)
                .ToList();

            return PartialView("_GetBunuriCulturaleReport", orderedReports);
        }
        public ActionResult GetParohiisDependsOnPropopiateId(int protopopiateId)
        {
            if (protopopiateId == -1)
            {
                var list = new List<DropdownMenuViewModel>();
                var defaultDropdownValue = new DropdownMenuViewModel()
                {
                    Id = -1,
                    Name = "All"
                };
                list.Add(defaultDropdownValue);

                var emptyDropdownValue = new DropdownMenuViewModel()
                {
                    Id = 0,
                    Name = ""
                };
                list.Add(emptyDropdownValue);

                var orderedList = list.OrderBy(p => p.Id != -1).ThenBy(p => p.Name).ToList();
                return Json(orderedList, JsonRequestBehavior.AllowGet);
            }
            else
            {
                var parohiis = this.Data.Parohiis
                    .All()
                    .Where(p => p.ProtopopiateId == protopopiateId)
                    .Select(p => new DropdownMenuViewModel()
                    {
                        Id = p.Cif,
                        Name = p.Denumire
                    })
                    .ToList();

                var defaultDropdownValue = new DropdownMenuViewModel()
                {
                    Id = -1,
                    Name = "All"
                };
                parohiis.Add(defaultDropdownValue);

                var orderedParohiis = parohiis.OrderBy(p => p.Id != -1).ThenBy(p => p.Name).ToList();
                return Json(orderedParohiis, JsonRequestBehavior.AllowGet);
            }
        }
        public static List<DetalleDeuda> getDetalleDeudaUnidad(unidad u, bool isNewExpensa = false, bool isRegenerarUnidad = false)
        {
            try
            {
                DateTime periodo = DateTime.Parse(DateTime.Now.Day + "/" + DateTime.Now.Month + "/" + DateTime.Now.Year);

                if (isNewExpensa)
                    periodo = periodo.AddMonths(1);

                admEntities db = Datos.getDB();
                List<expensas> expensas = db.expensas.Where(x => x.dir_edificio == u.dir_edificio && x.pagado == 0 && x.id_unidad == u.id_unidad && x.fecha < periodo).ToList();

                List<recargo_exclusivo> exclusivos = db.recargo_exclusivo.Where(x => x.dir_edificio == u.dir_edificio && x.pagado != 1 && x.id_unidad == u.id_unidad && x.fecha < periodo).ToList();
                List<recargo_legal> legales = db.recargo_legal.Where(x => x.dir_edificio == u.dir_edificio && x.pagado != 1 && x.id_unidad == u.id_unidad && x.fecha < periodo).ToList();
                List<recargo_vario> varios = db.recargo_vario.Where(x => x.dir_edificio == u.dir_edificio && x.pagado != 1 && x.id_unidad == u.id_unidad && x.fecha < periodo).ToList();

                List<DetalleDeuda> detalleDeuda = new List<DetalleDeuda>();

                Double tasaMensual = CatalogoTasas.getTasaDeudor();
                Double tasa2Vto = CatalogoTasas.getTasaVto();

                expensas lstExpensa = null;

                if (expensas.Count > 0)
                    lstExpensa = expensas.OrderByDescending(x => x.fecha).First();

                if (expensas.Count > 0 && isRegenerarUnidad)
                {
                    expensas.Remove(lstExpensa);
                    if (expensas.Count > 0)
                        lstExpensa = expensas.OrderByDescending(x => x.fecha).First();
                }

                Double recargos = 0;

                foreach (recargo_exclusivo e in exclusivos)
                {
                    DetalleDeuda d = new DetalleDeuda();
                    d.Edificio = e.dir_edificio;
                    d.Unidad = e.id_unidad;
                    d.Periodo = e.fecha;
                    d.Importe = e.importe;
                    d.Recargo = getRecargo(tasaMensual, e.importe, e.fecha, (DateTime)periodo);
                    d.Tipo = "Exclusivo";
                    d.NroFactura = e.concepto;
                    recargos += d.Importe;
                    detalleDeuda.Add(d);
                }

                foreach (recargo_legal e in legales)
                {
                    DetalleDeuda d = new DetalleDeuda();
                    d.Edificio = e.dir_edificio;
                    d.Unidad = e.id_unidad;
                    d.Periodo = e.fecha;
                    d.Importe = e.importe;
                    d.Recargo = getRecargo(tasaMensual, e.importe, e.fecha, (DateTime)periodo);
                    d.Tipo = "Legales";
                    d.NroFactura = e.concepto;
                    recargos += d.Importe;
                    detalleDeuda.Add(d);
                }

                foreach (recargo_vario e in varios)
                {
                    DetalleDeuda d = new DetalleDeuda();
                    d.Edificio = e.dir_edificio;
                    d.Unidad = e.id_unidad;
                    d.Periodo = e.fecha;
                    d.Importe = e.importe;
                    d.Recargo = getRecargo(tasaMensual, e.importe, e.fecha, (DateTime)periodo);
                    d.Tipo = "Varios";
                    d.NroFactura = e.concepto;
                    recargos += d.Importe;
                    detalleDeuda.Add(d);
                }

                bool isSdoVto = false;

                if (!isNewExpensa && !isRegenerarUnidad)
                {
                    if (expensas.Count > 0)
                    {
                        var fVto1 = DateTime.Parse(lstExpensa.fechaVto1.Value.Day + "/" + lstExpensa.fechaVto1.Value.Month + "/" + lstExpensa.fechaVto1.Value.Year);
                        var now = DateTime.Parse(DateTime.Now.Day + "/" + DateTime.Now.Month + "/" + DateTime.Now.Year);
                        if (fVto1 < now)
                            isSdoVto = true;
                    }
                }

                foreach (expensas e in expensas)
                {

                    DetalleDeuda d = new DetalleDeuda();
                    d.Edificio = e.dir_edificio;
                    d.Unidad = e.id_unidad;
                    d.Periodo = e.fecha;
                    d.NroReferencia = e.nro_referencia;
                    d.NroFactura = e.nro_factura;
                    d.Tipo = "Ordinaria";

                    Double importe = e.importeSinExclusivos == null ? 0 : (Double)e.importeSinExclusivos;

                    if (e.nro_factura != "000000000000000")
                    {
                        d.Importe = (Double)e.mesEnEmision;
                    }
                    else
                        d.Importe = importe;

                    d.Recargo = getRecargo(e, lstExpensa, tasaMensual, tasa2Vto, isSdoVto, isNewExpensa);

                    detalleDeuda.Add(d);
                }

                detalleDeuda = detalleDeuda.OrderBy(x => x.Periodo).ThenBy(x => x.Tipo).ToList();
                return detalleDeuda;
            }
            catch (Exception e)
            {
                Logger.Log.write(e.InnerException == null ? e.Message : e.InnerException.Message);
                throw e;
            }
        }