예제 #1
0
        //MUESTRA REPORTE DIRECTIVO
        public ReporteDirectivo MostrarReporteDirectivo(Campana Campana)
        {
            ReporteDirectivo reporteDirectivo = new ReporteDirectivo();

            ReporteENT reporteENTReq = new ReporteENT();

            reporteENTReq.ClaveCampana = Campana.Title;

            ReporteENT reporteENTRes = new ReporteENT();

            CampanaNEG campanaNEG = new CampanaNEG();

            reporteENTRes = campanaNEG.GenerarReporteDirectivo(reporteENTReq);

            if (reporteENTRes.Mensaje == "OK")
            {
                reporteDirectivo.Mensaje             = reporteENTRes.Mensaje;
                reporteDirectivo.URLReporteDirectivo = reporteENTRes.UrlArchivo;
            }
            else
            {
                reporteDirectivo.Mensaje = reporteENTRes.Mensaje;
            }

            return(reporteDirectivo);
        }
예제 #2
0
        //SEGUNDO PASO PARA GUARDAR INFORMACION DE CAMPAÑA Y ESCENARIOS
        public ProductoCampana GuardarProductoCampana(ArchivoProducto ArchivoProducto)
        {
            ProductoCampana      productoCampana   = new ProductoCampana();
            List <ProductoLinea> ListProductoLinea = new List <ProductoLinea>();

            ProductoLineaENT productoLineaENTReq = new ProductoLineaENT();

            productoLineaENTReq.ClaveCampana = ArchivoProducto.ClaveCampana;
            productoLineaENTReq.UrlArchivo   = ArchivoProducto.UrlArchivo;

            ProductoLineaENT productoLineaENTRes = new ProductoLineaENT();

            CampanaNEG campanaNEG = new CampanaNEG();

            productoLineaENTRes = campanaNEG.GuardarProductoCampana(productoLineaENTReq);

            if (productoLineaENTRes.Mensaje == "OK")
            {
                productoCampana.ListLineaFamilia  = productoLineaENTRes.ListLineaFamilia;
                productoCampana.ListMensaje       = productoLineaENTRes.ListMensaje;
                productoCampana.ListSKUValidacion = new List <SKUValidacion>();
                productoCampana.Mensaje           = productoLineaENTRes.Mensaje;
            }
            else
            {
                productoCampana.ListMensaje       = productoLineaENTRes.ListMensaje;
                productoCampana.ListSKUValidacion = productoLineaENTRes.ListSkuValidacion;
                productoCampana.Mensaje           = productoLineaENTRes.Mensaje;
            }

            return(productoCampana);
        }
예제 #3
0
        //TERCER PASO PARA GUARDAR INFORMACION DE CAMPAÑA
        public string GuardarCampana(Campana Campana)
        {
            string resultado = string.Empty;

            CampanaENT campanaENTReq = new CampanaENT();

            campanaENTReq.Campana = Campana;

            CampanaENT campanaENTRes = new CampanaENT();

            CampanaNEG campanaNEG = new CampanaNEG();

            campanaENTRes = campanaNEG.GuardarCampana(campanaENTReq);

            if (campanaENTRes.Mensaje == "OK")
            {
                resultado = campanaENTRes.Mensaje;
            }
            else
            {
                resultado = campanaENTRes.Mensaje;
            }

            return(resultado);
        }
예제 #4
0
        //SE GUARDA O ACTUALIZA SOLO CRONOGRAMA
        public string GuardarCronograma(Campana campana)
        {
            string resultado = string.Empty;

            CampanaENT campanaENTReq = new CampanaENT();

            campanaENTReq.Campana = campana;

            CampanaENT campanaENTRes = new CampanaENT();

            CampanaNEG campanaNEG = new CampanaNEG();

            campanaENTRes = campanaNEG.GuardarCampanaCronograma(campanaENTReq);

            resultado = campanaENTRes.Mensaje;


            return(resultado);
        }
예제 #5
0
        //MUESTRA INFORMACION DE LA CAMPAÑA Y EL CRONOGRAMA
        public MostrarCronograma MostrarCampanaCronograma(Campana campana)
        {
            MostrarCronograma mostrarCronograma = new MostrarCronograma();

            CampanaENT campanaENTReq = new CampanaENT();

            campanaENTReq.Campana = campana;

            CampanaENT campanaENTRes = new CampanaENT();

            CampanaNEG campanaNEG = new CampanaNEG();

            campanaENTRes = campanaNEG.MostrarCampanaCronograma(campanaENTReq);

            mostrarCronograma = campanaENTRes.MostrarCronograma;


            return(mostrarCronograma);
        }
예제 #6
0
        //MUESTRA APROBADOR DEPENDIENTE DE PREDECESOR
        public FlujoActividadAprobador MostrarAprobadorPredecesor(FlujoActividad flujoActividad)
        {
            FlujoActividadAprobador FlujoActividadAprobador = new FlujoActividadAprobador();

            CampanaNEG        campanaNEG           = new CampanaNEG();
            FlujoActividadENT flujoActividadENTReq = new FlujoActividadENT();

            flujoActividadENTReq.ListFlujoActividad = new List <FlujoActividad>();
            flujoActividadENTReq.ListFlujoActividad.Add(flujoActividad);

            FlujoActividadENT flujoActividadENTRes = new FlujoActividadENT();

            flujoActividadENTRes = campanaNEG.MostrarAprobadorPredecesor(flujoActividadENTReq);

            FlujoActividadAprobador.ListFlujoActividad = flujoActividadENTRes.ListFlujoActividad;
            FlujoActividadAprobador.Mensaje            = flujoActividadENTRes.Mensaje;


            return(FlujoActividadAprobador);
        }
예제 #7
0
        //MUESTRA HISTORICO GASTO PLANTA
        public List <GastoPlantaHistorico> MostrarHistoricoGastoPlanta(GastoPlantaHistorico gastoPlanta)
        {
            List <GastoPlantaHistorico> ListGastoPlantaHistorico = new List <GastoPlantaHistorico>();

            CampanaNEG campanaNEG = new CampanaNEG();

            GastoPlantaENT gastoPlantaENTReq = new GastoPlantaENT();

            gastoPlantaENTReq.ListGastoPlantaHistorico = new List <GastoPlantaHistorico>();
            gastoPlantaENTReq.ListGastoPlantaHistorico.Add(gastoPlanta);

            GastoPlantaENT gastoPlantaENTRes = new GastoPlantaENT();

            gastoPlantaENTRes = campanaNEG.MostrarGastoPlantaHistorico(gastoPlantaENTReq);

            if (gastoPlantaENTRes != null && gastoPlantaENTRes.OK == 1)
            {
                ListGastoPlantaHistorico = gastoPlantaENTRes.ListGastoPlantaHistorico;
            }

            return(ListGastoPlantaHistorico);
        }
예제 #8
0
        //MUESTRA BITACORA DETALLE CAMPANA
        public List <Campana> MostrarBitacoraDetalleCampana(Campana campana)
        {
            List <Campana> ListCampana = new List <Campana>();

            CampanaNEG campanaNEG = new CampanaNEG();

            CampanaBitacoraENT campanaENTReq = new CampanaBitacoraENT();

            campanaENTReq.ListCampana = new List <Campana>();
            campanaENTReq.ListCampana.Add(campana);

            CampanaBitacoraENT campanaENTRes = new CampanaBitacoraENT();

            campanaENTRes = campanaNEG.MostrarCampanaBitacoraDetalle(campanaENTReq);

            if (campanaENTRes.ListCampana != null)
            {
                ListCampana = campanaENTRes.ListCampana;
            }

            return(ListCampana);
        }
예제 #9
0
        //REALIZA CALCULO DE RENTABILIDAD Y GENERA REPORTES
        public Rentabilidad MostrarRentabilidad(Rentabilidad Rentabilidad)
        {
            RentabilidadENT rentabilidadENTReq = new RentabilidadENT();

            rentabilidadENTReq.Rentabilidad = Rentabilidad;

            RentabilidadENT rentabilidadENTRes = new RentabilidadENT();

            CampanaNEG campanaNEG = new CampanaNEG();

            rentabilidadENTRes = campanaNEG.MostrarRentabilidad(rentabilidadENTReq);

            if (rentabilidadENTRes.Mensaje == "OK")
            {
                Rentabilidad         = rentabilidadENTRes.Rentabilidad;
                Rentabilidad.Mensaje = rentabilidadENTRes.Mensaje;

                Rentabilidad.UrlReporteCEOPDF   = rentabilidadENTRes.UrlReporteCEOPDF;
                Rentabilidad.UrlReporteCEOExcel = rentabilidadENTRes.UrlReporteCEOExcel;
                Rentabilidad.UrlReporteMKTPDF   = rentabilidadENTRes.UrlReporteMKTPDF;
                Rentabilidad.UrlReporteMKTExcel = rentabilidadENTRes.UrlReporteMKTExcel;
                Rentabilidad.UrlReporteSKUPDF   = rentabilidadENTRes.UrlReporteSKUPDF;
                Rentabilidad.UrlReporteSKUExcel = rentabilidadENTRes.UrlReporteSKUExcel;
            }
            else
            {
                Rentabilidad         = new Rentabilidad();
                Rentabilidad.Mensaje = rentabilidadENTRes.Mensaje;

                Rentabilidad.UrlReporteCEOPDF   = string.Empty;
                Rentabilidad.UrlReporteCEOExcel = string.Empty;
                Rentabilidad.UrlReporteMKTPDF   = string.Empty;
                Rentabilidad.UrlReporteMKTExcel = string.Empty;
                Rentabilidad.UrlReporteSKUPDF   = string.Empty;
                Rentabilidad.UrlReporteSKUExcel = string.Empty;
            }

            return(Rentabilidad);
        }
예제 #10
0
        //MUESTRA INFORMACION DE CAMPAÑAS AÑO ANTERIOR
        public List <Campana> MostrarCampanaDetAnioAnterior(Campana Campana)
        {
            List <Campana> ListCampana = new List <Campana>();

            CampanaNEG campanaNEG = new CampanaNEG();

            CampanaBitacoraENT campanaENTReq = new CampanaBitacoraENT();

            campanaENTReq.ListCampana = new List <Campana>();
            campanaENTReq.ListCampana.Add(Campana);

            CampanaBitacoraENT campanaENTRes = new CampanaBitacoraENT();

            campanaENTRes = campanaNEG.MostrarCampanaDetAnioAnterior(campanaENTReq);

            if (campanaENTRes.ListCampana != null)
            {
                ListCampana = campanaENTRes.ListCampana;
            }

            return(ListCampana);
        }
예제 #11
0
        public JsonResult GetCampanaAlcance()
        {
            GraficoMOD        GraficoMOD     = new GraficoMOD();
            List <GraficoBar> ListGraficoBar = new List <GraficoBar>();

            List <GraficoPie> ListGraficoPieAlcance        = new List <GraficoPie>();
            List <GraficoPie> ListGraficoPieEstatus        = new List <GraficoPie>();
            List <GraficoPie> ListGraficoPieEjecucionTemp  = new List <GraficoPie>();
            List <GraficoPie> ListGraficoPieEjecucionTotal = new List <GraficoPie>();
            List <GraficoPie> ListGraficoPieEjecucion      = new List <GraficoPie>();
            List <GraficoPie> ListGraficoPieProgresoTemp   = new List <GraficoPie>();
            List <GraficoPie> ListGraficoPieProgresoTotal  = new List <GraficoPie>();
            List <GraficoPie> ListGraficoPieProgreso       = new List <GraficoPie>();

            List <Campana> ListCampanaTemp = new List <Campana>();

            //IFormatProvider culture = new CultureInfo("es-MX", true);

            CampanaNEG CampanaNEG = new CampanaNEG();

            CampanaENT CampanaENTReq = new CampanaENT();

            Campana Campana = new Campana();

            //OBTENER USUARIO
            Usuario usuario = new Usuario();

            CampanaENT CampanaENTRes = new CampanaENT();


            //if (Session["ListCampanaCrono"] == null || Session["ListGraficoBar"] == null ||
            //        Session["ListCampana"] == null || Session["ListGraficoPieAlcance"] == null ||
            //        Session["ListGraficoPieEstatus"] == null || Session["ListGraficoPieEjecucion"] == null ||
            //        Session["ListGraficoPieProgreso"] == null)
            //{

            try
            {
                usuario = (Usuario)Session["Usuario"];

                CampanaENTReq.ListCampana = new List <Campana>();

                CampanaENTReq.ListCampana.Add(Campana);


                //Datos grafico bar
                CampanaENTRes = new CampanaENT();

                CampanaENTRes = CampanaNEG.GetCampanaCronograma(CampanaENTReq);

                if (CampanaENTRes.OK == 0)
                {
                    GraficoMOD.ListGraficoBar          = new List <GraficoBar>();
                    GraficoMOD.ListGraficoPieAlcance   = new List <GraficoPie>();
                    GraficoMOD.ListGraficoPieEjecucion = new List <GraficoPie>();
                    GraficoMOD.ListGraficoPieEstatus   = new List <GraficoPie>();
                    GraficoMOD.ListGraficoPieProgreso  = new List <GraficoPie>();

                    GraficoMOD.ListCampana      = new List <Campana>();
                    GraficoMOD.ListCampanaCrono = new List <Campana>();

                    GraficoMOD.MenuUsuario       = usuario.MenuUsuario;
                    GraficoMOD.MenuCronograma    = usuario.MenuCronograma;
                    GraficoMOD.MenuGrafico       = usuario.MenuGrafico;
                    GraficoMOD.MenuConfiguracion = usuario.MenuConfiguracion;

                    GraficoMOD.Mensaje = "ERROR: Ocurrio un problema inesperado, no se pudo obtener la informacion de las campañas para construir las graficas, intenta de nuevo o consulta al administrador de sistemas.";
                    GraficoMOD.OK      = 0;

                    return(Json(GraficoMOD, JsonRequestBehavior.AllowGet));
                }

                if (CampanaENTRes.ListCampana.Count > 0)
                {
                    if (usuario.ID_RolCronograma == 1 || usuario.ID_RolCronograma == 2)
                    {
                        ListCampanaTemp = CampanaENTRes.ListCampana;
                    }
                    else if (usuario.ID_RolCronograma == 3)
                    {
                        ListCampanaTemp = CampanaENTRes.ListCampana.Where(n => n.PPGID_Lider == usuario.PPGID).ToList();
                    }
                    //else if (usuario.ID_RolCronograma == 3)
                    //{
                    //ListCampanaTemp = CampanaENTRes.ListCampana.Where(n => n.PPGID_Lider == usuario.PPGID).ToList();
                    //}
                }

                GraficoMOD.ListCampanaCrono = ListCampanaTemp;

                ListGraficoBar = GraficoMOD.ListCampanaCrono.Where(n => n.ID_Estatus == 2).AsEnumerable()
                                 //Where(n => n.PPGID_Lider == "")
                                 .Select(row => new GraficoBar
                {
                    Titulo          = row.Nombre_Camp,
                    PorcUsuario     = row.PorcUsuario,
                    PorcSistema     = row.PorcSistema,
                    PorcSistemaReal = row.PorcSistemaReal
                }).ToList();

                GraficoMOD.ListGraficoBar = ListGraficoBar;

                Session["ListGraficoBar"] = GraficoMOD.ListGraficoBar;

                Session["ListCampanaCrono"] = GraficoMOD.ListCampanaCrono;


                //Datos grafico pie
                //CampanaENTRes = CampanaNEG.GetCampana(CampanaENTReq);

                //GraficoMOD.ListCampana = CampanaENTRes.ListCampana;

                //Datos por alcance
                ListGraficoPieAlcance = (from c in GraficoMOD.ListCampanaCrono.Where(n => n.ID_Estatus == 2).AsEnumerable()
                                         //where c.PPGID_Lider == ""
                                         group c by new
                {
                    c.Alcance
                } into gcs
                                         select new GraficoPie
                {
                    Titulo = gcs.Key.Alcance,
                    Valor = gcs.Count()
                }).ToList();

                GraficoMOD.ListGraficoPieAlcance = ListGraficoPieAlcance;
                Session["ListGraficoPieAlcance"] = GraficoMOD.ListGraficoPieAlcance;


                //Datos por estatus
                ListGraficoPieEstatus = (from c in GraficoMOD.ListCampanaCrono.Where(n => n.ID_Estatus == 2).AsEnumerable()
                                         //where c.PPGID_Lider == ""
                                         group c by new
                {
                    c.EstatusCat
                } into gcs
                                         select new GraficoPie
                {
                    Titulo = gcs.Key.EstatusCat,
                    Valor = gcs.Count()
                }).ToList();

                GraficoMOD.ListGraficoPieEstatus = ListGraficoPieEstatus;
                Session["ListGraficoPieEstatus"] = GraficoMOD.ListGraficoPieEstatus;


                //Datos campaña por ejecutar
                ListGraficoPieEjecucionTemp = GraficoMOD.ListCampanaCrono.Where(n => n.ID_Estatus == 1).AsEnumerable()
                                              //.Where(n => DateTime.ParseExact(n.Fecha_Inicio, "dd/MM/yyyy", culture) > DateTime.Now)
                                              .Select(row => new GraficoPie
                {
                    Titulo = "Por ejecutar",
                    Valor  = 1
                }).ToList();


                if (ListGraficoPieEjecucionTemp.Count > 0)
                {
                    ListGraficoPieEjecucionTotal.AddRange(ListGraficoPieEjecucionTemp);
                }

                //Datos campaña en ejecucion
                ListGraficoPieEjecucionTemp = GraficoMOD.ListCampanaCrono.Where(n => n.ID_Estatus == 2).AsEnumerable()
                                              //.Where(n => DateTime.ParseExact(n.Fecha_Inicio, "dd/MM/yyyy", culture) >= DateTime.Now
                                              //            && DateTime.ParseExact(n.Fecha_Fin_Real, "dd/MM/yyyy", culture) <= DateTime.Now)
                                              .Select(row => new GraficoPie
                {
                    Titulo = "Ejecutando",
                    Valor  = 2
                }).ToList();

                if (ListGraficoPieEjecucionTemp.Count > 0)
                {
                    ListGraficoPieEjecucionTotal.AddRange(ListGraficoPieEjecucionTemp);
                }

                //Datos campaña finalizada
                ListGraficoPieEjecucionTemp = GraficoMOD.ListCampanaCrono.Where(n => n.ID_Estatus == 3).AsEnumerable()
                                              //.Where(n => DateTime.ParseExact(n.Fecha_Fin_Real, "dd/MM/yyyy", culture) > DateTime.Now)
                                              .Select(row => new GraficoPie
                {
                    Titulo = "Finalizada",
                    Valor  = 3
                }).ToList();

                if (ListGraficoPieEjecucionTemp.Count > 0)
                {
                    ListGraficoPieEjecucionTotal.AddRange(ListGraficoPieEjecucionTemp);
                }

                ListGraficoPieEjecucion = (from c in ListGraficoPieEjecucionTotal
                                           //where c.PPGID_Lider == ""
                                           group c by new
                {
                    c.Titulo
                } into gcs
                                           select new GraficoPie
                {
                    Titulo = gcs.Key.Titulo,
                    Valor = gcs.Count()
                }).ToList();

                GraficoMOD.ListGraficoPieEjecucion = ListGraficoPieEjecucion;
                Session["ListGraficoPieEjecucion"] = GraficoMOD.ListGraficoPieEjecucion;


                //Datos campaña en progreso
                ListGraficoPieProgresoTemp = GraficoMOD.ListCampanaCrono.Where(n => n.ID_Estatus == 2 &&
                                                                               n.PorcUsuario >= n.PorcSistema).AsEnumerable()
                                             .Select(row => new GraficoPie
                {
                    Titulo = "Campaña en tiempo",
                    Valor  = 1
                }).ToList();

                if (ListGraficoPieProgresoTemp.Count > 0)
                {
                    ListGraficoPieProgresoTotal.AddRange(ListGraficoPieProgresoTemp);
                }

                ListGraficoPieProgresoTemp = GraficoMOD.ListCampanaCrono.Where(n => n.ID_Estatus == 2 &&
                                                                               n.PorcUsuario < n.PorcSistema && Math.Abs(n.PorcSistema - n.PorcUsuario) <= 25).AsEnumerable()
                                             .Select(row => new GraficoPie
                {
                    Titulo = "Campaña desfasada",
                    Valor  = 2
                }).ToList();

                if (ListGraficoPieProgresoTemp.Count > 0)
                {
                    ListGraficoPieProgresoTotal.AddRange(ListGraficoPieProgresoTemp);
                }

                ListGraficoPieProgresoTemp = GraficoMOD.ListCampanaCrono.Where(n => n.ID_Estatus == 2 &&
                                                                               n.PorcUsuario < n.PorcSistema && Math.Abs(n.PorcSistema - n.PorcUsuario) > 25).AsEnumerable()
                                             .Select(row => new GraficoPie
                {
                    Titulo = "Campaña situacion critica",
                    Valor  = 3
                }).ToList();

                if (ListGraficoPieProgresoTemp.Count > 0)
                {
                    ListGraficoPieProgresoTotal.AddRange(ListGraficoPieProgresoTemp);
                }

                ListGraficoPieProgreso = (from c in ListGraficoPieProgresoTotal
                                          group c by new
                {
                    c.Titulo
                } into gcs
                                          select new GraficoPie
                {
                    Titulo = gcs.Key.Titulo,
                    Valor = gcs.Count()
                }).ToList();

                GraficoMOD.ListGraficoPieProgreso = ListGraficoPieProgreso;
                Session["ListGraficoPieProgreso"] = GraficoMOD.ListGraficoPieProgreso;


                Session["ListCampana"] = GraficoMOD.ListCampana;

                GraficoMOD.OK = CampanaENTRes.OK;

                Session["OK"] = GraficoMOD.OK;

                GraficoMOD.Mensaje = CampanaENTRes.Mensaje;

                Session["Mensaje"] = GraficoMOD.Mensaje;


                //}
                //else
                //{
                //    //Datos campaña
                //    GraficoMOD.ListCampanaCrono = (List<Campana>)Session["ListCampanaCrono"];

                //    //Datos grafico bar
                //    GraficoMOD.ListGraficoBar = (List<GraficoBar>)Session["ListGraficoBar"];


                //    //Datos grafico pie alcance
                //    GraficoMOD.ListGraficoPieAlcance = (List<GraficoPie>)Session["ListGraficoPieAlcance"];

                //    //Datos grafico pie estatus
                //    GraficoMOD.ListGraficoPieEstatus = (List<GraficoPie>)Session["ListGraficoPieEstatus"];

                //    //Datos grafico pie ejecucion
                //    GraficoMOD.ListGraficoPieEjecucion = (List<GraficoPie>)Session["ListGraficoPieEjecucion"];

                //    //Datos grafico pie ejecucion
                //    GraficoMOD.ListGraficoPieProgreso = (List<GraficoPie>)Session["ListGraficoPieProgreso"];


                //    //Datos grafico pie
                //    GraficoMOD.ListCampana = (List<Campana>)Session["ListCampana"];


                //    GraficoMOD.OK = (int)Session["OK"];

                //    GraficoMOD.Mensaje = Session["Mensaje"].ToString();

                //}
            }
            catch (Exception ex)
            {
                GraficoMOD.Mensaje = "ERROR: Ocurrio un error inesperado, no se pudo procesar la informacion para mostrar las graficas de las Campañas, intenta de nuevo o consulta al administarador de sistemas.";
                GraficoMOD.OK      = 0;

                ArchivoLog.EscribirLog(null, "ERROR: Service: GetCampanaAlcance, Source: " + ex.Source + ", Message: " + ex.Message);
            }


            GraficoMOD.MenuUsuario       = usuario.MenuUsuario;
            GraficoMOD.MenuCronograma    = usuario.MenuCronograma;
            GraficoMOD.MenuGrafico       = usuario.MenuGrafico;
            GraficoMOD.MenuConfiguracion = usuario.MenuConfiguracion;


            return(Json(GraficoMOD, JsonRequestBehavior.AllowGet));
        }