on 09-14-2009 6:50 PM
Estimados:
Mi consulta apunta a si alguien ha hecho algo similar a lo que necesito hacer:
En el formulario de pagos, pueden aparecer Facturas, Anticipos y Registros contables. Ahora bien, por propiedad de datos el usuario podrá visualizar todos aquellos documentos (de Ventas y Compras) relacionados a su sucursal, departamento o algun otro criterio de los existentes en la propiedad de datos.
El tema es que para los registros en el diario, la propiedad de documentos no es aplicable
Pretendo trabajar con las series en los registros en el diario, de modo de crear por cada sucursal una serie. Estas series las fijaré por defecto a cada usuario.
He creado un campo de usuario a nivel de detalle en los pagos (tanto efectuados como recibidos), para que luego este campo me refleje la serie de cada registro en el diario que pueda aparecer asociado a un Socio de negocios.
El tema finalmente es el siguiente:
¿Alguien ha realizado alguna validación por transaction SQL, que permita validar en función de las líneas que son seleccionadas previa realización del pago?
Por ejemplo, tendré que para un Proveedor X, existen 2 registros en el diario generado en la sucursal 1 y 2 más generados en la sucursal 2. Luego, el usuario de la sucursal 1, al visualizar el formulario de pagos efectuados visualizará las 4 líneas, sin embargo, discriminará a través del campo de usuario cuales corresponden a la sucursal 1 y cuales a la Sucursal 2.
La validación busca que solo se permita registrar este pago, si los registros seleccionados corresponden a la serie asociada en los registros en el diario por defecto al usuario que realiza la operación.
En el ejemplo, si el usuario selecciona una linea de la sucursal 1 y otra de la sucursal 2, debería validarme que existe un registro en el diario seleccionado que no corresponde a la sucursal del usuario.
Espero sea claro en la exposición del problema, y a ver si alguien ha hecho algo similar que me permita solucionar este tema.
De antemano gracias,
Saludos Cordiales,
Hola buen dia
Se me ocurre lo siguiente, porque no creas una tabla de usuario que contenga las series validas a cada usuario. El chiste aqui es que el usuario que tenga esa tabla sea tal cual el de la OUSR.
Entonces dependiendo del usuario que este activo (en la ventana de pagos), agregar un campo de usuario a nivel cabecera el cual te sirva para validar la serie, incluso podrias llamarlo asi U_ValidaSerie, por ejemplo, el cual no pueda ser nulo y que solo se llenara con la serie correspondiente a ese usuario, si la serie q esta activa, no la puede manipular ese usuario pues el campo quedaria vacio y no dejaria crear el pago.
Algo asi se me ocurre.
Como ves?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola...aquí dejo el código por si a alguien le pueda ser de utilidad, este está orientado a los pagos efectuados -Objeto 46-
IF @transaction_type IN ('A') AND @object_type = '46'
DECLARE @OBRA AS NVARCHAR(20)
DECLARE @CONT AS INT
DECLARE @SERIE AS NVARCHAR(20)
BEGIN
SET @CONT = (SELECT COUNT(*) FROM (
SELECT U_CSA_SERIE
FROM VPM2 T0
INNER JOIN OVPM T1 ON T0.DocNum = T1.DocEntry
WHERE T1.TransID = @list_of_cols_val_tab_del
GROUP BY T0.U_CSA_SERIE) AS TEMP)
IF @CONT > 1
BEGIN
SET @error = 1
SET @error_message = 'Uno de los documentos no pertenece a su Obra ' + CAST(@CONT AS CHAR(2))
END
IF @CONT = 1
BEGIN
DECLARE @VAR NVARCHAR(20)
SET @VAR = (SELECT MAX(U_CSA_SERIE)
FROM VPM2 T0
INNER JOIN OVPM T1 ON T0.DocNum = T1.DocEntry
WHERE T1.TransID = @list_of_cols_val_tab_del)
SET @SERIE = (SELECT T1.[SeriesName] FROM OVPM T0 INNER JOIN NNM1 T1 ON T0.Series = T1.Series
WHERE T0.TransID = @list_of_cols_val_tab_del)
IF (@VAR <> @SERIE)
BEGIN
SET @error = 1
SET @error_message = 'Está seleccionando documentos que no son de su Obra' + CAST(@CONT AS CHAR(2))
END
END
END
Saludos Cordiales,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola..
Gracias por responder. La verdad es que no fue necesario la creación de un campo de usuario ni tablas adicionales, finalmente por Transaction se pudo solucionar el tema. A la brevedad dejaré el código por si a alguien se le presenta una situación similar
Saludos,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
99 | |
12 | |
11 | |
6 | |
6 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.