Мы имеем
корзину заказов
, и теперь давайте немного усложним наше приложение и дадим
пользователю возможность внести некоторые изменения в корзину заказов.
Добавить и удалить блюдо из корзины, мы умеем.
Теперь, мы
создадим новое окно для редактирования выбранного блюда, где добавим
две новые кнопки увеличения и уменьшения количества выбранного блюда.
Как добавить в корзину заказов количества выбранного блюда
Введём в нашу корзину заказов двух новых столбцов, это столбец
Количество типа Number и установим Precision = 1,
и столбец Стоимость типа Math и установим
Precision = 1.00. Для столбца ‘Стоимость’ в строке
CONFIGURATION зададим следующую формулу: Price*Quantity,
где значение ‘Price’ возьмем из столбца SV_цена_заказа, а значение
‘Quantity’ из столбца Количество и установим Precision = 1.00
(Рис. 1). Теперь в столбце ‘Стоимость’ будет стоять стоимость всех блюд
данного вида.
Рис.1
У нас есть теперь колонка количества блюд данного типа, поэтому давайте
дадим пользователю возможность сразу при выборе блюда задавать и его
количество. Перейдём на вкладку ‘Layout’ и откроем одно из блюд, например,
салат ‘Селёдка под шубой’. Здесь у нас наименование блюда, его фото,
описание, цена и вес, которые берутся из таблицы ‘Лист1’. Нам сюда надо
добавить еще и количество (сколько блюд данного вида мы хотим положить
в корзину), но этого в таблице ‘Лист1’ нет, это должен задавать пользователь
при выборе и перемещении в корзину.
Рис.2
Вводить дополнительные параметры при выборе (по нажатию кнопки ‘Button’)
мы не можем, поэтому мы удаляем нашу кнопку ‘Выбрать’ и добавляем новый
компонент ‘Form Container’, и в строке Target table (вкладка General)
выбираем Корзина. Теперь в параметрах ‘Form Container’ мы имеем
параметры ‘Title’, ‘Время заполнение’ ‘User ID’, ‘Menu ID’ и ‘Количество’.
Здесь мы оставляем только ‘Title’ и ‘Количество’, а остальное удаляем.
Выбираем ‘Title’ и в блоке DATA (вкладка General) в строке Title пишем
Добавить в корзину.
Затем выбираем Number Entry Количество и в блоке DATA проверяем,
чтобы в строке ‘Column’ было выбрано ‘Количество’. Далее в строке 'Default
value' пишем 1 (если пользователь выбирает одно блюдо, то ему
незачем ничего вводить), в строке ‘Min Value’ также пишем 1
(количество блюд не может быть отрицательным или нулём), а в строке
‘Max Value’ я пишу 10 (это на ваше усмотрение).
И обязательно поставьте “Птичку” в Required (обязательно для
заполнения).
Рис.3
Заходим в наше приложение, и теперь мы можем задавать количество блюд
данного вида. Пишем или выбираем по стрелкам, сколько нам нужно, например
3.
В результате окно нашего приложения примет вид на рисунке 2.
Теперь выбираем наш компонент Form Container и в блоке “ADDITIONAL COLUMNS” (вкладка General) в строке ‘Время заполнения’ выбираем Current date/time, в строке ‘User ID’ - User > User Id, в строке ‘Menu ID’ - Menu ID. Строку количество мы оставляем пустой (её задаёт пользователь при выборе блюда) (см. Рис. 3).
В форме ‘Form Container’ сразу задаётся действие по записи строки к таблице (‘это наша таблица “Корзина”), и поэтому нам не надо добавлять его в блоке ‘AFTER SUBMIT ACTION → Show notification”. Но давайте поменяем сообщение и здесь я назову своё сообщение Добавить в корзину, а в самом сообщении укажу Блюдо добавлено в корзину.
Рис.4
Проверяем, жмём на кнопку Отправить и смотрим в таблице корзина. В
столбцах Look_menu_name, Количество, Look_menu_price, SV_цена заказа и
Стоимость, мы соответственно видим наименование, количество, цену, цену и
стоимость нашего выбранного блюда “Селёдка по шубой” (см. Рис. 4).
Т.е. всё работает замечательно.
Как добавить кнопки редактирования +/- в корзину заказов
Перейдём на вкладку ’Корзина’ и скорректируем её в части вывода позиций
кроме фото и наименования, добавим ещё пункт Количество, а также
вместо цены блюда я буду отображать стоимость всех блюд данного типа
(мне так больше нравится, хотя здесь можно оставить и цену одного блюда,
это на ваше усмотрение). Для этого выберем компонент “Collection Корзина”
и в ITEMS DATA зададим соответственно в ‘Title’ - Количество,
‘Description’ - Стоимость, ‘Meta’ - SV_название блюда и
‘Image’ - Look_menu_photo (Рис. 5). А наше приложение примет вид,
представленный на рисунке 6.
Рис.5
Рис.6
Такая последовательность выбрана, чтобы расположить сначала – ‘Наименование’,
затем – ‘Количество’ и ниже – ‘Стоимость’, так более понятно. Здесь можно
предварительно добавить новый компонент, например, Hint поместив
его на самый верх и сделать дополнительные пояснения.
Теперь нажмём на одно из блюд, где мы хотим изменить количество, например,
Салат из свеклы, и в от открывшемся окне удалим всё кроме
‘Breadcrumbs’. Затем добавим новый компонент TITLE → Simple
у которого в блоке DATA я оставлю только ‘Title’ где в строке выберу
SV_название блюда, а остальные строки сделаю пустыми (можно
оставить ещё и фото, но я думаю без него лучше). Добавим ещё один
компонент CONTENT → Fields, где в блоке OPTIONS в первом
пункте выберу столбец Количество, и добавлю ещё два пункта, это
столбец SV_цена заказа, который назову ‘Цена’, и столбец
Стоимость (Рис. 7).
Рис.7
Теперь добавим ещё один компонент, это Button Block. У него
STYLE я оставлю без изменения, он мне подходит. В OPTIONS в строке
‘Width’ я выберу ‘Auto’, а в строке ‘Alignment’ я выберу ‘По центру’,
а остальное оставлю без изменения. Здесь кому как нравится.
В блоке ACTION сначала нажмём на действие ‘Primary’ и в ‘Title’ напишу
+, иконку выбирать не буду. Далее нажимаю на ‘Open link’, и
последовательно выберу ‘DATA → Increment number’. Здесь мне по
умолчанию Glide в ‘Column’ выбрал Количество, что мне и надо.
Далее нажимаю ‘Add condition’ и добавляю условие где количество
меньше 10, т.е. увеличение блюд будет до числа 10. Число 10 я взял
для примера, а вы по желанию можете взять любое (см. Рис. 8).
Рис.8
Рис.9
Рис.10
Затем нажимаю на действие ‘Secondary’, где по аналогии создаём
аналогичное действие, только вместо ‘+’ пишем -, вместо инкремент
‘1’ пишем инкремент -1, а в условии выбираем is greater or
equal to и 1, т.е. число не может быть отрицательным.
В результате мы получили приложение, показанное на рисунке 9.
Проверяем. Мы имеем заказ в составе, которого 3 ‘САЛАТА ИЗ СВЕКЛЫ’,
со стоимостью трёх блюд 150.75 и общеё стоимостью заказа 1 040.75.
Нажимаем на блюдо и переходим к окну редактирования, нажимаем два раза
на кнопку плюс. Мы получили 5 блюд со стоимостью 251.25. Возвращаемся
к корзине и видим все наши изменения. При этом общая сумма заказа
увеличилась и стала 1 141.25 (Рис.10).
Всё замечательно работает. Осталось только забронировать заказ.
Все поля в форме для комментариев обязательны для заполнения. Для проверки, что вы человек, сложите два случайных числа слева от кнопки и результат поместите в поле рядом с кнопкой.
Перед публикацией все комментарии проходят обязательную модерацию!