{"version":3,"sources":["models/User.js","assets/images/information.png","assets/images/R3-chat-support-icon.png","assets/images/icon_chart.png","assets/images/icon_grid.png","assets/images/downloadbutton.gif","_services/apiUrl.js","_services/applicationConstant.js","Utils.js","_helpers/auth-header.js","_services/authentication.services.js","components/ESSModal.jsx","components/Login.jsx","components/CustomerFooter.jsx","components/CustomerList.jsx","_services/customerList.service.js","components/EmployeeList.jsx","_services/employeeList.service.js","components/NavigationSelfService.jsx","components/CustomerContact.jsx","components/HeaderSelfService.jsx","modules/Home.jsx","_services/inventory.service.js","modules/Inventory/InventoryFilter.jsx","components/ExportInventoryReport.jsx","components/ESSProgressBar.jsx","modules/Inventory/Inventory.jsx","_services/accountsPayable.service.js","modules/AccountsPayable/ARBucketGrid.jsx","modules/AccountsPayable/AccountPayableFilter.jsx","modules/AccountsPayable/ARBucketChart.jsx","_services/orderDetails.service.js","_services/displayOrder.service.js","modules/DisplayOrders/UPSTrackingInfo.jsx","modules/DisplayOrders/UPSTrackingInitialScreen.jsx","modules/DisplayOrders/UPSTrackingNumbersCard.jsx","components/ESSLoadingModal.jsx","modules/DisplayOrders/OrderDetails.jsx","modules/AccountsPayable/AccountsPayable.jsx","modules/PriceList/PriceListFilter.jsx","_services/priceList.service.js","components/ExportPriceListReport.jsx","modules/PriceList/PriceList.jsx","modules/CustomerListMenu.jsx","components/Checkbox.jsx","_services/consolidatedInventory.service.js","modules/ConsolidatedInventory/ReportColumns.jsx","modules/ConsolidatedInventory/DataColumns.jsx","modules/ConsolidatedInventory/CICustomer.jsx","modules/ConsolidatedInventory/CIVendors.jsx","modules/ConsolidatedInventory/CIItemRange.jsx","modules/ConsolidatedInventory/CIItemEntry.jsx","modules/ConsolidatedInventory/TabFilters.jsx","modules/ConsolidatedInventory/CIFiler.jsx","modules/ConsolidatedInventory/ConsolidatedInventory.jsx","components/NavigationBar.jsx","modules/CustomPrice/CustomPriceFilter.jsx","components/HeaderBunzl.jsx","components/contactCC.jsx","_services/customPriceService.js","modules/CustomPrice/CustomPrice.jsx","modules/DisplayOrders/DisplayOrderFilter.jsx","modules/DisplayOrders/DisplayOrder.jsx","modules/Purchasing/PurchasingFilter.jsx","modules/Purchasing/PurchasingChart.jsx","_services/purchasing.service.js","modules/Purchasing/PurchasingDetail.jsx","modules/Purchasing/Purchasing.jsx","_services/purchasingAnalysis.service.js","modules/PurchasingAnalysis/ReportColumns.jsx","modules/PurchasingAnalysis/DataColumns.jsx","modules/PurchasingAnalysis/PACustomers.jsx","modules/PurchasingAnalysis/PAVendors.jsx","modules/PurchasingAnalysis/PAItemRange.jsx","modules/PurchasingAnalysis/PAItemEntry.jsx","modules/PurchasingAnalysis/PAshipTos.jsx","modules/PurchasingAnalysis/TabFilters.jsx","modules/PurchasingAnalysis/PAFilter.jsx","modules/PurchasingAnalysis/PurchasingAnalysis.jsx","modules/ChangePassword.jsx","_services/changePassword.service.js","modules/EmployeeListFromMenu.jsx","_services/routeConfiguration.js","App.jsx","serviceWorker.js","index.jsx","assets/images/openfolder.gif","assets/images/bunzl-logo.gif","assets/images/r3-logo.gif","assets/images/onlinechat.gif","assets/images/DownloadAll.png","assets/images/downloadSpinner.gif","assets/images/magGlass.jpg","assets/images/ups.jpg","assets/images/FedEx.gif","assets/images/R3_chat.jpg","assets/images/bunzl-splash.jpg","assets/images/r3-splash.jpg"],"names":["invalidValue","typ","val","Error","JSON","stringify","jsonToJSProps","undefined","jsonToJS","map","props","forEach","p","json","key","js","jsToJSONProps","jsToJSON","transform","getProps","ref","typeMap","Array","isArray","cases","indexOf","transformEnum","hasOwnProperty","typs","l","length","i","_","transformUnion","unionMembers","el","transformArray","arrayItems","additional","result","Object","getOwnPropertyNames","prop","v","prototype","call","transformObject","Date","d","isNaN","valueOf","transformDate","transformPrimitive","u","r","name","module","exports","value","parse","encryptData","data","salt","CryptoJS","AES","encrypt","toString","decryptData","ciphertext","bytes","decrypt","enc","Utf8","err","fromLogin","checkJWTTokenExpiry","jwtTokenExp","localStorage","getItem","process","SALT","originalData","currentDate","toUTCString","jwtDate","diffMs","diffMins","Math","floor","clear","encodedURL","url","console","log","encodeURIComponent","authHeader","window","location","Authorization","authenticationService","domain","this","api","fetch","bind","login","proxy","method","headers","then","response","setItem","Info","CustomerName","username","password","companynumber","logintype","ssoFlag","userobject","appConstants","token","btoa","res","setToken","JWTToken","setMenu","setCompany","setCustomer","setUserName","setSSOFlag","setIdentityKey","IdentityKey","setLoginTypeCode","setIsAuthenticated","setExpirationSpan","JWTExpiration","Promise","resolve","requestOptions","body","handleResponse","user","formData","FormData","append","getToken","isTokenExpired","exp","now","toUpperCase","substring","idToken","encryptedData","expirationSpan","identityKey","loginTypeCode","flag","removeItem","options","loggedIn","_checkStatus","status","error","statusText","ESSModal","Modal","size","aria-labelledby","centered","show","onHide","handleClose","Body","style","paddingBottom","isContentMessage","whiteSpace","fontWeight","userMessage","Footer","display","justifyContent","border","isAlert","variant","marginRight","width","borderColor","onClick","handle2ndButtonClick","btn2Text","btn1Text","Component","Login","myChangeHandler","event","nam","target","state","txtCompanyNumber","setState","showCompanyField","maxLengthCheck","object","maxLength","slice","showLoginBox","cancleLogin","txtPassword","txtUserName","version","require","Auth","submit","href","search","params","URLSearchParams","sharedsecret","get","loginType","customer","userId","compnayNumber","includes","history","push","pathname","Headers","document","getElementById","setSessionStateFunc","catch","info","e","preventDefault","loginSubmit","Message","getCustomerLocation","getCustomerAddress","id","height","className","onSubmit","title","src","r3Logo","alt","bunzlLogo","infologo","toLocaleString","for","onChange","type","evt","placeholder","disabled","inputVal","getFullYear","color","withRouter","CustomerFooter","logout","companyNumber","customerNumber","address","toggle","data-toggle","data-target","aria-expanded","aria-controls","CustomerList","onGridReady","gridApi","gridColumnApi","columnApi","getCustomerList","rowData","onRowDoubleClicked","navigate","onSelectionChanged","selectedRows","getSelectedRows","Company","CustomerNumber","ShipTo","reload","onPreviousClick","fromMenu","inventoryList","columnDefs","headerName","tooltip","field","cellStyle","textAlign","borderRight","resizable","sortable","headerClass","renderGrid","paddingTop","paddingLeft","alignContent","enableCellTextSelection","rowHeight","headerHeight","rowSelection","rowClassRules","tooltipShowDelay","marginLeft","marginBottom","margin","borderTop","EmployeeList","empLoginID","getEmployeeList","EmployeeId","Region","NavigationSelfService","isOpen","menuClass","toUser","class","CanViewAR","CanViewInventory","CanViewOrders","CanViewCustomerPrices","CanViewSales","CanViewSalesAnalysis","CanViewPriceList","role","aria-haspopup","CutomerContact","HeaderSelfService","companycode","isR3App","CustomerContact","float","onlineR3Chat","HomePage","backgroundColor","r3splash","bunzlsplash","getSearchTypes","isR3","searchTypes","label","currencyFormatter","currencyValue","parseFloat","toFixed","replace","getPackDescription","desc","getFilteredData","visiblePropList","filteredData","item","filterObject","CustomerPartNumber","DistributorPartnumber","Warehouse","StockNonstock","PartDescription","PartDescription2","CasePack","PackDesc","Price","QuantityOnHand","TotalProductValueOnHand","QuantityOnOrder","ScheduledDate","split","DaysOnHand","VendorDaysLeadTime","MaximumOrderQty","getVendors","jwtToken","InventoryFilter","onQualifierChange","qualifier","resetFilter","selectedType","selectedVendor","searchText","pageCount","searchClicked","doSearch","pageNumbers","vendors","enabled","checked","vendorId","vendorName","page","ExportReport","fetchData","showbutton","trim","getExportColumns","exportHeaders","getExportColumnsHeaders","setTimeout","csvLink","current","link","click","React","createRef","exportColumnsList","CanViewInventoryPrices","QuantityOnHandViewPermission","QuantityOnOrderViewPermission","CanViewInventoryDaysOnHand","MinMaxQuantityViewPermission","position","downloadAll","downloadSpinner","filename","ESSProgressBar","padding","aria-valuenow","aria-valuemin","aria-valuemax","Inventory","selectedsearchText","selectedvendor","selectedsearchType","selectedpageCount","selectedqualifier","vendor","searchType","urlparam","getInventoryData","sizeColumnsToFit","valueFormatter","inventoryDescription","hide","cellRenderer","dateFormatter","minMaxOrderQnty","downloadbutton","footerHeight","node","MinimumOrderQty","param","getArBucketItems","getFilteredARData","DaysOld","Name","CurrentBalance","Balance","NoOfInvoice","Invcount","getFilteredAPData","input","Invoice","ReferenceNumber","InvoiceDate","PO","PoNumber","Order","OrderNumber","Days","Customer","SoldCustomer","SoldShipTo","Address","City","OriginalBalance","OriginalAmount","getShipTo","canViewAllShipTos","shipTo","getAPData","fromDate","toDate","bucket","showInvoice","from","ARBucket","rowSelected","Bucket","colHeaders","comparator","compare","sort","a","b","number1","number2","AccountPayableFilter","clearBucketSelection","selectedpurchaseOrder","selectedShipTo","selecteddaysOld","selectedStatus","fromdate","selectedfromDate","selectedtoDate","HideClicked","element","ele","classList","remove","add","searchFilterClick","UpdateDaysSelected","bucketSelected","purchaseOrder","daysOld","Status","enableShipTo","userName","shipToID","shipTOData","filter","shipToNumber","ViewAllShipTos","alert","getFormattedDate","noShipTos","handleFromChange","handleChange","option","mgglass","date","dt","getMonth","getDate","ARBucketChart","Data","barChartOptions","responsive","maintainAspectRatio","ind","_index","datasets","bucketId","scales","xAxes","barPercentage","gridLines","yAxes","ticks","beginAtZero","x","Bucketid","labels","getDetailData","ItemNumber","partNumber","Stk","stockNonStock","MfgPartNumber","manufacturerPartNumber","ItemDescription","partDescription","additionalPartDescription","OrderQty","quantityOrdered","ReservedShipQty","reservedShipQuantity","UnitPrice","unitPrice","Weight","extendedWeight","Cubes","extendedCube","QtyOnHand","quantityOnHand","quantityOnOrder","EstimatedDeliveryDate","dateScheduled","getUPSResponse","inquiryNumberField","isfedx","UPSTrackingInfo","rowclicked","TrackNumber","weight","trackinginofnumber","selectTrackingNumber","description","upsTrackingNumber","isFedex","weightField","trackingNumber","borderBottom","trackData","selectionChange","UPSTrackingInitialScreen","config","descriptionField","valueField","UPSTrackingNumberCard","selectedUPSTrackingNumber","TrackingNumber","showUPSInfo","isfedex","defaultColDef","flex","minWidth","orderNumber","orderSequenceNumber","showFEDEX","getFEDXTrackingNumber","getUPSTrackingNumber","newordernumber","orderSeqNumber","loadUPSTrackingGrid","ESSLoadingModal","alignSelf","aria-hidden","OrderDetails","handleInvoiceClick","showLoading","pdfWindow","open","innerHTML","custno","String","padStart","selectedInvoice","blob","file","Blob","fileURL","URL","createObjectURL","close","handleUPSlick","handleFDXClick","displayOrderNumber","orderDescription","exportData","orderStatus","customerAddress1","customerAddress2","customerCity","customerState","customerZipCode","customerCountry","shipToAddress1","shipToAddress2","shipToCity","shipToState","shipToZipCode","shipToCountry","shipViaName","customerName","proNumber","shipVia","showUPSDisplay","showOD","selectedUPS","selectedUPSSeq","selectgedUPSSeqString","selectedLocation","orderComment1","orderComment2","order","orderSeq","loginid","sellingloc","referenceNumber","orderFormater","selectedOrder","selectedOrderSeq","companyNum","getOrderDetailsTop","shipToName","selectedPO","showups","ups","cursor","fedex","fontSize","UPSTrackingNumbersCard","showUPS","AccountsPayable","selectedselectedShipTo","showProgressBar","accountsPayableList","APFilterRef","apSummaryClick","apDetailsClick","Location","handlePOClick","_isMounted","sortingOrder","fn_DateCompare","invoiceDateFormatter","cellRendererFramework","rowDragManaged","DateA","DateB","msDateA","UTC","msDateB","PriceListFilter","itemNumber","vendorPart","customerPartNumber","flyerPage","sellCase","sellUms","sellPrice","listPrice","pendPrice","effectiveDate","directValue","inputDate","ExportPriceListReport","priceList","PriceList","getPriceListData","showLoadingOverlay","currencyFormatterPending","editable","CustomerListMenu","CheckBox","handleCheckChieldElement","isChecked","CustomerPart","customerPart","Description","QuantityAvailable","avl","ProductValueAvailable","qoo","AvailableOnOrder","avloo","casePack","PackDescption","packDescption","locationAbbr","StockNonStockItem","stockNo","PalletQty","Pallet","EstimatedDeliveryDatetoDistributorWarehouse","poDate","CurrentPrice","prc","VendorPart","VendorNumber","vendorNumber","VendorName","getReportColumns","reportColumns","code","getDataColumns","dataColumns","getCustomerVendorsList","ReportColumns","report","clearSelection","listStyleType","DataColumns","CICustomer","deselectAll","setFilterModel","setSelectedItems","forEachNode","selectedCustomers","CustNumber","setSelected","clearInterval","watcher","selectedRowsString","selectedRow","index","handleCustomerSelection","httpRequest","XMLHttpRequest","setInterval","send","filterchange","hardcodedFilter","CUSTID","onFilterChanged","paddingRight","handleCheckCICustomers","isAllCustomers","CIVendors","selectedVendors","handleVendorSelection","handleCheckCIVendors","isAllVendors","CIItemRange","fromItem","toItem","itemFromChange","onItemFromChange","itemToChange","onItemToChange","CIItemEntry","inputList","selectedItemEntries","itemTypeChange","handleInputChange","list","handleEnterTab","itemvalue","cancelItems","prevState","onItemEntryTypeChange","maxHeight","scrollBehavior","contain","overflowY","onKeyDown","onBlur","onFocus","TabFilters","selectedItemEntryType","ItemEntryRef","ItemRangeRef","CICutomerRef","CIVendorRef","itemEntryHandler","onEntryItemChange","onFilterEntryTypeChange","onAllCICutomerChange","onCICustomerSelectionChange","onAllCIVendorChange","onCIVendorSelectionChange","borderBlock","openfolder","CIFiler","selectedReportColumns","selectedDataColumns","fromItemRange","toItemRange","isAllCICustomers","ciCustomers","itemEtry","ItemEntryList","reportColumn","dataColumn","allCICustomers","isAllCIVedors","allCIVendors","ciVendors","ItemEntryType","showcloumnsCLicked","showcolumns","clearClicked","DataColumnsRef","ReportColumnsRef","TabFilterRef","doClear","FilterEntryItemsChange","FilterChange","FilterEntryTypeChange","reportColumnsHandler","dataColumnsHandler","allCustomers","m","allVendors","ConsolidatedInventory","hideAllGridColumns","setColumnVisible","reduce","searchObject","dimCustPart","dimItem","dimCo","dimStk","dimVPart","dimVend","dimPODate","dimPal","dimCurPrice","meaAVL","meaVAL","meaQOO","meaAVLOO","frItem","cPType","custList","join","vendList","itemList","showGrid","ciObject","getConsolidatedInventory","showFilterExportColumn","showDescription","currencyFormatterWithParam","filterPropList","NavigationBar","navStyle","Navbar","Toggle","Collapse","Nav","Item","Link","CanViewOG","CustomPriceFilter","department","maxlength","SellCase","SellUms","description2","Description2","PriceSource","priceSource","ShipmentType","shipmentType","ShipTypePending","curpnd","price","EffectiveDate","ExpirationDate","expirationDate","CustomPrice","getCustomerPriceListData","valueGetter","sellValueGetter","descriptionValueGetter","DisplayOrderFilter","selectedOrderType","isOrderTypeEnabled","selectedDataType","todate","searchPOText","selectedStatusType","invoiceValue","orderValue","seqValue","resetFilterValues","invoiceEnabled","orderSeqEnabled","alignItems","datechange","DisplayOrder","exportAsCSV","exportDataAsCsv","columnKeys","fileName","allColumns","processHeaderCallback","poNumber","orderType","orderDate","shipDate","totalOrderAmount","column","colId","colDef","processCellCallback","getColId","orderFormaterExport","selectedUPSDisplay","isShippedViaUPSFedex","dateConverter","dateValue","orderFilter","dateComparisonType","orderSearchNumber","orderSearchSequenceNumber","geDisplayOrderHeaderData","orderSummaryClick","initialSortIndex","CanViewInvoices","marginTop","titleMessage","CanViewUPSTrackingInfo","unSortIcon","invoiceNumber","alwaysMultiSort","PurchasingFilter","selectedShipToName","qualifierChanged","submitClicked","canViewPurchases","selectedQualifier","PurchasingChart","changedValue","generateDummyData","legend","align","_data","chartData","Period","years","keys","Number","min","dataSet","year","obj","getColor","ITEMNUMBER","Customer_Part_NUmber","Desc","Quantity","Quntity","Purchases","getTotalFilteredData","CUSTOMERPARTNUMBER","DESCRIPTION","JANUARYUNITSALES","JANUARYSALES","FEBRUARYUNITSALES","FEBRUARYSALES","MARCHUNITSALES","MARCHSALES","APRILUNITSALES","APRILSALES","MAYUNITSALES","MAYSALES","JUNEUNITSALES","JUNESALES","JULYUNITSALES","JULYSALES","AUGUSTUNITSALES","AUGUSTSALES","SEPTEMBERUNITSALES","SEPTEMBERSALES","OCTOBERUNITSALES","OCTOBERSALES","NOVEMBERUNITSALES","NOVEMBERSALES","DECEMBERUNITSALES","DECEMBERSALES","TOTALUNITSALES","TOTALSALES","parseInt","unitsCheck","getFilteredSummaryData","currentYear","PurchasingDetail","fetchTotalDetailsData","month","updatedYear","getPurchasingTotalDetails","totalExportData","bottomData","currencyUnit","currency","bottomOptions","totalExportHeaders","showCSV","getPurchasingDetails","gridOptions","rowStyle","alignedGrids","Purchasing","handleCellClick","propsInput","year_unit","showPurchaseDetails","selectedMonth","selectedYear","selectedCurrency","selectedCurrencyUnit","setGridColumns","gridView","ChartRef","purchasingSummaryClick","gridViewClick","POStatus","poStatus","shipToNum","getPurchasingSummary","exportList","amount","unitsFormatterWithParam","qualifierName","grid","chart","getDescription","ComapanyCode","codeCompany","CompanyDescription","descCompany","codeCustPart","CustomerCode","codeCustomer","DepartmentCode","codeDept","CustomerDescription","descCustomer","ItemCode","codeItem","descItem","desc2Item","codePrice","codeShip","VendorPartNumber","codeVPart","VendorCode","codeVendor","VendorDescription","descVendor","codeInvoice","CutomerPO","descInvoice","InvoiceDescription","desc2Invoice","AddOns_0","range0ADD","AddOns_1","range1ADD","AddOns_2","range2ADD","AddOns_3","range3ADD","Quantity_0","range0QTY","Quantity_1","range1QTY","Quantity_2","range2QTY","Quantity_3","range3QTY","Purchases_0","range0SLS","Purchases_1","range1SLS","Purchases_2","range2SLS","Purchases_3","range3SLS","AllocTax_0","range0TAX","AllocTax_1","range1TAX","AllocTax_2","range2TAX","AllocTax_3","range3TAX","getAllShipToList","getCustomersList","PACustomers","PAVendors","PAItemRange","PAItemEntry","PAshipTos","shipToList","CustId","ShipId","selectedShipTos","handleShipToSelection","handleCheckAllShipTo","isAllShipTo","PAShipToRef","onAllPAShipTos","onPAShiptosSelectionChange","PAFilter","haveDate","frDate0","frDate1","frDate2","frDate3","dateMessage","isValid","yearValidation","toDate0","toDate1","toDate2","toDate3","ciShipTos","allPAshiptos","setShow","clearData","handleShow","allShipTos","PurchasingAnalysis","dimCst","dimShip","dimDept","dimInvoice","meaSLS","meaQTY","meaADD","meaTAX","shipList","urlParam","getPurchaseAnalysis","showFilterExportColumnHeaders","getColumnDef","refreshHeader","hideGridColumns","ChangePassword","oldPassword","newPassword","updateChangePassword","confirmPassword","inputHandler","renderChangePasswordForm","EmployeeListFromMenu","routes","path","component","Home","App","setSessionState","validation","jwtValid","Layout","children","Fragment","exact","render","to","Boolean","hostname","match","ReactDOM","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.8d394791.chunk.js","sourcesContent":["// To parse this data:\r\n//\r\n// const Convert = require(\"./file\");\r\n//\r\n// const user = Convert.toUser(json);\r\n//\r\n// These functions will throw an error if the JSON doesn't\r\n// match the expected interface, even if the JSON is valid.\r\n\r\n// Converts JSON strings to/from your types\r\n// and asserts the results of JSON.parse at runtime\r\nfunction toUser(json) {\r\n return cast(JSON.parse(json), r(\"User\"));\r\n}\r\n\r\nfunction userToJson(value) {\r\n return JSON.stringify(uncast(value, r(\"User\")), null, 2);\r\n}\r\n\r\nfunction invalidValue(typ, val) {\r\n throw Error(`Invalid value ${JSON.stringify(val)} for type ${JSON.stringify(typ)}`);\r\n}\r\n\r\nfunction jsonToJSProps(typ) {\r\n if (typ.jsonToJS === undefined) {\r\n const map = {};\r\n typ.props.forEach((p) => map[p.json] = { key: p.js, typ: p.typ });\r\n typ.jsonToJS = map;\r\n }\r\n return typ.jsonToJS;\r\n}\r\n\r\nfunction jsToJSONProps(typ) {\r\n if (typ.jsToJSON === undefined) {\r\n const map = {};\r\n typ.props.forEach((p) => map[p.js] = { key: p.json, typ: p.typ });\r\n typ.jsToJSON = map;\r\n }\r\n return typ.jsToJSON;\r\n}\r\n\r\nfunction transform(val, typ, getProps) {\r\n function transformPrimitive(typ, val) {\r\n if (typeof typ === typeof val) return val;\r\n return invalidValue(typ, val);\r\n }\r\n\r\n function transformUnion(typs, val) {\r\n // val must validate against one typ in typs\r\n const l = typs.length;\r\n for (let i = 0; i < l; i++) {\r\n const typ = typs[i];\r\n try {\r\n return transform(val, typ, getProps);\r\n } catch (_) {}\r\n }\r\n return invalidValue(typs, val);\r\n }\r\n\r\n function transformEnum(cases, val) {\r\n if (cases.indexOf(val) !== -1) return val;\r\n return invalidValue(cases, val);\r\n }\r\n\r\n function transformArray(typ, val) {\r\n // val must be an array with no invalid elements\r\n if (!Array.isArray(val)) return invalidValue(\"array\", val);\r\n return val.map(el => transform(el, typ, getProps));\r\n }\r\n\r\n function transformDate(val) {\r\n if (val === null) {\r\n return null;\r\n }\r\n const d = new Date(val);\r\n if (isNaN(d.valueOf())) {\r\n return invalidValue(\"Date\", val);\r\n }\r\n return d;\r\n }\r\n\r\n function transformObject(props, additional, val) {\r\n if (val === null || typeof val !== \"object\" || Array.isArray(val)) {\r\n return invalidValue(\"object\", val);\r\n }\r\n const result = {};\r\n Object.getOwnPropertyNames(props).forEach(key => {\r\n const prop = props[key];\r\n const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;\r\n result[prop.key] = transform(v, prop.typ, getProps);\r\n });\r\n Object.getOwnPropertyNames(val).forEach(key => {\r\n if (!Object.prototype.hasOwnProperty.call(props, key)) {\r\n result[key] = transform(val[key], additional, getProps);\r\n }\r\n });\r\n return result;\r\n }\r\n\r\n if (typ === \"any\") return val;\r\n if (typ === null) {\r\n if (val === null) return val;\r\n return invalidValue(typ, val);\r\n }\r\n if (typ === false) return invalidValue(typ, val);\r\n while (typeof typ === \"object\" && typ.ref !== undefined) {\r\n typ = typeMap[typ.ref];\r\n }\r\n if (Array.isArray(typ)) return transformEnum(typ, val);\r\n if (typeof typ === \"object\") {\r\n return typ.hasOwnProperty(\"unionMembers\") ? transformUnion(typ.unionMembers, val)\r\n : typ.hasOwnProperty(\"arrayItems\") ? transformArray(typ.arrayItems, val)\r\n : typ.hasOwnProperty(\"props\") ? transformObject(getProps(typ), typ.additional, val)\r\n : invalidValue(typ, val);\r\n }\r\n // Numbers can be parsed by Date but shouldn't be.\r\n if (typ === Date && typeof val !== \"number\") return transformDate(val);\r\n return transformPrimitive(typ, val);\r\n}\r\n\r\nfunction cast(val, typ) {\r\n return transform(val, typ, jsonToJSProps);\r\n}\r\n\r\nfunction uncast(val, typ) {\r\n return transform(val, typ, jsToJSONProps);\r\n}\r\n\r\nfunction a(typ) {\r\n return { arrayItems: typ };\r\n}\r\n\r\nfunction u(...typs) {\r\n return { unionMembers: typs };\r\n}\r\n\r\nfunction o(props, additional) {\r\n return { props, additional };\r\n}\r\n\r\n\r\nfunction r(name) {\r\n return { ref: name };\r\n}\r\n\r\nconst typeMap = {\r\n \"User\": o([\r\n { json: \"IsAutenticated\", js: \"IsAutenticated\", typ: u(undefined, true) },\r\n { json: \"IdentityKey\", js: \"IdentityKey\", typ: u(undefined, \"\") },\r\n { json: \"ViewAllShipTos\", js: \"ViewAllShipTos\", typ: u(undefined, \"\") },\r\n { json: \"ViewOrderAmount\", js: \"ViewOrderAmount\", typ: u(undefined, \"\") },\r\n { json: \"QuantityOnOrderViewPermission\", js: \"QuantityOnOrderViewPermission\", typ: u(undefined, \"\") },\r\n { json: \"QuantityOnHandViewPermission\", js: \"QuantityOnHandViewPermission\", typ: u(undefined, \"\") },\r\n { json: \"CanViewInventory\", js: \"CanViewInventory\", typ: u(undefined, \"\") },\r\n { json: \"CanViewOrders\", js: \"CanViewOrders\", typ: u(undefined, \"\") },\r\n { json: \"CanUploadEDI\", js: \"CanUploadEDI\", typ: u(undefined, \"\") },\r\n { json: \"CanViewUPSTrackingInfo\", js: \"CanViewUPSTrackingInfo\", typ: u(undefined, \"\") },\r\n { json: \"CanViewInventoryPrices\", js: \"CanViewInventoryPrices\", typ: u(undefined, \"\") },\r\n { json: \"CanViewCustomerPrices\", js: \"CanViewCustomerPrices\", typ: u(undefined, \"\") },\r\n { json: \"CanViewSales\", js: \"CanViewSales\", typ: u(undefined, \"\") },\r\n { json: \"CanViewInvoices\", js: \"CanViewInvoices\", typ: u(undefined, \"\") },\r\n { json: \"CanViewInventoryDaysOnHand\", js: \"CanViewInventoryDaysOnHand\", typ: u(undefined, \"\") },\r\n { json: \"MinMaxQuantityViewPermission\", js: \"MinMaxQuantityViewPermission\", typ: u(undefined, \"\") },\r\n { json: \"CanViewAllItems\", js: \"CanViewAllItems\", typ: u(undefined, \"\") },\r\n { json: \"CanCreateOrders\", js: \"CanCreateOrders\", typ: u(undefined, \"\") },\r\n { json: \"CanViewListPrice\", js: \"CanViewListPrice\", typ: u(undefined, \"\") },\r\n { json: \"CanViewPriceList\", js: \"CanViewPriceList\", typ: u(undefined, \"\") },\r\n { json: \"CanViewAR\", js: \"CanViewAR\", typ: u(undefined, \"\") },\r\n { json: \"CanViewSalesAnalysis\", js: \"CanViewSalesAnalysis\", typ: u(undefined, \"\") },\r\n { json: \"JWTToken\", js: \"JWTToken\", typ: u(undefined, \"\") },\r\n ], false),\r\n};\r\n\r\nmodule.exports = {\r\n \"userToJson\": userToJson,\r\n \"toUser\": toUser,\r\n};\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKcSURBVDjLpZPLa9RXHMU/d0ysZEwmMQqZiTaP0agoaKGJUiwIxU0hUjtUQaIuXHSVbRVc+R8ICj5WvrCldJquhVqalIbOohuZxjDVxDSP0RgzyST9zdzvvffrQkh8tBs9yy9fPhw45xhV5X1U8+Yhc3U0LcEdVxdOVq20OA0ooQjhpnfhzuDZTx6++m9edfDFlZGMtXKxI6HJnrZGGtauAWAhcgwVnnB/enkGo/25859l3wIcvpzP2EhuHNpWF9/dWs/UnKW4EOGDkqhbQyqxjsKzMgM/P1ymhlO5C4ezK4DeS/c7RdzQoa3x1PaWenJjJZwT9rQ1gSp/js1jYoZdyfX8M1/mp7uFaTR8mrt29FEMQILr62jQ1I5kA8OF59jIItVA78dJertTiBNs1ZKfLNG+MUHX1oaURtIHEAOw3p/Y197MWHEJEUGCxwfHj8MTZIcnsGKxzrIURYzPLnJgbxvG2hMrKdjItjbV11CYKeG8R7ygIdB3sBMFhkem0RAAQ3Fuka7UZtRHrasOqhYNilOwrkrwnhCU/ON5/q04vHV48ThxOCuoAbxnBQB+am65QnO8FqMxNCjBe14mpHhxBBGCWBLxD3iyWMaYMLUKsO7WYH6Stk1xCAGccmR/Ozs/bKJuXS39R/YgIjgROloSDA39Deit1SZWotsjD8pfp5ONqZ6uTfyWn+T7X0f59t5fqDhUA4ry0fYtjJcWeZQvTBu4/VqRuk9/l9Fy5cbnX+6Od26s58HjWWaflwkusKGxjm1bmhkvLXHvh1+WMbWncgPfZN+qcvex6xnUXkzvSiYP7EvTvH4toDxdqDD4+ygT+cKMMbH+3MCZ7H9uAaDnqytpVX8cDScJlRY0YIwpAjcNcuePgXP/P6Z30QuoP4J7WbYhuQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/icon_chart.f5989eda.png\";","module.exports = __webpack_public_path__ + \"static/media/icon_grid.711bd20a.png\";","module.exports = \"data:image/gif;base64,R0lGODlhHQAdAHAAACH5BAEAAHMALAAAAAAdAB0AhtDgybPNqK3KqK3Io63Ao6PAnqO7lJmyj5msirDUrdbrzs7nxsbjvb3btbXXra3XnKXPnJTLjIzDe4S+e3u6c3O2a3OyWmOqQjFJIX+5epSqhJSujJS2jIyujIyme4Sic4Saa3uaa1qmQn+3df////f79/f39+/z72NxSmuyY2OiY2OeY+fv587bzmOWY1qWY1qKWlqGUt7r3nO2c1qmUghlCFKiOaXHpWuSa63LrVKaOXqydWOqWjFBGJS+lFqCSkqWOVKaUlqaWkKSSkqSMb3fuCl9IUKSOUJ1SkKOMSk4GEqWUhBpELPXrUKKKTl9GBhVEFphQqjSqBBNGKW6pXqucDmGKXWsdTF1EDltGEJpIUphKVJdOSF5Idbn1hgkCJTAlDGGKTGKKYq7hIS0f3quenCldXCicDFtCHCgcGudcGubcNPj1LfUurrUvbHJtKS9p6S7p8fVyQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/gC0Bg4MQAgIQAXECBo2OHAeQHAiUCA4BCpkLCy0MDEVuDg4PEBARERITExQVFq4XGBSYlBy1kx0dGhoIHh4gvr4gICHEIrGYHSTKy8slJM7QJCYn1CcoxrILHMzMJSUnJCcl09PV1iJKEwLa3Mre3uDx5tTXsRDsKRUqFkIuQSzhSLR4EYNgjBg/6BlTx2BbhQUPTqUSIkNgDAoYU9CIUeOEjCg27DFAQEJACogSUlLAIeDFDIwUNtZowcKajlgCiiQjcYPGAlSreMRIkVEmTRYsoujoccVAEQ/LfPiEgLFCih8VKhhF6hEFECUU4jggGXBMEAYRrKbg8SMIRzZI/1nIkOG1BwUDDjTEU+ZjSJEIKnjwoPFjZty5dL8WKQV1rwwsRxxIEEyDBpI4SBF/dJLOAAQP8UrIWLKkxpEEMSvTqIHkYIy5XpU48NyYhIwhMzTWAPJAI40lQGqEwQJlLhfOCQxE+ADu9ksKuk9XCKIDSJIaU+LADqOkivIPtofAtKpiNRAIFaw7CVNDgHHOTSWEIDEEDZYsWvJr4cKlBpMIFCThBBZY1AAbFl/4wMEEINCHwYMQRshEGEbclx8XSrTABYJjIDBBCOTMUw0LRbiAgRIoovgFXQhOwAEFIIjokVyayUUjYht+cQUHVYQwT1weaabZAjK08BGCO1rg43SImQmJmBdseCGlFzmugYCSTDbp5JReFCkDF2h8kcaVIUTxQxRonolCmlxE0eabbkaxBZhfWHmBDSLkKYINOlSnQxKAOiEogYQygcahdSIQYYRK9OBoiip+Iemkk64hgxtugJJppnKAoimmcYQqQKikhtpCIAA7\"","export default {\r\n url: \"https://conwpahycon1.bunzlusa.com/api/v1\", // This is for DEV,\r\n proxyUrl: \"https://ncus-prod-essproxy.azurewebsites.net/api/callEssApi?url=\", // This is for Proxy server\r\n proxyUrlForDownload: \"https://ncus-prod-essproxy.azurewebsites.net/api/download?url=\", // This is for Proxy server\r\n proxyPost:\"https://ncus-prod-essproxy.azurewebsites.net/api/loginEssPostApi\"\r\n};\r\n","export default {\r\n url: 'https://conwdahycon1.bunzlusa.com/api/v1',\r\n //url: 'https://corpquinnox.bunzlusa.com/api/v1',\r\n isR3App: true\r\n}","import CryptoJS from 'crypto-js';\r\nexport const encryptData = (data, salt) =>\r\nCryptoJS.AES.encrypt(JSON.stringify(data), salt).toString(); \r\nexport const decryptData = (ciphertext, salt) => {\r\nconst bytes = CryptoJS.AES.decrypt(ciphertext, salt); \r\ntry { \r\nreturn JSON.parse(bytes.toString(CryptoJS.enc.Utf8)); \r\n}\r\ncatch(err)\r\n{ \r\nreturn null; \r\n} \r\n} ","\r\nimport authenticationService from '../_services/authentication.services';\r\nimport { encryptData } from '../Utils';\r\nimport { decryptData } from '../Utils';\r\n\r\nvar fromLogin = true;\r\nexport default function checkJWTTokenExpiry()\r\n {\r\n\r\n \r\n var jwtTokenExp =\"\";\r\n let mkLocalData = localStorage.getItem('jwtExpiry');\r\n \r\n if(mkLocalData)\r\n {\r\n \r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"jwtExpiry\"), salt);\r\n if(originalData !== null && originalData !== \"\" )\r\n {\r\n jwtTokenExp = originalData;\r\n }\r\n }\r\n // var jwtTokenExp = localStorage.getItem(\"jwtExpiry\");\r\n \r\n if (jwtTokenExp !== null && jwtTokenExp !== \"\")\r\n {\r\n\r\n var currentDate = new Date().toUTCString();\r\n var jwtDate = new Date(jwtTokenExp).toUTCString();\r\n \r\n var diffMs = new Date(jwtDate) - new Date(currentDate); \r\n var diffMins = Math.floor(diffMs / 60000); \r\n \r\n \r\n var MS_PER_MINUTE = 60000;\r\n\r\n var currentDateTimeToValidate = new Date(new Date() - 15 * MS_PER_MINUTE).toUTCString();\r\n \r\n // if (diffMins <= 0) \r\n // {\r\n // fromLogin = false;\r\n // localStorage.clear(); return false;\r\n // }\r\n \r\n\r\n if (diffMins <= 0) \r\n {\r\n \r\n fromLogin = false;\r\n localStorage.clear(); \r\n return false;\r\n }\r\n \r\n else \r\n {\r\n return true;\r\n }\r\n \r\n } \r\n else\r\n {\r\n return false;\r\n fromLogin=false;\r\n }\r\n \r\n \r\n }\r\n\r\n\r\nexport function encodedURL(url)\r\n{\r\n\r\n \r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"id_token\"), salt);\r\n console.log(originalData)\r\n\r\n //var encodedURLWithJWT= encodeURIComponent(url) +`&jwtToken=${localStorage.getItem('id_token')}`\r\n var encodedURLWithJWT= encodeURIComponent(url) +`&jwtToken=${originalData}`\r\n \r\n return encodedURLWithJWT;\r\n}\r\n\r\n\r\nexport function authHeader() \r\n{\r\n\r\n const jwtvalid = checkJWTTokenExpiry();\r\n //alert(jwtvalid);\r\n //alert(fromLogin);\r\n if(jwtvalid === false && fromLogin === false)\r\n {\r\n \r\n //alert(\"Your Session has expired,Please Login again!\");\r\n window.location = \"./ESSModal\";\r\n }\r\n // return authorization header with jwt token\r\n\r\n // const currentUser = localStorage.getItem('id_token'); \r\n\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"id_token\"), salt);\r\n const currentUser = originalData; \r\n\r\n if (currentUser) {\r\n return { \r\n Authorization: `Bearer ${currentUser}`,\r\n //'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n //'Access-Control-Allow-Origin':'*',\r\n //'Access-Control-Allow-Headers': \"Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With\"\r\n };\r\n } \r\n else \r\n {\r\n \r\n return {};\r\n }\r\n}\r\n\r\nfunction setWithExpiry(key) {\r\n var theDate = new Date();\r\n theDate.setHours(theDate.getHours() +2);\r\n var isodate = theDate.toISOString();\r\nlocalStorage.setItem(key,isodate)\r\n}\r\n","\r\nimport api from '../_services/apiUrl'\r\nimport appConstants from \"../_services/applicationConstant\";\r\nimport {authHeader,encodedURL} from '../_helpers/auth-header'\r\nimport { handleResponse } from '../_helpers/handle-response';\r\nimport {encryptData} from '../Utils';\r\nimport {decryptData} from '../Utils';\r\n\r\nexport function checkJWTTokenExpiry() {\r\n\r\n \r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"jwtExpiry\"), salt);\r\n var jwtTokenExp = originalData;\r\n if (jwtTokenExp !== null && jwtTokenExp !== \"\") {\r\n var currentDate = new Date().toUTCString();\r\n var jwtDate = new Date(jwtTokenExp).toUTCString();\r\n if (jwtDate < currentDate) { \r\n //localStorage.clear(); \r\n return true;}\r\n else return true;\r\n } else return true;\r\n }\r\n\r\nexport default class authenticationService {\r\n \r\n // Initializing important variables\r\n constructor(domain) {\r\n \r\n this.domain = domain || api.proxyUrl + api.url // API\r\n this.fetch = this.fetch.bind(this) \r\n this.login = this.login.bind(this)\r\n this.proxy=api.proxyPost\r\n this.url=api.url\r\n //this.setIsAuthenticated(false)\r\n //this.getProfile = this.getProfile.bind(this)\r\n }\r\n \r\n getCustomerLocation() {\r\n \r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"id_token\"), salt);\r\n \r\n if(originalData !== null && originalData !== \"\" ){\r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/company/location?companyNumber=${localStorage.getItem('companyNumber')}&customerNumber=${localStorage.getItem('customerNumber')}`)}`, {\r\n method: 'GET',\r\n headers: authHeader()\r\n }).then(response => response.json())\r\n .then((result) => {\r\n if (result != null && result !== \"\")\r\n localStorage.setItem('customerLocation', result.Info); \r\n });\r\n }\r\n }\r\n getCustomerAddress() {\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"id_token\"), salt);\r\n if(originalData !== null && originalData !== \"\" ){\r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/customer/address?companyNumber=${localStorage.getItem('companyNumber')}&customerNumber=${localStorage.getItem('customerNumber')}`)}`, {\r\n method: 'GET',\r\n headers: authHeader()\r\n }).then(response => response.json())\r\n .then((result) => {\r\n if (result != null && result !== \"\")\r\n localStorage.setItem('customerAddress', result.CustomerName);\r\n })\r\n }\r\n }\r\n login(username, password,companynumber,logintype,ssoFlag) {\r\n // Get a token from api server using the fetch api\r\n\r\n \r\n const userobject=username+':'+password+':'+companynumber+':'+logintype+':'+ssoFlag+':'+appConstants.isR3App;\r\n \r\n const token=window.btoa(userobject)\r\n return this.fetch(`${this.domain}/user/get_token?userToken=${token}`, {\r\n method: 'GET'\r\n \r\n }).then((res) => { \r\n console.log(\"At auth\" + res)\r\n\r\n this.setToken(res.JWTToken) // Setting the token in localStorage\r\n this.setMenu(res)\r\n this.setCompany(companynumber);\r\n this.setCustomer(username);\r\n this.setUserName(username);\r\n this.setSSOFlag(ssoFlag);\r\n \r\n this.setIdentityKey(res.IdentityKey);\r\n this.setLoginTypeCode(logintype);\r\n this.setIsAuthenticated(true);\r\n this.setExpirationSpan(res.JWTExpiration);\r\n return Promise.resolve(res); \r\n })\r\n}\r\n\r\nrefreshToken() {\r\n // Get a token from api server using the fetch api\r\n // const userobject=username+':'+password+':'+companynumber+':'+logintype+':'+ssoFlag+':'+appConstants.isR3App;\r\n\r\n//const token=window.btoa(userobject)\r\n return this.fetch(`${this.domain}/user/get_Jwtrefreshtoken`, {\r\n method: 'GET',\r\n headers: authHeader()\r\n \r\n }).then((res) => { \r\n this.setToken(res.JWTToken) // Setting the token in localStorage\r\n this.setMenu(res)\r\n \r\n \r\n \r\n this.setIsAuthenticated(true);\r\n this.setExpirationSpan(res.JWTExpiration);\r\n return Promise.resolve(res); \r\n })\r\n}\r\nloginSubmit(username, password,companynumber,logintype,ssoFlag) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({\r\n 'FullUserid':username,\r\n 'LoginTypeCode': logintype,\r\n 'CompanyNumber': companynumber,\r\n 'Password': password,\r\n 'AmphirePasswordFlag': \"\",\r\n 'ReturnCode': \"\",\r\n 'MiscFlag':appConstants.isR3App,\r\n 'Url':`${this.url}/user/get_tokenAmphere`\r\n })\r\n };\r\n\r\n return fetch(`${this.proxy}`, requestOptions)\r\n .then(handleResponse => handleResponse.json())\r\n \r\n .then(user => {\r\n \r\n this.setToken(user.JWTToken) // Setting the token in localStorage\r\n this.setMenu(user)\r\n this.setCompany(companynumber);\r\n this.setCustomer(username);\r\n this.setUserName(username);\r\n this.setSSOFlag(ssoFlag);\r\n \r\n this.setIdentityKey(user.IdentityKey);\r\n this.setLoginTypeCode(logintype);\r\n this.setIsAuthenticated(true);\r\n this.setExpirationSpan(user.JWTExpiration);\r\n return Promise.resolve(user); \r\n });\r\n};\r\n loginAmphere(username, password,companynumber,logintype,ssoFlag) {\r\n // Get a token from api server using the fetch api\r\n // const userobject=username+':'+password+':'+companynumber+':'+logintype+':'+amphireFlag+':'+appConstants.isR3App;\r\n\r\n const formData = new FormData();\r\n\r\n formData.append('fullUserid', username);\r\n formData.append('loginTypeCode', logintype);\r\n formData.append('companyNumber', companynumber);\r\n formData.append('password', password);\r\n formData.append('amphirePasswordFlag', ssoFlag);\r\n formData.append('miscFlag', appConstants.isR3App );\r\n return this.fetch(`${this.domain}/user/get_tokenAmphere`, {\r\n method: 'POST',\r\n \r\n body:formData,\r\n \r\n }).then((res) => { \r\n \r\n this.setToken(res.JWTToken) // Setting the token in localStorage\r\n this.setMenu(res)\r\n this.setCompany(companynumber);\r\n this.setCustomer(username);\r\n this.setUserName(username);\r\n this.setSSOFlag(ssoFlag);\r\n //this.setPassword(password);\r\n this.setIdentityKey(res.IdentityKey);\r\n this.setLoginTypeCode(logintype);\r\n this.setIsAuthenticated(true);\r\n this.setExpirationSpan(res.JWTExpiration);\r\n return Promise.resolve(res); \r\n })\r\n}\r\nloggedIn() {\r\n // Checks if there is a saved token and it's still valid\r\n const token = this.getToken() \r\n return !!token && !this.isTokenExpired(token) \r\n}\r\n\r\nisTokenExpired(token) {\r\n try {\r\n const decoded = token;\r\n if (decoded.exp < Date.now() / 1000) { // Checking if token is expired. N\r\n return true;\r\n }\r\n else\r\n return false;\r\n }\r\n catch (err) {\r\n return false;\r\n }\r\n}\r\nsetUserName(username){\r\n username=username.toUpperCase();\r\n localStorage.setItem('userName',username)\r\n}\r\ngetUserName(username){\r\n return localStorage.getItem('userName')\r\n}\r\n\r\n setCompany(companynumber) {\r\n // Saves user token to localStorage\r\n localStorage.setItem('companyNumber', companynumber)\r\n}\r\n\r\nsetSSOFlag(ssoFlag) {\r\n localStorage.setItem('ssoFlag', ssoFlag)\r\n}\r\n\r\nsetPassword(password) {\r\n // Saves user token to localStorage\r\n localStorage.setItem('password', password)\r\n}\r\n\r\n\r\nsetCustomer(username) {\r\n // Saves user token to localStorage\r\n localStorage.setItem('customerNumber', username.substring(0,6))\r\n}\r\ngetCompany() {\r\n // Retrieves the user token from localStorage\r\n return localStorage.getItem('companyNumber')\r\n}\r\ngetCustomer() {\r\n // Retrieves the user token from localStorage\r\n return localStorage.getItem('customerNumber')\r\n}\r\n\r\nsetToken(idToken) {\r\n // Saves user token to localStorage\r\n //localStorage.setItem('id_token', idToken)\r\n\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const encryptedData = encryptData(idToken, salt);\r\n localStorage.setItem('id_token', encryptedData)\r\n\r\n}\r\n\r\nsetExpirationSpan(expirationSpan){\r\n \r\n //localStorage.setItem('jwtExpiry', expirationSpan)\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const encryptedData = encryptData(expirationSpan, salt);\r\n localStorage.setItem('jwtExpiry', encryptedData)\r\n}\r\n\r\n\r\nsetIdentityKey(identityKey) {\r\n // Saves identityKey token to localStorage\r\n localStorage.setItem('identityKey', identityKey)\r\n}\r\n\r\ngetIdentityKey() {\r\n // Retrieves the identityKey token from localStorage\r\n return localStorage.getItem('identityKey')\r\n}\r\nsetLoginTypeCode(loginTypeCode) {\r\n // Saves identityKey token to localStorage\r\n localStorage.setItem('loginTypeCode', loginTypeCode)\r\n}\r\n\r\ngetLoginTypeCode() {\r\n // Retrieves the identityKey token from localStorage\r\n return localStorage.getItem('loginTypeCode')\r\n}\r\n\r\nsetIsAuthenticated(flag){\r\n localStorage.setItem('isSessionValid', flag)\r\n}\r\n\r\ngetIsAuthenticated() {\r\n // Retrieves the identityKey token from localStorage\r\n return localStorage.getItem('isSessionValid');\r\n}\r\nsetMenu(userobject)\r\n{\r\n\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n //const encryptedData = encryptData(JSON.stringify(userobject), salt);\r\n const encryptedData = encryptData(userobject, salt);\r\n localStorage.setItem('UserMenu', encryptedData);\r\n // localStorage.setItem('UserMenu', JSON.stringify(userobject))\r\n}\r\ngetMenu()\r\n{\r\n \r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"UserMenu\"), salt);\r\n\r\n //return JSON.parse(localStorage.getItem('UserMenu') ) \r\n\r\n return originalData;\r\n}\r\ngetToken() {\r\n // Retrieves the user token from localStorage\r\n let mkLocalData = localStorage.getItem('id_token');\r\n var jwtTokenExp =\"\";\r\n if(mkLocalData)\r\n {\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"id_token\"), salt);\r\n if(originalData !== null && originalData !== \"\" )\r\n {\r\n jwtTokenExp = originalData;\r\n }\r\n return originalData;\r\n }\r\n\r\n else\r\n {\r\n return jwtTokenExp;\r\n }\r\n // const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n // const originalData = decryptData(localStorage.getItem(\"id_token\"), salt);\r\n // return localStorage.getItem('id_token')\r\n \r\n}\r\n\r\nlogout() {\r\n // Clear user token and profile data from localStorage\r\n localStorage.removeItem('id_token');\r\n}\r\n\r\n\r\n\r\n\r\nfetch(url, options) {\r\n // performs api calls sending the required authentication headers\r\n const headers = {\r\n //'Accept': 'application/json',\r\n 'Content-Type': 'application/json',\r\n //'Access-Control-Allow-Origin':'*',\r\n //\"Access-Control-Allow-Headers\": \"Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With\"\r\n //'Access-Control-Allow-Origin':'*',\r\n //'Access-Control-Request-Headers': \"Content-Type, Accept, Authorization\"\r\n \r\n }\r\n\r\n // Setting Authorization header\r\n // Authorization: Bearer xxxxxxx.xxxxxxxx.xxxxxx\r\n if (this.loggedIn()) {\r\n headers['Authorization'] = 'Bearer ' + this.getToken()\r\n }\r\n\r\n return fetch(url, {\r\n headers,\r\n ...options\r\n })\r\n .then(this._checkStatus)\r\n .then(response => response.json())\r\n}\r\n\r\n_checkStatus(response) {\r\n // raises an error in case response status is not a success\r\n if (response.status >= 200 && response.status < 300) { // Success status lies between 200 to 300\r\n return response\r\n } else {\r\n var error = new Error(response.statusText)\r\n error.response = response\r\n throw error\r\n }\r\n}\r\n}\r\n","import React, { Component } from \"react\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\n\r\nclass ESSModal extends Component {\r\n render() {\r\n return (\r\n \r\n \r\n {!this.props.isContentMessage ? (\r\n
\r\n

\r\n {this.props.userMessage}\r\n

\r\n
\r\n ) : (\r\n

\r\n {this.props.userMessage}\r\n

\r\n )}\r\n
\r\n \r\n
\r\n {this.props.isAlert === \"false\" && (\r\n \r\n {this.props.btn2Text}\r\n \r\n )}\r\n \r\n {this.props.btn1Text}\r\n \r\n
\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ESSModal;\r\n","import React, { Component } from \"react\";\r\nimport bunzlLogo from \"../assets/images/bunzl-logo.gif\";\r\nimport infologo from \"../assets/images/information.png\";\r\nimport authenticationService from \"../_services/authentication.services\";\r\nimport \"../assets/css/login.css\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport r3Logo from \"../assets/images/r3-logo.gif\";\r\nimport appConstants from \"../_services/applicationConstant\";\r\nimport { styles } from \"../assets/css/bunzlUI.css\";\r\nimport ESSModal from \"../components/ESSModal.jsx\";\r\n\r\nclass Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showCompanyField: true,\r\n txtUserName: \"\",\r\n txtPassword: \"\",\r\n txtCompanyNumber: \"\",\r\n logintype: \"C\",\r\n showLoginBox: false,\r\n version: require(\"../../package.json\").version,\r\n userMessage:\"\",\r\n ssoFlag:\"0\",\r\n value: '',\r\n \r\n\r\n \r\n };\r\n\r\n this.Auth = new authenticationService();\r\n this.submit = this.submit.bind(this);\r\n }\r\n\r\n myChangeHandler = (event) => {\r\n let nam = event.target.name;\r\n let val = event.target.value;\r\n\r\n if (val == \"Customer Group\") {\r\n this.state.logintype = \"G\";\r\n this.state.txtCompanyNumber = \"0\";\r\n } else if (val == \"Employee\") {\r\n this.state.logintype = \"E\";\r\n this.state.txtCompanyNumber = \"0\";\r\n } else if (val == \"Customer\") {\r\n this.state.logintype = \"C\";\r\n }\r\n if (nam == \"logintype\") {\r\n if (val == \"Customer Group\" || val == \"Employee\") {\r\n this.setState({ showCompanyField: false });\r\n } else {\r\n this.setState({ showCompanyField: true });\r\n }\r\n } else {\r\n this.setState({ [nam]: val });\r\n }\r\n };\r\n\r\n\r\ncomponentDidMount(){\r\n\r\n\r\n let url = window.location.href;\r\n let search = window.location.search;\r\n let params = new URLSearchParams(search);\r\n let sharedsecret = params.get('sharedsecret');\r\n let loginType = params.get('loginType');\r\n let customer = params.get('customer');\r\n let userId = null;\r\n let compnayNumber = null\r\n \r\n if(url.includes(\"SelfService/Login.html\"))\r\n {\r\n {\r\n this.props.history.push({\r\n pathname: \"/Login\",\r\n });\r\n }\r\n \r\n }\r\n \r\n \r\n if(customer != null)\r\n {\r\n compnayNumber = customer.substring(0,2);\r\n userId = customer.substring(2, customer.length);\r\n }\r\n \r\n fetch(url, { method: 'GET', headers: new Headers({\r\n 'Content-Type': 'application/json',\r\n })})\r\n \r\n .then((res) => {\r\n\r\n \r\n \r\n if(sharedsecret != null)\r\n {\r\n if(loginType == \"customer\")\r\n {\r\n this.setState({ logintype: \"C\" });\r\n }\r\n else if(loginType == \"customergroup\")\r\n {\r\n this.setState({ logintype: \"G\" });\r\n }\r\n else if(loginType == \"employee\")\r\n {\r\n this.setState({ logintype: \"E\" });\r\n }\r\n \r\n \r\n \r\n document.getElementById(\"loginDiv\").style.display = \"none\";\r\n return this.Auth.login(\r\n userId,\r\n '',\r\n compnayNumber,\r\n this.state.logintype,\r\n sharedsecret\r\n )\r\n .then((res) => {\r\n\r\n \r\n this.props.setSessionStateFunc(\"true\");\r\n \r\n if (this.state.logintype === \"G\") {\r\n this.props.history.push({\r\n pathname: \"/CustomerList\",\r\n });\r\n } else if (this.state.logintype === \"E\") {\r\n this.props.history.push({\r\n pathname: \"/EmployeeList\",\r\n });\r\n } else {\r\n this.props.history.push({\r\n pathname: \"/Home\", \r\n });\r\n }\r\n \r\n })\r\n .catch((err) => {\r\n window.location = \"./SSOModal\";\r\n });\r\n } })\r\n .catch(function(err) {\r\n console.info(err + \" url: \" + url);\r\n });\r\n \r\n \r\n }\r\n maxLengthCheck = (object) => {\r\n if (object.target.value.length > object.target.maxLength) {\r\n object.target.value = object.target.value.slice(0, object.target.maxLength)\r\n }\r\n }\r\n handleClose = () => this.setState({ showLoginBox: false });\r\n\r\n cancleLogin = () => {\r\n this.setState({\r\n ...this.state,\r\n txtPassword: \"\",\r\n txtUserName: \"\",\r\n txtCompanyNumber: \"\",\r\n });\r\n };\r\n submit(e) {\r\n e.preventDefault();\r\n\r\n this.Auth.loginSubmit(\r\n this.state.txtUserName,\r\n this.state.txtPassword,\r\n this.state.txtCompanyNumber,\r\n this.state.logintype,\r\n this.state.ssoFlag\r\n )\r\n .then((res) => {\r\n \r\n if(res.Message!==\"An error has occurred.\")\r\n {\r\n this.props.setSessionStateFunc(\"true\");\r\n if (this.state.logintype === \"G\") {\r\n this.props.history.push({\r\n pathname: \"/CustomerList\",\r\n });\r\n } else if (this.state.logintype === \"E\") {\r\n this.props.history.push({\r\n pathname: \"/EmployeeList\",\r\n });\r\n } else {\r\n this.Auth.getCustomerLocation().then(()=>{\r\n this.Auth.getCustomerAddress().then(() =>{\r\n this.props.history.push({\r\n pathname: \"/Home\",\r\n })\r\n });\r\n });\r\n }\r\n \r\n }\r\n else{\r\n this.setState({showLoginBox:true, userMessage:'Userid/password combination is invalid'})\r\n }\r\n })\r\n .catch((err) => {\r\n this.setState({showLoginBox:true, userMessage:'Userid/password combination is invalid'})\r\n });\r\n {\r\n }\r\n }\r\n render() {\r\n //Below details has to change once build timestamp identified\r\n \r\n return (\r\n
\r\n {this.state.showLoginBox && (\r\n \r\n )}\r\n
\r\n
Self Service
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
Login
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {appConstants.isR3App ? (\r\n \r\n \"R3\"\r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n {appConstants.isR3App ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {\r\n e.preventDefault();\r\n this.setState({ showLoginBox: true, userMessage:`Customer Self Service\\nVersion: ${\r\n process.env.REACT_APP_VERSIONUMBER\r\n }\\nBuild Timestamp: ${new Date().toLocaleString()}\\nBuild Number: ${\r\n process.env.REACT_APP_VERSIONUMBER\r\n }` });\r\n }}\r\n >\r\n
\r\n\r\n
\r\n
Enter Login Credentials and click login
\r\n
\r\n
\r\n
\r\n \r\n Login as\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n {this.state.showCompanyField ? (\r\n
\r\n \r\n evt.key === 'e' && evt.preventDefault() }\r\n value={this.state.txtCompanyNumber}\r\n className=\"form-control card-body_login col-sm-6\"\r\n placeholder=\"Enter Company Number\"\r\n />\r\n
\r\n ) : null}\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n Submit\r\n \r\n
\r\n\r\n
\r\n \r\n Cancel\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {appConstants.isR3App\r\n ? \"Copyright\"+\" \"+ (new Date().getFullYear())+ \"R3 Reliable Redistribution Resource\"\r\n : \"Copyright\"+\" \" +(new Date().getFullYear())+\" Bunzl Distribution\"}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n < a href=\"https://www.bunzlnalegal.com/privacypolicy\" style={{color:\"white\"}}>Privacy Policy |\r\n  \r\n Terms of Use |\r\n  \r\n California Collection Notice |\r\n  \r\n Do Not Sell My Info\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nexport default withRouter(Login);\r\n","import React, { Component } from \"react\";\r\nimport bunzlCSS from \"../assets/css/bunzlUI.css\";\r\nimport api from \"../_services/apiUrl\";\r\nimport { authHeader } from \"../_helpers/auth-header\";\r\nimport appConstants from \"../_services/applicationConstant\";\r\nimport ESSModal from \"../components/ESSModal.jsx\";\r\nimport { withRouter } from \"react-router-dom\";\r\n\r\nclass CustomerFooter extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showLoginBox: false,\r\n companyNumber: localStorage.getItem(\"companyNumber\"),\r\n customerNumber: localStorage.getItem(\"customerNumber\"),\r\n address: '',\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({address: localStorage.getItem(\"customerAddress\")});\r\n }\r\n \r\n logout = (e) => {\r\n localStorage.clear();\r\n this.props.history.push({\r\n pathname: \"/Login\",\r\n });\r\n };\r\n\r\n handleClose = () => this.setState({ showLoginBox: false });\r\n\r\n handle2ndButtonClick = () => {\r\n localStorage.clear();\r\n this.props.history.push({\r\n pathname: \"/Login\",\r\n });\r\n };\r\n render() {\r\n return (\r\n
\r\n {this.state.showLoginBox && (\r\n \r\n )}\r\n \r\n
\r\n
\r\n For questions concerning specific orders or products, please\r\n contact your branch.\r\n
\r\n For questions concerning the Self Service system, please contact\r\n us by E-mail{\" \"}\r\n {appConstants.isR3App === false ? \r\n \r\n Internet Field Support\r\n \r\n :\r\n \r\n Support\r\n \r\n }{\" \"}\r\n \r\n {/* or phone us at (888) 492-4940. */}\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n Customer Number: {this.state.companyNumber}{\" \"}\r\n {this.state.customerNumber} {\" \"}\r\n {(this.state.address !== null && this.state.address !== \"\") && this.state.address}\r\n
\r\n
\r\n {appConstants.isR3App\r\n ? \"Copyright\"+\" \" +(new Date().getFullYear())+\" \"+\"R3 Reliable Redistribution Resource\"\r\n : \"Copyright\"+\" \"+(new Date().getFullYear()) +\" \"+\"Bunzl Distribution\"}\r\n
\r\n
\r\n Privacy Policy |\r\n   \r\n Terms of Use |\r\n   \r\n California Collection Notice |\r\n   \r\n Do Not Sell My Info\r\n
\r\n
\r\n
\r\n {\r\n this.setState({ toggle: !this.state.toggle });\r\n }}\r\n type=\"button\"\r\n data-toggle=\"collapse\"\r\n data-target=\"#collapseExample\"\r\n aria-expanded=\"false\"\r\n aria-controls=\"collapseExample\"\r\n >\r\n Contact Us\r\n \r\n  \r\n {\r\n e.preventDefault();\r\n this.setState({ showLoginBox: true });\r\n }}\r\n type=\"button\"\r\n data-toggle=\"collapse\"\r\n data-target=\"#collapseExample\"\r\n aria-expanded=\"false\"\r\n aria-controls=\"collapseExample\"\r\n >\r\n Logout\r\n \r\n
\r\n
\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(CustomerFooter);\r\n","import { AgGridReact } from \"ag-grid-react\";\r\nimport React, { Component } from \"react\";\r\nimport \"ag-grid-community/dist/styles/ag-grid.css\";\r\nimport \"ag-grid-community/dist/styles/ag-theme-alpine.css\";\r\nimport { getCustomerList } from \"../_services/customerList.service\";\r\nimport authenticationService from \"../_services/authentication.services\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport appConstants from \"../_services/applicationConstant\"\r\n\r\n\r\nclass CustomerList extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.Auth = new authenticationService();\r\n this.state = {\r\n search: false,\r\n inventoryList: [],\r\n loginType:localStorage.getItem('loginTypeCode'),\r\n columnDefs: [\r\n {\r\n headerName: \"Company\",\r\n tooltip: (params) => \"Double click to Select a customer\",\r\n field: \"Company\",\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.3px solid lightgray\",\r\n },\r\n resizable: true,sortable:true,\r\n width: 120,\r\n headerClass: `${appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"}`,\r\n },\r\n\r\n {\r\n headerName: \"Location\",\r\n tooltip: (params) => \"Double click to Select a customer\",\r\n cellStyle: {\r\n textAlign: \"left\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"Location\",\r\n resizable: true,sortable:true,\r\n width: 170,\r\n headerClass: `${appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"}`,\r\n },\r\n {\r\n headerName: \"Customer Number\",\r\n tooltip: (params) => \"Double click to Select a customer\",\r\n cellStyle: {\r\n textAlign: \"left \",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"CustomerNumber\",\r\n resizable: true,sortable:true,\r\n width: 180,\r\n headerClass: `${appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"}`,\r\n },\r\n {\r\n headerName: \"Ship To\",\r\n tooltip: (params) => \"Double click to Select a customer\",\r\n cellStyle: {\r\n textAlign: \"left\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"ShipTo\",\r\n resizable: true,sortable:true,\r\n width: 180,\r\n headerClass: `${appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"}`,\r\n },\r\n {\r\n headerName: \"Name\",\r\n tooltip: (params) => \"Double click to Select a customer\",\r\n cellStyle: {\r\n textAlign: \"left\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"Name\",\r\n resizable: true,sortable:true,\r\n width: 190,\r\n headerClass: `${appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"}`,\r\n },\r\n {\r\n headerName: \"City\",\r\n tooltip: (params) => \"Double click to Select a customer\",\r\n cellStyle: {\r\n textAlign: \"left\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"City\",\r\n resizable: true,sortable:true,\r\n width: 240,\r\n headerClass: `${appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"}`,\r\n },\r\n {\r\n headerName: \"State\",\r\n tooltip: (params) => \"Double click to Select a customer\",\r\n cellStyle: {\r\n textAlign: \"left\",sortable:true,\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"State\",\r\n resizable: true,sortable:true,\r\n width: 190,\r\n headerClass: `${appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"}`,\r\n },\r\n ],\r\n };\r\n }\r\n\r\n onGridReady = (params) => {\r\n document.getElementById(\"nextBtn\").disabled = true;\r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi;\r\n\r\n getCustomerList().then((data) => {\r\n this.setState({ rowData: data });\r\n });\r\n };\r\n\r\n onRowDoubleClicked = () => {\r\n this.navigate();\r\n };\r\n\r\n \r\n onSelectionChanged = () => {\r\n document.getElementById(\"nextBtn\").disabled = false;\r\n };\r\n\r\n navigate = () =>{\r\n var selectedRows = this.gridApi.getSelectedRows();\r\n localStorage.setItem(\"companyNumber\", selectedRows[0].Company);\r\n localStorage.setItem(\"customerNumber\", selectedRows[0].CustomerNumber);\r\n localStorage.setItem(\"customerGroupShipToValue\", selectedRows[0].ShipTo);\r\n\r\n this.Auth.getCustomerLocation().then(()=>{\r\n this.Auth.getCustomerAddress().then(() =>{\r\n this.props.history.push({\r\n pathname: \"/Home\",\r\n });\r\n window.location.reload();\r\n }); \r\n }); \r\n };\r\n\r\n onPreviousClick = () => {\r\n var loginTypeCode= localStorage.getItem('loginTypeCode')\r\n if(loginTypeCode === 'E'){\r\n if(this.props.fromMenu === \"false\")\r\n this.props.history.push({\r\n pathname: \"/EmployeeList\",\r\n })\r\n else this.props.history.push({\r\n pathname: \"/EmployeeListFromMenu\",\r\n });\r\n }\r\n else\r\n this.props.history.push({\r\n pathname: \"/Login\",\r\n })\r\n };\r\n\r\n render() {\r\n const renderGrid = ()=> {\r\n return (\r\n
\r\n
Select a customer
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n {this.props.fromMenu !==\"false\" && this.state.loginType ==='G' ?\"\": \r\n \r\n }\r\n
Select a customer and click the 'Next' button
\r\n \r\n
\r\n\r\n \r\n\r\n );\r\n }\r\n\r\n return (\r\n
{ this.props.fromMenu == \"false\" ?\r\n
\r\n
SelfService
\r\n \r\n { renderGrid()}\r\n
\r\n
\r\n :\r\n
\r\n { renderGrid()}\r\n
\r\n }\r\n \r\n\r\n );\r\n }\r\n}\r\nexport default withRouter(CustomerList);\r\n","import api from './apiUrl';\r\nimport {authHeader,encodedURL} from '../_helpers/auth-header'\r\nimport user from '../models/User';\r\n\r\nexport function getCustomerList()\r\n{ \r\n var customerNumber=localStorage.getItem('userName')\r\n var loginTypeCode= localStorage.getItem('loginTypeCode')\r\n\r\n if(loginTypeCode ===\"E\")\r\n {\r\n customerNumber = localStorage.getItem('empCompanyNumber')\r\n }\r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/user/customer?customerNumber=${customerNumber}&loginTypeCode=${loginTypeCode}`)}`, {\r\n method: 'GET',\r\n headers:authHeader()\r\n }).then(response => response.json());\r\n}\r\n \r\n ","import { AgGridReact } from \"ag-grid-react\";\r\nimport React, { Component } from \"react\";\r\nimport \"ag-grid-community/dist/styles/ag-grid.css\";\r\nimport \"ag-grid-community/dist/styles/ag-theme-alpine.css\";\r\nimport { getEmployeeList } from \"../_services/employeeList.service\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport appConstants from \"../_services/applicationConstant\"\r\n\r\nclass EmployeeList extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n search: false,\r\n inventoryList: [],\r\n columnDefs: [\r\n {\r\n headerName: \"Employee #\",\r\n tooltip: (params) => \"Click to Select an Employee.\",\r\n field: \"EmployeeId\",\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.3px solid lightgray\",\r\n },\r\n resizable: true,\r\n width: 200,\r\n headerClass: `${appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"}`,\r\n },\r\n \r\n {\r\n headerName: \"Employee Name\",\r\n tooltip: (params) => \"Double click to Select an Employee.\",\r\n cellStyle: {\r\n textAlign: \"left\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"EmployeeName\",\r\n resizable: true,\r\n width: 875,\r\n headerClass: `${appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"}`,\r\n },\r\n {\r\n headerName: \"Region\",\r\n tooltip: (params) => \"Double click to Select an Employee.\",\r\n cellStyle: {\r\n textAlign: \"left\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"Region\",\r\n resizable: true,\r\n width: 200,\r\n headerClass: `${appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"}`,\r\n }\r\n ],\r\n };\r\n }\r\n\r\n onGridReady = (params) => {\r\n document.getElementById(\"nextBtn\").disabled = true;\r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi;\r\n getEmployeeList().then((data) => {\r\n this.setState({ rowData: data });\r\n });\r\n };\r\n\r\n onRowDoubleClicked = () => {\r\n this.navigate();\r\n };\r\n onPreviousClick = () => {\r\n \r\n this.props.history.push({\r\n pathname: \"/Login\",\r\n })\r\n };\r\n navigate = () =>{\r\n var selectedRows = this.gridApi.getSelectedRows();\r\n localStorage.setItem(\"empCompanyNumber\", selectedRows[0].EmployeeId + selectedRows[0].Region);\r\n if(this.props.fromMenu === \"false\")\r\n this.props.history.push({\r\n pathname: \"/CustomerList\",\r\n });\r\n else\r\n this.props.history.push({\r\n pathname: \"/CustomerListMenu\",\r\n });\r\n };\r\n\r\n onSelectionChanged = () => {\r\n document.getElementById(\"nextBtn\").disabled = false;\r\n };\r\n\r\n render() {\r\n const renderGrid = ()=> {\r\n return (\r\n \r\n
\r\n \r\n \r\n
\r\n
Select an employee
\r\n \r\n \r\n \r\n
\r\n
\r\n {this.props.fromMenu === \"false\" &&\r\n \r\n }\r\n
Select an employee and click the 'Next' button
\r\n \r\n
\r\n
\r\n \r\n \r\n );\r\n }\r\n return (\r\n
{ this.props.fromMenu == \"false\" ?\r\n
\r\n
SelfService
\r\n \r\n { renderGrid()}\r\n
\r\n
\r\n :\r\n
\r\n { renderGrid()}\r\n
\r\n }\r\n \r\n \r\n );\r\n }\r\n}\r\nexport default withRouter(EmployeeList);","import api from './apiUrl';\r\nimport {authHeader,encodedURL} from '../_helpers/auth-header'\r\n\r\nexport function getEmployeeList()\r\n{ \r\n var empLoginID=localStorage.getItem('userName')\r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/user/employee?empLoginID=${empLoginID}`)}`, {\r\n method: 'GET',\r\n headers:authHeader()\r\n }).then(response => response.json());\r\n}\r\n \r\n ","import React, { Component } from \"react\";\r\nimport { styles } from \"../assets/css/style.css\";\r\nimport user from \"../models/User\";\r\nimport appConstants from \"../_services/applicationConstant\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport ESSModal from \"../components/ESSModal.jsx\"\r\nimport { decryptData } from '../Utils';\r\nclass NavigationSelfService extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n show: false,\r\n isOpen: false,\r\n };\r\n }\r\n logout = (e) => {\r\n localStorage.clear();\r\n this.props.history.push({\r\n pathname: \"/Login\",\r\n });\r\n };\r\n handleClose = () => this.setState({ show: false });\r\n handle2ndButtonClick = () => {\r\n localStorage.clear();\r\n this.props.history.push({\r\n pathname: \"/Login\",\r\n });\r\n };\r\n \r\n render() {\r\n const menuClass = `dropdown-menu${this.state.isOpen ? \" show\" : \"\"}`;\r\n\r\n // user.toUser = JSON.parse(localStorage.getItem(\"UserMenu\"));\r\n\r\n // alert(JSON.parse(localStorage.getItem(\"UserMenu\")));\r\n\r\n let mkLocalData = localStorage.getItem('UserMenu');\r\n if(mkLocalData)\r\n {\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"UserMenu\"), salt);\r\n if(originalData !== null && originalData !== \"\" )\r\n {\r\n user.toUser = originalData;\r\n }\r\n }\r\n\r\n // const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n // // const originalData = decryptData(JSON.parse(localStorage.getItem(\"UserMenu\")), salt);\r\n // const originalData = decryptData(localStorage.getItem(\"UserMenu\"), salt);\r\n // user.toUser = originalData;\r\n\r\n const navStyle = appConstants.isR3App\r\n ? {\r\n fontSize: \"12px\",\r\n height: \"30px\",\r\n fontWeight: \"bold\",\r\n backgroundColor: \"#0079c2\",\r\n }\r\n : {\r\n fontSize: \"12px\",\r\n height: \"30px\",\r\n fontWeight: \"bold\",\r\n backgroundColor: \"#79b91c\",\r\n };\r\n const loginTypeCode = localStorage.getItem(\"loginTypeCode\");\r\n if (user.toUser !== null) {\r\n return (\r\n
\r\n {this.state.show && (\r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n );\r\n } else {\r\n return
;\r\n }\r\n }\r\n}\r\n\r\nexport default withRouter(NavigationSelfService);\r\n","import React, { Component } from 'react';\r\nimport user from '../models/User';\r\nimport api from '../_services/apiUrl';\r\nimport {authHeader} from '../_helpers/auth-header'\r\nclass CutomerContact extends Component {\r\n \r\n constructor(props) {\r\n \r\n\t\tsuper(props);\t\t\r\n\t\tthis.state = {\t\t\t \r\n address: ''\t,\r\n\t\t}\r\n\t}\r\n \r\n componentDidMount() { \r\n this.setState({address: localStorage.getItem(\"customerLocation\")});\r\n }\r\n \r\n\r\n render(){\r\n return(\r\n
\r\n
\r\n {/* {(this.state.address !==null && this.state.address!=='') && this.state.address.Info} */}\r\n {this.state.address}\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n}\r\nexport default CutomerContact;","import React, { Component } from \"react\";\r\nimport { styles } from \"../assets/css/style.css\";\r\nimport NavigationSelfService from \"../components/NavigationSelfService\";\r\nimport CustomerContact from \"../components/CustomerContact\";\r\nimport bunzlLogo from \"../assets/images/bunzl-logo.gif\";\r\nimport r3Logo from \"../assets/images/r3-logo.gif\";\r\nimport onlineChat from \"../assets/images/onlinechat.gif\";\r\nimport onlineR3Chat from \"../assets/images/R3-chat-support-icon.png\";\r\nimport appConstants from \"../_services/applicationConstant\";\r\n\r\nclass HeaderSelfService extends Component {\r\n render() {\r\n const loginTypeCode = localStorage.getItem(\"loginTypeCode\");\r\n const companycode=localStorage.getItem('companyNumber');\r\n return (\r\n
\r\n
\r\n
\r\n {appConstants.isR3App ? (\r\n \r\n \"R3\"\r\n \r\n ) : (\r\n \r\n \"Bunzl\"\r\n \r\n )}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {appConstants.isR3App==true &&(companycode==\"50\") ? (\r\n \"\"\r\n ) :appConstants.isR3App==false && (loginTypeCode===\"C\"||loginTypeCode===\"G\" ||loginTypeCode===\"E\") && (\r\n \"\"\r\n )}\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default HeaderSelfService;\r\n","import React, { Component } from \"react\";\r\nimport bunzlsplash from \"../assets/images/bunzl-splash.jpg\";\r\nimport r3splash from \"../assets/images/r3-splash.jpg\";\r\nimport appConstants from \"../_services/applicationConstant\"\r\n\r\n\r\nexport default class HomePage extends Component {\r\n constructor(props){\r\n super(props);\r\n }\r\n\r\n render(){\r\n\r\n \r\n return(\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n { (appConstants.isR3App)? \"bunzlhomeimage\"/ : \"\"/}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n )\r\n }\r\n}","import api from './apiUrl';\r\nimport {authHeader,encodedURL} from '../_helpers/auth-header'\r\nexport function getSearchTypes(isR3){\r\nvar searchTypes = [\r\n { value: \"CP\", label: 'Customer Part' },\r\n { value: \"DS\", label: 'Description' }, \r\n];\r\nif(isR3)\r\nsearchTypes.push( {value: \"IT\", label: 'R3 Item #'});\r\nelse\r\nsearchTypes.push( {value: \"IT\", label: 'Item #'});\r\nsearchTypes.push( { value: \"VP\", label: 'Vendor Part' } );\r\nreturn searchTypes; \r\n}\r\nvar identityKey=localStorage.getItem('identityKey')\r\n\r\nexport function getPageNumbers(){\r\n var pageNumbers = [\r\n { value: \"20\", label: '20' },\r\n { value: \"50\", label: '50' }, \r\n { value: \"100\", label: '100' } ,\r\n { value: \"500\", label: '500' } ,\r\n { value: \"1000\", label: '1000' } ,\r\n { value: \"5000\", label: '5000' } ,\r\n { value: \"10000\", label: '10000' } ,\r\n { value: \"15000\", label: '15000' },\r\n { value: \"32000\", label: '32000' } \r\n\r\n ];\r\n \r\n return pageNumbers; \r\n}\r\n\r\nfunction currencyFormatter(currencyValue) {\r\n if (currencyValue !== undefined && currencyValue !== \"\" && currencyValue !== null && currencyValue !== '0' && currencyValue !== '0.00') {\r\n if (parseFloat(currencyValue) < 0) return \"-$\" + (parseFloat(currencyValue).toFixed(2) * -1).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n else return \"$\" + (parseFloat(currencyValue).toFixed(2)).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n return \"$0.00\";\r\n}\r\n\r\nfunction getDescription(desc)\r\n{\r\n return desc.replace(/\"/g,'\\\"\"') ;\r\n}\r\nfunction getPackDescription(desc)\r\n{\r\n return \"'\"+desc+\"'\";\r\n}\r\nfunction dateFormatter(value) {\r\n if(value != null && value != \"\" && value != undefined){\r\n var d = value.split(\" \");\r\n var dateValue = d[0];\r\n return dateValue;\r\n }\r\n else return \"\";\r\n }\r\n\r\nexport function getFilteredData(data,visiblePropList){\r\n let filteredData=[]; \r\n if(data.length > 0) { \r\n data.map((item) => { \r\n let filterObject = {};\r\n visiblePropList.forEach((prop) => (filterObject[prop] = \"\"));\r\n if (filterObject.hasOwnProperty(\"CustomerPartNumber\"))\r\n filterObject.CustomerPartNumber\t= item.CustomerPartNumber;\r\n if (filterObject.hasOwnProperty(\"DistributorPartnumber\"))\r\n filterObject.DistributorPartnumber=\titem.DistributorPartnumber;\r\n if (filterObject.hasOwnProperty(\"Warehouse\"))\r\n filterObject.Warehouse=\titem.Warehouse;\r\n if (filterObject.hasOwnProperty(\"StockNonstock\"))\r\n filterObject.StockNonstock=\titem.StockNonstock;\r\n if (filterObject.hasOwnProperty(\"PartDescription\",\"PartDescription2\"))\r\n filterObject.PartDescription= getDescription(item.PartDescription + \" \" + item.PartDescription2);\r\n if (filterObject.hasOwnProperty(\"CasePack\"))\r\n filterObject.CasePack=\tgetPackDescription(item.CasePack);\r\n if (filterObject.hasOwnProperty(\"PackDesc\"))\r\n filterObject.PackDesc =\tgetPackDescription(item.PackDesc);\r\n if (filterObject.hasOwnProperty(\"Price\"))\r\n filterObject.Price=currencyFormatter(item.Price);\r\n if (filterObject.hasOwnProperty(\"QuantityOnHand\"))\r\n filterObject.QuantityOnHand=item.QuantityOnHand;\r\n if (filterObject.hasOwnProperty(\"TotalProductValueOnHand\"))\r\n filterObject.TotalProductValueOnHand=currencyFormatter(item.TotalProductValueOnHand);\r\n if (filterObject.hasOwnProperty(\"QuantityOnOrder\"))\r\n filterObject.QuantityOnOrder=item.QuantityOnOrder;\r\n if (filterObject.hasOwnProperty(\"ScheduledDate\"))\r\n filterObject.ScheduledDate=dateFormatter(item.ScheduledDate);\r\n if (filterObject.hasOwnProperty(\"DaysOnHand\"))\r\n filterObject.DaysOnHand=item.DaysOnHand;\r\n if (filterObject.hasOwnProperty(\"VendorDaysLeadTime\"))\r\n filterObject.VendorDaysLeadTime=item.VendorDaysLeadTime;\r\n if (filterObject.hasOwnProperty(\"MaximumOrderQty\"))\r\n filterObject.MaximumOrderQty=item.MaximumOrderQty;\r\n \r\n filteredData.push(filterObject);\r\n })\r\n }\r\n else{\r\n let filterObject = {};\r\n visiblePropList.forEach((prop) => (filterObject[prop] = \"\"));\r\n if (filterObject.hasOwnProperty(\"CustomerPartNumber\"))\r\n filterObject.CustomerPartNumber\t= \"\";\r\n if (filterObject.hasOwnProperty(\"DistributorPartnumber\"))\r\n filterObject.DistributorPartnumber=\t\"\";\r\n if (filterObject.hasOwnProperty(\"Warehouse\"))\r\n filterObject.Warehouse=\t\"\";\r\n if (filterObject.hasOwnProperty(\"StockNonstock\"))\r\n filterObject.StockNonstock= \"\";\r\n if (filterObject.hasOwnProperty(\"PartDescription\",\"PartDescription2\"))\r\n filterObject.PartDescription=\"\";\r\n if (filterObject.hasOwnProperty(\"CasePack\"))\r\n filterObject.CasePack=\t\"\";\r\n if (filterObject.hasOwnProperty(\"PackDesc\"))\r\n filterObject.PackDesc =\t\"\";\r\n if (filterObject.hasOwnProperty(\"Price\"))\r\n filterObject.Price=\"\";\r\n if (filterObject.hasOwnProperty(\"QuantityOnHand\"))\r\n filterObject.QuantityOnHand=\"\";\r\n if (filterObject.hasOwnProperty(\"TotalProductValueOnHand\"))\r\n filterObject.TotalProductValueOnHand=\"\";\r\n if (filterObject.hasOwnProperty(\"QuantityOnOrder\"))\r\n filterObject.QuantityOnOrder=\"\";\r\n if (filterObject.hasOwnProperty(\"ScheduledDate\"))\r\n filterObject.ScheduledDate=\"\";\r\n if (filterObject.hasOwnProperty(\"DaysOnHand\"))\r\n filterObject.DaysOnHand=\"\";\r\n if (filterObject.hasOwnProperty(\"VendorDaysLeadTime\"))\r\n filterObject.VendorDaysLeadTime=\"\";\r\n if (filterObject.hasOwnProperty(\"MaximumOrderQty\"))\r\n filterObject.MaximumOrderQty=\"\";\r\n\r\n filteredData.push(filterObject);\r\n }\r\n return filteredData; \t\r\n}\r\n \r\n\r\nexport function getVendors(companyNumber, jwtToken) {\r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/inventory/vendors?companyNumber=${companyNumber}`)}`, {\r\n method: 'GET',\r\n headers:authHeader()\r\n }).then(response => response.json());\r\n}\r\n\r\nexport function getInventoryItems(){\r\n let numberRows ='32000';\r\n let qualifier = 'contains';\r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/inventory/records?identityKey=${identityKey.trim()}&companyNumber=${localStorage.getItem('companyNumber')}&customerNumber=${localStorage.getItem('customerNumber')}&loginTypeCode=${localStorage.getItem('loginTypeCode')}&numberRows=${numberRows}&qualifier=${qualifier}`)}`, {\r\n method: 'GET',\r\n headers: authHeader()\r\n }).then(response => response.json());\r\n}\r\n\r\nexport function getInventoryData(searchText, vendor, searchType, pageCount, qualifier)\r\n\r\n{\r\n var urlparam='&numberRows='+pageCount\r\n urlparam+='&qualifier='+qualifier\r\n if(vendor!=='0')\r\n {\r\n urlparam+='&vendor='+vendor\r\n }\r\n if(searchType!=='none')\r\n {\r\n urlparam+='&searchWordType='+searchType\r\n }\r\n if(searchText!=='')\r\n {\r\n urlparam+='&searchWord='+searchText\r\n }\r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/inventory/records?identityKey=${identityKey.trim()}&companyNumber=${localStorage.getItem('companyNumber')}&customerNumber=${localStorage.getItem('customerNumber')}&loginTypeCode=${localStorage.getItem('loginTypeCode')}${urlparam}`)}`, {\r\n method: 'GET',\r\n headers:authHeader()\r\n }).then(response => response.json());\r\n}\r\n \r\n \r\n","import React, { Component } from \"react\";\r\nimport bunzlCSS from \"../../assets/css/bunzlUI.css\";\r\nimport {getSearchTypes} from \"../../_services/inventory.service\";\r\nimport {getVendors} from \"../../_services/inventory.service\";\r\nimport {getPageNumbers} from \"../../_services/inventory.service\"\r\nimport appConstants from \"../../_services/applicationConstant\";\r\nimport ESSModal from \"../../components/ESSModal.jsx\";\r\nimport { decryptData } from \"../../Utils\";\r\n\r\n\r\nclass InventoryFilter extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state={\r\n searchTypes: getSearchTypes(appConstants.isR3App),\r\n pageNumbers: getPageNumbers(),\r\n vendors: [],\r\n selectedType:'none',\r\n selectedVendor:'0',\r\n searchText:'',\r\n pageCount:'20',\r\n qualifier:'contains',\r\n searchClicked:false,\r\n show: false,\r\n userMessage: \"\",\r\n }\r\n }\r\n \r\n componentDidMount() {\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"id_token\"), salt);\r\n getVendors(localStorage.getItem('companyNumber'),originalData)\r\n .then((data) => {\r\n this.setState({ vendors: data })\r\n })\r\n .catch(console.log)\r\n \r\n\r\n }\r\n onQualifierChange= (event) => {\r\n this.setState({\r\n qualifier: event.target.value\r\n });\r\n }\r\n\r\n myChangeHandler = (event) => {\r\n let nam = event.target.name;\r\n let val = event.target.value;\r\n this.setState({ [nam]: val }); \r\n }\r\n resetFilter = () => {\r\n this.setState({\r\n selectedType:'none',\r\n selectedVendor:'0',\r\n searchText:'',\r\n pageCount:'20',\r\n qualifier:'contains'\r\n });\r\n }\r\n\r\n searchClicked=() =>{\r\n this.props.doSearch(this.state.searchText,\r\n this.state.selectedVendor,\r\n this.state.selectedType,\r\n this.state.pageCount,\r\n this.state.qualifier);\r\n \r\n }\r\n\r\n render() {\r\n const enabled =\r\n ((this.state.searchText.length == 0 && this.state.selectedType == \"none\") &&\r\n this.state.selectedVendor !== \"0\" )\r\n ||\r\n (this.state.searchText.length > 0 && this.state.selectedType != \"none\" )\r\n ;\r\n return (\r\n
\r\n {this.state.show && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {this.state.searchTypes.map((type) => )}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
 
\r\n
\r\n
\r\n \r\n
\r\n \r\n {this.state.pageNumbers.map((page) => )}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default InventoryFilter;\r\n","import React, { Component } from \"react\";\r\nimport downloadAll from \"../assets/images/DownloadAll.png\";\r\nimport { CSVLink } from \"react-csv\";\r\nimport { getInventoryItems } from \"../_services/inventory.service\";\r\nimport { getFilteredData } from \"../_services/inventory.service\";\r\nimport downloadSpinner from '../assets/images/downloadSpinner.gif';\r\nimport { CSVDownload } from \"react-csv\";\r\nimport user from '../models/User';\r\nimport { decryptData } from '.././Utils';\r\n\r\nexport default class ExportReport extends Component {\r\n constructor(props) {\r\n // user.toUser = JSON.parse(localStorage.getItem(\"UserMenu\"));\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"UserMenu\"), salt);\r\n user.toUser = originalData;\r\n\r\n super(props); \r\n this.state = {\r\n exportHeaders:[],\r\n inventoryList: [],\r\n showbutton:true\r\n };\r\n this.csvLink = React.createRef();\r\n }\r\n\r\n \r\n getExportColumnsHeaders() {\r\n let exportColumnsList = [\r\n { label: 'Customer Part Number', key: \"CustomerPartNumber\"},\r\n { label: 'Item Number', key: \"DistributorPartnumber\"},\r\n { label: 'Ware-house', key: \"Warehouse\"},\r\n { label: 'Stk', key: \"StockNonstock\"},\r\n { label: 'Description', key: \"PartDescription\"},\r\n { label: 'Case/Pack', key: \"CasePack\"},\r\n { label: 'Pack Description', key: \"PackDesc\"},\r\n { label: 'Days Vendor Lead Time', key: \"VendorDaysLeadTime\"}];\r\n if(user.toUser.CanViewInventoryPrices === \"Y\")\r\n exportColumnsList.push( { label: 'Price', key: \"Price\"});\r\n if( user.toUser.QuantityOnHandViewPermission === \"Y\")\r\n exportColumnsList.push({ label: 'Quantity On Hand', key:\"QuantityOnHand\"});\r\n if(user.toUser.QuantityOnHandViewPermission === \"Y\")\r\n exportColumnsList.push({ label: 'Total Product Value on hand', key:\"TotalProductValueOnHand\"});\r\n if(user.toUser.QuantityOnOrderViewPermission === \"Y\")\r\n exportColumnsList.push({ label: 'Quantity on Order', key:\"QuantityOnOrder\"});\r\n if(user.toUser.QuantityOnOrderViewPermission === \"Y\")\r\n exportColumnsList.push({ label: 'Estimated Delivery Date To Warehouse', key:\"ScheduledDate\"});\r\n if(user.toUser.CanViewInventoryDaysOnHand === \"Y\")\r\n exportColumnsList.push({ label: '\"Inventory Days On Hand', key:\"DaysOnHand\"});\r\n if(user.toUser.MinMaxQuantityViewPermission === \"Y\")\r\n exportColumnsList.push({ label: 'Required Inventory Levels Min Max', key:\"MaximumOrderQty\"});\r\n \r\n return exportColumnsList;\r\n }\r\n\r\n\r\n getExportColumns() {\r\n let exportColumnsList = [\r\n \"CustomerPartNumber\",\r\n \"DistributorPartnumber\",\r\n \"Warehouse\",\r\n \"StockNonstock\",\r\n \"PartDescription\",\r\n \"CasePack\",\r\n \"PackDesc\",\r\n \"VendorDaysLeadTime\"];\r\n if(user.toUser.CanViewInventoryPrices === \"Y\")\r\n exportColumnsList.push( \"Price\");\r\n if( user.toUser.QuantityOnHandViewPermission === \"Y\")\r\n exportColumnsList.push(\"QuantityOnHand\");\r\n if(user.toUser.QuantityOnHandViewPermission === \"Y\")\r\n exportColumnsList.push(\"TotalProductValueOnHand\");\r\n if(user.toUser.QuantityOnOrderViewPermission === \"Y\")\r\n exportColumnsList.push(\"QuantityOnOrder\");\r\n if(user.toUser.QuantityOnOrderViewPermission === \"Y\")\r\n exportColumnsList.push(\"ScheduledDate\");\r\n if(user.toUser.CanViewInventoryDaysOnHand === \"Y\")\r\n exportColumnsList.push(\"DaysOnHand\");\r\n if(user.toUser.MinMaxQuantityViewPermission === \"Y\")\r\n exportColumnsList.push(\"MaximumOrderQty\");\r\n \r\n return exportColumnsList;\r\n }\r\n\r\n fetchData = () => {\r\n this.setState({ showbutton: false });\r\n getInventoryItems()\r\n .then((data) => {\r\n this.setState({ inventoryList: getFilteredData(data, this.getExportColumns()), exportHeaders:this.getExportColumnsHeaders() }, () => {\r\n setTimeout(() => {\r\n this.csvLink.current.link.click();\r\n }, 50);\r\n this.setState({ showbutton: true });\r\n });\r\n })\r\n .catch(console.log);\r\n };\r\n componentDidMount() {}\r\n render() {\r\n return (\r\n
\r\n { this.state.showbutton? \r\n : \"Downloading\r\n }\r\n \r\n \r\n \r\n\r\n \r\n {/*\r\n { this.state.inventoryList.length > 0 ? \r\n // \r\n // \"Download\r\n // \r\n \r\n : undefined} */}\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\n\r\nclass ESSProgressBar extends Component {\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n \r\n Getting Report Data...\r\n \r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ESSProgressBar;\r\n","import React, { Component } from \"react\";\r\n\r\nimport { AgGridReact } from \"ag-grid-react\";\r\nimport \"ag-grid-community/dist/styles/ag-grid.css\";\r\nimport \"ag-grid-community/dist/styles/ag-theme-alpine.css\";\r\nimport downloadbutton from '../../assets/images/downloadbutton.gif';\r\nimport InventoryFilter from \"./InventoryFilter\";\r\nimport {getFilteredData} from \"../../_services/inventory.service\";\r\nimport {CSVLink} from 'react-csv';\r\nimport appConstants from \"../../_services/applicationConstant\";\r\nimport ExportInventoryReport from \"../../components/ExportInventoryReport\";\r\nimport {getInventoryData} from \"../../_services/inventory.service\";\r\nimport ESSModal from \"../../components/ESSModal.jsx\";\r\nimport user from '../../models/User';\r\nimport ESSProgressBar from \"../../components/ESSProgressBar\";\r\nimport { decryptData } from '../../Utils';\r\n\r\nclass Inventory extends Component {\r\n constructor(props) {\r\n //user.toUser = JSON.parse(localStorage.getItem(\"UserMenu\"));\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"UserMenu\"), salt);\r\n user.toUser = originalData;\r\n super(props);\r\n this.state = {\r\n searchText:'',\r\n vendor:'', \r\n searchType:'', \r\n pageCount:'', \r\n qualifier:'',\r\n searchClicked:false,\r\n exportHeaders:[],\r\n columnDefs: [\r\n { headerName: \"Customer Part Number\", sortable:true, field: \"CustomerPartNumber\", cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, resizable: true, width:120,sortable:true,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: `${appConstants.isR3App? \"R3 Item Number\" : \"Item Number\"}`, cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, field: \"DistributorPartnumber\",sortable:true,resizable: true, width:120,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Ware-house\", cellStyle: {\r\n textAlign: \"left\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, field: \"Warehouse\",sortable:true, resizable: true, width:120,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Stk\", cellStyle: {\r\n textAlign: \"left \",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, field: \"StockNonstock\", resizable: true, width:90,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Description\", cellStyle: {\r\n textAlign: \"left\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, field: \"PartDescription\", \r\n valueFormatter: inventoryDescription,\r\n resizable: true , width:180,\r\n headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}`\r\n },\r\n { headerName: \"Case/Pack\", cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, field: \"CasePack\", sortable:true,resizable: true, width:120,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Pack Description\", cellStyle: {\r\n textAlign: \"left\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, field: \"PackDesc\", resizable: true, width:180,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Price\", type: 'rightAligned', valueFormatter: currencyFormatter, \r\n hide: user.toUser.CanViewInventoryPrices == \"Y\" ? false: true, \r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, field: \"Price\", resizable: true, width:100,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Quantity on hand\", \r\n hide: user.toUser.QuantityOnHandViewPermission == \"Y\" ? false: true, \r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, field: \"QuantityOnHand\", resizable: true, width:100,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Total Product Value on hand\", valueFormatter: currencyFormatter,\r\n hide: user.toUser.QuantityOnHandViewPermission == \"Y\" && user.toUser.CanViewInventoryPrices == 'Y' ? false: true, \r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, field: \"TotalProductValueOnHand\", type: 'rightAligned', resizable: true, width:80,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` }, \r\n { headerName: \"Quantity on Order\", \r\n hide: user.toUser.QuantityOnOrderViewPermission == \"Y\" ? false: true, //\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, \r\n field: \"QuantityOnOrder\", resizable: true, width:100,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Estimated Delivery Date To Warehouse\", \r\n hide: user.toUser.QuantityOnOrderViewPermission == \"Y\" ? false: true, \r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, \r\n field: \"ScheduledDate\", resizable: true, \r\n cellRenderer: dateFormatter,\r\n width:100,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` }, \r\n \r\n { headerName: \"Inventory Days On Hand\",\r\n hide: user.toUser.CanViewInventoryDaysOnHand == \"Y\" ? false: true, //\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, field: \"DaysOnHand\", \r\n resizable: true, width:120, headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` } , \r\n { headerName: \"Days Vendor Lead Time\", cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, field: \"VendorDaysLeadTime\", resizable: true, width:120, headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` } ,\r\n { headerName: \"Required Inventory Levels Min Max\", \r\n hide: user.toUser.MinMaxQuantityViewPermission == \"Y\" ? false: true, //CanViewInventoryDaysOnHand\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, \r\n field: \"MaximumOrderQty\",\r\n valueFormatter: minMaxOrderQnty,\r\n resizable: true, width:100,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` }\r\n \r\n ],\r\n \r\n rowData:[],\r\n inventoryList:[],\r\n show: false,\r\n userMessage: \"\",\r\n };\r\n }\r\n getExportColumns() {\r\n let exportColumnsList = [\r\n \"CustomerPartNumber\",\r\n \"DistributorPartnumber\",\r\n \"Warehouse\",\r\n \"StockNonstock\",\r\n \"PartDescription\",\r\n \"CasePack\",\r\n \"PackDesc\",\r\n \"VendorDaysLeadTime\"];\r\n if(user.toUser.CanViewInventoryPrices === \"Y\")\r\n exportColumnsList.push( \"Price\");\r\n if( user.toUser.QuantityOnHandViewPermission === \"Y\")\r\n exportColumnsList.push(\"QuantityOnHand\");\r\n if(user.toUser.QuantityOnHandViewPermission === \"Y\")\r\n exportColumnsList.push(\"TotalProductValueOnHand\");\r\n if(user.toUser.QuantityOnOrderViewPermission === \"Y\")\r\n exportColumnsList.push(\"QuantityOnOrder\");\r\n if(user.toUser.QuantityOnOrderViewPermission === \"Y\")\r\n exportColumnsList.push(\"ScheduledDate\");\r\n if(user.toUser.CanViewInventoryDaysOnHand === \"Y\")\r\n exportColumnsList.push(\"DaysOnHand\");\r\n if(user.toUser.MinMaxQuantityViewPermission === \"Y\")\r\n exportColumnsList.push(\"MaximumOrderQty\");\r\n \r\n return exportColumnsList;\r\n }\r\n\r\n\r\n getExportColumnsHeaders() {\r\n let exportColumnsList = [\r\n { label: 'Customer Part Number', key: \"CustomerPartNumber\"},\r\n { label: 'Item Number', key: \"DistributorPartnumber\"},\r\n { label: 'Ware-house', key: \"Warehouse\"},\r\n { label: 'Stk', key: \"StockNonstock\"},\r\n { label: 'Description', key: \"PartDescription\"},\r\n { label: 'Case/Pack', key: \"CasePack\"},\r\n { label: 'Pack Description', key: \"PackDesc\"},\r\n { label: 'Days Vendor Lead Time', key: \"VendorDaysLeadTime\"}];\r\n if(user.toUser.CanViewInventoryPrices === \"Y\")\r\n exportColumnsList.push( { label: 'Price', key: \"Price\"});\r\n if( user.toUser.QuantityOnHandViewPermission === \"Y\")\r\n exportColumnsList.push({ label: 'Quantity On Hand', key:\"QuantityOnHand\"});\r\n if(user.toUser.QuantityOnHandViewPermission === \"Y\")\r\n exportColumnsList.push({ label: 'Total Product Value on hand', key:\"TotalProductValueOnHand\"});\r\n if(user.toUser.QuantityOnOrderViewPermission === \"Y\")\r\n exportColumnsList.push({ label: 'Quantity on Order', key:\"QuantityOnOrder\"});\r\n if(user.toUser.QuantityOnOrderViewPermission === \"Y\")\r\n exportColumnsList.push({ label: 'Estimated Delivery Date To Warehouse', key:\"ScheduledDate\"});\r\n if(user.toUser.CanViewInventoryDaysOnHand === \"Y\")\r\n exportColumnsList.push({ label: '\"Inventory Days On Hand', key:\"DaysOnHand\"});\r\n if(user.toUser.MinMaxQuantityViewPermission === \"Y\")\r\n exportColumnsList.push({ label: 'Required Inventory Levels Min Max', key:\"MaximumOrderQty\"});\r\n \r\n return exportColumnsList;\r\n }\r\n\r\n doSearch= (selectedsearchText, selectedvendor, selectedsearchType, selectedpageCount, selectedqualifier) => {\r\n this.setState({searchText:selectedsearchText,\r\n vendor:selectedvendor,\r\n searchType:selectedsearchType,\r\n pageCount:selectedpageCount,\r\n qualifier:selectedqualifier,\r\n searchClicked:true,\r\n rowData:[]\r\n });\r\n \r\n getInventoryData(selectedsearchText, selectedvendor, selectedsearchType, selectedpageCount, selectedqualifier)\r\n .then((data) => { \r\n this.setState({inventoryList:getFilteredData(data, this.getExportColumns()), exportHeaders: this.getExportColumnsHeaders()})\r\n this.setState({ rowData: data, searchClicked:false }) \r\n if (data.length === 0) {\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"No Inventory Matched the selected criteria.\",\r\n });\r\n }\r\n \r\n });\r\n }\r\n handleClose = () => this.setState({ show: false });\r\n\r\n onGridReady = params => { \r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi;\r\n params.api.sizeColumnsToFit(); \r\n };\r\n render() {\r\n const renderInventoryGrid = () => {\r\n return
\r\n {this.state.searchClicked?\r\n \r\n :''}\r\n \r\n \r\n
; \r\n }\r\n return (\r\n
\r\n
\r\n \r\n \r\n
Inventory List
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n { this.state.inventoryList.length > 0 ? \r\n \r\n \"Download\r\n \r\n : undefined} \r\n
\r\n
\r\n \r\n
\r\n { renderInventoryGrid() }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Inventory;\r\nfunction inventoryDescription(params){\r\n return params.data.PartDescription + \" \"+ params.data.PartDescription2;\r\n}\r\nfunction currencyFormatter(params) {\r\n if (params.value !== undefined && params.value !== \"\" && params.value !== null && params.value!== '0' && params.value!== '0.00') {\r\n if (parseFloat(params.value) < 0) return \"-$\" + (parseFloat(params.value).toFixed(2) * -1).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n else return \"$\" + (parseFloat(params.value).toFixed(2)).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n return \"$0.00\";\r\n}\r\n\r\nfunction minMaxOrderQnty(params){\r\n return params.node.data.MinimumOrderQty + \" \" +params.node.data.MaximumOrderQty; \r\n}\r\n\r\nfunction dateFormatter(param) {\r\n if(param.value != null && param.value != \"\" && param.value != undefined){\r\n var d = param.value.split(\" \");\r\n var dateValue = d[0];\r\n return dateValue;\r\n }\r\n else return \"\";\r\n}","import {authHeader,encodedURL} from '../_helpers/auth-header';\r\n\r\nimport api from '../_services/apiUrl';\r\n\r\nexport function getPurchaseOrder(isR3){\r\n var PurchaseOrder = [\r\n { value: \"PO\", label: 'Purchase Order' },\r\n { value: \"ON\", label: 'Order Number' }, \r\n { value: \"IN\", label: 'Invoice Number' } \r\n ];\r\n return PurchaseOrder\r\n}\r\n\r\n\r\n\r\nexport function getStatus(isR3){\r\n var Status = [\r\n { value: \"O\", label: 'Open' },\r\n { value: \"C\", label: 'Closed' }, \r\n { value: \"B\", label: 'Both' } \r\n ];\r\n return Status\r\n}\r\n\r\n// export function getArBucketItems(url = '', jwtToken){\r\n// return fetch(url, {\r\n// method: 'GET',\r\n// headers: authHeader()\r\n// }).then(response => response.json());\r\n// }\r\nexport function getArBucketItems() {\r\n \r\n var companyNumber=localStorage.getItem('companyNumber')\r\n var customerNumber=localStorage.getItem('customerNumber')\r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/accountspayable/arbuckets?companyNumber=${companyNumber}&customerNumber=${customerNumber}`)}`, {\r\n method: 'GET',\r\n headers:authHeader()\r\n }).then(response => response.json());\r\n}\r\n\r\nexport function getFilteredARData(data){\r\n let filteredData=[];\r\n\r\n data.forEach((item) => {\r\n filteredData.push({\r\n DaysOld: \titem.Name,\r\n CurrentBalance:\tcurrencyFormatter(item.Balance),\r\n NoOfInvoice: item.Invcount \r\n });\r\n })\r\n return filteredData; \r\n}\r\nfunction currencyFormatter(currencyValue) {\r\n if (currencyValue !== undefined && currencyValue !== \"\" && currencyValue !== null && currencyValue !== '0' && currencyValue !== '0.00') {\r\n if (parseFloat(currencyValue) < 0) return \"-$\" + (parseFloat(currencyValue).toFixed(2) * -1).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n else return \"$\" + (parseFloat(currencyValue).toFixed(2)).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n return \"$0.00\";\r\n}\r\n function invoiceDateFormatter(input) {\r\n if(input != null && input!= \"\" && input != undefined){\r\n var d = input.split(\" \");\r\n var dateValue = d[0];\r\n return dateValue;\r\n }\r\n else return \"\";\r\n}\r\nexport function getFilteredAPData(data){\r\n let filteredData=[];\r\n data.forEach((item) => {\r\n filteredData.push({\r\n Invoice : item.ReferenceNumber,\r\n InvoiceDate : invoiceDateFormatter(item.InvoiceDate),\r\n PO : item.PoNumber,\r\n Order : item.OrderNumber,\r\n DaysOld : item.Days,\r\n Customer : item.SoldCustomer,\r\n ShipTo : item.SoldShipTo,\r\n Address : item.City,\r\n CurrentBalance :currencyFormatter(item.CurrentBalance),\r\n OriginalBalance : currencyFormatter(item.OriginalAmount)\r\n });\r\n })\r\n return filteredData; \r\n}\r\n\r\n\r\nexport function getShipTo() {\r\n var identityKey=localStorage.getItem('identityKey')\r\n var loginTypeCode=localStorage.getItem('loginTypeCode')\r\n var companyNumber=localStorage.getItem('companyNumber')\r\n var customerNumber=localStorage.getItem('customerNumber')\r\n var canViewAllShipTos='';\r\n var shipTo='';\r\n if(localStorage.getItem('customerGroupShipToValue') !== null && localStorage.getItem('customerGroupShipToValue').trim() !== \"\" ){\r\n canViewAllShipTos='&canViewAllShipTos=N&';\r\n shipTo='shipTo='+localStorage.getItem('customerGroupShipToValue').trim();\r\n }\r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/user/shipTo?identityKey=${identityKey}&loginTypeCode=${loginTypeCode}&companyNumber=${companyNumber}&customerNumber=${customerNumber}${canViewAllShipTos}${shipTo}`)}`, {\r\n method: 'GET',\r\n headers:authHeader()\r\n }).then(response =>\r\n response.json());\r\n}\r\n\r\nexport function getAPData(shipTo, searchText, searchType, fromDate, toDate, status, bucket, showInvoice)\r\n{\r\n var urlparam='';\r\n //urlparam+='&qualifier='+qualifier\r\n if(shipTo!=='0')\r\n {\r\n urlparam+='&shipTo='+shipTo\r\n } \r\n if(searchText!=='')\r\n {\r\n urlparam+='&searchWord='+searchText;\r\n urlparam+='&searchWordType='+searchType;\r\n }\r\n if(bucket!=='')\r\n {\r\n urlparam+='&bucket='+bucket\r\n }\r\n if(fromDate!=='')\r\n {\r\n //var d = new Date(fromDate);\r\n //var dateFrom = d.getMonth()+1 +\"/\"+ d.getDate() +\"/\"+ d.getFullYear() \r\n var from=fromDate.split(\"-\") \r\n var dateFrom=from[1] +\"/\"+ from[2] +\"/\"+ from[0] \r\n urlparam+='&fromDate='+dateFrom\r\n }\r\n if(toDate!=='')\r\n {\r\n var from=toDate.split(\"-\") \r\n var dateFrom=from[1] +\"/\"+ from[2] +\"/\"+ from[0] \r\n urlparam+='&toDate='+dateFrom\r\n }\r\n if(status!=='')\r\n {\r\n urlparam+='&status='+status\r\n }\r\n if(showInvoice!=='')\r\n {\r\n urlparam+='&showInvoice='+showInvoice\r\n }\r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/accountspayable/ardetails?companyNumber=${localStorage.getItem('companyNumber')}&customerNumber=${localStorage.getItem('customerNumber')}${urlparam}`)}`, {\r\n method: 'GET',\r\n headers:authHeader()\r\n }).then(response => response.json());\r\n}\r\n\r\n\r\n","import React, { Component } from \"react\";\r\nimport { AgGridReact } from \"ag-grid-react\";\r\nimport \"ag-grid-community/dist/styles/ag-grid.css\";\r\nimport \"ag-grid-community/dist/styles/ag-theme-alpine.css\";\r\nimport {getArBucketItems} from \"../../_services/accountsPayable.service\";\r\nimport api from '../../_services/apiUrl';\r\nimport appConstants from \"../../_services/applicationConstant\";\r\nimport {encryptData} from '../../Utils';\r\nimport {decryptData} from '../../Utils';\r\n\r\nclass ARBucket extends Component {\r\n constructor(props) {\r\n super(props);\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"id_token\"), salt);\r\n this.state = {\r\n companyNumber: localStorage.getItem('companyNumber'),\r\n customerNumber: localStorage.getItem('customerNumber'),\r\n jwtToken: originalData,\r\n\r\n colHeaders: [\r\n { headerName: \"Days Old\",comparator: compare, tooltip: (params) => 'Click to show the details', cellStyle: {textAlign: 'center',borderRight: '0.1px solid lightgray'},\r\n field: \"Name\",width:141,sortable: true,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Current Balance\", type: 'rightAligned', valueFormatter: currencyFormatter, cellStyle: {textAlign: 'right',borderRight: '0.1px solid lightgray'}, tooltip: (params) => 'Click to show the details', field: \"Balance\",width:142,sortable: true,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"# of Invoices\",type: 'rightAligned', cellStyle: {textAlign: 'right',borderRight: '0.1px solid lightgray !important'}, tooltip: (params) => 'Click to show the details', field: \"Invcount\",width:142,sortable: true,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` }],\r\n rowData:[],\r\n rowClassRules: {\r\n 'total-row': function(params) {\r\n var rowVal = params.data.Name;\r\n return rowVal === 'Total';\r\n },\r\n },\r\n \r\n };\r\n }\r\ncomponentDidMount() {\r\n \r\n getArBucketItems()\r\n .then((data) => {\r\n this.setState({ rowData: data.sort((a, b) => a.sort > b.sort ? 1 : -1) })\r\n })\r\n .catch(console.log);\r\n}\r\nonGridReady = params => {\r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi;\r\n params.api.sizeColumnsToFit(); \r\n\r\n};\r\n\r\nonSelectionChanged = () => {\r\n var selectedRows = this.gridApi.getSelectedRows();\r\n \r\n // selectedRows.length === 1 ? \r\n //alert(selectedRows[0].Name);// : '';\r\n this.props.rowSelected(selectedRows[0].Bucket);\r\n};\r\n\r\nonRowDoubleClicked = () => {\r\n var selectedRows = this.gridApi.getSelectedRows();\r\n \r\n // selectedRows.length === 1 ? \r\n //alert(selectedRows[0].Name);// : '';\r\n this.props.rowSelected(selectedRows[0].Bucket);\r\n };\r\n\r\n render() {\r\n const renderARBucketGrid = () => {\r\n return
\r\n \r\n \r\n
;\r\n }\r\n return (\r\n \r\n renderARBucketGrid() \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ARBucket;\r\nfunction currencyFormatter(params) {\r\n if (params.value !== undefined && params.value !== \"\" && params.value !== null && params.value!== '0' && params.value!== '0.00') {\r\n if (parseFloat(params.value) < 0) return \"-$\" + (parseFloat(params.value).toFixed(2) * -1).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n else return \"$\" + (parseFloat(params.value).toFixed(2)).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n return \"$0.00\";\r\n}\r\nfunction compare (number1, number2) {\r\n if (number1 === null && number2 === null) {\r\n return 0;\r\n }\r\n if(isNaN(number1)){ return -1}\r\n if(isNaN(number2)){ return 1}\r\n if (number1 === null) {\r\n return -1;\r\n }\r\n if (number2 === null) {\r\n return 1;\r\n }\r\n return number1 - number2;}\r\n","import React, { Component } from \"react\";\r\nimport bunzlCSS from \"../../assets/css/bunzlUI.css\";\r\nimport {\r\n getPurchaseOrder,\r\n getStatus,\r\n} from \"../../_services/accountsPayable.service\";\r\nimport { getShipTo } from \"../../_services/accountsPayable.service\";\r\nimport { getArBucketItems } from \"../../_services/accountsPayable.service\";\r\nimport mgglass from \"../../assets/images/magGlass.jpg\";\r\nimport appConstants from \"../../_services/applicationConstant\";\r\nimport user from '../../models/User';\r\nimport { decryptData } from '../../Utils';\r\n\r\nclass AccountPayableFilter extends Component {\r\n constructor(props) {\r\n\r\n //user.toUser = JSON.parse(localStorage.getItem('UserMenu'))\r\n\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"UserMenu\"), salt);\r\n user.toUser = originalData;\r\n super(props);\r\n this.state = {\r\n purchaseOrder: getPurchaseOrder(appConstants.isR3App),\r\n daysOld: [],\r\n shipTo: [],\r\n Status: getStatus(this.props.isR3),\r\n selectedShipTo: \"0\",\r\n searchText: \"\",\r\n\r\n HideClicked: false,\r\n selecteddaysOld: \"0\",\r\n selectedStatus: \"O\",\r\n selectedpurchaseOrder: \"PO\",\r\n enableShipTo: true\r\n };\r\n }\r\n componentWillReceiveProps(props) {\r\n this.setState({ selecteddaysOld: this.props.bucketSelected });\r\n }\r\n componentDidMount() {\r\n this.setState({ selecteddaysOld: this.props.bucketSelected });\r\n getShipTo()\r\n .then((data) => {\r\n if(localStorage.getItem('loginTypeCode') === 'C')\r\n { \r\n var userName= localStorage.getItem('userName');\r\n if(userName.length > 6)\r\n {\r\n var shipToID= userName.substring(6,userName.trim().length);\r\n var shipTOData= data.filter((p) => p.shipToNumber.trim() === shipToID);\r\n this.setState({ shipTo: shipTOData }, () => {\r\n if (shipTOData.length === 1) {\r\n this.setState({ selectedShipTo: shipTOData[0].shipToNumber });\r\n }\r\n }); \r\n this.setState({enableShipTo:false});\r\n }\r\n else{\r\n if(user.toUser.ViewAllShipTos==='All'){\r\n this.setState({ shipTo: data }, () => { \r\n }); \r\n }\r\n else{\r\n this.setState({ shipTo: data }, () => {\r\n if (data.length === 1) {\r\n this.setState({ selectedShipTo: data[0].shipToNumber , enableShipTo:false});\r\n }\r\n }); \r\n }\r\n }\r\n }\r\n else{\r\n if(localStorage.getItem('customerGroupShipToValue') !== null && localStorage.getItem('customerGroupShipToValue').trim() !== \"\" ){\r\n var shipTOData= data.filter((p) => p.shipToNumber.trim() === localStorage.getItem('customerGroupShipToValue').trim());\r\n this.setState({ shipTo: shipTOData }, () => {\r\n if (shipTOData.length === 1) {\r\n this.setState({ selectedShipTo: shipTOData[0].shipToNumber, enableShipTo:false });\r\n }\r\n }); \r\n }\r\n else{\r\n this.setState({ shipTo: data }, () => {\r\n // if (data.length === 1) {\r\n // this.setState({ selectedShipTo: data[0].shipToNumber });\r\n // }\r\n });\r\n }\r\n }\r\n if(data.length === 0)\r\n {\r\n this.setState({enableShipTo:false});\r\n }\r\n })\r\n .catch(console.log);\r\n\r\n getArBucketItems()\r\n .then((data) => {\r\n this.setState({ daysOld: data });\r\n })\r\n .catch(console.log);\r\n }\r\n onQualifierChange = (event) => {\r\n this.setState({\r\n qualifier: event.target.value,\r\n });\r\n };\r\n\r\n myChangeHandler = (event) => {\r\n let nam = event.target.name;\r\n let val = event.target.value;\r\n this.setState({ [nam]: val });\r\n if (val == \"C\" && nam == \"selectedStatus\") {\r\n document.getElementById(\"daysOldid\").disabled = true;\r\n } else {\r\n document.getElementById(\"daysOldid\").disabled = false;\r\n }\r\n if (nam === \"selecteddaysOld\") {\r\n this.props.clearBucketSelection(val);\r\n }\r\n };\r\n resetFilter = () => {\r\n document.getElementById(\"fromDate\").value = null;\r\n document.getElementById(\"toDate\").value = null;\r\n this.setState(\r\n {\r\n selectedpurchaseOrder: \"0\",\r\n selectedShipTo: \"0\",\r\n searchText: \"\",\r\n selecteddaysOld: \"0\",\r\n selectedStatus: \"O\",\r\n },\r\n () => {\r\n this.props.clearBucketSelection(this.state.selecteddaysOld);\r\n }\r\n );\r\n };\r\n\r\n searchClicked = () => {\r\n var fromdate = document.getElementById(\"fromDate\").value;\r\n var toDate = document.getElementById(\"toDate\").value;\r\n this.props.doSearch(\r\n this.state.searchText,\r\n this.state.selectedShipTo,\r\n this.state.selectedpurchaseOrder,\r\n this.state.selecteddaysOld,\r\n this.state.selectedStatus,\r\n (this.state.selectedfromDate = fromdate),\r\n (this.state.selectedtoDate = toDate)\r\n );\r\n };\r\n HideClicked = () => {\r\n var element = document.getElementById(\"searchFilters\");\r\n var ele = document.getElementById(\"searchFilter\");\r\n document.getElementById(\"imgs\").style.display = \"block\";\r\n ele.classList.remove(\"filterBody\");\r\n element.classList.add(\"searchFilter\");\r\n };\r\n\r\n searchFilterClick = () => {\r\n var element = document.getElementById(\"searchFilters\");\r\n var ele = document.getElementById(\"searchFilter\");\r\n document.getElementById(\"imgs\").style.display = \"none\";\r\n ele.classList.add(\"filterBody\");\r\n element.classList.remove(\"searchFilter\");\r\n };\r\n\r\n UpdateDaysSelected = (selecteddaysOld) => {\r\n //alert( this.props.bucketSelected);\r\n this.setState({ selecteddaysOld: this.props.bucketSelected });\r\n };\r\n\r\n handleChange(event) {\r\n if (document.getElementById(\"fromDate\").value > event.target.value) {\r\n var fromdate= document.getElementById(\"fromDate\").value\r\n alert(\r\n \"The From Date\" +\r\n \"\" +\"\"+\" \"+\r\n getFormattedDate(fromdate) +\r\n \" \" +\r\n \"must be less than or equal to the To Date\" +\" \"+\r\n getFormattedDate(event.target.value)\r\n );\r\n document.getElementById(\"btnsubmit\").disabled = true;\r\n } else {\r\n document.getElementById(\"btnsubmit\").disabled = false;\r\n }\r\n }\r\n handleFromChange(event) {\r\n if (document.getElementById(\"toDate\").value != null && event.target.value) {\r\n document.getElementById(\"btnsubmit\").disabled = true;\r\n } \r\n if (document.getElementById(\"fromDate\").value < document.getElementById(\"toDate\").value) {\r\n document.getElementById(\"btnsubmit\").disabled = false;\r\n }\r\n if (document.getElementById(\"fromDate\").value > document.getElementById(\"toDate\").value) {\r\n document.getElementById(\"btnsubmit\").disabled = true;\r\n }\r\n else {\r\n document.getElementById(\"btnsubmit\").disabled = false;\r\n }\r\n }\r\n render() {\r\n const shipToEnabled= this.state.shipTo.length > 1 ? true: false;\r\n const noShipTos= this.state.shipTo.length === 0 ? true: false;\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {this.state.purchaseOrder.map((type) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {this.state.daysOld.map((type) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n { this.state.enableShipTo &&\r\n \r\n }\r\n {noShipTos &&\r\n \r\n }\r\n {this.state.shipTo.map((type) => (\r\n \r\n {type.name} {\" - \"} {type.shipToNumber}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {this.state.Status.map((type) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Submit\r\n \r\n
\r\n
\r\n \r\n Clear\r\n \r\n
\r\n
\r\n \r\n Hide\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default AccountPayableFilter;\r\nfunction getFormattedDate(date) {\r\n var dt = new Date(date);\r\n var month=(dt.getMonth()+1);\r\n var day=(dt.getDate());\r\n var year=(dt.getFullYear());\r\n return month + '/' + day + '/' + year;\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Bar } from \"react-chartjs-2\";\r\nimport { getArBucketItems } from \"../../_services/accountsPayable.service\";\r\nimport appConstants from \"../../_services/applicationConstant\";\r\n\r\nexport class ARBucketChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n Data: {},\r\n\r\n barChartOptions: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n onClick: (e, element) => {\r\n if (element.length > 0) {\r\n var ind = element[0]._index;\r\n var bucket = this.state.Data.datasets[0].bucketId[ind];\r\n this.props.rowSelected(bucket);\r\n }\r\n },\r\n scales: {\r\n xAxes: [\r\n {\r\n barPercentage: 1,\r\n gridLines: {\r\n display: true,\r\n color: \"rgba(0, 0, 0, 0.1)\",\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n gridLines: {\r\n display: true,\r\n color: \"rgba(0, 0, 0, 0.1)\",\r\n },\r\n ticks: {\r\n beginAtZero: true,\r\n },\r\n },\r\n ],\r\n },\r\n },\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n getArBucketItems().then((res) => {\r\n const bucket = res\r\n .filter((x) => x.Name != \"Total\")\r\n .sort((a, b) => (a.sort > b.sort ? 1 : -1));\r\n let Balance = [];\r\n let DaysOld = [];\r\n let Bucketid = [];\r\n bucket.forEach((item) => {\r\n Balance.push(item.Balance);\r\n DaysOld.push(item.Name);\r\n Bucketid.push(item.Bucket);\r\n });\r\n this.setState({\r\n Data: {\r\n labels: DaysOld,\r\n\r\n datasets: [\r\n {\r\n label: \"Balance\",\r\n bucketId: Bucketid,\r\n data: Balance,\r\n backgroundColor: [\r\n appConstants.isR3App ? \"#0079c2\" : \"#9ACD32\",\r\n appConstants.isR3App ? \"#0079c2\" : \"#9ACD32\",\r\n appConstants.isR3App ? \"#0079c2\" : \"#9ACD32\",\r\n appConstants.isR3App ? \"#0079c2\" : \"#9ACD32\",\r\n appConstants.isR3App ? \"#0079c2\" : \"#9ACD32\",\r\n ],\r\n },\r\n ],\r\n },\r\n });\r\n });\r\n }\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nexport default ARBucketChart;\r\n","import api from \"./apiUrl\";\r\nimport { authHeader, encodedURL } from \"../_helpers/auth-header\";\r\n\r\nvar companyNumber = localStorage.getItem(\"companyNumber\");\r\n\r\nexport function getOrderDetails(\r\n loginid,\r\n sellingloc,\r\n orderNumber,\r\n orderSequenceNumber,\r\n referenceNumber,\r\n loginTypeCode\r\n) {\r\n // let loginid = localStorage.getItem('identityKey');\r\n // let type = localStorage.getItem('loginTypeCode');\r\n\r\n return fetch(\r\n `${api.proxyUrl}${api.url}${encodedURL(\r\n `/customerOrder/orderDetails?loginid=${loginid.trim()}&companyNumber=${companyNumber.trim()}&sellingloc=${sellingloc.trim()}&orderNumber=${orderNumber.trim()}&orderSequenceNumber=${orderSequenceNumber.trim()}&referenceNumber=${referenceNumber.trim()}&type=${loginTypeCode.trim()}`\r\n )}`,\r\n {\r\n method: \"GET\",\r\n headers: authHeader(),\r\n }\r\n ).then((response) => response.json());\r\n}\r\n\r\nexport function getOrderDetailsTop(\r\n companyNum,\r\n location,\r\n orderNumber,\r\n orderSequenceNumber,\r\n referenceNumber\r\n) {\r\n return fetch(\r\n `${api.proxyUrl}${api.url}${encodedURL(\r\n `/customerOrder/orderDetailsTop?companyNumber=${companyNum.trim()}&location=${location.trim()}&orderNumber=${orderNumber.trim()}&orderSequenceNumber=${orderSequenceNumber.trim()}&referenceNumber=${referenceNumber.trim()}`\r\n )}`,\r\n {\r\n method: \"GET\",\r\n headers: authHeader(),\r\n }\r\n ).then((response) => response.json());\r\n}\r\n\r\nfunction getDescription(desc)\r\n{\r\n return desc.replace(/\"/g,'\\\"\"') ;\r\n}\r\n\r\nexport function getDetailData(data, visiblePropList) {\r\n let filteredData = [];\r\n if(data.length > 0){\r\n data.map((item) => { \r\n let filterObject = {}; \r\n visiblePropList.forEach(prop => filterObject[prop]=''); \r\n if (filterObject.hasOwnProperty(\"ItemNumber\")) filterObject.ItemNumber = item.partNumber;\r\n if (filterObject.hasOwnProperty(\"Stk\")) filterObject.Stk = item.stockNonStock;\r\n if (filterObject.hasOwnProperty(\"MfgPartNumber\")) filterObject.MfgPartNumber = item.manufacturerPartNumber;\r\n if (filterObject.hasOwnProperty(\"ItemDescription\")) filterObject.ItemDescription = getDescription(item.partDescription + \" \"+ item.additionalPartDescription);\r\n if (filterObject.hasOwnProperty(\"OrderQty\")) filterObject.OrderQty = item.quantityOrdered;\r\n if (filterObject.hasOwnProperty(\"ReservedShipQty\")) filterObject.ReservedShipQty = item.reservedShipQuantity;\r\n if (filterObject.hasOwnProperty(\"UnitPrice\")) filterObject.UnitPrice = currencyFormatter(item.unitPrice);\r\n if (filterObject.hasOwnProperty(\"Weight\")) filterObject.Weight = item.extendedWeight;\r\n if (filterObject.hasOwnProperty(\"Cubes\")) filterObject.Cubes = item.extendedCube;\r\n if (filterObject.hasOwnProperty(\"QtyOnHand\")) filterObject.QtyOnHand = item.quantityOnHand;\r\n if(filterObject.hasOwnProperty(\"QuantityOnOrder\")) filterObject.QuantityOnOrder= item.quantityOnOrder;\r\n if(filterObject.hasOwnProperty(\"EstimatedDeliveryDate\")) filterObject.EstimatedDeliveryDate=item.dateScheduled;\r\n filteredData.push(filterObject);\r\n })\r\n }\r\n else{\r\n let filterObject = {}; \r\n visiblePropList.forEach(prop => filterObject[prop]=''); \r\n if (filterObject.hasOwnProperty(\"ItemNumber\")) filterObject.ItemNumber = \"\";\r\n if (filterObject.hasOwnProperty(\"Stk\")) filterObject.Stk = \"\";\r\n if (filterObject.hasOwnProperty(\"MfgPartNumber\")) filterObject.MfgPartNumber = \"\";\r\n if (filterObject.hasOwnProperty(\"ItemDescription\")) filterObject.ItemDescription = \"\";\r\n if (filterObject.hasOwnProperty(\"OrderQty\")) filterObject.OrderQty = \"\";\r\n if (filterObject.hasOwnProperty(\"ReservedShipQty\")) filterObject.ReservedShipQty = \"\";\r\n if (filterObject.hasOwnProperty(\"UnitPrice\")) filterObject.UnitPrice = \"\";\r\n if (filterObject.hasOwnProperty(\"Weight\")) filterObject.Weight = \"\";\r\n if (filterObject.hasOwnProperty(\"Cubes\")) filterObject.Cubes = \"\";\r\n if (filterObject.hasOwnProperty(\"QtyOnHand\")) filterObject.QtyOnHand = \"\";\r\n if(filterObject.hasOwnProperty(\"QuantityOnOrder\")) filterObject.QuantityOnOrder= \"\";\r\n if(filterObject.hasOwnProperty(\"EstimatedDeliveryDate\")) filterObject.EstimatedDeliveryDate=\"\";\r\n filteredData.push(filterObject);\r\n }\r\n\r\n return filteredData;\r\n}\r\nfunction currencyFormatter(currencyValue) {\r\n if (currencyValue !== undefined && currencyValue !== \"\" && currencyValue !== null && currencyValue !== '0' && currencyValue !== '0.00') {\r\n if (parseFloat(currencyValue) < 0) return \"-$\" + (parseFloat(currencyValue).toFixed(2) * -1).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n else return \"$\" + (parseFloat(currencyValue).toFixed(2)).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n return \"$0.00\";\r\n}","import api from './apiUrl';\r\nimport {authHeader,encodedURL} from '../_helpers/auth-header'\r\nvar identityKey=localStorage.getItem('identityKey')\r\nexport function geDisplayOrderHeaderData(shipToNumber, poNumber, orderStatus, orderFilter,referenceNumber,fromDate,toDate,dateComparisonType,orderSearchNumber,orderSearchSequenceNumber)\r\n\r\n{\r\n var urlparam='&shipToNumber='+shipToNumber\r\n urlparam+='&poNumber='+poNumber\r\n urlparam+='&orderStatus='+orderStatus\r\n urlparam+='&orderFilter='+orderFilter\r\n urlparam+='&loginType='+localStorage.getItem('loginTypeCode')\r\n urlparam+='&referenceNumber='+referenceNumber\r\n urlparam+='&fromDate='+fromDate\r\n urlparam+='&toDate='+toDate\r\n urlparam+='&dateComparisonType='+dateComparisonType\r\n urlparam+='&orderSearchNumber='+orderSearchNumber\r\n urlparam+='&orderSearchSequenceNumber='+orderSearchSequenceNumber\r\n \r\n\r\n \r\n \r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/customerOrder/orderDetailsHeader?identityKey=${identityKey.trim()}&companyNumber=${localStorage.getItem('companyNumber')}&customerNumber=${localStorage.getItem('customerNumber')}${urlparam}`)}`, {\r\n method: 'GET',\r\n headers:authHeader()\r\n }).then(response => response.json());\r\n}\r\n\r\n//used to get UPSTrackingNumber\r\nexport function getUPSTrackingNumber(orderNumber, location, orderSequenceNumber) {\r\n var _companyNumber=localStorage.getItem('companyNumber');\r\n // var urlparam='&companyNumber='+_companyNumber\r\n // urlparam+='&location='+location\r\n // urlparam+='&orderNumber='+orderNumber\r\n // urlparam+='&orderSequenceNumber='+orderSequenceNumber\r\n\r\n //var urlparam='&companyNumber='+_companyNumber\r\n\r\n var newordernumber=orderNumber;\r\n \r\n if(newordernumber.length < 6)\r\n {\r\n newordernumber=\"0\" + newordernumber\r\n }\r\n\r\n \r\n var urlparam='&location='+location\r\n urlparam+='&orderNumber='+newordernumber\r\n urlparam+='&orderSequenceNumber='+orderSequenceNumber\r\n\r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/upstracking/getUPSTrackingNumbers?companyNumber=${localStorage.getItem('companyNumber')}${urlparam}`)}`, {\r\n method: 'GET',\r\n headers:authHeader()\r\n }).then(response => response.json());\r\n \r\n}\r\nexport function getUPSResponse(inquiryNumberField,isfedx) {\r\n if(isfedx==true)\r\n {\r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/fedextracking/getFedexResponses?fedexTrackingNumberParams=${inquiryNumberField}`)}`, {\r\n method: 'GET',\r\n headers:authHeader()\r\n }).then(response => response.json());\r\n }\r\n else\r\n {\r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/upstracking/getUPSResponses?upsTrackingNumberParams=${inquiryNumberField}`)}`, {\r\n method: 'GET',\r\n headers:authHeader()\r\n }).then(response => response.json());\r\n}\r\n}\r\nexport function getFEDXTrackingNumber(orderNumber, location, orderSequenceNumber) {\r\n\r\n//added newly \r\n\r\n var newordernumber=orderNumber;\r\n \r\n if(newordernumber.length < 6)\r\n {\r\n newordernumber=\"0\" + newordernumber\r\n }\r\n\r\n \r\n var urlparam='&location='+location\r\n urlparam+='&orderNumber='+newordernumber\r\n urlparam+='&orderSequenceNumber='+orderSequenceNumber\r\n\r\n \r\n // var urlparam='&location='+location\r\n // urlparam+='&orderNumber='+orderNumber\r\n // urlparam+='&orderSequenceNumber='+orderSequenceNumber\r\n\r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/fedextracking/getFedexTrackingNumbers?companyNumber=${localStorage.getItem('companyNumber')}${urlparam}`)}`, {\r\n method: 'GET',\r\n headers:authHeader()\r\n }).then(response => response.json());\r\n \r\n}\r\nfunction currencyFormatter(value) {\r\n if (value !== undefined && value !== \"\" && value !== null && value!== '0' && value!== '0.00') {\r\n if (parseFloat(value) < 0) return \"-$\" + (parseFloat(value).toFixed(2) * -1).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n else return \"$\" + (parseFloat(value).toFixed(2)).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n return \"$0.00\";\r\n }\r\n \r\n function orderNumberFortmatter(orderNUmber, seqNumber)\r\n {\r\n if(seqNumber != null && seqNumber !=\"\" && seqNumber !=\"0\"){\r\n return orderNUmber + \"-\" + (\"0\" + seqNumber).slice(-2);\r\n\r\n }\r\n else\r\n return orderNUmber + \"-\" + \"00\";\r\n }\r\n function dateFormatter(dateValue) {\r\n if(dateValue != null && dateValue != \"\" && dateValue != undefined){\r\n var d = dateValue.split(\" \");\r\n var formattedDateValue = d[0];\r\n return formattedDateValue;\r\n }\r\n else return \"\";\r\n }\r\n\r\n export function sortOrderDetails (data) {\r\n const sortedData = data.sort((a, b) => {\r\n const dateA = new Date(a.orderDate);\r\n const dateB = new Date(b.orderDate);\r\n \r\n // Sort by date descending\r\n if (dateA - dateB !== 0) {\r\n return dateA - dateB;\r\n }\r\n \r\n return b.orderNumber.localeCompare(a.orderNumber); // If dates are equal, sort by number (ascending)\r\n });\r\n return sortedData;\r\n }\r\n\r\nexport function getFilteredData(data, visiblePropList){\r\n let filteredData=[];\r\n if(data.length > 0){\r\n data.map((item) => { \r\n let filterObject = {}; \r\n visiblePropList.forEach(prop => filterObject[prop]=''); \r\n if(filterObject.hasOwnProperty('PONumber')) filterObject.PONumber = item.poNumber;\r\n if(filterObject.hasOwnProperty('OrderNumber')) filterObject.OrderNumber = orderNumberFortmatter(item.orderNumber ,item.orderSequenceNumber);\r\n if(filterObject.hasOwnProperty('InvoiceNumber')) filterObject.InvoiceNumber = item.referenceNumber;\r\n if(filterObject.hasOwnProperty('ShipToName')) filterObject.ShipToName = item.shipToName;\r\n if(filterObject.hasOwnProperty('Type')) filterObject.Type = item.orderType;\r\n if(filterObject.hasOwnProperty('Status')) filterObject.Status = item.orderStatus;\r\n if(filterObject.hasOwnProperty('OrderDate')) filterObject.OrderDate = dateFormatter(item.orderDate);\r\n if(filterObject.hasOwnProperty('ShipDate')) filterObject.ShipDate = dateFormatter(item.shipDate);\r\n if(filterObject.hasOwnProperty('OrderAmount')) filterObject.OrderAmount = currencyFormatter(item.totalOrderAmount);\r\n filteredData.push(filterObject);\r\n })\r\n }\r\n else{\r\n let filterObject = {};\r\n visiblePropList.forEach(prop => filterObject[prop]=''); \r\n if(filterObject.hasOwnProperty('PONumber')) filterObject.PONumber = \"\";\r\n if(filterObject.hasOwnProperty('OrderNumber')) filterObject.OrderNumber = \"\";\r\n if(filterObject.hasOwnProperty('InvoiceNumber')) filterObject.InvoiceNumber = \"\";\r\n if(filterObject.hasOwnProperty('ShipToName')) filterObject.ShipToName = \"\";\r\n if(filterObject.hasOwnProperty('Type')) filterObject.Type = \"\"\r\n if(filterObject.hasOwnProperty('Status')) filterObject.Status = \"\";\r\n if(filterObject.hasOwnProperty('OrderDate')) filterObject.OrderDate = \"\";\r\n if(filterObject.hasOwnProperty('ShipDate')) filterObject.ShipDate = \"\";\r\n if(filterObject.hasOwnProperty('OrderAmount')) filterObject.OrderAmount = \"\";\r\n\r\n filteredData.push(filterObject);\r\n }\r\n return filteredData; \r\n}\r\n","\r\nimport React, { Component } from 'react';\r\nimport { AgGridReact } from \"ag-grid-react\";\r\nimport \"ag-grid-community/dist/styles/ag-grid.css\";\r\nimport \"ag-grid-community/dist/styles/ag-theme-alpine.css\";\r\nimport {getArBucketItems} from \"../../_services/accountsPayable.service\";\r\nimport api from '../../_services/apiUrl';\r\nimport {getUPSResponse} from \"../../_services/displayOrder.service\";\r\nimport appConstants from \"../../_services/applicationConstant\";\r\nimport UPSTrackingNumbersCard from \"./UPSTrackingNumbersCard\";\r\nimport { decryptData } from '../../Utils';\r\nclass UPSTrackingInfo extends Component {\r\n constructor(props) {\r\n super(props);\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"id_token\"), salt);\r\n this.state = {\r\n companyNumber: localStorage.getItem('companyNumber'),\r\n customerNumber: localStorage.getItem('customerNumber'),\r\n jwtToken: originalData,\r\n \r\n colHeaders: [\r\n { headerName: \"Date\", tooltip: (params) => 'Click to show the details', cellStyle: {textAlign: 'center',borderRight: '0.1px solid lightgray'},\r\n field: \"deliveryDate\",width:260,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Time\", type: 'rightAligned', cellStyle: {textAlign: 'right',borderRight: '0.1px solid lightgray'}, tooltip: (params) => 'Click to show the details', field: \"deliveryTime\",width:240,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n \r\n { headerName: \"Location\",type: 'rightAligned', cellStyle: {textAlign: 'right'}, tooltip: (params) => 'Click to show the details', field: \"city\",width:320,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Activity\",type: 'rightAligned', cellStyle: {textAlign: 'right'}, tooltip: (params) => 'Click to show the details', field: \"Status\",width:290,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` }],\r\n rowData:[],\r\n status : '',\r\n weight:'',\r\n trackinginofnumber:'',\r\n selectTrackingNumber:'',\r\n description:'',\r\n rowClassRules: {\r\n 'total-row': function(params) {\r\n var rowVal = params.data.Name;\r\n return rowVal === 'Total';\r\n },\r\n },\r\n \r\n };\r\n };\r\n componentDidMount() { \r\n getUPSResponse(\r\n this.props.upsTrackingNumber,this.props.isFedex\r\n ).then((data) => {\r\n \r\n if (data.length>0)\r\n {\r\n \r\n this.setState({status:data[0].Status});\r\n this.setState({weight:data[0].weightField});\r\n this.setState({trackinginofnumber:data[0].trackingNumber})\r\n this.setState({description:data[0].description}) \r\n }\r\n \r\n \r\n else{\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"No matching Orders have been found.\",\r\n });\r\n }\r\n });\r\n \r\n }\r\n rowclicked= (TrackNumber) => {\r\n \r\n \r\n getUPSResponse(TrackNumber)\r\n .then((data) => {\r\n if (data !== null)\r\n { \r\n this.setState({ rowData: data })\r\n }\r\n });\r\n }\r\n \r\n render() {\r\n const renderARBucketGrid = () => {\r\n return
\r\n \r\n \r\n
;\r\n }\r\n return(\r\n \r\n
\r\n\r\n
\r\n
\r\n
Last Activity

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n { this.props.status}\r\n
\r\n
\r\n
\r\n
\r\n \r\n Scheduled Delivery:\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Shipped or Billed On:\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Tracking Number:\r\n \r\n
\r\n
\r\n \r\n {this.props.trackinginofnumber}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Service Type:\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Package Weight:\r\n \r\n
\r\n
\r\n \r\n {this.props.weight}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
Package Progress

\r\n {renderARBucketGrid()}\r\n
NOTICE: UPS/Fedex tracking systems and the information they contain are the private property of UPS/Fedex and may be used solely to track shipments shipped by or to you and for no other purpose. You may not make the information obtained through the tracking systems available on any web site or otherwise distribute the information.
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n}\r\nexport default UPSTrackingInfo;","\r\nimport React, { Component } from 'react';\r\nimport { AgGridReact } from \"ag-grid-react\";\r\nimport \"ag-grid-community/dist/styles/ag-grid.css\";\r\nimport \"ag-grid-community/dist/styles/ag-theme-alpine.css\";\r\n\r\nimport {getUPSResponse} from \"../../_services/displayOrder.service\";\r\nimport appConstants from \"../../_services/applicationConstant\";\r\nimport { decryptData } from '../../Utils';\r\nclass UPSTrackingInitialScreen extends Component {\r\n constructor(props) {\r\n super(props);\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"id_token\"), salt);\r\n this.state = {\r\n companyNumber: localStorage.getItem('companyNumber'),\r\n customerNumber: localStorage.getItem('customerNumber'),\r\n jwtToken: originalData,\r\n \r\n colHeaders: [\r\n { headerName: \"Date\", tooltip: (params) => 'Click to show the details', cellStyle: {textAlign: 'center',borderRight: '0.1px solid lightgray'},\r\n field: \"dateField\",width:260,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Time\", type: 'rightAligned', cellStyle: {textAlign: 'right',borderRight: '0.1px solid lightgray'}, tooltip: (params) => 'Click to show the details', field: \"timeField\",width:240,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n \r\n { headerName: \"Location\",type: 'rightAligned', cellStyle: {textAlign: 'right'}, tooltip: (params) => 'Click to show the details', field: \"cityField\",width:320,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Activity\",type: 'rightAligned', cellStyle: {textAlign: 'right'}, tooltip: (params) => 'Click to show the details', field: \"descriptionField\",width:290,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` }],\r\n rowData:[],\r\n config : null,\r\n rowClassRules: {\r\n 'total-row': function(params) {\r\n var rowVal = params.data.Name;\r\n return rowVal === 'Total';\r\n },\r\n },\r\n \r\n };\r\n };\r\n \r\n render() {\r\n const renderARBucketGrid = () => {\r\n return
\r\n \r\n \r\n
;\r\n }\r\n return(\r\n \r\n
\r\n\r\n
\r\n
\r\n
Last Activity

\r\n
\r\n
\r\n
\r\n \r\n Status:\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Scheduled Delivery:\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Shipped or Billed On:\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Tracking Number:\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Service Type:\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Package Weight:\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
Package Progress

\r\n {renderARBucketGrid()}\r\n
NOTICE: UPS/Fedex tracking systems and the information they contain are the private property of UPS/Fedex and may be used solely to track shipments shipped by or to you and for no other purpose. You may not make the information obtained through the tracking systems available on any web site or otherwise distribute the information.
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n}\r\nexport default UPSTrackingInitialScreen;","import React, { Component } from 'react';\r\nimport { AgGridReact } from \"ag-grid-react\";\r\nimport \"ag-grid-community/dist/styles/ag-grid.css\";\r\nimport \"ag-grid-community/dist/styles/ag-theme-alpine.css\";\r\nimport {getUPSTrackingNumber} from \"../../_services/displayOrder.service\";\r\nimport {getFEDXTrackingNumber} from \"../../_services/displayOrder.service\";\r\nimport {getUPSResponse} from \"../../_services/displayOrder.service\";\r\nimport UPSTrackingInfo from \"./UPSTrackingInfo\";\r\nimport ESSModal from \"../../components/ESSModal.jsx\";\r\nimport UPSTrackingInitialScreen from \"./UPSTrackingInitialScreen\"\r\nclass UPSTrackingNumberCard extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n show: false,\r\n userMessage:'',\r\n colHeaders: [{ \r\n headerName: \"\", \r\n field: \"TrackingNumber\", \r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, \r\n resizable: false }\r\n ],\r\n defaultColDef: {\r\n flex: 1,\r\n minWidth: 50,\r\n filter: false,\r\n sortable: false,\r\n },\r\n rowData:[],\r\n trackData:[],\r\n selectedUPSTrackingNumber:'',\r\n showUPSInfo:false,\r\n companyNumber:'',\r\n orderNumber:'',\r\n location:'',\r\n orderSequenceNumber:'',\r\n isfedex:'',\r\n status : '',\r\n weight:'',\r\n trackinginofnumber:'',\r\n selectTrackingNumber:'',\r\n description:'',\r\n\r\n }\r\n \r\n };\r\n\r\n componentDidMount() { \r\n \r\n if(this.props.showFEDEX==true&&this.props.isfedx==true) \r\n {\r\n this.getFEDXTrackingNumber()\r\n } \r\n else\r\n {\r\n this.setState({isfedex:false}) \r\n \r\n this.getUPSTrackingNumber();} \r\n }\r\n\r\n onSelectionChanged = () => {\r\n var selectedRows = this.gridApi.getSelectedRows();\r\n \r\n \r\n this.setState({ selectedUPSTrackingNumber:selectedRows[0].TrackingNumber},()=>{\r\nthis.setState({showUPSInfo:true})\r\n this.setState({isfedex:this.props.isfedx}) \r\n })\r\n getUPSResponse(\r\n this.state.selectedUPSTrackingNumber.trim(),this.state.isfedex\r\n ).then((data) => {\r\n \r\n if (data.length>0)\r\n {\r\n this.setState({ trackData: data });\r\n this.setState({status:data[0].Status});\r\n this.setState({weight:data[0].weightField});\r\n this.setState({trackinginofnumber:data[0].trackingNumber})\r\n this.setState({description:data[0].description}) \r\n }\r\n \r\n \r\n else{\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"Tracking info not available for deliveries older than 120 days.\",\r\n });\r\n }\r\n });\r\n };\r\n \r\n \r\n \r\n getUPSTrackingNumber() { \r\n getUPSTrackingNumber(this.props.orderNumber,this.props.location,this.props.orderSeqNumber)\r\n .then((data) => {\r\n this.setState({ rowData: data })\r\n \r\n });\r\n } \r\n getFEDXTrackingNumber() { \r\n getFEDXTrackingNumber(this.props.orderNumber,this.props.location,this.props.orderSeqNumber)\r\n .then((data) => {\r\n this.setState({ rowData: data })\r\n \r\n });\r\n } \r\n handleClose = () => this.setState({ show: false });\r\n onGridReady = params => {\r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi;\r\n };\r\n loadUPSTrackingGrid() {\r\n return( \r\n
\r\n \r\n
\r\n \r\n );\r\n }\r\n render() {\r\n return(\r\n
\r\n
\r\n
\r\n
\r\n {this.props.isfedx==true ?
Fedex Tracking Numbers
:
UPS Tracking Numbers
}
\r\n { this.loadUPSTrackingGrid() }\r\n
\r\n
\r\n
\r\n {this.state.showUPSInfo ?\r\n \r\n :}\r\n {this.state.show && (\r\n \r\n )}\r\n
\r\n );\r\n };\r\n\r\n}\r\nexport default UPSTrackingNumberCard;","import React, { Component } from 'react';\r\nimport Modal from \"react-bootstrap/Modal\";\r\n\r\nclass ESSLoadingModal extends Component {\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ESSLoadingModal;","import React, { Component } from \"react\";\r\nimport appConstants from \"../../_services/applicationConstant\";\r\nimport { AgGridReact } from \"ag-grid-react\";\r\nimport \"ag-grid-community/dist/styles/ag-grid.css\";\r\nimport \"ag-grid-community/dist/styles/ag-theme-alpine.css\";\r\nimport {\r\n getOrderDetails,\r\n getDetailData,\r\n getOrderDetailsTop,\r\n} from \"../../_services/orderDetails.service\";\r\nimport downloadbutton from \"../../assets/images/downloadbutton.gif\";\r\nimport ups from \"../../assets/images/ups.jpg\";\r\nimport fedex from \"../../assets/images/FedEx.gif\";\r\nimport { CSVLink } from \"react-csv\";\r\nimport UPSTrackingNumbersCard from \"./UPSTrackingNumbersCard\";\r\nimport { authHeader, encodedURL } from \"../../_helpers/auth-header\";\r\nimport api from \"../../_services/apiUrl\";\r\nimport ESSLoadingModal from \"../../components/ESSLoadingModal\";\r\nimport user from '../../models/User';\r\nimport { decryptData } from '../../Utils';\r\n\r\nclass OrderDetails extends Component {\r\n constructor(props) {\r\n //user.toUser = JSON.parse(localStorage.getItem(\"UserMenu\"));\r\n\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"UserMenu\"), salt);\r\n user.toUser = originalData;\r\n\r\n super(props);\r\n this.handleUPSlick = this.handleUPSlick.bind(this);\r\n this.handleFDXClick = this.handleFDXClick.bind(this);\r\n this.state = {\r\n displayOrderNumber:'',\r\n companyNumber: localStorage.getItem(\"companyNumber\"),\r\n showLoading: false,\r\n columnDefs: [\r\n {\r\n headerName: \"Item Number\",\r\n field: \"partNumber\",\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n resizable: true,\r\n width: 150,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n\r\n {\r\n headerName: \"Stk\",\r\n cellStyle: {\r\n textAlign: \"left \",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"stockNonStock\",\r\n resizable: true,\r\n width: 100,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Mfg Part Number\",\r\n cellStyle: {\r\n textAlign: \"left \",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"manufacturerPartNumber\",\r\n resizable: true,\r\n width: 150,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Item Description\",\r\n cellStyle: {\r\n textAlign: \"left\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n valueFormatter: orderDescription,\r\n field: \"partDescription\", \r\n resizable: true,\r\n width: 280,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n\r\n {\r\n headerName: \"Order Qty\",\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"quantityOrdered\",\r\n resizable: true,\r\n width: 120,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Reserved Ship Qty\",\r\n cellStyle: {\r\n textAlign: \"left\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"reservedShipQuantity\",\r\n resizable: true,\r\n width: 180,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n\r\n {\r\n headerName: \"Unit Price\",\r\n valueFormatter: currencyFormatter,\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n type: \"rightAligned\",\r\n field: \"unitPrice\",\r\n resizable: true,\r\n width: 120,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Weight\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n type: \"rightAligned\",\r\n field: \"extendedWeight\",\r\n resizable: true,\r\n width: 80,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Cubes\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"extendedCube\",\r\n resizable: true,\r\n width: 80,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Qty On Hand\",\r\n hide: user.toUser.QuantityOnHandViewPermission == \"Y\" ? false: true,\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"quantityOnHand\",\r\n resizable: true,\r\n width: 120,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Qty On Order\",\r\n hide: user.toUser.QuantityOnOrderViewPermission == \"Y\" ? false: true,\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"quantityOnOrder\",\r\n resizable: true,\r\n width: 130,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Estimated Delivery Date\",\r\n hide: user.toUser.QuantityOnOrderViewPermission == \"Y\" ? false: true,\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"dateScheduled\",\r\n cellRenderer: dateFormatter,\r\n resizable: true,\r\n width: 200,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n ],\r\n\r\n rowData: [],\r\n exportData: [],\r\n orderNumber: [],\r\n orderStatus: [],\r\n customerNumber: '',\r\n shipToNumber: [],\r\n customerAddress1:'',\r\n customerAddress2: '',\r\n customerCity: '',\r\n customerState: '',\r\n customerZipCode: '',\r\n customerCountry: [],\r\n shipToAddress1: '',\r\n shipToAddress2: '',\r\n shipToCity: '',\r\n shipToState: '',\r\n shipToZipCode: '',\r\n shipToCountry: '',\r\n shipViaName: '',\r\n customerName:'',\r\n proNumber:'',\r\n shipVia: '',\r\n showUPSDisplay: false,\r\n showOD: true,\r\n selectedUPS: \"\",\r\n selectedUPSSeq: \"\",\r\n selectgedUPSSeqString: \"\",\r\n selectedLocation: \"\",\r\n showFEDEX: false,\r\n isfedx: false,\r\n orderComment1:'',\r\n orderComment2:'',\r\n defaultColDef: { resizable: true, sortable: true },\r\n };\r\n }\r\n\r\n getExportColumns() {\r\n let exportColumnsList = [\r\n \"ItemNumber\",\r\n \"Stk\",\r\n \"MfgPartNumber\",\r\n \"ItemDescription\",\r\n \"OrderQty\",\r\n \"ReservedShipQty\",\r\n \"UnitPrice\",\r\n \"Weight\",\r\n \"Cubes\"];\r\n if(user.toUser.QuantityOnHandViewPermission == \"Y\")\r\n exportColumnsList.push(\"QtyOnHand\");\r\n if(user.toUser.QuantityOnOrderViewPermission == \"Y\")\r\n exportColumnsList.push(\"QuantityOnOrder\");\r\n if(user.toUser.QuantityOnOrderViewPermission == \"Y\")\r\n exportColumnsList.push(\"EstimatedDeliveryDate\");\r\n\r\n return exportColumnsList;\r\n }\r\n handleUPSlick(order, orderSeq) {\r\n this.setState({\r\n showUPSDisplay: true,\r\n showOD: false,\r\n selectedUPS: order,\r\n selectedUPSSeq: orderSeq,\r\n selectgedUPSSeqString: (\"0\" + orderSeq).slice(-2),\r\n });\r\n }\r\n handleFDXClick(order, location, orderSeq) {\r\n this.setState({\r\n showUPSDisplay: true,\r\n showOD: false,\r\n isfedx: true,\r\n showFEDEX: true,\r\n selectedUPS: order,\r\n selectedUPSSeq: orderSeq,\r\n selectedLocation: location,\r\n });\r\n }\r\n componentDidMount() {\r\n var customerNumber = localStorage.getItem(\"identityKey\");\r\n var loginType = localStorage.getItem(\"loginTypeCode\");\r\n var companyNumber = localStorage.getItem(\"companyNumber\");\r\n this.setState({displayOrderNumber: orderFormater(this.props.selectedOrder,this.props.selectedOrderSeq)});\r\n //alert(this.props.showups)\r\n getOrderDetails(\r\n customerNumber,\r\n this.props.selectedLocation,\r\n this.props.selectedOrder,\r\n this.props.selectedOrderSeq,\r\n this.props.selectedInvoice,\r\n loginType\r\n ).then((data) => {\r\n this.setState({ rowData: data });\r\n this.setState({\r\n exportData: getDetailData(data, this.getExportColumns()),\r\n });\r\n });\r\n getOrderDetailsTop(\r\n companyNumber,\r\n this.props.selectedLocation,\r\n this.props.selectedOrder,\r\n this.props.selectedOrderSeq,\r\n this.props.selectedInvoice\r\n ).then((data) => {\r\n if (data.length>0)\r\n {\r\n \r\n this.setState({customerName:data[0].customerName});\r\n this.setState({customerAddress1:data[0].customerAddress1});\r\n this.setState({customerAddress2:data[0].customerAddress2});\r\n this.setState({customerCity:data[0].customerCity});\r\n this.setState({customerState:data[0].customerState});\r\n this.setState({customerZipCode:data[0].customerZipCode});\r\n this.setState({proNumber:data[0].proNumber});\r\n this.setState({shipViaName:data[0].shipViaName});\r\n this.setState({shipVia:data[0].shipVia});\r\n this.setState({customerNumber:data[0].customerNumber})\r\n this.setState({shipToNumber: data[0].shipToNumber == null || data[0].shipToNumber.trim() === \"\" ? data[0].shipToName : data[0].shipToNumber })\r\n//ship details\r\nthis.setState({shipToAddress1:data[0].shipToAddress1});\r\nthis.setState({shipToAddress2:data[0].shipToAddress2});\r\nthis.setState({shipToCity:data[0].shipToCity});\r\nthis.setState({shipToState:data[0].shipToState});\r\nthis.setState({shipToZipCode:data[0].shipToZipCode});\r\nthis.setState({shipToCountry:data[0].shipToCountry});\r\nthis.setState({orderComment1:data[0].orderComment1});\r\nthis.setState({orderComment2:data[0].orderComment2});\r\nthis.setState({displayOrderNumber: orderFormater(this.props.selectedOrder,data[0].orderSequenceNumber)});\r\n\r\n }\r\n \r\n });\r\n }\r\n\r\n handleInvoiceClick = () => {\r\n this.setState({showLoading:true});\r\n var pdfWindow = window.open('','_blank');\r\n pdfWindow.document.body.innerHTML = \"

Downloading Invoice Image...

\"; \r\n \r\n const custno=String(localStorage.getItem(\"customerNumber\")).padStart(6, '0');\r\n\r\n\r\n return fetch(\r\n `${api.proxyUrlForDownload}${api.url}${encodedURL(\r\n `/pdf-downloader/invoice-pdf-download?invoiceId=${this.props.selectedInvoice}&companyNumber=${this.state.companyNumber}&group=${custno}`\r\n )}`,\r\n {\r\n method: \"GET\",\r\n headers: authHeader(),\r\n }\r\n )\r\n .then((response) => {if(response.status === 500) {\r\n throw new Error('Error while downloading the Invoice Image.')\r\n } \r\n else return response.blob()})\r\n .then((response) => {\r\n const file = new Blob([response], { type: \"application/pdf\" });\r\n const fileURL = URL.createObjectURL(file);\r\n // if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(file);\r\n // return;\r\n // }\r\n //const pdfWindow = window.open(fileURL,'_blank'); \r\n pdfWindow.location.href = fileURL;\r\n this.setState({showLoading:false});\r\n }, \r\n (error) => { \r\n pdfWindow.close(); \r\n this.setState({showLoading:false});\r\n this.setState({\r\n show: true,\r\n userMessage: 'Error while downloading the Invoice Image.\\n Please retry after some time.'\r\n });\r\n })\r\n .catch(function(error) {\r\n pdfWindow.close(); \r\n this.setState({showLoading:false});\r\n console.log(error);\r\n });\r\n}\r\n render() {\r\n const renderInventoryGrid = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n
\r\n {this.state.showLoading && \r\n }\r\n {/*
Display Order
*/}\r\n\r\n
\r\n {this.state.showOD ? (\r\n
\r\n
\r\n
\r\n {/*

Order Details Filter : {this.props.selectedPO}

*/}\r\n {/* TopSection */}\r\n \r\n
\r\n
\r\n \r\n {this.state.displayOrderNumber}\r\n
\r\n
\r\n \r\n {this.props.selectedStatus}\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {this.state.customerNumber}\r\n
\r\n
\r\n \r\n {localStorage.getItem(\"shipToDO\")}\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {this.state.customerName}\r\n
\r\n\r\n\r\n
\r\n {this.state.shipToNumber}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {this.state.customerAddress1} {this.state.customerAddress2}\r\n
\r\n\r\n\r\n
\r\n {this.state.shipToAddress1}   {this.state.shipToAddress2}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {this.state.customerCity} {this.state.customerCity.trim().length > 0 ? ',': ''} {this.state.customerState}  {this.state.customerZipCode}\r\n
\r\n\r\n\r\n
\r\n {this.state.shipToCity} {this.state.shipToCity.trim().length > 0 ? ',': ''} {this.state.shipToState}  {this.state.shipToZipCode}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {this.props.selectedPO}\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n {this.state.proNumber}\r\n
\r\n
\r\n \r\n {this.state.shipViaName}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {this.props.selectedInvoice}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {this.props.showups === \"UPS\" ? (\r\n \r\n ) : this.props.showups === \"FEDEX\" ? (\r\n \r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n {this.props.selectedInvoice!==null && this.props.selectedInvoice!=='' ? \r\n
\r\n \r\n Show Invoice\r\n \r\n
\r\n :'' } \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {1 > 0 ? (\r\n \r\n \r\n \r\n ) : null}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {renderInventoryGrid()}\r\n
\r\n
\r\n
\r\n ) : (\r\n this.state.showUPSDisplay && (\r\n
\r\n \r\n
\r\n )\r\n )}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default OrderDetails;\r\nfunction currencyFormatter(params) {\r\n if (params.value !== undefined && params.value !== \"\"){\r\n if (parseFloat(params.value) < 0) return \"-$\" + (parseFloat(params.value).toFixed(2) * -1).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n else return \"$\" + (parseFloat(params.value).toFixed(2)).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n else\r\n return \"\";\r\n}\r\nfunction dateFormatter(param) {\r\n if(param.value != null && param.value != \"\" && param.value != undefined){\r\n var d = param.value.split(\" \");\r\n var dateValue = d[0];\r\n return dateValue;\r\n }\r\n else return \"\";\r\n}\r\nfunction orderDescription(params){\r\n return params.data.partDescription.trim() + \" \"+ params.data.additionalPartDescription.trim();\r\n}\r\n\r\nfunction orderFormater(orderNumber,orderSeq) {\r\n return (\r\n orderNumber +\r\n \"-\" +\r\n (\"0\" + orderSeq).slice(-2)\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ARBucket from \"./ARBucketGrid\";\r\nimport { AgGridReact } from \"ag-grid-react\";\r\nimport \"ag-grid-community/dist/styles/ag-grid.css\";\r\nimport \"ag-grid-community/dist/styles/ag-theme-alpine.css\";\r\nimport downloadbutton from \"../../assets/images/downloadbutton.gif\";\r\nimport AccountPayableFilter from \"./AccountPayableFilter\";\r\nimport { getArBucketItems } from \"../../_services/accountsPayable.service\";\r\nimport api from \"../../_services/apiUrl\";\r\nimport { CSVLink } from \"react-csv\";\r\nimport { getAPData } from \"../../_services/accountsPayable.service\";\r\nimport ARBucketChart from \"./ARBucketChart\";\r\nimport { getFilteredARData } from \"../../_services/accountsPayable.service\";\r\nimport { getFilteredAPData } from \"../../_services/accountsPayable.service\";\r\nimport appConstants from \"../../_services/applicationConstant\";\r\nimport OrderDetails from \"../../modules/DisplayOrders/OrderDetails\";\r\nimport ESSModal from \"../../components/ESSModal.jsx\";\r\nimport ESSProgressBar from \"../../components/ESSProgressBar\";\r\nimport ESSLoadingModal from \"../../components/ESSLoadingModal\";\r\nimport {authHeader, encodedURL} from \"../../_helpers/auth-header\"\r\n\r\nclass AccountsPayable extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.handlePOClick = this.handlePOClick.bind(this);\r\n this.handleInvoiceClick = this.handleInvoiceClick.bind(this);\r\n\r\n this.state = {\r\n _isMounted: false,\r\n companyNumber: localStorage.getItem(\"companyNumber\"),\r\n customerNumber: localStorage.getItem(\"customerNumber\"),\r\n jwtToken: localStorage.getItem(\"id_token\"),\r\n searchClicked: false,\r\n showProgressBar: false,\r\n bucketSelected: \"0\",\r\n defaultColDef: {\r\n sortable: true,\r\n sortingOrder: [\"desc\", \"asc\"],\r\n },\r\n columnDefs: [\r\n {\r\n headerName: \"Invoice #\",\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n tooltip: (params) =>\r\n \"Click to view an Image of Invoice#\" + \"\" + params.value,\r\n field: \"ReferenceNumber\",\r\n width: 130,\r\n resizable: true,\r\n width: 120,\r\n cellRendererFramework: (props) => {\r\n if(props.value === null || props.value === \"\")\r\n return \"\";\r\n else\r\n return (\r\n \r\n {props.value}{\" \"}\r\n \r\n );\r\n },\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n sortable: true,\r\n },\r\n {\r\n headerName: \"Invoice Date\",\r\n field: \"InvoiceDate\",comparator:fn_DateCompare,\r\n resizable: true,\r\n width: 160,\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n cellRenderer: invoiceDateFormatter,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n sortable: true,\r\n tooltip: (params) => \"Double click to show the details for an order\"\r\n },\r\n {\r\n headerName: \"PO #\",\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"PoNumber\",\r\n resizable: true,\r\n width: 130,\r\n tooltip: (params) => \"Double click to show the details for an order\",\r\n cellRendererFramework: (props) => {\r\n return (\r\n \r\n {props.value}{\" \"}\r\n \r\n );\r\n },\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n sortable: true,\r\n },\r\n {\r\n headerName: \"Order #\",\r\n tooltip: (params) => \"Double click to show the details for an order\",\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"OrderNumber\",\r\n resizable: true,\r\n width: 130,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n sortable: true,\r\n },\r\n {\r\n headerName: \"Days Old\",\r\n tooltip: (params) => \"Double click to show the details for an order\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n comparator: compare,\r\n field: \"Days\",\r\n resizable: true,\r\n width: 100,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n sortable: true,\r\n },\r\n {\r\n headerName: \"Customer #\",\r\n tooltip: (params) => \"Double click to show the details for an order\",\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"SoldCustomer\",\r\n resizable: true,\r\n width: 130,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n sortable: true,\r\n },\r\n {\r\n headerName: \"Ship To #\",\r\n tooltip: (params) => \"Double click to show the details for an order\",\r\n field: \"SoldShipTo\",\r\n resizable: true,\r\n width: 130,\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n sortable: true,\r\n },\r\n {\r\n headerName: \"Address\",\r\n tooltip: (params) => \"Double click to show the details for an order\",\r\n resizable: true,\r\n width: 190,\r\n cellStyle: {\r\n textAlign: \"left\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"City\",\r\n headerClass:`${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n sortable: true,\r\n },\r\n {\r\n headerName: \"\tCurrent Balance\",\r\n tooltip: (params) => \"Double click to show the details for an order\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n valueFormatter: currencyFormatter,\r\n comparator: compare,\r\n field: \"CurrentBalance\",\r\n resizable: true,\r\n width: 120,\r\n type: \"rightAligned\",\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n sortable: true,\r\n },\r\n {\r\n headerName: \"Original Balance\",\r\n tooltip: (params) => \"Double click to show the details for an order\",\r\n cellStyle: { textAlign: \"right\" },\r\n valueFormatter: currencyFormatter,\r\n comparator: compare,\r\n field: \"OriginalAmount\",\r\n resizable: true,\r\n width: 120,\r\n type: \"rightAligned\",\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n sortable: true,\r\n },\r\n ],\r\n rowData: [],\r\n accountsPayableList: [],\r\n showOD: false,\r\n selectedInvoice: \"\",\r\n selectedLocation: \"\",\r\n selectedOrder: \"\",\r\n selectedOrderSeq: \"\",\r\n selectedPO: \"\",\r\n showLoading: false,\r\n };\r\n this.APFilterRef = React.createRef();\r\n }\r\n handlePOClick(data) {\r\n this.setState({\r\n showOD: true,\r\n selectedInvoice: data.ReferenceNumber,\r\n selectedLocation: data.Location,\r\n selectedOrder: data.OrderNumber,\r\n selectedOrderSeq: \"00\",\r\n selectedPO: data.PoNumber, \r\n });\r\n }\r\n\r\n handleInvoiceClick(data) { \r\n this.setState({showLoading:true}); \r\n var pdfWindow = window.open('','_blank');\r\n pdfWindow.document.body.innerHTML = \"

Downloading Invoice Image...

\"; \r\n const custno=String(localStorage.getItem(\"customerNumber\")).padStart(6, '0');\r\n\r\n return fetch(\r\n `${api.proxyUrlForDownload}${api.url}${encodedURL(\r\n `/pdf-downloader/invoice-pdf-download?invoiceId=${data.ReferenceNumber}&companyNumber=${this.state.companyNumber}&group=${custno}`\r\n )}`,\r\n {\r\n method: \"GET\",\r\n headers: authHeader(),\r\n }\r\n )\r\n .then((response) => {if(response.status === 500) {\r\n throw new Error('Error while downloading the Invoice Image.')\r\n } \r\n else return response.blob()})\r\n .then((response) => {\r\n const file = new Blob([response], { type: \"application/pdf\" });\r\n const fileURL = URL.createObjectURL(file);\r\n // if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(file);\r\n // return;\r\n // }\r\n //const pdfWindow = window.open(fileURL,'_blank');\r\n pdfWindow.location.href = fileURL;\r\n this.setState({showLoading:false}); \r\n }, \r\n (error) => { \r\n pdfWindow.close(); \r\n this.setState({showLoading:false}); \r\n this.setState({\r\n show: true,\r\n userMessage: 'Error while downloading the Invoice Image.\\n Please retry after some time.'\r\n });\r\n })\r\n .catch(function(error) {\r\n pdfWindow.close(); \r\n console.log(error);\r\n this.setState({showLoading:false});\r\n });\r\n }\r\n\r\n componentWillUnmount() {\r\n this.setState({ _isMounted: false });\r\n }\r\n\r\n // componentDidMount() {\r\n\r\n // // this.setState({ _isMounted: true });\r\n // // if (this.state._isMounted) {\r\n // getArBucketItems()\r\n // .then((data) => {\r\n // this.setState({\r\n // accountsPayableList: getFilteredARData(\r\n // data.sort((a, b) => (a.sort > b.sort ? 1 : -1))\r\n // ),\r\n // },() =>{\r\n // console.log(this.state.accountsPayableList);\r\n // });\r\n // })\r\n // .catch(console.log);\r\n // // }\r\n // }\r\n\r\n doSearch = (\r\n selectedsearchText,\r\n selectedselectedShipTo,\r\n selectedType,\r\n selecteddaysOld,\r\n selectedStatus,\r\n selectedfromDate,\r\n selectedtoDate\r\n ) => {\r\n this.setState({ searchClicked: true, showProgressBar: true, rowData:[] });\r\n //getAPData(shipTo, searchText, searchType, fromDate, toDate, status, bucket, showInvoice)\r\n getAPData(\r\n selectedselectedShipTo,\r\n selectedsearchText,\r\n selectedType,\r\n selectedfromDate,\r\n selectedtoDate,\r\n selectedStatus,\r\n selecteddaysOld,\r\n \"\"\r\n ).then((data) => {\r\n this.setState({ showProgressBar: false });\r\n if (data !== null && data.length > 0)\r\n {\r\n this.setState({ accountsPayableList: getFilteredAPData(data) });\r\n this.setState({ rowData: data });\r\n }\r\n else\r\n {\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"No Matching Details Have Been Found.\",\r\n });\r\n }\r\n });\r\n };\r\n handleClose = () => this.setState({ show: false });\r\n\r\n clearBucketSelection = (selecteddaysOld) => {\r\n this.setState({ bucketSelected: selecteddaysOld }, () => {\r\n this.APFilterRef.current.UpdateDaysSelected(selecteddaysOld);\r\n });\r\n };\r\n rowSelected = (bucket) => {\r\n this.setState({ searchClicked: true, bucketSelected: bucket, showProgressBar: true,rowData:[] });\r\n getAPData(\"0\", \"\", \"\", \"\", \"\", \"\", bucket, \"\").then((data) => {\r\n this.setState({ showProgressBar: false });\r\n\r\n if (data !== null && data.length > 0){\r\n this.setState({ accountsPayableList: getFilteredAPData(data) });\r\n this.setState({ rowData: data });\r\n }\r\n else\r\n {\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"No Matching Details Have Been Found.\",\r\n });\r\n }\r\n });\r\n };\r\n\r\n componentDidMount() {\r\n getArBucketItems()\r\n .then((data) => { \r\n\r\n this.setState({\r\n // accountsPayableList: data.sort((a, b) => (a.sort > b.sort ? 1 : -1)),\r\n accountsPayableList: getFilteredARData(\r\n data.sort((a, b) => (a.sort > b.sort ? 1 : -1))\r\n ),\r\n });\r\n })\r\n .catch(console.log);\r\n }\r\n\r\n apSummaryClick = () => {\r\n this.setState({ searchClicked: false, showOD: false });\r\n getArBucketItems()\r\n .then((data) => {\r\n this.setState({\r\n accountsPayableList: data.sort((a, b) => (a.sort > b.sort ? 1 : -1)),\r\n });\r\n })\r\n .catch(console.log);\r\n };\r\n apDetailsClick = () => {\r\n this.setState({ showOD: false });\r\n };\r\n onRowDoubleClicked = () => {\r\n var selectedRows = this.gridApi.getSelectedRows();\r\n this.setState({\r\n showOD: true,\r\n selectedInvoice: selectedRows[0].ReferenceNumber,\r\n selectedLocation: selectedRows[0].Location,\r\n selectedOrder: selectedRows[0].OrderNumber,\r\n selectedOrderSeq: \"00\",\r\n selectedPO: selectedRows[0].PoNumber,\r\n });\r\n }\r\n onGridReady = (params) => {\r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi;\r\n params.api.sizeColumnsToFit();\r\n };\r\n render() {\r\n const renderAPGrid = () => {\r\n return (\r\n \r\n {this.state.showProgressBar?\r\n \r\n :''}\r\n \r\n \r\n );\r\n };\r\n return (\r\n
\r\n \r\n {this.state.showLoading && \r\n }\r\n {this.state.show && (\r\n \r\n )}\r\n \r\n
\r\n
\r\n {this.state.showOD ? (\r\n
Order Details
\r\n ) : (\r\n
Accounts Payable
\r\n )}\r\n
\r\n
\r\n {this.state.searchClicked ? (\r\n
\r\n
\r\n
\r\n \r\n AP Summary\r\n \r\n {\" > \"}\r\n \r\n
\r\n
\r\n {this.state.showOD ? (\r\n \r\n AP Detail {\" > \"}\r\n \r\n ) : (\r\n AP Detail\r\n )}\r\n
\r\n {this.state.showOD ? (\r\n
\r\n Order Details\r\n
\r\n ) : null}\r\n
\r\n
\r\n ) : (\r\n
\r\n )}\r\n
\r\n
\r\n \r\n {!this.state.showOD ? (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {this.state.accountsPayableList.length > 0 ? (\r\n \r\n \r\n \r\n ) : undefined}\r\n
\r\n
\r\n
\r\n {this.state.searchClicked ? (\r\n
{renderAPGrid()}
\r\n ) : (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n ) : (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default AccountsPayable;\r\nfunction currencyFormatter(params) {\r\n if (params.value !== undefined && params.value !== \"\" && params.value !== null && params.value!== '0' && params.value!== '0.00') {\r\n if (parseFloat(params.value) < 0) return \"-$\" + (parseFloat(params.value).toFixed(2) * -1).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n else return \"$\" + (parseFloat(params.value).toFixed(2)).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n return \"$0.00\";\r\n}\r\n\r\nfunction invoiceLinkFormatter(param) {\r\n return (\r\n `' +\r\n param.value +\r\n \"\"\r\n )\r\n}\r\n\r\nfunction poLinkFormatter(param) {\r\n return (\r\n '' +\r\n param.value +\r\n \"\"\r\n );\r\n}\r\nfunction fn_DateCompare(DateA, DateB) {\r\n var a = new Date(DateA);\r\n var b = new Date(DateB);\r\n \r\n var msDateA = Date.UTC(a.getFullYear(), a.getMonth()+1, a.getDate());\r\n var msDateB = Date.UTC(b.getFullYear(), b.getMonth()+1, b.getDate());\r\n \r\n if (parseFloat(msDateA) < parseFloat(msDateB))\r\n return -1; // less than\r\n else if (parseFloat(msDateA) == parseFloat(msDateB))\r\n return 0; // equal\r\n else if (parseFloat(msDateA) > parseFloat(msDateB))\r\n return 1; // greater than\r\n else\r\n return null; // error\r\n }\r\n\r\nfunction invoiceDateFormatter(param) {\r\n if(param.value != null && param.value != \"\" && param.value != undefined){\r\n var d = param.value.split(\" \");\r\n var dateValue = d[0];\r\n return dateValue;\r\n }\r\n else return \"\";\r\n}\r\nfunction compare (number1, number2) {\r\n if (number1 === null && number2 === null) {\r\n return 0;\r\n }\r\n if(isNaN(number1)){ return -1}\r\n if(isNaN(number2)){ return 1}\r\n if (number1 === null) {\r\n return -1;\r\n }\r\n if (number2 === null) {\r\n return 1;\r\n }\r\n return number1 - number2;}","import React, { Component } from \"react\";\r\nimport bunzlCSS from \"../../assets/css/bunzlUI.css\";\r\nimport {getSearchTypes} from \"../../_services/inventory.service\";\r\nimport {getVendors} from \"../../_services/inventory.service\";\r\nimport {getPageNumbers} from \"../../_services/inventory.service\"\r\nimport appConstants from \"../../_services/applicationConstant\";\r\nimport { decryptData } from \"../../Utils\";\r\n\r\nclass PriceListFilter extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state={\r\n searchTypes: getSearchTypes(appConstants.isR3App),\r\n pageNumbers: getPageNumbers(),\r\n vendors: [],\r\n selectedType:'none',\r\n selectedVendor:'0',\r\n searchText:'',\r\n pageCount:'20',\r\n qualifier:'contains',\r\n searchClicked:false\r\n }\r\n }\r\n \r\n componentDidMount() {\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"id_token\"), salt);\r\n getVendors(localStorage.getItem('companyNumber'),originalData)\r\n .then((data) => {\r\n this.setState({ vendors: data })\r\n })\r\n .catch(console.log)\r\n \r\n\r\n }\r\n onQualifierChange= (event) => {\r\n this.setState({\r\n qualifier: event.target.value\r\n });\r\n }\r\n\r\n myChangeHandler = (event) => {\r\n let nam = event.target.name;\r\n let val = event.target.value;\r\n this.setState({ [nam]: val }); \r\n }\r\n resetFilter = () => {\r\n this.setState({\r\n selectedType:'none',\r\n selectedVendor:'0',\r\n searchText:'',\r\n pageCount:'20',\r\n qualifier:'contains'\r\n });\r\n }\r\n\r\n searchClicked=() =>{\r\n this.props.doSearch(this.state.searchText,\r\n this.state.selectedVendor,\r\n this.state.selectedType,\r\n this.state.pageCount,\r\n this.state.qualifier);\r\n \r\n }\r\n\r\n render() {\r\n const enabled =\r\n ((this.state.searchText.length == 0 && this.state.selectedType == \"none\") &&\r\n this.state.selectedVendor !== \"0\" )\r\n ||\r\n (this.state.searchText.length > 0 && this.state.selectedType != \"none\" )\r\n ;\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {this.state.searchTypes.map((type) => )}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
 
\r\n
\r\n
\r\n \r\n
\r\n \r\n {this.state.pageNumbers.map((page) => )}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default PriceListFilter;\r\n","import api from './apiUrl';\r\nimport {authHeader,encodedURL} from '../_helpers/auth-header'\r\n\r\nvar identityKey=localStorage.getItem('identityKey')\r\n\r\nexport function getSearchTypes(isR3){\r\nvar searchTypes = [\r\n { value: \"CP\", label: 'Customer Part' },\r\n { value: \"DS\", label: 'Description' }, \r\n { value: \"VP\", label: 'Vendor Part' } \r\n];\r\nif(isR3)\r\nsearchTypes.push( {value: \"IT\", label: 'R3 Item #'});\r\nelse\r\nsearchTypes.push( {value: \"IT\", label: 'Item #'});\r\nreturn searchTypes; \r\n}\r\n\r\nexport function getPageNumbers(){\r\n var pageNumbers = [\r\n { value: \"20\", label: '20' },\r\n { value: \"50\", label: '50' }, \r\n { value: \"100\", label: '100' } ,\r\n { value: \"500\", label: '500' } ,\r\n { value: \"1000\", label: '1000' } ,\r\n { value: \"5000\", label: '5000' },\r\n { value: \"10000\", label: '10000' },\r\n { value: \"15000\", label: '15000' },\r\n { value: \"32000\", label: '32000' },\r\n\r\n ];\r\n \r\n return pageNumbers; \r\n}\r\nfunction getDescription(desc)\r\n{\r\n return desc.replace(/\"/g,'\\\"\"') ;\r\n}\r\n\r\nexport function getFilteredData(data){\r\n let filteredData=[];\r\n data.forEach((item) => {\r\n filteredData.push({\r\n itemNumber: item.itemNumber,\r\n vendorPart: item.vendorPart,\r\n customerPartNumber: item.customerPartNumber,\r\n description: getDescription(item.description),\r\n flyerPage: item.flyerPage,\r\n sellCase: item.sellCase,\r\n sellUms: item.sellUms,\r\n sellPrice: currencyFormatter(item.sellPrice),\r\n listPrice: currencyFormatter(item.listPrice),\r\n pendPrice: currencyFormatter(item.pendPrice),\r\n effectiveDate: dateFormatter(item.effectiveDate),\r\n directValue:''\r\n });\r\n })\r\n return filteredData; \r\n}\r\n \r\n\r\nexport function getVendors(companyNumber, jwtToken) {\r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/inventory/vendors?companyNumber=${companyNumber}`)}`, {\r\n method: 'GET',\r\n headers:authHeader()\r\n }).then(response => response.json());\r\n}\r\n\r\nexport function getPriceListReport(){\r\n var urlparam='&numberRows='+32000\r\n urlparam+='&qualifier='+'contains'\r\n \r\n urlparam+='&vendor='+''\r\n \r\n \r\n urlparam+='&searchWordType='+''\r\n \r\n urlparam+='&searchWord='+''\r\n \r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/pricelist/getpricelist?identityKey=${identityKey.trim()}&companyNumber=${localStorage.getItem('companyNumber')}&customerNumber=${localStorage.getItem('customerNumber')}&loginType=${localStorage.getItem('loginTypeCode')}${urlparam}`)}`, {\r\n method: 'GET',\r\n headers:authHeader()\r\n }).then(response => response.json());\r\n \r\n }\r\n\r\nexport function getInventoryItems(url = '', jwtToken){\r\n return fetch(url, {\r\n method: 'GET',\r\n headers: authHeader()\r\n }).then(response => response.json());\r\n}\r\n\r\nexport function getPriceListData(searchText, vendor, searchType, pageCount, qualifier)\r\n\r\n{\r\n var urlparam='&numberRows='+pageCount\r\n urlparam+='&qualifier='+qualifier\r\n if(vendor!=='0')\r\n {\r\n urlparam+='&vendor='+vendor\r\n }\r\n if(searchType!=='none')\r\n {\r\n urlparam+='&searchWordType='+searchType\r\n }\r\n if(searchText!=='')\r\n {\r\n urlparam+='&searchWord='+searchText\r\n }\r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/pricelist/getpricelist?identityKey=${identityKey.trim()}&companyNumber=${localStorage.getItem('companyNumber')}&customerNumber=${localStorage.getItem('customerNumber')}&loginType=${localStorage.getItem('loginTypeCode')}${urlparam}`)}`, {\r\n method: 'GET',\r\n headers:authHeader()\r\n }).then(response => response.json());\r\n}\r\n function currencyFormatter(value) {\r\n if (value !== undefined && value !== \"\") {\r\n if (parseFloat(value) < 0) return \"-$\" + (parseFloat(value).toFixed(2) * -1).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n else return \"$\" + (parseFloat(value).toFixed(2)).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n return \"\";\r\n }\r\nfunction dateFormatter(inputDate) {\r\n if(inputDate != null && inputDate != \"\" && inputDate != undefined){\r\n var d = inputDate.split(\" \");\r\n var dateValue = d[0];\r\n return dateValue;\r\n }\r\n else return \"\";\r\n }\r\n \r\n \r\n","import React, { Component } from \"react\";\r\nimport downloadAll from '../assets/images/DownloadAll.png';\r\nimport downloadSpinner from '../assets/images/downloadSpinner.gif';\r\nimport {CSVLink} from 'react-csv';\r\nimport {getPriceListReport} from \"../_services/priceList.service\";\r\nimport { getFilteredData } from \"../_services/priceList.service\";\r\nexport default class ExportPriceListReport extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n priceList: [],\r\n showbutton:true,\r\n headers :[\r\n { label: 'Item Number', key: 'itemNumber' },\r\n { label: 'Vendor Part Number', key: 'vendorPart' },\r\n { label: 'Customer Part Number', key: 'customerPartNumber' },\r\n { label: 'Description', key: 'description' },\r\n { label: 'Page', key: 'flyerPage' },\r\n { label: 'Case/Pack', key: 'sellCase' },\r\n { label: 'PackDesc', key: 'sellUms' },\r\n { label: 'List Price', key: 'listPrice' }, \r\n { label: 'Price', key: 'sellPrice' },\r\n { label: 'Pending Price', key: 'pendPrice' },\r\n { label: 'Pending Effective Date', key: 'effectiveDate' }, \r\n { label: 'Direct', key: 'directValue' } , \r\n ]\r\n }\r\n this.csvLink = React.createRef();\r\n }\r\n componentDidMount() {\r\n \r\n }\r\n fetchData = () =>{\r\n this.setState({ showbutton: false });\r\n\r\n getPriceListReport()\r\n .then((data) => { \r\n this.setState({ priceList: getFilteredData(data)},\r\n ()=>{\r\n setTimeout(() => {\r\n this.csvLink.current.link.click();\r\n }, 50);\r\n this.setState({ showbutton: true });\r\n\r\n }) \r\n });\r\n }\r\n render() {\r\n return (\r\n
\r\n {\r\n this.state.showbutton?\r\n \r\n : \"Downloading\r\n }\r\n \r\n \r\n {/* { this.state.priceList.length > 0 ? \r\n \r\n \"Download\r\n \r\n : undefined} */}\r\n
\r\n );\r\n }\r\n }","import React, { Component } from \"react\";\r\n\r\nimport { AgGridReact } from \"ag-grid-react\";\r\nimport \"ag-grid-community/dist/styles/ag-grid.css\";\r\nimport \"ag-grid-community/dist/styles/ag-theme-alpine.css\";\r\nimport downloadbutton from \"../../assets/images/downloadbutton.gif\";\r\nimport PriceListFilter from \"./PriceListFilter\";\r\nimport { getFilteredData } from \"../../_services/priceList.service\";\r\nimport { CSVLink } from \"react-csv\";\r\nimport ExportPriceListReport from \"../../components/ExportPriceListReport\";\r\nimport { getPriceListData } from \"../../_services/priceList.service\";\r\nimport appConstants from \"../../_services/applicationConstant\";\r\nimport ESSModal from \"../../components/ESSModal.jsx\";\r\nimport ESSProgressBar from \"../../components/ESSProgressBar\";\r\n\r\n\r\nclass PriceList extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n headers :[\r\n { label: 'Item Number', key: 'itemNumber' },\r\n { label: 'Vendor Part Number', key: 'vendorPart' },\r\n { label: 'Customer Part Number', key: 'customerPartNumber' },\r\n { label: 'Description', key: 'description' },\r\n { label: 'Page', key: 'flyerPage' },\r\n { label: 'Case/Pack', key: 'sellCase' },\r\n { label: 'PackDesc', key: 'sellUms' },\r\n { label: 'List Price', key: 'listPrice' }, \r\n { label: 'Price', key: 'sellPrice' },\r\n { label: 'Pending Price', key: 'pendPrice' },\r\n { label: 'Pending Effective Date', key: 'effectiveDate' } ,\r\n { label: 'Direct', key: 'directValue' } \r\n ],\r\n searchText: \"\",\r\n vendor: \"\",\r\n show: false,\r\n userMessage: \"\",\r\n searchType: \"\",\r\n pageCount: \"\",\r\n qualifier: \"\",\r\n rowData: null,\r\n searchClicked: false,\r\n columnDefs: [\r\n {\r\n headerName: \"Item Number\",\r\n field: \"itemNumber\",\r\n sortable: true,\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n resizable: true,\r\n width: 120,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Vendor Part Number\",\r\n field: \"vendorPart\",\r\n sortable: true,\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n resizable: true,\r\n width: 120,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Customer Part Number\",\r\n sortable: true,\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"customerPartNumber\",\r\n resizable: true,\r\n width: 120,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Description\",\r\n sortable: true,\r\n field: \"description\",\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n resizable: true,\r\n width: 120,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Page\",\r\n field: \"flyerPage\",\r\n sortable: true,\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n comparator: compare,\r\n resizable: true,\r\n width: 120,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Case/Pack\",\r\n field: \"sellCase\",\r\n sortable: true,\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n resizable: true,\r\n width: 120,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Pack Description\",\r\n sortable: true,\r\n field: \"sellUms\",\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n resizable: true,\r\n width: 120,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"List Price\",\r\n field: \"listPrice\",\r\n sortable: true, \r\n hide: localStorage.getItem('loginTypeCode') === 'C' ? false : true,\r\n valueFormatter: currencyFormatter,\r\n comparator: compare,\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n type: \"rightAligned\",\r\n resizable: true,\r\n width: 120,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Price\",\r\n field: \"sellPrice\",\r\n sortable: true,\r\n valueFormatter: currencyFormatter,\r\n comparator: compare,\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n type: \"rightAligned\",\r\n resizable: true,\r\n width: 120,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n }, \r\n {\r\n headerName: \"Pending Price\",\r\n field: \"pendPrice\",\r\n type: \"rightAligned\",\r\n valueFormatter: currencyFormatterPending,\r\n sortable: true,\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n resizable: true,\r\n width: 120,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Pending Effective Date\",\r\n field: \"effectiveDate\",\r\n sortable: true,\r\n\r\n cellRenderer: dateFormatter,\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n resizable: true,\r\n width: 120,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Direct\",\r\n field: \"\",\r\n sortable: true,\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n resizable: true,\r\n width: 120,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n ],\r\n\r\n rowData: [],\r\n defaultColDef: {\r\n editable: true,\r\n sortable: true,\r\n flex: 1,\r\n minWidth: 100,\r\n filter: true,\r\n resizable: true,\r\n },\r\n inventoryList: [],\r\n };\r\n }\r\n\r\n handleClose = () => this.setState({ show: false });\r\n\r\n doSearch = (\r\n selectedsearchText,\r\n selectedvendor,\r\n selectedsearchType,\r\n selectedpageCount,\r\n selectedqualifier\r\n ) => {\r\n this.setState({\r\n searchText: selectedsearchText,\r\n vendor: selectedvendor,\r\n searchType: selectedsearchType,\r\n pageCount: selectedpageCount,\r\n qualifier: selectedqualifier,\r\n searchClicked: true,\r\n rowData:[]\r\n });\r\n getPriceListData(\r\n selectedsearchText,\r\n selectedvendor,\r\n selectedsearchType,\r\n selectedpageCount,\r\n selectedqualifier\r\n ).then((data) => {\r\n this.setState({ inventoryList: getFilteredData(data) });\r\n this.setState({ rowData: data });\r\n if (data.length>0)\r\n {\r\n this.setState({searchClicked:false})\r\n }\r\n if (data.length === 0) {\r\n this.setState({searchClicked:false})\r\n\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"No Price List Matched the selected criteria.\",\r\n });\r\n }\r\n });\r\n };\r\n \r\n onGridReady = (params) => {\r\n this.gridApi = params.api.showLoadingOverlay;\r\n this.gridColumnApi = params.columnApi;\r\n params.api.sizeColumnsToFit();\r\n };\r\n render() {\r\n const renderInventoryGrid = () => {\r\n return (\r\n \r\n {this.state.searchClicked?\r\n \r\n :''}\r\n \r\n \r\n );\r\n };\r\n return (\r\n
\r\n \r\n \r\n \r\n
Price List
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {this.state.inventoryList.length > 0 ? (\r\n \r\n \r\n \r\n ) : undefined}\r\n
\r\n
\r\n \r\n
\r\n {renderInventoryGrid()}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default PriceList;\r\nfunction dateFormatter(param) {\r\n if(param.value != null && param.value != \"\" && param.value != undefined){\r\n var d = param.value.split(\" \");\r\n var dateValue = d[0];\r\n return dateValue;\r\n }\r\n else return \"\";\r\n}\r\nfunction currencyFormatterPending(params){\r\n if (params.value !== undefined && params.value !== \"\" && params.value !== null && params.value !== '0' && params.value !== '0.00') {\r\n if (parseFloat(params.value) < 0) \r\n return \"-$\" + (parseFloat(params.value).toFixed(2) * -1).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n else if(parseFloat(params.value).toLocaleString() == \"0\") return \"$0.00\";\r\n else return \"$\" + (parseFloat(params.value).toFixed(2)).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n else return \"\";\r\n}\r\nfunction currencyFormatter(params) {\r\n if (params.value !== undefined && params.value !== \"\" && params.value !== null && params.value !== '0' && params.value !== '0.00') {\r\n if (parseFloat(params.value) < 0) \r\n return \"-$\" + (parseFloat(params.value).toFixed(2) * -1).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n else if(parseFloat(params.value).toLocaleString() == \"0\") return \"$0.00\";\r\n else return \"$\" + (parseFloat(params.value).toFixed(2)).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n else return \"$0.00\";\r\n}\r\nfunction compare (number1, number2) {\r\n if (number1 === null && number2 === null) {\r\n return 0;\r\n }\r\n if(isNaN(number1)){ return -1}\r\n if(isNaN(number2)){ return 1}\r\n if (number1 === null) {\r\n return -1;\r\n }\r\n if (number2 === null) {\r\n return 1;\r\n }\r\n return number1 - number2;}","import React, { Component } from 'react';\r\nimport CustomerList from \"../components/CustomerList\";\r\n\r\nclass CustomerListMenu extends Component {\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default CustomerListMenu;","import React from 'react'\r\n\r\nexport const CheckBox = props => {\r\n return (\r\n
  • \r\n
    \r\n \r\n \r\n
    \r\n
  • \r\n )\r\n}\r\n\r\nexport default CheckBox","import api from './apiUrl';\r\nimport {authHeader,encodedURL} from '../_helpers/auth-header'\r\nimport user from '../models/User';\r\nimport {decryptData} from '../Utils';\r\n\r\nvar identityKey=localStorage.getItem('identityKey')\r\n//meaAVL, meaVAL,meaQOO,meaAVLOO,dimCustPart,dimItem,dimCo,dimStk,dimVPart,dimVend,dimPODate,dimPal,dimCurPrice,frItem,toItem,cPType,custList,vendList,itemList\r\nexport function getConsolidatedInventory(ciObject)\r\n{\r\n \r\n var urlparam='&meaAVL='+ciObject.meaAVL\r\n urlparam+='&meaVAL='+ciObject.meaVAL\r\n urlparam+='&meaQOO='+ciObject.meaQOO\r\n urlparam+='&meaAVLOO='+ciObject.meaAVLOO\r\n urlparam+='&dimCustPart='+ciObject.dimCustPart\r\n urlparam+='&dimItem='+ciObject.dimItem\r\n urlparam+='&dimCo='+ciObject.dimCo\r\n urlparam+='&dimStk='+ciObject.dimStk\r\n urlparam+='&dimVPart='+ciObject.dimVPart\r\n urlparam+='&dimVend='+ciObject.dimVend\r\n urlparam+='&dimPODate='+ciObject.dimPODate\r\n urlparam+='&dimPal='+ciObject.dimPal\r\n \r\n urlparam+='&dimCurPrice='+ciObject.dimCurPrice\r\n urlparam+='&frItem='+ciObject.frItem\r\n urlparam+='&toItem='+ciObject.toItem\r\n urlparam+='&cPType='+ciObject.cPType\r\n urlparam+='&custList='+ciObject.custList\r\n urlparam+='&vendList='+ciObject.vendList\r\n urlparam+='&itemList='+ciObject.itemList\r\n \r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/consolidatedinventory/consInventory?pklogid=${identityKey.trim()}&type=${localStorage.getItem('companyNumber')}${urlparam}`)}`, {\r\n method: 'GET',\r\n headers:authHeader()\r\n }).then(response => response.json());\r\n}\r\n\r\n// export function getConsolidatedInventory(meaAVL, meaVAL,meaQOO,meaAVLOO,dimCustPart,dimItem,dimCo,dimStk,dimVPart,dimVend,dimPODate,dimPal,dimCurPrice,frItem,toItem,cPType,custList,vendList,itemList)\r\n// {\r\n// debugger;\r\n \r\n// var urlparam='&meaAVL='+meaAVL\r\n// urlparam+='&meaVAL='+meaVAL\r\n// urlparam+='&meaQOO='+meaQOO\r\n// urlparam+='&meaAVLOO='+meaAVLOO\r\n// urlparam+='&dimCustPart='+dimCustPart\r\n// urlparam+='&dimItem='+dimItem\r\n// urlparam+='&dimCo='+dimCo\r\n// urlparam+='&dimStk='+dimStk\r\n// urlparam+='&dimVPart='+dimVPart\r\n// urlparam+='&dimVend='+dimVend\r\n// urlparam+='&dimPODate='+dimPODate\r\n// urlparam+='&dimPal='+dimPal\r\n// urlparam+='&dimItem='+dimItem\r\n// urlparam+='&dimCo='+dimCo\r\n// urlparam+='&dimStk='+dimStk\r\n// urlparam+='&dimCurPrice='+dimCurPrice\r\n// urlparam+='&frItem='+frItem\r\n// urlparam+='&toItem='+toItem\r\n// urlparam+='&cPType='+cPType\r\n// urlparam+='&custList='+custList\r\n// urlparam+='&vendList='+vendList\r\n// urlparam+='&itemList='+itemList\r\n \r\n// return fetch(`${api.url}/consolidatedinventory/consInventory?pklogid=${identityKey.trim()}&type=${localStorage.getItem('companyNumber')}${urlparam}`, {\r\n// method: 'GET',\r\n// headers:authHeader()\r\n// }).then(response => response.json());\r\n// }\r\nfunction dateFormatter(inputDate) {\r\n if(inputDate != null && inputDate != \"\" && inputDate != undefined){\r\n var d = inputDate.split(\" \");\r\n var dateValue = d[0];\r\n return dateValue;\r\n }\r\n else return \"\";\r\n }\r\nexport function getFilteredData(data, visiblePropList){\r\n let filteredData=[];\r\n data.map((item) => { \r\n let filterObject = {};\r\n visiblePropList.forEach(prop => filterObject[prop]='');\r\n\r\n if(filterObject.hasOwnProperty('CustomerPart')) filterObject.CustomerPart = item.customerPart;\r\n if(filterObject.hasOwnProperty('Description')) filterObject.Description = item.description;\r\n if(filterObject.hasOwnProperty('QuantityAvailable')) filterObject.QuantityAvailable = item.avl;\r\n if(filterObject.hasOwnProperty('ProductValueAvailable')) filterObject.ProductValueAvailable = currencyFormatter(item.val);\r\n if(filterObject.hasOwnProperty('QuantityOnOrder')) filterObject.QuantityOnOrder = item.qoo;\r\n if(filterObject.hasOwnProperty('AvailableOnOrder')) filterObject.AvailableOnOrder = item.avloo;\r\n if(filterObject.hasOwnProperty('ItemNumber')) filterObject.ItemNumber = item.itemNumber;\r\n if(filterObject.hasOwnProperty('CasePack')) filterObject.CasePack = item.casePack;\r\n if(filterObject.hasOwnProperty('PackDescption')) filterObject.PackDescption = item.packDescption;\r\n if(filterObject.hasOwnProperty('Warehouse')) filterObject.Warehouse = item.locationAbbr;\r\n if(filterObject.hasOwnProperty('StockNonStockItem')) filterObject.StockNonStockItem = item.stockNo;\r\n if(filterObject.hasOwnProperty('PalletQty')) filterObject.PalletQty = item.Pallet;\r\n if(filterObject.hasOwnProperty('EstimatedDeliveryDatetoDistributorWarehouse')) filterObject.EstimatedDeliveryDatetoDistributorWarehouse = dateFormatter(item.poDate);\r\n if(filterObject.hasOwnProperty('CurrentPrice')) filterObject.CurrentPrice = currencyFormatter(item.prc);\r\n if(filterObject.hasOwnProperty('VendorPart')) filterObject.VendorPart = item.vendorPart;\r\n if(filterObject.hasOwnProperty('VendorNumber')) filterObject.VendorNumber = item.vendorNumber;\r\n if(filterObject.hasOwnProperty('VendorName')) filterObject.VendorName = item.vendorName; \r\n\r\n filteredData.push(filterObject);\r\n })\r\n\r\n // data.forEach((item) => { \r\n // filteredData.push({\r\n // CustomerPart:item.customerPart,\r\n // Description:item.description,\r\n // QuantityAvailable:item.avl,\r\n // ProductValueAvailable:item.val,\r\n // QuantityOnOrder:item.qoo,\r\n // AvailableOnOrder:item.avloo,\r\n // ItemNumber:item.itemNumber, \r\n // CasePack:item.casePack,\r\n // PackDescption:item.packDescption,\r\n // Warehouse:'',\r\n // StockNonStockItem:item.stockNo,\r\n // LocationAbbr:item.locationAbbr, \r\n // PalletQty:item.Pallet,\r\n // EstimatedDeliveryDatetoDistributorWarehouse:item.PODate,\r\n // CurrentPrice:item.prc,\r\n // // qoo:item.qoo,\r\n // VendorPart:item.vendorPart,\r\n // VendorNumber:item.vendorNumber,\r\n // VendorName:item.vendorName,\r\n // });\r\n // })\r\n return filteredData; \r\n}\r\n\r\nexport function getReportColumns(){\r\n //user.toUser = JSON.parse(localStorage.getItem('UserMenu'))\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY; // const originalData = decryptData(JSON.parse(localStorage.getItem(\"UserMenu\")), salt);\r\n const originalData = decryptData(localStorage.getItem(\"UserMenu\"), salt);\r\n user.toUser = originalData;\r\n\r\n var reportColumns= [\r\n {id: 1, value: \"Customer Part#\", isChecked: false, code: 'dimCustPart'},\r\n {id: 2, value: \"Item Number\", isChecked: false, code: 'dimItem'},\r\n {id: 3, value: \"Warehouse\", isChecked: false, code: 'dimCo'},\r\n {id: 4, value: \"Stock/Non-stock Item\", isChecked: false, code: 'dimStk'},\r\n {id: 5, value: \"Vendor Part\", isChecked: false, code: 'dimVPart'},\r\n {id: 6, value: \"Vendor\", isChecked: false, code: 'dimVend'},\r\n {id: 7, value: \"Estimated Delvery Date to Distributor Warehouse\", isChecked: false, code: 'dimPODate'},\r\n {id: 8, value: \"Pallet Qty\", isChecked: false, code: 'dimPal'}, \r\n ] \r\n if(user.toUser !== null) {\r\n if(user.toUser.CanViewCustomerPrices=='Y')\r\n reportColumns.push( {id: 9, value: \"Current Price\", isChecked: false , code: 'dimCurPrice'});\r\n \r\n }\r\n return reportColumns; \r\n}\r\nexport function getDataColumns(){\r\n //user.toUser = JSON.parse(localStorage.getItem('UserMenu'))\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY; // const originalData = decryptData(JSON.parse(localStorage.getItem(\"UserMenu\")), salt);\r\n const originalData = decryptData(localStorage.getItem(\"UserMenu\"), salt);\r\n user.toUser = originalData;\r\n var dataColumns= [\r\n {id: 1, value: \"Quantity Available\", isChecked: false, code: 'meaAVL'},\r\n ] \r\n if(user.toUser !== null) {\r\n if(user.toUser.CanViewCustomerPrices=='Y')\r\n dataColumns.push( {id: 2, value: \"Product Value Available\", isChecked: false, code: 'meaVAL'}); \r\n }\r\n dataColumns.push( {id: 3, value: \"Quantity on Demand\", isChecked: false, code: 'meaQOO'}); \r\n dataColumns.push( {id: 4, value: \"Available + On Order\", isChecked: false, code: 'meaAVLOO'}); \r\n return dataColumns; \r\n}\r\n\r\nexport function getCustomerVendorsList() {\r\n \r\n var identityKey=localStorage.getItem('identityKey')\r\n var loginType=localStorage.getItem('loginTypeCode')\r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/consolidatedinventory/customerVendor?identityKey=${identityKey}&loginType=${loginType}`)}`, {\r\n method: 'GET',\r\n headers:authHeader()\r\n }).then(response => response.json());\r\n}\r\nexport function getItenEntryList(){\r\n var reportColumns= [\r\n {id: 1, value: \"Distributor Item#\"},\r\n {id: 2, value: \"Customer Part#\"},\r\n {id: 3, value: \"Vendor Part#\"},\r\n ] \r\n \r\n return reportColumns; \r\n}\r\n\r\nexport function getCustomerList() {\r\n \r\n var identityKey=localStorage.getItem('identityKey')\r\n var loginType=localStorage.getItem('loginTypeCode')\r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/consolidatedinventory/customerList?identityKey=${identityKey.trim()}&loginTypeCode=${loginType}`)}`, {\r\n method: 'GET',\r\n headers:authHeader()\r\n }).then(response => response.json());\r\n}\r\n\r\nfunction currencyFormatter(value) {\r\n if (value !== undefined && value !== \"\" && value !== null && value!== '0' && value!== '0.00') {\r\n if (parseFloat(value) < 0) return \"-$\" + (parseFloat(value).toFixed(2) * -1).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n else return \"$\" + (parseFloat(value).toFixed(2)).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n return \"$0.00\";\r\n }\r\n \r\n","import React, { Component } from 'react';\r\nimport CheckBox from \"../../components/Checkbox\"\r\nimport {getReportColumns} from \"../../_services/consolidatedInventory.service\"\r\n\r\nclass ReportColumns extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n reportColumns: getReportColumns()\r\n }\r\n }\r\n handleCheckChieldElement = (event) => {\r\n let reportColumns = this.state.reportColumns\r\n reportColumns.forEach(report => {\r\n if (report.value === event.target.value)\r\n report.isChecked = event.target.checked\r\n })\r\n this.setState({\r\n reportColumns: reportColumns\r\n }, () => {\r\n this.props.onChange(reportColumns);\r\n })\r\n }\r\n clearSelection =() =>{\r\n this.setState({\r\n reportColumns: getReportColumns()\r\n })\r\n }\r\n render() {\r\n return (\r\n
    \r\n Report Columns\r\n
    \r\n \r\n
      \r\n {\r\n this.state.reportColumns.map((report) => {\r\n return ()\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default ReportColumns;","import React, { Component } from 'react';\r\nimport CheckBox from \"../../components/Checkbox\";\r\nimport {getDataColumns} from \"../../_services/consolidatedInventory.service\"\r\n\r\nclass DataColumns extends Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n dataColumns: getDataColumns()\r\n }\r\n }\r\n handleCheckChieldElement = (event) => {\r\n let dataColumns = this.state.dataColumns\r\n dataColumns.forEach(report => {\r\n if (report.value === event.target.value)\r\n report.isChecked = event.target.checked\r\n })\r\n this.setState({dataColumns: dataColumns}, () => {\r\n this.props.onChange(dataColumns);\r\n }) \r\n }\r\n clearSelection =() =>{\r\n this.setState({\r\n dataColumns: getDataColumns()\r\n })\r\n }\r\n render() {\r\n return (\r\n
    \r\n Data Columns\r\n
    \r\n \r\n
      \r\n {\r\n this.state.dataColumns.map((data) => {\r\n return ()\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default DataColumns;","import React, { Component } from 'react';\r\nimport { AgGridReact } from \"ag-grid-react\";\r\nimport \"ag-grid-community/dist/styles/ag-grid.css\";\r\nimport \"ag-grid-community/dist/styles/ag-theme-alpine.css\";\r\nimport {getCustomerList} from \"../../_services/consolidatedInventory.service\";\r\nimport appConstants from \"../../_services/applicationConstant\";\r\n\r\nclass CICustomer extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n \r\n colHeaders: [\r\n { headerName: \"\", tooltip: (params) => 'Control Click to Select Mutiple Rows', cellStyle: {textAlign: 'left',borderRight: '0.1px solid lightgray'},\r\n field: \"CUSTID\",filter: 'agTextColumnFilter',width:320,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}`}],\r\n defaultColDef: {\r\n flex: 1,\r\n minWidth: 150,\r\n filter: true,\r\n sortable: true,\r\n },\r\n rowData:[]\r\n }\r\n \r\n };\r\n clearSelection =() =>{\r\n this.gridApi.deselectAll();\r\n document.getElementById(\"txtFilter\").value =\"\";\r\n this.gridApi.setFilterModel(null);\r\n }\r\n setSelectedItems = (api) => {\r\n this.gridApi.forEachNode((node) => { \r\n if(this.props.selectedCustomers.indexOf(node.data.CustNumber) > -1) \r\n node.setSelected(true);\r\n });\r\n clearInterval(window.watcher);\r\n window.watcher = 0; \r\n };\r\n onSelectionChanged = () => {\r\n var selectedRows = this.gridApi.getSelectedRows();\r\n var selectedRowsString = [];\r\n selectedRows.forEach(function(selectedRow, index) { \r\n \r\n selectedRowsString.push(selectedRow.CustNumber);\r\n });\r\n this.props.handleCustomerSelection(selectedRowsString);\r\n // alert(selectedRowsString);\r\n };\r\n \r\n \r\n onGridReady = params => {\r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi;\r\n\r\n const httpRequest = new XMLHttpRequest();\r\n const updateData = data => {\r\n params.api.setRowData(data.slice(0, 50));\r\n };\r\n\r\n httpRequest.open(\r\n 'GET',\r\n getCustomerList() .then((data) => {\r\n this.setState({ rowData: data })\r\n window.watcher = setInterval(this.setSelectedItems, 25, this.gridApi);\r\n })\r\n );\r\n httpRequest.send();\r\n \r\n \r\n };\r\n filterchange = () => {\r\n var hardcodedFilter = {\r\n CUSTID: {\r\n type: 'contains', \r\n filter:document.getElementById(\"txtFilter\").value,\r\n \r\n }\r\n \r\n \r\n };\r\n this.gridApi.setFilterModel(hardcodedFilter);\r\n \r\n this.gridApi.onFilterChanged();\r\n};\r\n render() {\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n this.filterchange()}\r\n >\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default CICustomer;","import React, { Component } from 'react';\r\nimport { AgGridReact } from \"ag-grid-react\";\r\nimport \"ag-grid-community/dist/styles/ag-grid.css\";\r\nimport \"ag-grid-community/dist/styles/ag-theme-alpine.css\";\r\nimport {getCustomerVendorsList} from \"../../_services/consolidatedInventory.service\";\r\nimport appConstants from \"../../_services/applicationConstant\";\r\n\r\n\r\n\r\n\r\nclass CIVendors extends Component {\r\n \r\n \r\n constructor(props) {\r\n super(props);\r\n \r\n this.state = {\r\n \r\n \r\n colHeaders: [\r\n { headerName: \"\", tooltip: (params) => 'Control Click to Select Mutiple Rows', cellStyle: {textAlign: 'left',borderRight: '0.1px solid lightgray'},\r\n field: \"name\",filter: 'agTextColumnFilter',width:320,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}`}],\r\n \r\n \r\n defaultColDef: {\r\n flex: 1,\r\n minWidth: 150,\r\n filter: true,\r\n sortable: true,\r\n },\r\n rowData:[]\r\n }\r\n \r\n };\r\n clearSelection =() =>{\r\n this.gridApi.deselectAll();\r\n document.getElementById(\"txtFilter\").value =\"\";\r\n this.gridApi.setFilterModel(null);\r\n }\r\n componentWillMount() { \r\n getCustomerVendorsList()\r\n .then((data) => {\r\n this.setState({ rowData: data })\r\n })\r\n .catch(console.log);\r\n }\r\n\r\n\r\n onGridReady = params => {\r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi;\r\n\r\n const httpRequest = new XMLHttpRequest();\r\n const updateData = data => {\r\n params.api.setRowData(data.slice(0, 50));\r\n };\r\n\r\n httpRequest.open(\r\n 'GET',\r\n getCustomerVendorsList() .then((data) => {\r\n this.setState({ rowData: data })\r\n window.watcher = setInterval(this.setSelectedItems, 25, this.gridApi);\r\n })\r\n );\r\n httpRequest.send();\r\n \r\n };\r\n filterchange = () => {\r\n var hardcodedFilter = {\r\n name: {\r\n type: 'contains', \r\n filter:document.getElementById(\"txtFilter\").value,\r\n \r\n }\r\n \r\n \r\n };\r\n this.gridApi.setFilterModel(hardcodedFilter);\r\n \r\n this.gridApi.onFilterChanged();\r\n};\r\nsetSelectedItems = (api) => {\r\n this.gridApi.forEachNode((node) => { \r\n if(this.props.selectedVendors.indexOf(node.data.id) > -1) \r\n node.setSelected(true);\r\n });\r\n clearInterval(window.watcher);\r\n window.watcher = 0; \r\n};\r\nonSelectionChanged = () => {\r\n var selectedRows = this.gridApi.getSelectedRows();\r\n var selectedRowsString = [];\r\n selectedRows.forEach(function(selectedRow, index) { \r\n \r\n selectedRowsString.push(selectedRow.id);\r\n });\r\n this.props.handleVendorSelection(selectedRowsString);\r\n // alert(selectedRowsString);\r\n};\r\n render() {\r\n const renderCustomerVendor = () => {\r\n return
    \r\n
    \r\n \r\n
    \r\n this.filterchange()}\r\n >\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n }\r\n \r\n return (\r\n \r\n renderCustomerVendor()\r\n\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default CIVendors;","import React, { Component } from \"react\";\r\n\r\nclass CIItemRange extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n fromItem: \"\",\r\n toItem:\"\"\r\n };\r\n }\r\n clearSelection =() =>{\r\n this.setState({\r\n fromItem: \"\",\r\n toItem:\"\"\r\n })\r\n }\r\n componentDidMount() {\r\n this.setState({\r\n fromItem: this.props.fromItem,\r\n toItem: this.props.toItem\r\n });\r\n }\r\n itemFromChange = (event) => {\r\n let nam = event.target.name;\r\n let val = event.target.value;\r\n this.setState({ fromItem: val }, () => {\r\n this.props.onItemFromChange(val);\r\n });\r\n };\r\n itemToChange = (event) => {\r\n let nam = event.target.name;\r\n let val = event.target.value;\r\n this.setState({ toItem: val }, () => {\r\n this.props.onItemToChange(val);\r\n });\r\n };\r\n render() {\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n From Distributor Item#\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n To Distributor Item# \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default CIItemRange;\r\n","import React, { Component } from \"react\";\r\nimport { getItenEntryList } from \"../../_services/consolidatedInventory.service\";\r\n\r\nclass CIItemEntry extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchTypes: getItenEntryList(),\r\n inputList: [],\r\n itemTypeChange: 1,\r\n };\r\n }\r\n clearSelection =() =>{\r\n this.setState({\r\n searchTypes: getItenEntryList(),\r\n inputList: this.props.selectedItemEntries,\r\n itemTypeChange: 1,\r\n })\r\n }\r\n componentDidMount() {\r\n this.setState({\r\n inputList: this.props.selectedItemEntries,\r\n });\r\n \r\n }\r\n handleInputChange = (e, index) => {\r\n const { name, value } = e.target;\r\n const list = [...this.state.inputList];\r\n list[index][name] = value;\r\n this.setState({ inputList: list });\r\n };\r\n handleEnterTab = (e, index) => {\r\n if ((e.key === \"Enter\" || e.key === \"Tab\" || e.type === \"blur\") && (e.target.value !== \"\" && e.target.value !== null)) {\r\n const { name, value } = e.target;\r\n const list = [...this.state.inputList];\r\n list[index][name] = (value + \" \").substring(0, 22);\r\n if(list.length-1 === index){\r\n list.push({ itemvalue: \"\" });\r\n }\r\n this.setState({ inputList: list }, () => {\r\n this.props.onChange(list);\r\n });\r\n }\r\n };\r\n cancelItems = () => {\r\n const list = [];\r\n\r\n this.setState((prevState) => ({\r\n inputList: prevState.inputList.filter((el) => true !== true),\r\n }));\r\n list.push({ itemvalue: \"\" });\r\n this.setState({ inputList: list }, () => {\r\n this.props.onChange(list);\r\n });\r\n };\r\n\r\n itemTypeChange = (event) => {\r\n let nam = event.target.name;\r\n let val = event.target.value;\r\n this.setState({ [nam]: val }, () => {\r\n this.props.onItemEntryTypeChange(val);\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n
     
    \r\n
    \r\n
    \r\n Enter Item List\r\n {this.state.inputList.map((x, i) => {\r\n return (\r\n
    \r\n this.handleInputChange(e, i)}\r\n onKeyDown={(e) => this.handleEnterTab(e, i)}\r\n onBlur ={(e) => this.handleEnterTab(e, i)}\r\n onFocus ={(e) => this.handleEnterTab(e, i)}\r\n />\r\n
    \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {this.state.searchTypes.map((type) => (\r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n \r\n Clear Selection\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default CIItemEntry;\r\n","import React, { Component } from \"react\";\r\nimport { Tab, Tabs, TabList, TabPanel } from \"react-tabs\";\r\nimport \"react-tabs/style/react-tabs.css\";\r\nimport DataColumns from \"./DataColumns\";\r\nimport CICustomer from \"./CICustomer\";\r\nimport CIVendors from \"../ConsolidatedInventory/CIVendors\";\r\nimport CIItemRange from \"./CIItemRange\";\r\nimport CIItemEntry from \"./CIItemEntry\";\r\nimport openfolder from \"../../assets/images/openfolder.gif\";\r\n\r\nclass TabFilters extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n selectedItemEntries: [{ itemvalue: \"\" }],\r\n selectedItemEntryType: \"Distributor Item#\",\r\n fromItem: \"\",\r\n toItem: \"\",\r\n isAllCustomers: true,\r\n selectedCustomers: [],\r\n isAllVendors: true,\r\n selectedVendors: [],\r\n };\r\n this.ItemEntryRef=React.createRef();\r\n this.ItemRangeRef=React.createRef(); \r\n this.CICutomerRef=React.createRef(); \r\n this.CIVendorRef = React.createRef(); \r\n }\r\n clearSelection =() =>{\r\n this.setState({\r\n selectedItemEntries: [{ itemvalue: \"\" }],\r\n selectedItemEntryType: \"Distributor Item#\",\r\n fromItem: \"\",\r\n toItem: \"\",\r\n isAllCustomers: true,\r\n selectedCustomers: [],\r\n isAllVendors: true,\r\n selectedVendors: [],\r\n }, () => {\r\n if(this.ItemEntryRef.current !== null)\r\n this.ItemEntryRef.current.clearSelection();\r\n if(this.ItemRangeRef.current !== null)\r\n this.ItemRangeRef.current.clearSelection();\r\n if(this.CICutomerRef.current !== null)\r\n this.CICutomerRef.current.clearSelection();\r\n if(this.CIVendorRef.current !== null)\r\n this.CIVendorRef.current.clearSelection();\r\n\r\n });\r\n \r\n }\r\n itemEntryHandler = (data) => {\r\n this.setState({ selectedItemEntries: data }, () => {\r\n this.props.onEntryItemChange(this.state.selectedItemEntries);\r\n });\r\n };\r\n onItemEntryTypeChange = (data) => {\r\n this.setState({ selectedItemEntryType: data }, () => {\r\n \r\n this.props.onFilterEntryTypeChange(this.state.selectedItemEntryType);\r\n });\r\n };\r\n onItemFromChange = (data) => {\r\n this.setState({ fromItem: data }, () => {\r\n this.props.onItemFromChange(this.state.fromItem);\r\n });\r\n };\r\n onItemToChange = (data) => {\r\n this.setState({ toItem: data }, () => {\r\n this.props.onItemToChange(this.state.toItem);\r\n });\r\n };\r\n handleCheckCICustomers = (data) => {\r\n this.setState(\r\n {\r\n isAllCustomers: !this.state.isAllCustomers,\r\n },\r\n () => {\r\n this.props.onAllCICutomerChange(this.state.isAllCustomers);\r\n this.CICutomerRef.current.clearSelection();\r\n if(this.state.isAllCustomers === true)\r\n this.setState({ selectedCustomers: []},() => {\r\n this.props.onCICustomerSelectionChange(this.state.selectedCustomers);\r\n });\r\n \r\n }\r\n );\r\n };\r\n handleCustomerSelection = (data) => {\r\n this.setState(\r\n {\r\n selectedCustomers: data,\r\n },\r\n () => {\r\n this.props.onCICustomerSelectionChange(this.state.selectedCustomers);\r\n if(this.state.selectedCustomers.length > 0)\r\n this.setState({ isAllCustomers: false},() => {\r\n this.props.onAllCICutomerChange(this.state.isAllCustomers);\r\n });\r\n }\r\n );\r\n };\r\n handleCheckCIVendors = (data) => {\r\n this.setState(\r\n {\r\n isAllVendors: !this.state.isAllVendors,\r\n },\r\n () => {\r\n this.props.onAllCIVendorChange(this.state.isAllVendors);\r\n this.CIVendorRef.current.clearSelection();\r\n if(this.state.isAllVendors === true)\r\n this.setState({ selectedVendors: []},() => {\r\n this.props.onCIVendorSelectionChange(this.state.selectedVendors);\r\n });\r\n }\r\n );\r\n };\r\n handleVendorSelection = (data) => {\r\n this.setState(\r\n {\r\n selectedVendors: data,\r\n },\r\n () => {\r\n this.props.onCIVendorSelectionChange(this.state.selectedVendors);\r\n if(this.state.selectedVendors.length > 0)\r\n this.setState({ isAllVendors: false},() => {\r\n this.props.onAllCIVendorChange(this.state.isAllVendors);\r\n });\r\n }\r\n );\r\n };\r\n // componentDidUpdate() {\r\n // if (this.props.onChange) {\r\n // this.props.onChange(this.state);\r\n // }\r\n // }\r\n render() {\r\n const CustomTab = ({ children }) => {children};\r\n\r\n CustomTab.tabsRole = \"Tab\";\r\n return (\r\n \r\n \r\n \r\n \r\n {this.state.selectedCustomers.length > 0 && (\r\n \"Add\"\r\n )}{\" \"}\r\n Customers\r\n \r\n \r\n {\" \"}\r\n {this.state.selectedVendors.length > 0 && (\r\n \"Add\"\r\n )}{\" \"}\r\n Vendors\r\n \r\n \r\n {(this.state.fromItem !== \"\" || this.state.toItem !== \"\") && (\r\n \"Add\"\r\n )}\r\n Item Range\r\n \r\n \r\n {this.state.selectedItemEntries.length > 1 && (\r\n \"Add\"\r\n )}\r\n Item Entry\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default TabFilters;\r\n","import React, { Component } from 'react';\r\nimport appConstants from \"../../_services/applicationConstant\";\r\nimport ReportColumns from \"../ConsolidatedInventory/ReportColumns\";\r\nimport DataColumns from \"../ConsolidatedInventory/DataColumns\";\r\nimport TabFilters from \"../ConsolidatedInventory/TabFilters\"\r\nimport {getCustomerList} from \"../../_services/consolidatedInventory.service\";\r\nimport {getCustomerVendorsList} from \"../../_services/consolidatedInventory.service\";\r\nimport ESSModal from \"../../components/ESSModal.jsx\";\r\n\r\nclass CIFiler extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state={\r\n selectedReportColumns:[],\r\n selectedDataColumns: [],\r\n ItemEntryList:[],\r\n ItemEntryType:\"Distributor Item#\",\r\n fromItemRange: \"\",\r\n toItemRange:\"\" ,\r\n isAllCICustomers: true,\r\n ciCustomers:[],\r\n isAllCIVedors: true,\r\n ciVendors:[],\r\n allCICustomers:[],\r\n allCIVendors:[],\r\n show: false,\r\n userMessage: \"\",\r\n }\r\n this.DataColumnsRef= React.createRef();\r\n this.ReportColumnsRef =React.createRef();\r\n this.TabFilterRef = React.createRef();\r\n this.reportColumnsHandler = this.reportColumnsHandler.bind(this);\r\n }\r\n componentDidMount(){\r\n var allCustomers = [];\r\n getCustomerList().then((data) => {\r\n data.map(m =>( allCustomers.push(m.CustNumber)) ) \r\n });\r\n \r\n this.setState({allCICustomers: ' '})\r\nvar allVendors= [];\r\ngetCustomerVendorsList().then((data) => {\r\n data.map(m =>( allVendors.push(m.id)) ) \r\n });\r\n this.setState({allCIVendors: allVendors})\r\n\r\n}\r\n\r\n mapReportColumm(){\r\n\r\n }\r\n searchClicked=() =>{\r\n var reports =\"\";\r\n const report = this.state.selectedReportColumns.filter(p => p.isChecked);\r\n // .map(filteredReport => (\r\n // reports = reports+ filteredReport.value +\", \"\r\n // ));\r\n var dataseleced =\"\";\r\n const data = this.state.selectedDataColumns.filter(p => p.isChecked);\r\n // .map(filteredData => (\r\n // dataseleced = dataseleced+ filteredData.value +\", \" \r\n // ));\r\n if(this.state.fromItemRange>this.state.toItemRange)\r\n {\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"Item Range is invalid\",\r\n });\r\n return false;\r\n }\r\n if(report.length === 0)\r\n {\r\n if(data.length === 0)\r\n {\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"Data Columns: has no selections.\\nReport Columns: has no selections \",\r\n });\r\n return false;\r\n }\r\n else{\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"Report Columns: has no selections \",\r\n });\r\n return false;\r\n }\r\n }\r\n if(data.length === 0)\r\n {\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"Data Columns: has no selections \",\r\n });\r\n return false;\r\n }\r\n if(report.filter((p) => p.isChecked && p.code.includes(\"dimStk\")).length > 0 )\r\n {\r\n if(report.filter((p) => p.isChecked && p.code.includes(\"dimCo\")).length > 0){\r\n\r\n }\r\n else{\r\n this.setState({\r\n show: true,\r\n userMessage: \"Stock/Non-stock must be selected with Warehouse\",\r\n });\r\n return false;\r\n }\r\n }\r\n if(report.filter((p) => p.isChecked && p.code.includes(\"dimPal\")).length > 0 )\r\n {\r\n if(report.filter((p) => p.isChecked && p.code.includes(\"dimCo\")).length > 0){\r\n\r\n }\r\n else{\r\n this.setState({\r\n show: true,\r\n userMessage: \"Pallet Qty must be selected with Warehouse\",\r\n });\r\n return false;\r\n }\r\n }\r\n if(report.filter((p) => p.isChecked && p.code.includes(\"dimCurPrice\")).length > 0 )\r\n {\r\n if(report.filter((p) => p.isChecked && p.code.includes(\"dimCo\")).length > 0){\r\n\r\n }\r\n else{\r\n this.setState({\r\n show: true,\r\n userMessage: \"Current Price must be selected with Warehouse\",\r\n });\r\n return false;\r\n }\r\n }\r\n if(report.filter((p) => p.isChecked && p.code.includes(\"dimPODate\")).length > 0 )\r\n {\r\n if(report.filter((p) => p.isChecked && p.code.includes(\"dimCo\")).length > 0){\r\n\r\n }\r\n else{\r\n this.setState({\r\n show: true,\r\n userMessage: \"Estimated Delvery Date to Distributor Warehouse Item must be selected with Warehouse\",\r\n });\r\n return false;\r\n }\r\n }\r\n if(!this.state.isAllCICustomers && this.state.ciCustomers.length === 0 )\r\n {\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"There are no Customer selections\",\r\n });\r\n return false;\r\n }\r\n var itemEtry =\"\";\r\n const dataEntr = this.state.ItemEntryList\r\n .map(filteredData => (\r\n itemEtry = itemEtry+ filteredData.itemvalue +\", \" \r\n ));\r\n \r\n var filterObject = {\r\n reportColumn : report,\r\n dataColumn: data,\r\n isAllCICustomers:this.state.allCICustomers,\r\n ciCustomers:this.state.ciCustomers,\r\n isAllCIVedors:this.state.allCIVendors,\r\n ciVendors:this.state.ciVendors,\r\n ItemEntryList:this.state.ItemEntryList,\r\n ItemEntryType:this.state.ItemEntryType,\r\n fromItemRange:this.state.fromItemRange,\r\n toItemRange:this.state.toItemRange\r\n\r\n }\r\n \r\n this.props.doSearch(filterObject);\r\n }\r\n showcloumnsCLicked=()=>{\r\n\r\n \r\n const report = this.state.selectedReportColumns.filter(p => p.isChecked);\r\n \r\n const data = this.state.selectedDataColumns.filter(p => p.isChecked);\r\n if(this.state.fromItemRange>this.state.toItemRange)\r\n {\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"Item Range is invalid\",\r\n });\r\n return false;\r\n }\r\n if(report.length === 0)\r\n {\r\n if(data.length === 0)\r\n {\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"Data Columns: has no selections.\\nReport Columns: has no selections \",\r\n });\r\n return false;\r\n }\r\n else{\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"Report Columns: has no selections \",\r\n });\r\n return false;\r\n }\r\n }\r\n if(data.length === 0)\r\n {\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"Data Columns: has no selections \",\r\n });\r\n return false;\r\n }\r\n if(report.filter((p) => p.isChecked && p.code.includes(\"dimStk\")).length > 0 )\r\n {\r\n if(report.filter((p) => p.isChecked && p.code.includes(\"dimCo\")).length > 0){\r\n\r\n }\r\n else{\r\n this.setState({\r\n show: true,\r\n userMessage: \"Stock/Non-stock must be selected with Warehouse\",\r\n });\r\n return false;\r\n }\r\n }\r\n if(report.filter((p) => p.isChecked && p.code.includes(\"dimPal\")).length > 0 )\r\n {\r\n if(report.filter((p) => p.isChecked && p.code.includes(\"dimCo\")).length > 0){\r\n\r\n }\r\n else{\r\n this.setState({\r\n show: true,\r\n userMessage: \"Pallet Qty must be selected with Warehouse\",\r\n });\r\n return false;\r\n }\r\n }\r\n if(report.filter((p) => p.isChecked && p.code.includes(\"dimCurPrice\")).length > 0 )\r\n {\r\n if(report.filter((p) => p.isChecked && p.code.includes(\"dimCo\")).length > 0){\r\n\r\n }\r\n else{\r\n this.setState({\r\n show: true,\r\n userMessage: \"Current Price must be selected with Warehouse\",\r\n });\r\n return false;\r\n }\r\n }\r\n if(report.filter((p) => p.isChecked && p.code.includes(\"dimPODate\")).length > 0 )\r\n {\r\n if(report.filter((p) => p.isChecked && p.code.includes(\"dimCo\")).length > 0){\r\n\r\n }\r\n else{\r\n this.setState({\r\n show: true,\r\n userMessage: \"Estimated Delvery Date to Distributor Warehouse Item must be selected with Warehouse\",\r\n });\r\n return false;\r\n }\r\n }\r\n if(!this.state.isAllCICustomers && this.state.ciCustomers.length === 0 )\r\n {\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"There are no Customer selections\",\r\n });\r\n return false;\r\n }\r\n var filterObject = {\r\n reportColumn : report,\r\n dataColumn: data,\r\n }\r\n this.props.showcolumns(filterObject);\r\n }\r\n clearClicked =() =>{\r\n this.setState({\r\n selectedReportColumns:[],\r\n selectedDataColumns: [],\r\n ItemEntryList:[],\r\n ItemEntryType:\"Distributor Item#\",\r\n fromItemRange: \"\",\r\n toItemRange:\"\" ,\r\n isAllCICustomers: true,\r\n ciCustomers:[],\r\n isAllCIVedors: true,\r\n ciVendors:[]\r\n });\r\n this.DataColumnsRef.current.clearSelection();\r\n this.ReportColumnsRef.current.clearSelection();\r\n this.TabFilterRef.current.clearSelection();\r\n this.props.doClear();\r\n }\r\n\r\n FilterEntryItemsChange =(data)=>{\r\n \r\n this.setState({ItemEntryList:data});\r\n \r\n }\r\n\r\n FilterChange =(data)=>{\r\n \r\n }\r\n FilterEntryTypeChange =(data)=>{\r\n \r\n this.setState({ItemEntryType:data});\r\n }\r\n reportColumnsHandler = (data) => {\r\n this.setState({selectedReportColumns: data}, () => {\r\n \r\n }) \r\n }\r\n dataColumnsHandler = (data) => {\r\n this.setState({selectedDataColumns: data}, () => {\r\n \r\n }) \r\n }\r\n onItemFromChange = (data) =>{\r\n this.setState({fromItemRange: data});\r\n }\r\n onItemToChange =(data)=>{\r\n this.setState({toItemRange: data}) ;\r\n } \r\n\r\n onAllCICutomerChange = (data) => {\r\n this.setState({isAllCICustomers: data});\r\n }\r\n\r\n onCICustomerSelectionChange =(data) =>{\r\n this.setState({ciCustomers: data});\r\n }\r\n\r\n onAllCIVendorChange = (data) => {\r\n this.setState({isAllCIVedors: data});\r\n }\r\n handleClose = () => this.setState({ show: false });\r\n onCIVendorSelectionChange =(data) =>{\r\n this.setState({ciVendors: data});\r\n }\r\n render() { \r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n  \r\n  \r\n  \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n Filters:\r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default CIFiler;","import React, { Component } from 'react';\r\nimport appConstants from \"../../_services/applicationConstant\";\r\nimport {styles} from \"../../assets/css/bunzlUI.css\"\r\nimport CIFilter from \"./CIFiler\"\r\nimport { AgGridReact } from \"ag-grid-react\";\r\nimport \"ag-grid-community/dist/styles/ag-grid.css\";\r\nimport \"ag-grid-community/dist/styles/ag-theme-alpine.css\";\r\nimport {getConsolidatedInventory, getFilteredData} from \"../../_services/consolidatedInventory.service\"\r\nimport {CSVLink} from 'react-csv';\r\nimport downloadbutton from '../../assets/images/downloadbutton.gif';\r\nimport ESSProgressBar from \"../../components/ESSProgressBar\";\r\nimport ESSModal from \"../../components/ESSModal.jsx\";\r\nimport { decryptData } from '../../Utils';\r\n\r\nclass ConsolidatedInventory extends Component {\r\n constructor(props) {\r\n super(props);\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"id_token\"), salt);\r\n this.state = {\r\n companyNumber: localStorage.getItem('companyNumber'),\r\n customerNumber: localStorage.getItem('customerNumber'),\r\n jwtToken: originalData ,\r\n defaultColDef: { resizable: true },\r\n searchClicked:false,\r\n show: false,\r\n userMessage: \"\",\r\n colHeaders: [\r\n { headerName: \"Customer Part#\",hide:true,cellStyle: {textAlign: 'center',borderRight: '0.1px solid lightgray'},\r\n field: \"customerPart\",sortable: true,width:141,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Item Number\",sortable: true, hide:true, type: 'rightAligned', cellStyle: {textAlign: 'right',borderRight: '0.1px solid lightgray'}, field: \"itemNumber\",width:142,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Description\",sortable: true,hide:true, type: 'rightAligned', cellStyle: {textAlign: 'right',borderRight: '0.1px solid lightgray'}, field: \"description\",width:142,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Case Pack\",sortable: true,hide:true, type: 'rightAligned', cellStyle: {textAlign: 'right',borderRight: '0.1px solid lightgray'},field: \"casePack\",width:142,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Pack Description\",sortable: true,hide:true, type: 'rightAligned', cellStyle: {textAlign: 'right',borderRight: '0.1px solid lightgray'}, field: \"packDescption\",width:142,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Warehouse\",sortable: true,hide:true, type: 'rightAligned', cellStyle: {textAlign: 'right',borderRight: '0.1px solid lightgray'}, field: \"locationAbbr\",width:142,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Stock/Non-Stock item\",sortable: true,hide:true, type: 'rightAligned', cellStyle: {textAlign: 'right',borderRight: '0.1px solid lightgray'}, field: \"stockNo\",width:142,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Vendor Part\",sortable: true,hide:true, type: 'rightAligned', cellStyle: {textAlign: 'right',borderRight: '0.1px solid lightgray'}, field: \"vendorPart\",width:142,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Vendor\",sortable: true,hide:true, type: 'rightAligned', cellStyle: {textAlign: 'right',borderRight: '0.1px solid lightgray'}, field: \"vendorNumber\",width:142,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Vendor Name\",sortable: true,hide:true, type: 'rightAligned', cellStyle: {textAlign: 'right',borderRight: '0.1px solid lightgray'}, field: \"vendorName\",width:142,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Estimated Delivery Date to Distributor\",sortable: true,comparator:fn_DateCompare,sortable: true,cellRenderer: dateFormatter,hide:true, type: 'rightAligned', cellStyle: {textAlign: 'right',borderRight: '0.1px solid lightgray'}, field: \"poDate\",width:142,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Pallet Qty\",sortable: true,comparator: compare,hide:true, type: 'rightAligned', cellStyle: {textAlign: 'right',borderRight: '0.1px solid lightgray'}, field: \"pallet\",width:142,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Current Price\",sortable: true, valueFormatter:currencyFormatterWithParam,comparator: compare,hide:true, type: 'rightAligned', cellStyle: {textAlign: 'right',borderRight: '0.1px solid lightgray'}, field: \"prc\",width:142,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Quantity Available\",sortable: true,comparator: compare, hide:true, type: 'rightAligned', cellStyle: {textAlign: 'right',borderRight: '0.1px solid lightgray'}, field: \"avl\",width:142,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Product Value Available\",sortable: true, valueFormatter:currencyFormatterWithParam,comparator: compare,hide:true, type: 'rightAligned', cellStyle: {textAlign: 'right',borderRight: '0.1px solid lightgray'}, field: \"val\",width:142,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Quantity on Order\",sortable: true,comparator: compare,hide:true, type: 'rightAligned', cellStyle: {textAlign: 'right',borderRight: '0.1px solid lightgray'}, field: \"qoo\",width:142,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` },\r\n { headerName: \"Available + On Order\",sortable: true,comparator: compare,hide:true, type: 'rightAligned', cellStyle: {textAlign: 'right',borderRight: '0.1px solid lightgray'}, field: \"avloo\",width:142,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` }],\r\n rowData:[],\r\n inventoryList:[],\r\n rowClassRules: {\r\n 'total-row': function(params) {\r\n var rowVal = params.data.Name;\r\n return rowVal === 'Total';\r\n },\r\n },\r\n \r\n };\r\n }\r\n \r\n doClear =()=>{\r\n this.setState({rowData:[]})\r\n this.hideAllGridColumns(); \r\n }\r\nhideAllGridColumns =() =>{\r\n this.gridColumnApi.setColumnVisible('customerPart', false);\r\n this.gridColumnApi.setColumnVisible('description', false);\r\n this.gridColumnApi.setColumnVisible('itemNumber', false);\r\n this.gridColumnApi.setColumnVisible('locationAbbr', false);\r\n this.gridColumnApi.setColumnVisible('casePack', false);\r\n this.gridColumnApi.setColumnVisible('packDescption', false);\r\n this.gridColumnApi.setColumnVisible('stockNo', false);\r\n this.gridColumnApi.setColumnVisible('vendorPart', false);\r\n this.gridColumnApi.setColumnVisible('vendorNumber', false);\r\n this.gridColumnApi.setColumnVisible('vendorName', false);\r\n this.gridColumnApi.setColumnVisible('poDate', false);\r\n this.gridColumnApi.setColumnVisible('pallet', false);\r\n this.gridColumnApi.setColumnVisible('prc', false);\r\n this.gridColumnApi.setColumnVisible('avl', false);\r\n this.gridColumnApi.setColumnVisible('qoo', false);\r\n this.gridColumnApi.setColumnVisible('val', false);\r\n this.gridColumnApi.setColumnVisible('avloo', false);\r\n}\r\n\r\n doSearch= (filterObject) => {\r\n this.setState({searchClicked: true, rowData:[]});\r\n var _reportColumn =[];\r\n _reportColumn = filterObject['reportColumn'].reduce((res,val) =>{\r\n res[val.code] = val.value;\r\n return res;\r\n },{});\r\n \r\n var _dataColumn = filterObject['dataColumn'].reduce((res,val) =>{\r\n res[val.code] = val.value;\r\n return res;\r\n },{});\r\n var itemEtry =\"\";\r\n const dataEntr = filterObject['ItemEntryList']\r\n .map(filteredData => (\r\n itemEtry = itemEtry+ filteredData.itemvalue \r\n ));\r\n \r\n\r\n var searchObject = {\r\n dimCustPart:filterObject['reportColumn'].filter(p => p.value===\"Customer Part#\" && p.isChecked===true).length ||0,\r\n dimItem: filterObject['reportColumn'].filter(p => p.value===\"Item Number\" && p.isChecked===true).length || 0,\r\n dimCo: filterObject['reportColumn'].filter(p => p.value===\"Warehouse\" && p.isChecked===true).length || 0,\r\n dimStk: filterObject['reportColumn'].filter(p => p.value===\"Stock/Non-stock Item\" && p.isChecked===true).length|| 0,\r\n dimVPart: filterObject['reportColumn'].filter(p => p.value===\"Vendor Part\" && p.isChecked===true).length|| 0,\r\n dimVend: filterObject['reportColumn'].filter(p => p.value===\"Vendor\" && p.isChecked===true).length|| 0,\r\n dimPODate: filterObject['reportColumn'].filter(p => p.value===\"Estimated Delvery Date to Distributor Warehouse\" && p.isChecked===true).length|| 0,\r\n dimPal: filterObject['reportColumn'].filter(p => p.value===\"Pallet Qty\" && p.isChecked===true).length|| 0,\r\n dimCurPrice: filterObject['reportColumn'].filter(p => p.value===\"Current Price\" && p.isChecked===true).length|| 0,\r\n\r\n meaAVL: filterObject['dataColumn'].filter(p => p.value===\"Quantity Available\" && p.isChecked===true).length|| 0,\r\n meaVAL:filterObject['dataColumn'].filter(p => p.value===\"Product Value Available\" && p.isChecked===true).length||0,\r\n meaQOO: filterObject['dataColumn'].filter(p => p.value===\"Quantity on Demand\" && p.isChecked===true).length||0,\r\n meaAVLOO: filterObject['dataColumn'].filter(p => p.value===\"Available + On Order\" && p.isChecked===true).length|| 0,\r\n frItem:filterObject['fromItemRange']==''?'':filterObject['fromItemRange'],\r\n toItem:filterObject['toItemRange']==''?'':filterObject['toItemRange'],\r\n cPType:(filterObject['ItemEntryType']==\"Distributor Item#\")?'B':(filterObject['ItemEntryType']==\"Customer Part#\")?'C':'V',\r\n custList:filterObject['ciCustomers'].length>0?filterObject['ciCustomers'].join(''):filterObject['isAllCICustomers'],\r\n vendList:filterObject['ciVendors'].length>0?filterObject['ciVendors'].join(''):filterObject['isAllCIVedors'].join(''),\r\n itemList:itemEtry\r\n };\r\n \r\n // alert(filterObject['dataColumn'].filter(p => p.value===\"Quantity Available\" && p.isChecked===true).length);\r\n this.showGrid(searchObject);\r\n\r\n getConsolidatedInventory(searchObject)\r\n .then((data) => { \r\n this.setState({ searchClicked: false, rowData: data||[] })\r\n \r\n this.setState({inventoryList:getFilteredData(data, this.showFilterExportColumn(searchObject))})\r\n if(this.state.rowData.length === 0)\r\n {\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"No inventory matches the criteria.\",\r\n });\r\n }\r\n });\r\n \r\n \r\n }\r\n showcolumns=(filterObject)=>{\r\n var searchObject = {\r\n dimCustPart:filterObject['reportColumn'].filter(p => p.value===\"Customer Part#\" && p.isChecked===true).length ||0,\r\n dimItem: filterObject['reportColumn'].filter(p => p.value===\"Item Number\" && p.isChecked===true).length || 0,\r\n dimCo: filterObject['reportColumn'].filter(p => p.value===\"Warehouse\" && p.isChecked===true).length || 0,\r\n dimStk: filterObject['reportColumn'].filter(p => p.value===\"Stock/Non-stock Item\" && p.isChecked===true).length|| 0,\r\n dimVPart: filterObject['reportColumn'].filter(p => p.value===\"Vendor Part\" && p.isChecked===true).length|| 0,\r\n dimVend: filterObject['reportColumn'].filter(p => p.value===\"Vendor\" && p.isChecked===true).length|| 0,\r\n dimPODate: filterObject['reportColumn'].filter(p => p.value===\"Estimated Delvery Date to Distributor Warehouse\" && p.isChecked===true).length|| 0,\r\n dimPal: filterObject['reportColumn'].filter(p => p.value===\"Pallet Qty\" && p.isChecked===true).length|| 0,\r\n dimCurPrice: filterObject['reportColumn'].filter(p => p.value===\"Current Price\" && p.isChecked===true).length|| 0,\r\n\r\n meaAVL: filterObject['dataColumn'].filter(p => p.value===\"Quantity Available\" && p.isChecked===true).length|| 0,\r\n meaVAL:filterObject['dataColumn'].filter(p => p.value===\"Product Value Available\" && p.isChecked===true).length||0,\r\n meaQOO: filterObject['dataColumn'].filter(p => p.value===\"Quantity on Demand\" && p.isChecked===true).length||0,\r\n meaAVLOO: filterObject['dataColumn'].filter(p => p.value===\"Available + On Order\" && p.isChecked===true).length|| 0,\r\n \r\n };\r\n\r\n this.showGrid(searchObject);\r\n }\r\n showGrid = (searchObject) => {\r\n let showDescription = (searchObject.dimCustPart == 1 || searchObject.dimItem == 1)\r\n ? true\r\n : false;\r\n this.gridColumnApi.setColumnVisible('customerPart', searchObject.dimCustPart == 1 ? true : false);\r\n this.gridColumnApi.setColumnVisible('description', showDescription);\r\n this.gridColumnApi.setColumnVisible('itemNumber', searchObject.dimItem == 1 ? true : false);\r\n this.gridColumnApi.setColumnVisible('locationAbbr', (searchObject.dimCo == 1)?true:false);\r\n this.gridColumnApi.setColumnVisible('casePack', (searchObject.dimItem == 1 && searchObject.dimCo == 1)?true:false);\r\n this.gridColumnApi.setColumnVisible('packDescption', (searchObject.dimItem == 1 && searchObject.dimCo == 1)?true:false);\r\n this.gridColumnApi.setColumnVisible('stockNo', searchObject.dimStk == 1 ? true : false);\r\n this.gridColumnApi.setColumnVisible('vendorPart', searchObject.dimVPart == 1 ? true : false);\r\n this.gridColumnApi.setColumnVisible('vendorNumber', searchObject.dimVend == 1 ? true : false);\r\n this.gridColumnApi.setColumnVisible('vendorName', searchObject.dimVend == 1 ? true : false);\r\n this.gridColumnApi.setColumnVisible('poDate', searchObject.dimPODate == 1 ? true : false);\r\n this.gridColumnApi.setColumnVisible('pallet', searchObject.dimPal == 1 ? true : false);\r\n this.gridColumnApi.setColumnVisible('prc', searchObject.dimCurPrice == 1 ? true : false);\r\n this.gridColumnApi.setColumnVisible('avl', searchObject.meaAVL == 1 ? true : false);\r\n this.gridColumnApi.setColumnVisible('qoo', searchObject.meaQOO == 1 ? true : false);\r\n this.gridColumnApi.setColumnVisible('val', searchObject.meaVAL == 1 ? true : false);\r\n this.gridColumnApi.setColumnVisible('avloo', searchObject.meaAVLOO == 1 ? true : false);\r\n }\r\n\r\n showFilterExportColumn(searchObject) { \r\n let filterPropList = [];\r\n\r\n if (searchObject.dimCustPart==1)\r\n {\r\n filterPropList.push('CustomerPart');\r\n filterPropList.push('Description');\r\n }\r\n if (searchObject.dimItem==1)\r\n {\r\n filterPropList.push('ItemNumber');\r\n filterPropList.push('Description');\r\n }\r\n if (searchObject.dimCo==1)\r\n {\r\n filterPropList.push('Warehouse');\r\n }\r\n if (searchObject.dimStk==1)\r\n {\r\n filterPropList.push('StockNonStockItem'); \r\n }\r\n if (searchObject.dimVPart==1)\r\n {\r\n filterPropList.push('VendorPart'); \r\n } \r\n if(searchObject.dimVend==1)\r\n {\r\n filterPropList.push('VendorNumber'); \r\n filterPropList.push('VendorName'); \r\n } \r\n if(searchObject.dimPODate==1)\r\n {\r\n filterPropList.push('EstimatedDeliveryDatetoDistributorWarehouse'); \r\n }\r\n if(searchObject.dimPal==1)\r\n {\r\n filterPropList.push('PalletQty');\r\n }\r\n if(searchObject.dimCurPrice==1)\r\n {\r\n filterPropList.push('CurrentPrice');\r\n }\r\n if(searchObject.meaAVL==1)\r\n {\r\n filterPropList.push('QuantityAvailable');\r\n }\r\n if(searchObject.meaQOO==1)\r\n {\r\n filterPropList.push('QuantityOnOrder');\r\n }\r\n if(searchObject.meaVAL==1)\r\n {\r\n filterPropList.push('ProductValueAvailable');\r\n }\r\n if(searchObject.meaAVLOO==1)\r\n {\r\n filterPropList.push('AvailableOnOrder');\r\n }\r\n\r\n return filterPropList;\r\n }\r\n handleClose = () => this.setState({ show: false });\r\n\r\n onGridReady = params => {\r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi; \r\n };\r\n\r\n \r\n render() {\r\n const renderCIGrid = () => {\r\n return
    \r\n {this.state.searchClicked?\r\n \r\n :''}\r\n \r\n \r\n
    ;\r\n }\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n
    Consolidated Inventory List
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n { this.state.inventoryList.length > 0 ? \r\n \r\n \"Download\r\n \r\n : undefined} \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n { renderCIGrid() }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ConsolidatedInventory;\r\nfunction compare (number1, number2) {\r\n if (number1 === null && number2 === null) {\r\n return 0;\r\n }\r\n if(isNaN(number1)){ return -1}\r\n if(isNaN(number2)){ return 1}\r\n if (number1 === null) {\r\n return -1;\r\n }\r\n if (number2 === null) {\r\n return 1;\r\n }\r\n return number1 - number2;}\r\n\r\n function dateFormatter(param) {\r\n if(param.value != null && param.value != \"\" && param.value != undefined){\r\n var d = param.value.split(\" \");\r\n var dateValue = d[0];\r\n return dateValue;\r\n }\r\n else return \"\";\r\n }\r\n function fn_DateCompare(DateA, DateB) {\r\n var a = new Date(DateA);\r\n var b = new Date(DateB);\r\n \r\n var msDateA = Date.UTC(a.getFullYear(), a.getMonth()+1, a.getDate());\r\n var msDateB = Date.UTC(b.getFullYear(), b.getMonth()+1, b.getDate());\r\n \r\n if (parseFloat(msDateA) < parseFloat(msDateB))\r\n return -1; // less than\r\n else if (parseFloat(msDateA) == parseFloat(msDateB))\r\n return 0; // equal\r\n else if (parseFloat(msDateA) > parseFloat(msDateB))\r\n return 1; // greater than\r\n else\r\n return null; // error\r\n }\r\n\r\n function currencyFormatterWithParam(params) {\r\n if (params.value !== undefined && params.value !== \"\" && params.value !== null && params.value !== '0' && params.value !== '0.00') {\r\n if (parseFloat(params.value) < 0) return \"-$\" + (parseFloat(params.value).toFixed(2) * -1).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n else return \"$\" + (parseFloat(params.value).toFixed(2)).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n else return \"$0.00\";\r\n }","import React, { Component } from \"react\";\r\nimport { Nav, Navbar, Form, FormControl } from \"react-bootstrap\";\r\nimport styled from \"styled-components\";\r\nimport CustomerContact from \"./CustomerContact\";\r\nimport user from \"../models/User\";\r\nimport bunzlCSS from \"../assets/css/bunzlUI.css\";\r\nimport appConstants from \"../_services/applicationConstant\";\r\nimport { decryptData } from '../Utils';\r\nclass NavigationBar extends Component {\r\n render() {\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"UserMenu\"), salt);\r\n user.toUser = originalData;\r\n\r\n const navStyle = appConstants.isR3App\r\n ? {\r\n fontSize: \"12px\",\r\n height: \"30px\",\r\n fontWeight: \"bold\",\r\n backgroundColor: \"#0079c2\",\r\n }\r\n : {\r\n fontSize: \"12px\",\r\n height: \"30px\",\r\n fontWeight: \"bold\",\r\n backgroundColor: \"#79b91c\",\r\n };\r\n const loginTypeCode = localStorage.getItem(\"loginTypeCode\");\r\n return (\r\n
    \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n }\r\n}\r\nexport default NavigationBar;\r\n","import React, { Component } from \"react\";\r\nimport bunzlCSS from \"../../assets/css/bunzlUI.css\";\r\nimport appConstants from \"../../_services/applicationConstant\";\r\n\r\n\r\nclass CustomPriceFilter extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state={\r\n customerPart: 'All',\r\n item:'All',\r\n department:'',\r\n description:'',\r\n searchClicked:false\r\n }\r\n }\r\n \r\n componentDidMount() {\r\n }\r\n\r\n\r\n myChangeHandler = (event) => {\r\n let nam = event.target.name;\r\n let val = event.target.value;\r\n if(nam==\"customerPart\")\r\n {\r\n document.getElementById(\"disableitem\").disabled=true;\r\n }\r\n else if(nam==\"item\")\r\n {\r\n document.getElementById(\"disablecust\").disabled=true;\r\n }\r\n if(val==\"All\")\r\n {\r\n document.getElementById(\"disableitem\").disabled=false;\r\n document.getElementById(\"disablecust\").disabled=false;\r\n }\r\n this.setState({ [nam]: val }); \r\n }\r\n resetFilter = () => {\r\n this.setState({\r\n customerPart:'',\r\n item:'',\r\n department:'',\r\n description:''\r\n });\r\n }\r\n\r\n searchClicked=() =>{\r\n this.props.doSearch(this.state.customerPart,\r\n this.state.item,\r\n this.state.department,\r\n this.state.description); \r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default CustomPriceFilter;\r\n","import React, { Component } from \"react\";\r\nimport NavigationBar from \"../components/NavigationBar\";\r\nimport CustomerContact from \"../components/CustomerContact\";\r\nimport bunzlLogo from '../assets/images/bunzl-logo.gif';\r\nimport r3Logo from '../assets/images/r3-logo.gif';\r\nimport onlineChat from '../assets/images/onlinechat.gif';\r\nimport onlineR3Chat from '../assets/images/R3_chat.jpg';\r\nimport appConstants from \"../_services/applicationConstant\";\r\n\r\nexport default class HeaderBunzl extends Component {\r\nrender(){\r\n return(\r\n
    \r\n
    \r\n
    \r\n {appConstants.isR3App ?\r\n \r\n \"R3\"\r\n \r\n :\r\n \r\n \"Bunzl\"\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n}","import React, { Component } from \"react\";\r\nimport {NavigationBar} from \"../components/NavigationBar\";\r\nimport CustomerContact from \"../components/CustomerContact\";\r\nimport onlineChat from '../assets/images/onlinechat.gif';\r\nimport onlineR3Chat from '../assets/images/R3_chat.jpg';\r\nimport appConstants from \"../_services/applicationConstant\"\r\n\r\n\r\nexport default class ContactCC extends Component {\r\nrender(){\r\n return(\r\n \r\n );\r\n}\r\n\r\n}","import api from './apiUrl';\r\nimport {authHeader,encodedURL} from '../_helpers/auth-header'\r\n\r\nvar identityKey=localStorage.getItem('identityKey')\r\n\r\nexport function getFilteredData(data){\r\n let filteredData=[];\r\n data.forEach((item) => {\r\n filteredData.push({\r\n CustomerPartNumber:item.customerPartNumber,\r\n ItemNumber:item.itemNumber,\r\n SellCase:item.sellCase+'/'+item.sellUms,\r\n SellUms:item.sellUms,\r\n Description:item.description +item.description2,\r\n Description2:item.description2,\r\n PriceSource:item.priceSource,\r\n ShipmentType:item.shipmentType,\r\n ShipTypePending:item.curpnd,\r\n Price:currencyFormatter(item.price),\r\n EffectiveDate:dateFormatter(item.effectiveDate),\r\n ExpirationDate:dateFormatter(item.expirationDate)\r\n });\r\n })\r\n return filteredData; \r\n}\r\n \r\nexport function getCustomPriceReport() {\r\n\r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/customPrice/getCustomPrices?identityKey=${identityKey.trim()}&companyNumber=${localStorage.getItem('companyNumber')}&customerNumber=${localStorage.getItem('customerNumber')}&loginType=${localStorage.getItem('loginTypeCode')}`)}`, {\r\n method: 'GET',\r\n headers:authHeader()\r\n }).then(response => response.json());\r\n \r\n}\r\n\r\nexport function getCustomerPriceListData(customerPart, item, department, description)\r\n{\r\n var urlparam='&custPart='+customerPart\r\n urlparam+='&distPart='+item\r\n urlparam+='&department='+department\r\n urlparam+='&partDescription='+description\r\n \r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/customPrice/getCustomPrices?identityKey=${identityKey.trim()}&companyNumber=${localStorage.getItem('companyNumber')}&customerNumber=${localStorage.getItem('customerNumber')}&loginType=${localStorage.getItem('loginTypeCode')}${urlparam}`)}`, {\r\n method: 'GET',\r\n headers:authHeader()\r\n }).then(response => response.json());\r\n}\r\n \r\nfunction currencyFormatter(value) {\r\n if (value !== undefined && value !== \"\") {\r\n if (parseFloat(value) < 0) return \"-$\" + parseFloat(value) * -1;\r\n else return \"$\" + value;\r\n }\r\n return \"\";\r\n }\r\n function dateFormatter(inputDate) {\r\n if(inputDate != null && inputDate != \"\" && inputDate != undefined){\r\n var d = inputDate.split(\" \");\r\n var dateValue = d[0];\r\n return dateValue;\r\n }\r\n else return \"\";\r\n }\r\n \r\n","import React, { Component } from \"react\";\r\n\r\nimport { AgGridReact } from \"ag-grid-react\";\r\nimport \"ag-grid-community/dist/styles/ag-grid.css\";\r\nimport \"ag-grid-community/dist/styles/ag-theme-alpine.css\";\r\nimport downloadbutton from '../../assets/images/downloadbutton.gif';\r\nimport bunzlsplash from \"../../assets/images/bunzl-splash.jpg\";\r\nimport CustomerFooter from \"../../components/CustomerFooter\";\r\nimport r3splash from \"../../assets/images/r3-splash.jpg\";\r\nimport HeaderBunzl from \"../../components/HeaderBunzl\";\r\nimport ContactCC from \"../../components/contactCC\";\r\nimport CustomPriceFilter from \"./CustomPriceFilter\";\r\nimport {getFilteredData} from \"../../_services/customPriceService\";\r\nimport {CSVLink} from 'react-csv';\r\nimport {getCustomerPriceListData} from \"../../_services/customPriceService\";\r\nimport appConstants from \"../../_services/applicationConstant\";\r\nimport ESSModal from \"../../components/ESSModal.jsx\";\r\nimport ESSProgressBar from \"../../components/ESSProgressBar\";\r\n\r\n\r\n\r\nclass CustomPrice extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n headers :[\r\n { label: 'Customer Part Number', key: 'CustomerPartNumber' },\r\n { label: 'Item Number', key: 'ItemNumber' },\r\n { label: 'Case Qty/Pack', key: 'SellCase' },\r\n { label: 'Description', key: 'Description' },\r\n { label: 'Source', key: 'PriceSource' },\r\n { label: 'Ship Type Pending', key: 'ShipTypePending' },\r\n { label: 'Price', key: 'Price' },\r\n { label: 'Effective Date', key: 'EffectiveDate' },\r\n \r\n { label: 'Expiration Date', key: 'ExpirationDate' }\r\n\r\n ],\r\n searchText:'',\r\n show: false,\r\n userMessage:'',\r\n vendor:'', \r\n searchType:'', \r\n pageCount:'', \r\n qualifier:'',\r\n searchClicked:false,\r\n columnDefs: [\r\n { headerName: \"Customer Part Number\", field: \"customerPartNumber\",sortable: true,\r\n cellStyle: {\r\n textAlign: \"left\", \r\n borderRight: \"0.1px solid lightgray\",\r\n }, resizable: true, width:120,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` \r\n },\r\n { headerName: \"Item Number\", field: \"itemNumber\",sortable: true,\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, resizable: true, width:120,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` \r\n },\r\n { headerName: \"Case Qty/Pack\", sortable: true,\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, field: \"sellCase/sellUms\",valueGetter: sellValueGetter,resizable: true, width:120,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` \r\n },\r\n { headerName: \"Description\", field: \"description\",valueGetter:descriptionValueGetter,sortable: true,\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, resizable: true, width:250,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` \r\n },\r\n { headerName: \"Source\", field: \"priceSource\",sortable: true,\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, resizable: true, width:100,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` \r\n },\r\n { headerName: \"Ship Type Pending\", field: \"curpnd\",sortable: true,\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, resizable: true, width:160,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` \r\n },\r\n { headerName: \"Price\",comparator: compare, field: \"price\",sortable: true, valueFormatter: currencyFormatter, \r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, resizable: true, width:100,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` \r\n },\r\n { headerName: \"Effective Date\", field: \"effectiveDate\",sortable: true,cellRenderer: dateFormatter,comparator:fn_DateCompare,\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, resizable: true, width:160,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` \r\n },\r\n { headerName: \"Expiration Date\", field: \"expirationDate\",sortable: true,cellRenderer: dateFormatter,comparator:fn_DateCompare,\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n }, resizable: true, width:160,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}` \r\n } \r\n ],\r\n \r\n rowData:[],\r\n inventoryList:[]\r\n };\r\n }\r\n handleClose = () => this.setState({ show: false });\r\n\r\n doSearch= (customerPart, item, department, description) => { \r\n this.setState({customerPart:customerPart,\r\n item:item,\r\n department:department,\r\n description:description,\r\n rowData:[],\r\n searchClicked:true});\r\n getCustomerPriceListData(customerPart, item, department, description)\r\n .then((data) => {\r\n this.setState({inventoryList:getFilteredData(data)})\r\n this.setState({ rowData: data })\r\n if(data.length > 0)\r\n this.setState({ rowData: data, searchClicked:false });\r\n else{\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"No matching Record have been found.\",\r\n searchClicked:false\r\n });\r\n }\r\n });\r\n }\r\n onGridReady = params => { \r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi;\r\n params.api.sizeColumnsToFit(); \r\n };\r\n render() {\r\n const renderInventoryGrid = () => {\r\n return
    \r\n {this.state.searchClicked?\r\n \r\n :''}\r\n \r\n \r\n
    ; \r\n }\r\n return (\r\n
    \r\n
    \r\n {this.state.show && (\r\n \r\n )}\r\n \r\n
    Customer Price
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n { this.state.inventoryList.length > 0 ? \r\n \r\n \"Download\r\n \r\n : undefined} \r\n
    \r\n
    \r\n \r\n
    \r\n { renderInventoryGrid() }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default CustomPrice;\r\nfunction compare (number1, number2) {\r\n if (number1 === null && number2 === null) {\r\n return 0;\r\n }\r\n if(isNaN(number1)){ return -1}\r\n if(isNaN(number2)){ return 1}\r\n if (number1 === null) {\r\n return -1;\r\n }\r\n if (number2 === null) {\r\n return 1;\r\n }\r\n return number1 - number2;}\r\n\r\n function dateFormatter(param) {\r\n if(param.value != null && param.value != \"\" && param.value != undefined){\r\n var d = param.value.split(\" \");\r\n var dateValue = d[0];\r\n return dateValue;\r\n }\r\n else return \"\";\r\n }\r\n\r\n function currencyFormatter(params) {\r\n if (params.value !== undefined && params.value !== \"\" && params.value !== null && params.value!== '0' && params.value!== '0.00') {\r\n if (parseFloat(params.value) < 0) return \"-$\" + parseFloat(params.value * -1 ).toLocaleString();\r\n else return \"$\" + parseFloat(params.value).toLocaleString();\r\n }\r\n return \"$0.00\";\r\n }\r\n function sellValueGetter(params) {\r\n return params.data.sellCase+'/ '+ params.data.sellUms;\r\n }\r\n function descriptionValueGetter(params) {\r\n return params.data.description+' '+ params.data.description2;\r\n }\r\n function fn_DateCompare(DateA, DateB) {\r\n var a = new Date(DateA);\r\n var b = new Date(DateB);\r\n \r\n var msDateA = Date.UTC(a.getFullYear(), a.getMonth()+1, a.getDate());\r\n var msDateB = Date.UTC(b.getFullYear(), b.getMonth()+1, b.getDate());\r\n \r\n if (parseFloat(msDateA) < parseFloat(msDateB))\r\n return -1; // less than\r\n else if (parseFloat(msDateA) == parseFloat(msDateB))\r\n return 0; // equal\r\n else if (parseFloat(msDateA) > parseFloat(msDateB))\r\n return 1; // greater than\r\n else\r\n return null; // error\r\n }","import React, { Component } from \"react\";\r\nimport bunzlCSS from \"../../assets/css/bunzlUI.css\";\r\nimport { getShipTo } from \"../../_services/accountsPayable.service\";\r\nimport appConstants from \"../../_services/applicationConstant\";\r\nimport mgglass from \"../../assets/images/magGlass.jpg\";\r\nimport ESSModal from \"../../components/ESSModal.jsx\";\r\nimport user from '../../models/User';\r\nimport { decryptData } from '../../Utils';\r\n\r\nclass DisplayOrderFilter extends Component {\r\n constructor(props) {\r\n //user.toUser = JSON.parse(localStorage.getItem('UserMenu'))\r\n \r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"UserMenu\"), salt);\r\n user.toUser = originalData;\r\n \r\n super(props);\r\n this.state = {\r\n searchPOText: \"\",\r\n shipTo: [],\r\n selectedShipTo: \"All\",\r\n selectedStatusType: \"Open\",\r\n selectedOrderType: \"A\",\r\n selectedDataType: \"P\",\r\n fromDate: \"\",\r\n toDate: \"\",\r\n orderValue: \"\",\r\n seqValue: \"\",\r\n invoiceValue: \"\",\r\n isOrderTypeEnabled: true,\r\n show: false,\r\n userMessage: \"\",\r\n enableShipTo: true\r\n };\r\n }\r\n componentDidMount() {\r\n getShipTo()\r\n .then((data) => {\r\n if(localStorage.getItem('loginTypeCode') === 'C')\r\n { \r\n var userName= localStorage.getItem('userName');\r\n if(userName.length > 6)\r\n {\r\n var shipToID= userName.substring(6,userName.trim().length);\r\n var shipTOData= data.filter((p) => p.shipToNumber.trim() === shipToID);\r\n this.setState({ shipTo: shipTOData }, () => {\r\n if (shipTOData.length === 1) {\r\n this.setState({ selectedShipTo: shipTOData[0].shipToNumber });\r\n }\r\n }); \r\n this.setState({enableShipTo:false});\r\n }\r\n else{\r\n if(user.toUser.ViewAllShipTos==='All'){\r\n this.setState({ shipTo: data }, () => { \r\n }); \r\n }\r\n else{\r\n this.setState({ shipTo: data }, () => {\r\n if (data.length === 1) {\r\n this.setState({ selectedShipTo: data[0].shipToNumber , enableShipTo:false});\r\n }\r\n }); \r\n }\r\n }\r\n }\r\n else{\r\n if(localStorage.getItem('customerGroupShipToValue') !== null && localStorage.getItem('customerGroupShipToValue').trim() !== \"\" ){\r\n var shipTOData= data.filter((p) => p.shipToNumber.trim() === localStorage.getItem('customerGroupShipToValue').trim());\r\n this.setState({ shipTo: shipTOData }, () => {\r\n if (shipTOData.length === 1) {\r\n this.setState({ selectedShipTo: shipTOData[0].shipToNumber, enableShipTo:false });\r\n }\r\n }); \r\n }\r\n else{\r\n this.setState({ shipTo: data }, () => {\r\n // if (data.length === 1) {\r\n // this.setState({ selectedShipTo: data[0].shipToNumber });\r\n // }\r\n });\r\n }\r\n }\r\n if(data.length === 0)\r\n {\r\n this.setState({enableShipTo:false});\r\n }\r\n })\r\n .catch(console.log);\r\n }\r\n onQualifierChange = (event) => {\r\n let nam = event.target.name;\r\n let val = event.target.value;\r\n this.setState({ [nam]: val });\r\n if (nam === \"selectedStatusType\") {\r\n if (val === \"Closed\") {\r\n this.setState({ selectedOrderType: \"A\", isOrderTypeEnabled: false });\r\n } else {\r\n this.setState({ isOrderTypeEnabled: true });\r\n }\r\n }\r\n if (nam === \"selectedDataType\") {\r\n if (val === \"PO\") {\r\n this.setState({ selectedDataType: \"P\" });\r\n }\r\n }\r\n };\r\n myChangeHandler = (event) => {\r\n let nam = event.target.name;\r\n let val = event.target.value;\r\n this.setState({ [nam]: val });\r\n };\r\n searchClicked = () => {\r\n var fromdate = document.getElementById(\"fromDate\").value;\r\n \r\n \r\n var todate = document.getElementById(\"toDate\").value;\r\n if (document.getElementById(\"fromDate\").value !== '')\r\n {\r\n \r\n if ((fromdate.substring(0,4)) < 1900 ||(fromdate.substring(0,4)) > 2899 ) {\r\n \r\n this.setState({\r\n show: true,\r\n userMessage: \"Invalid year\",\r\n });\r\n return false;\r\n \r\n }\r\n }\r\n if(document.getElementById(\"toDate\").value != '')\r\n {\r\n if (todate.substring(0,4) > 2899 ||(todate.substring(0,4)) < 1900 )\r\n {\r\n \r\n this.setState({\r\n show: true,\r\n userMessage: \"Invalid year\",\r\n });\r\n return false;\r\n }\r\n }\r\n this.setState({ fromDate: fromdate, toDate: todate }, () => {\r\n // shipToNumber, poNumber, orderStatus, orderFilter,referenceNumber,fromDate,toDate,dateComparisonType,orderSearchNumber,orderSearchSequenceNumber\r\n this.props.doSearch(\r\n this.state.selectedShipTo,\r\n this.state.searchPOText,\r\n this.state.selectedStatusType,\r\n this.state.selectedOrderType,\r\n this.state.invoiceValue === null || this.state.invoiceValue === \"\"\r\n ? \"0\"\r\n : this.state.invoiceValue,\r\n this.state.fromDate,\r\n this.state.toDate,\r\n this.state.selectedDataType,\r\n this.state.orderValue === null || this.state.orderValue === \"\"\r\n ? \"0\"\r\n : this.state.orderValue,\r\n this.state.seqValue === null || this.state.seqValue === \"\"\r\n ? \"0\"\r\n : this.state.seqValue\r\n );\r\n });\r\n };\r\n resetFilter = () => {\r\n document.getElementById(\"fromDate\").value = null;\r\n document.getElementById(\"toDate\").value = null;\r\n this.setState({\r\n searchPOText: \"\",\r\n selectedShipTo: \"All\",\r\n selectedStatusType: \"Open\",\r\n selectedOrderType: \"A\",\r\n selectedDataType: \"P\",\r\n fromDate: \"\",\r\n toDate: \"\",\r\n orderValue: \"\",\r\n seqValue: \"\",\r\n invoiceValue: \"\",\r\n isOrderTypeEnabled: true,\r\n });\r\n this.props.resetFilterValues();\r\n };\r\n HideClicked = () => {\r\n var element = document.getElementById(\"searchFilters\");\r\n var ele = document.getElementById(\"searchFilter\");\r\n document.getElementById(\"imgs\").style.display = \"block\";\r\n ele.classList.remove(\"filterBody\");\r\n element.classList.add(\"searchFilter\");\r\n };\r\n searchFilterClick = () => {\r\n var element = document.getElementById(\"searchFilters\");\r\n var ele = document.getElementById(\"searchFilter\");\r\n document.getElementById(\"imgs\").style.display = \"none\";\r\n ele.classList.add(\"filterBody\");\r\n element.classList.remove(\"searchFilter\");\r\n };\r\n handleClose = () => this.setState({ show: false });\r\n render() {\r\n const shipToEnabled = this.state.shipTo.length > 1 ? true : false;\r\n const noShipTos= this.state.shipTo.length === 0 ? true : false;\r\n const invoiceEnabled= this.state.orderValue.length > 1 || this.state.seqValue.length > 1 ? false : true;\r\n const orderSeqEnabled= this.state.invoiceValue.length > 1 ? false : true;\r\n \r\n return (\r\n \r\n {this.state.show && (\r\n \r\n )}\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n PO{\" \"}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Ship To:{\" \"}\r\n \r\n
    \r\n \r\n { this.state.enableShipTo && }\r\n {noShipTos &&\r\n \r\n }\r\n {this.state.shipTo.map((type) => (\r\n \r\n {type.name} {\" - \"} {type.shipToNumber}\r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n Status:{\" \"}\r\n \r\n
    \r\n
    \r\n \r\n \r\n Open\r\n \r\n
    \r\n
    \r\n \r\n \r\n Closed\r\n \r\n
    \r\n
    \r\n \r\n \r\n All\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n Order Type:{\" \"}\r\n \r\n
    \r\n
    \r\n \r\n \r\n All\r\n \r\n
    \r\n
    \r\n \r\n \r\n Backorders\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n PO\r\n \r\n
    \r\n
    \r\n \r\n \r\n Ship\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n From Date:{\" \"}\r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n To Date:{\" \"}\r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n\r\n \r\n \r\n \r\n Order:{\" \"}\r\n \r\n
    \r\n \r\n
    \r\n \r\n Seq:{\" \"}\r\n \r\n
    \r\n \r\n
    \r\n \r\n\r\n \r\n \r\n Invoice:{\" \"}\r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Search\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Clear\r\n \r\n
    \r\n
    \r\n \r\n Hide\r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default DisplayOrderFilter;\r\n","import React, { Component, useMemo, useCallback } from \"react\";\r\nimport appConstants from \"../../_services/applicationConstant\";\r\nimport DisplayOrderFilter from \"./DisplayOrderFilter\";\r\nimport { AgGridReact } from \"ag-grid-react\";\r\nimport \"ag-grid-community/dist/styles/ag-grid.css\";\r\nimport \"ag-grid-community/dist/styles/ag-theme-alpine.css\";\r\nimport { getInventoryData } from \"../../_services/inventory.service\";\r\nimport { CSVLink } from \"react-csv\";\r\nimport downloadbutton from \"../../assets/images/downloadbutton.gif\";\r\nimport {\r\n geDisplayOrderHeaderData\r\n} from \"../../_services/displayOrder.service\";\r\nimport fedex from \"../../assets/images/FedEx.gif\";\r\nimport ups from \"../../assets/images/ups.jpg\";\r\nimport OrderDetails from \"./OrderDetails\";\r\nimport { resetIdCounter } from \"react-tabs\";\r\nimport UPSTrackingNumbersCard from \"./UPSTrackingNumbersCard\";\r\nimport { authHeader, encodedURL } from \"../../_helpers/auth-header\";\r\nimport api from \"../../_services/apiUrl\";\r\nimport ESSModal from \"../../components/ESSModal.jsx\";\r\nimport ESSProgressBar from \"../../components/ESSProgressBar\";\r\nimport ESSLoadingModal from \"../../components/ESSLoadingModal\";\r\nimport user from '../../models/User';\r\nimport { decryptData } from '../../Utils';\r\n\r\nclass DisplayOrder extends Component {\r\n constructor(props) {\r\n //user.toUser = JSON.parse(localStorage.getItem(\"UserMenu\"));\r\n\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"UserMenu\"), salt);\r\n user.toUser = originalData;\r\n\r\n super(props);\r\n this.handlePOClick = this.handlePOClick.bind(this);\r\n this.handleInvoiceClick = this.handleInvoiceClick.bind(this);\r\n this.handleUPSlick = this.handleUPSlick.bind(this);\r\n this.handleFDXClick = this.handleFDXClick.bind(this);\r\n this.csvLink = React.createRef();\r\n\r\n\r\n\r\n\r\n\r\n this.state = {\r\n companyNumber: localStorage.getItem(\"companyNumber\"),\r\n searchClicked: false,\r\n shipToNumber: \"All\",\r\n poNumber: \"\",\r\n orderStatus: \"Open\",\r\n orderFilter: \"A\",\r\n referenceNumber: \"0\",\r\n fromDate: \"\",\r\n toDate: \"\",\r\n dateComparisonType: \"P\",\r\n orderSearchNumber: \"0\",\r\n orderSearchSequenceNumber: \"0\",\r\n show: false,\r\n userMessage: '',\r\n showLoading: false,\r\n columnDefs: [\r\n\r\n {\r\n\r\n headerName: \"PO #\",\r\n field: \"poNumber\",\r\n cellStyle: {\r\n textAlign: \"left\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n resizable: true,\r\n width: 120,\r\n tooltip: (params) => \"Double click to show the details for an order\",\r\n headerClass: `${appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Order #\",\r\n tooltip: (params) => \"Double click to show the details for an order\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"orderNumber\",\r\n valueFormatter: orderFormater,\r\n resizable: true,\r\n sortable: true,\r\n initialSortIndex: 1,\r\n sort: \"desc\",\r\n width: 120,\r\n headerClass: `${appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Invoice #\",\r\n cellStyle: {\r\n textAlign: \"left \",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n tooltip: (params) =>\r\n \"Click to view an Image of Invoice#\" + \"\" + params.value,\r\n field: \"referenceNumber\",\r\n resizable: true,\r\n sortable: true,\r\n width: 90,\r\n cellRendererFramework: (props) => {\r\n if (props.value === \"\" || props.value === null)\r\n return \"\";\r\n else if (user.toUser.CanViewInvoices == \"N\")\r\n return props.value;\r\n else\r\n return (\r\n \r\n {props.value}{\" \"}\r\n \r\n );\r\n },\r\n headerClass: `${appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Ship To Name\",\r\n tooltip: (params) => \"Double click to show the details for an order\",\r\n cellStyle: {\r\n textAlign: \"left\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"shipToName\",\r\n resizable: true,\r\n sortable: true,\r\n width: 180,\r\n headerClass: `${appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Ship To #\",\r\n tooltip: (params) => \"Double click to show the details for an order\",\r\n cellStyle: {\r\n textAlign: \"left\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"shipToNumber\",\r\n resizable: true,\r\n width: 80,\r\n headerClass: `${appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Type\",\r\n tooltip: (params) => \"Double click to show the details for an order\",\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"orderType\",\r\n resizable: true,\r\n width: 120,\r\n headerClass: `${appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Status\",\r\n tooltip: (params) => \"Double click to show the details for an order\",\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"orderStatus\",\r\n resizable: true,\r\n width: 120,\r\n headerClass: `${appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Order Date\",\r\n tooltip: (params) => \"Double click to show the details for an order\",\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"orderDate\",\r\n sortable: true,\r\n initialSortIndex: 0,\r\n sort: \"desc\",\r\n cellRenderer: dateFormatter,\r\n comparator: fn_DateCompare,\r\n resizable: true,\r\n width: 100,\r\n headerClass: `${appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Ship Date\",\r\n tooltip: (params) => \"Double click to show the details for an order\",\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"shipDate\",\r\n cellRenderer: dateFormatter,\r\n comparator: fn_DateCompare,\r\n tooltip: (params) => \"Double click to show the details for an order\",\r\n resizable: true,\r\n sortable: true,\r\n width: 100,\r\n headerClass: `${appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Order $\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n type: \"rightAligned\",\r\n field: \"totalOrderAmount\",\r\n valueFormatter: currencyFormatter,\r\n comparator: compare,\r\n tooltip: (params) => \"Double click to show the details for an order\",\r\n resizable: true,\r\n sortable: true,\r\n width: 120,\r\n headerClass: `${appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Shipping\",\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n paddingTop: \"0px\",\r\n height: \"fit-content\",\r\n marginTop: \"-5px\",\r\n },\r\n field: \"isShippedViaUPSFedex\",\r\n tooltip: (params) => \"Double click to show the details for an order\",\r\n cellRendererFramework: (params) => {\r\n if (\r\n params.value !== \"\" ||\r\n params.value !== undefined ||\r\n params.value !== null\r\n ) {\r\n var titleMessage =\r\n \"Click to view UPS/Fedex Tracking information for order# \" +\r\n params.data.orderNumber +\r\n \"-\" +\r\n (\"0\" + params.data.orderSequenceNumber).slice(-2);\r\n if (params.value === \"UPS\" && user.toUser.CanViewUPSTrackingInfo == \"Y\")\r\n return (\r\n \r\n );\r\n else if (params.value === \"FEDEX\" && user.toUser.CanViewUPSTrackingInfo == \"Y\")\r\n return (\r\n \r\n );\r\n else return \"\";\r\n }\r\n },\r\n resizable: true,\r\n width: 120,\r\n headerClass: `${appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n ],\r\n\r\n rowData: [],\r\n exportData: [],\r\n showOD: false,\r\n selectedPO: \"\",\r\n showUPS: false,\r\n showFEDEX: false,\r\n isfedx: false,\r\n selectedUPS: \"\",\r\n selectedUPSSeq: \"\",\r\n selectedOrder: \"\",\r\n selectedOrderSeq: \"\",\r\n selectedLocation: \"\",\r\n selectedInvoice: \"\",\r\n selectgedUPSSeqString: \"\",\r\n selectedUPSDisplay: \"\",\r\n defaultColDef: { resizable: true, sortable: true, unSortIcon: false },\r\n };\r\n }\r\n\r\n\r\n // fetchData = () => {\r\n // geDisplayOrderHeaderData(\r\n // this.state.shipToNumber,\r\n // this.state.poNumber,\r\n // this.state.orderStatus,\r\n // this.state.orderFilter,\r\n // this.state.referenceNumber,\r\n // this.state.fromDate,\r\n // this.state.toDate,\r\n // this.state.dateComparisonType,\r\n // this.state.orderSearchNumber,\r\n // this.state.orderSearchSequenceNumber\r\n // ).then((data) => {\r\n // this.setState(\r\n // { exportData: getFilteredData(sortOrderDetails(data), this.getExportColumns()) },\r\n // () => {\r\n // setTimeout(() => {\r\n // this.csvLink.current.link.click();\r\n // }, 100);\r\n // }\r\n // );\r\n // });\r\n // };\r\n\r\n exportAsCSV = () => {\r\n if (this.gridApi) {\r\n this.gridApi.exportDataAsCsv({\r\n columnKeys: [\r\n \"poNumber\",\r\n \"orderNumber\",\r\n \"referenceNumber\",\r\n \"shipToName\",\r\n \"orderType\",\r\n \"orderStatus\",\r\n \"orderDate\",\r\n \"shipDate\",\r\n \"totalOrderAmount\"\r\n ],\r\n fileName: \"DisplayOrders.csv\",\r\n allColumns: false, // Export only visible columns\r\n processHeaderCallback: (params) => {\r\n // Customize column headers\r\n const customHeaders = {\r\n poNumber: \"PONumber\",\r\n orderNumber: \"OrderNumber\",\r\n referenceNumber: \"InvoiceNumber\",\r\n shipToName: \"ShipToName\",\r\n orderType: \"Type\",\r\n orderStatus: \"Status\",\r\n orderDate: \"OrderDate\",\r\n shipDate: \"ShipDate\",\r\n totalOrderAmount: \"OrderAmount\"\r\n };\r\n return customHeaders[params.column.colId] || params.column.colDef.headerName;\r\n },\r\n processCellCallback: (params) => {\r\n if(params.column.getColId() === 'orderNumber') return orderFormaterExport(params);\r\n else if (params.column.getColId() === 'orderDate' || params.column.getColId() === 'shipDate') return dateFormatter(params);\r\n else if(params.column.getColId() === 'totalOrderAmount') return currencyFormatter(params);\r\n else return params.value;\r\n },\r\n });\r\n }\r\n };\r\n\r\n onRowDoubleClicked = () => {\r\n var selectedRows = this.gridApi.getSelectedRows();\r\n localStorage.setItem(\"shipToDO\", selectedRows[0].shipToNumber,\r\n );\r\n this.setState({\r\n showOD: true,\r\n selectedUPSDisplay: selectedRows[0].isShippedViaUPSFedex,\r\n selectedLocation: selectedRows[0].location,\r\n selectedPO: selectedRows[0].poNumber,\r\n selectedOrder: selectedRows[0].orderNumber,\r\n selectedOrderSeq: selectedRows[0].orderSequenceNumber,\r\n selectedInvoice: selectedRows[0].referenceNumber,\r\n selectedStatus: selectedRows[0].orderStatus,\r\n\r\n });\r\n\r\n };\r\n handleInvoiceClick(data) {\r\n this.setState({ showLoading: true });\r\n var pdfWindow = window.open('', '_blank');\r\n pdfWindow.document.body.innerHTML = \"

    Downloading Invoice Image...

    \";\r\n const custno = String(localStorage.getItem(\"customerNumber\")).padStart(6, '0');\r\n return fetch(\r\n `${api.proxyUrlForDownload}${api.url}${encodedURL(\r\n `/pdf-downloader/invoice-pdf-download?invoiceId=${data.referenceNumber}&companyNumber=${this.state.companyNumber}&group=${custno}`\r\n )}`,\r\n {\r\n method: \"GET\",\r\n headers: authHeader()\r\n }\r\n )\r\n .then((response) => {\r\n if (response.status === 500) {\r\n throw new Error('Error while downloading the Invoice Image.')\r\n }\r\n else return response.blob()\r\n })\r\n .then((response) => {\r\n const file = new Blob([response], { type: \"application/pdf\" });\r\n const fileURL = URL.createObjectURL(file);\r\n // if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(file);\r\n // return;\r\n // }\r\n pdfWindow.location.href = fileURL;\r\n this.setState({ showLoading: false });\r\n },\r\n (error) => {\r\n pdfWindow.close();\r\n this.setState({ showLoading: false });\r\n this.setState({\r\n show: true,\r\n userMessage: 'Error while downloading the Invoice Image.\\n Please retry after some time.'\r\n });\r\n })\r\n .catch(function (error) {\r\n pdfWindow.close();\r\n console.log(error);\r\n this.setState({ showLoading: false });\r\n });\r\n }\r\n handlePOClick(poNumber, orderNumber, orderSeq, location, invoiceNumber) {\r\n this.setState({\r\n showOD: true,\r\n selectedPO: poNumber,\r\n selectedOrder: orderNumber,\r\n selectedOrderSeq: orderSeq,\r\n selectedLocation: location,\r\n selectedInvoice: invoiceNumber,\r\n });\r\n }\r\n handleUPSlick(order, orderSeq) {\r\n this.setState({\r\n showUPS: true,\r\n isfedx: false,\r\n selectedUPS: order,\r\n selectedUPSSeq: orderSeq,\r\n selectgedUPSSeqString: (\"0\" + orderSeq).slice(-2),\r\n });\r\n }\r\n\r\n handleClose = () => this.setState({ show: false });\r\n\r\n\r\n handleFDXClick(order, location, orderSeq) {\r\n this.setState({\r\n showUPS: true,\r\n isfedx: true,\r\n showFEDEX: true,\r\n selectedUPS: order,\r\n selectedUPSSeq: orderSeq,\r\n selectedLocation: location,\r\n });\r\n }\r\n getExportColumns() {\r\n let exportColumnsList = [\r\n \"PONumber\",\r\n \"OrderNumber\",\r\n \"InvoiceNumber\",\r\n \"ShipToName\",\r\n \"Type\",\r\n \"Status\",\r\n \"OrderDate\",\r\n \"ShipDate\",\r\n \"OrderAmount\",\r\n ];\r\n\r\n return exportColumnsList;\r\n }\r\n dateConverter = (dateValue) => {\r\n if (dateValue !== '') {\r\n var from = dateValue.split(\"-\")\r\n var fromDate = from[1] + \"/\" + from[2] + \"/\" + from[0];\r\n return fromDate;\r\n }\r\n return dateValue;\r\n }\r\n resetFilterValues = () => {\r\n this.setState({\r\n shipToNumber: \"All\",\r\n poNumber: \"\",\r\n orderStatus: \"Open\",\r\n orderFilter: \"A\",\r\n referenceNumber: \"0\",\r\n fromDate: \"\",\r\n toDate: \"\",\r\n dateComparisonType: \"P\",\r\n orderSearchNumber: \"0\",\r\n orderSearchSequenceNumber: \"0\"\r\n }, () => { });\r\n }\r\n doSearch = (\r\n shipToNumber,\r\n poNumber,\r\n orderStatus,\r\n orderFilter,\r\n referenceNumber,\r\n fromDate,\r\n toDate,\r\n dateComparisonType,\r\n orderSearchNumber,\r\n orderSearchSequenceNumber,\r\n\r\n ) => {\r\n fromDate = this.dateConverter(fromDate);//fromDate ? new Date(fromDate).toLocaleDateString(\"en-US\") : \"\";\r\n toDate = this.dateConverter(toDate); //toDate ? new Date(toDate).toLocaleDateString(\"en-US\") : \"\";\r\n this.setState({\r\n shipToNumber: shipToNumber,\r\n poNumber: poNumber,\r\n orderStatus: orderStatus,\r\n orderFilter: orderFilter,\r\n referenceNumber: referenceNumber,\r\n fromDate: fromDate,\r\n toDate: toDate,\r\n dateComparisonType: dateComparisonType,\r\n orderSearchNumber: orderSearchNumber,\r\n orderSearchSequenceNumber: orderSearchSequenceNumber,\r\n searchClicked: true,\r\n rowData: []\r\n });\r\n geDisplayOrderHeaderData(\r\n shipToNumber,\r\n poNumber,\r\n orderStatus,\r\n orderFilter,\r\n referenceNumber,\r\n fromDate,\r\n toDate,\r\n dateComparisonType,\r\n orderSearchNumber,\r\n orderSearchSequenceNumber\r\n ).then((data) => {\r\n if (data.length > 0)\r\n this.setState({ rowData: data, searchClicked: false });\r\n\r\n else {\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"No matching Orders have been found.\",\r\n searchClicked: false\r\n });\r\n }\r\n });\r\n };\r\n onGridReady = (params) => {\r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi;\r\n\r\n params.api.sizeColumnsToFit();\r\n };\r\n\r\n orderSummaryClick = () => {\r\n this.setState({ showOD: false, showUPS: false });\r\n };\r\n\r\n render() {\r\n const renderDisplayOrderGrid = () => {\r\n return (\r\n \r\n {this.state.searchClicked ?\r\n \r\n : ''}\r\n \r\n \r\n );\r\n };\r\n return (\r\n
    \r\n \r\n {this.state.showLoading &&\r\n }\r\n {this.state.show && (\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n {this.state.showOD ? (\r\n
    Display Order
    \r\n ) : this.state.showUPS ? (\r\n
    \r\n Shipments for Order# {this.state.selectedUPS} -{\" \"}\r\n {this.state.selectgedUPSSeqString}{\" \"}\r\n\r\n
    \r\n ) : (\r\n
    \r\n Search for and display customer orders\r\n
    \r\n )}\r\n
    \r\n
    \r\n {this.state.showOD || this.state.showUPS ? (\r\n
    \r\n
    \r\n
    \r\n \r\n Order Search\r\n \r\n {\" > \"}\r\n \r\n
    \r\n
    \r\n {this.state.showUPS ? (\r\n Order Tracking\r\n ) : (\r\n Order Detail\r\n )}\r\n
    \r\n\r\n
    \r\n
    \r\n ) : (\r\n
    \r\n )}\r\n
    \r\n
    \r\n \r\n {!this.state.showOD && !this.state.showUPS ? (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {/* { 1 > 0 ? \r\n \r\n \"Download\r\n \r\n : null} */}\r\n \r\n \r\n \r\n {/*

    \r\n \r\n */}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {renderDisplayOrderGrid()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n ) : this.state.showOD ? (\r\n
    \r\n \r\n
    \r\n ) : (\r\n this.state.showUPS && (\r\n
    \r\n \r\n
    \r\n )\r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default DisplayOrder;\r\nfunction currencyFormatter(params) {\r\n // if (parseFloat(params.value) < 0) return \"-$\" + parseFloat(params.value) * -1;\r\n // else return \"$\" + params.value;\r\n if (params.value !== undefined && params.value !== \"\" && params.value !== null && params.value !== '0' && params.value !== '0.00') {\r\n if (parseFloat(params.value) < 0) return \"-$\" + (parseFloat(params.value).toFixed(2) * -1).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n else return \"$\" + (parseFloat(params.value).toFixed(2)).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n return \"$0.00\";\r\n}\r\n\r\nfunction orderFormater(params) {\r\n return (\r\n params.data.orderNumber +\r\n \"-\" +\r\n (\"0\" + params.data.orderSequenceNumber).slice(-2)\r\n );\r\n}\r\n\r\nfunction orderFormaterExport(params) {\r\n return (\r\n params.value +\r\n \"-\" +\r\n (\"0\" + params.node.data.orderSequenceNumber).slice(-2)\r\n );\r\n}\r\n\r\nfunction dateFormatter(param) {\r\n if (param.value != null && param.value != \"\" && param.value != undefined) {\r\n var d = param.value.split(\" \");\r\n var dateValue = d[0];\r\n return dateValue;\r\n }\r\n else return \"\";\r\n}\r\n\r\n\r\nfunction changeCursor() {\r\n document.body.style.cursor = 'wait';\r\n}\r\nfunction changeCursorToDefault() {\r\n document.body.style.cursor = 'default';\r\n}\r\nfunction fn_DateCompare(DateA, DateB) {\r\n var a = new Date(DateA);\r\n var b = new Date(DateB);\r\n\r\n var msDateA = Date.UTC(a.getFullYear(), a.getMonth() + 1, a.getDate());\r\n var msDateB = Date.UTC(b.getFullYear(), b.getMonth() + 1, b.getDate());\r\n\r\n if (parseFloat(msDateA) < parseFloat(msDateB))\r\n return -1; // less than\r\n else if (parseFloat(msDateA) == parseFloat(msDateB))\r\n return 0; // equal\r\n else if (parseFloat(msDateA) > parseFloat(msDateB))\r\n return 1; // greater than\r\n else\r\n return null; // error\r\n}\r\nfunction compare(number1, number2) {\r\n if (number1 === null && number2 === null) {\r\n return 0;\r\n }\r\n if (isNaN(number1)) { return -1 }\r\n if (isNaN(number2)) { return 1 }\r\n if (number1 === null) {\r\n return -1;\r\n }\r\n if (number2 === null) {\r\n return 1;\r\n }\r\n return number1 - number2;\r\n}","import React, { Component } from \"react\";\r\nimport appConstants from \"../../_services/applicationConstant\";\r\nimport { getShipTo } from \"../../_services/accountsPayable.service\";\r\nimport user from '../../models/User';\r\nimport { decryptData } from '../../Utils';\r\n\r\nclass PurchasingFilter extends Component {\r\n constructor(props) {\r\n\r\n //user.toUser = JSON.parse(localStorage.getItem('UserMenu'))\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"UserMenu\"), salt);\r\n user.toUser = originalData;\r\n super(props);\r\n this.state={\r\n shipTo: [],\r\n selectedShipTo: \"ALL\",\r\n selectedStatusType: \"Purchases\",\r\n submitClicked:false,\r\n enableShipTo: true,\r\n canViewPurchases: false\r\n }\r\n }\r\n \r\n componentDidMount() {\r\n this.setState({selectedStatusType: this.props.selectedQualifier});\r\n if (user.toUser.CanViewInventoryPrices === \"Y\"){\r\nthis.setState({canViewPurchases: true})\r\n }\r\n else{\r\nthis.setState({canViewPurchases: false, selectedStatusType:\"Quantity\"})\r\n\r\n }\r\n getShipTo()\r\n .then((data) => {\r\n if(localStorage.getItem('loginTypeCode') === 'C')\r\n { \r\n var userName= localStorage.getItem('userName');\r\n if(userName.length > 6)\r\n {\r\n var shipToID= userName.substring(6,userName.trim().length);\r\n var shipTOData= data.filter((p) => p.shipToNumber.trim() === shipToID);\r\n this.setState({ shipTo: shipTOData }, () => {\r\n if (shipTOData.length === 1) {\r\n this.setState({ selectedShipTo: shipTOData[0].shipToNumber });\r\n }\r\n }); \r\n this.setState({enableShipTo:false});\r\n }\r\n else{\r\n if(user.toUser.ViewAllShipTos==='All'){\r\n this.setState({ shipTo: data }, () => { \r\n }); \r\n }\r\n else{\r\n this.setState({ shipTo: data }, () => {\r\n if (data.length === 1) {\r\n this.setState({ selectedShipTo: data[0].shipToNumber , enableShipTo:false});\r\n }\r\n }); \r\n }\r\n }\r\n\r\n }\r\n else{\r\n if(localStorage.getItem('customerGroupShipToValue') !== null && localStorage.getItem('customerGroupShipToValue').trim() !== \"\" ){\r\n var shipTOData= data.filter((p) => p.shipToNumber.trim() === localStorage.getItem('customerGroupShipToValue').trim());\r\n this.setState({ shipTo: shipTOData }, () => {\r\n if (shipTOData.length === 1) {\r\n this.setState({ selectedShipTo: shipTOData[0].shipToNumber });\r\n }\r\n }); \r\n this.setState({enableShipTo:false});\r\n }\r\n else{\r\n this.setState({ shipTo: data }, () => {\r\n // if (data.length === 1) {\r\n // this.setState({ selectedShipTo: data[0].shipToNumber });\r\n // }\r\n }); \r\n }\r\n }\r\n if(data.length === 0)\r\n {\r\n this.setState({enableShipTo:false});\r\n } \r\n })\r\n .catch(console.log);\r\n }\r\n \r\n \r\n myChangeHandler = (event) => {\r\n let nam = event.target.name;\r\n let val = event.target.value;\r\n this.setState({ [nam]: val }); \r\n }\r\n resetFilter = () => {\r\n this.setState({\r\n customerPart:'',\r\n item:'',\r\n department:'',\r\n description:''\r\n });\r\n }\r\n \r\n searchClicked=() =>{\r\n var selectedShipToName= this.state.shipTo.filter(p => p.shipToNumber === this.state.selectedShipTo);\r\n this.props.doSearch(this.state.selectedShipTo,\r\n this.state.selectedStatusType ,\r\n selectedShipToName.length > 0 ? selectedShipToName[0].name :\"\" \r\n ); \r\n }\r\n onQualifierChange = (event) => {\r\n let nam = event.target.name;\r\n let val = event.target.value;\r\n this.setState({ [nam]: val });\r\n this.props.qualifierChanged(val);\r\n };\r\n render() {\r\n const shipToEnabled= this.state.shipTo.length > 1 ? true: false;\r\n const noShipTos= this.state.shipTo.length === 0 ? true : false;\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n { this.state.enableShipTo &&\r\n \r\n }\r\n {noShipTos &&\r\n \r\n }\r\n {this.state.shipTo.map((type) => (\r\n \r\n {type.name} {\" - \"} {type.shipToNumber}\r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n
    \r\n {this.state.canViewPurchases && \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n Purchases\r\n \r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n Quantity\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n }\r\n \r\n export default PurchasingFilter;","import React, { Component } from \"react\";\r\nimport { Bar } from \"react-chartjs-2\";\r\n\r\nexport class PurchasingChart extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n selectedQualifier: \"Purchases\",\r\n Data: {},\r\n barChartOptions: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n legend: {\r\n align: \"end\",\r\n },\r\n scales: {\r\n xAxes: [\r\n {\r\n barPercentage: 1,\r\n gridLines: {\r\n display: true,\r\n color: \"rgba(0, 0, 0, 0.1)\",\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n gridLines: {\r\n display: true,\r\n color: \"rgba(0, 0, 0, 0.1)\",\r\n },\r\n },\r\n ],\r\n },\r\n },\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({\r\n Data: {\r\n labels: [\r\n \"January\",\r\n \"February\",\r\n \"March\",\r\n \"April\",\r\n \"May\",\r\n \"June\",\r\n \"July\",\r\n \"August\",\r\n \"September\",\r\n \"October\",\r\n \"November\",\r\n \"December\",\r\n ],\r\n datasets: this.generateDummyData(),\r\n },\r\n selectedQualifier: this.props.selectedQualifier,\r\n });\r\n }\r\n qualifierChanged = (changedValue) => {\r\n this.setState({ selectedQualifier: changedValue }, () => {\r\n this.setState({\r\n Data: {\r\n labels: [\r\n \"January\",\r\n \"February\",\r\n \"March\",\r\n \"April\",\r\n \"May\",\r\n \"June\",\r\n \"July\",\r\n \"August\",\r\n \"September\",\r\n \"October\",\r\n \"November\",\r\n \"December\",\r\n ],\r\n datasets: this.generateDummyData(),\r\n },\r\n });\r\n });\r\n };\r\n generateDummyData() {\r\n let _data = this.props.chartData.filter((x) => x.Period !== \"Total\");\r\n let years = Object.keys(_data[0])\r\n .filter((x) => x.indexOf(\"_\") === -1 && x.indexOf(\"Period\") === -1)\r\n .map(Number);\r\n\r\n //Remoe \"IF\" block when to show all year data in chart\r\n if (years.length > 4) {\r\n let toBeRemovedYear = Math.min(...years);\r\n years = years.sort((a, b) => b - a).slice(0, 4);\r\n }\r\n\r\n let dataSet = [];\r\n\r\n years.forEach((year) => {\r\n let obj = {\r\n label: year,\r\n backgroundColor: this.getColor(year),\r\n data: [],\r\n };\r\n var column = year;\r\n if (this.props.selectedQualifier === \"Purchases\") column = year;\r\n else column = year + \"_UNITS\";\r\n _data.forEach((data) => {\r\n obj.data.push(data[column]);\r\n });\r\n dataSet.push(obj);\r\n });\r\n\r\n return dataSet;\r\n }\r\n getColor(year) {\r\n switch (year) {\r\n case 2020:\r\n return \"#79b91c\";\r\n case 2019:\r\n return \"#cccc99\";\r\n case 2018:\r\n return \"#6699ff\";\r\n case 2017:\r\n return \"#ffff99\";\r\n }\r\n }\r\n render() {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default PurchasingChart;\r\n","import api from \"./apiUrl\";\r\nimport { authHeader,encodedURL } from \"../_helpers/auth-header\";\r\nexport function getPurchasingSummary(shipTo) {\r\n var shipToNum= shipTo ===' ' ? 'empty'+shipTo : shipTo;//shipTo.trim() === '' ? null :shipTo.trim();\r\n return fetch(\r\n `${api.proxyUrl}${api.url}${encodedURL(`/puchasing/get-summary?shipTo=${shipToNum}&companyNumber=${localStorage.getItem(\r\n \"companyNumber\"\r\n )}&customerNumber=${localStorage.getItem(\"customerNumber\")}`)}`,\r\n {\r\n // return fetch(`${api.url}/puchasing/get-summary?shipTo=${'ALL'}&companyNumber=${'63'}&customerNumber=${'70353'}`, {\r\n method: \"GET\",\r\n headers: authHeader(),\r\n }\r\n ).then((response) => response.json());\r\n}\r\nexport function getPurchasingDetails(month, year, shipTo) {\r\n var updatedYear = year - 1900;\r\n return fetch(\r\n `${api.proxyUrl}${api.url}${encodedURL(`/puchasing/details?companyNumber=${localStorage.getItem(\r\n \"companyNumber\"\r\n )}&customerNumber=${localStorage.getItem(\"customerNumber\")}&year=${updatedYear}&shipTo=${shipTo.trim()}&month=${month}`)}`,\r\n {\r\n method: \"GET\",\r\n headers: authHeader(),\r\n }\r\n ).then((response) => response.json());\r\n}\r\n\r\nexport function getPurchasingTotalDetails(month, year, shipTo) {\r\n var updatedYear = year - 1900;\r\n return fetch(\r\n `${api.proxyUrl}${api.url}${encodedURL(`/puchasing/download-total-details?companyNumber=${localStorage.getItem(\r\n \"companyNumber\"\r\n )}&customerNumber=${localStorage.getItem(\"customerNumber\")}&year=${updatedYear}&shipTo=${shipTo.trim()}&month=${month}`)}`,\r\n {\r\n method: \"GET\",\r\n headers: authHeader(),\r\n }\r\n ).then((response) => response.json());\r\n}\r\nexport function getFilteredData(data) {\r\n let filteredData = [];\r\nif(data!=null)\r\n{\r\n data.forEach((item) => {\r\n filteredData.push({\r\n ItemNumber: item.ITEMNUMBER,\r\n CustomerPartNumber: item.Customer_Part_NUmber,\r\n ItemDescription: item.Desc,\r\n Quantity: item.Quntity,\r\n Purchases: currencyFormatter(item.Purchases),\r\n });\r\n });\r\n}\r\n return filteredData;\r\n}\r\nfunction getDescription(desc)\r\n{\r\n return desc.replace(/\"/g,'\\\"\"') ;\r\n}\r\nexport function getTotalFilteredData(data) {\r\n let filteredData = [];\r\nif(data!=null)\r\n{\r\n data.forEach((item) => {\r\n filteredData.push({\r\n ITEMNUMBER: item.ITEMNUMBER,\r\n CUSTOMERPARTNUMBER: item.CUSTOMERPARTNUMBER,\r\n DESCRIPTION: getDescription(item.DESCRIPTION),\r\n JANUARYUNITSALES: item.JANUARYUNITSALES,\r\n JANUARYSALES: currencyFormatter(item.JANUARYSALES),\r\n FEBRUARYUNITSALES: item.FEBRUARYUNITSALES,\r\n FEBRUARYSALES: currencyFormatter(item.FEBRUARYSALES),\r\n MARCHUNITSALES: item.MARCHUNITSALES,\r\n MARCHSALES: currencyFormatter(item.MARCHSALES),\r\n APRILUNITSALES: item.APRILUNITSALES,\r\n APRILSALES: currencyFormatter(item.APRILSALES),\r\n MAYUNITSALES: item.MAYUNITSALES,\r\n MAYSALES: currencyFormatter(item.MAYSALES),\r\n JUNEUNITSALES: item.JUNEUNITSALES,\r\n JUNESALES: currencyFormatter(item.JUNESALES),\r\n JULYUNITSALES: item.JULYUNITSALES,\r\n JULYSALES: currencyFormatter(item.JULYSALES),\r\n AUGUSTUNITSALES: item.AUGUSTUNITSALES,\r\n AUGUSTSALES: currencyFormatter(item.AUGUSTSALES),\r\n SEPTEMBERUNITSALES: item.SEPTEMBERUNITSALES,\r\n SEPTEMBERSALES: currencyFormatter(item.SEPTEMBERSALES),\r\n OCTOBERUNITSALES: item.OCTOBERUNITSALES,\r\n OCTOBERSALES: currencyFormatter(item.OCTOBERSALES),\r\n NOVEMBERUNITSALES: item.NOVEMBERUNITSALES,\r\n NOVEMBERSALES: currencyFormatter(item.NOVEMBERSALES),\r\n DECEMBERUNITSALES: item.DECEMBERUNITSALES,\r\n DECEMBERSALES: currencyFormatter(item.DECEMBERSALES),\r\n TOTALUNITSALES: item.TOTALUNITSALES,\r\n TOTALSALES: currencyFormatter(item.TOTALSALES),\r\n });\r\n });\r\n \r\n\r\n filteredData.push({\r\n ITEMNUMBER: \"Total:\",\r\n CUSTOMERPARTNUMBER: \"\",\r\n DESCRIPTION:\"\",\r\n JANUARYUNITSALES: data.reduce((a, {JANUARYUNITSALES}) => a + JANUARYUNITSALES, 0),\r\n JANUARYSALES: currencyFormatter( data.reduce((a, {JANUARYSALES}) => a + JANUARYSALES, 0)),\r\n FEBRUARYUNITSALES: data.reduce((a, {FEBRUARYUNITSALES}) => a + FEBRUARYUNITSALES, 0),// data.sum('FEBRUARYUNITSALES'),\r\n FEBRUARYSALES: currencyFormatter(data.reduce((a, {FEBRUARYSALES}) => a + FEBRUARYSALES, 0)),\r\n MARCHUNITSALES: data.reduce((a, {MARCHUNITSALES}) => a + MARCHUNITSALES, 0),\r\n MARCHSALES: currencyFormatter(data.reduce((a, {MARCHSALES}) => a + MARCHSALES, 0)),\r\n APRILUNITSALES: data.reduce((a, {APRILUNITSALES}) => a + APRILUNITSALES, 0),\r\n APRILSALES: currencyFormatter(data.reduce((a, {APRILSALES}) => a + APRILSALES, 0)),\r\n MAYUNITSALES: data.reduce((a, {MAYUNITSALES}) => a + MAYUNITSALES, 0),\r\n MAYSALES: currencyFormatter(data.reduce((a, {MAYSALES}) => a + MAYSALES, 0)),\r\n JUNEUNITSALES: data.reduce((a, {JUNEUNITSALES}) => a + JUNEUNITSALES, 0),\r\n JUNESALES: currencyFormatter(data.reduce((a, {JUNESALES}) => a + JUNESALES, 0)),\r\n JULYUNITSALES: data.reduce((a, {JULYUNITSALES}) => a + JULYUNITSALES, 0),\r\n JULYSALES: currencyFormatter(data.reduce((a, {JULYSALES}) => a + JULYSALES, 0)),\r\n AUGUSTUNITSALES: data.reduce((a, {AUGUSTUNITSALES}) => a + AUGUSTUNITSALES, 0),\r\n AUGUSTSALES: currencyFormatter(data.reduce((a, {AUGUSTSALES}) => a + AUGUSTSALES, 0)),\r\n SEPTEMBERUNITSALES: data.reduce((a, {SEPTEMBERUNITSALES}) => a + SEPTEMBERUNITSALES, 0),\r\n SEPTEMBERSALES: currencyFormatter(data.reduce((a, {SEPTEMBERSALES}) => a + SEPTEMBERSALES, 0)),\r\n OCTOBERUNITSALES: data.reduce((a, {OCTOBERUNITSALES}) => a + OCTOBERUNITSALES, 0),\r\n OCTOBERSALES: currencyFormatter(data.reduce((a, {OCTOBERSALES}) => a + OCTOBERSALES, 0)),\r\n NOVEMBERUNITSALES: data.reduce((a, {NOVEMBERUNITSALES}) => a + NOVEMBERUNITSALES, 0),\r\n NOVEMBERSALES: currencyFormatter(data.reduce((a, {NOVEMBERSALES}) => a + NOVEMBERSALES, 0)),\r\n DECEMBERUNITSALES: data.reduce((a, {DECEMBERUNITSALES}) => a + DECEMBERUNITSALES, 0),\r\n DECEMBERSALES: currencyFormatter(data.reduce((a, {DECEMBERSALES}) => a + DECEMBERSALES, 0)),\r\n TOTALUNITSALES: data.reduce((a, {TOTALUNITSALES}) => a + parseInt(TOTALUNITSALES), 0),\r\n TOTALSALES: currencyFormatter(data.reduce((a, {TOTALSALES}) => a + parseFloat(TOTALSALES), 0)),\r\n });\r\n\r\n}\r\n return filteredData;\r\n}\r\n\r\nfunction unitsCheck(value)\r\n{\r\nif(value != null && value != \"\" && value != undefined)\r\nreturn value;\r\nelse\r\nreturn '0';\r\n}\r\n\r\nexport function getFilteredSummaryData(data,qualifier){\r\n let filteredData = [];\r\n var currentDate= new Date;\r\n var currentYear=currentDate.getFullYear();\r\n if(data!=null)\r\n {\r\n data.forEach((item) => {\r\n filteredData.push({\r\n Period:item.Period,\r\n [currentYear]: currencyFormatter( item[currentYear] ),\r\n [currentYear-1]: currencyFormatter( item[currentYear-1]),\r\n [currentYear-2]: currencyFormatter(item[currentYear-2]),\r\n [currentYear-3]: currencyFormatter( item[currentYear-3]) ,\r\n [currentYear + \"_UNITS\"] :unitsCheck( item[currentYear + \"_UNITS\"]),\r\n [currentYear-1 + \"_UNITS\"]: unitsCheck(item [currentYear-1 + \"_UNITS\"]),\r\n [currentYear-2 + \"_UNITS\"]: unitsCheck( item [currentYear-2 + \"_UNITS\"]),\r\n [currentYear-3 + \"_UNITS\"]: unitsCheck(item [currentYear-3 + \"_UNITS\"])\r\n });\r\n }); \r\n}\r\n\r\n return filteredData;\r\n}\r\n\r\nfunction currencyFormatter(value) {\r\n if (value !== undefined && value !== \"\") {\r\n if (parseFloat(value) < 0) return \"-$\" + (parseFloat(value).toFixed(2) * -1).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n else return \"$\" + (parseFloat(value).toFixed(2)).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");;\r\n }\r\n return \"$0.00\";\r\n}","import React, { Component } from \"react\";\r\nimport appConstants from \"../../_services/applicationConstant\";\r\nimport { AgGridReact } from \"ag-grid-react\";\r\nimport \"ag-grid-community/dist/styles/ag-grid.css\";\r\nimport \"ag-grid-community/dist/styles/ag-theme-alpine.css\";\r\nimport {\r\n getPurchasingDetails,\r\n getFilteredData,\r\n getPurchasingTotalDetails,\r\n getTotalFilteredData\r\n} from \"../../_services/purchasing.service\";\r\nimport downloadbutton from \"../../assets/images/downloadbutton.gif\";\r\nimport { CSVLink } from \"react-csv\";\r\nimport user from '../../models/User';\r\nimport { decryptData } from '../../Utils';\r\n\r\n\r\nclass PurchasingDetail extends Component {\r\n constructor(props) {\r\n //user.toUser = JSON.parse(localStorage.getItem('UserMenu'))\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"UserMenu\"), salt);\r\n user.toUser = originalData;\r\n\r\n super(props);\r\n this.bottomData=[{ITEMNUMBER:'',\r\n Customer_Part_NUmber:'',\r\n Desc:'TOTAL',\r\n Quntity:this.props.currencyUnit,\r\n Purchases:this.props.currency\r\n }];\r\n this.state = {\r\n defaultColDef: { resizable: true, sortable: true },\r\n bottomOptions,\r\n totalExportHeaders :[\r\n { label: 'ITEM #', key: 'ITEMNUMBER' },\r\n { label: 'CUSTOMER PART #', key: 'CUSTOMERPARTNUMBER' },\r\n { label: 'DESCRIPTION', key: 'DESCRIPTION' },\r\n { label: 'JANUARY UNITS', key: 'JANUARYUNITSALES' },\r\n { label: 'JANUARY SALES', key: 'JANUARYSALES' },\r\n { label: 'FEBRUARY UNITS', key: 'FEBRUARYUNITSALES' },\r\n { label: 'FEBRUARY SALES', key: 'FEBRUARYSALES' },\r\n { label: 'MARCH UNITS', key: 'MARCHUNITSALES' },\r\n { label: 'MARCH SALES', key: 'MARCHSALES' },\r\n { label: 'APRIL UNITS', key: 'APRILUNITSALES' },\r\n { label: 'APRIL SALES', key: 'APRILSALES' }, \r\n { label: 'MAY UNITS', key: 'MAYUNITSALES' },\r\n { label: 'MAY SALES', key: 'MAYSALES' }, \r\n { label: 'JUNE UNITS', key: 'JUNEUNITSALES' },\r\n { label: 'JUNE SALES', key: 'JUNESALES' },\r\n { label: 'JULY UNITS', key: 'JULYUNITSALES' },\r\n { label: 'JULY SALES', key: 'JULYSALES' }, \r\n { label: 'AUGUST UNITS', key: 'AUGUSTUNITSALES' },\r\n { label: 'AUGUST SALES', key: 'AUGUSTSALES' },\r\n { label: 'SEPTEMBER UNITS', key: 'SEPTEMBERUNITSALES' },\r\n { label: 'SEPTEMBER SALES', key: 'SEPTEMBERSALES' }, \r\n { label: 'OCTOBER UNITS', key: 'OCTOBERUNITSALES' },\r\n { label: 'OCTOBER SALES', key: 'OCTOBERSALES' }, \r\n { label: 'OCTOBER UNITS', key: 'NOVEMBERUNITSALES' },\r\n { label: 'OCTOBER SALES', key: 'NOVEMBERSALES' }, \r\n { label: 'OCTOBER UNITS', key: 'DECEMBERUNITSALES' },\r\n { label: 'OCTOBER SALES', key: 'DECEMBERSALES' }, \r\n { label: 'TOTAL UNITS', key: 'TOTALUNITSALES' },\r\n { label: 'TOTAL SALES', key: 'TOTALSALES' }, \r\n ],\r\n showCSV: true,\r\n columnDefs: [\r\n {\r\n headerName: \"Item Number\",\r\n field: \"ITEMNUMBER\",\r\n cellStyle: {\r\n textAlign: \"center\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n resizable: true,\r\n width: 120,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Customer Part Number\",\r\n cellStyle: {\r\n textAlign: \"left \",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"Customer_Part_NUmber\",\r\n resizable: true,\r\n width: 150,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Item Description\",\r\n cellStyle: {\r\n textAlign: \"left\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"Desc\",\r\n resizable: true,\r\n width: 300,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n\r\n {\r\n headerName: \"Quantity\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n type: \"rightAligned\",\r\n field: \"Quntity\",\r\n resizable: true,\r\n width: 120,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n\r\n {\r\n headerName: \"Purchases\",\r\n hide: user.toUser.CanViewInventoryPrices === \"Y\" ? false: true,\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"Purchases\",\r\n type: \"rightAligned\",\r\n valueFormatter: currencyFormatter,\r\n resizable: true,\r\n width: 120,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n ],\r\n bottomData: this.bottomData,\r\n rowData: [],\r\n exportData: [],\r\n totalExportData:[]\r\n };\r\n this.csvLink = React.createRef();\r\n }\r\n \r\n onGridReady = (params) => {\r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi;\r\n params.api.sizeColumnsToFit();\r\n };\r\n\r\n componentDidMount() {\r\n if (user.toUser.CanViewInventoryPrices === \"N\"){\r\n this.setState({ totalExportHeaders :[\r\n { label: 'ITEM #', key: 'ITEMNUMBER' },\r\n { label: 'CUSTOMER PART #', key: 'CUSTOMERPARTNUMBER' },\r\n { label: 'DESCRIPTION', key: 'DESCRIPTION' },\r\n { label: 'JANUARY UNITS', key: 'JANUARYUNITSALES' },\r\n { label: 'FEBRUARY UNITS', key: 'FEBRUARYUNITSALES' },\r\n { label: 'MARCH UNITS', key: 'MARCHUNITSALES' },\r\n { label: 'APRIL UNITS', key: 'APRILUNITSALES' },\r\n { label: 'MAY UNITS', key: 'MAYUNITSALES' },\r\n { label: 'JUNE UNITS', key: 'JUNEUNITSALES' },\r\n { label: 'JULY UNITS', key: 'JULYUNITSALES' },\r\n { label: 'AUGUST UNITS', key: 'AUGUSTUNITSALES' },\r\n { label: 'SEPTEMBER UNITS', key: 'SEPTEMBERUNITSALES' },\r\n { label: 'OCTOBER UNITS', key: 'OCTOBERUNITSALES' },\r\n { label: 'OCTOBER UNITS', key: 'NOVEMBERUNITSALES' },\r\n { label: 'OCTOBER UNITS', key: 'DECEMBERUNITSALES' },\r\n { label: 'TOTAL UNITS', key: 'TOTALUNITSALES' },\r\n ],});\r\n }\r\n if(this.props.currencyUnit === '0'){\r\n this.setState({ rowData: [],showCSV: false });\r\n this.setState({\r\n exportData: []\r\n });\r\n }\r\n else\r\n{ getPurchasingDetails(\r\n this.props.month,\r\n this.props.year,\r\n this.props.shipTo \r\n ).then((data) => {\r\n if(data.length > 0){ \r\n this.setState({ rowData: data });\r\n this.setState({\r\n exportData: getFilteredData(data),\r\n });\r\n }\r\n });\r\n}\r\n }\r\n fetchTotalDetailsData = () =>{\r\n getPurchasingTotalDetails(\r\n \"Total\",\r\n this.props.year,\r\n this.props.shipTo \r\n ).then((data) => {\r\n if(data.length > 0){ \r\n this.setState({\r\n totalExportData: getTotalFilteredData(data), \r\n },()=>{\r\n setTimeout(() => {\r\n this.csvLink.current.link.click();\r\n }, 50);\r\n } \r\n );\r\n }\r\n }); \r\n }\r\n render() {\r\n const renderPurchaseDetailGrid = () => {\r\n return (\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n );\r\n };\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {this.state.showCSV && \r\n
    \r\n \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n {renderPurchaseDetailGrid()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default PurchasingDetail;\r\nfunction currencyFormatter(params) {\r\n if(params.value !== undefined && params.value !== \"\"){\r\n if (parseFloat(params.value) < 0) return \"-$\" + (parseFloat(params.value).toFixed(2) * -1).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n else return \"$\" + (parseFloat(params.value).toFixed(2)).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n return \"\";\r\n}\r\nconst bottomOptions = {\r\n alignedGrids: [],\r\n defaultColDef: {\r\n resizable: true,\r\n filter: true,\r\n flex: 1,\r\n minWidth: 100\r\n }\r\n};\r\n","import React, { Component } from \"react\";\r\n\r\nimport { AgGridReact } from \"ag-grid-react\";\r\nimport \"ag-grid-community/dist/styles/ag-grid.css\";\r\nimport \"ag-grid-community/dist/styles/ag-theme-alpine.css\";\r\nimport downloadbutton from \"../../assets/images/downloadbutton.gif\";\r\nimport PurchasingFilter from \"./PurchasingFilter\";\r\nimport PurchasingChart from \"./PurchasingChart\";\r\nimport chart from \"../../assets/images/icon_chart.png\";\r\nimport grid from \"../../assets/images/icon_grid.png\";\r\nimport { getFilteredSummaryData } from \"../../_services/purchasing.service\";\r\nimport { CSVLink } from \"react-csv\";\r\nimport { getCustomerPriceListData } from \"../../_services/customPriceService\";\r\nimport appConstants from \"../../_services/applicationConstant\";\r\nimport { getPurchasingSummary } from \"../../_services/purchasing.service\";\r\nimport PurchasingDetail from \"./PurchasingDetail\";\r\nimport ESSModal from \"../../components/ESSModal.jsx\";\r\nimport ESSProgressBar from \"../../components/ESSProgressBar\";\r\nimport user from '../../models/User';\r\nimport { decryptData } from '../../Utils';\r\n\r\nclass Purchasing extends Component {\r\n constructor(props) {\r\n super(props);\r\n // user.toUser = JSON.parse(localStorage.getItem('UserMenu'))\r\n\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"UserMenu\"), salt);\r\n user.toUser = originalData;\r\n\r\n this.handleCellClick = this.handleCellClick.bind(this);\r\n this.gridViewClick = this.gridViewClick.bind(this);\r\n this.ChartRef = React.createRef();\r\n var currentYear=new Date().getFullYear();\r\n this.state = {\r\n customerNumber: localStorage.getItem(\"companyNumber\") + localStorage.getItem(\"customerNumber\"),\r\n headers :[\r\n { label: 'Period', key: 'Period' },\r\n { label: (new Date().getFullYear())+' DOLLARS', key: \"\"+currentYear+\"\" },\r\n { label: (new Date().getFullYear())+' UNITS', key: \"\"+currentYear+\"_UNITS\" },\r\n { label: (new Date().getFullYear()-1)+' DOLLARS', key: \"\"+currentYear -1 +\"\" },\r\n { label:(new Date().getFullYear()-1)+ ' UNITS', key: \"\"+currentYear-1+\"_UNITS\" },\r\n { label: (new Date().getFullYear()-2)+' DOLLARS', key: \"\"+currentYear-2 +\"\" },\r\n { label: (new Date().getFullYear()-2)+' UNITS', key: \"\"+currentYear-2+\"_UNITS\" },\r\n { label: (new Date().getFullYear()-3)+' DOLLARS', key: \"\"+currentYear-3+\"\" },\r\n { label: (new Date().getFullYear()-3)+' UNITS', key: \"\"+currentYear-3+\"_UNITS\" } ],\r\n selectedQualifier: \"Purchases\",\r\n searchClicked: false,\r\n gridView: true,\r\n \r\n columnDefs: [\r\n {\r\n headerName: \"Period\",\r\n field: \"Period\",\r\n cellStyle: {\r\n textAlign: \"left\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n resizable: true,\r\n width: 280,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: (new Date().getFullYear()),\r\n field: new Date().getFullYear().toString(),\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n type: \"rightAligned\",\r\n hide: user.toUser.CanViewInventoryPrices === \"Y\" ? false: true,\r\n cellRendererFramework: (props) => {\r\n var amount = currencyFormatter(props.value);\r\n return (\r\n \r\n {\" \"}\r\n {amount}{\" \"}\r\n \r\n );\r\n },\r\n resizable: true,\r\n width: 250,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: (new Date().getFullYear()-1),\r\n field:(new Date().getFullYear()-1).toString(),\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n type: \"rightAligned\",\r\n hide: user.toUser.CanViewInventoryPrices === \"Y\" ? false: true,\r\n cellRendererFramework: (props) => {\r\n var amount = currencyFormatter(props.value);\r\n return (\r\n \r\n {\" \"}\r\n {amount}{\" \"}\r\n \r\n );\r\n },\r\n resizable: true,\r\n width: 250,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: (new Date().getFullYear()-2),\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n hide: user.toUser.CanViewInventoryPrices === \"Y\" ? false: true,\r\n type: \"rightAligned\",\r\n \r\n field:(new Date().getFullYear() -2).toString(),\r\n valueFormatter:currencyFormatterWithParam,\r\n resizable: true,\r\n width: 260,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: (new Date().getFullYear()-3),\r\n field: (new Date().getFullYear()-3).toString(),\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n hide: user.toUser.CanViewInventoryPrices === \"Y\" ? false: true,\r\n type: \"rightAligned\",\r\n valueFormatter:currencyFormatterWithParam,\r\n resizable: true,\r\n width: 260,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n \r\n {\r\n headerName: (new Date().getFullYear()),\r\n field: (new Date().getFullYear()).toString()+ \"_UNITS\",\r\n hide: user.toUser.CanViewInventoryPrices === \"N\" ? false: true,\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n type: \"rightAligned\",\r\n cellRendererFramework: (props) => {\r\n return (\r\n \r\n {(props.value === undefined || props.value === null || props.value === \"\" ) ? '0': parseFloat(props.value).toLocaleString()}\r\n \r\n );\r\n },\r\n resizable: true,\r\n width: 250,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: (new Date().getFullYear()-1),\r\n hide: user.toUser.CanViewInventoryPrices === \"N\" ? false: true, \r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n type: \"rightAligned\",\r\n cellRendererFramework: (props) => {\r\n return (\r\n \r\n {(props.value === undefined || props.value === null || props.value === \"\" ) ? '0': parseFloat(props.value).toLocaleString()}\r\n \r\n );\r\n },\r\n field: (new Date().getFullYear()-1).toString()+ \"_UNITS\",\r\n resizable: true,\r\n width: 260,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: (new Date().getFullYear()-2),\r\n field: (new Date().getFullYear()-2).toString()+ \"_UNITS\",\r\n hide: user.toUser.CanViewInventoryPrices === \"N\" ? false: true,\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n type: \"rightAligned\",\r\n valueFormatter:unitsFormatterWithParam,\r\n resizable: true,\r\n width: 260,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: (new Date().getFullYear())-3,\r\n field: (new Date().getFullYear()-3).toString()+ \"_UNITS\",\r\n hide: user.toUser.CanViewInventoryPrices === \"N\" ? false: true, \r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n type: \"rightAligned\",\r\n valueFormatter:unitsFormatterWithParam,\r\n resizable: true,\r\n width: 300,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n ],\r\n\r\n rowData: [],\r\n exportList: [],\r\n shipToNumber: \"\",\r\n poStatus: \"\",\r\n showPurchaseDetails: false,\r\n selectedMonth: \"\",\r\n selectedYear: \"\",\r\n shipToName: \"\",\r\n show: false,\r\n userMessage: \"\",\r\n selectedCurrency:\"\",\r\n selectedCurrencyUnit:\"\",\r\n\r\n };\r\n }\r\n handleCellClick = (month, year,propsInput) => {\r\n var currency= propsInput.node.data[year] ;\r\n var year_unit= year+\"_UNITS\";\r\n var currencyUnit=propsInput.node.data[year_unit];\r\n \r\n this.setState({\r\n showPurchaseDetails: true,\r\n selectedMonth: month,\r\n selectedYear: year,\r\n selectedCurrency:currency,\r\n selectedCurrencyUnit:currencyUnit,\r\n });\r\n };\r\n componentDidMount() {\r\n var currentYear= new Date().getFullYear();\r\n if (user.toUser.CanViewInventoryPrices === \"Y\"){\r\n this.setState({canViewPurchases: true, headers:[\r\n { label: 'Period', key: 'Period' },\r\n { label: (new Date().getFullYear())+' DOLLARS', key: \"\"+currentYear+\"\" },\r\n { label: (new Date().getFullYear())+' UNITS', key: \"\"+currentYear+\"_UNITS\" },\r\n { label: (new Date().getFullYear()-1)+' DOLLARS', key: \"\"+currentYear -1 +\"\" },\r\n { label:(new Date().getFullYear()-1)+ ' UNITS', key: \"\"+currentYear-1+\"_UNITS\" },\r\n { label: (new Date().getFullYear()-2)+' DOLLARS', key: \"\"+currentYear-2 +\"\" },\r\n { label: (new Date().getFullYear()-2)+' UNITS', key: \"\"+currentYear-2+\"_UNITS\" },\r\n { label: (new Date().getFullYear()-3)+' DOLLARS', key: \"\"+currentYear-3+\"\" },\r\n { label: (new Date().getFullYear()-3)+' UNITS', key: \"\"+currentYear-3+\"_UNITS\" } \r\n ]})\r\n }\r\n else{\r\n this.setState({canViewPurchases: false, selectedQualifier:\"Quantity\", headers:[\r\n { label: 'Period', key: 'Period' },\r\n { label: (new Date().getFullYear())+' UNITS', key: \"\"+currentYear+\"_UNITS\" },\r\n { label:(new Date().getFullYear()-1)+ ' UNITS', key: \"\"+currentYear-1+\"_UNITS\" },\r\n { label: (new Date().getFullYear()-2)+' UNITS', key: \"\"+currentYear-2+\"_UNITS\" },\r\n { label: (new Date().getFullYear()-3)+' UNITS', key: \"\"+currentYear-3+\"_UNITS\" } \r\n ]}) \r\n }\r\n }\r\n setGridColumns(qualifierName) { \r\n var currentYear= new Date().getFullYear();\r\n\r\n if (qualifierName === \"Quantity\" || user.toUser.CanViewInventoryPrices === \"N\") {\r\n this.gridColumnApi.setColumnVisible(currentYear, false);\r\n this.gridColumnApi.setColumnVisible(currentYear-1, false);\r\n this.gridColumnApi.setColumnVisible(currentYear-2, false);\r\n this.gridColumnApi.setColumnVisible(currentYear-3, false);\r\n this.gridColumnApi.setColumnVisible(currentYear+\"_UNITS\", true);\r\n this.gridColumnApi.setColumnVisible(currentYear-1+\"_UNITS\", true);\r\n this.gridColumnApi.setColumnVisible(currentYear-2+\"_UNITS\", true);\r\n this.gridColumnApi.setColumnVisible(currentYear-3+\"_UNITS\", true);\r\n } else {\r\n this.gridColumnApi.setColumnVisible(currentYear, true);\r\n this.gridColumnApi.setColumnVisible(currentYear-1, true);\r\n this.gridColumnApi.setColumnVisible(currentYear-2, true);\r\n this.gridColumnApi.setColumnVisible(currentYear-3, true);\r\n this.gridColumnApi.setColumnVisible(currentYear+\"_UNITS\", false);\r\n this.gridColumnApi.setColumnVisible(currentYear-1+\"_UNITS\", false);\r\n this.gridColumnApi.setColumnVisible(currentYear-2+\"_UNITS\", false);\r\n this.gridColumnApi.setColumnVisible(currentYear-3+\"_UNITS\", false);\r\n } \r\n }\r\n\r\n qualifierChanged = (changedValue) => {\r\n this.setState({ selectedQualifier: changedValue });\r\n if (this.state.rowData.length > 0) {\r\n this.setGridColumns(changedValue);\r\n if (!this.state.gridView)\r\n this.ChartRef.current.qualifierChanged(changedValue);\r\n } else {\r\n }\r\n };\r\n purchasingSummaryClick = () => {\r\n this.setState({\r\n showPurchaseDetails: false,\r\n }, ()=>{\r\n setTimeout(() => {\r\n this.qualifierChanged(this.state.selectedQualifier); \r\n }, 100);\r\n }); \r\n\r\n };\r\n\r\n\r\n gridViewClick = (flag) => {\r\n this.setState({ gridView: this.state.rowData.length ? flag : true },()=>{\r\n setTimeout(() => {\r\n this.qualifierChanged(this.state.selectedQualifier); \r\n \r\n }, 100);\r\n });\r\n \r\n };\r\n doSearch = (shipTo, POStatus, selectedShipToName) => {\r\n this.setState(\r\n {\r\n shipToNumber: shipTo,\r\n poStatus: POStatus,\r\n selectedQualifier: POStatus,\r\n shipToName: shipTo === \"ALL\" ? \"ALL\" : selectedShipToName,\r\n searchClicked:true,\r\n rowData:[]\r\n },\r\n () => {\r\n getPurchasingSummary(this.state.shipToNumber).then((data) => {\r\n if(data.length > 0)\r\n {\r\n this.setState({searchClicked:false });\r\n }\r\n if(data === null || data.length === 0 || data.Message === \"An error has occurred.\"){\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"No matching sales have been found!\",\r\n searchClicked:false\r\n });\r\n this.setState({ rowData: [], exportList:[]});\r\n return null;\r\n }\r\n else {\r\n this.setState({ rowData: data, exportList:getFilteredSummaryData(data,POStatus) });\r\n this.setGridColumns(POStatus);\r\n }\r\n\r\n\r\n });\r\n }\r\n );\r\n };\r\n onGridReady = (params) => {\r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi;\r\n params.api.sizeColumnsToFit();\r\n };\r\n render() {\r\n const renderInventoryGrid = () => {\r\n return (\r\n \r\n {this.state.searchClicked?\r\n \r\n :''}\r\n \r\n \r\n );\r\n };\r\n\r\n const renderInventoryChart = () => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {this.state.showPurchaseDetails ? (\r\n
    Purchasing Detail
    \r\n ) : (\r\n
    Purchasing Summary
    \r\n )}\r\n
    \r\n
    \r\n {this.state.showPurchaseDetails && (\r\n
    \r\n \r\n Purchasing Summary >\r\n \r\n \r\n {\" \"}\r\n Purchasing Detail for {this.state.selectedMonth !== \"Total\" ? this.state.selectedMonth +\", \" : \"\" }\r\n \r\n {this.state.selectedYear}{\" \"}\r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n \r\n {this.state.showPurchaseDetails ? (\r\n \r\n ) : (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {this.state.exportList.length > 0 ? (\r\n \r\n \r\n \r\n ) : undefined}\r\n
    \r\n
    \r\n \r\n
    \r\n {!this.state.gridView && this.state.rowData.length\r\n ? renderInventoryChart()\r\n : renderInventoryGrid()}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {\r\n this.gridViewClick(true);\r\n }}\r\n />\r\n    \r\n {\r\n this.gridViewClick(false);\r\n }}\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Purchasing;\r\n\r\nfunction currencyFormatterWithParam(params) {\r\n if (params.value !== undefined && params.value !== \"\" && params.value !== null && params.value !== '0' && params.value !== '0.00') {\r\n if (parseFloat(params.value) < 0) return \"-$\" + (parseFloat(params.value).toFixed(2) * -1).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n else return \"$\" + (parseFloat(params.value).toFixed(2)).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n else return \"$0.00\";\r\n}\r\n\r\nfunction unitsFormatterWithParam(params){\r\n if (params.value !== undefined && params.value !== \"\" && params.value !== null) {\r\n return parseFloat(params.value).toLocaleString();\r\n }\r\n else return \"0\";\r\n}\r\n\r\nfunction unitsFormatter(value){\r\n if (value !== undefined && value !== \"\" && value !== null) {\r\n return parseFloat(value).toLocaleString();\r\n }\r\n else return \"0\";\r\n}\r\n\r\nfunction currencyFormatter(value) {\r\n if (value !== undefined && value !== \"\" && value !== null && value!== '0' && value!== '0.00') {\r\n if (parseFloat(value) < 0) return \"-$\" + (parseFloat(value).toFixed(2) * -1).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n else return \"$\" + (parseFloat(value).toFixed(2)).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n return \"$0.00\";\r\n}\r\n","import { authHeader,encodedURL } from \"../_helpers/auth-header\";\r\nimport user from \"../models/User\";\r\nimport api from \"../_services/apiUrl\";\r\nimport { decryptData } from '../Utils';\r\n\r\nexport function getItenEntryList(){\r\n var reportColumns= [\r\n {id: 1, value: \"Distributor Item#\"},\r\n {id: 2, value: \"Customer Part#\"}, \r\n ] \r\n \r\n return reportColumns; \r\n}\r\n\r\nfunction getDescription(desc)\r\n{\r\n return desc.replace(/\"/g,'\\\"\"') ;\r\n}\r\n\r\nexport function getFilteredData(data, visiblePropList){\r\n let filteredData=[];\r\n \r\n data.map((item) => { \r\n let filterObject = {};\r\n \r\n visiblePropList.forEach(prop => filterObject[prop]=''); \r\n if(filterObject.hasOwnProperty('ComapanyCode')) filterObject.ComapanyCode = item.codeCompany;\r\n if(filterObject.hasOwnProperty('CompanyDescription')) filterObject.CompanyDescription = getDescription(item.descCompany);\r\n if(filterObject.hasOwnProperty('CustomerPartNumber')) filterObject.CustomerPartNumber = item.codeCustPart;\r\n if(filterObject.hasOwnProperty('CustomerCode')) filterObject.CustomerCode = item.codeCustomer;\r\n if(filterObject.hasOwnProperty('DepartmentCode')) filterObject.DepartmentCode = item.codeDept;\r\n if(filterObject.hasOwnProperty('CustomerDescription')) filterObject.CustomerDescription = getDescription(item.descCustomer);\r\n if(filterObject.hasOwnProperty('ItemCode')) filterObject.ItemCode = item.codeItem;\r\n if(filterObject.hasOwnProperty('Item')) filterObject.Item = getDescription(item.descItem);\r\n if(filterObject.hasOwnProperty('ItemDescription')) filterObject.ItemDescription = getDescription(item.desc2Item);\r\n\r\n if(filterObject.hasOwnProperty('CurrentPrice')) filterObject.CurrentPrice = currencyFormatter(item.codePrice);\r\n if(filterObject.hasOwnProperty('ShipTo')) filterObject.ShipTo = item.codeShip;\r\n\r\n if(filterObject.hasOwnProperty('VendorPartNumber')) filterObject.VendorPartNumber = item.codeVPart;\r\n if(filterObject.hasOwnProperty('VendorCode')) filterObject.VendorCode = item.codeVendor;\r\n if(filterObject.hasOwnProperty('VendorDescription')) filterObject.VendorDescription = getDescription(item.descVendor); \r\n if(filterObject.hasOwnProperty('Invoice')) filterObject.Invoice = item.codeInvoice;\r\n if(filterObject.hasOwnProperty('CutomerPO')) filterObject.CutomerPO = item.descInvoice;\r\n if(filterObject.hasOwnProperty('InvoiceDescription')) filterObject.InvoiceDescription = getDescription(item.desc2Invoice);\r\n///\r\nif(filterObject.hasOwnProperty('AddOns_0')) filterObject.AddOns_0 = currencyFormatter(item.range0ADD); \r\nif(filterObject.hasOwnProperty('AddOns_1')) filterObject.AddOns_1 = currencyFormatter(item.range1ADD); \r\nif(filterObject.hasOwnProperty('AddOns_2')) filterObject.AddOns_2 = currencyFormatter(item.range2ADD); \r\nif(filterObject.hasOwnProperty('AddOns_3')) filterObject.AddOns_3 = currencyFormatter(item.range3ADD); \r\nif(filterObject.hasOwnProperty('Quantity_0')) filterObject.Quantity_0 = item.range0QTY; \r\nif(filterObject.hasOwnProperty('Quantity_1')) filterObject.Quantity_1 = item.range1QTY; \r\nif(filterObject.hasOwnProperty('Quantity_2')) filterObject.Quantity_2 = item.range2QTY; \r\nif(filterObject.hasOwnProperty('Quantity_3')) filterObject.Quantity_3 = item.range3QTY; \r\nif(filterObject.hasOwnProperty('Purchases_0')) filterObject.Purchases_0 = currencyFormatter(item.range0SLS); \r\nif(filterObject.hasOwnProperty('Purchases_1')) filterObject.Purchases_1 = currencyFormatter(item.range1SLS); \r\nif(filterObject.hasOwnProperty('Purchases_2')) filterObject.Purchases_2 = currencyFormatter(item.range2SLS); \r\nif(filterObject.hasOwnProperty('Purchases_3')) filterObject.Purchases_3 = currencyFormatter(item.range3SLS); \r\nif(filterObject.hasOwnProperty('AllocTax_0')) filterObject.AllocTax_0 = currencyFormatter(item.range0TAX); \r\nif(filterObject.hasOwnProperty('AllocTax_1')) filterObject.AllocTax_1 = currencyFormatter(item.range1TAX); \r\nif(filterObject.hasOwnProperty('AllocTax_2')) filterObject.AllocTax_2 = currencyFormatter(item.range2TAX); \r\nif(filterObject.hasOwnProperty('AllocTax_3')) filterObject.AllocTax_3 = currencyFormatter(item.range3TAX); \r\n\r\n filteredData.push(filterObject);\r\n })\r\n \r\n return filteredData; \r\n}\r\nexport function getCustomerVendorsList() {\r\n \r\n var identityKey=localStorage.getItem('identityKey')\r\n var loginType=localStorage.getItem('loginTypeCode')\r\n if(loginType === 'E')\r\n {\r\n identityKey=localStorage.getItem('empCompanyNumber')\r\n }\r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/consolidatedinventory/customerVendor?identityKey=${identityKey}&loginType=${loginType}`)}`, {\r\n method: 'GET',\r\n headers:authHeader()\r\n }).then(response => response.json());\r\n}\r\n\r\nexport function getAllShipToList() {\r\n var identityKey = localStorage.getItem(\"identityKey\");\r\n var loginType = localStorage.getItem(\"loginTypeCode\");\r\n if(loginType === 'E')\r\n {\r\n identityKey=localStorage.getItem('empCompanyNumber')\r\n }\r\n return fetch(\r\n `${api.proxyUrl}${api.url}${encodedURL(`/user/all-shiptos?loginId=${identityKey.trim()}&loginType=${loginType}`)}`,\r\n {\r\n method: \"GET\",\r\n headers: authHeader(),\r\n }\r\n ).then((response) => response.json());\r\n}\r\n\r\nexport function getCustomersList() {\r\n\r\n var identityKey=localStorage.getItem('identityKey')\r\n \r\n var loginType=localStorage.getItem('loginTypeCode')\r\n if(loginType === 'E')\r\n {\r\n identityKey=localStorage.getItem('empCompanyNumber')\r\n }\r\n return fetch(`${api.proxyUrl}${api.url}${encodedURL(`/consolidatedinventory/customerList-purshaseanalysis?identityKey=${identityKey.trim()}&loginTypeCode=${loginType}`)}`, {\r\n method: 'GET',\r\n headers:authHeader()\r\n }).then(response => response.json());\r\n}\r\n\r\nexport function getPurchaseAnalysis(searchObject) {\r\n \r\n var fromDate, toDate;\r\n fromDate=searchObject.frDate0;\r\n toDate=searchObject.toDate0;\r\n if(fromDate!=='') { \r\n var from=fromDate.split(\"-\") \r\n fromDate=from[1] +\"/\"+ from[2] +\"/\"+ from[0] \r\n }\r\n if(toDate!=='')\r\n {\r\n var from=toDate.split(\"-\") \r\n toDate=from[1] +\"/\"+ from[2] +\"/\"+ from[0] \r\n }\r\n var urlParam = \"&frDate0=\" + fromDate;\r\n urlParam += \"&toDate0=\" + toDate;\r\n\r\n fromDate=searchObject.frDate1;\r\n toDate=searchObject.toDate1;\r\n if(fromDate!=='') { \r\n var from=fromDate.split(\"-\") \r\n fromDate=from[1] +\"/\"+ from[2] +\"/\"+ from[0] \r\n }\r\n if(toDate!=='')\r\n {\r\n var from=toDate.split(\"-\") \r\n toDate=from[1] +\"/\"+ from[2] +\"/\"+ from[0] \r\n }\r\n urlParam += \"&frDate1=\" + fromDate;\r\n urlParam += \"&toDate1=\" + toDate;\r\n fromDate=searchObject.frDate2;\r\n toDate=searchObject.toDate2;\r\n if(fromDate!=='') { \r\n var from=fromDate.split(\"-\") \r\n fromDate=from[1] +\"/\"+ from[2] +\"/\"+ from[0] \r\n }\r\n if(toDate!=='')\r\n {\r\n var from=toDate.split(\"-\") \r\n toDate=from[1] +\"/\"+ from[2] +\"/\"+ from[0] \r\n }\r\n urlParam += \"&frDate2=\" + fromDate;\r\n urlParam += \"&toDate2=\" + toDate;\r\n fromDate=searchObject.frDate3;\r\n toDate=searchObject.toDate3;\r\n if(fromDate!=='') { \r\n var from=fromDate.split(\"-\") \r\n fromDate=from[1] +\"/\"+ from[2] +\"/\"+ from[0] \r\n }\r\n if(toDate!=='')\r\n {\r\n var from=toDate.split(\"-\") \r\n toDate=from[1] +\"/\"+ from[2] +\"/\"+ from[0] \r\n }\r\n urlParam += \"&frDate3=\" + fromDate;\r\n urlParam += \"&toDate3=\" + toDate;\r\n urlParam += \"&meaSLS=\" + searchObject.meaSLS;\r\n urlParam += \"&meaQTY=\" + searchObject.meaQTY;\r\n urlParam += \"&meaTAX=\" + searchObject.meaTAX;\r\n\r\n urlParam += \"&meaADD=\" + searchObject.meaADD;\r\n urlParam += \"&dimCo=\" + ('0' + searchObject.dimCo).slice(-2) ;\r\n urlParam += \"&dimCst=\" +('0' + searchObject.dimCst).slice(-2) ;\r\n urlParam += \"&dimShip=\" + ('0' + searchObject.dimShip).slice(-2) ;\r\n urlParam += \"&dimDept=\" + ('0' + searchObject.dimDept).slice(-2) ;\r\n\r\n urlParam += \"&dimItem=\" + ('0' +searchObject.dimItem).slice(-2) ;\r\n urlParam += \"&dimCustPart=\" +('0' + searchObject.dimCustPart).slice(-2) ;\r\n urlParam += \"&dimVend=\" + ('0' +searchObject.dimVend).slice(-2) ;\r\n urlParam += \"&dimCurPrice=\" +('0' + searchObject.dimCurPrice).slice(-2) ;\r\n urlParam += \"&dimInvoice=\" + ('0' +searchObject.dimInvoice).slice(-2) ;\r\n\r\n urlParam += \"&dimVPart=\" + ('0' + searchObject.dimVPart).slice(-2) ;\r\n if(searchObject.frItem !=null && searchObject.frItem != \"\")\r\n urlParam += \"&frItem=\" + searchObject.frItem;\r\n if(searchObject.toItem !=null && searchObject.toItem != \"\")\r\n urlParam += \"&toItem=\" + searchObject.toItem;\r\n urlParam += \"&cpType=\" + searchObject.cPType; \r\n urlParam += \"&custList=\" + searchObject.custList;\r\n if(searchObject.vendList !=null && searchObject.vendList != \"\")\r\n urlParam += \"&vendorList=\" + searchObject.vendList;\r\n if(searchObject.itemList !=null && searchObject.itemList != \"\")\r\n urlParam += \"&itemList=\" + searchObject.itemList;\r\n if(searchObject.shipList !=null && searchObject.shipList != \"\")\r\n urlParam += \"&shipList=\" + searchObject.shipList;\r\n var identityKey=localStorage.getItem('identityKey').trim();\r\n var loginType=localStorage.getItem('loginTypeCode')\r\n if(loginType === 'E')\r\n {\r\n identityKey=localStorage.getItem('empCompanyNumber')// +localStorage.getItem('customerNumber') //companyNumber customerNumber\r\n }\r\n return fetch(\r\n `${api.proxyUrl}${api.url}${encodedURL(`/purchaseanalysis/getpurchaseanalysislist?identityKey=${identityKey}&loginType=${localStorage.getItem(\"loginTypeCode\")}${urlParam}`)}`,\r\n {\r\n method: \"GET\",\r\n headers: authHeader(),\r\n }\r\n ).then((response) => response.json());\r\n // return fetch(\r\n // `${api.url}/purchaseanalysis/getpurchaseanalysislist?identityKey=${localStorage.getItem(\r\n // \"identityKey\"\r\n // ).trim()}&loginType=${localStorage.getItem(\"loginTypeCode\")}${urlParam}`,\r\n // {\r\n // method: \"GET\",\r\n // headers: authHeader(),\r\n // }\r\n // ).then((response) => response.json());\r\n}\r\n\r\nexport function getDataColumns() {\r\n\r\n //user.toUser = JSON.parse(localStorage.getItem(\"UserMenu\"));\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"UserMenu\"), salt);\r\n user.toUser = originalData;\r\n var dataColumns = [];\r\n if (user.toUser !== null) {\r\n if (user.toUser.CanViewInventoryPrices === \"Y\")\r\n dataColumns.push({\r\n id: 1,\r\n value: \"Purchases\",\r\n isChecked: false,\r\n code: \"meaSLS\",\r\n });\r\n }\r\n\r\n dataColumns.push({\r\n id: 2,\r\n value: \"Quantity\",\r\n isChecked: false,\r\n code: \"meaQTY\",\r\n });\r\n dataColumns.push({\r\n id: 3,\r\n value: \"Alloc Add-ons\",\r\n isChecked: false,\r\n code: \"meaADD\",\r\n });\r\n dataColumns.push({\r\n id: 4,\r\n value: \"Alloc tax\",\r\n isChecked: false,\r\n code: \"meaTAX\",\r\n });\r\n\r\n return dataColumns;\r\n}\r\n\r\nexport function getReportColumns() {\r\n //user.toUser = JSON.parse(localStorage.getItem(\"UserMenu\"));\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"UserMenu\"), salt);\r\n user.toUser = originalData;\r\n var reportColumns = [\r\n { id: 1, value: \"Company\", isChecked: false, code: \"dimCo\" },\r\n { id: 2, value: \"Customer\", isChecked: false, code: \"dimCst\" },\r\n { id: 3, value: \"Ship To\", isChecked: false, code: \"dimShip\" },\r\n { id: 4, value: \"Department\", isChecked: false, code: \"dimDept\" },\r\n { id: 5, value: \"Item Number\", isChecked: false, code: \"dimItem\" },\r\n { id: 6, value: \"Customer Part#\", isChecked: false, code: \"dimCustPart\" },\r\n { id: 7, value: \"Vendor Part\", isChecked: false, code: \"dimVPart\" },\r\n { id: 8, value: \"Vendor Number\", isChecked: false, code: \"dimVend\" },\r\n { id: 9, value: \"Invoice\", isChecked: false, code: \"dimInvoice\" },\r\n ];\r\n if (user.toUser !== null) {\r\n if ( \r\n user.toUser.CanViewInventoryPrices == \"Y\"\r\n )\r\n reportColumns.push({\r\n id: 10,\r\n value: \"Current Price\",\r\n isChecked: false,\r\n code: \"dimCurPrice\",\r\n });\r\n }\r\n return reportColumns;\r\n}\r\n\r\nfunction currencyFormatter(value) {\r\n if (value !== undefined && value !== \"\") {\r\n if (parseFloat(value) < 0) return \"-$\" + (parseFloat(value).toFixed(2) * -1).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n else return \"$\" + (parseFloat(value).toFixed(2)).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");;\r\n }\r\n return \"\";\r\n}","import React, { Component } from \"react\";\r\nimport CheckBox from \"../../components/Checkbox\";\r\nimport { getReportColumns } from \"../../_services/purchasingAnalysis.service\";\r\n\r\nclass ReportColumns extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n reportColumns: getReportColumns(),\r\n };\r\n }\r\n handleCheckChieldElement = (event) => {\r\n let reportColumns = this.state.reportColumns;\r\n reportColumns.forEach((report) => {\r\n if (report.value === event.target.value)\r\n report.isChecked = event.target.checked;\r\n });\r\n this.setState(\r\n {\r\n reportColumns: reportColumns,\r\n },\r\n () => {\r\n this.props.onChange(reportColumns);\r\n }\r\n );\r\n };\r\n clearSelection = () => {\r\n this.setState({\r\n reportColumns: getReportColumns(),\r\n });\r\n };\r\n render() {\r\n return (\r\n
    \r\n Report Columns\r\n \r\n
      \r\n {this.state.reportColumns.map((report) => {\r\n return (\r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ReportColumns;\r\n","import React, { Component } from \"react\";\r\nimport CheckBox from \"../../components/Checkbox\";\r\nimport { getDataColumns } from \"../../_services/purchasingAnalysis.service\";\r\n\r\nclass DataColumns extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n dataColumns: getDataColumns(),\r\n };\r\n }\r\n handleCheckChieldElement = (event) => {\r\n let dataColumns = this.state.dataColumns;\r\n dataColumns.forEach((report) => {\r\n if (report.value === event.target.value)\r\n report.isChecked = event.target.checked;\r\n });\r\n this.setState({ dataColumns: dataColumns }, () => {\r\n this.props.onChange(dataColumns);\r\n });\r\n };\r\n clearSelection = () => {\r\n this.setState({\r\n dataColumns: getDataColumns(),\r\n });\r\n };\r\n render() {\r\n return (\r\n
    \r\n Data Columns\r\n \r\n
      \r\n {this.state.dataColumns.map((data) => {\r\n return (\r\n \r\n );\r\n })}\r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default DataColumns;\r\n","import React, { Component } from 'react';\r\nimport { AgGridReact } from \"ag-grid-react\";\r\nimport \"ag-grid-community/dist/styles/ag-grid.css\";\r\nimport \"ag-grid-community/dist/styles/ag-theme-alpine.css\";\r\nimport {getCustomersList} from \"../../_services/purchasingAnalysis.service\";\r\nimport appConstants from \"../../_services/applicationConstant\";\r\n\r\nclass PACustomers extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n \r\n colHeaders: [\r\n { headerName: \"\", tooltip: (params) => 'Control Click to Select Mutiple Rows', cellStyle: {textAlign: 'left',borderRight: '0.1px solid lightgray'},\r\n field: \"CUSTID\",filter: 'agTextColumnFilter',width:320,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}`}],\r\n defaultColDef: {\r\n flex: 1,\r\n minWidth: 150,\r\n filter: true,\r\n sortable: true,\r\n },\r\n rowData:[]\r\n }\r\n \r\n };\r\n clearSelection =() =>{\r\n this.gridApi.deselectAll();\r\n document.getElementById(\"txtFilter\").value =\"\";\r\n this.gridApi.setFilterModel(null);\r\n }\r\n setSelectedItems = (api) => {\r\n this.gridApi.forEachNode((node) => { \r\n if(this.props.selectedCustomers.indexOf(node.data.CustNumber) > -1) \r\n node.setSelected(true);\r\n });\r\n clearInterval(window.watcher);\r\n window.watcher = 0; \r\n };\r\n onSelectionChanged = () => {\r\n var selectedRows = this.gridApi.getSelectedRows();\r\n var selectedRowsString = [];\r\n selectedRows.forEach(function(selectedRow, index) { \r\n \r\n selectedRowsString.push(selectedRow.CustNumber);\r\n });\r\n this.props.handleCustomerSelection(selectedRowsString);\r\n // alert(selectedRowsString);\r\n };\r\n \r\n \r\n onGridReady = params => {\r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi;\r\n\r\n const httpRequest = new XMLHttpRequest();\r\n const updateData = data => {\r\n params.api.setRowData(data.slice(0, 50));\r\n };\r\n\r\n httpRequest.open(\r\n 'GET',\r\n getCustomersList() .then((data) => {\r\n this.setState({ rowData: data })\r\n window.watcher = setInterval(this.setSelectedItems, 25, this.gridApi);\r\n })\r\n );\r\n httpRequest.send();\r\n \r\n \r\n };\r\n filterchange = () => {\r\n var hardcodedFilter = {\r\n CUSTID: {\r\n type: 'contains', \r\n filter:document.getElementById(\"txtFilter\").value,\r\n \r\n }\r\n \r\n \r\n };\r\n this.gridApi.setFilterModel(hardcodedFilter);\r\n \r\n this.gridApi.onFilterChanged();\r\n};\r\n render() {\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n this.filterchange()}\r\n >\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default PACustomers;","import React, { Component } from 'react';\r\nimport { AgGridReact } from \"ag-grid-react\";\r\nimport \"ag-grid-community/dist/styles/ag-grid.css\";\r\nimport \"ag-grid-community/dist/styles/ag-theme-alpine.css\";\r\nimport {getCustomerVendorsList} from \"../../_services/purchasingAnalysis.service\";\r\nimport appConstants from \"../../_services/applicationConstant\";\r\n\r\n\r\n\r\n\r\nclass PAVendors extends Component {\r\n \r\n \r\n constructor(props) {\r\n super(props);\r\n \r\n this.state = {\r\n \r\n \r\n colHeaders: [\r\n { headerName: \"\", tooltip: (params) => 'Control Click to Select Mutiple Rows', cellStyle: {textAlign: 'left',borderRight: '0.1px solid lightgray'},\r\n field: \"name\",filter: 'agTextColumnFilter',width:320,headerClass: `${appConstants.isR3App? \"gridheaderR3\" : \"gridheader\"}`}],\r\n \r\n \r\n defaultColDef: {\r\n flex: 1,\r\n minWidth: 150,\r\n filter: true,\r\n sortable: true,\r\n },\r\n rowData:[]\r\n }\r\n \r\n };\r\n clearSelection =() =>{\r\n this.gridApi.deselectAll();\r\n document.getElementById(\"txtFilter\").value =\"\";\r\n this.gridApi.setFilterModel(null);\r\n }\r\n componentWillMount() { \r\n getCustomerVendorsList()\r\n .then((data) => {\r\n this.setState({ rowData: data })\r\n })\r\n .catch(console.log);\r\n }\r\n\r\n\r\n onGridReady = params => {\r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi;\r\n\r\n const httpRequest = new XMLHttpRequest();\r\n const updateData = data => {\r\n params.api.setRowData(data.slice(0, 50));\r\n };\r\n\r\n httpRequest.open(\r\n 'GET',\r\n getCustomerVendorsList() .then((data) => {\r\n this.setState({ rowData: data })\r\n window.watcher = setInterval(this.setSelectedItems, 25, this.gridApi);\r\n })\r\n );\r\n httpRequest.send();\r\n \r\n };\r\n filterchange = () => {\r\n var hardcodedFilter = {\r\n name: {\r\n type: 'contains', \r\n filter:document.getElementById(\"txtFilter\").value,\r\n \r\n }\r\n \r\n \r\n };\r\n this.gridApi.setFilterModel(hardcodedFilter);\r\n \r\n this.gridApi.onFilterChanged();\r\n};\r\nsetSelectedItems = (api) => {\r\n this.gridApi.forEachNode((node) => { \r\n if(this.props.selectedVendors.indexOf(node.data.id) > -1) \r\n node.setSelected(true);\r\n });\r\n clearInterval(window.watcher);\r\n window.watcher = 0; \r\n};\r\nonSelectionChanged = () => {\r\n var selectedRows = this.gridApi.getSelectedRows();\r\n var selectedRowsString = [];\r\n selectedRows.forEach(function(selectedRow, index) { \r\n \r\n selectedRowsString.push(selectedRow.id);\r\n });\r\n this.props.handleVendorSelection(selectedRowsString);\r\n // alert(selectedRowsString);\r\n};\r\n render() {\r\n const renderCustomerVendor = () => {\r\n return
    \r\n
    \r\n \r\n
    \r\n this.filterchange()}\r\n >\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n }\r\n \r\n return (\r\n \r\n renderCustomerVendor()\r\n\r\n );\r\n }\r\n}\r\n\r\n\r\nexport default PAVendors;","import React, { Component } from \"react\";\r\n\r\nclass PAItemRange extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n fromItem: \"\",\r\n toItem:\"\"\r\n };\r\n }\r\n clearSelection =() =>{\r\n this.setState({\r\n fromItem: \"\",\r\n toItem:\"\"\r\n })\r\n }\r\n componentDidMount() {\r\n this.setState({\r\n fromItem: this.props.fromItem,\r\n toItem: this.props.toItem\r\n });\r\n }\r\n itemFromChange = (event) => {\r\n let nam = event.target.name;\r\n let val = event.target.value;\r\n this.setState({ fromItem: val }, () => {\r\n this.props.onItemFromChange(val);\r\n });\r\n };\r\n itemToChange = (event) => {\r\n let nam = event.target.name;\r\n let val = event.target.value;\r\n this.setState({ toItem: val }, () => {\r\n this.props.onItemToChange(val);\r\n });\r\n };\r\n render() {\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n From Distributor Item#\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n To Distributor Item# \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default PAItemRange;\r\n","import React, { Component } from \"react\";\r\nimport { getItenEntryList } from \"../../_services/purchasingAnalysis.service\";\r\n\r\nclass PAItemEntry extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n searchTypes: getItenEntryList(),\r\n inputList: [],\r\n itemTypeChange: 1,\r\n };\r\n }\r\n clearSelection = () => {\r\n this.setState({\r\n searchTypes: getItenEntryList(),\r\n inputList: this.props.selectedItemEntries,\r\n itemTypeChange: 1,\r\n });\r\n };\r\n componentDidMount() {\r\n this.setState({\r\n inputList: this.props.selectedItemEntries,\r\n });\r\n }\r\n handleInputChange = (e, index) => {\r\n const { name, value } = e.target;\r\n const list = [...this.state.inputList];\r\n list[index][name] = value;\r\n this.setState({ inputList: list });\r\n \r\n };\r\n handleEnterTab = (e, index) => {\r\n if ((e.key === \"Enter\" || e.key === \"Tab\" || e.type === \"blur\") && (e.target.value !== \"\" && e.target.value !== null)) {\r\n const { name, value } = e.target;\r\n const list = [...this.state.inputList];\r\n list[index][name] = (value + \" \").substring(0, 12);\r\n if(list.length-1 === index){\r\n list.push({ itemvalue: \"\" });\r\n }\r\n this.setState({ inputList: list }, () => {\r\n this.props.onChange(list);\r\n });\r\n }\r\n };\r\n cancelItems = () => {\r\n const list = [];\r\n\r\n this.setState((prevState) => ({\r\n inputList: prevState.inputList.filter((el) => true !== true),\r\n }));\r\n list.push({ itemvalue: \"\" });\r\n this.setState({ inputList: list }, () => {\r\n this.props.onChange(list);\r\n });\r\n };\r\n\r\n itemTypeChange = (event) => {\r\n let nam = event.target.name;\r\n let val = event.target.value;\r\n this.setState({ [nam]: val }, () => {\r\n this.props.onItemEntryTypeChange(val);\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n
     
    \r\n
    \r\n \r\n Enter Item List\r\n {this.state.inputList.map((x, i) => {\r\n return (\r\n
    \r\n this.handleInputChange(e, i)}\r\n onKeyDown={(e) => this.handleEnterTab(e, i)}\r\n onBlur ={(e) => this.handleEnterTab(e, i)}\r\n onFocus ={(e) => this.handleEnterTab(e, i)}\r\n\r\n />\r\n
    \r\n );\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {this.state.searchTypes.map((type) => (\r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n \r\n Clear Selection\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default PAItemEntry;\r\n","import React, { Component } from 'react';\r\nimport { AgGridReact } from \"ag-grid-react\";\r\nimport \"ag-grid-community/dist/styles/ag-grid.css\";\r\nimport \"ag-grid-community/dist/styles/ag-theme-alpine.css\";\r\nimport {getAllShipToList} from \"../../_services/purchasingAnalysis.service\";\r\nimport appConstants from \"../../_services/applicationConstant\";\r\n\r\nclass PAshipTos extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n colHeaders: [\r\n {\r\n headerName: \"\",\r\n tooltip: (params) => \"Control Click to Select Mutiple Rows\",\r\n cellStyle: {\r\n textAlign: \"left\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"Name\",\r\n filter: \"agTextColumnFilter\",\r\n width: 320,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n ],\r\n\r\n defaultColDef: {\r\n flex: 1,\r\n minWidth: 150,\r\n filter: true,\r\n sortable: true,\r\n },\r\n rowData: [],\r\n };\r\n }\r\n clearSelection = () => {\r\n this.gridApi.deselectAll();\r\n this.gridApi.setFilterModel(null);\r\n };\r\n componentWillMount() {\r\n // getAllShipToList()\r\n // .then((data) => {\r\n // if (this.props.isAllCustomers === false) {\r\n // const shipToList = data.filter((shipTo) =>\r\n // this.props.selectedCustomers.includes(shipTo.CustId)\r\n // );\r\n // this.setState({rowData:[]},()=>{\r\n // this.setState({ rowData: shipToList });\r\n // });\r\n // } else { \r\n // this.setState({ rowData: data });\r\n // }\r\n // })\r\n // .catch(console.log);\r\n }\r\n\r\n onGridReady = (params) => {\r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi;\r\n\r\n const httpRequest = new XMLHttpRequest();\r\n const updateData = (data) => {\r\n params.api.setRowData(data.slice(0, 50));\r\n };\r\n\r\n httpRequest.open(\r\n \"GET\",\r\n getAllShipToList().then((data) => {\r\n if (this.props.isAllCustomers === false) {\r\n const shipToList = data.filter((shipTo) =>\r\n this.props.selectedCustomers.includes(shipTo.CustId)\r\n );\r\n \r\n if(localStorage.getItem('loginTypeCode') === 'C')\r\n { \r\n var userName= localStorage.getItem('userName');\r\n if(userName.length > 6)\r\n {\r\n var shipTOData= data.filter((p) => p.ShipId.trim().includes(userName.trim()));\r\n this.setState({ rowData: shipTOData }); \r\n }\r\n else{\r\n this.setState({rowData:[]},()=>{\r\n this.setState({ rowData: shipToList });\r\n });\r\n }\r\n }\r\n else{\r\n this.setState({rowData:[]},()=>{\r\n this.setState({ rowData: shipToList });\r\n });\r\n }\r\n } else { \r\n if(localStorage.getItem('loginTypeCode') === 'C')\r\n { \r\n var userName= localStorage.getItem('userName');\r\n if(userName.length > 6)\r\n { \r\n var shipTOData= data.filter((p) => p.ShipId.trim().includes(userName.trim()));\r\n this.setState({ rowData: shipTOData }); \r\n }\r\n else{\r\n this.setState({rowData:[]},()=>{\r\n this.setState({ rowData: data });\r\n });\r\n }\r\n }\r\n else \r\n this.setState({ rowData: data });\r\n }\r\n\r\n window.watcher = setInterval(this.setSelectedItems, 25, this.gridApi);\r\n })\r\n );\r\n httpRequest.send();\r\n };\r\n\r\n setSelectedItems = (api) => {\r\n var containsSelections= false;\r\n this.gridApi.forEachNode((node) => {\r\n if (\r\n this.props.selectedShipTos.indexOf(\r\n (node.data.ShipId + \" \").substring(0, 14)\r\n ) > -1\r\n ){\r\n node.setSelected(true); \r\n }\r\n });\r\n var selectedRows = this.gridApi.getSelectedRows();\r\n var selectedRowsString = [];\r\n selectedRows.forEach(function (selectedRow, index) {\r\n selectedRowsString.push(\r\n (selectedRow.ShipId + \" \").substring(0, 14)\r\n );\r\n });\r\n this.props.handleShipToSelection(selectedRowsString);\r\n clearInterval(window.watcher);\r\n window.watcher = 0;\r\n };\r\n onSelectionChanged = () => {\r\n var selectedRows = this.gridApi.getSelectedRows();\r\n var selectedRowsString = [];\r\n selectedRows.forEach(function (selectedRow, index) {\r\n selectedRowsString.push(\r\n (selectedRow.ShipId + \" \").substring(0, 14)\r\n );\r\n });\r\n this.props.handleShipToSelection(selectedRowsString);\r\n };\r\n render() {\r\n const renderShipTo = () => {\r\n return (\r\n
    \r\n
    \r\n {/* */}\r\n {/*
    \r\n this.filterchange()}\r\n >\r\n
    */}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {this.props.isAllCustomers === false &&\r\n this.props.selectedCustomers.length <= 0 ? (\r\n \r\n No Customers are selected\r\n
    \r\n ) : (\r\n \"\"\r\n )}\r\n
    \r\n {this.props.isAllCustomers === false &&\r\n this.props.selectedCustomers.length <= 0 ? (\r\n \"\"\r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n return renderShipTo();\r\n }\r\n}\r\n\r\n\r\nexport default PAshipTos;","import React, { Component } from \"react\";\r\nimport { Tab, Tabs, TabList, TabPanel } from \"react-tabs\";\r\nimport \"react-tabs/style/react-tabs.css\";\r\nimport DataColumns from \"./DataColumns\";\r\nimport PACustomer from \"./PACustomers\";\r\nimport PAVendors from \"./PAVendors\";\r\nimport PAItemRange from \"./PAItemRange\";\r\nimport PAItemEntry from \"./PAItemEntry\";\r\nimport PAshipTos from \"./PAshipTos\";\r\nimport openfolder from \"../../assets/images/openfolder.gif\";\r\n\r\nclass TabFilters extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n selectedItemEntries: [{ itemvalue: \"\" }],\r\n selectedItemEntryType: \"Distributor Item#\",\r\n fromItem: \"\",\r\n toItem: \"\",\r\n isAllCustomers: true,\r\n selectedCustomers: [],\r\n isAllVendors: true,\r\n selectedVendors: [],\r\n isAllShipTo: true,\r\n selectedShipTos: [],\r\n };\r\n this.ItemEntryRef = React.createRef();\r\n this.ItemRangeRef = React.createRef();\r\n this.CICutomerRef = React.createRef();\r\n this.CIVendorRef = React.createRef();\r\n this.PAShipToRef=React.createRef();\r\n }\r\n clearSelection = () => {\r\n this.setState(\r\n {\r\n selectedItemEntries: [{ itemvalue: \"\" }],\r\n selectedItemEntryType: \"Distributor Item#\",\r\n fromItem: \"\",\r\n toItem: \"\",\r\n isAllCustomers: true,\r\n selectedCustomers: [],\r\n isAllVendors: true,\r\n selectedVendors: [],\r\n isAllShipTo: true,\r\n selectedShipTos:[]\r\n },\r\n () => {\r\n if (this.ItemEntryRef.current !== null)\r\n this.ItemEntryRef.current.clearSelection();\r\n if (this.ItemRangeRef.current !== null)\r\n this.ItemRangeRef.current.clearSelection();\r\n if (this.CICutomerRef.current !== null)\r\n this.CICutomerRef.current.clearSelection();\r\n if (this.CIVendorRef.current !== null)\r\n this.CIVendorRef.current.clearSelection();\r\n if (this.PAShipToRef.current !== null)\r\n this.PAShipToRef.current.clearSelection();\r\n }\r\n );\r\n };\r\n itemEntryHandler = (data) => {\r\n this.setState({ selectedItemEntries: data }, () => {\r\n this.props.onEntryItemChange(this.state.selectedItemEntries);\r\n });\r\n };\r\n onItemEntryTypeChange = (data) => {\r\n this.setState({ selectedItemEntryType: data }, () => {\r\n this.props.onFilterEntryTypeChange(this.state.selectedItemEntryType);\r\n });\r\n };\r\n onItemFromChange = (data) => {\r\n this.setState({ fromItem: data }, () => {\r\n this.props.onItemFromChange(this.state.fromItem);\r\n });\r\n };\r\n onItemToChange = (data) => {\r\n this.setState({ toItem: data }, () => {\r\n this.props.onItemToChange(this.state.toItem);\r\n });\r\n };\r\n handleCheckCICustomers = (data) => {\r\n this.setState(\r\n {\r\n isAllCustomers: !this.state.isAllCustomers,\r\n },\r\n () => {\r\n this.props.onAllCICutomerChange(this.state.isAllCustomers);\r\n this.CICutomerRef.current.clearSelection();\r\n if (this.state.isAllCustomers === true)\r\n this.setState({ selectedCustomers: [] }, () => {\r\n this.props.onCICustomerSelectionChange(\r\n this.state.selectedCustomers\r\n );\r\n });\r\n }\r\n );\r\n \r\n };\r\n handleCustomerSelection = (data) => {\r\n this.setState(\r\n {\r\n selectedCustomers: data,\r\n },\r\n () => {\r\n this.props.onCICustomerSelectionChange(this.state.selectedCustomers);\r\n if (this.state.selectedCustomers.length > 0)\r\n this.setState({ isAllCustomers: false }, () => {\r\n this.props.onAllCICutomerChange(this.state.isAllCustomers);\r\n });\r\n }\r\n \r\n );\r\n //alert(this.state.selectedCustomers)\r\n };\r\n handleCheckCIVendors = (data) => {\r\n this.setState(\r\n {\r\n isAllVendors: !this.state.isAllVendors,\r\n },\r\n () => {\r\n this.props.onAllCIVendorChange(this.state.isAllVendors);\r\n this.CIVendorRef.current.clearSelection();\r\n if (this.state.isAllVendors === true)\r\n this.setState({ selectedVendors: [] }, () => {\r\n this.props.onCIVendorSelectionChange(this.state.selectedVendors);\r\n });\r\n }\r\n );\r\n };\r\n handleVendorSelection = (data) => {\r\n this.setState(\r\n {\r\n selectedVendors: data,\r\n },\r\n () => {\r\n this.props.onCIVendorSelectionChange(this.state.selectedVendors);\r\n if (this.state.selectedVendors.length > 0)\r\n this.setState({ isAllVendors: false }, () => {\r\n this.props.onAllCIVendorChange(this.state.isAllVendors);\r\n });\r\n }\r\n );\r\n };\r\n handleCheckAllShipTo = () => {\r\n this.setState(\r\n {\r\n isAllShipTo: !this.state.isAllShipTo,\r\n },\r\n () => {\r\n this.props.onAllPAShipTos(this.state.isAllShipTo);\r\n this.PAShipToRef.current.clearSelection();\r\n if (this.state.isAllShipTo === true)\r\n this.setState({ selectedShipTos: [] }, () => {\r\n this.props.onPAShiptosSelectionChange (this.state.selectedShipTos);\r\n \r\n });\r\n }\r\n \r\n );\r\n \r\n };\r\n \r\n handleShipToSelection = (data) => {\r\n this.setState(\r\n {\r\n selectedShipTos: data,\r\n },\r\n () => {\r\n this.props.onPAShiptosSelectionChange(this.state.selectedShipTos);\r\n if (this.state.selectedShipTos.length > 0)\r\n this.setState({ isAllShipTo: false }, () => {\r\n this.props.onAllPAShipTos(this.state.isAllShipTo);\r\n \r\n });\r\n }\r\n );\r\n \r\n };\r\n\r\n \r\n // componentDidUpdate() {\r\n // if (this.props.onChange) {\r\n // this.props.onChange(this.state);\r\n // }\r\n // }\r\n render() {\r\n const CustomTab = ({ children }) => {children};\r\n\r\n CustomTab.tabsRole = \"Tab\";\r\n return (\r\n \r\n \r\n \r\n \r\n {this.state.selectedCustomers.length > 0 && (\r\n \"Add\"\r\n )}{\" \"}\r\n Customers\r\n \r\n \r\n {\" \"}\r\n {this.state.selectedShipTos.length > 0 && (\r\n \"Add\"\r\n )}{\" \"}\r\n Ship To\r\n \r\n \r\n {\" \"}\r\n {this.state.selectedVendors.length > 0 && (\r\n \"Add\"\r\n )}{\" \"}\r\n Vendors\r\n \r\n \r\n {(this.state.fromItem !== \"\" || this.state.toItem !== \"\") && (\r\n \"Add\"\r\n )}\r\n Item Range\r\n \r\n \r\n {this.state.selectedItemEntries.length > 1 && (\r\n \"Add\"\r\n )}\r\n Item Entry\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default TabFilters;\r\n","import React, { Component } from \"react\";\r\nimport appConstants from \"../../_services/applicationConstant\";\r\nimport ReportColumns from \"./ReportColumns\";\r\nimport DataColumns from \"./DataColumns\";\r\nimport TabFilters from \"./TabFilters\";\r\nimport { getCustomersList } from \"../../_services/purchasingAnalysis.service\";\r\nimport { getCustomerVendorsList } from \"../../_services/consolidatedInventory.service\";\r\nimport { getAllShipToList } from \"../../_services/purchasingAnalysis.service\";\r\nimport ESSModal from \"../../components/ESSModal.jsx\";\r\nclass PAFilter extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n frDate0: \"\",\r\n frDate1: \"\",\r\n frDate2: \"\",\r\n frDate3: \"\",\r\n toDate0: \"\",\r\n toDate1: \"\",\r\n toDate2: \"\",\r\n toDate3: \"\",\r\n selectedReportColumns: [],\r\n selectedDataColumns: [],\r\n ItemEntryList: [],\r\n ItemEntryType: \"Distributor Item#\",\r\n fromItemRange: \"\",\r\n toItemRange: \"\",\r\n isAllCICustomers: true,\r\n ciCustomers: [],\r\n isAllShipTo: true,\r\n ciShipTos: [],\r\n isAllCIVedors: true,\r\n ciVendors: [],\r\n allCICustomers: [],\r\n allCIVendors: [],\r\n allPAshiptos: [],\r\n show: false,\r\n userMessage: \"\",\r\n };\r\n this.DataColumnsRef = React.createRef();\r\n this.ReportColumnsRef = React.createRef();\r\n this.TabFilterRef = React.createRef();\r\n this.reportColumnsHandler = this.reportColumnsHandler.bind(this);\r\n }\r\n componentDidMount() {\r\n var allCustomers = [];\r\n getCustomersList().then((data) => {\r\n data.map((m) => allCustomers.push(m.CustNumber));\r\n });\r\n\r\n this.setState({ allCICustomers: allCustomers });\r\n var allVendors = [];\r\n getCustomerVendorsList().then((data) => {\r\n data.map((m) => allVendors.push(m.id));\r\n });\r\n this.setState({ allCIVendors: allVendors });\r\n var allShipTos = [];\r\n getAllShipToList().then((data) => {\r\n data.map((m) => allShipTos.push(m.ShipId));\r\n });\r\n this.setState({ allPAshiptos: allShipTos });\r\n }\r\n\r\n mapReportColumm() {}\r\n searchClicked = () => {\r\n const report = this.state.selectedReportColumns.filter((p) => p.isChecked);\r\n const data = this.state.selectedDataColumns.filter((p) => p.isChecked);\r\n var haveDate=true;\r\n if ((this.state.frDate0 === null || this.state.frDate0 === \"\") \r\n && (this.state.frDate1 === null || this.state.frDate1 === \"\") \r\n && (this.state.frDate2 === null || this.state.frDate2 === \"\") \r\n && (this.state.frDate3 === null || this.state.frDate3 === \"\") )\r\n {\r\n haveDate =false;\r\n }\r\n var dateMessage= haveDate=== false ?\"There are no Date selections\\n\":\"\";\r\n\r\n if (report.length === 0) {\r\n if (data.length === 0) {\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n dateMessage+ \"Data Columns: has no selections.\\nReport Columns: has no selections\",\r\n });\r\n return false;\r\n } else {\r\n this.setState({\r\n show: true,\r\n userMessage: dateMessage+\"Report Columns: has no selections\",\r\n });\r\n return false;\r\n }\r\n }\r\n\r\n if (data.length === 0) {\r\n this.setState({\r\n show: true,\r\n userMessage:dateMessage+ \"Data Columns: has no selections\",\r\n });\r\n return false;\r\n }\r\n if(report.filter((p) => p.isChecked && p.code.includes(\"dimCurPrice\")).length > 0 )\r\n {\r\n if(report.filter((p) => p.isChecked && p.code.includes(\"dimItem\")).length > 0){\r\n\r\n }\r\n else{\r\n this.setState({\r\n show: true,\r\n userMessage:dateMessage+ \"Item must be selected with Current Price\",\r\n });\r\n return false;\r\n }\r\n }\r\n\r\n if (this.state.isAllCICustomers || this.state.ciCustomers.length > 0) {\r\n } else {\r\n this.setState({\r\n show: true,\r\n userMessage: dateMessage+\"There are no Customer selections\",\r\n });\r\n return false;\r\n }\r\n var userMessage = \"\";\r\n var isValid = false;\r\n \r\n //New validation start \r\n if (this.state.frDate0 !== null && this.state.frDate0 !== \"\") \r\n {\r\n isValid= this.yearValidation(this.state.frDate0);\r\n\r\n if(isValid)\r\n {\r\n isValid = true;\r\n }\r\n else\r\n {\r\n isValid = false;\r\n return false;\r\n }\r\n\r\n if (this.state.toDate0 !== null && this.state.toDate0 !== \"\")\r\n {\r\n isValid= this.yearValidation(this.state.toDate0);\r\n if(isValid)\r\n {\r\n isValid = true;\r\n }\r\n else\r\n {\r\n isValid = false;\r\n \r\n return false;\r\n }\r\n }\r\n }\r\n\r\n if (this.state.frDate1 !== null && this.state.frDate1 !== \"\") \r\n {\r\n isValid= this.yearValidation(this.state.frDate1);\r\n\r\n if(isValid)\r\n {\r\n isValid = true;\r\n }\r\n else\r\n {\r\n isValid = false;\r\n return false;\r\n }\r\n\r\n if (this.state.toDate1 !== null && this.state.toDate1 !== \"\")\r\n {\r\n isValid= this.yearValidation(this.state.toDate1);\r\n if(isValid)\r\n {\r\n isValid = true;\r\n }\r\n else\r\n {\r\n isValid = false;\r\n \r\n return false;\r\n }\r\n }\r\n }\r\n\r\n if (this.state.frDate2 !== null && this.state.frDate2 !== \"\") \r\n {\r\n isValid= this.yearValidation(this.state.frDate2);\r\n\r\n if(isValid)\r\n {\r\n isValid = true;\r\n }\r\n else\r\n {\r\n isValid = false;\r\n return false;\r\n }\r\n\r\n if (this.state.toDate2 !== null && this.state.toDate2 !== \"\")\r\n {\r\n isValid= this.yearValidation(this.state.toDate2);\r\n if(isValid)\r\n {\r\n isValid = true;\r\n }\r\n else\r\n {\r\n isValid = false;\r\n \r\n return false;\r\n }\r\n }\r\n }\r\n\r\n if (this.state.frDate3 !== null && this.state.frDate3 !== \"\") \r\n {\r\n isValid= this.yearValidation(this.state.frDate3);\r\n\r\n if(isValid)\r\n {\r\n isValid = true;\r\n }\r\n else\r\n {\r\n isValid = false;\r\n return false;\r\n }\r\n\r\n if (this.state.toDate3 !== null && this.state.toDate3 !== \"\")\r\n {\r\n isValid= this.yearValidation(this.state.toDate3);\r\n if(isValid)\r\n {\r\n isValid = true;\r\n }\r\n else\r\n {\r\n isValid = false;\r\n \r\n return false;\r\n }\r\n }\r\n }\r\n //New validation end \r\n if (this.state.frDate0 !== null && this.state.frDate0 !== \"\") \r\n {\r\n if (this.state.toDate0 !== null && this.state.toDate0 !== \"\")\r\n {\r\n \r\n \r\n isValid = true;\r\n }\r\n\r\n else {\r\n isValid = false;\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"Range 1 is an invalid date range.\\nThere are no Date selections\",\r\n });\r\n return false;\r\n }\r\n } \r\n if (this.state.frDate1 !== null && this.state.frDate1 !== \"\") {\r\n if (this.state.toDate1 !== null && this.state.toDate1 !== \"\")\r\n isValid = true;\r\n else {\r\n isValid = false;\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"Range 2 is an invalid date range.\\nThere are no Date selections\",\r\n });\r\n return false;\r\n }\r\n } \r\n if (this.state.frDate2 !== null && this.state.frDate2 !== \"\") {\r\n if (this.state.toDate2 !== null && this.state.toDate2 !== \"\")\r\n isValid = true;\r\n else {\r\n isValid = false;\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"Range 2 is an invalid date range.\\nThere are no Date selections\",\r\n });\r\n return false;\r\n }\r\n } \r\n if (this.state.frDate3 !== null && this.state.frDate3 !== \"\") {\r\n if (this.state.toDate3 !== null && this.state.toDate2 !== \"\")\r\n isValid = true;\r\n else {\r\n isValid = false;\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"Range 2 is an invalid date range. There are no Date selections\",\r\n });\r\n return false;\r\n }\r\n }\r\n if (isValid === false) {\r\n this.setState({\r\n show: true,\r\n userMessage: \"There are no Date selections\",\r\n });\r\n return false;\r\n }\r\n\r\n // var itemEtry = \"\";\r\n // const dataEntr = this.state.ItemEntryList.map(\r\n // (filteredData) => (itemEtry = itemEtry + filteredData.itemvalue + \", \")\r\n // );\r\n\r\n var filterObject = {\r\n frDate0: this.state.frDate0,\r\n frDate1: this.state.frDate1,\r\n frDate2: this.state.frDate2,\r\n frDate3: this.state.frDate3,\r\n toDate0: this.state.toDate0,\r\n toDate1: this.state.toDate1,\r\n toDate2: this.state.toDate2,\r\n toDate3: this.state.toDate3,\r\n reportColumn: report,\r\n dataColumn: data,\r\n isAllCICustomers: this.state.allCICustomers,\r\n ciCustomers: this.state.ciCustomers,\r\n isAllCIVedors: this.state.allCIVendors,\r\n ciVendors: this.state.ciVendors,\r\n ItemEntryList: this.state.ItemEntryList,\r\n ItemEntryType: this.state.ItemEntryType,\r\n fromItemRange: this.state.fromItemRange,\r\n toItemRange: this.state.toItemRange,\r\n ciShipTos: this.state.ciShipTos,\r\n isAllShipTo: this.state.allPAshiptos,\r\n };\r\n this.props.doSearch(filterObject);\r\n };\r\n showcloumnsCLicked = () => {\r\n const report = this.state.selectedReportColumns.filter((p) => p.isChecked);\r\n const data = this.state.selectedDataColumns.filter((p) => p.isChecked);\r\n var haveDate=true;\r\n if ((this.state.frDate0 === null || this.state.frDate0 === \"\") \r\n && (this.state.frDate1 === null || this.state.frDate1 === \"\") \r\n && (this.state.frDate2 === null || this.state.frDate2 === \"\") \r\n && (this.state.frDate3 === null || this.state.frDate3 === \"\") )\r\n {\r\n haveDate =false;\r\n }\r\n var dateMessage= haveDate=== false ?\"There are no Date selections\\n\":\"\";\r\n\r\n if (report.length === 0) {\r\n if (data.length === 0) {\r\n\r\n this.setState({\r\n show: true,\r\n userMessage: dateMessage+ \"Data Columns: has no selections.\\nReport Columns: has no selections\",\r\n });\r\n return false;\r\n } else {\r\n this.setState({\r\n show: true,\r\n userMessage: dateMessage+ \"Report Columns: has no selections\",\r\n });\r\n return false;\r\n }\r\n }\r\n if (data.length === 0) {\r\n this.setState({\r\n show: true,\r\n userMessage: dateMessage+\"Data Columns: has no selections\",\r\n });\r\n return false;\r\n }\r\n\r\n if (this.state.isAllCICustomers || this.state.ciCustomers.length > 0) {\r\n } else {\r\n this.setState({\r\n show: true,\r\n userMessage: \"There are no Customer selections\",\r\n });\r\n return false;\r\n }\r\n\r\n \r\n var userMessage = \"\";\r\n var isValid = false;\r\n //New validation start\r\n if (this.state.frDate0 !== null && this.state.frDate0 !== \"\") \r\n {\r\n isValid= this.yearValidation(this.state.frDate0);\r\n\r\n if(isValid)\r\n {\r\n isValid = true;\r\n }\r\n else\r\n {\r\n isValid = false;\r\n return false;\r\n }\r\n\r\n if (this.state.toDate0 !== null && this.state.toDate0 !== \"\")\r\n {\r\n isValid= this.yearValidation(this.state.toDate0);\r\n if(isValid)\r\n {\r\n isValid = true;\r\n }\r\n else\r\n {\r\n isValid = false;\r\n \r\n return false;\r\n }\r\n }\r\n }\r\n\r\n if (this.state.frDate1 !== null && this.state.frDate1 !== \"\") \r\n {\r\n isValid= this.yearValidation(this.state.frDate1);\r\n\r\n if(isValid)\r\n {\r\n isValid = true;\r\n }\r\n else\r\n {\r\n isValid = false;\r\n return false;\r\n }\r\n\r\n if (this.state.toDate1 !== null && this.state.toDate1 !== \"\")\r\n {\r\n isValid= this.yearValidation(this.state.toDate1);\r\n if(isValid)\r\n {\r\n isValid = true;\r\n }\r\n else\r\n {\r\n isValid = false;\r\n \r\n return false;\r\n }\r\n }\r\n }\r\n\r\n if (this.state.frDate2 !== null && this.state.frDate2 !== \"\") \r\n {\r\n isValid= this.yearValidation(this.state.frDate2);\r\n\r\n if(isValid)\r\n {\r\n isValid = true;\r\n }\r\n else\r\n {\r\n isValid = false;\r\n return false;\r\n }\r\n\r\n if (this.state.toDate2 !== null && this.state.toDate2 !== \"\")\r\n {\r\n isValid= this.yearValidation(this.state.toDate2);\r\n if(isValid)\r\n {\r\n isValid = true;\r\n }\r\n else\r\n {\r\n isValid = false;\r\n \r\n return false;\r\n }\r\n }\r\n }\r\n\r\n if (this.state.frDate3 !== null && this.state.frDate3 !== \"\") \r\n {\r\n isValid= this.yearValidation(this.state.frDate3);\r\n\r\n if(isValid)\r\n {\r\n isValid = true;\r\n }\r\n else\r\n {\r\n isValid = false;\r\n return false;\r\n }\r\n\r\n if (this.state.toDate3 !== null && this.state.toDate3 !== \"\")\r\n {\r\n isValid= this.yearValidation(this.state.toDate3);\r\n if(isValid)\r\n {\r\n isValid = true;\r\n }\r\n else\r\n {\r\n isValid = false;\r\n \r\n return false;\r\n }\r\n }\r\n }\r\n //New validation end \r\n\r\n if (this.state.frDate0 !== null && this.state.frDate0 !== \"\") {\r\n if (this.state.toDate0 !== null && this.state.toDate0 !== \"\")\r\n isValid = true;\r\n else {\r\n isValid = false;\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"Range 1 is an invalid date range.\\nThere are no Date selections\",\r\n });\r\n return false;\r\n }\r\n } \r\n if (this.state.frDate1 !== null && this.state.frDate1 !== \"\") {\r\n if (this.state.toDate1 !== null && this.state.toDate1 !== \"\")\r\n isValid = true;\r\n else {\r\n isValid = false;\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"Range 2 is an invalid date range.\\nThere are no Date selections\",\r\n });\r\n return false;\r\n }\r\n } \r\n if (this.state.frDate2 !== null && this.state.frDate2 !== \"\") {\r\n if (this.state.toDate2 !== null && this.state.toDate2 !== \"\")\r\n isValid = true;\r\n else {\r\n isValid = false;\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"Range 2 is an invalid date range.\\nThere are no Date selections\",\r\n });\r\n return false;\r\n }\r\n } \r\n if (this.state.frDate3 !== null && this.state.frDate3 !== \"\") {\r\n if (this.state.toDate3 !== null && this.state.toDate2 !== \"\")\r\n isValid = true;\r\n else {\r\n isValid = false;\r\n this.setState({\r\n show: true,\r\n userMessage:\r\n \"Range 2 is an invalid date range. There are no Date selections\",\r\n });\r\n return false;\r\n }\r\n }\r\n if (isValid === false) {\r\n this.setState({\r\n show: true,\r\n userMessage: \"There are no Date selections\",\r\n });\r\n return false;\r\n }\r\n \r\n //const report = this.state.selectedReportColumns.filter((p) => p.isChecked);\r\n //console.log(report);\r\n //const data = this.state.selectedDataColumns.filter((p) => p.isChecked);\r\n var filterObject = {\r\n frDate0: this.state.frDate0,\r\n frDate1: this.state.frDate1,\r\n frDate2: this.state.frDate2,\r\n frDate3: this.state.frDate3,\r\n toDate0: this.state.toDate0,\r\n toDate1: this.state.toDate1,\r\n toDate2: this.state.toDate2,\r\n toDate3: this.state.toDate3,\r\n reportColumn: report,\r\n dataColumn: data,\r\n isAllCICustomers: this.state.allCICustomers,\r\n ciCustomers: this.state.ciCustomers,\r\n isAllCIVedors: this.state.allCIVendors,\r\n ciVendors: this.state.ciVendors,\r\n ItemEntryList: this.state.ItemEntryList,\r\n ItemEntryType: this.state.ItemEntryType,\r\n fromItemRange: this.state.fromItemRange,\r\n toItemRange: this.state.toItemRange,\r\n ciShipTos: this.state.ciShipTos,\r\n isAllShipTo: this.state.isAllShipTo,\r\n };\r\n //console.log(filterObject);\r\n this.props.showcolumns(filterObject);\r\n };\r\n clearClicked = () => {\r\n this.setState({\r\n frDate0: \"\",\r\n frDate1: \"\",\r\n frDate2: \"\",\r\n frDate3: \"\",\r\n toDate0: \"\",\r\n toDate1: \"\",\r\n toDate2: \"\",\r\n toDate3: \"\",\r\n selectedReportColumns: [],\r\n selectedDataColumns: [],\r\n ItemEntryList: [],\r\n ItemEntryType: \"Distributor Item#\",\r\n fromItemRange: \"\",\r\n toItemRange: \"\",\r\n isAllCICustomers: true,\r\n ciCustomers: [],\r\n isAllCIVedors: true,\r\n ciVendors: [],\r\n show: false,\r\n setShow: false,\r\n });\r\n this.DataColumnsRef.current.clearSelection();\r\n this.ReportColumnsRef.current.clearSelection();\r\n this.TabFilterRef.current.clearSelection();\r\n this.props.clearData();\r\n };\r\n\r\n FilterEntryItemsChange = (data) => {\r\n this.setState({ ItemEntryList: data });\r\n };\r\n\r\n FilterEntryTypeChange = (data) => {\r\n this.setState({ ItemEntryType: data });\r\n };\r\n reportColumnsHandler = (data) => {\r\n this.setState({ selectedReportColumns: data }, () => {});\r\n };\r\n dataColumnsHandler = (data) => {\r\n this.setState({ selectedDataColumns: data }, () => {});\r\n };\r\n onItemFromChange = (data) => {\r\n this.setState({ fromItemRange: data });\r\n };\r\n onItemToChange = (data) => {\r\n this.setState({ toItemRange: data });\r\n };\r\n\r\n onAllCICutomerChange = (data) => {\r\n this.setState({ isAllCICustomers: data });\r\n };\r\n\r\n onCICustomerSelectionChange = (data) => {\r\n this.setState({ ciCustomers: data });\r\n };\r\n\r\n onAllCIVendorChange = (data) => {\r\n this.setState({ isAllCIVedors: data });\r\n };\r\n\r\n onCIVendorSelectionChange = (data) => {\r\n this.setState({ ciVendors: data });\r\n };\r\n onPAShiptosSelectionChange = (data) => {\r\n this.setState({ ciShipTos: data });\r\n };\r\n onAllPAShipTos = (data) => {\r\n this.setState({ isAllShipTo: data });\r\n };\r\n handleClose = () => this.setState({ show: false });\r\n handleShow = () => this.setState({ show: true });\r\n\r\n //date validation\r\n\r\n yearValidation = (year) => {\r\n \r\n \r\n if(year!=\"\")\r\n {\r\n \r\n var currentYear= new Date(year).getFullYear(); \r\n var result =parseInt(currentYear, 10)\r\n \r\n if(result.toString().length!=\"4\")\r\n {\r\n \r\n this.setState({\r\n show: true,\r\n userMessage: \"Invalid year, please correct\",\r\n });\r\n \r\n return false;\r\n }\r\n\r\n \r\n if((result.toString() < 2010) || (result.toString() > 2100))\r\n {\r\n \r\n this.setState({\r\n show: true,\r\n userMessage: \"Year should be in range 2010 to 2100\",\r\n });\r\n \r\n return false;\r\n }\r\n \r\n return true;\r\n \r\n }\r\n }\r\n render() {\r\n return (\r\n \r\n {this.state.show && (\r\n \r\n )}\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    From Date
    \r\n \r\n {\r\n \r\n this.yearValidation(event.target.value);\r\n \r\n }\r\n }\r\n onChange={(event) =>\r\n {\r\n \r\n \r\n //this.yearValidation(event.target.value,event.target.name);\r\n this.setState({ frDate0: event.target.value })\r\n }\r\n }\r\n className=\"form-control form-control-sm filterControls\"\r\n >\r\n  \r\n \r\n {\r\n \r\n \r\n this.yearValidation(event.target.value);\r\n \r\n }\r\n }\r\n onChange={(event) =>\r\n {\r\n \r\n this.setState({ frDate1: event.target.value })\r\n }\r\n }\r\n >\r\n  \r\n \r\n {\r\n \r\n \r\n this.yearValidation(event.target.value);\r\n \r\n }\r\n }\r\n onChange={(event) =>\r\n {\r\n \r\n this.setState({ frDate2: event.target.value })\r\n }\r\n }\r\n >\r\n  \r\n \r\n {\r\n \r\n \r\n this.yearValidation(event.target.value);\r\n \r\n }\r\n }\r\n onChange={(event) =>\r\n {\r\n \r\n this.setState({ frDate3: event.target.value })\r\n }\r\n }\r\n >\r\n
    \r\n
    \r\n \r\n
    \r\n
    To Date
    \r\n \r\n {\r\n \r\n \r\n this.yearValidation(event.target.value);\r\n \r\n }\r\n }\r\n onChange={(event) =>\r\n {\r\n \r\n this.setState({ toDate0: event.target.value })\r\n }\r\n }\r\n >\r\n  \r\n \r\n {\r\n \r\n \r\n this.yearValidation(event.target.value);\r\n \r\n }\r\n }\r\n onChange={(event) =>\r\n {\r\n\r\n \r\n this.setState({ toDate1: event.target.value })\r\n }\r\n }\r\n >\r\n  \r\n \r\n {\r\n \r\n \r\n this.yearValidation(event.target.value);\r\n \r\n }\r\n }\r\n onChange={(event) =>\r\n {\r\n\r\n \r\n this.setState({ toDate2: event.target.value })\r\n }\r\n }\r\n >\r\n  \r\n \r\n {\r\n \r\n \r\n this.yearValidation(event.target.value);\r\n \r\n }\r\n }\r\n onChange={(event) =>\r\n {\r\n\r\n \r\n this.setState({ toDate3: event.target.value })\r\n }\r\n }\r\n >\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Filters:\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n Run Report\r\n \r\n\r\n
    \r\n \r\n Show Columns\r\n \r\n
    \r\n
    \r\n \r\n Clear\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default PAFilter;\r\n","import React, { Component } from \"react\";\r\nimport appConstants from \"../../_services/applicationConstant\";\r\nimport { styles } from \"../../assets/css/bunzlUI.css\";\r\nimport PAFilter from \"./PAFilter\";\r\nimport { AgGridReact } from \"ag-grid-react\";\r\nimport \"ag-grid-community/dist/styles/ag-grid.css\";\r\nimport \"ag-grid-community/dist/styles/ag-theme-alpine.css\";\r\nimport {\r\n getPurchaseAnalysis,\r\n getFilteredData,\r\n} from \"../../_services/purchasingAnalysis.service\";\r\nimport { CSVLink } from \"react-csv\";\r\nimport downloadbutton from \"../../assets/images/downloadbutton.gif\";\r\nimport ESSModal from \"../../components/ESSModal.jsx\";\r\nimport ESSProgressBar from \"../../components/ESSProgressBar\";\r\n\r\nclass PurchasingAnalysis extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n show: false,\r\n userMessage: \"\",\r\n headers:[],\r\n companyNumber: localStorage.getItem(\"companyNumber\"),\r\n customerNumber: localStorage.getItem(\"customerNumber\"),\r\n jwtToken: localStorage.getItem(\"id_token\"),\r\n defaultColDef: { resizable: true, sortable: true },\r\n searchClicked: false,\r\n colHeaders: [\r\n {\r\n headerName: \"Company\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"codeCompany\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Company Name\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"descCompany\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Customer\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"codeCustomer\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Customer Name\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"descCustomer\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Ship to\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"codeShip\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Department\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"codeDept\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Item Number\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"codeItem\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Description\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"descItem\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Case Pack\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"desc2Item\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Customer Part#\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"codeCustPart\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Vendor Part#\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"codeVPart\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Vendor Number\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"codeVendor\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Vendor Name\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"descVendor\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Invoice\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"codeInvoice\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Customer PO#\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"descInvoice\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Invoice Date\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"desc2Invoice\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Current Price\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n valueFormatter: currencyFormatter,\r\n comparator: compare,\r\n field: \"codePrice\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Purchase {0}\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n valueFormatter: currencyFormatter,\r\n comparator: compare,\r\n field: \"range0SLS\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Purchase {1}\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n valueFormatter: currencyFormatter,\r\n comparator: compare,\r\n field: \"range1SLS\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Purchase {2}\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n valueFormatter: currencyFormatter,\r\n comparator: compare,\r\n field: \"range2SLS\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Purchase {3}\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n valueFormatter: currencyFormatter,\r\n comparator: compare,\r\n field: \"range3SLS\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Quantity {0}\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"range0QTY\",\r\n comparator: compare,\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Quantity {1}\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"range1QTY\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Quantity {2}\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"range2QTY\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Quantity {3}\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n field: \"range3QTY\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Tax {0}\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n valueFormatter: currencyFormatter,\r\n comparator: compare,\r\n field: \"range0TAX\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Tax {1}\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n valueFormatter: currencyFormatter,\r\n comparator: compare,\r\n field: \"range1TAX\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Tax {2}\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n valueFormatter: currencyFormatter,\r\n comparator: compare,\r\n field: \"range2TAX\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Tax {3}\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n valueFormatter: currencyFormatter,\r\n comparator: compare,\r\n field: \"range3TAX\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Add {0}\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n valueFormatter: currencyFormatter,\r\n comparator: compare,\r\n field: \"range0ADD\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Add {1}\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n valueFormatter: currencyFormatter,\r\n comparator: compare,\r\n field: \"range1ADD\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Add {2}\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n valueFormatter: currencyFormatter,\r\n comparator: compare,\r\n field: \"range2ADD\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n {\r\n headerName: \"Add {3}\",\r\n hide: true,\r\n type: \"rightAligned\",\r\n cellStyle: {\r\n textAlign: \"right\",\r\n borderRight: \"0.1px solid lightgray\",\r\n },\r\n valueFormatter: currencyFormatter,\r\n comparator: compare,\r\n field: \"range3ADD\",\r\n width: 142,\r\n headerClass: `${\r\n appConstants.isR3App ? \"gridheaderR3\" : \"gridheader\"\r\n }`,\r\n },\r\n ],\r\n rowData: [],\r\n exportList: [],\r\n rowClassRules: {\r\n \"total-row\": function (params) {\r\n var rowVal = params.data.Name;\r\n return rowVal === \"Total\";\r\n },\r\n },\r\n };\r\n }\r\n\r\n doSearch = (filterObject) => {\r\n this.setState({searchClicked:true, rowData:[]});\r\n var itemEtry =\"\";\r\n const dataEntr = filterObject['ItemEntryList']\r\n .map(filteredData => (\r\n itemEtry = itemEtry+ filteredData.itemvalue \r\n ));\r\n \r\n var searchObject = {\r\n \r\n frDate0: filterObject.frDate0,\r\n frDate1: filterObject.frDate1,\r\n frDate2: filterObject.frDate2,\r\n frDate3: filterObject.frDate3,\r\n toDate0: filterObject.toDate0,\r\n toDate1: filterObject.toDate1,\r\n toDate2: filterObject.toDate2,\r\n toDate3: filterObject.toDate3,\r\n dimCo:\r\n filterObject[\"reportColumn\"].filter(\r\n (p) => p.value === \"Company\" && p.isChecked === true\r\n ).length || 0,\r\n dimCst:\r\n filterObject[\"reportColumn\"].filter(\r\n (p) => p.value === \"Customer\" && p.isChecked === true\r\n ).length || 0,\r\n dimShip:\r\n filterObject[\"reportColumn\"].filter(\r\n (p) => p.value === \"Ship To\" && p.isChecked === true\r\n ).length || 0,\r\n dimDept:\r\n filterObject[\"reportColumn\"].filter(\r\n (p) => p.value === \"Department\" && p.isChecked === true\r\n ).length || 0,\r\n dimItem:\r\n filterObject[\"reportColumn\"].filter(\r\n (p) => p.value === \"Item Number\" && p.isChecked === true\r\n ).length || 0,\r\n dimCustPart:\r\n filterObject[\"reportColumn\"].filter(\r\n (p) => p.value === \"Customer Part#\" && p.isChecked === true\r\n ).length || 0,\r\n dimVPart:\r\n filterObject[\"reportColumn\"].filter(\r\n (p) => p.value === \"Vendor Part\" && p.isChecked === true\r\n ).length || 0,\r\n dimVend:\r\n filterObject[\"reportColumn\"].filter(\r\n (p) => p.value === \"Vendor Number\" && p.isChecked === true\r\n ).length || 0,\r\n dimInvoice:\r\n filterObject[\"reportColumn\"].filter(\r\n (p) => p.value === \"Invoice\" && p.isChecked === true\r\n ).length || 0,\r\n dimCurPrice:\r\n filterObject[\"reportColumn\"].filter(\r\n (p) => p.value === \"Current Price\" && p.isChecked === true\r\n ).length || 0,\r\n\r\n meaSLS:\r\n filterObject[\"dataColumn\"].filter(\r\n (p) => p.value === \"Purchases\" && p.isChecked === true\r\n ).length || 0,\r\n meaQTY:\r\n filterObject[\"dataColumn\"].filter(\r\n (p) => p.value === \"Quantity\" && p.isChecked === true\r\n ).length || 0,\r\n meaADD:\r\n filterObject[\"dataColumn\"].filter(\r\n (p) => p.value === \"Alloc Add-ons\" && p.isChecked === true\r\n ).length || 0,\r\n meaTAX:\r\n filterObject[\"dataColumn\"].filter(\r\n (p) => p.value === \"Alloc tax\" && p.isChecked === true\r\n ).length || 0,\r\n\r\n frItem:\r\n filterObject[\"fromItemRange\"] === \"\"\r\n ? \"\"\r\n : filterObject[\"fromItemRange\"],\r\n toItem:\r\n filterObject[\"toItemRange\"] === \"\" ? \"\" : filterObject[\"toItemRange\"],\r\n\r\n cPType:\r\n filterObject[\"ItemEntryType\"].trim() === \"Distributor Item#\"\r\n ? \"I\"\r\n : filterObject[\"ItemEntryType\"].trim() === \"Customer Part#\"\r\n ? \"C\"\r\n :\"I\",\r\n custList:\r\n filterObject[\"ciCustomers\"].length > 0\r\n ? filterObject[\"ciCustomers\"].join(\"\")\r\n : filterObject[\"isAllCICustomers\"].join(\"\"),\r\n vendList:\r\n filterObject[\"ciVendors\"].length > 0\r\n ? filterObject[\"ciVendors\"].join(\"\")\r\n : \"\",\r\n shipList:\r\n filterObject[\"ciShipTos\"].length > 0\r\n ? filterObject[\"ciShipTos\"].join(\"\")\r\n : \"\",\r\n itemList: itemEtry,\r\n };\r\n getPurchaseAnalysis(searchObject).then((data) => {\r\n this.setState({searchClicked:false});\r\n\r\n if(data.length === 0){\r\n this.setState({\r\n show: true,\r\n userMessage: \"No sales match the criteria.\",\r\n });\r\n }\r\n this.setState({ rowData: data || [] });\r\n this.setState({\r\n exportList: getFilteredData(\r\n data,\r\n this.showFilterExportColumn(searchObject)\r\n ),\r\n headers: this.showFilterExportColumnHeaders(searchObject)\r\n });\r\n }).catch(()=>{\r\n this.setState({searchClicked:false});\r\n this.setState({\r\n show: true,\r\n userMessage: \"Error while fetching records.\\nNo sales match the criteria.\",\r\n });\r\n })\r\n ;\r\n\r\n this.showGrid(searchObject);\r\n };\r\n showcolumns = (filterObject) => {\r\n var searchObject = {\r\n frDate0: filterObject.frDate0,\r\n frDate1: filterObject.frDate1,\r\n frDate2: filterObject.frDate2,\r\n frDate3: filterObject.frDate3,\r\n toDate0: filterObject.toDate0,\r\n toDate1: filterObject.toDate1,\r\n toDate2: filterObject.toDate2,\r\n toDate3: filterObject.toDate3,\r\n dimCo:\r\n filterObject[\"reportColumn\"].filter(\r\n (p) => p.value === \"Company\" && p.isChecked === true\r\n ).length || 0,\r\n dimCst:\r\n filterObject[\"reportColumn\"].filter(\r\n (p) => p.value === \"Customer\" && p.isChecked === true\r\n ).length || 0,\r\n dimShip:\r\n filterObject[\"reportColumn\"].filter(\r\n (p) => p.value === \"Ship To\" && p.isChecked === true\r\n ).length || 0,\r\n dimDept:\r\n filterObject[\"reportColumn\"].filter(\r\n (p) => p.value === \"Department\" && p.isChecked === true\r\n ).length || 0,\r\n dimItem:\r\n filterObject[\"reportColumn\"].filter(\r\n (p) => p.value === \"Item Number\" && p.isChecked === true\r\n ).length || 0,\r\n dimCustPart:\r\n filterObject[\"reportColumn\"].filter(\r\n (p) => p.value === \"Customer Part#\" && p.isChecked === true\r\n ).length || 0,\r\n dimVPart:\r\n filterObject[\"reportColumn\"].filter(\r\n (p) => p.value === \"Vendor Part\" && p.isChecked === true\r\n ).length || 0,\r\n dimVend:\r\n filterObject[\"reportColumn\"].filter(\r\n (p) => p.value === \"Vendor Number\" && p.isChecked === true\r\n ).length || 0,\r\n dimInvoice:\r\n filterObject[\"reportColumn\"].filter(\r\n (p) => p.value === \"Invoice\" && p.isChecked === true\r\n ).length || 0,\r\n dimCurPrice:\r\n filterObject[\"reportColumn\"].filter(\r\n (p) => p.value === \"Current Price\" && p.isChecked === true\r\n ).length || 0,\r\n\r\n meaSLS:\r\n filterObject[\"dataColumn\"].filter(\r\n (p) => p.value === \"Purchases\" && p.isChecked === true\r\n ).length || 0,\r\n meaQTY:\r\n filterObject[\"dataColumn\"].filter(\r\n (p) => p.value === \"Quantity\" && p.isChecked === true\r\n ).length || 0,\r\n meaADD:\r\n filterObject[\"dataColumn\"].filter(\r\n (p) => p.value === \"Alloc Add-ons\" && p.isChecked === true\r\n ).length || 0,\r\n meaTAX:\r\n filterObject[\"dataColumn\"].filter(\r\n (p) => p.value === \"Alloc tax\" && p.isChecked === true\r\n ).length || 0,\r\n\r\n \r\n \r\n };\r\n\r\n this.showGrid(searchObject);\r\n };\r\n\r\n showGrid = (searchObject) => {\r\n this.gridColumnApi.setColumnVisible(\r\n \"codeCompany\",\r\n searchObject[\"dimCo\"] === 1 ? true : false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"descCompany\",\r\n searchObject[\"dimCo\"] === 1 ? true : false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"codeCustomer\",\r\n searchObject[\"dimCst\"] === 1 ? true : false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"descCustomer\",\r\n searchObject[\"dimCst\"] === 1 ? true : false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"codeShip\",\r\n searchObject[\"dimShip\"] === 1 ? true : false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"codeDept\",\r\n searchObject[\"dimDept\"] === 1 ? true : false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"codeItem\",\r\n searchObject[\"dimItem\"] === 1 ? true : false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"descItem\",\r\n searchObject[\"dimItem\"] === 1 ? true : false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"desc2Item\",\r\n searchObject[\"dimItem\"] === 1 ? true : false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"codeCustPart\",\r\n searchObject[\"dimCustPart\"] === 1 ? true : false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"codeVPart\",\r\n searchObject[\"dimVPart\"] === 1 ? true : false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"codeVendor\",\r\n searchObject[\"dimVend\"] === 1 ? true : false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"descVendor\",\r\n searchObject[\"dimVend\"] === 1 ? true : false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"codeInvoice\",\r\n searchObject[\"dimInvoice\"] === 1 ? true : false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"desc2Invoice\",\r\n searchObject[\"dimInvoice\"] === 1 ? true : false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"descInvoice\",\r\n searchObject[\"dimInvoice\"] === 1 ? true : false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"codePrice\",\r\n searchObject[\"dimCurPrice\"] === 1 ? true : false\r\n );\r\n this.gridApi.getColumnDef(\"range0SLS\").headerName = \"Purchases \"+ this.dateConverter(searchObject[\"frDate0\"]) + \" - \" + this.dateConverter(searchObject[\"toDate0\"]);\r\n\r\n this.gridColumnApi.setColumnVisible(\r\n \"range0SLS\",\r\n searchObject[\"meaSLS\"] === 1 &&\r\n searchObject[\"frDate0\"] &&\r\n searchObject[\"toDate0\"]\r\n ? true\r\n : false\r\n );\r\n this.gridApi.getColumnDef(\"range1SLS\").headerName = \"Purchases \"+ this.dateConverter(searchObject[\"frDate1\"]) + \" - \" + this.dateConverter(searchObject[\"toDate1\"]) ;\r\n this.gridColumnApi.setColumnVisible(\r\n \"range1SLS\",\r\n searchObject[\"meaSLS\"] === 1 &&\r\n searchObject[\"frDate1\"] &&\r\n searchObject[\"toDate1\"]\r\n ? true\r\n : false\r\n );\r\n this.gridApi.getColumnDef(\"range2SLS\").headerName = \"Purchases \"+ this.dateConverter(searchObject[\"frDate2\"]) + \" - \" + this.dateConverter(searchObject[\"toDate2\"]) ;\r\n this.gridColumnApi.setColumnVisible(\r\n \"range2SLS\",\r\n searchObject[\"meaSLS\"] === 1 &&\r\n searchObject[\"frDate2\"] &&\r\n searchObject[\"toDate2\"]\r\n ? true\r\n : false\r\n );\r\n this.gridApi.getColumnDef(\"range3SLS\").headerName = \"Purchases \"+ this.dateConverter(searchObject[\"frDate3\"]) + \" - \" + this.dateConverter(searchObject[\"toDate3\"]);\r\n this.gridColumnApi.setColumnVisible(\r\n \"range3SLS\",\r\n searchObject[\"meaSLS\"] === 1 &&\r\n searchObject[\"frDate3\"] &&\r\n searchObject[\"toDate3\"]\r\n ? true\r\n : false\r\n );\r\n\r\n this.gridApi.getColumnDef(\"range0QTY\").headerName = \"Quantity \"+ this.dateConverter(searchObject[\"frDate0\"]) + \" - \" + this.dateConverter(searchObject[\"toDate0\"] );\r\n this.gridColumnApi.setColumnVisible(\r\n \"range0QTY\",\r\n searchObject[\"meaQTY\"] === 1 &&\r\n searchObject[\"frDate0\"] &&\r\n searchObject[\"toDate0\"]\r\n ? true\r\n : false\r\n );\r\n this.gridApi.getColumnDef(\"range1QTY\").headerName = \"Quantity \"+ this.dateConverter(searchObject[\"frDate1\"]) + \" - \" + this.dateConverter(searchObject[\"toDate1\"]) ;\r\n this.gridColumnApi.setColumnVisible(\r\n \"range1QTY\",\r\n searchObject[\"meaQTY\"] === 1 &&\r\n searchObject[\"frDate1\"] &&\r\n searchObject[\"toDate1\"]\r\n ? true\r\n : false\r\n );\r\n this.gridApi.getColumnDef(\"range2QTY\").headerName = \"Quantity \"+ this.dateConverter(searchObject[\"frDate2\"]) + \" - \" + this.dateConverter(searchObject[\"toDate2\"]) ;\r\n\r\n this.gridColumnApi.setColumnVisible(\r\n \"range2QTY\",\r\n searchObject[\"meaQTY\"] === 1 &&\r\n searchObject[\"frDate2\"] &&\r\n searchObject[\"toDate2\"]\r\n ? true\r\n : false\r\n );\r\n this.gridApi.getColumnDef(\"range3QTY\").headerName = \"Quantity \"+ this.dateConverter(searchObject[\"frDate3\"]) + \" - \" + this.dateConverter(searchObject[\"toDate3\"]);\r\n\r\n this.gridColumnApi.setColumnVisible(\r\n \"range3QTY\",\r\n searchObject[\"meaQTY\"] === 1 &&\r\n searchObject[\"frDate3\"] &&\r\n searchObject[\"toDate3\"]\r\n ? true\r\n : false\r\n );\r\n\r\n this.gridApi.getColumnDef(\"range0TAX\").headerName = \"Tax \"+ this.dateConverter(searchObject[\"frDate0\"]) + \" - \" + this.dateConverter(searchObject[\"toDate0\"]);\r\n\r\n this.gridColumnApi.setColumnVisible(\r\n \"range0TAX\",\r\n searchObject[\"meaTAX\"] === 1 &&\r\n searchObject[\"frDate0\"] &&\r\n searchObject[\"toDate0\"]\r\n ? true\r\n : false\r\n );\r\n this.gridApi.getColumnDef(\"range1TAX\").headerName = \"Tax \"+ this.dateConverter(searchObject[\"frDate1\"]) + \" - \" + this.dateConverter(searchObject[\"toDate1\"]) ;\r\n this.gridColumnApi.setColumnVisible(\r\n \"range1TAX\",\r\n searchObject[\"meaTAX\"] === 1 &&\r\n searchObject[\"frDate1\"] &&\r\n searchObject[\"toDate1\"]\r\n ? true\r\n : false\r\n );\r\n this.gridApi.getColumnDef(\"range2TAX\").headerName = \"Tax \"+ this.dateConverter(searchObject[\"frDate2\"]) + \" - \" + this.dateConverter(searchObject[\"toDate2\"]) ;\r\n this.gridColumnApi.setColumnVisible(\r\n \"range2TAX\",\r\n searchObject[\"meaTAX\"] === 1 &&\r\n searchObject[\"frDate2\"] &&\r\n searchObject[\"toDate2\"]\r\n ? true\r\n : false\r\n );\r\n this.gridApi.getColumnDef(\"range3TAX\").headerName = \"Tax \"+ this.dateConverter(searchObject[\"frDate3\"]) + \" - \" + this.dateConverter(searchObject[\"toDate3\"]) ;\r\n\r\n this.gridColumnApi.setColumnVisible(\r\n \"range3TAX\",\r\n searchObject[\"meaTAX\"] === 1 &&\r\n searchObject[\"frDate3\"] &&\r\n searchObject[\"toDate3\"]\r\n ? true\r\n : false\r\n );\r\n\r\n this.gridApi.getColumnDef(\"range0ADD\").headerName = \"Add \"+ this.dateConverter(searchObject[\"frDate0\"]) + \" - \" + this.dateConverter(searchObject[\"toDate0\"]);\r\n this.gridColumnApi.setColumnVisible(\r\n \"range0ADD\",\r\n searchObject[\"meaADD\"] === 1 &&\r\n searchObject[\"frDate0\"] &&\r\n searchObject[\"toDate0\"]\r\n ? true\r\n : false\r\n );\r\n this.gridApi.getColumnDef(\"range1ADD\").headerName = \"Add \"+ this.dateConverter(searchObject[\"frDate1\"]) + \" - \" + this.dateConverter(searchObject[\"toDate1\"] );\r\n this.gridColumnApi.setColumnVisible(\r\n \"range1ADD\",\r\n searchObject[\"meaADD\"] === 1 &&\r\n searchObject[\"frDate1\"] &&\r\n searchObject[\"toDate1\"]\r\n ? true\r\n : false\r\n );\r\n this.gridApi.getColumnDef(\"range2ADD\").headerName = \"Add \"+ this.dateConverter(searchObject[\"frDate2\"]) + \" - \" + this.dateConverter(searchObject[\"toDate2\"]) ;\r\n this.gridColumnApi.setColumnVisible(\r\n \"range2ADD\",\r\n searchObject[\"meaADD\"] === 1 &&\r\n searchObject[\"frDate2\"] &&\r\n searchObject[\"toDate2\"]\r\n ? true\r\n : false\r\n );\r\n this.gridApi.getColumnDef(\"range3ADD\").headerName = \"Add \"+ this.dateConverter(searchObject[\"frDate3\"]) + \" - \" + this.dateConverter(searchObject[\"toDate3\"]) ;\r\n this.gridColumnApi.setColumnVisible(\r\n \"range3ADD\",\r\n searchObject[\"meaADD\"] === 1 &&\r\n searchObject[\"frDate3\"] &&\r\n searchObject[\"toDate3\"]\r\n ? true\r\n : false\r\n );\r\n this.gridApi.refreshHeader();\r\n };\r\n\r\n showFilterExportColumn(searchObject) {\r\n let filterPropList = [];\r\n\r\n if (searchObject.dimCustPart === 1) {\r\n filterPropList.push(\"CustomerPartNumber\");\r\n }\r\n if (searchObject.dimCst === 1) {\r\n filterPropList.push(\"CustomerCode\");\r\n filterPropList.push(\"CustomerDescription\");\r\n }\r\n if (searchObject.dimItem === 1) {\r\n filterPropList.push(\"ItemCode\");\r\n filterPropList.push(\"Item\");\r\n filterPropList.push(\"ItemDescription\");\r\n }\r\n if (searchObject.dimCo === 1) {\r\n filterPropList.push(\"ComapanyCode\");\r\n filterPropList.push(\"CompanyDescription\"); \r\n }\r\n if (searchObject.dimDept === 1) {\r\n filterPropList.push(\"DepartmentCode\");\r\n } \r\n if (searchObject.dimVPart === 1) {\r\n filterPropList.push(\"VendorPartNumber\");\r\n }\r\n if (searchObject.dimVend === 1) {\r\n filterPropList.push(\"VendorCode\");\r\n filterPropList.push(\"VendorDescription\");\r\n } \r\n if(searchObject.dimInvoice === 1){\r\n filterPropList.push(\"Invoice\");\r\n filterPropList.push(\"InvoiceDescription\"); \r\n filterPropList.push(\"CutomerPO\"); \r\n\r\n }\r\n if (searchObject.dimCurPrice === 1) {\r\n filterPropList.push(\"CurrentPrice\");\r\n }\r\n if(searchObject.dimShip === 1){\r\n filterPropList.push(\"ShipTo\"); \r\n }\r\n if (searchObject.meaSLS === 1) {\r\n if(searchObject.frDate0 !== null && searchObject.frDate0 !== \"\" )\r\n filterPropList.push(\"Purchases_0\");\r\n if(searchObject.frDate1 !== null && searchObject.frDate1 !== \"\" )\r\n filterPropList.push(\"Purchases_1\");\r\n if(searchObject.frDate2 !== null && searchObject.frDate2 !== \"\" )\r\n filterPropList.push(\"Purchases_2\");\r\n if(searchObject.frDate3 !== null && searchObject.frDate3 !== \"\" )\r\n filterPropList.push(\"Purchases_2\");\r\n }\r\n if (searchObject.meaQTY === 1) {\r\n if(searchObject.frDate0 !== null && searchObject.frDate0 !== \"\" )\r\n filterPropList.push(\"Quantity_0\");\r\n if(searchObject.frDate1 !== null && searchObject.frDate1 !== \"\" )\r\n filterPropList.push(\"Quantity_1\");\r\n if(searchObject.frDate2 !== null && searchObject.frDate2 !== \"\" )\r\n filterPropList.push(\"Quantity_2\");\r\n if(searchObject.frDate3 !== null && searchObject.frDate3 !== \"\" )\r\n filterPropList.push(\"Quantity_3\");\r\n }\r\n if (searchObject.meaADD === 1) {\r\n if(searchObject.frDate0 !== null && searchObject.frDate0 !== \"\" )\r\n filterPropList.push(\"AddOns_0\");\r\n if(searchObject.frDate1 !== null && searchObject.frDate1 !== \"\" )\r\n filterPropList.push(\"AddOns_1\");\r\n if(searchObject.frDate2 !== null && searchObject.frDate2 !== \"\" )\r\n filterPropList.push(\"AddOns_2\");\r\n if(searchObject.frDate3 !== null && searchObject.frDate3 !== \"\" )\r\n filterPropList.push(\"AddOns_3\");\r\n }\r\n if (searchObject.meaTAX === 1) {\r\n if(searchObject.frDate0 !== null && searchObject.frDate0 !== \"\" )\r\n filterPropList.push(\"AllocTax_0\");\r\n if(searchObject.frDate1 !== null && searchObject.frDate1 !== \"\" )\r\n filterPropList.push(\"AllocTax_1\");\r\n if(searchObject.frDate2 !== null && searchObject.frDate2 !== \"\" )\r\n filterPropList.push(\"AllocTax_2\");\r\n if(searchObject.frDate3 !== null && searchObject.frDate3 !== \"\" )\r\n filterPropList.push(\"AllocTax_3\");\r\n }\r\n\r\n return filterPropList;\r\n }\r\n\r\n showFilterExportColumnHeaders(searchObject) {\r\n let filterPropList = [];\r\n \r\n if (searchObject.dimCo === 1) {\r\n filterPropList.push({ label: 'Company', key: 'ComapanyCode' });\r\n filterPropList.push({ label: 'Company Description', key: 'CompanyDescription' }); \r\n }\r\n if (searchObject.dimCst === 1) {\r\n filterPropList.push({ label: 'Customer', key: 'CustomerCode' });\r\n filterPropList.push({ label: 'Customer Description', key: 'CustomerDescription' });\r\n }\r\n if(searchObject.dimShip === 1){\r\n filterPropList.push({ label: 'Ship To', key: 'ShipTo' }); \r\n }\r\n if (searchObject.dimDept === 1) {\r\n filterPropList.push({ label: 'Department', key: 'DepartmentCode' }); \r\n } \r\n if (searchObject.dimItem === 1) {\r\n filterPropList.push({ label: 'Item Number', key: 'ItemCode' });\r\n filterPropList.push({ label: 'Description', key: 'Item' });\r\n filterPropList.push({ label: 'Case/Pack', key: 'ItemDescription' });\r\n }\r\n \r\n if (searchObject.dimCustPart === 1) {\r\n filterPropList.push({ label: 'Customer Part#', key: 'CustomerPartNumber' });\r\n }\r\n \r\n if (searchObject.dimVPart === 1) {\r\n filterPropList.push({ label: 'Vendor Part#', key: 'VendorPartNumber' }); \r\n }\r\n if (searchObject.dimVend === 1) {\r\n filterPropList.push({ label: 'Vendor Number', key: 'VendorCode' }); \r\n filterPropList.push({ label: 'Vendor Name', key: 'VendorDescription' }); \r\n } \r\n if(searchObject.dimInvoice === 1){\r\n filterPropList.push({ label: 'Invoice', key: 'Invoice' }); \r\n filterPropList.push({ label: 'Customer PO#', key: 'CutomerPO' }); \r\n filterPropList.push({ label: 'Invoice Date', key: 'InvoiceDescription' }); \r\n }\r\n if (searchObject.dimCurPrice === 1) {\r\n filterPropList.push({ label: 'Current Price', key: 'CurrentPrice' }); \r\n }\r\n \r\n if (searchObject.meaSLS === 1) {\r\n if(searchObject.frDate0 !== null && searchObject.frDate0 !== \"\" )\r\n filterPropList.push({ label: 'Purchases '+searchObject.frDate0 +\" to \"+searchObject.toDate0, key: 'Purchases_0' }); \r\n if(searchObject.frDate1 !== null && searchObject.frDate1 !== \"\" )\r\n filterPropList.push({ label: 'Purchases '+searchObject.frDate1 +\" to \"+searchObject.toDate1, key: 'Purchases_1' }); \r\n if(searchObject.frDate2 !== null && searchObject.frDate2 !== \"\" )\r\n filterPropList.push({ label: 'Purchases '+searchObject.frDate2 +\" to \"+searchObject.toDate2, key: 'Purchases_2' }); \r\n if(searchObject.frDate3 !== null && searchObject.frDate3 !== \"\" )\r\n filterPropList.push({ label: 'Purchases '+searchObject.frDate3 +\" to \"+searchObject.toDate3, key: 'Purchases_3' }); \r\n\r\n }\r\n if (searchObject.meaQTY === 1) {\r\n if(searchObject.frDate0 !== null && searchObject.frDate0 !== \"\" )\r\n filterPropList.push({ label: 'Quantity '+searchObject.frDate0 +\" to \"+searchObject.toDate0, key: 'Quantity_0' }); \r\n\r\n if(searchObject.frDate1 !== null && searchObject.frDate1 !== \"\" )\r\n filterPropList.push({ label: 'Quantity '+searchObject.frDate1 +\" to \"+searchObject.toDate1, key: 'Quantity_1' }); \r\n\r\n if(searchObject.frDate2 !== null && searchObject.frDate2 !== \"\" )\r\n filterPropList.push({ label: 'Quantity '+searchObject.frDate2 +\" to \"+searchObject.toDate2, key: 'Quantity_2' }); \r\n\r\n if(searchObject.frDate3 !== null && searchObject.frDate3 !== \"\" )\r\n filterPropList.push({ label: 'Quantity '+searchObject.frDate3 +\" to \"+searchObject.toDate3, key: 'Quantity_3' }); \r\n\r\n }\r\n if (searchObject.meaADD === 1) {\r\n if(searchObject.frDate0 !== null && searchObject.frDate0 !== \"\" )\r\n filterPropList.push({ label: 'Add '+searchObject.frDate0 +\" to \"+searchObject.toDate0, key: 'AddOns_0' }); \r\n\r\n if(searchObject.frDate1 !== null && searchObject.frDate1 !== \"\" )\r\n filterPropList.push({ label: 'Add '+searchObject.frDate1 +\" to \"+searchObject.toDate1, key: 'AddOns_1' }); \r\n\r\n if(searchObject.frDate2 !== null && searchObject.frDate2 !== \"\" )\r\n filterPropList.push({ label: 'Add '+searchObject.frDate2 +\" to \"+searchObject.toDate2, key: 'AddOns_2' }); \r\n\r\n if(searchObject.frDate3 !== null && searchObject.frDate3 !== \"\" )\r\n filterPropList.push({ label: 'Add '+searchObject.frDate3 +\" to \"+searchObject.toDate3, key: 'AddOns_3' }); \r\n\r\n }\r\n if (searchObject.meaTAX === 1) {\r\n if(searchObject.frDate0 !== null && searchObject.frDate0 !== \"\" )\r\n filterPropList.push({ label: 'Tax '+searchObject.frDate0 +\" to \"+searchObject.toDate0, key: 'AllocTax_0' }); \r\n\r\n if(searchObject.frDate1 !== null && searchObject.frDate1 !== \"\" )\r\n filterPropList.push({ label: 'Tax '+searchObject.frDate1 +\" to \"+searchObject.toDate1, key: 'AllocTax_1' }); \r\n\r\n if(searchObject.frDate2 !== null && searchObject.frDate2 !== \"\" )\r\n filterPropList.push({ label: 'Tax '+searchObject.frDate2 +\" to \"+searchObject.toDate2, key: 'AllocTax_2' }); \r\n\r\n if(searchObject.frDate3 !== null && searchObject.frDate3 !== \"\" )\r\n filterPropList.push({ label: 'Tax '+searchObject.frDate3 +\" to \"+searchObject.toDate3, key: 'AllocTax_3' }); \r\n\r\n }\r\n\r\n return filterPropList;\r\n }\r\n\r\n\r\n clearData =() =>{\r\n this.setState({rowData:[]});\r\n this.hideGridColumns();\r\n }\r\n hideGridColumns =() =>{\r\n \r\n this.gridColumnApi.setColumnVisible(\r\n \"codeCompany\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"descCompany\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"codeCustomer\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"descCustomer\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"codeShip\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"codeDept\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"codeItem\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"descItem\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"desc2Item\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"codeCustPart\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"codeVPart\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"codeVendor\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"descVendor\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"codeInvoice\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"desc2Invoice\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"descInvoice\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"codePrice\",\r\n false\r\n );\r\n\r\n this.gridColumnApi.setColumnVisible(\r\n \"range0SLS\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"range1SLS\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"range2SLS\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"range3SLS\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"range0QTY\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"range1QTY\",\r\n false\r\n );\r\n\r\n this.gridColumnApi.setColumnVisible(\r\n \"range2QTY\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"range3QTY\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"range0TAX\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"range1TAX\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"range2TAX\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"range3TAX\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"range0ADD\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"range1ADD\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"range2ADD\",\r\n false\r\n );\r\n this.gridColumnApi.setColumnVisible(\r\n \"range3ADD\",\r\n false\r\n );\r\n }\r\n onGridReady = (params) => {\r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi;\r\n };\r\n handleClose = () => this.setState({ show: false });\r\n\r\n dateConverter =(dateValue) =>{\r\n if(dateValue!=='') { \r\n var from=dateValue.split(\"-\") \r\n var fromDate=from[1] +\"/\"+ from[2] +\"/\"+ from[0] ;\r\n return fromDate;\r\n }\r\n else\r\n return '';\r\n }\r\n\r\n render() {\r\n const renderCIGrid = () => {\r\n return (\r\n \r\n {this.state.searchClicked?\r\n \r\n :''}\r\n \r\n \r\n );\r\n };\r\n return (\r\n
    \r\n \r\n {this.state.show && (\r\n \r\n )}\r\n \r\n
    Purchasing Analysis
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {this.state.exportList.length > 0 ? (\r\n \r\n \r\n \r\n ) : undefined}\r\n
    \r\n
    \r\n
    \r\n \r\n
    {renderCIGrid()}
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nfunction currencyFormatter(params) {\r\n if(params.value !== undefined &¶ms.value !== null && params.value !== \"\"){\r\n if (parseFloat(params.value) < 0) return \"-$\" + (parseFloat(params.value).toFixed(2) * -1).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n else return \"$\" + (parseFloat(params.value).toFixed(2)).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n else\r\n return \"\";\r\n}\r\nfunction compare (number1, number2) {\r\n if (number1 === null && number2 === null) {\r\n return 0;\r\n }\r\n if(isNaN(number1)){ return -1}\r\n if(isNaN(number2)){ return 1}\r\n if (number1 === null) {\r\n return -1;\r\n }\r\n if (number2 === null) {\r\n return 1;\r\n }\r\n return number1 - number2;}\r\nexport default PurchasingAnalysis;\r\n","import React, { Component } from \"react\";\r\nimport { updateChangePassword } from \"../_services/changePassword.service\";\r\n\r\nclass ChangePassword extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n oldPassword: \"\",\r\n newPassword: \"\",\r\n confirmPassword: \"\",\r\n };\r\n }\r\n\r\n searchClicked = () => {\r\n updateChangePassword(\r\n this.state.oldPassword.trim(),\r\n this.state.newPassword.trim()\r\n ).then((_data) => {\r\n this.clearClicked();\r\n });\r\n };\r\n\r\n clearClicked = () => {\r\n this.setState({\r\n oldPassword: \"\",\r\n newPassword: \"\",\r\n confirmPassword: \"\",\r\n });\r\n };\r\n\r\n inputHandler = (event) => {\r\n switch (event.target.name) {\r\n case \"oldPassword\":\r\n this.setState({ oldPassword: event.target.value });\r\n break;\r\n case \"newPassword\":\r\n this.setState({ newPassword: event.target.value });\r\n break;\r\n case \"confirmPassword\":\r\n this.setState({ confirmPassword: event.target.value });\r\n break;\r\n default:\r\n }\r\n };\r\n\r\n renderChangePasswordForm() {\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Change\r\n \r\n
    \r\n
    \r\n \r\n Clear\r\n \r\n
    \r\n
    \r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Change Password\r\n
    \r\n
    \r\n {this.renderChangePasswordForm()}\r\n
    \r\n
    \r\n \r\n );\r\n }\r\n}\r\nexport default ChangePassword;\r\n","import api from \"./apiUrl\";\r\nimport { authHeader, encodedURL } from \"../_helpers/auth-header\";\r\n\r\nexport function updateChangePassword(oldPassword, newPassword) {\r\n var urlparam = \"&oldPassword=\" + oldPassword;\r\n urlparam += \"&newPassword=\" + newPassword;\r\n\r\n return fetch(\r\n `${api.proxyUrl}${api.url}${encodedURL(\r\n `/changepassword/updateLoginPassword?identityKey=${localStorage\r\n .getItem(\"identityKey\")\r\n .trim()}&companyNumber=${localStorage.getItem(\r\n \"companyNumber\"\r\n )}&customerNumber=${localStorage.getItem(\"customerNumber\")}${urlparam}`\r\n )}`,\r\n {\r\n method: \"GET\",\r\n headers: authHeader(),\r\n }\r\n ).then((response) => response.json());\r\n}\r\n","import React, { Component } from 'react';\r\nimport EmployeeList from '../components/EmployeeList'\r\n\r\nclass EmployeeListFromMenu extends Component {\r\n render() {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default EmployeeListFromMenu;","import Home from \"../modules/Home\";\r\nimport Inventory from \"../modules/Inventory/Inventory\";\r\nimport AccountsPayable from \"../modules/AccountsPayable/AccountsPayable\";\r\nimport PriceList from \"../modules/PriceList/PriceList\";\r\nimport CustomerListMenu from \"../modules/CustomerListMenu\";\r\nimport ConsolidatedInventory from \"../modules/ConsolidatedInventory/ConsolidatedInventory\";\r\nimport CustomPrice from \"../modules/CustomPrice/CustomPrice\";\r\nimport DisplayOrder from \"../modules/DisplayOrders/DisplayOrder\";\r\nimport Purchasing from \"../modules/Purchasing/Purchasing\";\r\nimport PurchasingAnalysis from \"../modules/PurchasingAnalysis/PurchasingAnalysis\";\r\nimport ChangePassword from \"../modules/ChangePassword\";\r\nimport EmployeeListFromMenu from \"../modules/EmployeeListFromMenu\";\r\nimport ESSModal from \"../components/ESSModal\";\r\nimport user from \"../models/User\";\r\nimport { decryptData } from '../Utils';\r\nconst loginTypeCode = localStorage.getItem(\"loginTypeCode\");\r\n\r\nlet LocalData = localStorage.getItem(\"UserMenu\");\r\nif(!LocalData)\r\n{ \r\n // no need to decrypt \r\n} \r\n\r\nelse\r\n{\r\n const salt = process.env.SALT || process.env.REACT_APP_KEY;\r\n const originalData = decryptData(localStorage.getItem(\"UserMenu\"), salt);\r\n user.toUser = originalData;\r\n}\r\n\r\n\r\n\r\n\r\n //user.toUser = originalData;\r\n\r\n //alert(user.toUser.CanViewInventory);\r\n\r\nexport const routes = [];\r\nroutes.push(\r\n {\r\n path: \"/Home\",\r\n component: Home,\r\n });\r\nroutes.push(\r\n {\r\n path: \"/ESSModal\",\r\n component: ESSModal,\r\n });\r\n if(user.toUser != null){\r\nif (user.toUser.CanViewInventory === \"Y\") {\r\n routes.push(\r\n {\r\n path: \"/Inventory\",\r\n component: Inventory,\r\n });\r\n if(loginTypeCode === \"G\"){\r\n routes.push(\r\n {\r\n path: \"/ConsolidatedInventory\",\r\n component: ConsolidatedInventory,\r\n });\r\n }\r\n}\r\nif (user.toUser.CanViewAR == \"Y\") {\r\n routes.push(\r\n {\r\n path: \"/AccountsPayable\",\r\n component: AccountsPayable,\r\n });\r\n}\r\nif (user.toUser.CanViewPriceList == \"Y\") {\r\n routes.push(\r\n {\r\n path: \"/PriceList\",\r\n component: PriceList,\r\n });\r\n}\r\nif(loginTypeCode === \"G\" || loginTypeCode === \"E\"){\r\nroutes.push(\r\n {\r\n path: \"/CustomerListMenu\",\r\n component: CustomerListMenu,\r\n });\r\n}\r\nif (user.toUser.CanViewCustomerPrices == \"Y\") {\r\n routes.push(\r\n {\r\n path: \"/CustomerPrice\",\r\n component: CustomPrice,\r\n });\r\n}\r\nif (user.toUser.CanViewOrders == \"Y\") {\r\n routes.push(\r\n {\r\n path: \"/DisplayOrder\",\r\n component: DisplayOrder,\r\n });\r\n}\r\nif (user.toUser.CanViewSales == \"Y\") {\r\n routes.push(\r\n {\r\n path: \"/Purchasing\",\r\n component: Purchasing,\r\n });\r\n}\r\nif ((user.toUser.CanViewSalesAnalysis == \"Y\" || user.toUser.CanViewSales == \"Y\")) {\r\n routes.push(\r\n {\r\n path: \"/PurchasingAnalysis\",\r\n component: PurchasingAnalysis,\r\n });\r\n}\r\nroutes.push(\r\n {\r\n path: \"/changepassword\",\r\n component: ChangePassword,\r\n });\r\n if( loginTypeCode === \"E\"){\r\nroutes.push(\r\n {\r\n path: \"/EmployeeListFromMenu\",\r\n component: EmployeeListFromMenu,\r\n });\r\n}\r\n\r\n }","import React, { Component } from 'react';\r\nimport \"./App.css\";\r\nimport \"../node_modules/bootstrap/dist/css/bootstrap.min.css\";\r\nimport { BrowserRouter as Router, Route, Switch } from \"react-router-dom\";\r\nimport Login from \"./components/Login\";\r\nimport CustomerFooter from \"./components/CustomerFooter\";\r\nimport CustomerList from \"./components/CustomerList\";\r\nimport EmployeeList from \"./components/EmployeeList\";\r\nimport HeaderSelfService from \"./components/HeaderSelfService\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport {routes} from \"./_services/routeConfiguration\";\r\nimport ESSModal from \"./components/ESSModal.jsx\";\r\nimport checkJWTTokenExpiry from \"./_helpers/auth-header\";\r\n\r\nclass App extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loggedIn: \"false\",\r\n };\r\n this.setSessionState = this.setSessionState.bind(this);\r\n }\r\n\r\n // checkJWTTokenExpiry = () => {\r\n // var jwtTokenExp = localStorage.getItem(\"jwtExpiry\");\r\n // if (jwtTokenExp !== null && jwtTokenExp !== \"\") {\r\n // var currentDate = new Date().toUTCString();\r\n // var jwtDate = new Date(jwtTokenExp).toUTCString();\r\n // if (new Date(jwtDate) < new Date(currentDate)) { localStorage.clear(); return false;}\r\n // else return true;\r\n // } else return false;\r\n // };\r\n\r\n\r\n\r\n setSessionState = (validation) => {\r\n this.setState({ loggedIn: \"true\" });\r\n };\r\n\r\n handleClose = () => { this.setState({ show: false }); window.location = \"./Login\"; };\r\n\r\n render() {\r\n //document.addEventListener(\"contextmenu\", (event) => event.preventDefault());\r\n\r\n // window.addEventListener('blur', function()\r\n // {\r\n // const jwtValidcheck = checkJWTTokenExpiry();\r\n // if(jwtValidcheck)\r\n // {\r\n // // this.alert(\"session expired\");\r\n // }\r\n // else\r\n // {\r\n // window.location = \"./ESSModal\";\r\n // }\r\n // }, false);\r\n \r\n \r\n const jwtValid = checkJWTTokenExpiry();\r\n \r\n const Layout = ({ children }) => (\r\n
    \r\n
    \r\n \r\n
    \r\n {children}\r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n return ;\r\n }}\r\n />\r\n {\r\n return ;\r\n }}\r\n />\r\n {\r\n if ( jwtValid && (\r\n this.state.loggedIn === \"true\" ||\r\n localStorage.getItem(\"isSessionValid\") == \"true\"\r\n )\r\n )\r\n return ;\r\n //else return ;\r\n else return ;\r\n }}\r\n />\r\n { \r\n return ;\r\n \r\n }}\r\n />\r\n { \r\n return ;\r\n \r\n }}\r\n />\r\n {\r\n if ( jwtValid && (\r\n this.state.loggedIn === \"true\" ||\r\n localStorage.getItem(\"isSessionValid\") === \"true\"\r\n ))\r\n return ;\r\n //else return ;\r\n \r\n else return ;\r\n }}\r\n />\r\n\r\n \r\n {routes.map((item, i) => jwtValid && (\r\n this.state.loggedIn === \"true\" ||\r\n localStorage.getItem(\"isSessionValid\") === \"true\" ) ? (\r\n \r\n ) : (\r\n //\r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './assets/css/bunzlUI.css'\r\n\r\n// import './index.css';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","module.exports = \"data:image/gif;base64,R0lGODlhCQAJAIcAAAAAAHiYtbDC08C3psG4p8K4qMO6qsa+rs/Iu9LMv9LMwNbRxtjTydvWzNzYz9/b0uPg2eTh2eXh2urp4+3t5/Hw6/Dw7PLy7vX18ff28/b29Pf39Pf39fz8+vz8+/39+////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAMAAAIALAAAAAAJAAkAAAhGAAUEGEgwgEAQCBOCGOjhwwcAHjpkGMiBwwYAGipIGIgBgEePDwZesEABwAQIDQZGcMAAwAIFCAYmOFCAAIEBBgwWJCggIAA7\"","module.exports = \"data:image/gif;base64,R0lGODlhNwAtANUiAHm5HB0vaP///x4waR0waR4sZSc6ch4uZx4tZffz9x4qYyQ2bzVDeh4rZB4vaFFbjEFNgkdShqOkwtva5x81bWZmmeno8czMzB8nYH6AqR0xa4+QtB0waB4yax4xax8xaR8lXh0yawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACIALAAAAAA3AC0AAAb/wIBQSBgaCUWjciBkJjnM4SA6DYiuWGw0WUxWicpkoBptfsWBYnY9NjrTzK2y/T6270jnOjvomu1DaHNlYwRxYGNMe1iIaUR9h3dOfUiNUpeOVosiblRFVIF3f02PbmKKm6dhhm50TZV9rXOOA5siZKKJhbJ2HLNwhGqbsVKCgJW/cIafSr62sUW+pIRTaJHIX0uZz8ydlgEcp2WflI6CwouikWbE3a2Eg6K2u/D1aGL3UtlltZuAaV7chZomaVYcQ/MCHBDiwMEBhw8PLJQoRCJEIxIpNgywUaFFibYKIEAgUiTJkwVSkkxpkqXKkiNLumS50paAmzhz6tzJs6dP/wE2fwodmjMBT1sMDChdwOCBBAEQFiyIIGCCUgMPki54cFOCUgYRrord+mCBAQYWbtqiYLJBAwwNJDBQoIBB1Q4NFEBgi0BBBgESFBTQwAAEBgUj+xq48AAuhbRANy04oKDCBQ0HMFSAkNLuBAoHCkRdiGDABAkFHFB4ACFCBA0OETyN0ODAAsi2JovOoKGAAQmcC3gGLXqBAwKUH2wY4PCpgA0FKFe4SfvAY7WShSgA0aDAAwsMRg4/gGB0iPAHGHg48OHpBQ8IGkQwKoA2guuRF02WL4G2gggMhGbXBR0c0EBUDhSQwQOCEeBAewkwEN1iAhhVHQUTJJBAbtIxpuLAAR4w0EAfEDCgXQUGZLaBBQsUwNAFFSig0AIQlLhgA2lctVZJAQiGgVMfIEYXAhgwcFkBGPy1gWAuRhCASX1t9wCDIyngFlJLmQVBBmkxtkAHHRhQwQRWGbDABjdVYJZYbIqpJpu2aCgnfTlZQCadchY1554aVshnUEQFKih2iwBg6KGIJqrooow2CoAtjkYq6aSQTmrppYdWiummkWrK6aeKegrqqI9uQuqppRaK6qiiroppq65aCmuskl5hBBa0cmqrEJxckeumvfKqya+vWiGsr8TK2isnwyZL6a6aiBAEADs=\"","module.exports = \"data:image/gif;base64,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\"","module.exports = \"data:image/gif;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/downloadSpinner.1f5c616b.gif\";","module.exports = __webpack_public_path__ + \"static/media/magGlass.fae5a215.jpg\";","module.exports = \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAAYABgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD6j8Wa5DpLTG5uzBFHB5gVAN79c/yHpXy34+/aP1PTtRkXSIbvy1bCma8bn8ACP1r2X463OzXFtI2j+03GmHyFd1XeRPGWAJIGdoNeP/Ee9glimuHGnzaDJHqW6KV4/LmuvtY8gDvngjI4AzXx+OxaWJcJNvW1lJr8vw8z38Fh/wB3zJLVdkz0H9lT4y+IPiZq2qafrFtbxpZQrIjqcs2Tj0HFFUf2XVkk+IerXskzq9xpiO1m7Ru1mfMP7vcnBXuM84NFe/ldb21Dm/W/4vc83H01Trcv6W/A9S+Nnww0z4laAljdTPa3cBLW9wnVD6H2r5d1f9mr4m6pqWmeGrmTT10jTFkEF+mcsjvuORnGc++cdqKK1rYWEpqezv8Apbr5EUsTOEHHdH038BvhVo3wx8OvZ2DST3c7ZuZ5FwXI/px+gooorppwUI2Rzzm5u7P/2Q==\"","module.exports = \"data:image/gif;base64,R0lGODlhLgAOALMAAHASoALMAsyr3e3q8aZrxJhUu97M6bmK0IIwrHHjcWUBmWYAmf7//////f/+/////ywAAAAALgAOAAAE/nBJRdV6rDn2Ws6dZklBaQaPozKcqjnSNGJPxzpvyi7VaTY1jUeFYch4Eo6mxsBhGhrGSOErZYApV0i2adlS4O4KSS1hVk4g1GFDLqIZw2Eu+A7mB4Pb1IUGV1kdU0gECDwjAAYOAgAWUxZVAQknOieOMRRICI0LiY2DSJEOkyYMJwOXbhYCDAMAPK8WBAYEMqIPpD4JD5caBYcxmBIIIbELfE1DD1UJG5cdB8AVFTwIyQiOP2xqrT4eDZcb0RIGUVCGCgA4MCOlHTqmujjPDgOHBQYCFZwLCAfoPCJpyHWiWS8VtYJVc5Xp0bEqo07EK5EgXI0HBx4hGODAADYJCgBekWB2gsiJCAAAOw==\"","module.exports = \"data:image/jpeg;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/bunzl-splash.c5b35a4d.jpg\";","module.exports = __webpack_public_path__ + \"static/media/r3-splash.15a11ebe.jpg\";"],"sourceRoot":""}