feat(admin): completed-deliveries um from/to-Range erweitern
/admin/completed-deliveries akzeptiert jetzt zusätzlich zu `day` (Kurzform from=to) optionale `from`/`to` (DD-MM-YYYY, inklusive, je offen). Damit lassen sich Halb-Grenzen abfragen: `?from=` bzw. `?to=` liefern je eine Belegnummern- Menge, deren SQL-AND-Schnitt einen Zeitraum ergibt (Range-Filter über zwei unabhängige ERPframe-Filter). Response gibt statt `day` nun `from`/`to` zurück. Mindestens eine Grenze ist Pflicht (kein Full-Table-Dump). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -473,12 +473,14 @@ impl DeliveryCompletionRepository for PgDeliveryCompletionRepository {
|
||||
Ok(belegnummern)
|
||||
}
|
||||
|
||||
async fn list_completed_deliveries_for_day(
|
||||
async fn list_completed_deliveries(
|
||||
&self,
|
||||
day: NaiveDate,
|
||||
from: Option<NaiveDate>,
|
||||
to: Option<NaiveDate>,
|
||||
) -> Result<Vec<CompletedDeliverySummary>, ApplicationError> {
|
||||
// Alle an `day` (Berliner Kalendertag von completed_at) abgeschlossenen
|
||||
// Lieferungen — ohne Mail-Filter. `positions_modified` ist true, wenn
|
||||
// Alle im Bereich [from, to] (Berliner Kalendertag von completed_at)
|
||||
// abgeschlossenen Lieferungen — ohne Mail-Filter. `from`/`to` inklusive,
|
||||
// NULL = offene Seite. `positions_modified` ist true, wenn
|
||||
// (a) irgendeine Belegzeile eine Stück-Gutschrift trägt
|
||||
// (credited_quantity > 0 ⇒ Zeile ganz entfernt oder Menge reduziert),
|
||||
// ODER
|
||||
@ -506,11 +508,15 @@ impl DeliveryCompletionRepository for PgDeliveryCompletionRepository {
|
||||
) AS positions_modified
|
||||
FROM deliveries d
|
||||
JOIN delivery_completions c ON c.delivery_id = d.id
|
||||
WHERE (c.completed_at AT TIME ZONE 'Europe/Berlin')::date = $1
|
||||
WHERE ( $1::date IS NULL
|
||||
OR (c.completed_at AT TIME ZONE 'Europe/Berlin')::date >= $1 )
|
||||
AND ( $2::date IS NULL
|
||||
OR (c.completed_at AT TIME ZONE 'Europe/Berlin')::date <= $2 )
|
||||
ORDER BY c.completed_at
|
||||
"#,
|
||||
)
|
||||
.bind(day)
|
||||
.bind(from)
|
||||
.bind(to)
|
||||
.fetch_all(&self.pool)
|
||||
.await
|
||||
.map_err(db)?;
|
||||
|
||||
Reference in New Issue
Block a user