feat(back-end and front-end) cad bill with order

This commit is contained in:
2026-03-04 12:03:09 +01:00
parent 0f2f2bc7a9
commit 1b3f0b16ff
43 changed files with 1594 additions and 150 deletions

View File

@@ -1,6 +1,12 @@
<div class="checkout-page">
<div class="container hero">
<h1 class="section-title">{{ "CHECKOUT.TITLE" | translate }}</h1>
<p class="cad-subtitle" *ngIf="isCadSession()">
Servizio CAD
<ng-container *ngIf="cadRequestId()">
riferito alla richiesta contatto #{{ cadRequestId() }}
</ng-container>
</p>
</div>
<div class="container">
@@ -260,6 +266,17 @@
</small>
</div>
</div>
<div class="summary-item cad-summary-item" *ngIf="cadTotal() > 0">
<div class="item-details">
<span class="item-name">Servizio CAD</span>
<div class="item-specs-sub">{{ cadHours() }}h</div>
</div>
<div class="item-price">
<span class="item-total-price">
{{ cadTotal() | currency: "CHF" }}
</span>
</div>
</div>
</div>
<div class="summary-totals" *ngIf="quoteSession() as session">

View File

@@ -8,6 +8,11 @@
}
}
.cad-subtitle {
margin: 0;
color: var(--color-text-muted);
}
.checkout-layout {
display: grid;
grid-template-columns: 1fr 420px;
@@ -260,6 +265,13 @@ app-toggle-selector.user-type-selector-compact {
}
}
.cad-summary-item {
background: var(--color-neutral-100);
border-radius: var(--radius-sm);
padding-left: var(--space-3);
padding-right: var(--space-3);
}
.summary-totals {
background: var(--color-neutral-100);
padding: var(--space-4);

View File

@@ -162,6 +162,22 @@ export class CheckoutComponent implements OnInit {
});
}
isCadSession(): boolean {
return this.quoteSession()?.session?.status === 'CAD_ACTIVE';
}
cadRequestId(): string | null {
return this.quoteSession()?.session?.sourceRequestId ?? null;
}
cadHours(): number {
return this.quoteSession()?.session?.cadHours ?? 0;
}
cadTotal(): number {
return this.quoteSession()?.cadTotalChf ?? 0;
}
onSubmit() {
if (this.checkoutForm.invalid) {
return;