cancel
Showing results for 
Search instead for 
Did you mean: 

Bloquear Modificacion Condiciones de Pago en las facturas

Former Member
0 Kudos

Buenos días, quería saber si conocen alguna forma de bloquear a unos usuarios en especifico para evitar que modifiquen las condiciones de pago, la única opción que ellos podrían colocar seria 'Contado'.

If @Object_Type = '13' AND @transaction_type = 'U'

BEGIN

DECLARE @CardCode varchar(12),@Pago_OV SMALLINT,@Pago_SN SMALLINT 

SET @CardCode = (Select CardCode From OINV Where DocEntry=@list_of_cols_val_tab_del)

SET @Pago_OV = (Select GroupNum From OINV Where DocEntry= @list_of_cols_val_tab_del)

SET @Pago_SN = (Select GroupNum From OCRD Where CardCode=@CardCode)

IF @Pago_OV != @Pago_SN 

BEGIN

SELECT @error = -600, @error_message= 'No se Permite Cambiar la Condicion de Pago'     

END

END 

Accepted Solutions (1)

Accepted Solutions (1)

Former Member

También puedes modificar la configuración del campo en la "Parametrización de Formulario", lo marcas como inactivo y bloqueas el acceso del usuario a dicha parametrización, para que no lo pueda cambiar.

Saludos

Former Member
0 Kudos

El lio esta en que solo lo podrian cambiar a Contado por que a veces lo requieren ya que el cliente va a realizar el pago en ese instante, entonces iria mas orientado a un SP que solo les permita esa condicion.

felipe_loyolarodriguez
Active Contributor
0 Kudos

Entonces

Tu if debe tener 2 condiciones

IF (@Pago_OV != @Pago_SN) or (@Pago_OV != "CONTADO")

begin

end

donde dice CONTADO coloca el numero interno de la condición de pago.

Saludos

Former Member
0 Kudos

Sin embargo al aplicar el SP no aplica el bloqueo ya que bien en la factura toma las condiciones de pago del SN, cuando voy a la pestaña de finanzas y le cambio la condicion de pago permite crear el documento habiendo hecho el cambio.

Former Member
0 Kudos

Ya se esta disparando el SP faltaba el parametro de agregar 'A' quedando de la siguiente manera.

If @transaction_type in ('A','U') and @object_type in ('13')

BEGIN

DECLARE @CardCode varchar(12),@Pago_OV SMALLINT,@Pago_SN SMALLINT

SET @CardCode = (Select CardCode From OINV Where DocEntry=@list_of_cols_val_tab_del)

SET @Pago_OV = (Select GroupNum From OINV Where DocEntry= @list_of_cols_val_tab_del)

SET @Pago_SN = (Select GroupNum From OCRD Where CardCode=@CardCode)

IF (@Pago_OV != @Pago_SN) or (@Pago_OV != '-1')

BEGIN

SELECT @error = -600, @error_message= 'No se Permite Cambiar la Condicion de Pago'    

END

END 

Muchas gracias por su colaboracion.

Former Member
0 Kudos

Me surgió un problema al tratar de implementarlo, ya que esta bloqueando el cliente asi no se le modifique ningun valor. es decir si esta a 60 dias y se deja igual muestra el sp por lo visto esta tomando solo la opcion @Pago_OV != '-1') y solo permite realizar de contado. probe omitiendo esta parte y al parecer es como si no estuviera tomando este parametro IF (@Pago_OV != @Pago_SN)  por que deja crear la factura aun cambiando la condicion de pago. he revisado pero no veo error en el codigo.

felipe_loyolarodriguez
Active Contributor
0 Kudos

Cambia el OR por un AND.

IF (@Pago_OV != @Pago_SN) and (@Pago_OV != '-1')

Ya lo probé y funciona.

Saludos

Former Member
0 Kudos

le realice un cambio al código y ya me quedo funcionando

If @transaction_type in ('A','U') and @object_type in ('13')

BEGIN

DECLARE @Pago_OV SMALLINT

DECLARE @Pago_SN SMALLINT

SET @Pago_OV = (Select GroupNum From OINV Where DocEntry= @list_of_cols_val_tab_del)

SET @Pago_SN = (Select T0.GroupNum From OCRD T0 INNER JOIN OINV T1 ON T1.DocEntry= @list_of_cols_val_tab_del Where T0.CardCode = T1.CardCode)

IF (@Pago_OV != @Pago_SN)AND (@Pago_OV != '-1')

BEGIN

SET @error = 10

SET @error_message= 'SP BLOQUEO VENTAS185: No se Permite Cambiar la Condicion de Pago'   

END

END

Answers (0)