Product's primary key is no longer the barcode, but a new sequential id. (products.product_id added as new column. products.bar_code no longer primary key.) Necessary foreign keys have been updated.
Transactions have a new penalty column, and penalties applied are logged here. These are shown in the user transaction list as well.
Nytt parameter stock fikk default-verdi 0. Dermed fungerer kall som
ikke vet om dette parameteret. Dessuten er det ganske tvilsomt at vi
noensinne har lyst til å initialisere et nytt produkt med en annen
stock enn 0.
To ting:
1) amount er ikke nødvendigvis 1 (selv om den alltid blir det slik vi
lager PurchaseEntries nå).
2) Justering av stock skal skje i Transaction.perform_transaction,
ikke når PurchaseEntry-en lages.
Gjorde følgende endring i databasen:
ALTER TABLE products
ALTER COLUMN name
TYPE CHARACTER VARYING(45);
Lagret samtidig lengden på produktnavnfeltet i Product.name_length
istedenfor å hardkode det rundt omkring i formatstrenger og
input-sjekker.
(\ /)
(O.o)
(> <) Bunny approves these changes.
* Ny tabell Transaction som brukes for alle transaksjoner; hver
transaksjon kan være knyttet til en Purchase eller ha en tekstlig
beskrivelse. (BuyMenu og TransferMenu viser de to måtene å bruke
Transaction på)
* Hvert kjøp kan ha flere brukere. Prisen fordeles likt blant
kjøperne (for øyeblikket antar jeg at alle pengebeløp i databasen er
lagret i kroner, og når totalprisen for et kjøp ikke går opp i
antall kjøpere rundes det ned til et helt antall kroner)
* Forbedret input i BuyMenu -- den gjetter på om man skriver inn et
produkt eller en bruker basert på hvor den finner treff. (Hvis
treffene er like gode begge steder velges det vilkårlig -- dette kan
endres om det viser seg å være et problem i praksis)
* BuyMenu lagrer faktisk kjøpene i databasen.
* ShowUserMenu viser alle transaksjonene til brukeren. Dette kan bli
mye etter hvert, så det bør sikkert begrenses på et eller annet vis
(for eksempel at den bare viser de siste N, for et egnet naturlig
tall N).
* Menu-klassen utvidet med kode for å vise menyen og velge ting fra
den, samt litt mer generelle funksjoner for å lese input
* Ny klasse Selector for «små» menyer som bare er for å velge en verdi
(disse skal ikke ha undermenyer)
* Nye menyer: ShowUserMenu, BuyMenu (foreløpig med kun innlesing av
data, ikke lagring), ProductListMenu
* Forsøk på «intelligent» håndtering av input i BuyMenu (se
funksjonene dwim_search og guess_data_type)
* La inn to tøyseprodukter i datafilen for å ha noen produkter å teste
med