public ActionResult Edit(Calendario445ViewModel modelView)
        {
            try
            {
                CALENDARIO_AC calendarioAc = modelView.calendario445;
                USUARIO       user         = ObtenerUsuario();
                DateTime      fechaActual  = DateTime.Now;

                calendarioAc.USUARIOM_ID = user.ID;
                calendarioAc.FECHAM      = fechaActual;

                if (!ValidarFechas(calendarioAc))
                {
                    throw new Exception();
                }

                db.Entry(calendarioAc).State = EntityState.Modified;
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                ObtenerConfPage(532);
                CargarSelectList(ref modelView, new string[] { CMB_SOCIEDADES + "," + modelView.calendario445.SOCIEDAD_ID, CMB_PERIODOS + "," + modelView.calendario445.PERIODO, CMB_TIPOSSOLICITUD + "," + modelView.calendario445.TSOL_ID });
                return(View(modelView));
            }
        }
        bool ValidarFechas(CALENDARIO_AC calendarioAc)
        {
            int pagina_id = 530;

            if (calendarioAc.PRE_FROMF > calendarioAc.PRE_TOF ||
                calendarioAc.CIE_FROMF > calendarioAc.CIE_TOF ||
                calendarioAc.PRE_TOF > calendarioAc.CIE_FROMF)
            {
                ViewBag.mnjError = ObtenerTextoMnj(pagina_id, "lbl_mnjErrorRangoFechas");
                return(false);
            }
            CALENDARIO_AC calendarioAux = db.CALENDARIO_AC.Where(x => x.SOCIEDAD_ID == calendarioAc.SOCIEDAD_ID &&
                                                                 x.EJERCICIO == calendarioAc.EJERCICIO &&
                                                                 x.TSOL_ID == calendarioAc.TSOL_ID &&
                                                                 x.PERIODO != calendarioAc.PERIODO &&
                                                                 ((calendarioAc.PRE_FROMF >= x.PRE_FROMF && calendarioAc.PRE_FROMF <= x.CIE_TOF) ||
                                                                  (calendarioAc.CIE_TOF >= x.PRE_FROMF && calendarioAc.CIE_TOF <= x.CIE_TOF))).FirstOrDefault();

            if (calendarioAux != null)
            {
                ViewBag.mnjError = String.Format(ObtenerTextoMnj(pagina_id, "lbl_mnjTraslapeEnPeriodo"), calendarioAux.PERIODO);
                return(false);
            }
            calendarioAux = db.CALENDARIO_AC.Where(x => x.SOCIEDAD_ID == calendarioAc.SOCIEDAD_ID &&
                                                   x.EJERCICIO == calendarioAc.EJERCICIO &&
                                                   x.TSOL_ID == calendarioAc.TSOL_ID &&
                                                   x.PERIODO <calendarioAc.PERIODO &&
                                                              x.PRE_FROMF> calendarioAc.PRE_FROMF).FirstOrDefault();
            if (calendarioAux != null)
            {
                ViewBag.mnjError = ObtenerTextoMnj(pagina_id, "lbl_mnjMenorAPeriodoAnt");
                return(false);
            }
            return(true);
        }
        public ActionResult Create(Calendario445ViewModel modelView)
        {
            int pagina_id = 531;//ID EN BASE DE DATOS

            try
            {
                CALENDARIO_AC calendarioAc = modelView.calendario445;
                USUARIO       user         = ObtenerUsuario();
                DateTime      fechaActual  = DateTime.Now;

                calendarioAc.EJERCICIO   = short.Parse(fechaActual.Year.ToString());
                calendarioAc.ACTIVO      = true;
                calendarioAc.USUARIOC_ID = user.ID;
                calendarioAc.FECHAC      = fechaActual;

                if (!ValidarPeriodoExistente(calendarioAc) || !ValidarFechas(calendarioAc))
                {
                    throw new Exception();
                }
                db.CALENDARIO_AC.Add(calendarioAc);
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                ObtenerConfPage(pagina_id);
                CargarSelectList(ref modelView, new string[] { CMB_SOCIEDADES, CMB_PERIODOS, CMB_TIPOSSOLICITUD });
                return(View(modelView));
            }
        }
        bool ValidarPeriodoExistente(CALENDARIO_AC calendarioAc)
        {
            int    pagina_id = 530;
            string spras_id  = FnCommon.ObtenerSprasId(db, User.Identity.Name);
            int    noExiste  = 0;

            sociedadesDao.ListaSociedades(TATConstantes.ACCION_LISTA_SOCIEDADES).ForEach(x =>
            {
                tiposSolicitudesDao.ListaTiposSolicitudes(spras_id, null).ForEach(z =>
                {
                    calendarioAc.SOCIEDAD_ID = x.BUKRS;
                    calendarioAc.TSOL_ID     = z.TSOL_ID;
                    if (!db.CALENDARIO_AC.Any(y => y.EJERCICIO == calendarioAc.EJERCICIO && y.PERIODO == calendarioAc.PERIODO &&
                                              y.SOCIEDAD_ID == calendarioAc.SOCIEDAD_ID && y.TSOL_ID == calendarioAc.TSOL_ID))
                    {
                        noExiste++;
                    }
                });
            });
            if (noExiste == 0)
            {
                ViewBag.mnjError = FnCommon.ObtenerTextoMnj(db, pagina_id, "lbl_mnjExistePeriodo", User.Identity.Name);
                return(false);
            }
            return(true);
        }
        public ActionResult Edit(Calendario445ViewModel modelView)
        {
            int pagina_id = 532;//ID EN BASE DE DATOS

            try
            {
                CALENDARIO_AC calendarioAc = modelView.calendario445;
                DateTime      fechaActual  = DateTime.Now;

                calendarioAc.USUARIOM_ID = User.Identity.Name;
                calendarioAc.FECHAM      = fechaActual;

                if (!ValidarFechas(calendarioAc))
                {
                    throw (new Exception());
                }

                db.Entry(calendarioAc).State = EntityState.Modified;
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }
            catch (Exception)
            {
                FnCommon.ObtenerConfPage(db, pagina_id, User.Identity.Name, this.ControllerContext.Controller);
                CargarSelectList(ref modelView, new string[] {
                    CMB_SOCIEDADES + "," + modelView.calendario445.SOCIEDAD_ID,
                    CMB_PERIODOS + "," + modelView.calendario445.PERIODO,
                    CMB_EJERCICIO,
                    CMB_TIPOSSOLICITUD + "," + modelView.calendario445.TSOL_ID
                });
                return(View(modelView));
            }
        }
 public Calendario445ViewModel()
 {
     calendario445    = new CALENDARIO_AC();
     calendarios445   = new List <CALENDARIO_AC>();
     calendarioEx445  = new CALENDARIO_EX();
     calendariosEx445 = new List <CALENDARIO_EX>();
     sociedades       = new List <SelectListItem>();
     periodos         = new List <SelectListItem>();
     tipoSolicitudes  = new List <SelectListItem>();
     usuarios         = new List <SelectListItem>();
 }
示例#7
0
        public static int ObtenerPeriodoCalendario445(TAT001Entities db, string sociedad_id, string tsol_id, string usuario_id = null)
        {
            //tipo
            //PRE = PreCierre
            //CI =  Cierre
            DateTime      fechaActual  = DateTime.Now;
            short         ejercicio    = short.Parse(fechaActual.Year.ToString());
            CALENDARIO_AC calendarioAc = null;
            CALENDARIO_EX calendarioEx = null;

            calendarioAc = db.CALENDARIO_AC.FirstOrDefault(x =>
                                                           x.ACTIVO &&
                                                           x.SOCIEDAD_ID == sociedad_id &&
                                                           x.TSOL_ID == tsol_id &&
                                                           x.EJERCICIO == ejercicio &&
                                                           (fechaActual >= DbFunctions.CreateDateTime(x.PRE_FROMF.Year, x.PRE_FROMF.Month, x.PRE_FROMF.Day, x.PRE_FROMH.Hours, x.PRE_FROMH.Minutes, x.PRE_FROMH.Seconds) &&
                                                            fechaActual <= DbFunctions.CreateDateTime(x.PRE_TOF.Year, x.PRE_TOF.Month, x.PRE_TOF.Day, x.PRE_TOH.Hours, x.PRE_TOH.Minutes, x.PRE_TOH.Seconds)));
            if (calendarioAc != null)
            {
                return(calendarioAc.PERIODO);
            }
            if (usuario_id != null)
            {
                calendarioEx = db.CALENDARIO_EX.FirstOrDefault(x =>
                                                               x.ACTIVO &&
                                                               x.SOCIEDAD_ID == sociedad_id &&
                                                               x.TSOL_ID == tsol_id &&
                                                               x.USUARIO_ID == usuario_id &&
                                                               x.EJERCICIO == ejercicio &&
                                                               (fechaActual >= DbFunctions.CreateDateTime(x.EX_FROMF.Year, x.EX_FROMF.Month, x.EX_FROMF.Day, x.EX_FROMH.Hours, x.EX_FROMH.Minutes, x.EX_FROMH.Seconds) &&
                                                                fechaActual <= DbFunctions.CreateDateTime(x.EX_TOF.Year, x.EX_TOF.Month, x.EX_TOF.Day, x.EX_TOH.Hours, x.EX_TOH.Minutes, x.EX_TOH.Seconds)));
                if (calendarioEx != null)
                {
                    return(calendarioEx.PERIODO);
                }
            }

            calendarioAc = db.CALENDARIO_AC.FirstOrDefault(x =>
                                                           x.ACTIVO &&
                                                           x.SOCIEDAD_ID == sociedad_id &&
                                                           x.TSOL_ID == tsol_id &&
                                                           x.EJERCICIO == ejercicio &&
                                                           (fechaActual >= DbFunctions.CreateDateTime(x.CIE_FROMF.Year, x.CIE_FROMF.Month, x.CIE_FROMF.Day, x.CIE_FROMH.Hours, x.CIE_FROMH.Minutes, x.CIE_FROMH.Seconds) &&
                                                            fechaActual <= DbFunctions.CreateDateTime(x.CIE_TOF.Year, x.CIE_TOF.Month, x.CIE_TOF.Day, x.CIE_TOH.Hours, x.CIE_TOH.Minutes, x.CIE_TOH.Seconds)));
            if (calendarioAc != null)
            {
                return(calendarioAc.PERIODO);
            }

            return(0);
        }
        bool ValidarPeriodoExistente(CALENDARIO_AC calendarioAc)
        {
            int pagina_id = 530;

            if (db.CALENDARIO_AC.Any(x => x.SOCIEDAD_ID == calendarioAc.SOCIEDAD_ID &&
                                     x.PERIODO == calendarioAc.PERIODO &&
                                     x.EJERCICIO == calendarioAc.EJERCICIO &&
                                     x.TSOL_ID == calendarioAc.TSOL_ID))
            {
                ViewBag.mnjError = ObtenerTextoMnj(pagina_id, "lbl_mnjExistePeriodo");
                return(false);
            }
            return(true);
        }
示例#9
0
        public Calendario445ViewModel()
        {
            calendario445     = new CALENDARIO_AC();
            calendarioEx445   = new CALENDARIO_EX();
            ejercicio         = new List <SelectListItem>();
            sociedades        = new List <SelectListItem>();
            periodos          = new List <SelectListItem>();
            cmbTiposSolicitud = new List <SelectListItem>();
            usuarios          = new List <SelectListItem>();

            treeTiposSolicitud = new List <SelectTreeItem>();

            pageSizes = new List <SelectListItem>();
        }
        bool ValidarFechas(CALENDARIO_AC calendarioAc)
        {
            int pagina_id = 530;

            DateTime?fechaIPre = new DateTime(calendarioAc.PRE_FROMF.Year, calendarioAc.PRE_FROMF.Month, calendarioAc.PRE_FROMF.Day, calendarioAc.PRE_FROMH.Hours, calendarioAc.PRE_FROMH.Minutes, calendarioAc.PRE_FROMH.Seconds);
            DateTime?fechaFPre = new DateTime(calendarioAc.PRE_TOF.Year, calendarioAc.PRE_TOF.Month, calendarioAc.PRE_TOF.Day, calendarioAc.PRE_TOH.Hours, calendarioAc.PRE_TOH.Minutes, calendarioAc.PRE_TOH.Seconds);

            DateTime?fechaICi = new DateTime(calendarioAc.CIE_FROMF.Year, calendarioAc.CIE_FROMF.Month, calendarioAc.CIE_FROMF.Day, calendarioAc.CIE_FROMH.Hours, calendarioAc.CIE_FROMH.Minutes, calendarioAc.CIE_FROMH.Seconds);
            DateTime?fechaFCi = new DateTime(calendarioAc.CIE_TOF.Year, calendarioAc.CIE_TOF.Month, calendarioAc.CIE_TOF.Day, calendarioAc.CIE_TOH.Hours, calendarioAc.CIE_TOH.Minutes, calendarioAc.CIE_TOH.Seconds);

            if (fechaIPre > fechaFPre ||
                fechaICi > fechaFCi ||
                fechaFPre > fechaICi)
            {
                ViewBag.mnjError = FnCommon.ObtenerTextoMnj(db, pagina_id, "lbl_mnjErrorRangoFechas", User.Identity.Name);
                return(false);
            }

            CALENDARIO_AC calendarioAux = db.CALENDARIO_AC.Where(x => x.SOCIEDAD_ID == calendarioAc.SOCIEDAD_ID &&
                                                                 x.EJERCICIO == calendarioAc.EJERCICIO &&
                                                                 x.TSOL_ID == calendarioAc.TSOL_ID &&
                                                                 x.PERIODO != calendarioAc.PERIODO &&
                                                                 ((fechaIPre >= DbFunctions.CreateDateTime(x.PRE_FROMF.Year, x.PRE_FROMF.Month, x.PRE_FROMF.Day, x.PRE_FROMH.Hours, x.PRE_FROMH.Minutes, x.PRE_FROMH.Seconds) && fechaIPre <= DbFunctions.CreateDateTime(x.CIE_TOF.Year, x.CIE_TOF.Month, x.CIE_TOF.Day, x.CIE_TOH.Hours, x.CIE_TOH.Minutes, x.CIE_TOH.Seconds)) ||
                                                                  (fechaFCi >= DbFunctions.CreateDateTime(x.PRE_FROMF.Year, x.PRE_FROMF.Month, x.PRE_FROMF.Day, x.PRE_FROMH.Hours, x.PRE_FROMH.Minutes, x.PRE_FROMH.Seconds) && fechaFCi <= DbFunctions.CreateDateTime(x.CIE_TOF.Year, x.CIE_TOF.Month, x.CIE_TOF.Day, x.CIE_TOH.Hours, x.CIE_TOH.Minutes, x.CIE_TOH.Seconds)))).FirstOrDefault();

            if (calendarioAux != null)
            {
                ViewBag.mnjError = String.Format(FnCommon.ObtenerTextoMnj(db, pagina_id, "lbl_mnjTraslapeEnPeriodo", User.Identity.Name), calendarioAux.PERIODO);
                return(false);
            }
            calendarioAux = db.CALENDARIO_AC.Where(x => x.SOCIEDAD_ID == calendarioAc.SOCIEDAD_ID &&
                                                   x.EJERCICIO == calendarioAc.EJERCICIO &&
                                                   x.TSOL_ID == calendarioAc.TSOL_ID &&
                                                   x.PERIODO <calendarioAc.PERIODO &&
                                                              x.PRE_FROMF> calendarioAc.PRE_FROMF).FirstOrDefault();
            if (calendarioAux != null)
            {
                ViewBag.mnjError = FnCommon.ObtenerTextoMnj(db, pagina_id, "lbl_mnjMenorAPeriodoAnt", User.Identity.Name);
                return(false);
            }
            return(true);
        }
        public ActionResult Create(Calendario445ViewModel modelView)
        {
            int pagina_id = 531;//ID EN BASE DE DATOS

            try
            {
                CALENDARIO_AC calendarioAc = modelView.calendario445;
                calendarioAc.ACTIVO      = true;
                calendarioAc.USUARIOC_ID = User.Identity.Name;
                calendarioAc.FECHAC      = DateTime.Now;

                if (!ValidarPeriodoExistente(calendarioAc) || !ValidarFechas(calendarioAc))
                {
                    throw (new Exception());
                }

                string spras_id = FnCommon.ObtenerSprasId(db, User.Identity.Name);
                sociedadesDao.ListaSociedades(TATConstantes.ACCION_LISTA_SOCIEDADES).ForEach(x =>
                {
                    tiposSolicitudesDao.ListaTiposSolicitudes(spras_id, null).ForEach(z =>
                    {
                        calendarioAc.SOCIEDAD_ID = x.BUKRS;
                        calendarioAc.TSOL_ID     = z.TSOL_ID;
                        if (!db.CALENDARIO_AC.Any(y =>
                                                  y.EJERCICIO == calendarioAc.EJERCICIO &&
                                                  y.PERIODO == calendarioAc.PERIODO &&
                                                  y.SOCIEDAD_ID == calendarioAc.SOCIEDAD_ID &&
                                                  y.TSOL_ID == calendarioAc.TSOL_ID))
                        {
                            db.CALENDARIO_AC.Add(new CALENDARIO_AC
                            {
                                EJERCICIO   = calendarioAc.EJERCICIO,
                                PERIODO     = calendarioAc.PERIODO,
                                SOCIEDAD_ID = calendarioAc.SOCIEDAD_ID,
                                TSOL_ID     = calendarioAc.TSOL_ID,
                                PRE_FROMF   = calendarioAc.PRE_FROMF,
                                PRE_FROMH   = calendarioAc.PRE_FROMH,
                                PRE_TOF     = calendarioAc.PRE_TOF,
                                PRE_TOH     = calendarioAc.PRE_TOH,
                                CIE_FROMF   = calendarioAc.CIE_FROMF,
                                CIE_FROMH   = calendarioAc.CIE_FROMH,
                                CIE_TOF     = calendarioAc.CIE_TOF,
                                CIE_TOH     = calendarioAc.CIE_TOH,
                                USUARIOC_ID = calendarioAc.USUARIOC_ID,
                                FECHAC      = calendarioAc.FECHAC,
                                USUARIOM_ID = calendarioAc.USUARIOM_ID,
                                FECHAM      = calendarioAc.FECHAM,
                                ACTIVO      = calendarioAc.ACTIVO
                            });
                            db.SaveChanges();
                        }
                    });
                });



                return(RedirectToAction("Index"));
            }
            catch (Exception)
            {
                FnCommon.ObtenerConfPage(db, pagina_id, User.Identity.Name, this.ControllerContext.Controller);
                CargarSelectList(ref modelView, new string[] { CMB_PERIODOS, CMB_EJERCICIO });
                return(View(modelView));
            }
        }