переспав с вопросом, тоже решил что вариант с одной моделью более правильный, но если в модели хранится только текущий id страны, чем будут остальные данные нужные для рендера селектора страны? и где подписаться на изменения?...
хочется обойтись без (еще) сторонних библиотек.
да... такую сумму они не смогут отправить с этой функцией или без нее( заказчик вроде бы понимает это, попробую жестко забить периоды, выложу сюда итоговый код, спасибо всем за помощь.
это будет как опция, например для страховых фирм которым по бухгалтерии надо выплатить ровно 160 и ни копеечки больше, а получателю уже придет обрезанная сумма. Такие суммы ходить часто не будут, но пропускать мимо глаз такое нельзя.
$x=$ore->calc();
if($x==false) {
$j = 155;
do {
$j++;
echo $j;
$y = $ore->error($j);
} while ($y<150);
$_SESSION['errorMsg'] = "Невозможно расcчитать сумму \"с учетом оплаты за пересылку\" в границах от 155.01-$j золота. Укажите другую сумму.";
header("Location: index.php?error=incorrect");
}
вот тут если пришло false, нужно как то обработать ошибку и выдать период в котором нельзя платить, сейчас тут просто цикл с добавлением по 1 золоту пока не достигнет условия, но "заказчику" не нравится точность... по 1 копейке крутить цикл я не хочу, вижу выход просчитать заранее руками и тупо прописать жестко, но есть диференциация по срочно/не срочно, с уведомлением/без уведомления, да и при смене тарифов все надо считать заново...
Извените что долго не отвечал, вы правильно поняли задачу, и вроде бы правильно все у вас реализовано, но при $payment = new Payment(168); выдает вот это:
Платеж: 168 Сумма к зачислению: 153 Комиссия: 15
сумма 153 должна считаться по верхнему тарифу, а тут она посчиталась по нижнему... потому что сумма 168 попадает в плохой период, его мне и нужно нормально обрабатывать.
это работает только для одного вида комиссии, а когда есть два вида(до и после 150,00), есть промежутки сумм которые невозможно так просчитать, я в условии писал об этом на примере суммы 168,00 золота.
155 это действительно магическое число) это тот самый порог между двумя тарифами комиссий, все что выше 155,00 проходит по второму тарифу, а все что меньше и равно 155,00 проходит по первому.
Суть в том, что ваша комиссия прибавится к сумме перевода, а в моем случае, комиссия должна взяться из суммы перевода, вот я хочу отправить 200 золота и что бы комиссию оплатил получатель, то есть надо рассчитать такую сумму, при которой добавление комиссии будет ровняться 200 золота. А в вашем случае комиссия добавится к сумме перевода, т.е. комиссию платит отправитель.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.