intent: generates items cannot mark the source rows they consumed - pass-through billing (billable expense lines) cannot be billed exactly once
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
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
billableand carrying aProjectbecomes 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:withfrom: 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/fromStatuswould also need an EntityStatus on the line. - Per project. A
generates:withfromUses: projects,from: Project,items: { from: ExpenseClaimItem, where: [billable eq true, ...] }can select the rows. Nothing marks them consumed afterwards:generatesnever writes the item rows. A second click bills the same lines again, and awhere: [{ billed eq false }]has nobody to flipbilled. - 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
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de eclipse-dirigible/dirigible
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
eclipse-dirigible/dirigible#7958 ·
Los mantenedores suelen responder en 1 día
-
intent: a create-from without fromStatus answers 200 on a missing or unknown source id (no 400/404)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
eclipse-dirigible/dirigible#7945 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
eclipse-dirigible/dirigible#7891 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
eclipse-dirigible/dirigible#6538 ·
Los mantenedores suelen responder en 1 día
-
Create shortcut for Camel filesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
eclipse-dirigible/dirigible#4812 ·
Los mantenedores suelen responder en 1 día
Todos los issues de eclipse-dirigible/dirigible
Issues similares
-
area: android good first issue help wanted testing
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Gautam-aman/ResQNet#56 ·
Los mantenedores suelen responder en 1 día
-
documentation hermes-queue
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
chrisalunlloyd2-sudo/mindpalace#294 ·
Los mantenedores suelen responder en 1 día
-
better night vision compatAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
QuicksilverMC/Argentum#31 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
saysky/ForestBlog#111 ·
-
hawkbit-dmf-server 1.1.0 does not start: NoClassDefFoundError jakarta/servlet/ServletResponseAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
eclipse-hawkbit/hawkbit#3429 · 1 comentario ·
Los mantenedores suelen responder en 1 día