PDA

Ver la Versión Completa : Antigüedad de Saldos


AzidRain
26-01-2006, 23:06:10
A reserva de que me regañen los moderadores, les dejo aqui este post, que aunque no es una pregunta, yo creo que a alguien por ahi le va a servir.

Se trata de una consulta para obtener la antigüedad de un saldo en una DB de cuentas por cobrar, normalmente es un reporte que muestra que tanto tiempo tiene de vencida una cuenta segun el dia en que debia cobrarse mostrando rangos de dias . Esta consulta funciona para MySQL 4.11 en adelante, pero supongo que la podran adaptar si lo requieren


SELECT NOMBRE, NO_TALON, NUMCLIENTE, CVE_CLIENTE,FECHA,
IF( DATEDIFF( CURDATE(), PROGRAMADO )<0 AND ( PROGRAMADO<>'0000-00-00'), IMPORTE, 0 ) AS PORVENCER,
IF( (DATEDIFF( CURDATE(), PROGRAMADO )>=0 AND DATEDIFF( CURDATE(), PROGRAMADO )<=15) OR PROGRAMADO='0000-00-00',IMPORTE,0) AS VENCIDOS115 ,
IF( DATEDIFF( CURDATE(), PROGRAMADO )>=16 AND DATEDIFF( CURDATE(), PROGRAMADO )<=30, IMPORTE,0) AS VENCIDOS1630,
IF( DATEDIFF( CURDATE(), PROGRAMADO )>=31 AND DATEDIFF( CURDATE(), PROGRAMADO )<=45, IMPORTE,0) AS VENCIDOS3145,
IF( DATEDIFF( CURDATE(), PROGRAMADO )>=46 AND DATEDIFF( CURDATE(), PROGRAMADO )<=60, IMPORTE,0) AS VENCIDOS4660,
IF( DATEDIFF( CURDATE(), PROGRAMADO )>=61 AND DATEDIFF( CURDATE(), PROGRAMADO )<=90, IMPORTE,0) AS VENCIDOS6190,
IF( DATEDIFF( CURDATE(), PROGRAMADO )>=91 AND DATEDIFF( CURDATE(), PROGRAMADO )<=120,IMPORTE,0) AS VENCIDOS91120,
IF( DATEDIFF( CURDATE(), PROGRAMADO )>=121 ,IMPORTE,0) AS VENCIDOSMAS120
FROM COBRANZA
ORDER BY NOMBRE


Donde PROGRAMADO es el campo que contiene la fecha en que debia cobrarse esa cuenta y FECHA es la fecha en que se facturo, los demas campos se explican solo.

Ojalá y a alguien le sirva aunque no creo que haya descubierto el hilo negro...
Saludos a todos

Héctor Randolph
27-01-2006, 08:19:26
Hola AzidRain!

Antes que nada gracias por publicar tú código, seguramente será útil para muchas personas.

Te comento que hace tiempo elaboré un sistema de cuentas por cobrar y entre los requerimientos del sistema estaba reflejar la antigüedad de saldos en un reporte similar al tuyo. Yo lo hice con FireBird y recuerdo que me compliqué un poco la existencia con este reporte.

Seguramente los visitantes del club que se encuentren en la misma situación te agradecerán por brindarles una guía de cómo atacar el problema.

Saludos.

AzidRain
27-01-2006, 15:16:50
Pues sí, por ahi en algun post vi que alguien tenía este problema pero en ese entonces todavía no llegaba a esa parte de mi sistema..Cuando finalmente me tocó hacer este reporte me tarde un poco en encontrar una solución y me acordé de ese post. Gracias a Club Delphi he podido resolver muchas dudas a veces muy simples otras muy complejas que de otra forma me hubiese tardado mucho, por eso pienso que todo lo que pueda aportar, sea poco o mucho es una especie de "pago" que quiero hacerle al Club.

:D :D