public async Task <IActionResult> Edit(int id, [Bind("idcarpeta,nit,fecha_registro,fecha_cierre,caja")] t_carpeta t_carpeta) { if (id != t_carpeta.idcarpeta) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(t_carpeta); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!t_carpetaExists(t_carpeta.idcarpeta)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Carpeta))); } ViewData["caja"] = new SelectList(_context.tcaja, "idtcaja", "idtcaja", t_carpeta.caja); return(View(t_carpeta)); }
public async Task <IActionResult> Create([Bind("idcarpeta,nit,fecha_registro,fecha_cierre,caja")] t_carpeta t_carpeta) { if (ModelState.IsValid) { _context.Add(t_carpeta); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Carpeta))); } ViewData["caja"] = new SelectList(_context.tcaja, "idtcaja", "idtcaja", t_carpeta.caja); return(View(t_carpeta)); }
public ActionResult Create([Bind(Include = "id,nom_lote,id_subdependencia,id_subserie,id_proyecto,fecha_ingreso,marco")] t_lote t_lote, HttpPostedFileBase file, string[] asignacion) { Debug.WriteLine(asignacion); if (ModelState.IsValid) { if (t_lote.nom_lote == "" || t_lote.nom_lote == null) { ModelState.AddModelError("errorNomLote", "No puede ser vacío"); } else if (asignacion == null) { ModelState.AddModelError("errorAsignacion", "Debe asignar el lote"); } else if (file == null || file.ContentLength == 0) { ModelState.AddModelError("errorArchivo", "Debe cargar un archivo CSV"); } else { //Crea carpeta si no existe string path = Server.MapPath("~/Uploads/"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } //GuardaArchivo var fileName = GeTxtHora() + "-" + file.FileName; var ruta = Path.Combine(path, fileName); file.SaveAs(ruta); //Valida Archivo //ABRIR ARCHIVO CSV using (var stream = System.IO.File.Open(ruta, FileMode.Open, FileAccess.Read)) { using (var reader = ExcelReaderFactory.CreateCsvReader(stream, new ExcelReaderConfiguration() { AutodetectSeparators = new char[] { ';' }, })) { // 2. Use the AsDataSet extension method var result = reader.AsDataSet(); bool formatOk = false; int contador = 0; int sumFolios = 0; int conFolios = 0; foreach (DataRow dr in result.Tables[0].Rows) { if (!formatOk) { formatOk = validarTitulos(dr); } if (formatOk) { if (t_lote.id.ToString() == null || t_lote.id.ToString() == "" || t_lote.id.ToString() == "0") { //Guarda Lote t_lote.fecha_ingreso = DateTime.Now; db.t_lote.Add(t_lote); db.SaveChanges(); } else { t_carpeta miCarpeta = new t_carpeta(); miCarpeta.id_lote = t_lote.id; miCarpeta.nro_expediente = dr[1].ToString(); miCarpeta.nom_expediente = dr[2].ToString(); miCarpeta.nro_caja = dr[0].ToString(); if (IsNumeric(dr[3].ToString())) { miCarpeta.nro_carpeta = Int32.Parse(dr[3].ToString()); } if (IsNumeric(dr[4].ToString())) { miCarpeta.total_folios = Int32.Parse(dr[4].ToString()); sumFolios += Int32.Parse(dr[4].ToString()); conFolios++; } miCarpeta.estado = 'D'.ToString(); miCarpeta.ejecucion = 0; db.t_carpeta.Add(miCarpeta); db.SaveChanges(); } } //Debug.Write(dr[0].ToString()); contador++; if (!formatOk && contador == 5) { break; } } if (formatOk) { /***** Realiza asignación se Trabajo *****/ int posusuario = 0; float promedioFolios = sumFolios / conFolios; float cambio = sumFolios / asignacion.Length; float tmpSumFolios = 0; var carpetas = db.t_carpeta .Select(u => new { id = u.id, id_lote = u.id_lote, folios = u.total_folios }).Where(h => h.id_lote == t_lote.id).ToList(); foreach (var carpeta in carpetas) { if (asignacion[posusuario] != "0") { var Sql = "update t_carpeta set idusr_asignado = '" + asignacion[posusuario] + "' where id = " + carpeta.id; db.Database.ExecuteSqlCommand(Sql); } if (IsNumeric(carpeta.folios.ToString())) { tmpSumFolios += Int32.Parse(carpeta.folios.ToString()); } else { tmpSumFolios += promedioFolios;//promedioFolios } if (tmpSumFolios > ((cambio * (1 + posusuario)) - (promedioFolios * 0.6))) { posusuario++; } } return(RedirectToAction("Index")); } else { ModelState.AddModelError("errorArchivo", "Formato no valido, revise los encabezados y la información"); } } } } } ViewBag.id_proyecto = new SelectList(db.p_proyecto, "id", "nom_proyecto", t_lote.id_proyecto); return(View(t_lote)); }