66 lines
2.6 KiB
JavaScript
66 lines
2.6 KiB
JavaScript
import moment from 'moment';
|
|
import {fromWiaasProcessStep} from './ProcessHelper';
|
|
|
|
function formatDate(date) {
|
|
return date ? moment(date).format("Do MMM, YYYY") : undefined;
|
|
}
|
|
|
|
function formatAddress(addressObject) {
|
|
return `${addressObject.address_1}, ${addressObject.city}, ${addressObject.country}, ${addressObject.postcode}`;
|
|
}
|
|
|
|
export const fromWCOrder = (WCOrder) => {
|
|
let processInfo = Object.assign({},WCOrder['delivery-process']);
|
|
if (WCOrder['delivery-process']){
|
|
processInfo.steps = WCOrder['delivery-process'].steps.map(step=>fromWiaasProcessStep(step));
|
|
}
|
|
return {
|
|
id: WCOrder.id,
|
|
number: WCOrder.number,
|
|
isMyOrder: WCOrder['is_my_order'],
|
|
dateCreated: formatDate(WCOrder['date_created']),
|
|
dateCompleted: formatDate(WCOrder['date_completed']),
|
|
estimatedDeliveryDate: undefined,
|
|
reference: WCOrder['reference'],
|
|
assignedTo: 'assigned to',
|
|
fixedPrice: WCOrder.total,
|
|
recurringPrice: 0,
|
|
status: WCOrder.status,
|
|
currency: WCOrder.currency,
|
|
billing:{
|
|
firstName: WCOrder.billing.first_name,
|
|
lastName: WCOrder.billing.last_name,
|
|
email: WCOrder.billing.email,
|
|
address: formatAddress(WCOrder.billing)
|
|
},
|
|
packages: WCOrder['line_items'].map(packageLine => {
|
|
return {
|
|
id: packageLine['product_id'],
|
|
name: packageLine.name,
|
|
quantity: packageLine.quantity,
|
|
price: packageLine.price,
|
|
status: packageLine.status,
|
|
paymentType: packageLine['payment_type'],
|
|
servicePrice: packageLine['service_price'],
|
|
serviceContractPeriod: packageLine['service_contract_period'],
|
|
maxContractPeriod: packageLine['max_contract_period'],
|
|
periodUnit: packageLine['period_unit'],
|
|
recurringPrice: packageLine['recurring_price'],
|
|
payPeriod: packageLine['pay_period'],
|
|
shortDesc: packageLine['short_desc'],
|
|
dateCompleted: formatDate(packageLine['date_completed']),
|
|
};
|
|
}),
|
|
process: processInfo,
|
|
comments: WCOrder.comments ? WCOrder.comments.map(comment => ({
|
|
id: comment.id,
|
|
comment: comment.content,
|
|
username: comment.username,
|
|
dateCreated: formatDate(comment.date),
|
|
isOwner: comment['is_owner']
|
|
})) : [],
|
|
deliveryAddress: formatAddress(WCOrder.shipping),
|
|
customer: WCOrder.customer,
|
|
commercialLead: WCOrder['commercial_lead']
|
|
}
|
|
}; |