Tez Boshlash (2 daqiqa)

  1. 1. Tizimga kirish: Telegram orqali authenticate qiling va admin rolini tasdiqlang
  2. 2. Dashboard ko'rish: Asosiy KPI'lar - warehouse remaining, in transfer, delivered ga e'tibor bering
  3. 3. Eng muhim bo'limlar: Products → Transfers → Analytics → Reports tartibida o'rganing

Kim uchun

Tizimning bosh ma'muri, to'liq huquqlarga ega bo'lgan shaxs

Asosiy maqsad

  • Tizimni sozlash va boshqarish
  • Barcha ma'lumotlarga kirishni ta'minlash
  • Foydalanuvchilar va rollarni boshqarish
  • Hisobotlar va analitikani nazorat qilish

To'liq ruxsatlar

Admin qila oladi:
  • ✅ Barcha sahifalarni ko'rish (Dashboard, Products, Users, etc.)
  • ✅ Mahsulotlar qo'shish, tahrirlash, o'chirish
  • ✅ Foydalanuvchi va kuryerlarni boshqarish
  • ✅ Transferlar ustida to'liq nazorat
  • ✅ Kirim, Chiqim, Rad operatsiyalarini qo'shish
  • ✅ Barcha hisobotlar va eksportlar
  • ✅ Analytics va drill-down ko'rish
  • ✅ Tizim maintenance rejimi

Cheklovlar (hech narsa yo'q)

Admin rolida hech qanday cheklov yo'q - barcha funksiyalar mavjud.

Javobgarlik sohalari

  1. Tizimning umumiy holatini monitoring qilish
  2. Mahsulotlar bazasini yangi va dolzarb ushlab turish
  3. Kuryerlar va branch'larni to'g'ri sozlash
  4. Transfer jarayonlarini nazorat qilish
  5. Ma'lumotlar to'g'riligini ta'minlash

Dashboard nima uchun muhim

Dashboard - bu sizning "kommanda markazi". Barcha muhim ko'rsatkichlar bir joyda.

Asosiy KPI'lar tushunchasi

KPI nomi Qanday hisoblanadi Nimani bildiradi
Warehouse Remaining Income - Outcome - Refuse Omborga qolgan mahsulotlar miqdori
In Transfer Staff confirmed + Courier confirmed holatlari Hozir transferda bo'lgan mahsulotlar
Delivered (Today) Bugun completed bo'lgan deliverylar Bugungi yetkazib berishlar
Total Value Qoldiqlar × mahsulot narxlari Ombordagi umumiy qiymat

Dashboard'ni qanday o'qish

  1. Warehouse Remaining - bu eng muhim raqam. 0 ga yaqin bo'lsa, yangi mahsulot kerak
  2. In Transfer - transferlar tiqilib qolmaganini tekshiring
  3. Grafik va chartlar - 7 kunlik trend ko'rish uchun
  4. Pending transfers - qancha transfer kutilayotganini ko'rish
Diqqat: Agar Warehouse Remaining 0 yoki manfiy bo'lsa, bu inventory inconsistency'ni bildiradi. php artisan inventory:check komandasi bilan tekshiring.

Real-time updates

Dashboard ma'lumotlari har safar sahifa refresh bo'lganda yangilanadi. Ajax orqali real-time emas, ammo eng yangi ma'lumot olish uchun F5 bosing.

Mahsulot nima

Tizimda har bir mahsulot alohida ID, nom, narx, short_code va birlikka ega.

Yangi mahsulot qo'shish

  1. Products sahifasiga o'ting
  2. "Create Product" tugmasini bosing
  3. Majburiy maydonlarni to'ldiring:
    • Name: To'liq nomi (masalan, "Coca Cola 1.5L")
    • Short Code: Qisqa kod (masalan, "CC15")
    • Price: Narx so'mda
    • Unit: O'lchov birligi (dona, kg, litr)
  4. "Save" bosing
Short Code'ning ahamiyati: Bu kod Telegram botda ishlatiladi. Kuryer/omborchi oson taniy olishi uchun qisqa va tushunarli bo'lishi kerak.

Mahsulot tahrirlash

  1. Products jadvalidan kerakli mahsulotni toping
  2. "Edit" tugmasini bosing (qalam belgisi)
  3. Ma'lumotlarni yangilang
  4. Saqlang
Diqqat: Mahsulot narxini o'zgartirsangiz, yangi transferlarda yangi narx qo'llaniladi. Eski transferlarda eski narx saqlanadi.

Mahsulot o'chirish

Ehtiyot bo'ling! Mahsulotni o'chirganingizdan so'ng:
  • Eski transferlar va deliveries saqlanadi
  • Ammo yangi transfer yaratish mumkin emas
  • Income/Outcome/Refuse ham qo'shib bo'lmaydi

Mahsulotlar bo'yicha hisobot

Products sahifasida:

  • Current Stock ustunini kuzating
  • Excel/PDF eksport imkoniyati mavjud
  • Qidiruv va filtrlash ishlaydi

Eng ko'p uchraydigan xatolar

Xato Sababi Yechim
"Short code already exists" Bir xil qisqa kod Boshqa kod tanlang
"Price must be positive" Nol yoki manfiy narx Musbat son kiriting
"Cannot delete, product in use" Mahsulot transfer/delivery'da ishlatilgan Mahsulotni deactivate qiling, o'chirmang

Users vs Couriers farqi

  • Users: Telegram'da ro'yxatdan o'tgan barcha odamlar
  • Couriers: Courier roli berilgan va branch'ga biriktirilgan foydalanuvchilar

Yangi kuryerni qo'shish (2 xil usul)

Usul 1: Kuryer o'zi ro'yxatdan o'tadi
  1. Kuryerga Telegram bot manzilini bering
  2. Kuryer /start bosib, ma'lumotlarini kiritadi
  3. Siz Users sahifasida "requested" holatida ko'rasiz
  4. Edit tugmasini bosib, status'ni "courier" ga o'zgartirasiz
  5. Branch'ni tanlaysiz
  6. Kuryer avtomatik Telegram'da xabar oladi
Usul 2: Admin tomonidan qo'shish
  1. Couriers sahifasiga o'ting
  2. "Create Courier" tugmasini bosing
  3. Ma'lumotlarni to'ldiring (telegram_id, ism, telefon)
  4. Branch'ni tanlang
  5. Save bosing

Kuryer statuslari

Status Ma'nosi Qila oladi
requested Kuryer ro'yxatdan o'tdi, admin tasdiqlamagan Hech narsa (kutish holati)
courier Faol kuryer Transfer qabul/rad, Delivery yozish
guest Vaqtincha to'xtatilgan Faqat ko'rish (operatsiya yo'q)

Branch'larga biriktirish

Har bir kuryer faqat bitta branch'ga biriktririlishi mumkin:

  • Transfer faqat o'sha branch kuryerlari o'rtasida bo'ladi
  • Analytics va reports branch bo'yicha filtrlash imkoniyati
  • Branch o'zgarishi mumkin, ammo ehtiyot bilan

Kuryer ma'lumotlarini tahrirlash

  1. Couriers sahifasidan kerakli kuryerni toping
  2. Edit tugmasini bosing
  3. O'zgartira olasiz:
    • Ism va telefon
    • Branch
    • Status (courier ↔ guest)
  4. O'zgartirib bo'lmaydi:
    • Telegram ID
    • Eski transferlar tarixi
Muhim: Kuryerni o'chirishdan oldin, uning barcha transferlari completed yoki cancelled holatida ekanligini tekshiring.

Transfer nima va qanday ishlaydi

Transfer - bir kuryerdan ikkinchisiga mahsulot topshirish jarayoni.

Transfer statuslari ketma-ketligi

  1. draft → Yangi yaratilgan, hali hech kim ko'rmagan
  2. staff_confirmed → Omborchi Telegram'da tasdiqlagan
  3. courier_confirmed → Qabul qiluvchi kuryer tasdiqlagan
  4. staff_declined yoki courier_declined → Birov rad etgan

Yangi transfer yaratish

  1. Transfers sahifasiga o'ting
  2. "Create Transfer" tugmasini bosing
  3. Ma'lumotlarni to'ldiring:
    • Warehouse Staff: Beruvchi (omborchi)
    • Courier: Qabul qiluvchi
    • Branch: Qaysi branch
    • Note: Qo'shimcha izoh (ixtiyoriy)
  4. Transfer yaratilgandan keyin, mahsulotlar qo'shing:
    • "Add Item" tugmasini bosing
    • Product, Quantity, Price ni tanlang/kiriting
    • Bir nechta mahsulot qo'shish mumkin
Muhim qoidalar:
  • Transfer faqat draft holatida mahsulot qo'shish/o'chirish mumkin
  • Staff confirm qilgandan keyin o'zgartirish mumkin emas
  • Kuryer rad etsa, qayta draft holatiga qaytadi

Transfer monitoring

Transfers sahifasida quyidagilarni kuzata olasiz:

  • Status filter: Pending, Completed, Declined
  • Branch filter: Qaysi branch transferlari
  • Date range: Ma'lum muddat ichida
  • Courier filter: Aynan qaysi kuryer

Transfer'dagi xatolarni aniqlash

Belgilar Mumkin bo'lgan sabab Tekshirish usuli
Uzoq vaqt pending Kuryer Telegram'ni ko'rmayapti Kuryer bilan bog'laning
Total value noto'g'ri Quantity × Price xato hisoblangan Transfer detail sahifasini tekshiring
Ko'p decline Mahsulot yetishmayapti Kuryer qo'lida stock borligini tasdiqlang

Qo'lda transfer complete qilish

Ba'zida texnik sabablarga ko'ra, admin qo'lda statusni o'zgartirishi kerak bo'ladi:

  1. Transfer detail sahifasiga kiring
  2. Hozirgi statusni ko'ring
  3. Agar asosli sabab bo'lsa, database'da status'ni o'zgartirishingiz mumkin
  4. Buning uchun Laravel tinker ishlatish tavsiya etiladi
Diqqat: Qo'lda status o'zgartirish inventory'ga ta'sir qiladi. Faqat zarurat bo'lganda va inventory:check komandasi bilan hamma narsani tekshirib amalga oshiring.

Bu operatsiyalar nima uchun kerak

Warehouse remaining formulasi: Income - Outcome - Refuse

  • Income: Omborga mahsulot kelganda
  • Outcome: Kuryer mijozga yetkazib berganda
  • Refuse: Mahsulot buzilganda yoki rad etilganda

Income qo'shish

  1. Incomes sahifasiga o'ting
  2. "Create Income" tugmasini bosing
  3. Ma'lumotlarni to'ldiring:
    • Courier: Qaysi kuryer oladi
    • Product: Qaysi mahsulot
    • Count: Miqdori
    • Comment: Sabab (masalan, "Yangi yuklanish")
  4. Save bosing
Income qachon qo'shiladi:
  • Yangi mahsulot partiyasi kelganda
  • Qaytgan mahsulotlar (return) bo'lganda
  • Inventory recount natijasida ortiqcha topilganda

Outcome qo'shish

  1. Outcomes sahifasiga o'ting
  2. "Create Outcome" tugmasini bosing
  3. Ma'lumotlarni to'ldiring (Income'ga o'xshash)
  4. Comment'da sabab yozing
Outcome qachon qo'shiladi:
  • Kuryer mijozga yetkazib berganda (delivery complete)
  • Tekshiruv paytida kamchilik topilganda
  • Transfer'dan tashqari yo'qolishlar

Refuse qo'shish

Refuse - bu mahsulot buzilganda yoki rad etilganda qo'llaniladi:

  1. Refuses sahifasiga o'ting
  2. Mahsulot va kuryer ma'lumotlarini kiriting
  3. Refuse sababini comment'da yozing
  4. Miqdorni ehtiyot bilan kiriting

Operatsiyalarni monitoring qilish

Har birida quyidagi imkoniyatlar mavjud:

  • Date range filtri
  • Courier va Product filtrlari
  • Excel/PDF eksport
  • Real-time total ko'rsatkichlari

Eng ko'p uchraydigan xatolar

Muammo Sababi Yechim
Manfiy qoldiq Ortiqcha outcome yoki refuse inventory:check qiling, keyin tuzating
Kuryer tanib bo'lmaydi User courier role'ga ega emas Users sahifasida kuryer status berish
Mahsulot yo'q Product deactivated yoki deleted Products sahifasidan restore qiling

Best practices

  • Har doim comment yozing - keyingi tekshiruvda kerak bo'ladi
  • Katta miqdorlarni qo'shishdan oldin, inventarni tekshiring
  • Date'ni to'g'ri qo'ying - default bugungi kun
  • Outcome qo'shishdan oldin courier'da yetarli stock borligini tasdiqlang

Delivery nima

Kuryer mijozga mahsulot yetkazib berganda Telegram bot orqali yozadigan yozuv.

Delivery jarayoni

  1. Kuryer Telegram'da: /delivery buyrug'ini beradi
  2. Mahsulot tanlash: Qo'lida bor mahsulotlar ro'yxatidan tanlaydi
  3. Miqdor kiritish: Nechta yetkazib bergani
  4. Kompaniya nomi: Qaysi kompaniya/mijozga
  5. Foto yuklash: Delivery tasdig'i uchun rasm
  6. Confirm: Kuryer tasdiqlaydi
  7. Status completed: Tizimda saqlanadi

Admin'da delivery'larni ko'rish

Deliveries sahifasida:

  • Barcha delivery'lar chronological tartibda
  • Company name, courier, products ko'rish mumkin
  • Photo attachment'larni download qilish
  • Status tracking (completed/cancelled)

Filtrlash imkoniyatlari

Filter turi Qanday ishlaydi Ishlatish maqsadi
Date Range From/To sanalar Ma'lum muddat hisoboti
Courier Dropdown'dan kuryer tanlash Kuryer performance ko'rish
Company Search input Ma'lum mijoz buyurtmalari
Status Completed/Cancelled Muvaffaqiyatli delivery'lar

Delivery detail sahifasi

Har bir delivery'ni bosib, batafsil ko'rishingiz mumkin:

  • To'liq mahsulot ro'yxati va miqdorlar
  • Total value hisobi
  • Photo attachments (agar yuklangan bo'lsa)
  • Kuryer va mijoz ma'lumotlari
  • Timestamp (qachon yaratilgan/completed)
Photo requirement: Sistem photo yuklanishini talab qiladi, ammo ba'zi hollarda kuryer skip qila oladi. Photo yo'q bo'lsa, bu normal holat (masalan, tanish mijoz yoki ichki transfer).

Delivery va inventory bog'liq

Har bir completed delivery avtomatik ravishda:

  1. Kuryer qo'lidagi mahsulotni kamaytiradi
  2. Outcome yozuvi yaratadi
  3. Company history'siga qo'shadi
  4. Daily KPI'larga qo'shiladi

Muammolarni hal qilish

Muammo belgisi Sababi Yechim
Delivery total noto'g'ri Calculation error Detail sahifasini tekshiring
Photo ko'rinmaydi Upload failed Kuryer'dan qayta yuklashni so'rang
Company name noto'g'ri Kuryer xato yozgan Delivery detail'da admin tuzata oladi
Ko'p cancelled delivery Kuryer jarayonni tushunmaydi Kuryer bilan trening o'tkazing

Delivery hisobotlari

Deliveries sahifasida Excel/PDF eksport mavjud:

  • Filtrlangan delivery'lar eksporti
  • Company-wise breakdown
  • Courier performance ma'lumotlari
  • Date range ichidagi summary

Analytics vs Reports farqi

  • Analytics: Real-time ma'lumotlar, graf va chartlar
  • Reports: Structured jadval ko'rinishida ma'lumotlar

Analytics sahifasi

Analytics sahifasida quyidagi ma'lumotlar mavjud:

  • Total inventory value
  • Branch-wise breakdown
  • Courier performance metrics
  • Product movement trends
  • Daily/weekly/monthly filters

Courier analytics

  1. Analytics sahifasida courier nomini bosing
  2. Ochilgan sahifada ko'rasiz:
    • Total deliveries count
    • Total value delivered
    • Active transfers
    • Current stock on hand
    • Performance chart (kun boyicha)
  3. Date range o'zgartirib, boshqa muddat analytics'ini ko'rishingiz mumkin

Product analytics

  1. Products sahifasida mahsulot nomini bosing
  2. Ochilgan sahifada:
    • Stock movement history
    • Qaysi kuryer'larda qancha bor
    • Delivered quantities
    • Income/Outcome timeline

Reports sahifasi

Structured data ko'rish uchun:

  • Branch bo'yicha summary reports
  • Date range ichida activity
  • Custom filtrlash imkoniyati
  • Excel eksport

Eksport turlari

Eksport nomi Format Ma'lumot turi
Products Export Excel/PDF Barcha mahsulotlar va stock
Transfers Export Excel/PDF Transfer history
Deliveries Export Excel/PDF Delivery log'lari
Analytics Export Excel/PDF Aggregated ma'lumotlar
Couriers Export Excel/PDF Kuryer ma'lumotlari va statistics

Drill-down imkoniyatlari

Analytics'da click qilib, batafsil ko'rishingiz mumkin:

  1. Branch raqamini bosing → o'sha branch'dagi barcha activity
  2. Kuryer nomini bosing → kuryer performance detail
  3. Mahsulot nomini bosing → mahsulot movement history
  4. Graf ustidagi nuqtani bosing → o'sha kun detail ma'lumotlari

Performance indicators

Good indicators:
  • Steadily growing delivery numbers
  • Low transfer decline rate
  • Balanced inventory across couriers
  • Regular income/outcome activity
Warning indicators:
  • Sharp drops in delivery counts
  • High transfer decline rate
  • Inventory concentrated on few couriers
  • Long periods without activity

Hisobotlarni qanday ishlatish

  1. Haftalik review: Har dushanba analytics'ni ko'rib chiqing
  2. Performance tracking: Kuryer'lar orasida solishtirib ko'ring
  3. Inventory planning: Stock movement trend'ga qarab, yangi purchase planning qiling
  4. Problem identification: Anomaly'lar va unusual pattern'larni aniqlang

1. Dashboard'da noto'g'ri raqamlar

Belgilar: Warehouse Remaining manfiy yoki g'alati
  1. Terminal'da php artisan inventory:check komandasi ishlatish
  2. Chiqayotgan hisobotni diqqat bilan o'qish
  3. Negative stock entries'ni topish
  4. Manual ravishda Income/Outcome/Refuse balance qilish
  5. Qayta inventory:check ishlatib, to'g'riligini tasdiqlash

2. Kuryer Telegram'da javob bermaydi

Belgilar: Transfer uzoq vaqt pending holatida
  1. Couriers sahifasida kuryer status'ni tekshirish
  2. Agar "courier" bo'lsa, kuryer bilan telefon orqali aloqa
  3. Kuryer'dan Telegram bot'ni restart qilishini so'rash (/start)
  4. Agar muammo davom etsa, qo'lda transfer status o'zgartirish

3. Upload/Download muammolari

Belgilar: Excel/PDF eksport ishlamaydi
  1. Browser cache tozalash
  2. Boshqa browser'da sinab ko'rish
  3. Server storage space'ini tekshirish
  4. Laravel log'larni ko'rish

4. Login/Authentication muammolari

  1. Telegram bot ishlayotganligini tekshirish
  2. User'ning role'i to'g'ri berilganligini tasdiqlash
  3. Session clear qilish
  4. Server restart (agar kerak bo'lsa)

5. Performance sekinligi

  1. Database size'ini tekshirish
  2. Old records cleanup qilish
  3. Cache clear qilish (php artisan cache:clear)
  4. Database optimize (php artisan db:optimize)

6. Mahsulot duplicate muammolari

  1. Products sahifasida duplicate short_code'larni qidirish
  2. Duplicate'larni merge qilish yoki birini o'chirish
  3. Eski transfer'larda reference'lar buzilmaganligini tekshirish

7. Transfer stuck in pending

  1. Transfer detail sahifasiga kirish
  2. Timeline'ni ko'rish - qayerda to'xtab qolgan
  3. Warehouse staff va courier'ni alohida tekshirish
  4. Zarurat bo'lsa manual intervention

8. Delivery photo ko'rinmaydi

  1. File storage permission'larini tekshirish
  2. Storage path'ning mavjudligini tasdiqlash
  3. File size limit'ni tekshirish
  4. Kuryer'dan qayta upload qilishini so'rash

9. Branch/Courier biriktirish muammolari

  1. User role'larini tekshirish
  2. Branch'ning active ekanligini tasdiqlash
  3. Foreign key constraint'larni tekshirish
  4. Manual database update (ehtiyot bilan)

10. Reporting/Analytics noto'g'ri

  1. Date range to'g'ri tanlanganligini tekshirish
  2. Filter combination'larni reset qilish
  3. Browser cache tozalash
  4. Backend calculation'larni manual verify qilish
Umumiy maslahat: Har qanday katta o'zgarishdan oldin, database backup oling. Muammoni hal qilishda step-by-step approach qo'llang va har bir o'zgarishni log qiling.

Tez-tez so'raladigan savollar

S: Kuryer'ni qanday qo'shaman?

J: 2 usul bor: kuryer o'zi Telegram'da ro'yxatdan o'tadi (keyin siz approve qilasiz), yoki siz Couriers sahifasida "Create Courier" orqali qo'shasiz.

S: Transfer nima uchun pending holatida qoldi?

J: Kuryer yoki warehouse staff Telegram'da ko'rmagan bo'lishi mumkin. Ularni telefon orqali xabardor qiling yoki /start buyrug'ini qayta ishlatishlarini ayting.

S: Warehouse Remaining manfiy ko'rsatyapti?

J: php artisan inventory:check komandasi bilan tekshiring. Outcome yoki refuse ortiqcha qo'shilgan bo'lishi mumkin.

S: Mahsulot narxini o'zgartirsam, eski transfer'larga ta'sir qiladimi?

J: Yo'q, eski transfer'larda eski narx saqlanadi. Faqat yangi transfer'larda yangi narx qo'llaniladi.

S: Excel eksport ishlamayapti?

J: Browser cache tozalang, boshqa browser'da sinab ko'ring. Server storage space'i yetarli ekanligini tekshiring.

S: Kuryer'ning status'ini qanday o'zgartiraman?

J: Couriers sahifasida kuryer nomini topib, "Edit" tugmasini bosing. Status'ni "courier", "guest" yoki boshqasiga o'zgartirishingiz mumkin.

S: Delivery photo ko'rinmayapti?

J: Kuryer upload qilishda muammo bo'lgan. Ulardan qayta upload qilishini so'rang yoki file size'ni kichraytirish tavsiya eting.

S: Qo'lda transfer complete qilsam bo'ladimi?

J: Bo'ladi, ammo juda ehtiyot bilan. Database'da direct update qilishdan oldin, inventory:check bilan hamma narsani tekshiring.

S: Bir kuryer'dan ikkinchisiga ko'p mahsulot transfer qilsam?

J: Bitta transfer'da ko'p item qo'shishingiz mumkin. "Add Item" tugmasini bir necha marta bosib, har xil mahsulot qo'shing.

S: Analytics'da graf noto'g'ri ko'rsatyapti?

J: Date range'ni tekshiring, filter combination'ni reset qiling. Cache tozalab, sahifani refresh qiling.

S: Branch'ni qanday qo'shaman yoki o'zgartiraman?

J: Branches sahifasida "Create Branch" tugmasi bor. Mavjud branch'ni tahrirlash ham mumkin. Ammo kuryer'lar biriktirilgan branch'ni o'chirib bo'lmaydi.

S: Tizim sekin ishlayapti?

J: Cache clear qiling (php artisan cache:clear), eski ma'lumotlarni cleanup qiling, database optimize qiling.