internal static string ComponerUrl(TipoDtoElmento elemento)
        {
            var url     = ExtensionesDto.UrlParaMostrarUnDto(elemento.ClaseDto());
            var refHtml = $@"<a href='{CacheDeVariable.Cfg_UrlBase}{url}?id={elemento.IdElemento}' target='_blank' idelemento='2041'>{elemento.Referencia}</a>";

            return(refHtml);
        }
        private void DefinirDescriptorDeAuditoria()
        {
            if (ExtensionesDto.ImplementaAuditoria(typeof(TElemento)))
            {
                var expanDeAuditoria = new DescriptorDeExpansor(Editor, $"{Editor.Id}-audt", "Auditoría", "Información de auditoría");

                var fechaCreacion     = new EditorDeFecha(expanDeAuditoria, "Creado el", nameof(IAuditadoDto.CreadoEl), "fecha de cuando se creó el elemento");
                var fechaModificacion = new EditorDeFecha(expanDeAuditoria, "Modificado el", nameof(IAuditadoDto.ModificadoEl), "fecha de cuando se modificó por última vez");
                fechaCreacion.Editable     = false;
                fechaModificacion.Editable = false;

                var creador          = new EditorDeTexto(expanDeAuditoria, "Creado por", nameof(IAuditadoDto.Creador), "Quién lo creó");
                var modificador      = new EditorDeTexto(expanDeAuditoria, "Modificado por", nameof(IAuditadoDto.Modificador), "Quién lo modificó");
                var mostrarHistorico = new NavegarDesdeEdicion(expanDeAuditoria, "Ver auditoría", "Histórico de modificaciones del registro", $"/Auditoria/CrudDeAuditoria/?origen=edicion&negocio={RenderNegocio}");
                creador.Editable     = false;
                modificador.Editable = false;

                Editor.Expanes.Add(expanDeAuditoria);
                expanDeAuditoria.Controles.Add(fechaCreacion);
                expanDeAuditoria.Controles.Add(fechaModificacion);
                expanDeAuditoria.Controles.Add(creador);
                expanDeAuditoria.Controles.Add(new DivEnBlanco(expanDeAuditoria));
                expanDeAuditoria.Controles.Add(modificador);
                expanDeAuditoria.Controles.Add(new DivEnBlanco(expanDeAuditoria));
                expanDeAuditoria.Controles.Add(mostrarHistorico);
            }
        }
 public static bool PermiteElEnvioDeCorreo <T>() where T : ElementoDto
 {
     try
     {
         ExtensionesDto.UrlParaMostrarUnDto(typeof(T));
     }
     catch
     {
         return(false);
     }
     return(true);
 }
예제 #4
0
        internal static Type TipoDto(this enumNegocio negocio)
        {
            var negocioDto = LeerNegocioPorEnumerado(negocio);

            if (negocioDto.ElementoDto.IsNullOrEmpty())
            {
                throw new Exception($"El negocio {negocio} no tiene definido el tipo Dto");
            }

            var tipoDto = ExtensionesDto.ObtenerTypoDto(negocioDto.ElementoDto);

            return(tipoDto);
        }
예제 #5
0
        public static string UrlParaMostrarUnNegocio(enumNegocio negocio)
        {
            var negocioDto  = LeerNegocioPorEnumerado(negocio);
            var elementoDto = negocioDto.ElementoDto;

            if (elementoDto.IsNullOrEmpty())
            {
                GestorDeErrores.Emitir($"No se ha definido el elementoDto para el negocio {negocioDto.Nombre}");
            }

            var tipoDto = ExtensionesDto.ObtenerTypoDto(elementoDto);

            return(ExtensionesDto.UrlParaMostrarUnDto(tipoDto));
        }
예제 #6
0
        protected override void AntesDePersistir(VistaMvcDtm registro, ParametrosDeNegocio parametros)
        {
            base.AntesDePersistir(registro, parametros);

            if (!registro.ElementoDto.IsNullOrEmpty())
            {
                ExtensionesDto.ObtenerTypoDto(registro.ElementoDto);
            }

            if (parametros.Operacion == enumTipoOperacion.Insertar)
            {
                var permiso = GestorDePermisos.CrearObtener(Contexto, Mapeador, registro.Nombre, enumClaseDePermiso.Vista);
                registro.IdPermiso = permiso.Id;
            }
            if (parametros.Operacion == enumTipoOperacion.Modificar)
            {
                registro.IdPermiso = ((VistaMvcDtm)parametros.registroEnBd).IdPermiso;
            }
        }
예제 #7
0
        public ZonaDeFiltro(DescriptorDeMantenimiento <TElemento> mnt)
            : base(
                padre: mnt,
                id: $"{mnt.Id}_Filtro",
                etiqueta: null,
                propiedad: null,
                ayuda: null,
                posicion: null
                )
        {
            Tipo = enumTipoControl.ZonaDeFiltro;
            var b1 = new BloqueDeFitro <TElemento>(this, ltrBloques.General, new Dimension(1, 2));
            var b2 = new BloqueDeFitro <TElemento>(this, ltrBloques.Comun, new Dimension(2, 2));

            b1.Plegado     = true;
            FiltroDeNombre = new EditorFiltro <TElemento>(bloque: b1, etiqueta: nameof(INombre.Nombre), propiedad: ltrFiltros.Nombre, ayuda: "buscar por nombre", new Posicion {
                fila = 0, columna = 0
            });

            if (ExtensionesDto.ImplementaAuditoria(typeof(TElemento)))
            {
                var modalCreador = new DescriptorDeUsuario(mnt.Crud.Contexto, ModoDescriptor.SeleccionarParaFiltrar, "modal_creador");
                new SelectorDeFiltro <TElemento, UsuarioDto>(padre: b2,
                                                             etiqueta: "Creador",
                                                             filtrarPor: nameof(ElementoDtm.IdUsuaCrea),
                                                             ayuda: "Usuario creador",
                                                             posicion: new Posicion()
                {
                    fila = 1, columna = 0
                },
                                                             paraFiltrar: nameof(UsuarioDto.Id),
                                                             paraMostrar: nameof(UsuarioDto.NombreCompleto),
                                                             crudModal: modalCreador,
                                                             propiedadDondeMapear: UsuariosPor.NombreCompleto.ToString());

                new FiltroEntreFechas <TElemento>(bloque: b2,
                                                  etiqueta: "Creado entre",
                                                  propiedad: nameof(ElementoDtm.FechaCreacion),
                                                  ayuda: "filtrar por rango de fechas",
                                                  posicion: new Posicion()
                {
                    fila = 1, columna = 1
                });

                var modalModificador = new DescriptorDeUsuario(mnt.Crud.Contexto, ModoDescriptor.SeleccionarParaFiltrar, "modal_modificador");
                new SelectorDeFiltro <TElemento, UsuarioDto>(padre: b2,
                                                             etiqueta: "Modificador",
                                                             filtrarPor: nameof(ElementoDtm.IdUsuaModi),
                                                             ayuda: "Usuario modificador",
                                                             posicion: new Posicion()
                {
                    fila = 2, columna = 0
                },
                                                             paraFiltrar: nameof(UsuarioDto.Id),
                                                             paraMostrar: nameof(UsuarioDto.NombreCompleto),
                                                             crudModal: modalModificador,
                                                             propiedadDondeMapear: UsuariosPor.NombreCompleto.ToString());

                new FiltroEntreFechas <TElemento>(bloque: b2,
                                                  etiqueta: "Modificado entre",
                                                  propiedad: nameof(ElementoDtm.FechaModificacion),
                                                  ayuda: "filtrar por rango de fechas",
                                                  posicion: new Posicion()
                {
                    fila = 2, columna = 1
                });

                var idAudtCreacion = $"{b2.Id}_{enumTipoControl.Check.Render()}_auditoria-de-creacion";
                var accionCreacion = $"onclick = javascript:Crud.{GestorDeEventos.EventosDelMantenimiento}('{TipoDeAccionDeMnt.OcultarMostrarColumnas}','{nameof(IAuditadoDto.CreadoEl)}#{nameof(IAuditadoDto.Creador)}');";
                new CheckDeAccionFlt <TElemento>(bloque: b2,
                                                 id: idAudtCreacion,
                                                 etiqueta: "Auditoría de creación",
                                                 ayuda: "muestra la fecha y usuario de creación",
                                                 valorInicial: false,
                                                 posicion: new Posicion(3, 0),
                                                 accion: accionCreacion);

                var idAudtModificacion = $"{b2.Id}_{enumTipoControl.Check.Render()}_auditoria-de-modificacion";
                var accionModificacion = $"onclick = javascript:Crud.{GestorDeEventos.EventosDelMantenimiento}('{TipoDeAccionDeMnt.OcultarMostrarColumnas}','{nameof(IAuditadoDto.ModificadoEl)}#{nameof(IAuditadoDto.Modificador)}');";
                new CheckDeAccionFlt <TElemento>(bloque: b2,
                                                 id: idAudtModificacion,
                                                 etiqueta: "Auditoría de modificación",
                                                 ayuda: "muestra la última fecha y usuario de modificación",
                                                 valorInicial: false,
                                                 posicion: new Posicion(3, 1),
                                                 accion: accionModificacion);
            }
        }