on 03-20-2014 1:47 PM
Estimados, estoy buscando realizar a través del Transaction Notification un bloqueo para que no se le pueda realizar una Orden de Venta al cliente, si este tiene una factura morosa > 45 días. Lo que hice fué lo siguiente:
Hice una vista en SQL (dbo.TNultimafacturacliente) que muestra todas las facturas de clientes que están con una morosidad mayor a 45 días vencidas (< -45): Con el campo CardCode de la OCRD. Entonces lo que quiero es que bloquee la creación de una Nota de Venta si el cliente está en este listado, hice lo siguiente pero no me a dado resultado:
IF @object_type = '17' --oInvoice
BEGIN
IF @transaction_type = 'A' or @transaction_type = 'U'
BEGIN
SET @Num=(
SELECT count(*)FROM dbo.OCRD RIGHT OUTER JOIN
dbo.TNultimafacturacliente ON dbo.OCRD.CardCode = dbo.TNultimafacturacliente.Rut
WHERE (dbo.OCRD.CardCode = dbo.TNultimafacturacliente.Rut) and dbo.OCRD.CardCode <> ''
and OCRD.CardCode=@list_of_cols_val_tab_del )
IF (@Num>0)
BEGIN
SELECT @error = 2020
SELECT @error_message = N'Cliente con moroso'
END
END
END
Veo un par de detalles que podrian estar afectando.
en el if Transaction_Type encierra en parentesis las 2 condiciones (cada una independiente)
o sea if (@Transaction_Type = 'A') or (@Transaction_Type = 'U')
Y en la consulta no filtres de Nuevo los valores de la llave. Y debe ser un inner join, porque con left o right siempre va a encontrar al cliente por lo que siempre va a devolver al menos un registro.
SET @Num=( SELECT count(*)FROM dbo.OCRD INNER JOIN
dbo.TNultimafacturacliente ON dbo.OCRD.CardCode = dbo.TNultimafacturacliente.Rut
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Estimado, hice los cambios sugeridos pero pasó igual:
IF @object_type = '17' --oInvoice
BEGIN
IF (@transaction_type = 'A') or (@transaction_type = 'U')
BEGIN
SET @Num=( SELECT count(*)FROM dbo.OCRD INNER JOIN
dbo.TNultimafacturacliente ON dbo.OCRD.CardCode = dbo.TNultimafacturacliente.Rut
WHERE (dbo.OCRD.CardCode = dbo.TNultimafacturacliente.Rut) and (dbo.OCRD.CardCode <> '')
and (OCRD.CardCode=@list_of_cols_val_tab_del) )
IF (@Num>0)
BEGIN
SELECT @error = 2020
SELECT @error_message = N'Cliente moroso'
END
END
END
bueno te puedo ayudar debes de hacer un circuito de autorización para todos los clientes de credito si deseas te puedo dar como lo tenemos donde laboro
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
107 | |
12 | |
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.