cancel
Showing results for 
Search instead for 
Did you mean: 

bloqueo de socios de negocios por mora

former_member671177
Participant
0 Kudos

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

Accepted Solutions (1)

Accepted Solutions (1)

former_member188440
Active Contributor
0 Kudos

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

former_member671177
Participant
0 Kudos

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

former_member210784
Active Contributor
0 Kudos

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.

former_member671177
Participant
0 Kudos

Muchas Gracias por la explicacion ya lo probe y quedo ok

former_member299313
Participant
0 Kudos

Hector una pregunta, y para que solo pida autorización con exceso de limite de crédito y factura vencida?

Answers (5)

Answers (5)

Former Member
0 Kudos

Muchas Gracias, por la instruccion.

former_member210784
Active Contributor
0 Kudos

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.

Former Member
0 Kudos

me interesa pero no envía el modelo de autorización.

andresramirezj
Participant
0 Kudos

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

former_member210784
Active Contributor
0 Kudos

Hola, Andrés.

Excelente. Gracias por la retroalimentación.

Saludos.

former_member188471
Active Contributor
0 Kudos

En el transaction notification?

former_member210784
Active Contributor
0 Kudos

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.

former_member188440
Active Contributor
0 Kudos

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