feat(report): abweichenden Empfänger im Lieferbericht ausweisen

Weicht Lieferadresse oder Empfänger (ERP-LieferAdressId) vom Besteller ab,
führt der Abschnitt „Kunde & Lieferadresse" Besteller und Empfänger
getrennt auf — jeweils mit Anschrift und Telefonnummern — plus Hinweis
„Abweichende Lieferadresse". Sonst bleibt der Abschnitt unverändert.

Erkennung wie in der App: andere Anschrift ODER anderer Name an der
Lieferadresse (gegen die Belegadresse), Schreibweise egal.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Dennis Nemec
2026-09-25 15:57:11 +02:00
parent 7cb054cf6c
commit af6d522290
4 changed files with 254 additions and 10 deletions

View File

@ -28,7 +28,12 @@ pub struct DeliveryReportData {
// Kunde + Adresse
pub customer_number: i64,
pub customer_name: String,
/// Lieferadresse (Snapshot am Beleg), einzeilig.
pub address: String,
/// Nur gesetzt, wenn Empfänger oder Lieferadresse vom Besteller
/// abweichen (ERP-`LieferAdressId`). Dann ist `customer_*` der Besteller
/// und `address` die abweichende Lieferadresse.
pub different_recipient: Option<ReportRecipient>,
pub desired_time: Option<String>,
pub special_agreements: Option<String>,
pub prepaid_amount: f64,
@ -48,6 +53,16 @@ pub struct DeliveryReportData {
pub driver_signature_png: Option<Vec<u8>>,
}
/// Empfänger vor Ort, der vom Besteller abweicht, samt Kontaktdaten beider.
#[derive(Debug, Clone)]
pub struct ReportRecipient {
pub name: String,
pub phones: Vec<String>,
/// Anschrift des Bestellers (Kundenstamm), einzeilig.
pub orderer_address: String,
pub orderer_phones: Vec<String>,
}
#[derive(Debug, Clone)]
pub struct ReportContact {
pub name: String,

View File

@ -33,7 +33,7 @@ pub use complete::CompleteDeliveryAcknowledgements;
pub use credit::{CreditAction, DeliveryCreditEventRequest, DeliveryCreditResponse};
pub use delivery_report::{
DeliveryReportData, ReportAttachment, ReportCompletion, ReportContact, ReportCreditAudit, ReportPayment,
ReportItem, ReportNote, ReportScanAudit, ReportService,
ReportItem, ReportNote, ReportRecipient, ReportScanAudit, ReportService,
};
pub use delivery_action::{CancelDeliveryRequest, DeliveryResponse, HoldDeliveryRequest};
pub use delivery_details::DeliveryDetails;