86 lines
3.7 KiB
JavaScript
86 lines
3.7 KiB
JavaScript
import moment from 'moment';
|
|
import {fromWiaasProcessStep} from './ProcessHelper';
|
|
import { getDocumentIcon } from './DocumentHelper';
|
|
|
|
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,
|
|
vatCode: WCOrder['vat'],
|
|
reference: WCOrder['reference'],
|
|
tender: WCOrder['tender'],
|
|
companyName: WCOrder['company_name'],
|
|
projectName: WCOrder['project_name'],
|
|
assignedTo: 'assigned to',
|
|
fixedPrice: WCOrder.total,
|
|
recurringPrice: WCOrder['recurring_price'],
|
|
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)
|
|
},
|
|
documents: WCOrder.documents || [],
|
|
packages: WCOrder['line_items'].map(packageLine => {
|
|
return {
|
|
id: packageLine['product_id'],
|
|
orderItemId: packageLine['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']),
|
|
additionalPackages: packageLine['additional_packages'] ? packageLine['additional_packages'].map(additionalPackage => ({
|
|
idPackage: additionalPackage.id,
|
|
packageName: additionalPackage.name,
|
|
})) : [],
|
|
options: packageLine['options'] ? packageLine['options'].map(packageOption => ({
|
|
idPackage: packageOption.id,
|
|
packageName: packageOption.name,
|
|
groupName: packageOption['group_name'] || '',
|
|
})) : [],
|
|
documents: packageLine.documents ? packageLine.documents.map(document => {
|
|
document['icon'] = getDocumentIcon(document.extension);
|
|
return document;
|
|
}) : []
|
|
};
|
|
}),
|
|
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'],
|
|
}
|
|
}; |