cancel
Showing results for 
Search instead for 
Did you mean: 

Procedimiento de Autorización para tipo de documento en orden de compra.

Former Member
0 Kudos

Hola como están,

Para explicar mejor todo lo que intento hacer:

Necesito crear una serie de procedimientos de autorización para el documento de orden de compra, las condiciones que solicita el usuario para que se genere el procedimiento son los siguientes:

- Cuando el documento sea tipo servicio y el total del documento sea mayor a 20000, entonces que se genere la autorización.

If $[OPOR.DocType] = 'S' and $[OPOR.DocTotal] > '20000'
SELECT 'TRUE'

- Cuando el Proveedor sea nacional y el total del documento sea mayor a 10000 que se genere la autorización.

IF ($[OCRD.GroupCode]='101' and $[OPOR.DocTotal] > '10000')
SELECT 'TRUE'

- Cuando El grupo de artículo sea suministro o insumo y el total del documento sea mayor a 5000 entonces que se genere la autorización.

IF ($[OITM.ItmsGrpCod]='104' and $[OPOR.DocTotal] > '10000')
SELECT 'TRUE'

Para la primera consulta me lee perfectamente el tipo de documento servicio, pero para el total mayor a 20000 me lo hace a medias, todo número mayor a 20000 me genera la autorización, eso esta bien, pero todo total entre 2000 y 9999, me genera la autorización cuando no debería hacer eso.

Para la segunda consulta me lee si proveedor nacional o internacional sin ningún problema, pero para el total, sea cual sea igual me está generando el procedimiento, cualquier cantidad menor a 10000 me lo toma, y mayor igual mente.

Para la tercera consulta pasa lo mismo.

No sé como estará leyendo este DocTotal, ya he probado las consultas por separado, he probado solo ingresando en el código solo el total del documento y me hace lo mismo, ya no se que podría hacer porque he movido los código de todas la formas, colocándole, quitándole, etc.

A la primera consulta me dicen que le agregue adicional a lo que tiene

and $[OPOR.DocTotal] < nueve-nueve-nueve-nueve

bueno ya lo hice y pasa lo mismo, con 9999, 99999 o lo que sea.

Estas Consultas las estoy colocando en gestión - procedimientos de autorización - modelos de autorización - condiciones, las tres consultas las estoy colocando ahí, todas van para el mismo documentos y los mismos autores.

Gracias por la atención.

Saludos.

Accepted Solutions (1)

Accepted Solutions (1)

former_member188440
Active Contributor
0 Kudos

Te sugiero que utilices mejor



select 'True' where ... lo que tienes dentro de tus IF 


la otra cosa es que hagas un modelo de autorizacion para cada escenario y que utilices clausulas Between para tus rangos de totales

Former Member
0 Kudos

Elabore este siguiendo lo que me dices:

select 'TRUE' where $[OPOR.DocType] = 'S' and $[OPOR.DocTotal] between '20000' and '30000'

y perfectamente todo lo que esta en ese rango me genera el procedimiento, pero tambien me trae el procedimiento con los totales que esten entre 2000 y 3000, como hacer para que lea la cantidad exacta, claro por eso me pasa lo mismo que con el código que coloque en el primer post, > 20000, genera procedimiento de todo lo que este entre 2000 y 9999, de alguna manera esto no diferencia los 4 ceros.

Y el código que me pasas floyola me hace exactamente lo mismo que me genera con el código que coloque en el primer post.

Qué se podra colocar para que diferencie esto.

former_member188440
Active Contributor
0 Kudos

Intenta asi



select 'TRUE' where $[OPOR.DocType] = 'S' and  ( $[OPOR.DocTotal] > '20000' and $[OPOR.DocTotal]  <'30000')

a ver q hace

Answers (2)

Answers (2)

Former Member
0 Kudos

IF $[OPOR.DocType] = 'S' and $[$29.0.Number] > 20000

SELECT 'TRUE'

felipe_loyolarodriguez
Active Contributor
0 Kudos

Buenas

Trata de las siguientes formas, quizas alguna te sirva


IF (SELECT $[$3.OPOR.DocType]) = 'S' and (SELECT $[$29.0.Number]) > '20000'
SELECT 'TRUE'

o asi


IF $[OPOR.DocType] = 'S' and (SELECT $[$29.0.Number]) > '20000'
SELECT 'TRUE'

Saludos

FLR