您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 

1 行
124 KiB

  1. {"ast":null,"code":"import _slicedToArray from \"/Users/michielcarman/Server Code/Repository/clients-rpm-kit-manager/code/RPM.KitManager/RPM.KitManager.Web/ClientApp/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"/Users/michielcarman/Server Code/Repository/clients-rpm-kit-manager/code/RPM.KitManager/RPM.KitManager.Web/ClientApp/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"/Users/michielcarman/Server Code/Repository/clients-rpm-kit-manager/code/RPM.KitManager/RPM.KitManager.Web/ClientApp/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread\";\nimport _defineProperty from \"/Users/michielcarman/Server Code/Repository/clients-rpm-kit-manager/code/RPM.KitManager/RPM.KitManager.Web/ClientApp/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"/Users/michielcarman/Server Code/Repository/clients-rpm-kit-manager/code/RPM.KitManager/RPM.KitManager.Web/ClientApp/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"/Users/michielcarman/Server Code/Repository/clients-rpm-kit-manager/code/RPM.KitManager/RPM.KitManager.Web/ClientApp/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _classCallCheck from \"/Users/michielcarman/Server Code/Repository/clients-rpm-kit-manager/code/RPM.KitManager/RPM.KitManager.Web/ClientApp/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/Users/michielcarman/Server Code/Repository/clients-rpm-kit-manager/code/RPM.KitManager/RPM.KitManager.Web/ClientApp/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"/Users/michielcarman/Server Code/Repository/clients-rpm-kit-manager/code/RPM.KitManager/RPM.KitManager.Web/ClientApp/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/Users/michielcarman/Server Code/Repository/clients-rpm-kit-manager/code/RPM.KitManager/RPM.KitManager.Web/ClientApp/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _inherits from \"/Users/michielcarman/Server Code/Repository/clients-rpm-kit-manager/code/RPM.KitManager/RPM.KitManager.Web/ClientApp/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits\";\n\nvar _jsxFileName = \"/Users/michielcarman/Server Code/Repository/clients-rpm-kit-manager/code/RPM.KitManager/RPM.KitManager.Web/ClientApp/src/containers/Dspecs/Remote/RemoteECO.tsx\",\n _this3 = this;\n\nimport React, { Component } from \"react\";\nimport { Card, CardBody, Col, Container, Row, CardHeader } from \"reactstrap\";\nimport FormRow from \"../../../shared/components/form/FormRow\";\nimport BOMTable from \"../../../shared/components/form/BOMTable\";\nimport PrintButton from \"../../../shared/components/PrintButton\";\nimport { FACMessage } from \"../../../shared/components/FACMessage/FACMessage\";\nimport { ApprovalMessage } from \"../../../shared/components/ApprovalMessage/ApprovalMessage\";\nimport axios from 'axios';\nimport { SubmissionButtonsGroup } from \"../../../shared/components/SubmissionButtonsGroup/SubmissionButtonsGroup\"; // Builders\n\nimport { remoteFormBuilder } from './remoteFormBuilder';\nimport { emptyBasicInformation, emptyAdditionalDetails, emptyAdditionalDetails2, emptyTagInformation, emptyBomData } from './EmptyRemoteECODataFields';\n// Icon\nvar PencilIcon = /*#__PURE__*/React.createElement(\"span\", {\n className: \"lnr lnr-pencil\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 20\n }\n});\n\nvar RemoteECOForm = /*#__PURE__*/function (_Component) {\n _inherits(RemoteECOForm, _Component);\n\n function RemoteECOForm(props) {\n var _this;\n\n _classCallCheck(this, RemoteECOForm);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(RemoteECOForm).call(this, props));\n _this.approve = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var _this$state, designSpecId, partNumber, revisionLevel;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _this$state = _this.state, designSpecId = _this$state.designSpecId, partNumber = _this$state.partNumber, revisionLevel = _this$state.revisionLevel;\n alert(\"This will be marked as 'Approved'\");\n _context.next = 4;\n return axios.put(\"/api/designspec/changeStatus/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel, \"/Approved\")).then(function (res) {\n location.href = \"/dspecs/remote/form/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel);\n }).catch(function (err) {\n return console.error(err);\n });\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n _this.reject = function () {\n var _this$state2 = _this.state,\n designSpecId = _this$state2.designSpecId,\n partNumber = _this$state2.partNumber,\n revisionLevel = _this$state2.revisionLevel;\n alert(\"This will be knocked back down to 'In Process' status.\");\n axios.put(\"/api/designspec/changeStatus/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel, \"/In%20Process\")).then(function (res) {\n location.href = \"/dspecs/remote/form/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel);\n }).catch(function (err) {\n return console.error(err);\n });\n location.reload();\n };\n\n _this.approveFAC = function () {\n alert('The FAC has been approved, submitting for final approval'); //Submitted for Approval\n\n _this.submitForApproval();\n };\n\n _this.submitForFAC = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n var res, _this$state3, designSpecId, partNumber, revisionLevel, customerPartNumbers, billOfMaterials, basicInformation, email, subject, msgBody, defaultEmail;\n\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n res = confirm(\"submitting this Dspec, Marking it as 'Submitted for FAC'\");\n _this$state3 = _this.state, designSpecId = _this$state3.designSpecId, partNumber = _this$state3.partNumber, revisionLevel = _this$state3.revisionLevel;\n _context2.next = 4;\n return axios.put(\"/api/designspec/changeStatus/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel, \"/Submitted%20for%20FAC\")).then(function (res) {\n defaultEmail = 'jzwicker@rpmindustries.com';\n email = prompt('Who should get the email?', defaultEmail);\n subject = \"New FAC to Review\";\n msgBody = \"\\n NOTE THIS IS JUST A MOCK. WILL BE AUTO CONNECTED TO AN BIM EMAIL API FOR AUTO DELIVERY OF AN EMAIL. \\n \\n \\n \\n \\n You have a new FAC to review regarding DspecId: \".concat(designSpecId, \", PartNumber: \").concat(partNumber, \", ERN: \").concat(revisionLevel);\n console.warn(\"Email Alert Service needed for 'Submit For FAC'\");\n location.href = \"/dspecs/remote/form/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel);\n }).catch(function (err) {\n console.error(err);\n });\n\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n _this.submitForApproval = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {\n var res, _this$state4, designSpecId, partNumber, revisionLevel;\n\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n res = confirm(\"Submitting this DSpec, Marking it as 'Submitted For Approval'\");\n _this$state4 = _this.state, designSpecId = _this$state4.designSpecId, partNumber = _this$state4.partNumber, revisionLevel = _this$state4.revisionLevel;\n axios.put(\"/api/designspec/changeStatus/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel, \"/Submitted%20for%20Approval\")).then(function (res) {\n location.href = \"/dspecs/remote/form/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel);\n }).catch(function (err) {\n console.error(err);\n });\n\n case 3:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n\n _this.discardChanges = function () {\n var userResponse = confirm('Are you sure you want to erase all changes?');\n\n if (userResponse) {\n console.info('Getting rid of changes to ');\n window.location.reload(true);\n }\n\n console.info('Aborting Erasure');\n };\n\n _this.makeCopyForEdit = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {\n var _this$state5, designSpecId, partNumber, revisionLevel, data;\n\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _this$state5 = _this.state, designSpecId = _this$state5.designSpecId, partNumber = _this$state5.partNumber, revisionLevel = _this$state5.revisionLevel; // XHR to a \"new\" route.\n // xhr should return the new dspec/pn/rev\n\n _context4.next = 3;\n return axios.post(\"/api/designspec/general/cloneforedit/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel)).then(function (res) {\n data = res.data;\n var newDsId = data.designSpecId;\n var newPn = data.partNumber;\n var newRev = data.revisionLevel;\n return location.href = \"/dspecs/remote/form/\".concat(newDsId, \"/\").concat(newPn, \"/\").concat(newRev);\n }).catch(function (err) {\n return console.error(err);\n });\n\n case 3:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n\n _this.changeStatus = function (newStatus) {\n switch (newStatus) {\n case 'read':\n _this.setState({\n formStatus: newStatus,\n formDisabled: true\n });\n\n break;\n\n case 'edit':\n _this.setState({\n formStatus: newStatus,\n formDisabled: false\n });\n\n break;\n\n case 'review':\n _this.setState({\n formStatus: newStatus,\n formDisabled: true\n });\n\n break;\n }\n };\n\n _this.handleBomChange = function (e) {\n var idx = e.target.parentNode.parentNode.id.split('-')[1];\n var fieldName = e.target.name;\n var val = e.target.value;\n\n var newBoms = _this.state.boms.map(function (bom, i) {\n if (i == idx) {\n var newBom = {\n bOld: '',\n bNew: '',\n partNumber: '',\n description: ''\n };\n\n if (fieldName === 'partNumber') {\n val = parseInt(\"\".concat(val));\n }\n\n Object.assign(newBom, bom, _defineProperty({}, fieldName, val));\n return newBom;\n } else {\n return bom;\n }\n });\n\n _this.setState(_objectSpread({}, _this.state, {\n boms: newBoms\n }));\n };\n\n _this.handleNewRowChange = function (e) {\n //Pull the propertyName (id) and value from the input field.\n var _e$target = e.target,\n name = _e$target.name,\n value = _e$target.value;\n if (name == \"partNumber\" && value != \"\") value = parseInt(value); // //Update state with new property and value.\n\n _this.setState({\n newRow: _objectSpread({}, _this.state.newRow, _defineProperty({}, name, value))\n });\n };\n\n _this.addNewBomRecord = function () {\n // Grab State newRow.\n var newRow = _this.state.newRow;\n\n _this.setState(_objectSpread({}, _this.state, {\n tempBomAdditions: [].concat(_toConsumableArray(_this.state.tempBomAdditions), [newRow]),\n newRow: {\n bOld: '',\n bNew: '',\n partNumber: '',\n description: ''\n }\n }));\n\n _this.setState(function (state) {\n return _objectSpread({}, state, {\n newRow: {\n bOld: '',\n bNew: '',\n partNumber: '',\n description: ''\n }\n });\n });\n };\n\n _this.deleteBomItem = function (e) {\n ///Identify Type and Inded for Delete (//TODO: Use a unique identifier, not just arrayIndex which is susceptible to bugs)\n var idForDelete = e.target.parentNode.parentNode.parentNode.id;\n\n var _idForDelete$split = idForDelete.split('-'),\n _idForDelete$split2 = _slicedToArray(_idForDelete$split, 2),\n type = _idForDelete$split2[0],\n delIdx = _idForDelete$split2[1]; // Remove from Boms\n\n\n if (type === 'bom') {\n var remainingboms = _this.state.boms.filter(function (_, idx) {\n return idx !== parseInt(delIdx);\n });\n\n var bomForRemoval = _this.state.boms.filter(function (_, idx) {\n return idx == parseInt(delIdx);\n });\n\n _this.setState(_objectSpread({}, _this.state, {\n boms: remainingboms,\n bomsForDelete: [].concat(_toConsumableArray(_this.state.bomsForDelete), _toConsumableArray(bomForRemoval))\n }));\n } // Remove from Temps (no need to flag for delete since it only exists in UI at this point.)\n\n\n if (type === 'temp') {\n var _remainingboms = _this.state.tempBomAdditions.filter(function (_, idx) {\n return idx !== parseInt(delIdx);\n });\n\n _this.setState(_objectSpread({}, _this.state, {\n tempBomAdditions: _toConsumableArray(_remainingboms)\n }));\n }\n };\n\n _this.handleChange = function (e) {\n var setOfCommonCustomers = _this.state.customerPartNumbers.map(function (cust) {\n return cust.name;\n });\n\n var jsPartNumbers = _this.state.customerPartNumbers;\n\n if (setOfCommonCustomers.includes(e.target.name)) {\n var custName = e.target.name;\n var partNumber = e.target.value;\n console.table(custName, partNumber);\n var idx = jsPartNumbers.findIndex(function (pn) {\n return pn.name === custName;\n });\n\n if (idx != -1) {\n jsPartNumbers[idx].customerPartNumber = partNumber;\n }\n\n _this.setState(_objectSpread({}, _this.state, {\n customerPartNumbers: jsPartNumbers\n }));\n } else {\n _this.setState(_objectSpread({}, _this.state, _defineProperty({}, e.target.name, e.target.value)));\n }\n };\n\n _this.toggleFACRequirement = function () {\n var flippedState = !_this.state.reviewRequired;\n\n _this.setState({\n reviewRequired: flippedState\n });\n };\n\n _this.saveECO = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {\n var res, _this$state6, designSpecId, partNumber, revisionLevel, customerPartNumbers, billOfMaterials, basicInformation, body, configs;\n\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n res = confirm(\"Saving changes on this designSpec, they will NOT be submitted for review. They will be marked 'In Progress' for future editing.\");\n _this$state6 = _this.state, designSpecId = _this$state6.designSpecId, partNumber = _this$state6.partNumber, revisionLevel = _this$state6.revisionLevel;\n billOfMaterials = _this.state.boms;\n customerPartNumbers = _this.state.customerPartNumbers;\n basicInformation = {\n // Basic Information\n revisionLevel: parseInt(_this.state.revisionLevel),\n partNumber: _this.state.partNumber,\n partCodeName: _this.state.partCodeName,\n description: _this.state.description,\n statusName: _this.state.statusName,\n comments: _this.state.comments,\n customerName: _this.state.customerName,\n primaryCustomerPartNumber: _this.state.primaryCustomerPartNumber,\n primaryVendorName: _this.state.primaryVendorName,\n primaryVendorPartNumber: _this.state.primaryVendorPartNumber,\n secondaryVendorName: _this.state.secondaryVendorName,\n secondaryVendorPartNumber: _this.state.secondaryVendorPartNumber,\n // Additional Details\n oeReman: _this.state.oeReman,\n basicClass: _this.state.basicClass,\n status: _this.state.status,\n makeFrom: _this.state.makeFrom,\n sameAs: Number(_this.state.sameAs),\n except: _this.state.except,\n pressurePort: _this.state.pressurePort,\n suctionPort: _this.state.suctionPort,\n suctionFitting: _this.state.suctionFitting,\n pressureFitting: _this.state.pressureFitting,\n weight: _this.state.weight,\n voltage: _this.state.voltage,\n rotation: _this.state.rotation,\n frequency: _this.state.frequency,\n curve: _this.state.curve,\n terminalPosition: _this.state.terminalPosition,\n plrv: _this.state.plrv,\n rtv: _this.state.rtv,\n bracket: _this.state.bracket,\n box: _this.state.box,\n workInstruction: _this.state.workInstruction,\n // Additonal Details2\n note: _this.state.note,\n // Approvals\n reasonForChange: _this.state.reasonForChange,\n validation: _this.state.validation,\n // Tag Information\n partNo: _this.state.partNo,\n tagNumber: _this.state.tagNumber,\n tagNumberDescription: _this.state.tagNumberDescription,\n paperTag: _this.state.paperTag,\n otherTag: _this.state.otherTag,\n serviceReplacementRef: _this.state.serviceReplacementRef,\n // Approvals2 \n signed: _this.state.signed,\n createDate: _this.state.createDate == \"\" ? null : _this.state.createDate,\n approved: _this.state.approved,\n approveDate: _this.state.approveDate,\n bomsForDelete: _this.state.bomsForDelete,\n bomsForInsert: _this.state.bomsForInsert\n };\n body = {\n basicInformation: basicInformation,\n customerPartNumbers: customerPartNumbers,\n billOfMaterials: billOfMaterials,\n bomsForDelete: _this.state.bomsForDelete,\n bomsForInsert: _this.state.tempBomAdditions\n };\n configs = {\n headers: {\n 'Content-Type': 'application/json'\n }\n };\n\n if (!(designSpecId == 'new')) {\n _context5.next = 14;\n break;\n }\n\n body.basicInformation.partNumber = 0;\n body.basicInformation.revisionLevel = 0;\n _context5.next = 12;\n return axios.post(\"/api/partnumber/remote/new\", body, configs).then(function (res) {\n console.log(res.data);\n var _res$data = res.data,\n designSpecId = _res$data.designSpecId,\n partNumber = _res$data.partNumber,\n revisionLevel = _res$data.revisionLevel;\n location.href = \"/dspecs/remote/form/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel);\n }).catch(function (err) {\n alert(err);\n console.log(err);\n });\n\n case 12:\n _context5.next = 16;\n break;\n\n case 14:\n _context5.next = 16;\n return axios.put(\"/api/designspec/remote/updatespec/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel), body, configs).then(function (res) {\n console.log(res);\n location.href = \"/dspecs/remote/form/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel);\n }).catch(function (err) {\n alert(err.message);\n console.error(err);\n });\n\n case 16:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }));\n _this.state = {\n isLoading: true,\n formStatus: 'read',\n reviewRequired: false,\n designSpecId: _this.props.match.params.designSpecId,\n partNumber: _this.props.match.params.partNumber,\n revisionLevel: _this.props.match.params.revisionLevel,\n formDisabled: true,\n boms: _toConsumableArray(emptyBomData),\n bomsForDelete: [],\n bomsForInsert: [],\n newRow: {\n bOld: '',\n bNew: '',\n partNumber: '',\n description: ''\n },\n tempBomAdditions: [],\n customerPartNumbers: [{\n name: \"Cummins\",\n customerPartNumber: \"\"\n }, {\n name: \"Caterpillar\",\n customerPartNumber: \"\"\n }, {\n name: \"Diesel Recon\",\n customerPartNumber: \"\"\n }, {\n name: \"DRARecon\",\n customerPartNumber: \"\"\n }, {\n name: \"Komatsu\",\n customerPartNumber: \"\"\n }, {\n name: \"DDC\",\n customerPartNumber: \"\"\n }, {\n name: \"Parker\",\n customerPartNumber: \"\"\n }, {\n name: \"Other\",\n customerPartNumber: \"\"\n }],\n // Basic Information\n partCodeName: '',\n description: '',\n statusName: '',\n comments: '',\n customerName: '',\n primaryCustomerPartNumber: '',\n primaryVendorName: '',\n primaryVendorPartNumber: '',\n secondaryVendorName: '',\n secondaryVendorPartNumber: '',\n // Additional Details\n oeReman: '',\n basicClass: '',\n status: '',\n makeFrom: '',\n sameAs: null,\n except: '',\n pressurePort: '',\n suctionPort: '',\n suctionFitting: '',\n pressureFitting: '',\n weight: 0,\n voltage: '',\n rotation: '',\n frequency: '',\n curve: '',\n terminalPosition: '',\n plrv: false,\n rtv: false,\n bracket: '',\n box: '',\n workInstruction: '',\n // Additonal Details2\n note: '',\n // Approvals\n reasonForChange: '',\n validation: '',\n // Tag Information\n partNo: '',\n tagNumberDescription: '',\n paperTag: '',\n otherTag: '',\n tagNumber: '',\n serviceReplacementRef: '',\n // Approvals2 \n signed: '',\n createDate: null,\n approved: '',\n approveDate: null,\n customerNameListForDropdown: [],\n vendorNameListForDropdown: [],\n partCodeNameListforDropdown: []\n };\n return _this;\n }\n\n _createClass(RemoteECOForm, [{\n key: \"componentDidMount\",\n value: function () {\n var _componentDidMount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {\n var _this$state7, designSpecId, partNumber, revisionLevel, BasicInformation, CustomerPartNumbers, BillOfMaterials, jsPartNumbers, AllCustomerList, AllVendorsList, PartCodeList, custRes, custCt, vendorRes, vendorCt, partCodeRes, partCodeCt, initialformStatus, initFormDisabled, emptyCustomerPartNumbers;\n\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _this$state7 = this.state, designSpecId = _this$state7.designSpecId, partNumber = _this$state7.partNumber, revisionLevel = _this$state7.revisionLevel;\n AllCustomerList = [];\n AllVendorsList = [];\n PartCodeList = []; // TODO: set these Req's to run in parallel. \n\n if (!(designSpecId !== 'new')) {\n _context6.next = 11;\n break;\n }\n\n _context6.next = 7;\n return axios.get(\"/api/designspec/remote/basicInformation/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel)).then(function (res) {\n BasicInformation = res.data.items.records[0];\n }).catch(function (err) {\n return console.error(err);\n });\n\n case 7:\n _context6.next = 9;\n return axios.get(\"/api/designspec/remote/customerPartNumbers/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel)).then(function (res) {\n //Loop through and Grab each paprtNumbers\n jsPartNumbers = [{\n name: \"Cummins\",\n customerPartNumber: \"\"\n }, {\n name: \"Caterpillar\",\n customerPartNumber: \"\"\n }, {\n name: \"Diesel Recon\",\n customerPartNumber: \"\"\n }, {\n name: \"DRARecon\",\n customerPartNumber: \"\"\n }, {\n name: \"Komatsu\",\n customerPartNumber: \"\"\n }, {\n name: \"DDC\",\n customerPartNumber: \"\"\n }, {\n name: \"Parker\",\n customerPartNumber: \"\"\n }, {\n name: \"Other\",\n customerPartNumber: \"\"\n }];\n res.data.items.records.forEach(function (xcpn) {\n var custName = xcpn.name;\n var partNumber = xcpn.customerPartNumber;\n var idx = jsPartNumbers.findIndex(function (pn) {\n return pn.name === custName;\n });\n\n if (idx != -1) {\n jsPartNumbers[idx].customerPartNumber = partNumber;\n }\n });\n }).catch(function (err) {\n return console.error(err);\n });\n\n case 9:\n _context6.next = 11;\n return axios.get(\"/api/designspec/remote/billOfMaterial/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel)).then(function (res) {\n BillOfMaterials = res.data.items.records;\n var totalRecords = res.data.items.paging.records.length;\n var recordsPerPage = res.data.items.paging.page.length;\n\n if (totalRecords > recordsPerPage) {\n var getMore = confirm(\"There might be more records than the \".concat(recordsPerPage, \" shown here. Do you want to get the rest?\"));\n if (getMore) alert(\"Error: BIM_KQueryNotFound\");\n }\n }).catch(function (err) {\n return console.error(err);\n });\n\n case 11:\n _context6.next = 13;\n return axios.get(\"/api/customer\");\n\n case 13:\n custRes = _context6.sent;\n custCt = custres.data.items.paging.records.length;\n _context6.next = 17;\n return axios.get(\"/api/customer?size=\".concat(custCt)).then(function (res) {\n AllCustomerList = res.data.items.records.map(function (customerData) {\n return customerData.name;\n });\n AllCustomerList = AllCustomerList.sort();\n }).catch(function (err) {\n return console.error(err);\n });\n\n case 17:\n _context6.next = 19;\n return axios.get(\"/api/vendor\");\n\n case 19:\n vendorRes = _context6.sent;\n vendorCt = vendorres.data.items.paging.records.length;\n _context6.next = 23;\n return axios.get(\"/api/vendor?size=\".concat(vendorCt)).then(function (res) {\n AllVendorsList = res.data.items.records.map(function (vendorData) {\n return vendorData.name;\n });\n AllVendorsList = AllVendorsList.sort();\n });\n\n case 23:\n _context6.next = 25;\n return axios.get(\"/api/partcode\");\n\n case 25:\n partCodeRes = _context6.sent;\n partCodeCt = partCoderes.data.items.paging.records.length;\n _context6.next = 29;\n return axios.get(\"/api/partcode?size=\".concat(partCodeCt)).then(function (res) {\n PartCodeList = res.data.items.records.map(function (vendorData) {\n return vendorData.name;\n });\n PartCodeList = PartCodeList.sort();\n });\n\n case 29:\n // Set the intial for state by reading from designSpec\n initialformStatus = \"read\";\n initFormDisabled = true; // Set State for a new form\n\n if (designSpecId == 'new') {\n initFormDisabled = false;\n initialformStatus = \"edit\";\n } //\n\n\n if (BasicInformation && BasicInformation.statusName == \"In Process\") {\n initialformStatus = \"edit\";\n initFormDisabled = false;\n }\n\n if (BasicInformation && (BasicInformation.statusName == \"Submitted for FAC\" || BasicInformation.statusName == \"Submitted for Approval\")) {\n initialformStatus = \"review\";\n initFormDisabled = true;\n }\n\n emptyCustomerPartNumbers = [{\n name: \"Cummins\",\n customerPartNumber: \"\"\n }, {\n name: \"Caterpillar\",\n customerPartNumber: \"\"\n }, {\n name: \"Diesel Recon\",\n customerPartNumber: \"\"\n }, {\n name: \"DRARecon\",\n customerPartNumber: \"\"\n }, {\n name: \"Komatsu\",\n customerPartNumber: \"\"\n }, {\n name: \"DDC\",\n customerPartNumber: \"\"\n }, {\n name: \"Parker\",\n customerPartNumber: \"\"\n }, {\n name: \"Other\",\n customerPartNumber: \"\"\n }];\n this.setState(_objectSpread({}, this.state, {\n isLoading: false,\n formStatus: initialformStatus,\n formDisabled: initFormDisabled,\n boms: BillOfMaterials,\n customerPartNumbers: jsPartNumbers || emptyCustomerPartNumbers,\n // Basic Information\n partCodeName: BasicInformation && BasicInformation.partCodeName ? BasicInformation.partCodeName : \"\",\n description: BasicInformation && BasicInformation.description ? BasicInformation.description : \"\",\n statusName: BasicInformation && BasicInformation.statusName ? BasicInformation.statusName : \"\",\n comments: BasicInformation && BasicInformation.comments ? BasicInformation.comments : \"\",\n customerName: BasicInformation && BasicInformation.customerName ? BasicInformation.customerName : \"\",\n primaryCustomerPartNumber: BasicInformation && BasicInformation.primaryCustomerPartNumber ? BasicInformation.primaryCustomerPartNumber : \"\",\n primaryVendorName: BasicInformation && BasicInformation.primaryVendorName ? BasicInformation.primaryVendorName : \"\",\n primaryVendorPartNumber: BasicInformation && BasicInformation.primaryVendorPartNumber ? BasicInformation.primaryVendorPartNumber : \"\",\n secondaryVendorName: BasicInformation && BasicInformation.secondaryVendorName ? BasicInformation.secondaryVendorName : \"\",\n secondaryVendorPartNumber: BasicInformation && BasicInformation.secondaryVendorPartNumber ? BasicInformation.secondaryVendorPartNumber : \"\",\n // Additional Details\n oeReman: BasicInformation && BasicInformation.oeReman ? BasicInformation.oeReman : \"\",\n basicClass: BasicInformation && BasicInformation.basicClass ? BasicInformation.basicClass : \"\",\n status: BasicInformation && BasicInformation.status ? BasicInformation.status : \"\",\n makeFrom: BasicInformation && BasicInformation.makeFrom ? BasicInformation.makeFrom : \"\",\n sameAs: BasicInformation && BasicInformation.sameAs ? BasicInformation.sameAs : null,\n except: BasicInformation && BasicInformation.except ? BasicInformation.except : \"\",\n pressurePort: BasicInformation && BasicInformation.pressurePort ? BasicInformation.pressurePort : \"\",\n suctionPort: BasicInformation && BasicInformation.suctionPort ? BasicInformation.suctionPort : \"\",\n suctionFitting: BasicInformation && BasicInformation.suctionFitting ? BasicInformation.suctionFitting : \"\",\n pressureFitting: BasicInformation && BasicInformation.pressureFitting ? BasicInformation.pressureFitting : \"\",\n weight: BasicInformation && BasicInformation.weight ? BasicInformation.weight : 0,\n voltage: BasicInformation && BasicInformation.voltage ? BasicInformation.voltage : \"\",\n rotation: BasicInformation && BasicInformation.rotation ? BasicInformation.rotation : \"\",\n frequency: BasicInformation && BasicInformation.frequency ? BasicInformation.frequency : \"\",\n curve: BasicInformation && BasicInformation.curve ? BasicInformation.curve : \"\",\n terminalPosition: BasicInformation && BasicInformation.terminalPosition ? BasicInformation.terminalPosition : \"\",\n plrv: BasicInformation && BasicInformation.plrv ? BasicInformation.plrv : false,\n rtv: BasicInformation && BasicInformation.rtv ? BasicInformation.rtv : false,\n bracket: BasicInformation && BasicInformation.bracket ? BasicInformation.bracket : \"\",\n box: BasicInformation && BasicInformation.box ? BasicInformation.box : \"\",\n workInstruction: BasicInformation && BasicInformation.workInstruction ? BasicInformation.workInstruction : \"\",\n // Additonal Details2\n note: BasicInformation && BasicInformation.note ? BasicInformation.note : \"\",\n // Approvals\n reasonForChange: BasicInformation && BasicInformation.reasonForChange ? BasicInformation.reasonForChange : \"\",\n validation: BasicInformation && BasicInformation.validation ? BasicInformation.validation : \"\",\n // Tag Information\n partNo: BasicInformation && BasicInformation.tagNumber ? BasicInformation.partNo : \"\",\n tagNumber: BasicInformation && BasicInformation.tagNumber ? BasicInformation.tagNumber : \"\",\n tagNumberDescription: BasicInformation && BasicInformation.tagNumberDescription ? BasicInformation.tagNumberDescription : \"\",\n paperTag: BasicInformation && BasicInformation.paperTag ? BasicInformation.paperTag : \"\",\n otherTag: BasicInformation && BasicInformation.otherTag ? BasicInformation.otherTag : \"\",\n serviceReplacementRef: BasicInformation && BasicInformation.serviceReplacementRef ? BasicInformation.serviceReplacementRef : \"\",\n // Approvals2 \n signed: BasicInformation && BasicInformation.signed ? BasicInformation.signed : \"\",\n createDate: BasicInformation && BasicInformation.createDate ? BasicInformation.createDate : null,\n approved: BasicInformation && BasicInformation.approved ? BasicInformation.approved : \"\",\n approveDate: BasicInformation && BasicInformation.approveDate ? BasicInformation.approveDate : null,\n customerNameListForDropdown: AllCustomerList,\n vendorNameListForDropdown: AllVendorsList,\n partCodeNameListforDropdown: PartCodeList\n }));\n\n case 36:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n\n function componentDidMount() {\n return _componentDidMount.apply(this, arguments);\n }\n\n return componentDidMount;\n }()\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$state8 = this.state,\n formStatus = _this$state8.formStatus,\n designSpecId = _this$state8.designSpecId,\n partNumber = _this$state8.partNumber,\n revisionLevel = _this$state8.revisionLevel;\n var formStatusAlert;\n var editButton;\n var formDisabled = true;\n\n switch (this.state.formStatus) {\n case 'edit':\n formStatusAlert = /*#__PURE__*/React.createElement(\"div\", {\n className: \"change-status editing\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 673,\n columnNumber: 27\n }\n }, \"Currently Editing\");\n break;\n\n case 'review':\n if (this.state.statusName == \"Submitted for FAC\") {\n formStatusAlert = /*#__PURE__*/React.createElement(FACMessage, {\n approvalMessage: this.approveFAC,\n rejectionMessage: this.reject,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 677,\n columnNumber: 29\n }\n });\n }\n\n if (this.state.statusName == \"Submitted for Approval\") {\n formStatusAlert = /*#__PURE__*/React.createElement(ApprovalMessage, {\n approvalMessage: this.approve,\n rejectionMessage: this.reject,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 680,\n columnNumber: 29\n }\n });\n }\n\n break;\n }\n\n editButton = /*#__PURE__*/React.createElement(\"button\", {\n disabled: this.state.formStatus == 'edit' || this.state.statusName == 'Submitted for Approval' || this.state.statusName == 'Submitted for FAC' || this.state.isLoading,\n type: \"submit\",\n className: \"btn btn-primary heading-button\",\n onClick: function onClick() {\n return _this2.makeCopyForEdit();\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 684,\n columnNumber: 18\n }\n }, PencilIcon, \" \\xA0 Edit\");\n\n var _remoteFormBuilder = remoteFormBuilder(this.state),\n basicInformation = _remoteFormBuilder.basicInformation,\n additionalDetails = _remoteFormBuilder.additionalDetails,\n additionalDetails2 = _remoteFormBuilder.additionalDetails2,\n approvals = _remoteFormBuilder.approvals,\n approvals2 = _remoteFormBuilder.approvals2,\n tagInformation = _remoteFormBuilder.tagInformation;\n\n return /*#__PURE__*/React.createElement(Container, {\n className: \"dashboard\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 700,\n columnNumber: 7\n }\n }, /*#__PURE__*/React.createElement(Row, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 701,\n columnNumber: 9\n }\n }, /*#__PURE__*/React.createElement(Col, {\n md: 8,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 702,\n columnNumber: 11\n }\n }, /*#__PURE__*/React.createElement(\"h3\", {\n className: \"page-title\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 703,\n columnNumber: 13\n }\n }, \"Engineering Change Order \", /*#__PURE__*/React.createElement(\"span\", {\n className: \"lnr lnr-chevron-right\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 703,\n columnNumber: 65\n }\n }), \" Remote \", /*#__PURE__*/React.createElement(\"span\", {\n className: \"lnr lnr-chevron-right\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 703,\n columnNumber: 121\n }\n }), \" \", this.state.partNumber)), /*#__PURE__*/React.createElement(Col, {\n md: 4,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 705,\n columnNumber: 11\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"text-right\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 706,\n columnNumber: 13\n }\n }, editButton, /*#__PURE__*/React.createElement(PrintButton, {\n dsId: this.state.designSpecId,\n pn: this.state.partNumber,\n rev: this.state.revisionLevel,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 708,\n columnNumber: 15\n }\n })))), /*#__PURE__*/React.createElement(Row, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 716,\n columnNumber: 9\n }\n }, /*#__PURE__*/React.createElement(Col, {\n md: 12,\n lg: 12,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 717,\n columnNumber: 11\n }\n }, formStatusAlert, /*#__PURE__*/React.createElement(Card, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 719,\n columnNumber: 13\n }\n }, /*#__PURE__*/React.createElement(CardHeader, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 720,\n columnNumber: 15\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"eco-heading\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 721,\n columnNumber: 17\n }\n }, designSpecId === 'new' ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 725,\n columnNumber: 25\n }\n }, \"PartNumber: \", /*#__PURE__*/React.createElement(\"b\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 725,\n columnNumber: 42\n }\n }, 'Will Populate on save')), /*#__PURE__*/React.createElement(\"div\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 726,\n columnNumber: 25\n }\n }, \"ERN: \", /*#__PURE__*/React.createElement(\"span\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 726,\n columnNumber: 35\n }\n }, 0)), /*#__PURE__*/React.createElement(\"div\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 727,\n columnNumber: 25\n }\n }, \"D-Spec ID: \", /*#__PURE__*/React.createElement(\"b\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 727,\n columnNumber: 41\n }\n }, 'Will Populate on save'))) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 731,\n columnNumber: 25\n }\n }, \"RPM Part Number: \", /*#__PURE__*/React.createElement(\"b\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 731,\n columnNumber: 48\n }\n }, partNumber)), /*#__PURE__*/React.createElement(\"div\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 732,\n columnNumber: 25\n }\n }, \"ERN: \", /*#__PURE__*/React.createElement(\"span\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 732,\n columnNumber: 35\n }\n }, revisionLevel)), /*#__PURE__*/React.createElement(\"div\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 733,\n columnNumber: 25\n }\n }, \"D-Spec ID: \", /*#__PURE__*/React.createElement(\"span\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 733,\n columnNumber: 41\n }\n }, designSpecId))))), /*#__PURE__*/React.createElement(CardBody, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 738,\n columnNumber: 15\n }\n }, /*#__PURE__*/React.createElement(FormRow, {\n handleChange: this.handleChange,\n formDirection: \"horizontal\",\n formLayout: \"third\",\n formData: this.state.partNumber === 'new' ? emptyBasicInformation : basicInformation,\n formDisabled: this.state.formDisabled,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 739,\n columnNumber: 17\n }\n }))), /*#__PURE__*/React.createElement(Card, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 748,\n columnNumber: 13\n }\n }, /*#__PURE__*/React.createElement(CardHeader, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 749,\n columnNumber: 15\n }\n }, \"Additional Details\"), /*#__PURE__*/React.createElement(CardBody, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 750,\n columnNumber: 15\n }\n }, /*#__PURE__*/React.createElement(FormRow, {\n handleChange: this.handleChange,\n formDirection: \"horizontal\",\n formLayout: \"twoone\",\n formData: this.state.partNumber === 'new' ? emptyAdditionalDetails : additionalDetails,\n formDisabled: this.state.formDisabled,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 751,\n columnNumber: 17\n }\n }), /*#__PURE__*/React.createElement(\"br\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 757,\n columnNumber: 19\n }\n }), /*#__PURE__*/React.createElement(FormRow, {\n handleChange: this.handleChange,\n formDirection: \"vertical\",\n formLayout: \"half\",\n formData: this.state.partNumber === 'new' ? emptyAdditionalDetails2 : additionalDetails2,\n formDisabled: formDisabled,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 758,\n columnNumber: 17\n }\n }))), /*#__PURE__*/React.createElement(Card, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 770,\n columnNumber: 13\n }\n }, /*#__PURE__*/React.createElement(CardHeader, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 771,\n columnNumber: 15\n }\n }, \"Tag Information\"), /*#__PURE__*/React.createElement(CardBody, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 772,\n columnNumber: 15\n }\n }, /*#__PURE__*/React.createElement(FormRow, {\n handleChange: this.handleChange,\n formDirection: \"horizontal\",\n formLayout: \"third\",\n formData: this.state.partNumber === 'new' ? emptyTagInformation : tagInformation,\n formDisabled: this.state.formDisabled,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 773,\n columnNumber: 17\n }\n }))), /*#__PURE__*/React.createElement(Card, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 783,\n columnNumber: 13\n }\n }, /*#__PURE__*/React.createElement(CardHeader, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 784,\n columnNumber: 15\n }\n }, \"Bill of Materials\"), /*#__PURE__*/React.createElement(CardBody, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 785,\n columnNumber: 15\n }\n }, /*#__PURE__*/React.createElement(BOMTable, {\n tempBomCount: this.state.tempBomAdditions.length,\n formStatus: this.state.formStatus,\n formDisabled: this.state.formDisabled,\n boms: this.state.partNumber === 'new' ? emptyBomData : this.state.boms,\n tempBomData: this.state.partNumber === 'new' ? emptyBomData : this.state.tempBomAdditions,\n emptyBomRow: this.state.newRow,\n handleBomChange: this.handleBomChange,\n handleNewRowChange: this.handleNewRowChange,\n addNewBomRecord: this.addNewBomRecord,\n deleteBomItem: this.deleteBomItem,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 786,\n columnNumber: 17\n }\n }))), /*#__PURE__*/React.createElement(Card, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 802,\n columnNumber: 13\n }\n }, /*#__PURE__*/React.createElement(CardHeader, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 803,\n columnNumber: 15\n }\n }, \"Approvals\"), /*#__PURE__*/React.createElement(CardBody, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 804,\n columnNumber: 15\n }\n }, /*#__PURE__*/React.createElement(FormRow, {\n handleChange: this.handleChange,\n formDirection: \"vertical\",\n formLayout: \"half\",\n formData: approvals,\n formDisabled: formDisabled,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 805,\n columnNumber: 17\n }\n }), /*#__PURE__*/React.createElement(\"br\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 812,\n columnNumber: 17\n }\n }), \"\\xA0\", /*#__PURE__*/React.createElement(FormRow, {\n handleChange: this.handleChange,\n formDirection: \"horizontal\",\n formLayout: \"half\",\n formData: approvals2,\n formDisabled: formDisabled,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 813,\n columnNumber: 17\n }\n }))), this.state.formStatus == 'edit' && /*#__PURE__*/React.createElement(SubmissionButtonsGroup, {\n discardChanges: this.discardChanges,\n submitForFAC: this.submitForFAC,\n submitForApproval: this.submitForApproval,\n saveECO: this.saveECO,\n toggleFACRequirement: this.toggleFACRequirement,\n reviewRequired: this.state.reviewRequired,\n changeFormStatus: this.changeStatus,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 824,\n columnNumber: 15\n }\n }))));\n }\n }]);\n\n return RemoteECOForm;\n}(Component);\n\nvar NewRowComponent = function NewRowComponent(props) {\n var InputControlsVisisble = props.visible;\n var newRow = props.newRow,\n onChange = props.onChange,\n submit = props.submit;\n\n if (InputControlsVisisble) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"input\", {\n id: \"old\",\n type: \"text\",\n onChange: onChange,\n value: newRow.old,\n __self: _this3,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 855,\n columnNumber: 9\n }\n }), /*#__PURE__*/React.createElement(\"input\", {\n id: \"new\",\n type: \"text\",\n onChange: onChange,\n value: newRow.new,\n __self: _this3,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 856,\n columnNumber: 9\n }\n }), /*#__PURE__*/React.createElement(\"input\", {\n id: \"partNumber\",\n type: \"text\",\n onChange: onChange,\n value: newRow.partNumber,\n __self: _this3,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 857,\n columnNumber: 9\n }\n }), /*#__PURE__*/React.createElement(\"input\", {\n id: \"partDescription\",\n type: \"text\",\n onChange: onChange,\n value: newRow.partDescription,\n __self: _this3,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 858,\n columnNumber: 9\n }\n }), /*#__PURE__*/React.createElement(\"button\", {\n className: \"btn btn-primary\",\n onClick: submit,\n __self: _this3,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 859,\n columnNumber: 9\n }\n }, \"Add Part\"));\n }\n\n return null;\n};\n\nexport default RemoteECOForm; // export default reduxForm({\n// form: \"vertical_form_layout_half\" // a unique identifier for this form\n// })(VerticalFormHalf);","map":{"version":3,"sources":["/Users/michielcarman/Server Code/Repository/clients-rpm-kit-manager/code/RPM.KitManager/RPM.KitManager.Web/ClientApp/src/containers/Dspecs/Remote/RemoteECO.tsx"],"names":["React","Component","Card","CardBody","Col","Container","Row","CardHeader","FormRow","BOMTable","PrintButton","FACMessage","ApprovalMessage","axios","SubmissionButtonsGroup","remoteFormBuilder","emptyBasicInformation","emptyAdditionalDetails","emptyAdditionalDetails2","emptyTagInformation","emptyBomData","PencilIcon","RemoteECOForm","props","approve","state","designSpecId","partNumber","revisionLevel","alert","put","then","res","location","href","catch","err","console","error","reject","reload","approveFAC","submitForApproval","submitForFAC","confirm","defaultEmail","email","prompt","subject","msgBody","warn","discardChanges","userResponse","info","window","makeCopyForEdit","post","data","newDsId","newPn","newRev","changeStatus","newStatus","setState","formStatus","formDisabled","handleBomChange","e","idx","target","parentNode","id","split","fieldName","name","val","value","newBoms","boms","map","bom","i","newBom","bOld","bNew","description","parseInt","Object","assign","handleNewRowChange","newRow","addNewBomRecord","tempBomAdditions","deleteBomItem","idForDelete","type","delIdx","remainingboms","filter","_","bomForRemoval","bomsForDelete","handleChange","setOfCommonCustomers","customerPartNumbers","cust","jsPartNumbers","includes","custName","table","findIndex","pn","customerPartNumber","toggleFACRequirement","flippedState","reviewRequired","saveECO","billOfMaterials","basicInformation","partCodeName","statusName","comments","customerName","primaryCustomerPartNumber","primaryVendorName","primaryVendorPartNumber","secondaryVendorName","secondaryVendorPartNumber","oeReman","basicClass","status","makeFrom","sameAs","Number","except","pressurePort","suctionPort","suctionFitting","pressureFitting","weight","voltage","rotation","frequency","curve","terminalPosition","plrv","rtv","bracket","box","workInstruction","note","reasonForChange","validation","partNo","tagNumber","tagNumberDescription","paperTag","otherTag","serviceReplacementRef","signed","createDate","approved","approveDate","bomsForInsert","body","configs","headers","log","message","isLoading","match","params","customerNameListForDropdown","vendorNameListForDropdown","partCodeNameListforDropdown","AllCustomerList","AllVendorsList","PartCodeList","get","BasicInformation","items","records","forEach","xcpn","BillOfMaterials","totalRecords","paging","length","recordsPerPage","page","getMore","custRes","custCt","custres","customerData","sort","vendorRes","vendorCt","vendorres","vendorData","partCodeRes","partCodeCt","partCoderes","initialformStatus","initFormDisabled","emptyCustomerPartNumbers","formStatusAlert","editButton","additionalDetails","additionalDetails2","approvals","approvals2","tagInformation","NewRowComponent","InputControlsVisisble","visible","onChange","submit","old","new","partDescription"],"mappings":"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","sourcesContent":["import React, { Component } from \"react\";\nimport { Card, CardBody, Col, Container, Row, Button, ButtonToolbar, CardHeader } from \"reactstrap\";\nimport FormRow from \"../../../shared/components/form/FormRow\";\nimport BOMTable from \"../../../shared/components/form/BOMTable\"\nimport PrintButton from \"../../../shared/components/PrintButton\";\nimport { FACMessage } from \"../../../shared/components/FACMessage/FACMessage\";\nimport { ApprovalMessage } from \"../../../shared/components/ApprovalMessage/ApprovalMessage\";\n\nimport {\n Bom,\n RemoteBasicInformationDto,\n RemoteCustomerPartNummberDto,\n RemoteBillOfMaterialDto,\n MotorCustomersPartNumberDto\n} from \"../../../shared/interfaces/Index\"\n\nimport axios from 'axios';\nimport { SubmissionButtonsGroup } from \"../../../shared/components/SubmissionButtonsGroup/SubmissionButtonsGroup\";\n\n// Builders\nimport { remoteFormBuilder } from './remoteFormBuilder';\nimport {\n emptyBasicInformation,\n emptyAdditionalDetails,\n emptyAdditionalDetails2,\n emptyTagInformation,\n emptyBomData\n} from './EmptyRemoteECODataFields'\nimport { basicInfo1 } from \"../../../shared/components/mockdata/RFDFormMockData\";\nimport { basicInformation } from \"../../../shared/components/mockdata/KitsECOMockData\";\n// Icon\nconst PencilIcon = <span className=\"lnr lnr-pencil\"></span>\n\ninterface ECOFormProps {\n match: any,\n}\nexport interface ECOFormState extends RemoteBasicInformationDto {\n formStatus: string,\n reviewRequired: boolean,\n designSpecId: any,\n partNumber: any,\n revisionLevel: any,\n formDisabled: boolean,\n newRow: any,\n boms: any\n tempBomAdditions: any,\n customerPartNumbers: RemoteCustomerPartNummberDto[],\n customerNameListForDropdown: string[]\n vendorNameListForDropdown: string[]\n partCodeNameListforDropdown: string[],\n isLoading: boolean,\n}\n\nclass RemoteECOForm extends Component<ECOFormProps, ECOFormState> {\n\n constructor(props: ECOFormProps) {\n super(props);\n this.state = {\n isLoading: true,\n formStatus: 'read',\n reviewRequired: false,\n designSpecId: this.props.match.params.designSpecId,\n partNumber: this.props.match.params.partNumber,\n revisionLevel: this.props.match.params.revisionLevel,\n formDisabled: true,\n boms: [...emptyBomData],\n bomsForDelete: [],\n bomsForInsert: [],\n newRow: {\n bOld: '',\n bNew: '',\n partNumber: '',\n description: ''\n },\n tempBomAdditions: [],\n customerPartNumbers: [\n { name: \"Cummins\", customerPartNumber: \"\" },\n { name: \"Caterpillar\", customerPartNumber: \"\" },\n { name: \"Diesel Recon\", customerPartNumber: \"\" },\n { name: \"DRARecon\", customerPartNumber: \"\" },\n { name: \"Komatsu\", customerPartNumber: \"\" },\n { name: \"DDC\", customerPartNumber: \"\" },\n { name: \"Parker\", customerPartNumber: \"\" },\n { name: \"Other\", customerPartNumber: \"\" },\n ],\n // Basic Information\n partCodeName: '',\n description: '',\n statusName: '',\n comments: '',\n customerName: '',\n primaryCustomerPartNumber: '',\n primaryVendorName: '',\n primaryVendorPartNumber: '',\n secondaryVendorName: '',\n secondaryVendorPartNumber: '',\n\n // Additional Details\n oeReman: '',\n basicClass: '',\n status: '',\n makeFrom: '',\n sameAs: null,\n except: '',\n pressurePort: '',\n suctionPort: '',\n suctionFitting: '',\n pressureFitting: '',\n weight: 0,\n voltage: '',\n rotation: '',\n frequency: '',\n curve: '',\n terminalPosition: '',\n plrv: false,\n rtv: false,\n bracket: '',\n box: '',\n workInstruction: '',\n // Additonal Details2\n note: '',\n // Approvals\n reasonForChange: '',\n validation: '',\n // Tag Information\n partNo: '',\n tagNumberDescription: '',\n paperTag: '',\n otherTag: '',\n tagNumber: '',\n serviceReplacementRef: '',\n // Approvals2 \n signed: '',\n createDate: null,\n approved: '',\n approveDate: null,\n\n customerNameListForDropdown: [],\n vendorNameListForDropdown: [],\n partCodeNameListforDropdown: [],\n };\n }\n async componentDidMount() {\n const { designSpecId, partNumber, revisionLevel } = this.state;\n let BasicInformation: RemoteBasicInformationDto | undefined;\n let CustomerPartNumbers: MotorCustomersPartNumberDto | undefined;\n let BillOfMaterials: RemoteBillOfMaterialDto | undefined;\n let jsPartNumbers: any;\n let AllCustomerList: string[] = [];\n let AllVendorsList: string[] = [];\n let PartCodeList: string[] = [];\n\n // TODO: set these Req's to run in parallel. \n if (designSpecId !== 'new') { //FetchData\n await axios.get(`/api/designspec/remote/basicInformation/${designSpecId}/${partNumber}/${revisionLevel}`)\n .then(res => {\n BasicInformation = res.data.items.records[0]\n })\n .catch(err => console.error(err))\n await axios.get(`/api/designspec/remote/customerPartNumbers/${designSpecId}/${partNumber}/${revisionLevel}`)\n .then(res => {\n //Loop through and Grab each paprtNumbers\n jsPartNumbers = [\n { name: \"Cummins\", customerPartNumber: \"\" },\n { name: \"Caterpillar\", customerPartNumber: \"\" },\n { name: \"Diesel Recon\", customerPartNumber: \"\" },\n { name: \"DRARecon\", customerPartNumber: \"\" },\n { name: \"Komatsu\", customerPartNumber: \"\" },\n { name: \"DDC\", customerPartNumber: \"\" },\n { name: \"Parker\", customerPartNumber: \"\" },\n { name: \"Other\", customerPartNumber: \"\" },\n ];\n res.data.items.records.forEach((xcpn: any) => {\n let custName = xcpn.name;\n let partNumber = xcpn.customerPartNumber;\n\n let idx = jsPartNumbers.findIndex((pn: RemoteCustomerPartNummberDto) => pn.name === custName)\n if (idx != -1) {\n jsPartNumbers[idx].customerPartNumber = partNumber\n }\n })\n })\n .catch(err => console.error(err))\n await axios.get(`/api/designspec/remote/billOfMaterial/${designSpecId}/${partNumber}/${revisionLevel}`)\n .then(res => {\n BillOfMaterials = res.data.items.records\n let totalRecords = res.data.items.paging.records.length;\n let recordsPerPage = res.data.items.paging.page.length;\n if (totalRecords > recordsPerPage) {\n let getMore = confirm(`There might be more records than the ${recordsPerPage} shown here. Do you want to get the rest?`)\n if (getMore) alert(\"Error: BIM_KQueryNotFound\")\n }\n\n })\n .catch(err => console.error(err))\n }\n\n\n\n let custRes = await axios.get(`/api/customer`);\n const custCt = custres.data.items.paging.records.length\n await axios.get(`/api/customer?size=${custCt}`)\n .then(res => {\n AllCustomerList = res.data.items.records.map((customerData: any) => customerData.name)\n AllCustomerList = AllCustomerList.sort();\n }).catch(err => console.error(err))\n\n let vendorRes = await axios.get(`/api/vendor`)\n let vendorCt = vendorres.data.items.paging.records.length;\n await axios.get(`/api/vendor?size=${vendorCt}`)\n .then((res: any) => {\n AllVendorsList = res.data.items.records.map((vendorData: any) => vendorData.name)\n AllVendorsList = AllVendorsList.sort()\n })\n\n let partCodeRes = await axios.get(`/api/partcode`)\n let partCodeCt = partCoderes.data.items.paging.records.length;\n await axios.get(`/api/partcode?size=${partCodeCt}`)\n .then((res: any) => {\n PartCodeList = res.data.items.records.map((vendorData: any) => vendorData.name)\n PartCodeList = PartCodeList.sort()\n })\n\n\n // Set the intial for state by reading from designSpec\n let initialformStatus: string = \"read\";\n let initFormDisabled: boolean = true;\n\n // Set State for a new form\n if (designSpecId == 'new') {\n initFormDisabled = false;\n initialformStatus = \"edit\"\n }\n\n //\n if (BasicInformation && BasicInformation.statusName == \"In Process\") {\n initialformStatus = \"edit\"\n initFormDisabled = false;\n }\n\n if (BasicInformation\n && (BasicInformation.statusName == \"Submitted for FAC\"\n || BasicInformation.statusName == \"Submitted for Approval\")) {\n initialformStatus = \"review\"\n initFormDisabled = true\n }\n\n let emptyCustomerPartNumbers = [\n { name: \"Cummins\", customerPartNumber: \"\" },\n { name: \"Caterpillar\", customerPartNumber: \"\" },\n { name: \"Diesel Recon\", customerPartNumber: \"\" },\n { name: \"DRARecon\", customerPartNumber: \"\" },\n { name: \"Komatsu\", customerPartNumber: \"\" },\n { name: \"DDC\", customerPartNumber: \"\" },\n { name: \"Parker\", customerPartNumber: \"\" },\n { name: \"Other\", customerPartNumber: \"\" },\n ];\n this.setState({\n ...this.state,\n isLoading: false,\n formStatus: initialformStatus,\n formDisabled: initFormDisabled,\n boms: BillOfMaterials,\n customerPartNumbers: jsPartNumbers || emptyCustomerPartNumbers,\n // Basic Information\n partCodeName: BasicInformation && BasicInformation.partCodeName ? BasicInformation.partCodeName : \"\",\n description: BasicInformation && BasicInformation.description ? BasicInformation.description : \"\",\n statusName: BasicInformation && BasicInformation.statusName ? BasicInformation.statusName : \"\",\n comments: BasicInformation && BasicInformation.comments ? BasicInformation.comments : \"\",\n customerName: BasicInformation && BasicInformation.customerName ? BasicInformation.customerName : \"\",\n primaryCustomerPartNumber: BasicInformation && BasicInformation.primaryCustomerPartNumber ? BasicInformation.primaryCustomerPartNumber : \"\",\n primaryVendorName: BasicInformation && BasicInformation.primaryVendorName ? BasicInformation.primaryVendorName : \"\",\n primaryVendorPartNumber: BasicInformation && BasicInformation.primaryVendorPartNumber ? BasicInformation.primaryVendorPartNumber : \"\",\n secondaryVendorName: BasicInformation && BasicInformation.secondaryVendorName ? BasicInformation.secondaryVendorName : \"\",\n secondaryVendorPartNumber: BasicInformation && BasicInformation.secondaryVendorPartNumber ? BasicInformation.secondaryVendorPartNumber : \"\",\n\n // Additional Details\n oeReman: BasicInformation && BasicInformation.oeReman ? BasicInformation.oeReman : \"\",\n basicClass: BasicInformation && BasicInformation.basicClass ? BasicInformation.basicClass : \"\",\n status: BasicInformation && BasicInformation.status ? BasicInformation.status : \"\",\n makeFrom: BasicInformation && BasicInformation.makeFrom ? BasicInformation.makeFrom : \"\",\n sameAs: BasicInformation && BasicInformation.sameAs ? BasicInformation.sameAs : null,\n except: BasicInformation && BasicInformation.except ? BasicInformation.except : \"\",\n pressurePort: BasicInformation && BasicInformation.pressurePort ? BasicInformation.pressurePort : \"\",\n suctionPort: BasicInformation && BasicInformation.suctionPort ? BasicInformation.suctionPort : \"\",\n suctionFitting: BasicInformation && BasicInformation.suctionFitting ? BasicInformation.suctionFitting : \"\",\n pressureFitting: BasicInformation && BasicInformation.pressureFitting ? BasicInformation.pressureFitting : \"\",\n weight: BasicInformation && BasicInformation.weight ? BasicInformation.weight : 0,\n voltage: BasicInformation && BasicInformation.voltage ? BasicInformation.voltage : \"\",\n rotation: BasicInformation && BasicInformation.rotation ? BasicInformation.rotation : \"\",\n frequency: BasicInformation && BasicInformation.frequency ? BasicInformation.frequency : \"\",\n curve: BasicInformation && BasicInformation.curve ? BasicInformation.curve : \"\",\n terminalPosition: BasicInformation && BasicInformation.terminalPosition ? BasicInformation.terminalPosition : \"\",\n plrv: BasicInformation && BasicInformation.plrv ? BasicInformation.plrv : false,\n rtv: BasicInformation && BasicInformation.rtv ? BasicInformation.rtv : false,\n bracket: BasicInformation && BasicInformation.bracket ? BasicInformation.bracket : \"\",\n box: BasicInformation && BasicInformation.box ? BasicInformation.box : \"\",\n workInstruction: BasicInformation && BasicInformation.workInstruction ? BasicInformation.workInstruction : \"\",\n // Additonal Details2\n note: BasicInformation && BasicInformation.note ? BasicInformation.note : \"\",\n // Approvals\n reasonForChange: BasicInformation && BasicInformation.reasonForChange ? BasicInformation.reasonForChange : \"\",\n validation: BasicInformation && BasicInformation.validation ? BasicInformation.validation : \"\",\n // Tag Information\n partNo: BasicInformation && BasicInformation.tagNumber ? BasicInformation.partNo : \"\",\n tagNumber: BasicInformation && BasicInformation.tagNumber ? BasicInformation.tagNumber : \"\",\n tagNumberDescription: BasicInformation && BasicInformation.tagNumberDescription ? BasicInformation.tagNumberDescription : \"\",\n paperTag: BasicInformation && BasicInformation.paperTag ? BasicInformation.paperTag : \"\",\n otherTag: BasicInformation && BasicInformation.otherTag ? BasicInformation.otherTag : \"\",\n serviceReplacementRef: BasicInformation && BasicInformation.serviceReplacementRef ? BasicInformation.serviceReplacementRef : \"\",\n // Approvals2 \n signed: BasicInformation && BasicInformation.signed ? BasicInformation.signed : \"\",\n createDate: BasicInformation && BasicInformation.createDate ? BasicInformation.createDate : null,\n approved: BasicInformation && BasicInformation.approved ? BasicInformation.approved : \"\",\n approveDate: BasicInformation && BasicInformation.approveDate ? BasicInformation.approveDate : null,\n\n customerNameListForDropdown: AllCustomerList,\n vendorNameListForDropdown: AllVendorsList,\n partCodeNameListforDropdown: PartCodeList,\n\n })\n }\n\n approve = async () => {\n const { designSpecId, partNumber, revisionLevel } = this.state;\n alert(`This will be marked as 'Approved'`)\n await axios.put(`/api/designspec/changeStatus/${designSpecId}/${partNumber}/${revisionLevel}/Approved`)\n .then(res => {\n location.href = `/dspecs/remote/form/${designSpecId}/${partNumber}/${revisionLevel}`\n })\n .catch(err => console.error(err))\n }\n reject = () => {\n const { designSpecId, partNumber, revisionLevel } = this.state;\n alert(\"This will be knocked back down to 'In Process' status.\")\n axios.put(`/api/designspec/changeStatus/${designSpecId}/${partNumber}/${revisionLevel}/In%20Process`)\n .then(res => {\n location.href = `/dspecs/remote/form/${designSpecId}/${partNumber}/${revisionLevel}`\n })\n .catch(err => console.error(err))\n location.reload();\n }\n approveFAC = () => {\n alert('The FAC has been approved, submitting for final approval')\n //Submitted for Approval\n this.submitForApproval();\n }\n\n\n submitForFAC = async () => {\n let res = confirm(\"submitting this Dspec, Marking it as 'Submitted for FAC'\")\n const { designSpecId, partNumber, revisionLevel } = this.state;\n let customerPartNumbers: RemoteCustomerPartNummberDto[];\n let billOfMaterials: RemoteBillOfMaterialDto[];\n let basicInformation: RemoteBasicInformationDto;\n\n // Submit email to user\n let email;\n let subject;\n let msgBody;\n let defaultEmail;\n\n await axios.put(`/api/designspec/changeStatus/${designSpecId}/${partNumber}/${revisionLevel}/Submitted%20for%20FAC`)\n .then(res => {\n defaultEmail = 'jzwicker@rpmindustries.com'\n email = prompt('Who should get the email?', defaultEmail)\n subject = `New FAC to Review`\n msgBody = `\n NOTE THIS IS JUST A MOCK. WILL BE AUTO CONNECTED TO AN BIM EMAIL API FOR AUTO DELIVERY OF AN EMAIL. \n \\n \\n \\n \n You have a new FAC to review regarding DspecId: ${designSpecId}, PartNumber: ${partNumber}, ERN: ${revisionLevel}`\n console.warn(`Email Alert Service needed for 'Submit For FAC'`)\n location.href = `/dspecs/remote/form/${designSpecId}/${partNumber}/${revisionLevel}`\n })\n .catch(err => {\n console.error(err);\n })\n }\n submitForApproval = async () => {\n let res = confirm(\"Submitting this DSpec, Marking it as 'Submitted For Approval'\")\n const { designSpecId, partNumber, revisionLevel } = this.state;\n\n axios.put(`/api/designspec/changeStatus/${designSpecId}/${partNumber}/${revisionLevel}/Submitted%20for%20Approval`)\n .then(res => {\n location.href = `/dspecs/remote/form/${designSpecId}/${partNumber}/${revisionLevel}`\n })\n .catch(err => {\n console.error(err);\n })\n }\n discardChanges = () => {\n const userResponse = confirm('Are you sure you want to erase all changes?')\n if (userResponse) {\n console.info('Getting rid of changes to ')\n window.location.reload(true);\n }\n console.info('Aborting Erasure')\n }\n makeCopyForEdit = async () => {\n const { designSpecId, partNumber, revisionLevel } = this.state\n // XHR to a \"new\" route.\n // xhr should return the new dspec/pn/rev\n let data: any;\n await axios.post(`/api/designspec/general/cloneforedit/${designSpecId}/${partNumber}/${revisionLevel}`)\n .then(res => {\n data = res.data;\n let newDsId = data.designSpecId;\n let newPn = data.partNumber;\n let newRev = data.revisionLevel;\n return (location.href = `/dspecs/remote/form/${newDsId}/${newPn}/${newRev}`);\n })\n .catch(err => console.error(err))\n }\n\n changeStatus = (newStatus: string) => {\n switch (newStatus) {\n case 'read':\n this.setState({\n formStatus: newStatus,\n formDisabled: true\n })\n break;\n case 'edit':\n this.setState({\n formStatus: newStatus,\n formDisabled: false\n });\n break;\n case 'review':\n this.setState({\n formStatus: newStatus,\n formDisabled: true\n })\n break;\n }\n }\n handleBomChange = (e: any) => {\n const idx: number = e.target.parentNode.parentNode.id.split('-')[1]\n const fieldName: string = e.target.name;\n let val: string | number = e.target.value;\n\n const newBoms: Bom[] = this.state.boms.map((bom: Bom, i: number) => {\n if (i == idx) {\n let newBom: Bom = {\n bOld: '',\n bNew: '',\n partNumber: '',\n description: ''\n };\n if (fieldName === 'partNumber') {\n val = parseInt(`${val}`);\n }\n Object.assign(newBom, bom, {\n [fieldName]: val\n });\n return newBom\n } else {\n return bom;\n }\n })\n this.setState({\n ...this.state,\n boms: newBoms\n })\n }\n\n handleNewRowChange = (e: any) => {\n //Pull the propertyName (id) and value from the input field.\n let { name, value } = e.target\n if (name == \"partNumber\" && value != \"\")\n value = parseInt(value);\n // //Update state with new property and value.\n this.setState({\n newRow: {\n ...this.state.newRow,\n [name]: value\n }\n })\n }\n\n addNewBomRecord = () => {\n // Grab State newRow.\n let { newRow } = this.state\n\n this.setState({\n ...this.state,\n tempBomAdditions: [...this.state.tempBomAdditions, newRow],\n newRow: {\n bOld: '',\n bNew: '',\n partNumber: '',\n description: ''\n }\n })\n this.setState((state) => ({\n ...state,\n newRow: {\n bOld: '',\n bNew: '',\n partNumber: '',\n description: ''\n }\n }))\n }\n\n deleteBomItem = (e: any) => {\n ///Identify Type and Inded for Delete (//TODO: Use a unique identifier, not just arrayIndex which is susceptible to bugs)\n let idForDelete = e.target.parentNode.parentNode.parentNode.id;\n let [type, delIdx] = idForDelete.split('-')\n\n // Remove from Boms\n if (type === 'bom') {\n let remainingboms = this.state.boms.filter((_: any, idx: number) => idx !== parseInt(delIdx))\n let bomForRemoval = this.state.boms.filter((_: any, idx: number) => idx == parseInt(delIdx))\n this.setState({\n ...this.state,\n boms: remainingboms,\n bomsForDelete: [...this.state.bomsForDelete, ...bomForRemoval]\n })\n }\n // Remove from Temps (no need to flag for delete since it only exists in UI at this point.)\n if (type === 'temp') {\n let remainingboms = this.state.tempBomAdditions.filter((_: any, idx: number) => idx !== parseInt(delIdx))\n\n this.setState({\n ...this.state,\n tempBomAdditions: [...remainingboms]\n })\n }\n }\n\n handleChange = (e: any) => {\n let setOfCommonCustomers: any[] = this.state.customerPartNumbers.map(cust => cust.name);\n let jsPartNumbers: any = this.state.customerPartNumbers;\n if (setOfCommonCustomers.includes(e.target.name)) {\n let custName = e.target.name;\n let partNumber = e.target.value;\n console.table(custName, partNumber)\n let idx = jsPartNumbers.findIndex((pn: RemoteCustomerPartNummberDto) => pn.name === custName)\n if (idx != -1) {\n jsPartNumbers[idx].customerPartNumber = partNumber\n }\n this.setState({\n ...this.state,\n customerPartNumbers: jsPartNumbers\n })\n }\n else {\n this.setState({\n ...this.state,\n [e.target.name]: e.target.value\n })\n }\n }\n toggleFACRequirement = () => {\n const flippedState = !this.state.reviewRequired;\n this.setState({ reviewRequired: flippedState });\n }\n saveECO = async () => {\n let res = confirm(`Saving changes on this designSpec, they will NOT be submitted for review. They will be marked 'In Progress' for future editing.`)\n const { designSpecId, partNumber, revisionLevel } = this.state;\n let customerPartNumbers: RemoteCustomerPartNummberDto[];\n let billOfMaterials: RemoteBillOfMaterialDto[];\n let basicInformation: RemoteBasicInformationDto;\n\n billOfMaterials = this.state.boms;\n customerPartNumbers = this.state.customerPartNumbers;\n basicInformation = {\n // Basic Information\n revisionLevel: parseInt(this.state.revisionLevel),\n partNumber: this.state.partNumber,\n partCodeName: this.state.partCodeName,\n description: this.state.description,\n statusName: this.state.statusName,\n comments: this.state.comments,\n customerName: this.state.customerName,\n primaryCustomerPartNumber: this.state.primaryCustomerPartNumber,\n primaryVendorName: this.state.primaryVendorName,\n primaryVendorPartNumber: this.state.primaryVendorPartNumber,\n secondaryVendorName: this.state.secondaryVendorName,\n secondaryVendorPartNumber: this.state.secondaryVendorPartNumber,\n\n // Additional Details\n oeReman: this.state.oeReman,\n basicClass: this.state.basicClass,\n status: this.state.status,\n makeFrom: this.state.makeFrom,\n sameAs: Number(this.state.sameAs),\n except: this.state.except,\n pressurePort: this.state.pressurePort,\n suctionPort: this.state.suctionPort,\n suctionFitting: this.state.suctionFitting,\n pressureFitting: this.state.pressureFitting,\n weight: this.state.weight,\n voltage: this.state.voltage,\n rotation: this.state.rotation,\n frequency: this.state.frequency,\n curve: this.state.curve,\n terminalPosition: this.state.terminalPosition,\n plrv: this.state.plrv,\n rtv: this.state.rtv,\n bracket: this.state.bracket,\n box: this.state.box,\n workInstruction: this.state.workInstruction,\n // Additonal Details2\n note: this.state.note,\n // Approvals\n reasonForChange: this.state.reasonForChange,\n validation: this.state.validation,\n // Tag Information\n partNo: this.state.partNo,\n tagNumber: this.state.tagNumber,\n tagNumberDescription: this.state.tagNumberDescription,\n paperTag: this.state.paperTag,\n otherTag: this.state.otherTag,\n serviceReplacementRef: this.state.serviceReplacementRef,\n // Approvals2 \n signed: this.state.signed,\n createDate: this.state.createDate == \"\" ? null : this.state.createDate,\n approved: this.state.approved,\n approveDate: this.state.approveDate,\n\n bomsForDelete: this.state.bomsForDelete,\n bomsForInsert: this.state.bomsForInsert\n }\n\n let body = {\n basicInformation,\n customerPartNumbers,\n billOfMaterials,\n bomsForDelete: this.state.bomsForDelete,\n bomsForInsert: this.state.tempBomAdditions\n }\n let configs = {\n headers: {\n 'Content-Type': 'application/json'\n }\n };\n if (designSpecId == 'new') {\n body.basicInformation.partNumber = 0;\n body.basicInformation.revisionLevel = 0;\n await axios.post(`/api/partnumber/remote/new`, body, configs)\n .then((res: any) => {\n console.log(res.data)\n const { designSpecId, partNumber, revisionLevel } = res.data\n location.href = `/dspecs/remote/form/${designSpecId}/${partNumber}/${revisionLevel}`\n })\n .catch(err => {\n alert(err)\n console.log(err)\n })\n } else {\n await axios.put(`/api/designspec/remote/updatespec/${designSpecId}/${partNumber}/${revisionLevel}`, body, configs)\n .then((res: any) => {\n console.log(res)\n location.href = `/dspecs/remote/form/${designSpecId}/${partNumber}/${revisionLevel}`\n })\n .catch(err => {\n alert(err.message);\n console.error(err);\n })\n }\n }\n\n\n render() {\n const { formStatus, designSpecId, partNumber, revisionLevel } = this.state;\n let formStatusAlert;\n let editButton;\n let formDisabled: boolean = true;\n switch (this.state.formStatus) {\n case 'edit':\n formStatusAlert = <div className=\"change-status editing\">Currently Editing</div>;\n break;\n case 'review':\n if (this.state.statusName == \"Submitted for FAC\") {\n formStatusAlert = <FACMessage approvalMessage={this.approveFAC} rejectionMessage={this.reject} />\n }\n if (this.state.statusName == \"Submitted for Approval\") {\n formStatusAlert = <ApprovalMessage approvalMessage={this.approve} rejectionMessage={this.reject} />\n }\n break;\n }\n editButton = <button\n disabled={this.state.formStatus == 'edit' || this.state.statusName == 'Submitted for Approval' || this.state.statusName == 'Submitted for FAC' || this.state.isLoading}\n type=\"submit\"\n className=\"btn btn-primary heading-button\"\n onClick={() => this.makeCopyForEdit()}\n >{PencilIcon} &nbsp; Edit</button>;\n\n const {\n basicInformation,\n additionalDetails,\n additionalDetails2,\n approvals,\n approvals2,\n tagInformation\n } = remoteFormBuilder(this.state)\n return (\n <Container className=\"dashboard\">\n <Row>\n <Col md={8}>\n <h3 className=\"page-title\">Engineering Change Order <span className=\"lnr lnr-chevron-right\"></span> Remote <span className=\"lnr lnr-chevron-right\"></span> {this.state.partNumber}</h3>\n </Col>\n <Col md={4}>\n <div className=\"text-right\">\n {editButton}\n <PrintButton\n dsId={this.state.designSpecId}\n pn={this.state.partNumber}\n rev={this.state.revisionLevel}\n />\n </div>\n </Col>\n </Row>\n <Row>\n <Col md={12} lg={12}>\n {formStatusAlert}\n <Card>\n <CardHeader>\n <div className=\"eco-heading\">\n {\n designSpecId === 'new' ?\n <>\n <div>PartNumber: <b>{'Will Populate on save'}</b></div>\n <div>ERN: <span>{0}</span></div>\n <div>D-Spec ID: <b>{'Will Populate on save'}</b></div>\n </>\n :\n <>\n <div>RPM Part Number: <b>{partNumber}</b></div>\n <div>ERN: <span>{revisionLevel}</span></div>\n <div>D-Spec ID: <span>{designSpecId}</span></div>\n </>\n }\n </div>\n </CardHeader>\n <CardBody>\n <FormRow\n handleChange={this.handleChange}\n formDirection=\"horizontal\"\n formLayout=\"third\"\n formData={this.state.partNumber === 'new' ? emptyBasicInformation : basicInformation}\n formDisabled={this.state.formDisabled}\n />\n </CardBody>\n </Card>\n <Card>\n <CardHeader>Additional Details</CardHeader>\n <CardBody>\n <FormRow\n handleChange={this.handleChange}\n formDirection=\"horizontal\"\n formLayout=\"twoone\"\n formData={this.state.partNumber === 'new' ? emptyAdditionalDetails : additionalDetails}\n formDisabled={this.state.formDisabled}\n /><br />\n <FormRow\n handleChange={this.handleChange}\n formDirection=\"vertical\"\n formLayout=\"half\"\n formData={this.state.partNumber === 'new' ? emptyAdditionalDetails2 : additionalDetails2}\n formDisabled={formDisabled} />\n\n </CardBody>\n\n\n </Card>\n\n <Card>\n <CardHeader>Tag Information</CardHeader>\n <CardBody>\n <FormRow\n handleChange={this.handleChange}\n formDirection=\"horizontal\"\n formLayout=\"third\"\n formData={this.state.partNumber === 'new' ? emptyTagInformation : tagInformation}\n formDisabled={this.state.formDisabled}\n />\n </CardBody>\n </Card>\n\n <Card>\n <CardHeader>Bill of Materials</CardHeader>\n <CardBody>\n <BOMTable\n tempBomCount={this.state.tempBomAdditions.length}\n formStatus={this.state.formStatus}\n formDisabled={this.state.formDisabled}\n boms={this.state.partNumber === 'new' ? emptyBomData : this.state.boms}\n tempBomData={this.state.partNumber === 'new' ? emptyBomData : this.state.tempBomAdditions}\n emptyBomRow={this.state.newRow}\n handleBomChange={this.handleBomChange}\n handleNewRowChange={this.handleNewRowChange}\n addNewBomRecord={this.addNewBomRecord}\n deleteBomItem={this.deleteBomItem}\n />\n\n </CardBody>\n </Card>\n\n <Card>\n <CardHeader>Approvals</CardHeader>\n <CardBody>\n <FormRow\n handleChange={this.handleChange}\n formDirection=\"vertical\"\n formLayout=\"half\"\n formData={approvals}\n formDisabled={formDisabled}\n />\n <br />&nbsp;\n <FormRow\n handleChange={this.handleChange}\n formDirection=\"horizontal\"\n formLayout=\"half\"\n formData={approvals2}\n formDisabled={formDisabled}\n />\n </CardBody>\n </Card>\n {\n this.state.formStatus == 'edit' &&\n <SubmissionButtonsGroup\n discardChanges={this.discardChanges}\n submitForFAC={this.submitForFAC}\n submitForApproval={this.submitForApproval}\n saveECO={this.saveECO}\n toggleFACRequirement={this.toggleFACRequirement}\n reviewRequired={this.state.reviewRequired}\n changeFormStatus={this.changeStatus}\n />\n }\n </Col>\n </Row>\n </Container>\n );\n }\n}\ninterface NewRowProps {\n submit: any\n newRow: any\n onChange: any\n visible: boolean\n}\ninterface NewRowState {\n newRow: any\n}\nconst NewRowComponent = (props: NewRowProps) => {\n let InputControlsVisisble = props.visible;\n let { newRow, onChange, submit } = props;\n if (InputControlsVisisble) {\n return (\n <>\n <input id=\"old\" type=\"text\" onChange={onChange} value={newRow.old}></input>\n <input id=\"new\" type=\"text\" onChange={onChange} value={newRow.new}></input>\n <input id=\"partNumber\" type=\"text\" onChange={onChange} value={newRow.partNumber}></input>\n <input id=\"partDescription\" type=\"text\" onChange={onChange} value={newRow.partDescription}></input>\n <button\n className=\"btn btn-primary\"\n onClick={submit}\n >Add Part</button>\n </>\n )\n }\n return null;\n}\n\nexport default RemoteECOForm;\n\n// export default reduxForm({\n// form: \"vertical_form_layout_half\" // a unique identifier for this form\n// })(VerticalFormHalf);"]},"metadata":{},"sourceType":"module"}