public ActionResult NuevaReclamacion(clReclamaciones reclamacion)
 {
     if (ModelState.IsValid)
     {
         if (reclamacion.GrabaBD())
         {
             return RedirectToAction("Index");
         }
     }
     return View(reclamacion);
 }
Esempio n. 2
0
        public List<clReclamaciones> GetReclamaciones(GridSettings grid, string abiertas, string cerradas, string fechadesde, ref int pageIndex, ref int pageSize, ref int totalRecords, ref int totalPages)
        {
            WASMCOMEntities w = new WASMCOMEntities();
            List<Int16> misPlazas = (new Seguridad()).GetMisPlazasConsulta();

            var q =
                from r in w.clReclamaciones
                from p1 in w.tplazas.Where(p1 => p1.codplaza == r.codplazaReclama).DefaultIfEmpty()
                from p2 in w.tplazas.Where(p2 => p2.codplaza == r.codplazaReclamada).DefaultIfEmpty()
                from p3 in w.tplazas.Where(p3 => p3.codplaza == r.codplazaPenalizada).DefaultIfEmpty()
                from p4 in w.tplazas.Where(p4 => p4.codplaza == r.codplazaIndemnizada).DefaultIfEmpty()
                where ( misPlazas.Contains(r.codplazaReclama.Value)
                || misPlazas.Contains(r.codplazaReclamada.Value))

                select new
                {
                    id = r.id,
                    tipoReclamacion = r.tipoReclamacion,
                    codplazaReclama = r.codplazaReclama,
                    codplazaReclamada = r.codplazaReclamada,
                    fechaInicio = r.fechaInicio,
                    fechaFin = r.fechaFin,
                    codexp = r.codexp,
                    codrecogida = r.codrecogida,
                    importePenalizacion = r.importePenalizacion,
                    importeIndemnizacion = r.importeIndemnizacion,
                    codplazaPenalizada = r.codplazaPenalizada,
                    codplazaIndemnizada = r.codplazaIndemnizada,
                    PlazaReclama = p1.plaza,
                    PlazaReclamada = p2.plaza,
                    PlazaPenalizada = p3.plaza,
                    PlazaIndemnizada = p4.plaza,
                    Cerrada = r.cerrada
                };

            bool bAbiertas = true;
            bool bCerradas = true;
            DateTime dFechaDesde;

            bool.TryParse(abiertas, out bAbiertas);
            bool.TryParse(cerradas, out bCerradas);

            if (!(bAbiertas && bCerradas) && (bAbiertas || bCerradas))
            {
                if (bAbiertas) q = q.Where(r => r.Cerrada == false);
                if (bCerradas) q = q.Where(r => r.Cerrada == true);
            }

            if (DateTime.TryParse(fechadesde, out dFechaDesde))
            {
                q = q.Where(r => r.fechaInicio >= dFechaDesde);
            }

            if (grid.IsSearch)
            {
                foreach (var rule in grid.Where.rules)
                {
                    //q = q.Where(rule.field, rule.data, WhereOperation.Equal);
                    switch (rule.field)
                    {
                        case "CodPlazaReclama":
                            short codplazaReclama = Convert.ToInt16(rule.data);
                            q = q.Where(r => r.codplazaReclama == codplazaReclama);
                            break;

                        case "CodPlazaReclamada":
                            short codplazaReclamada = Convert.ToInt16(rule.data);
                            q = q.Where(r => r.codplazaReclamada == codplazaReclamada);
                            break;
                        case "CodPlazaPenalizada":
                            short codplazaPenalizada = Convert.ToInt16(rule.data);
                            q = q.Where(r => r.codplazaPenalizada == codplazaPenalizada);
                            break;

                        case "CodPlazaIndemnizada":
                            short codplazaIndemnizada = Convert.ToInt16(rule.data);
                            q = q.Where(r => r.codplazaIndemnizada == codplazaIndemnizada);
                            break;

                        case "ImportePenalizacion":
                            decimal importePenalizacion = Convert.ToDecimal(rule.data);
                            q = q.Where(r => r.importePenalizacion >= importePenalizacion);
                            break;
                        case "ImporteIndemnizacion":
                            decimal importeIndemnizacion = Convert.ToDecimal(rule.data);
                            q = q.Where(r => r.importeIndemnizacion >= importeIndemnizacion);
                            break;

                        case "CodExp":
                            int codexp = Convert.ToInt32(rule.data);
                            q = q.Where(r => r.codexp >= codexp);
                            break;
                        case "CodRecogida":
                            Int64 codrecogida = Convert.ToInt64(rule.data);
                            q = q.Where(r => r.codrecogida >= codrecogida);
                            break;
                        default:
                            q = q.Where(rule.field, rule.data, WhereOperation.Equal);
                            break;
                    }
                }
            }

            if (grid.SortColumn == "") grid.SortColumn = "FechaInicio";
            q = q.OrderBy(grid.SortColumn, grid.SortOrder);

            //q = q.OrderBy<clReclamaciones>(grid.SortColumn, grid.SortOrder);

            pageIndex = grid.PageIndex;
            pageSize = grid.PageSize;
            totalRecords = q.Count();
            totalPages = (int)Math.Ceiling((float)totalRecords / (float)pageSize);

            int startRow = (pageIndex - 1) * pageSize;
            int endRow = startRow + pageSize;

            //return q.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToArray();

            q = q.Skip((pageIndex - 1) * pageSize).Take(pageSize);

            List<clReclamaciones> recs = new List<clReclamaciones>(pageSize);

            foreach (var rec in q)
            {
                clReclamaciones r = new clReclamaciones();
                r.id = rec.id;
                r.tipoReclamacion = rec.tipoReclamacion;
                r.codplazaReclama = rec.codplazaReclama;
                r.codplazaReclamada = rec.codplazaReclamada;
                r.fechaInicio = rec.fechaInicio;
                r.fechaFin = rec.fechaFin;
                r.codexp = rec.codexp;

                r.codrecogida = rec.codrecogida;
                r.importePenalizacion = rec.importePenalizacion;
                r.importeIndemnizacion = rec.importeIndemnizacion;
                r.codplazaPenalizada = rec.codplazaPenalizada;
                r.codplazaIndemnizada = rec.codplazaIndemnizada;
                r.PlazaReclama = rec.PlazaReclama;
                r.PlazaReclamada = rec.PlazaReclamada;
                r.PlazaPenalizada = rec.PlazaPenalizada;
                r.PlazaIndemnizada = rec.PlazaIndemnizada;
                r.Estado = rec.Cerrada ? "Cerrada" : "Abierta";

                recs.Add(r);
            }

            w.Dispose();
            return recs;
        }