{"version":3,"sources":["Assets/images/logo.png","Reducers/bootstrapper.js","App.js","Assets/images/copoun_icon.png","Component/Shared/404/index.js","Component/Kit/Layout.js","Utility/method/WindowsDimensions.js","Utility/method/HandleResizeWindow.js","Component/Kit/Column.js","Component/Shared/Loader/styles.jsx","Component/Shared/Loader/index.js","Utility/method/useOnClickOutside.js","Layouts/Header/styles.jsx","Layouts/Header/ArrowIcon.jsx","Layouts/Header/index.js","Layouts/SideBar/Navigation/index.js","Component/Icon/Logo.jsx","Component/Icon/logo-minimize.jsx","Utility/Model/IdentityRoleModel.js","Utility/Services/IdentityRoleService.js","Utility/Services/roleCanActivate.js","Layouts/SideBar/index.js","Utility/Model/error-translate.model.js","Utility/Services/error-translate.js","Requester/AxiosInstance.js","Requester/ApiClient.js","Actions/bootstrapper.js","Layouts/Container/PrivateRoute.js","Layouts/Container/PublicRoute.js","Component/Kit/back.js","Component/Kit/Button.js","Component/Kit/Checkbox.js","Component/Kit/Form.js","Utility/method/NumericalValidationMultilang.js","Utility/Model/TicketDepartmentModel.js","Utility/Validation/Rules.js","Utility/Validation/Schema/AddUserAdminSchema.js","Page/AdminManagement/AddUserAdmin/index.js","Utility/Validation/Schema/ModifyAdminRoleSchema.js","Page/AdminManagement/AdminDetails/index.js","Page/PendingSMS/Model/send-sms-limitation.model.js","Utility/Model/AdminActivityOperationModel.js","Utility/Model/bank-provider.model.js","Utility/Model/fast-send-template.model.js","Utility/Model/lines.model.js","Utility/Model/TicketPriorityModel.js","Component/Shared/DatePicker/index.js","Utility/Model/guest-step.model.js","Utility/Model/invoice.model.js","Utility/Model/PaymentStatusModel.js","Utility/Model/provider-enum.model.js","Utility/Model/TicketStatusModel.js","Utility/Model/transaction-type.model.js","Component/Shared/Table/filters.js","Component/Shared/Table/config.js","Utility/Services/convert-query-string.js","Component/Shared/Table/Table.js","Utility/Services/TicketDepartmentService.js","Page/AdminManagement/AdminsList/index.js","Actions/AdminDetail.js","Page/Dashboard/styles.jsx","Component/Icon/NewTicketIcon.jsx","Component/Icon/PendingLineIcon.jsx","Component/Icon/PendingTemplatesIcon.jsx","Component/Icon/PendingGuestForApproveIcon.jsx","Component/Icon/PendingManualPaymentsIcon.jsx","Component/Icon/TechnicalTicketsIcon.jsx","Component/Icon/UserAnswerdTicketIcon.jsx","Component/Icon/InProgressTicketsIcon.jsx","Component/Icon/FinancialTicketsIcon.jsx","Utility/Services/SeprateNumberWithComma.js","Utility/method/groupBy.js","Component/Icon/_Disconnected.jsx","Page/Dashboard/provider-list/index.js","Page/Dashboard/index.js","Utility/Services/date-convert.js","Component/Icon/CloseIcon.jsx","Component/Kit/Modal.js","Utility/Validation/Schema/FastSendTemplateRejectSchema.js","Page/FastSendTemplate/pending/pending-modal.js","Page/FastSendTemplate/pending/template-pending.js","Utility/Services/fast-send-template.js","Page/FastSendTemplate/not-pending/not-pending-modal.js","Page/FastSendTemplate/not-pending/template-not-pending.js","Page/FastSendTemplate/index.js","Utility/Model/send-tower.model.js","Page/SendTower/Pending/index.js","Page/SendTower/NotPending/index.js","Page/SendTower/index.js","Page/Financial/AddReturnInvoice/index.js","Component/Shared/TimePicker/index.js","Utility/Validation/Schema/ModifyLendInvoiceItemSchema.js","Page/Financial/LendInvoicesList/LendInvoiceItemModal/index.js","Page/Financial/LendInvoicesList/index.js","Page/Financial/ManualPaymentsList/index.js","Utility/Services/PaymentStatusService.js","Page/Financial/ManualPaymentsList/ManualPaymentItem/AcceptedPaymentModal/index.js","Utility/Validation/Schema/RejectedManualPaymentSchema.js","Page/Financial/ManualPaymentsList/ManualPaymentItem/RejectedPaymentModal/index.js","Page/Financial/ManualPaymentsList/ManualPaymentItem/index.js","Page/Financial/OfficialInvoicesList/InvoiceApproved/index.js","Utility/Validation/Schema/NumberingInvoiceSchema.js","Page/Financial/OfficialInvoicesList/InvoiceAwaitingApproval/InvoiceNumberingGroupModal/index.js","Page/Financial/OfficialInvoicesList/InvoiceAwaitingApproval/index.js","Page/Financial/OfficialInvoicesList/OldPanelInvoiceApproved/index.js","Page/Financial/OfficialInvoicesList/OldPanelInvoiceAwaitingApproval/index.js","Page/Financial/OfficialInvoicesList/index.js","Component/Icon/WhiteSmsIcon.jsx","Page/Financial/TransactionDetails/BuyerDetails/index.js","Page/Financial/TransactionDetails/SellerDetails/index.js","Page/Financial/TransactionDetails/TransactionTable/index.js","Utility/Validation/Schema/AddInvoiceNumberSchema.js","Page/Financial/OfficialInvoicesList/OfficialInvoiceItem/AddNumberToInvoiceModal/index.js","Utility/Validation/Schema/EditDiscountSchema.js","Page/Financial/OfficialInvoicesList/OfficialInvoiceItem/EditInvoiceDiscountModal/index.js","Page/Financial/OfficialInvoicesList/OfficialInvoiceItem/SepidarModal/index.js","Utility/Model/InvoiceDetailsItem.js","Utility/Validation/Schema/EditInvoiceDetailSchema.js","Page/Financial/OfficialInvoicesList/OfficialInvoiceItem/EditDetailInvoiceModal/index.js","Page/Financial/OfficialInvoicesList/OfficialInvoiceItem/index.js","Utility/Services/get-bank-provider.js","Utility/Validation/Schema/ConfirmationPaymentSchema.js","Page/Financial/OnlinePayment/PaymentConfirmationModal/index.js","Page/Financial/OnlinePayment/index.js","Utility/Validation/Schema/AddForbiddenWordsScema.js","Page/ForbiddenWord/AddForbiddenWord/index.js","Page/ForbiddenWord/index.jsx","Utility/method/farsi.js","Page/ForbiddenWord/ValidateMessage/index.js","Page/ForbiddenWord/index.js","Page/Guest/Services/guest-step.js","Page/Guest/GuestsList/finished-list.js","Page/Guest/GuestsList/guest-list.js","Page/Guest/index.js","Utility/Model/company.model.js","Utility/Validation/Schema/EditGuestSchema.js","Page/Guest/GuestInformation/EditGuest/ModifyGuestInformation/index.js","Component/Icon/UploadIcon.jsx","Component/Kit/UploadZone.js","Actions/guest-data.js","Page/Guest/GuestInformation/EditGuest/ModifyGuestDocument/index.js","Page/Guest/GuestInformation/EditGuest/index.js","Utility/Validation/Schema/AddGuestCommentSchema.js","Page/Guest/GuestComments/AddGuestCommentModal/index.js","Page/Guest/GuestComments/GuestCommentsList/comment-detail-modal.js","Page/Guest/GuestComments/GuestCommentsList/index.js","Page/Guest/IncommingCalls/index.js","Utility/Services/company.js","Page/Guest/Models/outcome.model.js","Page/Guest/Services/guest-outcome.js","Page/Guest/GuestInformation/GuestView/guest-logs.js","Utility/Validation/Schema/RejectGuestSchema.js","Page/Guest/GuestInformation/GuestView/reject-form-modal.js","Utility/Validation/Schema/ConvertUserTypeSchema.js","Page/Guest/ConvertGuestType/index.js","Page/Guest/GuestInformation/GuestView/index.js","Page/Guest/GuestInformation/index.js","Utility/Services/provider.js","Page/Lines/PendingLines/index.js","Actions/pending-line.js","Utility/Services/lines.js","Page/Lines/PendingLines/user-details-modal.js","Page/Lines/PendingLines/pending-line-details.js","Utility/Services/enum-flag.js","Page/Lines/Models/SystemLineType.model.js","Page/Lines/Services/system-line-type.js","Utility/Validation/Schema/SystemLineSchema.js","Page/Lines/System/SystemModal/index.js","Page/Lines/System/index.js","Component/Shared/Modal/user-line-modal.js","Component/Shared/Modal/delete-gift-line-modal.js","Page/Lines/UserLines/index.js","Page/Login/styles.jsx","Page/Login/LoginFirstStepForm/styles.jsx","Utility/Validation/Schema/AdminLoginSchema.js","Page/Login/LoginFirstStepForm/index.js","Utility/Validation/Schema/AdminLoginOtpSchema.js","Component/Shared/CountDownTimer.js","Page/Login/LoginSecondStepForm/index.js","Page/Login/index.js","Page/Notifications/view-notification.js","Page/Notifications/index.js","Page/Notifications/add-notification.js","Page/PendingSMS/Services/send-sms-limitation-type.js","Utility/Model/send-sms.model.js","Utility/Services/send-sms.js","Utility/Validation/Schema/UserSuspendSchema.js","Page/PendingSMS/pending-sms-modal.js","Page/PendingSMS/abTest-show-link-modal.js","Page/PendingSMS/Services/convert-prefix-abtest-service.js","Page/PendingSMS/public-line-edit-modal.js","Page/PendingSMS/pending-sms-details.js","Utility/Validation/Schema/ChangePasswordSchema.js","Page/Profile/ChangePassword/index.js","Utility/Validation/Schema/ModifyAdminProfileInfoSchema.js","Page/Profile/ProfileDetails/index.js","Component/Kit/AvatarUploder.js","Page/Profile/UploadAvatar/index.js","Page/Profile/index.js","Actions/setting-modal.js","Page/Settings/Components/switch-row/index.js","Utility/Validation/Schema/NumberLimitationSchema.js","Page/Settings/modals/limitation-modal.js","Page/Settings/limitation/abtest-minimum-contact/index.js","Page/Settings/limitation/contact-group/index.js","Page/Settings/limitation/fast-send-template-add/index.js","Page/Settings/limitation/recipient-limitation-count-in-per-send-sms/index.js","Page/Settings/limitation/RecipientLimitationCountInPerWebService/index.js","Page/Settings/limitation/user-event/index.js","Page/Settings/limitation/user-template/index.js","Page/Settings/limitation/WarningLakeCredit/index.js","Page/Settings/other/fifteen-remark-coefficient/index.js","Page/Settings/other/manage-blacklist/edit-blacklist-permission-modal.js","Page/Settings/other/manage-blacklist/index.js","Page/Settings/Models/reaction-to-user-ticket.model.js","Page/Settings/Services/reaction-to-user-ticket.js","Page/Settings/other/reaction-to-user-ticket/reaction-to-user-ticket-modal.js","Page/Settings/other/reaction-to-user-ticket/index.js","Page/Settings/limitation/CooperationWithdrawalAmountLimit/index.js","Page/Settings/limitation/CooperationCreditProfitPercent/index.js","Page/Settings/limitation/CooperationLineProfitPercent/index.js","Page/Settings/other/mange-sends/edit-sends-modal.js","Page/Settings/Models/SendSmsLimitationType.js","Page/Settings/Services/SendSmsLimitation.js","Page/Settings/other/mange-sends/index.js","Utility/Validation/Schema/SMSContentSchema.js","Page/Settings/modals/sms-modal.js","Page/Settings/other/code-reader-wrong-message/index.js","Page/Settings/other/code-reader-duplicate-message/index.js","Utility/Validation/Schema/PurchaseRestrictionsSchema.js","Page/Settings/limitation/PurchaseRestrictions/PurchaseRestrictionsModal.js","Page/Settings/limitation/PurchaseRestrictions/index.js","Page/Settings/limitation/CalledWebserviceCount/index.js","Page/Settings/banks/bank/index.js","Page/Settings/banks/index.js","Page/Settings/limitation/AllowedTotalSmsSentInADay/index.js","Page/Settings/limitation/SendSmsViaTowerLimitations/index.js","Page/Settings/limitation/PublicLineSendLimitations/index.js","Page/Settings/other/modify-off-keyword-provider/index.js","Utility/Services/operator.js","Page/Settings/other/tower-operator-configuration/tower-operator-configuration.js","Page/Settings/other/tower-operator-configuration/index.js","Page/Settings/other/public-line-cost/index.js","Page/Settings/other/vat-percent/index.js","Page/Settings/other/send-sms-type/index.js","Page/Settings/limitation/UserTagAddLimitationCount/index.js","Page/Settings/index.js","Page/TicketAnswerTemplates/DeleteTemplateModal/index.js","Page/TicketAnswerTemplates/index.js","Utility/Validation/Schema/TemplateSchema.js","Utility/Validation/Schema/AddTicketSchema.js","Page/TicketAnswerTemplates/AddTemplate/index.js","Page/TicketAnswerTemplates/EditTemplate/index.js","Utility/Services/TicketStatusService.js","Utility/Services/TicketPriorityService.js","Page/Tickets/index.js","Utility/method/ParseTicketContent.js","Page/Tickets/TicketDetail/TicketInfo/index.js","Page/Tickets/TicketDetail/ChatList/Comment.js","Page/Tickets/TicketDetail/ChatList/index.js","Utility/Validation/Schema/ReplyTicketSchema.js","Utility/Model/TicketReportType.js","Page/Tickets/TicketDetail/ReplyToTicket/index.js","Utility/Validation/Schema/ModifyConfigTicketSchema.js","Page/Tickets/TicketDetail/ModifyTicketSettingModal/index.js","Page/Tickets/TicketDetail/FilesListModal/styles.jsx","Page/Tickets/TicketDetail/FilesListModal/index.js","Page/Tickets/TicketDetail/index.js","Page/Tickets/TicketComments/TicketCommentItem/styles.jsx","Page/Tickets/TicketComments/TicketCommentItem/index.js","Utility/Validation/Schema/TicketCommentSchema.js","Page/Tickets/TicketComments/index.js","Page/Users/user-list.js","Page/Users/user-verify.js","Page/Users/index.js","Page/Users/UserTicket/index.js","Actions/locationData.js","Actions/UserLagalData.js","Actions/UserProfileData.js","Utility/Validation/Schema/EditUserCodeVerificationSchema.js","Page/Users/UserProfile/ChangeUserMobile/UserCodeVerification/index.js","Utility/Validation/Schema/EditUserMobileSchema.js","Page/Users/UserProfile/ChangeUserMobile/UserMobileVerification/index.js","Page/Users/UserProfile/ChangeUserMobile/index.js","Utility/Model/UserDeactivationReasonModel.js","Utility/Services/UserDeactivationReasonService.js","Page/Users/UserProfile/UserInformation/style.jsx","Page/Users/UserProfile/Models/user-incomplete-fields.js","Page/Users/UserProfile/Services/user-incomplete-fields.js","Page/Users/UserProfile/UserInformation/index.js","Page/Users/UserProfile/index.js","Page/Users/UserLines/add-line.js","Page/Users/UserLines/whois-modal.js","Page/Users/UserLines/index.js","Page/Users/UserBlock/blocked-user-information.js","Page/Users/UserBlock/block-action-modal.js","Page/Users/UserBlock/index.js","Page/Users/UserComments/comment-view.js","Utility/Validation/Schema/UserCommentSchema.js","Page/Users/UserComments/add-comment-modal.js","Page/Users/UserComments/index.js","Page/Users/UserFastSendTemplates/user-fast-send-view.js","Page/Users/UserFastSendTemplates/index.js","Utility/Validation/Schema/UserNotificationSchema.js","Page/Users/UserCustomNotifications/add-custom-notification.js","Page/Users/UserCustomNotifications/notification-view.js","Page/Users/UserCustomNotifications/index.js","Utility/Validation/Schema/AccountRechargeSchema.js","Page/Users/UserFinancial/AccountRechargeModal/index.js","Utility/Validation/Schema/CooperationProfitPercentSchema.js","Page/Users/UserFinancial/CooperationProfitModal/index.js","Page/Users/UserFinancial/CreditTransferModal/index.js","Utility/Validation/Schema/DedicatedBasePriceSchema.js","Page/Users/UserFinancial/DedicatedUserBasePriceModal/index.js","Page/Users/UserFinancial/OfficialPaymentStatusModal/index.js","Page/Users/UserFinancial/index.js","Page/Users/UserRestriction/WhiteListOfForbiddenWords/index.js","Utility/method/UseDebounce.js","Utility/Validation/Schema/DedicatedLimitForVerifyCodeParametersSchema.js","Page/Users/UserRestriction/DedicatedLimitForVerifyCodeParametersModal/index.js","Utility/Validation/Schema/WebServiceLimitation.js","Page/Users/UserRestriction/CalledWebserviceLimitationModal/index.js","Page/Users/UserRestriction/index.js","Utility/Validation/Schema/SendMessageSchema.js","Page/Users/UserSendMessage/index.js","Page/Users/UserIncommingCalls/index.js","Utility/Model/PlanPositionModel.js","Utility/Services/PlanPositionService.js","Utility/Validation/Schema/AssignUserToPlanSchema.js","Page/Users/UserPlan/AssignUserPlanModal/index.js","Page/Users/UserPlan/index.js","Utility/Model/web-service.model.js","Page/Users/WebService/index.js","Page/Users/user-info.js","Utility/Services/transaction-type.js","Page/Users/UserFinancial/Transactions/index.js","Page/Users/UserTicket/add-ticket.js","Page/WhiteUsers/index.js","Utility/Validation/Schema/AddBlacklistKeywordScema.js","Page/Blacklist/add-blacklist-keyword.js","Utility/Validation/Schema/SetDefaultBlackListKeywordSchema.js","Page/Blacklist/set-default-blacklist-keyword.js","Page/Blacklist/index.js","Page/AdminManagement/AdminActivityLogs/index.js","Utility/Services/AdminActivityOperationService.js","Actions/DiscountCodeDetail.js","Page/DiscountCode/DiscountCodeList/index.js","Page/Users/UserProfile/EditUserProfile/EditUserdocuments/index.js","Utility/Model/gender.model.js","Utility/Validation/Schema/EditUserProfileSchema.js","Page/Users/UserProfile/EditUserInvoiceModal/index.js","Page/Users/UserProfile/EditUserProfile/EditUserInformation/index.js","Utility/Validation/Schema/EditUserLegalSchema.js","Page/Users/UserProfile/EditUserProfile/EditUserLegalInformation/index.js","Page/Users/UserProfile/EditUserProfile/index.js","Utility/Model/SaleCooperationTransaction.Modal.js","Page/SaleCooperation/Transaction/index.js","Page/SaleCooperation/Settlement/Create-agreement/index.js","Utility/Model/SaleCooperationSettlement.Modal.js","Page/SaleCooperation/Settlement/index.js","Page/PendingSMS/list/index.js","Page/DiscountCode/DiscountCodeLog/index.js","Page/PendingSMS/Repeat-sms/index.js","Page/PendingSMS/Repeat-sms-history/index.js","Page/PendingSMS/Repeat-verify-sms/index.js","Page/PendingSMS/Public-line/index.js","Page/PendingSMS/pending-sms-pages.js","Page/Users/UserFinancial/Invoice/Official/index.js","Utility/Services/invoice.js","Page/Users/UserProfile/ConvertUserType/index.js","Utility/Validation/Schema/ProviderThresholdCreditSchema.js","Page/ProvidersCredit/ModifyProviderThresholdModal/index.js","Utility/Validation/Schema/IncreaseProviderAmountSchema.js","Page/ProvidersCredit/ProviderAmountModal/index.js","Page/ProvidersCredit/ProvidersCreditList/index.js","Page/Financial/OfficialInvoicesList/OldPanelOfficialInvoiceItem/RetryInvoiceSendModal/index.js","Page/Financial/OfficialInvoicesList/OldPanelOfficialInvoiceItem/index.js","Page/CreditPackage/CreditPackageItemModal/index.js","Page/CreditPackage/CreditPackageList/index.js","Actions/CreditPackageItem.js","Utility/Validation/Schema/ModifyCreditPackageSchema.js","Page/CreditPackage/ModifyCreditPackageItem/index.js","Utility/Validation/Schema/AddBlockedIPSchema.js","Page/Suspended/BlockedIP/AddBlockedIP/index.js","Page/Suspended/BlockedIP/BlockedIPList/index.js","Page/Suspended/BlockedNumbers/AddBlockedNumberModal/index.js","Page/Suspended/BlockedNumbers/BlockedNumbersList/index.js","Page/Suspended/index.js","Page/UserFeedback/UseFeedbackDetailModal/index.js","Page/UserFeedback/index.js","Page/Plans/PlansList/index.js","Utility/Model/PlanItemLimitation.model.js","Utility/Validation/Schema/ModifyPlanItemDetailSchema.js","Page/Plans/style.jsx","Page/Plans/PlanItemDetail/index.js","Page/Plans/PlanFree/index.js","Page/PendingSMS/Single-Repeat-verify.js","Utility/Validation/Schema/ModifyDedicatedBasePriceSchema.js","Page/BasePrice/DedicatedBasePrice/ModifyDedicatedBasePriceModal/index.js","Page/BasePrice/DedicatedBasePrice/index.js","Component/Shared/NumberList/styles.jsx","Component/Shared/NumberList/index.js","Utility/Validation/Schema/AddLinesToPlansSchema.js","Page/Lines/PlansLines/PlansLineList/AddLinesModal/index.js","Page/Lines/PlansLines/PlansLineList/index.js","Utility/Validation/Schema/AssignPlanLineToUserSchema.js","Page/Lines/PlansLines/UserPendingForPlanLine/AssignPlanLineModal/index.js","Page/Lines/PlansLines/UserPendingForPlanLine/index.js","Page/Lines/PlansLines/index.js","Component/Shared/Stepper/index.jsx","Component/Shared/Stepper/index.js","Page/DiscountCode/style.jsx","Utility/Validation/Schema/ModifyDiscountCodeSchema.js","Page/DiscountCode/ModifyDiscountCode/BasePriceStep/index.js","Page/DiscountCode/ModifyDiscountCode/BasicInformationStep/index.js","Page/DiscountCode/ModifyDiscountCode/DedicatedBasePriceStep/index.js","Page/DiscountCode/ModifyDiscountCode/PlansBasePriceStep/index.js","Page/DiscountCode/ModifyDiscountCode/index.js","Actions/BasePriceTiers.js","Page/ProvidersCredit/providerState/styles.jsx","Component/Icon/_connected.jsx","Page/ProvidersCredit/providerState/index.js","Page/Plans/UsersPlan/index.js","Utility/Validation/Schema/PublicLineSchema.js","Page/Lines/Public/PublicModal/index.js","Page/Lines/Public/PublicActiveModal/index.js","Page/Lines/Public/EditDefaultLineModal/index.js","Page/Lines/Public/index.js","Page/ProvidersCredit/providerNotification/styles.jsx","Utility/Model/ProviderNotificationSetting.js","Page/ProvidersCredit/providerNotification/index.js","Page/SendTower/single/RejectModal/index.js","Page/SendTower/single/AcceptModal/index.js","Page/SendTower/single/index.js","Utility/Validation/Schema/AddAssignmentTicket.js","Page/Users/UserTicket/assignment-period.js","Page/Users/UserTicket/auto-assignment-ticket.js","Utility/Model/user-service-line.model.js","Page/Lines/UserServiceLine/SharedServiceLineTab/index.js","Page/Lines/UserServiceLine/index.js","Page/Lines/UserServiceLine/Comments/CommentItem/index.js","Page/Lines/UserServiceLine/Comments/index.js","Page/Lines/UserServiceLine/Details/index.js","Page/Financial/OnlinePayment/Detail/index.js","Page/campaigns/List/index.js","Page/campaigns/Members/index.js","Page/campaigns/Add/index.js","Page/campaigns/Edit/index.js","Page/campaigns/index.js","Page/Lines/AccessPublic/index.js","Page/Financial/SepidarLogs/index.js","AppRoute.js","Requester/Urls.js","Utility/Theme.js","Utility/LocalStorge/LocalToken.js","serviceWorker.js","Reducers/pending-lines.js","Reducers/AdminDetail.js","Reducers/setting-modal.js","Reducers/DiscountCodeDetail.js","Reducers/UserProfileData.js","Reducers/UserLegalData.js","Reducers/locationData.js","Reducers/CreditPackageItem.js","Reducers/BasePriceTiers.js","Reducers/guest-data.js","Reducers/index.js","store.js","index.js","Context/AppContext.js","Assets/images/user.jpg"],"names":["module","exports","bootstrapper","state","action","type","data","App","permission","useRef","useState","connection","setConnection","LocalToken","getAccessToken","hasToken","setHasToken","notificationList","name","title","body","url","notificationPermission","a","Notification","requestPermission","current","newConnection","HubConnectionBuilder","withUrl","process","REACT_APP_API_HOST","build","notificationHandler","item","on","value","icon","Logo","onclick","window","open","useEffect","stopConnection","stop","then","console","log","start","result","newGuestNotification","newLineNotification","newTicketNotification","newFastSendTemplateNotification","catch","e","Provider","rtl","theme","NoMatch","StyledLayout","styled","div","WrapperLayout","ContentLayout","HeaderContent","FooterContent","MainContent","FooterLayout","footer","PageTitleLayout","devicesWidth","mobile","min","max","tablet","desktop","initScreenStatus","width","innerWidth","deviceMode","sidebarMode","CheckDeviceType","device","CheckSideBarMode","resize","PureComponent","HandleResizeWindow","WindowsDimensions","screenStatus","setScreenStatus","setWidth","updateSize","fn","ms","timer","_","clearTimeout","setTimeout","apply","arguments","debounce","x","addEventListener","removeEventListener","getWidthString","span","Col","props","xl","lg","md","sm","xs","LoaderWrapper","LoaderContainer","lightGreen","primary","Loader","className","useOnClickOutside","ref","handler","listener","event","contains","target","document","HeaderLayout","header","StyledTopBarListItems","ul","StyledTopBarItem","li","StyleDrowpDown","ProfileImage","src","white","UserName","StyledTooltip","secondary","StyledWrapperSvg","ArrowIcon","xmlns","y","enableBackground","version","viewBox","xmlSpace","d","connect","adminProfile","dropDownExpand","setDropDownExpand","useContext","AppContext","history","useHistory","onClick","preventDefault","changeSidebarState","data-widget","profileImageURL","userIcon","firstName","lastName","to","Remove","push","Navigation","menuItem","removeClass","location","pathname","m","getElementsByClassName","Array","prototype","forEach","call","el","currentTarget","children","classList","remove","subMenus","isShow","key","stopPropagation","includes","closest","add","map","SItem","link","alt","exact","activeClassName","id","data-name","fill","shapefill","cx","cy","r","LogoMinimize","height","rx","ry","style","IdentityRoleList","IdentityRoleTitle","find","RoleCanActivate","accessList","roleId","roleTitle","parseInt","menuItems","setMenuItems","items","length","subMenuItem","errorTranslateEnum","errorTranslateService","baseurl","Urls","base","refreshing_token","axiosInstance","axios","create","refresh_token","put","refreshToken","JSON","stringify","geRefreshToken","headers","interceptors","request","use","config","AdminLogin","Authorization","replace","error","Promise","reject","response","status","success","toast","errorCode","Error","originalConfig","localStorage","clear","_retry","res","setAccessToken","Get","params","method","paramsSerializer","paramList","queryString","Post","Put","Patch","Delete","Component","component","dispatch","roles","rest","search","useLocation","loading","setLoading","query","parse","needCount","ApiClient","adminBootstrapper","render","PublicRoute","restricted","BackWrapper","BackToPage","toPage","goBack","Button","button","disabled","primaryHover","iconPosition","greenDisable","greenBtn","greenBtnHover","darkGreenDisable","darkGreenBtn","darkGreenBtnHover","redDisable","redBtn","redBtnHover","yellowDisable","yellowBtn","grayDark","yellowBtnHover","grayDisable","grayBtn","grayBtnHover","IconContainer","hasIcon","StyledButton","btnStyle","CheckBox","FormLayout","StyledForm","form","FormGroup","gray","FormInput","input","red","readOnly","otpCode","FormSelect","select","multiple","FormTextArea","textarea","FormLable","label","show","FormError","copyCodeToClipboard","persist","parentNode","nextSibling","execCommand","StyledInput","lable","focus","formGroupClass","isCopyCapability","StyledSelect","optionItems","hasDefaultOption","undefined","index","StyledTextArea","textAreaClass","UploadButton","FormUploadInput","lightGray","StyledInputUpload","hasurl","htmlFor","FormCheckBoxGroup","FormCheckBox","StyledCheckBox","checked","FormSwitchBoxGroup","FormSwitchBox","StyledSwitchBox","StyledRadioBox","StyledRadioBtn","AutocompleteWrapper","AutocompleteList","placeholder","options","keyName","valueName","inputHandler","selectItem","selectOpen","setSelectOpen","inputText","setInputText","defaultValue","f","onChange","changeInputHandler","selectHandler","NumericalValidationMultilang","strNum","preventAlphabet","convertPersianToEnglish","substring","persianNumbers","arabicNumbers","englishNumbers","split","c","indexOf","join","numbers","char","TicketDepartmentList","NumberRegExp","NotLatinRegex","nationalId","Yup","required","test","ValidNationalId","nationalIdCompany","matches","phoneRegExp","userPhoneNumber","username","password","setPassword","oldPassword","newPassword","repeatPassword","oneOf","subject","description","longDescription","suspendDescription","fastSendTemplateRejectDescription","commentDescription","keyWord","isCancellation","forbiddenWords","notificationTitle","notificationContent","department","priority","outcome","ticketContent","fatherName","certificateNo","birthDate","address","sendMessage","userIsVip","postalCode","SUPPORTED_FORMATS","ticketFile","size","ext","changeDepartment","uploadable","invoiceNumber","nullable","invoiceDate","count","discountPrice","creditCount","basePrice","lineProfitPercent","creditProfitPercent","roleItems","suspended","emailRegExp","email","numberLimitation","smsContent","lineNumber","providerId","guestFirstName","guestLastName","guestFatherName","addLineNumber","guestCertificateNo","guestBirthDate","guestPhoneNumber","guestPostalCode","guestAddress","guestCompanyActivityField","companyActivityField","guestCompanyName","companyName","registrationNumber","guestRegistrationNumber","guestLegalNationalId","companyType","gazetteUploadedFile","guestCompanyType","cityId","provinceId","bankProvider","paymentDueDate","paymentDueTime","trackingNumber","payerFullName","paymentDescription","invoiceDiscount","membershipKeyWord","cancellationKeyWord","fromDate","toDate","number","date","usageLimitationPerUser","discountCode","userUsername","every","ipAddress","providerThresholdCredit","providerAmount","providerChargedAt","withMobile","withEmail","OldPanelInvoiceEmail","when","is","dedicatedBasePrice","Number","discountedBasePrice","netPrice","planIsActive","planName","planPosition","planProviderId","planNumberLength","planCreditCount","planCreditBasePrice","planBasePriceTier","of","planPerMonth","shape","totalAmount","lineAmount","typeError","creditAmount","planLimitationItem","dedicatedLimitForParameters","webServiceLimitation","PurchaseRestrictionPaymentCount","PurchaseRestrictionTime","linesList","planLineNumber","basePriceDisCount","planId","planDuration","trakingNumber","AddUserAdminSchema","AddUserAdmin","initialValues","validationSchema","enableReinitialize","onSubmit","values","actions","AdminsManagment","err","formik","handleSubmit","onBlur","handleBlur","maxLength","errors","touched","setFieldValue","autoComplete","inputMode","convertStr","isValid","dirty","isSubmitting","ModifyAdminRoleSchema","AdminItemDetails","selectedOption","setSelectedOption","adminProperties","setAdminProperties","btnLoading","setBtnLoading","adminDetails","useSelector","AdminDetailReducer","Object","entries","roleIds","temp","fullName","isSuspended","slice","option","String","adminId","getOptionLabel","closeMenuOnSelect","isMulti","sendSMSLimitationModel","AdminActivityOperationModel","BankProviderList","FastSendTemplateStatus","TemplateVerifyStatus","LineEarnEnum","lineTypesEnum","lineTypes","UserLineEarnMethod","UserLineStatus","UserLineStatusNotPending","UserLinePrebuyStatus","WhoisLineOperationStatus","TicketPriorityList","DatePickerContainer","LabelContainer","dateObject","MyDatePicker","datePickerValue","setDatePickerValue","setMin","setMax","toString","haveTime","moment","format","calendar","persian","locale","persian_fa","plugins","hideSeconds","position","hStep","mStep","sStep","minDate","maxDate","month","day","hour","minute","dateValue","baseFormat","year","MyRangePicker","minVal","setMinVal","maxVal","setMaxVal","FromDate","setFromDate","ToDate","setToDate","removeHandler","mode","fromDateHandler","useCallback","fromDateNumber","toDateHandler","toDateNumber","fromValue","toValue","column","hstep","mstep","sstep","fromError","toError","StepList","invoiceTypeModel","PaymentStatusModel","ProviderEnum","SystemLineProviderEnum","prefix","Eng","TicketStatusList","CreditTransactionModel","forwardRef","React","useImperativeHandle","getFilter","TableFilters","adminSummaryList","setAdminSummaryList","adminSummaryCustomList","setAdminSummaryCustomList","adminAssignCustomList","setAdminAssignCustomList","filterName","step","earnMethod","lineType","assignedAdminId","isExpired","isExpiredLine","isActive","isActiveCampaign","isDeleted","isRead","creditTransactionType","isOnline","isOfficial","onlyReturns","isVerified","fromNumber","toNumber","isPaid","limitationType","operation","onlyFree","onlyPendings","bankId","onlyHandled","ReviewState","filters","SetFilters","componentList","datePickerFilter","changeHandler","provider","lineStatus","templateStatus","notPendingTemplateStatus","InvoiceTypeFilter","PaymentStatusFilter","isVerifiedFilter","list","filter","changeInput","changeSelect","isHandled","val","prevState","resetFilters","keys","removeFilter","addFilters","itemsKey","AdminSummary","filtersList","hasOwnProperty","ColumnsGenerator","columns","accessor","ConvertQueryString","Styles","tableFilter","pageData","Table","actionDispatched","pageConfig","selectedDispatch","filterDispatch","exportDispatched","rows","setRows","actionsFn","actionName","TdCellData","cell","isArray","dangerouslySetInnerHTML","__html","childRef","selectAll","setSelectAll","defaultPageSize","setDefaultPageSize","defaultPhrase","setDefaultPhrase","pageOptions","setPageOptions","cursorHandler","row","condition","tableChange","pageState","appliedFilter","tableFilterKey","pageSize","totalItemsCount","tableRows","currentObj","col","cells","original","isSelected","createTableRows","pageList","i","totalPagesCount","createPaginationList","urlData","pageNumber","phrase","Dropdown","Toggle","Menu","renderOnMount","Item","export","hasSelectCol","page","selectedList","headSelectHandler","headTitle","rowColor","background","color","openRow","selectedAll","unselectedAll","rowSelectHandler","data-label","tooltipTitle","data-tip","data-for","aria-haspopup","role","colSpan","isNaN","TicketDepartment","AdminsList","adminsListItem","setAdminsListItem","useDispatch","currentAdminUser","tableConfig","userName","isSuspendedIcon","roleName","department2","view","resData","IdentityRoleService","DashboardLayuot","NewTicketIcon","PendingLineIcon","PendingTemplatesIcon","PendingGuestForApproveIcon","PendingManualPaymentsIcon","TechnicalTicketsIcon","UserAnswerdTicketIcon","InProgressTicketsIcon","FinancialTicketsIcon","SeprateNumberWithComma","groupBy","keyGetter","Map","collection","get","set","Disconnected","stroke","strokeWidth","strokeLinecap","fillRule","clipRule","ProviderList","checkProvideState","isAvailable","fontSize","delay","setOpen","dashboardItems","setDashboardItems","monitoringData","setMonitoringData","loadingFlag","setLoadingFlag","ticketList","setTicketList","otherList","setOtherList","callApi","GetDashboard","GetMonitoringProviderStatus","from","ticketItems","listItems","clickHandler","interval","setInterval","clearInterval","totalPaymentToday","Collapse","in","Badge","pill","variant","DateConvert","second","CloseIcon","StyledModalContainer","StyledModal","borderRadius","shadow","Overlay","Wrapper","Header","border","HeaderTitle","HeaderAction","Container","Modal","ThemeContext","visible","setShow","headerTitle","onCancel","onClose","ModalRef","callBack","ClickFunc","callback","OutSideClick","useMemo","overflowY","closable","FastSendTemplateRejectSchema","fastSendTemlateModalTitle","createdAt","templateText","FastSendTemplatePendingModal","dataChange","modalReject","rejectHandler","onCloseModal","templateHandler","Swal","fire","text","showCancelButton","confirmButtonColor","cancelButtonText","cancelButtonColor","confirmButtonText","isConfirmed","putFastSendTemplates","isInitialValid","onReset","formikBag","handleReset","str","trim","whiteSpace","FastSendTemplatesPending","pendingData","setPendingData","isModal","setIsModal","modalData","setModalData","isReject","setIsReject","getFastSendTemplatePendingList","statuses","getFastSendTemplates","VerifyStatusService","verifyStatusName","FastSendTemplateNotPendingModal","payload","verifyStatus","FastSendTemplatesNotPending","notPendingData","setNotPendingData","getFastSendTemplateNotPendingList","edit","userId","FastSendTemplateList","match","path","TowerStatusList","TowerOperatorList","SendTowerPending","requests","setRequests","getSendTowerPending","firstSendAt","totalPrice","toLocaleString","operatorName","operatorId","stateName","recipientsCount","SendTowerNotPending","getSendTowerNotPending","SendTower","AddReturnInvoice","singleInvoice","setSingleInvoice","setCreditCount","searchItems","returnObj","invoiceId","baseUrl","GetOfficialInvoices","details","GetUserCreditCount","vatPercent","maxCount","validate","parseFloat","TimePickerStyled","withoutSecond","timePickerValue","setTimePickerValue","defaultVal","valueObj","DateObject","disableDayPicker","ModifyLendInvoiceItemSchema","LendInvoiceItemModal","setVisible","banksProviderList","credit","finalPrice","lendDescription","dataBody","ModifyLendInvoices","resetForm","subtract","BanksProvider","banks","lendInvoicesList","setLendInvoicesList","lendItemModalVisible","setLendItemModalVisible","lendInvoiceItem","setLendInvoiceItem","setBanksProviderList","openLendItem","getLendInvoceList","responseData","isPaidStatus","banksList","onCancle","ManualPaymentsList","manualPaymentLists","setManualPaymentLists","GetPendingManualPayments","paidAt","PaymentStatusService","AcceptedPaymentModal","paymentId","RejectedManualPaymentSchema","RejectedPaymentModal","singleManualPayment","setSingleManualPayment","acceptedPaymentModalVisible","setAcceptedPaymentModalVisible","rejectedPaymentModalVisible","setRejectedPaymentModalVisible","bankIdTitle","fifteenRemarkPrice","vatPrice","paidAtConvert","userDescription","manualPaymentTitles","setManualPaymentTitles","showEditModal","setEditModal","getData","b","netPriceValue","EditPaymentManual","handleChange","InvoiceApproved","tableActions","officialInvoiceApprovedList","setOfficialInvoiceApprovedList","localTableConfig","numbered","canModifyDiscountPrice","isReturnInvoice","windowOpen","GetExportFromOfficialNumberedInvoices","NumberingInvoiceSchema","InvoiceNumberingGroupModal","closeModal","selectedInvoice","submit","isOldPanel","sendSms","isReturn","sendLinkViaSms","formValues","GroupNumberedPanelInvoice","invoices","InvoiceAwaitingApproval","officialinvoiceAwaitingList","setOfficialinvoiceAwaitingList","setSelectedInvoice","showNumberingGroupModal","setShowNumberingGroupModal","getInvoices","formArray","OldPanelInvoiceApproved","invoiceApprovedList","setInvoiceApprovedList","GetOldPanelOfficialInvoices","isManualPayment","OldPanelBase","OldPanelInvoiceAwaitingApproval","deleteItems","setDeleteItem","invoiceAwaitingList","setInvoiceAwaitingList","delete","deleteAll","onInit","actionsHandler","selectedHandler","OfficialInvoicesList","oldPanelTableConfig","WhiteSmsIcon","BuyerDetails","singleInvoiceDetails","economicCode","phoneNumber","SellerDetails","invoce","sellerDetailLineOne","setSellerDetailLineOne","sellerDetailLineTwo","setSellerDetailLineTwo","officialInvoiceName","creationDateTime","totalPriceAfterDiscount","totalPriceAfterVatAndDiscount","priceAfterDiscount","persianJs","digitsToWords","AddInvoiceNumberSchema","AddInvoiceNumberInOldPanelSchema","RetryOldPanelInvoiceSchema","AddNumberToInvoiceModal","setIsOldPanel","userEmail","setUserEmail","officialInvoiceId","hasOldPanel","formSubmit","sepidarRegisterOptions","intendedFirstName","intendedLastName","isNewNameBeRegistered","ignoreCheckToRegistrationNewCustomer","NumberedOldPanelInvoice","setNumberForInvoice","EditDiscountSchema","EditInvoiceDiscountModal","isSave","isCustom","setIsCustom","discountKey","setDiscountKey","invoiceDetails","setInvoiceDetails","invoiceNewDetails","setInvoiceNewDetails","discountItem","isDiscountable","detailDiscountId","invoiceDetailId","suggestedDiscountPrice","getOldPanelOfficialDiscount","newDetails","getOfficialDiscount","SepidarModal","singleOfficialInvoice","setSubmitting","registerOldPanelSepidar","html","customerFullName","isExistCustomer","customerCode","customerId","returnedInvoiceCode","invoiceCode","returnedInvoiceId","receiptCode","receiptId","registerSepidarReturnInvoice","registerSepidar","submitForm","invoiceDetailItem","EditInvoiceDetailSchema","EditDetailInvoiceModal","toEnglishDigits","changeInvoiceDetails","arrayHelpers","marginTop","minWidth","marginRight","insert","friend","OfficialInvoiceItem","setSingleOfficialInvoice","invoiceTableDetails","setInvoiceTableDetails","editableInvoiceData","setEditableInvoiceData","addNumberToInvoiceModalVisible","setAddNumberToInvoiceModalVisible","editInvoiceDiscountModalVisible","setEditInvoiceDiscountModalVisible","sepidarModal","showSepidarModal","editDetailsModal","showEditDetailsModal","sepidarInvoice","setSepidarInvoice","editKey","setEditKey","setVatPercent","mapData","invoice","provinceName","cityName","EditInvoiceDetail","hasReturn","cancelInvoice","deleteInvoice","sepidarData","GetBankProvider","ConfirmationPaymentSchema","PaymentConfirmationModal","dataModalChanged","setPaymentId","paymentConfirmation","OnlinePayment","useRouteMatch","useParams","onlinePaymentLists","setOnlinePaymentLists","paymentConfirmationModal","setPaymentConfirmationModal","handleClose","formatPaymentItem","bankName","statusName","isOfficialShow","canBeChangeToOfficial","isOnlineName","userPayments","getOnlinePaymentList","getExportOnlinePaymentList","centered","onHide","Title","Body","AddForbiddenWordsSchema","AddForbiddenWords","word","modifyAndDeleteForbiddenWords","ValidateWrapper","ValidateWrapperText","p","arabicToPersianMap","ValidateMessage","textMessage","setTextMessage","validatedMessage","setValidatedMessage","invalidItems","setInvalidItems","validationHandler","arabicText","persianText","ArabicToFa","ValidationMessage","messageText","modalCloseHandler","ForbiddenWordsList","forbiddenData","setForbiddenData","modifyItem","setModifyItem","validateModalHandler","setValidateModalHandler","deleteForbiddenWord","getForbiddenWordsList","currentItem","AddForbiddenWord","modalDataChange","GuestStep","FinishedList","guestData","setGuestData","getAllGuest","lastModifiedDateTime","guestChecksCount","copy","navigator","clipboard","writeText","GuestList","GuestPage","CompanyActivityList","CompanyTypeList","EditGuestSchema","EditGuestLegalSchema","nationalCard","setNationalCard","gazette","setGazette","provinceItem","setProvinceItem","cityItem","setCityItem","init","getProvince","province","getCity","city","guestIsMale","isMale","legalNationalId","avenue","alley","plaque","isLegal","guest","res2","nationalCardUploadedURL","gazetteUploadedURL","UploadIcon","UploadConatiner","UploadTitle","ImageBox","FileNamePreview","UploadImageWrapper","radius","grey5","UploadImageBox","grey4","UploadImageImageForm","DeleteAction","DownloadAction","UploadFileBox","UploadFileWrqapper","fileUrl","imageCoverFit","accept","UploadFileWrqapperAllKindOfFile","inputElement","callbackfunc","file","deleteFile","downloadUrl","click","files","paleGrey","createElement","href","appendChild","removeChild","downloadFile","GuestData","nationalCardUrl","setNationalCardUrl","gazetteURL","setGazetteURL","nationalCardImage","warning","formData","FormData","append","modifyGuestNationalCard","changeImageHandler","gazetteImage","modifyGuestGazette","changeGazetteImageHandler","AddGuestCommentSchema","AddGuestCommentModal","GuestComment","GuestCommentDetailModal","commentData","adminUserName","content","GuestCommentsList","guestCommentsData","setGuestCommentsData","guestCommentModal","setGuestCommentModal","guestAddCommentModal","setAddGuestCommentModal","commentModalData","setCommentModalData","getGuestComments","IncommingCalls","getIcommingCalls","time","CompanyActivity","CompanyType","OutcomeList","OutcomeDescriptionList","GuestOutcome","GuestLogs","Accordion","defaultActiveKey","as","eventKey","CardColumns","Card","adminFullName","RejectGuestSchema","RejectFormModal","rejectEvent","ConvertUserTypeSchema","ConvertGuestType","uploadPreview","setUploadPreview","legal","setLegal","uploadFile","setUploadFile","legalData","transformGuest","saveRes","URL","createObjectURL","handleOnBlur","GuestViewPage","guestRejectModal","setGuestRejectModal","convertUserTypeModal","ShowConvertUserTypeModal","getGuestUser","lastModifiedAt","stepTitle","advertisingCampaignName","guestState","isIranian","additionalMobile","guestChecks","GuestInformation","prev","setPrev","GuestView","GetProvider","lineData","setlineData","dataHandler","pendingDetails","lineDelete","removePendingLines","getPendingLines","providerName","lineLengthName","lineLength","EarnMethod","LineStatus","LineTypes","UserDetailsModal","userData","setuserData","userProfile","isMaleName","companyActivityFieldName","companyTypeName","companyNationalId","lineDetails","pendingLines","pendingLine","setpendingLine","userDetailsModal","setuserDetailsModal","earnMethodName","activePendingLine","EnumFlag","flags","sort","SystemLineType","GetSystemLine","element","SystemLineSchema","SystemModal","fromLineOptions","formFields","setFormFields","fromLineNumber","systemLines","updateSystemLine","finally","createSystemLine","propTypes","PropTypes","SystemLines","modal","showModal","SetModalData","lineOption","setLineOption","getSystemLine","getAllSystemLine","providerText","isActiveText","removeSystemLine","UserLineModal","setStatus","whoIsApplied","setWhoIsApplied","setLineType","whoisApplied","statusUserLines","deactiveUserLines","DeleteGiftLineModal","addToFreeGiftLine","deleteUserGiftLines","UserLines","userLineModal","setUserLineModal","deleteGiftLineModal","setDeleteGiftLineModal","setmodalData","openUserLineModal","openDeleteGiftLineModal","modalChangeHandler","getLines","getUserLines","lineTypeText","LoginLayout","AuthForm","LoginFirstStepForm","currentStep","orderStep","LoginSecondStepForm","AdminLoginSchema","darkGreen","LoginFirstStepFormContainer","setStep","account","setAccount","AdminLoginOtpSchema","CountDownTimer","timeLeft","handleResendCode","secondLeft","seconds","setSeconds","showTime","setShowTime","duration","sec","SecondsToms","LoginSecondStepFormContainer","active","setActive","resendOtpCode","Message","getElementsByName","setToken","minLength","Login","startDateTime","endDateTime","readsCountTitle","ViewNotificationModal","notificationData","setNotificationData","globalNotificationSingle","readsCount","NotificationsList","modalId","setModalId","deleteCustomNotification","getCustomNotifications","globalNotifications","showAtEntry","AddGlobalNotification","notification","setNotification","dateConvert","notificationStartDate","notificationEndDate","addGlobalNotification","getSendSMSLimitation","sendSMSModel","sendSMSStatusModel","sendSMSType","UserSuspendSchema","PendingSMSModal","submitLoading","setsubmitLoading","queueConfirm","confirm","getSingleQueue","smsType","smsStorage","userBlock","userSuspend","ABTestShowLinkModal","itemId","campaignItemsData","setCampaignItemsData","getPendingCampaignByItem","alias","toUpperCase","basicLink","direction","openHyperLink","PublicLineEditModalSchema","selectedPublicLine","PublicLineEditModal","optionList","setOptionList","publicLines","changePublicLineConfirm","publicLineId","editPublicLineById","default","PendingSMSDetails","pendingDetail","setPendingDetail","abTestModal","setAbTestModal","modalEvent","setModalEvent","isPeerToPeer","setIsPeerToPeer","isPublicLine","setIsPublicLine","modalEditPublicLine","setModalEditPublicLine","storageType","sentAt","smsTypeTitle","limitationTypeTitle","smartParametricList","parametricResponse","parametricData","recipientCount","EditPublicLine","ChangePasswordSchema","ChangePassword","ModifyAdminPassword","ModifyAdminProfileInfoSchema","ProfileDetails","personalProfile","ModifyAdminProfileInfo","UploadImage","ImageContainer","UploadAvatarConatiner","secondaryGreen","BrowseFile","StyledUploadAvatar","HasUrl","UploadAvatarContainer","imgPreview","setImgPreview","fileToUpload","ModifyAdminProfileAvatar","profileInfo","setProfileInfo","Tabs","Tab","settingModal","NumberLimitationSchema","defaultData","ABTestMinimumContact","abTestMinimunImportedContacts","ContactGroupLimitationCount","contactGroupLimitationCount","FastSendTemplateAddLimitation","fastSendTemplateAddLimitation","RecipientLimitationCountInPerSendSms","recipientLimitationCountInPerSendSms","RecipientLimitationCountInPerWebService","recipientLimitationCountInPerSendApi","UserEventLimitationCount","userEventLimitationCount","UserTemplateLimitationCount","userTemplateLimitationCount","WarningLakeCredit","lackOfCreditWarningThreshold","FifteenRemarkCoefficient","fifteenRemarkCoefficient","assign","fields","updateBlackListTypes","ShouldSendCancellationText","ShouldFilterMobiles","ManageBlacklist","blacklistData","setBlacklistData","setSelectedItem","refactorBlacklistData","selectedNames","nameItem","ReactionToUserTicketModel","GetReactionToUserTicket","returnDefaultData","RealtimeNotification","SendEmail","SendSMS","reactionToUserTicket","ReactionToUserTicket","CooperationWithdrawalAmount","minimumCooperationWithdrawal","cooperationCreditProfit","cooperationLineProfit","array","num","sumAllEnum","updateSendsTypes","SendSmsLimitationType","SendSmsLimitation","ManageSends","sendData","setSendData","SMSContentSchema","modalChange","setGlobalCodeReaderWrongMessage","setGlobalCodeReaderDuplicateMessage","PurchaseRestrictionsSchema","paymentCount","fromTime","toTime","AllowedPaymentCount","FromTime","ToTime","allowedPaymentCount","modifyPaymentLimitations","PurchaseRestrictions","setValue","dataObj","CalledWebserviceCount","calledWebServiceCount","Bank","updateBankAction","isMounted","useFormik","convertModel","updatedObject","fromEntries","findModel","convertDataForm","showTitle","hasGateway","BanksSetting","bankData","setBankData","requestData","setRequestData","deepCopy","updateBank","obj","getbankSetting","baseArray","secondaryArray","isDefault","bank","AllowTotalSmsSendInADay","totalSmsInDay","CreationTimeLimitInHours","PaymentTimeLimitInHours","paymentTimeLimitInHours","creationTimeLimitInHours","towerLimitationConfiguration","CreationLimitCount","NotificationLimitCount","creationLimitCount","notificationLimitCount","publicLineSendLimitations","entry","convertedData","offKeyword","GetOperator","TowerOperatorConfiguration","operatorData","updateOperator","OperatorId","BasePrice","MinRecipientsCount","MaxRecipientsCount","IsActive","operator","towerOperatorConfiguration","PublicLineCostCoefficient","publicLineCost","VatPercent","smsTypeActivation","UserTagAddLimitationCount","userTagLimitation","settingsData","setSettingsData","getSettingList","FastSendTemplateAddLimitationCount","ABTestMinimumImportedContacts","MinimumCooperationWithdrawalAmount","CooperationCreditProfitPercent","CooperationLineProfitPercent","PublicLackOfCreditWarningThreshold","RecipientLimitationCountInApiSend","PaymentLimitations","CalledWebServiceCount","AllowedTotalSmsSentInADay","SendSmsViaTowerLimitations","PublicLineSendLimitations","ReactionToUserTicketType","SendSmsTypesAndBlackListNecessity","SendSmsLimitationSetting","ShouldCheckLinkInSmsContent","linkUrlLimitationInSmsContent","IsCooperationActive","saleCooperationActivation","IsRegisterReceiptSepidarActive","registerSepidarActivation","GlobalCodeReaderWrongParameterMessage","GlobalCodeReaderDuplicateParameterMessage","SendViaPublicLinesIsActivated","publicLineActivation","OffKeywordSettingByProvider","SendSmsViaTowerOperatorConfigurations","SendSmsTypeActivationStatus","DeleteTemplateModal","templateId","setChangedata","ModifyTicketAnswerTemplateById","templateData","setTemplateData","templateItems","setTemplateItems","setTemplateId","changedata","deleteTemplateModalHanlder","modalState","templateTableConfig","TicketAnswerTemplates","templateSchema","AddTicketSchema","AddTemplate","inputRef","setInputRef","templateFile","EditTicketAnswerTemplate","templateDetail","setTemplateDetail","attachedFile","attachedFileUrl","attachedFileId","isSelfUploaded","TicketStatus","TicketPriority","GetTicketPriorityKey","TicketList","setTicketItems","GetTicketsList","dataItem","statusValue","admin","assignedAdmin","comment","CODE_BLOCK_REGEX","LINK_REGEX","parseTicketContent","flatMap","segment","splitContentIntoSegments","parseSegment","isNonEmptySegment","startsWith","endsWith","isCodeBlock","highlightCode","isLink","convertToLink","code","hljs","highlightAuto","hljsFunc","TickeInfo","ticketDetailData","filesModal","fileLength","ticketParams","tItems","setTItems","ticketInfoItems","updatedContents","contents","notesCount","CItem","deleteConfirm","isAdmin","authorImageUrl","Image","UserLogo","authorName","seenAt","isDeletable","CatList","commentList","scrollToBottomRef","prevTargetElementRef","lenghtContent","setLenghtContent","scrollTop","clientHeight","scrollHeight","targetElementDetail","setTargetElementDetail","scrollToTop","top","Math","abs","behavior","scrollTo","Comment","ReplyTicketSchema","TicketReportTypeList","ReplyToTicket","userTicketId","setReload","reload","tab","setTab","AnswerTemplateList","setAnswerTemplateList","lines","setLines","selectedLine","setSelectedLine","filteredAnswerTemplate","setFilteredAnswerTemplate","fileName","linkDownload","reportType","isLoading","report","setReport","getTicketTemplate","getUserLine","ticketType","removeFile","AddTicketReplyByAdmin","oldArray","userLines","changeFile","removeReportFile","responseReport","handleSelectTab","activeKey","onSelect","myArray","selectDepartmentHandler","resultItem","selectTemplate","selectReportType","selectLine","getUserReceiveReport","getUserSendReport","getReportFile","ModifyConfigTicketSchema","ModifyTicketSettingModal","ticketReply","setTicketReply","ticketID","configSetting","setConfigSetting","setAdminName","adminList","setAdminList","customAdminList","setCustomAdminList","customAdminAssignList","setCustomAdminAssignList","TicketStatusModidyList","currentStatus","isUploadable","GetTicketByAdmin","LinkList","FilesListModal","TicketDetail","setTicketDetailData","isClose","setIsClose","filesList","setFilesList","setFilesModal","setUserId","dataList","reverse","replyId","DeleteTicketByAdmin","TicketCommentsWrapper","TicketCommentsListItem","TicketTitleRow","EmptyList","TicketCommnetItem","comments","notes","setNotes","noteId","deleteTicketNote","noteList","splice","TicketCommentSchema","setNoteList","ticketNote","UserList","userListData","setuserListData","getUsers","isActiveIcon","isExpiredIcon","isVIP","someOtherProp","UserVerify","UserPage","UserTicket","userTicketData","setuserTicketData","userTicket","LocationDataAction","UserLegalDataAction","UserProfileDataAction","EditUserCodeVerificationSchema","UserCodeVerification","setEditMobileStep","userMobile","setSubmitLoading","usage","modifyUserVerificationCode","EditUserMobileSchema","UserMobileVerification","setUserMobile","modifyUserMobile","ChangeUserMobile","editMobileStep","UserDeactivationReasonModel","UserDeactivationReasonService","UserInformationWrapper","ItemRow","UserInformationItem","onCopy","userIncompleteFieldsModel","getUserIncompleteFields","UserInformation","userInformationData","setuserInformationData","loadingApproveButt","setLoadingApproveButt","isVIPName","birthDateTime","completionRequirement","userInformationTitle","isLegalName","balance","isActiveName","isSuspendedName","userApprove","boolValue","userApproveInformation","deactivationReason","deactivationReasonDescription","setCookie","useCookies","changeUserMobileModal","setChangeUserMobileModal","accountVerifiedAt","storeProfileData","provinceList","cityList","aria-hidden","loginAsUser","accessToken","domain","AddLineToUserSchema","AddLineToUser","tableData","setTableData","getPrebuyLine","userLinePrebuy","isPrebuy","price","areaCode","userLine","dir","prebuyId","deleteUserLinePrebuy","WhoisModal","whoidLog","setWhoidLog","getMagfaWhoisLogs","magfaWhoisLog","isSuccess","er","whoisLogName","message","magfaWhoisApply","PublicLineSchema","publicLineDate","ActivePublicLines","setActivePublicLines","publicLineExpireDateTime","setPublicLineExpireDateTime","ActivePublicLinesModal","setActivePublicLinesModal","lineModal","setlineModal","addLineModal","setAddLineModal","whoisModal","setWhoisModal","openUserWhoisModal","userPublicLineExpiryInfo","allowedUsingPublicLine","lineHeight","userPublicLinesActivition","formikHelpers","expireAt","titleField","isSuspensionTitle","BlockedUserInformation","BlockActionModal","userUnsuspend","UserBlock","blockList","setblockList","isBlock","setisBlock","detailsModal","setdetailsModal","suspendAction","setsuspendAction","getSuspend","userSuspentionLog","isSuspension","CommentView","forGuest","UserCommentSchema","AddCommentModal","userComments","UserComments","commentsList","setcommentsList","addCommnetModal","setaddCommnetModal","getComments","UserFastSendTemplateView","acceptHandler","UserCustomNotifications","templateList","settemplateList","getUserFastSendTemplate","userFastSendTemplate","UserNotificationSchema","AddCustomNotification","addNotification","userCustomNotification","isReadTitle","NotificationView","UserFastSendTemplates","setnotificationList","modalDetail","setmodalDetail","addNotifModal","setaddNotifModal","notifDetailModal","setnotifDetailModal","deleteNotification","notificationId","customNotification","getNotification","startDate","endDate","AccountRechargeSchema","AccountRechargeModal","setBasePrice","GetCreditTier","basePriceValue","AddCreditLend","CooperationProfitPercentSchema","CooperationProfitModal","profitPercent","onsubmit","cooperationLineProfitPercent","cooperationCreditProfitPercent","changeCooperationLineProfitPercent","changeCooperationCreditProfitPercent","baseSchema","CreditTransferModal","dedicatedPrice","currentCredit","setCurrentCredit","formType","setFormType","schema","userCredit","creditTier","typeTransfer","creditTransfer","toFixed","DedicatedBasePriceSchema","DedicatedUserBasePriceModal","baseId","dedicatedBasePriceList","setDedicatedBasePriceList","dedicatedBasePriceDefault","setDedicatedBasePriceDefault","getDedicatedBasePriceList","DedicatedBasePrice","Boolean","dedicatedUserBasePrice","OfficialPaymentStatusModal","setData","conversionMap","getOfficialPayment","officialPayment","officialPaymentStatus","allowOfficialPaymentChoice","onChangeSwitch","UserFinancial","setisOfficial","accountRechargeModalVisible","setAccountRechargeModalVisible","creditTransferModalVisible","setCreditTransferModalVisible","dedicatedUserBasePriceModalVisible","setDedicatedUserBasePriceModalVisible","officialPaymentTypeModalVisible","setOfficialPaymentTypeModalVisible","dedicatedBasePriceId","setDedicatedBasePriceId","cooperationModal","setCooperationModal","cooperationProfit","setCooperationProfit","haveCooperation","setHaveCooperation","setDedicatedPrice","getUserFinancialSettings","userFinancialSettings","couldHasOfficialInvoice","lastBasePrice","WhiteListOfForbiddenWords","forbiddenWordsFoundList","setForbiddenWordsFoundList","selectedForbiddenWord","setSelectedForbiddenWord","forbiddenWordsList","setForbiddenWordsList","searchQuery","setSearchQuery","debouncedValue","setDebouncedValue","useDebounce","userForbiddenWords","getForbiddenWordList","removeUserForbiddenWords","DedicatedLimitForVerifyCodeParametersSchema","DedicatedLimitForVerifyCodeParametersModal","limitForParameters","setLimitForParameters","limitForParametersActive","setlimitForParametersActive","dedicatedLimitationVerifyParamSize","WebServiceLimitationSchema","CalledWebserviceLimitationModal","userCalledWebServiceCount","UserRestriction","forbiddenWord","newUser","cancellationStatus","setCancellationStatus","verifyCodeParametersModal","setVerifyCodeParametersModal","calledWebServiceModal","setCalledWebServiceModal","userDeniedLimitations","userDeniedResponse","userCancellationPhraseStatus","cancellationPhraseResponse","deniedRestriction","newData","switchHandler","SendMessageSchema","UserSendMessage","userSendSms","sendMessageHandler","UserIncommingCalls","PlanPositionModel","PlanPositionService","AssignUserToPlanSchema","AssignUserPlanModal","activePlanList","setActivePlanList","months","setMonths","selectedPlan","setSelectedPlan","planMonthList","getPlanList","Plan","planItem","includeLine","includeCredit","UserPlan","planMonth","getMonthsBaseSelectedPlan","hasLine","hasCredit","userPlanList","setUserPlanList","assignUserPlaneModalHandler","setAssignUserPlaneModalHandler","getUserPlan","isManual","renewalCount","ActionNameModel","SendStatusModel","WebService","logs","setLogs","selectedLog","setSelectedLog","webServiceModal","setWebServiceModal","webServiceModalTitle","statusCode","modifiedAt","ip","httpMethod","requestUrl","httpStatusCode","requestBody","exceptionMessage","getLogs","webServiceLogs","wordBreak","UserInfo","CreditTransactionType","UserTransactions","transactionsData","settransactionsData","userTransactions","transactedAt","remainCredit","AddTicket","addTicket","WhiteUsers","usersList","setUsersList","getUserList","getWhiteUsersList","restriction","deniedLimitations","deleteWhiteListUser","AddBlacklistKeywordScema","AddBlacklistKeyword","createBlacklistKeyword","SetDefaultBlackListKeywordSchema","SetDefaultBlackListKeyword","keywordList","cancellationKeyWordList","setCancellationKeyWordList","membershipKeyWordList","setMembershipKeyWordList","cancel","memeber","membershipKeyWordId","cancellationKeyWordId","setDefaultBlacklistKeyword","BlackList","blacklistItem","setBlacklistItem","defualtKeywordModal","setDefualtKeywordModal","deleteKeyword","deleteBlacklistKeyword","getBlackList","getBlacklistKeyword","keyWordDefault","AdminActivityLogs","adminsLogList","setAdminsLogList","GetAdminActivityLog","AdminActivityOperationService","DiscountCodeDetailAction","DiscountCodeList","discountCodeList","setDiscountCodeList","deleteDiscountCode","codeID","PublicDiscountCode","getDiscountCodeList","fromDateString","toDateString","usedCount","userProfileData","UserProfileDataReducer","modifyUserNationalCardImage","modifyUserGazetteImage","GenderModel","EditUserProfileSchema","EditUserInvoiceModal","confirmModal","invoiceList","setInvoiceList","isChange","setIsChange","userInvoices","invoiceID","invoiceIndex","findIndex","invoiceHandler","submitModal","locationData","LocationDataReducer","invoiceInformation","setInvoiceInformation","invoiceModal","setInvoiceModal","modifyUserInvoice","EditUserLegalSchema","userLegalData","UserLegalDataReducer","legalInformation","setLegalInformation","modifyUserLegal","setIsLegal","SaleCooperationTransactionTypeModal","SaleCooperationTransaction","transaction","setTransaction","getSaleCooperationTransaction","amount","presenterUserName","presenterId","CreateAgreementModal","SaleCooperationStatusEnum","statusRef","SaleCooperationStatusModal","settledAt","editSaleCooperationTransaction","SaleCooperationSettlement","settlement","setSettlement","agreementModal","setAgreementModal","createAgreementModal","setCreateAgreementModal","selectedData","setSelectedData","getSaleCooperationSettlement","SaleCooperationSettlementModal","shebaCode","agreement","DiscountCodeLog","DiscountCodeLogs","discountedPrice","isCompleted","PendingSMS","setpendingData","setSelectedList","refreshDate","setRefreshDate","getSMSQueue","getPendingSMS","queueSmsHandler","queueList","autoRefresh","RepeatSMs","getFrequentMessage","setFrequentMessageValidation","RepeatSMsHistory","handledAt","RepeatVerifySMs","highConsumptionVerify","totalSentCount","pendingsCount","PublicLine","isDisableButt","setIsDisableButt","getPendingSMSPublicLine","stateFa","PendingSmsPages","smsCount","setSmsCount","getBadgeData","getCountSMS","pendingSendMessagesCount","frequentMessageTextsCount","highConsumptionWebServiceUsersCount","pendingPublicLineSendMessagesCount","UserInvoice","officialInvoiceData","setofficialInvoiceData","userOfficialInvoice","typeName","isVerifiedTitle","clas","class","transformUsers","ProviderThresholdCreditSchema","ModifyProviderThresholdModal","selectedProviderItem","threshold","ModifyProviderThreshold","IncreaseProviderAmountSchema","ProviderAmountModal","selectedProviderAmountData","providerData","setProviderData","chargedAt","getProviderAmount","GetProviderAmount","providerChargeTime","IncreaseProviderAmount","ProvidersCreditList","providersCreditList","setProvidersCreditList","providerThresholdModal","setProviderThresholdModal","setSelectedProviderItem","providerAmountItemModal","setProviderAmountItemModal","setSelectedProviderAmountData","balanceUpdateTime","setBalanceUpdateTime","GetProvidersCredit","balances","thresholdValue","notifiedAt","fifteenMinutesUsage","oneHourUsage","dayUsageValue","changeIn24Hours","dayUsage","updatedAt","setting","RetryInvoiceSendModal","RetryOldPanelInvoice","OldPanelOfficialInvoiceItem","retryInvoiceSendModalVisible","setRetryInvoiceSendModalVisible","EditOldPanelUserDetails","cancelOldPanelInvoice","removeOldPanelInvoice","setSepidarModal","CreditPackageItemModal","creditPackageItem","setCreditPackageItem","creditPackageValue","netPriceString","discountPercentString","isActiveValue","soldCount","packageItem","creditPackageList","setCreditPackageList","creditPackageModal","setCreditPackageModal","deleteCreditPackage","packageId","ModifyCreditPackage","getCreditPackageList","GetCreditPackage","isActiveString","ModifyCreditPackageSchema","creditPackageData","CreditPackageItemReducer","editMode","validateOnMount","FormLabel","AddBlockedIPSchema","AddBlockedNumberSchema","AddBlockIPModal","BlockedIPLog","BlockedIPList","blockedIPLog","setBlockedIPLog","setShowModal","deleteBlockedIP","itemID","getBlockedIPLogList","blockedIP","AddBlockedNumbersModal","BlockedNumber","BlockedNumbersList","deleteBlockedNumber","getBlockedNumbersLogList","AddBlockedNumberModal","Suspended","UseFeedbackDetailModal","UserFeedback","showUserFeedBackModal","setShowUserFeedBackModal","userFeedBackList","setUserFeedBackList","getUserFeedbackList","GetFeedback","shortContent","PlansList","planList","setPlanList","positionTitle","isActiveStatus","ActivePlanUser","buyerCount","isDeletedStatus","dataItems","manualAssignmentCount","PlanItemLimitationModel","PlanConfigurationsList","BulkSend","MobileBankSend","ParametricSend","MultipleTextSend","ScheduledCampaign","ABTestCampaign","EventCampaign","ReceivedMessagesReport","UserTemplate","BlackListInquiryCount","SaleCooperation","PersonalBlackListKeyword","FastSend","ApiKey","IPLimitationOnApiKeys","SmsTransmissionApiParameterless","SmsTransmissionApiWithParameter","SmsTransmissionEmailParameterless","SmsTransmissionEmailWithParameter","SmsTransmissionMobileParameterless","SmsTransmissionMobileWithParameter","SmsSecretaryParameterless","SmsSecretaryWithParameter","CodeReader","CodeReaderParameters","Contacts","ContactGroups","ContactEvents","ConcurrentOpenTicketsCount","WebServices","PlanSectionStyled","Repeat","numTimes","PlanItemDetail","planTiers","setPlanTiers","setPlanBasePriceTier","setPlanPerMonth","planDetail","setPlanDetail","setHasLine","hasFreeCredit","setHasFreeCredit","planBasePriceInTiersName","fromPrice","toPrice","planBasePrice","planLimitationItemName","limitationCount","basePrices","creditTiers","creditTierId","line","numberLength","tierData","refrenceId","scope","monthOption","PlanFree","SingleRepeatVerifySMs","messages","setMessages","highConsumptionVerifyUserMessages","isPending","isApprove","shouldAccept","messageIds","highConsumptionVerifyPerUser","selectAllAction","ModifyDedicatedBasePriceSchema","ModifyDedicatedBasePriceModal","modifyDedicatedModalHandler","setModifyDedicatedModalHandler","modifybasePriceData","setModifybasePriceData","DeleteDedicatedBasePrice","basePriceId","getDedicatedBasePrice","usagesCount","NumberList","numberListHandler","setValidArray","onKeyUp","numberList","pop","cleanNumbersList","keyCode","validArrayList","invalidArray","validArray","commaSeparator","cols","AddLinesToPlansSchema","AddLinesModal","closeHandler","confirmHandler","numbersList","setNumbersList","providersList","setProvidersList","plansLines","PlansLineList","setLinesList","lineCount","setLineCount","isAddLine","setIsAddLine","isFreeIcon","assignedAt","plansLinesCount","isFree","AssignPlanLineToUserSchema","AssignPlanLineModal","plansLinesPendingUser","UserPendingForPlanLine","isAssignModal","setIsAssignModal","handledDateTime","numberText","handleAt","PlansLines","StepContainer","Step","stepItem","stepCount","subTitle","Stepper","DisCountDateWrapper","StepWizardWrapper","black","AddDiscountCodeSchema","AddBasicInformationStepSchema","ModifyBasicInformationStepSchema","BasePriceDisCountSchema","tiers","BasePriceTiersReducer","updateState","initalData","setBasePriceDisCount","discountFieldName","discountList","discountedBasePriceInTiers","BasicInformationStep","firstStepData","setFirstStepData","DedicatedBasePriceStep","dedicatedBasePriceInTiers","setDedicatedBasePriceInTiers","dedicatedBasePriceDisCount","setDedicatedBasePriceDisCount","dedicatedBasePrices","publicDiscountCodeDedicatedBasePrices","planBasePriceDisCount","setPlanBasePriceDisCount","planBasePriceBronze","planBasePriceSilver","planBasePriceGold","positionId","filterByPlanPosition","publicDiscountCodePlanCreditTiers","discountItemInitalData","DiscountCodeDetailReducer","activeStep","setActiveStep","finalData","setFinalData","lastStepData","discountedBasePricesData","planBasePriceDisCountData","tiersAndDiscountedBasePrices","dedicatedBasePriceAndDiscountedBasePrices","planTiersAndDiscountedBasePrices","submitDiscountCode","ProviderStateLayout","Connected","ChartJS","register","LineElement","PointElement","LinearScale","CategoryScale","ProvidersState","gradient","responsive","maintainAspectRatio","legend","display","scales","suggestedMin","suggestedMax","ticks","stepSize","lastMessageStates","GetMonitoringData","providerServiceStatus","stateHistory","labels","providerStateHistories","Date","getHours","getMinutes","datasets","providerState","messagesState","states","some","borderColor","context","chart","ctx","chartArea","chartWidth","right","left","chartHeight","bottom","createLinearGradient","addColorStop","getGradient","backgroundColor","stepped","lastMessages","minHeight","borderBottom","UsersPlan","userList","setUserList","UsersPerPlan","PublicLinesModal","PublicActiveModal","selectedItem","publicLineActivitionById","EditDefaultLineModal","publicSetDefaultLineById","PublicLines","setLineData","activeModal","showActiveModal","showEditDefaultLineModal","setShowEditDefaultLineModal","sendViaPublicLinesIsActivated","isDefaultIcon","deletePublicLine","DeletePublicLine","ProviderNotificationModel","ProviderNotification","providerNotification","setProviderNotification","ProviderNotificationSetting","messageInterval","recipients","mobiles","alignItems","RejectedRequestTower","sendTowerChangeStatus","AcceptRequestTower","SendTowerSingle","setRequest","rejectModal","setRejectModal","acceptModal","setAcceptModal","param","getSingleSendTower","sendTowerPaid","sendTowerReady","userFullName","rejectDescription","messageCount","totalMessageCount","AddAssignmentTicket","adminIds","startTime","endTime","AssignmentPeriod","adminsList","setMinDate","urls","assignmentTicket","getOptionValue","end","deleteHandler","useLayoutEffect","UserServiceLineStatusEnum","UserServiceLineStatusModel","UserServiceLineFileStatusModel","ServiceLineFileTypeModel","SharedServiceLineTab","getServiceLine","getAllUserServiceLine","statusFa","u","UserServiceLine","CommentItem","DeleteServiceLineNote","ServiceLineCommentSchema","getDetailUserServiceLine","adminNotes","isDelete","AddServiceLineNote","UserServiceLineDetails","modalType","setModalType","userServiceLineModalSchema","rejectReason","rejectByWho","typeFa","receiveDocumentsByAdmin","decline","download","acceptFileByAdmin","IsFromOperator","rejectFileByAdmin","OnlinePaymentDetail","convertToOfficialModal","setConvertToOfficialModal","onlinePaymentDetail","setOnlinePaymentDetail","basePriceString","discountPriceString","fifteenRemarkPriceString","onlinePaymentTitles","setOnlinePaymentTitles","formatPrice","formatDateString","formatData","formattedData","formatPriceString","onlinePaymentById","PaymentAccessButton","canGiveOfficialAccess","buttonText","GiveOfficialAccess","CampaignList","setCampaignList","getCampaignList","advertisingCampaign","endAt","startAt","info","CampaignMembers","Campaign","setCampaign","membersList","setMembersList","AccountTypeConvert","guestId","getCampaign","advertisingCampaignById","convertOfficial","getMembersList","advertisingCampaignMembersById","accountType","advertisingCampaignMembers","copyItem","campaignName","AddCampaign","Alert","EditCampaign","campaigns","CampaignsPage","Edit","Add","AccessPublic","usersPublicLines","setUsersPublicLines","getUsersPublicLineAccess","usersPublicLineAccess","SepidarLogs","ErrorLogSepidar","customerName","AppRoute","Dashboard","EditGuest","Tickets","TicketComments","AutoAssignmentTicket","PendingLines","PendingLineDetails","EditUserProfile","ConvertUserType","ManualPaymentItem","LendInvoicesList","AdminProfile","ModifyDiscountCode","SettingList","CreditPackageList","ModifyCreditPackageItem","this","REACT_APP_OLDPANEL_URL","REACT_APP_MONITORING_URL","MonitoringBase","adminApi","ticketId","serviceLineId","userServiceLineId","userServiceLineFileId","campaignId","OldPanelBaseUrl","$paramsListBg","yellow","borderGreen","greenBlue","headerHeight","blue","$hoverBlue","darkBlue","lightBlue","getItem","setItem","setRefreshToken","removeItem","isLocalhost","hostname","registerValidSW","swUrl","serviceWorker","registration","update","onupdatefound","installingWorker","installing","onstatechange","controller","onUpdate","onSuccess","reducers","combineReducers","store","createStore","compose","__REDUX_DEVTOOLS_EXTENSION__","ReactDOM","StrictMode","getElementById","origin","fetch","contentType","ready","unregister","checkValidServiceWorker","serviceWorkerRegistration","createContext"],"mappings":"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","file":"static/js/main.58fe358b.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/logo.3b0a62e0.png\";","const bootstrapper = (state = [], action) => {\r\n switch (action.type) {\r\n case \"BOOTSTRAPPER\":\r\n return {\r\n data: action.data,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n\r\nexport default bootstrapper","import React, { useEffect, useRef, useState } from 'react';\r\nimport { ToastContainer } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport { ThemeProvider } from 'styled-components';\r\nimport './App.scss';\r\nimport AppRoute from './AppRoute';\r\nimport AppContext from './Context/AppContext';\r\nimport LocalToken from './Utility/LocalStorge/LocalToken';\r\nimport { theme } from './Utility/Theme';\r\nimport { HubConnectionBuilder } from '@microsoft/signalr';\r\nimport Logo from './Assets/images/logo.png';\r\n\r\nconst App = () => {\r\n\r\n const permission = useRef('');\r\n const [connection, setConnection] = useState(null);\r\n const [hasToken, setHasToken] = useState(\r\n LocalToken.getAccessToken() ? true : false\r\n );\r\n\r\n const notificationList = {\r\n NewGuestConfirmationNotification: {\r\n name: 'NewGuestConfirmationNotification',\r\n title: 'کاربر مهمان',\r\n body: 'یک کاربر منتظر تایید است.',\r\n url: '/guests/finished',\r\n },\r\n NewLineConfirmationNotification: {\r\n name: 'NewLineConfirmationNotification',\r\n title: 'خط جدید',\r\n body: 'یک خط جدید منتظر تایید است.',\r\n url: '/line/user-lines/pending',\r\n },\r\n NewTicketAdded: {\r\n name: 'NewTicketAdded',\r\n title: 'تیکت جدید',\r\n body: 'یک تیکت جدید، منتظر پاسخ است.',\r\n url: '/ticket/list',\r\n },\r\n NewFastSendTemplateNotification: {\r\n name: 'NewFastSendTemplateNotification',\r\n title: 'قالب جدید',\r\n body: 'یک قالب جدید، منتظر تایید است.',\r\n url: '/fast-send/pending',\r\n },\r\n };\r\n\r\n const notificationPermission = async () => {\r\n permission.current = await Notification.requestPermission();\r\n\r\n if (permission.current === 'granted' && LocalToken.getAccessToken()) {\r\n const newConnection = new HubConnectionBuilder()\r\n .withUrl(\r\n `${\r\n process?.env?.REACT_APP_API_HOST\r\n }/smsHub?token=${LocalToken.getAccessToken()}&isAdmin=true`\r\n )\r\n .build();\r\n setConnection(newConnection);\r\n }\r\n };\r\n\r\n const notificationHandler = (item) => {\r\n connection.on(item.name, (value) => {\r\n const notification = new Notification(item.title, {\r\n body: item.body,\r\n icon: Logo,\r\n });\r\n notification.onclick = () => {\r\n window.open(item.url, '_self');\r\n };\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n notificationPermission();\r\n return () => {\r\n if (connection) {\r\n stopConnection();\r\n }\r\n };\r\n }, [hasToken]);\r\n\r\n const stopConnection = () => {\r\n connection.stop().then(() => {\r\n console.log('disconnect!');\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (connection) {\r\n connection\r\n .start()\r\n .then((result) => {\r\n console.log('Connected!');\r\n\r\n newGuestNotification();\r\n newLineNotification();\r\n newTicketNotification();\r\n newFastSendTemplateNotification();\r\n })\r\n .catch((e) => console.log('Connection failed: ', e));\r\n }\r\n }, [connection]);\r\n\r\n const newGuestNotification = () => {\r\n notificationHandler(notificationList.NewGuestConfirmationNotification);\r\n };\r\n\r\n const newLineNotification = () => {\r\n notificationHandler(notificationList.NewLineConfirmationNotification);\r\n };\r\n\r\n const newTicketNotification = () => {\r\n notificationHandler(notificationList.NewTicketAdded);\r\n };\r\n\r\n const newFastSendTemplateNotification = () => {\r\n notificationHandler(notificationList.NewFastSendTemplateNotification);\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\nexport default App;\r\n","module.exports = __webpack_public_path__ + \"static/media/copoun_icon.1a4aa494.png\";","import React from \"react\";\r\n\r\nfunction NoMatch() {\r\n return <>404;\r\n}\r\nexport default NoMatch;\r\n","import styled from \"styled-components\";\r\n\r\nexport const StyledLayout = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n min-height: 100vh;\r\n min-width: 100vw;\r\n flex-direction: column;\r\n /* background-color: #edf0f5; */\r\n`;\r\n\r\nexport const WrapperLayout = styled.div`\r\n > i{\r\n margin-left:5px;\r\n margin-bottom:1rem;\r\n }\r\n`;\r\n\r\nexport const ContentLayout = styled.div`\r\n /* margin-top: 1rem!important; */\r\n`;\r\n\r\nexport const HeaderContent = styled.div`\r\n padding: 20px 20px 0;\r\n direction:ltr;\r\n display:flex;\r\n align-items : center;\r\n a{\r\n direction:rtl;\r\n color: #282a3c;\r\n font-weight: 500;\r\n font-size: 14px;\r\n }\r\n /* button{} */\r\n`;\r\n\r\nexport const FooterContent = styled.div`\r\n padding: 20px 20px 0;\r\n direction:ltr;\r\n display:flex;\r\n align-items : center;\r\n`;\r\n\r\nexport const MainContent = styled.div`\r\n position: relative;\r\n text-align:right;\r\n padding: 20px;\r\n margin: 20px;\r\n background-color: white;\r\n border-radius: .3rem;\r\n flex-grow: 1;\r\n box-shadow: -1px 1px 6px 4px #dadada54;\r\n min-height:300px;\r\n .descripton {\r\n h5{\r\n margin-bottom: 1.0rem;\r\n }\r\n }\r\n @media only screen and (max-width: 575px){\r\n margin : 15px; \r\n }\r\n`;\r\n\r\nexport const FooterLayout = styled.footer`\r\n margin-top: 1rem !important;\r\n`;\r\n\r\nexport const PageTitleLayout = styled.div`\r\n direction: rtl;\r\n text-align: right;\r\n margin-bottom: 15px;\r\n h5{\r\n margin-bottom:0.75rem;\r\n }\r\n span{\r\n line-height:1.7;\r\n }\r\n`;\r\n","import { PureComponent } from 'react'\r\n\r\nclass WindowsDimensions extends PureComponent{\r\n devicesWidth = {\r\n mobile: { min: '0', max: '767' },\r\n tablet: { min: '768', max: '991' },\r\n desktop: { min: '992' }\r\n };\r\n\r\n initScreenStatus = {\r\n width: window.innerWidth,\r\n deviceMode: 'mobile',\r\n sidebarMode: 'hidden'\r\n };\r\n\r\n CheckDeviceType = (width) => {\r\n let device;\r\n if (width <= this.devicesWidth.mobile.max) {\r\n device = 'mobile';\r\n } else if (width >= this.devicesWidth.tablet.min && width <= this.devicesWidth.tablet.max) {\r\n device = 'tablet';\r\n } else {\r\n device = 'desktop';\r\n }\r\n // console.log(\"device\", device);\r\n // console.log(\"width\", width);\r\n\r\n this.initScreenStatus.width = width;\r\n this.initScreenStatus.deviceMode = device;\r\n return device;\r\n }\r\n\r\n CheckSideBarMode = (deviceMode) => {\r\n let sidebarMode;\r\n switch (deviceMode) {\r\n case 'mobile':\r\n sidebarMode = 'hidden';\r\n break;\r\n case 'tablet':\r\n sidebarMode = 'slim';\r\n break;\r\n case 'desktop':\r\n sidebarMode = 'default';\r\n break;\r\n default:\r\n sidebarMode = 'full';\r\n }\r\n this.initScreenStatus.sidebarMode = sidebarMode;\r\n return sidebarMode\r\n }\r\n\r\n resize = ()=>{\r\n this.CheckDeviceType(window.innerWidth);\r\n this.CheckSideBarMode(this.initScreenStatus.deviceMode)\r\n\r\n return (this.initScreenStatus )\r\n }\r\n}\r\n\r\nexport default new WindowsDimensions();\r\n","import React, { useState, useEffect } from 'react'\r\nimport WindowsDimensions from './WindowsDimensions';\r\n\r\nexport function HandleResizeWindow() {\r\n\r\n function debounce(fn, ms) {\r\n let timer\r\n return _ => {\r\n clearTimeout(timer)\r\n timer = setTimeout(_ => {\r\n timer = null\r\n fn.apply(this, arguments)\r\n }, ms)\r\n };\r\n }\r\n\r\n const [screenStatus, setScreenStatus] = useState(WindowsDimensions.resize())\r\n const [width, setWidth] = useState(0);\r\n\r\n useEffect(() => {\r\n const updateSize = debounce(function handleResize() {\r\n let x = WindowsDimensions.resize();\r\n setScreenStatus(x);\r\n setWidth(window.innerWidth);\r\n // console.log(\"object\")\r\n }, 300)\r\n\r\n window.addEventListener('resize', updateSize);\r\n return () => {\r\n window.removeEventListener('resize', updateSize);\r\n };\r\n },\r\n\r\n [width, screenStatus]\r\n );\r\n return screenStatus\r\n}","import styled from \"styled-components\";\r\nconst getWidthString = (span) => {\r\n if (span) {\r\n let width = (span / 12) * 100;\r\n return `width: ${width}%;`;\r\n }\r\n};\r\nconst Col = styled.div`\r\n display : flex ;\r\n direction : rtl;\r\n font-family : IRANSans;\r\n justify-content : center;\r\n align-items : center;\r\n margin: auto;\r\n ${(props) => getWidthString(props.xl)}\r\n @media screen and (max-width: 1280px) {\r\n ${(props) => getWidthString(props.lg)}\r\n } \r\n @media screen and (max-width: 992px) {\r\n ${(props) => getWidthString(props.md)}\r\n } \r\n @media screen and (max-width: 768px) {\r\n ${(props) => getWidthString(props.sm)}\r\n }\r\n @media screen and (max-width: 480px) {\r\n ${(props) => getWidthString(props.xs)}\r\n }`;\r\n\r\nexport default Col;\r\n","import styled from \"styled-components\";\r\nimport Col from \"../../Kit/Column\";\r\n\r\nexport const LoaderWrapper = styled.div`\r\n min-height: 20vh;\r\n position: relative;\r\n width : 100%;\r\n height : 100%;\r\n`\r\nexport const LoaderContainer = styled(Col)`\r\n margin: 0 auto;\r\n width: 60px;\r\n height: 35px;\r\n text-align: center;\r\n font-size: 10px;\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n -webkit-transform: translateY(-50%) translateX(-50%);\r\n > div {\r\n height: 100%;\r\n width: 6px;\r\n display: inline-block;\r\n float: left;\r\n margin-left: 2px;\r\n -webkit-animation: delay 0.8s infinite ease-in-out;\r\n animation: delay 0.8s infinite ease-in-out;\r\n }\r\n \r\n .bar1{\r\n background-color: ${props => props.theme.lightGreen} ;\r\n }\r\n .bar2{\r\n background-color: ${props => props.theme.lightGreen} ;\r\n -webkit-animation-delay: -0.7s;\r\n animation-delay: -0.7s;\r\n }\r\n .bar3{\r\n background-color: ${props => props.theme.lightGreen} ;\r\n -webkit-animation-delay: -0.6s;\r\n animation-delay: -0.6s;\r\n }\r\n .bar4{\r\n background-color: ${props => props.theme.lightGreen} ;\r\n -webkit-animation-delay: -0.5s;\r\n animation-delay: -0.5s;\r\n }\r\n .bar5{\r\n background-color: ${props => props.theme.lightGreen} ;\r\n -webkit-animation-delay: -0.4s;\r\n animation-delay: -0.4s;\r\n }\r\n .bar6{\r\n background-color: ${props => props.theme.lightGreen} ;\r\n -webkit-animation-delay: -0.3s;\r\n animation-delay: -0.3s;\r\n }\r\n @-webkit-keyframes delay {\r\n 0%, 40%, 100% { \r\n -webkit-transform: scaleY(0.05)\r\n \r\n } \r\n 20% { -webkit-transform: scaleY(1.0) }\r\n 0% {\r\n background-color: ${props => props.theme.primary} ;\r\n }\r\n}\r\n\r\n@keyframes delay {\r\n 0%, 40%, 100% { \r\n transform: scaleY(0.05);\r\n -webkit-transform: scaleY(0.05);\r\n } 20% { \r\n transform: scaleY(1.0);\r\n -webkit-transform: scaleY(1.0);\r\n }\r\n 0% {\r\n background-color: ${props => props.theme.primary} ;\r\n }\r\n}\r\n`\r\n","import React from \"react\"\r\nimport Col from \"../../Kit/Column\"\r\nimport { LoaderContainer , LoaderWrapper} from \"./styles\"\r\n\r\nexport const Loader = () => {\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}","// import React, { useEffect } from 'react';\r\nimport { useEffect } from 'react';\r\n\r\nexport function useOnClickOutside(ref, handler) {\r\n useEffect(\r\n () => {\r\n const listener = event => {\r\n \r\n if (!ref || !ref.current || ref.current.contains(event.target)) {\r\n return;\r\n }\r\n\r\n handler(event);\r\n };\r\n\r\n document.addEventListener('mousedown', listener);\r\n document.addEventListener('touchstart', listener);\r\n\r\n return () => {\r\n document.removeEventListener('mousedown', listener);\r\n document.removeEventListener('touchstart', listener);\r\n };\r\n },\r\n \r\n [ref, handler]\r\n );\r\n}\r\n","import styled from \"styled-components\";\r\nimport Col from \"../../Component/Kit/Column\";\r\n\r\n\r\nexport const HeaderLayout = styled.header`\r\n display: ${props => props.hasToken === false && 'none'};\r\n background-color: ${props => props.theme.primary};\r\n /* display: flex;\r\n flex-direction: column;\r\n min-height: 100vh;\r\n padding-top: 60px; */\r\n /* position:fixed;\r\n z-index: 10;\r\n top:0px;\r\n flex-direction : row; */\r\n`;\r\n\r\nexport const StyledTopBarListItems = styled.ul`\r\n display: flex;\r\n flex-direction: row;\r\n padding-left: 20px;\r\n margin-bottom: 0;\r\n list-style: none;\r\n align-items: center;\r\n outline: none !important;\r\n margin-right: auto;\r\n height: 100%;\r\n`;\r\nexport const StyledTopBarItem = styled.li`\r\n border-right: 1px solid #e9eaea;\r\n padding: 0 10px;\r\n`;\r\n\r\nexport const StyleDrowpDown = styled.div`\r\n position: relative;\r\n cursor: pointer;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n height: 100%;\r\n\r\n svg {\r\n margin-top: 5px;\r\n width: 8px;\r\n height: 8px;\r\n }\r\n\r\n a {\r\n text-decoration: none;\r\n color: ${props => props.theme.primary};\r\n text-align: center;\r\n display: block;\r\n line-height: 50px;\r\n }\r\n`;\r\n\r\nexport const ProfileImage = styled(Col)`\r\n background-image: ${(props) => `url(${props.src})`};\r\n /* background-size: cover; */\r\n background-size: 100% 100%;\r\n background-repeat: no-repeat;\r\n width: 2.5rem;\r\n height: 2.5rem;\r\n border-radius: .5rem;\r\n\r\n svg {\r\n vertical-align: middle;\r\n width: 35px;\r\n height: 35px;\r\n /* fill:${props => props.theme.white}; */\r\n }\r\n`;\r\n\r\nexport const UserName = styled.span`\r\n margin-right: 0.5rem;\r\n margin-left: 0.5rem;\r\n`;\r\n\r\nexport const StyleTime = styled.span`\r\n font-size: 13px;\r\n color: white;\r\n padding-right: 15px;\r\n height: 65px;\r\n line-height: 65px;\r\n`;\r\n\r\nexport const StyledTooltip = styled.div`\r\n box-shadow: 0 0 11px #ccc;\r\n background-color: white;\r\n position: absolute;\r\n width: 100%;\r\n min-height: 50px;\r\n margin-left: 0px;\r\n min-width: 9.4rem;\r\n padding: 0.5rem;\r\n z-index: 1;\r\n top: 42px;\r\n\r\n .d-item {\r\n display: block;\r\n width: 100%;\r\n clear: both;\r\n font-weight: 400;\r\n white-space: nowrap;\r\n margin: 0;\r\n font-size: 12px;\r\n text-align: right;\r\n padding: .25rem .25rem;\r\n line-height: 1.3rem;\r\n color: inherit;\r\n -webkit-transition: all 0.3s 0s ease-in-out;\r\n -moz-transition: all 0.3s 0s ease-in-out;\r\n -ms-transition: all 0.3s 0s ease-in-out;\r\n -o-transition: all 0.3s 0s ease-in-out;\r\n transition: all 0.3s 0s ease-in-out;\r\n\r\n &:hover {\r\n color: ${props => props.theme.secondary};\r\n }\r\n }\r\n`;\r\n\r\nexport const StyledWrapperSvg = styled.span`\r\n cursor: pointer;\r\n`;\r\nexport const StyleLeftHeader = styled(Col)`\r\n cursor: pointer;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n height: 100%;\r\n position: relative;\r\n\r\n svg {\r\n margin-top: 5px;\r\n width: 8px;\r\n height: 8px;\r\n }\r\n`;\r\n/* export const StyleRightHeader = styled(Col)`\r\n height: 100%;\r\n justify-content:flex-start;\r\n padding-right : 15px;\r\n svg {\r\n width : 45px;\r\n height : 45px;\r\n }\r\n`; */\r\n\r\n/* export const StyledLogo = styled.div`\r\n background-image: ${(props) => `url(${props.src})`};\r\n background-size: cover;\r\n background-repeat: no-repeat;\r\n width: 35px;\r\n height: 35px;\r\n float: right;\r\n margin-right: 20px;\r\n border-radius: 50%;\r\n margin-top: 15px;\r\n`; */\r\n\r\n/* export const Styleda = styled.a`\r\ntext-decoration: none;\r\ncursor: pointer;\r\ncolor: ${props => props.theme.primary};\r\ntext-align: center;\r\ndisplay: block;\r\nline-height: 50px;\r\n`; */\r\n","import React from \"react\";\r\n\r\nfunction ArrowIcon() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default ArrowIcon;","import React, {useContext, useEffect, useRef, useState} from \"react\"\r\nimport {useOnClickOutside} from \"../../Utility/method/useOnClickOutside\";\r\nimport {\r\n HeaderLayout,\r\n StyleDrowpDown,\r\n StyledTooltip,\r\n StyledTopBarListItems,\r\n StyledTopBarItem,\r\n ProfileImage,\r\n UserName,\r\n StyledWrapperSvg\r\n} from \"./styles\";\r\nimport ArrowIcon from \"./ArrowIcon\";\r\nimport {Link, useHistory} from \"react-router-dom\";\r\nimport LocalToken from \"../../Utility/LocalStorge/LocalToken\";\r\nimport AppContext from \"../../Context/AppContext\";\r\nimport {connect} from \"react-redux\";\r\nimport userIcon from \"../../Assets/images/user.jpg\";\r\n\r\nconst Header = (props) => {\r\n const {screenStatus, setScreenStatus, adminProfile} = props;\r\n const [dropDownExpand, setDropDownExpand] = useState(false);\r\n const hasToken = useContext(AppContext).hasToken;\r\n const setHasToken = useContext(AppContext).setHasToken;\r\n const ref = useRef();\r\n const history = useHistory();\r\n\r\n\r\n const logOut = () => {\r\n LocalToken.Remove();\r\n history.push(\"/\");\r\n setHasToken(false)\r\n };\r\n\r\n const onClick = () => setDropDownExpand(!dropDownExpand)\r\n useOnClickOutside(ref, () => setDropDownExpand(false));\r\n\r\n // call SignalR Connection\r\n // SignalRServices();\r\n\r\n useEffect(() => {\r\n\r\n }, [screenStatus, hasToken])\r\n\r\n\r\n const changeSidebarState = (e) => {\r\n e.preventDefault();\r\n switch (screenStatus.deviceMode) {\r\n case 'mobile':\r\n if (!screenStatus.sidebarMode || screenStatus.sidebarMode === 'hidden') {\r\n setScreenStatus({...screenStatus, sidebarMode: 'full'})\r\n\r\n } else if (screenStatus.sidebarMode === 'full') {\r\n setScreenStatus({...screenStatus, sidebarMode: 'hidden'})\r\n }\r\n break;\r\n\r\n case 'tablet':\r\n if (!screenStatus.sidebarMode || screenStatus.sidebarMode === 'slim') {\r\n setScreenStatus({...screenStatus, sidebarMode: 'default'})\r\n } else if (screenStatus.sidebarMode === 'default') {\r\n setScreenStatus({...screenStatus, sidebarMode: 'slim'})\r\n }\r\n break;\r\n\r\n case 'desktop':\r\n if (!screenStatus.sidebarMode || screenStatus.sidebarMode === 'default') {\r\n setScreenStatus({...screenStatus, sidebarMode: 'slim'})\r\n\r\n } else if (screenStatus.sidebarMode === 'slim') {\r\n setScreenStatus({...screenStatus, sidebarMode: 'default'})\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n )\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const {bootstrapper} = state\r\n return {adminProfile: bootstrapper.data}\r\n}\r\n\r\nexport default connect(mapStateToProps)(Header)\r\n","import React, {useState} from 'react';\r\nimport {Link, NavLink, useHistory} from 'react-router-dom';\r\n\r\nconst Navigation = (props) => {\r\n const {menuItem, screenStatus, setScreenStatus} = props;\r\n const history = useHistory();\r\n const currentRoute = history.location.pathname;\r\n\r\n const removeClass = (event) => {\r\n const m = document.getElementsByClassName('menu__item__link--expanded');\r\n // Array.prototype.forEach.call(m, (el) => {\r\n // if (el) {\r\n // el.classList.remove('menu__item__link--expanded', 'menu__item__link--active');\r\n // }\r\n Array.prototype.forEach.call(m, (el) => {\r\n if (el !== event.currentTarget) {\r\n if (el.children[1]) {\r\n el.classList.remove('menu__item__link--expanded', 'menu__item__link--active');\r\n }\r\n }\r\n });\r\n }\r\n const [isOpen, setIsOpen] = useState(false)\r\n const expandedMenu = (event) => {\r\n event.stopPropagation()\r\n removeClass(event);\r\n if (screenStatus.sidebarMode === 'slim') {\r\n setScreenStatus({...screenStatus, sidebarMode: \"default\"})\r\n }\r\n if (event.currentTarget.classList.value.includes('menu__item__link--expanded') &&\r\n event.currentTarget.classList.value.includes('menu__item__link--active')) {\r\n event.currentTarget.closest(\"div.parent\").classList.remove('menu__item__link--expanded', 'menu__item__link--active');\r\n } else {\r\n event.currentTarget.closest(\"div.parent\").classList.add('menu__item__link--expanded', 'menu__item__link--active');\r\n }\r\n }\r\n\r\n const changeSidebarState = () => {\r\n switch (screenStatus.deviceMode) {\r\n case 'mobile':\r\n if (screenStatus.sidebarMode === 'full') {\r\n setScreenStatus({...screenStatus, sidebarMode: 'hidden'})\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n return (\r\n <>\r\n
\r\n {\r\n !menuItem.subMenus\r\n ?\r\n (\r\n menuItem.isShow ?\r\n ( {\r\n removeClass(e);\r\n changeSidebarState();\r\n }}\r\n >\r\n
\r\n
\r\n \r\n
\r\n {menuItem.title}\r\n
\r\n ) : null\r\n )\r\n :\r\n (\r\n menuItem.isShow ? (\r\n expandedMenu(e)}\r\n >\r\n
\r\n
\r\n \r\n
\r\n\r\n {menuItem.title}\r\n \r\n
\r\n\r\n
    \r\n {\r\n menuItem.subMenus.map(SItem => (\r\n SItem.isShow ? (\r\n
  • {\r\n e.stopPropagation();\r\n changeSidebarState();\r\n }}\r\n key={`li_${SItem.title}`}>\r\n \r\n \r\n {SItem.title}\r\n \r\n \r\n \r\n
  • \r\n ) : null\r\n\r\n ))\r\n }\r\n\r\n
\r\n
\r\n ) : null\r\n )\r\n }\r\n\r\n \r\n\r\n \r\n )\r\n}\r\n\r\n\r\nexport default Navigation;\r\n","import React from \"react\";\r\n\r\nfunction Logo(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Logo;\r\n","import React from \"react\";\r\n\r\nfunction LogoMinimize(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default LogoMinimize;\r\n","let IdentityRoleList = [\r\n {title: 'manager' ,name: 'مدیر', value: 1},\r\n {title: 'supporter' ,name: 'پشتیبانی', value: 2},\r\n {title: 'accountant' ,name: 'حسابداری', value: 3},\r\n {title: 'sales' ,name: 'فروش', value: 4},\r\n {title: 'supervisor' ,name: 'سرپرست', value: 5},\r\n]\r\nexport default IdentityRoleList;\r\n","// import React from 'react'\r\nimport IdentityRoleList from '../Model/IdentityRoleModel'\r\n\r\nexport function IdentityRoleService(value) {\r\n let result = IdentityRoleList.find((item) =>\r\n item.value === value\r\n )\r\n return result.name\r\n}\r\n\r\nexport function IdentityRoleKey(name) {\r\n let result = IdentityRoleList.find((item) => item.name === name);\r\n return result.value\r\n}\r\n\r\nexport function IdentityRoleItem(value) {\r\n let result = IdentityRoleList.find((item) => item.value === value\r\n )\r\n return result\r\n}\r\n\r\nexport function IdentityRoleTitle(value) {\r\n let result = IdentityRoleList.find((item) => item.value === value\r\n )\r\n return result.title\r\n}\r\n","// import store from '../../store'\r\nimport {IdentityRoleTitle} from \"./IdentityRoleService\";\r\n\r\nexport function RoleCanActivate(accessList = ['manager', 'supporter', 'accountant', 'sales', 'supervisor'], roleId) {\r\n roleId = parseInt(roleId)\r\n const roleTitle = IdentityRoleTitle(roleId);\r\n return accessList.includes(roleTitle) || roleTitle === 'manager' || roleTitle === 'supervisor'\r\n}\r\n\r\n","import React, { useEffect, useState } from 'react'\r\nimport Navigation from './Navigation';\r\nimport Logo from '../../Component/Icon/Logo';\r\nimport LogoMinimize from \"../../Component/Icon/logo-minimize\";\r\nimport { connect } from \"react-redux\";\r\nimport { RoleCanActivate } from \"../../Utility/Services/roleCanActivate\";\r\n\r\nconst SideBar = (props) => {\r\n const { adminProfile } = props;\r\n const { screenStatus, setScreenStatus } = props;\r\n const [menuItems, setMenuItems] = useState([]);\r\n const items = [\r\n {\r\n title: 'دشبورد',\r\n icon: 'home',\r\n link: '/dashboard',\r\n subMenus: null,\r\n },\r\n {\r\n title: 'مدیریت مهمان‌ها',\r\n icon: 'user',\r\n link: '/guests/finished',\r\n subMenus: null,\r\n accessList: ['supporter', 'sales', 'supervisor']\r\n },\r\n {\r\n title: 'مدیریت کاربران',\r\n icon: 'user-cog',\r\n link: '/users/list',\r\n subMenus: null\r\n\r\n },\r\n {\r\n title: ' مدیران',\r\n icon: 'user-lock',\r\n link: '/admins',\r\n subMenus: [\r\n { link: '/admins', title: 'لیست مدیران', icon: null },\r\n { link: '/admins/logs', title: 'سوابق فعالیت‌ها', icon: null },\r\n ],\r\n accessList: ['supervisor']\r\n },\r\n {\r\n title: 'صف ارسال پیامک',\r\n icon: 'pause-circle',\r\n link: '/pending-sms/list',\r\n subMenus: null,\r\n accessList: ['supporter', 'supervisor']\r\n },\r\n {\r\n title: 'قالب ارسال سریع',\r\n icon: 'share-all',\r\n link: '/fast-send/pending',\r\n subMenus: null,\r\n accessList: ['supporter', 'supervisor'],\r\n },\r\n {\r\n title: 'ارسال از دکل',\r\n icon: 'broadcast-tower',\r\n link: '/send-tower',\r\n subMenus: null,\r\n },\r\n {\r\n title: 'خطوط',\r\n icon: 'phone',\r\n link: '/line/',\r\n accessList: ['supporter', 'supervisor'],\r\n subMenus: [\r\n { link: '/line/system', title: 'خطوط سیستمی', icon: null },\r\n { link: '/line/user-service-line', title: 'خطوط خدماتی', icon: null },\r\n { link: '/line/public', title: 'خطوط ویژه', icon: null },\r\n { link: '/line/access-public', title: 'تخصیص خطوط ویژه', icon: null },\r\n { link: '/line/plans', title: 'خطوط پلن ها', icon: null },\r\n { link: '/line/user-lines', title: 'خطوط کاربران', icon: null },\r\n { link: '/line/user-lines/pending', title: 'خطوط منتظر تایید', icon: null }\r\n ]\r\n },\r\n {\r\n title: 'تیکت',\r\n icon: 'envelope-open-text',\r\n link: '/ticket/',\r\n subMenus: [\r\n { link: '/ticket/list', title: 'لیست تیکت‌ها', icon: null },\r\n { link: '/ticket/template', title: 'لیست قالب‌ها', icon: null, accessList: ['supporter', 'sales', 'supervisor'] },\r\n { link: '/ticket/auto-assignment', title: 'تنظیمات تخصیص خودکار', icon: null , accessList: ['supervisor']},\r\n ]\r\n },\r\n {\r\n title: 'مالی',\r\n icon: 'money-bill',\r\n link: '/financial/',\r\n subMenus: [\r\n { link: '/financial/online-payment', title: 'لیست پرداخت ها', icon: null, },\r\n { link: '/financial/manual-payment', title: 'پرداخت‌های دستی', icon: null, accessList: ['supporter', 'supervisor'], },\r\n { link: '/financial/invoices/pending', title: 'لیست فاکتور‌ها', icon: null },\r\n { link: '/financial/sepidar-logs', title: 'عملیات های سپیدار', icon: null, accessList: ['accountant'] },\r\n { link: '/financial/invoice/lend?isPaid=false', title: 'لیست پرداخت‌های قرضی', icon: null },\r\n ]\r\n },\r\n {\r\n title: 'اعلان ها',\r\n icon: 'bell',\r\n link: '/notifications',\r\n subMenus: null,\r\n accessList: ['supporter', 'sales', 'supervisor'],\r\n\r\n },\r\n {\r\n title: 'لیست کاربران سفید',\r\n icon: 'shield-check',\r\n link: '/white-users',\r\n subMenus: null,\r\n accessList: ['supervisor'],\r\n },\r\n {\r\n title: 'لیست سیاه',\r\n icon: 'file-word',\r\n link: '/blacklist',\r\n subMenus: null,\r\n accessList: ['supervisor'],\r\n },\r\n {\r\n title: 'کدتخفیف',\r\n icon: 'percent',\r\n link: '/discount-code',\r\n subMenus: null,\r\n accessList: ['supervisor'],\r\n },\r\n {\r\n title: 'کلمات ممنوعه',\r\n icon: 'ban',\r\n link: '/forbidden-words',\r\n subMenus: null,\r\n accessList: ['supervisor'],\r\n },\r\n {\r\n title: 'همکاری در فروش',\r\n icon: 'handshake',\r\n link: '/sale-cooperation',\r\n subMenus: [\r\n { link: '/sale-cooperation/transaction', title: 'تراکنش ها ', icon: null, },\r\n { link: '/sale-cooperation/settlement', title: 'درخواست تسویه ', icon: null, },\r\n ],\r\n },\r\n {\r\n title: 'کمپین تبلیغاتی',\r\n icon: 'ad',\r\n link: '/campaigns',\r\n subMenus: [\r\n { link: '/campaigns', title: 'کمپین ها', icon: null, },\r\n { link: '/campaigns/members', title: 'اعضای کمپین', icon: null, },\r\n ],\r\n },\r\n {\r\n title: 'مسدود سازی',\r\n icon: 'do-not-enter',\r\n link: '/suspended/blocked-ip',\r\n subMenus: null,\r\n accessList: ['supporter', 'supervisor'],\r\n },\r\n {\r\n title: 'پلن ها',\r\n icon: 'bullseye-arrow',\r\n link: '/plan',\r\n subMenus: null,\r\n accessList: ['supervisor'],\r\n },\r\n {\r\n title: 'ارائه‌دهندگان',\r\n icon: 'router',\r\n link: '/providers',\r\n subMenus: [\r\n { link: '/providers/credit', title: 'اعتبار', icon: null },\r\n { link: '/providers/state', title: 'وضعیت', icon: null },\r\n { link: '/providers/notification', title: 'تنظیمات اعلانات', icon: null }\r\n ],\r\n },\r\n {\r\n title: 'بسته شارژ تخفیف دار',\r\n icon: 'box-full',\r\n link: '/credit-package',\r\n subMenus: null,\r\n },\r\n {\r\n title: 'تعرفه',\r\n icon: 'weight-hanging',\r\n link: '/base-price',\r\n subMenus: [\r\n { link: '/base-price/dedicated', title: 'تعرفه اختصاصی', icon: null, },\r\n ],\r\n accessList: ['supervisor']\r\n },\r\n {\r\n title: 'بازخورد کاربران',\r\n icon: 'comment-dots',\r\n link: '/feedback',\r\n subMenus: null,\r\n },\r\n {\r\n title: 'تنظیمات',\r\n icon: 'cog',\r\n link: '/settings/limitation',\r\n subMenus: null,\r\n accessList: ['supporter', 'supervisor'],\r\n },\r\n\r\n ];\r\n\r\n const changeSidebarState = (sidebarMode, deviceMode) => {\r\n\r\n if (deviceMode === 'mobile') {\r\n if (sidebarMode === 'hidden') {\r\n setScreenStatus({ ...screenStatus, sidebarMode: 'full' })\r\n // this.store.dispatch(AppActions.modifySidebarMode({ mode: 'full' }));\r\n } else if (sidebarMode === 'full') {\r\n setScreenStatus({ ...screenStatus, sidebarMode: 'hidden' })\r\n // this.store.dispatch(AppActions.modifySidebarMode({ mode: 'hidden' }));\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (adminProfile) {\r\n items.map(m => {\r\n\r\n m['isShow'] = m.accessList ? RoleCanActivate(m.accessList, adminProfile.roleId) : true;\r\n\r\n if (m.subMenus && m.subMenus.length > 0) {\r\n m.subMenus.map(subMenuItem => {\r\n subMenuItem['isShow'] = subMenuItem.accessList ? RoleCanActivate(subMenuItem.accessList, adminProfile.roleId) : true;\r\n return false\r\n })\r\n }\r\n return false\r\n })\r\n setMenuItems([...items]);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [screenStatus, adminProfile]);\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const { bootstrapper } = state\r\n return { adminProfile: bootstrapper.data }\r\n}\r\n\r\nexport default connect(mapStateToProps)(SideBar);\r\n","let errorTranslateEnum = [\r\n { value:400, key: \"Bad Request: Logic not considered!\", name: \"400: Bad Request\" },\r\n { value: 1, key: \"ContactExistsInThisGroup\", name: \"ContactExistsInThisGroup\" },\r\n { value: 2, key: \"DuplicateTitleOrName\", name: \"عنوان وارد شده تکراری است.\" },\r\n { value: 3, key: \"FileIsInvalid\", name: \"محتوای فایل آپلود شده قابل قبول نمی‌باشد.\" },\r\n { value: 4, key: \"NotAllowedContactsCount\", name: \"NotAllowedContactsCount\" },\r\n { value: 5, key: \"CacheKeyNotFound\", name: \"CacheKeyNotFound\" },\r\n { value: 6, key: \"ContactAlreadyExists\", name: \"ContactAlreadyExists\" },\r\n { value: 7, key: \"MobileUsedByAnotherUser\", name: \"شماره وارد شده قبلا در سامانه ثبت شده است!\" },\r\n { value: 8, key: \"UserNotFound\", name: \"کاربری با این مشخصات وجود ندارد.\" },\r\n { value: 9, key: \"UserIsSuspended\", name: \"حساب کاربری کاربر مسدود است.\" },\r\n { value: 10, key: \"MobileVerificationCodeIsWrong\", name: \"کد وارد شده اشتباه است.\" },\r\n { value: 11, key: \"UserApiKeyLimitationCount\", name: \"UserApiKeyLimitationCount\" },\r\n { value: 12, key: \"AlreadyReturnInvoiceIssued\", name: \"قبلا فاکتور برگشتی صادر شده است.\" },\r\n { value: 13, key: \"UserCouldNotHasOfficialInvoice\", name: \"امکان صدور فاکتور رسمی برای این کاربر وجود ندارد.\" },\r\n { value: 14, key: \"PasswordIsWrong\", name: \"رمز عبور صحیح نمی‌باشد.\" },\r\n { value: 15, key: \"UserDeactivationAllowed24Hours\", name: \"پس از گذشت حداکثر 24 ساعت انجام این عملیات امکان پذیر است.\" },\r\n { value: 16, key: \"DuplicateEmailAddress\", name: \"ایمیل تکراری است.\" },\r\n { value: 17, key: \"DuplicateUserName\", name: \"نام کاربری انتخاب شده تکراری است.\" },\r\n { value: 18, key: \"DuplicateOfficialInvoiceNumber\", name: \"شماره فاکتور رسمی تکراری است.\" },\r\n { value: 19, key: \"DiscountCodeIsWrong\", name: \"کد تخفیف اشتباه است.\" },\r\n { value: 20, key: \"DiscountCodeHasExpired\", name: \"کد تخفیف منقضی شده است.\" },\r\n { value: 21, key: \"DiscountCodeUsageLimitationReached\", name: \"به تعداد حداکثر دفعات مجاز، از این کد استفاده نموده‌اید.\" },\r\n { value: 22, key: \"UserLinePrebuyExists\", name: \"خط توسط کاربر دیگری موقتا رزرو شده است.\" },\r\n { value: 23, key: \"DuplicateGiftLineNumber\", name: \"شماره‌ی خط هدیه تکراری می‌باشد.\" },\r\n { value: 24, key: \"DuplicateUserLineNumber\", name: \"شماره‌ی خط کاربر تکراری می‌باشد.\" },\r\n { value: 25, key: \"CantModifyStartedABTest\", name: \"کمپین شروع شده را نمی‌توانید ویرایش کنید.\" },\r\n { value: 26, key: \"ItemCountLimitation\", name: \"حداکثر آیتم مجاز\" },\r\n { value: 27, key: \"EventIsRelatedToTheCampaign\", name: \"این رویداد در کمپین استفاده شده است. لطفا ابتدا کمپین را حذف کنید.\" },\r\n { value: 28, key: \"ContactGroupUsedInCampaign\", name: \"این گروه از مخاطبین در یک کمپین مورد استفاده قرار گرفته است.\" },\r\n { value: 29, key: \"EmailVerificationAllowedPer2Minutes \", name: \"تأیید ایمیل پس از گذشت دو دقیقه مجاز است\" },\r\n { value: 30, key: \"LineUsedOnAnotherModule\", name: \"خط در ماژول دیگری استفاده شده است.\" },\r\n { value: 31, key: \"SmsSecretaryBehaviorLimitationCount\", name: \"محدودیت تعداد عملگر منشی پیامکی\" },\r\n { value: 32, key: \"DuplicateParameter\", name: \"پارامتر تکراری است.\" },\r\n { value: 33, key: \"CreditNotEnough\", name: \"کردیت کافی نیست.\" },\r\n { value: 34, key: \"KeyWordIsDuplicated\", name: \"کلمه کلیدی، تکراری است.\" },\r\n { value: 35, key: \"TestFastSendLimitationCount\", name: \"محدودیت در تست ارسال سریع\" },\r\n { value: 36, key: \"RetryOperation\", name: \"RetryOperation\" },\r\n { value: 37, key: \"OverlapInRanges\", name: \"تداخل در بازه‌های زمانی انتخاب شده\" },\r\n { value: 38, key: \"UsableSystemLine\", name: \"خط انتخاب شده درحال استفاده می باشد\" },\r\n { value: 39, key: \"SystemLineExist\", name: \"خط وارد شده در سیستم وجود دارد\" },\r\n { value: 40, key: \"DuplicateBlockedIP\", name: \"آدرس IP تکراری است.\" },\r\n { value: 41, key: \"TempRefCodeIsExpired\", name: \"کد معرف منقضی شده است\" },\r\n { value: 42, key: \"ParameterUsedInBlackListKeywords\", name: \"پارامتر استفاده شده در کلیدواژه های لیست سیاه شما می‌باشد\" },\r\n { value: 43, key: \"CooperationMessageParameterLimitationCount\", name: \"محدودیت در تعداد کلیدواژهای بخش همکاری در فروش\" },\r\n { value: 44, key: \"ParameterUsedOnAnotherModule\", name: \"کلیدواژه در ماژول دیگری استفاده شده است\" },\r\n { value: 45, key: \"UserHasOpenRequest \", name: \"کاربر درخواست باز دارد\" },\r\n { value: 46, key: \"RegistrationThroughTempCodeHasAlreadyBeenDone\", name: \"ثبت نام از طریق این لینک قبلا انجام شده است.\" },\r\n { value: 47, key: \"SepidarRegisterCustomerFailed\", name: \"ثبت طرف حساب در سپیدار با مشکل مواجه شد\" },\r\n { value: 48, key: \"SepidarRegisterInvoiceFailed \", name: \"ثبت فاکتور در سپیدار با مشکل مواجه شد\" },\r\n { value: 49, key: \"SepidarRegisterReceiptFailed \", name: \"ثبت رسید دریافتی در سپیدار با مشکل مواجه شد\" },\r\n { value: 55, key: \"LegalUserMustModifyUnderSupervisionFinancialDepartment\", name: \"کاربر موردنظر فاکتور ثبت شده دارد. لطفا برای تغییر اطلاعات حقوقی به واحد مالی ارجاع دهید.\" },\r\n { value: 56, key: \"DowngradePlanIsNotPermitted\", name: \"خرید این پلن برای شما امکان پذیر نیست. لطفا پلن دیگری را انتخاب کنید.\" },\r\n { value: 57, key: \"AlreadyHasNotExpiredPlan\", name: \"امکان تمدید پلن وجود ندارد.\" },\r\n { value: 58, key: \"PlanItemAccessibility\", name: \"اعتبار پلن شما به پایان رسید. لطفا پلن خود را تمدید کنید.\" },\r\n { value: 59, key: \"PlanItemLimitationCountUserTemplate\", name: \"PlanItemLimitationCountUserTemplate\" },\r\n { value: 60, key: \"PlanItemLimitationCountBlackListInquiryCount\", name: \"PlanItemLimitationCountBlackListInquiryCount\" },\r\n { value: 61, key: \"PlanItemLimitationCountFastSend\", name: \"PlanItemLimitationCountFastSend\" },\r\n { value: 62, key: \"PlanItemLimitationApiKey\", name: \"PlanItemLimitationApiKey\" },\r\n { value: 63, key: \"PlanItemLimitationSmsTransmissionApiWithParameter\", name: \"PlanItemLimitationSmsTransmissionApiWithParameter\" },\r\n { value: 64, key: \"PlanItemLimitationSmsTransmissionEmailWithParameter\", name: \"PlanItemLimitationSmsTransmissionEmailWithParameter\" },\r\n { value: 65, key: \"PlanItemLimitationSmsTransmissionMobileWithParameter\", name: \"PlanItemLimitationSmsTransmissionMobileWithParameter\" },\r\n { value: 66, key: \"PlanItemLimitationSmsSecretaryWithParameter\", name: \"PlanItemLimitationSmsSecretaryWithParameter\" },\r\n { value: 67, key: \"PlanItemLimitationCodeReaderParameters\", name: \"PlanItemLimitationCodeReaderParameters\" },\r\n { value: 68, key: \"PlanItemLimitationContacts\", name: \"PlanItemLimitationContacts\" },\r\n { value: 69, key: \"PlanItemLimitationContactGroups\", name: \"PlanItemLimitationContactGroups\" },\r\n { value: 70, key: \"PlanItemLimitationContactEvents\", name: \"PlanItemLimitationContactEvents\" },\r\n { value: 71, key: \"PlanItemLimitationConcurrentOpenTicketsCount\", name: \"PlanItemLimitationConcurrentOpenTicketsCount\" },\r\n { value: 72, key: \"PreviousDaysHasPendingInvoice\", name: \"فاکتور شماره گذاری نشده از روز قبل دارید.\" },\r\n { value: 73, key: \"MobileIsBlocked\", name: \"شماره موبایل شما بلاک شده است. لطفا با پشتیبانی تماس بگیرید.\" },\r\n { value: 74, key: \"MobileIsAlreadyBlocked\", name: \"این شماره موبایل در حال حاضر بلاک می باشد.\" },\r\n { value: 80, key: \"TwiceCancelInvoice\", name: \" فاکتور از قبل باطل شده است.\" },\r\n { value: 81, key: \"NotSupportedSepidarLocation\", name: \"شهر کاربر در سپیدار پشتیبانی نشده است\" },\r\n { value: 82, key: \"NotSupportedSepidarBankType\", name: \"نوع بانک در سپیدار پشتیبانی نشده است\" },\r\n { value: 86, key: \"DuplicateAdvertisingCampaignName\", name: \"نام کمپین تکراری است.\" },\r\n { value: 87, key: \"DuplicateAdvertisingCampaignCode\", name: \"کد کمپین تکراری است.\" },\r\n { value: 89, key: \"InternalOperationsLineMustBeUnique\", name: \"فرایندهای داخلی باید شامل خط اختصاصی باشد.\" },\r\n { value: 90, key: \"SystemLineTypesMustBeTaken\", name: \"تایپ مورد استفاده برای (عملگر) خطوط حتما باید دارای خط باشد.\" },\r\n { value: 91, key: \"SystemLineHasTypeMustBeActive\", name: \"خط غیرفعال نمیتواند دارای عملگر باشد.\" },\r\n { value: 95, key: \"LegalDataIncompleteForRegisterInSepidar\", name: \"اطلاعات حقوقی ناقص میباشد.\" },\r\n { value: 96, key: \"CustomerNationalIdForRegisterInSepidarEmpty\", name: \"شناسه ملی کاربر ناقص میباشد.\" },\r\n { value: 97, key: \"HasConflictCustomerNameInSepidar\", name: \"اطلاعات کاربر با سپیدار تناقض دارد.\" },\r\n { value: 98, key: \"CustomerHasSameNameExistInSepidar\", name: \"کاربر تشابه اسمی دارد.\" },\r\n { value: 107, key: \"CouldNotConnectToSepidar\", name: \"سپیدار از دسترس خارج شده است.\"},\r\n];\r\n\r\nexport default errorTranslateEnum\r\n","import errorTranslateEnum from \"./../Model/error-translate.model\";\r\n\r\nexport function errorTranslateService(value) {\r\n value = parseInt(value)\r\n let result = errorTranslateEnum.find((item) => item.value === value);\r\n return result?.name;\r\n}\r\n","import axios from \"axios\";\r\nimport { toast } from \"react-toastify\";\r\nimport LocalToken from \"../Utility/LocalStorge/LocalToken\";\r\nimport { errorTranslateService } from \"../Utility/Services/error-translate\";\r\nimport Urls from \"./Urls\";\r\n\r\nlet baseurl = Urls.base();\r\nlet refreshing_token = null;\r\n\r\nexport const axiosInstance = axios.create({\r\n baseurl,\r\n});\r\n\r\naxiosInstance\r\n .interceptors\r\n .request\r\n .use(\r\n function (config) {\r\n config.headers = {\r\n \"content-type\": \"application/json\",\r\n\r\n };\r\n if (config.url !== Urls.AdminLogin()) {\r\n if (LocalToken.getAccessToken()) {\r\n config.headers = {\r\n Authorization: `Bearer ${LocalToken.getAccessToken()}`,\r\n \"content-type\": \"application/json\",\r\n };\r\n } else {\r\n window.location.replace(\"/\");\r\n }\r\n }\r\n\r\n return config;\r\n },\r\n (error) => Promise.reject(error)\r\n );\r\n\r\naxiosInstance\r\n .interceptors\r\n .response\r\n .use(\r\n (response) => {\r\n if (response.status === 200 && response.data.success === false) {\r\n toast.error(errorTranslateService(response.data.errorCode))\r\n // throw new axios.Cancel('throw Error')\r\n new Error(response)\r\n return Promise.reject(response)\r\n } else {\r\n return response.data;\r\n }\r\n },\r\n async (error) => {\r\n const { config, response } = error;\r\n const originalConfig = config;\r\n\r\n if (response && response.status === 400) {\r\n toast.error(errorTranslateService(400))\r\n return Promise.reject(error);\r\n }\r\n if (response && response.status === 403) {\r\n localStorage.clear();\r\n toast.error(errorTranslateService(response.data.errorCode))\r\n window.location.replace('/');\r\n }\r\n if (response && response.status === 401 && !originalConfig._retry) {\r\n originalConfig._retry = true;\r\n try {\r\n refreshing_token = refreshing_token ? refreshing_token : refresh_token();\r\n let res = await refreshing_token;\r\n refreshing_token = null;\r\n if (res.status !== 401) {\r\n LocalToken.setAccessToken(res.data);\r\n return axiosInstance(originalConfig);\r\n }\r\n else {\r\n return Promise.reject(error);\r\n }\r\n } catch (_error) {\r\n // return Promise.reject(_error);\r\n toast.error(\"مجددا لاگین نمایید.\");\r\n localStorage.clear();\r\n window.location.replace(\"/\");\r\n }\r\n\r\n } else {\r\n return Promise.reject(error);\r\n }\r\n }\r\n );\r\n\r\nfunction refresh_token() {\r\n // console.log('Refreshing access token')\r\n const headers = {\r\n 'Content-Type': 'application/json'\r\n }\r\n return axios.put(Urls.refreshToken(), JSON.stringify(LocalToken.geRefreshToken()), { headers });\r\n}\r\n","import { axiosInstance } from \"./AxiosInstance\";\r\nimport queryString from \"query-string\";\r\n\r\nclass ApiClient {\r\n Get = (url, params = null) => {\r\n return axiosInstance({\r\n method: \"get\",\r\n url,\r\n params,\r\n paramsSerializer: (paramList) => {\r\n return queryString.stringify(paramList);\r\n },\r\n });\r\n };\r\n\r\n Post = (url, data) => {\r\n return axiosInstance({\r\n method: \"post\",\r\n url,\r\n data,\r\n });\r\n };\r\n\r\n Put = (url, data, params = null) => {\r\n return axiosInstance({\r\n method: \"put\",\r\n url,\r\n data,\r\n params,\r\n });\r\n };\r\n\r\n Patch = (url, data, params = null) => {\r\n return axiosInstance({\r\n method: \"patch\",\r\n url,\r\n data,\r\n params,\r\n });\r\n };\r\n\r\n Delete = (url, data = null) => {\r\n return axiosInstance({\r\n method: \"delete\",\r\n url,\r\n data,\r\n });\r\n };\r\n}\r\n\r\nexport default new ApiClient();\r\n","export const bootstrapper = (data) => ({\r\n type: \"BOOTSTRAPPER\",\r\n data,\r\n});\r\n","import React, {useContext, useEffect, useMemo, useState} from 'react'\r\nimport {Redirect, Route, useHistory, useLocation} from 'react-router-dom';\r\n\r\nimport AppContext from \"../../Context/AppContext\";\r\nimport { ContentLayout, FooterLayout } from '../../Component/Kit/Layout';\r\nimport { HandleResizeWindow } from '../../Utility/method/HandleResizeWindow';\r\nimport { Loader } from \"../../Component/Shared/Loader\"\r\nimport Header from '../Header';\r\nimport SideBar from '../SideBar';\r\nimport ApiClient from \"../../Requester/ApiClient\";\r\nimport Urls from \"../../Requester/Urls\";\r\nimport { bootstrapper } from \"../../Actions/bootstrapper\";\r\nimport { connect } from \"react-redux\";\r\nimport { RoleCanActivate } from \"../../Utility/Services/roleCanActivate\";\r\nimport queryString from \"query-string\";\r\n\r\nconst PrivateRoute = ({ component: Component, dispatch, adminProfile, roles, ...rest }) => {\r\n\r\n const {search} = useLocation();\r\n const history = useHistory();\r\n let hasToken = useContext(AppContext).hasToken;\r\n const [loading, setLoading] = useState(true);\r\n const [screenStatus, setScreenStatus] = useState(HandleResizeWindow());\r\n\r\n useEffect(() => {\r\n const query = queryString.parse(search);\r\n if('needCount' in query) {\r\n delete query.needCount;\r\n history.push({\r\n search: '?' + queryString.stringify({...query}),\r\n });\r\n }\r\n setLoading(false)\r\n ApiClient.Get(Urls.adminBootstrapper())\r\n .then(res => {\r\n let data = res.result;\r\n dispatch(bootstrapper(data));\r\n })\r\n }, [screenStatus]);\r\n return (\r\n <>\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n {screenStatus && adminProfile && (\r\n \r\n\r\n \r\n {\r\n loading === true\r\n ?\r\n \r\n :\r\n (\r\n hasToken && RoleCanActivate(roles, adminProfile?.roleId)\r\n ?\r\n \r\n :\r\n \r\n )} />\r\n\r\n }\r\n \r\n\r\n \r\n
\r\n
1389-1401© تمامی حقوق برای شرکت ایده پردازان محفوظ است.
\r\n {/*حریم خصوصی*/}\r\n {/*شرایط و قوانین*/}\r\n
\r\n
\r\n\r\n \r\n )}\r\n
\r\n\r\n \r\n )\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const { bootstrapper } = state\r\n return { adminProfile: bootstrapper.data }\r\n}\r\n\r\nexport default connect(mapStateToProps)(PrivateRoute);\r\n","import React, { useContext } from 'react'\r\nimport { Redirect, Route } from 'react-router-dom';\r\nimport AppContext from \"../../Context/AppContext\";\r\n\r\n\r\nexport const PublicRoute = ({ component: Component, restricted, ...rest }) => {\r\n const hasToken = useContext(AppContext).hasToken;\r\n \r\n return (\r\n <>\r\n (\r\n restricted && hasToken\r\n ?\r\n \r\n :\r\n \r\n\r\n\r\n )} />\r\n \r\n )\r\n}\r\n","import React from \"react\";\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport styled from \"styled-components\";\r\nconst BackWrapper = styled.div`\r\n a,\r\n button {\r\n display: flex;\r\n align-items: center;\r\n border: 0;\r\n background: transparent;\r\n direction: rtl;\r\n i {\r\n margin-left: 5px;\r\n }\r\n }\r\n`;\r\n\r\nfunction BackToPage({ toPage }) {\r\n let history = useHistory();\r\n return (\r\n <>\r\n \r\n {toPage ? (\r\n \r\n بازگشت\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\nexport default BackToPage;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport Col from \"./Column\";\r\n\r\nexport const Button = styled.button`\r\n position: relative;\r\n transition: all 0.3s ease-in;\r\n height: ${(props) => props.height || \"32px\"};\r\n min-height: ${(props) => props.height || \"32px\"};\r\n width: ${(props) => props.width || \"auto\"};\r\n cursor: ${(props) => (props.disabled === true ? \"no-drop\" : \"pointer\")};\r\n background-color: ${(props) =>\r\n props.disabled === true ? props.theme.primaryHover : props.theme.primary};\r\n color: white;\r\n border-radius: 0.3rem;\r\n padding: 0.375rem 0.75rem;\r\n font-size: 1rem;\r\n line-height: 1.5;\r\n border: none;\r\n outline: none;\r\n padding: ${props => props.iconPosition === 'right' ? '0px 24px 0px 0px' : ' .375rem .75rem'};\r\n\r\n :focus {\r\n outline: none;\r\n border: none;\r\n }\r\n\r\n &.greenBtn {\r\n background-color: ${(props) =>\r\n props.disabled === true\r\n ? props.theme.greenDisable\r\n : props.theme.greenBtn};\r\n padding-left: 2.25rem;\r\n padding-right: 2.25rem;\r\n\r\n &:hover {\r\n background-color: ${(props) =>\r\n props.disabled === true\r\n ? props.theme.greenDisable\r\n : props.theme.greenBtnHover};\r\n }\r\n }\r\n\r\n &.darkGreenBtn {\r\n background-color: ${(props) =>\r\n props.disabled === true\r\n ? props.theme.darkGreenDisable\r\n : props.theme.darkGreenBtn};\r\n padding-left: 2.25rem;\r\n padding-right: 2.25rem;\r\n\r\n &:hover {\r\n background-color: ${(props) =>\r\n props.disabled === true\r\n ? props.theme.darkGreenDisable\r\n : props.theme.darkGreenBtnHover};\r\n }\r\n }\r\n &.smallBtn {\r\n min-height: 27px;\r\n height: auto;\r\n padding: .25rem .5rem;\r\n font-size: .875rem;\r\n line-height: 1.5;\r\n }\r\n\r\n &.redBtn {\r\n background-color: ${(props) =>\r\n props.disabled === true ? props.theme.redDisable : props.theme.redBtn};\r\n padding-left: 2.25rem;\r\n padding-right: 2.25rem;\r\n\r\n &:hover {\r\n background-color: ${(props) =>\r\n props.disabled === true\r\n ? props.theme.redDisable\r\n : props.theme.redBtnHover};\r\n }\r\n }\r\n\r\n &.yellowBtn {\r\n background-color: ${(props) =>\r\n props.disabled === true\r\n ? props.theme.yellowDisable\r\n : props.theme.yellowBtn};\r\n padding-left: 2.25rem;\r\n padding-right: 2.25rem;\r\n color: ${(props) => props.theme.grayDark};\r\n\r\n &:hover {\r\n background-color: ${(props) =>\r\n props.disabled === true\r\n ? props.theme.yellowDisable\r\n : props.theme.yellowBtnHover};\r\n }\r\n }\r\n\r\n &.grayBtn {\r\n background-color: ${(props) =>\r\n props.disabled === true\r\n ? props.theme.grayDisable\r\n : props.theme.grayBtn};\r\n padding-left: 2.20rem;\r\n padding-right: 2.20rem;\r\n color: ${(props) => props.theme.grayDark};\r\n\r\n &:hover {\r\n background-color: ${(props) =>\r\n props.disabled === true\r\n ? props.theme.grayDisable\r\n : props.theme.grayBtnHover};\r\n color: ${(props) => props.theme.white};\r\n }\r\n }\r\n\r\n @media only screen and (max-width: 575px) {\r\n padding-left: 1rem !important;\r\n padding-right: 1rem !important;\r\n font-size: 13px;\r\n width: auto;\r\n }\r\n\r\n`;\r\n\r\nconst IconContainer = styled(Col)`\r\n width: ${(props) => props.height || \"26px\"};\r\n height: ${(props) => props.height || \"26px\"};\r\n background-color: ${(props) => props.theme.primary};\r\n position: absolute;\r\n display: ${(props) => (props.hasIcon === true ? \"flex\" : \"none\")};\r\n top: 0px;\r\n bottom: 0px;\r\n right: ${(props) => props.iconPosition === \"right\" && \"0px\"};\r\n left: ${(props) => props.iconPosition === \"left\" && \"0px\"};\r\n border-radius: ${(props) =>\r\n props.iconPosition === \"right\" ? \"0px 50px 50px 0px\" : \"50px 0px 0px 50px\"};\r\n\r\n svg {\r\n height: 12px;\r\n width: 12px;\r\n }\r\n`;\r\n\r\nexport const StyledButton = (props) => {\r\n const { loading, hasIcon, iconPosition, btnStyle } = props;\r\n return (\r\n \r\n );\r\n};\r\n","import styled from \"styled-components\";\r\nimport {theme} from \"../../Utility/Theme\";\r\n\r\nexport const CheckBox = styled.div`\r\n margin-bottom: 0.5rem;\r\n\r\n label {\r\n display: -webkit-box;\r\n display: -ms-flexbox;\r\n display: flex;\r\n -webkit-box-align: center;\r\n -ms-flex-align: center;\r\n align-items: center;\r\n cursor: pointer;\r\n }\r\n\r\n label input {\r\n width: 18px;\r\n height: 18px;\r\n cursor: pointer;\r\n border: solid 1px ${theme.greenBtn};\r\n border-radius: 5px;\r\n appearance: none;\r\n margin-left: 8px;\r\n }\r\n\r\n label input:checked {\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n appearance: none;\r\n background-color: ${theme.greenBtn};\r\n position: relative;\r\n border-radius: 5px;\r\n }\r\n\r\n label input:disabled:checked {\r\n border: solid 1px #9ca8a7;\r\n background-color:${(props) => props.disabled === true && '#9ca8a7'};\r\n }\r\n\r\n label input:checked::after {\r\n content: \"\\\\2714\";\r\n position: absolute;\r\n color: white;\r\n top: 62%;\r\n -webkit-transform: translateY(-50%);\r\n transform: translateY(-50%);\r\n left: 2px;\r\n font-size: 12px;\r\n }\r\n\r\n label input.null-checkBox {\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n appearance: none;\r\n background-color: ${theme.greenBtn};\r\n position: relative;\r\n border-radius: 5px;\r\n }\r\n\r\n label input.null-checkBox::after {\r\n content: \" \";\r\n position: absolute;\r\n color: ${theme.white};\r\n top: 50%;\r\n -webkit-transform: translateY(-50%);\r\n -webkit-transform: translateY(-50%);\r\n -ms-transform: translateY(-50%);\r\n transform: translateY(-50%);\r\n left: 3px;\r\n background: #fff;\r\n width: calc(100% - 6px);\r\n height: 3px;\r\n }\r\n\r\n label span {\r\n margin-top: 5px;\r\n margin-bottom: 5px;\r\n color: white;\r\n font-size: 16px;\r\n }\r\n\r\n label + label {\r\n margin-top: 15px;\r\n }\r\n\r\n`\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport Col from \"./Column\";\r\nimport { CheckBox } from \"./Checkbox\";\r\nimport { useOnClickOutside } from \"../../Utility/method/useOnClickOutside\";\r\nimport { StyledButton } from './Button';\r\n\r\n\r\nexport const FormLayout = styled.div`\r\n border: 1px dashed #a8d2ff;\r\n border-top: 1px solid #a8d2ff;\r\n border-radius: 5px;\r\n padding: 15px;\r\n position: relative;\r\n margin-bottom: 30px;\r\n\r\n .form-title {\r\n position: absolute;\r\n background: #fff;\r\n top: -10px;\r\n right: 0;\r\n padding: 0 17px;\r\n font-size: 0.9rem;\r\n }\r\n`;\r\n\r\nexport const StyledForm = styled.form`\r\n display: flex;\r\n justify-content: center;\r\n flex-direction: column;\r\n width: 100%;\r\n height: auto;\r\n padding: 15px;\r\n /* box-shadow: 0 0 11px #ccc; */\r\n border-radius: 0.4rem;\r\n`;\r\n\r\nexport const FormGroup = styled(Col)`\r\n flex-direction: column;\r\n min-height: 33px;\r\n height: 100%;\r\n width: 100%;\r\n margin: 0 0 1rem 0;\r\n border-radius: 5px;\r\n /* flex-direction: row-reverse;\r\n flex-wrap: wrap; */\r\n outline: none;\r\n position: relative;\r\n\r\n :focus {\r\n outline: none;\r\n }\r\n\r\n &.uploadGrop {\r\n display: block;\r\n height: 100%;\r\n top: 0px;\r\n position: absolute;\r\n text-align: center;\r\n /* overflow: hidden; */\r\n width: inherit;\r\n cursor: pointer;\r\n padding: 0;\r\n margin: 0;\r\n\r\n label {\r\n text-align: center;\r\n line-height: 2.2rem;\r\n font-family: IRANSans;\r\n font-size: 12px;\r\n width: inherit;\r\n height: 100%;\r\n }\r\n }\r\n\r\n .uploadBox {\r\n position: relative;\r\n width: 100%;\r\n height: 170px;\r\n display: block;\r\n margin: 0 auto;\r\n\r\n .uploadBar {\r\n background-color: rgba(191, 189, 189, 0.6);\r\n -webkit-transition: display 500ms ease-out 1s;\r\n -moz-transition: display 500ms ease-out 1s;\r\n -o-transition: display 500ms ease-out 1s;\r\n transition: display 500ms ease-out 1s;\r\n cursor: pointer;\r\n width: 100%;\r\n height: 36px;\r\n display: block;\r\n color: ${(props) => props.theme.gray};\r\n position: absolute;\r\n line-height: 2.5rem;\r\n bottom: 0px;\r\n border-radius: 0 0 0.4rem 0.4rem;\r\n }\r\n }\r\n`;\r\n\r\nexport const FormInput = styled.input`\r\n font-family: \"IRANSans\";\r\n border: ${(props) =>\r\n props.error === \"false\"\r\n ? \"1px solid #ced4da\"\r\n : `1px solid ${props.theme.red}`};\r\n color: ${(props) => (props.readOnly ? \"#a8a8a8\" : \"#495057\")};\r\n color: ${(props) => (props.disabled ? \"#a8a8a8\" : \"#495057\")};\r\n cursor: ${(props) => props.readOnly === true && \"no-drop\"};\r\n cursor: ${(props) => props.disabled === true && \"no-drop\"};\r\n background-color: ${(props) => (props.readOnly ? \"#e8e8e8\" : \"white\")};\r\n background-color: ${(props) => (props.disabled ? \"#e8e8e8\" : \"white\")};\r\n outline: none;\r\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n display: block;\r\n width: ${(props) => (props.otpCode === true ? \"10%\" : \"100%\")};\r\n margin: ${(props) => (props.otpCode === true ? \"0 1%\" : \"0\")};\r\n height: calc(1.5em + 0.75rem + 2px);\r\n padding: 0.375rem 0.75rem;\r\n font-weight: normal;\r\n line-height: 1.5;\r\n font-size: 1rem;\r\n background-clip: padding-box;\r\n border-radius: 0.25rem;\r\n text-align: ${(props) => (props.otpCode === true ? \"center\" : \"initial\")};\r\n\r\n :focus {\r\n outline: none;\r\n box-shadow: none;\r\n border: 1px solid #00b9bc;\r\n transition: 0.3s;\r\n }\r\n\r\n ::placeholder {\r\n text-align: right;\r\n }\r\n\r\n :disabled {\r\n background: #ddd;\r\n }\r\n\r\n :read-only {\r\n background: #e8e8e8;\r\n }\r\n\r\n :-moz-placeholder,\r\n :-ms-input-placeholder,\r\n ::-webkit-input-placeholder {\r\n text-align: right;\r\n }\r\n`;\r\n\r\nexport const FormSelect = styled.select`\r\n border: ${(props) =>\r\n props.error === \"false\"\r\n ? \"1px solid #ced4da\"\r\n : `1px solid ${props.theme.red}`};\r\n color: ${(props) => props.readOnly === true && props.theme.gray};\r\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n color: #495057;\r\n height: ${(props) => (props.multiple ? \"6rem !important\" : \"auto\")};\r\n`;\r\n\r\nexport const FormTextArea = styled.textarea`\r\n border: ${(props) =>\r\n props.error === \"false\"\r\n ? \"1px solid #ced4da\"\r\n : `1px solid ${props.theme.red}`};\r\n cursor: ${(props) => props.readOnly === true && \"no-drop\"};\r\n /* background-color: ${(props) => (props.readOnly ? \"#f7f7f7\" : \"white\")}; */\r\n color: ${(props) => (props.readOnly ? \"#a8a8a8\" : \"#495057\")};\r\n background-color: ${(props) => (props.readOnly ? \"#e8e8e8\" : \"white\")};\r\n\r\n outline: none;\r\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n display: block;\r\n width: 100%;\r\n margin: 0;\r\n resize: none;\r\n height: ${(props) =>\r\n props.height ? props.height : \"100%\"};\r\n padding: 0.375rem 0.75rem;\r\n font-weight: normal;\r\n line-height: 1.5;\r\n font-size: 1rem;\r\n background-clip: padding-box;\r\n border-radius: 0.25rem;\r\n direction: rtl;\r\n text-align: ${(props) => (props.otpCode === true ? \"center\" : \"right\")};\r\n`;\r\n\r\nexport const FormInputCode = styled.input`\r\n border: 1px solid #ced4da;\r\n border: ${(props) =>\r\n props.error === false\r\n ? \"1px solid #ced4da\"\r\n : `1px solid ${props.theme.red}`};\r\n\r\n color: ${(props) => props.readOnly === true && props.theme.gray};\r\n cursor: ${(props) => props.readOnly === true && \"no-drop\"};\r\n background-color: ${(props) => props.theme.white};\r\n outline: none;\r\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n display: block;\r\n width: 14.65%;\r\n margin: 0 1%;\r\n height: calc(1.5em + 0.75rem + 2px);\r\n padding: 0.375rem 0.75rem;\r\n font-weight: normal;\r\n line-height: 1.5;\r\n font-size: 1rem;\r\n color: #495057;\r\n background-clip: padding-box;\r\n border-radius: 0.25rem;\r\n direction: ltr;\r\n text-align: center;\r\n flex-direction: row-reverse;\r\n flex-wrap: wrap;\r\n /* Chrome, Safari, Edge, Opera */\r\n\r\n &::-webkit-outer-spin-button,\r\n &::-webkit-inner-spin-button {\r\n -webkit-appearance: none;\r\n margin: 0;\r\n }\r\n\r\n /* Firefox */\r\n\r\n input[type=\"number\"] {\r\n -moz-appearance: textfield;\r\n }\r\n\r\n :focus {\r\n outline: none;\r\n box-shadow: none;\r\n border: 1px solid #00b9bc;\r\n transition: 0.3s;\r\n }\r\n\r\n ::placeholder {\r\n direction: rtl;\r\n }\r\n`;\r\n\r\nexport const FormLable = styled.label`\r\n background-color: white;\r\n display: ${(props) => (props.show !== true ? \"none\" : \"flex\")};\r\n justify-content: space-between;\r\n align-items: center;\r\n color: ${(props) => props.theme.label};\r\n padding: 5px;\r\n margin-bottom: 0.1rem;\r\n font-weight: 600;\r\n text-align: right;\r\n font-size: 12px;\r\n width: 100%;\r\n\r\n > button {\r\n border: 0;\r\n background-color: transparent;\r\n color: #6993ff;\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n }\r\n\r\n @keyframes fade {\r\n 0% {\r\n opacity: 0;\r\n }\r\n 100% {\r\n opacity: 1;\r\n }\r\n }\r\n /* animation: fade 300ms ease 10ms 1 forwards ; */\r\n`;\r\n\r\nexport const FormError = styled(Col)`\r\n display: ${(props) => (props.show === \"false\" ? \"none\" : \"block\")};\r\n color: red;\r\n font-size: 11px;\r\n justify-content: flex-start;\r\n width: 100%;\r\n padding: 5px 0px 5px 0px;\r\n height: auto;\r\n text-align: right;\r\n`;\r\n\r\nconst copyCodeToClipboard = (e) => {\r\n e.persist();\r\n const el = e.currentTarget.parentNode.nextSibling;\r\n el.select();\r\n document.execCommand(\"copy\");\r\n};\r\n\r\nexport const StyledInput = (props) => {\r\n const {\r\n lable,\r\n focus,\r\n formGroupClass,\r\n isCopyCapability,\r\n disabled = false,\r\n } = props;\r\n return (\r\n \r\n \r\n {lable}\r\n {isCopyCapability ? (\r\n \r\n ) : null}\r\n \r\n\r\n \r\n {props.error} \r\n \r\n );\r\n};\r\n\r\nexport const RangePicker = (props) => {\r\n return (\r\n \r\n \r\n {props.error} \r\n \r\n );\r\n};\r\n\r\nexport const StyledOtpCode = (props) => {\r\n return (\r\n <>\r\n \r\n \r\n );\r\n};\r\n\r\nexport const StyledSelect = (props) => {\r\n const { lable, error, focus, optionItems, hasDefaultOption } = props;\r\n\r\n return (\r\n \r\n {lable}\r\n \r\n {hasDefaultOption && (\r\n \r\n انتخاب کنید\r\n \r\n )}\r\n {optionItems &&\r\n optionItems.map((item, index) => (\r\n \r\n ))}\r\n \r\n {error} \r\n \r\n );\r\n};\r\n\r\nexport const StyledTextArea = (props) => {\r\n const textareaRef = useRef(null);\r\n const { lable, focus, formGroupClass, isCopyCapability = false } = props;\r\n\r\n\r\n\r\n return (\r\n \r\n \r\n {\" \"}\r\n {lable}{\" \"}\r\n {isCopyCapability ? (\r\n \r\n ) : null}\r\n \r\n\r\n \r\n \r\n {props.error}{\" \"}\r\n \r\n \r\n );\r\n};\r\n\r\nexport const UploadButton = styled.span`\r\n display: inline-block;\r\n width: 125px;\r\n font-family: IRANSans;\r\n\r\n :focus {\r\n outline: none;\r\n border: none;\r\n }\r\n`;\r\n\r\nexport const FormUploadInput = styled.input`\r\n direction: rtl;\r\n min-height: 36px;\r\n height: 100%;\r\n width: 100%;\r\n border-radius: 18px;\r\n position: absolute;\r\n cursor: ${(props) => props.readOnly === true && \"no-drop\"};\r\n background-color: ${(props) => props.theme.lightGray};\r\n padding: 0px 10px 0px 10px;\r\n opacity: 0;\r\n filter: alpha(opacity=0);\r\n cursor: pointer;\r\n zoom: 1;\r\n right: 0;\r\n top: 0;\r\n\r\n :focus {\r\n outline: none;\r\n }\r\n\r\n ::placeholder {\r\n direction: rtl;\r\n }\r\n`;\r\n\r\n\r\nexport const StyledInputUpload = (props) => {\r\n const { hasurl } = props;\r\n\r\n return (\r\n \r\n {hasurl === null ? (\r\n <>\r\n \r\n \r\n \r\n ) : (\r\n
\r\n \r\n \r\n
\r\n )}\r\n\r\n {props.error} \r\n
\r\n );\r\n};\r\n\r\n\r\nexport const CustomeStyledInputUpload = (props) => {\r\n const { hasurl, error, name, placeholder, type, changeFile, removeUploadedFile, downloadUrl } = props;\r\n\r\n const clickHandler = (e) => {\r\n switch (e.target.name) {\r\n case \"delete-file\":\r\n removeUploadedFile();\r\n break;\r\n }\r\n }\r\n \r\n function downloadFile(url) {\r\n \r\n const a = document.createElement('a')\r\n a.href = url;\r\n a.target = \"_blank\";\r\n \r\n document.body.appendChild(a)\r\n a.click()\r\n document.body.removeChild(a)\r\n }\r\n\r\n return (\r\n \r\n {hasurl === null ? (\r\n\r\n <>\r\n
\r\n\r\n changeFile(e)} placeholder={placeholder} name={name} id=\"file-input\" />\r\n\r\n
\r\n\r\n \r\n\r\n ) : (\r\n <>\r\n
\r\n\r\n
\r\n {\r\n downloadUrl ?\r\n\r\n <>\r\n\r\n {downloadFile(downloadUrl)}}\r\n >\r\n دانلود فایل\r\n \r\n \r\n :\r\n <>\r\n \r\n changeFile(e)} placeholder={placeholder} name={name} id=\"file-input\" />\r\n\r\n تغییر فایل\r\n \r\n \r\n }\r\n\r\n \r\n حذف فایل\r\n \r\n
\r\n
\r\n \r\n )\r\n }\r\n\r\n {error} \r\n\r\n
\r\n );\r\n};\r\n\r\nexport const FormCheckBoxGroup = styled.div`\r\n position: relative;\r\n display: block;\r\n margin-bottom: 3px;\r\n`;\r\n\r\nexport const FormCheckBox = styled.input`\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n -webkit-appearance: none;\r\n border: ${(props) =>\r\n props.error === \"false\"\r\n ? \"1px solid #1bc5bd\"\r\n : `1px solid ${props.theme.red}`};\r\n color: ${(props) => props.readOnly === true && props.theme.gray};\r\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n`;\r\n\r\nexport const StyledCheckBox = (props) => {\r\n const { lable, focus, id } = props;\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n {props.error} \r\n \r\n );\r\n};\r\n\r\nexport const FormSwitchBoxGroup = styled.div`\r\n display: flex;\r\n align-items: center;\r\n`;\r\n\r\nexport const FormSwitchBox = styled.input`\r\n font-size: 15px;\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n appearance: none;\r\n width: 3.5em;\r\n height: 1.5em;\r\n background: #ddd;\r\n border-radius: 3em;\r\n position: relative;\r\n cursor: pointer;\r\n outline: none;\r\n -webkit-transition: all 0.2s ease-in-out;\r\n transition: all 0.2s ease-in-out;\r\n\r\n &:checked {\r\n background: ${(props) => props.theme.greenBtn};\r\n }\r\n\r\n &:after {\r\n position: absolute;\r\n content: \"\";\r\n width: 1.5em;\r\n height: 1.5em;\r\n border-radius: 50%;\r\n background: #fff;\r\n -webkit-box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.3);\r\n box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.3);\r\n -webkit-transform: scale(0.7);\r\n transform: scale(0.7);\r\n left: 0;\r\n -webkit-transition: all 0.2s ease-in-out;\r\n transition: all 0.2s ease-in-out;\r\n }\r\n\r\n :checked:after {\r\n left: calc(100% - 1.5em);\r\n }\r\n`;\r\n\r\nexport const StyledSwitchBox = (props) => {\r\n return (\r\n \r\n \r\n {/* */}\r\n \r\n );\r\n};\r\n\r\nexport const StyledRadioBox = styled.div`\r\n margin-left: 1rem;\r\n\r\n [type=\"radio\"]:checked,\r\n [type=\"radio\"]:not(:checked) {\r\n display: none;\r\n }\r\n\r\n [type=\"radio\"]:checked + label,\r\n [type=\"radio\"]:not(:checked) + label {\r\n position: relative;\r\n padding-right: 28px;\r\n cursor: pointer;\r\n line-height: 20px;\r\n display: inline-block;\r\n color: #666;\r\n }\r\n\r\n [type=\"radio\"]:checked + label:before,\r\n [type=\"radio\"]:not(:checked) + label:before {\r\n content: \"\";\r\n position: absolute;\r\n right: 0;\r\n top: 0;\r\n width: 18px;\r\n height: 18px;\r\n border: 1px solid #ddd;\r\n border-radius: 100%;\r\n background: #fff;\r\n }\r\n\r\n [type=\"radio\"]:checked + label:after,\r\n [type=\"radio\"]:not(:checked) + label:after {\r\n content: \"\";\r\n width: 12px;\r\n height: 12px;\r\n background: ${(props) => props.theme.greenBtn};\r\n position: absolute;\r\n top: 3px;\r\n right: 3px;\r\n border-radius: 100%;\r\n -webkit-transition: all 0.2s ease;\r\n transition: all 0.2s ease;\r\n }\r\n\r\n [type=\"radio\"]:not(:checked) + label:after {\r\n opacity: 0;\r\n -webkit-transform: scale(0);\r\n transform: scale(0);\r\n }\r\n\r\n [type=\"radio\"]:checked + label:after {\r\n opacity: 1;\r\n -webkit-transform: scale(1);\r\n transform: scale(1);\r\n }\r\n\r\n label {\r\n width: auto;\r\n margin-bottom: 0;\r\n }\r\n`;\r\nexport const StyledRadioBtn = (props) => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\nconst AutocompleteWrapper = styled.div`\r\n width: 100%;\r\n position: relative;\r\n\r\n > input {\r\n border-radius: 4px;\r\n border: 1px solid #cecece;\r\n width: 100%;\r\n height: calc(1.5em + 0.75rem + 2px);\r\n text-indent: 10px;\r\n font-size: 13px;\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n }\r\n\r\n > ul {\r\n display: none;\r\n padding: 0;\r\n background: #fff;\r\n border: 1px solid #cecece;\r\n border-top: none;\r\n margin-top: -2px;\r\n text-align: right;\r\n direction: rtl;\r\n position: absolute;\r\n top: calc(1.5em + 0.75rem + 2px);\r\n right: 0;\r\n width: 100%;\r\n max-height: 200px;\r\n border-radius: 0 0 4px 4px;\r\n z-index: 100;\r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n\r\n &.open {\r\n display: block;\r\n }\r\n\r\n li {\r\n padding: 0.5rem 1rem;\r\n cursor: pointer;\r\n\r\n &:hover {\r\n background-color: #e2edee;\r\n }\r\n\r\n &.empty-list {\r\n text-align: center;\r\n cursor: default;\r\n\r\n &:hover {\r\n background-color: transparent;\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const AutocompleteList = (props) => {\r\n const {\r\n placeholder = \"\",\r\n options = [],\r\n keyName = \"key\",\r\n valueName = \"value\",\r\n inputHandler,\r\n selectItem,\r\n value,\r\n } = props;\r\n const [selectOpen, setSelectOpen] = useState(false);\r\n const [inputText, setInputText] = useState(\"\");\r\n const ref = useRef();\r\n useOnClickOutside(ref, () => setSelectOpen(false));\r\n\r\n const changeInputHandler = (e) => {\r\n setSelectOpen(true);\r\n setInputText(e.target.value);\r\n inputHandler(e.target.value);\r\n };\r\n\r\n const selectHandler = (index) => {\r\n setSelectOpen(false);\r\n selectItem(options[index]);\r\n setInputText(options[index][valueName]);\r\n };\r\n\r\n useEffect(() => {\r\n if (!selectOpen) {\r\n const defaultValue = options.find((f) => f[keyName] === value);\r\n if (defaultValue) {\r\n setInputText(defaultValue[valueName]);\r\n }\r\n }\r\n if (!value) {\r\n setInputText(\"\");\r\n }\r\n }, [value, options]);\r\n return (\r\n <>\r\n \r\n setSelectOpen(true)}\r\n onChange={(e) => changeInputHandler(e)}\r\n />\r\n
    \r\n {options && options.length ? (\r\n options.map((item, index) => (\r\n
  • selectHandler(index)} key={index}>\r\n {item[valueName]}\r\n
  • \r\n ))\r\n ) : (\r\n
  • موردی یافت نشد.
  • \r\n )}\r\n
\r\n
\r\n \r\n );\r\n};\r\n","export const NumericalValidationMultilang = (strNum) => {\r\n let result;\r\n let isValid;\r\n\r\n isValid = preventAlphabet(strNum);\r\n if (isValid) {\r\n result = convertPersianToEnglish(strNum);\r\n if (strNum !== result) {\r\n return result;\r\n } else {\r\n return strNum;\r\n }\r\n } else {\r\n return strNum.substring(0, strNum.length - 1);\r\n }\r\n}\r\n\r\nconst convertPersianToEnglish = (strNum) => {\r\n let result;\r\n const persianNumbers = ['۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹', '۰'];\r\n const arabicNumbers = ['١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩', '٠'];\r\n const englishNumbers = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'];\r\n\r\n result = strNum.split('').map(c => englishNumbers[persianNumbers.indexOf(c)] || englishNumbers[arabicNumbers.indexOf(c)] || c).join('');\r\n return result;\r\n }\r\n\r\nconst preventAlphabet = (input) => {\r\n const numbers = ['۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹', '۰', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩', '٠', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'];\r\n let result = true;\r\n\r\n input.split('').map((char) => {\r\n // console.log(`include: ${char}`, numbers.includes(char));\r\n result = result && numbers.includes(char);\r\n });\r\n return result;\r\n }\r\n","let TicketDepartmentList = [\r\n { name: \"پشتیبانی\", value: 1 },\r\n { name: \"فنی\", value: 2 },\r\n { name: \"مالی\", value: 3 }\r\n ];\r\n \r\n export default TicketDepartmentList;\r\n ","import * as Yup from \"yup\";\r\nimport {ValidNationalId} from \"persian-national-id\";\r\n\r\nconst NumberRegExp = /^\\d+$/;\r\nconst NumberBiggestZeroRegExp = /^[1-9]\\d*$/;\r\nconst IPRegExp =\r\n /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/;\r\n\r\nconst NotLatinRegex = /^[^a-zA-Z]*$/;\r\nexport const nationalId = Yup.string()\r\n .label(\"nationalCode\")\r\n .required(\"این فیلد الزامی است.\")\r\n .test(\"\", \"کد ملی معتبر نیست.\", (value) => ValidNationalId(value));\r\n\r\nexport const nationalIdCompany = Yup.string()\r\n .matches(NumberRegExp, \"فقط کاراکتر عددی مجاز می‌باشد.\")\r\n .min(11, \"شناسه ملی نمی تواند کمتر از 11 کاراکتر باشد.\")\r\n .max(11, \"شناسه ملی نمی تواند بیشتر از 11 کاراکتر باشد..\")\r\n .label(\"nationalIdCompany\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nconst phoneRegExp =\r\n /^((\\\\+[1-9]{1,4}[ \\\\-]*)|(\\\\([0-9]{2,3}\\\\)[ \\\\-]*)|([0-9]{2,4})[ \\\\-]*)*?[0-9]{3,4}?[ \\\\-]*[0-9]{3,4}?$/;\r\nexport const phoneNumber = Yup.string()\r\n .matches(phoneRegExp, \"شماره تلفن معتبر نیست.\")\r\n .min(7, \"شماره تلفن نمی تواند کمتر از 7 کاراکتر باشد.\")\r\n .max(11, \"شماره تلفن نمی تواند بیشتر از 11 کاراکتر باشد.\")\r\n .label(\"phoneNumber\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const userPhoneNumber = Yup.string()\r\n .matches(phoneRegExp, \"Phone number is not valid\")\r\n .min(7, \"شماره موبایل نمی تواند کمتر از 7 کاراکتر باشد.\")\r\n .max(11, \"شماره موبایل نمی تواند بیشتر از 11 کاراکتر باشد.\")\r\n .label(\"userPhoneNumber\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\n// const mobileRegExp = /^(|[1-9]\\d*)$/;\r\nconst mobileRegExp =\r\n /^09(0[0-9]|1[0-9]|2[0-9]|3[0-9]|41|9[0-9])-?[0-9]{3}-?[0-9]{4}/;\r\nexport const mobile = Yup.string()\r\n .matches(mobileRegExp, \"شماره موبابل معتبر وارد نمایید.\")\r\n .min(11, \"شماره موبایل نمی تواند کمتر از 11 کاراکتر باشد.\")\r\n .max(11, \"شماره موبایل نمی تواند بیشتر از 11 کاراکتر باشد.\")\r\n .label(\"mobile\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const otpCode = Yup.string()\r\n .matches(NumberRegExp, \"فقط کاراکتر عددی مجاز می‌باشد.\")\r\n .min(6, \"کد نمی‌تواند کمتر از 6 کاراکتر ‌باشد.\")\r\n .max(6, \"کد نمی‌تواند بیشتر از 6 کاراکتر ‌باشد.\")\r\n .label(\"otpCode\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const username = Yup.string()\r\n .min(6, \"حداقل کاراکتر مجاز 6 می باشد\")\r\n .max(256, \"نام‌کاربری نمی تواند بیشتر از 256 کاراکتر باشد.\")\r\n .label(\"username\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const password = Yup.string()\r\n .min(8, \"حداقل کاراکتر مجاز 8 می باشد\")\r\n //.max(10, \"رمزعبور نمی تواند بیشتر از 10 کاراکتر باشد.\")\r\n .label(\"password\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const setPassword = Yup.string()\r\n .min(8, \"حداقل کاراکتر مجاز 8 می باشد\")\r\n .label(\"setPassword\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const oldPassword = Yup.string()\r\n .label(\"oldPassword\")\r\n .min(8, \"حداقل کاراکتر مجاز 8 می باشد\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const newPassword = Yup.string()\r\n .label(\"newPassword\")\r\n .min(8, \"حداقل کاراکتر مجاز 8 می باشد\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const repeatPassword = Yup.string()\r\n .label(\"repeatPassword\")\r\n .oneOf([Yup.ref(\"newPassword\"), null], \"عدم تطابق با رمز عبور\")\r\n .min(8, \"حداقل کاراکتر مجاز 8 می باشد\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const subject = Yup.string()\r\n .max(32, \"حداکثر کاراکتر مجاز 32 می باشد\")\r\n .label(\"subject\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const description = Yup.string()\r\n .label(\"description\")\r\n .min(1, \"حداقل کاراکتر مجاز 1 می باشد\")\r\n .max(512, \"توضیحات نمی تواند بیشتر از 512 کاراکتر باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const longDescription = Yup.string()\r\n .label(\"longDescription\")\r\n .min(1, \"حداقل کاراکتر مجاز 1 می باشد\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const suspendDescription = Yup.string()\r\n .label(\"description\")\r\n .min(1, \"حداقل کاراکتر مجاز 1 می باشد\")\r\n .max(512, \"توضیحات نمی تواند بیشتر از 512 کاراکتر باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const fastSendTemplateRejectDescription = Yup.string()\r\n .label(\"description\")\r\n .min(1, \"حداقل کاراکتر مجاز 1 می باشد\")\r\n .max(512, \"توضیحات نمی تواند بیشتر از 512 کاراکتر باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const commentDescription = Yup.string()\r\n .label(\"description\")\r\n .min(1, \"حداقل کاراکتر مجاز 1 می باشد\")\r\n .max(512, \"توضیحات نمی تواند بیشتر از 512 کاراکتر باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const keyWord = Yup.string()\r\n .label(\"keyWord\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const isCancellation = Yup.string()\r\n .label(\"isCancellation\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const forbiddenWords = Yup.string()\r\n .label(\"words\")\r\n .min(1, \"حداقل کاراکتر مجاز 1 می باشد\")\r\n .max(32, \"کلمه ممنوعه نمیتواند بیش از 32 کاراکتر باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const notificationTitle = Yup.string()\r\n .label(\"notificationTitle\")\r\n .min(1, \"حداقل کاراکتر مجاز 1 می باشد\")\r\n .max(32, \"نام اعلان نمی تواند بیشتر از 32 کاراکتر باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const notificationContent = Yup.string()\r\n .label(\"notificationContent\")\r\n .min(1, \"حداقل کاراکتر مجاز 1 می باشد\")\r\n .max(512, \"توضیحات نمی تواند بیشتر از 512 کاراکتر باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const department = Yup.string()\r\n .label(\"department\")\r\n .required(\"لطفاً یک گزینه را انتخاب نمایید.\");\r\n\r\nexport const priority = Yup.string()\r\n .label(\"priority\")\r\n .required(\"لطفاً یک گزینه را انتخاب نمایید.\");\r\n\r\nexport const outcome = Yup.string()\r\n .label(\"outcome\")\r\n .required(\"لطفاً یک گزینه را انتخاب نمایید.\");\r\n\r\nexport const ticketContent = Yup.string()\r\n .label(\"ticketContent\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const firstName = Yup.string()\r\n .min(2, \"نام نمی‌تواند کمتر از 2 کاراکتر باشد.\")\r\n .max(32, \"حداکثر کاراکتر مجاز 32 می باشد\")\r\n .label(\"firstName\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const lastName = Yup.string()\r\n .min(2, \"نام خانوادگی نمی‌تواند کمتر از 2 کاراکتر باشد.\")\r\n .max(32, \"حداکثر کاراکتر مجاز 32 می باشد\")\r\n .label(\"lastName\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const fatherName = Yup.string()\r\n .min(2, \"نام پدر نمی‌تواند کمتر از 2 کاراکتر باشد.\")\r\n .max(32, \"حداکثر کاراکتر مجاز 32 می باشد\")\r\n .label(\"fatherName\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const certificateNo = Yup.string()\r\n .label(\"certificateNo\")\r\n .matches(NumberRegExp, \"فقط کاراکتر عددی مجاز می‌باشد.\")\r\n .min(1, \"حداقل تعداد مجاز کاراکتر 1 می‌باشد.\")\r\n .max(10, \"حداکثر تعداد مجاز کاراکتر 10 می‌باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const birthDate = Yup.string()\r\n .label(\"birthDate\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const address = Yup.string()\r\n .label(\"address\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const sendMessage = Yup.string()\r\n .label(\"sendMessage\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const userIsVip = Yup.boolean().label(\"userIsVip\");\r\n\r\nexport const postalCode = Yup.string()\r\n .matches(phoneRegExp, \"کدپستی معتبر نیست\")\r\n .min(10, \"کدپستی نمی تواند کمتر از 10 رقم باشد.\")\r\n .max(10, \"کدپستی نمی تواند بیشتر از 10 رقم باشد.\")\r\n .label(\"postalCode\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\n// const SUPPORTED_FORMATS = [\"image/jpg\", \"image/jpeg\", \"image/JPG\", \"image/png\", \"application/vnd.ms-excel\", \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\", \"application/x-zip-compressed\", \".rar\"];\r\nconst SUPPORTED_FORMATS = [\r\n \"jpg\",\r\n \"jpeg\",\r\n \"JPG\",\r\n \"png\",\r\n \"xlsx\",\r\n \"xls\",\r\n \"zip\",\r\n \"rar\",\r\n \"txt\"\r\n];\r\nconst maxFileSize = 5 * 1024 * 1024;\r\nexport const ticketFile = Yup.mixed()\r\n .label(\"ticketFile\")\r\n .test(\"ticketFile\", \"حجم فایل باید کمتر از 5 مگ باشد\", function (value) {\r\n if (!!value) {\r\n return value.size <= maxFileSize ? value.size <= maxFileSize : false;\r\n }\r\n return true;\r\n })\r\n .test(\"ticketFile\", \"فرمت فایل ارسالی پشتیبانی نمی‌شود.\", function (value) {\r\n if (!!value) {\r\n var ext = value.name.split(\".\");\r\n return SUPPORTED_FORMATS.includes(ext[ext.length - 1]);\r\n }\r\n return true;\r\n });\r\n\r\n/* Modify config setting Modal */\r\nexport const changeDepartment = Yup.string().label(\"changeDepartment\");\r\n\r\nexport const status = Yup.string().label(\"status\");\r\n//.required(\"لطفاً یک گزینه را انتخاب نمایید.\");\r\n\r\nexport const uploadable = Yup.string().label(\"uploadable\");\r\n//\r\nexport const proformaDueDate = Yup.string().required(\"این فیلد الزامی است.\");\r\n\r\nexport const proformaDescription = Yup.string()\r\n .label(\"proformaDescription\")\r\n .min(1, \"حداقل کاراکتر مجاز 1 می باشد\")\r\n .max(512, \"توضیحات نمی تواند بیشتر از 512 کاراکتر باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const proformaFinalPrice = Yup.string()\r\n .label(\"proformaFinalPrice\")\r\n .nullable()\r\n .max(10, \"مبلغ نمی تواند بیشتر از 10 رقم باشد.\")\r\n .required(\"این فیلد الزامی است.\")\r\n .test(\r\n \"\",\r\n \"عدد مورد نظر باید بین 1 و 2,100,000,000 ریال باشد.\",\r\n (value) => value > 0 && value <= 2100000000\r\n );\r\nexport const proformaBasePrice = Yup.string()\r\n .label(\"proformaBasePrice\")\r\n .nullable()\r\n .required(\"این فیلد الزامی است.\")\r\n .test(\"\", \"عدد مورد نظر باید بزرگتر صفر باشد.\", (value) => value > 0);\r\n\r\nexport const invoiceNumber = Yup.string()\r\n .min(1, \"حداقل تعداد مجاز کاراکتر 1 می‌باشد.\")\r\n .max(10, \"حداکثر تعداد مجاز کاراکتر 10 می‌باشد.\")\r\n .label(\"invoiceNumber\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const city = Yup.object().label(\"city\").required(\"این فیلد الزامی است.\");\r\n\r\nexport const invoiceDate = Yup.string()\r\n .label(\"invoiceDate\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const maxCount = Yup.string().label(\"maxCount\");\r\nexport const count = Yup.string().label(\"count\").required(\"این فیلد الزامی است.\");\r\nexport const item = Yup.string().label(\"item\").required(\"این فیلد الزامی است.\");\r\nexport const discountPrice = Yup.string().label(\"discountPrice\").required(\"این فیلد الزامی است.\");\r\n\r\nconst floatNumberRegExp = /^(?:[1-9]\\d*|0)?(?:\\.\\d+)?$/;\r\nexport const creditCount = Yup.string()\r\n .matches(floatNumberRegExp, \"تعداد وارد شده مجاز نیست.\")\r\n .min(3, \"حداقل کریدیت وارد شده 100 واحد می‌باشد.\")\r\n .max(6, \"این مقدار بیشتر از حد مجاز می‌باشد.\")\r\n .label(\"creditCount\")\r\n .required(\"این فیلد الزامی است.\");\r\n// .oneOf([Yup.ref('maxCount'), null], 'عدم تطابق با رمز عبور')\r\n// .test('', 'lklk', (value) => console.log(Yup.object()) );\r\n\r\nexport const basePrice = Yup.string()\r\n .label(\"basePrice\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const lineProfitPercent = Yup.number()\r\n .label(\"lineProfitPercent\")\r\n .required(\"این فیلد الزامی است.\")\r\n .test(\r\n \"\",\r\n \"درصد وارد شده نمی تواند از 100 بیشتر ‌باشد.\",\r\n (value) => value <= 100\r\n )\r\n .test(\"\", \"درصد وارد شده نمی تواند از 0 کمتر ‌باشد.\", (value) => value >= 0);\r\n\r\nexport const creditProfitPercent = Yup.number()\r\n .label(\"creditProfitPercent\")\r\n .required(\"این فیلد الزامی است.\")\r\n .test(\r\n \"\",\r\n \"درصد وارد شده نمی تواند از 100 بیشتر ‌باشد.\",\r\n (value) => value <= 100\r\n )\r\n .test(\"\", \"درصد وارد شده نمی تواند از 0 کمتر ‌باشد.\", (value) => value >= 0);\r\n\r\nexport const roleItems = Yup.array()\r\n .label(\"roleItems\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const roleId = Yup.string()\r\n .label(\"roleId\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const suspended = Yup.string().label(\"suspended\");\r\n\r\nconst emailRegExp =\r\n /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/;\r\n// const emailRegExp = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\nexport const email = Yup.string()\r\n .matches(emailRegExp, \"ایمیل معتبر وارد نمایید\")\r\n .max(128, \"حداکثر تعداد مجاز کاراکتر 128 می‌باشد.\")\r\n .label(\"email\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\n//setting\r\nexport const numberLimitation = Yup.string()\r\n .label(\"numberLimitation\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const smsContent = Yup.string()\r\n .label(\"smsContent\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const giftLineProvider = Yup.string()\r\n .label(\"giftLineProvider\")\r\n .required(\"لطفاً یک گزینه را انتخاب نمایید.\");\r\n\r\nexport const lineNumber = Yup.string()\r\n .label(\"lineNumber\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const type = Yup.string()\r\n .label(\"type\")\r\n .required(\"لطفاً یک گزینه را انتخاب نمایید.\");\r\n\r\nexport const providerId = Yup.string()\r\n .label(\"providerId\")\r\n .required(\"لطفاً یک گزینه را انتخاب نمایید.\");\r\n\r\nexport const fromLineNumber = Yup.string()\r\n .matches(NumberRegExp, \"فقط کاراکتر عددی مجاز می‌باشد.\")\r\n .label(\"fromLineNumber\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const toLineNumber = Yup.string()\r\n .matches(NumberRegExp, \"فقط کاراکتر عددی مجاز می‌باشد.\")\r\n .label(\"toLineNumber\");\r\n\r\n// guest\r\nexport const guestFirstName = Yup.string()\r\n .label(\"guestFirstName\")\r\n .min(1, \"حداقل تعداد مجاز کاراکتر 1 می‌باشد.\")\r\n .max(32, \"حداکثر تعداد مجاز کاراکتر 32 می‌باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const guestLastName = Yup.string()\r\n .label(\"guestLastName\")\r\n .min(1, \"حداقل تعداد مجاز کاراکتر 1 می‌باشد.\")\r\n .max(32, \"حداکثر تعداد مجاز کاراکتر 32 می‌باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const guestFatherName = Yup.string()\r\n .label(\"guestFatherName\")\r\n .min(1, \"حداقل تعداد مجاز کاراکتر 1 می‌باشد.\")\r\n .max(32, \"حداکثر تعداد مجاز کاراکتر 32 می‌باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const addLineNumber = Yup.string()\r\n .label(\"addLineNumber\")\r\n .matches(NumberRegExp, \"فقط کاراکتر عددی مجاز می‌باشد.\")\r\n .max(12, \"حداکثر تعداد مجاز کاراکتر 12 می‌باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const guestCertificateNo = Yup.string()\r\n .label(\"guestCertificateNo\")\r\n .matches(NumberRegExp, \"فقط کاراکتر عددی مجاز می‌باشد.\")\r\n .min(1, \"حداقل تعداد مجاز کاراکتر 1 می‌باشد.\")\r\n .max(10, \"حداکثر تعداد مجاز کاراکتر 10 می‌باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const guestBirthDate = Yup.string()\r\n .label(\"guestBirthDate\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const guestPhoneNumber = Yup.string()\r\n .label(\"guestPhoneNumber\")\r\n .min(7, \"حداقل تعداد مجاز کاراکتر 7 می‌باشد.\")\r\n .max(12, \"حداکثر تعداد مجاز کاراکتر 12 می‌باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const guestPostalCode = Yup.string()\r\n .matches(phoneRegExp, \"کدپستی معتبر نیست\")\r\n .min(10, \"کدپستی باید 10 رقم باشد.\")\r\n .max(10, \"کدپستی نمی تواند بیشتر از 10 رقم باشد.\")\r\n .label(\"guestPostalCode\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const guestAddress = Yup.string()\r\n .label(\"guestAddress\")\r\n .min(1, \"حداقل تعداد مجاز کاراکتر 1 می‌باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const guestCompanyActivityField = Yup.string()\r\n .label(\"guestCompanyActivityField\")\r\n .required(\"لطفاً یک گزینه را انتخاب نمایید.\");\r\n\r\nexport const companyActivityField = Yup.string()\r\n .label(\"companyActivityField\")\r\n .required(\"لطفاً یک گزینه را انتخاب نمایید.\");\r\nexport const guestCompanyName = Yup.string()\r\n .label(\"guestCompanyName\")\r\n .min(1, \"حداقل تعداد مجاز کاراکتر 1 می‌باشد.\")\r\n .max(100, \"حداکثر تعداد مجاز کاراکتر 100 می‌باشد.\")\r\n .nullable()\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const companyName = Yup.string()\r\n .label(\"guestCompanyName\")\r\n .min(1, \"حداقل تعداد مجاز کاراکتر 1 می‌باشد.\")\r\n .max(100, \"حداکثر تعداد مجاز کاراکتر 100 می‌باشد.\")\r\n .nullable()\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const registrationNumber = Yup.string()\r\n .label(\"guestRegistrationNumber\")\r\n .matches(NotLatinRegex, \"کاراکتر انگلیسی مجاز نمیباشد.\")\r\n .min(2, \"حداقل تعداد مجاز کاراکتر 2 می‌باشد.\")\r\n .max(13, \"حداکثر تعداد مجاز کاراکتر 13 می‌باشد.\")\r\n .nullable()\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const guestRegistrationNumber = Yup.string()\r\n .label(\"guestRegistrationNumber\")\r\n .matches(NotLatinRegex, \"کاراکتر انگلیسی مجاز نمیباشد.\")\r\n .min(2, \"حداقل تعداد مجاز کاراکتر 2 می‌باشد.\")\r\n .max(13, \"حداکثر تعداد مجاز کاراکتر 13 می‌باشد.\")\r\n .nullable()\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const guestLegalNationalId = Yup.string()\r\n .label(\"guestLegalNationalId\")\r\n .matches(NumberRegExp, \"فقط کاراکتر عددی مجاز می‌باشد.\")\r\n .min(11, \"حداقل تعداد مجاز کاراکتر 11 می‌باشد.\")\r\n .max(11, \"حداکثر تعداد مجاز کاراکتر 11 می‌باشد.\")\r\n .nullable()\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const economicCode = Yup.string()\r\n .label(\"economicCode\")\r\n .matches(NumberRegExp, \"فقط کاراکتر عددی مجاز می‌باشد.\")\r\n .min(11, \"حداقل تعداد مجاز کاراکتر 11 می‌باشد.\")\r\n .max(12, \"حداکثر تعداد مجاز کاراکتر 12 می‌باشد.\")\r\n .nullable()\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const guestEconomicCode = Yup.string()\r\n .label(\"guestEconomicCode\")\r\n .matches(NumberRegExp, \"فقط کاراکتر عددی مجاز می‌باشد.\")\r\n .min(11, \"حداقل تعداد مجاز کاراکتر 11 می‌باشد.\")\r\n .max(12, \"حداکثر تعداد مجاز کاراکتر 12 می‌باشد.\")\r\n .nullable()\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const companyType = Yup.string()\r\n .label(\"companyType\")\r\n .required(\"لطفاً یک گزینه را انتخاب نمایید.\");\r\n\r\nexport const gazetteUploadedFile = Yup.string()\r\n .label(\"gazetteUploadedFile\")\r\n .required(\"لطفاً یک گزینه را انتخاب نمایید.\");\r\n\r\nexport const guestCompanyType = Yup.string()\r\n .label(\"guestCompanyType\")\r\n .required(\"لطفاً یک گزینه را انتخاب نمایید.\");\r\n\r\nexport const cityId = Yup.string()\r\n .label(\"cityId\")\r\n .required(\"لطفاً یک گزینه را انتخاب نمایید.\");\r\n\r\nexport const provinceId = Yup.string()\r\n .label(\"provinceId\")\r\n .required(\"لطفاً یک گزینه را انتخاب نمایید.\");\r\n\r\nexport const bankProvider = Yup.string()\r\n .label(\"bankProvider\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const paymentDueDate = Yup.string()\r\n .label(\"paymentDueDate\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const paymentDueTime = Yup.string()\r\n .label(\"paymentDueTime\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const trackingNumber = Yup.string()\r\n .label(\"trackingNumber\")\r\n .matches(NumberRegExp, \"فقط کاراکتر عددی مجاز می‌باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const payerFullName = Yup.string()\r\n .label(\"payerFullName\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const paymentDescription = Yup.string()\r\n .label(\"paymentDescription\")\r\n .min(1, \"حداقل کاراکتر مجاز 1 می باشد\")\r\n .max(512, \"توضیحات نمی تواند بیشتر از 512 کاراکتر باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const invoiceDiscount = Yup.string()\r\n .matches(NumberBiggestZeroRegExp, \"فقط کاراکتر عددی بالای صفر مجاز می‌باشد.\")\r\n .label(\"invoiceDiscount\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const membershipKeyWord = Yup.string()\r\n .label(\"membershipKeyWord\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const cancellationKeyWord = Yup.string()\r\n .label(\"cancellationKeyWord\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const fromDate = Yup.string().required(\"این فیلد الزامی است.\");\r\n\r\nexport const toDate = Yup.string().required(\"این فیلد الزامی است.\");\r\n\r\n\r\nexport const number = Yup.string().required(\"این فیلد الزامی است.\");\r\n\r\nexport const date = Yup.string().required(\"این فیلد الزامی است.\");\r\n\r\nexport const usageLimitationPerUser = Yup.string()\r\n .label(\"usageLimitationPerUser\")\r\n .matches(NumberRegExp, \"فقط کاراکتر عددی مجاز می‌باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const discountCode = Yup.string()\r\n .label(\"discountCode\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nconst allowedUserNameChar =\r\n \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.~!@#$%^&*()_+|-=\";\r\nexport const userUsername = Yup.string()\r\n .label(\"userUsername\")\r\n .min(6, \"حداقل کاراکتر مجاز 6 می باشد\")\r\n .test(\"\", \"نام‌کاربری معتبر نمی‌باشد\", (value) => {\r\n if (!!value) {\r\n const characterList = value.split(\"\");\r\n return characterList.every((e) => allowedUserNameChar.includes(e));\r\n }\r\n return true;\r\n })\r\n .max(256, \"نام‌کاربری نمی تواند بیشتر از 256 کاراکتر باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const ipAddress = Yup.string()\r\n .label(\"ipAddress\")\r\n .matches(IPRegExp, \"فرمت وارد شده صحیح نمی‌باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const providerThresholdCredit = Yup.string()\r\n .label(\"providerThresholdCredit\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const providerAmount = Yup.number()\r\n .label(\"providerAmount\")\r\n .test(\"\", \"درصد وارد شده نمی تواند از 0 کمتر ‌باشد.\", (value) => value >= 0)\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const providerChargedAt = Yup.string()\r\n .label(\"providerChargedAt\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const withMobile = Yup.boolean().label(\"withMobile\");\r\nexport const withEmail = Yup.boolean().label(\"withEmail\");\r\n\r\nexport const OldPanelInvoiceEmail = Yup.string().when(\"withEmail\", {\r\n is: true,\r\n then: Yup.string()\r\n .matches(emailRegExp, \"ایمیل معتبر وارد نمایید\")\r\n .max(128, \"حداکثر تعداد مجاز کاراکتر 128 می‌باشد.\")\r\n .label(\"OldPanelInvoiceEmail\")\r\n .required(\"این فیلد الزامی است.\"),\r\n});\r\n\r\nexport const invoiceOldPanelFullName = Yup.string()\r\n .label(\"invoiceOldPanelFullName\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const dedicatedBasePrice = Yup.string()\r\n .label(\"dedicatedBasePrice\")\r\n .matches(NumberRegExp, \"فقط کاراکتر عددی مجاز می‌باشد.\")\r\n .max(4, \"مبلغ نمی تواند بیشتر از 4 رقم باشد.\")\r\n .required(\"این فیلد الزامی است.\")\r\n .test(\r\n \"\",\r\n \"عدد تعرفه اختصاصی باید بیشتر از صفر باشد.\",\r\n (value) => Number(value) > 0\r\n );\r\n\r\nexport const discountedBasePrice = Yup.string()\r\n .label(\"discountedBasePrice\")\r\n .matches(NumberRegExp, \"فقط کاراکتر عددی مجاز می‌باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const netPrice = Yup.string()\r\n .label(\"netPrice\")\r\n .matches(NumberRegExp, \"فقط کاراکتر عددی مجاز می‌باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\n// Plans\r\nexport const planIsActive = Yup.string().label(\"planIsActive\");\r\n\r\nexport const planName = Yup.string()\r\n .label(\"planName\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const planPosition = Yup.string()\r\n .label(\"planPosition\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const planProviderId = Yup.string()\r\n .label(\"planProviderId\")\r\n .matches(NumberRegExp, \"فقط کاراکتر عددی مجاز می‌باشد.\");\r\n// .required('این فیلد الزامی است.');\r\n\r\nexport const planNumberLength = Yup.number()\r\n .label(\"planNumberLength\")\r\n .test(\"\", \"درصد وارد شده نمی تواند از 0 کمتر ‌باشد.\", (value) => value >= 0)\r\n // .matches(NumberRegExp, 'فقط کاراکتر عددی مجاز می‌باشد.')\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const planCreditCount = Yup.string()\r\n .label(\"planCreditCount\")\r\n .matches(NumberRegExp, \"فقط کاراکتر عددی مجاز می‌باشد.\");\r\n// .required('این فیلد الزامی است.');\r\n\r\nexport const planCreditBasePrice = Yup.string()\r\n .label(\"planCreditBasePrice\")\r\n .matches(NumberRegExp, \"فقط کاراکتر عددی مجاز می‌باشد.\");\r\n// .required('این فیلد الزامی است.');\r\n\r\nexport const planBasePriceTier = Yup.array().of(\r\n // .label('planBasePriceTier')\r\n Yup.number().required(\"First name is required\")\r\n);\r\n\r\nexport const planPerMonth = Yup.array().of(\r\n Yup.object().shape({\r\n totalAmount: Yup.string().required(\"name required\"),\r\n lineAmount: Yup.number()\r\n .required(\"age required\")\r\n .typeError(\"age must be a number\"),\r\n creditAmount: Yup.number()\r\n .required(\"age required\")\r\n .typeError(\"age must be a number\"),\r\n })\r\n);\r\n// .label('planPerMonth')\r\n\r\nexport const planLimitationItem = Yup.string().label(\"planLimitationItem\");\r\n\r\nexport const dedicatedLimitForParameters = Yup.string()\r\n .label(\"dedicatedLimitForParameters\")\r\n .matches(NumberRegExp, \"فقط کاراکتر عددی مجاز می‌باشد.\")\r\n .min(1, \"حداقل کاراکتر مجاز 1 می باشد\")\r\n .required(\"این فیلد الزامی است.\")\r\n .test(\r\n \"\",\r\n \"حداقل محدودیت وارد شده باید بیشتر از 25 باشد.\",\r\n (value) => Number(value) > 25\r\n );\r\n\r\nexport const webServiceLimitation = Yup.string()\r\n .label(\"webServiceLimitation\")\r\n .matches(NumberRegExp, \"فقط کاراکتر عددی مجاز می‌باشد.\")\r\n .required(\"این فیلد الزامی است.\")\r\n .test(\r\n \"\",\r\n \"حداقل محدودیت وارد شده باید بیشتر از 10 و کمتر از 50000 باشد.\",\r\n (value) => Number(value) < 50000 && Number(value) > 10\r\n );\r\n\r\nexport const PurchaseRestrictionPaymentCount = Yup.string()\r\n .label(\"PurchaseRestrictionPaymentCount\")\r\n .matches(NumberRegExp, \"فقط کاراکتر عددی مجاز می‌باشد.\")\r\n .required(\"این فیلد الزامی است.\")\r\n .test(\r\n \"\",\r\n \"حداکثر تعداد پرداخت 3 می باشد\",\r\n (value) => Number(value) >= 0 && Number(value) <= 3\r\n );\r\n\r\nexport const PurchaseRestrictionTime = Yup.string()\r\n .label(\"PurchaseRestrictionTime\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const linesList = Yup.string()\r\n .label(\"linesList\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const selectedPublicLine = Yup.string()\r\n .label(\"selectedPublicLine\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const planLineNumber = Yup.string()\r\n .label(\"planLineNumber\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const basePriceDisCount = Yup.array()\r\n .of(\r\n Yup.number()\r\n .typeError(\"فقط کاراکتر عددی مجاز می‌باشد.\")\r\n .required(\"این فیلد الزامی است.\"),\r\n );\r\n\r\nexport const planId = Yup.string()\r\n .label(\"planId\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const planDuration = Yup.string()\r\n .label(\"planDuration\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\nexport const trakingNumber = Yup.string()\r\n .label(\"trakingNumber\")\r\n .matches(NumberRegExp, \"فقط کاراکتر عددی مجاز می‌باشد.\")\r\n .required(\"این فیلد الزامی است.\");\r\n\r\n\r\n","import { firstName, lastName, fatherName, username, setPassword, department, roleId, email, mobile ,nationalId} from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const AddUserAdminSchema = Yup.object().shape({\r\n department,\r\n firstName,\r\n fatherName,\r\n lastName,\r\n username,\r\n setPassword,\r\n roleId,\r\n email,\r\n mobile,\r\n nationalId\r\n});\r\n","import { Formik } from 'formik';\r\nimport React from 'react';\r\nimport { toast } from 'react-toastify';\r\nimport BackToPage from '../../../Component/Kit/back';\r\nimport { StyledButton } from '../../../Component/Kit/Button';\r\nimport { StyledForm, StyledInput, StyledSelect } from '../../../Component/Kit/Form';\r\nimport { HeaderContent, MainContent, PageTitleLayout, WrapperLayout } from '../../../Component/Kit/Layout';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport { NumericalValidationMultilang } from '../../../Utility/method/NumericalValidationMultilang';\r\nimport IdentityRoleList from '../../../Utility/Model/IdentityRoleModel';\r\nimport TicketDepartmentList from '../../../Utility/Model/TicketDepartmentModel';\r\nimport { AddUserAdminSchema } from '../../../Utility/Validation/Schema/AddUserAdminSchema';\r\n\r\nexport const AddUserAdmin = ({ history }) => {\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n
افزودن کاربر ادمین
\r\n در این بخش می‌توانید کاربر با دسترسی ادمین ایجاد نمایید.\r\n
\r\n
\r\n
\r\n\r\n {\r\n let body = {\r\n \"firstName\": values.firstName,\r\n \"lastName\": values.lastName,\r\n \"userName\": values.username,\r\n \"password\": values.setPassword,\r\n \"department\": parseInt(values.department),\r\n \"roleId\": values.roleId,\r\n \"email\": values.email,\r\n \"mobile\": parseInt(values.mobile),\r\n \"fatherName\": values.fatherName,\r\n \"nationalId\": values.nationalId,\r\n };\r\n ApiClient.Post(Urls.AdminsManagment(), body)\r\n .then(() => {\r\n toast.success('کاربر ادمین با موفقیت افزوده شد.')\r\n history.goBack();\r\n })\r\n .catch(err => console.error(err))\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
\r\n formik.setFieldValue(\"firstName\", e.target.value)}\r\n />\r\n\r\n formik.setFieldValue(\"lastName\", e.target.value)}\r\n />\r\n\r\n formik.setFieldValue(\"fatherName\", e.target.value)}\r\n />\r\n {\r\n let convertStr;\r\n convertStr = NumericalValidationMultilang(e.target.value);\r\n if (convertStr === '') {\r\n formik.setFieldValue(\"mobile\", \"\");\r\n return;\r\n }\r\n if (convertStr) {\r\n formik.setFieldValue(\"mobile\", convertStr)\r\n } else {\r\n return;\r\n }\r\n }}\r\n />\r\n\r\n formik.setFieldValue(\"nationalId\", e.target.value)}\r\n />\r\n formik.setFieldValue(\"email\", e.target.value)}\r\n />\r\n formik.setFieldValue(\"username\", e.target.value)}\r\n />\r\n formik.setFieldValue(\"setPassword\", e.target.value)}\r\n />\r\n formik.setFieldValue(\"roleId\", e.target.value)}\r\n />\r\n formik.setFieldValue(\"department\", e.target.value)}\r\n />\r\n
\r\n\r\n \r\n افزودن کاربر\r\n \r\n
\r\n\r\n )}\r\n \r\n
\r\n\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default AddUserAdmin;\r\n","import { suspended ,roleItems ,department} from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const ModifyAdminRoleSchema = Yup.object().shape({\r\n suspended,\r\n roleItems,\r\n department\r\n});\r\n","import { Formik } from 'formik';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { toast } from 'react-toastify';\r\nimport Select from 'react-select';\r\n\r\nimport BackToPage from '../../../Component/Kit/back';\r\nimport { StyledButton } from '../../../Component/Kit/Button';\r\nimport { StyledCheckBox, StyledForm, StyledSelect, FormLable } from '../../../Component/Kit/Form';\r\nimport { HeaderContent, MainContent, PageTitleLayout, WrapperLayout } from '../../../Component/Kit/Layout';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\n\r\nimport IdentityRoleList from '../../../Utility/Model/IdentityRoleModel';\r\nimport TicketDepartmentList from '../../../Utility/Model/TicketDepartmentModel';\r\nimport { ModifyAdminRoleSchema } from '../../../Utility/Validation/Schema/ModifyAdminRoleSchema';\r\nimport { IdentityRoleItem } from '../../../Utility/Services/IdentityRoleService';\r\n\r\nexport const AdminItemDetails = () => {\r\n const [selectedOption, setSelectedOption] = useState([]);\r\n const [adminProperties, setAdminProperties] = useState({})\r\n const [btnLoading, setBtnLoading] = useState(false);\r\n let adminDetails = useSelector(state => state.AdminDetailReducer);\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n if (Object.entries(adminDetails).length) {\r\n setAdminProperties(adminDetails);\r\n } else {\r\n history.push(\"/admins\");\r\n }\r\n\r\n if (Object.entries(adminProperties).length && adminProperties.roleIds !== undefined) {\r\n let temp = [];\r\n adminProperties.roleIds.map((item) => {\r\n temp = [...temp, IdentityRoleItem(Number(item))]\r\n return item;\r\n })\r\n setSelectedOption(temp)\r\n }\r\n\r\n }, [adminDetails, adminProperties, history]);\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {\r\n adminProperties && (\r\n \r\n
\r\n
\r\n
\r\n \r\n
ویرایش ادمین
\r\n می‌توانید اطلاعات {adminProperties.fullName} را تغییر دهید.\r\n
\r\n
\r\n
\r\n\r\n {\r\n let roleItems = []\r\n roleItems = values.roleItems\r\n .slice\r\n .call(values.roleItems)\r\n .map(option => String(option.value))\r\n\r\n\r\n let body = {\r\n \"isSuspended\": values.suspended,\r\n \"roleIds\": roleItems,\r\n \"department\": parseInt(values.department),\r\n };\r\n setBtnLoading(true);\r\n ApiClient.Put(Urls.AdminsManagment(adminProperties.adminId), body)\r\n .then(() => {\r\n toast.success('تنظیمات با موفقیت انجام شد.')\r\n history.goBack();\r\n setBtnLoading(false);\r\n })\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
\r\n\r\n
\r\n مربوط به بخش \r\n option['name']}\r\n closeMenuOnSelect={false}\r\n isMulti\r\n options={IdentityRoleList}\r\n onChange={(e) => {\r\n formik.setFieldValue(\"roleItems\", e)\r\n }}\r\n />\r\n {\r\n {formik.errors.roleItems}
\r\n }\r\n
\r\n\r\n formik.setFieldValue(\"department\", e.target.value)}\r\n />\r\n\r\n formik.setFieldValue(\"suspended\", e.target.checked)}\r\n />\r\n\r\n
\r\n\r\n \r\n ویرایش اطلاعات\r\n \r\n \r\n )}\r\n \r\n\r\n
\r\n
\r\n \r\n )\r\n }\r\n \r\n
\r\n )\r\n}\r\nexport default AdminItemDetails\r\n\r\n// const mapStateToProps = (state) => ({\r\n// adminDetails: state.AdminsList\r\n// })\r\n// export default connect(mapStateToProps)(AdminItemDetails)\r\n\r\n// const mapDispatchToProps = {\r\n\r\n// }\r\n","let sendSMSLimitationModel = [\r\n {name: \"محدودیت تعداد ارسال\", value: 1},\r\n {name: \"محدودیت لینک\", value: 2},\r\n {name: \"کلمات ممنوعه\", value: 4},\r\n {name: \"کاربر جدید\", value: 8},\r\n {name: \"پیام های پرتکرار\", value: 16},\r\n {name: \"محدودیت ارسال وب\", value: 32},\r\n {name: \"ارسال خطوط ویژه\", value: 64},\r\n];\r\n\r\nexport default sendSMSLimitationModel;\r\n","const AdminActivityOperationEnum = {\r\n CreateNewUser: 1,\r\n SendSmsToUser: 2,\r\n Login: 3,\r\n LoginToUserPanel: 4,\r\n ModifyUserProfile: 5,\r\n ModifySendingBlackListKeywordForSpecificUser: 6,\r\n ModifyUserCooperationCreditProfitPercent: 7,\r\n ModifyUserCooperationLineProfitPercent: 8,\r\n ModifyBlockedIP: 9,\r\n ModifyCreditPackage: 10,\r\n ModifyFastSendTemplateStatus: 11,\r\n ModifyFinancialDepartmentProcess: 12,\r\n ModifyGuest: 13,\r\n ModifySystemLine: 14,\r\n ModifyLine: 15,\r\n MagfaInfo: 16,\r\n ModifyPublicBlackListKeyWord: 17,\r\n ModifyCustomNotification: 18,\r\n HandlePendingSendMessages: 19,\r\n ModifySetting: 20,\r\n SmsLimitationForbiddenWord: 21,\r\n ModifyTicket: 22,\r\n ModifyUserAdmin: 23,\r\n ValidateApiFrequestMessageText: 24,\r\n RemoveUserLine: 25,\r\n ModifyLegalUser: 26,\r\n ModifyLegalUserInvoices: 27,\r\n ModifyBlockedMobiles: 28,\r\n ModifySpecialAllowedMaxParameterFastSendSize: 29,\r\n ModifyCalledVerifyApiCount: 30,\r\n AddPlanToUser : 31,\r\n AssignDedicatedBasePriceToUser : 32,\r\n RemoveUserDedicatedBasePrice : 33,\r\n HandlePendingUserLine : 34,\r\n ExpireUserPlan : 35,\r\n ModifyPublicLinesConfiguration : 36,\r\n ModifyUserAllowedUsingPublicLines: 37,\r\n HandleSendSmsViaTower : 38,\r\n ModifyPendingManualPayment : 39,\r\n CancelUserInvoice : 40,\r\n RemoveInvoice : 41,\r\n ModifyDefaultPublicLine : 42,\r\n ModifyPublicLinePendingMessage : 43,\r\n ValidateUserCompletionRequirement : 44,\r\n ModifyUserServiceLineStatus : 45,\r\n ModifyBanks : 46,\r\n ModifyAdvertisingCampaigns : 47,\r\n ModifyOfficialPaymentStatus: 48,\r\n ModifyAllowedTotalSmsSentInADay : 49,\r\n ModifySendViaPublicLinesIsActivated : 50,\r\n ModifyOffKeywordSettingByProvider : 51,\r\n ModifySendSmsViaTowerOperatorConfigurations : 52,\r\n ModifySendSmsViaTowerLimitations : 53,\r\n ModifyPublicLineCostCoefficient : 54,\r\n ModifyPublicLineSendLimitations : 55\r\n}\r\n\r\nconst AdminActivityOperationModel = [\r\n { value: AdminActivityOperationEnum.CreateNewUser, name: 'ایجاد کاربر جدید' },\r\n { value: AdminActivityOperationEnum.SendSmsToUser, name: 'ارسال پیامک به کاربر' },\r\n { value: AdminActivityOperationEnum.Login, name: 'ورود به سامانه' },\r\n { value: AdminActivityOperationEnum.LoginToUserPanel, name: 'ورود به پنل کاربر' },\r\n { value: AdminActivityOperationEnum.ModifyUserProfile, name: 'ویرایش پرفایل کاربر' },\r\n {\r\n value: AdminActivityOperationEnum.ModifySendingBlackListKeywordForSpecificUser,\r\n name: 'ویرایش کلیدواژهای یک کاربر خاص در لیست سیاه'\r\n },\r\n {\r\n value: AdminActivityOperationEnum.ModifyUserCooperationCreditProfitPercent,\r\n name: 'ویرایش درصد سود خرید اعتبار هر کاربر در بخش همکاری در فروش '\r\n },\r\n {\r\n value: AdminActivityOperationEnum.ModifyUserCooperationLineProfitPercent,\r\n name: 'ویرایش درصد سود خرید خط هر کاربر در بخش همکاری در فروش '\r\n },\r\n { value: AdminActivityOperationEnum.ModifyBlockedIP, name: 'ویرایش آی پی های بلاک شده' },\r\n { value: AdminActivityOperationEnum.ModifyCreditPackage, name: 'ویرایش پکیج ها ' },\r\n { value: AdminActivityOperationEnum.ModifyFastSendTemplateStatus, name: 'ویرایش وضعیت قالب ارسال سریع' },\r\n { value: AdminActivityOperationEnum.ModifyFinancialDepartmentProcess, name: 'ویرایش اطلاعات مالی ' },\r\n { value: AdminActivityOperationEnum.ModifyGuest, name: 'ویرایش کاربر مهمان' },\r\n { value: AdminActivityOperationEnum.ModifySystemLine, name: 'تغیرات در خطوط سیستمی ' },\r\n { value: AdminActivityOperationEnum.ModifyLine, name: 'ویرایش خطوط ' },\r\n { value: AdminActivityOperationEnum.MagfaInfo, name: 'ویرایش اطلاعات مگفا ' },\r\n { value: AdminActivityOperationEnum.ModifyPublicBlackListKeyWord, name: 'ویرایش در کلیدواژهای لیست سیاه' },\r\n { value: AdminActivityOperationEnum.ModifyCustomNotification, name: 'ویرایش اعلانات ' },\r\n { value: AdminActivityOperationEnum.HandlePendingSendMessages, name: 'بررسی کردن وضعیت ارسال پیام در صف' },\r\n { value: AdminActivityOperationEnum.ModifySetting, name: 'ویرایش تنظیمات ' },\r\n { value: AdminActivityOperationEnum.SmsLimitationForbiddenWord, name: 'تغیرات در کلمات ممنوعه' },\r\n { value: AdminActivityOperationEnum.ModifyTicket, name: 'ویرایش تیکت' },\r\n { value: AdminActivityOperationEnum.ModifyUserAdmin, name: 'تغییر اطلاعات مربوط به مدیران/کاربران' },\r\n { value: AdminActivityOperationEnum.ValidateApiFrequestMessageText, name: 'تایید ارسال های مکرر' },\r\n { value: AdminActivityOperationEnum.RemoveUserLine, name: 'حذف خط کاربر' },\r\n { value: AdminActivityOperationEnum.ModifyLegalUser, name: 'تغییر اطلاعات حقوقی کاربر' },\r\n { value: AdminActivityOperationEnum.ModifyLegalUserInvoices, name: 'تغییر اطلاعات حقوقی فاکتور' },\r\n { value: AdminActivityOperationEnum.ModifyBlockedMobiles, name: 'ویرایش شماره های بلاک شده' },\r\n { value: AdminActivityOperationEnum.ModifySpecialAllowedMaxParameterFastSendSize, name: 'ویرایش تعداد کارکتر قالب ارسال سریع' },\r\n { value: AdminActivityOperationEnum.ModifyCalledVerifyApiCount, name: 'تغییر محدودیت ارسال روزانه وب سرویس' },\r\n { value: AdminActivityOperationEnum.AssignDedicatedBasePriceToUser, name: 'اختصاص قیمت پایه اختصاصی به کاربر' },\r\n { value: AdminActivityOperationEnum.RemoveUserDedicatedBasePrice, name: 'حذف قیمت پایه اختصاصی کاربر' },\r\n { value: AdminActivityOperationEnum.AddPlanToUser, name: 'افزودن پلن به یک کاربر' },\r\n { value: AdminActivityOperationEnum.HandlePendingUserLine, name: 'تغییر محدودیت ارسال روزانه وب سرویس' },\r\n { value: AdminActivityOperationEnum.ExpireUserPlan, name: 'منقضی شدن پلن کاربر' },\r\n { value: AdminActivityOperationEnum.ModifyPublicLinesConfiguration, name: 'ویرایش خطوط ویژه' },\r\n { value: AdminActivityOperationEnum.ModifyUserAllowedUsingPublicLines, name: 'ویرایش استفاده از خطوط ویژه برای یک کاربر' },\r\n { value: AdminActivityOperationEnum.HandleSendSmsViaTower, name: 'بررسی درخواست ارسال از دکل' },\r\n { value: AdminActivityOperationEnum.ModifyPendingManualPayment, name: 'ویرایش فیش در انتظار تایید' },\r\n { value: AdminActivityOperationEnum.CancelUserInvoice, name: 'فاکتور ابطالی' },\r\n { value: AdminActivityOperationEnum.RemoveInvoice, name: 'حذف فاکتور' },\r\n { value: AdminActivityOperationEnum.ModifyDefaultPublicLine, name: 'انتخاب پیشفرض خطوط ویژه' },\r\n { value: AdminActivityOperationEnum.ModifyPublicLinePendingMessage, name: 'ویرایش ارسال خطوط ویژه' },\r\n { value: AdminActivityOperationEnum.ValidateUserCompletionRequirement, name: 'بررسی صحت اطلاعات تکمیلی' },\r\n { value: AdminActivityOperationEnum.ModifyUserServiceLineStatus, name: 'ویرایش وضعیت خدماتی سازی خط' },\r\n { value: AdminActivityOperationEnum.ModifyBanks, name: 'ویرایش تنظیمات بانک ها' },\r\n { value: AdminActivityOperationEnum.ModifyAdvertisingCampaigns, name: 'ویرایش کمپین تبلیغاتی' },\r\n { value: AdminActivityOperationEnum.ModifyOfficialPaymentStatus, name: 'ویرایش تنظیمات پرداخت رسمی/غیررسمی کاربر' },\r\n { value: AdminActivityOperationEnum.ModifyAllowedTotalSmsSentInADay, name: 'ویرایش محدودیت تعداد پیامک ارسالی روزانه سامانه' },\r\n { value: AdminActivityOperationEnum.ModifySendViaPublicLinesIsActivated, name: 'ویرایش وضعیت ارسال با خطوط ویژه سامانه' },\r\n { value: AdminActivityOperationEnum.ModifyOffKeywordSettingByProvider, name: 'ویرایش تنظیمات عبارت لغو11 سامانه' },\r\n { value: AdminActivityOperationEnum.ModifySendSmsViaTowerOperatorConfigurations, name: 'ویرایش تنظیمات ارسال از دکل سامانه' },\r\n { value: AdminActivityOperationEnum.ModifySendSmsViaTowerLimitations, name: 'ویرایش تنظیمات محدودیت زمانی ارسال از دکل سامانه' },\r\n { value: AdminActivityOperationEnum.ModifyPublicLineCostCoefficient, name: 'ویرایش ضریب هزینه ارسال با خطوط ویژه' },\r\n { value: AdminActivityOperationEnum.ModifyPublicLineSendLimitations, name: 'ویرایش محدودیت‌های ارسال با خطوط ویژه' },\r\n]\r\nexport { AdminActivityOperationModel }\r\n\r\n\r\n","export const BankProviderList = [\r\n { name: \"----\", value: 0 },\r\n { name: \"پارسیان\", value: 1 },\r\n { name: \"سامان\", value: 2 },\r\n { name: \"ملت\", value: 3 },\r\n { name: \"ملی\", value: 4 },\r\n { name: \"زرین‌پال\", value: 5},\r\n { name: \"پی‌پینگ\", value: 6},\r\n ];\r\n","const FastSendTemplateStatus = {\r\n Pending: 1,\r\n IsVerified: 2,\r\n UnVerified: 3\r\n};\r\n\r\nconst TemplateVerifyStatus = [\r\n { value: FastSendTemplateStatus.Pending, name: \"منتظر تایید\" },\r\n { value: FastSendTemplateStatus.IsVerified, name: \"تایید\" },\r\n { value: FastSendTemplateStatus.UnVerified, name: \"عدم تایید\" },\r\n];\r\n\r\nconst TemplateType = [\r\n { value: 1, name: \"پیش فرض\" },\r\n { value: 2, name: \"سفارشی\" },\r\n];\r\n\r\nexport { TemplateVerifyStatus, TemplateType, FastSendTemplateStatus };\r\n","const LineEarnEnum = {\r\n Gift: 1,\r\n Buy: 2,\r\n Transfer: 3,\r\n Plan: 4\r\n}\r\n\r\nconst lineTypesEnum = {\r\n Unknown: 0,\r\n Advertising: 1,\r\n Service: 2\r\n}\r\n\r\nconst UserLinePrebuyStatusEnum = {\r\n Rejected: 1,\r\n Expired: 2,\r\n Accepted: 3,\r\n Paid: 4,\r\n ReservedByOthers: 5\r\n}\r\n\r\nconst lineTypes = [\r\n {value: lineTypesEnum.Unknown, name: \"نامشخص\"},\r\n {value: lineTypesEnum.Advertising, name: \"تبلیغاتی\"},\r\n {value: lineTypesEnum.Service, name: \"خدماتی\"},\r\n];\r\nconst UserLineEarnMethod = [\r\n {value: LineEarnEnum.Gift, name: \"هدیه\"},\r\n {value: LineEarnEnum.Buy, name: \"خرید\"},\r\n {value: LineEarnEnum.Transfer, name: \"انتقالی\"},\r\n {value: LineEarnEnum.Plan, name: \"پلن\"},\r\n];\r\nconst UserLineStatus = [\r\n {name: \"انتظار\", value: 1},\r\n {name: \"غیرفعال\", value: 2},\r\n {name: \"فعال\", value: 3},\r\n];\r\n\r\n\r\nconst UserLineStatusNotPending = [\r\n {name: \"غیرفعال\", value: 2},\r\n {name: \"فعال\", value: 3},\r\n];\r\n\r\nconst UserLinePrebuyStatus = [\r\n {value: UserLinePrebuyStatusEnum.Rejected, name: \"رد شده\"},\r\n {value: UserLinePrebuyStatusEnum.Expired, name: \"منقضی شده\"},\r\n {value: UserLinePrebuyStatusEnum.Accepted, name: \"تایید شده\"},\r\n {value: UserLinePrebuyStatusEnum.Paid, name: \"پرداخت شده\"},\r\n {value: UserLinePrebuyStatusEnum.ReservedByOthers, name: \"رزرو شده\"},\r\n];\r\n\r\nconst WhoisLineOperationEnum = {\r\n MagfaFirstStep: 1,\r\n MagfaSecondStep: 2,\r\n Rahyab: 3,\r\n MagfaDeleteLineInfo: 4\r\n}\r\n\r\nconst WhoisLineOperationStatus = [\r\n {value: WhoisLineOperationEnum.MagfaFirstStep, name: 'ارسال کد تایید مگفا'},\r\n {value: WhoisLineOperationEnum.MagfaSecondStep, name: 'اعتبارسنجی کد تایید مگفا'},\r\n {value: WhoisLineOperationEnum.Rahyab, name: 'whois رهیاب'},\r\n {value: WhoisLineOperationEnum.MagfaDeleteLineInfo, name: 'حذف اطلاعات خط مگفا'},\r\n]\r\n\r\nexport {\r\n lineTypesEnum,\r\n LineEarnEnum,\r\n UserLineEarnMethod,\r\n UserLineStatus,\r\n UserLineStatusNotPending,\r\n WhoisLineOperationStatus,\r\n lineTypes,\r\n UserLinePrebuyStatusEnum,\r\n UserLinePrebuyStatus,\r\n};\r\n","let TicketPriorityList = [\r\n { name: \"کم\", value: 1 },\r\n { name: \"متوسط\", value: 2 },\r\n { name: \"زیاد\", value: 3 }\r\n ];\r\n \r\n export default TicketPriorityList;\r\n ","import React, {useCallback, useEffect, useState} from \"react\";\r\nimport styled from \"styled-components\";\r\n// import {DatePicker} from \"sg-react-datepicker-persian\";\r\nimport DatePicker from \"react-multi-date-picker\";\r\nimport persian from \"react-date-object/calendars/persian\"\r\nimport persian_fa from \"react-date-object/locales/persian_fa\"\r\nimport moment from \"moment-jalaali\";\r\nimport Col from \"../../Kit/Column\";\r\nimport TimePicker from \"react-multi-date-picker/plugins/time_picker\";\r\nimport DatePanel from \"react-multi-date-picker/plugins/date_panel\";\r\n\r\nconst DatePickerContainer = styled.div`\r\n border: 1px solid #cecece;\r\n border-radius: 5px;\r\n background: #fff;\r\n text-align: right;\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 0px;\r\n padding-right: 8px;\r\n width: 100%;\r\n\r\n > div {\r\n width: 100%;\r\n }\r\n\r\n input {\r\n border: 0;\r\n background: transparent;\r\n width: 100%;\r\n\r\n &:focus {\r\n outline: none;\r\n border: 0;\r\n box-shadow: none;\r\n outline: none !important;\r\n }\r\n }\r\n\r\n .clear-date-picker {\r\n border: 0;\r\n background: transparent;\r\n width: 32px;\r\n height: 31px;\r\n padding: 0;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-size: 18px;\r\n color: ${(props) => props.theme.red};\r\n\r\n &:focus {\r\n border: none;\r\n outline: none;\r\n }\r\n }\r\n`;\r\nconst LabelContainer = styled.label`\r\n background-color: white;\r\n padding: 5px;\r\n margin-bottom: 0.1rem;\r\n justify-content: flex-start;\r\n font-weight: 600;\r\n text-align: right;\r\n font-size: 12px;\r\n width: 100%;\r\n`\r\nconst FormError = styled(Col)`\r\n display: ${(props) => (!props.show ? \"none\" : \"block\")};\r\n color: red;\r\n font-size: 11px;\r\n justify-content: flex-start;\r\n width: 100%;\r\n padding: 5px 0px 5px 0px;\r\n height: auto;\r\n text-align: right;\r\n`;\r\n\r\nlet dateObject = {\r\n fromDate: null,\r\n toDate: null\r\n}\r\n\r\nfunction MyDatePicker(props) {\r\n const [datePickerValue, setDatePickerValue] = useState(null);\r\n const [min, setMin] = useState(null);\r\n const [max, setMax] = useState(null);\r\n const removeHandler = () => {\r\n setDatePickerValue(undefined)\r\n props.value('');\r\n }\r\n const changeHandler = (event) => {\r\n if (event) {\r\n const month = event.month.number < 10 ? `0${event.month.number}` : `${event.month.number}`\r\n const day = event.day < 10 ? `0${event.day}` : `${event.day}`\r\n const hour = event.hour < 10 ? `0${event.hour}` : `${event.hour}`\r\n const min = event.minute < 10 ? `0${event.minute}` : `${event.minute}`\r\n const dateValue = {\r\n baseFormat: Number(props?.haveTime ?`${event.year}${month}${day}${hour}${min}00` : `${event.year}${month}${day}`),\r\n date:props?.haveTime ? `${event.year}/${month}/${day} ${hour}:${min}` : `${event.year}/${month}/${day}`\r\n }\r\n setDatePickerValue(dateValue.date);\r\n props.value(dateValue);\r\n }\r\n\r\n }\r\n\r\n useEffect(() => {\r\n if (props.defaultValue) {\r\n const defaultValue = props.defaultValue.toString();\r\n let result =props?.haveTime ? `${defaultValue.slice(0, 4)}/${defaultValue.slice(4, 6)}/${defaultValue.slice(6, 8)} ${defaultValue.slice(8, 10)}:${defaultValue.slice(10, 12)}` : `${defaultValue.slice(0, 4)}/${defaultValue.slice(4, 6)}/${defaultValue.slice(6, 8)}`\r\n setDatePickerValue(result)\r\n }\r\n else{\r\n setDatePickerValue(null);\r\n }\r\n if (props.min) {\r\n let result = moment(props.min).format('jYYYY/jMM/jDD');\r\n setMin(result)\r\n }\r\n if (props.max) {\r\n let result = moment(props.max).format('jYYYY/jMM/jDD');\r\n setMax(result)\r\n }\r\n }, [props.defaultValue, props.min, props.max])\r\n return (\r\n <>\r\n \r\n ] : []}\r\n value={datePickerValue}\r\n minDate={min}\r\n maxDate={max}\r\n name={props.name}\r\n onChange={changeHandler}/>\r\n removeHandler()}\r\n >\r\n \r\n \r\n \r\n {props.error} \r\n \r\n );\r\n}\r\n\r\nfunction MyRangePicker(props) {\r\n const [minVal, setMinVal] = useState(undefined);\r\n const [maxVal, setMaxVal] = useState(undefined);\r\n\r\n const [FromDate, setFromDate] = useState(null);\r\n const [ToDate, setToDate] = useState(null);\r\n\r\n const [min, setMin] = useState(null);\r\n const [max, setMax] = useState(null);\r\n\r\n const removeHandler = (mode) => {\r\n if (mode === 'fromDate') {\r\n setFromDate(undefined)\r\n dateObject.fromDate = null;\r\n props.value(dateObject);\r\n } else if (mode === 'toDate') {\r\n setToDate(undefined)\r\n dateObject.toDate = null;\r\n props.value(dateObject);\r\n }\r\n }\r\n\r\n const fromDateHandler = useCallback((event) => {\r\n let fromDateNumber = {\r\n baseFormat: null,\r\n date: null\r\n }\r\n if (event) {\r\n const month = event.month.number < 10 ? `0${event.month.number}` : `${event.month.number}`\r\n const day = event.day < 10 ? `0${event.day}` : `${event.day}`\r\n const hour = event.hour < 10 ? `0${event.hour}` : `${event.hour}`\r\n const min = event.minute < 10 ? `0${event.minute}` : `${event.minute}`\r\n fromDateNumber = {\r\n baseFormat: Number(props?.haveTime ?`${event.year}${month}${day}${hour}${min}00` : `${event.year}${month}${day}`),\r\n date:props?.haveTime ? `${event.year}/${month}/${day} ${hour}:${min}` : `${event.year}/${month}/${day}`\r\n }\r\n }\r\n setMinVal(fromDateNumber.date);\r\n setFromDate(fromDateNumber.date);\r\n dateObject.fromDate = {...fromDateNumber};\r\n props.value(dateObject);\r\n }, [props])\r\n const toDateHandler = useCallback((event) => {\r\n let toDateNumber = {\r\n baseFormat: null,\r\n date: null\r\n }\r\n if (event) {\r\n const month = event.month.number < 10 ? `0${event.month.number}` : `${event.month.number}`\r\n const day = event.day < 10 ? `0${event.day}` : `${event.day}`\r\n const hour = event.hour < 10 ? `0${event.hour}` : `${event.hour}`\r\n const min = event.minute < 10 ? `0${event.minute}` : `${event.minute}`\r\n toDateNumber = {\r\n baseFormat: Number(props?.haveTime ?`${event.year}${month}${day}${hour}${min}00` : `${event.year}${month}${day}`),\r\n date:props?.haveTime ? `${event.year}/${month}/${day} ${hour}:${min}` : `${event.year}/${month}/${day}`\r\n }\r\n }\r\n setMaxVal(toDateNumber.date);\r\n setToDate(toDateNumber.date);\r\n dateObject.toDate = {...toDateNumber};\r\n props.value(dateObject);\r\n }, [props])\r\n\r\n useEffect(() => {\r\n if (!props.fromValue) {\r\n fromDateHandler(props.fromValue);\r\n } else {\r\n const defaultValue = props.fromValue.toString();\r\n let result =props?.haveTime ? `${defaultValue.slice(0, 4)}/${defaultValue.slice(4, 6)}/${defaultValue.slice(6, 8)} ${defaultValue.slice(8, 10)}:${defaultValue.slice(10, 12)}` : `${defaultValue.slice(0, 4)}/${defaultValue.slice(4, 6)}/${defaultValue.slice(6, 8)}`\r\n setFromDate(result)\r\n }\r\n if (!props.toValue) {\r\n toDateHandler(props.toValue)\r\n } else {\r\n const defaultValue = props.toValue.toString();\r\n let result = props?.haveTime ? `${defaultValue.slice(0, 4)}/${defaultValue.slice(4, 6)}/${defaultValue.slice(6, 8)} ${defaultValue.slice(8, 10)}:${defaultValue.slice(10, 12)}` : `${defaultValue.slice(0, 4)}/${defaultValue.slice(4, 6)}/${defaultValue.slice(6, 8)}`\r\n setToDate(result)\r\n }\r\n if (props.min) {\r\n let result = moment(props.min).format('jYYYY/jMM/jDD');\r\n setMin(result)\r\n }\r\n if (props.max) {\r\n let result = moment(props.max).format('jYYYY/jMM/jDD');\r\n setMax(result)\r\n }\r\n\r\n }, [props.fromValue, props.toValue])\r\n return (\r\n <>\r\n
\r\n
\r\n از تاریخ\r\n \r\n ] : []}\r\n calendar={persian}\r\n locale={persian_fa}\r\n value={FromDate? FromDate : props.fromDate}\r\n minDate={min}\r\n maxDate={maxVal ? maxVal : max}\r\n onChange={fromDateHandler}/>\r\n removeHandler('fromDate')}\r\n >\r\n \r\n \r\n \r\n {props.fromError}\r\n
\r\n
\r\n تا تاریخ\r\n \r\n ] : []}\r\n value={ToDate? ToDate : props.toDate}\r\n minDate={minVal ? minVal : min}\r\n maxDate={max}\r\n onChange={toDateHandler}/>\r\n removeHandler('toDate')}\r\n >\r\n \r\n \r\n \r\n {props.toError}\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport {MyDatePicker, MyRangePicker, DatePickerContainer};\r\n","let StepList = [\r\n { name: \"ثبت شماره دوم\", value: 1 },\r\n { name: \"تکمیل اطلاعات\", value: 2 },\r\n { name: \"آپلود مدارک\", value: 3 },\r\n { name: \"منتظر تایید حساب\", value: 4 },\r\n];\r\nexport default StepList;\r\n","let invoiceTypeModel = [\r\n { name: \"فاکتور\", value: 1 },\r\n { name: \"فاکتور برگشتی\", value: 2 },\r\n { name: \"فاکتور ابطالی\", value: 3 },\r\n ];\r\n \r\n export default invoiceTypeModel;\r\n ","let PaymentStatusModel = [\r\n {name: 'منتظر', value: 1},\r\n {name: 'موفق', value: 2},\r\n {name: 'ناموفق', value: 3},\r\n {name: 'اعتباری', value: 4}\r\n]\r\nexport default PaymentStatusModel;\r\n","const ProviderEnum = [\r\n { name: \"مگفا\", value: 1 },\r\n { name: \"رهیاب\", value: 2 },\r\n { name: \"آسانک\", value: 3 },\r\n { name: \"راهکار\", value: 4 },\r\n { name: \"آسیاتک\", value: 5 },\r\n { name: \"نوآوران\", value: 6 },\r\n { name: \"جیرینگ\", value: 7 },\r\n { name: \"شاتل\", value: 8 },\r\n];\r\nexport default ProviderEnum;\r\n\r\nconst SystemLineProviderEnum = [\r\n { name: \"مگفا\", value: 1 , prefix: \"3000\", Eng: \"Magfa\"},\r\n { name: \"رهیاب\", value: 2 , prefix: \"1000\", Eng: \"Rahyab\"},\r\n { name: \"آسانک\", value: 3 , prefix: \"021\", Eng: \"Asanak\"},\r\n { name: \"راهکار\", value: 4 , prefix: \"5000\", Eng: \"Rahkar\"},\r\n { name: \"آسیاتک\", value: 5 , prefix: \"9000\", Eng: \"Asiatech\"},\r\n { name: \"نوآوران\", value: 6 , prefix: \"6600\", Eng: \"Noavaran\"},\r\n { name: \"جیرینگ\", value: 7 , prefix: \"7007\", Eng: \"Jiring\"},\r\n { name: \"شاتل\", value: 8 , prefix: \"998\", Eng: \"Shatel\"},\r\n];\r\nexport { SystemLineProviderEnum };\r\n","let TicketStatusList = [\r\n { name: \"باز\", value: 1 },\r\n { name: \"پاسخ ادمین\", value: 2 },\r\n { name: \"پاسخ کاربر\", value: 3 },\r\n { name: \"در حال بررسی\", value: 4 },\r\n { name: \"بسته\", value: 5 },\r\n ];\r\n \r\n export default TicketStatusList;\r\n ","let CreditTransactionModel = [\r\n { name: \"خرید اعتبار\", value: 1 },\r\n { name: \"ارسال پیامک\", value: 2 },\r\n { name: \"بازگشت اعتبار\", value: 3 },\r\n { name: \"انتقال از / به سامانه قدیم\", value: 4 },\r\n { name: \"اصلاح تعرفه\", value: 5 },\r\n { name: \"اصلاح اعتبار\", value: 6 },\r\n ];\r\n \r\n export default CreditTransactionModel ;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport sendSMSLimitationModel from \"../../../Page/PendingSMS/Model/send-sms-limitation.model\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport { AdminActivityOperationModel } from \"../../../Utility/Model/AdminActivityOperationModel\";\r\nimport { BankProviderList } from \"../../../Utility/Model/bank-provider.model\";\r\nimport { TemplateVerifyStatus } from \"../../../Utility/Model/fast-send-template.model\";\r\nimport {\r\n lineTypes,\r\n UserLineEarnMethod,\r\n UserLineStatusNotPending,\r\n} from \"../../../Utility/Model/lines.model\";\r\nimport TicketDepartmentList from \"../../../Utility/Model/TicketDepartmentModel\";\r\nimport TicketPriorityList from \"../../../Utility/Model/TicketPriorityModel\";\r\nimport { AutocompleteList } from \"../../Kit/Form\";\r\nimport { MyRangePicker } from \"../DatePicker\";\r\nimport StepList from \"./../../../Utility/Model/guest-step.model\";\r\nimport invoiceTypeModel from \"./../../../Utility/Model/invoice.model\";\r\nimport PaymentStatusModel from \"./../../../Utility/Model/PaymentStatusModel\";\r\nimport ProviderEnum from \"./../../../Utility/Model/provider-enum.model\";\r\nimport TicketStatusList from \"./../../../Utility/Model/TicketStatusModel\";\r\nimport CreditTransactionModel from \"./../../../Utility/Model/transaction-type.model\";\r\nimport transactionTypeModel from \"./../../../Utility/Model/transaction-type.model\";\r\n\r\nconst LabelContainer = styled.div`\r\n label {\r\n background-color: white;\r\n display: \"block\";\r\n padding: 5px;\r\n margin-bottom: 0.1rem;\r\n justify-content: flex-start;\r\n font-weight: 600;\r\n text-align: right;\r\n font-size: 12px;\r\n width: 100%;\r\n }\r\n`;\r\nconst { forwardRef, useImperativeHandle } = React;\r\nexport let getFilter = {};\r\nexport const TableFilters = forwardRef((props, ref) => {\r\n const [adminSummaryList, setAdminSummaryList] = useState();\r\n const [adminSummaryCustomList, setAdminSummaryCustomList] = useState();\r\n const [adminAssignCustomList, setAdminAssignCustomList] = useState();\r\n const [filters, SetFilters] = useState({\r\n fromDate: {\r\n defaultValue: undefined,\r\n title: \"از تاریخ\",\r\n filterName: \"fromDate\",\r\n },\r\n needCount: {\r\n defaultValue: undefined,\r\n title: \"\",\r\n filterName: \"needCount\",\r\n },\r\n toDate: {\r\n defaultValue: undefined,\r\n title: \"تا تاریخ\",\r\n filterName: \"toDate\",\r\n },\r\n step: {\r\n defaultValue: undefined,\r\n title: \"وضعیت ثبت نام\",\r\n filterName: \"step\",\r\n },\r\n status: {\r\n defaultValue: undefined,\r\n title: \"وضعیت\",\r\n filterName: \"status\",\r\n },\r\n providerId: {\r\n defaultValue: undefined,\r\n title: \"ارائه دهنده خدمات\",\r\n filterName: \"providerId\",\r\n },\r\n earnMethod: {\r\n defaultValue: undefined,\r\n title: \"نوع دریافت\",\r\n filterName: \"earnMethod\",\r\n },\r\n lineType: {\r\n defaultValue: undefined,\r\n title: \"نوع خط\",\r\n filterName: \"lineType\",\r\n },\r\n department: {\r\n defaultValue: undefined,\r\n title: \"نوع دپارتمان\",\r\n filterName: \"department\",\r\n },\r\n assignedAdminId: {\r\n defaultValue: undefined,\r\n title: \"مسئول پیگیری\",\r\n filterName: \"assignedAdminId\",\r\n },\r\n isExpired: {\r\n defaultValue: undefined,\r\n title: \"وضعیت حساب\",\r\n filterName: \"isExpired\",\r\n },\r\n isExpiredLine: {\r\n defaultValue: undefined,\r\n title: \"وضعیت\",\r\n filterName: \"isExpiredLine\",\r\n },\r\n isSuspended: {\r\n defaultValue: undefined,\r\n title: \"وضعیت مسدود بودن\",\r\n filterName: \"isSuspended\",\r\n },\r\n isActive: {\r\n defaultValue: undefined,\r\n title: \"وضعیت کاربر\",\r\n filterName: \"isActive\",\r\n },\r\n\r\n isActiveCampaign: {\r\n defaultValue: undefined,\r\n title: \"وضعیت کمپین\",\r\n filterName: \"isActiveCampaign\",\r\n },\r\n\r\n isDeleted: {\r\n defaultValue: undefined,\r\n title: \"منقضی شده\",\r\n filterName: \"isDeleted\",\r\n },\r\n isRead: {\r\n defaultValue: undefined,\r\n title: \"وضعیت\",\r\n filterName: \"isRead\",\r\n },\r\n creditTransactionType: {\r\n defaultValue: undefined,\r\n title: \"نوع استفاده\",\r\n filterName: \"creditTransactionType\",\r\n },\r\n type: {\r\n defaultValue: undefined,\r\n title: \"نوع فاکتور\",\r\n filterName: \"type\",\r\n },\r\n isOnline: {\r\n defaultValue: undefined,\r\n title: \"روش پرداخت\",\r\n filterName: \"isOnline\",\r\n },\r\n isOfficial: {\r\n defaultValue: undefined,\r\n title: \"نوع\",\r\n filterName: \"isOfficial\",\r\n },\r\n onlyReturns: {\r\n defaultValue: undefined,\r\n title: \"نوع فاکتور\",\r\n filterName: \"onlyReturns\",\r\n },\r\n isVerified: {\r\n defaultValue: undefined,\r\n title: \"وضعیت فاکتور\",\r\n filterName: \"isVerified\",\r\n },\r\n fromNumber: {\r\n defaultValue: undefined,\r\n title: \"از شماره\",\r\n filterName: \"fromNumber\",\r\n },\r\n toNumber: {\r\n defaultValue: undefined,\r\n title: \"تا شماره\",\r\n filterName: \"toNumber\",\r\n },\r\n isPaid: {\r\n defaultValue: undefined,\r\n title: \"وضعیت پرداخت\",\r\n filterName: \"isPaid\",\r\n },\r\n priority: {\r\n defaultValue: undefined,\r\n title: \"اولویت\",\r\n filterName: \"priority\",\r\n },\r\n limitationType: {\r\n defaultValue: undefined,\r\n title: \"محدودیت لغو شده\",\r\n filterName: \"type\",\r\n },\r\n operation: {\r\n defaultValue: undefined,\r\n title: \"عملیات\",\r\n filterName: \"operation\",\r\n },\r\n onlyFree: {\r\n defaultValue: undefined,\r\n title: \"آزادبودن خط\",\r\n filterName: \"onlyFree\",\r\n },\r\n onlyPendings: {\r\n defaultValue: true,\r\n title: \"درحال انتظار\",\r\n filterName: \"onlyPendings\",\r\n },\r\n adminId: {\r\n defaultValue: undefined,\r\n title: \"انتخاب مدیر\",\r\n filterName: \"adminId\",\r\n },\r\n isValid: {\r\n defaultValue: undefined,\r\n title: \"وضعیت\",\r\n filterName: \"isValid\",\r\n },\r\n bankId: {\r\n defaultValue: undefined,\r\n title: \"بانک دریافت کننده\",\r\n filterName: \"bankId\",\r\n },\r\n onlyHandled: {\r\n defaultValue: undefined,\r\n title: 'وضعیت',\r\n filterName: 'onlyHandled',\r\n },\r\n\r\n ReviewState: {\r\n defaultValue: undefined,\r\n title: 'وضعیت',\r\n filterName: 'ReviewState',\r\n },\r\n });\r\n // functions\r\n const DatePickerFilter = () => {\r\n const dateHandler = (event) => {\r\n if (event.fromDate) {\r\n changeHandler(event.fromDate.baseFormat, \"fromDate\");\r\n } else {\r\n changeHandler(\"\", \"fromDate\");\r\n }\r\n if (event.toDate) {\r\n changeHandler(event.toDate.baseFormat, \"toDate\");\r\n } else {\r\n changeHandler(\"\", \"toDate\");\r\n }\r\n };\r\n return (\r\n <>\r\n \r\n \r\n );\r\n };\r\n const Step = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"step\")}\r\n value={filters.step.defaultValue}\r\n >\r\n \r\n {StepList.map((item, index) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n );\r\n };\r\n const Status = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"status\")}\r\n value={filters.status.defaultValue}\r\n >\r\n \r\n {TicketStatusList.map((item, index) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n );\r\n };\r\n const Provider = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"providerId\")}\r\n value={filters.providerId.defaultValue}\r\n >\r\n \r\n {ProviderEnum.map((item, index) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n\r\n const EarnMethod = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"earnMethod\")}\r\n value={filters.earnMethod.defaultValue}\r\n >\r\n \r\n {UserLineEarnMethod.map((item, index) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const LineType = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"lineType\")}\r\n value={filters.lineType.defaultValue}\r\n >\r\n \r\n {lineTypes.map((item, index) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n );\r\n };\r\n const LineStatus = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"status\")}\r\n value={filters.status.defaultValue}\r\n >\r\n \r\n {UserLineStatusNotPending.map((item, index) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n );\r\n };\r\n const Department = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"department\")}\r\n value={filters.department.defaultValue}\r\n >\r\n \r\n {TicketDepartmentList.map((item, index) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n );\r\n };\r\n const IsExpired = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"isExpired\")}\r\n value={filters.isExpired.defaultValue}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n };\r\n const IsExpiredLine = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"isExpiredLine\")}\r\n value={filters.isExpiredLine.defaultValue}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n };\r\n const IsSuspended = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"isSuspended\")}\r\n value={filters.isSuspended.defaultValue}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const IsActiveCampaign = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"isActiveCampaign\")}\r\n value={filters.isActiveCampaign.defaultValue}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n\r\n const IsActive = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"isActive\")}\r\n value={filters.isActive.defaultValue}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const IsDeleted = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"isDeleted\")}\r\n value={filters.isDeleted.defaultValue}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const IsValid = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"isValid\")}\r\n value={filters.isValid.defaultValue}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n };\r\n const OnlyPending = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"onlyPendings\")}\r\n value={filters.onlyPendings.defaultValue}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n };\r\n const IsRead = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"isRead\")}\r\n value={filters.isRead.defaultValue}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n };\r\n const TemplateStatus = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"status\")}\r\n value={filters.status.defaultValue}\r\n >\r\n \r\n {TemplateVerifyStatus.map((item, index) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n );\r\n };\r\n const NotPendingTemplateStatus = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"status\")}\r\n value={filters.status.defaultValue}\r\n >\r\n \r\n {TemplateVerifyStatus.map((item, index) =>\r\n index > 0 ? (\r\n \r\n ) : null\r\n )}\r\n \r\n
\r\n \r\n );\r\n };\r\n const CreditTransactionType = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n \r\n changeHandler(e.target.value, \"creditTransactionType\")\r\n }\r\n value={filters.creditTransactionType.defaultValue}\r\n >\r\n \r\n {CreditTransactionModel.map((item, index) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n );\r\n };\r\n const InvoiceTypeFilter = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"type\")}\r\n value={filters.type.defaultValue}\r\n >\r\n \r\n {invoiceTypeModel.map((item, index) =>\r\n index > 0 ? (\r\n \r\n ) : null\r\n )}\r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n\r\n\r\n\r\n const PaymentStatusFilter = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"status\")}\r\n value={filters.status.defaultValue}\r\n >\r\n \r\n {PaymentStatusModel.map((item, index) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n );\r\n };\r\n const IsOnline = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"isOnline\")}\r\n value={filters.isOnline.defaultValue}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const IsOfficial = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"isOfficial\")}\r\n value={filters.isOfficial.defaultValue}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const OnlyReturns = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"type\")}\r\n value={filters.type.defaultValue}\r\n >\r\n \r\n {invoiceTypeModel.map((item, index) =>\r\n \r\n )}\r\n \r\n
\r\n \r\n );\r\n };\r\n const IsVerifiedFilter = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"isVerified\")}\r\n value={filters.isVerified.defaultValue}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n };\r\n const FromNumber = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"fromNumber\")}\r\n value={filters.fromNumber.defaultValue}\r\n />\r\n
\r\n \r\n );\r\n };\r\n const ToNumber = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"toNumber\")}\r\n value={filters.toNumber.defaultValue}\r\n />\r\n
\r\n \r\n );\r\n };\r\n const IsPaid = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"isPaid\")}\r\n value={filters.isPaid.defaultValue}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n };\r\n const TicketPriorityFilter = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"priority\")}\r\n value={filters.priority.defaultValue}\r\n >\r\n \r\n {TicketPriorityList.map((item, index) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n );\r\n };\r\n const canceledRestriction = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"limitationType\")}\r\n value={filters.limitationType.defaultValue}\r\n >\r\n \r\n {sendSMSLimitationModel.map((item, index) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n );\r\n };\r\n const adminOperation = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"operation\")}\r\n value={filters.operation.defaultValue}\r\n >\r\n \r\n {AdminActivityOperationModel.map((item, index) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const PlanLineFilter = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"onlyFree\")}\r\n value={filters.onlyFree.defaultValue}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n };\r\n const BankIDFilter = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, \"bankId\")}\r\n value={filters.bankId.defaultValue}\r\n >\r\n \r\n {BankProviderList.map(\r\n (item) =>\r\n item.value > 0 && (\r\n \r\n )\r\n )}\r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const adminAssignListFilter = function () {\r\n const changeInput = (e) => {\r\n const list = adminAssignCustomList.filter((f) => f.fullName.includes(e));\r\n if (!e) {\r\n changeHandler(undefined, \"assignedAdminId\");\r\n }\r\n setAdminAssignCustomList([\r\n {\r\n adminId: \"\",\r\n fullName: \"ندارد\",\r\n },\r\n ...list,\r\n ]);\r\n };\r\n\r\n const changeSelect = (e) => {\r\n changeHandler(e.adminId, \"assignedAdminId\");\r\n setAdminAssignCustomList([\r\n {\r\n adminId: \"\",\r\n fullName: \"ندارد\",\r\n },\r\n ...adminSummaryList,\r\n ]);\r\n };\r\n return (\r\n
\r\n \r\n \r\n \r\n changeInput(e)}\r\n selectItem={(e) => changeSelect(e)}\r\n >\r\n
\r\n );\r\n }\r\n\r\n\r\n const adminSummaryListFilter = function () {\r\n const changeInput = (e) => {\r\n const list = adminSummaryList.filter((f) => f.fullName.includes(e));\r\n if (!e) {\r\n changeHandler(undefined, \"adminId\");\r\n }\r\n setAdminSummaryCustomList([\r\n {\r\n adminId: \"\",\r\n fullName: \"همه مدیران\",\r\n },\r\n ...list,\r\n ]);\r\n };\r\n\r\n const changeSelect = (e) => {\r\n changeHandler(e.adminId, \"adminId\");\r\n setAdminSummaryCustomList([\r\n {\r\n adminId: \"\",\r\n fullName: \"همه مدیران\",\r\n },\r\n ...adminSummaryList,\r\n ]);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n changeInput(e)}\r\n selectItem={(e) => changeSelect(e)}\r\n >\r\n
\r\n );\r\n };\r\n\r\n const IsHandled = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, 'onlyHandled')}\r\n value={filters.onlyHandled.defaultValue}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n const ReviewState = function () {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n \r\n changeHandler(e.target.value, 'ReviewState')}\r\n value={filters.ReviewState.defaultValue}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n };\r\n\r\n // List of functions\r\n const componentList = {\r\n datePickerFilter: DatePickerFilter,\r\n step: Step,\r\n status: Status,\r\n provider: Provider,\r\n earnMethod: EarnMethod,\r\n lineType: LineType,\r\n lineStatus: LineStatus,\r\n department: Department,\r\n isExpired: IsExpired,\r\n isExpiredLine: IsExpiredLine,\r\n isSuspended: IsSuspended,\r\n isActive: IsActive,\r\n isActiveCampaign: IsActiveCampaign,\r\n isDeleted: IsDeleted,\r\n isRead: IsRead,\r\n templateStatus: TemplateStatus,\r\n notPendingTemplateStatus: NotPendingTemplateStatus,\r\n creditTransactionType: CreditTransactionType,\r\n InvoiceTypeFilter: InvoiceTypeFilter,\r\n PaymentStatusFilter: PaymentStatusFilter,\r\n isOnline: IsOnline,\r\n isOfficial: IsOfficial,\r\n onlyReturns: OnlyReturns,\r\n isVerifiedFilter: IsVerifiedFilter,\r\n fromNumber: FromNumber,\r\n toNumber: ToNumber,\r\n isPaid: IsPaid,\r\n priority: TicketPriorityFilter,\r\n limitationType: canceledRestriction,\r\n operation: adminOperation,\r\n onlyFree: PlanLineFilter,\r\n adminId: adminSummaryListFilter,\r\n isValid: IsValid,\r\n onlyPendings: OnlyPending,\r\n isHandled: IsHandled,\r\n bankId: BankIDFilter,\r\n assignedAdminId: adminAssignListFilter,\r\n ReviewState: ReviewState,\r\n };\r\n // Do not change these functions\r\n const changeHandler = (value, mode) => {\r\n const val = value;\r\n SetFilters((prevState) => {\r\n return {\r\n ...prevState,\r\n [mode]: {\r\n ...filters[mode],\r\n defaultValue: val,\r\n },\r\n };\r\n });\r\n if (val) {\r\n getFilter[mode] = {\r\n defaultValue: val,\r\n title: filters[mode].title,\r\n filterName: filters[mode].filterName,\r\n };\r\n } else {\r\n delete getFilter[mode];\r\n }\r\n };\r\n const filterFn = (filterName) => {\r\n if (componentList.hasOwnProperty(filterName)) {\r\n return componentList[filterName]();\r\n }\r\n return \"\";\r\n };\r\n useImperativeHandle(ref, () => {\r\n return {\r\n resetFilters() {\r\n for (const item of Object.keys(getFilter)) {\r\n SetFilters((prevState) => {\r\n return {\r\n ...prevState,\r\n [item]: {\r\n ...filters[item],\r\n defaultValue: \"\",\r\n },\r\n };\r\n });\r\n }\r\n getFilter = {};\r\n },\r\n removeFilter(value, mode) {\r\n changeHandler(value, mode);\r\n },\r\n addFilters(items) {\r\n for (const itemsKey in items) {\r\n changeHandler(items[itemsKey], itemsKey);\r\n }\r\n },\r\n };\r\n });\r\n\r\n useEffect(() => {\r\n if (!adminSummaryList || adminSummaryList.length === 0) {\r\n ApiClient.Get(Urls.AdminSummary()).then((res) => {\r\n setAdminSummaryList(res.result);\r\n setAdminSummaryCustomList([\r\n {\r\n adminId: \"\",\r\n fullName: \"همه مدیران\",\r\n },\r\n ...res.result,\r\n ]);\r\n setAdminAssignCustomList([\r\n {\r\n adminId: \"\",\r\n fullName: \"ندارد\",\r\n },\r\n ...res.result,\r\n ])\r\n });\r\n }\r\n }, []);\r\n return (\r\n <>\r\n
    \r\n {props.filtersList.map((item, index) => (\r\n
  • \r\n {filterFn(item)}\r\n
  • \r\n ))}\r\n
\r\n \r\n );\r\n});\r\n","// import React from \"react\";\r\n\r\nconst ColumnsGenerator = (header) => {\r\n // let columns = React.useMemo(() => [], []);\r\n const columns = [];\r\n if (header !== undefined) {\r\n for (const item of Object.keys(header)) {\r\n columns.push({\r\n accessor: item,\r\n header: header[item],\r\n });\r\n }\r\n }\r\n return columns;\r\n};\r\n\r\nexport default ColumnsGenerator;\r\n","import queryString from \"query-string\"\r\n\r\nexport function ConvertQueryString(params) {\r\n let search;\r\n if (params) {\r\n search = params[0] === '?' ? params.substring(1) : params\r\n } else {\r\n search = null;\r\n }\r\n return search ?\r\n queryString.parse(search) :\r\n {};\r\n}\r\n","import React, {useEffect, useState} from 'react';\r\nimport styled from 'styled-components';\r\nimport {Dropdown} from 'react-bootstrap';\r\nimport {getFilter, TableFilters} from './filters';\r\nimport ReactTooltip from 'react-tooltip';\r\nimport ColumnsGenerator from './config';\r\nimport {useHistory, useLocation} from 'react-router-dom';\r\nimport {ConvertQueryString} from '../../../Utility/Services/convert-query-string';\r\nimport {CheckBox} from '../../Kit/Checkbox';\r\nimport queryString from 'query-string';\r\n\r\nconst Styles = styled.div`\r\n .table-search span {\r\n width: 250px;\r\n height: 32px;\r\n text-indent: 10px;\r\n font-size: 0.9em;\r\n border-radius: 5px;\r\n border: 1px solid #cecece;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .table-search span i {\r\n width: 32px;\r\n height: 32px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n\r\n .table-search input {\r\n width: calc(100% - 32px);\r\n height: 100%;\r\n font-size: 0.9em;\r\n border-radius: 5px;\r\n border: 0;\r\n }\r\n\r\n .table-search input:focus {\r\n outline: none;\r\n }\r\n\r\n table .number-col {\r\n width: 36px;\r\n }\r\n\r\n table th.select-col {\r\n width: 36px;\r\n padding: 15px 0.625em;\r\n\r\n .table-checkbox {\r\n margin: 0;\r\n\r\n label {\r\n margin: 0;\r\n justify-content: center;\r\n\r\n input {\r\n margin: 0;\r\n }\r\n }\r\n }\r\n }\r\n\r\n table td.select-col {\r\n width: 36px;\r\n\r\n .table-checkbox {\r\n margin: 0;\r\n\r\n label {\r\n margin: 0;\r\n justify-content: center;\r\n\r\n input {\r\n margin: 0;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .dropdown-menu {\r\n width: 250px;\r\n text-align: right;\r\n }\r\n\r\n .filter-wrapper {\r\n display: flex;\r\n //flex-direction: row-reverse;\r\n align-items: center;\r\n justify-content: space-between;\r\n margin: 0 0 15px 0;\r\n }\r\n\r\n .filter-export__wrapper {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .filter-row {\r\n select {\r\n width: 100%;\r\n }\r\n }\r\n\r\n .filter-button {\r\n display: flex;\r\n align-items: center;\r\n border: 0;\r\n background: transparent;\r\n color: #737373;\r\n border: 1px solid #cecece;\r\n margin-left: 5px;\r\n }\r\n\r\n .long-text {\r\n width: 100px;\r\n\r\n > span {\r\n text-overflow: ellipsis !important;\r\n white-space: nowrap !important;\r\n overflow: hidden !important;\r\n width: 100px !important;\r\n display: block;\r\n }\r\n\r\n .tooltip-size {\r\n width: 250px;\r\n\r\n p {\r\n color: #fff;\r\n }\r\n }\r\n }\r\n\r\n .filter-button:focus {\r\n box-shadow: none;\r\n }\r\n\r\n table {\r\n border-collapse: collapse;\r\n margin: 0;\r\n padding: 0;\r\n width: 100%;\r\n text-align: right;\r\n }\r\n\r\n table thead {\r\n background: #ebefff;\r\n color: #6c6c6c;\r\n border-top: 1px solid #e3e3e3;\r\n border-bottom: 1px solid #e3e3e3;\r\n }\r\n\r\n table tr {\r\n padding: 0.35em;\r\n }\r\n\r\n table th,\r\n table td {\r\n padding: 0.625em;\r\n text-align: center;\r\n }\r\n\r\n table th {\r\n font-size: 0.85em;\r\n padding: 15px 0;\r\n }\r\n\r\n table td {\r\n font-size: 0.75em;\r\n }\r\n\r\n table tbody {\r\n border-bottom: 1px solid #e3e3e3;\r\n }\r\n\r\n table tbody tr:nth-child(odd) {\r\n background-color: #fbfbfb;\r\n }\r\n\r\n .actions-wrapper ul {\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-start;\r\n padding: 0;\r\n margin: 0;\r\n transition: all 500ms ease;\r\n }\r\n\r\n table tbody tr .actions-td {\r\n width: 125px;\r\n }\r\n\r\n .actions-wrapper ul li {\r\n cursor: pointer;\r\n transition: all 500ms ease;\r\n font-size: 1.35em;\r\n margin: 0 8px;\r\n }\r\n\r\n .actions-wrapper ul li.view-action:hover {\r\n color: #03a9f4;\r\n }\r\n\r\n .actions-wrapper ul li.delete-action:hover {\r\n color: #f44336;\r\n }\r\n\r\n .actions-wrapper ul li.edit-action:hover {\r\n color: #4caf50;\r\n }\r\n\r\n .pagination-row {\r\n margin-top: 15px;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n }\r\n\r\n .pagination-col {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n }\r\n\r\n .pagination {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n select {\r\n font-size: 0.9em;\r\n width: 50px;\r\n border-radius: 5px;\r\n border: 1px solid #cecece;\r\n height: 32px;\r\n color: #626262;\r\n }\r\n\r\n .pagination .pagination-btn {\r\n width: 32px;\r\n height: 32px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n border: 1px solid #cecece;\r\n border-radius: 5px;\r\n margin: 0 2px;\r\n font-size: 1.1em;\r\n }\r\n\r\n .pagination .paginate-row {\r\n display: flex;\r\n align-items: center;\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n .pagination .paginate-row li {\r\n width: 32px;\r\n height: 32px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n border: 1px solid #cecece;\r\n border-radius: 5px;\r\n margin: 0 2px;\r\n font-size: 0.8em;\r\n }\r\n\r\n .pagination .paginate-row li.active {\r\n border-color: #6c7293;\r\n color: #fff;\r\n background: #6c7293;\r\n }\r\n\r\n .pagination .paginate-row li.page:hover {\r\n cursor: pointer;\r\n border-color: #6c7293;\r\n color: #6c7293;\r\n }\r\n\r\n .pagination .paginate-row li.page a {\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n\r\n .pagination-row .count-show {\r\n font-size: 0.8em;\r\n margin: 0 5px;\r\n }\r\n\r\n @media screen and (max-width: 767px) {\r\n .long-text {\r\n width: 100%;\r\n\r\n > span {\r\n text-overflow: ellipsis !important;\r\n white-space: nowrap !important;\r\n overflow: hidden !important;\r\n width: 150px !important;\r\n display: block;\r\n }\r\n\r\n .tooltip-size {\r\n display: none !important;\r\n }\r\n }\r\n\r\n .pagination-row {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: self-start;\r\n\r\n .pagination-col {\r\n justify-content: space-between;\r\n width: 100%;\r\n }\r\n\r\n .count-show {\r\n margin-top: 15px;\r\n }\r\n }\r\n\r\n table {\r\n border: 0;\r\n }\r\n\r\n table .number-col {\r\n width: 100%;\r\n }\r\n\r\n table caption {\r\n font-size: 1.3em;\r\n }\r\n\r\n table tr > th:not(.select-col){\r\n display: none; \r\n }\r\n \r\n table thead {\r\n //border: none;\r\n //clip: rect(0 0 0 0);\r\n //height: 1px;\r\n //margin: -1px;\r\n //overflow: hidden;\r\n //padding: 0;\r\n //position: absolute;\r\n //width: 1px;\r\n }\r\n\r\n table tr {\r\n border-bottom: 3px solid #ddd;\r\n display: block;\r\n margin-bottom: 0.625em;\r\n\r\n .actions-td {\r\n width: 100% !important;\r\n }\r\n }\r\n\r\n table td {\r\n border-bottom: 1px solid #ddd;\r\n display: block;\r\n font-size: 0.8em;\r\n text-align: right;\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n }\r\n\r\n table td::before {\r\n content: attr(data-label);\r\n font-weight: bold;\r\n text-transform: uppercase;\r\n }\r\n\r\n table td:last-child {\r\n border-bottom: 0;\r\n }\r\n }\r\n @media screen and (max-width: 500px) {\r\n .filter-wrapper {\r\n flex-direction: column;\r\n\r\n .filter-export__wrapper {\r\n justify-content: space-between;\r\n width: 100%;\r\n }\r\n\r\n .table-search {\r\n width: 100%;\r\n margin: 15px 0 0;\r\n\r\n > span {\r\n width: 100%;\r\n }\r\n\r\n input {\r\n width: 100%;\r\n }\r\n }\r\n }\r\n }\r\n @media screen and (max-width: 400px) {\r\n .pagination-row {\r\n align-items: center;\r\n\r\n .pagination-col {\r\n flex-direction: column;\r\n\r\n .pagination .paginate-row li {\r\n width: 26px;\r\n height: 26px;\r\n }\r\n\r\n .pagination .pagination-btn {\r\n width: 26px;\r\n height: 26px;\r\n }\r\n\r\n select {\r\n width: 100%;\r\n margin-top: 15px;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .dropdown-item {\r\n &:active {\r\n background-color: #ffffff;\r\n }\r\n }\r\n\r\n .filter-list {\r\n display: flex;\r\n align-items: center;\r\n flex-wrap: wrap;\r\n padding: 0;\r\n margin: 0;\r\n\r\n li.filter-list__item {\r\n border: 1px solid #e4e4e4;\r\n font-size: 11px;\r\n padding: 5px 10px;\r\n margin-left: 5px;\r\n border-radius: 27px;\r\n cursor: pointer;\r\n margin-bottom: 10px;\r\n\r\n &:hover {\r\n border-color: #ff5a5a;\r\n background: #ff5a5a;\r\n color: #fff;\r\n }\r\n }\r\n }\r\n\r\n .export-menu {\r\n padding: 0;\r\n\r\n .export-item {\r\n border-bottom: 1px solid #e1e1e1;\r\n padding: 10px 15px;\r\n margin: 0;\r\n\r\n &:last-child {\r\n border-bottom: 0;\r\n }\r\n\r\n &:hover {\r\n background: #f5f5f5;\r\n }\r\n\r\n &:active {\r\n color: #000;\r\n }\r\n }\r\n }\r\n`;\r\nconst {useRef} = React;\r\nlet tableFilter = {};\r\nlet pageData = null\r\n\r\nfunction Table({\r\n data = [],\r\n config,\r\n actionDispatched,\r\n pageConfig = {},\r\n filterDispatch,\r\n selectedDispatch,\r\n exportDispatched,\r\n }) {\r\n const [rows, setRows] = useState([]);\r\n const columns = ColumnsGenerator(config.header);\r\n\r\n const actionsFn = (event, item, actionName) => {\r\n event.stopPropagation();\r\n let value = {\r\n data: item,\r\n actionName,\r\n };\r\n actionDispatched(value);\r\n };\r\n const exportHandler = (item) => {\r\n let value = {\r\n export: item,\r\n };\r\n exportDispatched(value);\r\n };\r\n\r\n const TdCellData = ({cell}) => {\r\n return (\r\n <>\r\n {Array.isArray(cell) ? (\r\n cell.map((m, x) => (cell.length - 1 === x ? m : m + ' ، '))\r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n };\r\n const history = useHistory();\r\n const location = useLocation();\r\n const childRef = useRef();\r\n const isBool = true;\r\n\r\n const [selectAll, setSelectAll] = useState(false);\r\n const [defaultPageSize, setDefaultPageSize] = useState(0);\r\n const [defaultPhrase, setDefaultPhrase] = useState();\r\n const [pageOptions, setPageOptions] = useState([]);\r\n\r\n const openRow = (event, row) => {\r\n if (\r\n config.hasOwnProperty('actions') &&\r\n config.actions.hasOwnProperty('view')\r\n ) {\r\n if (config.actions['view'].hasOwnProperty('condition')) {\r\n if (config.actions['view'].condition(row)) {\r\n actionsFn(event, row, 'view');\r\n }\r\n } else {\r\n actionsFn(event, row, 'view');\r\n }\r\n }\r\n };\r\n const cursorHandler = (row) => {\r\n if (\r\n config.hasOwnProperty('actions') &&\r\n config.actions.hasOwnProperty('view')\r\n ) {\r\n if (config.actions['view'].hasOwnProperty('condition')) {\r\n if (config.actions['view'].condition(row)) {\r\n return true;\r\n }\r\n } else {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n const tableChange = (mode, pageState, appliedFilter = false) => {\r\n if (mode) {\r\n tableFilter = {\r\n ...tableFilter,\r\n ...pageState,\r\n };\r\n for (const item of Object.keys(getFilter)) {\r\n tableFilter[item] = getFilter[item].defaultValue;\r\n }\r\n if (pageState) {\r\n for (const item of Object.keys(pageState)) {\r\n tableFilter[item] = pageState[item];\r\n }\r\n }\r\n if (pageConfig.pageSize !== defaultPageSize && !tableFilter['pageSize']) {\r\n tableFilter['pageSize'] = pageConfig.pageSize;\r\n }\r\n if (defaultPhrase && tableFilter['phrase'] === undefined) {\r\n tableFilter['phrase'] = defaultPhrase;\r\n }\r\n setDefaultPhrase(tableFilter['phrase']);\r\n\r\n if (tableFilter['pageNumber'] === 1) {\r\n delete tableFilter['pageNumber'];\r\n }\r\n\r\n for (const tableFilterKey in tableFilter) {\r\n if (\r\n tableFilter[tableFilterKey] === undefined ||\r\n tableFilter[tableFilterKey] === null\r\n ) {\r\n delete tableFilter[tableFilterKey];\r\n }\r\n }\r\n if (appliedFilter) {\r\n pageData = {};\r\n delete tableFilter['needCount'];\r\n\r\n } else {\r\n if (pageConfig.totalItemsCount) {\r\n pageData = pageConfig\r\n }\r\n tableFilter['needCount'] = false\r\n }\r\n\r\n history.push({\r\n search: '?' + queryString.stringify({...tableFilter}),\r\n });\r\n } else {\r\n if (childRef.current) {\r\n childRef.current.resetFilters();\r\n history.push({\r\n search: '?' + queryString.stringify({}),\r\n });\r\n }\r\n }\r\n };\r\n\r\n const removeFilter = (item) => {\r\n childRef.current.removeFilter('', item);\r\n tableFilter = {\r\n ...tableFilter,\r\n };\r\n if (tableFilter.hasOwnProperty('pageNumber')) {\r\n delete tableFilter['pageNumber'];\r\n }\r\n if (defaultPhrase && tableFilter['phrase'] === undefined) {\r\n tableFilter['phrase'] = defaultPhrase;\r\n }\r\n for (const item of Object.keys(getFilter)) {\r\n tableFilter[item] = getFilter[item].defaultValue;\r\n }\r\n delete tableFilter['needCount'];\r\n if (tableFilter.hasOwnProperty(item)) {\r\n delete tableFilter[item];\r\n history.push({\r\n search: '?' + queryString.stringify(tableFilter),\r\n });\r\n // filterDispatch(tableFilter);\r\n } else {\r\n history.push({\r\n search: '?' + queryString.stringify(tableFilter),\r\n });\r\n // filterDispatch(tableFilter);\r\n }\r\n };\r\n const headSelectHandler = (item) => {\r\n let page = [...rows];\r\n let selectedList = [];\r\n page.forEach((f) => {\r\n f.isSelected = item.target.checked;\r\n if (item.target.checked) {\r\n selectedList.push(f.original);\r\n } else {\r\n selectedList.length = 0;\r\n }\r\n });\r\n setRows([...page]);\r\n setSelectAll(item.target.checked);\r\n selectedDispatch(selectedList);\r\n };\r\n const rowSelectHandler = (item, id) => {\r\n let selectedList = [];\r\n let page = [...rows];\r\n page[id].isSelected = item.target.checked;\r\n page.forEach((f) => {\r\n if (f.isSelected) {\r\n selectedList.push(f.original);\r\n }\r\n });\r\n setRows([...page]);\r\n const selectedAll = page.every((e) => e.isSelected);\r\n const unselectedAll = page.every((e) => !e.isSelected);\r\n if (!selectedAll && !unselectedAll) {\r\n setSelectAll(null);\r\n } else {\r\n setSelectAll(selectedAll ? true : false);\r\n }\r\n selectedDispatch(selectedList);\r\n };\r\n const createTableRows = (list) => {\r\n const tableRows = [];\r\n if (list.length) {\r\n list.forEach((f) => {\r\n let currentObj = {};\r\n columns.forEach((col) => {\r\n if (f.hasOwnProperty(col.accessor)) {\r\n currentObj[col.accessor] = f[col.accessor];\r\n }\r\n });\r\n tableRows.push({\r\n cells: {...currentObj},\r\n original: {...f},\r\n id: f.id,\r\n isSelected: false,\r\n });\r\n });\r\n setRows(tableRows);\r\n } else {\r\n if (rows.length) {\r\n setRows([]);\r\n }\r\n }\r\n };\r\n const createPaginationList = () => {\r\n if (pageConfig.hasOwnProperty('pageNumber')) {\r\n let pageList = [];\r\n for (let i = 0; i < (pageConfig.totalPagesCount ? pageConfig.totalPagesCount : pageData.totalPagesCount); i++) {\r\n pageList.push(i);\r\n }\r\n setPageOptions([...pageList]);\r\n }\r\n };\r\n useEffect(() => {\r\n createTableRows(data);\r\n if (data.length) {\r\n createPaginationList();\r\n }\r\n setSelectAll(false);\r\n let urlData = ConvertQueryString(location.search);\r\n if (!urlData['pageSize']) {\r\n setDefaultPageSize(pageConfig.pageSize);\r\n }\r\n if (urlData['phrase']) {\r\n setDefaultPhrase(urlData['phrase']);\r\n }\r\n if (config.mode && config.mode.includes('filter')) {\r\n if (\r\n urlData &&\r\n (urlData.pageNumber || urlData.pageSize || urlData.phrase)\r\n ) {\r\n delete urlData['pageNumber'];\r\n delete urlData['pageSize'];\r\n delete urlData['phrase'];\r\n }\r\n childRef.current.addFilters(urlData);\r\n }\r\n return () => {\r\n if (config.mode && config.mode.includes('filter')) {\r\n tableFilter = {\r\n pageNumber: 1,\r\n };\r\n childRef.current.resetFilters();\r\n }\r\n };\r\n }, [data]);\r\n\r\n return (\r\n <>\r\n \r\n
\r\n {config.mode ? (\r\n
\r\n {config.mode.includes('filter') ? (\r\n \r\n \r\n فیلتر\r\n \r\n \r\n \r\n \r\n
\r\n {\r\n tableChange(false);\r\n }}\r\n >\r\n ریست\r\n \r\n {\r\n tableChange(true, null, true);\r\n }}\r\n >\r\n تایید\r\n \r\n
\r\n
\r\n
\r\n
\r\n ) : null}\r\n {config.mode.includes(\"export-excel\") && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n ) : null}\r\n {config.mode ? (\r\n config.mode.includes('search') ? (\r\n
\r\n \r\n \r\n 0\r\n ? config.placeholder.map((x) => ` ${config.header[x]}`)\r\n : 'جستجو'\r\n }\r\n onChange={(e) => {\r\n e.persist();\r\n setTimeout(() => {\r\n tableChange(true, {\r\n phrase: e.target.value,\r\n pageNumber: 1,\r\n }, true);\r\n }, 1000);\r\n }}\r\n />\r\n \r\n
\r\n ) : null\r\n ) : null}\r\n
\r\n
\r\n {config.mode && config.mode.includes('filter') ? (\r\n
    \r\n {Object.keys(getFilter).map((item, index) => (\r\n getFilter[item].title &&\r\n removeFilter(item)}\r\n key={index}\r\n >\r\n {getFilter[item].title}\r\n \r\n ))}\r\n
\r\n ) : null}\r\n
\r\n \r\n {config && (\r\n <>\r\n \r\n \r\n {config.hasSelectCol ? (\r\n \r\n ) : null}\r\n \r\n\r\n {columns.length &&\r\n columns.map((headTitle) => (\r\n \r\n ))}\r\n {config.actions ? : null}\r\n \r\n \r\n {rows && rows.length ? (\r\n \r\n {rows.map((row, i) => {\r\n return (\r\n openRow(event, row.original)}\r\n key={`row-${i}`}\r\n >\r\n {config.hasSelectCol ? (\r\n {\r\n event.stopPropagation();\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n ) : null}\r\n\r\n {Object.keys(pageConfig).length !== 0 ? (\r\n {\r\n event.stopPropagation();\r\n }}\r\n >\r\n {pageConfig.pageSize * pageConfig.pageNumber +\r\n (i + 1) -\r\n pageConfig.pageSize}\r\n \r\n ) : (\r\n {\r\n event.stopPropagation();\r\n }}\r\n >\r\n {i + 1}\r\n \r\n )}\r\n {Object.keys(row.cells).map((cell) =>\r\n config.tooltipTitle ? (\r\n config.tooltipTitle.includes(cell) ? (\r\n \r\n \r\n \r\n \r\n \r\n

\r\n \r\n

\r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )\r\n ) : (\r\n \r\n \r\n \r\n )\r\n )}\r\n {config.actions ? (\r\n
\r\n ) : null}\r\n \r\n );\r\n })}\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n
\r\n \r\n \r\n \r\n #{headTitle.header}
\r\n
\r\n
    \r\n {Object.keys(config.actions).map((item, i) =>\r\n config.actions[item].hasOwnProperty(\r\n 'condition'\r\n ) ? (\r\n config.actions[item].condition(\r\n row.original\r\n ) ? (\r\n \r\n actionsFn(event, row.original, item)\r\n }\r\n className={`${item}-action`}\r\n >\r\n \r\n \r\n ) : null\r\n ) : (\r\n \r\n actionsFn(event, row.original, item)\r\n }\r\n className={`${item}-action`}\r\n >\r\n \r\n \r\n )\r\n )}\r\n
\r\n
\r\n
\r\n آیتمی جهت نمایش وجود ندارد.\r\n
\r\n {Object.keys(pageConfig).length !== 0 && data.length ? (\r\n
\r\n
\r\n
\r\n tableChange(true, {pageNumber: 1})}\r\n disabled={pageConfig.pageNumber === 1}\r\n className='pagination-btn'\r\n >\r\n {}\r\n \r\n {' '}\r\n \r\n tableChange(true, {pageNumber: pageConfig.pageNumber - 1})\r\n }\r\n disabled={pageConfig.pageNumber === 1}\r\n className='pagination-btn'\r\n >\r\n \r\n \r\n {' '}\r\n {(pageConfig.totalPagesCount ? pageConfig.totalPagesCount : pageData.totalPagesCount) > 5 ? (\r\n
    \r\n {pageConfig.pageNumber > 2 &&\r\n pageConfig.pageNumber <= (pageConfig.totalPagesCount ? pageConfig.totalPagesCount : pageData.totalPagesCount)\r\n ? pageOptions.map((count, index) =>\r\n index >= pageConfig.pageNumber - 3 &&\r\n index <= pageConfig.pageNumber + 1 ? (\r\n \r\n {pageConfig.pageNumber === count + 1 ? (\r\n {count + 1}\r\n ) : (\r\n // eslint-disable-next-line jsx-a11y/anchor-is-valid\r\n \r\n tableChange(true, {pageNumber: count + 1})\r\n }\r\n >\r\n {' '}\r\n {count + 1}\r\n \r\n )}\r\n \r\n ) : null\r\n )\r\n : pageOptions.map((count, index) =>\r\n index < 5 ? (\r\n \r\n {pageConfig.pageNumber === count + 1 ? (\r\n {count + 1}\r\n ) : (\r\n // eslint-disable-next-line jsx-a11y/anchor-is-valid\r\n \r\n tableChange(true, {pageNumber: count + 1})\r\n }\r\n >\r\n {' '}\r\n {count + 1}\r\n \r\n )}\r\n \r\n ) : null\r\n )}\r\n
\r\n ) : (\r\n
    \r\n {pageOptions.map((count, index) => (\r\n \r\n {pageConfig.pageNumber === count + 1 ? (\r\n {count + 1}\r\n ) : (\r\n // eslint-disable-next-line jsx-a11y/anchor-is-valid\r\n \r\n tableChange(true, {pageNumber: count + 1})\r\n }\r\n >\r\n {' '}\r\n {count + 1}\r\n \r\n )}\r\n \r\n ))}\r\n
\r\n )}\r\n \r\n tableChange(true, {pageNumber: pageConfig.pageNumber + 1})\r\n }\r\n disabled={\r\n pageConfig.pageNumber === (pageConfig.totalPagesCount ? pageConfig.totalPagesCount : pageData.totalPagesCount)\r\n }\r\n className='pagination-btn'\r\n >\r\n \r\n \r\n {' '}\r\n \r\n tableChange(true, {\r\n pageNumber: (pageConfig.totalPagesCount ? pageConfig.totalPagesCount : pageData.totalPagesCount),\r\n })\r\n }\r\n disabled={\r\n pageConfig.pageNumber === (pageConfig.totalPagesCount ? pageConfig.totalPagesCount : pageData.totalPagesCount)\r\n }\r\n className='pagination-btn'\r\n >\r\n \r\n \r\n
\r\n {\r\n tableChange(true, {\r\n pageNumber: 1,\r\n pageSize: Number(e.target.value),\r\n }, true);\r\n }}\r\n >\r\n {[10, 20, 50, 100].map((pageSize) => (\r\n \r\n ))}\r\n \r\n
\r\n {isNaN(pageConfig.pageNumber) ? null : (\r\n \r\n {pageConfig.totalItemsCount ? pageConfig.totalItemsCount : pageData.totalItemsCount} رکورد | صفحه{' '}\r\n {pageConfig.pageNumber} از {pageConfig.totalPagesCount ? pageConfig.totalPagesCount : pageData.totalPagesCount}\r\n \r\n )}\r\n
\r\n ) : null}\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default Table;\r\n","import TicketDepartmentList from \"../Model/TicketDepartmentModel\";\r\n\r\nfunction TicketDepartment(value) {\r\n let result = TicketDepartmentList.find((item) => item.value ===value);\r\n return result.name\r\n }\r\n export default TicketDepartment;\r\n\r\n\r\n export function GeTicketDepartmentKey(name) {\r\n let result = TicketDepartmentList.find((item) => item.name === name);\r\n return result.value\r\n }","import { connect, useSelector } from 'react-redux';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { HeaderContent, MainContent, WrapperLayout } from '../../../Component/Kit/Layout';\r\nimport Table from '../../../Component/Shared/Table/Table';\r\nimport { AdminDetailAction } from '../../../Actions/AdminDetail'\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport { StyledButton } from '../../../Component/Kit/Button';\r\nimport { IdentityRoleService } from '../../../Utility/Services/IdentityRoleService';\r\nimport TicketDepartment from '../../../Utility/Services/TicketDepartmentService';\r\n\r\nexport const AdminsList = ({ history }) => {\r\n const [adminsListItem, setAdminsListItem] = useState({});\r\n const dispatch = useDispatch();\r\n const currentAdminUser = useSelector(state => state.bootstrapper.data);\r\n const tableConfig = {\r\n header: {\r\n fullName: \"نام و نام خانوادگی\",\r\n userName: \"نام کاربری\",\r\n isSuspendedIcon: \"وضعیت بلاک بودن\",\r\n roleName: \"رول ها\",\r\n department2: \"دپارتمان\",\r\n mobile: \"موبایل\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n condition: () => {\r\n return (currentAdminUser?.roleId == 1);\r\n },\r\n },\r\n },\r\n }\r\n\r\n const tableActions = (items) => {\r\n // let adminDetails = adminsListItem.data.find((adminItem) => adminItem.adminId === items.adminId);\r\n dispatch(AdminDetailAction(items.data));\r\n history.push(`/admins/view/${items.data.adminId}`);\r\n }\r\n\r\n const clickHandler = () => {\r\n history.push('/admins/addUserAdmin')\r\n }\r\n\r\n useEffect(() => {\r\n ApiClient.Get(Urls.AdminsManagment())\r\n .then(res => {\r\n let resData = res.result;\r\n resData.map((item) => {\r\n let roleName = [];\r\n if (item.department !== 0)\r\n item.department2 = TicketDepartment(item.department);\r\n\r\n item.isSuspendedIcon = item.isSuspended\r\n ? ``\r\n : ``;\r\n\r\n item.roleIds.forEach(\r\n (value, index) => roleName[index] = IdentityRoleService(parseInt(value))\r\n );\r\n item.roleName = roleName.join()\r\n return item;\r\n })\r\n setAdminsListItem(resData)\r\n })\r\n }, [currentAdminUser])\r\n\r\n return (\r\n \r\n
\r\n {currentAdminUser?.roleId == 1 &&\r\n \r\n \r\n ایجاد کاربر ادمین\r\n \r\n \r\n }\r\n\r\n \r\n\r\n
\r\n
\r\n
لیست ادمین‌های پنل مدیریتی
\r\n \r\n مدیریت و ایجاد ادمین‌ها از این صفحه امکان‌پذیر است.\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default connect()(AdminsList)\r\n","export const AdminDetailAction = (data) => ({\r\n type: 'ADMIN_DETAILS',\r\n data\r\n})\r\n","\r\nimport styled from \"styled-components\";\r\nimport Col from \"./../../Component/Kit/Column\";\r\nimport { StyledForm } from \"../../Component/Kit/Form\";\r\n\r\nexport const DashboardLayuot = styled.div`\r\n .bulet {\r\n width: 1rem;\r\n height: 1rem;\r\n border-radius: 100%;\r\n background: #3F3D56;\r\n margin-left: 5px;\r\n display: inline-block;\r\n }\r\n\r\n .providerCard {\r\n background: #fff;\r\n min-height: 120px;\r\n cursor: pointer;\r\n padding: 12px;\r\n border-radius: .2rem;\r\n box-shadow: 0 3px 16px #d9d9d9;\r\n margin-bottom: 12px;\r\n\r\n .inner-container {\r\n border-radius: .4rem;\r\n height: 50px;\r\n background: #eee;\r\n width: 100%;\r\n padding: 10px;\r\n\r\n &.healthy {\r\n background: #d2f3c7;\r\n color: #34741e;\r\n }\r\n\r\n &.unhealthy {\r\n background: #f3c7c7;\r\n color: #741e1e;\r\n }\r\n\r\n &.unknown {\r\n background: #f3e0c7;\r\n color: #743f1e;\r\n }\r\n\r\n img {\r\n height: 40px;\r\n margin-bottom: 5px;\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const StyledNationalCode = styled(Col)`\r\n`;\r\n\r\nexport const StyledButtonAdd = styled.div`\r\n color : white;\r\n width: 137px;\r\n height: 36px;\r\n border-radius: 18px;\r\n background-color: #008840;\r\n font-family: IRANSans;\r\n font-size: 14px;\r\n font-weight: normal;\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: 1.86;\r\n letter-spacing: normal;\r\n text-align: center;\r\n color: #ffffff;\r\n`;\r\n\r\nexport const ChangePasswordForm = styled(StyledForm)`\r\n box-shadow:none;\r\n height : 250px;\r\n padding : 0px;\r\n margin-top : 25px;\r\n`;\r\n","import React from \"react\";\r\n\r\nfunction NewTicketIcon(props) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default NewTicketIcon;\r\n\r\n\r\n","import React from \"react\";\r\n\r\nfunction PendingLineIcon(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default PendingLineIcon;\r\n","import React from \"react\";\r\n\r\nfunction PendingTemplatesIcon(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default PendingTemplatesIcon;\r\n\r\n","import React from \"react\";\r\n\r\nfunction PendingGuestForApproveIcon(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default PendingGuestForApproveIcon;\r\n","import React from 'react'\r\n\r\nfunction PendingManualPaymentsIcon(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default PendingManualPaymentsIcon;","\r\nimport * as React from \"react\"\r\n\r\nfunction TechnicalTicketsIcon(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default TechnicalTicketsIcon;","import * as React from \"react\"\r\n\r\nfunction UserAnswerdTicketIcon(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default UserAnswerdTicketIcon;","\r\nimport * as React from \"react\"\r\n\r\nfunction InProgressTicketsIcon(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\nexport default InProgressTicketsIcon;\r\n","\r\nimport * as React from \"react\"\r\n\r\nfunction FinancialTicketsIcon(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FinancialTicketsIcon;","// import React from 'react'\r\n\r\nexport const SeprateNumberWithComma = (number) => {\r\n return number?.toString()?.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\r\n}\r\n\r\n\r\n","export function groupBy(items, keyGetter) {\r\n const map = new Map();\r\n items.forEach((item) => {\r\n const key = keyGetter(item);\r\n const collection = map.get(key);\r\n if (!collection) {\r\n map.set(key, [item]);\r\n } else {\r\n collection.push(item);\r\n }\r\n });\r\n return map;\r\n}\r\n","import React from \"react\";\r\n\r\nfunction Disconnected(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n );\r\n}\r\n\r\nexport default Disconnected;\r\n","import Disconnected from \"../../../Component/Icon/_Disconnected\";\r\nimport React from \"react\";\r\nimport {useHistory} from \"react-router-dom\";\r\nimport {Loader} from \"../../../Component/Shared/Loader\";\r\n\r\nexport const ProviderList = (props) => {\r\n const history = useHistory();\r\n const {data} = props;\r\n const checkProvideState = (state) => {\r\n switch (state) {\r\n case 1 :\r\n return \"healthy\"\r\n case 2 :\r\n return 'unknown'\r\n case 3 :\r\n return 'unhealthy'\r\n default:\r\n return \"unhealthy\"\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n data ?\r\n data.map((provider, index) =>\r\n
history.push('/providers/state')}>\r\n {\r\n }}\r\n >\r\n
\r\n
\r\n
{provider[0].name}
\r\n {!provider[0].isAvailable && }\r\n
\r\n
{provider[0].prefix}
\r\n
\r\n
\r\n
\r\n \r\n
همراه اول
\r\n {provider[0].delay} ثانیه تاخیر\r\n\r\n
\r\n
\r\n
\r\n \r\n
ایرانسل
\r\n {provider[1].delay} ثانیه تاخیر\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n )\r\n : <>\r\n \r\n \r\n }\r\n \r\n );\r\n}\r\n","import React, {useCallback, useEffect, useState} from 'react';\r\nimport {DashboardLayuot} from './styles';\r\nimport {Badge} from \"react-bootstrap\";\r\nimport Collapse from 'react-bootstrap/Collapse';\r\n\r\nimport moment from 'moment-jalaali';\r\nimport {connect} from 'react-redux';\r\nimport {useHistory} from 'react-router-dom';\r\n\r\nimport {HeaderContent, WrapperLayout,} from '../../Component/Kit/Layout';\r\nimport ApiClient from '../../Requester/ApiClient';\r\nimport Urls from '../../Requester/Urls';\r\nimport {RoleCanActivate} from '../../Utility/Services/roleCanActivate';\r\nimport {StyledButton} from '../../Component/Kit/Button';\r\nimport {Loader} from '../../Component/Shared/Loader';\r\n\r\nimport NewTicketIcon from '../../Component/Icon/NewTicketIcon';\r\nimport PendingLineIcon from '../../Component/Icon/PendingLineIcon';\r\nimport PendingTemplatesIcon from '../../Component/Icon/PendingTemplatesIcon';\r\nimport PendingGuestForApproveIcon from '../../Component/Icon/PendingGuestForApproveIcon';\r\nimport PendingManualPaymentsIcon from '../../Component/Icon/PendingManualPaymentsIcon';\r\nimport TechnicalTicketsIcon from \"../../Component/Icon/TechnicalTicketsIcon\";\r\nimport UserAnswerdTicketIcon from '../../Component/Icon/UserAnswerdTicketIcon';\r\nimport InProgressTicketsIcon from '../../Component/Icon/InProgressTicketsIcon';\r\nimport FinancialTicketsIcon from '../../Component/Icon/FinancialTicketsIcon';\r\nimport {SeprateNumberWithComma} from '../../Utility/Services/SeprateNumberWithComma';\r\nimport {SystemLineProviderEnum} from \"../../Utility/Model/provider-enum.model\";\r\nimport {groupBy} from \"../../Utility/method/groupBy\";\r\nimport {ProviderList} from \"./provider-list\";\r\n\r\nconst Dashboard = ({adminProfile}) => {\r\n const [loading, setLoading] = useState(true);\r\n const [open, setOpen] = useState(false);\r\n const [dashboardItems, setDashboardItems] = useState({});\r\n const [monitoringData, setMonitoringData] = useState(null);\r\n const [loadingFlag, setLoadingFlag] = useState(false);\r\n const [ticketList, setTicketList] = useState([]);\r\n const [otherList, setOtherList] = useState([]);\r\n\r\n const history = useHistory();\r\n const callApi = useCallback(() => {\r\n ApiClient.Get(Urls.GetDashboard()).then((response) => {\r\n setDashboardItems(response.result);\r\n setLoading(false);\r\n });\r\n ApiClient.Get(Urls.GetMonitoringProviderStatus(), {}).then((response) => {\r\n response.result.map((a, index) => {\r\n a.name = SystemLineProviderEnum.find(d => d.value === a.providerId).name;\r\n a.prefix = SystemLineProviderEnum.find(d => d.value === a.providerId).prefix;\r\n })\r\n\r\n const data = Array.from(groupBy(response.result, item => item.providerId).values())\r\n setMonitoringData(data)\r\n setLoading(false);\r\n });\r\n }, []);\r\n\r\n\r\n const ticketItems = [\r\n {\r\n name: 'openTicketCount',\r\n title: 'تیکت‌های جدید',\r\n link: '/ticket/list?status=1',\r\n icon: ,\r\n },\r\n {\r\n name: 'userAnswerdTicketCount',\r\n title: 'تیکت‌های با پاسخ کاربر',\r\n link: '/ticket/list?status=3',\r\n icon: ,\r\n },\r\n {\r\n name: 'inProgressTicketsCount',\r\n title: 'تیکت های درحال بررسی',\r\n link: '/ticket/list?status=4',\r\n icon: ,\r\n },\r\n {\r\n name: 'notClosedTicketsCountForFinance',\r\n title: 'تیکت درحال بررسی مالی',\r\n link: '/ticket/list?department=3&status=4',\r\n icon: ,\r\n },\r\n {\r\n name: 'notClosedTicketsCountForTechnical',\r\n title: 'تیکت درحال بررسی فنی',\r\n link: '/ticket/list?department=2&status=4',\r\n icon: ,\r\n },\r\n /* {\r\n name: \"notClosedTicketsCountForTechnical\",\r\n title: 'تیکت دپارتمان فنی',\r\n link: '/ticket/list?department=2',\r\n icon: \r\n },\r\n {\r\n name: \"notClosedTicketsCountForSupport\",\r\n title: 'تیکت دپارتمان پشتیبانی',\r\n link: '/ticket/list?department=1',\r\n icon: \r\n }, */\r\n ];\r\n\r\n const listItems = [\r\n {\r\n name: 'pendingFastSendTemplatesCount',\r\n title: 'تایید قالب های در انتظار',\r\n link: '/fast-send/pending',\r\n icon: ,\r\n accessList: ['supporter'],\r\n },\r\n {\r\n name: 'pendingGuestCount',\r\n title: 'تایید مهمان های در انتظار',\r\n link: '/guests/finished',\r\n icon: ,\r\n accessList: ['supporter', 'sales'],\r\n },\r\n {\r\n name: 'pendingLinesCount',\r\n title: 'تایید خطوط در انتظار',\r\n link: '/line/user-lines/pending',\r\n icon: ,\r\n accessList: ['supporter'],\r\n },\r\n {\r\n name: 'pendingManualPaymentsCount',\r\n title: 'تایید پرداخت دستی',\r\n link: '/financial/manual-payment',\r\n icon: ,\r\n accessList: ['supporter'],\r\n },\r\n {\r\n name: 'pendingSendViaTowerRequestsCount',\r\n title: 'ارسال از دکل',\r\n link: '/send-tower/pending',\r\n icon: ,\r\n },\r\n {\r\n name: 'pendingSettlementsCount',\r\n title: 'درخواست های تسویه',\r\n link: '/sale-cooperation/settlement',\r\n icon: ,\r\n },\r\n\r\n {\r\n name: 'pendingUserToVerifyCompletionRequirementCount',\r\n title: 'تایید اطلاعات کاربران',\r\n link: '/users/verify-info',\r\n icon: ,\r\n accessList: ['supporter', 'sales'],\r\n },\r\n\r\n {\r\n name: 'pendingUserServiceLinesCount',\r\n title: 'خدماتی سازی خطوط',\r\n link: '/line/user-service-line/pending',\r\n icon: ,\r\n accessList: ['supporter', 'sales'],\r\n },\r\n ];\r\n\r\n const clickHandler = (target) => {\r\n history.push(target);\r\n };\r\n\r\n const updateHandler = () => {\r\n callApi();\r\n setLoadingFlag(true);\r\n setTimeout(() => {\r\n setLoadingFlag(false);\r\n }, 30000);\r\n };\r\n\r\n useEffect(() => {\r\n callApi();\r\n if (adminProfile) {\r\n listItems.map((m) => {\r\n m.isShow = m.accessList\r\n ? RoleCanActivate(m.accessList, adminProfile.roleId)\r\n : true;\r\n return false;\r\n });\r\n ticketItems.map((m) => {\r\n m.isShow = m.accessList\r\n ? RoleCanActivate(m.accessList, adminProfile.roleId)\r\n : true;\r\n return false;\r\n });\r\n setTicketList(ticketItems);\r\n setOtherList(listItems);\r\n }\r\n const interval = setInterval(() => {\r\n callApi();\r\n }, 900000);\r\n return () => clearInterval(interval);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [adminProfile, callApi]);\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n آخرین بروزرسانی: \r\n {moment().format('HH:mm:ss')}\r\n
\r\n\r\n updateHandler()}\r\n disabled={loadingFlag}\r\n >\r\n بروزرسانی\r\n \r\n\r\n
\r\n {adminProfile?.roleId == 1 && (\r\n
\r\n \r\n فروش امروز: \r\n \r\n {dashboardItems.totalPaymentToday &&\r\n SeprateNumberWithComma(\r\n dashboardItems.totalPaymentToday\r\n )}{' '}\r\n ریال\r\n \r\n
\r\n )}\r\n
\r\n\r\n\r\n
\r\n
\r\n
{\r\n setOpen(!open)\r\n }}>\r\n وضعیت اپراتورها\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
تیکت‌ها
\r\n
\r\n {loading === true ? (\r\n \r\n ) : (\r\n dashboardItems &&\r\n ticketList.map((item) =>\r\n item.isShow ? (\r\n
\r\n clickHandler(item.link)}\r\n >\r\n
{item.icon}
\r\n

\r\n {item.title}\r\n {\r\n\r\n dashboardItems[item.name] > 0 ?\r\n\r\n \r\n\r\n\r\n {dashboardItems[item.name]}\r\n\r\n\r\n \r\n\r\n :\r\n\r\n dashboardItems[item.name] === 0 ?\r\n <>\r\n \r\n \r\n : <>\r\n\r\n }\r\n

\r\n\r\n
\r\n
\r\n ) : null\r\n )\r\n )}\r\n
\r\n
\r\n\r\n
\r\n
تاییدیه‌ها
\r\n
\r\n {loading === true ? (\r\n \r\n ) : (\r\n dashboardItems &&\r\n otherList.map((item) =>\r\n item.isShow ? (\r\n
\r\n clickHandler(item.link)}\r\n >\r\n
{item.icon}
\r\n

\r\n {item.title}\r\n {\r\n\r\n dashboardItems[item.name] > 0 ?\r\n\r\n \r\n\r\n {dashboardItems[item.name]}\r\n\r\n\r\n \r\n\r\n :\r\n\r\n dashboardItems[item.name] === 0 ?\r\n <>\r\n \r\n \r\n : <>\r\n\r\n }\r\n\r\n\r\n

\r\n
\r\n
\r\n ) : null\r\n )\r\n )}\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {bootstrapper} = state;\r\n return {adminProfile: bootstrapper.data};\r\n}\r\n\r\nexport default connect(mapStateToProps)(Dashboard);\r\n","function DateConvert(item) {\r\n item = item?.toString() || '';\r\n if (item?.length === 14) {\r\n let value = {\r\n year: item.slice(0, 4),\r\n month: item.slice(4, 6),\r\n day: item.slice(6, 8),\r\n hour: item.slice(8, 10),\r\n minute: item.slice(10, 12),\r\n second: item.slice(12, 14),\r\n };\r\n return `${value.hour}:${value.minute}:${value.second} | ${value.year}/${value.month}/${value.day}`;\r\n } else if (item?.length === 8) {\r\n let value = {\r\n year: item.slice(0, 4),\r\n month: item.slice(4, 6),\r\n day: item.slice(6, 8),\r\n };\r\n return `${value.year}/${value.month}/${value.day}`;\r\n }\r\n return \"\";\r\n}\r\n\r\nexport default DateConvert;\r\n","import React from \"react\";\r\n\r\nfunction CloseIcon() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default CloseIcon;","import React, { useContext, useEffect, useMemo, useRef, useState } from \"react\";\r\nimport styled, { ThemeContext } from \"styled-components\";\r\nimport CloseIcon from \"../Icon/CloseIcon\";\r\nimport Col from \"./Column\";\r\n\r\nconst StyledModalContainer = styled.div`\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: center;\r\n display: flex;\r\n\r\n padding: 0px;\r\n width: 100vw;\r\n height: 100vh;\r\n left: 0;\r\n top: 0;\r\n position: fixed;\r\n\r\n opacity: 0;\r\n z-index: 1050;\r\n overflow: hidden;\r\n pointer-events: none;\r\n transition: all 0.2s ease-out;\r\n\r\n &.open {\r\n opacity: 1;\r\n pointer-events: all;\r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n }\r\n`;\r\n\r\nconst StyledModal = styled.div`\r\n border-radius: ${(props) => props.theme.borderRadius};\r\n background-color: transparent;\r\n flex-direction: column;\r\n align-items: center;\r\n display: flex;\r\n width: auto;\r\n height: auto;\r\n margin: auto;\r\n /* padding : 15px; */\r\n /* box-shadow : ${(props) => props.theme.shadow}; */\r\n /* margin-top: 154px; */\r\n @media screen and (max-width: 768px) {\r\n width: 96%;\r\n }\r\n`;\r\nconst Overlay = styled.div`\r\n background-color: rgba(0, 0, 0, 0.6);\r\n width: 100%;\r\n height: 100%;\r\n position: fixed;\r\n left: 0;\r\n top: 0;\r\n`\r\nconst Wrapper = styled.div`\r\n width: ${props => props.width === \"large\" ? \"800px\" : \" 588px\"};\r\n min-height: ${(props) => (`${props.size} === \"small\" ` ? \"auto\" : \"336px\")};\r\n box-shadow: 0px 3px 7px 0 rgba(0, 0, 0, 0.03);\r\n background-color: white !important;\r\n border-radius: 5px;\r\n position: relative;\r\n padding: 8px;\r\n z-index: 1;\r\n display: flex;\r\n flex-direction: column;\r\n @media screen and (max-width: 768px) {\r\n width: 98%;\r\n }\r\n`;\r\n\r\nconst Header = styled(Col)`\r\n height: 30px;\r\n background-color: #f8f9fc;\r\n margin-bottom: 4px ;\r\n /* border-bottom : ${(props) => props.theme.border}; */\r\n`;\r\n\r\nconst HeaderTitle = styled(Col)`\r\n height: 100%;\r\n justify-content: flex-start;\r\n font-family: IRANSans;\r\n font-size: 16px;\r\n font-weight: bold;\r\n line-height: 2;\r\n letter-spacing: normal;\r\n text-align: right;\r\n /* color: #999999; */\r\n`;\r\n\r\nconst HeaderAction = styled(Col)`\r\n height: 100%;\r\n justify-content: flex-end;\r\n\r\n svg {\r\n width: 11px;\r\n height: 11px;\r\n cursor: pointer;\r\n }\r\n`;\r\nconst Container = styled(Col)`\r\n text-align: right;\r\n flex-direction: column;\r\n @media screen and (max-width: 768px) {\r\n /* height: calc(100vh - 130px); */\r\n }\r\n`;\r\n\r\nconst Modal = (props) => {\r\n const theme = useContext(ThemeContext);\r\n const [show, setShow] = useState(props.visible);\r\n const {\r\n headerTitle,\r\n onCancel,\r\n onClose,\r\n } = props;\r\n /*\r\n onConfirm,\r\n onConfirm,\r\n confirmText,\r\n loading,\r\n disable\r\n */\r\n const ModalRef = useRef();\r\n\r\n const callBack = () => {\r\n if (props.onCancel) {\r\n setShow(false);\r\n if (onCancel) {\r\n return onCancel();\r\n } else if (onClose) {\r\n return onClose();\r\n } else {\r\n return null;\r\n }\r\n }\r\n };\r\n\r\n const OutSideClick = (e, ref, callback) => {\r\n if (ref && ref.current && callback) {\r\n if (!ref.current.contains(e.target)) {\r\n callback();\r\n }\r\n }\r\n };\r\n\r\n const ClickFunc = (e) => {\r\n OutSideClick(e, ModalRef, callBack);\r\n };\r\n\r\n useEffect(() => {\r\n setShow(props.visible);\r\n props.visible === true &&\r\n window.addEventListener(\"mousedown\", ClickFunc, false);\r\n\r\n return () => {\r\n props.visible === true &&\r\n window.removeEventListener(\"mousedown\", ClickFunc, false);\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.visible]);\r\n\r\n useMemo(() => {\r\n if (props.visible === true) {\r\n document.body.style.overflowY = \"hidden\";\r\n } else {\r\n document.body.style.overflowY = \"auto\";\r\n }\r\n }, [props.visible]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {headerTitle}\r\n \r\n\r\n \r\n {\r\n props.closable !== false &&\r\n \r\n }\r\n\r\n \r\n
\r\n\r\n \r\n {props.children}\r\n \r\n
\r\n
\r\n \r\n );\r\n\r\n};\r\n\r\nexport default Modal;\r\n","import { fastSendTemplateRejectDescription } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const FastSendTemplateRejectSchema = Yup.object().shape({\r\n fastSendTemplateRejectDescription,\r\n});\r\n","import { Formik } from \"formik\";\r\nimport React from \"react\";\r\nimport { toast } from \"react-toastify\";\r\nimport Swal from \"sweetalert2\";\r\nimport { StyledButton } from \"../../../Component/Kit/Button\";\r\nimport { StyledForm, StyledTextArea } from \"../../../Component/Kit/Form\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport { FastSendTemplateStatus } from \"../../../Utility/Model/fast-send-template.model\";\r\nimport { FastSendTemplateRejectSchema } from \"../../../Utility/Validation/Schema/FastSendTemplateRejectSchema\";\r\n\r\nconst fastSendTemlateModalTitle = {\r\n title: \"عنوان قالب\",\r\n userName: 'نام کاربری',\r\n createdAt: \"تاریخ ایجاد\",\r\n templateText: \"متن قالب\",\r\n}\r\n\r\nfunction FastSendTemplatePendingModal({ data, dataChange, modalReject, rejectHandler, onCloseModal }) {\r\n\r\n const templateHandler = (item) => {\r\n if (item === FastSendTemplateStatus.IsVerified) {\r\n // TODO remove Swall if its unneccesary\r\n Swal.fire({\r\n title: \"آیا مطمئن هستید؟\",\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n ApiClient.Put(Urls.putFastSendTemplates(data.id), { status: item })\r\n .then(res => {\r\n dataChange(true)\r\n toast.success(\"تغییرات با موفقیت ثبت شد.\");\r\n })\r\n }\r\n })\r\n } else if (item === FastSendTemplateStatus.UnVerified) {\r\n rejectHandler(true)\r\n }\r\n }\r\n return (\r\n <>\r\n {modalReject ? (\r\n {\r\n // TODO remove Swall if its unneccesary\r\n Swal.fire({\r\n title: \"آیا مطمئن هستید؟\",\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n ApiClient.Put(Urls.putFastSendTemplates(data.id), {\r\n // status: 3,\r\n status: FastSendTemplateStatus.UnVerified,\r\n description: values.fastSendTemplateRejectDescription\r\n }).then(res => {\r\n if (res.result) {\r\n dataChange(true)\r\n toast.success(\"تغییرات با موفقیت ثبت شد.\");\r\n }\r\n })\r\n }\r\n })\r\n }}\r\n onReset={(values, formikBag) => {\r\n onCloseModal(false)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n {\r\n const str = e.target.value.trim() !== '' ? e.target.value : '';\r\n formik.setFieldValue(\"fastSendTemplateRejectDescription\", str)\r\n }}\r\n />\r\n
\r\n onCloseModal(false)}\r\n >\r\n بستن\r\n \r\n \r\n عدم تایید\r\n \r\n
\r\n \r\n )}\r\n \r\n ) : (\r\n <>\r\n
\r\n
    \r\n {\r\n fastSendTemlateModalTitle && data &&\r\n Object.entries(fastSendTemlateModalTitle).map(([key, value]) => (\r\n\r\n
  • \r\n
    \r\n {value}: \r\n
    \r\n
    \r\n {data[key]}\r\n
    \r\n
  • \r\n ))\r\n }\r\n
\r\n
\r\n
\r\n onCloseModal(false)}\r\n >\r\n بستن\r\n \r\n templateHandler(FastSendTemplateStatus.UnVerified)}>\r\n عدم تایید\r\n \r\n templateHandler(FastSendTemplateStatus.IsVerified)}>\r\n تایید\r\n \r\n
\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default FastSendTemplatePendingModal;\r\n","import React, { useEffect, useState } from 'react';\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport { PageTitleLayout } from \"../../../Component/Kit/Layout\";\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport Modal from \"../../../Component/Kit/Modal\"\r\nimport FastSendTemplatePendingModal from \"./pending-modal\";\r\nimport { FastSendTemplateStatus } from '../../../Utility/Model/fast-send-template.model';\r\n\r\nconst FastSendTemplatesPending = () => {\r\n const [pendingData, setPendingData] = useState([])\r\n const [isModal, setIsModal] = useState(false)\r\n const [modalData, setModalData] = useState({})\r\n const [isReject, setIsReject] = useState(false)\r\n\r\n const tableActions = (item) => {\r\n if (item.actionName === 'view') {\r\n let data = item.data;\r\n setModalData(data)\r\n setIsModal(true)\r\n }\r\n };\r\n\r\n const tableConfig = {\r\n header: {\r\n userName: \"نام کاربری\",\r\n id: \"شناسه قالب\",\r\n title: \"عنوان قالب\",\r\n templateText: \"متن قالب\",\r\n createdAt: \"تاریخ ایجاد\",\r\n },\r\n tooltipTitle: ['templateText'],\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n },\r\n\r\n },\r\n };\r\n\r\n useEffect(() => {\r\n getFastSendTemplatePendingList();\r\n }, [])\r\n\r\n const modalDataChange = (item) => {\r\n if (item) getFastSendTemplatePendingList()\r\n }\r\n const getFastSendTemplatePendingList = () => {\r\n let params = {\r\n statuses: FastSendTemplateStatus.Pending\r\n }\r\n ApiClient.Get(Urls.getFastSendTemplates(), params)\r\n .then(res => {\r\n let data = res.result;\r\n data.items.map(m => {\r\n m.createdAt = DateConvert(m.createdAt);\r\n return m\r\n })\r\n setPendingData(data)\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
قالب‌ ماژول ارسال سریع منتظر تایید
\r\n \r\n
\r\n \r\n {\r\n setIsModal(false);\r\n setIsReject(false)\r\n }}\r\n visible={isModal}\r\n onCancel={() => {\r\n setIsModal(false);\r\n setIsReject(false)\r\n }}\r\n >\r\n setIsReject(event)}\r\n onCloseModal={(e) => {\r\n setIsModal(e);\r\n setIsReject(e)\r\n }} />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default FastSendTemplatesPending;\r\n","import { TemplateVerifyStatus, TemplateType } from \"../Model/fast-send-template.model\";\r\nfunction VerifyStatusService(value) {\r\n let result = TemplateVerifyStatus.find((item) => item.value === value);\r\n return result.name;\r\n}\r\n\r\nfunction TemplateTypeService(value) {\r\n let result = TemplateType.find((item) => item.value === value);\r\n return result.name;\r\n}\r\n\r\nexport { VerifyStatusService, TemplateTypeService };","import { Formik } from \"formik\";\r\nimport React from \"react\";\r\nimport { toast } from \"react-toastify\";\r\nimport { StyledButton } from \"../../../Component/Kit/Button\";\r\nimport { StyledForm, StyledTextArea } from \"../../../Component/Kit/Form\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport { FastSendTemplateStatus } from \"../../../Utility/Model/fast-send-template.model\";\r\nimport { FastSendTemplateRejectSchema } from \"../../../Utility/Validation/Schema/FastSendTemplateRejectSchema\";\r\n\r\nconst fastSendTemlateModalTitle = {\r\n title: \"عنوان قالب\",\r\n userName: 'نام کاربری',\r\n verifyStatusName: \"وضعیت قالب\",\r\n createdAt: \"تاریخ ایجاد\",\r\n templateText: \"متن قالب\",\r\n}\r\n\r\nfunction FastSendTemplateNotPendingModal({ data, dataChange, modalReject, rejectHandler, onCloseModal }) {\r\n\r\n const templateHandler = (item) => {\r\n if (item === FastSendTemplateStatus.UnVerified) {\r\n ApiClient.Put(Urls.putFastSendTemplates(data.id), { status: FastSendTemplateStatus.IsVerified })\r\n .then(res => {\r\n dataChange(true)\r\n onCloseModal(false)\r\n toast.success(\"تغییرات با موفقیت ثبت شد.\");\r\n })\r\n } else if (item === FastSendTemplateStatus.IsVerified) {\r\n rejectHandler(true)\r\n }\r\n }\r\n return (\r\n <>\r\n {modalReject ? (\r\n {\r\n const payload = {\r\n description: values.fastSendTemplateRejectDescription,\r\n status: FastSendTemplateStatus.UnVerified\r\n }\r\n ApiClient.Put(Urls.putFastSendTemplates(data.id), payload)\r\n .then(res => {\r\n dataChange(true)\r\n toast.success(\"تغییرات با موفقیت ثبت شد.\");\r\n onCloseModal(false)\r\n })\r\n }}\r\n onReset={(values, formikBag) => {\r\n onCloseModal(false)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n {\r\n const str = e.target.value.trim() !== '' ? e.target.value : '';\r\n formik.setFieldValue(\"fastSendTemplateRejectDescription\", str)\r\n }}\r\n />\r\n
\r\n onCloseModal(false)}\r\n >\r\n بستن\r\n \r\n \r\n عدم تایید\r\n \r\n
\r\n \r\n )}\r\n \r\n ) : (\r\n <>\r\n
\r\n
    \r\n {\r\n fastSendTemlateModalTitle && data &&\r\n Object.entries(fastSendTemlateModalTitle).map(([key, value]) => (\r\n\r\n
  • \r\n
    \r\n {value}: \r\n
    \r\n
    \r\n {data[key]}\r\n
    \r\n
  • \r\n ))\r\n }\r\n
\r\n
\r\n\r\n {/*
\r\n

{data.title}

\r\n
\r\n

{data.templateText}

\r\n
*/}\r\n
\r\n onCloseModal(false)}\r\n >\r\n بستن\r\n \r\n templateHandler(data.verifyStatus)}\r\n btnStyle={data.verifyStatus === FastSendTemplateStatus.IsVerified ? \"redBtn\" : \"greenBtn\"}\r\n >\r\n {data.verifyStatus === FastSendTemplateStatus.IsVerified ? \"عدم تایید\" : \"تایید\"}\r\n \r\n
\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default FastSendTemplateNotPendingModal;\r\n","import React, { useCallback, useEffect, useState } from 'react';\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport { PageTitleLayout } from \"../../../Component/Kit/Layout\";\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport Modal from \"../../../Component/Kit/Modal\"\r\nimport { VerifyStatusService } from \"../../../Utility/Services/fast-send-template\";\r\nimport FastSendTemplateNotPendingModal from \"./not-pending-modal\";\r\nimport {useHistory, useLocation} from \"react-router-dom\";\r\nimport { ConvertQueryString } from \"../../../Utility/Services/convert-query-string\";\r\nimport { FastSendTemplateStatus } from '../../../Utility/Model/fast-send-template.model';\r\n\r\n\r\nconst FastSendTemplatesNotPending = () => {\r\n const location = useLocation()\r\n const history = useHistory();\r\n const [notPendingData, setNotPendingData] = useState([])\r\n const [isModal, setIsModal] = useState(false)\r\n const [modalData, setModalData] = useState({})\r\n const [isReject, setIsReject] = useState(false)\r\n const tableConfig = {\r\n header: {\r\n userName: \"نام کاربری\",\r\n id: \"شناسه قالب\",\r\n title: \"عنوان قالب\",\r\n templateText: \"متن قالب\",\r\n verifyStatusName: \"وضعیت قالب\",\r\n createdAt: \"تاریخ ایجاد\",\r\n },\r\n tooltipTitle: ['templateText'],\r\n actions: {\r\n edit: {\r\n icon: 'fa fa-user',\r\n },\r\n view: {\r\n icon: \"fa fa-eye\",\r\n },\r\n\r\n },\r\n mode: [\"filter\", \"search\"],\r\n filters: [\"notPendingTemplateStatus\"],\r\n\r\n };\r\n\r\n const tableActions = (item) => {\r\n if (item.actionName === 'edit') {\r\n history.push(`/userDetail/${item.data.userId}/profile`)\r\n }\r\n if (item.actionName === 'view') {\r\n let data = item.data;\r\n setModalData(data)\r\n setIsModal(true)\r\n }\r\n };\r\n\r\n const modalDataChange = (item) => {\r\n if (item) getFastSendTemplateNotPendingList()\r\n }\r\n\r\n const getFastSendTemplateNotPendingList = useCallback(() => {\r\n const status = [FastSendTemplateStatus.IsVerified, FastSendTemplateStatus.UnVerified]\r\n let params = {\r\n ...ConvertQueryString(location.search),\r\n statuses: status.join(',')\r\n }\r\n ApiClient.Get(Urls.getFastSendTemplates(), params)\r\n .then(res => {\r\n let data = res.result;\r\n data.items.map(m => {\r\n m.createdAt = DateConvert(m.createdAt);\r\n m.verifyStatusName = VerifyStatusService(m.verifyStatus);\r\n return m;\r\n })\r\n setNotPendingData(data)\r\n })\r\n }, [location.search])\r\n\r\n useEffect(() => {\r\n getFastSendTemplateNotPendingList()\r\n }, [location.search, getFastSendTemplateNotPendingList])\r\n\r\n return (\r\n <>\r\n \r\n
قالب‌ ماژول ارسال سریع
\r\n \r\n
\r\n \r\n {\r\n setIsModal(false);\r\n setIsReject(false)\r\n }}\r\n visible={isModal}\r\n onCancel={() => {\r\n setIsModal(false);\r\n setIsReject(false)\r\n }}\r\n >\r\n setIsReject(event)}\r\n onCloseModal={(e) => {\r\n setIsModal(e);\r\n setIsReject(e)\r\n }} />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default FastSendTemplatesNotPending;\r\n","import React, { useEffect } from 'react'\r\nimport { MainContent } from \"../../Component/Kit/Layout\";\r\nimport FastSendTemplatesPending from \"./pending/template-pending\";\r\nimport FastSendTemplatesNotPending from \"./not-pending/template-not-pending\";\r\nimport { NavLink, Route, Switch, useHistory, useLocation } from \"react-router-dom\";\r\n\r\nconst FastSendTemplateList = ({ match }) => {\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n if (location.pathname === `${match.url}`) {\r\n history.push(`${match.url}/pending`)\r\n }\r\n }, [])\r\n return (\r\n <>\r\n \r\n
    \r\n
  • \r\n \r\n منتظر تایید\r\n \r\n
  • \r\n
  • \r\n \r\n تعیین وضعیت شده\r\n \r\n
  • \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default FastSendTemplateList\r\n","export const TowerStatusList = [\r\n {name: 'در حال بررسی', value: 1},\r\n {name: 'تایید ارسال', value: 3},\r\n {name: 'عدم تایید', value: 2},\r\n {name: 'پرداخت شده', value: 5},\r\n {name: 'آماده ارسال', value: 6},\r\n {name: 'در حال بررسی فیش', value: 4},\r\n {name: 'ارسال شده', value:7},\r\n {name: 'منقضی شده', value:8},\r\n];\r\n\r\nexport const TowerOperatorList = [\r\n {name: 'همراه اول', value: 1},\r\n {name: 'ایرانسل', value: 2},\r\n {name: 'رایتل', value: 3},\r\n {name: 'تالیا', value: 4},\r\n];\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {PageTitleLayout} from \"../../../Component/Kit/Layout\";\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport {useHistory, useLocation} from \"react-router-dom\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport {ConvertQueryString} from \"../../../Utility/Services/convert-query-string\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport {TowerOperatorList, TowerStatusList} from \"../../../Utility/Model/send-tower.model\";\r\n\r\nexport function SendTowerPending(){\r\n const [requests, setRequests] = useState({});\r\n const location = useLocation();\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n ApiClient.Get(Urls.getSendTowerPending(), ConvertQueryString(location.search))\r\n .then(res => {\r\n res.result.items.map((item) => {\r\n item.createdAt = DateConvert(item.createdAt);\r\n item.firstSendAt = DateConvert(item.firstSendAt);\r\n item.totalPrice = item.totalPrice?.toLocaleString('fa-IR')\r\n item.operatorName = TowerOperatorList.find(a => a.value == item.operatorId)?.name\r\n item.stateName = TowerStatusList.find(a => a.value == item.state)?.name\r\n })\r\n setRequests(res.result)\r\n })\r\n }, [location.search])\r\n const tableConfig = {\r\n header: {\r\n userName: \"نام کاربری\",\r\n recipientsCount: 'تعداد مخاطبین',\r\n totalPrice: \"مبلغ کل\",\r\n operatorName: \"نام اپراتور\",\r\n createdAt: \"تاریخ ایجاد\",\r\n firstSendAt: \"زمان اولین ارسال\",\r\n stateName: \"وضعیت\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n }\r\n },\r\n };\r\n const tableActions = (item) => {\r\n if (item.actionName === 'view') {\r\n history.push(`single/${item.data.id}`)\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
ارسال از دکل
\r\n در اینجا می‌توانید درخواست های در حال انتظار را مشاهد نمایید.\r\n
\r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport {MainContent, PageTitleLayout} from \"../../../Component/Kit/Layout\";\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport {useHistory, useLocation} from \"react-router-dom\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport {ConvertQueryString} from \"../../../Utility/Services/convert-query-string\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport {TowerOperatorList, TowerStatusList} from \"../../../Utility/Model/send-tower.model\";\r\n\r\nexport function SendTowerNotPending(){\r\n const [requests, setRequests] = useState({});\r\n const location = useLocation();\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n ApiClient.Get(Urls.getSendTowerNotPending(), ConvertQueryString(location.search))\r\n .then(res => {\r\n res.result.items.map((item) => {\r\n item.createdAt = DateConvert(item.createdAt);\r\n item.firstSendAt = DateConvert(item.firstSendAt);\r\n item.totalPrice = item.totalPrice?.toLocaleString('fa-IR')\r\n item.operatorName = TowerOperatorList.find(a => a.value == item.operatorId)?.name\r\n item.stateName = TowerStatusList.find(a => a.value == item.state)?.name\r\n })\r\n setRequests(res.result)\r\n })\r\n }, [location.search])\r\n const tableConfig = {\r\n header: {\r\n userName: \"نام کاربری\",\r\n recipientsCount: 'تعداد مخاطبین',\r\n totalPrice: \"مبلغ کل\",\r\n operatorName: \"نام اپراتور\",\r\n createdAt: \"تاریخ ایجاد\",\r\n firstSendAt: \"زمان اولین ارسال\",\r\n stateName: \"وضعیت\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n }\r\n },\r\n };\r\n const tableActions = (item) => {\r\n if (item.actionName === 'view') {\r\n history.push(`single/${item.data.id}`)\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
ارسال از دکل
\r\n در اینجا می‌توانید درخواست های تعیین وضعیت شده را مشاهد نمایید.\r\n
\r\n \r\n \r\n )\r\n}","import {NavLink, Route, Switch, useHistory, useLocation} from \"react-router-dom\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport {MainContent} from \"../../Component/Kit/Layout\";\r\nimport {SendTowerPending} from \"./Pending\";\r\nimport {SendTowerNotPending} from \"./NotPending\";\r\n\r\nconst SendTower = ({ match }) => {\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n if (location.pathname === `${match.url}`) {\r\n history.push(`${match.url}/pending`)\r\n }\r\n }, [])\r\n return (\r\n <>\r\n \r\n
    \r\n
  • \r\n \r\n منتظر تایید\r\n \r\n
  • \r\n
  • \r\n \r\n تعیین وضعیت شده\r\n \r\n
  • \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default SendTower\r\n","import { Formik } from 'formik'\r\nimport React, { useEffect, useState } from 'react'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { toast } from 'react-toastify'\r\nimport BackToPage from '../../../Component/Kit/back'\r\nimport { StyledButton } from '../../../Component/Kit/Button'\r\nimport { StyledForm, StyledInput, StyledTextArea } from '../../../Component/Kit/Form'\r\nimport { HeaderContent, MainContent, PageTitleLayout, WrapperLayout } from '../../../Component/Kit/Layout'\r\nimport ApiClient from '../../../Requester/ApiClient'\r\nimport Urls from '../../../Requester/Urls'\r\nimport { Loader } from '../../../Component/Shared/Loader';\r\n\r\nexport const AddReturnInvoice = (props) => {\r\n\r\n const [singleInvoice, setSingleInvoice] = useState({});\r\n const [creditCount, setCreditCount] = useState();\r\n const [loading, setLoading] = useState(true);\r\n const history = useHistory();\r\n let searchItems = props.history.location.search;\r\n searchItems = searchItems.replace(\"?\", \"\");\r\n const params = searchItems.split('&');\r\n const returnObj = {\r\n invoiceId: params[0].replace(\"invoiceId=\", \"\"),\r\n userId: params[1].replace(\"userId=\", \"\"),\r\n };\r\n\r\n const baseUrl = Urls.GetOfficialInvoices(returnObj.invoiceId)\r\n\r\n useEffect(() => {\r\n const parameter = {\r\n \"isReturn\": false\r\n }\r\n ApiClient.Get(baseUrl, parameter).then((res) => {\r\n if (res?.result){\r\n setSingleInvoice(res.result.details[0]);\r\n }\r\n ApiClient.Get(Urls.GetUserCreditCount(returnObj.userId)).then((res) => {\r\n setCreditCount(res.result);\r\n setLoading(false);\r\n });\r\n });\r\n }, [setSingleInvoice, setLoading, setCreditCount , searchItems])\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n
ثبت فاکتور برگشت از فروش
\r\n

\r\n تعداد اعتبار خریداری شده\r\n {singleInvoice.count} \r\n و اعتبار فعلی\r\n {creditCount} \r\n می‌باشد.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n loading === true && singleInvoice\r\n ? ()\r\n : (\r\n {\r\n const errors = {};\r\n if (singleInvoice.item != 3) {\r\n if (values.creditCount !== null && values.creditCount === null) {\r\n errors.creditCount = 'این فیلد الزامی است.'\r\n }\r\n if (values.creditCount > singleInvoice.count) {\r\n errors.creditCount = 'اعتبار برگشتی نمی‌تواند از اعتبار خریداری شده بیشتر باشد.'\r\n }\r\n if (values.creditCount < 100) {\r\n errors.creditCount = 'حداقل کریدیت وارد شده 100 واحد می‌باشد.'\r\n }\r\n }\r\n if (values.description === '') {\r\n errors.description = 'این فیلد الزامی است.'\r\n }\r\n return errors;\r\n }}\r\n onSubmit={(values, actions) => {\r\n let body = {\r\n \"count\": values.creditCount ? parseFloat(values.creditCount) : 1,\r\n \"basePrice\": singleInvoice.basePrice,\r\n \"discountPrice\": singleInvoice.discountPrice,\r\n \"vatPercent\": singleInvoice.vatPercent,\r\n \"description\": values.description,\r\n \"item\": singleInvoice.item\r\n };\r\n\r\n ApiClient.Post(Urls.AddReturnInvoice(returnObj.userId, returnObj.invoiceId), body)\r\n .then((res) => {\r\n toast.success('فاکتور برگشت از فروش با موفقیت ثبت شد.')\r\n history.goBack();\r\n })\r\n }}\r\n >\r\n\r\n {(formik) => (\r\n\r\n \r\n
\r\n \r\n formik.setFieldValue(\"creditCount\", e.target.value)\r\n }\r\n />\r\n \r\n formik.setFieldValue(\"basePrice\", e.target.value)\r\n }\r\n />\r\n \r\n formik.setFieldValue(\"discountPrice\", e.target.value)\r\n }\r\n />\r\n \r\n formik.setFieldValue(\"vatPercent\", e.target.value)\r\n }\r\n />\r\n {\r\n const str = e.target.value.trim() !== '' ? e.target.value : '';\r\n formik.setFieldValue(\"description\", str)\r\n }}\r\n />\r\n\r\n
\r\n\r\n \r\n ثبت فاکتور برگشتی\r\n \r\n
\r\n )}\r\n \r\n )\r\n }\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n )\r\n}\r\n","import React, {useEffect, useState} from 'react';\r\nimport DatePicker, {DateObject} from \"react-multi-date-picker\";\r\nimport TimePicker from 'react-multi-date-picker/plugins/time_picker';\r\nimport {FormError} from '../../Kit/Form';\r\nimport {DatePickerContainer} from '../DatePicker';\r\n\r\nexport const TimePickerStyled = (props) => {\r\n const {defaultValue, name, withoutSecond = false} = props;\r\n const [timePickerValue, setTimePickerValue] = useState('');\r\n\r\n const changeHandler = (event) => {\r\n if (event) {\r\n let result = event.format(withoutSecond ? 'HH:mm' : 'HH:mm:ss');\r\n let baseFormat = \"\";\r\n result.split(\":\").map((m) => {\r\n baseFormat = baseFormat + m;\r\n return m\r\n });\r\n event.baseFormat = baseFormat;\r\n setTimePickerValue(event);\r\n props.value(event);\r\n }\r\n // if (event === null) setTimePickerValue(null)\r\n };\r\n\r\n const removeHandler = () => {\r\n setTimePickerValue(undefined)\r\n props.value('');\r\n }\r\n\r\n useEffect(() => {\r\n if (defaultValue) {\r\n const defaultVal = defaultValue.toString();\r\n const valueObj = new DateObject().set({\r\n hour: defaultVal.slice(0, 2),\r\n minute: defaultVal.slice(2, 4),\r\n })\r\n setTimePickerValue(valueObj)\r\n } else {\r\n setTimePickerValue(null);\r\n }\r\n }, [defaultValue])\r\n\r\n\r\n return (\r\n <>\r\n \r\n \r\n ]}\r\n />\r\n removeHandler()}\r\n >\r\n \r\n \r\n \r\n {props.error} \r\n \r\n )\r\n}\r\n\r\nexport {TimePicker};\r\n\r\n","import {bankProvider, paymentDueDate, paymentDueTime, trackingNumber, payerFullName, paymentDescription } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const ModifyLendInvoiceItemSchema = Yup.object().shape({\r\n bankProvider,\r\n paymentDueDate,\r\n paymentDueTime,\r\n trackingNumber,\r\n payerFullName,\r\n paymentDescription\r\n})","import { Formik } from 'formik';\r\nimport moment from \"moment-jalaali\";\r\nimport React from 'react';\r\nimport { toast } from 'react-toastify';\r\nimport Swal from 'sweetalert2';\r\nimport { StyledButton } from '../../../../Component/Kit/Button';\r\nimport { FormLable, StyledForm, StyledInput, StyledSelect, StyledTextArea } from '../../../../Component/Kit/Form';\r\nimport Modal from '../../../../Component/Kit/Modal';\r\nimport { MyDatePicker } from '../../../../Component/Shared/DatePicker';\r\nimport { TimePickerStyled } from '../../../../Component/Shared/TimePicker';\r\nimport ApiClient from '../../../../Requester/ApiClient';\r\nimport Urls from '../../../../Requester/Urls';\r\nimport { ModifyLendInvoiceItemSchema } from '../../../../Utility/Validation/Schema/ModifyLendInvoiceItemSchema';\r\n\r\nexport const LendInvoiceItemModal = (props) => {\r\n const { visible, setVisible, onCancel, onClose, data, dataChange, banksProviderList } = props;\r\n // const history = useHistory();\r\n\r\n return (\r\n \r\n\r\n
\r\n {\r\n data && data.credit && (\r\n {\r\n\r\n const dataBody = {\r\n \"bankId\": parseInt(values.bankProvider),\r\n \"paidAt\": parseInt(values.paymentDueDate + values.paymentDueTime),\r\n \"trackingNumber\": values.trackingNumber,\r\n \"payerFullName\": values.payerFullName,\r\n \"userDescription\": values.paymentDescription\r\n }\r\n\r\n ApiClient.Patch(Urls.ModifyLendInvoices(data.id), dataBody)\r\n .then(res => {\r\n toast.success('پرداخت با موفقیت انجام شد.');\r\n setVisible(false);\r\n dataChange(true)\r\n actions.resetForm();\r\n // window.location.reload();\r\n })\r\n .catch(err => actions.resetForm())\r\n }}\r\n\r\n onReset={(values, formikBag) => {\r\n setVisible(false);\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
\r\n \r\n \r\n \r\n formik.setFieldValue(\"bankProvider\", e.target.value)}\r\n />\r\n formik.setFieldValue(\"trackingNumber\", e.target.value)}\r\n />\r\n formik.setFieldValue(\"payerFullName\", e.target.value)}\r\n />\r\n\r\n
\r\n \r\n تاریخ ثبت\r\n \r\n {\r\n if (event)\r\n formik.setFieldValue(\"paymentDueDate\", event.baseFormat)\r\n }}\r\n name=\"paymentDueDate\"\r\n max={moment().subtract(0, 'days')}\r\n error={(formik.errors.paymentDueDate && formik.touched.paymentDueDate)\r\n ? formik.errors.paymentDueDate\r\n : false\r\n }\r\n />\r\n
\r\n\r\n
\r\n \r\n ساعت پرداخت\r\n \r\n {\r\n if (event)\r\n formik.setFieldValue(\"paymentDueTime\", event.baseFormat)\r\n }}\r\n name=\"paymentDueTime\"\r\n error={(formik.errors.paymentDueTime && formik.touched.paymentDueTime)\r\n ? formik.errors.paymentDueTime\r\n : 'false'\r\n }\r\n />\r\n
\r\n\r\n {\r\n const str = e.target.value.trim() !== '' ? e.target.value : '';\r\n formik.setFieldValue(\"paymentDescription\", str)\r\n }}\r\n />\r\n
\r\n\r\n
\r\n \r\n پرداخت شده\r\n \r\n\r\n \r\n بستن\r\n \r\n
\r\n\r\n \r\n )}\r\n\r\n \r\n )\r\n }\r\n\r\n
\r\n \r\n )\r\n}\r\n","import React, { useCallback, useEffect, useState } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { MainContent, PageTitleLayout, WrapperLayout } from '../../../Component/Kit/Layout';\r\nimport Table from '../../../Component/Shared/Table/Table';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport { ConvertQueryString } from \"../../../Utility/Services/convert-query-string\";\r\nimport DateConvert from '../../../Utility/Services/date-convert';\r\nimport { SeprateNumberWithComma } from '../../../Utility/Services/SeprateNumberWithComma';\r\nimport { LendInvoiceItemModal } from './LendInvoiceItemModal';\r\n\r\n\r\nconst LendInvoicesList = ({ BanksProvider }) => {\r\n const [lendInvoicesList, setLendInvoicesList] = useState({});\r\n const [lendItemModalVisible, setLendItemModalVisible] = useState(false);\r\n const [lendInvoiceItem, setLendInvoiceItem] = useState({});\r\n const [banksProviderList, setBanksProviderList] = useState({});\r\n const location = useLocation();\r\n const tableConfig = {\r\n header: {\r\n userName: \"نام کاربری\",\r\n description: \"توضیحات\",\r\n credit: \"تعداد کردیت\",\r\n finalPrice: \"مبلغ کل پرداختی\",\r\n createdAt: \"تاریخ و زمان ایجاد\",\r\n isPaidStatus: \"وضعیت پرداخت\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n condition: (data) => {\r\n if (!data.isPaid) return true;\r\n return false;\r\n },\r\n }\r\n },\r\n mode: [\"filter\", \"search\"],\r\n filters: [\"datePickerFilter\", \"isPaid\"]\r\n }\r\n\r\n const tableActions = (items) => {\r\n if (items.actionName === 'view') {\r\n if (!items.data.isPaid) {\r\n openLendItem(items.data);\r\n }\r\n }\r\n }\r\n\r\n const openLendItem = (data) => {\r\n setLendInvoiceItem(data);\r\n setLendItemModalVisible(true);\r\n }\r\n\r\n const modalDataChange = (item) => {\r\n if (item) getLendInvoceList()\r\n }\r\n\r\n const getLendInvoceList = useCallback(() => {\r\n ApiClient.Get(Urls.ModifyLendInvoices(), ConvertQueryString(location.search))\r\n .then(res => {\r\n let responseData = res.result;\r\n responseData.items.map((item, i) => {\r\n item.finalPrice = `${SeprateNumberWithComma(item.finalPrice)} ریال`;\r\n // item.description = 'با سلام من مشکل مالی دارم. ده تا چک دارم. الان برام پرداخت کنین قول میدم که به موقع برگردونم.';\r\n item.createdAt = DateConvert(item.createdAt);\r\n item.isPaidStatus = item.isPaid;\r\n item.isPaidStatus = (item.isPaidStatus)\r\n ? ``\r\n : ``;\r\n return false;\r\n })\r\n setLendInvoicesList(responseData);\r\n })\r\n }, [location.search])\r\n\r\n useEffect(() => {\r\n getLendInvoceList();\r\n\r\n if (BanksProvider) {\r\n let banksList = [];\r\n BanksProvider.map(item => {\r\n banksList.push({ value: item.id, name: item.title })\r\n })\r\n setBanksProviderList(banksList);\r\n }\r\n }, [location.search, getLendInvoceList, BanksProvider]);\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
لیست فاکتورهای پرداخت‌های قرضی
\r\n در این بخش لیستی از فاکتور‌ اعتبارهای بدون پرداخت را مشاهده کنید.\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n setLendItemModalVisible(false)}\r\n onCancle={() => setLendItemModalVisible(false)}\r\n data={lendInvoiceItem}\r\n banksProviderList={banksProviderList}\r\n dataChange={modalDataChange}\r\n />\r\n\r\n
\r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n BanksProvider: state.bootstrapper.data.banks\r\n})\r\n\r\nexport default connect(mapStateToProps)(LendInvoicesList)\r\n\r\n","import React, { useEffect, useState } from 'react'\r\nimport { useHistory, useLocation } from 'react-router-dom'\r\nimport { MainContent, PageTitleLayout, WrapperLayout } from '../../../Component/Kit/Layout'\r\nimport Table from '../../../Component/Shared/Table/Table'\r\nimport ApiClient from '../../../Requester/ApiClient'\r\nimport Urls from '../../../Requester/Urls'\r\nimport { ConvertQueryString } from '../../../Utility/Services/convert-query-string'\r\nimport DateConvert from '../../../Utility/Services/date-convert'\r\nimport { SeprateNumberWithComma } from '../../../Utility/Services/SeprateNumberWithComma'\r\n\r\nexport const ManualPaymentsList = () => {\r\n const [manualPaymentLists, setManualPaymentLists] = useState({});\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n const tableConfig = {\r\n header: {\r\n userName: \"نام کاربری\",\r\n finalPrice: \"مبلغ کل پرداختی\",\r\n description: \"توضیحات\",\r\n createdAt: \"تاریخ و زمان ایجاد\",\r\n paidAt: \"تاریخ پرداخت\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n }\r\n }\r\n }\r\n \r\n useEffect(() => {\r\n ApiClient.Get(Urls.GetPendingManualPayments(), ConvertQueryString(location.search))\r\n .then(res => {\r\n let responseData = res.result;\r\n responseData.items.map((item, i) => {\r\n item.finalPrice = `${SeprateNumberWithComma(item.finalPrice)} ریال`;\r\n item.createdAt = DateConvert(item.createdAt);\r\n item.paidAt = DateConvert(item.paidAt);\r\n });\r\n setManualPaymentLists(responseData);\r\n })\r\n }, [location.search]);\r\n\r\n\r\n const tableActions = (items) => {\r\n history.push(`manual-payment/${items.data.id}`);\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
لیست پرداخت‌های دستی
\r\n در این بخش لیست همه پرداخت‌های دستی قابل مشاهده است.\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","// import React from 'react'\r\nimport PaymentStatusModel from '../Model/PaymentStatusModel'\r\n\r\nexport const PaymentStatusService = (value) => {\r\n let result = PaymentStatusModel.find((item) => \r\n item.value === value\r\n )\r\n return result.name\r\n}\r\n\r\n","import React, { useState } from 'react'\r\nimport { useHistory } from 'react-router-dom';\r\nimport { toast } from 'react-toastify';\r\nimport { StyledButton } from '../../../../../Component/Kit/Button';\r\nimport Modal from '../../../../../Component/Kit/Modal'\r\nimport ApiClient from '../../../../../Requester/ApiClient';\r\nimport Urls from '../../../../../Requester/Urls';\r\n\r\nexport const AcceptedPaymentModal = (props) => {\r\n const { paymentId, visible, setVisible, onCancel, onClose } = props;\r\n const [loadingFlag, setLoadingFlag] = useState(false);\r\n const history = useHistory();\r\n\r\n const acceptedPaymentHandler = () => {\r\n let dataBody = {\r\n \"isAccepted\": true\r\n }\r\n setLoadingFlag(true);\r\n\r\n ApiClient.Patch(Urls.GetPendingManualPayments(paymentId), dataBody)\r\n .then((res) => {\r\n toast.success('پرداخت با موفقیت تایید شد!')\r\n setVisible(false);\r\n history.push(`/financial/manual-payment`);\r\n })\r\n }\r\n\r\n return (\r\n \r\n
\r\n
آیا از تایید این پرداخت مطمئن هستید؟
\r\n\r\n
\r\n acceptedPaymentHandler()}\r\n >\r\n مطمئنم\r\n \r\n\r\n { setVisible(false) }}\r\n >\r\n بستن\r\n \r\n\r\n
\r\n\r\n
\r\n \r\n )\r\n}\r\n","import { description } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const RejectedManualPaymentSchema = Yup.object().shape({\r\n description\r\n});\r\n","import { Formik } from 'formik';\r\nimport React from 'react'\r\nimport { useHistory } from 'react-router-dom';\r\nimport { toast } from 'react-toastify';\r\nimport { StyledButton } from '../../../../../Component/Kit/Button';\r\nimport { StyledForm, StyledTextArea } from '../../../../../Component/Kit/Form';\r\nimport Modal from '../../../../../Component/Kit/Modal';\r\nimport ApiClient from '../../../../../Requester/ApiClient';\r\nimport Urls from '../../../../../Requester/Urls';\r\nimport { RejectedManualPaymentSchema } from '../../../../../Utility/Validation/Schema/RejectedManualPaymentSchema';\r\n\r\nexport const RejectedPaymentModal = (props) => {\r\n const { paymentId, visible, setVisible, onCancel, onClose } = props;\r\n const history = useHistory();\r\n\r\n return (\r\n \r\n
\r\n
آیا از عدم تایید این پرداخت مطمئن هستید؟
\r\n
\r\n {\r\n let dataBody = {\r\n \"isAccepted\": false,\r\n \"rejectReason\": values.description,\r\n };\r\n ApiClient.Patch(Urls.GetPendingManualPayments(paymentId), dataBody)\r\n .then((res) => {\r\n toast.success('فرآیند با موفقیت انجام گرفت!')\r\n setVisible(false);\r\n history.push(`/financial/manual-payment`);\r\n })\r\n }}\r\n onReset={(values, formikBag) => {\r\n setVisible(false)\r\n }}\r\n >\r\n\r\n {(formik) => (\r\n \r\n {\r\n const str = e.target.value.trim() !== '' ? e.target.value : ''\r\n formik.setFieldValue(\"description\", str)\r\n }}\r\n\r\n />\r\n\r\n
\r\n \r\n عدم تایید\r\n \r\n\r\n {\r\n setVisible(false)\r\n }}\r\n >\r\n بستن\r\n \r\n
\r\n\r\n\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n","import React, {useCallback, useEffect, useState} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport BackToPage from '../../../../Component/Kit/back';\r\nimport {StyledButton} from '../../../../Component/Kit/Button';\r\nimport {\r\n FooterContent,\r\n HeaderContent,\r\n MainContent,\r\n PageTitleLayout,\r\n WrapperLayout\r\n} from '../../../../Component/Kit/Layout';\r\nimport ApiClient from '../../../../Requester/ApiClient';\r\nimport Urls from '../../../../Requester/Urls';\r\nimport DateConvert from '../../../../Utility/Services/date-convert';\r\nimport {PaymentStatusService} from '../../../../Utility/Services/PaymentStatusService';\r\nimport {SeprateNumberWithComma} from '../../../../Utility/Services/SeprateNumberWithComma';\r\nimport {AcceptedPaymentModal} from './AcceptedPaymentModal';\r\nimport {RejectedPaymentModal} from './RejectedPaymentModal';\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport {Formik} from \"formik\";\r\nimport {toast} from \"react-toastify\";\r\nimport {FormLable, StyledForm, StyledInput, StyledSelect} from \"../../../../Component/Kit/Form\";\r\nimport {MyDatePicker} from \"../../../../Component/Shared/DatePicker\";\r\nimport moment from \"moment-jalaali\";\r\n\r\nconst ManualPaymentItem = (props) => {\r\n const paymentId = props.match.params.id;\r\n let BanksProvider = props.BanksProvider;\r\n const [singleManualPayment, setSingleManualPayment] = useState({});\r\n const [acceptedPaymentModalVisible, setAcceptedPaymentModalVisible] = useState(false);\r\n const [rejectedPaymentModalVisible, setRejectedPaymentModalVisible] = useState(false);\r\n const [manualPaymentTitles, setManualPaymentTitles] = useState({\r\n payerFullName: \"نام و نام‌خانوادگی\",\r\n description: \"عنوان محصول\",\r\n bankIdTitle: \"عنوان بانک\",\r\n netPrice: \"قیمت خام\",\r\n discountPrice: \"تخفیف\",\r\n fifteenRemarkPrice: \"لایحه 15\",\r\n vatPrice: \"مالیات بر ارزش افزوده (9 درصد)\",\r\n finalPrice: \"مبلغ کل\",\r\n status: \"وضعیت پرداختی\",\r\n trackingNumber: \"شماره پیگیری \",\r\n paidAtConvert: \"تاریخ پرداخت\",\r\n userDescription: \"توضیحات\",\r\n });\r\n const [showEditModal, setEditModal] = useState(false);\r\n\r\n\r\n const getData = useCallback(() => {\r\n ApiClient.Get(Urls.GetPendingManualPayments(paymentId))\r\n .then(res => {\r\n let responseData = res.result;\r\n Object.entries(responseData).map(([item, value]) => {\r\n switch (item) {\r\n case \"bankId\":\r\n return responseData.bankIdTitle = BanksProvider.find(b => b.id === responseData.bankId)?.title || '-';\r\n case \"netPrice\":\r\n responseData.netPriceValue = responseData.netPrice;\r\n return responseData.netPrice = `${SeprateNumberWithComma(value)} ریال`;\r\n case \"discountPrice\":\r\n return responseData.discountPrice = `${SeprateNumberWithComma(value)} ریال`;\r\n case \"fifteenRemarkPrice\":\r\n return responseData.fifteenRemarkPrice = `${SeprateNumberWithComma(value)} ریال`;\r\n case \"vatPrice\":\r\n return responseData.vatPrice = `${SeprateNumberWithComma(responseData.vatPrice)} ریال`;\r\n case \"vatPercent\":\r\n setManualPaymentTitles({\r\n ...manualPaymentTitles,\r\n vatPrice: `مالیات بر ارزش افزوده (${value} درصد)`\r\n })\r\n break;\r\n case \"finalPrice\":\r\n return responseData.finalPrice = `${SeprateNumberWithComma(value)} ریال`;\r\n case \"status\":\r\n return responseData.status = PaymentStatusService(value);\r\n case \"paidAt\":\r\n return responseData.paidAtConvert = DateConvert(value);\r\n default:\r\n return responseData[item] = value;\r\n }\r\n })\r\n setSingleManualPayment(responseData);\r\n })\r\n }, [paymentId, BanksProvider])\r\n\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [getData]);\r\n\r\n\r\n const rejectManualPayment = () => {\r\n setRejectedPaymentModalVisible(true)\r\n }\r\n\r\n const acceptManualPayment = () => {\r\n setAcceptedPaymentModalVisible(true)\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
جزئیات پرداخت‌های دستی
\r\n {\r\n setEditModal(true)\r\n }}\r\n >\r\n ویرایش\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
    \r\n {\r\n manualPaymentTitles &&\r\n Object.entries(manualPaymentTitles).map(([item, value]) => (\r\n
  • \r\n
    \r\n {value}\r\n
    \r\n
    \r\n \r\n {singleManualPayment[item]}\r\n \r\n
    \r\n
  • \r\n ))\r\n }\r\n
\r\n
\r\n
\r\n\r\n \r\n rejectManualPayment()}\r\n >\r\n عدم تایید\r\n \r\n\r\n acceptManualPayment()}\r\n >\r\n تایید\r\n \r\n\r\n {\r\n false}\r\n onCancel={() => setRejectedPaymentModalVisible(false)}\r\n // onClose={() => setRejectedPaymentModalVisible(false)}\r\n />\r\n }\r\n {\r\n false}\r\n onCancel={() => setAcceptedPaymentModalVisible(false)}\r\n // onClose={() => setAcceptedPaymentModalVisible(false)}\r\n />\r\n }\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n {singleManualPayment &&\r\n\r\n setEditModal(false)}\r\n onCancel={() => setEditModal(false)}\r\n visible={showEditModal}\r\n headerTitle=\"ویرایش پرداخت‌ دستی\"\r\n >\r\n\r\n {\r\n ApiClient.Patch(Urls.EditPaymentManual(paymentId), values)\r\n .then(res => {\r\n if (res.result) {\r\n getData()\r\n toast.success('ویرایش با موفقیت انجام شد .');\r\n actions.resetForm();\r\n setEditModal(false);\r\n }\r\n })\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n {\r\n return {\r\n value: a.id,\r\n name: a.title\r\n }\r\n })}\r\n error={(formik.errors.bankId && formik.touched.bankId)\r\n ? formik.errors.bankId\r\n : 'false'\r\n }\r\n onChange={formik.handleChange}\r\n />\r\n\r\n formik.setFieldValue(\"trackingNumber\", e.target.value)}\r\n />\r\n \r\n تاریخ\r\n \r\n {\r\n formik.setFieldValue(\"paidAt\", event.baseFormat);\r\n }}\r\n max={moment(formik.values.paidAt, 'jYYYYjMMjDDHHmmss').format()}\r\n haveTime\r\n name=\"paidAt\"\r\n id=\"paidAt\"\r\n error={\r\n formik.errors.paidAt !== undefined\r\n ? formik.errors.paidAt\r\n : false\r\n }\r\n />\r\n\r\n\r\n
\r\n setEditModal(false)}\r\n >\r\n بستن\r\n \r\n \r\n ویرایش\r\n \r\n
\r\n \r\n )}\r\n\r\n \r\n\r\n\r\n \r\n\r\n }\r\n
\r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n BanksProvider: state.bootstrapper.data.banks\r\n})\r\n\r\nexport default connect(mapStateToProps)(ManualPaymentItem)\r\n","import React, {useEffect, useState} from 'react'\r\nimport {PageTitleLayout} from '../../../../Component/Kit/Layout';\r\nimport Table from '../../../../Component/Shared/Table/Table';\r\nimport ApiClient from '../../../../Requester/ApiClient';\r\nimport Urls from '../../../../Requester/Urls';\r\nimport DateConvert from '../../../../Utility/Services/date-convert';\r\nimport {SeprateNumberWithComma} from '../../../../Utility/Services/SeprateNumberWithComma';\r\nimport {ConvertQueryString} from \"../../../../Utility/Services/convert-query-string\";\r\nimport {useLocation} from \"react-router-dom\";\r\n\r\nexport const InvoiceApproved = (props) => {\r\n const location = useLocation()\r\n const {tableConfig, tableActions} = props;\r\n const [officialInvoiceApprovedList, setOfficialInvoiceApprovedList] = useState({});\r\n\r\n let localTableConfig = {\r\n ...tableConfig,\r\n mode: [...tableConfig.mode, \"export-excel\"],\r\n // filters: [...tableConfig.filters]\r\n }\r\n\r\n useEffect(() => {\r\n let params = {\r\n ...ConvertQueryString(location.search),\r\n numbered: true\r\n }\r\n ApiClient.Get(Urls.GetOfficialInvoices(), params)\r\n .then(res => {\r\n let responseData = res.result;\r\n responseData.items.map((item, i) => {\r\n item.totalPrice = `${SeprateNumberWithComma(item.totalPrice)} ریال`;\r\n item.createdAt = DateConvert(item.createdAt);\r\n item.canModifyDiscountPrice = item.canModifyDiscountPrice\r\n ? `دارد`\r\n : `ندارد`;\r\n item.onlyReturns = (item.isReturnInvoice)\r\n ? \"فاکتور برگشتی\"\r\n : \"فاکتور\";\r\n });\r\n setOfficialInvoiceApprovedList(responseData);\r\n })\r\n }, [location.search]);\r\n\r\n\r\n const exportActions = (item) => {\r\n let params = {\r\n ...ConvertQueryString(location.search),\r\n }\r\n ApiClient.Get(Urls.GetExportFromOfficialNumberedInvoices(item.export), params)\r\n .then((res) => {\r\n let resData = res.result;\r\n if (!Array.isArray(resData)) {\r\n const url = `${Urls.base()}/${resData}`\r\n window.open(url, '_blank')\r\n // window.open(resData, '_blank')\r\n } else {\r\n resData.map((item) => {\r\n const url = `${Urls.base()}/${item}`\r\n windowOpen(url);\r\n })\r\n }\r\n })\r\n .catch((err) => console.log(err))\r\n }\r\n\r\n const windowOpen = (item) => {\r\n window.open(item)\r\n }\r\n\r\n return (\r\n
\r\n \r\n
لیست فاکتورهای با‌شماره
\r\n در این بخش لیستی از فاکتور‌های تایید شده، قابل مشاهده است.\r\n
\r\n {\r\n officialInvoiceApprovedList && (\r\n \r\n )\r\n }\r\n
\r\n )\r\n}\r\n","\r\n\r\nimport { date, number } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const NumberingInvoiceSchema = Yup.object().shape({\r\n number,\r\n date,\r\n})\r\n\r\n","import React, {useEffect, useState} from 'react'\r\nimport Modal from \"../../../../../Component/Kit/Modal\";\r\nimport {Formik} from \"formik\";\r\nimport {FormGroup, FormLable, StyledCheckBox, StyledForm, StyledInput,} from \"../../../../../Component/Kit/Form\";\r\nimport {StyledButton} from \"../../../../../Component/Kit/Button\";\r\nimport {MyDatePicker} from \"../../../../../Component/Shared/DatePicker\";\r\nimport {NumberingInvoiceSchema} from \"../../../../../Utility/Validation/Schema/NumberingInvoiceSchema\";\r\nimport ApiClient from \"../../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../../Requester/Urls\";\r\nimport {toast} from \"react-toastify\";\r\nimport {ConvertQueryString} from \"../../../../../Utility/Services/convert-query-string\";\r\nimport {useLocation} from \"react-router-dom\";\r\n\r\n\r\nexport function InvoiceNumberingGroupModal(props){\r\n const {visible , closeModal , onCancel, selectedInvoice , submit , isOldPanel} = props;\r\n const location = useLocation();\r\n return (\r\n closeModal()}\r\n onCancel={onCancel}\r\n headerTitle={\"شماره دار کردن گروهی فاکتور ها\"}\r\n >\r\n\r\n {selectedInvoice.length &&\r\n\r\n {\r\n const params = {};\r\n let urlData = ConvertQueryString(location.search);\r\n if (urlData['onlyReturns'] == true) {\r\n params.isReturn = true\r\n }\r\n if (isOldPanel && values.sendSms){\r\n params.sendLinkViaSms = true\r\n }\r\n\r\n const formValues = selectedInvoice.map((a , i) => {\r\n if (isOldPanel){\r\n return {\r\n invoiceId: a.id,\r\n number: (Number(values.number) + i).toString(),\r\n date: Number(values.date),\r\n }\r\n }else{\r\n return {\r\n id: a.id,\r\n number: (Number(values.number) + i).toString(),\r\n date: Number(values.date),\r\n }\r\n }\r\n\r\n })\r\n ApiClient.Put( Urls.GroupNumberedPanelInvoice(isOldPanel) , {\r\n sendSms: values.sendSms,\r\n invoices: formValues\r\n } , params).then(() => {\r\n toast.success('فاکتور ها شماره دار و در سپیدار ثبت شدند .');\r\n submit()\r\n })\r\n }}\r\n validationSchema={NumberingInvoiceSchema}\r\n >\r\n {(formik) => (\r\n \r\n
\r\n شناسه فاکتور های :\r\n {selectedInvoice.map((a, i) => (\r\n {a.id}\r\n {selectedInvoice.length !== i + 1 && ','}\r\n \r\n ))}\r\n
\r\n formik.setFieldValue(`number`, e.target.value)} />\r\n\r\n \r\n تاریخ فاکتور\r\n {\r\n formik.setFieldValue(`date`, event.baseFormat);\r\n }}\r\n name={`date`}\r\n error={\r\n formik.errors.date !== undefined\r\n ? formik.errors.date\r\n : false\r\n }\r\n />\r\n \r\n\r\n formik.setFieldValue(`sendSms`, e.target.checked)}\r\n />\r\n\r\n\r\n \r\n تایید\r\n \r\n
\r\n )}\r\n \r\n\r\n }\r\n \r\n )\r\n}\r\n","import React, {useCallback, useEffect, useState} from 'react'\r\nimport { PageTitleLayout } from '../../../../Component/Kit/Layout';\r\nimport Table from '../../../../Component/Shared/Table/Table';\r\nimport ApiClient from '../../../../Requester/ApiClient';\r\nimport Urls from '../../../../Requester/Urls';\r\nimport DateConvert from '../../../../Utility/Services/date-convert';\r\nimport { SeprateNumberWithComma } from '../../../../Utility/Services/SeprateNumberWithComma';\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { ConvertQueryString } from \"../../../../Utility/Services/convert-query-string\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport {InvoiceNumberingGroupModal} from \"./InvoiceNumberingGroupModal\";\r\n\r\nexport const InvoiceAwaitingApproval = (props) => {\r\n const location = useLocation()\r\n const { tableConfig, tableActions } = props;\r\n const [officialinvoiceAwaitingList, setOfficialinvoiceAwaitingList] = useState({});\r\n const [selectedInvoice , setSelectedInvoice] = useState([])\r\n const [showNumberingGroupModal , setShowNumberingGroupModal] = useState(false)\r\n\r\n let localTableConfig = {\r\n ...tableConfig,\r\n hasSelectCol: true,\r\n }\r\n\r\n\r\n const getInvoices = useCallback(\r\n ()=> {\r\n let params = {\r\n ...ConvertQueryString(location.search),\r\n numbered: false\r\n }\r\n ApiClient.Get(Urls.GetOfficialInvoices(), params)\r\n .then(res => {\r\n let responseData = res.result;\r\n responseData.items.map((item, i) => {\r\n item.totalPrice = `${SeprateNumberWithComma(item.totalPrice)} ریال`;\r\n item.createdAt = DateConvert(item.createdAt);\r\n item.canModifyDiscountPrice = item.canModifyDiscountPrice\r\n ? `دارد`\r\n : `ندارد`;\r\n item.onlyReturns = (item.isReturnInvoice)\r\n ? \"فاکتور برگشتی\"\r\n : \"فاکتور\";\r\n });\r\n setOfficialinvoiceAwaitingList(responseData);\r\n })\r\n } , [location.search]\r\n )\r\n\r\n useEffect(() => {\r\n getInvoices()\r\n }, [location.search]);\r\n\r\n const tableSelectedList = (item) => {\r\n const formArray = []\r\n item.forEach(\r\n (el) => {\r\n formArray.push( {\r\n id: el.id,\r\n number: '',\r\n date: '0'\r\n })\r\n }\r\n )\r\n setSelectedInvoice(formArray);\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 setShowNumberingGroupModal(true)\r\n }}\r\n disabled={!selectedInvoice.length}\r\n >\r\n شماره دار کردن گروهی فاکتور ها\r\n \r\n
\r\n
\r\n {\r\n officialinvoiceAwaitingList && (\r\n \r\n\r\n )}\r\n\r\n\r\n setShowNumberingGroupModal(false)}\r\n closeModal={() => setShowNumberingGroupModal(false)}\r\n submit={() => {\r\n setShowNumberingGroupModal(false)\r\n getInvoices()\r\n }}\r\n isOldPanel={false}\r\n selectedInvoice={selectedInvoice}\r\n />\r\n
\r\n )\r\n}\r\n","import React from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { useState } from \"react\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { PageTitleLayout } from \"../../../../Component/Kit/Layout\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Table from \"../../../../Component/Shared/Table/Table\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport { ConvertQueryString } from \"../../../../Utility/Services/convert-query-string\";\r\nimport DateConvert from \"../../../../Utility/Services/date-convert\";\r\nimport { SeprateNumberWithComma } from \"../../../../Utility/Services/SeprateNumberWithComma\";\r\n\r\nconst OldPanelInvoiceApproved = (props) => {\r\n const location = useLocation();\r\n const { tableConfig, tableActions } = props;\r\n const [invoiceApprovedList, setInvoiceApprovedList] = useState({});\r\n const history = useHistory();\r\n useEffect(() => {\r\n let params = {\r\n ...ConvertQueryString(location.search),\r\n numbered: true,\r\n };\r\n ApiClient.Get(Urls.GetOldPanelOfficialInvoices(), params).then((res) => {\r\n let responseData = res.result;\r\n responseData.items.map((item, i) => {\r\n item.totalPrice = `${SeprateNumberWithComma(item.totalPrice)} ریال`;\r\n item.createdAt = DateConvert(item.createdAt);\r\n item.canModifyDiscountPrice = item.canModifyDiscountPrice\r\n ? `دارد`\r\n : `ندارد`;\r\n item.isManualPayment = item.isManualPayment\r\n ? `دارد`\r\n : `ندارد`;\r\n });\r\n setInvoiceApprovedList(responseData);\r\n });\r\n }, [location.search]);\r\n\r\n const oldPanelTableActions = (items) => {\r\n if (items.actionName === \"view\") {\r\n history.push(`/financial/invoice/old/${items.data.id}`);\r\n }\r\n };\r\n const exportActions = (item) => {\r\n let params = {\r\n ...ConvertQueryString(location.search),\r\n };\r\n ApiClient.Get(`${Urls.GetOldPanelOfficialInvoices()}/excel`, {\r\n numbered: true,\r\n ...params,\r\n })\r\n .then((res) => {\r\n let resData = res.result;\r\n const url = `${Urls.OldPanelBase()}/${resData}`;\r\n windowOpen(url);\r\n })\r\n .catch((err) => console.log(err));\r\n };\r\n\r\n const windowOpen = (item) => {\r\n window.open(item);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
لیست فاکتورهای با‌شماره (پنل قدیم)
\r\n \r\n در این بخش لیستی از فاکتور‌های تایید شده در پنل قدیم، قابل مشاهده است.\r\n \r\n
\r\n {invoiceApprovedList && (\r\n oldPanelTableActions(e)}\r\n exportDispatched={exportActions}\r\n />\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default OldPanelInvoiceApproved;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useCallback } from \"react\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { toast } from \"react-toastify\";\r\nimport Swal from \"sweetalert2\";\r\nimport { StyledButton } from \"../../../../Component/Kit/Button\";\r\nimport { PageTitleLayout } from \"../../../../Component/Kit/Layout\";\r\nimport Table from \"../../../../Component/Shared/Table/Table\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport { ConvertQueryString } from \"../../../../Utility/Services/convert-query-string\";\r\nimport DateConvert from \"../../../../Utility/Services/date-convert\";\r\nimport { SeprateNumberWithComma } from \"../../../../Utility/Services/SeprateNumberWithComma\";\r\nimport {InvoiceNumberingGroupModal} from \"../InvoiceAwaitingApproval/InvoiceNumberingGroupModal\";\r\n\r\nconst OldPanelInvoiceAwaitingApproval = (props) => {\r\n const location = useLocation();\r\n const history = useHistory();\r\n const { tableConfig } = props;\r\n const [deleteItems, setDeleteItem] = useState([]);\r\n const [selectedInvoice, setSelectedInvoice] = useState([]);\r\n const [invoiceAwaitingList, setInvoiceAwaitingList] = useState({});\r\n const [showNumberingGroupModal , setShowNumberingGroupModal] = useState(false)\r\n\r\n let localTableConfig = {\r\n ...tableConfig,\r\n actions: {\r\n ...tableConfig.actions,\r\n delete: {\r\n icon: \"fa fa-trash\",\r\n },\r\n },\r\n hasSelectCol: true,\r\n };\r\n\r\n const exportActions = (item) => {\r\n let params = {\r\n ...ConvertQueryString(location.search),\r\n };\r\n ApiClient.Get(`${Urls.GetOldPanelOfficialInvoices()}/excel`, {\r\n numbered: false,\r\n ...params,\r\n })\r\n .then((res) => {\r\n let resData = res.result;\r\n const url = `${Urls.OldPanelBase()}/${resData}`;\r\n windowOpen(url);\r\n })\r\n .catch((err) => console.log(err));\r\n };\r\n\r\n const windowOpen = (item) => {\r\n window.open(item);\r\n };\r\n\r\n const selectedHandler = (item) => {\r\n const list = [];\r\n item.forEach((f) => {\r\n list.push(f.id);\r\n });\r\n\r\n const formArray = []\r\n item.forEach(\r\n (el) => {\r\n formArray.push( {\r\n id: el.id,\r\n number: '',\r\n date: '0'\r\n })\r\n }\r\n )\r\n setSelectedInvoice(formArray);\r\n\r\n setDeleteItem(list);\r\n };\r\n\r\n const actionsHandler = (item) => {\r\n switch (item.actionName) {\r\n case \"delete\":\r\n deleteAll(item.data.id)\r\n break;\r\n default:\r\n history.push(`/financial/invoice/old/${item.data.id}`);\r\n break;\r\n }\r\n };\r\n\r\n const deleteAll = (id) => {\r\n Swal.fire({\r\n title: `آیا از حذف فاکتور ها مطمئن هستید؟`,\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n ApiClient.Delete(\r\n Urls.GetOldPanelOfficialInvoices(),\r\n id ? [id] : deleteItems\r\n ).then(() => {\r\n toast.success(\"خط با موفقیت حذف شد.\");\r\n onInit();\r\n });\r\n }\r\n });\r\n };\r\n\r\n const onInit = useCallback(() => {\r\n let params = {\r\n ...ConvertQueryString(location.search),\r\n numbered: false,\r\n };\r\n\r\n ApiClient.Get(Urls.GetOldPanelOfficialInvoices(), params).then((res) => {\r\n let responseData = res.result;\r\n responseData.items.map((item, i) => {\r\n item.totalPrice = `${SeprateNumberWithComma(item.totalPrice)} ریال`;\r\n item.createdAt = DateConvert(item.createdAt);\r\n item.canModifyDiscountPrice = item.canModifyDiscountPrice\r\n ? `دارد`\r\n : `ندارد`;\r\n item.isManualPayment = item.isManualPayment\r\n ? `دارد`\r\n : `ندارد`;\r\n });\r\n setInvoiceAwaitingList(responseData);\r\n });\r\n }, [location.search]);\r\n\r\n useEffect(() => {\r\n onInit();\r\n }, [onInit]);\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 deleteAll()}\r\n >\r\n حذف موارد انتخاب شده\r\n \r\n\r\n {\r\n setShowNumberingGroupModal(true)\r\n }}\r\n disabled={!selectedInvoice.length}\r\n >\r\n شماره دار کردن گروهی فاکتور ها\r\n \r\n
\r\n
\r\n {invoiceAwaitingList && (\r\n actionsHandler(e)}\r\n exportDispatched={exportActions}\r\n pageConfig={{\r\n pageNumber: invoiceAwaitingList.pageNumber,\r\n pageSize: invoiceAwaitingList.pageSize,\r\n totalItemsCount: invoiceAwaitingList.totalItemsCount,\r\n totalPagesCount: invoiceAwaitingList.totalPagesCount,\r\n }}\r\n selectedDispatch={(e) => selectedHandler(e)}\r\n />\r\n )}\r\n\r\n setShowNumberingGroupModal(false)}\r\n closeModal={() => setShowNumberingGroupModal(false)}\r\n submit={() => {\r\n setShowNumberingGroupModal(false)\r\n onInit()\r\n }}\r\n isOldPanel={true}\r\n selectedInvoice={selectedInvoice}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default OldPanelInvoiceAwaitingApproval;\r\n","import React, {useEffect} from \"react\";\r\nimport {\r\n NavLink,\r\n Route,\r\n Switch,\r\n useHistory,\r\n useLocation,\r\n} from \"react-router-dom\";\r\nimport {MainContent, WrapperLayout} from \"../../../Component/Kit/Layout\";\r\nimport {InvoiceApproved} from \"./InvoiceApproved\";\r\nimport {InvoiceAwaitingApproval} from \"./InvoiceAwaitingApproval\";\r\nimport OldPanelInvoiceApproved from \"./OldPanelInvoiceApproved\";\r\nimport OldPanelInvoiceAwaitingApproval from \"./OldPanelInvoiceAwaitingApproval\";\r\n\r\nexport const OfficialInvoicesList = ({match}) => {\r\n\r\n const tableConfig = {\r\n header: {\r\n userName: \"نام کاربری\",\r\n userId: \"شناسه کاربر\",\r\n onlyReturns: \"نوع فاکتور\",\r\n totalPrice: \"مبلغ کل پرداختی\",\r\n canModifyDiscountPrice: \"امکان اصلاح تخفیف\",\r\n createdAt: \"تاریخ و زمان ایجاد\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n },\r\n },\r\n mode: [\"filter\", \"search\"],\r\n filters: [\"datePickerFilter\", \"onlyReturns\"],\r\n };\r\n\r\n const oldPanelTableConfig = {\r\n header: {\r\n userName: \"نام کاربری\",\r\n userId: \"شناسه کاربر\",\r\n totalPrice: \"مبلغ کل پرداختی\",\r\n canModifyDiscountPrice: \"امکان اصلاح تخفیف\",\r\n createdAt: \"تاریخ و زمان ایجاد\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n },\r\n },\r\n mode: [\"filter\", \"search\", \"export-excel\"],\r\n filters: [\"datePickerFilter\"],\r\n };\r\n\r\n const tableActions = (items) => {\r\n if (items.actionName === \"view\") {\r\n history.push(\r\n `/financial/invoice/${items.data.id}/isReturn=${items.data.isReturnInvoice}`\r\n );\r\n }\r\n };\r\n\r\n\r\n const history = useHistory();\r\n const location = useLocation();\r\n useEffect(() => {\r\n if (location.pathname === `${match.url}`) {\r\n history.push(`${match.url}/pending`);\r\n }\r\n }, []);\r\n return (\r\n \r\n
\r\n \r\n
    \r\n
  • \r\n \r\n فاکتور‌های منتظر تایید\r\n \r\n
  • \r\n
  • \r\n \r\n فاکتور‌های تاییدشده\r\n \r\n
  • \r\n
  • \r\n \r\n فاکتور‌های منتظر تایید (پنل قدیم)\r\n \r\n
  • \r\n
  • \r\n \r\n فاکتور‌های تاییدشده (پنل قدیم)\r\n \r\n
  • \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","import React from \"react\";\r\n\r\nfunction WhiteSmsIcon(props) {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default WhiteSmsIcon;\r\n","import React from 'react'\r\n\r\nexport const BuyerDetails = (props) => {\r\n const { singleInvoiceDetails } = props;\r\n\r\n const buyerDetailsLineOne = {\r\n fullName: \"نام شخص حقیقی/حقوقی \",\r\n economicCode: 'شماره اقتصادی',\r\n registrationNumber: 'شماره ثبت',\r\n companyName: \"نام شخص حقیقی/حقوقی \",\r\n // nationalId: 'کد ملی',\r\n // legalNationalId: 'شناسه/ کدملی',\r\n\r\n }\r\n const buyerDetailsLineTwo = {\r\n address: \"نشانی \",\r\n postalCode: 'کدپستی',\r\n phoneNumber: \"شماره تلفن\",\r\n\r\n }\r\n return (\r\n <>\r\n {\r\n singleInvoiceDetails && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
مشخصات خریدار
\r\n \r\n \r\n \r\n {\r\n Object.entries(buyerDetailsLineOne).map(([item, value]) => (\r\n singleInvoiceDetails[item] &&\r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n
\r\n {value}\r\n {singleInvoiceDetails[item]}\r\n \r\n \r\n {singleInvoiceDetails.economicCode ? 'شناسه/ کدملی' : 'کدملی'}\r\n \r\n {singleInvoiceDetails.nationalId}\r\n
\r\n \r\n \r\n \r\n {\r\n Object.entries(buyerDetailsLineTwo).map(([item, value]) => (\r\n singleInvoiceDetails[item] &&\r\n \r\n ))\r\n }\r\n \r\n \r\n
\r\n {value}\r\n {singleInvoiceDetails[item]}\r\n
\r\n
\r\n )\r\n }\r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport {useEffect} from 'react';\r\nimport {useState} from 'react';\r\n\r\nexport const SellerDetails = (props) => {\r\n const {invoce} = props;\r\n const [sellerDetailLineOne, setSellerDetailLineOne] = useState({});\r\n const [sellerDetailLineTwo, setSellerDetailLineTwo] = useState({});\r\n\r\n useEffect(() => {\r\n if (invoce === \"unOfficialInvoice\") {\r\n setSellerDetailLineOne({\r\n \"نام فروشنده \": \"سامانه پیام‌دهی\"\r\n })\r\n } else {\r\n setSellerDetailLineOne({\r\n \"نام شخص حقیقی/حقوقی \": \"ایده پردازان الکترونیک جوانان\",\r\n \"شماره اقتصادی\": \"10320315944\",\r\n \"شماره ثبت\": \"380483\",\r\n \"شناسه ملی\": \"10320315944\",\r\n })\r\n setSellerDetailLineTwo({\r\n \"نشانی\": \"تهران خيابان آزادي ناحيه نوآوري شريف بلوار اكبري ابتداي كوچه اتكا پلاك۷ برج فناوري طبقه پنجم\",\r\n \"کدپستی\": \"1458834954\",\r\n \"شماره تلفن\": \"0212853\",\r\n })\r\n }\r\n }, [])\r\n\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
مشخصات فروشنده
\r\n \r\n \r\n \r\n {\r\n Object.keys(sellerDetailLineOne)?.length > 0 &&\r\n Object.entries(sellerDetailLineOne)?.map(([item, value]) => (\r\n \r\n\r\n ))\r\n }\r\n \r\n \r\n
\r\n {item}\r\n {value}\r\n
\r\n {\r\n Object.keys(sellerDetailLineTwo).length > 0 &&\r\n \r\n \r\n \r\n {\r\n Object.entries(sellerDetailLineTwo).map(([item, value]) => (\r\n \r\n ))\r\n }\r\n \r\n\r\n \r\n
\r\n\r\n {item}\r\n {value}\r\n
\r\n }\r\n
\r\n \r\n )\r\n}\r\n","import React, { useEffect } from 'react'\r\nimport { SeprateNumberWithComma } from \"../../../../Utility/Services/SeprateNumberWithComma\";\r\nimport persianJs from \"persianjs\";\r\nimport {connect} from \"react-redux\";\r\nimport bootstrapper from \"../../../../Reducers/bootstrapper\";\r\n\r\nconst TransactionTable = (props) => {\r\n const { singleInvoiceDetails, bootstrapper, vatPercent } = props;\r\n\r\n const officialInvoiceName = {\r\n number: \"شماره فاکتور\",\r\n creationDateTime: \"تاریخ ایجاد\",\r\n type: \"نوع فاکتور\",\r\n description: \"شرح کالا\",\r\n count: \"تعداد/مقدار\",\r\n basePrice: \"مبلغ واحد\",\r\n finalPrice: \"مبلغ کل \",\r\n discountPrice: \"مبلغ تخفیف \",\r\n totalPriceAfterDiscount: \"مبلغ کل پس از تخفیف \",\r\n vatPercent: \"مالیات \",\r\n totalPriceAfterVatAndDiscount: \"جمع مبلغ کل بعلاوه مالیات و عوارض \",\r\n fifteenRemarkPrice: \"تبصره 6 قانون بودجه\",\r\n };\r\n\r\n useEffect(() => {\r\n }, [singleInvoiceDetails])\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n {officialInvoiceName && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n\r\n {singleInvoiceDetails && singleInvoiceDetails?.details?.map((el , i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n\r\n }\r\n {singleInvoiceDetails && (\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n\r\n {singleInvoiceDetails.totalPrice && (\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n
مشخصات کالا یا خدمات موردمعامله
{officialInvoiceName.description}{officialInvoiceName.count}{officialInvoiceName.basePrice}{officialInvoiceName.finalPrice}{officialInvoiceName.discountPrice}{officialInvoiceName.totalPriceAfterDiscount}%{vatPercent} {officialInvoiceName.vatPercent}{officialInvoiceName.totalPriceAfterVatAndDiscount}
{el.description}{el.count}{SeprateNumberWithComma(el.basePrice)} ريال{SeprateNumberWithComma(el.netPrice)} ريال{SeprateNumberWithComma(el.discountPrice)} ريال {SeprateNumberWithComma(el.priceAfterDiscount)} ريال\r\n {SeprateNumberWithComma(el.vatPrice)} ريال\r\n {SeprateNumberWithComma(el.finalPrice)} ريال
تبصره 6 قانون بودجه{SeprateNumberWithComma(singleInvoiceDetails.fifteenRemarkPrice)} ريال
\r\n جمع کل:  \r\n {\r\n (singleInvoiceDetails.totalPrice >= 0) &&\r\n persianJs(`${singleInvoiceDetails.totalPrice}`).digitsToWords().toString()\r\n }\r\n  ریال\r\n {SeprateNumberWithComma(singleInvoiceDetails.totalPrice)} ريال
\r\n
\r\n )\r\n}\r\nconst mapStateToProps = (state) => ({\r\n bootstrapper: state.bootstrapper,\r\n});\r\n\r\nexport default connect(mapStateToProps)(TransactionTable);\r\n","import {email, invoiceDate, invoiceNumber, OldPanelInvoiceEmail, withEmail, withMobile} from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const AddInvoiceNumberSchema = Yup.object().shape({\r\n invoiceNumber,\r\n invoiceDate\r\n});\r\nexport const AddInvoiceNumberInOldPanelSchema = Yup.object().shape({\r\n OldPanelInvoiceEmail,\r\n withEmail,\r\n withMobile,\r\n invoiceNumber,\r\n invoiceDate\r\n});\r\n\r\nexport const RetryOldPanelInvoiceSchema = Yup.object().shape({\r\n OldPanelInvoiceEmail,\r\n withEmail,\r\n withMobile,\r\n});","import {Formik} from \"formik\";\r\nimport React, {useEffect, useState} from \"react\";\r\nimport {toast} from \"react-toastify\";\r\nimport {StyledButton} from \"../../../../../Component/Kit/Button\";\r\nimport {FormGroup, FormLable, StyledCheckBox, StyledForm, StyledInput,} from \"../../../../../Component/Kit/Form\";\r\nimport Modal from \"../../../../../Component/Kit/Modal\";\r\nimport ApiClient from \"../../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../../Requester/Urls\";\r\nimport {\r\n AddInvoiceNumberInOldPanelSchema,\r\n AddInvoiceNumberSchema,\r\n} from \"../../../../../Utility/Validation/Schema/AddInvoiceNumberSchema\";\r\nimport {MyDatePicker} from \"../../../../../Component/Shared/DatePicker\";\r\n\r\n\r\nexport const AddNumberToInvoiceModal = (props) => {\r\n const [isOldPanel, setIsOldPanel] = useState(false);\r\n const [userEmail, setUserEmail] = useState(\"\");\r\n const {\r\n officialInvoiceId,\r\n isReturn,\r\n data,\r\n visible,\r\n setVisible,\r\n onSubmit,\r\n onCancel,\r\n onClose,\r\n hasOldPanel,\r\n email,\r\n } = props;\r\n\r\n\r\n const formSubmit = function (values, actions) {\r\n\r\n const dataBody = {\r\n number: values.invoiceNumber,\r\n date: values.invoiceDate,\r\n sendSms: !data ? values.sendSms : false,\r\n sepidarRegisterOptions: {\r\n intendedFirstName: values.intendedFirstName,\r\n intendedLastName: values.intendedLastName,\r\n isNewNameBeRegistered: values.isNewNameBeRegistered,\r\n ignoreCheckToRegistrationNewCustomer: values.ignoreCheckToRegistrationNewCustomer\r\n }\r\n };\r\n\r\n const params = {\r\n isReturn: isReturn,\r\n };\r\n if (isOldPanel) {\r\n dataBody[\"sendLinkViaSms\"] = values.withMobile;\r\n dataBody[\"email\"] =\r\n values.withEmail && values.OldPanelInvoiceEmail\r\n ? values.OldPanelInvoiceEmail\r\n : \"\";\r\n\r\n if (!data) {\r\n ApiClient.Post(\r\n Urls.NumberedOldPanelInvoice(officialInvoiceId),\r\n dataBody\r\n ).then((res) => {\r\n toast.success(\"فاکتور شماره دار و در سپیدار ثبت شد!\");\r\n setVisible(false);\r\n onSubmit()\r\n });\r\n } else {\r\n delete dataBody['sepidarRegisterOptions'];\r\n ApiClient.Put(\r\n Urls.NumberedOldPanelInvoice(officialInvoiceId),\r\n dataBody\r\n ).then((res) => {\r\n toast.success(\" شماره فاکتور با موفقیت ویرایش شد!\");\r\n setVisible(false);\r\n onSubmit()\r\n });\r\n }\r\n\r\n } else {\r\n\r\n if (!data) {\r\n ApiClient.Post(\r\n Urls.setNumberForInvoice(officialInvoiceId, params),\r\n dataBody\r\n ).then((res) => {\r\n toast.success(\"فاکتور شماره دار و در سپیدار ثبت شد!\");\r\n setVisible(false);\r\n onSubmit()\r\n });\r\n } else {\r\n delete dataBody['sepidarRegisterOptions'];\r\n ApiClient.Put(\r\n Urls.setNumberForInvoice(officialInvoiceId, params),\r\n dataBody\r\n ).then((res) => {\r\n toast.success(\" شماره فاکتور با موفقیت ویرایش شد!\");\r\n setVisible(false);\r\n onSubmit()\r\n });\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n\r\n useEffect(() => {\r\n setIsOldPanel(hasOldPanel || false);\r\n setUserEmail(email);\r\n setVisible(visible);\r\n }, [hasOldPanel, email, visible]);\r\n\r\n\r\n return (\r\n \r\n
\r\n {data === null && (\r\n
آیا مایلید فاکتور مورد نظر را شماره دار نمایید؟
\r\n )}\r\n
\r\n {\r\n formSubmit(values, actions);\r\n }}\r\n onReset={(values, formikBag) => {\r\n setVisible(false);\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n {(isOldPanel && !data) && (\r\n <>\r\n \r\n نحوه ارسال\r\n \r\n
\r\n \r\n formik.setFieldValue(\"withMobile\", e.target.checked)\r\n }\r\n />\r\n \r\n formik.setFieldValue(\"withEmail\", e.target.checked)\r\n }\r\n />\r\n\r\n
\r\n \r\n formik.setFieldValue(\r\n \"OldPanelInvoiceEmail\",\r\n e.target.value\r\n )\r\n }\r\n />\r\n \r\n )}\r\n \r\n formik.setFieldValue(\"invoiceNumber\", e.target.value)\r\n }\r\n />\r\n\r\n \r\n تاریخ فاکتور\r\n {\r\n formik.setFieldValue(\"invoiceDate\", event.baseFormat);\r\n }}\r\n name=\"invoiceDate\"\r\n error={\r\n formik.errors.invoiceDate !== undefined\r\n ? formik.errors.invoiceDate\r\n : false\r\n }\r\n />\r\n \r\n\r\n {!data &&\r\n\r\n <>\r\n
\r\n\r\n \r\n formik.setFieldValue(\"sendSms\", e.target.checked)\r\n }\r\n />\r\n\r\n formik.setFieldValue(\"isNewNameBeRegistered\", e.target.checked)}\r\n />\r\n\r\n formik.setFieldValue(\"ignoreCheckToRegistrationNewCustomer\", e.target.checked)}\r\n\r\n />\r\n\r\n
\r\n\r\n
\r\n {\r\n formik.values.isNewNameBeRegistered &&\r\n <>\r\n
\r\n \r\n formik.setFieldValue(\"intendedFirstName\", e.target.value)\r\n }\r\n />\r\n
\r\n\r\n
\r\n \r\n formik.setFieldValue(\"intendedLastName\", e.target.value)\r\n }\r\n />\r\n
\r\n \r\n }\r\n
\r\n \r\n\r\n }\r\n\r\n
\r\n \r\n {data === null ? \"تایید\" : \"ویرایش\"}\r\n \r\n\r\n \r\n بستن\r\n \r\n
\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n","import * as Yup from \"yup\";\r\nimport {invoiceDiscount} from \"../Rules\";\r\n\r\nexport const EditDiscountSchema = Yup.object().shape({\r\n invoiceDiscount\r\n});\r\n","import { Field, Formik } from \"formik\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { toast } from \"react-toastify\";\r\nimport { StyledButton } from \"../../../../../Component/Kit/Button\";\r\nimport { CheckBox } from \"../../../../../Component/Kit/Checkbox\";\r\nimport { StyledForm, StyledInput } from \"../../../../../Component/Kit/Form\";\r\nimport Modal from \"../../../../../Component/Kit/Modal\";\r\nimport ApiClient from \"../../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../../Requester/Urls\";\r\nimport { SeprateNumberWithComma } from \"../../../../../Utility/Services/SeprateNumberWithComma\";\r\nimport { EditDiscountSchema } from \"../../../../../Utility/Validation/Schema/EditDiscountSchema\";\r\n\r\nexport const EditInvoiceDiscountModal = (props) => {\r\n const {\r\n officialInvoiceId,\r\n data,\r\n hasOldPanel,\r\n isSave,\r\n visible,\r\n setVisible,\r\n onCancel,\r\n onClose,\r\n } = props;\r\n const [isCustom, setIsCustom] = useState(false);\r\n const [discountKey, setDiscountKey] = useState(null);\r\n const [invoiceDetails, setInvoiceDetails] = useState({});\r\n const [invoiceNewDetails, setInvoiceNewDetails] = useState({\r\n discountPrice: 0,\r\n vatPrice: 0,\r\n finalPrice: 0,\r\n });\r\n\r\n // const [oldPriceDetails, setOldPriceDetails] = useState({})\r\n const isCustomHandler = (payload) => {\r\n setIsCustom(payload);\r\n // TODO: refactor\r\n };\r\n const saveKey = () => {\r\n if (hasOldPanel) {\r\n ApiClient.Patch(\r\n Urls.getOldPanelOfficialDiscount(\r\n officialInvoiceId,\r\n invoiceDetails.detailDiscountId\r\n ),\r\n JSON.stringify(discountKey)\r\n ).then((res) => {\r\n setVisible(false);\r\n setDiscountKey(null);\r\n setIsCustom(false);\r\n toast.success(\"فرآیند با موفقیت انجام گرفت!\");\r\n isSave(true);\r\n });\r\n } else {\r\n ApiClient.Put(\r\n Urls.getOfficialDiscount(\r\n officialInvoiceId,\r\n invoiceDetails.detailDiscountId\r\n ),\r\n JSON.stringify(discountKey)\r\n ).then((res) => {\r\n setVisible(false);\r\n setDiscountKey(null);\r\n setIsCustom(false);\r\n toast.success(\"فرآیند با موفقیت انجام گرفت!\");\r\n isSave(true);\r\n });\r\n }\r\n };\r\n useEffect(() => {\r\n if (Object.keys(data).length > 0) {\r\n let payload = JSON.parse(JSON.stringify(data));\r\n let discountItem = payload.details.find((a) => a.isDiscountable === true);\r\n if (discountItem) {\r\n payload.totalPrice = SeprateNumberWithComma(payload.totalPrice);\r\n payload.vatPrice = SeprateNumberWithComma(discountItem.vatPrice);\r\n payload.discountPrice = SeprateNumberWithComma(\r\n discountItem.discountPrice\r\n );\r\n payload.finalPrice = SeprateNumberWithComma(discountItem.finalPrice);\r\n payload.detailDiscountId = discountItem.invoiceDetailId;\r\n setInvoiceDetails(payload);\r\n }\r\n }\r\n }, [data]);\r\n return (\r\n \r\n
\r\n
آیا تمایل به تغییر مبلغ تخفیف دارید؟
\r\n
\r\n {\r\n const params = {\r\n suggestedDiscountPrice:\r\n isCustom || values.invoiceDiscount === 0\r\n ? values.invoiceDiscount\r\n : 0,\r\n };\r\n if (hasOldPanel) {\r\n ApiClient.Post(\r\n Urls.getOldPanelOfficialDiscount(\r\n officialInvoiceId,\r\n invoiceDetails.detailDiscountId\r\n ),\r\n Number(params.suggestedDiscountPrice)\r\n ).then((res) => {\r\n const newDetails = {\r\n discountPrice: SeprateNumberWithComma(\r\n res.result.discountPrice\r\n ),\r\n vatPrice: SeprateNumberWithComma(res.result.vatPrice),\r\n finalPrice: SeprateNumberWithComma(res.result.finalPrice),\r\n totalPrice: SeprateNumberWithComma(res.result.totalPrice),\r\n };\r\n setInvoiceNewDetails(newDetails);\r\n setDiscountKey(res.result.key);\r\n });\r\n } else {\r\n ApiClient.Get(\r\n Urls.getOfficialDiscount(\r\n officialInvoiceId,\r\n invoiceDetails.detailDiscountId\r\n ),\r\n params\r\n ).then((res) => {\r\n const newDetails = {\r\n discountPrice: SeprateNumberWithComma(\r\n res.result.discountPrice\r\n ),\r\n vatPrice: SeprateNumberWithComma(res.result.vatPrice),\r\n finalPrice: SeprateNumberWithComma(res.result.finalPrice),\r\n totalPrice: SeprateNumberWithComma(res.result.totalPrice),\r\n };\r\n setInvoiceNewDetails(newDetails);\r\n setDiscountKey(res.result.key);\r\n });\r\n }\r\n }}\r\n onReset={(values, formikBag) => {\r\n setVisible(false);\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n \r\n \r\n \r\n \r\n formik.setFieldValue(\"invoiceDiscount\", e.target.value)\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
مبلغ قبلیمبلغ جدید
مبلغ تخفیف\r\n {invoiceDetails.discountPrice} ريال\r\n \r\n {invoiceNewDetails.discountPrice} ريال\r\n
مالیات\r\n {invoiceDetails.vatPrice} ريال\r\n \r\n {invoiceNewDetails.vatPrice} ريال\r\n
مبلغ نهایی پیامک\r\n {invoiceDetails.finalPrice} ريال\r\n \r\n {invoiceNewDetails.finalPrice} ريال\r\n
جمع کل\r\n {invoiceDetails.totalPrice} ريال\r\n \r\n {invoiceNewDetails.totalPrice} ريال\r\n
\r\n\r\n
\r\n \r\n محاسبه\r\n \r\n\r\n saveKey()}\r\n >\r\n ذخیره\r\n \r\n
\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {useHistory} from \"react-router-dom\";\r\nimport {Formik} from \"formik\";\r\nimport {toast} from \"react-toastify\";\r\nimport Swal from \"sweetalert2\";\r\n\r\n\r\nimport {StyledButton} from \"../../../../../Component/Kit/Button\";\r\nimport {StyledCheckBox, StyledForm, StyledInput,} from \"../../../../../Component/Kit/Form\";\r\nimport Modal from \"../../../../../Component/Kit/Modal\";\r\nimport ApiClient from \"../../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../../Requester/Urls\";\r\n\r\n\r\nexport const SepidarModal = (props) => {\r\n const {\r\n singleOfficialInvoice,\r\n officialInvoiceId,\r\n data,\r\n visible,\r\n setVisible,\r\n onCancel,\r\n onClose,\r\n hasOldPanel,\r\n } = props;\r\n const history = useHistory();\r\n const [isOldPanel, setIsOldPanel] = useState(false);\r\n\r\n const submitForm = (values, actions) => {\r\n const body = JSON.stringify(values);\r\n\r\n actions.setSubmitting(true);\r\n if (isOldPanel) {\r\n ApiClient.Post(\r\n Urls.registerOldPanelSepidar(officialInvoiceId),\r\n body\r\n ).then((res) => {\r\n setVisible(false);\r\n Swal.fire({\r\n title: \"درخواست شما در سامانه سپیدار ثبت شد\",\r\n html:\r\n `

نام مشتری : ${\r\n res.result?.customerFullName\r\n ? res.result?.customerFullName\r\n : \"- - -\"\r\n }

` +\r\n `

وضعیت مشتری : ${\r\n res.result?.isExistCustomer ? \"وجود داشت\" : \"ثبت شد\"\r\n }

` +\r\n `

کد مشتری : ${res.result?.customerCode}

` +\r\n `

شناسه مشتری : ${\r\n res.result?.customerId\r\n ? res.result?.customerId\r\n : \"- - -\"\r\n }

` +\r\n `

کد فاکتور : ${\r\n singleOfficialInvoice.type === 2\r\n ? res.result?.returnedInvoiceCode\r\n : res.result?.invoiceCode\r\n }

` +\r\n `

شناسه فاکتور : ${\r\n singleOfficialInvoice.type === 2\r\n ? res.result?.returnedInvoiceId\r\n : res.result?.invoiceId\r\n }

` +\r\n `

کد رسید : ${\r\n res.result?.receiptCode\r\n ? res.result?.receiptCode\r\n : \"- - -\"\r\n }

` +\r\n `

شناسه رسید : ${\r\n res.result?.receiptId\r\n ? res.result?.receiptId\r\n : \"- - -\"\r\n }

`,\r\n text: \"\",\r\n icon: \"info\",\r\n confirmButtonColor: \"#3085d6\",\r\n confirmButtonText: \"تایید\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n actions.setSubmitting(false);\r\n toast.success(\"فرآیند با موفقیت انجام گرفت!\");\r\n history.push(`/financial/invoices/old-panel-pending`);\r\n }\r\n });\r\n });\r\n } else {\r\n ApiClient.Post(\r\n singleOfficialInvoice.type === 2\r\n ? Urls.registerSepidarReturnInvoice(officialInvoiceId)\r\n : Urls.registerSepidar(officialInvoiceId),\r\n body\r\n ).then((res) => {\r\n setVisible(false);\r\n Swal.fire({\r\n title: \"درخواست شما در سامانه سپیدار ثبت شد\",\r\n html:\r\n `

نام مشتری : ${\r\n res.result?.customerFullName\r\n ? res.result?.customerFullName\r\n : \"- - -\"\r\n }

` +\r\n `

وضعیت مشتری : ${\r\n res.result?.isExistCustomer ? \"وجود داشت\" : \"ثبت شد\"\r\n }

` +\r\n `

کد مشتری : ${res.result?.customerCode}

` +\r\n `

شناسه مشتری : ${\r\n res.result?.customerId\r\n ? res.result?.customerId\r\n : \"- - -\"\r\n }

` +\r\n `

کد فاکتور : ${\r\n singleOfficialInvoice.type === 2\r\n ? res.result?.returnedInvoiceCode\r\n : res.result?.invoiceCode\r\n }

` +\r\n `

شناسه فاکتور : ${\r\n singleOfficialInvoice.type === 2\r\n ? res.result?.returnedInvoiceId\r\n : res.result?.invoiceId\r\n }

` +\r\n `

کد رسید : ${\r\n res.result?.receiptCode\r\n ? res.result?.receiptCode\r\n : \"- - -\"\r\n }

` +\r\n `

شناسه رسید : ${\r\n res.result?.receiptId\r\n ? res.result?.receiptId\r\n : \"- - -\"\r\n }

`,\r\n text: \"\",\r\n icon: \"info\",\r\n confirmButtonColor: \"#3085d6\",\r\n confirmButtonText: \"تایید\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n actions.setSubmitting(false);\r\n toast.success(\"فرآیند با موفقیت انجام گرفت!\");\r\n history.push(`/financial/invoices`);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setIsOldPanel(hasOldPanel || false);\r\n }, [hasOldPanel]);\r\n return (\r\n onClose()}\r\n onCancel={onCancel}\r\n headerTitle={\"ثبت در سپیدار\"}\r\n >\r\n {data && (\r\n
\r\n
\r\n {\r\n submitForm(values, actions);\r\n }}\r\n onReset={(values, formikBag) => {\r\n setVisible(false);\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n\r\n
\r\n\r\n formik.setFieldValue(\"sendSms\", e.target.checked)}\r\n />\r\n\r\n formik.setFieldValue(\"sepidarRegisterOptions\", {\r\n ...formik.values.sepidarRegisterOptions,\r\n isNewNameBeRegistered: e.target.checked,\r\n })}\r\n />\r\n\r\n formik.setFieldValue(\"sepidarRegisterOptions\", {\r\n ...formik.values.sepidarRegisterOptions,\r\n ignoreCheckToRegistrationNewCustomer: e.target.checked,\r\n })}\r\n />\r\n\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n {\r\n formik.values.sepidarRegisterOptions.isNewNameBeRegistered &&\r\n <>\r\n
\r\n \r\n formik.setFieldValue(\"sepidarRegisterOptions\", {\r\n ...formik.values.sepidarRegisterOptions,\r\n intendedFirstName: e.target.value,\r\n }\r\n )\r\n }\r\n />\r\n
\r\n\r\n
\r\n \r\n formik.setFieldValue(\"sepidarRegisterOptions\", {\r\n ...formik.values.sepidarRegisterOptions,\r\n intendedLastName: e.target.value,\r\n }\r\n )\r\n }\r\n />\r\n
\r\n \r\n }\r\n
\r\n\r\n
\r\n \r\n تایید\r\n \r\n\r\n \r\n بستن\r\n \r\n
\r\n \r\n )}\r\n \r\n
\r\n
\r\n )}\r\n \r\n );\r\n};\r\n","let invoiceDetailItem = [\r\n { name: \"پیامک\", value: 1 },\r\n { name: \"ماژول\", value: 2 },\r\n { name: \"خط\", value: 3 },\r\n { name: \"ارسال از دکل\", value: 4 },\r\n];\r\n\r\nexport default invoiceDetailItem;\r\n","import * as Yup from \"yup\";\r\nimport {basePrice, count, description, item , discountPrice} from \"../Rules\";\r\n\r\nexport const EditInvoiceDetailSchema = Yup.object().shape({\r\n details: Yup.array().of(\r\n Yup.object().shape({\r\n basePrice,\r\n description,\r\n count,\r\n item,\r\n discountPrice\r\n })\r\n )\r\n});\r\n","\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport Modal from \"../../../../../Component/Kit/Modal\";\r\nimport {Field, FieldArray, Form, Formik} from \"formik\";\r\nimport {StyledForm, StyledInput, StyledSelect} from \"../../../../../Component/Kit/Form\";\r\nimport {StyledButton} from \"../../../../../Component/Kit/Button\";\r\nimport invoiceDetailItem from \"../../../../../Utility/Model/InvoiceDetailsItem\";\r\nimport {EditInvoiceDetailSchema} from \"../../../../../Utility/Validation/Schema/EditInvoiceDetailSchema\";\r\nimport ApiClient from \"../../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../../Requester/Urls\";\r\nimport {toast} from \"react-toastify\";\r\nimport {NumericalValidationMultilang} from \"../../../../../Utility/method/NumericalValidationMultilang\";\r\n\r\nexport const EditDetailInvoiceModal = (props) => {\r\n const {\r\n data,\r\n visible,\r\n setVisible,\r\n onSubmit,\r\n onCancel,\r\n onClose,\r\n } = props;\r\n\r\n const history = useHistory();\r\n\r\n\r\n const closeModal = () => {\r\n onClose();\r\n };\r\n\r\n\r\n\r\n function toEnglishDigits(str) {\r\n const persianNumbers = [\"۱\", \"۲\", \"۳\", \"۴\", \"۵\", \"۶\", \"۷\", \"۸\", \"۹\", \"۰\"]\r\n const arabicNumbers = [\"١\", \"٢\", \"٣\", \"٤\", \"٥\", \"٦\", \"٧\", \"٨\", \"٩\", \"٠\"]\r\n const englishNumbers = [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"0\"]\r\n\r\n return str.toString().split(\"\").map(c => englishNumbers[persianNumbers.indexOf(c)] ||\r\n englishNumbers[arabicNumbers.indexOf(c)] || c).join(\"\")\r\n }\r\n\r\n\r\n return (\r\n closeModal()}\r\n onCancel={onCancel}\r\n width=\"large\"\r\n headerTitle={\"ویرایش مشخصات فاکتور\"}\r\n >\r\n {data?.details?.length > 0 &&\r\n {\r\n\r\n const formValues = values.details.map(\r\n (a) => {\r\n return {\r\n id: a.invoiceDetailId ? a.invoiceDetailId : null,\r\n description: a.description,\r\n count: toEnglishDigits(a.count),\r\n basePrice: toEnglishDigits(a.basePrice),\r\n discountPrice: toEnglishDigits(a.discountPrice),\r\n item: a.item\r\n }\r\n }\r\n )\r\n ApiClient.Post(Urls.changeInvoiceDetails(data.id), formValues).then((res) => {\r\n toast.success(\"تایید اولیه تغییرات فاکتور با موفقیت انجام شد .\");\r\n onSubmit(res)\r\n onClose();\r\n });\r\n }}\r\n render={({ values,handleSubmit,handleReset,handleBlur,isValid , dirty, setFieldValue ,errors,touched}) => (\r\n \r\n (\r\n\r\n
\r\n
\r\n arrayHelpers.insert( values.details.length + 1, '')} // insert an empty string at a position\r\n >\r\n افزودن کالا\r\n \r\n
\r\n {values.details && values.details.length > 0 &&\r\n\r\n values.details.map((friend, index) => (\r\n\r\n
\r\n \r\n setFieldValue(`details.${index}.item`, e.target.value)\r\n }\r\n />\r\n \r\n setFieldValue(`details.${index}.description`, e.target.value)\r\n }\r\n error={(touched && touched.description && touched.description[index] && values.description[index] == 0)\r\n ? \"این فیلد الزامی است.\"\r\n : ((errors && errors.description && errors.description[index]) ? errors.description[index] : 'false')\r\n }\r\n />\r\n \r\n setFieldValue(`details.${index}.count`, e.target.value)\r\n }\r\n error={(touched && touched.count && touched.count[index] && values.count[index] == 0)\r\n ? \"این فیلد الزامی است.\"\r\n : ((errors && errors.count && errors.count[index]) ? errors.count[index] : 'false')\r\n }\r\n />\r\n \r\n setFieldValue(`details.${index}.basePrice`, e.target.value)\r\n }\r\n error={(touched && touched.basePrice && touched.basePrice[index] && values.basePrice[index] == 0)\r\n ? \"این فیلد الزامی است.\"\r\n : ((errors && errors.basePrice && errors.basePrice[index]) ? errors.basePrice[index] : 'false')\r\n }\r\n />\r\n \r\n setFieldValue(`details.${index}.discountPrice`, e.target.value)\r\n }\r\n error={(touched && touched.discountPrice && touched.discountPrice[index] && values.discountPrice[index] == 0)\r\n ? \"این فیلد الزامی است.\"\r\n : ((errors && errors.discountPrice && errors.discountPrice[index]) ? errors.discountPrice[index] : 'false')\r\n }\r\n />\r\n\r\n arrayHelpers.remove(index)}\r\n >\r\n x\r\n \r\n\r\n
\r\n\r\n\r\n ))\r\n\r\n }\r\n\r\n
\r\n \r\n تایید اولیه\r\n \r\n\r\n \r\n بستن\r\n \r\n
\r\n\r\n
\r\n\r\n )}\r\n\r\n />\r\n \r\n )}\r\n />\r\n }\r\n \r\n );\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport WhiteSmsIcon from \"../../../../Component/Icon/WhiteSmsIcon\";\r\nimport BackToPage from \"../../../../Component/Kit/back\";\r\nimport { StyledButton } from \"../../../../Component/Kit/Button\";\r\nimport {\r\n HeaderContent,\r\n MainContent,\r\n WrapperLayout,\r\n} from \"../../../../Component/Kit/Layout\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport DateConvert from \"../../../../Utility/Services/date-convert\";\r\nimport { BuyerDetails } from \"../../TransactionDetails/BuyerDetails\";\r\nimport { SellerDetails } from \"../../TransactionDetails/SellerDetails\";\r\nimport TransactionTable from \"../../TransactionDetails/TransactionTable\";\r\nimport { AddNumberToInvoiceModal } from \"./AddNumberToInvoiceModal\";\r\nimport { EditInvoiceDiscountModal } from \"./EditInvoiceDiscountModal\";\r\nimport { SepidarModal } from \"./SepidarModal\";\r\nimport { EditDetailInvoiceModal } from \"./EditDetailInvoiceModal\";\r\nimport { toast } from \"react-toastify\";\r\nimport Swal from \"sweetalert2\";\r\n\r\nexport const OfficialInvoiceItem = (props) => {\r\n const officialInvoiceId = props.match.params.id;\r\n const isReturn = props.match.params.isReturn.replace(\"isReturn=\", \"\");\r\n const history = useHistory();\r\n const [singleOfficialInvoice, setSingleOfficialInvoice] = useState({});\r\n const [invoiceTableDetails, setInvoiceTableDetails] = useState({});\r\n const [editableInvoiceData, setEditableInvoiceData] = useState(null);\r\n const [addNumberToInvoiceModalVisible, setAddNumberToInvoiceModalVisible] =\r\n useState(false);\r\n const [editInvoiceDiscountModalVisible, setEditInvoiceDiscountModalVisible] =\r\n useState(false);\r\n const [sepidarModal, showSepidarModal] = useState(false);\r\n const [editDetailsModal, showEditDetailsModal] = useState(false);\r\n const [sepidarInvoice, setSepidarInvoice] = useState(0);\r\n const [editKey, setEditKey] = useState(0);\r\n const [vatPercent, setVatPercent] = useState();\r\n\r\n const officialInvoiceName = {\r\n number: \"شماره فاکتور\",\r\n createdAt: \"تاریخ فاکتور\",\r\n type: \"نوع فاکتور\",\r\n };\r\n const saveHandler = (isSave) => {\r\n if (isSave) {\r\n getData();\r\n }\r\n };\r\n const getData = () => {\r\n const params = {\r\n isReturn: isReturn,\r\n };\r\n ApiClient.Get(Urls.GetOfficialInvoices(officialInvoiceId), params).then(\r\n (res) => {\r\n let responseData = res.result;\r\n mapData(responseData)\r\n setSepidarInvoice(responseData?.number)\r\n setVatPercent(responseData.details[0].vatPercent);\r\n }\r\n );\r\n\r\n };\r\n\r\n const mapData = (responseData) => {\r\n const response = responseData?.key ? responseData.invoice : responseData\r\n setEditKey(responseData?.key);\r\n if (response.number) {\r\n setEditableInvoiceData({\r\n number: response.number,\r\n date: response.createdAt,\r\n });\r\n }\r\n response.address = [response.provinceName, response.cityName, response.address].join(\" \")\r\n response.createdAt = DateConvert(response.createdAt);\r\n setSingleOfficialInvoice(JSON.parse(JSON.stringify(response)));\r\n setInvoiceTableDetails(JSON.parse(JSON.stringify(response)));\r\n }\r\n useEffect(() => {\r\n getData();\r\n }, []);\r\n\r\n const addNumberToInvoice = () => {\r\n setAddNumberToInvoiceModalVisible(true);\r\n };\r\n const editDiscountModalHandler = () => {\r\n setEditInvoiceDiscountModalVisible(true);\r\n };\r\n const returnInvoiceHandler = () => {\r\n history.push(\r\n `/financial/invoice/returnInvoice?invoiceId=${officialInvoiceId}&userId=${invoiceTableDetails.userId}`\r\n );\r\n };\r\n const cancelInvoiceHandler = () => {\r\n Swal.fire({\r\n title: '',\r\n text: `آیا از ابطال این فاکتور مطمئن هستید؟`,\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Post(Urls.cancelInvoice(invoiceTableDetails.userId, officialInvoiceId))\r\n .then(res => {\r\n toast.success('فاکتور ابطال شد.');\r\n getData()\r\n })\r\n }\r\n })\r\n\r\n }\r\n\r\n\r\n const removeInvoiceHandler = () => {\r\n Swal.fire({\r\n title: '',\r\n text: `آیا از حذف این فاکتور مطمئن هستید؟`,\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Delete(Urls.deleteInvoice(officialInvoiceId))\r\n .then(res => {\r\n toast.success('فاکتور حذف شد.');\r\n history.goBack()\r\n })\r\n }\r\n })\r\n\r\n }\r\n\r\n\r\n const onEditInvoice = () => {\r\n ApiClient.Put(\r\n Urls.EditInvoiceDetail(invoiceTableDetails.id),\r\n JSON.stringify(editKey)\r\n ).then((res) => {\r\n toast.success(\"تغییرات فاکتور با موفقیت انجام شد .\");\r\n getData()\r\n });\r\n };\r\n const onAddNumberToInvoice = () => {\r\n getData();\r\n };\r\n return (\r\n \r\n
\r\n \r\n {singleOfficialInvoice.canModifyDiscountPrice ? (\r\n editDiscountModalHandler()}\r\n >\r\n ویرایش تخفیف\r\n \r\n ) : (\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n {isReturn === \"true\"\r\n ? \"صورت حساب برگشت فروش کالا\"\r\n : \"صورتحساب فروش کالا\"}\r\n

\r\n
\r\n
\r\n {invoiceTableDetails && (\r\n <>\r\n
\r\n \r\n\r\n
\r\n \r\n {officialInvoiceName.number} :{\" \"}\r\n {invoiceTableDetails.number}\r\n \r\n \r\n {officialInvoiceName.createdAt} :\r\n {invoiceTableDetails.createdAt}\r\n \r\n {invoiceTableDetails.type === 3 &&\r\n \r\n ابطال شده\r\n \r\n }\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n
\r\n {Object.keys(invoiceTableDetails).length > 0 && (\r\n addNumberToInvoice()}\r\n >\r\n {!invoiceTableDetails.number ? \"تایید فاکتور\" : \"ویرایش شماره فاکتور\"}\r\n \r\n )}\r\n\r\n\r\n\r\n {Object.keys(invoiceTableDetails).length > 0 && invoiceTableDetails.number && (\r\n {\r\n showSepidarModal(true)\r\n }}\r\n >\r\n ثبت در سپیدار\r\n \r\n )}\r\n {editKey ?\r\n (\r\n <>\r\n\r\n \r\n ثبت نهایی تغییرات فاکتور\r\n \r\n {\r\n setEditKey(null)\r\n getData()\r\n }}\r\n >\r\n عدم تغییر فاکتور\r\n \r\n \r\n )\r\n :\r\n\r\n {\r\n showEditDetailsModal(true)\r\n }}\r\n >\r\n ویرایش مشخصات فاکتور\r\n \r\n\r\n\r\n }\r\n\r\n\r\n {isReturn !== \"true\" &&\r\n invoiceTableDetails.number &&\r\n !invoiceTableDetails.hasReturn && (\r\n returnInvoiceHandler()}\r\n >\r\n ثبت فاکتور برگشتی\r\n \r\n )}\r\n\r\n\r\n\r\n {invoiceTableDetails.number && invoiceTableDetails.type !== 3 &&\r\n cancelInvoiceHandler()}\r\n >\r\n ابطال\r\n \r\n }\r\n\r\n\r\n {\r\n removeInvoiceHandler()\r\n }}\r\n >\r\n حذف\r\n \r\n\r\n {\r\n \r\n setEditInvoiceDiscountModalVisible(false)\r\n }\r\n onClose={() =>\r\n setEditInvoiceDiscountModalVisible(false)\r\n }\r\n />\r\n }\r\n {\r\n \r\n setAddNumberToInvoiceModalVisible(false)\r\n }\r\n onClose={() => setAddNumberToInvoiceModalVisible(false)}\r\n />\r\n }\r\n {\r\n showSepidarModal(false)}\r\n onClose={() => showSepidarModal(false)}\r\n />\r\n }\r\n { showEditDetailsModal(false)}\r\n onClose={() => showEditDetailsModal(false)}\r\n onSubmit={(res) => mapData(res.result)}\r\n />}\r\n
\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default OfficialInvoiceItem;\r\n","import { BankProviderList } from '../Model/bank-provider.model';\r\n\r\nexport function GetBankProvider(value) {\r\n let result = BankProviderList.find((item) => item.value ===value);\r\n return result?.name\r\n}","import { trakingNumber } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const ConfirmationPaymentSchema = Yup.object().shape({\r\n trakingNumber\r\n});\r\n","\r\nimport { Formik } from \"formik\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { StyledForm, StyledInput } from \"../../../../Component/Kit/Form\";\r\nimport { StyledButton } from \"../../../../Component/Kit/Button\";\r\nimport { ConfirmationPaymentSchema } from \"../../../../Utility/Validation/Schema/ConfirmationPaymentSchema\";\r\nimport Swal from \"sweetalert2\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport { toast } from \"react-toastify\";\r\n\r\nexport const PaymentConfirmationModal = ({ data, onCloseModal, dataModalChanged }) => {\r\n const [paymentId, setPaymentId] = useState(null);\r\n\r\n useEffect(() => {\r\n if (Object.entries(data).length > 0)\r\n setPaymentId(data.id)\r\n }, [data])\r\n\r\n return (\r\n
\r\n\r\n
کد پیگیری خود را برای تایید پرداخت، وارد نمایید.
\r\n {\r\n Swal.fire({\r\n title: '',\r\n text: `آیا از تایید پرداخت مطمئن هستید؟`,\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Patch(Urls.paymentConfirmation(paymentId), JSON.stringify(values.trakingNumber))\r\n .then((res) => {\r\n toast.success('فرآیند با موفقیت انجام گرفت!')\r\n onCloseModal(false);\r\n actions.resetForm();\r\n dataModalChanged();\r\n })\r\n .catch(() => actions.resetForm())\r\n }\r\n })\r\n\r\n }}\r\n onReset={(values, formikBag) => {\r\n onCloseModal(false);\r\n }}\r\n >\r\n\r\n {(formik) => (\r\n \r\n formik.setFieldValue(\"trakingNumber\", e.target.value)}\r\n />\r\n\r\n
\r\n \r\n تایید\r\n \r\n\r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n
\r\n\r\n\r\n \r\n )}\r\n \r\n\r\n
\r\n )\r\n}","import React, {useCallback, useEffect, useState} from 'react';\r\nimport {useHistory, useLocation, useParams, useRouteMatch} from \"react-router-dom\";\r\nimport {HeaderContent, MainContent, PageTitleLayout, WrapperLayout} from \"../../../Component/Kit/Layout\";\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport {ConvertQueryString} from \"../../../Utility/Services/convert-query-string\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport {GetBankProvider} from '../../../Utility/Services/get-bank-provider';\r\nimport {PaymentStatusService} from \"../../../Utility/Services/PaymentStatusService\";\r\nimport {SeprateNumberWithComma} from \"../../../Utility/Services/SeprateNumberWithComma\";\r\nimport {PaymentConfirmationModal} from './PaymentConfirmationModal';\r\nimport BackToPage from \"../../../Component/Kit/back\";\r\n\r\nconst OnlinePayment = () => {\r\n let match = useRouteMatch();\r\n const {id} = useParams();\r\n const location = useLocation();\r\n const history = useHistory();\r\n\r\n const [onlinePaymentLists, setOnlinePaymentLists] = useState({});\r\n const [modalData, setModalData] = useState({});\r\n const [paymentConfirmationModal, setPaymentConfirmationModal] = useState(false);\r\n\r\n const tableConfig = {\r\n header: {\r\n userName: \"نام کاربری\",\r\n description: \"توضیحات\",\r\n isOnlineName: \"روش پرداخت\",\r\n bankName: \"بانک دریافت کننده\",\r\n statusName: \"وضعیت\",\r\n finalPrice: \"قیمت نهایی\",\r\n createdAt: \"تاریخ و زمان ایجاد\",\r\n isOfficialShow: \"نوع\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n }, edit: {\r\n icon: \"fa fa-edit\", condition: (data) => {\r\n return (data?.status === 1);\r\n },\r\n },\r\n },\r\n mode: [\"filter\", \"search\", \"export-excel\"],\r\n filters: [\"datePickerFilter\", 'PaymentStatusFilter', 'isOnline', 'bankId', 'isOfficial']\r\n }\r\n\r\n const openConfirmationPaymentModal = (item) => {\r\n setPaymentConfirmationModal(true);\r\n setModalData(item);\r\n };\r\n\r\n const handleClose = (event) => {\r\n if (event) setPaymentConfirmationModal(false);\r\n }\r\n\r\n\r\n const formatPaymentItem = (item) => {\r\n item.finalPrice = `${SeprateNumberWithComma(item.finalPrice)} ریال`;\r\n item.createdAt = DateConvert(item.createdAt);\r\n item.bankName = GetBankProvider(item.bankId);\r\n item.statusName = PaymentStatusService(item.status);\r\n item.isOfficialShow = item.isOfficial ? \"رسمی\" : (item.canBeChangeToOfficial ? `غیر رسمی ` : \"غیر رسمی\");\r\n item.isOnlineName = item.isOnline ? 'آنلاین' : 'آفلاین';\r\n };\r\n\r\n const getData = useCallback(() => {\r\n if (id) {\r\n ApiClient.Get(Urls.userPayments(id), ConvertQueryString(location.search))\r\n .then(res => {\r\n let responseData = res.result;\r\n responseData.items.forEach(formatPaymentItem);\r\n setOnlinePaymentLists(responseData);\r\n });\r\n\r\n } else {\r\n ApiClient.Get(Urls.getOnlinePaymentList(), ConvertQueryString(location.search))\r\n .then(res => {\r\n let responseData = res.result;\r\n responseData.items.forEach(formatPaymentItem);\r\n setOnlinePaymentLists(responseData);\r\n });\r\n }\r\n\r\n }, [location.search, id]);\r\n\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [getData]);\r\n\r\n const tableActions = (items) => {\r\n switch (items.actionName) {\r\n case \"view\":\r\n history.push(`/financial/online-payment/${items.data.id}`);\r\n break;\r\n case \"edit\":\r\n openConfirmationPaymentModal(items.data);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n const exportActions = (item) => {\r\n let params = {\r\n ...ConvertQueryString(location.search)\r\n }\r\n ApiClient.Get(Urls.getExportOnlinePaymentList(item.export), params)\r\n .then((res) => {\r\n let resData = res.result;\r\n if (!Array.isArray(resData)) {\r\n const url = `${Urls.base()}/${resData}`\r\n window.open(url, '_blank')\r\n } else {\r\n resData.map((item) => {\r\n const url = `${Urls.base()}/${item}`\r\n windowOpen(url);\r\n })\r\n }\r\n })\r\n }\r\n\r\n const windowOpen = (item) => {\r\n window.open(item)\r\n }\r\n\r\n return (\r\n
\r\n {id && \r\n \r\n \r\n\r\n }\r\n\r\n \r\n
\r\n
\r\n \r\n {\r\n id\r\n ?\r\n <>\r\n
پرداخت‌های کاربر
\r\n \r\n در اینجا لیست پرداخت‌های این کاربر مورد بررسی قرار می‌گیرد.\r\n \r\n\r\n \r\n\r\n :\r\n\r\n <>\r\n
لیست پرداخت‌ها
\r\n در این بخش لیست همه پرداخت‌ها قابل مشاهده است.\r\n \r\n }\r\n\r\n\r\n\r\n
\r\n\r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n {\r\n handleClose(false)\r\n }}>\r\n \r\n تایید پرداخت\r\n {\r\n handleClose(true)\r\n }} className=\"close-btn fa fa-xmark\"/>\r\n \r\n \r\n setPaymentConfirmationModal(e)}\r\n dataModalChanged={() => getData()}\r\n />\r\n \r\n\r\n \r\n\r\n
)\r\n}\r\n\r\n\r\nexport default OnlinePayment;","import {\r\n forbiddenWords\r\n} from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const AddForbiddenWordsSchema = Yup.object().shape({\r\n forbiddenWords\r\n});\r\n","import React from \"react\";\r\nimport { Formik } from \"formik\";\r\nimport { StyledForm, StyledInput } from \"../../../Component/Kit/Form\";\r\nimport { StyledButton } from \"../../../Component/Kit/Button\";\r\nimport { AddForbiddenWordsSchema } from \"../../../Utility/Validation/Schema/AddForbiddenWordsScema\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport Swal from \"sweetalert2\";\r\nimport { toast } from \"react-toastify\";\r\n\r\nfunction AddForbiddenWords({ onCloseModal, dataChange, data }) {\r\n return (\r\n <>\r\n {\r\n Swal.fire({\r\n title: data.hasOwnProperty('id') ? 'آیا از ویرایش این کلمه ممنوعه مطمئن هستید؟' : 'آیا از اضافه کردن این کلمه ممنوعه مطمئن هستید؟',\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n if (data.hasOwnProperty('id')) {\r\n ApiClient.Put(Urls.modifyAndDeleteForbiddenWords(data.id), JSON.stringify(values.forbiddenWords))\r\n .then((res) => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n // values.forbiddenWords = ''\r\n actions.resetForm();\r\n dataChange(true);\r\n })\r\n } else {\r\n ApiClient.Post(Urls.forbiddenWords(), JSON.stringify(values.forbiddenWords))\r\n .then((res) => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n // values.forbiddenWords = ''\r\n actions.resetForm();\r\n dataChange(true);\r\n })\r\n }\r\n }\r\n })\r\n\r\n }}\r\n // onReset={(values, formikBag) => {\r\n // onCloseModal(false)\r\n // }}\r\n >\r\n {(formik) => (\r\n \r\n \r\n formik.setFieldValue(\"forbiddenWords\", e.target.value)\r\n }\r\n />\r\n\r\n
\r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n \r\n {data.hasOwnProperty('id') ? 'ویرایش کردن' : 'اضافه کردن'}\r\n \r\n
\r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default AddForbiddenWords\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const ValidateWrapper = styled.div`\r\n border-top: 1px solid #e2e5ec;\r\n margin-top: 1.5rem;\r\n padding-top: 1.5rem;\r\n`;\r\n\r\nexport const ValidateWrapperText = styled.p`\r\n border-bottom: 0.5rem;\r\n font-weight: bold;\r\n`;","const arabicToPersianMap = {\r\n 'ا': 'ا',\r\n 'ب': 'ب',\r\n 'پ': 'پ',\r\n 'ت': 'ت',\r\n 'ث': 'ث',\r\n 'ج': 'ج',\r\n 'چ': 'چ',\r\n 'ح': 'ح',\r\n 'خ': 'خ',\r\n 'د': 'د',\r\n 'ذ': 'ذ',\r\n 'ر': 'ر',\r\n 'ز': 'ز',\r\n 'ژ': 'ژ',\r\n 'س': 'س',\r\n 'ش': 'ش',\r\n 'ص': 'ص',\r\n 'ض': 'ض',\r\n 'ط': 'ط',\r\n 'ظ': 'ظ',\r\n 'ع': 'ع',\r\n 'غ': 'غ',\r\n 'ف': 'ف',\r\n 'ق': 'ق',\r\n 'ک': 'ک',\r\n 'ك': 'ک',\r\n 'گ': 'گ',\r\n 'ل': 'ل',\r\n 'م': 'م',\r\n 'ن': 'ن',\r\n 'و': 'و',\r\n 'ه': 'ه',\r\n 'ی': 'ی',\r\n 'ى': 'ی',\r\n 'ئ': 'ی',\r\n 'ء': 'ء',\r\n 'أ': 'ا',\r\n 'إ': 'ا',\r\n 'ؤ': 'و',\r\n 'آ': 'آ',\r\n 'ة': 'ه',\r\n 'ي': 'ی',\r\n 'ٔ': '',\r\n 'ٕ': '',\r\n 'ٰ': '',\r\n 'ٹ': 'ت',\r\n 'ڈ': 'د',\r\n 'ڑ': 'ر',\r\n 'ں': 'ن',\r\n 'ۃ': 'ه',\r\n 'ے': 'ی'\r\n};\r\n\r\n\r\nexport function ArabicToFa(arabicText) {\r\n let persianText = '';\r\n for (let char of arabicText) {\r\n persianText += arabicToPersianMap[char] || char;\r\n }\r\n return persianText;\r\n}\r\n\r\n\r\n","import React, { useState } from 'react';\r\nimport { StyledButton } from '../../../Component/Kit/Button';\r\nimport { StyledTextArea } from '../../../Component/Kit/Form';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport { ValidateWrapper, ValidateWrapperText } from '../index.jsx';\r\nimport Modal from '../../../Component/Kit/Modal';\r\nimport {ArabicToFa} from \"../../../Utility/method/farsi\";\r\n\r\n\r\nexport const ValidateMessage = ({ onCloseModal, visible }) => {\r\n const [textMessage, setTextMessage] = useState('');\r\n const [validatedMessage, setValidatedMessage] = useState([]);\r\n const [invalidItems, setInvalidItems] = useState([]);\r\n\r\n const validationHandler = () => {\r\n setValidatedMessage(ArabicToFa(textMessage).split(' '));\r\n ApiClient.Get(Urls.ValidationMessage(), { messageText: textMessage })\r\n .then(res => {\r\n setInvalidItems(res.result);\r\n })\r\n }\r\n\r\n const modalCloseHandler = () => {\r\n onCloseModal(false);\r\n setTextMessage('');\r\n setValidatedMessage([]);\r\n setInvalidItems([]);\r\n }\r\n\r\n return (\r\n modalCloseHandler()}\r\n visible={visible}\r\n onCancel={() => modalCloseHandler()}\r\n headerTitle=\"اعتبارسنجی متن پیامک\"\r\n >\r\n
\r\n
\r\n setTextMessage(e.target.value)}\r\n />\r\n
\r\n validationHandler()}\r\n >\r\n اعتبارسنجی متن\r\n \r\n
\r\n
\r\n\r\n {\r\n validatedMessage.length > 0 &&\r\n \r\n متن اعتبارسنجی شده: \r\n
\r\n {\r\n validatedMessage.map((item, index) => (\r\n item.includes(x)) ? 'red-text' : ''}\r\n >{item} \r\n ))\r\n }\r\n
\r\n
\r\n }\r\n
\r\n \r\n\r\n )\r\n}\r\n\r\nexport default ValidateMessage;\r\n","import React, { useCallback, useEffect, useState } from \"react\";\r\nimport ApiClient from \"../../Requester/ApiClient\";\r\nimport Urls from \"../../Requester/Urls\";\r\nimport Table from \"./../../Component/Shared/Table/Table\";\r\nimport { HeaderContent, MainContent, PageTitleLayout } from \"../../Component/Kit/Layout\";\r\nimport { StyledButton } from \"../../Component/Kit/Button\";\r\nimport Modal from \"./../../Component/Kit/Modal\";\r\nimport AddForbiddenWords from \"./AddForbiddenWord\";\r\nimport Swal from \"sweetalert2\";\r\nimport { toast } from \"react-toastify\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { ConvertQueryString } from \"../../Utility/Services/convert-query-string\";\r\nimport ValidateMessage from \"./ValidateMessage\";\r\n\r\nfunction ForbiddenWordsList() {\r\n const location = useLocation()\r\n const [forbiddenData, setForbiddenData] = useState({});\r\n const [modifyItem, setModifyItem] = useState({});\r\n const [isModal, setIsModal] = useState(false);\r\n const [validateModalHandler, setValidateModalHandler] = useState(false);\r\n const tableConfig = {\r\n header: {\r\n word: \"کلمه ممنوعه\",\r\n },\r\n actions: {\r\n edit: {\r\n icon: \"fa fa-edit\",\r\n },\r\n delete: {\r\n icon: \"fa fa-trash\",\r\n },\r\n },\r\n mode: [\"search\"],\r\n };\r\n // const applyFilter = (filter) => {\r\n // settableFilter(filter);\r\n // };\r\n const addForbiddenWordModal = () => {\r\n setIsModal(true)\r\n setModifyItem({ ...{} })\r\n }\r\n\r\n const tableActions = (item) => {\r\n switch (item.actionName) {\r\n case 'edit':\r\n const currentItem = item.data\r\n setModifyItem({ ...currentItem });\r\n setIsModal(true);\r\n break;\r\n case 'delete':\r\n deleteForbiddenWord(item.data.id);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n const deleteForbiddenWord = (item) => {\r\n Swal.fire({\r\n title: '',\r\n text: `آیا از حذف این کلمه ممنوعه مطمئن هستید؟`,\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Delete(Urls.modifyAndDeleteForbiddenWords(item))\r\n .then(res => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n getForbiddenWordsList()\r\n })\r\n }\r\n })\r\n\r\n }\r\n const getForbiddenWordsList = useCallback(() => {\r\n ApiClient.Get(Urls.forbiddenWords(), ConvertQueryString(location.search))\r\n .then(res => {\r\n let data = res.result;\r\n setForbiddenData(data);\r\n })\r\n }, [location.search])\r\n\r\n const modalDataChange = (e) => {\r\n if (e) {\r\n getForbiddenWordsList()\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getForbiddenWordsList()\r\n }, [location.search, getForbiddenWordsList])\r\n\r\n return (\r\n <>\r\n \r\n
\r\n addForbiddenWordModal()}\r\n >\r\n اضافه کردن کلمات ممنوعه\r\n \r\n setValidateModalHandler(true)}\r\n >\r\n اعتبارسنجی پیامک\r\n \r\n
\r\n
\r\n \r\n \r\n
کلمات ممنوعه
\r\n در اینجا می‌توانید کلمات ممنوعه را مشاهده نمایید.\r\n
\r\n \r\n
\r\n setIsModal(false)}\r\n visible={isModal}\r\n onCancel={() => setIsModal(false)}\r\n headerTitle=\"حذف کلمه ممنوعه\"\r\n >\r\n setIsModal(e)}\r\n dataChange={(e) => modalDataChange(e)} />\r\n \r\n\r\n\r\n setValidateModalHandler(e)} />\r\n\r\n\r\n \r\n )\r\n}\r\n\r\nexport default ForbiddenWordsList;\r\n","import StepList from \"../../../Utility/Model/guest-step.model\";\r\n\r\nfunction GuestStep(value) {\r\n let result = StepList.find((item) => item.value ===value);\r\n return result.name\r\n}\r\nexport default GuestStep;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { PageTitleLayout } from \"../../../Component/Kit/Layout\";\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport GuestStep from \"../Services/guest-step\";\r\n\r\n\r\nconst FinishedList = () => {\r\n let history = useHistory();\r\n let location = useLocation();\r\n const [guestData, setGuestData] = useState({});\r\n\r\n function tableActions(items) {\r\n switch (items.actionName) {\r\n case \"view\":\r\n history.push(`/guest/item/${items.data.id}/info`, { from: location.pathname });\r\n break;\r\n case 'copy':\r\n const phoneNumber = items.data.mobile;\r\n navigator.clipboard.writeText(phoneNumber)\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n const tableConfig = {\r\n header: {\r\n fullName: \"نام و نام خانوادگی\",\r\n mobile: \"شماره همراه\",\r\n userName: \"نام کاربری\",\r\n step: \"وضعیت ثبت نام\",\r\n guestChecksCount: \"بررسی مجدد\",\r\n createdAt: \"تاریخ ایجاد\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\"\r\n },\r\n copy: {\r\n icon: \"far fa-copy\",\r\n },\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n ApiClient.Get(`${Urls.getAllGuest()}?isDeleted=false&step=4&pageSize=50`)\r\n .then((res) => {\r\n let data = res.result;\r\n data.items.map((m) => {\r\n m.createdAt = DateConvert(m.createdAt);\r\n m.lastModifiedDateTime = m.lastModifiedDateTime\r\n ? DateConvert(m.lastModifiedDateTime)\r\n : DateConvert(m.createdAt);\r\n m.step = GuestStep(m.step);\r\n m.mobile = `0${m.mobile}`;\r\n m.guestChecksCount = `${m.guestChecksCount} بار`;\r\n return m\r\n });\r\n setGuestData(data);\r\n })\r\n }, [location.search]);\r\n return (\r\n <>\r\n\r\n \r\n
کاربران منتظر تایید
\r\n \r\n دراینجا لیستی از کاربرانی که درانتظار تایید هستند، مورد بررسی قرار می‌گیرد.\r\n \r\n
\r\n \r\n\r\n \r\n );\r\n};\r\n\r\nexport default FinishedList;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { PageTitleLayout } from \"../../../Component/Kit/Layout\";\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport { ConvertQueryString } from \"../../../Utility/Services/convert-query-string\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport GuestStep from '../Services/guest-step';\r\n\r\n\r\nconst GuestList = () => {\r\n let history = useHistory();\r\n let location = useLocation();\r\n const [guestData, setGuestData] = useState({});\r\n\r\n function tableActions(items) {\r\n switch (items.actionName) {\r\n case \"view\":\r\n history.push(`/guest/item/${items.data.id}/info`, { from: location.pathname, search: location.search });\r\n break;\r\n case 'copy':\r\n const phoneNumber = items.data.mobile;\r\n navigator.clipboard.writeText(phoneNumber)\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n const tableConfig = {\r\n header: {\r\n fullName: \"نام و نام خانوادگی\",\r\n mobile: \"شماره همراه\",\r\n userName: \"نام کاربری\",\r\n step: \"وضعیت ثبت نام\",\r\n guestChecksCount: \"بررسی مجدد\",\r\n createdAt: \"تاریخ ایجاد\",\r\n isDeleted: \"منقضی شده\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\"\r\n },\r\n copy: {\r\n icon: \"far fa-copy\",\r\n },\r\n },\r\n // add every field that you want :)\r\n placeholder: ['fullName'],\r\n mode: [\"filter\", \"search\"],\r\n filters: [\"datePickerFilter\", \"step\", \"isDeleted\"],\r\n };\r\n\r\n useEffect(() => {\r\n ApiClient.Get(Urls.getAllGuest(), ConvertQueryString(location.search))\r\n .then((res) => {\r\n let data = res.result;\r\n data.items.map((m, i) => {\r\n m.createdAt = DateConvert(m.createdAt);\r\n m.lastModifiedDateTime = m.lastModifiedDateTime\r\n ? DateConvert(m.lastModifiedDateTime)\r\n : DateConvert(m.createdAt);\r\n m.step = GuestStep(m.step);\r\n m.mobile = `0${m.mobile}`;\r\n m.isDeleted = m.isDeleted ? \"بله\" : \"خیر\";\r\n m.guestChecksCount = `${m.guestChecksCount} بار`;\r\n return m;\r\n });\r\n setGuestData(data);\r\n })\r\n }, [location.search]);\r\n \r\n return (\r\n <>\r\n\r\n \r\n
کاربران مهمان
\r\n \r\n دراینجا لیستی از کاربرانی که ثبت نام آنها تکمیل نشده است، مورد بررسی قرار می‌گیرد.\r\n\r\n \r\n
\r\n \r\n\r\n \r\n );\r\n};\r\n\r\nexport default GuestList;\r\n","import React, { useEffect } from 'react';\r\nimport { NavLink, Route, Switch, useHistory, useLocation } from \"react-router-dom\";\r\nimport { MainContent } from \"../../Component/Kit/Layout\";\r\nimport FinishedList from \"./GuestsList/finished-list\";\r\nimport GuestList from './GuestsList/guest-list';\r\n\r\nconst GuestPage = ({ match }) => {\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n if (location.pathname === `${match.url}`) {\r\n history.push(`${match.url}/finished`)\r\n }\r\n }, [])\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n
  • \r\n \r\n منتظر تایید\r\n \r\n
  • \r\n
  • \r\n \r\n کاربران مهمان\r\n \r\n
  • \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default GuestPage\r\n","let CompanyActivityList = [\r\n { value: 1, name: \"بانک/موسسه مالی\" },\r\n { value: 2, name: \"خدماتی\" },\r\n { value: 3, name: \"تولیدی\" },\r\n { value: 4, name: \"تبلیغاتی\" },\r\n { value: 5, name: \"بیمه\" },\r\n { value: 6, name: \"خبرگزاری/رسانه\" },\r\n { value: 7, name: \"اطلاعات فناوری\" },\r\n { value: 9, name: \"فرهنگی/ورزشی\" },\r\n { value: 8, name: \"سایر\" },\r\n];\r\nlet CompanyTypeList = [\r\n { value: 1, name: \"سهامی خاص\" },\r\n { value: 2, name: \"سهامی عام\" },\r\n { value: 3, name: \"مسئولیت محدود\" },\r\n { value: 4, name: \"تضامنی\" },\r\n { value: 5, name: \"دولتی\" },\r\n { value: 6, name: \"وزارتخانه\" },\r\n { value: 7, name: \"سفارتخانه\" },\r\n { value: 8, name: \"مسجد\" },\r\n { value: 9, name: \"مدرسه\" },\r\n { value: 10, name: \"NGO\" },\r\n { value: 11, name: \"سایر\" },\r\n { value: 12, name: \"موسسه\" },\r\n];\r\nexport { CompanyActivityList, CompanyTypeList };\r\n","import {\r\n guestFirstName,\r\n guestLastName,\r\n guestFatherName,\r\n nationalId,\r\n guestCertificateNo,\r\n guestBirthDate,\r\n guestPhoneNumber,\r\n guestPostalCode,\r\n guestAddress,\r\n guestCompanyActivityField,\r\n guestCompanyName,\r\n guestRegistrationNumber,\r\n guestLegalNationalId,\r\n guestCompanyType,\r\n cityId,\r\n provinceId,\r\n} from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const EditGuestSchema = Yup.object().shape({\r\n guestFirstName,\r\n guestLastName,\r\n guestFatherName,\r\n nationalId,\r\n guestCertificateNo,\r\n guestBirthDate,\r\n guestPhoneNumber,\r\n guestPostalCode,\r\n guestAddress,\r\n cityId,\r\n provinceId,\r\n guestCompanyActivityField,\r\n});\r\nexport const EditGuestLegalSchema = Yup.object().shape({\r\n guestFirstName,\r\n guestLastName,\r\n guestFatherName,\r\n nationalId,\r\n guestCertificateNo,\r\n guestBirthDate,\r\n guestPhoneNumber,\r\n guestPostalCode,\r\n guestAddress,\r\n guestCompanyActivityField,\r\n guestCompanyName,\r\n guestRegistrationNumber,\r\n guestLegalNationalId,\r\n cityId,\r\n provinceId,\r\n guestCompanyType,\r\n});\r\n","import {Formik} from \"formik\";\r\nimport moment from \"moment-jalaali\";\r\nimport React, {useCallback, useEffect, useState} from \"react\";\r\nimport {useHistory, useRouteMatch} from \"react-router-dom\";\r\nimport {toast} from \"react-toastify\";\r\nimport Swal from \"sweetalert2\";\r\nimport BackToPage from \"../../../../../Component/Kit/back\";\r\nimport {StyledButton} from \"../../../../../Component/Kit/Button\";\r\nimport {\r\n FormLable,\r\n StyledForm,\r\n StyledInput,\r\n StyledRadioBtn,\r\n StyledSelect,\r\n StyledTextArea\r\n} from \"../../../../../Component/Kit/Form\";\r\nimport {HeaderContent, MainContent, PageTitleLayout} from \"../../../../../Component/Kit/Layout\";\r\nimport Modal from \"../../../../../Component/Kit/Modal\";\r\nimport {MyDatePicker} from \"../../../../../Component/Shared/DatePicker\";\r\nimport ApiClient from \"../../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../../Requester/Urls\";\r\nimport {CompanyActivityList, CompanyTypeList} from \"../../../../../Utility/Model/company.model\";\r\nimport {EditGuestLegalSchema, EditGuestSchema} from \"../../../../../Utility/Validation/Schema/EditGuestSchema\";\r\nimport GuestStep from \"../../../Services/guest-step\";\r\nimport {connect} from \"react-redux\";\r\n\r\nfunction ModifyGuestInformation({data}) {\r\n let match = useRouteMatch();\r\n let history = useHistory();\r\n const [nationalCard, setNationalCard] = useState(false);\r\n const [gazette, setGazette] = useState(false);\r\n const [guestData, setGuestData] = useState({});\r\n const [provinceItem, setProvinceItem] = useState([]);\r\n const [cityItem, setCityItem] = useState([]);\r\n\r\n const init = useCallback(async () => {\r\n setGuestData(data)\r\n const province = await ApiClient.Get(Urls.getProvince());\r\n setProvinceItem(province.result)\r\n if (data.provinceId) {\r\n const city = await ApiClient.Get(Urls.getCity(data.provinceId))\r\n setCityItem(city.result)\r\n }\r\n }, [data])\r\n\r\n useEffect(() => {\r\n init().then()\r\n }, [init]);\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n
ویرایش کاربر مهمان
\r\n در این بخش می‌توانید اطلاعات کاربر مهمان را ویرایش نمایید.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n let body = {\r\n \"firstName\": values.guestFirstName,\r\n \"lastName\": values.guestLastName,\r\n \"fatherName\": values.guestFatherName,\r\n \"nationalId\": values.nationalId,\r\n \"certificateNo\": values.guestCertificateNo,\r\n \"isMale\": values.guestIsMale,\r\n \"birthDate\": parseInt(values.guestBirthDate),\r\n \"phoneNumber\": values.guestPhoneNumber,\r\n \"postalCode\": values.guestPostalCode,\r\n \"cityId\": values.cityId,\r\n \"provinceId\": values.provinceId,\r\n \"address\": values.guestAddress,\r\n \"companyActivityField\": parseInt(values.guestCompanyActivityField),\r\n \"companyName\": values.guestCompanyName,\r\n \"registrationNumber\": values.guestRegistrationNumber,\r\n \"legalNationalId\": values.guestLegalNationalId,\r\n \"companyType\": parseInt(values.guestCompanyType),\r\n \"avenue\":values?.avenue,\r\n \"alley\": values?.alley,\r\n \"plaque\": values?.plaque,\r\n }\r\n Swal.fire({\r\n title: \"ویرایش کاربر مهمان\",\r\n text: \"آیا تغییرات ذخیره شود؟\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n ApiClient.Put(Urls.guest(match.params.id), body)\r\n .then(res => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n history.push(`/guest/item/${match.params.id}`)\r\n })\r\n\r\n }\r\n });\r\n\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
\r\n
\r\n \r\n formik.setFieldValue(\"guestFirstName\", e.target.value)\r\n }\r\n />\r\n
\r\n
\r\n \r\n formik.setFieldValue(\"guestLastName\", e.target.value)\r\n }\r\n />\r\n
\r\n
\r\n \r\n formik.setFieldValue(\"guestFatherName\", e.target.value)\r\n }\r\n />\r\n
\r\n
\r\n \r\n formik.setFieldValue(\"nationalId\", e.target.value)\r\n }\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n formik.setFieldValue(\"guestCertificateNo\", e.target.value)\r\n }\r\n />\r\n
\r\n
\r\n \r\n تاریخ تولد\r\n \r\n {\r\n formik.setFieldValue(\r\n \"guestBirthDate\",\r\n event.baseFormat\r\n )\r\n }}\r\n name=\"guestBirthDate\"\r\n max={moment().subtract(18, 'years')}\r\n error={\r\n formik.errors.guestBirthDate !== undefined\r\n ? formik.errors.guestBirthDate\r\n : false\r\n }\r\n />\r\n
\r\n
\r\n \r\n formik.setFieldValue(\"guestPhoneNumber\", e.target.value)\r\n }\r\n />\r\n
\r\n
\r\n \r\n formik.setFieldValue(\"guestPostalCode\", e.target.value)\r\n }\r\n />\r\n
\r\n
\r\n
\r\n
\r\n جنسیت \r\n
\r\n \r\n formik.setFieldValue(\"guestIsMale\", (e.target.value === 'true'))\r\n } />\r\n \r\n formik.setFieldValue(\"guestIsMale\", (e.target.value === 'true'))\r\n } />\r\n
\r\n
\r\n
\r\n \r\n formik.setFieldValue(\"guestCompanyActivityField\", e.target.value)\r\n }\r\n />\r\n
\r\n
\r\n {\r\n formik.setFieldValue(\"provinceId\", e.target.value);\r\n ApiClient.Get(Urls.getCity(e.target.value)).then(\r\n (res2) => {\r\n setCityItem(res2.result)\r\n formik.setFieldValue(\"cityId\", res2.result[0].value)\r\n }\r\n )\r\n\r\n }\r\n }\r\n />\r\n
\r\n
\r\n \r\n formik.setFieldValue(\"cityId\", e.target.value)\r\n }\r\n />\r\n
\r\n {guestData.isLegal ? (\r\n <>\r\n
\r\n \r\n formik.setFieldValue(\"guestCompanyName\", e.target.value)\r\n }\r\n />\r\n
\r\n
\r\n \r\n formik.setFieldValue(\"guestRegistrationNumber\", e.target.value)\r\n }\r\n />\r\n
\r\n
\r\n \r\n formik.setFieldValue(\"guestLegalNationalId\", e.target.value)\r\n }\r\n />\r\n
\r\n
\r\n \r\n formik.setFieldValue(\"guestCompanyType\", e.target.value)\r\n }\r\n />\r\n
\r\n \r\n ) : null}\r\n
\r\n
\r\n
\r\n \r\n formik.setFieldValue(\r\n \"avenue\",\r\n e.target.value\r\n )\r\n }\r\n />\r\n
\r\n
\r\n \r\n formik.setFieldValue(\r\n \"alley\",\r\n e.target.value\r\n )\r\n }\r\n />\r\n
\r\n
\r\n \r\n formik.setFieldValue(\r\n \"plaque\",\r\n e.target.value\r\n )\r\n }\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n formik.setFieldValue(\r\n \"guestAddress\",\r\n e.target.value\r\n )\r\n }\r\n />\r\n
\r\n
\r\n
\r\n \r\n ویرایش\r\n \r\n
\r\n
\r\n\r\n )}\r\n\r\n \r\n
\r\n
\r\n {guestData.nationalCardUploadedURL ? (\r\n
\r\n setNationalCard(true)}\r\n >\r\n \r\n
\r\n setNationalCard(false)}\r\n visible={nationalCard}\r\n headerTitle=\"اطلاعات هویتی\"\r\n >\r\n
\r\n \r\n
\r\n \r\n
\r\n ) : (\r\n \r\n \r\n مدارک شناسایی آپلود نشده است.\r\n
\r\n )}\r\n {guestData.isLegal ? (\r\n guestData.gazetteUploadedURL ? (\r\n
\r\n setGazette(true)}\r\n >\r\n \"gazette\"\r\n
\r\n setGazette(false)}\r\n visible={gazette}\r\n headerTitle=\"روزنامه رسمی\"\r\n >\r\n
\r\n \"gazette\"\r\n
\r\n \r\n \r\n ) : (\r\n \r\n \r\n روزنامه رسمی آپلود نشده است.\r\n \r\n )\r\n ) : null}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n data: state.guestData,\r\n});\r\n\r\nexport default connect(mapStateToProps)(ModifyGuestInformation);\r\n","import React from \"react\";\r\n\r\nfunction UploadIcon(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default UploadIcon;\r\n","import React from \"react\";\r\nimport {Col} from \"react-bootstrap\";\r\nimport styled from \"styled-components\";\r\nimport {theme} from \"../../Utility/Theme\";\r\nimport UploadIcon from \"../Icon/UploadIcon\";\r\nimport {FormError} from \"./Form\";\r\n\r\nexport const UploadConatiner = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n flex-wrap: wrap;\r\n position: relative;\r\n justify-content: center;\r\n\r\n svg {\r\n width: 95px;\r\n height: 95px;\r\n margin: auto;\r\n display: block;\r\n margin-bottom: 5px;\r\n }\r\n`;\r\n\r\nexport const UploadFileLayout = styled.div`\r\n height: 170px;\r\n flex-direction: column;\r\n margin-top: 10px;\r\n`;\r\n\r\nexport const UploadTitle = styled.div`\r\n width: 100%;\r\n font-family: IRANSans;\r\n font-size: 13px;\r\n font-weight: normal;\r\n line-height: 1.5rem;\r\n text-align: center;\r\n color: #999999;\r\n display: block;\r\n margin-bottom: 5px;\r\n`;\r\n\r\nexport const ImageBox = styled(Col)`\r\n width: 100%;\r\n height: 170px;\r\n overflow: hidden;\r\n display: block;\r\n /* margin-bottom: 2rem; */\r\n border: 1px dashed #ced4da;\r\n border-radius: 0.4rem;\r\n`;\r\n\r\nexport const FileNamePreview = styled.div`\r\n width: 100%;\r\n height: inherit;\r\n display: block;\r\n text-align: left;\r\n margin-top: 15px;\r\n`;\r\n\r\nexport const UploadImageWrapper = styled.div`\r\n border-radius: ${(props) => props.theme.radius};\r\n border: 1px solid ${(props) => props.theme.grey5};\r\n position: relative;\r\n /* width: fit-content;\r\n height: 300px; */\r\n /* width: 500px; */\r\n //width: fit-content;\r\n //height: auto;\r\n max-height: 350px;\r\n overflow: hidden;\r\n min-height: 150px;\r\n width: 100%;\r\n\r\n @media only screen and (max-width: 991px) {\r\n margin-top: 1rem;\r\n }\r\n\r\n @media only screen and (max-width: 767px) {\r\n height: 250px;\r\n }\r\n`;\r\n\r\nexport const UploadImageBox = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n &:hover {\r\n .overlay-control {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n img {\r\n width: 100%;\r\n max-height: 350px;\r\n object-fit: contain;\r\n border-radius: ${(props) => props.theme.radius};\r\n }\r\n\r\n .SquareCover {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n border-radius: 50%;\r\n }\r\n\r\n .overlay-control {\r\n display: flex;\r\n position: absolute;\r\n z-index: 2;\r\n width: 100%;\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n background: rgba(179, 179, 179, 40%);\r\n align-items: center;\r\n border-radius: ${(props) => props.theme.radius};\r\n justify-content: center;\r\n opacity: 0;\r\n transition: all 500ms ease;\r\n max-height: 350px;\r\n\r\n label {\r\n width: 5rem;\r\n height: 5rem;\r\n border-radius: 100%;\r\n background: ${(props) => props.theme.grey5};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: 2rem;\r\n color: ${(props) => props.theme.grey4};\r\n cursor: pointer;\r\n }\r\n }\r\n`;\r\n\r\nexport const UploadImageImageForm = styled.div`\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n\r\n > i {\r\n position: absolute;\r\n width: 5rem;\r\n height: 5rem;\r\n border-radius: 100%;\r\n background: ${(props) => props.theme.grey5};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: 2rem;\r\n color: ${(props) => props.theme.grey4};\r\n left: calc(50% - 2.5rem);\r\n top: calc(50% - 2.5rem);\r\n }\r\n\r\n input {\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n z-index: 1;\r\n cursor: pointer;\r\n opacity: 0;\r\n }\r\n`;\r\n\r\nexport const DeleteAction = styled.div`\r\n width: 100%;\r\n margin-bottom: .5rem;\r\n\r\n span:hover {\r\n transition: .3s;\r\n color: ${(props) => props.theme.redBtnHover};\r\n }\r\n`;\r\n\r\nexport const DownloadAction = styled.div`\r\n width: 100%;\r\n\r\n span:hover {\r\n transition: .3s;\r\n color: ${(props) => props.theme.darkGreenBtnHover};\r\n }\r\n`;\r\n\r\nexport const UploadFileBox = styled.div`\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n text-align: center;\r\n background: rgba(0, 0, 0, 0.02);\r\n border: 1px dashed #d9d9d9;\r\n border-radius: 8px;\r\n cursor: pointer;\r\n transition: border-color 0.3s;\r\n\r\n svg {\r\n width: 50px;\r\n height: 50px;\r\n }\r\n`;\r\n\r\nexport function UploadFileWrqapper(props) {\r\n const {id, fileUrl, onChange, format, className, imageCoverFit, name} = props;\r\n return (\r\n {fileUrl && (\r\n \r\n
\r\n \r\n
\r\n
)}\r\n \r\n {!fileUrl && }\r\n\r\n onChange(e)}\r\n />\r\n \r\n
);\r\n}\r\n\r\n\r\nexport function UploadFileWrqapperAllKindOfFile(props) {\r\n const inputElement = React.useRef()\r\n\r\n const {text, type, callbackfunc, error, name, file, deleteFile, downloadUrl} = props;\r\n\r\n function clickUploadBox() {\r\n inputElement.current.click()\r\n }\r\n\r\n function changeInput(e) {\r\n callbackfunc(e.target.files[0], true, inputElement)\r\n }\r\n\r\n function downloadFile(url) {\r\n\r\n const a = document.createElement('a')\r\n a.href = url;\r\n a.target = \"_blank\";\r\n\r\n document.body.appendChild(a)\r\n a.click()\r\n document.body.removeChild(a)\r\n }\r\n\r\n\r\n return (
\r\n clickUploadBox(e)}>\r\n\r\n
\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n فایل های پشتیبانی\r\n\r\n \r\n\r\n \r\n {text}\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n {error} \r\n\r\n {file &&
\r\n\r\n
\r\n \r\n {deleteFile(inputElement)}}>\r\n \r\n {file}\r\n \r\n \r\n\r\n {\r\n downloadUrl &&\r\n\r\n \r\n {\r\n downloadFile(downloadUrl)\r\n }}>\r\n\r\n \r\n دریافت فایل\r\n\r\n \r\n\r\n \r\n }\r\n\r\n
\r\n\r\n
}\r\n\r\n
);\r\n}\r\n","export const GuestData = (data) => ({\r\n type: 'GUEST_DATA',\r\n data\r\n})\r\n","import React, {useEffect, useState} from 'react';\r\nimport {connect, useDispatch} from 'react-redux';\r\nimport {useHistory, useRouteMatch} from 'react-router-dom';\r\nimport {FormLayout} from '../../../../../Component/Kit/Form';\r\nimport {UploadFileWrqapper} from '../../../../../Component/Kit/UploadZone';\r\nimport {toast} from 'react-toastify';\r\nimport ApiClient from '../../../../../Requester/ApiClient';\r\nimport Urls from '../../../../../Requester/Urls';\r\nimport {GuestData} from \"../../../../../Actions/guest-data\";\r\n\r\nconst ModifyGuestDocument = ({guestData}) => {\r\n const dispatch = useDispatch();\r\n let match = useRouteMatch();\r\n const [nationalCardUrl, setNationalCardUrl] = useState('');\r\n const [gazetteURL, setGazetteURL] = useState('');\r\n\r\n useEffect(() => {\r\n setNationalCardUrl(guestData.nationalCardUploadedURL);\r\n setGazetteURL(guestData.gazetteUploadedURL || null);\r\n }, [guestData])\r\n\r\n const changeImageHandler = (e) => {\r\n const nationalCardImage = e.target.files[0];\r\n if (nationalCardImage.size > 3000000) {\r\n toast.warning(\"سایز عکس بیشتر از مقدار مجاز است\");\r\n return\r\n }\r\n const formData = new FormData();\r\n formData.append('file', nationalCardImage, nationalCardImage.name);\r\n ApiClient.Patch(Urls.modifyGuestNationalCard(match.params.id), formData)\r\n .then(res => {\r\n const payload = {\r\n ...guestData,\r\n nationalCardUploadedURL: res.result,\r\n }\r\n dispatch(GuestData(payload));\r\n setNationalCardUrl(res.result);\r\n toast.success('آپلود کارت ملی با موفقیت انجام شد.');\r\n });\r\n };\r\n\r\n const changeGazetteImageHandler = (e) => {\r\n const gazetteImage = e.target.files[0];\r\n if (gazetteImage.size > 3000000) {\r\n toast.warning(\"سایز عکس بیشتر از مقدار مجاز است\");\r\n return\r\n }\r\n const formData = new FormData();\r\n formData.append('file', gazetteImage, gazetteImage.name);\r\n ApiClient.Patch(Urls.modifyGuestGazette(match.params.id), formData)\r\n .then(res => {\r\n const payload = {\r\n ...guestData,\r\n gazetteUploadedURL: res.result,\r\n }\r\n dispatch(GuestData(payload));\r\n setGazetteURL(res.result);\r\n toast.success('آپلود روزنامه رسمی با موفقیت انجام شد.');\r\n });\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
ویرایش اسناد کاربر مهمان
\r\n
\r\n\r\n
\r\n \r\n
\r\n کارت ملی\r\n
\r\n\r\n {\r\n changeImageHandler(e)\r\n }}\r\n format=\"image/jpg, image/jpeg, image/png\"\r\n />\r\n
\r\n
\r\n\r\n {guestData.gazetteUploadedURL &&\r\n
\r\n \r\n
\r\n روزنامه رسمی\r\n
\r\n\r\n {\r\n changeGazetteImageHandler(e)\r\n }}\r\n format=\"image/jpg, image/jpeg, image/png\"\r\n />\r\n
\r\n
\r\n }\r\n
\r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n guestData: state.guestData,\r\n});\r\nexport default connect(mapStateToProps)(ModifyGuestDocument);","import React, {useEffect} from \"react\";\r\nimport {NavLink, Route, Switch, useHistory, useRouteMatch} from \"react-router-dom\";\r\nimport BackToPage from \"../../../../Component/Kit/back\";\r\nimport {HeaderContent, MainContent, WrapperLayout} from \"../../../../Component/Kit/Layout\";\r\nimport {connect} from \"react-redux\";\r\nimport ModifyGuestInformation from \"./ModifyGuestInformation\";\r\nimport ModifyGuestDocument from \"./ModifyGuestDocument\";\r\n\r\nfunction EditGuest({data}) {\r\n const history = useHistory();\r\n let match = useRouteMatch();\r\n\r\n useEffect(() => {\r\n if (!Object.entries(data).length) {\r\n history.push(`/guest/item/${match.params.id}`);\r\n }\r\n }, [data, match.params.id]);\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n
    \r\n
  • \r\n \r\n ویرایش اطلاعات کاربر مهمان\r\n \r\n
  • \r\n
  • \r\n \r\n ویرایش مستندات\r\n \r\n
  • \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n data: state.guestData,\r\n});\r\n\r\nexport default connect(mapStateToProps)(EditGuest);\r\n","import React from 'react'\r\nimport * as Yup from 'yup';\r\nimport { description } from './../Rules';\r\n\r\nexport const AddGuestCommentSchema = Yup.object().shape({\r\n description\r\n})\r\n","import { Formik } from 'formik';\r\nimport React from 'react';\r\nimport { useRouteMatch } from 'react-router-dom';\r\nimport { toast } from 'react-toastify';\r\nimport { StyledButton } from '../../../../Component/Kit/Button';\r\nimport { StyledForm, StyledTextArea } from '../../../../Component/Kit/Form';\r\nimport ApiClient from '../../../../Requester/ApiClient';\r\nimport Urls from '../../../../Requester/Urls';\r\nimport { AddGuestCommentSchema } from './../../../../Utility/Validation/Schema/AddGuestCommentSchema';\r\n\r\nconst AddGuestCommentModal = ({ dataChange, onCloseModal }) => {\r\n const match = useRouteMatch();\r\n const id = match.params.id;\r\n \r\n return (\r\n <>\r\n
\r\n {\r\n const body = JSON.stringify(values.description)\r\n ApiClient.Post(Urls.GuestComment(id), body)\r\n .then(res => {\r\n toast.success('کامنت با موفقیت ثبت شد.');\r\n actions.resetForm()\r\n onCloseModal(false)\r\n dataChange(true)\r\n })\r\n }}\r\n onReset={(values, formikBag) => {\r\n onCloseModal(false)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n {\r\n const str = e.target.value.trim() !== '' ? e.target.value : '';\r\n formik.setFieldValue(\"description\", str)\r\n }}\r\n />\r\n\r\n
\r\n \r\n بستن\r\n \r\n\r\n \r\n افزودن کامنت\r\n \r\n
\r\n \r\n\r\n )}\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default AddGuestCommentModal","\r\nimport React from 'react'\r\nimport { StyledButton } from '../../../../Component/Kit/Button'\r\n\r\nconst GuestCommentDetailModal = ({ commentData, onCloseModal }) => {\r\n const headTitle = {\r\n adminUserName: \"نام‌کاربری ادمین\",\r\n content: \"توضیحات\",\r\n createdAt: \"تاریخ ایجاد\",\r\n }\r\n return (\r\n <>\r\n
\r\n
    \r\n {\r\n commentData &&\r\n Object.entries(headTitle).map(([item, value]) => (\r\n
  • \r\n
    \r\n {value}\r\n
    \r\n
    \r\n {commentData[item]}\r\n
    \r\n
  • \r\n ))\r\n }\r\n
\r\n\r\n
\r\n onCloseModal(false)}\r\n >\r\n بستن\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default GuestCommentDetailModal","import React, { useCallback, useEffect, useState } from 'react';\r\nimport { useRouteMatch } from 'react-router-dom';\r\nimport { StyledButton } from '../../../../Component/Kit/Button';\r\nimport { PageTitleLayout } from '../../../../Component/Kit/Layout';\r\nimport ApiClient from '../../../../Requester/ApiClient';\r\nimport Urls from '../../../../Requester/Urls';\r\nimport Modal from './../../../../Component/Kit/Modal';\r\nimport Table from './../../../../Component/Shared/Table/Table';\r\nimport DateConvert from './../../../../Utility/Services/date-convert';\r\nimport AddGuestCommentModal from './../AddGuestCommentModal/index';\r\nimport GuestCommentDetailModal from './comment-detail-modal';\r\n\r\nconst GuestCommentsList = () => {\r\n const match = useRouteMatch();\r\n const id = match.params.id;\r\n const [guestCommentsData, setGuestCommentsData] = useState({});\r\n const [guestCommentModal, setGuestCommentModal] = useState(false);\r\n const [guestAddCommentModal, setAddGuestCommentModal] = useState(false);\r\n const [commentModalData, setCommentModalData] = useState();\r\n\r\n const tableConfig = {\r\n header: {\r\n adminUserName: \"نام‌کاربری ادمین\",\r\n content: \"توضیحات\",\r\n createdAt: \"تاریخ ایجاد\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\"\r\n },\r\n }\r\n };\r\n\r\n function tableActions(item) {\r\n if (item.actionName === 'view') {\r\n setCommentModalData(item.data);\r\n setGuestCommentModal(true);\r\n }\r\n }\r\n\r\n const modalChangeHandler = (event) => {\r\n if (event) {\r\n getGuestComments();\r\n }\r\n };\r\n\r\n const getGuestComments = useCallback(() => {\r\n ApiClient.Get(Urls.GuestComment(id))\r\n .then(res => {\r\n res.result.map((item) => {\r\n item.createdAt = DateConvert(item.createdAt);\r\n })\r\n setGuestCommentsData(res.result)\r\n })\r\n }, [])\r\n\r\n\r\n useEffect(() => {\r\n getGuestComments();\r\n }, [id, getGuestComments])\r\n\r\n return (\r\n <>\r\n
\r\n \r\n
کامنت‌های کاربر مهمان
\r\n در اینجا لیستی از کامنت‌هایی که هنگام تایید کاربر، برای کاربر مهمان ثبت شد‌اند، مورد بررسی قرار می‌گیرد.\r\n
\r\n setAddGuestCommentModal(true)}\r\n >افزودن کامنت\r\n \r\n
\r\n\r\n \r\n\r\n setGuestCommentModal(false)}\r\n onCancel={() => setGuestCommentModal(false)}\r\n visible={guestCommentModal}\r\n headerTitle=\"کامنت ادمین برای کاربر مهمان\"\r\n >\r\n setGuestCommentModal(e)} />\r\n \r\n\r\n setAddGuestCommentModal(false)}\r\n onCancel={() => setAddGuestCommentModal(false)}\r\n visible={guestAddCommentModal}\r\n headerTitle=\"افزودن کامنت برای کاربر مهمان\"\r\n >\r\n setAddGuestCommentModal(e)} dataChange={modalChangeHandler} />\r\n \r\n\r\n \r\n );\r\n}\r\n\r\nexport default GuestCommentsList","import React, { useEffect, useState } from \"react\";\r\nimport { useLocation, useRouteMatch } from \"react-router-dom\";\r\nimport { PageTitleLayout } from \"../../../Component/Kit/Layout\";\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport { ConvertQueryString } from \"../../../Utility/Services/convert-query-string\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\n\r\nfunction IncommingCalls() {\r\n const location = useLocation();\r\n const [guestData, setGuestData] = useState([]);\r\n\r\n let match = useRouteMatch();\r\n\r\n const tableConfig = {\r\n header: {\r\n date: \"تاریخ تماس\",\r\n time: \"زمان تماس\",\r\n },\r\n actions: {},\r\n };\r\n\r\n useEffect(() => {\r\n ApiClient.Get(\r\n Urls.getIcommingCalls(\"guest\", match.params.id),\r\n ConvertQueryString(location.search)\r\n ).then((res) => {\r\n let data = res.result;\r\n data.items.map((m, i) => {\r\n m.date = DateConvert(m.createdAt).slice(11);\r\n m.time = DateConvert(m.createdAt).slice(0, 8);\r\n return m;\r\n });\r\n setGuestData(data);\r\n });\r\n }, [location.search]);\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\nexport default IncommingCalls;\r\n","import { CompanyActivityList, CompanyTypeList } from \"../Model/company.model\";\r\nfunction CompanyActivity(value) {\r\n let result = CompanyActivityList.find((item) => item.value === value);\r\n return result.name;\r\n}\r\n\r\nfunction CompanyType(value) {\r\n let result = CompanyTypeList.find((item) => item.value === value);\r\n return result.name;\r\n}\r\n\r\nexport { CompanyActivity, CompanyType };\r\n","let OutcomeList = [\r\n { name: \"اطلاعات هویتی اشتباه است.\", value: 1 },\r\n { name: \"عدم پاسخگویی به شماره ثابت.\", value: 2 },\r\n { name: \"تصاویر آپلود شده داری مشکل هستند.\", value: 3 },\r\n { name: \"تلفن ثابت اشتباه است.\", value: 5 },\r\n];\r\nexport default OutcomeList;\r\n\r\nlet OutcomeDescriptionList = [\r\n {\r\n name: 'سلام کاربر عزیز از ثبت نام و انتخاب شما متشکریم \\n متاسفانه ثبت شما به دلیل عدم تطابق اطلاعات ثبت شده با کارت ملی شما عدم تایید گردید لطفا اطلاعات مطابق کارت ملی ثبت شود .\\n باتشکر از همراهی و توجه شما SMS.IR _0212853', value: 1\r\n },\r\n {\r\n name: 'سلام کاربر عزیز از ثبت نام و انتخاب شما متشکریم \\n متاسفانه ثبت نام شما به دلیل عدم پاسخگویی به تلفن ثابت تایید نگردید لطفا شنبه الی چهارشنبه بین ساعات 8 الی 20:30 و پنج شنبه‌ها از ساعت 9 الی 13 جهت احراز هویت با شماره ثابت در دسترس خود با شماره‌ی 0212853 داخلی 1 تماس حاصل نمایید . \\n باتشکر از همراهی و توجه شما SMS.IR', value: 2\r\n },\r\n {\r\n name: 'سلام کاربر عزیز از ثبت نام و انتخاب شما متشکریم \\n لطفا جهت فعالسازی و تایید پنل پیامک خود عکس کارت ملی یا صفحه‌ی اول شناسنامه‌ی خود را بارگزاری بفرمایید . \\n باتشکر از همراهی و توجه شما SMS.IR', value: 3\r\n },\r\n {\r\n name: 'سلام کاربر عزیز از ثبت نام و انتخاب شما متشکریم \\n جهت فعالسازی و تایید پنل پیامک درج تلفن ثابت الزامی می‌باشد و جهت احراز هویت با شماره ثابت شما تماس گرفته خواهد شد ، لطفا شماره ثابت خود را در اطلاعات پنل خود ثبت نمایید . \\n باتشکر از همراهی و توجه شما SMS.IR', value: 5\r\n },\r\n];\r\n\r\nexport { OutcomeDescriptionList };\r\n\r\n\r\n","import OutcomeList, { OutcomeDescriptionList } from '../Models/outcome.model'\r\n\r\nfunction GuestOutcome(value) {\r\n let result = OutcomeList.find((item) => item.value === value);\r\n return result.name\r\n}\r\nexport default GuestOutcome\r\n\r\n\r\nexport function GuestOutcomeDescription(value) {\r\n let result = OutcomeDescriptionList.find((item) => item.value === value);\r\n return result.name\r\n}\r\n\r\n","import React from \"react\";\r\nimport { Accordion, Button, Card, CardColumns } from \"react-bootstrap\";\r\nimport DateConvert from \"../../../../Utility/Services/date-convert\";\r\nimport GuestOutcome from '../../Services/guest-outcome';\r\n\r\nfunction GuestLogs({ data }) {\r\n return (\r\n <>\r\n
\r\n \r\n \r\n بررسی مجدد\r\n \r\n \r\n \r\n \r\n {data.map((item, index) => (\r\n \r\n \r\n
\r\n
\r\n
{GuestOutcome(item.outcome)}
\r\n \r\n {DateConvert(item.createdAt)} | {item.adminFullName}\r\n \r\n
\r\n

\r\n {item.description}\r\n

\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n}\r\nexport default GuestLogs;\r\n","import { outcome, description } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const RejectGuestSchema = Yup.object().shape({\r\n outcome,\r\n description\r\n});\r\n","import { Formik } from \"formik\";\r\nimport React from \"react\";\r\nimport { StyledButton } from \"../../../../Component/Kit/Button\";\r\nimport { StyledForm, StyledSelect, StyledTextArea } from \"../../../../Component/Kit/Form\";\r\nimport { RejectGuestSchema } from \"../../../../Utility/Validation/Schema/RejectGuestSchema\";\r\nimport OutcomeList from \"../../Models/outcome.model\";\r\nimport { GuestOutcomeDescription } from \"../../Services/guest-outcome\";\r\n\r\nfunction RejectFormModal({ rejectEvent, onCloseModal }) {\r\n\r\n return (\r\n <>\r\n {\r\n let body = {\r\n outcome: parseInt(values.outcome),\r\n description: values.description,\r\n };\r\n rejectEvent(body);\r\n }}\r\n onReset={(values, formikBag) => {\r\n onCloseModal(false);\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n {\r\n formik.setFieldValue(\"outcome\", e.target.value);\r\n formik.setFieldValue(\"description\", GuestOutcomeDescription(Number(e.target.value)))\r\n }}\r\n />\r\n {\r\n const str = e.target.value.trim() !== '' ? e.target.value : ''\r\n formik.setFieldValue(\"description\", str);\r\n }}\r\n />\r\n
\r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n \r\n تایید\r\n \r\n
\r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default RejectFormModal;\r\n","import {\r\n companyName,\r\n registrationNumber,\r\n companyType,\r\n gazetteUploadedFile,\r\n nationalIdCompany\r\n} from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const ConvertUserTypeSchema = Yup.object().shape({\r\n companyName,\r\n registrationNumber,\r\n nationalIdCompany,\r\n companyType,\r\n gazetteUploadedFile\r\n});\r\n","import { Formik } from \"formik\";\r\nimport React, { useEffect, useState } from 'react';\r\nimport { toast } from \"react-toastify\";\r\nimport {StyledForm, StyledInput, StyledInputUpload, StyledSelect} from \"../../../Component/Kit/Form\";\r\nimport {FileNamePreview, ImageBox, UploadConatiner, UploadTitle} from \"../../../Component/Kit/UploadZone\";\r\nimport UploadIcon from \"../../../Component/Icon/UploadIcon\";\r\nimport {ConvertUserTypeSchema} from \"../../../Utility/Validation/Schema/ConvertUserTypeSchema\";\r\nimport Modal from \"../../../Component/Kit/Modal\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport { theme } from '../../../Utility/Theme';\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport {CompanyTypeList} from \"../../../Utility/Model/company.model\";\r\n\r\nimport {StyledButton} from \"../../../Component/Kit/Button\";\r\n\r\nexport const ConvertGuestType = (props) => {\r\n const { data, userId, visible, onClose, onCancel, setVisible, onSubmit } = props;\r\n const [uploadPreview, setUploadPreview] = useState(null);\r\n const [legal, setLegal] = useState(null);\r\n const [uploadFile, setUploadFile] = useState(null);\r\n\r\n useEffect(() => {\r\n setLegal(data.isLegal);\r\n }, [data])\r\n\r\n const handleOnBlur = (e) => {\r\n if (e.target.files[0] && e.target.length !== 0) {\r\n const file = e.target.files[0];\r\n setUploadPreview(URL.createObjectURL(file));\r\n setUploadFile(file);\r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n {\r\n setVisible(false);\r\n }}\r\n\r\n onSubmit={(values, actions) => {\r\n const formData = new FormData()\r\n formData.append('IsLegal', !data.isLegal)\r\n if (!data.isLegal) {\r\n formData.append('CompanyName', values.companyName)\r\n formData.append('RegistrationNumber', values.registrationNumber)\r\n formData.append('NationalId', values.nationalIdCompany)\r\n formData.append('CompanyType', values.companyType)\r\n formData.append('GazetteUploadedFile', values.gazetteUploadedFile)\r\n }\r\n\r\n ApiClient.Put(Urls.transformGuest(userId), formData)\r\n .then(saveRes => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n onSubmit()\r\n actions.setSubmitting(false);\r\n actions.resetForm();\r\n })\r\n .catch(err => {\r\n actions.setSubmitting(false);\r\n actions.resetForm();\r\n })\r\n\r\n }}\r\n >\r\n \r\n {(formik) => (\r\n \r\n
\r\n {/* نوع حساب کاربر ({legal ? \"حقوقی\" : \"حقیقی\"}) */}\r\n {legal &&\r\n

نوع حساب کاربر حقوقی می‌باشد و برای تبدیل آن به حقیقی نیاز به وارد کردن اطلاعات جدیدی نیست

\r\n }\r\n {!legal &&\r\n

نوع حساب کاربر حقیقی می‌باشد و برای تبدیل آن به حقوقی نیاز به وارد کردن اطلاعات شرکت است

\r\n }\r\n
\r\n
\r\n {!legal &&\r\n
\r\n
\r\n formik.setFieldValue(\"companyName\", e.target.value)}\r\n />\r\n\r\n formik.setFieldValue(\"registrationNumber\", e.target.value)}\r\n />\r\n
\r\n\r\n
\r\n formik.setFieldValue(\"nationalIdCompany\", e.target.value)}\r\n />\r\n\r\n formik.setFieldValue(\"companyType\", e.target.value)}\r\n />\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {\r\n (uploadPreview === null)\r\n ?\r\n <>\r\n \r\n \r\n فایل های پشتیبانی : jpeg, jpg, JPG, png\r\n \r\n \r\n :\r\n \r\n {\r\n uploadFile.name &&\r\n uploadFile.name\r\n }\r\n \r\n // \r\n }\r\n \r\n\r\n {\r\n formik.setFieldValue(\"gazetteUploadedFile\", e.target.files[0]);\r\n handleOnBlur(e);\r\n }}\r\n />\r\n \r\n
\r\n
\r\n
\r\n \r\n }\r\n
\r\n \r\n ویرایش\r\n \r\n\r\n \r\n بستن\r\n \r\n
\r\n
\r\n )}\r\n \r\n\r\n
\r\n \r\n )\r\n}\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {Accordion, Badge} from \"react-bootstrap\";\r\nimport {useHistory, useRouteMatch} from \"react-router-dom\";\r\nimport {toast} from \"react-toastify\";\r\nimport Swal from \"sweetalert2\";\r\nimport {Button, StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport {PageTitleLayout} from \"../../../../Component/Kit/Layout\";\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport {CompanyActivity, CompanyType} from \"../../../../Utility/Services/company\";\r\nimport GuestStep from \"../../Services/guest-step\";\r\nimport DateConvert from '../../../../Utility/Services/date-convert';\r\nimport GuestLogs from \"./guest-logs\";\r\nimport RejectFormModal from './reject-form-modal';\r\nimport {ConvertGuestType} from \"../../ConvertGuestType\";\r\nimport {GuestData} from \"../../../../Actions/guest-data\";\r\nimport {useDispatch} from \"react-redux\";\r\n\r\nfunction GuestViewPage() {\r\n let match = useRouteMatch();\r\n let history = useHistory();\r\n const dispatch = useDispatch()\r\n const [nationalCard, setNationalCard] = useState(false);\r\n const [gazette, setGazette] = useState(false);\r\n const [guestRejectModal, setGuestRejectModal] = useState(false);\r\n const [guestData, setGuestData] = useState({});\r\n const [convertUserTypeModal, ShowConvertUserTypeModal] = new useState(false)\r\n\r\n const guestAccept = () => {\r\n Swal.fire({\r\n title: \"آیا مطمئن هستید؟\",\r\n text: \"آیا از تایید کاربر مورد نظر اطمینان دارید؟\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n ApiClient.Post(Urls.guest(match.params.id))\r\n .then((res) => {\r\n toast.success(\"تغییرات با موفقیت ثبت شد.\");\r\n history.push(\"/guests\");\r\n })\r\n }\r\n });\r\n };\r\n\r\n const guestStepHandler = () => {\r\n Swal.fire({\r\n title: \"آیا مطمئن هستید؟\",\r\n text: \"آیا از تغییر وضعیت به منتظر تایید اطمینان دارید؟\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n ApiClient.Patch(Urls.guestState(match.params.id))\r\n .then((res) => {\r\n toast.success(\"تغییرات با موفقیت ثبت شد.\");\r\n history.push(\"/guests/finished\");\r\n });\r\n }\r\n });\r\n }\r\n\r\n const guestReject = (data) => {\r\n ApiClient.Patch(Urls.guest(match.params.id), data)\r\n .then((res) => {\r\n setGuestRejectModal(false)\r\n history.push(\"/guests/finished\");\r\n });\r\n };\r\n\r\n const onChangeUserType = () => {\r\n getGuestUser()\r\n }\r\n\r\n const getGuestUser = () => {\r\n ApiClient.Get(Urls.guest(match.params.id))\r\n .then((res) => {\r\n let data = res.result;\r\n if (data !== null) {\r\n dispatch(GuestData(data));\r\n data.birthDate = DateConvert(data.birthDate);\r\n data.createdAt = DateConvert(data.createdAt);\r\n data.lastModifiedAt = data.lastModifiedAt ? DateConvert(data.lastModifiedAt) : data.createdAt;\r\n data.mobile = `0${data.mobile}`;\r\n data.stepTitle = GuestStep(data.step);\r\n data.companyActivityField = data.companyActivityField ? CompanyActivity(data.companyActivityField) : '-';\r\n data.companyType = data.companyType ? CompanyType(data.companyType) : '-';\r\n setGuestData(data);\r\n } else {\r\n history.push('/guest');\r\n }\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n getGuestUser()\r\n }, [match.params.id, history]);\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 {guestData.firstName && `${guestData.firstName} ${guestData.lastName}`}\r\n \r\n \r\n\r\n {\r\n guestData.advertisingCampaignName &&\r\n\r\n \r\n\r\n {guestData.advertisingCampaignName}\r\n\r\n\r\n \r\n }\r\n\r\n\r\n
\r\n
\r\n {guestData.step && ( {\r\n guestData.step === 4 ? history.push(`/guest/${match.params.id}/edit/info`) : guestStepHandler()\r\n }}\r\n >\r\n {guestData.step === 4 ? 'ویرایش کاربر مهمان' : 'تغییر به منتظر تایید'}\r\n )}\r\n
\r\n {guestData.step && guestData.step === 4 && ( {\r\n ShowConvertUserTypeModal(true)\r\n }}\r\n >\r\n {guestData.isLegal ? 'تغییر حساب کاربر به حقیقی' : 'تغییر حساب کاربر به حقوقی'}\r\n\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n اطلاعات حساب\r\n \r\n \r\n \r\n
    \r\n
  • \r\n
    \r\n نام کاربری\r\n
    \r\n
    \r\n \r\n {guestData.userName}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n نوع حساب\r\n
    \r\n
    \r\n \r\n {guestData.isLegal ? \"حقوقی\" : \"حقیقی\"}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n تاریخ ایجاد حساب\r\n
    \r\n
    \r\n \r\n {guestData.createdAt}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n آخرین بروزرسانی\r\n
    \r\n
    \r\n \r\n {guestData.lastModifiedAt}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n وضعیت ثبت نام\r\n
    \r\n
    \r\n \r\n {guestData.stepTitle}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n حوزه فعالیت\r\n
    \r\n
    \r\n \r\n {guestData.companyActivityField}\r\n \r\n
    \r\n
  • \r\n
\r\n
\r\n \r\n اطلاعات فردی\r\n \r\n \r\n \r\n
    \r\n
  • \r\n
    \r\n نام و نام خانوادگی\r\n
    \r\n
    \r\n \r\n {`${guestData.firstName} ${guestData.lastName}`}{\" \"}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n کد ملی\r\n
    \r\n
    \r\n \r\n {guestData.nationalId}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n شماره شناسنامه\r\n
    \r\n
    \r\n \r\n {guestData.certificateNo}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n نام پدر\r\n
    \r\n
    \r\n \r\n {guestData.fatherName}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n تاریخ تولد\r\n
    \r\n
    \r\n \r\n {guestData.birthDate}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n جنسیت\r\n
    \r\n
    \r\n \r\n {guestData.isMale ? \"مرد\" : \"زن\"}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n تابعیت\r\n
    \r\n
    \r\n \r\n {guestData.isIranian ? \"ایرانی\" : \"غیر ایرانی\"}\r\n \r\n
    \r\n
  • \r\n
\r\n
\r\n {guestData.isLegal ? (<>\r\n \r\n اطلاعات شرکت\r\n \r\n \r\n \r\n
    \r\n
  • \r\n
    \r\n نام شرکت\r\n
    \r\n
    \r\n \r\n {guestData.companyName}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n نوع شرکت\r\n
    \r\n
    \r\n \r\n {guestData.companyType}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n کداقتصادی\r\n
    \r\n
    \r\n \r\n {guestData.economicCode}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n کد حقوقی\r\n
    \r\n
    \r\n \r\n {guestData.legalNationalId}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n کد ثبت\r\n
    \r\n
    \r\n \r\n {guestData.registrationNumber}\r\n \r\n
    \r\n
  • \r\n
\r\n
\r\n ) : null}\r\n \r\n اطلاعات تماس\r\n \r\n \r\n \r\n
    \r\n
  • \r\n
    \r\n شماره تلفن ثابت\r\n
    \r\n
    \r\n \r\n {guestData.phoneNumber}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n شماره همراه\r\n
    \r\n
    \r\n \r\n {guestData.mobile}\r\n \r\n
    \r\n
  • \r\n {guestData.additionalMobile ? (
  • \r\n
    \r\n شماره دوم\r\n
    \r\n
    \r\n \r\n {guestData.additionalMobile}\r\n \r\n
    \r\n
  • ) : null}\r\n
  • \r\n
    \r\n استان\r\n
    \r\n
    \r\n \r\n {guestData.province}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n شهر\r\n
    \r\n
    \r\n \r\n {guestData.city}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n خیابان\r\n
    \r\n
    \r\n \r\n {guestData.avenue}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n کوچه\r\n
    \r\n
    \r\n \r\n {guestData.alley}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n پلاک\r\n
    \r\n
    \r\n \r\n {guestData.plaque}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n آدرس پستی\r\n
    \r\n
    \r\n \r\n {guestData.address}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n کدپستی\r\n
    \r\n
    \r\n \r\n {guestData.postalCode}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n ایمیل\r\n
    \r\n
    \r\n \r\n {guestData.email}\r\n \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {guestData.nationalCardUploadedURL ? (
\r\n setNationalCard(true)}\r\n >\r\n \r\n
\r\n setNationalCard(false)}\r\n visible={nationalCard}\r\n headerTitle=\"اطلاعات هویتی\"\r\n >\r\n
\r\n \r\n
\r\n \r\n
) : (\r\n \r\n مدارک شناسایی آپلود نشده است.\r\n
)}\r\n {guestData.isLegal ? (guestData.gazetteUploadedURL ? (
\r\n setGazette(true)}\r\n >\r\n \"gazette\"/\r\n
\r\n setGazette(false)}\r\n visible={gazette}\r\n headerTitle=\"روزنامه رسمی\"\r\n >\r\n
\r\n \"gazette\"/\r\n
\r\n \r\n ) : (\r\n \r\n روزنامه رسمی آپلود نشده است.\r\n )) : null}\r\n \r\n \r\n {guestData.guestChecks ? (guestData.guestChecks.length ? (
\r\n
\r\n \r\n
\r\n
) : null) : null}\r\n
\r\n
\r\n
\r\n
\r\n setGuestRejectModal(true)}\r\n disabled={guestData.step !== 4}\r\n >\r\n
\r\n عدم تایید\r\n \r\n
\r\n \r\n
\r\n
\r\n guestAccept()}\r\n disabled={guestData.step !== 4}\r\n >\r\n
\r\n تایید\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n setGuestRejectModal(false)}\r\n visible={guestRejectModal}\r\n onCancel={() => setGuestRejectModal(false)}\r\n headerTitle=\"عدم تایید کاربر\"\r\n >\r\n setGuestRejectModal(e)}\r\n />\r\n \r\n\r\n ShowConvertUserTypeModal(false)}\r\n onClose={() => ShowConvertUserTypeModal(false)}\r\n />\r\n\r\n \r\n\r\n );\r\n}\r\n\r\nexport default GuestViewPage;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { NavLink, Route, Switch, useHistory, useLocation } from 'react-router-dom';\r\nimport { HeaderContent, MainContent } from '../../../Component/Kit/Layout';\r\nimport GuestCommentsList from '../GuestComments/GuestCommentsList';\r\nimport IncommingCalls from '../IncommingCalls';\r\nimport BackToPage from './../../../Component/Kit/back';\r\nimport GuestViewPage from './GuestView/index';\r\n\r\n\r\nconst GuestInformation = ({ match }) => {\r\n const history = useHistory();\r\n const location = useLocation();\r\n const [prev, setPrev] = useState('');\r\n\r\n useEffect(() => {\r\n if (location.pathname === `${match.url}`) {\r\n history.push(`${match.url}/info`)\r\n }\r\n\r\n if (location.state && location.state.from === '/guests/list') {\r\n setPrev(`${location.state.from}${location.state.search}`);\r\n } else if (location.state && location.state.from === '/guests/finished') {\r\n setPrev(location.state.from);\r\n }\r\n if (!location.state) {\r\n setPrev('/guests/finished');\r\n }\r\n }, [location.state])\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n\r\n \r\n
    \r\n
  • \r\n \r\n بررسی مهمان\r\n \r\n
  • \r\n
  • \r\n \r\n کامنت های مهمان\r\n \r\n
  • \r\n
  • \r\n \r\n تماس ها\r\n \r\n
  • \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default GuestInformation\r\n","import ProviderEnum from '../Model/provider-enum.model'\r\n\r\nfunction GetProvider(value) {\r\n let result = ProviderEnum.find((item) => item.value ===value);\r\n return result.name\r\n}\r\n\r\nexport default GetProvider","import React, { useState, useEffect } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { pendingDetails } from \"../../../Actions/pending-line\";\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport { PageTitleLayout, MainContent } from \"../../../Component/Kit/Layout\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport GetProvider from \"../../../Utility/Services/provider\";\r\nimport Swal from \"sweetalert2\";\r\nimport { toast } from \"react-toastify\";\r\n\r\nfunction PendingLines({ history, dispatch }) {\r\n const [lineData, setlineData] = useState([]);\r\n const tableConfig = {\r\n header: {\r\n userName: \"نام کاربری\",\r\n number: \"شماره خریداری شده\",\r\n type: \"نوع خط\",\r\n lineLengthName: \"طول خط\",\r\n providerName: \"ارائه دهنده خدمات\",\r\n createdAt: \"تاریخ دریافت خط\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n },\r\n delete: {\r\n icon: \"fa fa-trash\",\r\n },\r\n },\r\n };\r\n const tableActions = (items) => {\r\n switch (items.actionName) {\r\n case \"view\":\r\n dataHandler(items.data);\r\n break;\r\n case \"delete\":\r\n lineDelete(items.data);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n const dataHandler = (data) => {\r\n // let lineDetail = lineData.find((item) => item.id === id);\r\n dispatch(pendingDetails(data));\r\n history.push(`/line/user-lines/pending/${data.id}`);\r\n };\r\n\r\n const lineDelete = (data) => {\r\n Swal.fire({\r\n title: \"آیا مطمئن هستید؟\",\r\n text: \" \",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n ApiClient.Delete(Urls.removePendingLines(data.id)).then((res) => {\r\n getData();\r\n toast.success(\"تغییرات با موفقیت ثبت شد.\");\r\n });\r\n }\r\n });\r\n };\r\n\r\n const getData = () => {\r\n ApiClient.Get(Urls.getPendingLines()).then((res) => {\r\n let data = res.result;\r\n data.map((m, i) => {\r\n m.createdAt = DateConvert(m.createdAt);\r\n m.providerName = GetProvider(m.providerId);\r\n m.type = m.number ? \"سفارشی\" : \"غیرسفارشی\";\r\n m.lineLengthName = `${m.lineLength} رقمی`;\r\n return m;\r\n });\r\n setlineData(data);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n getData();\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\nexport default connect()(PendingLines);\r\n","export const pendingDetails = (data) => ({\r\n type: \"PENDING_DETAILS\",\r\n data,\r\n});\r\n","import {\r\n lineTypes,\r\n UserLineEarnMethod,\r\n UserLinePrebuyStatus,\r\n UserLineStatus,\r\n WhoisLineOperationStatus\r\n} from \"./../Model/lines.model\";\r\nfunction EarnMethod(value) {\r\n let result = UserLineEarnMethod.find((item) => item.value === value);\r\n return result.name;\r\n}\r\n\r\nfunction LineStatus(value) {\r\n let result = UserLineStatus.find((item) => item.value === value);\r\n return result.name;\r\n}\r\n\r\nfunction LineTypes(value) {\r\n let result = lineTypes.find((item) => item.value === value);\r\n return result.name;\r\n}\r\n\r\nfunction LinePrebuyStatus(value) {\r\n let result = UserLinePrebuyStatus.find((item) => item.value === value);\r\n return result.name;\r\n}\r\n\r\nfunction WhoisLineOperationService(value) {\r\n return WhoisLineOperationStatus.find(item => item.value === value).name\r\n}\r\n\r\n\r\n\r\nexport { EarnMethod, LineStatus, WhoisLineOperationService, LineTypes, LinePrebuyStatus};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport {\r\n CompanyActivity,\r\n CompanyType,\r\n} from \"../../../Utility/Services/company\";\r\nimport {StyledButton} from \"../../../Component/Kit/Button\";\r\n\r\nfunction UserDetailsModal({ userName,onCloseModal }) {\r\n const [userData, setuserData] = useState({});\r\n useEffect(() => {\r\n if (userName) {\r\n ApiClient.Get(Urls.userProfile(userName)).then((res) => {\r\n let data = res.result;\r\n data.birthDate = DateConvert(data.birthDate);\r\n data.isMaleName = data.isMale ? \"مرد\" : \"زن\";\r\n data.companyActivityFieldName = CompanyActivity(\r\n data.companyActivityField\r\n );\r\n if (data.legalData) {\r\n data.legalData.companyTypeName = CompanyType(\r\n data.legalData.companyType\r\n );\r\n }\r\n\r\n setuserData(data);\r\n });\r\n }\r\n }, [userName]);\r\n return (\r\n <>\r\n
    \r\n
  • \r\n
    \r\n نام و نام خانوادگی\r\n
    \r\n
    \r\n \r\n {`${userData.firstName} ${userData.lastName}`}{\" \"}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n نام پدر\r\n
    \r\n
    \r\n \r\n {userData.fatherName}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n تاریخ تولد\r\n
    \r\n
    \r\n \r\n {userData.birthDate}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n کدملی\r\n
    \r\n
    \r\n \r\n {userData.nationalId}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n شماره شناسنامه\r\n
    \r\n
    \r\n \r\n {userData.certificateNo}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n جنسیت\r\n
    \r\n
    \r\n \r\n {userData.isMaleName}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n زمینه فعالیت\r\n
    \r\n
    \r\n \r\n {userData.companyActivityFieldName}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n تلفن تماس\r\n
    \r\n
    \r\n \r\n {userData.phoneNumber}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n کدپستی\r\n
    \r\n
    \r\n \r\n {userData.postalCode}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n آدرس\r\n
    \r\n
    \r\n \r\n {userData.address}\r\n \r\n
    \r\n
  • \r\n {userData.legalData ? (\r\n <>\r\n
  • \r\n
    \r\n نام شرکت\r\n
    \r\n
    \r\n \r\n {userData.legalData.companyName}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n شماره ثبت\r\n
    \r\n
    \r\n \r\n {userData.legalData.registrationNumber}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n شناسه ملی\r\n
    \r\n
    \r\n \r\n {userData.legalData.companyNationalId}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n کد اقتصادی\r\n
    \r\n
    \r\n \r\n {userData.legalData.economicCode}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n نوع شرکت\r\n
    \r\n
    \r\n \r\n {userData.legalData.companyTypeName}\r\n \r\n
    \r\n
  • \r\n \r\n ) : null}\r\n
\r\n
\r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n
\r\n \r\n );\r\n}\r\n\r\nexport default UserDetailsModal;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport { connect } from \"react-redux\";\r\nimport { Formik } from \"formik\";\r\nimport Modal from \"./../../../Component/Kit/Modal\";\r\nimport { PageTitleLayout, MainContent } from \"../../../Component/Kit/Layout\";\r\nimport { StyledButton } from \"../../../Component/Kit/Button\";\r\nimport { StyledInput, StyledForm } from \"../../../Component/Kit/Form\";\r\nimport { EarnMethod } from \"../../../Utility/Services/lines\";\r\nimport UserDetailsModal from \"./user-details-modal\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport { toast } from 'react-toastify';\r\nimport Swal from \"sweetalert2\";\r\n\r\nfunction PendingLineDetails({ lineDetails, history }) {\r\n const [pendingLine, setpendingLine] = useState([]);\r\n const phoneRegExp = /^((\\\\+[1-9]{1,4}[ \\\\-]*)|(\\\\([0-9]{2,3}\\\\)[ \\\\-]*)|([0-9]{2,4})[ \\\\-]*)*?[0-9]{3,4}?[ \\\\-]*[0-9]{3,4}?$/;\r\n const [userDetailsModal, setuserDetailsModal] = useState(false);\r\n\r\n const userModalHandler = () => {\r\n setuserDetailsModal(true);\r\n };\r\n const activePendingLine = (item) => {\r\n // activePendingLine\r\n Swal.fire({\r\n title: \"\",\r\n text: \"آیااز ثبت خط مطمئن هستید؟\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n ApiClient.Put(Urls.activePendingLine(pendingLine.id), item)\r\n .then((res) => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n history.push(\"/line/user-lines/pending\");\r\n })\r\n }\r\n });\r\n };\r\n useEffect(() => {\r\n if (Array.isArray(lineDetails)) {\r\n if (!lineDetails.length) {\r\n history.push(\"/line/user-lines/pending\");\r\n }\r\n } else {\r\n if (lineDetails.hasOwnProperty(\"data\")) {\r\n lineDetails.data.earnMethodName = EarnMethod(\r\n lineDetails.data.earnMethod\r\n );\r\n setpendingLine(lineDetails.data);\r\n } else {\r\n history.push(\"/line/user-lines/pending\");\r\n }\r\n }\r\n }, [history, lineDetails]);\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 let body = {\r\n number: parseInt(values.lineNumber),\r\n status: 3,\r\n };\r\n activePendingLine(body);\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n formik.setFieldValue(\"lineNumber\", e.target.value)\r\n }\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n userModalHandler()}\r\n >\r\n نمایش اطلاعات کاربر\r\n \r\n \r\n ثبت خط\r\n \r\n
\r\n
\r\n )}\r\n \r\n
\r\n setuserDetailsModal(false)}\r\n visible={userDetailsModal}\r\n onCancel={() => setuserDetailsModal(false)}\r\n headerTitle=\"اطلاعات کاربر\"\r\n >\r\n setuserDetailsModal(e)} />\r\n\r\n \r\n \r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n lineDetails: state.pendingLines,\r\n});\r\nexport default connect(mapStateToProps)(PendingLineDetails);\r\n","function EnumFlag(flags, value) {\r\n let res = [];\r\n flags.sort(function (a, b) {\r\n return b - a;\r\n });\r\n flags.forEach((item) => {\r\n let x = value - item;\r\n if (x >= 0) {\r\n value = x;\r\n res.push(item);\r\n }\r\n });\r\n return res;\r\n}\r\n\r\nexport default EnumFlag;\r\n","const SystemLineType = [\r\n { value: 1, name: \"فعال سازی سامانه\" },\r\n { value: 2, name: \"اطلاع رسانی\" },\r\n { value: 4, name: \"تبلیغات\" },\r\n { value: 8, name: \"ماژول\" },\r\n { value: 16, name: \"همکاری در فروش\" },\r\n { value: 32, name: \"فرایند های داخلی\" },\r\n];\r\n\r\nexport default SystemLineType;\r\n","import SystemLineType from \"../Models/SystemLineType.model\";\r\nfunction GetSystemLine(value , key) {\r\n let result = [];\r\n SystemLineType.forEach((item) => {\r\n value.forEach((element) => {\r\n if (item.value === element) result.push(key ? item[key] : item);\r\n });\r\n });\r\n return result;\r\n}\r\n\r\nexport default GetSystemLine;\r\n","import {\r\n lineNumber, providerId, type\r\n} from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const SystemLineSchema = Yup.object().shape({\r\n lineNumber,\r\n type,\r\n providerId\r\n});\r\n","import { Formik } from \"formik\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport { toast } from \"react-toastify\";\r\nimport { FormLable, StyledForm, StyledInput, StyledSelect, StyledSwitchBox } from \"../../../../Component/Kit/Form\";\r\nimport { StyledButton } from \"../../../../Component/Kit/Button\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport SystemLineType from \"../../Models/SystemLineType.model\";\r\nimport Select from \"react-select\";\r\nimport { SystemLineProviderEnum } from \"../../../../Utility/Model/provider-enum.model\";\r\nimport { SystemLineSchema } from \"../../../../Utility/Validation/Schema/SystemLineSchema\";\r\n\r\nconst ProviderItems = [{ name: \"انتخاب کنید\", value: null }, ...SystemLineProviderEnum]\r\n\r\nfunction SystemModal({ data, onCloseModal, onSubmit, fromLineOptions }) {\r\n const [formFields, setFormFields] = useState({})\r\n useEffect(() => {\r\n if (data) {\r\n setFormFields({\r\n fromLineNumber: '',\r\n isActive: data.isActive,\r\n lineNumber: data?.number ? data.number : '',\r\n type: data?.systemLines ? data.systemLines : '',\r\n providerId: data?.providerId ? data.providerId : '',\r\n })\r\n } else {\r\n setFormFields({\r\n lineNumber: '',\r\n type: '',\r\n providerId: '',\r\n })\r\n }\r\n }, [data])\r\n return (\r\n <>\r\n {\r\n\r\n let number = 0\r\n values.type.forEach(el => {\r\n number += el.value\r\n })\r\n\r\n if (data) {\r\n ApiClient.Patch(Urls.updateSystemLine(data.id), { ...values, type: number })\r\n .then((res) => {\r\n toast.success('عملیات با موفقیت انجام شد');\r\n actions.resetForm();\r\n onCloseModal(false)\r\n onSubmit()\r\n }).catch().finally(() => { actions.setSubmitting(false) })\r\n } else {\r\n ApiClient.Post(Urls.createSystemLine(), { ...values, type: number })\r\n .then((res) => {\r\n toast.success('عملیات با موفقیت انجام شد');\r\n actions.resetForm();\r\n onCloseModal(false)\r\n onSubmit()\r\n }).catch().finally(() => { actions.setSubmitting(false) })\r\n }\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n {data &&\r\n {\r\n formik.setFieldValue(\"fromLineNumber\", e.target.value);\r\n formik.setFieldValue('type', fromLineOptions?.find(a => a.value == e.target.value)?.systemLines)\r\n }\r\n }\r\n />\r\n }\r\n \r\n formik.setFieldValue(\"lineNumber\", e.target.value)\r\n }\r\n />\r\n
\r\n مربوط به بخش \r\n option['name']}\r\n isMulti\r\n options={SystemLineType}\r\n onChange={(e) => {\r\n formik.setFieldValue(\"type\", e)\r\n }}\r\n />\r\n {\r\n {formik.errors.type}
\r\n }\r\n \r\n\r\n formik.setFieldValue(\"providerId\", e.target.value)}\r\n />\r\n\r\n {data &&\r\n
\r\n

وضعیت خط

\r\n formik.setFieldValue('isActive', e.target.checked)}\r\n />\r\n
\r\n }\r\n\r\n\r\n\r\n
\r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n \r\n اضافه کردن\r\n \r\n
\r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\nexport default SystemModal\r\n","import React, { useState, useEffect } from \"react\";\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport {PageTitleLayout, MainContent, HeaderContent} from \"../../../Component/Kit/Layout\";\r\nimport EnumFlag from \"../../../Utility/Services/enum-flag\";\r\nimport GetSystemLine from \"../Services/system-line-type\";\r\nimport GetProvider from \"../../../Utility/Services/provider\";\r\nimport Swal from \"sweetalert2\";\r\nimport {toast} from \"react-toastify\";\r\nimport {StyledButton} from \"../../../Component/Kit/Button\";\r\nimport Modal from \"../../../Component/Kit/Modal\";\r\nimport * as PropTypes from \"prop-types\";\r\nimport SystemModal from \"./SystemModal\";\r\n\r\nSystemModal.propTypes = {\r\n dataChange: PropTypes.func,\r\n onCloseModal: PropTypes.func\r\n};\r\n\r\nfunction SystemLines() {\r\n const [lineData, setlineData] = useState([]);\r\n const [modal, showModal] = useState(false);\r\n const [modalData, SetModalData] = useState({});\r\n const [lineOption, setLineOption] = useState([]);\r\n\r\n const tableConfig = {\r\n header: {\r\n number: \"شماره خط\",\r\n type: \"بخش مورد استفاده خط\",\r\n providerText: \"ارائه دهنده خدمات\",\r\n isActiveText: \"وضعیت خط\",\r\n },\r\n\r\n actions: {\r\n delete: {\r\n icon: \"fa fa-trash\",\r\n condition: (data) => !data.isActive\r\n },\r\n edit: {\r\n icon: \"fa fa-edit\",\r\n }\r\n }\r\n };\r\n useEffect(() => {\r\n getSystemLine()\r\n }, []);\r\n\r\n const getSystemLine = () => {\r\n ApiClient.Get(Urls.getAllSystemLine()).then((res) => {\r\n let data = res.result;\r\n data.map((m) => {\r\n m.systemLines = GetSystemLine(EnumFlag([1, 2, 4, 8, 16, 32], m.type));\r\n m.type = GetSystemLine(EnumFlag([1, 2, 4, 8, 16, 32], m.type) , 'name');\r\n m.providerText = GetProvider(m.providerId);\r\n m.isActiveText = m.isActive ? \"فعال\" : \"غیر فعال\";\r\n return m\r\n });\r\n let options = [{name: 'انتخاب کنید', value : null}]\r\n\r\n data.forEach((el)=> {\r\n if(el?.systemLines?.length !== 0) {\r\n options.push({name: el.number, value : el.number , systemLines: el.systemLines})\r\n }\r\n })\r\n\r\n setLineOption(options);\r\n setlineData(data);\r\n });\r\n\r\n }\r\n\r\n const createNewLine = () => {\r\n SetModalData(null)\r\n showModal(true)\r\n }\r\n\r\n const tableActions = (item) => {\r\n if (item.actionName === 'edit') {\r\n let data = item.data;\r\n SetModalData(data);\r\n showModal(true)\r\n }else if (item.actionName === 'delete'){\r\n Swal.fire({\r\n title: \"آیا مطمئن هستید؟\",\r\n text: \" \",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n ApiClient.Delete(Urls.removeSystemLine(item.data.id))\r\n .then(() => {\r\n getSystemLine()\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n })\r\n }\r\n });\r\n }\r\n };\r\n return (\r\n <>\r\n \r\n createNewLine()}>\r\n ایجاد خط جدید\r\n \r\n \r\n \r\n \r\n
خطوط سیستمی
\r\n \r\n برای تغییر اطلاعات لطفا با واحد فنی در ارتباط باشید.\r\n \r\n
\r\n
\r\n
\r\n\r\n showModal(false)}\r\n visible={modal}\r\n onCancel={() => showModal(false)}\r\n headerTitle={modalData ? 'ویرایش خط' : 'ایجاد خط جدید'}\r\n >\r\n showModal(e)} onSubmit={() => {getSystemLine()}} />\r\n \r\n \r\n );\r\n}\r\nexport default SystemLines;\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {toast} from 'react-toastify';\r\nimport Swal from \"sweetalert2\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport {StyledButton} from \"../../Kit/Button\";\r\nimport {StyledRadioBtn, StyledSwitchBox} from \"../../Kit/Form\";\r\nimport {lineTypesEnum} from \"../../../Utility/Model/lines.model\";\r\n\r\nfunction UserLineModal({data, dataChange, onCloseModal}) {\r\n const [status, setStatus] = useState();\r\n const [whoIsApplied, setWhoIsApplied] = useState();\r\n const [lineType, setLineType] = useState();\r\n const deactiveUserLines = (item) => {\r\n const payload = {\r\n whoisApplied: whoIsApplied,\r\n status,\r\n lineType\r\n }\r\n Swal.fire({\r\n title: \"آیا مطمئن هستید؟\",\r\n text: \" \",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n ApiClient.Patch(Urls.statusUserLines(item.id), payload)\r\n .then(() => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n dataChange(true)\r\n })\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n setStatus(data.status);\r\n setWhoIsApplied(data.whoisApplied)\r\n setLineType(data.lineType)\r\n }, [data])\r\n return (\r\n <>\r\n {data &&\r\n <>\r\n
    \r\n {data.userName ? (\r\n
  • \r\n
    \r\n نام کاربری\r\n
    \r\n
    \r\n {data.userName}\r\n
    \r\n
  • \r\n ) : null}\r\n
  • \r\n
    \r\n شماره\r\n
    \r\n
    \r\n {data.number}\r\n
    \r\n
  • \r\n
  • \r\n
    \r\n ارائه دهنده خدمات\r\n
    \r\n
    \r\n {data.providerName}\r\n
    \r\n
  • \r\n
  • \r\n
    \r\n نوع دریافت\r\n
    \r\n
    \r\n \r\n {data.earnMethodName}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n تاریخ دریافت خط\r\n
    \r\n
    \r\n {data.createdAt}\r\n
    \r\n
  • \r\n
  • \r\n
    \r\n وضعیت خط\r\n
    \r\n
    \r\n {data.statusName}\r\n
    \r\n
  • \r\n
\r\n\r\n
\r\n وضعیت ({status === 3 ? \"فعال\" : \"غیر فعال\"})\r\n setStatus(e.target.checked ? 3 : 2)}/>\r\n
\r\n\r\n
\r\n Who is?\r\n setWhoIsApplied(e.target.checked)}/>\r\n
\r\n\r\n\r\n
\r\n\r\n نوع خط\r\n\r\n\r\n
\r\n \r\n setLineType(lineTypesEnum.Service)\r\n }/>\r\n \r\n setLineType(lineTypesEnum.Advertising)\r\n }/>\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n {\r\n onCloseModal(false);\r\n setStatus(data.status);\r\n setWhoIsApplied(data.whoisApplied);\r\n }}\r\n >\r\n بستن\r\n \r\n deactiveUserLines(data)}\r\n >\r\n ذخیره\r\n \r\n
\r\n \r\n }\r\n \r\n );\r\n}\r\n\r\nexport default UserLineModal;\r\n","import { Formik } from 'formik';\r\nimport React from 'react';\r\nimport Swal from 'sweetalert2';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport { StyledButton } from '../../Kit/Button';\r\nimport { StyledForm } from '../../Kit/Form';\r\nimport { StyledSwitchBox } from './../../Kit/Form';\r\nimport { toast } from 'react-toastify';\r\nimport { LineEarnEnum } from '../../../Utility/Model/lines.model';\r\n\r\nexport const DeleteGiftLineModal = ({ data, dataChange, onCloseModal }) => {\r\n return (\r\n <>\r\n {\r\n Swal.fire({\r\n title: `آیا از حذف خط مطمئن هستید؟`,\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Delete(Urls.deleteUserGiftLines(data.id), JSON.stringify(values.addToFreeGiftLine)).then(() => {\r\n toast.success('خط با موفقیت حذف شد.');\r\n dataChange(true);\r\n })\r\n } else {\r\n actions.resetForm()\r\n }\r\n })\r\n }}\r\n onReset={(values, forwardRef) => {\r\n onCloseModal(false)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n {(data.earnMethod === LineEarnEnum.Gift) &&\r\n
\r\n

افزودن این خط به لیست خطوط هدیه آزاد

\r\n formik.setFieldValue('addToFreeGiftLine', e.target.checked)}\r\n />\r\n
\r\n }\r\n
\r\n
\r\n onCloseModal(false)}\r\n >\r\n بستن\r\n \r\n \r\n حذف خط\r\n \r\n
\r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default DeleteGiftLineModal;\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport { PageTitleLayout, MainContent } from \"../../../Component/Kit/Layout\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport Modal from \"./../../../Component/Kit/Modal\";\r\nimport GetProvider from \"../../../Utility/Services/provider\";\r\nimport {EarnMethod, LineStatus, LineTypes} from \"../../../Utility/Services/lines\";\r\nimport UserLineModal from \"./../../../Component/Shared/Modal/user-line-modal\";\r\nimport { ConvertQueryString } from \"../../../Utility/Services/convert-query-string\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { LineEarnEnum } from \"../../../Utility/Model/lines.model\";\r\nimport { DeleteGiftLineModal } from './../../../Component/Shared/Modal/delete-gift-line-modal';\r\n\r\nfunction UserLines() {\r\n const location = useLocation()\r\n const [lineData, setlineData] = useState([]);\r\n const [userLineModal, setUserLineModal] = useState(false);\r\n const [deleteGiftLineModal, setDeleteGiftLineModal] = useState(false);\r\n const [modalData, setmodalData] = useState({});\r\n const tableConfig = {\r\n header: {\r\n userName: \"نام کاربری\",\r\n number: \"شماره\",\r\n providerName: \"ارائه دهنده خدمات\",\r\n earnMethodName: \"نوع دریافت\",\r\n statusName: \"وضعیت خط\",\r\n lineTypeText: \"نوع خط\",\r\n createdAt: \"تاریخ دریافت خط\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n condition: (data) => {\r\n if (data.number) return true;\r\n return false;\r\n },\r\n },\r\n copy: {\r\n icon: \"far fa-copy\",\r\n },\r\n delete: {\r\n icon: \"fa fa-trash\",\r\n },\r\n },\r\n mode: [\"filter\", \"search\"],\r\n filters: [\"datePickerFilter\", \"provider\", \"earnMethod\", \"lineStatus\", \"lineType\"],\r\n };\r\n const tableActions = (items) => {\r\n switch (items.actionName) {\r\n case \"view\":\r\n openUserLineModal(items.data);\r\n break;\r\n case 'copy':\r\n const number = items.data.number;\r\n navigator.clipboard.writeText(number)\r\n break;\r\n case 'delete':\r\n openDeleteGiftLineModal(items.data);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n const openUserLineModal = (item) => {\r\n // let result = lineData.items.find((m) => m.id === item);\r\n setUserLineModal(true);\r\n setmodalData(item);\r\n };\r\n const openDeleteGiftLineModal = (item) => {\r\n setDeleteGiftLineModal(true);\r\n setmodalData(item);\r\n }\r\n\r\n const modalChangeHandler = (event) => {\r\n if (event) {\r\n getLines();\r\n }\r\n };\r\n const getLines = useCallback(() => {\r\n ApiClient.Get(Urls.getUserLines(), ConvertQueryString(location.search))\r\n .then((res) => {\r\n let data = res.result;\r\n data.items.map((m, i) => {\r\n m.createdAt = DateConvert(m.createdAt);\r\n m.providerName = GetProvider(m.providerId);\r\n m.earnMethodName = EarnMethod(m.earnMethod);\r\n m.statusName = LineStatus(m.status);\r\n m.lineTypeText = LineTypes(m.lineType);\r\n return m;\r\n });\r\n setlineData(data);\r\n })\r\n }, [location.search])\r\n\r\n useEffect(() => {\r\n getLines();\r\n }, [location.search, getLines]);\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 setUserLineModal(false)}\r\n visible={userLineModal}\r\n onCancel={() => setUserLineModal(false)}\r\n headerTitle=\"وضعیت خط\"\r\n >\r\n setUserLineModal(e)} />\r\n \r\n\r\n setDeleteGiftLineModal(false)}\r\n visible={deleteGiftLineModal}\r\n onCancel={() => setDeleteGiftLineModal(false)}\r\n headerTitle={(modalData.earnMethod === LineEarnEnum.Gift) ? 'حذف خط هدیه ' : 'حذف خط '}\r\n >\r\n setDeleteGiftLineModal(e)} />\r\n \r\n \r\n );\r\n}\r\n\r\nexport default UserLines;\r\n","import styled from \"styled-components\";\r\nimport { StyledLayout } from \"../../Component/Kit/Layout\";\r\n\r\nexport const LoginLayout = styled(StyledLayout)`\r\n height : 100vh;\r\n svg{\r\n width: 200px;\r\n margin-bottom: 1rem;\r\n }\r\n h5{\r\n margin-bottom: 1rem;\r\n }\r\n`;\r\n\r\nexport const AuthForm = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n -webkit-flex-grow: 1;\r\n -webkit-box-flex: 1;\r\n -ms-flex-positive: 1;\r\n flex-grow: 1;\r\n flex-direction: column;\r\n img {\r\n width: 150px;\r\n margin-bottom: 1rem;\r\n }\r\n`;\r\n","import styled from \"styled-components\";\r\n\r\nimport { StyledForm } from \"../../../Component/Kit/Form\";\r\nimport Col from \"../../../Component/Kit/Column\";\r\nimport { theme } from \"../../../Utility/Theme\";\r\n\r\n\r\nexport const LoginFirstStepForm = styled(StyledForm)`\r\n display : ${props => props.currentStep !== props.orderStep && 'none'};\r\n /* currentStep : ${props => props.currentStep};*/\r\n align-items: center;\r\n background: white;\r\n box-shadow: 1px 1px 5px 1px rgba(0, 0, 0, 0.15);\r\n padding: 2.1rem 2.6rem 1.6rem;\r\n border-radius: .75rem;\r\n flex-direction: column;\r\n width: 550px;\r\n input{\r\n direction:ltr;\r\n }\r\n @media only screen and (max-width: 575px){\r\n width: calc(100vw - 10vw);\r\n padding: 1.5rem 1.5rem 1.5rem;\r\n }\r\n`;\r\n\r\nexport const LoginSecondStepForm = styled(StyledForm)`\r\n display : ${props => props.currentStep !== props.orderStep && 'none'};\r\n align-items: center;\r\n background: white;\r\n box-shadow: 1px 1px 5px 1px rgba(0, 0, 0, 0.15);\r\n padding: 2.1rem 2.6rem 1.6rem;\r\n border-radius: .75rem;\r\n flex-direction: column;\r\n width: 550px;\r\n .d-flex{\r\n flex-direction: row-reverse;\r\n justify-content: center;\r\n min-height: 50px;\r\n align-items: center;\r\n margin-bottom: 0.75rem;\r\n }\r\n input{\r\n direction:ltr;\r\n }\r\n @media only screen and (max-width: 575px){\r\n width: calc(100vw - 10vw);\r\n padding: 1.5rem 1.5rem 1.5rem;\r\n }\r\n`;\r\n\r\nexport const ProfileContainer = styled(Col)`\r\n border-radius: 50%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n padding: 18px;\r\n margin-bottom:30px;\r\n border: solid 2px ${theme.paleGrey};\r\n svg{\r\n width: 32px;\r\n height: 32px; \r\n }\r\n`;\r\n\r\nexport const StyleParagraph = styled.p`\r\n display: flex;\r\n font-family: IRANSans;\r\n font-size: 12px;\r\n font-weight: normal;\r\n color: #999999;\r\n text-align: right;\r\n direction: rtl;\r\n width: 100%;\r\n .fakeLink{\r\n margin-right: 10px;\r\n color: ${theme.darkGreen};\r\n text-decoration: underline;\r\n cursor: pointer;\r\n }\r\n`;\r\n","import { username, password } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const AdminLoginSchema = Yup.object().shape({\r\n username,\r\n password\r\n});\r\n","import React from \"react\";\r\nimport { Formik } from \"formik\";\r\nimport { LoginFirstStepForm } from \"./styles\";\r\nimport { StyledInput } from \"../../../Component/Kit/Form\";\r\nimport { StyledButton } from \"../../../Component/Kit/Button\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport { AdminLoginSchema } from \"../../../Utility/Validation/Schema/AdminLoginSchema\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\n\r\nconst LoginFirstStepFormContainer = (props) => {\r\n const { orderStep, currentStep, setStep, account, setAccount } = props;\r\n return (\r\n <>\r\n {\r\n let body = {\r\n username: values.username,\r\n password: values.password,\r\n };\r\n setAccount({ ...body });\r\n\r\n ApiClient.Post(Urls.AdminLogin(), body)\r\n .then(res => {\r\n if (res.result) {\r\n setStep(1);\r\n actions.setSubmitting(false);\r\n actions.resetForm();\r\n }else{\r\n actions.setSubmitting(false);\r\n }\r\n })\r\n .catch(error => {\r\n actions.setSubmitting(false);\r\n })\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n\r\n
ورود به حساب کاربری
\r\n\r\n formik.setFieldValue(\"username\", e.target.value)}\r\n />\r\n\r\n formik.setFieldValue(\"password\", e.target.value)}\r\n />\r\n \r\n دریافت کد\r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default LoginFirstStepFormContainer\r\n\r\n","\r\nimport { otpCode } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const AdminLoginOtpSchema = Yup.object().shape({\r\n //otpCode,\r\n // otpCode_field_0,\r\n // otpCode_field_1,\r\n // otpCode_field_2,\r\n // otpCode_field_3,\r\n // otpCode_field_4,\r\n // otpCode_field_5\r\n otpCode\r\n});\r\n","import React, {useState, useEffect} from 'react';\r\n\r\n// const CountDownTimer = ({ props, timeLeft , handleResendCode}) => {\r\nconst CountDownTimer = (props) => {\r\n const {timeLeft, handleResendCode} = props;\r\n const secondLeft = timeLeft;\r\n\r\n const [seconds, setSeconds] = useState(secondLeft);\r\n const [showTime, setShowTime] = useState(null);\r\n\r\n const SecondsToms = (seconds) => {\r\n if (!seconds) return '';\r\n let duration = seconds;\r\n let min = parseInt(duration / 60);\r\n duration = duration % (60);\r\n\r\n let sec = parseInt(duration);\r\n\r\n if (sec < 10) {\r\n sec = `${sec}`;\r\n }\r\n if (min < 10) {\r\n min = `${min}`;\r\n }\r\n if (min == 0) {\r\n return `0:${sec}`\r\n } else {\r\n return `${min}:${sec}`\r\n }\r\n }\r\n const resendCode = () => {\r\n handleResendCode();\r\n setSeconds(timeLeft)\r\n }\r\n useEffect(() => {\r\n let interval = null;\r\n if (seconds > 0) {\r\n interval = setInterval(() => {\r\n setSeconds(seconds - 1);\r\n setShowTime(SecondsToms(seconds))\r\n }, 1000);\r\n\r\n } else {\r\n clearInterval(interval);\r\n setSeconds(0);\r\n }\r\n return () => {\r\n clearInterval(interval);\r\n }\r\n }, [seconds, showTime]);\r\n\r\n return (\r\n <>\r\n
0 ? 'show' : 'hide'}`}>\r\n

\r\n {showTime}\r\n ارسال خواهد شد.\r\n

\r\n
\r\n
resendCode()}>\r\n دریافت مجدد کد\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default CountDownTimer;\r\n","import React, { useContext, useEffect, useState } from \"react\";\r\nimport { Formik } from \"formik\";\r\nimport { LoginSecondStepForm } from \"../LoginFirstStepForm/styles\";\r\nimport { FormLable, StyledInput } from \"../../../Component/Kit/Form\";\r\nimport { StyledButton } from \"../../../Component/Kit/Button\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport LocalToken from \"../../../Utility/LocalStorge/LocalToken\";\r\nimport { AdminLoginOtpSchema } from \"../../../Utility/Validation/Schema/AdminLoginOtpSchema\";\r\nimport AppContext from \"../../../Context/AppContext\";\r\nimport ApiClient from \"../../../Requester/ApiClient\"\r\nimport { toast } from \"react-toastify\";\r\nimport CountDownTimer from \"../../../Component/Shared/CountDownTimer\";\r\n\r\nconst LoginSecondStepFormContainer = (props) => {\r\n const { orderStep, currentStep, setStep, account } = props;\r\n const setHasToken = useContext(AppContext).setHasToken;\r\n const [active, setActive] = useState(false);\r\n\r\n const resendOtpCode = () => {\r\n ApiClient.Post(Urls.AdminLogin(), account)\r\n .then(() => {\r\n setActive(true);\r\n })\r\n .catch(error => {\r\n toast.error(error.Message);\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n if (currentStep === 1 && !active) {\r\n setActive(true);\r\n document.getElementsByName(\"otpCode\")[0].focus();\r\n }\r\n }, [currentStep, active]);\r\n\r\n return (\r\n <>\r\n {\r\n let body = values.otpCode;\r\n ApiClient.Patch(Urls.AdminLogin(), body)\r\n .then(res => {\r\n if (res.result) {\r\n setStep(0);\r\n LocalToken.setToken(res);\r\n setHasToken(true);\r\n // actions.setSubmitting(false);\r\n // actions.resetForm();\r\n } else {\r\n actions.setSubmitting(false);\r\n }\r\n })\r\n .catch(error => {\r\n actions.setSubmitting(false);\r\n })\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
ورود به حساب کاربری
\r\n

به زودی کد برای شما ارسال می شود.

\r\n کد خود را وارد کنید:\r\n formik.setFieldValue(\"otpCode\", e.target.value)}\r\n />\r\n\r\n {\r\n active &&\r\n \r\n }\r\n \r\n ورود\r\n \r\n\r\n \r\n\r\n )}\r\n \r\n\r\n \r\n );\r\n}\r\n\r\nexport default LoginSecondStepFormContainer;\r\n\r\n","import React, { useState } from \"react\";\r\n\r\nimport { LoginLayout, AuthForm } from \"./styles\";\r\n\r\nimport LoginFirstStepFormContainer from \"./LoginFirstStepForm/index\";\r\nimport LoginSecondStepFormContainer from \"./LoginSecondStepForm/index\";\r\nimport Logo from \"../../Component/Icon/Logo\";\r\n\r\nconst Login = () => {\r\n\r\n const [step, setStep] = useState(0);\r\n const [account, setAccount] = useState({});\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\nexport default Login;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { StyledButton } from \"../../Component/Kit/Button\";\r\nimport ApiClient from \"../../Requester/ApiClient\";\r\nimport Urls from \"../../Requester/Urls\";\r\nimport DateConvert from \"../../Utility/Services/date-convert\";\r\n\r\nconst notificationTitle = {\r\n title: \"عنوان اعلان\",\r\n createdAt: \"تاریخ ایجاد\",\r\n startDateTime: \"تاریخ شروع نمایش\",\r\n endDateTime: \"تاریخ پایان نمایش\",\r\n readsCountTitle: \"تعداد مشاهده شدن\",\r\n content: \"توضیحات\",\r\n}\r\n\r\nfunction ViewNotificationModal({ data, onCloseModal }) {\r\n const [notificationData, setNotificationData] = useState([]);\r\n useEffect(() => {\r\n if (data) {\r\n ApiClient.Get(Urls.globalNotificationSingle(data)).then(res => {\r\n let result = res.result;\r\n result.createdAt = DateConvert(result.createdAt)\r\n result.endDateTime = result.endDateTime ? DateConvert(result.endDateTime) : '-----'\r\n result.startDateTime = result.startDateTime ? DateConvert(result.startDateTime) : '-----'\r\n result.readsCountTitle = `${result.readsCount} بار خوانده شده است.`\r\n setNotificationData(result)\r\n })\r\n }\r\n }, [data])\r\n return (\r\n <>\r\n
\r\n
    \r\n {\r\n notificationTitle && notificationData &&\r\n Object.entries(notificationTitle).map(([key, value]) => (\r\n\r\n
  • \r\n
    \r\n {value}: \r\n
    \r\n
    \r\n {notificationData[key]}\r\n
    \r\n
  • \r\n ))\r\n }\r\n
\r\n
\r\n\r\n {/*
\r\n

{notificationData.title}

\r\n
\r\n {notificationData.createdAt} | {notificationData.readsCountTitle}\r\n
\r\n
\r\n تاریخ شروع: {notificationData.startDate}\r\n تاریخ پایان: {notificationData.endDate}\r\n
\r\n
\r\n

{notificationData.content}

\r\n
*/}\r\n\r\n
\r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default ViewNotificationModal;\r\n","import React, { useCallback, useEffect, useState } from 'react';\r\nimport ApiClient from \"../../Requester/ApiClient\";\r\nimport Urls from \"../../Requester/Urls\";\r\nimport DateConvert from \"../../Utility/Services/date-convert\";\r\nimport { HeaderContent, MainContent, PageTitleLayout } from \"../../Component/Kit/Layout\";\r\nimport Table from \"../../Component/Shared/Table/Table\";\r\nimport { StyledButton } from \"../../Component/Kit/Button\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport Modal from \"./../../Component/Kit/Modal\";\r\nimport ViewNotificationModal from \"./view-notification\";\r\nimport Swal from \"sweetalert2\";\r\nimport { toast } from 'react-toastify';\r\nimport { ConvertQueryString } from \"../../Utility/Services/convert-query-string\";\r\n\r\nfunction NotificationsList() {\r\n let history = useHistory();\r\n const location = useLocation();\r\n const [notificationData, setNotificationData] = useState([]);\r\n const [isModal, setIsModal] = useState(false);\r\n const [modalId, setModalId] = useState(0)\r\n const tableConfig = {\r\n header: {\r\n title: \"عنوان\",\r\n readsCountTitle: \"تعداد خوانده شده\",\r\n startDateTime: \"تاریخ شروع\",\r\n endDateTime: \"تاریخ پایان\",\r\n showAtEntry: 'نمایش هنگام ورود',\r\n createdAt: \"تاریخ ایجاد\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n },\r\n edit: {\r\n icon: \"fa fa-edit\",\r\n },\r\n delete: {\r\n icon: \"fa fa-trash\",\r\n },\r\n },\r\n mode: [\"search\"],\r\n };\r\n const tableActions = (item) => {\r\n switch (item.actionName) {\r\n case 'view':\r\n setModalId(item.data.id);\r\n setIsModal(true)\r\n break;\r\n case 'edit':\r\n history.push(`/notifications/edit/${item.data.id}`)\r\n break;\r\n case 'delete':\r\n deleteCustomNotification(item.data.id);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n const deleteCustomNotification = (item) => {\r\n Swal.fire({\r\n title: `حذف اعلان`,\r\n text: \"آیا از حذف این اعلان مطمئن هستید؟\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Delete(Urls.globalNotificationSingle(item))\r\n .then(res => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n getCustomNotifications();\r\n })\r\n\r\n }\r\n })\r\n\r\n }\r\n const getCustomNotifications = useCallback(() => {\r\n ApiClient.Get(Urls.globalNotifications(), ConvertQueryString(location.search)).then(res => {\r\n let data = res.result;\r\n data.items.map(m => {\r\n m.showAtEntry= m.showAtEntry\r\n ? ``\r\n : ``;\r\n m.createdAt = DateConvert(m.createdAt);\r\n m.readsCountTitle = `${m.readsCount} بار`;\r\n m.startDateTime = m.startDateTime ? DateConvert(m.startDateTime) : '-----'\r\n m.endDateTime = m.endDateTime ? DateConvert(m.endDateTime) : '-----'\r\n return m;\r\n })\r\n setNotificationData(data);\r\n })\r\n }, [location.search])\r\n\r\n useEffect(() => {\r\n getCustomNotifications();\r\n }, [location.search, getCustomNotifications])\r\n\r\n return (\r\n <>\r\n \r\n
\r\n history.push('/notifications/add')}\r\n >\r\n ایجاد اعلان جدید\r\n \r\n
\r\n
\r\n \r\n \r\n
اعلان‌های ادمینی
\r\n لیست تمام اعلان‌های ایجادشده از طریق ادمین قابل مشاهده است.\r\n
\r\n \r\n
\r\n setIsModal(false)}\r\n visible={isModal}\r\n onCancel={() => setIsModal(false)}\r\n headerTitle=\"جزئیات اعلان\"\r\n >\r\n setIsModal(e)} />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default NotificationsList;\r\n","import React, {useEffect, useState} from 'react';\r\nimport { HeaderContent, MainContent, PageTitleLayout } from \"../../Component/Kit/Layout\";\r\nimport { StyledButton } from \"../../Component/Kit/Button\";\r\nimport BackToPage from \"../../Component/Kit/back\";\r\nimport {Field, Formik} from \"formik\";\r\nimport { StyledInput, StyledTextArea, StyledForm } from \"../../Component/Kit/Form\";\r\nimport ApiClient from \"../../Requester/ApiClient\";\r\nimport Urls from \"../../Requester/Urls\";\r\nimport { MyRangePicker} from \"../../Component/Shared/DatePicker\";\r\nimport { DateObject } from \"react-multi-date-picker\";\r\nimport Swal from \"sweetalert2\";\r\nimport {useHistory, useLocation, useParams} from \"react-router-dom\";\r\nimport { toast } from 'react-toastify';\r\nimport moment from 'moment-jalaali';\r\nimport {CheckBox} from \"../../Component/Kit/Checkbox\";\r\nimport DateConvert from \"../../Utility/Services/date-convert\";\r\nimport loginFirstStepForm from \"../Login/LoginFirstStepForm\";\r\n\r\nfunction AddGlobalNotification() {\r\n let history = useHistory();\r\n const params = useParams();\r\n const [notification , setNotification] = useState({})\r\n useEffect(() => {\r\n if (params.id){\r\n ApiClient.Get(Urls.globalNotificationSingle(params.id)).then(\r\n (res)=> {\r\n setNotification(res.result)\r\n }\r\n );\r\n }\r\n } , [params.id])\r\n\r\n\r\n const dateConvert = (item) => {\r\n const data = item.toString()\r\n if (data){\r\n let value = {\r\n year: data.slice(0, 4),\r\n month: data.slice(4, 6),\r\n day: data.slice(6, 8),\r\n hour: data.slice(8, 10),\r\n minute: data.slice(10, 12),\r\n second: data.slice(12, 14),\r\n };\r\n\r\n return moment(`${value.year}/${value.month}/${value.day} ${value.hour}:${value.minute}:${value.second}`)\r\n .locale('en')\r\n .format('YYYY/MM/DD HH:mm:ss')\r\n\r\n }else{\r\n return ''\r\n }\r\n }\r\n const addGlobalNotification = (body) => {\r\n Swal.fire({\r\n title: `آیا مطمئن هستید؟`,\r\n text: \"آیا از ارسال این اعلان مطمئن هستین؟؟ این اعلام برای تمام کاربران ارسال می‌شود.\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n if (params.id){\r\n ApiClient.Put(\r\n Urls.globalNotificationSingle(params.id), body\r\n ).then(() => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n history.push(`/notifications`)\r\n })\r\n }else{\r\n ApiClient.Post(\r\n Urls.globalNotifications(), body\r\n ).then(() => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n history.push(`/notifications`)\r\n })\r\n }\r\n }\r\n })\r\n }\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
{params.id ? 'ویرایش اعلان' : 'ایجاد اعلان جدید'}
\r\n

لطفا فیلدهای زیر را پرکنید.

\r\n
\r\n
\r\n
\r\n {\r\n const errors = {};\r\n if (values.notificationStartDate !== null && values.notificationEndDate === null) {\r\n errors.notificationEndDate = 'این فیلد الزامی است.'\r\n }\r\n if (values.notificationStartDate === null && values.notificationEndDate !== null) {\r\n errors.notificationStartDate = 'این فیلد الزامی است.'\r\n }\r\n if (values.notificationTitle?.length < 1 || values.notificationTitle?.length > 32) {\r\n errors.notificationTitle = 'حداقل 1 کاراکتر و حداکثر 32 کاراکتر وارد کنید'\r\n }\r\n if (values.notificationContent?.length < 1 || values.notificationContent?.length > 512) {\r\n errors.notificationContent = 'حداقل 1 کاراکتر و حداکثر 512 کاراکتر وارد کنید'\r\n }\r\n return errors;\r\n }}\r\n isInitialValid={false}\r\n enableReinitialize={true}\r\n onSubmit={(values, actions) => {\r\n let body = {\r\n startDateTime: values.notificationStartDate ? parseInt(values.notificationStartDate.baseFormat) : null,\r\n endDateTime: values.notificationEndDate ? parseInt(values.notificationEndDate.baseFormat) : null,\r\n title: values.notificationTitle,\r\n content: values.notificationContent,\r\n showAtEntry: values.showAtEntry\r\n };\r\n addGlobalNotification(body)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
\r\n
\r\n \r\n formik.setFieldValue(\"notificationTitle\", e.target.value)\r\n }\r\n />\r\n
\r\n
\r\n {\r\n formik.setFieldValue(\"notificationStartDate\", event.fromDate)\r\n formik.setFieldValue(\"notificationEndDate\", event.toDate)\r\n }}\r\n min={moment().subtract(1, 'days')}\r\n // fromError={!formik.values.notificationStartDate && formik.values.notificationEndDate ? formik['isValid'] = false : false}\r\n // toError={formik.values.notificationStartDate && !formik.values.notificationEndDate ? formik['isValid'] = false : false}\r\n fromError={formik.errors.notificationStartDate !== undefined\r\n ? formik.errors.notificationStartDate\r\n : false}\r\n toError={formik.errors.notificationEndDate !== undefined\r\n ? formik.errors.notificationEndDate\r\n : false}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n {\r\n const str = e.target.value.trim() !== '' ? e.target.value : ''\r\n formik.setFieldValue(\"notificationContent\", str)\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {params.id ? 'ویرایش اعلان' : 'ذخیره اعلان'}\r\n \r\n
\r\n )}\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default AddGlobalNotification;","import sendSMSLimitationModel from \"./../Model/send-sms-limitation.model\";\r\nfunction getSendSMSLimitation(value) {\r\n let result = [];\r\n sendSMSLimitationModel.forEach((item) => {\r\n value.forEach((element) => {\r\n if (item.value === element) result.push(item.name);\r\n });\r\n });\r\n return result;\r\n}\r\n\r\nexport default getSendSMSLimitation;","const SendSmsTypeEnum = {\r\n FastSend: 1,\r\n FastSendTest: 2,\r\n BulkSimpleSend: 3,\r\n ParametricSmartSend: 4,\r\n MultipleTextSmartSend: 5,\r\n SimpleCampaign: 6,\r\n ScheduledCampaign: 7,\r\n EventCampaign: 8,\r\n ApiSend: 9,\r\n SmsSecretary: 10,\r\n SmsTransmission: 11,\r\n ABTestCampaign: 12,\r\n MobileBank: 13,\r\n CodeReader: 14,\r\n TowerSend: 15,\r\n}\r\n\r\nconst SendSmsStatusEnum = {\r\n Ready: 1,\r\n Sending: 2,\r\n CreditReturn: 3,\r\n Finished: 4,\r\n Failed: 5,\r\n Pending: 6,\r\n Rejected: 7,\r\n}\r\nexport const sendSMSModel = [\r\n {value: SendSmsTypeEnum.FastSend, name: \"ماژول ارسال سریع\", key: \"FastSend\"},\r\n {value: SendSmsTypeEnum.FastSendTest, name: \"تست ماژول ارسال سریع\", key: \"FastSendTest\"},\r\n {value: SendSmsTypeEnum.BulkSimpleSend, name: \"ارسال ساده\", key: \"BulkSimpleSend\"},\r\n {value: SendSmsTypeEnum.ParametricSmartSend, name: \"هوشمند پارامتریک\", key: \"ParametricSmartSend\"},\r\n {value: SendSmsTypeEnum.MultipleTextSmartSend, name: \"هوشمند متناظر\", key: \"MultipleTextSmartSend\"},\r\n {value: SendSmsTypeEnum.SimpleCampaign, name: \"کمپین ساده\", key: \"SimpleCampaign\"},\r\n {value: SendSmsTypeEnum.ScheduledCampaign, name: \"کمپین دوره ای\", key: \"ScheduledCampaign\"},\r\n {value: SendSmsTypeEnum.EventCampaign, name: \"کمپین رویدادی\", key: \"EventCampaign\"},\r\n {value: SendSmsTypeEnum.ApiSend, name: \"وب سرویس\", key: \"ApiSend\"},\r\n {value: SendSmsTypeEnum.SmsSecretary, name: \"ماژول منشی پیامکی\", key: \"SmsSecretary\"},\r\n {value: SendSmsTypeEnum.SmsTransmission, name: \"ماژول انتقال پیامک\", key: \"SmsTransmission\"},\r\n {value: SendSmsTypeEnum.ABTestCampaign, name: \"کمپین A-B Test\", key: \"ABTestCampaign\"},\r\n {value: SendSmsTypeEnum.MobileBank, name: \"بانک شماره\", key: \"MobileBank\"},\r\n {value: SendSmsTypeEnum.CodeReader, name: \"کدخوان\", key: \"CodeReader\"},\r\n {value: SendSmsTypeEnum.TowerSend, name: \"ارسال از دکل\", key: \"TowerSend\"},\r\n];\r\n\r\nexport const sendSMSStatusModel = [\r\n {value: SendSmsStatusEnum.Ready, name: \"آماده\"},\r\n {value: SendSmsStatusEnum.Sending, name: \"در حال ارسال\"},\r\n {value: SendSmsStatusEnum.CreditReturn, name: \"بررسی صحت ارسال\"},\r\n {value: SendSmsStatusEnum.Finished, name: \"پایان یافته\"},\r\n {value: SendSmsStatusEnum.Failed, name: \"ناموفق\"},\r\n {value: SendSmsStatusEnum.Pending, name: \"انتظار\"},\r\n {value: SendSmsStatusEnum.Rejected, name: \"رد شده\"},\r\n];\r\n\r\n","import {sendSMSModel, sendSMSStatusModel} from \"../Model/send-sms.model\";\r\n\r\nexport function sendSMSType(value) {\r\n let result = sendSMSModel.find((item) => item.value === value);\r\n return result.name;\r\n}\r\n\r\nexport function sendSMSStatus(value) {\r\n let result = sendSMSStatusModel.find((item) => item.value === value);\r\n return result.name;\r\n}\r\n\r\n","import { suspendDescription } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const UserSuspendSchema = Yup.object().shape({\r\n suspendDescription,\r\n});\r\n","import React, { useState } from 'react';\r\nimport { StyledButton } from \"../../Component/Kit/Button\";\r\nimport Swal from \"sweetalert2\";\r\nimport { toast } from 'react-toastify';\r\nimport ApiClient from \"../../Requester/ApiClient\";\r\nimport Urls from \"../../Requester/Urls\";\r\nimport { useRouteMatch, useHistory } from \"react-router-dom\";\r\nimport { Formik } from \"formik\";\r\nimport { UserSuspendSchema } from \"../../Utility/Validation/Schema/UserSuspendSchema\";\r\nimport { StyledForm, StyledTextArea } from \"../../Component/Kit/Form\";\r\n\r\nfunction PendingSMSModal({ data, onCloseModal }) {\r\n const [submitLoading, setsubmitLoading] = useState(false);\r\n let match = useRouteMatch();\r\n let history = useHistory();\r\n const queueConfirm = async (event) => {\r\n setsubmitLoading(true)\r\n try {\r\n let result = await Swal.fire({\r\n title: `آیا از لغو ارسال این پیامک مطمئن هستید؟`,\r\n text: \"احتیاط کن !\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n });\r\n if (result.isConfirmed) {\r\n let body = {\r\n confirm: false,\r\n description: event\r\n }\r\n await ApiClient.Patch(`${Urls.getSingleQueue(match.params.id)}?smsType=${data.smsType}&storageType=${data.smsStorage}`, body)\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n history.push('/pending-sms/list')\r\n }\r\n } catch (error) {\r\n toast.error(error);\r\n }\r\n }\r\n \r\n const userBlock = async (event) => {\r\n try {\r\n const result = await Swal.fire({\r\n title: `آیا از تعلیق این کاربر مطمئن هستید؟`,\r\n text: \"اگه فکر می‌کنی درسته، پس حتماً انجامش بده!!\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n })\r\n if (result.isConfirmed) {\r\n let body = {\r\n confirm: false,\r\n description: event\r\n }\r\n await ApiClient.Patch(Urls.userSuspend(data.userId), event);\r\n await ApiClient.Patch(`${Urls.getSingleQueue(match.params.id)}?smsType=${data.smsType}&storageType=${data.smsStorage}`, body)\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n history.push('/pending-sms/list')\r\n }\r\n } catch (e) {\r\n toast.error(e);\r\n }\r\n }\r\n return (\r\n <>\r\n {\r\n if (data.mode === \"reject\") {\r\n queueConfirm(JSON.stringify(values.suspendDescription))\r\n } else {\r\n userBlock(JSON.stringify(values.suspendDescription))\r\n }\r\n actions.resetForm()\r\n }}\r\n onReset={(values, formikBag) => {\r\n onCloseModal(false)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n {\r\n const str = e.target.value.trim() !== '' ? e.target.value : '';\r\n formik.setFieldValue(\"suspendDescription\", str)\r\n }\r\n }\r\n />\r\n
\r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n \r\n تایید\r\n \r\n
\r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default PendingSMSModal\r\n","import React, { useEffect, useState } from 'react'\r\nimport { StyledButton } from '../../Component/Kit/Button';\r\nimport ApiClient from '../../Requester/ApiClient';\r\nimport Urls from '../../Requester/Urls';\r\nimport { convertPrefixAbtestService } from './Services/convert-prefix-abtest-service';\r\n\r\nexport const ABTestShowLinkModal = ({ itemId, onCloseModal }) => {\r\n\r\n const [campaignItemsData, setCampaignItemsData] = useState([]);\r\n\r\n useEffect(() => {\r\n if (itemId) {\r\n ApiClient.Get(Urls.getPendingCampaignByItem(itemId))\r\n .then(res => {\r\n let data = res.result\r\n setCampaignItemsData(data);\r\n })\r\n }\r\n }, [itemId])\r\n\r\n const openHyperLink = (url) => {\r\n // window.location.href = url;\r\n let direction = url.replace(/^\\/\\/|^.*?:(\\/\\/)?/, '');\r\n direction = '//' + direction;\r\n window.open(direction, '_blank');\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n campaignItemsData && campaignItemsData.length\r\n ? (\r\n
\r\n
    \r\n {campaignItemsData.map((item) => (\r\n
  • \r\n تست {convertPrefixAbtestService(item.alias)}: {item.title}\r\n {\r\n item.basicLink\r\n ?\r\n (\r\n

    openHyperLink(item.basicLink)}>\r\n {item.basicLink}\r\n

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

    \r\n لینک ندارد.\r\n

    \r\n )\r\n }\r\n\r\n
  • \r\n )\r\n )}\r\n
\r\n
\r\n )\r\n : (\r\n
\r\n

لینکی برای نمایش وجود ندارد.

\r\n
\r\n )\r\n }\r\n\r\n
\r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n
\r\n \r\n )\r\n}\r\n","// import React from 'react'\r\n\r\nexport const convertPrefixAbtestService = (value) => {\r\n return (value + 9).toString(36).toUpperCase();\r\n}\r\n","import React, {useEffect, useState} from 'react';\r\nimport {StyledButton} from \"../../Component/Kit/Button\";\r\nimport Swal from \"sweetalert2\";\r\nimport {toast} from 'react-toastify';\r\nimport ApiClient from \"../../Requester/ApiClient\";\r\nimport Urls from \"../../Requester/Urls\";\r\nimport {Formik} from \"formik\";\r\nimport {StyledForm, StyledSelect} from \"../../Component/Kit/Form\";\r\nimport * as Yup from \"yup\";\r\nimport {Loader} from \"../../Component/Shared/Loader\";\r\n\r\n\r\nconst PublicLineEditModalSchema = Yup.object().shape({\r\n selectedPublicLine: Yup.string()\r\n .required('این فیلد اجباری است.'),\r\n});\r\n\r\nfunction PublicLineEditModal({data, onCloseModal}) {\r\n const [loading, setLoading] = useState(true);\r\n const [optionList, setOptionList] = useState([]);\r\n const [submitLoading, setsubmitLoading] = useState(false);\r\n\r\n\r\n useEffect(() => {\r\n ApiClient.Get(Urls.publicLines()).then(res => {\r\n let data = res.result;\r\n setLoading(false);\r\n setOptionList(data.publicLines.map(item => {\r\n return {value: item['id'], name: item['number']}\r\n }))\r\n\r\n }).catch(e => {\r\n setLoading(false);\r\n })\r\n }, []);\r\n\r\n const changePublicLineConfirm = async (id) => {\r\n setsubmitLoading(true)\r\n try {\r\n let result = await Swal.fire({\r\n text: `آیا از تغییر شماره این پیامک مطمئن هستید؟`,\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n });\r\n if (result.isConfirmed) {\r\n let body = {\r\n publicLineId: Number(id)\r\n }\r\n await ApiClient.Put\r\n (`${Urls.editPublicLineById(data.id)}?smsType=${data.smsType}&storageType=${data.smsStorage}`, body).then(\r\n res => {\r\n onCloseModal()\r\n }\r\n )\r\n\r\n setsubmitLoading(false);\r\n }\r\n } catch (error) {\r\n setsubmitLoading(false);\r\n toast.error(error);\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n !loading ?\r\n <>\r\n {\r\n changePublicLineConfirm(values.selectedPublicLine);\r\n actions.resetForm();\r\n }}\r\n onReset={(values, formikBag) => {\r\n onCloseModal(false)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n formik.setFieldValue(\"selectedPublicLine\", e.target.value)}\r\n />\r\n
\r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n \r\n تایید\r\n \r\n
\r\n \r\n )}\r\n \r\n \r\n :\r\n \r\n }\r\n \r\n );\r\n}\r\n\r\nexport default PublicLineEditModal\r\n","import React, {useCallback, useEffect, useState} from 'react';\r\nimport {StyledButton} from \"../../Component/Kit/Button\";\r\nimport Swal from \"sweetalert2\";\r\nimport Modal from \"./../../Component/Kit/Modal\";\r\nimport {toast} from 'react-toastify';\r\nimport ApiClient from \"../../Requester/ApiClient\";\r\nimport Urls from \"../../Requester/Urls\";\r\nimport {HeaderContent, MainContent, PageTitleLayout} from \"../../Component/Kit/Layout\";\r\nimport BackToPage from \"../../Component/Kit/back\";\r\nimport {useHistory, useLocation, useRouteMatch} from \"react-router-dom\";\r\nimport Table from \"../../Component/Shared/Table/Table\";\r\nimport limitationType from \"./Services/send-sms-limitation-type\";\r\nimport EnumFlag from \"../../Utility/Services/enum-flag\";\r\nimport DateConvert from \"../../Utility/Services/date-convert\";\r\nimport {sendSMSType} from \"../../Utility/Services/send-sms\";\r\nimport PendingSMSModal from \"./pending-sms-modal\";\r\nimport {ABTestShowLinkModal} from \"./abTest-show-link-modal\";\r\nimport {ConvertQueryString} from '../../Utility/Services/convert-query-string';\r\nimport PublicLineEditModal from \"./public-line-edit-modal\";\r\n\r\nfunction PendingSMSDetails() {\r\n const match = useRouteMatch();\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n const [pendingData, setPendingData] = useState({});\r\n const [pendingDetail, setPendingDetail] = useState([]);\r\n const [isModal, setIsModal] = useState(false);\r\n const [abTestModal, setAbTestModal] = useState(false);\r\n const [modalEvent, setModalEvent] = useState({});\r\n const [isPeerToPeer, setIsPeerToPeer] = useState(false);\r\n const [isPublicLine, setIsPublicLine] = useState(false);\r\n const [modalEditPublicLine, setModalEditPublicLine] = useState(false);\r\n const tableConfig = {\r\n header: {\r\n limitationTypeTitle: \"علت محدودیت\",\r\n messageText: \"متن پیامک\",\r\n forbiddenWords: \"کلمات ممنوعه\",\r\n\r\n },\r\n tooltipTitle: ['messageText']\r\n };\r\n const queueConfirm = async () => {\r\n try {\r\n let result = await Swal.fire({\r\n title: ``,\r\n text: \"آیا از تایید ارسال این پیامک مطمئن هستید؟\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n });\r\n if (result.isConfirmed) {\r\n let body = {\r\n confirm: true\r\n }\r\n await ApiClient.Patch(`${Urls.getSingleQueue(pendingData.id)}?smsType=${pendingData.smsType}&storageType=${pendingData.smsStorage}`, body)\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n history.push('/pending-sms/list')\r\n }\r\n } catch (error) {\r\n toast.error(error);\r\n }\r\n }\r\n const queueHandler = (event) => {\r\n setIsModal(true)\r\n setModalEvent({\r\n mode: event,\r\n smsType: pendingData.smsType,\r\n smsStorage: pendingData.smsStorage,\r\n userId: pendingData.userId\r\n })\r\n }\r\n\r\n const EditPublicLine = (e) => {\r\n setModalEditPublicLine(e);\r\n getData();\r\n }\r\n\r\n const getData = () => {\r\n ApiClient.Get(Urls.getSingleQueue(match.params.id), {storageType: match.params.type}).then(res => {\r\n let data = res.result\r\n data.sentAt = DateConvert(data.sentAt);\r\n data.forbiddenWords = data.forbiddenWords && data.forbiddenWords.length > 0 ? data.forbiddenWords.join(\" \") : \"\"\r\n data.smsTypeTitle = sendSMSType(data.smsType);\r\n data.limitationTypeTitle = limitationType(EnumFlag([1, 2, 4, 8, 64], data.limitationType));\r\n setIsPublicLine(EnumFlag([1, 2, 4, 8, 64], data.limitationType).includes(64));\r\n if (data.smsStorage === 2) {\r\n setIsPeerToPeer(true);\r\n // getSmartParametricList();\r\n /* ApiClient.Get(Urls.smartParametricList(match.params.id), ConvertQueryString(location.search))\r\n .then(parametricResponse => {\r\n let parametricData = parametricResponse.result;\r\n parametricData.items.map(m => {\r\n m.limitationTypeTitle = m.limitationType !== null ? limitationType(EnumFlag([1, 2, 4], m.limitationType)) : '----';\r\n return m;\r\n })\r\n setPendingDetail(parametricData);\r\n }) */\r\n }\r\n setPendingData(data)\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [match.params.id, match.params.type])\r\n\r\n\r\n useEffect(() => {\r\n if (isPeerToPeer) {\r\n ApiClient.Get(Urls.smartParametricList(match.params.id), ConvertQueryString(location.search))\r\n .then(parametricResponse => {\r\n let parametricData = parametricResponse.result;\r\n parametricData.items.map(m => {\r\n m.limitationTypeTitle = m.limitationType !== null ? limitationType(EnumFlag([1, 2, 4], m.limitationType)) : '----';\r\n return m;\r\n })\r\n setPendingDetail(parametricData);\r\n })\r\n }\r\n }, [location.search, isPeerToPeer])\r\n\r\n return (\r\n <>\r\n \r\n
\r\n queueConfirm()}\r\n >\r\n تایید\r\n \r\n queueHandler('reject')}\r\n >\r\n عدم تایید\r\n \r\n {/* queueHandler('block')}*/}\r\n {/*>*/}\r\n {/* بلاک کردن کاربر*/}\r\n {/**/}\r\n {\r\n isPublicLine &&\r\n setModalEditPublicLine(true)}\r\n >\r\n ویرایش خط ارسالی\r\n \r\n }\r\n {\r\n pendingData.smsType && pendingData.smsType === 12\r\n ?\r\n ( setAbTestModal(true)}\r\n >\r\n مشاهده لینک‌ها\r\n )\r\n :\r\n null\r\n }\r\n
\r\n \r\n
\r\n \r\n \r\n
جزئیات پیامک
\r\n
\r\n
\r\n \r\n
    \r\n {pendingData.smsType === 5 ? null : (\r\n
  • \r\n
    \r\n متن پیامک\r\n
    \r\n
    \r\n {pendingData.messageText}\r\n
    \r\n
  • \r\n )}\r\n
  • \r\n
    \r\n شماره خط\r\n
    \r\n
    \r\n {pendingData.lineNumber}\r\n
    \r\n
  • \r\n
  • \r\n
    \r\n تعداد مخاطبین\r\n
    \r\n
    \r\n {pendingData.recipientCount}\r\n
    \r\n
  • \r\n {pendingData.forbiddenWords ? (\r\n
  • \r\n
    \r\n کلمه فیلتر\r\n
    \r\n
    \r\n {pendingData.forbiddenWords}\r\n
    \r\n
  • \r\n ) : null}\r\n
  • \r\n
    \r\n نوع ارسال\r\n
    \r\n
    \r\n {pendingData.smsTypeTitle}\r\n
    \r\n
  • \r\n
  • \r\n
    \r\n دلایل محدودیت\r\n
    \r\n
    \r\n \r\n {Array.isArray(pendingData.limitationTypeTitle) ? (\r\n pendingData.limitationTypeTitle.map((m, x) =>\r\n pendingData.limitationTypeTitle.length - 1 === x ? m : m + \" ، \"\r\n )\r\n ) : (\r\n \r\n )}\r\n \r\n
    \r\n
  • \r\n
  • \r\n
    \r\n نام کاربری\r\n
    \r\n
    \r\n {pendingData.userName}\r\n
    \r\n
  • \r\n
  • \r\n
    \r\n زمان ارسال\r\n
    \r\n
    \r\n {pendingData.sentAt}\r\n
    \r\n
  • \r\n
\r\n
\r\n {pendingData.smsStorage === 2 ? (\r\n
\r\n \r\n
\r\n ) : null}\r\n \r\n
\r\n setIsModal(false)}\r\n visible={isModal}\r\n onCancel={() => setIsModal(false)}\r\n >\r\n setIsModal(e)}/>\r\n \r\n\r\n {\r\n pendingData.smsType === 12 &&\r\n setAbTestModal(false)}\r\n visible={abTestModal}\r\n onCancel={() => setAbTestModal(false)}\r\n headerTitle=\"چک کردن لینک‌های ارسالی A/B تست\"\r\n >\r\n setAbTestModal(e)}/>\r\n \r\n }\r\n\r\n {\r\n\r\n setModalEditPublicLine(false)}\r\n visible={modalEditPublicLine}\r\n headerTitle=\"ویرایش خط ارسالی\"\r\n >\r\n EditPublicLine(e)}/>\r\n \r\n }\r\n\r\n \r\n )\r\n}\r\n\r\nexport default PendingSMSDetails;\r\n","import { oldPassword, newPassword, repeatPassword} from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const ChangePasswordSchema = Yup.object().shape({\r\n oldPassword,\r\n newPassword,\r\n repeatPassword,\r\n});\r\n","import {Formik} from 'formik';\r\nimport React, {useState} from 'react'\r\nimport {toast} from 'react-toastify';\r\nimport {StyledButton} from '../../../Component/Kit/Button';\r\nimport {StyledForm, StyledInput} from '../../../Component/Kit/Form';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport {ChangePasswordSchema} from '../../../Utility/Validation/Schema/ChangePasswordSchema';\r\n\r\nexport const ChangePassword = () => {\r\n const [loadingFlag, setLoadingFlag] = useState(false);\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 setTimeout(() => {\r\n setLoadingFlag(true)\r\n }, 40);\r\n let body = {\r\n \"oldPassword\": values.oldPassword,\r\n \"newPassword\": values.newPassword,\r\n \"repeatPassword\": values.repeatPassword,\r\n };\r\n ApiClient.Patch(Urls.ModifyAdminPassword(), body)\r\n .then(() => {\r\n toast.success('رمز عبور شما با موفقیت تغییر کرد.')\r\n setTimeout(() => {\r\n setLoadingFlag(false)\r\n actions.resetForm();\r\n }, 50);\r\n })\r\n .catch(() => setLoadingFlag(false))\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
\r\n
\r\n\r\n formik.setFieldValue(\"oldPassword\", e.target.value)}\r\n />\r\n formik.setFieldValue(\"newPassword\", e.target.value)}\r\n />\r\n formik.setFieldValue(\"repeatPassword\", e.target.value)}\r\n />\r\n\r\n
\r\n
\r\n\r\n \r\n ویرایش اطلاعات\r\n \r\n
\r\n\r\n )}\r\n \r\n\r\n\r\n
\r\n
\r\n )\r\n}\r\n","import { firstName, lastName, email, mobile } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const ModifyAdminProfileInfoSchema = Yup.object().shape({\r\n firstName,\r\n lastName,\r\n email,\r\n mobile,\r\n});\r\n","import { Formik } from 'formik';\r\nimport React, { useState } from 'react'\r\nimport { useDispatch } from 'react-redux';\r\nimport { toast } from 'react-toastify';\r\nimport { bootstrapper } from '../../../Actions/bootstrapper';\r\nimport { StyledButton } from '../../../Component/Kit/Button';\r\nimport { StyledForm, StyledInput } from '../../../Component/Kit/Form';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport { NumericalValidationMultilang } from '../../../Utility/method/NumericalValidationMultilang';\r\nimport { ModifyAdminProfileInfoSchema } from '../../../Utility/Validation/Schema/ModifyAdminProfileInfoSchema';\r\n\r\nexport const ProfileDetails = (props) => {\r\n const { personalProfile } = props;\r\n const [loadingFlag, setLoadingFlag] = useState(false);\r\n const dispatch = useDispatch();\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

در این بخش می‌توانید اطلاعات فردی خود را تغییر دهید.

\r\n
\r\n
\r\n {\r\n personalProfile && (\r\n
\r\n {\r\n setTimeout(() => { setLoadingFlag(true) }, 40);\r\n let body = {\r\n \"firstName\": values.firstName,\r\n \"lastName\": values.lastName,\r\n \"email\": values.email,\r\n \"mobile\": parseInt(values.mobile),\r\n };\r\n ApiClient.Put(Urls.ModifyAdminProfileInfo(), body)\r\n .then((res) => {\r\n toast.success('ویرایش با موفقیت افزوده شد.')\r\n setTimeout(() => { setLoadingFlag(false) }, 50);\r\n\r\n let data = {\r\n ...personalProfile,\r\n \"firstName\": values.firstName,\r\n \"lastName\": values.lastName,\r\n \"email\": values.email,\r\n \"mobile\": parseInt(values.mobile)\r\n }\r\n dispatch(bootstrapper(data));\r\n })\r\n .catch(setLoadingFlag(false))\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
\r\n formik.setFieldValue(\"firstName\", e.target.value)}\r\n />\r\n\r\n formik.setFieldValue(\"lastName\", e.target.value)}\r\n />\r\n formik.setFieldValue(\"mobile\", e.target.value)}\r\n onChange={(e) => {\r\n let convertStr;\r\n convertStr = NumericalValidationMultilang(e.target.value);\r\n if (convertStr === '') {\r\n formik.setFieldValue(\"mobile\", \"\");\r\n return;\r\n }\r\n\r\n if (convertStr) {\r\n formik.setFieldValue(\"mobile\", convertStr)\r\n } else {\r\n return;\r\n }\r\n }}\r\n />\r\n formik.setFieldValue(\"email\", e.target.value)}\r\n />\r\n
\r\n\r\n \r\n ویرایش اطلاعات\r\n \r\n
\r\n\r\n )}\r\n \r\n\r\n
\r\n )\r\n }\r\n
\r\n )\r\n}\r\n","\r\nimport React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport Col from \"./Column\";\r\nimport userIcon from \"../../Assets/images/user.jpg\";\r\n\r\nexport const UploadImage = styled.div`\r\n display: inline-flex;\r\n`;\r\n\r\nexport const ImageContainer = styled.div`\r\n position: relative;\r\n`;\r\n\r\nexport const UploadAvatarConatiner = styled(Col)`\r\n justify-content: flex-end;\r\n display: flex;\r\n align-items: end;\r\nsvg{\r\n width: 120px;\r\n height: 120px;\r\n margin: auto;\r\n display: block;\r\n margin-bottom: 30px;\r\n }\r\n`;\r\n\r\nexport const ImageBox = styled.div`\r\n width: 120px;\r\n height: 120px;\r\n text-align: center;\r\n overflow: hidden;\r\n box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);\r\n border-radius: 0.4rem;\r\n &.remove-btn_flag{\r\n &:before{\r\n left: 50%;\r\n top: 50%;\r\n transform: translate(-50%,-50%);\r\n border-radius: .4rem;\r\n content: \"\";\r\n opacity: 0;\r\n position: absolute;\r\n background-color: rgba(30,44,71,.4);\r\n width: 20px;\r\n height: 20px;\r\n transition: .3s ease-in-out;\r\n }\r\n }\r\n &:hover {\r\n &.remove-btn_flag{\r\n &:before{\r\n opacity: 1;\r\n width: 120px;\r\n height: 120px;\r\n transition: .3s ease-in-out;\r\n }\r\n }\r\n #del {\r\n cursor: pointer;\r\n opacity: 1;\r\n transition: 0.3s ease-in-out;\r\n }\r\n }\r\n label,\r\n button,\r\n span {\r\n position: absolute;\r\n border-radius: 3px !important;\r\n width: 30px;\r\n height: 30px;\r\n padding: 0;\r\n z-index: 109;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n i {\r\n line-height: 0;\r\n }\r\n &#del {\r\n opacity: 0;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n transition: 0.3s ease-in-out;\r\n }\r\n &#pen {\r\n bottom: -10%;\r\n right: 0;\r\n transform: translateX(50%);\r\n transition: 0.3s ease-in-out;\r\n }\r\n }\r\n button ,label{\r\n cursor: pointer;\r\n color : ${(props) => props.theme.white};\r\n background-color: ${(props) => props.theme.secondaryGreen};\r\n border-color: ${(props) => props.theme.secondaryGreen};\r\n font-size: 0.8rem;\r\n line-height: 1.5;\r\n outline: none !important;\r\n vertical-align: middle;\r\n border: none;\r\n }\r\n`;\r\n\r\nexport const ProfileImage = styled(Col)`\r\n background-image: ${(props) => `url(${props.src})`};\r\n /* background-size: cover; */\r\n background-size: 100% 100%;\r\n background-repeat: no-repeat;\r\n width: 100%;\r\n height: 100%;\r\n `;\r\n\r\nexport const BrowseFile = styled.input`\r\n width: 0.1px;\r\n height: 0.1px;\r\n opacity: 0;\r\n display: none;\r\n `;\r\n\r\nexport const StyledUploadAvatar = (props) => {\r\n const { HasUrl } = props;\r\n\r\n return (\r\n <>\r\n \r\n \r\n {/*
*/}\r\n {/*
*/}\r\n \r\n \r\n\r\n {/* */}\r\n\r\n \r\n\r\n \r\n\r\n {/*\r\n for delete avatar\r\n {\r\n (HasUrl !== null) && (\r\n deleteHandler()} >\r\n \r\n \r\n )\r\n } */}\r\n \r\n {/*
*/}\r\n \r\n \r\n \r\n )\r\n};\r\n","import React, { useEffect, useState } from 'react'\r\nimport { StyledUploadAvatar, UploadAvatarConatiner } from '../../../Component/Kit/AvatarUploder';\r\nimport { toast } from 'react-toastify';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport { bootstrapper } from '../../../Actions/bootstrapper';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nexport const UploadAvatarContainer = (props) => {\r\n const { personalProfile } = props;\r\n const [imgPreview, setImgPreview] = useState(null);\r\n const dispatch = useDispatch();\r\n\r\n const handleChange = (event) => {\r\n const fileToUpload = event.target.files[0];\r\n\r\n if (fileToUpload.size > 1000000) {\r\n toast.warning(\"سایز عکس بیشتر از مقدار مجاز است\");\r\n return\r\n }\r\n\r\n let formData = new FormData();\r\n formData.append(\"file\", fileToUpload, fileToUpload.name);\r\n\r\n ApiClient.Patch(Urls.ModifyAdminProfileAvatar(), formData)\r\n .then(res => {\r\n setImgPreview(res.result);\r\n let data = {\r\n ...personalProfile,\r\n \"profileImageURL\": res.result\r\n }\r\n dispatch(bootstrapper(data));\r\n toast.success('آپلود با موفقیت ارسال شد.');\r\n })\r\n };\r\n\r\n useEffect(() => {\r\n if (personalProfile && personalProfile.profileImageURL !== \"\") {\r\n setImgPreview(personalProfile.profileImageURL)\r\n }\r\n }, [personalProfile])\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

در این بخش می‌توانید آواتار خود را تغییر دهید.

\r\n
\r\n
\r\n\r\n {\r\n personalProfile && (\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

حداکثر حجم مجاز تصویر 1 مگابایت میباشد.

\r\n

فرمت های قابل پشتیبانی : JPG, PNG, JPEG

\r\n
\r\n
\r\n
\r\n
\r\n <>\r\n \r\n handleChange(event)}\r\n />\r\n \r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n )\r\n }\r\n
\r\n )\r\n}\r\n","import React, { useState } from 'react'\r\nimport { useEffect } from 'react'\r\nimport { Tab, Tabs } from 'react-bootstrap'\r\nimport { connect } from 'react-redux'\r\nimport { MainContent, WrapperLayout } from '../../Component/Kit/Layout'\r\nimport { ChangePassword } from './ChangePassword'\r\nimport { ProfileDetails } from './ProfileDetails'\r\nimport { UploadAvatarContainer } from './UploadAvatar'\r\n\r\nfunction AdminProfile({ bootstrapper }) {\r\n const [profileInfo, setProfileInfo] = useState({});\r\n\r\n useEffect(() => {\r\n setProfileInfo(bootstrapper.data)\r\n }, [bootstrapper])\r\n\r\n return (\r\n \r\n
\r\n \r\n {\r\n profileInfo && (\r\n
\r\n
\r\n
اطلاعات پروفایل
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n }\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n bootstrapper: state.bootstrapper,\r\n});\r\nexport default connect(mapStateToProps)(AdminProfile);\r\n\r\n","export const settingModal = (data) => ({\r\n type: \"SETTING_MODAL\",\r\n data:data,\r\n});","import React from \"react\";\r\nimport {Badge} from 'react-bootstrap';\r\nimport {StyledSwitchBox} from \"../../../../Component/Kit/Form\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport {connect,useDispatch} from \"react-redux\";\r\nimport {toast} from \"react-toastify\";\r\nimport {settingModal} from \"../../../../Actions/setting-modal\";\r\n\r\n\r\nfunction SettingSwitchRow({data ,url,title}) {\r\n let dispatch = useDispatch();\r\n const switchHandler = (body) => {\r\n body = JSON.stringify(body)\r\n ApiClient.Patch(url,body).then(res => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n dispatch(settingModal(true));\r\n })\r\n }\r\n return (\r\n <>\r\n
\r\n
\r\n {title} \r\n \r\n {\r\n (data === 'true')?'فعال':'غیرفعال'\r\n }\r\n \r\n
\r\n switchHandler(e.target.checked)} />\r\n
\r\n \r\n )\r\n}\r\nexport default connect()(SettingSwitchRow);\r\n","import { numberLimitation } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const NumberLimitationSchema = Yup.object().shape({\r\n numberLimitation\r\n});\r\n","import React from \"react\";\r\nimport { Formik } from \"formik\";\r\nimport Swal from \"sweetalert2\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport { toast } from \"react-toastify\";\r\nimport { StyledForm, StyledInput } from \"../../../Component/Kit/Form\";\r\nimport { StyledButton } from \"../../../Component/Kit/Button\";\r\nimport { NumberLimitationSchema } from \"../../../Utility/Validation/Schema/NumberLimitationSchema\";\r\nimport { settingModal } from \"../../../Actions/setting-modal\";\r\nimport { connect, useDispatch } from \"react-redux\";\r\n\r\nfunction NumberLimitationModal({ defaultData, onCloseModal, url }) {\r\n let dispatch = useDispatch();\r\n return (\r\n <>\r\n {\r\n Swal.fire({\r\n title: `آیا مطمئن هستید؟`,\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n let value = parseInt(values.numberLimitation);\r\n ApiClient.Patch(url, value)\r\n .then((res) => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n values.numberLimitation = defaultData;\r\n dispatch(settingModal(true));\r\n })\r\n }\r\n values.numberLimitation = defaultData;\r\n })\r\n\r\n }}\r\n onReset={(values, formikBag) => {\r\n onCloseModal(false)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n \r\n formik.setFieldValue(\"numberLimitation\", e.target.value)\r\n }\r\n />\r\n\r\n
\r\n \r\n بستن\r\n \r\n \r\n اعمال محدودیت\r\n \r\n
\r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect()(NumberLimitationModal);\r\n","import React, {useState} from \"react\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport {Badge} from 'react-bootstrap';\r\nimport NumberLimitationModal from \"../../modals/limitation-modal\";\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\n\r\nfunction ABTestMinimumContact({data}) {\r\n const [isModal, setIsModal] = useState(false);\r\n return (\r\n <>\r\n
\r\n
\r\n کمینه تعداد مخاطبین در کمپین A/B تست :\r\n {data}\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n setIsModal(false)}\r\n onCancel={() => setIsModal(false)}\r\n visible={isModal}\r\n headerTitle=\"کمینه تعداد مخاطبین در کمپین A/B تست\"\r\n >\r\n setIsModal(false)} url={Urls.abTestMinimunImportedContacts()} />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ABTestMinimumContact;\r\n","import React, {useState} from \"react\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport {Badge} from 'react-bootstrap';\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport NumberLimitationModal from \"../../modals/limitation-modal\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\n\r\nfunction ContactGroupLimitationCount({data}) {\r\n const [isModal, setIsModal] = useState(false);\r\n return (\r\n <>\r\n
\r\n
\r\n محدودیت در تعداد ایجاد گروه : \r\n {data}\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n setIsModal(false)}\r\n onCancel={() => setIsModal(false)}\r\n visible={isModal}\r\n headerTitle=\"محدودیت در تعداد ایجاد گروه\"\r\n >\r\n setIsModal(false)} url={Urls.contactGroupLimitationCount()} />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ContactGroupLimitationCount\r\n","import React, {useState} from \"react\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport {Badge} from 'react-bootstrap';\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport NumberLimitationModal from \"../../modals/limitation-modal\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\n\r\nfunction FastSendTemplateAddLimitation({data}) {\r\n const [isModal, setIsModal] = useState(false);\r\n return (\r\n <>\r\n
\r\n
\r\n بیشینه تعداد مجاز قالب ارسال سریع : \r\n {data}\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n setIsModal(false)}\r\n onCancel={() => setIsModal(false)}\r\n visible={isModal}\r\n headerTitle=\"بیشینه تعداد مجاز قالب ارسال سریع\"\r\n >\r\n setIsModal(false)} url={Urls.fastSendTemplateAddLimitation()} />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default FastSendTemplateAddLimitation\r\n","import React, {useState} from \"react\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport {Badge} from 'react-bootstrap';\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport NumberLimitationModal from \"../../modals/limitation-modal\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\n\r\nfunction RecipientLimitationCountInPerSendSms({data}) {\r\n const [isModal, setIsModal] = useState(false);\r\n return (\r\n <>\r\n
\r\n
\r\n بیشینه تعداد مجاز مخاطب برای هر ارسال : \r\n {data}\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n setIsModal(false)}\r\n onCancel={() => setIsModal(false)}\r\n visible={isModal}\r\n headerTitle=\"بیشینه تعداد مجاز مخاطب برای هر ارسال\"\r\n >\r\n setIsModal(false)} url={Urls.recipientLimitationCountInPerSendSms()} />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default RecipientLimitationCountInPerSendSms\r\n","import React, { useState } from 'react'\r\nimport { StyledButton } from '../../../../Component/Kit/Button'\r\nimport Modal from '../../../../Component/Kit/Modal';\r\nimport Urls from '../../../../Requester/Urls'\r\nimport NumberLimitationModal from \"../../modals/limitation-modal\";\r\nimport { Badge } from 'react-bootstrap';\r\n\r\nconst RecipientLimitationCountInPerWebService = ({data}) => {\r\n const [isModal, setIsModal] = useState(false);\r\n return (\r\n <>\r\n
\r\n
\r\n محدودیت تعداد مخاطبین در هر ارسال (وب سرویس) :\r\n {data}\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n setIsModal(false)}\r\n onCancel={() => setIsModal(false)}\r\n visible={isModal}\r\n headerTitle=\"محدودیت تعداد مخاطبین در هر ارسال (وب سرویس)\"\r\n >\r\n setIsModal(false)} url={Urls.recipientLimitationCountInPerSendApi()} />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default RecipientLimitationCountInPerWebService","import React, {useState} from \"react\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport {Badge} from 'react-bootstrap';\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport NumberLimitationModal from \"../../modals/limitation-modal\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\n\r\nfunction UserEventLimitationCount({data}) {\r\n const [isModal, setIsModal] = useState(false);\r\n return (\r\n <>\r\n
\r\n
\r\n بیشینه تعداد مجاز رویداد : \r\n {data}\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n setIsModal(false)}\r\n onCancel={() => setIsModal(false)}\r\n visible={isModal}\r\n headerTitle=\"بیشینه تعداد مجاز رویداد\"\r\n >\r\n setIsModal(false)} url={Urls.userEventLimitationCount()} />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default UserEventLimitationCount\r\n","import React, {useState} from \"react\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport {Badge} from 'react-bootstrap';\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport NumberLimitationModal from \"../../modals/limitation-modal\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\n\r\nfunction UserTemplateLimitationCount({data}) {\r\n const [isModal, setIsModal] = useState(false);\r\n return (\r\n <>\r\n
\r\n
\r\n بیشینه تعداد قالب مجاز برای هر کاربر : \r\n {data}\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n setIsModal(false)}\r\n onCancel={() => setIsModal(false)}\r\n visible={isModal}\r\n headerTitle=\"بیشینه تعداد قالب مجاز برای هر کاربر\"\r\n >\r\n setIsModal(false)} url={Urls.userTemplateLimitationCount()} />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default UserTemplateLimitationCount\r\n","import React, { useState } from 'react'\r\nimport { StyledButton } from '../../../../Component/Kit/Button'\r\nimport Modal from '../../../../Component/Kit/Modal';\r\nimport Urls from '../../../../Requester/Urls'\r\nimport NumberLimitationModal from \"../../modals/limitation-modal\";\r\nimport {Badge} from 'react-bootstrap';\r\n\r\nexport const WarningLakeCredit = ({ data }) => {\r\n const [isModal, setIsModal] = useState(false)\r\n return (\r\n <>\r\n
\r\n
\r\n کمینه پیش ‌فرض آگاه‌سازی از کمبود اعتبار :\r\n {data}\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n setIsModal(false)}\r\n onCancel={() => setIsModal(false)}\r\n visible={isModal}\r\n headerTitle=\"کمینه پیش ‌فرض آگاه‌سازی از کمبود اعتبار\"\r\n >\r\n setIsModal(false)} url={Urls.lackOfCreditWarningThreshold()} />\r\n \r\n \r\n )\r\n}\r\n","import React, {useState} from \"react\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport {Badge} from 'react-bootstrap';\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport NumberLimitationModal from \"../../modals/limitation-modal\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\n\r\nfunction FifteenRemarkCoefficient({data}) {\r\n const [isModal, setIsModal] = useState(false);\r\n return (\r\n <>\r\n
\r\n
\r\n لایحه تبصره 6 : \r\n {data}\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n setIsModal(false)}\r\n onCancel={() => setIsModal(false)}\r\n visible={isModal}\r\n headerTitle=\"لایحه تبصره 6\"\r\n >\r\n setIsModal(false)} url={Urls.fifteenRemarkCoefficient()} />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default FifteenRemarkCoefficient\r\n","import { Formik } from \"formik\";\r\nimport React from \"react\";\r\nimport { connect, useDispatch } from \"react-redux\";\r\nimport { toast } from \"react-toastify\";\r\nimport Swal from \"sweetalert2\";\r\nimport { settingModal } from \"../../../../Actions/setting-modal\";\r\nimport { StyledButton } from \"../../../../Component/Kit/Button\";\r\nimport { StyledCheckBox, StyledForm } from \"../../../../Component/Kit/Form\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport { FormLayout } from './../../../../Component/Kit/Form';\r\n\r\nfunction EditBlacklistPermissionModal({ defaultData, onCloseModal }) {\r\n let dispatch = useDispatch();\r\n return (\r\n <>\r\n {defaultData &&\r\n
\r\n {\r\n const data = Object.assign({}, ...values.defaultData.map((x) => ({ [x.value]: JSON.stringify(x.fields) })));\r\n Swal.fire({\r\n title: `آیا مطمئن هستید؟`,\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Patch(Urls.updateBlackListTypes(), JSON.stringify(data)).then(() => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n dispatch(settingModal(true));\r\n })\r\n } else {\r\n actions.resetForm()\r\n }\r\n })\r\n }}\r\n onReset={(values, formikBag) => {\r\n onCloseModal(false)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n {formik.values.defaultData.map((method, index) => (\r\n \r\n
\r\n {method.name}\r\n
\r\n
\r\n formik.setFieldValue(`defaultData.${index}.fields.ShouldSendCancellationText`, e.target.checked)}\r\n />\r\n formik.setFieldValue(`defaultData.${index}.fields.ShouldFilterMobiles`, e.target.checked)}\r\n />\r\n
\r\n
\r\n ))}\r\n
\r\n {\r\n onCloseModal(false);\r\n }}\r\n >\r\n بستن\r\n \r\n \r\n تایید\r\n \r\n
\r\n \r\n )}\r\n \r\n
\r\n }\r\n\r\n \r\n )\r\n}\r\n\r\nexport default connect()(EditBlacklistPermissionModal);\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Badge } from \"react-bootstrap\";\r\nimport { StyledButton } from \"../../../../Component/Kit/Button\";\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport {sendSMSModel} from '../../../../Utility/Model/send-sms.model';\r\nimport EditBlacklistPermissionModal from \"./edit-blacklist-permission-modal\";\r\n\r\nfunction ManageBlacklist({ data }) {\r\n const [isModal, setIsModal] = useState(false);\r\n const [blacklistData, setBlacklistData] = useState(false);\r\n const [selectedItem, setSelectedItem] = useState([]);\r\n\r\n useEffect(() => {\r\n if (data && typeof data == 'string') {\r\n refactorBlacklistData(data);\r\n }\r\n }, [data])\r\n\r\n const refactorBlacklistData = (result) => {\r\n if (result) {\r\n const data = Object.entries((JSON.parse(result)))\r\n .map(([key, value]) => {\r\n return {\r\n value: key,\r\n name: sendSMSModel?.find(a => a.value == key)?.name,\r\n fields: JSON.parse(value)\r\n }\r\n })\r\n let selectedNames = [];\r\n data.map(item => {\r\n if (item.fields.ShouldFilterMobiles || item.fields.ShouldSendCancellationText) {\r\n const nameItem = item.fields.ShouldFilterMobiles || item.fields.ShouldSendCancellationText ? 'فیلتر شماره، متن لغو'\r\n : (item.fields.ShouldSendCancellationText ? 'متن لغو' : 'فیلتر شماره');\r\n selectedNames.push(`${item.name} (${nameItem})`)\r\n }\r\n })\r\n setSelectedItem(selectedNames)\r\n setBlacklistData(data)\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n data &&\r\n <>\r\n
\r\n
\r\n مدیریت لیست سیاه برای ارسال ها : \r\n {/*{selectedItem && blacklistData*/}\r\n {/* ? {selectedItem.join(' , ')}*/}\r\n {/* : گزینه ای انتخاب نشده*/}\r\n {/*}*/}\r\n\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n setIsModal(false)}\r\n onCancel={() => setIsModal(false)}\r\n visible={isModal}\r\n headerTitle=\"مدیریت لیست سیاه برای ارسال ها\"\r\n >\r\n setIsModal(false)} />\r\n \r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nexport default ManageBlacklist\r\n","const ReactionToUserTicketModel = [\r\n { value: 1, name: \"نمایش اعلان در داشبورد\" },\r\n { value: 2, name: \"ارسال ایمیل\" },\r\n { value: 4, name: \"ارسال پیامک\" },\r\n];\r\n\r\nexport default ReactionToUserTicketModel;\r\n","import ReactionToUserTicketModel from \"../Models/reaction-to-user-ticket.model\";\r\n\r\nfunction GetReactionToUserTicket(value) {\r\n let result = [];\r\n ReactionToUserTicketModel.forEach((item) => {\r\n value.forEach((element) => {\r\n if (item.value === element) result.push(item.name);\r\n });\r\n });\r\n return result;\r\n}\r\n\r\nexport default GetReactionToUserTicket;\r\n","import React from \"react\";\r\nimport { Formik } from \"formik\";\r\nimport Swal from \"sweetalert2\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport { toast } from \"react-toastify\";\r\nimport { StyledForm, StyledCheckBox } from \"../../../../Component/Kit/Form\";\r\nimport { StyledButton } from \"../../../../Component/Kit/Button\";\r\nimport { settingModal } from \"../../../../Actions/setting-modal\";\r\nimport { connect, useDispatch } from \"react-redux\"\r\nimport Urls from \"../../../../Requester/Urls\";\r\n\r\nfunction ReactionToUserTicketModal({ defaultData, onCloseModal }) {\r\n let dispatch = useDispatch();\r\n const returnDefaultData = (values) => {\r\n values.RealtimeNotification = !!defaultData.includes(1) ? 1 : 0;\r\n values.SendEmail = !!defaultData.includes(2) ? 2 : 0;\r\n values.SendSMS = !!defaultData.includes(4) ? 4 : 0;\r\n }\r\n return (\r\n <>\r\n {\r\n let body = 0;\r\n for (const item of Object.keys(values)) {\r\n body = body + values[item]\r\n }\r\n Swal.fire({\r\n title: `آیا مطمئن هستید؟`,\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Patch(Urls.reactionToUserTicket(), body).then(() => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n dispatch(settingModal(true));\r\n })\r\n }\r\n returnDefaultData(values)\r\n })\r\n }}\r\n onReset={(values, formikBag) => {\r\n onCloseModal(false)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n formik.setFieldValue(\"RealtimeNotification\", e.target.checked ? 1 : 0)}\r\n disabled={true}\r\n />\r\n formik.setFieldValue(\"SendEmail\", e.target.checked ? 2 : 0)}\r\n />\r\n formik.setFieldValue(\"SendSMS\", e.target.checked ? 4 : 0)}\r\n />\r\n
\r\n {\r\n onCloseModal(false);\r\n returnDefaultData(formik.values)\r\n }}\r\n >\r\n بستن\r\n \r\n \r\n تایید\r\n \r\n
\r\n
\r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect()(ReactionToUserTicketModal);\r\n","import React, { useState } from \"react\";\r\nimport { Badge } from 'react-bootstrap';\r\nimport { StyledButton } from \"../../../../Component/Kit/Button\";\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport EnumFlag from \"../../../../Utility/Services/enum-flag\";\r\nimport GetReactionToUserTicket from \"../../Services/reaction-to-user-ticket\";\r\nimport ReactionToUserTicketModal from \"./reaction-to-user-ticket-modal\";\r\n\r\nfunction ReactionToUserTicket({ data }) {\r\n const [isModal, setIsModal] = useState(false);\r\n return (\r\n <>\r\n
\r\n
\r\n واکنش به تیکت ایجاد شده : \r\n \r\n\r\n {GetReactionToUserTicket(EnumFlag([1, 2, 4], data)).map((m, x) =>\r\n GetReactionToUserTicket(EnumFlag([1, 2, 4], data)).length - 1 === x ? m : m + \" ، \"\r\n )}\r\n\r\n \r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n setIsModal(false)}\r\n onCancel={() => setIsModal(false)}\r\n visible={isModal}\r\n headerTitle=\"واکنش به تیکت ایجاد شده\"\r\n >\r\n setIsModal(false)}\r\n url={Urls.fifteenRemarkCoefficient()} />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ReactionToUserTicket\r\n","import React, {useState} from \"react\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport {Badge} from 'react-bootstrap';\r\nimport NumberLimitationModal from \"../../modals/limitation-modal\";\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\n\r\nfunction CooperationWithdrawalAmount({data}) {\r\n const [isModal, setIsModal] = useState(false);\r\n return (\r\n <>\r\n
\r\n
\r\n کمینه مبلغ قابل واریز (بخش همکاری در فروش) :\r\n {data} ریال\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n setIsModal(false)}\r\n onCancel={() => setIsModal(false)}\r\n visible={isModal}\r\n headerTitle=\"کمینه مبلغ قابل واریز (مبلغ به ریال)\"\r\n >\r\n setIsModal(false)} url={Urls.minimumCooperationWithdrawal()} />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default CooperationWithdrawalAmount;\r\n","import React, {useState} from \"react\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport {Badge} from 'react-bootstrap';\r\nimport NumberLimitationModal from \"../../modals/limitation-modal\";\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\n\r\nfunction CooperationWithdrawalAmount({data}) {\r\n const [isModal, setIsModal] = useState(false);\r\n return (\r\n <>\r\n
\r\n
\r\n درصد سود خرید اعتبار (بخش همکاری در فروش) :\r\n {data} درصد\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n setIsModal(false)}\r\n onCancel={() => setIsModal(false)}\r\n visible={isModal}\r\n headerTitle=\"درصد سود خرید اعتبار (بخش همکاری در فروش)\"\r\n >\r\n setIsModal(false)} url={Urls.cooperationCreditProfit()} />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default CooperationWithdrawalAmount;\r\n","import React, {useState} from \"react\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport {Badge} from 'react-bootstrap';\r\nimport NumberLimitationModal from \"../../modals/limitation-modal\";\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\n\r\nfunction CooperationWithdrawalAmount({data}) {\r\n const [isModal, setIsModal] = useState(false);\r\n return (\r\n <>\r\n
\r\n
\r\n درصد سود خرید خط (بخش همکاری در فروش) :\r\n {data} درصد\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n setIsModal(false)}\r\n onCancel={() => setIsModal(false)}\r\n visible={isModal}\r\n headerTitle=\"درصد سود خرید خط (بخش همکاری در فروش)\"\r\n >\r\n setIsModal(false)} url={Urls.cooperationLineProfit()} />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default CooperationWithdrawalAmount;\r\n","import { Formik } from \"formik\";\r\nimport React from \"react\";\r\nimport { connect, useDispatch } from \"react-redux\";\r\nimport { toast } from \"react-toastify\";\r\nimport Swal from \"sweetalert2\";\r\nimport { settingModal } from \"../../../../Actions/setting-modal\";\r\nimport { StyledButton } from \"../../../../Component/Kit/Button\";\r\nimport { StyledCheckBox, StyledForm } from \"../../../../Component/Kit/Form\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport { FormLayout } from './../../../../Component/Kit/Form';\r\n\r\n\r\nfunction sumAllEnum(flags , array){\r\n let num = 0;\r\n for (let i = 0; i < array.length; i++) {\r\n if (array[i] === true){\r\n num += +flags[i];\r\n }\r\n }\r\n return num !== 0 ? num : \"\"\r\n}\r\nfunction EditSendsModal({ defaultData, onCloseModal }) {\r\n let dispatch = useDispatch();\r\n return (\r\n <>\r\n {defaultData &&\r\n
\r\n {\r\n\r\n const data = Object.assign({}, ...values.defaultData.map((x , i) => ({ [x.value]: (sumAllEnum([1,2,4,8,16,32] , x.fields)) })));\r\n Swal.fire({\r\n title: `آیا مطمئن هستید؟`,\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Patch(Urls.updateSendsTypes() , JSON.stringify(data)).then(() => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n dispatch(settingModal(true));\r\n })\r\n } else {\r\n actions.resetForm()\r\n }\r\n })\r\n }}\r\n onReset={(values, formikBag) => {\r\n onCloseModal(false)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n {formik.values.defaultData.map((method, index) => (\r\n \r\n
\r\n {method.name}\r\n
\r\n
\r\n formik.setFieldValue(`defaultData.${index}.fields[0]`, e.target.checked)}\r\n />\r\n formik.setFieldValue(`defaultData.${index}.fields[1]`, e.target.checked)}\r\n />\r\n formik.setFieldValue(`defaultData.${index}.fields[2]`, e.target.checked)}\r\n />\r\n\r\n formik.setFieldValue(`defaultData.${index}.fields[3]`, e.target.checked)}\r\n />\r\n {/* formik.setFieldValue(`defaultData.${index}.fields[4]`, e.target.checked)}*/}\r\n {/*/>*/}\r\n {(method.value == 1 || method.value == 9) &&\r\n formik.setFieldValue(`defaultData.${index}.fields[5]`, e.target.checked)}\r\n />\r\n }\r\n
\r\n
\r\n ))}\r\n
\r\n {\r\n onCloseModal(false);\r\n }}\r\n >\r\n بستن\r\n \r\n \r\n تایید\r\n \r\n
\r\n \r\n )}\r\n \r\n
\r\n }\r\n\r\n \r\n )\r\n}\r\n\r\nexport default connect()(EditSendsModal);\r\n","\r\nconst SendSmsLimitationType = [\r\n { value: 1, name: \"RecipientLimitationCountInPerSendSms\" , },\r\n { value: 2, name: \"LinkUrlLimitationInSmsContent\" },\r\n { value: 4, name: \"ForbiddenWords\" },\r\n { value: 8, name: \"NewUser\" },\r\n { value: 16, name: \"FrequentMessageText\" },\r\n { value: 32, name: \"CalledWebServiceCount\" },\r\n];\r\n\r\nexport default SendSmsLimitationType;\r\n","import SendSmsLimitationType from \"../Models/SendSmsLimitationType\";\r\nfunction SendSmsLimitation(value , key) {\r\n let result = [];\r\n SendSmsLimitationType.forEach((item,i) => {\r\n result.push(value.includes(item.value));\r\n });\r\n return result\r\n}\r\n\r\nexport default SendSmsLimitation;\r\n\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { StyledButton } from \"../../../../Component/Kit/Button\";\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport {sendSMSModel} from '../../../../Utility/Model/send-sms.model';\r\nimport EditSendsModal from \"./edit-sends-modal\";\r\nimport EnumFlag from \"../../../../Utility/Services/enum-flag\";\r\nimport SendSmsLimitation from \"../../Services/SendSmsLimitation\";\r\n\r\nfunction ManageSends({ data }) {\r\n const [isModal, setIsModal] = useState(false);\r\n const [sendData, setSendData] = useState(false);\r\n\r\n useEffect(() => {\r\n if (data && typeof data == 'string') {\r\n refactorBlacklistData(data);\r\n }\r\n }, [data])\r\n\r\n const refactorBlacklistData = (result) => {\r\n if (result) {\r\n const data = Object.entries((JSON.parse(result)))\r\n .map(([key, value]) => {\r\n return {\r\n value: key,\r\n name: sendSMSModel?.find(a => a.value == key)?.name,\r\n fields: SendSmsLimitation(EnumFlag([1, 2, 4, 8, 16,32],value) , 'name')\r\n }\r\n })\r\n setSendData(data)\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n data &&\r\n <>\r\n
\r\n
\r\n مدیریت ارسال‌ها : \r\n {/*{selectedItem && blacklistData*/}\r\n {/* ? {selectedItem.join(' , ')}*/}\r\n {/* : گزینه ای انتخاب نشده*/}\r\n {/*}*/}\r\n\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n setIsModal(false)}\r\n onCancel={() => setIsModal(false)}\r\n visible={isModal}\r\n headerTitle=\"مدیریت ارسال ها\"\r\n >\r\n setIsModal(false)} />\r\n \r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nexport default ManageSends\r\n","import {\r\n smsContent\r\n} from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const SMSContentSchema = Yup.object().shape({\r\n smsContent\r\n});\r\n","import React from \"react\";\r\nimport { Formik } from \"formik\";\r\nimport Swal from \"sweetalert2\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport { toast } from \"react-toastify\";\r\nimport { StyledForm, StyledTextArea } from \"../../../Component/Kit/Form\";\r\nimport { StyledButton } from \"../../../Component/Kit/Button\";\r\nimport { settingModal } from \"../../../Actions/setting-modal\";\r\nimport { connect, useDispatch } from \"react-redux\";\r\nimport { SMSContentSchema } from \"../../../Utility/Validation/Schema/SMSContentSchema\";\r\n\r\nfunction SMSContentModal({ defaultData, onCloseModal, url }) {\r\n let dispatch = useDispatch();\r\n return (\r\n <>\r\n {\r\n Swal.fire({\r\n title: `آیا مطمئن هستید؟`,\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n let value = JSON.stringify(values.smsContent);\r\n ApiClient.Patch(url, value).then(() => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n values.smsContent = defaultData;\r\n dispatch(settingModal(true));\r\n })\r\n }\r\n values.smsContent = defaultData;\r\n })\r\n\r\n }}\r\n onReset={(values, formikBag) => {\r\n onCloseModal(false)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n \r\n formik.setFieldValue(\"smsContent\", e.target.value)\r\n }\r\n />\r\n
\r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n \r\n ویرایش\r\n \r\n
\r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect()(SMSContentModal);\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { StyledButton } from \"../../../../Component/Kit/Button\";\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport SmsModal from \"../../modals/sms-modal\";\r\n\r\nfunction CodeReaderWrongMessage({ modalChange , data }) {\r\n const [isModal, setIsModal] = useState(false);\r\n\r\n useEffect(() => {\r\n }, [modalChange])\r\n return (\r\n <>\r\n
\r\n
\r\n پیام اشتباه عمومی کدخوان : \r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n setIsModal(false)}\r\n onCancel={() => setIsModal(false)}\r\n visible={isModal}\r\n headerTitle=\"پیام اشتباه عمومی کدخوان\"\r\n >\r\n setIsModal(false)} defaultData={data} />\r\n \r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n modalChange: state.modalChange,\r\n});\r\nexport default connect(mapStateToProps)(CodeReaderWrongMessage);\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { Badge } from 'react-bootstrap';\r\nimport { connect } from \"react-redux\";\r\nimport { StyledButton } from \"../../../../Component/Kit/Button\";\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport SmsModal from \"../../modals/sms-modal\";\r\n\r\nfunction CodeReaderDuplicateMessage({ modalChange , data }) {\r\n const [isModal, setIsModal] = useState(false);\r\n\r\n useEffect(() => {\r\n }, [modalChange])\r\n return (\r\n <>\r\n
\r\n
\r\n پیام تکراری عمومی کدخوان : \r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n setIsModal(false)}\r\n onCancel={() => setIsModal(false)}\r\n visible={isModal}\r\n headerTitle=\"پیام تکراری عمومی کدخوان\"\r\n >\r\n setIsModal(false)} defaultData={data} />\r\n \r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n modalChange: state.modalChange,\r\n});\r\nexport default connect(mapStateToProps)(CodeReaderDuplicateMessage);\r\n","import * as Yup from \"yup\";\r\nimport {PurchaseRestrictionPaymentCount, PurchaseRestrictionTime} from \"../Rules\";\r\n\r\nexport const PurchaseRestrictionsSchema = Yup.object().shape({\r\n paymentCount: PurchaseRestrictionPaymentCount,\r\n fromTime: PurchaseRestrictionTime,\r\n toTime: PurchaseRestrictionTime\r\n});\r\n","import React from \"react\";\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport {FormLable, StyledForm, StyledInput} from \"../../../../Component/Kit/Form\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport {Formik} from \"formik\";\r\nimport DatePicker from \"react-multi-date-picker\";\r\nimport TimePicker from \"react-multi-date-picker/plugins/time_picker\";\r\nimport {TimePickerStyled} from \"../../../../Component/Shared/TimePicker\";\r\nimport {PurchaseRestrictionsSchema} from \"../../../../Utility/Validation/Schema/PurchaseRestrictionsSchema\";\r\nimport Swal from \"sweetalert2\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport {toast} from \"react-toastify\";\r\nimport {settingModal} from \"../../../../Actions/setting-modal\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport {connect, useDispatch} from \"react-redux\";\r\n\r\nfunction PurchaseRestrictionsModal({data, visible, setVisible, onClose, onCancel}) {\r\n let dispatch = useDispatch();\r\n return (\r\n setVisible(false)}\r\n onCancel={() => setVisible(false)}\r\n visible={visible}\r\n headerTitle=\"محدودیت در زمان و مبلغ پرداخت\"\r\n >\r\n {/*validationSchema={}*/}\r\n {\r\n Swal.fire({\r\n title: `آیا مطمئن هستید؟`,\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n const body = {\r\n allowedPaymentCount: Number(values.paymentCount),\r\n fromTime: `${values.fromTime.slice(0, 2)}:${values.fromTime.slice(2, 4)}:00`,\r\n toTime: `${values.toTime.slice(0, 2)}:${values.toTime.slice(2, 4)}:00`,\r\n }\r\n ApiClient.Patch(Urls.modifyPaymentLimitations(), body)\r\n .then((res) => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n // values.numberLimitation = defaultData;\r\n dispatch(settingModal(true));\r\n })\r\n }\r\n })\r\n\r\n }}\r\n onReset={(values, formikBag) => {\r\n onClose(false)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
\r\n
\r\n \r\n از ساعت\r\n \r\n {\r\n if (event)\r\n formik.setFieldValue(\"fromTime\", event.baseFormat)\r\n }}\r\n error={\r\n formik.errors.fromTime &&\r\n formik.touched.fromTime\r\n ? formik.errors.fromTime\r\n : \"false\"\r\n }\r\n name=\"fromTime\"/>\r\n
\r\n
\r\n \r\n تا ساعت\r\n \r\n {\r\n if (event)\r\n formik.setFieldValue(\"toTime\", event.baseFormat)\r\n }}\r\n error={\r\n formik.errors.toTime &&\r\n formik.touched.toTime\r\n ? formik.errors.toTime\r\n : \"false\"\r\n }\r\n name=\"toTime\"/>\r\n
\r\n \r\n formik.setFieldValue(\"paymentCount\", e.target.value)\r\n }\r\n />\r\n
\r\n\r\n
\r\n \r\n ویرایش\r\n \r\n
\r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect()(PurchaseRestrictionsModal)\r\n\r\n","import React, {useEffect, useState} from 'react';\r\nimport {Badge} from \"react-bootstrap\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport PurchaseRestrictionsModal from \"./PurchaseRestrictionsModal\";\r\n\r\nfunction PurchaseRestrictions({data}) {\r\n const [isModal, setIsModal] = useState(false);\r\n const [value, setValue] = useState({})\r\n useEffect(() => {\r\n if (data) {\r\n const dataObj = JSON.parse(data);\r\n dataObj.FromTime = `${dataObj.FromTime.slice(0, 2)}${dataObj.FromTime.slice(3, 5)}${dataObj.FromTime.slice(6)}`;\r\n dataObj.ToTime = `${dataObj.ToTime.slice(0, 2)}${dataObj.ToTime.slice(3, 5)}${dataObj.ToTime.slice(6)}`;\r\n setValue(dataObj)\r\n }\r\n }, [data])\r\n return (\r\n <>\r\n
\r\n
\r\n محدودیت در زمان و تعداد پرداخت : \r\n {value.AllowedPaymentCount}\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n setIsModal(e)}\r\n onCancel={() => setIsModal(false)}\r\n onClose={() => setIsModal(false)}/>\r\n \r\n )\r\n\r\n}\r\n\r\nexport default PurchaseRestrictions;","import React, {useState} from \"react\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport {Badge} from 'react-bootstrap';\r\nimport NumberLimitationModal from \"../../modals/limitation-modal\";\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\n\r\nfunction CalledWebserviceCount({data}) {\r\n const [isModal, setIsModal] = useState(false);\r\n return (\r\n <>\r\n
\r\n
\r\n محدودیت روزانه تعداد ارسال وب سرویس :\r\n {data}\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n setIsModal(false)}\r\n onCancel={() => setIsModal(false)}\r\n visible={isModal}\r\n headerTitle=\"محدودیت روزانه تعداد ارسال وب سرویس \"\r\n >\r\n setIsModal(false)} url={Urls.calledWebServiceCount()} />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default CalledWebserviceCount;\r\n","import React, {useEffect, useRef} from \"react\";\r\nimport {useFormik} from \"formik\";\r\nimport {\r\n FormLable,\r\n FormLayout,\r\n StyledCheckBox,\r\n StyledForm,\r\n StyledInput,\r\n StyledRadioBtn,\r\n StyledSelect\r\n} from \"../../../../Component/Kit/Form\";\r\n\r\nfunction Bank({defaultData, updateBankAction}) {\r\n const isMounted = useRef(false);\r\n\r\n const officialTypeOptions = [\r\n {name: \"رسمی - غیر رسمی\", value: \"null\"},\r\n {name: \"رسمی\", value: 'true'},\r\n {name: \"غیر رسمی\", value: 'false'},\r\n ];\r\n\r\n const formik = useFormik({\r\n initialValues: {\r\n ...defaultData,\r\n },\r\n });\r\n\r\n const convertDataForm = (data) => {\r\n const convertModel = [\r\n {name: null, value: 'null'},\r\n {name: false, value: 'false'},\r\n {name: true, value: 'true'},\r\n ];\r\n const updatedObject = Object.fromEntries(\r\n Object.entries(data).map(([key, value]) => {\r\n const findModel = convertModel.find(f => f.value === value)?.name;\r\n const updatedValue = findModel !== undefined ? findModel : value\r\n return [key, updatedValue];\r\n })\r\n );\r\n delete updatedObject.title;\r\n\r\n updateBankAction(updatedObject)\r\n }\r\n\r\n useEffect(() => {\r\n if (isMounted.current) {\r\n convertDataForm(formik.values)\r\n } else {\r\n isMounted.current = true;\r\n }\r\n }, [formik.values]);\r\n\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n
\r\n {defaultData.title}\r\n
\r\n
\r\n \r\n formik.setFieldValue(\"showTitle\", e.target.value)\r\n }\r\n />\r\n {\r\n formik.setFieldValue(\"isOfficial\", e.target.value)\r\n }}\r\n />\r\n\r\n\r\n \r\n formik.setFieldValue(\"hasGateway\", e.target.checked)\r\n }\r\n />\r\n\r\n\r\n
\r\n \r\n بانک پیش فرض\r\n \r\n
\r\n {\r\n formik.setFieldValue(`isDefault`, e.target.value)\r\n }\r\n }/>\r\n {\r\n formik.setFieldValue(`isDefault`, e.target.value)\r\n }}\r\n />\r\n
\r\n
\r\n\r\n
\r\n \r\n وضعیت\r\n \r\n
\r\n {\r\n formik.setFieldValue(`isActive`, e.target.value)\r\n }\r\n }/>\r\n {\r\n formik.setFieldValue(`isActive`, e.target.value)\r\n }}\r\n />\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n\r\n \r\n )\r\n}\r\n\r\nexport default (Bank);\r\n","import React, {useEffect, useState} from \"react\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport {Loader} from \"../../../Component/Shared/Loader\";\r\nimport Bank from \"./bank\";\r\nimport {StyledButton} from \"../../../Component/Kit/Button\";\r\nimport {toast} from \"react-toastify\";\r\n\r\nfunction BanksSetting() {\r\n const [loading, setLoading] = useState(true);\r\n const [bankData, setBankData] = useState([]);\r\n const [requestData, setRequestData] = useState([]);\r\n\r\n\r\n const deepCopy = (data) => {\r\n return JSON.parse(JSON.stringify(data));\r\n }\r\n\r\n const removeTitleKey = (list) => {\r\n return list.map((item) => {\r\n const {title, ...rest} = item;\r\n return rest;\r\n });\r\n };\r\n\r\n const updateBank = (event) => {\r\n setRequestData(requestData.map(obj => (obj.id === event.id ? event : obj)));\r\n }\r\n\r\n const getData = () => {\r\n const convertModel = [\r\n {name: null, value: 'null'},\r\n {name: false, value: 'false'},\r\n {name: true, value: 'true'},\r\n ];\r\n\r\n ApiClient.Get(Urls.getbankSetting()).then(res => {\r\n const baseArray = deepCopy(res.result);\r\n const secondaryArray = deepCopy(res.result);\r\n\r\n baseArray.map((item) => {\r\n item.isOfficial = convertModel.find(f => f.name === item.isOfficial)?.value\r\n item.isDefault = convertModel.find(f => f.name === item.isDefault)?.value\r\n item.isActive = convertModel.find(f => f.name === item.isActive)?.value\r\n })\r\n\r\n\r\n setBankData(baseArray);\r\n setRequestData(removeTitleKey(secondaryArray));\r\n setLoading(false);\r\n }).catch(() => {\r\n setLoading(false);\r\n })\r\n }\r\n\r\n const onSubmit = () => {\r\n setLoading(true);\r\n ApiClient.Put(Urls.getbankSetting(), JSON.stringify(requestData)).then(res => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n getData();\r\n }).catch(() => {\r\n toast.error('خطایی رخ داده است.');\r\n setLoading(false);\r\n })\r\n\r\n }\r\n\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [])\r\n\r\n return (\r\n
\r\n {loading === true\r\n ?\r\n \r\n :\r\n <>\r\n {\r\n bankData.map(bank => (\r\n \r\n ))\r\n }\r\n\r\n
\r\n\r\n {\r\n onSubmit()\r\n }}\r\n >\r\n ذخیره اطلاعات\r\n \r\n
\r\n \r\n }\r\n
\r\n\r\n )\r\n}\r\n\r\nexport default BanksSetting\r\n","import React, {useState} from \"react\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport {Badge} from 'react-bootstrap';\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport NumberLimitationModal from \"../../modals/limitation-modal\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\n\r\nfunction AllowTotalSmsSendInADay({data}) {\r\n const [isModal, setIsModal] = useState(false);\r\n return (\r\n <>\r\n
\r\n
\r\n محدودیت در تعداد ارسال در روز : \r\n {data}\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n\r\n\r\n {\r\n setIsModal(false)\r\n }}>\r\n \r\n محدودیت در تعداد ارسال در روز\r\n {\r\n setIsModal(false)\r\n }} className=\"close-btn fa fa-xmark\"/>\r\n \r\n \r\n setIsModal(false)} url={Urls.totalSmsInDay()} />\r\n \r\n\r\n \r\n\r\n \r\n )\r\n}\r\n\r\nexport default AllowTotalSmsSendInADay\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport {Badge} from \"react-bootstrap\";\r\nimport {Formik} from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport Swal from \"sweetalert2\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport {toast} from \"react-toastify\";\r\nimport {StyledForm, StyledInput} from \"../../../../Component/Kit/Form\";\r\nimport {connect, useDispatch} from \"react-redux\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport {settingModal} from \"../../../../Actions/setting-modal\";\r\n\r\nfunction SendSmsViaTowerLimitations({data}) {\r\n let dispatch = useDispatch();\r\n const [isModal, setIsModal] = useState(false);\r\n const [modalData, setModalData] = useState();\r\n\r\n useEffect(() => {\r\n if (data) {\r\n setModalData(JSON.parse(data))\r\n }\r\n }, [data]);\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n\r\n\r\n \r\n ارسال از دکل - محدودیت ساعت زمان ساخت :\r\n \r\n {modalData &&\r\n modalData.CreationTimeLimitInHours\r\n }\r\n \r\n \r\n\r\n\r\n \r\n ارسال از دکل - محدودیت ساعت زمان پرداخت :\r\n \r\n {modalData &&\r\n modalData.PaymentTimeLimitInHours\r\n }\r\n \r\n \r\n\r\n\r\n\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n\r\n\r\n {\r\n setIsModal(false)\r\n }}>\r\n \r\n محدودیت های ارسال از دکل\r\n {\r\n setIsModal(false)\r\n }} className=\"close-btn fa fa-xmark\"/>\r\n \r\n \r\n {\r\n modalData &&\r\n <>\r\n {\r\n Swal.fire({\r\n title: `آیا مطمئن هستید؟`,\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n let body = {\r\n creationTimeLimitInHours: parseInt(values.creationTimeLimitInHours),\r\n paymentTimeLimitInHours: parseInt(values.paymentTimeLimitInHours)\r\n }\r\n\r\n ApiClient.Patch(Urls.towerLimitationConfiguration(), JSON.stringify(body))\r\n .then((res) => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n dispatch(settingModal(true));\r\n })\r\n }\r\n\r\n })\r\n\r\n }}\r\n onReset={(values, formikBag) => {\r\n setIsModal(false)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n\r\n \r\n formik.setFieldValue(\"creationTimeLimitInHours\", e.target.value)\r\n }\r\n />\r\n\r\n \r\n formik.setFieldValue(\"paymentTimeLimitInHours\", e.target.value)\r\n }\r\n />\r\n\r\n\r\n\r\n
\r\n \r\n بستن\r\n \r\n \r\n اعمال محدودیت\r\n \r\n
\r\n \r\n )}\r\n \r\n \r\n }\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n )\r\n}\r\n\r\nexport default connect()(SendSmsViaTowerLimitations)\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport {Badge} from \"react-bootstrap\";\r\nimport {Formik} from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport Swal from \"sweetalert2\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport {toast} from \"react-toastify\";\r\nimport {StyledForm, StyledInput} from \"../../../../Component/Kit/Form\";\r\nimport {connect, useDispatch} from \"react-redux\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport {settingModal} from \"../../../../Actions/setting-modal\";\r\n\r\nfunction PublicLineSendLimitations({data}) {\r\n let dispatch = useDispatch();\r\n const [isModal, setIsModal] = useState(false);\r\n const [modalData, setModalData] = useState();\r\n\r\n useEffect(() => {\r\n if (data) {\r\n setModalData(JSON.parse(data))\r\n }\r\n }, [data]);\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n\r\n\r\n \r\n حداقل تعداد مخاطب مجاز در ارسال با خطوط ویژه:\r\n \r\n {modalData &&\r\n modalData.CreationLimitCount\r\n }\r\n\r\n \r\n \r\n\r\n\r\n \r\n حداقل تعداد مخاطب در اطلاع رسانی ارسال با خطوط ویژه:\r\n \r\n {modalData &&\r\n modalData.NotificationLimitCount\r\n }\r\n \r\n \r\n\r\n\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n\r\n\r\n {\r\n setIsModal(false)\r\n }}>\r\n \r\n محدودیت ‌های ارسال با خطوط ویژه\r\n {\r\n setIsModal(false)\r\n }} className=\"close-btn fa fa-xmark\"/>\r\n \r\n \r\n {\r\n modalData &&\r\n <>\r\n {\r\n Swal.fire({\r\n title: `آیا مطمئن هستید؟`,\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n let body = {\r\n creationLimitCount: parseInt(values.creationLimitCount),\r\n notificationLimitCount: parseInt(values.notificationLimitCount)\r\n }\r\n\r\n ApiClient.Patch(Urls.publicLineSendLimitations(), JSON.stringify(body))\r\n .then((res) => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n dispatch(settingModal(true));\r\n })\r\n }\r\n\r\n })\r\n\r\n }}\r\n onReset={(values, formikBag) => {\r\n setIsModal(false)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n\r\n \r\n formik.setFieldValue(\"creationLimitCount\", e.target.value)\r\n }\r\n />\r\n \r\n\r\n \r\n formik.setFieldValue(\"notificationLimitCount\", e.target.value)\r\n }\r\n />\r\n\r\n\r\n\r\n
\r\n \r\n بستن\r\n \r\n \r\n اعمال محدودیت\r\n \r\n
\r\n \r\n )}\r\n \r\n \r\n }\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n )\r\n}\r\n\r\nexport default connect()(PublicLineSendLimitations)\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {Badge} from 'react-bootstrap';\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport {connect, useDispatch} from \"react-redux\";\r\nimport {Formik} from \"formik\";\r\nimport Swal from \"sweetalert2\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport {toast} from \"react-toastify\";\r\nimport {settingModal} from \"../../../../Actions/setting-modal\";\r\nimport {StyledForm, StyledSwitchBox} from \"../../../../Component/Kit/Form\";\r\nimport {SystemLineProviderEnum} from \"../../../../Utility/Model/provider-enum.model\";\r\n\r\nfunction ModifyOffKeywordSettingByProvider({data}) {\r\n let dispatch = useDispatch();\r\n const [isModal, setIsModal] = useState(false);\r\n const [modalData, setModalData] = useState();\r\n\r\n useEffect(() => {\r\n if (data) {\r\n setModalData(JSON.parse(data))\r\n }\r\n }, [data]);\r\n\r\n\r\n const convertedData = (data) => {\r\n return Object.keys(data).map(provider => {\r\n const enumEntry = SystemLineProviderEnum.find(entry => entry.Eng === provider);\r\n return {\r\n providerId: enumEntry.value,\r\n isActive: data[provider]\r\n };\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n تنظیمات عبارت لغو11\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n\r\n {\r\n setIsModal(false)\r\n }}>\r\n \r\n تنظیمات عبارت لغو11\r\n {\r\n setIsModal(false)\r\n }} className=\"close-btn fa fa-xmark\"/>\r\n \r\n \r\n {\r\n modalData &&\r\n <>\r\n {\r\n Swal.fire({\r\n title: `آیا مطمئن هستید؟`,\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n const body = convertedData(values)\r\n ApiClient.Patch(Urls.offKeyword(), JSON.stringify(body))\r\n .then((res) => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n dispatch(settingModal(true));\r\n })\r\n }\r\n\r\n })\r\n\r\n }}\r\n onReset={(values, formikBag) => {\r\n setIsModal(false)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n\r\n
    \r\n\r\n {Object.keys(formik.values).map((item, index) => (\r\n
  • \r\n
    \r\n
    \r\n \r\n {SystemLineProviderEnum.find(p => p.Eng === item)?.name}\r\n \r\n \r\n {\r\n (formik.values[item]) ? 'فعال' : 'غیرفعال'\r\n }\r\n \r\n
    \r\n formik.setFieldValue(item, e.target.checked)}/>\r\n
    \r\n
  • \r\n ))}\r\n\r\n
\r\n\r\n
\r\n \r\n بستن\r\n \r\n \r\n اعمال تغییرات\r\n \r\n
\r\n \r\n )}\r\n \r\n \r\n }\r\n
\r\n\r\n
\r\n\r\n \r\n )\r\n}\r\n\r\nexport default connect()(ModifyOffKeywordSettingByProvider);\r\n","import {TowerOperatorList} from \"../Model/send-tower.model\";\r\n\r\nfunction GetOperator(value) {\r\n let result = TowerOperatorList.find((item) => item.value ===value);\r\n return result?.name\r\n}\r\n\r\nexport default GetOperator;","import React, {useEffect, useRef} from \"react\";\r\nimport {Badge} from \"react-bootstrap\";\r\nimport {useFormik} from \"formik\";\r\n\r\nimport {\r\n FormLayout,\r\n StyledForm,\r\n StyledInput,\r\n StyledSwitchBox,\r\n} from \"../../../../Component/Kit/Form\";\r\nimport GetOperator from \"../../../../Utility/Services/operator\";\r\n\r\nfunction TowerOperatorConfiguration({operatorData, updateOperator}) {\r\n const isMounted = useRef(false);\r\n const formik = useFormik({\r\n initialValues: {\r\n ...operatorData,\r\n },\r\n });\r\n\r\n\r\n useEffect(() => {\r\n if (isMounted.current) {\r\n updateOperator(formik.values)\r\n } else {\r\n isMounted.current = true;\r\n }\r\n }, [formik.values]);\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n
\r\n {GetOperator(operatorData.OperatorId)}\r\n
\r\n
\r\n\r\n \r\n formik.setFieldValue(\"BasePrice\", parseInt(e.target.value))\r\n }\r\n />\r\n\r\n\r\n\r\n \r\n formik.setFieldValue(\"MinRecipientsCount\", parseInt(e.target.value))\r\n }\r\n />\r\n\r\n \r\n formik.setFieldValue(\"MaxRecipientsCount\", parseInt(e.target.value))\r\n }\r\n />\r\n\r\n\r\n\r\n
\r\n
\r\n وضعیت : \r\n \r\n {\r\n (formik.values.IsActive)?'فعال':'غیرفعال'\r\n }\r\n \r\n
\r\n formik.setFieldValue(\"IsActive\", !formik.values.IsActive)} />\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n \r\n )\r\n\r\n}\r\nexport default TowerOperatorConfiguration;\r\n","import {connect, useDispatch} from \"react-redux\";\r\nimport React, {useEffect, useState} from \"react\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport TowerOperatorConfiguration from \"./tower-operator-configuration\";\r\nimport Swal from \"sweetalert2\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport {toast} from \"react-toastify\";\r\nimport {settingModal} from \"../../../../Actions/setting-modal\";\r\n\r\n\r\nfunction SendSmsViaTowerOperatorConfigurations({data}) {\r\n let dispatch = useDispatch();\r\n const [isModal, setIsModal] = useState(false);\r\n const [modalData, setModalData] = useState([]);\r\n const [requestData, setRequestData] = useState([]);\r\n\r\n\r\n const updateOperator = (event) => {\r\n setRequestData(requestData.map(obj => (obj.OperatorId === event.OperatorId ? event : obj)));\r\n }\r\n\r\n const onSubmit = () => {\r\n Swal.fire({\r\n title: `آیا مطمئن هستید؟`,\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n const body = JSON.stringify(requestData);\r\n ApiClient.Patch(Urls.towerOperatorConfiguration(), body)\r\n .then((res) => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n dispatch(settingModal(true));\r\n })\r\n }\r\n\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n if (data) {\r\n setModalData(JSON.parse(data))\r\n setRequestData(JSON.parse(data))\r\n }\r\n }, [data]);\r\n\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n تنظیمات اپراتورهای ارسال از دکل\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n\r\n {\r\n setIsModal(false)\r\n }}>\r\n \r\n تنظیمات اپراتورهای ارسال از دکل\r\n {\r\n setIsModal(false)\r\n }} className=\"close-btn fa fa-xmark\"/>\r\n \r\n \r\n {\r\n modalData &&\r\n modalData.map((operator, index) => (\r\n \r\n ))\r\n }\r\n\r\n
\r\n setIsModal(false)}\r\n >\r\n بستن\r\n \r\n\r\n onSubmit()}>\r\n اعمال تغییرات\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n )\r\n}\r\n\r\nexport default connect()(SendSmsViaTowerOperatorConfigurations);","import React, {useState} from \"react\";\r\nimport {Badge, Modal} from 'react-bootstrap';\r\n\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport NumberLimitationModal from \"../../modals/limitation-modal\";\r\n\r\nfunction PublicLineCostCoefficient({data}) {\r\n const [isModal, setIsModal] = useState(false);\r\n return (\r\n <>\r\n
\r\n
\r\n ضریب کسر اعتبار ارسال با خطوط ویژه : \r\n {data}\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n\r\n {\r\n setIsModal(false)\r\n }}>\r\n \r\n ضریب کسر اعتبار ارسال با خطوط ویژه\r\n {\r\n setIsModal(false)\r\n }} className=\"close-btn fa fa-xmark\"/>\r\n \r\n \r\n setIsModal(false)} url={Urls.publicLineCost()} />\r\n \r\n\r\n \r\n\r\n \r\n )\r\n}\r\n\r\nexport default PublicLineCostCoefficient;\r\n","import React, {useState} from \"react\";\r\nimport {Badge, Modal} from 'react-bootstrap';\r\n\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport NumberLimitationModal from \"../../modals/limitation-modal\";\r\n\r\nfunction VatPercent({data}) {\r\n const [isModal, setIsModal] = useState(false);\r\n return (\r\n <>\r\n
\r\n
\r\n درصد مالیات بر ارزش افزوده : \r\n {data}\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n\r\n {\r\n setIsModal(false)\r\n }}>\r\n \r\n درصد مالیات بر ارزش افزوده\r\n {\r\n setIsModal(false)\r\n }} className=\"close-btn fa fa-xmark\"/>\r\n \r\n \r\n setIsModal(false)} url={Urls.vatPercent()} />\r\n \r\n\r\n \r\n\r\n \r\n )\r\n}\r\n\r\nexport default VatPercent;\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {Badge} from 'react-bootstrap';\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport {connect, useDispatch} from \"react-redux\";\r\nimport {Formik} from \"formik\";\r\nimport Swal from \"sweetalert2\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport {toast} from \"react-toastify\";\r\nimport {settingModal} from \"../../../../Actions/setting-modal\";\r\nimport {StyledForm, StyledSwitchBox} from \"../../../../Component/Kit/Form\";\r\nimport {sendSMSModel} from \"../../../../Utility/Model/send-sms.model\";\r\n\r\nfunction SendSmsTypeActivationStatus({data}) {\r\n let dispatch = useDispatch();\r\n const [isModal, setIsModal] = useState(false);\r\n const [modalData, setModalData] = useState();\r\n\r\n useEffect(() => {\r\n if (data) {\r\n setModalData(JSON.parse(data))\r\n }\r\n }, [data]);\r\n\r\n\r\n\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n محدودیت انواع ارسال ها\r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n\r\n {\r\n setIsModal(false)\r\n }}>\r\n \r\n محدودیت انواع ارسال ها\r\n {\r\n setIsModal(false)\r\n }} className=\"close-btn fa fa-xmark\"/>\r\n \r\n \r\n {\r\n modalData &&\r\n <>\r\n {\r\n Swal.fire({\r\n title: `آیا مطمئن هستید؟`,\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Patch(Urls.smsTypeActivation(), JSON.stringify(values))\r\n .then((res) => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n dispatch(settingModal(true));\r\n })\r\n }\r\n\r\n })\r\n\r\n }}\r\n onReset={(values, formikBag) => {\r\n setIsModal(false)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n\r\n
    \r\n\r\n {Object.keys(formik.values).map((item, index) => (\r\n
  • \r\n
    \r\n
    \r\n \r\n {sendSMSModel.find(p => p.key === item)?.name}\r\n \r\n \r\n {\r\n (formik.values[item]) ? 'فعال' : 'غیرفعال'\r\n }\r\n \r\n
    \r\n formik.setFieldValue(item, e.target.checked)}/>\r\n
    \r\n
  • \r\n ))}\r\n\r\n
\r\n\r\n
\r\n \r\n بستن\r\n \r\n \r\n اعمال تغییرات\r\n \r\n
\r\n \r\n )}\r\n \r\n \r\n }\r\n
\r\n\r\n
\r\n\r\n \r\n )\r\n}\r\n\r\nexport default connect()(SendSmsTypeActivationStatus);\r\n","import React, {useState} from \"react\";\r\nimport {Badge} from 'react-bootstrap';\r\n\r\n\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport NumberLimitationModal from \"../../modals/limitation-modal\";\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\n\r\nfunction UserTagAddLimitationCount({data}) {\r\n const [isModal, setIsModal] = useState(false);\r\n return (\r\n <>\r\n
\r\n
\r\n بیشینه تعداد پوشه مجاز برای هر کاربر :\r\n {data} \r\n
\r\n setIsModal(true)}\r\n >\r\n ویرایش\r\n \r\n
\r\n setIsModal(false)}\r\n onCancel={() => setIsModal(false)}\r\n visible={isModal}\r\n headerTitle=\"بیشینه تعداد پوشه مجاز برای هر کاربر\"\r\n >\r\n setIsModal(false)} url={Urls.userTagLimitation()} />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default UserTagAddLimitationCount;\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {connect} from \"react-redux\";\r\nimport {NavLink, Route, Switch, useHistory, useLocation} from \"react-router-dom\";\r\nimport {MainContent} from \"../../Component/Kit/Layout\";\r\nimport ApiClient from \"../../Requester/ApiClient\";\r\nimport Urls from \"../../Requester/Urls\";\r\nimport SettingSwitchRow from \"./Components/switch-row\";\r\nimport ABTestMinimumContact from \"./limitation/abtest-minimum-contact\";\r\nimport ContactGroupLimitationCount from \"./limitation/contact-group\";\r\nimport FastSendTemplateAddLimitation from \"./limitation/fast-send-template-add\";\r\nimport RecipientLimitationCountInPerSendSms from \"./limitation/recipient-limitation-count-in-per-send-sms\";\r\nimport RecipientLimitationCountInPerWebService from \"./limitation/RecipientLimitationCountInPerWebService\";\r\nimport UserEventLimitationCount from \"./limitation/user-event\";\r\nimport UserTemplateLimitationCount from \"./limitation/user-template\";\r\nimport {WarningLakeCredit} from \"./limitation/WarningLakeCredit\";\r\nimport FifteenRemarkCoefficient from \"./other/fifteen-remark-coefficient\";\r\nimport ManageBlacklist from \"./other/manage-blacklist\";\r\nimport ReactionToUserTicket from \"./other/reaction-to-user-ticket\";\r\nimport CooperationWithdrawalAmount from \"./limitation/CooperationWithdrawalAmountLimit\";\r\nimport CooperationCreditProfitPercent from \"./limitation/CooperationCreditProfitPercent\";\r\nimport CooperationLineProfitPercent from \"./limitation/CooperationLineProfitPercent\";\r\nimport ManageSends from \"./other/mange-sends\";\r\nimport CodeReaderWrongMessage from \"./other/code-reader-wrong-message\";\r\nimport CodeReaderDuplicateMessage from \"./other/code-reader-duplicate-message\";\r\nimport PurchaseRestrictions from \"./limitation/PurchaseRestrictions\";\r\nimport CalledWebserviceCount from \"./limitation/CalledWebserviceCount\";\r\nimport BanksSetting from \"./banks\";\r\nimport AllowTotalSmsSendInADay from \"./limitation/AllowedTotalSmsSentInADay\";\r\nimport SendSmsViaTowerLimitations from \"./limitation/SendSmsViaTowerLimitations\";\r\nimport PublicLineSendLimitations from \"./limitation/PublicLineSendLimitations\";\r\nimport ModifyOffKeywordSettingByProvider from \"./other/modify-off-keyword-provider\";\r\nimport SendSmsViaTowerOperatorConfigurations from \"./other/tower-operator-configuration\";\r\nimport PublicLineCostCoefficient from \"./other/public-line-cost\";\r\nimport VatPercent from \"./other/vat-percent\";\r\nimport SendSmsTypeActivationStatus from \"./other/send-sms-type\";\r\nimport UserTagAddLimitationCount from \"./limitation/UserTagAddLimitationCount\";\r\n\r\nfunction SettingList({modalChange, match}) {\r\n const [settingsData, setSettingsData] = useState({})\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n const getAllSettings = () => {\r\n ApiClient.Get(Urls.getSettingList()).then(res => {\r\n setSettingsData(res?.result)\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n if (location.pathname === `${match.url}`) {\r\n history.push(`${match.url}/limitation`)\r\n }\r\n getAllSettings();\r\n }, [modalChange, history, match.url])\r\n\r\n return (\r\n <>\r\n \r\n\r\n
    \r\n
  • \r\n \r\n محدودیت ها\r\n \r\n
  • \r\n
  • \r\n \r\n مدیریت بانک ها\r\n \r\n
  • \r\n
  • \r\n \r\n موارد دیگر\r\n \r\n
  • \r\n
\r\n
\r\n \r\n \r\n
    \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n\r\n
  • \r\n \r\n
  • \r\n\r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n\r\n\r\n
\r\n
\r\n \r\n
    \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n\r\n
  • \r\n \r\n
  • \r\n\r\n
  • \r\n \r\n
  • \r\n\r\n
  • \r\n \r\n
  • \r\n\r\n
  • \r\n \r\n
  • \r\n\r\n
  • \r\n \r\n
  • \r\n\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n modalChange: state.modalChange,\r\n});\r\nexport default connect(mapStateToProps)(SettingList);\r\n","import React from 'react'\r\nimport { toast } from 'react-toastify';\r\nimport { StyledButton } from '../../../Component/Kit/Button';\r\nimport Modal from '../../../Component/Kit/Modal';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\n\r\nexport const DeleteTemplateModal = (props) => {\r\n const { templateId, visible, onClose, onCancel, setVisible ,setChangedata} = props;\r\n \r\n const deleteSingleTemplateHandler = () => {\r\n ApiClient.Delete(Urls.ModifyTicketAnswerTemplateById(templateId))\r\n .then(res => {\r\n toast.success('قالب با موفقیت حذف شد.');\r\n setVisible(false);\r\n setChangedata(true);\r\n })\r\n }\r\n\r\n return (\r\n \r\n
\r\n
آیا از حذف قالب خود مطمئن هستید؟
\r\n\r\n
\r\n deleteSingleTemplateHandler()}\r\n >\r\n مطمئنم\r\n \r\n\r\n { setVisible(false) }}\r\n >\r\n بستن\r\n \r\n\r\n
\r\n\r\n
\r\n \r\n )\r\n}\r\n","import React, {useEffect, useState} from 'react'\r\nimport Table from \"../../Component/Shared/Table/Table\";\r\nimport {useHistory, useLocation} from \"react-router-dom\";\r\nimport {StyledButton} from '../../Component/Kit/Button';\r\nimport {HeaderContent, MainContent, PageTitleLayout, WrapperLayout} from '../../Component/Kit/Layout';\r\nimport ApiClient from '../../Requester/ApiClient';\r\nimport Urls from '../../Requester/Urls';\r\nimport TicketDepartment from '../../Utility/Services/TicketDepartmentService';\r\nimport {DeleteTemplateModal} from './DeleteTemplateModal';\r\nimport {ConvertQueryString} from \"../../Utility/Services/convert-query-string\";\r\nimport {connect} from \"react-redux\";\r\nimport {RoleCanActivate} from \"../../Utility/Services/roleCanActivate\";\r\n\r\nconst TicketAnswerTemplates = ({adminProfile}) => {\r\n const location = useLocation()\r\n const [templateData, setTemplateData] = useState({});\r\n const [templateItems, setTemplateItems] = useState([]);\r\n\r\n // const [tableFilter, setTableFilter] = useState({});\r\n const history = useHistory();\r\n\r\n const [visible, setVisible] = useState(false);\r\n const [templateId, setTemplateId] = useState(null);\r\n const [changedata, setChangedata] = useState(true);\r\n\r\n const handleClick = () => {\r\n history.push(\"/ticket/template/add\");\r\n };\r\n\r\n\r\n const deleteTemplateHandle = (target) => {\r\n setTemplateId(target.id);\r\n setVisible(true);\r\n }\r\n\r\n const deleteTemplateModalHanlder = (modalState) => {\r\n setVisible(modalState);\r\n }\r\n\r\n const templateTableConfig = {\r\n header: {\r\n title: \"عنوان\",\r\n department: \"دپارتمان\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n },\r\n delete: {\r\n icon: \"fa fa-trash\",\r\n condition: () => RoleCanActivate(['supporter'], adminProfile.roleId),\r\n }\r\n },\r\n mode: [\"filter\", \"search\"],\r\n filters: [\"department\"],\r\n };\r\n\r\n function tableActions(items) {\r\n switch (items.actionName) {\r\n case \"view\":\r\n history.push(`/ticket/template/id=${items.data.id}`);\r\n break;\r\n case \"delete\":\r\n deleteTemplateHandle(items.data)\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n ApiClient.Get(Urls.TicketAnswerTemplates(), ConvertQueryString(location.search))\r\n .then((res) => {\r\n let resData = res.result\r\n resData.items.map((item) => {\r\n item.department = TicketDepartment(item.department);\r\n return item;\r\n })\r\n\r\n setTemplateData(resData);\r\n setTemplateItems(resData.items);\r\n\r\n setChangedata(false)\r\n })\r\n\r\n }, [location.search, changedata])\r\n\r\n\r\n return (\r\n \r\n
\r\n {adminProfile && adminProfile.roleId ?\r\n RoleCanActivate(['supporter'], adminProfile.roleId) ? (\r\n \r\n handleClick()}>\r\n ایجاد قالب جدید\r\n \r\n \r\n ) : null\r\n : null}\r\n\r\n\r\n \r\n
\r\n \r\n
لیست قالب تیکت
\r\n در این بخش لیست همه قالب‌های تیکت قابل مشاهده است.\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n deleteTemplateModalHanlder(false)}\r\n onCancel={() => deleteTemplateModalHanlder(false)}\r\n />\r\n\r\n
\r\n\r\n )\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const {bootstrapper} = state\r\n return {adminProfile: bootstrapper.data}\r\n}\r\n\r\nexport default connect(mapStateToProps)(TicketAnswerTemplates);\r\n","\r\nimport * as Yup from \"yup\";\r\nimport {department , subject , longDescription} from \"../Rules\";\r\n\r\nexport const templateSchema = Yup.object().shape({\r\n subject,\r\n department,\r\n longDescription\r\n})\r\n","import { subject, department, priority, longDescription, ticketFile } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const AddTicketSchema = Yup.object().shape({\r\n subject,\r\n department,\r\n priority,\r\n longDescription,\r\n ticketFile\r\n});\r\n","import {Formik, useFormik} from 'formik';\r\nimport React, {useState} from 'react'\r\nimport {useHistory} from 'react-router-dom';\r\nimport {toast} from 'react-toastify';\r\nimport BackToPage from '../../../Component/Kit/back';\r\nimport {StyledButton} from '../../../Component/Kit/Button';\r\nimport {FormLable, StyledForm, StyledInput, StyledSelect, StyledTextArea} from '../../../Component/Kit/Form';\r\nimport {HeaderContent, MainContent, PageTitleLayout, WrapperLayout} from '../../../Component/Kit/Layout';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport TicketDepartmentList from '../../../Utility/Model/TicketDepartmentModel';\r\nimport {templateSchema} from '../../../Utility/Validation/Schema/TemplateSchema';\r\nimport {AddTicketSchema} from \"../../../Utility/Validation/Schema/AddTicketSchema\";\r\nimport {UploadFileWrqapperAllKindOfFile} from \"../../../Component/Kit/UploadZone\";\r\n\r\n\r\nexport const AddTemplate = () => {\r\n const history = useHistory();\r\n const [inputRef, setInputRef] = useState(null);\r\n\r\n const formik = useFormik({\r\n initialValues: {\r\n subject: \"\",\r\n department: \"\",\r\n longDescription: \"\",\r\n templateFile: null,\r\n },\r\n validationSchema: templateSchema,\r\n enableReinitialize: false,\r\n\r\n onSubmit: (values, actions) => {\r\n\r\n const formData = new FormData();\r\n formData.append('Title', values.subject);\r\n formData.append('Department', values.department);\r\n formData.append('Content', values.longDescription);\r\n\r\n if (values.templateFile) formData.append('File', values.templateFile);\r\n\r\n deleteFile(inputRef);\r\n ApiClient.Post(Urls.TicketAnswerTemplates(), formData)\r\n .then(saveRes => {\r\n\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n actions.setSubmitting(false);\r\n actions.resetForm();\r\n history.push(\"/ticket/template\");\r\n })\r\n .catch(err => {\r\n actions.setSubmitting(false);\r\n actions.resetForm();\r\n })\r\n }\r\n });\r\n\r\n const changeFile = (e, isSelfUploaded = false, inputElement = null) => {\r\n formik.setFieldValue('templateFile', e)\r\n\r\n if(inputElement) setInputRef(inputElement);\r\n }\r\n function deleteFile(inputRef) {\r\n if(inputRef) inputRef.current.value = \"\";\r\n formik.setFieldValue('templateFile', null)\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n
ایجاد قالب تیکت
\r\n

شما می‌توانید قالب تیکت دلخواه خود را ایجاد کنید.

\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n formik.setFieldValue(\"subject\", e.target.value)}\r\n />\r\n\r\n formik.setFieldValue(\"department\", e.target.value)}\r\n />\r\n
\r\n\r\n
\r\n {\r\n const str = e.target.value.trim() !== '' ? e.target.value : '';\r\n formik.setFieldValue(\"longDescription\", str)\r\n }}\r\n />\r\n\r\n \r\n افزودن قالب\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n فایل\r\n\r\n \r\n\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import {useFormik} from 'formik';\r\nimport React, {useEffect, useState} from 'react'\r\nimport {useHistory} from 'react-router-dom';\r\nimport {toast} from 'react-toastify';\r\nimport BackToPage from '../../../Component/Kit/back';\r\nimport {StyledButton} from '../../../Component/Kit/Button';\r\nimport {FormLable, StyledForm, StyledInput, StyledSelect, StyledTextArea} from '../../../Component/Kit/Form';\r\nimport {HeaderContent, MainContent, PageTitleLayout, WrapperLayout} from '../../../Component/Kit/Layout';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport TicketDepartmentList from '../../../Utility/Model/TicketDepartmentModel';\r\nimport {templateSchema} from '../../../Utility/Validation/Schema/TemplateSchema';\r\nimport {UploadFileWrqapperAllKindOfFile} from \"../../../Component/Kit/UploadZone\";\r\n\r\nexport const EditTicketAnswerTemplate = (props) => {\r\n const templateId = props.match.params.id;\r\n const [templateDetail, setTemplateDetail] = useState({});\r\n const [inputRef, setInputRef] = useState(null);\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n ApiClient.Get(Urls.ModifyTicketAnswerTemplateById(templateId))\r\n .then(res => {\r\n setTemplateDetail(res.result)\r\n })\r\n }, [templateId])\r\n\r\n const formik = useFormik({\r\n initialValues: {\r\n subject: templateDetail.title,\r\n department: templateDetail.department,\r\n longDescription: templateDetail.content,\r\n templateFile: null,\r\n attachedFile: {\r\n url: templateDetail.attachedFileUrl,\r\n id: templateDetail.attachedFileId\r\n },\r\n\r\n },\r\n validationSchema: templateSchema,\r\n enableReinitialize: true,\r\n\r\n onSubmit: (values, actions) => {\r\n\r\n const formData = new FormData();\r\n\r\n formData.append('Title', values.subject ? values.subject : templateDetail.title);\r\n formData.append('Department', values.department ? Number(values.department) : templateDetail.department);\r\n formData.append('Content', values.longDescription ? values.longDescription : templateDetail.content);\r\n\r\n if (values.templateFile) formData.append('File', values.templateFile);\r\n\r\n if (values.attachedFile.id) formData.append('FileId', values.attachedFile.id);\r\n\r\n deleteFile(inputRef);\r\n\r\n ApiClient.Put(Urls.ModifyTicketAnswerTemplateById(templateId), formData)\r\n .then(() => {\r\n\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n actions.setSubmitting(false);\r\n actions.resetForm();\r\n history.push(\"/ticket/template\");\r\n })\r\n .catch(() => {\r\n actions.setSubmitting(false);\r\n actions.resetForm();\r\n })\r\n }\r\n });\r\n\r\n const changeFile = (e, isSelfUploaded = false, inputElement = null) => {\r\n formik.setFieldValue('templateFile', e)\r\n if (isSelfUploaded) {\r\n formik.setFieldValue('attachedFile', {\r\n url: null,\r\n id: null\r\n })\r\n }\r\n if (inputElement) setInputRef(inputElement);\r\n }\r\n\r\n function deleteFile(inputRef) {\r\n if (inputRef) inputRef.current.value = \"\";\r\n formik.setFieldValue('templateFile', null)\r\n formik.setFieldValue('attachedFile', {\r\n url: null,\r\n id: null\r\n })\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n
ویرایش کردن قالب
\r\n

شما می‌توانید قالب تیکت خود را ویرایش کنید.

\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n formik.setFieldValue(\"subject\", e.target.value)}\r\n />\r\n\r\n formik.setFieldValue(\"department\", e.target.value)}\r\n />\r\n
\r\n\r\n
\r\n {\r\n const str = e.target.value.trim() !== '' ? e.target.value : '';\r\n formik.setFieldValue(\"longDescription\", str)\r\n\r\n }}\r\n />\r\n\r\n \r\n ذخیره قالب\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n فایل\r\n\r\n \r\n\r\n
\r\n\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import TicketStatusList from \"../Model/TicketStatusModel\";\r\n\r\nfunction TicketStatus(value) {\r\n let result = TicketStatusList.find((item) => item.value ===value);\r\n return result.name\r\n }\r\n export default TicketStatus;\r\n\r\n\r\n export function GetTicketStatusKey(name) {\r\n let result = TicketStatusList.find((item) => item.name === name);\r\n return result.value\r\n }","import TicketPriorityList from \"../Model/TicketPriorityModel\";\r\n\r\nfunction TicketPriority(value) {\r\n let result = TicketPriorityList.find((item) => item.value === value);\r\n return result.name\r\n}\r\n\r\nexport default TicketPriority;\r\n\r\nexport function GetTicketPriorityKey(name) {\r\n let result = TicketPriorityList.find((item) => item.name === name);\r\n return result.value\r\n}\r\n","import React, { useEffect } from 'react';\r\nimport { useState } from 'react';\r\nimport ApiClient from '../../Requester/ApiClient';\r\nimport Urls from '../../Requester/Urls';\r\nimport Table from '../../Component/Shared/Table/Table';\r\nimport {\r\n MainContent,\r\n PageTitleLayout,\r\n WrapperLayout,\r\n} from '../../Component/Kit/Layout';\r\nimport DateConvert from '../../Utility/Services/date-convert';\r\nimport TicketStatus from '../../Utility/Services/TicketStatusService';\r\nimport TicketDepartment from '../../Utility/Services/TicketDepartmentService';\r\nimport { Loader } from '../../Component/Shared/Loader';\r\nimport TicketPriority from '../../Utility/Services/TicketPriorityService';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { ConvertQueryString } from '../../Utility/Services/convert-query-string';\r\n\r\nexport const TicketList = ({ history }) => {\r\n const location = useLocation();\r\n const [ticketList, setTicketList] = useState({});\r\n const [ticketItems, setTicketItems] = useState([]);\r\n const [loading, setLoading] = useState(true);\r\n\r\n // let filterID;\r\n // let myFilter = {};\r\n\r\n // if (history.location.search) {\r\n // if (history.location.search.includes('Status')) {\r\n // myFilter = {Status: history.location.search.replace('?Status=', '')}\r\n // } else {\r\n // myFilter = {Department: history.location.search.replace('?Department=', '')}\r\n // }\r\n // }\r\n\r\n const tableConfig = {\r\n header: {\r\n userName: 'نام کاربری',\r\n title: 'عنوان',\r\n status: 'وضعیت',\r\n department: 'دپارتمان',\r\n priority: 'اولویت',\r\n admin: 'نام ادمین',\r\n assignedAdmin: 'مسئول پیگیری',\r\n lastModifiedAt: 'آخرین بروزرسانی',\r\n },\r\n actions: {\r\n comment: {\r\n icon: 'fa fa-comment',\r\n },\r\n view: {\r\n icon: 'fa fa-eye',\r\n },\r\n },\r\n mode: ['filter', 'search'],\r\n filters: ['status', 'department', 'priority', 'adminId','assignedAdminId'],\r\n };\r\n\r\n function tableActions(items) {\r\n switch (items.actionName) {\r\n case 'view':\r\n history.push(`list/${items.data.id}`);\r\n break;\r\n case 'comment':\r\n history.push(`comments/${items.data.id}`);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n ApiClient.Get(Urls.GetTicketsList(), ConvertQueryString(location.search))\r\n .then((res) => {\r\n let dataItem = res.result;\r\n setTicketList(dataItem);\r\n dataItem.items.map((m, i) => {\r\n m.lastModifiedAt = DateConvert(m.lastModifiedAt);\r\n m.statusValue = m.status;\r\n m.status = TicketStatus(m.status);\r\n m.department = TicketDepartment(m.department);\r\n m.priority = TicketPriority(m.priority);\r\n return m;\r\n });\r\n setTicketItems(dataItem.items);\r\n setLoading(false);\r\n });\r\n }, [location.search]);\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 {loading === true ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default TicketList;\r\n","import * as hljs from 'highlight.js';\r\n\r\n\r\nconst CODE_BLOCK_REGEX = /(```[\\s\\S]*?```)/g;\r\nconst LINK_REGEX = /(https?:\\/\\/[^\\s]+)/g;\r\n\r\n\r\n/**\r\n * Parse ticket content into segments.\r\n * @param {string} content - The content to parse.\r\n * @returns {Array} An array of parsed segments.\r\n */\r\nexport function parseTicketContent(content) {\r\n const segments = splitContentIntoSegments(content);\r\n return segments\r\n .map(parseSegment)\r\n .filter(isNonEmptySegment);\r\n}\r\n\r\n/**\r\n * Split content into segments based on code blocks and links.\r\n * @param {string} content - The content to split.\r\n * @returns {Array} An array of content segments.\r\n */\r\nfunction splitContentIntoSegments(content) {\r\n return content.split(CODE_BLOCK_REGEX).flatMap(segment => {\r\n return CODE_BLOCK_REGEX.test(segment) ? segment : segment.split(LINK_REGEX);\r\n });\r\n}\r\n\r\n\r\n/**\r\n * Parse a content segment and categorize it.\r\n * @param {string} segment - The segment to parse.\r\n * @returns {Object} An object representing the parsed segment.\r\n */\r\nfunction parseSegment(segment) {\r\n if (isCodeBlock(segment)) {\r\n return { type: \"code\", value: highlightCode(segment) };\r\n } else if (isLink(segment)) {\r\n return { type: \"link\", value: convertToLink(segment) };\r\n } else {\r\n return { type: \"text\", value: segment };\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Check if a segment is a code block.\r\n * @param {string} segment - The segment to check.\r\n * @returns {boolean} True if the segment is a code block, otherwise false.\r\n */\r\nfunction isCodeBlock(segment) {\r\n return segment.startsWith(\"```\") && segment.endsWith(\"```\");\r\n}\r\n\r\n/**\r\n * Check if a segment is a link.\r\n * @param {string} segment - The segment to check.\r\n * @returns {boolean} True if the segment is a link, otherwise false.\r\n */\r\nfunction isLink(segment) {\r\n return LINK_REGEX.test(segment);\r\n}\r\n\r\n/**\r\n * Highlight code within a code block.\r\n * @param {string} segment - The code block segment.\r\n * @returns {string} The highlighted code.\r\n */\r\nfunction highlightCode(segment) {\r\n const hljsFunc = (code) => {\r\n return hljs.default.highlightAuto(code).value};\r\n\r\n return segment.match(CODE_BLOCK_REGEX)\r\n .map(i => i.replace(/```/g, \"\"))\r\n .map(code => `\r\n
\r\n                ${hljsFunc(code.trim())}\r\n            
\r\n `).join()\r\n}\r\n\r\n/**\r\n * Convert a link segment into a clickable link.\r\n * @param {string} segment - The link segment.\r\n * @returns {string} The formatted link.\r\n */\r\nfunction convertToLink(segment) {\r\n return segment.replace(LINK_REGEX, (url) => `${url}`);\r\n}\r\n\r\n/**\r\n * Check if a segment is non-empty.\r\n * @param {Object} segment - The segment to check.\r\n * @returns {boolean} True if the segment is non-empty, otherwise false.\r\n */\r\nfunction isNonEmptySegment(segment) {\r\n return !/^\\s*$/.test(segment.value);\r\n}\r\n\r\n","import React, {useEffect, useState} from 'react';\r\nimport {useHistory, useParams} from 'react-router-dom';\r\nimport {Badge} from \"react-bootstrap\";\r\n\r\n\r\nimport DateConvert from '../../../../Utility/Services/date-convert';\r\nimport TicketDepartment from '../../../../Utility/Services/TicketDepartmentService';\r\nimport TicketPriority from '../../../../Utility/Services/TicketPriorityService';\r\nimport TicketStatus from '../../../../Utility/Services/TicketStatusService';\r\nimport {StyledButton} from '../../../../Component/Kit/Button';\r\nimport {parseTicketContent} from \"../../../../Utility/method/ParseTicketContent\";\r\n\r\n\r\nexport const TickeInfo = (props) => {\r\n const {ticketDetailData, filesModal, fileLength} = props;\r\n const ticketParams = useParams();\r\n const [tItems, setTItems] = useState({});\r\n const history = useHistory();\r\n\r\n const ticketInfoItems = {\r\n title: 'عنوان تیکت',\r\n status: 'وضعیت',\r\n department: 'دپارتمان',\r\n priority: 'درجه اهمیت',\r\n createdAt: 'ایجاد شده',\r\n lastModifiedAt: 'آخرین به روز رسانی',\r\n admin: 'نام مدیر',\r\n assignedAdmin: 'مسئول پیگیری',\r\n };\r\n\r\n const convertContentTicket = (text) => {\r\n if(typeof text !== \"string\") return text;\r\n return parseTicketContent(text);\r\n }\r\n\r\n useEffect(() => {\r\n Object.entries(ticketDetailData).map(([item, value]) => {\r\n switch (item) {\r\n case 'adminId':\r\n return (ticketDetailData.admin =\r\n ticketDetailData.adminId === null\r\n ? 'همه مدیران'\r\n : ticketDetailData.admin);\r\n case 'status':\r\n return (ticketDetailData.status = TicketStatus(value));\r\n case 'department':\r\n return (ticketDetailData.department = TicketDepartment(value));\r\n\r\n case 'priority':\r\n return typeof ticketDetailData.priority === 'string'\r\n ? ticketDetailData.priority\r\n : (ticketDetailData.priority = TicketPriority(value));\r\n case 'createdAt':\r\n return typeof ticketDetailData.createdAt === 'string'\r\n ? ticketDetailData.createdAt\r\n : (ticketDetailData.createdAt = DateConvert(value));\r\n\r\n case 'lastModifiedAt':\r\n return typeof ticketDetailData.lastModifiedAt === 'string'\r\n ? ticketDetailData.lastModifiedAt\r\n : ticketDetailData.lastModifiedAt\r\n ? (ticketDetailData.lastModifiedAt = DateConvert(value))\r\n : (ticketDetailData.lastModifiedAt = '- - -');\r\n\r\n case 'assignedAdmin':\r\n return typeof ticketDetailData.assignedAdmin === 'string'\r\n ? ticketDetailData.assignedAdmin\r\n : ticketDetailData.assignedAdmin\r\n ? ticketDetailData.assignedAdmin\r\n : (ticketDetailData.assignedAdmin = '- - -');\r\n case 'contents':\r\n let updatedContents = ticketDetailData.contents.map(data => {\r\n return {\r\n ...data,\r\n content: convertContentTicket(data.content)\r\n }\r\n })\r\n return ticketDetailData.contents = updatedContents\r\n default:\r\n return (ticketDetailData[item] = value);\r\n }\r\n });\r\n setTItems({...ticketDetailData});\r\n }, [ticketDetailData]);\r\n\r\n return (\r\n
\r\n
\r\n \r\n اطلاعات تیکت{' '}\r\n
\r\n
    \r\n {Object.keys(ticketInfoItems).map((keyName, i) => (\r\n
  • \r\n
    \r\n {ticketInfoItems[keyName]}\r\n
    \r\n
    \r\n \r\n {tItems[keyName]}\r\n \r\n
    \r\n
  • \r\n ))}\r\n
\r\n {fileLength > 0 ? (\r\n filesModal()}\r\n >\r\n تمام فایل‌ها\r\n \r\n ) : null}\r\n history.push(`/ticket/comments/${ticketParams.id}`)}\r\n >\r\n یادداشت‌های تیکت\r\n {\r\n\r\n ticketDetailData.notesCount > 0 ?\r\n\r\n \r\n\r\n\r\n {ticketDetailData.notesCount}\r\n\r\n\r\n \r\n\r\n : <>\r\n\r\n }\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default TickeInfo;\r\n","import React from 'react'\r\nimport {Image} from 'react-bootstrap';\r\nimport DateConvert from '../../../../Utility/Services/date-convert';\r\nimport UserLogo from \"../../../../Assets/images/user.jpg\";\r\nimport {Link} from \"react-router-dom\";\r\nimport {RoleCanActivate} from \"../../../../Utility/Services/roleCanActivate\";\r\nimport {connect} from \"react-redux\";\r\n\r\nconst CommentItem = (props) => {\r\n const {CItem, userId, deleteConfirm, adminProfile} = props;\r\n\r\n\r\n return (\r\n
\r\n\r\n
\r\n {!CItem.isAdmin\r\n ?\r\n \r\n {\r\n CItem.authorImageUrl\r\n ?\r\n \r\n :\r\n {CItem.authorName}/\r\n }\r\n \r\n :\r\n CItem.authorImageUrl\r\n ?\r\n \r\n :\r\n {CItem.authorName}/\r\n }\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n {\r\n (Array.isArray(CItem.content)) &&\r\n CItem.content.map((segment, index) => (\r\n
\r\n {\r\n\r\n (segment.type === \"code\" || segment.type === \"link\") ?\r\n

\r\n :\r\n

\r\n {segment.value}\r\n

\r\n }\r\n\r\n
\r\n ))\r\n }\r\n\r\n {\r\n CItem.attachedFileUrl &&\r\n \r\n }\r\n {\r\n
\r\n {\r\n CItem.seenAt ?\r\n <>\r\n \r\n {DateConvert(CItem.seenAt)}\r\n \r\n \r\n \r\n :\r\n <>\r\n \r\n \r\n }\r\n\r\n
\r\n }\r\n
\r\n\r\n
\r\n {!CItem.isAdmin ?\r\n \r\n {CItem.authorName}\r\n \r\n :\r\n {CItem.authorName}\r\n }\r\n \r\n {\r\n CItem.createdAt &&\r\n <>\r\n {\r\n (CItem.isAdmin && CItem.isDeletable && RoleCanActivate(['supervisor', 'manager'], adminProfile.roleId)) &&\r\n deleteConfirm(CItem.id)} className='ticket__delete mx-2'>\r\n \r\n \r\n }\r\n\r\n {DateConvert(CItem.createdAt)}\r\n \r\n }\r\n \r\n
\r\n
\r\n\r\n
\r\n )\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const {bootstrapper} = state;\r\n return {adminProfile: bootstrapper.data};\r\n}\r\nexport default connect(mapStateToProps)(CommentItem);\r\n","import React, {useEffect, useRef, useState} from 'react'\r\nimport CommentItem from './Comment'\r\n\r\nexport const CatList = (props) => {\r\n const {commentList, userId, deleteConfirm} = props;\r\n const scrollToBottomRef = useRef(null);\r\n const prevTargetElementRef = useRef();\r\n\r\n const [lenghtContent, setLenghtContent] = useState(0);\r\n const [targetElementDetail, setTargetElementDetail] = useState({\r\n scrollTop: null,\r\n clientHeight: null,\r\n scrollHeight: null,\r\n\r\n });\r\n\r\n\r\n useEffect(() => {\r\n if (commentList) {\r\n if (lenghtContent === 0) {\r\n setTimeout(() => {\r\n scrollToTop({top: scrollToBottomRef.current.scrollHeight})\r\n }, 100)\r\n }\r\n setLenghtContent(Object.values(commentList)?.length);\r\n }\r\n }, [commentList, lenghtContent]);\r\n\r\n\r\n useEffect(() => {\r\n if (prevTargetElementRef.current) {\r\n const {clientHeight, scrollHeight} = prevTargetElementRef.current;\r\n if (scrollHeight) {\r\n const isNearBottom = Math.abs(\r\n targetElementDetail.scrollTop + clientHeight - scrollHeight)\r\n < clientHeight;\r\n\r\n if (isNearBottom) {\r\n setTimeout(() => {\r\n scrollToTop({top: scrollToBottomRef.current.scrollHeight, behavior: 'smooth'})\r\n }, 50)\r\n }\r\n }\r\n }\r\n },\r\n [targetElementDetail, targetElementDetail.scrollHeight]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n const scrollTop = scrollToBottomRef.current.scrollTop;\r\n const clientHeight = scrollToBottomRef.current.clientHeight;\r\n const scrollHeight = scrollToBottomRef.current.scrollHeight;\r\n\r\n setTargetElementDetail({\r\n clientHeight: clientHeight,\r\n scrollHeight: scrollHeight,\r\n scrollTop: scrollTop,\r\n });\r\n\r\n\r\n\r\n },\r\n [lenghtContent]);\r\n\r\n useEffect(() => {\r\n prevTargetElementRef.current = {\r\n clientHeight: targetElementDetail.clientHeight,\r\n scrollHeight: targetElementDetail.scrollHeight,\r\n scrollTop: targetElementDetail.scrollTop,\r\n };\r\n },\r\n [targetElementDetail]);\r\n\r\n const scrollToTop = (data) => {\r\n scrollToBottomRef.current.scrollTo(data);\r\n }\r\n\r\n return (\r\n
\r\n {\r\n commentList &&\r\n Object.values(commentList).map((CItem, index) => (\r\n \r\n ))\r\n }\r\n\r\n
\r\n )\r\n}\r\n","import { ticketContent , ticketFile} from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const ReplyTicketSchema = Yup.object().shape({\r\n ticketContent,\r\n ticketFile\r\n});","let TicketReportTypeList = [\r\n { name: \"گزارش دریافت ها\", value: 1 },\r\n { name: \"گزارش ارسال ها\", value: 2 },\r\n ];\r\n \r\n export default TicketReportTypeList ;\r\n","import {useFormik} from 'formik';\r\nimport React, {useEffect, useState} from 'react'\r\nimport {Tab, Tabs} from 'react-bootstrap';\r\nimport {toast} from 'react-toastify';\r\n\r\n\r\nimport {StyledButton} from '../../../../Component/Kit/Button';\r\nimport {FormLable, StyledForm, StyledSelect, StyledTextArea} from '../../../../Component/Kit/Form';\r\nimport {UploadFileWrqapperAllKindOfFile,} from '../../../../Component/Kit/UploadZone';\r\nimport ApiClient from '../../../../Requester/ApiClient';\r\nimport {ReplyTicketSchema} from \"../../../../Utility/Validation/Schema/ReplyTicketSchema\";\r\nimport Urls from '../../../../Requester/Urls';\r\nimport TicketDepartmentList from '../../../../Utility/Model/TicketDepartmentModel';\r\nimport TicketReportTypeList from '../../../../Utility/Model/TicketReportType';\r\nimport {MyDatePicker} from '../../../../Component/Shared/DatePicker';\r\nimport {Loader} from '../../../../Component/Shared/Loader';\r\n\r\n\r\nexport const ReplyToTicket = (props) => {\r\n const {userId, userTicketId, setReload, reload} = props;\r\n const [tab, setTab] = useState(\"1\");\r\n const [AnswerTemplateList, setAnswerTemplateList] = useState([]);\r\n const [lines, setLines] = useState(null);\r\n const [selectedLine, setSelectedLine] = useState(null);\r\n const [filteredAnswerTemplate, setFilteredAnswerTemplate] = useState([]);\r\n const [loadingFlag, setLoadingFlag] = useState(false);\r\n const [inputRef, setInputRef] = useState(null);\r\n const [report, setReport] = useState({\r\n fileName: null,\r\n linkDownload: null,\r\n reportType: {\r\n value: null,\r\n text: null,\r\n },\r\n isLoading: false\r\n });\r\n\r\n\r\n useEffect(() => {\r\n if (userId) {\r\n getTicketTemplate();\r\n getUserLine(userId);\r\n }\r\n }, [userId])\r\n\r\n\r\n const formik = useFormik({\r\n initialValues: {\r\n ticketContent: \"\",\r\n ticketFile: undefined,\r\n ticketType: \"\",\r\n toDate: '',\r\n fromDate: '',\r\n templateFile: {\r\n url: null,\r\n id: null\r\n }\r\n },\r\n validationSchema: ReplyTicketSchema,\r\n\r\n onSubmit: (values, actions) => {\r\n let formData = new FormData();\r\n\r\n setTimeout(() => {\r\n setLoadingFlag(true)\r\n }, 40);\r\n\r\n (values.ticketContent === \"\")\r\n ?\r\n formData.append('content', \" :فایل\")\r\n :\r\n formData.append('content', values.ticketContent)\r\n\r\n if (values.ticketFile && !report.fileName) {\r\n formData.append(\"file\", values.ticketFile, values.ticketFile.name);\r\n }\r\n\r\n if (report.fileName) {\r\n formData.append(\"UploadedFileId\", report.fileName);\r\n }\r\n\r\n if (values.templateFile.id) {\r\n formData.append(\"UploadedFileId\", values.templateFile.id);\r\n }\r\n\r\n removeFile(inputRef);\r\n\r\n ApiClient.Post(Urls.AddTicketReplyByAdmin(userTicketId), formData)\r\n .then(res => {\r\n toast.success('تیکت با موفقیت ارسال شد.');\r\n setTimeout(() => {\r\n setLoadingFlag(false)\r\n actions.setSubmitting(false);\r\n actions.resetForm();\r\n setReload(!reload)\r\n }, 50);\r\n })\r\n .catch(e => {\r\n setLoadingFlag(false)\r\n actions.setSubmitting(false);\r\n\r\n })\r\n }\r\n });\r\n\r\n\r\n const selectDepartmentHandler = (e) => {\r\n const target = e.target.value;\r\n let myArray = AnswerTemplateList.filter((el) => {\r\n if (el.department === Number(target)) {\r\n return el\r\n }\r\n return false;\r\n })\r\n setFilteredAnswerTemplate(myArray)\r\n }\r\n\r\n\r\n const selectReportType = (e) => {\r\n const value = e.target.value;\r\n setReport({\r\n ...report,\r\n reportType: {\r\n value: value,\r\n text: TicketReportTypeList.find(e => e.value === value)?.name\r\n }\r\n })\r\n\r\n }\r\n\r\n\r\n const selectLine = (e) => {\r\n const value = e.target.value;\r\n setSelectedLine(value)\r\n }\r\n\r\n\r\n const getTicketTemplate = () => {\r\n const params = {\r\n pageNumber: 1,\r\n pageSize: 1000\r\n }\r\n ApiClient.Get(Urls.TicketAnswerTemplates(), params)\r\n .then(response => {\r\n const dataItem = response.result.items;\r\n\r\n Object.values(dataItem).map((item) => {\r\n setAnswerTemplateList(oldArray => [...oldArray, {\r\n name: item.title,\r\n value: item.id,\r\n department: item.department,\r\n content: item.content,\r\n attachedFileId: item.attachedFileId,\r\n attachedFileUrl: item.attachedFileUrl\r\n }])\r\n return item;\r\n })\r\n })\r\n }\r\n\r\n\r\n const getUserLine = (userId) => {\r\n ApiClient.Get(Urls.userLines(userId))\r\n .then(response => {\r\n const lines = response.result.lines.map((item) => {\r\n return {\r\n value: item.number,\r\n name: item.number\r\n }\r\n })\r\n setLines(lines)\r\n\r\n }).catch(() => {\r\n setLines([])\r\n })\r\n }\r\n\r\n\r\n const changeFile = (e, isSelfUploaded = false, inputElement = null) => {\r\n formik.setFieldValue('ticketFile', e)\r\n if (isSelfUploaded) {\r\n removeReportFile();\r\n formik.setFieldValue(\"templateFile\", {\r\n url: null,\r\n id: null\r\n });\r\n }\r\n if (inputElement) setInputRef(inputElement);\r\n }\r\n\r\n\r\n const removeFile = (inputRef) => {\r\n if (inputRef) inputRef.current.value = \"\";\r\n formik.setFieldValue(\"ticketFile\", null);\r\n formik.setFieldValue(\"templateFile\", {\r\n url: null,\r\n id: null\r\n });\r\n\r\n removeReportFile();\r\n }\r\n\r\n\r\n const removeReportFile = () => {\r\n setReport({\r\n ...report,\r\n reportType: {text: null, value: 'default'},\r\n fileName: null,\r\n linkDownload: null,\r\n isLoading: false,\r\n })\r\n }\r\n\r\n\r\n const selectTemplate = (e, data) => {\r\n e.persist()\r\n formik.setFieldValue(\"ticketContent\", data.content)\r\n formik.setFieldValue(\"ticketFile\", null);\r\n removeReportFile();\r\n if (inputRef) inputRef.current.value = \"\";\r\n if (data.attachedFileUrl) {\r\n formik.setFieldValue(\"templateFile\", {\r\n url: data.attachedFileUrl,\r\n id: data.attachedFileId\r\n })\r\n setTab(\"2\");\r\n }\r\n\r\n }\r\n\r\n\r\n const responseReport = (response) => {\r\n let data = response.result;\r\n if (data) {\r\n toast.success('گزارش در تب آپلود قرار گرفت');\r\n handleSelectTab(\"2\");\r\n setReport({\r\n ...report,\r\n fileName: data.id,\r\n isLoading: false,\r\n linkDownload: data.url,\r\n reportType: {text: null, value: 'default'},\r\n })\r\n\r\n changeFile(null)\r\n\r\n } else {\r\n toast.warning('گزارشی یافت نشد');\r\n\r\n setReport({\r\n ...report,\r\n reportType: {text: null, value: 'default'},\r\n isLoading: false,\r\n })\r\n }\r\n }\r\n\r\n\r\n const getReportFile = (type) => {\r\n if (report.reportType.value === 'default') {\r\n toast.error('لطفا نوع گزارش را انتخاب کنید');\r\n return;\r\n }\r\n\r\n const params = {}\r\n\r\n if (formik.values.fromDate) {\r\n params[\"fromDate\"] = formik.values.fromDate;\r\n }\r\n if (formik.values.toDate) {\r\n params[\"toDate\"] = formik.values.toDate;\r\n }\r\n if (selectedLine) {\r\n params[\"lineNumber\"] = selectedLine;\r\n }\r\n setSelectedLine(null);\r\n\r\n setReport(prevState => ({\r\n ...prevState,\r\n isLoading: true,\r\n }))\r\n\r\n // eslint-disable-next-line default-case\r\n switch (type) {\r\n case \"1\":\r\n ApiClient.Get(Urls.getUserReceiveReport(userId), params)\r\n .then(response => {\r\n\r\n responseReport(response);\r\n\r\n }).catch(e => {\r\n setReport({\r\n ...report,\r\n reportType: {text: null, value: 'default'},\r\n isLoading: false,\r\n })\r\n })\r\n break;\r\n\r\n\r\n case \"2\":\r\n ApiClient.Get(Urls.getUserSendReport(userId), params)\r\n .then(response => {\r\n responseReport(response);\r\n\r\n }).catch(e => {\r\n setReport({\r\n ...report,\r\n reportType: {text: null, value: 'default'},\r\n isLoading: false,\r\n })\r\n })\r\n\r\n break;\r\n }\r\n\r\n }\r\n\r\n\r\n const handleSelectTab = (key) => {\r\n setTab(key);\r\n }\r\n\r\n\r\n return (\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n {\r\n formik.setFieldValue(\"ticketContent\", e.target.value)\r\n }}\r\n />\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n
\r\n selectDepartmentHandler(e)}\r\n />\r\n
\r\n {\r\n filteredAnswerTemplate &&\r\n filteredAnswerTemplate.map((resultItem, index) => (\r\n (Object.entries(resultItem).length) > 0\r\n ?\r\n {\r\n selectTemplate(e, resultItem)\r\n\r\n\r\n }}>\r\n {resultItem.name}\r\n \r\n :\r\n

قالب تیکت‌ای موجود نیست

\r\n ))\r\n }\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n {!report.isLoading && lines !== null ?\r\n <>\r\n
\r\n selectReportType(e)}\r\n />\r\n
\r\n\r\n
\r\n selectLine(e)}\r\n />\r\n
\r\n\r\n
\r\n
\r\n \r\n تاریخ شروع\r\n \r\n {\r\n formik.setFieldValue(\"fromDate\", event.baseFormat)\r\n }}\r\n name=\"fromDate\"\r\n id=\"fromDate\"\r\n error={\r\n formik.errors.fromDate !== undefined\r\n ? formik.errors.fromDate\r\n : false\r\n }\r\n />\r\n
\r\n
\r\n \r\n تاریخ پایان\r\n \r\n {\r\n formik.setFieldValue(\"toDate\", event.baseFormat)\r\n }}\r\n name=\"toDate\"\r\n id=\"toDate\"\r\n error={\r\n formik.errors.toDate !== undefined\r\n ? formik.errors.toDate\r\n : false\r\n }\r\n />\r\n
\r\n
\r\n\r\n
\r\n\r\n getReportFile(report.reportType.value)}\r\n >\r\n دریافت\r\n \r\n\r\n
\r\n : \r\n }\r\n\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n ارسال تیکت\r\n \r\n \r\n\r\n
\r\n )\r\n}\r\n","import { changeDepartment ,status, uploadable } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const ModifyConfigTicketSchema = Yup.object().shape({\r\n changeDepartment,\r\n status,\r\n uploadable\r\n});\r\n","import { Formik } from 'formik';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { StyledButton } from '../../../../Component/Kit/Button';\r\nimport {\r\n AutocompleteList,\r\n FormLable,\r\n StyledCheckBox,\r\n StyledForm,\r\n StyledSelect,\r\n} from '../../../../Component/Kit/Form';\r\nimport Modal from '../../../../Component/Kit/Modal';\r\nimport TicketDepartmentList from '../../../../Utility/Model/TicketDepartmentModel';\r\nimport TicketStatus from '../../../../Utility/Services/TicketStatusService';\r\nimport { ModifyConfigTicketSchema } from '../../../../Utility/Validation/Schema/ModifyConfigTicketSchema';\r\nimport ApiClient from '../../../../Requester/ApiClient';\r\nimport Urls from '../../../../Requester/Urls';\r\nimport { toast } from 'react-toastify';\r\nimport { useHistory } from 'react-router-dom';\r\nimport TicketPriorityList from '../../../../Utility/Model/TicketPriorityModel';\r\nimport { FormLabel } from 'react-bootstrap';\r\n\r\nexport const ModifyTicketSettingModal = (props) => {\r\n const {\r\n ticketReply,\r\n setTicketReply,\r\n ticketID,\r\n setVisible,\r\n configSetting,\r\n setConfigSetting,\r\n } = props;\r\n const history = useHistory();\r\n const [adminName, setAdminName] = useState('');\r\n const [adminList, setAdminList] = useState();\r\n const [customAdminList, setCustomAdminList] = useState();\r\n const [customAdminAssignList, setCustomAdminAssignList] = useState([]);\r\n let TicketStatusModidyList = [\r\n { name: 'در حال بررسی', value: 4 },\r\n { name: 'بسته', value: 5 },\r\n ];\r\n\r\n if (\r\n configSetting.status &&\r\n configSetting.status !== 4 &&\r\n configSetting.status !== 5\r\n ) {\r\n let currentStatus = TicketStatus(configSetting.status);\r\n TicketStatusModidyList = [\r\n { name: currentStatus, value: configSetting.status },\r\n { name: 'در حال بررسی', value: 4 },\r\n { name: 'بسته', value: 5 },\r\n ];\r\n }\r\n\r\n const addUpdate = (items) => {\r\n setTicketReply({\r\n ...ticketReply,\r\n department: items.department,\r\n status: items.status,\r\n priority: items.priority,\r\n isUploadable: items.isUploadable,\r\n adminId: items.adminId,\r\n admin: items.admin,\r\n assignedAdmin: items.assignedAdmin\r\n });\r\n };\r\n\r\n const changeInput = (e) => {\r\n const list = adminList.filter((f) => f.fullName.includes(e));\r\n setCustomAdminAssignList([\r\n {\r\n adminId: null,\r\n fullName: 'ندارد',\r\n },\r\n ...list,\r\n ]);\r\n setCustomAdminList([\r\n {\r\n adminId: null,\r\n fullName: 'همه مدیران',\r\n },\r\n ...list,\r\n ]);\r\n };\r\n const changeSelect = (e) => {\r\n setAdminName(e.fullName);\r\n setCustomAdminAssignList([\r\n {\r\n adminId: null,\r\n fullName: 'ندارد',\r\n },\r\n ...adminList,\r\n ]);\r\n setCustomAdminList([\r\n {\r\n adminId: null,\r\n fullName: 'همه مدیران',\r\n },\r\n ...adminList,\r\n ]);\r\n };\r\n useEffect(() => {\r\n ApiClient.Get(Urls.AdminSummary()).then((res) => {\r\n setAdminList(res.result);\r\n setCustomAdminAssignList([\r\n {\r\n adminId: null,\r\n fullName: 'ندارد',\r\n },\r\n ...res.result,\r\n ]);\r\n setCustomAdminList([\r\n {\r\n adminId: null,\r\n fullName: 'همه مدیران',\r\n },\r\n ...res.result,\r\n ]);\r\n });\r\n }, []);\r\n\r\n return (\r\n <>\r\n {\r\n let body = {\r\n department: values.changeDepartment\r\n ? Number(values.changeDepartment)\r\n : configSetting.department,\r\n status: values.status\r\n ? Number(values.status)\r\n : configSetting.status,\r\n priority: values.priority\r\n ? Number(values.priority)\r\n : configSetting.priority,\r\n isUploadable:\r\n values.uploadable !== undefined\r\n ? values.uploadable\r\n : configSetting.isUploadable,\r\n adminId:\r\n values.adminId !== undefined\r\n ? values.adminId\r\n : configSetting.adminId,\r\n assignedAdminId:\r\n values.assignedAdminId !== undefined\r\n ? values.assignedAdminId\r\n : configSetting.assignedAdminId,\r\n };\r\n ApiClient.Put(Urls.GetTicketByAdmin(ticketID), body).then((res) => {\r\n toast.success('تغییرات تیکت با موفقیت ثبت شد.');\r\n setConfigSetting({ ...body, admin: customAdminAssignList?.find((a => a.adminId === values.adminId))?.fullName , assignedAdmin: customAdminAssignList?.find((a => a.adminId === values.assignedAdminId))?.fullName });\r\n actions.setSubmitting(false);\r\n actions.resetForm();\r\n addUpdate({ ...body, admin: customAdminAssignList?.find((a => a.adminId === values.adminId))?.fullName , assignedAdmin: customAdminAssignList?.find((a => a.adminId === values.assignedAdminId))?.fullName});\r\n setVisible(false);\r\n if (body.status === 5) history.push('/ticket/list');\r\n });\r\n }}\r\n onReset={(values, formikBag) => {\r\n setVisible(false);\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n \r\n formik.setFieldValue('changeDepartment', e.target.value)\r\n }\r\n />\r\n formik.setFieldValue('status', e.target.value)}\r\n />\r\n \r\n formik.setFieldValue('priority', e.target.value)\r\n }\r\n />\r\n\r\n
\r\n انتخاب مدیر\r\n {\r\n changeInput(e);\r\n }}\r\n selectItem={(e) => {\r\n formik.setFieldValue('adminId', e.adminId);\r\n changeSelect(e);\r\n }}\r\n >\r\n
\r\n\r\n
\r\n مسئول پیگیری \r\n {\r\n changeInput(e);\r\n }}\r\n selectItem={(e) => {\r\n formik.setFieldValue('assignedAdminId', e.adminId);\r\n changeSelect(e);\r\n }}\r\n >\r\n
\r\n\r\n \r\n formik.setFieldValue('uploadable', e.target.checked)\r\n }\r\n />\r\n
\r\n \r\n ثبت تنظیمات\r\n \r\n {\r\n setVisible(false);\r\n }}\r\n >\r\n بستن\r\n \r\n
\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n","import styled from 'styled-components';\r\n\r\nexport const LinkList = styled.ul`\r\n width: 100%;\r\n direction: ltr;\r\n\r\n li {\r\n margin-bottom: 1rem;\r\n a {\r\n display: flex;\r\n align-items: center;\r\n i {\r\n margin-right: 0.5rem;\r\n }\r\n }\r\n }\r\n`;\r\n","import React from 'react';\r\nimport Modal from '../../../../Component/Kit/Modal';\r\nimport { LinkList } from './styles';\r\n\r\nfunction FilesListModal({ visible, onClose, files }) {\r\n return (\r\n <>\r\n \r\n \r\n {files.map((m, index) => (\r\n
  • \r\n \r\n \r\n {m}\r\n \r\n
  • \r\n ))}\r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default FilesListModal;\r\n","import React, {useCallback, useEffect, useState} from 'react';\r\nimport {useHistory} from 'react-router-dom';\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport {toast} from 'react-toastify';\r\nimport Swal from 'sweetalert2';\r\n\r\n\r\nimport Urls from '../../../Requester/Urls';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport {HeaderContent, MainContent, WrapperLayout,} from '../../../Component/Kit/Layout';\r\nimport {StyledButton} from '../../../Component/Kit/Button';\r\nimport {TickeInfo} from './TicketInfo';\r\nimport {CatList} from './ChatList';\r\nimport {ReplyToTicket} from './ReplyToTicket';\r\nimport {GeTicketDepartmentKey} from '../../../Utility/Services/TicketDepartmentService';\r\nimport {ModifyTicketSettingModal} from './ModifyTicketSettingModal';\r\nimport BackToPage from '../../../Component/Kit/back';\r\nimport {GetTicketPriorityKey} from '../../../Utility/Services/TicketPriorityService';\r\nimport FilesListModal from './FilesListModal';\r\n\r\n\r\nexport const TicketDetail = (props) => {\r\n const ticketParams = props.match.params;\r\n const [ticketDetailData, setTicketDetailData] = useState({});\r\n const [isClose, setIsClose] = useState(false);\r\n const [visible, setVisible] = useState(false);\r\n const [reload, setReload] = useState(false);\r\n const [filesList, setFilesList] = useState([]);\r\n const [filesModal, setFilesModal] = useState(false);\r\n const [userId, setUserId] = useState(null);\r\n const history = useHistory();\r\n\r\n const [configSetting, setConfigSetting] = useState({\r\n department: undefined,\r\n status: undefined,\r\n priority: 1,\r\n isUploadable: null,\r\n adminId: null,\r\n admin: '',\r\n assignedAdminId: ''\r\n });\r\n\r\n\r\n const closeTicket = () => {\r\n Swal.fire({\r\n title: 'آیا مطمئن هستید؟',\r\n text: 'آیا از بستن تیکت مورد نظر اطمینان دارید؟',\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonText: 'انصراف',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'بله، مطمئن هستم',\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n let body = {\r\n department: GeTicketDepartmentKey(ticketDetailData.department),\r\n status: 5,\r\n priority: GetTicketPriorityKey(ticketDetailData.priority),\r\n isUploadable: ticketDetailData.isUploadable,\r\n adminId: ticketDetailData.adminId,\r\n admin: ticketDetailData.admin,\r\n assignedAdminId: ticketDetailData.assignedAdminId\r\n };\r\n setConfigSetting(body);\r\n\r\n ApiClient.Put(Urls.GetTicketByAdmin(ticketParams.id), body).then(\r\n (res) => {\r\n toast.success('تیکت با موفقیت بسته شد.');\r\n setIsClose(true);\r\n history.push('/ticket/list');\r\n }\r\n );\r\n }\r\n });\r\n };\r\n\r\n const showConfig = () => {\r\n setVisible(true);\r\n };\r\n\r\n\r\n const deleteConfirm = (replyId) => {\r\n Swal.fire({\r\n title: \"آیا مطمئن هستید؟\",\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n ApiClient.Delete(Urls.DeleteTicketByAdmin(ticketParams.id, replyId))\r\n .then(res => {\r\n callApi()\r\n toast.success(\"تغییرات با موفقیت ثبت شد.\");\r\n })\r\n }\r\n })\r\n }\r\n\r\n\r\n const callApi = useCallback(() => {\r\n ApiClient.Get(Urls.GetTicketByAdmin(ticketParams.id)).then((res) => {\r\n const dataList = res.result;\r\n dataList.status === 5 ? setIsClose(true) : setIsClose(false);\r\n setConfigSetting({\r\n assignedAdminId: dataList.assignedAdminId,\r\n department: dataList.department,\r\n status: dataList.status,\r\n priority: dataList.priority,\r\n isUploadable: dataList.isUploadable,\r\n adminId: dataList.adminId,\r\n admin: dataList.admin,\r\n });\r\n\r\n setUserId(dataList.userId);\r\n\r\n setTicketDetailData({\r\n ...dataList,\r\n contents: dataList.contents.reverse(),\r\n });\r\n const files = [];\r\n dataList.contents.forEach((el) => {\r\n if (el.attachedFileUrl) {\r\n files.push(el.attachedFileUrl);\r\n }\r\n });\r\n setFilesList(files);\r\n });\r\n }, [ticketParams.id])\r\n\r\n\r\n useEffect(() => {\r\n callApi()\r\n const interval = setInterval(() => {\r\n callApi()\r\n }, 15000);\r\n return () => clearInterval(interval);\r\n }, [isClose, reload, callApi]);\r\n\r\n\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n {!isClose && (\r\n showConfig()}\r\n >\r\n نمایش تنظیمات\r\n \r\n )}\r\n {!isClose && (\r\n closeTicket()}\r\n >\r\n بستن تیکت\r\n \r\n )}\r\n
    \r\n\r\n \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n setFilesModal(true)}\r\n fileLength={filesList.length}\r\n />\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n {\r\n \r\n }\r\n
    \r\n
    \r\n\r\n {\r\n setVisible(true)\r\n }}>\r\n \r\n تنظیمات\r\n {\r\n setVisible(false)\r\n }} className=\"close-btn fa fa-xmark\"/>\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n setFilesModal(false)}\r\n />\r\n
    \r\n );\r\n};\r\n","import styled from 'styled-components';\r\n\r\nexport const TicketCommentsWrapper = styled.ul`\r\n display: grid;\r\n grid-template-columns: 1fr 1fr 1fr 1fr;\r\n gap: 1rem;\r\n margin-bottom: 2rem;\r\n margin-top: 2rem;\r\n padding: 0;\r\n\r\n @media only screen and (max-width: 1199px) {\r\n grid-template-columns: 1fr 1fr 1fr;\r\n }\r\n\r\n @media only screen and (max-width: 991px) {\r\n grid-template-columns: 1fr 1fr;\r\n }\r\n\r\n @media only screen and (max-width: 576px) {\r\n grid-template-columns: 1fr;\r\n }\r\n`;\r\nexport const TicketCommentsListItem = styled.li`\r\n display: flex;\r\n flex-direction: column;\r\n box-shadow: 0 0 5px 1px rgba(0, 0, 0, 0.18);\r\n border-radius: 8px;\r\n padding: 1rem;\r\n`;\r\nexport const TicketTitleRow = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n\r\n > div {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n span {\r\n &.name {\r\n margin-bottom: 0.5rem;\r\n color: #006861;\r\n }\r\n &.date {\r\n font-size: 0.875rem;\r\n margin-bottom: 1rem;\r\n }\r\n }\r\n\r\n .delete-button {\r\n width: 32px;\r\n height: 32px;\r\n border: 0;\r\n background: transparent;\r\n color: #c72622;\r\n border-radius: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: all 300ms ease;\r\n &:hover {\r\n color: #ffffff;\r\n background: #c72622;\r\n }\r\n &:focus {\r\n border: 0;\r\n outline: none;\r\n }\r\n }\r\n`;\r\nexport const EmptyList = styled.span`\r\n display: block;\r\n text-align: center;\r\n padding: 2rem 0;\r\n`;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport ApiClient from '../../../../Requester/ApiClient';\r\nimport Urls from '../../../../Requester/Urls';\r\nimport { toast } from 'react-toastify';\r\nimport {\r\n TicketCommentsWrapper,\r\n TicketCommentsListItem,\r\n EmptyList,\r\n TicketTitleRow,\r\n} from './styles';\r\n\r\nfunction TicketCommnetItem({ comments, deleteConfirm }) {\r\n const params = useParams();\r\n\r\n const [notes, setNotes] = useState();\r\n\r\n const deleteTicketNote = (noteId, index) => {\r\n ApiClient.Delete(Urls.deleteTicketNote(params.id, noteId)).then((res) => {\r\n if (res.result) {\r\n toast.success('یادداشت ثبت شده با موفقیت حذف شد.');\r\n const noteList = notes ? [...notes] : [];\r\n noteList.splice(index, 1);\r\n setNotes(noteList);\r\n deleteConfirm(noteList);\r\n }\r\n });\r\n };\r\n useEffect(() => {\r\n setNotes(comments);\r\n }, [comments]);\r\n return (\r\n
    \r\n {notes && notes.length > 0 ? (\r\n \r\n {notes.map((item, index) => (\r\n \r\n \r\n
    \r\n {item.authorName}\r\n {item.creationDateTime}\r\n
    \r\n {item.isDeletable && (\r\n deleteTicketNote(item.id, index)}\r\n type='button'\r\n className='delete-button'\r\n >\r\n \r\n \r\n )}\r\n
    \r\n

    {item.content}

    \r\n
    \r\n ))}\r\n
    \r\n ) : (\r\n آیتمی جهت نمایش وجود ندارد.\r\n )}\r\n
    \r\n );\r\n}\r\n\r\nexport default TicketCommnetItem;\r\n","import { ticketContent } from '../Rules';\r\nimport * as Yup from 'yup';\r\n\r\nexport const TicketCommentSchema = Yup.object().shape({\r\n ticketContent,\r\n});\r\n","import React, { useEffect, useState } from 'react';\r\nimport {\r\n MainContent,\r\n WrapperLayout,\r\n HeaderContent,\r\n PageTitleLayout,\r\n} from '../../../Component/Kit/Layout';\r\nimport { StyledButton } from '../../../Component/Kit/Button';\r\nimport BackToPage from '../../../Component/Kit/back';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport TicketCommentsItem from './TicketCommentItem';\r\nimport { Formik } from 'formik';\r\nimport { TicketCommentSchema } from '../../../Utility/Validation/Schema/TicketCommentSchema';\r\nimport { StyledForm, StyledTextArea } from '../../../Component/Kit/Form';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport DateConvert from '../../../Utility/Services/date-convert';\r\nimport { connect } from 'react-redux';\r\nimport moment from 'moment-jalaali';\r\n\r\nfunction TicketComments({ adminProfile }) {\r\n const history = useHistory();\r\n const params = useParams();\r\n const [noteList, setNoteList] = useState();\r\n\r\n const getData = () => {\r\n ApiClient.Get(Urls.ticketNote(params.id)).then((res) => {\r\n res.result.forEach((f) => {\r\n f.creationDateTime = DateConvert(f.createdAt);\r\n });\r\n setNoteList(res.result);\r\n });\r\n };\r\n const deleteHandler = (list) => {\r\n setNoteList(list);\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [params.id]);\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n history.push(`/ticket/list/${params.id}`)}\r\n >\r\n تیکت\r\n \r\n
    \r\n\r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    یادداشت‌های تیکت
    \r\n در این بخش لیست تمام یادداشت‌های تیکت قابل مشاهده است.\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n
    \r\n\r\n \r\n \r\n
    ایجاد یادداشت‌ برای این تیکت
    \r\n
    \r\n\r\n {\r\n ApiClient.Post(\r\n Urls.ticketNote(params.id),\r\n JSON.stringify(values.ticketContent)\r\n ).then((res) => {\r\n setNoteList((prevState) => {\r\n return [\r\n ...prevState,\r\n {\r\n id: res.result,\r\n content: values.ticketContent,\r\n isDeletable: true,\r\n authorName: `${adminProfile.firstName} ${adminProfile.lastName}`,\r\n createdAt: moment().format('jYYYYjMMjDDHHmmss'),\r\n creationDateTime: DateConvert(\r\n moment().format('jYYYYjMMjDDHHmmss')\r\n ),\r\n },\r\n ];\r\n });\r\n actions.resetForm();\r\n });\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
    \r\n
    \r\n {\r\n formik.setFieldValue('ticketContent', e.target.value);\r\n }}\r\n />\r\n
    \r\n
    \r\n \r\n ارسال یادداشت\r\n \r\n \r\n )}\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const { bootstrapper } = state;\r\n return { adminProfile: bootstrapper.data };\r\n}\r\n\r\nexport default connect(mapStateToProps)(TicketComments);\r\n","import React, {useEffect, useState} from 'react';\r\nimport {useHistory, useLocation} from 'react-router-dom';\r\nimport {ConvertQueryString} from '../../Utility/Services/convert-query-string';\r\nimport DateConvert from '../../Utility/Services/date-convert';\r\nimport {PageTitleLayout} from './../../Component/Kit/Layout';\r\nimport Table from './../../Component/Shared/Table/Table';\r\nimport ApiClient from './../../Requester/ApiClient';\r\nimport Urls from './../../Requester/Urls';\r\n\r\nfunction UserList() {\r\n const [userListData, setuserListData] = useState([]);\r\n const location = useLocation();\r\n const history = useHistory();\r\n\r\n const tableConfig = {\r\n header: {\r\n fullName: 'نام و نام خانوادگی',\r\n userName: 'نام کاربری',\r\n companyName: 'نام شرکت',\r\n mobile: 'تلفن همراه',\r\n isActiveIcon: 'وضعیت کاربر',\r\n isSuspendedIcon: 'بلاک',\r\n createdAt: 'تاریخ ایجاد حساب',\r\n },\r\n actions: {\r\n view: {\r\n icon: 'fa fa-eye',\r\n },\r\n copy: {\r\n icon: 'far fa-copy',\r\n },\r\n },\r\n rowColor: {\r\n color: '#BAE3E3',\r\n condition: (data) => {\r\n return data.isVIP;\r\n },\r\n },\r\n mode: ['filter', 'search'],\r\n filters: ['datePickerFilter', 'isActive', 'isExpired', 'isSuspended'],\r\n };\r\n\r\n const tableActions = (item) => {\r\n switch (item.actionName) {\r\n case 'view':\r\n history.push(`/userDetail/${item.data.id}/profile`, {\r\n from: location.search,\r\n someOtherProp: '',\r\n });\r\n break;\r\n case 'copy':\r\n const phoneNumber = item.data.mobile;\r\n navigator.clipboard.writeText(phoneNumber);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n useEffect(() => {\r\n ApiClient.Get(Urls.getUsers(), ConvertQueryString(location.search)).then(\r\n (res) => {\r\n let data = res.result;\r\n data.items.map((m) => {\r\n m.companyName = m.companyName ? m.companyName : '- - -'\r\n m.createdAt = DateConvert(m.createdAt);\r\n m.isActiveIcon = m.isActive\r\n ? ``\r\n : ``;\r\n m.isExpiredIcon = m.isExpired\r\n ? ``\r\n : ``;\r\n m.isSuspendedIcon = m.isSuspended\r\n ? ``\r\n : ``;\r\n m.mobile = `0${m.mobile}`;\r\n return m;\r\n });\r\n setuserListData(data);\r\n }\r\n );\r\n }, [location.search]);\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\nexport default UserList;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {useHistory, useLocation} from 'react-router-dom';\r\nimport {ConvertQueryString} from '../../Utility/Services/convert-query-string';\r\nimport DateConvert from '../../Utility/Services/date-convert';\r\nimport {PageTitleLayout} from '../../Component/Kit/Layout';\r\nimport Table from './../../Component/Shared/Table/Table';\r\nimport ApiClient from './../../Requester/ApiClient';\r\nimport Urls from './../../Requester/Urls';\r\nimport queryString from \"query-string\";\r\n\r\nfunction UserVerify() {\r\n const [userListData, setuserListData] = useState([]);\r\n const location = useLocation();\r\n const history = useHistory();\r\n\r\n\r\n const tableConfig = {\r\n header: {\r\n fullName: 'نام و نام خانوادگی',\r\n userName: 'نام کاربری',\r\n companyName: 'نام شرکت',\r\n mobile: 'تلفن همراه',\r\n isActiveIcon: 'وضعیت کاربر',\r\n isSuspendedIcon: 'بلاک',\r\n createdAt: 'تاریخ ایجاد حساب',\r\n },\r\n actions: {\r\n view: {\r\n icon: 'fa fa-eye',\r\n },\r\n copy: {\r\n icon: 'far fa-copy',\r\n },\r\n },\r\n rowColor: {\r\n color: '#BAE3E3',\r\n condition: (data) => {\r\n return data.isVIP;\r\n },\r\n },\r\n\r\n };\r\n\r\n const tableActions = (item) => {\r\n switch (item.actionName) {\r\n case 'view':\r\n history.push(`/userDetail/${item.data.id}/profile`, {\r\n from: location.search,\r\n someOtherProp: '',\r\n });\r\n break;\r\n case 'copy':\r\n const phoneNumber = item.data.mobile;\r\n navigator.clipboard.writeText(phoneNumber);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n useEffect(() => {\r\n ApiClient.Get(Urls.getUsers() + \"?state=2\").then(\r\n (res) => {\r\n let data = res.result;\r\n data.items.map((m) => {\r\n m.companyName = m.companyName ? m.companyName : '- - -'\r\n m.createdAt = DateConvert(m.createdAt);\r\n m.isActiveIcon = m.isActive\r\n ? ``\r\n : ``;\r\n m.isExpiredIcon = m.isExpired\r\n ? ``\r\n : ``;\r\n m.isSuspendedIcon = m.isSuspended\r\n ? ``\r\n : ``;\r\n m.mobile = `0${m.mobile}`;\r\n return m;\r\n });\r\n setuserListData(data);\r\n }\r\n );\r\n }, [location.search]);\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\nexport default UserVerify;\r\n","import React, { useEffect } from 'react';\r\nimport { NavLink, Route, Switch, useHistory, useLocation } from \"react-router-dom\";\r\nimport { MainContent } from \"../../Component/Kit/Layout\";\r\nimport UserList from \"./user-list\";\r\nimport UserVerify from \"./user-verify\";\r\n\r\nconst UserPage = ({ match }) => {\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n if (location.pathname === `${match.url}`) {\r\n history.push(`${match.url}/list`)\r\n }\r\n }, [])\r\n\r\n return (\r\n <>\r\n \r\n
      \r\n
    • \r\n \r\n همه کاربران\r\n \r\n
    • \r\n\r\n
    • \r\n \r\n کاربران در انتظار تایید اطلاعات\r\n \r\n
    • \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default UserPage\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useHistory, useLocation, useRouteMatch } from \"react-router-dom\";\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport { PageTitleLayout } from \"../../../Component/Kit/Layout\";\r\nimport { StyledButton } from \"../../../Component/Kit/Button\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport TicketStatus from \"../../../Utility/Services/TicketStatusService\";\r\nimport { ConvertQueryString } from \"../../../Utility/Services/convert-query-string\";\r\n\r\nfunction UserTicket() {\r\n const tableConfig = {\r\n header: {\r\n title: \"عنوان\",\r\n lastModifiedAt: \"آخرین بروزرسانی\",\r\n statusName: \"وضعیت تیکت\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n },\r\n },\r\n mode: [\"filter\", \"search\"],\r\n filters: [\"datePickerFilter\", \"status\"],\r\n };\r\n\r\n let match = useRouteMatch();\r\n let history = useHistory();\r\n let location = useLocation();\r\n const [userTicketData, setuserTicketData] = useState({});\r\n\r\n const tableActions = (item) => {\r\n history.push(`/ticket/list/${item.data.id}`);\r\n };\r\n const addTicket = () => {\r\n history.push(`/ticket/add/${match.params.id}`);\r\n };\r\n useEffect(() => {\r\n ApiClient.Get(Urls.userTicket(match.params.id), ConvertQueryString(location.search))\r\n .then((res) => {\r\n let data = res.result;\r\n data.items.map((m) => {\r\n m.statusName = TicketStatus(m.status);\r\n m.lastModifiedAt = DateConvert(m.lastModifiedAt);\r\n return m\r\n });\r\n setuserTicketData(data);\r\n });\r\n }, [match.params.id, location.search]);\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 addTicket()}>\r\n ایجاد تیکت جدید\r\n \r\n
    \r\n\r\n \r\n \r\n );\r\n}\r\n\r\nexport default UserTicket;\r\n","export const LocationDataAction = (data) => ({\r\n type: 'LOCATION_DATA',\r\n data\r\n})\r\n\r\n","export const UserLegalDataAction = (data) => ({\r\n type: 'USER_LEGAL_DATA',\r\n data\r\n})\r\n\r\n","export const UserProfileDataAction = (data) => ({\r\n type: 'USER_PROFILE_DATA',\r\n data\r\n})\r\n\r\n","import * as Yup from 'yup';\r\nimport { otpCode } from '../Rules';\r\n\r\nexport const EditUserCodeVerificationSchema = Yup.object().shape({\r\n otpCode,\r\n});\r\n","import { Formik } from 'formik';\r\nimport React, { useState } from 'react';\r\nimport { toast } from 'react-toastify';\r\nimport { StyledButton } from '../../../../../Component/Kit/Button';\r\nimport { StyledForm, StyledInput } from '../../../../../Component/Kit/Form';\r\nimport ApiClient from '../../../../../Requester/ApiClient';\r\nimport Urls from '../../../../../Requester/Urls';\r\nimport { EditUserCodeVerificationSchema } from '../../../../../Utility/Validation/Schema/EditUserCodeVerificationSchema';\r\n\r\nconst UserCodeVerification = (props) => {\r\n const { setEditMobileStep, userMobile, userId, onSubmit, onClose } = props;\r\n const [submitLoading, setSubmitLoading] = useState(false);\r\n\r\n return (\r\n {\r\n setSubmitLoading(true);\r\n let body = {\r\n mobile: Number(userMobile),\r\n code: Number(values.otpCode),\r\n usage: 5,\r\n };\r\n ApiClient.Patch(Urls.modifyUserVerificationCode(userId), body)\r\n .then((res) => {\r\n setSubmitLoading(false);\r\n toast.success('تغییر شماره با موفقیت اعمال شد.');\r\n actions.resetForm();\r\n setEditMobileStep('mobile');\r\n onSubmit();\r\n onClose();\r\n })\r\n .catch(err => {\r\n setSubmitLoading(false);\r\n actions.resetForm();\r\n })\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
    \r\n
    \r\n \r\n formik.setFieldValue(\"otpCode\", e.target.value)\r\n }\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n ثبت کدفعالسازی\r\n \r\n
    \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default UserCodeVerification;","import * as Yup from 'yup';\r\nimport { mobile } from '../Rules';\r\n\r\nexport const EditUserMobileSchema = Yup.object().shape({\r\n mobile,\r\n});\r\n","import { Formik } from 'formik';\r\nimport React, { useState } from 'react';\r\nimport { toast } from 'react-toastify';\r\nimport { StyledButton } from '../../../../../Component/Kit/Button';\r\nimport { StyledForm, StyledInput } from '../../../../../Component/Kit/Form';\r\nimport ApiClient from '../../../../../Requester/ApiClient';\r\nimport Urls from '../../../../../Requester/Urls';\r\nimport { EditUserMobileSchema } from '../../../../../Utility/Validation/Schema/EditUserMobileSchema';\r\n\r\nconst UserMobileVerification = (props) => {\r\n const { setEditMobileStep, userId, setUserMobile } = props;\r\n const [submitLoading, setSubmitLoading] = useState(false);\r\n\r\n return (\r\n {\r\n setSubmitLoading(true);\r\n ApiClient.Patch(Urls.modifyUserMobile(userId), JSON.stringify(values.mobile))\r\n .then((res) => {\r\n setSubmitLoading(false);\r\n setEditMobileStep('code');\r\n setUserMobile(values.mobile);\r\n if (res.result) {\r\n toast.warning('کد فعالسازی قبلا برای شما ارسال شده است. لطفا از کد قبلی استفاده نمایید.');\r\n } else {\r\n toast.success('کد برای کاربر ارسال شد.');\r\n }\r\n })\r\n .catch(err => {\r\n setSubmitLoading(false);\r\n actions.resetForm();\r\n })\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
    \r\n
    \r\n \r\n formik.setFieldValue(\"mobile\", e.target.value)\r\n }\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n ارسال شماره همراه\r\n \r\n
    \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default UserMobileVerification","import React, { useState } from 'react'\r\nimport Modal from '../../../../Component/Kit/Modal'\r\nimport UserCodeVerification from './UserCodeVerification';\r\nimport UserMobileVerification from './UserMobileVerification';\r\n\r\nconst ChangeUserMobile = (props) => {\r\n const { userId, visible, onClose, onCancel, setVisible, onSubmit } = props;\r\n const [editMobileStep, setEditMobileStep] = useState('mobile');\r\n const [userMobile, setUserMobile] = useState('');\r\n return (\r\n \r\n
    \r\n {\r\n editMobileStep === \"mobile\" &&\r\n \r\n }\r\n {\r\n editMobileStep === \"code\" &&\r\n setVisible(false)}\r\n setEditMobileStep={setEditMobileStep}\r\n />\r\n }\r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default ChangeUserMobile","let UserDeactivationReasonModel = [\r\n { name: 'نگرانی از حریم شخصی', value: 1 },\r\n { name: 'عدم کارامد بودن سیستم', value: 2 },\r\n { name: 'دریافت پیامک های زیاد', value: 3 },\r\n { name: 'مهاجرت به سیستم جدید', value: 4 },\r\n { name: 'عدم استفاده از سامانه', value: 5 },\r\n { name: 'بالا بودن هزینه ها', value: 6 },\r\n { name: 'پیچیدگی نرم افزار', value: 7 },\r\n { name: 'بقیه موارد', value: 8 },\r\n];\r\n\r\nexport default UserDeactivationReasonModel;","import UserDeactivationReasonModel from \"../Model/UserDeactivationReasonModel\";\r\n\r\nfunction UserDeactivationReasonService(value) {\r\n let result = UserDeactivationReasonModel.find(item => item.value === value);\r\n return result.name\r\n}\r\n\r\nexport default UserDeactivationReasonService;","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const UserInformationWrapper = styled.div`\r\n display: flex;\r\n flex-wrap: wrap;\r\n`;\r\n\r\nexport const ItemRow = styled.p`\r\n margin-bottom: 0.5rem;\r\n margin: 0 0.5rem 0.5rem;\r\n flex: 0 0 33.3%;\r\n max-width: calc(33.3% - 1rem);\r\n background-color: #f3f3f3;\r\n border-radius: 4px;\r\n span {\r\n padding: 0.5rem 0.5rem;\r\n }\r\n .custom-label {\r\n min-width: 130px;\r\n display: inline-block;\r\n font-weight: bold;\r\n border-left: 3px solid #fff;\r\n }\r\n &.col-100{\r\n max-width: calc(100% - 1rem) !important;\r\n flex: 0 0 100% !important;\r\n }\r\n\r\n @media only screen and (min-width: 992px) and (max-width: 1330px){\r\n flex: 0 0 50%;\r\n max-width: calc(50% - 1rem);\r\n }\r\n @media only screen and (max-width: 991px){\r\n flex: 0 0 100%;\r\n max-width: calc(100% - 1rem);\r\n }\r\n`;\r\n\r\nexport const UserInformationItem = (props) => {\r\n const { label, dataItem, className, onCopy } = props;\r\n const handleClick = () => {\r\n if(onCopy) onCopy();\r\n };\r\n return (\r\n \r\n {label}: \r\n {dataItem ?? '--------'}\r\n \r\n );\r\n};\r\n","let userIncompleteFieldsModel = [\r\n {name: \"fatherName\", value: 1},\r\n];\r\nexport default userIncompleteFieldsModel;\r\n","import userIncompleteFieldsModel from \"../Models/user-incomplete-fields\";\r\nfunction getUserIncompleteFields(value) {\r\n let result = [];\r\n userIncompleteFieldsModel.forEach((item) => {\r\n value.forEach((element) => {\r\n if (item.value === element) result.push(item.name);\r\n });\r\n });\r\n return result;\r\n}\r\n\r\nexport default getUserIncompleteFields;","import React, {useEffect, useState} from 'react';\r\nimport Modal from '../../../../Component/Kit/Modal';\r\nimport UserDeactivationReasonService from '../../../../Utility/Services/UserDeactivationReasonService';\r\nimport {UserInformationItem, UserInformationWrapper} from './style';\r\nimport DateConvert from '../../../../Utility/Services/date-convert';\r\nimport EnumFlag from \"../../../../Utility/Services/enum-flag\";\r\nimport getUserIncompleteFields from \"../Services/user-incomplete-fields\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport {toast} from \"react-toastify\";\r\nimport {useHistory, useLocation, useParams} from \"react-router-dom\";\r\n\r\n\r\nconst UserInformation = ({userData, cityItem, provinceItem}) => {\r\n const params = useParams();\r\n const location = useLocation();\r\n const history = useHistory();\r\n\r\n const [userInformationData, setuserInformationData] = useState();\r\n const [gazette, setGazette] = useState(false);\r\n const [nationalCard, setNationalCard] = useState(false);\r\n const [loadingApproveButt, setLoadingApproveButt] = useState(false);\r\n useEffect(() => {\r\n if (userData.provinceId && provinceItem.length > 0 && cityItem.length > 0) {\r\n const province = provinceItem.find((item) => item.value === userData.provinceId);\r\n userData.provinceName = province ? province.name : '';\r\n const city = cityItem.find((item) => item.value === userData.cityId);\r\n userData.cityName = city ? city.name : '';\r\n userData.isVIPName = userData.isVIP ? 'VIP' : '-';\r\n userData.birthDateTime = DateConvert(userData.birthDate);\r\n userData.completionRequirement = getUserIncompleteFields(EnumFlag([1, 2, 4, 8, 16], userData.completionRequirement));\r\n setuserInformationData(userData)\r\n }\r\n\r\n }, [provinceItem, cityItem, userData])\r\n\r\n const userInformationTitle = {\r\n firstName: \"نام\",\r\n lastName: \"نام خانوادگی\",\r\n fatherName: \"نام پدر\",\r\n mobile: \"شماره همراه\",\r\n userName: \"نام کاربری\",\r\n nationalId: \"کدملی\",\r\n certificateNo: \"شماره شناسنامه\",\r\n birthDateTime: \"تاریخ تولد\",\r\n isVIPName: \"کاربر ویژه\",\r\n isMaleName: \"جنسیت\",\r\n email: \"ایمیل\",\r\n isLegalName: \"نوع حساب\",\r\n createdAt: \"تاریخ ایجاد حساب\",\r\n\r\n additionalMobile: \"شماره همراه دوم\",\r\n phoneNumber: \"تلفن\",\r\n provinceName: \"استان\",\r\n cityName: \"شهر\",\r\n\r\n balance: \"مقدار شارژ\",\r\n isActiveName: \"وضعیت حساب\",\r\n isSuspendedName: \"معلق شدن\",\r\n companyActivityFieldName: \"زمینه فعالیت\",\r\n postalCode: \"کدپستی\",\r\n avenue: \"خیابان\",\r\n alley: \"کوچه\",\r\n plaque: \"پلاک\",\r\n }\r\n\r\n const userInformationLegalTitle = {\r\n companyName: \"نام شرکت\",\r\n economicCode: \"کداقتصادی\",\r\n companyNationalId: \"شناسه ملی\",\r\n registrationNumber: \"شماره ثبت\",\r\n companyTypeName: \"نوع شرکت\",\r\n }\r\n\r\n\r\n const userApprove = (boolValue) => {\r\n setLoadingApproveButt(true);\r\n ApiClient.Patch(Urls.userApproveInformation(params.id), JSON.stringify(boolValue))\r\n .then(() => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n setLoadingApproveButt(false);\r\n history.push(`/users/verify-info`, {\r\n from: location.search,\r\n someOtherProp: '',\r\n });\r\n }).catch(() => {\r\n toast.error('دوباره سعی کنید.');\r\n })\r\n }\r\n return (\r\n <>\r\n {userInformationData && (\r\n <>\r\n {userInformationData.isActive === false && (\r\n
    \r\n
    \r\n

    کاربر اکانت خود را به علت\r\n \r\n  {UserDeactivationReasonService(userInformationData.deactivationReason)}  \r\n \r\n غیرفعال کرده است .\r\n

    \r\n {userInformationData.deactivationReasonDescription && (\r\n

    \r\n

    علت این تصمیم:
    \r\n \r\n کاربر اکانت خود را به علت کاربر اکانت خود را به علت کاربر اکانت خود را به علت کاربر اکانت خود را به علت کاربر اکانت خود را به علت\r\n {userInformationData.deactivationReasonDescription}\r\n \r\n

    \r\n )}\r\n
    \r\n
    \r\n )}\r\n\r\n {\r\n (userInformationData?.state === 2 || userInformationData?.state === 3)\r\n &&\r\n
    \r\n\r\n\r\n
    \r\n \r\n (userInformationTitle[item])).join(\" \")\r\n }/>\r\n \r\n
    \r\n\r\n {userInformationData?.state === 2 &&\r\n\r\n
    \r\n
    \r\n
    \r\n userApprove(false)}\r\n disabled={loadingApproveButt}\r\n >\r\n
    \r\n عدم تایید\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n userApprove(true)}\r\n disabled={loadingApproveButt}\r\n >\r\n
    \r\n تایید\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n }\r\n\r\n
    \r\n }\r\n\r\n\r\n
    \r\n \r\n {Object.entries(userInformationTitle).map(([key, value]) => (\r\n \r\n ))}\r\n\r\n {userInformationData.legalData &&\r\n Object.entries(userInformationLegalTitle).map(([key, value]) => (\r\n \r\n ))\r\n }\r\n\r\n \r\n\r\n {userInformationData.advertisingCampaignName &&\r\n \r\n }\r\n\r\n\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n {userInformationData.nationalCardUploadedURL ? (\r\n
    \r\n setNationalCard(true)}\r\n >\r\n \r\n
    \r\n setNationalCard(false)}\r\n visible={nationalCard}\r\n headerTitle=\"اطلاعات هویتی\"\r\n >\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n ) : (\r\n
    \r\n \r\n \r\n تصویری جهت نمایش وجود ندارد\r\n
    \r\n
    \r\n )}\r\n {userInformationData.isLegal ? (\r\n
    \r\n setGazette(true)}\r\n >\r\n \"gazette\"/\r\n
    \r\n setGazette(false)}\r\n visible={gazette}\r\n headerTitle=\"روزنامه رسمی\"\r\n >\r\n
    \r\n \"gazette\"/\r\n
    \r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default UserInformation\r\n","import useCookies from '@js-smart/react-cookie-service';\r\nimport React, { useCallback, useEffect, useState } from \"react\";\r\nimport { connect, useDispatch } from \"react-redux\";\r\nimport { Link, useRouteMatch } from \"react-router-dom\";\r\nimport { LocationDataAction } from \"../../../Actions/locationData\";\r\nimport { UserLegalDataAction } from \"../../../Actions/UserLagalData\";\r\nimport { UserProfileDataAction } from \"../../../Actions/UserProfileData\";\r\nimport { Loader } from \"../../../Component/Shared/Loader\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport {\r\n CompanyActivity,\r\n CompanyType,\r\n} from \"../../../Utility/Services/company\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport ChangeUserMobile from \"./ChangeUserMobile\";\r\n// import { ConvertUserType } from \"./ConvertUserType\";\r\nimport UserInformation from \"./UserInformation\";\r\n\r\nfunction UserProfile() {\r\n let match = useRouteMatch();\r\n const dispatch = useDispatch();\r\n const [userData, setuserData] = useState({});\r\n const { setCookie } = useCookies();\r\n const [loading, setLoading] = useState(true);\r\n const [convertUserTypeModal, ShowConvertUserTypeModal] = useState(false);\r\n const [changeUserMobileModal, setChangeUserMobileModal] = useState(false);\r\n const [provinceItem, setProvinceItem] = useState([]);\r\n const [cityItem, setCityItem] = useState([]);\r\n\r\n const getData = useCallback(async () => {\r\n try {\r\n const getProvince = await ApiClient.Get(Urls.getProvince());\r\n let userProfile = await ApiClient.Get(Urls.userProfile(match.params.id));\r\n let data = Object.assign({}, userProfile.result);\r\n const getCity = await ApiClient.Get(Urls.getCity(data.provinceId));\r\n setProvinceItem(getProvince.result);\r\n setCityItem(getCity.result);\r\n data.accountVerifiedAt = data.accountVerifiedAt\r\n ? DateConvert(data.accountVerifiedAt)\r\n : DateConvert(data.createdAt);\r\n data.createdAt = DateConvert(data.createdAt);\r\n data.additionalMobile = data.additionalMobile\r\n ? `0${data.additionalMobile}`\r\n : data.additionalMobile;\r\n data.mobile = `0${data.mobile}`;\r\n data.isActiveName = data.isActive ? \"فعال\" : \"غیرفعال\";\r\n data.isLegalName = data.isLegal ? \"حقوقی\" : \"حقیقی\";\r\n data.isSuspendedName = data.isSuspended ? \"Block\" : \"Unblock\";\r\n data.companyActivityFieldName = CompanyActivity(\r\n data.companyActivityField\r\n );\r\n data.isMaleName = data.isMale ? \"مرد\" : \"زن\";\r\n if (data.legalData) {\r\n data.legalData.companyTypeName = CompanyType(\r\n data.legalData.companyType\r\n );\r\n }\r\n\r\n const storeProfileData = {\r\n email: data.email,\r\n userName: data.userName,\r\n mobile: data.mobile,\r\n additionalMobile: data.additionalMobile,\r\n isLegal: data.isLegal,\r\n firstName: data.firstName,\r\n lastName: data.lastName,\r\n fatherName: data.fatherName,\r\n nationalId: data.nationalId,\r\n certificateNo: data.certificateNo,\r\n birthDate: data.birthDate,\r\n isMale: data.isMale,\r\n postalCode: data.postalCode,\r\n provinceId: data.provinceId,\r\n cityId: data.cityId,\r\n address: data.address,\r\n phoneNumber: data.phoneNumber,\r\n nationalCardUploadedURL: data.nationalCardUploadedURL,\r\n gazetteUploadedURL: data.gazetteUploadedURL,\r\n isVIP: data.isVIP,\r\n avenue:data.avenue,\r\n alley: data.alley,\r\n plaque: data.plaque,\r\n };\r\n const legalData = {\r\n isLegal: data.isLegal,\r\n companyActivityField: data.companyActivityField,\r\n ...data.legalData,\r\n };\r\n setuserData(data);\r\n // dispatch(UserProfileDataAction(data));\r\n dispatch(UserProfileDataAction(storeProfileData));\r\n dispatch(UserLegalDataAction(legalData));\r\n dispatch(\r\n LocationDataAction({\r\n provinceList: getProvince.result,\r\n cityList: getCity.result,\r\n })\r\n );\r\n setLoading(false);\r\n } catch (err) {}\r\n }, [match.params.id]);\r\n\r\n const loginAsUser = () => {\r\n ApiClient.Post(Urls.loginAsUser(match.params.id)).then((res) => {\r\n setCookie(\"access_token\", res.result.accessToken, {\r\n domain: \".sms.ir\",\r\n path: \"/\",\r\n });\r\n setCookie(\"refresh_token\", res.result.refreshToken, {\r\n domain: \".sms.ir\",\r\n path: \"/\",\r\n });\r\n window.open(\"https://app.sms.ir/dashboard/\", \"_blank\");\r\n });\r\n };\r\n\r\n const onChangeUserType = () => {\r\n getData().then();\r\n };\r\n\r\n useEffect(() => {\r\n getData().then();\r\n }, [getData]);\r\n\r\n return (\r\n <>\r\n {loading === true ? (\r\n \r\n ) : (\r\n
    \r\n \r\n\r\n
    \r\n
      \r\n
    • \r\n \r\n \r\n ویرایش پروفایل\r\n \r\n
    • \r\n
    • \r\n \r\n \r\n ویرایش مستندات\r\n \r\n
    • \r\n
    • \r\n \r\n \r\n تغییر نوع حساب کاربری\r\n \r\n
    • \r\n
    • \r\n setChangeUserMobileModal(true)}\r\n >\r\n \r\n تغییر شماره موبایل\r\n

      \r\n
    • \r\n {userData.isActive && !userData.isSuspended ? (\r\n
    • \r\n loginAsUser()}\r\n >\r\n \r\n ورود به حساب کاربر\r\n

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

      \r\n \r\n ورود به حساب کاربر\r\n

      \r\n
    • \r\n )}\r\n
    \r\n
    \r\n
    \r\n )}\r\n\r\n <>\r\n {/* ShowConvertUserTypeModal(false)}\r\n onClose={() => ShowConvertUserTypeModal(false)}\r\n /> */}\r\n setChangeUserMobileModal(false)}\r\n onCancel={() => setChangeUserMobileModal(false)}\r\n />\r\n \r\n \r\n );\r\n}\r\n\r\nexport default connect()(UserProfile);\r\n","import {Formik} from \"formik\";\r\nimport React, {useCallback, useEffect, useState} from \"react\";\r\nimport {useRouteMatch} from \"react-router-dom\";\r\nimport {StyledButton} from \"../../../Component/Kit/Button\";\r\nimport {FormError, StyledCheckBox, StyledForm, StyledInput, StyledSelect} from \"../../../Component/Kit/Form\";\r\nimport ProviderEnum, {SystemLineProviderEnum} from \"../../../Utility/Model/provider-enum.model\";\r\nimport {UserLineEarnMethod} from \"../../../Utility/Model/lines.model\";\r\nimport * as Yup from \"yup\";\r\nimport {addLineNumber} from \"../../../Utility/Validation/Rules\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport {toast} from \"react-toastify\";\r\nimport {Loader} from \"../../../Component/Shared/Loader\";\r\nimport {LinePrebuyStatus} from \"../../../Utility/Services/lines\";\r\n\r\nconst AddLineToUserSchema = Yup.object().shape({\r\n addLineNumber,\r\n providerId: Yup.string()\r\n .required(\"این فیلد الزامی است.\"),\r\n earnMethod: Yup.string()\r\n .required(\"این فیلد الزامی است.\"),\r\n\r\n});\r\n\r\nfunction AddLineToUser({onCloseModal, dataChange}) {\r\n let match = useRouteMatch();\r\n const [loading, setLoading] = useState(true);\r\n const [tableData, setTableData] = useState([]);\r\n\r\n const getPrebuyLine = useCallback(() => {\r\n ApiClient.Get(Urls.userLinePrebuy(match.params.id))\r\n .then((res) => {\r\n let data = res.result;\r\n data.map((m) => {\r\n m.status = LinePrebuyStatus(m.status)\r\n });\r\n\r\n setLoading(false);\r\n setTableData(data)\r\n });\r\n }, [match.params.id])\r\n\r\n const deletePrebuyLine = (prebuyId) => {\r\n ApiClient.Delete(Urls.deleteUserLinePrebuy(match.params.id, prebuyId))\r\n .then((res) => {\r\n toast.success('خط با موفقیت حذف شد.')\r\n setLoading(true);\r\n getPrebuyLine();\r\n });\r\n }\r\n\r\n\r\n useEffect(() => {\r\n getPrebuyLine();\r\n }, [getPrebuyLine]);\r\n\r\n return (\r\n <>\r\n {\r\n const errors = {};\r\n if (values.areaCode === 2 || values.areaCode === 1) {\r\n if (values.addLineNumber.length < 2) {\r\n errors.addLineNumber = \"حداقل تعداد مجاز کاراکتر 2 می‌باشد.\"\r\n }\r\n } else if (values.areaCode === 5) {\r\n if (values.addLineNumber.length > 4) {\r\n errors.addLineNumber = \" حداکثر تعداد مجاز کاراکتر برای خط آسیاتک 4 می‌باشد.\"\r\n }\r\n } else {\r\n if (values.addLineNumber.length < 4) {\r\n errors.addLineNumber = \"حداقل تعداد مجاز کاراکتر 4 می‌باشد.\"\r\n }\r\n }\r\n return errors;\r\n }}\r\n validationSchema={AddLineToUserSchema}\r\n enableReinitialize={false}\r\n onSubmit={(values, actions) => {\r\n const body = {\r\n \"userId\": parseInt(match.params.id),\r\n \"linePrefix\": parseInt(SystemLineProviderEnum.find(f => f.value === values.providerId).prefix),\r\n \"isPrebuyLine\": values.isPrebuy,\r\n \"pureNumber\": values.addLineNumber,\r\n \"providerId\": parseInt(values.providerId),\r\n \"lineEarnType\": values.earnMethod,\r\n }\r\n if (values.isPrebuy) {\r\n body['linePrice'] = parseInt(values.price)\r\n if (parseInt(values.price) <= 0) {\r\n toast.warning('قیمت وارد شده نامعتبر است.')\r\n return\r\n }\r\n }\r\n ApiClient.Post(Urls.userLine(), JSON.stringify(body))\r\n .then((res) => {\r\n toast.success('خط با موفقیت افزوده شد.')\r\n if (!values.isPrebuy) {\r\n onCloseModal(false);\r\n }\r\n dataChange(true);\r\n getPrebuyLine();\r\n })\r\n .catch(err => console.error(err))\r\n\r\n actions.resetForm();\r\n }}>\r\n\r\n\r\n {(formik) => (\r\n \r\n
    \r\n \r\n formik.setFieldValue('providerId', Number(e.target.value))\r\n }\r\n />\r\n\r\n \r\n formik.setFieldValue('earnMethod', Number(e.target.value))\r\n }\r\n />\r\n\r\n
    \r\n\r\n {\r\n\r\n
    \r\n
    \r\n
    \r\n {SystemLineProviderEnum.map(m => (\r\n (m.value === formik.values.providerId) ? m.prefix : null\r\n ))}\r\n\r\n {\r\n !formik.values.providerId &&\r\n <>...\r\n }\r\n
    \r\n\r\n\r\n
    \r\n {\r\n formik.setFieldValue(\"addLineNumber\", e.target.value)\r\n }\r\n }/>\r\n \r\n {(formik.errors.addLineNumber && formik.touched.addLineNumber)\r\n ? formik.errors.addLineNumber\r\n : 'false'}\r\n \r\n
    \r\n }\r\n\r\n\r\n
    \r\n {\r\n formik.setFieldValue(\"isPrebuy\", e.target.checked)\r\n }}\r\n />\r\n\r\n {\r\n formik.values.isPrebuy &&\r\n\r\n formik.setFieldValue(\"price\", e.target.value)}\r\n />\r\n\r\n\r\n }\r\n\r\n
    \r\n\r\n\r\n
    \r\n\r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n\r\n\r\n deactiveUserLines(data)}\r\n >\r\n انجام عملیات\r\n \r\n\r\n\r\n
    \r\n \r\n )}\r\n \r\n\r\n {\r\n loading\r\n ?\r\n \r\n :\r\n\r\n <>\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {tableData &&\r\n tableData.map((item, key) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n {\r\n tableData && tableData.length === 0 &&\r\n \r\n \r\n \r\n }\r\n\r\n \r\n
    #شمارهوضعیت
    {key + 1}{item.number}{item.status} deletePrebuyLine(item.id)}\r\n className=\"fa fa-trash text-danger pointer\">
    موردی وجود ندارد.
    \r\n
    \r\n \r\n\r\n }\r\n\r\n \r\n )\r\n}\r\n\r\nexport default AddLineToUser;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { StyledButton } from '../../../Component/Kit/Button';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport { WhoisLineOperationService } from '../../../Utility/Services/lines';\r\nimport { Loader } from './../../../Component/Shared/Loader/index';\r\nimport DateConvert from './../../../Utility/Services/date-convert';\r\nimport { toast } from 'react-toastify';\r\n\r\nexport const WhoisModal = (props) => {\r\n const { data } = props;\r\n const [whoidLog, setWhoidLog] = useState();\r\n const [loading, setLoading] = useState(false);\r\n\r\n const applyWhoIsHandler = () => {\r\n ApiClient.Post(Urls.magfaWhoisApply(data.id))\r\n .then(res => {\r\n if (res.result.isSuccess) {\r\n toast.success('Whois مورد نظر اعمال شد.')\r\n getMagfaWhoisLogs()\r\n } else {\r\n toast.error(res.result.message)\r\n }\r\n })\r\n }\r\n const deleteWhoIsHandler = () => {\r\n ApiClient.Delete(Urls.magfaWhoisApply(data.id))\r\n .then(res => {\r\n if (res.result.isSuccess) {\r\n toast.success('Whois مورد نظر حذف شد.')\r\n getMagfaWhoisLogs()\r\n } else {\r\n toast.error(res.result.message)\r\n }\r\n })\r\n }\r\n\r\n const getMagfaWhoisLogs = () => {\r\n ApiClient.Get(Urls.magfaWhoisLog(data.id))\r\n .then(res => {\r\n res.result.map((m) => {\r\n m.createdAt = DateConvert(m.createdAt);\r\n m.isSuccess = m.isSuccess ? 'موفق' : 'ناموفق';\r\n m.operation = WhoisLineOperationService(m.operation);\r\n return m;\r\n });\r\n setWhoidLog(res.result);\r\n setLoading(false)\r\n })\r\n .catch(er => setLoading(false))\r\n }\r\n\r\n const whoisLogName = {\r\n createdAt: \"تاریخ ایجاد\",\r\n isSuccess: \"وضعیت\",\r\n operation: \"عملیات\",\r\n message: \"توضیحات\",\r\n };\r\n\r\n\r\n useEffect(() => {\r\n setLoading(true)\r\n if (data.id) {\r\n getMagfaWhoisLogs();\r\n }\r\n }, [data])\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n

    اعمال Whois برای کاربر:

    \r\n applyWhoIsHandler()}\r\n >\r\n Whois\r\n \r\n
    \r\n
    \r\n
    \r\n

    حذف Whois :

    \r\n deleteWhoIsHandler()}\r\n >\r\n حــذف\r\n \r\n
    \r\n
    \r\n
    \r\n

    Whois Log:

    \r\n {\r\n loading\r\n ?\r\n \r\n :\r\n
    \r\n \r\n \r\n {whoisLogName && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {whoidLog &&\r\n whoidLog.map((item, key) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n {\r\n whoidLog && whoidLog.length == 0 &&\r\n \r\n \r\n \r\n }\r\n\r\n \r\n
    #{whoisLogName.isSuccess}{whoisLogName.operation}{whoisLogName.createdAt}{whoisLogName.message}
    {key + 1}{item.isSuccess}{item.operation}{item.createdAt}{item.message}
    موردی وجود ندارد.
    \r\n
    \r\n }\r\n\r\n
    \r\n
    \r\n \r\n )\r\n}\r\n","import React, {useCallback, useEffect, useState} from \"react\";\r\nimport {useLocation, useRouteMatch} from \"react-router-dom\";\r\nimport {StyledButton} from \"../../../Component/Kit/Button\";\r\nimport {PageTitleLayout} from \"../../../Component/Kit/Layout\";\r\nimport UserLineModal from \"../../../Component/Shared/Modal/user-line-modal\";\r\nimport {ConvertQueryString} from \"../../../Utility/Services/convert-query-string\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport {EarnMethod, LineStatus, LineTypes} from \"../../../Utility/Services/lines\";\r\nimport GetProvider from \"../../../Utility/Services/provider\";\r\nimport Modal from \"./../../../Component/Kit/Modal\";\r\nimport Table from \"./../../../Component/Shared/Table/Table\";\r\nimport ApiClient from \"./../../../Requester/ApiClient\";\r\nimport Urls from \"./../../../Requester/Urls\";\r\nimport AddLineToUser from \"./add-line\";\r\nimport {WhoisModal} from \"./whois-modal\";\r\nimport {FormLable, StyledForm, StyledSwitchBox} from \"../../../Component/Kit/Form\";\r\nimport Swal from \"sweetalert2\";\r\nimport {toast} from \"react-toastify\";\r\nimport {MyDatePicker} from \"../../../Component/Shared/DatePicker\";\r\nimport {Formik} from \"formik\";\r\nimport * as Yup from 'yup';\r\nimport moment from \"moment-jalaali\";\r\n\r\n\r\nconst PublicLineSchema = Yup.object().shape({\r\n publicLineDate: Yup.string()\r\n .required(\"این فیلد الزامی است.\"),\r\n});\r\n\r\nfunction UserLines() {\r\n let match = useRouteMatch();\r\n let location = useLocation();\r\n const [lineData, setlineData] = useState({});\r\n const [ActivePublicLines, setActivePublicLines] = useState(false);\r\n const [publicLineExpireDateTime, setPublicLineExpireDateTime] = useState();\r\n\r\n\r\n const [ActivePublicLinesModal, setActivePublicLinesModal] = useState(false);\r\n const [lineModal, setlineModal] = useState(false);\r\n const [addLineModal, setAddLineModal] = useState(false);\r\n const [modalData, setmodalData] = useState({});\r\n const [whoisModal, setWhoisModal] = useState(false);\r\n const tableConfig = {\r\n header: {\r\n number: \"شماره خط\",\r\n earnMethodName: \"نوع دریافت\",\r\n statusName: \"وضعیت خط\",\r\n lineTypeText: \"نوع خط\",\r\n providerName: \"ارائه دهنده خدمات\",\r\n createdAt: \"تاریخ ایجاد\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n },\r\n edit: {\r\n icon: 'fa fa-edit',\r\n condition: (data) => {\r\n return data.providerId === 1;\r\n },\r\n }\r\n },\r\n mode: [\"filter\", \"search\"],\r\n filters: [\"datePickerFilter\", \"earnMethod\", \"lineStatus\", \"lineType\"],\r\n };\r\n const tableActions = (items) => {\r\n switch (items.actionName) {\r\n case \"view\":\r\n openUserLineModal(items.data);\r\n break;\r\n case \"edit\":\r\n openUserWhoisModal(items.data);\r\n default:\r\n break;\r\n }\r\n };\r\n const openUserLineModal = (item) => {\r\n // let result = lineData.find((m) => m.id === item);\r\n setlineModal(true);\r\n setmodalData(item);\r\n };\r\n\r\n const openUserWhoisModal = (item) => {\r\n setWhoisModal(true);\r\n setmodalData(item);\r\n }\r\n\r\n const modalChangeHandler = (event) => {\r\n if (event) {\r\n getLines();\r\n }\r\n };\r\n\r\n const getLines = useCallback(() => {\r\n ApiClient.Get(Urls.userLines(match.params.id), ConvertQueryString(location.search))\r\n .then((res) => {\r\n let data = res.result;\r\n let {allowedUsingPublicLine, publicLineExpireDateTime} = data.userPublicLineExpiryInfo;\r\n\r\n data.lines.map((m) => {\r\n m.createdAt = DateConvert(m.createdAt);\r\n m.earnMethodName = EarnMethod(m.earnMethod);\r\n m.statusName = LineStatus(m.status);\r\n m.providerName = GetProvider(m.providerId);\r\n m.lineTypeText = LineTypes(m.lineType);\r\n return m;\r\n });\r\n setlineData(data.lines);\r\n setActivePublicLines(allowedUsingPublicLine)\r\n setPublicLineExpireDateTime(DateConvert(publicLineExpireDateTime))\r\n });\r\n }, [match.params.id, location.search])\r\n\r\n\r\n useEffect(() => {\r\n getLines();\r\n }, [match.params.id, location.search, getLines]);\r\n\r\n const confirmActivition = (value) => {\r\n if (!value) {\r\n setActivePublicLinesModal(true);\r\n } else {\r\n Swal.fire({\r\n text: `آیا از غیر فعال سازی خطوط ویژه اطمینان دارید ؟`,\r\n title: \"احتیاط کن !\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n ApiClient.Delete(Urls.userPublicLinesActivition(match.params.id)).then(\r\n () => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n setActivePublicLines(!ActivePublicLines)\r\n }\r\n ).catch(err => getLines())\r\n }\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n return (\r\n <>\r\n \r\n
    خطوط
    \r\n \r\n در اینجا لیست خطوط این کاربر مورد بررسی قرار می‌گیرد.\r\n \r\n
    \r\n
    \r\n

    \r\n\r\n فعال سازی خطوط\r\n ویژه\r\n\r\n {\r\n ActivePublicLines &&\r\n \r\n (\r\n {publicLineExpireDateTime}\r\n )\r\n \r\n }\r\n

    \r\n confirmActivition(ActivePublicLines)}\r\n />\r\n
    \r\n setAddLineModal(true)}>\r\n افزودن خط\r\n \r\n
    \r\n
    \r\n \r\n setlineModal(false)}\r\n visible={lineModal}\r\n onCancel={() => setlineModal(false)}\r\n headerTitle=\"وضعیت خط\"\r\n >\r\n setlineModal(e)}/>\r\n \r\n setAddLineModal(false)}\r\n visible={addLineModal}\r\n onCancel={() => setAddLineModal(false)}\r\n headerTitle=\"اضافه کردن خط\"\r\n >\r\n setAddLineModal(e)}/>\r\n\r\n \r\n\r\n setWhoisModal(false)}\r\n onCancel={() => setWhoisModal(false)}\r\n visible={whoisModal}\r\n headerTitle=\"whois خط کاربر\"\r\n >\r\n setWhoisModal(e)}/>\r\n \r\n\r\n {ActivePublicLinesModal &&\r\n setActivePublicLinesModal(false)}\r\n visible={ActivePublicLinesModal}\r\n onCancel={() => setActivePublicLinesModal(false)}\r\n headerTitle=\"فعال سازی خطوط ویژه\"\r\n\r\n >\r\n {\r\n let data = {\r\n expireAt: values.publicLineDate\r\n }\r\n ApiClient.Post(Urls.userPublicLinesActivition(match.params.id), JSON.stringify(data)).then(\r\n () => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n setActivePublicLines(!ActivePublicLines)\r\n formikHelpers.resetForm();\r\n formikHelpers.setSubmitting(false);\r\n setActivePublicLinesModal(false);\r\n getLines();\r\n }\r\n )\r\n\r\n\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n فعال تا تاریخ\r\n {\r\n formik.setFieldValue(\"publicLineDate\", event.baseFormat);\r\n }}\r\n min={moment().subtract(0, 'days')}\r\n max={moment().add(1, 'jYear')}\r\n name=\"publicLineDate\"\r\n error={\r\n formik.errors.publicLineDate !== undefined\r\n ? formik.errors.publicLineDate\r\n : false\r\n }\r\n />\r\n\r\n
    \r\n setActivePublicLinesModal(false)}\r\n\r\n >\r\n بستن\r\n \r\n \r\n ثبت\r\n \r\n
    \r\n\r\n \r\n )}\r\n \r\n\r\n \r\n }\r\n\r\n \r\n );\r\n}\r\n\r\nexport default UserLines;\r\n","import React from \"react\";\r\nimport { StyledButton } from \"../../../Component/Kit/Button\";\r\n\r\nconst titleField = {\r\n adminUserName: \"نام ادمین\",\r\n createdAt: \"تاریخ اعمال\",\r\n isSuspensionTitle: \"وضعیت\",\r\n description: \"توضیحات\",\r\n}\r\n\r\nfunction BlockedUserInformation({ data, onCloseModal }) {\r\n return (\r\n <>\r\n
    \r\n
      \r\n {\r\n titleField && data &&\r\n Object.entries(titleField).map(([key, value]) => (\r\n\r\n
    • \r\n
      \r\n {value}: \r\n
      \r\n
      \r\n {data[key]}\r\n
      \r\n
    • \r\n ))\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default BlockedUserInformation;\r\n","import React, { useState } from \"react\";\r\nimport { Formik } from \"formik\";\r\nimport { StyledForm, StyledTextArea } from \"../../../Component/Kit/Form\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport { UserSuspendSchema } from \"../../../Utility/Validation/Schema/UserSuspendSchema\";\r\nimport { StyledButton } from \"../../../Component/Kit/Button\";\r\nimport Swal from \"sweetalert2\";\r\nimport { toast } from 'react-toastify';\r\nimport { useRouteMatch } from \"react-router-dom\";\r\n\r\nfunction BlockActionModal({ data, dataChange, onCloseModal }) {\r\n const [submitLoading, setsubmitLoading] = useState(false);\r\n let match = useRouteMatch();\r\n const blockHandler = (body) => {\r\n setsubmitLoading(true);\r\n Swal.fire({\r\n title: `آیا از ${data ? \"عدم تعلیق کاربر\" : \" تعلیق کاربر\"} کاربر مطمئن هستید؟`,\r\n text: \"اگه فکر می‌کنی درسته، پس حتماً انجامش بده!!\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Patch(data ? Urls.userUnsuspend(match.params.id) : Urls.userSuspend(match.params.id), body).then(() => {\r\n setsubmitLoading(false);\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n dataChange(true);\r\n });\r\n }\r\n })\r\n\r\n };\r\n return (\r\n <>\r\n {\r\n blockHandler(JSON.stringify(values.suspendDescription));\r\n values.suspendDescription = ''\r\n }}\r\n onReset={(values, formikBag) => {\r\n onCloseModal(false)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n {\r\n const str = e.target.value.trim() !== '' ? e.target.value : ''\r\n formik.setFieldValue(\"suspendDescription\", str)\r\n }}\r\n />\r\n
    \r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n \r\n {data ? \"عدم تعلیق کاربر\" : \" تعلیق کاربر\"}\r\n \r\n
    \r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default BlockActionModal;\r\n","import React, {useState, useEffect, useCallback} from \"react\";\r\nimport {useRouteMatch} from \"react-router-dom\";\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport {PageTitleLayout} from \"../../../Component/Kit/Layout\";\r\nimport {StyledButton} from \"../../../Component/Kit/Button\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport Modal from \"../../../Component/Kit/Modal\";\r\nimport BlockedUserInformation from \"./blocked-user-information\";\r\nimport BlockActionModal from \"./block-action-modal\";\r\n\r\nfunction UserBlock() {\r\n let match = useRouteMatch();\r\n const [blockList, setblockList] = useState([]);\r\n const [isBlock, setisBlock] = useState(false);\r\n const [detailsModal, setdetailsModal] = useState(false);\r\n const [suspendAction, setsuspendAction] = useState(false);\r\n const [modalData, setmodalData] = useState({});\r\n const tableConfig = {\r\n header: {\r\n description: \"توضیحات\",\r\n adminUserName: \"نام ادمین\",\r\n isSuspensionTitle: \"نوع عملیات\",\r\n createdAt: \"تاریخ ایجاد\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n },\r\n },\r\n };\r\n const tableActions = (item) => {\r\n switch (item.actionName) {\r\n case \"view\":\r\n setdetailsModal(true);\r\n // let rowData = blockList.find((m) => m.id === item.userId);\r\n setmodalData(item.data);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n const suspendHandler = (event) => {\r\n if (event) {\r\n getSuspend()\r\n setsuspendAction(false);\r\n }\r\n };\r\n const getSuspend = useCallback(() => {\r\n ApiClient.Get(Urls.userSuspentionLog(match.params.id)).then((res) => {\r\n let data = res.result;\r\n data.map((m, i) => {\r\n m.id = i + 1;\r\n m.createdAt = DateConvert(m.createdAt);\r\n m.isSuspensionTitle = m.isSuspension ? \"Block\" : \"Unblock\";\r\n return m;\r\n });\r\n if (data.length) {\r\n setisBlock(data[data.length - 1].isSuspension);\r\n } else {\r\n setisBlock(false);\r\n }\r\n setblockList(data);\r\n });\r\n }, [match.params.id])\r\n\r\n useEffect(() => {\r\n getSuspend();\r\n }, [match.params.id, getSuspend]);\r\n\r\n return (\r\n <>\r\n \r\n
    مسدود سازی کاربر
    \r\n \r\n در اینجا می‌توانید کاربر مورد نظر را بلاک یا آنبلاک نمایید.\r\n \r\n
    \r\n
    \r\n setsuspendAction(true)}\r\n >\r\n {isBlock ? \"عدم تعلیق کاربر\" : \"تعلیق کاربر\"}\r\n \r\n
    \r\n \r\n\r\n setdetailsModal(false)}\r\n onCancel={() => setdetailsModal(false)}\r\n visible={detailsModal}\r\n headerTitle=\"توضیحات\"\r\n >\r\n setdetailsModal(e)}/>\r\n \r\n\r\n setsuspendAction(false)}\r\n onCancel={() => setsuspendAction(false)}\r\n visible={suspendAction}\r\n headerTitle= {isBlock ? \"عدم تعلیق کاربر\" : \"تعلیق کاربر\"}\r\n >\r\n setsuspendAction(e)}/>\r\n \r\n \r\n );\r\n}\r\n\r\nexport default UserBlock;\r\n","import React from \"react\";\r\nimport { StyledButton } from \"../../../Component/Kit/Button\";\r\n\r\nfunction CommentView({ data, onCloseModal }) {\r\n\r\n const titleField = {\r\n adminUserName: \"نام ادمین\",\r\n createdAt: \"تاریخ ایجاد\",\r\n forGuest: \"ثبت در وضعیت\",\r\n content: \"متن\",\r\n }\r\n\r\n return (\r\n <>\r\n
    \r\n
      \r\n {\r\n titleField && data &&\r\n Object.entries(titleField).map(([key, value]) => (\r\n
    • \r\n
      \r\n {value}: \r\n
      \r\n
      \r\n {data[key]}\r\n
      \r\n
    • \r\n ))\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default CommentView;\r\n","import { commentDescription } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const UserCommentSchema = Yup.object().shape({\r\n commentDescription,\r\n});\r\n","import React, { useState } from \"react\";\r\nimport { Formik } from \"formik\";\r\nimport { StyledForm, StyledTextArea } from \"../../../Component/Kit/Form\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport { UserCommentSchema } from \"../../../Utility/Validation/Schema/UserCommentSchema\";\r\nimport { StyledButton } from \"../../../Component/Kit/Button\";\r\nimport Swal from \"sweetalert2\";\r\nimport { useRouteMatch } from \"react-router-dom\";\r\nimport { toast } from 'react-toastify';\r\n\r\nfunction AddCommentModal({ dataChange, onCloseModal }) {\r\n const [submitLoading, setsubmitLoading] = useState(false);\r\n let match = useRouteMatch();\r\n const commentHandler = (body) => {\r\n setsubmitLoading(true);\r\n Swal.fire({\r\n title: `آیا از ایجاد این نظر مطمئن هستید؟`,\r\n text: \"بعد از ثبت نظر شما قابل حذف نیست! \",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Post(Urls.userComments(match.params.id), body)\r\n .then(res => {\r\n setsubmitLoading(false);\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n dataChange(true);\r\n })\r\n }\r\n })\r\n\r\n };\r\n return (\r\n <>\r\n {\r\n commentHandler(JSON.stringify(values.commentDescription));\r\n // values.commentDescription = ''\r\n actions.resetForm();\r\n }}\r\n onReset={(values, formikBag) => {\r\n onCloseModal(false)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n {\r\n const str = e.target.value.trim() !== '' ? e.target.value : ''\r\n formik.setFieldValue(\"commentDescription\", str)\r\n }}\r\n onReset={(values, formikBag) => {\r\n onCloseModal(false)\r\n }}\r\n />\r\n\r\n
    \r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n \r\n اضافه کردن کامنت\r\n \r\n
    \r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default AddCommentModal;\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { useRouteMatch } from \"react-router-dom\";\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport { PageTitleLayout } from \"../../../Component/Kit/Layout\";\r\nimport { StyledButton } from \"../../../Component/Kit/Button\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport Modal from \"../../../Component/Kit/Modal\";\r\nimport CommentView from \"./comment-view\";\r\nimport AddCommentModal from \"./add-comment-modal\";\r\n\r\nfunction UserComments() {\r\n let match = useRouteMatch();\r\n const [commentsList, setcommentsList] = useState([]);\r\n const [detailsModal, setdetailsModal] = useState(false);\r\n const [addCommnetModal, setaddCommnetModal] = useState(false);\r\n const [modalData, setmodalData] = useState({});\r\n const tableConfig = {\r\n header: {\r\n content: \"متن\",\r\n adminUserName: \"نام ادمین\",\r\n createdAt: \"تاریخ ایجاد\",\r\n forGuest: \"ثبت در وضعیت\"\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n },\r\n },\r\n };\r\n const tableActions = (item) => {\r\n switch (item.actionName) {\r\n case \"view\":\r\n setdetailsModal(true);\r\n // let rowData = commentsList.find((m) => m.id === item.userId);\r\n setmodalData(item.data);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n const commentsHandler = (event) => {\r\n if (event) {\r\n getComments()\r\n setaddCommnetModal(false);\r\n }\r\n };\r\n const getComments = useCallback(() => {\r\n ApiClient.Get(Urls.userComments(match.params.id))\r\n .then((res) => {\r\n let data = res.result;\r\n data.map((m, i) => {\r\n m.id = i + 1;\r\n m.forGuest = m.forGuest ? 'مهمان' : 'کاربر';\r\n m.createdAt = DateConvert(m.createdAt);\r\n return m;\r\n });\r\n\r\n setcommentsList(data);\r\n });\r\n }, [match.params.id])\r\n useEffect(() => {\r\n getComments();\r\n }, [match.params.id, getComments]);\r\n return (\r\n <>\r\n \r\n
    نظرات کاربر
    \r\n \r\n در اینجا لیست نظرات کاربر این کاربر مورد بررسی قرار می‌گیرد.\r\n \r\n
    \r\n
    \r\n setaddCommnetModal(true)}\r\n >\r\n ایجاد نظر جدید\r\n \r\n
    \r\n \r\n\r\n setdetailsModal(false)}\r\n onCancel={() => setdetailsModal(false)}\r\n visible={detailsModal}\r\n headerTitle=\"کامنت\"\r\n >\r\n setdetailsModal(e)} />\r\n \r\n\r\n setaddCommnetModal(false)}\r\n onCancel={() => setaddCommnetModal(false)}\r\n visible={addCommnetModal}\r\n headerTitle=\"اضافه کردن کامنت\"\r\n >\r\n setaddCommnetModal(e)} />\r\n \r\n \r\n );\r\n}\r\n\r\nexport default UserComments;\r\n","import React from \"react\";\r\nimport { StyledButton } from \"../../../Component/Kit/Button\";\r\nimport Swal from \"sweetalert2\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport { toast } from \"react-toastify\";\r\nimport { Formik } from \"formik\";\r\nimport { StyledForm, StyledTextArea } from \"../../../Component/Kit/Form\";\r\nimport { FastSendTemplateRejectSchema } from \"../../../Utility/Validation/Schema/FastSendTemplateRejectSchema\";\r\n\r\nconst fastSendTemlateModalTitle = {\r\n title: \"عنوان قالب\",\r\n verifyStatusName: \"وضعیت قالب\",\r\n createdAt: \"تاریخ ایجاد\",\r\n templateText: \"متن قالب\",\r\n}\r\n\r\nfunction UserFastSendTemplateView({\r\n data, dataChange, modalReject,\r\n rejectHandler, onCloseModal\r\n}) {\r\n const acceptHandler = () => {\r\n Swal.fire({\r\n title: \"از تایید این قالب مطمئن هستید؟\",\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n ApiClient.Put(Urls.putFastSendTemplates(data.id), { status: 2 }).then(res => {\r\n dataChange(true)\r\n toast.success(\"تغییرات با موفقیت ثبت شد.\");\r\n })\r\n }\r\n })\r\n }\r\n const templateHandler = item => {\r\n if (item === 3) {\r\n acceptHandler()\r\n } else if (item === 2) {\r\n rejectHandler(true)\r\n }\r\n }\r\n return (\r\n <>\r\n {modalReject ? (\r\n {\r\n Swal.fire({\r\n title: \"آیا مطمئن هستید؟\",\r\n text: \" \",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n ApiClient.Put(Urls.putFastSendTemplates(data.id), {\r\n status: 3,\r\n description: values.fastSendTemplateRejectDescription\r\n }).then(res => {\r\n dataChange(true);\r\n toast.success(\"تغییرات با موفقیت ثبت شد.\");\r\n })\r\n }\r\n })\r\n }}\r\n onReset={(values, formikBag) => {\r\n onCloseModal(false)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n {\r\n const str = e.target.value.trim() !== '' ? e.target.value : '';\r\n formik.setFieldValue(\"fastSendTemplateRejectDescription\", str)\r\n }}\r\n />\r\n
    \r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n \r\n عدم تایید\r\n \r\n
    \r\n \r\n )}\r\n \r\n ) : (\r\n <>\r\n
    \r\n
      \r\n {\r\n fastSendTemlateModalTitle && data &&\r\n Object.entries(fastSendTemlateModalTitle).map(([key, value]) => (\r\n\r\n
    • \r\n
      \r\n {value}: \r\n
      \r\n
      \r\n {data[key]}\r\n
      \r\n
    • \r\n ))\r\n }\r\n
    \r\n
    \r\n \r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n {data.verifyStatus === 1 ? (\r\n <>\r\n {\r\n rejectHandler(true)\r\n }}>\r\n عدم تایید\r\n \r\n acceptHandler()}>\r\n تایید\r\n \r\n \r\n ) : (\r\n <>\r\n templateHandler(data.verifyStatus)}>\r\n {data.verifyStatus === 2 ? \"عدم تایید\" : \"تایید\"}\r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default UserFastSendTemplateView;\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { useLocation, useRouteMatch } from \"react-router-dom\";\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport { PageTitleLayout } from \"../../../Component/Kit/Layout\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport { VerifyStatusService } from \"../../../Utility/Services/fast-send-template\";\r\nimport Modal from \"../../../Component/Kit/Modal\";\r\nimport UserFastSendTemplateView from \"./user-fast-send-view\";\r\nimport { ConvertQueryString } from \"../../../Utility/Services/convert-query-string\";\r\n\r\nfunction UserCustomNotifications() {\r\n let match = useRouteMatch();\r\n let location = useLocation();\r\n const [templateList, settemplateList] = useState({});\r\n const [isModal, setIsModal] = useState(false);\r\n const [modalData, setModalData] = useState({});\r\n const [isReject, setIsReject] = useState(false)\r\n const tableConfig = {\r\n header: {\r\n title: \"عنوان\",\r\n id: \"شناسه قالب\",\r\n verifyStatusName: \"وضعیت قالب\",\r\n createdAt: \"تاریخ ایجاد\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n },\r\n },\r\n mode: [\"filter\", \"search\"],\r\n filters: [\"datePickerFilter\", \"templateStatus\"],\r\n };\r\n\r\n const tableActions = (item) => {\r\n if (item.actionName === 'view') {\r\n // let data = templateList.items.find(m => m.id === item.userId)\r\n setModalData(item.data);\r\n setIsModal(true)\r\n }\r\n };\r\n const modalDataChange = (item) => {\r\n if (item) getUserFastSendTemplate()\r\n }\r\n const getUserFastSendTemplate = useCallback(() => {\r\n ApiClient.Get(Urls.userFastSendTemplate(match.params.id), ConvertQueryString(location.search))\r\n .then((res) => {\r\n let data = res.result;\r\n data.items.map((m) => {\r\n m.createdAt = DateConvert(m.createdAt);\r\n m.verifyStatusName = VerifyStatusService(m.verifyStatus);\r\n return m\r\n });\r\n settemplateList(data);\r\n });\r\n }, [match.params.id, location.search])\r\n useEffect(() => {\r\n getUserFastSendTemplate()\r\n }, [match.params.id, location.search, getUserFastSendTemplate]);\r\n return (\r\n <>\r\n \r\n
    قالب های ارسال سریع
    \r\n شما می‌توانید قالب های ارسال سریع مخصوص این کاربر را ایجاد نمایید.\r\n
    \r\n\r\n \r\n {\r\n setIsModal(false)\r\n setIsReject(false)\r\n }}\r\n onCancel={() => {\r\n setIsModal(false)\r\n setIsReject(false)\r\n }}\r\n visible={isModal}\r\n >\r\n setIsReject(event)}\r\n\r\n onCloseModal={(e) => {\r\n setIsModal(e);\r\n setIsReject(e)\r\n }} />\r\n \r\n \r\n );\r\n}\r\n\r\nexport default UserCustomNotifications;\r\n","import { notificationTitle, notificationContent } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const UserNotificationSchema = Yup.object().shape({\r\n notificationTitle,\r\n notificationContent\r\n});\r\n","import React, { useState } from \"react\";\r\nimport { Formik } from \"formik\";\r\nimport {\r\n StyledForm,\r\n StyledTextArea,\r\n StyledInput,\r\n} from \"../../../Component/Kit/Form\";\r\nimport { toast } from 'react-toastify';\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport { UserNotificationSchema } from \"../../../Utility/Validation/Schema/UserNotificationSchema\";\r\nimport { StyledButton } from \"../../../Component/Kit/Button\";\r\nimport Swal from \"sweetalert2\";\r\nimport { useRouteMatch } from \"react-router-dom\";\r\n\r\nfunction AddCustomNotification({ dataChange, onCloseModal }) {\r\n let match = useRouteMatch();\r\n const [submitLoading, setsubmitLoading] = useState(false);\r\n\r\n const addNotification = async (body) => {\r\n setsubmitLoading(true);\r\n await Swal.fire({\r\n title: `آیا مطمئن هستید؟`,\r\n text: \"این اعلان برای کاربر ارسال می‌شود. احتیاط کن!!\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Post(Urls.userCustomNotification(match.params.id), body).then(() => {\r\n setsubmitLoading(false);\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n dataChange(true);\r\n })\r\n\r\n }\r\n })\r\n };\r\n return (\r\n <>\r\n {\r\n let body = {\r\n title: values.notificationTitle,\r\n content: values.notificationContent,\r\n };\r\n addNotification(body);\r\n actions.resetForm();\r\n }}\r\n onReset={(values, formikBag) => {\r\n onCloseModal(false)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n \r\n formik.setFieldValue(\"notificationTitle\", e.target.value)\r\n }\r\n />\r\n\r\n {\r\n const str = e.target.value.trim() !== '' ? e.target.value : ''\r\n formik.setFieldValue(\"notificationContent\", str)\r\n }}\r\n />\r\n
    \r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n \r\n ارسال اعلان\r\n \r\n
    \r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default AddCustomNotification;\r\n","import React from \"react\";\r\nimport { StyledButton } from \"../../../Component/Kit/Button\";\r\n\r\nconst notificationTitle = {\r\n title: \"عنوان اعلان\",\r\n createdAt: \"تاریخ\",\r\n isReadTitle: \"وضعیت\",\r\n content: \"توضیحات\",\r\n}\r\n\r\nfunction NotificationView({ data, onCloseModal }) {\r\n return (\r\n <>\r\n
    \r\n
      \r\n {\r\n notificationTitle && data &&\r\n Object.entries(notificationTitle).map(([key, value]) => (\r\n\r\n
    • \r\n
      \r\n {value}: \r\n
      \r\n
      \r\n {data[key]}\r\n
      \r\n
    • \r\n ))\r\n }\r\n
    \r\n
    \r\n
    \r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default NotificationView;\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { useLocation, useRouteMatch } from \"react-router-dom\";\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport { PageTitleLayout } from \"../../../Component/Kit/Layout\";\r\nimport { StyledButton } from \"../../../Component/Kit/Button\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport Modal from \"../../../Component/Kit/Modal\";\r\nimport AddCustomNotification from \"./add-custom-notification\";\r\nimport NotificationView from \"./notification-view\";\r\nimport Swal from \"sweetalert2\";\r\nimport { toast } from 'react-toastify';\r\nimport { ConvertQueryString } from \"../../../Utility/Services/convert-query-string\";\r\n\r\nfunction UserFastSendTemplates() {\r\n let match = useRouteMatch();\r\n let location = useLocation();\r\n const [notificationList, setnotificationList] = useState({});\r\n const [modalDetail, setmodalDetail] = useState({});\r\n const [addNotifModal, setaddNotifModal] = useState(false);\r\n const [notifDetailModal, setnotifDetailModal] = useState(false);\r\n const tableConfig = {\r\n header: {\r\n title: \"عنوان\",\r\n createdAt: \"تاریخ ایجاد\",\r\n startDate: \"تاریخ شروع\",\r\n endDate: \"تاریخ پایان\",\r\n isReadTitle: \"وضعیت\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n },\r\n delete: {\r\n icon: \"fa fa-trash\",\r\n },\r\n },\r\n mode: [\"filter\", \"search\"],\r\n filters: [\"datePickerFilter\", \"isRead\"],\r\n };\r\n\r\n const tableActions = (item) => {\r\n switch (item.actionName) {\r\n case \"view\":\r\n // let rowDetails = notificationList.items.find(\r\n // (m) => m.id === item.userId\r\n // );\r\n setmodalDetail(item.data);\r\n setnotifDetailModal(true);\r\n break;\r\n case \"delete\":\r\n deleteNotification(item.data.id)\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n };\r\n const deleteNotification = (notificationId) => {\r\n Swal.fire({\r\n title: `آیا مطمئن هستید؟`,\r\n text: \"ممکن است کاربر دیده باشد. احتیاط کنید!!\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Delete(Urls.customNotification(match.params.id, notificationId)).then(() => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n getNotification();\r\n })\r\n }\r\n })\r\n }\r\n const notificationHandler = (event) => {\r\n if (event) {\r\n setaddNotifModal(false)\r\n getNotification();\r\n }\r\n };\r\n const getNotification = useCallback(() => {\r\n ApiClient.Get(Urls.userCustomNotification(match.params.id), ConvertQueryString(location.search))\r\n .then((res) => {\r\n let data = res.result;\r\n data.items.map((m) => {\r\n m.createdAt = DateConvert(m.createdAt);\r\n m.isReadTitle = m.isRead ? \"خوانده شده\" : \"خوانده نشده\";\r\n m.startDate = m.startDate ? DateConvert(m.startDate) : \"----\";\r\n m.endDate = m.endDate ? DateConvert(m.endDate) : \"----\";\r\n return m;\r\n });\r\n setnotificationList(data);\r\n });\r\n }, [match.params.id, location.search])\r\n\r\n useEffect(() => {\r\n getNotification();\r\n }, [match.params.id, location.search, getNotification]);\r\n return (\r\n <>\r\n \r\n
    اعلان‌های ادمینی
    \r\n \r\n شما می‌توانید اعلان‌های مخصوص این کاربر را ایجاد نمایید.\r\n \r\n
    \r\n
    \r\n setaddNotifModal(true)}\r\n >\r\n ایجاد اعلان جدید\r\n \r\n
    \r\n \r\n\r\n setnotifDetailModal(false)}\r\n onCancel={() => setnotifDetailModal(false)}\r\n visible={notifDetailModal}\r\n headerTitle=\"نمایش اعلان\"\r\n >\r\n setnotifDetailModal(e)} />\r\n \r\n\r\n setaddNotifModal(false)}\r\n onCancel={() => setaddNotifModal(false)}\r\n visible={addNotifModal}\r\n headerTitle=\"اضافه کردن اعلان\"\r\n >\r\n setaddNotifModal(e)} />\r\n \r\n \r\n );\r\n}\r\n\r\nexport default UserFastSendTemplates;\r\n","import { creditCount ,description, basePrice } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const AccountRechargeSchema = Yup.object().shape({\r\n creditCount,\r\n description,\r\n basePrice\r\n});\r\n","import { Formik } from 'formik';\r\nimport React, { useState } from 'react'\r\nimport { useEffect } from 'react';\r\nimport { useRouteMatch } from 'react-router';\r\nimport { toast } from 'react-toastify';\r\nimport { StyledButton } from '../../../../Component/Kit/Button';\r\nimport { StyledForm, StyledInput, StyledSelect, StyledTextArea } from '../../../../Component/Kit/Form';\r\nimport Modal from '../../../../Component/Kit/Modal';\r\nimport ApiClient from '../../../../Requester/ApiClient';\r\nimport Urls from '../../../../Requester/Urls';\r\nimport { AccountRechargeSchema } from '../../../../Utility/Validation/Schema/AccountRechargeSchema';\r\n\r\nconst AccountRechargeModal = (props) => {\r\n const { visible, setVisible, onCancel, onClose } = props;\r\n let match = useRouteMatch();\r\n let userId = match.params.id;\r\n\r\n const [basePrice, setBasePrice] = useState([]);\r\n useEffect(() => {\r\n if (visible) {\r\n ApiClient.Get(Urls.GetCreditTier())\r\n .then(res => {\r\n let temp = [];\r\n res.result.map((item) => {\r\n temp = [...temp, { name: item.basePrice, value: item.id }];\r\n return false\r\n })\r\n setBasePrice(temp);\r\n })\r\n }\r\n }, [visible]);\r\n\r\n return (\r\n \r\n
    \r\n
    سیلی نقد به از حلوای نسیه
    \r\n\r\n
    \r\n {\r\n const basePriceValue = basePrice.find((item) => item.value === +values.basePrice).name;\r\n const dataBody = {\r\n \"credit\": parseFloat(values.creditCount),\r\n \"description\": values.description,\r\n \"basePrice\": basePriceValue,\r\n \"userId\": parseFloat(userId)\r\n }\r\n ApiClient.Post(Urls.AddCreditLend(), dataBody)\r\n .then((res) => {\r\n toast.success('افزایش اعتبار قرضی با موفقیت انجام شد!')\r\n setVisible(false);\r\n actions.resetForm();\r\n })\r\n .catch(err => actions.resetForm())\r\n }}\r\n onReset={(values, formikBag) => {\r\n setVisible(false);\r\n }}\r\n >\r\n\r\n {(formik) => (\r\n \r\n formik.setFieldValue(\"creditCount\", e.target.value)}\r\n />\r\n\r\n formik.setFieldValue(\"basePrice\", e.target.value)}\r\n />\r\n\r\n {\r\n const str = e.target.value.trim() !== '' ? e.target.value : '';\r\n formik.setFieldValue(\"description\", str)\r\n }}\r\n />\r\n\r\n
    \r\n \r\n افزایش شارژ حساب\r\n \r\n\r\n \r\n انصراف\r\n \r\n
    \r\n\r\n \r\n )}\r\n \r\n
    \r\n\r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default AccountRechargeModal;\r\n","import {creditProfitPercent, lineProfitPercent} from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const CooperationProfitPercentSchema = Yup.object().shape({\r\n lineProfitPercent,\r\n creditProfitPercent,\r\n});\r\n","import { Formik } from 'formik';\r\nimport React, {useEffect, useState} from 'react'\r\nimport { useRouteMatch } from 'react-router';\r\nimport { toast } from 'react-toastify';\r\nimport { StyledButton } from '../../../../Component/Kit/Button';\r\nimport { StyledForm, StyledInput } from '../../../../Component/Kit/Form';\r\nimport Modal from '../../../../Component/Kit/Modal';\r\nimport ApiClient from '../../../../Requester/ApiClient';\r\nimport Urls from '../../../../Requester/Urls';\r\nimport {CooperationProfitPercentSchema} from \"../../../../Utility/Validation/Schema/CooperationProfitPercentSchema\";\r\n\r\nconst CooperationProfitModal = (props) => {\r\n\r\n const { visible, setVisible, onCancel, profitPercent , onClose ,onsubmit } = props;\r\n let match = useRouteMatch();\r\n let userId = match.params.id;\r\n return (\r\n \r\n
    \r\n\r\n
    \r\n {\r\n if (values.lineProfitPercent != profitPercent.cooperationLineProfitPercent){\r\n ApiClient.Patch(Urls.changeCooperationLineProfitPercent(userId), JSON.stringify(values.lineProfitPercent))\r\n .then((res) => {\r\n toast.success('تغییر درصد سود خرید خط کاربر با موفقیت انجام شد!')\r\n setVisible(false);\r\n onsubmit()\r\n actions.setSubmitting(false)\r\n })\r\n .catch(err => actions.resetForm())\r\n }\r\n if (values.creditProfitPercent != profitPercent.cooperationCreditProfitPercent){\r\n ApiClient.Patch(Urls.changeCooperationCreditProfitPercent(userId), JSON.stringify(values.creditProfitPercent))\r\n .then((res) => {\r\n toast.success('تغییر درصد سود خرید اعتبار کاربر با موفقیت انجام شد!')\r\n setVisible(false);\r\n onsubmit();\r\n actions.setSubmitting(false)\r\n })\r\n .catch(err => actions.resetForm())\r\n }\r\n }}\r\n onReset={(values, formikBag) => {\r\n setVisible(false);\r\n }}\r\n >\r\n\r\n {(formik) => (\r\n \r\n formik.setFieldValue(\"lineProfitPercent\", e.target.value)}\r\n />\r\n\r\n formik.setFieldValue(\"creditProfitPercent\", e.target.value)}\r\n />\r\n\r\n
    \r\n \r\n تایید\r\n \r\n\r\n \r\n انصراف\r\n \r\n
    \r\n\r\n \r\n )}\r\n \r\n
    \r\n\r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default CooperationProfitModal;\r\n","import React, {useCallback, useEffect, useState} from \"react\";\r\nimport * as Yup from \"yup\";\r\nimport {Formik} from 'formik';\r\nimport {StyledForm, StyledInput, StyledRadioBtn, StyledSelect, StyledTextArea} from \"../../../../Component/Kit/Form\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport {toast} from \"react-toastify\";\r\nimport {useRouteMatch} from \"react-router-dom\";\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\n\r\nconst specialRegex = /^[1-9]\\d*(\\.\\d{1})?$/;\r\nconst baseSchema = {\r\n creditCount: Yup.string()\r\n .required(\"این فیلد الزامی است.\")\r\n .matches(specialRegex, \"مقدار وارد شده نا معتبر است. (تا یک رقم اعشار و کاراکتر اول غیر صفر باشد)\")\r\n .test(\r\n 'creditCount',\r\n 'مقدار وارد شده بیش از حد مجاز است. (حد مجاز: 2,000,000)',\r\n value => {\r\n const userInput = parseFloat(value);\r\n return (userInput <= 2000000)\r\n }\r\n )\r\n\r\n .label(\"creditCount\"),\r\n\r\n description: Yup.string()\r\n .label(\"description\")\r\n .required(\"این فیلد الزامی است.\"),\r\n\r\n}\r\nexport const CreditTransferModal = ({visible, setVisible, onCancel, onClose, onsubmit, dedicatedPrice}) => {\r\n\r\n\r\n let match = useRouteMatch();\r\n const [currentCredit, setCurrentCredit] = useState(0)\r\n const [submitLoading, setSubmitLoading] = useState(false);\r\n const [formType, setFormType] = useState(true)\r\n const [basePrice, setBasePrice] = useState([]);\r\n const [schema, setSchema] = useState(() => {\r\n return dedicatedPrice ? {\r\n ...baseSchema\r\n } : {\r\n ...baseSchema,\r\n basePrice: Yup.string()\r\n .when(\"typeTransfer\", {\r\n is: true,\r\n then: Yup.string()\r\n .label(\"basePrice\")\r\n .required(\"این فیلد الزامی است.\")\r\n }),\r\n }\r\n })\r\n\r\n\r\n const getData = useCallback(async () => {\r\n try {\r\n let userCredit = await ApiClient.Get(Urls.GetUserCreditCount(match.params.id));\r\n setCurrentCredit(userCredit.result)\r\n\r\n let creditTier = await ApiClient.Get(Urls.GetCreditTier());\r\n let temp = [];\r\n creditTier.result.map((item) => {\r\n temp = [...temp, {name: item.basePrice, value: item.id}];\r\n return false\r\n })\r\n setBasePrice(temp)\r\n\r\n } catch (err) {\r\n }\r\n }, [match.params.id])\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [getData]);\r\n\r\n return (\r\n <>\r\n \r\n\r\n {\r\n setSubmitLoading(true)\r\n let creditCount = Math.abs(values.creditCount);\r\n if (!values.typeTransfer) {\r\n creditCount = -creditCount;\r\n }\r\n let body = {\r\n creditCount,\r\n description: values.description\r\n };\r\n\r\n if (values.typeTransfer) {\r\n const basePriceValue = dedicatedPrice ? null : basePrice.find((item) => item.value === +values.basePrice).name;\r\n body = {...body, basePrice: basePriceValue}\r\n }\r\n ApiClient.Post(Urls.creditTransfer(match.params.id), JSON.stringify(body))\r\n .then((res) => {\r\n toast.success(values.typeTransfer ? 'افزایش اعتبار با موفقیت انجام شد!' : 'کاهش اعتبار با موفقیت انجام شد!')\r\n onsubmit();\r\n })\r\n .catch(() => actions.resetForm())\r\n .finally(() => {\r\n setSubmitLoading(false)\r\n setVisible(false);\r\n })\r\n }}\r\n onReset={() => {\r\n setVisible(false);\r\n // setFormType(true)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
    \r\n
    \r\n formik.setFieldValue(\"creditCount\", e.target.value)}\r\n />\r\n
    \r\n
    \r\n {\r\n if (currentCredit !== 0) {\r\n formik.setFieldValue(\"creditCount\", currentCredit.toFixed(1))\r\n }\r\n }\r\n }>اعتبار فعلی: {currentCredit}\r\n\r\n {\r\n dedicatedPrice &&\r\n تعرفه اختصاصی فعلی: {dedicatedPrice}\r\n }\r\n
    \r\n\r\n
    \r\n {formik.values.typeTransfer && dedicatedPrice < 1 &&\r\n\r\n\r\n
    \r\n
    \r\n formik.setFieldValue(\"basePrice\", e.target.value)}\r\n />\r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n {\r\n formik.setFieldValue(\"typeTransfer\", (e.target.value === 'true'))\r\n setFormType((e.target.value === 'true'))\r\n }}\r\n />\r\n
    \r\n
    \r\n {\r\n formik.setFieldValue(\"typeTransfer\", (e.target.value === 'true'))\r\n setFormType((e.target.value === 'true'))\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n const str = e.target.value.trim() !== '' ? e.target.value : '';\r\n formik.setFieldValue(\"description\", str)\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n ثبت اعتبار\r\n \r\n\r\n \r\n انصراف\r\n \r\n
    \r\n \r\n\r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n","import {dedicatedBasePrice} from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const DedicatedBasePriceSchema = Yup.object().shape({\r\n dedicatedBasePrice,\r\n});\r\n","import { Formik } from \"formik\";\r\nimport React, { useCallback, useEffect, useState } from \"react\";\r\nimport { useRouteMatch } from \"react-router-dom\";\r\nimport { toast } from \"react-toastify\";\r\nimport { StyledButton } from \"../../../../Component/Kit/Button\";\r\nimport { StyledForm, StyledSelect, StyledSwitchBox } from \"../../../../Component/Kit/Form\";\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport { DedicatedBasePriceSchema } from \"../../../../Utility/Validation/Schema/DedicatedBasePriceSchema\";\r\n\r\nconst DedicatedUserBasePriceModal = (props) => {\r\n const { visible, setVisible, onCancel, baseId, onClose, onsubmit } = props;\r\n const [dedicatedBasePriceList, setDedicatedBasePriceList] = useState([]);\r\n const [dedicatedBasePriceDefault, setDedicatedBasePriceDefault] = useState(false);\r\n const match = useRouteMatch();\r\n const userId = match.params.id;\r\n\r\n const getDedicatedBasePriceList = useCallback(() => {\r\n ApiClient.Get(Urls.DedicatedBasePrice())\r\n .then(res => {\r\n setDedicatedBasePriceList(res.result.map(item => ({ value: item.id, name: item.basePrice })))\r\n })\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (visible) {\r\n setDedicatedBasePriceDefault(!Boolean(baseId));\r\n getDedicatedBasePriceList();\r\n }\r\n }, [baseId, getDedicatedBasePriceList, visible]);\r\n\r\n const removeBasePrice = () => {\r\n ApiClient.Delete(Urls.dedicatedUserBasePrice(userId))\r\n .then((res) => {\r\n if (res) {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n setVisible(false);\r\n onClose(false);\r\n onsubmit();\r\n }\r\n })\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n {\r\n if (dedicatedBasePriceDefault) {\r\n removeBasePrice();\r\n } else {\r\n ApiClient.Post(Urls.dedicatedUserBasePrice(userId), Number(values.dedicatedBasePrice))\r\n .then((res) => {\r\n if (res) {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n setVisible(false);\r\n actions.resetForm();\r\n onsubmit();\r\n }\r\n })\r\n .catch().finally(() => {\r\n actions.setSubmitting(false)\r\n })\r\n }\r\n\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
    \r\n

    مبلغ تعرفه اختصاصی بصورت پیشفرض

    \r\n setDedicatedBasePriceDefault(e.target.checked)}\r\n />\r\n
    \r\n {\r\n !dedicatedBasePriceDefault &&\r\n formik.setFieldValue(\"dedicatedBasePrice\", e.target.value)}\r\n />\r\n }\r\n\r\n
    \r\n \r\n تایید\r\n \r\n\r\n setVisible(false)}\r\n >\r\n انصراف\r\n \r\n
    \r\n\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default DedicatedUserBasePriceModal;","import {Formik} from \"formik\";\r\nimport React, {useCallback, useEffect, useState} from \"react\";\r\nimport {useRouteMatch} from \"react-router-dom\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport {StyledForm, StyledSelect, StyledSwitchBox} from \"../../../../Component/Kit/Form\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport * as Yup from \"yup\";\r\nimport {Loader} from \"../../../../Component/Shared/Loader\";\r\nimport {toast} from \"react-toastify\";\r\n\r\nconst OfficialPaymentStatusModal = (props) => {\r\n const match = useRouteMatch();\r\n const userId = match.params.id;\r\n const {onClose, onSubmit} = props;\r\n const [data, setData] = useState(null);\r\n\r\n const options = [\r\n {\r\n name: \"رسمی\",\r\n value: 'true'\r\n },\r\n {\r\n name: \"غیر رسمی\",\r\n value: 'false'\r\n },\r\n {\r\n name: \"رسمی - غیر رسمی\",\r\n value: 'null'\r\n },\r\n ]\r\n const conversionMap = {\r\n \"true\": true,\r\n \"false\": false,\r\n \"null\": null\r\n };\r\n\r\n const getOfficialPayment = useCallback(() => {\r\n ApiClient.Get(Urls.officialPayment(userId))\r\n .then(res => {\r\n const data = {\r\n officialPaymentStatus: String(res.result.officialPaymentStatus),\r\n allowOfficialPaymentChoice: res.result.allowOfficialPaymentChoice,\r\n }\r\n setData(data);\r\n })\r\n }, [userId]);\r\n\r\n\r\n useEffect(() => {\r\n getOfficialPayment();\r\n }, [getOfficialPayment]);\r\n\r\n const onChangeSwitch = (formik) => {\r\n if(!formik.values.allowOfficialPaymentChoice === true) return;\r\n if(formik.values.officialPaymentStatus === 'null') {\r\n formik.setFieldValue(\"officialPaymentStatus\", 'true')\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {data ?\r\n {\r\n const payload = {\r\n ...values,\r\n officialPaymentStatus: conversionMap[values.officialPaymentStatus]\r\n }\r\n\r\n ApiClient.Patch(Urls.officialPayment(userId), JSON.stringify(payload))\r\n .then((res) => {\r\n if (res) {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n onSubmit(false);\r\n }\r\n })\r\n .catch().finally(() => {\r\n actions.setSubmitting(false)\r\n })\r\n\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
    \r\n

    امکان تغییر توسط کاربر

    \r\n {\r\n formik.setFieldValue(\"allowOfficialPaymentChoice\", !formik.values.allowOfficialPaymentChoice)\r\n onChangeSwitch(formik)\r\n }}\r\n />\r\n
    \r\n\r\n option.value !== 'null') : options}\r\n\r\n onChange={(e) => formik.setFieldValue(\"officialPaymentStatus\", e.target.value)}\r\n />\r\n\r\n
    \r\n \r\n تایید\r\n \r\n\r\n onClose()}\r\n >\r\n انصراف\r\n \r\n
    \r\n\r\n \r\n )}\r\n \r\n :\r\n <>\r\n \r\n \r\n }\r\n\r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default OfficialPaymentStatusModal;","import React, {useCallback, useEffect, useState} from \"react\";\r\nimport {Link, useRouteMatch} from \"react-router-dom\";\r\nimport {toast} from 'react-toastify';\r\nimport Swal from \"sweetalert2\";\r\nimport {PageTitleLayout} from \"../../../Component/Kit/Layout\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport AccountRechargeModal from \"./AccountRechargeModal\";\r\nimport CooperationProfitModal from \"./CooperationProfitModal\";\r\nimport {CreditTransferModal} from \"./CreditTransferModal\";\r\nimport DedicatedUserBasePriceModal from \"./DedicatedUserBasePriceModal\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport {PaymentConfirmationModal} from \"../../Financial/OnlinePayment/PaymentConfirmationModal\";\r\nimport OfficialPaymentStatusModal from \"./OfficialPaymentStatusModal\";\r\n\r\nfunction UserFinancial() {\r\n let match = useRouteMatch();\r\n const [isOfficial, setisOfficial] = useState(false);\r\n const [accountRechargeModalVisible, setAccountRechargeModalVisible] = useState(false);\r\n const [creditTransferModalVisible, setCreditTransferModalVisible] = useState(false);\r\n const [dedicatedUserBasePriceModalVisible, setDedicatedUserBasePriceModalVisible] = useState(false);\r\n const [officialPaymentTypeModalVisible, setOfficialPaymentTypeModalVisible] = useState(false);\r\n const [dedicatedBasePriceId, setDedicatedBasePriceId] = useState(null);\r\n const [cooperationModal, setCooperationModal] = useState(false);\r\n const [basePrice, setBasePrice] = useState(0);\r\n const [cooperationProfit, setCooperationProfit] = useState({});\r\n const [haveCooperation, setHaveCooperation] = useState(false);\r\n const [currentCredit, setCurrentCredit] = useState(0);\r\n const [dedicatedBasePriceList, setDedicatedBasePriceList] = useState([]);\r\n const [dedicatedPrice, setDedicatedPrice] = useState(null);\r\n\r\n\r\n const convertToOfficial = () => {\r\n if (!isOfficial) {\r\n Swal.fire({\r\n title: `آیا مطمئن هستید؟`,\r\n text: \"امیدوارم بدونی داری چیکار میکنی! راه بازگشتی وجود ندارد...\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Patch(Urls.userOfficialInvoiceStatus(match.params.id)).then(res => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n setisOfficial(res.result);\r\n })\r\n }\r\n })\r\n }\r\n };\r\n\r\n const accountRecharge = () => {\r\n setAccountRechargeModalVisible(true);\r\n }\r\n\r\n const openCreditTransferModal = (item) => {\r\n setCreditTransferModalVisible(true);\r\n };\r\n\r\n const openCooperationModal = () => {\r\n setCooperationModal(true)\r\n }\r\n\r\n const getDedicatedBasePriceList = useCallback(() => {\r\n ApiClient.Get(Urls.DedicatedBasePrice())\r\n .then(res => {\r\n setDedicatedBasePriceList(res.result.map(item => ({id: item.id, price: item.basePrice})))\r\n })\r\n }, []);\r\n\r\n const getUserFinancialSettings = useCallback(() => {\r\n ApiClient.Get(Urls.userFinancialSettings(match.params.id))\r\n .then(res => {\r\n if (res.result) {\r\n setisOfficial(res.result.couldHasOfficialInvoice);\r\n setBasePrice(res.result.lastBasePrice);\r\n setCooperationProfit({\r\n cooperationCreditProfitPercent: res?.result?.cooperationCreditProfitPercent,\r\n cooperationLineProfitPercent: res?.result?.cooperationLineProfitPercent\r\n });\r\n setDedicatedBasePriceId(res.result.dedicatedBasePriceId)\r\n setHaveCooperation(true)\r\n }\r\n }\r\n );\r\n\r\n ApiClient.Get(Urls.GetUserCreditCount(match.params.id)).then((res) => {\r\n setCurrentCredit(res.result);\r\n });\r\n\r\n }, [match.params.id]);\r\n const dedicatedBasePriceSubmit = () => {\r\n getDedicatedBasePriceList();\r\n getUserFinancialSettings();\r\n }\r\n useEffect(() => {\r\n getUserFinancialSettings();\r\n getDedicatedBasePriceList();\r\n }, [getUserFinancialSettings, getDedicatedBasePriceList]);\r\n\r\n useEffect(() => {\r\n if (dedicatedBasePriceList.length > 0 && dedicatedBasePriceId) {\r\n const price = dedicatedBasePriceList.find(f => f.id === dedicatedBasePriceId)?.price\r\n setDedicatedPrice(price ?? 0);\r\n\r\n }\r\n else if(dedicatedBasePriceList.length > 0 && !dedicatedBasePriceId){\r\n setDedicatedPrice(null);\r\n\r\n }\r\n }, [dedicatedBasePriceList, dedicatedBasePriceId]);\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 {dedicatedPrice ?? '----'}\r\n
    \r\n\r\n\r\n
    آخرین تعرفه خرید:\r\n {basePrice}\r\n
    \r\n\r\n
    اعتبار جاری حساب:\r\n {currentCredit}\r\n
    \r\n\r\n\r\n
    \r\n
      \r\n
    • \r\n \r\n \r\n فاکتور ها\r\n \r\n
    • \r\n
    • \r\n \r\n \r\n پرداخت کاربر\r\n \r\n
    • \r\n
    • \r\n \r\n \r\n تراکنش های کاربر\r\n \r\n
    • \r\n\r\n
    • \r\n openCreditTransferModal()}\r\n className=\"section-list_item\"\r\n >\r\n \r\n افزایش / کاهش اعتبار\r\n \r\n
    • \r\n
    • \r\n openCooperationModal()}\r\n className=\"section-list_item\"\r\n >\r\n \r\n سود مشارکت\r\n \r\n
    • \r\n\r\n
    • \r\n setDedicatedUserBasePriceModalVisible(true)}\r\n className=\"section-list_item\"\r\n >\r\n \r\n تعرفه اختصاصی\r\n \r\n
    • \r\n\r\n
    • \r\n {setOfficialPaymentTypeModalVisible(true)}}\r\n className=\"section-list_item\"\r\n >\r\n \r\n نوع پرداخت\r\n \r\n
    • \r\n
    \r\n {haveCooperation &&\r\n setCooperationModal(false)}\r\n onCancle={() => setCooperationModal(false)}\r\n onsubmit={() => getUserFinancialSettings()}>\r\n \r\n }\r\n\r\n dedicatedBasePriceSubmit()}\r\n visible={dedicatedUserBasePriceModalVisible}\r\n setVisible={setDedicatedUserBasePriceModalVisible}\r\n onClose={() => setDedicatedUserBasePriceModalVisible(false)}\r\n onCancle={() => setDedicatedUserBasePriceModalVisible(false)}/>\r\n\r\n setAccountRechargeModalVisible(false)}\r\n onCancle={() => setAccountRechargeModalVisible(false)}\r\n >\r\n \r\n\r\n\r\n {creditTransferModalVisible &&\r\n setCreditTransferModalVisible(false)}\r\n onCancle={() => setCreditTransferModalVisible(false)}\r\n onsubmit={() => getUserFinancialSettings()}>\r\n \r\n }\r\n\r\n {\r\n setOfficialPaymentTypeModalVisible(false)\r\n }}>\r\n \r\n نوع پرداخت\r\n {\r\n setOfficialPaymentTypeModalVisible(false)\r\n }} className=\"close-btn fa fa-xmark\"/>\r\n \r\n \r\n {setOfficialPaymentTypeModalVisible(false)}}\r\n onSubmit={() => {setOfficialPaymentTypeModalVisible(false)}}\r\n />\r\n \r\n\r\n \r\n\r\n
    \r\n );\r\n}\r\n\r\nexport default UserFinancial;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useCallback } from \"react\";\r\nimport { useLocation, useRouteMatch } from \"react-router-dom\";\r\nimport Swal from \"sweetalert2\";\r\nimport { Button } from \"../../../../Component/Kit/Button\";\r\nimport { AutocompleteList } from \"../../../../Component/Kit/Form\";\r\nimport { PageTitleLayout } from \"../../../../Component/Kit/Layout\";\r\nimport Table from \"../../../../Component/Shared/Table/Table\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport { ConvertQueryString } from \"../../../../Utility/Services/convert-query-string\";\r\nimport { toast } from \"react-toastify\";\r\nimport { useDebounce } from \"../../../../Utility/method/UseDebounce\";\r\n\r\nfunction WhiteListOfForbiddenWords() {\r\n const { search } = useLocation();\r\n const match = useRouteMatch();\r\n const [forbiddenWordsFoundList, setForbiddenWordsFoundList] = useState([]);\r\n const [selectedForbiddenWord, setSelectedForbiddenWord] = useState({});\r\n const [forbiddenWordsList, setForbiddenWordsList] = useState({});\r\n\r\n const tableConfig = {\r\n header: {\r\n word: \"کلمه ممنوعه\",\r\n },\r\n actions: {\r\n delete: {\r\n icon: \"fa fa-trash\",\r\n },\r\n }\r\n };\r\n\r\n const [searchQuery, setSearchQuery] = useState('');\r\n const debouncedValue = useDebounce(searchQuery, 500);\r\n\r\n const changeInput = (e) => {\r\n setSearchQuery(e)\r\n };\r\n const changeSelect = (e) => {\r\n setSelectedForbiddenWord(e)\r\n };\r\n\r\n const submitSelectedForbidderWord = () => {\r\n ApiClient.Post(Urls.userForbiddenWords(match.params.id), Number(selectedForbiddenWord.id))\r\n .then(res => {\r\n if (res && res.result) {\r\n getData();\r\n setSelectedForbiddenWord('');\r\n setForbiddenWordsFoundList([]);\r\n setSearchQuery('');\r\n }\r\n })\r\n };\r\n\r\n const deleteForbiddenWord = (id) => {\r\n Swal.fire({\r\n title: \"\",\r\n text: `آیا از حذف این کلمه ممنوعه مطمئن هستید؟`,\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n ApiClient.Delete(Urls.removeUserForbiddenWords(id, match.params.id))\r\n .then(res => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n getData()\r\n })\r\n }\r\n });\r\n };\r\n\r\n const tableActions = (item) => {\r\n switch (item.actionName) {\r\n case \"delete\":\r\n deleteForbiddenWord(item.data.id);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const getData = useCallback(() => {\r\n ApiClient.Get(Urls.userForbiddenWords(match.params.id), ConvertQueryString(search))\r\n .then(res => {\r\n if (res && res.result) {\r\n setForbiddenWordsList(res.result)\r\n }\r\n })\r\n }, [match.params.id, search]);\r\n\r\n const getForbiddenWordList = () => {\r\n const params = {\r\n phrase: searchQuery,\r\n pageSize: 50,\r\n pageNumber: 1\r\n }\r\n ApiClient.Get(Urls.forbiddenWords(), params)\r\n .then(res => {\r\n setForbiddenWordsFoundList(res.result.items);\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [getData]);\r\n\r\n useEffect(() => {\r\n if (searchQuery.length > 0) {\r\n getForbiddenWordList();\r\n }\r\n else {\r\n setSelectedForbiddenWord('')\r\n setForbiddenWordsFoundList([])\r\n }\r\n }, [debouncedValue]);\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    لیست سفید کلمات ممنوعه
    \r\n \r\n شما می توانید لیستی از کلمات ممنوعه که این کاربر مجاز به ارسال آن ها\r\n هست را وارد کنید.\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n changeInput(e)}\r\n selectItem={(e) => changeSelect(e)}\r\n >\r\n
    \r\n submitSelectedForbidderWord()}\r\n disabled={Object.keys(selectedForbiddenWord).length === 0}\r\n className=\"greenBtn mr-3\"\r\n >\r\n افزودن\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default WhiteListOfForbiddenWords;\r\n","import { useEffect, useState } from \"react\";\r\n\r\nexport const useDebounce = (value, delay) => {\r\n const [debouncedValue, setDebouncedValue] = useState(value);\r\n\r\n useEffect(() => {\r\n const handler = setTimeout(() => {\r\n setDebouncedValue(value);\r\n }, delay || 500);\r\n\r\n return () => {\r\n clearTimeout(handler);\r\n };\r\n }, [value, delay]);\r\n\r\n return debouncedValue;\r\n};","import { dedicatedLimitForParameters } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const DedicatedLimitForVerifyCodeParametersSchema = Yup.object().shape({\r\n dedicatedLimitForParameters,\r\n});\r\n","import { Formik } from \"formik\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useRouteMatch } from \"react-router-dom\";\r\nimport { toast } from \"react-toastify\";\r\nimport { StyledButton } from \"../../../../Component/Kit/Button\";\r\nimport { StyledForm, StyledInput, StyledSwitchBox } from \"../../../../Component/Kit/Form\";\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport { DedicatedLimitForVerifyCodeParametersSchema } from \"../../../../Utility/Validation/Schema/DedicatedLimitForVerifyCodeParametersSchema\";\r\n\r\nconst DedicatedLimitForVerifyCodeParametersModal = ({ visible, setVisible, onCancel, onClose }) => {\r\n let match = useRouteMatch();\r\n let userId = match.params.id;\r\n const [submitLoading, setSubmitLoading] = useState(false);\r\n const [limitForParameters, setLimitForParameters] = useState(null);\r\n const [limitForParametersActive, setlimitForParametersActive] = useState(false);\r\n\r\n useEffect(() => {\r\n if (visible) {\r\n ApiClient.Get(Urls.dedicatedLimitationVerifyParamSize(userId))\r\n .then((res) => {\r\n setLimitForParameters(res.result)\r\n setlimitForParametersActive(!Boolean(res.result))\r\n })\r\n }\r\n }, [userId, visible])\r\n return (\r\n \r\n <>\r\n {\r\n setSubmitLoading(true);\r\n const payload = limitForParametersActive ? null : values.dedicatedLimitForParameters;\r\n ApiClient.Patch(Urls.dedicatedLimitationVerifyParamSize(userId), payload)\r\n .then(res => {\r\n setSubmitLoading(false);\r\n toast.success('محدودیت با موفقیت اعمال شد');\r\n setVisible(false);\r\n onClose(false);\r\n })\r\n .catch(() => actions.resetForm())\r\n .finally(() => setSubmitLoading(false))\r\n\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
    \r\n

    محدودیت بصورت پیشفرض

    \r\n setlimitForParametersActive(e.target.checked)}\r\n />\r\n
    \r\n {\r\n !limitForParametersActive &&\r\n \r\n formik.setFieldValue(\"dedicatedLimitForParameters\", e.target.value)\r\n }\r\n />\r\n }\r\n\r\n
    \r\n onClose(false)}\r\n >\r\n بستن\r\n \r\n \r\n ویرایش\r\n \r\n
    \r\n \r\n )}\r\n \r\n\r\n \r\n \r\n )\r\n}\r\n\r\nexport default DedicatedLimitForVerifyCodeParametersModal;","import { webServiceLimitation } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const WebServiceLimitationSchema = Yup.object().shape({\r\n webServiceLimitation,\r\n});\r\n","import { Formik } from \"formik\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useRouteMatch } from \"react-router-dom\";\r\nimport { toast } from \"react-toastify\";\r\nimport { StyledButton } from \"../../../../Component/Kit/Button\";\r\nimport { StyledForm, StyledInput, StyledSwitchBox } from \"../../../../Component/Kit/Form\";\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport {WebServiceLimitationSchema} from \"../../../../Utility/Validation/Schema/WebServiceLimitation\";\r\n\r\nconst CalledWebserviceLimitationModal = ({ visible, setVisible, onCancel, onClose }) => {\r\n let match = useRouteMatch();\r\n let userId = match.params.id;\r\n const [submitLoading, setSubmitLoading] = useState(false);\r\n const [limitForParameters, setLimitForParameters] = useState(null);\r\n const [limitForParametersActive, setlimitForParametersActive] = useState(false);\r\n\r\n useEffect(() => {\r\n if (visible) {\r\n ApiClient.Get(Urls.userCalledWebServiceCount(userId))\r\n .then((res) => {\r\n setLimitForParameters(res.result)\r\n setlimitForParametersActive(!Boolean(res.result))\r\n })\r\n }\r\n }, [visible])\r\n return (\r\n \r\n <>\r\n {\r\n setSubmitLoading(true);\r\n const payload = limitForParametersActive ? null : values.webServiceLimitation;\r\n ApiClient.Patch(Urls.userCalledWebServiceCount(userId), payload)\r\n .then(res => {\r\n setSubmitLoading(false);\r\n toast.success('محدودیت با موفقیت اعمال شد');\r\n setVisible(false);\r\n onClose(false);\r\n })\r\n .catch(() => actions.resetForm())\r\n .finally(() => setSubmitLoading(false))\r\n\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
    \r\n

    محدودیت بصورت پیشفرض

    \r\n setlimitForParametersActive(e.target.checked)}\r\n />\r\n
    \r\n {\r\n !limitForParametersActive &&\r\n \r\n formik.setFieldValue(\"webServiceLimitation\", e.target.value)\r\n }\r\n />\r\n }\r\n\r\n
    \r\n onClose(false)}\r\n >\r\n بستن\r\n \r\n \r\n ویرایش\r\n \r\n
    \r\n \r\n )}\r\n \r\n\r\n \r\n \r\n )\r\n}\r\n\r\nexport default CalledWebserviceLimitationModal;\r\n","import React, {useCallback, useEffect, useState} from \"react\";\r\nimport {useRouteMatch} from \"react-router-dom\";\r\nimport {Field, Form, Formik} from \"formik\";\r\nimport {toast} from \"react-toastify\";\r\n\r\n\r\nimport {PageTitleLayout} from \"../../../Component/Kit/Layout\";\r\nimport {Button, StyledButton} from \"../../../Component/Kit/Button\";\r\nimport {CheckBox} from \"../../../Component/Kit/Checkbox\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport EnumFlag from \"../../../Utility/Services/enum-flag\";\r\nimport {StyledSwitchBox} from \"../../../Component/Kit/Form\";\r\nimport WhiteListOfForbiddenWords from \"./WhiteListOfForbiddenWords\";\r\nimport DedicatedLimitForVerifyCodeParametersModal from \"./DedicatedLimitForVerifyCodeParametersModal\";\r\nimport CalledWebserviceLimitationModal from \"./CalledWebserviceLimitationModal\";\r\n\r\nconst UserRestriction = () => {\r\n const match = useRouteMatch();\r\n const [data, setData] = useState({\r\n count: false, link: false, forbiddenWord: false, newUser: false,\r\n });\r\n const [cancellationStatus, setCancellationStatus] = useState(false);\r\n const [verifyCodeParametersModal, setVerifyCodeParametersModal] = useState(false)\r\n const [calledWebServiceModal, setCalledWebServiceModal] = useState(false)\r\n\r\n const switchHandler = (status) => {\r\n const body = JSON.stringify(status);\r\n ApiClient.Patch(Urls.userCancellationPhraseStatus(match.params.id), body).then((res) => {\r\n if (res.result) {\r\n setCancellationStatus(status);\r\n toast.success(\"تغییرات با موفقیت ثبت شد.\");\r\n }\r\n });\r\n };\r\n\r\n const getData = useCallback(async () => {\r\n try {\r\n const userDeniedResponse = await ApiClient.Get(Urls.userDeniedLimitations(match.params.id));\r\n const cancellationPhraseResponse = await ApiClient.Get(Urls.userCancellationPhraseStatus(match.params.id));\r\n setCancellationStatus(cancellationPhraseResponse.result);\r\n\r\n const deniedRestriction = EnumFlag([1, 2, 4, 8], userDeniedResponse.result);\r\n const newData = {\r\n count: false, link: false, forbiddenWord: false, newUser: false,\r\n };\r\n deniedRestriction.forEach((item) => {\r\n switch (item) {\r\n case 1:\r\n newData.count = true;\r\n break;\r\n case 2:\r\n newData.link = true;\r\n break;\r\n case 4:\r\n newData.forbiddenWord = true;\r\n break;\r\n case 8:\r\n newData.newUser = true;\r\n break;\r\n default:\r\n console.log(\"type undefined\");\r\n }\r\n });\r\n setData({...newData});\r\n } catch (err) {\r\n }\r\n }, [match.params.id]);\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [getData, match.params.id]);\r\n return (<>\r\n
    \r\n
    \r\n setVerifyCodeParametersModal(true)}>\r\n تعداد کاراکتر وب سرویس verify\r\n \r\n setCalledWebServiceModal(true)}>\r\n محدودیت ارسال روزانه وب سرویس\r\n \r\n
    \r\n
    \r\n \r\n
    رفع محدودیت‌های ارسال
    \r\n \r\n می‌توانید در صورت نیاز لغو محدودیت‌های ارسالی برای این کاربر را از\r\n این صفحه کنترل کنید. با انجام این کار، کاربر به لیست سفید منتقل\r\n شده و محدودیت مورد نظر اعمال نمی‌شود. می‌توانید در هر زمان لغو\r\n محدودیت‌ها را برای این کاربر بردارید.\r\n \r\n
    \r\n {\r\n let result = 0;\r\n for (const item in values) {\r\n if (values[item]) {\r\n if (item === \"count\") {\r\n result += 1;\r\n }\r\n if (item === \"link\") {\r\n result += 2;\r\n }\r\n if (item === \"forbiddenWord\") {\r\n result += 4;\r\n }\r\n if (item === \"newUser\") {\r\n result += 8;\r\n }\r\n }\r\n }\r\n if (result) {\r\n ApiClient.Put(Urls.userDeniedLimitations(match.params.id), result).then((res) => {\r\n toast.success(\"محدودیت ها با موفقیت ویرایش شد.\");\r\n setData({\r\n count: values.count,\r\n link: values.link,\r\n forbiddenWord: values.forbiddenWord,\r\n newUser: values.newUser,\r\n });\r\n });\r\n } else {\r\n ApiClient.Delete(Urls.userDeniedLimitations(match.params.id)).then((res) => {\r\n if (res) {\r\n toast.success(\"همه محدودیت ها با موفقیت اعمال شد.\");\r\n setData({\r\n count: values.count,\r\n link: values.link,\r\n forbiddenWord: values.forbiddenWord,\r\n newUser: values.newUser,\r\n });\r\n }\r\n });\r\n }\r\n }}\r\n >\r\n {({dirty}) => (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n ویرایش محدودیت ها\r\n \r\n
    \r\n
    )}\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    ارسال عبارت لغو
    \r\n \r\n از طریق فعال کردن این گزینهُ امکان عدم ارسال عبارت لغو برای کاربر\r\n امکان‌پذیر خواهد شد. می‌توانید در هر زمان این قابلیت را برای کاربر\r\n مجدداٌ فعال نمایید.\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n عدم ارسال عبارت لغو:\r\n switchHandler(e.target.checked)}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n setVerifyCodeParametersModal(false)}\r\n onCancel={() => setVerifyCodeParametersModal(false)}\r\n onClose={() => setVerifyCodeParametersModal(false)}\r\n />\r\n\r\n setCalledWebServiceModal(false)}\r\n onCancel={() => setCalledWebServiceModal(false)}\r\n onClose={() => setCalledWebServiceModal(false)}\r\n />\r\n\r\n );\r\n};\r\nexport default UserRestriction;\r\n","import { sendMessage} from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const SendMessageSchema = Yup.object().shape({\r\n sendMessage,\r\n});\r\n","import { PageTitleLayout } from \"../../../Component/Kit/Layout\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Formik } from \"formik\";\r\nimport { StyledButton } from \"../../../Component/Kit/Button\";\r\nimport { useRouteMatch } from \"react-router-dom\";\r\nimport { StyledForm, StyledTextArea } from \"../../../Component/Kit/Form\";\r\nimport Swal from \"sweetalert2\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport { toast } from \"react-toastify\";\r\nimport { SendMessageSchema } from \"../../../Utility/Validation/Schema/SendMessageSchema\";\r\n\r\nconst UserSendMessage = () => {\r\n const match = useRouteMatch();\r\n const [submitLoading, setSubmitLoading] = useState(false);\r\n useEffect(() => {\r\n }, [match.params.id])\r\n\r\n const sendMessageHandler = (body, actions) => {\r\n setSubmitLoading(true);\r\n Swal.fire({\r\n title: \"ارسال پیامک\",\r\n text: \"آیا از ارسال این پیامک مطمئن هستید؟\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n ApiClient.Post(Urls.userSendSms(match.params.id), JSON.stringify(body.sendMessage))\r\n .then(() => {\r\n setSubmitLoading(false);\r\n toast.success('پیامک با موفقیت ارسال شد.');\r\n actions.resetForm()\r\n })\r\n } else {\r\n setSubmitLoading(false);\r\n }\r\n });\r\n };\r\n return (\r\n <>\r\n
    \r\n
    \r\n \r\n
    ارسال پیامک
    \r\n \r\n می‌توانید ‌در صورت نیاز به کاربر مورد نظر پیامک ارسال کنید\r\n \r\n
    \r\n\r\n {\r\n let body = {\r\n sendMessage: values.sendMessage,\r\n };\r\n sendMessageHandler(body, actions);\r\n }}\r\n >\r\n\r\n {(formik) => (\r\n
    \r\n \r\n {\r\n const str = e.target.value.trim() !== '' ? e.target.value : '';\r\n formik.setFieldValue(\"sendMessage\", str)\r\n }}\r\n />\r\n \r\n ارسال پیامک\r\n \r\n \r\n
    \r\n )}\r\n\r\n \r\n
    \r\n
    \r\n \r\n );\r\n}\r\nexport default UserSendMessage\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useLocation, useRouteMatch } from \"react-router-dom\";\r\nimport { PageTitleLayout } from \"../../../Component/Kit/Layout\";\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport { ConvertQueryString } from \"../../../Utility/Services/convert-query-string\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\n\r\nfunction UserIncommingCalls() {\r\n const location = useLocation();\r\n const [guestData, setGuestData] = useState([]);\r\n\r\n let match = useRouteMatch();\r\n\r\n const tableConfig = {\r\n header: {\r\n date: \"تاریخ تماس\",\r\n time: \"زمان تماس\",\r\n },\r\n actions: {},\r\n };\r\n\r\n useEffect(() => {\r\n ApiClient.Get(\r\n Urls.getIcommingCalls(\"user\", match.params.id),\r\n ConvertQueryString(location.search)\r\n ).then((res) => {\r\n let data = res.result;\r\n data.items.map((m, i) => {\r\n m.date = DateConvert(m.createdAt).slice(11);\r\n m.time = DateConvert(m.createdAt).slice(0, 8);\r\n return m;\r\n });\r\n setGuestData(data);\r\n });\r\n }, [location.search]);\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\nexport default UserIncommingCalls;\r\n","const PlanPositionEnum = {\r\n First: 1,\r\n Second: 2,\r\n Third: 3,\r\n}\r\n\r\nconst PlanPositionModel = [\r\n { value: PlanPositionEnum.First, name: \"برنزی\" },\r\n { value: PlanPositionEnum.Second, name: \"نقره‌ای\" },\r\n { value: PlanPositionEnum.Third, name: \"طلایی\" }\r\n]\r\n\r\nexport { PlanPositionModel }","import { PlanPositionModel } from \"../Model/PlanPositionModel\";\r\n\r\nfunction PlanPositionService(value) {\r\n return PlanPositionModel.find(item => item.value === value)?.name\r\n}\r\n\r\nexport default PlanPositionService;","\r\nimport { planDuration, planId } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const AssignUserToPlanSchema = Yup.object().shape({\r\n planId,\r\n planDuration,\r\n});\r\n","import { Formik } from 'formik'\r\nimport React, { useCallback, useEffect, useState } from 'react'\r\nimport { useParams } from 'react-router-dom'\r\nimport { toast } from 'react-toastify'\r\nimport { StyledButton } from '../../../../Component/Kit/Button'\r\nimport { StyledForm, StyledSelect, StyledSwitchBox } from '../../../../Component/Kit/Form'\r\nimport ApiClient from '../../../../Requester/ApiClient'\r\nimport Urls from '../../../../Requester/Urls'\r\nimport { AssignUserToPlanSchema } from '../../../../Utility/Validation/Schema/AssignUserToPlanSchema'\r\n\r\nexport const AssignUserPlanModal = ({ onCloseModal, onSubmit }) => {\r\n const params = useParams();\r\n const [activePlanList, setActivePlanList] = useState([]);\r\n const [months, setMonths] = useState([]);\r\n const [selectedPlan, setSelectedPlan] = useState({});\r\n const planMonthList = [\r\n { value: 1, name: 'یک ماهه' },\r\n { value: 3, name: 'سه ماهه' },\r\n { value: 6, name: 'شش ماهه' },\r\n { value: 12, name: 'یکساله' }\r\n ];\r\n\r\n const getPlanList = useCallback(() => {\r\n ApiClient.Get(Urls.Plan())\r\n .then(res => {\r\n const planItem = [];\r\n res.result.items\r\n .forEach(item => {\r\n if (!item.isDeleted && item.isActive) {\r\n planItem.push({ name: item.name, value: item.id, ...item })\r\n }\r\n })\r\n setActivePlanList(planItem);\r\n })\r\n }, []);\r\n\r\n useEffect(() => {\r\n getPlanList();\r\n }, [getPlanList, params.id]);\r\n\r\n const getMonthsBaseSelectedPlan = (planId) => {\r\n const planItem = activePlanList.find(x => x.value == planId);\r\n setSelectedPlan(planItem);\r\n let planMonth = [];\r\n planItem.month.forEach(x => planMonth.push(planMonthList.find(i => i.value == x)));\r\n setMonths(planMonth);\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n const payload = {\r\n userId: Number(params.id),\r\n planId: Number(values.planId),\r\n month: Number(values.planDuration),\r\n includeLine: values.includeLine,\r\n includeCredit: values.includeCredit,\r\n }\r\n ApiClient.Post(Urls.UserPlan(params.id), payload)\r\n .then(res => {\r\n if (res) {\r\n toast.success('تخصیص پلن با موفقیت انجام شد.');\r\n onCloseModal(true);\r\n onSubmit();\r\n }\r\n })\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n {\r\n formik.setFieldValue(\"planId\", e.target.value);\r\n getMonthsBaseSelectedPlan(e.target.value);\r\n }}\r\n />\r\n formik.setFieldValue(\"planDuration\", e.target.value)}\r\n />\r\n\r\n
    \r\n اعطای خـط مجزا به کاربر\r\n formik.setFieldValue(\"includeLine\", e.target.checked)}\r\n />\r\n
    \r\n
    \r\n اعطای اعتبار رایگان به کاربر\r\n formik.setFieldValue(\"includeCredit\", e.target.checked)}\r\n />\r\n
    \r\n\r\n
    \r\n onCloseModal(false)}\r\n >\r\n بستن\r\n \r\n \r\n تخصیص دادن\r\n \r\n
    \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n","import React, {useCallback, useEffect, useState} from 'react'\r\nimport {useParams} from 'react-router-dom'\r\nimport {StyledButton} from '../../../Component/Kit/Button'\r\nimport {PageTitleLayout} from '../../../Component/Kit/Layout'\r\nimport Modal from '../../../Component/Kit/Modal'\r\nimport Table from '../../../Component/Shared/Table/Table'\r\nimport ApiClient from '../../../Requester/ApiClient'\r\nimport Urls from '../../../Requester/Urls'\r\nimport PlanPositionService from '../../../Utility/Services/PlanPositionService'\r\nimport DateConvert from '../../../Utility/Services/date-convert'\r\nimport {AssignUserPlanModal} from './AssignUserPlanModal'\r\n\r\nexport const UserPlan = () => {\r\n let params = useParams();\r\n const [userPlanList, setUserPlanList] = useState([]);\r\n const [assignUserPlaneModalHandler, setAssignUserPlaneModalHandler] = useState(false);\r\n\r\n const tableConfig = {\r\n header: {\r\n name: \"عنوان پلن\",\r\n isManual: \"روش دریافت\",\r\n createdAt: \"تاریخ ایجاد\",\r\n expireAt: \"تاریخ انقضا\",\r\n renewalCount: \"تعداد تمدید\",\r\n isDeleted: \"وضعیت حذف\",\r\n isActive: \"فعال\",\r\n },\r\n };\r\n const getUserPlan = useCallback(() => {\r\n ApiClient.Get(Urls.UserPlan(params.id))\r\n .then(res => {\r\n let data = res.result;\r\n data.map((item) => {\r\n item.createdAt = DateConvert(item.createdAt);\r\n item.expireAt = DateConvert(item.expireAt);\r\n item.isManual = item.isManual ? \"اختصاص یافته\" : \"خریداری شده\";\r\n item.isDeleted = item.isDeleted ? \"حذف شده\" : \"حذف نشده\";\r\n item.isActive = item.isActive\r\n ? ``\r\n : ``;\r\n return item;\r\n })\r\n setUserPlanList(data);\r\n })\r\n }, [params.id]);\r\n\r\n useEffect(() => {\r\n getUserPlan();\r\n }, [getUserPlan]);\r\n\r\n return (\r\n <>\r\n
    \r\n \r\n
    پلن کاربر
    \r\n \r\n در اینجا لیست پلن‌های خریداری شده کاربر مورد بررسی قرار می‌گیرد.\r\n \r\n
    \r\n setAssignUserPlaneModalHandler(true)}\r\n >\r\n تخصیص پلن به کاربر\r\n \r\n
    \r\n \r\n\r\n setAssignUserPlaneModalHandler(false)}\r\n onCancel={() => setAssignUserPlaneModalHandler(false)}\r\n visible={assignUserPlaneModalHandler}\r\n headerTitle=\"تخصیص یک پلن به کاربر\"\r\n >\r\n setAssignUserPlaneModalHandler(e)}\r\n onSubmit={() => getUserPlan()}\r\n />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default UserPlan;","const SendStatusEnum = {\r\n InternalServerError: 0,\r\n Success: 1,\r\n ApiKeyIsWrong: 10,\r\n ApiKeyIsInactive: 11,\r\n ApiKeyIsLimitedToIp: 12,\r\n UserAccountIsDeactivated: 13,\r\n UserAccountIsSuspended: 14,\r\n PlanItemAccessDenied: 15,\r\n InvalidRequestModel: 16,\r\n RequestRateLimitExceeded: 20,\r\n LineNumberIsWrong: 101,\r\n CreditNotEnough: 102,\r\n NullOrEmptyMessageText: 103,\r\n MobileIsWrong: 104,\r\n TooManyMobileListCount: 105,\r\n TooManyMessageTextListCount: 106,\r\n EmptyMobileList: 107,\r\n EmptyMessageTextsList: 108,\r\n InvalidSendDateTime: 109,\r\n MobilesAndMessageTextsNotCompatible: 110,\r\n IdIsWrong: 111,\r\n ScheduledMessagesNotFound: 112,\r\n TemplateNotFound: 113,\r\n LengthOfParameterValueIsLongerThanAllowed: 114,\r\n AllMobilesAreInBlackList: 115,\r\n ParameterNameIsNullOrEmpty: 116,\r\n InvalidFrequentMessageText: 117,\r\n MessageCountOutOfRange: 118,\r\n CustomFastSendTemplatePlanLimitation: 119\r\n}\r\nconst ActionNameEnum = {\r\n VerifySend: 1,\r\n BulkSend: 2,\r\n PeerToPeerSend: 3,\r\n UrlSend: 4,\r\n RemoveScheduledMessages: 5,\r\n GetSentMessage: 6,\r\n GetPack: 7,\r\n GetLivePacks: 8,\r\n GetSendLiveReport: 9,\r\n GetSendArchiveLiveReport: 10,\r\n GetReceiveLatestMessages: 11,\r\n GetReceiveLiveReport: 12,\r\n GetReceiveArchiveReport: 13,\r\n GetUserLines: 14,\r\n GetUserCredit: 15\r\n}\r\n\r\n\r\nconst ActionNameModel = [\r\n {name: \"ارسال وریفای\", value: ActionNameEnum.VerifySend},\r\n {name: \"ارسال گروهی\", value: ActionNameEnum.BulkSend},\r\n {name: \"ارسال نظیر به نظیر\", value: ActionNameEnum.PeerToPeerSend},\r\n {name: \"ارسال از طریق URL\", value: ActionNameEnum.UrlSend},\r\n {name: \"حذف ارسال زمانبندی شده\", value: ActionNameEnum.RemoveScheduledMessages},\r\n {name: \"گزارش پیامک (دریافت وضعیت)\", value: ActionNameEnum.GetSentMessage},\r\n {name: \"گزارش مجموعه ارسال\", value: ActionNameEnum.GetPack},\r\n {name: \"گزارش مجموعه ارسال‌های روز\", value: ActionNameEnum.GetLivePacks},\r\n {name: \"گزارش ارسال‌های روز\", value: ActionNameEnum.GetSendLiveReport},\r\n {name: \"گزارش ارسال‌های آرشیو شده\", value: ActionNameEnum.GetSendArchiveLiveReport},\r\n {name: \"گزارش تازه‌ترین پیامک‌های دریافتی\", value: ActionNameEnum.GetReceiveLatestMessages},\r\n {name: \"گزارش پیامک‌های دریافتی روز\", value: ActionNameEnum.GetReceiveLiveReport},\r\n {name: \"گزارش پیامک‌های دریافتی آرشیو شده\", value: ActionNameEnum.GetReceiveArchiveReport},\r\n {name: \"دریافت لیست خطوط\", value: ActionNameEnum.GetUserLines},\r\n {name: \"دریافت مقدار اعتبار فعلی\", value: ActionNameEnum.GetUserCredit},\r\n];\r\n\r\n\r\nconst SendStatusModel = [\r\n {name: 'درخواست شما با خطا مواجه شده‌است.', value: SendStatusEnum.InternalServerError},\r\n {name: 'عملیات با موفقیت انجام شد', value: SendStatusEnum.Success},\r\n {name: 'کلید وب سرویس نامعتبر است', value: SendStatusEnum.ApiKeyIsWrong},\r\n {name: 'کلید وب سرویس غیرفعال است', value: SendStatusEnum.ApiKeyIsInactive},\r\n {name: \"کلید وب سرویس محدود به آی‌پی‌های تعریف شده می‌باشد.\", value: SendStatusEnum.ApiKeyIsLimitedToIp},\r\n {name: \"حساب کاربری غیرفعال است\", value: SendStatusEnum.UserAccountIsDeactivated},\r\n {name: \"حساب کاربری در حالت تعلیق قرار دارد\", value: SendStatusEnum.UserAccountIsSuspended},\r\n {name: \"به منظور استفاده از وب سرویس پلن خود را ارتقا دهید\", value: SendStatusEnum.PlanItemAccessDenied},\r\n {name: \"مقدار ارسالی پارامتر نادرست می‌باشد\", value: SendStatusEnum.InvalidRequestModel},\r\n {name: \"تعداد درخواست بیشتر از حد مجاز است\", value: SendStatusEnum.RequestRateLimitExceeded},\r\n {name: \"شماره خط نامعتبر میباشد\", value: SendStatusEnum.LineNumberIsWrong},\r\n {name: \"اعتبار کافی نمیباشد\", value: SendStatusEnum.CreditNotEnough},\r\n {name: \"درخواست شما دارای متن (های) خالی است\", value: SendStatusEnum.NullOrEmptyMessageText},\r\n {name: \"درخواست شما دارای موبایل (های) نادرست است\", value: SendStatusEnum.MobileIsWrong},\r\n {name: \"تعداد موبایل ها بیشتر از حد مجاز (100 عدد) میباشد\", value: SendStatusEnum.TooManyMobileListCount},\r\n {name: \"تعداد متن ها بیشتر از حد مجاز (100 عدد) میباشد\", value: SendStatusEnum.TooManyMessageTextListCount},\r\n {name: \"لیست موبایل ها خالی میباشد\", value: SendStatusEnum.EmptyMobileList},\r\n {name: \"لیست متن ها خالی میباشد\", value: SendStatusEnum.EmptyMessageTextsList},\r\n {name: \"زمان ارسال نامعتبر میباشد\", value: SendStatusEnum.InvalidSendDateTime},\r\n {\r\n name: \"تعداد شماره موبایل ها و تعداد متن ها برابر نیستند\",\r\n value: SendStatusEnum.MobilesAndMessageTextsNotCompatible\r\n },\r\n {name: \"با این شناسه ارسالی ثبت نشده است\", value: SendStatusEnum.IdIsWrong},\r\n {name: \"رکوردی برای حذف یافت نشد\", value: SendStatusEnum.ScheduledMessagesNotFound},\r\n {name: \"قالب یافت نشد\", value: SendStatusEnum.TemplateNotFound},\r\n {\r\n name: \"طول رشته مقدار پارامتر، بیش از حد مجاز (25 کاراکتر) میباشد\",\r\n value: SendStatusEnum.LengthOfParameterValueIsLongerThanAllowed\r\n },\r\n {name: \"شماره موبایل(ها) در لیست سیاه سامانه می‌باشند\", value: SendStatusEnum.AllMobilesAreInBlackList},\r\n {\r\n name: \"نام یک یا چند پارامتر مقداردهی نشده‌است. لطفا به بخش مستندات ارسال وریفای مراجعه فرمایید\",\r\n value: SendStatusEnum.ParameterNameIsNullOrEmpty\r\n },\r\n {name: \"متن ارسال شده مورد تایید نمی‌باشد\", value: SendStatusEnum.InvalidFrequentMessageText},\r\n {name: \"تعداد پیام ها بیشتر از حد مجاز میباشد\", value: SendStatusEnum.MessageCountOutOfRange},\r\n {\r\n name: \"به منظور استفاده از قالب‌ شخصی سازی شده پلن خود را ارتقا دهید\",\r\n value: SendStatusEnum.CustomFastSendTemplatePlanLimitation\r\n },\r\n];\r\n\r\n\r\nexport {SendStatusModel, ActionNameModel, ActionNameEnum, SendStatusEnum};\r\n\r\n","import React, {useCallback, useEffect, useState} from 'react'\r\nimport {useLocation, useParams} from 'react-router-dom'\r\nimport {PageTitleLayout} from '../../../Component/Kit/Layout'\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport Table from '../../../Component/Shared/Table/Table'\r\nimport ApiClient from '../../../Requester/ApiClient'\r\nimport Urls from '../../../Requester/Urls'\r\nimport {ConvertQueryString} from \"../../../Utility/Services/convert-query-string\";\r\nimport {ActionNameModel, SendStatusModel} from \"../../../Utility/Model/web-service.model\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport {Loader} from \"../../../Component/Shared/Loader\";\r\nimport GetProvider from \"../../../Utility/Services/provider\";\r\n\r\nexport const WebService = () => {\r\n const location = useLocation();\r\n const {id} = useParams();\r\n\r\n const [logs, setLogs] = useState();\r\n const [selectedLog, setSelectedLog] = useState(null);\r\n const [webServiceModal, setWebServiceModal] = useState(false);\r\n const [loading, setLoading] = useState(true);\r\n\r\n const webServiceModalTitle = {\r\n statusCode: 'کد وضعیت',\r\n description: 'توضیحات',\r\n actionName: 'نام عملیات',\r\n createdAt: 'تاریخ ایجاد',\r\n count: 'تعداد رخداد',\r\n modifiedAt: 'تاریخ آخرین رخداد',\r\n username: 'نام کاربری',\r\n ip: 'آیپی',\r\n httpMethod: 'متد',\r\n requestUrl: 'آدرس URL',\r\n httpStatusCode: 'httpStatusCode',\r\n requestBody: 'body',\r\n exceptionMessage: 'پیغام exception'\r\n }\r\n\r\n const tableConfig = {\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n },\r\n },\r\n\r\n header: {\r\n statusCode: 'کد وضعیت',\r\n description: 'توضیحات',\r\n actionName: 'نام عملیات',\r\n createdAt: 'تاریخ ایجاد',\r\n count: 'تعداد رخداد',\r\n modifiedAt: 'تاریخ آخرین رخداد',\r\n },\r\n mode: [\"filter\"],\r\n filters: [\"datePickerFilter\" ],\r\n };\r\n const getLogs = useCallback(() => {\r\n const params = {\r\n ...ConvertQueryString(location.search),\r\n userId: id,\r\n }\r\n\r\n ApiClient.Get(Urls.webServiceLogs(), params)\r\n .then(res => {\r\n let data = res.result;\r\n\r\n data.items.map((item) => {\r\n item.actionName = ActionNameModel.find(i => i.value === item.actionName)?.name\r\n item.createdAt = DateConvert(item.createdAt);\r\n item.modifiedAt = DateConvert(item.modifiedAt);\r\n item.description = SendStatusModel.find(i => i.value === item.statusCode)?.name\r\n return item;\r\n });\r\n\r\n setLogs(res.result);\r\n setLoading(false);\r\n })\r\n }, [location.search]);\r\n\r\n useEffect(() => {\r\n getLogs();\r\n }, [getLogs]);\r\n\r\n const tableActions = (item) => {\r\n switch (item.actionName) {\r\n case 'view':\r\n setSelectedLog(item.data);\r\n setWebServiceModal(true);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const handleClose = (event) => {\r\n if (event) setWebServiceModal(false);\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 !loading ?\r\n <>\r\n\r\n tableActions(e)}\r\n />\r\n\r\n\r\n \r\n\r\n :\r\n <> \r\n }\r\n\r\n\r\n {\r\n handleClose(true)\r\n }}>\r\n \r\n جزئیات فراخوانی سرویس\r\n {\r\n handleClose(true)\r\n }} className=\"close-btn fa fa-xmark pointer\"/>\r\n \r\n \r\n
    \r\n
      \r\n {\r\n (webServiceModalTitle && selectedLog) &&\r\n Object.entries(webServiceModalTitle).map(([key, value]) => (\r\n\r\n
    • \r\n
      \r\n {value}: \r\n
      \r\n
      \r\n {selectedLog[key]}\r\n
      \r\n
    • \r\n ))\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n \r\n )\r\n}\r\n\r\nexport default WebService;","import React, { useEffect, useState } from \"react\";\r\nimport { Switch, Route, NavLink, useLocation } from \"react-router-dom\";\r\nimport UserTicket from \"./UserTicket\";\r\nimport UserProfile from \"./UserProfile\";\r\nimport UserLines from \"./UserLines\";\r\nimport UserBlock from \"./UserBlock\";\r\nimport UserComments from \"./UserComments\";\r\nimport UserFastSendTemplates from \"./UserFastSendTemplates\";\r\nimport UserCustomNotifications from \"./UserCustomNotifications\";\r\nimport UserFinancial from \"./UserFinancial\";\r\nimport { HeaderContent, MainContent } from \"../../Component/Kit/Layout\";\r\nimport BackToPage from \"../../Component/Kit/back\";\r\nimport UserRestriction from \"./UserRestriction\";\r\nimport UserSendMessage from \"./UserSendMessage\";\r\nimport UserIncommingCalls from \"./UserIncommingCalls\";\r\nimport { UserPlan } from \"./UserPlan\";\r\nimport WebService from \"./WebService\";\r\n\r\nfunction UserInfo({ match }) {\r\n let location = useLocation();\r\n const [prev, setPrev] = useState('')\r\n useEffect(() => {\r\n setPrev(location.state && location.state.from ? `/users${location.state.from}` : '/users');\r\n // history.push(`${match.url}/profile`)\r\n }, [location.state])\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n
      \r\n
    • \r\n \r\n اطلاعات کاربر\r\n \r\n
    • \r\n
    • \r\n \r\n تیکت\r\n \r\n
    • \r\n
    • \r\n \r\n خطوط\r\n \r\n
    • \r\n
    • \r\n \r\n امورمالی\r\n \r\n
    • \r\n
    • \r\n \r\n مسدود کردن\r\n \r\n
    • \r\n
    • \r\n \r\n نظرات\r\n \r\n
    • \r\n
    • \r\n \r\n اعلان‌ها\r\n \r\n
    • \r\n
    • \r\n \r\n قالب‌های ارسال سریع\r\n \r\n
    • \r\n
    • \r\n \r\n ارسال پیامک\r\n \r\n
    • \r\n
    • \r\n \r\n محدودیت ارسال\r\n \r\n
    • \r\n
    • \r\n \r\n تماس‌ها\r\n \r\n
    • \r\n
    • \r\n \r\n پلن‌ها\r\n \r\n
    • \r\n
    • \r\n \r\n خطای های وب سرویس\r\n \r\n
    • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default UserInfo;\r\n","import CreditTransactionModel from '../Model/transaction-type.model'\r\n\r\nfunction CreditTransactionType(value) {\r\n let result = CreditTransactionModel.find((item) => item.value ===value);\r\n return result?.name\r\n}\r\n\r\nexport default CreditTransactionType","import React, { useState, useEffect } from \"react\";\r\nimport { useLocation, useRouteMatch } from \"react-router-dom\";\r\nimport Table from \"./../../../../Component/Shared/Table/Table\";\r\nimport ApiClient from \"./../../../../Requester/ApiClient\";\r\nimport Urls from \"./../../../../Requester/Urls\";\r\nimport CreditTransactionType from \"../../../../Utility/Services/transaction-type\";\r\nimport { HeaderContent, MainContent, PageTitleLayout } from \"../../../../Component/Kit/Layout\";\r\nimport DateConvert from \"../../../../Utility/Services/date-convert\";\r\nimport BackToPage from \"../../../../Component/Kit/back\";\r\nimport { ConvertQueryString } from \"../../../../Utility/Services/convert-query-string\";\r\n\r\nfunction UserTransactions() {\r\n let match = useRouteMatch();\r\n let location = useLocation();\r\n const [transactionsData, settransactionsData] = useState({});\r\n const tableConfig = {\r\n header: {\r\n description: \"توضیحات\",\r\n type: \"نوع استفاده\",\r\n remainCredit: \" مقدار باقیمانده\",\r\n credit: \"مقدار استفاده شده\",\r\n transactedAt: \"تاریخ و ساعت استفاده\",\r\n },\r\n mode: [\"filter\", \"search\", \"export\"],\r\n filters: [\"datePickerFilter\", \"creditTransactionType\"],\r\n };\r\n useEffect(() => {\r\n ApiClient.Get(Urls.userTransactions(match.params.id), ConvertQueryString(location.search))\r\n .then((res) => {\r\n let data = res.result;\r\n data.items.map((m) => {\r\n m.transactedAt = DateConvert(m.transactedAt);\r\n m.type = CreditTransactionType(m.type);\r\n return m\r\n });\r\n settransactionsData(data);\r\n });\r\n }, [match.params.id, location.search]);\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n
    تراکنش‌های کاربر
    \r\n \r\n در اینجا لیست تراکنش‌های این کاربر مورد بررسی قرار می‌گیرد.\r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default UserTransactions;\r\n","import { useFormik } from 'formik';\r\nimport React, { useState } from \"react\";\r\nimport { useHistory, useRouteMatch } from \"react-router-dom\";\r\nimport { toast } from 'react-toastify';\r\nimport BackToPage from \"../../../Component/Kit/back\";\r\nimport { StyledButton } from \"../../../Component/Kit/Button\";\r\nimport {\r\n FormLable,\r\n StyledForm,\r\n StyledInput,\r\n StyledSelect,\r\n StyledTextArea\r\n} from \"../../../Component/Kit/Form\";\r\nimport { HeaderContent, MainContent, PageTitleLayout, WrapperLayout } from \"../../../Component/Kit/Layout\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport TicketDepartmentList from \"../../../Utility/Model/TicketDepartmentModel\";\r\nimport TicketPriorityList from \"../../../Utility/Model/TicketPriorityModel\";\r\nimport { AddTicketSchema } from \"../../../Utility/Validation/Schema/AddTicketSchema\";\r\nimport { UploadFileWrqapperAllKindOfFile } from \"../../../Component/Kit/UploadZone\";\r\n\r\nconst AddTicket = () => {\r\n let match = useRouteMatch();\r\n let history = useHistory();\r\n const [submitLoading, setsubmitLoading] = useState(false);\r\n\r\n const addTicketHandler = (body) => {\r\n setsubmitLoading(true);\r\n ApiClient.Post(Urls.addTicket(match.params.id), body)\r\n .then((res) => {\r\n setsubmitLoading(false);\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n history.push(`/userDetail/${match.params.id}/ticket`);\r\n })\r\n };\r\n\r\n function onChangeFile(event) {\r\n formik.setFieldValue('ticketFile', event)\r\n }\r\n\r\n\r\n function deleteFile(inputRef) {\r\n if(inputRef.current.value) inputRef.current.value = \"\";\r\n formik.setFieldValue('ticketFile', null)\r\n }\r\n\r\n const formik = useFormik({\r\n\r\n initialValues: {\r\n subject: \"\",\r\n department: \"\",\r\n priority: \"\",\r\n longDescription: \"\",\r\n ticketFile: null,\r\n },\r\n enableReinitialize: false,\r\n\r\n validationSchema: AddTicketSchema,\r\n\r\n onSubmit: (values, actions) => {\r\n const formData = new FormData()\r\n formData.append('title', values.subject)\r\n formData.append('department', parseInt(values.department))\r\n formData.append('priority', parseInt(values.priority))\r\n formData.append('content', values.longDescription)\r\n formData.append('File', values.ticketFile)\r\n\r\n addTicketHandler(formData);\r\n },\r\n\r\n onBlur: () => {\r\n\r\n },\r\n\r\n });\r\n\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n\r\n \r\n
    \r\n \r\n
    تیکت جدید
    \r\n

    لطفا تیکت خود را بنویسید.

    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n\r\n \r\n formik.setFieldValue(\"subject\", e.target.value)\r\n }\r\n />\r\n
    \r\n \r\n formik.setFieldValue(\"department\", e.target.value)\r\n }\r\n />\r\n \r\n formik.setFieldValue(\"priority\", e.target.value)\r\n }\r\n />\r\n
    \r\n\r\n\r\n
    \r\n\r\n
    \r\n {\r\n const str = e.target.value.trim() !== '' ? e.target.value : '';\r\n formik.setFieldValue(\"longDescription\", str)\r\n }}\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n فایل\r\n\r\n \r\n\r\n
    \r\n\r\n\r\n
    \r\n\r\n
    \r\n\r\n\r\n\r\n
    \r\n \r\n ارسال تیکت\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default AddTicket;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { MainContent, PageTitleLayout, WrapperLayout } from \"../../Component/Kit/Layout\";\r\nimport { Loader } from \"../../Component/Shared/Loader\";\r\nimport Table from \"../../Component/Shared/Table/Table\";\r\nimport ApiClient from \"../../Requester/ApiClient\";\r\nimport Urls from \"../../Requester/Urls\";\r\nimport EnumFlag from \"../../Utility/Services/enum-flag\";\r\nimport DateConvert from \"../../Utility/Services/date-convert\";\r\nimport Swal from \"sweetalert2\";\r\nimport { toast } from \"react-toastify\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { ConvertQueryString } from \"../../Utility/Services/convert-query-string\";\r\n\r\nconst WhiteUsers = ({ history }) => {\r\n const location = useLocation();\r\n const [usersList, setUsersList] = useState({});\r\n const [loading, setLoading] = useState(true);\r\n useEffect(() => {\r\n getUserList();\r\n }, [location.search]);\r\n const getUserList = () => {\r\n ApiClient.Get(Urls.getWhiteUsersList(), ConvertQueryString(location.search))\r\n .then(res => {\r\n setLoading(false);\r\n const data = res.result.items.map(item => {\r\n const restriction = EnumFlag([1, 2, 4, 8], item.deniedLimitations);\r\n item.modifiedAt = DateConvert(item.modifiedAt);\r\n item.id = item.userId;\r\n item.count = restriction.includes(1)\r\n ? ``\r\n : ``;\r\n item.link = restriction.includes(2)\r\n ? ``\r\n : ``;\r\n item.forbiddenWord = restriction.includes(4)\r\n ? ``\r\n : ``;\r\n item.newUser = restriction.includes(8)\r\n ? ``\r\n : ``;\r\n return item;\r\n })\r\n setUsersList({ ...res.result, items: [...data] });\r\n })\r\n }\r\n const tableConfig = {\r\n header: {\r\n userName: \"نام کاربری\",\r\n firstName: \"نام\",\r\n lastName: \"نام خانوادگی\",\r\n count: \"تعداد ارسال\",\r\n link: \"لینک\",\r\n forbiddenWord: \"کلمات ممنوعه\",\r\n newUser: \"کاربر جدید\",\r\n modifiedAt: \"آخرین به روز رسانی\",\r\n },\r\n actions: {\r\n edit: {\r\n icon: \"fa fa-pen\",\r\n },\r\n delete: {\r\n icon: \"fa fa-trash\",\r\n },\r\n },\r\n mode: [\"filter\", \"search\"],\r\n filters: [\"limitationType\"],\r\n };\r\n const tableActions = (item) => {\r\n switch (item.actionName) {\r\n case 'edit':\r\n history.push(`/userDetail/${item.data.id}/user-restriction`);\r\n break;\r\n case 'delete':\r\n deleteWhiteListUser(item.data.id);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n const deleteWhiteListUser = (id) => {\r\n Swal.fire({\r\n title: '',\r\n text: `آیا از حذف کاربر از لیست سفید مطمئن هستید؟`,\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Delete(Urls.userDeniedLimitations(id))\r\n .then(res => {\r\n if (res) {\r\n toast.success(\"کاربر مورد نظر با موفقیت از لیست سفید شد.\");;\r\n getUserList();\r\n }\r\n })\r\n\r\n }\r\n })\r\n }\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    لیست کاربران سفید
    \r\n در این بخش میتوانید کاربرانی که محدودیت های ارسال برای آنها اعمال نمیشود را ببینید.\r\n
    \r\n
    \r\n {loading === true\r\n ?\r\n \r\n :\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\nexport default WhiteUsers;\r\n","import {\r\n isCancellation, keyWord,\r\n} from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const AddBlacklistKeywordScema = Yup.object().shape({\r\n keyWord,\r\n isCancellation\r\n});\r\n","import { Formik } from \"formik\";\r\nimport React from \"react\";\r\nimport { toast } from \"react-toastify\";\r\nimport { StyledButton } from \"../../Component/Kit/Button\";\r\nimport { FormLable, StyledForm, StyledInput, StyledRadioBtn } from \"../../Component/Kit/Form\";\r\nimport ApiClient from \"../../Requester/ApiClient\";\r\nimport Urls from \"../../Requester/Urls\";\r\nimport { AddBlacklistKeywordScema } from \"../../Utility/Validation/Schema/AddBlacklistKeywordScema\";\r\n\r\nfunction AddBlacklistKeyword({ onCloseModal, dataChange }) {\r\n return (\r\n <>\r\n {\r\n ApiClient.Post(Urls.createBlacklistKeyword(), values)\r\n .then((res) => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n actions.resetForm();\r\n dataChange(true)\r\n onCloseModal(false)\r\n })\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n \r\n formik.setFieldValue(\"keyWord\", e.target.value)\r\n }\r\n />\r\n
    \r\n نوع \r\n
    \r\n \r\n formik.setFieldValue(\"isCancellation\", (e.target.value === 'true'))\r\n } />\r\n \r\n formik.setFieldValue(\"isCancellation\", (e.target.value === 'true'))\r\n } />\r\n
    \r\n
    \r\n
    \r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n \r\n اضافه کردن\r\n \r\n
    \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default AddBlacklistKeyword\r\n","\r\nimport * as Yup from \"yup\";\r\nimport { membershipKeyWord, cancellationKeyWord } from './../Rules';\r\n\r\nexport const SetDefaultBlackListKeywordSchema = Yup.object().shape({\r\n membershipKeyWord,\r\n cancellationKeyWord\r\n});","import { Formik } from 'formik';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { toast } from 'react-toastify';\r\nimport { StyledButton } from '../../Component/Kit/Button';\r\nimport { StyledForm } from '../../Component/Kit/Form';\r\nimport ApiClient from '../../Requester/ApiClient';\r\nimport Urls from '../../Requester/Urls';\r\nimport { StyledSelect } from './../../Component/Kit/Form';\r\nimport { SetDefaultBlackListKeywordSchema } from './../../Utility/Validation/Schema/SetDefaultBlackListKeywordSchema';\r\n\r\nexport const SetDefaultBlackListKeyword = ({ onCloseModal, dataChange, keywordList }) => {\r\n const [cancellationKeyWordList, setCancellationKeyWordList] = useState([]);\r\n const [membershipKeyWordList, setMembershipKeyWordList] = useState([]);\r\n\r\n useEffect(() => {\r\n if (Array.isArray(keywordList)) {\r\n let cancel = [];\r\n let memeber = [];\r\n keywordList.map(el => {\r\n el.isCancellation\r\n ? cancel.push({ value: el.id, name: el.keyWord, isDefault: el.isDefault })\r\n : memeber.push({ value: el.id, name: el.keyWord, isDefault: el.isDefault })\r\n })\r\n setCancellationKeyWordList(cancel);\r\n setMembershipKeyWordList(memeber)\r\n }\r\n }, [keywordList])\r\n\r\n return (\r\n <>\r\n el.isDefault)?.value}` : 0,\r\n cancellationKeyWord: cancellationKeyWordList ? `${cancellationKeyWordList.find(el => el.isDefault)?.value}` : 0,\r\n }}\r\n enableReinitialize={true}\r\n validationSchema={SetDefaultBlackListKeywordSchema}\r\n onSubmit={(values, actions) => {\r\n const payload = {\r\n membershipKeyWordId: Number(values.membershipKeyWord),\r\n cancellationKeyWordId: Number(values.cancellationKeyWord)\r\n }\r\n ApiClient.Put(Urls.setDefaultBlacklistKeyword(), payload)\r\n .then((res) => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n actions.resetForm();\r\n onCloseModal(false)\r\n dataChange(true)\r\n })\r\n }}\r\n onReset={(values, formikBag) => {\r\n onCloseModal(false)\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n {\r\n formik.setFieldValue(\"membershipKeyWord\", e.target.value)\r\n }}\r\n />\r\n {\r\n formik.setFieldValue(\"cancellationKeyWord\", e.target.value)\r\n }}\r\n />\r\n\r\n
    \r\n \r\n بستن\r\n \r\n \r\n ثبت تغییرات\r\n \r\n
    \r\n\r\n \r\n )}\r\n\r\n \r\n \r\n )\r\n}\r\n\r\nexport default SetDefaultBlackListKeyword","import React, { useEffect, useState } from 'react';\r\nimport { toast } from \"react-toastify\";\r\nimport Swal from \"sweetalert2\";\r\nimport { StyledButton } from '../../Component/Kit/Button';\r\nimport { HeaderContent, MainContent } from '../../Component/Kit/Layout';\r\nimport Modal from \"../../Component/Kit/Modal\";\r\nimport Table from '../../Component/Shared/Table/Table';\r\nimport ApiClient from '../../Requester/ApiClient';\r\nimport Urls from '../../Requester/Urls';\r\nimport AddBlacklistKeyword from \"./add-blacklist-keyword\";\r\nimport { SetDefaultBlackListKeyword } from './set-default-blacklist-keyword';\r\n\r\nexport const BlackList = () => {\r\n const [blacklistItem, setBlacklistItem] = useState({});\r\n const [isModal, setIsModal] = useState(false);\r\n const [defualtKeywordModal, setDefualtKeywordModal] = useState(false);\r\n\r\n const tableConfig = {\r\n header: {\r\n keyWord: 'کلمه کلیدی',\r\n type: 'نوع',\r\n keyWordDefault: 'پیشفرض'\r\n },\r\n actions: {\r\n delete: {\r\n icon: \"fa fa-trash\",\r\n condition: (data) => {\r\n return (!data.isDefault)\r\n }\r\n },\r\n },\r\n }\r\n\r\n const tableActions = (item) => {\r\n if (item.actionName) {\r\n deleteKeyword(item.data.id)\r\n }\r\n }\r\n\r\n const deleteKeyword = (item) => {\r\n Swal.fire({\r\n title: '',\r\n text: `آیا از حذف این کلیدواژه مطمئن هستید؟`,\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n\r\n ApiClient.Delete(Urls.deleteBlacklistKeyword(item))\r\n .then(res => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n getBlackList()\r\n })\r\n }\r\n })\r\n\r\n }\r\n\r\n const clickHandler = () => {\r\n setIsModal(true)\r\n }\r\n\r\n const setDefualtKeywordModalHandler = () => {\r\n setDefualtKeywordModal(true)\r\n }\r\n const getBlackList = () => {\r\n ApiClient.Get(Urls.getBlacklistKeyword())\r\n .then(res => {\r\n let resData = res?.result;\r\n resData = resData.map((el) => {\r\n return {\r\n ...el,\r\n type: el.isCancellation ? 'لغو' : 'عضویت',\r\n keyWordDefault: el.isDefault\r\n ? ``\r\n : ``,\r\n }\r\n })\r\n setBlacklistItem(resData)\r\n })\r\n }\r\n const modalDataChange = (e) => {\r\n if (e) {\r\n getBlackList();\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getBlackList()\r\n }, [])\r\n\r\n return (\r\n <>\r\n \r\n clickHandler()}>\r\n ایجاد کلیدواژه\r\n \r\n\r\n setDefualtKeywordModalHandler()}>\r\n کلیدواژه پیشفرض\r\n \r\n \r\n\r\n \r\n
    \r\n
    \r\n
    کلیدواژه‌های لیست سیاه
    \r\n \r\n مدیریت و ایجاد کلیدواژه‌های پیشفرض از این صفحه امکان‌پذیر است.\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n setIsModal(false)}\r\n visible={isModal}\r\n onCancel={() => setIsModal(false)}\r\n headerTitle=\"افزودن کلیدواژه برای لیست سیاه\"\r\n >\r\n setIsModal(e)}\r\n dataChange={(e) => modalDataChange(e)} />\r\n \r\n\r\n setDefualtKeywordModal(false)}\r\n onCancel={() => setDefualtKeywordModal(false)}\r\n visible={defualtKeywordModal}\r\n headerTitle=\"تعیین کلیدواژه پیش‌فرض\"\r\n >\r\n setDefualtKeywordModal(e)}\r\n dataChange={(e) => modalDataChange(e)} keywordList={blacklistItem} />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default BlackList\r\n","import React, { useEffect, useState } from 'react';\r\nimport { MainContent, PageTitleLayout, WrapperLayout } from '../../../Component/Kit/Layout';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport Table from './../../../Component/Shared/Table/Table';\r\nimport DateConvert from './../../../Utility/Services/date-convert';\r\nimport { AdminActivityOperationService } from './../../../Utility/Services/AdminActivityOperationService';\r\nimport { ConvertQueryString } from '../../../Utility/Services/convert-query-string';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nconst AdminActivityLogs = ({ history }) => {\r\n const location = useLocation();\r\n const [adminsLogList, setAdminsLogList] = useState({});\r\n\r\n const tableConfig = {\r\n header: {\r\n adminUserName: \"نام کاربری ادمین\",\r\n userName: \"نام کاربری کاربر\",\r\n operation: \"عملیات\",\r\n description: \"توضیحات\",\r\n createdAt: \"تاریخ و ساعت\",\r\n },\r\n actions: {},\r\n placeholder: ['userName', 'adminUserName'],\r\n mode: [\"filter\", \"search\"],\r\n filters: [\"operation\", \"datePickerFilter\"],\r\n }\r\n\r\n\r\n useEffect(() => {\r\n ApiClient.Get(Urls.GetAdminActivityLog(), ConvertQueryString(location.search))\r\n .then(res => {\r\n res.result.items.map(m => {\r\n m.createdAt = DateConvert(m.createdAt);\r\n m.operation = AdminActivityOperationService(m.operation)\r\n })\r\n setAdminsLogList(res.result)\r\n })\r\n }, [location.search])\r\n\r\n\r\n\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    سوابق فعالیت‌های مدیران
    \r\n در این بخش، کلیه فعالیت‌های مدیران و سوابق آن قابل مشاهده است.\r\n \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default AdminActivityLogs","import { AdminActivityOperationModel } from \"../Model/AdminActivityOperationModel\";\r\n\r\nexport const AdminActivityOperationService = (value) => {\r\n return AdminActivityOperationModel.find(item => item.value === value)?.name\r\n}","export const DiscountCodeDetailAction = (data) => ({\r\n type: 'DISCOUNT_CODE_DETAILS',\r\n data\r\n})\r\n","import React, { useCallback, useEffect, useState } from 'react'\r\nimport { connect, useDispatch } from 'react-redux';\r\nimport { useHistory, useLocation } from 'react-router-dom';\r\nimport { toast } from 'react-toastify';\r\nimport Swal from 'sweetalert2';\r\nimport { DiscountCodeDetailAction } from '../../../Actions/DiscountCodeDetail';\r\nimport { StyledButton } from '../../../Component/Kit/Button';\r\nimport { HeaderContent, MainContent, PageTitleLayout, WrapperLayout } from '../../../Component/Kit/Layout';\r\nimport { Loader } from '../../../Component/Shared/Loader';\r\nimport Table from '../../../Component/Shared/Table/Table';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport { ConvertQueryString } from '../../../Utility/Services/convert-query-string';\r\nimport DateConvert from '../../../Utility/Services/date-convert';\r\n\r\nexport const DiscountCodeList = () => {\r\n const location = useLocation();\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n const [discountCodeList, setDiscountCodeList] = useState({});\r\n const [loading, setLoading] = useState(true);\r\n\r\n const tableConfig = {\r\n header: {\r\n code: \"کد تخفیف\",\r\n usageLimitationPerUser: 'محدودیت استفاده برای هر کاربر',\r\n usedCount: 'تعداد استفاده',\r\n createdAt: \"تاریخ ایجاد\",\r\n fromDateString: \"شروع اعتبار\",\r\n toDateString: \"پایان اعتبار\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n },\r\n edit: {\r\n icon: \"fa fa-edit\",\r\n },\r\n delete: {\r\n icon: \"fa fa-trash\",\r\n }\r\n },\r\n };\r\n\r\n function tableActions(items) {\r\n switch (items.actionName) {\r\n case 'edit':\r\n dispatch(DiscountCodeDetailAction(items.data))\r\n // TODO\r\n history.push(`discount-code/${items.data.id}`);\r\n break;\r\n case 'delete':\r\n deleteDiscountCode(items.data.id);\r\n break;\r\n case 'view':\r\n history.push(`discount-code/${items.data.id}/log`);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n const deleteDiscountCode = (codeID) => {\r\n Swal.fire({\r\n title: '',\r\n text: `آیا از حذف این کد تخفیف مطمئن هستید؟`,\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Delete(Urls.PublicDiscountCode(codeID))\r\n .then(() => {\r\n toast.success('کد تخفیف با موفقیت حذف گردید.');\r\n getDiscountCodeList();\r\n })\r\n }\r\n })\r\n\r\n }\r\n\r\n const getDiscountCodeList = useCallback(() => {\r\n ApiClient.Get(Urls.PublicDiscountCode(), ConvertQueryString(location.search))\r\n .then((res) => {\r\n let dataItem = res.result;\r\n dataItem.items.map((m, i) => {\r\n m.createdAt = DateConvert(m.createdAt);\r\n m.fromDateString = DateConvert(m.fromDate);\r\n m.toDateString = DateConvert(m.toDate);\r\n return m;\r\n });\r\n setDiscountCodeList(dataItem);\r\n setLoading(false)\r\n })\r\n }, [location.search])\r\n\r\n useEffect(() => {\r\n getDiscountCodeList();\r\n }, [location.search, getDiscountCodeList]);\r\n\r\n return (\r\n \r\n \r\n
    \r\n history.push('/discount-code/add')}\r\n >\r\n ایجاد کدتخفیف\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    لیست کدهای تخفیف
    \r\n در این بخش لیست همه کدهای تخفیف قابل مشاهده است.\r\n
    \r\n
    \r\n {loading === true\r\n ?\r\n \r\n :\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default connect()(DiscountCodeList)","import React, { useEffect, useState } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useHistory, useRouteMatch } from 'react-router-dom';\r\nimport { FormLayout } from '../../../../../Component/Kit/Form';\r\nimport { UploadFileWrqapper } from '../../../../../Component/Kit/UploadZone';\r\nimport { toast } from 'react-toastify';\r\nimport ApiClient from '../../../../../Requester/ApiClient';\r\nimport Urls from '../../../../../Requester/Urls';\r\n\r\nconst EditUserdocuments = ({ userProfileData }) => {\r\n let match = useRouteMatch();\r\n const history = useHistory();\r\n const [nationalCardUrl, setNationalCardUrl] = useState('');\r\n const [gazetteURL, setGazetteURL] = useState('');\r\n\r\n useEffect(() => {\r\n if (Object.entries(userProfileData).length) {\r\n setNationalCardUrl(userProfileData.nationalCardUploadedURL);\r\n setGazetteURL(userProfileData.gazetteUploadedURL || null);\r\n } else {\r\n history.push(`/userDetail/${match.params.id}/profile`);\r\n }\r\n }, [history, match.params.id, userProfileData])\r\n\r\n const changeImageHandler = (e) => {\r\n const nationalCardImage = e.target.files[0];\r\n if (nationalCardImage.size > 3000000) {\r\n toast.warning(\"سایز عکس بیشتر از مقدار مجاز است\");\r\n return\r\n }\r\n const formData = new FormData();\r\n formData.append('file', nationalCardImage, nationalCardImage.name);\r\n ApiClient.Patch(Urls.modifyUserNationalCardImage(match.params.id), formData)\r\n .then(res => {\r\n setNationalCardUrl(res.result);\r\n toast.success('آپلود کارت ملی با موفقیت انجام شد.');\r\n });\r\n };\r\n\r\n const changeGazetteImageHandler = (e) => {\r\n const gazetteImage = e.target.files[0];\r\n if (gazetteImage.size > 3000000) {\r\n toast.warning(\"سایز عکس بیشتر از مقدار مجاز است\");\r\n return\r\n }\r\n const formData = new FormData();\r\n formData.append('file', gazetteImage, gazetteImage.name);\r\n ApiClient.Patch(Urls.modifyUserGazetteImage(match.params.id), formData)\r\n .then(res => {\r\n setGazetteURL(res.result);\r\n toast.success('آپلود روزنامه رسمی با موفقیت انجام شد.');\r\n });\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    ویرایش اسناد کاربر
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n کارت ملی\r\n
    \r\n\r\n {\r\n changeImageHandler(e)\r\n }}\r\n format=\"image/jpg, image/jpeg, image/png\"\r\n />\r\n
    \r\n
    \r\n\r\n {userProfileData.gazetteUploadedURL &&\r\n
    \r\n \r\n
    \r\n روزنامه رسمی\r\n
    \r\n\r\n {\r\n changeGazetteImageHandler(e)\r\n }}\r\n format=\"image/jpg, image/jpeg, image/png\"\r\n />\r\n
    \r\n
    \r\n }\r\n
    \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n userProfileData: state.UserProfileDataReducer,\r\n});\r\nexport default connect(mapStateToProps)(EditUserdocuments);","let GenderModel = [\r\n {name: \"مرد\", value: true},\r\n {name: \"زن\", value: false},\r\n];\r\nexport default GenderModel;\r\n","import * as Yup from 'yup';\r\nimport {\r\n address, birthDate, certificateNo, cityId, email, fatherName, firstName, lastName, nationalId, postalCode, provinceId, userIsVip, userPhoneNumber, userUsername\r\n} from '../Rules';\r\n\r\nexport const EditUserProfileSchema = Yup.object().shape({\r\n email,\r\n userUsername,\r\n userIsVip,\r\n firstName,\r\n lastName,\r\n fatherName,\r\n nationalId,\r\n certificateNo,\r\n birthDate,\r\n userPhoneNumber,\r\n provinceId,\r\n cityId,\r\n postalCode,\r\n address,\r\n});\r\n\r\n","import React, { useState } from \"react\";\r\nimport { StyledButton } from \"../../../../Component/Kit/Button\";\r\nimport {\r\n StyledCheckBox,\r\n StyledRadioBtn,\r\n FormLayout,\r\n} from \"../../../../Component/Kit/Form\";\r\n\r\nfunction EditUserInvoiceModal({ data, onCloseModal, confirmModal }) {\r\n const [invoiceList, setInvoiceList] = useState([]);\r\n const [isChange, setIsChange] = useState(false);\r\n\r\n const invoiceHandler = (id, checked, confirmModal) => {\r\n const invoices = invoiceList;\r\n const invoiceID = Number(id);\r\n if (checked && !invoices.includes(invoiceID)) {\r\n invoices.push(invoiceID);\r\n }\r\n if (!checked) {\r\n const invoiceIndex = invoices.findIndex((f) => f === invoiceID);\r\n if (invoiceIndex >= 0) {\r\n invoices.splice(invoiceIndex, 1);\r\n }\r\n }\r\n setInvoiceList([...invoices]);\r\n };\r\n\r\n const switchHandler = (value) => {\r\n setIsChange(value);\r\n setInvoiceList([]);\r\n };\r\n\r\n const submitModal = () => {\r\n if (isChange) {\r\n const body = [...invoiceList]\r\n confirmModal(body);\r\n } else {\r\n confirmModal(null);\r\n }\r\n };\r\n\r\n return (\r\n data && (\r\n <>\r\n
    \r\n
    \r\n switchHandler(e.target.value === \"true\")}\r\n />\r\n
    \r\n
    \r\n switchHandler(e.target.value === \"true\")}\r\n />\r\n
    \r\n
    \r\n {!isChange && (\r\n
    \r\n \r\n \r\n اطلاعات فاکتورهای قبلی کاربر تغییری نمی کند.\r\n
    \r\n \r\n )}\r\n {isChange && (\r\n <>\r\n {data.userInvoices && (\r\n <>\r\n
    \r\n \r\n
    \r\n لیست فاکتورها\r\n
    \r\n
    \r\n {Object.entries(data.userInvoices).map(\r\n (invoice, index) => (\r\n
    \r\n <>\r\n \r\n invoiceHandler(invoice[0], e.target.checked)\r\n }\r\n />\r\n \r\n
    \r\n )\r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n )}\r\n \r\n )}\r\n
    \r\n submitModal()}\r\n type=\"button\"\r\n >\r\n تایید\r\n \r\n\r\n {\r\n onCloseModal(false);\r\n }}\r\n >\r\n انصراف\r\n \r\n
    \r\n \r\n )\r\n );\r\n}\r\n\r\nexport default EditUserInvoiceModal;\r\n","import { Formik } from 'formik';\r\nimport moment from 'moment-jalaali';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { useHistory, useRouteMatch } from 'react-router-dom';\r\nimport { toast } from 'react-toastify';\r\nimport { StyledButton } from '../../../../../Component/Kit/Button';\r\nimport { FormLable, FormLayout, StyledCheckBox, StyledForm, StyledInput, StyledSelect, StyledTextArea } from '../../../../../Component/Kit/Form';\r\nimport Modal from '../../../../../Component/Kit/Modal';\r\nimport { MyDatePicker } from '../../../../../Component/Shared/DatePicker';\r\nimport ApiClient from '../../../../../Requester/ApiClient';\r\nimport Urls from '../../../../../Requester/Urls';\r\nimport GenderModel from '../../../../../Utility/Model/gender.model';\r\nimport { EditUserProfileSchema } from '../../../../../Utility/Validation/Schema/EditUserProfileSchema';\r\nimport EditUserInvoiceModal from '../../EditUserInvoiceModal';\r\n\r\nconst EditUserInformation = ({ userProfileData, locationData }) => {\r\n let match = useRouteMatch();\r\n const history = useHistory();\r\n const [submitLoading, setSubmitLoading] = useState(false);\r\n const [provinceItem, setProvinceItem] = useState([]);\r\n const [cityItem, setCityItem] = useState([]);\r\n\r\n const [invoiceInformation, setInvoiceInformation] = useState(null);\r\n const [invoiceModal, setInvoiceModal] = useState(false);\r\n\r\n const closeModal = () => {\r\n setInvoiceModal(false);\r\n history.push(`/userDetail/${match.params.id}/profile`);\r\n toast.success(\"تغییرات با موفقیت ثبت شد.\");\r\n };\r\n\r\n const invoiceHandler = (result) => {\r\n if (result) {\r\n ApiClient.Patch(Urls.modifyUserInvoice(match.params.id), result).then(\r\n (res) => {\r\n closeModal();\r\n }\r\n );\r\n } else {\r\n closeModal();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n if (Object.entries(userProfileData).length) {\r\n setProvinceItem(locationData.provinceList);\r\n setCityItem(locationData.cityList);\r\n } else {\r\n history.push(`/userDetail/${match.params.id}/profile`);\r\n }\r\n }, [history, match.params.id, userProfileData])\r\n\r\n return (\r\n
    \r\n
    \r\n
    ویرایش اطلاعات کاربر
    \r\n
    \r\n\r\n
    \r\n {\r\n let body = {\r\n email: values.email,\r\n userName: values.userUsername,\r\n isVIP: values.userIsVip,\r\n firstName: values.firstName,\r\n lastName: values.lastName,\r\n fatherName: values.fatherName,\r\n nationalId: values.nationalId,\r\n certificateNo: values.certificateNo,\r\n birthDate: parseInt(values.birthDate),\r\n isMale: JSON.parse(values.isMale),\r\n phoneNumber: values.userPhoneNumber,\r\n provinceId: values.provinceId,\r\n cityId: values.cityId,\r\n postalCode: values.postalCode,\r\n address: values.address,\r\n nationalCardUrl: values.nationalCardUrl,\r\n avenue: values?.avenue,\r\n alley: values?.alley,\r\n plaque: values?.plaque,\r\n };\r\n setSubmitLoading(true);\r\n ApiClient.Patch(Urls.userProfile(match.params.id), body)\r\n .then((res) => {\r\n setSubmitLoading(false);\r\n if (res.result.userInvoices && Object.entries(res.result.userInvoices).length > 0) {\r\n setInvoiceInformation(res.result);\r\n setInvoiceModal(true);\r\n } else {\r\n toast.success(\"تغییرات با موفقیت ثبت شد.\");\r\n }\r\n }).catch(() => {\r\n setSubmitLoading(false);\r\n })\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n \r\n
    \r\n اطلاعات اولیه کاربر\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n formik.setFieldValue(\"email\", e.target.value)\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n formik.setFieldValue(\"userUsername\", e.target.value)\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n formik.setFieldValue(\"userIsVip\", e.target.checked)}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n اطلاعات هویتی\r\n
    \r\n
    \r\n
    \r\n \r\n formik.setFieldValue(\"firstName\", e.target.value)\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n formik.setFieldValue(\"lastName\", e.target.value)\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n formik.setFieldValue(\"fatherName\", e.target.value)\r\n }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n formik.setFieldValue(\"nationalId\", e.target.value)\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n formik.setFieldValue(\"certificateNo\", e.target.value)\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n تاریخ تولد\r\n \r\n {\r\n formik.setFieldValue(\r\n \"birthDate\",\r\n event.baseFormat\r\n )\r\n }}\r\n name=\"birthDate\"\r\n max={moment().subtract(18, 'years')}\r\n\r\n error={\r\n formik.errors.birthDate !== undefined\r\n ? formik.errors.birthDate\r\n : false\r\n }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n formik.setFieldValue(\"isMale\", e.target.value)\r\n }\r\n\r\n }\r\n />\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n اطلاعات نشانی\r\n
    \r\n
    \r\n
    \r\n \r\n formik.setFieldValue(\"userPhoneNumber\", e.target.value)\r\n }\r\n />\r\n
    \r\n
    \r\n {\r\n formik.setFieldValue(\"provinceId\", e.target.value)\r\n ApiClient.Get(Urls.getCity(e.target.value)).then(\r\n (res2) => {\r\n setCityItem(res2.result)\r\n formik.setFieldValue(\"cityId\", res2.result[0].value)\r\n }\r\n )\r\n }\r\n }\r\n />\r\n
    \r\n\r\n
    \r\n \r\n formik.setFieldValue(\"cityId\", e.target.value)\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n formik.setFieldValue(\"postalCode\", e.target.value)\r\n }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n formik.setFieldValue(\"avenue\", e.target.value)\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n formik.setFieldValue(\"alley\", e.target.value)\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n formik.setFieldValue(\"plaque\", e.target.value)\r\n }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n formik.setFieldValue(\"address\", e.target.value)\r\n }\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n ویرایش اطلاعات کاربر\r\n \r\n
    \r\n \r\n )}\r\n \r\n
    \r\n closeModal()}\r\n onCancel={() => closeModal()}\r\n visible={invoiceModal}\r\n headerTitle=\"فاکتور های کاربر\"\r\n >\r\n closeModal()}\r\n confirmModal={(e) => invoiceHandler(e)}\r\n />\r\n \r\n
    \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n userProfileData: state.UserProfileDataReducer,\r\n locationData: state.LocationDataReducer,\r\n});\r\nexport default connect(mapStateToProps)(EditUserInformation);","import * as Yup from \"yup\";\r\nimport {\r\n companyName,\r\n registrationNumber,\r\n nationalIdCompany,\r\n economicCode,\r\n companyType,\r\n companyActivityField,\r\n} from \"../Rules\";\r\nexport const EditUserLegalSchema = Yup.object().shape({\r\n companyName,\r\n registrationNumber,\r\n nationalIdCompany,\r\n companyType,\r\n companyActivityField,\r\n});\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { useHistory, useRouteMatch } from \"react-router-dom\";\r\nimport { Formik } from \"formik\";\r\nimport {\r\n StyledForm,\r\n StyledInput,\r\n StyledSelect,\r\n} from \"../../../../../Component/Kit/Form\";\r\nimport { EditUserLegalSchema } from \"../../../../../Utility/Validation/Schema/EditUserLegalSchema\";\r\nimport {\r\n CompanyActivityList,\r\n CompanyTypeList,\r\n} from \"../../../../../Utility/Model/company.model\";\r\nimport { StyledButton } from \"../../../../../Component/Kit/Button\";\r\nimport ApiClient from \"../../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../../Requester/Urls\";\r\nimport { toast } from \"react-toastify\";\r\nimport EditUserInvoiceModal from \"../../EditUserInvoiceModal\";\r\nimport Modal from \"../../../../../Component/Kit/Modal\";\r\n\r\nfunction EditUserLegalInformation({ userLegalData }) {\r\n const [legalInformation, setLegalInformation] = useState(null);\r\n const [invoiceInformation, setInvoiceInformation] = useState(null);\r\n let match = useRouteMatch();\r\n const history = useHistory();\r\n const [submitLoading, setSubmitLoading] = useState(false);\r\n const [invoiceModal, setInvoiceModal] = useState(false);\r\n\r\n const invoiceHandler = (result) => {\r\n if (result) {\r\n ApiClient.Patch(Urls.modifyUserInvoice(match.params.id), result).then(\r\n (res) => {\r\n closeModal();\r\n }\r\n );\r\n } else {\r\n closeModal();\r\n }\r\n };\r\n const closeModal = () => {\r\n setInvoiceModal(false);\r\n history.push(`/userDetail/${match.params.id}/profile`);\r\n toast.success(\"تغییرات با موفقیت ثبت شد.\");\r\n };\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n if (Object.entries(userLegalData).length && userLegalData.isLegal) {\r\n setLegalInformation(userLegalData);\r\n } else {\r\n history.push(`/userDetail/${match.params.id}/profile`);\r\n }\r\n }, [history, match.params.id, userLegalData]);\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n
    ویرایش اطلاعات حقوقی
    \r\n
    \r\n\r\n {legalInformation && (\r\n
    \r\n {\r\n let body = {\r\n companyName: values.companyName,\r\n registrationNumber: values.registrationNumber,\r\n nationalId: values.nationalIdCompany,\r\n companyType: values.companyType,\r\n companyActivityField: values.companyActivityField,\r\n };\r\n setSubmitLoading(true);\r\n\r\n ApiClient.Patch(Urls.modifyUserLegal(match.params.id), body)\r\n .then((res) => {\r\n setSubmitLoading(false);\r\n if (Object.entries(res.result.userInvoices).length > 0) {\r\n setInvoiceInformation(res.result);\r\n setInvoiceModal(true);\r\n } else {\r\n toast.success(\"تغییرات با موفقیت ثبت شد.\");\r\n }\r\n })\r\n .catch(() => {\r\n setSubmitLoading(false);\r\n });\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
    \r\n
    \r\n \r\n formik.setFieldValue(\"companyName\", e.target.value)\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n formik.setFieldValue(\"registrationNumber\", e.target.value)\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n formik.setFieldValue(\"nationalIdCompany\", e.target.value)\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n formik.setFieldValue(\"companyType\", e.target.value)\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n formik.setFieldValue(\"companyActivityField\", e.target.value)\r\n }\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n ویرایش اطلاعات کاربر\r\n \r\n
    \r\n \r\n )}\r\n \r\n
    \r\n )}\r\n
    \r\n closeModal()}\r\n onCancel={() => closeModal()}\r\n visible={invoiceModal}\r\n headerTitle=\"فاکتور های کاربر\"\r\n >\r\n closeModal()}\r\n confirmModal={(e) => invoiceHandler(e)}\r\n />\r\n \r\n \r\n );\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n userLegalData: state.UserLegalDataReducer,\r\n});\r\n\r\nexport default connect(mapStateToProps)(EditUserLegalInformation);\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n NavLink,\r\n Route,\r\n Switch,\r\n useHistory,\r\n useLocation,\r\n useRouteMatch,\r\n} from \"react-router-dom\";\r\nimport BackToPage from \"../../../../Component/Kit/back\";\r\nimport {\r\n HeaderContent,\r\n MainContent,\r\n WrapperLayout,\r\n} from \"../../../../Component/Kit/Layout\";\r\nimport EditUserdocuments from \"./EditUserdocuments\";\r\nimport EditUserInformation from \"./EditUserInformation\";\r\nimport EditUserLegalInformation from \"./EditUserLegalInformation\";\r\nimport { connect } from \"react-redux\";\r\n\r\nconst EditUserProfile = ({ userProfileData }) => {\r\n let match = useRouteMatch();\r\n const history = useHistory();\r\n const location = useLocation();\r\n const [prev, setPrev] = useState(\"\");\r\n const [isLegal, setIsLegal] = useState(false);\r\n useEffect(() => {\r\n if (Object.entries(userProfileData).length) {\r\n setIsLegal(userProfileData.isLegal);\r\n } else {\r\n history.push(`/userDetail/${match.params.id}/profile`);\r\n }\r\n\r\n if (!location.state) {\r\n setPrev(`/userDetail/${match.params.id}/profile`);\r\n }\r\n }, [location.state, userProfileData]);\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n \r\n
      \r\n
    • \r\n \r\n ویرایش اطلاعات کاربر\r\n \r\n
    • \r\n {isLegal &&\r\n
    • \r\n \r\n ویرایش اطلاعات حقوقی\r\n \r\n
    • \r\n }\r\n
    • \r\n \r\n ویرایش مستندات\r\n \r\n
    • \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n userProfileData: state.UserProfileDataReducer,\r\n});\r\n\r\nexport default connect(mapStateToProps)(EditUserProfile);\r\n","const SaleCooperationTransactionTypeModal = [\r\n {value: 1, name: 'خط'},\r\n {value: 2, name: ' شارژ'},\r\n {value: 3, name: 'پکیج'},\r\n {value: 4, name: 'تسویه'},\r\n]\r\nexport default SaleCooperationTransactionTypeModal","import React, { useEffect, useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport {MainContent, PageTitleLayout} from \"../../../Component/Kit/Layout\";\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport {useHistory, useLocation} from \"react-router-dom\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport {ConvertQueryString} from \"../../../Utility/Services/convert-query-string\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport SaleCooperationTransactionTypeModal from \"../../../Utility/Model/SaleCooperationTransaction.Modal\";\r\n\r\nfunction SaleCooperationTransaction() {\r\n const [transaction, setTransaction] = useState({});\r\n const location = useLocation();\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n ApiClient.Get(Urls.getSaleCooperationTransaction(), ConvertQueryString(location.search))\r\n .then(res => {\r\n res.result.items.map((item) => {\r\n item.createdAt = DateConvert(item.createdAt);\r\n item.type = SaleCooperationTransactionTypeModal.find(a => a.value === item.type).name\r\n item.amount = item.amount?.toLocaleString('fa-IR')\r\n })\r\n setTransaction(res.result)\r\n })\r\n }, [location.search])\r\n const tableConfig = {\r\n header: {\r\n amount: \"مبلغ\",\r\n presenterUserName: 'بازاریاب',\r\n createdAt: \"تاریخ\",\r\n description: \"توضیحات\",\r\n type: \"نوع\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n }\r\n },\r\n mode: [\"search\", \"filter\"],\r\n filters: [\"datePickerFilter\"]\r\n };\r\n const tableActions = (item) => {\r\n if (item.actionName === 'view') {\r\n history.push(`/userDetail/${item.data.presenterId}/profile`)\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n
    تراکنش های بخش همکاری در فروش
    \r\n در اینجا می‌توانید همه‌ی تراکنش های بخش همکاری در فروش را مشاهده نمایید.\r\n
    \r\n \r\n
    \r\n \r\n )\r\n}\r\nexport default SaleCooperationTransaction;","import {Formik} from 'formik';\r\nimport React, {useRef} from 'react'\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport {FormLable, StyledForm, StyledInput, StyledSelect} from \"../../../../Component/Kit/Form\";\r\nimport {MyDatePicker} from \"../../../../Component/Shared/DatePicker\";\r\nimport moment from \"moment-jalaali\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\n\r\n\r\nexport const CreateAgreementModal = ({data, onSubmit, onCloseModal}) => {\r\n const SaleCooperationStatusEnum = {\r\n Pending: 1,\r\n InProgress: 2,\r\n Done: 3,\r\n Rejected: 4\r\n }\r\n const statusRef = useRef()\r\n const SaleCooperationStatusModal = [\r\n {value: 3, name: 'انجام شده'},\r\n {value: 4, name: 'رد شده'},\r\n ];\r\n return (\r\n {\r\n const errors = {};\r\n if (Number(values.status) === SaleCooperationStatusEnum.Done){\r\n if (values.trackingNumber === '') {\r\n errors.trackingNumber = 'این فیلد الزامی است.'\r\n }\r\n if (values.settledAt === '') {\r\n errors.notificationEndDate = 'این فیلد الزامی است.'\r\n }\r\n }\r\n return errors;\r\n }}\r\n onSubmit={(values, actions) => {\r\n if (data.status === SaleCooperationStatusEnum.Pending) {\r\n values.status = SaleCooperationStatusEnum.InProgress;\r\n }\r\n ApiClient.Put(Urls.editSaleCooperationTransaction(data.id), values)\r\n .then(res => {\r\n actions.resetForm()\r\n actions.setSubmitting(false);\r\n onSubmit()\r\n }).catch(\r\n ()=> {\r\n actions.setSubmitting(false);\r\n }\r\n )\r\n }}\r\n onReset={(values, formikBag) => {\r\n onCloseModal()\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n {data.status == SaleCooperationStatusEnum.Pending &&\r\n
    \r\n

    \r\n تغییر وضعیت توافقنامه به حالت بررسی\r\n

    \r\n\r\n
    \r\n }\r\n {data.status === SaleCooperationStatusEnum.InProgress &&\r\n
    \r\n {\r\n formik.setFieldValue(\"status\", e.target.value);\r\n statusRef.current = e.target.value;\r\n }\r\n }\r\n />\r\n
    \r\n }\r\n {formik?.values?.status == SaleCooperationStatusEnum.Done &&\r\n
    \r\n
    \r\n تاریخ ثبت تسویه\r\n {\r\n formik.setFieldValue(\r\n \"settledAt\",\r\n event.baseFormat\r\n )\r\n }}\r\n name=\"settledAt\"\r\n min={moment()}\r\n error={\r\n formik.errors.settledAt !== undefined\r\n ? formik.errors.settledAt\r\n : false\r\n }\r\n />\r\n
    \r\n {\r\n formik.setFieldValue(\"trackingNumber\", e.target.value)\r\n }}\r\n />\r\n
    \r\n }\r\n
    \r\n \r\n بستن\r\n \r\n \r\n ثبت تغییرات\r\n \r\n
    \r\n\r\n \r\n )}\r\n\r\n \r\n )\r\n}\r\n\r\nexport default CreateAgreementModal;","const SaleCooperationStatusModal = [\r\n {value: 1, name: 'درانتظار'},\r\n {value: 2, name: 'درحال بررسی'},\r\n {value: 3, name: 'انجام شده'},\r\n {value: 4, name: 'رد شده'},\r\n];\r\nexport default SaleCooperationStatusModal","import React, {useEffect, useState} from \"react\";\r\nimport {connect} from \"react-redux\";\r\nimport {MainContent, PageTitleLayout} from \"../../../Component/Kit/Layout\";\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport {ConvertQueryString} from \"../../../Utility/Services/convert-query-string\";\r\nimport {useLocation} from \"react-router-dom\";\r\nimport Modal from '../../../Component/Kit/Modal';\r\nimport CreateAgreementModal from \"./Create-agreement\";\r\nimport SaleCooperationSettlementModal from \"../../../Utility/Model/SaleCooperationSettlement.Modal\";\r\nimport {toast} from \"react-toastify\";\r\n\r\nfunction SaleCooperationSettlement() {\r\n\r\n const SaleCooperationStatusEnum = {\r\n Pending: 1,\r\n InProgress: 2,\r\n Done: 3,\r\n Rejected: 4\r\n }\r\n const [settlement, setSettlement] = useState({});\r\n const [agreementModal, setAgreementModal] = useState(false);\r\n const [createAgreementModal, setCreateAgreementModal] = useState(false);\r\n const [selectedData , setSelectedData] = useState({});\r\n\r\n const location = useLocation();\r\n const getSaleCooperationSettlement = () => {\r\n ApiClient.Get(Urls.getSaleCooperationSettlement(), ConvertQueryString(location.search))\r\n .then(res => {\r\n if (res){\r\n res.result.items.map((item) => {\r\n item.createdAt = DateConvert(item.createdAt);\r\n item.amount = item.amount?.toLocaleString('fa-IR')\r\n item.statusName = SaleCooperationSettlementModal?.find(a => a.value === item.status)?.name\r\n })\r\n setSettlement(res.result)\r\n }\r\n })\r\n }\r\n useEffect(() => {\r\n getSaleCooperationSettlement()\r\n }, [location.search])\r\n\r\n const tableConfig = {\r\n header: {\r\n amount: \"مبلغ\",\r\n createdAt: \"تاریخ\",\r\n shebaCode: 'شماره شبا',\r\n userName: 'کاربر',\r\n statusName: \"وضعیت\",\r\n },\r\n actions: {\r\n edit: {\r\n icon: \"fa fa-edit\",\r\n condition: (data) => {\r\n if (data.status !== SaleCooperationStatusEnum.Done && data.status !== SaleCooperationStatusEnum.Rejected) return true;\r\n return false;\r\n },\r\n },\r\n view: {\r\n icon: \"fa fa-eye\",\r\n condition: (data) => {\r\n if (data.agreement) return true;\r\n return false;\r\n },\r\n },\r\n },\r\n mode: [\"filter\"],\r\n filters: [\"datePickerFilter\"],\r\n };\r\n\r\n const tableActions = (item) => {\r\n setSelectedData(item.data)\r\n switch (item.actionName) {\r\n case 'view':\r\n setAgreementModal(true)\r\n break;\r\n case 'edit':\r\n setCreateAgreementModal(true)\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n const onEditAgreement = () => {\r\n setCreateAgreementModal(false);\r\n toast.success('عملیات با موفقیت انجام شد');\r\n getSaleCooperationSettlement()\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 setCreateAgreementModal(false)}\r\n onCancel={() => setCreateAgreementModal(false)}\r\n visible={createAgreementModal}\r\n headerTitle=\"ویرایش توافقنامه\"\r\n >\r\n {selectedData.status &&\r\n setCreateAgreementModal(false)} onSubmit={onEditAgreement} data={selectedData}>\r\n }\r\n \r\n\r\n setAgreementModal(false)}\r\n onCancel={() => setAgreementModal(false)}\r\n visible={agreementModal}\r\n headerTitle=\"نمایش توافقنامه\"\r\n >\r\n
    \r\n شماره پیگیری :\r\n {selectedData?.agreement?.trackingNumber}\r\n
    \r\n
    \r\n تاریخ:\r\n {DateConvert(selectedData?.agreement?.settledAt)}\r\n
    \r\n \r\n\r\n\r\n \r\n )\r\n}\r\n\r\nexport default SaleCooperationSettlement;","import React, {useCallback, useEffect, useState} from 'react';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport DateConvert from '../../../Utility/Services/date-convert';\r\nimport {sendSMSType} from '../../../Utility/Services/send-sms';\r\nimport limitationType from '../Services/send-sms-limitation-type';\r\nimport EnumFlag from '../../../Utility/Services/enum-flag';\r\nimport Table from '../../../Component/Shared/Table/Table';\r\nimport {HeaderContent, PageTitleLayout, WrapperLayout,} from '../../../Component/Kit/Layout';\r\nimport {useHistory, useLocation} from 'react-router-dom';\r\nimport {StyledButton} from '../../../Component/Kit/Button';\r\nimport moment from 'moment-jalaali';\r\nimport Swal from 'sweetalert2';\r\nimport {toast} from 'react-toastify';\r\nimport {ConvertQueryString} from '../../../Utility/Services/convert-query-string';\r\n\r\nlet interval;\r\n\r\nfunction PendingSMS() {\r\n let history = useHistory();\r\n const location = useLocation();\r\n const [pendingData, setpendingData] = useState([]);\r\n const [selectedList, setSelectedList] = useState([]);\r\n const [loadingFlag, setLoadingFlag] = useState(false);\r\n const [refreshDate, setRefreshDate] = useState(moment().format('HH:mm:ss'));\r\n\r\n const intervalTime = 90000;\r\n\r\n const tableConfig = {\r\n header: {\r\n userName: 'نام کاربری',\r\n messageText: 'متن پیامک',\r\n smsTypeTitle: 'نوع ارسال',\r\n lineNumber: 'شماره خط',\r\n limitationTypeTitle: 'دلایل محدودیت',\r\n forbiddenWords: 'کلمه فیلتر',\r\n recipientCount: 'تعداد مخاطبین',\r\n sentAt: 'زمان ارسال',\r\n },\r\n tooltipTitle: ['messageText'],\r\n actions: {\r\n view: {\r\n icon: 'fa fa-eye',\r\n },\r\n },\r\n hasSelectCol: true,\r\n };\r\n const tableActions = (item) => {\r\n if (item.actionName === 'view') {\r\n history.push(`/sms/${item.data.id}/${item.data.smsStorage}`);\r\n }\r\n };\r\n const getSMSQueue = useCallback(() => {\r\n ApiClient.Get(\r\n Urls.getPendingSMS(),\r\n ConvertQueryString(location.search)\r\n ).then((res) => {\r\n setRefreshDate(moment().format('HH:mm:ss'))\r\n let data = res.result;\r\n data.items.map((m) => {\r\n m.sentAt = DateConvert(m.sentAt);\r\n m.smsTypeTitle = sendSMSType(m.smsType);\r\n m.limitationTypeTitle = limitationType(\r\n EnumFlag([1, 2, 4, 8], m.limitationType)\r\n );\r\n m.forbiddenWords = m.forbiddenWords ? m.forbiddenWords : '-----';\r\n return m;\r\n });\r\n setpendingData(data);\r\n });\r\n }, [location.search]);\r\n\r\n const tableSelectedList = (item) => {\r\n setSelectedList([...item]);\r\n if (item.length) {\r\n clearInterval(interval);\r\n } else {\r\n autoRefresh();\r\n }\r\n };\r\n\r\n const updateHandler = () => {\r\n getSMSQueue();\r\n setLoadingFlag(true);\r\n setTimeout(() => {\r\n setLoadingFlag(false);\r\n }, 30000);\r\n };\r\n\r\n const queueSmsHandler = async (item) => {\r\n try {\r\n let result = await Swal.fire({\r\n title: '',\r\n text: `آیا از ${\r\n item ? 'تایید' : 'عدم تایید'\r\n } ارسال این پیامک ها مطمئن هستید؟`,\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonText: 'انصراف',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'بله، مطمئن هستم',\r\n });\r\n if (result.isConfirmed) {\r\n let queueList = new Map();\r\n selectedList.forEach((f) => {\r\n queueList.set(f.id.toString(), f.smsStorage.toString());\r\n });\r\n let body = {\r\n confirm: item,\r\n items: Object.fromEntries(queueList),\r\n };\r\n await ApiClient.Patch(Urls.getPendingSMS(), body);\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n setSelectedList([]);\r\n getSMSQueue();\r\n autoRefresh();\r\n }\r\n } catch (error) {\r\n toast.error(error);\r\n }\r\n };\r\n\r\n const autoRefresh = useCallback(() => {\r\n interval = setInterval(() => {\r\n getSMSQueue();\r\n }, intervalTime);\r\n }, [getSMSQueue]);\r\n\r\n useEffect(() => {\r\n getSMSQueue();\r\n autoRefresh();\r\n return () => clearInterval(interval);\r\n }, [autoRefresh, getSMSQueue]);\r\n\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n آخرین بروزرسانی: \r\n {refreshDate}\r\n
    \r\n updateHandler()}\r\n disabled={loadingFlag}\r\n >\r\n بروزرسانی\r\n \r\n
    \r\n
    \r\n queueSmsHandler(true)}\r\n disabled={!selectedList.length}\r\n >\r\n تائید پیام های انتخاب شده\r\n \r\n queueSmsHandler(false)}\r\n disabled={!selectedList.length}\r\n >\r\n عدم تائید پیام های انتخاب شده\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    صف ارسال پیامک
    \r\n \r\n دراین بخش می‌توانید پیامک‌هایی که نیاز به بررسی برای ارسال دارند\r\n را مدیریت نمایید.\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default PendingSMS;\r\n","import React, { useCallback, useEffect, useState } from 'react'\r\nimport { connect, useDispatch } from 'react-redux';\r\nimport {useHistory, useLocation, useParams} from 'react-router-dom';\r\nimport { StyledButton } from '../../../Component/Kit/Button';\r\nimport { HeaderContent, MainContent, PageTitleLayout, WrapperLayout } from '../../../Component/Kit/Layout';\r\nimport { Loader } from '../../../Component/Shared/Loader';\r\nimport Table from '../../../Component/Shared/Table/Table';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport { ConvertQueryString } from '../../../Utility/Services/convert-query-string';\r\nimport DateConvert from '../../../Utility/Services/date-convert';\r\nimport BackToPage from \"../../../Component/Kit/back\";\r\n\r\nexport const DiscountCodeLog = () => {\r\n const location = useLocation();\r\n const history = useHistory();\r\n const params = useParams();\r\n const dispatch = useDispatch();\r\n const [discountCodeList, setDiscountCodeList] = useState({});\r\n const [loading, setLoading] = useState(true);\r\n\r\n const tableConfig = {\r\n header: {\r\n userName: \"نام کاربری\",\r\n discountedPrice: 'مبلغ تخفیف خورده',\r\n isCompleted: 'تکمیل شده',\r\n createdAt: \"تاریخ ایجاد\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n }\r\n },\r\n };\r\n\r\n function tableActions(items) {\r\n switch (items.actionName) {\r\n case \"view\":\r\n history.push(`/userDetail/${items.data.userId}/profile`)\r\n break;\r\n }\r\n }\r\n\r\n const getDiscountCodeList = useCallback(() => {\r\n ApiClient.Get(Urls.DiscountCodeLogs(params.id), ConvertQueryString(location.search))\r\n .then((res) => {\r\n let dataItem = res.result;\r\n dataItem.items.map((m, i) => {\r\n m.createdAt = DateConvert(m.createdAt);\r\n m.discountedPrice = m.discountedPrice.toLocaleString('fa-IR') + ' ریال'\r\n m.isCompleted = m.isCompleted? '✔' : ''\r\n return m;\r\n });\r\n setDiscountCodeList(dataItem);\r\n setLoading(false)\r\n })\r\n }, [params.id , location.search])\r\n\r\n useEffect(() => {\r\n getDiscountCodeList();\r\n }, [location.search, getDiscountCodeList]);\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 {loading === true\r\n ?\r\n \r\n :\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default connect()(DiscountCodeLog)","import React, { useCallback, useEffect, useState } from 'react';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport Table from '../../../Component/Shared/Table/Table';\r\nimport {\r\n HeaderContent,\r\n PageTitleLayout,\r\n WrapperLayout,\r\n} from '../../../Component/Kit/Layout';\r\nimport { useHistory, useLocation } from 'react-router-dom';\r\nimport { StyledButton } from '../../../Component/Kit/Button';\r\nimport moment from 'moment-jalaali';\r\nimport Swal from 'sweetalert2';\r\nimport { toast } from 'react-toastify';\r\nimport {ConvertQueryString} from \"../../../Utility/Services/convert-query-string\";\r\n\r\nlet interval;\r\n\r\nfunction RepeatSMs() {\r\n let history = useHistory();\r\n const location = useLocation();\r\n const [pendingData, setpendingData] = useState([]);\r\n const [loadingFlag, setLoadingFlag] = useState(false);\r\n const [refreshDate, setRefreshDate] = useState(moment().format('HH:mm:ss'));\r\n const intervalTime = 90000;\r\n\r\n const tableConfig = {\r\n header: {\r\n userName: 'نام کاربری',\r\n messageText: 'متن پیامک',\r\n isValid: 'وضعیت',\r\n },\r\n tooltipTitle: ['messageText'],\r\n actions: {\r\n view: {\r\n icon: 'fa fa-eye',\r\n },\r\n edit: {\r\n icon: 'fa fa-check',\r\n },\r\n delete: {\r\n icon: 'fa fa-ban',\r\n },\r\n },\r\n };\r\n const tableActions = (item) => {\r\n if (item.actionName === 'view') {\r\n history.push(`/userDetail/${item.data.userId}/profile`);\r\n }else if (item.actionName === 'edit') {\r\n queueSmsHandler(true ,item.data.id).then()\r\n } else if (item.actionName === 'delete'){\r\n queueSmsHandler(false, item.data.id).then()\r\n }\r\n };\r\n const getSMSQueue = useCallback(() => {\r\n ApiClient.Get(Urls.getFrequentMessage(), ConvertQueryString(location.search)).then((res) => {\r\n setRefreshDate(moment().format('HH:mm:ss'))\r\n let data = res.result;\r\n data.items.map((m) => {\r\n m.isValid = 'تعیین نشده'\r\n return m;\r\n });\r\n // console.log(data)\r\n setpendingData(data);\r\n });\r\n }, [location.search]);\r\n\r\n const updateHandler = () => {\r\n getSMSQueue();\r\n setLoadingFlag(true);\r\n setTimeout(() => {\r\n setLoadingFlag(false);\r\n }, 30000);\r\n };\r\n\r\n const queueSmsHandler = async (item, userId) => {\r\n try {\r\n let result = await Swal.fire({\r\n title: '',\r\n text: `آیا از ${\r\n item ? 'تایید' : 'عدم تایید'\r\n } این متن اطمینان دارید؟`,\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonText: 'انصراف',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'بله، مطمئن هستم',\r\n });\r\n if (result.isConfirmed) {\r\n await ApiClient.Patch(Urls.setFrequentMessageValidation(userId), JSON.stringify(item));\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n getSMSQueue();\r\n autoRefresh();\r\n }\r\n } catch (error) {\r\n toast.error(error);\r\n }\r\n };\r\n\r\n const autoRefresh = useCallback(() => {\r\n interval = setInterval(() => {\r\n getSMSQueue();\r\n }, intervalTime);\r\n }, [getSMSQueue]);\r\n\r\n useEffect(() => {\r\n getSMSQueue();\r\n autoRefresh();\r\n return () => clearInterval(interval);\r\n }, [autoRefresh, getSMSQueue]);\r\n\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n updateHandler()}\r\n disabled={loadingFlag}\r\n >\r\n بروزرسانی\r\n \r\n
    \r\n آخرین بروزرسانی: \r\n {/* {new Date().toLocaleTimeString()} */}\r\n {refreshDate}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    پیام های پر تکرار
    \r\n \r\n دراین بخش می‌توانید پیامک‌هایی به صورت مکرر فرستاده شده را بررسی کنید.\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default RepeatSMs;\r\n","import React, { useCallback, useEffect, useState } from 'react';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport Table from '../../../Component/Shared/Table/Table';\r\nimport {\r\n HeaderContent,\r\n PageTitleLayout,\r\n WrapperLayout,\r\n} from '../../../Component/Kit/Layout';\r\nimport { useHistory, useLocation } from 'react-router-dom';\r\nimport { StyledButton } from '../../../Component/Kit/Button';\r\nimport moment from 'moment-jalaali';\r\nimport Swal from 'sweetalert2';\r\nimport { toast } from 'react-toastify';\r\nimport {ConvertQueryString} from \"../../../Utility/Services/convert-query-string\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\n\r\nlet interval;\r\n\r\nfunction RepeatSMsHistory() {\r\n let history = useHistory();\r\n const location = useLocation();\r\n const [pendingData, setpendingData] = useState([]);\r\n const [loadingFlag, setLoadingFlag] = useState(false);\r\n const [refreshDate, setRefreshDate] = useState(moment().format('HH:mm:ss'));\r\n const intervalTime = 90000;\r\n\r\n const tableConfig = {\r\n header: {\r\n userName: 'نام کاربری',\r\n messageText: 'متن پیامک',\r\n status: 'وضعیت',\r\n adminUserName: 'نام ادمین',\r\n handledAt : 'تاریخ تعیین وضعیت'\r\n },\r\n tooltipTitle: ['messageText'],\r\n actions: {\r\n view: {\r\n icon: 'fa fa-eye',\r\n },\r\n edit: {\r\n icon: 'fa fa-check',\r\n condition: (data) => {\r\n if (!data.isValid) return true;\r\n return false;\r\n },\r\n },\r\n delete: {\r\n icon: 'fa fa-ban',\r\n condition: (data) => {\r\n if (data.isValid) return true;\r\n return false;\r\n },\r\n },\r\n },\r\n\r\n mode: [\"filter\"],\r\n filters: [\"isValid\"]\r\n };\r\n const tableActions = (item) => {\r\n if (item.actionName === 'view') {\r\n history.push(`/userDetail/${item.data.userId}/profile`);\r\n }else if (item.actionName === 'edit') {\r\n queueSmsHandler(true ,item.data.id).then()\r\n } else if (item.actionName === 'delete'){\r\n queueSmsHandler(false, item.data.id).then()\r\n }\r\n };\r\n\r\n const getSMSQueue = useCallback(() => {\r\n\r\n ApiClient.Get(Urls.getFrequentMessage(), ConvertQueryString(location.search)).then((res) => {\r\n if (!location.search.includes('isValid')){\r\n history.push('?isValid=true')\r\n }\r\n setRefreshDate(moment().format('HH:mm:ss'))\r\n let data = res.result;\r\n data.items.map((m) => {\r\n m.handledAt = DateConvert(m.handledAt)\r\n m.status = m.isValid ? 'تایید شده' : 'عدم تایید'\r\n return m;\r\n });\r\n setpendingData(data);\r\n });\r\n }, [location.search]);\r\n\r\n const updateHandler = () => {\r\n getSMSQueue();\r\n setLoadingFlag(true);\r\n setTimeout(() => {\r\n setLoadingFlag(false);\r\n }, 30000);\r\n };\r\n\r\n const queueSmsHandler = async (item, userId) => {\r\n try {\r\n let result = await Swal.fire({\r\n title: '',\r\n text: `آیا از ${\r\n item ? 'تایید' : 'عدم تایید'\r\n } این متن اطمینان دارید؟`,\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonText: 'انصراف',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'بله، مطمئن هستم',\r\n });\r\n if (result.isConfirmed) {\r\n await ApiClient.Patch(Urls.setFrequentMessageValidation(userId), JSON.stringify(item));\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n getSMSQueue();\r\n autoRefresh();\r\n }\r\n } catch (error) {\r\n toast.error(error);\r\n }\r\n };\r\n\r\n const autoRefresh = useCallback(() => {\r\n interval = setInterval(() => {\r\n getSMSQueue();\r\n }, intervalTime);\r\n }, [getSMSQueue]);\r\n\r\n useEffect(() => {\r\n getSMSQueue();\r\n autoRefresh();\r\n return () => clearInterval(interval);\r\n }, [autoRefresh, getSMSQueue]);\r\n\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n updateHandler()}\r\n disabled={loadingFlag}\r\n >\r\n بروزرسانی\r\n \r\n
    \r\n آخرین بروزرسانی: \r\n {/* {new Date().toLocaleTimeString()} */}\r\n {refreshDate}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    تاریخچه پیام های پر تکرار
    \r\n \r\n دراین بخش می‌توانید تاریخچه پیامک‌هایی به صورت مکرر فرستاده شده را بررسی کنید.\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default RepeatSMsHistory;\r\n","import React, { useCallback, useEffect, useState } from 'react';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport Table from '../../../Component/Shared/Table/Table';\r\nimport {\r\n HeaderContent,\r\n PageTitleLayout,\r\n WrapperLayout,\r\n} from '../../../Component/Kit/Layout';\r\nimport { useHistory, useLocation } from 'react-router-dom';\r\nimport { StyledButton } from '../../../Component/Kit/Button';\r\nimport moment from 'moment-jalaali';\r\nimport Swal from 'sweetalert2';\r\nimport { toast } from 'react-toastify';\r\n\r\nlet interval;\r\n\r\nfunction RepeatVerifySMs() {\r\n let history = useHistory();\r\n let location = useLocation();\r\n const [pendingData, setpendingData] = useState([]);\r\n const [loadingFlag, setLoadingFlag] = useState(false);\r\n const [refreshDate, setRefreshDate] = useState(moment().format('HH:mm:ss'));\r\n const intervalTime = 90000;\r\n\r\n const tableConfig = {\r\n header: {\r\n userName: 'نام کاربر',\r\n mobile: 'شماره موبایل',\r\n totalSentCount: 'تعداد کل ارسال های انجام شده',\r\n pendingsCount: 'تعداد ارسال های در حال انتظار',\r\n },\r\n\r\n tooltipTitle: ['messageText'],\r\n actions: {\r\n view: {\r\n icon: 'fa fa-eye',\r\n },\r\n },\r\n };\r\n const tableActions = (item) => {\r\n if (item.actionName === 'view') {\r\n history.push(`/high-consumption-webservice/${item.data.userId}?onlyPendings=true`);\r\n }\r\n };\r\n\r\n const getSMSQueue = useCallback(() => {\r\n\r\n ApiClient.Get(Urls.highConsumptionVerify()).then((res) => {\r\n let data = res.result;\r\n setRefreshDate(moment().format('HH:mm:ss'))\r\n setpendingData(data);\r\n });\r\n }, []);\r\n\r\n const updateHandler = () => {\r\n getSMSQueue();\r\n setLoadingFlag(true);\r\n setTimeout(() => {\r\n setLoadingFlag(false);\r\n }, 30000);\r\n };\r\n\r\n const queueSmsHandler = async (item, userId) => {\r\n try {\r\n let result = await Swal.fire({\r\n title: '',\r\n text: `آیا از ${\r\n item ? 'تایید' : 'عدم تایید'\r\n } این متن اطمینان دارید؟`,\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonText: 'انصراف',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'بله، مطمئن هستم',\r\n });\r\n if (result.isConfirmed) {\r\n await ApiClient.Patch(Urls.setFrequentMessageValidation(userId), JSON.stringify(item));\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n getSMSQueue();\r\n autoRefresh();\r\n }\r\n } catch (error) {\r\n toast.error(error);\r\n }\r\n };\r\n\r\n const autoRefresh = useCallback(() => {\r\n interval = setInterval(() => {\r\n getSMSQueue();\r\n }, intervalTime);\r\n }, [getSMSQueue]);\r\n\r\n useEffect(() => {\r\n getSMSQueue();\r\n autoRefresh();\r\n return () => clearInterval(interval);\r\n }, [autoRefresh, getSMSQueue]);\r\n\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n updateHandler()}\r\n disabled={loadingFlag}\r\n >\r\n بروزرسانی\r\n \r\n
    \r\n آخرین بروزرسانی: \r\n {/* {new Date().toLocaleTimeString()} */}\r\n {refreshDate}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    محدودیت ارسال وب سرویس
    \r\n \r\n دراین بخش می‌توانید کاربرانی که بیش از حد مجاز سامانه ارسال وب سرویس انجام دادند را مشاهده کنید.\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default RepeatVerifySMs;\r\n","import React, {useCallback, useEffect, useState} from 'react';\r\nimport {HeaderContent, PageTitleLayout, WrapperLayout} from \"../../../Component/Kit/Layout\";\r\nimport {StyledButton} from \"../../../Component/Kit/Button\";\r\nimport moment from \"moment-jalaali\";\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport {useHistory, useLocation} from \"react-router-dom\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport {ConvertQueryString} from \"../../../Utility/Services/convert-query-string\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport {sendSMSStatus, sendSMSType} from \"../../../Utility/Services/send-sms\";\r\nimport limitationType from \"../Services/send-sms-limitation-type\";\r\nimport EnumFlag from \"../../../Utility/Services/enum-flag\";\r\nimport Swal from \"sweetalert2\";\r\nimport {toast} from \"react-toastify\";\r\n\r\nlet interval;\r\n\r\nfunction PublicLine(props) {\r\n\r\n let history = useHistory();\r\n const location = useLocation();\r\n const [pendingData, setpendingData] = useState([]);\r\n const [selectedList, setSelectedList] = useState([]);\r\n const [loadingFlag, setLoadingFlag] = useState(false);\r\n const [isDisableButt, setIsDisableButt] = useState(false);\r\n const [refreshDate, setRefreshDate] = useState(moment().format('HH:mm:ss'));\r\n const intervalTime = 90000;\r\n\r\n const tableConfig = {\r\n header: {\r\n userName: 'نام کاربری',\r\n messageText: 'متن پیامک',\r\n smsTypeTitle: 'نوع ارسال',\r\n lineNumber: 'شماره خط',\r\n limitationTypeTitle: 'دلایل محدودیت',\r\n forbiddenWords: 'کلمه فیلتر',\r\n recipientCount: 'تعداد مخاطبین',\r\n sentAt: 'زمان ارسال',\r\n stateFa: 'وضعیت',\r\n },\r\n tooltipTitle: ['messageText'],\r\n actions: {\r\n view: {\r\n icon: 'fa fa-eye',\r\n condition: (item) => {\r\n return (item.state === 6);\r\n },\r\n },\r\n },\r\n hasSelectCol: true,\r\n mode: [\"filter\"],\r\n filters: [\"ReviewState\"]\r\n };\r\n const tableActions = (item) => {\r\n if (item.actionName === 'view') {\r\n history.push(`/sms/${item.data.id}/${item.data.smsStorage}`);\r\n }\r\n };\r\n const getSMSQueue = useCallback(() => {\r\n\r\n ApiClient.Get(\r\n Urls.getPendingSMSPublicLine(),\r\n ConvertQueryString(location.search)\r\n ).then((res) => {\r\n let data = res.result;\r\n setRefreshDate(moment().format('HH:mm:ss'))\r\n data.items.map((m) => {\r\n m.sentAt = DateConvert(m.sentAt);\r\n m.smsTypeTitle = sendSMSType(m.smsType);\r\n m.limitationTypeTitle = limitationType(\r\n EnumFlag([1, 2, 4, 8, 64], m.limitationType)\r\n );\r\n m.stateFa = sendSMSStatus(m.state);\r\n m.forbiddenWords = m.forbiddenWords ? m.forbiddenWords : '-----';\r\n return m;\r\n });\r\n setpendingData(data);\r\n });\r\n }, [location.search]);\r\n\r\n const tableSelectedList = (item) => {\r\n item.find(function (el) {\r\n return el.state === 6\r\n }) ? setIsDisableButt(false) : setIsDisableButt(true);\r\n\r\n setSelectedList([...item]);\r\n if (item.length) {\r\n clearInterval(interval);\r\n } else {\r\n autoRefresh();\r\n }\r\n };\r\n\r\n const updateHandler = () => {\r\n getSMSQueue();\r\n setLoadingFlag(true);\r\n setTimeout(() => {\r\n setLoadingFlag(false);\r\n }, 30000);\r\n };\r\n\r\n const queueSmsHandler = async (item) => {\r\n try {\r\n let result = await Swal.fire({\r\n title: '',\r\n text: `آیا از ${\r\n item ? 'تایید' : 'عدم تایید'\r\n } ارسال این پیامک ها مطمئن هستید؟`,\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonText: 'انصراف',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'بله، مطمئن هستم',\r\n });\r\n if (result.isConfirmed) {\r\n let queueList = new Map();\r\n selectedList.forEach((f) => {\r\n queueList.set(f.id.toString(), f.smsStorage.toString());\r\n });\r\n let body = {\r\n confirm: item,\r\n items: Object.fromEntries(queueList),\r\n };\r\n await ApiClient.Patch(Urls.getPendingSMS(), body);\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n setSelectedList([]);\r\n getSMSQueue();\r\n autoRefresh();\r\n }\r\n } catch (error) {\r\n toast.error(error);\r\n }\r\n };\r\n\r\n const autoRefresh = useCallback(() => {\r\n interval = setInterval(() => {\r\n getSMSQueue();\r\n }, intervalTime);\r\n }, [getSMSQueue]);\r\n\r\n useEffect(() => {\r\n getSMSQueue();\r\n autoRefresh();\r\n return () => clearInterval(interval);\r\n }, [autoRefresh, getSMSQueue]);\r\n return (\r\n\r\n \r\n
    \r\n \r\n
    \r\n updateHandler()}\r\n disabled={loadingFlag}\r\n >\r\n بروزرسانی\r\n \r\n
    \r\n آخرین بروزرسانی: \r\n {/* {new Date().toLocaleTimeString()} */}\r\n {refreshDate}\r\n
    \r\n
    \r\n {\r\n !isDisableButt &&\r\n
    \r\n queueSmsHandler(true)}\r\n disabled={!selectedList.length}\r\n >\r\n تائید پیام های انتخاب شده\r\n \r\n queueSmsHandler(false)}\r\n disabled={!selectedList.length}\r\n >\r\n عدم تائید پیام های انتخاب شده\r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n \r\n
    صف ارسال پیامک
    \r\n \r\n دراین بخش می‌توانید پیامک‌هایی که نیاز به بررسی برای ارسال دارند\r\n را مدیریت نمایید.\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n\r\n}\r\n\r\nexport default PublicLine;","import React, {useCallback, useEffect, useState} from \"react\";\r\nimport {NavLink, Redirect, Route, Switch, useLocation} from \"react-router-dom\";\r\nimport BackToPage from \"../../Component/Kit/back\";\r\nimport {HeaderContent, MainContent} from \"../../Component/Kit/Layout\";\r\nimport PendingSMS from \"./list\";\r\nimport RepeatSMs from \"./Repeat-sms\";\r\nimport RepeatSmsHistory from \"./Repeat-sms-history\";\r\nimport RepeatVerifySMs from \"./Repeat-verify-sms\";\r\nimport PublicLine from \"./Public-line\";\r\nimport ApiClient from \"../../Requester/ApiClient\";\r\nimport Urls from \"../../Requester/Urls\";\r\nimport {Badge} from 'react-bootstrap';\r\n\r\nfunction PendingSmsPages({match}) {\r\n let location = useLocation();\r\n const [prev, setPrev] = useState('')\r\n const [smsCount, setSmsCount] = useState(null);\r\n\r\n const getBadgeData = useCallback(() => {\r\n ApiClient.Get(\r\n Urls.getCountSMS()\r\n ).then((res) => {\r\n let data = res.result;\r\n setSmsCount(data);\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n setPrev(location.state && location.state.from ? `/pending-sms/${location.state.from}` : '/pending-sms');\r\n getBadgeData()\r\n }, [location.state, getBadgeData])\r\n\r\n\r\n useEffect(() => {\r\n const interval = setInterval(() => {\r\n getBadgeData()\r\n }, 5000);\r\n return () => {\r\n clearInterval(interval);\r\n }\r\n }, [getBadgeData])\r\n\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n
      \r\n
    • \r\n\r\n \r\n\r\n لیست پیام ها\r\n\r\n {\r\n\r\n smsCount?.pendingSendMessagesCount > 0 ?\r\n\r\n \r\n\r\n {\r\n smsCount.pendingSendMessagesCount\r\n }\r\n\r\n \r\n\r\n :\r\n\r\n smsCount?.pendingSendMessagesCount == 0 ?\r\n <>\r\n \r\n \r\n : <>\r\n\r\n }\r\n\r\n \r\n
    • \r\n
    • \r\n\r\n \r\n پیام های پر تکرار در انتظار\r\n\r\n {\r\n\r\n smsCount?.frequentMessageTextsCount > 0 ?\r\n\r\n \r\n\r\n {\r\n smsCount.frequentMessageTextsCount\r\n }\r\n\r\n \r\n\r\n :\r\n\r\n smsCount?.frequentMessageTextsCount == 0 ?\r\n <>\r\n \r\n \r\n : <>\r\n\r\n }\r\n\r\n \r\n
    • \r\n\r\n
    • \r\n\r\n \r\n\r\n محدودیت ارسال وب سرویس\r\n\r\n {\r\n\r\n smsCount?.highConsumptionWebServiceUsersCount > 0 ?\r\n\r\n \r\n\r\n {\r\n smsCount.highConsumptionWebServiceUsersCount\r\n }\r\n\r\n \r\n\r\n :\r\n smsCount?.highConsumptionWebServiceUsersCount == 0 ?\r\n <>\r\n \r\n \r\n : <>\r\n\r\n }\r\n\r\n\r\n \r\n
    • \r\n
    • \r\n\r\n \r\n خطوط ویژه\r\n\r\n\r\n {\r\n\r\n smsCount?.pendingPublicLineSendMessagesCount > 0 ?\r\n\r\n \r\n\r\n {\r\n smsCount.pendingPublicLineSendMessagesCount\r\n }\r\n\r\n \r\n\r\n :\r\n smsCount?.pendingPublicLineSendMessagesCount == 0 ?\r\n <>\r\n \r\n \r\n : <>\r\n\r\n }\r\n\r\n\r\n \r\n
    • \r\n\r\n\r\n
    • \r\n \r\n تاریخچه پیام های پر تکرار\r\n \r\n
    • \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default PendingSmsPages;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useRouteMatch, useHistory, useLocation } from \"react-router-dom\";\r\nimport Table from \"./../../../../../Component/Shared/Table/Table\";\r\nimport ApiClient from \"./../../../../../Requester/ApiClient\";\r\nimport Urls from \"./../../../../../Requester/Urls\";\r\nimport { HeaderContent, MainContent, PageTitleLayout } from \"../../../../../Component/Kit/Layout\";\r\nimport DateConvert from \"../../../../../Utility/Services/date-convert\";\r\nimport { InvoiceType } from \"../../../../../Utility/Services/invoice\";\r\nimport BackToPage from \"../../../../../Component/Kit/back\";\r\nimport { ConvertQueryString } from \"../../../../../Utility/Services/convert-query-string\";\r\n\r\nfunction UserInvoice() {\r\n let match = useRouteMatch();\r\n let history = useHistory();\r\n let location = useLocation();\r\n const [officialInvoiceData, setofficialInvoiceData] = useState({});\r\n const tableConfig = {\r\n header: {\r\n id: \"شماره فاکتور\",\r\n typeName: \"نوع فاکتور\",\r\n createdAt: \"تاریخ و ساعت\",\r\n totalPrice: \"مبلغ کل\",\r\n isVerifiedTitle: 'وضعیت',\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n },\r\n },\r\n mode: [\"filter\", \"search\"],\r\n filters: [\"datePickerFilter\", \"InvoiceTypeFilter\", \"isVerifiedFilter\"],\r\n };\r\n const tableActions = (item) => {\r\n if (item.actionName === 'view') {\r\n if (item.data.type === 1) history.push(`/financial/invoice/${item.data.id}/false`)\r\n else if (item.data.type === 2) history.push(`/financial/invoice/${item.data.id}/true`)\r\n }\r\n }\r\n useEffect(() => {\r\n ApiClient.Get(Urls.userOfficialInvoice(match.params.id), ConvertQueryString(location.search))\r\n .then((res) => {\r\n let data = res.result;\r\n data.items.map((m) => {\r\n m.createdAt = DateConvert(m.createdAt);\r\n m.totalPrice = m.totalPrice.toLocaleString();\r\n m.typeName = InvoiceType(m.type);\r\n m.isVerifiedTitle = m.isVerified ? 'تایید شده' : 'تایید نشده'\r\n return m\r\n });\r\n setofficialInvoiceData(data);\r\n });\r\n }, [match.params.id, location.search]);\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n
    فاکتورها
    \r\n \r\n در اینجا لیست فاکتورهای این کاربر مورد بررسی قرار می‌گیرد.\r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default UserInvoice;\r\n","import invoiceTypeModel from \"./../Model/invoice.model\";\r\nfunction InvoiceType(value) {\r\n let result = invoiceTypeModel.find((item) => item.value === value);\r\n return result.name;\r\n}\r\n\r\nexport { InvoiceType };\r\n","import { Formik } from \"formik\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { useHistory, useRouteMatch } from \"react-router-dom\";\r\nimport { toast } from \"react-toastify\";\r\nimport UploadIcon from \"../../../../Component/Icon/UploadIcon\";\r\nimport { StyledButton } from \"../../../../Component/Kit/Button\";\r\nimport { StyledForm, StyledInput, StyledInputUpload, StyledSelect, } from \"../../../../Component/Kit/Form\";\r\nimport { HeaderContent, MainContent, PageTitleLayout, WrapperLayout, } from \"../../../../Component/Kit/Layout\";\r\nimport BackToPage from \"../../../../Component/Kit/back\";\r\n\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\nimport { FileNamePreview, ImageBox, UploadConatiner, UploadTitle, } from \"../../../../Component/Kit/UploadZone\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport { CompanyTypeList } from \"../../../../Utility/Model/company.model\";\r\nimport { theme } from \"../../../../Utility/Theme\";\r\nimport { ConvertUserTypeSchema } from \"../../../../Utility/Validation/Schema/ConvertUserTypeSchema\";\r\nimport EditUserInvoiceModal from \"../EditUserInvoiceModal\";\r\nimport Swal from \"sweetalert2\";\r\n\r\nconst ConvertUserType = ({ userProfileData }) => {\r\n const [uploadPreview, setUploadPreview] = useState(null);\r\n const [uploadFile, setUploadFile] = useState(null);\r\n const [invoiceModal, setInvoiceModal] = useState(false);\r\n const [invoiceInformation, setInvoiceInformation] = useState(null);\r\n\r\n let match = useRouteMatch();\r\n const history = useHistory();\r\n\r\n const closeModal = () => {\r\n setInvoiceModal(false);\r\n history.push(`/userDetail/${match.params.id}/profile`);\r\n toast.success(\"تغییرات با موفقیت ثبت شد.\");\r\n };\r\n\r\n const invoiceHandler = (result) => {\r\n if (result) {\r\n ApiClient.Patch(Urls.modifyUserInvoice(match.params.id), result).then(\r\n (res) => {\r\n closeModal();\r\n }\r\n );\r\n } else {\r\n closeModal();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (Object.keys(userProfileData).length === 0) {\r\n history.push(`/userDetail/${match.params.id}/profile`);\r\n }\r\n }, [userProfileData, history, match.params.id]);\r\n\r\n const handleOnBlur = (e) => {\r\n if (e.target.files[0] && e.target.length !== 0) {\r\n const file = e.target.files[0];\r\n setUploadPreview(URL.createObjectURL(file));\r\n setUploadFile(file);\r\n }\r\n };\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n
    {userProfileData.isLegal ? 'تبدیل حقوقی کاربر به حقیقی' : 'تبدیل کاربر حقیقی به حقوقی'}
    \r\n \r\n {!userProfileData.isLegal &&\r\n

    نوع حساب کاربر حقیقی می‌باشد و برای تبدیل آن به حقوقی نیاز به وارد کردن اطلاعات شرکت است.

    \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {\r\n Swal.fire({\r\n title: `آیا مطمئن هستید؟`,\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n const formData = new FormData();\r\n formData.append(\"IsLegal\", !userProfileData.isLegal);\r\n if (!userProfileData.isLegal) {\r\n formData.append(\"CompanyName\", values.companyName);\r\n formData.append(\r\n \"RegistrationNumber\",\r\n values.registrationNumber\r\n );\r\n formData.append(\"NationalId\", values.nationalIdCompany);\r\n formData.append(\"CompanyType\", values.companyType);\r\n formData.append(\r\n \"GazetteUploadedFile\",\r\n values.gazetteUploadedFile\r\n );\r\n }\r\n\r\n ApiClient.Put(Urls.transformUsers(match.params.id), formData)\r\n .then((res) => {\r\n actions.setSubmitting(false);\r\n if (Object.entries(res.result.userInvoices).length > 0) {\r\n setInvoiceInformation(res.result);\r\n setInvoiceModal(true);\r\n } else {\r\n toast.success(\"تغییرات با موفقیت ثبت شد.\");\r\n history.push(`/userDetail/${match.params.id}/profile`);\r\n }\r\n actions.resetForm();\r\n })\r\n .catch((err) => {\r\n actions.setSubmitting(false);\r\n actions.resetForm();\r\n });\r\n } else {\r\n actions.resetForm()\r\n }\r\n })\r\n\r\n\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n {userProfileData.isLegal && (\r\n \r\n \r\n \r\n {\" \"}\r\n نوع حساب کاربر حقوقی می باشد و برای تبدیل آن به حقیقی نیاز\r\n به وارد کردن اطلاعات جدیدی نیست\r\n \r\n
    \r\n )}\r\n\r\n {!userProfileData.isLegal && (\r\n
    \r\n
    \r\n \r\n formik.setFieldValue(\"companyName\", e.target.value)\r\n }\r\n />\r\n\r\n \r\n formik.setFieldValue(\r\n \"registrationNumber\",\r\n e.target.value\r\n )\r\n }\r\n />\r\n
    \r\n\r\n
    \r\n \r\n formik.setFieldValue(\r\n \"nationalIdCompany\",\r\n e.target.value\r\n )\r\n }\r\n />\r\n\r\n \r\n formik.setFieldValue(\"companyType\", e.target.value)\r\n }\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n {\r\n uploadPreview === null ? (\r\n <>\r\n \r\n \r\n فایل های پشتیبانی : jpeg, jpg, JPG, png\r\n \r\n \r\n ) : (\r\n \r\n {uploadFile.name && uploadFile.name}\r\n \r\n )\r\n // \r\n }\r\n \r\n\r\n {\r\n formik.setFieldValue(\r\n \"gazetteUploadedFile\",\r\n e.target.files[0]\r\n );\r\n handleOnBlur(e);\r\n }}\r\n />\r\n \r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n {userProfileData.isLegal ? 'تبدیل به حقیقی' : 'تبدیل به حقوقی'}\r\n \r\n
    \r\n \r\n )}\r\n \r\n \r\n
    \r\n closeModal()}\r\n onCancel={() => closeModal()}\r\n visible={invoiceModal}\r\n headerTitle=\"فاکتور های کاربر\"\r\n >\r\n closeModal()}\r\n confirmModal={(e) => invoiceHandler(e)}\r\n />\r\n \r\n
    \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n userProfileData: state.UserProfileDataReducer,\r\n});\r\nexport default connect(mapStateToProps)(ConvertUserType);\r\n","import React from 'react'\r\nimport * as Yup from 'yup';\r\nimport { providerThresholdCredit } from '../Rules';\r\n\r\nexport const ProviderThresholdCreditSchema = Yup.object().shape({\r\n providerThresholdCredit\r\n})\r\n","import { Formik } from 'formik';\r\nimport React from 'react'\r\nimport { useEffect } from 'react';\r\nimport { StyledForm, StyledInput } from '../../../Component/Kit/Form';\r\nimport { StyledButton } from '../../../Component/Kit/Button';\r\nimport { ProviderThresholdCreditSchema } from '../../../Utility/Validation/Schema/ProviderThresholdCreditSchema';\r\nimport Swal from 'sweetalert2';\r\nimport { toast } from 'react-toastify';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\n\r\nexport const ModifyProviderThresholdModal = ({ selectedProviderItem, onCloseModal, onSubmit }) => {\r\n return (\r\n <>\r\n {\r\n Swal.fire({\r\n title: `آیا مطمئن هستید؟`,\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n let value = parseInt(values.providerThresholdCredit);\r\n ApiClient.Patch(Urls.ModifyProviderThreshold(selectedProviderItem.providerId), value)\r\n .then((res) => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n onCloseModal(false);\r\n onSubmit();\r\n })\r\n .catch().finally(() => {\r\n actions.setSubmitting(false)\r\n })\r\n }\r\n })\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n formik.setFieldValue('providerThresholdCredit', e.target.value)}\r\n />\r\n\r\n
    \r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n \r\n اعمال محدودیت\r\n \r\n
    \r\n \r\n )}\r\n\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ModifyProviderThresholdModal;","import React from 'react'\r\nimport * as Yup from 'yup';\r\nimport { providerAmount, providerChargedAt } from '../Rules';\r\n\r\nexport const IncreaseProviderAmountSchema = Yup.object().shape({\r\n providerAmount,\r\n providerChargedAt\r\n})\r\n","import React from 'react'\r\nimport { StyledButton } from '../../../Component/Kit/Button'\r\nimport { useEffect } from 'react'\r\nimport { useState } from 'react'\r\nimport ApiClient from '../../../Requester/ApiClient'\r\nimport Urls from '../../../Requester/Urls'\r\nimport { Loader } from '../../../Component/Shared/Loader'\r\nimport DateConvert from '../../../Utility/Services/date-convert'\r\nimport { SeprateNumberWithComma } from '../../../Utility/Services/SeprateNumberWithComma'\r\nimport { Formik } from 'formik'\r\nimport Swal from 'sweetalert2'\r\nimport { toast } from 'react-toastify'\r\nimport { FormLable, StyledForm, StyledInput } from '../../../Component/Kit/Form'\r\nimport { MyDatePicker } from '../../../Component/Shared/DatePicker'\r\nimport moment from 'moment-jalaali'\r\nimport { IncreaseProviderAmountSchema } from '../../../Utility/Validation/Schema/IncreaseProviderAmountSchema'\r\nimport { TimePickerStyled } from '../../../Component/Shared/TimePicker'\r\n\r\nconst ProviderAmountModal = ({ selectedProviderAmountData, onSubmit, onCloseModal }) => {\r\n const [providerData, setProviderData] = useState();\r\n const [loading, setLoading] = useState(false);\r\n\r\n const whoisLogName = {\r\n chargedAt: \"تاریخ شارژ\",\r\n amount: \"مقدار\",\r\n };\r\n\r\n const getProviderAmount = (providerId) => {\r\n ApiClient.Get(Urls.GetProviderAmount(providerId))\r\n .then(res => {\r\n res.result.map((m) => {\r\n m.chargedAt = DateConvert(m.chargedAt);\r\n m.amount = SeprateNumberWithComma(m.amount);\r\n })\r\n setProviderData(res.result);\r\n setLoading(false);\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n if (selectedProviderAmountData.providerId) {\r\n getProviderAmount(selectedProviderAmountData.providerId);\r\n }\r\n }, [selectedProviderAmountData])\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n

    ثبت افزایش اعتبار:

    \r\n\r\n {\r\n Swal.fire({\r\n title: `آیا مطمئن هستید؟`,\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n onCloseModal(true)\r\n if (result.isConfirmed) {\r\n const payload = {\r\n providerId: selectedProviderAmountData.providerId,\r\n chargedAt: Number('' + values.providerChargedAt + values.providerChargeTime),\r\n amount: Number(values.providerAmount)\r\n };\r\n\r\n ApiClient.Post(Urls.IncreaseProviderAmount(), payload)\r\n .then((res) => {\r\n if (res) {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n getProviderAmount(selectedProviderAmountData.providerId);\r\n values.providerChargedAt = ''\r\n values.providerChargeTime = ''\r\n actions.resetForm()\r\n onSubmit();\r\n } else {\r\n toast.error(res.result.message)\r\n }\r\n })\r\n .catch().finally(() => {\r\n actions.setSubmitting(false)\r\n })\r\n } else {\r\n actions.resetForm();\r\n }\r\n })\r\n }}\r\n\r\n >\r\n {(formik) => (\r\n \r\n
    \r\n
    \r\n formik.setFieldValue('providerAmount', e.target.value)}\r\n />\r\n
    \r\n
    \r\n \r\n تاریخ افزایش اعتبار\r\n \r\n formik.setFieldValue(\"providerChargedAt\", event.baseFormat)}\r\n name=\"providerChargedAt\"\r\n max={moment().subtract(0, 'days')}\r\n error={(formik.errors.providerChargedAt && formik.touched.providerChargedAt)\r\n ? formik.errors.providerChargedAt\r\n : false\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n ساعت افزایش اعتبار\r\n \r\n {\r\n if (event)\r\n formik.setFieldValue(\"providerChargeTime\", event.baseFormat)\r\n }}\r\n defaultValue={formik.values.providerChargeTime}\r\n name=\"providerChargeTime\"\r\n error={(formik.errors.providerChargeTime && formik.touched.providerChargeTime)\r\n ? formik.errors.providerChargeTime\r\n : 'false'\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n ثبت اعتبار\r\n \r\n
    \r\n
    \r\n \r\n )}\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n

    تاریخچه ثبت اعتبار:

    \r\n {\r\n loading\r\n ?\r\n \r\n :\r\n
    \r\n \r\n \r\n {whoisLogName && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {providerData &&\r\n providerData.map((item, key) => (\r\n \r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n {\r\n providerData && providerData.length == 0 &&\r\n \r\n \r\n \r\n }\r\n\r\n \r\n
    #{whoisLogName.chargedAt}{whoisLogName.amount}
    {key + 1}{item.chargedAt}{item.amount}
    موردی وجود ندارد.
    \r\n
    \r\n }\r\n\r\n
    \r\n\r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default ProviderAmountModal","import React from 'react'\r\nimport { HeaderContent, MainContent, PageTitleLayout, WrapperLayout } from '../../../Component/Kit/Layout';\r\nimport { Loader } from '../../../Component/Shared/Loader';\r\nimport { useState } from 'react';\r\nimport { useEffect } from 'react';\r\nimport { useCallback } from 'react';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport DateConvert from '../../../Utility/Services/date-convert';\r\nimport GetProvider from '../../../Utility/Services/provider';\r\nimport Table from '../../../Component/Shared/Table/Table';\r\nimport { SeprateNumberWithComma } from '../../../Utility/Services/SeprateNumberWithComma';\r\nimport Modal from '../../../Component/Kit/Modal';\r\nimport ModifyProviderThresholdModal from '../ModifyProviderThresholdModal';\r\nimport ProviderAmountModal from '../ProviderAmountModal';\r\nimport { StyledButton } from '../../../Component/Kit/Button';\r\n\r\nexport const ProvidersCreditList = () => {\r\n const [loading, setLoading] = useState(true);\r\n const [providersCreditList, setProvidersCreditList] = useState([]);\r\n const [providerThresholdModal, setProviderThresholdModal] = useState(false);\r\n const [selectedProviderItem, setSelectedProviderItem] = useState({});\r\n const [providerAmountItemModal, setProviderAmountItemModal] = useState(false);\r\n const [selectedProviderAmountData, setSelectedProviderAmountData] = useState(false);\r\n const [balanceUpdateTime, setBalanceUpdateTime] = useState('');\r\n const [loadingFlag, setLoadingFlag] = useState(false);\r\n const tableConfig = {\r\n header: {\r\n providerName: 'عنوان ارائه‌دهنده',\r\n balance: 'اعتبار موجود',\r\n fifteenMinutesUsage: '15 دقیقه اخیر',\r\n oneHourUsage: '60 دقیقه اخیر',\r\n dayUsageValue: 'روز جاری',\r\n thresholdValue: 'کمینه اطلاع‌رسانی',\r\n notifiedAt: \"آخرین اطلاع‌رسانی\",\r\n },\r\n actions: {\r\n edit: {\r\n icon: \"fa fa-edit\",\r\n },\r\n setting: {\r\n icon: \"fa fa-cog\",\r\n },\r\n },\r\n };\r\n\r\n function tableActions(items) {\r\n switch (items.actionName) {\r\n case 'edit':\r\n setProviderAmountItemModal(true);\r\n setSelectedProviderAmountData(items.data)\r\n break;\r\n case 'setting':\r\n setProviderThresholdModal(true);\r\n setSelectedProviderItem(items.data)\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n const GetProvidersCredit = useCallback(() => {\r\n ApiClient.Get(Urls.GetProvidersCredit())\r\n .then(res => {\r\n let dataItem = res?.result.balances;\r\n dataItem.map((item) => {\r\n item.providerName = GetProvider(item.providerId);\r\n item.balance = SeprateNumberWithComma(item.balance);\r\n item.thresholdValue = SeprateNumberWithComma(item.threshold);\r\n item.notifiedAt = item.notifiedAt ? DateConvert(item.notifiedAt) : '-';\r\n item.fifteenMinutesUsage = SeprateNumberWithComma(item.fifteenMinutesUsage);\r\n item.oneHourUsage = SeprateNumberWithComma(item.oneHourUsage);\r\n item.dayUsageValue = item.changeIn24Hours > 0\r\n ? `${SeprateNumberWithComma(item.dayUsage)} \r\n ${Math.abs(item.changeIn24Hours)}% \r\n `\r\n : item.changeIn24Hours < 0\r\n ? `${SeprateNumberWithComma(item.dayUsage)} \r\n ${Math.abs(item.changeIn24Hours)}% \r\n `\r\n : `${SeprateNumberWithComma(item.dayUsage)} \r\n ${Math.abs(item.changeIn24Hours)}% \r\n `\r\n return item;\r\n })\r\n setBalanceUpdateTime(DateConvert(res.result.updatedAt));\r\n setProvidersCreditList(dataItem);\r\n setLoading(false);\r\n })\r\n }, [])\r\n\r\n const updateHandler = () => {\r\n GetProvidersCredit();\r\n setLoadingFlag(true);\r\n setTimeout(() => {\r\n setLoadingFlag(false);\r\n }, 30000);\r\n };\r\n\r\n useEffect(() => {\r\n GetProvidersCredit();\r\n }, [])\r\n\r\n return (\r\n <>\r\n \r\n\r\n \r\n
    \r\n
    \r\n آخرین بروزرسانی: \r\n {balanceUpdateTime && balanceUpdateTime}\r\n
    \r\n\r\n updateHandler()}\r\n disabled={loadingFlag}\r\n >\r\n بروزرسانی\r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    اعتبار ارائه‌دهندگان
    \r\n در این بخش می‌توانید اعتبار پیامکی را به تفکیک ارائه‌دهندگان و آستانه اطلاع‌رسانی مشاهده نمایید.\r\n
    \r\n
    \r\n {loading === true\r\n ?\r\n \r\n :\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n setProviderThresholdModal(false)}\r\n visible={providerThresholdModal}\r\n onCancel={() => setProviderThresholdModal(false)}\r\n headerTitle=\"کمینه پیش ‌فرض اطلاع‌رسانی از کمبود اعتبار\"\r\n >\r\n setProviderThresholdModal(e)}\r\n onSubmit={() => GetProvidersCredit()}\r\n selectedProviderItem={selectedProviderItem}\r\n />\r\n\r\n \r\n\r\n setProviderAmountItemModal(false)}\r\n onCancel={() => setProviderAmountItemModal(false)}\r\n visible={providerAmountItemModal}\r\n headerTitle={`جزيیات اعتبار در ${selectedProviderAmountData.providerName}`}\r\n\r\n >\r\n setProviderAmountItemModal(e)}\r\n onSubmit={() => GetProvidersCredit()}\r\n />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ProvidersCreditList;\r\n","import React, {useEffect, useState} from \"react\";\r\nimport Modal from \"../../../../../Component/Kit/Modal\";\r\nimport {Formik} from \"formik\";\r\nimport {\r\n AddInvoiceNumberInOldPanelSchema,\r\n AddInvoiceNumberSchema, RetryOldPanelInvoiceSchema\r\n} from \"../../../../../Utility/Validation/Schema/AddInvoiceNumberSchema\";\r\nimport ApiClient from \"../../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../../Requester/Urls\";\r\nimport {toast} from \"react-toastify\";\r\nimport {FormGroup, FormLable, StyledCheckBox, StyledForm, StyledInput} from \"../../../../../Component/Kit/Form\";\r\nimport {MyDatePicker} from \"../../../../../Component/Shared/DatePicker\";\r\nimport {StyledButton} from \"../../../../../Component/Kit/Button\";\r\n\r\nconst RetryInvoiceSendModal = ({officialInvoiceId, data, email, visible, setVisible, onCancel, onClose}) => {\r\n const [userEmail, setUserEmail] = useState(\"\");\r\n useEffect(() => {\r\n setUserEmail(email);\r\n }, [email]);\r\n return (\r\n \r\n
    \r\n
    \r\n {\r\n const dataBody = {\r\n sendLinkViaSms: values.withMobile,\r\n email: values.withEmail && values.OldPanelInvoiceEmail\r\n ? values.OldPanelInvoiceEmail\r\n : \"\"\r\n };\r\n\r\n ApiClient.Post(\r\n Urls.RetryOldPanelInvoice(officialInvoiceId),\r\n dataBody\r\n ).then((res) => {\r\n toast.success(\"فرآیند با موفقیت انجام گرفت!\");\r\n setVisible(false);\r\n });\r\n }}\r\n onReset={(values, formikBag) => {\r\n setVisible(false);\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n \r\n نحوه ارسال\r\n \r\n
    \r\n \r\n formik.setFieldValue(\"withMobile\", e.target.checked)\r\n }\r\n />\r\n \r\n formik.setFieldValue(\"withEmail\", e.target.checked)\r\n }\r\n />\r\n
    \r\n \r\n formik.setFieldValue(\r\n \"OldPanelInvoiceEmail\",\r\n e.target.value\r\n )\r\n }\r\n />\r\n\r\n
    \r\n \r\n ارسال\r\n \r\n\r\n \r\n بستن\r\n \r\n
    \r\n \r\n )}\r\n \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default RetryInvoiceSendModal;","import React, {useCallback, useEffect, useState} from \"react\";\r\nimport {useHistory} from \"react-router-dom\";\r\nimport {HeaderContent, MainContent, WrapperLayout,} from \"../../../../Component/Kit/Layout\";\r\n\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport BackToPage from \"../../../../Component/Kit/back\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport DateConvert from \"../../../../Utility/Services/date-convert\";\r\nimport WhiteSmsIcon from \"../../../../Component/Icon/WhiteSmsIcon\";\r\nimport {SellerDetails} from \"../../TransactionDetails/SellerDetails\";\r\nimport {BuyerDetails} from \"../../TransactionDetails/BuyerDetails\";\r\nimport TransactionTable from \"../../TransactionDetails/TransactionTable\";\r\nimport {AddNumberToInvoiceModal} from \"../OfficialInvoiceItem/AddNumberToInvoiceModal\";\r\nimport {SepidarModal} from \"../OfficialInvoiceItem/SepidarModal\";\r\nimport Swal from \"sweetalert2\";\r\nimport {toast} from \"react-toastify\";\r\nimport {EditInvoiceDiscountModal} from \"../OfficialInvoiceItem/EditInvoiceDiscountModal\";\r\nimport RetryInvoiceSendModal from \"./RetryInvoiceSendModal\";\r\n\r\nfunction OldPanelOfficialInvoiceItem(props) {\r\n const officialInvoiceId = props.match.params.id;\r\n const history = useHistory();\r\n const [singleOfficialInvoice, setSingleOfficialInvoice] = useState({});\r\n useState(false);\r\n const [addNumberToInvoiceModalVisible, setAddNumberToInvoiceModalVisible] =\r\n useState(false);\r\n const [retryInvoiceSendModalVisible, setRetryInvoiceSendModalVisible] =\r\n useState(false);\r\n const [editableInvoiceData, setEditableInvoiceData] = useState(null);\r\n const [invoiceTableDetails, setInvoiceTableDetails] = useState({});\r\n const [sepidarModal, showSepidarModal] = useState(false);\r\n const [editInvoiceDiscountModalVisible, setEditInvoiceDiscountModalVisible] = useState(false);\r\n const [sepidarInvoice, setSepidarInvoice] = useState(0);\r\n const [vatPercent, setVatPercent] = useState();\r\n\r\n\r\n const officialInvoiceName = {\r\n number: \"شماره فاکتور\",\r\n createdAt: \"تاریخ فاکتور\",\r\n type: \"نوع فاکتور\",\r\n };\r\n\r\n const saveHandler = (isSave) => {\r\n if (isSave) {\r\n getData();\r\n }\r\n };\r\n\r\n const onAddNumberToInvoice = () => {\r\n getData();\r\n };\r\n\r\n const getData = useCallback(() => {\r\n ApiClient.Get(Urls.GetOldPanelOfficialInvoices(officialInvoiceId)).then(\r\n (res) => {\r\n let response = res.result;\r\n if (response.number) {\r\n setEditableInvoiceData({\r\n number: response.number,\r\n date: response.createdAt,\r\n });\r\n }\r\n response.address = [response.provinceName, response.cityName, response.address].join(\" \")\r\n response.createdAt = DateConvert(response.createdAt);\r\n setSingleOfficialInvoice(JSON.parse(JSON.stringify(response)));\r\n setInvoiceTableDetails(JSON.parse(JSON.stringify(response)));\r\n setVatPercent(response.details[0].vatPercent);\r\n setSepidarInvoice(response?.number)\r\n\r\n\r\n }\r\n );\r\n }, [officialInvoiceId]);\r\n\r\n const editDiscountModalHandler = () => {\r\n setEditInvoiceDiscountModalVisible(true)\r\n }\r\n\r\n const editUserDetailsModalHandler = () => {\r\n Swal.fire({\r\n title: `آیا از اصلاح اطلاعات کاربر مطمئن هستید؟`,\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Put(Urls.EditOldPanelUserDetails(invoiceTableDetails.id)).then(\r\n (res) => {\r\n toast.success(\"فرآیند با موفقیت انجام گرفت!\");\r\n getData();\r\n }\r\n );\r\n }\r\n })\r\n };\r\n\r\n const cancelInvoiceHandler = () => {\r\n Swal.fire({\r\n title: '',\r\n text: `آیا از ابطال این فاکتور مطمئن هستید؟`,\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Post(Urls.cancelOldPanelInvoice(invoiceTableDetails.userId, officialInvoiceId))\r\n .then(res => {\r\n toast.success('فاکتور ابطال شد.');\r\n getData()\r\n })\r\n }\r\n })\r\n\r\n }\r\n\r\n\r\n const removeInvoiceHandler = () => {\r\n Swal.fire({\r\n title: '',\r\n text: `آیا از حذف این فاکتور مطمئن هستید؟`,\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Post(Urls.removeOldPanelInvoice(officialInvoiceId))\r\n .then(res => {\r\n toast.success('فاکتور حذف شد.');\r\n history.goBack();\r\n })\r\n }\r\n })\r\n\r\n }\r\n\r\n const addNumberToInvoice = () => {\r\n setAddNumberToInvoiceModalVisible(true);\r\n };\r\n\r\n useEffect(() => {\r\n getData();\r\n }, [getData]);\r\n\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n {\r\n singleOfficialInvoice.canModifyDiscountPrice\r\n &&\r\n editDiscountModalHandler()}>\r\n ویرایش تخفیف\r\n \r\n }\r\n editUserDetailsModalHandler()}\r\n >\r\n دریافت مجدد اطلاعات کاربر\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    فاکتور رسمی فروش کالا و خدمات

    \r\n
    \r\n
    \r\n {invoiceTableDetails && (\r\n <>\r\n
    \r\n \r\n\r\n
    \r\n \r\n {officialInvoiceName.number} :{\" \"}\r\n {invoiceTableDetails.number}\r\n \r\n \r\n {officialInvoiceName.createdAt} :\r\n {invoiceTableDetails.createdAt}\r\n \r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n \r\n\r\n
    \r\n {Object.keys(invoiceTableDetails).length > 0 && (\r\n <>\r\n {\r\n invoiceTableDetails.number && (\r\n <>\r\n\r\n\r\n {invoiceTableDetails.type !== 3 &&\r\n cancelInvoiceHandler()}\r\n >\r\n ابطال\r\n \r\n }\r\n\r\n setRetryInvoiceSendModalVisible(true)}\r\n >\r\n ارسال مجدد فاکتور\r\n \r\n\r\n {\r\n showSepidarModal(true)\r\n }}\r\n >\r\n ثبت در سپیدار\r\n \r\n\r\n \r\n )\r\n }\r\n\r\n removeInvoiceHandler()}\r\n >\r\n حذف\r\n \r\n\r\n addNumberToInvoice()}\r\n >\r\n {!invoiceTableDetails.number ? \"تایید\" : \"ویرایش\"}\r\n \r\n \r\n )}\r\n\r\n {\r\n setEditInvoiceDiscountModalVisible(false)}\r\n onClose={() => setEditInvoiceDiscountModalVisible(false)}\r\n />\r\n }\r\n {\r\n setRetryInvoiceSendModalVisible(false)}\r\n onClose={() => setRetryInvoiceSendModalVisible(false)}\r\n />\r\n }\r\n {\r\n \r\n setAddNumberToInvoiceModalVisible(false)\r\n }\r\n onClose={() => setAddNumberToInvoiceModalVisible(false)}\r\n />\r\n }\r\n {\r\n showSepidarModal(false)}\r\n onClose={() => showSepidarModal(false)}\r\n />\r\n }\r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default OldPanelOfficialInvoiceItem;\r\n","import React, { useEffect } from 'react'\r\nimport { useState } from 'react'\r\nimport { StyledButton } from '../../../Component/Kit/Button';\r\n\r\nconst CreditPackageItemModal = ({ data, onCloseModal }) => {\r\n const [creditPackageItem, setCreditPackageItem] = useState({});\r\n const creditPackageValue = {\r\n description: \"نام پکیج\",\r\n netPriceString: \"قیمت اصلی پکیج\",\r\n discountPercentString: 'درصد تخفیف',\r\n creditCount: \"تعداد اعتبار بسته\",\r\n isActiveValue: 'وضعیت',\r\n soldCount: \"تعداد خریداری شده\",\r\n }\r\n\r\n useEffect(() => {\r\n Object.entries(data).forEach(([item, value]) => {\r\n switch (item) {\r\n case 'isActive':\r\n data.isActiveValue = data.isActive ? 'فعال' : 'غیرفعال';\r\n break;\r\n default:\r\n data[item] = value;\r\n break;\r\n }\r\n })\r\n setCreditPackageItem(data);\r\n }, [data]);\r\n\r\n return (\r\n <>\r\n
    \r\n
      \r\n {\r\n creditPackageValue &&\r\n Object.entries(creditPackageValue).map(([item, value]) => (\r\n
    • \r\n
      \r\n {value}\r\n
      \r\n
      \r\n {creditPackageItem[item]}\r\n
      \r\n
    • \r\n ))\r\n }\r\n
    \r\n\r\n
    \r\n onCloseModal(false)}\r\n >\r\n بستن\r\n \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default CreditPackageItemModal","import React, { useCallback, useEffect, useState } from 'react'\r\nimport { useHistory } from 'react-router-dom';\r\nimport { HeaderContent, MainContent, PageTitleLayout, WrapperLayout } from '../../../Component/Kit/Layout';\r\nimport { StyledButton } from '../../../Component/Kit/Button';\r\nimport { Loader } from '../../../Component/Shared/Loader';\r\nimport Table from '../../../Component/Shared/Table/Table';\r\nimport Swal from 'sweetalert2';\r\nimport { toast } from 'react-toastify';\r\n\r\nimport CreditPackageItemModal from '../CreditPackageItemModal';\r\nimport Modal from '../../../Component/Kit/Modal';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport { connect, useDispatch } from 'react-redux';\r\nimport { CreditPackageItemAction } from '../../../Actions/CreditPackageItem';\r\n\r\nconst CreditPackageList = ({ packageItem }) => {\r\n const [creditPackageList, setCreditPackageList] = useState({});\r\n const [creditPackageModal, setCreditPackageModal] = useState(false);\r\n const [loading, setLoading] = useState(true);\r\n const [modalData, setModalData] = useState({});\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n const tableConfig = {\r\n header: {\r\n description: \"نام پکیج\",\r\n netPriceString: \"قیمت اصلی پکیج\",\r\n discountedBasePrice: 'قیمت پایه با تخفیف',\r\n creditCount: \"تعداد اعتبار\",\r\n soldCount: \"تعداد خریداری شده\",\r\n isActiveString: 'وضعیت',\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n },\r\n edit: {\r\n icon: \"fa fa-edit\",\r\n },\r\n delete: {\r\n icon: \"fa fa-trash\",\r\n }\r\n },\r\n };\r\n\r\n function tableActions(items) {\r\n switch (items.actionName) {\r\n case 'view':\r\n setModalData(items.data);\r\n setCreditPackageModal(true);\r\n break;\r\n case 'delete':\r\n deleteCreditPackage(items.data.id);\r\n break;\r\n case 'edit':\r\n dispatch(CreditPackageItemAction(items.data));\r\n history.push(`credit-package/${items.data.id}`);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n const deleteCreditPackage = (packageId) => {\r\n Swal.fire({\r\n title: '',\r\n text: `آیا از حذف این بسته شارژ مطمئن هستید؟`,\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Delete(Urls.ModifyCreditPackage(packageId))\r\n .then(() => {\r\n toast.success('کد تخفیف با موفقیت حذف گردید.');\r\n getCreditPackageList();\r\n })\r\n }\r\n })\r\n }\r\n\r\n const getCreditPackageList = useCallback(() => {\r\n ApiClient.Get(Urls.GetCreditPackage())\r\n .then(res => {\r\n const dataList = res.result;\r\n dataList.map((m, i) => {\r\n m.netPriceString = m.netPrice.toLocaleString();\r\n m.isActiveString = m.isActive\r\n ? ``\r\n : ``;\r\n return m;\r\n });\r\n setCreditPackageList(dataList)\r\n setLoading(false)\r\n })\r\n }, [])\r\n\r\n useEffect(() => {\r\n getCreditPackageList()\r\n }, [getCreditPackageList])\r\n\r\n\r\n return (\r\n \r\n \r\n
    \r\n history.push('/credit-package/add')}\r\n >\r\n ایجاد بسته شارژ شگفت انگیز\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    لیست بسته شارژ شگفت انگیز
    \r\n در این بخش لیست همه بسته شارژهای شگفت انگیز قابل مشاهده است.\r\n
    \r\n
    \r\n {loading === true\r\n ?\r\n \r\n :\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n\r\n setCreditPackageModal(false)}\r\n onCancel={() => setCreditPackageModal(false)}\r\n visible={creditPackageModal}\r\n headerTitle=\"مشاهده جزئیات بسته شگفت‌انگیز\"\r\n >\r\n setCreditPackageModal(e)} />\r\n \r\n
    \r\n )\r\n}\r\n\r\n\r\nexport default connect()(CreditPackageList)","\r\nexport const CreditPackageItemAction = (data) => ({\r\n type: 'CREDIT_PACKAGE_ITEM',\r\n data\r\n})\r\n","import { description, discountedBasePrice, netPrice } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const ModifyCreditPackageSchema = Yup.object().shape({\r\n description,\r\n discountedBasePrice,\r\n netPrice,\r\n});\r\n\r\n","import { Formik } from 'formik';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { FormLabel } from 'react-bootstrap';\r\nimport { connect } from 'react-redux';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { toast } from 'react-toastify';\r\nimport { StyledButton } from '../../../Component/Kit/Button';\r\nimport { StyledForm, StyledInput, StyledSwitchBox } from '../../../Component/Kit/Form';\r\nimport { HeaderContent, MainContent, PageTitleLayout, WrapperLayout } from '../../../Component/Kit/Layout';\r\nimport BackToPage from '../../../Component/Kit/back';\r\nimport { ModifyCreditPackageSchema } from '../../../Utility/Validation/Schema/ModifyCreditPackageSchema';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\n\r\nconst ModifyCreditPackageItem = ({ creditPackageData }) => {\r\n const history = useHistory();\r\n const params = useParams();\r\n const editMode = params.id;\r\n const [creditPackageItem, setCreditPackageItem] = useState({})\r\n\r\n useEffect(() => {\r\n if (editMode && Object.entries(creditPackageData).length) {\r\n setCreditPackageItem(creditPackageData);\r\n }\r\n if (editMode && !Object.entries(creditPackageData).length) {\r\n history.push(\"/credit-package\");\r\n }\r\n\r\n }, [creditPackageData])\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
    {editMode ? 'ویرایش' : 'ایجاد'} بسته شارژ شگفت انگیز
    \r\n می‌توانید مشخصات بسته شارژ شگفت انگیز خود را {editMode ? 'تغییر دهید.' : 'وارد نمایید.'}\r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n let payload = {\r\n description: values.description,\r\n discountedBasePrice: Number(values.discountedBasePrice),\r\n netPrice: Number(values.netPrice)\r\n };\r\n if (editMode) {\r\n payload = { ...payload, isActive: values.isActive };\r\n ApiClient.Put(Urls.ModifyCreditPackage(params.id), payload)\r\n .then(res => {\r\n toast.success('بسته شارژ با موفقیت ویرایش شد.')\r\n history.goBack();\r\n })\r\n } else {\r\n ApiClient.Post(Urls.ModifyCreditPackage(), payload)\r\n .then(res => {\r\n toast.success('بسته شارژ با موفقیت ایجاد شد.')\r\n history.goBack();\r\n })\r\n }\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
    \r\n \r\n formik.setFieldValue(\"description\", e.target.value)\r\n }\r\n />\r\n \r\n formik.setFieldValue(\"discountedBasePrice\", e.target.value)\r\n }\r\n />\r\n\r\n \r\n formik.setFieldValue(\"netPrice\", e.target.value)\r\n }\r\n />\r\n {editMode &&\r\n
    \r\n
    \r\n وضعیت پکیج\r\n formik.setFieldValue('isActive', e.target.checked)}\r\n />\r\n
    \r\n
    \r\n }\r\n
    \r\n\r\n
    \r\n \r\n {editMode ? 'ویرایش' : 'ایجاد'} بسته\r\n \r\n
    \r\n\r\n \r\n )}\r\n\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n creditPackageData: state.CreditPackageItemReducer\r\n});\r\nexport default connect(mapStateToProps)(ModifyCreditPackageItem)","import * as Yup from \"yup\";\r\nimport {ipAddress, mobile, suspendDescription} from '../Rules';\r\n\r\nexport const AddBlockedIPSchema = Yup.object().shape({\r\n ipAddress\r\n})\r\n\r\nexport const AddBlockedNumberSchema = Yup.object().shape({\r\n mobile,\r\n suspendDescription\r\n})","import { Formik } from \"formik\";\r\nimport React from 'react';\r\nimport { toast } from \"react-toastify\";\r\nimport { StyledButton } from '../../../../Component/Kit/Button';\r\nimport {StyledForm, StyledInput, StyledTextArea} from '../../../../Component/Kit/Form';\r\nimport ApiClient from '../../../../Requester/ApiClient';\r\nimport Urls from '../../../../Requester/Urls';\r\nimport { AddBlockedIPSchema } from '../../../../Utility/Validation/Schema/AddBlockedIPSchema';\r\n\r\nconst AddBlockIPModal = ({ onCloseModal, dataChange }) => {\r\n return (\r\n <>\r\n {\r\n ApiClient.Post(Urls.BlockedIPLog(), {\r\n ip: value.ipAddress,\r\n description: value.description\r\n })\r\n .then(res => {\r\n if (res.result) {\r\n toast.success('IP با موفقیت افزوده شد.');\r\n actions.resetForm();\r\n dataChange(true);\r\n onCloseModal(false);\r\n }\r\n })\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n formik.setFieldValue(\"ipAddress\", e.target.value)}\r\n />\r\n\r\n formik.setFieldValue(\"description\", e.target.value)}\r\n />\r\n\r\n
    \r\n onCloseModal(false)}\r\n >\r\n بستن\r\n \r\n \r\n اضافه کردن\r\n \r\n
    \r\n \r\n )}\r\n\r\n \r\n \r\n )\r\n}\r\n\r\nexport default AddBlockIPModal","import React, { useCallback, useEffect, useState } from 'react'\r\nimport { useLocation } from 'react-router-dom'\r\nimport { toast } from 'react-toastify'\r\nimport Swal from 'sweetalert2'\r\nimport { StyledButton } from '../../../../Component/Kit/Button'\r\nimport { PageTitleLayout } from '../../../../Component/Kit/Layout'\r\nimport Modal from '../../../../Component/Kit/Modal'\r\nimport { Loader } from '../../../../Component/Shared/Loader'\r\nimport Table from '../../../../Component/Shared/Table/Table'\r\nimport ApiClient from '../../../../Requester/ApiClient'\r\nimport Urls from '../../../../Requester/Urls'\r\nimport { ConvertQueryString } from '../../../../Utility/Services/convert-query-string'\r\nimport DateConvert from '../../../../Utility/Services/date-convert'\r\nimport AddBlockIPModal from '../AddBlockedIP'\r\n\r\nconst BlockedIPList = () => {\r\n const location = useLocation();\r\n const [loading, setLoading] = useState(true);\r\n const [blockedIPLog, setBlockedIPLog] = useState({});\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n const tableConfig = {\r\n header: {\r\n blockedIP: \"IP مسدود شده\",\r\n description: 'توضیحات',\r\n isDeleted: 'حذف شده',\r\n createdAt: \"تاریخ مسدود شدن\",\r\n },\r\n actions: {\r\n delete: {\r\n icon: \"fa fa-trash\",\r\n }\r\n },\r\n mode: [\"search\", \"filter\"],\r\n filters: [\"datePickerFilter\"]\r\n }\r\n\r\n const tableActions = (items) => {\r\n if (items.actionName === 'delete') {\r\n deleteBlockedIP(items.data.id);\r\n }\r\n }\r\n\r\n const deleteBlockedIP = (itemID) => {\r\n Swal.fire({\r\n title: '',\r\n text: `آیا از حذف این IP مسدود شده مطمئن هستید؟`,\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Delete(Urls.BlockedIPLog(itemID))\r\n .then(() => {\r\n toast.success('IP با موفقیت حذف گردید.');\r\n getBlockedIPLogList();\r\n })\r\n }\r\n })\r\n }\r\n\r\n const getBlockedIPLogList = useCallback(() => {\r\n ApiClient.Get(Urls.BlockedIPLog(), ConvertQueryString(location.search))\r\n .then(res => {\r\n let dataItem = res.result;\r\n dataItem.items.map((item) => {\r\n item.createdAt = DateConvert(item.createdAt);\r\n item.isDeleted = item.isDeleted\r\n ? ``\r\n : ``;\r\n return item;\r\n })\r\n setBlockedIPLog(dataItem)\r\n setLoading(false);\r\n })\r\n }, [location.search])\r\n\r\n useEffect(() => {\r\n getBlockedIPLogList();\r\n }, [location.search, getBlockedIPLogList])\r\n\r\n const modalDataChange = (e) => {\r\n if (e) {\r\n getBlockedIPLogList();\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n \r\n
    لیست IP های مسدود شده
    \r\n در این بخش همه IP های مسدود شده قابل مشاهده است.\r\n
    \r\n setShowModal(true)}\r\n >\r\n IP افزودن\r\n \r\n
    \r\n\r\n
    \r\n {loading === true\r\n ?\r\n \r\n :\r\n \r\n }\r\n
    \r\n
    \r\n setShowModal(false)}\r\n onCancel={() => setShowModal(false)}\r\n headerTitle=\"مسدود کردن IP\"\r\n >\r\n setShowModal(e)}\r\n dataChange={(e) => modalDataChange(e)}\r\n />\r\n\r\n \r\n \r\n )\r\n}\r\n\r\nexport default BlockedIPList","import { Formik } from \"formik\";\r\nimport React from 'react';\r\nimport { toast } from \"react-toastify\";\r\nimport { StyledButton } from '../../../../Component/Kit/Button';\r\nimport {StyledForm, StyledInput, StyledTextArea} from '../../../../Component/Kit/Form';\r\nimport ApiClient from '../../../../Requester/ApiClient';\r\nimport Urls from '../../../../Requester/Urls';\r\nimport {AddBlockedIPSchema, AddBlockedNumberSchema} from '../../../../Utility/Validation/Schema/AddBlockedIPSchema';\r\nimport {mobile, suspendDescription} from \"../../../../Utility/Validation/Rules\";\r\n\r\nconst AddBlockedNumbersModal = ({ onCloseModal, dataChange }) => {\r\n return (\r\n <>\r\n {\r\n ApiClient.Post(Urls.BlockedNumber(), {\r\n mobile: value.mobile,\r\n description: value.suspendDescription\r\n })\r\n .then(res => {\r\n if (res.result) {\r\n toast.success('شماره با موفقیت افزوده شد.');\r\n actions.resetForm();\r\n dataChange(true);\r\n onCloseModal(false);\r\n }\r\n })\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n formik.setFieldValue(\"mobile\", e.target.value)}\r\n />\r\n\r\n formik.setFieldValue(\"suspendDescription\", e.target.value)}\r\n />\r\n\r\n
    \r\n onCloseModal(false)}\r\n >\r\n بستن\r\n \r\n \r\n اضافه کردن\r\n \r\n
    \r\n \r\n )}\r\n\r\n \r\n \r\n )\r\n}\r\n\r\nexport default AddBlockedNumbersModal","import React, { useCallback, useEffect, useState } from 'react'\r\nimport { useLocation } from 'react-router-dom'\r\nimport { toast } from 'react-toastify'\r\nimport Swal from 'sweetalert2'\r\nimport { StyledButton } from '../../../../Component/Kit/Button'\r\nimport { PageTitleLayout } from '../../../../Component/Kit/Layout'\r\nimport Modal from '../../../../Component/Kit/Modal'\r\nimport { Loader } from '../../../../Component/Shared/Loader'\r\nimport Table from '../../../../Component/Shared/Table/Table'\r\nimport ApiClient from '../../../../Requester/ApiClient'\r\nimport Urls from '../../../../Requester/Urls'\r\nimport { ConvertQueryString } from '../../../../Utility/Services/convert-query-string'\r\nimport DateConvert from '../../../../Utility/Services/date-convert'\r\nimport AddBlockedNumberModal from \"../AddBlockedNumberModal\";\r\n\r\nconst BlockedNumbersList = () => {\r\n const location = useLocation();\r\n const [loading, setLoading] = useState(true);\r\n const [blockedIPLog, setBlockedIPLog] = useState({});\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n const tableConfig = {\r\n header: {\r\n mobile: \"شماره های مسدود شده\",\r\n description: 'توضیحات',\r\n isDeleted: 'حذف شده',\r\n createdAt: \"تاریخ مسدود شدن\",\r\n },\r\n actions: {\r\n delete: {\r\n icon: \"fa fa-trash\",\r\n }\r\n },\r\n mode: [\"search\", \"filter\"],\r\n filters: [\"datePickerFilter\"]\r\n }\r\n\r\n const tableActions = (items) => {\r\n if (items.actionName === 'delete') {\r\n deleteBlockedNumber(items.data.id);\r\n }\r\n }\r\n\r\n const deleteBlockedNumber = (itemID) => {\r\n Swal.fire({\r\n title: '',\r\n text: `آیا از حذف این شماره مسدود شده مطمئن هستید؟`,\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Delete(Urls.BlockedNumber(itemID))\r\n .then(() => {\r\n toast.success('شماره با موفقیت حذف گردید.');\r\n getBlockedNumbersLogList();\r\n })\r\n }\r\n })\r\n }\r\n\r\n const getBlockedNumbersLogList = useCallback(() => {\r\n ApiClient.Get(Urls.BlockedNumber(), ConvertQueryString(location.search))\r\n .then(res => {\r\n let dataItem = res.result;\r\n dataItem.items.map((item) => {\r\n item.createdAt = DateConvert(item.createdAt);\r\n item.isDeleted = item.isDeleted\r\n ? ``\r\n : ``;\r\n return item;\r\n })\r\n setBlockedIPLog(dataItem)\r\n setLoading(false);\r\n })\r\n }, [location.search])\r\n\r\n useEffect(() => {\r\n getBlockedNumbersLogList();\r\n }, [location.search, getBlockedNumbersLogList])\r\n\r\n const modalDataChange = (e) => {\r\n if (e) {\r\n getBlockedNumbersLogList();\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n \r\n
    لیست شماره های مسدود شده
    \r\n در این بخش همه شماره های مسدود شده قابل مشاهده است.\r\n
    \r\n setShowModal(true)}\r\n >\r\n افزودن شماره\r\n \r\n
    \r\n\r\n
    \r\n {loading === true\r\n ?\r\n \r\n :\r\n \r\n }\r\n
    \r\n
    \r\n setShowModal(false)}\r\n onCancel={() => setShowModal(false)}\r\n headerTitle=\"مسدود کردن شماره\"\r\n >\r\n setShowModal(e)}\r\n dataChange={(e) => modalDataChange(e)}\r\n />\r\n\r\n \r\n \r\n )\r\n}\r\n\r\nexport default BlockedNumbersList","import React from \"react\";\r\nimport {NavLink, Route, Switch} from \"react-router-dom\";\r\nimport {MainContent} from \"../../Component/Kit/Layout\";\r\nimport BlockedIPList from \"./BlockedIP/BlockedIPList\";\r\nimport BlockedNumbersList from \"./BlockedNumbers/BlockedNumbersList\";\r\n\r\nconst Suspended = ({match}) => {\r\n return(\r\n \r\n
      \r\n
    • \r\n \r\n IP های مسدود شده\r\n \r\n
    • \r\n
    • \r\n \r\n شماره های مسدود شده\r\n \r\n
    • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default Suspended;","import React from 'react'\r\nimport { StyledButton } from '../../../Component/Kit/Button'\r\n\r\nfunction UseFeedbackDetailModal({ data, onCloseModal }) {\r\n const creditPackageValue = {\r\n userName: \"نام کاربری\",\r\n userId: \"شناسه کاربری\",\r\n content: 'متن بازخورد',\r\n createdAt: \"تاریخ بازخورد\",\r\n }\r\n\r\n return (\r\n <>\r\n
    \r\n
      \r\n {\r\n creditPackageValue &&\r\n Object.entries(creditPackageValue).map(([item, value]) => (\r\n
    • \r\n
      \r\n {value}\r\n
      \r\n
      \r\n {data[item]}\r\n
      \r\n
    • \r\n ))\r\n }\r\n
    \r\n \r\n
    \r\n onCloseModal(false)}\r\n >\r\n بستن\r\n \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default UseFeedbackDetailModal","import React, { useCallback, useEffect, useState } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { MainContent, PageTitleLayout, WrapperLayout } from '../../Component/Kit/Layout';\r\nimport Modal from '../../Component/Kit/Modal';\r\nimport { Loader } from '../../Component/Shared/Loader';\r\nimport Table from '../../Component/Shared/Table/Table';\r\nimport ApiClient from '../../Requester/ApiClient';\r\nimport Urls from '../../Requester/Urls';\r\nimport { ConvertQueryString } from '../../Utility/Services/convert-query-string';\r\nimport DateConvert from '../../Utility/Services/date-convert';\r\nimport UseFeedbackDetailModal from './UseFeedbackDetailModal';\r\n\r\nfunction UserFeedback() {\r\n const [showUserFeedBackModal, setShowUserFeedBackModal] = useState(false);\r\n const [userFeedBackList, setUserFeedBackList] = useState([]);\r\n const [loading, setLoading] = useState(true);\r\n const [modalData, setModalData] = useState({});\r\n const location = useLocation();\r\n\r\n const tableConfig = {\r\n header: {\r\n userName: \"نام کاربری\",\r\n userId: \"شناسه کاربری\",\r\n shortContent: 'متن بازخورد',\r\n createdAt: \"تاریخ بازخورد\",\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n },\r\n },\r\n mode: [\"search\"],\r\n };\r\n\r\n function tableActions(items) {\r\n switch (items.actionName) {\r\n case 'view':\r\n setModalData(items.data);\r\n setShowUserFeedBackModal(true);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n const getUserFeedbackList = useCallback(() => {\r\n ApiClient.Get(Urls.GetFeedback(), ConvertQueryString(location.search))\r\n .then(res => {\r\n const dataList = res.result;\r\n dataList.items.map(item => {\r\n item.shortContent = item.content.length > 90\r\n ? `${item.content.substring(0, 90)} ...`\r\n : item.content;\r\n item.createdAt = DateConvert(item.createdAt);\r\n return item\r\n })\r\n setUserFeedBackList(res.result);\r\n setLoading(false);\r\n })\r\n }, [location.search])\r\n\r\n useEffect(() => {\r\n getUserFeedbackList()\r\n }, [getUserFeedbackList])\r\n\r\n return (\r\n \r\n \r\n
    \r\n \r\n
    لیست بازخورد کاربران
    \r\n در این بخش لیست بازخوردهای ثبت شده کاربران در پنل کاربری قابل مشاهده است.\r\n
    \r\n
    \r\n {loading === true\r\n ?\r\n \r\n :\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n setShowUserFeedBackModal(false)}\r\n onCancel={() => setShowUserFeedBackModal(false)}\r\n >\r\n setShowUserFeedBackModal(e)} />\r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default UserFeedback","import React, { useEffect, useState } from 'react'\r\nimport { useLocation } from 'react-router-dom'\r\nimport { StyledButton } from '../../../Component/Kit/Button'\r\nimport { HeaderContent, MainContent, PageTitleLayout, WrapperLayout } from '../../../Component/Kit/Layout'\r\nimport { Loader } from '../../../Component/Shared/Loader'\r\nimport Table from '../../../Component/Shared/Table/Table'\r\nimport ApiClient from '../../../Requester/ApiClient'\r\nimport Urls from '../../../Requester/Urls'\r\nimport { ConvertQueryString } from '../../../Utility/Services/convert-query-string'\r\nimport PlanPositionService from '../../../Utility/Services/PlanPositionService'\r\nimport { SeprateNumberWithComma } from '../../../Utility/Services/SeprateNumberWithComma'\r\n\r\nexport const PlansList = ({ history }) => {\r\n const location = useLocation();\r\n const [planList, setPlanList] = useState({});\r\n const [loading, setLoading] = useState(true);\r\n\r\n const tableConfig = {\r\n header: {\r\n name: 'نام پلن',\r\n positionTitle: 'جایگاه',\r\n isActiveStatus: 'وضعیت',\r\n ActivePlanUser: 'تعداد کاربر فعال',\r\n buyerCount: 'تعداد خریداری شده',\r\n isDeletedStatus: 'حذف',\r\n },\r\n actions: {\r\n view: {\r\n icon: 'fa fa-eye',\r\n condition: (data) => {\r\n return (!!Number(data.ActivePlanUser));\r\n },\r\n },\r\n edit: {\r\n icon: \"fa fa-edit\",\r\n },\r\n // delete: {\r\n // icon: 'fa fa-trash',\r\n // condition: (data) => {\r\n // return !!data.isDeletable;\r\n // },\r\n // },\r\n },\r\n mode: ['search'],\r\n filters: [],\r\n };\r\n\r\n function tableActions(items) {\r\n switch (items.actionName) {\r\n case 'view':\r\n history.push(`plan/${items.data.id}/users?name=${items.data.name}`);\r\n break;\r\n case 'edit':\r\n history.push(`plan/${items.data.id}/detail`);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n function getPlans() {\r\n ApiClient.Get(Urls.Plan(), ConvertQueryString(loading.search))\r\n .then(res => {\r\n let dataItems = res.result;\r\n dataItems.items.map((item) => {\r\n item.isDeletedStatus = item.isDeleted ? 'آرشیو شده' : 'موجود';\r\n item.isActiveStatus = (!item.isDeleted && item.isActive) ? 'فعال' : 'غیرفعال';\r\n item.positionTitle = PlanPositionService(item.position);\r\n item.ActivePlanUser = SeprateNumberWithComma(item.buyerCount + item.manualAssignmentCount);\r\n item.buyerCount = SeprateNumberWithComma(item.buyerCount);\r\n return item\r\n })\r\n setPlanList(dataItems);\r\n setLoading(false);\r\n })\r\n }\r\n useEffect(() => {\r\n getPlans()\r\n }, [location.search]);\r\n\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n history.push('/plan/add')}\r\n >\r\n ایجاد پلن\r\n \r\n history.push('/plan/free')}\r\n >\r\n ویرایش پلن رایگان\r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n
    لیست پلن‌ ها
    \r\n در این بخش لیست همه پلن‌ها قابل مشاهده است.\r\n
    \r\n
    \r\n {loading === true ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n","const PlanItemLimitationEnum = {\r\n BulkSend: 1,\r\n MobileBankSend: 2,\r\n ParametricSend: 3,\r\n MultipleTextSend: 4,\r\n ScheduledCampaign: 5,\r\n ABTestCampaign: 6,\r\n EventCampaign: 7,\r\n ReceivedMessagesReport: 8,\r\n UserTemplate: 9,\r\n BlackListInquiryCount: 10,\r\n SaleCooperation: 11,\r\n PersonalBlackListKeyword: 12,\r\n FastSend: 13,\r\n ApiKey: 14,\r\n IPLimitationOnApiKeys: 15,\r\n SmsTransmissionApiParameterless: 16,\r\n SmsTransmissionApiWithParameter: 17,\r\n SmsTransmissionEmailParameterless: 18,\r\n SmsTransmissionEmailWithParameter: 19,\r\n SmsTransmissionMobileParameterless: 20,\r\n SmsTransmissionMobileWithParameter: 21,\r\n SmsSecretaryParameterless: 22,\r\n SmsSecretaryWithParameter: 23,\r\n CodeReader: 24,\r\n CodeReaderParameters: 25,\r\n Contacts: 26,\r\n ContactGroups: 27,\r\n ContactEvents: 28,\r\n ConcurrentOpenTicketsCount: 29,\r\n WebServices: 30\r\n}\r\n\r\nconst PlanItemLimitationModel = [\r\n { key: 'BulkSend', value: PlanItemLimitationEnum.BulkSend, name: \"ارسال ساده\" },\r\n { key: 'MobileBankSend', value: PlanItemLimitationEnum.MobileBankSend, name: \"بانک شماره\" },\r\n { key: 'ParametricSend', value: PlanItemLimitationEnum.ParametricSend, name: \"هوشمند پارامتریک\" },\r\n { key: 'MultipleTextSend', value: PlanItemLimitationEnum.MultipleTextSend, name: \"هوشمند متناظر\" },\r\n { key: 'ScheduledCampaign', value: PlanItemLimitationEnum.ScheduledCampaign, name: \"کمپین دوره‌ای\" },\r\n { key: 'ABTestCampaign', value: PlanItemLimitationEnum.ABTestCampaign, name: \"کمپین A-B Test\" },\r\n { key: 'EventCampaign', value: PlanItemLimitationEnum.EventCampaign, name: \"کمپین رویدادی\" },\r\n { key: 'ReceivedMessagesReport', value: PlanItemLimitationEnum.ReceivedMessagesReport, name: \"گزارش‌های دریافتی\" },\r\n { key: 'UserTemplate', value: PlanItemLimitationEnum.UserTemplate, name: \"قالب کاربر\" },\r\n { key: 'BlackListInquiryCount', value: PlanItemLimitationEnum.BlackListInquiryCount, name: \" تعداد مجاز استعلام خطوط بلک‌ لیست (روزانه)\" },\r\n { key: 'SaleCooperation', value: PlanItemLimitationEnum.SaleCooperation, name: \"همکاری در فروش\" },\r\n { key: 'PersonalBlackListKeyword', value: PlanItemLimitationEnum.PersonalBlackListKeyword, name: \"کلیدواژهای‌های شخصی لیست سیاه\" },\r\n { key: 'FastSend', value: PlanItemLimitationEnum.FastSend, name: \"ماژول ارسال سریع\" },\r\n { key: 'ApiKey', value: PlanItemLimitationEnum.ApiKey, name: \"تعداد Api Key\" },\r\n { key: 'IPLimitationOnApiKeys', value: PlanItemLimitationEnum.IPLimitationOnApiKeys, name: \"محدودیت ثبت ip برای api key\" },\r\n { key: 'SmsTransmissionApiParameterless', value: PlanItemLimitationEnum.SmsTransmissionApiParameterless, name: \"ماژول انتقال پیامک api بدون پارامتر\" },\r\n { key: 'SmsTransmissionApiWithParameter', value: PlanItemLimitationEnum.SmsTransmissionApiWithParameter, name: \"ماژول انتقال پیامک api با پارامتر\" },\r\n { key: 'SmsTransmissionEmailParameterless', value: PlanItemLimitationEnum.SmsTransmissionEmailParameterless, name: \"ماژول انتقال پیامک ایمیل بدون پارامتر\" },\r\n { key: 'SmsTransmissionEmailWithParameter', value: PlanItemLimitationEnum.SmsTransmissionEmailWithParameter, name: \" ماژول انتقال پیامک ایمیل با پارامتر\" },\r\n { key: 'SmsTransmissionMobileParameterless', value: PlanItemLimitationEnum.SmsTransmissionMobileParameterless, name: \"ماژول انتقال موبایل بدون پارامتر\" },\r\n { key: 'SmsTransmissionMobileWithParameter', value: PlanItemLimitationEnum.SmsTransmissionMobileWithParameter, name: \"ماژول انتقال موبایل با پارامتر\" },\r\n { key: 'SmsSecretaryParameterless', value: PlanItemLimitationEnum.SmsSecretaryParameterless, name: \"منشی پیامکی بدون پارامتر\" },\r\n { key: 'SmsSecretaryWithParameter', value: PlanItemLimitationEnum.SmsSecretaryWithParameter, name: \"منشی پیامکی با پارامتر\" },\r\n { key: 'CodeReader', value: PlanItemLimitationEnum.CodeReader, name: \"کدخوان\" },\r\n { key: 'CodeReaderParameters', value: PlanItemLimitationEnum.CodeReaderParameters, name: \"کلیدواژه‌های کدخوان\" },\r\n { key: 'Contacts', value: PlanItemLimitationEnum.Contacts, name: \"تعداد مخاطبین\" },\r\n { key: 'ContactGroups', value: PlanItemLimitationEnum.ContactGroups, name: \"تعداد گروه مخاطبین\" },\r\n { key: 'ContactEvents', value: PlanItemLimitationEnum.ContactEvents, name: \"تعداد رویداد‌های مخاطبین\" },\r\n { key: 'ConcurrentOpenTicketsCount', value: PlanItemLimitationEnum.ConcurrentOpenTicketsCount, name: \"تعداد تیکت های باز جاری\" },\r\n { key: 'WebServices', value: PlanItemLimitationEnum.WebServices, name: \"وب سرویس\" },\r\n]\r\n\r\nconst PlanConfigurationsList = {\r\n BulkSend: false,\r\n MobileBankSend: false,\r\n ParametricSend: false,\r\n MultipleTextSend: false,\r\n ScheduledCampaign: false,\r\n ABTestCampaign: false,\r\n EventCampaign: false,\r\n ReceivedMessagesReport: false,\r\n UserTemplate: true,\r\n BlackListInquiryCount: true,\r\n SaleCooperation: false,\r\n PersonalBlackListKeyword: false,\r\n FastSend: true,\r\n ApiKey: true,\r\n IPLimitationOnApiKeys: false,\r\n SmsTransmissionApiParameterless: false,\r\n SmsTransmissionApiWithParameter: true,\r\n SmsTransmissionEmailParameterless: false,\r\n SmsTransmissionEmailWithParameter: true,\r\n SmsTransmissionMobileParameterless: false,\r\n SmsTransmissionMobileWithParameter: true,\r\n SmsSecretaryParameterless: false,\r\n SmsSecretaryWithParameter: true,\r\n CodeReader: false,\r\n CodeReaderParameters: true,\r\n Contacts: true,\r\n ContactGroups: true,\r\n ContactEvents: true,\r\n ConcurrentOpenTicketsCount: true,\r\n WebServices: false,\r\n};\r\n\r\nexport { PlanItemLimitationModel, PlanConfigurationsList }","\r\nimport { planBasePriceTier, planIsActive, planName, planPosition, planCreditCount, planCreditBasePrice, planProviderId, planNumberLength, planPerMonth, planLimitationItem } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const ModifyPlanItemDetailSchema = Yup.object().shape({\r\n planIsActive,\r\n planName,\r\n planPosition,\r\n planCreditCount,\r\n planCreditBasePrice,\r\n planProviderId,\r\n planNumberLength,\r\n planBasePriceTier,\r\n planPerMonth,\r\n planLimitationItem,\r\n});\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const PlanSectionStyled = styled.div`\r\n border: 2px dashed #d6d6e0;\r\n border-radius: 6px;\r\n padding: 2rem 1rem 3rem 1rem;\r\n margin-bottom: 1.5rem;\r\n\r\n /* .price-per-plan {\r\n .head-row,\r\n .cell-row {\r\n grid-template-columns: 0.5fr repeat(4, 1fr);\r\n border-bottom: 5px solid #fff;\r\n background-color: #f3f3f3;\r\n column-gap: 1rem;\r\n align-content: center;\r\n display: grid;\r\n height: 52px;\r\n div {\r\n padding: 5px 0.75rem;\r\n }\r\n }\r\n .head-row {\r\n text-align: center;\r\n border-radius: 7px 7px 0 0;\r\n height: 60px;\r\n div {\r\n font-weight: bold;\r\n font-size: 1.2rem;\r\n }\r\n }\r\n .cell-row {\r\n > div {\r\n &:first-child {\r\n background-color: #f3f3f3;\r\n font-weight: bold;\r\n font-size: 1.2rem;\r\n display: inline-grid;\r\n align-items: center;\r\n text-indent: 0.5em;\r\n }\r\n }\r\n &:last-child {\r\n border-radius: 0 0 7px 7px;\r\n }\r\n }\r\n } */\r\n\r\n .price-per-plan {\r\n grid-template-columns: 0.5fr repeat(4, 1fr);\r\n /* column-gap: 0.5rem; */\r\n display: grid;\r\n .head-row,\r\n .cell-row {\r\n row-gap: 5px;\r\n display: grid;\r\n > div {\r\n padding: 5px 0.75rem;\r\n background-color: #f3f3f3;\r\n height: 52px;\r\n justify-content: center;\r\n align-items: center;\r\n display: flex;\r\n }\r\n }\r\n .head-row {\r\n div {\r\n justify-content: flex-start;\r\n font-weight: bold;\r\n font-size: 1.2rem;\r\n text-indent: 10px;\r\n &:first-child {\r\n border-radius: 0px 7px 0 0;\r\n height: 60px;\r\n }\r\n &:last-child {\r\n border-radius: 0px 0px 7px 0;\r\n /* height: 60px; */\r\n }\r\n }\r\n }\r\n .cell-row {\r\n > div {\r\n &:first-child {\r\n background-color: #f3f3f3;\r\n font-weight: bold;\r\n font-size: 1.2rem;\r\n display: inline-grid;\r\n align-items: center;\r\n text-indent: 0.5em;\r\n height: 60px;\r\n text-align: center;\r\n width: 100%;\r\n }\r\n }\r\n\r\n &:last-child {\r\n > div {\r\n &:first-child {\r\n border-radius: 7px 0 0px 0px;\r\n }\r\n &:last-child {\r\n border-radius: 0px 0px 0 7px;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n","import { Formik } from 'formik'\r\nimport React, { useEffect, useState } from 'react'\r\nimport { useHistory, useRouteMatch } from 'react-router-dom'\r\nimport { toast } from 'react-toastify'\r\nimport Swal from 'sweetalert2'\r\nimport BackToPage from '../../../Component/Kit/back'\r\nimport { StyledButton } from '../../../Component/Kit/Button'\r\nimport { StyledForm, StyledInput, StyledSelect, StyledSwitchBox } from '../../../Component/Kit/Form'\r\nimport { HeaderContent, MainContent, PageTitleLayout, WrapperLayout } from '../../../Component/Kit/Layout'\r\nimport ApiClient from '../../../Requester/ApiClient'\r\nimport Urls from '../../../Requester/Urls'\r\nimport { PlanConfigurationsList, PlanItemLimitationModel } from '../../../Utility/Model/PlanItemLimitation.model'\r\nimport { PlanPositionModel } from '../../../Utility/Model/PlanPositionModel'\r\nimport { SystemLineProviderEnum } from '../../../Utility/Model/provider-enum.model'\r\nimport { SeprateNumberWithComma } from '../../../Utility/Services/SeprateNumberWithComma'\r\nimport { ModifyPlanItemDetailSchema } from '../../../Utility/Validation/Schema/ModifyPlanItemDetailSchema'\r\nimport { PlanSectionStyled } from '../style'\r\n\r\nfunction Repeat(props) {\r\n let items = [];\r\n for (let i = 0; i < props.numTimes; i++) {\r\n items.push(props.children(i));\r\n }\r\n return <>{items};\r\n}\r\n\r\nconst PlanItemDetail = () => {\r\n const history = useHistory();\r\n const match = useRouteMatch();\r\n const editMode = !!match.params.id;\r\n const [planTiers, setPlanTiers] = useState([]);\r\n const [planBasePriceTier, setPlanBasePriceTier] = useState({});\r\n // const [planBasePriceTier, setPlanBasePriceTier] = useState(Array(10).fill().map((f, i) => ({ creditTierId: i + 1, basePrice: '' })));\r\n const [planPerMonth, setPlanPerMonth] = useState([\r\n { month: 1, name: 'یک ماهه', active: false, totalAmount: 0, creditAmount: 0, lineAmount: 0 },\r\n { month: 3, name: 'سه ماهه', active: false, totalAmount: 0, creditAmount: 0, lineAmount: 0 },\r\n { month: 6, name: 'شش ماهه', active: false, totalAmount: 0, creditAmount: 0, lineAmount: 0 },\r\n { month: 12, name: 'یکساله', active: false, totalAmount: 0, creditAmount: 0, lineAmount: 0 }\r\n ]);\r\n const [planDetail, setPlanDetail] = useState({});\r\n const [hasLine, setHasLine] = useState(false);\r\n const [hasFreeCredit, setHasFreeCredit] = useState(false);\r\n const planBasePriceInTiersName = {\r\n fromPrice: 'از قیمت',\r\n toPrice: 'تا قیمت',\r\n basePrice: 'قیمت پایه',\r\n planBasePrice: 'تعرفه پلن',\r\n }\r\n const planLimitationItemName = {\r\n name: 'نام قابلیت',\r\n isActive: 'وضعیت',\r\n limitationCount: 'محدودیت‌ها',\r\n }\r\n\r\n useEffect(() => {\r\n if (match.params.id) {\r\n ApiClient.Get(Urls.Plan(match.params.id))\r\n .then((res) => {\r\n let basePrices = Object.assign({}, ...res.result.creditTiers.map((x) => ({ [x.creditTierId]: x.basePrice })));\r\n setPlanBasePriceTier(basePrices);\r\n\r\n setPlanDetail(res.result);\r\n const month = planPerMonth.map(item => ({\r\n ...res.result.months.find(x => {\r\n if (x.month === item.month) {\r\n item.active = true;\r\n item.creditAmount = x.creditAmount;\r\n item.lineAmount = x.lineAmount;\r\n item.totalAmount = x.totalAmount;\r\n return x\r\n }\r\n })\r\n , ...item\r\n }))\r\n setHasLine(res.result.line?.providerId)\r\n setHasFreeCredit(res.result.credit?.basePrice)\r\n setPlanPerMonth(month);\r\n })\r\n }\r\n ApiClient.Get(Urls.GetCreditTier())\r\n .then((res) => {\r\n setPlanTiers(res.result);\r\n })\r\n }, [match.params.id])\r\n\r\n const deletePlan = () => {\r\n Swal.fire({\r\n title: `آیا از حذف پلن مطمئن هستید؟`,\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Delete(Urls.Plan(match.params.id))\r\n .then(() => {\r\n toast.success('پلن با موفقیت حذف شد.');\r\n history.goBack();\r\n })\r\n }\r\n })\r\n }\r\n\r\n return (\r\n \r\n
    \r\n \r\n {editMode && !planDetail.isDeleted &&\r\n deletePlan()}\r\n >\r\n حذف پلن\r\n \r\n }\r\n\r\n \r\n \r\n \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    جزئیات پلن {planDetail && planDetail.name}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {/*
    \r\n
    */}\r\n ({ type: i + 1, limitationCount: null, isActive: false }))\r\n }}\r\n validateOnMount={true}\r\n enableReinitialize={true}\r\n // validationSchema={ModifyPlanItemDetailSchema}\r\n onSubmit={(values, actions) => {\r\n let tierData = [];\r\n Object.keys(values.planBasePriceTier).map((key) => {\r\n tierData.push({ creditTierId: Number(key), basePrice: Number(values.planBasePriceTier[key]) })\r\n });\r\n const months = values.planPerMonth.filter(item => item.active)\r\n const payload = {\r\n isActive: values.planIsActive,\r\n refrenceId: Number(match.params.id) || null,\r\n name: values.planName,\r\n position: Number(values.planPosition),\r\n line: hasLine && values.planProviderId && values.planNumberLength\r\n ? {\r\n providerId: Number(values.planProviderId),\r\n numberLength: Number(values.planNumberLength),\r\n }\r\n : null,\r\n credit: hasFreeCredit && values.planCreditCount && values.planCreditBasePrice\r\n ? {\r\n creditCount: Number(values.planCreditCount),\r\n basePrice: Number(values.planCreditBasePrice),\r\n }\r\n : null,\r\n months: months,\r\n items: values.planLimitationItem,\r\n creditTiers: tierData\r\n }\r\n ApiClient.Post(Urls.Plan(), JSON.stringify(payload))\r\n .then(() => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n history.goBack();\r\n })\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n {/*
    {JSON.stringify(formik.errors, '', 2)}
    */}\r\n\r\n
    \r\n
    \r\n
    مشخصات پلن:
    \r\n \r\n
    \r\n
    \r\n
    \r\n وضعیت پلن: \r\n formik.setFieldValue('planIsActive', e.target.checked)}\r\n />\r\n
    \r\n formik.setFieldValue(\"planName\", e.target.value)}\r\n />\r\n formik.setFieldValue(\"planPosition\", e.target.value)}\r\n />\r\n
    \r\n\r\n
    \r\n
    \r\n خط مجزا دارد: \r\n {\r\n setHasLine(!hasLine)\r\n if (hasLine) {\r\n formik.values.planPerMonth.map((item, index) => (item.active) ? formik.setFieldValue(`planPerMonth.${index}.lineAmount`, 0) : null);\r\n }\r\n }} />\r\n
    \r\n formik.setFieldValue(\"planNumberLength\", e.target.value)}\r\n disabled={!hasLine}\r\n />\r\n formik.setFieldValue(\"planProviderId\", e.target.value)}\r\n disabled={!hasLine}\r\n />\r\n
    \r\n\r\n
    \r\n
    \r\n اعتبار رایگان دارد: \r\n {\r\n setHasFreeCredit(!hasFreeCredit);\r\n if (hasFreeCredit) {\r\n formik.values.planPerMonth.map((item, index) => (item.active) ? formik.setFieldValue(`planPerMonth.${index}.creditAmount`, 0) : null);\r\n }\r\n }} />\r\n
    \r\n formik.setFieldValue(\"planCreditCount\", e.target.value)}\r\n disabled={!hasFreeCredit}\r\n />\r\n formik.setFieldValue(\"planCreditBasePrice\", e.target.value)}\r\n disabled={!hasFreeCredit}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    قیمت جزئیات پلن‌ها:
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    وضعیت
    \r\n
    اعتبار
    \r\n
    خط
    \r\n
    کل
    \r\n
    \r\n\r\n {/* {formik.values.planPerMonth.map((method, index) => ( */}\r\n \r\n {(index) =>\r\n
    \r\n
    {planPerMonth[index].name}
    \r\n
    \r\n formik.setFieldValue(`planPerMonth.${index}.active`, e.target.checked)}\r\n />\r\n
    \r\n
    \r\n formik.setFieldValue(`planPerMonth.${index}.creditAmount`, e.target.value)}\r\n disabled={!formik.values.planPerMonth[index].active || !hasFreeCredit}\r\n error={((formik.touched[`planPerMonth_${index}_creditAmount`] && hasFreeCredit) && !formik.values.planPerMonth[index].creditAmount) ? 'این فیلد الزامی است.' : 'false'}\r\n />\r\n
    \r\n
    \r\n formik.setFieldValue(`planPerMonth.${index}.lineAmount`, e.target.value)}\r\n error={((formik.touched[`planPerMonth_${index}_lineAmount`] && hasLine) && !formik.values.planPerMonth[index].lineAmount) ? 'این فیلد الزامی است.' : 'false'}\r\n disabled={!formik.values.planPerMonth[index].active || !hasLine}\r\n />\r\n
    \r\n
    \r\n formik.setFieldValue(`planPerMonth.${index}.totalAmount`, e.target.value)}\r\n error={(formik.touched[`planPerMonth_${index}_totalAmount`] && !formik.values.planPerMonth[index].totalAmount) ? 'این فیلد الزامی است.' : 'false'}\r\n disabled={!formik.values.planPerMonth[index].active}\r\n />\r\n
    \r\n
    \r\n }\r\n
    \r\n {/* ))} */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    ایجاد محدودیت‌ها:
    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n {\r\n planLimitationItemName &&\r\n Object.entries(planLimitationItemName).map(([item, value]) => (\r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n {(planDetail.items || formik.initialValues.planLimitationItem) && PlanItemLimitationModel.map((dataItem, index) => (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
    #{value}
    {dataItem.value}\r\n {dataItem.name}\r\n \r\n {formik.values.planLimitationItem[index] &&\r\n {\r\n formik.setFieldValue(`planLimitationItem.${index}.isActive`, e.target.checked)\r\n // if (e.target.checked === false && PlanConfigurationsList[dataItem.key]) {\r\n // formik.setFieldValue(`planLimitationItem.${index}.limitationCount`, null);\r\n // }\r\n }}\r\n />\r\n }\r\n \r\n {PlanConfigurationsList[dataItem.key] ? (\r\n formik.setFieldValue(`planLimitationItem.${index}.limitationCount`, Number(e.target.value))}\r\n disabled={!formik.values.planLimitationItem[index].isActive}\r\n />\r\n ) :     --- }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    قیمت پایه پلن برای هر تیر:
    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n {\r\n planBasePriceInTiersName &&\r\n Object.entries(planBasePriceInTiersName).map(([item, value]) => (\r\n \r\n ))\r\n }\r\n \r\n \r\n\r\n \r\n {planTiers.map((dataItem, index) => (\r\n <>\r\n \r\n \r\n {dataItem.fromPrice &&\r\n <>\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
    #{value}
    {index + 1} {SeprateNumberWithComma(dataItem.fromPrice)} ریال{SeprateNumberWithComma(dataItem.toPrice)} ریال{dataItem.basePrice}\r\n formik.setFieldValue(`planBasePriceTier.${dataItem.id}`, e.target.value)}\r\n />
    \r\n
    \r\n
    \r\n
    \r\n\r\n {/*
    {JSON.stringify(formik, null, 2)}
    */}\r\n\r\n {!planDetail.isDeleted && (\r\n
    \r\n \r\n ثبت\r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n \r\n {/*
    \r\n
    */}\r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default PlanItemDetail","import { Formik } from 'formik'\r\nimport React, { useEffect, useState } from 'react'\r\nimport { useHistory, useParams, useRouteMatch } from 'react-router-dom'\r\nimport { toast } from 'react-toastify'\r\nimport BackToPage from '../../../Component/Kit/back'\r\nimport { StyledButton } from '../../../Component/Kit/Button'\r\nimport { StyledForm, StyledInput, StyledSelect, StyledSwitchBox } from '../../../Component/Kit/Form'\r\nimport { HeaderContent, MainContent, PageTitleLayout, WrapperLayout } from '../../../Component/Kit/Layout'\r\nimport ApiClient from '../../../Requester/ApiClient'\r\nimport Urls from '../../../Requester/Urls'\r\nimport {PlanConfigurationsList, PlanItemLimitationModel} from '../../../Utility/Model/PlanItemLimitation.model'\r\nimport { SystemLineProviderEnum } from '../../../Utility/Model/provider-enum.model'\r\nimport { PlanSectionStyled } from '../style'\r\n\r\nconst monthOption = [\r\n { value: 1, name: 'یک ماهه'},\r\n { value: 3, name: 'سه ماهه'},\r\n { value: 6, name: 'شش ماهه'},\r\n { value: 12, name: 'یکساهه'}\r\n]\r\nfunction Repeat(props) {\r\n let items = [];\r\n for (let i = 0; i < props.numTimes; i++) {\r\n items.push(props.children(i));\r\n }\r\n return <>{items};\r\n}\r\n\r\nconst PlanFree = () => {\r\n const history = useHistory();\r\n const match = useRouteMatch();\r\n const [planDetail, setPlanDetail] = useState({});\r\n const [planConfigurations, setPlanConfigurations] = useState({});\r\n const [hasLine, setHasLine] = useState(false);\r\n const [hasFreeCredit, setHasFreeCredit] = useState(false);\r\n const planLimitationItemName = {\r\n name: 'نام قابلیت',\r\n isActive: 'وضعیت',\r\n limitationCount: 'محدودیت‌ها',\r\n }\r\n\r\n useEffect(() => {\r\n ApiClient.Get(Urls.PlanFree())\r\n .then((res) => {\r\n setPlanDetail(res.result);\r\n setHasLine(res.result.line?.providerId)\r\n setHasFreeCredit(res.result.credit?.basePrice)\r\n })\r\n }, [match.params.id])\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    جزئیات پلن رایگان
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {/*
    \r\n
    */}\r\n ({ type: i + 1, limitationCount: null, isActive: false }))\r\n // Array.from({length: Math.floor(5)}, (_value, index) => ({type: index+1 , limitationCount: null, isActive: false}))\r\n }}\r\n validateOnMount={true}\r\n enableReinitialize={true}\r\n // validationSchema={ModifyPlanItemDetailSchema}\r\n onSubmit={(values, actions) => {\r\n const payload = {\r\n name: values.planName,\r\n line: hasLine && values.planProviderId && values.planNumberLength\r\n ? {\r\n providerId: Number(values.planProviderId),\r\n numberLength: Number(values.planNumberLength),\r\n }\r\n : null,\r\n credit: hasFreeCredit && values.planCreditCount && values.planCreditBasePrice\r\n ? {\r\n creditCount: Number(values.planCreditCount),\r\n basePrice: Number(values.planCreditBasePrice),\r\n }\r\n : null,\r\n month: values.month,\r\n items: values.planLimitationItem,\r\n }\r\n ApiClient.Put(Urls.PlanFree(), JSON.stringify(payload))\r\n .then(() => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n history.goBack();\r\n })\r\n\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n وضعیت پلن: \r\n formik.setFieldValue(\"planIsActive\", e.target.value)}\r\n />\r\n
    \r\n formik.setFieldValue(\"planName\", e.target.value)}\r\n />\r\n formik.setFieldValue(\"month\", e.target.value)}\r\n />\r\n
    \r\n\r\n
    \r\n
    \r\n خط مجزا دارد: \r\n setHasLine(!hasLine)} />\r\n
    \r\n formik.setFieldValue(\"planNumberLength\", e.target.value)}\r\n disabled={!hasLine}\r\n />\r\n formik.setFieldValue(\"planProviderId\", e.target.value)}\r\n disabled={!hasLine}\r\n />\r\n
    \r\n\r\n
    \r\n
    \r\n اعتبار رایگان دارد: \r\n setHasFreeCredit(!hasFreeCredit)} />\r\n
    \r\n formik.setFieldValue(\"planCreditCount\", e.target.value)}\r\n disabled={!hasFreeCredit}\r\n />\r\n formik.setFieldValue(\"planCreditBasePrice\", e.target.value)}\r\n disabled={!hasFreeCredit}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    ایجاد محدودیت‌ها:
    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n {\r\n planLimitationItemName &&\r\n Object.entries(planLimitationItemName).map(([item, value]) => (\r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n {/*
    {JSON.stringify(formik.values.planLimitationItem)}
    */}\r\n {/* {(formik.values.planLimitationItem || formik.initialValues.planLimitationItem ) && PlanItemLimitationModel.map((dataItem, index) => ( */}\r\n {(planDetail.items || formik.initialValues.planLimitationItem) && PlanItemLimitationModel.map((dataItem, index) => (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
    #{value}
    {dataItem.value}\r\n {dataItem.name}\r\n \r\n {formik.values.planLimitationItem[index] &&\r\n formik.setFieldValue(`planLimitationItem.${index}.isActive`, e.target.checked)}\r\n />\r\n }\r\n \r\n {PlanConfigurationsList[dataItem.key] ? (\r\n formik.setFieldValue(`planLimitationItem.${index}.limitationCount`, Number(e.target.value))}\r\n disabled={!formik.values.planLimitationItem[index].isActive}\r\n />\r\n ) :     --- }\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n \r\n تایید\r\n \r\n
    \r\n
    \r\n )}\r\n \r\n
    \r\n \r\n \r\n )\r\n}\r\n\r\nexport default PlanFree","import React, {useCallback, useEffect, useState} from 'react';\r\nimport ApiClient from '../../Requester/ApiClient';\r\nimport Urls from '../../Requester/Urls';\r\nimport Table from '../../Component/Shared/Table/Table';\r\nimport {HeaderContent, MainContent, PageTitleLayout,} from '../../Component/Kit/Layout';\r\nimport {useHistory, useLocation, useParams} from 'react-router-dom';\r\nimport {StyledButton} from '../../Component/Kit/Button';\r\nimport Swal from 'sweetalert2';\r\nimport {toast} from 'react-toastify';\r\nimport BackToPage from \"../../Component/Kit/back\";\r\nimport {ConvertQueryString} from \"../../Utility/Services/convert-query-string\";\r\n\r\n\r\nfunction SingleRepeatVerifySMs() {\r\n let params = useParams();\r\n let history = useHistory();\r\n let location = useLocation()\r\n const [pendingData, setpendingData] = useState({});\r\n const [messages, setMessages] = useState([]);\r\n const [selectedList, setSelectedList] = useState([]);\r\n\r\n const tableConfig = {\r\n header: {\r\n messageText: 'متن پیامک',\r\n lineNumber: 'شماره خط',\r\n isPending: 'درحال انتظار',\r\n },\r\n actions: {},\r\n mode: [\"filter\"],\r\n filters: [\"onlyPendings\"],\r\n hasSelectCol: true,\r\n };\r\n\r\n const getSMSQueue = useCallback(() => {\r\n ApiClient.Get(Urls.highConsumptionVerifyUserMessages(params.id), ConvertQueryString(location.search)).then((res) => {\r\n let data = res.result;\r\n data.items.map((item) => {\r\n item.isPending = item.isPending\r\n ? ``\r\n : ``;\r\n return item;\r\n })\r\n setMessages(data)\r\n }\r\n )\r\n }, [location.search]);\r\n\r\n\r\n const queueSmsHandler = async (item, isApprove, type) => {\r\n try {\r\n let result = await Swal.fire({\r\n title: '',\r\n text: `آیا از ${\r\n isApprove ? 'تایید' : 'عدم تایید'\r\n } این ${type === 'messages' ? 'متن' : 'کاربر'} اطمینان دارید؟`,\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonText: 'انصراف',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'بله، مطمئن هستم',\r\n });\r\n if (result.isConfirmed) {\r\n if (type === 'messages') {\r\n await ApiClient.Patch(Urls.highConsumptionVerifyUserMessages(params.id), JSON.stringify(\r\n {\r\n shouldAccept: isApprove,\r\n messageIds: [\r\n ...item\r\n ],\r\n selectAll: false\r\n }\r\n ));\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n setSelectedList([])\r\n getSMSQueue();\r\n } else {\r\n await ApiClient.Patch(Urls.highConsumptionVerifyPerUser(params.id));\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n history.push('/pending-sms/webservice-repeat')\r\n }\r\n }\r\n } catch (error) {\r\n toast.error(error);\r\n }\r\n };\r\n\r\n const tableSelectedList = (item) => {\r\n setSelectedList([...item.map(a => a.id)]);\r\n };\r\n const onApprovedUser = () => {\r\n queueSmsHandler(null, true, 'user')\r\n }\r\n\r\n const selectAllAction = async (isApprove) => {\r\n try {\r\n let result = await Swal.fire({\r\n title: '',\r\n text: `آیا از ${\r\n isApprove ? 'تایید' : 'عدم تایید'\r\n } پیام های این کاربر اطمینان دارید؟`,\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonColor: '#3085d6',\r\n cancelButtonText: 'انصراف',\r\n cancelButtonColor: '#d33',\r\n confirmButtonText: 'بله، مطمئن هستم',\r\n });\r\n if (result.isConfirmed) {\r\n ApiClient.Patch(Urls.highConsumptionVerifyUserMessages(params.id), JSON.stringify(\r\n {\r\n shouldAccept: isApprove,\r\n messageIds: [],\r\n selectAll: true\r\n }\r\n )).then(result => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n getSMSQueue();\r\n history.push('/pending-sms/webservice-repeat')\r\n });\r\n }\r\n } catch (error) {\r\n toast.error(error);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n ApiClient.Get(Urls.highConsumptionVerifyPerUser(params.id), ConvertQueryString(location.search)).then(async (res) => {\r\n let data = res.result;\r\n data.messages.items.map((item) => {\r\n item.isPending = item.isPending\r\n ? ``\r\n : ``;\r\n return item;\r\n })\r\n setpendingData(data);\r\n if (!ConvertQueryString(location.search).pageNumber) {\r\n setMessages(data.messages)\r\n }\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n if (pendingData.hasOwnProperty('userName')) {\r\n getSMSQueue()\r\n } else {\r\n if (!location.search.includes('onlyPendings')) {\r\n history.push('?onlyPendings=true')\r\n }\r\n }\r\n }, [getSMSQueue])\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n \r\n بازنشانی گنجایش\r\n \r\n\r\n
    \r\n \r\n
    \r\n \r\n\r\n \r\n
    \r\n
    اطلاعات کاربر
    \r\n
    \r\n {\r\n selectAllAction(false)\r\n }}\r\n >\r\n عدم تائید کلی پیام ها\r\n \r\n {\r\n selectAllAction(true)\r\n }}\r\n > تائید کلی پیام ها \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      \r\n نام کاربری\r\n
      \r\n
      \r\n {pendingData.userName}\r\n
      \r\n
    • \r\n
    • \r\n
      \r\n شماره موبایل\r\n
      \r\n
      \r\n {pendingData.mobile}\r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n queueSmsHandler(selectedList, false, 'messages')\r\n }}\r\n >\r\n عدم تائید پیام های انتخاب شده\r\n \r\n {\r\n queueSmsHandler(selectedList, true, 'messages')\r\n }}\r\n > تائید پیام های انتخاب شده\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default SingleRepeatVerifySMs;\r\n","import * as Yup from \"yup\";\r\nimport { dedicatedBasePrice } from '../Rules'\r\n\r\nexport const ModifyDedicatedBasePriceSchema = Yup.object().shape({\r\n dedicatedBasePrice\r\n});","import { Formik } from 'formik';\r\nimport React from 'react';\r\nimport { toast } from 'react-toastify';\r\nimport { StyledButton } from '../../../../Component/Kit/Button';\r\nimport { StyledForm, StyledInput } from '../../../../Component/Kit/Form';\r\nimport Modal from '../../../../Component/Kit/Modal';\r\nimport ApiClient from '../../../../Requester/ApiClient';\r\nimport Urls from '../../../../Requester/Urls';\r\nimport { ModifyDedicatedBasePriceSchema } from '../../../../Utility/Validation/Schema/ModifyDedicatedBasePriceSchema';\r\n\r\nconst ModifyDedicatedBasePriceModal = (props) => {\r\n const { data, visible, setVisible, onCancel, onClose, onSubmit } = props;\r\n const editMode = data !== null;\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n {\r\n if (editMode) {\r\n ApiClient.Put(Urls.DedicatedBasePrice(data.id), values.dedicatedBasePrice)\r\n .then(res => {\r\n toast.success('قیمت پایه اختصاصی با موفقیت ویرایش شد.')\r\n setVisible(false);\r\n actions.resetForm();\r\n onSubmit();\r\n })\r\n .catch(() => actions.resetForm())\r\n } else {\r\n ApiClient.Post(Urls.DedicatedBasePrice(), values.dedicatedBasePrice)\r\n .then(res => {\r\n toast.success('قیمت پایه اختصاصی با موفقیت افزوده شد.')\r\n setVisible(false);\r\n actions.resetForm();\r\n onSubmit();\r\n })\r\n .catch(() => actions.resetForm())\r\n }\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
    \r\n \r\n formik.setFieldValue(\"dedicatedBasePrice\", e.target.value)\r\n }\r\n />\r\n
    \r\n\r\n
    \r\n \r\n {editMode ? 'ویرایش' : 'ایجاد'} قیمت پایه اختصاصی\r\n \r\n setVisible(false)}\r\n >\r\n انصراف\r\n \r\n
    \r\n\r\n \r\n )}\r\n\r\n \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default ModifyDedicatedBasePriceModal","import React, { useCallback, useEffect, useState } from 'react'\r\nimport { toast } from 'react-toastify'\r\nimport Swal from 'sweetalert2'\r\nimport { StyledButton } from '../../../Component/Kit/Button'\r\nimport { HeaderContent, MainContent, PageTitleLayout, WrapperLayout } from '../../../Component/Kit/Layout'\r\nimport { Loader } from '../../../Component/Shared/Loader'\r\nimport Table from '../../../Component/Shared/Table/Table'\r\nimport ApiClient from '../../../Requester/ApiClient'\r\nimport Urls from '../../../Requester/Urls'\r\nimport ModifyDedicatedBasePriceModal from './ModifyDedicatedBasePriceModal'\r\n\r\nconst DedicatedBasePrice = () => {\r\n const [loading, setLoading] = useState(true);\r\n const [dedicatedBasePriceList, setDedicatedBasePriceList] = useState([]);\r\n const [modifyDedicatedModalHandler, setModifyDedicatedModalHandler] = useState(false);\r\n const [modifybasePriceData, setModifybasePriceData] = useState({});\r\n\r\n const tableConfig = {\r\n header: {\r\n basePrice: \"قیمت پایه\",\r\n usagesCount: \"تعداد تخصیص داده‌شده\",\r\n },\r\n actions: {\r\n edit: {\r\n icon: \"fa fa-edit\",\r\n },\r\n delete: {\r\n icon: \"fa fa-trash\",\r\n condition: (data) => {\r\n return (!data.usagesCount)\r\n }\r\n }\r\n },\r\n };\r\n\r\n function tableActions(items) {\r\n switch (items.actionName) {\r\n case 'delete':\r\n DeleteDedicatedBasePrice(items.data.id);\r\n break;\r\n case 'edit':\r\n setModifybasePriceData(items.data)\r\n setModifyDedicatedModalHandler(true);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n const DeleteDedicatedBasePrice = (basePriceId) => {\r\n Swal.fire({\r\n title: '',\r\n text: `آیا از حذف این قیمت پایه اختصاصی مطمئن هستید؟`,\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Delete(Urls.DedicatedBasePrice(basePriceId))\r\n .then(() => {\r\n toast.success('قیمت پایه اختصاصی موردنظر حذف شد.')\r\n getDedicatedBasePrice();\r\n })\r\n }\r\n })\r\n }\r\n\r\n const getDedicatedBasePrice = useCallback(() => {\r\n ApiClient.Get(Urls.DedicatedBasePrice())\r\n .then(res => {\r\n setDedicatedBasePriceList(res.result)\r\n setLoading(false);\r\n })\r\n }, []);\r\n\r\n useEffect(() => {\r\n getDedicatedBasePrice()\r\n }, [getDedicatedBasePrice])\r\n\r\n\r\n return (\r\n \r\n \r\n
    \r\n {\r\n setModifybasePriceData(null)\r\n setModifyDedicatedModalHandler(true);\r\n }}\r\n >\r\n ایجاد تعرفه اختصاصی\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    لیست تعرفه‌های اختصاصی
    \r\n در این بخش لیست همه تعرفه‌های اختصاصی تنظیم شده، قابل مشاهده است.\r\n
    \r\n
    \r\n {loading === true\r\n ?\r\n \r\n :\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n\r\n setModifyDedicatedModalHandler(false)}\r\n onCancel={() => setModifyDedicatedModalHandler(false)}\r\n onSubmit={() => getDedicatedBasePrice()}\r\n />\r\n\r\n\r\n
    \r\n )\r\n}\r\n\r\nexport default DedicatedBasePrice","import styled from \"styled-components\";\r\n\r\nexport const Wrapper = styled.div`\r\n textarea {\r\n direction: ltr;\r\n text-align: left;\r\n }\r\n`;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { StyledTextArea } from \"../../Kit/Form\";\r\nimport { Wrapper } from \"./styles\";\r\n\r\nconst NumberList = ({\r\n defaultValue,\r\n numberListHandler,\r\n onChange,\r\n error,\r\n name,\r\n id,\r\n lable,\r\n}) => {\r\n const [value, setValue] = useState(\"\");\r\n const [validArray, setValidArray] = useState(\"\");\r\n\r\n const commaSeparator = (e) => {\r\n const str = e.target.value;\r\n const numberList = str.split(/[,\\n ]+/);\r\n const last = numberList.slice(-1);\r\n if (last[0] === \"\") {\r\n numberList.pop();\r\n }\r\n const cleanNumbersList = JSON.parse(JSON.stringify(numberList));\r\n numberList.forEach((item, index) => {\r\n if (!item.length) {\r\n numberList.splice(index, 1);\r\n cleanNumbersList.splice(index, 1);\r\n } else {\r\n numberList[index] = item + \",\\n\";\r\n }\r\n });\r\n if (e.keyCode === 13) {\r\n e.target.value = numberList.join(\"\");\r\n }\r\n const validArrayList = cleanNumbersList.filter((i) => !isNaN(i));\r\n const invalidArray = cleanNumbersList.filter((i) => isNaN(i));\r\n setValidArray(validArrayList);\r\n onChange(e.target.value);\r\n numberListHandler({\r\n validArray: validArrayList,\r\n invalidArray,\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n setValue(defaultValue);\r\n }, [defaultValue]);\r\n\r\n return (\r\n \r\n commaSeparator(e)}\r\n onChange={(e) => setValue(e.target.value)}\r\n name={name}\r\n id={id}\r\n cols=\"100\"\r\n rows=\"10\"\r\n error={error}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default NumberList;\r\n","import { providerId, linesList } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const AddLinesToPlansSchema = Yup.object().shape({\r\n providerId,\r\n linesList,\r\n});\r\n","import { Formik } from \"formik\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { toast } from \"react-toastify\";\r\nimport { StyledButton } from \"../../../../../Component/Kit/Button\";\r\nimport { StyledForm, StyledSelect } from \"../../../../../Component/Kit/Form\";\r\nimport Modal from \"../../../../../Component/Kit/Modal\";\r\nimport NumberList from \"../../../../../Component/Shared/NumberList\";\r\nimport ApiClient from \"../../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../../Requester/Urls\";\r\nimport ProviderEnum from \"../../../../../Utility/Model/provider-enum.model\";\r\nimport { AddLinesToPlansSchema } from \"../../../../../Utility/Validation/Schema/AddLinesToPlansSchema\";\r\n\r\nconst AddLinesModal = ({ visible, closeHandler, confirmHandler }) => {\r\n const [numbersList, setNumbersList] = useState();\r\n const [providersList, setProvidersList] = useState();\r\n const numberListHandler = (e) => {\r\n setNumbersList(e);\r\n };\r\n\r\n useEffect(() => {\r\n setProvidersList((prevState) => [\r\n { name: \"انتخاب کنید...\", value: 0 },\r\n ...ProviderEnum,\r\n ]);\r\n }, []);\r\n return (\r\n \r\n {\r\n const body = {\r\n providerId: values.providerId,\r\n numbers: [...numbersList.validArray],\r\n };\r\n ApiClient.Post(Urls.plansLines(), body).then((res) => {\r\n toast.success('خطوط جدید با موفقیت ثبت شدند.');\r\n confirmHandler();\r\n });\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n \r\n formik.setFieldValue(\"providerId\", e.target.value)\r\n }\r\n />\r\n\r\n numberListHandler(e)}\r\n onChange={(e) => formik.setFieldValue(\"linesList\", e)}\r\n name=\"linesList\"\r\n id=\"linesList\"\r\n error={\r\n formik.errors.linesList && formik.touched.linesList\r\n ? formik.errors.linesList\r\n : \"false\"\r\n }\r\n lable=\"لیست خطوط\"\r\n />\r\n\r\n
    \r\n {\r\n closeHandler(false);\r\n }}\r\n >\r\n بستن\r\n \r\n \r\n انجام عملیات\r\n \r\n
    \r\n
    \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AddLinesModal;\r\n","import React from \"react\";\r\nimport { useState } from \"react\";\r\nimport { useCallback } from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { toast } from \"react-toastify\";\r\nimport Swal from \"sweetalert2\";\r\nimport { StyledButton } from \"../../../../Component/Kit/Button\";\r\nimport { PageTitleLayout } from \"../../../../Component/Kit/Layout\";\r\nimport Table from \"../../../../Component/Shared/Table/Table\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport { ConvertQueryString } from \"../../../../Utility/Services/convert-query-string\";\r\nimport GetProvider from \"../../../../Utility/Services/provider\";\r\nimport AddLinesModal from \"./AddLinesModal\";\r\nimport DateConvert from \"../../../../Utility/Services/date-convert\";\r\n\r\nconst PlansLineList = () => {\r\n const location = useLocation();\r\n const [linesList, setLinesList] = useState();\r\n const [lineCount, setLineCount] = useState([]);\r\n const [isAddLine, setIsAddLine] = useState(false);\r\n const tableConfig = {\r\n header: {\r\n number: \"شماره خط\",\r\n providerName: \"نام اپراتور\",\r\n isFreeIcon: \"آزاد بودن خط\",\r\n userName: \"اختصاص خط به\",\r\n assignedAt: \"تاریخ اختصاص خط\",\r\n },\r\n actions: {\r\n delete: {\r\n icon: \"fa fa-trash\",\r\n condition: (data) => {\r\n return data.isFree;\r\n },\r\n },\r\n },\r\n mode: [\"filter\", \"search\"],\r\n filters: [\"onlyFree\"],\r\n };\r\n\r\n const onInit = useCallback(() => {\r\n ApiClient.Get(Urls.plansLines(), ConvertQueryString(location.search)).then(\r\n (res) => {\r\n let data = res.result;\r\n data.items.map((m) => {\r\n m.providerName = GetProvider(m.providerId);\r\n m.isFreeIcon = m.userName\r\n ? ``\r\n : ``;\r\n m.assignedAt = DateConvert(m.assignedAt) || '- - -';\r\n m.userName = m.userName || '- - -';\r\n return m;\r\n });\r\n setLinesList(res.result);\r\n }\r\n );\r\n if(!location.search.includes('needCount')){\r\n ApiClient.Get(Urls.plansLinesCount(), ConvertQueryString(location.search)).then(\r\n (res) => {\r\n setLineCount(res.result)\r\n }\r\n );\r\n }\r\n\r\n }, [location.search]);\r\n\r\n const removeLine = (item) => {\r\n if (item.actionName === \"delete\") {\r\n Swal.fire({\r\n title: \"\",\r\n text: `آیا از حذف این خط مطمئن هستید؟`,\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n ApiClient.Delete(Urls.plansLines(item.data.id)).then(() => {\r\n toast.success(\"قیمت پایه اختصاصی موردنظر حذف شد.\");\r\n onInit();\r\n });\r\n }\r\n });\r\n }\r\n };\r\n\r\n const confirmLines = () => {\r\n setIsAddLine(false);\r\n onInit();\r\n };\r\n useEffect(() => {\r\n onInit();\r\n }, [onInit]);\r\n return (\r\n
    \r\n {linesList && lineCount && (\r\n <>\r\n
    \r\n \r\n
    لیست خطوط پلن ها
    \r\n لیستی از خطوط پلن ها در این جدول قابل بررسی است.\r\n
    \r\n setIsAddLine(true)}\r\n >\r\n افزودن خط جدید\r\n \r\n
    \r\n\r\n
    \r\n {lineCount.map((a , index) => (\r\n
    {a.numberLength} رقمی {a.count} عدد
    \r\n ))}\r\n
    \r\n\r\n \r\n\r\n\r\n \r\n )}\r\n setIsAddLine(false)}\r\n confirmHandler={() => confirmLines()}\r\n />\r\n
    \r\n );\r\n};\r\n\r\nexport default PlansLineList;\r\n","import { planLineNumber } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const AssignPlanLineToUserSchema = Yup.object().shape({\r\n planLineNumber,\r\n});\r\n","import { Formik } from \"formik\";\r\nimport React from \"react\";\r\nimport { StyledForm, StyledInput } from \"../../../../../Component/Kit/Form\";\r\nimport Modal from \"../../../../../Component/Kit/Modal\";\r\nimport { StyledButton } from \"../../../../../Component/Kit/Button\";\r\nimport { AssignPlanLineToUserSchema } from \"../../../../../Utility/Validation/Schema/AssignPlanLineToUserSchema\";\r\nimport Swal from \"sweetalert2\";\r\nimport ApiClient from \"../../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../../Requester/Urls\";\r\nimport { toast } from \"react-toastify\";\r\n\r\nconst AssignPlanLineModal = ({\r\n visible,\r\n closeHandler,\r\n confirmHandler,\r\n userId,\r\n}) => {\r\n return (\r\n \r\n {\r\n Swal.fire({\r\n title: \"\",\r\n text: `آیا مطمئن هستید؟`,\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n ApiClient.Patch(Urls.plansLinesPendingUser(userId), Number(values.planLineNumber)).then(() => {\r\n toast.success(\"خط به کاربر با موفقیت تخصیص داده شد.\");\r\n actions.resetForm();\r\n closeHandler();\r\n confirmHandler();\r\n });\r\n }\r\n });\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n \r\n formik.setFieldValue(\"planLineNumber\", e.target.value)\r\n }\r\n />\r\n
    \r\n {\r\n closeHandler(false);\r\n }}\r\n >\r\n بستن\r\n \r\n \r\n تایید\r\n \r\n
    \r\n
    \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AssignPlanLineModal;\r\n","import React from \"react\";\r\nimport { useCallback } from \"react\";\r\nimport { useState } from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\nimport { PageTitleLayout } from \"../../../../Component/Kit/Layout\";\r\nimport Table from \"../../../../Component/Shared/Table/Table\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport { ConvertQueryString } from \"../../../../Utility/Services/convert-query-string\";\r\nimport DateConvert from \"../../../../Utility/Services/date-convert\";\r\nimport GetProvider from \"../../../../Utility/Services/provider\";\r\nimport AssignPlanLineModal from \"./AssignPlanLineModal\";\r\n\r\nconst UserPendingForPlanLine = () => {\r\n const location = useLocation();\r\n const [usersList, setUsersList] = useState();\r\n const [userId, setUserId] = useState();\r\n const [isAssignModal, setIsAssignModal] = useState(false);\r\n const tableConfig = {\r\n header: {\r\n userId: \"شناسه کاربر\",\r\n providerName: \"نام اپراتور\",\r\n numberLength: \"طول خط\",\r\n handledDateTime: \"زمان تحویل خط\",\r\n numberText: \"شماره خط\",\r\n createdAt: \"تاریخ و زمان ایجاد\",\r\n },\r\n actions: {\r\n edit: {\r\n icon: \"fa fa-edit\",\r\n condition: (data) => !data.number && !data.handleAt,\r\n },\r\n },\r\n mode: [\"filter\"],\r\n filters: [\"isHandled\"],\r\n };\r\n\r\n const onInit = useCallback(\r\n (onlyHandled = null) => {\r\n ApiClient.Get(\r\n Urls.plansLinesPendingUser(), ConvertQueryString(location.search)\r\n ).then((res) => {\r\n let data = res.result;\r\n data.items.map((m) => {\r\n m.providerName = GetProvider(m.providerId);\r\n m.handledDateTime = m.handledAt ? DateConvert(m.handledAt) : \"----\";\r\n m.numberText = m.number || \"----\";\r\n m.createdAt = DateConvert(m.createdAt);\r\n return m;\r\n });\r\n setUsersList(res.result);\r\n });\r\n },\r\n [location.search]\r\n );\r\n\r\n const tableActionsHandler = (item) => {\r\n if (item.actionName === \"edit\") {\r\n setUserId(item.data.id);\r\n setIsAssignModal(true);\r\n }\r\n };\r\n\r\n const confirmLines = () => {\r\n onInit();\r\n };\r\n\r\n useEffect(() => {\r\n onInit();\r\n }, [onInit]);\r\n\r\n return (\r\n
    \r\n {usersList && (\r\n <>\r\n \r\n
    کاربران در انتظار خط
    \r\n \r\n لیستی از کاربرانی که پلن خریداری کرده و خطی تحویل نگرفته اند در\r\n این جدول قابل بررسی است.\r\n \r\n
    \r\n\r\n tableActionsHandler(e)}\r\n />\r\n \r\n )}\r\n setIsAssignModal(false)}\r\n confirmHandler={() => confirmLines()}\r\n userId={userId}\r\n />\r\n
    \r\n );\r\n};\r\n\r\nexport default UserPendingForPlanLine;\r\n","import React from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { NavLink, Route, Switch, useHistory } from \"react-router-dom\";\r\nimport { MainContent } from \"../../../Component/Kit/Layout\";\r\nimport PlansLineList from \"./PlansLineList\";\r\nimport UserPendingForPlanLine from \"./UserPendingForPlanLine\";\r\n\r\nfunction PlansLines({ match }) {\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n history.push(\"/line/plans/list\");\r\n }, []);\r\n return (\r\n \r\n
      \r\n
    • \r\n \r\n خطوط پلن ها\r\n \r\n
    • \r\n
    • \r\n \r\n کاربران در انتظار خط\r\n \r\n
    • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default PlansLines;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const StepContainer = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n margin: 1.5rem 0;\r\n\r\n @media screen and (max-width: 920px) {\r\n flex-direction: column;\r\n align-items: flex-start;\r\n }\r\n\r\n .step-root {\r\n padding-left: 8px;\r\n padding-right: 8px;\r\n\r\n @media screen and (max-width: 920px) {\r\n margin-bottom: 1rem;\r\n }\r\n\r\n .step-label {\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n }\r\n\r\n .step-number {\r\n font-weight: bold;\r\n font-size: 2.125rem;\r\n margin-left: 0.625rem;\r\n color: rgba(50, 71, 92, 0.87);\r\n margin-bottom: 0;\r\n }\r\n\r\n .step-title {\r\n font-weight: 700;\r\n font-size: 1.2rem;\r\n margin-bottom: 0.25rem;\r\n color: #32475c;\r\n }\r\n\r\n .step-subtitle {\r\n font-size: 0.85rem;\r\n margin-bottom: 0;\r\n color: #32475c;\r\n }\r\n }\r\n\r\n .step-item {\r\n display: flex;\r\n -webkit-box-align: center;\r\n align-items: center;\r\n\r\n &.mui-disabled {\r\n cursor: default;\r\n }\r\n\r\n &.mui-disabled {\r\n .step-number {\r\n color: rgba(50, 71, 92, 0.38);\r\n }\r\n P {\r\n color: #808080;\r\n }\r\n }\r\n\r\n &.mui-active {\r\n .step-label-icon-container {\r\n flex-shrink: 0;\r\n display: flex;\r\n padding-left: 8px;\r\n\r\n div {\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 50%;\r\n border-style: solid;\r\n border-color: rgb(105, 108, 255);\r\n border-width: 5px;\r\n background-color: rgb(255, 255, 255);\r\n }\r\n }\r\n }\r\n }\r\n\r\n .step-label-icon-container {\r\n flex-shrink: 0;\r\n display: flex;\r\n padding-left: 8px;\r\n\r\n .box-root {\r\n width: 20px;\r\n height: 20px;\r\n border-width: 3px;\r\n border-radius: 50%;\r\n border-style: solid;\r\n border-color: rgba(105, 108, 255, 0.16);\r\n }\r\n\r\n &.mui-active {\r\n flex-shrink: 0;\r\n display: flex;\r\n padding-left: 8px;\r\n\r\n div {\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 50%;\r\n border-style: solid;\r\n border-color: rgb(105, 108, 255);\r\n border-width: 5px;\r\n background-color: rgb(255, 255, 255);\r\n }\r\n }\r\n }\r\n\r\n .step-connector-line {\r\n display: block;\r\n border: 3px solid rgb(189, 189, 189);\r\n border-radius: 3px;\r\n }\r\n\r\n .step-connector {\r\n flex: 1 1 auto;\r\n\r\n &.mui-active {\r\n .step-connector-line {\r\n border-color: rgb(105, 108, 255);\r\n }\r\n }\r\n\r\n &.mui-disabled {\r\n .step-connector-line {\r\n border-color: rgba(105, 108, 255, 0.16);\r\n }\r\n }\r\n\r\n @media screen and (max-width: 920px) {\r\n display: none;\r\n }\r\n }\r\n`;\r\n","import React from 'react'\r\nimport { StepContainer } from './index.jsx'\r\n\r\n\r\nfunction Step(props) {\r\n const { stepItem, index, currentStep, stepCount } = props;\r\n return <>\r\n
    \r\n = stepItem.step ? 'mui-active' : 'mui-disabled'}`}>\r\n \r\n {currentStep > stepItem.step\r\n ?\r\n \r\n \r\n \r\n :\r\n
    \r\n }\r\n
    \r\n \r\n \r\n

    {stepItem.title}

    \r\n

    {stepItem.subTitle}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n (index < stepCount - 1) &&\r\n
    stepItem.step ? 'mui-active' : 'mui-disabled'}`}>\r\n \r\n
    \r\n }\r\n\r\n \r\n}\r\n\r\nfunction Stepper(props) {\r\n const { config, currentStep } = props;\r\n\r\n return (\r\n \r\n {config.map((item, index) =>\r\n \r\n )}\r\n {/* {config.map((item, index) => \r\n <>\r\n
    \r\n = item.step ? 'mui-active' : 'mui-disabled'}`}>\r\n \r\n {currentStep > item.step\r\n ?\r\n \r\n \r\n \r\n :\r\n
    \r\n }\r\n
    \r\n \r\n \r\n

    {item.title}

    \r\n

    {item.subTitle}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n (index < config.length - 1) &&\r\n
    item.step ? 'mui-active' : 'mui-disabled'}`}>\r\n \r\n
    \r\n }\r\n\r\n \r\n )} */}\r\n\r\n
    \r\n )\r\n}\r\n\r\nexport default Stepper;","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport copounIcon from \"../../Assets/images/copoun_icon.png\";\r\n\r\nexport const DiscountCodeWrapper = styled.div`\r\n width: 100%;\r\n border: 2px dashed ${(props) => props.theme.grayBtnHover};\r\n border-radius: 6px;\r\n padding: 2rem;\r\n .discount-row {\r\n display: flex;\r\n align-items: center;\r\n flex-direction: row-reverse;\r\n }\r\n\r\n .code-detail {\r\n width: calc(100% - 250px - 2.5rem);\r\n padding-left: 2rem;\r\n margin-left: 2.5rem;\r\n border-left: 2px dashed ${(props) => props.theme.grayBtnHover};\r\n ul {\r\n width: 100%;\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n }\r\n li {\r\n flex: calc(50% - 8px);\r\n flex-grow: inherit;\r\n display: flex;\r\n flex-wrap: wrap;\r\n margin: 8px 4px;\r\n width: 50%;\r\n }\r\n @media only screen and (min-width: 1300px) {\r\n .params__list__label {\r\n border-left: 4px solid #fff;\r\n border-right: none;\r\n }\r\n\r\n .params__list__value {\r\n border-left: 4px solid #fff;\r\n border-right: none;\r\n }\r\n }\r\n }\r\n @media only screen and (max-width: 1200px) {\r\n padding: 1rem;\r\n .code-detail {\r\n width: calc(100% - 225px - 1.5rem);\r\n padding-left: 1rem;\r\n margin-left: 1.5rem;\r\n }\r\n }\r\n @media only screen and (max-width: 1024px) {\r\n padding: 1.5rem;\r\n .discount-row {\r\n flex-direction: column;\r\n }\r\n .code-detail {\r\n border-left: none;\r\n border-top: 2px dashed #d6d6e0;\r\n padding-left: 0;\r\n padding-top: 1rem;\r\n margin-left: 0;\r\n margin-top: 1.5rem;\r\n width: 100%;\r\n li {\r\n flex: 100%;\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const DisCountDateWrapper = styled.div`\r\n .dotes {\r\n border: 2px dashed ${(props) => props.theme.grayBtnHover};\r\n border-radius: 6px;\r\n padding: 2rem 1rem 3rem 1rem;\r\n margin: 0 0 1.5rem;\r\n }\r\n`;\r\n\r\nexport const DiscountCopoun = styled.div`\r\n width: 254px;\r\n height: 150px;\r\n display: block;\r\n position: relative;\r\n img {\r\n filter: opacity(0.5);\r\n display: inline-block;\r\n width: 100%;\r\n height: auto;\r\n }\r\n .d-code {\r\n color: ${(props) => props.theme.black};\r\n width: calc(100% - 30px);\r\n text-align: center;\r\n font-weight: bold;\r\n font-size: 19px;\r\n position: absolute;\r\n left: 15px;\r\n top: 49%;\r\n }\r\n @media only screen and (max-width: 1200px) {\r\n width: 225px;\r\n height: 133px;\r\n }\r\n @media only screen and (max-width: 1024px) {\r\n width: 254px;\r\n height: 150px;\r\n }\r\n`;\r\n\r\nexport const DiscountCopounIcon = (props) => {\r\n const { code } = props;\r\n return (\r\n \r\n {code}\r\n \"کد\r\n \r\n );\r\n};\r\n\r\nexport const StepWizardWrapper = styled.div`\r\n padding-top: 1rem;\r\n`;\r\n","\r\n\r\nimport { toDate, fromDate, usageLimitationPerUser, discountCode, basePriceDisCount } from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const ModifyDiscountCodeSchema = Yup.object().shape({\r\n fromDate,\r\n toDate,\r\n});\r\n\r\nexport const AddDiscountCodeSchema = Yup.object().shape({\r\n fromDate,\r\n toDate,\r\n usageLimitationPerUser,\r\n discountCode\r\n});\r\n\r\nexport const AddBasicInformationStepSchema = Yup.object().shape({\r\n fromDate,\r\n toDate,\r\n usageLimitationPerUser,\r\n discountCode\r\n});\r\n\r\nexport const ModifyBasicInformationStepSchema = Yup.object().shape({\r\n fromDate,\r\n toDate,\r\n});\r\n\r\nexport const BasePriceDisCountSchema = Yup.object().shape({\r\n basePriceDisCount\r\n});\r\n","import { FieldArray, Formik } from \"formik\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { StyledButton } from \"../../../../Component/Kit/Button\";\r\nimport { StyledForm, StyledInput } from \"../../../../Component/Kit/Form\";\r\nimport { BasePriceDisCountSchema } from \"../../../../Utility/Validation/Schema/ModifyDiscountCodeSchema\";\r\nimport { SeprateNumberWithComma } from \"../../../../Utility/Services/SeprateNumberWithComma\";\r\nimport { useParams } from \"react-router-dom\";\r\n\r\nconst BasePriceDiscountCodeStep = (props) => {\r\n const { step, updateState, initalData, formData, tiers } = props;\r\n const [basePriceDisCount, setBasePriceDisCount] = useState([]);\r\n const params = useParams();\r\n \r\n const discountFieldName = {\r\n fromPrice: \"از قیمت\",\r\n toPrice: \"تا قیمت\",\r\n basePrice: \"قیمت پایه\",\r\n discountedBasePrice: \"تخفیف قیمت پایه\",\r\n };\r\n\r\n useEffect(() => {\r\n if (Boolean(formData) && Object.entries(formData).length !== 0) {\r\n // Dirty form in Edit mode or create\r\n setBasePriceDisCount(formData.basePriceDisCount)\r\n }\r\n else {\r\n if (Object.entries(initalData).length > 0 && params.id) {\r\n // edit mode without changing \r\n const discountList = initalData.discountedBasePriceInTiers\r\n .filter(item => item.discountedBasePrice)\r\n .map(obj => String(obj.discountedBasePrice));\r\n setBasePriceDisCount(discountList)\r\n }\r\n else {\r\n // first time create \r\n setBasePriceDisCount(Array(Object.entries(tiers).length).fill());\r\n }\r\n }\r\n }, [tiers]);\r\n\r\n return (\r\n
    \r\n {\r\n // Object.entries(basePriceDisCount).length > 0 && \r\n basePriceDisCount.length > 0 &&\r\n {\r\n /* let data = {}\r\n Object.values(tiers).map((item, index) => {\r\n data[item.id] = Number(values.basePriceDisCount[index])\r\n })\r\n updateState({ step: step + 1, data: data }) */\r\n updateState({ step: step + 1, data: values })\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n {discountFieldName &&\r\n Object.entries(discountFieldName).map(\r\n ([item, value]) => (\r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n {Object.values(tiers).map((dataItem, index) => (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
    #\r\n {value}\r\n
    {index + 1}{SeprateNumberWithComma(dataItem.fromPrice)}{SeprateNumberWithComma(dataItem.toPrice)}{dataItem.basePrice}\r\n formik.setFieldValue(`basePriceDisCount.${index}`, e.target.value)} />\r\n
    \r\n
    \r\n
    \r\n updateState({ step: step - 1 })}\r\n btnStyle=\"grayBtn\"\r\n type=\"button\"\r\n id=\"prevStep\"\r\n >\r\n مرحله قبلی\r\n \r\n \r\n مرحله بعدی\r\n \r\n
    \r\n \r\n
    \r\n )}\r\n\r\n \r\n }\r\n
    \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n tiers: state.BasePriceTiersReducer,\r\n});\r\n\r\nexport default connect(mapStateToProps)(BasePriceDiscountCodeStep);\r\n","import { Formik } from 'formik';\r\nimport React, { useEffect } from 'react';\r\nimport { StyledButton } from '../../../../Component/Kit/Button';\r\nimport { FormLable, StyledForm, StyledInput } from '../../../../Component/Kit/Form';\r\nimport { MyDatePicker } from '../../../../Component/Shared/DatePicker';\r\nimport { AddBasicInformationStepSchema, ModifyBasicInformationStepSchema } from '../../../../Utility/Validation/Schema/ModifyDiscountCodeSchema';\r\nimport { DisCountDateWrapper } from '../../style';\r\nimport { useState } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\n\r\nconst BasicInformationStep = (props) => {\r\n const { step, updateState, initalData, formData } = props;\r\n const [firstStepData, setFirstStepData] = useState({});\r\n const params = useParams();\r\n\r\n useEffect(() => {\r\n if (Boolean(formData) && Object.entries(formData).length !== 0) {\r\n // Dirty form in Edit mode or create\r\n setFirstStepData({ ...formData, createdAt: params.id ? initalData.createdAt : null });\r\n }\r\n else {\r\n if (Object.entries(initalData).length > 0 && params.id) {\r\n // edit mode without changing \r\n setFirstStepData({ ...initalData, discountCode: initalData.code, createdAt: initalData.createdAt });\r\n }\r\n else {\r\n setFirstStepData({ ...firstStepData, createdAt: null });\r\n }\r\n }\r\n\r\n // console.log(initalData);\r\n }, [formData, initalData, params.id])\r\n\r\n return (\r\n
    \r\n {\r\n updateState({ step: step + 1, data: { ...values, createdAt: initalData.createdAt } })\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n \r\n
    \r\n
    \r\n formik.setFieldValue(\"discountCode\", e.target.value)}\r\n readOnly={firstStepData.createdAt}\r\n />\r\n
    \r\n
    \r\n تاریخ شروع\r\n { formik.setFieldValue(\"fromDate\", event.baseFormat); }}\r\n name=\"fromDate\"\r\n id=\"fromDate\"\r\n error={formik.errors.fromDate !== undefined\r\n ? formik.errors.fromDate\r\n : false\r\n }\r\n />\r\n
    \r\n
    \r\n formik.setFieldValue(\"usageLimitationPerUser\", e.target.value)}\r\n />\r\n
    \r\n
    \r\n تاریخ انقضا\r\n { formik.setFieldValue(\"toDate\", event.baseFormat); }}\r\n name=\"toDate\"\r\n id=\"toDate\"\r\n error={formik.errors.toDate !== undefined\r\n ? formik.errors.toDate\r\n : false}\r\n />\r\n
    \r\n {\r\n firstStepData.createdAt &&\r\n
    \r\n تاریخ ایجاد\r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n مرحله بعدی\r\n \r\n
    \r\n \r\n )}\r\n \r\n
    \r\n )\r\n}\r\n\r\n\r\nexport default BasicInformationStep;","import { Formik } from 'formik';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { StyledButton } from '../../../../Component/Kit/Button';\r\nimport { StyledForm, StyledInput } from '../../../../Component/Kit/Form';\r\nimport ApiClient from '../../../../Requester/ApiClient';\r\nimport Urls from '../../../../Requester/Urls';\r\nimport { useParams } from 'react-router-dom';\r\n\r\nconst DedicatedBasePriceStep = (props) => {\r\n const { step, updateState, initalData, formData } = props;\r\n const [dedicatedBasePriceInTiers, setDedicatedBasePriceInTiers] = useState([]);\r\n const [dedicatedBasePriceDisCount, setDedicatedBasePriceDisCount] = useState({});\r\n const params = useParams();\r\n\r\n const discountFieldName = {\r\n basePrice: \"قیمت پایه\",\r\n discountedBasePrice: \"تخفیف قیمت پایه\",\r\n };\r\n\r\n useEffect(() => {\r\n ApiClient.Get(Urls.DedicatedBasePrice()).then((res) => {\r\n setDedicatedBasePriceInTiers(res.result);\r\n });\r\n\r\n if (Boolean(formData) && Object.entries(formData).length !== 0) {\r\n // Dirty form in Edit mode or create\r\n setDedicatedBasePriceDisCount(formData.dedicatedBasePriceDisCount);\r\n }\r\n else {\r\n if (Object.entries(initalData).length > 0 && params.id) {\r\n // edit mode without changing \r\n let dedicatedBasePrices = Object.assign({}, ...initalData.publicDiscountCodeDedicatedBasePrices.map((x) => ({ [x.dedicatedBasePriceId]: x.discountedBasePrice })));\r\n setDedicatedBasePriceDisCount(dedicatedBasePrices);\r\n }\r\n }\r\n\r\n\r\n }, [initalData]);\r\n\r\n return (\r\n
    \r\n {\r\n /* let data = {}\r\n dedicatedBasePriceInTiers.map((item) => {\r\n data[item.id] = Number(values.dedicatedBasePriceDisCount[item.id])\r\n })\r\n updateState({ step: step + 1, data: data }) */\r\n updateState({ step: step + 1, data: values })\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n {discountFieldName &&\r\n Object.entries(discountFieldName).map(\r\n ([item, value]) => (\r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n {dedicatedBasePriceInTiers.map((dataItem, index) => (\r\n <>\r\n {dataItem && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n ))}\r\n \r\n
    #\r\n {value}\r\n
    {index + 1}{dataItem.basePrice}\r\n formik.setFieldValue(`dedicatedBasePriceDisCount[${dataItem.id}]`, e.target.value)}\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n updateState({ step: step - 1 })}\r\n btnStyle=\"grayBtn\"\r\n type=\"button\"\r\n id=\"prevStep\"\r\n >\r\n مرحله قبلی\r\n \r\n \r\n مرحله بعدی\r\n \r\n
    \r\n \r\n )}\r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default DedicatedBasePriceStep","import { Formik } from 'formik';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { StyledButton } from '../../../../Component/Kit/Button';\r\nimport { StyledForm, StyledInput } from '../../../../Component/Kit/Form';\r\nimport { SeprateNumberWithComma } from '../../../../Utility/Services/SeprateNumberWithComma';\r\nimport { useParams } from 'react-router-dom';\r\n\r\nconst PlansBasePriceStep = (props) => {\r\n const { step, updateState, initalData, formData, tiers } = props;\r\n const [planBasePriceDisCount, setPlanBasePriceDisCount] = useState([]);\r\n const params = useParams();\r\n\r\n const discountFieldName = {\r\n fromPrice: 'از قیمت',\r\n toPrice: 'تا قیمت',\r\n basePrice: 'قیمت پایه ',\r\n planBasePriceBronze: 'تعرفه پلن برنزی',\r\n planBasePriceSilver: 'تعرفه پلن نقره‌ای',\r\n planBasePriceGold: 'تعرفه پلن طلایی',\r\n }\r\n\r\n useEffect(() => {\r\n let planBasePrice = {};\r\n\r\n if (Boolean(formData) && Object.entries(formData).length !== 0) {\r\n // form in Edit mode or create\r\n setPlanBasePriceDisCount(formData.planBasePriceDisCount);\r\n }\r\n else {\r\n if (Object.entries(initalData).length > 0 && params.id) {\r\n // edit mode without changing \r\n for (let positionId = 1; positionId <= 3; positionId++) {\r\n const filterByPlanPosition = initalData.publicDiscountCodePlanCreditTiers.filter(item => item.planPosition === positionId);\r\n const basePrices = Object.assign({}, ...filterByPlanPosition.map((x) => ({ [x.creditTierId]: x.discountedBasePrice })));\r\n planBasePrice = { ...planBasePrice, [positionId]: basePrices }\r\n }\r\n setPlanBasePriceDisCount(planBasePrice);\r\n }\r\n else {\r\n // first time create \r\n for (let positionId = 1; positionId <= 3; positionId++) {\r\n planBasePrice[positionId] = Array(Object.entries(tiers).length).fill()\r\n setPlanBasePriceDisCount(planBasePrice);\r\n }\r\n }\r\n }\r\n\r\n }, [tiers]);\r\n\r\n return (\r\n
    \r\n {\r\n Object.entries(planBasePriceDisCount).length > 0 &&\r\n {\r\n // console.log(values);\r\n /* let data = {}\r\n for (let positionId = 1; positionId <= 3; positionId++) {\r\n const x = { ...values.planBasePriceDisCount[positionId] }\r\n data = { ...data, [positionId]: x }\r\n }\r\n updateState({ step: step + 1, data: data }) */\r\n updateState({ step: step + 1, data: values })\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n {\r\n discountFieldName &&\r\n Object.entries(discountFieldName).map(([item, value]) => (\r\n \r\n ))\r\n }\r\n \r\n \r\n\r\n \r\n {Object.values(tiers).map((dataItem, index) => (\r\n <>\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
    #{value}
    {index + 1} {SeprateNumberWithComma(dataItem.fromPrice)} ریال{SeprateNumberWithComma(dataItem.toPrice)} ریال{dataItem.basePrice}\r\n formik.setFieldValue(`planBasePriceDisCount[1].${dataItem.id}`, e.target.value)}\r\n />\r\n formik.setFieldValue(`planBasePriceDisCount[2].${dataItem.id}`, e.target.value)}\r\n />\r\n formik.setFieldValue(`planBasePriceDisCount[3].${dataItem.id}`, e.target.value)}\r\n />
    \r\n
    \r\n\r\n
    \r\n updateState({ step: step - 1 })}\r\n btnStyle=\"grayBtn\"\r\n type=\"button\"\r\n id=\"prevStep\"\r\n >\r\n مرحله قبلی\r\n \r\n \r\n تایید نهایی\r\n \r\n
    \r\n \r\n )}\r\n \r\n }\r\n
    \r\n )\r\n}\r\n\r\nconst mapStateToProps = (state) => ({\r\n tiers: state.BasePriceTiersReducer,\r\n});\r\n\r\nexport default connect(mapStateToProps)(PlansBasePriceStep);","import React, { useEffect, useState } from 'react';\r\nimport { connect, useDispatch } from 'react-redux';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { toast } from \"react-toastify\";\r\nimport { BasePriceTiersAction } from '../../../Actions/BasePriceTiers';\r\nimport { HeaderContent, MainContent, WrapperLayout } from '../../../Component/Kit/Layout';\r\nimport BackToPage, { BackWrapper } from '../../../Component/Kit/back';\r\nimport Stepper from '../../../Component/Shared/Stepper';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport { StepWizardWrapper } from '../style';\r\nimport BasePriceDiscountCodeStep from './BasePriceStep';\r\nimport BasicInformationStep from './BasicInformationStep';\r\nimport DedicatedBasePriceStep from './DedicatedBasePriceStep';\r\nimport PlansBasePriceStep from './PlansBasePriceStep';\r\nimport { DiscountCodeDetailAction } from '../../../Actions/DiscountCodeDetail';\r\n\r\nconst ModifyDiscountCode = ({ discountItemInitalData, tiers }) => {\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n const params = useParams();\r\n\r\n const [activeStep, setActiveStep] = useState(1);\r\n const [finalData, setFinalData] = useState({});\r\n const stepConfig = [\r\n {\r\n step: 1,\r\n title: 'مشخصات اولیه',\r\n subTitle: 'مشخصات کد تخفیف',\r\n },\r\n {\r\n step: 2,\r\n title: 'قیمت پایه',\r\n subTitle: 'تخفیف تعرفه پایه ',\r\n },\r\n {\r\n step: 3,\r\n title: 'تعرفه اختصاصی',\r\n subTitle: 'تخفیف تعرفه اختصاصی',\r\n },\r\n {\r\n step: 4,\r\n title: 'تعرفه پلن‌ها',\r\n subTitle: 'تخفیف تعرفه در پلن‌ها',\r\n },\r\n ]\r\n\r\n useEffect(() => {\r\n if (!Object.entries(discountItemInitalData).length && params.id) {\r\n history.push(\"/discount-code\");\r\n }\r\n\r\n ApiClient.Get(Urls.GetCreditTier())\r\n .then((res) => {\r\n dispatch(BasePriceTiersAction(res.result));\r\n });\r\n\r\n return () => {\r\n dispatch(DiscountCodeDetailAction(null));\r\n setFinalData({});\r\n }\r\n\r\n }, [dispatch, discountItemInitalData, history, params.id]);\r\n\r\n\r\n\r\n const submitDiscountCode = (lastStepData) => {\r\n let discountedBasePricesData = {};\r\n Object.values(tiers).map((item, index) => {\r\n discountedBasePricesData[item.id] = Number(finalData[2].basePriceDisCount[index])\r\n })\r\n\r\n // const dedicatedBasePriceDisCountData = Object.assign({}, ...Object.values(finalData[3].dedicatedBasePriceDisCount).map((val, index) => ({ [index + 1]: val })));\r\n\r\n let planBasePriceDisCountData = {}\r\n for (let positionId = 1; positionId <= 3; positionId++) {\r\n const x = { ...lastStepData.planBasePriceDisCount[positionId] }\r\n planBasePriceDisCountData = { ...planBasePriceDisCountData, [positionId]: x }\r\n }\r\n\r\n let payload = {\r\n fromDate: finalData[1].fromDate,\r\n toDate: finalData[1].toDate,\r\n usageLimitationPerUser: Number(finalData[1].usageLimitationPerUser),\r\n tiersAndDiscountedBasePrices: discountedBasePricesData,\r\n dedicatedBasePriceAndDiscountedBasePrices: finalData[3].dedicatedBasePriceDisCount,\r\n planTiersAndDiscountedBasePrices: planBasePriceDisCountData,\r\n };\r\n\r\n if (Object.entries(discountItemInitalData).length && params.id) {\r\n // Modify Dicount Code\r\n ApiClient.Patch(Urls.PublicDiscountCode(params.id), JSON.stringify(payload))\r\n .then(() => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n history.goBack();\r\n })\r\n } else {\r\n // Add Dicount Code\r\n payload = { ...payload, code: finalData[1].discountCode }\r\n ApiClient.Post(Urls.PublicDiscountCode(), JSON.stringify(payload))\r\n .then(() => {\r\n toast.success(\"تغییرات با موفقیت ثبت شد.\");\r\n history.goBack();\r\n });\r\n }\r\n\r\n }\r\n\r\n const updateState = (state) => {\r\n if (state.data) {\r\n setFinalData({ ...finalData, [(state.step) - 1]: state.data })\r\n }\r\n if (state.step <= 4) {\r\n setActiveStep(state.step);\r\n }\r\n if (state.step == 5) {\r\n // Finall step\r\n const lastStepData = state.data;\r\n submitDiscountCode(lastStepData);\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n \r\n
    \r\n\r\n \r\n
    \r\n\r\n \r\n {\r\n activeStep === 1 &&\r\n updateState(e)} />\r\n }\r\n {\r\n activeStep === 2 &&\r\n updateState(e)} />\r\n }\r\n {\r\n activeStep === 3 &&\r\n updateState(e)} />\r\n }\r\n {\r\n activeStep === 4 &&\r\n updateState(e)} />\r\n }\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n )\r\n}\r\nconst mapStateToProps = (state) => ({\r\n discountItemInitalData: state.DiscountCodeDetailReducer,\r\n tiers: state.BasePriceTiersReducer,\r\n});\r\n\r\n\r\nexport default connect(mapStateToProps)(ModifyDiscountCode);","export const BasePriceTiersAction = (data) => ({\r\n type: \"BASE_PRICE_TIERS\",\r\n data,\r\n});\r\n","\r\nimport styled from \"styled-components\";\r\n\r\nexport const ProviderStateLayout = styled.div`\r\n .main-box {\r\n padding: 1rem;\r\n width: 100%;\r\n min-height: 200px;\r\n display: flex;\r\n flex-grow: 0;\r\n flex-shrink: 1;\r\n flex-basis: calc(25% - 16px);\r\n flex-wrap: wrap;\r\n flex-direction: column;\r\n box-shadow: 0 3px 16px #d9d9d9;\r\n background: #ffffff;\r\n border-radius: 0.25rem;\r\n cursor: pointer;\r\n\r\n & canvas{\r\n width: 10px;\r\n height: 20px;\r\n }\r\n .inner-container {\r\n position: relative;\r\n min-height: 100px;\r\n .custom-budge {\r\n color: #fff;\r\n border-radius: 1rem;\r\n padding: .6rem;\r\n display: flex;\r\n align-items: center;\r\n\r\n &.healthy {\r\n background: #4fd18f;\r\n }\r\n\r\n &.unhealthy {\r\n background: #d14f4f;\r\n }\r\n\r\n &.unknown {\r\n background: #dc8759;\r\n }\r\n }\r\n\r\n\r\n .resend-btn {\r\n border-radius: 10px;\r\n border: none;\r\n font-size: .7rem;\r\n color: #fff;\r\n padding: .5rem 1rem;\r\n &:focus{\r\n outline: none;\r\n border: none;\r\n }\r\n\r\n &.healthy {\r\n background: #449f70;\r\n }\r\n\r\n &.unhealthy {\r\n background: #922d2d;\r\n }\r\n\r\n &.unknown {\r\n background: #99603a;\r\n }\r\n }\r\n\r\n .last-delivered {\r\n height: 38px;\r\n background: #eee;\r\n border-radius: 12px;\r\n & .healthy {\r\n color: #449f70;\r\n font-weight: bold;\r\n }\r\n\r\n & .unhealthy {\r\n color: #922d2d;\r\n font-weight: bold;\r\n }\r\n\r\n & .unknown {\r\n color: #99603a;\r\n font-weight: bold;\r\n }\r\n }\r\n }\r\n }\r\n`\r\n","\r\nimport React from \"react\";\r\n\r\nfunction Connected(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Connected;\r\n","import React, {useCallback, useEffect, useState} from 'react'\r\nimport {HeaderContent, MainContent, PageTitleLayout, WrapperLayout} from \"../../../Component/Kit/Layout\";\r\nimport {ProviderStateLayout} from \"./styles\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport {SystemLineProviderEnum} from \"../../../Utility/Model/provider-enum.model\";\r\nimport {toast} from \"react-toastify\";\r\nimport moment from \"moment-jalaali\";\r\nimport {StyledButton} from \"../../../Component/Kit/Button\";\r\nimport {Line} from 'react-chartjs-2';\r\nimport {CategoryScale, Chart as ChartJS, LinearScale, LineElement, PointElement, Title} from 'chart.js';\r\nimport Disconnected from \"../../../Component/Icon/_Disconnected\";\r\nimport Connected from \"../../../Component/Icon/_connected\";\r\nimport {groupBy} from \"../../../Utility/method/groupBy\";\r\n\r\nChartJS.register(LineElement, PointElement, LinearScale, Title, CategoryScale);\r\n\r\n\r\nexport const ProvidersState = () => {\r\n const [monitoringData, setMonitoringData] = useState(null)\r\n const [loadingFlag, setLoadingFlag] = useState(false);\r\n const options = {\r\n responsive: true,\r\n maintainAspectRatio: true,\r\n\r\n plugins: {\r\n legend: {\r\n position: 'top',\r\n display: false\r\n },\r\n },\r\n scales: {\r\n x: {\r\n title: {\r\n display: false,\r\n },\r\n },\r\n y: {\r\n title: {\r\n display: false,\r\n },\r\n suggestedMin: -1,\r\n suggestedMax: 1,\r\n ticks: {\r\n // forces step size to be 1 units\r\n stepSize: 1\r\n }\r\n }\r\n }\r\n };\r\n\r\n\r\n const checkProvideState = (state) => {\r\n switch (state) {\r\n case 1 :\r\n return \"healthy\"\r\n case 2 :\r\n return 'unknown'\r\n case 3 :\r\n return 'unhealthy'\r\n default:\r\n return \"unhealthy\"\r\n }\r\n }\r\n const lastMessageStates = (state) => {\r\n switch (state) {\r\n case 1 :\r\n return \"healthy fa-check\"\r\n case 2 :\r\n return 'unknown fa-clock'\r\n case 3 :\r\n return 'unhealthy fa-xmark'\r\n default:\r\n return \"unhealthy fa-xmark\"\r\n }\r\n }\r\n const sendSms = (providerId, operatorId) => {\r\n ApiClient.Post(Urls.sendSms(), {providerId, operatorId}).then((response) => {\r\n callApi();\r\n toast.success('ارسال پیامک با موفقیت انجام شد')\r\n })\r\n }\r\n\r\n const updateHandler = () => {\r\n callApi();\r\n setLoadingFlag(true);\r\n setTimeout(() => {\r\n setLoadingFlag(false);\r\n }, 15000);\r\n };\r\n\r\n const callApi = useCallback(() => {\r\n ApiClient.Get(Urls.GetMonitoringData(), {}).then((response) => {\r\n response.result.providerServiceStatus.map((a, index) => {\r\n a.name = SystemLineProviderEnum.find(d => d.value === a.providerId).name;\r\n a.prefix = SystemLineProviderEnum.find(d => d.value === a.providerId).prefix;\r\n a.stateHistory =\r\n {\r\n labels: response.result.providerStateHistories\r\n .filter(f => f.providerId === a.providerId && f.operatorId === a.operatorId).length > 0 ?\r\n response.result.providerStateHistories\r\n .filter(f => f.providerId === a.providerId && f.operatorId === a.operatorId).map(a => `${a.createdAt.toString()?.slice(8, 10)}:${a.createdAt.toString()?.slice(10, 12)}`)\r\n : [`${new Date().getHours() + 1}:${new Date().getMinutes()}`, `${new Date().getHours()}:${new Date().getMinutes()}`],\r\n datasets: [\r\n {\r\n label: a.operatorId === 1 ? 'همراه اول' : 'ایرانسل',\r\n data: response.result.providerStateHistories\r\n .filter(f => f.providerId === a.providerId && f.operatorId === a.operatorId).length > 0 ? response.result.providerStateHistories\r\n .filter(f => f.providerId === a.providerId && f.operatorId === a.operatorId).map(a => a.providerState === 2 ? 0 : a.providerState === 3 ? -1 : 1) :\r\n response.result.messagesState.find(e => e.providerId === a.providerId && e.operatorId === a.operatorId).states.some(a => a === 1) ?\r\n [1, 1] : [-1, -1],\r\n borderColor: (context) => {\r\n const chart = context.chart;\r\n const {ctx, chartArea} = chart;\r\n\r\n if (!chartArea) {\r\n // This case happens on initial chart load\r\n return;\r\n }\r\n return getGradient(ctx, chartArea);\r\n },\r\n backgroundColor: a.operatorId === 1 ? ['rgba(53, 162, 235, 0.5)'] : ['rgba(255,193,99,0.5)'],\r\n stepped: true,\r\n },\r\n ],\r\n\r\n }\r\n a.lastMessages = response.result.messagesState.find(e => e.providerId === a.providerId && e.operatorId === a.operatorId).states\r\n })\r\n\r\n const data = Array.from(groupBy(response.result.providerServiceStatus, item => item.providerId).values())\r\n setMonitoringData(data)\r\n })\r\n }, [])\r\n\r\n\r\n let width, height, gradient;\r\n\r\n function getGradient(ctx, chartArea) {\r\n const chartWidth = chartArea.right - chartArea.left;\r\n const chartHeight = chartArea.bottom - chartArea.top;\r\n if (!gradient || width !== chartWidth || height !== chartHeight) {\r\n // Create the gradient because this is either the first render\r\n // or the size of the chart has changed\r\n width = chartWidth;\r\n height = chartHeight;\r\n gradient = ctx.createLinearGradient(0, chartArea.bottom, 0, chartArea.top);\r\n gradient.addColorStop(0, '#F44336');\r\n gradient.addColorStop(0.3, '#efb0ae');\r\n gradient.addColorStop(0.5, '#9E9E9E');\r\n // gradient.addColorStop(0.7, '#3ecabb');\r\n gradient.addColorStop(0.7, '#76cabe');\r\n gradient.addColorStop(1, '#009688');\r\n }\r\n\r\n return gradient;\r\n }\r\n\r\n useEffect(\r\n () => {\r\n callApi();\r\n const interval = setInterval(() => {\r\n callApi();\r\n }, 30000);\r\n return () => clearInterval(interval);\r\n }, [callApi]);\r\n\r\n return (\r\n \r\n\r\n \r\n
    \r\n
    \r\n آخرین بروزرسانی: \r\n {moment().format('HH:mm:ss')}\r\n
    \r\n\r\n updateHandler()}\r\n disabled={loadingFlag}\r\n >\r\n بروزرسانی\r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n
    وضعیت ارائه‌دهندگان
    \r\n در این بخش می‌توانید وضعیت ارائه‌دهندگان مشاهده نمایید.\r\n
    \r\n \r\n
    \r\n {monitoringData && monitoringData.map((provider, index) =>\r\n (\r\n
    \r\n
    \r\n
    \r\n

    {provider[0].name}

    \r\n

    {provider[0].prefix}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n همراه اول\r\n {provider[0].isAvailable ?\r\n :\r\n }\r\n
    \r\n
    \r\n \r\n \r\n {provider[0].delay}\r\n ثانیه تاخیر در ارسال\r\n \r\n \r\n \r\n
    \r\n \r\n {provider[0].lastMessages.map((a, i) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ایرانسل\r\n {provider[1].isAvailable ?\r\n :\r\n }\r\n
    \r\n
    \r\n \r\n \r\n {provider[1].delay}\r\n ثانیه تاخیر در ارسال\r\n \r\n \r\n \r\n
    \r\n \r\n {provider[1].lastMessages.map((a, i) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n )}\r\n\r\n\r\n \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default ProvidersState;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useHistory, useLocation, useParams } from 'react-router-dom';\r\nimport { HeaderContent, MainContent, PageTitleLayout, WrapperLayout } from '../../../Component/Kit/Layout';\r\nimport BackToPage from '../../../Component/Kit/back';\r\nimport { Loader } from '../../../Component/Shared/Loader';\r\nimport Table from '../../../Component/Shared/Table/Table';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport { ConvertQueryString } from '../../../Utility/Services/convert-query-string';\r\nimport DateConvert from '../../../Utility/Services/date-convert';\r\n\r\nexport const UsersPlan = () => {\r\n const params = useParams();\r\n const history = useHistory();\r\n const location = useLocation();\r\n const [userList, setUserList] = useState([]);\r\n // const [planName, setPlanName] = useState('');\r\n const [loading, setLoading] = useState(true);\r\n\r\n const tableConfig = {\r\n header: {\r\n username: 'نام کاربری ',\r\n createdAt: \"تاریخ ایجاد\",\r\n expireAt: \"تاریخ انقضا\",\r\n },\r\n actions: {\r\n view: {\r\n icon: 'fa fa-eye',\r\n },\r\n },\r\n mode: ['search'],\r\n filters: [],\r\n };\r\n\r\n function tableActions(items) {\r\n switch (items.actionName) {\r\n case 'view':\r\n history.push(`/userDetail/${items.data.userId}/profile/`);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n const getUsersPerPlan = () => {\r\n ApiClient.Get(Urls.UsersPerPlan(params.id), ConvertQueryString(location.search))\r\n .then(res => {\r\n let dataItems = res.result;\r\n dataItems.items.forEach(item => {\r\n item.createdAt = DateConvert(item.createdAt);\r\n item.expireAt = DateConvert(item.expireAt);\r\n });\r\n setUserList(dataItems)\r\n setLoading(false);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n getUsersPerPlan();\r\n // setPlanName(new URLSearchParams(history.location.search).get('name'));\r\n }, [params.id, location.search]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n {/*
    لیست کاربران پلن‌ ({planName})
    */}\r\n
    لیست کاربران پلن‌
    \r\n در این بخش لیست همه کاربران این پلن‌ را مشاهده کنید.\r\n
    \r\n
    \r\n {loading === true ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n","import {\r\n lineNumber, providerId\r\n} from \"../Rules\";\r\nimport * as Yup from \"yup\";\r\n\r\nexport const PublicLineSchema = Yup.object().shape({\r\n number: lineNumber,\r\n providerId\r\n});\r\n","import { Formik } from \"formik\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport { toast } from \"react-toastify\";\r\nimport {StyledForm, StyledInput, StyledSelect } from \"../../../../Component/Kit/Form\";\r\nimport { StyledButton } from \"../../../../Component/Kit/Button\";\r\nimport React from \"react\";\r\nimport { SystemLineProviderEnum } from \"../../../../Utility/Model/provider-enum.model\";\r\nimport {PublicLineSchema} from \"../../../../Utility/Validation/Schema/PublicLineSchema\";\r\n\r\nfunction PublicLinesModal({ onCloseModal, onSubmit }) {\r\n return (\r\n <>\r\n {\r\n ApiClient.Post(Urls.publicLines(), values)\r\n .then((res) => {\r\n toast.success('عملیات با موفقیت انجام شد');\r\n actions.resetForm();\r\n onCloseModal(false)\r\n onSubmit()\r\n }).catch().finally(() => { actions.setSubmitting(false) })\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n \r\n formik.setFieldValue(\"number\", e.target.value)\r\n }\r\n />\r\n\r\n formik.setFieldValue(\"providerId\", e.target.value)}\r\n />\r\n\r\n\r\n
    \r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n \r\n اضافه کردن\r\n \r\n
    \r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\nexport default PublicLinesModal\r\n","import React, {useState} from \"react\";\r\nimport {StyledForm, StyledSwitchBox} from \"../../../../Component/Kit/Form\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport {useFormik} from \"formik\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport {toast} from \"react-toastify\";\r\n\r\nfunction PublicActiveModal({onCloseModal, onSubmit, selectedItem}) {\r\n\r\n const formik = useFormik({\r\n initialValues: {\r\n active: selectedItem['isActive']\r\n },\r\n\r\n onSubmit: (values, actions) => {\r\n ApiClient.Post(Urls.publicLineActivitionById(selectedItem['id']), JSON.stringify(values.active))\r\n .then((res) => {\r\n toast.success('عملیات با موفقیت انجام شد');\r\n onSubmit()\r\n }).catch().finally(() => {\r\n })\r\n }\r\n });\r\n\r\n\r\n return (\r\n\r\n \r\n
    \r\n فعال سازی خط\r\n formik.setFieldValue(\"active\", e.target.checked)}\r\n />\r\n
    \r\n\r\n\r\n
    \r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n \r\n تایید\r\n \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default PublicActiveModal\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {StyledForm, StyledSelect} from \"../../../../Component/Kit/Form\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport {useFormik} from \"formik\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport {toast} from \"react-toastify\";\r\nimport * as Yup from \"yup\";\r\n\r\nconst PublicLineEditModalSchema = Yup.object().shape({\r\n selectedPublicLine: Yup.string()\r\n .required('این فیلد اجباری است.'),\r\n});\r\n\r\nfunction EditDefaultLineModal({onCloseModal, onSubmit}) {\r\n const [optionList, setOptionList] = useState([]);\r\n\r\n const formik = useFormik({\r\n initialValues: {\r\n selectedPublicLine: \"\"\r\n },\r\n validationSchema: PublicLineEditModalSchema,\r\n onSubmit: (values, actions) => {\r\n console.log(values)\r\n ApiClient.Put(Urls.publicSetDefaultLineById(values.selectedPublicLine))\r\n .then((res) => {\r\n toast.success('عملیات با موفقیت انجام شد');\r\n onSubmit()\r\n }).catch().finally(() => {\r\n })\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n ApiClient.Get(Urls.publicLines()).then(res => {\r\n let data = res.result;\r\n setOptionList(data.publicLines.map(item => {\r\n return {value: item['id'], name: item['number']}\r\n }))\r\n })\r\n }, []);\r\n\r\n\r\n return (\r\n \r\n {\r\n formik.setFieldValue(\"selectedPublicLine\", e.target.value);\r\n }}\r\n />\r\n
    \r\n {\r\n onCloseModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n \r\n تایید\r\n \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default EditDefaultLineModal\r\n","import React, {useEffect, useState} from \"react\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport GetSystemLine from \"../Services/system-line-type\";\r\nimport EnumFlag from \"../../../Utility/Services/enum-flag\";\r\nimport GetProvider from \"../../../Utility/Services/provider\";\r\nimport {HeaderContent, MainContent, PageTitleLayout} from \"../../../Component/Kit/Layout\";\r\nimport {StyledButton} from \"../../../Component/Kit/Button\";\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport Modal from \"../../../Component/Kit/Modal\";\r\nimport PublicLinesModal from \"./PublicModal\";\r\nimport {StyledSwitchBox} from \"../../../Component/Kit/Form\";\r\nimport Swal from \"sweetalert2\";\r\nimport {toast} from \"react-toastify\";\r\nimport PublicActiveModal from \"./PublicActiveModal\";\r\nimport EditDefaultLineModal from \"./EditDefaultLineModal\";\r\n\r\nfunction PublicLines() {\r\n const [lineData, setLineData] = useState([]);\r\n const [modal, showModal] = useState(false);\r\n const [selectedLine, setSelectedLine] = useState({});\r\n const [activeModal, showActiveModal] = useState(false);\r\n const [showEditDefaultLineModal, setShowEditDefaultLineModal] = useState(false);\r\n const [ActivePublicLines, setActivePublicLines] = useState(false);\r\n\r\n const tableConfig = {\r\n header: {\r\n number: \"شماره خط\",\r\n providerText: \"ارائه دهنده خدمات\",\r\n isActiveText: \"وضعیت خط\",\r\n isDefaultIcon: \"پیشفرض\",\r\n },\r\n actions: {\r\n edit: {\r\n icon: \"fa fa-edit\",\r\n condition: (data) => !data.isDefault\r\n },\r\n delete: {\r\n icon: \"fa fa-trash\",\r\n condition: (data) => !data.isDefault\r\n }\r\n }\r\n };\r\n useEffect(() => {\r\n getSystemLine()\r\n }, []);\r\n\r\n const getSystemLine = () => {\r\n ApiClient.Get(Urls.publicLines()).then((res) => {\r\n\r\n setActivePublicLines(res.result.sendViaPublicLinesIsActivated)\r\n let data = res.result.publicLines;\r\n data.map((m) => {\r\n m.systemLines = GetSystemLine(EnumFlag([1, 2, 4, 8, 16], m.type));\r\n m.providerText = GetProvider(m.providerId);\r\n m.isActiveText = m.isActive ? \"فعال\" : \"غیر فعال\";\r\n m.isDefaultIcon = m.isDefault\r\n ? ``\r\n : ``;\r\n return m\r\n });\r\n setLineData(data);\r\n });\r\n\r\n }\r\n\r\n const createNewLine = () => {\r\n showModal(true)\r\n }\r\n\r\n function tableActions(item) {\r\n switch (item.actionName) {\r\n case 'edit':\r\n setSelectedLine(item.data)\r\n showActiveModal(true)\r\n break;\r\n case 'delete':\r\n deletePublicLine(item.data);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n\r\n const confirmActivition = () => {\r\n\r\n Swal.fire({\r\n text: `آیا از ${ActivePublicLines ? 'غیر فعال سازی' : ' فعال سازی '} خطوط ویژه اطمینان دارید ؟`,\r\n title: \"احتیاط کن !\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n ApiClient.Patch(Urls.publicLines(), JSON.stringify(!ActivePublicLines)).then(\r\n () => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n setActivePublicLines(!ActivePublicLines)\r\n }\r\n )\r\n }\r\n });\r\n }\r\n\r\n const deletePublicLine = (data) => {\r\n if (data.isDefault) return\r\n\r\n Swal.fire({\r\n text: `آیا از حذف این خط ویژه مطمئن هستید ؟`,\r\n title: \"احتیاط کن !\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n ApiClient.Delete(Urls.DeletePublicLine(data.id)).then(\r\n () => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n getSystemLine();\r\n }\r\n )\r\n }\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n \r\n createNewLine()}>\r\n ایجاد خط جدید\r\n \r\n\r\n (setShowEditDefaultLineModal(true))}>\r\n انتخاب خط پیشفرض\r\n \r\n\r\n
    \r\n confirmActivition()}\r\n />\r\n

    فعال سازی خطوط

    \r\n
    \r\n
    \r\n \r\n \r\n
    خطوط ویژه
    \r\n \r\n خطوط ویژه سامانه در این بخش مدیریت می شود.\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n showModal(false)}\r\n visible={modal}\r\n onCancel={() => showModal(false)}\r\n headerTitle={'ایجاد خط جدید'}\r\n >\r\n showModal(e)} onSubmit={() => {\r\n getSystemLine()\r\n }}/>\r\n \r\n\r\n {\r\n activeModal &&\r\n showActiveModal(false)}\r\n visible={activeModal}\r\n onCancel={() => showActiveModal(false)}\r\n headerTitle={'تغییر وضعیت خط'}\r\n >\r\n {showActiveModal(e)}}\r\n onSubmit={() => {\r\n getSystemLine()\r\n showActiveModal(false)}}\r\n />\r\n \r\n }\r\n {\r\n showEditDefaultLineModal &&\r\n setShowEditDefaultLineModal(false)}\r\n visible={showEditDefaultLineModal}\r\n onCancel={() => setShowEditDefaultLineModal(false)}\r\n headerTitle={'انتخاب خط پیشفرض'}\r\n >\r\n setShowEditDefaultLineModal(e)}\r\n onSubmit={() => {\r\n getSystemLine()\r\n setShowEditDefaultLineModal(false)\r\n }}\r\n />\r\n\r\n \r\n }\r\n\r\n\r\n \r\n );\r\n}\r\n\r\nexport default PublicLines;\r\n","\r\nimport styled from \"styled-components\";\r\n\r\nexport const ProviderStateLayout = styled.div`\r\n .main-box {\r\n padding: 1rem;\r\n width: 100%;\r\n min-height: 200px;\r\n display: flex;\r\n flex-grow: 0;\r\n flex-shrink: 1;\r\n flex-basis: calc(25% - 16px);\r\n flex-wrap: wrap;\r\n flex-direction: column;\r\n box-shadow: 0 3px 16px #d9d9d9;\r\n background: #ffffff;\r\n border-radius: 0.25rem;\r\n cursor: pointer;\r\n\r\n & canvas{\r\n width: 10px;\r\n height: 20px;\r\n }\r\n .inner-container {\r\n position: relative;\r\n min-height: 100px;\r\n .custom-budge {\r\n color: #fff;\r\n border-radius: 1rem;\r\n padding: .6rem;\r\n display: flex;\r\n align-items: center;\r\n\r\n &.healthy {\r\n background: #4fd18f;\r\n }\r\n\r\n &.unhealthy {\r\n background: #d14f4f;\r\n }\r\n\r\n &.unknown {\r\n background: #dc8759;\r\n }\r\n }\r\n\r\n\r\n .resend-btn {\r\n border-radius: 10px;\r\n border: none;\r\n font-size: .7rem;\r\n color: #fff;\r\n padding: .5rem 1rem;\r\n &:focus{\r\n outline: none;\r\n border: none;\r\n }\r\n\r\n &.healthy {\r\n background: #449f70;\r\n }\r\n\r\n &.unhealthy {\r\n background: #922d2d;\r\n }\r\n\r\n &.unknown {\r\n background: #99603a;\r\n }\r\n }\r\n\r\n .last-delivered {\r\n height: 38px;\r\n background: #eee;\r\n border-radius: 12px;\r\n & .healthy {\r\n color: #449f70;\r\n font-weight: bold;\r\n }\r\n\r\n & .unhealthy {\r\n color: #922d2d;\r\n font-weight: bold;\r\n }\r\n\r\n & .unknown {\r\n color: #99603a;\r\n font-weight: bold;\r\n }\r\n }\r\n }\r\n }\r\n`\r\n","const ProviderNotificationEnum = {\r\n EngineIsUnhealthy : 1,\r\n ClientHasDisconnected : 2,\r\n ProviderUnavailability : 3\r\n}\r\n\r\nconst ProviderNotificationModel = [\r\n { value: ProviderNotificationEnum.EngineIsUnhealthy, name: 'موتور ارسال در حالت ناسالم قرار گرفته است' },\r\n { value: ProviderNotificationEnum.ClientHasDisconnected, name: 'ارتباط با اپلیکیشن قطع شده است' },\r\n { value: ProviderNotificationEnum.ProviderUnavailability, name: 'ارائه‌دهندگان از دسترس خارج شده اند' },\r\n]\r\n\r\nexport { ProviderNotificationModel }\r\n","import React, {useCallback, useEffect, useState} from 'react'\r\nimport {HeaderContent, MainContent, PageTitleLayout, WrapperLayout} from \"../../../Component/Kit/Layout\";\r\nimport {ProviderStateLayout} from \"./styles\";\r\nimport { Chart as ChartJS, LineElement, PointElement, LinearScale, Title , CategoryScale } from 'chart.js';\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport {ProviderNotificationModel} from \"../../../Utility/Model/ProviderNotificationSetting\";\r\nimport {FieldArray, Formik} from \"formik\";\r\nimport {AddDiscountCodeSchema} from \"../../../Utility/Validation/Schema/ModifyDiscountCodeSchema\";\r\nimport {toast} from \"react-toastify\";\r\nimport {FormLable, StyledForm, StyledInput, StyledSwitchBox} from \"../../../Component/Kit/Form\";\r\nimport {DisCountDateWrapper} from \"../../DiscountCode/style\";\r\nimport {MyDatePicker} from \"../../../Component/Shared/DatePicker\";\r\nimport {StyledButton} from \"../../../Component/Kit/Button\";\r\nimport BackToPage from \"../../../Component/Kit/back\";\r\n\r\nChartJS.register(LineElement, PointElement, LinearScale, Title , CategoryScale);\r\n\r\n\r\nexport const ProviderNotification = () => {\r\n const [providerNotification , setProviderNotification] = useState([])\r\n\r\n\r\n\r\n const callApi = useCallback(()=> {\r\n\r\n\r\n } , [])\r\n\r\n\r\n useEffect(\r\n ()=> {\r\n ApiClient.Get(Urls.ProviderNotificationSetting()).then((response) => {\r\n // console.log(response.result)\r\n setProviderNotification(response.result)\r\n })\r\n } , []);\r\n\r\n return (\r\n \r\n \r\n \r\n
    تنظیمات اعلانات ارائه‌دهندگان
    \r\n در این بخش می‌توانید تنظیمات ارائه‌دهندگان مشاهده نمایید.\r\n
    \r\n
    \r\n\r\n {\r\n ApiClient.Put(Urls.ProviderNotificationSetting() , values).then((response) => {\r\n toast.success('عملیات با موفقیت ثبت شد.');\r\n })\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n {providerNotification.length > 0 && formik.values.length > 0 && providerNotification.map((notification , index) => (\r\n \r\n
    \r\n
    \r\n
    {ProviderNotificationModel.find(a => a.value === notification.type)?.name}
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n\r\n
    \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n (\r\n
    \r\n {formik.values[index].recipients.map((mobiles, i) => (\r\n
    \r\n \r\n arrayHelpers.remove(i)}\r\n >\r\n حذف\r\n \r\n
    \r\n ))}\r\n arrayHelpers.push(\"\")}\r\n >\r\n افزودن\r\n \r\n
    \r\n )}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n ))}\r\n\r\n
    \r\n \r\n تایید\r\n \r\n
    \r\n \r\n )}\r\n \r\n\r\n\r\n\r\n
    \r\n )\r\n}\r\n\r\nexport default ProviderNotification;\r\n","import { Formik } from 'formik';\r\nimport React from 'react'\r\nimport { useHistory } from 'react-router-dom';\r\nimport { toast } from 'react-toastify';\r\nimport {RejectedManualPaymentSchema} from \"../../../../Utility/Validation/Schema/RejectedManualPaymentSchema\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport {StyledForm, StyledTextArea} from \"../../../../Component/Kit/Form\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\n\r\nexport const RejectedRequestTower = (props) => {\r\n const { id, visible, setVisible, onCancel, onClose } = props;\r\n const history = useHistory();\r\n\r\n return (\r\n \r\n
    \r\n
    آیا از عدم تایید این درخواست مطمئن هستید؟
    \r\n
    \r\n {\r\n let dataBody = {\r\n \"isAccepted\": false,\r\n \"rejectDescription\": values.description,\r\n };\r\n ApiClient.Patch(Urls.sendTowerChangeStatus(id), dataBody)\r\n .then((res) => {\r\n setVisible(false);\r\n toast.success(\"فرآیند با موفقیت انجام گرفت!\");\r\n history.push('/send-tower')\r\n })\r\n }}\r\n onReset={(values, formikBag) => {\r\n formikBag.resetForm();\r\n setVisible(false)\r\n }}\r\n >\r\n\r\n {(formik) => (\r\n \r\n {\r\n const str = e.target.value.trim() !== '' ? e.target.value : ''\r\n formik.setFieldValue(\"description\", str)\r\n }}\r\n\r\n />\r\n\r\n
    \r\n \r\n عدم تایید\r\n \r\n\r\n {\r\n setVisible(false)\r\n }}\r\n >\r\n بستن\r\n \r\n
    \r\n\r\n\r\n \r\n )}\r\n \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n","import { Formik } from 'formik';\r\nimport React from 'react'\r\nimport { useHistory } from 'react-router-dom';\r\nimport { toast } from 'react-toastify';\r\nimport {RejectedManualPaymentSchema} from \"../../../../Utility/Validation/Schema/RejectedManualPaymentSchema\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport {StyledForm, StyledTextArea} from \"../../../../Component/Kit/Form\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport Modal from \"../../../../Component/Kit/Modal\";\r\n\r\nexport const AcceptRequestTower = (props) => {\r\n const {id, visible, setVisible, onCancel, onClose} = props;\r\n const history = useHistory();\r\n\r\n const acceptHandler = () => {\r\n let dataBody = {\r\n \"isAccepted\": true,\r\n \"rejectDescription\": null\r\n };\r\n ApiClient.Patch(Urls.sendTowerChangeStatus(id), dataBody)\r\n .then((res) => {\r\n setVisible(false);\r\n toast.success(\"فرآیند با موفقیت انجام گرفت!\");\r\n history.push('/send-tower')\r\n })\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    آیا از تایید این درخواست مطمئن هستید؟
    \r\n
    \r\n\r\n
    \r\n \r\n تایید\r\n \r\n\r\n {\r\n setVisible(false)\r\n }}\r\n >\r\n بستن\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { HeaderContent, MainContent, PageTitleLayout, WrapperLayout } from \"../../../Component/Kit/Layout\";\r\nimport { useHistory, useLocation, useParams } from \"react-router-dom\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport { TowerOperatorList, TowerStatusList } from \"../../../Utility/Model/send-tower.model\";\r\nimport { StyledButton } from \"../../../Component/Kit/Button\";\r\nimport { RejectedRequestTower } from \"./RejectModal\";\r\nimport { AcceptRequestTower } from \"./AcceptModal\";\r\nimport Swal from \"sweetalert2\";\r\nimport { toast } from \"react-toastify\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport BackToPage from \"../../../Component/Kit/back\";\r\n\r\n\r\n\r\nexport function SendTowerSingle() {\r\n const [request, setRequest] = useState({});\r\n const [rejectModal, setRejectModal] = useState(false);\r\n const [acceptModal, setAcceptModal] = useState(false);\r\n const location = useLocation();\r\n const param = useParams()\r\n const history = useHistory()\r\n\r\n\r\n useEffect(() => {\r\n ApiClient.Get(Urls.getSingleSendTower(param.id))\r\n .then(res => {\r\n const data = res.result;\r\n data.totalPrice = res.result.totalPrice?.toLocaleString('fa-IR')\r\n data.operatorName = TowerOperatorList.find(a => a.value == res.result.operatorId)?.name\r\n data.stateName = TowerStatusList.find(a => a.value == res.result.state)?.name\r\n data.basePrice = res.result.basePrice?.toLocaleString('fa-IR')\r\n data.netPrice = res.result.netPrice?.toLocaleString('fa-IR')\r\n data.fifteenRemarkPrice = res.result.fifteenRemarkPrice?.toLocaleString('fa-IR')\r\n data.vatPrice = res.result.vatPrice?.toLocaleString('fa-IR')\r\n setRequest(data)\r\n })\r\n }, [location.search])\r\n\r\n\r\n const rejectHandler = () => {\r\n console.log('ssss')\r\n setRejectModal(true);\r\n }\r\n\r\n\r\n const acceptPayment = () => {\r\n Swal.fire({\r\n title: `آیا از تایید ارسال به اپراتور مطمعن هستید ؟`,\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Patch(Urls.sendTowerPaid(param.id)).then(\r\n (res) => {\r\n toast.success(\"فرآیند با موفقیت انجام گرفت!\");\r\n setRequest({ ...request, state: 6 })\r\n }\r\n );\r\n }\r\n })\r\n };\r\n\r\n\r\n const acceptReadyToSend = () => {\r\n Swal.fire({\r\n title: `آیا از تایید اتمام درخواست مطمعن هستید؟`,\r\n text: \"\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Patch(Urls.sendTowerReady(param.id)).then(\r\n (res) => {\r\n toast.success(\"فرآیند با موفقیت انجام گرفت!\");\r\n history.push('/send-tower/pending')\r\n }\r\n );\r\n }\r\n })\r\n }\r\n return (\r\n \r\n
    \r\n {Object.keys(request).length > 0 &&\r\n <>\r\n \r\n
    \r\n {request.state === 1 && (\r\n <>\r\n \r\n عدم تایید\r\n \r\n setAcceptModal(true)}>\r\n تایید\r\n \r\n \r\n )}\r\n {request.state === 5 && (\r\n <>\r\n \r\n تایید ارسال به اپراتور\r\n \r\n \r\n )}\r\n {request.state === 6 && (\r\n <>\r\n \r\n تایید اتمام درخواست\r\n \r\n \r\n )}\r\n
    \r\n \r\n
    \r\n\r\n \r\n \r\n
    ارسال از دکل
    \r\n
    \r\n
    \r\n
      \r\n
    • \r\n
      \r\n متن پیام\r\n
      \r\n
      \r\n \r\n {request.messageText}\r\n \r\n
      \r\n
    • \r\n\r\n
    • \r\n
      \r\n نام کاربری درخواست کننده\r\n
      \r\n
      \r\n \r\n {request.userFullName}\r\n \r\n
      \r\n
    • \r\n
    • \r\n
      \r\n توضیحات عدم تایید\r\n
      \r\n
      \r\n \r\n {request.rejectDescription ? request.rejectDescription : '- - - - -'}\r\n \r\n
      \r\n
    • \r\n
    • \r\n
      \r\n اپراتور\r\n
      \r\n
      \r\n \r\n {request.operatorName}\r\n \r\n
      \r\n
    • \r\n
    • \r\n
      \r\n وضعیت\r\n
      \r\n
      \r\n \r\n {request.stateName}\r\n \r\n
      \r\n
    • \r\n
    • \r\n
      \r\n تعداد مخاطبین\r\n
      \r\n
      \r\n \r\n {request.recipientsCount}\r\n \r\n\r\n
      \r\n
    • \r\n
    • \r\n
      \r\n تعداد پیامک \r\n
      \r\n
      \r\n \r\n {request.messageCount}\r\n \r\n
      \r\n
    • \r\n\r\n
    • \r\n
      \r\n تعداد کل پیامک ها\r\n
      \r\n
      \r\n \r\n {request.totalMessageCount}\r\n \r\n
      \r\n
    • \r\n
    • \r\n
      \r\n زمان اولین ارسال\r\n
      \r\n
      \r\n \r\n {DateConvert(request.firstSendAt)}\r\n \r\n
      \r\n
    • \r\n
    \r\n
      \r\n
    • \r\n
      \r\n فایل آپلود شده\r\n
      \r\n
      \r\n \r\n دانلود فایل\r\n \r\n\r\n
      \r\n
    • \r\n
    • \r\n
      \r\n قیمت پایه\r\n
      \r\n
      \r\n \r\n {request.basePrice} ریال\r\n \r\n
      \r\n
    • \r\n
    • \r\n
      \r\n قیمت اصلی پکیج\r\n
      \r\n
      \r\n \r\n {request.netPrice} ریال\r\n \r\n
      \r\n
    • \r\n
    • \r\n
      \r\n لایحه 15\r\n
      \r\n
      \r\n \r\n {request.fifteenRemarkPrice} ریال\r\n \r\n
      \r\n
    • \r\n
    • \r\n
      \r\n مالیات بر ارزش افزوده\r\n
      \r\n
      \r\n \r\n {request.vatPrice} ریال\r\n \r\n
      \r\n
    • \r\n
    • \r\n
      \r\n مبلغ کل پرداختی\r\n
      \r\n
      \r\n \r\n {request.totalPrice} ریال\r\n \r\n
      \r\n
    • \r\n
    • \r\n
      \r\n تاریخ ایجاد\r\n
      \r\n
      \r\n \r\n {DateConvert(request.createdAt)}\r\n \r\n
      \r\n
    • \r\n
    • \r\n
      \r\n آخرین بروزرسانی\r\n
      \r\n
      \r\n \r\n {DateConvert(request.modifiedAt)}\r\n \r\n
      \r\n
    • \r\n\r\n
    • \r\n
      \r\n زمان انقضا\r\n
      \r\n
      \r\n \r\n {DateConvert(request.expireAt)}\r\n \r\n
      \r\n
    • \r\n
    \r\n
    \r\n
    \r\n\r\n false}\r\n onClose={() => setAcceptModal(false)} />\r\n\r\n false}\r\n onClose={() => setRejectModal(false)}\r\n />\r\n \r\n }\r\n\r\n
    \r\n
    \r\n )\r\n}","\r\nimport * as Yup from \"yup\";\r\n\r\nexport const AddAssignmentTicket = Yup.object().shape({\r\n adminIds: Yup.array().required(\"این فیلد الزامی است.\"),\r\n startDate: Yup.string().required(\"این فیلد الزامی است.\"),\r\n endDate: Yup.string().required(\"این فیلد الزامی است.\"),\r\n startTime: Yup.string().required(\"این فیلد الزامی است.\"),\r\n endTime: Yup.string().required(\"این فیلد الزامی است.\")\r\n});\r\n","import React, {useState} from \"react\";\r\nimport {StyledButton} from \"../../../Component/Kit/Button\";\r\nimport Modal from \"../../../Component/Kit/Modal\";\r\nimport {FormError, FormLable, StyledForm} from \"../../../Component/Kit/Form\";\r\nimport Select from \"react-select\";\r\nimport {Formik} from \"formik\";\r\nimport {TimePicker, TimePickerStyled} from \"../../../Component/Shared/TimePicker\";\r\nimport {MyDatePicker} from \"../../../Component/Shared/DatePicker\";\r\nimport {AddAssignmentTicket} from \"../../../Utility/Validation/Schema/AddAssignmentTicket\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport urls from \"../../../Requester/Urls\";\r\nimport {toast} from \"react-toastify\";\r\nimport moment from \"moment-jalaali\";\r\n\r\nconst AssignmentPeriod = (props) => {\r\n const {visible, onClose, onCancel, adminsList, onSubmit} = props\r\n const [minDate, setMinDate] = useState()\r\n return (\r\n \r\n {\r\n console.log(values)\r\n console.log(values.adminIds.map(a => a.adminId))\r\n ApiClient.Post(urls.assignmentTicket(), {\r\n ...values,\r\n startTime: `${values.startTime.slice(0, 2)}:${values.startTime.slice(2, 4)}:00`,\r\n endTime: `${values.endTime.slice(0, 2)}:${values.endTime.slice(2, 4)}:00`,\r\n adminIds: values.adminIds.map(a => a.adminId)\r\n }).then(\r\n (res) => {\r\n toast.success(\"فرآیند با موفقیت انجام گرفت!\");\r\n actions.resetForm()\r\n onSubmit()\r\n\r\n }\r\n )\r\n\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
    \r\n
    \r\n ادمین ها \r\n option['fullName']}\r\n getOptionValue={option => option['adminId']}\r\n isMulti\r\n options={adminsList}\r\n onChange={(e) => {\r\n formik.setFieldValue(\"adminIds\", e)\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n تاریخ شروع\r\n {\r\n setMinDate(moment(formik.values.startDate , 'jYYYYjMMjDD').format())\r\n formik.setFieldValue(`startDate`, event.baseFormat);\r\n }}\r\n name={`startDate`}\r\n />\r\n
    \r\n
    \r\n تاریخ پایان\r\n {\r\n formik.setFieldValue(`endDate`, event.baseFormat);\r\n }}\r\n min={minDate}\r\n name={`endDate`}\r\n />\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n ساعت شروع\r\n {\r\n if (event)\r\n formik.setFieldValue(\"startTime\", event.baseFormat)\r\n }}\r\n name=\"startTime\"\r\n />\r\n
    \r\n
    \r\n ساعت پایان\r\n {\r\n if (event)\r\n formik.setFieldValue(\"endTime\", event.baseFormat)\r\n }}\r\n name=\"endTime\"\r\n />\r\n
    \r\n
    \r\n {\r\n formik.values.startTime && formik.values.endTime &&\r\n formik.values.startTime === formik.values.endTime &&\r\n ساعت شروع و پایان نمی تواند همزمان باشد\r\n\r\n }\r\n
    \r\n {\r\n onClose(false)\r\n }}\r\n >\r\n بستن\r\n \r\n \r\n اضافه کردن\r\n \r\n
    \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AssignmentPeriod\r\n\r\n\r\n","\r\nimport React, {useCallback, useEffect, useLayoutEffect, useState} from \"react\";\r\nimport {useHistory, useLocation, useRouteMatch} from \"react-router-dom\";\r\nimport {RoleCanActivate} from \"../../../Utility/Services/roleCanActivate\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport {ConvertQueryString} from \"../../../Utility/Services/convert-query-string\";\r\nimport TicketDepartment from \"../../../Utility/Services/TicketDepartmentService\";\r\nimport {HeaderContent, MainContent, PageTitleLayout, WrapperLayout} from \"../../../Component/Kit/Layout\";\r\nimport {StyledButton} from \"../../../Component/Kit/Button\";\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport {DeleteTemplateModal} from \"../../TicketAnswerTemplates/DeleteTemplateModal\";\r\nimport {connect} from \"react-redux\";\r\nimport Modal from \"../../../Component/Kit/Modal\";\r\nimport AssignmentPeriod from \"./assignment-period\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport Swal from \"sweetalert2\";\r\nimport {toast} from \"react-toastify\";\r\n\r\nconst AutoAssignmentTicket = ({adminProfile}) => {\r\n const location = useLocation()\r\n const history = useHistory()\r\n const [templateData, setTemplateData] = useState({});\r\n const [visible, setVisible] = useState(false);\r\n const [templateId, setTemplateId] = useState(null);\r\n const [changedata, setChangedata] = useState(true);\r\n const [adminList, setAdminList] = useState([]);\r\n\r\n const handleClick = () => {\r\n setVisible(true)\r\n };\r\n\r\n\r\n const templateTableConfig = {\r\n header: {\r\n adminFullName: \"نام کاربری ادمین\",\r\n start: \"شروع بازه\",\r\n end: \"پایان بازه\",\r\n },\r\n actions: {\r\n delete: {\r\n icon: \"fa fa-trash\",\r\n condition: () => RoleCanActivate(['supporter'], adminProfile.roleId),\r\n }\r\n },\r\n mode: [\"filter\", \"search\"],\r\n filters: [\"department\"],\r\n };\r\n\r\n function tableActions(items) {\r\n switch (items.actionName) {\r\n case \"delete\":\r\n deleteHandler(items.data.id)\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n const deleteHandler = (id) => {\r\n Swal.fire({\r\n title: \"آیا از حذف این بازه اطمینان دارید؟\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n ApiClient.Delete(Urls.assignmentTicket(id))\r\n .then((res) => {\r\n toast.success(\"حذف بازه با موفقیت انجام شد.\");\r\n getData()\r\n })\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n const getData = useCallback(() => {\r\n ApiClient.Get(Urls.assignmentTicket(), ConvertQueryString(location.search))\r\n .then((res) => {\r\n let resData = res.result\r\n resData.items.map((item) => {\r\n item.start = DateConvert(item.start);\r\n item.end = DateConvert(item.end);\r\n return item;\r\n })\r\n\r\n setTemplateData(resData);\r\n\r\n setChangedata(false)\r\n })\r\n\r\n })\r\n\r\n useEffect(() => {\r\n getData()\r\n\r\n }, [location.search, changedata])\r\n\r\n\r\n useLayoutEffect(() => {\r\n ApiClient.Get(Urls.AdminSummary()).then((res) => {\r\n setAdminList(res.result);\r\n })\r\n }, [setAdminList])\r\n\r\n\r\n return (\r\n \r\n
    \r\n {adminProfile && adminProfile.roleId ?\r\n RoleCanActivate(['supporter'], adminProfile.roleId) ? (\r\n \r\n handleClick()}>\r\n ایجاد زمان‌ پاسخگویی\r\n \r\n \r\n ) : null\r\n : null}\r\n\r\n\r\n \r\n
    \r\n \r\n
    تخصیص خودکار تیکت ها
    \r\n در این بخش لیست همه ساعات تخصیص تیکت ها را مشاهده است.\r\n
    \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n setVisible(false)}\r\n onCancel={() => setVisible(false)}\r\n adminsList={adminList}\r\n onSubmit={() => {\r\n setVisible(false)\r\n getData()\r\n\r\n }}\r\n />\r\n\r\n
    \r\n );\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {bootstrapper} = state\r\n return {adminProfile: bootstrapper.data}\r\n}\r\n\r\nexport default connect(mapStateToProps)(AutoAssignmentTicket);\r\n\r\n","const UserServiceLineStatusEnum = {\r\n Created: 1,\r\n RejectedByAdmin: 2,\r\n AcceptedByAdmin: 3,\r\n RejectedByProvider: 4,\r\n ModifiedByUser: 5,\r\n AcceptedByProvider: 6,\r\n Finished: 7\r\n}\r\n\r\nconst UserServiceLineFileStatusEnum = {\r\n NotProvided: 1,\r\n Provided: 2,\r\n RejectedByAdmin: 3,\r\n AcceptedByAdmin: 4,\r\n RejectedByProvider: 5,\r\n ModifiedByUser: 6,\r\n AcceptedByProvider: 7\r\n}\r\n\r\nconst ServiceLineFileTypeEnum = {\r\n CommitmentLetter : 1,\r\n Contacts : 2,\r\n PromissoryNote : 3,\r\n OwnerNationalId : 4\r\n}\r\n\r\n\r\nconst UserServiceLineStatusModel = [\r\n {name: 'ایجاد شده', value: UserServiceLineStatusEnum.Created},\r\n {name: 'رد شده توسط ادمین', value: UserServiceLineStatusEnum.RejectedByAdmin},\r\n {name: 'تایید شده توسط ادمین', value: UserServiceLineStatusEnum.AcceptedByAdmin},\r\n {name: 'رد شده توسط اپراتور', value: UserServiceLineStatusEnum.RejectedByProvider},\r\n {name: 'ویرایش شده', value: UserServiceLineStatusEnum.ModifiedByUser},\r\n {name: 'تایید توسط اپراتور', value: UserServiceLineStatusEnum.AcceptedByProvider},\r\n {name: 'خدماتی شده', value: UserServiceLineStatusEnum.Finished},\r\n];\r\n\r\nconst UserServiceLineFileStatusModel = [\r\n {name: 'فراهم نشده', value: UserServiceLineFileStatusEnum.NotProvided},\r\n {name: 'فراهم شده', value: UserServiceLineFileStatusEnum.Provided},\r\n {name: 'رد شده توسط ادمین', value: UserServiceLineFileStatusEnum.RejectedByAdmin},\r\n {name: 'تایید شده توسط ادمین', value: UserServiceLineFileStatusEnum.AcceptedByAdmin},\r\n {name: 'رد شده توسط اپراتور', value: UserServiceLineFileStatusEnum.RejectedByProvider},\r\n {name: 'ویرایش شده', value: UserServiceLineFileStatusEnum.ModifiedByUser},\r\n {name: 'تایید شده توسط اپراتور', value: UserServiceLineFileStatusEnum.AcceptedByProvider},\r\n];\r\n\r\nconst ServiceLineFileTypeModel = [\r\n {name: 'تعهدنامه', value: ServiceLineFileTypeEnum.CommitmentLetter},\r\n {name: 'شماره‌ها', value: ServiceLineFileTypeEnum.Contacts},\r\n {name: 'سفته', value: ServiceLineFileTypeEnum.PromissoryNote},\r\n {name: 'کارت ملی', value: ServiceLineFileTypeEnum.OwnerNationalId},\r\n];\r\n\r\n\r\n\r\nexport {UserServiceLineStatusModel, UserServiceLineStatusEnum, UserServiceLineFileStatusModel, UserServiceLineFileStatusEnum, ServiceLineFileTypeModel, ServiceLineFileTypeEnum};\r\n\r\n","import React, {useCallback, useEffect, useState} from \"react\";\r\nimport {useHistory, useLocation} from \"react-router-dom\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport {ConvertQueryString} from \"../../../../Utility/Services/convert-query-string\";\r\nimport GetProvider from \"../../../../Utility/Services/provider\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport {UserServiceLineStatusEnum, UserServiceLineStatusModel} from \"../../../../Utility/Model/user-service-line.model\";\r\nimport DateConvert from \"../../../../Utility/Services/date-convert\";\r\nimport {PageTitleLayout} from \"../../../../Component/Kit/Layout\";\r\nimport Table from \"../../../../Component/Shared/Table/Table\";\r\n\r\n\r\nfunction SharedServiceLineTab(props) {\r\n const {status} = props;\r\n const [lineData, setlineData] = useState([]);\r\n const location = useLocation();\r\n const history = useHistory();\r\n\r\n const tableConfig = {\r\n header: {\r\n number: \"شماره خط\",\r\n username: \"کاربر\",\r\n statusFa: \"وضعیت درخواست\",\r\n providerId: \"ارائه دهنده\",\r\n createdAt: \"تاریخ ایجاد\",\r\n modifiedAt: \"تاریخ ویرایش\",\r\n },\r\n\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n },\r\n },\r\n mode: [\"search\"],\r\n };\r\n\r\n const getServiceLine = useCallback(() => {\r\n const params ={\r\n ...ConvertQueryString(location.search),\r\n status,\r\n }\r\n ApiClient.Get(Urls.getAllUserServiceLine(), params).then((res) => {\r\n let data = res.result;\r\n data.items.map((m) => {\r\n m.providerId = GetProvider(m.providerId);\r\n m.statusFa = UserServiceLineStatusModel.find(u => u.value === m.status).name ?? m.status\r\n m.createdAt = DateConvert(m.createdAt) || '- - -';\r\n m.modifiedAt = DateConvert(m.modifiedAt) || '- - -';\r\n return m\r\n });\r\n setlineData(data);\r\n });\r\n }, [location.search, status]);\r\n\r\n\r\n useEffect(() => {\r\n getServiceLine()\r\n }, [getServiceLine]);\r\n\r\n const tableActions = (item) => {\r\n switch (item.actionName) {\r\n case \"view\":\r\n history.push(`/line/user-service-line-detail/${item.data.id}`);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
    خطوط خدماتی
    \r\n \r\n برای تغییر اطلاعات لطفا با واحد فنی در ارتباط باشید.\r\n \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default SharedServiceLineTab;\r\n","import {NavLink, Route, Switch, useHistory, useLocation} from \"react-router-dom\";\r\nimport React, {useEffect} from \"react\";\r\nimport {MainContent} from \"../../../Component/Kit/Layout\";\r\nimport SharedServiceLineTab from \"./SharedServiceLineTab\";\r\n\r\nconst UserServiceLine = ({ match }) => {\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n if (location.pathname === `${match.url}`) {\r\n history.push(`${match.url}/pending`.replace(/\\/+/g, '/'))\r\n }\r\n }, [history, location.pathname, match.url])\r\n return (\r\n <>\r\n \r\n
      \r\n
    • \r\n \r\n درخواست های جدید\r\n \r\n
    • \r\n
    • \r\n \r\n رد شده ها\r\n \r\n
    • \r\n
    • \r\n \r\n در انتظار اپراتور\r\n \r\n
    • \r\n\r\n
    • \r\n \r\n در انتظار مدارک اصلی\r\n \r\n
    • \r\n
    • \r\n \r\n خدماتی شده ها\r\n \r\n
    • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default UserServiceLine;","import React, { useEffect, useState } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { toast } from 'react-toastify';\r\nimport {\r\n EmptyList,\r\n TicketCommentsListItem,\r\n TicketCommentsWrapper,\r\n TicketTitleRow\r\n} from \"../../../../Tickets/TicketComments/TicketCommentItem/styles\";\r\nimport ApiClient from \"../../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../../Requester/Urls\";\r\n\r\n\r\nfunction CommentItem({ comments, deleteConfirm }) {\r\n const params = useParams();\r\n\r\n const [notes, setNotes] = useState();\r\n\r\n const deleteServiceLineNote = (noteId, index) => {\r\n ApiClient.Delete(Urls.DeleteServiceLineNote(params.id, noteId)).then((res) => {\r\n if (res.result) {\r\n toast.success('یادداشت ثبت شده با موفقیت حذف شد.');\r\n deleteConfirm(true);\r\n }\r\n });\r\n };\r\n useEffect(() => {\r\n setNotes(comments);\r\n }, [comments]);\r\n return (\r\n
    \r\n {notes && notes.length > 0 ? (\r\n \r\n {notes.map((item, index) => (\r\n \r\n \r\n
    \r\n {item.authorName}\r\n {item.creationDateTime}\r\n
    \r\n {item.isDeletable && (\r\n deleteServiceLineNote(item.id, index)}\r\n type='button'\r\n className='delete-button'\r\n >\r\n \r\n \r\n )}\r\n
    \r\n

    {item.content}

    \r\n
    \r\n ))}\r\n
    \r\n ) : (\r\n آیتمی جهت نمایش وجود ندارد.\r\n )}\r\n
    \r\n );\r\n}\r\n\r\nexport default CommentItem;\r\n","import React, {useEffect, useState} from 'react';\r\n\r\nimport {useParams} from 'react-router-dom';\r\nimport {Formik} from 'formik';\r\nimport {connect} from 'react-redux';\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport DateConvert from \"../../../../Utility/Services/date-convert\";\r\nimport {PageTitleLayout, WrapperLayout} from \"../../../../Component/Kit/Layout\";\r\nimport * as Yup from \"yup\";\r\nimport {StyledForm, StyledTextArea} from \"../../../../Component/Kit/Form\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport {Loader} from \"../../../../Component/Shared/Loader\";\r\nimport CommentItem from \"./CommentItem\";\r\nimport { toast } from 'react-toastify';\r\n\r\nconst ServiceLineCommentSchema = Yup.object().shape({\r\n content: Yup.string()\r\n .label(\"content\")\r\n .required(\"این فیلد الزامی است.\"),\r\n});\r\n\r\nfunction ServiceLineComments({adminProfile, notes}) {\r\n const params = useParams();\r\n const [noteList, setNoteList] = useState();\r\n const [loading, setLoading] = useState(true);\r\n\r\n const getData = () => {\r\n ApiClient.Get(Urls.getDetailUserServiceLine(params.id)).then((res) => {\r\n res.result.adminNotes.forEach((f) => {\r\n f.creationDateTime = DateConvert(f.createdAt);\r\n });\r\n setLoading(false);\r\n setNoteList(res.result.adminNotes);\r\n });\r\n };\r\n const deleteHandler = (isDelete) => {\r\n if (isDelete) {\r\n getData();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (notes) {\r\n notes.forEach((f) => {\r\n f.creationDateTime = DateConvert(f.createdAt);\r\n })\r\n setLoading(false);\r\n setNoteList(notes);\r\n }\r\n }, [notes]);\r\n return (\r\n <>\r\n\r\n
    \r\n {loading === true ?\r\n \r\n :\r\n <>\r\n \r\n }\r\n \r\n
    \r\n\r\n <>\r\n \r\n
    ایجاد یادداشت‌
    \r\n
    \r\n\r\n {\r\n ApiClient.Post(\r\n Urls.AddServiceLineNote(params.id),\r\n JSON.stringify({\r\n content: values.content\r\n })\r\n ).then((res) => {\r\n getData();\r\n toast.success('یادداشت با موفقیت ثبت شد.');\r\n actions.resetForm();\r\n });\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n
    \r\n
    \r\n {\r\n formik.setFieldValue('content', e.target.value);\r\n }}\r\n />\r\n
    \r\n
    \r\n \r\n ارسال یادداشت\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction mapStateToProps(state) {\r\n const {bootstrapper} = state;\r\n return {adminProfile: bootstrapper.data};\r\n}\r\n\r\nexport default connect(mapStateToProps)(ServiceLineComments);\r\n","import React, {useCallback, useEffect, useState} from \"react\";\r\nimport {Link, useLocation, useParams} from \"react-router-dom\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport {ConvertQueryString} from \"../../../../Utility/Services/convert-query-string\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport {Loader} from \"../../../../Component/Shared/Loader\";\r\nimport {UserInformationItem, UserInformationWrapper} from \"../../../Users/UserProfile/UserInformation/style\";\r\nimport {HeaderContent, MainContent} from \"../../../../Component/Kit/Layout\";\r\nimport {\r\n ServiceLineFileTypeModel,\r\n UserServiceLineFileStatusModel, UserServiceLineStatusEnum,\r\n UserServiceLineStatusModel\r\n} from \"../../../../Utility/Model/user-service-line.model\";\r\nimport GetProvider from \"../../../../Utility/Services/provider\";\r\nimport DateConvert from \"../../../../Utility/Services/date-convert\";\r\nimport BackToPage from \"../../../../Component/Kit/back\";\r\nimport Table from \"../../../../Component/Shared/Table/Table\";\r\nimport {Formik} from \"formik\";\r\nimport {toast} from \"react-toastify\";\r\nimport {StyledForm, StyledInput, StyledRadioBtn} from \"../../../../Component/Kit/Form\";\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport * as Yup from \"yup\";\r\nimport Swal from \"sweetalert2\";\r\nimport ServiceLineComments from \"../Comments\";\r\nimport {ModifyTicketSettingModal} from \"../../../Tickets/TicketDetail/ModifyTicketSettingModal\";\r\n\r\n\r\nfunction UserServiceLineDetails() {\r\n const [lineData, setlineData] = useState([]);\r\n const [loading, setLoading] = useState(true);\r\n const location = useLocation();\r\n const [isModal, setIsModal] = useState(false);\r\n const [modalData, setModalData] = useState(null);\r\n const [modalType, setModalType] = useState(null);\r\n const {id} = useParams();\r\n const userServiceLineModalSchema = Yup.object().shape({\r\n rejectReason: Yup.string()\r\n .label(\"rejectReason\"),\r\n rejectByWho: Yup.string()\r\n .label(\"rejectByWho\")\r\n .required(\"این فیلد الزامی است.\")\r\n });\r\n\r\n const userInformationTitle = {\r\n username: \"نام کاربری\",\r\n number: \"شماره\",\r\n statusFa: \"وضعیت\",\r\n providerId: \"ارائه دهنده\",\r\n createdAt: \"تاریخ ایجاد\",\r\n }\r\n\r\n const tableConfig = {\r\n header: {\r\n typeFa: \"نوع فایل\",\r\n statusFa: \"وضعیت\",\r\n rejectDescription: \"علت عدم تایید\",\r\n modifiedAt: \"تاریخ ویرایش کاربر\",\r\n },\r\n\r\n actions: {\r\n\r\n accept: {\r\n icon: 'fa fa-check',\r\n },\r\n decline: {\r\n icon: 'fa fa-ban',\r\n },\r\n download: {\r\n icon: 'fa fa-download',\r\n condition: (data) => {\r\n return !!data.fileUrl;\r\n },\r\n },\r\n },\r\n };\r\n\r\n const getServiceLine = useCallback(() => {\r\n ApiClient.Get(Urls.getDetailUserServiceLine(id), ConvertQueryString(location.search)).then((res) => {\r\n let data = res.result;\r\n data.providerId = GetProvider(data.providerId);\r\n data.statusFa = UserServiceLineStatusModel.find(u => u.value === data.status).name ?? data.status\r\n data.createdAt = DateConvert(data.createdAt) || '- - -';\r\n data.modifiedAt = DateConvert(data.modifiedAt) || '- - -';\r\n data.files.map((m) => {\r\n m.statusFa = UserServiceLineFileStatusModel.find(u => u.value === m.status).name ?? m.status\r\n m.modifiedAt = DateConvert(m.modifiedAt) || '- - -';\r\n m.typeFa = ServiceLineFileTypeModel.find(u => u.value === m.type).name ?? m.type\r\n return m\r\n });\r\n setlineData(data);\r\n setLoading(false);\r\n });\r\n }, [id, location.search]);\r\n\r\n useEffect(() => {\r\n getServiceLine();\r\n }, [getServiceLine]);\r\n\r\n\r\n const tableActions = (item) => {\r\n switch (item.actionName) {\r\n case \"download\":\r\n if (item.data.fileUrl) downloadFile(item.data.fileUrl)\r\n break;\r\n case \"accept\":\r\n setModalType(\"accept\");\r\n setIsModal(true);\r\n setModalData(item.data)\r\n break;\r\n case \"decline\":\r\n setModalType(\"decline\");\r\n setIsModal(true);\r\n setModalData(item.data)\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const downloadFile = (url) => {\r\n\r\n const a = document.createElement('a')\r\n a.href = url;\r\n a.target = \"_blank\";\r\n\r\n document.body.appendChild(a)\r\n a.click()\r\n document.body.removeChild(a)\r\n }\r\n\r\n const receiveDocuments = () => {\r\n Swal.fire({\r\n title: `آیا مطمئن هستید؟`,\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then(result => {\r\n if (result.isConfirmed) {\r\n ApiClient.Post(Urls.receiveDocumentsByAdmin(id))\r\n .then(() => {\r\n getServiceLine();\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n })\r\n }\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n\r\n {loading === true ?\r\n \r\n :\r\n <>\r\n {\r\n UserServiceLineStatusEnum.AcceptedByProvider === lineData.status &&\r\n
    \r\n {\r\n receiveDocuments()\r\n }}\r\n >\r\n مدارک دریافت شد\r\n \r\n
    \r\n }\r\n\r\n
    \r\n \r\n {Object.entries(userInformationTitle).map(([key, value]) => (\r\n \r\n ))}\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n }\r\n\r\n {\r\n setIsModal(false)\r\n }}>\r\n \r\n {`${modalType === 'accept' ? 'تایید فایل' : 'عدم تایید فایل'}`}\r\n {\r\n setIsModal(false)\r\n }} className=\"close-btn fa fa-xmark\"/>\r\n \r\n \r\n <>\r\n {\r\n switch (modalType) {\r\n case 'accept':\r\n ApiClient.Post(Urls.acceptFileByAdmin(id, modalData.id), JSON.stringify({\r\n IsFromOperator: (values.rejectByWho === 'operator')\r\n }))\r\n .then((res) => {\r\n getServiceLine();\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n actions.resetForm();\r\n setIsModal(false)\r\n })\r\n break;\r\n case 'decline':\r\n ApiClient.Post(Urls.rejectFileByAdmin(id, modalData.id), JSON.stringify({\r\n IsFromOperator: (values.rejectByWho === 'operator'),\r\n rejectDescription: values.rejectReason,\r\n }))\r\n .then((res) => {\r\n getServiceLine();\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n actions.resetForm();\r\n setIsModal(false)\r\n })\r\n break;\r\n default:\r\n break;\r\n }\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n {\r\n modalType !== 'accept' &&\r\n \r\n formik.setFieldValue(\"rejectReason\", e.target.value)\r\n }\r\n />\r\n }\r\n\r\n \r\n
    \r\n {modalType === 'accept' ? 'تایید فایل توسط : ' : 'عدم تایید فایل توسط :'}\r\n \r\n formik.setFieldValue(\"rejectByWho\", 'admin')\r\n }/>\r\n \r\n formik.setFieldValue(\"rejectByWho\", 'operator')\r\n }/>\r\n
    \r\n \r\n
    \r\n \r\n ثبت\r\n \r\n\r\n {\r\n setIsModal(false)\r\n }}\r\n >\r\n بستن\r\n \r\n\r\n
    \r\n \r\n )}\r\n \r\n \r\n
    \r\n\r\n
    \r\n\r\n\r\n \r\n\r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default UserServiceLineDetails;\r\n","import React, {useCallback, useEffect, useState} from \"react\";\r\nimport Modal from 'react-bootstrap/Modal';\r\nimport {StyledButton} from \"../../../../Component/Kit/Button\";\r\nimport DateConvert from \"../../../../Utility/Services/date-convert\";\r\nimport {GetBankProvider} from \"../../../../Utility/Services/get-bank-provider\";\r\nimport {SeprateNumberWithComma} from \"../../../../Utility/Services/SeprateNumberWithComma\";\r\nimport {HeaderContent, MainContent, PageTitleLayout, WrapperLayout} from \"../../../../Component/Kit/Layout\";\r\nimport ApiClient from \"../../../../Requester/ApiClient\";\r\nimport Urls from \"../../../../Requester/Urls\";\r\nimport {useParams} from \"react-router-dom\";\r\nimport {PaymentStatusService} from \"../../../../Utility/Services/PaymentStatusService\";\r\nimport {Loader} from \"../../../../Component/Shared/Loader\";\r\nimport {toast} from \"react-toastify\";\r\nimport {Formik} from \"formik\";\r\nimport {FormLable, StyledForm} from \"../../../../Component/Kit/Form\";\r\nimport {MyDatePicker} from \"../../../../Component/Shared/DatePicker\";\r\nimport moment from \"moment-jalaali\";\r\nimport * as Yup from \"yup\";\r\nimport BackToPage from \"../../../../Component/Kit/back\";\r\nimport {UserInformationItem, UserInformationWrapper} from \"../../../Users/UserProfile/UserInformation/style\";\r\nimport {PaymentConfirmationModal} from \"../PaymentConfirmationModal\";\r\n\r\n\r\nexport const OnlinePaymentDetail = () => {\r\n const {id} = useParams();\r\n const [convertToOfficialModal, setConvertToOfficialModal] = useState(false);\r\n const [loading, setLoading] = useState(true);\r\n const [onlinePaymentDetail, setOnlinePaymentDetail] = useState({});\r\n const [onlinePaymentTitles, setOnlinePaymentTitles] = useState({\r\n userName: \"نام کاربری\",\r\n payerFullName: \"نام پرداخت کننده\",\r\n description: \"توضیحات\",\r\n statusName: \"وضعیت پرداختی\",\r\n isOnlineName: 'روش پرداخت',\r\n bankName: \"نام بانک\",\r\n paidAt: \"تاریخ پرداخت\",\r\n count: \"تعداد\",\r\n basePriceString: \"قیمت پایه\",\r\n netPriceString: \"قیمت خام\",\r\n discountPriceString: \"تخفیف\",\r\n fifteenRemarkPriceString: \"لایحه 15\",\r\n vatPrice: \"مالیات بر ارزش افزوده (9 درصد)\",\r\n finalPrice: \"مبلغ کل\",\r\n createdAt: \"تاریخ ثبت\",\r\n trackingNumber: \"شناسه پرداخت\",\r\n isOfficial: \"نوع پرداخت\",\r\n });\r\n\r\n\r\n\r\n const formatPrice = (value) => `${SeprateNumberWithComma(value)} ریال`;\r\n\r\n const formatDateString = (date) => DateConvert(date);\r\n\r\n const formatStatus = (status) => PaymentStatusService(status);\r\n\r\n const formatIsOnline = (isOnline) => (isOnline ? 'آنلاین' : 'آفلاین');\r\n\r\n const formatIsOfficial = (isOfficial, canBeChangeToOfficial) => {\r\n if (isOfficial) {\r\n return 'رسمی';\r\n } else {\r\n return 'غیر رسمی'\r\n }\r\n };\r\n\r\n const formatBankName = (bankId) => GetBankProvider(bankId);\r\n\r\n const formatPriceString = (value) => (value ? formatPrice(value) : '-');\r\n\r\n const formatVatPrice = (vatPrice) => `${SeprateNumberWithComma(vatPrice)} ریال`;\r\n\r\n const formatData = (data) => {\r\n const formattedData = { ...data };\r\n Object.entries(formattedData).forEach(([item, value]) => {\r\n switch (item) {\r\n case 'finalPrice':\r\n formattedData.finalPrice = formatPrice(data.finalPrice);\r\n break;\r\n case 'createdAt':\r\n formattedData.createdAt = formatDateString(data.createdAt);\r\n break;\r\n case 'status':\r\n formattedData.statusName = formatStatus(data.status);\r\n break;\r\n case 'paidAt':\r\n formattedData.paidAt = formatDateString(data.paidAt);\r\n break;\r\n case 'isOnline':\r\n formattedData.isOnlineName = formatIsOnline(data.isOnline);\r\n break;\r\n case 'isOfficial':\r\n formattedData.isOfficial = formatIsOfficial(data.isOfficial, data.canBeChangeToOfficial);\r\n break;\r\n case 'bankId':\r\n formattedData.bankName = formatBankName(data.bankId);\r\n break;\r\n case 'netPrice':\r\n formattedData.netPriceString = formatPrice(value);\r\n break;\r\n case 'discountPrice':\r\n formattedData.discountPriceString = formatPrice(value);\r\n break;\r\n case 'fifteenRemarkPrice':\r\n formattedData.fifteenRemarkPriceString = formatPriceString(data.fifteenRemarkPrice);\r\n break;\r\n case 'basePrice':\r\n formattedData.basePriceString = formatPrice(value);\r\n break;\r\n case 'vatPrice':\r\n formattedData.vatPrice = formatVatPrice(data.vatPrice);\r\n break;\r\n case 'vatPercent':\r\n setOnlinePaymentTitles({\r\n ...onlinePaymentTitles,\r\n vatPrice: `مالیات بر ارزش افزوده (${formattedData.vatPercent} درصد)`\r\n })\r\n break;\r\n default:\r\n formattedData[item] = value;\r\n break;\r\n }\r\n });\r\n\r\n return formattedData;\r\n };\r\n \r\n\r\n const getData = useCallback(() => {\r\n ApiClient.Get(Urls.onlinePaymentById(id))\r\n .then(res => {\r\n const data = formatData(res.result);\r\n setOnlinePaymentDetail(data);\r\n setLoading(false);\r\n })\r\n }, [id]);\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [getData]);\r\n\r\n\r\n const openConvertToOfficialModal = () => {\r\n if (!onlinePaymentDetail.canGiveOfficialAccess) {\r\n ApiClient.Delete(Urls.GiveOfficialAccess(onlinePaymentDetail.id)).then(\r\n () => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n setTimeout(() => {\r\n getData();\r\n }, 100)\r\n }\r\n )\r\n } else {\r\n setConvertToOfficialModal(true);\r\n }\r\n\r\n }\r\n\r\n const PaymentAccessButton = ({ onClick, canGiveOfficialAccess, canBeChangeToOfficial }) => {\r\n if (!canGiveOfficialAccess && !canBeChangeToOfficial) {\r\n return null;\r\n }\r\n\r\n const buttonText = canGiveOfficialAccess ? 'دسترسی پرداخت ارزش افزوده' : 'اخذ دسترسی پرداخت ارزش افزوده';\r\n\r\n return (\r\n \r\n {buttonText}\r\n \r\n );\r\n };\r\n\r\n const handleClose = (event) => {\r\n if (event) setConvertToOfficialModal(false);\r\n }\r\n\r\n return (<>\r\n \r\n \r\n
    \r\n {!loading ? (\r\n openConvertToOfficialModal()}\r\n canGiveOfficialAccess={onlinePaymentDetail.canGiveOfficialAccess}\r\n canBeChangeToOfficial={onlinePaymentDetail.canBeChangeToOfficial}\r\n />\r\n ) : null}\r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    جزئیات پرداخت
    \r\n در این بخش جزئیات پرداخت کاربر قابل مشاهده است.\r\n
    \r\n\r\n {\r\n loading ?\r\n \r\n :\r\n <>\r\n
    \r\n \r\n {Object.entries(onlinePaymentTitles).map(([key, value]) => (\r\n \r\n ))}\r\n \r\n
    \r\n \r\n }\r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n\r\n {convertToOfficialModal &&\r\n\r\n {\r\n handleClose(true)\r\n }}>\r\n \r\n فعال سازی پرداخت ارزش افزوده\r\n {\r\n handleClose(true)\r\n }} className=\"close-btn fa fa-xmark\"/>\r\n \r\n \r\n\r\n {\r\n let data = {\r\n expireAt: values.publicLineDate\r\n }\r\n\r\n if (onlinePaymentDetail.canGiveOfficialAccess) {\r\n ApiClient.Post(Urls.GiveOfficialAccess(onlinePaymentDetail.id), JSON.stringify(data)).then(\r\n () => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n setConvertToOfficialModal(!convertToOfficialModal)\r\n formikHelpers.resetForm();\r\n formikHelpers.setSubmitting(false);\r\n getData()\r\n }\r\n )\r\n } else {\r\n\r\n }\r\n\r\n\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n فعال تا تاریخ\r\n {\r\n formik.setFieldValue(\"publicLineDate\", event.baseFormat);\r\n }}\r\n min={moment().subtract(0, 'days')}\r\n // max={moment().subtract(18, 'years')}\r\n name=\"publicLineDate\"\r\n error={\r\n formik.errors.publicLineDate !== undefined\r\n ? formik.errors.publicLineDate\r\n : false\r\n }\r\n />\r\n\r\n
    \r\n setConvertToOfficialModal(false)}\r\n\r\n >\r\n بستن\r\n \r\n \r\n ثبت\r\n \r\n
    \r\n\r\n \r\n )}\r\n \r\n\r\n
    \r\n\r\n
    \r\n\r\n }\r\n )\r\n}\r\n","import React, { useCallback, useEffect, useState } from 'react'\r\nimport { useHistory, useLocation } from 'react-router-dom';\r\nimport { StyledButton } from '../../../Component/Kit/Button';\r\nimport { HeaderContent, MainContent, PageTitleLayout, WrapperLayout } from '../../../Component/Kit/Layout';\r\nimport { Loader } from '../../../Component/Shared/Loader';\r\nimport Table from '../../../Component/Shared/Table/Table';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport { ConvertQueryString } from '../../../Utility/Services/convert-query-string';\r\nimport DateConvert from '../../../Utility/Services/date-convert';\r\nimport {toast} from \"react-toastify\";\r\n\r\nexport const CampaignList = () => {\r\n const location = useLocation();\r\n const history = useHistory();\r\n const [CampaignList, setCampaignList] = useState({});\r\n const [loading, setLoading] = useState(true);\r\n\r\n const tableConfig = {\r\n header: {\r\n name: \"نام کمپین\",\r\n code: \"کد\",\r\n startAt: \"تاریخ شروع\",\r\n endAt: \"تاریخ پایان\",\r\n isActive: 'وضعیت',\r\n createdAt: \"تاریخ ایجاد کمپین\",\r\n modifiedAt: 'تاریخ ویرایش',\r\n },\r\n actions: {\r\n view: {\r\n icon: \"fa fa-eye\",\r\n },\r\n edit: {\r\n icon: \"fa fa-edit\",\r\n },\r\n copy: {\r\n icon: \"far fa-copy\",\r\n },\r\n },\r\n mode: ['filter', 'search'],\r\n filters: ['datePickerFilter', 'isActiveCampaign'],\r\n };\r\n\r\n function tableActions(item) {\r\n switch (item.actionName) {\r\n case 'edit':\r\n history.push(`campaigns/${item.data.id}/edit`);\r\n break;\r\n case 'view':\r\n history.push(`campaigns/${item.data.id}/members`);\r\n break;\r\n case 'copy':\r\n toast.info(`${item.data.code} کپی شد.`);\r\n navigator.clipboard.writeText(item.data.code)\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n const getCampaignList = useCallback(() => {\r\n ApiClient.Get(Urls.advertisingCampaign(), ConvertQueryString(location.search))\r\n .then((res) => {\r\n let dataItem = res.result;\r\n dataItem.items.map((m, i) => {\r\n m.createdAt = DateConvert(m.createdAt);\r\n m.endAt = DateConvert(m.endAt);\r\n m.startAt = DateConvert(m.startAt);\r\n m.modifiedAt = DateConvert(m.modifiedAt);\r\n m.isActive = m.isActive\r\n ? ``\r\n : ``;\r\n return m;\r\n });\r\n setCampaignList(dataItem);\r\n setLoading(false);\r\n\r\n })\r\n }, [location.search])\r\n\r\n useEffect(() => {\r\n getCampaignList();\r\n }, [getCampaignList]);\r\n\r\n return (\r\n \r\n \r\n
    \r\n\r\n history.push('/campaigns/add')}\r\n >\r\n ایجاد کمپین\r\n \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    لیست کمپین ها
    \r\n در این بخش لیست همه کمپین ها قابل مشاهده است.\r\n
    \r\n
    \r\n {loading === true\r\n ?\r\n \r\n :\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default CampaignList;","import React, {useCallback, useEffect, useState} from 'react'\r\nimport {useHistory, useLocation, useParams} from 'react-router-dom';\r\nimport {HeaderContent, MainContent, PageTitleLayout, WrapperLayout} from '../../../Component/Kit/Layout';\r\nimport {Loader} from '../../../Component/Shared/Loader';\r\nimport Table from '../../../Component/Shared/Table/Table';\r\nimport ApiClient from '../../../Requester/ApiClient';\r\nimport Urls from '../../../Requester/Urls';\r\nimport {ConvertQueryString} from '../../../Utility/Services/convert-query-string';\r\nimport DateConvert from '../../../Utility/Services/date-convert';\r\nimport BackToPage from \"../../../Component/Kit/back\";\r\nimport {UserInformationItem, UserInformationWrapper} from \"../../Users/UserProfile/UserInformation/style\";\r\nimport {toast} from \"react-toastify\";\r\n\r\nexport const CampaignMembers = () => {\r\n const {id} = useParams();\r\n\r\n const location = useLocation();\r\n const history = useHistory();\r\n const [Campaign, setCampaign] = useState({});\r\n const [membersList, setMembersList] = useState(null);\r\n const [loading, setLoading] = useState(true);\r\n\r\n const tableConfig = {\r\n header: {\r\n mobile: \"موبایل\",\r\n username: \"نام کاربری\",\r\n campaignName: \"نام کمپین\",\r\n accountType: 'نوع حساب',\r\n createdAt: \"تاریخ ایجاد\",\r\n modifiedAt: 'تاریخ ویرایش',\r\n },\r\n\r\n mode: ['filter', 'search'],\r\n filters: ['datePickerFilter'],\r\n };\r\n\r\n const campaignTitles = {\r\n name: \"نام کمپین\",\r\n code: \"کد کمپین\",\r\n startAt: \"تاریخ شروع\",\r\n endAt: \"تاریخ پایان\",\r\n isActive: \"وضعیت کمپین\",\r\n officialPaymentStatus: \"نوع پرداخت\"\r\n }\r\n\r\n const convertOfficial = (value) => {\r\n const officialPaymentType = [\r\n {\r\n name: \"رسمی\",\r\n value: true\r\n },\r\n {\r\n name: \"غیر رسمی\",\r\n value: false\r\n },\r\n {\r\n name: \"رسمی - غیر رسمی\",\r\n value: null\r\n },\r\n ]\r\n\r\n return officialPaymentType.find(i => i.value === value)?.name\r\n }\r\n\r\n function tableActions(item) {\r\n switch (item.actionName) {\r\n case 'edit':\r\n history.push(`campaigns/${item.data.id}`);\r\n break;\r\n case 'view':\r\n history.push(`campaigns/${item.data.id}/members`);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n const copyItem = (key, value) => {\r\n if ([\"name\", \"code\"].includes(key)) {\r\n toast.info(` ${value} کپی شد.`);\r\n navigator.clipboard.writeText(value)\r\n }\r\n }\r\n\r\n const AccountTypeConvert = (guestId, userId) => {\r\n switch (true) {\r\n case userId !== null:\r\n return \"کاربر\";\r\n\r\n case userId === null && guestId !== null:\r\n return \"مهمان\";\r\n\r\n default:\r\n return \"----\";\r\n }\r\n }\r\n\r\n\r\n const getCampaign = useCallback(() => {\r\n if (id) {\r\n ApiClient.Get(Urls.advertisingCampaignById(id))\r\n .then((res) => {\r\n const data = res.result;\r\n data.isActive = data.isActive ? \"فعال\" : \"غیر فعال\"\r\n data.startAt = DateConvert(data.startAt);\r\n data.endAt = DateConvert(data.endAt);\r\n data.officialPaymentStatus = convertOfficial(data.officialPaymentStatus)\r\n setCampaign(data);\r\n })\r\n }\r\n }, [id])\r\n\r\n\r\n const getMembersList = useCallback(() => {\r\n if (id) {\r\n ApiClient.Get(Urls.advertisingCampaignMembersById(id), ConvertQueryString(location.search))\r\n .then((res) => {\r\n let dataItem = res.result;\r\n dataItem.items.map((m, i) => {\r\n m.createdAt = DateConvert(m.createdAt);\r\n m.modifiedAt = DateConvert(m.modifiedAt);\r\n m.accountType = AccountTypeConvert(m.guestId, m.userId);\r\n return m;\r\n });\r\n setMembersList(dataItem);\r\n setLoading(false);\r\n\r\n })\r\n } else {\r\n ApiClient.Get(Urls.advertisingCampaignMembers(), ConvertQueryString(location.search))\r\n .then((res) => {\r\n let dataItem = res.result;\r\n dataItem.items.map((m, i) => {\r\n m.createdAt = DateConvert(m.createdAt);\r\n m.modifiedAt = DateConvert(m.modifiedAt);\r\n m.accountType = AccountTypeConvert(m.guestId, m.userId);\r\n return m;\r\n });\r\n setMembersList(dataItem);\r\n setLoading(false);\r\n\r\n })\r\n }\r\n\r\n }, [id, location.search])\r\n\r\n useEffect(() => {\r\n getCampaign();\r\n getMembersList();\r\n }, [getMembersList, getCampaign]);\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {\r\n id &&\r\n
    \r\n \r\n {Object.entries(campaignTitles).map(([key, value]) => (\r\n copyItem(key, Campaign[key])} label={value}\r\n dataItem={Campaign[key]} key={key}/>\r\n\r\n ))}\r\n \r\n
    \r\n }\r\n
    \r\n \r\n
    \r\n {\r\n id ?\r\n 'لیست اعضای کمپین'\r\n :\r\n 'لیست اعضای کمپین ها'\r\n }\r\n
    \r\n در این بخش لیست اعضای کمپین قابل مشاهده است.\r\n
    \r\n
    \r\n {loading === true\r\n ?\r\n \r\n :\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default CampaignMembers;","import React from 'react'\r\nimport {HeaderContent, MainContent, PageTitleLayout, WrapperLayout} from '../../../Component/Kit/Layout';\r\nimport BackToPage from \"../../../Component/Kit/back\";\r\nimport {StyledForm, StyledInput, StyledSelect} from \"../../../Component/Kit/Form\";\r\nimport {StyledButton} from \"../../../Component/Kit/Button\";\r\nimport {Formik} from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport moment from \"moment-jalaali\";\r\nimport {MyRangePicker} from \"../../../Component/Shared/DatePicker\";\r\nimport {Alert} from \"react-bootstrap\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport {toast} from \"react-toastify\";\r\nimport {useHistory} from \"react-router-dom\";\r\n\r\nexport const AddCampaign = () => {\r\n const history = useHistory();\r\n const options = [\r\n {\r\n name: \"رسمی\",\r\n value: 'true'\r\n },\r\n {\r\n name: \"غیر رسمی\",\r\n value: 'false'\r\n },\r\n {\r\n name: \"رسمی - غیر رسمی\",\r\n value: 'null'\r\n },\r\n ]\r\n const conversionMap = {\r\n \"true\": true,\r\n \"false\": false,\r\n \"null\": null\r\n };\r\n\r\n const AddCampaign = (values) => {\r\n if (\"officialPaymentStatus\" in values) {\r\n values.officialPaymentStatus = conversionMap[values.officialPaymentStatus]\r\n }\r\n\r\n ApiClient.Post(Urls.advertisingCampaign(), JSON.stringify(values))\r\n .then((res) => {\r\n toast.success(\"تغییرات با موفقیت ثبت شد.\");\r\n history.push(`/campaigns`);\r\n })\r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    ایجاد کمپین تبلیغاتی
    \r\n \r\n

    \r\n - در صورت خالی بودن کد کمپین، کد به صورت تصادفی انتخاب می‌شود.\r\n

    \r\n

    \r\n - تاریخ شروع و پایان کمپین می‌توانند خالی باشد.\r\n

    \r\n
    \r\n
    \r\n <>\r\n
    \r\n <>\r\n\r\n {\r\n AddCampaign(values);\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n\r\n
    \r\n\r\n formik.setFieldValue(\"name\", e.target.value)}\r\n />\r\n\r\n formik.setFieldValue(\"code\", e.target.value)}\r\n />\r\n\r\n
    \r\n\r\n {\r\n formik.setFieldValue(\"startAt\", event.fromDate?.baseFormat)\r\n formik.setFieldValue(\"endAt\", event.toDate?.baseFormat)\r\n }}\r\n min={moment()}\r\n fromError={formik.errors.startAt !== undefined\r\n ? formik.errors.startAt\r\n : false}\r\n toError={formik.errors.endAt !== undefined\r\n ? formik.errors.endAt\r\n : false}\r\n />\r\n\r\n formik.setFieldValue(\"officialPaymentStatus\", e.target.value)}\r\n />\r\n\r\n\r\n
    \r\n\r\n \r\n ثبت\r\n \r\n
    \r\n \r\n )}\r\n \r\n\r\n \r\n
    \r\n \r\n\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default AddCampaign;","import React, {useCallback, useEffect, useState} from 'react'\r\nimport {useHistory, useParams} from 'react-router-dom';\r\nimport {HeaderContent, MainContent, PageTitleLayout, WrapperLayout} from '../../../Component/Kit/Layout';\r\nimport {Loader} from '../../../Component/Shared/Loader';\r\nimport BackToPage from \"../../../Component/Kit/back\";\r\nimport {FormLable, StyledForm, StyledInput, StyledRadioBtn, StyledSelect} from \"../../../Component/Kit/Form\";\r\nimport {StyledButton} from \"../../../Component/Kit/Button\";\r\nimport {Formik} from \"formik\";\r\nimport * as Yup from \"yup\";\r\nimport {MyDatePicker} from \"../../../Component/Shared/DatePicker\";\r\nimport {Alert} from \"react-bootstrap\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport {toast} from \"react-toastify\";\r\nimport campaigns from \"../index\";\r\n\r\nexport const EditCampaign = () => {\r\n const {id} = useParams();\r\n const history = useHistory();\r\n const [Campaign, setCampaign] = useState({});\r\n const [loading, setLoading] = useState(true);\r\n const conversionMap = {\r\n \"true\": true,\r\n \"false\": false,\r\n \"null\": null\r\n };\r\n const options = [\r\n {\r\n name: \"رسمی\",\r\n value: 'true'\r\n },\r\n {\r\n name: \"غیر رسمی\",\r\n value: 'false'\r\n },\r\n {\r\n name: \"رسمی - غیر رسمی\",\r\n value: 'null'\r\n },\r\n ]\r\n\r\n\r\n const EditCampaign = (values) => {\r\n setLoading(true);\r\n if (\"isActive\" in values) {\r\n values.isActive = values.isActive === \"active\";\r\n }\r\n if (\"officialPaymentStatus\" in values) {\r\n values.officialPaymentStatus = conversionMap[values.officialPaymentStatus]\r\n }\r\n\r\n\r\n ApiClient.Put(Urls.advertisingCampaignById(id), JSON.stringify(values))\r\n .then((res) => {\r\n toast.success(\"تغییرات با موفقیت ثبت شد.\");\r\n history.push(`/campaigns`);\r\n }).catch(() => {\r\n setLoading(false);\r\n })\r\n }\r\n\r\n\r\n const getCampaign = useCallback(() => {\r\n ApiClient.Get(Urls.advertisingCampaignById(id))\r\n .then((res) => {\r\n const data = res.result;\r\n data['officialPaymentStatus'] = String(data['officialPaymentStatus'])\r\n setCampaign(data);\r\n setLoading(false);\r\n })\r\n }, [id])\r\n\r\n useEffect(() => {\r\n getCampaign();\r\n }, [getCampaign]);\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    ویرایش کمپین تبلیغاتی
    \r\n \r\n

    \r\n - در صورت خالی بودن کد کمپین، کد به صورت تصادفی انتخاب می‌شود.\r\n

    \r\n

    \r\n - تاریخ شروع و پایان کمپین می‌توانند خالی باشد.\r\n

    \r\n
    \r\n
    \r\n
    \r\n {loading === true && campaigns !== {}\r\n ?\r\n \r\n :\r\n <>\r\n\r\n {\r\n EditCampaign(values);\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n\r\n
    \r\n\r\n formik.setFieldValue(\"name\", e.target.value)}\r\n />\r\n\r\n formik.setFieldValue(\"code\", e.target.value)}\r\n />\r\n\r\n
    \r\n \r\n از تاریخ\r\n \r\n {\r\n formik.setFieldValue(\r\n \"startAt\",\r\n event.baseFormat\r\n )\r\n }}\r\n name=\"startAt\"\r\n error={\r\n formik.errors.startAt !== undefined\r\n ? formik.errors.startAt\r\n : false\r\n }\r\n />\r\n
    \r\n\r\n
    \r\n \r\n تا تاریخ\r\n \r\n {\r\n formik.setFieldValue(\r\n \"endAt\",\r\n event.baseFormat\r\n )\r\n }}\r\n name=\"endAt\"\r\n error={\r\n formik.errors.endAt !== undefined\r\n ? formik.errors.endAt\r\n : false\r\n }\r\n />\r\n
    \r\n\r\n formik.setFieldValue(\"officialPaymentStatus\", e.target.value)}\r\n />\r\n\r\n
    \r\n\r\n
    \r\n \r\n \r\n formik.setFieldValue(\"isActive\", \"active\")\r\n }/>\r\n \r\n formik.setFieldValue(\"isActive\", 'inactive')\r\n }/>\r\n\r\n
    \r\n\r\n\r\n
    \r\n\r\n 0}\r\n btnStyle='greenBtn'\r\n type=\"submit\"\r\n >\r\n ثبت\r\n \r\n
    \r\n \r\n )}\r\n \r\n\r\n \r\n }\r\n
    \r\n\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default EditCampaign;","import React, {useEffect} from 'react';\r\nimport {Route, Switch, useHistory, useLocation} from \"react-router-dom\";\r\nimport CampaignList from \"./List\";\r\nimport CampaignMembers from \"./Members\";\r\nimport AddCampaign from \"./Add\";\r\nimport EditCampaign from \"./Edit\";\r\n\r\nconst CampaignsPage = ({match}) => {\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n if (location.pathname === `${match.url}`) {\r\n history.push(`${match.url.replace(/\\/$/, '')}`);\r\n }\r\n }, [history, location.pathname, match.url])\r\n\r\n return (\r\n <>\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n )\r\n}\r\n\r\nexport default CampaignsPage\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {useLocation} from \"react-router-dom\";\r\nimport Modal from \"react-bootstrap/Modal\";\r\nimport {toast} from \"react-toastify\";\r\nimport Swal from \"sweetalert2\";\r\nimport * as Yup from \"yup\";\r\nimport moment from \"moment-jalaali\";\r\nimport {Formik} from \"formik\";\r\n\r\n\r\nimport Urls from \"../../../Requester/Urls\";\r\nimport ApiClient from \"../../../Requester/ApiClient\";\r\nimport {ConvertQueryString} from \"../../../Utility/Services/convert-query-string\";\r\nimport {MainContent, PageTitleLayout} from \"../../../Component/Kit/Layout\";\r\nimport Table from \"../../../Component/Shared/Table/Table\";\r\nimport {StyledButton} from \"../../../Component/Kit/Button\";\r\nimport DateConvert from \"../../../Utility/Services/date-convert\";\r\nimport {FormLable, StyledForm} from \"../../../Component/Kit/Form\";\r\nimport {MyDatePicker} from \"../../../Component/Shared/DatePicker\";\r\n\r\nfunction AccessPublic() {\r\n const location = useLocation();\r\n const [isModal, setIsModal] = useState(false);\r\n const [userId, setUserId] = useState();\r\n const [usersPublicLines, setUsersPublicLines] = useState([]);\r\n\r\n const tableConfig = {\r\n header: {\r\n userName: \"نام کاربری\",\r\n isExpiredIcon: \"وضعیت\",\r\n createdAt: \"تاریخ ایجاد\",\r\n expireAt: \"تاریخ انقضا\",\r\n },\r\n actions: {\r\n edit: {\r\n icon: \"fa fa-edit\",\r\n condition: (data) => {\r\n return data.isExpired === false\r\n }\r\n },\r\n delete: {\r\n icon: \"fa fa-trash\",\r\n condition: (data) => {\r\n return data.isExpired === false\r\n }\r\n }\r\n },\r\n mode: [\"filter\", \"search\"],\r\n filters: [\"isExpiredLine\"],\r\n };\r\n useEffect(() => {\r\n getUsersPublicLineAccess()\r\n }, [location.search]);\r\n\r\n const getUsersPublicLineAccess = () => {\r\n let params = ConvertQueryString(location.search);\r\n if ('isExpiredLine' in params) {\r\n params['isExpired'] = params.isExpiredLine\r\n delete params.isExpiredLine\r\n }\r\n\r\n ApiClient.Get(Urls.usersPublicLineAccess(), params).then((res) => {\r\n let data = res.result;\r\n data.items.map((m) => {\r\n m.createdAt = DateConvert(m.createdAt);\r\n m.expireAt = DateConvert(m.expireAt);\r\n m.isExpiredIcon = !m.isExpired\r\n ? ``\r\n : ``;\r\n\r\n return m\r\n });\r\n setUsersPublicLines(data);\r\n });\r\n\r\n }\r\n\r\n\r\n function tableActions(item) {\r\n switch (item.actionName) {\r\n case 'edit':\r\n setIsModal(true);\r\n setUserId(item.data.userId);\r\n break;\r\n case 'delete':\r\n deletePublicLine(item.data.userId);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n\r\n const deletePublicLine = (userId) => {\r\n Swal.fire({\r\n text: `آیا از حذف دسترسی مطمئن هستید ؟`,\r\n title: \"احتیاط کن !\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonColor: \"#3085d6\",\r\n cancelButtonText: \"انصراف\",\r\n cancelButtonColor: \"#d33\",\r\n confirmButtonText: \"بله، مطمئن هستم\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n ApiClient.Delete(Urls.userPublicLinesActivition(userId)).then(\r\n () => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n getUsersPublicLineAccess()\r\n }\r\n )\r\n }\r\n });\r\n }\r\n\r\n\r\n return (\r\n <>\r\n \r\n \r\n
    تخصیص خطوط ویژه
    \r\n \r\n تخصیص خطوط ویژه سامانه در این بخش مدیریت می شود.\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n {\r\n setIsModal(false)\r\n }}>\r\n \r\n ویرایش دسترسی خطوط ویژه\r\n {\r\n setIsModal(false)\r\n }} className=\"close-btn fa fa-xmark\"/>\r\n \r\n \r\n {\r\n\r\n ApiClient.Patch(Urls.usersPublicLineAccess(userId), values.publicLineDate).then(\r\n () => {\r\n toast.success('تغییرات با موفقیت ثبت شد.');\r\n formikHelpers.resetForm();\r\n setIsModal(false)\r\n getUsersPublicLineAccess()\r\n }\r\n ).finally(() => {\r\n formikHelpers.setSubmitting(false);\r\n })\r\n\r\n }}\r\n >\r\n {(formik) => (\r\n \r\n فعال تا تاریخ\r\n {\r\n formik.setFieldValue(\"publicLineDate\", event.baseFormat);\r\n }}\r\n min={moment().subtract(0, 'days')}\r\n max={moment().add(1, 'jYear')}\r\n name=\"publicLineDate\"\r\n error={\r\n formik.errors.publicLineDate !== undefined\r\n ? formik.errors.publicLineDate\r\n : false\r\n }\r\n />\r\n\r\n
    \r\n setIsModal(false)}\r\n\r\n >\r\n بستن\r\n \r\n \r\n ثبت\r\n \r\n\r\n\r\n
    \r\n\r\n\r\n \r\n )}\r\n \r\n\r\n\r\n
    \r\n
    \r\n\r\n \r\n );\r\n}\r\n\r\nexport default AccessPublic;\r\n","import React, { useEffect, useState } from 'react'\r\nimport { useLocation } from 'react-router-dom'\r\n\r\n\r\nimport { MainContent, PageTitleLayout, WrapperLayout } from '../../../Component/Kit/Layout'\r\nimport Table from '../../../Component/Shared/Table/Table'\r\nimport ApiClient from '../../../Requester/ApiClient'\r\nimport Urls from '../../../Requester/Urls'\r\nimport { ConvertQueryString } from '../../../Utility/Services/convert-query-string'\r\nimport DateConvert from '../../../Utility/Services/date-convert'\r\n\r\nexport const SepidarLogs = () => {\r\n const [logs, setLogs] = useState({});\r\n const location = useLocation();\r\n\r\n const tableConfig = {\r\n header: {\r\n customerName: \"نام مشتری\",\r\n invoiceNumber: \"شماره فاکتور\",\r\n description: \"توضیحات\",\r\n createdAt: \"تاریخ و زمان ایجاد\",\r\n },\r\n mode: [\"filter\", \"search\"],\r\n filters: [\"datePickerFilter\"],\r\n }\r\n\r\n useEffect(() => {\r\n ApiClient.Get(Urls.ErrorLogSepidar(), ConvertQueryString(location.search))\r\n .then(res => {\r\n let responseData = res.result;\r\n responseData.items.map((item, i) => {\r\n item.createdAt = DateConvert(item.createdAt);\r\n });\r\n setLogs(responseData);\r\n })\r\n }, [location.search]);\r\n\r\n\r\n const tableActions = (items) => {\r\n }\r\n\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    لیست عملیات های سپیدار
    \r\n در این بخش لیست عملیات های سپیدار قابل مشاهده است.\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n","import React from 'react';\r\nimport { BrowserRouter, Switch } from 'react-router-dom';\r\nimport NoMatch from './Component/Shared/404';\r\nimport PrivateRoute from './Layouts/Container/PrivateRoute';\r\nimport { PublicRoute } from './Layouts/Container/PublicRoute';\r\nimport { AddUserAdmin } from './Page/AdminManagement/AddUserAdmin';\r\nimport { AdminItemDetails } from './Page/AdminManagement/AdminDetails';\r\nimport { AdminsList } from './Page/AdminManagement/AdminsList';\r\nimport Dashboard from './Page/Dashboard';\r\nimport FastSendTemplateList from './Page/FastSendTemplate';\r\nimport SendTower from './Page/SendTower';\r\nimport { AddReturnInvoice } from './Page/Financial/AddReturnInvoice';\r\nimport LendInvoicesList from './Page/Financial/LendInvoicesList';\r\nimport { ManualPaymentsList } from './Page/Financial/ManualPaymentsList';\r\nimport ManualPaymentItem from './Page/Financial/ManualPaymentsList/ManualPaymentItem';\r\nimport { OfficialInvoicesList } from './Page/Financial/OfficialInvoicesList';\r\nimport { OfficialInvoiceItem } from './Page/Financial/OfficialInvoicesList/OfficialInvoiceItem';\r\nimport OnlinePayment from './Page/Financial/OnlinePayment';\r\nimport ForbiddenWordsList from './Page/ForbiddenWord';\r\nimport GuestPage from './Page/Guest/';\r\nimport EditGuest from './Page/Guest/GuestInformation/EditGuest';\r\nimport GuestInformation from './Page/Guest/GuestInformation/index';\r\nimport PendingLines from './Page/Lines/PendingLines';\r\nimport PendingLineDetails from './Page/Lines/PendingLines/pending-line-details';\r\nimport SystemLines from './Page/Lines/System';\r\nimport UserLines from './Page/Lines/UserLines';\r\nimport Login from './Page/Login';\r\nimport NotificationsList from './Page/Notifications';\r\nimport AddGlobalNotification from './Page/Notifications/add-notification';\r\nimport PendingSMSDetails from './Page/PendingSMS/pending-sms-details';\r\nimport AdminProfile from './Page/Profile';\r\nimport SettingList from './Page/Settings';\r\nimport TicketAnswerTemplates from './Page/TicketAnswerTemplates';\r\nimport { AddTemplate } from './Page/TicketAnswerTemplates/AddTemplate';\r\nimport { EditTicketAnswerTemplate } from './Page/TicketAnswerTemplates/EditTemplate';\r\nimport Tickets from './Page/Tickets';\r\nimport { TicketDetail } from './Page/Tickets/TicketDetail';\r\nimport TicketComments from './Page/Tickets/TicketComments';\r\nimport UserPage from './Page/Users/index';\r\nimport UserInfo from './Page/Users/user-info';\r\nimport UserTransactions from './Page/Users/UserFinancial/Transactions';\r\nimport AddTicket from './Page/Users/UserTicket/add-ticket';\r\nimport WhiteUsers from './Page/WhiteUsers';\r\nimport { BlackList } from './Page/Blacklist';\r\nimport AdminActivityLogs from './Page/AdminManagement/AdminActivityLogs/index';\r\nimport { DiscountCodeList } from \"./Page/DiscountCode/DiscountCodeList\";\r\nimport EditUserProfile from \"./Page/Users/UserProfile/EditUserProfile\";\r\nimport SaleCooperationTransaction from \"./Page/SaleCooperation/Transaction\";\r\nimport SaleCooperationSettlement from \"./Page/SaleCooperation/Settlement\";\r\nimport { DiscountCodeLog } from \"./Page/DiscountCode/DiscountCodeLog\";\r\nimport PendingSmsPages from \"./Page/PendingSMS/pending-sms-pages\";\r\nimport UserInvoice from \"./Page/Users/UserFinancial/Invoice/Official\";\r\nimport ConvertUserType from './Page/Users/UserProfile/ConvertUserType';\r\nimport ProvidersCreditList from './Page/ProvidersCredit/ProvidersCreditList';\r\nimport OldPanelOfficialInvoiceItem from \"./Page/Financial/OfficialInvoicesList/OldPanelOfficialInvoiceItem\";\r\nimport CreditPackageList from './Page/CreditPackage/CreditPackageList';\r\nimport ModifyCreditPackageItem from './Page/CreditPackage/ModifyCreditPackageItem';\r\nimport Suspended from \"./Page/Suspended\";\r\nimport UserFeedback from './Page/UserFeedback';\r\nimport { PlansList } from './Page/Plans/PlansList';\r\nimport PlanItemDetail from './Page/Plans/PlanItemDetail';\r\nimport PlanFree from \"./Page/Plans/PlanFree\";\r\nimport SingleRepeatVerifySMs from \"./Page/PendingSMS/Single-Repeat-verify\";\r\nimport DedicatedBasePrice from './Page/BasePrice/DedicatedBasePrice';\r\nimport PlansLines from './Page/Lines/PlansLines';\r\nimport ModifyDiscountCode from './Page/DiscountCode/ModifyDiscountCode';\r\nimport ProvidersState from \"./Page/ProvidersCredit/providerState\";\r\nimport { UsersPlan } from './Page/Plans/UsersPlan';\r\nimport PublicLines from \"./Page/Lines/Public\";\r\nimport ProviderNotification from \"./Page/ProvidersCredit/providerNotification\";\r\nimport {SendTowerSingle} from \"./Page/SendTower/single\";\r\nimport AutoAssignmentTicket from \"./Page/Users/UserTicket/auto-assignment-ticket\";\r\nimport UserServiceLine from \"./Page/Lines/UserServiceLine\";\r\nimport UserServiceLineDetails from \"./Page/Lines/UserServiceLine/Details\";\r\nimport {OnlinePaymentDetail} from \"./Page/Financial/OnlinePayment/Detail\";\r\nimport CampaignsPage from \"./Page/campaigns\";\r\nimport AccessPublic from \"./Page/Lines/AccessPublic\";\r\nimport {SepidarLogs} from \"./Page/Financial/SepidarLogs\";\r\n\r\nconst AppRoute = () => {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n {/* */}\r\n {/* \r\n \r\n */}\r\n {/* TODO Change this */}\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n {/**/}\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default AppRoute;\r\n","class Urls {\r\n base() {\r\n return process?.env?.REACT_APP_API_HOST;\r\n }\r\n\r\n adminApi() {\r\n return `${this.base()}/api/admin`;\r\n }\r\n\r\n OldPanelBase() {\r\n return process?.env?.REACT_APP_OLDPANEL_URL;\r\n }\r\n\r\n MonitoringBase() {\r\n return process?.env?.REACT_APP_MONITORING_URL;\r\n }\r\n\r\n OldPanelBaseUrl() {\r\n return `${this.OldPanelBase()}/api`;\r\n }\r\n\r\n GetMonitoringData() {\r\n return `${this.MonitoringBase()}/api/report`\r\n }\r\n\r\n GetMonitoringProviderStatus() {\r\n return `${this.MonitoringBase()}/api/report/provider-status`\r\n }\r\n\r\n sendSms() {\r\n return `${this.MonitoringBase()}/api/check-message/send`\r\n }\r\n\r\n ProviderNotificationSetting() {\r\n return `${this.MonitoringBase()}/api/notification-setting`\r\n }\r\n\r\n GetAdminActivityLog() {\r\n return `${this.adminApi()}/log`;\r\n }\r\n\r\n refreshToken() {\r\n return `${this.adminApi()}/auth/token`;\r\n }\r\n\r\n adminBootstrapper() {\r\n return `${this.adminApi()}/bootstrapper`;\r\n }\r\n\r\n AdminLogin() {\r\n return `${this.adminApi()}/auth/login`;\r\n }\r\n\r\n GetTicketsList() {\r\n return `${this.adminApi()}/ticket`;\r\n }\r\n\r\n GetTicketByAdmin(ticketId) {\r\n return `${this.adminApi()}/ticket/${ticketId}`;\r\n }\r\n\r\n DeleteTicketByAdmin(ticketId, replyId) {\r\n return `${this.adminApi()}/ticket/${ticketId}/reply/${replyId}`;\r\n }\r\n\r\n AddTicketReplyByAdmin(ticketId) {\r\n return `${this.adminApi()}/ticket/${ticketId}/reply`;\r\n }\r\n\r\n ticketNote(ticketId) {\r\n return `${this.adminApi()}/ticket/${ticketId}/note`;\r\n }\r\n\r\n deleteTicketNote(ticketId, noteId) {\r\n return `${this.adminApi()}/ticket/${ticketId}/note/${noteId}`;\r\n }\r\n\r\n\r\n assignmentTicket(id) {\r\n if (id) {\r\n return `${this.adminApi()}/ticket/assignment-period/${id}`;\r\n } else {\r\n return `${this.adminApi()}/ticket/assignment-period`;\r\n }\r\n }\r\n\r\n\r\n // guest\r\n getAllGuest() {\r\n return `${this.adminApi()}/guest`;\r\n }\r\n\r\n getIcommingCalls(status, id) {\r\n return `${this.adminApi()}/${status}/${id}/incomming-call`;\r\n }\r\n\r\n guest(id) {\r\n return `${this.adminApi()}/guest/${id}`;\r\n }\r\n\r\n modifyGuestNationalCard(id) {\r\n return `${this.adminApi()}/guest/${id}/national-card`;\r\n }\r\n\r\n modifyGuestGazette(id) {\r\n return `${this.adminApi()}/guest/${id}/gazette`;\r\n }\r\n\r\n\r\n getProvince() {\r\n return `${this.adminApi()}/setting/province`;\r\n }\r\n\r\n getCity(id) {\r\n return `${this.adminApi()}/setting/${id}/city`;\r\n }\r\n\r\n guestState(id) {\r\n return `${this.adminApi()}/guest/${id}/state`;\r\n }\r\n\r\n GuestComment(guestId) {\r\n return `${this.adminApi()}/guest/${guestId}/comment`;\r\n }\r\n\r\n transformGuest(id) {\r\n return `${this.adminApi()}/guest/${id}/transform`;\r\n }\r\n\r\n // line\r\n getAllSystemLine() {\r\n return `${this.adminApi()}/line/system`;\r\n }\r\n\r\n getAllUserServiceLine() {\r\n return `${this.adminApi()}/line/service`;\r\n }\r\n\r\n AddServiceLineNote(serviceLineId) {\r\n return `${this.adminApi()}/line/service/${serviceLineId}/note`;\r\n }\r\n\r\n DeleteServiceLineNote(serviceLineId, noteId) {\r\n return `${this.adminApi()}/line/service/${serviceLineId}/note/${noteId}`;\r\n }\r\n\r\n getDetailUserServiceLine(userServiceLineId) {\r\n return `${this.adminApi()}/line/service/${userServiceLineId}`;\r\n }\r\n\r\n acceptFileByAdmin(userServiceLineId, userServiceLineFileId) {\r\n return `${this.adminApi()}/line/service/${userServiceLineId}/file/${userServiceLineFileId}/accept`;\r\n }\r\n\r\n rejectFileByAdmin(userServiceLineId, userServiceLineFileId) {\r\n return `${this.adminApi()}/line/service/${userServiceLineId}/file/${userServiceLineFileId}/reject`;\r\n }\r\n\r\n receiveDocumentsByAdmin(userServiceLineId) {\r\n return `${this.adminApi()}/line/service/${userServiceLineId}/file/original/received`;\r\n }\r\n\r\n publicLines() {\r\n return `${this.adminApi()}/line/public`;\r\n }\r\n\r\n DeletePublicLine(id) {\r\n return `${this.adminApi()}/line/public/${id}`;\r\n }\r\n\r\n userPublicLinesActivition(id) {\r\n return `${this.adminApi()}/user/${id}/line/public-line/access`;\r\n }\r\n\r\n publicSetDefaultLineById(id) {\r\n return `${this.adminApi()}/line/public/${id}/default`;\r\n }\r\n\r\n publicLineActivitionById(id) {\r\n return `${this.adminApi()}/line/public/${id}/active`;\r\n }\r\n\r\n usersPublicLineAccess(userId = null) {\r\n return userId ? `${this.adminApi()}/line/${userId}/public/user-access` : `${this.adminApi()}/line/public/user-access`;\r\n }\r\n\r\n\r\n userLine() {\r\n return `${this.adminApi()}/line/user`;\r\n }\r\n\r\n userLinePrebuy(id) {\r\n return `${this.adminApi()}/line/user/${id}/prebuy`;\r\n }\r\n\r\n deleteUserLinePrebuy(id, prebuyId) {\r\n return `${this.adminApi()}/line/user/${id}/prebuy/${prebuyId}`;\r\n }\r\n\r\n getUserLines() {\r\n return `${this.adminApi()}/line/user/not-pending`;\r\n }\r\n\r\n deleteUserGiftLines(id) {\r\n return `${this.adminApi()}/line/user/not-pending/${id}`;\r\n }\r\n\r\n statusUserLines(id) {\r\n return `${this.adminApi()}/line/user/not-pending/${id}/status`;\r\n }\r\n\r\n removeSystemLine(id) {\r\n return `${this.adminApi()}/line/system/${id}`;\r\n }\r\n\r\n createSystemLine() {\r\n return `${this.adminApi()}/line/system`;\r\n }\r\n\r\n updateSystemLine(id) {\r\n return `${this.adminApi()}/line/system/${id}`;\r\n }\r\n\r\n getPendingLines() {\r\n return `${this.adminApi()}/line/user/pending`;\r\n }\r\n\r\n removePendingLines(id) {\r\n return `${this.adminApi()}/line/user/pending/${id}`;\r\n }\r\n\r\n activePendingLine(id) {\r\n return `${this.adminApi()}/line/user/pending/${id}/number`;\r\n }\r\n\r\n magfaWhoisLog(id) {\r\n return `${this.adminApi()}/line/${id}/whois-log`;\r\n }\r\n\r\n magfaWhoisApply(id) {\r\n return `${this.adminApi()}/line/${id}/magfa-whois`;\r\n }\r\n\r\n // ticket\r\n getUserSendReport(userId) {\r\n return `${this.adminApi()}/user/${userId}/send/excel`;\r\n }\r\n\r\n getUserReceiveReport(userId) {\r\n return `${this.adminApi()}/user/${userId}/receive/excel`;\r\n }\r\n\r\n TicketAnswerTemplates() {\r\n return `${this.adminApi()}/ticket-answer-template`;\r\n }\r\n\r\n ModifyTicketAnswerTemplateById(templateId) {\r\n return `${this.adminApi()}/ticket-answer-template/${templateId}`;\r\n }\r\n\r\n addTicket(id) {\r\n return `${this.adminApi()}/ticket/${id}`;\r\n }\r\n\r\n // users\r\n getUsers() {\r\n return `${this.adminApi()}/user`;\r\n }\r\n\r\n userProfile(id) {\r\n return `${this.adminApi()}/user/${id}/profile`;\r\n }\r\n\r\n userApproveInformation(id) {\r\n return `${this.adminApi()}/user/${id}/pending-requirement`;\r\n }\r\n\r\n modifyUserLegal(id) {\r\n return `${this.adminApi()}/user/${id}/legal-profile`;\r\n }\r\n\r\n modifyUserInvoice(id) {\r\n return `${this.adminApi()}/user/${id}/invoices`;\r\n }\r\n\r\n modifyUserMobile(id) {\r\n return `${this.adminApi()}/user/${id}/verficaion-code`;\r\n }\r\n\r\n modifyUserVerificationCode(id) {\r\n return `${this.adminApi()}/user/${id}/mobile`;\r\n }\r\n\r\n modifyUserNationalCardImage(id) {\r\n return `${this.adminApi()}/user/${id}/national-card`;\r\n }\r\n\r\n modifyUserGazetteImage(id) {\r\n return `${this.adminApi()}/user/${id}/gazette`;\r\n }\r\n\r\n transformUsers(id) {\r\n return `${this.adminApi()}/user/${id}/transform`;\r\n }\r\n\r\n loginAsUser(id) {\r\n return `${this.adminApi()}/user/${id}/login`;\r\n }\r\n\r\n userTicket(id) {\r\n return `${this.adminApi()}/user/${id}/ticket`;\r\n }\r\n\r\n userLines(id) {\r\n return `${this.adminApi()}/user/${id}/line`;\r\n }\r\n\r\n userSuspentionLog(id) {\r\n return `${this.adminApi()}/user/${id}/suspension/log`;\r\n }\r\n\r\n userSuspend(id) {\r\n return `${this.adminApi()}/user/${id}/suspend`;\r\n }\r\n\r\n userUnsuspend(id) {\r\n return `${this.adminApi()}/user/${id}/unsuspend`;\r\n }\r\n\r\n userComments(id) {\r\n return `${this.adminApi()}/user/${id}/comment`;\r\n }\r\n\r\n userCustomNotification(id) {\r\n return `${this.adminApi()}/user/${id}/notification/custom`;\r\n }\r\n\r\n customNotification(id, notificationId) {\r\n return `${this.adminApi()}/user/${id}/notification/custom/${notificationId}`;\r\n }\r\n\r\n userFastSendTemplate(id) {\r\n return `${this.adminApi()}/user/${id}/fast-send-template`;\r\n }\r\n\r\n userTransactions(id) {\r\n return `${this.adminApi()}/user/${id}/credit`;\r\n }\r\n\r\n userPayments(id) {\r\n return `${this.adminApi()}/user/${id}/payment`;\r\n }\r\n\r\n userSendSms(id) {\r\n return `${this.adminApi()}/user/${id}/sms`;\r\n }\r\n\r\n userPaymentSingle(id, paymentId) {\r\n return `${this.adminApi()}/user/${id}/payment/${paymentId}`;\r\n }\r\n\r\n userOfficialInvoice(id) {\r\n return `${this.adminApi()}/user/${id}/invoice`;\r\n }\r\n\r\n userFinancialSettings(id) {\r\n return `${this.adminApi()}/user/${id}/financial-settings`;\r\n }\r\n\r\n dedicatedUserBasePrice(id) {\r\n return `${this.adminApi()}/user/${id}/financial-settings/dedicated-base-price`;\r\n }\r\n\r\n dedicatedLimitationVerifyParamSize(userId) {\r\n return `${this.adminApi()}/user/${userId}/special-allowed-max-param-size`;\r\n }\r\n\r\n //financial\r\n getOnlinePaymentList() {\r\n return `${this.adminApi()}/payment`;\r\n }\r\n\r\n onlinePaymentById(id) {\r\n return `${this.adminApi()}/payment/${id}`;\r\n }\r\n\r\n getExportOnlinePaymentList(type) {\r\n return `${this.adminApi()}/payment/${type}`;\r\n }\r\n\r\n GetPendingManualPayments(id) {\r\n let request = \"\";\r\n id === undefined\r\n ? (request = `${this.adminApi()}/payment/manual/pending`)\r\n : (request = `${this.adminApi()}/payment/manual/pending/${id}`);\r\n return request;\r\n }\r\n\r\n\r\n ErrorLogSepidar(){\r\n return `${this.adminApi()}/registration/error-log/sepidar`;\r\n }\r\n\r\n EditPaymentManual(paymentId){\r\n return `${this.adminApi()}/payment/manual/${paymentId}`;\r\n }\r\n\r\n GetOfficialInvoices(id) {\r\n let request = \"\";\r\n id === undefined\r\n ? (request = `${this.adminApi()}/invoice`)\r\n : (request = `${this.adminApi()}/invoice/${id}`);\r\n return request;\r\n }\r\n\r\n setNumberForInvoice(id, params) {\r\n return `${this.adminApi()}/invoice/${id}/number?isReturn=${params.isReturn}`;\r\n }\r\n\r\n changeInvoiceDetails(id) {\r\n return `${this.adminApi()}/invoice/${id}/detail/change-preview`;\r\n }\r\n\r\n\r\n EditInvoiceDetail(id) {\r\n return `${this.adminApi()}/invoice/${id}/detail/`;\r\n }\r\n\r\n\r\n GiveOfficialAccess(id) {\r\n return `${this.adminApi()}/payment/online/${id}/official/access`;\r\n }\r\n\r\n\r\n GetSepidarLocation() {\r\n return `${this.adminApi()}/location/sepidar`;\r\n }\r\n\r\n GetSepidarInfo(id) {\r\n return `${this.adminApi()}/customer-existence/${id}/sepidar`;\r\n }\r\n\r\n\r\n registerSepidar(id) {\r\n return `${this.adminApi()}/invoice/${id}/sepidar`;\r\n }\r\n\r\n registerSepidarReturnInvoice(id) {\r\n return `${this.adminApi()}/invoice/${id}/return/sepidar`;\r\n }\r\n\r\n GetExportFromOfficialNumberedInvoices(type) {\r\n return `${this.adminApi()}/invoice/numbered/${type}`;\r\n }\r\n\r\n GetUserCreditCount(userId) {\r\n return `${this.adminApi()}/user/${userId}/credit/count`;\r\n }\r\n\r\n AddReturnInvoice(userId, invoiceId) {\r\n return `${this.adminApi()}/user/${userId}/invoice/${invoiceId}/return`;\r\n }\r\n\r\n //pending SMS\r\n\r\n getCountSMS() {\r\n return `${this.adminApi()}/send/count`;\r\n }\r\n\r\n getPendingSMS() {\r\n return `${this.adminApi()}/send/pending`;\r\n }\r\n\r\n getPendingSMSPublicLine() {\r\n return `${this.adminApi()}/send/pending/public-line`;\r\n }\r\n\r\n getFrequentMessage() {\r\n return `${this.adminApi()}/send/frequent-messages`;\r\n }\r\n\r\n setFrequentMessageValidation(id) {\r\n return `${this.adminApi()}/send/frequent-messages/${id}`;\r\n }\r\n\r\n highConsumptionVerify() {\r\n return `${this.adminApi()}/send/high-consumption-web-service-user`;\r\n }\r\n\r\n highConsumptionVerifyPerUser(userId) {\r\n return `${this.adminApi()}/send/high-consumption-web-service-user/${userId}`;\r\n }\r\n\r\n highConsumptionVerifyUserMessages(userId) {\r\n return `${this.adminApi()}/send/high-consumption-web-service-user/${userId}/messages`;\r\n }\r\n\r\n getSingleQueue(id) {\r\n return `${this.adminApi()}/send/pending/${id}`;\r\n }\r\n\r\n editPublicLineById(id) {\r\n return `${this.adminApi()}/send/pending/public-line/${id}/line`;\r\n }\r\n\r\n smartParametricList(id) {\r\n return `${this.adminApi()}/send/pending/smart/${id}/detail`;\r\n }\r\n\r\n // notifications\r\n globalNotifications() {\r\n return `${this.adminApi()}/notification/custom/global`;\r\n }\r\n\r\n globalNotificationSingle(id) {\r\n return `${this.adminApi()}/notification/custom/global/${id}`;\r\n }\r\n\r\n // fast-send template\r\n getFastSendTemplates() {\r\n return `${this.adminApi()}/fast-send-template`;\r\n }\r\n\r\n putFastSendTemplates(id) {\r\n return `${this.adminApi()}/fast-send-template/${id}`;\r\n }\r\n\r\n //Admin Managment\r\n AdminsManagment(id) {\r\n let request = \"\";\r\n id === undefined\r\n ? (request = `${this.adminApi()}/`)\r\n : (request = `${this.adminApi()}/${id}`);\r\n return request;\r\n }\r\n\r\n AdminSummary() {\r\n return `${this.adminApi()}/summary`;\r\n }\r\n\r\n // forbidden words\r\n forbiddenWords() {\r\n return `${this.adminApi()}/forbidden-Word`;\r\n }\r\n\r\n modifyAndDeleteForbiddenWords(id) {\r\n return `${this.adminApi()}/forbidden-Word/${id}`;\r\n }\r\n\r\n ValidationMessage() {\r\n return `${this.adminApi()}/forbidden-word/validate`;\r\n }\r\n\r\n // blacklist keyword\r\n getBlacklistKeyword() {\r\n return `${this.adminApi()}/modules/black-list/key-word`;\r\n }\r\n\r\n createBlacklistKeyword() {\r\n return `${this.adminApi()}/modules/black-list/key-word`;\r\n }\r\n\r\n deleteBlacklistKeyword(id) {\r\n return `${this.adminApi()}/modules/black-list/key-word/${id}`;\r\n }\r\n\r\n setDefaultBlacklistKeyword() {\r\n return `${this.adminApi()}/modules/black-list/key-word/default`;\r\n }\r\n\r\n // settings\r\n getSettingList() {\r\n return `${this.adminApi()}/setting`;\r\n }\r\n\r\n getbankSetting() {\r\n return `${this.adminApi()}/bank`;\r\n }\r\n\r\n contactGroupLimitationCount() {\r\n return `${this.adminApi()}/setting/contact-group-limitation`;\r\n }\r\n\r\n abTestMinimunImportedContacts() {\r\n return `${this.adminApi()}/setting/abtest-contact-limitation`;\r\n }\r\n\r\n calledWebServiceCount() {\r\n return `${this.adminApi()}/setting/called-web-service-count`;\r\n }\r\n\r\n totalSmsInDay() {\r\n return `${this.adminApi()}/setting/total-sms-in-day`;\r\n }\r\n\r\n publicLineCost() {\r\n return `${this.adminApi()}/setting/public-line-cost`;\r\n }\r\n\r\n vatPercent() {\r\n return `${this.adminApi()}/setting/vat-percent`;\r\n }\r\n\r\n towerLimitationConfiguration() {\r\n return `${this.adminApi()}/setting/tower-limitation-configuration`;\r\n }\r\n\r\n publicLineSendLimitations() {\r\n return `${this.adminApi()}/setting/public-line-send-limitations`;\r\n }\r\n\r\n offKeyword() {\r\n return `${this.adminApi()}/setting/off-keyword`;\r\n }\r\n\r\n smsTypeActivation() {\r\n return `${this.adminApi()}/setting/smstype-activation`;\r\n }\r\n\r\n towerOperatorConfiguration() {\r\n return `${this.adminApi()}/setting/tower-operator-configuration`;\r\n }\r\n\r\n\r\n userEventLimitationCount() {\r\n return `${this.adminApi()}/setting/user-event-limitation`;\r\n }\r\n\r\n userTemplateLimitationCount() {\r\n return `${this.adminApi()}/setting/user-template-limitation`;\r\n }\r\n\r\n fastSendTemplateAddLimitation() {\r\n return `${this.adminApi()}/setting/fastsend-template-limitation`;\r\n }\r\n\r\n recipientLimitationCountInPerSendSms() {\r\n return `${this.adminApi()}/setting/recipient-sms-limitation`;\r\n }\r\n\r\n fifteenRemarkCoefficient() {\r\n return `${this.adminApi()}/setting/fifteenremark-coefficient`;\r\n }\r\n\r\n reactionToUserTicket() {\r\n return `${this.adminApi()}/setting/ticket-reaction`;\r\n }\r\n\r\n giftLineActivation() {\r\n return `${this.adminApi()}/setting/giftline-activation`;\r\n }\r\n\r\n linkUrlLimitationInSmsContent() {\r\n return `${this.adminApi()}/setting/sms-linkcheck`;\r\n }\r\n\r\n //campaign\r\n advertisingCampaign() {\r\n return `${this.adminApi()}/advertising-campaign`;\r\n }\r\n\r\n advertisingCampaignById(campaignId) {\r\n return `${this.adminApi()}/advertising-campaign/${campaignId}`;\r\n }\r\n\r\n advertisingCampaignMembers() {\r\n return `${this.adminApi()}/advertising-campaign/members`;\r\n }\r\n\r\n advertisingCampaignMembersById(campaignId) {\r\n return `${this.adminApi()}/advertising-campaign/${campaignId}/members`;\r\n }\r\n\r\n saleCooperationActivation() {\r\n return `${this.adminApi()}/setting/cooperation-activation`;\r\n }\r\n\r\n registerSepidarActivation() {\r\n return `${this.adminApi()}/setting/sepidar-register-receipt-activation`;\r\n }\r\n\r\n publicLineActivation() {\r\n return `${this.adminApi()}/setting/public-line-activation`;\r\n }\r\n\r\n\r\n updateBlackListTypes() {\r\n return `${this.adminApi()}/setting/send-types-necessity`;\r\n }\r\n\r\n updateSendsTypes() {\r\n return `${this.adminApi()}/setting/send-types-limitations`;\r\n }\r\n\r\n\r\n lackOfCreditWarningThreshold() {\r\n return `${this.adminApi()}/setting/lack-of-credit-warning-threshold`;\r\n }\r\n\r\n recipientLimitationCountInPerSendApi() {\r\n return `${this.adminApi()}/setting/recipient-send-in-api-limitation`;\r\n }\r\n\r\n minimumCooperationWithdrawal() {\r\n return `${this.adminApi()}/setting/minimum-cooperation-withdrawal-amount`;\r\n }\r\n\r\n cooperationLineProfit() {\r\n return `${this.adminApi()}/setting/cooperation-line-profit-percent`;\r\n }\r\n\r\n cooperationCreditProfit() {\r\n return `${this.adminApi()}/setting/cooperation-credit-profit-percent`;\r\n }\r\n\r\n\r\n setGlobalCodeReaderDuplicateMessage() {\r\n return `${this.adminApi()}/setting/global-code-reader-duplicate-parameter-message`;\r\n }\r\n\r\n setGlobalCodeReaderWrongMessage() {\r\n return `${this.adminApi()}/setting/global-code-reader-wrong-parameter-message`;\r\n }\r\n\r\n userTagLimitation() {\r\n return `${this.adminApi()}/setting/usertag-limitation`;\r\n }\r\n\r\n //dont use in this version\r\n /* welcomeMessageText() {\r\n return `${this.adminApi()}/setting/welcomeMessageText`;\r\n }\r\n mobileVerificationText() {\r\n return `${this.adminApi()}/setting/mobileVerificationText`;\r\n }\r\n deactivationUserMessageText() {\r\n return `${this.adminApi()}/setting/deactivationUserMessageText`;\r\n }\r\n newTicketIssuedSMSTemplateForAdmin() {\r\n return `${this.adminApi()}/setting/newTicketIssuedSMSTemplateForAdmin`;\r\n }\r\n userSuspensionMessageText() {\r\n return `${this.adminApi()}/setting/userSuspensionMessageText`;\r\n }\r\n fastSendDefaultTemplate() {\r\n return `${this.adminApi()}/setting/fastSendDefaultTemplate`;\r\n }\r\n refuseGuestMessageText() {\r\n return `${this.adminApi()}/setting/refuseGuestMessageText`;\r\n } */\r\n\r\n // giftLine\r\n getGiftLinesCount() {\r\n return `${this.adminApi()}/line/gift/count`;\r\n }\r\n\r\n giftLines() {\r\n return `${this.adminApi()}/line/gift`;\r\n }\r\n\r\n // Profile\r\n ModifyAdminProfileInfo() {\r\n return `${this.adminApi()}/profile`;\r\n }\r\n\r\n ModifyAdminProfileAvatar() {\r\n return `${this.adminApi()}/profile/image`;\r\n }\r\n\r\n ModifyAdminPassword() {\r\n return `${this.adminApi()}/profile/password`;\r\n }\r\n\r\n // Dashboard\r\n GetDashboard() {\r\n return `${this.adminApi()}/dashboard`;\r\n }\r\n\r\n\r\n AddCreditLend() {\r\n return `${this.adminApi()}/lend`;\r\n }\r\n\r\n changeCooperationCreditProfitPercent(id) {\r\n return `${this.adminApi()}/user/${id}/cooperation-credit-profit-percent`;\r\n }\r\n\r\n changeCooperationLineProfitPercent(id) {\r\n return `${this.adminApi()}/user/${id}/cooperation-line-profit-percent`;\r\n }\r\n\r\n creditTransfer(id) {\r\n return `${this.adminApi()}/user/${id}/credit`;\r\n }\r\n\r\n ModifyLendInvoices(id) {\r\n let request = \"\";\r\n id === undefined\r\n ? (request = `${this.adminApi()}/lend`)\r\n : (request = `${this.adminApi()}/lend/${id}`);\r\n return request;\r\n }\r\n\r\n GetCreditTier() {\r\n return `${this.adminApi()}/credit/tier`;\r\n }\r\n\r\n getPendingCampaignByItem(id) {\r\n return `${this.adminApi()}/send/pending/${id}/items`;\r\n }\r\n\r\n getWhiteUsersList() {\r\n return `${this.adminApi()}/denied-limitation`;\r\n }\r\n\r\n userDeniedLimitations(id) {\r\n return `${this.adminApi()}/user/${id}/denied-limitations`;\r\n }\r\n\r\n userCalledWebServiceCount(id) {\r\n return `${this.adminApi()}/user/${id}/allowed-calling-web-service-count`;\r\n }\r\n\r\n userForbiddenWords(id) {\r\n return `${this.adminApi()}/user/${id}/white-list-forbidden-word`;\r\n }\r\n\r\n removeUserForbiddenWords(id, userId) {\r\n return `${this.adminApi()}/user/${userId}/white-list-forbidden-word/${id}`;\r\n }\r\n\r\n userCancellationPhraseStatus(id) {\r\n return `${this.adminApi()}/user/${id}/avoid-black-list-keyword`;\r\n }\r\n\r\n getOfficialDiscount(invoiceId, invoiceDetailId) {\r\n return `${this.adminApi()}/invoice/${invoiceId}/details/${invoiceDetailId}/discount`;\r\n }\r\n\r\n // getOldPanelOfficialDiscount(invoiceId, invoiceDetailId) {\r\n // return `${this.adminApi()}/invoice/old-panel/${invoiceId}/details/${invoiceDetailId}/discount`;\r\n // }\r\n\r\n cancelInvoice(userId, invoiceId) {\r\n return `${this.adminApi()}/user/${userId}/invoice/${invoiceId}/cancel`;\r\n }\r\n\r\n deleteInvoice(invoiceId) {\r\n return `${this.adminApi()}/invoice/${invoiceId}`;\r\n }\r\n\r\n removeOldPanelInvoice(invoiceId) {\r\n return `${this.OldPanelBaseUrl()}/api/invoice/${invoiceId}`;\r\n }\r\n\r\n cancelOldPanelInvoice(userId, invoiceId) {\r\n return `${this.OldPanelBaseUrl()}/user/${userId}/invoice/${invoiceId}/cancel`;\r\n }\r\n\r\n DiscountCodeLogs(id) {\r\n return `${this.adminApi()}/public-discount-code/${id}/log`;\r\n }\r\n\r\n PublicDiscountCode(id) {\r\n let request = \"\";\r\n id === undefined\r\n ? (request = `${this.adminApi()}/public-discount-code`)\r\n : (request = `${this.adminApi()}/public-discount-code/${id}`);\r\n return request;\r\n }\r\n\r\n // send-tower\r\n\r\n getSendTowerPending() {\r\n return `${this.adminApi()}/send-via-tower?isPendingForHandle=true`;\r\n }\r\n\r\n getSingleSendTower(id) {\r\n return `${this.adminApi()}/send-via-tower/${id}`;\r\n }\r\n\r\n getSendTowerNotPending() {\r\n return `${this.adminApi()}/send-via-tower?isPendingForHandle=false`;\r\n }\r\n\r\n sendTowerChangeStatus(id) {\r\n return `${this.adminApi()}/send-via-tower/${id}/pending`;\r\n }\r\n\r\n sendTowerReady(id) {\r\n return `${this.adminApi()}/send-via-tower/${id}/ready`;\r\n }\r\n\r\n sendTowerPaid(id) {\r\n return `${this.adminApi()}/send-via-tower/${id}/paid`;\r\n }\r\n\r\n\r\n // sale's cooperation\r\n getSaleCooperationTransaction() {\r\n return `${this.adminApi()}/cooperation/transactions`;\r\n }\r\n\r\n editSaleCooperationTransaction(id) {\r\n return `${this.adminApi()}/cooperation/settlement/${id}`;\r\n }\r\n\r\n getSaleCooperationSettlement() {\r\n return `${this.adminApi()}/cooperation/settlement`;\r\n }\r\n\r\n // Providers Credit\r\n GetProvidersCredit() {\r\n return `${this.adminApi()}/provider/balance`;\r\n }\r\n\r\n ModifyProviderThreshold(providerId) {\r\n return `${this.adminApi()}/setting/provider/${providerId}`;\r\n }\r\n\r\n GetProviderAmount(providerId) {\r\n return `${this.adminApi()}/provider/balance/charge/${providerId}`;\r\n }\r\n\r\n IncreaseProviderAmount() {\r\n return `${this.adminApi()}/provider/balance/charge`;\r\n }\r\n\r\n // blocked IP\r\n BlockedIPLog(id) {\r\n let request = \"\";\r\n id === undefined\r\n ? (request = `${this.adminApi()}/blocked-IP/log`)\r\n : (request = `${this.adminApi()}/blocked-IP/log/${id}`);\r\n return request;\r\n }\r\n\r\n BlockedNumber(id = undefined) {\r\n return id === undefined\r\n ? `${this.adminApi()}/blocked-mobile/`\r\n : `${this.adminApi()}/blocked-mobile/${id}`;\r\n }\r\n\r\n // Credit Package\r\n GetCreditPackage() {\r\n return `${this.adminApi()}/credit/package`;\r\n }\r\n\r\n ModifyCreditPackage(packageId) {\r\n const request =\r\n packageId === undefined\r\n ? `${this.adminApi()}/credit/package`\r\n : `${this.adminApi()}/credit/package/${packageId}`;\r\n return request;\r\n }\r\n\r\n // Feedback\r\n GetFeedback() {\r\n return `${this.adminApi()}/feedback`;\r\n }\r\n\r\n modifyPaymentLimitations() {\r\n return `${this.adminApi()}/setting/payment-limitations`;\r\n }\r\n\r\n\r\n officialPayment(userId) {\r\n return `${this.adminApi()}/user/${userId}/official-payment`;\r\n }\r\n\r\n // baseprice\r\n DedicatedBasePrice(id) {\r\n let request = \"\";\r\n id === undefined\r\n ? (request = `${this.adminApi()}/credit/dedicated-base-price`)\r\n : (request = `${this.adminApi()}/credit/dedicated-base-price/${id}`);\r\n return request;\r\n }\r\n\r\n //old-panel\r\n\r\n GetOldPanelOfficialInvoices(id) {\r\n if (id) {\r\n return `${this.OldPanelBaseUrl()}/invoice/${id}`;\r\n }\r\n return `${this.OldPanelBaseUrl()}/invoice`;\r\n }\r\n\r\n GroupNumberedPanelInvoice(isOldPanel) {\r\n return `${isOldPanel ? this.OldPanelBaseUrl() : this.adminApi()}/invoice/number`;\r\n }\r\n\r\n NumberedOldPanelInvoice(id) {\r\n return `${this.OldPanelBaseUrl()}/invoice/${id}/number`;\r\n }\r\n\r\n RetryOldPanelInvoice(id) {\r\n return `${this.OldPanelBaseUrl()}/invoice/${id}/pdf`;\r\n }\r\n\r\n EditOldPanelUserDetails(id) {\r\n return `${this.OldPanelBaseUrl()}/invoice/${id}/user-info`;\r\n }\r\n\r\n getOldPanelOfficialDiscount(invoiceId, invoiceDetailId) {\r\n return `${this.OldPanelBaseUrl()}/invoice/${invoiceId}/details/${invoiceDetailId}/discount`;\r\n }\r\n\r\n\r\n registerOldPanelSepidar(id) {\r\n return `${this.OldPanelBaseUrl()}/invoice/${id}/sepidar`;\r\n }\r\n\r\n // Plan\r\n Plan(id) {\r\n let request = '';\r\n id === undefined\r\n ? (request = `${this.adminApi()}/plan`)\r\n : (request = `${this.adminApi()}/plan/${id}`);\r\n return request;\r\n }\r\n\r\n PlanFree() {\r\n return `${this.adminApi()}/plan/free`;\r\n }\r\n\r\n\r\n\r\n // plans lines\r\n plansLines(id) {\r\n let request = '';\r\n id === undefined\r\n ? (request = `${this.adminApi()}/plan/line`)\r\n : (request = `${this.adminApi()}/plan/line/${id}`);\r\n return request;\r\n }\r\n\r\n plansLinesCount() {\r\n return `${this.adminApi()}/plan/line/count`;\r\n }\r\n\r\n plansLinesPendingUser(id) {\r\n let request = '';\r\n id === undefined\r\n ? (request = `${this.adminApi()}/plan/line/pending`)\r\n : (request = `${this.adminApi()}/plan/line/pending/${id}/handle`);\r\n return request;\r\n }\r\n\r\n UserPlan(userId) {\r\n return `${this.adminApi()}/user/${userId}/plan`;\r\n }\r\n\r\n UsersPerPlan(planId) {\r\n return `${this.adminApi()}/plan/${planId}/user`;\r\n }\r\n\r\n paymentConfirmation(paymentId) {\r\n return `${this.adminApi()}/payment/online/${paymentId}`;\r\n }\r\n\r\n webServiceLogs() {\r\n return `${this.adminApi()}/api/log`;\r\n }\r\n\r\n\r\n}\r\n\r\nexport default new Urls();\r\n","export const theme = {\r\n white: \"#FFFFFF\",\r\n black: \"#000000\",\r\n primary: \"#6993ff\",\r\n primaryHover: \"rgba(105, 147, 255 ,0.5)\",\r\n secondary: \"#13dad7\",\r\n\r\n secondaryGreen: \"#5aba47\",\r\n\r\n greenBtn: \"#1bc5bd\",\r\n greenDisable: \"rgba(27, 197, 189, 0.5)\",\r\n greenBtnHover: \"#0bb7af\",\r\n\r\n darkGreenBtn: \"#0bb7af\",\r\n darkGreenDisable:\"rgba(11, 183, 175, 0.5)\",\r\n darkGreenBtnHover:\"#0aa7a0\",\r\n\r\n redBtn: \"#f64e60\",\r\n redDisable: \"rgba(246, 78, 96, 0.5)\",\r\n redBtnHover: \"#ee2d41\",\r\n\r\n yellowBtn: \"#FDD835\",\r\n yellowDisable: \"rgba(253, 216, 53 , 0.5)\",\r\n yellowBtnHover: \"#FBC02D\",\r\n\r\n grayBtn: \"#e5eaee\",\r\n grayDisable: \"rgba(229, 234, 238, 0.5)\",\r\n grayBtnHover: \"#d6d6e0\",\r\n $paramsListBg: \"#f3f3f3\",\r\n gray: \"#495057\",\r\n grayDark: \"#616161\",\r\n grey4: '#f2f4f7',\r\n grey5: '#cacaca',\r\n yellow: \"#fcc51e\",\r\n lightGray: \"#f8f9fc\",\r\n darkGreen: \"#007a39\",\r\n lightGreen: \"#edfaf3\",\r\n borderGreen: \"#008840\",\r\n greenBlue: \"#becae0\",\r\n paleGrey: \"#e8ecf4\",\r\n red: \"#f25a5a\",\r\n headerHeight: \"65px\",\r\n\r\n blue: \"#6993ff\",\r\n $hoverBlue: \"#4a7dff\",\r\n darkBlue: \"#1d5cff\",\r\n lightBlue: \"#e1e9ff\",\r\n label: \"#5b6980\",\r\n\r\n radius: '8px',\r\n};\r\n","class LocalToken {\r\n #ACCESS_TOKEN;\r\n #REFRESH_TOKEN;\r\n\r\n constructor() {\r\n this.#ACCESS_TOKEN = 'access_token';\r\n this.#REFRESH_TOKEN = 'refresh_token';\r\n }\r\n\r\n getAccessToken = () => {\r\n return localStorage.getItem(this.#ACCESS_TOKEN);\r\n };\r\n\r\n geRefreshToken = () => {\r\n return localStorage.getItem(this.#REFRESH_TOKEN);\r\n };\r\n\r\n setToken = (res) => {\r\n localStorage.setItem(this.#ACCESS_TOKEN, res.result.accessToken);\r\n localStorage.setItem(this.#REFRESH_TOKEN, res.result.refreshToken);\r\n };\r\n\r\n setAccessToken = (res) => {\r\n localStorage.setItem(this.#ACCESS_TOKEN, res.result);\r\n };\r\n\r\n setRefreshToken = (res) => {\r\n localStorage.setItem(this.#REFRESH_TOKEN, res.result);\r\n };\r\n\r\n Remove = () => {\r\n localStorage.removeItem(this.#ACCESS_TOKEN);\r\n localStorage.removeItem(this.#REFRESH_TOKEN);\r\n };\r\n}\r\nexport default new LocalToken();\r\n","import Logo from './Assets/images/logo.png';\r\n// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this Models and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.REACT_APP_PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.REACT_APP_PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n // Check for updates at start.\r\n registration.update();\r\n // Check for updates every 2 min.\r\n setInterval(() => {\r\n registration.update();\r\n }, (1000 * 60) * 2);\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n new Notification('آپدیت جدید پنل ادمین در دسترس قرار گرفته است', {\r\n body: 'برای دریافت آپدیت جدید ctrl + F5 را بزنید',\r\n icon: Logo,\r\n });\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' },\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","const pendingLines = (state = [], action) => {\r\n switch (action.type) {\r\n case \"PENDING_DETAILS\":\r\n return {\r\n data: action.data,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n\r\nexport default pendingLines","const AdminDetailReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n\r\n case 'ADMIN_DETAILS':\r\n return { ...state, ...action.data }\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default AdminDetailReducer;","const modalChange = (state = [], action) => {\r\n switch (action.type) {\r\n case \"SETTING_MODAL\":\r\n return {\r\n data: action.data,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n\r\nexport default modalChange","export const DiscountCodeDetailReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case \"DISCOUNT_CODE_DETAILS\":\r\n return { ...state, ...action.data };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default DiscountCodeDetailReducer;\r\n","export const UserProfileDataReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case \"USER_PROFILE_DATA\":\r\n return { ...state, ...action.data };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\nexport default UserProfileDataReducer;","export const UserLegalDataReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case \"USER_LEGAL_DATA\":\r\n return { ...state, ...action.data };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\nexport default UserLegalDataReducer;\r\n","export const LocationDataReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n case \"LOCATION_DATA\":\r\n return { ...state, ...action.data };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\nexport default LocationDataReducer;","export const CreditPackageItemReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n\r\n case 'CREDIT_PACKAGE_ITEM':\r\n return { ...state, ...action.data }\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default CreditPackageItemReducer;","const BasePriceTiersReducer = (state = {}, action) => {\r\n switch (action.type) {\r\n\r\n case 'BASE_PRICE_TIERS':\r\n return { ...state, ...action.data }\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default BasePriceTiersReducer;","const guestData = (state = [], action) => {\r\n switch (action.type) {\r\n case \"GUEST_DATA\":\r\n return { ...state, ...action.data };\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\n\r\nexport default guestData;","import { combineReducers } from \"redux\";\r\nimport pendingLines from './pending-lines'\r\nimport AdminDetailReducer from './AdminDetail'\r\nimport bootstrapper from \"./bootstrapper\";\r\nimport modalChange from \"./setting-modal\";\r\nimport DiscountCodeDetailReducer from \"./DiscountCodeDetail\";\r\nimport UserProfileDataReducer from \"./UserProfileData\";\r\nimport UserLegalDataReducer from \"./UserLegalData\";\r\nimport LocationDataReducer from \"./locationData\";\r\nimport CreditPackageItemReducer from \"./CreditPackageItem\";\r\nimport BasePriceTiersReducer from \"./BasePriceTiers\";\r\nimport guestData from \"./guest-data\";\r\n\r\nconst reducers = combineReducers({\r\n bootstrapper,\r\n pendingLines,\r\n AdminDetailReducer,\r\n modalChange,\r\n DiscountCodeDetailReducer,\r\n UserProfileDataReducer,\r\n LocationDataReducer,\r\n UserLegalDataReducer,\r\n CreditPackageItemReducer,\r\n BasePriceTiersReducer,\r\n guestData,\r\n});\r\n\r\nexport default reducers;\r\n","import { createStore, compose } from \"redux\";\r\nimport reducers from \"./Reducers\";\r\n\r\nconst store = createStore(\r\n reducers,\r\n compose(\r\n // applyMiddleware(thunk),\r\n window.__REDUX_DEVTOOLS_EXTENSION__ &&\r\n window.__REDUX_DEVTOOLS_EXTENSION__()\r\n )\r\n );\r\n\r\nexport default store;\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"bootstrap-v4-rtl/dist/css/bootstrap-rtl.min.css\";\r\nimport \"./index.css\";\r\nimport App from \"./App\";\r\nimport * as serviceWorkerRegistration from \"./serviceWorker\";\r\nimport { Provider } from \"react-redux\";\r\nimport store from \"./store\";\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorkerRegistration.register();\r\n","import React from \"react\"\r\nimport LocalToken from \"../Utility/LocalStorge/LocalToken\"\r\n\r\nconst AppContext = React.createContext({\r\n hasToken: LocalToken.getAccessToken() ? true : false,\r\n setHasToken: () => { },\r\n})\r\nexport default AppContext\r\n","module.exports = \"data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABeAAD/4QMvaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzEzOCA3OS4xNTk4MjQsIDIwMTYvMDkvMTQtMDE6MDk6MDEgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozRjAwRTE5QUZDRUIxMUU3QkI1RjgzOUI0RjEyMTlENCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozRjAwRTE5QkZDRUIxMUU3QkI1RjgzOUI0RjEyMTlENCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjNGMDBFMTk4RkNFQjExRTdCQjVGODM5QjRGMTIxOUQ0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjNGMDBFMTk5RkNFQjExRTdCQjVGODM5QjRGMTIxOUQ0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4ADkFkb2JlAGTAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEB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\""],"sourceRoot":""}