feat(back-end, front-enc): twint payment
This commit is contained in:
@@ -46,8 +46,8 @@
|
||||
<app-card class="loading-state">
|
||||
<div class="loader-content">
|
||||
<div class="spinner"></div>
|
||||
<h3 class="loading-title">Analisi in corso...</h3>
|
||||
<p class="loading-text">Stiamo analizzando la geometria e calcolando il percorso utensile.</p>
|
||||
<h3 class="loading-title">{{ 'CALC.ANALYZING_TITLE' | translate }}</h3>
|
||||
<p class="loading-text">{{ 'CALC.ANALYZING_TEXT' | translate }}</p>
|
||||
</div>
|
||||
</app-card>
|
||||
} @else if (result()) {
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
</div>
|
||||
|
||||
<div class="setup-note">
|
||||
<small>* Include {{ result().setupCost | currency:result().currency }} Setup Cost</small>
|
||||
<small>{{ 'CALC.SETUP_NOTE' | translate:{cost: (result().setupCost | currency:result().currency)} }}</small>
|
||||
</div>
|
||||
|
||||
@if (result().notes) {
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
<div class="item-controls">
|
||||
<div class="qty-control">
|
||||
<label>Qtà:</label>
|
||||
<label>{{ 'CHECKOUT.QTY' | translate }}:</label>
|
||||
<input
|
||||
type="number"
|
||||
min="1"
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
<div class="card-body">
|
||||
<div class="card-controls">
|
||||
<div class="qty-group">
|
||||
<label>QTÀ</label>
|
||||
<label>{{ 'CALC.QTY_SHORT' | translate }}</label>
|
||||
<input
|
||||
type="number"
|
||||
min="1"
|
||||
@@ -45,7 +45,7 @@
|
||||
</div>
|
||||
|
||||
<div class="color-group">
|
||||
<label>COLORE</label>
|
||||
<label>{{ 'CALC.COLOR_LABEL' | translate }}</label>
|
||||
<app-color-selector
|
||||
[selectedColor]="item.color"
|
||||
[variants]="currentMaterialVariants()"
|
||||
@@ -134,7 +134,7 @@
|
||||
<app-input
|
||||
formControlName="notes"
|
||||
[label]="'CALC.NOTES' | translate"
|
||||
placeholder="Istruzioni specifiche..."
|
||||
[placeholder]="'CALC.NOTES_PLACEHOLDER' | translate"
|
||||
></app-input>
|
||||
|
||||
<div class="actions">
|
||||
@@ -151,7 +151,7 @@
|
||||
type="submit"
|
||||
[disabled]="items().length === 0 || loading()"
|
||||
[fullWidth]="true">
|
||||
{{ loading() ? (uploadProgress() < 100 ? 'Uploading...' : 'Processing...') : ('CALC.CALCULATE' | translate) }}
|
||||
{{ loading() ? (uploadProgress() < 100 ? ('CALC.UPLOADING' | translate) : ('CALC.PROCESSING' | translate)) : ('CALC.CALCULATE' | translate) }}
|
||||
</app-button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
<div class="col-md-6">
|
||||
<app-input
|
||||
formControlName="name"
|
||||
label="USER_DETAILS.NAME"
|
||||
placeholder="USER_DETAILS.NAME_PLACEHOLDER"
|
||||
[label]="'USER_DETAILS.NAME' | translate"
|
||||
[placeholder]="'USER_DETAILS.NAME_PLACEHOLDER' | translate"
|
||||
[required]="true"
|
||||
[error]="form.get('name')?.invalid && form.get('name')?.touched ? ('COMMON.REQUIRED' | translate) : null">
|
||||
</app-input>
|
||||
@@ -18,8 +18,8 @@
|
||||
<div class="col-md-6">
|
||||
<app-input
|
||||
formControlName="surname"
|
||||
label="USER_DETAILS.SURNAME"
|
||||
placeholder="USER_DETAILS.SURNAME_PLACEHOLDER"
|
||||
[label]="'USER_DETAILS.SURNAME' | translate"
|
||||
[placeholder]="'USER_DETAILS.SURNAME_PLACEHOLDER' | translate"
|
||||
[required]="true"
|
||||
[error]="form.get('surname')?.invalid && form.get('surname')?.touched ? ('COMMON.REQUIRED' | translate) : null">
|
||||
</app-input>
|
||||
@@ -31,9 +31,9 @@
|
||||
<div class="col-md-6">
|
||||
<app-input
|
||||
formControlName="email"
|
||||
label="USER_DETAILS.EMAIL"
|
||||
[label]="'USER_DETAILS.EMAIL' | translate"
|
||||
type="email"
|
||||
placeholder="USER_DETAILS.EMAIL_PLACEHOLDER"
|
||||
[placeholder]="'USER_DETAILS.EMAIL_PLACEHOLDER' | translate"
|
||||
[required]="true"
|
||||
[error]="form.get('email')?.invalid && form.get('email')?.touched ? ('COMMON.INVALID_EMAIL' | translate) : null">
|
||||
</app-input>
|
||||
@@ -41,9 +41,9 @@
|
||||
<div class="col-md-6">
|
||||
<app-input
|
||||
formControlName="phone"
|
||||
label="USER_DETAILS.PHONE"
|
||||
[label]="'USER_DETAILS.PHONE' | translate"
|
||||
type="tel"
|
||||
placeholder="USER_DETAILS.PHONE_PLACEHOLDER"
|
||||
[placeholder]="'USER_DETAILS.PHONE_PLACEHOLDER' | translate"
|
||||
[required]="true"
|
||||
[error]="form.get('phone')?.invalid && form.get('phone')?.touched ? ('COMMON.REQUIRED' | translate) : null">
|
||||
</app-input>
|
||||
@@ -53,8 +53,8 @@
|
||||
<!-- Address -->
|
||||
<app-input
|
||||
formControlName="address"
|
||||
label="USER_DETAILS.ADDRESS"
|
||||
placeholder="USER_DETAILS.ADDRESS_PLACEHOLDER"
|
||||
[label]="'USER_DETAILS.ADDRESS' | translate"
|
||||
[placeholder]="'USER_DETAILS.ADDRESS_PLACEHOLDER' | translate"
|
||||
[required]="true"
|
||||
[error]="form.get('address')?.invalid && form.get('address')?.touched ? ('COMMON.REQUIRED' | translate) : null">
|
||||
</app-input>
|
||||
@@ -64,8 +64,8 @@
|
||||
<div class="col-md-4">
|
||||
<app-input
|
||||
formControlName="zip"
|
||||
label="USER_DETAILS.ZIP"
|
||||
placeholder="USER_DETAILS.ZIP_PLACEHOLDER"
|
||||
[label]="'USER_DETAILS.ZIP' | translate"
|
||||
[placeholder]="'USER_DETAILS.ZIP_PLACEHOLDER' | translate"
|
||||
[required]="true"
|
||||
[error]="form.get('zip')?.invalid && form.get('zip')?.touched ? ('COMMON.REQUIRED' | translate) : null">
|
||||
</app-input>
|
||||
@@ -73,8 +73,8 @@
|
||||
<div class="col-md-8">
|
||||
<app-input
|
||||
formControlName="city"
|
||||
label="USER_DETAILS.CITY"
|
||||
placeholder="USER_DETAILS.CITY_PLACEHOLDER"
|
||||
[label]="'USER_DETAILS.CITY' | translate"
|
||||
[placeholder]="'USER_DETAILS.CITY_PLACEHOLDER' | translate"
|
||||
[required]="true"
|
||||
[error]="form.get('city')?.invalid && form.get('city')?.touched ? ('COMMON.REQUIRED' | translate) : null">
|
||||
</app-input>
|
||||
|
||||
@@ -161,6 +161,13 @@ export class QuoteEstimatorService {
|
||||
responseType: 'blob'
|
||||
});
|
||||
}
|
||||
|
||||
getTwintPayment(orderId: string): Observable<any> {
|
||||
const headers: any = {};
|
||||
// @ts-ignore
|
||||
if (environment.basicAuth) headers['Authorization'] = 'Basic ' + btoa(environment.basicAuth);
|
||||
return this.http.get(`${environment.apiUrl}/api/orders/${orderId}/twint`, { headers });
|
||||
}
|
||||
|
||||
calculate(request: QuoteRequest): Observable<number | QuoteResult> {
|
||||
console.log('QuoteEstimatorService: Calculating quote...', request);
|
||||
|
||||
Reference in New Issue
Block a user