Количество Условное - PullRequest
0 голосов
/ 22 января 2010

Вот тот, который поставил меня в тупик. Работаем в PHP5.

Я создаю приложение магазина для клиента, который использует веб-сервис от более крупного агентства, поскольку он является брокером. Этот веб-сервис требует, чтобы конечные пользователи приобретали определенное количество товаров, иначе заказ будет признан непригодным для покупки.

Я должен сделать выпадающие списки опций, которые содержат только допустимые номера количества. Их правила таковы:

Если доступно количество больше 12, то разрешите любое количество, КРОМЕ, кроме того, что осталось бы только один элемент

Если доступно количество меньше 12, а указанное количество четное, то разрешите покупать только четные пары

Если доступно количество менее 12, а указанное количество нечетно, то разрешите любое количество, кроме того, которое оставило бы только один элемент.

Я немного сбит с толку относительно того, как мои условия для определения выпадающего контента должны быть структурированы, чтобы приспособиться к этому. Как я мог заранее узнать через условные выражения, будет ли окончательное количество по сравнению с запрошенным пользователем количеством оставить только один для покупки и тем самым отклонить его?

Я не могу себе представить, почему поставщик услуг не сделал этого, чтобы был возвращен массив приемлемых количеств, а не твердое число. Также обратите внимание, что есть два других правила, которые мне уже удалось выполнить.

Любая помощь будет принята с благодарностью!

Ответы [ 3 ]

1 голос
/ 22 января 2010
if($avail>12 || $avail%2) {
  $step = 1;  // all qtys for large avail or odd avail
} else {
  $step = 2;  // even qtys for small even avail
}
$options = array();
for($i = $avail-($step==1); $i > 0; $i-=$step) { // skip qty=avail for step=1
  $options[] = $i;
}
1 голос
/ 22 января 2010

Я не знаю синтаксис PHP; вот какой-то псевдокод:

if(quantity >= 12 or quantity%2 == 1)
{
    dropdown.add(quantity);
    for(allowed = quantity-2; allowed >= 1; allowed--)
        dropdown.add(allowed);
}
else
{
    for(allowed = quantity; allowed >= 2; allowed -= 2)
        dropdown.add(allowed);
}
0 голосов
/ 22 января 2010

Если доступно количество q:

Если доступно количество больше 12, то разрешите любое количество, КРОМЕ ТОГО, которое оставит только один элемент если (q> 12)

// разрешить все количества до q-2

Если доступно количество меньше 12, а указанное количество четное, то разрешается покупать только четные пары if (q <12 && isEven (q)) </p>

// разрешить все четные количества вплоть до q

Если доступно количество менее 12 и указанное количество нечетно, то разрешите любое количество, кроме того, которое оставило бы только один элемент. if (q <12 && isOdd (q)) </p>

// разрешить все количества, меньшие q-2

...