Skip to content

Commit

Permalink
Merge pull request #614 from amansinghbais/#612
Browse files Browse the repository at this point in the history
Implemented: force scan functionality on packing order from order details page (#612)
  • Loading branch information
ravilodhi authored Jul 15, 2024
2 parents e833bdd + 31f06ad commit e466ffe
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 8 deletions.
5 changes: 4 additions & 1 deletion src/components/ScanOrderItemModal.vue
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
<ion-label>
<p class="overline">{{ getProductIdentificationValue(productIdentificationPref.secondaryId, getProduct(item.productId)) }}</p>
{{ getProductIdentificationValue(productIdentificationPref.primaryId, getProduct(item.productId)) ? getProductIdentificationValue(productIdentificationPref.primaryId, getProduct(item.productId)) : item.productName }}
<ion-badge color="dark" v-if="isKit(item)">{{ translate("Kit") }}</ion-badge>
<p>{{ getFeature(getProduct(item.productId).featureHierarchy, '1/COLOR/')}} {{ getFeature(getProduct(item.productId).featureHierarchy, '1/SIZE/')}}</p>
</ion-label>
</ion-item>
Expand Down Expand Up @@ -73,6 +74,7 @@ import { getProductIdentificationValue, DxpShopifyImg, translate, useProductIden
import { mapGetters } from 'vuex';
import { getFeature, showToast } from "@/utils"
import Scanner from "@/components/Scanner.vue"
import { isKit } from '@/utils/order'
export default defineComponent({
name: "ScanOrderItemModal",
Expand Down Expand Up @@ -107,7 +109,7 @@ export default defineComponent({
},
props: ["order"],
mounted() {
this.orderItems = this.order.orderItems.length ? JSON.parse(JSON.stringify(this.order.orderItems)) : []
this.orderItems = this.order.items.length ? JSON.parse(JSON.stringify(this.order.items)) : []
},
methods: {
closeModal(payload= {}) {
Expand Down Expand Up @@ -169,6 +171,7 @@ export default defineComponent({
copyOutline,
getFeature,
getProductIdentificationValue,
isKit,
productIdentificationPref,
saveOutline,
translate
Expand Down
4 changes: 2 additions & 2 deletions src/store/modules/util/actions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -480,7 +480,7 @@ const actions: ActionTree<UtilState, RootState> = {
try {
const resp = await UtilService.getProductStoreSetting(payload) as any
if(!hasError(resp)) {
const respValue = resp.data.docs[0].settingValue
const respValue = resp.data.docs[0].settingValue === "true"
commit(types.UTIL_FORCE_SCAN_STATUS_UPDATED, respValue)
} else {
dispatch('createForceScanSetting');
Expand Down Expand Up @@ -552,7 +552,7 @@ const actions: ActionTree<UtilState, RootState> = {
"fromDate": fromDate,
"productStoreId": eComStoreId,
"settingTypeEnumId": "FULFILL_FORCE_SCAN",
"settingValue": value
"settingValue": `${value}`
}

try {
Expand Down
4 changes: 2 additions & 2 deletions src/views/InProgress.vue
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@
<div class="mobile-only">
<ion-item>
<ion-button fill="clear" :disabled="order.isModified || order.hasMissingInfo" @click.stop="packOrder(order)">{{ translate("Pack using default packaging") }}</ion-button>
<ion-button fill="clear" :disabled="order.isModified || order.hasMissingInfo" @click.stop="isForceScanEnabled ? scanOrder(order) : packOrder(order)">{{ translate("Pack using default packaging") }}</ion-button>
<ion-button slot="end" fill="clear" color="medium" @click.stop="packagingPopover">
<ion-icon slot="icon-only" :icon="ellipsisVerticalOutline" />
</ion-button>
Expand All @@ -197,7 +197,7 @@
</ion-infinite-scroll>
</div>
</div>
<ion-fab v-if="inProgressOrders.total" class="mobile-only" vertical="bottom" horizontal="end" slot="fixed">
<ion-fab v-if="inProgressOrders.total && !isForceScanEnabled" class="mobile-only" vertical="bottom" horizontal="end" slot="fixed">
<ion-fab-button @click="packOrders()">
<ion-icon :icon="checkmarkDoneOutline" />
</ion-fab-button>
Expand Down
22 changes: 19 additions & 3 deletions src/views/OrderDetail.vue
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@
<div v-if="category === 'in-progress'" class="mobile-only">
<ion-item>
<ion-button fill="clear" :disabled="order.hasMissingInfo" @click="packOrder(order)">{{ translate("Pack using default packaging") }}</ion-button>
<ion-button fill="clear" :disabled="order.hasMissingInfo" @click="isForceScanEnabled ? scanOrder(order) :packOrder(order)">{{ translate("Pack using default packaging") }}</ion-button>
<ion-button slot="end" fill="clear" color="medium" @click="packagingPopover">
<ion-icon slot="icon-only" :icon="ellipsisVerticalOutline" />
</ion-button>
Expand All @@ -169,7 +169,7 @@
<!-- positive -->
<div>
<template v-if="category === 'in-progress'">
<ion-button :disabled="order.hasRejectedItem || order.isModified || order.hasMissingInfo" @click="packOrder(order)">
<ion-button :disabled="order.hasRejectedItem || order.isModified || order.hasMissingInfo" @click="isForceScanEnabled ? scanOrder(order) : packOrder(order)">
<ion-icon slot="start" :icon="personAddOutline" />
{{ translate("Pack order") }}
</ion-button>
Expand Down Expand Up @@ -347,6 +347,7 @@ import ShipmentBoxPopover from '@/components/ShipmentBoxPopover.vue'
import ReportIssuePopover from '@/components/ReportIssuePopover.vue'
import ShippingDetails from '@/views/ShippingDetails.vue';
import { isKit } from '@/utils/order'
import ScanOrderItemModal from "@/components/ScanOrderItemModal.vue";
export default defineComponent({
name: "OrderDetail",
Expand Down Expand Up @@ -393,7 +394,8 @@ export default defineComponent({
getPaymentMethodDesc: 'util/getPaymentMethodDesc',
getStatusDesc: 'util/getStatusDesc',
productStoreShipmentMethCount: 'util/getProductStoreShipmentMethCount',
partialOrderRejectionConfig: 'user/getPartialOrderRejectionConfig'
partialOrderRejectionConfig: 'user/getPartialOrderRejectionConfig',
isForceScanEnabled: 'util/isForceScanEnabled',
})
},
data() {
Expand Down Expand Up @@ -1287,6 +1289,20 @@ export default defineComponent({
},
isTrackingRequiredForAnyShipmentPackage(order: any) {
return order.shipmentPackages?.some((shipmentPackage: any) => shipmentPackage.isTrackingRequired === 'Y')
},
async scanOrder(order: any) {
const modal = await modalController.create({
component: ScanOrderItemModal,
componentProps: { order }
})
modal.onDidDismiss().then((result: any) => {
if(result.data?.packOrder) {
this.packOrder(order);
}
})
modal.present();
}
},
setup() {
Expand Down

0 comments on commit e466ffe

Please sign in to comment.