# ƏDV bəyannaməsi — bütün hesablanan (boz / read-only) xanaların düsturları ### Version 2026.1 · taxCode `_0300` > Mənbə: e-taxes kabinetinin JS bundle-i (`/eportal/declaration/`, 2026-07 relizi), calc-modullardan çıxarılıb. > Decimal-lib açması: `o()(x)` / `n()(x)` = onluq ədəd; `.add/.subtract/.multiply/.divide/.value`; > `negativeToZero(v)` = `max(0, v)`. Faiz `.multiply(18).divide(100)` = ×18%. > Status: **bundle-dən çıxarılıb**; canlı yoxlama (1 PIN1) sonda planlanır. --- ## Əlavə 2 · Hissə 2 — Kənd təsərrüfatı məhsullarının ticarət əlavəsi ✅ TƏSDİQLƏNİB (daemon + bundle) Sahələr: `appendix2.agroProductsRetailTotal.{startRemains, purchased, sold, resultRemains, tradeSupplementCost, tradeSupplementVat}` | Sütun | Sahə | Redaktə | Düstur | |---|---|---|---| | 1 | `startRemains` | əl ilə | — | | 2 | `purchased` | **boz** | = Hissə 1 cədvəlinin cəmi (Σ sətirlər) | | 3 | `sold` | əl ilə | — | | 4 | `resultRemains` | əl ilə | — | | 5 | `tradeSupplementCost` | **boz** | `max(0, sold − (startRemains + purchased − resultRemains))` | | 6 | `tradeSupplementVat` | **boz** | `max(0, tradeSupplementCost × 18 / 100)` | Bundle mənbəyi (byte-for-byte daemon ilə üst-üstə düşür): ```js tradeSupplementCost = negativeToZero( o(sold).subtract( o(startRemains).add(purchased).subtract(resultRemains) ).value ) tradeSupplementVat = negativeToZero( o(tradeSupplementCost).multiply(18).divide(100).value ) ``` `sold` → çıxışda `calculations[_1303].cost` (güzgü) və `calculations[_1005].cost` (ümumi dövriyyə cəmi) əlavə olunur; taxable base/vat-a getmir (kənd təsərrüfatı xüsusi rejimi). --- --- ## Bölmələr üzrə hesablanan xanalar (bundle-dən, 2026.1) > ✅ **Status:** bundle-dən çıxarılıb VƏ canlı formada təsdiqlənib (daemon, draft 2606170135788400, 2026-07-14). Etiketlər (label) bundle-də i18n açarları olduğundan boşdur — kod + düstur verilir. ### Canlı yoxlama nəticələri (draft 2606170135788400 real saxlanmış dəyərlərinə qarşı) Bundle-dən çıxarılan düsturlar real formanın hesabladığı dəyərləri **byte-for-byte** verir: | Yoxlanan düstur | Hesablama | Formada | ✓ | |---|---|---|---| | `_1005.cost = Σ(301,301-2,302,303,304).cost` | 6050+1000+50+28970+0 = **36070** | 36070 | ✅ | | `_1005.amount = Σ(301,302,303,304).amount` (301-2 xaric) | 5600+0+53+0 = **5653** | 5653 | ✅ | | `_1005.vat = _1001.vat + _1004.vat` | 1008+0 = **1008** | 1008 | ✅ | | `_1002.vat = cost×100 / _1005.cost` (pay %) | 50×100/36070 = **0.14** | 0.14 | ✅ | | `_1003.vat = cost×100 / _1005.cost` (pay %) | 28970×100/36070 = **80.32** | 80.32 | ✅ | | `318.paidVat = paidAmount×18%` | 100×0.18 = **18** | 18 | ✅ | | `319.paidVat = Σ uşaqlar` | 17.1 | 17.1 | ✅ | | **`326 (ödənilməli) = max(0, 305.vat+306.vat+318.paidVat+324.paidVat − 317.vat−319.paidVat−325.paidVat)`** | 1008+0+18+0−0−17.1−0 = **1008.9** | **1008.9** (`mainTax.mustBePaid`) | ✅ | | `327 (əvəzləşdirilməli) = max(0, tərs nett)` | max(0, −1008.9) = **0** | 0 | ✅ | | `_1004.vat = 304.amount × 20%` | 1000×0.20 = **200** | 200 | ✅ | | `_1101.vat = amount × 18%` (baza) | 5600×0.18=1008; 6600×0.18=**1188** | 1008 / 1188 | ✅ | | `debitor: lastDebt = previousDebt + incurredDebt − removedDebt` | 7858+420−0 | **8278** ✅ | | `Əlavə 3: 301.1 = 301.1.1+301.1.2+301.1.3+301.1.4` | 10+6030+0+10 | **6050 / 5600** ✅ | | `Əlavə 3: 301.1.2 = Σ uşaqlar` | 10+6020 | **6030** ✅ | | `Əlavə 4: 302 = Σ uşaqlar; 302.3 = 302.3.1..3` | 10+10+30 / 10+10+10 | **50 / 30** ✅ | | `Əlavə 5: 303 = Σ(303.1..303.53)` | bütün uşaqların cəmi | **28970 / 53** ✅ | | `308.1.vat = paidAmount × 18%` | 1000×0.18 | **180** ✅ | | `317.vat = max(0, 308+309+310+312 − 313 − 315)` | max(0, 0−50−20) | **0** (clamp ✅) | | `_1101.vat = 301.1.amount×18% − 301-4.amount×50%×18%` | 5600×0.18 − 1000×0.5×0.18 | **918** ✅ | **Bütün ƏDV düsturları canlı təsdiqləndi — istisna yoxdur.** > **301-4** = «Vergi Məcəlləsinin 174.5-ci maddəsinə əsasən formalaşan dövriyyə» — ictimai iaşə / pərakəndə ticarət / səhiyyə sektorlarında **nağdsız dövriyyənin 50%-i ƏDV bazasından çıxılır** (o hissəyə effektiv dərəcə 18% yox, 9%). 301-4 redaktə edilən xanadır; test dəyəri (1000) ilə yoxlandı: `_1101.vat` 1008→918 (−90) düsturla üst-üstə düşdü. Qeyd: "Tələb hüququ güzəşt" sətirləri (301.1.1.14 / 301.1.2.11) bu term DEYİL — onlar 301.1 amount-a normal 18%-lə əlavə olunur (yoxlandı: güzəşt=1000 → _1101.vat=1188=6600×18%, azalma yoxdur). 50%-güzəştli xüsusi əməliyyat sətri ayrıca və nadirdir. ### Hesabat dövründəki dövriyyə üzrə — ƏSAS DÖVRİYYƏ və ƏDV (calculations, _1001.._1006, _1303, _1005) *Yekun ƏDV dövriyyəsini formalaşdıran əsas addım. Daxili kodlar _10xx.* Mənbə chunk: `62481.4f3fdc84c5bac14f.chunk.js` | Kod | Sahə | Düstur (plain) | Qeyd | |---|---|---|---| | 301 | cost | `onReportingPeriodTurnover.301_1.cost` | =_1001.cost. Mirror of child line 301.1 cost (301.2 has no cost). | | 301 | amount | `onReportingPeriodTurnover.301_1.amount + onReportingPeriodTurnover.301_2.amount` | =_1001.amount = sum of children 301.1 + 301.2. | | 301 | vat | `onReportingPeriodTurnover.301_1.vat + onReportingPeriodTurnover.301_2.vat` | =_1001.vat = sum of children 301.1 + 301.2. | | 301.1 | cost | `appendix3.vatOperations.301_1.cost` | =_1101.cost. Passthrough pulled from appendix3 vatOperations. | | 301.1 | amount | `appendix3.vatOperations.301_1.amount` | =_1101.amount. Passthrough from appendix3 vatOperations. | | 301.1 | vat | `onReportingPeriodTurnover.301_1.amount*18/100 - appendix3.vatOperations.301_4.amount*50/100*18/100` | =_1101.vat. Full 18% VAT on 301.1 amount minus 50%-reduced 18% VAT on appendix3 line 301-4 (the 50% margin-reduction … | | 301.2 | vat | `max(0, onReportingPeriodTurnover.301_2.amount*18/100)` | =_1103.vat. 18% VAT on 301.2 amount, clamped to >=0. | | 301-2 | cost | `appendix2.total.sold` | =_1303.cost. Passthrough of appendix2 (agro margin) total sold. | | 302 | cost | `appendix4.302.cost` | =_1002.cost. Passthrough from appendix4 (zero-rated / 0% VAT operations). | | 302 | amount | `appendix4.302.amount` | =_1002.amount. Passthrough from appendix4. | | 302 | vat | `onReportingPeriodTurnover.302_cost * 100 / onReportingPeriodTurnover.305_cost` | =_1002.vat. Not a VAT amount but the % share of 302 cost within total turnover cost (305). returnNaNorFinite guards d… | | 303 | cost | `appendix5.303.cost` | =_1003.cost. Passthrough from appendix5 (VAT-exempt operations). | | 303 | amount | `appendix5.303.amount` | =_1003.amount. Passthrough from appendix5. | | 303 | vat | `onReportingPeriodTurnover.303_cost * 100 / onReportingPeriodTurnover.305_cost` | =_1003.vat. % share of exempt (303) cost within total turnover cost (305). Divide-by-zero guarded. | | 304 | vat | `onReportingPeriodTurnover.304_amount * 20/100` | =_1004.vat. 20% (not 18%) applied to 304 amount. | | 305 | cost | `301_cost + 301-2_cost + 302_cost + 303_cost + 304_cost` | =_1005.cost (ümumi/total). Sum of 301, 301-2, 302, 303, 304 costs. | | 305 | amount | `301_amount + 302_amount + 303_amount + 304_amount` | =_1005.amount (total). Sum of 301,302,303,304 amounts (301-2 excluded from amount sum). | | 305 | vat | `301_vat + 304_vat` | =_1005.vat (total). Sum of 301 and 304 VAT only. | | 306 | cost | `306_1_cost + 306_1-1_cost` | =_1006.cost. Sum of children 306.1 + 306.1-1 costs. | | 306 | amount | `306_1_amount + 306_1-1_amount + 306_2_amount + 306_3_amount` | =_1006.amount. Sum of children 306.1, 306.1-1, 306.2, 306.3 amounts. | | 306 | vat | `306_1_vat + 306_2_vat + 306_3_vat` | =_1006.vat. Sum of children 306.1, 306.2, 306.3 VAT (306.1-1 has no computed VAT). | | 306.1 | vat | `onReportingPeriodTurnover.306_1.amount * 18/100` | =_1108.vat. 18% VAT on 306.1 amount. | | 306.2 | vat | `onReportingPeriodTurnover.306_2.amount * 18/100` | =_1109.vat. 18% VAT on 306.2 amount. | | 306.3 | vat | `onReportingPeriodTurnover.306_3.amount * 18/100` | =_1110.vat. 18% VAT on 306.3 amount. | ### Əvəzləşdirilən vergi (step 11; 308–317) *Alışlara görə əvəzləşdirilən ƏDV.* Mənbə chunk: `80242.ea9db6d8fc5b7f98.chunk.js` | Kod | Sahə | Düstur (plain) | Qeyd | |---|---|---|---| | 308 | vat | `appendix1ElectronicInvoice.summary[indicator=308].paidVat (default 0)` | Assigned read-only. In T() taken from the appendix1 electronic-invoice summary row 308 paidVat; b() (initial data loa… | | 308.1 | vat | `substitutedTax["308.1"].paidAmount * 18 / 100` | VAT = editable paidAmount x 18%. 308.1.paidAmount is a user input (only read). | | 309 | paidAmount | `appendix6._row2.paidAmount` | Pulled from appendix6 row2. | | 309 | vat | `appendix6._row2.paidVat` | Pulled from appendix6 row2. | | 310 | paidAmount | `appendix1Cargo(CCD) total[310].cost` | ccdTotal E = calculateIndicatorsTotal(appendix1Cargo.formData); paidAmount = E[310].cost. | | 310 | vat | `appendix1Cargo(CCD) total[310].vat` | | | 311 | paidAmount | `appendix1Cargo(CCD) total[311].cost` | 311 has no vat sub-field in this section. | | 310.1 | vat | `substitutedTax["310.1"].paidAmount * 18 / 100` | VAT = editable paidAmount x 18%. 310.1.paidAmount is a user input (only read). | | 312 | paidAmount | `appendix7.summary.paidAmount` | | | 312 | vat | `appendix7.summary.paidVat` | | | 314 | vat | `appendix1ElectronicInvoice total[314].paidVat (default 0)` | Only assigned in b()/setSubstitutedTaxData (initial data-load population from the appendix1 invoice total). Not re-de… | | 316 | paidAmount | `appendix1ElectronicInvoice total[316].paidAmount (default 0)` | Only assigned in b()/setSubstitutedTaxData (initial population). 316.vat is a separate editable input (not derived). | | 308 | paidAmount | `appendix1ElectronicInvoice total[308].paidAmount (default 0)` | Prefilled in b()/setSubstitutedTaxData from the appendix1 invoice total. useTriggerEffect links 308.paidAmount <-> 30… | | 317 | paidAmount | `308.paidAmount + 309.paidAmount + 310.paidAmount + 311.paidAmount + 312.paidAmount + 316.paidAmount` | Total (317) paidAmount = sum of paidAmount over 308,309,310,311,312,316. Note 313,314,315 excluded from the paidAmoun… | | 317 | vat | `max(0, 308.vat + 309.vat + 310.vat + 312.vat - 313.vat - 315.vat)` | Total (317) vat = 308+309+310+312 vat MINUS 313 and 315 vat, clamped to >=0. T() computes the raw sum; the useCalcula… | ### Hesablaşmalar (326/327) + əsas vergi *Ödənilməli / əvəzləşdirilməli yekun ƏDV.* Mənbə chunk: `34700.163fc0edfee91190.chunk.js` | Kod | Sahə | Düstur (plain) | Qeyd | |---|---|---|---| | 326 | amount | `max(0, tpo305.vat + tpo306.vat + accurate318.paidVat + accurate324.paidVat - substituted317.vat - accurate319.paidVat - accurate325.paidVat)` | Ödənilməli ƏDV (VAT to be paid) = hesablanmış − əvəzləşdirilən, clamped to >=0. TotalCalculationIndicator._1023. Writ… | | 327 | amount | `max(0, substituted317.vat + accurate319.paidVat + accurate325.paidVat - tpo305.vat - tpo306.vat - accurate318.paidVat - accurate324.paidVat)` | Əvəzləşdirilməli ƏDV (VAT to be refunded/credited) = əvəzləşdirilən − hesablanmış, clamped to >=0. TotalCalculationIn… | ### Dəqiqləşdirilən vergi (step 12; 318–325) *Dəqiqləşdirilmiş bəyannamədə düzəlişlər.* Mənbə chunk: `79402.12e500153121e469.chunk.js` | Kod | Sahə | Düstur (plain) | Qeyd | |---|---|---|---| | 318.paidVat | vat | `round(paidAmount_318 * 18 / 100, 2)` | 318 = internal SpecifiedTurnoverIndicator._1017. paidAmount & turnover of 318 are user inputs; paidVat is DISABLE (gr… | | 319.paidVat | vat | `319.1.paidVat + 319.2.paidVat + 319.3.paidVat + 319.4.paidVat` | 319 = internal _1018 (parent). All three columns DISABLE = sum of children 319.1-319.4. | | 319.paidAmount | amount | `319.1.paidAmount + 319.2.paidAmount + 319.3.paidAmount + 319.4.paidAmount` | Parent 319 paidAmount = sum of children paidAmount. | | 319.turnover | total | `319.1.turnover + 319.2.turnover + 319.3.turnover + 319.4.turnover` | Parent 319 turnover (dövriyyə) = sum of children turnover. Note 319.2/319.3/319.4 turnover are themselves mirrored fr… | | 319.1.paidVat | vat | `round(319.1.paidAmount * 18 / 100, 2)` | 319.1 = internal _1035. paidAmount & turnover user inputs; paidVat computed at 18%. | | 319.2.turnover | total | `319.2.paidAmount` | 319.2 = internal _1036. turnover column is DISABLE and simply mirrors the entered paidAmount (no arithmetic). | | 319.2.paidVat | vat | `round(319.2.paidAmount * 17.1 / 100, 2)` | Reduced effective rate 17.1% (= 18% * 0.95). 2026.1-specific rate (2021.1/2024.1 variants used 16.2%). | | 319.3.turnover | total | `319.3.paidAmount` | 319.3 = internal _1045. turnover mirrors paidAmount. | | 319.3.paidVat | vat | `round(319.3.paidAmount * 14.85 / 100, 2)` | Reduced effective rate 14.85% (= 18% * 0.825). 2026.1-specific (2021.1/2024.1 used 15.3%). | | 319.4.turnover | total | `319.4.paidAmount` | 319.4 = internal _1430. turnover mirrors paidAmount. | | 319.4.paidVat | vat | `round(319.4.paidAmount * 12.6 / 100, 2)` | Reduced effective rate 12.6% (= 18% * 0.70), same across all versions. | | 324.paidVat | vat | `round(324.paidAmount * 18 / 100, 2)` | 324 = internal _1431. turnover HIDDEN, paidAmount user input, paidVat computed at 18%. | ### Əlavə 3 — ƏDV tutulan və tutulmayan əməliyyatlar (301.x) *Valideyn sətirlər = uşaqların cəmi. VAT sahəsi yoxdur (yalnız cost/amount).* Mənbə chunk: `63503.29ec4fed4bd41ac1.chunk.js` | Kod | Sahə | Düstur (plain) | Qeyd | |---|---|---|---| | 301.1 | cost | `301.1.1.cost + 301.1.2.cost + 301.1.3.cost + 301.1.4.cost` | Parent row = sum of the four direct children's cost. Written via setValue e.Pc to vatOperations.<301.1>.cost. Read-on… | | 301.1 | amount | `301.1.1.amount + 301.1.2.amount + 301.1.3.amount + 301.1.4.amount` | Parent row = sum of the four direct children's amount. setValue to vatOperations.<301.1>.amount. Read-only/grey. | | 301.1.1 | cost | `sum(301.1.1.k.cost for k=1..9)` | ASYMMETRIC: cost sums only children 1..9, whereas amount (below) sums 1..14. Children 10..14 contribute amount only, … | | 301.1.1 | amount | `sum(301.1.1.k.amount for k=1..14)` | Sums all 14 children amounts. setValue to vatOperations.<301.1.1>.amount. Read-only/grey. | | 301.1.2 | cost | `sum(301.1.2.k.cost for k=1..13)` | Sums all 13 children costs. setValue to vatOperations.<301.1.2>.cost. Read-only/grey. | | 301.1.2 | amount | `sum(301.1.2.k.amount for k=1..13)` | Sums all 13 children amounts. setValue to vatOperations.<301.1.2>.amount. A useTriggerEffect re-runs this when indica… | ### Əlavə 4 — 0% dərəcə ilə tutulan əməliyyatlar (302.x) *Sıfır dərəcəli əməliyyatlar.* Mənbə chunk: `41288.2d26453cbeb38c03.chunk.js` | Kod | Sahə | Düstur (plain) | Qeyd | |---|---|---|---| | 302 | cost | `302.1.cost + 302.2.cost + 302.3.cost + 302.4.cost + 302.5.cost + 302.6.cost + 302.7.cost + 302.8.cost + 302.9.cost + 302.10.cost + 302.11.cost + 302.12.cost` | Parent total = sum of all 12 child-line costs. Set via (0,i.Pc)(stepKey.302.cost, ...). Missing children default to 0… | | 302 | amount | `302.1.amount + 302.2.amount + 302.3.amount + 302.4.amount + 302.5.amount + 302.6.amount + 302.7.amount + 302.8.amount + 302.9.amount + 302.10.amount + 302.11.amount + 302.12.amount` | Parent total = sum of all 12 child-line amounts. Set via (0,i.Pc)(stepKey.302.amount, ...). | | 302.3 | cost | `302.3.1.cost + 302.3.2.cost + 302.3.3.cost` | Sub-parent 302.3 cost = sum of its three child rows. Set via (0,i.Pc)(stepKey.302.3.cost, ...). | | 302.3 | amount | `302.3.1.amount + 302.3.2.amount + 302.3.3.amount` | Sub-parent 302.3 amount = sum of its three child rows. Set via (0,i.Pc)(stepKey.302.3.amount, ...). | | 302.6 | cost | `appendix8.obtainedCertificateFormPanel.summary.totalCost ?? appendix8.totalCertificateInfo.totalCost` | Cross-appendix reference: 302.6 cost is pulled from Əlavə 8 (appendix8) certificate totals, preferring the obtained-c… | ### Əlavə 5 — ƏDV-dən azad olunan əməliyyatlar (303.x, azad) *QEYD: bundle-də kod 303 (valideyn) + uşaqlar 303.1..303.54; UI-də "azad" bölməsi.* Mənbə chunk: `37563.711737a3e47c934a.chunk.js` | Kod | Sahə | Düstur (plain) | Qeyd | |---|---|---|---| | 303.cost | cost | `sum(303.1.cost .. 303.54.cost)` | Parent 303 cost = sum of all 54 child-row cost fields. Read-only/grey. Value pushed via (0,u.Pc)(".303.cost"… | | 303.amount | amount | `sum(303.1.amount .. 303.54.amount)` | Parent 303 amount = sum of all 54 child-row amount fields. Read-only/grey. Value pushed via (0,u.Pc)(".303.a… | ### Debitor borclar (step 10; 307.x) *Borc roll-forward (açılış+yaranan−silinən=qalıq). ƏDV faizi yoxdur.* Mənbə chunk: `60142.aedce5dd1a72c678.chunk.js` | Kod | Sahə | Düstur (plain) | Qeyd | |---|---|---|---| | 307.previousDebt | previousDebt | `307.1.previousDebt + 307.2.previousDebt + 307.3.previousDebt` | Parent 307 = sum of children 307.1/307.2/307.3. Written via setValue (b.Pc) -> read-only grey cell. | | 307.incurredDebt | incurredDebt | `307.1.incurredDebt + 307.2.incurredDebt + 307.3.incurredDebt` | Parent 307 sum of children. | | 307.removedDebt | removedDebt | `307.1.removedDebt + 307.2.removedDebt + 307.3.removedDebt` | Parent 307 sum of children. | | 307.lastDebt | lastDebt | `307.previousDebt + 307.incurredDebt - 307.removedDebt` | Roll-forward closing debt = opening + incurred - removed. Uses the (already computed) 307 parent fields. | | 307.1.lastDebt | lastDebt | `307.1.previousDebt + 307.1.incurredDebt - 307.1.removedDebt` | Child row closing debt. previousDebt/incurredDebt/removedDebt are user inputs (leaves). | | 307.2.lastDebt | lastDebt | `307.2.previousDebt + 307.2.incurredDebt - 307.2.removedDebt` | Child row closing debt. | | 307.3.lastDebt | lastDebt | `307.3.previousDebt + 307.3.incurredDebt - 307.3.removedDebt` | Child row closing debt. | | 307-1.previousDebt | previousDebt | `307-1.1.previousDebt + 307-1.2.previousDebt + 307-1.3.previousDebt` | Parent 307-1 (second debtor-debt block) = sum of children 307-1.1/.2/.3. Note: this block has NO incurredDebt field. | | 307-1.removedDebt | removedDebt | `307-1.1.removedDebt + 307-1.2.removedDebt + 307-1.3.removedDebt` | Parent 307-1 sum of children. | | 307-1.lastDebt | lastDebt | `307-1.previousDebt - 307-1.removedDebt` | 307-1 block closing debt = opening - removed (no incurredDebt term, unlike 307). | | 307-1.1.lastDebt | lastDebt | `307-1.1.previousDebt - 307-1.1.removedDebt` | Child row; previousDebt/removedDebt are user inputs. | | 307-1.2.lastDebt | lastDebt | `307-1.2.previousDebt - 307-1.2.removedDebt` | Child row. | | 307-1.3.lastDebt | lastDebt | `307-1.3.previousDebt - 307-1.3.removedDebt` | Child row. | --- ## ƏDV-yə AİD OLMAYAN (agentlər yoxladı, çıxarılmadı) - **Xüsusi iqtisadi zona (801–819)** — isVat=false. Not a VAT section. specialZoneIndicators (801-806,810; internal codes _4001.._4007 via p.SpecialZoneIndicators) is the 'Xususi iqtisadi zona' block of the SIMPLIFIED TAX declaratio - **Xərc/dövriyyə detalları (1226–1251)** — isVat=false. Not a VAT section, so a definitive 2026.1 VAT variant does not apply. Among the costReportingPeriodIndicators variants, the most-expanded code set (2026.x latest) is in 65291/75444