コード例 #1
0
        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());
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
            }
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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();
            }
        }
コード例 #6
0
        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));
            }
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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());
        }
コード例 #9
0
            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));
                }
            }
コード例 #10
0
        // 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());
        }
コード例 #11
0
        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));
            }
        }