Reyestr, filtrlar va xarajat tuzilmasi
Tavsif
Qabul mezonlari (DoD)
3 / 3 bajarildi
-
Beshala kesim bo'yicha filtr ishlaydi va hujjat ochilganda qatorlari ko'rinadi
qa-ep-12-t07-s03 · 1 о аввал
-
Bekor qilingan hujjat raqami ro'yxatda ko'rinadi (teshik yashirilmaydi)
qa-ep-12-t07-s03 · 1 о аввал
-
vue-tsc va unit testlar toza
qa-ep-12-t07-s03 · 1 о аввал
O'zgargan fayllar
11 ta
-
modified
src/shared/layout/navigation.ts -
modified
src/router/index.ts -
modified
src/modules/finance/types.ts -
modified
src/modules/finance/store/__tests__/expense-invoices.store.spec.ts -
modified
src/modules/finance/store/expense-invoices.store.ts -
created
src/modules/finance/views/__tests__/ExpenseStructureView.spec.ts -
created
src/modules/finance/views/__tests__/ExpenseInvoiceListView.spec.ts -
created
src/modules/finance/views/ExpenseStructureView.vue -
created
src/modules/finance/views/ExpenseInvoiceListView.vue -
created
src/modules/finance/api/__tests__/expense-structure.api.spec.ts -
created
src/modules/finance/api/expense-structure.api.ts
Izoh qoldirish
Tarix
19 yozuv
-
✎
finalize-ep-12 yangiladi
Yangilandi: pr_url
-
✎
pm-agent yangiladi
Yangilandi: estimate_hours
-
✎
pm-agent yangiladi
Yangilandi: estimate_hours
-
✎
team-lead-pm yangiladi
Yangilandi: estimate_hours
-
⇄
qa-ep-12-t07-s03 statusni o'zgartirdi Review → Bajarildi
-
💬
qa-ep-12-t07-s03 izoh qoldirdi
QA mustaqil tekshiruv (izolyatsiyalangan worktree @ f6df46a; asosiy daraxtga tegilmadi, git status toza, HEAD'da MUTANT yo'q). 4221 OK - 5 kesim + holat zanjiri uzilmagan: view load() ExpenseInvoiceListView.vue:149-158 -> store forwarding expense-invoices.store.ts:93-100 -> api query expense-invoices.api.ts:62-69 -> HTTP params. Testlar config.params ni SIM USTIDA ushlaydi (store mock qilinmagan). Detail: openDetail push({name:'expense-invoice-detail',params:{id:42}}) assert qilingan; qatorlar S01 ExpenseInvoiceFormView.vue:575 da render bo'ladi. 4222 OK - ro'yxatda yashirin filtr YO'Q (DataTable :value="expenseInvoicesStore.items", satr 250, hech qanday .filter yo'q); statusFilter boshlang'ich qiymati null (satr 96-98). Test default so'rovda status kaliti UMUMAN yo'qligini (not.toHaveProperty) VA cancelled qator matnini (XR-2026-00043 / "Bekor qilingan") tekshiradi. 4223 OK - npm run lint (eslint --max-warnings=0) exit 0; npm run build (vue-tsc -b --noEmit && vite build) exit 0; npx vitest run TO'LIQ: 265 fayl / 2042 test yashil (finance kesimi 41 fayl / 377 test). MUTATSIYA - 10 mutantdan 10 tasi o'ldirildi: A1 store approved_by_user_id olib tashlandi -> 2 test yiqildi (store.spec + ListView.spec) A2 store category_id -> ListView.spec "tur filtri" yiqildi A3 view organization_id -> ListView.spec "filial filtri" yiqildi A4 api date_to -> 3 test yiqildi (api.spec + store.spec + ListView.spec) A5 store status -> 2 test yiqildi A6 filtr tozalash semantikasi ('in' -> '!== undefined') -> store.spec yiqildi B1 ro'yxatga status !== cancelled yashirin filtri -> 4222 testi yiqildi B2 default statusFilter = confirmed -> 4222 testi yiqildi C1 expense-structure.api date_to query'dan olindi -> 3 test yiqildi C2 ExpenseStructureView mount default sanasi olindi -> 5 test yiqildi KONTRAKT (maydon darajasida) - bu commit qo'shgan yangi sxemalar aynan mos: ExpenseStructureLine (category_id/category_name/is_system?:boolean/amount/cash_amount/non_cash_amount/entry_count) va ExpenseStructureResponse (date_from/date_to/organization_id?:number|null/total_amount/lines) = finance.yaml:9076-9128. GetExpenseStructureParams da date_from+date_to IKKALASI MAJBURIY (optional emas), sahifalash yo'q (DataTable'da paginator yo'q). ExpenseInvoiceStatus = draft|confirmed|cancelled (types.ts:704; labels.ts:277-288 uchchalasi ham bor). Kontraktda YO'Q maydon o'ylab topilmagan. SPEC - 08_finance.md §11 reyestr kesimlari va F9 xarajat tuzilmasi bajarilgan; §4.7/AC24: draft reyestrda KO'RINADI (DRAFT_INVOICE fixture render bo'ladi), tuzilmada esa klient tomonda hech narsa yig'ilmaydi/filtrlanmaydi (server javobi bevosita ko'rsatiladi) va UI izohi buni ochiq aytadi. Route huquqlari: expense-invoices va expense-structure ikkalasi ham meta.permission = 'finance.view' (router/index.ts:848-867), test bilan qo'riqlangan. BLOKLAMAYDIGAN KUZATUV (mezonlardan tashqari, kelgusi barg uchun): ExpenseInvoiceListView.vue:169-173 onPage() paginatsiyasi testsiz - 'event.page + 1' ni 'event.page' ga o'zgartirgan mutant 13 testdan TIRIK o'tdi. Kod o'zi to'g'ri (PrimeVue 0-bazali -> API 1-bazali), lekin qamrov yo'q; bu naqsh finance modulidagi HAMMA ro'yxat ekranida bir xil (PaymentListView, MoneyAccountListView, MoneyTransferListView...), ya'ni shu bargning regressiyasi emas. Shuningdek ListView fixture'larida 'confirmed' holat yo'q va DRAFT/CANCELLED bir xil total_amount va invoice_date bilan ketadi - mezonlarga ta'sir qilmaydi (holat Tag'i shoxobchasiz Record lookup, chegara holatlari - bo'sh ro'yxat / 1 element / 2 element - qamralgan).
-
✓
qa-ep-12-t07-s03 qabul mezonini belgiladi
✓ vue-tsc va unit testlar toza
-
✓
qa-ep-12-t07-s03 qabul mezonini belgiladi
✓ Bekor qilingan hujjat raqami ro'yxatda ko'rinadi (teshik yashirilmaydi)
-
✓
qa-ep-12-t07-s03 qabul mezonini belgiladi
✓ Beshala kesim bo'yicha filtr ishlaydi va hujjat ochilganda qatorlari ko'rinadi
-
⇄
coder-ep-12-t07-s03 statusni o'zgartirdi Ishlanyapti → Review
-
✎
coder-ep-12-t07-s03 yangiladi
Yangilandi: branch, commit_sha
-
💬
coder-ep-12-t07-s03 izoh qoldirdi
Reyestr (ExpenseInvoiceListView) + F9 xarajat tuzilmasi (ExpenseStructureView) qo'shildi, route/nav bog'landi. Muhandislik qarori: yaratuvchi/tasdiqlovchi filtri InputNumber (user ID) bilan, Select (ism) EMAS — ExpenseInvoiceResponse kontraktida bu 2 maydon uchun ism maydoni umuman yo'q, va GET /users user.view talab qiladi (09_auth Q58 istisnosi) — finance.view egasida odatda yo'q, shu sabab auth moduliga tegmasdan PaymentScheduleView.accountIdFilter naqshi takrorlandi. expense-invoices.store.ts fetchExpenseInvoices S01 dan faqat 4 filtrni forward qilardi (status/category_id/organization_id/period_id) — date_from/date_to/created_by_user_id/approved_by_user_id qo'shildi (API qatlami S01 da allaqachon bor edi). Lint 0, vue-tsc+build toza, vitest: yangi/o'zgargan fayllar 44 test yashil, butun finance moduli 377 test yashil.
-
✓
coder-ep-12-t07-s03 qabul mezonini belgiladi
✓ vue-tsc va unit testlar toza
-
✓
coder-ep-12-t07-s03 qabul mezonini belgiladi
✓ Bekor qilingan hujjat raqami ro'yxatda ko'rinadi (teshik yashirilmaydi)
-
✓
coder-ep-12-t07-s03 qabul mezonini belgiladi
✓ Beshala kesim bo'yicha filtr ishlaydi va hujjat ochilganda qatorlari ko'rinadi
-
📄
coder-ep-12-t07-s03 fayllarni qayd etdi
11 ta fayl qayd etildi
-
⇄
coder-ep-12-t07-s03 statusni o'zgartirdi Backlog → Ishlanyapti
Agent ishni boshladi
-
⚑
coder-ep-12-t07-s03 ishga oldi
-
✦
pm-agent yaratdi
Reyestr, filtrlar va xarajat tuzilmasi
Ma'lumot
- Agent
- coder-ep-12-t07-s03
- Olingan
- 1 о аввал
- Boshlandi
- 07.09.2026 11:16
- Tugadi
- 07.09.2026 11:58
- Baho
- 5 soat
- Spec
- erp/docs/modules/08_finance.md#11
- Branch
- feat/EP-12-erpbom-web
- Commit
- f6df46a735e7
Bog'liqliklar
Bundan oldin tugashi kerak
Yo'q — bu ish mustaqil.
Agent uchun
Bu ishni AI agent quyidagicha oladi:
curl -s -X POST https://pmboard.ferp.uz/api/items/EP-12-T07-S03/claim \ -H "X-Agent: backend-dev-1"
Tugatgach:
curl -s -X POST https://pmboard.ferp.uz/api/items/EP-12-T07-S03/status \
-H "X-Agent: backend-dev-1" \
-H "Content-Type: application/json" \
-d '{"status":"review","note":"..."}'