@os1-platform/dispatch-mobile 2.0.2 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"names":["View","Text","StyleSheet","TextInput","TouchableOpacity","BackHandler","React","useEffect","useRef","useState","useLayoutEffect","DeliverState","CommonStyles","Fonts","ProgressDialog","PLEASE_WAIT","CScanner","checkForValidation","clearScanOutput","getBarCodeTypes","getErrorMessage","getEventType","getScanETOutput","getScanMappedOutput","getSplitIds","getUpdatedScanETOutput","triggerScanEvent","updateSharedPreference","SnackBarCustom","SnackBarType","Button","Modal","Portal","Provider","useFocusEffect","isEmptyOrBlank","PROCEED_STATUS","getBaseETResponse","EntityCode","ExecutionTaskID","EMPTY_AWB","ER_MISSING","INVALID_SHIPMENT","ERDropDown","getErcDropDownItems","GO_BACK_EVENT_CODE","Icon","DispatchExecutor","SummaryPage","RouteParams","BULK_DATA_LIMIT","AntDesign","GoBackModal","hasGoBackConnector","ScanET","props","_props$wfMeta","_props$additionalMult","_props$meta","prefixedMergedObjectiveId","route","params","ROOT_META_DATA","isScreenLoaded","setIsScreenLoaded","ercSelectorLoaded","shipmentCountLoaded","previousDataLoaded","isErcSelector","ercSelector","isMultiObjectiveEnable","wfMeta","enableMultiObjectiveFlow","allowMultiObjectivePartial","additionalMultiConfig","validationType","SINGLE_MODE_COUNT","meta","singleModeCount","showScanList","setShowScanList","showProgress","setShowProgress","showScanner","setShowScanner","scanText","setScanText","snackBar","setSnackBar","show","type","SUCCESS","message","scansMap","setScansMap","Map","scannedInput","setScannedInput","refInput","selectedReason","setSelectedReason","selectedEventCode","setSelectedEventCode","reasonItems","setReasonItems","eventCodeItems","setEventCodeItems","showBackModal","setShowBackModal","showUnscannedShipmentModal","setShowUnscannedShipmentModal","shipmentCount","setShipmentCount","scannedCount","totalCount","mergedScanETOutput","setMergedScanETOutput","fetchShipmentCount","_shipmentCount","getScannedShipmentsCount","mergedObjectiveId","error","fetchPreviousScannedData","scanOutput","fetchERC","response","fetchAllData","Promise","all","navigation","setOptions","title","headerLeft","createElement","onPress","_props$taskMeta","taskMeta","enableGoBack","applicableReasons","name","color","size","style","paddingRight","paddingTop","code","length","undefined","addScans","handleSubmitET","status","count","erc","DELIVER_LATER","goBack","etOutput","defaultERC","DELIVERE_LATER","onSubmitET","eventCode","ec","reasonCode","rc","DELIVER_NOW","hasNextPage","offset","limit","scans","data","scannedData","filterWFIData","taskName","forEach","scan","push","groupId","displayInfo","jobId","shipmentFlow","scanValue","scannableId","output","_handleBarCodeScanned","updateShipmentCount","scannedCountChanged","totalCountChanged","arguments","currentIds","Set","FAILURE","replace","isValidated","validation","eventType","result","updateWIMapping","scanToMerge","subTitle","WARNING","_scanOutput","isScan","scanId","mwId","scanned","total","exitOnError","CANCELLED","renderActionButtons","labelStyle","nextButtonLabel","nextButton","uppercase","useCallback","onBackPress","addEventListener","removeEventListener","timeout","setTimeout","clearTimeout","renderModal","showModal","setShowModal","onSuccess","SCAN","onFailure","renderUnscannedShipmentModal","visible","dismissable","contentContainerStyle","styles","modalContent","marginStart","marginEnd","modalView","justifyContent","alignItems","marginBottom","titleText","unscannedShipmentModalSubText","textAlign","marginTop","cancelButton","height","borderRadius","removeShipment","cancelButtonLabel","renderShipmentCount","scanMode","selectedIndex","scanCountLimit","mainContainer","scanProps","label","flex","marginHorizontal","items","onItemChange","eventItem","marginVertical","disabled","reasonItem","addShipmentStyle","returnKeyType","ref","onSubmitEditing","value","onChangeText","borderBottomColor","borderBottomWidth","fontSize","fontFamily","IBMPlexSans_600SemiBold","placeholder","alignSelf","paddingVertical","paddingHorizontal","borderWidth","borderColor","IBMPlexSans_500Medium","lineHeight","cameraContainer","barCodeTypes","onScanned","onDismiss","customBottom","bottomView","create","backgroundColor","zIndex","flexDirection","paddingBottom","addButtonLabel","fontWeight","letterSpacing","fontStyle","centerView","alignContent","padding","subText","bottomButtons","modalDefaultERCStyle","IBMPlexSans_400Regular"],"sources":["ScanET.tsx"],"sourcesContent":["import {\n View,\n Text,\n StyleSheet,\n TextInput,\n TouchableOpacity,\n BackHandler,\n} from 'react-native';\nimport React, { useEffect, useRef, useState, useLayoutEffect } from 'react';\nimport { DeliverState, type ScannerInput } from './ScanSchema';\nimport {\n CommonStyles,\n Fonts,\n} from '../../../styles/executionTasks/CommonStyles';\nimport ProgressDialog from '../../widgets/ProgressDialog';\nimport { PLEASE_WAIT } from '../../../res/strings';\nimport CScanner from './sub_components/CScanner';\nimport {\n checkForValidation,\n clearScanOutput,\n getBarCodeTypes,\n getErrorMessage,\n getEventType,\n getScanETOutput,\n getScanMappedOutput,\n getScannedItemCount,\n getShipmentData,\n getSplitIds,\n getUpdatedScanETOutput,\n isETCompleted,\n isReplacement,\n triggerScanEvent,\n updatePendingSharedPreference,\n updateSharedPreference,\n} from './utils';\nimport SnackBarCustom, { SnackBarType } from '../../widgets/SnackBarCustom';\nimport { Button, Modal, Portal, Provider } from 'react-native-paper';\nimport { useFocusEffect } from '@react-navigation/native';\nimport { isEmptyOrBlank } from '../../../utils/utils';\nimport {\n BlindScan,\n MergedScan,\n PROCEED_STATUS,\n SCAN_STATUS,\n} from './interfaces';\nimport { getBaseETResponse } from '../../../utils/ExecTaskUtils';\nimport {\n EntityCode,\n ExecutionTaskID,\n} from '../../../models/execTasks/ETConfig';\nimport { getEventCodeByET } from '../../../manager/dispatchCodes/EventCodeContainer';\nimport {\n ADD_SHIPMENT,\n EMPTY_AWB,\n ER_MISSING,\n INVALID_SHIPMENT,\n MAX_SHIPMENT_REACHED,\n SHIPMENT_ALREADY_ADDED,\n} from './constants';\nimport ERDropDown, { ercItem } from './sub_components/ERDropDown';\nimport {\n getDefaultERCLabel,\n getErcDropDownItems,\n} from './sub_components/DropDownUtils';\nimport {\n GO_BACK_EVENT_CODE,\n REASON_NOT_USED,\n} from '../../../constants/constants';\nimport Icon from 'react-native-vector-icons/MaterialIcons';\nimport type { ScannerOutput } from './ScanSchema';\nimport {\n DispatchExecutor,\n IDispatch,\n} from '@os1-platform/platform-coreos-execution-engine-sdk';\nimport SummaryPage from './sub_components/SummaryPage';\nimport { RouteParams } from '../../../ui/uiConfig/RouteParams';\nimport { BULK_DATA_LIMIT } from '../../../manager/syncmanager/constants';\nimport { AntDesign } from '@expo/vector-icons';\nimport GoBackModal from '../../../components/widgets/GoBackModal';\nimport { hasGoBackConnector } from '../../../components/utils';\n\n/**\n *\n * @param props interface ScannerInput\n * @returns JSX\n *\n * props has key validation which defines different UI cases\n * validation: interface Validation\n *\n * when validation.selectedIndex === 0 => Receives validation.logic as array of scans\n * when validation.selectedIndex === 1 => Receives validation.logic as validation regex\n * when validation.selectedIndex === 0 => Receives validation.logic as API\n */\n\nconst ScanET = (props: ScannerInput) => {\n const prefixedMergedObjectiveId =\n props.route.params[RouteParams.ROOT_META_DATA].prefixedMergedObjectiveId;\n\n const [isScreenLoaded, setIsScreenLoaded] = useState({\n ercSelectorLoaded: false,\n shipmentCountLoaded: false,\n previousDataLoaded: false,\n });\n const isErcSelector = props.ercSelector ? true : false;\n const isMultiObjectiveEnable = props.wfMeta?.enableMultiObjectiveFlow;\n const allowMultiObjectivePartial =\n (isMultiObjectiveEnable === true &&\n props.additionalMultiConfig?.validationType === 'SUBSET_OF_LIST') ||\n false;\n\n const SINGLE_MODE_COUNT: number = props.meta?.singleModeCount || 1;\n const [showScanList, setShowScanList] = useState(false); // To show shipments List\n const [showProgress, setShowProgress] = useState(false); // To pause implementation while a barcode was scanned\n const [showScanner, setShowScanner] = useState(true); // To show the barcode scanner on screen and refresh on successful scan\n const [scanText, setScanText] = useState(''); // Show scan text\n const [snackBar, setSnackBar] = useState({\n show: false,\n type: SnackBarType.SUCCESS,\n message: '',\n });\n\n /**\n * scansMap: is used to add the scanned shipment related data on each scan.\n * scansMap data structure (MergedScan) is the same format as the output of scanET alongwith jobId,\n * which is used to create the final output of the ET and pass the scanned id to each merged objective.\n */\n\n const [scansMap, setScansMap] = useState<Map<string, MergedScan>>(new Map());\n\n const [scannedInput, setScannedInput] = useState<string>(''); // state to capture scan\n const refInput = useRef<TextInput>(null);\n const [selectedReason, setSelectedReason] = useState<ercItem>(); // reason code from ercSelector\n const [selectedEventCode, setSelectedEventCode] = useState<ercItem>(); // reason code from ercSelector\n const [reasonItems, setReasonItems] = useState<ercItem[]>(); // list of reason codes\n const [eventCodeItems, setEventCodeItems] = useState<ercItem[]>(); // list of event codes\n\n const [showBackModal, setShowBackModal] = useState(false);\n const [showUnscannedShipmentModal, setShowUnscannedShipmentModal] =\n useState(false);\n\n const [shipmentCount, setShipmentCount] = useState({\n scannedCount: 0,\n totalCount: 0,\n });\n const [mergedScanETOutput, setMergedScanETOutput] = useState<ScannerOutput>(\n {}\n );\n\n const fetchShipmentCount = async () => {\n try {\n const _shipmentCount = await DispatchExecutor.getScannedShipmentsCount(\n props.mergedObjectiveId\n );\n if (_shipmentCount) {\n setShipmentCount({\n scannedCount: _shipmentCount.scannedCount || 0,\n totalCount: _shipmentCount.totalCount || 0,\n });\n // setIsScreenLoaded((isScreenLoaded) => ({\n // ...isScreenLoaded,\n // shipmentCountLoaded: true,\n // }));\n }\n } catch (error) {}\n };\n\n const fetchPreviousScannedData = async () => {\n try {\n const scanOutput = (await getScanMappedOutput()) || {};\n setMergedScanETOutput(scanOutput[prefixedMergedObjectiveId] || {});\n } catch (error) {}\n };\n\n const fetchERC = async () => {\n if (props.ercSelector) {\n try {\n let response = await getErcDropDownItems(\n 'EVENT',\n props.ercSelector || []\n );\n setEventCodeItems(response);\n setSelectedEventCode(response[0]);\n } catch (error) {}\n }\n };\n\n const fetchAllData = async () => {\n try {\n await Promise.all([\n fetchERC(),\n fetchPreviousScannedData(),\n fetchShipmentCount(),\n ]);\n } catch (error) {\n } finally {\n setIsScreenLoaded({\n ercSelectorLoaded: true,\n previousDataLoaded: true,\n shipmentCountLoaded: true,\n });\n }\n };\n\n useEffect(() => {\n fetchAllData();\n }, []);\n\n useEffect(() => props.showProgress(true), []);\n useEffect(() => {\n if (\n isScreenLoaded.ercSelectorLoaded &&\n isScreenLoaded.previousDataLoaded &&\n isScreenLoaded.shipmentCountLoaded\n ) {\n props.showProgress(false);\n }\n }, [isScreenLoaded]);\n\n // const [defaultERCLabel, setDefaultERCLabel] = useState({\n // eventCode: '',\n // reasonCode: '',\n // });\n // const fetchLabel = async () => {\n // const { eventCode, reasonCode } = await getDefaultERCLabel(\n // props.defaultERC\n // );\n // setDefaultERCLabel({ eventCode, reasonCode });\n // };\n // useEffect(() => {\n // fetchLabel();\n // }, [props.defaultERC]);\n\n useLayoutEffect(() => {\n props.navigation.setOptions({\n title: props.title,\n headerLeft: () => {\n return (\n <Icon\n onPress={() => {\n if (\n props.taskMeta?.enableGoBack &&\n hasGoBackConnector(props.applicableReasons)\n )\n setShowBackModal(true);\n else {\n if (showScanList) setShowScanList(false);\n else setShowUnscannedShipmentModal(true);\n }\n }}\n name=\"arrow-back\"\n color={'black'}\n size={25}\n style={{\n paddingRight: 15,\n paddingTop: 5,\n }}\n />\n );\n },\n });\n }, [props.navigation, props.title, showScanList]);\n\n useEffect(() => {\n selectedEventCode?.code &&\n (async () => {\n let response = await getErcDropDownItems(\n 'REASON',\n props.ercSelector || [],\n selectedEventCode?.code\n );\n if (response.length) {\n setReasonItems(response);\n setSelectedReason(response[0]);\n } else {\n setReasonItems([]);\n setSelectedReason(undefined);\n }\n })();\n }, [selectedEventCode?.code]);\n\n useEffect(() => {\n scannedInput &&\n (async () => {\n await addScans();\n setScannedInput('');\n })();\n }, [scannedInput]);\n\n const handleSubmitET = async (\n status: PROCEED_STATUS,\n count: number,\n erc: { ec: string; rc: string } | undefined\n ) => {\n if (status === PROCEED_STATUS.DELIVER_LATER) {\n if (shipmentCount.scannedCount === 0) {\n props.navigation.goBack();\n } else {\n const etOutput = await getScanETOutput(\n mergedScanETOutput,\n props.mergedObjectiveId,\n eventCodeItems || [],\n props.defaultERC,\n DeliverState.DELIVERE_LATER,\n true,\n count\n );\n props.onSubmitET(etOutput);\n }\n } else {\n if (shipmentCount.scannedCount < shipmentCount.totalCount) {\n if (erc) {\n const prefixedMergedObjectiveId =\n props.route.params[RouteParams.ROOT_META_DATA]\n .prefixedMergedObjectiveId;\n\n const etOutput = await getScanETOutput(\n mergedScanETOutput,\n props.mergedObjectiveId,\n eventCodeItems || [],\n { eventCode: erc.ec, reasonCode: erc.rc },\n DeliverState.DELIVER_NOW,\n true,\n count\n );\n\n let hasNextPage = true;\n let offset = 0;\n const limit = BULK_DATA_LIMIT;\n let scans: IDispatch.IQueryWFIResponse = { data: [], totalCount: 0 };\n\n const scannedData: any = [];\n do {\n scans = await DispatchExecutor.filterWFIData(\n props.taskName,\n [prefixedMergedObjectiveId],\n limit,\n offset\n );\n\n scans.data.forEach((scan) => {\n scannedData.push({\n groupId: scan.displayInfo.groupId,\n jobId: scan.jobId,\n shipmentFlow: scan.displayInfo.shipmentFlow,\n scanValue: scan.scannableId,\n });\n });\n\n offset += limit;\n hasNextPage = scans.totalCount - offset + 1 > 0;\n } while (hasNextPage);\n\n triggerScanEvent(\n 'ON_SCAN',\n props.route,\n scannedData,\n etOutput['default'].output\n );\n\n // UPDATE PENDING IN SHARED PREFERENCE MERGED_SCAN_OUTPUT\n // updatePendingSharedPreference(eventType, prefixedMergedObjectiveId);\n\n props.onSubmitET(etOutput);\n }\n } else {\n if (shipmentCount.totalCount === 0) props.navigation.goBack();\n else {\n const etOutput = await getScanETOutput(\n mergedScanETOutput,\n props.mergedObjectiveId,\n eventCodeItems || [],\n props.defaultERC,\n DeliverState.DELIVER_NOW,\n false,\n count\n );\n props.onSubmitET(etOutput);\n }\n }\n }\n };\n\n const _handleBarCodeScanned = async (scan: string) => {\n if (!isEmptyOrBlank(scan)) {\n setShowScanner(false);\n setScannedInput(scan);\n }\n };\n\n const updateShipmentCount = async (\n scannedCountChanged: number,\n totalCountChanged: number,\n type: 'SCAN' | 'REMOVE' = 'SCAN'\n ) => {\n if (type === 'SCAN') {\n // UPDATE THE Count\n setShipmentCount((_shipmentCount) => {\n return {\n scannedCount: _shipmentCount.scannedCount + scannedCountChanged,\n totalCount: _shipmentCount.totalCount + totalCountChanged,\n };\n });\n } else {\n const currentIds = [\n ...new Set([\n ...props.mergedObjectiveId,\n ...getSplitIds(mergedScanETOutput),\n prefixedMergedObjectiveId,\n ]),\n ];\n const _shipmentCount = await DispatchExecutor.getScannedShipmentsCount(\n currentIds\n );\n if (_shipmentCount) {\n setShipmentCount({\n scannedCount: _shipmentCount.scannedCount || 0,\n totalCount: _shipmentCount.totalCount || 0,\n });\n // setIsScreenLoaded((isScreenLoaded) => ({\n // ...isScreenLoaded,\n // shipmentCountLoaded: true,\n // }));\n }\n }\n };\n\n const addScans = async () => {\n const scan = scannedInput;\n if (isEmptyOrBlank(scan)) {\n // showToast('Empty AWB Code');\n setSnackBar({\n show: true,\n message: EMPTY_AWB,\n type: SnackBarType.FAILURE,\n });\n return;\n }\n\n if (isErcSelector && (!selectedEventCode || !selectedEventCode.code)) {\n // showToast('Empty AWB Code');\n setSnackBar({\n show: true,\n message: ER_MISSING.replace('<shipment_id>', scan),\n type: SnackBarType.FAILURE,\n });\n return;\n }\n\n setShowProgress(true);\n let isValidated = await checkForValidation(scan, props.validation);\n\n if (isValidated) {\n // NEW CODE\n try {\n const eventType = getEventType(\n eventCodeItems || [],\n selectedEventCode?.code || ''\n );\n\n const result = await DispatchExecutor.updateWIMapping(\n prefixedMergedObjectiveId,\n scan,\n {\n ec: selectedEventCode?.code || '',\n rc: selectedReason?.code || '',\n },\n props.scanToMerge || false\n );\n\n if ('data' in result) {\n const data: IDispatch.MappingUpdateResponse = result.data;\n const {\n message: { title, subTitle },\n } = data;\n if (subTitle) {\n setSnackBar({\n show: true,\n message: `#${scan}\\n${title}\\n${subTitle}`,\n type: SnackBarType.WARNING,\n });\n } else {\n setSnackBar({\n show: true,\n message: `#${scan}\\nShipment updated successfully!`,\n type: SnackBarType.SUCCESS,\n });\n }\n\n setScanText('');\n\n const _scanOutput = await getUpdatedScanETOutput(\n mergedScanETOutput,\n result,\n eventType,\n selectedEventCode?.code || '',\n selectedReason?.code || '',\n props.route,\n {\n jobId: data.jobId,\n displayInfo: data.displayInfo,\n isScan: true,\n scanId: scan,\n }\n );\n\n // UPDATE SHARED PREFERENCE\n updateSharedPreference(\n eventType,\n data.mwId,\n prefixedMergedObjectiveId\n );\n\n // UPDATE SCAN OUTPUT\n setMergedScanETOutput(_scanOutput);\n\n // UPDATE THE Count\n setShipmentCount((_shipmentCount) => {\n return {\n scannedCount: _shipmentCount.scannedCount + data.scanned,\n totalCount: _shipmentCount.totalCount + data.total,\n };\n });\n }\n } catch (error: any) {\n if (props.exitOnError) {\n setShowProgress(false);\n\n const etOutput = await getScanETOutput(\n mergedScanETOutput,\n props.mergedObjectiveId,\n eventCodeItems || [],\n props.defaultERC,\n DeliverState.CANCELLED,\n false,\n 0\n );\n\n props.onSubmitET(etOutput);\n } else {\n setSnackBar({\n show: true,\n ...getErrorMessage(scan, error),\n });\n }\n }\n } else {\n if (props.exitOnError) {\n setShowProgress(false);\n const etOutput = await getScanETOutput(\n mergedScanETOutput,\n props.mergedObjectiveId,\n eventCodeItems || [],\n props.defaultERC,\n DeliverState.CANCELLED,\n false,\n 0\n );\n\n props.onSubmitET(etOutput);\n } else {\n setSnackBar({\n show: true,\n message: INVALID_SHIPMENT,\n type: SnackBarType.FAILURE,\n });\n }\n }\n\n setShowProgress(false);\n };\n\n const renderActionButtons = () => {\n // NEW CODE\n return (\n <View>\n <Button\n labelStyle={CommonStyles.nextButtonLabel}\n style={CommonStyles.nextButton}\n uppercase={false}\n onPress={() => {\n setSnackBar({\n show: false,\n message: '',\n type: SnackBarType.SUCCESS,\n });\n setShowScanList(!showScanList);\n }}\n >\n {`View Summary`}\n </Button>\n </View>\n );\n };\n\n // Handle back-button click when scanList was being viewed\n useFocusEffect(\n React.useCallback(() => {\n const onBackPress = () => {\n if (showScanList) {\n setShowScanList(false);\n return true;\n } else {\n setShowUnscannedShipmentModal(true);\n // props.navigation.goBack();\n return true;\n }\n };\n BackHandler.addEventListener('hardwareBackPress', onBackPress);\n return () =>\n BackHandler.removeEventListener('hardwareBackPress', onBackPress);\n }, [showScanList])\n );\n\n useEffect(() => {\n if (showScanList) {\n props.navigation.setOptions({\n title: 'Summary',\n });\n } else {\n props.navigation.setOptions({\n title: `${props.title}`,\n });\n }\n }, [showScanList]);\n\n useEffect(() => {\n let timeout: ReturnType<typeof setTimeout>;\n if (!showScanner) {\n timeout = setTimeout(() => {\n setShowScanner(true);\n }, 500);\n }\n return () => {\n clearTimeout(timeout);\n };\n }, [showScanner]);\n\n const renderModal = () => {\n return (\n <GoBackModal\n showModal={showBackModal}\n setShowModal={setShowBackModal}\n onSuccess={async () => {\n const output = await getBaseETResponse(\n EntityCode.SCAN,\n false,\n GO_BACK_EVENT_CODE,\n '',\n props.mergedObjectiveId,\n ExecutionTaskID.SCAN\n );\n const _scanOutput = {\n ['default']: { output, count: shipmentCount.totalCount },\n };\n props.onSubmitET(_scanOutput);\n setShowBackModal(false);\n }}\n onFailure={() => setShowBackModal(false)}\n />\n );\n };\n\n // TODO: Modify to Modal Widget\n const renderUnscannedShipmentModal = () => {\n return (\n <Portal>\n <Modal\n visible={showUnscannedShipmentModal}\n dismissable={true}\n contentContainerStyle={[\n styles.modalContent,\n { marginStart: 40, marginEnd: 40 },\n ]}\n >\n <View style={styles.modalView}>\n <View\n style={{\n justifyContent: 'center',\n alignItems: 'center',\n marginBottom: 10,\n }}\n >\n <AntDesign name=\"exclamationcircleo\" size={40} color=\"#D97706\" />\n </View>\n <Text style={styles.titleText}>{'Exit scan flow?'}</Text>\n <Text\n style={[\n styles.unscannedShipmentModalSubText,\n { textAlign: 'center' },\n ]}\n >\n {'All the progress made will be lost'}\n </Text>\n\n <Button\n labelStyle={CommonStyles.nextButtonLabel}\n style={{ ...CommonStyles.nextButton, marginTop: 20 }}\n uppercase={false}\n onPress={() => setShowUnscannedShipmentModal(false)}\n >\n Continue Scanning\n </Button>\n <TouchableOpacity\n style={{\n ...CommonStyles.cancelButton,\n marginTop: 10,\n height: 40,\n borderRadius: 6,\n justifyContent: 'center',\n alignItems: 'center',\n }}\n onPress={async () => {\n setSnackBar({\n show: false,\n message: '',\n type: SnackBarType.SUCCESS,\n });\n\n // Clear Scan\n await Promise.all([\n clearScanOutput(prefixedMergedObjectiveId),\n DispatchExecutor.removeShipment(prefixedMergedObjectiveId),\n ]);\n\n props.navigation.goBack();\n }}\n >\n <Text style={CommonStyles.cancelButtonLabel}>Exit Scan Flow</Text>\n </TouchableOpacity>\n </View>\n </Modal>\n </Portal>\n );\n };\n\n const renderShipmentCount = () => {\n return (\n <View\n style={{\n justifyContent: 'flex-end',\n marginStart: 10,\n marginEnd: 10,\n marginBottom: 10,\n }}\n >\n {isMultiObjectiveEnable ||\n props.scanMode === 'SINGLE' ||\n props.validation.selectedIndex === 0 ||\n props.scanCountLimit ? (\n <Text>{`${shipmentCount.scannedCount}/${shipmentCount.totalCount} shipments scanned.`}</Text>\n ) : props.validation.selectedIndex === 1 ||\n props.validation.selectedIndex === 2 ? (\n <Text>{`${shipmentCount.scannedCount} shipments scanned.`}</Text>\n ) : null}\n </View>\n );\n };\n\n if (showScanList) {\n return (\n <Provider>\n {renderModal()}\n <View style={CommonStyles.mainContainer}>\n <SummaryPage\n ercSelector={props.ercSelector || []}\n eventCodeItems={eventCodeItems ?? []}\n handleSubmitET={handleSubmitET}\n shipmentCount={shipmentCount}\n updateShipmentCount={updateShipmentCount}\n scanProps={props}\n mergedScanETOutput={mergedScanETOutput}\n />\n </View>\n </Provider>\n );\n } else {\n return (\n <Provider>\n <View style={CommonStyles.mainContainer}>\n {renderModal()}\n {renderUnscannedShipmentModal()}\n <ProgressDialog visible={showProgress} label={PLEASE_WAIT} />\n <View style={{ flex: 1 }}>\n {props.ercSelector && (\n <View style={{ marginHorizontal: 16 }}>\n <View style={{ marginBottom: 16 }}>\n <ERDropDown\n title={'Event'}\n style={{ height: 50 }}\n selectedReason={selectedEventCode}\n items={eventCodeItems ?? []}\n onItemChange={(eventItem: ercItem | null) => {\n if (eventItem !== null) setSelectedEventCode(eventItem);\n }}\n />\n </View>\n <View style={{ marginVertical: 16 }}>\n <ERDropDown\n title={'Reason'}\n style={{ height: 50 }}\n selectedReason={selectedReason}\n disabled={\n !reasonItems || !reasonItems?.length ? true : false\n }\n items={reasonItems ?? []}\n onItemChange={(reasonItem: ercItem | null) => {\n if (reasonItem !== null) setSelectedReason(reasonItem);\n }}\n />\n </View>\n </View>\n )}\n <View style={styles.addShipmentStyle}>\n <TextInput\n returnKeyType={'done'}\n ref={refInput}\n onSubmitEditing={async () => {\n setScannedInput(scanText);\n }}\n value={scanText}\n onChangeText={setScanText}\n style={{\n borderBottomColor: '#DDDDDD',\n borderBottomWidth: 1,\n marginEnd: 20,\n flex: 1,\n fontSize: 16,\n fontFamily: Fonts.IBMPlexSans_600SemiBold,\n color: '#CECECE',\n }}\n placeholder={'Enter Shipment ID'}\n />\n <TouchableOpacity\n style={{\n alignSelf: 'center',\n justifyContent: 'center',\n paddingVertical: 9,\n paddingHorizontal: 17,\n borderWidth: 1,\n borderRadius: 6,\n borderColor: '#E0E3EB',\n }}\n onPress={async () => {\n setSnackBar({\n show: false,\n message: '',\n type: SnackBarType.SUCCESS,\n });\n setScannedInput(scanText);\n }}\n >\n <Text\n style={{\n fontSize: 14,\n fontFamily: Fonts.IBMPlexSans_500Medium,\n lineHeight: 20,\n color: '#3D445C',\n }}\n >\n {'APPLY'}\n </Text>\n </TouchableOpacity>\n </View>\n <View style={styles.cameraContainer}>\n {showScanner ? (\n <CScanner\n barCodeTypes={getBarCodeTypes(props)}\n onScanned={_handleBarCodeScanned}\n />\n ) : null}\n </View>\n </View>\n <View style={{ justifyContent: 'flex-end' }}>\n <SnackBarCustom\n type={snackBar.type}\n message={`${snackBar.message}`}\n visible={snackBar.show}\n onDismiss={() => {\n setSnackBar({\n show: false,\n message: '',\n type: SnackBarType.SUCCESS,\n });\n }}\n customBottom={20}\n />\n </View>\n <View style={styles.bottomView}>\n {renderShipmentCount()}\n {renderActionButtons()}\n </View>\n </View>\n </Provider>\n );\n }\n};\n\nexport default ScanET;\n\nconst styles = StyleSheet.create({\n cameraContainer: {\n flex: 1,\n backgroundColor: '#000',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: -1,\n },\n addShipmentStyle: {\n marginTop: 32,\n marginBottom: 10,\n marginHorizontal: 16,\n flexDirection: 'row',\n zIndex: -1,\n },\n bottomView: {\n paddingBottom: 16,\n justifyContent: 'flex-end',\n marginVertical: 10,\n marginHorizontal: 16,\n },\n addButtonLabel: {\n color: '#3D445C',\n fontFamily: Fonts.IBMPlexSans_600SemiBold,\n fontSize: 16,\n fontWeight: '600',\n lineHeight: 20,\n letterSpacing: 1.56,\n textAlign: 'center',\n fontStyle: 'normal',\n },\n centerView: {\n flex: 1,\n justifyContent: 'center',\n alignContent: 'center',\n },\n modalContent: {\n marginStart: 60,\n marginEnd: 60,\n flex: 1,\n marginBottom: 60,\n },\n modalView: {\n backgroundColor: 'white',\n padding: 15,\n borderRadius: 9,\n },\n titleText: {\n justifyContent: 'center',\n fontFamily: Fonts.IBMPlexSans_600SemiBold,\n fontStyle: 'normal',\n fontSize: 14,\n lineHeight: 20,\n textAlign: 'center',\n color: '#111111',\n marginBottom: 10,\n },\n subText: {\n justifyContent: 'center',\n fontFamily: 'IBMPlexSans_400Regular',\n fontStyle: 'normal',\n fontSize: 14,\n letterSpacing: 0.25,\n lineHeight: 20,\n textAlign: 'center',\n color: '#000000',\n marginBottom: 10,\n },\n bottomButtons: {\n justifyContent: 'space-between',\n flexDirection: 'row',\n marginTop: 8,\n },\n unscannedShipmentModalSubText: {\n justifyContent: 'center',\n fontFamily: 'IBMPlexSans_400Regular',\n fontStyle: 'normal',\n fontSize: 14,\n letterSpacing: 0.25,\n lineHeight: 20,\n color: '#000000',\n marginBottom: 10,\n },\n modalDefaultERCStyle: {\n color: '#A3AAC2',\n fontSize: 14,\n fontFamily: Fonts.IBMPlexSans_400Regular,\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["View","Text","StyleSheet","TextInput","TouchableOpacity","BackHandler","React","useEffect","useRef","useState","useLayoutEffect","DeliverState","CommonStyles","Fonts","ProgressDialog","PLEASE_WAIT","CScanner","checkForValidation","clearScanOutput","getBarCodeTypes","getErrorMessage","getEventType","getScanETOutput","getScanMappedOutput","getSplitIds","getUpdatedScanETOutput","resetObjective","triggerScanEvent","updateSharedPreference","SnackBarCustom","SnackBarType","Button","Modal","Portal","Provider","useFocusEffect","isEmptyOrBlank","PROCEED_STATUS","getBaseETResponse","EntityCode","ExecutionTaskID","EMPTY_AWB","ER_MISSING","INVALID_SHIPMENT","ERDropDown","getErcDropDownItems","GO_BACK_EVENT_CODE","Icon","DispatchExecutor","SummaryPage","RouteParams","BULK_DATA_LIMIT","AntDesign","GoBackModal","hasGoBackConnector","ScanET","props","_props$wfMeta","_props$additionalMult","_props$meta","prefixedMergedObjectiveId","route","params","ROOT_META_DATA","isScreenLoaded","setIsScreenLoaded","ercSelectorLoaded","shipmentCountLoaded","previousDataLoaded","isErcSelector","ercSelector","isMultiObjectiveEnable","wfMeta","enableMultiObjectiveFlow","allowMultiObjectivePartial","additionalMultiConfig","validationType","SINGLE_MODE_COUNT","meta","singleModeCount","showScanList","setShowScanList","showProgress","setShowProgress","showScanner","setShowScanner","scanText","setScanText","snackBar","setSnackBar","show","type","SUCCESS","message","scansMap","setScansMap","Map","scannedInput","setScannedInput","refInput","selectedReason","setSelectedReason","selectedEventCode","setSelectedEventCode","reasonItems","setReasonItems","eventCodeItems","setEventCodeItems","showBackModal","setShowBackModal","showUnscannedShipmentModal","setShowUnscannedShipmentModal","shipmentCount","setShipmentCount","scannedCount","totalCount","mergedScanETOutput","setMergedScanETOutput","fetchShipmentCount","_shipmentCount","getScannedShipmentsCount","mergedObjectiveId","error","fetchPreviousScannedData","scanOutput","fetchERC","response","fetchAllData","Promise","all","navigation","setOptions","title","headerLeft","createElement","onPress","_props$taskMeta","taskMeta","enableGoBack","applicableReasons","name","color","size","style","paddingRight","paddingTop","code","length","undefined","addScans","handleSubmitET","status","count","erc","DELIVER_LATER","goBack","etOutput","defaultERC","DELIVERE_LATER","onSubmitET","eventCode","ec","reasonCode","rc","DELIVER_NOW","hasNextPage","offset","limit","scans","data","scannedData","filterWFIData","taskName","forEach","scan","push","groupId","displayInfo","jobId","shipmentFlow","scanValue","scannableId","output","_handleBarCodeScanned","updateShipmentCount","scannedCountChanged","totalCountChanged","arguments","currentIds","Set","FAILURE","replace","isValidated","validation","eventType","result","updateWIMapping","scanToMerge","subTitle","WARNING","_scanOutput","isScan","scanId","mwId","scanned","total","exitOnError","CANCELLED","renderActionButtons","labelStyle","nextButtonLabel","nextButton","uppercase","useCallback","onBackPress","addEventListener","removeEventListener","timeout","setTimeout","clearTimeout","renderModal","showModal","setShowModal","onSuccess","SCAN","onFailure","renderUnscannedShipmentModal","visible","dismissable","contentContainerStyle","styles","modalContent","marginStart","marginEnd","modalView","justifyContent","alignItems","marginBottom","titleText","unscannedShipmentModalSubText","textAlign","marginTop","cancelButton","height","borderRadius","removeShipment","cancelButtonLabel","renderShipmentCount","scanMode","selectedIndex","scanCountLimit","mainContainer","scanProps","label","flex","marginHorizontal","items","onItemChange","eventItem","marginVertical","disabled","reasonItem","addShipmentStyle","returnKeyType","ref","onSubmitEditing","value","onChangeText","borderBottomColor","borderBottomWidth","fontSize","fontFamily","IBMPlexSans_600SemiBold","placeholder","alignSelf","paddingVertical","paddingHorizontal","borderWidth","borderColor","IBMPlexSans_500Medium","lineHeight","cameraContainer","barCodeTypes","onScanned","onDismiss","customBottom","bottomView","create","backgroundColor","zIndex","flexDirection","paddingBottom","addButtonLabel","fontWeight","letterSpacing","fontStyle","centerView","alignContent","padding","subText","bottomButtons","modalDefaultERCStyle","IBMPlexSans_400Regular"],"sources":["ScanET.tsx"],"sourcesContent":["import {\n View,\n Text,\n StyleSheet,\n TextInput,\n TouchableOpacity,\n BackHandler,\n} from 'react-native';\nimport React, { useEffect, useRef, useState, useLayoutEffect } from 'react';\nimport { DeliverState, type ScannerInput } from './ScanSchema';\nimport {\n CommonStyles,\n Fonts,\n} from '../../../styles/executionTasks/CommonStyles';\nimport ProgressDialog from '../../widgets/ProgressDialog';\nimport { PLEASE_WAIT } from '../../../res/strings';\nimport CScanner from './sub_components/CScanner';\nimport {\n checkForValidation,\n clearScanOutput,\n getBarCodeTypes,\n getErrorMessage,\n getEventType,\n getScanETOutput,\n getScanMappedOutput,\n getScannedItemCount,\n getShipmentData,\n getSplitIds,\n getUpdatedScanETOutput,\n isETCompleted,\n isReplacement,\n resetObjective,\n triggerScanEvent,\n updatePendingSharedPreference,\n updateSharedPreference,\n} from './utils';\nimport SnackBarCustom, { SnackBarType } from '../../widgets/SnackBarCustom';\nimport { Button, Modal, Portal, Provider } from 'react-native-paper';\nimport { useFocusEffect } from '@react-navigation/native';\nimport { isEmptyOrBlank } from '../../../utils/utils';\nimport {\n BlindScan,\n MergedScan,\n PROCEED_STATUS,\n SCAN_STATUS,\n} from './interfaces';\nimport { getBaseETResponse } from '../../../utils/ExecTaskUtils';\nimport {\n EntityCode,\n ExecutionTaskID,\n} from '../../../models/execTasks/ETConfig';\nimport { getEventCodeByET } from '../../../manager/dispatchCodes/EventCodeContainer';\nimport {\n ADD_SHIPMENT,\n EMPTY_AWB,\n ER_MISSING,\n INVALID_SHIPMENT,\n MAX_SHIPMENT_REACHED,\n SHIPMENT_ALREADY_ADDED,\n} from './constants';\nimport ERDropDown, { ercItem } from './sub_components/ERDropDown';\nimport {\n getDefaultERCLabel,\n getErcDropDownItems,\n} from './sub_components/DropDownUtils';\nimport {\n GO_BACK_EVENT_CODE,\n REASON_NOT_USED,\n} from '../../../constants/constants';\nimport Icon from 'react-native-vector-icons/MaterialIcons';\nimport type { ScannerOutput } from './ScanSchema';\nimport {\n DispatchExecutor,\n IDispatch,\n} from '@os1-platform/platform-coreos-execution-engine-sdk';\nimport SummaryPage from './sub_components/SummaryPage';\nimport { RouteParams } from '../../../ui/uiConfig/RouteParams';\nimport { BULK_DATA_LIMIT } from '../../../manager/syncmanager/constants';\nimport { AntDesign } from '@expo/vector-icons';\nimport GoBackModal from '../../../components/widgets/GoBackModal';\nimport { hasGoBackConnector } from '../../../components/utils';\n\n/**\n *\n * @param props interface ScannerInput\n * @returns JSX\n *\n * props has key validation which defines different UI cases\n * validation: interface Validation\n *\n * when validation.selectedIndex === 0 => Receives validation.logic as array of scans\n * when validation.selectedIndex === 1 => Receives validation.logic as validation regex\n * when validation.selectedIndex === 0 => Receives validation.logic as API\n */\n\nconst ScanET = (props: ScannerInput) => {\n const prefixedMergedObjectiveId =\n props.route.params[RouteParams.ROOT_META_DATA].prefixedMergedObjectiveId;\n\n const [isScreenLoaded, setIsScreenLoaded] = useState({\n ercSelectorLoaded: false,\n shipmentCountLoaded: false,\n previousDataLoaded: false,\n });\n const isErcSelector = props.ercSelector ? true : false;\n const isMultiObjectiveEnable = props.wfMeta?.enableMultiObjectiveFlow;\n const allowMultiObjectivePartial =\n (isMultiObjectiveEnable === true &&\n props.additionalMultiConfig?.validationType === 'SUBSET_OF_LIST') ||\n false;\n\n const SINGLE_MODE_COUNT: number = props.meta?.singleModeCount || 1;\n const [showScanList, setShowScanList] = useState(false); // To show shipments List\n const [showProgress, setShowProgress] = useState(false); // To pause implementation while a barcode was scanned\n const [showScanner, setShowScanner] = useState(true); // To show the barcode scanner on screen and refresh on successful scan\n const [scanText, setScanText] = useState(''); // Show scan text\n const [snackBar, setSnackBar] = useState({\n show: false,\n type: SnackBarType.SUCCESS,\n message: '',\n });\n\n /**\n * scansMap: is used to add the scanned shipment related data on each scan.\n * scansMap data structure (MergedScan) is the same format as the output of scanET alongwith jobId,\n * which is used to create the final output of the ET and pass the scanned id to each merged objective.\n */\n\n const [scansMap, setScansMap] = useState<Map<string, MergedScan>>(new Map());\n\n const [scannedInput, setScannedInput] = useState<string>(''); // state to capture scan\n const refInput = useRef<TextInput>(null);\n const [selectedReason, setSelectedReason] = useState<ercItem>(); // reason code from ercSelector\n const [selectedEventCode, setSelectedEventCode] = useState<ercItem>(); // reason code from ercSelector\n const [reasonItems, setReasonItems] = useState<ercItem[]>(); // list of reason codes\n const [eventCodeItems, setEventCodeItems] = useState<ercItem[]>(); // list of event codes\n\n const [showBackModal, setShowBackModal] = useState(false);\n const [showUnscannedShipmentModal, setShowUnscannedShipmentModal] =\n useState(false);\n\n const [shipmentCount, setShipmentCount] = useState({\n scannedCount: 0,\n totalCount: 0,\n });\n const [mergedScanETOutput, setMergedScanETOutput] = useState<ScannerOutput>(\n {}\n );\n\n const fetchShipmentCount = async () => {\n try {\n const _shipmentCount = await DispatchExecutor.getScannedShipmentsCount(\n props.mergedObjectiveId\n );\n if (_shipmentCount) {\n setShipmentCount({\n scannedCount: _shipmentCount.scannedCount || 0,\n totalCount: _shipmentCount.totalCount || 0,\n });\n // setIsScreenLoaded((isScreenLoaded) => ({\n // ...isScreenLoaded,\n // shipmentCountLoaded: true,\n // }));\n }\n } catch (error) {}\n };\n\n const fetchPreviousScannedData = async () => {\n try {\n const scanOutput = (await getScanMappedOutput()) || {};\n setMergedScanETOutput(scanOutput[prefixedMergedObjectiveId] || {});\n } catch (error) {}\n };\n\n const fetchERC = async () => {\n if (props.ercSelector) {\n try {\n let response = await getErcDropDownItems(\n 'EVENT',\n props.ercSelector || []\n );\n setEventCodeItems(response);\n setSelectedEventCode(response[0]);\n } catch (error) {}\n }\n };\n\n const fetchAllData = async () => {\n try {\n await Promise.all([\n fetchERC(),\n fetchPreviousScannedData(),\n fetchShipmentCount(),\n ]);\n } catch (error) {\n } finally {\n setIsScreenLoaded({\n ercSelectorLoaded: true,\n previousDataLoaded: true,\n shipmentCountLoaded: true,\n });\n }\n };\n\n useEffect(() => {\n fetchAllData();\n }, []);\n\n useEffect(() => props.showProgress(true), []);\n useEffect(() => {\n if (\n isScreenLoaded.ercSelectorLoaded &&\n isScreenLoaded.previousDataLoaded &&\n isScreenLoaded.shipmentCountLoaded\n ) {\n props.showProgress(false);\n }\n }, [isScreenLoaded]);\n\n // const [defaultERCLabel, setDefaultERCLabel] = useState({\n // eventCode: '',\n // reasonCode: '',\n // });\n // const fetchLabel = async () => {\n // const { eventCode, reasonCode } = await getDefaultERCLabel(\n // props.defaultERC\n // );\n // setDefaultERCLabel({ eventCode, reasonCode });\n // };\n // useEffect(() => {\n // fetchLabel();\n // }, [props.defaultERC]);\n\n useLayoutEffect(() => {\n props.navigation.setOptions({\n title: props.title,\n headerLeft: () => {\n return (\n <Icon\n onPress={() => {\n if (\n props.taskMeta?.enableGoBack &&\n hasGoBackConnector(props.applicableReasons)\n )\n setShowBackModal(true);\n else {\n if (showScanList) setShowScanList(false);\n else setShowUnscannedShipmentModal(true);\n }\n }}\n name=\"arrow-back\"\n color={'black'}\n size={25}\n style={{\n paddingRight: 15,\n paddingTop: 5,\n }}\n />\n );\n },\n });\n }, [props.navigation, props.title, showScanList]);\n\n useEffect(() => {\n selectedEventCode?.code &&\n (async () => {\n let response = await getErcDropDownItems(\n 'REASON',\n props.ercSelector || [],\n selectedEventCode?.code\n );\n if (response.length) {\n setReasonItems(response);\n setSelectedReason(response[0]);\n } else {\n setReasonItems([]);\n setSelectedReason(undefined);\n }\n })();\n }, [selectedEventCode?.code]);\n\n useEffect(() => {\n scannedInput &&\n (async () => {\n await addScans();\n setScannedInput('');\n })();\n }, [scannedInput]);\n\n const handleSubmitET = async (\n status: PROCEED_STATUS,\n count: number,\n erc: { ec: string; rc: string } | undefined\n ) => {\n if (status === PROCEED_STATUS.DELIVER_LATER) {\n if (shipmentCount.scannedCount === 0) {\n props.navigation.goBack();\n } else {\n const etOutput = await getScanETOutput(\n mergedScanETOutput,\n props.mergedObjectiveId,\n eventCodeItems || [],\n props.defaultERC,\n DeliverState.DELIVERE_LATER,\n true,\n count\n );\n props.onSubmitET(etOutput);\n }\n } else {\n if (shipmentCount.scannedCount < shipmentCount.totalCount) {\n if (erc) {\n const prefixedMergedObjectiveId =\n props.route.params[RouteParams.ROOT_META_DATA]\n .prefixedMergedObjectiveId;\n\n const etOutput = await getScanETOutput(\n mergedScanETOutput,\n props.mergedObjectiveId,\n eventCodeItems || [],\n { eventCode: erc.ec, reasonCode: erc.rc },\n DeliverState.DELIVER_NOW,\n true,\n count\n );\n\n let hasNextPage = true;\n let offset = 0;\n const limit = BULK_DATA_LIMIT;\n let scans: IDispatch.IQueryWFIResponse = { data: [], totalCount: 0 };\n\n const scannedData: any = [];\n do {\n scans = await DispatchExecutor.filterWFIData(\n props.taskName,\n [prefixedMergedObjectiveId],\n limit,\n offset\n );\n\n scans.data.forEach((scan) => {\n scannedData.push({\n groupId: scan.displayInfo.groupId,\n jobId: scan.jobId,\n shipmentFlow: scan.displayInfo.shipmentFlow,\n scanValue: scan.scannableId,\n });\n });\n\n offset += limit;\n hasNextPage = scans.totalCount - offset + 1 > 0;\n } while (hasNextPage);\n\n triggerScanEvent(\n 'ON_SCAN',\n props.route,\n scannedData,\n etOutput['default'].output\n );\n\n // UPDATE PENDING IN SHARED PREFERENCE MERGED_SCAN_OUTPUT\n // updatePendingSharedPreference(eventType, prefixedMergedObjectiveId);\n\n props.onSubmitET(etOutput);\n }\n } else {\n if (shipmentCount.totalCount === 0) props.navigation.goBack();\n else {\n const etOutput = await getScanETOutput(\n mergedScanETOutput,\n props.mergedObjectiveId,\n eventCodeItems || [],\n props.defaultERC,\n DeliverState.DELIVER_NOW,\n false,\n count\n );\n props.onSubmitET(etOutput);\n }\n }\n }\n };\n\n const _handleBarCodeScanned = async (scan: string) => {\n if (!isEmptyOrBlank(scan)) {\n setShowScanner(false);\n setScannedInput(scan);\n }\n };\n\n const updateShipmentCount = async (\n scannedCountChanged: number,\n totalCountChanged: number,\n type: 'SCAN' | 'REMOVE' = 'SCAN'\n ) => {\n if (type === 'SCAN') {\n // UPDATE THE Count\n setShipmentCount((_shipmentCount) => {\n return {\n scannedCount: _shipmentCount.scannedCount + scannedCountChanged,\n totalCount: _shipmentCount.totalCount + totalCountChanged,\n };\n });\n } else {\n const currentIds = [\n ...new Set([\n ...props.mergedObjectiveId,\n ...getSplitIds(mergedScanETOutput),\n prefixedMergedObjectiveId,\n ]),\n ];\n const _shipmentCount = await DispatchExecutor.getScannedShipmentsCount(\n currentIds\n );\n if (_shipmentCount) {\n setShipmentCount({\n scannedCount: _shipmentCount.scannedCount || 0,\n totalCount: _shipmentCount.totalCount || 0,\n });\n // setIsScreenLoaded((isScreenLoaded) => ({\n // ...isScreenLoaded,\n // shipmentCountLoaded: true,\n // }));\n }\n }\n };\n\n const addScans = async () => {\n const scan = scannedInput;\n if (isEmptyOrBlank(scan)) {\n // showToast('Empty AWB Code');\n setSnackBar({\n show: true,\n message: EMPTY_AWB,\n type: SnackBarType.FAILURE,\n });\n return;\n }\n\n if (isErcSelector && (!selectedEventCode || !selectedEventCode.code)) {\n // showToast('Empty AWB Code');\n setSnackBar({\n show: true,\n message: ER_MISSING.replace('<shipment_id>', scan),\n type: SnackBarType.FAILURE,\n });\n return;\n }\n\n setShowProgress(true);\n let isValidated = await checkForValidation(scan, props.validation);\n\n if (isValidated) {\n // NEW CODE\n try {\n const eventType = getEventType(\n eventCodeItems || [],\n selectedEventCode?.code || ''\n );\n\n const result = await DispatchExecutor.updateWIMapping(\n prefixedMergedObjectiveId,\n scan,\n {\n ec: selectedEventCode?.code || '',\n rc: selectedReason?.code || '',\n },\n props.scanToMerge || false\n );\n\n if ('data' in result) {\n const data: IDispatch.MappingUpdateResponse = result.data;\n const {\n message: { title, subTitle },\n } = data;\n if (subTitle) {\n setSnackBar({\n show: true,\n message: `#${scan}\\n${title}\\n${subTitle}`,\n type: SnackBarType.WARNING,\n });\n } else {\n setSnackBar({\n show: true,\n message: `#${scan}\\nShipment updated successfully!`,\n type: SnackBarType.SUCCESS,\n });\n }\n\n setScanText('');\n\n const _scanOutput = await getUpdatedScanETOutput(\n mergedScanETOutput,\n result,\n eventType,\n selectedEventCode?.code || '',\n selectedReason?.code || '',\n props.route,\n {\n jobId: data.jobId,\n displayInfo: data.displayInfo,\n isScan: true,\n scanId: scan,\n }\n );\n\n // UPDATE SHARED PREFERENCE\n updateSharedPreference(\n eventType,\n data.mwId,\n prefixedMergedObjectiveId\n );\n\n // UPDATE SCAN OUTPUT\n setMergedScanETOutput(_scanOutput);\n\n // UPDATE THE Count\n setShipmentCount((_shipmentCount) => {\n return {\n scannedCount: _shipmentCount.scannedCount + data.scanned,\n totalCount: _shipmentCount.totalCount + data.total,\n };\n });\n }\n } catch (error: any) {\n if (props.exitOnError) {\n setShowProgress(false);\n\n const etOutput = await getScanETOutput(\n mergedScanETOutput,\n props.mergedObjectiveId,\n eventCodeItems || [],\n props.defaultERC,\n DeliverState.CANCELLED,\n false,\n 0\n );\n\n props.onSubmitET(etOutput);\n } else {\n setSnackBar({\n show: true,\n ...getErrorMessage(scan, error),\n });\n }\n }\n } else {\n if (props.exitOnError) {\n setShowProgress(false);\n const etOutput = await getScanETOutput(\n mergedScanETOutput,\n props.mergedObjectiveId,\n eventCodeItems || [],\n props.defaultERC,\n DeliverState.CANCELLED,\n false,\n 0\n );\n\n props.onSubmitET(etOutput);\n } else {\n setSnackBar({\n show: true,\n message: INVALID_SHIPMENT,\n type: SnackBarType.FAILURE,\n });\n }\n }\n\n setShowProgress(false);\n };\n\n const renderActionButtons = () => {\n // NEW CODE\n return (\n <View>\n <Button\n labelStyle={CommonStyles.nextButtonLabel}\n style={CommonStyles.nextButton}\n uppercase={false}\n onPress={() => {\n setSnackBar({\n show: false,\n message: '',\n type: SnackBarType.SUCCESS,\n });\n setShowScanList(!showScanList);\n }}\n >\n {`View Summary`}\n </Button>\n </View>\n );\n };\n\n // Handle back-button click when scanList was being viewed\n useFocusEffect(\n React.useCallback(() => {\n const onBackPress = () => {\n if (showScanList) {\n setShowScanList(false);\n return true;\n } else {\n setShowUnscannedShipmentModal(true);\n // props.navigation.goBack();\n return true;\n }\n };\n BackHandler.addEventListener('hardwareBackPress', onBackPress);\n return () =>\n BackHandler.removeEventListener('hardwareBackPress', onBackPress);\n }, [showScanList])\n );\n\n useEffect(() => {\n if (showScanList) {\n props.navigation.setOptions({\n title: 'Summary',\n });\n } else {\n props.navigation.setOptions({\n title: `${props.title}`,\n });\n }\n }, [showScanList]);\n\n useEffect(() => {\n let timeout: ReturnType<typeof setTimeout>;\n if (!showScanner) {\n timeout = setTimeout(() => {\n setShowScanner(true);\n }, 500);\n }\n return () => {\n clearTimeout(timeout);\n };\n }, [showScanner]);\n\n const renderModal = () => {\n return (\n <GoBackModal\n showModal={showBackModal}\n setShowModal={setShowBackModal}\n onSuccess={async () => {\n const output = await getBaseETResponse(\n EntityCode.SCAN,\n false,\n GO_BACK_EVENT_CODE,\n '',\n props.mergedObjectiveId,\n ExecutionTaskID.SCAN\n );\n const _scanOutput = {\n ['default']: { output, count: shipmentCount.totalCount },\n };\n props.onSubmitET(_scanOutput);\n setShowBackModal(false);\n }}\n onFailure={() => setShowBackModal(false)}\n />\n );\n };\n\n // TODO: Modify to Modal Widget\n const renderUnscannedShipmentModal = () => {\n return (\n <Portal>\n <Modal\n visible={showUnscannedShipmentModal}\n dismissable={true}\n contentContainerStyle={[\n styles.modalContent,\n { marginStart: 40, marginEnd: 40 },\n ]}\n >\n <View style={styles.modalView}>\n <View\n style={{\n justifyContent: 'center',\n alignItems: 'center',\n marginBottom: 10,\n }}\n >\n <AntDesign name=\"exclamationcircleo\" size={40} color=\"#D97706\" />\n </View>\n <Text style={styles.titleText}>{'Exit scan flow?'}</Text>\n <Text\n style={[\n styles.unscannedShipmentModalSubText,\n { textAlign: 'center' },\n ]}\n >\n {'All the progress made will be lost'}\n </Text>\n\n <Button\n labelStyle={CommonStyles.nextButtonLabel}\n style={{ ...CommonStyles.nextButton, marginTop: 20 }}\n uppercase={false}\n onPress={() => setShowUnscannedShipmentModal(false)}\n >\n Continue Scanning\n </Button>\n <TouchableOpacity\n style={{\n ...CommonStyles.cancelButton,\n marginTop: 10,\n height: 40,\n borderRadius: 6,\n justifyContent: 'center',\n alignItems: 'center',\n }}\n onPress={async () => {\n setSnackBar({\n show: false,\n message: '',\n type: SnackBarType.SUCCESS,\n });\n\n // Trigger Scan Removal Event\n await resetObjective(props);\n\n // Clear Scan\n await Promise.all([\n clearScanOutput(prefixedMergedObjectiveId),\n DispatchExecutor.removeShipment(prefixedMergedObjectiveId),\n ]);\n\n props.navigation.goBack();\n }}\n >\n <Text style={CommonStyles.cancelButtonLabel}>Exit Scan Flow</Text>\n </TouchableOpacity>\n </View>\n </Modal>\n </Portal>\n );\n };\n\n const renderShipmentCount = () => {\n return (\n <View\n style={{\n justifyContent: 'flex-end',\n marginStart: 10,\n marginEnd: 10,\n marginBottom: 10,\n }}\n >\n {isMultiObjectiveEnable ||\n props.scanMode === 'SINGLE' ||\n props.validation.selectedIndex === 0 ||\n props.scanCountLimit ? (\n <Text>{`${shipmentCount.scannedCount}/${shipmentCount.totalCount} shipments scanned.`}</Text>\n ) : props.validation.selectedIndex === 1 ||\n props.validation.selectedIndex === 2 ? (\n <Text>{`${shipmentCount.scannedCount} shipments scanned.`}</Text>\n ) : null}\n </View>\n );\n };\n\n if (showScanList) {\n return (\n <Provider>\n {renderModal()}\n <View style={CommonStyles.mainContainer}>\n <SummaryPage\n ercSelector={props.ercSelector || []}\n eventCodeItems={eventCodeItems ?? []}\n handleSubmitET={handleSubmitET}\n shipmentCount={shipmentCount}\n updateShipmentCount={updateShipmentCount}\n scanProps={props}\n mergedScanETOutput={mergedScanETOutput}\n />\n </View>\n </Provider>\n );\n } else {\n return (\n <Provider>\n <View style={CommonStyles.mainContainer}>\n {renderModal()}\n {renderUnscannedShipmentModal()}\n <ProgressDialog visible={showProgress} label={PLEASE_WAIT} />\n <View style={{ flex: 1 }}>\n {props.ercSelector && (\n <View style={{ marginHorizontal: 16 }}>\n <View style={{ marginBottom: 16 }}>\n <ERDropDown\n title={'Event'}\n style={{ height: 50 }}\n selectedReason={selectedEventCode}\n items={eventCodeItems ?? []}\n onItemChange={(eventItem: ercItem | null) => {\n if (eventItem !== null) setSelectedEventCode(eventItem);\n }}\n />\n </View>\n <View style={{ marginVertical: 16 }}>\n <ERDropDown\n title={'Reason'}\n style={{ height: 50 }}\n selectedReason={selectedReason}\n disabled={\n !reasonItems || !reasonItems?.length ? true : false\n }\n items={reasonItems ?? []}\n onItemChange={(reasonItem: ercItem | null) => {\n if (reasonItem !== null) setSelectedReason(reasonItem);\n }}\n />\n </View>\n </View>\n )}\n <View style={styles.addShipmentStyle}>\n <TextInput\n returnKeyType={'done'}\n ref={refInput}\n onSubmitEditing={async () => {\n setScannedInput(scanText);\n }}\n value={scanText}\n onChangeText={setScanText}\n style={{\n borderBottomColor: '#DDDDDD',\n borderBottomWidth: 1,\n marginEnd: 20,\n flex: 1,\n fontSize: 16,\n fontFamily: Fonts.IBMPlexSans_600SemiBold,\n color: '#CECECE',\n }}\n placeholder={'Enter Shipment ID'}\n />\n <TouchableOpacity\n style={{\n alignSelf: 'center',\n justifyContent: 'center',\n paddingVertical: 9,\n paddingHorizontal: 17,\n borderWidth: 1,\n borderRadius: 6,\n borderColor: '#E0E3EB',\n }}\n onPress={async () => {\n setSnackBar({\n show: false,\n message: '',\n type: SnackBarType.SUCCESS,\n });\n setScannedInput(scanText);\n }}\n >\n <Text\n style={{\n fontSize: 14,\n fontFamily: Fonts.IBMPlexSans_500Medium,\n lineHeight: 20,\n color: '#3D445C',\n }}\n >\n {'APPLY'}\n </Text>\n </TouchableOpacity>\n </View>\n <View style={styles.cameraContainer}>\n {showScanner ? (\n <CScanner\n barCodeTypes={getBarCodeTypes(props)}\n onScanned={_handleBarCodeScanned}\n />\n ) : null}\n </View>\n </View>\n <View style={{ justifyContent: 'flex-end' }}>\n <SnackBarCustom\n type={snackBar.type}\n message={`${snackBar.message}`}\n visible={snackBar.show}\n onDismiss={() => {\n setSnackBar({\n show: false,\n message: '',\n type: SnackBarType.SUCCESS,\n });\n }}\n customBottom={20}\n />\n </View>\n <View style={styles.bottomView}>\n {renderShipmentCount()}\n {renderActionButtons()}\n </View>\n </View>\n </Provider>\n );\n }\n};\n\nexport default ScanET;\n\nconst styles = StyleSheet.create({\n cameraContainer: {\n flex: 1,\n backgroundColor: '#000',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: -1,\n },\n addShipmentStyle: {\n marginTop: 32,\n marginBottom: 10,\n marginHorizontal: 16,\n flexDirection: 'row',\n zIndex: -1,\n },\n bottomView: {\n paddingBottom: 16,\n justifyContent: 'flex-end',\n marginVertical: 10,\n marginHorizontal: 16,\n },\n addButtonLabel: {\n color: '#3D445C',\n fontFamily: Fonts.IBMPlexSans_600SemiBold,\n fontSize: 16,\n fontWeight: '600',\n lineHeight: 20,\n letterSpacing: 1.56,\n textAlign: 'center',\n fontStyle: 'normal',\n },\n centerView: {\n flex: 1,\n justifyContent: 'center',\n alignContent: 'center',\n },\n modalContent: {\n marginStart: 60,\n marginEnd: 60,\n flex: 1,\n marginBottom: 60,\n },\n modalView: {\n backgroundColor: 'white',\n padding: 15,\n borderRadius: 9,\n },\n titleText: {\n justifyContent: 'center',\n fontFamily: Fonts.IBMPlexSans_600SemiBold,\n fontStyle: 'normal',\n fontSize: 14,\n lineHeight: 20,\n textAlign: 'center',\n color: '#111111',\n marginBottom: 10,\n },\n subText: {\n justifyContent: 'center',\n fontFamily: 'IBMPlexSans_400Regular',\n fontStyle: 'normal',\n fontSize: 14,\n letterSpacing: 0.25,\n lineHeight: 20,\n textAlign: 'center',\n color: '#000000',\n marginBottom: 10,\n },\n bottomButtons: {\n justifyContent: 'space-between',\n flexDirection: 'row',\n marginTop: 8,\n },\n unscannedShipmentModalSubText: {\n justifyContent: 'center',\n fontFamily: 'IBMPlexSans_400Regular',\n fontStyle: 'normal',\n fontSize: 14,\n letterSpacing: 0.25,\n lineHeight: 20,\n color: '#000000',\n marginBottom: 10,\n },\n modalDefaultERCStyle: {\n color: '#A3AAC2',\n fontSize: 14,\n fontFamily: Fonts.IBMPlexSans_400Regular,\n },\n});\n"],"mappings":"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"}
@@ -8,7 +8,7 @@ import { getApiResponse, parseBody, parseKeyValue } from '../../../utils/ApiUtil
8
8
  import Logger, { LOG_TYPE } from '../../../utils/Logger';
9
9
  import { REASON_NOT_USED } from '../../../constants/constants';
10
10
  import Storage from '../../../utils/storage';
11
- import { SCAN_MERGED_OBJ_ID_OUTPUT, SHARED_PREFERENCE_SCAN_OUTPUT } from '../../../manager/syncmanager/constants';
11
+ import { BULK_DATA_LIMIT, SCAN_MERGED_OBJ_ID_OUTPUT, SHARED_PREFERENCE_SCAN_OUTPUT } from '../../../manager/syncmanager/constants';
12
12
  import { RouteParams } from '../../../ui/uiConfig/RouteParams';
13
13
  import dispatchEvent from '../../../events/EventDispatcher';
14
14
  import { DispatchExecutor, WIErrorCodes, ErrorCodeMessages } from '@os1-platform/platform-coreos-execution-engine-sdk';
@@ -723,4 +723,53 @@ export const getSplitIds = scanOutput => {
723
723
  export function filterERCItems(eventCodeItems, type) {
724
724
  return eventCodeItems.filter(erc => Boolean(erc.success) === (type === 'SUCCESS' ? true : false));
725
725
  }
726
+ export async function resetObjective(scanProps) {
727
+ const taskName = scanProps.taskName || '';
728
+ const deliveredMergedObjectiveIds = await fetchMergedObjectiveIdBasedOnStatus(SummaryPageTabs.DELIVERED, scanProps);
729
+ const undeliveredMergedObjectiveIds = await fetchMergedObjectiveIdBasedOnStatus(SummaryPageTabs.UNDELIVERED, scanProps);
730
+ if ((!deliveredMergedObjectiveIds || deliveredMergedObjectiveIds.length === 0) && (!undeliveredMergedObjectiveIds || undeliveredMergedObjectiveIds.length === 0)) {
731
+ return;
732
+ }
733
+ const scannedData = [];
734
+ if (deliveredMergedObjectiveIds && deliveredMergedObjectiveIds.length) {
735
+ let hasNextPage = true;
736
+ let offset = 0;
737
+ const limit = BULK_DATA_LIMIT;
738
+ let scans = {
739
+ data: [],
740
+ totalCount: 0
741
+ };
742
+ do {
743
+ scans = await DispatchExecutor.filterWFIData(taskName, deliveredMergedObjectiveIds, limit, offset);
744
+ scans.data.forEach(scan => {
745
+ scannedData.push({
746
+ scanValue: scan.scannableId
747
+ });
748
+ });
749
+ offset += limit;
750
+ hasNextPage = scans.totalCount - offset + 1 > 0;
751
+ } while (hasNextPage);
752
+ }
753
+ if (undeliveredMergedObjectiveIds && undeliveredMergedObjectiveIds.length) {
754
+ let hasNextPage = true;
755
+ let offset = 0;
756
+ const limit = BULK_DATA_LIMIT;
757
+ let scans = {
758
+ data: [],
759
+ totalCount: 0
760
+ };
761
+ do {
762
+ scans = await DispatchExecutor.filterWFIData(taskName, undeliveredMergedObjectiveIds, limit, offset);
763
+ scans.data.forEach(scan => {
764
+ scannedData.push({
765
+ scanValue: scan.scannableId
766
+ });
767
+ });
768
+ offset += limit;
769
+ hasNextPage = scans.totalCount - offset + 1 > 0;
770
+ } while (hasNextPage);
771
+ }
772
+ triggerScanEvent('ON_SCAN_REMOVE', scanProps.route, scannedData);
773
+ return;
774
+ }
726
775
  //# sourceMappingURL=utils.js.map