public ActionResult CreateFA(string id, int pid, int v)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ObtenerConfPage(923, 925);
            List <DET_APROBP> flujosva = db.DET_APROBP.Where(t => t.SOCIEDAD_ID == id && t.PUESTOC_ID == pid && t.VERSION == v).ToList();
            var lan        = ViewBag.usuario.SPRAS_ID;
            var puestos    = db.PUESTOes.Where(t => t.ID == pid).ToList();
            var sl_puestos = puestos.Select(x => new { x.ID, Puesto = x.PUESTOTs.Count > 0 ? x.PUESTOTs.Where(t => t.SPRAS_ID == lan).FirstOrDefault().TXT50 : "" }).ToList();

            ViewBag.PUESTOC_ID = new SelectList(sl_puestos, "ID", "Puesto");
            ViewBag.NivelesA   = new SelectList(FnCommon.ObtenerCmbNivelesA(), "Value", "Text");
            ViewBag.NivelesP   = new SelectList(FnCommon.ObtenerCmbNivel(), "Value", "Text");
            ViewBag.NivelesM   = new SelectList(FnCommon.ObtenerCmbNivel(), "Value", "Text");
            DET_APROBH dET_APROBP = new DET_APROBH {
                SOCIEDAD_ID = id, ACTIVO = true, VERSION = v + 1, PUESTOC_ID = pid
            };
            var sociedad = db.SOCIEDADs.Find(id);

            ViewBag.Miles          = db.PAIS.Where(t => t.LAND == sociedad.LAND).SingleOrDefault().MILES;
            ViewBag.PD             = db.PAIS.Where(t => t.LAND == sociedad.LAND).SingleOrDefault().DECIMAL;
            ViewBag.FlujosActuales = flujosva;
            return(View(dET_APROBP));
        }
Example #2
0
        public JsonResult Det_Aprob2(string bukrs, string puesto, string spras)
        {
            TAT001Entities db = new TAT001Entities();
            int            p  = Int16.Parse(puesto);
            DET_APROBH     dh = db.DET_APROBH.Where(a => a.SOCIEDAD_ID.Equals(bukrs) & a.PUESTOC_ID == p).OrderByDescending(a => a.VERSION).FirstOrDefault();

            if (dh != null)
            {
                var c = (from N in db.DET_APROBP
                         join St in db.PUESTOTs
                         on N.PUESTOA_ID equals St.PUESTO_ID
                         where N.SOCIEDAD_ID.Equals(bukrs) & N.PUESTOC_ID.Equals(p) & St.SPRAS_ID.Equals(spras) & N.VERSION.Equals(dh.VERSION)
                         //where N.BUKRS.Equals(bukrs)
                         select new { N.POS, N.PUESTOA_ID.Value, St.TXT50, N.MONTO, PRESUPUESTO = (bool)N.PRESUPUESTO.Value }).ToList();

                TAX_LAND tl = db.TAX_LAND.Where(a => a.SOCIEDAD_ID.Equals(bukrs) & a.ACTIVO == true).FirstOrDefault();
                if (tl != null)
                {
                    var col = (from St in db.PUESTOTs
                               where St.PUESTO_ID == 9 & St.SPRAS_ID.Equals(spras)
                               //where N.BUKRS.Equals(bukrs)
                               select new { POS = 98, Value = St.PUESTO_ID, St.TXT50, MONTO = (decimal?)decimal.Parse("-1"), PRESUPUESTO = false });
                    c.AddRange(col);
                }
                var        ca = c.OrderBy(a => a.POS);
                JsonResult cc = Json(ca, JsonRequestBehavior.AllowGet);
                return(cc);
            }
            else
            {
                return(null);
            }
        }
 public ActionResult EditF([Bind(Include = "SOCIEDAD_ID, VERSION, PUESTOC_ID, ACTIVO")] DET_APROBH modelo)
 {
     if (ModelState.IsValid)
     {
         db.Entry(modelo).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Flujos", new { id = modelo.SOCIEDAD_ID }));
     }
     ObtenerConfPage(923, 927);
     return(View(modelo));
 }
        public ActionResult EditF(string id, int pid, int v)
        {
            if (id == null || pid == 0 || v == 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ObtenerConfPage(923, 927);
            DET_APROBH flujo = db.DET_APROBH.Where(t => t.SOCIEDAD_ID == id && t.PUESTOC_ID == pid && t.VERSION == v).SingleOrDefault();

            return(View(flujo));
        }
Example #5
0
        public FLUJO determinaAgenteC(DOCUMENTO d, CLIENTEF cf, int pos, int sop, string tipo)//, string next)
        {
            FLUJO             f   = new FLUJO();
            List <DET_APROBP> ddp = new List <DET_APROBP>();

            using (TAT001Entities db = new TAT001Entities())
            {
                DET_APROBH dh = db.DET_APROBH.Where(a => a.SOCIEDAD_ID.Equals(d.SOCIEDAD_ID) & a.ACTIVO).OrderByDescending(a => a.VERSION).FirstOrDefault();// OBTIENE ENCABEZADO FLUJO DE SOCIEDAD
                if (dh != null)
                {
                    ddp = db.DET_APROBP.Where(a => a.SOCIEDAD_ID.Equals(dh.SOCIEDAD_ID) & a.PUESTOC_ID == dh.PUESTOC_ID & a.VERSION == dh.VERSION & a.ACTIVO).ToList(); //oBTIENE TABLA DE FLUJO
                }
                if (tipo == "N")                                                                                                                                        //------Si es modificación por rechazo de manager
                {
                    FLUJO ffl = db.FLUJOes.Where(a => a.NUM_DOC.Equals(d.NUM_DOC) & a.ESTATUS.Equals("R")).OrderByDescending(a => a.POS).FirstOrDefault();
                    f = ffl;
                }
            }
            int        ppos = 0;
            DET_APROBP dp   = ddp.Where(a => a.POS == pos).FirstOrDefault(); //Obtiene nivel de autorización

            if (dp != null)                                                  //----Si existe posición
            {
                int detp = 0;
                if (tipo != "B" & tipo != "M")//---Si no es notificación ni modificación por rechazo de TS
                {
                    if (dp.MONTO != null)
                    {
                        if (d.MONTO_DOC_MD > dp.MONTO)
                        {
                            ppos--;
                            detp = dp.N_MONTO == null ? (pos + 1) : (int)dp.N_MONTO;
                        }
                    }
                    if (ppos == 0)
                    {
                        if (dp.PRESUPUESTO != null & d.EXCEDE_PRES != null)
                        {
                            if (d.EXCEDE_PRES == "X" & dp.PRESUPUESTO == true)
                            {
                                ppos--;
                                detp = dp.N_PRESUP == null ? (pos + 1) : (int)dp.N_PRESUP;
                            }
                        }
                    }
                }
                else
                {
                    pos = 98;
                }


                if (pos == 99)
                {
                    f.USUARIOA_ID = null;
                }
                else if (ppos == 0 & sop == 98)//Cuando va a soporte(Termina autorización)
                {
                    f.USUARIOA_ID = d.USUARIOD_ID;
                    f.DETPOS      = sop;
                }
                else if (ppos == 0 & sop == 99)//Cuando va a TS(Termina autorización)
                {
                    f.USUARIOA_ID = cf.USUARIO6_ID;
                    f.DETPOS      = sop;
                }
                else
                {
                    if ((detp - 1) == 1)
                    {
                        f.USUARIOA_ID = cf.USUARIO2_ID;
                        if (cf.USUARIO2_ID != null)
                        {
                            f.DETPOS = detp;
                        }
                        else
                        {
                            ppos++;
                            f.DETPOS = sop;
                            if (sop == 99)
                            {
                                f.USUARIOA_ID = cf.USUARIO6_ID;
                            }
                            else
                            {
                                f.USUARIOA_ID = d.USUARIOD_ID;
                            }
                        }
                    }
                    if ((detp - 1) == 2)
                    {
                        f.USUARIOA_ID = cf.USUARIO3_ID;
                        if (cf.USUARIO3_ID != null)
                        {
                            f.DETPOS = detp;
                        }
                        else
                        {
                            ppos++;
                            f.DETPOS = sop;
                            if (sop == 99)
                            {
                                f.USUARIOA_ID = cf.USUARIO6_ID;
                            }
                            else
                            {
                                f.USUARIOA_ID = d.USUARIOD_ID;
                            }
                        }
                    }
                    if ((detp - 1) == 3)
                    {
                        f.USUARIOA_ID = cf.USUARIO4_ID;
                        if (cf.USUARIO4_ID != null)
                        {
                            f.DETPOS = detp;
                        }
                        else
                        {
                            ppos++;
                            f.DETPOS = sop;
                            if (sop == 99)
                            {
                                f.USUARIOA_ID = cf.USUARIO6_ID;
                            }
                            else
                            {
                                f.USUARIOA_ID = d.USUARIOD_ID;
                            }
                        }
                    }
                    if ((detp - 1) == 4)
                    {
                        f.USUARIOA_ID = cf.USUARIO5_ID;
                        if (cf.USUARIO5_ID != null)
                        {
                            f.DETPOS = detp;
                        }
                        else
                        {
                            ppos++;
                            f.DETPOS = sop;
                            if (sop == 99)
                            {
                                f.USUARIOA_ID = cf.USUARIO6_ID;
                            }
                            else
                            {
                                f.USUARIOA_ID = d.USUARIOD_ID;
                            }
                        }
                    }
                    if (pos == 98)//Despues de rechazo de TS para PRA - regresa a TS
                    {
                        f.USUARIOA_ID = cf.USUARIO6_ID;
                        f.DETPOS      = 99;
                    }
                }
            }
            else if (pos == 98)
            {
                f.USUARIOA_ID = cf.USUARIO6_ID;
                f.DETPOS      = 99;
            }
            else if (pos == 0)//Despues de rechazo de TS para PR - regresa a TS
            {
                if (f.DETPOS == 99)
                {
                    ppos = 1;
                }
                f.DETPOS--;
                f.POS = ppos;
            }
            f.POS = ppos;

            return(f);
        }
        public ActionResult CreateFA([Bind(Include = "SOCIEDAD_ID,PUESTOC_ID,VERSION,ACTIVO")] DET_APROBH dET_APROBH, FormCollection collection)
        {
            if (ModelState.IsValid)
            {
                List <DET_APROBP> dET_APROBPs = new List <DET_APROBP>();
                var posiciones    = collection.GetValues("posicion");
                var npresupuestos = collection.GetValues("NivelesPR");
                var montos        = collection.GetValues("monto");
                var nmontos       = collection.GetValues("NivelesMO");
                var naprobadores  = collection.GetValues("NivelesAP");
                if (posiciones.Length > 1)
                {
                    for (int i = 1; i < posiciones.Length; i++)
                    {
                        DET_APROBP dET_APROB = new DET_APROBP();
                        dET_APROB.POS = Convert.ToInt32(posiciones[i]);
                        if ((i + 1) < posiciones.Length)
                        {
                            if (collection.AllKeys.Contains("p_" + i))
                            {
                                dET_APROB.PRESUPUESTO = true;
                                dET_APROB.N_PRESUP    = Convert.ToInt16(npresupuestos[i]);
                            }
                            if (montos[i] != "")
                            {
                                dET_APROB.MONTO   = Convert.ToDecimal(montos[i]);
                                dET_APROB.N_MONTO = Convert.ToInt16(nmontos[i]);
                            }
                        }
                        dET_APROB.PUESTOA_ID  = Convert.ToInt16(naprobadores[i]);
                        dET_APROB.ACTIVO      = true;
                        dET_APROB.PUESTOC_ID  = dET_APROBH.PUESTOC_ID;
                        dET_APROB.SOCIEDAD_ID = dET_APROBH.SOCIEDAD_ID;
                        dET_APROB.VERSION     = dET_APROBH.VERSION;
                        dET_APROBPs.Add(dET_APROB);
                    }
                    dET_APROBH.DET_APROBP      = dET_APROBPs;
                    dET_APROBH.ACTIVO          = true;
                    db.Entry(dET_APROBH).State = EntityState.Added;
                    db.SaveChanges();
                    var va = db.DET_APROBH.Where(t => t.SOCIEDAD_ID == dET_APROBH.SOCIEDAD_ID && t.PUESTOC_ID == dET_APROBH.PUESTOC_ID && t.VERSION == (dET_APROBH.VERSION - 1)).SingleOrDefault();
                    va.ACTIVO = false;
                    foreach (var e in va.DET_APROBP)
                    {
                        e.ACTIVO = false;
                    }
                    db.SaveChanges();
                    return(RedirectToAction("MAFlujos", new { id = dET_APROBH.SOCIEDAD_ID, pid = dET_APROBH.PUESTOC_ID, v = dET_APROBH.VERSION }));
                }
                else
                {
                    ModelState.AddModelError("Mensaje", "Incluya al menos una fila a la matriz de aprobación");
                }
            }
            else
            {
            }
            ObtenerConfPage(923, 925);
            var flujos     = db.DET_APROBH.Where(t => t.SOCIEDAD_ID == dET_APROBH.SOCIEDAD_ID && t.ACTIVO).Select(t => t.PUESTOC_ID).Distinct().ToList();
            var lan        = ViewBag.usuario.SPRAS_ID;
            var puestos    = db.PUESTOes.Where(t => t.ACTIVO == true && t.ID != 1 && t.ID != 9 && !flujos.Contains(t.ID)).ToList();
            var sl_puestos = puestos.Select(x => new { x.ID, Puesto = x.PUESTOTs.Count > 0 ? x.PUESTOTs.Where(t => t.SPRAS_ID == lan).FirstOrDefault().TXT50 : "" }).ToList();

            ViewBag.PUESTOC_ID = new SelectList(sl_puestos, "ID", "Puesto");
            ViewBag.NivelesA   = new SelectList(FnCommon.ObtenerCmbNivelesA(), "Value", "Text");
            ViewBag.NivelesP   = new SelectList(FnCommon.ObtenerCmbNivel(), "Value", "Text");
            ViewBag.NivelesM   = new SelectList(FnCommon.ObtenerCmbNivel(), "Value", "Text");
            var sociedad = db.SOCIEDADs.Find(dET_APROBH.SOCIEDAD_ID);

            ViewBag.Miles = db.PAIS.Where(t => t.LAND == sociedad.LAND).SingleOrDefault().MILES;
            ViewBag.PD    = db.PAIS.Where(t => t.LAND == sociedad.LAND).SingleOrDefault().DECIMAL;
            return(View(dET_APROBH));
        }
Example #7
0
        public ActionResult AgregarRol(USUARIO u)
        {
            int    rol  = Int32.Parse(Request.Form["txt_rol"].ToString());
            string soc  = Request.Form["txt_soc"].ToString();
            string pais = Request.Form["txt_pai"].ToString();

            MIEMBRO m = db.MIEMBROS.Where(a => a.USUARIO_ID.Equals(u.ID) & a.ROL_ID == rol).FirstOrDefault();

            if (m == null)
            {
                m            = new MIEMBRO();
                m.ROL_ID     = rol;
                m.USUARIO_ID = u.ID;
                m.ACTIVO     = true;
                db.MIEMBROS.Add(m);
            }

            //List<DET_APROB> dd = db.DET_APROB.Where(a => a.PUESTOC_ID == u.PUESTO_ID & a.BUKRS.Equals(soc)).ToList();
            GAUTORIZACION ga = new GAUTORIZACION();

            ga.LAND   = pais;
            ga.BUKRS  = soc;
            ga.CLAVE  = pais;
            ga.NOMBRE = soc;
            //db.GAUTORIZACIONs.Add(ga);
            USUARIO user = db.USUARIOs.Find(u.ID);

            user.GAUTORIZACIONs.Add(ga);
            db.Entry(user).State = EntityState.Modified;
            db.SaveChanges();

            ////foreach (DET_APROB d in dd)
            ////{
            ////    DET_AGENTE da = new DET_AGENTE();
            ////    da.PUESTOC_ID = (int)u.PUESTO_ID;
            ////    da.USUARIOC = u.ID;
            ////    da.POS = d.POS;
            ////    da.PUESTOA_ID = d.PUESTOA_ID;
            ////    da.USUARIOA = Request.Form["txt_p-" + d.PUESTOA_ID].ToString();
            ////    da.ACTIVO = true;
            ////    da.AGROUP_ID = ga.ID;
            ////    da.MONTO = d.MONTO;
            ////    da.PRESUPUESTO = d.PRESUPUESTO;
            ////    db.DET_AGENTE.Add(da);


            ////    string us = Request.Form["txt_p-" + d.PUESTOA_ID].ToString();
            ////    USUARIO uu = db.USUARIOs.Find(us);
            ////    uu.GAUTORIZACIONs.Add(ga);
            ////    db.Entry(uu).State = EntityState.Modified;

            ////    MIEMBRO mi = db.MIEMBROS.Where(a => a.USUARIO_ID.Equals(uu.ID) & a.ROL_ID == 2).FirstOrDefault();
            ////    if (mi == null)
            ////    {
            ////        mi = new MIEMBRO();
            ////        mi.ROL_ID = 2;
            ////        mi.USUARIO_ID = uu.ID;
            ////        mi.ACTIVO = true;
            ////        db.MIEMBROS.Add(mi);
            ////    }

            ////    db.SaveChanges();
            ////}
            //string rol = Request.Form["txt_p-3"].ToString();

            DET_APROBH dh = db.DET_APROBH.Where(a => a.SOCIEDAD_ID.Equals(soc) & a.PUESTOC_ID == u.PUESTO_ID).OrderByDescending(a => a.VERSION).FirstOrDefault();

            if (dh != null)
            {
                DET_AGENTEH dah = new DET_AGENTEH();
                dah.SOCIEDAD_ID = dh.SOCIEDAD_ID;
                dah.PUESTOC_ID  = (int)u.PUESTO_ID;
                dah.VERSION     = dh.VERSION;
                dah.AGROUP_ID   = (int)ga.ID;
                dah.USUARIOC_ID = u.ID;
                dah.ACTIVO      = true;
                db.DET_AGENTEH.Add(dah);
                db.SaveChanges();

                List <DET_APROBP> ddp = db.DET_APROBP.Where(a => a.SOCIEDAD_ID.Equals(soc) & a.PUESTOC_ID == u.PUESTO_ID & a.VERSION == dh.VERSION).ToList();
                foreach (DET_APROBP dp in ddp)
                {
                    DET_AGENTEP dap = new DET_AGENTEP();
                    dap.SOCIEDAD_ID = dah.SOCIEDAD_ID;
                    dap.PUESTOC_ID  = dah.PUESTOC_ID;
                    dap.VERSION     = dah.VERSION;
                    dap.AGROUP_ID   = dah.AGROUP_ID;
                    dap.POS         = dp.POS;
                    dap.PUESTOA_ID  = dp.PUESTOA_ID;
                    dap.USUARIOA_ID = Request.Form["txt_p-" + dp.PUESTOA_ID].ToString();
                    dap.MONTO       = dp.MONTO;
                    dap.PRESUPUESTO = dp.PRESUPUESTO;
                    dap.ACTIVO      = true;
                    dah.DET_AGENTEP.Add(dap);
                    //dgp.Add(dap);

                    ////string us = dap.USUARIOA_ID;
                    ////USUARIO uu = db.USUARIOs.Find(us);
                    ////uu.GAUTORIZACIONs.Add(ga);
                    ////db.Entry(uu).State = EntityState.Modified;

                    ////MIEMBRO mi = db.MIEMBROS.Where(a => a.USUARIO_ID.Equals(uu.ID) & a.ROL_ID == 2).FirstOrDefault();
                    ////if (mi == null)
                    ////{
                    ////    mi = new MIEMBRO();
                    ////    mi.ROL_ID = 2;
                    ////    mi.USUARIO_ID = uu.ID;
                    ////    mi.ACTIVO = true;
                    ////    db.MIEMBROS.Add(mi);
                    ////}
                }

                TAX_LAND tl = db.TAX_LAND.Where(a => a.SOCIEDAD_ID.Equals(soc) & a.ACTIVO == true).FirstOrDefault();
                if (tl != null)
                {
                    DET_TAXEO dt = new DET_TAXEO();
                    dt.SOCIEDAD_ID = soc;
                    dt.PAIS_ID     = pais;
                    dt.PUESTOC_ID  = dah.PUESTOC_ID;
                    dt.USUARIOC_ID = dah.USUARIOC_ID;
                    dt.VERSION     = dah.VERSION;
                    dt.PUESTOA_ID  = 9;
                    dt.USUARIOA_ID = Request.Form["txt_p-9"].ToString();
                    dt.ACTIVO      = true;
                    db.DET_TAXEO.Add(dt);
                }

                db.SaveChanges();
            }
            return(RedirectToAction("Details", new { id = u.ID }));
        }