Kosztorys inwentaryzacji „pierwsze weszło-pierwsze wyszło” (FIFO)

Oto ciekawy artykuł, który okazał się przydatny w moim projekcie:

Speed ​​Phreakery: Problem z zapasami zapasów FIFO SQL:

Tabela zapasów, której używamy do śledzenia ruchów zapasów w naszym wyimaginowanym magazynie magazynowym. Nasz magazyn jest początkowo pusty, a następnie magazyn przechodzi do magazynu w wyniku zakupu zapasów (tranCode = „IN”) lub z powodu kolejnego zwrotu (tranCode = „RET”), a zapasy wycofują się z magazynu, gdy jest sprzedawany (tranCode = „OUT”). Każdy typ tempa jest określony przez ID artykułu. Każdy ruch magazynu w magazynie lub poza nim, spowodowany zakupem, sprzedażą lub zwrotem danej pozycji, powoduje dodanie wiersza do tabeli akcji, jednoznacznie identyfikowanej przez wartość w kolumnie tożsamości StockID i opisującej liczbę elementy zostały dodane lub usunięte, cena zakupów, data transakcji i tak dalej.

Chociaż używam tego w moim bieżącym projekcie, utknąłem na tym, jak uzyskać cenę za każdą transakcję „OUT”. Muszę mieć tę wartość, aby ustalić, ile obciążę moich klientów.

Najpierw dodaj 5 sztuk jabłek (po 10,00 $) do magazynu, w sumie 50,00 USD

Dodaj 3 jabłka (po 20,00 $) do łącznej liczby 8 jabłek, za łączną cenę 110,00 $

Następnie wyjmij 6 przedmiotów (po 5 $ 10,00 i 1 20,00 $) łącznie 70 $

Po transakcji pozostawi 2 jabłka po 20 USD każda, w sumie 40 USD

 Here's my current table
 Item    transaction code    qty     price   
 apple   IN                    5     10.00    
 apple   IN                    3     20.00   
 apple   OUT                   6          

 Manual computation for the OUT transaction price (FIFO)
 QTY     price   total price 
 5       10.00   50.00 
 1       20.00   20.00 
 TOTAL:6         70.00 

 Output of the script:
 Item    CurrentItems   CurrentValue
 apple   2            40.00

 What I need:
 Item    transaction code    qty     price   CurrentItems    CurrentValue 
 apple   IN                    5     10.00   5               50.00 
 apple   IN                    3     20.00   8               110.00 
 apple   OUT                   6             2                   40.00 

 This too will be OK
 Item    transaction code    qty     price   CurrentItems    
 apple   IN                    5     10.00   0               
 apple   IN                    3     20.00   0                
 apple   OUT                   6         70 

Opublikowany skrypt, który wygrał konkurs, był bardzo przydatny, mam nadzieję, że ktoś może mi pomóc w uzyskaniu ceny za transakcję „OUT”

questionAnswers(5)

yourAnswerToTheQuestion