Clarion - Estado de Saldo

   
Vista:
Imágen de perfil de R. Pacheco

Estado de Saldo

Publicado por R. Pacheco (63 intervenciones) el 14/04/2009 23:47:51
Hola
A todos solicitando de su ayuda.

Estoy Elaborando un sistemitade facturacion y lleva estado de Saldo de los cliente, quiero hacer
los siguiente, esta es mi estructura cuando es factura.

Fecha NroDoc Descripcion Debito Credito Saldo
XXXXX XXXX Factura 500.00 500.00
XXXXX XXXX Factura 500.00 1000.00

Cada vez que haga una factura mi saldo de aumentarse.
Alguien puede decirme como puedo hacer para que mi saldo se vaya acumulando
cual seria la formula adecuada o que condigo y en que punto debo poner.

Esta mi estructura cuando es Recibo de Pago
Fecha NroDoc Descripcion Debito Credito Saldo
XXXXX XXXX Factura 500.00 500.00
XXXXX XXXX Factura 500.00
XXXXX XXXX Recibo 500.00 500.00
XXXXX XXXX Recibo 500.00 500.00

Ahora lo quiiero es que cuando saldo sea igual a 500.00 y se de un credito por lo otro
500.00 sea igual a cero

XXXXX XXXX Recibo 500.00 0.00

Aqui esta mi dolor de cabeza que el saldo debe aparecerme 0, y se queda igual cuando
llega al final. ¿Como hago para que mei saldo salga cero. ¿Que formula qure debo emplear
y donde la pongo.

de Anbtemano mucha Gracia
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de Clarion
- Código fuente de Clarion
- Cursos de Clarion
información
Códigos de Clarion
- Llamar al form para insertar desde el menu

RE:Estado de Saldo

Publicado por Marcelo Madelon (572 intervenciones) el 15/04/2009 16:02:37
Yo usaria:
Clientes: CLI:Saldo
Facturas: FAC:ImporteTotal
Recibos: REC:ImporteTotal
CtaCtes: CTA:Debe CTA:Haber

En la ficha de Facturas en el Accept del Boton de Aceptar agregaría:
! Para actualizar el campo saldo del cliente
CLI:Saldo += FAC:ImporteTotal !(Sumo)
IF Access:Clientes.Update() ! Actualizo el registro del Cliente
MESSAGE('No Regraba Clientes','Mensaje del Sistema',ICON:Exclamation)
END

! Para Grabar el movimiento de cuenta corriente
CTA:Debe = FAC:ImporteTotal
IF ACCESS:CtaCtes.INSERT()
MESSAGE('NO GRABA Factura en cuenta Corriente','Mensaje del Sistema',ICON:Exclamation)
END


En la ficha de Recibos en el Accept del Boton de Aceptar agregaría:
! Para actualizar el campo saldo del cliente
CLI:Saldo -= FAC:ImporteTotal !(Resto)
IF Access:Clientes.Update() ! Actualizo el registro del Cliente
MESSAGE('No Regraba Clientes','Mensaje del Sistema',ICON:Exclamation)
END

! Para Grabar el movimiento de cuenta corriente
CTA:Haber = FAC:ImporteTotal
IF ACCESS:CtaCtes.INSERT()
MESSAGE('NO GRABA Recibo en cuenta Corriente','Mensaje del Sistema',ICON:Exclamation)
END

Luego para mostrar el resumen de cuenta usaria una Queue
QResumen: con los campos QR:Debe QR:Haber QR:Saldo
LOC:Saldo ! variable local para calcular el saldo
Free(QResumen)
I# = 0
LOC:Saldo = 0
CTA:Cliente = LOC:Cliente
SET(CTA:KeyCliente,CTA:KeyCliente)
LOOP UNTIL Access:Clientes.Next() OR CTA:Cliente Not = LOC:Cliente
I# += 1
QR:FechaEmi = CTA:FechaEmi
QR:Numero = CTA:Numero
QR:Debe = CTA:Debe
QR:Haber = CTA:Haber
LOC:Saldo+= (CTA:Debe - CTA:Haber)
QR:Saldo = LOC:Saldo
ADD(QResumen,I#)
IF ERRORCODE() THEN STOP(ERROR()).
END !Loop

! a la Queue la puedo mostrar en un Browse o imprimirla

! Imprimir desde una Queue
Loop I#= 1 to Records(QResumen)
Get(QResumen,I#)
Print(RPT:Detail1)
End
EndPage(Report)

Espero te sirva.
Desde Venado Tuerto saludos........
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de R.Pacheco

RE:Estado de Saldo

Publicado por R.Pacheco (63 intervenciones) el 15/04/2009 18:02:54
Hola
Marcerlo Gracia mi Hermano por tu excelente explicacion
voy a probar tu idea, es muy pero muy buena.

Te explico como lo estoy haciendo para ver tu sugerencia.
El procedimiento que tengo es una tabla llamada EstadoCuentaClientes.
Esta tabla se alimenta mientra voy haciendo factura en forma automaticatica,
poniendo el codigo de actualizacion en el aceptar del boton OK, la formula
que estoy utilizando para el el movimiento es : debito = TotalFactura entonces
Balance=Balance+Debito asi me se me va incrementando el balance.

Ahora algo los mismo cuando hago recibo de pago Credito =MontoRecibo
Balance=Balance-Credito
Aqui es donde tengo el mayor problema por que no da el resultado esperado de
lo quiero lograr, ejemplo si un cliente x tiene un saldo es 1000.00 y abono
500.00 el saldo debe ser 500.00, si el cliente x pago eso 500.00 el saldo
debe ser 0. Eso es lo que quiero logra. Cualquier otra sugerencia
será bien recibida.

Mi Mail es pachecoramon@hotmail.com
Estoy a tu orden desde Caribe Republica Dominicana.

Muchas gracia y recibe bendiciones para ti y los tuyos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Estado de Saldo

Publicado por Marcelo Madelon (572 intervenciones) el 16/04/2009 12:27:44
Cuando actualizas BALANCE estás seguro que lo pudiste leer?

Me imagino que BALANCE tiene un campo clave para identificar la cuenta.
Puede pasar que no tenga ningún movimiento (INSERT) o ya exista y tengas que actualizarla (UPDATE)

BALANCE
BAL:KeyCodCuenta
BAL:CodCuenta
BAL:Balance (campo para guardar el saldo).

Una opción sería: (las opciones dependerán de tu imaginación)
LOC:Existe (variable local para usar de bandera)

! Comprueba si existe para saber si debo actualizar o insertar un nuevo registro

LOC:Existe = 0
BAL:CodCuenta = FAC:CodCuenta ! Cargo la cuenta que usé en FACTURAS
IF NOT Access:BALANCE.Fetch(BAL:KeyCodCuenta) ! Lee y no la encuentra
LOC:Existe = 1 ! la encontró
END

BAL:Balance += Credito ! según venga de factura
BAL:Balance -= Debito ! según venga de recibo
! luego haria un INSERT o un UPDATE

IF LOC:Existe = 0
IF ACCESS:BALANCE.INSERT() ! Grabo
MESSAGE('NO GRABA BALANCE,'Mensaje del Sistema',ICON:Exclamation)
END
ELSE
IF Access:BALANCE.Update() ! Actualizo
MESSAGE('NO REGRABA BALANCE,'Mensaje del Sistema',ICON:Exclamation)
END
END

Desde Argentina un abrazo.
Avisame como te fue.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de R.Pacheco

RE:Estado de Saldo

Publicado por R.Pacheco (63 intervenciones) el 16/04/2009 14:51:47
Hola
Marcelo
No tengo palabra para agradecerte por tu valiosa ayuda.

Gracia a tu primera idea pude razonar y dejar que mi imaginación fluyera libremente,
en realida estaba comietiendo un error grande. Este es un Sistemita pequeño de
facturación no contemplo NroCuenta para los clientes, los manejo atravez del codigo del cliente, aqui estaba mi error. Auntomaticamente mientras voy generando una factura hago un insert a mi estructura de la tabla EstadoCuentaCliente esta contiene los siguientes campos:

Fecha NroDoc. Descripcion Debito Credito Balance
14/04/2009 00001 Factura 500.00 500.00
15/404/2009 00002 Factura 1500.00 2000.00

Hasta aqui todo va de maravilla el sistema responde con lo contemplado.
La formula utilizada puede ser Balance=Balance+Debito o Balance+=Debito
con cualquiera de las dos me acumula el balance del cliente

Ahora la gran pregunta es aquien le aplico la rebaja, en el momento de hacer el recibo,
aqui estaba mi error grandicimo, y a donde tu tiene razon marcerlo . No tengo llave por
balance ni tampoco por Numero de cuenta. Lo que hice fue crear una campo en
la tabla EstadoCuentaCliente llamando NroFactura con una llave NroFacturaKey.

Cuando Selecio la factura que va a pagar el cliente me afecta a ese balance.
Este es codigo que estoy usando en procedimeinto recibo dale un vitazo
para ver si esta bien.

!Mantenimeinto Recibo de Pago
ESCLIE:NroFactura= REPago:NroFactura
If Access:EstadoClientes.tryfetch(ESCLIE:NroFacturaKey)=Level:Notify
else
ESCLIE:Debito =0
ESCLIE:CodigoCliente =REPago:CodigoCliente
ESCLIE:NroDocumento =REPago:NroFactura
ESCLIE:DeFechas =REPago:Fecha
ESCLIE:Descripcion ='Recibo'
ESCLIE:Credito =REPago:MontoApagar
ESCLIE:Balance-=ESCLIE:Credito
IF Access:EstadoClientes.Insert()<>Level:Benign
MESSAGE('NO GRABA Factura en cuenta Corriente','Mensaje del Sistema',ICON:Exclamation)
Stop(Error())
end!End if
end!End if

Todavia no me esta haciendo lo que real quiero, que haga pero estoy llegando
al punto final y entendiendo los conceptos..

Voy a revizar esta ultimas consideraciones luego te aviso

Gracia mi hermano Dios te bendiga grandemente

Saludo afectuoso desde
Santo Domingo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de R.Pacheco

....Solucionado....

Publicado por R.Pacheco (63 intervenciones) el 17/04/2009 14:13:36
Ya pude solucionar este problema que me dio mucho dolor de
cabeza.
Pude amarrar los tres procedimientos por El balance del cliente.
EstadoCuentaCliente, Cuenta X Cobrar y Recibo de Pago.

Lo resulvi a la Dominicana. Facil, facil y muy facil

Gracia a Marcelo madelon por su gran colaboración
muchas Bendiciones
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:....Solucionado....

Publicado por Marcelo Madelon (572 intervenciones) el 17/04/2009 15:18:40
Por nada. Para eso estamos.
Cuando comencé con Clarion hubo mucha gente que me ayudó y de igual manera lo hace cuando tengo un problema.
Aprovecho para agradecer yo también a los que se toman un tiempo en darnos una mano.

Hoy por ti mañana por mi.

Desde Venado Tuerto - Argentina - Un abrazo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar