bool ValidarCondExistente(WARNINGP warningP, List <WARNING_COND> warningConds)
        {
            int pagina_id = 540;

            bool existeCondParaTabCampo   = false;
            List <WARNING_COND> warningPs = db.WARNINGPs
                                            .Where(x => x.CAMPO_ID == warningP.CAMPO_ID && x.TAB_ID == warningP.TAB_ID && x.ID != warningP.ID && ((x.SOCIEDAD_ID == null || x.SOCIEDAD_ID == warningP.SOCIEDAD_ID) && (x.TSOL_ID == null || x.TSOL_ID == warningP.TSOL_ID)))
                                            .Join(db.WARNING_COND, w => w.ID, wc => wc.WARNING_ID, (w, wc) => wc)
                                            .ToList();

            warningPs.ForEach(x =>
            {
                if (warningConds.Any(y => y.VALOR_COMP == x.VALOR_COMP && y.CONDICION_ID == x.CONDICION_ID))
                {
                    existeCondParaTabCampo = true;
                }
            });
            if (warningConds.Count == 2 && warningConds[0].VALOR_COMP == warningConds[1].VALOR_COMP && warningConds[0].CONDICION_ID == warningConds[1].CONDICION_ID)
            {
                existeCondParaTabCampo = true;
            }

            if (existeCondParaTabCampo)
            {
                ViewBag.mnjError = FnCommon.ObtenerTextoMnj(db, pagina_id, "lbl_mnjExisteCondAlerta", User.Identity.Name);
                return(false);
            }

            return(true);
        }
Example #2
0
        bool ValidarAlertaExistente(WARNINGP warningP, List <WARNING_COND> warningConds)
        {
            int pagina_id = 540;

            if (db.WARNINGPs.Any(x => x.ID == warningP.ID && x.TAB_ID == warningP.TAB_ID))
            {
                ViewBag.mnjError = ObtenerTextoMnj(pagina_id, "lbl_mnjExisteAlerta");
                return(false);
            }

            bool existeCondParaTabCampo   = false;
            List <WARNING_COND> warningPs = db.WARNINGPs
                                            .Where(x => x.CAMPO_ID == warningP.CAMPO_ID && x.TAB_ID == warningP.TAB_ID && x.ID != warningP.ID)
                                            .Join(db.WARNING_COND, w => w.ID, wc => wc.WARNING_ID, (w, wc) => wc)
                                            .ToList();

            warningPs.ForEach(x =>
            {
                if (warningConds.Any(y => y.VALOR_COMP == x.VALOR_COMP && y.CONDICION_ID == x.CONDICION_ID))
                {
                    existeCondParaTabCampo = true;
                }
            });
            if (existeCondParaTabCampo)
            {
                ViewBag.mnjError = ObtenerTextoMnj(pagina_id, "lbl_mnjExisteCondAlerta");
                return(false);
            }

            return(true);
        }
        bool ValidarAlertaExistente(WARNINGP warningP)
        {
            int pagina_id = 540;

            if (db.WARNINGPs.Any(x => x.ID == warningP.ID && x.TAB_ID == warningP.TAB_ID))
            {
                ViewBag.mnjError = FnCommon.ObtenerTextoMnj(db, pagina_id, "lbl_mnjExisteAlerta", User.Identity.Name);
                return(false);
            }
            return(true);
        }
Example #4
0
        public ActionResult Edit(AlertaViewModel modelView)
        {
            int pagina_id = 542;//ID EN BASE DE DATOS

            try
            {
                WARNINGP            warningP     = modelView.alerta;
                List <WARNINGPT>    warningts    = modelView.alertaMensajes;
                List <WARNING_COND> warningconds = modelView.alertaCondiciones;

                //Guardar Alerta
                db.Entry(warningP).State = EntityState.Modified;
                //Guardar Mensajes de la Alerta
                warningts.ForEach(x =>
                {
                    if (x.TAB_ID == null && x.WARNING_ID == null)
                    {
                        x.TAB_ID     = warningP.TAB_ID;
                        x.WARNING_ID = warningP.ID;
                        db.WARNINGPTs.Add(x);
                    }
                    else
                    {
                        db.Entry(x).State = EntityState.Modified;
                    }
                });
                //Guardar Condiciones de la Alerta
                warningconds.ForEach(x =>
                {
                    if (x.TAB_ID == null && x.WARNING_ID == null && x.CONDICION_ID != null && x.VALOR_COMP != null)
                    {
                        x.TAB_ID     = warningP.TAB_ID;
                        x.WARNING_ID = warningP.ID;
                        x.ACTIVO     = true;
                        db.WARNING_COND.Add(x);
                    }
                    else if (x.CONDICION_ID != null && x.VALOR_COMP != null)
                    {
                        db.Entry(x).State = EntityState.Modified;
                    }
                });
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            catch
            {
                ObtenerConfPage(pagina_id);
                CargarSelectList(ref modelView, new string[] { CMB_SOCIEDADES + "," + modelView.alerta.SOCIEDAD_ID, CMB_TIPOSSOLICITUD + "," + modelView.alerta.TSOL_ID, CMB_TABS + "," + modelView.alerta.TAB_ID, CMB_TIPOS, CMB_CAMPOS + "," + modelView.alerta.CAMPO_ID, CMB_CONDCAMPOS, CMB_CONDVALORES }, modelView.alerta.TAB_ID);
                return(View(modelView));
            }
        }
Example #5
0
        public ActionResult Create(AlertaViewModel modelView)
        {
            int pagina_id = 541;//ID EN BASE DE DATOS

            try
            {
                WARNINGP            warningP     = modelView.alerta;
                List <WARNINGPT>    warningts    = modelView.alertaMensajes;
                List <WARNING_COND> warningconds = modelView.alertaCondiciones;

                warningP.ID          = warningP.ID.Replace(" ", "_");
                warningP.ACCION      = "focusout";
                warningP.CAMPOVAL_ID = warningP.CAMPO_ID;

                if (!ValidarAlertaExistente(warningP, warningconds))
                {
                    throw new Exception();
                }
                //Guardar Alerta
                db.WARNINGPs.Add(warningP);
                //Guardar Mensajes de la Alerta
                warningts.ForEach(x =>
                {
                    x.TAB_ID     = warningP.TAB_ID;
                    x.WARNING_ID = warningP.ID;
                    db.WARNINGPTs.Add(x);
                });
                //Guardar Condiciones de la Alerta
                warningconds.ForEach(x =>
                {
                    if (x.CONDICION_ID != null && x.VALOR_COMP != null)
                    {
                        x.TAB_ID     = warningP.TAB_ID;
                        x.WARNING_ID = warningP.ID;
                        x.ACTIVO     = true;
                        db.WARNING_COND.Add(x);
                    }
                });
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                ObtenerConfPage(pagina_id);
                CargarSelectList(ref modelView, new string[] { CMB_SOCIEDADES, CMB_TIPOSSOLICITUD, CMB_TABS, CMB_TIPOS, CMB_CAMPOS }, modelView.alerta.TAB_ID);
                return(View(modelView));
            }
        }
Example #6
0
        public AlertaViewModel()
        {
            alertas           = new List <WARNINGP>();
            alerta            = new WARNINGP();
            alertaMensajes    = new List <WARNINGPT>();
            alertaCondiciones = new List <WARNING_COND>();

            sociedades     = new List <SelectListItem>();
            tabs           = new List <SelectListItem>();
            tiposSolicitud = new List <SelectListItem>();
            campos         = new List <SelectListItem>();
            tipos          = new List <SelectListItem>();
            condCampos     = new List <SelectListItem>();
            condValores    = new List <SelectListItem>();
            condCampos1    = new List <SelectListItem>();
            condValores1   = new List <SelectListItem>();
        }
        // GET: Alertas/Delete
        public ActionResult Delete(string warning_id, string tab_id)
        {
            WARNINGP warningP = db.WARNINGPs.Where(x => x.ID == warning_id && x.TAB_ID == tab_id).FirstOrDefault();

            if (warningP == null)
            {
                return(RedirectToAction("Index"));
            }
            List <WARNINGPT>    warningts    = db.WARNINGPTs.Where(x => x.WARNING_ID == warning_id && x.TAB_ID == tab_id).ToList();
            List <WARNING_COND> warningconds = db.WARNING_COND.Where(x => x.WARNING_ID == warning_id && x.TAB_ID == tab_id).ToList();

            db.WARNING_COND.RemoveRange(warningconds);
            db.WARNINGPTs.RemoveRange(warningts);
            db.WARNINGPs.Remove(warningP);
            db.SaveChanges();

            return(RedirectToAction("Index"));
        }
        public ActionResult Create(AlertaViewModel modelView)
        {
            int pagina_id = 541;//ID EN BASE DE DATOS

            try
            {
                WARNINGP warningpAux = modelView.alerta;
                bool     reverso     = (warningpAux.TSOL_ID == "REV");
                string   id_padre    = "";
                string   tipo_padre  = "";
                string   spras_id    = FnCommon.ObtenerSprasId(db, User.Identity.Name);
                if (!reverso && warningpAux.TSOL_ID.Contains("|"))
                {
                    id_padre   = warningpAux.TSOL_ID.Split('|')[0];
                    tipo_padre = warningpAux.TSOL_ID.Split('|')[1];
                }
                List <SelectTreeItem> tiposSolicitudesT = tiposSolicitudesDao.ObtenerItemsTSOLT(id_padre, tipo_padre, spras_id, reverso);
                List <WARNINGP>       warningpListAux   = new List <WARNINGP>();
                bool valido = true;
                foreach (string sociedad_id in modelView.sociedadesSelected)
                {
                    foreach (SelectTreeItem tsolt in tiposSolicitudesT)
                    {
                        WARNINGP warningP = new WARNINGP
                        {
                            ID          = warningpAux.ID.Replace(" ", "_") + "_" + sociedad_id + "_" + tsolt.value,
                            DESCR       = warningpAux.DESCR,
                            SOCIEDAD_ID = sociedad_id,
                            TIPO        = warningpAux.TIPO,
                            TSOL_ID     = tsolt.value,
                            CAMPOVAL_ID = warningpAux.CAMPO_ID,
                            PAGINA_ID   = warningpAux.PAGINA_ID,
                            CAMPO_ID    = warningpAux.CAMPO_ID,
                            ACCION      = "focusout",
                            TAB_ID      = warningpAux.TAB_ID
                        };
                        warningpListAux.Add(warningP);
                        if (!ValidarAlertaExistente(warningP) || !ValidarCondExistente(warningP, modelView.alertaCondiciones))
                        {
                            valido = false;
                        }
                    }
                }
                if (!valido)
                {
                    throw (new Exception());
                }
                List <WARNING_COND> warningconds = modelView.alertaCondiciones;
                List <WARNINGPT>    warningts    = modelView.alertaMensajes;
                foreach (WARNINGP warningP in warningpListAux)
                {
                    //Guardar Alerta
                    db.WARNINGPs.Add(warningP);

                    //Guardar Mensajes
                    warningts.ForEach(x =>
                    {
                        x.TAB_ID     = warningP.TAB_ID;
                        x.WARNING_ID = warningP.ID;
                        db.WARNINGPTs.Add(new WARNINGPT {
                            SPRAS_ID   = x.SPRAS_ID,
                            TAB_ID     = warningP.TAB_ID,
                            WARNING_ID = warningP.ID,
                            TXT100     = x.TXT100
                        });
                    });

                    //Guardar Condiciones
                    warningconds.ForEach(x =>
                    {
                        if (x.CONDICION_ID != null && x.VALOR_COMP != null)
                        {
                            db.WARNING_COND.Add(new WARNING_COND {
                                TAB_ID       = warningP.TAB_ID,
                                WARNING_ID   = warningP.ID,
                                POS          = x.POS,
                                ANDOR        = x.ANDOR,
                                ORAND        = x.ORAND,
                                CONDICION_ID = x.CONDICION_ID,
                                ACTIVO       = true,
                                VALOR_COMP   = (x.VALOR_COMP == "v"?"": x.VALOR_COMP)
                            });
                        }
                    });
                    db.SaveChanges();
                }

                return(RedirectToAction("Index"));
            }
            catch (Exception e)
            {
                Log.ErrorLogApp(e, "Alertas", "Create");
                FnCommon.ObtenerConfPage(db, pagina_id, User.Identity.Name, this.ControllerContext.Controller);
                CargarSelectList(ref modelView, new string[] {
                    CMB_SOCIEDADES,
                    CMBTREE_TIPOSSOLICITUD,
                    CMB_TABS,
                    CMB_TIPOS,
                    CMB_CAMPOS,
                    CMB_CONDCAMPOS,
                    CMB_CONDVALORES
                },
                                 modelView.alerta.TAB_ID,
                                 true,
                                 modelView.alertaCondiciones[0].CONDICION_ID,
                                 modelView.alertaCondiciones[1].CONDICION_ID);
                return(View(modelView));
            }
        }
        public ActionResult Edit(AlertaViewModel modelView)
        {
            int  pagina_id    = 542;//ID EN BASE DE DATOS
            bool esAlertaGral = false;

            try
            {
                WARNINGP            warningP     = modelView.alerta;
                List <WARNINGPT>    warningts    = modelView.alertaMensajes;
                List <WARNING_COND> warningconds = modelView.alertaCondiciones;

                esAlertaGral = (modelView.alerta.SOCIEDAD_ID == null || modelView.alerta.TSOL_ID == null || modelView.alerta.ID == WARNING_ID_EX);
                if (!esAlertaGral && !ValidarCondExistente(warningP, warningconds))
                {
                    throw(new Exception());
                }
                //Guardar Alerta
                db.Entry(warningP).State = EntityState.Modified;

                //Guardar Mensajes
                warningts.ForEach(x =>
                {
                    if (x.TAB_ID == null && x.WARNING_ID == null)
                    {
                        x.TAB_ID     = warningP.TAB_ID;
                        x.WARNING_ID = warningP.ID;
                        db.WARNINGPTs.Add(x);
                    }
                    else
                    {
                        db.Entry(x).State = EntityState.Modified;
                    }
                });
                if (!esAlertaGral)
                {
                    // Eliminar Condiciones
                    db.WARNING_COND.RemoveRange(db.WARNING_COND.Where(x => x.WARNING_ID == warningP.ID && x.TAB_ID == warningP.TAB_ID));
                    db.SaveChanges();
                    //Guardar  Condiciones
                    warningconds.ForEach(x =>
                    {
                        if (x.VALOR_COMP == "v")
                        {
                            x.VALOR_COMP = "";
                        }
                        if (x.CONDICION_ID != null && x.VALOR_COMP != null)
                        {
                            x.TAB_ID     = warningP.TAB_ID;
                            x.WARNING_ID = warningP.ID;
                            x.ACTIVO     = true;
                            db.WARNING_COND.Add(x);
                        }
                    });
                }
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            catch (Exception)
            {
                FnCommon.ObtenerConfPage(db, pagina_id, User.Identity.Name, this.ControllerContext.Controller);
                CargarSelectList(ref modelView, new string[] {
                    CMB_TIPOS,
                    CMB_SOCIEDADES + "," + modelView.alerta.SOCIEDAD_ID,
                    CMB_TIPOSSOLICITUD + "," + modelView.alerta.TSOL_ID,
                    CMB_TABS + "," + modelView.alerta.TAB_ID,
                    CMB_CAMPOS + "," + modelView.alerta.CAMPO_ID,
                    CMB_CONDCAMPOS, CMB_CONDVALORES
                },
                                 modelView.alerta.TAB_ID,
                                 (esAlertaGral ? null : (bool?)true),
                                 (esAlertaGral ? null : modelView.alertaCondiciones[0].CONDICION_ID),
                                 (esAlertaGral ? null : modelView.alertaCondiciones[1].CONDICION_ID));
                return(View(modelView));
            }
        }