Команда отдается путем добавления записи в таблицу 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;