# Ombor jarayonlari

> Import, yetkazib beruvchiga buyurtma, transfer, hisobdan chiqarish, inventarizatsiya — umumiy mexanika.

BILLZ’dagi barcha ombor operatsiyalari bir xil tuzilgan: bu **pozitsiyalar bilan to’ldiriladigan va keyin yakunlanadigan hujjat**.

```plaintext
hujjat yaratish ──> pozitsiyalar qo'shish ──> yuborish / yakunlash ──> qabul qilish / bekor qilish
```

## Transfer (do’konlar o’rtasida ko’chirish)

| Qadam                    | Metod                         |
| ------------------------ | ----------------------------- |
| Ro’yxat                  | `GET /v2/transfer`            |
| Yaratish                 | `POST /v2/transfer`           |
| Mahsulot qo’shish        | `POST /v2/transfer/:id/add`   |
| Yuborish                 | `POST /v2/transfer/:id/send`  |
| Qabul qilish (yakunlash) | `PUT /v2/transfer/finish/:id` |
| O’zgartirish             | `PUT /v2/transfer/update/:id` |
| Qoralamani o’chirish     | `DELETE /v2/transfer/:id`     |
| Pozitsiyalar ro’yxati    | `GET /v2/transfer-items/:id`  |

«Yuborilgan», «tekshiruvda», «tugallangan» holatlaridagi hujjatni o’chrib tashlash mumkin emas. Yakunlash uchun **belgilangan** do’konga kirish ruxsati talab etiladi: usiz javob — do’konga kirish imkonsizligi haqidagi xabar bilan `400` bo’ladi.

## Hisobdan chiqarish

| Qadam                   | Metod                          |
| ----------------------- | ------------------------------ |
| Yaratish                | `POST /v2/write-off`           |
| Mahsulot qo’shish       | `POST /v2/write-off/:id/add`   |
| Yakunlash               | `PUT /v2/write-off/finish/:id` |
| Rad etish               | `PUT /v2/write-off/cancel/:id` |
| Sabablar ma’lumotnomasi | `GET /v2/write-off-reason`     |

Hisobdan chiqarish sababi majburiy bo’lib, `id` bo’yicha kompaniya ma’lumotnomasidan olinadi. Yangi sabablar BILLZ interfeysida kiritiladi. Ba’zi sabablar xizmatga oid — inventarizatsiya yakunlari bo’yicha hisobdan chiqarish va katalogdan hisobdan chiqarish.

## Yetkazib beruvchiga buyurtma

| Qadam                           | Metod                                    |
| ------------------------------- | ---------------------------------------- |
| Yaratish                        | `POST /v2/supplier-order`                |
| Mahsulot qo’shish (bittalab)    | `PUT /v2/supplier-order/add-item`        |
| Yuborilmaganni o’zgartirish     | `PUT /v2/supplier-order/update/:id`      |
| Yuborish (holatni o’zgartirish) | `PATCH /v2/supplier-order/change-status` |
| Ro’yxat                         | `GET /v2/supplier-order`                 |
| Buyurtma pozitsiyalari          | `GET /v2/supplier-order-products/:id`    |

## Import (mahsulot kirimi)

Birdaniga pozitsiyalar bilan importni yaratish — `POST /v2/product-import/create-with-products`, ro’yxat — `GET /v2/import`, bitta mahsulotni yaratish — `POST /v2/product`.

## Umumiy qoida

Ombor metodlari asinxrondir: natijani olish uchun `Billz-Response-Channel: HTTP` uzatiladi