15. Команда "Order.Content.Out" (заказать подвоз товара по строчке накладной)

korvin
Администратор
Сообщения: 201
Зарегистрирован: 18 ноя 2017, 15:36

15. Команда "Order.Content.Out" (заказать подвоз товара по строчке накладной)

Сообщение korvin » 18 мар 2019, 09:45

Код команды = 15.

Команда отдается путем добавления записи в таблицу sarmat.command_order.

Команда собирает элемент заказа. Либо реально привозит товар в ячейки сброса, либо распределяет его среди уже подвезенных контейнеров в месте отбора. Команде указывается группа ячеек, куда подвозить товар, код товара, номер волны, номер заказа, количество. Передаются поля:
  • Good_desc_id = ID товара
  • comp_name = имя компьютера, с которого была отдана команда
  • GD_PARTY_ID = ID партии товара (может быть пусто, если не используется)
  • RP_id = ID подсклада (необязательный параметр, если не указан, ищется склад для отбора)
  • Cell_Name = Названия ячеек через запятую (необязательный параметр, если не указан, то подразумеваются все ячейки сброса склада для отбора)
  • Quantity = Кол-во товара
  • Order_number = Номер заказа
  • Group_number = Номер волны
  • Point_number = Номер рабочего места
  • COMP_NAME = имя компьютера, с которого инициировалась команда

По мере выполнения команды во вновь созданной записи таблицы sarmat.command_order автоматически заполняются поля:
  • command_gas_id - ссылка на соотв. команду более низкого уровня. Может быть = null в случае, если в команде более низкого уровня нет необходимости, т.е. если нужный товар уже подвезен по предыдущим командам и есть в нужном количестве в контейнере.
  • user_name - Oracle - пользователь, отдавший команду
  • quantity_promis - какое количество будет обещано подвезти по этой команде (в общем случае = quantity)

Также возвращается в поле «State» результат выполнения команды:
  • = 0 команда еще не запущена
  • = 1 команда принята к выполнению АСК
  • = 2 ошибка выполнения команды (нехватка товара) - в этом случае в поле command_order.quantity_deficit пишется сколько штук не получится подвезти
  • = 3 подвезены первые контейнеры к месту сброса по команде
  • = 5 подвезены все контейнеры по команде (но сама команда может быть еще не завершена)

По ходу выполнения (подвоза контейнеров) будет заполняться таблица command_order_out_container с полями:

  • cmd_order_id = на ID команды Order.Content.Out
  • container_id = id контейнера
  • container_barcode = ШК контейнера
  • good_desc_id = ID товара
  • gd_party_id = ID партии товара
  • quantity = кол-во товара в подвезенном контейнере для этого заказа
  • order_number = номер заказа
  • group_number = номер волны заказов
  • cell_name = название ячейки, куда был выгружен контейнер
  • point_number = Номер рабочего места

Также, по ходу подвоза контейнеров, на каждый подвезенный контейнер открывается "отбор" - добавляется запись в таблицу container_collection - с полями:
  • container_id - на ID контейнера
  • container_barcode - ШК контейнера
  • cmd_gas_id - на команду более низкого уровня, по которой был изначально подвезен контейнер. Могут быть другие команды command_gas по этой же container_collection!
  • cell_name - имя ячейки, куда был привезен контейнер
  • state - состояние отбора. Может принимать следующие значения: =0 (отбор активен), =1(отбор закрыт)

Пример команды:

Код: Выделить всё

insert into sarmat.command_order (command_type_id, rp_id, cell_name,  Good_desc_id, Quantity,Order_number,  Group_number, Point_number, gd_party_id, COMP_NAME)
values(15,1,'001U003','9826562',513,123,545,4,3467, 'CLIENT_ASK_2')
returning ID into :CMDID;

Вернуться в «АСК Рязань»