Работа с заказом
В данной главе собраны команды и функции, позволяющие работать с заказами.
Работа с реестром заказов
LoadOrder
LoadOrder [<OrderID>|Last]
Команда LoadOrder осуществляет работу с реестром заказов.
Если команда задана без параметров, то открывается таблица реестра заказов.
Если задан числовой параметр <OrderID>
, то открывается заказ с указанным ID.
Если задан ключ Last
, то открывается последний заказ.
CloseOrder
CloseOrder
Команда закрывает текущий заказ.
SaveOrder
SaveOrder
Команда сохраняет текущий заказ.
OrderExport
OrderExport <FileName> [ overwrite ]
Команда осуществляет экспорт текущего заказа в файл <FileName>
. Если файл с таким именем существует, выдается предупреждение о перезаписи файла. Если задан необязательный ключ overwrite
, то файл перезаписывается без предупреждения. Если имя файла не задано, то открывается диалоговое окно с запросом имени файла.
OrderImport
OrderImport <FileName>
Команда осуществляет импорт заказа с именем <FileName>
в реестр заказов. Если имя файла не задано, то открывается диалоговое окно с запросом имени файла. Если в имени файла не задано расширение, то подставляется .zip. Если в имени файла не задана папка, то подставляется метапапка <ExportImport>
.
RemoveCurrOrder
RemoveCurrOrder
Команда осуществляет удаление текущего заказа из реестра заказов. Команда добавлена 26.09.2023.
NewOrder
NewOrder [NoDC]
Команда создает новый заказ в текущем реестре заказов. Необязательный ключ NoDC
создаёт новый заказ без открытия диалогов.
Информация о текущем заказе
GetOrderInfo
VARIANT GetOrderInfo(STRING <Field>)
Функция возвращает информацию о текущем заказе. Возвращается значение поля бланка заказа, заданное строкой <Field>. Если информация о заказе не может быть получена (нет текущего заказа и пр), возвращается пустая строка. Если запрашивается размер скидки\Наценки или курс условной единицы, то возвращается число.
Имя поля |
Назначение поля |
---|---|
ID |
ID заказа |
Name |
Название заказа |
Number |
Номер заказа |
Customer |
Заказчик |
Address |
Адрес |
Phone |
Номер телефона |
Date |
Дата приема заказа |
ExpDate |
Дата исполнения заказа |
Firm |
Фирма |
Saloon |
Салон |
Acceptor |
Имя приемщика заказа |
Executor |
Имя исполнителя заказа |
AddInfo |
Дополнительная информация о заказе |
ToWorking |
Дата передачи заказа на производство |
NCurrency |
Валюта, используемая в заказе |
Discount |
Размер скидки\наценки |
Rate |
Курс условной единицы |
fGUID |
GUID заказа |
Еще один вариант синтаксиса функции исключительно для поля AddInfo.
INTEGER GetOrderInfo(STRING <Field>, String <ArrName>)
Функция создает и заполняет массив, заданный строкой <ArrName>
. Массив заполняется построчно содержимым поля AddInfo (Дополнительная информация) для текущего заказа. Функция возвращает количество заполненных элементов массива.
Внимание!
Если функция вернула 0 (нет дополнительной информации), то массив не создается
Пример на языке python:
import k3 # type: ignore def order_info(): """ Возвращает массив с информацией о заказе. Параметры: None Возвращаемое значение: список Состоит из следующих элементов: * 0 — служебный элемент; * Name — название заказа; * Number — номер заказа; * Customer — имя заказчика; * Address — адрес заказчика; * Phone — телефон заказчика; * Date — дата заказа; * Salon — название салона; * Acceptor — фамилия приёмщика; * NCurrency — валюта счёта; * Rate — курс валюты; * Discount — скидка; * GUID — GUID заказа; * ArrAInfo — дополнительные сведения о заказе (если есть). Если массив n_arr пуст, то соответствующий элемент будет пустым. """ n_arr = k3.getorderinfo("AddInfo", "ArrAInfo") order_info =[0, k3.getorderinfo("Name").strip(), k3.getorderinfo("Number").strip(), k3.getorderinfo("Customer").strip(), k3.getorderinfo("Address").strip(), k3.getorderinfo("Phone").strip(), k3.getorderinfo("Date"), k3.getorderinfo("Salon").strip(), k3.getorderinfo("Acceptor").strip(), k3.getorderinfo("NCurrency").strip(), k3.getorderinfo("Rate"), k3.getorderinfo("fGUID"), k3.getorderinfo("Discount"), "".join(i.value for i in k3.VarArray(0, "ArrAInfo")) if bool(n_arr) else '', ] return order_info
Результат работы:
Команда: ;mrm 1 //;macro "C:\\MyProto\\core_k\\tests\\orderinfo_example.py" done ;macro "C:\\MyProto\\core_k\\tests\\orderinfo_example.py" done [0, '2403-1228', '24031228-62-БЗМ', '', 'г Какойто Гдетовский проспект д.1 кв.8', '+7 (564) 987-2589', '03/07/2024', 'Гостиная', 'Модерн', 'у.е.', 100.0, '{D2EF3454-1F03-4159-80E3-2A7460A39C40}', 3.0, 'Дополнительная информация о заказе: 1. Делай РАЗ 2. Делай ДВА']
PutOrderInfo
LOGICAL PutOrderInfo(STRING <Field>, STRING <Value>)
— для всех полей, кроме Discount и Rate
LOGICAL PutOrderInfo(STRING <Field>, DOUBLE <Value>)
— для Discount и Rate
LOGICAL PutOrderInfo(STRING <Field>, STRING <ArrName>[, INTEGER <Begin>[, INTEGER <Count>]])
— для AddInfo
Функция записывает информацию в реестр заказов. <Field>
— название поля в реестре заказов, куда нужно записать информацию. <Value>
— значение, которое нужно записать. <ArrName>
— имя строкового массива, содержищего построчно дополнительную информацию о заказе (поле AddInfo). Необязательные параметры <Begin>
и <Count>
определяют, с какой строки читать информацию в массиве <ArrName>
(по умолчанию — с первой строки) и сколько строк читать (по умолчанию — до конца массива)
Функция возвращает 1 в случае успешного завершения и 0 в случае ошибки (не определен текущий заказ, нет такого поля и пр.)
Внимание!
В поле ID (ID заказа) записать информацию нельзя. Значение этого поля назначаются системой автоматически