예제 #1
0
        protected void BtnGuardar_OnClick(object sender, EventArgs e)
        {
            ValidarDatosVigencia();

            using (var transaction = SmartTransaction.BeginTransaction())
            {
                if (EditObject.Id == 0)
                {
                    GuardarNuevaLinea();
                }

                var nuevaVigencia = new VigenciaPlanLinea
                {
                    Inicio          = SecurityExtensions.ToDataBaseDateTime(dtDesde.SelectedDate.Value),
                    LineaTelefonica = EditObject,
                    Plan            = cbPlan.Selected > 0 ? DAOFactory.PlanDAO.FindById(cbPlan.Selected) : null
                };

                ValidarCondicionesVigencia(nuevaVigencia);

                EditObject.Vigencias.Add(nuevaVigencia);

                DAOFactory.LineaTelefonicaDAO.SaveOrUpdate(EditObject);

                transaction.Commit();
            }
            Response.Redirect(RedirectUrl);
        }
예제 #2
0
        private void ValidarCondicionesVigencia(VigenciaPlanLinea nuevaVigencia)
        {
            if (dtHasta.SelectedDate.HasValue) // SI SE DEFINE UNA FECHA FIN
            {
                nuevaVigencia.Fin = SecurityExtensions.ToDataBaseDateTime(dtHasta.SelectedDate.Value);

                // LA FECHA DE FIN NO TIENE QUE ESTAR CONTENIDA EN NINGUNA VIGENCIA EXISTENTE
                var vigenteFin = EditObject.Vigencias.Cast <VigenciaPlanLinea>()
                                 .Where(v => nuevaVigencia.Fin > v.Inicio &&
                                        nuevaVigencia.Fin < v.Fin);
                if (vigenteFin.Count() > 0)
                {
                    DisplayError(string.Format(CultureManager.GetError("INVALID_VALUE"), CultureManager.GetLabel("VIGENCIA_HASTA")));
                    return;
                }
            }
            else // SI NO SE DEFINE UNA FECHA FIN
            {
                // NO PUEDE EXISTIR UNA VIGENCIA POSTERIOR A LA FECHA INICIO
                var vigenciasPosteriores = EditObject.Vigencias.Cast <VigenciaPlanLinea>().Where(v => v.Inicio > nuevaVigencia.Inicio);
                if (vigenciasPosteriores.Count() > 0)
                {
                    DisplayError(string.Format(CultureManager.GetError("INVALID_VALUE"), CultureManager.GetLabel("VIGENCIA_DESDE")));
                    return;
                }
            }

            // LA FECHA DE INICIO NO TIENE QUE ESTAR CONTENIDA EN NINGUNA VIGENCIA EXISTENTE
            var vigenteInicio = EditObject.Vigencias.Cast <VigenciaPlanLinea>()
                                .Where(v => nuevaVigencia.Inicio > v.Inicio &&
                                       nuevaVigencia.Inicio < v.Fin);

            if (vigenteInicio.Count() > 0)
            {
                DisplayError(string.Format(CultureManager.GetError("INVALID_VALUE"), CultureManager.GetLabel("VIGENCIA_DESDE")));
                return;
            }

            // SI HAY ALGUNA VIGENCIA SIN FECHA DE FIN
            // Y CON FECHA DE INICIO MENOR A LA FECHA DE INICIO DE LA NUEVA VIGENCIA
            // => SE ASIGNA SU FECHA DE FIN COMO LA FECHA DE INICIO DE LA NUEVA VIGENCIA
            var vigenteActual = EditObject.Vigencias.Cast <VigenciaPlanLinea>()
                                .Where(v => v.Inicio < nuevaVigencia.Inicio &&
                                       v.Fin == null);

            if (vigenteActual.Count() > 0 && vigenteActual.First() != null && vigenteActual.First().Fin == null && vigenteActual.First().Inicio < nuevaVigencia.Inicio)
            {
                vigenteActual.First().Fin = nuevaVigencia.Inicio;
            }
        }
예제 #3
0
        public VigenciaPlanLineaVo(VigenciaPlanLinea vigenciaPlanLinea)
        {
            Id     = vigenciaPlanLinea.Id;
            Inicio = vigenciaPlanLinea.Inicio.ToDisplayDateTime().ToString("dd/MM/yyyy");
            Fin    = vigenciaPlanLinea.Fin != null?vigenciaPlanLinea.Fin.Value.ToDisplayDateTime().ToString("dd/MM/yyyy") : "";

            Plan = vigenciaPlanLinea.Plan.CodigoAbono;
            switch (vigenciaPlanLinea.Plan.Empresa)
            {
            case 1: Empresa = "Claro"; break;

            case 2: Empresa = "Movistar"; break;

            case 3: Empresa = "Personal"; break;

            case 4: Empresa = "Orbcom"; break;

            default: Empresa = ""; break;
            }
        }