New question

Question:

Date: 25-01-2020 15:46:41 (In Spanish)

Stock y cuenta corriente [Unresolved]

Hola gente una consulta si alguien desarrollo un sistema de gestión con cuentas corriente de clientes. Mi pregunta es si al cliente se le genera un campo que diga saldo y se va actualizando cada nueva venta o pago. O el otro método solo cargar débitos y créditos y el saldo se genera realizando la consulta entre sumas y resta.
Mi gran duda es que si cada vez que genero una consulta para verificar el saldo se debe sumar y restar y cada vez el procedimiento con el correr del tiempo va a ser más pesado.
No veo muchos sistemas como para poder ver la mejor manera.
Lo mismo para el stock de productos.



Saludos y gracias
Tags: MySQL - PHP - PHP MySQLi Votes: 0 - Answers: 8 - Views: 13 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 26-01-2020 01:17:45 Yo creo que la manera más sencilla es calcular el saldo con la función sum() de Mysql. Y usar una única columna para los importes, con signo positivo (debe) o negativo (haber).

    Si vas a generar el extracto de movimientos completo es mejor calcularlos con PHP.

    Una billetera virtual que programé en php la hice así.

    Hay programas de contabilidad que aún siguen guardando los saldos, pero a mí me parecen desfasados. Cualquier cambio en un apunte obliga a recalcular todos los saldos de cada cuenta, y esto recuerdo que de vez en cuando generaba errores.

    Sobre el rendimiento: yo creo que hoy en día las sumas no le provocan grandes problemas a ningún ordenador ni lenguaje, como podía pasar antes.

    La naturaleza del dato está clara: el saldo se obtiene directamente de los apuntes, y por tanto no debería guardarse.

    Ante un enorme volumen de apuntes quizás hay quien piense otra cosa. Es mi opinión como contable y programador.
      Votes: 1 - Link answer
     
  • Date: 26-01-2020 03:20:11 Hola Fernando buenos días gracias por su respuesta. La verdad que no se me había ocurrido hacerlo en una sola columna es creo que es lo más lógico y simple total al realizar la consulta queda el detalle de igual manera.
    Ahora con el tema stock también debería plantearse de igual manera no? Si hay que hacer ajustes por pérdidas o lo que fuera volvemos a estar en lo mismo de los saldos no?
    Muchas gracias por la ayuda!!!

    Saludos
      Votes: 0 - Link answer
     
  • Date: 26-01-2020 09:31:48 Sí así lo veo.   Votes: 0 - Link answer
     
  • Date: 28-01-2020 12:23:47 Hola, yo trabajé en eso. Te conviene guardar todos las actualizaciones como registro en la base de datos. Ejemplo a groso modo y en orden de indexado table_(columns):

    [cust_balances] (id, date, customer, action, credit, debit, balance)<-tabla madre para tu caso
    [cust_payments] (id, date, store, customer, method, method_id, total_tax, total_paid)
    [cust_invoices] (id, date, store, customer, invoce_id, total_tax, total_paid)

    etc...
      Votes: 0 - Link answer
     
  • Date: 28-01-2020 13:42:09 Hola Pablo gracias por la respuesta, voy analizar lo planteado se me hace un poco difícil de entender. Decís guardar cada resultado o indexar y calcular en las consultas!!
    Gracias
      Votes: 0 - Link answer
     
  • Date: 28-01-2020 16:16:39 Guardar cada resultado calculado con la fecha de la ultima modificacion ingresada. De esta manera imprimes el historial y no es necesario ningun calculo.
    El indexado es solo para el orden de las columnas en la base de datos. De esta manera, minimizas el tiempo de de busqueda en caso de que necesites filtar la busqueda y/o hacer calculos
    En corchete te puse las tablas, y en parentesis te puse las columnas de la tabla.

    Cualquier cosa, avisame.
      Votes: 0 - Link answer
     
  • Date: 28-01-2020 17:40:52 Pablo Cust_Balance, balance sería el resultado del cálculo no? Y sobre el tema stock también lo manejas de la misma manera?   Votes: 0 - Link answer
     
  • Date: 29-01-2020 04:27:47 Exacto, cust_balance guarda los resultados de los cálculos a la fecha. También para stock, ventas, etc. Te tenés que abstraerte fuera del código para entenderlo. Esto es lo que realmente significa "pensar fuera de la caja". Eso sí, también tenes que buscar reducir la menor cantidad de datos almacenados posibles por fila para extraer la misma información.
    Técnicamente, se llama Matriz de Estructura de Base de Datos.
    https://es.wikipedia.org/wiki/Matriz_(matemáticas)
    https://es.wikipedia.org/wiki/Modelo_de_base_de_datos
      Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In
 
frjcbbae garagebible.com