Sub-task EP-06-T08-S03 Yuqori 04_employees erpbom-web

Payroll ko'rinishi — hodim × davr (accrual, bonus ulushi)

Bajarildi
Status:

Tavsif

`payroll.view` bilan: davr tanlash (oy), hodim bo'yicha — joriy oylik maosh, ishbay jami, bonus ulushi, `wage_entries` ro'yxati (sana, operatsiya, `qty`, `normal_qty`/`bonus_qty`, `rate`/`bonus_rate`, `amount`). 🔴 Ekranda "to'lanadigan summa"/proratsiya KO'RSATILMAYDI — u 08_finance payroll-run ishi (§6.2). Sarlavhada bu **aniq yozilsin** ("accrual — to'lov emas"), aks holda foydalanuvchi raqamni to'lov deb o'qiydi. ⚠️ Nasriy matnlarda miqdorlar trailing-zero'siz ko'rsatilsin (CAPTURE#36 team lead qarori: jadval qiymatlari 4 xona, nasriy jumlada `formatQuantityPlain`).

Qabul mezonlari (DoD)

4 / 4 bajarildi

  • Davr almashtirilganda ma'lumot qayta yuklanadi va bonus ulushi to'g'ri hisoblanadi

    qa-ep-06-t08-s03 · 1 о аввал

  • Ekranda proratsiya/to'lov summasi YO'Q va "accrual — to'lov emas" izohi bor

    qa-ep-06-t08-s03 · 1 о аввал

  • Nasriy matnlarda miqdor trailing-zero'siz (mas. "6 tasi", "6.0000 tasi" emas)

    qa-ep-06-t08-s03 · 1 о аввал

  • `payroll.view` siz ekran ochilmaydi (router guard)

    qa-ep-06-t08-s03 · 1 о аввал

O'zgargan fayllar

12 ta

  • modified apps/erpbom-web/src/shared/utils/__tests__/money.spec.ts
  • modified apps/erpbom-web/src/shared/utils/money.ts
  • modified apps/erpbom-web/src/shared/layout/navigation.ts
  • modified apps/erpbom-web/src/router/index.ts
  • modified apps/erpbom-web/src/modules/employees/__tests__/access.spec.ts
  • modified apps/erpbom-web/src/modules/employees/views/__tests__/EmployeeDetailView.spec.ts
  • modified apps/erpbom-web/src/modules/employees/views/EmployeeDetailView.vue
  • modified apps/erpbom-web/src/modules/employees/types.ts
  • modified apps/erpbom-web/src/modules/employees/views/__tests__/EmployeePayrollView.spec.ts
  • modified apps/erpbom-web/src/modules/employees/views/EmployeePayrollView.vue
  • modified apps/erpbom-web/src/modules/employees/api/__tests__/payroll.api.spec.ts
  • modified apps/erpbom-web/src/modules/employees/api/payroll.api.ts

Izoh qoldirish

Tarix

18 yozuv

  • ✎

    finalize-ep-06 yangiladi

    Yangilandi: branch, commit_sha, pr_url

  • 💬

    qa-ep-06-t08-s03 izoh qoldirdi

    QA (mustaqil tekshiruv, commit bd753e2) — 4/4 mezon TASDIQLANDI, done. Kod darajasidagi dalil: - 2931: EmployeePayrollView.vue:182-184 watch(periodMonth->reload), :113-149 loadSummary/loadEntries monthRange() bilan; bonus ulushi :174-180 bonus_amount/total_amount (backend §6.1 formulasi qayta hisoblanmaydi — to'g'ri qaror), decimal.js. - 2932: :224-227 doim ko'rinadigan Message (info, data-testid=employee-payroll-accrual-notice, matn "hisoblangan (accrual) ... to'lov emas") — jim yashiringan emas. Ekranda proratsiya (worked_days/working_days_total), to'lov, avans, 10 000 yaxlitlash YO'Q; oylik maosh :236 "proratsiyasiz, xom stavka" deb yozilgan; monthly+piece jami ko'rsatilmaydi (§6.2 🔵 chegara saqlangan). - 2933: :262 formatQuantityPlain(qty) nasriy jumlada, :292-297 jadvalda formatQuantity (4 xona) — CAPTURE#36 naqshi. - 2934: router/index.ts:352-360 meta.permission='payroll.view'; access.spec.ts:270-291 authGuard ijobiy/salbiy juftlik (salbiy holatda employee.view BOR, payroll.view YO'Q — bitta o'zgaruvchi, S02 saboqi bajarilgan). Komponentda ikkinchi qatlam :201 v-if=canView. Mutatsiya tekshiruvi (har biri alohida, keyin git checkout): (a) periodMonth watch reload'i o'chirildi -> AC2931 yiqildi; (b) bonus_amount->normal_amount -> yiqildi (75% vs 25%); (c) meta.permission olib tashlandi -> access.spec 2 test yiqildi; (d) formatQuantityPlain->formatQuantity -> 2 test yiqildi; (e) davr filtri buzildi 3 xil: view'dan date_from/date_to olib tashlandi -> yiqildi, api'dan date_to olib tashlandi -> yiqildi, URL /wage-entries->/wage_entries va .../payroll/summary->.../payroll -> yiqildi, GET->POST -> yiqildi. Qo'shimcha: accrual izohi matni olib tashlandi -> yiqildi; v-if=canView olib tashlandi -> yiqildi. HECH BIR mutatsiya jim o'tmadi. Kontrakt (employees.yaml, MUZLATILGAN): types.ts maydon nomi/tipi EmployeePayrollSummaryResponse + WageTotals + WageEntryResponse bilan aynan mos; maskalash to'g'ri — hasMonthlySalaryAccess() 'monthly_salary_amount' in summary (kalit YO'Q = huquq yo'q; 0 EMAS, null EMAS), payroll.api.spec.ts:56-76 va view spec:210-226 shuni qo'riqlaydi. Regressiya: money.ts FAQAT additive (mavjud formatQuantity/formatMoneyDisplay/formatPrice o'zgarmagan — diff'da 0 ta o'chirilgan qator); router/index.ts:383 profession_norm.set guard (S01) joyida; EmployeeDetailView.vue:70+219 showSalaryBlock v-if EmployeeSalaryPanel (S02 AC2928) buzilmagan; navigation.ts 1 qator additive. Tor to'plam: npx vitest run src/modules/employees src/shared/utils/__tests__/money.spec.ts -> 19 fayl / 150 test PASS (mutatsiyalardan keyin tiklanib qayta yurgizildi). ⚠️ Bloklamaydigan kuzatuv (kelajak uchun): EmployeePayrollView.spec.ts:240/243 boshlang'ich davrni '2026-08-01' deb qotirgan, komponent esa new Date() dan joriy oyni oladi — test tizim soatiga bog'liq va sentabrda QIZIL bo'ladi. Jim yolg'on ijobiy emas (baland ovozda yiqiladi), shu sabab qaytarilmadi; keyingi tegishda vi.setSystemTime bilan qotirilsin.

  • ⇄

    qa-ep-06-t08-s03 statusni o'zgartirdi Review → Bajarildi

  • ✓

    qa-ep-06-t08-s03 qabul mezonini belgiladi

    ✓ `payroll.view` siz ekran ochilmaydi (router guard)

  • ✓

    qa-ep-06-t08-s03 qabul mezonini belgiladi

    ✓ Nasriy matnlarda miqdor trailing-zero'siz (mas. "6 tasi", "6.0000 tasi" emas)

  • ✓

    qa-ep-06-t08-s03 qabul mezonini belgiladi

    ✓ Ekranda proratsiya/to'lov summasi YO'Q va "accrual — to'lov emas" izohi bor

  • ✓

    qa-ep-06-t08-s03 qabul mezonini belgiladi

    ✓ Davr almashtirilganda ma'lumot qayta yuklanadi va bonus ulushi to'g'ri hisoblanadi

  • ⇄

    coder-ep-06-t08-s03 statusni o'zgartirdi Ishlanyapti → Review

  • 💬

    coder-ep-06-t08-s03 izoh qoldirdi

    Payroll ko'rinishi qo'shildi: EmployeePayrollView + payroll.api (GET /employees/{id}/payroll/summary, GET /wage-entries). payroll.view router guard + komponent v-if ikkinchi qatlam. monthly_salary_amount maskalash hasMonthlySalaryAccess() bilan. formatQuantityPlain (CAPTURE#36) shared/utils/money.ts ga qo'shildi. Tor filtr: 5 fayl, 42 test o'tdi (npx vitest run). vue-tsc va eslint toza. Mutatsiya (a)-(e) qo'lda tekshirildi — hammasi ushlandi, keyin revert qilindi (git diff --stat guards.ts ni ko'rsatmaydi — toza tiklandi). Commit sha: bd753e2ae3335cd4704a77f8e3ae493d220ec434.

  • ✓

    coder-ep-06-t08-s03 qabul mezonini belgiladi

    ✓ `payroll.view` siz ekran ochilmaydi (router guard)

  • ✓

    coder-ep-06-t08-s03 qabul mezonini belgiladi

    ✓ Nasriy matnlarda miqdor trailing-zero'siz (mas. "6 tasi", "6.0000 tasi" emas)

  • ✓

    coder-ep-06-t08-s03 qabul mezonini belgiladi

    ✓ Ekranda proratsiya/to'lov summasi YO'Q va "accrual — to'lov emas" izohi bor

  • ✓

    coder-ep-06-t08-s03 qabul mezonini belgiladi

    ✓ Davr almashtirilganda ma'lumot qayta yuklanadi va bonus ulushi to'g'ri hisoblanadi

  • 📄

    coder-ep-06-t08-s03 fayllarni qayd etdi

    12 ta fayl qayd etildi

  • ⇄

    coder-ep-06-t08-s03 statusni o'zgartirdi Backlog → Ishlanyapti

    Agent ishni boshladi

  • ⚑

    coder-ep-06-t08-s03 ishga oldi

  • 🔗

    pm-agent bog'liqlik qo'shdi

    → EP-06-T08-S02

  • ✦

    pm-agent yaratdi

    Payroll ko'rinishi — hodim × davr (accrual, bonus ulushi)

Ma'lumot

Agent
coder-ep-06-t08-s03
Olingan
1 о аввал
Boshlandi
24.08.2026 14:19
Tugadi
24.08.2026 14:49
Baho
4 soat
Spec
erp/docs/modules/04_employees.md#6.2
Branch
feat/EP-06-erpbom-web
Commit
e99f80abbafb

Bog'liqliklar

Agent uchun

Bu ishni AI agent quyidagicha oladi:

curl -s -X POST https://pmboard.ferp.uz/api/items/EP-06-T08-S03/claim \
  -H "X-Agent: backend-dev-1"

Tugatgach:

curl -s -X POST https://pmboard.ferp.uz/api/items/EP-06-T08-S03/status \
  -H "X-Agent: backend-dev-1" \
  -H "Content-Type: application/json" \
  -d '{"status":"review","note":"..."}'