From 5399e3901bc10a3eb1ad75b765a822b37e8962c1 Mon Sep 17 00:00:00 2001 From: GotPPay Date: Wed, 15 Aug 2018 22:20:02 +0200 Subject: [PATCH] remove hardcoded values and change comment handling --- frontend/src/helpers/OrderHelper.js | 140 ++++------------------------ 1 file changed, 19 insertions(+), 121 deletions(-) diff --git a/frontend/src/helpers/OrderHelper.js b/frontend/src/helpers/OrderHelper.js index 9266928..202f4a6 100644 --- a/frontend/src/helpers/OrderHelper.js +++ b/frontend/src/helpers/OrderHelper.js @@ -1,127 +1,6 @@ import moment from 'moment'; import {fromWiaasProcessStep} from './ProcessHelper'; -const tempTransformationFunction = (order) => { - let processInfo = Object.assign({},order['delivery-process']); - if (order['delivery-process']){ - processInfo.steps = order['delivery-process'].steps.map(step=>fromWiaasProcessStep(step)); - } - /* - let processInfo = Object.assign({},order['delivery-process']); - processInfo.steps = order['delivery-process'].steps.map(step=>fromWiaasProcessStep(step)); - /* - processInfo[order['delivery-process'].id] = { - idProcess: order['delivery-process'].id, - processName: order['delivery-process'].name, - steps: order['delivery-process'].steps.map(step => { - return transformProcessStep(step, order['delivery-process'].id); - }) - }*/ - - let TransformedPackagesArray = order.line_items.map(packageItem => { - return { - endOfLife: null, - units: packageItem.quantity, - packageFixedPrice: packageItem.price, - packageRecurringPrice: 0, - packageServicePrice: 0, - status: 'no-process', - packagePayPeriod: 0, - servicesContractPeriod: 0, - maxContractPeriod: 0, - periodUnit: 'months', - paymentType: 'Managed service 36M rent', - idOrder: order.id, - idPackage: packageItem.id, - packageName: packageItem.name, - packageCurrency: { - currency: order.currency - }, - documents: [{ - idDocument: 1, - documentName: 'customerQuestionaire_343_32_2', - documentPath: 'path/to/document/withExtension.docx', - extension: 'docx', - documentType: 'Order Questionaire', - documentTypeName: 'orderQuestionarie', - idPackage: packageItem.id - }], - options: [], - additionalPackages: [], - idOrderPackagePair: `${order.id}-${packageItem.id}` - } - }); - - //going through same array again - for cleaner code - let newProductsObject = {}; - order.line_items.forEach(element => { - newProductsObject[element.id] = { - software: [{ - productName: 'Software product', - category: 'software', - idPackage: element.id - }], - hardware: [{ - productName: 'Hardware product', - category: 'hardware', - idPackage: element.id - }], - service: [{ - productName: 'Service product', - category: 'service', - idPackage: element.id - }], - installation: [{ - productName: 'Installation product', - category: 'installation', - idPackage: element.id - }] - } - }); - - let comments = []; - let processID = null; - order.meta_data.forEach(element => { - if (element.key.substring(0, 7) === 'comment') { - comments.push(element.value); - } - }); - - return { - info: { - id: order.id, - orderNumber: order.number, - orderDate: moment(order.date_created).format("Do MMM, YYYY"), - estimatedDeliveryDate: null, - billingFirstName: order.billing.first_name, - billingLastName: order.billing.last_name, - billingMail: order.billing.email, - billingAddress: order.billing.address_1 + ' ' + order.billing.address_2, - status: order.status, - reference: 'reference field', - tender: 'tender field', - idTerms: null, - idProject: null, - projectName: 'project name field', - assignedTo: 'assigned to', - customer: 'customer field', - phone: null, - mail: '', - idCommercialLead: null, - commercialLead: '', - endOfLife: null, - idProcess: processID, - }, - products: newProductsObject, - packages: TransformedPackagesArray, - process: processInfo, - orderDocuments: [], - selections: [], - orderComments: comments, - availableProcesses: [], - } -} - function formatDate(date) { return date ? moment(date).format("Do MMM, YYYY") : undefined; } @@ -130,7 +9,18 @@ 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, @@ -144,6 +34,12 @@ export const fromWCOrder = (WCOrder) => { 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'], @@ -162,6 +58,8 @@ export const fromWCOrder = (WCOrder) => { dateCompleted: formatDate(packageLine['date_completed']), }; }), + process: processInfo, + comments: extractComments(WCOrder.meta_data), deliveryAddress: formatAddress(WCOrder.shipping), customer: WCOrder.customer, commercialLead: WCOrder['commercial_lead']