Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: updates the status for orders #2955

Merged
merged 2 commits into from
May 23, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions app/components/paypal-button.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ export default Component.extend({
let createPayload = {
'data': {
'attributes': {
'return-url' : `${window.location.origin}/orders/${order.identifier}/placed`,
'cancel-url' : `${window.location.origin}/orders/${order.identifier}/placed`
'return-url' : `${window.location.origin}/orders/${order.identifier}/view`,
'cancel-url' : `${window.location.origin}/orders/${order.identifier}/pending`
},
'type': 'paypal-payment'
}
Expand Down
14 changes: 8 additions & 6 deletions app/controllers/orders/new.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,23 +15,25 @@ export default Controller.extend({
for (const attendee of attendees ? attendees.toArray() : []) {
await attendee.save();
}
if (paymentMode === 'free' || paymentMode === 'bank' || paymentMode === 'cheque' || paymentMode === 'onsite') {
if (paymentMode === 'free') {
order.set('status', 'completed');
} else {
} else if (paymentMode === 'bank' || paymentMode === 'cheque' || paymentMode === 'onsite') {
order.set('status', 'placed');
} else {
order.set('status', 'pending');
}
await order.save()
.then(order => {
if (order.status === 'placed') {
if (order.status === 'pending') {
this.get('notify').success(this.get('l10n').t('Order details saved. Please fill the payment details'));
this.transitionToRoute('orders.placed', order.identifier);
} else if (order.status === 'completed') {
this.transitionToRoute('orders.pending', order.identifier);
} else if (order.status === 'completed' || order.status === 'placed') {
this.get('notify').success(this.get('l10n').t('Order details saved. Your order is successful'));
this.transitionToRoute('orders.view', order.identifier);
}
})
.catch(e => {
order.set('status', 'pending');
order.set('status', 'initializing');
this.get('notify').error(this.get('l10n').t(` ${e} Oops something went wrong. Please try again`));
})
.finally(() => {
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion app/models/order.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export default ModelBase.extend(CustomPrimaryKeyMixin, {
country : attr('string'),
zipcode : attr('string'),
paymentMode : attr('string', { defaultValue: 'free' }),
status : attr('string', { defaultValue: 'pending' }),
status : attr('string', { defaultValue: 'initializing' }),
transactionId : attr('string', { readOnly: true }),
expMonth : attr('string'),
expYear : attr('string'),
Expand Down
2 changes: 1 addition & 1 deletion app/router.js
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ router.map(function() {
this.route('new', { path: '/:order_id/new' });
this.route('expired', { path: '/:order_id/expired' });
this.route('view', { path: '/:order_id/view' });
this.route('placed', { path: '/:order_id/placed' });
this.route('pending', { path: '/:order_id/pending' });
});
this.route('verify');
});
Expand Down
8 changes: 4 additions & 4 deletions app/routes/orders/expired.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ export default Route.extend({
},

afterModel(model) {
if (model.get('status') === 'pending') {
if (model.get('status') === 'initializing') {
this.transitionTo('orders.new', model.get('identifier'));
} else if (model.get('status') === 'completed') {
} else if (model.get('status') === 'completed' || model.get('status') === 'placed') {
this.transitionTo('orders.view', model.get('identifier'));
} else if (model.get('status') === 'placed') {
this.transitionTo('orders.placed', model.get('identifier'));
} else if (model.get('status') === 'pending') {
this.transitionTo('orders.pending', model.get('identifier'));
}
}
});
6 changes: 3 additions & 3 deletions app/routes/orders/new.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,10 @@ export default Route.extend({
afterModel(model) {
if (model.order.get('status') === 'expired') {
this.transitionTo('orders.expired', model.order.get('identifier'));
} else if (model.order.get('status') === 'completed') {
} else if (model.order.get('status') === 'completed' || model.order.get('status') === 'placed') {
this.transitionTo('orders.view', model.order.get('identifier'));
} else if (model.order.get('status') === 'placed') {
this.transitionTo('orders.placed', model.order.get('identifier'));
} else if (model.order.get('status') === 'pending') {
this.transitionTo('orders.pending', model.order.get('identifier'));
}
}
});
8 changes: 4 additions & 4 deletions app/routes/orders/placed.js → app/routes/orders/pending.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import Route from '@ember/routing/route';
export default Route.extend({
titleToken(model) {
var order = model.order.get('identifier');
return this.get('l10n').t(`Placed Order -${order}`);
return this.get('l10n').t(`Pending Order -${order}`);
},

async model(params) {
Expand All @@ -24,10 +24,10 @@ export default Route.extend({
afterModel(model) {
if (model.order.get('status') === 'expired') {
this.transitionTo('orders.expired', model.order.get('identifier'));
} else if (model.order.get('status') === 'completed') {
} else if (model.order.get('status') === 'completed' || model.order.get('status') === 'placed') {
this.transitionTo('orders.view', model.order.get('identifier'));
} else if (model.order.get('status') === 'placed') {
this.transitionTo('orders.placed', model.order.get('identifier'));
} else if (model.order.get('status') === 'pending') {
this.transitionTo('orders.pending', model.order.get('identifier'));
}
}
});
14 changes: 10 additions & 4 deletions app/routes/orders/view.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,11 @@ import Route from '@ember/routing/route';
export default Route.extend({
titleToken(model) {
var order = model.order.get('identifier');
return this.get('l10n').t(`Completed Order -${order}`);
if (model.order.status === 'completed') {
return this.l10n.t(`Completed Order -${order}`);
} else if (model.order.status === 'placed') {
return this.l10n.t(`Placed Order -${order}`);
}
},

async model(params) {
Expand All @@ -25,10 +29,12 @@ export default Route.extend({
afterModel(model) {
if (model.order.get('status') === 'expired') {
this.transitionTo('orders.expired', model.order.get('identifier'));
} else if (model.order.get('status') === 'completed') {
} else if (model.order.get('status') === 'completed' || model.order.get('status') === 'placed') {
this.transitionTo('orders.view', model.order.get('identifier'));
} else if (model.order.get('status') === 'placed') {
this.transitionTo('orders.placed', model.order.get('identifier'));
} else if (model.order.get('status') === 'pending') {
this.transitionTo('orders.pending', model.order.get('identifier'));
} else if (model.order.get('status') === 'initializing') {
this.transitionTo('orders.new', model.order.get('identifier'));
}
}
});
26 changes: 17 additions & 9 deletions app/templates/components/orders/order-summary.hbs
Original file line number Diff line number Diff line change
@@ -1,23 +1,31 @@
<div class="ui segments">
{{#if (eq session.currentRouteName 'orders.view')}}
<div class="ui green inverted segment center aligned">
<div class="ui {{if (eq data.status 'completed') 'green' 'blue'}} inverted segment center aligned">
<div class="ui inverted mini statistic horizontal">
<div class="value">
Success
{{#if (eq data.status 'completed')}}
{{t 'Success'}}
{{else}}
{{t 'Placed'}}
{{/if}}
</div>
<div class="label">
{{t 'Your order completed successfully.'}}
{{#if (eq data.status 'completed')}}
{{t 'Your order completed successfully.'}}
{{else}}
{{t 'Your order placed successfully.'}}
{{/if}}
<br>
{{t 'Find all the details related to your order below.'}}
</div>
</div>
</div>
{{/if}}
{{#if (eq session.currentRouteName 'orders.placed')}}
<div class="ui blue inverted segment center aligned">
{{#if (eq session.currentRouteName 'orders.pending')}}
<div class="ui orange inverted segment center aligned">
<div class="ui inverted mini statistic horizontal">
<div class="value">
Placed
{{t 'Pending'}}
</div>
<div class="label">
{{t 'Your order has been placed successfully.'}}
Expand All @@ -30,7 +38,7 @@
<div class="ui secondary segment">
<h3 class="weight-400">{{t 'Order Summary'}}</h3>
</div>
{{#if (or (eq session.currentRouteName 'orders.new') (eq session.currentRouteName 'orders.view') (eq session.currentRouteName 'orders.placed'))}}
{{#if (or (eq session.currentRouteName 'orders.new') (eq session.currentRouteName 'orders.view') (eq session.currentRouteName 'orders.pending'))}}
<table class="ui very basic tablet stackable table order-summary center aligned">
<thead>
<tr>
Expand Down Expand Up @@ -91,10 +99,10 @@
{{/if}}
</div>
{{#if (eq session.currentRouteName 'orders.expired')}}
<div class="ui orange inverted segment">
<div class="ui red inverted segment">
<div class="ui inverted mini statistic horizontal">
<div class="value">
Expired
{{t 'Expired'}}
</div>
<div class="label">
{{t 'Your order expired because you did not complete registration in time.'}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<span class="weight-400">
{{t 'by'}} {{if record.user.firstName record.user.firstName (t 'Name not provided')}}
</span>
<div class="ui basic mini {{if (eq record.status 'completed') 'green' (if (or (eq record.status 'placed') (eq record.status 'pending')) 'yellow' 'red')}} label">
<div class="ui basic mini {{if (eq record.status 'completed') 'green' (if (eq record.status 'placed') 'blue' (if (eq record.status 'pending') 'orange' (if (eq record.status 'expired') 'red' 'yellow')))}} label">
{{record.status}}
</div>
<div class="sub header">
Expand All @@ -15,7 +15,7 @@
</span>
{{/if}}
<span class="muted text">
{{#if (eq record.status 'completed')}}
{{#if record.completedAt}}
{{moment-format record.completedAt 'MMMM Do YYYY, h:mm A -'}} {{moment-from-now record.completedAt}}
{{else}}
{{moment-format record.createdAt 'MMMM Do YYYY, h:mm A -'}} {{moment-from-now record.createdAt}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@
</div>
</div>
<div class="row">
<div class="mobile hidden seven wide column">
{{orders/event-info data=model.order}}
</div>
<div class="nine wide column">
{{orders/order-summary data=model.order
event=model.event
eventCurrency=model.order.event.paymentCurrency}}
</div>
<div class="mobile hidden seven wide column">
{{orders/event-info data=model.order}}
</div>
</div>
<div class="row">
<div class="ui-segment right floated four wide column">
Expand Down