Create BillListItemPack

Матеріал з SERVIO
Перейти до навігації Перейти до пошуку

Створення рахунку, і додавання вмісту рахунку на декілька позицій, в тому числі управління складом позиції

Розділ містить методи, необхідні для створення рахунку і управлінням його вмістом  


Опис Створення рахунку.
Метод POST
URL /POSExternal/Create_BillListItemPack



Request Headers
KEY VALUE
Content-Type application/json
AccessToken



Body raw (json)
 {
    "SystemCode": "123",
    "BillType": 1,
    //  "FirstDate": null,
    //  "LastDate": null,
    //  "UserName": null,
    //  "CompanyName": "TestCompany",
    //   "Class": "3", //string[20] доп.поле идентификации устройства
    //  "Description": "",
    //   "Locked": false,
    //  "NumType": 0,
    //   "GuestCount": 0,
    //   "CostOfDelivery": 0,
    "Items": [
        {
            "OperType": 1,
            "TarifItemID": 11467, //ИД позиции из Get_TarifItem 3209125
            "BillItemID": 1,
            "ParentID": null,
            "Quantity": 3,
            "Price": null,
            "ModifierID": null
        },
        {
            "OperType": 1,
            "TarifItemID": 11467, //ИД позиции из Get_TarifItem 3209087
            "BillItemID": 2,
            "ParentID": null,
            "Quantity": 1,
            "Price": null,
            "ModifierID": null
        }
    ]
 }



Типи даних Body
* Параметр Тип Опис
SystemCode String [32] Код системи
*
BillType Int Тип рахунку:

1 – звичайний рахунок;
4 – рахунок бронювання (за замовчуванням для готельної системи);
8 – рахунок доставки

*
FirstDate Datetime Дата початку надання послуг, допустиме значення NULL
*
LastDate Datetime Дата закінчення надання послуг, допустиме значення NUL
*
UserName String [64] Користувач що створив рахунок, допустиме значення NULL
*
PlaceCode String [32] Код місця надання послуги (обов'язковий параметр для рахунків бронювання), допустиме значення NULL для інших
*
EventID String [32] ID заходу для рахунків бронювання, допустиме значення NULL для інших
*
EventName String [32] Назва заходу для рахунків бронювання, допустиме значення NULL для інших
*
CompanyCode String [32] Код компанії, допустиме значення NULL
*
CompanyName String [32] Компанія, допустиме значення NULL
Class String [20] Клас
Model String [20] Модель пристрою
OSDevice String [20] ОС пристрою
Description Bool Опис рахунку, допустиме значення NULL
Locked String [20] Блокувати рахунок
NumType Int Вид рахунку
GuestCount Int Кількість гостей
idTemp Int Тимчасовий ID
CostOfDelivery Decimal Вартість доставки **
Total Decimal Загалом по рахунку ***
Deposite Decimal Сума створеня рахунку передоплатиШаблон:Якорь
EMail String Email
PhoneNumber String Номер телефону (в форматі 380993332211) *Якщо використовується данний параметр ми перевіряєм чи є в нас такий клієнт з таким № телефону. Якщо є то привязуєм цього клієнта до рахунку аналогічно методу SetParamsBillDeliverySite Якщо даного № немає то ми створюєм нову персону й карту (номер телефону = номеру карти)
Discounts Discounts [] Масив дисконтів. Елементи масиву структури з такими полями:
     | CardCode String Код картки
     | DiscountType Int Тип знижки:

1 картка,
2 за группою карток,
3 у відсотках,
4 у грошах,
5 акційний купон

     | OwnerID Int ID персони (якщо застосовується картка)
     | OwnerCode String Kод персони (якщо застосовується картка)
     | BraceletCode String Kод браслету (якщо застосовується картка)
     | PersonDiscountID Int ID картки (якщо застосовується картка)
     | Discount Decimal Дисконт
     | DiscountGroup Int Група дисконту
     | IsLoyalty Int Якщо застосовується лояльність - 1, інакше - 0
Items Items [] Масив позицій комплексного блюда. Елементи масиву структури з такими полями:
     | OperType Int Код операції:

1 – додавання нової позиції в рахунок,
2 – зміна раніше внесеної позиції в рахунку,
3 – видалення позиції з рахунку

     | BillItemID Int ID позиції. Якщо OperType=1, новий запис буде оновленно відповідно до цього параметру, згенерованому застосунком
     | TarifItemID Int ID номенклатури що дoдається (актуально лише за додавання позиції і заміни комплексу)
     | ModifierID Int ID модифікатора стану
     | ParentID Int ID базової позиції рахунку, якщо номенклатура що додається є модифікатором. Якшо ні, то NULL
     | Quantity Decimal Kількість номенклатури що додається або змінюється. Не аналізується за операції видалення
     | IsManualPrice Int Чи встановлюється ручна ціна. Якщо 1 то застосовується ціна з Price
     | Price Decimal Ціна номенклатури. Не аналізується для операції видалення
     | PickUp Int Ознака страви «З собою» (1-так, 0-ні)
     | Comment String Коментар до позиції
     | Print Bool Замовити і роздрукувати позицію
     | Seat Int Номер клієнта
     | SectionID Int ID відділу
     | Pos Int Порядок виносу
     | TimeOut Int Через скільки хвилин винос
     | ComplexID Int ID групи комплексу
     | SubItemID Int ID тарифної позиції за замовчуванням
     | CmxPrice Decimal Нова ціна позиції комплексу (для кіоску)
     | UseCmxPrice Int 1- використовувати ціну
0 – не використовувати (для кіоску)
     | TarifItemCode2 String Код зведення тарифної позиції*
     | PrintTaskCode Int Код для друку задачі на принтер( замовлення/повторення замовлення/відміна замовлення)
     | Total Decimal Сума позиції.
Якщо = 0 то тотал вираховується через ціну і кількість.
Якщо > 0 приводиться до цієї суми через знижку
     | ExciseStamps String [] Масив акцизних марок
Payment Payment [] Оплата рахунку. Включає в себе поля як в функції BillPaymentExt (Наприклад: «Payment»:{«PaymentID»:3133,»Summ»:20} ). Необов'язковий параметр.
* - позначення обов’язкового параметру
*TarifItemCode2 вказується для випадків коли TarifItemID невідомий або має більшу перевагу для використання
**Необов'язковий параметр.Якщо він буде переданий, в рахунок буде доданий товар з налаштування з кількістю 1 і з ручною ціною, вказаний в CostOfDelivery і дорівнює значенню в полі вартість доставки
***Необов'язковий параметр. Якщо він буде переданий, до рахунку буде застосовано Total але для застосування ціни відмінної від прайсу має бути встановлений параметр IsManualPrice
#Примітка4: Необов'язковий параметр. Створить рахунок передоплати. Якщо в налаштуваннях вказаний код оплати, рахунок буде закрито
Додатковий опис вихідних параметрів



Response (json)
{
    "Error": "",
    "Success": true,
    "BillID": 19903,
    "BillNumber": 16097,
    "BillTotal": 1400.00,
    "NumType": null,
    "Items": [
        {
            "BillItemID": 25936,
            "AppBillItemID": 1,
            "ParentID": 0,
            "Error": null
        },
        {
            "BillItemID": 25937,
            "AppBillItemID": 2,
            "ParentID": 0,
            "Error": null
        }
    ],
    "Discounts": [],
    "AllItems": [
        {
            "BillItemID": 25936,
            "Total": 1050.00,
            "ParentID": null,
            "TarifitemID": 14467,
            "Name": "Ананас",
            "ShortName": "Ананас",
            "Amount": 3.000,
            "Price": 350.00,
            "BillItemTempID": 1,
            "ModifierID": 0,
            "Status": 0,
            "ComplexID": null,
            "ItemType": "        ",
            "SubItemID": null,
            "SectionID": 12747,
            "ExciseStamps": null
        },
        {
            "BillItemID": 25937,
            "Total": 350.00,
            "ParentID": null,
            "TarifitemID": 14467,
            "Name": "Ананас",
            "ShortName": "Ананас",
            "Amount": 1.000,
            "Price": 350.00,
            "BillItemTempID": 2,
            "ModifierID": 0,
            "Status": 0,
            "ComplexID": null,
            "ItemType": "        ",
            "SubItemID": null,
            "SectionID": 12747,
            "ExciseStamps": null
        }
    ],
    "GUID": "8E7C8545-F81E-4CC8-AF7D-B23CD4B5D066"
}



Типи даних Response
* Параметр Тип Опис
Error String [] Опис помилки, що виникла
Success Bool Успіх виконання запиту
BillID Int ID рахунку
BillNumber Int Hомер рахунку
BillTotal Decimal Cума по рахунку
NumType Int Bид рахунку
Discounts Discounts [] Mасив результату застосування знижок. Елементи масиву структури з такими полями:
     | DiscountType Int Tип дисконту
     | Error String Повідомлення про помилку
     | BillDiscountID Int ID дисконту
Items Items [] Масив позицій комплексного блюда. Елементи масива структури з такими полями:
     | BillItemID Int ID позиції рахунку
     | AppBillItemID Int ID позиції згенерований мобільним додатком
     | ParentID Int ID батьківської позиції
     | Error String Опис помилки що виникла
     | AllItems AllItems [] Масив позицій . Елементи масиву структури з такими полями:
     || BillItemID Int ID позиції
     || Total Decimal Cума
     || ParentID Int ID батьківської позиції
     || TarifitemID Int ID тарифної позиції
     || Name String Hазва
     || Amount Decimal Kількість
     || Price Decimal Ціна
     || ExciseStamps String [] Mасив акцизних марок
     || ModifierID Int ID модифікатору
     || ComplexID Int ID категорії комплексу
     || SubItemID Int ID тарифна позиція за замовчуванням
     || Status Int Cтатус
     || BillItemTempID Int Tимчасовий ID позиції
     || ItemType String [32] Tип суб-позиції
* Позначення обов’язкового параметру
Додатковий опис вхідних параметрів