Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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));
        }