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:
@ -132,16 +132,20 @@ pub trait DeliveryCompletionRepository: Send + Sync {
|
||||
day: Option<NaiveDate>,
|
||||
) -> Result<Vec<String>, ApplicationError>;
|
||||
|
||||
/// Liefert alle **abgeschlossenen** (ausgelieferten) Lieferungen, deren
|
||||
/// Abschluss-Zeitpunkt (`completed_at`) auf den Berliner Kalendertag `day`
|
||||
/// fällt — unabhängig vom Mail-Versand-Status. Pro Lieferung Belegnummer
|
||||
/// und das `positions_modified`-Flag (siehe [`CompletedDeliverySummary`]).
|
||||
/// Liefert alle **abgeschlossenen** (ausgelieferten) Lieferungen im
|
||||
/// angegebenen Datumsbereich — gefiltert über den Berliner Kalendertag von
|
||||
/// `completed_at`, unabhängig vom Mail-Versand-Status. Pro Lieferung
|
||||
/// Belegnummer und das `positions_modified`-Flag (siehe
|
||||
/// [`CompletedDeliverySummary`]).
|
||||
///
|
||||
/// `completed_at` ist ein UTC-Zeitstempel; der Kalendertag wird in
|
||||
/// **Europe/Berlin** bestimmt. Sortierung: aufsteigend nach Abschluss-Zeit.
|
||||
async fn list_completed_deliveries_for_day(
|
||||
/// `from`/`to` sind **inklusive** Grenzen; `None` lässt die jeweilige Seite
|
||||
/// offen (`from == to` ⇒ genau ein Tag, `None`/`None` ⇒ alle). `completed_at`
|
||||
/// ist ein UTC-Zeitstempel; der Kalendertag wird in **Europe/Berlin**
|
||||
/// bestimmt. Sortierung: aufsteigend nach Abschluss-Zeit.
|
||||
async fn list_completed_deliveries(
|
||||
&self,
|
||||
day: NaiveDate,
|
||||
from: Option<NaiveDate>,
|
||||
to: Option<NaiveDate>,
|
||||
) -> Result<Vec<CompletedDeliverySummary>, ApplicationError>;
|
||||
|
||||
/// Markiert die Liefermail der angegebenen Belegnummern als **versendet**
|
||||
|
||||
@ -23,11 +23,13 @@ impl ListCompletedDeliveriesUseCase {
|
||||
Self { completions }
|
||||
}
|
||||
|
||||
/// Liefert alle am `day` (Berliner Kalendertag) abgeschlossenen Lieferungen.
|
||||
/// Liefert alle im Bereich `[from, to]` (Berliner Kalendertag, inklusive,
|
||||
/// `None` = offene Seite) abgeschlossenen Lieferungen.
|
||||
pub async fn execute(
|
||||
&self,
|
||||
day: NaiveDate,
|
||||
from: Option<NaiveDate>,
|
||||
to: Option<NaiveDate>,
|
||||
) -> Result<Vec<CompletedDeliverySummary>, ApplicationError> {
|
||||
self.completions.list_completed_deliveries_for_day(day).await
|
||||
self.completions.list_completed_deliveries(from, to).await
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user