Admin Qo'llanmasi
Tizim ma'muriyati va to'liq nazorat imkoniyatlari
Tez Boshlash (2 daqiqa)
- 1. Tizimga kirish: Telegram orqali authenticate qiling va admin rolini tasdiqlang
- 2. Dashboard ko'rish: Asosiy KPI'lar - warehouse remaining, in transfer, delivered ga e'tibor bering
- 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
- ✅ 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
- Tizimning umumiy holatini monitoring qilish
- Mahsulotlar bazasini yangi va dolzarb ushlab turish
- Kuryerlar va branch'larni to'g'ri sozlash
- Transfer jarayonlarini nazorat qilish
- 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
- Warehouse Remaining - bu eng muhim raqam. 0 ga yaqin bo'lsa, yangi mahsulot kerak
- In Transfer - transferlar tiqilib qolmaganini tekshiring
- Grafik va chartlar - 7 kunlik trend ko'rish uchun
- Pending transfers - qancha transfer kutilayotganini ko'rish
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
- Products sahifasiga o'ting
- "Create Product" tugmasini bosing
- 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)
- "Save" bosing
Mahsulot tahrirlash
- Products jadvalidan kerakli mahsulotni toping
- "Edit" tugmasini bosing (qalam belgisi)
- Ma'lumotlarni yangilang
- Saqlang
Mahsulot o'chirish
- 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
- Kuryerga Telegram bot manzilini bering
- Kuryer /start bosib, ma'lumotlarini kiritadi
- Siz Users sahifasida "requested" holatida ko'rasiz
- Edit tugmasini bosib, status'ni "courier" ga o'zgartirasiz
- Branch'ni tanlaysiz
- Kuryer avtomatik Telegram'da xabar oladi
Usul 2: Admin tomonidan qo'shish
- Couriers sahifasiga o'ting
- "Create Courier" tugmasini bosing
- Ma'lumotlarni to'ldiring (telegram_id, ism, telefon)
- Branch'ni tanlang
- 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
- Couriers sahifasidan kerakli kuryerni toping
- Edit tugmasini bosing
- O'zgartira olasiz:
- Ism va telefon
- Branch
- Status (courier ↔ guest)
- O'zgartirib bo'lmaydi:
- Telegram ID
- Eski transferlar tarixi
Transfer nima va qanday ishlaydi
Transfer - bir kuryerdan ikkinchisiga mahsulot topshirish jarayoni.
Transfer statuslari ketma-ketligi
- draft → Yangi yaratilgan, hali hech kim ko'rmagan
- staff_confirmed → Omborchi Telegram'da tasdiqlagan
- courier_confirmed → Qabul qiluvchi kuryer tasdiqlagan
- staff_declined yoki courier_declined → Birov rad etgan
Yangi transfer yaratish
- Transfers sahifasiga o'ting
- "Create Transfer" tugmasini bosing
- Ma'lumotlarni to'ldiring:
- Warehouse Staff: Beruvchi (omborchi)
- Courier: Qabul qiluvchi
- Branch: Qaysi branch
- Note: Qo'shimcha izoh (ixtiyoriy)
- Transfer yaratilgandan keyin, mahsulotlar qo'shing:
- "Add Item" tugmasini bosing
- Product, Quantity, Price ni tanlang/kiriting
- Bir nechta mahsulot qo'shish mumkin
- 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:
- Transfer detail sahifasiga kiring
- Hozirgi statusni ko'ring
- Agar asosli sabab bo'lsa, database'da status'ni o'zgartirishingiz mumkin
- Buning uchun Laravel tinker ishlatish tavsiya etiladi
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
- Incomes sahifasiga o'ting
- "Create Income" tugmasini bosing
- Ma'lumotlarni to'ldiring:
- Courier: Qaysi kuryer oladi
- Product: Qaysi mahsulot
- Count: Miqdori
- Comment: Sabab (masalan, "Yangi yuklanish")
- Save bosing
- Yangi mahsulot partiyasi kelganda
- Qaytgan mahsulotlar (return) bo'lganda
- Inventory recount natijasida ortiqcha topilganda
Outcome qo'shish
- Outcomes sahifasiga o'ting
- "Create Outcome" tugmasini bosing
- Ma'lumotlarni to'ldiring (Income'ga o'xshash)
- Comment'da sabab yozing
- 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:
- Refuses sahifasiga o'ting
- Mahsulot va kuryer ma'lumotlarini kiriting
- Refuse sababini comment'da yozing
- 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
- Kuryer Telegram'da: /delivery buyrug'ini beradi
- Mahsulot tanlash: Qo'lida bor mahsulotlar ro'yxatidan tanlaydi
- Miqdor kiritish: Nechta yetkazib bergani
- Kompaniya nomi: Qaysi kompaniya/mijozga
- Foto yuklash: Delivery tasdig'i uchun rasm
- Confirm: Kuryer tasdiqlaydi
- 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)
Delivery va inventory bog'liq
Har bir completed delivery avtomatik ravishda:
- Kuryer qo'lidagi mahsulotni kamaytiradi
- Outcome yozuvi yaratadi
- Company history'siga qo'shadi
- 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
- Analytics sahifasida courier nomini bosing
- Ochilgan sahifada ko'rasiz:
- Total deliveries count
- Total value delivered
- Active transfers
- Current stock on hand
- Performance chart (kun boyicha)
- Date range o'zgartirib, boshqa muddat analytics'ini ko'rishingiz mumkin
Product analytics
- Products sahifasida mahsulot nomini bosing
- 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:
- Branch raqamini bosing → o'sha branch'dagi barcha activity
- Kuryer nomini bosing → kuryer performance detail
- Mahsulot nomini bosing → mahsulot movement history
- Graf ustidagi nuqtani bosing → o'sha kun detail ma'lumotlari
Performance indicators
- Steadily growing delivery numbers
- Low transfer decline rate
- Balanced inventory across couriers
- Regular income/outcome activity
- Sharp drops in delivery counts
- High transfer decline rate
- Inventory concentrated on few couriers
- Long periods without activity
Hisobotlarni qanday ishlatish
- Haftalik review: Har dushanba analytics'ni ko'rib chiqing
- Performance tracking: Kuryer'lar orasida solishtirib ko'ring
- Inventory planning: Stock movement trend'ga qarab, yangi purchase planning qiling
- Problem identification: Anomaly'lar va unusual pattern'larni aniqlang
1. Dashboard'da noto'g'ri raqamlar
- Terminal'da
php artisan inventory:checkkomandasi ishlatish - Chiqayotgan hisobotni diqqat bilan o'qish
- Negative stock entries'ni topish
- Manual ravishda Income/Outcome/Refuse balance qilish
- Qayta inventory:check ishlatib, to'g'riligini tasdiqlash
2. Kuryer Telegram'da javob bermaydi
- Couriers sahifasida kuryer status'ni tekshirish
- Agar "courier" bo'lsa, kuryer bilan telefon orqali aloqa
- Kuryer'dan Telegram bot'ni restart qilishini so'rash (/start)
- Agar muammo davom etsa, qo'lda transfer status o'zgartirish
3. Upload/Download muammolari
- Browser cache tozalash
- Boshqa browser'da sinab ko'rish
- Server storage space'ini tekshirish
- Laravel log'larni ko'rish
4. Login/Authentication muammolari
- Telegram bot ishlayotganligini tekshirish
- User'ning role'i to'g'ri berilganligini tasdiqlash
- Session clear qilish
- Server restart (agar kerak bo'lsa)
5. Performance sekinligi
- Database size'ini tekshirish
- Old records cleanup qilish
- Cache clear qilish (
php artisan cache:clear) - Database optimize (
php artisan db:optimize)
6. Mahsulot duplicate muammolari
- Products sahifasida duplicate short_code'larni qidirish
- Duplicate'larni merge qilish yoki birini o'chirish
- Eski transfer'larda reference'lar buzilmaganligini tekshirish
7. Transfer stuck in pending
- Transfer detail sahifasiga kirish
- Timeline'ni ko'rish - qayerda to'xtab qolgan
- Warehouse staff va courier'ni alohida tekshirish
- Zarurat bo'lsa manual intervention
8. Delivery photo ko'rinmaydi
- File storage permission'larini tekshirish
- Storage path'ning mavjudligini tasdiqlash
- File size limit'ni tekshirish
- Kuryer'dan qayta upload qilishini so'rash
9. Branch/Courier biriktirish muammolari
- User role'larini tekshirish
- Branch'ning active ekanligini tasdiqlash
- Foreign key constraint'larni tekshirish
- Manual database update (ehtiyot bilan)
10. Reporting/Analytics noto'g'ri
- Date range to'g'ri tanlanganligini tekshirish
- Filter combination'larni reset qilish
- Browser cache tozalash
- Backend calculation'larni manual verify qilish
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.