public JsonResult eliminarMatriz(string id) { if (!string.IsNullOrWhiteSpace(id)) { var cod = Convert.ToInt32(id); var buscar = context.tplanrepuestosmodelo.Where(d => d.id == cod && d.referencia != null).Select(d => d.referencia).FirstOrDefault(); var buscar2 = context.tplanrepuestosmodelo.Where(d => d.id == cod && d.tempario != null).Select(d => d.tempario).FirstOrDefault(); int result = 0; if (buscar != null) { var referencias = context.tplanrepuestosmodelo.Where(d => d.referencia == buscar).Select(d => d.id).ToList(); foreach (var item in referencias) { tplanrepuestosmodelo dato = context.tplanrepuestosmodelo.Find(item); context.Entry(dato).State = EntityState.Deleted; int guardar = context.SaveChanges(); if (guardar > 0) { result = 1; } else { result = 0; } } return(Json(result, JsonRequestBehavior.AllowGet)); } if (buscar2 != null) { var operaciones = context.tplanrepuestosmodelo.Where(d => d.tempario == buscar2).Select(d => d.id).ToList(); foreach (var item in operaciones) { tplanrepuestosmodelo dato = context.tplanrepuestosmodelo.Find(item); context.Entry(dato).State = EntityState.Deleted; int guardar = context.SaveChanges(); if (guardar > 0) { result = 1; } else { result = 0; } } return(Json(result, JsonRequestBehavior.AllowGet)); } } return(Json(0, JsonRequestBehavior.AllowGet)); }
public ActionResult Create(HttpPostedFileBase excelfileManoObra, HttpPostedFileBase excelfileRepuestos, int?menu) { string path = ""; string tipo = Request["tipo"]; string modeloGeneral = Request["modeloGeneral"]; int guardar = 0; if (tipo == "R") { if (excelfileRepuestos == null || excelfileRepuestos.ContentLength == 0) { TempData["mensaje_error"] = "El archivo esta vacio o no es un archivo valido!"; ViewBag.modeloGeneral = new SelectList(context.vmodelog, "id", "Descripcion"); BuscarFavoritos(menu); return(View()); } if (excelfileRepuestos.FileName.EndsWith("xls") || excelfileRepuestos.FileName.EndsWith("xlsx")) { path = Server.MapPath("~/Content/" + excelfileRepuestos.FileName); // Validacion para cuando el archivo esta en uso y no puede ser usado desde visual try { if (System.IO.File.Exists(path)) { System.IO.File.Delete(path); } excelfileRepuestos.SaveAs(path); } catch (IOException) { TempData["mensaje_error"] = "El archivo esta siendo usado por otro proceso, asegurece de cerrarlo o cree una copia del archivo e intente de nuevo!"; BuscarFavoritos(menu); return(RedirectToAction("cargamasiva", new { menu })); } ExcelPackage package = new ExcelPackage(new FileInfo(path)); ExcelWorksheet workSheet = package.Workbook.Worksheets[1]; int kitSeleccionado = Convert.ToInt32(Request["modeloGeneral"]); string tipoSeleccionado = Request["tipo"]; //string listaPrecios = Request["lista_precios"]; System.Collections.Generic.List <tplanmantenimiento> buscarPlanMantenimiento = context.tplanmantenimiento.ToList(); int totalFilas = workSheet.Dimension.End.Row; System.Collections.Generic.List <tplanmantenimiento> buscarPlanes = context.tplanmantenimiento.ToList(); for (int i = workSheet.Dimension.Start.Row + 1; i <= workSheet.Dimension.End.Row; i++) { try { string codigo = workSheet.Cells[i, 1].Value.ToString(); string descripcion = workSheet.Cells[i, 2].Value.ToString(); string cantidad = workSheet.Cells[i, 3].Value.ToString(); var buscarReferencia = context.icb_referencia.FirstOrDefault(x => x.ref_codigo == codigo); var buscarTempario = context.ttempario.FirstOrDefault(x => x.codigo == codigo); if (buscarReferencia != null) { tipoSeleccionado = "R"; } else if (buscarTempario != null) { tipoSeleccionado = "M"; } //if (buscarReferencia == null && buscarTempario == null) //{ // TempData["mensaje_error"] = // "No se pudo cargar esa referencia" + codigo + " no existe, linea " + i; //} for (int kms = 4; kms <= 23; kms++) { int kilometrosTitulo = Convert.ToInt32(workSheet.Cells[1, kms].Value.ToString()); kilometrosTitulo = kilometrosTitulo * 1000; tplanmantenimiento buscarIdPlanKms = buscarPlanes.Where(x => x.kilometraje == kilometrosTitulo).FirstOrDefault(); //busco la operacion vinculada a dicho plan decimal horac = 0; var oper = context.ttempario.Where(d => d.idplanm == buscarIdPlanKms.id).FirstOrDefault(); string kilometros = ""; if (oper != null) { horac = Convert.ToDecimal(oper.HoraCliente, new CultureInfo("en-US")); } decimal numero; if (workSheet.Cells[i, kms].Value != null) { kilometros = workSheet.Cells[i, kms].Value.ToString(); if (decimal.TryParse(kilometros, out numero)) { kilometros = "AC"; } } else { kilometros = "N/A"; } tplanrepuestosmodelo buscarSiModeloExiste = context.tplanrepuestosmodelo.FirstOrDefault(x => x.modgeneral == kitSeleccionado && x.referencia == codigo && x.inspeccion == buscarIdPlanKms.id); if (buscarSiModeloExiste != null) { if (!string.IsNullOrWhiteSpace(kilometros)) { buscarSiModeloExiste.cantidad = Convert.ToInt32(cantidad); //buscarSiModeloExiste.listaprecios = listaPrecios; } else { buscarSiModeloExiste.cantidad = 0; //buscarSiModeloExiste.listaprecios = listaPrecios; } } else { if (!string.IsNullOrWhiteSpace(kilometros) && tipoSeleccionado == "R") { var buscar = context.tplanrepuestosmodelo.Where(d => d.modgeneral == kitSeleccionado && d.referencia == codigo).Select(d => d.id).ToList(); //var listaprecion = 0; context.tplanrepuestosmodelo.Add(new tplanrepuestosmodelo { modgeneral = kitSeleccionado, referencia = codigo, cantidad = Convert.ToDecimal(cantidad), inspeccion = buscarIdPlanKms.id, listaprecios = kilometros, tipo = tipoSeleccionado, estado = true, }); guardar = context.SaveChanges(); //if (buscar.Count > 0) //{ // foreach (var item in buscar)//id // { // var b = context.tplanrepuestosmodelo.Find(item); // b.modgeneral = Convert.ToInt32(modeloGeneral); // b.referencia = codigo; // b.cantidad = Convert.ToDecimal(cantidad); // b.listaprecios = kilometros; // listaprecion += 1; // context.Entry(b).State = EntityState.Modified; // guardar = context.SaveChanges(); // } //} //else { // context.tplanrepuestosmodelo.Add(new tplanrepuestosmodelo // { // modgeneral = kitSeleccionado, // referencia = codigo, // cantidad = Convert.ToDecimal(cantidad), // inspeccion = buscarIdPlanKms.id, // listaprecios = kilometros, // tipo = tipoSeleccionado, // estado = true, // }); // guardar = context.SaveChanges(); //} } else if (!string.IsNullOrWhiteSpace(kilometros) && tipoSeleccionado == "M") { var buscar = context.tplanrepuestosmodelo.Where(d => d.modgeneral == kitSeleccionado && d.tempario == codigo).Select(d => d.id).ToList(); //var listaprecion = 0; context.tplanrepuestosmodelo.Add(new tplanrepuestosmodelo { modgeneral = kitSeleccionado, tempario = codigo, cantidad = Convert.ToDecimal(cantidad), inspeccion = buscarIdPlanKms.id, listaprecios = kilometros, tipo = tipoSeleccionado, estado = true, }); guardar = context.SaveChanges(); //if (buscar.Count > 0) //{ // foreach (var item in buscar)//id // { // var b = context.tplanrepuestosmodelo.Find(item); // b.modgeneral = Convert.ToInt32(modeloGeneral); // b.tempario = codigo; // b.cantidad = Convert.ToDecimal(cantidad); // b.listaprecios = kilometros; // listaprecion += 1; // context.Entry(b).State = EntityState.Modified; // guardar = context.SaveChanges(); // } //} //else { // context.tplanrepuestosmodelo.Add(new tplanrepuestosmodelo // { // modgeneral = kitSeleccionado, // tempario = codigo, // cantidad = Convert.ToDecimal(cantidad), // inspeccion = buscarIdPlanKms.id, // listaprecios = kilometros, // tipo = tipoSeleccionado, // estado = true, // }); // guardar = context.SaveChanges(); //} // Si el tipo de cargue es para mano de obra } } } //} } catch (Exception ex) { if (ex is ArgumentOutOfRangeException || ex is FormatException) { excelfileRepuestos.InputStream.Close(); excelfileRepuestos.InputStream.Dispose(); System.IO.File.Delete(path); TempData["mensaje_error"] = "Error al leer el archivo, verifique que los datos estan bien escritos,no se encontro el codigo en la base de datos, linea " + i; ViewBag.modeloGeneral = new SelectList(context.vmodelog, "id", "Descripcion"); BuscarFavoritos(menu); return(View()); } } } if (guardar > 0) { TempData["mensaje"] = "El archivo se ha cargado correctamente"; return(RedirectToAction("Create", "matricesMantenimiento", new { menu })); } TempData["mensaje_error"] = "Error se encontro una o mas referencias que no estan registradas, verifique base de datos"; } } ViewBag.modeloGeneral = new SelectList(context.vmodelog, "id", "Descripcion"); ViewBag.modeloGeneral2 = new SelectList(context.vmodelog, "id", "Descripcion"); BuscarFavoritos(menu); return(View()); }