예제 #1
0
        public ActionResult ClasificacionAgencias()
        {
            //obteniendo usuario
            string domainUser = User.Identity.Name;
            string[] parts = domainUser.Split('\\');
            string username = parts[1];

            var obj = new Agencias();
            obj.listaAgencias = new SelectList(claseAgencias.GetAgencias());
            return View(obj);
        }
예제 #2
0
        public ActionResult MetasAgencias()
        {
            //obteniendo usuario
            string domainUser = User.Identity.Name;
            string[] parts = domainUser.Split('\\');
            string username = parts[1];

            //usuario autorizado
            if (autorizados.Contains(username.ToLower()))
            {
                var obj = new Agencias();
                obj.listaAgencias = new SelectList(claseAgencias.GetAgencias());
                return View(obj);
            }
            else
            {
                ViewBag.mensaje = "Usted no cuenta con permisos para acceder a esta área";
                return View();
            }
        }
예제 #3
0
        public ActionResult AgregarClasificacionAgencias(string id, string forma, Agencias agencia)
        {
            if (!string.IsNullOrEmpty(forma))
            {
                //agregar clasificación para agencia individual
                if (forma.Equals("individual"))
                {
                    //obteniendo numero de agencia
                    string num = "";
                    if (!string.IsNullOrEmpty(id))
                    {
                        string[] ids = id.Split('-');
                        num = ids[0].Trim();
                    }

                    //buscar agencia
                    if (!string.IsNullOrEmpty(num))
                    {
                        try
                        {
                            Agencias a = db.Agencias.Find(int.Parse(num));
                            V_Agencias v = db.VAgencias.Find(int.Parse(num));
                            //opciones de clasificacion
                            var clasificaciones = from c in db.Local_Clasificacion_Agencia select c.clasificacion + " ("+c.id_clasificacion+")";
                            a.listaClasificacion = new SelectList(clasificaciones);

                            if (a != null)
                            {
                                a.v_agencia = v;
                                a.listaAgencias = new SelectList(claseAgencias.GetAgencias());
                                return View(a);
                            }
                            ViewBag.Error = "El Agente no existe";
                            return View();
                        }
                        catch (Exception e)
                        {
                            TempData["Errores"] = "Ha ocurrido un problema.  Intente de nuevo o contacte al administrador.";
                            return RedirectToAction("Error");
                        }

                    }
                    return RedirectToAction("ClasificacionAgencias");

                }
                else if (forma.Equals("actualizar"))
                {
                    if (!string.IsNullOrEmpty(agencia.clasificacionSeleccionada))
                    {
                        //buscar clasificacion
                        var c = agencia.clasificacionSeleccionada.Split('(',')');
                        var clasificacionNueva = c[1];
                        if (!string.IsNullOrEmpty(clasificacionNueva))
                        {
                            //buscar que la clasificacion exista
                            var clasificaciones = from ca in db.Local_Clasificacion_Agencia select ca.id_clasificacion;
                            if (clasificaciones.Contains(clasificacionNueva))
                            {
                                Agencias a = db.Agencias.Find(agencia.NUMERO_AGENCIA);
                                if (a != null)
                                {
                                    //obteniendo usuario
                                    string domainUser = User.Identity.Name;
                                    string[] parts = domainUser.Split('\\');
                                    string username = parts[1];

                                    //historial de clasificacion
                                    local_historial_clasificacion lhc = new local_historial_clasificacion();
                                    lhc.numero_agencia = a.NUMERO_AGENCIA;
                                    lhc.fechaActualizacion = DateTime.Now;
                                    lhc.usuario = username;
                                    lhc.clasificacion = a.Local_Clasificacion;
                                    lhc.nuevaClasificacion = clasificacionNueva;
                                    db.local_historial_clasificacion.Add(lhc);

                                    a.Local_Clasificacion = clasificacionNueva;
                                    a.listaAgencias = new SelectList(claseAgencias.GetAgencias());

                                    db.SaveChanges();
                                    ViewBag.Success = "Se ha actualizado exitosamente.";
                                    return View(a);
                                }
                                else
                                {
                                    ViewBag.mensaje = "Esta agencia no existe";
                                    return View(a);
                                }
                            }
                            else
                            {
                                ViewBag.mensaje = "Esta clasificación no existe";
                                return View(new Agencias());
                            }
                        }
                    }
                    else
                    {
                        Agencias a = db.Agencias.Find(agencia.NUMERO_AGENCIA);
                        V_Agencias v = db.VAgencias.Find(agencia.NUMERO_AGENCIA);
                        a.listaAgencias = new SelectList(claseAgencias.GetAgencias());
                        a.v_agencia = v;
                        //opciones de clasificacion
                        var clasificaciones = from c in db.Local_Clasificacion_Agencia select c.clasificacion + "(" + c.id_clasificacion + ")";
                        a.listaClasificacion = new SelectList(clasificaciones);
                        ModelState.AddModelError("diaSeleccionado", "Debe seleccionar un día");
                        return View(a);
                    }
                }
                //agregar dia para multiples agencias
                else
                {
                    return RedirectToAction("ClasificacionAgencias");
                }
            }
            else
            {
                return RedirectToAction("ClasificacionAgencias");
            }
            return RedirectToAction("ClasificacionAgencias");
        }
예제 #4
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);
            }
        }
예제 #5
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");
            }
        }
예제 #6
0
        public ActionResult AgregarDiaVisitas(string id, string forma, Agencias agencia)
        {
            //agregar dia para agencia individual
            if (!string.IsNullOrEmpty(forma))
            {
                if (forma.Equals("individual"))
                {
                    //obteniendo numero de agencia
                    string num = "";
                    if (!string.IsNullOrEmpty(id))
                    {
                        string[] ids = id.Split('-');
                        num = ids[0].Trim();
                    }

                    //buscar agencia
                    if (!string.IsNullOrEmpty(num))
                    {

                        Agencias a = db.Agencias.Find(int.Parse(num));
                        V_Agencias v = db.VAgencias.Find(int.Parse(num));

                        if (a != null)
                        {
                            a.v_agencia = v;
                            a.listaAgencias = new SelectList(claseAgencias.GetAgencias());

                            //listado de dias

                            a.listaDias = new SelectList(dias);
                            return View(a);
                        }
                        ViewBag.Error = "El Agente no existe";
                        return View();
                    }
                    return RedirectToAction("DiaVisitas");

                }
                else if (forma.Equals("actualizar"))
                {
                    if (!string.IsNullOrEmpty(agencia.diaSeleccionado))
                    {
                        Agencias a = db.Agencias.Find(agencia.NUMERO_AGENCIA);
                        a.local_dia_visitas = int.Parse(agencia.diaSeleccionado);
                        a.listaAgencias = new SelectList(claseAgencias.GetAgencias());
                        db.SaveChanges();
                        ViewBag.Success = "Se ha actualizado Éxitosamente.";
                        return View(a);
                    }
                    else
                    {
                        Agencias a = db.Agencias.Find(agencia.NUMERO_AGENCIA);
                        V_Agencias v = db.VAgencias.Find(agencia.NUMERO_AGENCIA);
                        a.listaAgencias = new SelectList(claseAgencias.GetAgencias());
                        a.v_agencia = v;
                        //listado de dias
                        a.listaDias = new SelectList(dias);
                        ModelState.AddModelError("diaSeleccionado", "Debe seleccionar un día");
                        return View(a);
                    }

                }
                //agregar dia para multiples agencias
                else
                {
                    return RedirectToAction("DiaVisitas");
                }
            }
            else
            {
                return RedirectToAction("DiaVisitas");
            }
        }
예제 #7
0
        public ActionResult CrearVisita(Local_Visitas_Agentes visita)
        {
            VIAModel db = new VIAModel();
            var error = false;

            string domainUser = User.Identity.Name;
            string[] parts = domainUser.Split('\\');
            string username = parts[1];

            visita.id = visita.Numero_Agencia;
            visita.Agencia = db.Agencias.Find(visita.id);

            visita.regPor = username;
            visita.Hora = DateTime.Now.ToShortTimeString();
            visita.Fecha = DateTime.Now.Date;

            if (!string.IsNullOrEmpty(visita.fmrSeleccionado))
            {
                visita.FMR = (from f in db.Local_FMR where f.nombre.Equals(visita.fmrSeleccionado) select f.FMR_id).First();
                visita.Local_FMR = db.Local_FMR.Find(visita.FMR);
            }
            else
            {
                error = true;
                ModelState.AddModelError("fmr", "Debe seleccionar un FMR");
            }

            if (visita.SalienteVisible == 2) { error = true; ModelState.AddModelError("saliente", "Debe elegir una opción."); }
            if (visita.BannerVisible == 2) { error = true; ModelState.AddModelError("banner", "Debe elegir una opción."); }
            if (visita.TotemVisible == 2) { error = true; ModelState.AddModelError("totem", "Debe elegir una opción."); }
            if (visita.CoverVisible == 2) { error = true; ModelState.AddModelError("cover", "Debe elegir una opción."); }
            if (visita.PortaAficheVisible == 2) { error = true; ModelState.AddModelError("portaafiche", "Debe elegir una opción."); }
            if (visita.ColganteVisible == 2) { error = true; ModelState.AddModelError("colgante", "Debe elegir una opción."); }
            if (visita.FlyersVisibles == 2) { error = true; ModelState.AddModelError("flyers", "Debe elegir una opción."); }

            if (!error)
            {
                try
                {
                    db.Local_Visitas_Agentes.Add(visita);
                    db.SaveChanges();

                    ViewBag.Mensaje = "Se ha guardado la visita Éxitosamente.";
                    var agenciasL = from a in db.Agencias orderby a.NUMERO_AGENCIA select a.NUMERO_AGENCIA;
                    Agencias objA = new Agencias();
                    objA.listaAgencias = new SelectList(agenciasL);
                    return View("Buscar", objA);
                }
                catch (Exception e)
                {
                    ViewBag.Error = "No se ha podido guardar la visita. Intente de nuevo.";
                    var obj = new Local_Visitas_Agentes();
                    obj.Agencia = visita.Agencia;
                    obj.Fecha = DateTime.Now.Date;
                    obj.Hora = DateTime.Now.ToShortTimeString();
                    var fmr = from f in db.Local_FMR orderby f.nombre select f.nombre;
                    var agencias = from ag in db.Agencias orderby ag.NUMERO_AGENCIA select ag.NUMERO_AGENCIA;
                    obj.Agencia.listaAgencias = new SelectList(agencias);
                    obj.listaFMR = new SelectList(fmr);
                    ViewBag.Ruta = (from r in db.EJECUTIVOS where r.EJECUTIVO_ID == obj.Agencia.EJECUTIVO_ID select r.NOMBRE).First();

                    return View(obj);
                }
            }
            else
            {
                ModelState.AddModelError("error", "Asegurese elegir una opción para cada pregunta.");

                var obj = new Local_Visitas_Agentes();

                obj.Fecha = DateTime.Now.Date;
                obj.Hora = DateTime.Now.ToShortTimeString();
                var fmr = from f in db.Local_FMR orderby f.nombre select f.nombre;
                var agencias = from ag in db.Agencias orderby ag.NUMERO_AGENCIA select ag.NUMERO_AGENCIA;
                obj.Agencia = new Agencias();
                obj.Agencia = db.Agencias.Find(visita.Numero_Agencia);
                obj.Agencia.listaAgencias = new SelectList(agencias);
                obj.listaFMR = new SelectList(fmr);
                ViewBag.Ruta = (from r in db.EJECUTIVOS where r.EJECUTIVO_ID == obj.Agencia.EJECUTIVO_ID select r.NOMBRE).First();
                ViewBag.errores = "error";

                //respuestas
                obj.SalienteVisible = visita.SalienteVisible;
                obj.BannerVisible = visita.BannerVisible;
                obj.ColganteVisible = visita.ColganteVisible;
                obj.CoverVisible = visita.CoverVisible;
                obj.FlyersVisibles = visita.FlyersVisibles;
                obj.PortaAficheVisible = visita.PortaAficheVisible;
                obj.SalienteVisible = visita.SalienteVisible;
                obj.TotemVisible = visita.TotemVisible;

                return View(obj);
            }
        }
예제 #8
0
 public ActionResult Buscar()
 {
     var obj = new Agencias();
     obj.listaAgencias = new SelectList(claseAgencias.GetAgencias());
     return View(obj);
 }