public ActionResult NuevaReclamacion(clReclamaciones reclamacion) { if (ModelState.IsValid) { if (reclamacion.GrabaBD()) { return RedirectToAction("Index"); } } return View(reclamacion); }
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; }