{"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-bs-toggle","data-bs-target","onEdit","tabIndex","aria-labelledby","aria-hidden","data-bs-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","isValidURL","_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","normalizedUrl","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","data-toggle","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","ManageUserSapAccount","_salesOrgs","propertyName","salesOrgs","saveAccount","AccountTypeId","AccountTypeValue","companyCodes","sap","company_codes","LinkedSapAccounts","addNewAccount","editAccount","deleteAccount","close","refreshAccounts","primaryAcct","accountTypeId","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","handleClose","show","handleShow","numLogins","primaryAcctType","userRole","saveUser","deleteUser","loadUser","fromRequest","getRegistrationRequest","userProfileId","registrationRequestId","Modal","onHide","closeButton","Body","data-dismiss","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","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","InviteId","RegistrationRequestForm","requestComplete","errorMessage","submit","RegistrationRequestPage","register_RegistrationRequestForm","SimpleHeader","ResetPasswordPage","requestForm","components_BackToLogin","ResetPasswordFinishForm","ResetPasswordFinishPage","passwordReset","reset_password_page_ResetPasswordFinishForm","PasswordReset","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.36e1d5d5.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-bs-toggle=\"modal\"\r\n data-bs-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-bs-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-bs-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-bs-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 this.isValidURL = this.isValidURL.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 isValidURL(url) {\r\n const isAbsoluteUrl = /^([a-zA-Z][a-zA-Z\\d+\\-.]*):/.test(url);\r\n const normalizedUrl = isAbsoluteUrl ? url : `http://${url}`;\r\n return normalizedUrl;\r\n }\r\n \r\n CCVideoClick (){\r\n \r\n const url = this.state.config.CcvideoUrl; // Replace with your URL\r\n const normalizedUrl = this.isValidURL(url);\r\n window.open(normalizedUrl, '_blank');\r\n\r\n };\r\n\r\n CCPdfClick (){\r\n const url = this.state.config.CcpdfUrl; // Replace with your URL\r\n const normalizedUrl = this.isValidURL(url);\r\n window.open(normalizedUrl, '_blank');\r\n };\r\n\r\n ECVideoClick() {\r\n\r\n const url = this.state.config.EcvideoUrl; // Replace with your URL\r\n const normalizedUrl = this.isValidURL(url);\r\n window.open(normalizedUrl, '_blank');\r\n\r\n };\r\n\r\n ECPdfClick() {\r\n const url = this.state.config.EcpdfUrl; // Replace with your URL\r\n const normalizedUrl = this.isValidURL(url);\r\n window.open(normalizedUrl, '_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-bs-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=\"soldto-select customSelect\">\r\n\r\n <button className=\"form-control soldToBtnColor btn-block dropdown-toggle inline-block \" id=\"soldToToggle\" type=\"button\" data-bs-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 <ul className=\"dropdown-menu\">\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\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\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 > 1 && <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\nimport { Modal } from \"react-bootstrap\";\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 show: false,\r\n };\r\n this.saveUser = this.saveUser.bind(this);\r\n this.deleteUser = this.deleteUser.bind(this);\r\n this.handleClose = this.handleClose.bind(this);\r\n this.handleShow = this.handleShow.bind(this);\r\n }\r\n\r\n\r\n handleClose = () => this.setState({ show: false });\r\n handleShow = () => this.setState({ show: true });\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 return (\r\n <div className={\"container\"}>\r\n <Modal show={this.state.show} onHide={this.handleClose}>\r\n <Modal.Header closeButton>\r\n <Modal.Title>{\"Confirm Deletion\"}</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body>{\"Are you sure you want to delete this use? This can not be undone.\"}</Modal.Body>\r\n <Modal.Footer>\r\n <button type=\"button\" className=\"btn btn-primary buttonColor\" data-dismiss=\"modal\"\r\n onClick={this.deleteUser}>\r\n {\"ok\"}\r\n </button>\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-secondary\"\r\n onClick={this.handleClose}\r\n >\r\n Cancel\r\n </button>\r\n </Modal.Footer>\r\n </Modal>\r\n <div className=\"row\">\r\n <div className=\"col-4\">\r\n <Link to=\"/settings/users\" className=\"btn button-back\">\r\n <i className=\"fas fa-angle-left 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\">Edit User</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 refreshAccounts={getUserSapAccounts}\r\n getAccounts={getUserSapAccounts} deleteAccount={deleteUserSapAccount}\r\n accountTypes={this.props.accountTypes}\r\n />\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 onClick={this.handleShow}\r\n >\r\n <FontAwesomeIcon icon={\"trash\"} /> {\"Delete User\"}\r\n </span>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n\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\r\n <List>\r\n {accounts.map(a => {\r\n console.log(\"accounts.length..\", accounts.length);\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\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":""}