feat(admin): GET /admin/belege/{belegnummer} - volle Lieferdetails
Neuer Admin-Endpunkt, der zu einer ERP-Belegnummer das komplette Detail-Paket einer Lieferung liefert (Kopf, Positionen mit Scan-Ständen, Kunde + Ansprechpartner, referenzierte Artikel/Lager, Notizen, Geld-Gutschrift, Dienstleistungswerte, Kontakte). Jede Lieferung, unabhaengig vom Status; 404 bei unbekannter Belegnummer. Umsetzung: TourRepository::find_tour_id_by_belegnummer loest die Belegnummer auf ihre tour_id auf; der Use Case laedt das bestehende Tour-Aggregat und destilliert daraus in-memory die eine Lieferung samt referenzierter Stammdaten (neues DTO DeliveryDetails). Kein neuer grosser Query. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -988,6 +988,21 @@ impl TourRepository for PgTourRepository {
|
||||
tx.commit().await.map_err(db)?;
|
||||
Ok(res.rows_affected())
|
||||
}
|
||||
|
||||
async fn find_tour_id_by_belegnummer(
|
||||
&self,
|
||||
belegnummer: &str,
|
||||
) -> Result<Option<Uuid>, ApplicationError> {
|
||||
let tour_id: Option<Uuid> = sqlx::query_scalar(
|
||||
"SELECT tour_id FROM deliveries WHERE erp_belegnummer = $1 LIMIT 1",
|
||||
)
|
||||
.bind(belegnummer)
|
||||
.fetch_optional(&self.pool)
|
||||
.await
|
||||
.map_err(db)?;
|
||||
|
||||
Ok(tour_id)
|
||||
}
|
||||
}
|
||||
|
||||
// ===== Upsert-Helfer =====================================================
|
||||
|
||||
Reference in New Issue
Block a user