on 11-27-2015 2:55 PM
Hola a todos,
Estoy realizando una sentencia para el tema de que se lance una autorización si es que el cliente pasa su limite de credito la sentencia es la siguiente
SELECT 'TRUE' WHERE ($[$29.0.Number]+(SELECT T0.[Balance]+T0.[OrdersBal]
FROM OCRD T0 WHERE T0.[CardCode] = $[$4.0]) > (SELECT T0.[CreditLine]
FROM OCRD T0 WHERE T0.[CardCode] = $[$4.0])) END
Sin embargo necesito poner la condición de que no lo haga cuando el cliente tiene la condicion de pago "Contado" es decir cuando el campo Group Num es igual a -1 y aumente lo siguiente : WHERE T0.[GroupNum] <>'-1' quedando la sentencia completa de la siguiente manera
SELECT 'TRUE' WHERE ($[$29.0.Number]+(SELECT T0.[Balance]+T0.[OrdersBal]
FROM OCRD T0 WHERE T0.[CardCode] = $[$4.0]) > (SELECT T0.[CreditLine]
FROM OCRD T0 WHERE T0.[CardCode] = $[$4.0])) WHERE T0.[GroupNum] <>'-1'
end
Pero me genera el siguiente error al momento de ejecutarla ya en la pantalla de la venta
Could not commit transaction: Error -1 detected during transaction
cual puede ser el error?
gracias anticipadas
El último where no va, debería ser un AND no?
Para que le digas que sea el código de socio de negocios igual al de tu documento Y que tenga pago de contado (-1)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola Mauricio
Aun cuando cambio el ultimo Where por un And sigue este error
Could not commit transaction: Error -1 detected during transaction
La sentencia quedo asi:
SELECT 'TRUE' WHERE ($[$29.0.Number]+(SELECT T0.[Balance]+T0.[OrdersBal]
FROM OCRD T0 WHERE T0.[CardCode] = $[$4.0]) > (SELECT T0.[CreditLine]
FROM OCRD T0 WHERE T0.[CardCode] = $[$4.0])) AND T0.[GroupNum] <>'-1' END
Hola, Laura.
Intenta con este query:
SELECT 'TRUE' WHERE
($[$29.0.Number]
+(SELECT T0.[Balance]+T0.[OrdersBal] FROM OCRD T0 WHERE T0.[CardCode] = $[$4.0] AND T0.[GroupNum] <>'-1')
> (SELECT T0.[CreditLine] FROM OCRD T0 WHERE T0.[CardCode] = $[$4.0] AND T0.[GroupNum] <>'-1')
)
La condición de pago la puse dentro de los SELECT de cada subquery y quité en END que pusiste al final. Espero te sea de utilidad.
Saludos,
JC.
Hola Juan te comento que no lanzo la autorización y me dejo ingresar la transacción a pesar de que no debía hacerlo
la sentencia que tu enviaste es asi como la ingrese:
SELECT 'TRUE' WHERE ($[$29.0.Number] +(SELECT T0.[Balance]+T0.[OrdersBal] FROM OCRD T0 WHERE T0.[CardCode] = $[$4.0] AND T0.[GroupNum] <>'-1') > (SELECT T0.[CreditLine]
FROM OCRD T0 WHERE T0.[CardCode] = $[$4.0] AND T0.[GroupNum] <>'-1'))
que mas puede ser?
gracias anticipadas
Acá hice pruebas y me aparece la solicitud de autorización.
Intenta así:
SELECT 'TRUE' WHERE
((SELECT T0.[Balance]+T0.[OrdersBal]+$[$29.0.Number] FROM OCRD T0 WHERE T0.[CardCode] = $[$4.0] AND T0.[GroupNum] <>'-1')
> (SELECT T0.[CreditLine] FROM OCRD T0 WHERE T0.[CardCode] = $[$4.0] AND T0.[GroupNum] <>'-1')
)
Si sigue sin pedirte la solicitud, ejecuta el siguiente query para determinar los valores que está viendo el query de la Autorización:
SELECT T0.[Balance]
, T0.[OrdersBal]
, T0.[CreditLine]
, T0.[GroupNum]
FROM OCRD T0
WHERE T0.[CardCode] = 'C20000'
Nota: cambia el C20000 por el código de tu SN.
Saludos,
JC.
Puedes Probar este,
es la que ocupo y me va bastante bien
DECLARE @Saldo int
DECLARE @Limite int
SET @Limite=(SELECT OCRD.CreditLine FROM OCRD WHERE OCRD.CARDCODE=$[$4.1.0])
SET @Saldo=(SELECT OCRD.Balance FROM OCRD WHERE OCRD.CardCode=$[$4.1.0])
IF @Saldo>@Limite
SELECT 'TRUE'
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
110 | |
12 | |
11 | |
6 | |
5 | |
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.