У меня большие трудности с чем-то очень простым, и после того, как я попытался найти ответ в течение двух дней, мне нужна помощь.PHP, работающий с валютами и единицами
В моей базе данных по продуктам, я работает с валютами. Я хотел бы сохранить все цены на товары в центах. Все отлично до этого момента, так как я также работаю с подразделениями. Мои продукты состоят из бакалейных товаров. Так, к примеру, у меня есть следующие продукты, которые я могу выбрать из:
- Bottle of Coca Cola
- Can of Beer
- Pack of Milk
.. and so on
Единиц вышеуказанных продуктов, как правило, в количестве, вы можете получить 1 бутылка кокса, или два, и так далее.
Рядом с этим есть продукты, такие как курица или стейк. Они измеряются в унциях, фунтах, камнях и т. Д. Я хотел бы сохранить цену 1 грамм для каждого продукта.
Теперь, я могу добавить в нашу базу данных units
и просто для каждого продукта добавить блок. Например, для бутылок кокса я могу добавить блок под названием bottle
или просто piece
. А для курицы, стейка я мог бы сказать gram
. Или я могу использовать числовые значения, а для бутылки я просто использую 1
и для грамма, вероятно 1000 на один килограмм, или 500 фунтов.
Затем, чтобы выполнить некоторые вычисления, я мог бы просто сделать это, для каждого продукта, при отображении данных:
$total_price = $product->price * product->unit * product->amount/100
Сумма означает введенную сумму, например, я хочу две бутылки кокса , Я ввожу 2
за сумму. Или, я хочу 700 граммов курицы, я просто вхожу в 700. Кажется, это работает. Но мне это просто не кажется правильным, похоже, должен быть лучший способ сделать это.
Другая проблема заключается в отображении всех цен на каждый продукт. Я, конечно, не хочу отображать их в центах, а скорее в евро, поэтому я просто делю price per piece
на 100 и затем показываю эту цену. Так, например, одна бутылка кокса стоит 2 евро, тогда в моей базе price
поле для бутылки кокса - 200 (cents)
, а при получении цены и ее отображении я делю его на 100, чтобы отобразить 2 евро.
Но для курицы, стейка и так далее я не могу этого сделать. Я бы, например, сначала должен был рассчитать цену от 1 грамма до 1000 грамм, а затем снова разделить эту цену на 100, чтобы отобразить правильные евро.
Итак, с радостью, кто-то понимает мою проблему здесь, и любые указатели в правильном направлении, чтобы помочь мне найти мой ответ, будем очень благодарны.
Похоже, вы ищете улучшения кода. Возможно, вас интересует наш сайт Code Review: http: //codereview.stackexchange.com/ – Litty