Пример #1
0
        public ActionResult AgregarMetasAgencias(string id, string forma, Agencias agencia)
        {
            var error = false;

            //agregar dia para agencia individual
            if (!string.IsNullOrEmpty(forma))
            {
                if (forma.Equals("individual"))
                {
                    //obteneindo values
                    var mesAnio = Request.QueryString["mesAnio"];
                    var producto = Request.QueryString["producto"];
                    var meta = Request.QueryString["meta"];
                    var mes = 0;
                    var anio = 0;

                    DateTime dt;

                    bool fechaValida = DateTime.TryParseExact(
                        mesAnio,
                        "MM/yyyy",
                        CultureInfo.InvariantCulture,
                        DateTimeStyles.None,
                        out dt);

                    if (fechaValida)
                    {
                        var f = mesAnio.Split('/');
                        mes = int.Parse(f[0]);
                        anio = int.Parse(f[1]);
                    }
                    else
                    {
                        ModelState.AddModelError("mesAnio", "Debe elegir una fecha");
                        error = true;
                    }

                    if (producto.Equals("0"))
                    {
                        ModelState.AddModelError("producto", "Debe elegir un producto");
                        error = true;
                    }

                    if (String.IsNullOrEmpty(meta))
                    {
                        ModelState.AddModelError("meta", "Debe introducir una meta");
                        error = true;
                    }

                    //obteniendo numero de agencia
                    string num = "";
                    if (!string.IsNullOrEmpty(id))
                    {
                        string[] ids = id.Split('-');
                        num = ids[0].Trim();
                    }
                    else
                    {
                        ModelState.AddModelError("agencia", "Debe elegir una agencia");
                        error = true;
                    }

                    //buscar agencia
                    if (!error)
                    {
                        TempData["Existe"] = false;
                        Agencias a = db.Agencias.Find(int.Parse(num));
                        V_Agencias v = db.VAgencias.Find(int.Parse(num));
                        a.v_agencia = v;
                        var num_agencia = int.Parse(num) ;
                        var tipoProducto = int.Parse(producto);
                        var me = from t in db.Local_Metas_Agencias where t.agencia == num_agencia && t.mes == mes && t.anio == anio && t.tipoProducto == tipoProducto select t;

                        if (a != null)
                        {
                            if (me.Count() > 0)  //actualizarlo
                            {
                                var agenciaMeta = me.First();
                                agenciaMeta.metaNueva = Double.Parse(meta);
                                a.local_metas_agencias = agenciaMeta;
                                a.listaAgencias = new SelectList(claseAgencias.GetAgencias());

                                TempData["Existe"] = true;
                                return View("MetasAgencias", a);
                            }
                            else //no hay ninguno registrado
                            {

                                var obj = new Agencias();
                                obj.listaAgencias = new SelectList(claseAgencias.GetAgencias());

                                try
                                {
                                    Local_Metas_Agencias m = new Local_Metas_Agencias();
                                    m.agencia = a.NUMERO_AGENCIA;
                                    m.anio = anio;
                                    m.mes = mes;
                                    m.meta = int.Parse(meta);
                                    m.tipoProducto = int.Parse(producto);

                                    db.Local_Metas_Agencias.Add(m);
                                    db.SaveChanges();
                                    TempData["Success"] = "Se ha agregado exitosamente";
                                    return View("MetasAgencias", obj);
                                }
                                catch (Exception e)
                                {
                                    TempData["Error"] = "Ha ocurrido un error.";

                                    return View("MetasAgencias", obj);
                                }
                            }
                        }
                        ViewBag.Error = "El Agente no existe";
                        return View();
                    }
                    else
                    {
                        //si existe algun erro volver a la pagina inicial
                        var obj = new Agencias();
                        obj.listaAgencias = new SelectList(claseAgencias.GetAgencias());
                        return View("MetasAgencias", obj);
                    }

                }
                else if (forma.Equals("actualizar"))
                {
                    var meta = Request.QueryString["meta"];
                    var mes = int.Parse(Request.QueryString["mes"]);
                    var anio = int.Parse(Request.QueryString["anio"]);
                    var producto = int.Parse(Request.QueryString["producto"]);
                    var numero_agencia = int.Parse(Request.QueryString["numero_agencia"]);

                    if (!string.IsNullOrEmpty(meta))
                    {

                        var metasAgencias = from m in db.Local_Metas_Agencias
                                            where m.agencia == numero_agencia &&
                                                  m.anio == anio &&
                                                  m.mes == mes &&
                                                  m.tipoProducto == producto
                                            select m;

                        if (metasAgencias.Count() > 0)
                        {
                            try
                            {
                                var obj = new Agencias();
                                obj.listaAgencias = new SelectList(claseAgencias.GetAgencias());
                                Local_Metas_Agencias metaActualizar = metasAgencias.First();
                                metaActualizar.meta = Double.Parse(meta);
                                db.SaveChanges();
                                TempData["Success"] = "Se ha actualizado exitosamente";
                                return View("MetasAgencias", obj);

                            }
                            catch (Exception e)
                            {
                                var obj = new Agencias();
                                obj.listaAgencias = new SelectList(claseAgencias.GetAgencias());
                                TempData["Error"] = "Ha ocurrido un error.";
                                return View("MetasAgencias", obj);
                            }

                        }
                        var obja = new Agencias();
                        obja.listaAgencias = new SelectList(claseAgencias.GetAgencias());
                        TempData["Error"] = "Ha ocurrido un error.";
                        return View("MetasAgencias", obja);
                    }
                    else
                    {
                        var obj = new Agencias();
                        obj.listaAgencias = new SelectList(claseAgencias.GetAgencias());
                        TempData["Error"] = "Ha ocurrido un error.";
                        return View("MetasAgencias", obj);
                    }

                }
                //agregar dia para multiples agencias
                else
                {
                    var obj = new Agencias();
                    obj.listaAgencias = new SelectList(claseAgencias.GetAgencias());
                    return View("MetasAgencias", obj);
                }
            }
            else
            {
                var obj = new Agencias();
                obj.listaAgencias = new SelectList(claseAgencias.GetAgencias());
                return View("MetasAgencias", obj);
            }
        }
Пример #2
0
        public ActionResult AgregarMetasAgencias(HttpPostedFileBase file)
        {
            List<string> errores = new List<string>();
            try
            {
                //obteneindo values
                var mesAnio = Request.Form["mesAnio"];
                var producto = Request.Form["producto"];
                int productint = 0;
                var mes = 0;
                var anio = 0;
                var error = false;
                DateTime dt;

                bool fechaValida = DateTime.TryParseExact(
                    mesAnio,
                    "MM/yyyy",
                    CultureInfo.InvariantCulture,
                    DateTimeStyles.None,
                    out dt);

                if (fechaValida)
                {
                    var f = mesAnio.Split('/');
                    mes = int.Parse(f[0]);
                    anio = int.Parse(f[1]);
                }
                else
                {
                    ModelState.AddModelError("mesAnioArchivo", "Debe elegir una fecha");
                    error = true;
                }

                if (producto.Equals("0"))
                {
                    ModelState.AddModelError("productoArchivo", "Debe elegir un producto");
                    error = true;
                }

                if (!error)
                {
                    //verificar que el archivo no sea nulo
                    if (file != null)
                    {
                        if (file.ContentLength > 0)
                        {
                            var filename = Path.GetFileName(file.FileName);
                            var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), filename);
                            file.SaveAs(path);
                            string num_agencia, meta;
                            num_agencia = meta = "";
                            int numeroAgencia = 0;
                            double metaint = 0;

                            var connString = "";

                            try
                            {
                                var strFileType = Path.GetExtension(path).ToLower();

                                //Connection String to Excel Workbook for differente extensions
                                if (strFileType.Trim() == ".xls")
                                {
                                    connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"";
                                }
                                else if (strFileType.Trim() == ".xlsx")
                                {
                                    connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";
                                }

                                using (OleDbConnection connection = new OleDbConnection(connString))
                                {
                                    //abriendo conexion
                                    connection.Open();

                                    //obteniendo nombre de la tabla
                                    System.Data.DataTable dbSchema = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                                    string sheet = dbSchema.Rows[0]["TABLE_NAME"].ToString();
                                    string queryRead = "SELECT * FROM [" + sheet + "]";  //QUERY LECTURA

                                    OleDbCommand cmdRead = new OleDbCommand(queryRead, connection);

                                    //leyendo el sheet
                                    OleDbDataReader reader = cmdRead.ExecuteReader();
                                    while (reader.Read())
                                    {
                                        //leyendo columna por columna de cada fila
                                        num_agencia = reader[0].ToString();
                                        meta = reader[1].ToString();
                                        productint = int.Parse(producto);

                                        //verificar agencia y meta valida
                                        if (num_agencia.StartsWith("20") && num_agencia.Length == 6)
                                        {

                                            numeroAgencia = int.Parse(num_agencia);
                                            var ag = db.Agencias.Find(numeroAgencia);
                                            if (ag != null)
                                            {
                                                if (!string.IsNullOrEmpty(meta))
                                                {
                                                    metaint = Double.Parse(meta);
                                                    var agencia = from a in db.Local_Metas_Agencias
                                                                  where a.anio == anio &&
                                                                      a.mes == mes &&
                                                                      a.agencia == numeroAgencia &&
                                                                      a.tipoProducto == productint
                                                                  select a;
                                                    if (agencia.Count() > 0)
                                                    {
                                                        agencia.First().meta = metaint;
                                                    }
                                                    else
                                                    {
                                                        Local_Metas_Agencias m = new Local_Metas_Agencias();
                                                        m.agencia = numeroAgencia;
                                                        m.meta = metaint;
                                                        m.mes = mes;
                                                        m.anio = anio;
                                                        m.tipoProducto = productint;
                                                        db.Local_Metas_Agencias.Add(m);
                                                    }
                                                }
                                                else
                                                {
                                                    errores.Add("No hay una meta válida para agencia " + num_agencia);
                                                }
                                            }
                                            else
                                            {
                                                errores.Add("No existe la agencia " + num_agencia);
                                            }

                                        }
                                        else
                                        {
                                            errores.Add(num_agencia + " No está en el formato correcto.");
                                        }

                                    }
                                    reader.Close();
                                    db.SaveChanges();
                                    TempData["Errores"] = errores.ToList();
                                    return RedirectToAction("Success");

                                }

                            }
                            catch (Exception e)
                            {
                                errores.Add(e.ToString());
                                TempData["Errores"] = errores.ToList();
                                return RedirectToAction("Error");
                            }
                        }
                    }
                    else
                    {
                        errores.Add("Debe subir un archivo");
                        TempData["Errores"] = errores.ToList();
                        return RedirectToAction("Error");
                    }
                }

                var obj = new Agencias();
                obj.listaAgencias = new SelectList(claseAgencias.GetAgencias());
                return View("MetasAgencias", obj);

            }
            catch (Exception e)
            {
                errores.Add(e.ToString());
                TempData["Errores"] = errores.ToList();
                return RedirectToAction("Error");
            }
        }