From 478515e7512c88006b031cf93635090d9c450882 Mon Sep 17 00:00:00 2001 From: daretobedifferent18 Date: Mon, 12 Oct 2020 02:18:11 +0530 Subject: [PATCH 1/6] Fixed Add Order Manually --- .../events/view/tickets/add-order.js | 64 +++++++++---------- .../events/view/tickets/add-order.hbs | 35 +++------- 2 files changed, 39 insertions(+), 60 deletions(-) diff --git a/app/controllers/events/view/tickets/add-order.js b/app/controllers/events/view/tickets/add-order.js index 3a9537c5382..9c5193a5eed 100644 --- a/app/controllers/events/view/tickets/add-order.js +++ b/app/controllers/events/view/tickets/add-order.js @@ -59,43 +59,41 @@ export default class AddOrderController extends Controller { } } } + @action + async placeOrder(orderInput) { + if (orderInput) { + this.set('orderInput', orderInput); + } + if (!this.session.isAuthenticated) { + this.set('userExists', false); + this.set('isLoginModalOpen', true); + return; + } + this.send('save'); + } @action - async placeOrder() { - this.set('isLoading', true); - const { order } = this.model; - const event = order.get('event'); - order.tickets.forEach(ticket => { - let numberOfAttendees = ticket.orderQuantity; - while (numberOfAttendees--) { - this.model.attendees.addObject(this.store.createRecord('attendee', { - firstname : 'John', - lastname : 'Doe', - email : 'johndoe@example.com', - event, - ticket - })); - } - }); + async save() { try { - const { order } = this.model; - const { attendees } = this.model; - await Promise.all((attendees ? attendees.toArray() : []).map(attendee => attendee.save())); - order.set('attendees', attendees.slice()); - await order.save() - .then(order => { - this.notify.success(this.l10n.t('Order details saved. Please fill further details within 10 minutes.')); - this.transitionToRoute('orders.new', order.identifier); - }) - .catch(async() => { - await Promise.all((attendees ? attendees.toArray() : []).map(attendee => attendee.destroyRecord())); - this.notify.error(this.l10n.t('Oops something went wrong. Please try again')); - }) - .finally(() => { - this.set('isLoading', false); - }); + this.set('isLoading', true); + const { orderInput } = this; + try { + const order = await this.loader.post('/orders/create-order', orderInput); + this.notify.success(this.l10n.t(`Order details saved. Please fill further details within ${this.settings.orderExpiryTime} minutes.`)); + this.transitionToRoute('orders.new', order.data.attributes.identifier); + } catch (e) { + if (e.response?.errors[0]?.source?.code === 'unverified-user') { + console.warn('Unverified user placing order', e.response); + } else { + console.error('Error while saving order', e); + } + this.notify.error(this.l10n.t(e.response.errors[0].detail)); + } finally { + this.set('isLoading', false); + } } catch (e) { - this.notify.error(this.l10n.t('Oops something went wrong. Please try again')); + console.error('Error while creating order', e); + this.notify.error(this.l10n.t(e)); } } } diff --git a/app/templates/events/view/tickets/add-order.hbs b/app/templates/events/view/tickets/add-order.hbs index 64164253290..088ede968c8 100644 --- a/app/templates/events/view/tickets/add-order.hbs +++ b/app/templates/events/view/tickets/add-order.hbs @@ -1,29 +1,10 @@

{{t 'Add Order'}}

-
- -
-
-
-
{{t 'Grand Total'}}: {{currency-symbol this.model.store.paymentCurrency}} {{total}}
-
-
-
-
- -
-
-
- + @event={{this.model.order.event}} + @attendees={{this.model.attendees}} + @order={{this.model.order}} + @placeOrder={{action "placeOrder"}} + @save='save' +/> From f0e1f0b5d4eb6b266c0fa347fc324f8b1b7e53e3 Mon Sep 17 00:00:00 2001 From: daretobedifferent18 Date: Mon, 12 Oct 2020 02:19:10 +0530 Subject: [PATCH 2/6] Fixed Add Order manually --- app/controllers/events/view/tickets/add-order.js | 1 + 1 file changed, 1 insertion(+) diff --git a/app/controllers/events/view/tickets/add-order.js b/app/controllers/events/view/tickets/add-order.js index 9c5193a5eed..9e4d8801444 100644 --- a/app/controllers/events/view/tickets/add-order.js +++ b/app/controllers/events/view/tickets/add-order.js @@ -59,6 +59,7 @@ export default class AddOrderController extends Controller { } } } + @action async placeOrder(orderInput) { if (orderInput) { From 06b81486106772ff5578cd535bd10f9fb52095b2 Mon Sep 17 00:00:00 2001 From: daretobedifferent18 Date: Sat, 17 Oct 2020 00:52:39 +0530 Subject: [PATCH 3/6] Order amount Edited --- app/templates/components/public/ticket-list.hbs | 10 +++++++++- app/templates/events/view/tickets/add-order.hbs | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/templates/components/public/ticket-list.hbs b/app/templates/components/public/ticket-list.hbs index c9358e0cf09..4d7fc68a26f 100644 --- a/app/templates/components/public/ticket-list.hbs +++ b/app/templates/components/public/ticket-list.hbs @@ -121,13 +121,20 @@ {{currency-symbol this.eventCurrency}} {{this.orderAmount.tax.amount}} {{/if}} - {{t 'Total'}}{{currency-symbol this.eventCurrency}} {{format-money this.orderAmount.total}} + {{t 'Total'}} + {{#if this.user}} + {{currency-symbol this.eventCurrency}} {{input value=this.orderAmount.total placeholder="Total"}} + {{else}} + {{currency-symbol this.eventCurrency}} {{format-money this.orderAmount.total}} + {{/if}} + + {{#unless this.user}}
{{#if this.enterPromotionalCode}}
@@ -165,6 +172,7 @@
{{/if}}
+ {{/unless}}
diff --git a/app/templates/events/view/tickets/add-order.hbs b/app/templates/events/view/tickets/add-order.hbs index 088ede968c8..b6ea06bee6b 100644 --- a/app/templates/events/view/tickets/add-order.hbs +++ b/app/templates/events/view/tickets/add-order.hbs @@ -7,4 +7,5 @@ @order={{this.model.order}} @placeOrder={{action "placeOrder"}} @save='save' + @user={{true}} /> From ea490fd495de2e9f97a7933026a5f19dbc76154c Mon Sep 17 00:00:00 2001 From: daretobedifferent18 Date: Sat, 17 Oct 2020 00:53:28 +0530 Subject: [PATCH 4/6] Order amount Edited --- app/templates/components/public/ticket-list.hbs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/templates/components/public/ticket-list.hbs b/app/templates/components/public/ticket-list.hbs index 4d7fc68a26f..d9024a0e4ff 100644 --- a/app/templates/components/public/ticket-list.hbs +++ b/app/templates/components/public/ticket-list.hbs @@ -123,7 +123,7 @@ {{/if}} {{t 'Total'}} {{#if this.user}} - {{currency-symbol this.eventCurrency}} {{input value=this.orderAmount.total placeholder="Total"}} + {{currency-symbol this.eventCurrency}} {{else}} {{currency-symbol this.eventCurrency}} {{format-money this.orderAmount.total}} {{/if}} From 40bd2a77904ac1f9dd7f106d41a3b7ec7eeddd47 Mon Sep 17 00:00:00 2001 From: daretobedifferent18 Date: Tue, 20 Oct 2020 21:16:21 +0530 Subject: [PATCH 5/6] changes prop name --- app/templates/components/public/ticket-list.hbs | 4 ++-- app/templates/events/view/tickets/add-order.hbs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/templates/components/public/ticket-list.hbs b/app/templates/components/public/ticket-list.hbs index d9024a0e4ff..3db6cdd0a11 100644 --- a/app/templates/components/public/ticket-list.hbs +++ b/app/templates/components/public/ticket-list.hbs @@ -122,7 +122,7 @@ {{/if}} {{t 'Total'}} - {{#if this.user}} + {{#if this.amountEditable}} {{currency-symbol this.eventCurrency}} {{else}} {{currency-symbol this.eventCurrency}} {{format-money this.orderAmount.total}} @@ -134,7 +134,7 @@ - {{#unless this.user}} + {{#unless this.amountEditable}}
{{#if this.enterPromotionalCode}}
diff --git a/app/templates/events/view/tickets/add-order.hbs b/app/templates/events/view/tickets/add-order.hbs index b6ea06bee6b..56f0cc63a5f 100644 --- a/app/templates/events/view/tickets/add-order.hbs +++ b/app/templates/events/view/tickets/add-order.hbs @@ -7,5 +7,5 @@ @order={{this.model.order}} @placeOrder={{action "placeOrder"}} @save='save' - @user={{true}} + @amountEditable={{true}} /> From 46b1be321d183479e9e7036a5fd7a10b034f159e Mon Sep 17 00:00:00 2001 From: iamareebjamal Date: Sun, 25 Oct 2020 23:34:14 +0530 Subject: [PATCH 6/6] fix --- app/components/events/events-table.js | 7 -- app/components/public/ticket-list.js | 21 +++++- .../events/view/tickets/add-order.js | 72 ++----------------- .../components/public/ticket-list.hbs | 2 +- .../view/tickets/cell-add-order-price.hbs | 1 - .../view/tickets/cell-add-order-quantity.hbs | 13 ---- .../view/tickets/cell-add-order-total.hbs | 1 - 7 files changed, 24 insertions(+), 93 deletions(-) delete mode 100644 app/components/events/events-table.js delete mode 100644 app/templates/components/ui-table/cell/events/view/tickets/cell-add-order-price.hbs delete mode 100644 app/templates/components/ui-table/cell/events/view/tickets/cell-add-order-quantity.hbs delete mode 100644 app/templates/components/ui-table/cell/events/view/tickets/cell-add-order-total.hbs diff --git a/app/components/events/events-table.js b/app/components/events/events-table.js deleted file mode 100644 index 6ac0e531faa..00000000000 --- a/app/components/events/events-table.js +++ /dev/null @@ -1,7 +0,0 @@ -import classic from 'ember-classic-decorator'; -import { classNames } from '@ember-decorators/component'; -import UiTable from 'open-event-frontend/components/ui-table-server'; - -@classic -@classNames('ui', 'main-container') -export default class EventsTable extends UiTable {} diff --git a/app/components/public/ticket-list.js b/app/components/public/ticket-list.js index 063d176536f..b827652c4d9 100644 --- a/app/components/public/ticket-list.js +++ b/app/components/public/ticket-list.js @@ -11,7 +11,18 @@ export default Component.extend(FormMixin, { promotionalCodeApplied: false, - orderAmount: null, + orderAmount : null, + amountOverride : null, + + overridenAmount: computed('orderAmount', 'amountOverride', { + get() { + return this.amountOverride ?? this.orderAmount?.total; + }, + + set(key, value) { + this.set('amountOverride', value); + } + }), isUnverified: computed('session.isAuthenticated', 'authManager.currentUser.isVerified', function() { return this.session.isAuthenticated @@ -74,7 +85,7 @@ export default Component.extend(FormMixin, { }), orderAmountInput: computed('tickets.@each.price', 'order.tickets.@each.orderQuantity', 'order.discountCode', function() { - return { + const input = { tickets: this.order.tickets.toArray().map(ticket => ({ id : ticket.id, quantity : ticket.orderQuantity, @@ -82,6 +93,10 @@ export default Component.extend(FormMixin, { })), 'discount-code': this.order.get('discountCode.id') }; + if (this.amountOverride) { + input.amount = this.amountOverride; + } + return input; }), actions: { @@ -181,12 +196,14 @@ export default Component.extend(FormMixin, { async updateOrderAmount() { if (this.shouldDisableOrderButton) { this.set('orderAmount', null); + this.set('amountOverride', null); return; } try { this.set('orderAmount', await this.loader.post('/orders/calculate-amount', this.orderAmountInput)); this.order.amount = this.orderAmount.total; + this.set('amountOverride', null); } catch (e) { console.error('Error while calculating order amount', e); this.notify.error(e.response.errors[0].detail, { diff --git a/app/controllers/events/view/tickets/add-order.js b/app/controllers/events/view/tickets/add-order.js index 9e4d8801444..551aa018556 100644 --- a/app/controllers/events/view/tickets/add-order.js +++ b/app/controllers/events/view/tickets/add-order.js @@ -1,75 +1,15 @@ import classic from 'ember-classic-decorator'; -import { action, computed } from '@ember/object'; +import { action } from '@ember/object'; import Controller from '@ember/controller'; -import { sumBy } from 'lodash-es'; @classic export default class AddOrderController extends Controller { - @computed('model.tickets.@each.orderQuantity') - get hasTicketsInOrder() { - return sumBy(this.model.tickets.toArray(), - ticket => ticket.get('orderQuantity') ?? 0 - ) > 0; - } - - @computed('model.tickets.@each.orderQuantity') - get total() { - let sum = 0.0; - this.model.tickets.forEach(ticket => { - sum += ticket.get('orderQuantity') * ticket.get('price'); - }); - return sum; - } - - columns = [ - { - propertyName : 'name', - title : 'Ticket Type' - }, - { - propertyName : 'price', - title : 'Price', - template : 'components/ui-table/cell/events/view/tickets/cell-add-order-price' - }, - { - propertyName : 'quantity', - title : 'Quantity', - template : 'components/ui-table/cell/events/view/tickets/cell-add-order-quantity' - }, - { - propertyName : 'itemTotal', - title : 'Item Total', - template : 'components/ui-table/cell/events/view/tickets/cell-add-order-total' - } - ]; - - @action - updateOrder(ticket, count) { - const { order } = this.model; - ticket.set('orderQuantity', count); - order.set('amount', this.total); - if (!this.total) { - order.set('amount', 0); - } - if (count > 0) { - order.tickets.addObject(ticket); - } else { - if (order.tickets.includes(ticket)) { - order.tickets.removeObject(ticket); - } - } - } @action async placeOrder(orderInput) { if (orderInput) { this.set('orderInput', orderInput); } - if (!this.session.isAuthenticated) { - this.set('userExists', false); - this.set('isLoginModalOpen', true); - return; - } this.send('save'); } @@ -83,18 +23,14 @@ export default class AddOrderController extends Controller { this.notify.success(this.l10n.t(`Order details saved. Please fill further details within ${this.settings.orderExpiryTime} minutes.`)); this.transitionToRoute('orders.new', order.data.attributes.identifier); } catch (e) { - if (e.response?.errors[0]?.source?.code === 'unverified-user') { - console.warn('Unverified user placing order', e.response); - } else { - console.error('Error while saving order', e); - } - this.notify.error(this.l10n.t(e.response.errors[0].detail)); + console.error('Error while saving order', e); + this.notify.error(e.response.errors[0].detail); } finally { this.set('isLoading', false); } } catch (e) { console.error('Error while creating order', e); - this.notify.error(this.l10n.t(e)); + this.notify.error(e); } } } diff --git a/app/templates/components/public/ticket-list.hbs b/app/templates/components/public/ticket-list.hbs index 3db6cdd0a11..7ae2b8af65c 100644 --- a/app/templates/components/public/ticket-list.hbs +++ b/app/templates/components/public/ticket-list.hbs @@ -123,7 +123,7 @@ {{/if}} {{t 'Total'}} {{#if this.amountEditable}} - {{currency-symbol this.eventCurrency}} + {{currency-symbol this.eventCurrency}} {{else}} {{currency-symbol this.eventCurrency}} {{format-money this.orderAmount.total}} {{/if}} diff --git a/app/templates/components/ui-table/cell/events/view/tickets/cell-add-order-price.hbs b/app/templates/components/ui-table/cell/events/view/tickets/cell-add-order-price.hbs deleted file mode 100644 index 7151b217b10..00000000000 --- a/app/templates/components/ui-table/cell/events/view/tickets/cell-add-order-price.hbs +++ /dev/null @@ -1 +0,0 @@ -{{currency-symbol this.paymentCurrency}} {{format-money this.record.price}} \ No newline at end of file diff --git a/app/templates/components/ui-table/cell/events/view/tickets/cell-add-order-quantity.hbs b/app/templates/components/ui-table/cell/events/view/tickets/cell-add-order-quantity.hbs deleted file mode 100644 index a9ecb1747e5..00000000000 --- a/app/templates/components/ui-table/cell/events/view/tickets/cell-add-order-quantity.hbs +++ /dev/null @@ -1,13 +0,0 @@ -
- - - -
0
- -
-
\ No newline at end of file diff --git a/app/templates/components/ui-table/cell/events/view/tickets/cell-add-order-total.hbs b/app/templates/components/ui-table/cell/events/view/tickets/cell-add-order-total.hbs deleted file mode 100644 index ae7401d4517..00000000000 --- a/app/templates/components/ui-table/cell/events/view/tickets/cell-add-order-total.hbs +++ /dev/null @@ -1 +0,0 @@ -{{currency-symbol this.paymentCurrency}} {{format-money (mult this.record.orderQuantity this.record.price)}} \ No newline at end of file