Exemplo n.º 1
0
        List <SelectTreeItem> ObtenerItemsSelectTree(string id_padre, string tipo_padre, string spras_id, bool soloNodoSup = false)
        {
            List <SelectTreeItem> items = new List <SelectTreeItem>();

            db.TSOL_GROUP
            .Where(x => x.ID_PADRE == id_padre && x.TIPO_PADRE == tipo_padre)
            .ToList().ForEach(x =>
            {
                SelectTreeItem item = new SelectTreeItem
                {
                    text     = x.DESCRIPCION,
                    expanded = false,
                    items    = ObtenerItemsSelectTree(x.ID, x.TIPO, spras_id, soloNodoSup)
                };
                if (!item.items.Any() && !soloNodoSup)
                {
                    item.items = ObtenerItemsTSOLT(x.ID, x.TIPO, spras_id);
                }
                else if (!item.items.Any() && soloNodoSup)
                {
                    item.value = x.ID + "|" + x.TIPO;
                }
                items.Add(item);
            });
            if (!items.Any() && !soloNodoSup)
            {
                items = ObtenerItemsTSOLT(id_padre, tipo_padre, spras_id);
            }
            return(items);
        }
Exemplo n.º 2
0
        public List <SelectTreeItem> TreeTiposSolicitudes(string sociedad_id, string spras_id, string tipo = null, bool?esReversa = false)
        {
            // tipo
            // SD = Solicitud directa
            // SR = Solicitud relacionada

            List <SelectTreeItem> tree = new List <SelectTreeItem>();

            if (esReversa.Value)
            {
                tree.Add(new SelectTreeItem
                {
                    text     = "Reverso",
                    expanded = false,
                    items    = ObtenerItemsTSOLT("", "", spras_id, esReversa)
                });
            }
            else
            {
                List <TSOL_XG> tx = db.TSOL_XG.Where(x => x.SOCIEDAD_ID == sociedad_id && x.ACTIVO).ToList();

                db.TSOL_GROUP
                .Where(x =>
                       x.ID_PADRE == null && x.TIPO_PADRE == null &&
                       (tipo == x.TIPO || tipo == null)
                       ////&& (((sociedad_id == "KCMX" || sociedad_id == "KLCO") && x.ID != "1_5_OP" && x.ID != "2_5_OP") || (sociedad_id != "KCMX" && sociedad_id != "KLCO")))
                       )//.Join(db.TSOL_TREE.Where(x =>  x.TSOL_GROUP_TIPO == tipo), t => t.ID, g => g.TSOL_GROUP_ID, (t, g) => t)
                .Join(db.TSOL_GROUPT, tg => new { tg.ID, tg.TIPO }, tgt => new { ID = tgt.TSOL_GROUP_ID, TIPO = tgt.TSOL_GROUP_TIPO }, (tg, tgt) => new { tgt.SPRAS_ID, tgt.TSOL_GROUP_ID, tgt.TSOL_GROUP_TIPO, tgt.TXT50, tg.TIPOSOC })
                .Where(x => x.SPRAS_ID == spras_id).OrderBy(x => x.TSOL_GROUP_ID)
                .ToList().ForEach(x =>
                {
                    SelectTreeItem item = new SelectTreeItem
                    {
                        text     = x.TXT50,
                        expanded = false,
                        items    = ObtenerItemsSelectTree(x.TSOL_GROUP_ID, x.TSOL_GROUP_TIPO, spras_id, tx)
                    };
                    if (item.items.Any() && !tx.Any(a => a.TSOL_TIPO == x.TIPOSOC))
                    {
                        tree.Add(item);
                    }
                });
            }
            return(tree);
        }