{"version":3,"sources":["images/playarrow.png","images/pdf.png","constants/ActionTypes.js","utils.js","reducers/InvoiceReducer.js","reducers/CnbsReducer.js","reducers/AppReducer.js","reducers/UserOptionsReducer.js","reducers/UserReducer.js","reducers/PaymentReducer.js","reducers/RootReducer.js","store.js","actions/CommonActions.js","axios.js","constants/ValidationConstants.js","constants/ApiConstants.js","constants/ApplicationConstants.js","models/Invoice.js","models/payer/address_data.js","models/payer/company_data.js","models/payer/details.js","models/payer/payment_card.js","models/payer/PaymentStatus.js","models/payer/data.js","actions/InvoiceActions.js","actions/UserActions.js","components/login/LoginRedirectHandler.js","components/footer/Footer.js","components/login/Title.js","components/login/LoginLogo.js","components/Logo.js","components/login/Login.js","components/payment-methods/schemas.js","helpers/Field.js","models/payer/PaymentRequest.js","models/payer/DepositRequest.js","components/invoice/Selectors.js","models/payer_data.js","components/invoice/PaymentFunctions.js","components/payment-methods/PaymentCardsSelectors.js","requests/TokenRequests.js","components/payment-methods/PaymentTypeDetails.js","components/payment-methods/ChecksList.js","components/payment-methods/CreditCardsList.js","components/payment-methods/payment-card-lists/PaymentCardLists.js","components/payment-methods/AddCreditCardForm.js","constants/ErrorMessages.js","components/payment-methods/AddCheckForm.js","requests/ConfigRequests.js","components/payment-methods/manage-payment-methods/ManagePaymentMethods.js","components/invoice/PdfCell.js","PermissionSelectors.js","components/invoice/DownloadPdfZipButton.js","components/invoice/InvoiceList.js","common/invoiceHelpers.js","hooks.js","components/invoice/InvoiceDataManager.js","requests/InvoiceRequests.js","components/invoice/Payment.js","models/sales_area_data.js","models/payer/PayerDetailRequest.js","components/invoice/PayerSelect.js","components/deposits/Deposits.js","components/statements/Statements.js","components/help/Help.js","components/header/NavAccountSelect.js","components/header/MenuDrawer.js","components/header/Header.js","components/invoice/SoldToSelect.js","components/invoice/SoldToSelectAll.js","error-boundaries/BasePageErrorBoundary.js","components/invoice/InvoicePage.js","components/invoice/InvoiceDetail.js","components/invoice/PaymentPage.js","components/invoice/PaymentStatus.js","components/invoice/PaymentStatusPage.js","components/invoice/DetailPage.js","components/invoice/InvoiceSearch.js","components/invoice/PayerDetailsDataManager.js","requests/UserRequests.js","requests/RegistrationRequests.js","components/user-management/ManageUserSapAccount.js","components/user-management/LinkedSapAccounts.js","components/user-management/exclusions/ExclusionItem.js","components/user-management/exclusions/AddExclusionItem.js","components/user-management/exclusions/ExclusionList.js","requests/AccountTypeRequests.js","components/resetpassword/ResetPassword.js","components/payment-methods/AccountPaymentPage.js","components/user-management/UserImpersonate.js","components/navigation/Pagination.js","components/user-management/UserList.js","components/user-management/ListUsersPage.js","components/user-management/ManageUserForm.js","components/settings-page/registration-requests/RegistrationRequestDetails.js","components/user-management/ManageUserPage.js","components/settings-page/registration-requests/RegistrationRequestList.js","components/settings-page/registration-requests/RegistrationRequestsPage.js","components/settings-page/customizing/JSONViewer.js","components/settings-page/customizing/CustomizingPage.js","components/settings-page/configuration/EditConfiguration.js","components/settings-page/SettingsPage.js","error-boundaries/PaymentStatusErrorBoundary.js","components/BasePage.js","components/register/Register.js","components/register/RegisterPage.js","components/register/RegistrationRequestForm.js","components/register/RegistrationRequestPage.js","components/BackToLogin.js","components/header/SimpleHeader.js","components/reset-password-page/ResetPasswordPage.js","components/reset-password-page/ResetPasswordFinishForm.js","components/reset-password-page/ResetPasswordFinishPage.js","components/RouterListener.js","components/register/auto-register/RegisterForm.js","DocumentTitle.js","components/register/auto-register/AutoLinkAccountSuccess.js","components/register/auto-register/AutoLinkAccountError.js","components/register/auto-register/AutoLinkAccountForm.js","components/register/auto-register/AutoLinkAccount.js","components/register/auto-register/AutoRegisterPage.js","components/register/auto-register/AutoRegisterConfirmInstructions.js","common/PromiseComponent.js","components/register/auto-register/AutoRegisterConfirm.js","common/LoginCheck.js","components/register/auto-register/AutoRegisterAccounts.js","components/register/auto-register/AutoRegisterWaitingConfirmation.js","components/SystemError.js","error-boundaries/SiteErrorBoundary.js","App.js","index.js"],"names":["module","exports","__webpack_require__","p","FORCE_INVOICE_REFRESH","SET_SELECTED_SOLD_TOS","REMOVE_SOLD_TO_FROM_SELECTED","ADD_SOLD_TO_TO_SELECTED","UPDATE_MULTI_SELECT_SOLD_TO","SET_IS_LOGGED_IN","SET_LOGIN_CHECKED","LOADING_INCREMENT","LOADING_DECREMENT","CALL_FAILED","LOGOUT","SET_LAST_URL","SET_SELECTED_ACCOUNT","UN_AUTHORIZED","GET_USER_SUCCESS","UPDATE_PASSWORD_RESPONSE","GET_INVOICES_SUCCESS","GET_PAYER_DETAILS_SUCCESS","POST_PAYMENT_REQUEST","POST_PAYMENT_SUCCESS","GET_INVOICE_CURRENCY_SUCCESS","GET_PRIMARY_ACCOUNTS_SUCCESS","GET_CUSTOM_DATA_SUCCESS","SET_CONFIG","ADD_INVOICE_TO_SELECTED","REMOVE_INVOICE_FROM_SELECTED","UPDATE_PAY_AMOUNT_FOR_INVOICE","UPDATE_REASON","UPDATE_REASON_COMMENT","COPY_SELECTED_INVOICES_TO_COMPLETED","CLEAR_SELECTED_INVOICES","UPDATE_PAYMENT_CARD_OPTIONS","UPDATE_INVOICE_LIST_REQUEST","UPDATE_CURRENCY_CODE","UPDATE_CURRENCY_OPTIONS","UPDATE_PAYMENT_STATUS","UPDATE_CUSTOMER_OPTIONS","UPDATE_SELECTED_CUSTOMER_VALUE","UPDATE_PARTIAL_PAYMENT_ALLOWED_FLAG","UPDATE_OVER_PAYMENT_ALLOWED_FLAG","UPDATE_REASON_NOT_REQUIRED_FLAG","UPDATE_CVV_CONTROL_FLAG","ADD_SELECTED_SOLDTO","REMOVE_UN_SELECTED_SOLDTO","REMOVE_ALL_SELECTED_SOLDTOS","UPDATE_CVV","UPDATE_SELECTED_CARD","OVER_PAY_NOTE","INVOICE_SEARCH_FROM_DATE","INVOICE_SEARCH_TO_DATE","INVOICE_SEARCH_DUE_FROM_DATE","INVOICE_SEARCH_DUE_TO_DATE","UPDATE_INVOICE_SEARCH_QUERY","UPDATE_INVOICE_SEARCH_MODE","UPDATE_IMPERSONATE_USER_ID","SET_ACCOUNT_TYPE","UPDATE_ACCOUNT_TYPES","UPDATE_PRIMARY_ACCOUNT_TYPES","SET_PAYMENT_METHODS","trimLeadingZeroes","str","replace","getInvoiceKey","invoice","billing_document_number","document_number_finance","invoiceInitialState","forceRefresh","selected","invoiceDetail","completed","invoices","detials","cnbsInitialState","paymentStatusOptions","value","label","clearableValue","currencyOptions","dueOptions","invoiceStatusOptions","invoicePaymentOptions","periodOptions","characteristicsOptions","currentUser","listHeight","animating","invoiceListRequest","selectedCurrencyOptionValue","payerDetails","payment_cards","paymentStatuses","reasonNotRequired","cvvRequired","cvvValue","selectedCard","overPayNote","accountTypes","primaryAccountTypes","appInitialState","isPartialPaymentsAllowed","isInvoiceOverpaymentAllowed","cnbsConfig","config","invoice_table","columns","paymentMethods","initialState","accountType","secondaryAccounts","selectedSecondaryAccount","selectedSoldTos","invoiceSearchFromDate","invoiceSearchToDate","selectedPrimaryAccountIndex","primaryAccounts","invoiceSearchStatus","invoiceSearchDueDateFrom","invoiceSearchDueDateTo","filter","impersonatedUserId","loginChecked","isLoggedIn","loginCount","lastUrl","SET_EDITING_PAYMENT","ADD_SESSION_CARD","UPDATE_SESSION_CARD","DELETE_SESSION_CARD","ADD_SESSION_CHECK","UPDATE_SESSION_CHECK","DELETE_SESSION_CHECK","CLEAR_SESSION_PAYMENT_METHODS","addSessionCard","payment","payer","type","payload","addSessionCheck","deleteSessionCheck","editingPayment","sessionCards","sessionChecks","_rootReducer","combineReducers","app","state","arguments","length","undefined","action","types","val","Object","objectSpread","default","paymentCardOptions","showPaymentStatus","key","defineProperty","amount","open_amount","toFixed","amountValidation","reason","comment","newState","currentDetails","documentId","overUnder","details","user_options","selectedMultiSoldTo","concat","toConsumableArray","setSecondary","DropDownItems","map","account","PrimaryAcct","accounts","clearSecondary","newArray","slice","push","i","status","dueDateFrom","dueDateTo","dateFrom","dateTo","user","checked","all","cards","payment_card_token","checks","createStore","sessionStorage","removeItem","window","__REDUX_DEVTOOLS_EXTENSION__","loadingDecrement","dispatch","loadingIncrement","requestStarted","actionType","updateState","data","requestErrored","errorObj","call","response","statusText","toast","error","position","POSITION","TOP_RIGHT","uiError","react_default","a","createElement","uniqueId","message","requestUnauthorized","loginFailed","instance","axios","create","token","getItem","handleErrors","e","store","setIsLoggedIn","defaults","headers","common","src_axios","get","url","then","catch","post","put","delete","CREDENTIALS_INVALID","INVOICE_CHECK","AUTHENTICATION_ERROR","CARD_NOT_SELECTED","CVV_EMPTY","CVV_INVALID","REASON_REQUIRED","CREDIT_AMOUNT_VALIDATION_ERRORS","OVER_PAY_NOT_ALLOWED","PAY_AMOUNT_VALIDATION_MESSAGE","REASON_DESCRIPTION_VALIDATION_MESSAGE","GET_USER_ERROR","GET_USER_PAYER_ERROR","GET_INVOICE_ERROR","GET_INVOICE_DETAIL_ERROR","GET_INVOICE_PDF_ERROR","GET_PAYER_DETAILS_ERROR","MAKE_PAYMENT_ERROR","GET_CONFIG_ERROR","RESET_PASSWORD_ERROR","RESET_PASSWORD_SUCCESS","LOGIN_URL","REFRESH_TOKEN_URL","LOGOUT_URL","GET_USER_URL","RESET_PASSWORD","INVOICE_LIST_URL","INVOICE_DETAIL_URL","INVOICE_PDF_URL","INVOICE_SEARCH_PDF_URL","PAYMENT_URL","INVOICE_BULK_URL","PAYER_DETAILS_URL","CUSTOM_DATA_URL","USER_PAYERS_URL","MANAGE_PAYMENTS_URL","DEPOSIT_URL","GET_PAYMENT_ACCESS_TOKEN","GET_PAYMENT_RESPONSE","GET_USER_LIST","EXPORT_USERS","GET_ACCOUNT_TYPE_LIST","GET_PRIMARY_ACCOUNT_TYPE_LIST","SOLD_TO_COMPARE","PAYER_COMPARE","ACCOUNT_PAYER_ALL","SUCCESS","DEFAULT_DEPOSIT_REASON_CODE","Invoice","initializer","classCallCheck","this","line_item_in_the_relevant_invoice","finance_document_type","clearing_document_number_finance","reference_number","fiscal_year_of_the_relevant_invoice","finance_document_only","item_is_a_payment","read_only_flag","soldto_number","payer_number","posting_date","document_date","due_date","clearing_date","days_in_arrears","currency_key","total_amount","paid_amount","pdf_document_available","zzcustom","address_data","name","city","district","street","postal_code_city","region","country","CompanyData","company_data","soldtos","soldto_list","PaymentCard","payment_card_type","payment_card_name","valid_from","valid_to","electronic_check_account_type","electronic_check_rdfi_number","isDefault","PaymentStatus","indexNumber","documentNumberFinance","messageType","messageLineString","authorizationReferenceCode","index_number","message_type","message_line_string","authorization_reference_code","companyCode","company_code","addInvoiceToSelected","document","removeInvoiceFromSelected","getInvoicesAjax","apiTypes","getInvoices","invoiceCurrencies","warn","document_list","documentList","Set","currency","mapDistinctCurrencies","forEach","parseInt","toString","err","validationTypes","extractLastCardNumbers","delim","indexOf","b","substr","getPayerDetailsBuilder","primary","secondary","input","addressdata","AddressData","detail","cardData","card","CompanyDatas","_","Data","dtls","Details","getPayerDetails","appConstants","customer_number","CompanyCode","sales_area_data","sales_organization","SalesOrganization","distribution_channel","DistributionChannel","division","Division","updateSecondaryAccounts","updateSelectedSecondaryAccountValue","customerOptionValue","cb","updatePrimaryAccount","updateSelectedCard","updateInvoiceSearchDueToDate","dueToDate","addSoldToToSelected","soldToNumber","removeSoldToFromSelected","setSelectedSoldTos","soldToNumbers","clearSelectedInvoices","updateAccountTypes","getUser","email","finalGetUser","userData","mapPrimaryAccountType","PrimaryAccountTypeId","primaryAccountTypeId","getUserCustomers","userId","finalGetUserPayerUrl","HeaderItems","Logout","ResetPassword","currentPassword","newPassword","confirmNewPassword","resetPasswordRequest","CurrentPassword","NewPassword","ConfirmNewPassword","success","validRedirects","LoginRedirectHandler","isValidRedirect","props","history","Component","withRouter","connect","Footer","className","id","href","React","injectIntl","_ref","intl","location","hostname","useEffect","title","favicon","getElementById","Fragment","width","height","logo","src","alt","header","bottomLogin","Login","_this","possibleConstructorReturn","getPrototypeOf","handleKeyPress","validateCredentials","handleOnChange","setState","target","password","onLogin","bind","assertThisInitialized","pasword","loginRequest","login","setItem","refreshToken","backgroundClasses","useBackground","LoginLogo","onSubmit","handleSubmit","autoComplete","align","Title","placeholder","onKeyPress","onChange","onClick","Link","to","login_LoginRedirectHandler","footer_Footer","Logo","documentsList","style","login_use_background_image","AddCreditCardSchema","Yup","shape","card_type","required","card_name","card_number","test","cardValidator","isValid","when","is","validate","card_validation_code","card_month","card_year","EditCreditCardSchema","checkRoutingNumber1EC","r","s","Number","isNaN","charAt","c","m","n","checkRoutingNumber2EC","accountNumberRegExpr","AddCheckSchema","routing_number","account_number","RegExp","valueStringsRemoved","checkAccountNumberEC","EditCheckSchema","MakeDepositSchema","amount_to_process","positive","min","BootstrapFieldInner","_Component","apply","inherits","createClass","errors","formik","touched","hasErrors","isTouched","wasSubmitted","submitCount","classes","is-invalid","children","formik_esm","assign","classNames","BootstrapField","BootstrapErrorInner","fieldErrors","BootstrapError","PaymentRequest","payerData","paymentDetail","documents","payer_data","payment_detail","DepositRequest","deposit_detail","getSelectedInvoices","getLineItems","getAccountType","getPrimaryAccounts","getSecondaryAccounts","getInvoiceSearchToDate","getInvoiceSearchFromDate","getInvoiceSearchStatus","getInvoiceSearchDueDateFrom","getInvoiceSearchDueDateTo","getInvoiceSearchFilter","getCnbsConfig","getImpersonatedUserId","createSelector","UserId","getInvoiceTotal","items","keys","reduce","total","item","Math","round","getSelectedPrimaryAccount","index","getCanUseChecks","getSelectedSecondaryAccount","getPayTotal","parseFloat","getBeforeCreditTotal","getCreditTotal","getSelectedInvoiceKeys","getOverpayingAmount","payTotal","getPayerAccount","getAllPaymentOptions","options","payerAccount","newCardData","is_session","prop","hasOwnProperty","getSelectedPaymentOption","selectedIndex","getCustomerNumber","selectedPrimaryAccount","getPayerSoldToForInvoiceQuery","secondaryAccount","primaryAccount","soldto_data","TransactionalAccounts","getDefaultFilters","defaultFilters","filter_type","SoldTo_SearchParams","SoldToSearchParams","fromDate","toDate","_getPayerSoldToForInv","search_parameters","document_type","date_from","date_to","moment","Date","format","due_date_from","due_date_to","getInvoiceQuery","_getPayerSoldToForInv2","getDepositReasonCodes","reasonCodes","payment_reason_codes","code","payment_type","reason_code","description","commentsRequired","comments_required","getPayerAccounts","hasDeposits","payment_types","find","t","active","getCurrentAccount","customerNumber","getValue","property","defaultVal","mapPaymentDetails","payment_card","cvv","address","payment_method","name_2","createPayerData","PayerData","getChecksSelector","getCreditCardsSelector","getPaymentAccessToken","Promise","reject","buildCCRequest","card_details","merchant_id","access_token","$XIPlugin","createJSRequestPacket","addField","createField","buildECRequest","ec_details","padStart","getPaymetricResponse","paymetricUrl","resolve","ajax","console","log","getPaymentResponse","addPaymentMethod","sendManagePaymentCardsRequest","updatePaymentMethod","deletePaymentMethod","preAuthCCPaymentMethod","make_default","message_number","message_string","cardFormToUpdateObject","year","month","endOf","checkFormToUpdateObject","payer_account","PaymentTypeDetails","displayText","getIconImage","deletePaymentCard","digits","react_fontawesome_index_es","icon","_deletePaymentCard","asyncToGenerator","regenerator_default","mark","_callee","wrap","_context","prev","next","stop","_this2","displayText2","role","data-toggle","data-target","onEdit","tabIndex","aria-labelledby","aria-hidden","data-dismiss","aria-label","_deletePaymentMethod2","_callee2","comp","_context2","onDelete","_x","ChecksList","check","payment_methods_PaymentTypeDetails","CreditCardsList","getCrediCardsSelector","PaymentCardLists","showCards","showChecks","onTabChange","canUseChecks","payment_methods_CreditCardsList","payment_methods_ChecksList","AddCreditCardForm","saveCard","buttonText","renderPaymentMethods","_saveCard","save","alwaysSaveOnFile","isEditing","component","disabled","initialValues","save_on_file","schema","date","validationSchema","validateOnChange","values","enableReinitialize","bag","setSubmitting","paymentcard","onCardConfirmed","render","faChevronDown","handleChange","htmlFor","isSubmitting","defaultProps","AddCheckForm","PropTypes","func","isRequired","bool","getConfiguration","ManagePaymentMethods","isCC","isEC","editPayment","saveCheck","processCard","processCheck","deletePayment","CCVideoClick","CCPdfClick","ECVideoClick","ECPdfClick","_onCardConfirmed","_x2","_saveCheck","_callee3","_context3","_x3","_processCheck","_callee4","merchant_guid","paymetric_xi_url","body","_ref2","matches","_matches","_context4","sent","abrupt","t0","t1","match","_x4","_processCard","_callee5","_ref3","_ref4","_matches2","_context5","t2","_x5","CcvideoUrl","open","CcpdfUrl","EcvideoUrl","EcpdfUrl","payment_card_lists_PaymentCardLists","payment_methods_AddCreditCardForm","payment_methods_AddCheckForm","alignSelf","marginTop","textDecoration","cursor","PlayArrow","Pdf","PdfCell","handleClick","row","docNumber","document_detail","getInvoicePDF","getCurrentUser","createUserCanSelector","permission","Permissions","userCan","canManagePaymentMethods","canEditSystemConfig","canViewUsers","canManageUsers","canImpersonate","canManageRegistrationRequests","canMakePayment","canManageOwnSAPAccounts","DownloadPdfZipButton","Dropdown","Item","search","vGridViewDocIds","JSON","parse","GridViewDocIds","getInvoiceBulkPDF","invoiceSearchQuery","isCredit","sortStringNumber","order","sortStringDate","aDate","bDate","diff","renderCaret","column","size","faCaretDown","InvoiceList","customMultiSelect","mode","readOnly","onRowSelect","mapSoldTo","onSelectAll","clickSelectAll","clickDeselectAll","isNotSelectable","filterFilteredInvoices","cell","custOption","Name","l","customer","isSelected","indeterminate","isSelect","rows","_this3","trimStart","invoicesWithKeys","PDFFileIds","pdfExists","billing_document_type","stringify","_this4","isSearch","_this5","hideSelect","selectRowProp","onSelect","selectedInvoicesKeys","selectionRenderer","selectionHeaderRenderer","renderHeaderCheckbox","nonSelectable","hideSelectColumn","columnConfigs","headerClasses","dataField","formatter","statusFormatter","text","headerStyle","headerAlign","referenceFormatter","sort","sortCaret","documentNumberFormatter","dateFormatter","sortFunc","totalFormatter","headerFormatter","col","colIndex","components","index_es","sortElement","paidFormatter","openFormatter","dueFormatter","rowA","rowB","isACredit","isBCredit","shouldSortCredit","sortCredit","formatDaysInArrears","pdfFormatter","tableConfig","_key","display","justifyContent","isPdfFilenotExists","DropdownButton","alignRight","variant","react_bootstrap_table_next_lib_default","selectRow","ref","headerClass","scrollTop","defaultSorted","keyField","bootstrap4","InvoiceSearchList","formatMoney","amountFormatter","amountToProcess","getCurrency","invoice_PdfCell","locale","navigator","userLanguage","language","datearray","split","newDate","localeDate","payStatus","removePreceedingZero","path","onContinueClick","calculateUnitPrice","billed_quantity","unitPrice","currencySymbol","formatTotal","formatColumn","parsed","toLocaleString","minimumFractionDigits","soldToFormatter","soldtoad","renderAddressForTable","payerFormatter","payerad","reasonFormatter","reason_message","usePrevious","useRef","current","InvoicesContext","computeSoldToSelectAll","soldToNumbersList","soldTos","soldTo","pos","listSet","soldTosResults","list","_useState","useState","_useState2","slicedToArray","setInvoices","isEqual","react","Provider","Payment","onCVVChange","validateCvv","cvvValidationMessage","onPayClick","event","dismiss","selectedPaymentOption","preventDefault","overPayingAmount","creditTotal","beforeCreditTotal","equals","invoiceDetails","reasonMissing","j","reason_codes","reason_description","mapInvoiceToPaymentDocument","mapInvoiceListToPaymentDocuments","paymentDetails","paymentRequest","disablePay","payed","makePayment","onDepositClick","form","depositDetail","depositRequest","paymentStatus","handlePaymentCardChange","showManagePayments","hideManagePayments","allPaymentOptions","cardType","depositAmount","getDepositAmount","isDepositMode","invoiceTotal","faExclamationCircle","selectedCardIndex","option","Route","flexDirection","manage_payment_methods_ManagePaymentMethods","contextType","totalAmountWithCredit","PayerDetailRequest","salesAreaData","PayerSelect","handleCustomerChange","cookie","load","salesOrganization","selectedDistributionChannel","selectedDivision","SalesAreaData","payerAccounts","truncateOption","Deposits","handleReasonCodeChange","selectedReasonCode","depositReasonCodes","payer_option","isSoldToAccount","validateOnBlur","invoice_PayerSelect","invoice_Payment","Statements","Help","NavAccountSelect","hasMorethanOneHeaderItems","onHeaderDropdownSelected","createSelectItems","dropdownRef","createRef","click","_loop","headerItem","activeClass","overflowClass","_this$props","startsWith","Toggle","Menu","MenuDrawer","showAccounts","toggleShowAccounts","onAccountSelect","logout","onClose","minWidth","List","ListSubheader","disableSticky","ListItem","button","ListItemText","ExpandLess_default","ExpandMore_default","Divider","Header","mapTableDropdownItems","dropdownItems","subItem","navLinkInvoiceClick","collapsed","navLinkClick","navLinkLogoutClick","stopPropagation","navLinkResetPasswordClick","navBarToggleClick","toggleDrawer","isOpen","drawerIsOpen","idleTimer","onAction","onIdle","paymentType","overpayment_allowed","reason_not_required","generel_data","partial_payments_allowed","cvv_use_control","requestBody","info","autoClose","collapsedClass","dist_index_es","logoutTimer","element","throttle","timeout","Drawer","header_MenuDrawer","header_NavAccountSelect","NavLink","exact","activeClassName","faCog","SoldToSelect","handleCustomerCheckChange","currentTarget","selectAll","allSelected","selectedItems","itemColor","isChecked","SoldToSelectAll","getName","BasePageErrorBoundary","hasError","Invoices","onSearchClick","handleDueChange","selectedDueOption","defaultToDate","selectedPaymentStatusOption","hasOneDropDownItems","handleSelectedDates","selectedDates","getFullYear","invoice_SoldToSelect","invoice_SoldToSelectAll","renderSecondarySelect","faCalendarAlt","build_default","dateFormat","faAngleRight","invoice_InvoiceList","selectedInvoices","userCustomerDetails","InvoiceDetail","onRemoveInvoiceFromSelected","onChangePayAmount","openAmount","partialAllowed","overPaymentAllowed","isValidSync","updatePayAmountForInvoice","handleReasonChange","selectedReasonCodeOption","errorClass","valid","payValidation","reasonDescriptionValidation","isItemPayment","showReasonDescription","isModelStateValid","isReasonCodeValid","reasonCodeRequired","getSoldToName","headerItems","payAmount","onMapSoldTo","payerCompanyCode","obj","postingDate","dueDate","faTimes","step","PaymentPageComponent","faAngleDoubleLeft","invoice_InvoiceDetail","Redirect","statuses","alertClass","documentNumber","referenceCode","sold_to","paymentCard","numbers","now","react_bootstrap_table_lib","tableHeaderClass","dataAlign","isKey","dataFormat","print","PaymentStatusPage","goBack","invoice_PaymentStatus","Detail","itemData","billingDocumentNumber","documentDate","totalAmount","currencyKey","customerAddress","invoiceRecipientAddress","backPage","pay","params","documentType","getInvoiceDetail","result","header_data","billingDocumentType","partner_data","partner_function","invoiceRecipient","item_data","headerDate","_this$state","formatHeaderDate","customerCity","customerRegion","customerPostalCode","invoiceRecipientCity","invoiceRecipientRegion","invoiceRecipientCode","showDetail","allowPay","nodetail","faAngleLeft","tableContainerClass","InvoiceSearch","onCharacteristicsValueChange","characteristicsValue","getDateFrom","days","setDate","getDate","searched","period","characteristics","characteristicsLabel","showDatesDue","showPeriod","showDatesPeriod","showCharacteristicsValue","onDateChange","onSelectChange","onFindClick","exportToPdf","getSearch","dateStr","from","_this$state2","datesRequired","filterValueRequired","filters","getInvoiceSearchPDF","countOfInvoices","faCalendar","minDate","maxDate","characterstic","primaryAccountIndex","currentPrimaryAccountIndex","pure","PayerDetailsContext","currentAccount","selectedPayer","prevAmount","getUserList","profile","page","deleteUserSapAccount","AccountId","saveUserSapAccount","updateUserSapAccount","createUserSapAccount","getUserSapAccounts","getUserByInvite","invite","getUserByPasswordReset","completeRegistration","inviteId","confirmPassword","completePasswordReset","getExclusionList","updateExclusionList","submitRegistration","registration","getRegistrationRequests","getRegistrationRequestById","yup","AccountTypeId","ManageUserSapAccount","_salesOrgs","propertyName","salesOrgs","saveAccount","AccountTypeValue","companyCodes","sap","company_codes","LinkedSapAccounts","addNewAccount","editAccount","deleteAccount","close","refreshAccounts","accountTypeId","primaryAcct","distributionChannel","getAccounts","user_management_ManageUserSapAccount","ExclusionItem","_deleteItem","AddExclusionItem","inputValue","_updateInput","_submit","aria-describedby","ExclusionList","exclusions","_addExclusion","_removeExclusion","getExclusions","newList","_updateExclusionList","updateExclusions","_refreshInvoices","splice","arr","exclusions_ExclusionItem","exclusions_AddExclusionItem","getAccountTypes","passwordChange","currentPasswordValid","newPasswordValid","confirmNewPasswordValid","onResetClick","validateFields","ResetPasswordMethod","user_management_LinkedSapAccounts","exclusions_ExclusionList","AccountPaymentPage","UserImpersonate","onCheckClick","currentRowUserId","nextProps","currentRowUser","Accounts","Pagination","goToPage","goTo","currentPage","itemCount","totalItems","numOfPages","ceil","firstNum","lastNum","pagesToShow","showBeginningEllipse","showEndEllipse","isFirstDisabled","isLastDisabled","aria-disabled","Company","formatEmailColumn","Email","impersonateFormatter","user_management_UserImpersonate","formatStatusColumn","Status","nameColumn","FirstName","LastName","profileColumn","accountsColumn","accountNumbers","join","UserList","userName","users","tableBodyClass","ListUsersPage","onSearchChange","onSearchChangeDebounce","userCount","getUsers","profileFilterChange","statusFilterChange","exportUsers","responseType","saveAs","faSearch","user_management_UserList","navigation_Pagination","UserRole","ManageUserForm","createdDate","CreatedDate","lastLoginDate","LastLoginDate","lastPasswordChange","LastPasswordChange","PrimaryAccountTypeValue","NumLogins","RegistrationRequestDetails","request","firstName","lastName","company","ManageUserPage","numLogins","primaryAcctType","userRole","saveUser","deleteUser","loadUser","fromRequest","getRegistrationRequest","userProfileId","registrationRequestId","registration_requests_RegistrationRequestDetails","user_management_ManageUserForm","RegistrationRequestList","renderActionButton","requests","RegistrationRequestsPage","getRequests","canAccess","registration_requests_RegistrationRequestList","JsonViewer","tab","renderProp","json","Array","isArray","renderName","renderArray","renderObject","string","words","w","toUpperCase","toLowerCase","CustomizingPage","JSONViewer","companyName","applicationUrl","smtpAddress","smtpPort","smtpUseUser","registrationRequestEmail","registrationRequestEmailContent","registrationRequestorEmailContent","welcomeEmailContent","resetPasswordEmailContent","emailConfirmationContent","fromAddress","fromAddressName","receiptEmailBody","receiptEmailRow","receiptBcc","smtpUser","smtpPassword","ccvideoUrl","ccpdfUrl","ecvideoUrl","ecpdfUrl","EditConfiguration","showConfiguration","testEmail","sendTestEmail","smtpConfig","prompt","alert","sapStatusGood","sapConfig","statusCode","statusMessage","customizing_CustomizingPage","SettingsPage","Switch","user_management_ManageUserPage","user_management_ListUsersPage","registration_requests_RegistrationRequestsPage","configuration_EditConfiguration","PaymentStatusErrorBoundary","setUser","header_Header","invoice_InvoiceDataManager","invoice_PayerDetailsDataManager","BasePageErrorBoundary_BasePageErrorBoundary","PaymentPage","PaymentStatusErrorBoundary_PaymentStatusErrorBoundary","invoice_PaymentStatusPage","DetailPage","invoice_InvoiceSearch","InvoicePage","deposits_Deposits","statements_Statements","help_Help","settings_page_SettingsPage","oneOf","Register","complete","RegisterPage","userNotFound","register_Register","RegistrationRequestForm","requestComplete","errorMessage","submit","RegistrationRequestPage","register_RegistrationRequestForm","SimpleHeader","ResetPasswordPage","requestForm","components_BackToLogin","ResetPasswordFinishForm","ResetPasswordFinishPage","passwordReset","reset_password_page_ResetPasswordFinishForm","isPublicUrl","ignoreList","ignore","RouterListener","pathname","setLastUrl","listen","formatMessage","verifyPassword","setErrorMessage","formProps","isConfirmed","invoiceNumber","invoiceAmount","accountNumber","AutoLinkAccountSuccess","zip","onClear","AutoLinkAccountForm","useContext","typeError","onSuccess","onError","AutoLinkAccount","setStatus","_useState3","_useState4","setInvoice","_useState5","_useState6","auto_register_AutoLinkAccountSuccess","AutoLinkAccountError","auto_register_AutoLinkAccountForm","onAccountAdded","AutoRegisterPage","RegisterForm","PromiseComponent","setValue","promise","wait","confirm","setConfirm","common_PromiseComponent","BasePage","setAccounts","updateAccounts","auto_register_AutoLinkAccount","partner","partner_number","SiteErrorBoundary","faLibrary","add","faMoneyCheck","faCaretUp","faCreditCard","faTrash","faEdit","faUser","App","messages","configPromise","loginStatusPromise","results","languages","setConfig","setLoginChecked","SiteErrorBoundary_SiteErrorBoundary","BrowserRouter","components_RouterListener","react_toastify_esm","react_activity","register_RegisterPage","components_SystemError","register_RegistrationRequestPage","auto_register_AutoRegisterPage","reset_password_page_ResetPasswordPage","reset_password_page_ResetPasswordFinishPage","AutoRegisterConfirmInstructions","auto_register_AutoRegisterConfirm","AutoRegisterWaitingConfirmation","AutoRegisterAccounts","d","__webpack_exports__","src_Index","autoAddCss","DefaultTheme","lazy","EpcoTheme","UrbanTheme","RecTheme","EltecTheme","ThemeSelector","Suspense","fallback","Index","src_ThemeSelector","es","src_App","ReactDOM"],"mappings":"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","file":"static/js/main.6c540541.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/playarrow.823f7ce6.png\";","module.exports = \"data:image/png;base64,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\"","export var FORCE_INVOICE_REFRESH = \"FORCE_INVOICE_REFRESH\";\r\nexport var SET_SELECTED_SOLD_TOS = 'SET_SELECTED_SOLD_TOS';\r\nexport var REMOVE_SOLD_TO_FROM_SELECTED = 'REMOVE_SOLD_TO_FROM_SELECTED';\r\nexport var ADD_SOLD_TO_TO_SELECTED = 'ADD_SOLD_TO_TO_SELECTED';\r\nexport var UPDATE_MULTI_SELECT_SOLD_TO = 'UPDATE_MULTI_SELECT_SOLD_TO';\r\nexport var SET_IS_LOGGED_IN = 'SET_IS_LOGGED_IN';\r\nexport var SET_LOGIN_CHECKED = 'SET_LOGIN_CHECKED';\r\n\r\n// Common Actions\r\nexport const LOADING_INCREMENT = 'LOADING_INCREMENT';\r\nexport const LOADING_DECREMENT = 'LOADING_DECREMENT';\r\nexport const CALL_FAILED = 'CALL_FAILED';\r\n\r\n// User Actions\r\nexport const LOGOUT = 'LOGOUT';\r\nexport const SET_LAST_URL = 'SET_LAST_URL';\r\nexport const SET_SELECTED_ACCOUNT = 'SET_SELECTED_ACCOUNT';\r\nexport const UN_AUTHORIZED = 'UN_AUTHORIZED';\r\nexport const GET_USER_SUCCESS = 'GET_USER_SUCCESS';\r\nexport const UPDATE_PASSWORD_RESPONSE = 'UPDATE_PASSWORD_RESPONSE';\r\n\r\n// Invoice List Actions\r\nexport const GET_INVOICES_SUCCESS = 'GET_INVOICES_SUCCESS';\r\n\r\nexport const GET_PAYER_DETAILS_SUCCESS = 'GET_PAYER_DETAILS_SUCCESS';\r\n\r\nexport const POST_PAYMENT_REQUEST = 'POST_PAYMENT_REQUEST';\r\nexport const POST_PAYMENT_SUCCESS = 'POST_PAYMENT_SUCCESS';\r\n\r\nexport const GET_INVOICE_CURRENCY_SUCCESS = 'GET_INVOICE_CURRENCY_SUCCESS';\r\n\r\nexport const GET_PRIMARY_ACCOUNTS_SUCCESS = 'GET_PRIMARY_ACCOUNTS_SUCCESS';\r\n\r\nexport const GET_API_VERSION_REQUEST = 'GET_API_VERSION_REQUEST';\r\nexport const GET_API_VERSION_SUCCESS = 'GET_API_VERSION_SUCCESS';\r\n\r\nexport const GET_CUSTOM_DATA_SUCCESS = 'GET_CUSTOM_DATA_SUCCESS';\r\nexport const SET_CONFIG = 'SET_CONFIG';\r\n\r\nexport const ADD_INVOICE_TO_SELECTED = 'ADD_INVOICE_TO_SELECTED';\r\nexport const REMOVE_INVOICE_FROM_SELECTED = 'REMOVE_INVOICE_FROM_SELECTED';\r\nexport const UPDATE_PAY_AMOUNT_FOR_INVOICE = 'UPDATE_PAY_AMOUNT_FOR_INVOICE';\r\nexport const UPDATE_REASON = 'UPDATE_REASON';\r\nexport const UPDATE_REASON_COMMENT = 'UPDATE_REASON_COMMENT';\r\nexport const COPY_SELECTED_INVOICES_TO_COMPLETED = 'MOVE_SELECTED_INVOICES_TO_COMPLETED';\r\nexport const CLEAR_SELECTED_INVOICES = 'CLEAR_SELECTED_INVOICES';\r\n\r\nexport const UPDATE_PAYMENT_CARD_OPTIONS = 'UPDATE_PAYMENT_CARD_OPTIONS';\r\nexport const UPDATE_INVOICE_LIST_REQUEST = 'UPDATE_INVOICE_LIST_REQUEST';\r\nexport const UPDATE_CURRENCY_CODE = 'UPDATE_CURRENCY_CODE';\r\nexport const UPDATE_CURRENCY_OPTIONS = 'UPDATE_CURRENCY_OPTIONS';\r\nexport const UPDATE_PAYMENT_STATUS = 'UPDATE_PAYMENT_STATUS';\r\nexport const UPDATE_CUSTOMER_OPTIONS = 'UPDATE_CUSTOMER_OPTIONS';\r\nexport const UPDATE_SELECTED_CUSTOMER_VALUE = 'UPDATE_SELECTED_CUSTOMER_VALUE';\r\nexport const UPDATE_PARTIAL_PAYMENT_ALLOWED_FLAG = 'UPDATE_PARTIAL_PAYMENT_ALLOWED_FLAG';\r\nexport const UPDATE_OVER_PAYMENT_ALLOWED_FLAG = 'UPDATE_OVER_PAYMENT_ALLOWED_FLAG';\r\nexport const UPDATE_REASON_NOT_REQUIRED_FLAG = 'UPDATE_REASON_NOT_REQUIRED_FLAG';\r\nexport const UPDATE_CVV_CONTROL_FLAG = 'UPDATE_CVV_CONTROL_FLAG';\r\nexport const ADD_SELECTED_SOLDTO = 'ADD_SELECTED_SOLDTO';\r\nexport const REMOVE_UN_SELECTED_SOLDTO = 'REMOVE_UN_SELECTED_SOLDTO';\r\nexport const REMOVE_ALL_SELECTED_SOLDTOS = 'REMOVE_ALL_SELECTED_SOLDTOS';\r\nexport const UPDATE_CVV = 'UPDATE_CVV';\r\nexport const UPDATE_SELECTED_CARD = 'UPDATE_SELECTED_CARD';\r\nexport const TOTAL_PAYING_AMOUNT = 'TOTAL_PAYING_AMOUNT';\r\nexport const OVER_PAYING_AMOUNT = 'OVER_PAYING_AMOUNT';\r\nexport const OVER_PAY_NOTE = 'OVER_PAY_NOTE';\r\nexport const INVOICE_SEARCH_FROM_DATE = 'INVOICE_SEARCH_FROM_DATE';\r\nexport const INVOICE_SEARCH_TO_DATE = 'INVOICE_SEARCH_TO_DATE';\r\nexport const INVOICE_SEARCH_DUE_FROM_DATE = 'INVOICE_SEARCH_DUE_FROM_DATE';\r\nexport const INVOICE_SEARCH_DUE_TO_DATE = 'INVOICE_SEARCH_DUE_TO_DATE';\r\nexport const UPDATE_INVOICE_SEARCH_QUERY = 'UPDATE_INVOICE_SEARCH_QUERY';\r\nexport const UPDATE_INVOICE_SEARCH_MODE = 'UPDATE_INVOICE_SEARCH_MODE';\r\nexport const UPDATE_IMPERSONATE_USER_ID = 'UPDATE_IMPERSONATE_USER_ID';\r\nexport const SET_ACCOUNT_TYPE = 'SET_ACCOUNT_TYPE';\r\nexport const UPDATE_ACCOUNT_TYPES = 'UPDATE_ACCOUNT_TYPES';\r\nexport const UPDATE_PRIMARY_ACCOUNT_TYPES = 'UPDATE_PRIMARY_ACCOUNT_TYPES';\r\n\r\nexport const SET_PAYMENT_METHODS = 'SET_PAYMENT_METHODS';\r\n\r\n","import * as jwt from \"jwt-decode\"\r\n\r\nexport function trimLeadingZeroes(str){\r\n if(typeof str === 'undefined' || str === null){\r\n return '';\r\n }\r\n return str.replace(/^0+/, '')\r\n}\r\n\r\nexport function getInvoiceKey(invoice){\r\n return invoice.billing_document_number + '__' + invoice.document_number_finance;\r\n}\r\n\r\nexport function isStringNotEmptyOrNull(val: string) {\r\n return typeof val !== \"undefined\" && val !== null && val !== \"\";\r\n}\r\n","import * as types from '../constants/ActionTypes';\r\nimport {getInvoiceKey} from \"../utils\";\r\n\r\nexport function refreshInvoices() {\r\n return {\r\n type: types.FORCE_INVOICE_REFRESH,\r\n payload: {},\r\n }\r\n}\r\n\r\nexport const invoiceInitialState = {\r\n forceRefresh: 0, // sometimes we need to force the invoice list to refresh. Increment this number to do so.\r\n selected: {},\r\n invoiceDetail: {},\r\n completed: {\r\n invoices: {},\r\n detials: {},\r\n }\r\n};\r\n\r\nexport function invoiceReducer(state = invoiceInitialState, action) {\r\n switch (action.type) {\r\n case types.ADD_INVOICE_TO_SELECTED:\r\n var key = getInvoiceKey(action.payload);\r\n return {\r\n ...state,\r\n selected: {\r\n ...state.selected,\r\n [key]: action.payload,\r\n },\r\n invoiceDetail: {\r\n ...state.invoiceDetail,\r\n [key]: {\r\n amount: action.payload.open_amount.toFixed(2),\r\n amountValidation: '',\r\n reason: '',\r\n comment: '',\r\n },\r\n }\r\n };\r\n case types.REMOVE_INVOICE_FROM_SELECTED:\r\n var key = getInvoiceKey(action.payload);\r\n let newState = {\r\n ...state,\r\n selected: {...state.selected},\r\n invoiceDetail: {...state.invoiceDetail}\r\n };\r\n delete newState.selected[key];\r\n delete newState.invoiceDetail[key];\r\n return newState;\r\n case types.UPDATE_PAY_AMOUNT_FOR_INVOICE:\r\n let reason = \"\";\r\n let currentDetails = state.invoiceDetail[action.payload.documentId];\r\n if(action.payload.overUnder === currentDetails.overUnder){\r\n reason = currentDetails.reason;\r\n }\r\n \r\n return {\r\n ...state,\r\n invoiceDetail: {\r\n ...state.invoiceDetail,\r\n [action.payload.documentId]: {\r\n ...currentDetails,\r\n amount: action.payload.amount,\r\n amountValidation: action.payload.amountValidation,\r\n reason: reason,\r\n overUnder: action.payload.overUnder,\r\n }\r\n }\r\n };\r\n case types.UPDATE_REASON:\r\n return {\r\n ...state,\r\n invoiceDetail: {\r\n ...state.invoiceDetail,\r\n [action.payload.documentId]: {\r\n ...state.invoiceDetail[action.payload.documentId],\r\n reason: action.payload.reason,\r\n }\r\n }\r\n };\r\n case types.UPDATE_REASON_COMMENT:\r\n return {\r\n ...state,\r\n invoiceDetail: {\r\n ...state.invoiceDetail,\r\n [action.payload.documentId]: {\r\n ...state.invoiceDetail[action.payload.documentId],\r\n comment: action.payload.comment,\r\n }\r\n }\r\n };\r\n case types.COPY_SELECTED_INVOICES_TO_COMPLETED:\r\n return {\r\n ...state,\r\n completed: {\r\n invoices: {\r\n ...state.selected,\r\n },\r\n details: {\r\n ...state.invoiceDetail,\r\n },\r\n },\r\n };\r\n case types.CLEAR_SELECTED_INVOICES:\r\n return {\r\n ...state,\r\n selected: {},\r\n invoiceDetail: {},\r\n };\r\n case types.FORCE_INVOICE_REFRESH:\r\n return {...state, forceRefresh: state.forceRefresh + 1};\r\n default:\r\n return {...state};\r\n }\r\n}\r\n","import * as types from '../constants/ActionTypes';\r\n\r\nexport const cnbsInitialState = {\r\n paymentStatusOptions: [\r\n { value: 'open', label: 'Open', clearableValue: false },\r\n { value: 'paid', label: 'Cleared', clearableValue: false }\r\n ],\r\n currencyOptions: [\r\n { value: 'USD', label: 'USD', clearableValue: false },\r\n { value: 'Euro', label: 'Euro', clearableValue: false }\r\n ],\r\n dueOptions: [\r\n { value: 'Due', label: 'Due up to', clearableValue: false },\r\n { value: 'All', label: 'Show All', clearableValue: false }\r\n ],\r\n invoiceStatusOptions: [\r\n { value: '03', label: 'All' },\r\n { value: '01', label: 'Due' },\r\n { value: '02', label: 'Complete' },\r\n ],\r\n invoicePaymentOptions: [\r\n { value: '009', label: 'Due' },\r\n { value: '010', label: 'Not due' },\r\n { value: '011', label: 'Due or not due' }\r\n ],\r\n periodOptions: [\r\n { value: '0', label: 'Today' },\r\n { value: '1', label: 'Since yesterday' },\r\n { value: '7', label: 'Last 7 days' },\r\n { value: '30', label: 'Last 30 days' },\r\n { value: '365', label: 'Last 365 days' },\r\n { value: '-1', label: 'Custom date range' }\r\n ],\r\n characteristicsOptions: [\r\n { value: '01', label: 'Invoice Number' },\r\n ],\r\n invoices: [],\r\n currentUser: null,\r\n listHeight: '400px',\r\n animating: 0,\r\n invoiceListRequest: '',\r\n selectedCurrencyOptionValue: '',\r\n payerDetails: {\r\n payment_cards: []\r\n },\r\n paymentStatuses: null,\r\n reasonNotRequired: '',\r\n cvvRequired: false,\r\n cvvValue: '',\r\n selectedCard: '',\r\n overPayNote: '',\r\n accountTypes: [],\r\n primaryAccountTypes: [],\r\n};\r\n\r\nexport default function reducer(state = cnbsInitialState, action) {\r\n switch (action.type) {\r\n // Common props\r\n\r\n case types.LOADING_INCREMENT: {\r\n return { ...state, animating: state.animating + 1 };\r\n }\r\n case types.LOADING_DECREMENT: {\r\n return { ...state, animating: state.animating - 1 };\r\n }\r\n \r\n case types.GET_USER_SUCCESS: {\r\n return {\r\n ...state,\r\n currentUser: action.payload,\r\n };\r\n }\r\n\r\n case types.GET_INVOICES_SUCCESS: {\r\n return {\r\n ...state,\r\n invoices: action.payload\r\n };\r\n }\r\n\r\n case types.UPDATE_INVOICE_LIST_REQUEST: {\r\n return { ...state, invoiceListRequest: action.payload };\r\n }\r\n\r\n case types.UPDATE_CURRENCY_CODE: {\r\n return { ...state, selectedCurrencyOptionValue: action.payload };\r\n }\r\n case types.UPDATE_CURRENCY_OPTIONS: {\r\n return { ...state, currencyOptions: action.payload };\r\n }\r\n \r\n case types.GET_PAYER_DETAILS_SUCCESS: {\r\n return {\r\n ...state,\r\n payerDetails: action.payload\r\n };\r\n }\r\n\r\n case types.UPDATE_PAYMENT_CARD_OPTIONS: {\r\n return { ...state, paymentCardOptions: action.payload };\r\n }\r\n\r\n case types.POST_PAYMENT_REQUEST: {\r\n return {\r\n ...state,\r\n showPaymentStatus: true\r\n };\r\n }\r\n\r\n case types.POST_PAYMENT_SUCCESS: {\r\n return {\r\n ...state,\r\n showPaymentStatus: true,\r\n paymentStatuses: action.payload\r\n };\r\n }\r\n\r\n case types.GET_INVOICE_CURRENCY_SUCCESS: {\r\n return {\r\n ...state,\r\n currencyOptions: action.payload\r\n };\r\n }\r\n\r\n case types.UPDATE_PAYMENT_STATUS: {\r\n return { ...state, paymentStatuses: null, showPaymentStatus: false };\r\n }\r\n\r\n case types.UPDATE_CVV_CONTROL_FLAG: {\r\n return { ...state, cvvRequired: action.payload };\r\n }\r\n\r\n case types.UPDATE_CVV:\r\n return { ...state, cvvValue: action.payload };\r\n\r\n case types.UPDATE_SELECTED_CARD:\r\n return { ...state, selectedCard: action.payload };\r\n\r\n case types.OVER_PAY_NOTE:\r\n return { ...state, overPayNote: action.payload };\r\n\r\n case types.UPDATE_ACCOUNT_TYPES: {\r\n return {\r\n ...state, accountTypes: action.payload,\r\n };\r\n }\r\n\r\n case types.UPDATE_PRIMARY_ACCOUNT_TYPES: {\r\n return {\r\n ...state, primaryAccountTypes: action.payload,\r\n };\r\n }\r\n\r\n default: {\r\n return state;\r\n }\r\n }\r\n}\r\n","import * as types from '../constants/ActionTypes';\r\n\r\nexport function setConfig(config) {\r\n return {\r\n type: types.SET_CONFIG,\r\n payload: config,\r\n }\r\n}\r\n\r\nconst appInitialState = {\r\n isPartialPaymentsAllowed: '',\r\n isInvoiceOverpaymentAllowed: '',\r\n cnbsConfig: [],\r\n config: {\r\n invoice_table: { columns : []},\r\n },\r\n paymentMethods: [],\r\n};\r\n\r\nexport function appReducer(state = appInitialState, action) {\r\n switch (action.type) {\r\n \r\n case types.UPDATE_PARTIAL_PAYMENT_ALLOWED_FLAG: {\r\n let val = typeof action.payload !== 'undefined' && (action.payload === 'X' || action.payload === 'R');\r\n return {...state, isPartialPaymentsAllowed: val};\r\n }\r\n \r\n case types.UPDATE_OVER_PAYMENT_ALLOWED_FLAG: {\r\n let val = typeof action.payload !== 'undefined' && action.payload === 'X';\r\n return {...state, isInvoiceOverpaymentAllowed: val};\r\n }\r\n \r\n case types.GET_CUSTOM_DATA_SUCCESS: {\r\n return {\r\n ...state, cnbsConfig: action.payload,\r\n };\r\n }\r\n \r\n case types.SET_CONFIG: {\r\n return {\r\n ...state, config: action.payload,\r\n };\r\n }\r\n \r\n case types.SET_PAYMENT_METHODS: {\r\n return {...state, paymentMethods: action.payload};\r\n }\r\n\r\n default:\r\n return {...state};\r\n }\r\n}\r\n","/**\r\n * This state/reducer focuses on modes that the user can change such as the soldto/payers.\r\n */\r\nimport * as types from '../constants/ActionTypes';\r\n\r\nconst initialState = {\r\n accountType: \"\",\r\n secondaryAccounts: [],\r\n selectedSecondaryAccount: 0,\r\n selectedSoldTos: [], // used for Payer Account Type\r\n invoiceSearchFromDate: '', //appConstants.INV_LIST_REQ_BEGIN_DATE,\r\n invoiceSearchToDate: '', //moment(new Date()).format('MM-DD-YYYY'),\r\n selectedPrimaryAccountIndex: 0,\r\n primaryAccounts: [],\r\n\r\n invoiceSearchStatus: '',\r\n invoiceSearchDueDateFrom: '',\r\n invoiceSearchDueDateTo: '',\r\n filter: [],\r\n impersonatedUserId:null,\r\n};\r\n\r\nexport function userOptionsReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.UPDATE_CUSTOMER_OPTIONS: {\r\n return { ...state, secondaryAccounts: action.payload };\r\n }\r\n\r\n case types.UPDATE_SELECTED_CUSTOMER_VALUE: {\r\n return { ...state, selectedSecondaryAccount: action.payload };\r\n }\r\n\r\n case types.UPDATE_MULTI_SELECT_SOLD_TO: {\r\n return { ...state, selectedMultiSoldTo: action.payload };\r\n }\r\n\r\n case types.ADD_SELECTED_SOLDTO:\r\n return {\r\n ...state,\r\n secondaryAccounts: [...state.secondaryAccounts, action.payload]\r\n };\r\n\r\n case types.REMOVE_UN_SELECTED_SOLDTO:\r\n return {\r\n ...state,\r\n secondaryAccounts: [...state.secondaryAccounts, action.payload]\r\n };\r\n\r\n case types.REMOVE_ALL_SELECTED_SOLDTOS:\r\n return {\r\n ...state,\r\n secondaryAccounts: [...state.secondaryAccounts, action.payload]\r\n };\r\n\r\n case types.INVOICE_SEARCH_FROM_DATE:\r\n return { ...state, invoiceSearchFromDate: action.payload };\r\n\r\n case types.INVOICE_SEARCH_TO_DATE:\r\n return { ...state, invoiceSearchToDate: action.payload };\r\n \r\n case types.INVOICE_SEARCH_DUE_FROM_DATE:\r\n return { ...state, invoiceSearchDueDateFrom: action.payload };\r\n\r\n case types.INVOICE_SEARCH_DUE_TO_DATE:\r\n return { ...state, invoiceSearchDueDateTo: action.payload };\r\n\r\n case types.SET_SELECTED_ACCOUNT: {\r\n let selectedSoldTos = action.payload.setSecondary ? state.primaryAccounts[action.payload.selectedPrimaryAccountIndex].DropDownItems.map(account => account.PrimaryAcct ) : [];\r\n return {\r\n ...state,\r\n selectedPrimaryAccountIndex: action.payload.selectedPrimaryAccountIndex,\r\n selectedSoldTos: selectedSoldTos,\r\n secondaryAccounts: state.primaryAccounts[action.payload.selectedPrimaryAccountIndex].DropDownItems\r\n };\r\n }\r\n\r\n case types.GET_PRIMARY_ACCOUNTS_SUCCESS: {\r\n return {\r\n ...state,\r\n primaryAccounts: action.payload.accounts,\r\n secondaryAccounts: action.payload.clearSecondary ? action.payload.accounts[0].DropDownItems : state.secondaryAccounts,\r\n };\r\n }\r\n\r\n case types.UPDATE_IMPERSONATE_USER_ID: {\r\n if(action.payload === \"\"){\r\n action.payload = null;\r\n }\r\n return {\r\n ...state,\r\n impersonatedUserId: action.payload,\r\n };\r\n }\r\n\r\n case types.ADD_SOLD_TO_TO_SELECTED: {\r\n let newArray = state.selectedSoldTos.slice();\r\n newArray.push(action.payload);\r\n return {\r\n ...state,\r\n selectedSoldTos: newArray\r\n };\r\n }\r\n\r\n case types.REMOVE_SOLD_TO_FROM_SELECTED: {\r\n return {\r\n ...state,\r\n selectedSoldTos: state.selectedSoldTos.filter(i => i !== action.payload)\r\n };\r\n }\r\n case types.SET_SELECTED_SOLD_TOS: {\r\n return {\r\n ...state,\r\n selectedSoldTos: action.payload\r\n };\r\n }\r\n\r\n case types.UPDATE_INVOICE_SEARCH_QUERY:\r\n return {\r\n ...state,\r\n invoiceSearchStatus: action.payload.status,\r\n invoiceSearchDueDateFrom: action.payload.dueDateFrom,\r\n invoiceSearchDueDateTo: action.payload.dueDateTo,\r\n invoiceSearchFromDate: action.payload.dateFrom,\r\n invoiceSearchToDate: action.payload.dateTo,\r\n filter: action.payload.filter,\r\n };\r\n\r\n case types.UPDATE_INVOICE_SEARCH_MODE:\r\n return {\r\n ...state,\r\n };\r\n case types.SET_ACCOUNT_TYPE:\r\n return {\r\n ...state,\r\n accountType: action.payload\r\n };\r\n \r\n \r\n\r\n default:\r\n return { ...state };\r\n }\r\n}\r\n","/**\r\n * This state/reducer focuses on modes that the user can change such as the soldto/payers.\r\n */\r\nimport * as types from '../constants/ActionTypes';\r\n\r\nconst initialState = {\r\n loginChecked: false,\r\n isLoggedIn: false,\r\n loginCount: 0,\r\n lastUrl: '/invoices',\r\n};\r\n\r\nexport function userReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case types.SET_LOGIN_CHECKED:\r\n return {...state, loginChecked: action.payload.checked, isLoggedIn: action.payload.isLoggedIn, loginCount: state.loginCount++};\r\n case types.SET_IS_LOGGED_IN:\r\n return {...state, isLoggedIn: action.payload, loginCount: state.loginCount++};\r\n case types.LOGOUT:\r\n return {...state, isLoggedIn: false};\r\n case types.SET_LAST_URL:\r\n return {...state, lastUrl: action.payload};\r\n default:\r\n return {...state};\r\n }\r\n}\r\n","export const SET_EDITING_PAYMENT = 'SET_EDITING_PAYMENT';\r\nexport const ADD_SESSION_CARD = 'ADD_SESSION_CARD';\r\nexport const UPDATE_SESSION_CARD = 'UPDATE_SESSION_CARD';\r\nexport const DELETE_SESSION_CARD = 'DELETE_SESSION_CARD';\r\nexport const ADD_SESSION_CHECK = 'ADD_SESSION_CHECK';\r\nexport const UPDATE_SESSION_CHECK = 'UPDATE_SESSION_CHECK';\r\nexport const DELETE_SESSION_CHECK = 'DELETE_SESSION_CHECK';\r\nexport const CLEAR_SESSION_PAYMENT_METHODS = 'CLEAR_SESSION_PAYMENT_METHODS';\r\n\r\nexport function setEditingPayment(paymentcard) {\r\n return {\r\n type: SET_EDITING_PAYMENT,\r\n payload: paymentcard,\r\n }\r\n}\r\n\r\nexport function addSessionCard(payment, payer) {\r\n return {\r\n type: ADD_SESSION_CARD,\r\n payload: {\r\n payment,\r\n payer\r\n }\r\n }\r\n}\r\n\r\nexport function updateSessionCard(payment, payer) {\r\n return {\r\n type: UPDATE_SESSION_CARD,\r\n payload: {\r\n payment,\r\n payer\r\n }\r\n }\r\n}\r\n\r\nexport function deleteSessionCard(payment, payer) {\r\n return {\r\n type: DELETE_SESSION_CARD,\r\n payload: {\r\n payment,\r\n payer\r\n }\r\n }\r\n}\r\n\r\nexport function addSessionCheck(payment, payer) {\r\n return {\r\n type: ADD_SESSION_CHECK,\r\n payload: {\r\n payment,\r\n payer\r\n }\r\n }\r\n}\r\n\r\nexport function updateSessionCheck(payment, payer) {\r\n return {\r\n type: UPDATE_SESSION_CHECK,\r\n payload: {\r\n payment,\r\n payer\r\n }\r\n }\r\n}\r\n\r\nexport function deleteSessionCheck(payment, payer) {\r\n return {\r\n type: DELETE_SESSION_CHECK,\r\n payload: {\r\n payment,\r\n payer\r\n }\r\n }\r\n}\r\n\r\nexport function clearSessionPaymentMethods() {\r\n return {\r\n type: CLEAR_SESSION_PAYMENT_METHODS,\r\n }\r\n}\r\n\r\nconst initialState = {\r\n editingPayment: null, // payment details of the payment method being edited.\r\n sessionCards: {},\r\n sessionChecks: {},\r\n};\r\n\r\n\r\nexport function paymentReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case SET_EDITING_PAYMENT:\r\n return {...state, editingPayment: action.payload};\r\n \r\n case ADD_SESSION_CARD: {\r\n let all = {...state.sessionCards};\r\n let cards = {...state.sessionCards[action.payload.payer]};\r\n cards[action.payload.payment.payment_card_token] = action.payload.payment;\r\n all[action.payload.payer] = cards;\r\n return {...state, sessionCards: all};\r\n }\r\n \r\n case UPDATE_SESSION_CARD: {\r\n let all = {...state.sessionCards};\r\n let cards = {...state.sessionCards[action.payload.payer]};\r\n cards[action.payload.payment.payment_card_token] = {...action.payload.payment};\r\n all[action.payload.payer] = cards;\r\n return {...state, sessionCards: all};\r\n }\r\n \r\n case DELETE_SESSION_CARD: {\r\n let all = {...state.sessionCards};\r\n let cards = {...state.sessionCards[action.payload.payer]};\r\n if (typeof cards[action.payload.payment.payment_card_token] !== 'undefined') {\r\n delete cards[action.payload.payment.payment_card_token];\r\n }\r\n all[action.payload.payer] = cards;\r\n return {...state, sessionCards: all};\r\n }\r\n case ADD_SESSION_CHECK: {\r\n let all = {...state.sessionChecks};\r\n let checks = {...state.sessionChecks[action.payload.payer]};\r\n checks[action.payload.payment.payment_card_token] = action.payload.payment;\r\n all[action.payload.payer] = checks;\r\n return {...state, sessionChecks: all};\r\n }\r\n case UPDATE_SESSION_CHECK: {\r\n let all = {...state.sessionChecks};\r\n let checks = {...state.sessionChecks[action.payload.payer]};\r\n checks[action.payload.payment.payment_card_token] = {...action.payload.payment};\r\n all[action.payload.payer] = checks;\r\n return {...state, sessionChecks: all};\r\n }\r\n case DELETE_SESSION_CHECK: {\r\n let all = {...state.sessionChecks};\r\n let checks = {...state.sessionChecks[action.payload.payer]};\r\n if (typeof checks[action.payload.payment.payment_card_token] !== 'undefined') {\r\n delete checks[action.payload.payment.payment_card_token];\r\n }\r\n all[action.payload.payer] = checks;\r\n return {...state, sessionChecks: all};\r\n }\r\n case CLEAR_SESSION_PAYMENT_METHODS: {\r\n return {...state, sessionChecks: {}, sessionCards: {}};\r\n }\r\n default: {\r\n return {...state};\r\n }\r\n }\r\n}\r\n","import * as types from '../constants/ActionTypes';\r\nimport {combineReducers} from \"redux\";\r\nimport {invoiceReducer} from \"./InvoiceReducer\";\r\nimport defaultReducer from \"./CnbsReducer\";\r\nimport {appReducer} from \"./AppReducer\";\r\nimport {userOptionsReducer} from \"./UserOptionsReducer\";\r\nimport {userReducer} from \"./UserReducer\";\r\nimport {paymentReducer} from \"./PaymentReducer\";\r\n\r\n// import {clearCache} from \"../components/invoice/Selectors\";\r\n\r\nconst _rootReducer = combineReducers({\r\n app: appReducer,\r\n default: defaultReducer,\r\n invoice: invoiceReducer,\r\n user_options: userOptionsReducer,\r\n user: userReducer,\r\n payment: paymentReducer,\r\n});\r\n\r\nexport const rootReducer = (state, action) => {\r\n if (action.type === types.LOGOUT) {\r\n sessionStorage.removeItem('token');\r\n sessionStorage.removeItem('refreshToken');\r\n state = {\r\n user: {\r\n loginChecked: true,\r\n lastUrl: state.user.lastUrl,\r\n loginCount: state.user.loginCount++,\r\n },\r\n app: state.app,\r\n };\r\n }\r\n\r\n return _rootReducer(state, action)\r\n};","import { createStore } from 'redux';\r\nimport {rootReducer} from './reducers/RootReducer';\r\n\r\nexport default createStore(\r\n rootReducer,\r\n window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__(),\r\n);\r\n","/* eslint-env browser */\r\nimport React from 'react';\r\nimport { toast } from 'react-toastify';\r\nimport * as types from '../constants/ActionTypes';\r\n\r\nexport function loadingDecrement(dispatch) {\r\n dispatch({ type: types.LOADING_DECREMENT});\r\n}\r\nexport function loadingIncrement(dispatch) {\r\n dispatch({ type: types.LOADING_INCREMENT});\r\n}\r\n\r\nexport function setProperty(dispatch, propType) {\r\n dispatch({ type: propType });\r\n}\r\n\r\nexport function requestStarted(dispatch, actionType) {\r\n dispatch({ type: actionType });\r\n}\r\n\r\nexport function updateState(dispatch, actionType, data, cb = () =>{}) {\r\n dispatch({ type: actionType, payload: data }, cb);\r\n}\r\n\r\nexport function requestErrored(dispatch, errorObj, actionType) {\r\n dispatch({ type: types.CALL_FAILED, payload: errorObj, call: actionType });\r\n if (errorObj && errorObj.response && errorObj.response.statusText === 'Unauthorized') {\r\n dispatch({ type: types.LOGOUT});\r\n } else if (errorObj && errorObj.response && errorObj.response.status >= 500) {\r\n toast.error(\"System Error\", { position: toast.POSITION.TOP_RIGHT });\r\n } else if (errorObj && errorObj.response && typeof errorObj.response.data) {\r\n const uiError =
{'Error: '}{errorObj.response.data.error}{
}{'Unique Id: '}{errorObj.response.data.uniqueId}
;\r\n toast.error(uiError, { position: toast.POSITION.TOP_RIGHT });\r\n }\r\n else if (errorObj && errorObj.response && errorObj.response.statusText) {\r\n toast.error(errorObj.response.statusText, { position: toast.POSITION.TOP_RIGHT });\r\n } else if (errorObj && errorObj.message) {\r\n toast.error(\"System Error\", { position: toast.POSITION.TOP_RIGHT });\r\n }\r\n}\r\n\r\nexport function requestUnauthorized(dispatch, errorObj) {\r\n dispatch({ type: types.UN_AUTHORIZED, payload: errorObj });\r\n dispatch({ type: types.LOGOUT });\r\n}\r\n\r\nexport function loginFailed(dispatch, errorObj) {\r\n dispatch({ type: types.UN_AUTHORIZED, payload: errorObj });\r\n\r\n if (errorObj && errorObj.response && errorObj.response.statusText === 'Unauthorized') {\r\n toast.error(errorObj.response.data, { position: toast.POSITION.TOP_RIGHT });\r\n }\r\n}","import axios from 'axios';\r\nimport store from './store';\r\nimport {loadingDecrement, loadingIncrement} from \"./actions/CommonActions\";\r\nimport {setIsLoggedIn} from \"./actions/UserActions\";\r\n\r\nconst instance = axios.create({});\r\nlet token = sessionStorage.getItem('token');\r\ninstance.defaults.headers.common['Authorization'] = `Bearer ${token}`;\r\n\r\nfunction handleErrors(e) {\r\n if(typeof e.response === \"undefined\"){\r\n // Network error, no response came back.\r\n loadingDecrement(store.dispatch);\r\n return;\r\n }\r\n if (e.response.status === 401) {\r\n if (e.response.data && e.response.data.reason === 'not_logged_in') {\r\n store.dispatch(setIsLoggedIn(false));\r\n }\r\n }\r\n loadingDecrement(store.dispatch);\r\n}\r\n\r\nexport default {\r\n\r\n get: (url, config) => {\r\n loadingIncrement(store.dispatch);\r\n return axios.get(url, config).then(response => {\r\n loadingDecrement(store.dispatch);\r\n return response;\r\n }).catch((e) => {\r\n handleErrors(e);\r\n throw e;\r\n });\r\n },\r\n\r\n post: (url, data, config = {}) => {\r\n loadingIncrement(store.dispatch);\r\n return axios.post(url, data, config).then(response => {\r\n loadingDecrement(store.dispatch);\r\n return response;\r\n }).catch((e) => {\r\n handleErrors(e);\r\n throw e;\r\n });\r\n },\r\n\r\n put: (url, data) => {\r\n loadingIncrement(store.dispatch);\r\n return axios.put(url, data).then(response => {\r\n loadingDecrement(store.dispatch);\r\n return response;\r\n }).catch((e) => {\r\n handleErrors(e);\r\n throw e;\r\n });\r\n },\r\n\r\n delete: (url, config) => {\r\n loadingIncrement(store.dispatch);\r\n return axios.delete(url, config).then(response => {\r\n loadingDecrement(store.dispatch);\r\n return response;\r\n }).catch((e) => {\r\n handleErrors(e);\r\n throw e;\r\n });\r\n },\r\n\r\n instance: instance\r\n\r\n};\r\n","export const CREDENTIALS_REQUIRED = 'Email And Password Are Required.';\r\nexport const CREDENTIALS_INVALID = 'Authentication Failed, Invalid Credentials.';\r\nexport const INVOICE_CHECK = 'Please select Invoices to continue.';\r\nexport const AUTHENTICATION_ERROR = 'Error while authenicating.';\r\nexport const CARD_NOT_SELECTED = 'Card not selected.';\r\nexport const CVV_EMPTY = 'CVV Is Required.';\r\nexport const CVV_INVALID = 'Invalid CVV number.';\r\nexport const REASON_REQUIRED = 'Reason is required.';\r\nexport const CREDIT_AMOUNT_VALIDATION_ERRORS = 'Invoices Open and Pay amount should be greter than Credit amount.';\r\nexport const OVER_PAY_NOT_ALLOWED = 'Overpayments is not allowed.';\r\nexport const PAY_AMOUNT_VALIDATION_MESSAGE = 'Total pay amount should be greater than 0.';\r\nexport const REASON_DESCRIPTION_VALIDATION_MESSAGE = 'Reason description required.';\r\nexport const GET_USER_ERROR = 'Error getting user profile from API.';\r\nexport const GET_USER_PAYER_ERROR = 'Error get user payers from API.';\r\nexport const GET_INVOICE_ERROR = 'Error getting invoices from API.';\r\nexport const GET_INVOICE_DETAIL_ERROR = 'Error getting invoice detail from API.';\r\nexport const GET_INVOICE_PDF_ERROR = 'Error getting invoices PDF from API.';\r\nexport const GET_PAYER_DETAILS_ERROR = 'Error getting payer details from API.';\r\nexport const MAKE_PAYMENT_ERROR = 'Error when making payment.';\r\nexport const GET_CONFIG_ERROR = 'Error getting configuration.';\r\nexport const GET_API_VERSION_ERROR = 'Error getting API version.';\r\nexport const RESET_PASSWORD_ERROR = 'Error while resetting the password.';\r\nexport const RESET_PASSWORD_SUCCESS = 'Password reset successfully.';\r\nexport const DUE_DATES_REQUIRED = 'Due dates required.';\r\nexport const DOCUMENT_DATES_REQUIRED = 'Document dates required.';\r\nexport const CHARACTERISTICS_VALUE_REQUIRED = 'Characteristics value required.';\r\n","// Host\r\n// Make sure DEV_HOST_URL assigned when deployed\r\nexport const CURRENT_HOST_URL = process.env.REACT_APP_HOST_URL;\r\n\r\n// Authentication\r\nexport const LOGIN_URL = `/api/token/login?`;\r\nexport const REFRESH_TOKEN_URL = `/api/token/refresh?`;\r\nexport const LOGOUT_URL = `/api/token/logout`;\r\nexport const GET_USER_URL = `/api/token/getuseraccounts`;\r\nexport const RESET_PASSWORD = `/api/token/resetpassword`;\r\n\r\n// Invoice\r\nexport const INVOICE_LIST_URL = `/api/Invoice`;\r\nexport const INVOICE_DETAIL_URL = `/api/invoice/detail`;\r\nexport const INVOICE_PDF_URL = `/api/Invoice/pdf-request`;\r\nexport const INVOICE_SEARCH_PDF_URL = `/api/invoice/search-pdf-request`;\r\nexport const PAYMENT_URL = `/api/invoice/payments`;\r\nexport const INVOICE_BULK_URL = '/api/Invoice/bulk-pdf-request';\r\n\r\n// Customer\r\nexport const PAYER_DETAILS_URL = `/api/customer/payer`;\r\nexport const CUSTOM_DATA_URL = `/api/customer/customizing`;\r\nexport const USER_PAYERS_URL = `/api/customer/getuserpayers?`;\r\nexport const MANAGE_PAYMENTS_URL = `/api/customer/payment_cards?`;\r\nexport const DEPOSIT_URL = `/api/customer/makedeposit`;\r\n\r\n// Payment Methods\r\nexport const GET_PAYMENT_ACCESS_TOKEN = `/api/tokenization/access_token?`;\r\nexport const GET_PAYMENT_RESPONSE = `/api/tokenization/response?`;\r\n\r\n// User Management\r\nexport const GET_USER_LIST = '/api/users';\r\nexport const EXPORT_USERS = '/api/users/export';\r\n\r\n// AccountType Management\r\nexport const GET_ACCOUNT_TYPE_LIST = '/api/configuration/getaccounttypes';\r\nexport const GET_PRIMARY_ACCOUNT_TYPE_LIST = '/api/configuration/getprimaryaccounttypes';\r\n","export const SOLD_TO_COMPARE = 'SoldTo';\r\nexport const PAYER_COMPARE = 'Payer';\r\nexport const ACCOUNT_PAYER_ALL = 'PayerAll';\r\nexport const INV_LIST_REQ_BEGIN_DATE = '01-01-1900';\r\nexport const INV_LIST_REQ_END_DATE = '01-01-9999';\r\nexport const SUCCESS = 'Success';\r\nexport const DEFAULT_DEPOSIT_REASON_CODE = '055';\r\n","export default class Invoice {\r\n constructor(initializer) {\r\n this.billing_document_number = initializer.billing_document_number;\r\n this.document_number_finance = initializer.document_number_finance;\r\n this.line_item_in_the_relevant_invoice =\r\n initializer.line_item_in_the_relevant_invoice;\r\n this.finance_document_type = initializer.finance_document_type;\r\n this.clearing_document_number_finance =\r\n initializer.clearing_document_number_finance;\r\n this.reference_number = initializer.reference_number;\r\n this.fiscal_year_of_the_relevant_invoice =\r\n initializer.fiscal_year_of_the_relevant_invoice;\r\n this.finance_document_only = initializer.finance_document_only;\r\n this.item_is_a_payment = initializer.item_is_a_payment;\r\n this.read_only_flag = initializer.read_only_flag;\r\n this.soldto_number = initializer.soldto_number;\r\n this.payer_number = initializer.payer_number;\r\n this.posting_date = initializer.posting_date;\r\n this.document_date = initializer.document_date;\r\n this.due_date = initializer.due_date;\r\n this.clearing_date = initializer.clearing_date;\r\n this.days_in_arrears = initializer.days_in_arrears;\r\n this.currency_key = initializer.currency_key;\r\n this.total_amount = initializer.total_amount;\r\n this.paid_amount = initializer.paid_amount;\r\n this.open_amount = initializer.open_amount;\r\n this.pdf_document_available = initializer.pdf_document_available;\r\n this.zzcustom = initializer.zzcustom;\r\n }\r\n}\r\n","export default class address_data {\r\n constructor(initializer) {\r\n this.name = initializer.name;\r\n this.city = initializer.city;\r\n this.district = initializer.district;\r\n this.street = initializer.street;\r\n this.postal_code_city = initializer.postal_code_city;\r\n this.region = initializer.region;\r\n this.country = initializer.country;\r\n }\r\n}\r\n","export default class CompanyData {\r\n constructor(data) {\r\n this.data = data;\r\n }\r\n}\r\n","export default class details {\r\n constructor(address_data, company_data, payment_cards, soldtos) {\r\n this.address_data = address_data;\r\n this.company_data = company_data;\r\n this.payment_cards = payment_cards;\r\n this.soldto_list = soldtos;\r\n }\r\n}\r\n","export default class PaymentCard {\r\n constructor(initializer) {\r\n this.payment_card_type = initializer.payment_card_type;\r\n this.payment_card_token = initializer.payment_card_token;\r\n this.payment_card_name = initializer.payment_card_name;\r\n this.valid_from = initializer.valid_from;\r\n this.valid_to = initializer.valid_to;\r\n this.electronic_check_account_type =\r\n initializer.electronic_check_account_type;\r\n this.electronic_check_rdfi_number =\r\n initializer.electronic_check_rdfi_number;\r\n this.isDefault = initializer.default;\r\n }\r\n}\r\n","export default class PaymentStatus {\r\n constructor(\r\n indexNumber,\r\n documentNumberFinance,\r\n messageType,\r\n messageLineString,\r\n authorizationReferenceCode,\r\n ) {\r\n this.index_number = indexNumber;\r\n this.document_number_finance = documentNumberFinance;\r\n this.message_type = messageType;\r\n this.message_line_string = messageLineString;\r\n this.authorization_reference_code = authorizationReferenceCode;\r\n }\r\n}\r\n","export default class data {\r\n constructor(companyCode) {\r\n this.company_code = companyCode;\r\n }\r\n}\r\n","/* eslint-env browser */\r\n/* eslint-disable no-console no-throw-literal*/\r\nimport axios from \"../axios\";\r\nimport {toast} from 'react-toastify';\r\nimport * as apiTypes from '../constants/ApiConstants';\r\nimport * as types from '../constants/ActionTypes';\r\nimport * as validationTypes from '../constants/ValidationConstants';\r\nimport Invoice from '../models/Invoice';\r\nimport AddressData from '../models/payer/address_data';\r\nimport CompanyData from '../models/payer/company_data';\r\nimport Details from '../models/payer/details';\r\nimport PaymentCard from '../models/payer/payment_card';\r\nimport PaymentStatus from '../models/payer/PaymentStatus';\r\nimport Data from '../models/payer/data';\r\nimport {\r\n requestErrored,\r\n requestStarted,\r\n requestUnauthorized,\r\n updateState\r\n} from './CommonActions';\r\nimport * as appConstants from '../constants/ApplicationConstants';\r\nimport * as Yup from \"yup\";\r\n\r\nfunction mapDocumentsToInvoice(documentList) {\r\n return documentList.map(document => {\r\n return new Invoice(document);\r\n });\r\n}\r\n\r\nfunction mapDistinctCurrencies(documentList) {\r\n const currencies = [...new Set(documentList.map(document => document.currency_key))];\r\n return currencies.map(currency => ({\r\n value: currency,\r\n label: currency,\r\n clearableValue: false\r\n }));\r\n}\r\n\r\nexport function addInvoiceToSelected(document) {\r\n return {\r\n type: types.ADD_INVOICE_TO_SELECTED,\r\n payload: document\r\n };\r\n}\r\n\r\nexport function removeInvoiceFromSelected(document) {\r\n return {\r\n type: types.REMOVE_INVOICE_FROM_SELECTED,\r\n payload: document\r\n };\r\n}\r\n\r\nexport function updatePayAmountForInvoice(documentId, amount, openAmount, partialAllowed, overPaymentAllowed) {\r\n let error = '';\r\n let overUnder = 0;\r\n if (amount < openAmount) {\r\n overUnder = -1;\r\n }\r\n if (amount > openAmount) {\r\n overUnder = 1;\r\n }\r\n\r\n if (amount === 0) {\r\n error = 'Amount cannot be zero.';\r\n } else if (amount === '') {\r\n error = 'Amount cannot be empty.';\r\n } else {\r\n let test = Yup.number();\r\n let validate = test.isValidSync(amount);\r\n if(!validate){\r\n error = 'Only numeric values allowed';\r\n }\r\n }\r\n if (amount < 0) {\r\n error = 'Amount cannot be negative.';\r\n }\r\n if (amount < 0) {\r\n error = 'Amount cannot be negative.';\r\n }\r\n if (amount > openAmount && !overPaymentAllowed) {\r\n error = 'Over payment not allowed.';\r\n }\r\n if (amount < openAmount && !partialAllowed) {\r\n error = 'Partial payment not allowed.';\r\n }\r\n\r\n return {\r\n type: types.UPDATE_PAY_AMOUNT_FOR_INVOICE,\r\n payload: {\r\n documentId,\r\n amount,\r\n amountValidation: error,\r\n overUnder: overUnder,\r\n }\r\n };\r\n}\r\n\r\nexport function updateReasonComment(documentId, comment) {\r\n return {\r\n type: types.UPDATE_REASON_COMMENT,\r\n payload: {\r\n documentId,\r\n comment\r\n }\r\n };\r\n}\r\n\r\nexport function updateReason(documentId, reason) {\r\n return {\r\n type: types.UPDATE_REASON,\r\n payload: {\r\n documentId,\r\n reason\r\n }\r\n };\r\n}\r\n\r\nexport function getInvoicesAjax(invoiceListRequest){\r\n return axios\r\n .post(apiTypes.INVOICE_LIST_URL, invoiceListRequest);\r\n}\r\n\r\nexport function getInvoices(dispatch, invoiceListRequest) {\r\n let invoices = [];\r\n let invoiceCurrencies = [];\r\n return getInvoicesAjax(invoiceListRequest)\r\n .then(response => {\r\n if (\r\n response.status === 200 &&\r\n (response.data.status.message_type === 'S' || response.data.status.message_type === 'W')\r\n ) {\r\n if (response.data.status.message_type === 'W') {\r\n toast.warn(response.data.status.message_line_string, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n\r\n if (response.data && response.data.document_list && response.data.document_list.length > 0) {\r\n invoices = mapDocumentsToInvoice(response.data.document_list);\r\n invoiceCurrencies = mapDistinctCurrencies(response.data.document_list);\r\n }\r\n\r\n invoices.forEach(invoice => {\r\n invoice.soldto_number = parseInt(invoice.soldto_number, 10).toString();\r\n invoice.payer_number = parseInt(invoice.payer_number, 10).toString();\r\n });\r\n updateState(dispatch, types.GET_INVOICES_SUCCESS, invoices);\r\n updateState(dispatch, types.GET_INVOICE_CURRENCY_SUCCESS, invoiceCurrencies);\r\n\r\n return [invoices, invoiceCurrencies];\r\n } else {\r\n updateState(dispatch, types.GET_INVOICES_SUCCESS, []);\r\n updateState(dispatch, types.GET_INVOICE_CURRENCY_SUCCESS, []);\r\n if (response.data && response.data.status && response.data.status.message_line_string) {\r\n toast.error(response.data.status.message_line_string, {\r\n position: toast.POSITION.TOP_RIGHT\r\n });\r\n }\r\n return [invoices, invoiceCurrencies];\r\n }\r\n })\r\n .catch(err => {\r\n if (err && err.response && err.response.statusText === 'Unauthorized') {\r\n requestUnauthorized(dispatch, err);\r\n } else {\r\n requestErrored(dispatch, err, validationTypes.GET_INVOICE_ERROR);\r\n }\r\n });\r\n}\r\n\r\nexport function getInvoicePDF(dispatch, invoice) {\r\n\r\n const docNumber = invoice.billing_document_number;\r\n const input = {'document_detail': {'billing_document_number': `${docNumber}`, 'document_type': '01'}};\r\n\r\n axios\r\n .post(apiTypes.INVOICE_PDF_URL, input)\r\n .then(response => {\r\n if (response.status === 200) {\r\n // const file = new Blob([response.data], {type: 'application/pdf'});\r\n // const fileURL = URL.createObjectURL(file, {name: `${docNumber}${'.pdf'}`});\r\n window.open(response.data, '_blank');\r\n }\r\n })\r\n .catch(err => {\r\n if (err && err.response && err.response.statusText === 'Unauthorized') {\r\n requestUnauthorized(dispatch, err);\r\n } else {\r\n requestErrored(dispatch, err, validationTypes.GET_INVOICE_PDF_ERROR);\r\n }\r\n });\r\n}\r\n\r\nexport function getInvoiceBulkPDF(dispatch, search) {\r\n var vGridViewDocIds;\r\n let data = search;\r\n if (sessionStorage.getItem(\"invoicesWithKeysData\") != null) {\r\n vGridViewDocIds = JSON.parse(sessionStorage.getItem(\"invoicesWithKeysData\") || '{}');\r\n data.search_parameters.GridViewDocIds = vGridViewDocIds;\r\n }\r\n axios\r\n .post(apiTypes.INVOICE_BULK_URL, search)\r\n .then(response => {\r\n if (response.status === 200) {\r\n window.open(response.data, '_blank');\r\n }\r\n })\r\n .catch(err => {\r\n if (err && err.response && err.response.status === 401) {\r\n requestUnauthorized(dispatch, err);\r\n } else {\r\n requestErrored(dispatch, err, validationTypes.GET_INVOICE_PDF_ERROR);\r\n }\r\n });\r\n}\r\nexport function getInvoiceSearchPDF(dispatch, search) {\r\n\r\n axios\r\n .post(apiTypes.INVOICE_SEARCH_PDF_URL, search)\r\n .then(response => {\r\n if (response.status === 200) {\r\n window.open(response.data, '_blank');\r\n }\r\n })\r\n .catch(err => {\r\n if (err && err.response && err.response.statusText === 'Unauthorized') {\r\n requestUnauthorized(dispatch, err);\r\n } else {\r\n requestErrored(dispatch, err, validationTypes.GET_INVOICE_PDF_ERROR);\r\n }\r\n });\r\n}\r\n\r\nexport function extractLastCardNumbers(str, delim = '-') {\r\n if(str == null){\r\n return \"\";\r\n }\r\n const a = str.indexOf(delim, 1);\r\n if (a === -1) return '';\r\n const b = str.indexOf(delim, a + 1);\r\n if (b === -1) return '';\r\n return str.substr(a + 1, b - a - 1);\r\n}\r\n\r\nexport function mapCards(cardData, sessionCards, sessionChecks) {\r\n\r\n return cardData.map((card, index) => ({\r\n value: card.payment_card_token,\r\n label: `${card.payment_card_type}${'-'}${card.payment_card_name}${'-'}${extractLastCardNumbers(\r\n card.payment_card_token,\r\n '-'\r\n )}`,\r\n clearableValue: false,\r\n cardType: card.payment_card_type,\r\n index: index\r\n }));\r\n}\r\n\r\nexport function getPayerDetailsBuilder(dispatch, primary, secondary, accountType) {\r\n let request;\r\n if (accountType === appConstants.SOLD_TO_COMPARE) {\r\n // Use Secondary Account\r\n request = {\r\n customer_number: secondary && secondary.PrimaryAcct,\r\n company_code: primary && primary.CompanyCode,\r\n action: '',\r\n sales_area_data: {\r\n sales_organization: secondary && secondary.SalesOrganization,\r\n distribution_channel: secondary && secondary.DistributionChannel,\r\n division: secondary && secondary.Division\r\n }\r\n };\r\n } else {\r\n // Use Primary Account\r\n request = {\r\n customer_number: primary && primary.PrimaryAcct,\r\n company_code: primary && primary.CompanyCode,\r\n action: '',\r\n sales_area_data: {\r\n sales_organization: primary && primary.SalesOrganization,\r\n distribution_channel: primary && primary.DistributionChannel,\r\n division: primary && primary.Division\r\n }\r\n };\r\n }\r\n getPayerDetails(dispatch, request);\r\n}\r\n\r\nexport function getPayerDetails(dispatch, input) {\r\n axios\r\n .post(apiTypes.PAYER_DETAILS_URL, input)\r\n .then(response => {\r\n if (response.status === 200 && response.data.status.message_type === 'S') {\r\n if (response.data) {\r\n const addressdata = new AddressData(response.data.detail.address_data);\r\n \r\n let cardData = [];\r\n cardData = response.data.detail.payment_cards.map(card => {\r\n card.default = card.default === \"X\";\r\n return new PaymentCard(card);\r\n });\r\n\r\n if (!response.data.detail && !response.data.detail.company_data) {\r\n throw (\"No Company Data Found\");\r\n }\r\n const CompanyDatas = response.data.detail.company_data.map(_ => {\r\n const data = new Data(_.company_code);\r\n return new CompanyData(data);\r\n });\r\n\r\n const soldtos = [];\r\n const dtls = new Details(addressdata, CompanyDatas, cardData, soldtos);\r\n\r\n updateState(dispatch, types.GET_PAYER_DETAILS_SUCCESS, dtls);\r\n }\r\n }\r\n }\r\n )\r\n .catch(err => {\r\n if (err && err.response && err.response.statusText === 'Unauthorized') {\r\n requestUnauthorized(dispatch, err);\r\n } else {\r\n requestErrored(dispatch, err, validationTypes.GET_PAYER_DETAILS_ERROR);\r\n }\r\n });\r\n}\r\n\r\nexport function makePayment(dispatch, paymentDetail, next = () =>{}) {\r\n requestStarted(dispatch, types.POST_PAYMENT_REQUEST);\r\n\r\n return axios\r\n .post(apiTypes.PAYMENT_URL, paymentDetail)\r\n .then(response => {\r\n if (response.status === 200) {\r\n if (response.data == null || !response.data.status) {\r\n throw (\"Invalid status.\")\r\n }\r\n const paymentStatuses = response.data.status.map((status, i) => {\r\n let authorizationReferenceCode = '';\r\n let documentNumberFinance = '';\r\n if (status && status.message_type === 'S' && response.data.payed && response.data.payed[i]) {\r\n authorizationReferenceCode = response.data.payed[i].authorization_reference_code;\r\n documentNumberFinance = response.data.payed[i].document_number_finance;\r\n }\r\n return new PaymentStatus(\r\n i + 1,\r\n documentNumberFinance,\r\n status.message_type,\r\n status.message_line_string,\r\n authorizationReferenceCode\r\n );\r\n \r\n });\r\n \r\n\r\n // Order matters here.\r\n updateState(dispatch, types.POST_PAYMENT_SUCCESS, paymentStatuses);\r\n next();\r\n updateState(dispatch, types.COPY_SELECTED_INVOICES_TO_COMPLETED, null);\r\n if (paymentStatuses.filter(i => i.message_type === 'S').length > 0) {\r\n updateState(dispatch, types.CLEAR_SELECTED_INVOICES, null);\r\n return true;\r\n } \r\n return false;\r\n }\r\n}).catch(err => {\r\n if (err && err.response && err.response.statusText === 'Unauthorized') {\r\n requestUnauthorized(dispatch, err);\r\n } else {\r\n requestErrored(dispatch, err, validationTypes.MAKE_PAYMENT_ERROR);\r\n }\r\n});\r\n}\r\n\r\nexport function getCustomData(dispatch) {\r\n\r\n axios\r\n .post(apiTypes.CUSTOM_DATA_URL, '')\r\n .then(response => {\r\n if (response.status === 200 && response.data) {\r\n updateState(dispatch, types.GET_CUSTOM_DATA_SUCCESS, response.data);\r\n if (response.data.payment_types) {\r\n for (let i = 0; i < response.data.payment_types.length; i += 1) {\r\n const paymentType = response.data.payment_types[i];\r\n if (paymentType.payment_type && paymentType.payment_type === 'O') {\r\n updateState(dispatch, types.UPDATE_OVER_PAYMENT_ALLOWED_FLAG, paymentType.overpayment_allowed);\r\n\r\n updateState(dispatch, types.UPDATE_REASON_NOT_REQUIRED_FLAG, paymentType.reason_not_required);\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (response.data.generel_data) {\r\n if (response.data.generel_data.partial_payments_allowed) {\r\n updateState(\r\n dispatch,\r\n types.UPDATE_PARTIAL_PAYMENT_ALLOWED_FLAG,\r\n response.data.generel_data.partial_payments_allowed\r\n );\r\n }\r\n if (response.data.generel_data.cvv_use_control) {\r\n updateState(dispatch, types.UPDATE_CVV_CONTROL_FLAG, response.data.generel_data.cvv_use_control === '1');\r\n }\r\n }\r\n }\r\n })\r\n .catch(err => {\r\n if (err && err.response && err.response.statusText === 'Unauthorized') {\r\n requestUnauthorized(dispatch, err);\r\n } else {\r\n requestErrored(dispatch, err, validationTypes.GET_CONFIG_ERROR);\r\n }\r\n });\r\n}\r\n\r\n\r\nexport function getInvoiceDetail(dispatch, billingDocumentNumber, documentType) {\r\n\r\n const body = {\r\n 'document_detail': {\r\n 'billing_document_number': `${billingDocumentNumber}`,\r\n 'document_type': `${documentType}`\r\n }\r\n };\r\n return axios\r\n .post(apiTypes.INVOICE_DETAIL_URL, body)\r\n .then((invoiceDetail) => {\r\n if (invoiceDetail.status === 200 && invoiceDetail.data) {\r\n if (invoiceDetail.data.status) {\r\n if (invoiceDetail.data.status.message_type === 'S') {\r\n return invoiceDetail.data.detail;\r\n } else if (invoiceDetail.data.status.message_type === 'E') {\r\n toast.warn(invoiceDetail.data.status.message_line_string, {position: toast.POSITION.TOP_RIGHT});\r\n return null;\r\n }\r\n }\r\n }\r\n return null;\r\n })\r\n .catch((err) => {\r\n if (err && err.response && err.response.statusText === 'Unauthorized') {\r\n requestErrored(dispatch, err, validationTypes.CREDENTIALS_INVALID);\r\n } else {\r\n requestErrored(dispatch, err, validationTypes.GET_INVOICE_DETAIL_ERROR);\r\n }\r\n return err;\r\n });\r\n}\r\n\r\nexport function updateSecondaryAccounts(dispatch, secondaryAccounts) {\r\n updateState(dispatch, types.UPDATE_CUSTOMER_OPTIONS, secondaryAccounts);\r\n}\r\n\r\nexport function updateSelectedSecondaryAccountValue(dispatch, customerOptionValue, cb = () => {\r\n}) {\r\n updateState(dispatch, types.UPDATE_SELECTED_CUSTOMER_VALUE, customerOptionValue, cb);\r\n}\r\n\r\nexport function updatePrimaryAccount(dispatch, selectedPrimaryAccountIndex, setSecondary = true) {\r\n updateState(dispatch, types.SET_SELECTED_ACCOUNT, {selectedPrimaryAccountIndex, setSecondary});\r\n}\r\n\r\nexport function addSoldTos(dispatch, selectedSoldTo) {\r\n updateState(dispatch, types.ADD_SELECTED_SOLDTO, selectedSoldTo);\r\n}\r\n\r\nexport function updateCVV(dispatch, cvvValue) {\r\n updateState(dispatch, types.UPDATE_CVV, cvvValue);\r\n}\r\n\r\nexport function updateSelectedCard(dispatch, selectedCard) {\r\n updateState(dispatch, types.UPDATE_SELECTED_CARD, selectedCard);\r\n}\r\n\r\nexport function updateInvoiceSearchDueToDate(dispatch, dueToDate) {\r\n updateState(dispatch, types.INVOICE_SEARCH_DUE_TO_DATE, dueToDate);\r\n}\r\n\r\nexport function addSoldToToSelected(soldToNumber) {\r\n return {\r\n type: types.ADD_SOLD_TO_TO_SELECTED,\r\n payload: soldToNumber\r\n };\r\n}\r\n\r\nexport function removeSoldToFromSelected(soldToNumber) {\r\n return {\r\n type: types.REMOVE_SOLD_TO_FROM_SELECTED,\r\n payload: soldToNumber\r\n };\r\n}\r\n\r\nexport function setSelectedSoldTos(soldToNumbers) {\r\n return {\r\n type: types.SET_SELECTED_SOLD_TOS,\r\n payload: soldToNumbers\r\n };\r\n}\r\n\r\nexport function makeDeposit(dispatch, paymentDetail) {\r\n requestStarted(dispatch, types.POST_PAYMENT_REQUEST);\r\n\r\n return axios\r\n .post(apiTypes.DEPOSIT_URL, paymentDetail)\r\n .then(response => {\r\n if (response.status === 200) {\r\n const paymentStatuses = [];\r\n if (response.data && response.data.status) {\r\n for (let i = 0; i < response.data.status.length; i += 1) {\r\n const status = response.data.status[i];\r\n let authorizationReferenceCode = '';\r\n let documentNumberFinance = '';\r\n if (status && status.message_type === 'S' && response.data.payed && response.data.payed[i]) {\r\n authorizationReferenceCode = response.data.payed[i].authorization_reference_code;\r\n documentNumberFinance = response.data.payed[i].document_number_finance;\r\n }\r\n const paymentStatus = new PaymentStatus(\r\n i + 1,\r\n documentNumberFinance,\r\n status.message_type,\r\n status.message_line_string,\r\n authorizationReferenceCode\r\n );\r\n paymentStatuses.push(paymentStatus);\r\n }\r\n }\r\n\r\n // Order matters here.\r\n updateState(dispatch, types.POST_PAYMENT_SUCCESS, paymentStatuses);\r\n }\r\n })\r\n .catch(err => {\r\n if (err && err.response && err.response.statusText === 'Unauthorized') {\r\n requestUnauthorized(dispatch, err);\r\n } else {\r\n requestErrored(dispatch, err, validationTypes.MAKE_PAYMENT_ERROR);\r\n }\r\n });\r\n}\r\n\r\nexport function clearSelectedInvoices(dispatch) {\r\n updateState(dispatch, types.CLEAR_SELECTED_INVOICES, null);\r\n}\r\n\r\nexport function updateAccountTypes(dispatch, accountType) {\r\n updateState(dispatch, types.UPDATE_ACCOUNT_TYPES, accountType);\r\n}\r\n\r\nexport function updatePrimaryAccountTypes(dispatch, primaryAccountType) {\r\n updateState(dispatch, types.UPDATE_PRIMARY_ACCOUNT_TYPES, primaryAccountType);\r\n}\r\n\r\nexport function updateInvoiceSearchQuery(dispatch, search_parameters) {\r\n updateState(dispatch, types.UPDATE_INVOICE_SEARCH_QUERY, search_parameters);\r\n\r\n}\r\n\r\nexport function updateInvoiceListQuery(dispatch, search_parameters) {\r\n updateState(dispatch, types.UPDATE_INVOICE_LIST_REQUEST, search_parameters);\r\n}","/* eslint-env browser */\r\n/* eslint-disable no-console */\r\nimport axios from '../axios';\r\nimport {toast} from 'react-toastify';\r\nimport * as validationTypes from '../constants/ValidationConstants';\r\nimport * as apiTypes from '../constants/ApiConstants';\r\nimport * as types from '../constants/ActionTypes';\r\nimport * as appConstants from '../constants/ApplicationConstants';\r\nimport {\r\n updateState,\r\n requestErrored,\r\n loginFailed\r\n} from './CommonActions';\r\nimport {setSelectedSoldTos} from \"./InvoiceActions\";\r\n\r\nexport function setLoginChecked(isChecked, isLoggedIn) {\r\n return {\r\n type: types.SET_LOGIN_CHECKED,\r\n payload: {\r\n checked: isChecked,\r\n isLoggedIn: isLoggedIn,\r\n }\r\n }\r\n}\r\n\r\nexport function setIsLoggedIn(isLoggedIn) {\r\n return {\r\n type: types.SET_IS_LOGGED_IN,\r\n payload: isLoggedIn,\r\n }\r\n}\r\n\r\nexport function setLastUrl(url) {\r\n return {\r\n type: types.SET_LAST_URL,\r\n payload: url,\r\n }\r\n}\r\n\r\nexport function login(dispatch, email, pasword) {\r\n const loginRequest = {login: email, password: pasword};\r\n return axios.post(apiTypes.LOGIN_URL, loginRequest)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n // store token in session storage.\r\n sessionStorage.setItem('token', response.data.token);\r\n sessionStorage.setItem('refreshToken', response.data.refreshToken);\r\n axios.instance.defaults.headers.common['Authorization'] = `Bearer ${response.data.token}`;\r\n updateState(dispatch, types.SET_IS_LOGGED_IN, response.data.isLoggedIn);\r\n } else {\r\n toast.error(validationTypes.CREDENTIALS_INVALID, {position: toast.POSITION.TOP_RIGHT});\r\n }\r\n })\r\n .catch((error) => {\r\n // requestErrored(dispatch, error, validationTypes.AUTHENTICATION_ERROR);\r\n if (error && error.response && error.response.statusText === 'Unauthorized') {\r\n loginFailed(dispatch, error);\r\n } else {\r\n requestErrored(dispatch, error, validationTypes.AUTHENTICATION_ERROR);\r\n throw error.response.statusText;\r\n }\r\n });\r\n}\r\n\r\nexport function refreshToken(dispatch) {\r\n let token = sessionStorage.getItem('refreshToken');\r\n const requestBody = {refreshToken: token};\r\n axios.post(apiTypes.REFRESH_TOKEN_URL, requestBody)\r\n .then((response) => {\r\n if (response.status === 200) {\r\n //store token in session storage.\r\n sessionStorage.setItem('token', response.data.token);\r\n sessionStorage.setItem('refreshToken', response.data.refreshToken);\r\n axios.instance.defaults.headers.common['Authorization'] = `Bearer ${response.data.token}`;\r\n }\r\n })\r\n .catch((error) => {\r\n // requestErrored(dispatch, error, validationTypes.AUTHENTICATION_ERROR);\r\n if (error && error.response && error.response.statusText === 'Unauthorized') {\r\n loginFailed(dispatch, error);\r\n } else {\r\n requestErrored(dispatch, error, validationTypes.AUTHENTICATION_ERROR);\r\n }\r\n });\r\n}\r\n\r\nexport function getUser(dispatch, email) {\r\n const finalGetUser = `${apiTypes.GET_USER_URL}`;\r\n return axios.post(finalGetUser, '')\r\n .then((userData) => {\r\n if (userData.status === 200 && userData.data) {\r\n if (userData.data && userData.data) {\r\n updateState(dispatch, types.GET_USER_SUCCESS, userData.data);\r\n updateState(dispatch, types.SET_ACCOUNT_TYPE, mapPrimaryAccountType(userData.data.PrimaryAccountTypeId));\r\n }\r\n return userData.data;\r\n } else {\r\n return null;\r\n }\r\n })\r\n .catch((err) => {\r\n if (err && err.response && err.response.statusText === 'Unauthorized') {\r\n requestErrored(dispatch, err, validationTypes.CREDENTIALS_INVALID);\r\n } else {\r\n requestErrored(dispatch, err, validationTypes.GET_USER_ERROR);\r\n }\r\n });\r\n}\r\n\r\nexport function mapPrimaryAccountType(primaryAccountTypeId) {\r\n switch (primaryAccountTypeId) {\r\n case 1:\r\n return appConstants.SOLD_TO_COMPARE;\r\n case 2:\r\n return appConstants.PAYER_COMPARE;\r\n case 3:\r\n return appConstants.ACCOUNT_PAYER_ALL;\r\n default:\r\n return appConstants.SOLD_TO_COMPARE;\r\n\r\n }\r\n}\r\n\r\n/**\r\n * Dispatches HTTP request to get users Accounts. These accounts show up on the header of the application.\r\n * @param dispatch\r\n * @param userId\r\n * @param clearSecondary\r\n */\r\nexport function getUserCustomers(dispatch, userId = \"\", clearSecondary = true) {\r\n\r\n const body = {};\r\n let finalGetUserPayerUrl = `${apiTypes.USER_PAYERS_URL}`;\r\n if (userId) {\r\n finalGetUserPayerUrl = `${finalGetUserPayerUrl}${'userid='}${userId}`;\r\n }\r\n axios.post(finalGetUserPayerUrl, body)\r\n .then((userData) => {\r\n if (userData.status === 200 && userData.data && userData.data.HeaderItems) {\r\n updateState(dispatch, types.GET_PRIMARY_ACCOUNTS_SUCCESS, {accounts: userData.data.HeaderItems, clearSecondary});\r\n if(clearSecondary){\r\n dispatch(setSelectedSoldTos(userData.data.HeaderItems[0].DropDownItems.map(account => account.PrimaryAcct)));\r\n }\r\n if (typeof userId !== 'undefined') {\r\n updateState(dispatch, types.UPDATE_IMPERSONATE_USER_ID, userId);\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n if (err && err.response && err.response.statusText === 'Unauthorized') {\r\n requestErrored(dispatch, err, validationTypes.CREDENTIALS_INVALID);\r\n } else {\r\n requestErrored(dispatch, err, validationTypes.GET_USER_PAYER_ERROR);\r\n }\r\n });\r\n}\r\n\r\nexport function Logout(dispatch) {\r\n return axios.post(apiTypes.LOGOUT_URL)\r\n .then((response) => {\r\n dispatch({type: types.LOGOUT});\r\n })\r\n .catch((error) => {\r\n requestErrored(dispatch, error, validationTypes.AUTHENTICATION_ERROR);\r\n });\r\n}\r\n\r\nexport function ResetPassword(dispatch, currentPassword, newPassword, confirmNewPassword) {\r\n const resetPasswordRequest = {\r\n CurrentPassword: currentPassword,\r\n NewPassword: newPassword,\r\n ConfirmNewPassword: confirmNewPassword\r\n };\r\n axios.post(apiTypes.RESET_PASSWORD, resetPasswordRequest)\r\n .then((userData) => {\r\n if (userData.status === 200 && userData.data.message === appConstants.SUCCESS) {\r\n toast.success(validationTypes.RESET_PASSWORD_SUCCESS, {position: toast.POSITION.TOP_RIGHT});\r\n updateState(dispatch, types.UPDATE_PASSWORD_RESPONSE, userData.data.message);\r\n } else {\r\n toast.warn(userData.data.message, {position: toast.POSITION.TOP_RIGHT});\r\n updateState(dispatch, types.UPDATE_PASSWORD_RESPONSE, userData.data.message);\r\n }\r\n })\r\n .catch((err) => {\r\n if (err && err.response && err.response.statusText === 'Unauthorized') {\r\n requestErrored(dispatch, err, validationTypes.CREDENTIALS_INVALID);\r\n } else {\r\n requestErrored(dispatch, err, validationTypes.RESET_PASSWORD_ERROR);\r\n }\r\n });\r\n}\r\n\r\n","import React, {Component} from 'react';\r\nimport {withRouter} from \"react-router-dom\";\r\nimport {connect} from 'react-redux';\r\n\r\nconst validRedirects = [\r\n \"settings-page/registration-requests\",\r\n];\r\n\r\nfunction isValidRedirect(lastUrl){\r\n for(let i = 0; i < validRedirects.length; i++){\r\n if(lastUrl.indexOf(validRedirects[i]) !== -1){\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nclass LoginRedirectHandler extends Component {\r\n \r\n componentDidMount() {\r\n if(isValidRedirect(this.props.lastUrl)){\r\n this.props.history.push(this.props.lastUrl);\r\n } else {\r\n this.props.history.push(\"/invoices\");\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\n\r\nLoginRedirectHandler.propTypes = {};\r\n\r\nexport default withRouter(connect((store, props) => ({\r\n lastUrl: store.user.lastUrl,\r\n}))(LoginRedirectHandler));\r\n","import React from 'react';\r\n\r\nclass Footer extends React.Component {\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Footer\r\n","import React, {PropTypes, useEffect} from 'react';\r\nimport {\r\n injectIntl,\r\n IntlProvider,\r\n FormattedRelative,\r\n} from 'react-intl';\r\n\r\nexport default injectIntl(({intl}) => {\r\n let message = \"E-Pay\";\r\n if(window.location.hostname === \"theme1.epaylocal\" || window.location.hostname === \"payments.schindler.com\" || window.location.hostname === \"payments-qa.schindler.com\") message = \"Schindler E-Pay\";\r\n if(window.location.hostname === \"theme1.epaylocal\" || window.location.hostname === \"payments.adamselevator.com\" || window.location.hostname === \"payments-qa.adamselevator.com\") message = \"Adams Elevator E-Pay\";\r\n if(window.location.hostname === \"theme2.epaylocal\" || window.location.hostname === \"payments.epco.us\" || window.location.hostname === \"payments-qa.epco.us\") message = \"EPCO E-Pay\";\r\n if(window.location.hostname === \"theme3.epaylocal\" || window.location.hostname === \"payments.republicelevator.com\" || window.location.hostname === \"payments-qa.republicelevator.com\") message = \"Republic ePay\";\r\n if (window.location.hostname === \"theme4.epaylocal\" || window.location.hostname === \"payments.suburbanelevator.com\" || window.location.hostname === \"payments-qa.suburbanelevator.com\") message = \"Suburban ePay\";\r\n if (window.location.hostname === \"theme5.epaylocal\" || window.location.hostname === \"payments.eltec.cc\" || window.location.hostname === \"payments-qa.eltec.cc\") message = \"Eltec ePay\";\r\n \r\n useEffect(() => {\r\n document.title = message;\r\n\r\n const favicon = document.getElementById(\"favicon\");\r\n if(window.location.hostname === \"theme1.epaylocal\" || window.location.hostname === \"payments.schindler.com\" || window.location.hostname === \"payments-qa.schindler.com\") favicon.href=\"/favicon.ico\";\r\n if(window.location.hostname === \"theme2.epaylocal\" || window.location.hostname === \"payments.epco.us\" || window.location.hostname === \"payments-qa.epco.us\") favicon.href = \"/epco-favicon.png\";\r\n\r\n });\r\n return (\r\n {message}\r\n );\r\n});\r\n","import React from 'react';\r\nimport {connect} from \"react-redux\";\r\n\r\nexport default connect((state, props) => {\r\n return {}\r\n})(({width, height}) => {\r\n let logo = \"\";\r\n if (window.location.hostname === \"theme2.epaylocal\" || window.location.hostname === \"payments.epco.us\" || window.location.hostname === \"payments-qa.epco.us\") logo = \"/theme2_logo.jpg\";\r\n if (window.location.hostname === \"theme3.epaylocal\" || window.location.hostname === \"payments.republicelevator.com\" || window.location.hostname === \"payments-qa.republicelevator.com\") logo = \"/theme3_logo.png\";\r\n if (window.location.hostname === \"theme4.epaylocal\" || window.location.hostname === \"payments.suburbanelevator.com\" || window.location.hostname === \"payments-qa.suburbanelevator.com\") logo = \"/theme4_logo.png\";\r\n if (window.location.hostname === \"theme5.epaylocal\" || window.location.hostname === \"payments.eltec.cc\" || window.location.hostname === \"payments-qa.eltec.cc\") logo = \"/elteclogo.png\";\r\n\r\n if (logo === \"\") {\r\n return null;\r\n } else {\r\n return {\"Company\r\n }\r\n }\r\n);","import React from 'react';\r\nimport {connect} from \"react-redux\";\r\n\r\nexport default connect((state, props) => {\r\n return {\r\n }\r\n})(({width, height, header, bottomLogin}) => {\r\n let logo = \"/theme1_logo.png\";\r\n if(window.location.hostname === \"theme1.epaylocal\" || window.location.hostname === \"payments.schindler.com\" || window.location.hostname === \"payments-qa.schindler.com\") logo = \"/theme1_logo.png\";\r\n if(window.location.hostname === \"theme1.epaylocal\" || window.location.hostname === \"payments.adamselevator.com\" || window.location.hostname === \"payments-qa.adamselevator.com\") logo = \"/theme1_logo.png\";\r\n if(window.location.hostname === \"theme2.epaylocal\" || window.location.hostname === \"payments.epco.us\" || window.location.hostname === \"payments-qa.epco.us\") logo = \"/theme2_logo.jpg\";\r\n if(window.location.hostname === \"theme3.epaylocal\" || window.location.hostname === \"payments.republicelevator.com\" || window.location.hostname === \"payments-qa.republicelevator.com\") logo = \"/theme3_logo.png\";\r\n if (window.location.hostname === \"theme4.epaylocal\" || window.location.hostname === \"payments.suburbanelevator.com\" || window.location.hostname === \"payments-qa.suburbanelevator.com\") logo = \"/theme4_logo.png\";\r\n if (window.location.hostname === \"theme5.epaylocal\" || window.location.hostname === \"payments.eltec.cc\" || window.location.hostname === \"payments-qa.eltec.cc\") logo = \"/elteclogo.png\";\r\n\r\n if(header && (window.location.hostname === \"theme4.epaylocal\" || window.location.hostname === \"payments.suburbanelevator.com\" || window.location.hostname === \"payments-qa.suburbanelevator.com\")) return null;\r\n\r\n if(bottomLogin && !(window.location.hostname === \"theme1.epaylocal\" || window.location.hostname === \"payments.schindler.com\" || window.location.hostname === \"payments-qa.schindler.com\")) return null;\r\n \r\n if (logo === \"\") {\r\n return null;\r\n } else {\r\n return {\"Company\r\n }\r\n }\r\n);","/* eslint-env browser */\r\n/* eslint react/prop-types: 0 */\r\nimport 'react-activity/dist/react-activity.css';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\nimport {toast} from 'react-toastify';\r\nimport {login} from '../../actions/UserActions';\r\nimport * as validationTypes from '../../constants/ValidationConstants';\r\nimport {Link} from 'react-router-dom';\r\nimport LoginRedirectHandler from \"./LoginRedirectHandler\";\r\nimport Footer from \"../footer/Footer\";\r\nimport Title from \"./Title\";\r\nimport LoginLogo from \"./LoginLogo\";\r\nimport Logo from \"../Logo\";\r\n\r\nclass Login extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n email: '',\r\n password: '',\r\n };\r\n\r\n this.onLogin = this.onLogin.bind(this);\r\n this.handleOnChange = this.handleOnChange.bind(this);\r\n this.handleKeyPress = this.handleKeyPress.bind(this);\r\n }\r\n\r\n onLogin() {\r\n this.validateCredentials();\r\n }\r\n\r\n handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n this.validateCredentials();\r\n }\r\n };\r\n\r\n validateCredentials() {\r\n if (this.state.email === null || this.state.password === null || this.state.email === '' || this.state.password === '') {\r\n toast.error(validationTypes.CREDENTIALS_REQUIRED, {position: toast.POSITION.TOP_RIGHT});\r\n } else {\r\n login(this.props.dispatch, this.state.email, this.state.password).then().catch((error) => {\r\n \r\n });\r\n }\r\n }\r\n\r\n handleOnChange = input => (e) => {\r\n this.setState({\r\n [input]: e.target.value,\r\n });\r\n };\r\n \r\n render() {\r\n let backgroundClasses = \"\";\r\n if(this.props.useBackground){\r\n backgroundClasses += \" login-background\"; \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

</h1>\r\n <br/>\r\n <div className=\"form-group mt-3\">\r\n <input type=\"email\" className=\"form-control control-border\" name=\"email\" placeholder=\"Email\"\r\n onKeyPress={this.handleKeyPress} onChange={this.handleOnChange('email')}/>\r\n </div>\r\n <div className=\"form-group\">\r\n <input type=\"password\" className=\"form-control control-border\" name=\"password\" placeholder=\"Password\"\r\n onKeyPress={this.handleKeyPress} onChange={this.handleOnChange('password')}/>\r\n </div>\r\n <div className=\"form-group\">\r\n <button type=\"button\"\r\n className=\"btn btn-primary loginButtonColor form-control control-border button-class\"\r\n onClick={this.onLogin}>Log In\r\n </button>\r\n </div>\r\n <div className=\"form-group text-center button-class\">\r\n <Link to={\"/request-password-reset\"}>\r\n <span className=\"trouble\">Having trouble logging in?</span>\r\n </Link>\r\n </div>\r\n <br/>\r\n <br/>\r\n <div className=\"form-group\">\r\n <Link to={\"/auto-register/accounts\"}>\r\n <button type=\"button\"\r\n className=\"btn btn-secondary registerButtonColor form-control control-border button-class\">\r\n <span className=\"register-button-text\">Register</span>\r\n </button>\r\n </Link>\r\n </div>\r\n </form>\r\n </div>\r\n {this.props.isLoggedIn && <LoginRedirectHandler/>}\r\n <Footer/>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <div className={\"logo-bottom-right\"}>\r\n <Logo width={\"80\"} bottomLogin={true}/>\r\n </div> \r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n\r\nLogin.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default connect(store => ({\r\n documentsList: store.default.documentsList,\r\n customer_number: store.default.customer_number,\r\n company_code: store.default.company_code,\r\n sales_organization: store.default.sales_organization,\r\n isLoggedIn: store.user.isLoggedIn,\r\n useBackground: store.app.config.style.login_use_background_image,\r\n}))(Login);\r\n","import * as Yup from \"yup\";\r\nimport * as cardValidator from 'card-validator';\r\n\r\nexport const AddCreditCardSchema = Yup.object().shape({\r\n card_type: Yup.string().required(\"Card type is required.\"),\r\n card_name: Yup.string().required(\"Name on card is required.\"),\r\n card_number: Yup.string().required(\"Card number is required.\").test({\r\n name: 'card_number',\r\n message: \"Invalid credit card number\",\r\n test: (value) => {\r\n return cardValidator.number(value).isValid;\r\n }\r\n }).when('card_type', {\r\n is: 'VISA', //mc amex\r\n then: Yup.string().test({\r\n name: 'card_number',\r\n message: \"Invalid VISA credit card number\",\r\n test: (value) => {\r\n let validate = cardValidator.number(value);\r\n return value && validate.card && validate.card.type === 'visa';\r\n }\r\n })\r\n }).when('card_type', {\r\n is: 'MC',\r\n then: Yup.string().test({\r\n name: 'card_number',\r\n message: \"Invalid MasterCard card number\",\r\n test: (value) => {\r\n let validate = cardValidator.number(value);\r\n return value && validate.card && validate.card.type === 'mastercard';\r\n }\r\n })\r\n }).when('card_type', {\r\n is: 'AMEX', //mc amex\r\n then: Yup.string().test({\r\n name: 'card_number',\r\n message: \"Invalid American Express card number\",\r\n test: function(value){\r\n let validate = cardValidator.number(value);\r\n return value && validate.card && validate.card.type === 'american-express';\r\n }\r\n })\r\n }),\r\n card_validation_code: Yup.string().required(\"Card cvv is required.\"),\r\n card_month: Yup.string().required(\"Expiration month is required.\"),\r\n card_year: Yup.string().required(\"Expiration year is required.\"),\r\n});\r\nexport const EditCreditCardSchema = Yup.object().shape({\r\n card_name: Yup.string().required(\"Name on card is required.\"),\r\n card_month: Yup.string().required(\"Expiration month is required.\"),\r\n card_year: Yup.string().required(\"Expiration year is required.\"),\r\n});\r\n\r\n/**\r\n * @return {number}\r\n */\r\nfunction checkRoutingNumber2EC(r) {\r\n let s = 0, m = 0, n = [3, 7, 1];\r\n for (let i = 0; i < r.length; i++) {\r\n s += parseInt(r.charAt(i)) * n[m];\r\n m = (++m < 3 ? m : 0);\r\n }\r\n return s\r\n}\r\n\r\n/**\r\n * @return {boolean}\r\n */\r\nfunction checkRoutingNumber1EC(r) {\r\n let s = '';\r\n for (let i = 0; i < r.length; i++) {\r\n if (!Number.isNaN(r.charAt(i)))\r\n s += r.charAt(i)\r\n }\r\n if (s.length !== 9)\r\n return false;\r\n const c = checkRoutingNumber2EC(s);\r\n return !!(c && c % 10 === 0);\r\n}\r\n\r\nconst accountNumberRegExpr = \"^[0-9 -]+$\";\r\n\r\n/**\r\n * @return {boolean}\r\n */\r\nfunction checkAccountNumberEC(value) {\r\n let re = new RegExp(accountNumberRegExpr);\r\n if(re.test(value)){\r\n let valueStringsRemoved = value.replace(/ /g, \"\");\r\n if (valueStringsRemoved.length < 5 || valueStringsRemoved.length > 17)\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\n\r\n\r\nexport const AddCheckSchema = Yup.object().shape({\r\n type: Yup.string().required(\"Account type is required.\"),\r\n name: Yup.string().required(\"Name on Account is required.\"),\r\n routing_number: Yup.string().required(\"Routing number is required.\").test({\r\n name: 'routing_number',\r\n message: \"Invalid routing number.\",\r\n test: (value) => {\r\n if(typeof value === \"undefined\"){\r\n return false; \r\n }\r\n if(value === null){\r\n return false;\r\n }\r\n if(value.length < 1){\r\n return false;\r\n }\r\n return checkRoutingNumber1EC(value); \r\n }\r\n }),\r\n account_number: Yup.string().required(\"Account number is required.\").test({\r\n name: 'routing_number',\r\n message: \"Invalid account number.\",\r\n test: (value) => {\r\n if(typeof value === \"undefined\"){\r\n return false;\r\n }\r\n if(value === null){\r\n return false;\r\n }\r\n if(value.length < 1){\r\n return false;\r\n }\r\n return checkAccountNumberEC(value); \r\n }\r\n }),\r\n});\r\n\r\nexport const EditCheckSchema = Yup.object().shape({\r\n name: Yup.string().required(\"Name is required.\"),\r\n});\r\n\r\nexport const MakeDepositSchema = Yup.object().shape({\r\n amount_to_process: Yup.number(\"Amount is not a valid number.\").required(\"Amount is required.\").positive().min(1, \"Amount must be 1 or greater than 1.\"),\r\n});\r\n","import React, { Component } from 'react';\r\nimport { connect, Field } from 'formik';\r\nimport classNames from 'classnames';\r\n\r\nexport class BootstrapFieldInner extends Component {\r\n\r\n render() {\r\n let errors = this.props.formik.errors;\r\n let touched = this.props.formik.touched;\r\n let fieldErrors = errors[this.props.name];\r\n let hasErrors = typeof fieldErrors !== 'undefined';\r\n let isTouched = typeof touched[this.props.name] !== 'undefined';\r\n let wasSubmitted = this.props.formik.submitCount > 0;\r\n let classes = [{'is-invalid': hasErrors && (isTouched || wasSubmitted)}];\r\n if (this.props.type !== \"checkbox\"){\r\n classes.push('form-control'); \r\n } \r\n if (this.props.className){\r\n classes.push(this.props.className);\r\n } \r\n if (this.props.children) {\r\n return <Field {...this.props} className={classNames(classes)}>{this.props.children}</Field>\r\n } else {\r\n return <Field {...this.props} className={classNames(classes)}/>\r\n }\r\n }\r\n}\r\n\r\nexport const BootstrapField = connect(BootstrapFieldInner);\r\n\r\nclass BootstrapErrorInner extends Component {\r\n\r\n render() {\r\n let errors = this.props.formik.errors;\r\n let fieldErrors = errors[this.props.name];\r\n if (fieldErrors){\r\n return <div className=\"invalid-feedback\">{fieldErrors}</div>\r\n } \r\n return null;\r\n }\r\n\r\n}\r\n\r\nexport const BootstrapError = connect(BootstrapErrorInner);\r\n\r\n\r\n","export default class PaymentRequest {\r\n constructor(payerData, paymentDetail, documents) {\r\n this.payer_data = payerData;\r\n this.payment_detail = paymentDetail;\r\n this.documents = documents;\r\n }\r\n}\r\n","export default class DepositRequest {\r\n constructor(payerData, paymentDetail, deposit_detail) {\r\n this.payer_data = payerData;\r\n this.payment_detail = paymentDetail;\r\n this.deposit_detail = deposit_detail;\r\n }\r\n }","import {createSelector} from 'reselect';\r\nimport * as appConstants from '../../constants/ApplicationConstants';\r\n\r\nimport moment from 'moment';\r\n\r\nconst getSelectedInvoices = state => state.invoice.selected;\r\nconst getLineItems = state => state.invoice.invoiceDetail;\r\nconst getPaymentOptions = state => state.default.payerDetails.payment_cards;\r\nconst getSelectedPaymentOptionIndex = state => state.default.selectedCard;\r\nconst getCurrentUser = state => state.default.currentUser;\r\nconst getAccountType = state => state.user_options.accountType;\r\nconst getSelectedSecondaryAccountIndex = state => state.user_options.selectedSecondaryAccount;\r\nconst getSelectedPrimaryAccountIndex = state => state.user_options.selectedPrimaryAccountIndex;\r\nconst getPrimaryAccounts = state => state.user_options.primaryAccounts;\r\nconst getSecondaryAccounts = state => state.user_options.secondaryAccounts;\r\nconst getInvoiceSearchToDate = state => state.user_options.invoiceSearchToDate;\r\nconst getInvoiceSearchFromDate = state => state.user_options.invoiceSearchFromDate;\r\nconst getInvoiceSearchStatus = state => state.user_options.invoiceSearchStatus;\r\nconst getInvoiceSearchDueDateFrom = state => state.user_options.invoiceSearchDueDateFrom;\r\nconst getInvoiceSearchDueDateTo = state => state.user_options.invoiceSearchDueDateTo;\r\nconst getInvoiceSearchFilter = state => state.user_options.filter;\r\nconst _getImpersonatedUserId = state => state.user_options.impersonatedUserId;\r\nconst getCnbsConfig = state => state.app.cnbsConfig;\r\n\r\n\r\n//Added\r\nconst getSoldToSearchParams = (state) => state.user_options.SoldTo_SearchParams;\r\nconst getCurrency = (state) => state.default.selectedCurrencyOptionValue;\r\n\r\n\r\n\r\n\r\n\r\nexport const getImpersonatedUserId = createSelector([getCurrentUser, _getImpersonatedUserId], (user, impersonatedUserId) => {\r\n if (impersonatedUserId === null || typeof impersonatedUserId === \"undefined\") {\r\n return user.UserId;\r\n }\r\n return impersonatedUserId;\r\n});\r\n\r\nexport const getInvoiceTotal = createSelector([getSelectedInvoices], items => {\r\n let total = Object.keys(items)\r\n .map(key => items[key])\r\n .reduce((total, item) => {\r\n total += item.open_amount;\r\n return Math.round(total * 100) / 100;\r\n }, 0);\r\n return total.toFixed(2);\r\n});\r\n\r\nexport const getSelectedPrimaryAccount = createSelector(\r\n [getSelectedPrimaryAccountIndex, getPrimaryAccounts],\r\n (index, accounts) => {\r\n if (typeof accounts === \"undefined\" || accounts.length === 0) {\r\n return null;\r\n }\r\n return accounts[index];\r\n }\r\n);\r\n\r\nexport const getCanUseChecks = createSelector(\r\n [getSelectedPrimaryAccount],\r\n (account) => {\r\n if(account == null){\r\n return true;\r\n }\r\n return account.CompanyCode !== \"0020\";\r\n }\r\n);\r\n\r\nexport const getSelectedSecondaryAccount = createSelector(\r\n [getSelectedSecondaryAccountIndex, getSecondaryAccounts],\r\n (index, accounts) => {\r\n if (typeof accounts === \"undefined\" || accounts == null || accounts.length === 0) {\r\n return null;\r\n }\r\n return accounts[index];\r\n }\r\n);\r\n\r\nexport const getPayTotal = createSelector([getLineItems], items => {\r\n let total = Object.keys(items)\r\n .map(key => items[key])\r\n .reduce((total, item) => {\r\n total += parseFloat(item.amount);\r\n return (Math.round(parseFloat(total) * 100) / 100);\r\n }, 0);\r\n return total.toFixed(2);\r\n});\r\n\r\n// Represents the amount the will be paid with credit card or EC.\r\nexport const getBeforeCreditTotal = createSelector([getLineItems, getSelectedInvoices], (items, selected) => {\r\n return Object.keys(items)\r\n .map(key => {\r\n return {details: items[key], invoice: selected[key]}\r\n })\r\n .reduce((total, item) => {\r\n if (item.invoice.open_amount >= 0) {\r\n total += item.details.amount;\r\n }\r\n return total;\r\n }, 0);\r\n});\r\n\r\nexport const getCreditTotal = createSelector([getLineItems, getSelectedInvoices], (items, selected) => {\r\n return Object.keys(items)\r\n .map(key => {\r\n return {details: items[key], invoice: selected[key]}\r\n })\r\n .reduce((total, item) => {\r\n if (item.invoice.open_amount < 0) {\r\n total += item.details.amount;\r\n }\r\n return total;\r\n }, 0);\r\n});\r\n\r\nexport const getSelectedInvoiceKeys = createSelector([getSelectedInvoices], items => {\r\n return Object.keys(items);\r\n});\r\n\r\nexport const getOverpayingAmount = createSelector([getInvoiceTotal, getPayTotal], (total, payTotal) => {\r\n return (Math.round(parseFloat(payTotal - total) * 100) / 100).toFixed(2);\r\n});\r\n\r\nexport const getPayerAccount = createSelector(\r\n [getSelectedPrimaryAccount, getSelectedSecondaryAccount, getAccountType],\r\n (primary, secondary, accountType) => {\r\n if (accountType === appConstants.SOLD_TO_COMPARE) {\r\n return secondary;\r\n } else {\r\n return primary;\r\n }\r\n }\r\n);\r\n\r\n\r\nexport const getAllPaymentOptions = createSelector(\r\n [getPaymentOptions, state => state.payment.sessionCards, state => state.payment.sessionChecks, getPayerAccount],\r\n (options, sessionCards, sessionChecks, payerAccount) => {\r\n let newCardData = options.slice(0);\r\n newCardData.forEach(c => c.is_session = false);\r\n\r\n if (payerAccount) {\r\n let account = payerAccount.PrimaryAcct;\r\n for (let prop in sessionCards[account]) {\r\n if (sessionCards[account].hasOwnProperty(prop)) {\r\n let card = sessionCards[account][prop];\r\n card.is_session = true;\r\n newCardData.push(sessionCards[account][prop]);\r\n }\r\n }\r\n\r\n for (let prop in sessionChecks[account]) {\r\n if (sessionChecks[account].hasOwnProperty(prop)) {\r\n let check = sessionChecks[account][prop];\r\n check.is_session = true;\r\n newCardData.push(sessionChecks[account][prop]);\r\n }\r\n }\r\n }\r\n\r\n return newCardData;\r\n }\r\n);\r\n\r\nexport const getSelectedPaymentOption = createSelector(\r\n [getAllPaymentOptions, getSelectedPaymentOptionIndex],\r\n (options, selectedIndex) => {\r\n if (selectedIndex === null) {\r\n return null;\r\n }\r\n return options[selectedIndex];\r\n }\r\n);\r\n\r\nexport const getCustomerNumber = createSelector(\r\n [getAccountType, getSelectedSecondaryAccount, getSelectedPrimaryAccount],\r\n (accountType, selectedSecondaryAccount, selectedPrimaryAccount) => {\r\n if (accountType === appConstants.SOLD_TO_COMPARE) {\r\n return selectedSecondaryAccount.PrimaryAcct;\r\n } else {\r\n return selectedPrimaryAccount.PrimaryAcct;\r\n }\r\n }\r\n);\r\n\r\n//TODO move out of selectors.\r\nexport function getPayerSoldToForInvoiceQuery(accountType, secondaryAccount, primaryAccount) {\r\n let payer_data;\r\n let soldto_data = {customer_number: \"\", company_code: \"\"};\r\n if (accountType === appConstants.SOLD_TO_COMPARE) {\r\n payer_data = {\r\n customer_number: secondaryAccount.PrimaryAcct,\r\n company_code: primaryAccount.CompanyCode\r\n };\r\n soldto_data = {\r\n customer_number: primaryAccount.PrimaryAcct,\r\n accounts: primaryAccount.TransactionalAccounts,\r\n };\r\n } else {\r\n payer_data = {\r\n customer_number: primaryAccount.PrimaryAcct,\r\n company_code: primaryAccount.CompanyCode\r\n };\r\n soldto_data = null;\r\n }\r\n return {payer_data, soldto_data};\r\n}\r\n\r\n//TODO move out of selectors.\r\nexport function getDefaultFilters(accountType, impersonatedUserId) {\r\n let defaultFilters = [];\r\n if (accountType === appConstants.ACCOUNT_PAYER_ALL) {\r\n defaultFilters.push({\r\n filter_type: '90',\r\n value: impersonatedUserId,\r\n });\r\n }\r\n return defaultFilters;\r\n}\r\n\r\n\r\nexport const getInvoiceSearchQuery = createSelector(\r\n [\r\n getAccountType,\r\n getSoldToSearchParams,\r\n getSelectedPrimaryAccount,\r\n getSelectedSecondaryAccount,\r\n getInvoiceSearchFromDate,\r\n getInvoiceSearchToDate,\r\n getInvoiceSearchStatus,\r\n getInvoiceSearchDueDateFrom,\r\n getInvoiceSearchDueDateTo,\r\n getInvoiceSearchFilter,\r\n getImpersonatedUserId,\r\n ],\r\n (\r\n accountType,\r\n SoldToSearchParams,\r\n primaryAccount,\r\n secondaryAccount,\r\n fromDate,\r\n toDate,\r\n status,\r\n dueDateFrom,\r\n dueDateTo,\r\n filter,\r\n impersonatedUserId\r\n ) => {\r\n try {\r\n let { payer_data, soldto_data } = getPayerSoldToForInvoiceQuery(\r\n accountType,\r\n secondaryAccount,\r\n primaryAccount\r\n );\r\n return {\r\n payer_data,\r\n soldto_data,\r\n search_parameters: {\r\n document_type: \"01\",\r\n status: status,\r\n SoldTo_SearchParams: SoldToSearchParams,\r\n date_from:\r\n fromDate === \"\" ? appConstants.INV_LIST_REQ_BEGIN_DATE : fromDate,\r\n date_to:\r\n toDate === \"\" ? moment(new Date()).format(\"MM-DD-YYYY\") : toDate,\r\n due_date_from: dueDateFrom,\r\n due_date_to: dueDateTo,\r\n currency_key: \"\",\r\n filter: getDefaultFilters(accountType, impersonatedUserId).concat(\r\n filter\r\n ),\r\n },\r\n } ;\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n);\r\n\r\n\r\n\r\nexport const getInvoiceQuery = createSelector(\r\n [\r\n getAccountType,\r\n getSelectedPrimaryAccount,\r\n getSelectedSecondaryAccount,\r\n getInvoiceSearchFromDate,\r\n getInvoiceSearchToDate,\r\n getInvoiceSearchStatus,\r\n getInvoiceSearchDueDateFrom,\r\n getInvoiceSearchDueDateTo,\r\n getInvoiceSearchFilter,\r\n getImpersonatedUserId,\r\n ],\r\n (\r\n accountType,\r\n primaryAccount,\r\n secondaryAccount,\r\n fromDate,\r\n toDate,\r\n status,\r\n dueDateFrom,\r\n dueDateTo,\r\n filter,\r\n impersonatedUserId\r\n ) => {\r\n try {\r\n let {payer_data, soldto_data} = getPayerSoldToForInvoiceQuery(accountType, secondaryAccount, primaryAccount);\r\n return {\r\n payer_data,\r\n soldto_data,\r\n search_parameters: {\r\n document_type: '01',\r\n status: '01',\r\n date_from: appConstants.INV_LIST_REQ_BEGIN_DATE,\r\n date_to: moment(new Date()).format('MM-DD-YYYY'),\r\n due_date_from: dueDateFrom,\r\n due_date_to: dueDateTo,\r\n currency_key: '',\r\n filter: getDefaultFilters(accountType, impersonatedUserId).concat(filter),\r\n }\r\n };\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n);\r\n\r\nexport const getDepositReasonCodes = createSelector([getCnbsConfig], config => {\r\n const reasonCodes = [];\r\n if (config && config.payment_reason_codes) {\r\n for (let i = 0; i < config.payment_reason_codes.length; i += 1) {\r\n const code = config.payment_reason_codes[i];\r\n if (code.payment_type === 'D') {\r\n reasonCodes.push({\r\n value: code.reason_code,\r\n label: code.description,\r\n commentsRequired: code.comments_required,\r\n });\r\n }\r\n }\r\n }\r\n return reasonCodes;\r\n});\r\n\r\nexport const getPayerAccounts = createSelector(\r\n [getPrimaryAccounts, getSecondaryAccounts, getAccountType],\r\n (primaryAccounts, secondaryAccounts, accountType) => {\r\n if (accountType === appConstants.SOLD_TO_COMPARE) {\r\n return secondaryAccounts;\r\n } else {\r\n return primaryAccounts;\r\n }\r\n }\r\n);\r\n\r\nexport const hasDeposits = createSelector(\r\n [getCnbsConfig],\r\n (config) => {\r\n try {\r\n return typeof config && config.payment_types && config.payment_types.find(t => t.payment_type === \"D\") !== \"undefined\" && config.payment_types.find(t => t.payment_type === \"D\").active === \"X\";\r\n } catch (e) {\r\n return false;\r\n }\r\n }\r\n);\r\n\r\n\r\nexport const getCurrentAccount = createSelector(\r\n [getSelectedPrimaryAccount, getSelectedSecondaryAccount, getAccountType],\r\n (primary, secondary, accountType) => {\r\n let request;\r\n if (accountType === appConstants.SOLD_TO_COMPARE) {\r\n // Use Secondary Account\r\n request = {\r\n company_code: primary && primary.CompanyCode,\r\n sales_organization: secondary && secondary.SalesOrganization,\r\n distribution_channel: secondary && secondary.DistributionChannel,\r\n division: secondary && secondary.Division\r\n };\r\n } else {\r\n // Use Primary Account\r\n request = {\r\n company_code: primary && primary.CompanyCode,\r\n sales_organization: primary && primary.SalesOrganization,\r\n distribution_channel: primary && primary.DistributionChannel,\r\n division: primary && primary.Division\r\n };\r\n }\r\n return request;\r\n }\r\n);\r\n","export default class payer_data {\r\n constructor(customerNumber, companyCode) {\r\n this.customer_number = customerNumber;\r\n this.company_code = companyCode;\r\n this.action = '';\r\n }\r\n}\r\n","import PayerData from '../../models/payer_data';\r\n\r\nexport function getValue(property, defaultVal) {\r\n if (typeof property === 'undefined'){\r\n return defaultVal;\r\n }\r\n return property;\r\n}\r\nexport function valueEquals(property, equals) {\r\n if (typeof property === 'undefined'){\r\n return false;\r\n }\r\n return property === equals;\r\n}\r\n\r\nexport function mapInvoiceToPaymentDocument(invoice, details, payment_reason_codes) {\r\n let reason_description = \"\";\r\n if(details.reason !== \"\" && typeof details.reason !== \"undefined\"){\r\n reason_description = payment_reason_codes.find(r => r.reason_code === details.reason).description;\r\n }\r\n \r\n return {\r\n billing_document_number: invoice.billing_document_number,\r\n document_number_finance: invoice.document_number_finance,\r\n line_item_in_the_relevant_invoice: invoice.line_item_in_the_relevant_invoice,\r\n fiscal_year_of_the_relevant_invoice: invoice.fiscal_year_of_the_relevant_invoice,\r\n open_amount: invoice.open_amount,\r\n amount_to_process: details.amount,\r\n currency_key: invoice.currency_key,\r\n reason_code: details.reason,\r\n reason_description: reason_description,\r\n comment: details.comment,\r\n reference_number: invoice.reference_number,\r\n zzcustom: invoice.zzcustom\r\n }\r\n}\r\n\r\nexport function mapInvoiceListToPaymentDocuments(invoices, details, payment_reason_codes) {\r\n return Object.keys(invoices).map((key) => {\r\n return mapInvoiceToPaymentDocument(invoices[key], details[key], payment_reason_codes);\r\n });\r\n}\r\n\r\nexport function mapPaymentDetails(payment_card, cvv = '', address = {}) {\r\n const paymentMethod = payment_card.payment_card_type === 'EC' ? 'EC' : 'CC';\r\n return {\r\n payment_method: paymentMethod,\r\n payment_card_type: payment_card.payment_card_type,\r\n payment_card_token: payment_card.payment_card_token,\r\n payment_card_name: payment_card.payment_card_name,\r\n electronic_check_account_type: payment_card.electronic_check_account_type,\r\n electronic_check_rdfi_number: payment_card.electronic_check_rdfi_number,\r\n valid_to: payment_card.valid_to,\r\n card_validation_code: cvv,\r\n address_data: {\r\n name: getValue(address.name, ''),\r\n name_2: getValue(address.name_2, ''),\r\n city: getValue(address.city, ''),\r\n district: getValue(address.district, ''),\r\n street: getValue(address.street, ''),\r\n postal_code_city: getValue(address.postal_code_city, ''),\r\n region: getValue(address.region, ''),\r\n country: getValue(address.country, ''),\r\n }\r\n };\r\n}\r\n\r\nexport function createPayerData(customerNumber, companyCode) {\r\n return new PayerData(customerNumber, companyCode);\r\n}\r\n\r\nexport function mapDepositDetails(values){\r\n return {\r\n amount_to_process: values.amount_to_process,\r\n currency_key: 'USD',\r\n reason_code: values.reason_code,\r\n reference_number: values.reference_number,\r\n comment: values.comment\r\n }\r\n}\r\n","import {createSelector} from 'reselect';\r\nimport {getAllPaymentOptions} from \"../invoice/Selectors\";\r\n\r\nexport const getChecksSelector = createSelector([getAllPaymentOptions], (payment_cards) => {\r\n return payment_cards.filter(_ => _.payment_card_type === 'EC');\r\n});\r\nexport const getCreditCardsSelector = createSelector([getAllPaymentOptions ], (payment_cards, sessionCards) => {\r\n return payment_cards.filter(_ => _.payment_card_type !== 'EC');\r\n});\r\n","import axios from '../axios';\r\nimport * as axios2 from 'axios';\r\nimport * as apiTypes from \"../constants/ApiConstants\";\r\nimport moment from \"moment\";\r\n\r\n/**\r\n *\r\n * @param type: 'EC' | 'CC'\r\n * @returns Promise<{merchant_id, access_token, paymetric_xi_url}>\r\n */\r\nexport function getPaymentAccessToken(type) {\r\n if (!(type === 'EC' || type === 'CC')) {\r\n return Promise.reject({error: \"Invalid payment type.\"});\r\n }\r\n return axios.post(apiTypes.GET_PAYMENT_ACCESS_TOKEN, {\r\n action: '01',\r\n payment_method: type\r\n }).then(response => {\r\n return response.data;\r\n });\r\n}\r\n\r\nexport function buildCCRequest(card_details, merchant_id, access_token) {\r\n let data = window.$XIPlugin.createJSRequestPacket(merchant_id, access_token);\r\n data.addField(window.$XIPlugin.createField('PAYMET', false, 'CC'));\r\n data.addField(window.$XIPlugin.createField('CCINS', false, card_details.card_type));\r\n data.addField(window.$XIPlugin.createField('CCNUM', true, card_details.card_number.replace(/\\s/g, '')));\r\n data.addField(window.$XIPlugin.createField('CCNAME', false, card_details.card_name));\r\n data.addField(window.$XIPlugin.createField('VALTM', false, parseInt(card_details.card_month, 10)));\r\n data.addField(window.$XIPlugin.createField('VALTY', false, parseInt(card_details.card_year, 10)));\r\n data.addField(window.$XIPlugin.createField('CVVAL', false, card_details.card_validation_code));\r\n return data;\r\n}\r\n\r\nexport function buildECRequest(ec_details, merchant_id, access_token) {\r\n let data = window.$XIPlugin.createJSRequestPacket(merchant_id, access_token);\r\n data.addField(window.$XIPlugin.createField('PAYMET', false, 'EC'));\r\n data.addField(window.$XIPlugin.createField('CCINS', false, 'EC'));\r\n data.addField(window.$XIPlugin.createField('CCNUM', true, ec_details.account_number.replace(/\\s/g, '').replace(/-/g, '').padStart(10, \"0\")));\r\n data.addField(window.$XIPlugin.createField('CCNAME', false, ec_details.name));\r\n data.addField(window.$XIPlugin.createField('ECRDFI', false, ec_details.routing_number));\r\n data.addField(window.$XIPlugin.createField('ECACTTYP', false, ec_details.type));\r\n return data;\r\n}\r\n\r\nconst encodeForm = (data) => {\r\n return Object.keys(data)\r\n .map(key => encodeURIComponent(key) + '=' + encodeURIComponent(data[key]))\r\n .join('&');\r\n}\r\n\r\nexport function getPaymetricResponse(paymetricUrl, data) {\r\n return new Promise((resolve, reject) => {\r\n window.$XIPlugin.ajax({\r\n url: paymetricUrl + \"/Ajax\",\r\n type: \"POST\",\r\n data: data,\r\n success: function(a) {\r\n console.log(a);\r\n resolve(a);\r\n },\r\n error: function(a) {\r\n reject(a);\r\n }\r\n });\r\n });\r\n // return axios2.post(paymetricUrl + '/Ajax', encodeForm(data), {\r\n // headers: {\r\n // 'Content-Type': 'application/x-www-form-urlencoded'\r\n // }\r\n // }).then(response => {\r\n // return response.data;\r\n // });\r\n}\r\n\r\nexport function getPaymentResponse(access_token) {\r\n return axios.post(apiTypes.GET_PAYMENT_RESPONSE, {\r\n action: '02',\r\n access_token: access_token\r\n }).then(response => {\r\n return response.data;\r\n });\r\n}\r\n\r\nexport function addPaymentMethod(customer_number, company_code, payment_card, make_default = false, cvv = \"\") {\r\n let action = '01';\r\n return sendManagePaymentCardsRequest(action, customer_number, company_code, payment_card, make_default, cvv);\r\n}\r\n\r\nexport function updatePaymentMethod(customer_number, company_code, payment_card, make_default = false) {\r\n let action = '02';\r\n return sendManagePaymentCardsRequest(action, customer_number, company_code, payment_card, make_default);\r\n}\r\n\r\nexport function deletePaymentMethod(customer_number, company_code, payment_card, make_default = false) {\r\n let action = '03';\r\n return sendManagePaymentCardsRequest(action, customer_number, company_code, payment_card, make_default);\r\n}\r\n\r\n\r\nexport function preAuthCCPaymentMethod(customer_number, company_code, payment_card, make_default = false, cvv = \"\") {\r\n let action = '04';\r\n return sendManagePaymentCardsRequest(action, customer_number, company_code, payment_card, make_default, cvv);\r\n}\r\n\r\nfunction sendManagePaymentCardsRequest(action, customer_number, company_code, payment_cards, make_default, cvv = \"\") {\r\n return axios.post(apiTypes.MANAGE_PAYMENTS_URL, {\r\n payer_data: {\r\n customer_number: customer_number,\r\n company_code: company_code,\r\n },\r\n action: action,\r\n payment_cards: [{\r\n payment_card_name: payment_cards.payment_card_name,\r\n payment_card_token: payment_cards.payment_card_token,\r\n payment_card_type: payment_cards.payment_card_type,\r\n valid_from: \"\",\r\n valid_to: payment_cards.valid_to,\r\n default: make_default ? 'X' : '',\r\n card_validation_code: cvv,\r\n electronic_check_account_type: payment_cards.electronic_check_account_type,\r\n electronic_check_rdfi_number: payment_cards.electronic_check_rdfi_number,\r\n }]\r\n }).then(response => {\r\n if (response.data && response.data.message_type === \"S\") {\r\n return response.data;\r\n } else if (response.data && response.data.status && response.data.status.message_type === \"S\") {\r\n return response.data;\r\n } else {\r\n throw {message_number: response.data.message_number, message_string: response.data.message_line_string};\r\n }\r\n });\r\n}\r\n\r\nexport function cardFormToUpdateObject(card, token) {\r\n let valid_to = moment();\r\n valid_to.year(card.card_year);\r\n valid_to.month(parseInt(card.card_month) - 1);\r\n valid_to.endOf('month');\r\n return {\r\n payment_card_name: card.card_name,\r\n payment_card_token: token,\r\n payment_card_type: card.card_type,\r\n valid_from: \"\",\r\n valid_to: valid_to.format('MM-DD-YYYY'),\r\n card_validation_code: card.card_validation_code,\r\n electronic_check_account_type: card.electronic_check_account_type,\r\n electronic_check_rdfi_number: card.electronic_check_rdfi_number,\r\n }\r\n}\r\n\r\nexport function checkFormToUpdateObject(card, token) {\r\n return {\r\n payment_card_name: card.name,\r\n payment_card_token: token,\r\n payer_account: card.payer_account,\r\n payment_card_type: \"EC\",\r\n }\r\n}\r\n","import React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\nimport {extractLastCardNumbers, getPayerDetailsBuilder} from \"../../actions/InvoiceActions\";\r\nimport {getPayerAccount, getSelectedPrimaryAccount, getSelectedSecondaryAccount} from \"../invoice/Selectors\";\r\nimport {deletePaymentMethod} from \"../../requests/TokenRequests\";\r\nimport {deleteSessionCard, deleteSessionCheck} from \"../../reducers/PaymentReducer\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome/index.es\";\r\n\r\nexport class PaymentTypeDetails extends Component {\r\n\r\n constructor() {\r\n super();\r\n this.displayText = this.displayText.bind(this);\r\n this.getIconImage = this.getIconImage.bind(this);\r\n this.deletePaymentCard = this.deletePaymentCard.bind(this);\r\n }\r\n\r\n displayText() {\r\n let p = this.props.payment_card;\r\n let digits = extractLastCardNumbers(p.payment_card_token);\r\n if (p.payment_card_type === 'EC') {\r\n return `eCheck ending with *${digits}`;\r\n } else {\r\n return `${p.payment_card_type} ending with *${digits}`;\r\n }\r\n }\r\n\r\n displayText2() {\r\n let p = this.props.payment_card;\r\n return `${p.payment_card_name}`;\r\n }\r\n\r\n getIconImage() {\r\n if (this.props.payment_card.payment_card_type === 'EC') {\r\n return <FontAwesomeIcon icon={\"money-check\"}/>\r\n } else {\r\n return <FontAwesomeIcon icon={\"credit-card\"}/>\r\n }\r\n }\r\n\r\n\r\n async deletePaymentCard() {\r\n this.props.deletePaymentMethod(this);\r\n }\r\n\r\n render() {\r\n return <div className={'payment-type-details mb-2'}>\r\n <div className={\"payment-type-icon-container\"}>\r\n <span>{this.getIconImage()}</span>\r\n {this.props.payment_card.isDefault ? <span className=\"p-0\" title=\"Default\"><FontAwesomeIcon icon={\"asterisk\"}/></span> : null}\r\n </div>\r\n <div className={\"payment-type-description-container\"}>\r\n <div>\r\n <span className=\"payment-card-description\">{this.displayText2()}</span>\r\n </div>\r\n <div>\r\n <small className={\"text-muted\"}>\r\n <span className=\"payment-card-description\">{this.displayText()}</span>\r\n {this.props.payment_card.is_session && <span> (Session)</span>}\r\n </small>\r\n </div>\r\n </div>\r\n <div className={\"payment-type-actions\"}>\r\n <span role={\"button\"} className={\"font-button-icon\"}\r\n data-toggle=\"modal\"\r\n data-target={`#confirmDelete-${this.props.payment_card.payment_card_token}`}>\r\n <FontAwesomeIcon icon={\"trash\"}/> Delete</span>\r\n <span role={\"button\"} className={\"font-button-icon\"}\r\n onClick={() => {this.props.onEdit(this.props.payment_card)}}>\r\n <FontAwesomeIcon icon={\"edit\"}/> Edit</span>\r\n </div>\r\n \r\n <div\r\n className=\"modal fade\"\r\n id={`confirmDelete-${this.props.payment_card.payment_card_token}`}\r\n tabIndex=\"-1\"\r\n role=\"dialog\"\r\n aria-labelledby=\"confirmDeleteLabel\"\r\n aria-hidden=\"true\"\r\n >\r\n <div className=\"modal-dialog\" role=\"document\">\r\n <div className=\"modal-content\">\r\n <div className=\"modal-header\">\r\n <h5 className=\"modal-title\" id=\"confirmDeleteLabel\">\r\n Confirm Deletion\r\n </h5>\r\n\t\t <button\r\n type=\"button\"\r\n className=\"close\"\r\n data-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n >\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n <div className=\"modal-body\">\r\n Are you sure you want to delete your credit card from the payment method list?\r\n </div>\r\n <div className=\"modal-footer\">\r\n <button type=\"button\" className=\"btn btn-primary\" data-dismiss=\"modal\" onClick={this.deletePaymentCard}>\r\n Ok\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-secondary\"\r\n data-dismiss=\"modal\"\r\n >\r\n Cancel\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n }\r\n}\r\n\r\nPaymentTypeDetails.propTypes = {\r\n payment_card_index: PropTypes.number,\r\n payment_card: PropTypes.object.isRequired,\r\n onEdit: PropTypes.func.isRequired,\r\n onDelete: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default connect((state, props) => {\r\n return {\r\n payerAccount: getPayerAccount(state, props),\r\n primaryAccount: getSelectedPrimaryAccount(state, props),\r\n secondaryAccount: getSelectedSecondaryAccount(state, props),\r\n currentUser: state.default.currentUser,\r\n }\r\n}, (dispatch) => {\r\n return {\r\n deletePaymentMethod: async (comp) => {\r\n if (comp.props.payment_card.is_session) {\r\n dispatch(deleteSessionCard(comp.props.payment_card, comp.props.payerAccount.PrimaryAcct));\r\n dispatch(deleteSessionCheck(comp.props.payment_card, comp.props.payerAccount.PrimaryAcct));\r\n } else {\r\n await deletePaymentMethod(comp.props.payerAccount.PrimaryAcct, comp.props.primaryAccount.CompanyCode, comp.props.payment_card);\r\n getPayerDetailsBuilder(dispatch, comp.props.primaryAccount, comp.props.secondaryAccount, comp.props.currentUser);\r\n }\r\n comp.props.onDelete(comp.props.payment_card);\r\n }\r\n }\r\n})(PaymentTypeDetails);\r\n","import React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\nimport {getChecksSelector} from \"./PaymentCardsSelectors\";\r\nimport PaymentTypeDetails from \"./PaymentTypeDetails\";\r\n\r\nexport class ChecksList extends Component {\r\n\r\n render() {\r\n\r\n return <div>{\r\n this.props.checks.map((check, index) => {\r\n return <div key={index}><PaymentTypeDetails payment_card={check} onEdit={this.props.onEdit} onDelete={this.props.onDelete}/></div>\r\n })\r\n }{\r\n this.props.checks.length === 0 && <span>No eChecks associated with this account.</span>\r\n }</div>\r\n }\r\n}\r\n\r\nChecksList.propTypes = {\r\n checks: PropTypes.array,\r\n onEdit: PropTypes.func.isRequired,\r\n onDelete: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default connect((state, props) => {\r\n return {\r\n checks: getChecksSelector(state, props),\r\n }\r\n})(ChecksList);\r\n","import React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport {getCreditCardsSelector as getCrediCardsSelector} from \"./PaymentCardsSelectors\";\r\nimport PaymentTypeDetails from \"./PaymentTypeDetails\";\r\n\r\nexport class CreditCardsList extends Component {\r\n \r\n render() {\r\n return <div>{\r\n this.props.cards.map((card, index) => {\r\n return <div key={card.payment_card_token}><PaymentTypeDetails payment_card={card} onEdit={this.props.onEdit} onDelete={this.props.onDelete}/></div>\r\n })\r\n }{\r\n this.props.cards.length === 0 && <span>No cards associated with this account.</span>\r\n }</div>\r\n }\r\n}\r\n\r\nCreditCardsList.propTypes = {\r\n cards: PropTypes.array,\r\n onEdit: PropTypes.func.isRequired,\r\n onDelete: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default connect((state, props) => {\r\n return {\r\n cards: getCrediCardsSelector(state, props),\r\n }\r\n})(CreditCardsList);\r\n","import React, {Component} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport ChecksList from \"../ChecksList\";\r\nimport CreditCardsList from \"../CreditCardsList\";\r\nimport classNames from \"classnames\";\r\nimport PropTypes from 'prop-types';\r\nimport {getCanUseChecks, getSelectedPrimaryAccount} from \"../../invoice/Selectors\";\r\n\r\nexport class PaymentCardLists extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showCards: true,\r\n };\r\n this.showCards = this.showCards.bind(this);\r\n this.showChecks = this.showChecks.bind(this);\r\n }\r\n showCards(){\r\n this.setState({showCards: true});\r\n this.props.onTabChange('CC');\r\n }\r\n showChecks(){\r\n this.setState({showCards: false});\r\n this.props.onTabChange('EC');\r\n }\r\n render() {\r\n return <div>\r\n <div className={\"payment-type-tab-container\"}>\r\n <div className={classNames(\"payment-type-tab\", {\"active\": this.state.showCards})} onClick={this.showCards}>My Cards</div>\r\n {this.props.canUseChecks && <div className={classNames(\"payment-type-tab\", {\"active\": !this.state.showCards})} onClick={this.showChecks}>My eChecks</div>}\r\n </div>\r\n <div>\r\n {this.state.showCards ?\r\n <CreditCardsList onEdit={this.props.onEdit} onDelete={this.props.onDelete}/> :\r\n <ChecksList onEdit={this.props.onEdit} onDelete={this.props.onDelete}/>\r\n }\r\n </div>\r\n </div>\r\n }\r\n\r\n}\r\n\r\nPaymentCardLists.propTypes = {\r\n onEdit: PropTypes.func.isRequired,\r\n onDelete: PropTypes.func.isRequired\r\n};\r\n\r\nexport default connect((state, props) => {\r\n return {\r\n selectedPrimaryAccount: getSelectedPrimaryAccount(state),\r\n canUseChecks: getCanUseChecks(state),\r\n }\r\n})(PaymentCardLists);\r\n","import React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {toast} from 'react-toastify';\r\nimport {extractLastCardNumbers} from \"../../actions/InvoiceActions\";\r\nimport {Formik} from \"formik\";\r\nimport {AddCreditCardSchema, EditCreditCardSchema} from './schemas';\r\nimport {BootstrapError, BootstrapField} from \"../../helpers/Field\";\r\nimport {ERROR_PAYMENT_METHOD} from \"../../constants/ErrorMessages\";\r\nimport moment from \"moment\";\r\nimport * as cardValidator from 'card-validator';\r\nimport {connect} from \"react-redux\";\r\nimport {faChevronDown} from \"@fortawesome/free-solid-svg-icons\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\n\r\nexport class AddCreditCardForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveCard = this.saveCard.bind(this);\r\n this.buttonText = this.buttonText.bind(this);\r\n this.renderPaymentMethods = this.renderPaymentMethods.bind(this);\r\n }\r\n\r\n async saveCard(card) {\r\n this.props.save(card);\r\n }\r\n\r\n buttonText() {\r\n if(this.props.alwaysSaveOnFile){\r\n return this.props.isEditing ? \"Update Card\" : \"Save Card\";\r\n } else {\r\n return \"Next\";\r\n }\r\n }\r\n\r\n renderPaymentMethods(){\r\n return (<BootstrapField component=\"select\" name=\"card_type\" disabled={this.props.isEditing}>\r\n <option value={\"\"}>Select Type</option>\r\n {this.props.paymentMethods.indexOf(\"VISA\") !== -1 && <option value=\"VISA\">Visa</option>}\r\n {this.props.paymentMethods.indexOf(\"MC\") !== -1 && <option value=\"MC\">Master Card</option>}\r\n {this.props.paymentMethods.indexOf(\"AMEX\") !== -1 && <option value=\"AMEX\">American Express</option>}\r\n </BootstrapField>)\r\n }\r\n \r\n render() {\r\n let initialValues = {\r\n card_type: \"\",\r\n card_name: \"\",\r\n card_number: \"\",\r\n card_validation_code: \"\",\r\n save_on_file: this.props.alwaysSaveOnFile,\r\n make_default: false,\r\n };\r\n let schema = AddCreditCardSchema;\r\n if (this.props.isEditing) {\r\n let date = moment(this.props.payment.valid_to, \"MM-DD-YYYY\");\r\n initialValues = {\r\n card_type: this.props.payment.payment_card_type,\r\n card_name: this.props.payment.payment_card_name,\r\n card_number: `ending in *${extractLastCardNumbers(this.props.payment.payment_card_token, '-')}`,\r\n card_validation_code: \"\",\r\n save_on_file: !this.props.payment.is_session,\r\n make_default: this.props.payment.isDefault,\r\n card_month: date.format(\"MM\"),\r\n card_year: date.format(\"YYYY\"),\r\n };\r\n schema = EditCreditCardSchema;\r\n }\r\n return <div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Formik\r\n initialValues={initialValues}\r\n validationSchema={\r\n schema\r\n }\r\n validateOnChange={true}\r\n validate={(values) => {\r\n let errors = {};\r\n if ( !cardValidator.expirationDate({month: values.card_month, year: values.card_year}).isValid){\r\n errors.card_month = 'Invalid expiration date.';\r\n }\r\n return errors;\r\n }}\r\n enableReinitialize={true}\r\n onSubmit={(values, bag) => {\r\n bag.setSubmitting(true);\r\n this.saveCard(values).then((paymentcard) => {\r\n bag.setSubmitting(false);\r\n if (this.props.onCardConfirmed) {\r\n this.props.onCardConfirmed(paymentcard);\r\n }\r\n }).catch(() => {\r\n toast.error(ERROR_PAYMENT_METHOD, {position: toast.POSITION.TOP_RIGHT});\r\n bag.setSubmitting(false);\r\n });\r\n }}\r\n render={(props) => (\r\n <form className='payment-form' onSubmit={props.handleSubmit}>\r\n <div className=\"row\">\r\n <div className=\"col-md-6\">\r\n <div className={\"form-group customSelect\"}>\r\n {this.renderPaymentMethods()}\r\n <FontAwesomeIcon icon={faChevronDown} className={\"select-arrow\"}/>\r\n <BootstrapError name=\"card_type\"/>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <div className=\"form-group\">\r\n <BootstrapField type=\"text\" name=\"card_name\" placeholder=\"Name on Card\"/>\r\n <BootstrapError name=\"card_name\"/>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <div className=\"form-group\">\r\n <BootstrapField type=\"text\" name=\"card_number\" placeholder=\"Card Number\"\r\n disabled={this.props.isEditing}/>\r\n <BootstrapError name=\"card_number\"/>\r\n </div>\r\n </div>\r\n </div>\r\n <div className={\"row\"}>\r\n <div className=\"col-md-4 customSelect\">\r\n <BootstrapField component=\"select\" name=\"card_month\" placeholder=\"MM\">\r\n <option value=\"\">MM</option>\r\n <option value=\"01\">January</option>\r\n <option value=\"02\">February</option>\r\n <option value=\"03\">March</option>\r\n <option value=\"04\">April</option>\r\n <option value=\"05\">May</option>\r\n <option value=\"06\">June</option>\r\n <option value=\"07\">July</option>\r\n <option value=\"08\">August</option>\r\n <option value=\"09\">September</option>\r\n <option value=\"10\">October</option>\r\n <option value=\"11\">November</option>\r\n <option value=\"12\">December</option>\r\n </BootstrapField>\r\n <FontAwesomeIcon icon={faChevronDown} className={\"select-arrow\"}/>\r\n <BootstrapError name=\"card_month\"/>\r\n </div>\r\n <div className=\"col-md-1\">\r\n <span className=\"form-label\">/</span>\r\n </div>\r\n <div className=\"col-md-4 customSelect\">\r\n <BootstrapField component=\"select\" name=\"card_year\" placeholder=\"YY\">\r\n <option value=\"\">YY</option>\r\n <option value=\"2018\">2018</option>\r\n <option value=\"2019\">2019</option>\r\n <option value=\"2020\">2020</option>\r\n <option value=\"2021\">2021</option>\r\n <option value=\"2022\">2022</option>\r\n <option value=\"2023\">2023</option>\r\n <option value=\"2024\">2024</option>\r\n <option value=\"2025\">2025</option>\r\n <option value=\"2026\">2026</option>\r\n <option value=\"2027\">2027</option>\r\n <option value=\"2028\">2028</option>\r\n <option value=\"2029\">2029</option>\r\n <option value=\"2030\">2030</option>\r\n <option value=\"2031\">2031</option>\r\n <option value=\"2032\">2032</option>\r\n </BootstrapField>\r\n <FontAwesomeIcon icon={faChevronDown} className={\"select-arrow\"}/>\r\n <BootstrapError name=\"card_year\"/>\r\n </div>\r\n <div className=\"col-md-3\">\r\n <div className=\"form-group\">\r\n <BootstrapField type=\"text\" name=\"card_validation_code\" placeholder=\"CVV\"/>\r\n <BootstrapError name=\"card_validation_code\"/>\r\n </div>\r\n </div>\r\n </div>\r\n <div className={\"row\"}>\r\n {!this.props.alwaysSaveOnFile && \r\n !this.props.isEditing && \r\n <div className=\"col-md-6\">\r\n <div className=\"form-check\">\r\n <input className=\"form-check-input rounded-circle\" type=\"checkbox\" checked={props.values.save_on_file}\r\n id=\"save_on_file\"\r\n name={\"save_on_file\"} onChange={props.handleChange}/>\r\n <label className=\"form-check-label save-on-file-label\" htmlFor=\"save_on_file\">\r\n Save On File\r\n </label>\r\n </div>\r\n </div>}\r\n <div className=\"col-md-6\">\r\n {props.values.save_on_file && <div className=\"form-check\">\r\n <input className=\"form-check-input rounded-circle\" type=\"checkbox\" checked={props.values.make_default}\r\n id=\"make_default\"\r\n name={\"make_default\"} onChange={props.handleChange}/>\r\n <label className=\"form-check-label save-on-file-label\" htmlFor=\"make_default\">\r\n Set as default\r\n </label>\r\n </div>}\r\n </div>\r\n </div>\r\n <div className={\"row\"}>\r\n <div className=\"col-md-12 text-center\">\r\n <button className={\"btn btn-primary save-card-button\"} type=\"submit\"//onClick={this.saveCard}\r\n disabled={props.isSubmitting}\r\n >{this.buttonText()}\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n )}\r\n />\r\n </div>\r\n </div>\r\n </div>;\r\n }\r\n\r\n}\r\n\r\nAddCreditCardForm.defaultProps = {\r\n alwaysSaveOnFile: false,\r\n};\r\n\r\nAddCreditCardForm.propTypes = {\r\n payment: PropTypes.object.isRequired,\r\n save: PropTypes.func.isRequired,\r\n isEditing: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default connect((state, props) => {\r\n return {\r\n paymentMethods: state.app.paymentMethods,\r\n }\r\n})(AddCreditCardForm)\r\n\r\n","export const ERROR_PAYMENT_METHOD = \"There was an error processing payment method.\";","import React, {Component} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport {toast} from 'react-toastify';\r\nimport {getPayerAccount, getSelectedPrimaryAccount, getSelectedSecondaryAccount} from \"../invoice/Selectors\";\r\nimport {extractLastCardNumbers} from \"../../actions/InvoiceActions\";\r\nimport {Formik} from \"formik\";\r\nimport {AddCheckSchema, EditCheckSchema} from \"./schemas\";\r\nimport {BootstrapError, BootstrapField} from \"../../helpers/Field\";\r\nimport {ERROR_PAYMENT_METHOD} from \"../../constants/ErrorMessages\";\r\nimport {faChevronDown} from \"@fortawesome/free-solid-svg-icons\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\n\r\nexport class AddCheckForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.saveCard = this.saveCard.bind(this);\r\n this.buttonText = this.buttonText.bind(this);\r\n }\r\n\r\n async saveCard(card) {\r\n this.props.save(card);\r\n }\r\n \r\n buttonText() {\r\n if(this.props.alwaysSaveOnFile){\r\n return this.props.isEditing ? \"Update eCheck\" : \"Save eCheck\";\r\n } else {\r\n return \"Next\";\r\n }\r\n }\r\n\r\n render() {\r\n let initialValues = {\r\n type: \"\",\r\n name: \"\",\r\n routing_number: \"\",\r\n account_number: \"\",\r\n save_on_file: this.props.alwaysSaveOnFile,\r\n make_default: false,\r\n };\r\n let schema = AddCheckSchema;\r\n if (this.props.isEditing) {\r\n initialValues = {\r\n type: \"\",\r\n name: this.props.payment.payment_card_name,\r\n routing_number: \"*********\",\r\n account_number: `ending in *${extractLastCardNumbers(this.props.payment.payment_card_token, '-')}`,\r\n save_on_file: !this.props.payment.is_session,\r\n make_default: this.props.isDefault,\r\n };\r\n schema = EditCheckSchema;\r\n }\r\n return <div>\r\n <Formik\r\n initialValues={\r\n initialValues\r\n }\r\n validationSchema={\r\n schema\r\n }\r\n enableReinitialize={true}\r\n onSubmit={(values, bag) => {\r\n bag.setSubmitting(true);\r\n this.saveCard(values).then((paymentcard) => {\r\n bag.setSubmitting(false);\r\n if (this.props.onCardConfirmed) {\r\n this.props.onCardConfirmed(paymentcard);\r\n }\r\n }).catch(() => {\r\n toast.error(ERROR_PAYMENT_METHOD, {position: toast.POSITION.TOP_RIGHT});\r\n bag.setSubmitting(false);\r\n });\r\n }}\r\n render={(props) => (\r\n <form name=\"add_credit_card\" className=\"payment-form\" onSubmit={props.handleSubmit}>\r\n {!this.props.isEditing && <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <div className=\"form-group customSelect\">\r\n <BootstrapField component=\"select\" name=\"type\">\r\n <option value={\"\"}>Account Type</option>\r\n <option value=\"C\">Checking</option>\r\n <option value={\"S\"}>Saving Account</option>\r\n <option value={\"X\"}>Corporate Checking</option>\r\n </BootstrapField>\r\n <FontAwesomeIcon icon={faChevronDown} className={\"select-arrow\"}/>\r\n <BootstrapError name=\"type\"/>\r\n </div>\r\n </div>\r\n </div>}\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <div className=\"form-group\">\r\n <BootstrapField type=\"text\" name=\"routing_number\" placeholder=\"Routing Number\"\r\n disabled={this.props.isEditing}/>\r\n <BootstrapError name=\"routing_number\"/>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <div className=\"form-group\">\r\n <BootstrapField type=\"text\" name=\"account_number\" placeholder=\"Account Number\"\r\n disabled={this.props.isEditing}/>\r\n <BootstrapError name=\"account_number\"/>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <div className=\"form-group\">\r\n <BootstrapField type=\"text\" name=\"name\" placeholder=\"Name on Account\"/>\r\n <BootstrapError name=\"name\"/>\r\n </div>\r\n </div>\r\n </div>\r\n <div className={\"row\"}>\r\n {!this.props.alwaysSaveOnFile && !this.props.isEditing && <div className=\"col-md-6\">\r\n <div className=\"form-check\">\r\n <input className=\"form-check-input rounded-circle\" type=\"checkbox\" checked={props.values.save_on_file}\r\n id=\"save_on_file\"\r\n name={\"save_on_file\"} onChange={props.handleChange}/>\r\n <label className=\"form-check-label save-on-file-label\" htmlFor=\"save_on_file\">\r\n Save On File\r\n </label>\r\n </div>\r\n </div>}\r\n <div className=\"col-md-6\">\r\n {props.values.save_on_file && <div className=\"form-check\">\r\n <input className=\"form-check-input rounded-circle\" type=\"checkbox\" checked={props.values.make_default}\r\n id=\"make_default\"\r\n name={\"make_default\"} onChange={props.handleChange}/>\r\n <label className=\"form-check-label save-on-file-label\" htmlFor=\"make_default\">\r\n Set as default\r\n </label>\r\n </div>}\r\n </div>\r\n </div>\r\n <div className={\"row\"}>\r\n <div className=\"col-md-12 text-center\">\r\n <button className={\"btn btn-primary save-card-button\"} type=\"submit\"//onClick={this.saveCard}\r\n disabled={props.isSubmitting}\r\n >{this.buttonText()}\r\n </button>\r\n </div>\r\n </div>\r\n </form>\r\n )}/>\r\n </div>;\r\n }\r\n}\r\n\r\nAddCheckForm.defaultProps = {\r\n alwaysSaveOnFile: false,\r\n save: PropTypes.func.isRequired,\r\n isEditing: PropTypes.bool.isRequired,\r\n};\r\n\r\nAddCheckForm.propTypes = {\r\n payment: PropTypes.object.isRequired,\r\n save: PropTypes.func.isRequired,\r\n isEditing: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default connect((state, props) => {\r\n return {\r\n payerAccount: getPayerAccount(state, props),\r\n selectedPrimaryAccount: getSelectedPrimaryAccount(state, props),\r\n selectedSecondaryAccount: getSelectedSecondaryAccount(state, props),\r\n }\r\n }\r\n)(AddCheckForm);\r\n","import axios from '../axios';\r\n\r\n\r\nexport function getAppConfiguration() {\r\n return axios.get(`/api/config`).then((response) => response.data);\r\n}\r\n\r\nexport function getConfiguration() {\r\n return axios.get(`/api/configuration`).then((response) => response.data);\r\n}\r\n\r\nexport function updateConfiguration(config) {\r\n return axios.put(`/api/configuration`, config).then((response) => response.data);\r\n}\r\n\r\nexport function uploadImage(file) {\r\n const config = { headers: { 'Content-Type': 'multipart/form-data' } };\r\n return axios.post(`/api/configuration/upload`, file, config).then((response) => response.data);\r\n}\r\n\r\nexport function smtpTest(smtpConfig) {\r\n return axios.post(`/api/configuration/smtp-test`, smtpConfig).then((response) => response.data);\r\n}\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PaymentCardLists from \"../payment-card-lists/PaymentCardLists\";\r\nimport AddCreditCardForm from \"../AddCreditCardForm\";\r\nimport AddCheckForm from \"../AddCheckForm\";\r\nimport { getPayerAccount, getSelectedPrimaryAccount, getSelectedSecondaryAccount } from \"../../invoice/Selectors\";\r\nimport { toast } from 'react-toastify';\r\nimport {\r\n addPaymentMethod,\r\n buildCCRequest, buildECRequest, cardFormToUpdateObject, checkFormToUpdateObject,\r\n getPaymentAccessToken,\r\n getPaymentResponse,\r\n getPaymetricResponse, preAuthCCPaymentMethod, updatePaymentMethod\r\n} from \"../../../requests/TokenRequests\";\r\nimport { getPayerDetailsBuilder } from \"../../../actions/InvoiceActions\";\r\nimport { addSessionCard, addSessionCheck, updateSessionCard, updateSessionCheck } from \"../../../reducers/PaymentReducer\";\r\nimport PlayArrow from \"../../../images/playarrow.png\"\r\nimport Pdf from \"../../../images/pdf.png\"\r\nimport { getConfiguration} from \"../../../requests/ConfigRequests\";\r\n\r\nexport class ManagePaymentMethods extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n config: null,\r\n type: 'CC',\r\n editingPayment: null,\r\n isEditing: false,\r\n };\r\n this.addPaymentMethod = this.addPaymentMethod.bind(this);\r\n this.onTabChange = this.onTabChange.bind(this);\r\n this.isCC = this.isCC.bind(this);\r\n this.isEC = this.isEC.bind(this);\r\n this.onCardConfirmed = this.onCardConfirmed.bind(this);\r\n this.editPayment = this.editPayment.bind(this);\r\n this.saveCard = this.saveCard.bind(this);\r\n this.saveCheck = this.saveCheck.bind(this);\r\n this.processCard = this.processCard.bind(this);\r\n this.processCheck = this.processCheck.bind(this);\r\n this.deletePayment = this.deletePayment.bind(this);\r\n this.CCVideoClick = this.CCVideoClick.bind(this);\r\n this.CCPdfClick = this.CCPdfClick.bind(this);\r\n this.ECVideoClick = this.ECVideoClick.bind(this);\r\n this.ECPdfClick = this.ECPdfClick.bind(this);\r\n \r\n }\r\n\r\n componentDidMount() {\r\n getConfiguration().then(\r\n config => this.setState({ config: config }\r\n ));\r\n }\r\n\r\n addPaymentMethod() {\r\n this.setState({ ...this.state, editingPayment: {}, isEditing: false });\r\n }\r\n\r\n isEditing() {\r\n return this.props.editingPayment !== null;\r\n }\r\n\r\n onTabChange(type) {\r\n this.setState({ ...this.state, type: type });\r\n // this.props.setEditingPayment(null);\r\n }\r\n\r\n isEC() {\r\n return this.state.type === 'EC';\r\n }\r\n\r\n isCC() {\r\n return this.state.type === 'CC';\r\n }\r\n\r\n async onCardConfirmed(payment_card) {\r\n this.setState({ ...this.state });\r\n // this.props.setEditingPayment(null);\r\n }\r\n\r\n editPayment(payment) {\r\n this.setState({\r\n editingPayment: payment,\r\n isEditing: true,\r\n });\r\n }\r\n\r\n async saveCard(card) {\r\n await this.processCard(card);\r\n getPayerDetailsBuilder(this.props.dispatch, this.props.primaryAccount, this.props.secondaryAccount, this.props.currentUser);\r\n this.setState({ editingPayment: null });\r\n }\r\n\r\n async saveCheck(card) {\r\n await this.processCheck(card);\r\n getPayerDetailsBuilder(this.props.dispatch, this.props.primaryAccount, this.props.secondaryAccount, this.props.currentUser);\r\n this.setState({ editingPayment: null });\r\n }\r\n\r\n\r\n async processCheck(card) {\r\n if (this.state.isEditing) {\r\n if (card.save_on_file) {\r\n let response = await updatePaymentMethod(\r\n this.props.payerAccount.PrimaryAcct,\r\n this.props.primaryAccount.CompanyCode,\r\n checkFormToUpdateObject(card, this.state.editingPayment.payment_card_token),\r\n card.make_default);\r\n return response;\r\n } else {\r\n this.props.dispatch(updateSessionCheck(checkFormToUpdateObject(card, this.state.editingPayment.payment_card_token), this.props.payerAccount.PrimaryAcct));\r\n }\r\n } else {\r\n const { access_token, merchant_guid, paymetric_xi_url } = await getPaymentAccessToken('EC');\r\n let body = buildECRequest(card, merchant_guid, access_token);\r\n\r\n try {\r\n await getPaymetricResponse(paymetric_xi_url, body);\r\n } catch (e) {\r\n toast.error(`Unable to save account details, please try again.`, { position: toast.POSITION.TOP_RIGHT });\r\n return;\r\n }\r\n\r\n let { paymentcard } = await getPaymentResponse(access_token);\r\n // We don't want to do this. pass payment card to props method\r\n if (card.save_on_file) {\r\n try {\r\n await addPaymentMethod(this.props.payerAccount.PrimaryAcct, this.props.primaryAccount.CompanyCode, paymentcard, card.make_default);\r\n } catch (error) {\r\n if (error.message_number === 74) {\r\n let matches = error.message_string.match(/Payment card (CCINS) (.*) already exist, action ([0-9]*) not possible/);\r\n toast.error(`${matches[2]} already exists.`, { position: toast.POSITION.TOP_RIGHT });\r\n } else if (error.message_number === 76) {\r\n let matches = error.message_string.match(/Payment card (CCINS) (.*) already assigned to account ([0-9]*)/);\r\n toast.error(`${matches[2]} already assigned to account ${matches[3]}`, { position: toast.POSITION.TOP_RIGHT });\r\n } else {\r\n toast.error(error.message_string, { position: toast.POSITION.TOP_RIGHT });\r\n }\r\n }\r\n } else {\r\n this.props.dispatch(addSessionCheck(paymentcard, this.props.payerAccount.PrimaryAcct));\r\n }\r\n return paymentcard;\r\n }\r\n }\r\n\r\n async processCard(card) {\r\n if (this.state.isEditing) {\r\n if (card.save_on_file) {\r\n let response = await updatePaymentMethod(\r\n this.props.payerAccount.PrimaryAcct,\r\n this.props.primaryAccount.CompanyCode,\r\n cardFormToUpdateObject(card, this.state.editingPayment.payment_card_token),\r\n card.make_default);\r\n return response;\r\n } else {\r\n this.props.dispatch(updateSessionCard(cardFormToUpdateObject(card, this.state.editingPayment.payment_card_token), this.props.payerAccount.PrimaryAcct));\r\n }\r\n return null;\r\n } else {\r\n const { access_token, merchant_guid, paymetric_xi_url } = await getPaymentAccessToken('CC');\r\n let body = buildCCRequest(card, merchant_guid, access_token);\r\n\r\n try {\r\n await getPaymetricResponse(paymetric_xi_url, body);\r\n } catch (e) {\r\n toast.error(`Unable to save account details, please try again.`, { position: toast.POSITION.TOP_RIGHT });\r\n return;\r\n }\r\n\r\n let { paymentcard } = await getPaymentResponse(access_token);\r\n // We don't want to do this. pass payment card to props method\r\n if (card.save_on_file) {\r\n try {\r\n await addPaymentMethod(this.props.payerAccount.PrimaryAcct, this.props.primaryAccount.CompanyCode, paymentcard, card.make_default, card.card_validation_code);\r\n } catch (error) {\r\n if (error.message_number === 74) {\r\n let matches = error.message_string.match(/Payment card (CCINS) (.*) already exist, action ([0-9]*) not possible/);\r\n toast.error(`${matches[2]} already exists.`, { position: toast.POSITION.TOP_RIGHT });\r\n } else if (error.message_number === 76) {\r\n let matches = error.message_string.match(/Payment card (CCINS) (.*) already assigned to account ([0-9]*)/);\r\n toast.error(`${matches[2]} already assigned to account ${matches[3]}`, { position: toast.POSITION.TOP_RIGHT });\r\n } else {\r\n toast.error(error.message_string, { position: toast.POSITION.TOP_RIGHT });\r\n }\r\n }\r\n } else {\r\n try {\r\n //Add to session payment methods.\r\n await preAuthCCPaymentMethod(this.props.payerAccount.PrimaryAcct, this.props.primaryAccount.CompanyCode, paymentcard, card.make_default, card.card_validation_code);\r\n this.props.dispatch(addSessionCard(paymentcard, this.props.payerAccount.PrimaryAcct));\r\n } catch (error) {\r\n toast.error(`Credit Card not approved.`, { position: toast.POSITION.TOP_RIGHT });\r\n }\r\n }\r\n return paymentcard;\r\n }\r\n }\r\n\r\n deletePayment(payment) {\r\n if (this.state.editingPayment && payment.payment_card_token === this.state.editingPayment.payment_card_token) {\r\n this.setState({ editingPayment: null });\r\n }\r\n }\r\n\r\n \r\n CCVideoClick (){\r\n \r\n const url = this.state.config.CcvideoUrl; // Replace with your URL\r\n window.open(url, '_blank');\r\n\r\n };\r\n\r\n CCPdfClick (){\r\n const url = this.state.config.CcpdfUrl; // Replace with your URL\r\n window.open(url, '_blank');\r\n };\r\n\r\n ECVideoClick() {\r\n\r\n const url = this.state.config.EcvideoUrl; // Replace with your URL\r\n window.open(url, '_blank');\r\n\r\n };\r\n\r\n ECPdfClick() {\r\n const url = this.state.config.EcpdfUrl; // Replace with your URL\r\n window.open(url, '_blank');\r\n };\r\n\r\n\r\n render() {\r\n return <React.Fragment>\r\n <div className=\"row\">\r\n <div className=\"col-md-6\">\r\n <PaymentCardLists onTabChange={this.onTabChange} onEdit={this.editPayment} onDelete={this.deletePayment} />\r\n <div className={\"text-center mt-3\"}>\r\n {this.isCC() && <button className={\"btn btn-primary\"} onClick={this.addPaymentMethod}>Add Card</button>}\r\n {this.isEC() && <button className={\"btn btn-primary\"} onClick={this.addPaymentMethod}>Add eCheck</button>}\r\n </div>\r\n </div>\r\n <div className=\"col-md-6\">\r\n {(this.state.editingPayment && this.isCC()) &&\r\n <AddCreditCardForm payment={this.state.editingPayment} save={this.saveCard} isEditing={this.state.isEditing}\r\n onCardConfirmed={this.onCardConfirmed}\r\n alwaysSaveOnFile={this.props.alwaysSaveOnFile} />}\r\n {(this.state.editingPayment && this.isEC()) &&\r\n <AddCheckForm payment={this.state.editingPayment} isEditing={this.state.isEditing}\r\n onCardConfirmed={this.onCardConfirmed} save={this.saveCheck}\r\n alwaysSaveOnFile={this.props.alwaysSaveOnFile} />}\r\n </div>\r\n\r\n\r\n </div>\r\n <div className=\"row d-flex justify-content-center align-items-center\" style={{ alignSelf: \"center\", marginTop:\"20px\" }}>\r\n\r\n <span\r\n className=\"col-form-label col-form-label-sm text-primary nopadding\">\r\n <strong>Important Notice:</strong> Do not save credit card information if you have multiple accounts</span>\r\n\r\n\r\n {/*<div className=\"col-md-10\">*/}\r\n {/* <span*/}\r\n {/* className=\"col-form-label col-form-label-sm text-secondary nopadding\">*/}\r\n {/* {\"Do not save credit card information if you have multiple accounts\"}</span>*/}\r\n {/*</div>*/}\r\n\r\n\r\n\r\n </div>\r\n <div className=\"row mt-3\">\r\n <div className=\"col-md-6 mb-5\">\r\n <span style={{ textDecoration:\"underline\" }}\r\n className=\"col-form-label col-form-label-sm text-primary nopadding d-flex justify-content-center align-items-center\">\r\n {\"Click below for instructions to set up an E-Pay credit card: \"}</span>\r\n <div className=\"row d-flex justify-content-center align-items-center mt-2\" >\r\n <div className=\"col-md-2\" style={{ cursor: \"pointer\" }}>\r\n <img height=\"30px\" onClick={this.CCVideoClick} width=\"30px\" src={PlayArrow} alt=\"PlayArrow\" />\r\n </div>\r\n <div className=\"col-md-2\" style={{ cursor: \"pointer\" }}>\r\n <img height=\"30px\" onClick={this.CCPdfClick} width=\"30px\" src={Pdf} alt=\"Pdf\" />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"col-md-6 mb-5\">\r\n <span style={{ textDecoration: \"underline\" }}\r\n className=\"col-form-label col-form-label-sm text-primary nopadding d-flex justify-content-center align-items-center\">\r\n {\"Click below for instructions to set up an E-Pay eCheck: \"}</span>\r\n <div className=\"row d-flex justify-content-center align-items-center mt-2\">\r\n <div className=\"col-md-2\" style={{ cursor: \"pointer\" }}>\r\n <img height=\"30px\" width=\"30px\" src={PlayArrow} onClick={this.ECVideoClick} alt=\"PlayArrow\" />\r\n </div>\r\n <div className=\"col-md-2\" style={{ cursor: \"pointer\" }}>\r\n <img height=\"30px\" width=\"30px\" src={Pdf} onClick={this.ECPdfClick} alt=\"Pdf\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n }\r\n\r\n}\r\n\r\nManagePaymentMethods.defaultProps = {\r\n alwaysSaveOnFile: false,\r\n};\r\n\r\nexport default connect((state, props) => {\r\n return {\r\n payerAccount: getPayerAccount(state, props),\r\n primaryAccount: getSelectedPrimaryAccount(state, props),\r\n secondaryAccount: getSelectedSecondaryAccount(state, props),\r\n currentUser: state.default.currentUser,\r\n }\r\n})(ManagePaymentMethods)\r\n","/* eslint-disable no-console */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { getInvoicePDF } from '../../actions/InvoiceActions';\r\n\r\nclass PdfCell extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.handleClick = this.handleClick.bind(this);\r\n }\r\n handleClick = () => {\r\n if (this.props.row.pdf_document_available !== undefined) {\r\n getInvoicePDF(this.props.dispatch, this.props.row);\r\n }\r\n };\r\n\r\n render() {\r\n const { row } = this.props;\r\n if(row && row.pdf_document_available && row.pdf_document_available === 'X'){\r\n return (\r\n <img\r\n src={\"/images/ic_pdf.png\"}\r\n alt=\"pdf\"\r\n key={`${'docId_'}${row.document_number_finance}`}\r\n onClick={this.handleClick}\r\n role=\"presentation\"\r\n />);\r\n } else {\r\n return (<img\r\n src={\"/images/ic_pdf_disabled.png\"}\r\n alt=\"pdf\"\r\n key={`${'docId_'}${row.document_number_finance}`}\r\n onClick={this.handleClick}\r\n role=\"presentation\"\r\n />);\r\n }\r\n }\r\n}\r\n\r\nPdfCell.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n row: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default connect()(PdfCell);\r\n","import {createSelector} from 'reselect';\r\n\r\nconst CanManagePaymentMethods = \"CanManagePaymentMethods\";\r\nconst CanEditSystemConfig = \"CanEditSystemConfig\";\r\nconst CanViewUsers = \"CanViewUsers\";\r\nconst CanManageUsers = \"CanManageUsers\";\r\nconst CanImpersonate = \"CanImpersonate\";\r\nconst CanManageRegistrationRequests = \"CanManageRegistrationRequests\";\r\nconst CanMakePayment = \"CanMakePayment\";\r\nconst CanManageOwnSAPAccounts = \"CanManageOwnSAPAccounts\";\r\n\r\nconst getCurrentUser = state => state.default.currentUser;\r\n\r\nexport function userCan(user, permission){\r\n if(user === null || typeof user === \"undefined\"){\r\n return false;\r\n }\r\n return user.Permissions.indexOf(permission) !== -1;\r\n}\r\n\r\nfunction createUserCanSelector(permission){\r\n return createSelector([getCurrentUser], user => {\r\n return userCan(user, permission);\r\n });\r\n}\r\nexport const canManagePaymentMethods = createUserCanSelector(CanManagePaymentMethods);\r\nexport const canEditSystemConfig = createUserCanSelector(CanEditSystemConfig);\r\nexport const canViewUsers = createUserCanSelector(CanViewUsers);\r\nexport const canManageUsers = createUserCanSelector(CanManageUsers);\r\nexport const canImpersonate = createUserCanSelector(CanImpersonate);\r\nexport const canManageRegistrationRequests = createUserCanSelector(CanManageRegistrationRequests);\r\nexport const canMakePayment = createUserCanSelector(CanMakePayment);\r\nexport const canManageOwnSAPAccounts = createUserCanSelector(CanManageOwnSAPAccounts);\r\n\r\n","import React from \"react\";\r\nimport { downloadExcelFile, getInvoiceBulkPDF } from \"../../actions/InvoiceActions\";\r\nimport { Dropdown } from \"react-bootstrap\";\r\nimport { connect } from 'react-redux';\r\nimport {\r\n getInvoiceQuery,\r\n} from './Selectors';\r\n\r\nimport { withRouter } from \"react-router-dom\";\r\n\r\n\r\n export function DownloadPdfZipButton(props) {\r\n\r\n function downloadZip() {\r\n try {\r\n getInvoiceBulkPDF(props.dispatch, props.invoiceSearchQuery);\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n\r\n return (\r\n <Dropdown.Item onClick={downloadZip}>{\"All PDFs\"}</Dropdown.Item>\r\n )\r\n}\r\n\r\n\r\n\r\n//export function DownloadPdfZipButtonwithCurrency(props: { invoiceQueryforPDFandCSVandexcel: any }) {\r\n// const dispatch = useDispatch();\r\n// const intl = useIntl();\r\n\r\n// function downloadZip() {\r\n// try {\r\n// getInvoiceBulkPDF(dispatch, props.invoiceQueryforPDFandCSVandexcel);\r\n// } catch (e) {\r\n// return null;\r\n// }\r\n// }\r\n\r\n// return (\r\n// <Dropdown.Item onClick={downloadZip}>{intl.formatMessage({ id: \"invoice_export.all_pdfs\" })}</Dropdown.Item>\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 { DropdownButton } from \"react-bootstrap\";\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\nimport { connect } from 'react-redux';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport {\r\n dateFormatter,\r\n daysToPayFormatter,\r\n documentNumberFormatter,\r\n dueFormatter, formatDaysInArrears,\r\n openFormatter,\r\n paidFormatter,\r\n pdfFormatter,\r\n referenceFormatter,\r\n statusFormatter,\r\n totalFormatter\r\n} from '../../common/invoiceHelpers';\r\nimport { getSelectedInvoiceKeys, getSelectedPrimaryAccount, getSelectedSecondaryAccount } from './Selectors';\r\nimport {\r\n addInvoiceToSelected,\r\n removeInvoiceFromSelected\r\n} from '../../actions/InvoiceActions';\r\nimport * as appConstants from '../../constants/ApplicationConstants';\r\nimport { PAYER_COMPARE } from '../../constants/ApplicationConstants';\r\nimport _ from 'lodash';\r\nimport { ACCOUNT_PAYER_ALL } from \"../../constants/ApplicationConstants\";\r\nimport { canMakePayment } from \"../../PermissionSelectors\";\r\nimport moment from \"moment\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { FormattedMessage } from \"react-intl\";\r\nimport { updateState } from \"../../actions/CommonActions\";\r\nimport * as types from \"../../constants/ActionTypes\";\r\nimport { faCaretDown } from \"@fortawesome/free-solid-svg-icons\";\r\nimport {\r\n DownloadPdfZipButton,\r\n} from \"./DownloadPdfZipButton\";\r\nimport {\r\n getInvoiceQuery,\r\n} from './Selectors';\r\n\r\n\r\nexport function isCredit(invoice) {\r\n return (invoice.open_amount && invoice.open_amount < 0);\r\n}\r\n\r\nfunction shouldSortCredit(rowA, rowB) {\r\n let isACredit = isCredit(rowA);\r\n let isBCredit = isCredit(rowB);\r\n\r\n return isACredit || isBCredit;\r\n}\r\n\r\nfunction sortCredit(a, b, rowA, rowB, order) {\r\n let isACredit = isCredit(rowA);\r\n let isBCredit = isCredit(rowB);\r\n\r\n if (isACredit && isBCredit) {\r\n return sortStringDate(rowA.document_date, rowB.document_date, order);\r\n } else if (isACredit && !isBCredit) {\r\n return 1;\r\n } else if (!isACredit && isBCredit) {\r\n return -1;\r\n }\r\n}\r\n\r\nfunction sortStringNumber(a, b, order) {\r\n if (order === 'asc') {\r\n if (parseFloat(a) < parseFloat(b)) {\r\n return -1;\r\n } else if (parseFloat(a) > parseFloat(b)) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n } else {\r\n if (parseFloat(a) > parseFloat(b)) {\r\n return -1;\r\n } else if (parseFloat(a) < parseFloat(b)) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n}\r\n\r\nfunction sortStringDate(a, b, order) {\r\n let aDate = moment(a);\r\n let bDate = moment(b);\r\n if (order === 'desc') {\r\n let diff = aDate.diff(bDate, 'days');\r\n return diff;\r\n } else {\r\n let diff = bDate.diff(aDate, 'days');\r\n return diff;\r\n }\r\n}\r\n\r\nfunction renderCaret(order, column) {\r\n if (order === \"asc\") {\r\n return <FontAwesomeIcon icon={\"caret-up\"} className={\"ml-1\"} size={\"sm\"} />;\r\n }\r\n if (order === \"desc\") {\r\n return <FontAwesomeIcon icon={faCaretDown} className={\"ml-1\"} size={\"sm\"} />;\r\n }\r\n return null;\r\n}\r\n\r\nexport class InvoiceList extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.customMultiSelect = this.customMultiSelect.bind(this);\r\n this.onRowSelect = this.onRowSelect.bind(this);\r\n this.mapSoldTo = this.mapSoldTo.bind(this);\r\n this.onSelectAll = this.onSelectAll.bind(this);\r\n this.clickSelectAll = this.clickSelectAll.bind(this);\r\n this.clickDeselectAll = this.clickDeselectAll.bind(this);\r\n this.isNotSelectable = this.isNotSelectable.bind(this);\r\n this.filterFilteredInvoices = this.filterFilteredInvoices.bind(this);\r\n }\r\n\r\n mapSoldTo(cell) {\r\n let custOption = '';\r\n if (this.props.accountType === appConstants.SOLD_TO_COMPARE) {\r\n custOption = this.props.selectedPrimaryAccount.Name;\r\n } else {\r\n for (let l = 0; l < this.props.secondaryAccounts.length; l += 1) {\r\n const customer = this.props.secondaryAccounts[l];\r\n if (cell === customer.PrimaryAcct) {\r\n custOption = customer.Name;\r\n break;\r\n }\r\n }\r\n }\r\n if (cell) {\r\n return (<span data-toggle=\"tooltip\" className={\"text-secondary\"} title={custOption}><small>{cell}</small></span>);\r\n }\r\n }\r\n\r\n onRowSelect(row, isSelected) {\r\n if (isSelected) {\r\n this.props.dispatch(addInvoiceToSelected(row));\r\n } else {\r\n this.props.dispatch(removeInvoiceFromSelected(row));\r\n }\r\n }\r\n\r\n renderHeaderCheckbox({ mode, checked, indeterminate }) {\r\n let checkbox = (<div className=\"checkbox-personalized d-inline-block\">\r\n <div>\r\n <input\r\n type={mode}\r\n checked={checked}\r\n readOnly={true}\r\n />\r\n <label htmlFor={`checkbox`}>\r\n <div className=\"check header-check\" />\r\n </label>\r\n </div>\r\n </div>);\r\n return (<div className=\"column-header text-center\">\r\n <span >Pay</span></div>);\r\n }\r\n\r\n customMultiSelect = props => {\r\n const { mode, checked, disabled } = props;\r\n return (\r\n <div className=\"checkbox-personalized\">\r\n {!disabled ? (\r\n <div>\r\n <input\r\n type={mode}\r\n checked={checked}\r\n disabled={disabled}\r\n readOnly={true}\r\n />\r\n <label htmlFor={`checkbox`}>\r\n <div className=\"check\" />\r\n </label>\r\n </div>\r\n ) : (\r\n <div />\r\n )}\r\n </div>\r\n );\r\n };\r\n\r\n onSelectAll(isSelect, rows, e) {\r\n rows.forEach(row => {\r\n if (isSelect) {\r\n this.props.dispatch(addInvoiceToSelected(row));\r\n } else {\r\n this.props.dispatch(removeInvoiceFromSelected(row));\r\n }\r\n });\r\n }\r\n\r\n clickSelectAll(e) {\r\n this.props.invoices.filter((invoice) => !this.isNotSelectable(invoice))\r\n .filter(this.filterFilteredInvoices)\r\n .forEach(invoice => {\r\n this.props.dispatch(addInvoiceToSelected(invoice));\r\n });\r\n }\r\n\r\n filterFilteredInvoices(invoice) {\r\n if (this.props.accountType === PAYER_COMPARE || this.props.accountType === ACCOUNT_PAYER_ALL) {\r\n return this.props.selectedSoldTos.indexOf(_.trimStart(invoice.soldto_number, '0')) !== -1;\r\n }\r\n return true;\r\n\r\n }\r\n\r\n isPdfFilenotExists(invoicesWithKeys): boolean {\r\n const PDFFileIds: string[] = [];\r\n if (sessionStorage.getItem(\"invoicesWithKeysData\") != null) {\r\n sessionStorage.removeItem(\"invoicesWithKeysData\");\r\n }\r\n var pdfExists = false;\r\n invoicesWithKeys.forEach((invoice) => {\r\n if (invoice.pdf_document_available === \"X\") {\r\n pdfExists = true;\r\n if (\r\n invoice.billing_document_number != null &&\r\n invoice.billing_document_type !== \"01\" && invoice.soldto_number != null\r\n ) {\r\n PDFFileIds.push(invoice.billing_document_number, invoice.soldto_number);\r\n }\r\n }\r\n });\r\n sessionStorage.setItem(\"invoicesWithKeysData\", JSON.stringify(PDFFileIds));\r\n return pdfExists;\r\n }\r\n\r\n clickDeselectAll(e) {\r\n this.props.invoices.filter((invoice) => !this.isNotSelectable(invoice))\r\n .filter(this.filterFilteredInvoices)\r\n .forEach(invoice => {\r\n this.props.dispatch(removeInvoiceFromSelected(invoice));\r\n });\r\n }\r\n\r\n isNotSelectable(invoice) {\r\n if ((invoice.read_only_flag && invoice.read_only_flag === 'X')) {\r\n return true;\r\n }\r\n return this.props.isSearch;\r\n }\r\n\r\n render() {\r\n let hideSelect = this.props.isSearch || !this.props.canMakePayment;\r\n const selectRowProp = {\r\n mode: 'checkbox',\r\n onSelect: this.onRowSelect,\r\n onSelectAll: this.onSelectAll,\r\n selected: this.props.selectedInvoicesKeys,\r\n selectionRenderer: this.customMultiSelect,\r\n selectionHeaderRenderer: this.renderHeaderCheckbox,\r\n nonSelectable: this.props.invoices.filter((invoice) => this.isNotSelectable(invoice)).map(invoice => {\r\n return invoice.billing_document_number + '__' + invoice.document_number_finance;\r\n }),\r\n hideSelectColumn: hideSelect,\r\n };\r\n const tab = 'table';\r\n const top = 'Top';\r\n\r\n let invoices = this.props.invoices;\r\n if (!this.props.isSearch) {\r\n if (this.props.accountType === PAYER_COMPARE || this.props.accountType === ACCOUNT_PAYER_ALL) {\r\n invoices = this.props.invoices.filter(this.filterFilteredInvoices);\r\n }\r\n }\r\n\r\n const columnConfigs = [\r\n {\r\n headerClasses: \"column-header\",\r\n dataField: \"billing_document_type\",\r\n formatter: statusFormatter,\r\n text: \"Status\",\r\n headerStyle: { width: '65px' },\r\n headerAlign: \"center\",\r\n align: \"center\",\r\n },\r\n {\r\n headerClasses: \"column-header\",\r\n dataField: \"reference_number\",\r\n formatter: referenceFormatter,\r\n text: \"Ref #\",\r\n sort: true,\r\n sortCaret: renderCaret,\r\n headerStyle: { width: '95px' },\r\n headerAlign: \"center\",\r\n align: \"center\",\r\n },\r\n {\r\n headerClasses: \"column-header\",\r\n dataField: \"document_number_finance\",\r\n formatter: documentNumberFormatter,\r\n text: \"Doc #\",\r\n sortCaret: renderCaret,\r\n headerStyle: { width: '95px' },\r\n sort: true,\r\n headerAlign: \"center\",\r\n align: \"center\",\r\n },\r\n {\r\n headerClasses: \"column-header\",\r\n dataField: \"document_date\",\r\n formatter: dateFormatter,\r\n text: \"Date\",\r\n sort: true,\r\n sortCaret: renderCaret,\r\n headerStyle: { width: '65px' },\r\n headerAlign: \"center\",\r\n sortFunc: sortStringDate,\r\n align: \"center\",\r\n },\r\n {\r\n headerClasses: \"column-header\",\r\n dataField: \"total_amount\",\r\n formatter: totalFormatter,\r\n headerFormatter: (col, colIndex, components) => {\r\n return (<span><FormattedMessage id={\"invoice_table.total_amount\"} />{components.sortElement}</span>)\r\n },\r\n text: \"Total\",\r\n sort: true,\r\n sortCaret: renderCaret,\r\n headerStyle: { width: '80px' },\r\n headerAlign: \"center\",\r\n align: \"right\",\r\n sortFunc: sortStringNumber,\r\n },\r\n {\r\n headerClasses: \"column-header\",\r\n dataField: \"paid_amount\",\r\n formatter: paidFormatter,\r\n text: \"Paid\",\r\n sort: true,\r\n sortCaret: renderCaret,\r\n headerStyle: { width: '80px' },\r\n headerAlign: \"center\",\r\n align: \"right\",\r\n sortFunc: sortStringNumber,\r\n },\r\n {\r\n headerClasses: \"column-header\",\r\n dataField: \"open_amount\",\r\n formatter: openFormatter,\r\n headerFormatter: (col, colIndex, components) => {\r\n return (<span><FormattedMessage id={\"invoice_table.open_amount\"} />{components.sortElement}</span>)\r\n },\r\n text: \"Open\",\r\n sort: true,\r\n sortCaret: renderCaret,\r\n headerStyle: { width: '80px' },\r\n headerAlign: \"center\",\r\n align: \"right\",\r\n sortFunc: sortStringNumber,\r\n },\r\n {\r\n headerClasses: \"column-header\",\r\n dataField: \"due_date\",\r\n formatter: dueFormatter,\r\n text: \"Due\",\r\n sort: true,\r\n sortCaret: renderCaret,\r\n headerStyle: { width: '70px' },\r\n sortFunc: (a, b, order, dataField, rowA, rowB) => {\r\n if (shouldSortCredit(rowA, rowB)) {\r\n return sortCredit(a, b, rowA, rowB, order);\r\n }\r\n return sortStringDate(a, b, order);\r\n },\r\n headerAlign: \"center\",\r\n align: \"center\",\r\n },\r\n {\r\n headerClasses: \"column-header\",\r\n dataField: \"days_in_arrears\",\r\n formatter: formatDaysInArrears,\r\n text: \"Days Past Due\",\r\n headerStyle: { width: '100px' },\r\n headerAlign: \"center\",\r\n align: \"center\",\r\n },\r\n {\r\n headerClasses: \"column-header\",\r\n dataField: \"pdf_document_available\",\r\n formatter: pdfFormatter,\r\n text: \"PDF\",\r\n headerStyle: { width: '45px' },\r\n headerAlign: \"center\",\r\n align: \"center\",\r\n },\r\n {\r\n headerClasses: \"column-header\",\r\n dataField: \"soldto_number\",\r\n formatter: this.mapSoldTo,\r\n text: \"Location\",\r\n headerStyle: { width: '65px' },\r\n headerAlign: \"center\",\r\n align: \"center\",\r\n }\r\n ];\r\n\r\n // Here we get columns based on what fields are in the config.\r\n let columns = this.props.tableConfig.columns.filter((config) => {\r\n return columnConfigs.find(_ => _.dataField === config.key);\r\n }).map(config => columnConfigs.find(_ => _.dataField === config.key));\r\n\r\n invoices.forEach((_) => _._key = _.billing_document_number + '__' + _.document_number_finance);\r\n\r\n return (\r\n <React.Fragment>\r\n <div style={{\r\n display: \"flex\",\r\n justifyContent: \"flex-end\"\r\n }}>\r\n <div style={{ width: \"92%\" }}>\r\n {!hideSelect && <div><a href=\"#\" onClick={this.clickSelectAll}>Select All</a> / <a href=\"#\" onClick={this.clickDeselectAll}>Deselect All</a></div>}\r\n </div>\r\n <div >\r\n {\r\n invoices.length === 0 ||\r\n this.isPdfFilenotExists(invoices) ? (\r\n <DropdownButton\r\n disabled={false}\r\n alignRight\r\n size={\"sm\"}\r\n title={\"Download\"}\r\n variant={\"light\"}\r\n id=\"dropdown-menu-align-right\"\r\n >\r\n <DownloadPdfZipButton\r\n invoiceSearchQuery={this.props.invoiceSearchQuery}\r\n />\r\n </DropdownButton>\r\n ) :\r\n \"\"\r\n\r\n //(\r\n // <DropdownButton\r\n // alignRight\r\n // size={\"sm\"}\r\n // title={intl.formatMessage({\r\n // id: \"invoice_export.download_label\",\r\n // })}\r\n // variant={\"light\"}\r\n // id=\"dropdown-menu-align-right\"\r\n // >\r\n // {props.isSearch ? (\r\n // <DownloadPdfZipButton\r\n // invoiceSearchQuery={props.invoiceSearchQuery}\r\n // />\r\n // ) : (\r\n // <DownloadPdfZipButtonwithCurrency\r\n // invoiceQueryforPDFandCSVandexcel={\r\n // props.invoiceQueryforPDFandCSVandexcel\r\n // }\r\n // />\r\n // )}\r\n // </DropdownButton>\r\n //)\r\n\r\n }\r\n\r\n </div>\r\n </div>\r\n {/*<DropdownButton*/}\r\n {/* disabled={false }*/}\r\n {/* alignRight*/}\r\n {/* size={\"sm\"}*/}\r\n {/* title={\"Download\"}*/}\r\n {/* variant={\"light\"}*/}\r\n {/* id=\"dropdown-menu-align-right\"*/}\r\n {/*>*/}\r\n {/* <DownloadPdfZipButton invoiceSearchQuery={this.props.invoiceSearchQuery}*/}\r\n {/* />*/}\r\n {/*</DropdownButton>*/}\r\n\r\n\r\n\r\n <BootstrapTable\r\n data={invoices}\r\n selectRow={selectRowProp}\r\n ref={tab}\r\n headerClass={\"cnbs-invoice-header\"}\r\n classes={'wa-bootstrap-table-container custom-table-header'}\r\n scrollTop={top}\r\n defaultSorted={[{ dataField: \"due_date\", order: 'desc' }]}\r\n columns={columns}\r\n keyField={'_key'}\r\n bootstrap4={true}\r\n >\r\n </BootstrapTable>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n\r\nInvoiceList.defaultProps = {\r\n isSearch: false,\r\n};\r\n\r\nexport default connect((state, props) => {\r\n return {\r\n selectedPrimaryAccount: getSelectedPrimaryAccount(state, props),\r\n selectedSecondaryAccount: getSelectedSecondaryAccount(state, props),\r\n invoices: state.default.invoices,\r\n selectedInvoicesKeys: getSelectedInvoiceKeys(state, props),\r\n selectedSoldTos: state.user_options.selectedSoldTos,\r\n secondaryAccounts: state.user_options.secondaryAccounts,\r\n accountType: state.user_options.accountType,\r\n canMakePayment: canMakePayment(state, props),\r\n tableConfig: state.app.config.invoice_table,\r\n invoiceSearchQuery: getInvoiceQuery(state, props),\r\n };\r\n})(InvoiceList);\r\n\r\nexport var InvoiceSearchList = connect((state, props) => {\r\n return {\r\n selectedPrimaryAccount: getSelectedPrimaryAccount(state, props),\r\n selectedSecondaryAccount: getSelectedSecondaryAccount(state, props),\r\n selectedInvoicesKeys: getSelectedInvoiceKeys(state, props),\r\n selectedSoldTos: state.user_options.selectedSoldTos,\r\n secondaryAccounts: state.user_options.secondaryAccounts,\r\n accountType: state.user_options.accountType,\r\n canMakePayment: canMakePayment(state, props),\r\n tableConfig: state.app.config.invoice_table,\r\n invoiceSearchQuery: state.default.invoiceListRequest,\r\n };\r\n})(InvoiceList);\r\n\r\n","/* eslint-env browser */\r\n/* eslint-disable no-console */\r\nimport React from 'react';\r\nimport moment from 'moment';\r\nimport {Link} from 'react-router-dom';\r\nimport PdfCell from '../components/invoice/PdfCell';\r\nimport {isCredit} from \"../components/invoice/InvoiceList\";\r\n\r\n// import Invoice from '../Models/Invoice';\r\n\r\nexport function paidFormatter(cell, row) {\r\n if (isCredit(row)) {\r\n return '';\r\n }\r\n if (row.currency_key === 'USD') {\r\n return (<span className=\"text-secondary\"><small> {'\\u0024'} {formatMoney(row.paid_amount)} </small></span>);\r\n }\r\n if (row.currency_key === 'CAD') {\r\n return (<span className=\"text-secondary\"><small> {'\\u0024'} {formatMoney(row.paid_amount)} </small></span>);\r\n }\r\n if (row.currency_key === 'EURO') {\r\n return (<span className=\"text-secondary\"><small> {'\\u20AC'} {formatMoney(row.paid_amount)} </small></span>);\r\n }\r\n return '';\r\n}\r\n\r\nexport function totalFormatter(cell, row) {\r\n if (row.currency_key === 'USD') {\r\n return (<span className=\"text-secondary\"><small> {'\\u0024'} {formatMoney(row.total_amount)} </small></span>);\r\n }\r\n if (row.currency_key === 'CAD') {\r\n return (<span className=\"text-secondary\"><small> {'\\u0024'} {formatMoney(row.total_amount)} </small></span>);\r\n }\r\n if (row.currency_key === 'EURO') {\r\n return (<span className=\"text-secondary\"><small> {'\\u20AC'} {formatMoney(row.total_amount)} </small></span>);\r\n }\r\n return '';\r\n}\r\n\r\nexport function openFormatter(cell, row) {\r\n if (row.currency_key === 'USD') {\r\n return (<span className=\"text-secondary\"><small> {'\\u0024'} {formatMoney(row.open_amount)} </small></span>);\r\n }\r\n if (row.currency_key === 'CAD') {\r\n return (<span className=\"text-secondary\"><small> {'\\u0024'} {formatMoney(row.open_amount)} </small></span>);\r\n }\r\n if (row.currency_key === 'EURO') {\r\n return (<span className=\"text-secondary\"><small> {'\\u20AC'} {formatMoney(row.open_amount)} </small></span>);\r\n }\r\n return '';\r\n}\r\n\r\nexport function amountFormatter(cell, row) {\r\n if(cell === \"\"){\r\n return \"\";\r\n }\r\n let amountToProcess = 0;\r\n if (cell) {\r\n amountToProcess = formatMoney(cell);\r\n }\r\n if (row.currency_key === 'USD') {\r\n return `$ ${amountToProcess}`;\r\n }\r\n if (row.currency_key === 'CAD') {\r\n return `$ ${amountToProcess}`;\r\n }\r\n\r\n return `${row.currency_key} ${amountToProcess}`;\r\n}\r\n\r\nexport function getCurrency(row) {\r\n if (row === 'USD' || row.currency_key === 'USD') {\r\n return '$';\r\n }\r\n if (row === 'CAD' || row.currency_key === 'CAD') {\r\n return '$';\r\n }\r\n if (row === 'EURO' || row.currency_key === 'EURO') {\r\n return 'Ä“';\r\n }\r\n return '';\r\n}\r\n\r\nexport function pdfFormatter(cell, row) {\r\n return <PdfCell row={row}/>;\r\n}\r\n\r\nexport function mapInvoiceDetail(controlType, controlId, value, detail, isPartialPaymentsAllowed, isInvoiceOverpaymentAllowed) {\r\n const newDetail = detail;\r\n newDetail.document_number_finance = controlId;\r\n\r\n switch (controlType) {\r\n case 'payAmount':\r\n newDetail.amount_to_process = value;\r\n break;\r\n case 'reasonValue':\r\n newDetail.reason_code = value;\r\n break;\r\n case 'reasonDescription':\r\n newDetail.comment = value;\r\n break;\r\n default:\r\n newDetail.payAmount = detail.payAmount;\r\n }\r\n return newDetail;\r\n}\r\n\r\nexport function dateFormatter(cell) {\r\n const locale = window.navigator.userLanguage || window.navigator.language;\r\n const datearray = cell.split('-');\r\n const newDate = new Date(datearray[2], datearray[0] - 1, datearray[1]);\r\n\r\n // Set locale to moment\r\n moment.locale(locale);\r\n\r\n const format = 'MM/DD/YYYY';\r\n\r\n const localeDate = moment(newDate, format);\r\n return (<span className=\"text-secondary\"><small>{localeDate.format(format)}</small></span>);\r\n}\r\n\r\nexport function fontStyleFormatter(cell) {\r\n return (<span className=\"text-secondary\"><small>{cell}</small></span>);\r\n}\r\n\r\nexport function statusFormatter(cell, row) {\r\n if (isCredit(row)) {\r\n return (<span className=\"text-secondary\"><small>Credit</small></span>);\r\n }\r\n const payStatus = row.open_amount ? 'Open' : 'Cleared';\r\n return (<span className=\"text-secondary\"><small>{payStatus}</small></span>);\r\n}\r\n\r\nexport function documentNumberFormatter(cell, row) {\r\n let docNumber = '';\r\n if (row.billing_document_number) {\r\n docNumber = removePreceedingZero(row.billing_document_number);\r\n let path = `${'/invoices/detail/'}${docNumber}`;\r\n return (<Link id={docNumber} href={path} to={path} onClick={this.onContinueClick}><span className=\"detail-link\"><small>{docNumber}</small></span></Link>);\r\n }\r\n if (!row.billing_document_number && row.document_number_finance) {\r\n docNumber = row.document_number_finance;\r\n }\r\n return (<span className=\"text-secondary\"><small>{docNumber}</small></span>);\r\n}\r\n\r\nexport function referenceFormatter(cell) {\r\n if (cell) {\r\n if (isNaN(cell)) {\r\n return (<span className=\"text-secondary\"><small>{cell}</small></span>);\r\n } else {\r\n return (<span className=\"text-secondary\"><small>{removePreceedingZero(cell)}</small></span>);\r\n }\r\n }\r\n return '';\r\n}\r\n\r\nexport function paymentStatusTypeFormatter(cell) {\r\n if (cell === 'S') {\r\n return (<span className=\"status-green\">{'Success'}</span>);\r\n }\r\n return (<span className={\"status-red\"}>{'Error'}</span>);\r\n}\r\n\r\nexport function invoiceTotalFormatter(total) {\r\n if (total > 0) {\r\n return (<span className=\"status-green\">{total}</span>);\r\n }\r\n return (<span className=\"status-red\">{total}</span>);\r\n}\r\n\r\nexport function dueFormatter(cell, row) {\r\n if (isCredit(row)) {\r\n return '';\r\n }\r\n const locale = window.navigator.userLanguage || window.navigator.language;\r\n const datearray = cell.split('-');\r\n const newDate = new Date(datearray[2], datearray[0] - 1, datearray[1]);\r\n\r\n // Set locale to moment\r\n moment.locale(locale);\r\n // Get locale dataaaaaaa\r\n const format = 'MM/DD/YYYY';\r\n const localeDate = moment(newDate, format);\r\n\r\n // Create date from input value\r\n const inputDate = new Date(localeDate.format(format));\r\n\r\n // Get today's date\r\n const todaysDate = new Date();\r\n\r\n if (inputDate >= todaysDate) {\r\n return (<span className=\"text-secondary status-green\"><small>{localeDate.format(format)}</small></span>);\r\n }\r\n return (<span className=\"text-secondary status-red\"><small>{localeDate.format(format)}</small></span>);\r\n}\r\n\r\nexport function daysToPayFormatter(cell, row) {\r\n if (typeof row.open_amount === \"undefined\" || isCredit(row)) {\r\n return '';\r\n }\r\n\r\n const dt2 = new Date(row.due_date);\r\n const dt1 = new Date();\r\n const diffDays = Math.floor((Date.UTC(dt2.getFullYear(), dt2.getMonth(), dt2.getDate()) - Date.UTC(dt1.getFullYear(), dt1.getMonth(), dt1.getDate())) / (1000 * 60 * 60 * 24));\r\n if (diffDays > 0) {\r\n return (<span className=\"text-secondary status-green\"><small>{Math.abs(diffDays)}</small></span>);\r\n }\r\n return (<span className=\"text-secondary status-red\"><small>{Math.abs(diffDays)}</small></span>);\r\n}\r\n\r\n// Detail Page methods\r\n\r\nexport function calculateUnitPrice(cell, row) {\r\n if (row.total_amount && row.billed_quantity) {\r\n const unitPrice = (row.total_amount / row.billed_quantity).toFixed(2);\r\n const currencySymbol = getCurrency(row);\r\n return (<span className=\"text-secondary\"><small>{currencySymbol}{formatMoney(unitPrice)}</small></span>);\r\n }\r\n return (<span className=\"text-secondary\"><small/></span>);\r\n}\r\n\r\nexport function formatTotal(cell, row) {\r\n if (row.total_amount) {\r\n const currencySymbol = getCurrency(row)\r\n return (<span className=\"text-secondary\"><small>{currencySymbol}{formatMoney(row.total_amount)}</small></span>);\r\n }\r\n return (<span className=\"text-secondary\"><small/></span>);\r\n}\r\n\r\nexport function formatColumn(cell) {\r\n if (cell) {\r\n return (<span className=\"text-secondary\"><small>{cell}</small></span>);\r\n }\r\n return ('');\r\n}\r\n\r\nexport function formatDaysInArrears(cell, row) {\r\n if (isCredit(row)) {\r\n return '';\r\n }\r\n if(!(row.open_amount > 0)){\r\n return '';\r\n }\r\n if (cell) {\r\n return (<span className=\"text-secondary\"><small>{cell}</small></span>);\r\n }\r\n return ('');\r\n}\r\n\r\nexport function removePreceedingZero(item) {\r\n return parseInt(item, 10).toString();\r\n}\r\n\r\nexport function formatMoney(amount) {\r\n let parsed = parseFloat(amount);\r\n if(Number.isNaN(parsed)){\r\n return \"0.00\"; \r\n }\r\n return Number(parseFloat(amount).toFixed(2)).toLocaleString('en', {minimumFractionDigits: 2});\r\n}\r\n\r\nexport function soldToFormatter(cell, row) {\r\n if (row.zzcustom && row.zzcustom.soldtoad) {\r\n let address = row.zzcustom.soldtoad;\r\n return renderAddressForTable(address);\r\n } else {\r\n return cell;\r\n }\r\n}\r\n\r\nfunction renderAddressForTable(address){\r\n return (<div>\r\n <div>{address.name}</div>\r\n <div>{address.street}</div>\r\n <div>{address.city}, {address.region}, {address.country}</div>\r\n </div>);\r\n}\r\n\r\nexport function payerFormatter(cell, row) {\r\n if (row.zzcustom && row.zzcustom.payerad) {\r\n let address = row.zzcustom.payerad;\r\n return renderAddressForTable(address);\r\n } else {\r\n return cell;\r\n }\r\n}\r\n\r\nexport function reasonFormatter(cell, row) {\r\n if(row.reason){\r\n return (<span>{row.reason.description}<br/>{row.reason_message}</span>)\r\n } else {\r\n return (<span></span>)\r\n }\r\n}\r\n","import {useEffect, useRef} from \"react\";\r\n\r\nexport function usePrevious(value) {\r\n const ref = useRef();\r\n useEffect(() => {\r\n ref.current = value;\r\n });\r\n return ref.current;\r\n}","import * as React from \"react\";\r\nimport {connect} from 'react-redux';\r\nimport {\r\n getInvoiceQuery,\r\n} from './Selectors';\r\nimport _ from 'lodash';\r\nimport {getInvoices, setSelectedSoldTos, updateSecondaryAccounts} from '../../actions/InvoiceActions';\r\nimport {withRouter} from \"react-router-dom\";\r\nimport {useState} from \"react\";\r\nimport {useEffect} from \"react\";\r\nimport * as appConstants from \"../../constants/ApplicationConstants\";\r\nimport {getSoldToNames} from \"../../requests/InvoiceRequests\";\r\nimport {usePrevious} from \"../../hooks\";\r\n\r\nexport const InvoicesContext = React.createContext([]);\r\n\r\nfunction computeSoldToSelectAll(invoices, dispatch) {\r\n let soldTos = invoices.map(invoice => invoice.soldto_number);\r\n soldTos = soldTos.filter((soldTo, pos) => soldTos.indexOf(soldTo) === pos);\r\n // If we have zzcustom soldtoad use the soldto for that data. \r\n if (invoices.length > 0 && invoices[0].zzcustom && invoices[0].zzcustom.soldtoad) {\r\n let listSet = {};\r\n invoices.forEach(invoice => {\r\n listSet[invoice.soldto_number] = {\r\n PrimaryAcct: invoice.soldto_number,\r\n Name: invoice.zzcustom.soldtoad.name,\r\n }\r\n });\r\n dispatch(setSelectedSoldTos(soldTos));\r\n updateSecondaryAccounts(dispatch, Object.values(listSet));\r\n } else {\r\n getSoldToNames(soldTos).then((soldTosResults) => {\r\n let list = [];\r\n for (let prop in soldTosResults) {\r\n list.push({\r\n PrimaryAcct: prop,\r\n Name: soldTosResults[prop],\r\n });\r\n }\r\n dispatch(setSelectedSoldTos(soldTos));\r\n updateSecondaryAccounts(dispatch, list);\r\n });\r\n }\r\n}\r\n\r\nfunction InvoiceDataManager(props) {\r\n\r\n const [invoices, setInvoices] = useState([]);\r\n\r\n let invoiceSearchQuery = props.invoiceSearchQuery;\r\n let forceRefresh = props.forceRefresh;\r\n\r\n const prev = usePrevious({invoiceSearchQuery, forceRefresh});\r\n\r\n useEffect(() => {\r\n if (props.invoiceSearchQuery !== null ) {\r\n if(typeof prev === \"undefined\" ||!_.isEqual(prev.invoiceSearchQuery, invoiceSearchQuery) || prev.forceRefresh !== forceRefresh ){\r\n getInvoices(props.dispatch, props.invoiceSearchQuery).then(([invoices, _]) => {\r\n if (props.accountType === appConstants.ACCOUNT_PAYER_ALL) {\r\n computeSoldToSelectAll(invoices, props.dispatch);\r\n }\r\n });\r\n }\r\n }\r\n }, [\r\n props.invoiceSearchQuery,\r\n props.forceRefresh\r\n ]);\r\n\r\n useEffect(() => {\r\n setInvoices(props.invoices);\r\n }, [\r\n props.invoices,\r\n ]);\r\n\r\n return <InvoicesContext.Provider value={invoices}>{props.render}</InvoicesContext.Provider>;\r\n}\r\n\r\nexport default withRouter(connect((state, props) => {\r\n return {\r\n accountType: state.user_options.accountType,\r\n invoiceSearchQuery: getInvoiceQuery(state, props),\r\n invoices: state.default.invoices,\r\n forceRefresh: state.invoice.forceRefresh,\r\n };\r\n})(InvoiceDataManager));\r\n","import axios from '../axios';\r\n\r\nexport function getSoldToNames(soldToNumbersList) {\r\n return axios.put(`/api/customer/soldto-details-list`, soldToNumbersList).then((response) => {\r\n return response.data;\r\n });\r\n}\r\n\r\nexport function getPaymentMethods(details) {\r\n return axios.get(`/api/payment-methods`, {params: details}).then((response) => {\r\n return response.data;\r\n });\r\n}\r\n","// /* eslint-disable no-console */\r\nimport React from 'react';\r\nimport {connect} from 'react-redux';\r\nimport PaymentRequest from '../../models/payer/PaymentRequest';\r\nimport DepositRequest from '../../models/payer/DepositRequest';\r\nimport {toast} from 'react-toastify';\r\nimport {Route} from 'react-router-dom';\r\nimport {\r\n getAllPaymentOptions,\r\n getBeforeCreditTotal,\r\n getCreditTotal,\r\n getCustomerNumber, getInvoiceQuery,\r\n getInvoiceTotal,\r\n getOverpayingAmount,\r\n getPayTotal,\r\n getSelectedPaymentOption, getSelectedPrimaryAccount\r\n} from './Selectors'\r\nimport {\r\n updateCVV,\r\n updateSelectedCard,\r\n makePayment,\r\n mapCards,\r\n makeDeposit, getInvoices,\r\n} from '../../actions/InvoiceActions';\r\nimport * as validationTypes from '../../constants/ValidationConstants';\r\nimport {\r\n createPayerData,\r\n mapInvoiceListToPaymentDocuments,\r\n mapPaymentDetails,\r\n valueEquals,\r\n mapDepositDetails\r\n} from \"./PaymentFunctions\";\r\nimport ManagePaymentMethods from \"../payment-methods/manage-payment-methods/ManagePaymentMethods\";\r\nimport {formatMoney} from '../../common/invoiceHelpers';\r\nimport {canMakePayment, canManagePaymentMethods} from \"../../PermissionSelectors\";\r\nimport {InvoicesContext} from \"./InvoiceDataManager\";\r\nimport {faChevronDown, faExclamationCircle} from \"@fortawesome/free-solid-svg-icons\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\n\r\nclass Payment extends React.Component {\r\n static contextType = InvoicesContext;\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n disablePay: false,\r\n showManagePayments: false,\r\n cvvValidationMessage: '',\r\n cvvValue: '',\r\n };\r\n if (props.impersonatedUserId === null && !props.canMakePayment) {\r\n this.state.disablePay = true;\r\n }\r\n this.handlePaymentCardChange = this.handlePaymentCardChange.bind(this);\r\n this.onPayClick = this.onPayClick.bind(this);\r\n this.onCVVChange = this.onCVVChange.bind(this);\r\n this.showManagePayments = this.showManagePayments.bind(this);\r\n this.hideManagePayments = this.hideManagePayments.bind(this);\r\n this.onDepositClick = this.onDepositClick.bind(this);\r\n }\r\n\r\n onCVVChange = (e) => {\r\n this.setState({\r\n cvvValue: e.target.value,\r\n });\r\n if (!e.target.value) {\r\n this.setState({cvvValidationMessage: validationTypes.CVV_EMPTY});\r\n } else {\r\n this.validateCvv(e.target.value);\r\n }\r\n };\r\n\r\n validateCvv(cvv) {\r\n if (cvv.length < 3 || cvv.length > 4) {\r\n this.setState({cvvValidationMessage: validationTypes.CVV_INVALID});\r\n return false;\r\n } else if (cvv.length >= 3 && cvv.length <= 4) {\r\n this.setState({cvvValidationMessage: ''});\r\n return true;\r\n }\r\n }\r\n\r\n showManagePayments() {\r\n this.setState({...this.state, showManagePayments: true});\r\n }\r\n\r\n hideManagePayments() {\r\n this.setState({...this.state, showManagePayments: false});\r\n }\r\n\r\n onPayClick = (event, history) => {\r\n toast.dismiss();\r\n if (this.props.selectedPaymentOption === null) {\r\n toast.warn(validationTypes.CARD_NOT_SELECTED, {position: toast.POSITION.TOP_RIGHT});\r\n event.preventDefault();\r\n return false;\r\n }\r\n\r\n if (!this.props.isInvoiceOverpaymentAllowed && this.props.overPayingAmount > 0) {\r\n toast.warn(validationTypes.OVER_PAY_NOT_ALLOWED, {position: toast.POSITION.TOP_RIGHT});\r\n event.preventDefault();\r\n return false;\r\n }\r\n if (this.cvvRequired() && this.props.selectedPaymentOption.payment_card_type !== 'EC') {\r\n if (this.state.cvvValue === \"\") {\r\n toast.warn(validationTypes.CVV_EMPTY, {position: toast.POSITION.TOP_RIGHT});\r\n event.preventDefault();\r\n return false;\r\n } else if (!this.validateCvv(this.state.cvvValue)) {\r\n toast.warn(validationTypes.CVV_INVALID, {position: toast.POSITION.TOP_RIGHT});\r\n event.preventDefault();\r\n return false;\r\n }\r\n }\r\n // if credit present, to check if total is greater than 0, \r\n // adding credit to total instead of deducting it.\r\n if (this.props.creditTotal < 0 && (this.props.beforeCreditTotal + this.props.creditTotal) <= 0) {\r\n toast.warn(\r\n validationTypes.CREDIT_AMOUNT_VALIDATION_ERRORS,\r\n {position: toast.POSITION.TOP_RIGHT},\r\n );\r\n event.preventDefault();\r\n return false;\r\n }\r\n\r\n if (this.props.payTotal <= 0) {\r\n toast.warn(\r\n validationTypes.PAY_AMOUNT_VALIDATION_MESSAGE,\r\n {position: toast.POSITION.TOP_RIGHT},\r\n );\r\n event.preventDefault();\r\n return false;\r\n }\r\n\r\n // Check for reason codes\r\n let keys = Object.keys(this.props.invoiceDetails);\r\n if (this.props.reasonNotRequired !== 'X') {\r\n for (let i = 0; i < keys.length; i++) {\r\n let details = this.props.invoiceDetails[keys[i]];\r\n let invoice = this.props.invoices[keys[i]];\r\n\r\n // Skip if credit \r\n if (invoice.total_amount >= 0) {\r\n let reasonMissing = (details.reason === \"\" || details.reason === null);\r\n let reasonRequired = details.amount < invoice.open_amount && reasonMissing;\r\n if (reasonRequired) {\r\n toast.warn(validationTypes.REASON_REQUIRED, {position: toast.POSITION.TOP_RIGHT});\r\n return;\r\n }\r\n if (!reasonMissing) {\r\n for (let j = 0; j < this.props.reason_codes.length; j++) {\r\n if (details.reason === this.props.reason_codes[j].reason_code) {\r\n if (valueEquals(this.props.reason_codes[j].comments_required, \"X\")) {\r\n if (details.comment === \"\") {\r\n toast.warn(validationTypes.REASON_DESCRIPTION_VALIDATION_MESSAGE, {position: toast.POSITION.TOP_RIGHT});\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n let invoices = mapInvoiceListToPaymentDocuments(this.props.invoices, this.props.invoiceDetails, this.props.reason_codes);\r\n let paymentDetails = mapPaymentDetails(this.props.selectedPaymentOption, this.state.cvvValue, this.props.payerDetails.address_data);\r\n let payerData = createPayerData(this.props.customerNumber, this.props.selectedPrimaryAccount.CompanyCode);\r\n let paymentRequest = new PaymentRequest(payerData, paymentDetails, invoices);\r\n\r\n this.setState({disablePay: true});\r\n\r\n return makePayment(this.props.dispatch, paymentRequest, () => history.push('/invoices/payment-status')).then((success) => {\r\n if(success){\r\n getInvoices(this.props.dispatch, this.props.invoiceSearchQuery);//.then(invoices => setInvoices(invoices));\r\n }\r\n this.setState({disablePay: false});\r\n });\r\n };\r\n\r\n onDepositClick = (event, history) => {\r\n if (!this.props.form.isValid) {\r\n this.props.form.handleSubmit();\r\n event.preventDefault();\r\n return false;\r\n }\r\n if (this.props.selectedPaymentOption === null) {\r\n toast.warn(validationTypes.CARD_NOT_SELECTED, {position: toast.POSITION.TOP_RIGHT});\r\n event.preventDefault();\r\n return false;\r\n }\r\n if (this.cvvRequired() && this.state.cvvValue === \"\" && this.props.selectedPaymentOption.payment_card_type !== 'EC') {\r\n toast.warn(validationTypes.CVV_EMPTY, {position: toast.POSITION.TOP_RIGHT});\r\n event.preventDefault();\r\n return false;\r\n }\r\n\r\n let paymentDetails = mapPaymentDetails(this.props.selectedPaymentOption, this.state.cvvValue, this.props.payerDetails.address_data);\r\n let payerData = createPayerData(this.props.customerNumber, this.props.selectedPrimaryAccount.CompanyCode);\r\n let depositDetail = mapDepositDetails(this.props.form.values)\r\n let depositRequest = new DepositRequest(payerData, paymentDetails, depositDetail);\r\n\r\n this.setState({disablePay: true});\r\n\r\n return makeDeposit(this.props.dispatch, depositRequest).then(() => {\r\n this.setState({disablePay: false});\r\n history.push('/invoices/payment-status');\r\n });\r\n }\r\n\r\n handlePaymentCardChange = (selectedCard) => {\r\n if (selectedCard.target.value) {\r\n updateSelectedCard(this.props.dispatch, selectedCard.target.value);\r\n } else {\r\n updateSelectedCard(this.props.dispatch, \"\");\r\n }\r\n updateCVV(this.props.dispatch, \"\");\r\n this.setState({cvvValue: \"\"});\r\n };\r\n\r\n cvvRequired() {\r\n return this.props.cvvRequired && this.props.selectedPaymentOption && this.props.selectedPaymentOption.payment_card_type !== 'EC';\r\n }\r\n\r\n getDepositAmount(values) {\r\n const amountToProcess = values && values.amount_to_process ? values.amount_to_process : '';\r\n return amountToProcess;\r\n }\r\n\r\n\r\n render() {\r\n const paymentCardOptions = mapCards(this.props.allPaymentOptions);\r\n const depositAmount = this.props && this.props.mode && this.props.mode === 'deposit' ? this.getDepositAmount(this.props.form.values) : '';\r\n const isDepositMode = this.props && this.props.mode && this.props.mode === 'deposit' ? true : false;\r\n return (\r\n <div>\r\n <h2 className=\"invoicesHeading\">Payment</h2>\r\n <div className=\"card\">\r\n <div className=\"card-body\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-3 text-secondary\">\r\n <div className=\"row no-gutters\">\r\n <div className=\"col-6 mb-3 d-flex align-items-center\">\r\n {this.props.mode ? 'Deposit Total' : 'Invoice Total'}\r\n </div>\r\n <div className=\"col-6 mb-3 payment-totals\">\r\n {`$ ${depositAmount ? formatMoney(depositAmount) : formatMoney(this.props.invoiceTotal)}`}\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-lg-3 text-secondary\">\r\n <div className=\"row no-gutters\">\r\n <div className=\"col-3 mb-3 d-flex align-items-center\">\r\n Pay\r\n </div>\r\n <div className=\"col-9 mb-3 payment-totals\">\r\n {`$ ${depositAmount ? formatMoney(depositAmount) : formatMoney(this.props.payTotal)}`}\r\n </div>\r\n </div>\r\n </div>\r\n {this.props.overPayingAmount > 0 &&\r\n <React.Fragment>\r\n <div className=\"col-lg-3 text-secondary\">\r\n <div className=\"row no-gutters\">\r\n <div className=\"col-6 mb-3 d-flex align-items-end\">\r\n Overpaying\r\n </div>\r\n <div className=\"col-6 mb-3 payment-totals\">\r\n <span\r\n className=\"overpaying_Amount_color\"> {`$ ${formatMoney(this.props.overPayingAmount)}`} </span>\r\n </div>\r\n </div>\r\n </div>\r\n {this.props.isInvoiceOverpaymentAllowed && <div className=\"col-lg-3 text-secondary\">\r\n <div className=\"d-flex mb-3\">\r\n <div className=\"d-flex align-items-center\">\r\n <FontAwesomeIcon icon={faExclamationCircle} size={\"lg\"} className={\"circle_Exclamation_Color\"}/>\r\n </div>\r\n <div className=\"overpaying-text d-flex align-items-center\">\r\n <div>\r\n {`$ ${formatMoney(this.props.overPayingAmount)}`} will be applied as an additional deposit to\r\n your account\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </React.Fragment>\r\n }\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-lg-6 col-md-12 col-sm-12\">\r\n <div className=\"row no-gutters\">\r\n <div\r\n className=\"col-lg-4 col-md-6 col-sm-6 col-form-label col-form-label-sm text-secondary mb-3\"> Payment\r\n Method\r\n </div>\r\n <div className=\"col-lg-8 col-md-6 col-sm-6 text-center mb-3 paymentCustomSelect\">\r\n <select\r\n name=\"paymentStatus\"\r\n placeholder=\"Pay with\"\r\n className=\"form-control\"\r\n value={this.props.selectedCardIndex}\r\n onChange={this.handlePaymentCardChange}>\r\n <option value=\"\" disabled selected=\"selected\">Pay With</option>\r\n {paymentCardOptions.map(option => {\r\n return (\r\n <option value={option.index} key={option.index}>\r\n {option.label}\r\n </option>\r\n )\r\n })}\r\n </select>\r\n <FontAwesomeIcon icon={faChevronDown} className={\"select-arrow\"}/>\r\n </div>\r\n <div className=\"col-lg-4 col-md-6 col-sm-6\"/>\r\n <div className=\"col-lg-8 col-md-6 col-sm-6 text-center\">\r\n {!this.state.showManagePayments &&\r\n <div className={\"manage-payment-button\"} onClick={this.showManagePayments}>Manage Payment\r\n Methods</div>}\r\n {this.state.showManagePayments &&\r\n <div className={\"manage-payment-button\"} onClick={this.hideManagePayments}>Hide Payment\r\n Methods</div>}\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"text-left col-lg-2 col-md-8 col-sm-6 col-7\">\r\n {this.cvvRequired() &&\r\n <input\r\n key=\"txtCvv\"\r\n type=\"text\"\r\n className={`col form-control text-left ${this.state.cvvValidationMessage ? 'invalid' : ''}`}\r\n placeholder=\"CVV\"\r\n onChange={this.onCVVChange}\r\n value={this.state.cvvValue}\r\n />\r\n }\r\n {\r\n (this.cvvRequired()) && <h6 className=\"invalid-Text\">\r\n <small>{this.state.cvvValidationMessage}</small>\r\n </h6>\r\n }\r\n </div>\r\n <div className=\"col-lg-3 col-md-12 col-sm-12 d-none d-lg-block\">\r\n <Route render={({history}) => (\r\n <button\r\n type=\"button\"\r\n id=\"btnPay\"\r\n className=\"btn btn-primary buttonColor fixed-left form-control test\"\r\n disabled={this.state.disablePay}\r\n onClick={(e) => {\r\n !isDepositMode ? this.onPayClick(e, history) : this.onDepositClick(e, history)\r\n }}\r\n >\r\n Pay\r\n </button>\r\n )}/>\r\n </div>\r\n </div>\r\n <div className={\"row mb-2\"}>\r\n <div className={\"col-md-12\"}>\r\n {this.state.showManagePayments && <div className=\"manage-payment-section\" style={{ display: \"flex\", flexDirection: \"column\" }}>\r\n <ManagePaymentMethods alwaysSaveOnFile={false}/>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col d-lg-none\">\r\n <Route render={({history}) => (\r\n <button\r\n type=\"button\"\r\n id=\"btnPay\"\r\n className=\"btn btn-primary buttonColor fixed-left form-control form-control-sm\"\r\n disabled={this.state.disablePay}\r\n onClick={(e) => {\r\n !isDepositMode ? this.onPayClick(e, history) : this.onDepositClick(e, history)\r\n }}\r\n >\r\n Pay\r\n </button>\r\n )}/>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nPayment.propTypes = {};\r\n\r\nexport default connect((store, props) => ({\r\n cvvRequired: store.default.cvvRequired,\r\n isInvoiceOverpaymentAllowed: store.app.isInvoiceOverpaymentAllowed,\r\n isPartialPaymentsAllowed: store.app.isPartialPaymentsAllowed,\r\n totalAmountWithCredit: store.default.totalAmountWithCredit,\r\n payerDetails: store.default.payerDetails,\r\n selectedSecondaryAccount: store.user_options.selectedSecondaryAccount,\r\n selectedPrimaryAccount: getSelectedPrimaryAccount(store, props),\r\n currentUser: store.default.currentUser,\r\n reasonNotRequired: store.default.reasonNotRequired,\r\n overPayNote: store.default.overPayNote,\r\n payTotal: getPayTotal(store, props),\r\n invoiceTotal: getInvoiceTotal(store, props),\r\n creditTotal: getCreditTotal(store, props),\r\n beforeCreditTotal: getBeforeCreditTotal(store, props),\r\n overPayingAmount: getOverpayingAmount(store, props),\r\n selectedPaymentOption: getSelectedPaymentOption(store, props),\r\n selectedCardIndex: store.default.selectedCard,\r\n customerNumber: getCustomerNumber(store, props),\r\n invoices: store.invoice.selected,\r\n invoiceDetails: store.invoice.invoiceDetail,\r\n reason_codes: store.app.cnbsConfig.payment_reason_codes,\r\n allPaymentOptions: getAllPaymentOptions(store, props),\r\n impersonatedUserId: store.user_options.impersonatedUserId,\r\n canManagePaymentMethods: canManagePaymentMethods(store, props),\r\n canMakePayment: canMakePayment(store, props),\r\n invoiceSearchQuery: getInvoiceQuery(store, props),\r\n}))(Payment);\r\n","export default class sales_area_data {\r\n constructor(sales_organization, distribution_channel, division) {\r\n this.sales_organization = sales_organization;\r\n this.distribution_channel = distribution_channel;\r\n this.division = division;\r\n }\r\n}\r\n","export default class PayerDetailRequest {\r\n constructor(customerNumber, companyCode, action, salesAreaData) {\r\n this.customer_number = customerNumber;\r\n this.company_code = companyCode;\r\n this.action = action;\r\n this.sales_area_data = salesAreaData;\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport cookie from 'react-cookies';\r\nimport {\r\n updateSelectedSecondaryAccountValue,\r\n clearSelectedInvoices\r\n} from \"../../actions/InvoiceActions\";\r\nimport SalesAreaData from '../../models/sales_area_data';\r\nimport PayerDetailRequest from '../../models/payer/PayerDetailRequest';\r\nimport { getInvoiceQuery, getSelectedPrimaryAccount, getPayerAccounts } from \"./Selectors\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {faChevronDown} from \"@fortawesome/free-solid-svg-icons\";\r\n\r\n\r\nexport class PayerSelect extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.handleCustomerChange = this.handleCustomerChange.bind(this);\r\n }\r\n\r\n handleCustomerChange = (e) => {\r\n clearSelectedInvoices(this.props.dispatch);\r\n updateSelectedSecondaryAccountValue(this.props.dispatch, e.target.value);\r\n };\r\n truncateOption(text) {\r\n const maxLength = 24;\r\n if (text.length > maxLength) {\r\n return text.substr(0, maxLength) + '...';\r\n }\r\n return text;\r\n }\r\n\r\n buildPayerDetailRequest() {\r\n const customerNumber = this.props.customerNumber;//cookie.load(`${this.props.currentUser.Login}${'_'}${'selectedHeaderPrimaryAcct'}`);\r\n const companyCode = cookie.load(`${this.props.currentUser.Login}${'_'}${'selectedCompanyCode'}`);\r\n const salesOrganization = cookie.load(`${this.props.currentUser.Login}${'_'}${'selectedSalesOrganization'}`);\r\n const selectedDistributionChannel = cookie.load(`${this.props.currentUser.Login}${'_'}${'selectedDistributionChannel'}`);\r\n const selectedDivision = cookie.load(`${this.props.currentUser.Login}${'_'}${'selectedDivision'}`);\r\n\r\n const salesAreaData = new SalesAreaData(\r\n salesOrganization,\r\n selectedDistributionChannel,\r\n selectedDivision,\r\n );\r\n return new PayerDetailRequest(customerNumber, companyCode, '', salesAreaData);\r\n }\r\n\r\n render() {\r\n let value = this.props.selectedSecondaryAccount;\r\n let options = this.props.payerAccounts.map((account, index) => {\r\n return { value: index, label: `${account.PrimaryAcct}-${account.Name}`, account_number: account.PrimaryAcct }\r\n });\r\n return <div className='customSelect payer-select'>\r\n <select \r\n onChange={this.handleCustomerChange} \r\n disabled={this.props.secondaryAccounts && this.props.secondaryAccounts.length <= 1}\r\n value={value}\r\n className=\"invoicesHeadingInput form-control\">\r\n {options.map(option => {\r\n return (\r\n <option \r\n key={option.value} \r\n value={option.value}>\r\n {this.truncateOption(option.label)}\r\n </option>\r\n )\r\n })}\r\n </select>\r\n <FontAwesomeIcon icon={faChevronDown} className={\"select-arrow\"}/>\r\n </div>\r\n }\r\n}\r\n\r\nexport default connect((state, props) => {\r\n return {\r\n selectedSecondaryAccount: state.user_options.selectedSecondaryAccount,\r\n secondaryAccounts: state.user_options.secondaryAccounts,\r\n selectedPrimaryAccount: getSelectedPrimaryAccount(state, props),\r\n currentUser: state.default.currentUser,\r\n customerNumber: state.user_options.selectedPrimaryAccount && state.user_options.selectedPrimaryAccount.PrimaryAcct,\r\n invoiceSearchQuery: getInvoiceQuery(state, props),\r\n payerAccounts: getPayerAccounts(state, props),\r\n }\r\n})(PayerSelect);","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { MakeDepositSchema } from '../payment-methods/schemas';\r\nimport { BootstrapError, BootstrapField } from \"../../helpers/Field\";\r\nimport Payment from '../invoice/Payment';\r\nimport PayerSelect from '../invoice/PayerSelect';\r\nimport { getDepositReasonCodes, getPayerAccounts } from \"../invoice/Selectors\";\r\nimport { Formik } from \"formik\";\r\nimport * as appConstants from '../../constants/ApplicationConstants';\r\nimport {faChevronDown} from \"@fortawesome/free-solid-svg-icons\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\n\r\nclass Deposits extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n selectedReasonCode: appConstants.DEFAULT_DEPOSIT_REASON_CODE,\r\n };\r\n\r\n this.handleReasonCodeChange = this.handleReasonCodeChange.bind(this);\r\n }\r\n\r\n // TODO Delete\r\n // componentWillUnmount() {\r\n // updateInvoiceSearchQuery(this.props.dispatch, false, '01', '', '', '', '', []);\r\n // }\r\n\r\n handleReasonCodeChange = (e) => {\r\n this.setState({ selectedReasonCode: e.target.value });\r\n };\r\n\r\n render() {\r\n const reasonCodes = this.props.depositReasonCodes;\r\n const { selectedReasonCode } = this.state;\r\n\r\n let initialValues = {\r\n payer_option: '',\r\n reason_code: selectedReasonCode,\r\n amount_to_process: '',\r\n reference_number: '',\r\n comment: '',\r\n };\r\n\r\n let schema = MakeDepositSchema;\r\n const isSoldToAccount = this.props.accountType === appConstants.SOLD_TO_COMPARE;\r\n\r\n return (\r\n <Formik initialValues={initialValues} validationSchema={schema} validateOnChange={true} validateOnBlur={true}\r\n render={(props) => (\r\n <form onSubmit={props.handleSubmit}>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-2 col-md-4 col-sm-12 col-12\">\r\n <h2 className=\"invoicesHeading bottompadding\">New Deposit</h2>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <div className=\"card\">\r\n <div className=\"card-body\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-2 col-md-4 col-sm-5 col-5 bottompadding\">\r\n <span className=\"float-right col-form-label col-form-label-sm text-secondary\">Payer</span>\r\n </div>\r\n <div className=\"col-lg-3 col-md-6 col-sm-12 col-12 bottompadding\">\r\n {isSoldToAccount ? <PayerSelect name={'payer_option'}/>: ''}\r\n </div>\r\n <div className=\"col-lg-1 col-md-2 col-sm-2 col-2 p-0 mt-1\">\r\n </div>\r\n <div className=\"col-lg-2 col-md-4 col-sm-5 col-5 bottompadding\">\r\n <span className=\"float-right col-form-label col-form-label-sm text-secondary\">Reason Code</span>\r\n </div>\r\n <div className=\"col-lg-4 col-md-8 col-sm-7 col-7 bottompadding customSelect\">\r\n <select\r\n name=\"reason_code\"\r\n placeholder=\"Reason Codes\"\r\n className=\"form-control\"\r\n onChange={this.handleReasonCodeChange}>\r\n {reasonCodes.map(code => {\r\n return (\r\n <option value={code.value} key={code.value}>\r\n {code.label}\r\n </option>\r\n )\r\n })}\r\n </select>\r\n <FontAwesomeIcon icon={faChevronDown} className={\"select-arrow\"}/>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-lg-2 col-md-4 col-sm-5 col-5 bottompadding\">\r\n <span className=\"float-right col-form-label col-form-label-sm text-secondary\">Amount</span>\r\n </div>\r\n <div className=\"col-lg-3 col-md-6 col-sm-5 col-5 bottompadding depositAmount\">\r\n <BootstrapField type=\"number\" name=\"amount_to_process\" onChange={props.handleChange} />\r\n <BootstrapError name=\"amount_to_process\" />\r\n </div>\r\n <div className=\"col-lg-1 col-md-2 col-sm-2 col-2 p-0 mt-1\">\r\n <span className=\"col-form-label col-form-label-sm text-secondary\">USD</span>\r\n </div>\r\n <div className=\"col-lg-2 col-md-4 col-sm-5 col-5 bottompadding\">\r\n <span className=\"float-right col-form-label col-form-label-sm text-secondary\">Document Number</span>\r\n </div>\r\n <div className=\"col-lg-4 col-md-8 col-sm-7 col-7 bottompadding\">\r\n <BootstrapField type=\"text\" name=\"reference_number\" />\r\n </div>\r\n <div className=\"col-lg-6 col-md-12 col-sm-12 col-12 bottompadding\">\r\n </div>\r\n <div className=\"col-lg-2 col-md-4 col-sm-5 col-5 bottompadding\">\r\n <span className=\"float-right col-form-label col-form-label-sm text-secondary\">Payment Note</span>\r\n </div>\r\n <div className=\"col-lg-4 col-md-8 col-sm-7 col-7 bottompadding\">\r\n <BootstrapField component=\"textarea\" rows=\"3\" name=\"comment\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <br />\r\n\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n {/* <Field component={Payment} {...props} name=\"depositPay\" /> */}\r\n {/* <Field component={Payment} {...props} name=\"deposityPay\" isDepositOnly={true}/> */}\r\n <Payment mode={\"deposit\"} form={props} />\r\n </div>\r\n </div>\r\n <br />\r\n <br />\r\n <br />\r\n <br />\r\n <br />\r\n </div>\r\n </form>\r\n )}\r\n />\r\n );\r\n }\r\n}\r\n\r\nexport default connect((state, props) => {\r\n return {\r\n payerAccounts: getPayerAccounts(state, props),\r\n depositReasonCodes: getDepositReasonCodes(state, props),\r\n invoices: state.default.invoices,\r\n accountType: state.user_options.accountType,\r\n depositAmount: state.default.depositAmount,\r\n }\r\n})(Deposits);\r\n","import React, { Component } from 'react';\r\n\r\nclass Statements extends Component {\r\n constructor() {\r\n super();\r\n this.state = {};\r\n }\r\n render() {\r\n return (\r\n <div className=\"container\">\r\n <h1>Statements Page</h1>\r\n </div>\r\n );\r\n }\r\n}\r\nexport default Statements;\r\n","import React, { Component } from 'react';\r\n\r\nclass Help extends Component {\r\n constructor() {\r\n super();\r\n this.state = {};\r\n }\r\n render() {\r\n return (\r\n <div className=\"container\">\r\n <p>If you need help with Schindler E-Pay please contact us at <span><a href=\"mailto:epay_help.us@schindler.com\">epayhelp@schindler.com</a></span></p>\r\n </div>\r\n );\r\n }\r\n}\r\nexport default Help;\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { setSelectedSoldTos, updatePrimaryAccount, clearSelectedInvoices } from \"../../actions/InvoiceActions\";\r\nimport { getSelectedPrimaryAccount } from \"../invoice/Selectors\";\r\nimport { ACCOUNT_PAYER_ALL } from \"../../constants/ApplicationConstants\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faChevronDown } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { Dropdown } from \"react-bootstrap\";\r\nimport { isStringNotEmptyOrNull } from \"../../utils\";\r\nexport class NavAccountSelect extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n hasMorethanOneHeaderItems: true,\r\n };\r\n this.onHeaderDropdownSelected = this.onHeaderDropdownSelected.bind(this);\r\n this.createSelectItems = this.createSelectItems.bind(this);\r\n this.dropdownRef = React.createRef(null);\r\n }\r\n \r\n componentDidMount() {\r\n this.props.dispatch(setSelectedSoldTos(this.props.secondaryAccounts.map(account => account.PrimaryAcct)));\r\n }\r\n\r\n onHeaderDropdownSelected(i) {\r\n if (this.props.selectedPrimaryAccountIndex !== i) {\r\n clearSelectedInvoices(this.props.dispatch);\r\n updatePrimaryAccount(this.props.dispatch, i, this.props.accountType !== ACCOUNT_PAYER_ALL);\r\n }\r\n this.dropdownRef.current.click();\r\n }\r\n\r\n createSelectItems() {\r\n const items = [];\r\n for (let i = 0; i < this.props.primaryAccounts.length; i++) {\r\n const headerItem = this.props.primaryAccounts[i];\r\n let activeClass = 'dropdown-item';\r\n if (this.props.selectedPrimaryAccountIndex === i) {\r\n activeClass = 'dropdown-item headerDropdownItemColor';\r\n }\r\n items.push(<a className={activeClass}\r\n key={headerItem.PrimaryAcct}\r\n onClick={() => {\r\n this.onHeaderDropdownSelected(i)\r\n }}\r\n ><div>{headerItem.Name}</div><div className={\"account-subheader\"}>{headerItem.PrimaryAcct}</div></a>);\r\n }\r\n\r\n return items;\r\n }\r\n\r\n render() {\r\n let name;\r\n let overflowClass;\r\n const { selectedPrimaryAccount, primaryAccounts } = this.props;\r\n\r\n if (primaryAccounts != null) {\r\n overflowClass = primaryAccounts.length > 10 ? \"header-dropdown-overflow\" : \"\";\r\n }\r\n \r\n if (selectedPrimaryAccount != null) {\r\n name = this.props.selectedPrimaryAccount.Name;\r\n if (\r\n this.props.selectedPrimaryAccount.CompanyCode.startsWith(\"JP\") &&\r\n isStringNotEmptyOrNull(this.props.selectedPrimaryAccount.name_2)\r\n ) {\r\n name = this.props.selectedPrimaryAccount.name_2;\r\n }\r\n\r\n }\r\n\r\n return (\r\n <li className=\"nav-item\">\r\n <div\r\n className=\"dropdown customSelect mouseHover\"\r\n style={{ marginTop: \"-5px\" }}\r\n >\r\n <Dropdown>\r\n <Dropdown.Toggle\r\n id=\"dropdown-basic\"\r\n className={\"btn dropdown-toggle dropbtn truncate\"}\r\n ref={this.dropdownRef }\r\n >\r\n <div className={\"d-flex flex-row\"}>\r\n <span>\r\n <div>\r\n <div className=\"truncate\">\r\n {this.props.selectedPrimaryAccount && name}\r\n </div>\r\n <div className={\"account-subheader\"}>\r\n {this.props.selectedPrimaryAccount &&\r\n this.props.selectedPrimaryAccount.PrimaryAcct}\r\n </div>\r\n </div>\r\n </span>\r\n {this.props.primaryAccounts.length > 1 && (\r\n <span className=\"select-arrow\">\r\n <i className=\"fas fa-chevron-down\" />\r\n </span>\r\n )}\r\n </div>\r\n </Dropdown.Toggle>\r\n\r\n {this.props.primaryAccounts.length > 1 && (\r\n <Dropdown.Menu className={overflowClass}>\r\n {this.createSelectItems()}\r\n </Dropdown.Menu>\r\n )}\r\n </Dropdown>\r\n </div>\r\n </li>\r\n );\r\n //return <li className=\"nav-item\">\r\n // <div className=\"dropdown customSelect\">\r\n // <button className=\"btn dropdown-toggle dropbtn truncate\" type=\"button\" id=\"dropdownMenuButton\"\r\n // data-toggle=\"dropdown\"\r\n // data-target=\"#account-dropdown\"\r\n // aria-haspopup=\"true\" aria-expanded=\"false\">\r\n // <div className={'d-flex flex-row'}>\r\n // <div>\r\n // <div\r\n // className='truncate'>{this.props.selectedPrimaryAccount && (this.props.selectedPrimaryAccount.Name)}</div>\r\n // <div\r\n // className={'account-subheader'}>{this.props.selectedPrimaryAccount && (this.props.selectedPrimaryAccount.PrimaryAcct)}</div>\r\n // </div>\r\n // <span className=\"select-arrow\">\r\n // <FontAwesomeIcon icon={faChevronDown} />\r\n // </span>\r\n // </div>\r\n // </button>\r\n // {this.state.hasMorethanOneHeaderItems ?\r\n // <div className=\"dropdown-menu\" aria-labelledby=\"dropdownMenuButton\" id={\"account-dropdown\"}>\r\n // {this.createSelectItems()}\r\n // </div>\r\n // : ''\r\n // }\r\n // </div>\r\n //</li>\r\n }\r\n\r\n}\r\n\r\nexport default connect((state, props) => {\r\n return {\r\n selectedPrimaryAccount: getSelectedPrimaryAccount(state, props),\r\n selectedPrimaryAccountIndex: state.user_options.selectedPrimaryAccountIndex,\r\n primaryAccounts: state.user_options.primaryAccounts,\r\n secondaryAccounts: state.user_options.secondaryAccounts,\r\n accountType: state.user_options.accountType,\r\n }\r\n})(NavAccountSelect);","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {withRouter, Link} from 'react-router-dom';\r\nimport {connect} from 'react-redux';\r\nimport {getSelectedPrimaryAccount, hasDeposits} from \"../invoice/Selectors\";\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListSubheader from '@material-ui/core/ListSubheader';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport ExpandLess from '@material-ui/icons/ExpandLess';\r\nimport ExpandMore from '@material-ui/icons/ExpandMore';\r\nimport {clearSelectedInvoices, updatePrimaryAccount} from \"../../actions/InvoiceActions\";\r\nimport {ACCOUNT_PAYER_ALL} from \"../../constants/ApplicationConstants\";\r\nimport {Logout} from \"../../actions/UserActions\";\r\nimport {\r\n canEditSystemConfig,\r\n canManagePaymentMethods,\r\n canManageRegistrationRequests,\r\n canManageUsers, canViewUsers\r\n} from \"../../PermissionSelectors\";\r\n\r\nclass MenuDrawer extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showAccounts: false, \r\n };\r\n \r\n this.toggleShowAccounts = this.toggleShowAccounts.bind(this);\r\n this.onAccountSelect = this.onAccountSelect.bind(this);\r\n this.logout = this.logout.bind(this);\r\n }\r\n \r\n toggleShowAccounts(){\r\n this.setState({showAccounts: !this.state.showAccounts}) \r\n }\r\n \r\n logout() {\r\n Logout(this.props.dispatch);\r\n };\r\n \r\n onAccountSelect(i) {\r\n clearSelectedInvoices(this.props.dispatch);\r\n updatePrimaryAccount(this.props.dispatch, i, this.props.accountType !== ACCOUNT_PAYER_ALL);\r\n this.props.onClose();\r\n }\r\n\r\n render() {\r\n return (<div>\r\n <div className=\"cnbs-menu-drawer\" style={{minWidth: \"199px\"}}>\r\n <List component=\"nav\">\r\n <ListSubheader disableSticky={true}>Account</ListSubheader>\r\n <ListItem button onClick={this.toggleShowAccounts}>\r\n <ListItemText primary={this.props.selectedPrimaryAccount && (this.props.selectedPrimaryAccount.Name)}\r\n secondary={this.props.selectedPrimaryAccount && (this.props.selectedPrimaryAccount.PrimaryAcct)}/>\r\n {this.state.showAccounts ? <ExpandLess/> : <ExpandMore/>}\r\n </ListItem>\r\n </List>\r\n {this.state.showAccounts && <React.Fragment>\r\n <Divider/>\r\n <List component=\"nav\">\r\n {this.props.primaryAccounts.map((account, index) => {\r\n return (<ListItem button key={account.PrimaryAcct} onClick={() => {\r\n this.onAccountSelect(index); \r\n }}>\r\n <ListItemText primary={account.Name}\r\n secondary={account.PrimaryAcct}/>\r\n </ListItem>)\r\n })}\r\n </List>\r\n </React.Fragment>}\r\n {!this.state.showAccounts && <React.Fragment>\r\n <Divider/>\r\n <List component=\"nav\">\r\n <ListItem button component={Link} to={'/invoices'} onClick={this.props.onClose}>\r\n <ListItemText primary=\"Invoices\"/>\r\n </ListItem>\r\n {this.props.hasDeposits && <ListItem button component={Link} to={'/deposits'} onClick={this.props.onClose}>\r\n <ListItemText primary=\"Deposits\"/>\r\n </ListItem>}\r\n </List>\r\n <Divider/>\r\n <List component=\"nav\">\r\n <ListSubheader>Settings</ListSubheader>\r\n <ListItem button component={Link} to={'/settings/profile'} onClick={this.props.onClose}>\r\n <ListItemText primary=\"Account\"/>\r\n </ListItem>\r\n {this.props.canViewUsers && <ListItem button component={Link} to={'/settings/users'} onClick={this.props.onClose}>\r\n <ListItemText primary=\"User Management\"/>\r\n </ListItem>}\r\n {/* TODO SCHINDLER SPECIFIC */}\r\n {/*{this.props.canManageRegistrationRequests && <ListItem button component={Link} to={'/settings/registration-requests'} onClick={this.props.onClose}>*/}\r\n {/*<ListItemText primary=\"Registration Request\"/>*/}\r\n {/*</ListItem>}*/}\r\n {this.props.canEditSystemConfig && <ListItem button component={Link} to={'/settings/configuration'} onClick={this.props.onClose}>\r\n <ListItemText primary=\"Configuration\"/>\r\n </ListItem>}\r\n {this.props.canManagePaymentMethods && <ListItem button component={Link} to={'/settings/payment-methods'} onClick={this.props.onClose}>\r\n <ListItemText primary=\"Payment Methods\"/>\r\n </ListItem>}\r\n </List>\r\n <Divider/>\r\n <List component=\"nav\">\r\n <ListItem button component={Link} to={\"/help\"} onClick={this.props.onClose}>\r\n <ListItemText primary=\"Help\"/>\r\n </ListItem>\r\n <ListItem button onClick={this.logout}>\r\n <ListItemText primary=\"Logout\"/>\r\n </ListItem>\r\n </List>\r\n </React.Fragment>}\r\n </div>\r\n </div>)\r\n }\r\n}\r\n\r\nMenuDrawer.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default withRouter(connect((state, props) => ({\r\n accountType: state.user_options.accountType,\r\n canEditSystemConfig: canEditSystemConfig(state, props),\r\n canManagePaymentMethods: canManagePaymentMethods(state, props),\r\n canManageRegistrationRequests: canManageRegistrationRequests(state, props),\r\n canManageUsers: canManageUsers(state, props),\r\n canViewUsers: canViewUsers(state, props),\r\n currentUser: state.default.currentUser,\r\n hasDeposits: hasDeposits(state, props),\r\n primaryAccounts: state.user_options.primaryAccounts,\r\n selectedPrimaryAccount: getSelectedPrimaryAccount(state, props)\r\n}))(MenuDrawer));\r\n","/* eslint-env browser */\r\n/* eslint-disable no-console */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {NavLink, withRouter, Link} from 'react-router-dom';\r\nimport {connect} from 'react-redux';\r\nimport {toast} from 'react-toastify';\r\nimport IdleTimer from 'react-idle-timer';\r\nimport {Logout, getUserCustomers, ResetPassword, refreshToken} from '../../actions/UserActions';\r\nimport {\r\n updateSecondaryAccounts,\r\n updateSelectedSecondaryAccountValue,\r\n getCustomData,\r\n clearSelectedInvoices\r\n} from '../../actions/InvoiceActions';\r\nimport NavAccountSelect from \"./NavAccountSelect\";\r\nimport {getSelectedPrimaryAccount, hasDeposits} from \"../invoice/Selectors\";\r\nimport Drawer from '@material-ui/core/Drawer';\r\nimport MenuDrawer from \"./MenuDrawer\";\r\nimport Logo from \"../Logo\";\r\nimport {faCog} from \"@fortawesome/free-solid-svg-icons\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\n\r\nclass Header extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n collapsed: true,\r\n drawerIsOpen: false,\r\n };\r\n\r\n this.navLinkClick = this.navLinkClick.bind(this);\r\n this.navLinkLogoutClick = this.navLinkLogoutClick.bind(this);\r\n this.navLinkResetPasswordClick = this.navLinkResetPasswordClick.bind(this);\r\n this.mapTableDropdownItems = this.mapTableDropdownItems.bind(this);\r\n\r\n this.idleTimer = null;\r\n this.onAction = this.onAction.bind(this)\r\n this.onIdle = this.onIdle.bind(this)\r\n this.toggleDrawer = this.toggleDrawer.bind(this)\r\n }\r\n\r\n componentDidMount() {\r\n getUserCustomers(this.props.dispatch);\r\n getCustomData(this.props.dispatch);\r\n }\r\n\r\n mapTableDropdownItems = (dropdownItems) => {\r\n if (dropdownItems) {\r\n const accountType = this.props.accountType;\r\n let secondaryAccounts = [];\r\n if (accountType === 'Payer') {\r\n secondaryAccounts = dropdownItems.map(subItem => ({\r\n value: subItem.PrimaryAcct,\r\n label: `${subItem.PrimaryAcct}${'-'}${subItem.Name}`,\r\n clearableValue: false,\r\n className: 'truncate',\r\n checked: 'checked',\r\n }));\r\n } else {\r\n secondaryAccounts = dropdownItems.map(subItem => ({\r\n value: subItem.PrimaryAcct,\r\n label: `${subItem.PrimaryAcct}${'-'}${subItem.Name}`,\r\n clearableValue: false,\r\n className: 'truncate',\r\n checked: '',\r\n }));\r\n }\r\n updateSecondaryAccounts(this.props.dispatch, secondaryAccounts);\r\n updateSelectedSecondaryAccountValue(this.props.dispatch, secondaryAccounts[0]);\r\n }\r\n };\r\n\r\n navLinkInvoiceClick = () => {\r\n this.setState({collapsed: true});\r\n };\r\n\r\n navLinkClick = () => {\r\n clearSelectedInvoices(this.props.dispatch);\r\n this.setState({collapsed: true});\r\n };\r\n\r\n navLinkLogoutClick = (event) => {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.setState({collapsed: true});\r\n Logout(this.props.dispatch);\r\n };\r\n\r\n navLinkResetPasswordClick = () => {\r\n this.setState({collapsed: true});\r\n ResetPassword(this.props.dispatch);\r\n };\r\n\r\n navBarToggleClick = () => {\r\n this.setState({collapsed: !this.state.collapsed});\r\n };\r\n\r\n toggleDrawer = (isOpen) => {\r\n this.setState({drawerIsOpen: isOpen});\r\n };\r\n\r\n onAction(e) {\r\n // Refresh Token\r\n refreshToken(this.props.dispatch);\r\n }\r\n\r\n onIdle(e) {\r\n toast.info(\"Session timeout occured, Please log in again.\", {position: toast.POSITION.TOP_RIGHT, autoClose: false});\r\n Logout(this.props.dispatch);\r\n }\r\n\r\n render() {\r\n let collapsedClass = `${'collapse navbar-collapse webar-navbar-collapse'}`;\r\n\r\n if (!this.state.collapsed) {\r\n collapsedClass = 'navbar-collapse webar-navbar-collapse';\r\n }\r\n return (\r\n <IdleTimer\r\n ref={ref => {\r\n this.logoutTimer = ref\r\n }}\r\n element={document}\r\n onAction={this.onAction}\r\n throttle={1000 * 60 * 5}\r\n onIdle={this.onIdle}\r\n timeout={1000 * 60 * 30}>\r\n <Drawer open={this.state.drawerIsOpen} onClose={() => this.toggleDrawer(false)}>\r\n <MenuDrawer onClose={() => this.toggleDrawer(false)}/>\r\n </Drawer>\r\n <nav id=\"appHeader\" className=\"webar-navbar navbar fixed-top navbar-expand-lg navbar-light\">\r\n <div className=\"container\">\r\n <button className=\"navbar-toggler\" type=\"button\" onClick={() => this.toggleDrawer(true)}>\r\n <span className=\"navbar-toggler-icon\"/>\r\n </button>\r\n <div className={collapsedClass} id=\"navbarSupportedContent\">\r\n <ul className=\"navbar-nav mr-auto\">\r\n <Logo height={50} header={true}/>\r\n <NavAccountSelect/>\r\n </ul>\r\n <ul className=\"navbar-nav ml-auto\">\r\n <li className=\"nav-item\">\r\n <NavLink to=\"/invoices\" className=\"nav-link\" exact={true} activeClassName={\"active\"}\r\n onClick={this.navLinkClick}>\r\n <span>Invoices</span>\r\n </NavLink>\r\n </li>\r\n <li className=\"nav-item\">\r\n <NavLink to=\"/invoices/invoicesearch\" exact={true} className=\"nav-link\" activeClassName={\"active\"}\r\n onClick={this.navLinkClick}>\r\n <span>Statement</span>\r\n </NavLink>\r\n </li>\r\n {this.props.hasDeposits && <li className=\"nav-item\">\r\n <NavLink to=\"/deposits\" className=\"nav-link\" activeClassName={\"active\"} onClick={this.navLinkClick}>\r\n <span>Deposits</span>\r\n </NavLink>\r\n </li>}\r\n <li className=\"nav-item align-self-baseline align-self-lg-center\">\r\n <a href=\"/ePay_Help.pdf\" className=\"nav-link\" activeClassName={\"active\"} onClick={this.navLinkClick}>\r\n <span className=\"small-text\">Help</span>\r\n </a>\r\n </li>\r\n <Link to={'/settings/profile'} className={\"align-self-baseline align-self-lg-center\"}>\r\n <FontAwesomeIcon icon={faCog} size={\"2x\"}/>\r\n </Link>\r\n <li className=\"nav-item align-self-baseline align-self-lg-center\"\r\n title={\"You are logged in as \" + (this.props.currentUser && this.props.currentUser.Login ? this.props.currentUser.Login : '')}>\r\n <a className=\"nav-link\" href=\"\" onClick={this.navLinkLogoutClick}>\r\n <span className=\"small-text\">Logout</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </nav>\r\n </IdleTimer>\r\n );\r\n }\r\n}\r\n\r\nHeader.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default withRouter(connect((state, props) => ({\r\n currentUser: state.default.currentUser,\r\n accountType: state.user_options.accountType,\r\n selectedPrimaryAccount: getSelectedPrimaryAccount(state, props),\r\n hasDeposits: hasDeposits(state, props),\r\n}))(Header));\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport {addSoldToToSelected, removeSoldToFromSelected, clearSelectedInvoices, setSelectedSoldTos} from '../../actions/InvoiceActions';\r\nimport {getSelectedPrimaryAccount} from \"./Selectors\";\r\nimport {faChevronDown} from \"@fortawesome/free-solid-svg-icons\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\n\r\nclass SoldToSelect extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.handleCustomerCheckChange = this.handleCustomerCheckChange.bind(this);\r\n this.createSelectItems = this.createSelectItems.bind(this);\r\n this.selectAll = this.selectAll.bind(this);\r\n this.allSelected = this.allSelected.bind(this);\r\n }\r\n \r\n selectAll(){\r\n if(this.allSelected()){\r\n this.props.dispatch(setSelectedSoldTos([]));\r\n } else {\r\n this.props.dispatch(setSelectedSoldTos(this.props.secondaryAccounts.map(s => s.PrimaryAcct)));\r\n }\r\n }\r\n\r\n allSelected() {\r\n const account = this.props.selectedPrimaryAccount;\r\n const selectedItems = this.props.selectedSoldTos;\r\n const secondaryAccounts = this.props.secondaryAccounts;\r\n return selectedItems.length === secondaryAccounts.length;\r\n }\r\n\r\n handleCustomerCheckChange = (target) => {\r\n clearSelectedInvoices(this.props.dispatch);\r\n const value = target.currentTarget.id;\r\n const isChecked = target.currentTarget.checked;\r\n\r\n if (isChecked){\r\n this.props.dispatch(addSoldToToSelected(value));\r\n } else {\r\n this.props.dispatch(removeSoldToFromSelected(value));\r\n }\r\n \r\n \r\n };\r\n\r\n createSelectItems() {\r\n const account = this.props.selectedPrimaryAccount && this.props.selectedPrimaryAccount.PrimaryAcct ? this.props.selectedPrimaryAccount.PrimaryAcct : '';\r\n const selectedItems = this.props.selectedSoldTos;\r\n\r\n const items = [];\r\n for (let l = 0; l < this.props.secondaryAccounts.length; l += 1) {\r\n const customer = this.props.secondaryAccounts[l];\r\n\r\n let itemColor = 'checkbox checkbox-primary dropdown-item truncate ';\r\n let isChecked = '';\r\n if (selectedItems.indexOf(customer.PrimaryAcct) !== -1){\r\n itemColor = 'checkbox checkbox-primary dropdown-item truncate multiSelectItemColor';\r\n isChecked = 'checked';\r\n }\r\n \r\n items.push(<li key={`li_${customer.PrimaryAcct}`}>\r\n <div className={itemColor} key={`div_${customer.PrimaryAcct}`}>\r\n <label key={`lbl_${customer.PrimaryAcct}`} htmlFor={`lbl_${customer.PrimaryAcct}`}>\r\n <input className=\"checkMargin\" type=\"checkbox\" key={`${account}${customer.PrimaryAcct}`} id={customer.PrimaryAcct} onChange={this.handleCustomerCheckChange} checked={isChecked} />{customer.Name}\r\n </label>\r\n </div>\r\n </li>);\r\n }\r\n\r\n return items;\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"btn-group btn-block soldto-select customSelect\">\r\n <button className=\"form-control soldToBtnColor btn-block dropdown-toggle\" id=\"soldToToggle\" type=\"button\" data-toggle=\"dropdown\">\r\n <span>{ this.props.selectedSoldTos ? this.props.selectedSoldTos.length : 0 } Customers Selected</span> \r\n <span className=\"select-arrow\">\r\n <FontAwesomeIcon icon={faChevronDown}/>\r\n </span>\r\n </button>\r\n \r\n <ul className=\"dropdown-menu multiSelectMenuHeight\">\r\n <li>\r\n <div className=\"checkbox checkbox-primary dropdown-item truncate multiSelectItemColor\">\r\n <label htmlFor={`lbl_ship_to_select_all`}>\r\n <input className=\"checkMargin\" type=\"checkbox\" id=\"lbl_ship_to_select_all\" onChange={this.selectAll} checked={this.allSelected()} />Select All\r\n </label>\r\n </div>\r\n </li>\r\n {this.createSelectItems()}\r\n </ul>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nSoldToSelect.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n};\r\nexport default connect((store,props) => ({\r\n secondaryAccounts: store.user_options.secondaryAccounts,\r\n selectedPrimaryAccount: getSelectedPrimaryAccount(store, props),\r\n selectedSoldTos: store.user_options.selectedSoldTos\r\n}))(SoldToSelect);\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n addSoldToToSelected,\r\n removeSoldToFromSelected,\r\n clearSelectedInvoices,\r\n setSelectedSoldTos\r\n} from '../../actions/InvoiceActions';\r\nimport {getSelectedPrimaryAccount} from \"./Selectors\";\r\nimport {getSoldToNames} from \"../../requests/InvoiceRequests\";\r\nimport {faChevronDown} from \"@fortawesome/free-solid-svg-icons\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\n\r\nclass SoldToSelectAll extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n allSelected: true\r\n };\r\n this.handleCustomerCheckChange = this.handleCustomerCheckChange.bind(this);\r\n this.createSelectItems = this.createSelectItems.bind(this);\r\n // this.getSoldToDetailsForInvoices = this.getSoldToDetailsForInvoices.bind(this);\r\n this.selectAll = this.selectAll.bind(this);\r\n this.allSelected = this.allSelected.bind(this);\r\n }\r\n \r\n // componentDidMount(){\r\n // this.getSoldToDetailsForInvoices();\r\n // }\r\n\r\n\r\n selectAll(){\r\n if(this.allSelected()){\r\n this.props.dispatch(setSelectedSoldTos([]));\r\n } else {\r\n this.props.dispatch(setSelectedSoldTos(this.props.secondaryAccounts.map(s => s.PrimaryAcct)));\r\n }\r\n }\r\n \r\n allSelected() {\r\n return this.props.secondaryAccounts.length === this.props.selectedSoldTos.length;\r\n }\r\n\r\n\r\n handleCustomerCheckChange = (target) => {\r\n clearSelectedInvoices(this.props.dispatch);\r\n const value = target.currentTarget.id;\r\n const isChecked = target.currentTarget.checked;\r\n\r\n if (isChecked){\r\n this.props.dispatch(addSoldToToSelected(value));\r\n } else {\r\n this.props.dispatch(removeSoldToFromSelected(value));\r\n }\r\n };\r\n \r\n getName(customer){\r\n let name = \"\" + customer.PrimaryAcct;\r\n if(typeof customer.Name !== \"undefined\" && customer.Name !== null){\r\n return name + \" - \" + customer.Name;\r\n }\r\n return name;\r\n }\r\n\r\n createSelectItems() {\r\n const account = this.props.selectedPrimaryAccount && this.props.selectedPrimaryAccount.PrimaryAcct ? this.props.selectedPrimaryAccount.PrimaryAcct : '';\r\n const selectedItems = this.props.selectedSoldTos;\r\n\r\n let items = [];\r\n for (let l = 0; l < this.props.secondaryAccounts.length; l += 1) {\r\n const customer = this.props.secondaryAccounts[l];\r\n\r\n let itemColor = 'checkbox checkbox-primary dropdown-item truncate ';\r\n let isChecked = '';\r\n if (selectedItems.indexOf(customer.PrimaryAcct) !== -1){\r\n itemColor = 'checkbox checkbox-primary dropdown-item truncate multiSelectItemColor';\r\n isChecked = 'checked';\r\n }\r\n \r\n items.push(<li key={`li_${customer.PrimaryAcct}`}>\r\n <div className={itemColor} key={`div_${customer.PrimaryAcct}`}>\r\n <label key={`lbl_${customer.PrimaryAcct}`} htmlFor={`lbl_${customer.PrimaryAcct}`}>\r\n <input className=\"checkMargin\" type=\"checkbox\" key={`${account}${customer.PrimaryAcct}`} id={customer.PrimaryAcct} onChange={this.handleCustomerCheckChange} checked={isChecked} />{this.getName(customer)}\r\n </label>\r\n </div>\r\n </li>);\r\n }\r\n\r\n return items;\r\n }\r\n \r\n render() {\r\n return (\r\n <div className=\"btn-group btn-block soldto-select customSelect\">\r\n <button className=\"form-control soldToBtnColor btn-block dropdown-toggle\" id=\"soldToToggle\" type=\"button\" data-toggle=\"dropdown\">\r\n <span>{ this.props.selectedSoldTos ? this.props.selectedSoldTos.length : 0 } Customers Selected</span> \r\n <span className=\"select-arrow\">\r\n <FontAwesomeIcon icon={faChevronDown} className={\"select-arrow\"}/>\r\n </span>\r\n </button>\r\n \r\n <ul className=\"dropdown-menu multiSelectMenuHeight\">\r\n <li>\r\n <div className=\"checkbox checkbox-primary dropdown-item truncate multiSelectItemColor\">\r\n <label htmlFor={`lbl_ship_to_select_all`}>\r\n <input className=\"checkMargin\" type=\"checkbox\" id=\"lbl_ship_to_select_all\" onChange={this.selectAll} checked={this.allSelected()} />Select All\r\n </label>\r\n </div>\r\n </li>\r\n {this.createSelectItems()}\r\n </ul>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nSoldToSelectAll.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n};\r\nexport default connect((store,props) => ({\r\n secondaryAccounts: store.user_options.secondaryAccounts,\r\n selectedPrimaryAccount: getSelectedPrimaryAccount(store, props),\r\n selectedSoldTos: store.user_options.selectedSoldTos,\r\n invoices: store.default.invoices,\r\n}))(SoldToSelectAll);\r\n","import * as React from \"react\";\r\n\r\nexport default class BasePageErrorBoundary extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { hasError: false };\r\n }\r\n\r\n static getDerivedStateFromError(error) {\r\n // Update state so the next render will show the fallback UI.\r\n return { hasError: true };\r\n }\r\n\r\n componentDidCatch(error, info) {\r\n // You can also log the error to an error reporting service\r\n }\r\n\r\n render() {\r\n if (this.state.hasError) {\r\n // You can render any custom fallback UI\r\n return <div className={\"container\"}><h4>There was an error showing this page.</h4></div>;\r\n }\r\n\r\n return this.props.children;\r\n }\r\n}","/* eslint-env browser */\r\n/* eslint-disable no-console */\r\nimport React, {Component} from 'react';\r\nimport {Link} from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\nimport Flatpickr from 'react-flatpickr';\r\nimport {toast} from 'react-toastify';\r\nimport moment from 'moment';\r\nimport 'react-select/dist/react-select.css';\r\nimport 'react-bootstrap-table/dist/react-bootstrap-table-all.min.css';\r\nimport 'react-activity/dist/react-activity.css';\r\nimport '../../../node_modules/flatpickr/dist/themes/material_blue.css';\r\nimport '../../common/webar_flatpickr.css';\r\nimport {getInvoiceTotal, getSelectedInvoiceKeys, getSelectedPrimaryAccount} from './Selectors';\r\n\r\nimport {updateInvoiceSearchDueToDate, clearSelectedInvoices, updateSelectedCard} from '../../actions/InvoiceActions';\r\nimport * as appConstants from '../../constants/ApplicationConstants';\r\nimport * as validationTypes from '../../constants/ValidationConstants';\r\nimport SoldToSelect from './SoldToSelect';\r\nimport SoldToSelectAll from './SoldToSelectAll';\r\nimport PayerSelect from './PayerSelect';\r\nimport InvoiceList from './InvoiceList';\r\nimport {formatMoney} from '../../common/invoiceHelpers';\r\nimport {canMakePayment} from \"../../PermissionSelectors\";\r\nimport BasePageErrorBoundary from \"../../error-boundaries/BasePageErrorBoundary\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {faAngleRight, faCalendar, faCalendarAlt, faCaretUp, faChevronDown} from \"@fortawesome/free-solid-svg-icons\";\r\n\r\n\r\nclass Invoices extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n selectedPaymentStatusOption: '',\r\n hasOneDropDownItems: false,\r\n selectedDueOption: 'all'\r\n };\r\n\r\n // this.handleCustomerChange = this.handleCustomerChange.bind(this);\r\n this.handleSelectedDates = this.handleSelectedDates.bind(this);\r\n this.onContinueClick = this.onContinueClick.bind(this);\r\n this.onSearchClick = this.onSearchClick.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n updateSelectedCard(this.props.dispatch, \"\");\r\n }\r\n\r\n onContinueClick = event => {\r\n if (this.props.selectedInvoicesKeys.length === 0) {\r\n event.preventDefault();\r\n toast.warn(validationTypes.INVOICE_CHECK, {position: toast.POSITION.TOP_RIGHT});\r\n return;\r\n }\r\n if (this.props.invoiceTotal <= 0) {\r\n event.preventDefault();\r\n toast.warn(\r\n validationTypes.CREDIT_AMOUNT_VALIDATION_ERRORS,\r\n {position: toast.POSITION.TOP_RIGHT},\r\n );\r\n return;\r\n }\r\n };\r\n\r\n onSearchClick = () => {\r\n clearSelectedInvoices(this.props.dispatch);\r\n };\r\n\r\n handleSelectedDates(selectedDates) {\r\n clearSelectedInvoices(this.props.dispatch);\r\n let toDate = '';\r\n if (selectedDates && selectedDates.length > 0) {\r\n toDate = moment(selectedDates[0]).format('MM-DD-YYYY');\r\n } else {\r\n toDate = moment(new Date().getFullYear(), 11, 31).format('MM-DD-YYYY');\r\n }\r\n updateInvoiceSearchDueToDate(this.props.dispatch, toDate);\r\n }\r\n\r\n handleDueChange = event => {\r\n clearSelectedInvoices(this.props.dispatch);\r\n let selectedDueOption = event.target.value;\r\n this.setState({selectedDueOption});\r\n let defaultToDate = moment(new Date()).format('MM-DD-YYYY');\r\n if (selectedDueOption === 'due-up-to' || selectedDueOption === '') {\r\n defaultToDate = moment(new Date()).format('MM-DD-YYYY');\r\n } else if (selectedDueOption === 'all') {\r\n defaultToDate = '';\r\n }\r\n updateInvoiceSearchDueToDate(this.props.dispatch, defaultToDate);\r\n };\r\n\r\n renderSecondarySelect() {\r\n switch (this.props.accountType) {\r\n case appConstants.SOLD_TO_COMPARE:\r\n return <PayerSelect/>;\r\n case appConstants.PAYER_COMPARE:\r\n return <SoldToSelect/>;\r\n case appConstants.ACCOUNT_PAYER_ALL:\r\n return <SoldToSelectAll/>;\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n render() {\r\n const toDate = this.props.invoiceSearchDueDateTo ? new Date(this.props.invoiceSearchDueDateTo) : '';\r\n const hasOneDropDownItems = this.state.hasOneDropDownItems;\r\n if (this.props.secondaryAccounts && this.props.secondaryAccounts.length === 1 && !hasOneDropDownItems) {\r\n this.setState({hasOneDropDownItems: true});\r\n }\r\n\r\n\r\n return (\r\n <div className=\"container\" id=\"invoicePage\">\r\n <div id=\"divFilterControls\" className=\"row\">\r\n <div className=\"col-lg-3 col-sm-4 form-group\">\r\n {this.renderSecondarySelect()}\r\n </div>\r\n <div className=\"col-lg-2 col-sm-4 form-group customSelect\">\r\n <select className={'form-control invoicesHeadingInput'} onChange={this.handleDueChange}\r\n value={this.state.selectedDueOption}>\r\n <option value=\"all\">Show All</option>\r\n <option value=\"due-up-to\">Due til</option>\r\n </select>\r\n <FontAwesomeIcon icon={faChevronDown} className={\"select-arrow\"}/>\r\n </div>\r\n\r\n {this.state.selectedDueOption !== 'all' && (\r\n <div className=\"col-lg-2 col-sm-4 form-group\">\r\n <div>\r\n <FontAwesomeIcon icon={faCalendarAlt} className={\"calendarPosition\"}/>\r\n <Flatpickr\r\n className=\"inp form-control inv-calendar\"\r\n value={toDate}\r\n options={{dateFormat: 'M-d'}}\r\n onClose={this.handleSelectedDates}\r\n placeholder=\"Due Til\"\r\n />\r\n </div>\r\n </div>\r\n )}\r\n {/* SCHINDLER DOES NOT WANT INVOICE SEARCH HERE.*/}\r\n {/*<div className=\"col-lg-1 col-md-1 col-2 form-group search p-0\">*/}\r\n {/*<Link to=\"/invoices/invoicesearch\" onClick={this.onSearchClick}>*/}\r\n {/*<span className=\"fas fa-search fa-lg\"/>*/}\r\n {/*</Link>*/}\r\n {/*</div>*/}\r\n <div className=\"col-lg-2 col-md-6 col-8 form-group d-flex align-items-center p-0\">\r\n <span className=\"invoicesHeading\">Pay </span>\r\n <span className={this.props.invoiceTotal >= 0 ? 'credit-positive' : 'credit-negative'}>\r\n   ${formatMoney(this.props.invoiceTotal)}\r\n </span>\r\n </div>\r\n {this.state.selectedDueOption === 'all' && (\r\n <div className=\"col-lg-2 col-sm-4 form-group\">\r\n </div>\r\n )}\r\n <div className=\"col-lg-2 col-md-5 col-sm-12 text-right form-group\">\r\n {this.props.canMakePayment &&\r\n <Link className=\"btn btn-primary buttonColor\" to=\"/invoices/pay\" onClick={this.onContinueClick}>\r\n Continue <FontAwesomeIcon icon={faAngleRight}/>\r\n </Link>}\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <InvoiceList/>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nInvoices.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n reasonNotRequired: PropTypes.string.isRequired\r\n};\r\n\r\n// TODO cleanup unused props.\r\nexport default connect((store, props) => ({\r\n accountType: store.user_options.accountType,\r\n cnbsConfig: store.default.cnbsConfig,\r\n currencyOptions: store.default.currencyOptions,\r\n currentUser: store.default.currentUser,\r\n dueOptions: store.default.dueOptions,\r\n invoiceListRequest: store.default.invoiceListRequest,\r\n invoiceSearchDueDateTo: store.user_options.invoiceSearchDueDateTo,\r\n invoiceSearchFromDate: store.default.invoiceSearchFromDate,\r\n invoiceSearchToDate: store.user_options.invoiceSearchToDate,\r\n invoiceTotal: getInvoiceTotal(store, props),\r\n listHeight: store.default.listHeight,\r\n payerDetails: store.default.payerDetails,\r\n paymentCardOptions: store.default.paymentCardOptions,\r\n paymentStatusOptions: store.default.paymentStatusOptions,\r\n paymentStatuses: store.default.paymentStatuses,\r\n reasonNotRequired: store.default.reasonNotRequired,\r\n secondaryAccounts: store.user_options.secondaryAccounts,\r\n selectedCurrencyOptionValue: store.default.selectedCurrencyOptionValue,\r\n selectedInvoices: store.invoice.selected,\r\n selectedInvoicesKeys: getSelectedInvoiceKeys(store, props),\r\n selectedPrimaryAccount: getSelectedPrimaryAccount(store, props),\r\n selectedSecondaryAccount: store.user_options.selectedSecondaryAccount,\r\n totalAmountWithCredit: store.default.totalAmountWithCredit,\r\n userCustomerDetails: store.user_options.primaryAccounts,\r\n canMakePayment: canMakePayment(store),\r\n}))(Invoices);\r\n","import React, {Component} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport {getCurrency, formatMoney} from '../../common/invoiceHelpers';\r\nimport {\r\n removeInvoiceFromSelected,\r\n updatePayAmountForInvoice,\r\n updateReason,\r\n updateReasonComment\r\n} from \"../../actions/InvoiceActions\";\r\nimport * as appConstants from \"../../constants/ApplicationConstants\";\r\nimport {getSelectedPrimaryAccount, getPayerAccount} from \"./Selectors\";\r\nimport moment from 'moment';\r\nimport {trimLeadingZeroes} from \"../../utils\";\r\nimport {isCredit} from \"./InvoiceList\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {faChevronDown, faTimes} from \"@fortawesome/free-solid-svg-icons\";\r\n\r\nclass InvoiceDetail extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n payValidation: '',\r\n reasonDescriptionValidation: '',\r\n readOnly: (!this.props.isPartialPaymentsAllowed && !this.props.isInvoiceOverpaymentAllowed) || isCredit(this.props.invoice),\r\n isCredit: isCredit(this.props.invoice),\r\n reasonNotRequired: this.props.reasonNotRequired !== 'X' ? 'Reason code required' : '',\r\n isItemPayment: this.props.invoice.item_is_a_payment === 'X',\r\n showReasonDescription: false,\r\n isModelStateValid: true,\r\n };\r\n this.onRemoveInvoiceFromSelected = this.onRemoveInvoiceFromSelected.bind(this);\r\n this.handleReasonChange = this.handleReasonChange.bind(this);\r\n this.onChangePayAmount = this.onChangePayAmount.bind(this);\r\n this.handleReasonCodeChange = this.handleReasonCodeChange.bind(this);\r\n this.isReasonCodeValid = this.isReasonCodeValid.bind(this);\r\n this.reasonCodeRequired = this.reasonCodeRequired.bind(this);\r\n this.getSoldToName = this.getSoldToName.bind(this);\r\n }\r\n\r\n isReasonCodeValid() {\r\n return this.props.reason && this.props.reason.length !== 0;\r\n }\r\n\r\n getSoldToName() {\r\n let custOption = '';\r\n if (this.props.accountType === appConstants.SOLD_TO_COMPARE) {\r\n const headerItems = this.props.userCustomerDetails;\r\n for (let l = 0; l < headerItems.length; l += 1) {\r\n const headerItem = headerItems[l];\r\n if (headerItem && headerItem.PrimaryAcct === this.props.selectedPrimaryAccount.PrimaryAcct) {\r\n custOption = `${headerItem.PrimaryAcct}${'-'}${headerItem.Name}`;\r\n }\r\n }\r\n } else {\r\n for (let l = 0; l < this.props.secondaryAccounts.length; l += 1) {\r\n const customer = this.props.secondaryAccounts[l];\r\n if (this.props.invoice.soldto_number === customer.value) {\r\n custOption = customer.label;\r\n break;\r\n }\r\n }\r\n }\r\n return custOption;\r\n }\r\n\r\n reasonCodeRequired() {\r\n return this.props.invoice.open_amount > this.props.payAmount;\r\n }\r\n\r\n onRemoveInvoiceFromSelected = (e) => {\r\n this.props.dispatch(removeInvoiceFromSelected(this.props.invoice));\r\n };\r\n\r\n onChangePayAmount = (e) => {\r\n const {value} = e.target;\r\n this.props.dispatch(updatePayAmountForInvoice(\r\n this.props.documentId,\r\n value ? parseFloat(value) : null,\r\n this.props.invoice.open_amount,\r\n this.props.isPartialPaymentsAllowed,\r\n this.props.isInvoiceOverpaymentAllowed\r\n ));\r\n };\r\n\r\n handleReasonChange = (e) => {\r\n this.props.dispatch(updateReasonComment(this.props.documentId, e.target.value));\r\n };\r\n\r\n mapSoldToolTip(soldTo) {\r\n this.props.onMapSoldTo(soldTo);\r\n }\r\n\r\n handleReasonCodeChange = (selectedReasonCodeOption) => {\r\n this.props.dispatch(updateReason(this.props.documentId, selectedReasonCodeOption.target.value));\r\n };\r\n\r\n errorClass = valid => (valid ? '' : 'invalid');\r\n\r\n render() {\r\n const payerCompanyCode = this.props.payerAccount && this.props.payerAccount.CompanyCode ? this.props.payerAccount.CompanyCode : '';\r\n\r\n const reasonCodes = this.props.cnbsConfig.payment_reason_codes\r\n .filter(obj => obj.company_code === payerCompanyCode && obj.payment_type === 'O')\r\n .map(code => {\r\n return {\r\n value: code.reason_code,\r\n label: code.description,\r\n commentsRequired: code.comments_required,\r\n clearableValue: false,\r\n }\r\n });\r\n\r\n let selectedReasonCode = this.props.cnbsConfig.payment_reason_codes.find((reason) => {\r\n return reason.reason_code === this.props.reason;\r\n });\r\n const postingDate = this.props.invoice && this.props.invoice.posting_date ? moment(this.props.invoice.posting_date).format('MM/DD/YYYY') : '';\r\n const dueDate = this.props.invoice && this.props.invoice.due_date ? moment(this.props.invoice.due_date).format('MM/DD/YYYY') : '';\r\n const payAmount = this.props.payAmount;\r\n return (\r\n <div>\r\n <div>\r\n <div\r\n role=\"presentation\"\r\n onClick={this.onRemoveInvoiceFromSelected}\r\n className=\"remove-invoice-button\"\r\n >\r\n <FontAwesomeIcon icon={faTimes} className={\"text-secondary\"}/>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"row col-12 col-md-6 col-lg-3 mt-2\">\r\n <div className=\"details-label-column\">Doc #</div>\r\n <div className=\"details-value\">{trimLeadingZeroes(this.props.invoice.billing_document_number)}</div>\r\n </div>\r\n <div className=\"row col-12 col-md-6 col-lg-3 mt-2\">\r\n <div\r\n className=\"details-label-column\">{this.props.invoice.open_amount < 0 ? 'Credit' : 'Open'}</div>\r\n <div className={`details-value ${this.props.invoice.open_amount < 0 ? 'itemPayment' : ''}`}>\r\n {getCurrency(this.props.invoice)} {formatMoney(this.props.invoice.open_amount)}\r\n </div>\r\n </div>\r\n <div className=\"row col-12 col-md-6 col-lg-2 mt-2\">\r\n <div className=\"details-label-column\">Date</div>\r\n <div className=\"details-value\">\r\n {postingDate}\r\n </div>\r\n </div>\r\n <div className=\"row col-12 col-md-6 col-lg-2 mt-2\">\r\n <div className=\"details-label-column\">Due</div>\r\n <div className=\"details-value\">\r\n {dueDate}\r\n </div>\r\n </div>\r\n <div className=\"row col-12 col-md-6 col-lg-2 mt-2\">\r\n <div className=\"details-label-column\">Cust#</div>\r\n <div data-toggle=\"details-value tooltip\"\r\n title={this.getSoldToName()}>{trimLeadingZeroes(this.props.invoice.soldto_number)}</div>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-12 col-md-6 col-lg-3 mt-2\">\r\n <div className=\"row\">\r\n <div className=\"details-label-column\">\r\n Ref #\r\n </div>\r\n <div\r\n className=\"details-value\">\r\n {trimLeadingZeroes(this.props.invoice.reference_number)}\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-12 col-md-6 col-lg-3 mt-2\">\r\n <div className=\"row\">\r\n {this.props.invoice.open_amount >= 0 && <React.Fragment>\r\n <div\r\n className=\"details-label-column\">\r\n Pay\r\n </div>\r\n <div\r\n className=\"details-value\">\r\n <input\r\n required\r\n id={`${'payAmount_'}${this.props.invoice.document_number_finance}`}\r\n name={`${'payAmount_'}${this.props.invoice.document_number_finance}`}\r\n className={`form-control form-control-sm text-left ${this.state.isCredit ? 'itemPayment' : ''} ${this.errorClass(this.props.amountValidation.length === 0)}`}\r\n type=\"number\"\r\n step={0.01}\r\n onChange={this.onChangePayAmount}\r\n value={payAmount}\r\n readOnly={this.state.readOnly}\r\n />\r\n {this.props.amountValidation ? <h6 className=\"invalid-Text\">\r\n <small>{this.props.amountValidation}</small>\r\n </h6> : ''}\r\n </div>\r\n </React.Fragment>}\r\n </div>\r\n </div>\r\n <div className=\"col-12 col-md-6 col-lg-3 mt-2\">\r\n <div className=\"row\">\r\n {\r\n this.reasonCodeRequired() ?\r\n <div\r\n className=\"details-label-column\">\r\n Reason\r\n </div>\r\n : ''\r\n }\r\n {\r\n this.reasonCodeRequired() ?\r\n <div className=\"details-value invoiceDetailCustomSelect\">\r\n <select\r\n name=\"paymentStatus\"\r\n className={`form-control ${this.errorClass(this.isReasonCodeValid())}`}\r\n onChange={this.handleReasonCodeChange}>\r\n value={this.props.reason}\r\n <option value=\"\" disabled selected=\"selected\">Reason Code</option>\r\n {reasonCodes.map(code => {\r\n return (\r\n <option value={code.value} key={code.value}>\r\n {code.label}\r\n </option>\r\n )\r\n })}\r\n </select>\r\n <FontAwesomeIcon icon={faChevronDown} className={\"select-arrow\"}/>\r\n {this.isReasonCodeValid() ? '' : <h6 className=\"invalid-Text\">\r\n <small>Reason Code Required.</small>\r\n </h6>}\r\n </div>\r\n : ''\r\n }\r\n </div>\r\n </div>\r\n <div className=\"col-12 col-md-6 col-lg-3 mt-2\">\r\n <div className=\"row\">\r\n <div className=\"details-label-column d-lg-none\"/>\r\n <div className=\"details-value\">\r\n {\r\n this.reasonCodeRequired() && selectedReasonCode && selectedReasonCode.comments_required && selectedReasonCode.comments_required === \"X\" ?\r\n <input\r\n required\r\n id={`${'reasonDescription_'}${this.props.invoice.document_number_finance}`}\r\n name={`${'reasonDescription_'}${this.props.invoice.document_number_finance}`}\r\n className={`form-control form-control-sm text-left ${this.props.comment.length === 0 && 'invalid'}`}\r\n placeholder=\"Reason Description\"\r\n onChange={this.handleReasonChange}\r\n value={this.props.comment}\r\n />\r\n : ''\r\n }\r\n {\r\n this.reasonCodeRequired() && selectedReasonCode && selectedReasonCode.comments_required && selectedReasonCode.comments_required === \"X\" && this.props.comment.length === 0 &&\r\n <h6 className=\"invalid-Text\">\r\n <small>Reason Required</small>\r\n </h6>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nInvoiceDetail.propTypes = {\r\n documentId: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default connect((store, props) => ({\r\n cnbsConfig: store.app.cnbsConfig,\r\n isPartialPaymentsAllowed: store.app.isPartialPaymentsAllowed,\r\n isInvoiceOverpaymentAllowed: store.app.isInvoiceOverpaymentAllowed,\r\n payAmount: store.invoice.invoiceDetail[props.documentId].amount,\r\n amountValidation: store.invoice.invoiceDetail[props.documentId].amountValidation,\r\n reason: store.invoice.invoiceDetail[props.documentId].reason,\r\n comment: store.invoice.invoiceDetail[props.documentId].comment,\r\n invoice: store.invoice.selected[props.documentId],\r\n userCustomerDetails: store.user_options.primaryAccounts,\r\n selectedPrimaryAccount: getSelectedPrimaryAccount(store, props),\r\n secondaryAccounts: store.user_options.secondaryAccounts,\r\n accountType: store.user_options.accountType,\r\n payerAccount: getPayerAccount(store, props),\r\n}))(InvoiceDetail);\r\n","import InvoiceDetail from \"./InvoiceDetail\";\r\nimport Payment from \"./Payment\";\r\nimport {Link, Redirect} from 'react-router-dom';\r\nimport React, {Component} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport 'react-select/dist/react-select.css';\r\nimport 'react-bootstrap-table/dist/react-bootstrap-table-all.min.css';\r\nimport 'react-activity/dist/react-activity.css';\r\nimport '../../../node_modules/flatpickr/dist/themes/material_blue.css';\r\nimport '../../common/webar_flatpickr.css';\r\nimport {getSelectedPrimaryAccount} from \"./Selectors\";\r\nimport {faAngleDoubleLeft} from \"@fortawesome/free-solid-svg-icons\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\n\r\nexport class PaymentPageComponent extends Component {\r\n\r\n render() {\r\n return <div className=\"container\">\r\n <div className=\"row\">\r\n {/* we duplicate this heading section for response purposes*/}\r\n <div className=\"d-flex flex-wrap d-sm-none\">\r\n <div className=\"col-12\">\r\n <h2 className=\"invoicesHeading\">\r\n Invoices ({\r\n Object.keys(this.props.selectedInvoices).length\r\n }){' '}\r\n </h2>\r\n </div>\r\n <div className=\"col-12\">\r\n <h2 className=\"invoicesHeading\">\r\n Make Payments\r\n </h2>\r\n </div>\r\n <div className=\"col-12\">\r\n <Link\r\n id=\"closeDetails\"\r\n to={\"/invoices\"}\r\n className=\"btn btn-primary buttonColor\"\r\n >\r\n {' '}\r\n <FontAwesomeIcon icon={faAngleDoubleLeft} />Back To List{' '}\r\n </Link>\r\n </div>\r\n </div>\r\n <div className=\"d-none d-sm-flex full-width\">\r\n <div className=\"col-sm-4\">\r\n <h2 className=\"invoicesHeading\">\r\n Invoices ({\r\n Object.keys(this.props.selectedInvoices).length\r\n }){' '}\r\n </h2>\r\n </div>\r\n <div className=\"col-sm-4 text-center\">\r\n <h2 className=\"invoicesHeading\">\r\n Make Payments\r\n </h2>\r\n </div>\r\n <div className=\"col-sm-4 text-right\">\r\n <Link\r\n id=\"closeDetails\"\r\n to={\"/invoices\"}\r\n className=\"btn btn-primary buttonColor\"\r\n >\r\n {' '}\r\n <FontAwesomeIcon icon={faAngleDoubleLeft} /> Back To List{' '}\r\n </Link>\r\n </div>\r\n </div>\r\n </div>\r\n <br/>\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <div className=\"card\" id=\"mainCard\">\r\n <div>\r\n {Object.keys(this.props.selectedInvoices)\r\n .map((key, index) => (\r\n <div key={key}\r\n className=\"checkout-invoice-detail\">\r\n <InvoiceDetail documentId={key}/>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <br/>\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <Payment/>\r\n </div>\r\n </div>\r\n {Object.keys(this.props.selectedInvoices).length === 0 && <Redirect to={\"/invoices\"}/>}\r\n </div>\r\n }\r\n}\r\n\r\nexport default connect((store, props) => ({\r\n selectedInvoices: store.invoice.selected,\r\n secondaryAccounts: store.user_options.secondaryAccounts,\r\n selectedPrimaryAccount: getSelectedPrimaryAccount(store, props),\r\n userCustomerDetails: store.user_options.primaryAccounts,\r\n}))(PaymentPageComponent);\r\n","import React, {Component} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {BootstrapTable, TableHeaderColumn} from 'react-bootstrap-table';\r\nimport InvoiceDetailModel from '../../models/InvoiceDetail';\r\nimport PropTypes from 'prop-types';\r\nimport {amountFormatter, payerFormatter, reasonFormatter, soldToFormatter} from '../../common/invoiceHelpers';\r\nimport {FormattedDate, FormattedMessage} from \"react-intl\";\r\nimport {trimLeadingZeroes} from \"../../utils\";\r\nimport {getSelectedPaymentOption} from \"./Selectors\";\r\nimport {extractLastCardNumbers} from \"../../actions/InvoiceActions\";\r\nimport Logo from \"../Logo\";\r\n\r\nclass PaymentStatus extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n render() {\r\n const statuses = this.props.paymentStatuses;\r\n const paymentStatus = statuses && statuses.length > 0 ? statuses[0] : null;\r\n const success = paymentStatus && paymentStatus.message_type === 'S';\r\n const alertClass = success ? 'alert alert-success' : 'alert alert-danger';\r\n const status = paymentStatus && paymentStatus.message_type ? paymentStatus.message_line_string : '';\r\n const documentNumber = paymentStatus && paymentStatus.document_number_finance ? paymentStatus.document_number_finance : '';\r\n const referenceCode = paymentStatus && paymentStatus.authorization_reference_code ? paymentStatus.authorization_reference_code : '';\r\n const top = 'Top';\r\n\r\n let invoices = Object.keys(this.props.invoices).map((key) => {\r\n let invoice = this.props.invoices[key];\r\n let details = this.props.details[key];\r\n return {\r\n billing_document_number: invoice.billing_document_number,\r\n document_number_finance: invoice.document_number_finance,\r\n open_amount: invoice.open_amount,\r\n amount_to_process: success ? details.amount : '',\r\n sold_to: invoice.soldto_number,\r\n payer: invoice.payer_number,\r\n currency_key: invoice.currency_key,\r\n reason: this.props.cnbsConfig.payment_reason_codes.find(r => r.reason_code === details.reason),\r\n reason_message: details.comment,\r\n zzcustom: invoice.zzcustom,\r\n };\r\n });\r\n\r\n return (\r\n <div>\r\n <div className={alertClass}>\r\n <div className=\"d-none d-print-block float-right\"><Logo/></div>\r\n <strong>Status: </strong> {status} <br/>\r\n <strong><FormattedMessage\r\n id={\"payment_status.document_number\"}/>:</strong> {documentNumber.replace(/^0+/, '')}\r\n <br/>\r\n <strong><FormattedMessage id={\"payment_status.reference_code\"}/>:</strong> {referenceCode.replace(/^0+/, '')}\r\n <br/>\r\n {this.props.paymentCard &&\r\n <React.Fragment><strong><FormattedMessage id={\"payment_status.payment_method_label\"}/>: </strong>\r\n <FormattedMessage\r\n id={\"payment_status.payment_method\"}\r\n values={{\r\n type: this.props.paymentCard.payment_card_type,\r\n numbers: extractLastCardNumbers(this.props.paymentCard.payment_card_token, '-')\r\n }}\r\n /></React.Fragment>} <br/>\r\n <strong><FormattedMessage id={\"payment_status.processed_by\"}/>:</strong> {this.props.currentUser.Login} <br/>\r\n <strong><FormattedMessage id={\"payment_status.processed_date\"}/>:</strong> <FormattedDate value={Date.now()}/>\r\n </div>\r\n <br/>\r\n <div>\r\n <BootstrapTable data={invoices} scrollTop={top} tableHeaderClass=\"payment-status-header\">\r\n <TableHeaderColumn width=\"65\" className=\"headerColumnColor\" headerAlign=\"center\" dataAlign=\"center\"\r\n dataField=\"billing_document_number\" isKey dataFormat={trimLeadingZeroes}>\r\n <FormattedMessage id={\"payment_status.table.document_number_header\"}/>\r\n </TableHeaderColumn>\r\n <TableHeaderColumn width=\"55\" className=\"headerColumnColor\" headerAlign=\"center\" dataAlign=\"right\"\r\n dataField=\"open_amount\" dataFormat={amountFormatter}>\r\n <FormattedMessage id={\"payment_status.table.invoice_amount_header\"}/>\r\n </TableHeaderColumn>\r\n <TableHeaderColumn width=\"55\" className=\"headerColumnColor\" headerAlign=\"center\" dataAlign=\"right\"\r\n dataField=\"amount_to_process\" dataFormat={amountFormatter}>\r\n <FormattedMessage id={\"payment_status.table.paid_header\"}/>\r\n </TableHeaderColumn>\r\n <TableHeaderColumn width=\"90px\" className=\"headerColumnColor\" headerAlign=\"center\"\r\n dataField=\"sold_to\" dataFormat={soldToFormatter}>\r\n <FormattedMessage id={\"payment_status.table.sold_to_header\"}/>\r\n </TableHeaderColumn>\r\n <TableHeaderColumn width=\"90px\" className=\"headerColumnColor\" headerAlign=\"center\"\r\n dataField=\"payer\" dataFormat={payerFormatter}>\r\n <FormattedMessage id={\"payment_status.table.payer_header\"}/>\r\n </TableHeaderColumn>\r\n <TableHeaderColumn width=\"90px\" className=\"headerColumnColor\" headerAlign=\"center\"\r\n dataField=\"payer\" dataFormat={reasonFormatter}>\r\n <FormattedMessage id={\"payment_status.table.partial_payment\"}/>\r\n </TableHeaderColumn>\r\n </BootstrapTable>\r\n <div className={\"row d-print-none\"}>\r\n <div className={\"col-4\"}>\r\n <p className={\"mt-2\"}><FormattedMessage id={\"payment_status.message\"}/>\r\n </p>\r\n <button className={\"btn btn-primary\"} onClick={() => window.print()}>Print</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nPaymentStatus.propTypes = {\r\n selectedInvoices: PropTypes.arrayOf(PropTypes.instanceOf(InvoiceDetailModel)).isRequired,\r\n};\r\n\r\nexport default connect((store, props) => ({\r\n paymentStatuses: store.default.paymentStatuses,\r\n invoices: store.invoice.completed.invoices,\r\n details: store.invoice.completed.details,\r\n paymentCard: getSelectedPaymentOption(store, props),\r\n currentUser: store.default.currentUser,\r\n cnbsConfig: store.app.cnbsConfig,\r\n}))(PaymentStatus);\r\n","import {Route} from 'react-router-dom';\r\nimport React, {Component} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport PaymentStatus from './PaymentStatus';\r\nimport {getSelectedPrimaryAccount} from './Selectors';\r\nimport {faAngleDoubleLeft} from \"@fortawesome/free-solid-svg-icons\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\n\r\nclass PaymentStatusPage extends Component {\r\n\r\n render() {\r\n return (\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className={\"col-12\"}>\r\n <Route render={({history}) => {\r\n return <button\r\n type=\"button\"\r\n id=\"closePaymentStatus\"\r\n className=\"btn btn-primary btn-sm buttonColor float-right d-print-none\"\r\n onClick={() => {\r\n history.goBack()\r\n }}\r\n >\r\n {' '}\r\n <FontAwesomeIcon icon={faAngleDoubleLeft} /> Back{' '}\r\n </button>\r\n }}/>\r\n </div>\r\n </div>\r\n <br/>\r\n <div className=\"row\">\r\n <div className={\"col-12\"}>\r\n <PaymentStatus/>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n }\r\n}\r\n\r\nexport default connect((store, props) => ({\r\n selectedInvoices: store.default.selectedInvoices,\r\n secondaryAccounts: store.user_options.secondaryAccounts,\r\n selectedPrimaryAccount: getSelectedPrimaryAccount(store, props),\r\n userCustomerDetails: store.user_options.primaryAccounts,\r\n}))(PaymentStatusPage);\r\n","import React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux';\r\nimport {Link, withRouter} from 'react-router-dom';\r\nimport moment from 'moment';\r\nimport {BootstrapTable, TableHeaderColumn} from 'react-bootstrap-table';\r\nimport {addInvoiceToSelected, getInvoiceDetail} from '../../actions/InvoiceActions';\r\nimport {\r\n calculateUnitPrice,\r\n formatTotal,\r\n formatColumn,\r\n removePreceedingZero,\r\n getCurrency,\r\n formatMoney\r\n} from '../../common/invoiceHelpers';\r\nimport {trimLeadingZeroes} from \"../../utils\";\r\nimport {canMakePayment} from \"../../PermissionSelectors\";\r\nimport {isCredit} from \"./InvoiceList\";\r\nimport {faAngleLeft} from \"@fortawesome/free-solid-svg-icons\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\n\r\nclass Detail extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n itemData: null,\r\n billingDocumentNumber: '',\r\n documentDate: '',\r\n totalAmount: '',\r\n currencyKey: '',\r\n customerAddress: '',\r\n invoiceRecipientAddress: '',\r\n backPage: '/invoices',\r\n };\r\n this.goBack = this.goBack.bind(this);\r\n this.pay = this.pay.bind(this);\r\n }\r\n\r\n pay(invoice) {\r\n this.props.dispatch(addInvoiceToSelected(invoice));\r\n this.props.history.push(\"/invoices/pay\");\r\n }\r\n\r\n goBack() {\r\n this.props.history.goBack();\r\n }\r\n\r\n componentDidMount() {\r\n const docNumber = this.props.match.params.billingDocumentNumber;\r\n\r\n if (docNumber) {\r\n getInvoiceDetail(this.props.dispatch, docNumber, '01').then((result) => {\r\n if (result) {\r\n if (result.header_data) {\r\n this.setState({billingDocumentNumber: result.header_data.billing_document_number ? result.header_data.billing_document_number : ''});\r\n this.setState({billingDocumentType: result.header_data.billing_document_type ? result.header_data.billing_document_type : ''});\r\n this.setState({documentDate: result.header_data.document_date ? result.header_data.document_date : ''});\r\n this.setState({totalAmount: result.header_data.total_amount ? result.header_data.total_amount : ''});\r\n this.setState({currencyKey: result.header_data.currency_key ? result.header_data.currency_key : ''});\r\n }\r\n if (result.partner_data) {\r\n const customer = result.partner_data.filter(obj => obj.partner_function === 'WE'); //TODO this should be configurable.\r\n const invoiceRecipient = result.partner_data.filter(obj => obj.partner_function === 'RG');\r\n this.setState({customerAddress: customer[0].address_data});\r\n this.setState({invoiceRecipientAddress: invoiceRecipient[0].address_data});\r\n }\r\n if (result.item_data) {\r\n this.setState({itemData: result.item_data});\r\n }\r\n }\r\n }).catch(() => { /* TODO: Catch error */\r\n });\r\n }\r\n }\r\n\r\n formatHeaderDate(headerDate) {\r\n const format = 'MM/DD/YYYY';\r\n const localeDate = moment(headerDate, format);\r\n return localeDate.format(format);\r\n }\r\n\r\n getInvoice() {\r\n }\r\n\r\n render() {\r\n\r\n const {\r\n customerAddress,\r\n invoiceRecipientAddress,\r\n billingDocumentNumber,\r\n billingDocumentType,\r\n documentDate,\r\n itemData,\r\n totalAmount,\r\n currencyKey,\r\n backPage,\r\n } = this.state;\r\n let headerDate = documentDate ? this.formatHeaderDate(documentDate) : '';\r\n const docNumber = billingDocumentNumber ? removePreceedingZero(billingDocumentNumber) : '';\r\n const customerCity = customerAddress ? customerAddress.city : '';\r\n const customerRegion = customerAddress ? customerAddress.region : '';\r\n const customerPostalCode = customerAddress ? customerAddress.postal_code_city : '';\r\n\r\n const invoiceRecipientCity = invoiceRecipientAddress ? invoiceRecipientAddress.city : '';\r\n const invoiceRecipientRegion = invoiceRecipientAddress ? invoiceRecipientAddress.region : '';\r\n const invoiceRecipientCode = invoiceRecipientAddress ? invoiceRecipientAddress.postal_code_city : '';\r\n const currencySymbol = getCurrency(currencyKey);\r\n\r\n let invoice = this.props.invoices.find(i => trimLeadingZeroes(i.billing_document_number) === trimLeadingZeroes(docNumber));\r\n let showDetail = this.state.itemData !== null;\r\n let allowPay = false;\r\n let _isCredit = false;\r\n if (invoice && invoice.zzcustom && invoice.zzcustom.nodetail === \"X\") {\r\n showDetail = false;\r\n\r\n }\r\n if (invoice) {\r\n allowPay = this.props.canMakePayment && !isCredit(invoice);\r\n _isCredit = isCredit(invoice);\r\n }\r\n\r\n return (\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col justify-content-between d-flex\">\r\n <div>\r\n <button className=\"btn button-back\" onClick={this.goBack}>\r\n <FontAwesomeIcon icon={faAngleLeft} className={\"button-back-text\"}/>  \r\n <span className=\"button-back-text\">Back to Invoices</span>\r\n </button>\r\n </div>\r\n <div>\r\n {invoice && allowPay && <button className=\"btn btn-primary btn-lg\" onClick={() => {\r\n this.pay(invoice)\r\n }}>\r\n <span className=\"button-back-text\"><strong>Pay This Invoice</strong></span>\r\n </button>}\r\n </div>\r\n </div>\r\n </div>\r\n <br/>\r\n <div className=\"row align-items-center justify-content-center\">\r\n <span className=\"invoiceNumber\">{`${'Invoice'}${' '}${docNumber}`}</span>\r\n </div>\r\n <br/>\r\n <div className=\"row\">\r\n <div className=\"col-lg-4 col-md-6 col-sm-12 col-12 topPadding\">\r\n <div className=\"row\">\r\n <span\r\n className=\"col-sm-12 col-12 col-form-label text-secondary font-weight-bold nopadding\">Customer</span>\r\n <span className=\"col-form-label col-form-label-sm text-secondary nopadding\">{customerAddress.name}</span>\r\n </div>\r\n <div className=\"row\">\r\n <span\r\n className=\"col-form-label col-form-label-sm text-secondary nopadding\">{customerAddress.street}</span>\r\n </div>\r\n <div className=\"row\">\r\n <span\r\n className=\"col-form-label col-form-label-sm text-secondary nopadding\">{`${customerCity}${' '}${customerRegion}${' '}${customerPostalCode}`}</span>\r\n </div>\r\n </div>\r\n <div className=\"col-lg-4 col-md-6 col-sm-12 col-12 topPadding\">\r\n <div className=\"row\">\r\n <span className=\"col-sm-12 col-12 col-form-label text-secondary font-weight-bold nopadding\">Invoice Recipient</span>\r\n <span\r\n className=\"col-form-label col-form-label-sm text-secondary nopadding\">{invoiceRecipientAddress.name}</span>\r\n </div>\r\n <div className=\"row\">\r\n <span\r\n className=\"col-form-label col-form-label-sm text-secondary nopadding\">{invoiceRecipientAddress.street}</span>\r\n </div>\r\n <div className=\"row\">\r\n <span\r\n className=\"col-form-label col-form-label-sm text-secondary nopadding\">{`${invoiceRecipientCity}${' '}${invoiceRecipientRegion}${' '}${invoiceRecipientCode}`}</span>\r\n </div>\r\n </div>\r\n <div className=\"col-lg-4 col-md-6 col-sm-12 col-12 topPadding\">\r\n <div className=\"row\">\r\n <span\r\n className=\"col-md-2 col-sm-2 col-2 col-form-label text-secondary font-weight-bold nopadding\">Date</span>\r\n <span\r\n className=\"col-md-10 col-sm-10 col-10 col-form-label col-form-label-sm text-secondary nopadding\">{headerDate}</span>\r\n </div>\r\n <div className=\"row\">\r\n <span className=\"col-sm-12 col-12\"> </span>\r\n </div>\r\n <div className=\"row\">\r\n <span className=\"col-sm-12 col-12\"> </span>\r\n </div>\r\n </div>\r\n </div>\r\n <br/>\r\n <br/>\r\n {showDetail && <div className=\"row\">\r\n <div className={\"col-12\"}>\r\n <BootstrapTable data={itemData}\r\n tableHeaderClass={\"cnbs-details-table\"}\r\n tableContainerClass={'wa-bootstrap-table-container custom-table-header'}>\r\n <TableHeaderColumn width=\"65\" className=\"headerColumnColor\" dataAlign=\"left\" dataField=\"item_number\"\r\n dataFormat={formatColumn} isKey>\r\n Item\r\n </TableHeaderColumn>\r\n <TableHeaderColumn width=\"55\" className=\"headerColumnColor\" dataAlign=\"left\" dataField=\"billed_quantity\"\r\n dataFormat={formatColumn}>\r\n Qty\r\n </TableHeaderColumn>\r\n <TableHeaderColumn width=\"55\" className=\"headerColumnColor\" dataAlign=\"left\" dataField=\"material_number\"\r\n dataFormat={formatColumn}>\r\n Article #\r\n </TableHeaderColumn>\r\n <TableHeaderColumn width=\"55\" className=\"headerColumnColor\" dataAlign=\"left\" dataField=\"description\"\r\n dataFormat={formatColumn}>\r\n Description\r\n </TableHeaderColumn>\r\n <TableHeaderColumn width=\"55\" className=\"headerColumnColor\" dataAlign=\"right\" dataField=\"total_amount\"\r\n dataFormat={calculateUnitPrice}>\r\n Unit Price\r\n </TableHeaderColumn>\r\n <TableHeaderColumn width=\"55\" className=\"headerColumnColor\" dataAlign=\"right\" dataField=\"total_amount\"\r\n dataFormat={formatTotal}>\r\n Total\r\n </TableHeaderColumn>\r\n </BootstrapTable>\r\n </div>\r\n </div>\r\n }\r\n <div className=\"row\">\r\n <div className={\"d-flex col-12 justify-content-end\"}>\r\n <span className=\"invoiceTotalLabel\">{`${'Invoice Total: '}`}</span>\r\n  \r\n <span className=\"invoiceTotalValue\">{`${currencySymbol}${formatMoney(totalAmount)}`}</span>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nDetail.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default withRouter(connect((state, props) => ({\r\n invoices: state.default.invoices,\r\n canMakePayment: canMakePayment(state, props)\r\n}))(Detail));\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { toast } from 'react-toastify';\r\nimport Flatpickr from 'react-flatpickr';\r\nimport moment from 'moment';\r\nimport { Link } from 'react-router-dom';\r\nimport * as appConstants from '../../constants/ApplicationConstants';\r\nimport * as validationTypes from '../../constants/ValidationConstants';\r\nimport '../../../node_modules/flatpickr/dist/themes/material_blue.css';\r\nimport '../../common/webar_flatpickr.css';\r\nimport {\r\n getDefaultFilters, getImpersonatedUserId,\r\n getPayerSoldToForInvoiceQuery,\r\n getSelectedPrimaryAccount,\r\n getSelectedSecondaryAccount\r\n} from \"./Selectors\";\r\nimport { getInvoicesAjax, getInvoiceSearchPDF } from \"../../actions/InvoiceActions\";\r\nimport { InvoiceSearchList } from \"./InvoiceList\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faCalendar, faCalendarAlt, faChevronDown, faTimes } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { updateInvoiceListQuery } from \"../../actions/InvoiceActions\";\r\n\r\nclass InvoiceSearch extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n invoices: [],\r\n searched: false,\r\n status: '03',\r\n dueDateFrom: '',\r\n dueDateTo: '',\r\n period: '30',\r\n dateFrom: '',\r\n dateTo: '',\r\n characteristics: '',\r\n characteristicsValue: '',\r\n characteristicsLabel: '',\r\n showDatesDue: false,\r\n showPeriod: true,\r\n showDatesPeriod: false,\r\n showCharacteristicsValue: false,\r\n };\r\n this.onDateChange = this.onDateChange.bind(this);\r\n this.onSelectChange = this.onSelectChange.bind(this);\r\n this.onFindClick = this.onFindClick.bind(this);\r\n this.exportToPdf = this.exportToPdf.bind(this);\r\n this.getSearch = this.getSearch.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n static getDerivedStateFromProps(props, state) {\r\n if (props.primaryAccountIndex !== state.currentPrimaryAccountIndex) {\r\n return {\r\n ...state,\r\n currentPrimaryAccountIndex: props.primaryAccountIndex,\r\n invoices: [],\r\n searched: false,\r\n }\r\n }\r\n return { ...state };\r\n }\r\n\r\n\r\n onDateChange(selectedDates, dateStr, instance) {\r\n let from = '';\r\n let to = '';\r\n if (selectedDates && selectedDates.length > 0) {\r\n from = selectedDates[0] && selectedDates[1] ? moment(selectedDates[0]).format('MM-DD-YYYY') : '';\r\n to = selectedDates[0] && selectedDates[1] ? moment(selectedDates[1]).format('MM-DD-YYYY') : '';\r\n }\r\n const controlId = instance.input.id;\r\n switch (controlId) {\r\n case 'datesDue':\r\n this.setState({ dueDateFrom: from, dueDateTo: to });\r\n break;\r\n case 'datesPeriod':\r\n this.setState({ dateFrom: from, dateTo: to });\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n onSelectChange(name, e) {\r\n let option = e.target.value;\r\n switch (name) {\r\n case 'status':\r\n this.setState({\r\n status: option,\r\n showDatesDue: option && option === '01',\r\n showPeriod: option && option !== '01'\r\n });\r\n break;\r\n case 'period':\r\n this.setState({\r\n period: option,\r\n showDatesPeriod: option && option === '-1',\r\n });\r\n break;\r\n case 'characteristics':\r\n this.setState({\r\n characteristics: option ? option : '',\r\n showCharacteristicsValue: option && option,\r\n characteristicsLabel: option ? e.target.options[e.target.selectedIndex].text : '',\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n onCharacteristicsValueChange = (e) => {\r\n this.setState({ characteristicsValue: e.target.value });\r\n };\r\n\r\n getSearch() {\r\n let {\r\n dueDateFrom, dueDateTo, dateFrom, dateTo,\r\n } = this.state;\r\n const {\r\n status, period, characteristics, characteristicsValue,\r\n } = this.state;\r\n let datesRequired = false;\r\n let filterValueRequired = false;\r\n if (status === '01') {\r\n dateFrom = appConstants.INV_LIST_REQ_BEGIN_DATE;\r\n dateTo = appConstants.INV_LIST_REQ_END_DATE;\r\n if (!dueDateFrom || !dueDateTo) {\r\n toast.warn(validationTypes.DUE_DATES_REQUIRED, { position: toast.POSITION.TOP_RIGHT });\r\n datesRequired = true;\r\n }\r\n } else {\r\n dueDateFrom = '';\r\n dueDateTo = '';\r\n }\r\n if (period === '-1') {\r\n if (!dateFrom || !dateTo) {\r\n toast.warn(validationTypes.DOCUMENT_DATES_REQUIRED, { position: toast.POSITION.TOP_RIGHT });\r\n datesRequired = true;\r\n }\r\n } else {\r\n dateFrom = this.getDateFrom(period);\r\n dateTo = moment(new Date()).format('MM-DD-YYYY');\r\n }\r\n const filters = [];\r\n if (characteristics) {\r\n if (!characteristicsValue) {\r\n toast.warn(validationTypes.CHARACTERISTICS_VALUE_REQUIRED, { position: toast.POSITION.TOP_RIGHT });\r\n filterValueRequired = true;\r\n } else {\r\n const filter = { filter_type: characteristics, value: characteristicsValue };\r\n filters.push(filter);\r\n }\r\n }\r\n \r\n\r\n let { payer_data, soldto_data } = getPayerSoldToForInvoiceQuery(this.props.accountType, this.props.secondaryAccount, this.props.primaryAccount);\r\n let search = {\r\n payer_data,\r\n soldto_data,\r\n search_parameters: {\r\n document_type: '01',\r\n status: status,\r\n date_from: dateFrom,\r\n date_to: dateTo,\r\n due_date_from: dueDateFrom,\r\n due_date_to: dueDateTo,\r\n currency_key: '',\r\n filter: getDefaultFilters(this.props.accountType, this.props.impersonatedUserId).concat(filters),\r\n }\r\n };\r\n if (!datesRequired && !filterValueRequired) {\r\n //InvoiceListRequest\r\n updateInvoiceListQuery(this.props.dispatch, search);\r\n }\r\n\r\n return search;\r\n }\r\n\r\n exportToPdf() {\r\n try {\r\n let search = this.getSearch();\r\n getInvoiceSearchPDF(this.props.dispatch, search);\r\n } catch (e) {\r\n return null;\r\n }\r\n\r\n }\r\n\r\n onFindClick() {\r\n try {\r\n let search = this.getSearch();\r\n getInvoicesAjax(search).then((response) => {\r\n this.setState({ invoices: response.data.document_list, searched: true });\r\n });\r\n } catch (e) {\r\n return null;\r\n }\r\n\r\n // let searchQuery = {\r\n // payer_data,\r\n // soldto_data,\r\n // search_parameters: {\r\n // document_type: '01',\r\n // status: status,\r\n // date_from: fromDate ? fromDate : appConstants.INV_LIST_REQ_BEGIN_DATE,\r\n // date_to: toDate ? toDate : moment(new Date()).format('MM-DD-YYYY'),\r\n // due_date_from: dueDateFrom,\r\n // due_date_to: dueDateTo,\r\n // currency_key: '',\r\n // filter: tempFilter,\r\n // }\r\n // };\r\n }\r\n\r\n getDateFrom = (days) => {\r\n const date = new Date();\r\n date.setDate(date.getDate() - days);\r\n return moment(date).format('MM-DD-YYYY');\r\n }\r\n\r\n render() {\r\n const countOfInvoices = this.state.invoices ? this.state.invoices.length : 0;\r\n return (\r\n <div className=\"container\">\r\n <div className=\"card\">\r\n <div className=\"card-body nopadding\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-11 col-md-11 col-sm-11 col-11\">\r\n <h3 className=\"invoiceSearch col-form-label col-form-label-sm text-secondary\">Invoice Search</h3>\r\n </div>\r\n <div className=\"col-lg-1 col-md-1 col-sm-1 col-1 nopadding\">\r\n <span>\r\n <Link to=\"/invoices\">\r\n <FontAwesomeIcon icon={faTimes} className={\"text-secondary float-right\"} />\r\n </Link>\r\n </span>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-lg-2 col-md-4 col-sm-4 col-4 bottompadding\">\r\n <span className=\"float-right col-form-label col-form-label-sm text-secondary\">Status</span>\r\n </div>\r\n <div className=\"col-lg-4 col-md-8 col-sm-8 col-8 bottompadding customSelect\">\r\n <select\r\n name=\"status\"\r\n className=\"form-control\"\r\n onChange={this.onSelectChange.bind(this, 'status')}>\r\n {this.props.invoiceStatusOptions.map(status => {\r\n return (\r\n <option value={status.value} key={status.value}>\r\n {status.label}\r\n </option>\r\n )\r\n })}\r\n </select>\r\n <FontAwesomeIcon icon={faChevronDown} className={\"select-arrow\"} />\r\n </div>\r\n <div\r\n className={`${'col-lg-2 col-md-4 col-sm-4 col-4 bottompadding'}${' '} ${this.state.showDatesDue ? '' : 'hideControl'}`}>\r\n <span className=\"float-right col-form-label col-form-label-sm text-secondary\">Due</span>\r\n </div>\r\n <div\r\n className={`${'col-lg-4 col-md-8 col-sm-8 col-8 bottompadding'}${' '} ${this.state.showDatesDue ? '' : 'hideControl'}`}>\r\n <FontAwesomeIcon icon={faCalendar} className={\"calendarPosition\"} />\r\n <Flatpickr\r\n className=\"inp form-control\"\r\n id=\"datesDue\"\r\n value={[this.state.dueDateFrom, this.state.dueDateTo]}\r\n onClose={this.onDateChange}\r\n options={{\r\n mode: 'range',\r\n dateFormat: 'm-d-Y',\r\n minDate: new Date(new Date().setDate(new Date().getDate() - 365)),\r\n maxDate: new Date(new Date().setDate(new Date().getDate() + 365)),\r\n }}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div\r\n className={`${'col-lg-2 col-md-4 col-sm-4 col-4 float-right bottompadding'}${' '}${this.state.showPeriod ? '' : 'hideControl'}`}>\r\n <span className=\"float-right col-form-label col-form-label-sm text-secondary\">Period</span>\r\n </div>\r\n <div\r\n className={`${'col-lg-4 col-md-8 col-sm-8 col-8 bottompadding customSelect'}${' '}${this.state.showPeriod ? '' : 'hideControl'}`}>\r\n <select\r\n name=\"period\"\r\n className=\"form-control\"\r\n value={this.state.period}\r\n onChange={this.onSelectChange.bind(this, 'period')}>\r\n {this.props.periodOptions.map(period => {\r\n return (\r\n <option value={period.value} key={period.value}>\r\n {period.label}\r\n </option>\r\n )\r\n })}\r\n </select>\r\n <FontAwesomeIcon icon={faChevronDown} className={\"select-arrow\"} />\r\n </div>\r\n <div\r\n className={`${'col-lg-2 col-md-4 col-sm-4 col-4 bottompadding'}${' '}${this.state.showPeriod && this.state.showDatesPeriod ? '' : 'hideControl'}`}>\r\n <span className=\"float-right col-form-label col-form-label-sm text-secondary\">From</span>\r\n </div>\r\n <div\r\n className={`${'col-lg-4 col-md-8 col-sm-8 col-8 bottompadding'}${' '}${this.state.showPeriod && this.state.showDatesPeriod ? '' : 'hideControl'}`}>\r\n <FontAwesomeIcon icon={faCalendar} className={\"calendarPosition\"} />\r\n <Flatpickr\r\n className=\"inp form-control\"\r\n id=\"datesPeriod\"\r\n value={[this.state.dateFrom, this.state.dateTo]}\r\n onClose={this.onDateChange}\r\n options={{\r\n mode: 'range',\r\n dateFormat: 'm-d-Y',\r\n minDate: new Date(new Date().setDate(new Date().getDate() - 365)),\r\n maxDate: new Date(new Date().setDate(new Date().getDate() + 365)),\r\n }}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-lg-2 col-md-4 col-sm-4 col-4 bottompadding\">\r\n <span className=\"float-right col-form-label col-form-label-sm text-secondary\">Search Options</span>\r\n </div>\r\n <div className=\"col-lg-4 col-md-8 col-sm-8 col-8 bottompadding customSelect\">\r\n <select\r\n name=\"status\"\r\n className=\"form-control\"\r\n onChange={this.onSelectChange.bind(this, 'characteristics')}>\r\n <option selected=\"selected\" value=\"\">Choose Feature</option>\r\n {this.props.characteristicsOptions.map(characterstic => {\r\n return (\r\n <option value={characterstic.value} key={characterstic.value}>\r\n {characterstic.label}\r\n </option>\r\n )\r\n })}\r\n </select>\r\n <FontAwesomeIcon icon={faChevronDown} className={\"select-arrow\"} />\r\n </div>\r\n <div className=\"col-lg-2 col-md-4 col-sm-4 col-4 bottompadding\">\r\n <span className=\"float-right col-form-label col-form-label-sm text-secondary\">\r\n  \r\n </span>\r\n </div>\r\n <div\r\n className={`${'col-lg-4 col-md-8 col-sm-8 col-8 bottompadding'}${' '}${this.state.showCharacteristicsValue ? '' : 'hideControl'}`}>\r\n <input type=\"text\" className=\"form-control control-border\" placeholder={this.state.characteristicsLabel}\r\n value={this.state.characteristicsValue} name=\"invNumbner\"\r\n onChange={this.onCharacteristicsValueChange} />\r\n </div>\r\n </div>\r\n <div className=\"form-row text-center mt-4\">\r\n <div className=\"col-12\">\r\n <button type=\"button\"\r\n className=\"btn btn-primary findButtonColor form-control control-border button-class\"\r\n onClick={this.onFindClick}>Find\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <br />\r\n </div>\r\n </div>\r\n {this.state.invoices && this.state.invoices.length > 0 && <div className=\"row mt-2\">\r\n <div className=\"col-lg-12 col-md-12 col-sm-12 col-12 justify-content-end d-flex\">\r\n <button type=\"button\"\r\n className=\"btn btn-primary btn-sm\"\r\n onClick={this.exportToPdf}>Export to PDF\r\n </button>\r\n </div>\r\n </div>\r\n }\r\n <div className=\"row\">\r\n <div className=\"col-lg-12 col-md-12 col-sm-12 col-12\">\r\n <span className=\"invoiceSearch col-form-label col-form-label-sm text-secondary float-right\">\r\n {this.props.searched && <span>{countOfInvoices} Invoices found!</span>}\r\n </span>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col\">\r\n <InvoiceSearchList invoices={this.state.invoices} isSearch={true} />\r\n </div>\r\n </div>\r\n <br />\r\n <br />\r\n <br />\r\n <br />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nInvoiceSearch.propTypes = {\r\n dispatch: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default connect((store, props) => ({\r\n accountType: store.user_options.accountType,\r\n primaryAccount: getSelectedPrimaryAccount(store, props),\r\n primaryAccountIndex: store.user_options.selectedPrimaryAccountIndex,//getSelectedPrimaryAccountIndex(store, props),\r\n secondaryAccount: getSelectedSecondaryAccount(store, props),\r\n invoiceStatusOptions: store.default.invoiceStatusOptions,\r\n periodOptions: store.default.periodOptions,\r\n characteristicsOptions: store.default.characteristicsOptions,\r\n filter: store.user_options.filter,\r\n impersonatedUserId: getImpersonatedUserId(store, props),\r\n}), null, null, { pure: false })(InvoiceSearch);\r\n","import {useEffect, useRef} from 'react';\r\nimport { connect } from 'react-redux';\r\nimport {getCurrentAccount, getPayerAccount, getSelectedPrimaryAccount, getSelectedSecondaryAccount} from \"./Selectors\";\r\nimport { getPayerDetailsBuilder } from \"../../actions/InvoiceActions\";\r\nimport _ from 'lodash';\r\nimport {getPaymentMethods} from \"../../requests/InvoiceRequests\";\r\nimport {SET_PAYMENT_METHODS} from \"../../constants/ActionTypes\";\r\nimport * as React from \"react\";\r\nimport * as appConstants from \"../../constants/ApplicationConstants\";\r\nimport {usePrevious} from \"../../hooks\";\r\n\r\nexport const PayerDetailsContext = React.createContext([]);\r\n\r\nfunction PayerDetailsDataManager(props) {\r\n const selectedPayer = props.accountType === appConstants.SOLD_TO_COMPARE ? props.selectedSecondaryAccount : props.selectedPrimaryAccount;\r\n const prevAmount = usePrevious({selectedPayer});\r\n \r\n useEffect(() => {\r\n if(props.selectedPrimaryAccount !== null && !_.isEqual(prevAmount.selectedPayer, selectedPayer)){\r\n getPayerDetailsBuilder(props.dispatch, props.selectedPrimaryAccount, props.selectedSecondaryAccount, props.accountType);\r\n getPaymentMethods(props.currentAccount).then((paymentMethods) => {\r\n props.dispatch({ type: SET_PAYMENT_METHODS , payload: paymentMethods }, () => {});\r\n });\r\n }\r\n }, [\r\n props.selectedSecondaryAccount,\r\n props.selectedPrimaryAccount,\r\n props.accountType,\r\n props.currentAccount,\r\n ]);\r\n\r\n return <PayerDetailsContext.Provider value={true}>\r\n {props.render}\r\n </PayerDetailsContext.Provider>;\r\n}\r\n\r\nexport default connect((state, props) => {\r\n return {\r\n selectedPrimaryAccount: getSelectedPrimaryAccount(state, props),\r\n selectedSecondaryAccount: getSelectedSecondaryAccount(state, props),\r\n accountType: state.user_options.accountType,\r\n currentAccount: getCurrentAccount(state, props),\r\n }\r\n})(PayerDetailsDataManager);\r\n","import axios from '../axios';\r\nimport {GET_USER_LIST, EXPORT_USERS} from \"../constants/ApiConstants\";\r\nimport * as apiTypes from \"../constants/ApiConstants\";\r\nimport {requestErrored, updateState} from \"../actions/CommonActions\";\r\nimport * as types from \"../constants/ActionTypes\";\r\nimport {setSelectedSoldTos} from \"../actions/InvoiceActions\";\r\nimport * as validationTypes from \"../constants/ValidationConstants\";\r\nimport {saveAs} from 'file-saver';\r\n\r\nexport function getUserList(status = \"\", profile = \"\", search = \"\", page = 1) {\r\n return axios.get(GET_USER_LIST, {params: {status, profile, search, page}}).then((response) => {\r\n return {\r\n data: response.data,\r\n total: response.headers['x-page-total-items']\r\n };\r\n });\r\n}\r\n\r\n\r\nexport function exportUserList() {\r\n return axios.get(EXPORT_USERS, {responseType: 'blob', }).then((response) => {\r\n saveAs(\r\n response.data,\r\n \"Users.xlsx\"\r\n );\r\n });\r\n}\r\n\r\nexport function getUser(userId) {\r\n return () => {\r\n return axios.get(`/api/users/${userId}`).then((response) => {\r\n return response.data;\r\n });\r\n }\r\n}\r\n\r\nexport function saveUser(user) {\r\n user.userProfileId = parseInt(user.userProfileId);\r\n user.profile = null; // passing a profile object will cause problems on .net side\r\n if (user.UserId) {\r\n return axios.put(`/api/users/${user.UserId}`, user).then((response) => {\r\n return response.data;\r\n });\r\n } else {\r\n return axios.post('/api/users', user).then((response) => {\r\n return response.data;\r\n });\r\n }\r\n}\r\n\r\n// export function getProfiles() {\r\n// return axios.get('/api/profiles').then((response) => {\r\n// return response.data;\r\n// })\r\n// }\r\n\r\nfunction updateUserSapAccount(userId, account) {\r\n return axios.put(`/api/users/${userId}/accounts/${account.AccountId}`, account).then((response) => {\r\n return response.data;\r\n });\r\n}\r\n\r\nfunction createUserSapAccount(userId, account) {\r\n return axios.post(`/api/users/${userId}/accounts`, account).then((response) => {\r\n return response.data;\r\n });\r\n}\r\n\r\nexport function deleteUserSapAccount(userId, account) {\r\n return axios.delete(`/api/users/${userId}/accounts/${account.AccountId}`).then((response) => {\r\n return response.data;\r\n });\r\n}\r\n\r\nexport function saveUserSapAccount(userId, account) {\r\n if (account.AccountId && account.AccountId > 0) {\r\n return updateUserSapAccount(userId, account);\r\n }\r\n return createUserSapAccount(userId, account);\r\n}\r\n\r\nexport function getUserSapAccounts(userId) {\r\n return axios.get(`/api/users/${userId}/accounts`).then((response) => {\r\n return response.data;\r\n });\r\n}\r\n\r\nexport function getUserByInvite(invite) {\r\n return axios.get(`/api/users/invite/${invite}`).then((response) => {\r\n return response.data;\r\n });\r\n}\r\n\r\nexport function getUserByPasswordReset(id) {\r\n return axios.get(`/api/users/password-reset/${id}`).then((response) => {\r\n return response.data;\r\n });\r\n}\r\n\r\nexport function completeRegistration(inviteId, password, confirmPassword) {\r\n return axios.post(`/api/token/complete-registration`, {inviteId, password, confirmPassword}).then((response) => {\r\n return response.data;\r\n });\r\n}\r\n\r\nexport function passwordResetRequest(requestForm) {\r\n return axios.post(`/api/users/password-reset-request`, requestForm).then((response) => {\r\n return response.data;\r\n });\r\n}\r\n\r\nexport function completePasswordReset(id, password, confirmPassword) {\r\n return axios.post(`/api/token/complete-password-reset`, {id, password, confirmPassword}).then((response) => {\r\n return response.data;\r\n });\r\n}\r\n\r\nexport function getExclusionList(userId){\r\n return axios.get(`/api/users/${userId}/exclusions`).then((response) => {\r\n if(response.status === \"404\"){\r\n throw(\"Cold not find exclusion list.\");\r\n }\r\n return response.data;\r\n });\r\n}\r\n\r\nexport function updateExclusionList(userId, list){\r\n return axios.put(`/api/users/${userId}/exclusions`, list).then((response) => {\r\n return response.data;\r\n });\r\n}\r\n\r\nexport function validateAccount(data){\r\n return axios.put(`/api/users/account/validate`, data).then((response) =>{\r\n return response.data; \r\n });\r\n}\r\n\r\n\r\nexport function getUserAccounts() {\r\n return axios.get(`/api/token/auto-register/accounts`).then((response) => {\r\n return response.data;\r\n })\r\n}\r\n\r\nexport function registerUser(form){\r\n return axios.post(`/api/token/auto-register/user`, form).then((response) => {\r\n return response.data;\r\n });\r\n}\r\nexport function confirmAccount(token){\r\n return axios.post(`/api/token/auto-register/user-confirm/${token}`,{}).then((response) => {\r\n return response.data;\r\n })\r\n}\r\n\r\nexport function deleteUser(userId){\r\n return axios.delete(`/api/users/${userId}`,{}).then((response) => {\r\n return response.data;\r\n })\r\n}\r\n\r\nexport function resendConfirmation(email){\r\n return axios.put(`/api/token/auto-register/resend-confirmation`,{}).then((response) => {\r\n return response.data;\r\n });\r\n}\r\n","import axios from \"../axios\";\r\n\r\nexport function submitRegistration(registration) {\r\n return axios.post(`/api/register`, registration).then((response) => {\r\n return response.data;\r\n });\r\n}\r\n\r\nexport function getRegistrationRequests(registration) {\r\n return axios.get(`/api/register`).then((response) => {\r\n return response.data;\r\n });\r\n}\r\n\r\nexport function getRegistrationRequestById(id) {\r\n return axios.get(`/api/register/${id}`).then((response) => {\r\n return response.data;\r\n });\r\n}\r\n\r\nexport function markRegistrationCompleted(id) {\r\n return axios.post(`/api/register/${id}/completed`).then((response) => {\r\n return response.data;\r\n });\r\n}\r\n","import React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {Formik} from \"formik\";\r\nimport {BootstrapError, BootstrapField} from \"../../helpers/Field\";\r\nimport * as yup from 'yup';\r\nimport {connect} from \"react-redux\";\r\n\r\nlet schema = yup.object().shape({\r\n PrimaryAcct: yup.string().matches(/^[a-zA-Z0-9]*$/, \"Invalid characters\").required(\"Required\"),\r\n AccountTypeId: yup.number().required(\"Required\"),\r\n SalesOrganization: yup.string().matches(/^[a-zA-Z0-9]*$/, \"Invalid characters\").required(\"Required\"),\r\n CompanyCode: yup.string().matches(/^[a-zA-Z0-9]*$/, \"Invalid characters\").required(\"Required\"),\r\n //Division: yup.string().matches(/^[a-zA-Z0-9]*$/, \"Invalid characters\").required(\"Required\"),\r\n //DistributionChannel: yup.string().matches(/^[a-zA-Z0-9]*$/, \"Invalid characters\").required(\"Required\")\r\n});\r\n\r\nclass ManageUserSapAccount extends Component {\r\n\r\n render() {\r\n let _salesOrgs = {};\r\n this.props.salesOrgs.filter(_ => _.active && _.active === \"X\").forEach(_ => _salesOrgs[_.sales_organization] = _.sales_organization);\r\n _salesOrgs = Object.keys(_salesOrgs);\r\n \r\n \r\n // Formik needs properties as empty strings instead of null.\r\n for (let propertyName in this.props.account) {\r\n if (this.props.account[propertyName] === null) {\r\n this.props.account[propertyName] = \"\"\r\n }\r\n }\r\n return (\r\n <div>\r\n <Formik\r\n validationSchema={schema}\r\n onSubmit={(values, bag) => {\r\n bag.setSubmitting(true);\r\n this.props.saveAccount(values).then(() => {\r\n bag.setSubmitting(false);\r\n })\r\n }}\r\n initialValues={this.props.account}\r\n enableReinitialize={true}\r\n render={(props) =>\r\n <form onSubmit={props.handleSubmit}>\r\n <div className=\"row\">\r\n <div className=\"col-6\">\r\n <div className=\"form-group d-flex flex-row\">\r\n <label className=\"wa-label col-form-label pr-2\">Account</label>\r\n <div className=\"flex-grow-1\">\r\n <BootstrapField type=\"text\" name=\"PrimaryAcct\" placeholder={\"Account\"}/>\r\n <BootstrapError name=\"PrimaryAcct\"/>\r\n </div>\r\n </div>\r\n {this.props.accountTypes.length > 0 && <div className=\"form-group d-flex flex-row\">\r\n <label className=\"wa-label col-form-label pr-2 text-nowrap\">Account Type</label>\r\n <div className=\"flex-grow-1\">\r\n <BootstrapField component=\"select\" name=\"AccountTypeId\">\r\n <option value=\"\" disabled selected=\"selected\">Account Type</option>\r\n {this.props.accountTypes.map(accountType => {\r\n return (\r\n <option value={accountType.AccountTypeId} key={accountType.AccountTypeId}>\r\n {accountType.AccountTypeValue}\r\n </option>\r\n )\r\n })}\r\n </BootstrapField>\r\n <BootstrapError name=\"AccountTypeId\"/>\r\n </div>\r\n </div>}\r\n <div className=\"form-group d-flex flex-row\">\r\n <label className=\"wa-label col-form-label pr-2 text-nowrap\">Company Code</label>\r\n <div className=\"flex-grow-1\">\r\n <BootstrapField component=\"select\" name=\"CompanyCode\">\r\n <option value=\"\" disabled selected=\"selected\">Company Code</option>\r\n {this.props.companyCodes.filter(_ => _.active && _.active === \"X\").map(_ => {\r\n return (\r\n <option value={_.company_code} key={_.company_code}>\r\n {_.company_code}\r\n </option>\r\n )\r\n })}\r\n </BootstrapField>\r\n <BootstrapError name=\"CompanyCode\"/>\r\n </div>\r\n </div>\r\n <div className=\"form-group d-flex flex-row\">\r\n <label className=\"wa-label col-form-label pr-2 text-nowrap\">Sales Organization</label>\r\n <div className=\"flex-grow-1\">\r\n <BootstrapField component=\"select\" name=\"SalesOrganization\">\r\n <option value=\"\" disabled selected=\"selected\">Account Type</option>\r\n {_salesOrgs.map(sales_organization => {\r\n return (\r\n <option value={sales_organization} key={sales_organization}>\r\n {sales_organization}\r\n </option>\r\n )\r\n })}\r\n </BootstrapField>\r\n <BootstrapError name=\"SalesOrganization\"/>\r\n </div>\r\n </div>\r\n {/* Schindler wanted these hidden. */}\r\n {/*<div className=\"form-group d-flex flex-row\">*/}\r\n {/*<label className=\"wa-label col-form-label pr-2 text-nowrap\">Distribution Channel</label>*/}\r\n {/*<div className=\"flex-grow-1\">*/}\r\n {/*<BootstrapField type=\"text\" name=\"distributionChannel\" placeholder={\"Distribution Channel\"}/>*/}\r\n {/*<BootstrapError name=\"distributionChannel\"/>*/}\r\n {/*</div>*/}\r\n {/*</div>*/}\r\n {/*<div className=\"form-group d-flex flex-row\">*/}\r\n {/*<label className=\"wa-label col-form-label pr-2 text-nowrap\">Company Division</label>*/}\r\n {/*<div className=\"flex-grow-1\">*/}\r\n {/*<BootstrapField type=\"text\" name=\"division\" placeholder={\"Company Division\"}/>*/}\r\n {/*<BootstrapError name=\"division\"/>*/}\r\n {/*</div>*/}\r\n {/*</div>*/}\r\n </div>\r\n </div>\r\n <div className=\"row justify-content-center\">\r\n <button type=\"submit\" className={\"btn btn-primary\"}>Save</button>\r\n </div>\r\n </form>\r\n }/>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nManageUserSapAccount.propTypes = {\r\n account: PropTypes.object,\r\n saveAccount: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default connect((store, props) => ({\r\n salesOrgs: store.app.config.sap.data.sales_area_data,\r\n companyCodes: store.app.config.sap.data.company_codes,\r\n}))(ManageUserSapAccount);\r\n","import React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ManageUserSapAccount from \"./ManageUserSapAccount\";\r\nimport {saveUserSapAccount} from \"../../requests/UserRequests\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome/index.es\";\r\nimport {connect} from \"react-redux\";\r\n\r\nclass LinkedSapAccounts extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n account: null,\r\n accounts: [],\r\n };\r\n this.addNewAccount = this.addNewAccount.bind(this);\r\n this.editAccount = this.editAccount.bind(this);\r\n this.deleteAccount = this.deleteAccount.bind(this);\r\n this.close = this.close.bind(this);\r\n }\r\n \r\n componentDidMount() {\r\n if(this.props.accounts){\r\n this.setState({\r\n accounts: this.props.accounts\r\n });\r\n } else {\r\n this.refreshAccounts();\r\n }\r\n }\r\n\r\n addNewAccount() {\r\n let accountType = \"\";\r\n if(this.props.accountTypes.length === 1){\r\n accountType = this.props.accountTypes[0].accountTypeId;\r\n }\r\n this.setState({\r\n account: {\r\n primaryAcct: '',\r\n accountTypeId: accountType,\r\n salesOrganization: this.props.defaults.account.sales_organization,\r\n companyCode: '',\r\n division: this.props.defaults.account.division,\r\n distributionChannel: this.props.defaults.account.distribution_channel,\r\n }\r\n });\r\n }\r\n\r\n close() {\r\n this.setState({account: null});\r\n }\r\n\r\n refreshAccounts() {\r\n this.props.getAccounts(this.props.userId).then(accounts => {\r\n this.setState({accounts: accounts});\r\n })\r\n }\r\n\r\n editAccount(account) {\r\n this.setState({account: account});\r\n }\r\n\r\n deleteAccount(account) {\r\n this.props.deleteAccount(this.props.userId, account).then(() => {\r\n if (this.state.account && (this.state.account.AccountId === account.AccountId)) {\r\n this.setState({account: null});\r\n }\r\n this.refreshAccounts();\r\n });\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n <div className=\"card\">\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <div className=\"row justify-content-between\">\r\n <h3>Linked SAP Accounts</h3>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row no-gutters\">\r\n <div className=\"col-12 col-md-6\">\r\n {this.state.accounts.map((account) =>\r\n <div key={account.AccountId} className={\"row\"}>\r\n <div className=\"col-6\">\r\n {account.PrimaryAcct}-{account.CompanyCode}-{account.SalesOrganization}-{account.DistributionChannel}-{account.Division}\r\n </div>\r\n <div className=\"col-6 flex-row d-flex\">\r\n <span role={\"button\"} className={\"font-button-icon\"}\r\n onClick={() => this.deleteAccount(account)}><FontAwesomeIcon\r\n icon={\"trash\"}/> Delete</span>\r\n <span role={\"button\"} className={\"font-button-icon\"}\r\n onClick={() => this.editAccount(account)}><FontAwesomeIcon icon={\"edit\"}/> Edit</span>\r\n </div>\r\n </div>\r\n )}\r\n <div className=\"d-flex justify-content-center m-4\">\r\n <button className=\"btn btn-primary\" onClick={this.addNewAccount}>Add Account</button>\r\n </div>\r\n </div>\r\n <div className=\"col-12 col-md-6\">\r\n {this.state.account && <div className={\"modify-section\"}>\r\n <span className={\"float-right font-button-icon top-right\"} onClick={this.close}>\r\n <FontAwesomeIcon icon={\"times\"}/>\r\n </span>\r\n <ManageUserSapAccount account={this.state.account} accountTypes={this.props.accountTypes}\r\n saveAccount={(account) => {\r\n return saveUserSapAccount(this.props.userId, account).then(() => {\r\n this.refreshAccounts();\r\n this.setState({account: null});\r\n });\r\n }}/></div>}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nLinkedSapAccounts.propTypes = {\r\n userId: PropTypes.number.isRequired,\r\n getAccounts: PropTypes.func.isRequired,\r\n deleteAccount: PropTypes.func.isRequired,\r\n};\r\nLinkedSapAccounts.defaultProps = {\r\n accountTypes: [],\r\n};\r\nexport default connect(state => ({\r\n defaults: state.app.config.defaults\r\n })\r\n)(LinkedSapAccounts);\r\n","import React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\n\r\nclass ExclusionItem extends Component {\r\n \r\n constructor(props){\r\n super(props); \r\n \r\n this._deleteItem = this._deleteItem.bind(this);\r\n }\r\n \r\n _deleteItem(){\r\n this.props.onDelete(this.props.index); \r\n }\r\n \r\n render() {\r\n return (\r\n <div className=\"row no-gutters\">\r\n <div className=\"col-4\">\r\n <span>{this.props.value}</span>\r\n </div> \r\n <div className=\"col-4 flex\">\r\n <div className={\"payment-type-actions\"}>\r\n <span role={\"button\"} className={\"font-button-icon\"} onClick={this._deleteItem}>\r\n <FontAwesomeIcon icon={\"trash\"} /> Delete\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nExclusionItem.propTypes = {\r\n value: PropTypes.string.isRequired,\r\n index: PropTypes.number.isRequired,\r\n onDelete: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default ExclusionItem;","import React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nclass AddExclusionItem extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n inputValue: \"\",\r\n };\r\n\r\n this._updateInput = this._updateInput.bind(this);\r\n this._submit = this._submit.bind(this);\r\n }\r\n\r\n _updateInput(event) {\r\n this.setState({\r\n inputValue: event.target.value,\r\n });\r\n }\r\n\r\n _submit(event) {\r\n event.preventDefault();\r\n if(this.state.inputValue.length > 0){\r\n this.props.onSubmit(this.state.inputValue);\r\n this.setState({\r\n inputValue: \"\",\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <form onSubmit={this._submit}>\r\n <div className=\"row no-gutters\">\r\n <div className=\"col-6 col-md-10\">\r\n <div className=\"input-group input-group-sm mb-1\">\r\n <input type=\"text\" className=\"form-control\" placeholder=\"\"\r\n aria-label=\"account number\" aria-describedby=\"basic-addon2\"\r\n onChange={this._updateInput}\r\n value={this.state.inputValue}\r\n />\r\n <div className=\"input-group-append\">\r\n <button className=\"btn btn-primary\" type=\"submit\" onClick={this._submit}>Add</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n );\r\n }\r\n}\r\n\r\nAddExclusionItem.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default AddExclusionItem;","import React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ExclusionItem from \"./ExclusionItem\";\r\nimport AddExclusionItem from \"./AddExclusionItem\";\r\nimport {toast} from \"react-toastify\";\r\nimport {refreshInvoices} from \"../../../reducers/InvoiceReducer\";\r\nimport {getImpersonatedUserId} from \"../../invoice/Selectors\";\r\nimport {connect} from \"react-redux\";\r\n\r\nclass ExclusionList extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n exclusions: [],\r\n };\r\n\r\n \r\n this._addExclusion = this._addExclusion.bind(this);\r\n this._removeExclusion = this._removeExclusion.bind(this);\r\n }\r\n \r\n componentDidMount() {\r\n this.props.getExclusions(this.props.userId).then((list) => {\r\n this.setState({\r\n exclusions: list\r\n });\r\n });\r\n }\r\n\r\n _addExclusion(value) {\r\n let newList = this.state.exclusions.slice(0);\r\n newList.push(value);\r\n this._updateExclusionList(newList);\r\n }\r\n \r\n _updateExclusionList(newList){\r\n this.props.updateExclusions(this.props.userId, newList).then((list) => {\r\n if(typeof list.status !== 'undefined' && list.status.message_type === \"E\" ){\r\n toast.error(list.status.message_line_string, { position: toast.POSITION.TOP_RIGHT });\r\n } else {\r\n this.setState({\r\n exclusions: list\r\n });\r\n this._refreshInvoices();\r\n }\r\n });\r\n \r\n }\r\n \r\n _refreshInvoices(){\r\n if(this.props.userId === this.props.impersonatedUserId){\r\n this.props.dispatch(refreshInvoices())\r\n } \r\n }\r\n\r\n _removeExclusion(index) {\r\n let newList = this.state.exclusions.slice(0);\r\n newList.splice(index, 1);\r\n this._updateExclusionList(newList);\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"card\">\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <div className=\"row justify-content-between\">\r\n <h3>Exclusion List</h3>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row no-gutters\">\r\n <div className=\"col-12 col-md-4\">\r\n <div>\r\n {this.state.exclusions && this.state.exclusions.map((value, i, arr) => {\r\n return <React.Fragment key={`${value}-${i}`}>\r\n <ExclusionItem value={value} index={i} onDelete={this._removeExclusion}/>\r\n {i < arr.length &&\r\n <div className={\"dropdown-divider\"}/>\r\n }\r\n </React.Fragment>\r\n })}\r\n <AddExclusionItem onSubmit={this._addExclusion}/>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nExclusionList.propTypes = {\r\n userId: PropTypes.number.isRequired,\r\n getExclusions: PropTypes.func.isRequired,\r\n updateExclusions: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default connect((store, props) => ({\r\n impersonatedUserId: getImpersonatedUserId(store)\r\n}))(ExclusionList);\r\n\r\n\r\n","import axios from '../axios';\r\nimport {GET_ACCOUNT_TYPE_LIST, GET_PRIMARY_ACCOUNT_TYPE_LIST} from \"../constants/ApiConstants\";\r\n\r\nexport function getAccountTypes() {\r\n return axios.get(GET_ACCOUNT_TYPE_LIST).then((response) => response.data);\r\n}\r\n\r\nexport function getPrimaryAccountTypes() {\r\n return axios.get(GET_PRIMARY_ACCOUNT_TYPE_LIST).then((response) => response.data);\r\n}","import React, {Component} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {getUserCustomers, ResetPassword as ResetPasswordMethod} from '../../actions/UserActions';\r\nimport LinkedSapAccounts from \"../user-management/LinkedSapAccounts\";\r\nimport {\r\n deleteUserSapAccount,\r\n getExclusionList,\r\n getUserSapAccounts,\r\n updateExclusionList\r\n} from \"../../requests/UserRequests\";\r\nimport ExclusionList from \"../user-management/exclusions/ExclusionList\";\r\nimport {canManageOwnSAPAccounts, canManageUsers} from \"../../PermissionSelectors\";\r\nimport {getAccountTypes} from \"../../requests/AccountTypeRequests\";\r\nimport {updateAccountTypes} from \"../../actions/InvoiceActions\";\r\n\r\nclass ResetPassword extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n currentPassword: '',\r\n newPassword: '',\r\n confirmNewPassword: '',\r\n currentPasswordValid: true,\r\n newPasswordValid: true,\r\n confirmNewPasswordValid: true,\r\n };\r\n this.passwordChange = this.passwordChange.bind(this);\r\n this.onResetClick = this.onResetClick.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n getAccountTypes().then((accountTypes) => {\r\n updateAccountTypes(this.props.dispatch, accountTypes);\r\n });\r\n }\r\n\r\n onResetClick() {\r\n if (this.validateFields()) {\r\n ResetPasswordMethod(this.props.dispatch, this.state.currentPassword, this.state.newPassword, this.state.confirmNewPassword);\r\n }\r\n }\r\n\r\n validateFields() {\r\n let isModelStateValid = false;\r\n this.setState({currentPasswordValid: this.state.currentPassword !== ''});\r\n this.setState({newPasswordValid: this.state.newPassword !== ''});\r\n this.setState({confirmNewPasswordValid: this.state.confirmNewPassword !== ''});\r\n\r\n if (this.state.currentPassword !== '' && this.state.newPassword !== '' && this.state.confirmNewPassword !== '') {\r\n isModelStateValid = true;\r\n }\r\n return isModelStateValid;\r\n }\r\n\r\n passwordChange = (e) => {\r\n if (e.currentTarget.name === 'currentPassword') {\r\n this.setState({currentPassword: e.target.value});\r\n this.setState({currentPasswordValid: e.target.value !== ''});\r\n }\r\n if (e.currentTarget.name === 'newPassword') {\r\n this.setState({newPassword: e.target.value});\r\n this.setState({newPasswordValid: e.target.value !== ''});\r\n }\r\n if (e.currentTarget.name === 'confirmNewPassword') {\r\n this.setState({confirmNewPassword: e.target.value});\r\n this.setState({confirmNewPasswordValid: e.target.value !== ''});\r\n }\r\n }\r\n\r\n errorClass = valid => (valid ? '' : 'invalid');\r\n\r\n render() {\r\n const {\r\n currentPasswordValid,\r\n newPasswordValid,\r\n confirmNewPasswordValid,\r\n } = this.state;\r\n return (\r\n <div className=\"container\">\r\n <div className={\"row\"}>\r\n <div className={\"col\"}>\r\n <div className={\"card\"}>\r\n <div className={\"row\"}>\r\n <div className=\"col-lg-4 col-md-6 col-sm-12\">\r\n <h4>Reset Password</h4>\r\n <div className=\"form-group\">\r\n <label className=\"col-form-label-sm text-secondary\" htmlFor=\"firstName\">Confirm your Current\r\n Password</label>\r\n <input type=\"password\" className={`form-control ${this.errorClass(currentPasswordValid)}`}\r\n name=\"currentPassword\" placeholder=\"Current Password\" onChange={this.passwordChange}/>\r\n {currentPasswordValid ? '' : <h6 className=\"invalid-Text\">\r\n <small>Required.</small>\r\n </h6>}\r\n </div>\r\n <div className=\"form-group\">\r\n <label className=\"col-form-label-sm text-secondary\" htmlFor=\"lastName\">Enter your new\r\n password</label>\r\n <input type=\"password\" className={`form-control ${this.errorClass(newPasswordValid)}`}\r\n name=\"newPassword\"\r\n placeholder=\"New Password\"\r\n onChange={this.passwordChange}/>\r\n {newPasswordValid ? '' : <h6 className=\"invalid-Text\">\r\n <small>Required.</small>\r\n </h6>}\r\n </div>\r\n <div className=\"form-group\">\r\n <input type=\"password\" className={`form-control ${this.errorClass(confirmNewPasswordValid)}`}\r\n name=\"confirmNewPassword\" placeholder=\"Confirm new password\" onChange={this.passwordChange}/>\r\n {confirmNewPasswordValid ? '' : <h6 className=\"invalid-Text\">\r\n <small>Required.</small>\r\n </h6>}\r\n </div>\r\n <div className=\"form-group text-center\">\r\n <button className=\"btn btn-primary buttonColor col-lg-6 col-md-6 col-sm-6\"\r\n onClick={this.onResetClick}>\r\n Reset\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n {this.props.canManageOwnSAPAccounts && <React.Fragment>\r\n <div className=\"row mt-4\">\r\n <div className={\"col-12\"}>\r\n <LinkedSapAccounts userId={this.props.userId}\r\n getAccounts={(userId) => {\r\n getUserCustomers(this.props.dispatch, \"\", false);\r\n return getUserSapAccounts(userId);\r\n }} deleteAccount={deleteUserSapAccount}\r\n accountTypes={this.props.accountTypes}/>\r\n </div>\r\n </div>\r\n\r\n {this.props.primaryAccountTypeId === 3 && <div className=\"row mt-4\">\r\n <div className={\"col-12\"}>\r\n {this.props.canManageUsers &&\r\n <ExclusionList getExclusions={(userId) => {\r\n getUserCustomers(this.props.dispatch, \"\", false);\r\n return getExclusionList(userId)\r\n }} updateExclusions={updateExclusionList}\r\n userId={this.props.userId}/>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </React.Fragment>}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default connect((store, props) => ({\r\n userId: store.default.currentUser.UserId,\r\n primaryAccountTypeId: store.default.currentUser.PrimaryAccountTypeId,\r\n accountTypes: store.default.accountTypes,\r\n canManageOwnSAPAccounts: canManageOwnSAPAccounts(store, props),\r\n canManageUsers: canManageUsers(store, props),\r\n}))(ResetPassword);\r\n","import React, {Component} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport PayerSelect from \"../invoice/PayerSelect\";\r\nimport ManagePaymentMethods from \"./manage-payment-methods/ManagePaymentMethods\";\r\nimport * as appConstants from \"../../constants/ApplicationConstants\";\r\n\r\nexport class AccountPaymentPage extends Component {\r\n\r\n render() {\r\n const isSoldToAccount = this.props.accountType === appConstants.SOLD_TO_COMPARE;\r\n return <div className={'container'}>\r\n <div className=\"row mb-4\">\r\n <div className=\"col-md-6\">\r\n {isSoldToAccount ? <PayerSelect name={'payer_option'}/>: ''}\r\n </div>\r\n </div>\r\n <div className=\"card\">\r\n <ManagePaymentMethods alwaysSaveOnFile={true}/>\r\n </div>\r\n </div>\r\n }\r\n}\r\n\r\nexport default connect((state, props) => {\r\n return {\r\n accountType: state.user_options.accountType,\r\n }\r\n})(AccountPaymentPage);\r\n","import React from \"react\";\r\nimport { getUserCustomers, mapPrimaryAccountType } from \"../../actions/UserActions\";\r\nimport { connect } from \"react-redux\";\r\nimport { updateState } from \"../../actions/CommonActions\";\r\nimport * as types from \"../../constants/ActionTypes\";\r\nimport { clearSessionPaymentMethods } from \"../../reducers/PaymentReducer\";\r\nimport { canImpersonate } from \"../../PermissionSelectors\";\r\n\r\nclass UserImpersonate extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n user: this.props.user,\r\n isChecked: false\r\n };\r\n this.onCheckClick = this.onCheckClick.bind(this);\r\n }\r\n componentDidMount() {\r\n const impersonatedUserId = this.props.impersonatedUserId;\r\n const currentRowUserId = this.state.user.UserId;\r\n if (impersonatedUserId && impersonatedUserId === currentRowUserId) {\r\n this.setState({ isChecked: true });\r\n }\r\n }\r\n componentWillReceiveProps(nextProps) {\r\n const currentRowUser = this.state.user;\r\n if (this.props !== nextProps) {\r\n if (currentRowUser.UserId !== nextProps.impersonatedUserId) {\r\n this.setState({ isChecked: false });\r\n }\r\n }\r\n }\r\n onCheckClick = () => {\r\n const currentUser = this.state.user;\r\n if (this.state.user.UserId !== this.props.impersonatedUserId) {\r\n getUserCustomers(this.props.dispatch, this.state.user.UserId);\r\n updateState(this.props.dispatch, types.SET_ACCOUNT_TYPE, mapPrimaryAccountType(currentUser.PrimaryAccountTypeId));\r\n this.setState({ isChecked: true });\r\n } else {\r\n getUserCustomers(this.props.dispatch, \"\");\r\n updateState(this.props.dispatch, types.SET_ACCOUNT_TYPE, mapPrimaryAccountType(this.props.currentUser.PrimaryAccountTypeId));\r\n this.setState({ isChecked: false });\r\n }\r\n this.props.dispatch(clearSessionPaymentMethods());\r\n };\r\n\r\n render() {\r\n return (\r\n <div>\r\n {this.props.canImpersonate && <input\r\n className=\"rounded-circle\"\r\n type=\"checkbox\"\r\n onChange={this.onCheckClick}\r\n checked={this.state.isChecked}\r\n id={this.state.user.UserId}\r\n name={this.state.user.UserId}\r\n disabled={this.state.user.Accounts.length <= 0}\r\n />}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default connect((state, props) => ({\r\n impersonatedUserId: state.user_options.impersonatedUserId,\r\n currentUser: state.default.currentUser,\r\n canImpersonate: canImpersonate(state, props)\r\n}))(UserImpersonate);\r\n","import React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst Pagination = props => {\r\n \r\n let goToPage = function(page, e){\r\n e.preventDefault();\r\n props.goTo(page);\r\n };\r\n let goToFirst = function(e){\r\n e.preventDefault();\r\n props.goTo(1);\r\n };\r\n let goToLast = function(e){\r\n e.preventDefault();\r\n props.goTo(numOfPages);\r\n };\r\n let goToNext = function(e){\r\n e.preventDefault();\r\n props.goTo(++currentPage);\r\n };\r\n let goToPrevious = function(e){\r\n e.preventDefault();\r\n props.goTo(--currentPage);\r\n };\r\n \r\n let currentPage = props.currentPage;\r\n let itemCount = parseInt(props.totalItems);\r\n let pageSize = 50;\r\n let numOfPages = Math.ceil(itemCount/ pageSize);\r\n let pagesToShow = 5;\r\n let items = [];\r\n \r\n let firstNum = 1;\r\n let lastNum = 10;\r\n let ceil = Math.ceil(pagesToShow/2);\r\n \r\n let showBeginningEllipse = false; \r\n let showEndEllipse = false; \r\n \r\n if(numOfPages < pagesToShow){\r\n firstNum = 1;\r\n lastNum = numOfPages;\r\n showBeginningEllipse = false;\r\n showEndEllipse = false;\r\n } else if(currentPage <= ceil){\r\n firstNum = 1;\r\n lastNum = pagesToShow;\r\n showEndEllipse = true;\r\n } else if (currentPage >= numOfPages - ceil) {\r\n showBeginningEllipse = true;\r\n firstNum = numOfPages - pagesToShow;\r\n lastNum = numOfPages;\r\n } else {\r\n firstNum = currentPage - ceil + 1; \r\n lastNum = currentPage + ceil -1 ;\r\n showBeginningEllipse = true;\r\n showEndEllipse = true;\r\n }\r\n\r\n for(let i = firstNum; i <= lastNum; i++){\r\n if(i === currentPage){\r\n items.push(<li key={i} className=\"page-item active\"><a className=\"page-link\" href=\"\" onClick={(e) => {goToPage(i, e)}}>{i}</a></li>)\r\n } else {\r\n items.push(<li key={i} className=\"page-item\"><a className=\"page-link\" href=\"\" onClick={(e) => {goToPage(i,e)}}>{i}</a></li>)\r\n }\r\n }\r\n \r\n let isFirstDisabled = currentPage === 1? \"disabled\": \"\";\r\n let isLastDisabled = currentPage === numOfPages? \"disabled\": \"\";\r\n \r\n return (\r\n <nav aria-label=\"User navigation\">\r\n <ul className=\"pagination\">\r\n <li className={\"page-item \" + isFirstDisabled} onClick={goToPrevious}>\r\n <a className=\"page-link\" href=\"#\" tabIndex=\"-1\" aria-disabled=\"true\">Previous</a>\r\n </li>\r\n { showBeginningEllipse && <li className=\"page-item\">\r\n <a className=\"page-link\" href=\"#\" aria-label=\"Go To First Page\" onClick={goToFirst}>\r\n <span aria-hidden=\"true\">1</span>\r\n </a>\r\n </li>}\r\n { showBeginningEllipse && <li className=\"page-item disabled\">\r\n <a className=\"page-link\" href=\"#\" aria-label=\"Previous\">\r\n <span aria-hidden=\"true\">...</span>\r\n </a>\r\n </li>}\r\n {items}\r\n {showEndEllipse && <li className=\"page-item disabled\">\r\n <a className=\"page-link\" href=\"#\" aria-label=\"Previous\">\r\n <span aria-hidden=\"true\">...</span>\r\n </a>\r\n </li>}\r\n {showEndEllipse && <li className=\"page-item\">\r\n <a className=\"page-link\" href=\"#\" aria-label=\"Go To Last Page\" onClick={goToLast}>\r\n <span aria-hidden=\"true\">{numOfPages}</span>\r\n </a>\r\n </li>}\r\n <li className={\"page-item \" + isLastDisabled}>\r\n <a className=\"page-link\" href=\"\" aria-label=\"Next\" onClick={goToNext}>\r\n <span aria-hidden=\"true\">Next</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </nav>\r\n );\r\n};\r\n\r\nPagination.propTypes = {\r\n goTo: PropTypes.func.isRequired,\r\n currentPage: PropTypes.number.isRequired,\r\n totalItems: PropTypes.any.isRequired,\r\n};\r\n\r\nexport default Pagination;\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { BootstrapTable, TableHeaderColumn } from \"react-bootstrap-table\";\r\nimport UserImpersonate from './UserImpersonate';\r\nimport { Link } from 'react-router-dom';\r\nimport { canImpersonate, canManageUsers } from \"../../PermissionSelectors\";\r\nimport { connect } from \"react-redux\";\r\nimport Pagination from \"../navigation/Pagination\";\r\n\r\nfunction formatColumn(cell, row) {\r\n if (row) {\r\n return (`${'<div class=\"truncate\"><span>'}${row.Company}${'</span></div>'}`);\r\n }\r\n}\r\n\r\nfunction formatEmailColumn(cell, row) {\r\n if (row) {\r\n return (`${'<div class=\"truncate\"><span>'}${row.Email}${'</span></div>'}`);\r\n }\r\n}\r\n\r\n\r\n\r\n\r\nfunction impersonateFormatter(cell, row) { // String example\r\n return <UserImpersonate user={row} />;\r\n};\r\n\r\nfunction formatStatusColumn(cell,row) {\r\n if (row.Status === 'active') {\r\n return (<span className=\"status-green\">{row.Status}</span>);\r\n }\r\n return (<span className=\"status-red\">{row.Status}</span>);\r\n}\r\nfunction nameColumn(cell, row) {\r\n if (row.FirstName || row.LastName) {\r\n return (`${'<div class=\"truncate\"><span>'}${row.FirstName} ${row.LastName}${'</span></div>'}`);\r\n }\r\n}\r\nfunction profileColumn(cell, row) {\r\n let display = \"\";\r\n if (row.PrimaryAccountTypeId === 1) {\r\n display = \"Sold To\";\r\n } else if (row.PrimaryAccountTypeId === 2) {\r\n display = \"Payer\";\r\n } else if (row.PrimaryAccountTypeId === 3) {\r\n display = \"Payer - All\";\r\n }\r\n return (`${'<div class=\"truncate\"><span>'}${display}${'</span></div>'}`);\r\n}\r\nfunction accountsColumn(cell, row) {\r\n let accountNumbers = [];\r\n \r\n if (row.Accounts != undefined)\r\n row.Accounts.forEach((a) => accountNumbers.push(a.PrimaryAcct));\r\n if (accountNumbers.length > 0) {\r\n return (`${'<div class=\"truncate\"><span>'}${accountNumbers.join(\", \")}${'</span></div>'}`);\r\n }\r\n}\r\n\r\nclass UserList extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.userName = this.userName.bind(this);\r\n }\r\n\r\n\r\n userName(cell, row) {\r\n if (row) {\r\n if (this.props.canManageUsers) {\r\n return <Link to={`/settings/users/${row.UserId}`}>{row.Login}</Link>;\r\n } else {\r\n return cell;\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div>\r\n <BootstrapTable data={this.props.users} tableHeaderClass=\"user-list-table-header\"\r\n tableContainerClass={'wa-bootstrap-table-container'}\r\n tableBodyClass='wa-bootstrap-small-text'>\r\n {this.props.canImpersonate &&\r\n <TableHeaderColumn width=\"50\" className=\"headerColumnColor\" dataAlign=\"center\" dataField=\"login\"\r\n dataFormat={impersonateFormatter}>\r\n Impersonate\r\n </TableHeaderColumn>}\r\n <TableHeaderColumn width=\"65\" className=\"headerColumnColor\" dataAlign=\"center\" dataField=\"login\"\r\n dataFormat={this.userName} isKey>\r\n User Id\r\n </TableHeaderColumn>\r\n <TableHeaderColumn width=\"55\" className=\"headerColumnColor\" dataAlign=\"center\"\r\n dataFormat={nameColumn}>\r\n Name\r\n </TableHeaderColumn>\r\n <TableHeaderColumn width=\"55\" className=\"headerColumnColor\" dataAlign=\"center\" dataField=\"company\"\r\n dataFormat={formatColumn}>\r\n Company\r\n </TableHeaderColumn>\r\n <TableHeaderColumn width=\"55\" className=\"headerColumnColor\" dataAlign=\"center\" dataField=\"email\"\r\n dataFormat={formatEmailColumn}>\r\n eMail\r\n </TableHeaderColumn>\r\n <TableHeaderColumn width=\"55\" className=\"headerColumnColor\" dataAlign=\"center\" dataField=\"status\"\r\n dataFormat={formatStatusColumn}>\r\n Status\r\n </TableHeaderColumn>\r\n <TableHeaderColumn width=\"55\" className=\"headerColumnColor\" dataAlign=\"center\"\r\n dataFormat={profileColumn}>\r\n Profile\r\n </TableHeaderColumn>\r\n <TableHeaderColumn width=\"55\" className=\"headerColumnColor\" dataAlign=\"center\" dataField=\"accounts\"\r\n dataFormat={accountsColumn}>\r\n Accounts\r\n </TableHeaderColumn>\r\n </BootstrapTable>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nUserList.propTypes = {\r\n users: PropTypes.array.isRequired,\r\n};\r\n\r\nexport default connect((state, props) => ({\r\n canManageUsers: canManageUsers(state, props),\r\n canImpersonate: canImpersonate(state, props)\r\n}))(UserList);\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport UserList from \"./UserList\";\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from \"react-router-dom\";\r\nimport * as _ from 'lodash';\r\nimport {canManageUsers, canViewUsers} from \"../../PermissionSelectors\";\r\nimport Pagination from \"../navigation/Pagination\";\r\nimport {exportUserList} from \"../../requests/UserRequests\";\r\nimport {faChevronDown, faSearch} from \"@fortawesome/free-solid-svg-icons\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\n\r\nclass ListUsersPage extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n users: [],\r\n status: 'all',\r\n search: '',\r\n profile: null,\r\n currentPage: 1,\r\n userCount: 0,\r\n };\r\n\r\n this.getUsers = this.getUsers.bind(this);\r\n this.profileFilterChange = this.profileFilterChange.bind(this);\r\n this.statusFilterChange = this.statusFilterChange.bind(this);\r\n this.onSearchChange = this.onSearchChange.bind(this);\r\n this.exportUsers = this.exportUsers.bind(this);\r\n this.goTo = this.goTo.bind(this);\r\n this.onSearchChangeDebounce = _.debounce((value) => {\r\n this.setState({ search: value, currentPage: 1 }, () => {\r\n this.getUsers();\r\n });\r\n }, 400);\r\n }\r\n\r\n componentDidMount() {\r\n this.getUsers();\r\n }\r\n\r\n getUsers() {\r\n return this.props.getUsers(this.state.status, this.state.profile, this.state.search, this.state.currentPage).then((response) => {\r\n this.setState({ users: response.data, userCount: response.total });\r\n })\r\n }\r\n\r\n profileFilterChange(event) {\r\n this.setState({ profile: event.target.value, currentPage: 1 }, () => {\r\n this.getUsers();\r\n });\r\n }\r\n\r\n statusFilterChange(event) {\r\n this.setState({ status: event.target.value, currentPage: 1 }, () => {\r\n this.getUsers();\r\n });\r\n }\r\n\r\n onSearchChange = event => {\r\n this.onSearchChangeDebounce(event.target.value);\r\n };\r\n\r\n\r\n goTo(page){\r\n this.setState({\r\n currentPage: page\r\n }, () => {\r\n this.getUsers();\r\n });\r\n }\r\n \r\n exportUsers(){\r\n exportUserList()\r\n }\r\n\r\n render() {\r\n return <div className={\"container\"}>\r\n {\r\n (this.props.canViewUsers) ?\r\n <div>\r\n <div className={\"row\"}>\r\n <div className=\"col-12 col-md-3 d-flex\">\r\n <input type={\"text\"} className={\"form-control\"} placeholder={\"Search by name, account, etc.\"}\r\n onChange={this.onSearchChange} />\r\n <div className=\"search ml-2 mr-1\">\r\n <FontAwesomeIcon icon={faSearch} size={\"lg\"}/>\r\n </div>\r\n </div>\r\n <div className=\"col-12 col-md-3\">\r\n <div className=\"customSelect\">\r\n <select onChange={this.statusFilterChange} value={this.state.status} className={\"form-control\"}>\r\n <option value=\"all\">All Statuses</option>\r\n <option value=\"active\">Active</option>\r\n <option value=\"deactive\">Deactive</option>\r\n <option value=\"locked\">Locked</option>\r\n <option value=\"waiting-confirmation\">Waiting Confirmation</option>\r\n </select>\r\n <span className=\"select-arrow\">\r\n <FontAwesomeIcon icon={faChevronDown}/>\r\n </span>\r\n </div>\r\n </div>\r\n <div className=\"col\">\r\n </div>\r\n { /* TODO: not needed for schindler */ }\r\n {/*<div className=\"col-12 col-md-3\">*/}\r\n {/*<div className=\"customSelect\">*/}\r\n {/*<select onChange={this.profileFilterChange} value={this.state.profile} className={\"form-control\"}>*/}\r\n {/*<option value=\"all\">All Profiles</option>*/}\r\n {/*<option value=\"1\">Sold To</option>*/}\r\n {/*<option value=\"2\">Payer</option>*/}\r\n {/*<option value=\"3\">Payer - All</option>*/}\r\n {/*</select>*/}\r\n {/*<span className=\"select-arrow\">*/}\r\n {/*<i className=\"fas fa-chevron-down\"></i>*/}\r\n {/*</span>*/}\r\n {/*</div>*/}\r\n {/*</div>*/}\r\n <div className=\"col-12 col-md-2\">\r\n {this.props.canManageUsers && <Link exact to={\"/settings/users/add\"}>\r\n <button className=\"btn btn-primary btn-block\">Add User</button>\r\n </Link>}\r\n </div>\r\n <div className=\"col-12 col-md-1 d-flex align-items-center\">\r\n <span>{this.state.users ? this.state.userCount : '0'} Users</span>\r\n </div>\r\n <div className=\"col d-flex justify-content-end\">\r\n <button className={\"btn btn-secondary user-export-button\"} onClick={this.exportUsers}>Export Users</button>\r\n </div>\r\n </div>\r\n <div className={\"row mt-4\"}>\r\n <div className={\"col-12\"}>\r\n <UserList users={this.state.users} />\r\n </div>\r\n </div>\r\n <div className={\"row mt-4\"}>\r\n <div className={\"col-12\"}>\r\n <Pagination goTo={this.goTo} currentPage={this.state.currentPage} totalItems={this.state.userCount}/>\r\n </div>\r\n </div>\r\n </div>\r\n : null\r\n }\r\n </div>\r\n }\r\n}\r\n\r\nListUsersPage.propTypes = {\r\n getUsers: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default connect((state, props) => ({\r\n canManageUsers: canManageUsers(state, props),\r\n canViewUsers: canViewUsers(state, props),\r\n}))(ListUsersPage);\r\n","import React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Formik } from \"formik\";\r\nimport { BootstrapError, BootstrapField } from \"../../helpers/Field\";\r\nimport * as yup from 'yup';\r\nimport { toast } from 'react-toastify';\r\nimport moment from 'moment';\r\n\r\nlet schema = yup.object().shape({\r\n Login: yup.string().required(\"User Id is Required\"),\r\n FirstName: yup.string().required(\"First Name Required\"),\r\n LastName: yup.string().required(\"Last Name Required\"),\r\n Company: yup.string().required(\"Company Required\"),\r\n Email: yup.string().email().required(\"Email Required\"),\r\n password: yup.string(),\r\n Status: yup.string().required(\"Status Required\"),\r\n //userProfileId: yup.number().required(\"Profile Type Required\"),\r\n PrimaryAccountTypeId: yup.number().required(\"Primary Account Type Required\"),\r\n UserRole: yup.string().required(\"User Role Required\"),\r\n});\r\n\r\nclass ManageUserForm extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.onSubmit = this.onSubmit.bind(this);\r\n }\r\n\r\n\r\n onSubmit(values, bag) {\r\n bag.setSubmitting(true);\r\n this.props.save(values).then((user) => {\r\n // this.setState({user: user});\r\n toast.success(\"User Saved\", { position: toast.POSITION.TOP_RIGHT });\r\n bag.setSubmitting(false);\r\n }).catch(error => {\r\n if (error.response.data && error.response.data.message) {\r\n toast.warn(error.response.data.message, { position: toast.POSITION.TOP_RIGHT });\r\n bag.setSubmitting(false);\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n const createdDate = this.props.user && this.props.user.CreatedDate ? moment(this.props.user.CreatedDate).format('MMM DD YYYY') : '';\r\n const lastLoginDate = this.props.user && this.props.user.LastLoginDate ? moment(this.props.user.LastLoginDate).format('MMM DD, YYYY') : '';\r\n const lastPasswordChange = this.props.user && this.props.user.LastPasswordChange ? moment(this.props.user.LastPasswordChange).format('MM DD,') : '';\r\n if (this.props.primaryAccountTypes.length === 1) {\r\n this.props.user.primaryAccountTypeId = this.props.primaryAccountTypes[0].primaryAccountTypeId;\r\n }\r\n return (\r\n <Formik\r\n initialValues={this.props.user}\r\n enableReinitialize={true}\r\n validationSchema={schema}\r\n onSubmit={this.onSubmit}\r\n render={(props) =>\r\n <form autoComplete={\"new-user-form\"}>\r\n <div className=\"row\">\r\n <div className=\"col-12\">\r\n <div className={\"row no-gutters mb-2\"}>\r\n <h3 className={\"col-6\"}>User Info</h3>\r\n <div className={\"col-6 text-right\"}>\r\n <button className=\"btn btn-primary\" type={\"submit\"} onClick={props.handleSubmit}>Save User</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n < div className=\"row\">\r\n <div className=\"col-12 col-md-4\">\r\n <div className=\"form-group row no-gutters\">\r\n <label className={\"col-4 col-form-label wa-label\"}>User ID</label>\r\n <div className=\"col-8\">\r\n <BootstrapField type=\"text\" name=\"Login\" placeholder={\"User Id\"} />\r\n <BootstrapError name=\"login\" />\r\n </div>\r\n </div>\r\n <div className=\"form-group row no-gutters\">\r\n <label className={\"col-4 col-form-label wa-label\"}>First Name</label>\r\n <div className=\"col-8\">\r\n <BootstrapField type=\"text\" name=\"FirstName\" placeholder={\"First Name\"} />\r\n <BootstrapError name=\"FirstName\" />\r\n </div>\r\n </div>\r\n <div className=\"form-group row no-gutters\">\r\n <label className={\"col-4 col-form-label wa-label\"}>Last Name</label>\r\n <div className=\"col-8\">\r\n <BootstrapField type=\"text\" name=\"LastName\" placeholder={\"Last Name\"} />\r\n <BootstrapError name=\"LastName\" />\r\n </div>\r\n </div>\r\n <div className=\"form-group row no-gutters\">\r\n <label className={\"col-4 col-form-label wa-label\"}>Company</label>\r\n <div className=\"col-8\">\r\n <BootstrapField type=\"text\" name=\"Company\" placeholder={\"Company\"} />\r\n <BootstrapError name=\"company\" />\r\n </div>\r\n </div>\r\n <div className=\"form-group row no-gutters\">\r\n <label className={\"col-4 col-form-label wa-label\"}>Email</label>\r\n <div className=\"col-8\">\r\n <BootstrapField type=\"text\" name=\"Email\" placeholder={\"Email\"} />\r\n <BootstrapError name=\"email\" />\r\n </div>\r\n </div>\r\n <div className=\"form-group row no-gutters\">\r\n <label className={\"col-4 col-form-label wa-label\"}>Password</label>\r\n <div className=\"col-8\">\r\n <BootstrapField type=\"password\" name=\"password\" placeholder={\"Password\"} />\r\n <BootstrapError name=\"password\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-12 col-md-4\">\r\n <div className=\"form-group row no-gutters\">\r\n <label className={\"col-4 col-form-label wa-label\"}>Status</label>\r\n <div className=\"col-8\">\r\n <BootstrapField component=\"select\" name=\"Status\" placeholder={\"Status\"}>\r\n <option value=\"\">Status</option>}\r\n <option value=\"active\">Active</option>\r\n <option value=\"deactive\">Deactive</option>\r\n <option value=\"waiting-confirmation\">Waiting Confirmation</option>\r\n <option value=\"locked\">Locked</option>\r\n </BootstrapField>\r\n <BootstrapError name=\"Status\" />\r\n </div>\r\n </div>\r\n <div className=\"form-group row no-gutters\">\r\n <label className={\"col-4 col-form-label wa-label\"}>Primary Account Type</label>\r\n <div className=\"col-8\">\r\n <BootstrapField component=\"select\" name=\"PrimaryAccountTypeId\" placeholder={\"Primary Acct Type\"}>\r\n {this.props.primaryAccountTypes && this.props.primaryAccountTypes.length > 0 && <option value=\"\">Primary Acct Type</option>}\r\n {/* <option value=\"SoldTo\">Sold To</option>\r\n <option value=\"Payer\">Payer</option> \r\n <option value=\"PayerAll\">Payer - All</option>*/}\r\n {this.props.primaryAccountTypes.map(accountType => {\r\n return (\r\n <option value={accountType.PrimaryAccountTypeId} key={accountType.PrimaryAccountTypeId}>\r\n {accountType.PrimaryAccountTypeValue}\r\n </option>\r\n )\r\n })}\r\n </BootstrapField>\r\n <BootstrapError name=\"primaryAccountTypeId\" />\r\n </div>\r\n </div>\r\n <div className=\"form-group row no-gutters\">\r\n <label className={\"col-4 col-form-label wa-label\"}>User Role</label>\r\n <div className=\"col-8\">\r\n <BootstrapField component=\"select\" name=\"UserRole\" placeholder={\"User Role\"}>\r\n <option value=\"\">User Role</option>\r\n <option value=\"admin\">Admin</option>\r\n <option value=\"manager\">Manager</option>\r\n <option value=\"internal\">Internal</option>\r\n <option value=\"user\">User</option>\r\n </BootstrapField>\r\n <BootstrapError name=\"UserRole\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"col-12 col-md-4\">\r\n <div className=\"row no-gutters\">\r\n <div className=\"col-12\">\r\n <div className=\"row no-gutters\">\r\n <div className=\"col-6 wa-label\">Created</div>\r\n <div className=\"col-6\">\r\n <span>{createdDate}</span>\r\n </div>\r\n </div>\r\n <div className=\"row no-gutters\">\r\n <div className=\"col-6 wa-label\">Last login</div>\r\n <div className=\"col-6\"><span>{lastLoginDate}</span></div>\r\n </div>\r\n <div className=\"row no-gutters\">\r\n <div className=\"col-6 wa-label\">Login Count</div>\r\n <div className=\"col-6\"><span>{this.props.user.NumLogins}</span></div>\r\n </div>\r\n <div className=\"row no-gutters\">\r\n <div className=\"col-6 wa-label\">Last Password Change</div>\r\n <div className=\"col-6\">{lastPasswordChange}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n } />\r\n );\r\n }\r\n}\r\n\r\nManageUserForm.propTypes = {\r\n onSave: PropTypes.func,\r\n save: PropTypes.func.isRequired,\r\n user: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default ManageUserForm;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst RegistrationRequestDetails = props => {\r\n return (\r\n <div className={\"row\"}>\r\n <div className={\"col-12\"}>\r\n <div>\r\n <strong>Name:</strong> {props.request.firstName} {props.request.lastName}\r\n </div>\r\n <div>\r\n <strong>Company:</strong> {props.request.company}\r\n </div>\r\n <div>\r\n <strong>Email:</strong> {props.request.email}\r\n </div>\r\n <div>\r\n <strong>Message:</strong> {props.request.message}\r\n </div>\r\n </div> \r\n </div>\r\n );\r\n};\r\n\r\nRegistrationRequestDetails.propTypes = {\r\n request: PropTypes.object.isRequired, \r\n};\r\n\r\nexport default RegistrationRequestDetails;\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport ManageUserForm from \"./ManageUserForm\";\r\nimport {\r\n deleteUser,\r\n deleteUserSapAccount,\r\n getExclusionList,\r\n getUserSapAccounts,\r\n saveUser,\r\n updateExclusionList\r\n} from \"../../requests/UserRequests\";\r\nimport PropTypes from 'prop-types';\r\nimport LinkedSapAccounts from \"./LinkedSapAccounts\";\r\nimport { Link, withRouter } from 'react-router-dom';\r\nimport RegistrationRequestDetails from \"../settings-page/registration-requests/RegistrationRequestDetails\";\r\nimport { markRegistrationCompleted } from \"../../requests/RegistrationRequests\";\r\nimport ExclusionList from \"./exclusions/ExclusionList\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faAngleLeft } from \"@fortawesome/free-solid-svg-icons\";\r\n\r\nexport class ManageUserPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n user: {\r\n login: \"\",\r\n firstName: \"\",\r\n lastName: \"\",\r\n company: \"\",\r\n email: \"\",\r\n status: \"active\",\r\n //userProfileId: \"\",\r\n createdDate: \"\",\r\n lastLoginDate: \"\",\r\n numLogins: \"\",\r\n lastPasswordChange: \"\",\r\n primaryAcctType: \"\",\r\n userRole: \"\",\r\n },\r\n request: null,\r\n };\r\n this.saveUser = this.saveUser.bind(this);\r\n this.deleteUser = this.deleteUser.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.loadUser();\r\n if (this.props.fromRequest) {\r\n this.props.getRegistrationRequest(this.props.fromRequest).then((request) => {\r\n this.setState({\r\n request: request,\r\n user: {\r\n ...this.state.user,\r\n firstName: request.firstName,\r\n lastName: request.lastName,\r\n company: request.company,\r\n email: request.email,\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n loadUser() {\r\n if (this.props.getUser) {\r\n this.props.getUser().then((user) => {\r\n this.setState({ user: user });\r\n return user;\r\n })\r\n }\r\n }\r\n\r\n deleteUser() {\r\n deleteUser(this.state.user.userId).then(() => {\r\n this.props.history.push(\"/settings/users\");\r\n })\r\n }\r\n\r\n saveUser(form) {\r\n return saveUser(form).then((user) => {\r\n if (this.state.request) {\r\n markRegistrationCompleted(this.state.request.registrationRequestId);\r\n }\r\n this.setState({ user: user });\r\n });\r\n }\r\n\r\n render() {\r\n const firstName = this.state.user && this.state.user.FirstName ? this.state.user.FirstName : '';\r\n const lastName = this.state.user && this.state.user.LastName ? this.state.user.LastName : '';\r\n return (\r\n <div className={\"container\"}>\r\n <div\r\n className=\"modal fade\"\r\n id=\"confirmDelete\"\r\n tabIndex=\"-1\"\r\n role=\"dialog\"\r\n aria-labelledby=\"confirmDeleteLabel\"\r\n aria-hidden=\"true\"\r\n >\r\n <div className=\"modal-dialog\" role=\"document\">\r\n <div className=\"modal-content\">\r\n <div className=\"modal-header\">\r\n <h5 className=\"modal-title\" id=\"confirmDeleteLabel\">\r\n Confirm Deletion\r\n </h5>\r\n <button\r\n type=\"button\"\r\n className=\"close\"\r\n data-dismiss=\"modal\"\r\n aria-label=\"Close\"\r\n >\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n <div className=\"modal-body\">\r\n Are you sure you want to delete this use? This can not be undone.\r\n </div>\r\n <div className=\"modal-footer\">\r\n <button type=\"button\" className=\"btn btn-primary\" data-dismiss=\"modal\" onClick={this.deleteUser}>\r\n Ok\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-secondary\"\r\n data-dismiss=\"modal\"\r\n >\r\n Cancel\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"row\">\r\n <div className=\"col-4\">\r\n <Link to=\"/settings/users\" className=\"btn button-back\">\r\n <FontAwesomeIcon icon={faAngleLeft} className={\"button-back-text\"} />  \r\n <span className=\"button-back-text\">Back To Users</span>\r\n </Link>\r\n </div>\r\n <div className=\"col-4 text-center\">\r\n <span className=\"user-name\">{`${firstName}${' '}${lastName}`}</span>\r\n </div>\r\n </div>\r\n {this.state.request && <div className=\"row mt-2\">\r\n <div className={\"col-12\"}>\r\n <div className=\"card\">\r\n <RegistrationRequestDetails request={this.state.request} />\r\n </div>\r\n </div>\r\n </div>}\r\n <div className=\"row mt-2\">\r\n <div className={\"col-12\"}>\r\n <div className=\"card\">\r\n {this.state.user && <ManageUserForm save={this.saveUser} user={this.state.user}\r\n primaryAccountTypes={this.props.primaryAccountTypes} />}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {this.state.user && this.state.user.Accounts && <div className=\"row mt-4\">\r\n <div className={\"col-12\"}>\r\n <LinkedSapAccounts accounts={this.state.user.Accounts} userId={this.state.user.UserId}\r\n getAccounts={getUserSapAccounts} deleteAccount={deleteUserSapAccount}\r\n accountTypes={this.props.accountTypes} />\r\n </div>\r\n </div>\r\n }\r\n\r\n {this.state.user && this.state.user.PrimaryAccountTypeId === 3 && <div className=\"row mt-4\">\r\n <div className={\"col-12\"}>\r\n <ExclusionList getExclusions={getExclusionList} updateExclusions={updateExclusionList}\r\n userId={this.state.user.UserId} />\r\n </div>\r\n </div>\r\n }\r\n <div className={\"row mt-4\"}>\r\n <div className={\"col\"}>\r\n <span role={\"button\"} className={\"font-button-icon\"}\r\n data-toggle=\"modal\"\r\n data-target=\"#confirmDelete\">\r\n <FontAwesomeIcon icon={\"trash\"} /> Delete User</span>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n return {\r\n accountTypes: state.default.accountTypes,\r\n primaryAccountTypes: state.default.primaryAccountTypes,\r\n };\r\n}\r\n\r\nManageUserPage.propTypes = {\r\n getUser: PropTypes.func,\r\n getRegistrationRequest: PropTypes.func,\r\n fromRequest: PropTypes.string,\r\n};\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n)(ManageUserPage));\r\n","import React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {BootstrapTable, TableHeaderColumn} from \"react-bootstrap-table\";\r\nimport {Link} from \"react-router-dom\";\r\n\r\nfunction nameColumn(cell, row) {\r\n return `${row.firstName} ${row.lastName}`;\r\n}\r\n\r\nclass RegistrationRequestList extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.renderActionButton = this.renderActionButton.bind(this);\r\n }\r\n\r\n renderActionButton(val, row) {\r\n return <Link to={`/settings/users/add/${row.registrationRequestId}`}>Create User</Link>\r\n }\r\n\r\n render() {\r\n return (\r\n <div>\r\n <BootstrapTable data={this.props.requests} tableHeaderClass=\"registration-list-table-header\"\r\n tableContainerClass={'wa-bootstrap-table-container'} keyField={\"registrationRequestId\"}>\r\n <TableHeaderColumn width=\"55\" className=\"headerColumnColor\" dataAlign=\"center\"\r\n dataFormat={nameColumn}>\r\n Name\r\n </TableHeaderColumn>\r\n <TableHeaderColumn width=\"55\" className=\"headerColumnColor\" dataAlign=\"center\" dataField=\"company\">\r\n Company\r\n </TableHeaderColumn>\r\n <TableHeaderColumn width=\"55\" className=\"headerColumnColor\" dataAlign=\"center\" dataField=\"email\">\r\n Email\r\n </TableHeaderColumn>\r\n <TableHeaderColumn width=\"55\" className=\"headerColumnColor\" dataField=\"message\">\r\n Message\r\n </TableHeaderColumn>\r\n <TableHeaderColumn width=\"55\" className=\"headerColumnColor\" dataAlign=\"center\"\r\n dataFormat={this.renderActionButton}>\r\n Email\r\n </TableHeaderColumn>\r\n </BootstrapTable>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nRegistrationRequestList.propTypes = {\r\n requests: PropTypes.array.isRequired\r\n};\r\n\r\nexport default RegistrationRequestList;\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport RegistrationRequestList from \"./RegistrationRequestList\";\r\nimport {canManageRegistrationRequests} from \"../../../PermissionSelectors\";\r\n\r\nclass RegistrationRequestsPage extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { requests: [] };\r\n }\r\n\r\n componentDidMount() {\r\n this.props.getRequests().then(requests => {\r\n this.setState({ requests: requests });\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n <div className={\"container\"}>\r\n {\r\n this.props.canAccess ?\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <RegistrationRequestList requests={this.state.requests} />\r\n </div>\r\n </div>\r\n : null\r\n }\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nRegistrationRequestsPage.propTypes = {\r\n getRequests: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default connect((state, props) => ({\r\n canAccess: canManageRegistrationRequests(state, props) \r\n}))(RegistrationRequestsPage);\r\n","import React, {Component} from 'react';\r\n\r\nclass JsonViewer extends Component {\r\n \r\n renderArray(arr, tab = 0){\r\n return arr.map(e => {\r\n return (<div>\r\n {this.renderProp(\"\", e, tab)}\r\n </div>)\r\n })\r\n } \r\n \r\n renderObject(json, tab = 0) {\r\n return Object.keys(json).map((p) => {\r\n return this.renderProp(p, json[p], tab);\r\n });\r\n }\r\n \r\n renderProp(key, val, tab = 0){\r\n let className = \"customizing-tab-\" + tab.toString();\r\n if(Array.isArray(val)){\r\n return (<div className={className}>\r\n <div><strong>{this.renderName(key)}</strong></div>\r\n {this.renderArray(val, tab + 1)}\r\n </div>);\r\n } else if((typeof val === \"object\")) {\r\n return (<div className={className}>\r\n <div><strong>{this.renderName(key)}</strong></div>\r\n {this.renderObject(val, tab + 1)}\r\n </div>);\r\n } else {\r\n return (<div className={className}><strong>{this.renderName(key)}</strong> - {val}</div>);\r\n }\r\n }\r\n \r\n renderName(string){\r\n let words = string.split('_');\r\n words = words.map(w => w.charAt(0).toUpperCase() + w.slice(1).toLowerCase());\r\n return words.join(' ');\r\n }\r\n \r\n render() {\r\n return (\r\n this.renderObject(this.props.json)\r\n );\r\n }\r\n}\r\n\r\nexport default JsonViewer;","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport JSONViewer from './JSONViewer';\r\n\r\nclass CustomizingPage extends Component {\r\n render() {\r\n const data = this.props.cnbsConfig;\r\n return (\r\n <div>\r\n {/* <ReactJson src={data} theme=\"rjv-default\" iconStyle=\"triangle\" enableClipboard=\"false\" /> */}\r\n <JSONViewer json={data}></JSONViewer>\r\n </div>\r\n );\r\n }\r\n}\r\nexport default connect((store) => ({\r\n cnbsConfig: store.app.cnbsConfig,\r\n}))(CustomizingPage);","import React, { Component } from 'react';\r\nimport { BootstrapField, BootstrapError } from \"../../../helpers/Field\";\r\nimport * as yup from 'yup';\r\nimport { Formik } from \"formik\";\r\nimport { getConfiguration, smtpTest, updateConfiguration } from \"../../../requests/ConfigRequests\";\r\nimport CustomizingPage from \"../customizing/CustomizingPage\";\r\nimport { toast } from 'react-toastify';\r\nimport classNames from \"classnames\";\r\nimport { connect } from \"react-redux\";\r\n\r\nconst schema = yup.object().shape({\r\n companyName: yup.string().required(),\r\n applicationUrl: yup.string().required(),\r\n smtpAddress: yup.string().required(),\r\n smtpPort: yup.number().required(),\r\n smtpUseUser: yup.boolean(),\r\n registrationRequestEmail: yup.string().email(),\r\n registrationRequestEmailContent: yup.string(),\r\n registrationRequestorEmailContent: yup.string(),\r\n welcomeEmailContent: yup.string(),\r\n resetPasswordEmailContent: yup.string(),\r\n emailConfirmationContent: yup.string(),\r\n fromAddress: yup.string().email(),\r\n fromAddressName: yup.string(),\r\n receiptEmailBody: yup.string(),\r\n receiptEmailRow: yup.string(),\r\n receiptBcc: yup.string(),\r\n smtpUser: yup.string().when('smtpUseUser', {\r\n is: true,\r\n then: yup.string().required(),\r\n }),\r\n smtpPassword: yup.string().when('smtpUseUser', {\r\n is: true,\r\n then: yup.string().required(),\r\n }),\r\n ccvideoUrl: yup.string().required(),\r\n ccpdfUrl: yup.string().required(),\r\n ecvideoUrl: yup.string().required(),\r\n ecpdfUrl: yup.string().required(),\r\n});\r\n\r\nclass EditConfiguration extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n config: null,\r\n showConfiguration: false,\r\n testEmail: \"\",\r\n };\r\n this.showConfiguration = this.showConfiguration.bind(this);\r\n this.sendTestEmail = this.sendTestEmail.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n getConfiguration().then(config => this.setState({ config: config }));\r\n }\r\n\r\n showConfiguration() {\r\n if (this.state.showConfiguration) {\r\n this.setState({ showConfiguration: false });\r\n } else {\r\n this.setState({ showConfiguration: true });\r\n }\r\n }\r\n\r\n sendTestEmail(values) {\r\n let testEmail = prompt(\"Test Email\", this.state.testEmail);\r\n this.setState({\r\n ...this.state,\r\n testEmail: testEmail,\r\n });\r\n smtpTest({ ...values, testEmail: testEmail }).then((message) => {\r\n alert(message);\r\n });\r\n }\r\n\r\n render() {\r\n let sapStatusGood = this.props.sapConfig.statusCode === 200 && this.props.sapConfig.data.status.message_type === \"S\";\r\n\r\n\r\n return (\r\n <div className=\"container\">\r\n {this.state.config && <Formik\r\n validationSchema={schema}\r\n onSubmit={(values, bag) => {\r\n bag.setSubmitting(true);\r\n console.log(\"values...\", values);\r\n updateConfiguration(values).then(() => {\r\n toast.success(\"Configuration Saved\", { position: toast.POSITION.TOP_RIGHT });\r\n bag.setSubmitting(false);\r\n })\r\n }}\r\n initialValues={this.state.config}\r\n render={props => <form onSubmit={props.handleSubmit}>\r\n <div className=\"row\">\r\n <div className=\"col-12 card\">\r\n <div className={\"row\"}>\r\n <div className=\"col-lg-9 col-md-12\">\r\n <h4>SAP Connection Status: {sapStatusGood ? \"Good\" : \"Error\"}</h4>\r\n {!sapStatusGood && <div>\r\n {this.props.sapConfig.statusMessage}<br />\r\n {this.props.sapConfig.statusCode === 200 &&\r\n <React.Fragment>{this.props.sapConfig.data.status.message_type}<br />\r\n {this.props.sapConfig.data.status.message_line_string}<br />\r\n </React.Fragment>}\r\n </div>}\r\n </div>\r\n </div>\r\n <div className={\"row mt-4\"}>\r\n <div className=\"col-lg-9 col-md-12\">\r\n <h3>Configuration</h3>\r\n <div>\r\n <div className={\"form-group row\"}>\r\n <label className=\"col-4 col-form-label-sm text-secondary bold\">Application Url</label>\r\n <div className=\"col\">\r\n <BootstrapField name=\"applicationUrl\" placeholder=\"Application Url\" />\r\n <BootstrapError name=\"applicationUrl\" />\r\n </div>\r\n </div>\r\n <div className={\"form-group row\"}>\r\n <label className=\"col-4 col-form-label-sm text-secondary bold\">Company Name</label>\r\n <div className=\"col\">\r\n <BootstrapField name=\"companyName\" placeholder=\"Company Name\" />\r\n <BootstrapError name=\"companyName\" />\r\n </div>\r\n </div>\r\n <h5>Email Configuration</h5>\r\n <div className={\"form-group row\"}>\r\n <label className=\"col-4 col-form-label-sm text-secondary bold\">SMTP Address</label>\r\n <div className=\"col\">\r\n <BootstrapField name=\"smtpAddress\" placeholder=\"Smtp Domain/IP Address\" />\r\n <BootstrapError name=\"smtpAddress\" />\r\n </div>\r\n </div>\r\n <div className={\"form-group row\"}>\r\n <label className=\"col-4 col-form-label-sm text-secondary bold\">SMTP Port</label>\r\n <div className=\"col\">\r\n <BootstrapField name=\"smtpPort\" placeholder=\"Smtp Port\" />\r\n <BootstrapError name=\"smtpPort\" />\r\n </div>\r\n </div>\r\n <div className={\"form-group row\"}>\r\n <label className=\"col-4 col-form-label-sm text-secondary bold\">From Address</label>\r\n <div className=\"col\">\r\n <BootstrapField name=\"fromAddress\" placeholder=\"From Address\" />\r\n <BootstrapError name=\"fromAddress\" />\r\n </div>\r\n </div>\r\n <div className={\"form-group row\"}>\r\n <label className=\"col-4 col-form-label-sm text-secondary bold\">From Address Name</label>\r\n <div className=\"col\">\r\n <BootstrapField name=\"fromAddressName\" placeholder=\"From Address Name\" />\r\n <BootstrapError name=\"fromAddressName\" />\r\n </div>\r\n </div>\r\n <div className={\"form-group form-check\"}>\r\n <BootstrapField id=\"smtpUseUser\" name=\"smtpUseUser\"\r\n placeholder=\"Smtp Domain/IP Address\"\r\n type={\"checkbox\"} checked={props.values.smtpUseUser} />\r\n <label htmlFor=\"smtpUseUser\" className=\"form-check-label\">Use Authentication User</label>\r\n </div>\r\n {props.values.smtpUseUser && <React.Fragment>\r\n <div className={\"form-group row\"}>\r\n <label className=\"col-4 col-form-label-sm text-secondary bold\">SMTP User</label>\r\n <div className=\"col\">\r\n <BootstrapField name=\"smtpUser\" placeholder=\"SMTP User\" />\r\n <BootstrapError name=\"smtpUser\" />\r\n </div>\r\n </div>\r\n <div className={\"form-group row\"}>\r\n <label className=\"col-4 col-form-label-sm text-secondary bold\">SMTP Password</label>\r\n <div className=\"col\">\r\n <BootstrapField name=\"smtpPassword\" placeholder=\"SMTP Password\" type=\"password\" />\r\n <BootstrapError name=\"smtpPassword\" />\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n }\r\n <button className={\"btn\"} onClick={(event) => {\r\n event.preventDefault();\r\n this.sendTestEmail(props.values);\r\n }}>Test Email\r\n </button>\r\n <h5>Registration Request Email</h5>\r\n <p>\r\n <small>This email address will be used to send notifications for new registration requests.\r\n </small>\r\n </p>\r\n <div className={\"form-group row\"}>\r\n <label className=\"col-4 col-form-label-sm text-secondary bold\">Email Address</label>\r\n <div className=\"col\">\r\n <BootstrapField name=\"registrationRequestEmail\" placeholder=\"Email Address\" />\r\n <BootstrapError name=\"registrationRequestEmail\" />\r\n </div>\r\n </div>\r\n <h5>Email Content</h5>\r\n <p>\r\n <small>\r\n This is the content of the email that will be sent when a new registration is requested.\r\n </small>\r\n </p>\r\n <div className={\"form-group row\"}>\r\n <label className=\"col-4 col-form-label-sm text-secondary bold\">Registration Request Email\r\n Content</label>\r\n <div className=\"col\">\r\n <BootstrapField component=\"textarea\" rows=\"10\" name=\"registrationRequestEmailContent\"\r\n placeholder=\"Email Content\" />\r\n <BootstrapError name=\"registrationRequestEmailContent\" />\r\n </div>\r\n </div>\r\n <p>\r\n <small>\r\n This is the content of the email that will be sent to the registration requestor when their\r\n request is submitted\r\n </small>\r\n </p>\r\n <div className={\"form-group row\"}>\r\n <label className=\"col-4 col-form-label-sm text-secondary bold\">Registration Requestor Email\r\n Content</label>\r\n <div className=\"col\">\r\n <BootstrapField component=\"textarea\" rows=\"10\" name=\"registrationRequestorEmailContent\"\r\n placeholder=\"Email Content\" />\r\n <BootstrapError name=\"registrationRequestorEmailContent\" />\r\n </div>\r\n </div>\r\n <p>\r\n <small>\r\n This is the content of the email that will be sent to a new user when their registration is\r\n confirmed.\r\n </small>\r\n </p>\r\n <div className={\"form-group row\"}>\r\n <label className=\"col-4 col-form-label-sm text-secondary bold\">Welcome Email Content</label>\r\n <div className=\"col\">\r\n <BootstrapField component=\"textarea\" rows=\"10\" name=\"welcomeEmailContent\"\r\n placeholder=\"Email Content\" />\r\n <BootstrapError name=\"welcomeRequestEmailContent\" />\r\n </div>\r\n </div>\r\n <p>\r\n <small>\r\n This is the content of the email that will be sent when a password reset is requested.\r\n </small>\r\n </p>\r\n <div className={\"form-group row\"}>\r\n <label className=\"col-4 col-form-label-sm text-secondary bold\">Reset Password Email\r\n Content</label>\r\n <div className=\"col\">\r\n <BootstrapField component=\"textarea\" rows=\"10\" name=\"resetPasswordEmailContent\"\r\n placeholder=\"Email Content\" />\r\n <BootstrapError name=\"resetPasswordEmailContent\" />\r\n </div>\r\n </div>\r\n <div className={\"form-group row\"}>\r\n <label className=\"col-4 col-form-label-sm text-secondary bold\">Confirmation Email Content\r\n Content</label>\r\n <div className=\"col\">\r\n <BootstrapField component=\"textarea\" rows=\"10\" name=\"emailConfirmationContent\"\r\n placeholder=\"Email Content\" />\r\n <BootstrapError name=\"emailConfirmationContent\" />\r\n </div>\r\n </div>\r\n <div className={\"form-group row\"}>\r\n <label className=\"col-4 col-form-label-sm text-secondary bold\">Receipt Email Body</label>\r\n <div className=\"col\">\r\n <BootstrapField rows=\"10\" name=\"receiptBcc\"\r\n placeholder=\"Email\" />\r\n <BootstrapError name=\"receiptBcc\" />\r\n </div>\r\n </div>\r\n <div className={\"form-group row\"}>\r\n <label className=\"col-4 col-form-label-sm text-secondary bold\">Receipt Email Body</label>\r\n <div className=\"col\">\r\n <BootstrapField component=\"textarea\" rows=\"10\" name=\"receiptEmailBody\"\r\n placeholder=\"Email Content\" />\r\n <BootstrapError name=\"receiptEmailBody\" />\r\n </div>\r\n </div>\r\n <div className={\"form-group row\"}>\r\n <label className=\"col-4 col-form-label-sm text-secondary bold\">Receipt Email Row</label>\r\n <div className=\"col\">\r\n <BootstrapField component=\"textarea\" rows=\"10\" name=\"receiptEmailRow\"\r\n placeholder=\"Email Content\" />\r\n <BootstrapError name=\"receiptEmailRow\" />\r\n </div>\r\n </div>\r\n\r\n <div className={\"form-group row\"}>\r\n <label className=\"col-4 col-form-label-sm text-secondary bold\">Payment Instructions: CC PDF</label>\r\n <div className=\"col\">\r\n <BootstrapField name=\"ccpdfUrl\" placeholder=\"Payment Instructions: CC PDF Url\" />\r\n <BootstrapError name=\"ccpdfUrl\" />\r\n </div>\r\n </div>\r\n\r\n <div className={\"form-group row\"}>\r\n <label className=\"col-4 col-form-label-sm text-secondary bold\">Payment Instructions: CC Video</label>\r\n <div className=\"col\">\r\n <BootstrapField name=\"ccvideoUrl\" placeholder=\"Payment Instructions: CC Video Url\" />\r\n <BootstrapError name=\"ccvideoUrl\" />\r\n </div>\r\n </div>\r\n\r\n <div className={\"form-group row\"}>\r\n <label className=\"col-4 col-form-label-sm text-secondary bold\">Payment Instructions: EC PDF</label>\r\n <div className=\"col\">\r\n <BootstrapField name=\"ecpdfUrl\" placeholder=\"Payment Instructions: EC PDF Url\" />\r\n <BootstrapError name=\"ecpdfUrl\" />\r\n </div>\r\n </div>\r\n\r\n <div className={\"form-group row\"}>\r\n <label className=\"col-4 col-form-label-sm text-secondary bold\">Payment Instructions: EC Video</label>\r\n <div className=\"col\">\r\n <BootstrapField name=\"ecvideoUrl\" placeholder=\"Payment Instructions: EC Video Url\" />\r\n <BootstrapError name=\"ecvideoUrl\" />\r\n </div>\r\n </div>\r\n <div className={\"form-group row\"}>\r\n <div className={classNames(\"image-upload-tab\", { \"active\": this.state.showConfiguration })}\r\n onClick={this.showConfiguration}>SAP Configuration\r\n </div>\r\n </div>\r\n <div className={\"form-group row\"}>\r\n {this.state.showConfiguration ?\r\n <CustomizingPage /> : ''\r\n }\r\n </div>\r\n <br />\r\n <div>\r\n <button className={\"btn btn-primary\"} type={\"submit\"}>Save</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </form>} />}\r\n </div>\r\n\r\n );\r\n }\r\n}\r\n\r\nexport default connect((state, props) => {\r\n return {\r\n sapConfig: state.app.config.sap,\r\n }\r\n})(EditConfiguration);\r\n","import React, { Component } from 'react';\r\nimport { Route, Switch, NavLink } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport { getUser, getUserList } from \"../../requests/UserRequests\";\r\nimport { getRegistrationRequestById, getRegistrationRequests } from \"../../requests/RegistrationRequests\";\r\nimport ResetPassword from \"../resetpassword/ResetPassword\";\r\nimport AccountPaymentPage from \"../payment-methods/AccountPaymentPage\";\r\nimport ListUsersPage from \"../user-management/ListUsersPage\";\r\nimport ManageUserPage from \"../user-management/ManageUserPage\";\r\nimport RegistrationRequestsPage from \"./registration-requests/RegistrationRequestsPage\";\r\nimport EditConfiguration from './configuration/EditConfiguration';\r\nimport { getAccountTypes, getPrimaryAccountTypes } from \"../../requests/AccountTypeRequests\";\r\nimport {updateAccountTypes, updatePrimaryAccountTypes} from \"../../actions/InvoiceActions\";\r\nimport {\r\n canEditSystemConfig, canManagePaymentMethods,\r\n canManageRegistrationRequests,\r\n canManageUsers,\r\n canViewUsers\r\n} from \"../../PermissionSelectors\";\r\n\r\nclass SettingsPage extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n collapsed: true,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n getAccountTypes().then((accountTypes) => {\r\n updateAccountTypes(this.props.dispatch, accountTypes);\r\n });\r\n\r\n getPrimaryAccountTypes().then((accountTypes) => {\r\n updatePrimaryAccountTypes(this.props.dispatch, accountTypes);\r\n });\r\n }\r\n\r\n navBarToggleClick = () => {\r\n this.setState({ collapsed: !this.state.collapsed });\r\n };\r\n\r\n render() {\r\n let collapsedClass = `${'collapse navbar-collapse webar-navbar-collapse'}`;\r\n\r\n if (!this.state.collapsed) {\r\n collapsedClass = 'navbar-collapse webar-navbar-collapse';\r\n }\r\n return <div className={\"settings-content\"}>\r\n <nav className=\"settings-sub-header webar-navbar navbar fixed-top navbar-expand-lg navbar-light nav-color d-none d-lg-block\">\r\n <div className=\"container\">\r\n <button className=\"navbar-toggler\" type=\"button\" onClick={this.navBarToggleClick}>\r\n <span className=\"navbar-toggler-icon\" />\r\n </button>\r\n <div className={collapsedClass} id=\"navbarSupportedContent\">\r\n <ul className=\"navbar-nav mr-auto\">\r\n <li className=\"nav-item\">\r\n <NavLink exact to={\"/settings/profile\"} className=\"nav-link\">Account</NavLink>\r\n </li>\r\n {(this.props.canViewUsers) ?\r\n <li className=\"nav-item\">\r\n <NavLink exact to={\"/settings/users\"} className=\"nav-link\">User Management</NavLink>\r\n </li> : null\r\n }\r\n {/* TODO SCHINDLER SPECIFIC */}\r\n {/*{(this.props.canManageRegistrationRequests) ?*/}\r\n {/*<li className=\"nav-item\">*/}\r\n {/*<NavLink exact to={\"/settings/registration-requests\"} className=\"nav-link\">Registration Requests</NavLink>*/}\r\n {/*</li> : null*/}\r\n {/*}*/}\r\n {this.props.canEditSystemConfig ?\r\n <li className=\"nav-item\">\r\n <NavLink exact to={\"/settings/configuration\"} className=\"nav-link\">Configuration</NavLink>\r\n </li> : null\r\n }\r\n {this.props.canManagePaymentMethods && <li className=\"nav-item\">\r\n <NavLink to={\"/settings/payment-methods\"} className=\"nav-link\">Payment Methods</NavLink>\r\n </li>}\r\n </ul>\r\n </div>\r\n </div>\r\n </nav>\r\n <div className={\"settings-page\"}>\r\n <Switch>\r\n {/* Order matters here! */}\r\n {this.props.canManageUsers && <Route path=\"/settings/users/add/:request?\" render={(props) => <ManageUserPage\r\n fromRequest={props.match.params.request} getRegistrationRequest={getRegistrationRequestById}/>}/>}\r\n {this.props.canManageUsers && <Route path=\"/settings/users/:userId\"\r\n render={(props) => <ManageUserPage\r\n getUser={getUser(props.match.params.userId)}/>}/>}\r\n {this.props.canViewUsers &&\r\n <Route path=\"/settings/users\" render={(props) => <ListUsersPage getUsers={getUserList}/>}/>}\r\n {this.props.canManageRegistrationRequests && <Route path=\"/settings/registration-requests\"\r\n render={(props) => <RegistrationRequestsPage\r\n getRequests={getRegistrationRequests}/>}/>}\r\n {this.props.canEditSystemConfig && <Route path=\"/settings/configuration\"\r\n render={(props) => <EditConfiguration/>}/>}\r\n {this.props.canManagePaymentMethods &&\r\n <Route path=\"/settings/payment-methods\" component={AccountPaymentPage}/>}\r\n <Route path={\"/settings/profile\"} component={ResetPassword}/>\r\n </Switch>\r\n </div>\r\n </div>\r\n }\r\n}\r\n\r\nexport default connect((state, props) => ({\r\n canEditSystemConfig: canEditSystemConfig(state, props),\r\n canManagePaymentMethods: canManagePaymentMethods(state, props),\r\n canManageRegistrationRequests: canManageRegistrationRequests(state, props),\r\n canManageUsers: canManageUsers(state, props),\r\n canViewUsers: canViewUsers(state, props),\r\n}))(SettingsPage);\r\n","import * as React from \"react\";\r\n\r\nexport default class PaymentStatusErrorBoundary extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { hasError: false };\r\n }\r\n\r\n static getDerivedStateFromError(error) {\r\n // Update state so the next render will show the fallback UI.\r\n return { hasError: true };\r\n }\r\n\r\n componentDidCatch(error, info) {\r\n // You can also log the error to an error reporting service\r\n }\r\n\r\n render() {\r\n if (this.state.hasError) {\r\n // You can render any custom fallback UI\r\n return <div className={\"container\"}><h4>There was an error showing you the payment status page. Your payment may have still processed.</h4></div>;\r\n }\r\n\r\n return this.props.children;\r\n }\r\n}","import React, {Component, useEffect, useState} from 'react';\r\nimport {Route, Switch, withRouter} from \"react-router-dom\";\r\nimport Deposits from './deposits/Deposits';\r\nimport Statements from './statements/Statements';\r\nimport Help from './help/Help';\r\nimport Header from \"./header/Header\";\r\nimport Footer from \"./footer/Footer\";\r\nimport InvoicePage from \"./invoice/InvoicePage\";\r\nimport PaymentPage from \"./invoice/PaymentPage\";\r\nimport PaymentStatusPage from \"./invoice/PaymentStatusPage\";\r\nimport DetailPage from \"./invoice/DetailPage\";\r\nimport InvoiceSearch from './invoice/InvoiceSearch';\r\nimport {connect} from 'react-redux';\r\nimport {getSelectedPrimaryAccount} from \"./invoice/Selectors\";\r\nimport PayerDetailsDataManager from \"./invoice/PayerDetailsDataManager\";\r\nimport {Redirect} from 'react-router-dom';\r\nimport {getUser} from \"../actions/UserActions\";\r\nimport SettingsPage from \"./settings-page/SettingsPage\";\r\nimport InvoiceDataManager from \"./invoice/InvoiceDataManager\";\r\nimport {canEditSystemConfig, canMakePayment} from \"../PermissionSelectors\";\r\nimport EditConfiguration from \"./settings-page/configuration/EditConfiguration\";\r\nimport BasePageErrorBoundary from \"../error-boundaries/BasePageErrorBoundary\";\r\nimport PaymentStatusErrorBoundary from \"../error-boundaries/PaymentStatusErrorBoundary\";\r\n\r\nexport function BasePage(props) {\r\n let [user, setUser] = useState(null);\r\n\r\n useEffect(() => {\r\n getUser(props.dispatch).then(user => {\r\n if (user) {\r\n if (props.sap.statusCode === 200 && props.sap.data.status.message_type === \"S\") {\r\n if (user && user.Status === \"waiting-confirmation\") {\r\n props.history.push(\"/auto-register/waiting-confirmation\");\r\n } else {\r\n setUser(user);\r\n }\r\n } else {\r\n if (user.Permissions.indexOf(\"CanEditSystemConfig\") > -1) {\r\n props.history.push(\"/settings/configuration\");\r\n } else {\r\n props.history.replace(\"/system-error\");\r\n }\r\n }\r\n }\r\n });\r\n }, []);\r\n\r\n return <React.Fragment>\r\n {(!props.isLoggedIn) ? <Redirect to={\"/login\"}/> :\r\n <React.Fragment>\r\n <Header/>\r\n {(user) ? <React.Fragment>\r\n <InvoiceDataManager render={\r\n (\r\n <PayerDetailsDataManager render={(\r\n <div className={\"app-content\"}>\r\n <Switch>\r\n <Route path=\"/invoices\">\r\n <React.Fragment>\r\n <Switch>\r\n {props.canMakePayment && <Route path={\"/invoices/pay\"}\r\n render={() => (\r\n <BasePageErrorBoundary><PaymentPage/></BasePageErrorBoundary>)}/>}\r\n {props.canMakePayment && <Route path={\"/invoices/payment-status\"}\r\n render={() => (\r\n <PaymentStatusErrorBoundary><PaymentStatusPage/></PaymentStatusErrorBoundary>)}/>}\r\n <Route path={\"/invoices/detail/:billingDocumentNumber\"}\r\n render={() => (<BasePageErrorBoundary><DetailPage/></BasePageErrorBoundary>)}/>\r\n <Route path={\"/invoices/invoicesearch\"}\r\n render={() => (<BasePageErrorBoundary><InvoiceSearch/></BasePageErrorBoundary>)}/>\r\n <Route path={\"/invoices\"}\r\n render={() => (<BasePageErrorBoundary><InvoicePage/></BasePageErrorBoundary>)}/>\r\n </Switch>\r\n </React.Fragment>\r\n </Route>\r\n <Route path=\"/deposits\"\r\n render={() => (<BasePageErrorBoundary><Deposits/></BasePageErrorBoundary>)}/>\r\n <Route path=\"/statements\"\r\n render={() => (<BasePageErrorBoundary><Statements/></BasePageErrorBoundary>)}/>\r\n <Route path=\"/help\"\r\n render={() => (<BasePageErrorBoundary><Help/></BasePageErrorBoundary>)}/>\r\n <Route path={\"/settings\"}\r\n component={SettingsPage}/>\r\n <Route path={\"/system\"}\r\n render={() => (<BasePageErrorBoundary><SettingsPage/></BasePageErrorBoundary>)}/>\r\n <Route path={\"/\"}\r\n render={() => (<BasePageErrorBoundary><InvoicePage/></BasePageErrorBoundary>)}/>\r\n </Switch>\r\n </div>\r\n )}/>\r\n )\r\n }/>\r\n </React.Fragment> :\r\n <React.Fragment> {/* we want to still be able to get to system settings even if user doesn't have SAP accounts setup. */}\r\n <Switch>\r\n {props.canEditSystemConfig &&\r\n <Route path={\"/settings/configuration\"} render={props => (\r\n <div className={\"settings-page\"}>\r\n <EditConfiguration/>\r\n\r\n </div>\r\n )\r\n }/>}\r\n </Switch>\r\n </React.Fragment>\r\n }\r\n <Footer/>\r\n </React.Fragment>\r\n }\r\n </React.Fragment>\r\n}\r\n\r\nexport default withRouter(connect((state, props) => {\r\n return {\r\n selectedPrimaryAccount: getSelectedPrimaryAccount(state, props),\r\n isLoggedIn: state.user.isLoggedIn,\r\n canMakePayment: canMakePayment(state, props),\r\n currentUser: state.default.currentUser,\r\n sap: state.app.config.sap,\r\n canEditSystemConfig: canEditSystemConfig(state, props),\r\n }\r\n})(BasePage));\r\n","import React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport * as yup from 'yup';\r\nimport {BootstrapError, BootstrapField} from \"../../helpers/Field\";\r\nimport {Formik} from \"formik\";\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\n\r\nconst schema = yup.object().shape({\r\n password: yup.string().required('Password required.'),\r\n confirmPassword: yup.string()\r\n .oneOf([yup.ref('password'), null], 'Passwords do not match').required(\"Confirm password required.\"),\r\n});\r\n\r\nclass Register extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n complete: false,\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div>\r\n <Formik\r\n validationSchema={schema}\r\n onSubmit={(values, bag) => {\r\n bag.setSubmitting(true);\r\n this.props.completeRegistration(this.props.inviteId, values.password, values.confirmPassword).then(response => {\r\n bag.setSubmitting(false);\r\n this.setState({complete: true});\r\n });\r\n }}\r\n render={(props) =>\r\n <form onSubmit={props.handleSubmit}>\r\n <div className={\"row\"}>\r\n <div className=\"col-12\">\r\n <div className=\"form-group\">\r\n <label>Password</label>\r\n <BootstrapField name={\"password\"} type={\"password\"}/>\r\n <BootstrapError name={\"password\"}/>\r\n </div>\r\n <div className=\"form-group\">\r\n <label>Confirm Password</label>\r\n <BootstrapField name={\"confirmPassword\"} type={\"password\"}/>\r\n <BootstrapError name={\"confirmPassword\"}/>\r\n </div>\r\n <div>\r\n <button type={\"submit\"} className={\"btn btn-primary\"}>Finish Registration</button>\r\n </div>\r\n </div>\r\n {this.state.complete && <Redirect to={\"/login\"}/>}\r\n </div>\r\n </form>\r\n }\r\n />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nRegister.propTypes = {\r\n completeRegistration: PropTypes.func.isRequired,\r\n inviteId: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default Register;\r\n","import React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Register from \"./Register\";\r\nimport {completeRegistration} from \"../../requests/UserRequests\";\r\n\r\nclass RegisterPage extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n userNotFound: false,\r\n user: null\r\n }\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.props.getUserByInvite(this.props.invite).then((user) => {\r\n this.setState({user: user});\r\n }).catch(() => {\r\n this.setState({userNotFound: true});\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n <div className={\"container mt-5\"}>\r\n <div className=\"row\">\r\n <div className=\"col-xl-4 col-lg-4 col-md-6 col-sm-12 mx-auto\">\r\n <div className=\"card\">\r\n {this.state.user && <Register completeRegistration={completeRegistration} inviteId={this.state.user.inviteId}/>}\r\n {this.state.userNotFound && <div>\r\n <h1>Invalid invite token.</h1> \r\n </div>}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nRegisterPage.propTypes = {\r\n getUserByInvite: PropTypes.func.isRequired,\r\n invite: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default RegisterPage;\r\n","import React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {Formik} from \"formik\";\r\nimport {BootstrapError, BootstrapField} from \"../../helpers/Field\";\r\nimport * as yup from 'yup';\r\n\r\nconst schema = yup.object().shape({\r\n email: yup.string().email().required(\"Email is required.\"),\r\n firstName: yup.string().required(\"First Name Required.\"),\r\n lastName: yup.string().required(\"Last Name Required.\"),\r\n company: yup.string().required(\"Company Required.\"),\r\n message: yup.string().required(\"Message Required.\"),\r\n});\r\n\r\nclass RegistrationRequestForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n requestComplete: false,\r\n errorMessage: null,\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div>\r\n {!this.state.requestComplete && <Formik\r\n validationSchema={schema}\r\n onSubmit={(props, bag) => {\r\n this.props.submit(props).then(() => {\r\n this.setState({requestComplete: true});\r\n });\r\n }}\r\n render={props =>\r\n <div className=\"card\">\r\n <form onSubmit={props.handleSubmit}>\r\n <div className=\"row\">\r\n <div className={\"col-12\"}>\r\n <div className=\"form-group\">\r\n <label>Email</label>\r\n <BootstrapField type={\"email\"} name={\"email\"}/>\r\n <BootstrapError name={\"email\"}/>\r\n </div>\r\n <div className=\"form-group\">\r\n <label>First Name</label>\r\n <BootstrapField type={\"text\"} name={\"firstName\"}/>\r\n <BootstrapError name={\"firstName\"}/>\r\n </div>\r\n <div className=\"form-group\">\r\n <label>Last Name</label>\r\n <BootstrapField type={\"text\"} name={\"lastName\"}/>\r\n <BootstrapError name={\"lastName\"}/>\r\n </div>\r\n <div className=\"form-group\">\r\n <label>Company</label>\r\n <BootstrapField type={\"text\"} name={\"company\"}/>\r\n <BootstrapError name={\"company\"}/>\r\n </div>\r\n <div className=\"form-group\">\r\n <label>Message</label>\r\n <BootstrapField component={\"textarea\"} name={\"message\"}/>\r\n <BootstrapError name={\"message\"}/>\r\n </div>\r\n <div className={\"form-group\"}>\r\n <button type={\"submit\"} className={\"btn btn-primary\"}>Submit</button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n }/>}\r\n {this.state.requestComplete && <React.Fragment>\r\n <div className=\"card\">\r\n <div>\r\n Thanks for submitting a registration request. We will get back with your shortly.\r\n </div>\r\n </div>\r\n \r\n </React.Fragment>\r\n }\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nRegistrationRequestForm.propTypes = {\r\n // submit: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default RegistrationRequestForm;\r\n","import React, {Component} from 'react';\r\nimport RegistrationRequestForm from \"./RegistrationRequestForm\";\r\nimport {submitRegistration} from \"../../requests/RegistrationRequests\";\r\nimport {Link} from \"react-router-dom\";\r\n\r\nclass RegistrationRequestPage extends Component {\r\n render() {\r\n return (\r\n <div className={\"container mt-5\"}>\r\n <div className=\"row\">\r\n <div className=\"col-xl-6 col-lg-6 col-md-6 col-sm-12 mx-auto\">\r\n <RegistrationRequestForm submit={submitRegistration}/> \r\n </div>\r\n </div>\r\n <div className=\"row mt-2\">\r\n <div className=\"col-12 text-center\">\r\n <Link to={\"/login\"}>\r\n <span className=\"button-back-text\">Go To Login</span>\r\n </Link>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nRegistrationRequestPage.propTypes = {};\r\n\r\nexport default RegistrationRequestPage;\r\n","import {withRouter} from \"react-router-dom\";\r\nimport React from \"react\";\r\nimport {Logout} from \"../actions/UserActions\";\r\nimport {connect} from \"react-redux\";\r\n\r\nfunction BackToLogin(props) {\r\n return (\r\n <a href={\"/login\"} onClick={(e) => {\r\n e.preventDefault();\r\n Logout(props.dispatch).then(() => {\r\n props.history.replace('/login'); \r\n })\r\n }}>Go back to login page.</a>\r\n );\r\n}\r\n\r\nexport default withRouter(connect()(BackToLogin));","/* eslint-env browser */\r\n/* eslint-disable no-console */\r\nimport React from 'react';\r\nimport Logo from \"../Logo\";\r\nimport {Link} from \"react-router-dom\";\r\n\r\nexport default function SimpleHeader(props) {\r\n return (\r\n <nav id=\"appHeader\" className=\"webar-navbar navbar navbar-expand-lg navbar-light\">\r\n <div className=\"container\">\r\n <div id=\"navbarSupportedContent\">\r\n <Link to={\"/login\"}>\r\n <ul className=\"navbar-nav flat-left\">\r\n <Logo height={50}/>\r\n </ul>\r\n </Link>\r\n </div>\r\n </div>\r\n </nav>\r\n );\r\n}\r\n\r\n\r\n","import React, {Component} from 'react';\r\nimport {BootstrapField, BootstrapError} from \"../../helpers/Field\";\r\nimport * as yup from 'yup';\r\nimport {Formik} from \"formik\";\r\nimport {passwordResetRequest} from \"../../requests/UserRequests\";\r\nimport BackToLogin from \"../BackToLogin\";\r\nimport SimpleHeader from \"../header/SimpleHeader\";\r\nimport Footer from \"../footer/Footer\";\r\n\r\nclass ResetPasswordPage extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n message: null,\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <SimpleHeader/>\r\n <div className={\"container mt-5\"}>\r\n <div className=\"row\">\r\n <div className=\"col-xl-4 col-lg-4 col-md-6 col-sm-12 mx-auto\">\r\n {!this.state.message && <div className=\"card\">\r\n <Formik\r\n validationSchema={yup.object().shape({email: yup.string().email().required()})}\r\n onSubmit={(values, bag) => {\r\n passwordResetRequest(values).then((message) => {\r\n this.setState({message});\r\n })\r\n }}\r\n render={props =>\r\n <form onSubmit={props.handleSubmit}>\r\n <div className={\"form-group\"}>\r\n <label>Email</label>\r\n <BootstrapField name=\"email\" type={\"email\"} placeholder={\"email\"}/>\r\n <BootstrapError name={\"email\"}/>\r\n </div>\r\n <div>\r\n <button type={\"submit\"} className={\"btn btn-primary\"}>Reset Password</button>\r\n </div>\r\n </form>\r\n }/>\r\n </div>\r\n }\r\n {this.state.message && <React.Fragment>\r\n <div className=\"card\">\r\n {this.state.message}\r\n </div>\r\n <div className=\"row justify-content-center flex mt-3\">\r\n <BackToLogin/>\r\n </div>\r\n </React.Fragment>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n <Footer/>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n\r\nResetPasswordPage.propTypes = {};\r\n\r\nexport default ResetPasswordPage;\r\n","import React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport * as yup from 'yup';\r\nimport {BootstrapError, BootstrapField} from \"../../helpers/Field\";\r\nimport {Formik} from \"formik\";\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\n\r\nconst schema = yup.object().shape({\r\n password: yup.string().required('Password required.'),\r\n confirmPassword: yup.string()\r\n .oneOf([yup.ref('password'), null], 'Passwords do not match').required(\"Confirm password required.\"),\r\n});\r\n\r\nclass ResetPasswordFinishForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n complete: false,\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div>\r\n <Formik\r\n validationSchema={schema}\r\n onSubmit={(values, bag) => {\r\n bag.setSubmitting(true);\r\n this.props.onSubmit(this.props.id, values.password, values.confirmPassword).then(response => {\r\n bag.setSubmitting(false);\r\n this.setState({complete: true});\r\n });\r\n }}\r\n render={(props) =>\r\n <form onSubmit={props.handleSubmit}>\r\n <div className={\"row\"}>\r\n <div className=\"col-12\">\r\n <div className=\"form-group\">\r\n <label>Password</label>\r\n <BootstrapField name={\"password\"} type={\"password\"}/>\r\n <BootstrapError name={\"password\"}/>\r\n </div>\r\n <div className=\"form-group\">\r\n <label>Confirm Password</label>\r\n <BootstrapField name={\"confirmPassword\"} type={\"password\"}/>\r\n <BootstrapError name={\"confirmPassword\"}/>\r\n </div>\r\n <div>\r\n <button type={\"submit\"} className={\"btn btn-primary\"}>Reset Password</button>\r\n </div>\r\n </div>\r\n {this.state.complete && <Redirect to={\"/login\"}/>}\r\n </div>\r\n </form>\r\n }\r\n />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nResetPasswordFinishForm.propTypes = {\r\n onSubmit: PropTypes.func.isRequired,\r\n id: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default ResetPasswordFinishForm;\r\n","import React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {completePasswordReset} from \"../../requests/UserRequests\";\r\nimport ResetPasswordFinishForm from \"./ResetPasswordFinishForm\";\r\nimport SimpleHeader from \"../header/SimpleHeader\";\r\nimport Footer from \"../footer/Footer\";\r\n\r\nclass ResetPasswordFinishPage extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n userNotFound: false,\r\n user: null\r\n }\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.props.getUserByPasswordReset(this.props.passwordReset).then((user) => {\r\n this.setState({user: user});\r\n }).catch(() => {\r\n this.setState({userNotFound: true});\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <SimpleHeader/>\r\n <div className={\"container mt-5\"}>\r\n <div className=\"row\">\r\n <div className=\"col-xl-4 col-lg-4 col-md-6 col-sm-12 mx-auto\">\r\n <div className=\"card\">\r\n {this.state.user &&\r\n <ResetPasswordFinishForm onSubmit={completePasswordReset} id={this.state.user.passwordReset}/>}\r\n {this.state.userNotFound && <div>\r\n <h1>Invalid reset url.</h1>\r\n </div>}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <Footer/>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n\r\nResetPasswordFinishPage.propTypes = {\r\n getUserByPasswordReset: PropTypes.func.isRequired,\r\n passwordReset: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default ResetPasswordFinishPage;\r\n","import {Component} from 'react';\r\nimport {withRouter} from \"react-router-dom\";\r\nimport {setLastUrl} from \"../actions/UserActions\";\r\nimport {connect} from 'react-redux';\r\n\r\nfunction isPublicUrl(path){\r\n let ignoreList = [\r\n \"^/login\",\r\n \"^/reset-password\",\r\n \"^/registration-request\",\r\n \"^/auto-register/create\",\r\n \"^/request-password-reset\",\r\n \"^/register\",\r\n ];\r\n \r\n let ignore = false;\r\n for(let i = 0; i < ignoreList.length; i++){\r\n let results = path.match(ignoreList[i]);\r\n if(results !== null){\r\n ignore = true;\r\n }\r\n }\r\n return ignore;\r\n}\r\n\r\nclass RouterListener extends Component {\r\n componentDidMount() {\r\n if (!isPublicUrl(this.props.location.pathname)) {\r\n this.props.setLastUrl(this.props.location.pathname);\r\n }\r\n this.props.history.listen((e) => {\r\n if (!isPublicUrl(e.pathname)) {\r\n this.props.setLastUrl(e.pathname);\r\n }\r\n });\r\n }\r\n \r\n\r\n render() {\r\n return null;\r\n }\r\n}\r\n\r\nRouterListener.propTypes = {};\r\n\r\nexport default withRouter(connect(state => ({}), {\r\n setLastUrl,\r\n})(RouterListener));\r\n","import React, {Component, useState} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {Formik} from \"formik\";\r\nimport {BootstrapError, BootstrapField} from \"../../../helpers/Field\";\r\nimport * as yup from 'yup';\r\nimport {registerUser} from \"../../../requests/UserRequests\";\r\nimport {withRouter} from \"react-router-dom\";\r\nimport axios from \"../../../axios\";\r\nimport {updateState} from \"../../../actions/CommonActions\";\r\nimport * as types from \"../../../constants/ActionTypes\";\r\nimport {connect} from \"react-redux\";\r\nimport {toast} from \"react-toastify\";\r\n\r\nconst schema = yup.object().shape({\r\n email: yup.string().email().required(\"Email is required.\"),\r\n firstName: yup.string().required(\"First Name Required.\"),\r\n lastName: yup.string().required(\"Last Name Required.\"),\r\n company: yup.string().required(\"Company Required.\"),\r\n password: yup.string().required(\"Password is required.\").min(8, \"Password must be at least 8 characters long.\"),\r\n verifyPassword: yup.string().required(\"Passwords must match.\"),\r\n});\r\n\r\n\r\nfunction RegistrationRequestForm(props) {\r\n let [errorMessage, setErrorMessage] = useState(null);\r\n return (\r\n <div>\r\n <Formik\r\n validationSchema={schema}\r\n onSubmit={(formProps, bag) => {\r\n registerUser(formProps).then((response) => {\r\n \r\n sessionStorage.setItem('token', response.token);\r\n sessionStorage.setItem('refreshToken', response.refreshToken);\r\n axios.instance.defaults.headers.common['Authorization'] = `Bearer ${response.token}`;\r\n updateState(props.dispatch, types.SET_IS_LOGGED_IN, true);\r\n \r\n if (response.user.isConfirmed) {\r\n props.history.push(\"/invoices\"); \r\n } else {\r\n props.history.push(\"/auto-register/confirm-instructions\")\r\n }\r\n }).catch(error => {\r\n setErrorMessage(error.response.data.message);\r\n toast.error(error.response.data.message, { position: toast.POSITION.TOP_RIGHT });\r\n });\r\n }}\r\n render={props =>\r\n <div className=\"card\">\r\n <form onSubmit={props.handleSubmit}>\r\n <div className=\"row\">\r\n <div className={\"col-12\"}>\r\n {errorMessage && <p className={\"text-danger\"}>{errorMessage}</p>}\r\n <div className=\"form-group\">\r\n <label>Email</label>\r\n <BootstrapField type={\"email\"} name={\"email\"}/>\r\n <BootstrapError name={\"email\"}/>\r\n </div>\r\n <div className=\"form-group\">\r\n <label>First Name</label>\r\n <BootstrapField type={\"text\"} name={\"firstName\"}/>\r\n <BootstrapError name={\"firstName\"}/>\r\n </div>\r\n <div className=\"form-group\">\r\n <label>Last Name</label>\r\n <BootstrapField type={\"text\"} name={\"lastName\"}/>\r\n <BootstrapError name={\"lastName\"}/>\r\n </div>\r\n <div className=\"form-group\">\r\n <label>Company</label>\r\n <BootstrapField type={\"text\"} name={\"company\"}/>\r\n <BootstrapError name={\"company\"}/>\r\n </div>\r\n <div className=\"form-group\">\r\n <label>Password</label>\r\n <BootstrapField type={\"password\"} name={\"password\"}/>\r\n <BootstrapError name={\"password\"}/>\r\n </div>\r\n <div className=\"form-group\">\r\n <label>Verify Password</label>\r\n <BootstrapField type={\"password\"} name={\"verifyPassword\"}/>\r\n <BootstrapError name={\"verifyPassword\"}/>\r\n </div>\r\n <div className={\"form-group\"}>\r\n <button type={\"submit\"} className={\"btn btn-primary\"}>Next</button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n }/>\r\n </div>\r\n );\r\n}\r\n\r\nRegistrationRequestForm.propTypes = {\r\n submit: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default withRouter(connect()(RegistrationRequestForm));\r\n","import React, {PropTypes} from 'react';\r\nimport {\r\n injectIntl,\r\n IntlProvider,\r\n FormattedRelative,\r\n} from 'react-intl';\r\n\r\nexport default injectIntl(({intl}) => {\r\n document.title = intl.formatMessage({id: \"title\"});\r\n return null;\r\n});\r\n","import React, {Component, useContext, useState} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport * as yup from 'yup';\r\nimport {InvoicesContext} from \"../../invoice/InvoiceDataManager\";\r\n\r\nconst schema = yup.object().shape({\r\n invoiceNumber: yup.string().required(\"Invoice number is required.\"),\r\n invoiceAmount: yup.number().required(\"Invoice amount is required.\"),\r\n accountNumber: yup.string().required(\"Billing ID is required.\"),\r\n});\r\n\r\nfunction AutoLinkAccountSuccess(props) {\r\n let address = \"1234 Road Road\";\r\n\r\n if(props.invoice) {\r\n let invoice = props.invoice;\r\n let partner = invoice.partner_data.find(_ => _.partner_function === \"RG\");\r\n let address = partner.address_data;\r\n return (\r\n <div className=\"card\">\r\n <div className=\"row\">\r\n <div className={\"col-12\"}>\r\n <strong>Success</strong>\r\n <p>\r\n {address.name}<br/>\r\n {address.street}<br/>\r\n {address.city}, {address.state} {address.zip} {address.country}<br/>\r\n </p>\r\n <button type={\"submit\"} onClick={props.onClear} className={\"btn btn-primary\"}>Add Another Account</button>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nAutoLinkAccountSuccess.propTypes = {\r\n invoice: PropTypes.object,\r\n onClear: PropTypes.func,\r\n};\r\n\r\nexport default AutoLinkAccountSuccess;\r\n","import React, {Component, useContext, useState} from 'react';\r\nimport * as yup from 'yup';\r\nimport {InvoicesContext} from \"../../invoice/InvoiceDataManager\";\r\n\r\nconst schema = yup.object().shape({\r\n invoiceNumber: yup.string().required(\"Invoice number is required.\"),\r\n invoiceAmount: yup.number().required(\"Invoice amount is required.\"),\r\n accountNumber: yup.string().required(\"Billing ID is required.\"),\r\n});\r\n\r\nfunction AutoLinkAccountForm(props) {\r\n let [requestComplete, setRequestComplete] = useState(false);\r\n const invoicesContext = useContext(InvoicesContext);\r\n\r\n return (\r\n <div className=\"card\">\r\n <div className=\"row\">\r\n <div className={\"col-12\"}>\r\n <p><strong>Error</strong> - {props.message}</p>\r\n <button type={\"submit\"} className={\"btn btn-primary\"} onClick={props.onClear}>Try Again</button>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default AutoLinkAccountForm;\r\n","import React, {Component, useContext, useState} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {Formik} from \"formik\";\r\nimport {BootstrapError, BootstrapField} from \"../../../helpers/Field\";\r\nimport * as yup from 'yup';\r\nimport {InvoicesContext} from \"../../invoice/InvoiceDataManager\";\r\nimport {validateAccount} from \"../../../requests/UserRequests\";\r\n\r\nconst schema = yup.object().shape({\r\n invoiceNumber: yup.string().required(\"Invoice number is required.\"),\r\n invoiceAmount: yup.number().typeError(\"Invoice amount is required. Numeric values only.\").required(\"Invoice amount is required. Numeric values only.\"),\r\n accountNumber: yup.string().required(\"Billing ID is required.\"),\r\n});\r\n\r\nfunction AutoLinkAccountForm(props) {\r\n let [requestComplete, setRequestComplete] = useState(false);\r\n const invoicesContext = useContext(InvoicesContext);\r\n \r\n return (\r\n <div>\r\n {!requestComplete && <Formik\r\n validationSchema={schema}\r\n onSubmit={(formProps, bag) => {\r\n validateAccount(formProps).then(response => {\r\n props.onSuccess(response.invoice);\r\n }).catch((error) => {\r\n if(error.response.status === 404){\r\n props.onError(\"We could not find an account from the given details.\") \r\n } else {\r\n if(error.response.data.key === \"duplicate\"){\r\n props.onError(\"You've already added this account.\") \r\n } else {\r\n props.onError(\"Too many failed attempts. Try again later.\") \r\n }\r\n }\r\n });\r\n }}\r\n render={formProps =>\r\n <div className=\"card\">\r\n <p>To setup an account you will need an invoice number, invoice amount, and your billing ID.</p>\r\n <form onSubmit={formProps.handleSubmit}>\r\n <div className=\"row\">\r\n <div className={\"col-12\"}>\r\n <div className=\"form-group\">\r\n <label>Billing ID</label>\r\n <BootstrapField type={\"text\"} name={\"accountNumber\"}/>\r\n <BootstrapError name={\"accountNumber\"}/>\r\n </div>\r\n <div className=\"form-group\">\r\n <label>Invoice Number</label>\r\n <BootstrapField type={\"text\"} name={\"invoiceNumber\"}/>\r\n <BootstrapError name={\"invoiceNumber\"}/>\r\n </div>\r\n <div className=\"form-group\">\r\n <label>Invoice Amount</label>\r\n <BootstrapField type={\"text\"} name={\"invoiceAmount\"}/>\r\n <BootstrapError name={\"invoiceAmount\"}/>\r\n </div>\r\n <div className={\"form-group\"}>\r\n <button type={\"submit\"} className={\"btn btn-primary\"}>Add Account</button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n }/>}\r\n {requestComplete && <React.Fragment>\r\n <div className=\"card\">\r\n <div>\r\n Thanks for submitting a registration request. We will get back with your shortly.\r\n </div>\r\n </div>\r\n \r\n </React.Fragment>\r\n }\r\n </div>\r\n );\r\n}\r\nAutoLinkAccountForm.propTypes = {\r\n onSuccess: PropTypes.func.isRequired,\r\n onError: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default AutoLinkAccountForm;\r\n","import React, {Component, useContext, useState} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {Formik} from \"formik\";\r\nimport {BootstrapError, BootstrapField} from \"../../../helpers/Field\";\r\nimport * as yup from 'yup';\r\nimport {InvoicesContext} from \"../../invoice/InvoiceDataManager\";\r\nimport {validateAccount} from \"../../../requests/UserRequests\";\r\nimport AutoLinkAccountSuccess from \"./AutoLinkAccountSuccess\";\r\nimport AutoLinkAccountError from \"./AutoLinkAccountError\";\r\nimport AutoLinkAccountForm from \"./AutoLinkAccountForm\";\r\n\r\n\r\n\r\nfunction AutoLinkAccount(props) {\r\n let [status, setStatus] = useState(\"form\");\r\n let [invoice, setInvoice] = useState(null);\r\n let [errorMessage, setErrorMessage] = useState(\"\");\r\n\r\n return (\r\n <div>\r\n {status === \"success\" && <AutoLinkAccountSuccess invoice={invoice} onClear={() => {\r\n setStatus(\"form\");\r\n setInvoice(null);\r\n }}/>}\r\n {status === \"error\" && <AutoLinkAccountError onClear={() => {\r\n setStatus(\"form\");\r\n setInvoice(null);\r\n }} message={errorMessage}/>}\r\n {status === \"form\" && <AutoLinkAccountForm\r\n onSuccess={(invoice) => {\r\n setStatus(\"success\");\r\n setInvoice(invoice.detail);\r\n props.onAccountAdded();\r\n }}\r\n onError={(message) => {\r\n setStatus(\"error\");\r\n setErrorMessage(message);\r\n }}\r\n />\r\n }\r\n </div>\r\n );\r\n}\r\nAutoLinkAccount.propTypes = {\r\n onAccountAdded: PropTypes.func,\r\n};\r\n\r\nexport default AutoLinkAccount;\r\n","import React, {Component} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport RegisterForm from \"./RegisterForm\";\r\nimport AutoLinkAccount from \"./AutoLinkAccount\";\r\nimport AutoLinkAccountSuccess from \"./AutoLinkAccountSuccess\";\r\nimport AutoLinkAccountError from \"./AutoLinkAccountError\";\r\nimport Footer from \"../../footer/Footer\";\r\nimport SimpleHeader from \"../../header/SimpleHeader\";\r\nimport {Link} from \"react-router-dom\";\r\nimport BackToLogin from \"../../BackToLogin\";\r\n\r\nfunction mapStateToProps(state) {\r\n return {};\r\n}\r\n\r\nclass AutoRegisterPage extends Component {\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <SimpleHeader/>\r\n <div className={\"container mt-5\"}>\r\n <div className=\"row\">\r\n <div className=\"col-xl-6 col-lg-6 col-md-6 col-sm-12 mx-auto\">\r\n <RegisterForm/>\r\n </div>\r\n </div>\r\n <div className=\"row justify-content-center flex mt-3\">\r\n <BackToLogin/>\r\n </div>\r\n </div>\r\n \r\n <Footer/>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n)(AutoRegisterPage);","import React, {Component} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport Footer from \"../../footer/Footer\";\r\nimport SimpleHeader from \"../../header/SimpleHeader\";\r\nimport BackToLogin from \"../../BackToLogin\";\r\n\r\nfunction mapStateToProps(state) {\r\n return {};\r\n}\r\n\r\nclass AutoRegisterPage extends Component {\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <SimpleHeader/>\r\n <div className={\"container mt-5\"}>\r\n <div className=\"row mt-4\">\r\n <div className=\"col-xl-6 col-lg-6 col-md-6 col-sm-12 mx-auto\">\r\n <div className=\"card\">\r\n <div className=\"row\">\r\n <div className={\"col-12\"}>\r\n <p>\r\n You should receive a confirmation email shortly.\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row justify-content-center flex mt-3\">\r\n <BackToLogin/>\r\n </div>\r\n </div>\r\n <Footer/>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n)(AutoRegisterPage);","import React, {useEffect, useState} from 'react';\r\nimport * as PropTypes from \"prop-types\";\r\n\r\nfunction PromiseComponent(props) {\r\n\r\n let [status, setStatus] = useState(\"waiting\");\r\n let [value, setValue] = useState(null);\r\n\r\n useEffect(() => {\r\n if (props.promise) {\r\n setStatus(\"waiting\");\r\n props.promise.then((result) => {\r\n setStatus(\"complete\");\r\n setValue(value);\r\n return result;\r\n }).catch((error) => {\r\n setStatus(\"error\");\r\n setValue(error);\r\n });\r\n }\r\n }, [\r\n props.promise\r\n ]);\r\n\r\n\r\n return (\r\n <React.Fragment>\r\n {status === \"complete\" && props.then(value)}\r\n {status === \"error\" && props.catch && props.catch(value)}\r\n {status === \"waiting\" && props.wait && props.wait(value)}\r\n </React.Fragment>\r\n );\r\n}\r\n\r\nPromiseComponent.propTypes = {\r\n promise: PropTypes.object.isRequired,\r\n then: PropTypes.func.isRequired,\r\n catch: PropTypes.func,\r\n wait: PropTypes.func,\r\n};\r\n\r\nexport default PromiseComponent;","import React, {Component, useEffect, useState} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport RegisterForm from \"./RegisterForm\";\r\nimport AutoLinkAccount from \"./AutoLinkAccount\";\r\nimport PromiseComponent from \"../../../common/PromiseComponent\";\r\nimport {Link, withRouter} from \"react-router-dom\";\r\nimport {confirmAccount} from \"../../../requests/UserRequests\";\r\n\r\nfunction mapStateToProps(state) {\r\n return {};\r\n}\r\n\r\nfunction AutoRegisterConfirm(props) {\r\n let [confirm, setConfirm] = useState(null);\r\n useEffect(() => {\r\n setConfirm(confirmAccount(props.match.params.token));\r\n }, []);\r\n\r\n return (\r\n <div className={\"container mt-5\"}>\r\n <div className=\"row\">\r\n <div className=\"col-xl-6 col-lg-6 col-md-6 col-sm-12 mx-auto\">\r\n <PromiseComponent promise={confirm}\r\n then={() => (<div className={\"card\"}>\r\n <div className=\"row\">\r\n <div className={\"col-12\"}>\r\n <p>Successfully confirmed your account.</p>\r\n <Link className={\"btn btn-primary\"} component={\"button\"}\r\n to={\"/login\"}>Continue to Login</Link>\r\n </div>\r\n </div>\r\n </div>)}\r\n catch={() => (<div className={\"card\"}>\r\n <div className=\"row\">\r\n <div className={\"col-12\"}>\r\n <p>Could not validate account.</p>\r\n {/*<Link className={\"btn btn-primary\"} component={\"button\"}*/}\r\n {/*to={\"/auto-register/resend-confirmation\"}>Resend Confirmation.</Link>*/}\r\n </div>\r\n </div>\r\n </div>)\r\n }\r\n wait={() => (<div></div>)}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default withRouter(connect(\r\n mapStateToProps,\r\n)(AutoRegisterConfirm));","import React, {Component} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {Redirect} from 'react-router-dom';\r\nimport {getUser} from \"../actions/UserActions\";\r\n\r\nexport class BasePage extends Component {\r\n\r\n componentDidMount() {\r\n getUser(this.props.dispatch);\r\n }\r\n\r\n render() {\r\n return <React.Fragment>\r\n {(!this.props.isLoggedIn) ? <Redirect to={\"/login\"}/> :\r\n <React.Fragment>\r\n {this.props.render()}\r\n </React.Fragment>\r\n }\r\n </React.Fragment>\r\n }\r\n}\r\n\r\nexport default connect((state, props) => {\r\n return {\r\n isLoggedIn: state.user.isLoggedIn,\r\n }\r\n})(BasePage);\r\n","import React, {Component, useEffect, useState} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport RegisterForm from \"./RegisterForm\";\r\nimport AutoLinkAccount from \"./AutoLinkAccount\";\r\nimport PromiseComponent from \"../../../common/PromiseComponent\";\r\nimport LoginCheck from \"../../../common/LoginCheck\";\r\nimport List from \"@material-ui/core/List\";\r\nimport ListItem from \"@material-ui/core/ListItem\";\r\nimport ListItemText from \"@material-ui/core/ListItemText\";\r\nimport Divider from \"@material-ui/core/Divider\";\r\nimport {getUserAccounts} from \"../../../requests/UserRequests\";\r\nimport {trimLeadingZeroes} from \"../../../utils\";\r\nimport {Link} from \"react-router-dom\";\r\nimport Footer from \"../../footer/Footer\";\r\nimport SimpleHeader from \"../../header/SimpleHeader\";\r\nimport BackToLogin from \"../../BackToLogin\";\r\n\r\nfunction mapStateToProps(state) {\r\n return {};\r\n}\r\n\r\nfunction AutoRegisterPage(props) {\r\n let [accounts, setAccounts] = useState([]);\r\n\r\n function updateAccounts() {\r\n getUserAccounts().then((response) => {\r\n setAccounts(response)\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n updateAccounts();\r\n }, []);\r\n\r\n return (\r\n <React.Fragment>\r\n <SimpleHeader/>\r\n <div className={\"container mt-5\"}>\r\n <div className=\"row mt-4\">\r\n <div className=\"col-xl-6 col-lg-6 col-md-6 col-sm-12 mx-auto\">\r\n {accounts.length < 4 && <AutoLinkAccount onAccountAdded={updateAccounts}/>}\r\n {accounts.length >= 4 && <div className=\"card\">\r\n <p>You have reached the max number of accounts.</p>\r\n </div>\r\n }\r\n </div>\r\n <div className=\"col-xl-6 col-lg-6 col-md-6 col-sm-12 mx-auto\">\r\n <div className=\"card\">\r\n <div className=\"row\">\r\n <div className={\"col-12\"}>\r\n <p><strong>Accounts</strong></p>\r\n {accounts.length === 0 && <p>You have not added an account yet.</p>\r\n }\r\n <List>\r\n {accounts.map(a => {\r\n let partner = a.invoiceDetail.partner_data.find(_ => _.partner_function === \"RG\");\r\n let address = partner.address_data;\r\n return (<React.Fragment>\r\n <ListItem>\r\n <ListItemText primary={`${address.name} - ${trimLeadingZeroes(partner.partner_number)}`}/>\r\n </ListItem>\r\n <Divider/>\r\n </React.Fragment>)\r\n })}\r\n </List>\r\n {accounts.length === 0 ?\r\n <button disabled={true} className={'btn btn-primary'}>Continue</button>\r\n :\r\n <Link disabled={accounts.length === 0} component={\"button\"} className={\"btn btn-primary\"}\r\n to={\"/auto-register/create\"}>Continue</Link>\r\n }\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row justify-content-center flex mt-3\">\r\n <BackToLogin/>\r\n </div>\r\n </div>\r\n\r\n <Footer/>\r\n </React.Fragment>\r\n );\r\n}\r\n\r\nexport default connect((state, props) => {\r\n return {\r\n isLoggedIn: state.user.isLoggedIn,\r\n }\r\n})(AutoRegisterPage);\r\n","import React, {Component, useState} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {Link} from \"react-router-dom\";\r\nimport {resendConfirmation} from \"../../../requests/UserRequests\";\r\nimport SimpleHeader from \"../../header/SimpleHeader\";\r\nimport Footer from \"../../footer/Footer\";\r\nimport BackToLogin from \"../../BackToLogin\";\r\n\r\nfunction mapStateToProps(state) {\r\n return {};\r\n}\r\n\r\nfunction AutoRegisterPage(props) {\r\n let [email, setEmail] = useState(\"\");\r\n\r\n return (\r\n <React.Fragment>\r\n <SimpleHeader/>\r\n <div className={\"container mt-5\"}>\r\n <div className=\"row mt-4\">\r\n <div className=\"col-xl-6 col-lg-6 col-md-6 col-sm-12 mx-auto\">\r\n <div className=\"card\">\r\n <div className=\"row\">\r\n <div className={\"col-12\"}>\r\n <p>\r\n You have not confirmed your account yet.\r\n </p>\r\n <form>\r\n <div className={\"form-group\"}>\r\n <button className={\"btn btn-primary\"} onClick={e => {\r\n e.preventDefault();\r\n resendConfirmation(email)\r\n }}>Resend Confirmation Email\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row justify-content-center flex mt-3\">\r\n <BackToLogin/>\r\n </div>\r\n </div>\r\n <Footer/>\r\n </React.Fragment>\r\n );\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n)(AutoRegisterPage);","import React, {useEffect} from \"react\";\r\nimport {Logout} from \"../actions/UserActions\";\r\nimport {connect} from \"react-redux\";\r\n\r\nfunction SystemError(props) {\r\n useEffect(() => {\r\n Logout(props.dispatch);\r\n }, []);\r\n \r\n return (<div className={\"container\"}>\r\n <div className={\"row justify-content-md-center mt-5\"}>\r\n <div className={\"col-6\"}>\r\n <h4>There was an error with the system.<br/>Please try again later.</h4>\r\n </div>\r\n </div> \r\n </div>);\r\n}\r\n\r\nexport default connect()(SystemError);\r\n\r\n","import * as React from \"react\";\r\n\r\nexport default class SiteErrorBoundary extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { hasError: false };\r\n }\r\n\r\n static getDerivedStateFromError(error) {\r\n // Update state so the next render will show the fallback UI.\r\n return { hasError: true };\r\n }\r\n\r\n componentDidCatch(error, info) {\r\n // You can also log the error to an error reporting service\r\n }\r\n\r\n render() {\r\n if (this.state.hasError) {\r\n return <div className={\"container\"}><h4>Something is wrong with the site. Please try again later.</h4></div>;\r\n }\r\n\r\n return this.props.children;\r\n }\r\n}","import axios from 'axios'\r\nimport React, {Component} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {BrowserRouter, Route, Switch} from 'react-router-dom';\r\nimport {ToastContainer} from 'react-toastify';\r\nimport {Spinner} from 'react-activity';\r\nimport {connect} from 'react-redux';\r\nimport Login from './components/login/Login';\r\n// import './themes/DefaultTheme.css';\r\nimport BasePage from \"./components/BasePage\";\r\nimport {setIsLoggedIn, setLoginChecked} from \"./actions/UserActions\";\r\nimport RegisterPage from \"./components/register/RegisterPage\";\r\nimport {getUserByInvite, getUserByPasswordReset} from \"./requests/UserRequests\";\r\nimport RegistrationRequestPage from \"./components/register/RegistrationRequestPage\";\r\nimport ResetPasswordPage from \"./components/reset-password-page/ResetPasswordPage\";\r\nimport ResetPasswordFinishPage from \"./components/reset-password-page/ResetPasswordFinishPage\";\r\nimport RouterListener from \"./components/RouterListener\";\r\nimport {IntlProvider} from \"react-intl\";\r\n\r\n//fontawesome\r\nimport {library as faLibrary} from '@fortawesome/fontawesome-svg-core'\r\nimport {faMoneyCheck, faCaretDown, faCaretUp, faCreditCard, faTrash, faEdit, faUser, faTimes} from '@fortawesome/free-solid-svg-icons'\r\nimport {getAppConfiguration} from \"./requests/ConfigRequests\";\r\nimport {setConfig} from \"./reducers/AppReducer\";\r\nimport DocumentTitle from \"./DocumentTitle\";\r\nimport AutoRegisterPage from \"./components/register/auto-register/AutoRegisterPage\";\r\nimport AutoRegisterConfirmInstructions from \"./components/register/auto-register/AutoRegisterConfirmInstructions\";\r\nimport AutoRegisterConfirm from \"./components/register/auto-register/AutoRegisterConfirm\";\r\nimport AutoRegisterAccounts from \"./components/register/auto-register/AutoRegisterAccounts\";\r\nimport AutoRegisterWaitingConfirmation from \"./components/register/auto-register/AutoRegisterWaitingConfirmation\";\r\nimport SystemError from \"./components/SystemError\";\r\nimport SiteErrorBoundary from \"./error-boundaries/SiteErrorBoundary\";\r\n\r\nfaLibrary.add(faMoneyCheck, faCaretDown, faCaretUp, faCreditCard, faTrash, faEdit, faUser, faTimes);\r\n\r\n\r\n\r\n\r\nclass App extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {messages: {}};\r\n }\r\n\r\n\r\n componentDidMount() {\r\n let configPromise = getAppConfiguration();\r\n let loginStatusPromise = axios.get(\"/api/login-status\");\r\n Promise.all([configPromise, loginStatusPromise]).then((results) => {\r\n this.setState({\r\n messages: results[0].languages['en']\r\n });\r\n // Order matters here.\r\n if (results[1].data.status === \"waiting-confirmation\") {\r\n return;\r\n }\r\n this.props.setConfig(results[0]);\r\n this.props.setLoginChecked(true, results[1].data.isLoggedIn);\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n <SiteErrorBoundary>\r\n <IntlProvider locale=\"en\" messages={this.state.messages}>\r\n <BrowserRouter>\r\n <div>\r\n <RouterListener/>\r\n <ToastContainer/>\r\n <Spinner animating={this.props.animating > 0} size={50} className=\"centered\"/>\r\n {\r\n this.props.loginChecked &&\r\n <Switch>\r\n <Route path={\"/login\"} component={Login}/>\r\n <Route path=\"/register/:token\" render={props =>\r\n <RegisterPage invite={props.match.params.token} getUserByInvite={getUserByInvite}/>\r\n }/>\r\n <Route path=\"/system-error\" render={props =>\r\n <SystemError/>\r\n }/>\r\n <Route path=\"/registration-request\" render={props =>\r\n <RegistrationRequestPage/>\r\n }/>\r\n <Route path=\"/auto-register/create\" render={props =>\r\n <AutoRegisterPage/>\r\n }/>\r\n <Route path=\"/request-password-reset\" render={props =>\r\n <ResetPasswordPage/>\r\n }/>\r\n <Route path=\"/reset-password/:id\" render={props =>\r\n <ResetPasswordFinishPage getUserByPasswordReset={getUserByPasswordReset}\r\n passwordReset={props.match.params.id}/>\r\n }/>\r\n <Route path=\"/auto-register/confirm-instructions\" render={props =>\r\n <AutoRegisterConfirmInstructions/>\r\n }/>\r\n <Route path=\"/auto-register/confirm/:token\" render={props =>\r\n <AutoRegisterConfirm/>\r\n }/>\r\n <Route path=\"/auto-register/waiting-confirmation\" render={props =>\r\n <AutoRegisterWaitingConfirmation/>\r\n }/>\r\n <Route path=\"/auto-register/accounts\" render={props =>\r\n <AutoRegisterAccounts/>\r\n }/>\r\n <Route path=\"/\" component={BasePage}/>\r\n </Switch>\r\n }\r\n </div>\r\n </BrowserRouter>\r\n </IntlProvider>\r\n </SiteErrorBoundary>\r\n );\r\n }\r\n}\r\n\r\nApp.propTypes = {\r\n animating: PropTypes.number.isRequired,\r\n};\r\n\r\nexport default connect(state => ({\r\n animating: state.default.animating,\r\n loginChecked: state.user.loginChecked,\r\n}), {\r\n setIsLoggedIn,\r\n setLoginChecked,\r\n setConfig,\r\n})(App);\r\n","import 'react-app-polyfill/ie11';\r\nimport 'core-js/fn/array/find';\r\nimport 'core-js/fn/array/from';\r\nimport 'core-js/fn/array/map';\r\nimport 'core-js/fn/array/includes';\r\nimport 'core-js/fn/object/values';\r\nimport 'core-js/fn/object/keys';\r\nimport 'core-js/fn/promise';\r\nimport 'core-js/fn/set';\r\nimport 'core-js/fn/number/is-nan';\r\nimport 'core-js/fn/string/pad-start';\r\nimport React from 'react';\r\nimport './index.css';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport store from './store';\r\nimport App from './App';\r\nimport { config } from '@fortawesome/fontawesome-svg-core';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\n\r\n// Make sure this is before any other `fontawesome` API calls\r\nconfig.autoAddCss = false;\r\n\r\nconst DefaultTheme = React.lazy(() => import('./themes/DefaultTheme'));\r\nconst EpcoTheme = React.lazy(() => import('./themes/EpcoTheme'));\r\nconst UrbanTheme = React.lazy(() => import('./themes/UrbanTheme'));\r\nconst RecTheme = React.lazy(() => import('./themes/RecTheme'));\r\nconst EltecTheme = React.lazy(() => import('./themes/EltecTheme'));\r\n\r\nconst ThemeSelector = ({ children }) => {\r\n console.log(window.location.hostname);\r\n const getTheme = () => {\r\n if(window.location.hostname === \"theme1.epaylocal\" || window.location.hostname === \"payments.schindler.com\" || window.location.hostname === \"payments-qa.schindler.com\") return <DefaultTheme />;\r\n if(window.location.hostname === \"theme1.epaylocal\" || window.location.hostname === \"payments.adamselevator.com\" || window.location.hostname === \"payments-qa.adamselevator.com\") return <DefaultTheme />;\r\n if(window.location.hostname === \"theme2.epaylocal\" || window.location.hostname === \"payments.epco.us\" || window.location.hostname === \"payments-qa.epco.us\") return <EpcoTheme />;\r\n if(window.location.hostname === \"theme3.epaylocal\" || window.location.hostname === \"payments.republicelevator.com\" || window.location.hostname === \"payments-qa.republicelevator.com\") return <RecTheme />;\r\n if (window.location.hostname === \"theme4.epaylocal\" || window.location.hostname === \"payments.suburbanelevator.com\" || window.location.hostname === \"payments-qa.suburbanelevator.com\") return <UrbanTheme />;\r\n if (window.location.hostname === \"theme5.epaylocal\" || window.location.hostname === \"payments.eltec.cc\" || window.location.hostname === \"payments-qa.eltec.cc\") return <EltecTheme />;\r\n return <DefaultTheme />\r\n }; \r\n \r\n // const CHOSEN_THEME = localStorage.getItem('TYPE_OF_THEME') || TYPE_OF_THEME.DEFAULT;\r\n return (\r\n <>\r\n <React.Suspense fallback={<></>}>\r\n {getTheme()}\r\n </React.Suspense>\r\n {children}\r\n </>\r\n )\r\n}\r\n\r\nexport const Index = () => (\r\n <ThemeSelector>\r\n <Provider store={store}>\r\n <App />\r\n </Provider>\r\n </ThemeSelector>\r\n);\r\n\r\nReactDOM.render(<Index />, document.getElementById('root'));\r\n"],"sourceRoot":""}