UNPKG

wholesale-vuex

Version:
863 lines (805 loc) 40.2 kB
import { snakeCase } from 'lodash' import humps from 'lodash-humps' import createHumps from 'lodash-humps/lib/createHumps' import { getField, updateField } from 'vuex-map-fields' import { getPaymentTypesInArray, getPaymentTypesInObj, generateDiscrepancyOrderSkuItem, generateDiscrepancyOrderItemVarinats, generateDiscrepancyOrderItemAddedAndRemoved,updateTermsList,otherPaymentTermsList } from './common.service.js' import wholesaleOrderService from './wholesale_order.service' const { doPostOne, doPatchOne, doFetchOne, doDeleteSelected, doOrderStatusUpdate, doWholesaleOrderGetTimeline, doWholesaleOrderCompare, doFetchWholesaleReport, doWholesaleOrderUpdateItemsFormat, doWholesaleOrderReportChanges, doWholesaleOrderUpdateBusinessEntity, doPatchOneProperty, doPostSalesOrderChanges, doGetWholesaleOrderChanges, doGetOrderChangesForReport, doPatchWholesaleOrderChangesetOne, doWholesaleOrderDiscardChanges, doPatchWholesaleOrderChangeSet, doWholesaleBusinessImportAllPos,doDeleteChangesetChange,doPostBalanceOrderPayments } = wholesaleOrderService const snakes = createHumps(snakeCase) import { wholesaleOrderStateList } from './util.service' export default { namespaced: true, state: { masterOne:null, one: null, wholesaleOrderChangesSummary:null, inProgress: true, wholesaleOrderActions: { poNumber: '93487834', orderValue: '$1200', paymentStatus: 'Not paid', numberOfItems: 34, numberOfProducts: 44 }, wholesaleOrderTimeline: [], wholesaleOrderCompare: [], otherPaymentTypes: [], salesOrderReportChanges: { orderItemSku : null, orderItemVariants : null, detailsChanged : null, differences : null, removedItems : null, addedItems : null, changedItems : null }, salesOrderPackedReportChanges: { orderItemSku : null, orderItemVariants : null, detailsChanged : null, differences : null, removedItems : null, addedItems : null, changedItems : null }, wholesaleOrderStateList: wholesaleOrderStateList, wholesaleOrderNextState: [] }, getters: { getField, }, mutations: { updateField, setWholesaleOrderChangesSummary(state, wholesaleOrderChangesSummary){ if(wholesaleOrderChangesSummary) { let detailsChanged={} let itemChanged={} let itemAdded={} let itemRemoved={} detailsChanged.changes=wholesaleOrderChangesSummary.filter((item)=> item.changeType === 'details-changed') itemChanged.changes=wholesaleOrderChangesSummary.filter((item)=> item.changeType === 'item-changed') itemAdded.changes=wholesaleOrderChangesSummary.filter((item)=> item.changeType === 'item-added') itemRemoved.changes=wholesaleOrderChangesSummary.filter((item)=> item.changeType === 'item-removed') let obj={} obj['detailsChanged']=detailsChanged obj['itemChanged']=itemChanged obj['itemAdded']=itemAdded obj['itemRemoved']=itemRemoved state.wholesaleOrderChangesSummary=obj } }, setOne(state, one) { if (!one.shippingAddress) { one.shippingAddress = { line: null, postcode: null, city: null, country: null, countryIso3: null } } if (!one.billingAddress) { one.billingAddress = { line: null, postcode: null, city: null, country: null, countryIso3: null } } if (one.paymentTermsObject) { state.otherPaymentTypes = getPaymentTypesInArray(one.paymentTermsObject) state.otherPaymentTypes=updateTermsList(state.otherPaymentTypes) } if (one.category) { one.category = one.category.split(',') } if (one.state) { state.wholesaleOrderNextState = state.wholesaleOrderStateList.filter((item) => { return item.state == one.state }) } else { state.wholesaleOrderNextState = state.wholesaleOrderStateList.filter((item) => { return item.state == 'submitted_processing' }) } state.one = one; }, setMasterOne(state, one) { state.masterOne = one; }, setOtherPaymentTypes(state, paymentTypes) { state.otherPaymentTypes = getPaymentTypesInArray(paymentTypes) state.otherPaymentTypes=updateTermsList(state.otherPaymentTypes) }, getOtherPaymentTypesInObj(state, paymentTypes) { state.otherPaymentTypes = getPaymentTypesInObj(paymentTypes) state.otherPaymentTypes=updateTermsList(state.otherPaymentTypes) }, inProgress(state, yesOrNo) { state.inProgress = yesOrNo }, removeBusinessEntity(state) { if (state.one.businessEntity) delete state.one.businessEntity }, removeProviderBusinessEntity(state) { if (state.one.providerBusinessEntity || state.one.providerBusinessEntity == null) delete state.one.providerBusinessEntity }, removePurchaserBusinessEntity(state) { if (state.one.purchaserBusinessEntity || state.one.providerBusinessEntity == null) delete state.one.purchaserBusinessEntity }, removeWholesalerBusinessEntity(state) { if (state.one.purchaserBusinessEntity) delete state.one.purchaserBusinessEntity }, setWholesaleOrderTimeline(state, timeLine) { state.wholesaleOrderTimeline = timeLine }, setWholesaleOrderCompare(state, compare) { state.wholesaleOrderCompare = compare }, addDefaultPaymentType(state, val) { if (state.otherPaymentTypes === undefined || state.otherPaymentTypes == null) { state.otherPaymentTypes = [{ type: 'Payment on order confirmation', paid: 30 },{ type: 'Payment after last delivery', paid: 70,days: 0 }] } if (val.type == 'new') { state.otherPaymentTypes = [] state.otherPaymentTypes.splice(0, 0, { type: '', paid: 0, days: 0 }) } else if (val.type == 'default') { state.otherPaymentTypes = [{ type: 'Payment on order confirmation', paid: 30},{ type: 'Payment after last delivery', paid: 70,days: 0 }] state.otherPaymentTypes=updateTermsList(state.otherPaymentTypes) }else if(val.type == 'splitPaymentIn30%Deposit/70%BFDelivery'){ state.otherPaymentTypes = [ { "type": "Payment on order confirmation", "paid": "30", "days": 0 }, { "type": "Payment before first delivery", "paid": "70", "days": 0 } ] }else if(val.type == 'splitPaymentIn30%Deposit/70%ALDelivery'){ state.otherPaymentTypes = [ { "type": "Payment on order confirmation", "paid": "30", "days": 0 }, { "type": "Payment after last delivery", "paid": "70", "days": 0 } ] }else if(val.type === 'reset'){ state.otherPaymentTypes = [] } else { let termsList= state.otherPaymentTypes.map((item)=> item.type) let difference = otherPaymentTermsList.filter(x => !termsList.includes(x)); state.otherPaymentTypes.splice(val.index, 0, { type:difference[0], paid: 0, days: 0 }) state.otherPaymentTypes=updateTermsList(state.otherPaymentTypes) } }, updatePaymentTerms(state){ state.otherPaymentTypes=updateTermsList(state.otherPaymentTypes) }, deletePaymentTypeRow(state, index) { state.otherPaymentTypes.splice(index, 1); state.otherPaymentTypes=updateTermsList(state.otherPaymentTypes) }, setAddresses(state) { //if shipping address as null if (state.one.shippingAddress && state.one.shippingAddress.city === '' && state.one.shippingAddress.country === '' && state.one.shippingAddress.countryIso3 === '') { state.one.shippingAddress = null } //if billing address as null if (state.one.billingAddress && state.one.billingAddress.city === '' && state.one.billingAddress.country === '' && state.one.billingAddress.countryIso3 === '') { state.one.billingAddress = null } }, setSalesOrderReportChanges(state, compare) { state.salesOrderReportChanges = { orderItemSku : null, orderItemVariants : null, detailsChanged : null, differences : null, removedItems : null, addedItems : null, changedItems : null } state.salesOrderPackedReportChanges = { orderItemSku : null, orderItemVariants : null, detailsChanged : null, differences : null, removedItems : null, addedItems : null, changedItems : null } if(compare.changes){ let changedItems = compare.changes['itemChanged'] let detailsChanged = compare.changes['detailsChanged'] let addedItems = compare.changes['itemAdded'] let removedItems = compare.changes['itemRemoved'] let orderItemSku = [] let orderItemAddedSku = [] let orderItemVariants = [] let orderItemAddedVariants = [] let orderItemRemovedVariants = [] let orderItemRemovedSku = [] let newCurrency = null let oldCurrency = null // to use in total order number card let orderTotalNumber = [] if(detailsChanged && detailsChanged.length){ let filteredDetails = detailsChanged.filter((item)=>{ if(['order_ccy'].includes(item.change)){ oldCurrency = item.changeValues.old, newCurrency = item.changeValues.new } if(['total_amount', 'total_quantity'].includes(item.change)){ if(item.changeValues.old > 0) orderTotalNumber.push({ label: item.change, submittedOrder: item.changeValues.old, orderConfirmation: item.changeValues.new }) } else if(item.changeValues.old && item.changeValues.new !== item.changeValues.old) return item }) detailsChanged = [] detailsChanged.push(filteredDetails) } if(changedItems && changedItems.length){ changedItems.filter((item) => { let newOrderItems = item.changeValues.new if(newOrderItems.format == 'sku'){ let skus = generateDiscrepancyOrderSkuItem({ changedItem: item }) if(skus && skus.length){ orderItemSku.push(skus) } } else { oldCurrency = oldCurrency ? oldCurrency : state.one.orderCcy newCurrency = newCurrency ? newCurrency : state.one.orderCcy let variants = generateDiscrepancyOrderItemVarinats({ changedItem: item, newCurrency, oldCurrency }) if(variants){ orderItemVariants.push(variants) } } }) } if(removedItems && removedItems.length){ removedItems.filter((item) => { oldCurrency = oldCurrency ? oldCurrency : state.one.orderCcy newCurrency = newCurrency ? newCurrency : state.one.orderCcy let oldOrderItems = item.changeValues.old if(oldOrderItems.format == 'sku'){ let skus = generateDiscrepancyOrderItemAddedAndRemoved({ addedItem: item, newCurrency, oldCurrency }) if(skus){ orderItemRemovedSku.push([skus]) } } else { let variants = generateDiscrepancyOrderItemAddedAndRemoved({ addedItem: item, newCurrency, oldCurrency }) if(variants){ orderItemRemovedVariants.push([variants]) } } }) } if(addedItems && addedItems.length){ addedItems.filter((item) => { oldCurrency = oldCurrency ? oldCurrency : state.one.orderCcy newCurrency = newCurrency ? newCurrency : state.one.orderCcy let newOrderItems = item.changeValues.new if(newOrderItems.format == 'sku'){ let skus = generateDiscrepancyOrderItemAddedAndRemoved({ addedItem: item, newCurrency, oldCurrency }) if(skus){ orderItemAddedSku.push([skus]) } } else { let variants = generateDiscrepancyOrderItemAddedAndRemoved({ addedItem: item, newCurrency, oldCurrency }) if(variants){ orderItemAddedVariants.push([variants]) } } }) } if(state.one.state == 'approved_with_discrepancies'){ state.salesOrderReportChanges.orderItemSku = orderItemSku state.salesOrderReportChanges.addedSkuItems = orderItemAddedSku state.salesOrderReportChanges.removedSkuItems = orderItemRemovedSku state.salesOrderReportChanges.orderItemVariants = orderItemVariants // item-changed state.salesOrderReportChanges.detailsChanged = detailsChanged state.salesOrderReportChanges.differences = orderTotalNumber state.salesOrderReportChanges.removedItems = removedItems state.salesOrderReportChanges.addedVariantsItems = orderItemAddedVariants // item-added state.salesOrderReportChanges.removedVariantsItems = orderItemRemovedVariants // item-removed state.salesOrderReportChanges.changedItems = changedItems } else if(state.one.state == 'packed_with_discrepancies') { state.salesOrderPackedReportChanges.orderItemSku = orderItemSku state.salesOrderPackedReportChanges.addedSkuItems = orderItemAddedSku state.salesOrderPackedReportChanges.removedSkuItems = orderItemRemovedSku state.salesOrderPackedReportChanges.orderItemVariants = orderItemVariants state.salesOrderPackedReportChanges.detailsChanged = detailsChanged state.salesOrderPackedReportChanges.differences = orderTotalNumber state.salesOrderPackedReportChanges.removedItems = removedItems state.salesOrderPackedReportChanges.addedVariantsItems = orderItemAddedVariants // item-added state.salesOrderPackedReportChanges.removedVariantsItems = orderItemRemovedVariants // item-removed state.salesOrderPackedReportChanges.changedItems = changedItems } } if(state.one.state == 'approved_with_discrepancies'){ state.salesOrderReportChanges.changes = compare.changes state.salesOrderReportChanges.report = compare.report } else if(state.one.state == 'packed_with_discrepancies') { state.salesOrderPackedReportChanges.changes = compare.changes state.salesOrderPackedReportChanges.report = compare.report } }, setSalesOrderChange(state, changed) { state.salesOrderChanged = changed }, }, actions: { new({ commit }, { wholesalerBusinessEntityId,providerBusinessEntityId, addresses }) { commit('inProgress', false); commit('setOne', { appId: null, providerBusinessEntityId: providerBusinessEntityId, purchaserBusinessEntityId: null, importData: null, soNumber: null, totalAmount: 0, date: new Date().toISOString().substring(0, 10), status: "Draft", isProcessing: true, paymentTerms: null, shippingAddress: null, billingAddress: null, paymentAdvancePercent: 0, metadata: { ashtaSeason: null, // distributorId:'' ,distributorName : '', brandId: null, brandName: null, retailerId: null, retailerName: null, newRetailerName: null,newDistributorName:null }, shippingAddress: addresses.shipping, billingAddress: addresses.billing, shippingCost: 0, shipmentStartDate: null, shipmentCancelDate: null, discountValue: 0, paymentTermsObject: null, discountPct: 0, orderCcy: 'USD', itemsFormat: 'sku', category: null, taxPct:null, // salesteamServiceId : '', // salesagentServiceId:'', // salesagentSalesteamServiceId : '', salesagentSalesteamId: null, brandId: null, //brandOwnerBusinessEntityId: null, salesagentBusinessEntityId: null, brandOwnerSalesteamId: null, distributorSalesteamId: null, state: null, stateMeta: {}, commissionPct:0, commissionValue:0 }); }, fetchOne: async ({ commit, dispatch, rootState }, { wholesaleOrderId, businessEntityId, appId, recursive }) => { commit('inProgress', true); try { const order = await doFetchOne({ wholesaleOrderId }); if (order) { if (order.metadata && appId && order.metadata.brand_id) { let brandId = await dispatch('brandOne/fetchOne', { brandId: order.metadata.brand_id, appId: appId }, { root: true }) if (brandId && brandId.ownerId) { brandId.owner = { 'id': brandId.ownerId } } order.metadata.brand_id = brandId } if (order && appId && order.provider_business_entity_id) { let providerBusinessEntity = await dispatch('businessEntityOne/fetchBusinessOne', { businessEntityId: order.provider_business_entity_id, appId: appId },{ root: true }) order.provider_business_entity_id = providerBusinessEntity } if (order.metadata && appId && order.metadata.retailer_id) { let retailer = await dispatch('businessEntityOne/fetchBusinessOne', { businessEntityId: order.metadata.retailer_id, appId: appId }, { root: true }) order.metadata.retailer_id = retailer } else { order.metadata.retailer_id = null; } commit('setOne', humps(order)); commit('setMasterOne', humps(order)); } //if (recursive && (!rootState.businessEntityOne.one || order.purchaser_business_entity_id !== rootState.businessEntityOne.one.id)) { /* dispatch('businessEntityOne/fetchOne', { businessEntityId: businessEntityId, appId: appId }, { root: true })*/ // } return humps(order) } // eslint-disable-next-line no-useless-catch catch (err) { throw err } finally { commit('inProgress', false) } }, save: async ({ commit, state }, { appId, otherPaymentTerms, newWholesaleOrderId }) => { commit('inProgress', true); try { if (state.one && state.one.businessEntity) commit('removeBusinessEntity'); commit('setAddresses') if (undefined === state.one.id) { state.one.metadata.retailerName = (typeof state.one.metadata.retailerId === 'object') ? state.one.metadata.retailerId.name : null state.one.metadata.retailerId = state.one.metadata.retailerId.id ? state.one.metadata.retailerId.id : null state.one.brandId = state.one.metadata && state.one.metadata.brandId && state.one.metadata.brandId.id ? state.one.metadata.brandId.id : null //state.one.brandOwnerBusinessEntityId = state.one.metadata.brandId.owner.id ? state.one.metadata.brandId.owner.id : null state.one.metadata.brandName =state.one.metadata && state.one.metadata.brandId && state.one.metadata.brandId.name ?state.one.metadata.brandId.name : null state.one.metadata.brandId = state.one.metadata && state.one.metadata.brandId && state.one.metadata.brandId.id ? state.one.metadata.brandId.id : null if (state.one.paymentTerms === 'Other') { state.one.paymentTermsObject = getPaymentTypesInObj(state.otherPaymentTypes) } if (typeof state.one.providerBusinessEntityId !== 'object' && state.one.providerBusinessEntityId) { state.one.metadata.newDistributorName = state.one.providerBusinessEntityId } state.one.providerBusinessEntityId = state.one.providerBusinessEntityId && state.one.providerBusinessEntityId.id ? state.one. providerBusinessEntityId.id : null //if shipping address as null if (state.one.shippingAddress && state.one.shippingAddress.city === '' && state.one.shippingAddress.country === '' && state.one.shippingAddress.countryIso3 === '') { state.one.shippingAddress = null } //if billing address as null if (state.one.billingAddress && state.one.billingAddress.city === '' && state.one.billingAddress.country === '' && state.one.billingAddress.countryIso3 === '') { state.one.billingAddress = null } let postParams = newWholesaleOrderId ? snakes(Object.assign({}, state.one, { appId: appId }, { id: newWholesaleOrderId })) : snakes(Object.assign({}, state.one, { appId: appId })) let wholesaleOrder = await doPostOne(postParams); commit('inProgress', false); return ({ new: true, wholesaleOrder: wholesaleOrder }); } else { if (state.one && (state.one.providerBusinessEntity || state.one.providerBusinessEntity == null)) { commit('removeProviderBusinessEntity'); } if (state.one && (state.one.purchaserBusinessEntity || state.one.purchaserBusinessEntity == null)) { commit('removePurchaserBusinessEntity'); } state.one.metadata.retailerName = state.one.metadata && state.one.metadata.retailerId && (typeof state.one.metadata.retailerId === 'object') ? state.one.metadata.retailerId.name : null state.one.metadata.retailerId =state.one.metadata && state.one.metadata.retailerId && state.one.metadata.retailerId.id ? state.one.metadata.retailerId.id : null state.one.brandId = state.one.metadata && state.one.metadata.brandId && state.one.metadata.brandId.id ? state.one.metadata.brandId.id : null // state.one.brandOwnerBusinessEntityId = state.one.metadata.brandId.owner.id ? state.one.metadata.brandId.owner.id : null state.one.metadata.brandName = state.one.metadata && state.one.metadata.brandId && state.one.metadata.brandId.name ? state.one.metadata.brandId.name:null state.one.metadata.brandId = state.one.metadata && state.one.metadata.brandId && state.one.metadata.brandId.id ? state.one.metadata.brandId.id : null if (typeof state.one.providerBusinessEntityId !== 'object' && state.one.providerBusinessEntityId) { state.one.metadata.newDistributorName = state.one.providerBusinessEntityId } else { state.one.metadata.newDistributorName = null } /* if(state.one.metadata.lineSheetId) { state.one.metadata.lineSheetId=state.one.metadata.lineSheetId.id }*/ state.one.providerBusinessEntityId = state.one.providerBusinessEntityId && state.one.providerBusinessEntityId.id ? state.one. providerBusinessEntityId.id : null if (state.one.paymentTerms === 'Other') { state.one.paymentTermsObject = getPaymentTypesInObj(state.otherPaymentTypes) } let wholesaleOrder = await doPatchOne(snakes(state.one)); commit('inProgress', false); return ({ update: true, wholesaleOrder: wholesaleOrder }); } } // eslint-disable-next-line no-useless-catch catch (err) { throw err } finally { commit('inProgress', false) } }, changeOrderStatus: async ({ commit, state }, { isProcessing, orderStatus, orderState }) => { commit('inProgress', true); try { await doOrderStatusUpdate({ id: state.one.id, isProcessing: isProcessing, status: orderStatus, state: orderState }); commit('inProgress', false); return ({ update: true }); } // eslint-disable-next-line no-useless-catch catch (err) { throw err } finally { commit('inProgress', false) } }, cancelOrder: async ({ commit }, { orderId, isProcessing, orderStatus, orderState }) => { commit('inProgress', true); try { await doOrderStatusUpdate({ id: orderId, isProcessing: isProcessing, status: orderStatus, state: orderState }); commit('inProgress', false); return ({ update: true }); } // eslint-disable-next-line no-useless-catch catch (err) { throw err } finally { commit('inProgress', false) } }, deleteSelected: async ({ commit }, { wholesaleOrderId }) => { commit('inProgress', true); try { await doDeleteSelected({ wholesaleOrderId }); return ({ deleteSelected: true }) } catch (err) { return ({ deleteSelected: false }) } finally { commit('inProgress', false); } }, wholesaleOrderGetTimeline: async ({ commit }, { wholesaleOrderId }) => { commit('inProgress', true); try { let timeLineData = await doWholesaleOrderGetTimeline({ wholesaleOrderId }); commit('setWholesaleOrderTimeline', humps(timeLineData)); return ({ timeLineData: humps(timeLineData) }) } catch (err) { throw 'error' } finally { commit('inProgress', false); } }, salesOrderReportChanges: async ({ commit }, { salesOrderId, filter }) => { commit('inProgress', true); try { let compareData = await doWholesaleOrderReportChanges({ salesOrderId, filter }); commit('setSalesOrderReportChanges', humps(compareData)); return ({ compareData: humps(compareData) }) } catch (err) { throw 'error' } finally { commit('inProgress', false); } }, wholesaleOrderCompare: async ({ commit }, { wholesaleOrderId, ts1, ts2 }) => { commit('inProgress', true); try { let compareData = await doWholesaleOrderCompare({ wholesaleOrderId, ts1, ts2 }); commit('setWholesaleOrderCompare', humps(compareData)); return ({ compareData: humps(compareData) }) } catch (err) { throw 'error' } finally { commit('inProgress', false); } }, addDefaultPaymentType: async ({ commit }, val) => { commit('addDefaultPaymentType', val); }, deletePaymentTypeRow: async ({ commit }, index) => { commit('deletePaymentTypeRow', index); }, wholesaleOrderUpdateItemsFormat: async ({ commit }, { salesOrderId, format }) => { commit('inProgress', true); try { let data = await doWholesaleOrderUpdateItemsFormat({ salesOrderId, format }); return ({ data: humps(data) }) } catch (err) { throw 'error' } finally { commit('inProgress', false); } }, wholesaleOrderUpdateBusinessEntity: async ({ commit }, { salesOrderId, wholesaleOrdersBusinessEntity }) => { commit('inProgress', true); try { let data = await doWholesaleOrderUpdateBusinessEntity(({ salesOrderId, wholesaleOrdersBusinessEntity: snakes(wholesaleOrdersBusinessEntity) })); return ({ data: humps(data) }) } catch (err) { throw 'error' } finally { commit('inProgress', false); } }, updateWholesaleOrderProperty: async ({ commit }, { wholesaleOrderId, property }) => { commit("inProgress", true); try { let order = await doPatchOneProperty({ wholesaleOrderId, property: snakes(property) }); commit("inProgress", false); return { order }; } catch (err) { // eslint-disable-next-line no-useless-catch throw err; } finally { commit("inProgress", false); } }, wholesaleOrderUpdateState: async ({ commit, state, dispatch }, { property }) => { commit('inProgress', true); try { let data = await doPatchOneProperty({ wholesaleOrderId: state.one.id, property: snakes(property) }); dispatch('salesOrderOne/fetchOne', { wholesaleOrderId: state.one.id, businessEntityId: state.one.purchaserBusinessEntityId, appId: state.one.appId }, { root: true }) return ({ data: humps(data) }) } catch (err) { throw 'error' } finally { commit('inProgress', false); } }, saveOrderChangeObject: async ({ commit }, { wholesaleOrderChangesetId, change,icpData,oldIcpData }) => { commit('inProgress', true); try { let data = await doPostSalesOrderChanges({ wholesaleOrderChangesetId, change: snakes(change),icpData,oldIcpData}); return ({ data: humps(data) }) } catch (err) { throw err } finally { commit('inProgress', false); } }, fetchWholesaleOrderChanges: async ({commit}, { changesetId }) => { // commit('inProgress', true); try { let res = await doGetOrderChangesForReport({ changesetId }) if(res){ commit('setWholesaleOrderChangesSummary', humps(res)) return humps(res) }else{ commit('setWholesaleOrderChangesSummary', []) return [] } }catch (err) { throw err } }, updateWholesaleOrderChangesSet: async ({commit}, { changesetId, property }) => { // commit('inProgress', true); try { let res = await doPatchWholesaleOrderChangeSet({ changesetId, property }) if(res){ commit('setWholesaleOrderChangesSummary', humps(res)) return humps(res) }else{ commit('setWholesaleOrderChangesSummary', []) return [] } }catch (err) { throw err } }, getWholesaleOrderChangesSummary: async ({commit}, {wholesaleOrderChangesetId}) => { // commit('inProgress', true); try { let res = await doGetWholesaleOrderChanges({wholesaleOrderChangesetId}) if(res){ commit('setWholesaleOrderChangesSummary', humps(res)) }else{ commit('setWholesaleOrderChangesSummary', []) } }catch (err) { throw err } finally { // commit('inProgress', false) } }, salesOrderUpdateState: async ({ commit, state, dispatch }, { property }) => { commit('inProgress', true); try { if(property && property.metadata){ if(typeof property.metadata.brandId === 'object'){ property.metadata.brandName = property.metadata.brandId.name property.metadata.brandId = property.metadata.brandId.id ? property.metadata.brandId.id : null } if (property.metadata.lineSheetId) { property.metadata.lineSheetId = property.metadata.lineSheetId.id } if(property.metadata.brandId){ property.metadata.newBrandName=null } } let data = await doPatchOneProperty({ wholesaleOrderId: state.one.id, property: snakes(property) }); dispatch('salesOrderOne/fetchOne', { wholesaleOrderId: state.one.id, businessEntityId: state.one.purchaserBusinessEntityId, appId: state.one.appId }, { root: true }) return ({ data: humps(data) }) } catch (err) { throw 'error' } finally { commit('inProgress', false); } }, doUpdateSalesOrderChangeset: async ({ commit }, { one }) => { commit('inProgress', true); try { let data = await doPatchWholesaleOrderChangesetOne({ one }); return ({ data: humps(data) }) } catch (err) { throw 'error' } finally { commit('inProgress', false); } }, doSalesOrderDiscardChanges: async ({ commit }, { wholesaleOrderId, specs }) => { commit('inProgress', true); try { let data = await doWholesaleOrderDiscardChanges({ wholesaleOrderId, specs }); return ({ data: humps(data) }) } catch (err) { throw 'error' } finally { commit('inProgress', false); } }, setOrderOne: async ({ commit }, {one}) => { commit('inProgress', true); try { commit('setOne', one) commit('inProgress', false); } catch (err) { commit('inProgress', false); } finally { commit('inProgress', false); } }, doWholesaleBusinessImportAllPos: async ({ commit }, { registeredProviderBusinessEntityId, registeredPurchaserBusinessEntityId }) => { commit('inProgress', true); try { let data = await doWholesaleBusinessImportAllPos({ registeredProviderBusinessEntityId, registeredPurchaserBusinessEntityId }); return ({ data: humps(data) }) } catch (err) { throw 'error' } finally { commit('inProgress', false); } }, deleteCurrentChangeOfChangeset: async ({ commit }, { changeId }) => { commit('inProgress', true); try { await doDeleteChangesetChange({ changeId }); return ({ changeResp: true }) } catch (err) { throw 'error' } finally { commit('inProgress', false); } }, balanceOrderPayments: async ({ commit }, { wholesaleOrderId }) => { commit('inProgress', true); try { let result= await doPostBalanceOrderPayments({ wholesaleOrderId }); commit('inProgress', false); if(result){ return result } } catch (err) { throw 'error' } finally { commit('inProgress', false); } }, updateOtherPaymentTypes: async ({ commit }) => { commit('inProgress', true); try { commit('updatePaymentTerms'); } catch (err) { throw 'error' } finally { commit('inProgress', false); } }, }, }