mirror of
https://dev.azure.com/hugendubel/ISA/_git/ISA-Frontend
synced 2025-12-31 09:37:15 +01:00
Merged PR 1721: #4564 Always keep customer updated and check name properties correctly
#4564 Always keep customer updated and check name properties correctly
This commit is contained in:
committed by
Lorenz Hilpert
parent
fdcf12c022
commit
866cd23e41
@@ -5,14 +5,10 @@
|
||||
<ng-container *ngIf="buyer$ | async; let buyer">
|
||||
<div *ngIf="!(showAddresses$ | async)" class="flex flex-row items-start justify-between p-5">
|
||||
<div class="flex flex-row flex-wrap pr-4">
|
||||
<ng-container *ngIf="!!buyer?.lastName && !!buyer?.firstName; else organisation">
|
||||
<div class="mr-3">Nachname, Vorname</div>
|
||||
<div class="font-bold">{{ buyer?.lastName }}, {{ buyer?.firstName }}</div>
|
||||
<ng-container *ngIf="getNameFromBuyer(buyer); let name">
|
||||
<div class="mr-3">{{ name.label }}</div>
|
||||
<div class="font-bold">{{ name.value }}</div>
|
||||
</ng-container>
|
||||
<ng-template #organisation>
|
||||
<div class="mr-3">Firmenname</div>
|
||||
<div class="font-bold">{{ buyer?.organisation?.name }}</div>
|
||||
</ng-template>
|
||||
</div>
|
||||
|
||||
<button (click)="changeAddress()" class="text-p1 font-bold text-[#F70400]">
|
||||
|
||||
@@ -7,7 +7,7 @@ import { first, map, switchMap, takeUntil, withLatestFrom } from 'rxjs/operators
|
||||
import { ApplicationService } from '@core/application';
|
||||
import { DomainCheckoutService } from '@domain/checkout';
|
||||
import { Router } from '@angular/router';
|
||||
import { NotificationChannel } from '@swagger/checkout';
|
||||
import { BuyerDTO, NotificationChannel } from '@swagger/checkout';
|
||||
|
||||
@Component({
|
||||
selector: 'page-checkout-review-details',
|
||||
@@ -118,6 +118,20 @@ export class CheckoutReviewDetailsComponent implements OnInit {
|
||||
this._store.onNotificationChange(notificationChannels);
|
||||
}
|
||||
|
||||
getNameFromBuyer(buyer: BuyerDTO): { value: string; label: string } {
|
||||
if (buyer?.lastName && buyer?.firstName) {
|
||||
return { value: `${buyer?.lastName}, ${buyer?.firstName}`, label: 'Nachname, Vorname' };
|
||||
} else if (buyer?.lastName) {
|
||||
return { value: buyer?.lastName, label: 'Nachname, Vorname' };
|
||||
} else if (buyer?.firstName) {
|
||||
return { value: buyer?.firstName, label: 'Nachname, Vorname' };
|
||||
} else if (buyer?.organisation?.name) {
|
||||
return { value: buyer?.organisation?.name, label: 'Firmenname' };
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
async changeAddress() {
|
||||
const processId = this._application.activatedProcessId;
|
||||
const customer = await this._domainCheckoutService.getBuyer({ processId }).pipe(first()).toPromise();
|
||||
|
||||
@@ -405,12 +405,12 @@ export class CustomerDetailsViewMainComponent extends ComponentStore<CustomerDet
|
||||
|
||||
@log
|
||||
_patchProcessName() {
|
||||
let name = `${this.customer.firstName} ${this.customer.lastName}`;
|
||||
let name = `${this.customer.firstName ?? ''} ${this.customer.lastName ?? ''}`;
|
||||
|
||||
// Ticket #4458 Es kann vorkommen, dass B2B Konten keinen Firmennamen hinterlegt haben
|
||||
// zusätzlich kanne es bei Mitarbeiter Konten vorkommen, dass die Namen in der Organisation statt im Kundennamen hinterlegt sind
|
||||
if ((this._store.isBusinessKonto && this.customer.organisation?.name) || (!this.customer.firstName && !this.customer.lastName)) {
|
||||
name = `${this.customer.organisation?.name}`;
|
||||
name = `${this.customer.organisation?.name ?? ''}`;
|
||||
}
|
||||
|
||||
this._application.patchProcess(this.processId, {
|
||||
|
||||
@@ -8,7 +8,6 @@ import { CrmCustomerService } from '@domain/crm';
|
||||
import { Result } from '@domain/defs';
|
||||
import { CustomerDTO, ListResponseArgsOfCustomerInfoDTO, QuerySettingsDTO } from '@swagger/crm';
|
||||
import { Filter } from '@shared/components/filter';
|
||||
import { isEmpty } from 'lodash';
|
||||
import { DomainOmsService } from '@domain/oms';
|
||||
import { OrderDTO, OrderListItemDTO } from '@swagger/oms';
|
||||
import { hash } from '@utils/common';
|
||||
@@ -304,7 +303,10 @@ export class CustomerSearchStore extends ComponentStore<CustomerSearchState> imp
|
||||
),
|
||||
withLatestFrom(this.filter$, this.processId$),
|
||||
map(([a1, a2, a3]) => {
|
||||
this.patchState({ fetchingCustomerList: true, customerList: [], customerListCount: 0, message: '' });
|
||||
// #4564 Setze "customer" undefined immer wenn neu gesucht wird,
|
||||
// da sonst Änderungen einer zweiten ISA am Kunden, selbst nach erneuter Suche, nicht geupdated werden,
|
||||
// da noch der alte Kundendatensatz im Store gespeichert ist
|
||||
this.patchState({ fetchingCustomerList: true, customerList: [], customer: undefined, customerListCount: 0, message: '' });
|
||||
|
||||
let retored = false;
|
||||
if (a1.ignoreRestore) {
|
||||
|
||||
@@ -15,9 +15,9 @@ export class CustomerNamePipe implements PipeTransform {
|
||||
const isB2b = customer.features?.some((f) => f.key === 'b2b') && customer.organisation?.name;
|
||||
|
||||
if (!isB2b) {
|
||||
return `${customer.lastName} ${customer.firstName}`;
|
||||
return `${customer?.lastName ?? ''} ${customer?.firstName ?? ''}`;
|
||||
} else {
|
||||
return `${customer.organisation.name}`;
|
||||
return `${customer.organisation.name ?? ''}`;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user