Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 

1 rad
129 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\";\nvar _jsxFileName = \"/Users/michielcarman/Server Code/Repository/clients-rpm-kit-manager/code/RPM.KitManager/RPM.KitManager.Web/ClientApp/src/containers/Dspecs/Motor/MotorECO.tsx\";\nimport React, { Component } from \"react\";\nimport { Card, CardHeader, CardBody, Col, Container, Row, Button } 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 axios from 'axios';\nimport html2canvas from 'html2canvas';\nimport jsPDF from 'jspdf'; // interfaces\n\n//Mock Data\nimport { SubmissionButtonsGroup } from \"../../../shared/components/SubmissionButtonsGroup/SubmissionButtonsGroup\"; // Builder\n\nimport { motorFormBuilder } from './motorFormBuilder';\nimport { emptyMainCard, emptyAdditionalDetails, emptyTagInformation, emptyBomData } from './EmptyMotorECOMDataFields';\nimport { ApprovalMessage } from \"../../../shared/components/ApprovalMessage/ApprovalMessage\"; //Set up Icons\n\nvar PencilIcon = /*#__PURE__*/React.createElement(\"span\", {\n className: \"lnr lnr-pencil\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 20\n }\n});\nvar ChevronRightIcon = /*#__PURE__*/React.createElement(\"span\", {\n className: \"lnr lnr-chevron-right\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 26\n }\n});\n\nvar MotorECOForm = /*#__PURE__*/function (_Component) {\n _inherits(MotorECOForm, _Component);\n\n function MotorECOForm(props) {\n var _this;\n\n _classCallCheck(this, MotorECOForm);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(MotorECOForm).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/motor/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 _this.reject = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n var _this$state2, designSpecId, partNumber, revisionLevel;\n\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _this$state2 = _this.state, designSpecId = _this$state2.designSpecId, partNumber = _this$state2.partNumber, revisionLevel = _this$state2.revisionLevel;\n _context2.next = 3;\n return axios.put(\"/api/designspec/changeStatus/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel, \"/In%20Process\")).then(function (res) {\n alert(\"This has not been approved\");\n location.href = \"/dspecs/motor/form/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel);\n }).catch(function (err) {\n return console.error(err);\n });\n\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n _this.approveFAC = function () {\n _this.submitForApproval();\n };\n\n _this.submitForApproval = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {\n var _this$state3, designSpecId, partNumber, revisionLevel;\n\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n alert(\"Submitting this DSpec, Marking it as 'Submitted For Approval'\");\n _this$state3 = _this.state, designSpecId = _this$state3.designSpecId, partNumber = _this$state3.partNumber, revisionLevel = _this$state3.revisionLevel;\n _context3.next = 4;\n return axios.put(\"/api/designspec/changeStatus/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel, \"/Submitted%20for%20Approval\")).then(function (res) {\n // 'Will need to call a service here.'\n // location.href = \"mailto:\" + defaultEmail + '?&subject=' + subject + '&body=' + body;\n location.href = \"/dspecs/motor/form/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel);\n }).catch(function (err) {\n console.error(err);\n alert(err);\n });\n\n case 4:\n _this.changeStatus('read');\n\n case 5:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n _this.submitForFAC = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {\n var userRes, _this$state4, designSpecId, partNumber, revisionLevel, email, subject, msgBody, defaultEmail;\n\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n userRes = confirm(\"Do you want to send this for First Article Check?\");\n _this$state4 = _this.state, designSpecId = _this$state4.designSpecId, partNumber = _this$state4.partNumber, revisionLevel = _this$state4.revisionLevel; // Submit email to user\n\n if (!userRes) {\n _context4.next = 6;\n break;\n }\n\n // Make Network Req\n alert(\"submitting this Dspec, Marking it as 'Submitted for FAC'\");\n _context4.next = 6;\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 location.href = \"/dspecs/motor/form/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel);\n }).catch(function (err) {\n console.error(err);\n alert(err);\n });\n\n case 6:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n _this.makeCopyForEdit = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {\n var _this$state5, designSpecId, partNumber, revisionLevel, data;\n\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.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 _context5.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/motor/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 _context5.stop();\n }\n }\n }, _callee5);\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: _toConsumableArray(remainingboms),\n bomsForDelete: [].concat(_toConsumableArray(_this.state.bomsForDelete), _toConsumableArray(bomForRemoval))\n }));\n } // Remove from Temps\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 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 _callee6() {\n var _this$state6, designSpecId, partNumber, revisionLevel, customerPartNumbers, billOfMaterials, basicInformation, body, configs;\n\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n //IF USING LOCAL HOST INSTEAD\n alert(\"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 designSpecId: parseInt(_this.props.match.params.designSpecId),\n partNumber: parseInt(_this.props.match.params.partNumber),\n revisionLevel: _this.state.revisionLevel,\n // Main card\n partCodeName: _this.state.partCodeName,\n partNumberDescription: _this.state.partNumberDescription,\n statusName: _this.state.statusName,\n partNumberComments: _this.state.partNumberComments,\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 makeFrom: _this.state.makeFrom,\n sameAs: _this.state.sameAs,\n except: _this.state.except,\n voltage: _this.state.voltage,\n rotation: _this.state.rotation,\n terminalPosition: _this.state.terminalPosition,\n drive: _this.state.drive,\n pinion: _this.state.pinion,\n pitch: _this.state.pitch,\n switch: _this.state.switch,\n switchPosition: _this.state.switchPosition,\n ho: _this.state.ho,\n sae: _this.state.sae,\n mtgH: _this.state.mtgH,\n ftf: _this.state.ftf,\n opening: _this.state.opening,\n treatment: _this.state.treatment,\n curve: _this.state.curve,\n remarks: _this.state.remarks,\n jsp: _this.state.jsp,\n plrv: _this.state.plrv,\n bracket: _this.state.bracket,\n rtv: _this.state.rtv,\n suctionPort: _this.state.suctionPort,\n pressurePort: _this.state.pressurePort,\n suctionFitting: _this.state.suctionFitting,\n pressureFitting: _this.state.pressureFitting,\n gasket: _this.state.gasket,\n box: _this.state.box,\n workInstructions: _this.state.workInstructions,\n //Tag Information\n tagNumber: _this.state.tagNumber,\n partDescription: _this.state.partDescription,\n paperTag: _this.state.paperTag,\n otherTag: _this.state.otherTag,\n partNo: _this.state.partNo,\n ref: _this.state.ref,\n // Approvals 1\n reasonForChange: _this.state.reasonForChange,\n signed: _this.state.signed,\n createDate: _this.state.createDate,\n // Approval 2\n validationOfChange: _this.state.validationOfChange,\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.bomsForInsert\n };\n configs = {\n headers: {\n 'Content-Type': 'application/json'\n }\n };\n\n if (!(designSpecId == \"new\")) {\n _context6.next = 14;\n break;\n }\n\n body.basicInformation.partNumber = 0;\n body.basicInformation.revisionLevel = 0;\n _context6.next = 12;\n return axios.post('/api/partnumber/motor/new', body, configs).then(function (res) {\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/motor/form/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel);\n }).catch(function (err) {\n return alert(err);\n });\n\n case 12:\n _context6.next = 16;\n break;\n\n case 14:\n _context6.next = 16;\n return axios.put(\"/api/designspec/motor/updatespec/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel), body, configs).then(function (res) {\n console.log(res.data.items);\n var _res$data$items = res.data.items,\n dspecID = _res$data$items.dspecID,\n partNumber = _res$data$items.partNumber,\n revision = _res$data$items.revision;\n location.href = \"/dspecs/motor/form/\".concat(dspecID, \"/\").concat(partNumber, \"/\").concat(revision);\n }).catch(function (err) {\n console.error(err);\n alert(err);\n });\n\n case 16:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\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.state = {\n isLoading: true,\n formStatus: 'read',\n reviewRequired: false,\n designSpecId: _this.props.match.params.designSpecId,\n partNumber: parseInt(_this.props.match.params.partNumber),\n revisionLevel: parseInt(_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\",\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 // Main card\n partCodeName: '',\n partNumberDescription: '',\n statusName: '',\n partNumberComments: '',\n customerName: '',\n primaryCustomerPartNumber: '',\n primaryVendorName: '',\n primaryVendorPartNumber: '',\n secondaryVendorName: '',\n secondaryVendorPartNumber: '',\n // Additional Details\n oeReman: '',\n basicClass: '',\n makeFrom: '',\n sameAs: undefined,\n except: '',\n voltage: '',\n rotation: '',\n terminalPosition: '',\n drive: '',\n pinion: '',\n pitch: '',\n switch: '',\n switchPosition: '',\n ho: '',\n sae: '',\n mtgH: '',\n ftf: '',\n opening: '',\n treatment: '',\n curve: '',\n remarks: '',\n jsp: false,\n plrv: false,\n bracket: '',\n rtv: false,\n suctionPort: '',\n pressurePort: '',\n suctionFitting: '',\n pressureFitting: '',\n gasket: '',\n box: '',\n workInstructions: '',\n //Tag Information\n tagNumber: '',\n partDescription: '',\n paperTag: '',\n otherTag: '',\n partNo: '',\n ref: '',\n // Approvals 1\n reasonForChange: '',\n signed: '',\n createDate: undefined,\n // Approval 2\n validationOfChange: '',\n approved: '',\n approveDate: undefined,\n customerNameListForDropdown: [],\n vendorNameListForDropdown: [],\n partCodeNameListforDropdown: []\n };\n return _this;\n }\n\n _createClass(MotorECOForm, [{\n key: \"componentDidMount\",\n value: function () {\n var _componentDidMount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7() {\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 _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n console.clear();\n _this$state7 = this.state, designSpecId = _this$state7.designSpecId, partNumber = _this$state7.partNumber, revisionLevel = _this$state7.revisionLevel;\n // Dropdownlist content\n AllCustomerList = [];\n AllVendorsList = [];\n PartCodeList = [];\n\n if (!(designSpecId !== 'new')) {\n _context7.next = 12;\n break;\n }\n\n _context7.next = 8;\n return axios.get(\"/api/designspec/motor/basicinformation/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel)).then(function (res) {\n BasicInformation = res.data.items.records[0];\n console.log(BasicInformation);\n }).catch(function (err) {\n return console.error(err);\n });\n\n case 8:\n _context7.next = 10;\n return axios.get(\"/api/designspec/motor/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 } // let setOfCommonCustomers: any[] = this.state.customerPartNumbers.map(cust => cust.Name)\n // if (!setOfCommonCustomers.includes(custName)) {\n // jsPartNumbers[7].CustomerPartNumber = partNumber;\n // }\n\n });\n }).catch(function (err) {\n return console.error(err);\n });\n\n case 10:\n _context7.next = 12;\n return axios.get(\"/api/designspec/motor/billofmaterials/\".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\n [{\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 }).catch(function (err) {\n return console.error(err);\n });\n\n case 12:\n _context7.next = 14;\n return axios.get(\"/api/customer\");\n\n case 14:\n custRes = _context7.sent;\n custCt = custRes.data.items.paging.records.length;\n _context7.next = 18;\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 18:\n _context7.next = 20;\n return axios.get(\"/api/vendor\");\n\n case 20:\n vendorRes = _context7.sent;\n vendorCt = vendorRes.data.items.paging.records.length;\n _context7.next = 24;\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 24:\n _context7.next = 26;\n return axios.get(\"/api/partcode\");\n\n case 26:\n partCodeRes = _context7.sent;\n partCodeCt = partCodeRes.data.items.paging.records.length;\n _context7.next = 30;\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 30:\n initialformStatus = \"read\";\n initFormDisabled = true;\n\n if (designSpecId == \"new\") {\n initFormDisabled = false;\n initialformStatus = \"edit\";\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 boms: BillOfMaterials,\n bomsForDelete: [],\n customerPartNumbers: jsPartNumbers || emptyCustomerPartNumbers,\n formStatus: initialformStatus,\n formDisabled: initFormDisabled,\n // Main card\n partCodeName: BasicInformation ? BasicInformation.partCodeName : '',\n partNumberDescription: BasicInformation ? BasicInformation.partNumberDescription : '',\n statusName: BasicInformation ? BasicInformation.statusName : '',\n partNumberComments: BasicInformation ? BasicInformation.partNumberComments : '',\n customerName: BasicInformation ? BasicInformation.customerName : '',\n primaryCustomerPartNumber: BasicInformation ? BasicInformation.primaryCustomerPartNumber : '',\n primaryVendorName: BasicInformation ? BasicInformation.primaryVendorName : '',\n primaryVendorPartNumber: BasicInformation ? BasicInformation.primaryVendorPartNumber : '',\n secondaryVendorName: BasicInformation ? BasicInformation.secondaryVendorName : '',\n secondaryVendorPartNumber: BasicInformation ? BasicInformation.secondaryVendorPartNumber : '',\n // Additional Details\n oeReman: BasicInformation ? BasicInformation.oeReman : '',\n basicClass: BasicInformation ? BasicInformation.basicClass : '',\n makeFrom: BasicInformation ? BasicInformation.makeFrom : '',\n sameAs: BasicInformation ? BasicInformation.sameAs : undefined,\n except: BasicInformation ? BasicInformation.except : '',\n voltage: BasicInformation ? BasicInformation.voltage : '',\n rotation: BasicInformation ? BasicInformation.rotation : '',\n terminalPosition: BasicInformation ? BasicInformation.terminalPosition : '',\n drive: BasicInformation ? BasicInformation.drive : '',\n pinion: BasicInformation ? BasicInformation.pinion : '',\n pitch: BasicInformation ? BasicInformation.pitch : '',\n switch: BasicInformation ? BasicInformation.switch : '',\n switchPosition: BasicInformation ? BasicInformation.switchPosition : '',\n ho: BasicInformation ? BasicInformation.ho : '',\n sae: BasicInformation ? BasicInformation.sae : '',\n mtgH: BasicInformation ? BasicInformation.mtgH : '',\n ftf: BasicInformation ? BasicInformation.ftf : '',\n opening: BasicInformation ? BasicInformation.opening : '',\n treatment: BasicInformation ? BasicInformation.treatment : '',\n curve: BasicInformation ? BasicInformation.curve : '',\n remarks: BasicInformation ? BasicInformation.remarks : '',\n jsp: BasicInformation ? BasicInformation.jsp : false,\n plrv: BasicInformation ? BasicInformation.plrv : false,\n bracket: BasicInformation ? BasicInformation.bracket : '',\n rtv: BasicInformation ? BasicInformation.rtv : false,\n pressurePort: BasicInformation ? BasicInformation.pressurePort : '',\n suctionPort: BasicInformation ? BasicInformation.suctionPort : '',\n pressureFitting: BasicInformation ? BasicInformation.pressureFitting : '',\n suctionFitting: BasicInformation ? BasicInformation.suctionFitting : '',\n gasket: BasicInformation ? BasicInformation.gasket : '',\n box: BasicInformation ? BasicInformation.box : '',\n workInstructions: BasicInformation ? BasicInformation.workInstructions : '',\n //Tag Information\n tagNumber: BasicInformation ? BasicInformation.tagNumber : '',\n partDescription: BasicInformation ? BasicInformation.partDescription : '',\n paperTag: BasicInformation ? BasicInformation.paperTag : '',\n otherTag: BasicInformation ? BasicInformation.otherTag : '',\n partNo: BasicInformation ? BasicInformation.partNo : '',\n ref: BasicInformation ? BasicInformation.ref : '',\n // Approvals 1\n reasonForChange: BasicInformation ? BasicInformation.reasonForChange : '',\n validationOfChange: BasicInformation ? BasicInformation.validationOfChange : '',\n // Approval 2\n signed: BasicInformation ? BasicInformation.signed : '',\n createDate: BasicInformation ? BasicInformation.createDate : null,\n approved: BasicInformation ? BasicInformation.approved : '',\n approveDate: BasicInformation ? BasicInformation.approveDate : null,\n customerNameListForDropdown: AllCustomerList,\n vendorNameListForDropdown: AllVendorsList,\n partCodeNameListforDropdown: PartCodeList\n }));\n\n case 37:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7, this);\n }));\n\n function componentDidMount() {\n return _componentDidMount.apply(this, arguments);\n }\n\n return componentDidMount;\n }()\n }, {\n key: \"pdf\",\n value: function pdf() {\n var input = document.getElementById(\"pdfContent\");\n\n if (!input) {\n return;\n }\n\n html2canvas(input).then(function (canvas) {\n var imgData = canvas.toDataURL('image/png');\n var pdf = new jsPDF();\n pdf.addImage(imgData, 'PNG', 10, 10, 180, 325);\n pdf.save('download.pdf');\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$state8 = this.state,\n designSpecId = _this$state8.designSpecId,\n partNumber = _this$state8.partNumber,\n revisionLevel = _this$state8.revisionLevel,\n formDisabled = _this$state8.formDisabled,\n formStatus = _this$state8.formStatus;\n\n var _motorFormBuilder = motorFormBuilder(this.state),\n mainCard = _motorFormBuilder.mainCard,\n additionalDetails = _motorFormBuilder.additionalDetails,\n tagInformation = _motorFormBuilder.tagInformation,\n approvals1 = _motorFormBuilder.approvals1,\n approvals2 = _motorFormBuilder.approvals2;\n\n var formStatusAlert;\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: 724,\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: 728,\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: 731,\n columnNumber: 29\n }\n });\n }\n\n break;\n }\n\n var editButton;\n var testPrintButton = /*#__PURE__*/React.createElement(Button, {\n className: \"btn btn-primary heading-button\",\n onClick: this.pdf,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 736,\n columnNumber: 27\n }\n }, \"Print This Page(Debug Only)\");\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: 737,\n columnNumber: 18\n }\n }, PencilIcon, \" \\xA0 Edit\");\n return /*#__PURE__*/React.createElement(Container, {\n className: \"dashboard\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 745,\n columnNumber: 7\n }\n }, /*#__PURE__*/React.createElement(Row, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 746,\n columnNumber: 9\n }\n }, /*#__PURE__*/React.createElement(Col, {\n md: 8,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 747,\n columnNumber: 11\n }\n }, /*#__PURE__*/React.createElement(\"h3\", {\n className: \"page-title\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 748,\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: 748,\n columnNumber: 65\n }\n }), \" Motor \", /*#__PURE__*/React.createElement(\"span\", {\n className: \"lnr lnr-chevron-right\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 748,\n columnNumber: 120\n }\n }), \" \", this.state.partNumber)), /*#__PURE__*/React.createElement(Col, {\n md: 4,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 750,\n columnNumber: 11\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"text-right\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 751,\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: 753,\n columnNumber: 15\n }\n })))), /*#__PURE__*/React.createElement(Row, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 757,\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: 758,\n columnNumber: 11\n }\n }, formStatusAlert, /*#__PURE__*/React.createElement(Card, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 760,\n columnNumber: 13\n }\n }, /*#__PURE__*/React.createElement(CardHeader, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 761,\n columnNumber: 15\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"eco-heading\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 762,\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: 766,\n columnNumber: 25\n }\n }, \"PartNumber: \", /*#__PURE__*/React.createElement(\"b\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 766,\n columnNumber: 42\n }\n }, 'Will Populate on save')), /*#__PURE__*/React.createElement(\"div\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 767,\n columnNumber: 25\n }\n }, \"ERN: \", /*#__PURE__*/React.createElement(\"span\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 767,\n columnNumber: 35\n }\n }, 0)), /*#__PURE__*/React.createElement(\"div\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 768,\n columnNumber: 25\n }\n }, \"D-Spec ID: \", /*#__PURE__*/React.createElement(\"b\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 768,\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: 772,\n columnNumber: 25\n }\n }, \"RPM Part Number: \", /*#__PURE__*/React.createElement(\"b\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 772,\n columnNumber: 48\n }\n }, partNumber)), /*#__PURE__*/React.createElement(\"div\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 773,\n columnNumber: 25\n }\n }, \"ERN: \", /*#__PURE__*/React.createElement(\"span\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 773,\n columnNumber: 35\n }\n }, revisionLevel)), /*#__PURE__*/React.createElement(\"div\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 774,\n columnNumber: 25\n }\n }, \"D-Spec ID: \", /*#__PURE__*/React.createElement(\"span\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 774,\n columnNumber: 41\n }\n }, designSpecId))))), /*#__PURE__*/React.createElement(CardBody, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 779,\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' ? emptyMainCard : mainCard,\n formDisabled: this.state.formDisabled,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 780,\n columnNumber: 17\n }\n }))), /*#__PURE__*/React.createElement(Card, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 790,\n columnNumber: 13\n }\n }, /*#__PURE__*/React.createElement(CardHeader, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 793,\n columnNumber: 15\n }\n }, \"Additional Details\"), /*#__PURE__*/React.createElement(CardBody, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 794,\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: 795,\n columnNumber: 17\n }\n }), /*#__PURE__*/React.createElement(\"br\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 801,\n columnNumber: 19\n }\n }))), /*#__PURE__*/React.createElement(Card, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 806,\n columnNumber: 13\n }\n }, /*#__PURE__*/React.createElement(CardHeader, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 807,\n columnNumber: 15\n }\n }, \"Tag Information\"), /*#__PURE__*/React.createElement(CardBody, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 808,\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: 809,\n columnNumber: 17\n }\n }))), /*#__PURE__*/React.createElement(Card, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 819,\n columnNumber: 13\n }\n }, /*#__PURE__*/React.createElement(CardHeader, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 820,\n columnNumber: 15\n }\n }, \"Bill of Materials\"), /*#__PURE__*/React.createElement(CardBody, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 821,\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 handleBomChange: this.handleBomChange,\n tempBomData: this.state.partNumber === 'new' ? emptyBomData : this.state.tempBomAdditions,\n emptyBomRow: this.state.newRow,\n handleNewRowChange: this.handleNewRowChange,\n addNewBomRecord: this.addNewBomRecord,\n deleteBomItem: this.deleteBomItem,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 822,\n columnNumber: 17\n }\n }))), /*#__PURE__*/React.createElement(Card, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 838,\n columnNumber: 13\n }\n }, /*#__PURE__*/React.createElement(CardHeader, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 839,\n columnNumber: 15\n }\n }, \"Approvals\"), /*#__PURE__*/React.createElement(CardBody, {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 840,\n columnNumber: 15\n }\n }, /*#__PURE__*/React.createElement(FormRow, {\n handleChange: this.handleChange,\n formDirection: \"vertical\",\n formLayout: \"half\",\n formData: approvals1,\n formDisabled: formDisabled,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 841,\n columnNumber: 17\n }\n }), /*#__PURE__*/React.createElement(\"br\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 848,\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: 849,\n columnNumber: 17\n }\n }))), this.state.formStatus == 'edit' && /*#__PURE__*/React.createElement(SubmissionButtonsGroup, {\n discardChanges: this.discardChanges,\n saveECO: this.saveECO,\n submitForFAC: this.submitForFAC,\n submitForApproval: this.submitForApproval,\n toggleFACRequirement: this.toggleFACRequirement,\n reviewRequired: this.state.reviewRequired,\n changeFormStatus: this.changeStatus,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 860,\n columnNumber: 15\n }\n }))));\n }\n }]);\n\n return MotorECOForm;\n}(Component);\n\nvar NewRowComponent = /*#__PURE__*/function (_Component2) {\n _inherits(NewRowComponent, _Component2);\n\n function NewRowComponent(props) {\n _classCallCheck(this, NewRowComponent);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(NewRowComponent).call(this, props));\n }\n\n _createClass(NewRowComponent, [{\n key: \"render\",\n value: function render() {\n var InputControlsVisisble = this.props.visible;\n\n if (InputControlsVisisble) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"input\", {\n id: \"old\",\n type: \"text\",\n onChange: this.props.onChange,\n value: this.props.newRow.old,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 895,\n columnNumber: 11\n }\n }), /*#__PURE__*/React.createElement(\"input\", {\n id: \"new\",\n type: \"text\",\n onChange: this.props.onChange,\n value: this.props.newRow.new,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 896,\n columnNumber: 11\n }\n }), /*#__PURE__*/React.createElement(\"input\", {\n id: \"partNumber\",\n type: \"text\",\n onChange: this.props.onChange,\n value: this.props.newRow.partNumber,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 897,\n columnNumber: 11\n }\n }), /*#__PURE__*/React.createElement(\"input\", {\n id: \"partDescription\",\n type: \"text\",\n onChange: this.props.onChange,\n value: this.props.newRow.partDescription,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 898,\n columnNumber: 11\n }\n }), /*#__PURE__*/React.createElement(\"button\", {\n className: \"btn btn-primary\",\n onClick: this.props.submit,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 899,\n columnNumber: 11\n }\n }, \"Add Part\"));\n }\n\n return null;\n }\n }]);\n\n return NewRowComponent;\n}(Component);\n\nexport default MotorECOForm; // 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/Motor/MotorECO.tsx"],"names":["React","Component","Card","CardHeader","CardBody","Col","Container","Row","Button","FormRow","BOMTable","PrintButton","FACMessage","axios","html2canvas","jsPDF","SubmissionButtonsGroup","motorFormBuilder","emptyMainCard","emptyAdditionalDetails","emptyTagInformation","emptyBomData","ApprovalMessage","PencilIcon","ChevronRightIcon","MotorECOForm","props","approve","state","designSpecId","partNumber","revisionLevel","alert","put","then","res","location","href","catch","err","console","error","reject","approveFAC","submitForApproval","changeStatus","submitForFAC","userRes","confirm","defaultEmail","email","prompt","subject","msgBody","makeCopyForEdit","post","data","newDsId","newPn","newRev","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","Name","jsPartNumbers","includes","custName","findIndex","pn","CustomerPartNumber","toggleFACRequirement","flippedState","reviewRequired","saveECO","billOfMaterials","basicInformation","match","params","partCodeName","partNumberDescription","statusName","partNumberComments","customerName","primaryCustomerPartNumber","primaryVendorName","primaryVendorPartNumber","secondaryVendorName","secondaryVendorPartNumber","oeReman","basicClass","makeFrom","sameAs","except","voltage","rotation","terminalPosition","drive","pinion","pitch","switch","switchPosition","ho","sae","mtgH","ftf","opening","treatment","curve","remarks","jsp","plrv","bracket","rtv","suctionPort","pressurePort","suctionFitting","pressureFitting","gasket","box","workInstructions","tagNumber","partDescription","paperTag","otherTag","partNo","ref","reasonForChange","signed","createDate","validationOfChange","approved","approveDate","bomsForInsert","body","configs","headers","log","items","dspecID","revision","discardChanges","userResponse","info","window","reload","isLoading","undefined","customerNameListForDropdown","vendorNameListForDropdown","partCodeNameListforDropdown","clear","AllCustomerList","AllVendorsList","PartCodeList","get","BasicInformation","records","forEach","xcpn","customerPartNumber","BillOfMaterials","totalRecords","paging","length","recordsPerPage","page","getMore","custRes","custCt","customerData","sort","vendorRes","vendorCt","vendorData","partCodeRes","partCodeCt","initialformStatus","initFormDisabled","emptyCustomerPartNumbers","input","document","getElementById","canvas","imgData","toDataURL","pdf","addImage","save","mainCard","additionalDetails","tagInformation","approvals1","approvals2","formStatusAlert","editButton","testPrintButton","NewRowComponent","InputControlsVisisble","visible","onChange","old","new","submit"],"mappings":"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","sourcesContent":["import React, { PureComponent, Component } from \"react\";\nimport { Card, CardHeader, CardBody, Col, Container, Row, Button, ButtonToolbar } 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 axios from 'axios';\nimport html2canvas from 'html2canvas'\nimport jsPDF from 'jspdf';\n// interfaces\nimport {\n Bom,\n MotorBasicInformationDto,\n MotorCustomersPartNumberDto,\n MotorBillOfMaterialDto\n} from '../../../shared/interfaces/Index'\n//Mock Data\nimport { SubmissionButtonsGroup } from \"../../../shared/components/SubmissionButtonsGroup/SubmissionButtonsGroup\";\n\n// Builder\nimport { motorFormBuilder } from './motorFormBuilder'\n\nimport {\n emptyMainCard,\n emptyAdditionalDetails,\n emptyTagInformation,\n emptyBomData\n} from './EmptyMotorECOMDataFields'\nimport RevisionHistory from \"../../Queries/RevisionHistory\";\nimport { ApprovalMessage } from \"../../../shared/components/ApprovalMessage/ApprovalMessage\";\n\n//Set up Icons\nconst PencilIcon = <span className=\"lnr lnr-pencil\"></span>\nconst ChevronRightIcon = <span className=\"lnr lnr-chevron-right\"></span>\n\ninterface ECOFormProps {\n match: any,\n}\nexport interface MotorECOFormState extends MotorBasicInformationDto {\n formStatus: string,\n designSpecId: any,\n partNumber: any,\n revisionLevel: any,\n reviewRequired: boolean,\n formDisabled: boolean\n newRow: any,\n boms: any,\n tempBomAdditions: any,\n customerPartNumbers: MotorCustomersPartNumberDto[],\n customerNameListForDropdown: string[],\n vendorNameListForDropdown: string[],\n partCodeNameListforDropdown: string[],\n isLoading: boolean,\n}\n\nclass MotorECOForm extends Component<ECOFormProps, MotorECOFormState> {\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: parseInt(this.props.match.params.partNumber),\n revisionLevel: parseInt(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 // Main card\n partCodeName: '',\n partNumberDescription: '',\n statusName: '',\n partNumberComments: '',\n customerName: '',\n primaryCustomerPartNumber: '',\n primaryVendorName: '',\n primaryVendorPartNumber: '',\n secondaryVendorName: '',\n secondaryVendorPartNumber: '',\n // Additional Details\n oeReman: '',\n basicClass: '',\n makeFrom: '',\n sameAs: undefined,\n except: '',\n voltage: '',\n rotation: '',\n terminalPosition: '',\n drive: '',\n pinion: '',\n pitch: '',\n switch: '',\n switchPosition: '',\n ho: '',\n sae: '',\n mtgH: '',\n ftf: '',\n opening: '',\n treatment: '',\n curve: '',\n remarks: '',\n jsp: false,\n plrv: false,\n bracket: '',\n rtv: false,\n suctionPort: '',\n pressurePort: '',\n suctionFitting: '',\n pressureFitting: '',\n gasket: '',\n box: '',\n workInstructions: '',\n //Tag Information\n tagNumber: '',\n partDescription: '',\n paperTag: '',\n otherTag: '',\n partNo: '',\n ref: '',\n // Approvals 1\n reasonForChange: '',\n signed: '',\n createDate: undefined,\n // Approval 2\n validationOfChange: '',\n approved: '',\n approveDate: undefined,\n customerNameListForDropdown: [],\n vendorNameListForDropdown: [],\n partCodeNameListforDropdown: []\n };\n }\n\n async componentDidMount() {\n console.clear();\n let { designSpecId, partNumber, revisionLevel } = this.state;\n let BasicInformation: MotorBasicInformationDto | undefined;\n let CustomerPartNumbers: MotorCustomersPartNumberDto | undefined;\n let BillOfMaterials: MotorBillOfMaterialDto | undefined;\n let jsPartNumbers: any;\n\n // Dropdownlist content\n let AllCustomerList: string[] = []\n let AllVendorsList: string[] = []\n let PartCodeList: string[] = []\n\n\n if (designSpecId !== 'new') { // FetchData\n await axios.get(`/api/designspec/motor/basicinformation/${designSpecId}/${partNumber}/${revisionLevel}`)\n .then(res => {\n BasicInformation = res.data.items.records[0]\n\n console.log(BasicInformation)\n })\n .catch(err => console.error(err))\n await axios.get(`/api/designspec/motor/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: any) => pn.Name === custName)\n if (idx != -1) {\n jsPartNumbers[idx].CustomerPartNumber = partNumber\n }\n // let setOfCommonCustomers: any[] = this.state.customerPartNumbers.map(cust => cust.Name)\n // if (!setOfCommonCustomers.includes(custName)) {\n // jsPartNumbers[7].CustomerPartNumber = partNumber;\n // }\n })\n })\n .catch(err => console.error(err))\n await axios.get(`/api/designspec/motor/billofmaterials/${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 { 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 })\n .catch(err => console.error(err))\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 let initialformStatus = \"read\";\n let initFormDisabled: boolean = true;\n if (designSpecId == \"new\") {\n initFormDisabled = false;\n initialformStatus = \"edit\"\n }\n\n if (BasicInformation && BasicInformation.statusName == \"In Process\") {\n initialformStatus = \"edit\"\n initFormDisabled = false\n }\n if (BasicInformation\n && (BasicInformation.statusName == \"Submitted for FAC\"\n || BasicInformation.statusName == \"Submitted for Approval\")) {\n initialformStatus = \"review\"\n initFormDisabled = true;\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 boms: BillOfMaterials,\n bomsForDelete: [],\n customerPartNumbers: jsPartNumbers || emptyCustomerPartNumbers,\n formStatus: initialformStatus,\n formDisabled: initFormDisabled,\n\n // Main card\n partCodeName: BasicInformation ? BasicInformation.partCodeName : '',\n partNumberDescription: BasicInformation ? BasicInformation.partNumberDescription : '',\n statusName: BasicInformation ? BasicInformation.statusName : '',\n partNumberComments: BasicInformation ? BasicInformation.partNumberComments : '',\n customerName: BasicInformation ? BasicInformation.customerName : '',\n primaryCustomerPartNumber: BasicInformation ? BasicInformation.primaryCustomerPartNumber : '',\n primaryVendorName: BasicInformation ? BasicInformation.primaryVendorName : '',\n primaryVendorPartNumber: BasicInformation ? BasicInformation.primaryVendorPartNumber : '',\n secondaryVendorName: BasicInformation ? BasicInformation.secondaryVendorName : '',\n secondaryVendorPartNumber: BasicInformation ? BasicInformation.secondaryVendorPartNumber : '',\n // Additional Details\n oeReman: BasicInformation ? BasicInformation.oeReman : '',\n basicClass: BasicInformation ? BasicInformation.basicClass : '',\n makeFrom: BasicInformation ? BasicInformation.makeFrom : '',\n sameAs: BasicInformation ? BasicInformation.sameAs : undefined,\n except: BasicInformation ? BasicInformation.except : '',\n voltage: BasicInformation ? BasicInformation.voltage : '',\n rotation: BasicInformation ? BasicInformation.rotation : '',\n terminalPosition: BasicInformation ? BasicInformation.terminalPosition : '',\n drive: BasicInformation ? BasicInformation.drive : '',\n pinion: BasicInformation ? BasicInformation.pinion : '',\n pitch: BasicInformation ? BasicInformation.pitch : '',\n switch: BasicInformation ? BasicInformation.switch : '',\n switchPosition: BasicInformation ? BasicInformation.switchPosition : '',\n ho: BasicInformation ? BasicInformation.ho : '',\n sae: BasicInformation ? BasicInformation.sae : '',\n mtgH: BasicInformation ? BasicInformation.mtgH : '',\n ftf: BasicInformation ? BasicInformation.ftf : '',\n opening: BasicInformation ? BasicInformation.opening : '',\n treatment: BasicInformation ? BasicInformation.treatment : '',\n curve: BasicInformation ? BasicInformation.curve : '',\n remarks: BasicInformation ? BasicInformation.remarks : '',\n jsp: BasicInformation ? BasicInformation.jsp : false,\n plrv: BasicInformation ? BasicInformation.plrv : false,\n bracket: BasicInformation ? BasicInformation.bracket : '',\n rtv: BasicInformation ? BasicInformation.rtv : false,\n pressurePort: BasicInformation ? BasicInformation.pressurePort : '',\n suctionPort: BasicInformation ? BasicInformation.suctionPort : '',\n pressureFitting: BasicInformation ? BasicInformation.pressureFitting : '',\n suctionFitting: BasicInformation ? BasicInformation.suctionFitting : '',\n gasket: BasicInformation ? BasicInformation.gasket : '',\n box: BasicInformation ? BasicInformation.box : '',\n workInstructions: BasicInformation ? BasicInformation.workInstructions : '',\n //Tag Information\n tagNumber: BasicInformation ? BasicInformation.tagNumber : '',\n partDescription: BasicInformation ? BasicInformation.partDescription : '',\n paperTag: BasicInformation ? BasicInformation.paperTag : '',\n otherTag: BasicInformation ? BasicInformation.otherTag : '',\n partNo: BasicInformation ? BasicInformation.partNo : '',\n ref: BasicInformation ? BasicInformation.ref : '',\n // Approvals 1\n reasonForChange: BasicInformation ? BasicInformation.reasonForChange : '',\n validationOfChange: BasicInformation ? BasicInformation.validationOfChange : '',\n // Approval 2\n signed: BasicInformation ? BasicInformation.signed : '',\n createDate: BasicInformation ? BasicInformation.createDate : null,\n approved: BasicInformation ? BasicInformation.approved : '',\n approveDate: BasicInformation ? BasicInformation.approveDate : null,\n customerNameListForDropdown: AllCustomerList,\n vendorNameListForDropdown: AllVendorsList,\n partCodeNameListforDropdown: PartCodeList\n })\n }\n pdf() {\n const input = document.getElementById(\"pdfContent\")\n if (!input) {\n return;\n }\n html2canvas(input)\n .then((canvas) => {\n const imgData = canvas.toDataURL('image/png');\n const pdf = new jsPDF();\n pdf.addImage(imgData, 'PNG', 10, 10, 180, 325);\n pdf.save('download.pdf')\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/motor/form/${designSpecId}/${partNumber}/${revisionLevel}`\n })\n .catch(err => console.error(err))\n }\n reject = async () => {\n const { designSpecId, partNumber, revisionLevel } = this.state;\n await axios.put(`/api/designspec/changeStatus/${designSpecId}/${partNumber}/${revisionLevel}/In%20Process`)\n .then(res => {\n alert(`This has not been approved`)\n location.href = `/dspecs/motor/form/${designSpecId}/${partNumber}/${revisionLevel}`\n })\n .catch(err => console.error(err))\n }\n approveFAC = () => {\n this.submitForApproval();\n }\n\n submitForApproval = async () => {\n alert(\"Submitting this DSpec, Marking it as 'Submitted For Approval'\")\n const { designSpecId, partNumber, revisionLevel } = this.state;\n\n await axios.put(`/api/designspec/changeStatus/${designSpecId}/${partNumber}/${revisionLevel}/Submitted%20for%20Approval`)\n .then(res => {\n // 'Will need to call a service here.'\n // location.href = \"mailto:\" + defaultEmail + '?&subject=' + subject + '&body=' + body;\n location.href = `/dspecs/motor/form/${designSpecId}/${partNumber}/${revisionLevel}`\n })\n .catch(err => {\n console.error(err)\n alert(err)\n })\n this.changeStatus('read');\n }\n\n submitForFAC = async () => {\n const userRes = confirm(\"Do you want to send this for First Article Check?\")\n const { designSpecId, partNumber, revisionLevel } = this.state;\n // Submit email to user\n let email;\n let subject;\n let msgBody;\n let defaultEmail;\n if (userRes) {\n // Make Network Req\n alert(\"submitting this Dspec, Marking it as 'Submitted for FAC'\")\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 location.href = `/dspecs/motor/form/${designSpecId}/${partNumber}/${revisionLevel}`\n })\n .catch(err => {\n console.error(err)\n alert(err)\n })\n }\n }\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/motor/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\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 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\n if (type === 'temp') {\n let remainingboms = this.state.tempBomAdditions.filter((_: any, idx: number) => idx !== parseInt(delIdx))\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\n let idx = jsPartNumbers.findIndex((pn: any) => 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\n saveECO = async () => {\n //IF USING LOCAL HOST INSTEAD\n\n alert(\"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: MotorCustomersPartNumberDto[];\n let billOfMaterials: MotorBillOfMaterialDto[];\n let basicInformation: MotorBasicInformationDto;\n\n billOfMaterials = this.state.boms;\n customerPartNumbers = this.state.customerPartNumbers;\n basicInformation = {\n designSpecId: parseInt(this.props.match.params.designSpecId),\n partNumber: parseInt(this.props.match.params.partNumber),\n revisionLevel: this.state.revisionLevel,\n // Main card\n partCodeName: this.state.partCodeName,\n partNumberDescription: this.state.partNumberDescription,\n statusName: this.state.statusName,\n partNumberComments: this.state.partNumberComments,\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 makeFrom: this.state.makeFrom,\n sameAs: this.state.sameAs,\n except: this.state.except,\n voltage: this.state.voltage,\n rotation: this.state.rotation,\n terminalPosition: this.state.terminalPosition,\n drive: this.state.drive,\n pinion: this.state.pinion,\n pitch: this.state.pitch,\n switch: this.state.switch,\n switchPosition: this.state.switchPosition,\n ho: this.state.ho,\n sae: this.state.sae,\n mtgH: this.state.mtgH,\n ftf: this.state.ftf,\n opening: this.state.opening,\n treatment: this.state.treatment,\n curve: this.state.curve,\n remarks: this.state.remarks,\n jsp: this.state.jsp,\n plrv: this.state.plrv,\n bracket: this.state.bracket,\n rtv: this.state.rtv,\n suctionPort: this.state.suctionPort,\n pressurePort: this.state.pressurePort,\n suctionFitting: this.state.suctionFitting,\n pressureFitting: this.state.pressureFitting,\n gasket: this.state.gasket,\n box: this.state.box,\n workInstructions: this.state.workInstructions,\n //Tag Information\n tagNumber: this.state.tagNumber,\n partDescription: this.state.partDescription,\n paperTag: this.state.paperTag,\n otherTag: this.state.otherTag,\n partNo: this.state.partNo,\n ref: this.state.ref,\n // Approvals 1\n reasonForChange: this.state.reasonForChange,\n signed: this.state.signed,\n createDate: this.state.createDate,\n // Approval 2\n validationOfChange: this.state.validationOfChange,\n approved: this.state.approved,\n approveDate: this.state.approveDate,\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.bomsForInsert\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/motor/new', body, configs)\n .then(res => {\n const { designSpecId, partNumber, revisionLevel } = res.data\n location.href = `/dspecs/motor/form/${designSpecId}/${partNumber}/${revisionLevel}`\n })\n .catch(err => alert(err))\n } else {\n await axios.put(`/api/designspec/motor/updatespec/${designSpecId}/${partNumber}/${revisionLevel}`, body, configs)\n .then(res => {\n console.log(res.data.items);\n const { dspecID, partNumber, revision } = res.data.items;\n location.href = `/dspecs/motor/form/${dspecID}/${partNumber}/${revision}`\n })\n .catch(err => {\n console.error(err)\n alert(err)\n })\n }\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\n\n render() {\n const { designSpecId, partNumber, revisionLevel, formDisabled, formStatus } = this.state;\n const {\n mainCard,\n additionalDetails,\n tagInformation,\n approvals1,\n approvals2\n } = motorFormBuilder(this.state)\n let formStatusAlert;\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 let editButton;\n let testPrintButton = <Button className=\"btn btn-primary heading-button\" onClick={this.pdf}>Print This Page(Debug Only)</Button>\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 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> Motor <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 dsId={this.state.designSpecId} pn={this.state.partNumber} rev={this.state.revisionLevel} />\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\n handleChange={this.handleChange}\n formDirection=\"horizontal\"\n formLayout=\"third\" formData={this.state.partNumber === 'new' ? emptyMainCard : mainCard}\n formDisabled={this.state.formDisabled}\n />\n </CardBody>\n\n </Card>\n <Card>\n\n\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 </CardBody>\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 handleBomChange={this.handleBomChange}\n tempBomData={this.state.partNumber === 'new' ? emptyBomData : this.state.tempBomAdditions}\n emptyBomRow={this.state.newRow}\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={approvals1}\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 saveECO={this.saveECO}\n submitForFAC={this.submitForFAC}\n submitForApproval={this.submitForApproval}\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}\nclass NewRowComponent extends Component<NewRowProps, NewRowState> {\n constructor(props: any) {\n super(props)\n }\n\n render() {\n let InputControlsVisisble = this.props.visible;\n if (InputControlsVisisble) {\n return (\n <>\n <input id=\"old\" type=\"text\" onChange={this.props.onChange} value={this.props.newRow.old}></input>\n <input id=\"new\" type=\"text\" onChange={this.props.onChange} value={this.props.newRow.new}></input>\n <input id=\"partNumber\" type=\"text\" onChange={this.props.onChange} value={this.props.newRow.partNumber}></input>\n <input id=\"partDescription\" type=\"text\" onChange={this.props.onChange} value={this.props.newRow.partDescription}></input>\n <button\n className=\"btn btn-primary\"\n onClick={this.props.submit}\n >Add Part</button>\n </>\n )\n }\n return null;\n\n }\n\n}\nexport default MotorECOForm;\n\n// export default reduxForm({\n // form: \"vertical_form_layout_half\" // a unique identifier for this form\n // })(VerticalFormHalf);\n"]},"metadata":{},"sourceType":"module"}