on 03-26-2015 8:48 PM
Buen dia Expertos quiero realizar un transaction para que valide los descuentos que se realizan en un pedido en SAP
el porcentaje se rige con las escalas de descuentos que tenemos en la tabla SPP2, el objetivo de este transaction es mantener la integridad de los descuentos estipulados y no se puedan cambiar los descuentos de acuerdo a nuestra tabla de descuentos, por ejemplo por 3 cajas de algún producto es el 2% de descuento estipulado pero si alguien le pone 4% no lo permita porque el descuento asignado según la SPP2 es 2%, he intentado usar cursores para leer las lineas de productos y realizar comparaciones pero no lo he logrado, si alguien pudiera brindarme su ayuda para terminar este requerimiento se lo agradecería mucho.
De antemano muchas gracias.
Saludos Cordiales
Puedes incluir una comprobación en el Transaction Notification, la comprobación que deberías hacer sería algo así:
@descuentos_modificados as numeric
IF @object_type in ('15') And @transaction_type in ('A')
Begin
set @descuentos_modificados = (select count(*) from odln
left join dln1 on
odln.docentry = dln1.docentry
left join spp2 on
dln1.itemcode = spp2.itemcode and
odln.cardcode = spp2.cardcode and
dln1.quantity >= spp2.amount and
spp2.amount = (select max(spp2.amount) from spp2 where amount<=dln1.quantity)
where dln1.DiscPrcnt <> spp2.Discount and odln.docentry = @list_of_cols_val_tab_del)
If @descuentos_modificados >0
Begin
Set @error =1
Set @error_message = 'Error: Descuentos modificados'
End
End
Saludos
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Estimado Alfonso ya probe tu query solo que lo tuve que adaptar a la ORDR que es donde lo necesitaba ya que el tuyo esta adaptado a la entrega, pero no me funciono, cuando value el query me trae 0 , hice un pedido en el cual provoque un descuento del 6% cambie el 6 por 8% y no paso nada dejo grabar el pedido logicamente porque me trae el valor 0, podrias darme tu opinion como experto que eres , que estara pasando?
Saludos cordiales
He hecho un pequeño cambio, lo he probado con un documento de 2 líneas, con tres escalas de descuento en cada artículo, y a mí me funciona.
select count(*) from ordr
left join rdr1 on
ordr.docentry = rdr1.docentry
left join spp2 on
rdr1.itemcode = spp2.itemcode and
ordr.cardcode = spp2.cardcode and
spp2.amount = (select max(spp2.amount) from spp2 where amount<=rdr1.quantity and itemcode = rdr1.itemcode)
where rdr1.DiscPrcnt <> spp2.Discount and ordr.docentry = @list_of_cols_val_tab_del and rdr1.quantity >= spp2.amount
Saludos
User | Count |
---|---|
99 | |
11 | |
11 | |
6 | |
6 | |
4 | |
4 | |
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.