checks: compare.than cannot name a one-hop Relation.field (a credit note dated before the invoice it corrects)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 22/100
Research direction
The issue names no files. Start from the existing checks compare rule and the requiredWhen/forbidWhen when: handling that already reads a one-hop Relation.field (added in #7495), and reuse that pattern for compare.than. Done means than: Relation.field is accepted, null-guarded, enforced on every user write, and gated by status:, with tests covering a credit note dated before its invoice.
Written by the indexing model from the issue text.
Description
checks: { kind: compare, field: date, op: ge, than: <field> } compares two fields of the SAME row only. A correcting document cannot say "my date is not before the document I correct": than: SalesInvoice.date over a to-one. requiredWhen/forbidWhen when: terms have read a one-hop Relation.field since #7495, but compare.than does not.
Found by the BusinessIntents adversarial hunt (billing, run 37984537906, 14.81.0): a credit note dated 2026-01-15 was issued against an invoice dated 2026-10-01. It reverses a sale nine months before the sale and lands in an earlier VAT period. Module issue: BusinessIntents/base-sales-invoices#200 (the same gap on the debit note).
Expected: than: accepts a one-hop Relation.field (null-guarded, as the when: terms are), enforced on every user write, and with a status: gate at that transition.
- Dominant language
- Java
- Stars
- 278
- Forks
- 97
- Avg merge
- 18h 57m
- Merged PRs (30d)
- 249
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from eclipse-dirigible/dirigible
-
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
eclipse-dirigible/dirigible#7958 ·
Maintainers usually reply within 1 day
-
intent: a create-from without fromStatus answers 200 on a missing or unknown source id (no 400/404)Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
eclipse-dirigible/dirigible#7945 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
eclipse-dirigible/dirigible#7891 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
eclipse-dirigible/dirigible#6538 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
eclipse-dirigible/dirigible#4812 ·
Maintainers usually reply within 1 day
All issues in eclipse-dirigible/dirigible
Similar issues
-
enhancement feature
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
rsp777/service-pulse-app#28 ·
-
human-required sync-failed
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Azure/osdu-spi-file#63 ·
Maintainers usually reply within 1 day
-
area/ysql kind/enhancement priority/medium status/awaiting-triage
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
yugabyte/yugabyte-db#35578 ·
Maintainers usually reply within 1 day
-
frontend quick win
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
CodeForPhilly/benefit-decision-toolkit#571 ·
Maintainers usually reply within 1 day
-
approved
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
checkstyle/checkstyle#22129 ·
Maintainers usually reply within 1 day