Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

intent: generates items cannot mark the source rows they consumed - pass-through billing (billable expense lines) cannot be billed exactly once

Abierto
#7,956 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
java
Área
backend

Línea de trabajo

Start by reading the declarative generates: handling for sourceStatus and item selection, then trace how create-from operations persist changes in their unit of work. The issue gives no file paths or test names, so locate the relevant implementation and tests first. Done means consumed source rows are marked atomically, a repeat run refuses with the configured message, and voiding can clear the reference as described alongside #7954.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Problem

Billing pass-through items declaratively has no at-most-once guarantee per source row. The typical cases are billable expense lines, unbilled timesheet days and consumed materials.

BusinessIntents/base-expenses#45 wants this:

  • each APPROVED or REIMBURSED expense line flagged billable and carrying a Project becomes an invoice line on a SalesInvoice for that project's customer;
  • each line is billed exactly once.

At 14.93.0 (862f6d1a) none of the shapes can say it:

  • Per line. A generates: with from: ExpenseClaimItem (a composition child) has no button. The document page offers contributed actions for the header only (caView: 'ExpenseClaim' in the document page), and a composition child renders no page of its own. sourceStatus/fromStatus would also need an EntityStatus on the line.
  • Per project. A generates: with fromUses: projects, from: Project, items: { from: ExpenseClaimItem, where: [billable eq true, ...] } can select the rows. Nothing marks them consumed afterwards: generates never writes the item rows. A second click bills the same lines again, and a where: [{ billed eq false }] has nobody to flip billed.
  • Per claim. A header create-from cannot name the customer, because the lines of one claim may belong to several projects and customers. It also has the same missing per-row marker.

Ask

An items: option that writes each consumed source row inside the create-from's unit of work, the per-row twin of sourceStatus. For example:

generates:
  - name: invoice-billable-expenses
    fromUses: projects
    from: Project
    to: SalesInvoice
    uses: sales-invoices
    map: { Customer: Customer, Company: Company }
    items:
      from: ExpenseClaimItem
      via: Project
      where: [{ billable eq true }, { BilledInvoice is null }, { ExpenseClaim.Status in [APPROVED, REIMBURSED] }]
      onConsumed: { setField: BilledInvoice, value: "{target.id}" }   # or setStatus on a line status
      refuseWhenEmpty: "No billable expense is waiting to be invoiced for this project"

Expected:

  • the selected rows become target lines;
  • each source row gets the back-reference/status in the same unit, so a second run selects nothing (400 with the authored sentence);
  • a voided invoice can clear the back-reference (pairs with #7954).

Related: #7954 (reopen for a cross-model target).

Lenguaje dominante
Java
Estrellas
278
Forks
97
Merge medio
19 h 30 min
PR fusionados (30 d)
242

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de eclipse-dirigible/dirigible

Todos los issues de eclipse-dirigible/dirigible

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.