Door
Mohamed nvt
op 08-10-2017 21:23
gewijzigd op 08-10-2017 21:52
3.098 views
Hallo allemaal,
Voor elk medicijn kan er een USD- of een IQD-valuta ingevoerd en opgeslagen worden. Elk valuta heeft een eigen kolom nl, purchasepriceDi of purchasepriceDo.
En nu probeer ik het valuta voor elk medicijn weer te geven in een tabel/td.
En hiervoor gebruik ik onderstaande code.
Maar jullie raden het al; nu worden beide valuta's weergegeven in een tabel/td voor alle medicijnen i.p.v. enkel wat bij een medicijn hoort.
Ik snap niet helemaal waarom je je beperkt tot deze valuta. Zo werkt de medicijnahandel niet. Ook niet in Irak. Medicijnen worden verhandeld in hun bronvaluta. Afhankelijk uit welk land een medicijn afkomstig is kan dit dus andere valuta zijn.
Tip: leer eerst eens wat over wat software voor apotheken doet en waarom het doet wat het doet. En begin dan opnieuw, want het gaat echt van kwaad tot erger.
Omdat alleen deze valuta's van belang zijn voor degene die de applicatie zullen gebruiken.
En deze gebruikers zijn lokale apothekeres, en kopen hun medicijnen van een importeur/"lokale" tussenhandelaar en er zal betaald worden alleen in USD of in IQD.
En, eigenlijk moet je deze applicatie heel eenvoudig zien en niet als een gewone apotheek software, die zware eisen en functies heeft ;-)
Als currencydi niet leeg is
OF
als currencydo een waarde bevat
DAN....
dus als een van de de 2 een waarde bevat, of beide dan...
En DAN:
print je ook inderdaad beide waarden.
Mogelijk mis je ergens een ELSE in je code?
En daarbij is de hele voorwaarde ook wat vaag.
btw:
is het nu handig om beide valuta in een aparte kolom te plaatsen?
Het lijkt mij verstandiger om het bedrag in 1 kolom te zetten, en daarnaast een kolom die aangeeft of het om USD of IQD gaat.
Dan kun je namelijk heel eenvoudig omschakelen als er een 3e currency bij komt. Nu kun je wel roepen dat het er 2 zijn en altijd 2 blijven, maar de praktijk altijd anders. Kost je nu mogelijk een middag extra om te snappen hoe je het op die manier doet, maar mochten ze ineens toch op het idee komen om Euro's, Yens of Sjekels nodig te hebben, dan moet jij je hele applicatie opnieuw bouwen. (of je bent in 15 minuten klaar door currency en weergave formaat op te nemen)
Dus als ik het goed begrijp, dan moet ik het op de volgende manier aanpakken:
1. In de medicines tabel 1x kolom aanmaken voor de waarde van verschillende valuta
1. Een aparte tabel aanmaken voor verschillende valuta met als kolomen; id, name
3. In de medicines tabel een foreign key opnemen die linkt naar valuta tabel
4. Het invoer formulier wijzigen als volgt; huidige input fields voor valuta verwijderen. een dropdown lijst die weergeeft uit welke valuta een gebruiker kan kiezen. Naast dit een input field beschikbaar maken voor het invoeren van de waarde van valute?
5. Tijdens het weergeven van welk valuta bij elk medicijn hoort, controleren welk id van valuta hoort bij een medicijn?
Door het huidige ontwerp van je database moet je nu ook noodgedwongen een rare spagaat maken in je code. Wanneer je je database beter structureert zal dit ook een positief effect hebben op de code die hiermee moet werken.
en dan kun je in die nieuwe tabel ook iets opnemen over het gewenste formaat van weergeven (decimaal tekens, aantal cijfers achter de komma etc)
Tnx!
Dat doe ik toch in de medicines tabel door een kolom aan te maken voor de waarde van een valuta met bijbehorende type voor kolom? En tijdens het weergeven van een valuta gebruik ik dan number_format om het valuta netjes/correct weer te geven?
Of bedoel je dat ik een extra kolom moet aanmaken in het valuta tabel voor decimaal tekens, aantal cijfers? Maar betekent dit dat ik number_format straks niet nodig heb?
---
al is even de vraag of het number format nu afhankelijk is van de currency of van de taal van de lezer.
Als ik schrijf dat iets $4,95 kost, dan is dat voor heel Nederland duidelijk.
Maar een hoop Amerikanen zullen € 4.467,95 er weer raar vinden uitzien. En dat is dus afhankelijk van de lezer, niet van de valuta.