Ver Mensaje Individual
  #5  
Antiguo 02-10-2018
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Yo tengo una tabla que tiene los datos básicos del documento y el cálculo del Precio Medio Ponderado.
A esto agrego una marca de validez.
Cuando hay una modificación/inserción o borrado, invalido los registros posteriores a la fecha.
De esta manera si encuentro un registro que es válido lo utilizo. Si es inválido llamo a una función que recalcula a partir de una fecha y me devuelve el registro que quiero.

Ejemplo:
  1. entra 10 a 100€
  2. Salen 5 a 90€
  3. Entran 7 a 90€
Código:
ID_ART, FECHA, ID_DOC_Y_LIN, UDS, PRECIO, STOCK, PMP,    LIFO,   FIFO,   VALIDO
1,      1/1/18, 1,           10,  100.00, 10,    100.00, 100.00, 100.00, 1
1,      4/1/18, 2,           -5,  100.00,  5,    100.00, 100.00, 100.00, 1
1,      9/1/18, 3,            7,   90.00, 12,     94.17,  90.00, 100.00, 1
...

Última edición por duilioisola fecha: 02-10-2018 a las 16:51:57.
Responder Con Cita