Project: Mall App Client: Maiora
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.

cart.page.html 7.5 KiB

6 anni fa
6 anni fa
6 anni fa
6 anni fa
6 anni fa
6 anni fa
6 anni fa
6 anni fa
6 anni fa
6 anni fa
6 anni fa
6 anni fa
6 anni fa
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <ion-content>
  2. <div class="header-bar">
  3. <div class="heading-holder">
  4. <button (click)="back()"> <ion-icon name="arrow-back"></ion-icon> </button>
  5. <h3> Cart </h3>
  6. </div>
  7. </div>
  8. <div class="cart-utilities-holder">
  9. <h5> {{ userCart.orderedlist.length }} ITEM(S) </h5>
  10. <ion-button fill="clear" (click)="show_order_details=!show_order_details">
  11. <span *ngIf="!show_order_details"> Show Order Details <ion-icon name="ios-arrow-down"></ion-icon> </span>
  12. <span *ngIf="show_order_details"> Hide Order Details <ion-icon name="ios-arrow-up"></ion-icon> </span>
  13. </ion-button>
  14. </div>
  15. <ng-container *ngIf="allMalls.length > 0">
  16. <ul class="cart-item-list" *ngFor="let outlet of cart_outlets">
  17. <header class="outlet"> {{ getMallDetails(outlet.mall_id).mall.mall_name }} &gt; {{ getOutletDetails(outlet).outlet_name }} </header>
  18. <li class="cart-item" *ngFor="let item of userCart.orderedlist; let i = index;" [ngClass]="{'show' : item.outlet_id === outlet.outlet_id && item.mall_id === outlet.mall_id }">
  19. <header *ngIf="getItemDetails(item)"> {{ i + 1 }}. {{ getItemDetails(item).menu_item_name }} </header>
  20. <ul class="breakups" *ngIf="!show_order_details && getItemDetails(item)">
  21. <li>
  22. <label>
  23. {{ item.quantity }} X &#8377; {{ getItemDetails(item).item_price - getItemDetails(item).item_discount }}
  24. </label>
  25. <span class="total"> &#8377; {{ item.total_price }} </span>
  26. </li>
  27. <li>
  28. <label> Pickup Time </label>
  29. <ion-item class="time-holder">
  30. {{ getFormatterDateTime(item.pickup_time, 'hh:mm a') }}
  31. <a> Schedule time </a>
  32. <ion-datetime displayFormat="hh:mm a" [(ngModel)]="item.pickup_time"
  33. placeholder="Select Date"></ion-datetime>
  34. </ion-item>
  35. </li>
  36. </ul>
  37. <ul class="breakups" *ngIf="show_order_details">
  38. <li>
  39. <label> Quantity </label>
  40. <div class="quantity-scale-holder">
  41. <button (click)="decrementCartCount(item.outlet_id, item.menuitem_id, item.mall_id)"> <ion-icon name="remove"></ion-icon> </button>
  42. <div class="quantity"> {{ item.quantity }} </div>
  43. <button (click)="incrementCartCount(item.outlet_id, item.menuitem_id, item.mall_id)"> <ion-icon name="add"></ion-icon> </button>
  44. </div>
  45. </li>
  46. <li>
  47. <label> Takeaway </label>
  48. <div class="toggle">
  49. <ion-toggle [(ngModel)]="item.take_away"></ion-toggle>
  50. </div>
  51. </li>
  52. </ul>
  53. <ion-button fill="outline" shape="round" class="add-on-button show" (click)="openInstantMenu(outlet)"> Add on </ion-button>
  54. </li>
  55. </ul>
  56. </ng-container>
  57. <div class="total-price-breakup">
  58. <ul class="breakups">
  59. <li> <label> Total after discounts </label> <span> &#8377; {{ getTotalCartAmount() }} </span> </li>
  60. <li> <label> Promocode </label> <span>
  61. <ion-button fill="clear" *ngIf="!selected_promo" (click)="show_promocodes = true"> Apply </ion-button>
  62. <ion-button fill="clear" *ngIf="selected_promo" (click)="selected_promo = ''">
  63. Remove {{ selected_promo.offersCode }}
  64. <ion-icon name="close-circle"></ion-icon>
  65. </ion-button>
  66. </span> </li>
  67. <li> <label> Packaging </label> <span> &#8377; 20 </span> </li>
  68. <li> <label> GST </label> <span> 18% </span> </li>
  69. </ul>
  70. <div class="total-price">
  71. <span> Total </span> <span> &#8377; {{ ( getTotalCartAmount() + (getTotalCartAmount() * (18 / 100)) ) + 20 }} </span>
  72. </div>
  73. </div>
  74. <ion-button shape="round" [disabled]="userCart.orderedlist.length === 0" expand="block"
  75. class="pay-button" (click)="requestInvoice();"> Pay Now </ion-button>
  76. <div class="common-semi-modal filter-holder with-border" [ngClass]="{'active' : show_promocodes }">
  77. <header>
  78. APPLY PROMOCODE <button (click)="show_promocodes = false"> Done </button>
  79. </header>
  80. <ion-list *ngFor="let promoCodes of mallPromoCodes">
  81. <ion-item (click)="selected_promo = code"
  82. *ngFor="let code of promoCodes">
  83. <ion-radio slot="start" [checked]="selected_promo === code"></ion-radio>
  84. <ion-label class="ion-text-wrap">
  85. <div class="heading"> {{ code.offersTitle }} </div>
  86. <div class="code"> Promocode: <span> {{ code.offersCode }} </span> </div>
  87. <p> {{ code.offerSummary }} </p>
  88. <a> Max Amount of offer: &#8377; {{ code.offersMaxcount }} </a>
  89. </ion-label>
  90. </ion-item>
  91. </ion-list>
  92. </div>
  93. <div class="common-semi-modal instant-menu" [ngClass]="{'active' : showInstantMenu }" *ngIf="temp_outlet_details">
  94. <header>
  95. Add On <button (click)="showInstantMenu = false;"> Done </button>
  96. </header>
  97. <section class="items-holder">
  98. <div class="item" *ngFor="let item of temp_outlet_details.menuitems"
  99. [ngClass]="{'hide' : !item.is_vegeterian && show_only_veg }">
  100. <div class="stats-holder" *ngIf="show_grid">
  101. <div class="stat"> <ion-icon name="stopwatch"></ion-icon> <span> {{ item.wait_duration }} min </span> </div>
  102. <div class="stat"> <ion-icon name="star"></ion-icon> <span> {{ item.rating }} </span> </div>
  103. </div>
  104. <div class="image-holder">
  105. <img [src]="item.image_url">
  106. <div class="label-holder">
  107. <div class="category" [ngClass]="{'non-veg' : !item.is_vegeterian, 'veg' : item.is_vegeterian }"></div>
  108. </div>
  109. </div>
  110. <div class="content-holder">
  111. <h5> {{ item.menu_item_name }} </h5>
  112. <div class="stats-holder" *ngIf="!show_grid">
  113. <div class="stat"> <ion-icon name="stopwatch"></ion-icon> <span> {{ item.wait_duration }} min </span> </div>
  114. <div class="stat"> <ion-icon name="star"></ion-icon> <span> {{ item.rating }} </span> </div>
  115. </div>
  116. <div class="price">
  117. <span> ₹ {{ item.item_price - item.item_discount }} </span>
  118. <button class="cart-button" *ngIf="isPresentInCart(temp_outlet_details.outlet_id, item.menuitem_id, selectedTempMallId) === 0" (click)="addToCart(temp_outlet_details.outlet_id, item.menuitem_id, selectedTempMallId)">
  119. <ion-icon name="cart"></ion-icon>
  120. </button>
  121. <div class="count-buttons-holder" *ngIf="isPresentInCart(temp_outlet_details.outlet_id, item.menuitem_id, selectedTempMallId) > 0">
  122. <ion-button (click)="decrementCartCount(temp_outlet_details.outlet_id, item.menuitem_id, selectedTempMallId)"> <ion-icon name="remove"></ion-icon> </ion-button>
  123. <span class="count">
  124. {{ isPresentInCart(temp_outlet_details.outlet_id, item.menuitem_id, selectedTempMallId) }}
  125. </span>
  126. <ion-button (click)="incrementCartCount(temp_outlet_details.outlet_id, item.menuitem_id, selectedTempMallId)"> <ion-icon name="add"></ion-icon> </ion-button>
  127. </div>
  128. </div>
  129. </div>
  130. </div>
  131. </section>
  132. </div>
  133. </ion-content>