Skip to content

Ko‘chirishlar ​

Tovarlarni omborlar o‘rtasida, jumladan kompaniya va uning filiallari o‘rtasida ko‘chirish. Tasdiqlangunga qadar tovar jo‘natuvchi omborda qoladi, lekin band hisoblanadi; qoldiqlar «Tovarni qabul qilish»da o‘tkaziladi.

MetodManzilVazifasi
GET/company/trade/transfer/statsKo‘chirishlar statistikasi
GET/company/trade/transfer/download-exampleKo‘chirish importi shabloni
POST/company/trade/transfer/importExcel’dan ko‘chirish importi
PATCH/company/trade/transfer/{model}/completeTovarni qabul qilish
PATCH/company/trade/transfer/{model}/cancelKo‘chirishni bekor qilish
GET/company/trade/transferKo‘chirishlar ro‘yxati
GET/company/trade/transfer/{model}Ko‘chirish tafsilotlari
POST/company/trade/transferKo‘chirish yaratish
PUT/company/trade/transfer/{model}Ko‘chirishni tahrirlash

Ko‘chirishlar statistikasi ​

GET/company/trade/transfer/stats

Bo‘lim kartalari: jami ko‘chirishlar total_count, yo‘lda in_transit_count, qabul qilingan completed_count va ko‘chirilgan miqdor moved_quantity.

Sarlavhalar (headers) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

Javob · 200 ​

Javob maydonlari
MaydonTuriTavsif
total_countinteger
in_transit_countinteger
completed_countinteger
moved_quantityinteger
json
{
    "total_count": 1,
    "in_transit_count": 1,
    "completed_count": 0,
    "moved_quantity": 0
}

Ko‘chirish importi shabloni ​

GET/company/trade/transfer/download-example

Ko‘chirishni import qilish uchun Excel fayl namunasini yuklab beradi.

Sarlavhalar (headers) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

Javob · 200 ​

Javob — fayl yoki matn, JSON emas.

Excel’dan ko‘chirish importi ​

POST/company/trade/transfer/import

Fayldan ko‘chirish yaratadi (500 qatorgacha: tovar, variatsiya, miqdor). Tovar jo‘natuvchi omborda nom bo‘yicha qidiriladi, miqdor qoldiqdan oshmaydi; faol sotuvdagi tovarlarni ko‘chirib bo‘lmaydi. Xatolar katakni ko‘rsatadi.

Sarlavhalar (headers) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

So‘rov tanasi ​

MaydonTuriMajburiyTavsif
company_from_idintegerHaKompaniyadan. Foydalanuvchiga ochiq mavjud yozuv ID si
company_to_idintegerHaKompaniyaga. Foydalanuvchiga ochiq mavjud yozuv ID si
stock_from_idintegerHaOmbordan. Foydalanuvchiga ochiq mavjud yozuv ID si
stock_to_idintegerHaOmborga. stock_from_id dan farqli. Foydalanuvchiga ochiq mavjud yozuv ID si
commentstringYo‘qIzoh. Maks. 1000 belgi
filefileHaFayl. Formatlar: xlsx. Maks. 1024 KB
json
{
    "company_from_id": 1,
    "company_to_id": 1,
    "stock_from_id": 1,
    "stock_to_id": 2,
    "comment": "Comment 3"
}
bash
curl -X POST "https://api.wasyt.uz/company/trade/transfer/import" \
  -H "Accept: application/json" \
  -H "Accept-Language: ru" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"company_from_id":1,"company_to_id":1,"stock_from_id":1,"stock_to_id":2,"comment":"Comment 3"}'

Javob · 200 ​

Javob maydonlari
MaydonTuriTavsif
messagestringXabar
json
{
    "message": "Success"
}

Tovarni qabul qilish ​

PATCH/company/trade/transfer/{model}/complete

Ko‘chirishni yakunlaydi: qoldiqlar qabul qiluvchi omborga o‘tkaziladi, tovar narxlari qabul qiluvchi kompaniyada o‘rnatiladi. receiver_id — kim qabul qilgani (sukut bo‘yicha joriy foydalanuvchi). Omborlardan biriga ruxsati bor istalgan tomon faqat waiting_for_confirmation holatida tasdiqlay oladi.

Formadan (multipart/form-data) PATCH metodi POST + ?_method=PATCH parametri bilan yuboriladi.

Sarlavhalar (headers) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

Yo‘l parametrlari ​

ParametrTavsif
modelYozuv ID si

So‘rov tanasi ​

MaydonTuriMajburiyTavsif
receiver_idstringYo‘qMumkin qiymatlar: 2, 3, 5, 6, 7, 4

Javob · 200 ​

Javob maydonlari
MaydonTuriTavsif
messagestringXabar
json
{
    "message": "Success"
}

Ko‘chirishni bekor qilish ​

PATCH/company/trade/transfer/{model}/cancel

Ko‘chirishni ixtiyoriy cancel_reason sababi bilan bekor qiladi; band qilingan miqdor jo‘natuvchi omborda yana mavjud bo‘ladi. Faqat waiting_for_confirmation holatida va omborlardan biriga ruxsati bor foydalanuvchi tomonidan.

Formadan (multipart/form-data) PATCH metodi POST + ?_method=PATCH parametri bilan yuboriladi.

Sarlavhalar (headers) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

Yo‘l parametrlari ​

ParametrTavsif
modelYozuv ID si

So‘rov tanasi ​

MaydonTuriMajburiyTavsif
cancel_reasonstringYo‘qBekor qilish sababi. Maks. 1000 belgi
json
{
    "cancel_reason": "Cancel reason 1"
}
bash
curl -X PATCH "https://api.wasyt.uz/company/trade/transfer/1/cancel" \
  -H "Accept: application/json" \
  -H "Accept-Language: ru" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"cancel_reason":"Cancel reason 1"}'

Javob · 200 ​

Javob maydonlari
MaydonTuriTavsif
messagestringXabar
json
{
    "message": "Success"
}

Ko‘chirishlar ro‘yxati ​

GET/company/trade/transfer

Ko‘chirishlar sahifalab va filtrlar bilan, TR-… hujjat kodi, omborlar, imzolovchilar va haydovchi bilan.

Sarlavhalar (headers) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

So‘rov parametrlari ​

ParametrTavsif
filter[id]ID — aniq qiymat
filter[code]Kod — qator qismi bo‘yicha qidiruv
filter[creator_id]Yaratuvchi — aniq qiymat
filter[updater_id]Yangilovchi — aniq qiymat
filter[sender_id]aniq qiymat
filter[receiver_id]aniq qiymat
filter[company_from_id]Kompaniyadan — aniq qiymat
filter[company_to_id]Kompaniyaga — aniq qiymat
filter[stock_from_id]Ombordan — aniq qiymat
filter[stock_to_id]Omborga — aniq qiymat
filter[driver_id]aniq qiymat
filter[driver.car_number]qator qismi bo‘yicha qidiruv
filter[status]Status — aniq qiymat
filter[created_at]Yaratilgan — davr: [0] — dan, [1] — gacha (Y-m-d)
filter[completed_at]davr: [0] — dan, [1] — gacha (Y-m-d)
sort[]Saralash, - — kamayish bo‘yicha: id, -id, code, -code, created_at, -created_at
with[]Bog‘liq ma’lumotlarni qo‘shish: creator.profile, updater.profile, sender.profile, receiver.profile, company_from, company_to, stock_from, stock_to, driver, products, products.product, products.product.unit, products.sale_price
pageSahifa raqami, 1 dan
page-sizeSahifadagi yozuvlar soni, ko‘pi bilan 20
http
GET /company/trade/transfer?sort[0]=id&sort[1]=-id&sort[2]=code&sort[3]=-code&sort[4]=created_at&sort[5]=-created_at

Javob · 200 ​

Sahifalangan javob: yozuvlar data[] ichida, sahifalash links va meta da.

Javob maydonlari
MaydonTuriTavsif
dataobject[]Ma'lumotlar
data[].idintegerID
data[].creator_idintegerYaratuvchi
data[].updater_idintegerYangilovchi
data[].company_from_idintegerKompaniyadan
data[].company_to_idintegerKompaniyaga
data[].stock_from_idintegerOmbordan
data[].stock_to_idintegerOmborga
data[].codestringKod
data[].sender_idinteger
data[].receiver_idnull
data[].driver_idinteger
data[].commentstringIzoh
data[].statusstringStatus
data[].completed_atnull
data[].cancel_reasonstringBekor qilish sababi
data[].created_atstringYaratilgan
data[].updated_atstringYangilangan
json
{
    "data": [
        {
            "id": 1,
            "creator_id": 2,
            "updater_id": 2,
            "company_from_id": 1,
            "company_to_id": 1,
            "stock_from_id": 1,
            "stock_to_id": 2,
            "code": "TR-0001",
            "sender_id": 2,
            "receiver_id": null,
            "driver_id": 1,
            "comment": "Comment 1",
            "status": "waiting_for_confirmation",
            "completed_at": null,
            "cancel_reason": "Cancel reason 1",
            "created_at": "2026-09-30 12:47:59",
            "updated_at": "2026-09-30 12:47:59"
        }
    ],
    "links": {
        "first": "https://api.wasyt.uz/company/trade/transfer?page=1",
        "last": "https://api.wasyt.uz/company/trade/transfer?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [],
        "path": "https://api.wasyt.uz/company/trade/transfer",
        "per_page": 20,
        "to": 1,
        "total": 1
    }
}

Ko‘chirish tafsilotlari ​

GET/company/trade/transfer/{model}

Bitta ko‘chirish hujjati: kod, jo‘natuvchi va qabul qiluvchi omborlar, kim jo‘natgani va qabul qilgani, haydovchi, holat.

Sarlavhalar (headers) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

Yo‘l parametrlari ​

ParametrTavsif
modelYozuv ID si

Javob · 200 ​

Javob maydonlari
MaydonTuriTavsif
idintegerID
creator_idintegerYaratuvchi
updater_idintegerYangilovchi
company_from_idintegerKompaniyadan
company_to_idintegerKompaniyaga
stock_from_idintegerOmbordan
stock_to_idintegerOmborga
codestringKod
sender_idinteger
receiver_idnull
driver_idinteger
commentstringIzoh
statusstringStatus
completed_atnull
cancel_reasonstringBekor qilish sababi
created_atstringYaratilgan
updated_atstringYangilangan
json
{
    "id": 1,
    "creator_id": 2,
    "updater_id": 2,
    "company_from_id": 1,
    "company_to_id": 1,
    "stock_from_id": 1,
    "stock_to_id": 2,
    "code": "TR-0001",
    "sender_id": 2,
    "receiver_id": null,
    "driver_id": 1,
    "comment": "Comment 1",
    "status": "waiting_for_confirmation",
    "completed_at": null,
    "cancel_reason": "Cancel reason 1",
    "created_at": "2026-09-30 12:47:59",
    "updated_at": "2026-09-30 12:47:59"
}

Ko‘chirish yaratish ​

POST/company/trade/transfer

TR-… kodi bilan waiting_for_confirmation holatidagi ko‘chirish yaratadi. Miqdor jo‘natuvchi omborning mavjud qoldig‘i bo‘yicha tekshiriladi (boshqa yakunlanmagan ko‘chirishlar va ochiq sotuv savatlari ayirilgan holda). Jo‘natuvchi sukut bo‘yicha — kompaniya direktori; haydovchi driver_id bo‘yicha tanlanadi yoki to‘ldirilgan maydonlardan yaratiladi.

Sarlavhalar (headers) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

So‘rov tanasi ​

MaydonTuriMajburiyTavsif
company_from_idintegerHaKompaniyadan. Foydalanuvchiga ochiq mavjud yozuv ID si
company_to_idintegerHaKompaniyaga. Foydalanuvchiga ochiq mavjud yozuv ID si
stock_from_idintegerHaOmbordan. Foydalanuvchiga ochiq mavjud yozuv ID si
stock_to_idintegerHaOmborga. stock_from_id dan farqli. Foydalanuvchiga ochiq mavjud yozuv ID si
sender_idstringYo‘qMumkin qiymatlar: 2, 3, 5, 6, 7, 4
driver_idintegerYo‘qFoydalanuvchiga ochiq mavjud yozuv ID si
car_numberstringYo‘qMaks. 50 belgi
driver_namestringYo‘qMaks. 255 belgi
driver_phonestringYo‘qMaks. 50 belgi
commentstringYo‘qIzoh. Maks. 1000 belgi
productsobject[]HaMahsulotlar. Maks. 500 ta element
products[].idintegerYo‘qID
products[].product_idintegerHaTovar. Takrorlanmasin
products[].quantitynumberHaMiqdori. Verguldan keyin 4 tagacha raqam. Kamida 0.0001
json
{
    "company_from_id": 1,
    "company_to_id": 1,
    "stock_from_id": 1,
    "stock_to_id": 2,
    "comment": "Comment 3",
    "car_number": "01 A 777 AA",
    "driver_name": "Rustamov Jasur",
    "driver_phone": "+998 90 123 45 67",
    "products": [
        {
            "product_id": 1,
            "quantity": 1
        },
        {
            "product_id": 2,
            "quantity": 2
        }
    ]
}
bash
curl -X POST "https://api.wasyt.uz/company/trade/transfer" \
  -H "Accept: application/json" \
  -H "Accept-Language: ru" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"company_from_id":1,"company_to_id":1,"stock_from_id":1,"stock_to_id":2,"comment":"Comment 3","car_number":"01 A 777 AA","driver_name":"Rustamov Jasur","driver_phone":"+998 90 123 45 67","products":[{"product_id":1,"quantity":1},{"product_id":2,"quantity":2}]}'

Javob · 200 ​

Javob maydonlari
MaydonTuriTavsif
company_from_idintegerKompaniyadan
company_to_idintegerKompaniyaga
stock_from_idintegerOmbordan
stock_to_idintegerOmborga
commentstringIzoh
driver_idinteger
updated_atstringYangilangan
created_atstringYaratilgan
updater_idintegerYangilovchi
creator_idintegerYaratuvchi
codestringKod
sender_idinteger
idintegerID
json
{
    "company_from_id": 1,
    "company_to_id": 1,
    "stock_from_id": 1,
    "stock_to_id": 2,
    "comment": "Comment 3",
    "driver_id": 3,
    "updated_at": "2026-09-30 12:55:58",
    "created_at": "2026-09-30 12:55:58",
    "updater_id": 2,
    "creator_id": 2,
    "code": "TR-0002",
    "sender_id": 2,
    "id": 23
}

Xato misoli · 422 ​

json
{
    "message": "Значение поля Количество не может быть больше 0.",
    "errors": {
        "products.0.quantity": [
            "Значение поля Количество не может быть больше 0."
        ]
    }
}

Ko‘chirishni tahrirlash ​

PUT/company/trade/transfer/{model}

Ko‘chirish va uning qatorlarini yaratish qoidalari bo‘yicha qayta yozadi; qoldiqni tekshirishda hujjatning o‘zi hisobga olinmaydi. Faqat waiting_for_confirmation holatida; transport maydonlarisiz haydovchi o‘zgarmaydi.

Formadan (multipart/form-data) PUT metodi POST + ?_method=PUT parametri bilan yuboriladi.

Sarlavhalar (headers) ​

SarlavhaQiymatTavsif
AuthorizationBearer {token}POST /common/auth/login dan olingan token
Acceptapplication/jsonJavob JSON da
Accept-LanguageruXabarlar va nomlar tili: ru, uz, oz

Yo‘l parametrlari ​

ParametrTavsif
modelYozuv ID si

So‘rov tanasi ​

MaydonTuriMajburiyTavsif
company_from_idintegerHaKompaniyadan. Foydalanuvchiga ochiq mavjud yozuv ID si
company_to_idintegerHaKompaniyaga. Foydalanuvchiga ochiq mavjud yozuv ID si
stock_from_idintegerHaOmbordan. Foydalanuvchiga ochiq mavjud yozuv ID si
stock_to_idintegerHaOmborga. stock_from_id dan farqli. Foydalanuvchiga ochiq mavjud yozuv ID si
sender_idstringYo‘qMumkin qiymatlar: 2, 3, 5, 6, 7, 4
driver_idintegerYo‘qFoydalanuvchiga ochiq mavjud yozuv ID si
car_numberstringYo‘qMaks. 50 belgi
driver_namestringYo‘qMaks. 255 belgi
driver_phonestringYo‘qMaks. 50 belgi
commentstringYo‘qIzoh. Maks. 1000 belgi
productsobject[]HaMahsulotlar. Maks. 500 ta element
products[].idintegerYo‘qID
products[].product_idintegerHaTovar. Takrorlanmasin
products[].quantitynumberHaMiqdori. Verguldan keyin 4 tagacha raqam. Kamida 0.0001
json
{
    "company_from_id": 1,
    "company_to_id": 1,
    "stock_from_id": 1,
    "stock_to_id": 2,
    "comment": "Comment 1",
    "products": [
        {
            "product_id": 1,
            "quantity": 1
        },
        {
            "product_id": 2,
            "quantity": 2
        }
    ]
}
bash
curl -X PUT "https://api.wasyt.uz/company/trade/transfer/1" \
  -H "Accept: application/json" \
  -H "Accept-Language: ru" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"company_from_id":1,"company_to_id":1,"stock_from_id":1,"stock_to_id":2,"comment":"Comment 1","products":[{"product_id":1,"quantity":1},{"product_id":2,"quantity":2}]}'

Javob · 200 ​

Javob maydonlari
MaydonTuriTavsif
idintegerID
creator_idintegerYaratuvchi
updater_idintegerYangilovchi
company_from_idintegerKompaniyadan
company_to_idintegerKompaniyaga
stock_from_idintegerOmbordan
stock_to_idintegerOmborga
codestringKod
sender_idinteger
receiver_idnull
driver_idinteger
commentstringIzoh
statusstringStatus
completed_atnull
cancel_reasonstringBekor qilish sababi
created_atstringYaratilgan
updated_atstringYangilangan
json
{
    "id": 1,
    "creator_id": 2,
    "updater_id": 2,
    "company_from_id": 1,
    "company_to_id": 1,
    "stock_from_id": 1,
    "stock_to_id": 2,
    "code": "TR-0001",
    "sender_id": 2,
    "receiver_id": null,
    "driver_id": 1,
    "comment": "Comment 1",
    "status": "waiting_for_confirmation",
    "completed_at": null,
    "cancel_reason": "Cancel reason 1",
    "created_at": "2026-09-30 12:47:59",
    "updated_at": "2026-09-30 12:56:01"
}