Sub-task EP-12-T02-S03 Kritik 08_finance erpbom-backend

Tasdiqni qaytarish (`confirmed → draft`) va bekor qilish

Bajarildi
Status:

Tavsif

`expense.reverse` bilan qaytarish (sabab majburiy, faqat ochiq davrda) — teskari pul harakati va teskari jurnal qatori, hujjat qayta tahrirlanadi va **o'sha raqam** bilan qayta tasdiqlanadi (qoida 59, UC7 8–10 qadamlari).

Texnik ko'rsatma

Agent uchun

* Atomik: teskari `money_movements` (`in`, o'sha kassaga) + teskari `expense_entries` (`reversal_of_entry_id`) + originalda `reversed_by_entry_id` to'ldiriladi (aks holda partial unique qayta tasdiqni bloklardi) + `expense_entry_id = null`, `approved_by/at = null` + status log qatori. * Yopilgan davrda TAQIQ (E31) — tuzatish joriy davrda yangi hujjat bilan. * `cancelled → draft` **yo'q** (terminal); egasiz `draft` larni `expense.cancel_any` bilan bekor qilish (E33). * Xabar: `expense.reversed` yaratuvchiga (sabab matni bilan).

Qabul mezonlari (DoD)

3 / 3 bajarildi

  • Qaytarilgandan keyin pul kassaga qaytadi, hujjat `draft` bo'ladi va O'SHA raqam bilan qayta tasdiqlanadi; jurnalda 3 qator qoladi, sof ta'sir yangi summaga teng (08 AC27)

    worker-ep-12-t02 · 1 о аввал

  • Sababsiz qaytarish rad etiladi

    worker-ep-12-t02 · 1 о аввал

  • Yopilgan davr hujjatini qaytarish rad etiladi (E31)

    worker-ep-12-t02 · 1 о аввал

O'zgargan fayllar

8 ta

  • created src/test/java/uz/erpbom/finance/controller/ExpenseInvoiceReversalControllerIntegrationTest.java
  • created src/main/java/uz/erpbom/finance/dto/ExpenseInvoiceStatusLogResponse.java
  • created src/main/java/uz/erpbom/finance/dto/ExpenseInvoiceRemarkRequest.java
  • created src/main/java/uz/erpbom/finance/dto/ExpenseInvoiceCancelRequest.java
  • created src/main/java/uz/erpbom/finance/dto/ExpenseInvoiceReverseRequest.java
  • modified src/main/java/uz/erpbom/finance/repository/ExpenseInvoiceStatusLogRepository.java
  • modified src/main/java/uz/erpbom/finance/controller/ExpenseInvoiceController.java
  • modified src/main/java/uz/erpbom/finance/service/ExpenseInvoiceService.java

Izoh qoldirish

Tarix

20 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

  • ✎

    worker-ep-12-t02 yangiladi

    Yangilandi: branch, commit_sha

  • ⇄

    worker-ep-12-t02 statusni o'zgartirdi Review → Bajarildi

  • ✓

    worker-ep-12-t02 qabul mezonini belgiladi

    ✓ Yopilgan davr hujjatini qaytarish rad etiladi (E31)

  • ✓

    worker-ep-12-t02 qabul mezonini belgiladi

    ✓ Sababsiz qaytarish rad etiladi

  • ✓

    worker-ep-12-t02 qabul mezonini belgiladi

    ✓ Qaytarilgandan keyin pul kassaga qaytadi, hujjat `draft` bo'ladi va O'SHA raqam bilan qayta tasdiqlanadi; jurnalda 3 qator qoladi, sof ta'sir yangi summaga teng (08 AC27)

  • 💬

    worker-ep-12-t02 izoh qoldirdi

    SPEC SAVOLI (blok emas, kontrakt aniq — lead/spec siklига): GET /expense-invoices/{id}/status-logs kontraktda FAQAT finance.view talab qiladi (hech qanday egalik istisnosi yozilmagan), lekin 7-bo'lim yaratuvchi 'o'zi yaratganini doim ko'radi' deydi va E27 izohining maqsadi — yaratuvchiga yetkazish. Hozir expense.create li yaratuvchi o'z hujjatining tasdiqlovchi izohini o'qiy olmaydi. Savol: status-logs ga ham get/list dagi gibrid (egalik YOKI finance.view) naqshi kerakmi? Kod kontraktga muvofiq — o'zgartirilmadi.

  • 💬

    worker-ep-12-t02 izoh qoldirdi

    QA 1-raund: 5 tirik mutant + 1 funksional nuqson — finance_outbox dedup kaliti hujjat darajasida unikal edi (<event>:expense_invoice:<id>), enqueueIfAbsent esa pending/processing qatorga ON CONFLICT qiladi; natijada UC7 10-qadamdagi qayta tasdiqlash xabari yo'qolardi va ikkinchi qaytarish BIRINCHI sababi bilan qolib ketardi (10-bo'lim Q49 buzilardi). Tuzatildi commit 337e61a: kalitga status log id qo'shildi, har holat o'tishi mustaqil xabar. Testlar 15 -> 19, yashil.

  • ⇄

    worker-ep-12-t02 statusni o'zgartirdi Ishlanyapti → Review

  • 📄

    worker-ep-12-t02 fayllarni qayd etdi

    8 ta fayl qayd etildi

  • ⇄

    worker-ep-12-t02 statusni o'zgartirdi Tayyor → Ishlanyapti

    Agent ishni boshladi

  • ⚑

    worker-ep-12-t02 ishga oldi

  • ⇄

    system statusni o'zgartirdi Ishlanyapti → Tayyor

    Avtomatik bo'shatildi: 60 daqiqa signal yo'q

  • ⚐

    system bo'shatdi

    Avtomatik bo'shatildi: 60 daqiqa signal yo'q

  • ⇄

    coder-ep-12-t02-s03 statusni o'zgartirdi Backlog → Ishlanyapti

    Agent ishni boshladi

  • ⚑

    coder-ep-12-t02-s03 ishga oldi

  • ✦

    pm-agent yaratdi

    Tasdiqni qaytarish (`confirmed → draft`) va bekor qilish

Ma'lumot

Agent
worker-ep-12-t02
Olingan
1 о аввал
Boshlandi
07.09.2026 13:16
Tugadi
07.09.2026 18:25
Baho
6 soat
Spec
erp/docs/modules/08_finance.md#5
Branch
feat/EP-12-erpbom-backend
Commit
337e61a

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-T02-S03/claim \
  -H "X-Agent: backend-dev-1"

Tugatgach:

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