Установка статусов состояния заказа
Go to navigation
Go to search
Каждый заказ условно разделяется на 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.