{"version":3,"sources":["components/Requisitions/Items/FormView.jsx","containers/Requisitions/Items/FormView.js","components/Requisitions/Items/ConvertToOrder.jsx","containers/Requisitions/Items/ConvertToOrder.js","components/Requisitions/Items/ConvertToRfq.jsx","containers/Requisitions/Items/ConvertToRfq.js","components/Requisitions/PickList/Items.jsx","containers/Requisitions/PickList/Items.js","components/Requisitions/PickList/index.jsx","containers/Requisitions/PickList/index.js","components/Requisitions/Items/Copy.jsx","containers/Requisitions/Items/Copy.js","components/Requisitions/Items/index.jsx","containers/Requisitions/Items/index.js","components/Requisitions/FormView/SideForm.jsx","containers/Requisitions/FormView/SideForm.js","containers/Requisitions/Forms/FormView.js","components/Requisitions/Forms/FormView.jsx","components/Requisitions/Forms/index.jsx","containers/Requisitions/Forms/index.js","components/Requisitions/FormView/index.jsx","containers/Requisitions/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","item","suppliers","getSuppliers","search","supplierIds","orderSupplierId","nonStockSuppliersOnly","nonStock","setState","get","error","showError","getItemId","_this$state$item","_this$props$linkTarge","_this$props$linkTarge2","id","linkTargetRecord","orderItemId","find","Boolean","fetchItem","itemId","arguments","length","undefined","_this$props$settingsT","_this$props$findByBar","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","quantity","quantityIssued","price","barcode","concat","Date","now","packageSize","userName","user","populated","getSettings","type","settingsType","getLocations","cloneDeep","value","data","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","setItemValue","name","produce","draft","customer","generalSettings","allowOverIssueFromRequisition","validateQuantityRequisitioned","validateQuantityIssued","supplierDetailItem","one","supplierId","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","tag","asset","filteredTagListItems","filter","description","toLower","indexOf","handleSubmit","createHandleSubmit","debounce","DEBOUNCE","searchOperators","createSearchOperatorTag","searchJobs","createSearchJobTag","searchAssets","createSearchAssetTag","transformSaveItemParams","createOrderItemsTransformSaveItemParams","componentDidMount","render","_this$props$parentRec","_this$props$parentRec2","_suppliers$items","_this$state$unitsOfMe","_this$state$locations","_operators$items2","_jobs$items3","_assets$items3","siblingRecords","isNil","_jsx","_Spin","createLabel","createLabelFactory","createFieldDecorator","createFieldFactory","readOnly","isReadOnly","some","tagsReadOnly","barcodeDisabled","quantityIssuedEnabled","parentRecord","approved","includes","status","getUserPermission","_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","showSearch","Option","createFilterUserSuppliers","getOptionProps","packageSizeUom","xs","allowPricing","InputNumber","Math","max","min","currency","validator","rule","callback","tryParseInt","getFieldValue","Error","cx","itemOrdered","formatUserTime","orderDate","orderBy","HARD_SPACE","valuePropName","Checkbox","tag2","getFieldDecorator","rules","tag2Required","required","message","initialValue","validateTrigger","AutoComplete","defaultActiveFirstOption","dataSource","onPressEnter","autoComplete","suffix","Suffix","tag1","tag1Required","tag1Restricted","_jobs$items2","isEmpty","tag3","tag3Required","tag3Restricted","_assets$items2","enum","filterOption","filterByValue","_Button","onClick","_Fragment","_Tooltip","title","placement","htmlType","loading","saveAndCloseButtonLoading","create","createChildFormViewContainer","actions","extraDispatchToProps","dispatch","params","locationActions","getItems","locationVendingTypes","jobActions","operatorActions","assetActions","tagListActions","getOptions","unitsOfMeasureActions","supplierActions","pageIndex","pageSize","active","productActions","createChildItemsDispatchToProps","supplierDetailActions","Component","CHECKBOXES","OrderForm","linkTargets","orderRecord","formComponent","_parentRecord$requisi","selectedRowKeys","selectedRequisitionItems","requisitionItems","updateState","useImmer","modalVisible","getStorageItem","path","handleOrderFormClose","drawerVisible","window","setTimeout","onCreatedOrderDrawerClose","setStorageItem","reduce","acc","Modal","visible","okText","onOk","newOrder","populateOrderItems","quantityOrdered","setQuantityToUnissuedQuantity","supplierName","orderSupplierName","requisitionId","requisitionItemId","pick","requisitionerFields","copyRequisitionCommentsToOrder","customerComment","comment","orderItems","source","sourceIdNumber","sourceItemId","timeScanned","toJSON","serverTimeScanned","Set","getSupplier","purchaseOrderNumbers","generatePurchaseOrderNumber","orderId","orderSuppliers","adjustments","confirmedDescription","freight","purchaseOrderNumber","shippingInstructions","calculateOrderTotals","response","saveOrder","order","creating","showClientNotifications","failureCount","addRequisitionDocumentsToOrder","copied","copyAllObjectDocuments","sourceRequest","domainObjectId","domainObjectType","destinationRequest","drawerSaving","onCreateOrder","okButtonProps","modalOkButtonLoading","checked","e","target","Drawer","size","formSize","onClose","saving","onSave","pending","onSaveAndClose","connect","mapStateToProps","createAuthStateToProps","mapDispatchToProps","memoize","closeRequisition","requisitionActions","orderActions","orderItemActions","orderSupplierActions","documentActions","RfqForm","rfqRecord","handleRfqFormClose","onCreatedRfqDrawerClose","newRfq","populateRfqItems","rfqItems","sourceId","rfqItemId","saveRfq","rfq","sourceRequisitionId","addRequisitionDocumentsToRfq","rfqId","onCreateRfq","rfqActions","rfqItemActions","rfqSupplierActions","createChildListPrintComponent","entityName","entityNames","requisitions","childName","getStorageKey","self","tableCellComponents","createChildListPrintContainer","extraStateToProps","_props$settingsType","fetchItems","getOnHandCounts","index","pickListItems","statusLanguageKey","statusClassName","getStatus","Header","gutter","renderBarcode","displayFormat","dtoFieldName","marginTop","marginBottom","createDate","join","requisitionNumber","DatePicker","deliveryDueDate","placeholder","PickListItems","parentHasUnsavedChanges","_message","unset","productId","inventoryBarcode","itemNumber","binLocation","manufacturer","addNonStockToProducts","unitOfMeasure","taxable","taxableDescription","expedite","packagePrice","packageUnitOfMeasure","deliveryDate","locationBarcode","sourceCatalogName","assetBarcode","saveRequisition","requisition","Icon","requisitionRecord","createChildListViewComponent","createButtonTextId","createButtonLinkTarget","primaryLinkTarget","allowCreate","allowDelete","allowCustomize","allowSearching","extraRowActions","Copy","convertToOrderVisible","convertToRfqVisible","pickListVisible","ConvertToOrder","ConvertToRfq","createPrintHandler","printableRef","resetPrintHandler","width","ref","PickList","isFinite","row","totalCost","_Popover","content","dangerouslySetInnerHTML","__html","itemStatusInfo","style","visibility","_self$props$parentRec","_self$props$parentRec2","issueStatusInfo","color","DARK_GREEN","paddingBottom","validateStatus","help","TextArea","rows","onKeyPress","preventDefault","autoSize","createChildListViewContainer","createSideFormComponent","searchLanguageKey","addItemLanguageKey","addItemsLanguageKey","addItemSuccessLanguageKey","submitButtonLanguageKey","tagSettingsEnabledSuffix","dropDownButtonMenuItems","useInventoryBarcode","_Menu","dropdownButtonMenuClickHandler","_self$handlePunchoutC","_self$handleAddFromLi","_self$handleAddFromFi","Emitter","emit","handlePunchoutClick","handleAddFromListClick","handleAddFromFileClick","Search","createSideFormContainer","getBarcodes","createFormViewContainer","updateStatus","formInstanceId","submitItem","getUsers","userActions","getFormTemplate","formTemplateId","formTemplateActions","createFormInstanceAttachmentsDispatchToProps","objectType","objectId","createDisabled","getDeleteButtonTooltip","handleFormChange","formHasChanged","setFields","sendTo","showValidationError","promiseState","saveState","_this$props$filterDto","_this$props$filterDto2","customerId","targetTenantId","filterDto","tenantId","documentItems","shipToAddressList","requisitionSendToList","formInstanceItems","getDocumentItems","request","documentType","getAddressList","getRequisitionItems","includeItemStatus","includeIssueStatus","getRequisitionSendToList","getFormInstanceItems","populatedRequisitionItems","timestamp","itemOriginal","documentItemsOriginal","requisitionItemsOriginal","requisitionItemsTotals","formInstanceItemsOriginal","refetchItem","_this$props$onCancel2","_this$props2","taxRate","refreshRequisitionTotals","saveItem","clientNotifications","getChangedItems","saved","saveDocumentItems","_error$data$clientNot","_error$data","handleSideFormSubmit","sideFormState","_params$asset","_params$asset$name","_params$asset2","_params$asset3","_params$asset$barcode","_params$asset4","_params$job","_params$job$name","_params$job2","_params$job3","_params$job$barcode","_params$job4","_params$location","_params$location$name","_params$location2","_params$location$barc","_params$location3","_params$operator","_params$operator$name","_params$operator2","_params$operator3","_params$operator$barc","_params$operator4","sideFormLoading","formButtonsDisabled","populateRequisitionItems","assetNumber","number","job","jobNumber","jobBarcode","location","operatorNumber","operatorBarcode","seed","unshift","recalculateQuantity","repopulateRequisitionItems","requisitionItemsLoading","_response$value$data$","handleRequisitionItemsChange","changed","values","copyTagValuesToAllItems","tagValues","getTagFieldNames","otherItems","calculateRequisitionTotals","invokeAction","_this$props$onSave","_this$props3","invoke","action","_error$data$clientNot2","_error$data2","_this$props$onSave2","_this$props4","handleActionsMenuClick","_ref","hasUnsavedChanges","parentId","acceptMimeType","pageTitle","fileExtension","getFileExtension","confirm","autoFocusButton","okType","cancelText","_this$props$onSaveAnd","_this$props5","deleteRequisition","sendEmailVisible","history","confirmUnsavedChanges","encodeState","str","searchFields","searchType","showFilter","dateRange","dateRangeType","lastNValue","printItem","getFieldsValue","printVisible","invokeExtraAction","_this$props$onSave3","_this$props6","_this$props$onSave4","_this$props7","_this$props$onSave5","_this$props8","_this$state$item2","isEqual","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$barcode","_job$name","_location$name","_operator$name","success","LIST_MODAL_CLEAR_SELECTION","handleSendEmailSubmit","_this$state$item3","_this$state$requisiti","sendEmailLoading","emailRequisition","recipients","handleItemsCreateOrder","_ref2","closeRequisitionAfterConvertingToOrder","handleItemsCreateRfq","_ref3","closeRequisitionAfterConvertingToRfq","createSaveDocumentItems","saveFormInstances","createSaveFormInstances","refreshFormInstances","createRefreshFormInstances","resetState","createResetState","requireQuantity","on","FORM_INSTANCES_REFRESH","FORM_CHANGE_EVENT","componentWillUnmount","off","_this$state$shipToAdd","_this$state$requisiti2","_this$state$requisiti3","_this$state$requisiti4","_this$state$documentI","_this$state$formInsta","quickscan","extraButtonsDisabled","saveButtonLoading","_Dropdown","overlay","Divider","SubMenu","trigger","ClientNotifications","notifications","lg","statusName","defaultActiveKey","_ref4","Help","requireRequisitionerOnOrder","validateMultipleEmails","approvedDate","approveUserName","Comments","moduleSettings","enableTax","toLocaleString","locale","maximumFractionDigits","toLocaleCurrency","RequisitionItems","pageTotals","downloadItems","downloadRequisitionItems","Documents","FormInstancesContext","Provider","FormInstances","FormButtons","userAuthorizedForAllLocations","sendRequisitionButtonLoading","resendRequisitionButtonLoading","approveRequisitionButtonLoading","unapproveRequisitionButtonLoading","sideDrawer","BadgeContainer","_Badge","count","showDataEntrySettings","SideForm","onSubmitting","onPunchout","onAddFromList","footer","SendEmail","Print","flow","withRouter","onValuesChange","_len","Array","_key","requisitionItemActions","deleteItem","cancelRequisition","sendRequisition","resendRequisition","approveRequisition","unapproveRequisition","createDocumentsDispatchToProps","createLinkedItemsDispatchToProps","formInstanceActions","deselectCurrent","require","clipboardToIE11Formatting","module","exports","text","options","debug","reselectPrevious","range","selection","mark","document","createRange","getSelection","createElement","textContent","ariaHidden","position","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","stopPropagation","format","clipboardData","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","validateFields","_props$onSubmit","resetFields","_selectRecipientsRef$","_selectRecipientsRef$2","current","_Modal","copyToClipboard","mode","tokenSeparators","maxTagCount","autoFocus"],"mappings":"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","file":"static/js/11.62366db6.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 { showError, resourceNotFound, ValidationError } from 'helpers/errors'\r\nimport { allowPricing, getUserPermission, createFilterUserSuppliers } from 'helpers/auth'\r\nimport { tryParseInt, HARD_SPACE, DEBOUNCE } from 'helpers/utils'\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 {\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 isReadOnly,\r\n validateBarcode,\r\n validateDuplicateBarcode,\r\n} from 'helpers/formViews'\r\nimport { stopEvent } from 'helpers/events'\r\nimport {\r\n createOrderItemsTransformSaveItemParams,\r\n validateQuantityRequisitioned,\r\n validateQuantityIssued,\r\n copyTagValuesToAllItemsClientSettings,\r\n} from 'helpers/procurement'\r\nimport { formatUserTime } from 'helpers/dateTime'\r\nimport { t } from 'helpers/i18n'\r\nimport AutoComplete, { Suffix } from 'elements/AutoComplete'\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.orderSupplierId ? [item.orderSupplierId] : [],\r\n nonStockSuppliersOnly: item.nonStock,\r\n })\r\n\r\n this.setState({ suppliers: get(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 { 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 quantity: newItemParams.quantity || 1,\r\n orderSupplierId: 0,\r\n nonStock: true,\r\n quantityIssued: 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 ?? 'requisition' }),\r\n this.props.getLocations(),\r\n ])\r\n\r\n const item = cloneDeep(responses[0].value.data)\r\n const tagsEnabled = !this.props.userIsInRoleSupplier && !this.props.userIsInRoleDistributor\r\n\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 (!this.props.customer.generalSettings.allowOverIssueFromRequisition) {\r\n if (name === 'quantity') {\r\n validateQuantityRequisitioned(draft.item.quantityIssued, value)\r\n }\r\n\r\n if (name === 'quantityIssued') {\r\n validateQuantityIssued(draft.item.quantity, value)\r\n }\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({ operatorDisplayName: draft.item.operatorDisplayName })\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 tag = jobs.items[0]\r\n\r\n ;['id', 'barcode', 'displayName', 'name', 'number'].forEach((one) => {\r\n set(draft.item, camelCase(`job-${one}`), tag[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 = [] } = 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 readOnly = isReadOnly(this)\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 tagsReadOnly = this.props.userIsInRoleSupplier || this.props.userIsInRoleDistributor\r\n const barcodeDisabled = !item.nonStock || item.id > 0\r\n const quantityIssuedEnabled =\r\n this.props.parentRecord?.approved === true &&\r\n ['Open', 'Closed'].includes(this.props.parentRecord?.status) &&\r\n getUserPermission('Issue') === 'Yes'\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('orderSupplierId')(\r\n this.setItemValue('orderSupplierId', value)}\r\n dropdownRender={createDropdownRender(suppliers)}\r\n onSearch={this.searchSuppliers}\r\n allowClear={false}\r\n readOnly={readOnly}\r\n showSearch\r\n >\r\n \r\n {(suppliers?.items ?? [])\r\n .filter((each) => each.id)\r\n .filter(createFilterUserSuppliers(item.orderSupplierId))\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('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={readOnly}\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 \r\n \r\n \r\n {createFieldDecorator('quantity')(\r\n this.setItemValue('quantity', Math.max(value, 1))}\r\n min={1}\r\n readOnly={readOnly}\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 \r\n {createFieldDecorator('quantityIssued', {\r\n extraRules: [\r\n {\r\n validator: (rule, value, callback) => {\r\n const quantity = tryParseInt(this.props.form.getFieldValue('quantity'))\r\n const quantityIssued = tryParseInt(this.props.form.getFieldValue('quantityIssued'))\r\n callback(\r\n !customer.generalSettings.allowOverIssueFromRequisition && quantityIssued > quantity\r\n ? [new Error(t('errorQuantityIssued'))]\r\n : []\r\n )\r\n },\r\n },\r\n ],\r\n })(\r\n this.setItemValue('quantityIssued', value)}\r\n readOnly={readOnly}\r\n disabled={!quantityIssuedEnabled}\r\n className={cx({\r\n 'form-field-success':\r\n item.quantityIssued === item.quantity ||\r\n (customer.generalSettings.allowOverIssueFromRequisition &&\r\n item.quantityIssued > item.quantity),\r\n 'form-field-error':\r\n !customer.generalSettings.allowOverIssueFromRequisition &&\r\n item.quantityIssued > item.quantity,\r\n })}\r\n min={0}\r\n />\r\n )}\r\n \r\n \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 \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 ],\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={readOnly || tagsReadOnly}\r\n >\r\n }\r\n readOnly={readOnly || tagsReadOnly}\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={readOnly || tagsReadOnly}\r\n >\r\n }\r\n readOnly={readOnly || tagsReadOnly}\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={readOnly || tagsReadOnly}\r\n >\r\n }\r\n readOnly={readOnly || tagsReadOnly}\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={readOnly || tagsReadOnly}\r\n >\r\n }\r\n readOnly={readOnly || tagsReadOnly}\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 {!readOnly && !tagsReadOnly ? (\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 {readOnly ? (\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\nexport default Form.create()(FormView)\r\n","import actions from 'actions/requisitions/requisitionItems'\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 { createChildFormViewContainer } from 'factories/ChildFormView'\r\nimport { createChildItemsDispatchToProps } from 'helpers/formViews'\r\nimport supplierDetailActions from 'actions/products/supplierDetails'\r\nimport productActions from 'actions/products'\r\nimport Component from 'components/Requisitions/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 getTagListItems: (params) => dispatch(tagListActions.getOptions(params)),\r\n getUnitsOfMeasure: (params) => dispatch(unitsOfMeasureActions.getOptions(params)),\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 findByBarcode: (params) => dispatch(productActions.findByBarcode(params)),\r\n ...createChildItemsDispatchToProps(dispatch, 'SupplierDetail', supplierDetailActions),\r\n }),\r\n})(Component)\r\n","import * as React from 'react'\r\nimport { Form } from 'antd'\r\nimport { useImmer } from 'use-immer'\r\nimport { get, set, cloneDeep, isEmpty, pick } from 'lodash'\r\nimport { setStorageItem, getStorageItem } from 'helpers/localStorage'\r\nimport { calculateOrderTotals } from 'helpers/procurement'\r\nimport { showError, showClientNotifications } from 'helpers/errors'\r\nimport requisitionerFields from 'options/requisitionerFields'\r\nimport linkTargets from 'options/linkTargets'\r\nimport { t } from 'helpers/i18n'\r\nimport Modal from 'elements/Modal'\r\nimport Checkbox from 'elements/Checkbox'\r\nimport Drawer from 'elements/Drawer'\r\n\r\nconst getStorageKey = () => 'requisitions.convertToOrder'\r\n\r\nconst CHECKBOXES = [\r\n 'setQuantityToUnissuedQuantity',\r\n 'addRequisitionDocumentsToOrder',\r\n 'closeRequisitionAfterConvertingToOrder',\r\n 'copyRequisitionCommentsToOrder',\r\n]\r\n\r\nconst OrderForm = linkTargets.orderRecord.formComponent\r\n\r\nfunction Component(props) {\r\n const { user, customer, parentRecord, selectedRowKeys } = props\r\n\r\n const selectedRequisitionItems = (parentRecord?.requisitionItems ?? []).filter((each) =>\r\n selectedRowKeys.includes(each.id)\r\n )\r\n\r\n const [state, updateState] = useImmer({ modalVisible: true, ...getStorageItem(getStorageKey()) })\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 handleModalOk() {\r\n try {\r\n setState('modalOkButtonLoading', true)\r\n\r\n const responses = await Promise.all([\r\n props.newOrder(),\r\n props.populateOrderItems(\r\n selectedRequisitionItems\r\n .map((each) => ({\r\n ...each,\r\n userName: user.userName,\r\n quantityOrdered: state.setQuantityToUnissuedQuantity\r\n ? each.quantity - each.quantityIssued\r\n : each.quantity,\r\n supplierId: each.orderSupplierId,\r\n supplierName: each.orderSupplierName,\r\n requisitionId: undefined,\r\n requisitionItemId: undefined,\r\n quantityIssued: undefined,\r\n }))\r\n .filter((each) => each.quantityOrdered > 0)\r\n ),\r\n ])\r\n\r\n const item = cloneDeep(responses[0].value.data)\r\n\r\n Object.assign(\r\n item,\r\n pick(\r\n parentRecord,\r\n requisitionerFields.map((each) => each.key)\r\n )\r\n )\r\n\r\n if (state.copyRequisitionCommentsToOrder && !isEmpty(parentRecord.customerComment)) {\r\n item.comment = `${t('fromRequisition')} ${parentRecord.id}:\\n${parentRecord.customerComment}`\r\n }\r\n\r\n const orderItems = get(responses[1], 'value.data.items', []).map((each) => ({\r\n ...each,\r\n source: `REQ${parentRecord.id}`,\r\n sourceIdNumber: parentRecord.id,\r\n sourceItemId: each.id,\r\n id: undefined,\r\n orderItemId: undefined,\r\n timeScanned: new Date().toJSON(),\r\n serverTimeScanned: new Date().toJSON(),\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(item, calculateOrderTotals({ customer, item, 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: item,\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 const order = cloneDeep(response.value.data.items[0])\r\n\r\n if (state.addRequisitionDocumentsToOrder) {\r\n const copied = await props.copyAllObjectDocuments({\r\n sourceRequest: {\r\n domainObjectId: parentRecord.id,\r\n domainObjectType: 'Requisition',\r\n },\r\n destinationRequest: {\r\n domainObjectId: order.id,\r\n domainObjectType: 'Order',\r\n },\r\n })\r\n\r\n showClientNotifications({ response: copied })\r\n\r\n if (copied.value.data.failureCount > 0) {\r\n throw new Error()\r\n }\r\n }\r\n\r\n updateState((draft) => {\r\n draft.modalVisible = false\r\n draft.drawerVisible = true\r\n draft.drawerSaving = false\r\n draft.linkTargetRecord = { ...order, orderId: order.id }\r\n })\r\n\r\n props.onCreateOrder(pick(state, ['closeRequisitionAfterConvertingToOrder']))\r\n } catch (error) {\r\n showError({ error })\r\n } finally {\r\n setState('modalOkButtonLoading', false)\r\n }\r\n }\r\n\r\n function handleOrderFormClose() {\r\n updateState((draft) => {\r\n draft.modalVisible = false\r\n draft.drawerVisible = false\r\n })\r\n\r\n window.setTimeout(props.onCreatedOrderDrawerClose, 500)\r\n }\r\n\r\n React.useEffect(() => {\r\n setStorageItem(\r\n getStorageKey(),\r\n CHECKBOXES.reduce((acc, each) => ({ ...acc, [each]: state[each] }), {})\r\n )\r\n }, [state])\r\n\r\n return (\r\n <>\r\n \r\n {CHECKBOXES.map((key) => (\r\n \r\n \r\n updateState((draft) => {\r\n set(draft, key, e.target.checked)\r\n })\r\n }\r\n >\r\n {t(key)}\r\n \r\n \r\n ))}\r\n \r\n \r\n setState('drawerSaving', pending)}\r\n onSaveAndClose={handleOrderFormClose}\r\n onCancel={handleOrderFormClose}\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 { createChildItemsDispatchToProps } from 'helpers/formViews'\r\nimport orderActions from 'actions/orders'\r\nimport supplierActions from 'actions/suppliers'\r\nimport orderItemActions from 'actions/orders/orderItems'\r\nimport orderSupplierActions from 'actions/orders/orderSuppliers'\r\nimport documentActions from 'actions/documents'\r\nimport requisitionActions from 'actions/requisitions'\r\nimport Component from 'components/Requisitions/Items/ConvertToOrder'\r\n\r\nconst mapStateToProps = (state, props) => ({ ...createAuthStateToProps(state, props) })\r\n\r\nconst mapDispatchToProps = (dispatch, props) => ({\r\n getSupplier: memoize((supplierId) => dispatch(supplierActions.getItem(supplierId))),\r\n closeRequisition: (params) => dispatch(requisitionActions.closeRequisition(params)),\r\n newOrder: (params) => dispatch(orderActions.newItem(params)),\r\n saveOrder: (params) => dispatch(orderActions.saveOrder(params)),\r\n populateOrderItems: (params) => dispatch(orderItemActions.populateOrderItems(params)),\r\n generatePurchaseOrderNumber: (params) => dispatch(orderSupplierActions.generatePurchaseOrderNumber(params)),\r\n copyAllObjectDocuments: (params) => dispatch(documentActions.copyAllObjectDocuments(params)),\r\n ...createChildItemsDispatchToProps(dispatch, 'Order', orderItemActions),\r\n ...createChildItemsDispatchToProps(dispatch, 'OrderSupplier', orderSupplierActions),\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Component)\r\n","import * as React from 'react'\r\nimport { Form } from 'antd'\r\nimport { useImmer } from 'use-immer'\r\nimport { get, set, cloneDeep, isEmpty, pick } from 'lodash'\r\nimport { setStorageItem, getStorageItem } from 'helpers/localStorage'\r\nimport { showError, showClientNotifications } from 'helpers/errors'\r\nimport linkTargets from 'options/linkTargets'\r\nimport { t } from 'helpers/i18n'\r\nimport Modal from 'elements/Modal'\r\nimport Checkbox from 'elements/Checkbox'\r\nimport Drawer from 'elements/Drawer'\r\n\r\nconst getStorageKey = () => 'requisitions.convertToRfq'\r\n\r\nconst CHECKBOXES = [\r\n 'setQuantityToUnissuedQuantity',\r\n 'addRequisitionDocumentsToRfq',\r\n 'closeRequisitionAfterConvertingToRfq',\r\n]\r\n\r\nconst RfqForm = linkTargets.rfqRecord.formComponent\r\n\r\nfunction Component(props) {\r\n const { user, parentRecord, selectedRowKeys } = props\r\n\r\n const selectedRequisitionItems = (parentRecord?.requisitionItems ?? []).filter((each) =>\r\n selectedRowKeys.includes(each.id)\r\n )\r\n\r\n const [state, updateState] = useImmer({ modalVisible: true, ...getStorageItem(getStorageKey()) })\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 handleModalOk() {\r\n try {\r\n setState('modalOkButtonLoading', true)\r\n\r\n const responses = await Promise.all([\r\n props.newRfq(),\r\n props.populateRfqItems(\r\n selectedRequisitionItems\r\n .map((each) => ({\r\n ...each,\r\n userName: user.userName,\r\n quantity: state.setQuantityToUnissuedQuantity\r\n ? each.quantity - each.quantityIssued\r\n : each.quantity,\r\n requisitionId: undefined,\r\n requisitionItemId: undefined,\r\n }))\r\n .filter((each) => each.quantity > 0)\r\n ),\r\n ])\r\n\r\n const item = cloneDeep(responses[0].value.data)\r\n\r\n const rfqItems = get(responses[1], 'value.data.items', []).map((each) => ({\r\n ...each,\r\n sourceId: `REQ${parentRecord.id}`,\r\n sourceItemId: each.id,\r\n id: undefined,\r\n rfqItemId: undefined,\r\n timeScanned: new Date().toJSON(),\r\n serverTimeScanned: new Date().toJSON(),\r\n }))\r\n\r\n const response = await props.saveRfq({\r\n rfq: item,\r\n rfqItems: { creating: rfqItems },\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 const rfq = cloneDeep(response.value.data.items[0])\r\n\r\n rfq.sourceRequisitionId = parentRecord.id\r\n\r\n if (state.addRequisitionDocumentsToRfq) {\r\n const copied = await props.copyAllObjectDocuments({\r\n sourceRequest: {\r\n domainObjectId: parentRecord.id,\r\n domainObjectType: 'Requisition',\r\n },\r\n destinationRequest: {\r\n domainObjectId: rfq.id,\r\n domainObjectType: 'Rfq',\r\n },\r\n })\r\n\r\n showClientNotifications({ response: copied })\r\n\r\n if (copied.value.data.failureCount > 0) {\r\n throw new Error()\r\n }\r\n }\r\n\r\n updateState((draft) => {\r\n draft.modalVisible = false\r\n draft.drawerVisible = true\r\n draft.drawerSaving = false\r\n draft.linkTargetRecord = { ...rfq, rfqId: rfq.id }\r\n })\r\n\r\n props.onCreateRfq(pick(state, ['closeRequisitionAfterConvertingToRfq']))\r\n } catch (error) {\r\n showError({ error })\r\n } finally {\r\n setState('modalOkButtonLoading', false)\r\n }\r\n }\r\n\r\n function handleRfqFormClose() {\r\n updateState((draft) => {\r\n draft.modalVisible = false\r\n draft.drawerVisible = false\r\n })\r\n\r\n window.setTimeout(props.onCreatedRfqDrawerClose, 500)\r\n }\r\n\r\n React.useEffect(() => {\r\n setStorageItem(\r\n getStorageKey(),\r\n CHECKBOXES.reduce((acc, each) => ({ ...acc, [each]: state[each] }), {})\r\n )\r\n }, [state])\r\n\r\n return (\r\n <>\r\n \r\n {CHECKBOXES.map((key) => (\r\n \r\n \r\n updateState((draft) => {\r\n set(draft, key, e.target.checked)\r\n })\r\n }\r\n >\r\n {t(key)}\r\n \r\n \r\n ))}\r\n \r\n \r\n setState('drawerSaving', pending)}\r\n onSaveAndClose={handleRfqFormClose}\r\n onCancel={handleRfqFormClose}\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 { createChildItemsDispatchToProps } from 'helpers/formViews'\r\nimport rfqActions from 'actions/rfqs'\r\nimport supplierActions from 'actions/suppliers'\r\nimport rfqItemActions from 'actions/rfqs/rfqItems'\r\nimport rfqSupplierActions from 'actions/rfqs/rfqSuppliers'\r\nimport documentActions from 'actions/documents'\r\nimport requisitionActions from 'actions/requisitions'\r\nimport Component from 'components/Requisitions/Items/ConvertToRfq'\r\n\r\nconst mapStateToProps = (state, props) => ({ ...createAuthStateToProps(state, props) })\r\n\r\nconst mapDispatchToProps = (dispatch, props) => ({\r\n getSupplier: memoize((supplierId) => dispatch(supplierActions.getItem(supplierId))),\r\n closeRequisition: (params) => dispatch(requisitionActions.closeRequisition(params)),\r\n newRfq: (params) => dispatch(rfqActions.newItem(params)),\r\n saveRfq: (params) => dispatch(rfqActions.saveRfq(params)),\r\n populateRfqItems: (params) => dispatch(rfqItemActions.populateRfqItems(params)),\r\n copyAllObjectDocuments: (params) => dispatch(documentActions.copyAllObjectDocuments(params)),\r\n ...createChildItemsDispatchToProps(dispatch, 'Rfq', rfqItemActions),\r\n ...createChildItemsDispatchToProps(dispatch, 'RfqSupplier', rfqSupplierActions),\r\n})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Component)\r\n","import entityNames from 'options/entityNames'\r\nimport { createChildListPrintComponent } from 'factories/ChildListPrint'\r\nimport { tableCellComponents } from 'helpers/listItems'\r\n\r\nexport default createChildListPrintComponent({\r\n entityName: entityNames.requisitions,\r\n childName: 'requisitionItems',\r\n getStorageKey: (self) => 'requisitions.formView.items.pickList',\r\n tableCellComponents,\r\n})()\r\n","import { createChildListPrintContainer } from 'factories/ChildListPrint'\r\nimport actions from 'actions/requisitions/requisitionItems'\r\nimport Component from 'components/Requisitions/PickList/Items'\r\n\r\nexport default createChildListPrintContainer({\r\n actions,\r\n extraStateToProps: (state, props) => ({ settingsType: props.settingsType ?? 'printPickList' }),\r\n})(Component)\r\n","import * as React from 'react'\r\nimport { Spin, Form, Input } from 'antd'\r\nimport { isEmpty, get } from 'lodash'\r\nimport { showError } from 'helpers/errors'\r\nimport { renderBarcode } from 'helpers/listViews'\r\nimport { createLabelFactory } from 'helpers/formViews'\r\nimport { HARD_SPACE } from 'helpers/utils'\r\nimport { Header } from 'helpers/print'\r\nimport { formatUserTime } from 'helpers/dateTime'\r\nimport { getStatus } from 'helpers/pickList'\r\nimport { t } from 'helpers/i18n'\r\nimport DatePicker from 'elements/DatePicker'\r\nimport { Row, Col } from 'elements/Grid'\r\nimport PickListItems from 'containers/Requisitions/PickList/Items'\r\n\r\nclass Component extends React.Component {\r\n state = {}\r\n\r\n componentDidMount() {\r\n this.fetchItems()\r\n }\r\n\r\n fetchItems = async () => {\r\n try {\r\n const responses = await Promise.all([\r\n this.props.getSettings({ type: this.props.settingsType }),\r\n this.props.getOnHandCounts(\r\n this.props.parentRecord.requisitionItems\r\n .filter((each) => this.props.selectedRowKeys.includes(each.id))\r\n .map((each, index) => ({ ...each, id: index + 1 }))\r\n ),\r\n ])\r\n\r\n this.setState({\r\n fieldSettings: responses[0].value.data.fieldSettings,\r\n pickListItems: responses[1].value.data,\r\n })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }\r\n\r\n render() {\r\n const { parentRecord: item } = this.props\r\n const { fieldSettings = [] } = this.state\r\n const createLabel = createLabelFactory(item.fieldSettings)\r\n const { statusLanguageKey, statusClassName } = getStatus(item)\r\n\r\n if (isEmpty(fieldSettings)) {\r\n return \r\n }\r\n\r\n return (\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 {renderBarcode({\r\n displayFormat: item.fieldSettings.find((one) => one.dtoFieldName === 'idForImage')\r\n .displayFormat,\r\n value: item.id,\r\n marginTop: 5,\r\n marginBottom: 0,\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 get(item, `requisitioner${each}`))\r\n .filter((each) => !isEmpty(each))\r\n .join(', ')}\r\n readOnly\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 )\r\n }\r\n}\r\n\r\nexport default Component\r\n","import { connect } from 'react-redux'\r\nimport { createAuthStateToProps } from 'helpers/auth'\r\nimport actions from 'actions/requisitions/requisitionItems'\r\nimport Component from 'components/Requisitions/PickList'\r\n\r\nconst mapStateToProps = (state, props) => ({ ...createAuthStateToProps(state, props) })\r\n\r\nconst mapDispatchToProps = {\r\n getSettings: actions.getSettings,\r\n getOnHandCounts: actions.getOnHandCounts,\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(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 Icon from 'elements/Icon'\r\nimport Drawer from 'elements/Drawer'\r\nimport FormView from 'containers/Requisitions/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 'sendTo',\r\n 'deliveryDueDate',\r\n 'description',\r\n 'internalComment',\r\n ])\r\n )\r\n\r\n const requisitionItems = parentRecord.requisitionItems\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 quantity: each.quantity,\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 deliveryDate: copied.deliveryDate,\r\n locationBarcode: each.locationBarcode,\r\n locationName: each.locationName,\r\n sourceCatalogName: each.sourceCatalogName,\r\n jobId: each.jobId,\r\n jobName: each.jobName,\r\n operatorId: each.operatorId,\r\n operatorName: each.operatorName,\r\n assetBarcode: each.assetBarcode,\r\n orderSupplierId: each.orderSupplierId,\r\n orderSupplierName: each.orderSupplierName,\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 response = await props.saveRequisition({\r\n requisition: copied,\r\n requisitionItems: { creating: requisitionItems },\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 { createAuthStateToProps } from 'helpers/auth'\r\nimport actions from 'actions/requisitions'\r\nimport Component from 'components/Requisitions/Items/Copy'\r\n\r\nconst mapStateToProps = (state, props) => ({ ...createAuthStateToProps(state, props) })\r\n\r\nconst mapDispatchToProps = {\r\n newItem: actions.newItem,\r\n saveRequisition: actions.saveRequisition,\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Component)\r\n","import { Input, Button, Popover, Form, message } from 'antd'\r\nimport { isFinite, isEmpty } 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 { createPrintHandler, resetPrintHandler } from 'helpers/print'\r\nimport { DARK_GREEN } from 'options/colors'\r\nimport { getUserPermission } from 'helpers/auth'\r\nimport { validateQuantityRequisitioned, validateQuantityIssued } from 'helpers/procurement'\r\nimport { t } from 'helpers/i18n'\r\nimport { isReadOnly } from 'helpers/formViews'\r\nimport { DEBOUNCE } from 'helpers/utils'\r\nimport Icon from 'elements/Icon'\r\nimport FormView from 'containers/Requisitions/Items/FormView'\r\nimport InputNumber from 'elements/InputNumber'\r\nimport ConvertToOrder from 'containers/Requisitions/Items/ConvertToOrder'\r\nimport ConvertToRfq from 'containers/Requisitions/Items/ConvertToRfq'\r\nimport PickList from 'containers/Requisitions/PickList'\r\nimport Copy from 'containers/Requisitions/Items/Copy'\r\nimport Modal from 'elements/Modal'\r\n\r\nexport default createChildListViewComponent({\r\n entityName: entityNames.requisitions,\r\n childName: 'requisitionItems',\r\n createButtonTextId: 'addNonStockItem',\r\n createButtonLinkTarget: {\r\n formSize: 'md',\r\n formComponent: (props) => ,\r\n },\r\n primaryLinkTarget: 'requisitionItemRecord',\r\n allowCreate: (self) => false,\r\n allowDelete: (self) => !isReadOnly(self) && getUserPermission('Purchase') !== 'No',\r\n allowCustomize: (self) => true,\r\n allowSearching: (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 {(!isReadOnly(self) || self.props.parentRecord.status === 'Closed') && getUserPermission('Orders') !== 'None' && (\r\n \r\n self.props.parentHasUnsavedChanges\r\n ? message.error(t('saveChangesFirst'))\r\n : !self.props.parentRecord.approved\r\n ? message.error(t('requisitionApprovalRequired'))\r\n : self.setState({ convertToOrderVisible: true })\r\n }\r\n disabled={isEmpty(self.state.selectedRowKeys)}\r\n >\r\n \r\n {t('convertToOrder')}\r\n \r\n )}\r\n {(!isReadOnly(self) || self.props.parentRecord.status === 'Closed') && getUserPermission('RFQs') !== 'None' && (\r\n \r\n self.props.parentHasUnsavedChanges\r\n ? message.error(t('saveChangesFirst'))\r\n : !self.props.parentRecord.approved\r\n ? message.error(t('requisitionApprovalRequired'))\r\n : self.setState({ convertToRfqVisible: true })\r\n }\r\n disabled={isEmpty(self.state.selectedRowKeys)}\r\n >\r\n \r\n {t('convertToRfq')}\r\n \r\n )}\r\n {['Draft', 'Open', 'Closed'].includes(self.props.parentRecord.status) && self.props.parentRecord.id && (\r\n \r\n self.props.parentHasUnsavedChanges\r\n ? message.error(t('saveChangesFirst'))\r\n : self.setState({ pickListVisible: true })\r\n }\r\n disabled={isEmpty(self.state.selectedRowKeys)}\r\n >\r\n \r\n {t('pickList')}\r\n \r\n )}\r\n {self.state.convertToOrderVisible && (\r\n self.setState({ convertToOrderVisible: false })}\r\n onCreateOrder={self.props.onCreateOrder}\r\n onCreatedOrderDrawerClose={() =>\r\n self.setState({ convertToOrderVisible: false }, self.props.onCreatedOrderDrawerClose)\r\n }\r\n />\r\n )}\r\n {self.state.convertToRfqVisible && (\r\n self.setState({ convertToRfqVisible: false })}\r\n onCreateRfq={self.props.onCreateRfq}\r\n onCreatedRfqDrawerClose={() =>\r\n self.setState({ convertToRfqVisible: false }, self.props.onCreatedRfqDrawerClose)\r\n }\r\n />\r\n )}\r\n self.setState({ pickListVisible: false }, resetPrintHandler)}\r\n width={992}\r\n visible={self.state.pickListVisible}\r\n >\r\n
\r\n \r\n
\r\n \r\n \r\n ),\r\n tableCellComponents: {\r\n quantity: (self, item) => (\r\n
\r\n {\r\n try {\r\n if (!self.props.customer.generalSettings.allowOverIssueFromRequisition) {\r\n validateQuantityRequisitioned(item.quantityIssued, Math.max(value, 1))\r\n }\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.quantity = Math.max(value, 1)\r\n row.totalCost = row.quantity * row.price\r\n row.populated = true // HACK: To avoid calling /populate\r\n }\r\n })\r\n )\r\n } catch (error) {\r\n console.warn(error)\r\n }\r\n }}\r\n min={1}\r\n readOnly={isReadOnly(self)}\r\n />{' '}\r\n }>\r\n \r\n \r\n \r\n \r\n
\r\n ),\r\n quantityIssued: (self, item) => {\r\n const quantityIssuedEnabled =\r\n self.props.parentRecord?.approved === true &&\r\n ['Open', 'Closed'].includes(self.props.parentRecord?.status) &&\r\n getUserPermission('Issue') === 'Yes'\r\n\r\n return (\r\n
\r\n {\r\n try {\r\n if (!self.props.customer.generalSettings.allowOverIssueFromRequisition) {\r\n await validateQuantityIssued(item.quantity, value)\r\n }\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.quantityIssued = value\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-success':\r\n item.quantityIssued === item.quantity ||\r\n (self.props.customer.generalSettings.allowOverIssueFromRequisition &&\r\n item.quantityIssued > item.quantity),\r\n 'form-field-error':\r\n !self.props.customer.generalSettings.allowOverIssueFromRequisition &&\r\n item.quantityIssued > item.quantity,\r\n })}\r\n readOnly={isReadOnly(self)}\r\n disabled={!quantityIssuedEnabled}\r\n min={0}\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 itemOrdered: (self, item) => (item.itemOrdered ? : null),\r\n price: (self, item) => (\r\n {\r\n try {\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.price = value\r\n row.totalCost = row.quantity * row.price\r\n row.populated = true // HACK: To avoid calling /populate\r\n }\r\n })\r\n )\r\n } catch (error) {\r\n console.warn(error)\r\n }\r\n }}\r\n min={0}\r\n readOnly={isReadOnly(self)}\r\n currency\r\n />\r\n ),\r\n description: (self, item) => (\r\n \r\n e.key === 'Enter' && e.preventDefault()}\r\n onChange={async (e) => {\r\n try {\r\n const { value } = e.target\r\n await self.props.onChange(\r\n produce(self.props.items, (draft) => {\r\n const row = draft.find((one) => one.id === item.id)\r\n row.description = value\r\n row.populated = true // HACK: To avoid calling /populate\r\n })\r\n )\r\n } catch (error) {\r\n console.warn(error)\r\n }\r\n }}\r\n readOnly={isReadOnly(self)}\r\n autoSize\r\n />\r\n \r\n ),\r\n },\r\n})()\r\n","import { createChildListViewContainer } from 'factories/ChildListView'\r\nimport actions from 'actions/requisitions/requisitionItems'\r\nimport Component from 'components/Requisitions/Items'\r\n\r\nexport default createChildListViewContainer({\r\n actions,\r\n extraStateToProps: (state, props) => ({ settingsType: props.settingsType ?? 'requisition' }),\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) => 'requisitions.formView.sideForm',\r\n searchLanguageKey: 'searchProducts',\r\n addItemLanguageKey: 'addToRequisition',\r\n addItemsLanguageKey: 'addToRequisition',\r\n addItemSuccessLanguageKey: 'addToRequisitionSuccess',\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 ['Draft', 'Open'].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('requisitions.requisitionItems.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/Requisitions/FormView/SideForm'\r\n\r\nexport default createSideFormContainer({\r\n extraStateToProps: (state, props) => ({ settingsType: props.settingsType ?? 'requisition' }),\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 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/Requisitions/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/Requisitions/Forms/FormView'\r\n\r\nexport default createChildListViewComponent({\r\n entityName: entityNames.requisitions,\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/Requisitions/Forms'\r\n\r\nexport default createChildListViewContainer({ actions })(Component)\r\n","import * as React from 'react'\r\nimport { Form, Input, Spin, Button, Tabs, Dropdown, Menu, Badge, message } from 'antd'\r\nimport { cloneDeep, debounce, get, isEmpty, isEqual, isNil, set, toString as str, invoke, pick, flow } from 'lodash'\r\nimport produce from 'immer'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { setStorageItem, getStorageItem } from 'helpers/localStorage'\r\nimport { createResetState, DEBOUNCE, encodeState } from 'helpers/utils'\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 {\r\n createLabelFactory,\r\n createFieldFactory,\r\n createHandleSubmit,\r\n createSaveDocumentItems,\r\n getChangedItems,\r\n isReadOnly,\r\n confirmUnsavedChanges,\r\n validateMultipleEmails,\r\n} from 'helpers/formViews'\r\nimport { formatUserTime } from 'helpers/dateTime'\r\nimport { t, toLocaleCurrency } from 'helpers/i18n'\r\nimport { allowPricing, getUserPermission } from 'helpers/auth'\r\nimport { createPrintHandler, resetPrintHandler } from 'helpers/print'\r\nimport { recalculateQuantity, calculateRequisitionTotals, BadgeContainer, getTagFieldNames } from 'helpers/procurement'\r\nimport { createSaveFormInstances, createRefreshFormInstances, FormInstancesContext } from 'helpers/formInstances'\r\nimport { Emitter, stopEvent } from 'helpers/events'\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 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 RequisitionItems from 'containers/Requisitions/Items'\r\nimport Help from 'elements/Help'\r\nimport SideForm from 'containers/Requisitions/FormView/SideForm'\r\nimport DatePicker from 'elements/DatePicker'\r\nimport SendEmail from 'components/SendEmail'\r\nimport FormButtons from 'elements/FormButtons'\r\nimport FormInstances from 'containers/Requisitions/Forms'\r\nimport Print from 'containers/Requisitions/Print'\r\n\r\nconst getStorageKey = () => 'requisitions.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.handleSubmit = createHandleSubmit(this)\r\n this.saveDocumentItems = createSaveDocumentItems(this, 'Requisition')\r\n this.refreshRequisitionTotals = debounce(this.refreshRequisitionTotals, DEBOUNCE)\r\n this.repopulateRequisitionItems = debounce(this.repopulateRequisitionItems, DEBOUNCE)\r\n this.saveFormInstances = createSaveFormInstances(this, { objectType: 'Requisition' })\r\n this.refreshFormInstances = createRefreshFormInstances(this, { objectType: 'Requisition' })\r\n this.resetState = createResetState(\r\n this,\r\n { tabsActiveKey: 'items', requireQuantity: true },\r\n getStorageItem(getStorageKey(), {})\r\n )\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 this.props.form.setFields({ sendTo: { value: this.state.item.sendTo, errors: null } })\r\n\r\n if (this.state.requisitionItems.some((one) => isEmpty(one.description))) {\r\n this.setState({ tabsActiveKey: 'items' })\r\n showValidationError()\r\n throw new Error()\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 [this.state.item?.id, this.props.linkTargetRecord?.requisitionId, this.props.linkTargetRecord?.objectId].find(\r\n Boolean\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 ?? 'requisition' }),\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, shipToAddressList, requisitionItems, requisitionSendToList, 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: 'Requisition',\r\n documentType: 'ObjectDocument',\r\n },\r\n })\r\n : Promise.resolve(null),\r\n this.props.getAddressList({ type: 'shipto', targetTenantId, customerId }),\r\n item.id\r\n ? this.props.getRequisitionItems(item.id, {\r\n includeItemStatus: true,\r\n includeIssueStatus: true,\r\n })\r\n : Promise.resolve(null),\r\n item.id ? this.props.getRequisitionSendToList({ requisitionId: item.id }) : Promise.resolve(null),\r\n item.id\r\n ? this.props.getFormInstanceItems({ objectType: 'Requisition', objectId: item.id })\r\n : Promise.resolve(null),\r\n ])\r\n\r\n const populatedRequisitionItems = get(requisitionItems, '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 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 shipToAddressList: get(shipToAddressList, 'value.data.items', []),\r\n requisitionItems: cloneDeep(populatedRequisitionItems),\r\n requisitionItemsOriginal: cloneDeep(populatedRequisitionItems),\r\n requisitionItemsTotals: get(requisitionItems, 'value.data.pageTotals', {}),\r\n requisitionSendToList: get(requisitionSendToList, 'value.data.items', []),\r\n formInstanceItems: get(formInstanceItems, 'value.data.items', []),\r\n formInstanceItemsOriginal: get(formInstanceItems, 'value.data.items', []),\r\n formHasChanged: false,\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.refreshRequisitionTotals\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.saveRequisition({\r\n requisition: item,\r\n requisitionItems: getChangedItems(this.state.requisitionItemsOriginal, this.state.requisitionItems),\r\n })\r\n\r\n const { failureCount = 0, clientNotifications = [], items = [] } = response.value.data\r\n\r\n showClientNotifications({ clientNotifications })\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 saved = items[0]\r\n\r\n if (saved.id) {\r\n await this.saveDocumentItems(saved.id)\r\n }\r\n\r\n return { value: { data: saved } }\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 response = await this.props.populateRequisitionItems([\r\n {\r\n quantity: params.quantity || 1,\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 ?? (!this.props.customer.tagSettings.tag1Restricted ? jobDisplayName : undefined),\r\n locationId: params.location?.id,\r\n locationName: params.location?.name ?? `*${locationDisplayName}`,\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 this.setState(\r\n produce((draft) => {\r\n const seed = Date.now() * -1\r\n draft.requisitionItems.unshift(\r\n ...response.value.data.items.map((each, index) => ({\r\n ...each,\r\n quantity: recalculateQuantity(each, this.props.customer),\r\n id: seed - index,\r\n requisitionItemId: seed - index,\r\n }))\r\n )\r\n }),\r\n this.refreshRequisitionTotals\r\n )\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 repopulateRequisitionItems = async () => {\r\n let failureCount = 0\r\n\r\n try {\r\n const { requisitionItems } = this.state\r\n\r\n await this.promiseState({ formButtonsDisabled: true, requisitionItemsLoading: true })\r\n\r\n const populatedRequisitionItems = await Promise.all(\r\n requisitionItems.map((each) => {\r\n const { id, requisitionItemId, populated } = each\r\n\r\n if (populated) {\r\n return Promise.resolve(each)\r\n }\r\n\r\n return this.props\r\n .populateRequisitionItems([\r\n {\r\n ...each,\r\n id: id > 0 ? id : undefined,\r\n requisitionItemId: requisitionItemId > 0 ? requisitionItemId : 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 requisitionItemId,\r\n populated: true,\r\n timestamp: new Date().toJSON(),\r\n }\r\n })\r\n })\r\n )\r\n\r\n this.setState({ requisitionItems: populatedRequisitionItems })\r\n } catch (error) {\r\n failureCount++\r\n showError({ error })\r\n } finally {\r\n this.setState({ formButtonsDisabled: false, requisitionItemsLoading: false })\r\n }\r\n\r\n return failureCount\r\n }\r\n\r\n handleRequisitionItemsChange = 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 await this.promiseState({\r\n formButtonsDisabled: true,\r\n requisitionItems: values,\r\n tabsActiveKey: 'items',\r\n })\r\n failureCount += await this.repopulateRequisitionItems()\r\n this.refreshRequisitionTotals()\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 refreshRequisitionTotals = () =>\r\n this.promiseState(\r\n produce((draft) => {\r\n Object.assign(draft.item, calculateRequisitionTotals({ customer: this.props.customer, ...draft }))\r\n })\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('requisitions.requisitionItems.downloadItems', {\r\n parentId: this.state.item.id,\r\n acceptMimeType: key,\r\n pageTitle: `${t('requisition')} - ${this.state.item.id} - ${t('itemsTab')}`,\r\n fileExtension: getFileExtension(key),\r\n })\r\n }\r\n break\r\n\r\n case 'closeRequisition':\r\n case 'cancelRequisition':\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(`confirm${key}`),\r\n content: t(`confirm${key}description`),\r\n okText: t('yes'),\r\n okType: 'danger',\r\n cancelText: t('no'),\r\n onOk: () => this.invokeAction(key),\r\n })\r\n }\r\n break\r\n\r\n case 'deleteRequisition':\r\n Modal.confirm({\r\n autoFocusButton: 'ok',\r\n title: t('confirmDeleteRequisition'),\r\n content: t('confirmDeleteRequisitionDescription'),\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.deleteRequisition(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 'issueFromPickList':\r\n if (this.hasUnsavedChanges()) {\r\n message.error(t('saveChangesFirst'))\r\n } else {\r\n this.props.history.push(`/inventory/issueFromPickList?requisitionId=${this.state.item.id}`)\r\n this.props.onCancel()\r\n }\r\n break\r\n\r\n case 'requisitionAuditReport':\r\n confirmUnsavedChanges(() => {\r\n this.props.history.push(\r\n `/reports/audit/requisitionAuditReport?${encodeState({\r\n search: str(this.state.item.id),\r\n searchFields: ['objectId'],\r\n searchType: 'Contains',\r\n showFilter: true,\r\n filterDto: { dateRange: { dateRangeType: 'LastNMonths', lastNValue: 12 } },\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 (['sendRequisition', 'resendRequisition'].includes(action) && isEmpty(item.sendTo)) {\r\n this.setState({ validationErrors: true, tabsActiveKey: 'requisition' }, () =>\r\n this.props.form.setFields({\r\n sendTo: {\r\n value: item.sendTo,\r\n errors: [new Error(t('requiredField'))],\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 (this.props[action]) {\r\n const response = await invoke(this.props, action, 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 } 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.requisitionItems, this.state.requisitionItemsOriginal) ||\r\n !isEqual(this.state.documentItems, this.state.documentItemsOriginal)\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\r\n this.setState({ addFromListLoading: true, tabsActiveKey: 'items' })\r\n\r\n try {\r\n const response = await this.props.populateRequisitionItems(\r\n params.addFromListItems.map((each) => ({\r\n quantity: Math.max(each.quantity, 1),\r\n barcode: each.barcode,\r\n assetBarcode: asset?.barcode,\r\n assetId: asset?.id,\r\n assetName: asset?.name ?? `*${assetDisplayName}`,\r\n jobBarcode: job?.barcode ?? jobDisplayName,\r\n jobId: job?.id,\r\n jobName: job?.name ?? `*${jobDisplayName}`,\r\n jobNumber: job?.number,\r\n locationBarcode: location?.barcode,\r\n locationId: location?.id,\r\n locationName: location?.name ?? `*${locationDisplayName}`,\r\n operatorBarcode: operator?.barcode,\r\n operatorId: operator?.id,\r\n operatorName: operator?.name ?? `*${operatorDisplayName}`,\r\n operatorNumber: operator?.number,\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('addToRequisitionSuccess')}`))\r\n\r\n this.setState(\r\n produce((draft) => {\r\n const seed = Date.now() * -1\r\n draft.requisitionItems.unshift(\r\n ...response.value.data.items.map((each, index) => ({\r\n ...each,\r\n quantity: recalculateQuantity(each, this.props.customer),\r\n id: seed - index,\r\n orderItemId: seed - index,\r\n }))\r\n )\r\n }),\r\n this.refreshRequisitionTotals\r\n )\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 handleSendEmailSubmit = async (recipients) => {\r\n try {\r\n this.setState({ sendEmailLoading: true })\r\n\r\n const response = await this.props.emailRequisition({\r\n recipients,\r\n requisition: this.state.item ?? {},\r\n requisitionItems: this.state.requisitionItems ?? [],\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 handleItemsCreateOrder = ({ closeRequisitionAfterConvertingToOrder }) => {\r\n if (closeRequisitionAfterConvertingToOrder && this.state.item.status === 'Open') {\r\n this.invokeAction('closeRequisition')\r\n }\r\n }\r\n\r\n handleItemsCreateRfq = ({ closeRequisitionAfterConvertingToRfq }) => {\r\n if (closeRequisitionAfterConvertingToRfq && this.state.item.status === 'Open') {\r\n this.invokeAction('closeRequisition')\r\n }\r\n }\r\n\r\n render() {\r\n const { item, fieldSettings, documentItems, requisitionItems, quickscan, requireQuantity } = 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 readOnly = isReadOnly(this) || ['Cancelled', 'Closed'].includes(item.status)\r\n const extraButtonsDisabled =\r\n this.state.formButtonsDisabled || this.state.saveButtonLoading || this.state.saveAndCloseButtonLoading\r\n\r\n return (\r\n <>\r\n
\r\n {item.id ? (\r\n \r\n {!readOnly &&\r\n getUserPermission('Orders') !== 'None' &&\r\n getUserPermission('Issue') !== 'No' && [\r\n \r\n {t('issueFromPickList')}\r\n ,\r\n ,\r\n ]}\r\n {getUserPermission('Reports') !== 'No' &&\r\n getUserPermission('Requisitions') !== 'None' && [\r\n {t('requisitionAuditReport')},\r\n ,\r\n ]}\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 {['Draft', 'Open', 'Closed'].includes(item.status) && }\r\n {item.status === 'Open' && (\r\n \r\n {t('closeRequisition')}\r\n \r\n )}\r\n {['Open', 'Closed'].includes(item.status) && (\r\n \r\n {t('cancelRequisition')}\r\n \r\n )}\r\n {item.status === 'Draft' && (\r\n \r\n {t('deleteRequisition')}\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 \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('shipToAddressId')(\r\n this.setItemValue('shipToAddressId', value)}\r\n placeholder={t('select')}\r\n allowClear={false}\r\n readOnly={readOnly}\r\n >\r\n {(this.state.shipToAddressList ?? []).map((each) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n \r\n {createFieldDecorator('description')(\r\n this.setItemValue('description', e.target.value)}\r\n readOnly={readOnly}\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={readOnly}\r\n />\r\n )}\r\n \r\n ))}\r\n \r\n \r\n \r\n {createFieldDecorator('deliveryDueDate')(\r\n this.setItemValue('deliveryDueDate', value)}\r\n readOnly={readOnly}\r\n />\r\n )}\r\n \r\n \r\n {createFieldDecorator('sendTo')(\r\n this.setItemValue('sendTo', value || '')}\r\n placeholder={t('select')}\r\n readOnly={readOnly}\r\n showSearch\r\n >\r\n \r\n {(this.state.requisitionSendToList ?? []).map((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 \r\n \r\n {createFieldDecorator('requisitionNumber')(\r\n this.setItemValue('requisitionNumber', e.target.value)}\r\n readOnly={readOnly}\r\n />\r\n )}\r\n \r\n \r\n \r\n this.setItemValue('customerComment', value)}\r\n rows={7}\r\n label={createLabel('customerComment')}\r\n title={t('addComment')}\r\n readOnly={readOnly}\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 'requisitionTotal',\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.fetchItem()}\r\n onCreateRfq={this.handleItemsCreateRfq}\r\n onCreatedRfqDrawerClose={() => this.fetchItem()}\r\n downloadItems={this.props.downloadRequisitionItems}\r\n loading={this.state.requisitionItemsLoading}\r\n />\r\n \r\n \r\n this.setState({ documentItems: values })}\r\n readOnly={readOnly}\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
\r\n {item.status === 'Draft' && item.userAuthorizedForAllLocations && (\r\n this.invokeExtraAction('sendRequisition')}\r\n loading={this.state.sendRequisitionButtonLoading}\r\n disabled={isEmpty(requisitionItems) || readOnly || extraButtonsDisabled}\r\n >\r\n {t('send')}\r\n \r\n )}{' '}\r\n {['Open', 'Closed'].includes(item.status) && item.userAuthorizedForAllLocations && (\r\n this.invokeExtraAction('resendRequisition')}\r\n loading={this.state.resendRequisitionButtonLoading}\r\n disabled={isEmpty(requisitionItems) || extraButtonsDisabled}\r\n >\r\n {t('resend')}\r\n \r\n )}{' '}\r\n {item.status === 'Open' &&\r\n item.userAuthorizedForAllLocations &&\r\n getUserPermission('Requisitions') === 'All' && (\r\n \r\n this.invokeExtraAction(item.approved ? 'unapproveRequisition' : 'approveRequisition')\r\n }\r\n loading={this.state.approveRequisitionButtonLoading || this.state.unapproveRequisitionButtonLoading}\r\n disabled={this.state.formButtonsDisabled || extraButtonsDisabled}\r\n >\r\n {t(item.approved ? 'unapprove' : 'approve')}\r\n \r\n )}\r\n
\r\n
\r\n \r\n {!readOnly && getUserPermission('Purchase') !== 'No' && (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n this.setState({ formButtonsDisabled: pending, requisitionItemsLoading: pending })\r\n }\r\n onSubmit={this.handleSideFormSubmit}\r\n loading={this.state.sideFormLoading}\r\n parentRecord={{\r\n ...item,\r\n requisitionItems,\r\n documentItems,\r\n fieldSettings,\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=\"Requisition\"\r\n disabled={extraButtonsDisabled}\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({ 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 \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 actions from 'actions/requisitions'\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 requisitionItemActions from 'actions/requisitions/requisitionItems'\r\nimport locationActions from 'actions/locations'\r\nimport userActions from 'actions/users'\r\nimport formInstanceActions from 'actions/formInstances'\r\nimport Component from 'components/Requisitions/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 getAddressList: (params) => dispatch(locationActions.getAddressList(params)),\r\n populateRequisitionItems: (params) => dispatch(requisitionItemActions.populateRequisitionItems(params)),\r\n saveRequisition: (params) => dispatch(actions.saveRequisition(params)),\r\n deleteRequisition: (requisitionId) => dispatch(actions.deleteItem(requisitionId)),\r\n cancelRequisition: (params) => dispatch(actions.cancelRequisition(params)),\r\n closeRequisition: (params) => dispatch(actions.closeRequisition(params)),\r\n emailRequisition: (params) => dispatch(actions.emailRequisition(params)),\r\n sendRequisition: (params) => dispatch(actions.sendRequisition(params)),\r\n resendRequisition: (params) => dispatch(actions.resendRequisition(params)),\r\n approveRequisition: (params) => dispatch(actions.approveRequisition(params)),\r\n unapproveRequisition: (params) => dispatch(actions.unapproveRequisition(params)),\r\n getRequisitionSendToList: (params) => dispatch(userActions.getRequisitionSendToList(params)),\r\n ...createDocumentsDispatchToProps(dispatch, documentActions),\r\n ...createChildItemsDispatchToProps(dispatch, 'Requisition', requisitionItemActions),\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":""}