cancel
Showing results for 
Search instead for 
Did you mean: 

TN campo Fecha de vencimiento

former_member299313
Participant
0 Kudos

Estimados expertos en SAP B1 una vez mas pidiendo de su gran ayuda, he bloqueado el campo de FECHA DE VENCIMIENTO ya que los usuarios juegan mucho con ello y por ello el bloqueo, pero ahora me piden que solo ciertos usuarios puedan modificar alguien que pueda ayudarme a completar la sintaxis, tengo la siguiente pero me aparece error de antemano les agradezco.

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

begin 

    declare @Venc1 datetime 

    declare @Venc2 datetime 

    declare @Meses smallint 

    declare @Dias smallint

    declare @VencUsuario INT

    

    select @Meses=isnull(ExtraMonth,0), @Dias=isnull(ExtraDays,0) 

    from OCTG 

    where GroupNum=(select GroupNum from OINV where DocEntry=@list_of_cols_val_tab_del) 

    

    set @Venc1 = (select DocDueDate from OINV where DocEntry=@list_of_cols_val_tab_del) 

    set @Venc2 = dateadd(dd,@Dias,dateadd(mm,@Meses,(select DocDate from OINV where DocEntry=@list_of_cols_val_tab_del))) 

    

    if @Venc1<>@Venc2 and (@VencUsuario not in (1,5,11))

    begin 

        set @error = 1 

        set @error_message = 'La fecha de vencimiento es diferente a la calculada por la condicion de pago' 

    end 

end

Saludos,

Noé González

Accepted Solutions (1)

Accepted Solutions (1)

felipe_loyolarodriguez
Active Contributor
0 Kudos

Te está faltando setear el usuario desde el documento

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

begin 

    declare @Venc1 datetime 

    declare @Venc2 datetime 

    declare @Meses smallint 

    declare @Dias smallint

    declare @VencUsuario INT

    

    select @Meses=isnull(ExtraMonth,0), @Dias=isnull(ExtraDays,0) 

    from OCTG 

    where GroupNum=(select GroupNum from OINV where DocEntry=@list_of_cols_val_tab_del) 

    

    set @Venc1 = (select DocDueDate from OINV where DocEntry=@list_of_cols_val_tab_del) 

    set @Venc2 = dateadd(dd,@Dias,dateadd(mm,@Meses,(select DocDate from OINV where DocEntry=@list_of_cols_val_tab_del)))

    set @VencUsuario=(select UserSign from OINV where DocEntry=@list_of_cols_val_tab_del)

    

    if @Venc1<>@Venc2 and (@VencUsuario not in (1,5,11))

    begin 

        set @error = 1 

        set @error_message = 'La fecha de vencimiento es diferente a la calculada por la condicion de pago' 

    end 

end

Saludos

former_member299313
Participant
0 Kudos

mil gracias estimado Felipe en efecto no lo  había visto.

Saludos.

Noé

former_member299313
Participant
0 Kudos

Estimado Felipe espero te encuentres bien, tengo un problema con esta consulta, cuando lo ejecuto por primera vez me respeta la condicion, solo 3 usuarios pueden modificar uan vez que la pase a mi base de productivo no me permite hacer cambios con los usuarios que solo pueden modificar.

de antemano agradezco por tu gran ayuda.

saludos.

former_member188440
Active Contributor
0 Kudos

Si quieres validar el usuario que MODIFICA un objeto es el campo usersign2

El usersign es el que lo CREA

former_member299313
Participant
0 Kudos

Hola Mauricio espero haber entendido en lugar de:

  set @VencUsuario=(select UserSign from OINV where DocEntry=@list_of_cols_val_tab_del)

debo de modificar el "UserSign" por UserSign2?


  set @VencUsuario=(select UserSign2 from OINV where DocEntry=@list_of_cols_val_tab_del)


mil gracias por tu ayuda.


Saludos,

Noé González



former_member188440
Active Contributor
0 Kudos

Si así es

former_member299313
Participant
0 Kudos

gracias por tu ayuda y respuesta ya lo modifique y aun así me bloquea:

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

begin

    declare @Venc1 datetime

    declare @Venc2 datetime

    declare @Meses smallint

    declare @Dias smallint

    declare @VencUsuario INT

   

    select @Meses=isnull(ExtraMonth,0), @Dias=isnull(ExtraDays,0)

    from OCTG

    where GroupNum=(select GroupNum from OINV where DocEntry=@list_of_cols_val_tab_del)

   

    set @Venc1 = (select DocDueDate from OINV where DocEntry=@list_of_cols_val_tab_del)

    set @Venc2 = dateadd(dd,@Dias,dateadd(mm,@Meses,(select DocDate from OINV where DocEntry=@list_of_cols_val_tab_del)))

    set @VencUsuario=(select UserSign2 from OINV where DocEntry=@list_of_cols_val_tab_del)

   

    if @Venc1<>@Venc2 and (@VencUsuario not in (1,5,11))

    begin

        set @error = 1

        set @error_message = 'La fecha de vencimiento es diferente a la calculada por la condicion de pago'

    end

end

former_member299313
Participant
0 Kudos

listo encontré el error esta es la consulta:

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

begin

    declare @Venc1 datetime

    declare @Venc2 datetime

    declare @Meses smallint

    declare @Dias smallint

    declare @VencUsuario INT

   

    select @Meses=isnull(ExtraMonth,0), @Dias=isnull(ExtraDays,0)

    from OCTG

    where GroupNum=(select GroupNum from OINV where DocEntry=@list_of_cols_val_tab_del)

   

    set @Venc1 = (select DocDueDate from OINV where DocEntry=@list_of_cols_val_tab_del)

    set @Venc2 = dateadd(dd,@Dias,dateadd(mm,@Meses,(select DocDate from OINV where DocEntry=@list_of_cols_val_tab_del)))

    set @VencUsuario=(select top 1 UserSign2 from OINV where DocEntry=@list_of_cols_val_tab_del)

   

    if @Venc1<>@Venc2 and (@VencUsuario not in (1,5,11))

    begin

        set @error = 1

        set @error_message = 'La fecha de vencimiento es diferente a la calculada por la condicion de pago'

    end

end

mil gracias por la ayuda.

Saludos,

Noé González

Answers (0)