public ActionResult KardexRepuestos(string id) { //ViewBag.codigo = context.icb_referencia.Where(x => x.modulo == "R").ToList(); if (!string.IsNullOrWhiteSpace(id)) { //busco si el codigo corresponde a una referencia icb_referencia refer = context.icb_referencia.Where(d => d.ref_codigo == id).FirstOrDefault(); if (refer != null) { ViewBag.codigo = refer.ref_codigo + " | " + refer.ref_descripcion; } } else { ViewBag.codigo = ""; } int rol = Convert.ToInt32(Session["user_rolid"]); var permisos = (from acceso in context.rolacceso join rolPerm in context.rolpermisos on acceso.idpermiso equals rolPerm.id where acceso.idrol == rol //&& rolPerm.codigo == "P40" select new { rolPerm.codigo }).ToList(); var resultado = permisos.Where(x => x.codigo == "P40").Count() > 0 ? "Si" : "No"; ViewBag.Permiso = resultado; return(View()); }
public JsonResult CrearSolicitudCompra(string referencias) { rsolicitudesrepuestos modelo = new rsolicitudesrepuestos(); listadosugerido[] listado = JsonConvert.DeserializeObject <listadosugerido[]>(referencias); for (int i = 0; i < listado.Length; i++) { int guardar = 0; for (int h = 0; h < listado[i].cant.Count; h++) { if (Convert.ToInt32(listado[i].cant[h]) > 0) { guardar = 1; } } if (guardar == 1) { modelo.bodega = listado[i].bod; modelo.fecha = DateTime.Now; modelo.usuario = Convert.ToInt32(Session["user_usuarioid"]); modelo.Detalle = "Solicitud realizada desde pedido sugerido"; modelo.tiposolicitud = 3; modelo.estado_solicitud = 1; modelo.tipo_compra = 2; modelo.cliente = Convert.ToInt32(Session["user_usuarioid"]); context.rsolicitudesrepuestos.Add(modelo); context.SaveChanges(); for (int j = 0; j < listado[i].refer.Count; j++) { if (Convert.ToInt32(listado[i].cant[j]) > 0) { string codigo = listado[i].refer[j]; icb_referencia buscar = context.icb_referencia.Where(x => x.modulo == "R" && x.ref_estado && x.ref_codigo == codigo).FirstOrDefault(); rdetallesolicitud detalle = new rdetallesolicitud { id_solicitud = modelo.id, referencia = buscar.ref_codigo, cantidad = Convert.ToInt32(listado[i].cant[j]), iva = buscar.por_iva != null?Convert.ToInt32(buscar.por_iva) : 0, valor = buscar.precio_venta, userid_creacion = Convert.ToInt32(Session["user_usuarioid"]), fecha_creacion = DateTime.Now, esta_pedido = 1 }; context.rdetallesolicitud.Add(detalle); } } } } int result = context.SaveChanges(); if (result > 0) { return(Json(true, JsonRequestBehavior.AllowGet)); } return(Json(false, JsonRequestBehavior.AllowGet)); }
public JsonResult nuevo(int?modelo, string operacion, string referencia, int?cantidad) { if (modelo != null && !string.IsNullOrWhiteSpace(operacion) && !string.IsNullOrWhiteSpace(referencia) && cantidad != null) { //busco si el modelo general existe vmodelog modelog = context.vmodelog.Where(d => d.id == modelo).FirstOrDefault(); //busco si la operación existe ttempario operaciong = context.ttempario.Where(d => d.codigo == operacion).FirstOrDefault(); //busco si la referencia existe icb_referencia referenciag = context.icb_referencia.Where(d => d.ref_codigo == referencia).FirstOrDefault(); if (modelog != null && operaciong != null && referenciag != null) { //busco si ya existe la combinación en la tabla int relaciong = context.tsuministromanoot.Where(d => d.modelo_general == modelo && d.operacion == operacion && d.referencia == referencia).Count(); if (relaciong == 0) { try { //creo la nueva relación tsuministromanoot rela = new tsuministromanoot { modelo_general = modelo.Value, operacion = operacion, referencia = referencia, cantidad = cantidad.Value }; context.tsuministromanoot.Add(rela); int guardar = context.SaveChanges(); var data = new { resultado = "exito" }; return(Json(data)); } catch (Exception e) { var data = new { resultado = e.Message }; return(Json(data)); } } { var data = new { resultado = "La relación no existe" }; return(Json(data)); } } { var data = new { resultado = "No existe en BD la referencia, la operación o el modelo ingresados" }; return(Json(data)); } } { var data = new { resultado = "Campos Vacíos" }; return(Json(data)); } }
public string nombreaccesorio(string referencia) { string resultado = ""; icb_referencia refer = context.icb_referencia.Where(d => d.ref_codigo == referencia).FirstOrDefault(); if (refer != null) { resultado = refer.ref_descripcion; } return(resultado); }
public void inst_manodeobra(vw_operaciones_vh opr, int idtec) { tdetallemanoobraot oprOt = db.tdetallemanoobraot.FirstOrDefault(x => x.idorden == opr.ot_id && x.idtempario == opr.codigo); if (oprOt == null) { //busco la informacion específica del tempario ttempario operacion = db.ttempario.Where(d => d.codigo == opr.codigo).FirstOrDefault(); tdetallemanoobraot operacionOt = new tdetallemanoobraot { costopromedio = 0, fecha = DateTime.Now, idorden = opr.ot_id, idtempario = opr.codigo, tiempo = Convert.ToDecimal(opr.tiempo), idtecnico = idtec, valorunitario = opr.precio_tempario != null ? opr.precio_tempario.Value : 0, pordescuento = 0, poriva = operacion.iva, estado = "1" }; db.tdetallemanoobraot.Add(operacionOt); if (!string.IsNullOrWhiteSpace(opr.referencia)) { icb_referencia referencia = db.icb_referencia.Where(d => d.ref_codigo == opr.referencia).FirstOrDefault(); tencabezaorden orden = db.tencabezaorden.Where(d => d.id == opr.ot_id).FirstOrDefault(); tdetallerepuestosot referenciaOT = new tdetallerepuestosot { costopromedio = 0, idorden = opr.ot_id, idrepuesto = opr.referencia, valorunitario = opr.precio_repuesto != null ? opr.precio_repuesto.Value : 0, pordescto = referencia != null?Convert.ToDecimal(referencia.por_dscto) : 0, poriva = referencia != null?Convert.ToDecimal(referencia.por_iva) : 0, cantidad = opr.cant_sistema, idtercero = orden.tercero, solicitado = false }; db.tdetallerepuestosot.Add(referenciaOT); } db.SaveChanges(); } }
public JsonResult actualizarGuardar(long?id, int?modelo, string operacion, string referencia, int?cantidad) { if (modelo != null && !string.IsNullOrWhiteSpace(operacion) && !string.IsNullOrWhiteSpace(referencia) && cantidad != null) { //busco si el modelo general existe vmodelog modelog = context.vmodelog.Where(d => d.id == modelo).FirstOrDefault(); //busco si la operación existe ttempario operaciong = context.ttempario.Where(d => d.codigo == operacion).FirstOrDefault(); //busco si la referencia existe icb_referencia referenciag = context.icb_referencia.Where(d => d.ref_codigo == referencia).FirstOrDefault(); //verifico si la combinacion de modelo, operacion y referencia ya existe para otro id int existeotro = context.tsuministromanoot.Where(d => d.modelo_general == modelo && d.operacion == operacion && d.referencia == referencia && d.id_suministromanoot != id).Count(); if (existeotro == 0) { tsuministromanoot sumi = context.tsuministromanoot.Where(d => d.id_suministromanoot == id).FirstOrDefault(); sumi.operacion = operacion; sumi.referencia = referencia; sumi.modelo_general = modelo.Value; sumi.cantidad = cantidad.Value; context.Entry(sumi).State = EntityState.Modified; context.SaveChanges(); var data = new { resultado = "exito" }; return(Json(data)); } else { var data = new { resultado = "Ya existe esa combinación de modelo, operación y referencia guardada en BD" }; return(Json(data)); } } { var data = new { resultado = "Campos vacíos, no se puede guardar" }; return(Json(data)); } }
public void listas(ubicacion_repuesto modelo) { ViewBag.bodega = new SelectList(context.bodega_concesionario.Where(x => x.bodccs_estado).OrderBy(x => x.bodccs_nombre), "id", "bodccs_nombre", modelo.bodega); var referencias = (from referencia in context.icb_referencia where referencia.modulo == "R" && referencia.ref_estado select new { referencia.ref_codigo, ref_descripcion = "(" + referencia.ref_codigo + ") " + referencia.ref_descripcion }).OrderBy(x => x.ref_descripcion).ToList(); ViewBag.idarea = new SelectList(context.area_bodega.Where(x => x.areabod_estado).OrderBy(x => x.areabod_nombre), "areabod_id", "areabod_nombre", modelo.idarea); ViewBag.id_estanteria = new SelectList(context.estanterias.Where(x => x.estado).OrderBy(x => x.descripcion), "id", "descripcion", modelo.id_estanteria); //ViewBag.codigo = new SelectList(referencias, "ref_codigo", "ref_descripcion", modelo.codigo); if (!string.IsNullOrWhiteSpace(modelo.codigo)) { //veo cual es el codigo icb_referencia codigodes = context.icb_referencia.Where(d => d.ref_codigo == modelo.codigo).FirstOrDefault(); if (codigodes != null) { ViewBag.codigo = codigodes.ref_codigo + " | " + codigodes.ref_descripcion; modelo.codigo = codigodes.ref_codigo + " | " + codigodes.ref_descripcion; } } else { ViewBag.codigo = ""; } ViewBag.ubicacion = new SelectList(context.ubicacion_repuestobod.Where(x => x.ubirpto_estado).OrderBy(x => x.descripcion), "id", "descripcion", modelo.ubicacion); }
public ActionResult Create(int?menu, string id, string cadena = "") { string idrepuesto = ""; listas(new ubicacion_repuesto()); //hallamos el nombre de la referencia if (!string.IsNullOrWhiteSpace(id)) { icb_referencia refer = context.icb_referencia.Where(d => d.ref_codigo == id).FirstOrDefault(); if (refer != null) { //var codigo2 = codigo.Split('|'); idrepuesto = id + " | " + refer.ref_descripcion; } } ViewBag.refer = idrepuesto; BuscarFavoritos(menu); if (cadena != "") { ViewBag.cadena = cadena; var Subcadena = cadena.Split(','); string dataBogeda = Subcadena[0]; string idreferencia = Subcadena[1]; ViewBag.Id_bodega_origen = dataBogeda; ViewBag.CodReferencia = idreferencia; return(View()); } return(View()); }
public JsonResult BuscarCodigoReferencia(string codigo, int[] bodegas) { string tipoReferencia = (from referencia in context.icb_referencia where referencia.ref_codigo == codigo select referencia.modulo).FirstOrDefault(); var buscarStock2 = (from inventarioHoy in context.vw_inventario_hoy join bodega in context.bodega_concesionario on inventarioHoy.bodega equals bodega.id where bodegas.Contains(inventarioHoy.bodega) && inventarioHoy.ref_codigo == codigo select new { codigo_bodega = bodega.id, bodega.bodccs_cod, bodega.bodccs_nombre, inventarioHoy.stock, clasificacion = inventarioHoy.clasificacion_ABC }).ToList(); var buscarStock = buscarStock2.Select(d => new { codigo_referencia = codigo, d.codigo_bodega, d.bodccs_cod, d.bodccs_nombre, d.stock, cantidadcomprometida = validarcomprometido(codigo, d.bodccs_cod), d.clasificacion }).ToList(); if (tipoReferencia == "R") { icb_referencia buscarReferencia2 = context.icb_referencia.Where(d => d.ref_codigo == codigo).FirstOrDefault(); var buscarReferencia = new { buscarReferencia2.ref_codigo, buscarReferencia2.ref_descripcion, buscarReferencia2.por_iva, buscarReferencia2.por_iva_compra, buscarReferencia2.unidad_medida, costo_promedio = buscarReferencia2.costo_promedio != null?buscarReferencia2.costo_promedio.Value.ToString("N0", new CultureInfo("is-IS")) : "0", precio_venta = buscarReferencia2.precio_venta.ToString("N0", new CultureInfo("is-IS")), precio_compra = buscarReferencia2.costo_unitario.ToString("N0", new CultureInfo("is-IS")), costo_emergencia = buscarReferencia2.costo_emergencia.ToString("N0", new CultureInfo("is-IS")), proveedor = buscarReferencia2.icb_terceros != null ? (buscarReferencia2.icb_terceros.razon_social + buscarReferencia2.icb_terceros.prinom_tercero + " " + buscarReferencia2.icb_terceros.segnom_tercero + " " + buscarReferencia2.icb_terceros.apellido_tercero + " " + buscarReferencia2.icb_terceros.segapellido_tercero) : "", buscarReferencia2.clasificacion_ABC, conteoRotacion = (from documento in context.encab_documento join lineas in context.lineas_documento on documento.idencabezado equals lineas.id_encabezado join registro in context.tp_doc_registros on documento.tipo equals registro.tpdoc_id join tipo in context.tp_doc_registros_tipo on registro.tipo equals tipo.id where tipo.id == 4 && lineas.codigo == codigo select new { lineas.codigo }).Count() }; return(Json(new { tipoReferencia = "R", buscarReferencia, buscarStock }, JsonRequestBehavior.AllowGet)); } else { var buscarReferencia = (from referencia in context.icb_referencia join vehiculo in context.icb_vehiculo on referencia.ref_codigo equals vehiculo.plan_mayor join modelo in context.modelo_vehiculo on vehiculo.modvh_id equals modelo.modvh_codigo join marca in context.marca_vehiculo on modelo.mar_vh_id equals marca.marcvh_id join color in context.color_vehiculo on vehiculo.colvh_id equals color.colvh_id join tipoServicio in context.tpservicio_vehiculo on vehiculo.tiposervicio equals tipoServicio.tpserv_id into ps from tipoServicio in ps.DefaultIfEmpty() join proveedor in context.icb_terceros on vehiculo.proveedor_id equals proveedor.tercero_id into ps2 from proveedor in ps2.DefaultIfEmpty() where referencia.ref_codigo == codigo select new { referencia.ref_codigo, costo_promedio = referencia.costo_promedio != null ? referencia.costo_promedio.Value.ToString("N0", new CultureInfo("is-IS")) : "0", referencia.ref_descripcion, vehiculo.vin, vehiculo.plac_vh, vehiculo.nummot_vh, vehiculo.anio_vh, vehiculo.impconsumo, proveedor = proveedor.razon_social + proveedor.prinom_tercero + " " + proveedor.segnom_tercero + " " + proveedor.apellido_tercero + " " + proveedor.segapellido_tercero, marca.marcvh_nombre, color.colvh_nombre, tipoServicio.tpserv_nombre }).FirstOrDefault(); return(Json(new { tipoReferencia = "V", buscarReferencia, buscarStock }, JsonRequestBehavior.AllowGet)); } }
// GET: solicitudRepuestos public ActionResult Create(int?menu, string id, int?ot, string cadena = "") { rsolicitudesrepuestos mode = new rsolicitudesrepuestos(); /* Traer datos de la OT */ if (ot != null && id != null) { ViewBag.ot = ot; var datosOT = ( from t in context.tencabezaorden join d in context.tsolicitudrepuestosot on t.id equals d.idorden where t.id == ot && !d.pedido && d.idrepuesto == id select new { t.tercero, t.bodega, d.cantidad, d.idorden }).FirstOrDefault(); mode.bodega = datosOT.bodega; mode.cliente = datosOT.tercero; mode.id_ot = datosOT.idorden; ViewBag.cantidadInput = datosOT.cantidad; } else { ViewBag.ot = ""; ViewBag.cantidadInput = ""; } /* *** */ ListasDesplegables(mode); if (!string.IsNullOrWhiteSpace(id)) { //busco si el codigo corresponde a una referencia icb_referencia refer = context.icb_referencia.Where(d => d.ref_codigo == id).FirstOrDefault(); if (refer != null) { ViewBag.codigo = refer.ref_codigo + " | " + refer.ref_descripcion; } } BuscarFavoritos(menu); if (cadena != "") { ViewBag.cadena = cadena; var Subcadena = cadena.Split(','); int dataBogeda = Convert.ToInt32(Subcadena[0]); int dataCliente = Convert.ToInt32(Subcadena[1]); string idreferencia = Subcadena[2]; ViewBag.Id_bodega_origen = dataBogeda; ViewBag.CodReferencia = idreferencia; ViewBag.Cliente1 = dataCliente; return(View()); } return(View()); }
public JsonResult GuardarArchivo(HttpPostedFileBase txtfile, string precioLabel, string precioSelect) { IDictionary <string, string> respuesta = new Dictionary <string, string>(); object usuario = Session["user_usuarioid"]; if (usuario == null) { respuesta.Add("valor", "-1"); respuesta.Add("clase", "danger"); respuesta.Add("mensaje", "Su sesión ha expirado, no es posible hacer el cargue del archivo"); return(Json(respuesta)); } //Consulta de parametros por defecto en la creacion de la referencia icb_sysparameter tipo_id_consulta = db.icb_sysparameter.Where(d => d.syspar_cod == "P112").FirstOrDefault(); int tipo_id = tipo_id_consulta != null ? Convert.ToInt32(tipo_id_consulta.syspar_value) : 3; //valor por defecto desarrollo icb_sysparameter linea_id_consulta = db.icb_sysparameter.Where(d => d.syspar_cod == "P113").FirstOrDefault(); string linea_id = linea_id_consulta != null ? linea_id_consulta.syspar_value : "01"; //valor por defecto desarrollo icb_sysparameter proveedor_consulta = db.icb_sysparameter.Where(d => d.syspar_cod == "P114").FirstOrDefault(); string proveedor = proveedor_consulta != null ? proveedor_consulta.syspar_value : "48"; //valor por defecto desarrollo try { string path = Server.MapPath("~/Content/" + txtfile.FileName); // Validacion para cuando el archivo esta en uso y no puede ser usado desde visual if (System.IO.File.Exists(path)) { System.IO.File.Delete(path); } txtfile.SaveAs(path); using (StreamReader objReader = new StreamReader(path)) { string lineasPrecio = ""; int contadorReferenciaNok = 0; string lineasNok = ""; int contadorPrecioNok = 0; int registros = 0; if (objReader.Peek() <= -1) { respuesta.Add("valor", "0"); respuesta.Add("clase", "danger"); respuesta.Add("mensaje", "El archivo se encuentra vacio o no cumple con el formato establecido"); return(Json(respuesta)); } archListaPrecios archivoTransaccion = new archListaPrecios { nombre = txtfile.FileName, listaPrecio = precioLabel, fecha = DateTime.Now, items = registros, userid_creacion = Convert.ToInt32(usuario) }; db.archListaPrecios.Add(archivoTransaccion); db.SaveChanges(); int ultimoArchivo = archivoTransaccion.id; bool encabezado = true; while (objReader.Peek() > -1) { string linea = objReader.ReadLine(); if (encabezado) { encabezado = false; continue; } registros++; //Codigo de la referencia int i = 0; string codigo = linea.Substring(0, 18); while (linea.Substring(i, 1) == "0") { i++; codigo = linea.Substring(i, 18 - i); } //Descripción de la referencia string descripcion = linea.Substring(28, 25).Trim(); //Precio de venta string c = linea.Substring(54, 12).Trim(); decimal precio = c != null ? Convert.ToDecimal(linea.Substring(54, 12).Trim(), CultureInfo.InvariantCulture) : 0; //Precio compra string r = linea.Substring(150, 15).Trim(); decimal costo = !string.IsNullOrEmpty(linea.Substring(150, 15).Trim()) ? Convert.ToDecimal(linea.Substring(150, 15).Trim(), CultureInfo.InvariantCulture) : 0; //costo de emergencia decimal costo_emergencia = linea.Substring(165, 13).Trim() != null ? Convert.ToDecimal(linea.Substring(165, 13).Trim(), CultureInfo.InvariantCulture) : 0; //Unidad de medida string unidad_medida = linea.Substring(147, 3).Trim(); if (unidad_medida.ToUpper() == "PZA") { unidad_medida = "UND"; } else { unidad_medida = "OTRO"; } //Valor IVA string valor_iva = linea.Substring(179, 2).Trim(); if (valor_iva.ToUpper() == "UD" || valor_iva.ToUpper() == "XD") { valor_iva = "19"; } else { valor_iva = "0"; } icb_referencia buscarReferencia = db.icb_referencia.FirstOrDefault(x => x.ref_codigo == codigo); bool referencia_creada = false; if (buscarReferencia == null) { referencia_creada = true; //insertarLog(ultimoArchivo, codigo, precio, costo, costo_emergencia, "La referencia no se encuentra en la base de datos"); //lineasNok += codigo + ", "; //contadorReferenciaNok++; icb_referencia referencia = new icb_referencia { ref_codigo = codigo, ref_descripcion = descripcion, ref_stock = 0, //Se deja este valor en 0 solititud 2019-08-26 jairo mateus ref_estado = true, ref_usuario_creacion = Convert.ToInt32(usuario), ref_fecha_creacion = DateTime.Now, ref_valor_unitario = precio, ref_cantidad_min = 0, //Se deja este valor en 0 solititud 2019-08-26 jairo mateus ref_cantidad_max = 0, //Se deja este valor en 0 solititud 2019-08-26 jairo mateus ref_valor_total = 0, //Se deja este valor en 0 solititud 2019-08-26 jairo mateus por_iva = Convert.ToInt32(valor_iva), por_iva_compra = Convert.ToInt32(valor_iva), costo_unitario = costo, manejo_inv = true, unidad_medida = unidad_medida, costo_anterior = 0, //Se deja este valor en 0 solititud 2019-08-26 jairo mateus costo_emergencia = costo_emergencia, por_dscto = 0, //Se deja este valor en 0 solititud 2019-08-26 jairo mateus por_dscto_max = 0, //Se deja este valor en 0 solititud 2019-08-26 jairo mateus precio_venta = precio, precio_alterno = precio, //Se deja este valor en 0 solititud 2019-08-26 jairo mateus precio_garantia = costo, //Se deja este valor en 0 solititud 2019-08-26 jairo mateus precio_diesel = 0, //Se deja este valor en 0 solititud 2019-08-26 jairo mateus modulo = "R", // Este codigo corresponde a las referencias de respuestos tipo_id = tipo_id, linea_id = linea_id, proveedor_ppal = Convert.ToInt32(proveedor), clasificacion_ABC = "C" //valor por defecto a solicitud del 2019-08-28 jairo mateus }; db.icb_referencia.Add(referencia); db.SaveChanges(); } if (precio != 0 || referencia_creada) { int lista_precios = db.cargarListaPrecios(precio, codigo, costo, costo_emergencia, Convert.ToInt32(usuario), Convert.ToInt32(precioSelect)); detalleArchListaPrecios detalleTransaccion = new detalleArchListaPrecios { idArch = ultimoArchivo, referencia = codigo, precio = precio, costo = costo, costoEmergencia = costo_emergencia }; db.detalleArchListaPrecios.Add(detalleTransaccion); } else { insertarLog(ultimoArchivo, codigo, precio, costo, costo_emergencia, "La referencia no tiene precio"); lineasPrecio += codigo + ", "; contadorPrecioNok++; } } archListaPrecios ObjArchivo = db.archListaPrecios.FirstOrDefault(x => x.id == ultimoArchivo); ObjArchivo.items = registros; ObjArchivo.registros_erroneos = contadorReferenciaNok + contadorPrecioNok; ObjArchivo.registros_ingresados = registros - (contadorReferenciaNok + contadorPrecioNok); db.Entry(ObjArchivo).State = EntityState.Modified; if (lineasNok != "") { int a = lineasNok.Length; lineasNok = lineasNok.Substring(0, a - 2); respuesta.Add("sinReferencia", lineasNok); respuesta.Add("mensajeRerencia", "Las siguientes referencias no fueron registradas porque no se encuentran en la base de datos: " + lineasNok); } if (lineasPrecio != "") { int b = lineasPrecio.Length; lineasPrecio = lineasPrecio.Substring(0, b - 2); respuesta.Add("sinPrecio", lineasPrecio); respuesta.Add("mensajePrecio", "Las siguientes referencias no fueron registradas porque no tienen precio: " + lineasPrecio); } respuesta.Add("valor", "1"); respuesta.Add("clase", "success"); respuesta.Add("mensaje", "El archivo Fue procesado correctamente!"); try { db.SaveChanges(); } catch (Exception dbEx) { Exception raise = dbEx; } return(Json(respuesta)); } } catch (DbEntityValidationException dbEx) { Exception raise = dbEx; foreach (DbEntityValidationResult validationErrors in dbEx.EntityValidationErrors) { foreach (DbValidationError validationError in validationErrors.ValidationErrors) { string message = string.Format("{0}:{1}", validationErrors.Entry.Entity, validationError.ErrorMessage); // raise a new exception nesting // the current instance as InnerException raise = new InvalidOperationException(message, raise); } } respuesta.Add("valor", "1"); respuesta.Add("clase", "success"); respuesta.Add("mensaje", "Error: " + raise); return(Json(respuesta)); } }