cancel
Showing results for 
Search instead for 
Did you mean: 

Bloqueo cliente moroso < 45 días

Former Member
0 Kudos

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

Accepted Solutions (0)

Answers (2)

Answers (2)

former_member413321
Contributor
0 Kudos

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                                 

                         WHERE OCRD.CardCode=@list_of_cols_val_tab_del )

Former Member
0 Kudos

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

former_member413321
Contributor
0 Kudos

Cuando hablas de nota de venta, estas hablando de factura? o de otro documento.

Former Member
0 Kudos

en la tarde si deseas te podria ayudar con ese caso

Former Member
0 Kudos

Estoy hablando de Pedidos de Cliente tabla ORDR, Documento "17" en SAP, no son facturas.

Saludos.-

Former Member
0 Kudos

pues claro yo abarco desde el pedido pero se presenta ocaciones de que el ususario va directamente a la factura sin hacer el pedido cuando es un item

Former Member
0 Kudos

Pues ya tengo un bloqueo que no permita facturar sin una nota de venta. En la empresa en que trabajo los usuarios deben crear una nota de venta luego la guía y posteriormente la factura. Es un proceso obligatorio, no hay opción de que lo hagan de otra manera

Former Member
0 Kudos

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

Former Member
0 Kudos

Nunca he realizado procesos de autorizaciones pero podemos intentarlo. Cuentame...

Former Member
0 Kudos

Es similar a lo que tines solo con la sarvedad de que debes de incluir todo el personal que factura en el y de la que autorizacion lo haga el departamento de creditos y cobros es un control bastante bueno aqui me funciona a la perfecion si deseas te explico

Former Member
0 Kudos

Me gustaría aprender, aunque la verdad preferiría un bloqueo directo en el TN. Si tienes tiempo y puedes explicarme te lo agradecería. Además de seguro no soy el único que estoy en esto.