Project: Mall App Client: Maiora
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

cart.page.html 7.7 KiB

6 vuotta sitten
6 vuotta sitten
6 vuotta sitten
6 vuotta sitten
6 vuotta sitten
6 vuotta sitten
6 vuotta sitten
6 vuotta sitten
6 vuotta sitten
6 vuotta sitten
6 vuotta sitten
6 vuotta sitten
6 vuotta sitten
6 vuotta sitten
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  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> {{ cart_items.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. <ul class="cart-item-list" *ngFor="let outlet of cart_outlets">
  16. <header class="outlet"> {{ outlet.name }} </header>
  17. <li class="cart-item" [ngClass]="{'show' : outlet.id === item.outlet_id }" *ngFor="let item of cart_items; let i = index;">
  18. <header> {{ i + 1 }}. {{ item.menu_details.name }} </header>
  19. <ul class="breakups" *ngIf="!show_order_details">
  20. <li> <label> {{ item.quantity }} X &#8377; {{ item.menu_details.price }} </label> <span class="total"> &#8377; {{ item.total_price }} </span> </li>
  21. <li>
  22. <label> Pickup Time </label>
  23. <ion-item class="time-holder">
  24. {{ getPickupTimeFormat(item.pickup_time) }}
  25. <a> Schedule time </a>
  26. <ion-datetime displayFormat="hh:mm a" [(ngModel)]="item.pickup_time"
  27. placeholder="Select Date"></ion-datetime>
  28. </ion-item>
  29. </li>
  30. </ul>
  31. <ul class="breakups" *ngIf="show_order_details">
  32. <li>
  33. <label> Quantity </label>
  34. <div class="quantity-scale-holder">
  35. <button (click)="decreaseCartItemCount(item)"> <ion-icon name="remove"></ion-icon> </button>
  36. <div class="quantity"> {{ item.quantity }} </div>
  37. <button (click)="increaseCartItemCount(item)"> <ion-icon name="add"></ion-icon> </button>
  38. </div>
  39. </li>
  40. <li>
  41. <label> Pickup Time </label>
  42. <ion-item class="time-holder">
  43. {{ getPickupTimeFormat(item.pickup_time) }}
  44. <a> Schedule time </a>
  45. <ion-datetime displayFormat="hh:mm a" [(ngModel)]="item.pickup_time"
  46. placeholder="Select Date"></ion-datetime>
  47. </ion-item>
  48. </li>
  49. <li>
  50. <label> Takeaway </label>
  51. <div class="toggle">
  52. <ion-toggle [(ngModel)]="item.take_away"></ion-toggle>
  53. </div>
  54. </li>
  55. </ul>
  56. <ion-button fill="outline" shape="round" class="add-on-button" (click)="openInstantMenu(item)"> Add on </ion-button>
  57. </li>
  58. </ul>
  59. <div class="total-price-breakup">
  60. <ul class="breakups">
  61. <li> <label> Total after discounts </label> <span> &#8377; {{ total_cart_amount }} </span> </li>
  62. <li> <label> Promocode </label> <span>
  63. <ion-button fill="clear" *ngIf="!selected_promocode" (click)="show_promocodes = true"> Apply </ion-button>
  64. <ion-button fill="clear" *ngIf="selected_promocode" (click)="removePromocode()">
  65. Remove {{ selected_promocode }}
  66. <ion-icon name="close-circle"></ion-icon>
  67. </ion-button>
  68. </span> </li>
  69. <li> <label> Packaging </label> <span> &#8377; 20 </span> </li>
  70. <li> <label> GST </label> <span> 18% </span> </li>
  71. </ul>
  72. <div class="total-price">
  73. <span> Total </span> <span> &#8377; {{ (total_cart_amount + 20) + (total_cart_amount + 20) * (18 / 100) }} </span>
  74. </div>
  75. </div>
  76. <div class="cart-utilities-holder total-savings">
  77. <h5> Your Total Savings </h5>
  78. <ion-button fill="clear"> &#8377; {{ total_savings }} </ion-button>
  79. </div>
  80. <ion-button shape="round" expand="block" class="pay-button" (click)="placeOrder()"
  81. [disabled]="cart_items.length === 0"> Pay Now </ion-button>
  82. <div class="common-semi-modal filter-holder with-border" [ngClass]="{'active' : show_promocodes }">
  83. <header>
  84. APPLY PROMOCODE <button (click)="show_promocodes = false; calculateTotalAfterPromo()"> Done </button>
  85. </header>
  86. <ion-list>
  87. <ion-item (click)="selected_promocode = 'SAVE100'">
  88. <ion-radio slot="start" [checked]="selected_promocode === 'SAVE100'"></ion-radio>
  89. <ion-label class="ion-text-wrap">
  90. <div class="heading"> Upto &#8377; 100 Offer </div>
  91. <div class="code"> Promocode: <span> SAVE100 </span> </div>
  92. <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolore, aliquid quod omnis sed voluptatem, eos sapiente quaerat, consequatur neque beatae architecto commodi! Debitis, qui eum iure perspiciatis aperiam cumque voluptatum? </p>
  93. <a> Terms & Condition </a>
  94. </ion-label>
  95. </ion-item>
  96. <ion-item (click)="selected_promocode = 'SAVE10PER'">
  97. <ion-radio slot="start" [checked]="selected_promocode === 'SAVE10PER'"></ion-radio>
  98. <ion-label class="ion-text-wrap">
  99. <div class="heading"> Upto &#8377; 10 Percert Offer </div>
  100. <div class="code"> Promocode: <span> SAVE10PER </span> </div>
  101. <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolore, aliquid quod omnis sed voluptatem, eos sapiente quaerat, consequatur neque beatae architecto commodi! Debitis, qui eum iure perspiciatis aperiam cumque voluptatum? </p>
  102. <a> Terms & Condition </a>
  103. </ion-label>
  104. </ion-item>
  105. </ion-list>
  106. </div>
  107. <div class="common-semi-modal instant-menu" [ngClass]="{'active' : instant_menu }" *ngIf="temp_outlet_details">
  108. <header>
  109. Add On <button (click)="instant_menu = false;"> Done </button>
  110. </header>
  111. <section class="items-holder">
  112. <div class="item" *ngFor="let item of temp_outlet_details.menu_items"
  113. [ngClass]="{'hide' : !item.is_vegeterian && show_only_veg }">
  114. <div class="stats-holder" *ngIf="show_grid">
  115. <div class="stat"> <ion-icon name="stopwatch"></ion-icon> <span> {{ item.wait_duration }} min </span> </div>
  116. <div class="stat"> <ion-icon name="star"></ion-icon> <span> {{ item.rating }} </span> </div>
  117. </div>
  118. <div class="image-holder">
  119. <img [src]="item.image_url">
  120. <div class="label-holder">
  121. <div class="category" [ngClass]="{'non-veg' : !item.is_vegeterian, 'veg' : item.is_vegeterian }"></div>
  122. </div>
  123. </div>
  124. <div class="content-holder">
  125. <h5> {{ item.name }} </h5>
  126. <div class="stats-holder" *ngIf="!show_grid">
  127. <div class="stat"> <ion-icon name="stopwatch"></ion-icon> <span> {{ item.wait_duration }} min </span> </div>
  128. <div class="stat"> <ion-icon name="star"></ion-icon> <span> {{ item.rating }} </span> </div>
  129. </div>
  130. <div class="price">
  131. <span> ₹ {{ calculateDiscount(item.price, item.discount) }} </span>
  132. <button class="cart-button" (click)="addToCart(item)" *ngIf="!checkIfPresentInCart(item.id)">
  133. <ion-icon name="cart"></ion-icon>
  134. </button>
  135. <div class="count-buttons-holder" *ngIf="checkIfPresentInCart(item.id)">
  136. <ion-button (click)="decreaseInstantCartItemCount(item)"> <ion-icon name="remove"></ion-icon> </ion-button>
  137. <div class="count"> {{ getItemCount(item.id) }} </div>
  138. <ion-button (click)="increaseInstantCartItemCount(item)"> <ion-icon name="add"></ion-icon> </ion-button>
  139. </div>
  140. </div>
  141. </div>
  142. </div>
  143. </section>
  144. </div>
  145. </ion-content>