on 04-27-2010 9:54 PM
Cordial Saludo
Un socio de negocios presenta facturas cuyo pago se encuentra vencido. de que manera puedo controlar para que no se pueda generar una nueva factura? o en su defecto solicita autorizacion
Hola te comparto este codigo el cual sirve para facturas vencidas a mas de 5 dias
(puedes jugar con los dias)
SELECT Distinct 'TRUE'
FROM OINV T0
WHERE T0.DocStatus = 'O' AND DateDiff(dd, T0.DocDueDate, CONVERT(DateTime, CONVERT(nvarchar(11),GetDate(),112),112)) >= 5 AND T0.CardCOde = $[$4.0.0]
AND (Select balance from ocrd where cardcode=$[$4.0.0]) <>0
Espero te sirva
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola a todos y muchas gracias por sus aportes
como pueden ver soy primiparo en el tema y quisiera nuevamente plantear la situacion para que ustedes me digan cual de las que me mencionan se acomoda mas a mi necesidad
la empresa cuenta con muchos clientes y todos los dias se crean nuevos es por eso la necesidad que se configure una parametrizacion de que la herramienta lo haga automaticamente
es decir cliente que se le vensa una factura y no lo ha pagado,(todas las facturas tienen un solo vencimiento) y a ese cleinte se le va a generar una nueva factura muestre un mensaje similar al que ustedes me plantean y solicite autorizacion lo que no se es cual escoger de las que ustedes mencionan y l donde almaceno esa consulta y como se hace
muchas gracias
Hola.
Considero que a través del procedimiento de autorización obtendrá una solución adecuada, porque permitiría que por ejemplo el departamento de cartera revise aquellas facturas de los Clientes que tienen saldo vencido y decidir si se apueban o no dependiendo del comportamiento de pago del cliente.
Además creo que es más seguro de implementar que con el TransactionNotification, puesto que no conoce este último y es de mayor cuidado.
Para implementarlo por el procedimiento de autorización, debe hacer lo siguiente:
1. Guardar en una categoría nueva en Query Manager (llamada por ejemplo Consultas usuario) una consulta de las que le proporcionamos (que comienzan por SELECT 'TRUE').
- luego cerrar la ventana del Query manager.
2. Crear la etapa de autorización (se seleccionan el (los) usuario (s) que autorizan).
3. Cear el Modelo de autorización (se relacionan los ususarios y los documentos que quedan sujetos al procedimiento, la etapa de autoriz. ), así:
- En la pestaña Autor se seleccionan los usuarios que quedan sujetos al procedimiento.
- En la pestaña documentos se seleccioan los documentos a autorizar (en este caso facturas).
- En la pestaña Etapas se selecciona la etapa creada en el paso 2.
- En la pestañaCondiciones se selecciona "Cuando se utiliza lo siguiente",
- luego en "Condiciones basadas en consultas de usuario" hacer doble click en la primera línea,
- luego seleccionar de la ventana Query manager que se despliega, la consulta creada en el paso 1.
No olvidar que quede seleccionado el check "Activo" en la parte superior de la ventana Modelo de Autoriz..
- luego hacer click en "Crear".
En la ayuda de SB1 también encuentra información de guía.
Nos cuenta cómo le va.
Saludos.
Muchas Gracias, por la instruccion.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola.
Actualizo entonces el query para el procedimiento de autorización de acuerdo a los comentarios de Andrés, si todavía está interesado en realizarlo de esta manera:
SELECT 'TRUE'
FROM (
SELECT SUM(T0.BalDueDeb) - SUM(T0.BalDueCred) AS Total
FROM JDT1 T0 INNER JOIN OCRD T1 ON T0.ShortName=T1.CardCode
WHERE T1.[validFor]='N' AND DateDiff( Day,T0.DueDate,GETDATE() ) > 30 AND T0.[ShortName] LIKE $[OINV.CardCode]
GROUP BY T0.[ShortName]
) T10
WHERE Total > 0
Pruébelo y nos cuenta cómo le va.
Saludos.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
La solución que expone Héctor no funciona en los casos que la condición de pago de la factura tiene varias cuotas o cuando el cliente ya pago pero no se ha cruzado el pago con la factura.
(Esto dependen mucho de los tipos de cliente y el tipo de industria al que pertenezca la empresa), yo le aporto una solución que utilizamos en la empresa en la cual a un cliente con cartera mayor a 30 días no se le permite crear facturas. Esto lo hacemos desde un SP, y cuando se quiere habilitar la facturación a un cliente por ejemplo para clientes estratégicos, simplemente desde el maestro de socios de negocios los marcamos como activos, de esta manera los clientes que no están como activos automáticamente no se les puede crear facturas cuando superan la cartera mayor a 30, lo hacemos asi debido a que un SP es mas rapido que los procedimientos de autorizacion y el control de los clientes activos solo lo tiene 1 sola persona...
declare @cliente nvarchar (15)
select @cliente=cardcode from oinv where docentry=@list_of_cols_val_tab_del
if (SELECT SUM(T0.BalDueDeb) - SUM(T0.BalDueCred) AS Total
FROM JDT1 T0 INNER JOIN OCRD T1 ON T0.ShortName=T1.CardCode
WHERE T1.[validFor]='N' AND DateDiff( Day,T0.DueDate,GETDATE() ) > 30 AND T0.[ShortName] = @cliente
GROUP BY T0.[ShortName]
HAVING SUM(T0.BalDueDeb) - SUM(T0.BalDueCred) <> 0 ) > 0 begin
set @error= 10
set @error_message = '*****Cliente bloqueado por Cartera'
end
Espero que le sirva la respuesta...
Saludos desde Colombia,
Andres Ramirez Jaramillo
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola.
Otra alternativa puede ser con el procedimiento de autorización y un query que dispare la autorización.
El query a utilizar sería como el siguiente:
SELECT 'TRUE'
FROM (
SELECT SUM(T0.[DocTotal] - T0.[PaidToDate]) AS 'SaldoPend'
FROM OINV T0
WHERE T0.CardCode LIKE $[OINV.CardCode] AND DATEDIFF(DAY,T0.[DocDate],GetDate()) > 30
) T1
WHERE T1.SaldoPend > 0
En el query se valida los documentos cuya diferencia ebtre la fecha de contabilización y la actual sea superior a 30 días. Si se desea comparar contra la fecha de vencimiento se cambia el campo DocDate por DocDueDate.
Nos cuenta cómo le va.
Saludos.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Utiliza el campo de bloqueado, en el dato maestro del socio de negocios.
Podrias hacer una actualizacion masiva via DTW a este campo para todos aquellos clientes morosos
Ahora que si lo que quieres es continuar un proceso de venta con dichos clientes, podrias recurrir a procedimientos de autorizacion que te permitan desde el pedido, generar un documento preliminar para estos clientes que tienen saldo vencido
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
98 | |
11 | |
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.