예제 #1
0
        public ActionResult Create([Bind(Include = "ID,TITULO,FINICIO,FRECUENCIA,FRECUENCIA_N,DIA_SEMANA,DIA_MES,ORDINAL_MES,ORDINAL_DSEMANA")] NEGOCIACION2 nEGOCIACION, FormCollection col)
        {
            int     pagina = 903; //ID EN BASE DE DATOS
            string  u      = User.Identity.Name;
            USUARIO user   = db.USUARIOs.Where(a => a.ID.Equals(u)).FirstOrDefault();

            FnCommon.ObtenerConfPage(db, pagina, u, this.ControllerContext.Controller, 901);
            ViewBag.mensajes = JsonConvert.SerializeObject(db.MENSAJES.Where(a => (a.PAGINA_ID.Equals(901) || a.PAGINA_ID.Equals(0)) && a.SPRAS.Equals(user.SPRAS_ID)).ToList(), Formatting.Indented);
            try
            {
                string p = Session["pais"].ToString();
                ViewBag.pais = p + ".svg";
            }
            catch
            {
            }
            ViewBag.lan = user.SPRAS_ID;
            if (ModelState.IsValid)
            {
                NEGOCIACION2 nego         = new NEGOCIACION2();
                var          proximaFecha = FnCommon.obtenerProximaFecha(nEGOCIACION, col["group1"]);
                nego.FRECUENCIA_N = nEGOCIACION.FRECUENCIA_N;
                nego.TITULO       = nEGOCIACION.TITULO;
                nego.FRECUENCIA   = nEGOCIACION.FRECUENCIA;
                nego.FINICIO      = nEGOCIACION.FINICIO;
                if (nego.FRECUENCIA == "S")
                {
                    nego.DIA_SEMANA = nEGOCIACION.DIA_SEMANA;
                }
                else if (nego.FRECUENCIA == "M")
                {
                    if (col["group1"] == "1")
                    {
                        nego.DIA_MES = nEGOCIACION.DIA_MES;
                    }
                    else
                    {
                        nego.ORDINAL_DSEMANA = nEGOCIACION.ORDINAL_DSEMANA;
                        nego.ORDINAL_MES     = nEGOCIACION.ORDINAL_MES;
                    }
                }
                db.NEGOCIACION2.Add(nego);
                db.SaveChanges();
                try
                {
                    return(RedirectToAction("Index"));
                }
                catch (Exception e)
                {
                    return(View("Error"));
                }
            }
            else
            {
                ViewBag.FRECUENCIA      = new SelectList(FnCommon.ObtenerCmbFrecuencia(user.SPRAS_ID), "Value", "Text");
                ViewBag.ORDINAL_DSEMANA = new SelectList(FnCommon.ObtenerCmbDias(user.SPRAS_ID), "Value", "Text");
                ViewBag.ORDINAL_MES     = new SelectList(FnCommon.ObtenerCmbOrdinales(user.SPRAS_ID), "Value", "Text");
                return(View(nEGOCIACION));
            }
        }
예제 #2
0
        // GET: Negs/Edit/5
        public ActionResult Edit(int id)
        {
            int     pagina = 902; //ID EN BASE DE DATOS
            string  u      = User.Identity.Name;
            USUARIO user   = db.USUARIOs.Where(a => a.ID.Equals(u)).FirstOrDefault();

            FnCommon.ObtenerConfPage(db, pagina, u, this.ControllerContext.Controller, 901);
            ViewBag.mensajes = JsonConvert.SerializeObject(db.MENSAJES.Where(a => (a.PAGINA_ID.Equals(901) || a.PAGINA_ID.Equals(0)) && a.SPRAS.Equals(user.SPRAS_ID)).ToList(), Formatting.Indented);
            try
            {
                string p = Session["pais"].ToString();
                ViewBag.pais = p + ".svg";
            }
            catch
            {
            }
            Session["spras"] = user.SPRAS_ID;
            ViewBag.lan      = user.SPRAS_ID;
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            NEGOCIACION2 nEGOCIACION = db.NEGOCIACION2.Where(x => x.ID == id).FirstOrDefault();

            if (nEGOCIACION == null)
            {
                return(HttpNotFound());
            }
            ViewBag.FRECUENCIA      = new SelectList(FnCommon.ObtenerCmbFrecuencia(user.SPRAS_ID), "Value", "Text", nEGOCIACION.FRECUENCIA);
            ViewBag.ORDINAL_DSEMANA = new SelectList(FnCommon.ObtenerCmbDias(user.SPRAS_ID), "Value", "Text", nEGOCIACION.ORDINAL_DSEMANA);
            ViewBag.ORDINAL_MES     = new SelectList(FnCommon.ObtenerCmbOrdinales(user.SPRAS_ID), "Value", "Text", nEGOCIACION.ORDINAL_MES);
            return(View(nEGOCIACION));
        }
예제 #3
0
        public static DateTime obtenerProximaFecha(NEGOCIACION2 modelo, string tipomes)
        {
            DateTime proximafecha = modelo.FINICIO;

            if (modelo.FRECUENCIA == "S")
            {
                var diasemana = getDiaNombre(modelo.DIA_SEMANA);
                if (modelo.FINICIO.DayOfWeek.ToString() == diasemana)
                {
                    return(modelo.FINICIO);
                }
                else
                {
                    var dia_semana = getDiaNum(getDiaNombre(modelo.DIA_SEMANA));
                    var dia_inicio = getDiaNum(modelo.FINICIO.DayOfWeek.ToString());
                    if (dia_inicio == 7)
                    {
                        if (dia_semana == 6)
                        {
                            proximafecha = proximafecha.AddDays(6);
                        }
                        else if (dia_semana == 5)
                        {
                            proximafecha = proximafecha.AddDays(5);
                        }
                        else if (dia_semana == 4)
                        {
                            proximafecha = proximafecha.AddDays(4);
                        }
                        else if (dia_semana == 3)
                        {
                            proximafecha = proximafecha.AddDays(3);
                        }
                        else if (dia_semana == 2)
                        {
                            proximafecha = proximafecha.AddDays(2);
                        }
                        else if (dia_semana == 1)
                        {
                            proximafecha = proximafecha.AddDays(1);
                        }
                    }
                    if (dia_inicio == 6)
                    {
                        if (dia_semana > dia_inicio)
                        {
                            proximafecha = proximafecha.AddDays((dia_semana - dia_inicio));
                        }
                        else if (dia_semana == 5)
                        {
                            proximafecha = proximafecha.AddDays(6);
                        }
                        else if (dia_semana == 4)
                        {
                            proximafecha = proximafecha.AddDays(5);
                        }
                        else if (dia_semana == 3)
                        {
                            proximafecha = proximafecha.AddDays(4);
                        }
                        else if (dia_semana == 2)
                        {
                            proximafecha = proximafecha.AddDays(3);
                        }
                        else if (dia_semana == 1)
                        {
                            proximafecha = proximafecha.AddDays(2);
                        }
                    }
                    if (dia_inicio == 5)
                    {
                        if (dia_semana > dia_inicio)
                        {
                            proximafecha = proximafecha.AddDays((dia_semana - dia_inicio));
                        }
                        else if (dia_semana == 4)
                        {
                            proximafecha = proximafecha.AddDays(6);
                        }
                        else if (dia_semana == 3)
                        {
                            proximafecha = proximafecha.AddDays(5);
                        }
                        else if (dia_semana == 2)
                        {
                            proximafecha = proximafecha.AddDays(4);
                        }
                        else if (dia_semana == 1)
                        {
                            proximafecha = proximafecha.AddDays(3);
                        }
                    }
                    if (dia_inicio == 4)
                    {
                        if (dia_semana > dia_inicio)
                        {
                            proximafecha = proximafecha.AddDays((dia_semana - dia_inicio));
                        }
                        else if (dia_semana == 3)
                        {
                            proximafecha = proximafecha.AddDays(6);
                        }
                        else if (dia_semana == 2)
                        {
                            proximafecha = proximafecha.AddDays(5);
                        }
                        else if (dia_semana == 1)
                        {
                            proximafecha = proximafecha.AddDays(dia_inicio);
                        }
                    }
                    if (dia_inicio == 3)
                    {
                        if (dia_semana > dia_inicio)
                        {
                            proximafecha = proximafecha.AddDays((dia_semana - dia_inicio));
                        }
                        else if (dia_semana == 2)
                        {
                            proximafecha = proximafecha.AddDays(6);
                        }
                        else if (dia_semana == 1)
                        {
                            proximafecha = proximafecha.AddDays(5);
                        }
                    }
                    if (dia_inicio == 2)
                    {
                        if (dia_semana > dia_inicio)
                        {
                            proximafecha = proximafecha.AddDays((dia_semana - dia_inicio));
                        }
                        else if (dia_semana == 1)
                        {
                            proximafecha = proximafecha.AddDays(6);
                        }
                    }
                    if (dia_inicio == 1)
                    {
                        proximafecha = proximafecha.AddDays((dia_semana - dia_inicio));
                    }
                }
            }
            else
            {
                if (tipomes == "1")
                {
                    if ((int)modelo.FINICIO.Day <= modelo.DIA_MES)
                    {
                        proximafecha = new DateTime(modelo.FINICIO.Year, modelo.FINICIO.Month, (int)modelo.DIA_MES);
                    }
                    else
                    {
                        proximafecha = new DateTime(modelo.FINICIO.Year, modelo.FINICIO.Month, (int)modelo.DIA_MES).AddMonths(modelo.FRECUENCIA_N);
                    }
                }
                else
                {
                    var dia     = getDiaNombre(modelo.ORDINAL_DSEMANA);
                    var ordinal = modelo.ORDINAL_MES;
                    var diasmes = DateTime.DaysInMonth(modelo.FINICIO.Year, modelo.FINICIO.Month);
                    for (int i = 1; i <= diasmes; i++)
                    {
                        var fecha = new DateTime(modelo.FINICIO.Year, modelo.FINICIO.Month, i);
                        if (fecha.DayOfWeek.ToString() == dia)
                        {
                            var mes = fecha.Month;
                            fecha = fecha.AddDays((7 * (int)(modelo.ORDINAL_MES - 1)));
                            var mes2 = fecha.Month;
                            if (mes != mes2)
                            {
                                fecha = fecha.AddDays(-7);
                            }
                            if (modelo.FINICIO < fecha)
                            {
                                return(fecha);
                            }
                            var fecha2   = new DateTime(modelo.FINICIO.Year, modelo.FINICIO.Month, 1).AddMonths(1);
                            var diasmes2 = DateTime.DaysInMonth(fecha2.Year, fecha2.Month);
                            for (int j = 1; j <= diasmes2; j++)
                            {
                                var fechatemp = new DateTime(fecha2.Year, fecha2.Month, j);
                                if (fechatemp.DayOfWeek.ToString() == dia)
                                {
                                    fechatemp = fechatemp.AddDays((7 * (int)(modelo.ORDINAL_MES - 1)));
                                    return(fechatemp);
                                }
                            }
                        }
                    }
                }
            }
            return(proximafecha);
        }