// // GET: /INVEN/ItemInventario/Create public ActionResult Create() { ViewBag.idcategoriainventario = new SelectList(db.CategoriaInventario.Where(c => !c.desactivado && c.lcategoriadetalle.Count() > 0), "idcategoriainventario", "nombre"); ItemInventario iteminventario = new ItemInventario(); iteminventario.tipooperacion = "D"; return View(iteminventario); }
public ActionResult Create(int id = 0) { ViewBag.idcategoriainventario = new SelectList(db.CategoriaInventario.Where(c => !c.desactivado && c.lcategoriadetalle.Count() > 0), "idcategoriainventario", "nombre", id); ItemInventario iteminventario = new ItemInventario(); iteminventario.tipooperacion = ItemInventario.DISPONIBLE; iteminventario.idcategoriainventario = id; iteminventario.liteminventariodetalle = new List<ItemInventarioDetalle>(); List<CategoriaDetalle> l = db.CategoriaDetalle.Where(c => c.idcategoriainventario.Equals(iteminventario.idcategoriainventario)).ToList(); foreach (CategoriaDetalle o in l) iteminventario.liteminventariodetalle.Add(new ItemInventarioDetalle() { idcategoriadetalle = o.idcategoriadetalle, categoriadetalle = o }); return View(iteminventario); }
public ActionResult Create(ItemInventario iteminventario) { iteminventario.descripcion = iteminventario.descripcion.Replace(" ", " ").Trim(); int i = db.ItemInventario.Where(c => c.descripcion.Equals(iteminventario.descripcion)).Count(); if (i > 0) { ModelState.AddModelError("descripcion", "La descripción del ítem debe ser única"); } if (ModelState.IsValid) { if (iteminventario.idcolaborador == null) iteminventario.tipooperacion = "D"; else if (iteminventario.prestamo) iteminventario.tipooperacion = "P"; else iteminventario.tipooperacion = "A"; db.ItemInventario.Add(iteminventario); db.SaveChanges(); CategoriaInventario categoriainventario = db.CategoriaInventario.Find(iteminventario.idcategoriainventario); categoriainventario.utilizada = true; db.Entry(categoriainventario).State = EntityState.Modified; db.SaveChanges(); List<CategoriaDetalle> lcategoriadetalle = db.CategoriaDetalle.Where(c => c.idcategoriainventario.Equals(iteminventario.idcategoriainventario)).ToList(); ItemInventarioDetalle iteminventariodetalle = new ItemInventarioDetalle(); iteminventariodetalle.iditeminventario = iteminventario.iditeminventario; foreach (CategoriaDetalle categoriadetalle in lcategoriadetalle) { iteminventariodetalle.idcategoriadetalle = categoriadetalle.idcategoriadetalle; db.ItemInventarioDetalle.Add(iteminventariodetalle); db.SaveChanges(); } TempData["alerta"] = "Ítem de inventario registrado con éxito"; return RedirectToAction("Index"); } ViewBag.idcategoriainventario = new SelectList(db.CategoriaInventario.Where(c => !c.desactivado && c.lcategoriadetalle.Count() > 0), "idcategoriainventario", "nombre", iteminventario.idcategoriainventario); return View(iteminventario); }
public ActionResult Edit(ItemInventario iteminventario) { iteminventario.descripcion = iteminventario.descripcion.Replace(" ", " ").Trim(); int i = db.ItemInventario.Where(c => c.descripcion.Equals(iteminventario.descripcion) && c.iditeminventario != iteminventario.iditeminventario).Count(); if (i > 0) { ModelState.AddModelError("descripcion", "La descripción del ítem debe ser única"); } if (ModelState.IsValid) { if (iteminventario.idcolaborador == null) iteminventario.tipooperacion = "D"; else if (iteminventario.prestamo) iteminventario.tipooperacion = "P"; else iteminventario.tipooperacion = "A"; db.Entry(iteminventario).State = EntityState.Modified; db.SaveChanges(); TempData["alerta"] = "Ítem de inventario actualizado con éxito"; return RedirectToAction("Index"); } ViewBag.idcategoriainventario = new SelectList(db.CategoriaInventario, "idcategoriainventario", "nombre", iteminventario.idcategoriainventario); return View(iteminventario); }
public ActionResult Create(ItemInventario iteminventario, FormCollection collection) { if (iteminventario.descripcion != null) { iteminventario.descripcion = iteminventario.descripcion.Replace(" ", " ").Trim(); if (db.ItemInventario.Where(c => c.descripcion.Equals(iteminventario.descripcion)).Count() > 0) ModelState.AddModelError("descripcion", "La descripción del ítem debe ser única"); else if (!Halp.tieneLetra(iteminventario.descripcion)) ModelState.AddModelError("descripcion", "La descripción debería tener al menos una letra"); } if (iteminventario.idcolaborador == null && iteminventario.colaborador_nombre != null) ModelState.AddModelError("colaborador_nombre", "El colaborador no existe, elija uno de la lista"); string key = null; int idcd = 0; string vc = ""; DateTime? vf = null; int? ve = 0; decimal? vd = 0; for (int i = 0; i < iteminventario.liteminventariodetalle.Count(); i++) { idcd = iteminventario.liteminventariodetalle[i].idcategoriadetalle; if (iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoformato.tipo == TipoDatoFormato.CADENA) { vc = iteminventario.liteminventariodetalle[i].valorcadena; iteminventario.liteminventariodetalle[i].valorbusqueda = vc; Expression<Func<ItemInventario, string>> expression = x => x.liteminventariodetalle[i].valorcadena; key = ExpressionHelper.GetExpressionText(expression); if (iteminventario.liteminventariodetalle[i].categoriadetalle.obligatorio && (vc == null || vc == "")) ModelState.AddModelError(key, "Ingrese " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre); else if (vc != null && vc.Length > iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoformato.longitud) ModelState.AddModelError(key, "Longitud de " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " no válida"); else if (vc != null && vc != "" && iteminventario.liteminventariodetalle[i].categoriadetalle.idtipodato == TipoDato.TEXTO && !Halp.esTexto(vc)) ModelState.AddModelError(key, "El campo no respeta el formato para textos"); else if (vc != null && vc != "" && iteminventario.liteminventariodetalle[i].categoriadetalle.idtipodato == TipoDato.ALFANUMERICO && !Halp.esAlfanumerico(vc)) ModelState.AddModelError(key, "El campo no respeta el formato para alfanuméricos"); else if (iteminventario.liteminventariodetalle[i].categoriadetalle.identificador && 0 < db.ItemInventarioDetalle.Where(c => c.idcategoriadetalle == idcd && c.categoriadetalle.identificador && c.valorcadena == vc).Count()) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser único"); else if (iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo != null && iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.idoperador != null && vc != null) switch (iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.idoperador) { case TipoDatoOperador.DIFERENTE: if (vc.ToUpper() == iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.valorcadena.ToUpper()) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser " + iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.etiqueta); break; case TipoDatoOperador.IGUAL: if (vc.ToUpper() != iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.valorcadena.ToUpper()) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser " + iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.etiqueta); break; case TipoDatoOperador.LIKE: if (!((vc.ToUpper()).Contains(iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.valorcadena.ToUpper()))) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser " + iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.etiqueta); break; } } else if (iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoformato.tipo == TipoDatoFormato.FECHA) { vf = iteminventario.liteminventariodetalle[i].valorfecha; if (vf != null) iteminventario.liteminventariodetalle[i].valorbusqueda = vf.ToString().Substring(0, 10); Expression<Func<ItemInventario, DateTime?>> expression = x => x.liteminventariodetalle[i].valorfecha; key = ExpressionHelper.GetExpressionText(expression); if (iteminventario.liteminventariodetalle[i].categoriadetalle.obligatorio && vf == null) ModelState.AddModelError(key, "Ingrese " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre); else if (iteminventario.liteminventariodetalle[i].categoriadetalle.identificador && 0 < db.ItemInventarioDetalle.Where(c => c.idcategoriadetalle == idcd && c.categoriadetalle.identificador && c.valorfecha == vf).Count()) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser único"); else if (iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo != null && iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.idoperador != null && vf != null) switch (iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.idoperador) { case TipoDatoOperador.DIFERENTE: if (vf == DateTime.Today) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser " + iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.etiqueta); break; case TipoDatoOperador.IGUAL: if (vf != DateTime.Today) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser " + iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.etiqueta); break; case TipoDatoOperador.MAYOR: if (vf <= DateTime.Today) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser " + iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.etiqueta); break; case TipoDatoOperador.MENOR: if (vf >= DateTime.Today) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser " + iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.etiqueta); break; case TipoDatoOperador.MAYOR_IGUAL: if (vf < DateTime.Today) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser " + iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.etiqueta); break; case TipoDatoOperador.MENOR_IGUAL: if (vf > DateTime.Today) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser " + iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.etiqueta); break; } } else if (iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoformato.tipo == TipoDatoFormato.ENTERO) { ve = iteminventario.liteminventariodetalle[i].valorentero; iteminventario.liteminventariodetalle[i].valorbusqueda = ve.ToString(); Expression<Func<ItemInventario, int?>> expression = x => x.liteminventariodetalle[i].valorentero; key = ExpressionHelper.GetExpressionText(expression); if (iteminventario.liteminventariodetalle[i].categoriadetalle.obligatorio && ve == null) ModelState.AddModelError(key, "Ingrese " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre); else if (iteminventario.liteminventariodetalle[i].categoriadetalle.identificador && 0 < db.ItemInventarioDetalle.Where(c => c.idcategoriadetalle == idcd && c.categoriadetalle.identificador && c.valorentero == ve).Count()) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser único"); else if (iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo != null && iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.idoperador != null && ve != null) switch (iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.idoperador) { case TipoDatoOperador.DIFERENTE: if (ve == iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.valorentero) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser " + iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.etiqueta); break; case TipoDatoOperador.IGUAL: if (ve != iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.valorentero) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser " + iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.etiqueta); break; case TipoDatoOperador.MAYOR: if (ve <= iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.valorentero) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser " + iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.etiqueta); break; case TipoDatoOperador.MENOR: if (ve >= iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.valorentero) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser " + iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.etiqueta); break; case TipoDatoOperador.MAYOR_IGUAL: if (ve < iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.valorentero) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser " + iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.etiqueta); break; case TipoDatoOperador.MENOR_IGUAL: if (ve > iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.valorentero) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser " + iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.etiqueta); break; } } else if (iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoformato.tipo == TipoDatoFormato.DECIMAL) { vd = iteminventario.liteminventariodetalle[i].valordecimal; iteminventario.liteminventariodetalle[i].valorbusqueda = vd.ToString(); Expression<Func<ItemInventario, decimal?>> expression = x => x.liteminventariodetalle[i].valordecimal; key = ExpressionHelper.GetExpressionText(expression); if (iteminventario.liteminventariodetalle[i].categoriadetalle.obligatorio && vd == null) ModelState.AddModelError(key, "Ingrese " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre); else if (iteminventario.liteminventariodetalle[i].categoriadetalle.identificador && 0 < db.ItemInventarioDetalle.Where(c => c.idcategoriadetalle == idcd && c.categoriadetalle.identificador && c.valordecimal == vd).Count()) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser único"); else if (vd != null && BitConverter.GetBytes(decimal.GetBits((decimal)vd)[3])[2] > iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoformato.escala) ModelState.AddModelError(key, "El campo no debe tener más de " + iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoformato.escala + " decimal(es)"); else if (iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo != null && iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.idoperador != null && vd != null) switch (iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.idoperador) { case TipoDatoOperador.DIFERENTE: if (vd == iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.valorentero) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser " + iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.etiqueta); break; case TipoDatoOperador.IGUAL: if (vd != iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.valorentero) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser " + iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.etiqueta); break; case TipoDatoOperador.MAYOR: if (vd <= iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.valorentero) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser " + iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.etiqueta); break; case TipoDatoOperador.MENOR: if (vd >= iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.valorentero) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser " + iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.etiqueta); break; case TipoDatoOperador.MAYOR_IGUAL: if (vd < iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.valorentero) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser " + iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.etiqueta); break; case TipoDatoOperador.MENOR_IGUAL: if (vd > iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.valorentero) ModelState.AddModelError(key, "El campo " + iteminventario.liteminventariodetalle[i].categoriadetalle.nombre + " debe ser " + iteminventario.liteminventariodetalle[i].categoriadetalle.tipodatoatributo.etiqueta); break; } } } if (ModelState.IsValid) { bool ok = true; if (iteminventario.tipooperacion == "D" && iteminventario.idcolaborador != null && iteminventario.idcolaborador != 0) { string mensaje = mensajea2(iteminventario.iditeminventario, iteminventario.idcategoriainventario, iteminventario.idcolaborador, iteminventario.prestamo); if (mensaje.Split('|')[0] == "0") { TempData["alerta"] = mensaje.Split('|')[1]; ok = false; } else if (mensaje.Split('|')[0] == "2" && collection["forzar"] == "0") { TempData["confirma"] = mensaje.Split('|')[1] + "|$('#forzar').val('1'); $('#form1').submit();"; ok = false; } } if (ok) { if (iteminventario.idcolaborador == null) iteminventario.tipooperacion = "D"; else if (iteminventario.prestamo) iteminventario.tipooperacion = "P"; else iteminventario.tipooperacion = "A"; ItemInventario o = new ItemInventario() { idcategoriainventario = iteminventario.idcategoriainventario, idcolaborador = iteminventario.idcolaborador, descripcion = iteminventario.descripcion, tipooperacion = iteminventario.tipooperacion }; db.ItemInventario.Add(o); db.SaveChanges(); foreach (ItemInventarioDetalle p in iteminventario.liteminventariodetalle) { db.ItemInventarioDetalle.Add(new ItemInventarioDetalle() { iditeminventario = o.iditeminventario, idcategoriadetalle = p.idcategoriadetalle, valorcadena = p.valorcadena, valorentero = p.valorentero, valordecimal = p.valordecimal, valorfecha = p.valorfecha, valorbusqueda = p.valorbusqueda }); db.SaveChanges(); } CategoriaInventario categoriainventario = db.CategoriaInventario.Find(iteminventario.idcategoriainventario); categoriainventario.utilizada = true; db.Entry(categoriainventario).State = EntityState.Modified; db.SaveChanges(); TempData["alerta"] = "Ítem de inventario registrado con éxito"; return RedirectToAction("Index"); } } ViewBag.idcategoriainventario = new SelectList(db.CategoriaInventario.Where(c => !c.desactivado && c.lcategoriadetalle.Count() > 0), "idcategoriainventario", "nombre", iteminventario.idcategoriainventario); return View(iteminventario); }