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}`; } function extractComments(metaDataArray){ const commentsObject = metaDataArray.find(metaDataElement => { return metaDataElement.key === "comments"; }); return commentsObject ? JSON.parse(commentsObject.value) : []; } 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: extractComments(WCOrder.meta_data), deliveryAddress: formatAddress(WCOrder.shipping), customer: WCOrder.customer, commercialLead: WCOrder['commercial_lead'] } };