Untitled
unknown
plain_text
3 years ago
12 kB
9
Indexable
<div class="multi-cart">
<h4 class="page-title">{{ 'multi-cart.title' | translate }}</h4>
<div class="multi-cart__content">
<ng-container *ngIf="currentCartLoaded; else currentCartLoader">
<app-configurable-product-cart
*ngIf="isContractInCart()"
[isCartOperationInProgress]="isCartOperationInProgress"
[currency]="currency"
[totals]="totals"
[currentCart]="currentCart"
[currentCartItems]="currentCartItems"
[hasNickname]="hasNickname"
[validUntilDate]="validUntilDate"
(showAddNicknameModal)="addNicknameModalActive = $event"
(showDeleteQuoteModal)="deleteQuoteModalActive = $event"
(removeQuoteItem)="quoteItemToDelete = $event"
(showRemoveConfigurationModal)="removeConfigurationModalActive = $event">
</app-configurable-product-cart>
<app-spare-part-product-cart
#appSparePartProductCart
*ngIf="!isContractInCart()"
[isCartOperationInProgress]="isCartOperationInProgress"
[currency]="currency"
[currentCart]="currentCart"
[currentCartItems]="currentCartItems"
[hasNickname]="hasNickname"
[wishlists]="wishlists"
[addWishlistModalActive]="addWishlistModalActive"
(showAddWishlistModal)="addWishlistModalActive = $event"
(showAddNicknameModal)="addNicknameModalActive = $event"
(showDeleteCartModal)="deleteCartModalActive = $event"
(generatePdfFile)="generatePdfFile()"
(removeCartItem)="removeCartItem($event)"
(updateCartItemQuantity)="updateCartItemQuantity($event)">
</app-spare-part-product-cart>
</ng-container>
<ng-template #currentCartLoader>
<div class="multi-cart__current-cart-loader">
<div class="loading-animation"></div>
</div>
</ng-template>
<div class="multi-cart__other-carts">
<h6 *ngIf="isSparePartsEnabled && currentTab === multiCartTabs.PARTS">{{ 'multi-cart.other-carts' | translate }}</h6>
<h6 *ngIf="isCpqEnabled && currentTab === multiCartTabs.SERVICES">{{ 'multi-cart.other-quotes' | translate }}</h6>
<div class="tabs">
<div class="tabs__list margin-left-0" *ngIf="otherCarts?.length > 0">
<span class="tabs__item" [ngClass]="{'is-active': currentTab === multiCartTabs.PARTS}"
*ngIf="isSparePartsEnabled && otherSparePartProductCarts?.length > 0"
(click)="currentTab = multiCartTabs.PARTS">
{{ 'multi-cart.tab-parts' | translate }}
<span>
({{ otherSparePartProductCarts?.length }})
</span>
</span>
<span class="tabs__item" [ngClass]="{'is-active': currentTab === multiCartTabs.SERVICES}"
*ngIf="isCpqEnabled && otherConfigurableProductCarts?.length > 0"
(click)="currentTab = multiCartTabs.SERVICES">
{{ 'multi-cart.tab-services' | translate }}
<span>
({{ otherConfigurableProductCarts?.length }})
</span>
</span>
</div>
<div *ngIf="isSparePartsEnabled"
class="tabs__panel" [ngClass]="{'is-active': currentTab === multiCartTabs.PARTS}">
<div class="other-carts" (window:resize)="onResize($event)">
<div class="create-new-cart" (click)="createNewEmptyCartAndRedirectTo()">
<h6>+ {{ 'multi-cart.create-new-cart' | translate }} </h6>
</div>
<ng-container
*ngFor="let otherCart of otherSparePartProductCarts |
slice:0:(viewAllPartsCarts ? otherSparePartProductCarts.length : viewItemsForParts)">
<div class="other-carts__cart" [ngClass]="{'no-items': otherCart.itemDetails?.length === 0}">
<h6 class="cart-name">{{ cartName(otherCart) }}</h6>
<div *ngIf="otherCart.itemDetails[0]?.id" class="cart-image">
<img [src]="getImageForOtherCart(otherCart.itemDetails[0]?.id)"
alt="{{ otherCart.itemDetails[0]?.attributes.abstractSku }}">
</div>
<div class="cart-items">
<h6 class="cart-item-name">{{ otherCart.id }}</h6>
<ng-container *ngIf="otherCart.itemDetails?.length > 0; else noItems">
<strong>
{{ singularOrPlural(otherCart.itemDetails.length, 'orders-page.item') |
translate: {number: otherCart.itemDetails.length} }}
</strong>
<span>{{ otherCart.attributes.systemDetails?.nameEnUs }}</span>
<span>FL: {{ otherCart.attributes.systemDetails?.siemensEquipmentId }}</span>
</ng-container>
<ng-template #noItems>
<span>{{ 'multi-cart.no-cart-items' | translate }}</span>
</ng-template>
</div>
<div class="cart-actions">
<button *ngIf="otherCart.itemDetails?.length > 0" type="submit" class="button button--primary"
(click)="switchDefaultCart(otherCart.id, '/sap-delivery-details')">
{{ 'multi-cart.continue' | translate }}
</button>
<button type="submit" class="button" (click)="switchDefaultCart(otherCart.id)">
{{ 'multi-cart.select' | translate }}
</button>
</div>
</div>
</ng-container>
</div>
<div class="action-buttons">
<button type="button"
class="button button--link icon-arrow-long-right"
*ngIf="otherSparePartProductCarts?.length > viewItemsForParts && !viewAllPartsCarts"
(click)="viewAllPartsCarts = true">
{{ 'multi-cart.button-view-all' | translate }}
</button>
<button type="button"
class="button button--link icon-arrow-long-left"
*ngIf="viewAllPartsCarts"
(click)="viewAllPartsCarts = false">
{{ 'multi-cart.button-show-less' | translate }}
</button>
</div>
</div>
<div *ngIf="isCpqEnabled"
class="tabs__panel" [ngClass]="{'is-active': currentTab === multiCartTabs.SERVICES}">
<div class="other-quotes" (window:resize)="onResize($event)">
<ng-container
*ngFor="let otherQuote of otherConfigurableProductCarts |
slice:0:(viewAllServicesQuotes ? otherConfigurableProductCarts.length : viewItemsForServices)">
<div class="other-quotes__quote">
<h6 class="quote-name">{{ cartName(otherQuote) }}</h6>
<div class="quote-price">{{ 'multi-cart.your-annual-price' | translate }}<br/>
<strong>
{{ otherQuote.attributes.totals?.cpqNetPriceTotal | currency: otherQuote.attributes.currency }}
</strong>
</div>
<div class="quote-image">
<img [src]="getImageForOtherCart(otherQuote.itemDetails[0]?.attributes.sku)"
alt="{{ otherQuote.itemDetails[0]?.attributes.sku }}">
</div>
<div class="quote-items">
<h6 class="quote-item-name">{{ otherQuote.id }}</h6>
<ng-container *ngIf="otherQuote.itemDetails?.length > 0; else noItems">
<strong>
{{ singularOrPlural(otherQuote.itemDetails.length, 'orders-page.item') |
translate: {number: otherQuote.itemDetails.length} }}
</strong>
<span>{{ 'mini-cart.equType' | translate:{count: calculateEquType(otherQuote.itemDetails)} }}</span>
<span>{{ 'mini-cart.fls' | translate:{count: otherQuote.itemDetails.length} }}</span>
</ng-container>
<ng-template #noItems>
<span>{{ 'multi-cart.no-quote-items' | translate }}</span>
</ng-template>
</div>
<div class="quote-actions">
<button type="submit" class="button button--primary" [attr.data-test]="'button-continue-' + otherQuote.id"
(click)="switchDefaultCart(otherQuote.id, '/quote-summary')">
{{ 'multi-cart.continue' | translate }}
</button>
<button type="submit" class="button" [attr.data-test]="'button-select' + otherQuote.id"
(click)="switchDefaultCart(otherQuote.id)">
{{ 'multi-cart.select' | translate }}
</button>
</div>
</div>
</ng-container>
</div>
<div class="action-buttons">
<button type="button"
class="button button--link icon-arrow-long-right"
*ngIf="otherConfigurableProductCarts?.length > viewItemsForServices && !viewAllServicesQuotes"
(click)="viewAllServicesQuotes = true">
{{ 'multi-cart.button-view-all' | translate }}
</button>
<button type="button"
class="button button--link icon-arrow-long-left"
*ngIf="viewAllServicesQuotes"
(click)="viewAllServicesQuotes = false">
{{ 'multi-cart.button-show-less' | translate }}
</button>
</div>
</div>
</div>
</div>
</div>
<app-add-new-wishlist
[showModal]="addWishlistModalActive"
(closeModal)="addWishlistModalActive = false">
</app-add-new-wishlist>
<app-modal-add-cart-name
*ngIf="currentCart"
[cartId]="currentCart.id"
[hasNickname]="hasNickname"
[newNameChange]="currentCartName$"
[showAddNicknameModal]="addNicknameModalActive"
[isContractInCart]="isContractInCart()"
(closeModal)="addNicknameModalActive = false">
</app-modal-add-cart-name>
<app-modal-confirm
[type]="iconType.WARNING"
[modalTitle]="'multi-cart.delete-cart-title' | translate"
[notifyText]="'multi-cart.delete-cart-text' | translate"
[cancelBtnText]="'multi-cart.cancel-btn' | translate"
[primaryBtnText]="'multi-cart.delete-btn' | translate"
[showModalConfirm]="deleteCartModalActive"
(closeModalConfirm)="deleteCartModalActive = false"
(primaryActionConfirm)="deleteCart()">
</app-modal-confirm>
<app-modal-confirm
[type]="iconType.WARNING"
[modalTitle]="'multi-cart.delete-quote-title' | translate"
[notifyText]="'multi-cart.delete-quote-text' | translate"
[cancelBtnText]="'multi-cart.cancel-btn' | translate"
[primaryBtnText]="'multi-cart.delete-btn' | translate"
[showModalConfirm]="deleteQuoteModalActive"
(closeModalConfirm)="deleteQuoteModalActive = false"
(primaryActionConfirm)="deleteQuote()">
</app-modal-confirm>
<app-modal-confirm
[type]="iconType.WARNING"
[modalTitle]="'multi-cart.remove-configuration-title' | translate"
[notifyText]="'multi-cart.remove-configuration-text' | translate"
[cancelBtnText]="'multi-cart.cancel-btn' | translate"
[primaryBtnText]="'multi-cart.remove-btn' | translate"
[showModalConfirm]="removeConfigurationModalActive"
(closeModalConfirm)="removeConfigurationModalActive = false"
(primaryActionConfirm)="removeQuoteItem()">
</app-modal-confirm>
</div>
Editor is loading...