Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

intent: sourceStatusOnRetire is refused for a cross-model target - a milestone/timesheet billed into another module's invoice can never be re-billed after a void

Aperta
#7,954 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
java, yaml
Ambito
api, backend

Direzione di ricerca

Start with IntentParser.validateGeneratesReopen, which the issue names as refusing cross-model targets, and inspect how published .model data exposes owner status nomenclature and how CrossModelSupport reads it. Trace the generated reopen listener for local targets and its subscription to the target's -transitioned topic. Done means the example parses and voiding its generated invoice returns the milestone to REACHED, allowing a second Generate.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Problem

sourceStatusOnRetire (#6868, extended to button create-froms by #7647) is refused for a cross-model target at 14.93.0 (IntentParser.validateGeneratesReopen):

generates [invoice-from-milestone] cannot reopen for a cross-model target (uses [sales-invoices]) - what RETIRES a [SalesInvoice] is the stage: classification of its status nomenclature, seeded in the owner model and not resolvable here

The commonest create-from in an ERP is exactly this shape: a document of one module is billed into another module's invoice. In BusinessIntents:

  • base-projects invoice-from-milestone (Milestone -> SalesInvoice, sourceStatus: 3 INVOICED, fromStatus: [2]): when the invoice is voided, the milestone stays INVOICED, the from-status guard 409s the next Generate, and immutableWhen locks it. The milestone's amount can never be billed again (BusinessIntents/base-projects#30).
  • base-timesheets invoice-from-timesheet (ProjectTimesheet -> SalesInvoice, sourceStatus INVOICED): same dead end for a voided month invoice.

The target module cannot author the reopen instead (it would need uses: back to the source module - the cycle).

Ask

Let sourceStatusOnRetire resolve the retiring statuses of a cross-model target from the owner's published .model: the owner already knows which seed rows of its EntityStatus nomenclature are stage: cancelled / stage: void. Emitting those ids into the owner .model (like the widget types CrossModelSupport already reads) would let the reopen listener be generated in the SOURCE module, subscribed to the target's -transitioned topic, exactly as for a local target.

Expected

generates:
  - name: invoice-from-milestone
    from: Milestone
    to: SalesInvoice
    uses: sales-invoices
    fromStatus: [2]
    sourceStatus: 3
    sourceStatusOnRetire: 2   # voiding/cancelling the invoice returns the milestone to REACHED

generates without a parser issue; voiding the generated invoice returns the milestone to REACHED and a second Generate succeeds.

Lingua principale
Java
Stelle
278
Fork
97
Merge medio
16h 27m
PR unite (30g)
264

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di eclipse-dirigible/dirigible

Tutte le issue di eclipse-dirigible/dirigible

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.