Реализация в Юпитере

Реализация в Юпитере

Автоматическое открытие\закрытие рабочего дня в планировщике (в 00:00)
При закрытии дня, запускается процедура формирования расходных накладных (вместо формирования реализации).
- Накладные создаются с привязкой к кассовому заказу
- На каждый день доставки, своя накладная
- В накладную записывать кассового клиента (ссылка) (в контрагента) и адрес доставки (текст) (в комментарий).
При закрытии дня, после создания накладных запускается процедура, которая создает план производства на завтра. План производства нужен для печати заборного листа.

Доработки загрузки заказов с сайта:

- Все заказы с сайта загружаются закрытыми, т.к. на данном этапе КЦ нет и кассовыми заказами пользователи не работают.
- Загружать с сайта график доставки
- Загружать с сайта изменённые наборы, рационы

- Загружать сразу и кассовый заказ и расходную накладную
  - В кассовый заказ загружаем только товары 1го уровня (наборы, рационы)
  - В накладную загружаем товары для отгрузки (наборы)
  - Накладную создаем сразу на дату отгрузки
  - Если состав набора изменен, то нужно использовать механизм "Измененный состав"

  • Загрузка заказов с сайта.
    • Своя отдельная процедура загрузки заказов с сайта
    • Загружать расходные накладные
      • Клиента создавать как обычно, записывать в накладную как контрагента
      • Адрес записывать в комментарий
      • Подразделение определяется жестко по коду "sklad"
      • В накладную загружать куби. Для рациона их нужно получать из связанного плана меню
      • Формировать и записывать в строки с куби Название набора
        • Для куби из само-набранных наборов это строка "Набор куби № " + set_id".
          • Например "Набор куби № 1"
          • set_id - номер набора, получаем из файла с заказом
        • Для куби из рационов это строка Название рациона + " " + Номер рациона  +", День " + Номер дня + ", " + Название приёма пищи
          • Например "Разгрузка мясная, День 1, Завтрак"
          • Название рациона - название услуги-рациона
          • Номер рациона - если в одном заказе есть несколько одинаковых рационов, то Юпитер автоматически присваивает им номер по порядку
          • Номер дня - получаем из плана меню
          • Название приёма пищи - получаем из плана меню
    • По одному заказу создается несколько накладных, на разные даты
      • Рационы доставляются через день. Везут куби на два дня вперед.
      • В выходные не доставляют. Выходные не входят в график рациона.
      • Дата первой накладной определяется сайтом параметром delivery_at
      • Все само-набранные наборы загружаются в первую накладную
    • Сайт передает время доставки параметром delivery_at, нужно его загружать и сортировать накладные по времени.
    • Вместе с накладной создавать кассовые заказы сразу закрытыми
      • Адрес записывается как строка
      • Торговый зал определяется по полю restaurant_id . Зона доставки и координаты не используются.
        • По restaurant_id находим торговую точку, берём её первый торговый зал
      • Все заказы считаем оплаченными на сайте. Если заказ не оплачен, то сайт его не передает в Юпитер.
      • В заказ загружать все товары как передано. Т.е. куби из само-набранных наборов и рационы в виде услуг.
  • Процедура печати заборного листа
    • Выводит свёрнутый список куби с количеством, из всех документов продажи по накладной за день.
  • Процедура печати этикетки на коробку.
    • Выводить Название для группировки под ней выводить список куби
  • Процедура печати этикетки на пакет.
    • Выводить имя и номер телефона клиента
    • Выводить адрес доставки
    • Выводить свёрнутый список всех Названий для группировки с кол-вом
    • Выводить свёрнутый список всех куби с кол-вом
  • Работу с  документами продажи по накладной (сборка заказов) вывести в основное меню (не через кассу)
  • Нужно отключить формирование реализации по рабочим дням (так, чтобы это не вызывало проблемы)
  • Как-то автоматически открывать\закрывать рабочий день
  • План меню
    • Добавить колонку "Итого". Выводить в неё итоговые значения по плану меню в целом (КБЖУ, Себестоимость, Сумма розничная, Прибыль).
    • Сохранять эти значения в документ плана меню при акцепте
  • В список накладных добавить кнопку изменения даты (без входа в форму)

Доработки выгрузки меню на сайт:

Меню выгружается формате: menu_2022_07_28_11_41_06.json

- Выгружать состав наборов (рецепты)
- Выгружать состав рационов (план меню).
- Выгружать на сайт состав куби (!!! подумать, т.к. это товары)

 

В items добавляем

"type": 1 // 1 - набор, 2 - рацион

{
"id": "3:3:0:6061",
"name": "ГОВЯДИНА С ЛАПШОЙ",
"code": "В53",
"ei": " порция",
"ves": "270",
"price": "209.00",
"vat": 20,
"description": "",
"show_modifiers_always": 1,
"max_weight_summ": "",
"type": 1 // 1 - набор, 2 - рацион
},

 

 

 

Где брать состав:

      • Состав рационов: План меню
        • products - рационы
        • ingredients - наборы
      • Состав наборов: Рецепты наборов
        • products - наборы
        • ingredients - куби
      • Состав куби: Рецепты изделий-куби, привязанных к товарам-куби
        • products - куби
        • ingredients - ингредиенты куби

 

Для состава наборов передаём файл recipes_2022_07_28_11_33_15.json (см.приложенный файл)

Для состава рационов передаём файл rations.json (см. приложенные файл) по структуре аналогичен recipes, только добавляется day (порядковый номер дня) и mealtime (название приема пищи):

...
"composition": [
	{
    	"product_id": "3:1:0:301",
        "ingredient_id": "3:1:0:207",
        "brutto": "1.0000",
        "netto": "1.0000",
        "output": "1.0000",
        "day": "1",
        "mealtime": "Завтрак"
        },
...


Доработки модуля "Касса":

  • Добавляем возможность открывать список расходных накладных через кассу
  • Для этого делаем специальный вид просмотра "Сборка заказов"
    • Показывает накладные по текущему складу
    • Показывает накладные на завтра
    • Работает в режиме "Только просмотр"
  • В окне "Сборка заказов" добавляем функцию печати  "Заборного листа". Выводит печатную форму с информацией, сколько каких "Куби" нужно для сборки всех заказов. Данные для печатный формы, собираем по документам расхода ингредиентов (всё их содержимое свернутое по товару).
  • В окне "Сборка заказов" добавляем функцию "Начать сборку"
    • Сохраняет в накладной текущего сотрудника в поле "Сборщик"
    • Вызывает функцию печати этикеток по накладной
      • FastReport, предпросмотр
      • Для каждой единицы набора, выводит одну этикетку
      • На этикетке печатается общая информация и перечень куби в наборе
    • Вызывает функцию печати сводной этикетки 
      • На сводной этикетке выводим контакты клиента, адрес доставки, состав заказа и общее количество куби каждого вида в заказе
      • Программа запрашивает сколько копий сводной этикетки нужно распечатать

 

Изменённый формат передачи тега item с сайта в Юпитер:

  • <item> (рацион, набор - то, что клиент добавил в корзину - со всеми текущими стандартными параметрами)
    • <delivery_date> (передаётся дата доставки, если их несколько, то таких разделов будет несколько)
      • <date>20220629</date> 
      • <subitem> ( с теми же параметрами, что и item )
      • </subitem>
      • <subitem> ( модификатор для предыдущего subitem)
      • </subitem>
      • <subitem> ( модификатор для предыдущего subitem)
      • </subitem>
      • ..
      • <subitem> ( с теми же параметрами, что и item )
      • </subitem>
      • ..
    • </delivery_date> 
    • ..
  • </item>

 


Система JUPITER                                 www.jupiter.systems                                 (с) 2024г.