Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

オープン
#7,956 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
35/100
issue の種類
機能追加
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
java
領域
backend

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

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).

主要言語
Java
スター
278
フォーク
97
平均マージ
19時間 30分
マージ済み PR(30日)
242

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

eclipse-dirigible/dirigible のほかの issue

eclipse-dirigible/dirigible の issue をすべて見る

似ている issue

Java の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。