{"version":3,"sources":["components/Orders/Items/FormView.jsx","containers/Orders/Items/FormView.js","containers/Orders/Forms/FormView.js","components/Orders/Forms/FormView.jsx","components/Orders/Forms/index.jsx","containers/Orders/Forms/index.js","components/Orders/Items/Copy.jsx","containers/Orders/Items/Copy.js","components/Orders/Items/index.jsx","containers/Orders/Items/index.js","components/Orders/FormView/SideForm.jsx","containers/Orders/FormView/SideForm.js","components/Orders/FormView/PackingListNumber.jsx","components/Orders/FormView/index.jsx","containers/Orders/FormView/index.js","../node_modules/copy-to-clipboard/index.js","../node_modules/toggle-selection/index.js","components/SendEmail.jsx"],"names":["TAG_TYPES","FormView","React","constructor","props","_this","super","this","state","searchSuppliers","async","_suppliers$value$data","_suppliers$value","item","suppliers","getSuppliers","search","supplierIds","supplierId","nonStockSuppliersOnly","nonStock","setState","value","data","error","showError","getItemId","_this$state$item","_this$props$linkTarge","_this$props$linkTarge2","id","linkTargetRecord","orderItemId","find","Boolean","fetchItem","itemId","arguments","length","undefined","_newItemParams$quanti","_this$props$settingsT","_this$props$findByBar","quantityOrderedMin","customer","generalSettings","allowZeroQuantityOnOrderedItems","newItemParams","responses","Promise","all","getItem","catch","_this$props$onCancel","_this$props","onCancel","call","resourceNotFound","newItem","assetDisplayName","assetId","jobDisplayName","jobId","locationDisplayName","locationId","locationName","operatorDisplayName","operatorId","tagA","tagB","tagC","tagD","tagE","quantityOrdered","quantity","quantityIssued","quantityReceived","quantityReceivedDelta","price","barcode","concat","Date","now","packageSize","userName","user","populated","getSettings","type","settingsType","getLocations","cloneDeep","tagsEnabled","userIsInRoleSupplier","userIsInRoleDistributor","jobs","operators","assets","unitsOfMeasure","supplierDetailItems","coreUserSettings","tagSettings","tag1EnabledPurch","getJobs","jobIds","resolve","tag2EnabledPurch","getOperators","operatorIds","tag3EnabledPurch","getAssets","assetIds","getUnitsOfMeasure","findByBarcode","then","r","getSupplierDetailItems","assetName","trimStart","getAsset","displayName","operatorName","getOperator","jobName","getJob","tagListItems","getTagListItems","tagType","fieldSettings","copyTagValuesToAllItemsClientSettings","locations","get","setItemValue","name","produce","draft","validateQuantityOrdered","validateQuantityReceived","supplierDetailItem","one","supplierItemNumber","Object","assign","form","setFieldsValue","console","warn","set","setTagValue","key","pluralize","forEach","camelCase","beforeValidateFields","_operators$items","_jobs$items","_assets$items","promises","uniq","items","map","each","push","operator","job","asset","filteredTagListItems","filter","description","toLower","indexOf","handleSubmit","createHandleSubmit","debounce","DEBOUNCE","searchOperators","createSearchOperatorTag","searchJobs","createSearchJobTag","searchAssets","createSearchAssetTag","transformSaveItemParams","createOrderItemsTransformSaveItemParams","componentDidMount","render","_suppliers$items","_this$state$unitsOfMe","_this$state$locations","_operators$items2","_jobs$items3","_assets$items3","siblingRecords","tenantGroupIsCardinal","isNil","_jsx","_Spin","createLabel","createLabelFactory","createFieldDecorator","createFieldFactory","some","barcodeDisabled","quantityReceivedDisabled","parentRecord","orderIsReceivable","getUserPermission","lockedForCycleCount","notMultipleOfPackageSize","orderCalculationType","createDate","moment","startOf","receivedMoreThanOrdered","receivedLessThanOrdered","orderIsEditable","_jsxs","_Form","layout","colon","onSubmit","stopEvent","children","className","ValidationError","errors","validationErrors","_Tabs","activeKey","tabsActiveKey","onChange","TabPane","tab","t","forceRender","Row","Col","half","Item","label","extraRules","validateBarcode","validateDuplicateBarcode","_Input","disabled","Select","dropdownRender","createDropdownRender","onSearch","allowClear","readOnly","showSearch","Option","createFilterUserSuppliers","getOptionProps","packageSizeUom","xs","allowPricing","issuedPrice","_Tooltip","title","InputNumber","Math","max","min","cx","currency","receivingMode","suffix","Icon","color","RED","DatePicker","clone","add","leadTime","diff","disabledDate","source","HARD_SPACE","valuePropName","Checkbox","tag2","getFieldDecorator","rules","tag2Required","required","message","tag2Restricted","validator","rule","callback","_this$state$operators","_this$state$operators2","isEmpty","includes","Error","initialValue","validateTrigger","AutoComplete","defaultActiveFirstOption","dataSource","onPressEnter","autoComplete","Suffix","tag1","tag1Required","tag1Restricted","_jobs$items2","tag3","tag3Required","tag3Restricted","_assets$items2","enum","filterOption","filterByValue","_Fragment","_Button","onClick","placement","htmlType","loading","saveAndCloseButtonLoading","create","createChildFormViewContainer","actions","extraDispatchToProps","dispatch","params","locationActions","getItems","locationVendingTypes","jobActions","operatorActions","assetActions","supplierActions","getOptions","pageIndex","pageSize","active","tagListActions","unitsOfMeasureActions","productActions","createChildItemsDispatchToProps","supplierDetailActions","Component","createFormViewContainer","updateStatus","formInstanceId","submitItem","getUsers","userActions","getFormTemplate","formTemplateId","formTemplateActions","createFormInstanceAttachmentsDispatchToProps","objectType","objectId","createChildListViewComponent","entityName","entityNames","orders","childName","primaryLinkTarget","createButtonTextId","createButtonLinkTarget","formSize","formComponent","createDisabled","self","_self$props$parentRec","_self$props$parentRec2","getDeleteButtonTooltip","createChildListViewContainer","parentHasUnsavedChanges","selectedRowKeys","updateState","useImmer","path","_message","copied","unset","pick","orderItems","timeScanned","toJSON","serverTimeScanned","productId","inventoryBarcode","itemNumber","binLocation","manufacturer","addNonStockToProducts","unitOfMeasure","packageQuantityOrdered","taxable","taxableDescription","expedite","packagePrice","packageUnitOfMeasure","nonInventory","accountNumber","reworkType","isPersonalPurchase","receiveToOnHand2","deliveryDate","trackingNumber","carrier","locationBarcode","supplierName","scanType","procurementType","sourceCatalogName","Set","getSupplier","purchaseOrderNumbers","generatePurchaseOrderNumber","orderId","orderSuppliers","adjustments","confirmedDescription","freight","purchaseOrderNumber","shippingInstructions","calculateOrderTotals","response","saveOrder","order","creating","showClientNotifications","failureCount","drawerVisible","Drawer","size","linkTargets","orderRecord","visible","onClose","onSave","onSaveAndClose","connect","mapStateToProps","createAuthStateToProps","mapDispatchToProps","memoize","orderSupplierActions","QuantityReceived","styled","div","_templateObject","_taggedTemplateLiteral","filterItems","_self$state$filterDto","_self$state$filterDto2","_self$state$filterDto3","filterDto","usagePurchase","quantityUsed","quantityUsed2","allowSearching","allowCreate","allowDelete","allowCustomize","extraRowActions","Copy","movingItems","moveOrderItems","onMoveOrderItems","PrintLabel","tableCellComponents","isFinite","row","timestamp","_Popover","moduleSettings","enableInventory","content","dangerouslySetInnerHTML","__html","inventoryStatusInfo","style","visibility","orderIsReadOnly","width","str","match","editDrawerLinkTarget","rfqRecord","requisitionRecord","editDrawerLinkTargetText","editDrawerLinkTargetRecord","rfqId","tryParseInt","requisitionId","editDrawerVisible","editDrawerSaving","editDrawerLinkTargetReadOnly","reduce","acc","Filter","extraStateToProps","_props$settingsType","parentId","createSideFormComponent","getStorageKey","searchLanguageKey","addItemLanguageKey","addItemsLanguageKey","addItemSuccessLanguageKey","submitButtonLanguageKey","tagSettingsEnabledSuffix","dropDownButtonMenuItems","useInventoryBarcode","status","_Menu","dropdownButtonMenuClickHandler","e","_self$handlePunchoutC","_self$handleAddFromLi","_self$handleAddFromFi","Emitter","emit","handlePunchoutClick","handleAddFromListClick","handleAddFromFileClick","Search","createSideFormContainer","getBarcodes","validateFields","values","showValidationError","Modal","okText","onOk","autoFocus","handleFormChange","formHasChanged","requisitionerFields","_ref","setFields","promiseState","saveState","setStorageItem","_this$props$linkTarge3","relatedOrderId","_this$props$filterDto","_this$props$filterDto2","targetTenantId","tenantId","_this$props$filterDto3","_this$props$filterDto4","customerId","documentItems","billToAddressList","shipToAddressList","orderSupplierItems","formInstanceItems","getDocumentItems","request","domainObjectId","domainObjectType","documentType","getAddressList","getOrderItems","includeInventoryStatus","getOrderSupplierItems","getFormInstanceItems","populatedOrderItems","itemOriginal","documentItemsOriginal","orderItemsOriginal","orderItemsTotals","orderSupplierItemsOriginal","orderSupplierItemsTotals","formInstanceItemsOriginal","generatePurchaseOrderNumbers","refetchItem","_this$props$onCancel2","_this$props2","taxRate","refreshOrderTotals","saveItem","clientNotifications","getChangedItems","updating","saveDocumentItems","_error$data$clientNot","_error$data","handleSideFormSubmit","sideFormState","_params$quantity","_params$asset","_params$asset$name","_params$asset2","_params$asset3","_params$asset$barcode","_params$asset4","_params$job","_params$job$name","_params$job2","_params$job3","_ref2","_params$job$barcode","_params$job4","_params$location","_params$location$name","_params$location2","_params$location3","_params$location$barc","_params$location4","_params$operator","_params$operator$name","_params$operator2","_params$operator3","_params$operator$barc","_params$operator4","sideFormLoading","formButtonsDisabled","populateOrderItems","assetNumber","number","assetBarcode","jobNumber","jobBarcode","location","locationNumber","operatorNumber","operatorBarcode","seed","unshift","index","recalculateQuantityOrdered","refreshOrderSupplierItems","repopulateOrderItems","orderItemsLoading","_response$value$data$","handleOrderItemsChange","changed","copyTagValuesToAllItems","tagValues","getTagFieldNames","otherItems","deleting","issuedOrderItems","_notification","orderBy","findIndex","orderItemsSupplierIds","remove","handleOrderSuppliersItemsChange","existing","orderSupplierId","getSelectedSupplierId","_this$state$orderItem","orderItemsFilterDto","invokeAction","_this$props$onSave","_this$props3","invoke","action","_error$data$clientNot2","_error$data2","_this$props$onSave2","_this$props4","handleActionsMenuClick","_ref3","hasUnsavedChanges","acceptMimeType","pageTitle","fileExtension","getFileExtension","confirm","autoFocusButton","cancelText","okType","_this$props$onSaveAnd","_this$props5","deleteOrder","sendEmailVisible","confirmUnsavedChanges","history","encodeState","searchFields","searchType","showFilter","showOrdering","dateRange","dateRangeType","lastNValue","printItem","getFieldsValue","printVisible","invokeExtraAction","requireRequisitionerOnOrder","_ref4","_ref5","_this$props$onSave3","_this$props6","_this$props$onSave4","_this$props7","resendOrder","_this$props$filterDto5","_this$props$filterDto6","_this$props$onSave5","_this$props8","_this$state$item2","isEqual","saveAndClose","requirePackingListNumber","getReceivedItems","packingListNumber","showAddPackingListNumberModal","handleFormSubmit","handleAddPackingListNumberSubmit","_ref6","receivedItemIds","handleSendEmailSubmit","_this$state$item3","_this$state$orderItem2","_this$state$orderSupp","sendEmailLoading","emailOrder","recipients","handleAddFromList","_params$assets$items","_params$assets","_params$jobs$items","_params$jobs","_params$locations$ite","_params$locations","_params$operators$ite","_params$operators","addFromListLoading","addFromListItems","_asset$name","_job$name","_job$barcode","_location$name","_operator$name","success","LIST_MODAL_CLEAR_SELECTION","handleSubmitOrderClick","_ref7","showRequisitionerInformationModal","_this$props$onSave6","_this$props9","actionButtonLoading","_this$props$onSave7","_this$props10","handleSaveAndSubmitOrderClick","_this$props$onSave8","_this$props11","_this$props$onSave9","_this$props12","printableRef","createSaveDocumentItems","createGeneratePurchaseOrderNumbers","resetState","createResetState","requireQuantity","getStorageItem","saveFormInstances","createSaveFormInstances","refreshFormInstances","createRefreshFormInstances","on","FORM_INSTANCES_REFRESH","FORM_CHANGE_EVENT","componentWillUnmount","off","_this$props$filterDto7","_this$props$filterDto8","_this$state$billToAdd","_this$state$shipToAdd","_this$state$orderItem3","_this$state$orderItem4","_this$state$orderSupp2","_this$state$orderSupp3","_this$state$documentI","_this$state$formInsta","extraButtonsDisabled","saveButtonLoading","userIsSupplierOrDistributer","orderIsPartiallyReceived","isReadOnly","allowOrderEditAfterSend","_Dropdown","overlay","Divider","SubMenu","trigger","_Alert","showIcon","ClientNotifications","notifications","lg","formatUserTime","statusName","defaultActiveKey","placeholder","_ref8","Help","validateMultipleEmails","target","orderApprovalInfo","isValidDate","approveDate","approveUserName","confirmDate","Comments","comment","rows","enableTax","toLocaleString","locale","maximumFractionDigits","toLocaleCurrency","OrderItems","pageTotals","onFilter","downloadItems","downloadOrderItems","OrderSuppliers","Documents","FormInstancesContext","Provider","FormInstances","FormButtons","ackReceivedForOrder","userAuthorizedForAllLocations","sendOrderButtonLoading","resendOrderButtonLoading","userAuthorizedForOrderValue","requestApprovalButtonLoading","approveOrderButtonLoading","tenantTypeIsTrms","processOrderButtonLoading","undoProcessedButtonLoading","sideDrawer","BadgeContainer","_Badge","quickscan","count","showDataEntrySettings","SideForm","onSubmitting","pending","onPunchout","onAddFromList","quantityMin","footer","checked","PackingListNumber","SendEmail","createPrintHandler","resetPrintHandler","ref","Print","okButtonProps","_ref9","areEmails","_ref10","validateStatus","help","flow","withRouter","onValuesChange","_len","Array","_key","orderItemActions","cancelOrder","deleteItem","sendOrder","requestApproval","approveOrder","processOrder","options","undoProcessed","createDocumentsDispatchToProps","documentActions","createLinkedItemsDispatchToProps","formInstanceActions","deselectCurrent","require","clipboardToIE11Formatting","module","exports","text","debug","reselectPrevious","range","selection","mark","document","createRange","getSelection","createElement","textContent","ariaHidden","position","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","stopPropagation","format","preventDefault","clipboardData","window","clearData","setData","onCopy","body","appendChild","selectNodeContents","addRange","execCommand","err","copyKey","test","navigator","userAgent","replace","prompt","removeRange","removeAllRanges","removeChild","rangeCount","activeElement","ranges","i","getRangeAt","tagName","toUpperCase","blur","focus","selectRecipientsRef","setRecipients","_props$onSubmit","resetFields","setTimeout","_selectRecipientsRef$","_selectRecipientsRef$2","current","_Modal","copyToClipboard","join","mode","tokenSeparators","maxTagCount"],"mappings":"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","file":"static/js/10.fb40e18d.chunk.js","sourcesContent":["import * as React from 'react'\r\nimport { Form, Spin, Button, Tabs, Input, Tooltip } from 'antd'\r\nimport { isNil, set, get, uniq, toLower, cloneDeep, debounce, camelCase, trimStart, isEmpty } from 'lodash'\r\nimport produce from 'immer'\r\nimport pluralize from 'pluralize'\r\nimport cx from 'clsx'\r\nimport moment from 'moment'\r\nimport { showError, resourceNotFound, ValidationError } from 'helpers/errors'\r\nimport { allowPricing, getUserPermission, createFilterUserSuppliers } from 'helpers/auth'\r\nimport { HARD_SPACE, DEBOUNCE } from 'helpers/utils'\r\nimport {\r\n createLabelFactory,\r\n createFieldFactory,\r\n createHandleSubmit,\r\n createDropdownRender,\r\n createSearchOperatorTag,\r\n createSearchJobTag,\r\n createSearchAssetTag,\r\n filterByValue,\r\n validateBarcode,\r\n validateDuplicateBarcode,\r\n} from 'helpers/formViews'\r\nimport { stopEvent } from 'helpers/events'\r\nimport {\r\n createOrderItemsTransformSaveItemParams,\r\n validateQuantityReceived,\r\n validateQuantityOrdered,\r\n copyTagValuesToAllItemsClientSettings,\r\n} from 'helpers/procurement'\r\nimport { t } from 'helpers/i18n'\r\nimport { RED } from 'options/colors'\r\nimport DatePicker from 'elements/DatePicker'\r\nimport Select, { Option, getOptionProps } from 'elements/Select'\r\nimport Checkbox from 'elements/Checkbox'\r\nimport InputNumber from 'elements/InputNumber'\r\nimport { Row, Col } from 'elements/Grid'\r\nimport AutoComplete, { Suffix } from 'elements/AutoComplete'\r\nimport Icon from 'elements/Icon'\r\n\r\nconst TAG_TYPES = ['2', '1', '3', 'A', 'B', 'C', 'D', 'E']\r\n\r\nclass FormView extends React.Component {\r\n state = {}\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.handleSubmit = createHandleSubmit(this)\r\n this.searchSuppliers = debounce(this.searchSuppliers, DEBOUNCE)\r\n this.searchOperators = createSearchOperatorTag(this)\r\n this.searchJobs = createSearchJobTag(this)\r\n this.searchAssets = createSearchAssetTag(this)\r\n this.transformSaveItemParams = createOrderItemsTransformSaveItemParams(this)\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchItem()\r\n }\r\n\r\n searchSuppliers = async (search) => {\r\n try {\r\n const { item } = this.state\r\n const suppliers = await this.props.getSuppliers({\r\n search,\r\n supplierIds: item.supplierId ? [item.supplierId] : [],\r\n nonStockSuppliersOnly: item.nonStock,\r\n })\r\n\r\n this.setState({ suppliers: suppliers?.value?.data ?? {} })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }\r\n\r\n getItemId = () =>\r\n [this.state.item?.id, this.props.linkTargetRecord?.orderItemId, this.props.linkTargetRecord?.id].find(Boolean)\r\n\r\n fetchItem = async ({ itemId = this.getItemId() } = {}) => {\r\n try {\r\n const quantityOrderedMin = this.props.customer.generalSettings.allowZeroQuantityOnOrderedItems ? 0 : 1\r\n const { newItemParams = {} } = this.props\r\n const responses = await Promise.all([\r\n itemId\r\n ? this.props.getItem(itemId).catch((error) => {\r\n this.props.onCancel?.()\r\n throw error\r\n })\r\n : !this.props.linkTargetRecord\r\n ? this.props.newItem({\r\n assetDisplayName: newItemParams.assetDisplayName,\r\n assetId: newItemParams.assetId,\r\n jobDisplayName: newItemParams.jobDisplayName,\r\n jobId: newItemParams.jobId,\r\n locationDisplayName: newItemParams.locationDisplayName,\r\n locationId: newItemParams.locationId,\r\n locationName: newItemParams.locationName,\r\n operatorDisplayName: newItemParams.operatorDisplayName,\r\n operatorId: newItemParams.operatorId,\r\n tagA: newItemParams.tagA,\r\n tagB: newItemParams.tagB,\r\n tagC: newItemParams.tagC,\r\n tagD: newItemParams.tagD,\r\n tagE: newItemParams.tagE,\r\n quantityOrdered: newItemParams.quantity ?? quantityOrderedMin,\r\n supplierId: 0,\r\n nonStock: true,\r\n quantityIssued: 0,\r\n quantityReceived: 0,\r\n quantityReceivedDelta: 0,\r\n price: 0,\r\n barcode: `SO${Date.now() * 10000 + 621355968000000000}`,\r\n packageSize: 1,\r\n userName: this.props.user.userName,\r\n populated: false,\r\n })\r\n : resourceNotFound(this),\r\n this.props.getSettings({ type: this.props.settingsType ?? 'order' }),\r\n this.props.getLocations(),\r\n ])\r\n\r\n const item = cloneDeep(responses[0].value.data)\r\n\r\n const tagsEnabled = !this.props.userIsInRoleSupplier && !this.props.userIsInRoleDistributor\r\n const [jobs, operators, assets, unitsOfMeasure, supplierDetailItems] = await Promise.all([\r\n tagsEnabled && this.props.user.coreUserSettings.tagSettings.tag1EnabledPurch\r\n ? this.props.getJobs({ jobIds: item.jobId ? [item.jobId] : [] })\r\n : Promise.resolve(null),\r\n tagsEnabled && this.props.user.coreUserSettings.tagSettings.tag2EnabledPurch\r\n ? this.props.getOperators({ operatorIds: item.operatorId ? [item.operatorId] : [] })\r\n : Promise.resolve(null),\r\n tagsEnabled && this.props.user.coreUserSettings.tagSettings.tag3EnabledPurch\r\n ? this.props.getAssets({ assetIds: item.assetId ? [item.assetId] : [] })\r\n : Promise.resolve(null),\r\n item.id > 0 ? Promise.resolve(null) : this.props.getUnitsOfMeasure(),\r\n item.barcode && !item.nonStock\r\n ? (this.props\r\n .findByBarcode(item)\r\n .then((r) => this.props.getSupplierDetailItems(r.value.data.id))\r\n .catch(() => {}) ?? null)\r\n : Promise.resolve(null),\r\n ])\r\n\r\n const assetName = trimStart(item.assetName, '*')\r\n item.assetDisplayName = item.assetId\r\n ? await this.props\r\n .getAsset(item.assetId)\r\n .then((r) => r.value.data.displayName)\r\n .catch(() => assetName)\r\n : assetName\r\n\r\n const operatorName = trimStart(item.operatorName, '*')\r\n item.operatorDisplayName = item.operatorId\r\n ? await this.props\r\n .getOperator(item.operatorId)\r\n .then((r) => r.value.data.displayName)\r\n .catch(() => operatorName)\r\n : operatorName\r\n\r\n const jobName = trimStart(item.jobName, '*')\r\n item.jobDisplayName = item.jobId\r\n ? await this.props\r\n .getJob(item.jobId)\r\n .then((r) => r.value.data.displayName)\r\n .catch(() => jobName)\r\n : jobName\r\n\r\n const tagListItems = await (tagsEnabled ? this.props.getTagListItems({ tagType: 'All' }) : Promise.resolve(null))\r\n\r\n this.setState(\r\n {\r\n item,\r\n fieldSettings: [...responses[1].value.data.fieldSettings, copyTagValuesToAllItemsClientSettings],\r\n locations: get(responses[2], 'value.data.items', []),\r\n jobs: get(jobs, 'value.data', {}),\r\n operators: get(operators, 'value.data', {}),\r\n assets: get(assets, 'value.data', {}),\r\n tagListItems: get(tagListItems, 'value.data.items', []),\r\n unitsOfMeasure: get(unitsOfMeasure, 'value.data.items', []),\r\n supplierDetailItems: get(supplierDetailItems, 'value.data.items', []),\r\n },\r\n this.searchSuppliers\r\n )\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }\r\n\r\n setItemValue = (name, value) =>\r\n this.setState(\r\n produce((draft) => {\r\n if (name === 'quantityOrdered') {\r\n validateQuantityOrdered(draft.item.quantityReceived, value)\r\n }\r\n\r\n if (name === 'quantityReceived') {\r\n validateQuantityReceived(draft.item.quantityOrdered, value)\r\n }\r\n\r\n if (name === 'quantityReceivedDelta') {\r\n validateQuantityReceived(draft.item.quantityOrdered, draft.item.quantityReceived + value)\r\n }\r\n\r\n if (name === 'supplierId' && !draft.item.nonStock) {\r\n try {\r\n const supplierDetailItem = draft.supplierDetailItems.find((one) => one.supplierId === value)\r\n\r\n if (supplierDetailItem) {\r\n const { supplierItemNumber, price } = supplierDetailItem\r\n Object.assign(draft.item, { supplierItemNumber, price })\r\n this.props.form.setFieldsValue({ supplierItemNumber, price })\r\n } else {\r\n draft.item.supplierItemNumber = ''\r\n this.props.form.setFieldsValue({ supplierItemNumber: '' })\r\n }\r\n } catch (error) {\r\n console.warn(error)\r\n }\r\n }\r\n\r\n set(draft.item, name, value)\r\n\r\n this.props.form.setFieldsValue({ [name]: value })\r\n })\r\n )\r\n\r\n setTagValue = (key, value) =>\r\n this.setState(\r\n produce((draft) => {\r\n const item = get(draft, `${pluralize(key)}.items`, []).find((one) => one.displayName === value)\r\n\r\n set(draft, `item.${key}DisplayName`, value)\r\n ;['id', 'barcode', 'name', 'number'].forEach((one) => {\r\n set(draft, `item.${camelCase(`${key}-${one}`)}`, get(item, one))\r\n })\r\n\r\n set(draft, key, item)\r\n\r\n this.props.form.setFieldsValue({ [`${key}DisplayName`]: value })\r\n })\r\n )\r\n\r\n beforeValidateFields = () => {\r\n const promises = []\r\n const { item, tagListItems, operators, jobs, assets } = this.state\r\n const { operatorDisplayName, jobDisplayName, assetDisplayName } = item\r\n\r\n if (\r\n operatorDisplayName &&\r\n this.props.user.coreUserSettings.tagSettings.tag2EnabledPurch &&\r\n uniq((operators?.items ?? []).map((each) => each.displayName)).length === 1\r\n ) {\r\n promises.push(\r\n new Promise((resolve) => {\r\n this.setState(\r\n produce((draft) => {\r\n const operator = operators.items[0]\r\n\r\n ;['id', 'barcode', 'displayName', 'name', 'number'].forEach((one) => {\r\n set(draft.item, camelCase(`operator-${one}`), operator[one])\r\n })\r\n\r\n this.props.form.setFieldsValue({\r\n operatorDisplayName: draft.item.operatorDisplayName,\r\n })\r\n }),\r\n resolve\r\n )\r\n })\r\n )\r\n }\r\n\r\n if (\r\n jobDisplayName &&\r\n this.props.user.coreUserSettings.tagSettings.tag1EnabledPurch &&\r\n uniq((jobs?.items ?? []).map((each) => each.displayName)).length === 1\r\n ) {\r\n promises.push(\r\n new Promise((resolve) => {\r\n this.setState(\r\n produce((draft) => {\r\n const job = jobs.items[0]\r\n\r\n ;['id', 'barcode', 'displayName', 'name', 'number'].forEach((one) => {\r\n set(draft.item, camelCase(`job-${one}`), job[one])\r\n })\r\n\r\n this.props.form.setFieldsValue({ jobDisplayName: draft.item.jobDisplayName })\r\n }),\r\n resolve\r\n )\r\n })\r\n )\r\n }\r\n\r\n if (\r\n assetDisplayName &&\r\n this.props.user.coreUserSettings.tagSettings.tag3EnabledPurch &&\r\n uniq((assets?.items ?? []).map((each) => each.displayName)).length === 1\r\n ) {\r\n promises.push(\r\n new Promise((resolve) => {\r\n this.setState(\r\n produce((draft) => {\r\n const asset = assets.items[0]\r\n\r\n ;['id', 'barcode', 'displayName', 'name', 'number'].forEach((one) => {\r\n set(draft.item, camelCase(`asset-${one}`), asset[one])\r\n })\r\n\r\n this.props.form.setFieldsValue({ assetDisplayName: draft.item.assetDisplayName })\r\n }),\r\n resolve\r\n )\r\n })\r\n )\r\n }\r\n\r\n ;['A', 'B', 'C', 'D', 'E'].forEach((type) => {\r\n if (this.props.user.coreUserSettings.tagSettings[`tag${type}EnabledPurch`]) {\r\n const filteredTagListItems = tagListItems\r\n .filter((each) => each.tagType === type)\r\n .map((each) => each.description)\r\n .filter((each) => toLower(each).indexOf(toLower(get(item, `tag${type}`))) > -1)\r\n\r\n if (filteredTagListItems.length === 1) {\r\n promises.push(\r\n new Promise((resolve) => {\r\n this.setState(\r\n produce((draft) => {\r\n set(draft, `item.tag${type}`, filteredTagListItems[0])\r\n\r\n this.props.form.setFieldsValue({ [`tag${type}`]: filteredTagListItems[0] })\r\n }),\r\n resolve\r\n )\r\n })\r\n )\r\n }\r\n }\r\n })\r\n\r\n return Promise.all(promises)\r\n }\r\n\r\n render() {\r\n const { customer, user, siblingRecords = [], tenantGroupIsCardinal } = this.props\r\n const { item, fieldSettings, operators, jobs, assets, tagListItems, suppliers } = this.state\r\n\r\n if (!fieldSettings || isNil(suppliers)) {\r\n return \r\n }\r\n\r\n const createLabel = createLabelFactory(fieldSettings)\r\n const createFieldDecorator = createFieldFactory(this.props.form, item, fieldSettings)\r\n\r\n const tagsEnabled =\r\n !this.props.userIsInRoleSupplier &&\r\n !this.props.userIsInRoleDistributor &&\r\n TAG_TYPES.some((type) => get(user, `coreUserSettings.tagSettings.tag${type}EnabledPurch`))\r\n const barcodeDisabled = !item.nonStock || item.id > 0\r\n const quantityReceivedDisabled =\r\n item.quantityOrdered <= 0 ||\r\n !this.props.parentRecord.orderIsReceivable ||\r\n getUserPermission('ReceiveOrders') === 'No' ||\r\n item.lockedForCycleCount\r\n const notMultipleOfPackageSize =\r\n this.props.customer.generalSettings.orderCalculationType === 'Accumulate' &&\r\n item.quantityOrdered > 0 &&\r\n item.quantityOrdered % item.packageSize > 0\r\n\r\n const createDate = moment(this.props.parentRecord.createDate).startOf('day')\r\n const receivedMoreThanOrdered = item.quantityReceived + item.quantityReceivedDelta > item.quantityOrdered\r\n const receivedLessThanOrdered = item.quantityReceived + item.quantityReceivedDelta < item.quantityOrdered\r\n const { orderIsReceivable, orderIsEditable } = this.props.parentRecord\r\n const quantityOrderedMin =\r\n item.quantityIssued > 0 || customer.generalSettings.allowZeroQuantityOnOrderedItems ? 0 : 1\r\n\r\n return (\r\n \r\n
\r\n \r\n this.setState({ tabsActiveKey })}\r\n >\r\n \r\n \r\n \r\n \r\n {createFieldDecorator(\r\n 'barcode',\r\n !barcodeDisabled\r\n ? {\r\n extraRules: [validateBarcode(), validateDuplicateBarcode({ item, siblingRecords })],\r\n }\r\n : undefined\r\n )()}\r\n \r\n \r\n \r\n \r\n {createFieldDecorator('supplierId')(\r\n this.setItemValue('supplierId', value)}\r\n dropdownRender={createDropdownRender(suppliers)}\r\n onSearch={this.searchSuppliers}\r\n allowClear={false}\r\n readOnly={!orderIsEditable}\r\n showSearch\r\n >\r\n \r\n {(suppliers?.items ?? [])\r\n .filter((each) => each.id)\r\n .filter(createFilterUserSuppliers(item.supplierId))\r\n .map((each) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {createFieldDecorator('itemNumber')()}\r\n \r\n \r\n \r\n \r\n {createFieldDecorator('supplierItemNumber')()}\r\n \r\n \r\n \r\n \r\n {createFieldDecorator('description')()}\r\n \r\n \r\n \r\n {item.id > 0 ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n 0) ? 12 : 24}>\r\n \r\n \r\n \r\n \r\n {item.nonStock && !(item.id > 0) && (\r\n \r\n \r\n {createFieldDecorator('unitOfMeasure')(\r\n this.setItemValue('unitOfMeasure', value)}\r\n readOnly={!orderIsEditable}\r\n >\r\n {(this.state.unitsOfMeasure ?? []).map((each) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n {createFieldDecorator('locationId')(\r\n \r\n )}\r\n \r\n {item.quantityIssued > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {allowPricing() && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {createFieldDecorator('quantityOrdered')(\r\n \r\n this.setItemValue('quantityOrdered', Math.max(value, quantityOrderedMin))\r\n }\r\n min={0}\r\n className={cx({\r\n 'form-field-error': notMultipleOfPackageSize || receivedMoreThanOrdered,\r\n })}\r\n disabled={getUserPermission('Purchase') === 'No'}\r\n readOnly={!orderIsEditable}\r\n />\r\n )}\r\n \r\n \r\n \r\n {allowPricing() && (\r\n \r\n \r\n {createFieldDecorator('price')()}\r\n \r\n \r\n )}\r\n \r\n {this.props.customer.generalSettings.receivingMode === 'EnteredValueIsDelta' ? (\r\n \r\n \r\n \r\n {t('toDate:')} {item.quantityReceived}\r\n \r\n \r\n \r\n this.setItemValue('quantityReceivedDelta', Math.max(value, -item.quantityReceived))\r\n }\r\n className={cx({\r\n 'form-field-error': receivedMoreThanOrdered,\r\n 'form-field-warning': receivedLessThanOrdered,\r\n })}\r\n min={-item.quantityReceived}\r\n suffix={\r\n item.lockedForCycleCount ? (\r\n \r\n \r\n \r\n ) : null\r\n }\r\n readOnly={!orderIsReceivable}\r\n disabled={quantityReceivedDisabled}\r\n />\r\n \r\n \r\n \r\n ) : (\r\n \r\n this.setItemValue('quantityReceived', value)}\r\n className={cx({\r\n 'form-field-error': receivedLessThanOrdered,\r\n 'form-field-warning': receivedLessThanOrdered,\r\n })}\r\n min={0}\r\n suffix={\r\n item.lockedForCycleCount ? (\r\n \r\n \r\n \r\n ) : null\r\n }\r\n readOnly={!orderIsReceivable}\r\n disabled={quantityReceivedDisabled}\r\n />\r\n \r\n )}\r\n \r\n \r\n this.setItemValue('leadTime', moment(value).startOf('day').diff(createDate, 'days'))\r\n }\r\n disabledDate={(value) => moment(value).startOf('day').diff(createDate, 'days') < 0}\r\n readOnly={!orderIsEditable}\r\n />\r\n \r\n \r\n \r\n \r\n {createFieldDecorator('manufacturer')()}\r\n \r\n \r\n {createFieldDecorator('binLocation')()}\r\n \r\n \r\n 0 ? 12 : 24}>\r\n \r\n {createFieldDecorator('externalPurchaseOrderNumber')()}\r\n \r\n \r\n {item.id > 0 && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {createFieldDecorator('expedite', { valuePropName: 'checked' })(\r\n {createLabel('expedite')}\r\n )}\r\n \r\n \r\n \r\n \r\n {createFieldDecorator('taxable', { valuePropName: 'checked' })(\r\n {createLabel('taxable')}\r\n )}\r\n \r\n \r\n \r\n \r\n {createFieldDecorator('nonInventory', { valuePropName: 'checked' })(\r\n 0}>\r\n {createLabel('nonInventory')}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {tagsEnabled && (\r\n \r\n \r\n \r\n {user.coreUserSettings.tagSettings.tag2EnabledPurch && (\r\n \r\n {this.props.form.getFieldDecorator('operatorDisplayName', {\r\n rules: [\r\n ...(customer.tagSettings.tag2Required\r\n ? [\r\n {\r\n required: true,\r\n message: t('requiredField'),\r\n },\r\n ]\r\n : []),\r\n ...(customer.tagSettings.tag2Restricted\r\n ? [\r\n {\r\n validator: (rule, value, callback) => {\r\n callback(\r\n isEmpty(value) ||\r\n (this.state.operators?.items ?? [])\r\n .map((each) => each.displayName)\r\n .includes(value)\r\n ? []\r\n : [new Error(t('invalidValueEntered'))]\r\n )\r\n },\r\n },\r\n ]\r\n : []),\r\n ],\r\n initialValue: item.operatorDisplayName,\r\n validateTrigger: false,\r\n })(\r\n each.displayName)}\r\n dropdownRender={createDropdownRender(operators)}\r\n onChange={(value) => this.setTagValue('operator', value)}\r\n onSearch={this.searchOperators}\r\n readOnly={!orderIsEditable}\r\n >\r\n }\r\n readOnly={!orderIsEditable}\r\n allowClear\r\n />\r\n \r\n )}\r\n \r\n )}\r\n {user.coreUserSettings.tagSettings.tag1EnabledPurch && (\r\n \r\n {this.props.form.getFieldDecorator('jobDisplayName', {\r\n rules: [\r\n ...(customer.tagSettings.tag1Required\r\n ? [\r\n {\r\n required: true,\r\n message: t('requiredField'),\r\n },\r\n ]\r\n : []),\r\n ...(customer.tagSettings.tag1Restricted\r\n ? [\r\n {\r\n validator: (rule, value, callback) => {\r\n callback(\r\n isEmpty(value) ||\r\n (jobs?.items ?? []).map((each) => each.displayName).includes(value)\r\n ? []\r\n : [new Error(t('invalidValueEntered'))]\r\n )\r\n },\r\n },\r\n ]\r\n : []),\r\n ],\r\n initialValue: item.jobDisplayName,\r\n validateTrigger: false,\r\n })(\r\n each.displayName)}\r\n dropdownRender={createDropdownRender(jobs)}\r\n onChange={(value) => this.setTagValue('job', value)}\r\n onSearch={this.searchJobs}\r\n readOnly={!orderIsEditable}\r\n >\r\n }\r\n readOnly={!orderIsEditable}\r\n allowClear\r\n />\r\n \r\n )}\r\n \r\n )}\r\n {user.coreUserSettings.tagSettings.tag3EnabledPurch && (\r\n \r\n {this.props.form.getFieldDecorator('assetDisplayName', {\r\n rules: [\r\n ...(customer.tagSettings.tag3Required\r\n ? [\r\n {\r\n required: true,\r\n message: t('requiredField'),\r\n },\r\n ]\r\n : []),\r\n ...(customer.tagSettings.tag3Restricted\r\n ? [\r\n {\r\n validator: (rule, value, callback) => {\r\n callback(\r\n isEmpty(value) ||\r\n (assets?.items ?? []).map((each) => each.displayName).includes(value)\r\n ? []\r\n : [new Error(t('invalidValueEntered'))]\r\n )\r\n },\r\n },\r\n ]\r\n : []),\r\n ],\r\n initialValue: item.assetDisplayName,\r\n validateTrigger: false,\r\n })(\r\n each.displayName)}\r\n dropdownRender={createDropdownRender(assets)}\r\n onChange={(value) => this.setTagValue('asset', value)}\r\n onSearch={this.searchAssets}\r\n readOnly={!orderIsEditable}\r\n >\r\n }\r\n readOnly={!orderIsEditable}\r\n allowClear\r\n />\r\n \r\n )}\r\n \r\n )}\r\n {['A', 'B', 'C', 'D', 'E'].map(\r\n (type) =>\r\n user.coreUserSettings.tagSettings[`tag${type}EnabledPurch`] && (\r\n \r\n {this.props.form.getFieldDecorator(`tag${type}`, {\r\n rules: [\r\n ...(customer.tagSettings[`tag${type}Required`]\r\n ? [\r\n {\r\n required: true,\r\n message: t('requiredField'),\r\n },\r\n ]\r\n : []),\r\n ...(customer.tagSettings[`tag${type}Restricted`]\r\n ? [\r\n {\r\n type: 'enum',\r\n enum: tagListItems\r\n .filter((each) => each.tagType === type)\r\n .map((each) => each.description),\r\n message: t('invalidValueEntered'),\r\n },\r\n ]\r\n : []),\r\n ],\r\n initialValue: get(item, `tag${type}`),\r\n validateTrigger: false,\r\n })(\r\n customer.tagSettings[`tag${type}ShowList`] ? (\r\n each.tagType === type)\r\n .map((each) => each.description)}\r\n filterOption={filterByValue}\r\n onChange={(value) => this.setItemValue(`tag${type}`, value)}\r\n readOnly={!orderIsEditable}\r\n >\r\n }\r\n readOnly={!orderIsEditable}\r\n allowClear\r\n />\r\n \r\n ) : (\r\n \r\n )\r\n )}\r\n \r\n )\r\n )}\r\n \r\n {orderIsEditable ? (\r\n \r\n \r\n {createFieldDecorator('copyTagValuesToAllItems', { valuePropName: 'checked' })(\r\n {createLabel('copyTagValuesToAllItems')}\r\n )}\r\n \r\n \r\n ) : null}\r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n {!orderIsEditable && !orderIsReceivable ? (\r\n \r\n ) : (\r\n <>\r\n {' '}\r\n \r\n \r\n {!this.props.linkTargetRecord ? t('add') : t('update')}\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default Form.create()(FormView)\r\n","import { createChildFormViewContainer } from 'factories/ChildFormView'\r\nimport { createChildItemsDispatchToProps } from 'helpers/formViews'\r\nimport actions from 'actions/orders/orderItems'\r\nimport locationActions from 'actions/locations'\r\nimport supplierActions from 'actions/suppliers'\r\nimport assetActions from 'actions/assets'\r\nimport jobActions from 'actions/jobs'\r\nimport operatorActions from 'actions/operators'\r\nimport tagListActions from 'actions/tagLists'\r\nimport unitsOfMeasureActions from 'actions/unitsOfMeasure'\r\nimport supplierDetailActions from 'actions/products/supplierDetails'\r\nimport productActions from 'actions/products'\r\nimport Component from 'components/Orders/Items/FormView'\r\n\r\nexport default createChildFormViewContainer({\r\n actions,\r\n extraDispatchToProps: (dispatch, props) => ({\r\n getLocations: (params) =>\r\n dispatch(locationActions.getItems({ ...params, locationVendingTypes: ['NonVending'] })),\r\n getJob: (jobId) => dispatch(jobActions.getItem(jobId)),\r\n getOperator: (operatorId) => dispatch(operatorActions.getItem(operatorId)),\r\n getAsset: (assetId) => dispatch(assetActions.getItem(assetId)),\r\n getSuppliers: (params) =>\r\n dispatch(\r\n supplierActions.getOptions({\r\n pageIndex: 1,\r\n pageSize: 100,\r\n ...params,\r\n active: 'Active',\r\n })\r\n ),\r\n getAssets: (params) =>\r\n dispatch(\r\n assetActions.getOptions({\r\n pageIndex: 1,\r\n pageSize: 100,\r\n ...params,\r\n })\r\n ),\r\n getJobs: (params) =>\r\n dispatch(\r\n jobActions.getOptions({\r\n pageIndex: 1,\r\n pageSize: 100,\r\n ...params,\r\n })\r\n ),\r\n getOperators: (params) =>\r\n dispatch(\r\n operatorActions.getOptions({\r\n pageIndex: 1,\r\n pageSize: 100,\r\n ...params,\r\n active: 'Active',\r\n })\r\n ),\r\n getTagListItems: (params) => dispatch(tagListActions.getOptions(params)),\r\n getUnitsOfMeasure: (params) => dispatch(unitsOfMeasureActions.getOptions(params)),\r\n findByBarcode: (params) => dispatch(productActions.findByBarcode(params)),\r\n ...createChildItemsDispatchToProps(dispatch, 'SupplierDetail', supplierDetailActions),\r\n }),\r\n})(Component)\r\n","import actions from 'actions/formInstances'\r\nimport { createFormViewContainer } from 'factories/FormView'\r\nimport userActions from 'actions/users'\r\nimport formTemplateActions from 'actions/formTemplates'\r\nimport { createFormInstanceAttachmentsDispatchToProps } from 'helpers/formInstances'\r\nimport Component from 'components/Orders/Forms/FormView'\r\n\r\nexport default createFormViewContainer({\r\n actions,\r\n extraDispatchToProps: (dispatch, props) => ({\r\n newItem: (params) => dispatch(actions.newItem(params)),\r\n updateStatus: (formInstanceId, name, value) =>\r\n dispatch(actions.updateStatus(formInstanceId, name, value)),\r\n submitItem: (formInstanceId) => dispatch(actions.submitItem(formInstanceId)),\r\n getUsers: (params) => dispatch(userActions.getItems(params)),\r\n getFormTemplate: (formTemplateId) => dispatch(formTemplateActions.getItem(formTemplateId)),\r\n ...createFormInstanceAttachmentsDispatchToProps(dispatch, props),\r\n }),\r\n})(Component)\r\n","import FormView from 'components/FormInstances/FormView'\r\n\r\nexport default (props) => \r\n","import { createChildListViewComponent } from 'factories/ChildListView'\r\nimport entityNames from 'options/entityNames'\r\nimport { t } from 'helpers/i18n'\r\nimport FormView from 'containers/Orders/Forms/FormView'\r\n\r\nexport default createChildListViewComponent({\r\n entityName: entityNames.orders,\r\n childName: 'formInstances',\r\n primaryLinkTarget: 'formInstanceRecord',\r\n createButtonTextId: 'addFormInstance',\r\n createButtonLinkTarget: {\r\n formSize: 'xl',\r\n formComponent: FormView,\r\n },\r\n createDisabled: (self) => (self.props.parentRecord?.id ?? 0) <= 0,\r\n getDeleteButtonTooltip: (self) => t('deleteFormsTooltip'),\r\n})()\r\n","import actions from 'actions/formInstances'\r\nimport { createChildListViewContainer } from 'factories/ChildListView'\r\nimport Component from 'components/Orders/Forms'\r\n\r\nexport default createChildListViewContainer({ actions })(Component)\r\n","import { useImmer } from 'use-immer'\r\nimport { Button, message } from 'antd'\r\nimport { isEmpty, set, cloneDeep, pick, unset } from 'lodash'\r\nimport { t } from 'helpers/i18n'\r\nimport linkTargets from 'options/linkTargets'\r\nimport { showError, showClientNotifications } from 'helpers/errors'\r\nimport { calculateOrderTotals } from 'helpers/procurement'\r\nimport Icon from 'elements/Icon'\r\nimport Drawer from 'elements/Drawer'\r\nimport FormView from 'containers/Orders/FormView'\r\n\r\nfunction Component(props) {\r\n const { parentRecord, parentHasUnsavedChanges, selectedRowKeys } = props\r\n\r\n const [state, updateState] = useImmer({})\r\n\r\n function setState(path, value) {\r\n updateState((draft) => {\r\n set(draft, path, value)\r\n })\r\n }\r\n\r\n async function handleCopyClick() {\r\n if (parentHasUnsavedChanges) {\r\n message.error(t('saveChangesFirst'))\r\n return\r\n }\r\n\r\n try {\r\n setState('loading', true)\r\n\r\n const copied = await props.newItem({}).then((r) => cloneDeep(r.value.data))\r\n\r\n unset(copied, 'id')\r\n\r\n Object.assign(\r\n copied,\r\n pick(parentRecord, [\r\n 'requisitionerName',\r\n 'requisitionerPhone',\r\n 'requisitionerEmail',\r\n 'shipToAddressId',\r\n 'billToAddressId',\r\n 'taxRate',\r\n 'scanType',\r\n 'orderCalculationType',\r\n ])\r\n )\r\n\r\n const orderItems = parentRecord.orderItems\r\n .filter((each) => selectedRowKeys.includes(each.id))\r\n .map((each) => ({\r\n timeScanned: new Date().toJSON(),\r\n serverTimeScanned: new Date().toJSON(),\r\n userName: props.user.userName,\r\n productId: each.productId,\r\n barcode: each.barcode,\r\n inventoryBarcode: each.inventoryBarcode,\r\n itemNumber: each.itemNumber,\r\n description: each.description,\r\n locationId: each.locationId,\r\n binLocation: each.binLocation,\r\n manufacturer: each.manufacturer,\r\n nonStock: props.customer.generalSettings.addNonStockToProducts ? false : each.nonStock,\r\n price: each.price,\r\n unitOfMeasure: each.unitOfMeasure,\r\n packageSize: each.packageSize,\r\n packageSizeUom: each.packageSizeUom,\r\n quantityOrdered: each.quantityOrdered,\r\n packageQuantityOrdered: each.packageQuantityOrdered,\r\n taxable: each.taxable,\r\n taxableDescription: each.taxableDescription,\r\n expedite: each.expedite,\r\n packagePrice: each.packagePrice,\r\n packageUnitOfMeasure: each.packageUnitOfMeasure,\r\n leadTime: each.leadTime,\r\n nonInventory: each.nonInventory,\r\n accountNumber: each.accountNumber,\r\n reworkType: each.reworkType,\r\n isPersonalPurchase: each.isPersonalPurchase,\r\n receiveToOnHand2: each.receiveToOnHand2,\r\n supplierId: each.supplierId,\r\n supplierItemNumber: each.supplierItemNumber,\r\n deliveryDate: each.deliveryDate,\r\n trackingNumber: each.trackingNumber,\r\n carrier: each.carrier,\r\n locationBarcode: each.locationBarcode,\r\n locationName: each.locationName,\r\n supplierName: each.supplierName,\r\n scanType: each.scanType,\r\n orderCalculationType: each.orderCalculationType,\r\n procurementType: 'Purchase',\r\n sourceCatalogName: each.sourceCatalogName,\r\n tagA: each.tagA,\r\n tagB: each.tagB,\r\n tagC: each.tagC,\r\n tagD: each.tagD,\r\n tagE: each.tagE,\r\n }))\r\n\r\n const supplierIds = orderItems\r\n .filter((each) => Boolean(each.supplierId) && each.quantityOrdered > 0)\r\n .map((each) => each.supplierId)\r\n\r\n const suppliers = await Promise.all(\r\n [...new Set(supplierIds)].map((each) => props.getSupplier(each).then((r) => r.value.data))\r\n )\r\n\r\n const purchaseOrderNumbers = await Promise.all(\r\n supplierIds.map((supplierId) =>\r\n props.generatePurchaseOrderNumber({ orderId: 0, supplierId }).then((each) => ({\r\n supplierId,\r\n ...each.value.data,\r\n }))\r\n )\r\n )\r\n\r\n const orderSuppliers = suppliers.map((each) => ({\r\n adjustments: 0,\r\n confirmedDescription: 'No',\r\n freight: 0,\r\n purchaseOrderNumber: '',\r\n shippingInstructions: each.shippingInstructions,\r\n supplierId: each.id,\r\n supplierName: each.name,\r\n }))\r\n\r\n Object.assign(copied, calculateOrderTotals({ customer: props.customer, item: copied, orderItems }))\r\n\r\n orderSuppliers.forEach((each) => {\r\n try {\r\n each.purchaseOrderNumber = purchaseOrderNumbers.find(\r\n (one) => one.supplierId === each.supplierId\r\n ).purchaseOrderNumber\r\n } catch (error) {\r\n console.warn(error)\r\n }\r\n })\r\n\r\n const response = await props.saveOrder({\r\n order: copied,\r\n orderItems: { creating: orderItems },\r\n orderSuppliers: { creating: orderSuppliers },\r\n })\r\n\r\n showClientNotifications({ response })\r\n\r\n if (response.value.data.failureCount > 0) {\r\n throw new Error()\r\n }\r\n\r\n updateState((draft) => {\r\n draft.linkTargetRecord = response.value.data.items[0]\r\n draft.drawerVisible = true\r\n })\r\n } catch (error) {\r\n showError({ error })\r\n } finally {\r\n setState('loading', false)\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n setState('drawerVisible', false)}\r\n >\r\n {}}\r\n onSaveAndClose={() => setState('drawerVisible', false)}\r\n onCancel={() => setState('drawerVisible', false)}\r\n />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default Component\r\n","import { connect } from 'react-redux'\r\nimport { memoize } from 'lodash'\r\nimport { createAuthStateToProps } from 'helpers/auth'\r\nimport actions from 'actions/orders'\r\nimport supplierActions from 'actions/suppliers'\r\nimport orderSupplierActions from 'actions/orders/orderSuppliers'\r\nimport Component from 'components/Orders/Items/Copy'\r\n\r\nconst mapStateToProps = (state, props) => ({ ...createAuthStateToProps(state, props) })\r\n\r\nconst mapDispatchToProps = (dispatch, props) => ({\r\n newItem: (params) => dispatch(actions.newItem(params)),\r\n saveOrder: (params) => dispatch(actions.saveOrder(params)),\r\n getSupplier: memoize((supplierId) => dispatch(supplierActions.getItem(supplierId))),\r\n generatePurchaseOrderNumber: (params) => dispatch(orderSupplierActions.generatePurchaseOrderNumber(params)),\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Component)\r\n","import styled from 'styled-components'\r\nimport { Popover, Tooltip, Button, message } from 'antd'\r\nimport { isEmpty, isFinite, isNil, toString as str } from 'lodash'\r\nimport produce from 'immer'\r\nimport cx from 'clsx'\r\nimport { createChildListViewComponent } from 'factories/ChildListView'\r\nimport entityNames from 'options/entityNames'\r\nimport { RED } from 'options/colors'\r\nimport { getUserPermission } from 'helpers/auth'\r\nimport { validateQuantityReceived, validateQuantityOrdered } from 'helpers/procurement'\r\nimport { t } from 'helpers/i18n'\r\nimport linkTargets from 'options/linkTargets'\r\nimport { tryParseInt, DEBOUNCE } from 'helpers/utils'\r\nimport { showError, showClientNotifications } from 'helpers/errors'\r\nimport Icon from 'elements/Icon'\r\nimport InputNumber from 'elements/InputNumber'\r\nimport FormView from 'containers/Orders/Items/FormView'\r\nimport PrintLabel from 'containers/PrintLabel'\r\nimport Copy from 'containers/Orders/Items/Copy'\r\nimport Filter from 'containers/Orders/Items/Filter'\r\n\r\nconst QuantityReceived = styled.div`\r\n white-space: nowrap;\r\n line-height: 32px;\r\n padding-right: 6px;\r\n width: 30%;\r\n`\r\n\r\nexport default createChildListViewComponent({\r\n filterItems: (self) => (each) => {\r\n const { supplierId } = self.state.filterDto ?? {}\r\n const usagePurchase = self.state.filterDto?.usagePurchase ?? 'All'\r\n\r\n if (!isNil(supplierId) && each.supplierId !== supplierId) {\r\n return false\r\n }\r\n\r\n if (usagePurchase === 'UsageOnly' && each.quantityUsed === 0 && each.quantityUsed2 === 0) {\r\n return false\r\n }\r\n\r\n if (usagePurchase === 'PurchaseOnly' && each.quantityOrdered === 0) {\r\n return false\r\n }\r\n\r\n return true\r\n },\r\n allowSearching: (self) => true,\r\n entityName: entityNames.orders,\r\n childName: 'orderItems',\r\n createButtonTextId: 'addNonStockItem',\r\n createButtonLinkTarget: {\r\n formSize: 'md',\r\n formComponent: (props) => ,\r\n },\r\n primaryLinkTarget: 'orderItemRecord',\r\n allowCreate: (self) => false,\r\n allowDelete: (self) => self.props.parentRecord.orderIsEditable && getUserPermission('Purchase') === 'Yes',\r\n allowCustomize: (self) => true,\r\n extraRowActions: (self) => (\r\n <>\r\n {!self.props.userIsInRoleDistributor &&\r\n !self.props.userIsInRoleSupplier &&\r\n getUserPermission('Purchase') !== 'No' && (\r\n <>\r\n \r\n {\r\n if (self.props.parentHasUnsavedChanges) {\r\n message.error(t('saveChangesFirst'))\r\n return\r\n }\r\n\r\n try {\r\n self.setState({ movingItems: true })\r\n\r\n const response = await self.props.moveOrderItems(\r\n self.props.parentRecord.id,\r\n self.state.selectedRowKeys\r\n )\r\n\r\n showClientNotifications({ response })\r\n\r\n self.props.onMoveOrderItems()\r\n } catch (error) {\r\n showError({ error })\r\n } finally {\r\n self.setState({ movingItems: false })\r\n }\r\n }}\r\n disabled={isEmpty(self.state.selectedRowKeys)}\r\n loading={self.state.movingItems}\r\n >\r\n {!self.state.movingItems && } {t('move')}\r\n \r\n \r\n )}\r\n self.props.items.find((one) => one.id === each))}\r\n parentHasUnsavedChanges={self.props.parentHasUnsavedChanges}\r\n />\r\n \r\n ),\r\n tableCellComponents: {\r\n quantityOrdered: (self, item) => {\r\n const notMultipleOfPackageSize =\r\n self.props.customer.generalSettings.orderCalculationType === 'Accumulate' &&\r\n item.quantityOrdered > 0 &&\r\n item.quantityOrdered % item.packageSize > 0\r\n const quantityReceived =\r\n self.props.customer.generalSettings.receivingMode === 'EnteredValueIsDelta'\r\n ? item.quantityReceived + item.quantityReceivedDelta\r\n : item.quantityReceived\r\n const quantityOrderedMin =\r\n item.quantityIssued > 0 || self.props.customer.generalSettings.allowZeroQuantityOnOrderedItems ? 0 : 1\r\n\r\n return (\r\n
\r\n \r\n {\r\n try {\r\n await validateQuantityOrdered(quantityReceived, Math.max(value, quantityOrderedMin))\r\n await self.props.onChange(\r\n produce(self.props.items, (draft) => {\r\n if (isFinite(value)) {\r\n const row = draft.find((one) => one.id === item.id)\r\n row.quantityOrdered = Math.max(value, quantityOrderedMin)\r\n row.populated = false\r\n }\r\n })\r\n )\r\n } catch (error) {\r\n console.warn(error)\r\n }\r\n }}\r\n className={cx({\r\n 'form-field-error': notMultipleOfPackageSize || item.quantityOrdered < quantityReceived,\r\n })}\r\n min={0}\r\n disabled={!self.props.parentRecord.orderIsEditable || getUserPermission('Purchase') !== 'Yes'}\r\n debounce={DEBOUNCE}\r\n />\r\n {' '}\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n },\r\n quantityReceived: (self, item) => {\r\n const disabled =\r\n self.props.parentRecord.orderIsReadOnly ||\r\n item.quantityOrdered <= 0 ||\r\n !self.props.parentRecord.orderIsReceivable ||\r\n getUserPermission('ReceiveOrders') !== 'Yes' ||\r\n item.lockedForCycleCount\r\n const receivedMoreThanOrdered = item.quantityReceived + item.quantityReceivedDelta > item.quantityOrdered\r\n const receivedLessThanOrdered = item.quantityReceived + item.quantityReceivedDelta < item.quantityOrdered\r\n const min = -item.quantityReceived\r\n\r\n return self.props.customer.generalSettings.receivingMode === 'EnteredValueIsDelta' ? (\r\n
\r\n {item.quantityReceived}\r\n
\r\n {\r\n try {\r\n await validateQuantityReceived(item.quantityOrdered, item.quantityReceived + Math.max(value, min))\r\n await self.props.onChange(\r\n produce(self.props.items, (draft) => {\r\n if (isFinite(value)) {\r\n const row = draft.find((one) => one.id === item.id)\r\n row.quantityReceivedDelta = Math.max(value, min)\r\n }\r\n })\r\n )\r\n } catch (error) {\r\n console.warn(error)\r\n }\r\n }}\r\n className={cx({\r\n 'form-field-error': receivedMoreThanOrdered,\r\n 'form-field-warning': receivedLessThanOrdered,\r\n })}\r\n min={min}\r\n debounce={DEBOUNCE}\r\n suffix={\r\n item.lockedForCycleCount ? (\r\n \r\n \r\n \r\n ) : null\r\n }\r\n disabled={disabled}\r\n />\r\n
\r\n
\r\n ) : (\r\n {\r\n try {\r\n await validateQuantityReceived(item.quantityOrdered, value)\r\n await self.props.onChange(\r\n produce(self.props.items, (draft) => {\r\n if (isFinite(value)) {\r\n const row = draft.find((one) => one.id === item.id)\r\n row.quantityReceived = value\r\n }\r\n })\r\n )\r\n } catch (error) {\r\n console.warn(error)\r\n }\r\n }}\r\n className={cx({\r\n 'form-field-error': receivedMoreThanOrdered,\r\n 'form-field-warning': receivedLessThanOrdered,\r\n })}\r\n min={0}\r\n debounce={DEBOUNCE}\r\n suffix={\r\n item.lockedForCycleCount ? (\r\n \r\n \r\n \r\n ) : null\r\n }\r\n disabled={disabled}\r\n />\r\n )\r\n },\r\n source: (self, item) => {\r\n const source = str(item?.source)\r\n\r\n if (!source.match(/(REQ|RFQ)(\\d+)/)) {\r\n return source\r\n }\r\n\r\n return source\r\n .match(/(REQ|RFQ)(\\d+)/g)\r\n .map((each) => {\r\n const match = each.match(/(REQ|RFQ)(\\d+)/)\r\n\r\n return (\r\n \r\n self.setState({\r\n editDrawerLinkTarget: match[1] === 'RFQ' ? linkTargets.rfqRecord : linkTargets.requisitionRecord,\r\n editDrawerLinkTargetText: match[0],\r\n editDrawerLinkTargetRecord:\r\n match[1] === 'RFQ'\r\n ? { rfqId: tryParseInt(match[2], 0) }\r\n : { requisitionId: tryParseInt(match[2], 0) },\r\n editDrawerVisible: true,\r\n editDrawerSaving: false,\r\n editDrawerLinkTargetReadOnly: true,\r\n })\r\n }\r\n >\r\n {each}\r\n \r\n )\r\n })\r\n .reduce((acc, each) => [acc, ', ', each])\r\n },\r\n },\r\n})(Filter)\r\n","import { createChildListViewContainer } from 'factories/ChildListView'\r\nimport actions from 'actions/orders/orderItems'\r\nimport Component from 'components/Orders/Items'\r\n\r\nexport default createChildListViewContainer({\r\n actions,\r\n extraStateToProps: (state, props) => ({ settingsType: props.settingsType ?? 'order' }),\r\n extraDispatchToProps: (dispatch, props) => ({\r\n moveOrderItems: (parentId, params) => dispatch(actions.moveOrderItems(parentId, params)),\r\n }),\r\n})(Component)\r\n","import { Menu, message } from 'antd'\r\nimport { createSideFormComponent } from 'factories/SideForm'\r\nimport { Emitter } from 'helpers/events'\r\nimport { getUserPermission } from 'helpers/auth'\r\nimport { t } from 'helpers/i18n'\r\nimport Search from 'containers/Products/Select'\r\n\r\nexport default createSideFormComponent({\r\n getStorageKey: (self) => 'orders.formView.sideForm',\r\n searchLanguageKey: 'searchProducts',\r\n addItemLanguageKey: 'addToOrder',\r\n addItemsLanguageKey: 'addToOrder',\r\n addItemSuccessLanguageKey: 'addToOrderSuccess',\r\n submitButtonLanguageKey: 'add',\r\n tagSettingsEnabledSuffix: 'Purch',\r\n dropDownButtonMenuItems: (self) => {\r\n if (getUserPermission('FavoritesOnly') === 'Yes') {\r\n return []\r\n }\r\n\r\n const allowPunchout =\r\n !self.props.useInventoryBarcode &&\r\n ['New'].includes(self.props.parentRecord.status) &&\r\n getUserPermission('AllowPunchout') === 'Yes'\r\n\r\n return [\r\n ...(allowPunchout ? [{t('punchout')}] : []),\r\n ...(getUserPermission('AddNonStockItems') !== 'No'\r\n ? [{t('addNonStock')}]\r\n : []),\r\n ...(!self.props.useInventoryBarcode\r\n ? [\r\n {t('addFromList')},\r\n {t('addFromFile')},\r\n ]\r\n : []),\r\n ]\r\n },\r\n dropdownButtonMenuClickHandler: (self) => (e) => {\r\n if (e.key === 'addNonStock') {\r\n Emitter.emit('orders.orderItems.createButtonClick', {\r\n ...self.state,\r\n nonStock: true,\r\n })\r\n }\r\n\r\n if (e.key === 'punchout') {\r\n if (self.props.parentRecord?.id && !self.props.parentHasUnsavedChanges) {\r\n self.handlePunchoutClick?.()\r\n } else {\r\n message.error(t('saveChangesFirst'))\r\n }\r\n }\r\n\r\n if (e.key === 'addFromList') {\r\n self.handleAddFromListClick?.()\r\n }\r\n\r\n if (e.key === 'addFromFile') {\r\n self.handleAddFromFileClick?.()\r\n }\r\n },\r\n})(Search)\r\n","import { createSideFormContainer } from 'factories/SideForm'\r\nimport productActions from 'actions/products'\r\nimport Component from 'components/Orders/FormView/SideForm'\r\n\r\nexport default createSideFormContainer({\r\n extraStateToProps: (state, props) => ({ settingsType: props.settingsType ?? 'order' }),\r\n extraDispatchToProps: (dispatch, props) => ({\r\n getBarcodes: (params) =>\r\n dispatch(\r\n productActions.getOptions({\r\n pageIndex: 1,\r\n pageSize: 100,\r\n active: 'Active',\r\n ...params,\r\n })\r\n ),\r\n }),\r\n})(Component)\r\n","import { Form, Input } from 'antd'\r\nimport { isEmpty } from 'lodash'\r\nimport { stopEvent } from 'helpers/events'\r\nimport { t } from 'helpers/i18n'\r\nimport { showValidationError } from 'helpers/errors'\r\nimport Modal from 'elements/Modal'\r\n\r\nfunction FormView(props) {\r\n const { form, visible, onCancel, onSubmit } = props\r\n\r\n function handleSubmit(e) {\r\n stopEvent(e)\r\n\r\n form.validateFields((errors, values) => {\r\n if (isEmpty(errors)) {\r\n onSubmit(values)\r\n } else {\r\n showValidationError()\r\n }\r\n })\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n {form.getFieldDecorator('packingListNumber', {\r\n rules: [{ required: true, message: t('requiredField') }],\r\n })()}\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Form.create()(FormView)\r\n","import * as React from 'react'\r\nimport {\r\n Alert,\r\n Button,\r\n Dropdown,\r\n Form,\r\n Input,\r\n Menu,\r\n Spin,\r\n Tabs,\r\n Tooltip,\r\n Popover,\r\n Badge,\r\n notification,\r\n message,\r\n} from 'antd'\r\nimport {\r\n cloneDeep,\r\n debounce,\r\n get,\r\n isEmpty,\r\n isEqual,\r\n isNil,\r\n set,\r\n orderBy,\r\n toString as str,\r\n invoke,\r\n remove,\r\n pick,\r\n flow,\r\n} from 'lodash'\r\nimport produce from 'immer'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { createPrintHandler, resetPrintHandler } from 'helpers/print'\r\nimport { setStorageItem, getStorageItem } from 'helpers/localStorage'\r\nimport {\r\n showError,\r\n showClientNotifications,\r\n resourceNotFound,\r\n ValidationError,\r\n ClientNotifications,\r\n showValidationError,\r\n} from 'helpers/errors'\r\nimport { createResetState, DEBOUNCE, encodeState, HARD_SPACE } from 'helpers/utils'\r\nimport {\r\n createFieldFactory,\r\n createHandleSubmit,\r\n createLabelFactory,\r\n createSaveDocumentItems,\r\n getChangedItems,\r\n isReadOnly,\r\n confirmUnsavedChanges,\r\n validateMultipleEmails,\r\n areEmails,\r\n} from 'helpers/formViews'\r\nimport { stopEvent, Emitter } from 'helpers/events'\r\nimport { isValidDate, formatUserTime } from 'helpers/dateTime'\r\nimport { t, toLocaleCurrency } from 'helpers/i18n'\r\nimport { allowPricing, getUserPermission } from 'helpers/auth'\r\nimport {\r\n recalculateQuantityOrdered,\r\n createGeneratePurchaseOrderNumbers,\r\n calculateOrderTotals,\r\n getReceivedItems,\r\n BadgeContainer,\r\n getTagFieldNames,\r\n} from 'helpers/procurement'\r\nimport { createSaveFormInstances, createRefreshFormInstances, FormInstancesContext } from 'helpers/formInstances'\r\nimport { FORM_INSTANCES_REFRESH, LIST_MODAL_CLEAR_SELECTION, FORM_CHANGE_EVENT } from 'options/events'\r\nimport { getFileExtension } from 'helpers/downloadItems'\r\nimport requisitionerFields from 'options/requisitionerFields'\r\nimport FormButtons from 'elements/FormButtons'\r\nimport FormInstances from 'containers/Orders/Forms'\r\nimport Select, { Option, getOptionProps } from 'elements/Select'\r\nimport Drawer from 'elements/Drawer'\r\nimport Modal from 'elements/Modal'\r\nimport Checkbox from 'elements/Checkbox'\r\nimport Comments from 'elements/Comments'\r\nimport Icon from 'elements/Icon'\r\nimport { Row, Col } from 'elements/Grid'\r\nimport Documents from 'containers/Documents/ChildListView'\r\nimport OrderItems from 'containers/Orders/Items'\r\nimport Help from 'elements/Help'\r\nimport SideForm from 'containers/Orders/FormView/SideForm'\r\nimport OrderSuppliers from 'containers/Orders/Suppliers'\r\nimport PackingListNumber from './PackingListNumber'\r\nimport SendEmail from 'components/SendEmail'\r\nimport Print from 'containers/Orders/Print'\r\n\r\nconst getStorageKey = () => 'orders.formView'\r\n\r\nclass FormView extends React.Component {\r\n state = {}\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.printableRef = React.createRef()\r\n this.handleFormSubmit = createHandleSubmit(this)\r\n this.saveDocumentItems = createSaveDocumentItems(this, 'Order')\r\n this.repopulateOrderItems = debounce(this.repopulateOrderItems, DEBOUNCE)\r\n this.refreshOrderSupplierItems = debounce(this.refreshOrderSupplierItems, DEBOUNCE)\r\n this.generatePurchaseOrderNumbers = createGeneratePurchaseOrderNumbers(this)\r\n this.resetState = createResetState(\r\n this,\r\n { requireQuantity: true, tabsActiveKey: 'items' },\r\n getStorageItem(getStorageKey(), {})\r\n )\r\n this.saveFormInstances = createSaveFormInstances(this, { objectType: 'Order' })\r\n this.refreshFormInstances = createRefreshFormInstances(this, { objectType: 'Order' })\r\n }\r\n\r\n async componentDidMount() {\r\n await this.resetState()\r\n await this.fetchItem()\r\n\r\n Emitter.on(FORM_INSTANCES_REFRESH, this.refreshFormInstances)\r\n Emitter.on(FORM_CHANGE_EVENT, this.handleFormChange)\r\n }\r\n\r\n componentWillUnmount() {\r\n Emitter.off(FORM_INSTANCES_REFRESH, this.refreshFormInstances)\r\n Emitter.off(FORM_CHANGE_EVENT, this.handleFormChange)\r\n }\r\n\r\n handleFormChange = () => this.setState({ formHasChanged: true })\r\n\r\n beforeValidateFields = () => {\r\n requisitionerFields.forEach(({ key }) =>\r\n this.props.form.setFields({ [key]: { value: this.state.item[key], errors: null } })\r\n )\r\n }\r\n\r\n promiseState = (state = {}) => new Promise((resolve) => this.setState(state, resolve))\r\n\r\n saveState = () => setStorageItem(getStorageKey(), pick(this.state, ['quickscan', 'requireQuantity']))\r\n\r\n getItemId = () => {\r\n const itemId = [\r\n this.state.item?.id,\r\n this.props.linkTargetRecord?.orderId,\r\n this.props.linkTargetRecord?.relatedOrderId,\r\n this.props.linkTargetRecord?.objectId,\r\n ].find(Boolean)\r\n\r\n if (itemId && this.props.userIsInRoleSupplier) {\r\n const targetTenantId = this.props.filterDto?.tenantId ?? 0\r\n\r\n return `${itemId}?targetTenantId=${targetTenantId}`\r\n }\r\n\r\n return itemId\r\n }\r\n\r\n fetchItem = async ({ itemId = this.getItemId() } = {}) => {\r\n try {\r\n const responses = await Promise.all([\r\n itemId\r\n ? this.props.getItem(itemId).catch((error) => {\r\n this.props.onCancel?.()\r\n throw error\r\n })\r\n : !this.props.linkTargetRecord\r\n ? this.props.newItem({})\r\n : resourceNotFound(this),\r\n this.props.getSettings({ type: this.props.settingsType ?? 'order' }),\r\n ])\r\n\r\n const item = cloneDeep(responses[0].value.data)\r\n const customerId = item.customerId || this.props.user.customerId\r\n const targetTenantId = this.props.filterDto?.tenantId ?? 0\r\n\r\n const [documentItems, billToAddressList, shipToAddressList, orderItems, orderSupplierItems, formInstanceItems] =\r\n await Promise.all([\r\n item.id\r\n ? this.props.getDocumentItems({\r\n request: {\r\n domainObjectId: item.id,\r\n domainObjectType: 'Order',\r\n documentType: 'ObjectDocument',\r\n },\r\n targetTenantId,\r\n })\r\n : Promise.resolve(null),\r\n this.props.getAddressList({ type: 'billto', targetTenantId, customerId }),\r\n this.props.getAddressList({ type: 'shipto', targetTenantId, customerId }),\r\n item.id\r\n ? this.props.getOrderItems(item.id, { includeInventoryStatus: true, targetTenantId })\r\n : Promise.resolve(null),\r\n item.id ? this.props.getOrderSupplierItems(item.id, { targetTenantId }) : Promise.resolve(null),\r\n item.id\r\n ? this.props.getFormInstanceItems({\r\n objectType: 'Order',\r\n objectId: item.id,\r\n targetTenantId,\r\n })\r\n : Promise.resolve(null),\r\n ])\r\n\r\n const populatedOrderItems = get(orderItems, 'value.data.items', []).map((each) => ({\r\n ...each,\r\n populated: true,\r\n timestamp: new Date().toJSON(),\r\n }))\r\n\r\n this.setState(\r\n {\r\n item: cloneDeep(item),\r\n itemOriginal: cloneDeep(item),\r\n fieldSettings: responses[1].value.data.fieldSettings,\r\n documentItems: get(documentItems, 'value.data.items', []),\r\n documentItemsOriginal: get(documentItems, 'value.data.items', []),\r\n billToAddressList: get(billToAddressList, 'value.data.items', []),\r\n shipToAddressList: get(shipToAddressList, 'value.data.items', []),\r\n orderItems: cloneDeep(populatedOrderItems),\r\n orderItemsOriginal: cloneDeep(populatedOrderItems),\r\n orderItemsTotals: get(orderItems, 'value.data.pageTotals', {}),\r\n orderSupplierItems: get(orderSupplierItems, 'value.data.items', []),\r\n orderSupplierItemsOriginal: get(orderSupplierItems, 'value.data.items', []),\r\n orderSupplierItemsTotals: get(orderSupplierItems, 'value.data.pageTotals', {}),\r\n formInstanceItems: get(formInstanceItems, 'value.data.items', []),\r\n formInstanceItemsOriginal: get(formInstanceItems, 'value.data.items', []),\r\n formHasChanged: false,\r\n },\r\n this.generatePurchaseOrderNumbers\r\n )\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }\r\n\r\n refetchItem = async ({ itemId = this.getItemId() } = {}) => {\r\n try {\r\n const response = await this.props.getItem(itemId).catch((error) => {\r\n this.props.onCancel?.()\r\n throw error\r\n })\r\n\r\n const item = cloneDeep(response.value.data)\r\n\r\n this.setState({\r\n item: cloneDeep(item),\r\n itemOriginal: cloneDeep(item),\r\n })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }\r\n\r\n setItemValue = (name, value) =>\r\n this.setState(\r\n produce((draft) => {\r\n set(draft.item, name, value)\r\n\r\n if (name === 'shipToAddressId') {\r\n draft.item.taxRate = draft.shipToAddressList.find((one) => one.id === value).taxRate / 100\r\n }\r\n\r\n this.props.form.setFieldsValue({ [name]: value })\r\n }),\r\n this.refreshOrderTotals\r\n )\r\n\r\n saveItem = async (item) => {\r\n if (!item) {\r\n throw new Error('item is undefined')\r\n }\r\n\r\n try {\r\n this.setState({ clientNotifications: null })\r\n\r\n const response = await this.props.saveOrder({\r\n order: item,\r\n orderItems: produce(getChangedItems(this.state.orderItemsOriginal, this.state.orderItems), (draft) => {\r\n draft.creating = draft.creating.map((each) => ({\r\n ...each,\r\n quantityReceived: each.quantityReceived + each.quantityReceivedDelta,\r\n }))\r\n\r\n draft.updating = draft.updating.map((each) => ({\r\n ...each,\r\n quantityReceived: each.quantityReceived + each.quantityReceivedDelta,\r\n }))\r\n }),\r\n orderSuppliers: getChangedItems(this.state.orderSupplierItemsOriginal, this.state.orderSupplierItems),\r\n })\r\n\r\n const { failureCount = 0, clientNotifications = [], items = [] } = response.value.data\r\n\r\n showClientNotifications({ response })\r\n\r\n if (failureCount > 0) {\r\n this.setState({ clientNotifications })\r\n\r\n throw new Error()\r\n }\r\n\r\n const data = items[0]\r\n\r\n if (data.id) {\r\n await this.saveDocumentItems(data.id)\r\n }\r\n\r\n return { value: { data } }\r\n } catch (error) {\r\n const clientNotifications = error?.data?.clientNotifications ?? []\r\n\r\n showClientNotifications({ clientNotifications })\r\n\r\n if (!isEmpty(clientNotifications)) {\r\n this.setState({ clientNotifications })\r\n\r\n throw new Error()\r\n } else {\r\n throw error\r\n }\r\n }\r\n }\r\n\r\n handleSideFormSubmit = async (sideFormState) => {\r\n const {\r\n assetDisplayName = '',\r\n jobDisplayName = '',\r\n locationDisplayName = '',\r\n operatorDisplayName = '',\r\n ...params\r\n } = cloneDeep(sideFormState)\r\n\r\n try {\r\n this.setState({ sideFormLoading: true, tabsActiveKey: 'items', formButtonsDisabled: true })\r\n\r\n const quantityOrderedMin = this.props.customer.generalSettings.allowZeroQuantityOnOrderedItems ? 0 : 1\r\n\r\n const response = await this.props.populateOrderItems([\r\n {\r\n quantityOrdered: params.quantity ?? quantityOrderedMin,\r\n barcode: params.barcode,\r\n assetId: params.asset?.id,\r\n assetName: params.asset?.name ?? `*${assetDisplayName}`,\r\n assetNumber: params.asset?.number,\r\n assetBarcode: params.asset?.barcode ?? params.assetBarcode,\r\n jobId: params.job?.id,\r\n jobName: params.job?.name ?? `*${jobDisplayName}`,\r\n jobNumber: params.job?.number,\r\n jobBarcode:\r\n params.job?.barcode ??\r\n params.jobBarcode ??\r\n (!this.props.customer.tagSettings.tag1Restricted ? jobDisplayName : undefined),\r\n locationId: params.location?.id,\r\n locationName: params.location?.name ?? `*${locationDisplayName}`,\r\n locationNumber: params.location?.number,\r\n locationBarcode: params.location?.barcode ?? params.locationBarcode,\r\n operatorId: params.operator?.id,\r\n operatorName: params.operator?.name ?? `*${operatorDisplayName}`,\r\n operatorNumber: params.operator?.number,\r\n operatorBarcode: params.operator?.barcode ?? params.operatorBarcode,\r\n tagA: params.tagA,\r\n tagB: params.tagB,\r\n tagC: params.tagC,\r\n tagD: params.tagD,\r\n tagE: params.tagE,\r\n userName: this.props.user.userName,\r\n sourceCatalogName: params.sourceCatalogName,\r\n },\r\n ])\r\n\r\n this.setState({ sideFormLoading: false })\r\n\r\n showClientNotifications({ response })\r\n\r\n if (response.value.data.failureCount > 0) {\r\n throw new Error()\r\n }\r\n\r\n await this.promiseState(\r\n produce((draft) => {\r\n const seed = Date.now() * -1\r\n\r\n draft.orderItems.unshift(\r\n ...response.value.data.items.map((each, index) => ({\r\n ...each,\r\n quantityOrdered: recalculateQuantityOrdered(each, this.props.customer),\r\n id: seed - index,\r\n orderItemId: seed - index,\r\n populated: true,\r\n timestamp: new Date().toJSON(),\r\n }))\r\n )\r\n })\r\n )\r\n await this.refreshOrderTotals()\r\n await this.refreshOrderSupplierItems()\r\n } catch (error) {\r\n showError({ error })\r\n\r\n this.setState({ sideFormLoading: false })\r\n\r\n return false\r\n } finally {\r\n this.setState({ formButtonsDisabled: false })\r\n }\r\n\r\n return true\r\n }\r\n\r\n repopulateOrderItems = async () => {\r\n let failureCount = 0\r\n\r\n try {\r\n const { orderItems } = this.state\r\n\r\n const populatedOrderItems = await Promise.all(\r\n orderItems.map((each) => {\r\n const { id, orderItemId, populated } = each\r\n\r\n if (populated) {\r\n return each\r\n }\r\n\r\n this.setState({ formButtonsDisabled: true, orderItemsLoading: true })\r\n\r\n return this.props\r\n .populateOrderItems([\r\n {\r\n ...each,\r\n id: id > 0 ? id : undefined,\r\n orderItemId: orderItemId > 0 ? orderItemId : undefined,\r\n },\r\n ])\r\n .then((response) => {\r\n showClientNotifications({ response })\r\n\r\n failureCount += response.value.data.failureCount\r\n\r\n return {\r\n ...(response.value.data.items[0] ?? each),\r\n id,\r\n orderItemId,\r\n populated: true,\r\n timestamp: new Date().toJSON(),\r\n }\r\n })\r\n })\r\n )\r\n\r\n await this.promiseState({ orderItems: populatedOrderItems })\r\n } catch (error) {\r\n failureCount++\r\n showError({ error })\r\n } finally {\r\n this.setState({ formButtonsDisabled: false, orderItemsLoading: false })\r\n }\r\n\r\n return failureCount\r\n }\r\n\r\n handleOrderItemsChange = async (changed = []) => {\r\n let failureCount = 0\r\n let values = changed\r\n\r\n try {\r\n if (changed.some((one) => one.copyTagValuesToAllItems)) {\r\n const item = { ...changed.find((one) => one.copyTagValuesToAllItems), copyTagValuesToAllItems: false }\r\n const tagValues = pick(item, getTagFieldNames())\r\n const otherItems = changed.filter((each) => each.id !== item.id).map((each) => ({ ...each, ...tagValues }))\r\n values = [item, ...otherItems]\r\n }\r\n\r\n const { deleting = [] } = getChangedItems(this.state.orderItems, values)\r\n const issuedOrderItems = deleting.filter((each) => each.quantityIssued > 0)\r\n\r\n if (!isEmpty(issuedOrderItems)) {\r\n notification.error({\r\n message: t('error'),\r\n description: t('deleteIssuedOrderItemError'),\r\n })\r\n }\r\n\r\n await this.promiseState(\r\n produce((draft) => {\r\n draft.orderItems = orderBy(\r\n [...values, ...issuedOrderItems],\r\n [(each) => draft.orderItems.findIndex((one) => one.id === each.id)]\r\n )\r\n\r\n const orderItemsSupplierIds = draft.orderItems.map((each) => each.supplierId)\r\n\r\n remove(draft.orderSupplierItems, (each) => !orderItemsSupplierIds.includes(each.supplierId))\r\n\r\n draft.tabsActiveKey = 'items'\r\n })\r\n )\r\n failureCount += await this.repopulateOrderItems()\r\n failureCount += await this.refreshOrderSupplierItems()\r\n } catch (error) {\r\n failureCount++\r\n showError({ error })\r\n } finally {\r\n this.setState({ formButtonsDisabled: false, orderItemsLoading: false })\r\n }\r\n\r\n if (failureCount > 0) {\r\n throw new Error()\r\n }\r\n }\r\n\r\n handleOrderSuppliersItemsChange = async (values) => {\r\n let failureCount = 0\r\n\r\n try {\r\n this.setState({ formButtonsDisabled: true })\r\n await this.promiseState({ orderSupplierItems: values })\r\n await this.refreshOrderTotals()\r\n await this.generatePurchaseOrderNumbers()\r\n } catch (error) {\r\n failureCount++\r\n showError({ error })\r\n } finally {\r\n this.setState({ formButtonsDisabled: false })\r\n }\r\n\r\n if (failureCount > 0) {\r\n throw new Error()\r\n }\r\n }\r\n\r\n refreshOrderTotals = () =>\r\n this.promiseState(\r\n produce((draft) => {\r\n Object.assign(draft.item, calculateOrderTotals({ customer: this.props.customer, ...draft }))\r\n })\r\n )\r\n\r\n refreshOrderSupplierItems = async () => {\r\n let failureCount = 0\r\n\r\n try {\r\n this.setState({ formButtonsDisabled: true })\r\n\r\n const quantityOrderedMin = this.props.customer.generalSettings.allowZeroQuantityOnOrderedItems ? 0 : 1\r\n\r\n const supplierIds = this.state.orderItems\r\n .filter((each) => Boolean(each.supplierId) && each.quantityOrdered >= quantityOrderedMin)\r\n .map((each) => each.supplierId)\r\n\r\n const suppliers = await Promise.all(\r\n [...new Set(supplierIds)].map((each) => this.props.getSupplier(each).then((r) => r.value.data))\r\n )\r\n\r\n const seed = Date.now() * -1\r\n const orderSupplierItems = suppliers.map((each, index) => {\r\n const existing = this.state.orderSupplierItems.find((one) => one.supplierId === each.id)\r\n\r\n if (existing) {\r\n return existing\r\n }\r\n\r\n return {\r\n id: seed - index,\r\n orderSupplierId: seed - index,\r\n adjustments: 0,\r\n confirmedDescription: 'No',\r\n freight: 0,\r\n orderId: this.state.item.id,\r\n purchaseOrderNumber: '',\r\n shippingInstructions: each.shippingInstructions,\r\n supplierId: each.id,\r\n supplierName: each.name,\r\n }\r\n })\r\n\r\n await this.promiseState({ orderSupplierItems })\r\n await this.refreshOrderTotals()\r\n await this.generatePurchaseOrderNumbers()\r\n } catch (error) {\r\n failureCount++\r\n showError({ error })\r\n } finally {\r\n this.setState({ formButtonsDisabled: false })\r\n }\r\n\r\n return failureCount\r\n }\r\n\r\n getSelectedSupplierId = () => {\r\n const supplierIds = [...new Set(this.state.orderItems.map((each) => each.supplierId))]\r\n return supplierIds.length === 1 ? supplierIds[0] : this.state.orderItemsFilterDto?.supplierId\r\n }\r\n\r\n invokeAction = async (action) => {\r\n try {\r\n await this.props.onSave?.(true)\r\n\r\n this.setState({ clientNotifications: null })\r\n\r\n const response = await invoke(this.props, action, this.state.item.id)\r\n\r\n const { failureCount = 0, clientNotifications = [] } = response.value.data\r\n\r\n showClientNotifications({ response })\r\n\r\n if (failureCount > 0) {\r\n this.setState({ clientNotifications })\r\n\r\n throw new Error()\r\n }\r\n\r\n await this.refetchItem()\r\n } catch (error) {\r\n const clientNotifications = error?.data?.clientNotifications ?? []\r\n\r\n showClientNotifications({ clientNotifications })\r\n\r\n if (!isEmpty(clientNotifications)) {\r\n this.setState({ clientNotifications })\r\n } else {\r\n showError({ error })\r\n }\r\n } finally {\r\n await this.props.onSave?.(false)\r\n }\r\n }\r\n\r\n handleActionsMenuClick = ({ key }) => {\r\n switch (key) {\r\n case 'text/csv':\r\n case 'text/html':\r\n case 'application/pdf':\r\n case 'application/vnd.ms-excel':\r\n if (this.hasUnsavedChanges()) {\r\n message.error(t('saveChangesFirst'))\r\n } else {\r\n Emitter.emit('orders.orderItems.downloadItems', {\r\n parentId: this.state.item.id,\r\n acceptMimeType: key,\r\n pageTitle: `${t('order')} - ${this.state.item.id} - ${t('itemsTab')}`,\r\n fileExtension: getFileExtension(key),\r\n })\r\n }\r\n break\r\n\r\n case 'receiveAll':\r\n case 'unreceiveAll': {\r\n const supplierId = this.getSelectedSupplierId()\r\n\r\n if (isNil(supplierId)) {\r\n message.error(t('selectItemsSupplier'))\r\n } else {\r\n Modal.confirm({\r\n autoFocusButton: 'ok',\r\n title: t(`confirm${key}`),\r\n content: t(`confirm${key}Description`),\r\n okText: t('yes'),\r\n cancelText: t('no'),\r\n onOk: () =>\r\n this.setState(\r\n produce((draft) => {\r\n draft.orderItems\r\n .filter((each) => each.supplierId === supplierId && !each.lockedForCycleCount)\r\n .forEach((one) => {\r\n one.quantityReceived = key === 'receiveAll' ? one.quantityOrdered : 0\r\n })\r\n })\r\n ),\r\n })\r\n }\r\n break\r\n }\r\n\r\n case 'cancelOrder':\r\n if (this.hasUnsavedChanges()) {\r\n message.error(t('saveChangesFirst'))\r\n } else {\r\n Modal.confirm({\r\n autoFocusButton: 'ok',\r\n title: t('confirmCancelOrder'),\r\n content: t('confirmCancelOrderDescription'),\r\n okText: t('yes'),\r\n okType: 'danger',\r\n cancelText: t('no'),\r\n onOk: () => this.invokeAction('cancelOrder'),\r\n })\r\n }\r\n break\r\n\r\n case 'deleteOrder':\r\n Modal.confirm({\r\n autoFocusButton: 'ok',\r\n title: t('confirmDeleteOrder'),\r\n content: t('confirmDeleteOrderDescription'),\r\n okText: t('delete'),\r\n okType: 'danger',\r\n cancelText: t('cancel'),\r\n onOk: async () => {\r\n try {\r\n const response = await this.props.deleteOrder(this.state.item.id)\r\n\r\n showClientNotifications({ response })\r\n\r\n if (response.value.data.failureCount > 0) {\r\n throw new Error()\r\n }\r\n\r\n this.props.onSaveAndClose?.()\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n },\r\n })\r\n break\r\n\r\n case 'sendEmail':\r\n if (this.hasUnsavedChanges()) {\r\n message.error(t('saveChangesFirst'))\r\n } else {\r\n this.setState({ sendEmailVisible: true })\r\n }\r\n break\r\n\r\n case 'orderAuditReport':\r\n confirmUnsavedChanges(() => {\r\n this.props.history.push(\r\n `/reports/audit/orderAuditReport?${encodeState({\r\n search: str(this.state.item.id),\r\n searchFields: ['objectId'],\r\n searchType: 'Contains',\r\n showFilter: true,\r\n filterDto: {\r\n showOrdering: true,\r\n dateRange: { dateRangeType: 'LastNMonths', lastNValue: 12 },\r\n },\r\n })}`\r\n )\r\n this.props.onCancel()\r\n })\r\n break\r\n\r\n case 'orderDetailReport':\r\n confirmUnsavedChanges(() => {\r\n this.props.history.push(\r\n `/reports/orders/usageOrderReport?${encodeState({\r\n showFilter: true,\r\n filterDto: {\r\n orderId: this.state.item.id,\r\n showOrdering: true,\r\n dateRange: { dateRangeType: 'LastNMonths', lastNValue: 12 },\r\n },\r\n })}`\r\n )\r\n this.props.onCancel()\r\n })\r\n break\r\n\r\n case 'receivingAuditReport':\r\n confirmUnsavedChanges(() => {\r\n this.props.history.push(\r\n `/reports/inventory/receivingAuditReport?${encodeState({\r\n search: str(this.state.item.id),\r\n searchFields: ['orderId'],\r\n searchType: 'Contains',\r\n showFilter: true,\r\n filterDto: {\r\n showOrdering: true,\r\n dateRange: { dateRangeType: 'LastNMonths', lastNValue: 12 },\r\n },\r\n })}`\r\n )\r\n this.props.onCancel()\r\n })\r\n break\r\n\r\n case 'print':\r\n this.setState(\r\n produce((draft) => {\r\n draft.printItem = { ...draft.item, ...this.props.form.getFieldsValue() }\r\n draft.printVisible = true\r\n })\r\n )\r\n break\r\n\r\n default:\r\n message.warn(t('underDevelopment'))\r\n break\r\n }\r\n }\r\n\r\n invokeExtraAction = async (action) => {\r\n const { item } = this.state\r\n\r\n if (this.hasUnsavedChanges()) {\r\n message.error(t('saveChangesFirst'))\r\n return\r\n }\r\n\r\n if (\r\n action === 'sendOrder' &&\r\n this.props.customer.generalSettings.requireRequisitionerOnOrder &&\r\n requisitionerFields.some(({ key }) => isEmpty(item[key]))\r\n ) {\r\n this.setState({ validationErrors: true, tabsActiveKey: 'order' }, () => {\r\n showValidationError()\r\n requisitionerFields.forEach(({ key }) => {\r\n if (isEmpty(item[key])) {\r\n this.props.form.setFields({\r\n [key]: {\r\n value: item[key],\r\n errors: [new Error(t('requiredField'))],\r\n },\r\n })\r\n }\r\n })\r\n })\r\n } else {\r\n try {\r\n await this.props.onSave?.(true)\r\n\r\n this.setState({\r\n [`${action}ButtonLoading`]: true,\r\n clientNotifications: null,\r\n })\r\n\r\n if (action === 'resendOrder') {\r\n const supplierId = this.getSelectedSupplierId()\r\n\r\n if (isNil(supplierId)) {\r\n message.error(t('selectSupplierToResendOrder'))\r\n } else {\r\n const response = await this.props.resendOrder({\r\n orderId: item.id,\r\n supplierId,\r\n })\r\n\r\n showClientNotifications({ response })\r\n\r\n if (response.value.data.failureCount > 0) {\r\n throw new Error()\r\n }\r\n }\r\n } else if (this.props[action]) {\r\n const targetTenantId = this.props.filterDto?.tenantId ?? 0\r\n\r\n const response = await invoke(this.props, action, item.id, { targetTenantId })\r\n\r\n showClientNotifications({ response })\r\n\r\n if (response.value.data.failureCount > 0) {\r\n throw new Error()\r\n }\r\n\r\n await this.refetchItem()\r\n } else {\r\n message.warn(t('underDevelopment'))\r\n }\r\n\r\n await this.props.onSave?.(false)\r\n } catch (error) {\r\n showError({ error })\r\n await this.props.onSave?.(false)\r\n } finally {\r\n this.setState({ [`${action}ButtonLoading`]: false })\r\n }\r\n }\r\n }\r\n\r\n hasUnsavedChanges = () =>\r\n this.state.formHasChanged ||\r\n !this.state.item?.id ||\r\n !isEqual(this.state.item, this.state.itemOriginal) ||\r\n !isEqual(this.state.orderItems, this.state.orderItemsOriginal) ||\r\n !isEqual(this.state.orderSupplierItems, this.state.orderSupplierItemsOriginal) ||\r\n !isEqual(this.state.documentItems, this.state.documentItemsOriginal)\r\n\r\n handleSubmit = (e, { saveAndClose = true } = {}) => {\r\n stopEvent(e)\r\n\r\n if (this.props.customer.generalSettings.requirePackingListNumber) {\r\n const receivedItems = getReceivedItems(this.state.orderItemsOriginal, this.state.orderItems)\r\n\r\n if (receivedItems.some((one) => isEmpty(one.packingListNumber))) {\r\n return this.setState({ showAddPackingListNumberModal: true, saveAndClose })\r\n }\r\n\r\n return this.handleFormSubmit(e, { saveAndClose })\r\n }\r\n\r\n return this.handleFormSubmit(e, { saveAndClose })\r\n }\r\n\r\n handleAddPackingListNumberSubmit = ({ packingListNumber }) =>\r\n this.setState(\r\n produce((draft) => {\r\n const receivedItemIds = getReceivedItems(draft.orderItemsOriginal, draft.orderItems).map((each) => each.id)\r\n\r\n draft.orderItems.forEach((each) => {\r\n if (receivedItemIds.includes(each.id)) {\r\n each.packingListNumber = packingListNumber\r\n }\r\n })\r\n\r\n draft.showAddPackingListNumberModal = false\r\n }),\r\n (e) => this.handleSubmit(e, { saveAndClose: this.state.saveAndClose })\r\n )\r\n\r\n handleSendEmailSubmit = async (recipients) => {\r\n try {\r\n this.setState({ sendEmailLoading: true })\r\n\r\n const response = await this.props.emailOrder({\r\n recipients,\r\n order: this.state.item ?? {},\r\n orderItems: this.state.orderItems ?? [],\r\n orderSuppliers: this.state.orderSupplierItems ?? [],\r\n })\r\n\r\n showClientNotifications({ response })\r\n\r\n if (response.value.data.failureCount > 0) {\r\n throw new Error()\r\n }\r\n\r\n this.setState({\r\n sendEmailLoading: false,\r\n sendEmailVisible: false,\r\n })\r\n } catch (error) {\r\n showError({ error })\r\n this.setState({ sendEmailLoading: false })\r\n }\r\n }\r\n\r\n handleAddFromList = async (sideFormState) => {\r\n const {\r\n assetDisplayName = '',\r\n jobDisplayName = '',\r\n locationDisplayName = '',\r\n operatorDisplayName = '',\r\n ...params\r\n } = cloneDeep(sideFormState)\r\n\r\n const asset = (params?.assets?.items ?? []).find((one) => one.id === params.assetId)\r\n const job = (params?.jobs?.items ?? []).find((one) => one.id === params.jobId)\r\n const location = (params?.locations?.items ?? []).find((one) => one.id === params.locationId)\r\n const operator = (params?.operators?.items ?? []).find((one) => one.id === params.operatorId)\r\n const quantityOrderedMin = this.props.customer.generalSettings.allowZeroQuantityOnOrderedItems ? 0 : 1\r\n\r\n this.setState({ addFromListLoading: true, tabsActiveKey: 'items' })\r\n\r\n try {\r\n const response = await this.props.populateOrderItems(\r\n params.addFromListItems.map((each) => ({\r\n quantityOrdered: Math.max(each.quantity, quantityOrderedMin),\r\n barcode: each.barcode,\r\n assetId: asset?.id,\r\n assetName: asset?.name ?? `*${assetDisplayName}`,\r\n assetBarcode: asset?.barcode,\r\n jobId: job?.id,\r\n jobName: job?.name ?? `*${jobDisplayName}`,\r\n jobNumber: job?.number,\r\n jobBarcode: job?.barcode ?? jobDisplayName,\r\n locationId: location?.id,\r\n locationName: location?.name ?? `*${locationDisplayName}`,\r\n locationBarcode: location?.barcode,\r\n operatorId: operator?.id,\r\n operatorName: operator?.name ?? `*${operatorDisplayName}`,\r\n operatorNumber: operator?.number,\r\n operatorBarcode: operator?.barcode,\r\n tagA: params.tagA,\r\n tagB: params.tagB,\r\n tagC: params.tagC,\r\n tagD: params.tagD,\r\n tagE: params.tagE,\r\n userName: this.props.user.userName,\r\n }))\r\n )\r\n\r\n this.setState({ sideFormLoading: false })\r\n\r\n showClientNotifications({ response })\r\n\r\n if (response.value.data.failureCount > 0) {\r\n throw new Error()\r\n }\r\n\r\n response.value.data.items.map((each) => message.success(`${each.barcode} ${t('addToOrderSuccess')}`))\r\n\r\n await this.promiseState(\r\n produce((draft) => {\r\n const seed = Date.now() * -1\r\n draft.orderItems.unshift(\r\n ...response.value.data.items.map((each, index) => ({\r\n ...each,\r\n quantityOrdered: recalculateQuantityOrdered(each, this.props.customer),\r\n id: seed - index,\r\n orderItemId: seed - index,\r\n populated: true,\r\n timestamp: new Date().toJSON(),\r\n }))\r\n )\r\n })\r\n )\r\n await this.refreshOrderTotals()\r\n await this.refreshOrderSupplierItems()\r\n\r\n Emitter.emit(LIST_MODAL_CLEAR_SELECTION)\r\n } catch (error) {\r\n showError({ error })\r\n\r\n return false\r\n } finally {\r\n this.setState({ addFromListLoading: false })\r\n }\r\n\r\n return true\r\n }\r\n\r\n handleSubmitOrderClick = async () => {\r\n const { item } = this.state\r\n const quantityOrderedMin = this.props.customer.generalSettings.allowZeroQuantityOnOrderedItems ? 0 : 1\r\n\r\n if (\r\n this.props.customer.generalSettings.requireRequisitionerOnOrder &&\r\n requisitionerFields.some(({ key }) => isEmpty(item[key])) &&\r\n this.state.orderItems.some((one) => one.quantityOrdered >= quantityOrderedMin)\r\n ) {\r\n this.setState({ showRequisitionerInformationModal: true })\r\n } else {\r\n try {\r\n await this.props.onSave?.(true)\r\n\r\n this.setState({ actionButtonLoading: true })\r\n\r\n const response = await this.props.submitItem(item.id)\r\n\r\n showClientNotifications({ response })\r\n\r\n if (response.value.data.failureCount > 0) {\r\n throw new Error()\r\n }\r\n\r\n await this.refetchItem()\r\n\r\n this.setState({ showRequisitionerInformationModal: false })\r\n } catch (error) {\r\n showError({ error })\r\n } finally {\r\n await this.props.onSave?.(false)\r\n this.setState({ actionButtonLoading: false })\r\n }\r\n }\r\n }\r\n\r\n handleSaveAndSubmitOrderClick = async (e) => {\r\n const { item } = this.state\r\n\r\n try {\r\n await this.props.onSave?.(true)\r\n\r\n this.setState({ actionButtonLoading: true })\r\n\r\n await this.saveItem(item)\r\n\r\n const response = await this.props.submitItem(item.id)\r\n\r\n showClientNotifications({ response })\r\n\r\n if (response.value.data.failureCount > 0) {\r\n throw new Error()\r\n }\r\n\r\n await this.refetchItem()\r\n\r\n this.setState({ showRequisitionerInformationModal: false })\r\n } catch (error) {\r\n showClientNotifications({ error })\r\n showError({ error })\r\n } finally {\r\n await this.props.onSave?.(false)\r\n this.setState({ actionButtonLoading: false })\r\n }\r\n }\r\n\r\n render() {\r\n const { item, fieldSettings, orderItems, orderSupplierItems } = this.state\r\n\r\n if (!item || !fieldSettings) {\r\n return \r\n }\r\n\r\n const createLabel = createLabelFactory(fieldSettings)\r\n const createFieldDecorator = createFieldFactory(this.props.form, item, fieldSettings)\r\n\r\n const targetTenantId = this.props.filterDto?.tenantId ?? 0\r\n const extraButtonsDisabled =\r\n this.state.formButtonsDisabled || this.state.saveButtonLoading || this.state.saveAndCloseButtonLoading\r\n const userIsSupplierOrDistributer = this.props.userIsInRoleSupplier || this.props.userIsInRoleDistributor\r\n const orderIsPartiallyReceived = this.state.orderItems.some((one) => one.quantityReceived > 0)\r\n\r\n const orderIsReadOnly =\r\n isReadOnly(this) || userIsSupplierOrDistributer || ['Draft', 'Cancelled'].includes(item.status)\r\n\r\n const orderIsEditable =\r\n !orderIsReadOnly &&\r\n item.status !== 'Processed' &&\r\n (['New', 'PendingApproval'].includes(item.status) || this.props.customer.generalSettings.allowOrderEditAfterSend)\r\n\r\n const orderIsReceivable =\r\n !orderIsReadOnly &&\r\n ['Sent', 'Received', 'Processed'].includes(item.status) &&\r\n this.state.orderItems.some((one) => one.quantityOrdered > 0)\r\n\r\n const quantityOrderedMin = this.props.customer.generalSettings.allowZeroQuantityOnOrderedItems ? 0 : 1\r\n\r\n return (\r\n <>\r\n \r\n {item.id ? (\r\n \r\n {orderIsReceivable &&\r\n getUserPermission('ReceiveOrders') !== 'No' && [\r\n {t('receiveAll')},\r\n {t('unreceiveAll')},\r\n ,\r\n ]}\r\n {getUserPermission('Reports') !== 'No' &&\r\n !userIsSupplierOrDistributer && [\r\n {t('receivingAuditReport')},\r\n {t('orderAuditReport')},\r\n {t('orderDetailReport')},\r\n ,\r\n ]}\r\n {userIsSupplierOrDistributer && {t('packingSlip')}}\r\n \r\n {t('asCsv')}\r\n {t('asExcel')}\r\n {t('asPdf')}\r\n {t('asHtml')}\r\n \r\n {t('email')}\r\n {orderIsEditable &&\r\n item.status === 'New' && [\r\n ,\r\n {t('deleteOrder')},\r\n ]}\r\n {orderIsEditable &&\r\n item.status === 'Sent' &&\r\n !orderIsPartiallyReceived && [\r\n ,\r\n \r\n {t('cancelOrder')}\r\n ,\r\n ]}\r\n {orderIsEditable &&\r\n item.status === 'PendingApproval' && [\r\n ,\r\n \r\n {t('cancelOrder')}\r\n ,\r\n ]}\r\n \r\n \r\n {t('print...')}\r\n \r\n \r\n }\r\n trigger={['click']}\r\n >\r\n \r\n \r\n ) : null}\r\n
\r\n {item.status === 'Draft' && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n this.setState({ tabsActiveKey })}\r\n defaultActiveKey=\"items\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n {createFieldDecorator('billToAddressId')(\r\n this.setItemValue('billToAddressId', value)}\r\n placeholder={t('select')}\r\n allowClear={false}\r\n readOnly={!orderIsEditable}\r\n >\r\n {(this.state.billToAddressList ?? []).map((each) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n \r\n {createFieldDecorator('shipToAddressId')(\r\n this.setItemValue('shipToAddressId', value)}\r\n placeholder={t('select')}\r\n allowClear={false}\r\n readOnly={!orderIsEditable}\r\n >\r\n {(this.state.shipToAddressList ?? []).map((each) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n \r\n \r\n {requisitionerFields.map(({ key, type }) => (\r\n \r\n {createLabel(key)} \r\n \r\n ) : (\r\n createLabel(key)\r\n )\r\n }\r\n required={this.props.customer.generalSettings.requireRequisitionerOnOrder}\r\n >\r\n {createFieldDecorator(\r\n key,\r\n key === 'requisitionerEmail' ? { extraRules: [validateMultipleEmails()] } : undefined\r\n )(\r\n this.setItemValue(key, e.target.value)}\r\n readOnly={!orderIsEditable}\r\n />\r\n )}\r\n \r\n ))}\r\n \r\n \r\n \r\n {createFieldDecorator('accountCode')(\r\n this.setItemValue('accountCode', e.target.value)}\r\n readOnly={!orderIsEditable}\r\n />\r\n )}\r\n \r\n \r\n {createFieldDecorator('notifyRequisitioner', { valuePropName: 'checked' })(\r\n \r\n {createLabel('notifyRequisitioner')}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {createLabel('approveDate')}{' '}\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n {['confirmDate', 'receivedDate'].map((each) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n this.setItemValue('comment', value)}\r\n rows={7}\r\n label={createLabel('comment')}\r\n title={t('addComment')}\r\n readOnly={!orderIsEditable || this.props.tenantGroupIsCardinal}\r\n />\r\n \r\n {allowPricing() && (\r\n \r\n {[\r\n ...(this.props.customer.moduleSettings.enableTax\r\n ? ['exemptTotal', 'taxableTotal', 'taxTotal']\r\n : []),\r\n 'subTotal',\r\n 'adjustmentsTotal',\r\n 'freightTotal',\r\n 'orderTotal',\r\n ].map((each) => (\r\n \r\n {createLabel(each)}{' '}\r\n {`(${item.taxRate.toLocaleString(this.props.locale, {\r\n style: 'percent',\r\n maximumFractionDigits: 2,\r\n })})`}\r\n \r\n ) : (\r\n createLabel(each)\r\n )\r\n }\r\n >\r\n \r\n \r\n ))}\r\n \r\n )}\r\n \r\n \r\n \r\n this.setState({ orderItemsFilterDto })}\r\n parentHasUnsavedChanges={this.hasUnsavedChanges()}\r\n downloadItems={this.props.downloadOrderItems}\r\n loading={this.state.orderItemsLoading}\r\n onMoveOrderItems={() => this.fetchItem()}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n this.setState({ documentItems: values })}\r\n readOnly={!orderIsEditable}\r\n targetTenantId={targetTenantId}\r\n />\r\n \r\n {!isNil(item.id) && (getUserPermission('Master') === 'Yes' || getUserPermission('Forms') !== 'None') && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {!(this.props.tenantGroupIsCardinal && item.ackReceivedForOrder) && (\r\n
\r\n {!userIsSupplierOrDistributer && item.status === 'New' && item.userAuthorizedForAllLocations && (\r\n this.invokeExtraAction('sendOrder')}\r\n loading={this.state.sendOrderButtonLoading}\r\n disabled={isEmpty(this.state.orderItems) || !orderIsEditable || extraButtonsDisabled}\r\n >\r\n {t('send')}\r\n \r\n )}{' '}\r\n {!userIsSupplierOrDistributer && item.status === 'Sent' && item.userAuthorizedForAllLocations && (\r\n this.invokeExtraAction('resendOrder')}\r\n loading={this.state.resendOrderButtonLoading}\r\n disabled={isEmpty(this.state.orderItems) || extraButtonsDisabled}\r\n >\r\n {t('resend')}\r\n \r\n )}{' '}\r\n {!userIsSupplierOrDistributer &&\r\n item.status === 'PendingApproval' &&\r\n !item.userAuthorizedForOrderValue && (\r\n this.invokeExtraAction('requestApproval')}\r\n loading={this.state.requestApprovalButtonLoading}\r\n disabled={isEmpty(this.state.orderItems) || !orderIsEditable || extraButtonsDisabled}\r\n >\r\n {t('requestApproval')}\r\n \r\n )}{' '}\r\n {!userIsSupplierOrDistributer &&\r\n item.status === 'PendingApproval' &&\r\n item.userAuthorizedForOrderValue &&\r\n item.userAuthorizedForAllLocations && (\r\n this.invokeExtraAction('approveOrder')}\r\n loading={this.state.approveOrderButtonLoading}\r\n disabled={isEmpty(this.state.orderItems) || !orderIsEditable || extraButtonsDisabled}\r\n >\r\n {t('approve')}\r\n \r\n )}{' '}\r\n {userIsSupplierOrDistributer &&\r\n !this.props.tenantTypeIsTrms &&\r\n ['Sent', 'Backorder'].includes(item.status) && (\r\n this.invokeExtraAction('processOrder')}\r\n loading={this.state.processOrderButtonLoading}\r\n disabled={isEmpty(this.state.orderItems) || extraButtonsDisabled}\r\n >\r\n {t('process')}\r\n \r\n )}{' '}\r\n {userIsSupplierOrDistributer && !this.props.tenantTypeIsTrms && item.status === 'Processed' && (\r\n \r\n this.invokeExtraAction('undoProcessed')}\r\n loading={this.state.undoProcessedButtonLoading}\r\n disabled={this.state.formButtonsDisabled}\r\n >\r\n {t('undoProcessed')}\r\n \r\n \r\n )}\r\n {item.id &&\r\n item.status === 'Draft' &&\r\n !isEmpty(this.state.orderItems) &&\r\n getUserPermission('Orders') === 'All' && (\r\n \r\n {t('submit')}\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n \r\n {orderIsEditable && getUserPermission('Purchase') !== 'No' && !orderIsPartiallyReceived && (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.setState({ formButtonsDisabled: pending, orderItemsLoading: pending })}\r\n onSubmit={this.handleSideFormSubmit}\r\n loading={this.state.sideFormLoading}\r\n parentRecord={{\r\n fieldSettings,\r\n ...item,\r\n ...pick(this.state, ['orderItems', 'orderSupplierItems', 'documentItems', 'purchaseOrderNumbers']),\r\n }}\r\n parentHasUnsavedChanges={this.hasUnsavedChanges()}\r\n onPunchout={() => this.setState({ tabsActiveKey: 'items' }, this.fetchItem)}\r\n onAddFromList={this.handleAddFromList}\r\n addFromListLoading={this.state.addFromListLoading}\r\n domainObjectType=\"Order\"\r\n disabled={extraButtonsDisabled}\r\n quantityMin={quantityOrderedMin}\r\n />\r\n
\r\n )}\r\n this.setState({ showDataEntrySettings: false })}\r\n footer={null}\r\n >\r\n \r\n this.setState({ quickscan: e.target.checked }, this.saveState)}\r\n >\r\n {t('quickscan')} \r\n \r\n \r\n \r\n this.setState({ requireQuantity: e.target.checked }, this.saveState)}\r\n >\r\n {t('requireQuantity')}\r\n \r\n \r\n \r\n this.setState({ showAddPackingListNumberModal: false })}\r\n onSubmit={this.handleAddPackingListNumberSubmit}\r\n />\r\n this.setState({ sendEmailVisible: false })}\r\n />\r\n this.setState({ printVisible: false }, resetPrintHandler)}\r\n width={992}\r\n visible={this.state.printVisible}\r\n >\r\n
\r\n \r\n
\r\n \r\n isEmpty(item[key]) || (key === 'requisitionerEmail' && !areEmails(item[key]))\r\n ),\r\n loading: this.state.actionButtonLoading,\r\n }}\r\n onCancel={() => this.setState({ showRequisitionerInformationModal: false })}\r\n visible={this.state.showRequisitionerInformationModal}\r\n >\r\n \r\n {requisitionerFields.map(({ key, type }) => (\r\n \r\n \r\n this.setState(\r\n produce((draft) => {\r\n draft.item[key] = e.target.value\r\n })\r\n )\r\n }\r\n />\r\n \r\n ))}\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default flow(\r\n withRouter,\r\n Form.create({\r\n onValuesChange: (...params) => Emitter.emit(FORM_CHANGE_EVENT, ...params),\r\n })\r\n)(FormView)\r\n","import { memoize } from 'lodash'\r\nimport actions from 'actions/orders'\r\nimport { createFormViewContainer } from 'factories/FormView'\r\nimport {\r\n createChildItemsDispatchToProps,\r\n createDocumentsDispatchToProps,\r\n createLinkedItemsDispatchToProps,\r\n} from 'helpers/formViews'\r\nimport documentActions from 'actions/documents'\r\nimport orderItemActions from 'actions/orders/orderItems'\r\nimport orderSupplierActions from 'actions/orders/orderSuppliers'\r\nimport locationActions from 'actions/locations'\r\nimport supplierActions from 'actions/suppliers'\r\nimport formInstanceActions from 'actions/formInstances'\r\nimport Component from 'components/Orders/FormView'\r\n\r\nexport default createFormViewContainer({\r\n actions,\r\n extraDispatchToProps: (dispatch, props) => ({\r\n newItem: (params) => dispatch(actions.newItem(params)),\r\n getSupplier: memoize((supplierId) => dispatch(supplierActions.getItem(supplierId))),\r\n getAddressList: (params) => dispatch(locationActions.getAddressList(params)),\r\n populateOrderItems: (params) => dispatch(orderItemActions.populateOrderItems(params)),\r\n saveOrder: (params) => dispatch(actions.saveOrder(params)),\r\n cancelOrder: (params) => dispatch(actions.cancelOrder(params)),\r\n deleteOrder: (orderId) => dispatch(actions.deleteItem(orderId)),\r\n sendOrder: (params) => dispatch(actions.sendOrder(params)),\r\n resendOrder: (params) => dispatch(actions.resendOrder(params)),\r\n emailOrder: (params) => dispatch(actions.emailOrder(params)),\r\n submitItem: (orderId) => dispatch(actions.submitItem(orderId)),\r\n requestApproval: (params) => dispatch(actions.requestApproval(params)),\r\n approveOrder: (params) => dispatch(actions.approveOrder(params)),\r\n processOrder: (params, options) => dispatch(actions.processOrder(params, options)),\r\n undoProcessed: (params, options) => dispatch(actions.undoProcessed(params, options)),\r\n generatePurchaseOrderNumber: (params) =>\r\n dispatch(orderSupplierActions.generatePurchaseOrderNumber(params)),\r\n ...createDocumentsDispatchToProps(dispatch, documentActions),\r\n ...createChildItemsDispatchToProps(dispatch, 'Order', orderItemActions),\r\n ...createChildItemsDispatchToProps(dispatch, 'OrderSupplier', orderSupplierActions),\r\n ...createLinkedItemsDispatchToProps(dispatch, 'FormInstance', formInstanceActions),\r\n }),\r\n})(Component)\r\n","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","import * as React from 'react'\r\nimport { Modal, Form, Tooltip, Button } from 'antd'\r\nimport { isEmpty, pick } from 'lodash'\r\nimport copyToClipboard from 'copy-to-clipboard'\r\nimport { t } from 'helpers/i18n'\r\nimport { stopEvent } from 'helpers/events'\r\nimport { showValidationError } from 'helpers/errors'\r\nimport Select from 'elements/Select'\r\nimport Icon from 'elements/Icon'\r\n\r\nfunction FormView(props) {\r\n const selectRecipientsRef = React.useRef(null)\r\n\r\n const [recipients, setRecipients] = React.useState([])\r\n\r\n function handleSubmit(e) {\r\n stopEvent(e)\r\n\r\n props.form.validateFields((errors, values) => {\r\n if (isEmpty(errors)) {\r\n props.onSubmit?.(recipients)\r\n } else {\r\n showValidationError()\r\n }\r\n })\r\n }\r\n\r\n React.useEffect(() => {\r\n setRecipients([])\r\n\r\n props.form.resetFields(['recipients'])\r\n\r\n if (props.visible) {\r\n window.setTimeout(() => selectRecipientsRef.current?.focus?.(), 1000)\r\n }\r\n }, [props.visible])\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n {\r\n copyToClipboard(recipients.join(' '), {\r\n message: t('copyToClipboard'),\r\n format: 'text/plain',\r\n })\r\n }}\r\n >\r\n \r\n \r\n \r\n
\r\n {props.form.getFieldDecorator('recipients', {\r\n rules: [{ required: true, message: t('requiredField') }],\r\n })(\r\n setRecipients(values)}\r\n autoFocus\r\n />\r\n )}\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Form.create()(FormView)\r\n"],"sourceRoot":""}