on 12-23-2010 6:19 PM
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.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
IF $[OPOR.DocType] = 'S' and $[$29.0.Number] > 20000
SELECT 'TRUE'
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
99 | |
11 | |
10 | |
6 | |
5 | |
5 | |
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.