wholesale-vuex
Version:
Commerce vuex module
863 lines (805 loc) • 40.2 kB
JavaScript
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);
}
},
},
}