cancel
Showing results for 
Search instead for 
Did you mean: 

Solicito ayuda con SP dependiendo de usuario

former_member1210224
Participant
0 Kudos

Buenas tardes Chic@s,

Necesito de la colaboración de ustedes por si alguien me puede ayudar, pues tengo el SP que les coloco abajo, con el cual estoy limitando a los usuarios para que no me puedan modificar la lista de precios del socio de negocio, con este SP logro que nadie realice la modificación, pero lo que requiero es que si el usuario es el manager, la actualización si se pueda realizar.

Lo he intentado de diversas maneras y no he podigo, quien podria ayudarme con esto por favor?

Agradezco su colaboración

IF @object_type in ( 2) and @transaction_type in ('U')

BEGIN

if

(select ListNum from ocrd where cardcode=@list_of_cols_val_tab_del ) <>

(select top 1 ListNum from acrd where cardcode=@list_of_cols_val_tab_del and

              loginstanc in (select max (loginstanc-1 ) from acrd where  cardcode=@list_of_cols_val_tab_del))

begin

set @error = 1

set @error_message = 'Acceso denegado para cambio de lista de precios '

end

END

Accepted Solutions (1)

Accepted Solutions (1)

gerardo_mendez
Active Contributor
0 Kudos

Hola Oscar.

Prueba algo como esto:

IF  @transaction_type in ('A', 'U') AND @object_type = '2'

       Begin

             If (Select T0.UserSign2 From OCRD T0 Where T0.CardCode = @list_of_cols_val_tab_del ) <> 1

             Begin

                    if

                    (select ListNum from ocrd where cardcode=@list_of_cols_val_tab_del ) <> (select top 1 ListNum from acrd where cardcode=@list_of_cols_val_tab_del and loginstanc in (select max (loginstanc-1 ) from acrd where  cardcode=@list_of_cols_val_tab_del))

                           begin

                                  set @error = 1

                                  set @error_message = 'Acceso denegado para cambio de lista de precios '

                           end

             END

       End

End

former_member1210224
Participant
0 Kudos

Buenos días,

En primer lugar agradezco tu pronta respuesta, como segundo punto te cuento que he hecho la prueba y la validación ha quedado correcta, sólo que de esta manera me impide hacer cualquier tipo de modificación sobre cualquier campo de socio de negocios y sólo necesito que no me deje modificar la lista de precios, sabes que otra solución puede haber?

Alguien más tiene otra posible solución, agradezco la colaboración de quien me pueda ayudar.

Former Member
0 Kudos

¿Y si usas object_type = '6'?, el 6 corresponde a la lista de precios....

Object TypeDescription
1ChartOfAccounts object
2BusinessPartners object
3Banks object
4Items object
5VatGroups object
6PriceLists object
7SpecialPrices object
8ItemProperties object
12Users object
gerardo_mendez
Active Contributor
0 Kudos

Hola Oscar.

Solo un comentario... ¿Y si inviertes las sentencias IF? Primero evalúas la modificación de la lista de precios y después evalúas el usuario, no debe haber problema.

former_member1210224
Participant
0 Kudos

Hola Gerardo, hice lo que me dijiste y adicionalmente hice un pequeño cambio en la busqueda de la condición anterior sobre la tabla ACRD y me ha funcionado, aqui dejo el query definitivo como me funciono, agradezco tu valiosa colaboración, ya que basicamente la solución me la diste tu.

Adicionalmente agradezco a todos los que me han dado alguna respuesta.

IF  @transaction_type in ('A', 'U') AND @object_type = '2'

Begin

    if

    (select ListNum from ocrd where cardcode=@list_of_cols_val_tab_del ) <> (select top 1 ListNum from acrd where cardcode=@list_of_cols_val_tab_del Order by LogInstanc desc)

    begin

         If (Select T0.UserSign2 From OCRD T0 Where T0.CardCode = @list_of_cols_val_tab_del ) <> 1

         Begin

              set @error = 1

              set @error_message = 'Acceso denegado para cambio de lista de precios'

         end

     END

End

Answers (0)