Sub-task EP-10-T07-S02 Yuqori 06_orders erpbom-web

Buyurtma yaratish/tahrir ekrani

Bajarildi
Status:

Texnik ko'rsatma

Agent uchun

* Savatcha KLIENT TOMONIDA (§2.0) — `carts` jadvali yo'q; DB ga faqat "Saqlash" da yoziladi. * Ombor turi tanlash (Tovar1/Tovar2), aralash YO'Q (R15); turni almashtirganda savatcha tozalanadi (E9). * Narx turi ro'yxati shartnoma tavani bo'yicha FILTRLANADI (05 R9) — lekin server ham tekshiradi.

Qabul mezonlari (DoD)

3 / 3 bajarildi

  • Ombor turi almashtirilganda savatcha tozalanadi yoki ikkinchi buyurtma taklif qilinadi (E9)

    coder-ep-10-t07-s02 · 1 о аввал

  • Narx turi ro'yxatida shartnoma tavanidan katta turlar ko'rinmaydi

    qa-ep-10-t07-s02 · 1 о аввал

  • Sahifa yangilanganda saqlanmagan savatcha yo'qolishi foydalanuvchiga tushunarli (ogohlantirish yoki lokal saqlash)

    qa-ep-10-t07-s02 · 1 о аввал

O'zgargan fayllar

9 ta

  • modified src/modules/orders/views/__tests__/OrderFormView.spec.ts
  • modified src/modules/orders/views/OrderFormView.vue
  • modified src/modules/orders/components/__tests__/OrderLinesEditor.spec.ts
  • modified src/modules/orders/components/order-line-draft-row.ts
  • modified src/modules/orders/components/OrderLinesEditor.vue
  • modified src/modules/orders/api/__tests__/order-form-lookups.api.spec.ts
  • modified src/modules/orders/api/order-form-lookups.api.ts
  • modified src/shared/layout/navigation.ts
  • modified src/router/index.ts

Izoh qoldirish

Tarix

23 yozuv

  • ✎

    finalize-ep-10 yangiladi

    Yangilandi: commit_sha, pr_url

  • ✎

    finalize-ep-10 yangiladi

    Yangilandi: branch, commit_sha

  • ⇄

    qa-ep-10-t07-s02 statusni o'zgartirdi Review → Bajarildi

  • 💬

    qa-ep-10-t07-s02 izoh qoldirdi

    QA 2-tur (mutatsiya tekshiruvi) — QABUL. HEAD ff7d5a4 = 1 fayl, OrderFormView.spec.ts (+48/-2); OrderFormView.vue O'ZGARMAGAN (git show --stat bilan tasdiqlandi) — ya'ni uchala topilma test defekti edi, kod mantig'i to'g'ri. Mezon 3731 uchun uchta mutant izolyatsiyalangan git worktree'da (/tmp/qa2-EP-10-T07-S02, ff7d5a4) sinaldi — HAMMASI O'LDI: - D1: OrderFormView.vue:339 rad etilgan yo'lda ham setInitialLines([])+lines.value=[] qo'shildi -> spec:576 yiqildi (expected [] to have length 1). Endi assert wrapper.findComponent(OrderLinesEditor) bilan QAYTA topilgan komponentga tegadi; eski (o'lik) havola muammosi yopildi — setInitialLines linesEditorKey ni oshirib remount qilishi sababli bu muhim edi. - D2: OrderFormView.vue:239 `raw` filtri olib tashlandi (warehouses.value = all) -> yangi R15/E9 testi spec:349 da yiqildi (expected [10,11,12] to equal [10,11]). Fixture'da haqiqiy raw ombor (id 12) bor, shuning uchun test bo'sh emas. - D3: onLinesUpdate (OrderFormView.vue:153) `lines.value = value.slice(0,1)` -> spec:281 yiqildi (POST /orders tanasida ikkinchi qator {product_variant_id:6, qty:"3.0000"} yo'qoldi). Savatcha endi 2 qatorli — fixture xilma-xilligi tuzatilgan. Testlar tautologik emas: har uchala yangi assert mutant bilan yiqitib isbotlandi. Test natijasi (mutantsiz, worktree'da bloklovchi): - OrderFormView.spec.ts: 18 passed (18) - npx vitest run src/modules/orders: Test Files 13 passed (13), Tests 133 passed (133) — 3732/3733 buzilmagan. Tozalik: grep -rn MUTANT src/ BO'SH, git status toza, HEAD ff7d5a4, worktree o'chirildi (git worktree list da faqat asosiy repo). Oldingi turda tasdiqlangan (qayta yugurtirilmadi): 3732, 3733, kontraktga moslik — POST tanasi 5 maydon, PUT faqat {lines}, ko'p org-node'da avtomatik tanlash yo'q, xato kodlari.

  • ⇄

    coder-ep-10-t07-s02 statusni o'zgartirdi Ishlanyapti → Review

  • ✓

    coder-ep-10-t07-s02 qabul mezonini belgiladi

    ✓ Ombor turi almashtirilganda savatcha tozalanadi yoki ikkinchi buyurtma taklif qilinadi (E9)

  • ⇄

    qa-ep-10-t07-s02 statusni o'zgartirdi Review → Ishlanyapti

  • 💬

    qa-ep-10-t07-s02 izoh qoldirdi

    QA (qa-EP-10-T07-S02, HEAD 1d111e0) — QAYTARILDI. Testlar yashil (npx vitest run src/modules/orders => 13 fayl / 132 test, OrderFormView.spec.ts = 17), lekin mutatsiya tekshiruvida (izolyatsiyalangan worktree) 13 mutantdan 3 tasi TIRIK QOLDI. Uchalasi ham TEST defekti (kod mantig'i to'g'ri), tuzatish faqat spec fayllarda. D1 — mezon 3731, RAD ETILGAN yo'l yolg'on yashil. src/modules/orders/views/__tests__/OrderFormView.spec.ts:530 `expect(linesEditor.vm.rows).toHaveLength(1)` — `linesEditor` 514-qatorda ushlangan ESKI komponent havolasi. `setInitialLines([])` OrderFormView.vue:149 da `linesEditorKey` ni oshiradi => OrderLinesEditor qayta mount bo'ladi, eski vm esa qatorlarini saqlab qoladi. Mutant (rad etilganda ombor eski qoladi, LEKIN savatcha tozalanadi — OrderFormView.vue:339 `if (!confirmed)` blokiga `setInitialLines([]); lines.value = []` qo'shildi) 17/17 testdan TIRIK o'tdi. Tasdiq: o'sha qatorni `expect(wrapper.findComponent(OrderLinesEditor).vm.rows).toHaveLength(1)` ga almashtirilganda mutant DARHOL o'ldi (AssertionError: expected [] to have a length of 1). Tuzatish: 530-qatorda komponentni QAYTA so'rang (536-qatordagi tasdiqlash testi buni to'g'ri qiladi: 572-qator). D2 — mezon 3731 / R15, `raw` ombor istisnosi umuman tekshirilmagan. OrderFormView.vue:239 `warehouses.value = all.filter((w) => w.warehouse_type !== 'raw')`. Mutant (filtr olib tashlandi => Homashyo ombori Select'da paydo bo'ladi, `warehouse_id` sifatida yuborilishi mumkin — kontrakt: node'ning `semi_finished`/`finished` ombori) BUTUN 132 testdan TIRIK o'tdi. Fixture'da WAREHOUSES ichida `{id:12, warehouse_type:'raw'}` ATAYLAB bor (spec:44), lekin hech bir assert unga tegmaydi. Kerak: mijoz tanlangandan keyin `findSelectByTestId(wrapper,'order-form-warehouse-select').props('options')` uzunligi 2 ekani va 12-ombor YO'Qligi tasdiqlansin. D3 — FIXTURE XILMA-XILLIGI: savatchada HAR testda aynan 1 qator. Mutant `OrderFormView.vue:153` `lines.value = value` -> `lines.value = value.slice(0, 1)` (buyurtma qatorlari jimgina yo'qoladi) BUTUN 132 testdan TIRIK o'tdi. OrderLinesEditor.spec.ts ham hech qachon ikkinchi qator qo'shmaydi. Kerak: kamida 2 qatorli savatcha bilan test — POST /orders tanasida `lines` IKKALA qator bilan ketishi (`toEqual`) tasdiqlansin. O'LDIRILGAN mutantlar (10) — bu joylar haqiqatan qoplangan: 3732 filtri `<=`->`<` (chegara 30 kun), filtr butunlay olib tashlash, `payment_term_days ?? 0` -> MAX_SAFE_INTEGER; 3731 rad yo'li (return olib tashlash; rad etilganda yangi ombor qo'llash); 3731 tasdiqdan keyin savatcha tozalanmasligi; 3733 localStorage yozish va tiklash (ikkalasi alohida); kontrakt: PUT tanasiga `organization_id` qo'shish; bir nechta org-node bo'lganda birinchisini avtomatik tanlash (spec bo'shlig'i p.5 — himoyalangan). Kontrakt moslik TEKSHIRILDI va TO'G'RI: POST /orders tanasi aynan {organization_id, warehouse_id, customer_id, price_type_id, lines} (spec:274-280), `source`/`order_number`/`unit_price`/`total_amount` YO'Q; PUT /orders/{id} tanasi FAQAT {lines} (spec:715); xato kodlari order-errors.ts:16-29 da kontraktdagi nomlar bilan bir xil; bitta org-node bo'lganda avtomatik tanlash (OrderFormView.vue:276) maqbul — boshqa variant yo'q. Mezon holati: 3732 ✅, 3733 ✅, 3731 ❌ (D1 + D2). Mutantlar asosiy daraxtda QOLMADI: `grep -rn MUTANT src/` bo'sh, `git status` toza, HEAD 1d111e0.

  • ✓

    qa-ep-10-t07-s02 qabul mezonini belgiladi

    ✗ Ombor turi almashtirilganda savatcha tozalanadi yoki ikkinchi buyurtma taklif qilinadi (E9)

  • ✓

    qa-ep-10-t07-s02 qabul mezonini belgiladi

    ✓ Sahifa yangilanganda saqlanmagan savatcha yo'qolishi foydalanuvchiga tushunarli (ogohlantirish yoki lokal saqlash)

  • ✓

    qa-ep-10-t07-s02 qabul mezonini belgiladi

    ✓ Narx turi ro'yxatida shartnoma tavanidan katta turlar ko'rinmaydi

  • ⇄

    coder-ep-10-t07-s02 statusni o'zgartirdi Ishlanyapti → Review

  • ✓

    coder-ep-10-t07-s02 qabul mezonini belgiladi

    ✓ Sahifa yangilanganda saqlanmagan savatcha yo'qolishi foydalanuvchiga tushunarli (ogohlantirish yoki lokal saqlash)

  • ✓

    coder-ep-10-t07-s02 qabul mezonini belgiladi

    ✓ Narx turi ro'yxatida shartnoma tavanidan katta turlar ko'rinmaydi

  • ✓

    coder-ep-10-t07-s02 qabul mezonini belgiladi

    ✓ Ombor turi almashtirilganda savatcha tozalanadi yoki ikkinchi buyurtma taklif qilinadi (E9)

  • 📄

    coder-ep-10-t07-s02 fayllarni qayd etdi

    9 ta fayl qayd etildi

  • ⇄

    coder-ep-10-t07-s02 statusni o'zgartirdi Tayyor → Ishlanyapti

    Agent ishni boshladi

  • ⚑

    coder-ep-10-t07-s02 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-10-t07-s02 statusni o'zgartirdi Backlog → Ishlanyapti

    Agent ishni boshladi

  • ⚑

    coder-ep-10-t07-s02 ishga oldi

  • ✦

    pm-agent yaratdi

    Buyurtma yaratish/tahrir ekrani

Ma'lumot

Agent
coder-ep-10-t07-s02
Olingan
1 о аввал
Boshlandi
28.08.2026 12:58
Tugadi
28.08.2026 18:07
Baho
8 soat
Spec
erp/docs/modules/06_orders.md#8.1
Branch
feat/EP-10-erpbom-web
Commit
5a79db88ba59

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-10-T07-S02/claim \
  -H "X-Agent: backend-dev-1"

Tugatgach:

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