ERP - Seguridad por Serie y Delegación en la visualización de documentos de gestión

Creado por David Miralpeix, Modificado el Fri, 16 Feb 2024 a las 12:30 PM por David Miralpeix

Supongamos que tenemos dos empresas A y B, cada una con una delegación A1 y B1.

Hay tres empleados, uno en la empresa A que solo tiene acceso a la misma y los otros dos a la empresa B. Uno de esto último tiene acceso a la empresa B y el otro a ambas, según la siguiente configuración:

Empleado

Empresa A

Empresa B

Luís

Accede a A1

Accede a B1

Pepe

Accede a A1

 

María

 

Accede a B1




Las dos empresas utilizan series distintas:


Serie

Id.Delegación

Delegación

Descripción

0

0

A1

N – Normal

1

0

A1

R – Rectificativa

2

0

A1

RI – Recuperación de IVA

3

0

B1

N2 - Normal

 

Vamos a configurar las vistas que se utilizan en las colecciones de documentos, para que tengan en cuenta la serie y solo muestren los documentos de series pertenecientes a la delegación a la que tiene acceso el usuario.

Por ejemplo, colección de facturas de cliente/deudor:

En el Admon, podemos ver que se utiliza la vista VDLG_Facturas_Cli_Cab_Col, la cual podemos ver a continuación.



CREATE  VIEW [dbo].[VDLG_Facturas_Cli_Cab_Col]

----- Modificada en erp/estandar#13012, para añadir los anticipos con facturas

AS

SELECT 

       Fcc.*, 

       F.SubTotalEuros as Total,

       F.TotalEuros as TotalIVA,

       F.BaseAnticiposConFactura,

       F.TotalAnticiposConFactura

FROM 

       VDLG_Facturas_Cli_Cab Fcc

       LEFT JOIN vFacturas_Cli_Total_Anticipos  F ON Fcc.IdFactura =F.IdFactura


Para añadir la seguridad por serie de delegación, crearemos una vista personalizada y basada en la anterior.


CREATE VIEW [dbo].[Vpers_VDLG_Facturas_Cli_Cab_Col]

----- Creada para añadir seguridad por serie y delegaciones a las que tiene acceso el usuario

AS

SELECT 

       * 

FROM 

       VDLG_Facturas_Cli_Cab_Col FCC

WHERE      Fcc.SerieFactura IN (SELECT seriefactura FROM Series_Facturacion WHERE IdDelegacion IN (SELECT IdDelegacion FROM VEmpresas_Empleados WHERE Usuario = USER))

 

GO

zpermisos Vpers_VDLG_Facturas_Cli_Cab_Col


De este modo, nos aseguramos que solo se muestren documentos cuya serie se corresponda con una serie de una delegación a la que tenga acceso el usuario.


En caso de querer que solo se visualicen los documentos pertenecientes a la delegación en la que el usuario está logeado, habría que utilizar esta otra vista


CREATE VIEW [dbo].[Vpers_VDLG_Facturas_Cli_Cab_Col]

----- Creada para añadir seguridad por serie y delegación en la que está logueado el usuario

AS

SELECT 

       * 

FROM 

       VDLG_Facturas_Cli_Cab_Col FCC

WHERE      Fcc.SerieFactura IN (SELECT seriefactura FROM Series_Facturacion WHERE IdDelegacion IN (SELECT IdDelegacion FROM Ahora_Sesion WHERE Usuario = USER))

 

GO

zpermisos Vpers_VDLG_Facturas_Cli_Cab_Col

En la que podemos ver que solo cambia el origen de datos en el que buscamos la delegación a filtrar.


Una vez creada esta vista, solo tenemos que asignarla a la colección que queremos filtrar con seguridad y volver a acceder a AHORA ERP para comprobar que solo visualizamos los documentos de las delegaciones a las que tenemos acceso.




Mediante este método, no es necesario tocar ningún parámetro de seguridad.

El resultado será que los usuarios Pepe y María solo podrán ver las facturas generadas en su delegación, mientras que Luís verá las facturas generadas en ambas delegaciones.

¿Le ha sido útil este artículo?

¡Qué bien!

Gracias por sus comentarios

¡Sentimos mucho no haber sido de ayuda!

Gracias por sus comentarios

¡Háganos saber cómo podemos mejorar este artículo!

Seleccione al menos una de las razones
Se requiere la verificación del CAPTCHA.

Sus comentarios se han enviado

Agradecemos su esfuerzo e intentaremos corregir el artículo