{"version":3,"sources":["components/Assets/Warranties/FormView.jsx","containers/Assets/Warranties/FormView.js","options/jobLabourTypes.js","components/Jobs/Labour/FormView.jsx","containers/Jobs/Labour/FormView.js","components/Jobs/Checklist/FormView.jsx","containers/Jobs/Checklist/FormView.js","containers/Jobs/Forms/FormView.js","components/Jobs/Forms/FormView.jsx","components/Jobs/Forms/index.jsx","containers/Jobs/Forms/index.js","components/JobTemplates/Select/Filter.jsx","containers/JobTemplates/Select/Filter.js","components/JobTemplates/Select/index.jsx","containers/JobTemplates/Select/index.js","components/Jobs/Checklist/index.jsx","containers/Jobs/Checklist/index.js","components/Jobs/Labour/index.jsx","containers/Jobs/Labour/index.js","components/Jobs/FormView.jsx","containers/Jobs/FormView.js","actions/assets/assetWarranties.js","../node_modules/copy-to-clipboard/index.js","../node_modules/toggle-selection/index.js","components/SendEmail.jsx","actions/jobs/jobLabour.js","helpers/jobs.js","components/Lists/ChildListView/Items.jsx","containers/Lists/ChildListView/Items.js","components/Lists/Select/Filter.jsx","containers/Lists/Select/Filter.js","components/Lists/Select/index.jsx","containers/Lists/Select/index.js","components/Lists/ChildListView/index.jsx","containers/Lists/ChildListView/index.js","components/Assets/Warranties/index.jsx","containers/Assets/Warranties/index.js"],"names":["FormView","React","constructor","props","_this","super","this","state","getItemId","_this$state$item","_this$props$linkTarge","item","id","linkTargetRecord","find","Boolean","fetchItem","async","itemId","arguments","length","undefined","responses","Promise","all","getItem","catch","error","_this$props$onCancel","_this$props","onCancel","call","resourceNotFound","newItem","getSettings","type","settingsType","setState","value","data","fieldSettings","showError","handleSubmit","createHandleSubmit","componentDidMount","render","_jsx","_Spin","createLabel","createLabelFactory","createFieldDecorator","createFieldFactory","form","readOnly","isReadOnly","_jsxs","_Form","layout","colon","onSubmit","stopEvent","children","className","ValidationError","errors","validationErrors","Item","label","_Input","TextArea","rows","autoFocus","extraRules","validator","rule","callback","tryParseMoment","MIN_TIME","getFieldValue","MAX_TIME","Error","t","DatePicker","allowClear","_Button","onClick","_Tooltip","title","placement","htmlType","loading","saveAndCloseButtonLoading","create","createChildFormViewContainer","actions","Component","Operator","Supplier","PADDING_TOP","paddingTop","transformSaveItemParams","_ref","_labourRate$rate","values","startTime","stopTime","timeType","actualHours","labourRateId","labourDate","labourRate","jobLabourRates","one","startMoment","ZERO_HOUR","year","month","date","stopMoment","hours","round","Math","abs","diff","max","clone","toJSON","timeSpan","concat","format","labourRateDescription","description","toLocaleCurrency","rate","totalCost","moment","startOf","add","_operators$value$data","_operators$value","_suppliers$value$data","_suppliers$value","labourType","cloneDeep","operators","suppliers","getJobLabourRates","jobLabourRateIds","getOperators","operatorIds","performedById","getSuppliers","supplierIds","tryParseInt","getStorageItem","get","items","setItemValue","name","produce","draft","_labourRate$rate2","_draft$operators","_draft$suppliers","set","setStorageItem","performedByName","displayName","setFieldsValue","searchOperators","response","search","searchSuppliers","debounce","DEBOUNCE","_this$state$jobLabour","_operators$items","_suppliers$items","Select","onChange","map","each","Option","getOptionProps","Object","entries","labourTypes","_ref2","key","dropdownRender","createDropdownRender","onSearch","showSearch","filter","createFilterUserSuppliers","Row","gutter","Col","xs","style","_Radio","checked","e","_TimePicker","disabled","use12Hours","InputNumber","step","formatValue","displayFormat","dtoFieldName","extraDispatchToProps","dispatch","params","jobLabourRateActions","getOptions","operatorActions","pageIndex","pageSize","active","supplierActions","siblingRecords","maxPriority","priority","siblings","validateFields","isEmpty","_this$props$onSave","_this$props$onSave2","_this$props2","_this$props$onSaveAnd","_this$props3","onSave","onSaveAndClose","_this$props$onSave3","_this$props4","showValidationError","index","findIndex","lastUser","user","userName","lastUserDate","Date","otherSiblings","_this$props$linkTarge2","shiftedSiblings","prioritizeChecklistItems","appendedSiblings","orderBy","_this$props$linkTarge3","parentRecord","_this$props$linkTarge4","isTemplate","target","min","formatUserTime","valuePropName","Checkbox","connect","mapStateToProps","createAuthStateToProps","createFormViewContainer","updateStatus","formInstanceId","submitItem","getUsers","userActions","getItems","getFormTemplate","formTemplateId","formTemplateActions","createFormInstanceAttachmentsDispatchToProps","objectType","objectId","createChildListViewComponent","entityName","entityNames","jobs","childName","primaryLinkTarget","createButtonTextId","createButtonLinkTarget","formSize","formComponent","createDisabled","self","_self$props$parentRec","_self$props$parentRec2","getDeleteButtonTooltip","createChildListViewContainer","Filter","setFilterValue","createSetFilterValue","searchAssets","createSearchAssets","locationIds","assetCategoryIds","assetIds","filterDto","getLocations","getAssetCategories","getAssets","_this$props$locations","_this$props$assetCate","_assets$items","assets","enableAssetManagement","third","mode","placeholder","locations","_Fragment","assetCategories","selectors","selectOptions","itemsOnly","mapDispatchToProps","locationActions","locationVendingTypes","assetCategoryActions","assetActions","createListModalComponent","getStorageKey","getSettingsType","createListModalContainer","tableSummary","complete","percentage","tableCellComponents","draftItems","draftItem","console","warn","now","allowCustomize","JobTasksFromView","linkTargets","jobTaskRecord","AssetsFormView","assetRecord","getDowntime","downtimeStart","downtimeEnd","isValidDate","duration","asHours","checklistItems","labourItems","listItems","warrantyItems","toleranceItems","promiseState","resolve","legacyReportTaskSettings","templateId","jobTaskSettings","handleFormChange","formHasChanged","_this$props$linkTarge5","_this$props$linkTarge6","_this$props$linkTarge7","_this$props$linkTarge8","_this$props$linkTarge9","_this$props$linkTarge10","jobId","_this$props$linkTarge11","_assets$value$data","_assets$value","_assignedToOperators$","_assignedToOperators$2","isScheduledJob","getFileTemplates","getJobReasons","getJobGroups","includeUnassignedSelection","getJobStatusOptions","assetId","locationId","assetCategoryId","locationName","assignedToOperators","documentItems","formInstanceItems","assignedToId","getChecklistItems","getLabourItems","getToleranceItems","getWarrantyItems","getDocumentItems","request","domainObjectId","domainObjectType","documentType","getFormInstanceItems","itemOriginal","fileTemplates","jobReasons","jobGroups","jobStatusOptions","users","checklistItemsOriginal","checklistItemsTotals","labourItemsOriginal","labourItemsTotals","toleranceItemsOriginal","toleranceItemsTotals","warrantyItemsOriginal","warrantyItemsTotals","documentItemsOriginal","documentItemsTotals","formInstanceItemsOriginal","formInstanceItemsTotals","userCanEditRecord","_draft$assets","tabsActiveKey","approvedToBeginBy","approvedToBeginDate","approvedToClose","approvedToCloseBy","approvedToCloseDate","completedBy","completionDate","approvedToBegin","productionDowntime","useDuration","dueDate","getTime","productionEqualsElapsed","includes","then","r","hasUnsavedChanges","_this$state$item2","isEqual","saveItem","saved","updateItem","createItem","saveChecklistItems","saveLabourItems","saveWarrantyItems","saveToleranceHistoryItems","saveDocumentItems","createdDate","handleActionsMenuClick","_ref3","match","fileTemplateId","replace","fileTemplate","getFileTemplate","acceptMimeType","getMimeType","fileTemplateFileType","downloadChecklistItems","selectedColumnKeys","fields","saveAs","getFileExtension","createFromTemplateVisible","confirmUnsavedChanges","history","push","addToScheduleVisible","addToScheduleSaving","_message","sendEmailVisible","printItem","getFieldsValue","printVisible","quickscan","requireQuantity","getKeyValueItem","setKeyValueItem","jobName","jobNumber","number","jobBarcode","barcode","jobDisplayName","operatorId","operatorBarcode","operatorDisplayName","operatorName","assetName","assetDisplayName","handleCreateFromTemplateOk","_this$state$item$asse","_this$state$item$loca","_this$state$item$assi","_this$props$onSave4","_this$props5","createFromTemplateLoading","createFromTemplate","createFromTemplateRecord","assetLocationId","assignedOperatorId","_this$props$onSave5","_this$props6","requestApproval","requestApprovalLoading","invoke","action","success","handleChangeCloseDateOk","changeCloseDateVisible","completionDateToUpdate","handleGenerateClick","_this$props$onSave6","_this$props7","_this$props$onSave7","_this$props8","createdBy","generateButtonLoading","generateId","_this$props$onSave8","_this$props9","handleSendEmailSubmit","sendEmailLoading","emailJob","recipients","showClientNotifications","failureCount","printableRef","createSearchOperators","searchAssignedToOperators","createSearchAssignedOperators","createSaveDocumentItems","createSaveToleranceHistoryItems","createSaveWarrantyItems","createSaveChecklistItems","createSaveLabourItems","saveFormInstances","createSaveFormInstances","refreshFormInstances","createRefreshFormInstances","Emitter","on","FORM_INSTANCES_REFRESH","FORM_CHANGE_EVENT","componentWillUnmount","off","_this$state$fileTempl","_this$state$locations","_this$state$assetCate","_this$state$jobReason","_assignedToOperators$3","_this$state$jobStatus","_this$state$users","_this$state$jobStatus2","_this$state$checklist","_this$state$checklist2","_this$state$labourIte","_this$state$labourIte2","_assets$items2","_this$state$tolerance","_this$state$tolerance2","_this$state$warrantyI","_this$state$warrantyI2","_item$jobGroupIds","_this$state$documentI","_this$state$documentI2","_this$state$formInsta","_this$state$formInsta2","requireChecklist","customer","generalSettings","requireChecklistCompleteToCloseJob","enableActiveCheckbox","getUserPermission","enableDowntimeStart","trackDowntime","enableDowntimeEnd","enableProductionDowntime","enableProductionEqualsElapsedCheckbox","userCanApproveRecord","checklistFileTemplates","_Dropdown","overlay","_Menu","trigger","Icon","SubMenu","Divider","validateBarcode","HARD_SPACE","help","sm","Help","size","assetDrawerVisible","assetDrawerSaving","setSessionItem","TRACK_ASSETS_AFTER_CLOSE_KEY","redirectUrl","window","location","pathname","linkTarget","linkTargetName","linkTargetText","_Tabs","activeKey","TabPane","tab","forceRender","selectOperatorsVisible","selectOperatorsItems","selectOperatorsLoading","range","setTimeMode","showTime","toLocaleNumber","half","Comments","actionTaken","assetLOTONotes","Checklist","pageTotals","Labour","Tolerances","Warranties","CheckboxList","dataSource","jobGroupIds","Documents","isNil","Lists","entityType","entityId","FormInstancesContext","Provider","FormInstances","FormButtons","saveButtonLoading","Modal","visible","okText","onOk","okButtonProps","width","SelectJobTemplates","onSelect","dangerouslySetInnerHTML","__html","Drawer","onClose","saving","jobTemplateName","pending","createPrintHandler","resetPrintHandler","ref","Print","_this$props$onSave9","_this$props10","footer","uniq","SelectOperators","SendEmail","flow","withRouter","onValuesChange","_len","Array","_key","emit","jobReasonActions","jobGroupActions","jobStatusOptionActions","fileTemplateActions","requestApprovalToBegin","requestApprovalToClose","createTolerancesHistoryItems","parentId","assetToleranceActions","createHistoryItems","createDocumentsDispatchToProps","documentActions","createChildItemsDispatchToProps","jobChecklistActions","jobLabourActions","assetWarrantyActions","createLinkedItemsDispatchToProps","formInstanceActions","createChildActions","deselectCurrent","require","clipboardToIE11Formatting","module","exports","text","options","debug","message","reselectPrevious","selection","mark","document","createRange","getSelection","createElement","textContent","ariaHidden","position","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","stopPropagation","preventDefault","clipboardData","clearData","setData","onCopy","body","appendChild","selectNodeContents","addRange","execCommand","err","copyKey","test","navigator","userAgent","prompt","removeRange","removeAllRanges","removeChild","rangeCount","activeElement","ranges","i","getRangeAt","tagName","toUpperCase","blur","forEach","focus","selectRecipientsRef","setRecipients","_props$onSubmit","resetFields","setTimeout","_selectRecipientsRef$","_selectRecipientsRef$2","current","_Modal","pick","copyToClipboard","join","getFieldDecorator","rules","required","tokenSeparators","maxTagCount","_self$state","_self$state$item","_self$state2","_self$state2$item","_self$state3","_self$state3$item","_self$state4","_self$state4$item","_self$state5","_self$state5$item","creating","updating","deleting","getChangedItems","deleteChecklistItems","updateChecklistItems","createChecklistItems","jobChecklistId","rest","deleteLabourItems","updateLabourItems","createLabourItems","jobLabourId","_self$props$listType","camelCase","listType","getListItemMode","_self$props$listType2","_self$props$entityTyp","fetchSettings","listItemMode","fetchChildItems","listId","getChildItems","saveState","handleLinkTargetClick","column","record","editDrawerLinkTarget","drawerTitleLanguageKey","editDrawerVisible","editDrawerSaving","editDrawerLinkTargetRecord","editDrawerLinkTargetText","editDrawerReadOnly","handleDrawerClose","handleColumnResize","createHandleColumnResize","handleTableChange","createChildListViewHandleTableChange","resetState","createResetState","columnWidths","sortOrder","sortBy","savedState","flush","componentDidUpdate","prevProps","_this$state$editDrawe","columns","getChildColumns","onResize","getTableWidth","EditComponent","UnderDevelopment","cx","_Table","childrenColumnName","rowKey","components","header","cell","ResizableCell","pagination","showTotal","pageSizeOptions","showSizeChanger","getListTypes","listTypes","_filterDto$type","_this$state$listTypes","_self$props$filterPro","filterProps","transformGetItemsParams","_self$props$filterPro2","listRecord","Container","styled","_templateObject","_taggedTemplateLiteral","_state$items","_state$items2","_state$items3","createItems","deleteItems","updateState","useImmer","path","entityListTypes","uniqBy","typeName","listTypeDescription","filteredItems","selectedListType","selectedItem","entityListId","selectedEntityListId","fetchItems","justify","_find","_state$items4","allowSearch","listName","confirm","autoFocusButton","okType","cancelText","updatedItems","nextItem","_nextItem$entityListI","_nextItem$listType","addListVisible","addListRecords","bold","display","alignItems","justifyContent","height","_Empty","ListItems","_state$addListRecords","LIST_MODAL_CLEAR_SELECTION","addListLoading","SelectList","expired","expiryDate","tryParseDate"],"mappings":"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","file":"static/js/5.1dfc52f7.chunk.js","sourcesContent":["import * as React from 'react'\r\nimport { Form, Input, Spin, Button, Tooltip } from 'antd'\r\nimport { showError, resourceNotFound, ValidationError } from 'helpers/errors'\r\nimport { createLabelFactory, createFieldFactory, createHandleSubmit, isReadOnly } from 'helpers/formViews'\r\nimport { tryParseMoment, MIN_TIME, MAX_TIME } from 'helpers/dateTime'\r\nimport { t } from 'helpers/i18n'\r\nimport { stopEvent } from 'helpers/events'\r\nimport DatePicker from 'elements/DatePicker'\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 }\r\n\r\n componentDidMount() {\r\n this.fetchItem()\r\n }\r\n\r\n getItemId = () => [this.state.item?.id, this.props.linkTargetRecord?.id].find(Boolean)\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 }),\r\n ])\r\n\r\n this.setState({\r\n item: responses[0].value.data,\r\n fieldSettings: responses[1].value.data.fieldSettings,\r\n })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }\r\n\r\n render() {\r\n const { item, fieldSettings } = 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 const readOnly = isReadOnly(this)\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n {createFieldDecorator('description')()}\r\n \r\n \r\n {createFieldDecorator('startDate', {\r\n extraRules: [\r\n {\r\n validator: (rule, value, callback) => {\r\n const startDate = tryParseMoment(value, MIN_TIME)\r\n const expiryDate = tryParseMoment(this.props.form.getFieldValue('expiryDate'), MAX_TIME)\r\n callback(startDate > expiryDate ? [new Error(t('startDateValidationError'))] : [])\r\n },\r\n },\r\n ],\r\n })()}\r\n \r\n \r\n {createFieldDecorator('expiryDate', {\r\n extraRules: [\r\n {\r\n validator: (rule, value, callback) => {\r\n const startDate = tryParseMoment(this.props.form.getFieldValue('startDate'), MIN_TIME)\r\n const expiryDate = tryParseMoment(value, MAX_TIME)\r\n callback(startDate > expiryDate ? [new Error(t('expiryDateValidationError'))] : [])\r\n },\r\n },\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\nexport default Form.create()(FormView)\r\n","import actions from 'actions/assets/assetWarranties'\r\nimport { createChildFormViewContainer } from 'factories/ChildFormView'\r\nimport Component from 'components/Assets/Warranties/FormView'\r\n\r\nexport default createChildFormViewContainer({ actions })(Component)\r\n","export default {\r\n Operator: 'operator',\r\n Supplier: 'supplier',\r\n}\r\n","import * as React from 'react'\r\nimport { Form, Input, Spin, Button, Radio, Tooltip, TimePicker } from 'antd'\r\nimport { debounce, round, set, get, cloneDeep } from 'lodash'\r\nimport produce from 'immer'\r\nimport moment from 'moment'\r\nimport { showError, resourceNotFound, ValidationError } from 'helpers/errors'\r\nimport { tryParseMoment, ZERO_HOUR } from 'helpers/dateTime'\r\nimport {\r\n createLabelFactory,\r\n createFieldFactory,\r\n createHandleSubmit,\r\n createDropdownRender,\r\n isReadOnly,\r\n} from 'helpers/formViews'\r\nimport { formatValue } from 'helpers/listViews'\r\nimport labourTypes from 'options/jobLabourTypes'\r\nimport { tryParseInt, DEBOUNCE } from 'helpers/utils'\r\nimport { t, toLocaleCurrency } from 'helpers/i18n'\r\nimport { createFilterUserSuppliers } from 'helpers/auth'\r\nimport { stopEvent } from 'helpers/events'\r\nimport { getStorageItem, setStorageItem } from 'helpers/localStorage'\r\nimport Select, { Option, getOptionProps } from 'elements/Select'\r\nimport InputNumber from 'elements/InputNumber'\r\nimport DatePicker from 'elements/DatePicker'\r\nimport { Row, Col } from 'elements/Grid'\r\n\r\nconst PADDING_TOP = { paddingTop: '28px' }\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.searchOperators = debounce(this.searchOperators, DEBOUNCE)\r\n this.searchSuppliers = debounce(this.searchSuppliers, DEBOUNCE)\r\n }\r\n\r\n transformSaveItemParams = ({ item, values }) => {\r\n const { startTime, stopTime, timeType, actualHours, labourRateId, labourDate } = { ...item, ...values }\r\n const labourRate = this.state.jobLabourRates.find((one) => one.id === labourRateId)\r\n const startMoment = tryParseMoment(startTime, ZERO_HOUR).year(2000).month(1).date(1)\r\n const stopMoment = tryParseMoment(stopTime, ZERO_HOUR).year(2000).month(1).date(1)\r\n const hours =\r\n timeType === 'StartStop'\r\n ? round(Math.abs(startMoment.diff(stopMoment, 'minutes')) / 60.0, 2)\r\n : Math.max(actualHours, 0)\r\n\r\n return {\r\n startTime: startMoment.clone().toJSON(),\r\n stopTime: stopMoment.clone().toJSON(),\r\n actualHours: hours,\r\n timeSpan:\r\n timeType === 'StartStop'\r\n ? `${startMoment.format('h:mm A')} To ${stopMoment.format('h:mm A')}`\r\n : t('na'),\r\n labourRateDescription: labourRate\r\n ? `${labourRate.description} (${toLocaleCurrency(labourRate?.rate)}/hr)`\r\n : '',\r\n totalCost: hours * (labourRate?.rate ?? 0),\r\n labourDate: moment(labourDate).startOf('day').add(12, 'hours').toJSON(),\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchItem()\r\n }\r\n\r\n getItemId = () => [this.state.item?.id, this.props.linkTargetRecord?.id].find(Boolean)\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 timeType: 'Duration',\r\n labourType: 'Operator',\r\n actualHours: 0,\r\n startTime: ZERO_HOUR,\r\n stopTime: ZERO_HOUR,\r\n labourDate: moment().startOf('day').add(12, 'hours').toJSON(),\r\n totalCost: 0,\r\n })\r\n : resourceNotFound(this),\r\n this.props.getSettings({ type: this.props.settingsType }),\r\n ])\r\n\r\n const item = cloneDeep(responses[0].value.data)\r\n\r\n item.startTime = tryParseMoment(item.startTime || ZERO_HOUR)\r\n item.stopTime = tryParseMoment(item.stopTime || ZERO_HOUR)\r\n\r\n const [jobLabourRates, operators, suppliers] = await Promise.all([\r\n this.props.getJobLabourRates({ jobLabourRateIds: item.labourRateId ? [item.labourRateId] : [] }),\r\n this.props.getOperators({\r\n operatorIds:\r\n item.labourType === 'Operator' && item.performedById ? [item.performedById] : undefined,\r\n }),\r\n this.props.getSuppliers({\r\n supplierIds:\r\n item.labourType === 'Supplier' && item.performedById ? [item.performedById] : undefined,\r\n }),\r\n ])\r\n\r\n if (!item.id && !item.labourRateId) {\r\n item.labourRateId =\r\n tryParseInt(getStorageItem('jobs.formView.labour.formView.labourRateId')) ||\r\n get(jobLabourRates, 'value.data.items[0].id')\r\n }\r\n\r\n this.setState({\r\n item,\r\n fieldSettings: responses[1].value.data.fieldSettings,\r\n jobLabourRates: jobLabourRates.value.data.items,\r\n operators: operators?.value?.data ?? {},\r\n suppliers: suppliers?.value?.data ?? {},\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 === 'labourRateId') {\r\n setStorageItem('jobs.formView.labour.formView.labourRateId', value)\r\n }\r\n\r\n if (name === 'labourType') {\r\n draft.item.performedById = null\r\n draft.item.performedByName = ''\r\n }\r\n\r\n if (name === 'performedById') {\r\n if (draft.item.labourType === 'Operator' && draft.operators?.items) {\r\n draft.item.performedByName = draft.operators.items.find((one) => one.id === value).displayName\r\n }\r\n\r\n if (draft.item.labourType === 'Supplier' && draft.suppliers?.items) {\r\n draft.item.performedByName = draft.suppliers.items.find((one) => one.id === value).displayName\r\n }\r\n }\r\n\r\n if (name === 'actualHours') {\r\n draft.item.timeSpan = 'N/A'\r\n draft.item.startTime = ZERO_HOUR\r\n draft.item.stopTime = ZERO_HOUR\r\n }\r\n\r\n if (name === 'timeType' && value === 'Duration') {\r\n draft.item.startTime = ZERO_HOUR\r\n draft.item.stopTime = ZERO_HOUR\r\n }\r\n\r\n if (name === 'startTime' || name === 'stopTime') {\r\n const startMoment = tryParseMoment(draft.item.startTime, ZERO_HOUR).year(2000).month(1).date(1)\r\n const stopMoment = tryParseMoment(draft.item.stopTime, ZERO_HOUR).year(2000).month(1).date(1)\r\n\r\n draft.item.actualHours = round(Math.abs(startMoment.diff(stopMoment, 'minutes')) / 60.0, 2)\r\n }\r\n\r\n const labourRate = draft.jobLabourRates.find((one) => one.id === draft.item.labourRateId)\r\n draft.item.totalCost = draft.item.actualHours * (labourRate?.rate ?? 0)\r\n\r\n const { labourRateId, labourType, performedById, labourDate, startTime, stopTime, actualHours } =\r\n draft.item\r\n\r\n this.props.form.setFieldsValue({\r\n labourRateId,\r\n labourType,\r\n performedById,\r\n labourDate,\r\n startTime,\r\n stopTime,\r\n actualHours,\r\n })\r\n })\r\n )\r\n\r\n searchOperators = async (search) => {\r\n try {\r\n const { item } = this.state\r\n const response = await this.props.getOperators({\r\n search,\r\n operatorIds: item.performedById ? [item.performedById] : undefined,\r\n })\r\n\r\n this.setState({ operators: response.value.data })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }\r\n\r\n searchSuppliers = async (search) => {\r\n try {\r\n const { item } = this.state\r\n const response = await this.props.getSuppliers({\r\n search,\r\n supplierIds: item.performedById ? [item.performedById] : undefined,\r\n })\r\n\r\n this.setState({ suppliers: response.value.data })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }\r\n\r\n render() {\r\n const { item, fieldSettings, operators, suppliers } = 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 const readOnly = isReadOnly(this)\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n {createFieldDecorator('labourRateId')(\r\n \r\n )}\r\n \r\n \r\n {createFieldDecorator('labourType')(\r\n \r\n )}\r\n \r\n {item.labourType === 'Operator' && (\r\n \r\n {createFieldDecorator('performedById')(\r\n this.setItemValue('performedById', value)}\r\n dropdownRender={createDropdownRender(operators)}\r\n onSearch={this.searchOperators}\r\n allowClear={false}\r\n showSearch\r\n >\r\n {(operators?.items ?? []).map((each) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n )}\r\n {item.labourType === 'Supplier' && (\r\n \r\n {createFieldDecorator('performedById')(\r\n this.setItemValue('performedById', value)}\r\n dropdownRender={createDropdownRender(suppliers)}\r\n onSearch={this.searchSuppliers}\r\n allowClear={false}\r\n showSearch\r\n >\r\n {(suppliers?.items ?? [])\r\n .filter(createFilterUserSuppliers(item.performedById))\r\n .map((each) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n )}\r\n \r\n {createFieldDecorator('labourDate')(\r\n this.setItemValue('labourDate', value)} allowClear={false} />\r\n )}\r\n \r\n \r\n \r\n this.setItemValue('timeType', 'StartStop')}\r\n />\r\n \r\n \r\n \r\n {createFieldDecorator('startTime')(\r\n this.setItemValue('startTime', value)}\r\n allowClear={false}\r\n disabled={item.timeType !== 'StartStop'}\r\n format=\"h:mm A\"\r\n use12Hours\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {createFieldDecorator('stopTime')(\r\n this.setItemValue('stopTime', value)}\r\n allowClear={false}\r\n disabled={item.timeType !== 'StartStop'}\r\n format=\"h:mm A\"\r\n use12Hours\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n this.setItemValue('timeType', 'Duration')}\r\n />\r\n \r\n \r\n \r\n {createFieldDecorator('actualHours')(\r\n this.setItemValue('actualHours', value)}\r\n disabled={item.timeType !== 'Duration'}\r\n step={0.5}\r\n />\r\n )}\r\n \r\n \r\n \r\n {item.labourRateDescription}\r\n \r\n \r\n \r\n one.dtoFieldName === 'totalCost').displayFormat,\r\n })}\r\n disabled\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\nexport default Form.create()(FormView)\r\n","import actions from 'actions/jobs/jobLabour'\r\nimport operatorActions from 'actions/operators'\r\nimport supplierActions from 'actions/suppliers'\r\nimport jobLabourRateActions from 'actions/jobLabourRates'\r\nimport { createChildFormViewContainer } from 'factories/ChildFormView'\r\nimport Component from 'components/Jobs/Labour/FormView'\r\n\r\nexport default createChildFormViewContainer({\r\n actions,\r\n extraDispatchToProps: (dispatch, props) => ({\r\n getJobLabourRates: (params) => dispatch(jobLabourRateActions.getOptions(params)),\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 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 }),\r\n})(Component)\r\n","import * as React from 'react'\r\nimport produce from 'immer'\r\nimport { Form, Input, Spin, Button, Tooltip } from 'antd'\r\nimport { set, max, isEmpty, orderBy } from 'lodash'\r\nimport { showError, showValidationError, ValidationError } from 'helpers/errors'\r\nimport { createLabelFactory, createFieldFactory, isReadOnly } from 'helpers/formViews'\r\nimport { stopEvent } from 'helpers/events'\r\nimport { prioritizeChecklistItems } from 'helpers/jobs'\r\nimport { t } from 'helpers/i18n'\r\nimport { formatUserTime } from 'helpers/dateTime'\r\nimport InputNumber from 'elements/InputNumber'\r\nimport Checkbox from 'elements/Checkbox'\r\n\r\nclass FormView extends React.Component {\r\n state = {}\r\n\r\n componentDidMount() {\r\n this.fetchItem()\r\n }\r\n\r\n fetchItem = async () => {\r\n try {\r\n const { siblingRecords = [] } = this.props\r\n const maxPriority = max(siblingRecords.map((each) => each.priority)) || 0\r\n const response = await this.props.getSettings({ type: this.props.settingsType })\r\n\r\n this.setState({\r\n fieldSettings: response.value.data.fieldSettings,\r\n siblings: !this.props.linkTargetRecord\r\n ? [...siblingRecords, { priority: maxPriority + 1 }]\r\n : [...siblingRecords],\r\n })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }\r\n\r\n handleSubmit = (e) => {\r\n stopEvent(e)\r\n\r\n this.props.form.validateFields((errors, values) => {\r\n this.setState({ validationErrors: errors }, async () => {\r\n if (!isEmpty(errors)) {\r\n showValidationError()\r\n return\r\n }\r\n\r\n try {\r\n await this.props.onSave?.(true)\r\n await this.props.onSave?.(false)\r\n await this.props.onSaveAndClose?.(this.state.siblings)\r\n } catch (error) {\r\n showError({ error })\r\n await this.props.onSave?.(false)\r\n }\r\n })\r\n })\r\n }\r\n\r\n setItemValue = (name, value) =>\r\n this.setState(\r\n produce((draft) => {\r\n const index = draft.siblings.findIndex((one) => one.id === this.props.linkTargetRecord?.id)\r\n\r\n if (name === 'complete') {\r\n draft.siblings[index].lastUser = value ? this.props.user.userName : null\r\n draft.siblings[index].lastUserDate = value ? new Date().toJSON() : null\r\n }\r\n\r\n set(draft.siblings[index], name, value)\r\n }),\r\n () => {\r\n if (name === 'priority') {\r\n this.setState(\r\n produce((draft) => {\r\n // Step 1. Take out the value that was just changed\r\n const otherSiblings = draft.siblings.filter(\r\n (each) => each.id !== this.props.linkTargetRecord?.id\r\n )\r\n\r\n // Step 2. Prioritize and shift forward\r\n const shiftedSiblings = prioritizeChecklistItems(otherSiblings).map((each) => {\r\n if (each.priority >= value) {\r\n return { ...each, priority: each.priority + 1 }\r\n }\r\n return each\r\n })\r\n\r\n // Step 4. Append and sort again\r\n const appendedSiblings = orderBy(\r\n [\r\n ...shiftedSiblings,\r\n draft.siblings.find((one) => one.id === this.props.linkTargetRecord?.id),\r\n ],\r\n ['priority']\r\n )\r\n\r\n // Step 5. Prioritize and replace\r\n draft.siblings = prioritizeChecklistItems(appendedSiblings)\r\n }),\r\n this.props.onChange\r\n )\r\n }\r\n }\r\n )\r\n\r\n render() {\r\n const { parentRecord } = this.props\r\n const { fieldSettings, siblings } = this.state\r\n\r\n if (!fieldSettings || isEmpty(siblings)) {\r\n return \r\n }\r\n\r\n const item = siblings.find((one) => one.id === this.props.linkTargetRecord?.id)\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 { isTemplate } = parentRecord ?? {}\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n {createFieldDecorator('description')(\r\n this.setItemValue('description', e.target.value)}\r\n disabled={readOnly}\r\n autoFocus\r\n />\r\n )}\r\n \r\n \r\n {createFieldDecorator('notes')(\r\n this.setItemValue('notes', e.target.value)}\r\n disabled={readOnly}\r\n rows={5}\r\n />\r\n )}\r\n \r\n \r\n {createFieldDecorator('priority')(\r\n \r\n this.setItemValue('priority', Math.max(value, item.priority === 0 ? 0 : 1))\r\n }\r\n disabled={readOnly}\r\n min={item.priority === 0 ? 0 : 1}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {createFieldDecorator('complete', { valuePropName: 'checked' })(\r\n this.setItemValue('complete', e.target.checked)}\r\n disabled={readOnly || isTemplate}\r\n >\r\n {createLabel('complete')}\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\nexport default Form.create()(FormView)\r\n","import { connect } from 'react-redux'\r\nimport { createAuthStateToProps } from 'helpers/auth'\r\nimport actions from 'actions/jobs/jobChecklist'\r\nimport Component from 'components/Jobs/Checklist/FormView'\r\n\r\nconst mapStateToProps = (state, props) => ({ ...createAuthStateToProps(state, props) })\r\n\r\nexport default connect(mapStateToProps, { getSettings: actions.getSettings })(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/Jobs/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/Jobs/Forms/FormView'\r\n\r\nexport default createChildListViewComponent({\r\n entityName: entityNames.jobs,\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/Jobs/Forms'\r\n\r\nexport default createChildListViewContainer({ actions })(Component)\r\n","import * as React from 'react'\r\nimport { Form } from 'antd'\r\nimport { showError } from 'helpers/errors'\r\nimport { createSetFilterValue } from 'helpers/filters'\r\nimport { createDropdownRender, createSearchAssets } from 'helpers/formViews'\r\nimport { stopEvent } from 'helpers/events'\r\nimport { t } from 'helpers/i18n'\r\nimport Select, { Option, getOptionProps } from 'elements/Select'\r\nimport { Row, Col } from 'elements/Grid'\r\n\r\nclass Filter extends React.Component {\r\n state = {}\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.setFilterValue = createSetFilterValue(this)\r\n this.searchAssets = createSearchAssets(this)\r\n }\r\n\r\n componentDidMount() {\r\n const { locationIds, assetCategoryIds, assetIds } = this.props.filterDto\r\n\r\n Promise.all([\r\n this.props.getLocations({ locationIds }),\r\n this.props.getAssetCategories(),\r\n this.props.getAssets({ assetCategoryIds, assetIds }),\r\n ]).catch((error) => showError({ error }))\r\n }\r\n\r\n render() {\r\n const { filterDto, assets, enableAssetManagement } = this.props\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n this.setFilterValue('locationIds', value)}\r\n mode=\"multiple\"\r\n placeholder={t('all')}\r\n value={filterDto.locationIds}\r\n >\r\n {(this.props.locations ?? []).map((each) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n {enableAssetManagement && (\r\n <>\r\n \r\n \r\n this.setFilterValue('assetCategoryIds', value)}\r\n mode=\"multiple\"\r\n placeholder={t('all')}\r\n value={filterDto.assetCategoryIds}\r\n >\r\n {(this.props.assetCategories ?? []).map((each) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n this.setFilterValue('assetIds', values)}\r\n value={filterDto.assetIds}\r\n dropdownRender={createDropdownRender(assets)}\r\n onSearch={this.searchAssets}\r\n placeholder={t('all')}\r\n mode=\"multiple\"\r\n showSearch\r\n >\r\n {(assets?.items ?? []).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\nexport default Form.create()(Filter)\r\n","import { connect } from 'react-redux'\r\nimport { createAuthStateToProps } from 'helpers/auth'\r\nimport selectors from 'selectors'\r\nimport locationActions from 'actions/locations'\r\nimport assetCategoryActions from 'actions/assetCategories'\r\nimport assetActions from 'actions/assets'\r\nimport Component from 'components/JobTemplates/Select/Filter'\r\n\r\nconst mapStateToProps = (state, props) => ({\r\n ...createAuthStateToProps(state, props),\r\n locations: selectors.locations.selectOptions(state),\r\n assetCategories: selectors.assetCategories.selectOptions(state),\r\n assets: selectors.assets.selectOptions(state, { itemsOnly: false }),\r\n})\r\n\r\nconst mapDispatchToProps = (dispatch, props) => ({\r\n getLocations: (params) =>\r\n dispatch(locationActions.getOptions({ ...params, active: 'All', locationVendingTypes: ['NonVending'] })),\r\n getAssetCategories: (params) => dispatch(assetCategoryActions.getOptions(params)),\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})\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Component)\r\n","import { createListModalComponent } from 'factories/ListModal'\r\nimport Filter from 'containers/JobTemplates/Select/Filter'\r\n\r\nexport default createListModalComponent({\r\n getStorageKey: (self) => 'selectJobTemplate',\r\n getSettingsType: (self) => 'selectJobTemplate',\r\n})(Filter)\r\n","import { createListModalContainer } from 'factories/ListModal'\r\nimport actions from 'actions/jobTemplates'\r\nimport Component from 'components/JobTemplates/Select'\r\n\r\nexport default createListModalContainer({ actions })(Component)\r\n","import produce from 'immer'\r\nimport { isEmpty } from 'lodash'\r\nimport { createChildListViewComponent } from 'factories/ChildListView'\r\nimport entityNames from 'options/entityNames'\r\nimport { t } from 'helpers/i18n'\r\nimport { isReadOnly } from 'helpers/formViews'\r\nimport { formatUserTime } from 'helpers/dateTime'\r\nimport Checkbox from 'elements/Checkbox'\r\nimport FormView from 'containers/Jobs/Checklist/FormView'\r\n\r\nexport default createChildListViewComponent({\r\n entityName: entityNames.jobs,\r\n childName: 'jobChecklist',\r\n createButtonTextId: 'addChecklistItem',\r\n createButtonLinkTarget: {\r\n formSize: 'xs',\r\n formComponent: FormView,\r\n },\r\n primaryLinkTarget: 'jobChecklistRecord',\r\n tableSummary: (self) => {\r\n if (self.props.isTemplate) {\r\n return ''\r\n }\r\n\r\n const { items = [] } = self.props\r\n const complete = items.filter((each) => each.complete).length\r\n const percentage = !isEmpty(items) ? Math.round((complete * 100) / items.length) : 0\r\n\r\n return `${complete} ${t('of')} ${items.length} ${t('itemsCompleted')} (${percentage}%)`\r\n },\r\n tableCellComponents: {\r\n complete: (self, item) => (\r\n {\r\n try {\r\n await self.props.onChange(\r\n produce(self.props.items, (draftItems) => {\r\n const draftItem = draftItems.find((one) => one.id === item.id)\r\n\r\n draftItem.complete = e.target.checked\r\n draftItem.lastUser = draftItem.complete ? self.props.user.userName : null\r\n draftItem.lastUserDate = draftItem.complete ? new Date().toJSON() : null\r\n })\r\n )\r\n } catch (error) {\r\n console.warn(error)\r\n }\r\n }}\r\n />\r\n ),\r\n lastUserDate: (self, item) => formatUserTime(item.lastUserDate, item.lastUser),\r\n },\r\n})()\r\n","import { createChildListViewContainer } from 'factories/ChildListView'\r\nimport actions from 'actions/jobs/jobChecklist'\r\nimport Component from 'components/Jobs/Checklist'\r\n\r\nexport default createChildListViewContainer({ actions })(Component)\r\n","import { createChildListViewComponent } from 'factories/ChildListView'\r\nimport entityNames from 'options/entityNames'\r\nimport { tryParseMoment, ZERO_HOUR } from 'helpers/dateTime'\r\nimport { t } from 'helpers/i18n'\r\nimport FormView from 'containers/Jobs/Labour/FormView'\r\n\r\nexport default createChildListViewComponent({\r\n entityName: entityNames.jobs,\r\n childName: 'jobLabour',\r\n createButtonTextId: 'addLabour',\r\n createButtonLinkTarget: {\r\n formSize: 'xs',\r\n formComponent: FormView,\r\n },\r\n primaryLinkTarget: 'labourRecord',\r\n allowCustomize: (self) => true,\r\n tableCellComponents: {\r\n timeSpan: (self, item) => {\r\n if (item.timeType === 'StartStop') {\r\n const startMoment = tryParseMoment(item.startTime, ZERO_HOUR).year(2000).month(1).date(1)\r\n const stopMoment = tryParseMoment(item.stopTime, ZERO_HOUR).year(2000).month(1).date(1)\r\n\r\n return `${startMoment.format('h:mm A')} To ${stopMoment.format('h:mm A')}`\r\n }\r\n\r\n return t('na')\r\n },\r\n },\r\n})()\r\n","import { createChildListViewContainer } from 'factories/ChildListView'\r\nimport actions from 'actions/jobs/jobLabour'\r\nimport Component from 'components/Jobs/Labour'\r\n\r\nexport default createChildListViewContainer({ actions })(Component)\r\n","import * as React from 'react'\r\nimport produce from 'immer'\r\nimport moment from 'moment'\r\nimport { Form, Input, Tabs, Spin, Dropdown, Menu, Button, Tooltip, message } from 'antd'\r\nimport { isNil, get, set, range, isEmpty, cloneDeep, invoke, round, isEqual, flow, uniq } from 'lodash'\r\nimport { saveAs } from 'file-saver'\r\nimport { getUserPermission } from 'helpers/auth'\r\nimport { setStorageItem } from 'helpers/localStorage'\r\nimport { getKeyValueItem, setKeyValueItem } from 'helpers/keyValueStorage'\r\nimport { showError, resourceNotFound, ValidationError, showClientNotifications } from 'helpers/errors'\r\nimport { isValidDate, tryParseMoment, formatUserTime, MIN_TIME, MAX_TIME } from 'helpers/dateTime'\r\nimport {\r\n createLabelFactory,\r\n createFieldFactory,\r\n createDropdownRender,\r\n createSaveDocumentItems,\r\n createSaveToleranceHistoryItems,\r\n createSaveWarrantyItems,\r\n createHandleSubmit,\r\n validateBarcode,\r\n isReadOnly,\r\n confirmUnsavedChanges,\r\n} from 'helpers/formViews'\r\nimport { setSessionItem } from 'helpers/sessionStorage'\r\nimport { HARD_SPACE } from 'helpers/utils'\r\nimport { stopEvent, Emitter } from 'helpers/events'\r\nimport linkTargets from 'options/linkTargets'\r\nimport {\r\n createSearchAssets,\r\n createSearchOperators,\r\n createSearchAssignedOperators,\r\n createSaveChecklistItems,\r\n createSaveLabourItems,\r\n prioritizeChecklistItems,\r\n} from 'helpers/jobs'\r\nimport { withRouter } from 'react-router-dom'\r\nimport { createPrintHandler, resetPrintHandler } from 'helpers/print'\r\nimport { t, toLocaleNumber } from 'helpers/i18n'\r\nimport { getMimeType, getFileExtension } from 'helpers/downloadItems'\r\nimport { createSaveFormInstances, createRefreshFormInstances, FormInstancesContext } from 'helpers/formInstances'\r\nimport { TRACK_ASSETS_AFTER_CLOSE_KEY } from 'components/TrackAssets'\r\nimport { FORM_INSTANCES_REFRESH, FORM_CHANGE_EVENT } from 'options/events'\r\nimport Print from 'containers/Jobs/Print'\r\nimport FormInstances from 'containers/Jobs/Forms'\r\nimport SelectJobTemplates from 'containers/JobTemplates/Select'\r\nimport Checklist from 'containers/Jobs/Checklist'\r\nimport Tolerances from 'containers/Assets/Tolerances'\r\nimport Labour from 'containers/Jobs/Labour'\r\nimport Warranties from 'containers/Assets/Warranties'\r\nimport Documents from 'containers/Documents/ChildListView'\r\nimport Lists from 'containers/Lists/ChildListView'\r\nimport Comments from 'elements/Comments'\r\nimport Select, { Option, getOptionProps } from 'elements/Select'\r\nimport Icon from 'elements/Icon'\r\nimport DatePicker from 'elements/DatePicker'\r\nimport InputNumber from 'elements/InputNumber'\r\nimport CheckboxList from 'elements/CheckboxList'\r\nimport Checkbox from 'elements/Checkbox'\r\nimport Modal from 'elements/Modal'\r\nimport { Row, Col } from 'elements/Grid'\r\nimport Help from 'elements/Help'\r\nimport Drawer from 'elements/Drawer'\r\nimport FormButtons from 'elements/FormButtons'\r\nimport SelectOperators from 'containers/Operators/Select'\r\nimport SendEmail from 'components/SendEmail'\r\n\r\nconst JobTasksFromView = linkTargets.jobTaskRecord.formComponent\r\nconst AssetsFormView = linkTargets.assetRecord.formComponent\r\n\r\nconst getDowntime = ({ downtimeStart, downtimeEnd }) =>\r\n isValidDate(downtimeStart) && isValidDate(downtimeEnd)\r\n ? round(moment.duration(moment(downtimeEnd).diff(moment(downtimeStart))).asHours(), 2)\r\n : 0\r\n\r\nclass FormView extends React.Component {\r\n state = {\r\n checklistItems: [],\r\n labourItems: [],\r\n listItems: [],\r\n warrantyItems: [],\r\n toleranceItems: [],\r\n }\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.searchAssets = createSearchAssets(this)\r\n this.searchOperators = createSearchOperators(this)\r\n this.searchAssignedToOperators = createSearchAssignedOperators(this)\r\n this.saveDocumentItems = createSaveDocumentItems(this, 'Job')\r\n this.saveToleranceHistoryItems = createSaveToleranceHistoryItems(this)\r\n this.saveWarrantyItems = createSaveWarrantyItems(this)\r\n this.saveChecklistItems = createSaveChecklistItems(this)\r\n this.saveLabourItems = createSaveLabourItems(this)\r\n this.saveFormInstances = createSaveFormInstances(this, { objectType: 'Job' })\r\n this.refreshFormInstances = createRefreshFormInstances(this, { objectType: 'Job' })\r\n }\r\n\r\n componentDidMount() {\r\n 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 promiseState = (state = {}) => new Promise((resolve) => this.setState(state, resolve))\r\n\r\n isTemplate = () =>\r\n Boolean(this.props.isTemplate) ||\r\n Boolean(this.props.linkTargetRecord?.legacyReportTaskSettings?.templateId) ||\r\n Boolean(this.props.linkTargetRecord?.jobTaskSettings?.templateId)\r\n\r\n handleFormChange = () => this.setState({ formHasChanged: true })\r\n\r\n getItemId = () =>\r\n [\r\n this.state.item?.id,\r\n this.props.linkTargetRecord?.legacyReportTaskSettings?.templateId,\r\n this.props.linkTargetRecord?.jobTaskSettings?.templateId,\r\n this.props.linkTargetRecord?.jobId,\r\n this.props.linkTargetRecord?.objectId,\r\n ].find(Boolean)\r\n\r\n fetchItem = async ({ itemId = this.getItemId() } = {}) => {\r\n try {\r\n const { isScheduledJob } = this.props.linkTargetRecord ?? {}\r\n const responses = await Promise.all([\r\n isScheduledJob\r\n ? Promise.resolve({ value: { data: this.props.linkTargetRecord } })\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.isTemplate() ? 'jobTemplates' : 'job' }),\r\n this.props.getFileTemplates({ objectType: 'JobChecklistItem' }),\r\n this.props.getLocations(),\r\n this.props.getAssetCategories(),\r\n this.props.getJobReasons(),\r\n this.props.getJobGroups({ includeUnassignedSelection: false }),\r\n this.props.getJobStatusOptions(),\r\n this.props.getUsers(),\r\n ])\r\n\r\n const item = cloneDeep(responses[0].value.data)\r\n\r\n if (!item.id) {\r\n item.assetId = this.props.assetId || item.assetId || 0\r\n item.locationId = this.props.locationId || item.locationId || 0\r\n item.assetCategoryId = this.props.assetCategoryId || item.assetCategoryId || 0\r\n }\r\n\r\n item.locationId = item.locationId || undefined\r\n item.locationName = item.locationId ? item.locationName : ''\r\n\r\n const [\r\n assets,\r\n assignedToOperators,\r\n operators,\r\n checklistItems,\r\n labourItems,\r\n toleranceItems,\r\n warrantyItems,\r\n documentItems,\r\n formInstanceItems,\r\n ] = await Promise.all([\r\n this.props.getAssets({\r\n assetIds: item.assetId ? [item.assetId] : undefined,\r\n assetCategoryIds: item.assetCategoryId ? [item.assetCategoryId] : undefined,\r\n locationIds: item.locationId ? [item.locationId] : undefined,\r\n }),\r\n this.props.getOperators({ operatorIds: item.assignedToId ? [item.assignedToId] : undefined }),\r\n this.props.getOperators({ operatorIds: item.operatorIds }),\r\n item.id && !item.isScheduledJob ? this.props.getChecklistItems(item.id) : Promise.resolve(null),\r\n item.id && !item.isScheduledJob ? this.props.getLabourItems(item.id) : Promise.resolve(null),\r\n item.assetId ? this.props.getToleranceItems(item.assetId) : Promise.resolve(null),\r\n item.assetId ? this.props.getWarrantyItems(item.assetId) : Promise.resolve(null),\r\n item.id && !item.isScheduledJob\r\n ? this.props.getDocumentItems({\r\n request: {\r\n domainObjectId: item.id,\r\n domainObjectType: 'Job',\r\n documentType: 'ObjectDocument',\r\n },\r\n })\r\n : Promise.resolve(null),\r\n item.id && !item.isScheduledJob\r\n ? this.props.getFormInstanceItems({ objectType: 'Job', objectId: item.id })\r\n : Promise.resolve(null),\r\n ])\r\n\r\n this.setState({\r\n item,\r\n itemOriginal: cloneDeep(item),\r\n fieldSettings: responses[1].value.data.fieldSettings,\r\n fileTemplates: get(responses[2], 'value.data.items', []),\r\n locations: get(responses[3], 'value.data.items', []),\r\n assetCategories: get(responses[4], 'value.data.items', []),\r\n jobReasons: get(responses[5], 'value.data.items', []),\r\n jobGroups: get(responses[6], 'value.data.items', []),\r\n jobStatusOptions: get(responses[7], 'value.data.items', []),\r\n users: get(responses[8], 'value.data.items', []),\r\n assets: assets?.value?.data ?? {},\r\n assignedToOperators: assignedToOperators?.value?.data ?? {},\r\n operators: operators?.value?.data ?? {},\r\n checklistItems: get(checklistItems, 'value.data.items', []),\r\n checklistItemsOriginal: get(checklistItems, 'value.data.items', []),\r\n checklistItemsTotals: get(checklistItems, 'value.data.pageTotals', {}),\r\n labourItems: get(labourItems, 'value.data.items', []),\r\n labourItemsOriginal: get(labourItems, 'value.data.items', []),\r\n labourItemsTotals: get(labourItems, 'value.data.pageTotals', {}),\r\n toleranceItems: get(toleranceItems, 'value.data.items', []),\r\n toleranceItemsOriginal: get(toleranceItems, 'value.data.items', []),\r\n toleranceItemsTotals: get(toleranceItems, 'value.data.pageTotals', {}),\r\n warrantyItems: get(warrantyItems, 'value.data.items', []),\r\n warrantyItemsOriginal: get(warrantyItems, 'value.data.items', []),\r\n warrantyItemsTotals: get(warrantyItems, 'value.data.pageTotals', {}),\r\n documentItems: get(documentItems, 'value.data.items', []),\r\n documentItemsOriginal: get(documentItems, 'value.data.items', []),\r\n documentItemsTotals: get(documentItems, 'value.data.pageTotals', {}),\r\n formInstanceItems: get(formInstanceItems, 'value.data.items', []),\r\n formInstanceItemsOriginal: get(formInstanceItems, 'value.data.items', []),\r\n formInstanceItemsTotals: get(formInstanceItems, 'value.data.pageTotals', {}),\r\n formHasChanged: false,\r\n })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }\r\n\r\n setItemValue = (name, value) => {\r\n if (!this.state.item.userCanEditRecord) {\r\n return\r\n }\r\n\r\n this.setState(\r\n produce((draft) => {\r\n set(draft.item, name, value)\r\n\r\n if (name === 'locationId') {\r\n draft.item.assetId = 0\r\n draft.tabsActiveKey = 'general'\r\n }\r\n\r\n if (name === 'assetCategoryId') {\r\n draft.item.assetId = 0\r\n draft.tabsActiveKey = 'general'\r\n }\r\n\r\n if (name === 'assetId' && draft.assets?.items) {\r\n if (value) {\r\n const locationId = draft.assets.items.find((one) => one.id === value).locationId\r\n\r\n if (locationId && draft.locations.find((one) => one.id === locationId)) {\r\n draft.item.locationId = locationId\r\n } else {\r\n draft.item.locationId = null\r\n }\r\n } else {\r\n draft.tabsActiveKey = 'general'\r\n }\r\n }\r\n\r\n if (name === 'approvedToBegin') {\r\n if (value) {\r\n draft.item.approvedToBeginBy = this.props.user.userName\r\n draft.item.approvedToBeginDate = new Date()\r\n } else {\r\n draft.item.approvedToBeginBy = null\r\n draft.item.approvedToBeginDate = null\r\n draft.item.approvedToClose = false\r\n draft.item.approvedToCloseBy = null\r\n draft.item.approvedToCloseDate = null\r\n draft.item.active = true\r\n draft.item.completedBy = null\r\n draft.item.completionDate = null\r\n }\r\n }\r\n\r\n if (name === 'approvedToClose') {\r\n if (value) {\r\n draft.item.approvedToCloseBy = this.props.user.userName\r\n draft.item.approvedToCloseDate = new Date()\r\n draft.item.approvedToBegin = true\r\n draft.item.approvedToBeginBy = draft.item.approvedToBeginBy || this.props.user.userName\r\n draft.item.approvedToBeginDate = draft.item.approvedToBeginDate || new Date()\r\n } else {\r\n draft.item.approvedToCloseBy = null\r\n draft.item.approvedToCloseDate = null\r\n draft.item.active = true\r\n draft.item.completedBy = null\r\n draft.item.completionDate = null\r\n }\r\n }\r\n\r\n if (name === 'active') {\r\n if (value) {\r\n draft.item.completedBy = null\r\n draft.item.completionDate = null\r\n draft.item.downtimeEnd = null\r\n draft.item.productionDowntime = 0\r\n } else {\r\n draft.item.completedBy = this.props.user.userName\r\n draft.item.completionDate = new Date()\r\n draft.item.downtimeEnd = new Date()\r\n draft.item.approvedToBegin = true\r\n draft.item.approvedToBeginBy = draft.item.approvedToBeginBy || this.props.user.userName\r\n draft.item.approvedToBeginDate = draft.item.approvedToBeginDate || new Date()\r\n draft.item.approvedToClose = true\r\n draft.item.approvedToCloseBy = draft.item.approvedToCloseBy || this.props.user.userName\r\n draft.item.approvedToCloseDate = draft.item.approvedToCloseDate || new Date()\r\n }\r\n }\r\n\r\n if (name === 'reasonId') {\r\n const { duration = 0, useDuration = false } = draft.jobReasons.find((one) => one.id === value) || {}\r\n\r\n if (useDuration) {\r\n if (this.isTemplate()) {\r\n draft.item.duration = duration\r\n } else {\r\n draft.item.dueDate = new Date(new Date().getTime() + duration * 24 * 60 * 60 * 1000)\r\n }\r\n }\r\n }\r\n\r\n if (name === 'trackDowntime') {\r\n if (value === false) {\r\n draft.item.productionEqualsElapsed = true\r\n draft.item.productionDowntime = getDowntime(draft.item)\r\n }\r\n }\r\n\r\n if (!draft.item.active && draft.item.productionEqualsElapsed) {\r\n draft.item.productionDowntime = getDowntime(draft.item)\r\n }\r\n\r\n this.props.form.setFieldsValue({\r\n locationId: draft.item.locationId || null,\r\n assetId: draft.item.assetId || 0,\r\n assetCategoryId: draft.item.assetCategoryId || 0,\r\n productionDowntime: draft.item.productionDowntime || 0,\r\n downtimeStart: draft.item.downtimeStart,\r\n downtimeEnd: draft.item.downtimeEnd,\r\n priority: draft.item.priority || 0,\r\n assignedToId: draft.item.assignedToId || 0,\r\n })\r\n }),\r\n async () => {\r\n if (['locationId', 'assetCategoryId'].includes(name)) {\r\n await this.props.onSave?.(true)\r\n\r\n try {\r\n const { assetId, assetCategoryId, locationId } = this.state.item\r\n\r\n const assets = await this.props\r\n .getAssets({\r\n assetIds: assetId ? [assetId] : undefined,\r\n assetCategoryIds: assetCategoryId ? [assetCategoryId] : undefined,\r\n locationIds: locationId ? [locationId] : undefined,\r\n })\r\n .then((r) => r.value.data)\r\n\r\n this.setState({\r\n assets,\r\n toleranceItems: [],\r\n toleranceItemsOriginal: [],\r\n warrantyItems: [],\r\n warrantyItemsOriginal: [],\r\n })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n\r\n await this.props.onSave?.(false)\r\n }\r\n\r\n if (name === 'assetId') {\r\n if (value > 0) {\r\n try {\r\n const [toleranceItems, warrantyItems] = await Promise.all([\r\n this.props.getToleranceItems(value),\r\n this.props.getWarrantyItems(value),\r\n ])\r\n\r\n this.setState({\r\n toleranceItems: get(toleranceItems, 'value.data.items', []),\r\n toleranceItemsOriginal: get(toleranceItems, 'value.data.items', []),\r\n toleranceItemsTotals: get(toleranceItems, 'value.data.pageTotals', {}),\r\n warrantyItems: get(warrantyItems, 'value.data.items', []),\r\n warrantyItemsOriginal: get(warrantyItems, 'value.data.items', []),\r\n warrantyItemsTotals: get(warrantyItems, 'value.data.pageTotals', {}),\r\n })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n } else {\r\n this.setState({\r\n toleranceItems: [],\r\n toleranceItemsOriginal: [],\r\n warrantyItems: [],\r\n warrantyItemsOriginal: [],\r\n })\r\n }\r\n }\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.checklistItems, this.state.checklistItemsOriginal) ||\r\n !isEqual(this.state.labourItems, this.state.labourItemsOriginal) ||\r\n !isEqual(this.state.warrantyItems, this.state.warrantyItemsOriginal) ||\r\n !isEqual(this.state.toleranceItems, this.state.toleranceItemsOriginal) ||\r\n !isEqual(this.state.documentItems, this.state.documentItemsOriginal)\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 const saved = item.id ? await this.props.updateItem(item) : await this.props.createItem(item)\r\n\r\n await Promise.all([\r\n this.saveChecklistItems(saved.value.data.id),\r\n this.saveLabourItems(saved.value.data.id),\r\n this.saveWarrantyItems(saved.value.data.assetId),\r\n this.saveToleranceHistoryItems(saved.value.data.assetId),\r\n this.saveDocumentItems(saved.value.data.id),\r\n ])\r\n\r\n return saved\r\n }\r\n\r\n transformSaveItemParams = ({ item, values }) => ({\r\n downtimeStart: this.isTemplate() ? item.createdDate : item.downtimeStart,\r\n })\r\n\r\n handleActionsMenuClick = async ({ key }) => {\r\n switch (key) {\r\n case get(key.match(/^fileTemplate:\\d+$/), 'input'):\r\n try {\r\n const fileTemplateId = key.replace(/^fileTemplate:/, '')\r\n const fileTemplate = await this.props.getFileTemplate(fileTemplateId).then((r) => r.value.data)\r\n const acceptMimeType = getMimeType(fileTemplate.fileTemplateFileType)\r\n\r\n const response = await this.props.downloadChecklistItems(this.state.item.id, {\r\n acceptMimeType,\r\n selectedColumnKeys: fileTemplate.fields,\r\n })\r\n\r\n saveAs(response.value.data, `${fileTemplate.name}.${getFileExtension(acceptMimeType)}`)\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n break\r\n\r\n case 'createFromTemplate':\r\n this.setState({ createFromTemplateVisible: true })\r\n break\r\n\r\n case 'uploadChecklist':\r\n confirmUnsavedChanges(() => {\r\n this.props.history.push('/tools/dataExchange/uploadData?objectType=JobChecklistItem')\r\n this.props.onCancel()\r\n })\r\n break\r\n\r\n case 'addToSchedule':\r\n this.setState({\r\n addToScheduleVisible: true,\r\n addToScheduleSaving: false,\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 '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 case 'issueItems':\r\n confirmUnsavedChanges(async () => {\r\n try {\r\n setStorageItem('inventory.issue.formView', {\r\n quickscan: true,\r\n requireQuantity: true,\r\n })\r\n await getKeyValueItem('inventory.issue.sideForm')\r\n await setKeyValueItem('inventory.issue.sideForm', {\r\n locationId: this.state.item.locationId,\r\n jobId: this.state.item.id,\r\n jobName: this.state.item.name,\r\n jobNumber: this.state.item.number,\r\n jobBarcode: this.state.item.barcode,\r\n jobDisplayName: `${this.state.item.barcode} - ${this.state.item.name}`,\r\n operatorId: this.props.user.operatorId,\r\n operatorBarcode: this.props.user.operatorBarcode,\r\n operatorDisplayName: this.props.user.operatorName,\r\n assetId: this.state.item.assetId && this.state.item.assetName ? this.state.item.assetId : undefined,\r\n assetDisplayName:\r\n this.state.item.assetId && this.state.item.assetName ? this.state.item.assetName : undefined,\r\n })\r\n this.props.history.push('/inventory/issue')\r\n this.props.onCancel()\r\n } catch (error) {\r\n showError({ error })\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 handleCreateFromTemplateOk = async () => {\r\n try {\r\n await this.props.onSave?.(true)\r\n\r\n this.setState({ createFromTemplateLoading: true })\r\n\r\n const saved = await this.props.createFromTemplate(this.state.createFromTemplateRecord.id, {\r\n assetId: this.state.item.assetId ?? 0,\r\n assetLocationId: this.state.item.locationId ?? 0,\r\n assignedOperatorId: this.state.item.assignedToId ?? 0,\r\n })\r\n\r\n await this.promiseState({\r\n item: null,\r\n createFromTemplateVisible: false,\r\n createFromTemplateRecord: null,\r\n })\r\n await this.fetchItem({ itemId: saved.value.data.id })\r\n await this.props.onSave?.(false, saved.value.data)\r\n } catch (error) {\r\n showError({ error })\r\n await this.props.onSave?.(false)\r\n } finally {\r\n this.setState({ createFromTemplateLoading: false })\r\n }\r\n }\r\n\r\n requestApproval = async (action) => {\r\n try {\r\n this.setState({ requestApprovalLoading: true })\r\n\r\n await invoke(this.props, action, this.state.item.id)\r\n\r\n message.success(t('requestSentSuccessfully'))\r\n } catch (error) {\r\n showError({ error })\r\n } finally {\r\n this.setState({ requestApprovalLoading: false })\r\n }\r\n }\r\n\r\n handleChangeCloseDateOk = () =>\r\n this.setState({ changeCloseDateVisible: false }, () =>\r\n this.setItemValue('completionDate', this.state.completionDateToUpdate)\r\n )\r\n\r\n handleGenerateClick = async (e) => {\r\n let saved = null\r\n\r\n try {\r\n stopEvent(e)\r\n\r\n const params = {\r\n ...this.props.form.getFieldsValue(),\r\n isTemplate: this.isTemplate(),\r\n downtimeStart: new Date().toJSON(),\r\n createdDate: new Date().toJSON(),\r\n createdBy: this.props.user.userName,\r\n id: undefined,\r\n }\r\n\r\n if (!params.locationId) {\r\n message.error(t('selectLocationFirst'))\r\n return\r\n }\r\n\r\n this.setState({ validationErrors: null, generateButtonLoading: true })\r\n\r\n await this.props.onSave?.(true)\r\n\r\n saved = await this.props.generateId(params).then((r) => r.value.data)\r\n\r\n await this.fetchItem({ itemId: saved.id })\r\n\r\n await this.props.onSave?.(false, saved)\r\n } catch (error) {\r\n showError({ error })\r\n await this.props.onSave?.(false, saved)\r\n } finally {\r\n this.setState({ generateButtonLoading: false })\r\n }\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.emailJob(this.state.item.id, recipients)\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 render() {\r\n const { item, fieldSettings, operators, assignedToOperators, assets, checklistItems, toleranceItems, jobGroups } =\r\n this.state\r\n\r\n if (!item || !fieldSettings) {\r\n return \r\n }\r\n\r\n const createLabel = createLabelFactory(this.state.fieldSettings)\r\n const createFieldDecorator = createFieldFactory(this.props.form, item, this.state.fieldSettings)\r\n\r\n // Permissions\r\n const requireChecklist = this.props.customer.generalSettings.requireChecklistCompleteToCloseJob\r\n const enableActiveCheckbox =\r\n item.id &&\r\n getUserPermission('CloseJobs') === 'Yes' &&\r\n (!requireChecklist || !checklistItems.find((one) => !one.complete))\r\n const enableDowntimeStart = item.trackDowntime && getUserPermission('EditJobCloseDate') === 'Yes'\r\n const enableDowntimeEnd = !item.active && item.trackDowntime && getUserPermission('EditJobCloseDate') === 'Yes'\r\n const enableProductionDowntime =\r\n !item.active &&\r\n item.trackDowntime &&\r\n !item.productionEqualsElapsed &&\r\n getUserPermission('EditJobCloseDate') === 'Yes'\r\n const enableProductionEqualsElapsedCheckbox =\r\n !item.active && item.trackDowntime && getUserPermission('EditJobCloseDate') === 'Yes'\r\n const readOnly = isReadOnly(this) || item.userCanEditRecord === false || item.isScheduledJob\r\n const userCanApproveRecord =\r\n item.id && (getUserPermission('CloseJobs') === 'Yes' || getUserPermission('Jobs') === 'All')\r\n const checklistFileTemplates = this.state.fileTemplates ?? []\r\n\r\n return (\r\n <>\r\n
\r\n {this.isTemplate() && this.props.enableAssetManagement && (\r\n \r\n \r\n {t('addToSchedule')}\r\n \r\n \r\n }\r\n trigger={['click']}\r\n >\r\n \r\n \r\n )}\r\n \r\n {!isEmpty(checklistFileTemplates) && (\r\n \r\n {checklistFileTemplates.map((each) => (\r\n {each.name}\r\n ))}\r\n \r\n )}\r\n \r\n {t('uploadChecklist')}\r\n \r\n \r\n \r\n {t('print...')}\r\n \r\n \r\n ) : (\r\n \r\n {!item.id\r\n ? [\r\n {t('createFromTemplate')},\r\n ,\r\n ]\r\n : null}\r\n {getUserPermission('Issue') === 'Yes' && [\r\n {t('issueItems')},\r\n ,\r\n ]}\r\n {!isEmpty(checklistFileTemplates) && (\r\n \r\n {checklistFileTemplates.map((each) => (\r\n {each.name}\r\n ))}\r\n \r\n )}\r\n \r\n {t('uploadChecklist')}\r\n \r\n \r\n \r\n {t('email')}\r\n \r\n \r\n \r\n {t('print...')}\r\n \r\n \r\n )\r\n }\r\n trigger={['click']}\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('barcode', { extraRules: [validateBarcode()] })(\r\n \r\n )}\r\n \r\n {!item.id && (\r\n \r\n \r\n {t('generate')}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {createFieldDecorator('number')()}\r\n \r\n \r\n \r\n \r\n {createFieldDecorator('name')()}\r\n \r\n \r\n \r\n \r\n {!this.isTemplate() && this.props.enableAssetManagement && (\r\n \r\n {createFieldDecorator('requestedBy')()}\r\n \r\n )}\r\n \r\n {this.props.enableAssetManagement && (\r\n \r\n {!this.isTemplate() && (\r\n <>\r\n \r\n this.setItemValue('approvedToBegin', e.target.checked)}\r\n checked={item.approvedToBegin}\r\n disabled={!userCanApproveRecord}\r\n readOnly={readOnly}\r\n >\r\n {createLabel('approvedToBegin')}\r\n \r\n \r\n \r\n this.setItemValue('approvedToClose', e.target.checked)}\r\n checked={item.approvedToClose}\r\n disabled={!userCanApproveRecord}\r\n readOnly={readOnly}\r\n >\r\n {createLabel('approvedToClose')}\r\n \r\n \r\n \r\n this.setItemValue('active', !e.target.checked)}\r\n checked={!item.active}\r\n disabled={!enableActiveCheckbox}\r\n readOnly={readOnly}\r\n >\r\n {createLabel('active')}{' '}\r\n {item.active && getUserPermission('CloseJobs') !== 'Yes'\r\n ? `- ${t('needPermissionToClose')}`\r\n : item.active && requireChecklist && !isEmpty(item.checklistItems)\r\n ? `- ${t('requiresCompletedChecklist')}`\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 {createFieldDecorator('description')()}\r\n \r\n \r\n {!this.isTemplate() && this.props.enableAssetManagement && (\r\n \r\n \r\n {!item.approvedToBegin && !item.approvedToClose && item.active && (\r\n <>\r\n this.requestApproval('requestApprovalToBegin')}\r\n disabled={!item.id || readOnly}\r\n loading={this.state.requestApprovalLoading}\r\n className=\"mr-6\"\r\n >\r\n {t('requestApprovalToBegin')}\r\n {' '}\r\n \r\n \r\n )}\r\n {item.approvedToBegin && !item.approvedToClose && item.active && (\r\n <>\r\n this.requestApproval('requestApprovalToClose')}\r\n disabled={!item.id || readOnly}\r\n loading={this.state.requestApprovalLoading}\r\n className=\"mr-6\"\r\n >\r\n {t('requestApprovalToClose')}\r\n {' '}\r\n \r\n \r\n )}\r\n {item.approvedToBegin && item.approvedToClose && !item.active && (\r\n <>\r\n \r\n this.setState({\r\n changeCloseDateVisible: true,\r\n completionDateToUpdate: item.completionDate,\r\n })\r\n }\r\n className=\"mr-6\"\r\n >\r\n {t('changeCloseDate')}\r\n {' '}\r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n {this.props.enableAssetManagement && (\r\n \r\n \r\n \r\n {createFieldDecorator('assetCategoryId')(\r\n this.setItemValue('assetCategoryId', value || 0)}\r\n readOnly={readOnly}\r\n >\r\n \r\n {(this.state.assetCategories ?? []).map((each) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {['View', 'Edit'].includes(getUserPermission('Assets')) && (\r\n
\r\n \r\n \r\n this.setState({\r\n assetDrawerVisible: true,\r\n assetDrawerSaving: false,\r\n })\r\n }\r\n >\r\n \r\n \r\n {' '}\r\n \r\n {\r\n confirmUnsavedChanges(() => {\r\n setSessionItem(TRACK_ASSETS_AFTER_CLOSE_KEY, {\r\n redirectUrl: window.location.pathname,\r\n linkTarget: {\r\n linkTargetName: 'jobRecord',\r\n linkTargetRecord: { jobId: this.state.item.id },\r\n linkTargetText: this.state.item.barcode,\r\n },\r\n })\r\n setStorageItem('assets.trackAssets', {\r\n quickscan: true,\r\n assetId: item.assetId,\r\n jobId: item.id,\r\n operatorId: this.props.user.operatorId,\r\n operatorBarcode: this.props.user.operatorBarcode,\r\n operatorDisplayName: this.props.user.operatorName,\r\n })\r\n this.props.history.push('/assets/trackAssets')\r\n this.props.onCancel()\r\n })\r\n }}\r\n >\r\n \r\n \r\n \r\n
\r\n )}\r\n {createFieldDecorator('assetId')(\r\n this.setItemValue('assetId', value || 0)}\r\n dropdownRender={createDropdownRender(assets)}\r\n onSearch={this.searchAssets}\r\n readOnly={readOnly}\r\n allowClear\r\n showSearch\r\n >\r\n \r\n {(assets?.items ?? []).map((each) => (\r\n \r\n ))}\r\n \r\n )}\r\n
\r\n \r\n
\r\n )}\r\n this.setState({ tabsActiveKey })}\r\n >\r\n {this.props.enableAssetManagement ? (\r\n \r\n \r\n \r\n \r\n {createFieldDecorator('reasonId')(\r\n this.setItemValue('reasonId', value)}\r\n allowClear={false}\r\n readOnly={readOnly}\r\n >\r\n \r\n {(this.state.jobReasons ?? []).map((each) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n \r\n {createFieldDecorator('assignedToId')(\r\n this.setItemValue('assignedToId', value)}\r\n dropdownRender={createDropdownRender(assignedToOperators)}\r\n onSearch={this.searchAssignedToOperators}\r\n readOnly={readOnly}\r\n showSearch\r\n >\r\n \r\n {(assignedToOperators?.items ?? []).map((each) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n \r\n
\r\n \r\n \r\n this.setState({\r\n selectOperatorsVisible: true,\r\n selectOperatorsItems: [],\r\n selectOperatorsLoading: false,\r\n })\r\n }\r\n >\r\n \r\n \r\n \r\n
\r\n this.setItemValue('operatorIds', value)}\r\n dropdownRender={createDropdownRender(operators)}\r\n onSearch={this.searchOperators}\r\n mode=\"multiple\"\r\n placeholder={t('none')}\r\n readOnly={readOnly}\r\n showSearch\r\n >\r\n {(operators?.items ?? []).map((each) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n {createFieldDecorator('priority')(\r\n \r\n )}\r\n \r\n \r\n \r\n {this.isTemplate() ? (\r\n \r\n this.setItemValue('duration', value)}\r\n readOnly={readOnly}\r\n min={0}\r\n />\r\n \r\n ) : (\r\n \r\n this.setItemValue('dueDate', value)}\r\n value={item.dueDate}\r\n readOnly={readOnly}\r\n />\r\n \r\n )}\r\n \r\n {createFieldDecorator('budgetHours')()}\r\n \r\n {!this.isTemplate() && (\r\n \r\n {createFieldDecorator('statusOptionId')(\r\n \r\n )}\r\n \r\n )}\r\n \r\n {createFieldDecorator('notifyUser')(\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n this.setItemValue('trackDowntime', e.target.checked)}\r\n checked={item.trackDowntime}\r\n readOnly={readOnly}\r\n >\r\n {createLabel('trackDowntime')}\r\n \r\n \r\n {!this.isTemplate() && (\r\n <>\r\n \r\n {createFieldDecorator('downtimeStart', {\r\n extraRules: [\r\n {\r\n validator: (rule, value, callback) => {\r\n const downtimeStart = tryParseMoment(value, MIN_TIME)\r\n const downtimeEnd = tryParseMoment(item.downtimeEnd, MAX_TIME)\r\n callback(\r\n downtimeStart > downtimeEnd ? [new Error(t('downtimeStartValidationError'))] : []\r\n )\r\n },\r\n },\r\n ],\r\n })(\r\n this.setItemValue('downtimeStart', value)}\r\n placeholder={t('none')}\r\n setTimeMode=\"exact\"\r\n allowClear={false}\r\n disabled={!enableDowntimeStart}\r\n readOnly={readOnly}\r\n showTime\r\n />\r\n )}\r\n \r\n \r\n {createFieldDecorator('downtimeEnd', {\r\n extraRules: [\r\n {\r\n validator: (rule, value, callback) => {\r\n const downtimeStart = tryParseMoment(item.downtimeStart, MIN_TIME)\r\n const downtimeEnd = tryParseMoment(value, MAX_TIME)\r\n callback(\r\n downtimeStart > downtimeEnd ? [new Error(t('downtimeEndValidationError'))] : []\r\n )\r\n },\r\n },\r\n ],\r\n })(\r\n this.setItemValue('downtimeEnd', value)}\r\n placeholder={t('none')}\r\n setTimeMode=\"exact\"\r\n allowClear={false}\r\n disabled={!enableDowntimeEnd}\r\n readOnly={readOnly}\r\n showTime\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n {createFieldDecorator('productionDowntime')(\r\n this.setItemValue('productionDowntime', value)}\r\n disabled={!enableProductionDowntime}\r\n readOnly={readOnly}\r\n />\r\n )}\r\n \r\n \r\n this.setItemValue('productionEqualsElapsed', e.target.checked)}\r\n checked={item.productionEqualsElapsed}\r\n disabled={!enableProductionEqualsElapsedCheckbox}\r\n readOnly={readOnly}\r\n >\r\n {createLabel('productionEqualsElapsed')}\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('notes')()}\r\n \r\n \r\n {!this.isTemplate() && (\r\n \r\n this.setItemValue('actionTaken', value)}\r\n rows={5}\r\n label={createLabel('actionTaken')}\r\n title={t('addActionTaken')}\r\n readOnly={readOnly}\r\n />\r\n \r\n )}\r\n \r\n
\r\n ) : (\r\n \r\n \r\n \r\n \r\n {createFieldDecorator('priority')(\r\n this.setItemValue('priority', value || 0)}\r\n readOnly={readOnly}\r\n >\r\n \r\n {range(1, 7).map((each) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n {!this.isTemplate() && (\r\n \r\n {createFieldDecorator('statusOptionId')(\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n {this.props.enableAssetManagement && (\r\n \r\n \r\n {createFieldDecorator('instructions')(\r\n \r\n )}\r\n \r\n \r\n )}\r\n {item.assetId && this.props.enableAssetManagement && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {this.props.enableAssetManagement && (\r\n \r\n {!!item && (\r\n this.setState({ checklistItems: prioritizeChecklistItems(values) })}\r\n readOnly={readOnly || (requireChecklist && !item.active)}\r\n isTemplate={this.isTemplate()}\r\n parentRecord={item}\r\n />\r\n )}\r\n \r\n )}\r\n {!this.isTemplate() && this.props.enableAssetManagement && (\r\n \r\n this.setState({ labourItems: values })}\r\n readOnly={readOnly}\r\n />\r\n \r\n )}\r\n {this.props.enableAssetManagement &&\r\n !this.isTemplate() &&\r\n item?.assetId &&\r\n (assets?.items ?? []).find((one) => one.id === item.assetId) && [\r\n \r\n this.setState({ toleranceItems: values })}\r\n readOnly={readOnly}\r\n parentRecord={item}\r\n />\r\n ,\r\n \r\n this.setState({ warrantyItems: values })}\r\n readOnly={readOnly}\r\n />\r\n ,\r\n ]}\r\n \r\n \r\n \r\n \r\n \r\n this.setItemValue(\r\n 'jobGroupIds',\r\n jobGroups.filter((each) => values.includes(each.id)).map((each) => each.id)\r\n )\r\n }\r\n readOnly={readOnly}\r\n />\r\n \r\n \r\n \r\n \r\n {this.props.enableAssetManagement && (\r\n \r\n this.setState({ documentItems: values })}\r\n readOnly={readOnly}\r\n />\r\n \r\n )}\r\n {!isNil(item.id) && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {['custom1', 'custom2', 'custom3'].map((each) => (\r\n \r\n {createFieldDecorator(each)()}\r\n \r\n ))}\r\n \r\n \r\n {['custom4', 'custom5'].map((each) => (\r\n \r\n {createFieldDecorator(each)()}\r\n \r\n ))}\r\n \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 this.setState({\r\n createFromTemplateVisible: false,\r\n createFromTemplateRecord: null,\r\n })\r\n }\r\n width={992}\r\n >\r\n this.setState({ createFromTemplateRecord: values[0] })} />\r\n \r\n \r\n this.setState({\r\n changeCloseDateVisible: false,\r\n completionDateToUpdate: item.completionDate,\r\n })\r\n }\r\n >\r\n

\r\n \r\n this.setState({ completionDateToUpdate: value })}\r\n showTime\r\n />\r\n \r\n \r\n {this.isTemplate() && item.id && (\r\n this.setState({ addToScheduleVisible: false })}\r\n saving={this.state.addToScheduleSaving}\r\n >\r\n this.setState({ addToScheduleSaving: pending })}\r\n onSaveAndClose={() => this.setState({ addToScheduleVisible: false })}\r\n onCancel={() => this.setState({ addToScheduleVisible: false })}\r\n />\r\n \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 {Boolean(item.assetId) && (\r\n this.setState({ assetDrawerVisible: false })}\r\n saving={this.state.assetDrawerSaving}\r\n >\r\n \r\n this.promiseState({ assetDrawerSaving: pending }).then(async () => {\r\n await this.props.onSave?.(pending)\r\n\r\n if (!pending) {\r\n await this.fetchItem()\r\n }\r\n })\r\n }\r\n onSaveAndClose={() => this.setState({ assetDrawerVisible: false })}\r\n onCancel={() => this.setState({ assetDrawerVisible: false })}\r\n readOnly={getUserPermission('Assets') !== 'Edit'}\r\n />\r\n \r\n )}\r\n this.setState({ selectOperatorsVisible: false })}\r\n footer={\r\n <>\r\n \r\n {\r\n try {\r\n this.setState({ selectOperatorsLoading: true })\r\n\r\n const operatorIds = uniq([\r\n ...item.operatorIds,\r\n ...get(this.state, 'selectOperatorsItems', []).map((each) => each.id),\r\n ])\r\n const response = await this.props.getOperators({ operatorIds })\r\n\r\n this.setState(\r\n produce((draft) => {\r\n draft.item.operatorIds = operatorIds\r\n draft.operators = get(response, 'value.data')\r\n draft.selectOperatorsItems = []\r\n draft.selectOperatorsVisible = false\r\n })\r\n )\r\n } catch (error) {\r\n showError({ error })\r\n } finally {\r\n this.setState({ selectOperatorsLoading: false })\r\n }\r\n }}\r\n loading={this.state.selectOperatorsLoading}\r\n disabled={isEmpty(this.state.selectOperatorsItems)}\r\n type=\"primary\"\r\n >\r\n {t('select')}\r\n \r\n \r\n }\r\n width={992}\r\n >\r\n this.setState({ selectOperatorsItems: values })} mode=\"multiple\" />\r\n \r\n this.setState({ sendEmailVisible: false })}\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/jobs'\r\nimport fileTemplateActions from 'actions/fileTemplates'\r\nimport operatorActions from 'actions/operators'\r\nimport userActions from 'actions/users'\r\nimport locationActions from 'actions/locations'\r\nimport assetCategoryActions from 'actions/assetCategories'\r\nimport assetActions from 'actions/assets'\r\nimport jobReasonActions from 'actions/jobReasons'\r\nimport jobStatusOptionActions from 'actions/jobStatusOptions'\r\nimport jobGroupActions from 'actions/jobGroups'\r\nimport jobChecklistActions from 'actions/jobs/jobChecklist'\r\nimport jobLabourActions from 'actions/jobs/jobLabour'\r\nimport assetWarrantyActions from 'actions/assets/assetWarranties'\r\nimport assetToleranceActions from 'actions/assets/assetTolerances'\r\nimport documentActions from 'actions/documents'\r\nimport {\r\n createChildItemsDispatchToProps,\r\n createDocumentsDispatchToProps,\r\n createLinkedItemsDispatchToProps,\r\n} from 'helpers/formViews'\r\nimport { createFormViewContainer } from 'factories/FormView'\r\nimport formInstanceActions from 'actions/formInstances'\r\nimport Component from 'components/Jobs/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 generateId: (params) => dispatch(actions.generateId(params)),\r\n getLocations: (params) =>\r\n dispatch(locationActions.getItems({ ...params, locationVendingTypes: ['NonVending'] })),\r\n getAssetCategories: (params) => dispatch(assetCategoryActions.getOptions(params)),\r\n getJobReasons: (params) => dispatch(jobReasonActions.getOptions(params)),\r\n getJobGroups: (params) => dispatch(jobGroupActions.getOptions(params)),\r\n getJobStatusOptions: (params) => dispatch(jobStatusOptionActions.getOptions(params)),\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 getUsers: (params) => dispatch(userActions.getItems(params)),\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 getFileTemplates: (params) => dispatch(fileTemplateActions.getOptions(params)),\r\n getFileTemplate: (fileTemplateId) => dispatch(fileTemplateActions.getItem(fileTemplateId)),\r\n requestApprovalToBegin: (id) => dispatch(actions.requestApprovalToBegin(id)),\r\n requestApprovalToClose: (id) => dispatch(actions.requestApprovalToClose(id)),\r\n createFromTemplate: (id, params) => dispatch(actions.createFromTemplate(id, params)),\r\n emailJob: (id, params) => dispatch(actions.emailJob(id, params)),\r\n createTolerancesHistoryItems: (parentId, items) =>\r\n dispatch(assetToleranceActions.createHistoryItems(parentId, items)),\r\n ...createDocumentsDispatchToProps(dispatch, documentActions),\r\n ...createChildItemsDispatchToProps(dispatch, 'Checklist', jobChecklistActions),\r\n ...createChildItemsDispatchToProps(dispatch, 'Labour', jobLabourActions),\r\n ...createChildItemsDispatchToProps(dispatch, 'Warranty', assetWarrantyActions),\r\n ...createChildItemsDispatchToProps(dispatch, 'Tolerance', assetToleranceActions),\r\n ...createLinkedItemsDispatchToProps(dispatch, 'FormInstance', formInstanceActions),\r\n }),\r\n})(Component)\r\n","import { createChildActions } from 'helpers/actions'\r\nimport entityNames from 'options/entityNames'\r\n\r\nexport default createChildActions(entityNames.assets, 'assetWarranties')\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","import { createChildActions } from 'helpers/actions'\r\nimport entityNames from 'options/entityNames'\r\n\r\nexport default createChildActions(entityNames.jobs, 'jobLabour')\r\n","import { debounce, isEmpty, orderBy } from 'lodash'\r\nimport { getChangedItems } from 'helpers/formViews'\r\nimport { DEBOUNCE } from 'helpers/utils'\r\nimport { showError, showClientNotifications } from 'helpers/errors'\r\n\r\nexport const prioritizeChecklistItems = (items) =>\r\n orderBy(items, ['priority']).map((each, index) => ({\r\n ...each,\r\n priority: index + 1,\r\n }))\r\n\r\nexport const createSearchAssets = (self) =>\r\n debounce(async (search) => {\r\n try {\r\n const assets = await self.props.getAssets({\r\n search,\r\n assetIds: self.state?.item?.assetId ? [self.state.item.assetId] : undefined,\r\n assetCategoryIds: self.state?.item?.assetCategoryId ? [self.state.item.assetCategoryId] : undefined,\r\n locationIds: self.state?.item?.locationId ? [self.state.item.locationId] : undefined,\r\n })\r\n\r\n self.setState({ assets: assets.value.data })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }, DEBOUNCE)\r\n\r\nexport const createSearchAssignedOperators = (self) =>\r\n debounce(async (search) => {\r\n try {\r\n const assignedToOperators = await self.props.getOperators({\r\n search,\r\n operatorIds: self.state?.item?.assignedToId ? [self.state.item.assignedToId] : undefined,\r\n })\r\n\r\n self.setState({ assignedToOperators: assignedToOperators.value.data })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }, DEBOUNCE)\r\n\r\nexport const createSearchOperators = (self) =>\r\n debounce(async (search) => {\r\n try {\r\n const operators = await self.props.getOperators({\r\n search,\r\n operatorIds: self.state?.item?.operatorIds,\r\n })\r\n\r\n self.setState({ operators: operators.value.data })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }, DEBOUNCE)\r\n\r\nexport const createSaveChecklistItems = (self) => async (jobId) => {\r\n const { creating, updating, deleting } = getChangedItems(\r\n self.state.checklistItemsOriginal,\r\n prioritizeChecklistItems(self.state.checklistItems)\r\n )\r\n\r\n if (!isEmpty(deleting)) {\r\n const response = await self.props.deleteChecklistItems(\r\n jobId,\r\n deleting.map((each) => each.id)\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\r\n if (!isEmpty(updating)) {\r\n const response = await self.props.updateChecklistItems(\r\n jobId,\r\n updating.map((each) => ({ ...each, jobId }))\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\r\n if (!isEmpty(creating)) {\r\n const response = await self.props.createChecklistItems(\r\n jobId,\r\n creating.map(({ id, jobChecklistId, ...rest }) => ({\r\n ...rest,\r\n jobId,\r\n }))\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}\r\n\r\nexport const createSaveLabourItems = (self) => async (jobId) => {\r\n const { creating, updating, deleting } = getChangedItems(\r\n self.state.labourItemsOriginal,\r\n self.state.labourItems\r\n )\r\n\r\n if (!isEmpty(deleting)) {\r\n const response = await self.props.deleteLabourItems(\r\n jobId,\r\n deleting.map((each) => each.id)\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\r\n if (!isEmpty(updating)) {\r\n const response = await self.props.updateLabourItems(\r\n jobId,\r\n updating.map((each) => ({ ...each, jobId }))\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\r\n if (!isEmpty(creating)) {\r\n const response = await self.props.createLabourItems(\r\n jobId,\r\n creating.map(({ id, jobLabourId, ...rest }) => ({\r\n ...rest,\r\n jobId,\r\n }))\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}\r\n","import * as React from 'react'\r\nimport cx from 'clsx'\r\nimport { Spin, Table } from 'antd'\r\nimport { camelCase, isEmpty, get, pick, debounce } from 'lodash'\r\nimport {\r\n getChildColumns,\r\n getTableWidth,\r\n showTotal,\r\n pageSizeOptions,\r\n createHandleColumnResize,\r\n createChildListViewHandleTableChange,\r\n} from 'helpers/listViews'\r\nimport { showError } from 'helpers/errors'\r\nimport { getKeyValueItem, setKeyValueItem } from 'helpers/keyValueStorage'\r\nimport { createResetState } from 'helpers/utils'\r\nimport { tableCellComponents } from 'helpers/listItems'\r\nimport { t } from 'helpers/i18n'\r\nimport linkTargets from 'options/linkTargets'\r\nimport ResizableCell from 'elements/ResizableCell'\r\nimport Drawer from 'elements/Drawer'\r\nimport UnderDevelopment from 'elements/UnderDevelopment'\r\n\r\nconst getStorageKey = (self) => `childListItems.${camelCase(self.props.listType ?? 'Product')}`\r\nconst getListItemMode = (self) =>\r\n `${self.props.listType ?? 'Product'}List${self.props.entityType ?? 'Job'}Record`\r\n\r\nclass Component extends React.Component {\r\n state = {}\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.handleColumnResize = createHandleColumnResize(this)\r\n this.handleTableChange = createChildListViewHandleTableChange(this)\r\n this.fetchChildItems = debounce(this.fetchChildItems, 500)\r\n this.resetState = createResetState(this, {\r\n columnWidths: {},\r\n fieldSettings: [],\r\n sortOrder: 'ascend',\r\n sortBy: 'barcode',\r\n pageSize: 20,\r\n })\r\n this.saveState = debounce(this.saveState, 2500)\r\n }\r\n\r\n async componentDidMount() {\r\n const savedState = await getKeyValueItem(getStorageKey(this), {})\r\n await this.resetState(savedState)\r\n await this.fetchSettings()\r\n }\r\n\r\n componentWillUnmount() {\r\n this.saveState.flush()\r\n }\r\n\r\n async componentDidUpdate(prevProps) {\r\n if (getListItemMode(this) !== getListItemMode({ props: prevProps })) {\r\n const savedState = await getKeyValueItem(getStorageKey(this), {})\r\n await this.resetState(savedState)\r\n await this.fetchSettings()\r\n }\r\n\r\n if (this.props.listId !== prevProps.listId) {\r\n await this.fetchChildItems()\r\n }\r\n\r\n if (this.props.locationId !== prevProps.locationId) {\r\n await this.fetchChildItems()\r\n }\r\n }\r\n\r\n promiseState = (state = {}) => new Promise((resolve) => this.setState(state, resolve))\r\n\r\n fetchSettings = async () => {\r\n try {\r\n const { getSettings, listItemMode = getListItemMode(this) } = this.props\r\n const response = await getSettings({ type: camelCase(listItemMode) })\r\n\r\n this.setState({ fieldSettings: response.value.data.fieldSettings }, this.fetchChildItems)\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }\r\n\r\n fetchChildItems = async () => {\r\n try {\r\n const {\r\n locationId,\r\n domainObjectType,\r\n listId,\r\n listType = 'Product',\r\n listItemMode = getListItemMode(this),\r\n } = this.props\r\n\r\n this.setState({ loading: true })\r\n\r\n const response = await this.props.getChildItems(listId, {\r\n listId,\r\n domainObjectType,\r\n locationId,\r\n listType,\r\n listItemMode,\r\n })\r\n\r\n this.setState({ items: response.value.data.items })\r\n\r\n return response\r\n } catch (error) {\r\n showError({ error })\r\n\r\n return error\r\n } finally {\r\n this.setState({ loading: false })\r\n }\r\n }\r\n\r\n saveState = () => setKeyValueItem(getStorageKey(this), pick(this.state, ['columnWidths', 'pageSize']))\r\n\r\n handleLinkTargetClick = ({ column, record, text, readOnly }) => {\r\n if (process.env.NODE_ENV === 'development') console.log({ column, record, text, readOnly })\r\n\r\n const editDrawerLinkTarget = linkTargets[column.linkTarget]\r\n const { drawerTitleLanguageKey } = editDrawerLinkTarget ?? {}\r\n\r\n this.setState({\r\n editDrawerVisible: true,\r\n editDrawerSaving: false,\r\n editDrawerLinkTarget,\r\n editDrawerLinkTargetRecord: record,\r\n editDrawerLinkTargetText: drawerTitleLanguageKey ? `${t(drawerTitleLanguageKey)} - ${text}` : text,\r\n editDrawerReadOnly: false,\r\n })\r\n }\r\n\r\n handleDrawerClose = () =>\r\n this.setState({\r\n editDrawerVisible: false,\r\n editDrawerSaving: false,\r\n editDrawerLinkTarget: null,\r\n editDrawerLinkTargetRecord: null,\r\n editDrawerLinkTargetText: '',\r\n })\r\n\r\n render() {\r\n const { sortOrder, sortBy, pageSize, items = [], fieldSettings = [], columnWidths = {} } = this.state\r\n\r\n if (isEmpty(fieldSettings)) {\r\n return \r\n }\r\n\r\n const columns = getChildColumns({\r\n sortBy,\r\n sortOrder,\r\n fieldSettings,\r\n columnWidths,\r\n tableCellComponents,\r\n onResize: this.handleColumnResize,\r\n onClick: this.handleLinkTargetClick,\r\n self: this,\r\n })\r\n const width = isEmpty(columns) ? '100%' : getTableWidth(columns)\r\n const EditComponent = get(this.state, 'editDrawerLinkTarget.formComponent', UnderDevelopment)\r\n\r\n // console.log({ items, fieldSettings })\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n record.id}\r\n loading={this.state.loading}\r\n columns={columns}\r\n dataSource={items}\r\n size=\"middle\"\r\n style={{ width }}\r\n components={{ header: { cell: ResizableCell } }}\r\n pagination={{\r\n pageSize,\r\n showTotal,\r\n pageSizeOptions,\r\n showSizeChanger: true,\r\n }}\r\n onChange={this.handleTableChange}\r\n />\r\n
\r\n
\r\n \r\n \r\n this.promiseState({ editDrawerSaving: pending }).then(async () => {\r\n if (!pending) {\r\n await this.fetchChildItems()\r\n }\r\n })\r\n }\r\n onSaveAndClose={this.handleDrawerClose}\r\n onCancel={this.handleDrawerClose}\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/lists/listItems'\r\nimport Component from 'components/Lists/ChildListView/Items'\r\n\r\nconst mapStateToProps = (state, props) => ({ ...createAuthStateToProps(state, props) })\r\n\r\nconst mapDispatchToProps = {\r\n getSettings: actions.getSettings,\r\n getChildItems: actions.getChildItems,\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 { showError } from 'helpers/errors'\r\nimport { createSetFilterValue } from 'helpers/filters'\r\nimport { stopEvent } from 'helpers/events'\r\nimport { t } from 'helpers/i18n'\r\nimport Select, { Option } from 'elements/Select'\r\nimport { Row, Col } from 'elements/Grid'\r\n\r\nclass Filter extends React.Component {\r\n state = {}\r\n\r\n constructor(props) {\r\n super(props)\r\n\r\n this.setFilterValue = createSetFilterValue(this)\r\n }\r\n\r\n async componentDidMount() {\r\n try {\r\n const response = await this.props.getListTypes({ type: this.props.entityType })\r\n\r\n this.setState({ listTypes: response.value.data })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n }\r\n\r\n render() {\r\n const { filterDto = {}, disabled } = this.props\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n this.setFilterValue('type', value || 'All')}\r\n placeholder={t('all')}\r\n value={filterDto.type ?? 'All'}\r\n disabled={disabled}\r\n >\r\n \r\n {(this.state.listTypes ?? []).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\nexport default Form.create()(Filter)\r\n","import { connect } from 'react-redux'\r\nimport actions from 'actions/lists'\r\nimport Component from 'components/Lists/Select/Filter'\r\n\r\nexport default connect(null, { getListTypes: actions.getListTypes })(Component)\r\n","import { camelCase } from 'lodash'\r\nimport { createListModalComponent } from 'factories/ListModal'\r\nimport Filter from 'containers/Lists/Select/Filter'\r\n\r\nexport default createListModalComponent({\r\n getStorageKey: (self) => `selectList.${camelCase(self.props.filterProps?.entityType)}`,\r\n transformGetItemsParams: (self) => ({ entityType: self.props.filterProps?.entityType }),\r\n})(Filter)\r\n","import { createListModalContainer } from 'factories/ListModal'\r\nimport actions from 'actions/lists'\r\nimport Component from 'components/Lists/Select'\r\n\r\nexport default createListModalContainer({ actions })(Component)\r\n","import * as React from 'react'\r\nimport styled from 'styled-components'\r\nimport { useImmer } from 'use-immer'\r\nimport { Button, Tooltip, Spin, Empty } from 'antd'\r\nimport { isEmpty, isNil, uniqBy, orderBy, set } from 'lodash'\r\nimport { t } from 'helpers/i18n'\r\nimport { showError, showClientNotifications } from 'helpers/errors'\r\nimport linkTargets from 'options/linkTargets'\r\nimport { Emitter } from 'helpers/events'\r\nimport { LIST_MODAL_CLEAR_SELECTION } from 'options/events'\r\nimport Select, { Option } from 'elements/Select'\r\nimport Icon from 'elements/Icon'\r\nimport ListItems from 'containers/Lists/ChildListView/Items'\r\nimport Drawer from 'elements/Drawer'\r\nimport Modal from 'elements/Modal'\r\nimport SelectList from 'containers/Lists/Select'\r\nimport { Row, Col } from 'elements/Grid'\r\n\r\nconst FormView = linkTargets.listRecord.formComponent\r\n\r\nconst Container = styled(Row)`\r\n .ant-select {\r\n min-width: 200px;\r\n }\r\n\r\n .ant-select-sm {\r\n .ant-select-selection--single {\r\n height: 26px;\r\n line-height: 24px;\r\n }\r\n }\r\n\r\n .ant-col {\r\n margin-bottom: 12px;\r\n\r\n .ant-btn {\r\n padding: 5px;\r\n line-height: 5px;\r\n height: 26px;\r\n }\r\n }\r\n`\r\n\r\nfunction Component(props) {\r\n const { entityType, entityId, getItems, createItems, deleteItems, ...rest } = 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 const entityListTypes = uniqBy(\r\n (state?.items ?? []).map((each) => ({\r\n type: each.listType,\r\n typeName: each.listTypeDescription,\r\n })),\r\n 'type'\r\n )\r\n\r\n const filteredItems = (state?.items ?? []).filter((each) => each.listType === state.selectedListType)\r\n const selectedItem = (state?.items ?? []).find((one) => one.entityListId === state.selectedEntityListId)\r\n\r\n async function fetchItems() {\r\n let items = []\r\n\r\n try {\r\n setState('loading', true)\r\n\r\n const response = await getItems({ entityType, entityId })\r\n\r\n items = orderBy(response.value.data.items, ['listType', 'listName'], ['desc', 'asc'])\r\n\r\n setState('items', items)\r\n\r\n if (isEmpty(items)) {\r\n updateState((draft) => {\r\n draft.selectedListType = null\r\n draft.selectedEntityListId = null\r\n })\r\n } else {\r\n updateState((draft) => {\r\n draft.selectedListType = items[0].listType\r\n draft.selectedEntityListId = items[0].entityListId\r\n })\r\n }\r\n } catch (error) {\r\n showError({ error })\r\n } finally {\r\n setState('loading', false)\r\n }\r\n\r\n return items\r\n }\r\n\r\n function handleDeleteClick() {\r\n Modal.confirm({\r\n autoFocusButton: 'ok',\r\n title: t('confirmRemoveListAssociation'),\r\n okType: 'danger',\r\n okText: t('remove'),\r\n cancelText: t('cancel'),\r\n onOk: async () => {\r\n try {\r\n const response = await deleteItems([state.selectedEntityListId])\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 updatedItems = await fetchItems()\r\n const nextItem =\r\n updatedItems.find((one) => one.listType === state.selectedListType) || updatedItems[0]\r\n\r\n updateState((draft) => {\r\n draft.selectedEntityListId = nextItem?.entityListId ?? null\r\n draft.selectedListType = nextItem?.listType ?? null\r\n })\r\n } catch (error) {\r\n showError({ error })\r\n }\r\n },\r\n })\r\n }\r\n\r\n async function handleAddListClick() {\r\n const creating = (state?.addListRecords ?? []).map((each) => ({\r\n entityType,\r\n entityId,\r\n listId: each.id,\r\n listType: each.type,\r\n }))\r\n\r\n try {\r\n setState('addListLoading', false)\r\n\r\n const response = await createItems(creating)\r\n\r\n showClientNotifications({ response })\r\n\r\n if (response.value.data.items[0]) {\r\n await fetchItems()\r\n\r\n setState('addListVisible', false)\r\n\r\n Emitter.emit(LIST_MODAL_CLEAR_SELECTION)\r\n }\r\n } catch (error) {\r\n showError({ error })\r\n } finally {\r\n setState('addListLoading', false)\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n fetchItems()\r\n }, [entityType, entityId])\r\n\r\n return (\r\n <>\r\n \r\n \r\n {\r\n updateState((draft) => {\r\n draft.selectedListType = value\r\n draft.selectedEntityListId = (state?.items ?? []).find(\r\n (one) => one.listType === value\r\n )?.entityListId\r\n })\r\n }}\r\n size=\"small\"\r\n allowClear={false}\r\n allowSearch={false}\r\n disabled={isEmpty(entityListTypes)}\r\n >\r\n {entityListTypes.map((each) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n setState('selectedEntityListId', value)}\r\n size=\"small\"\r\n allowClear={false}\r\n allowSearch={false}\r\n disabled={isEmpty(filteredItems)}\r\n >\r\n {filteredItems.map((each) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n updateState((draft) => {\r\n draft.editDrawerVisible = true\r\n draft.editDrawerSaving = false\r\n })\r\n }\r\n disabled={isNil(state.selectedEntityListId)}\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 updateState((draft) => {\r\n draft.addListVisible = true\r\n draft.addListRecords = null\r\n })\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {state.loading ? (\r\n \r\n ) : !isNil(selectedItem?.listId) ? (\r\n \r\n ) : (\r\n
\r\n \r\n
\r\n )}\r\n setState('editDrawerVisible', false)}\r\n saving={state.editDrawerSaving}\r\n >\r\n {\r\n setState('editDrawerSaving', pending)\r\n\r\n if (!pending) {\r\n await fetchItems()\r\n }\r\n }}\r\n onSaveAndClose={() => setState('editDrawerVisible', false)}\r\n onCancel={() => setState('editDrawerVisible', false)}\r\n />\r\n \r\n setState('addListVisible', false)}\r\n footer={\r\n <>\r\n \r\n \r\n {t('addList')}\r\n \r\n \r\n }\r\n width={992}\r\n >\r\n setState('addListRecords', values)}\r\n mode=\"multiple\"\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 actions from 'actions/entityLists'\r\nimport Component from 'components/Lists/ChildListView'\r\n\r\nconst mapDispatchToProps = {\r\n getItems: actions.getItems,\r\n createItems: actions.createItem,\r\n deleteItems: actions.deleteItems,\r\n}\r\n\r\nexport default connect(null, mapDispatchToProps)(Component)\r\n","import { createChildListViewComponent } from 'factories/ChildListView'\r\nimport entityNames from 'options/entityNames'\r\nimport { formatValue } from 'helpers/listViews'\r\nimport { isValidDate, tryParseDate } from 'helpers/dateTime'\r\nimport { t } from 'helpers/i18n'\r\nimport FormView from 'containers/Assets/Warranties/FormView'\r\n\r\nexport default createChildListViewComponent({\r\n entityName: entityNames.assets,\r\n childName: 'assetWarranties',\r\n createButtonTextId: 'addWarranty',\r\n createButtonLinkTarget: {\r\n formSize: 'xs',\r\n formComponent: FormView,\r\n },\r\n primaryLinkTarget: 'assetWarrantyRecord',\r\n tableSummary: (self) => {\r\n const { items = [] } = self.props\r\n const expired = items.filter(\r\n (each) => isValidDate(each.expiryDate) && tryParseDate(each.expiryDate).getTime() < Date.now()\r\n )\r\n\r\n return `${expired.length} ${t('of')} ${items.length} ${t('expired')}`\r\n },\r\n tableCellComponents: {\r\n expiryDate: (self, item) => {\r\n const text = formatValue({\r\n value: item.expiryDate,\r\n displayFormat: self.state.fieldSettings.find((one) => one.dtoFieldName === 'expiryDate')\r\n .displayFormat,\r\n })\r\n return isValidDate(item.expiryDate) && tryParseDate(item.expiryDate).getTime() < Date.now() ? (\r\n
\r\n {text}\r\n
\r\n ) : (\r\n text\r\n )\r\n },\r\n },\r\n})()\r\n","import { createChildListViewContainer } from 'factories/ChildListView'\r\nimport actions from 'actions/assets/assetWarranties'\r\nimport Component from 'components/Assets/Warranties'\r\n\r\nexport default createChildListViewContainer({ actions })(Component)\r\n"],"sourceRoot":""}