Установка статусов состояния заказа
Перейти к навигации
Перейти к поиску
Каждый заказ условно разделяется на 16-ть этапов выполнения заказа. Любой из них может иметь следующие предопределенные состояния - "не установлен" (0), "нужен" (1), "в работе" (2), "завершен" (3).
Приведенный ниже скрипт показывает возможность установки каждого из этапов в определенное состояние путем указания кода (значение в скобках).
uses SysUtils;
var
zk: TZakaz; // объект заказа
state_old, state_new: integer;
// коды статуса (0 - не установлен, 1 - нужен, 2 - в работе, 3 - выполнен)
id: TId32; // номер изменяемого состояния (1..16 - соответствуют номерам в списке)
begin
zk := gd.Zakazes.Items.GetById(1); // получаем объект заказа по номеру
if assigned(zk) then // если заказ найден
begin
gd.Zakazes.ReloadNew2(zk, true); // загружаем заказ в полном виде из базы
id := 6; // определяем номер устанавливаемого состояния
state_new := 1; // задаем значение кода статуса
state_old := zk.ZakazState.GetStateById(id);
// получаем из заказа код статуса нашего состояния
if (state_old <> state_new) then // если они отличаются
begin
zk.ZakazState.SetStateById(id, state_new); // установим новый статус
gd.Zakazes.Items.Update(zk); // сохраним изменения в базу
ShowMessage('Done'); // отрапортуем о завершении работы
end else // если пытаемся поставить такой, который уже установлен
ShowMessage('States are equal.'); // просто сообщим о недоразумении
end else // а вот если заказ не нашелся
ShowMessage('Order not assigned :('); // сообщаем о проблеме
end.