{"version":3,"sources":["client/assets/images/logo.png","client/assets/images/fundeporte.jpg","client/assets/images/defaultUserProfile.png","client/polyfill.js","client/_helpers/handle-response.js","client/_helpers/role.js","client/_services/alert.js","client/_services/alert.service.js","client/_services/authentication.service.js","client/_helpers/auth-header.js","client/_services/crud.service.js","client/_helpers/secure.helper.js","client/AuthProvider.js","client/views/users/Users.js","client/_helpers/select.helper.js","client/views/users/User.js","client/views/lottery/Lotteries.js","client/_helpers/hours.helper.js","client/views/lottery/Lottery.js","client/views/restrictions/Restrictions.js","client/_helpers/number.helper.js","client/views/restrictions/Restriction.js","client/views/sales/Sale.js","client/components/NumberTable.js","client/views/sales/Sales.js","client/views/movements/Movements.js","client/views/projects/Project.js","client/views/projects/Projects.js","client/views/recharge/Recharge.js","client/views/recharge/RechargeApproval.js","client/views/recharge/ManageUserBalance.js","client/views/users/EditProfile.js","client/views/requests/Requests.js","client/views/restrictions/SaleRestrictions.js","client/views/restrictions/SaleRestriction.js","client/views/restrictions/AutomaticRestriction.js","client/views/restrictions/AutomaticRestrictions.js","client/views/chat/Chat.js","client/routes.js","client/containers/TheContent.js","client/containers/TheFooter.js","client/containers/TheHeaderDropdownNotif.js","client/containers/TheConfigMenu.js","client/containers/TheDonationMenu.js","client/containers/TheHeader.js","client/containers/_nav.js","client/containers/TheLayout.js","client/views/pages/login/Login.js","client/components/PrivateRoute.js","client/views/pages/login/ForgotPassword.js","client/App.js","client/serviceWorker.js","client/assets/icons/sygnet.js","client/assets/icons/index.js","client/assets/icons/logo.js","client/assets/icons/logo-negative.js","client/store.js","index.js"],"names":["window","CustomEvent","event","params","bubbles","cancelable","detail","undefined","evt","document","createEvent","initCustomEvent","prototype","Event","Element","matches","msMatchesSelector","webkitMatchesSelector","closest","s","el","this","call","parentElement","parentNode","nodeType","handleResponse","response","Promise","resolve","reject","data","status","indexOf","authenticationService","logout","form","createElement","method","action","location","href","body","appendChild","submit","forceReload","error","message","statusText","ex","Error","Role","Alert","className","text","show","position","autohide","fade","closeButton","Date","toLocaleString","alertService","success","alert","info","props","element","querySelector","removeChild","cleanup","div","id","ReactDOM","render","login","username","password","axios","post","Username","Password","then","token","localStorage","setItem","catch","removeItem","generateHmac","userEmail","Base64","stringify","hmacSHA256","currentUserValue","base64","split","replace","jsonPayload","decodeURIComponent","atob","map","c","charCodeAt","toString","slice","join","JSON","parse","parseJwt","getItem","isManager","role","isDonor","sameAsCurrentUser","userId","unique_name","getUserId","nameid","getUserEmail","Email","getTzName","TzName","getUserFullName","family_name","getUserPhoneNumber","PhoneNumber","getCountry","CountryId","isPeru","isCr","authHeader","includeContentType","headers","Authorization","crudService","create","url","errorMessage","update","setFunction","successMessage","put","showError","remove","fetchFunction","delete","list","get","getWithParams","setLoading","SecureHelper","canAccess","roles","currentUser","AuthProvider","children","to","fields","key","label","_style","width","sorter","filter","Users","history","useHistory","useState","loading","users","setUsers","danger","setDanger","selectedUser","setSelectedUser","fetchUsers","useEffect","fluid","lg","onClose","color","onClick","push","type","size","items","columnFilter","noItemsView","noResults","noItems","tableFilter","placeholder","footer","itemsPerPageSelect","itemsPerPage","hover","pagination","scopedSlots","item","index","variant","shape","selectHelper","populateSelectControl","idProperty","valueProperty","options","i","length","value","User","match","projectIds","existingUser","setUser","setRoles","bosses","setBosses","countries","setCountries","projects","setProjects","paymentMethods","setPaymentMethods","isAddMode","fetchUser","fetchCountries","countryId","fetchRoles","fetchProjects","fetchPaymentMethods","roleId","fetchBosses","onSubmit","preventDefault","currentTarget","checkValidity","bossId","birth","yearBirth","getFullYear","monthBirth","getMonth","dayBirth","getDate","htmlFor","required","option","onChange","e","noOptionsMessage","invalid","isDisabled","autoComplete","defaultValue","dni","target","name","lastname","isMulti","includes","dateFormat","selected","locale","es","date","address","email","phone","phone2","style","marginRight","paymentMethod","paymentMethodName","payM","find","paymentMethodId","Lotteries","lotteries","setLotteries","selectedLottery","setSelectedLottery","fetchLotteries","hoursHelper","generateForOptions","valueRounded","Math","round","toAMPM","totalMinutes","hours","floor","minutes","isPM","padStart","Lottery","existingLottery","setLottery","setHours","selectedHour","setSelectedHour","fetchLottery","fetch","json","close","description","prize","bucket","prizePool","Restrictions","restrictions","setRestrictions","selectedRestriction","setSelectedRestriction","selectedLotteryId","setSelectedLotteryId","fetchRestrictions","numberHelper","generate","numbers","Restriction","existingRestriction","setRestriction","setNumbers","fetchRestriction","lotteryId","number","amount","checkCount","Sale","existingSale","setExistingSale","sales","setSales","salesAmount","setSalesAmount","selectedNumber","setSelectedNumber","setIsDisabled","disabledControls","setDisabledControls","sourceImg","setSourceImg","showReceipt","setShowReceipt","newBillNumber","setNewBillNumber","isSaleInProcess","setIsSaleInProcess","saveTextBtn","setSaveTextBtn","createSale","year","raffleDate","month","day","checkSaleStatus","saleId","exists","receipt","setTimeout","validateSale","isValid","projectId","tempSales","obj","lines","canSellMore","oldAmount","parseInt","addSale","disabled","client","phoneNumber","min","hidden","splice","removeSale","src","saveAs","open","test","NumberTable","countryCurrencySign","setCountryCurrencySign","concat","firstFooter","secondFooter","thirdFooter","fourthFooter","fifthFooter","sixthFooter","findAmount","found","sale","currencySign","fetchCountryCurrencySign","rows","firstTd","firstAmount","secondTd","secondAmount","thirdTd","thirdAmount","fourthTd","fourthAmount","fifthTd","fifthAmount","sixthTd","sixthAmount","renderTable","salesFields","prizeFields","Sales","prizeComments","setPrizeComments","selectedDate","setSelectedDate","shouldRefresh","setShouldRefresh","modify","setModify","comments","setComments","currentBill","setCurrentBill","totalAmount","fetchSales","fetchPrizeComments","handleSubmit","newData","bill","prizePaid","prizePaidComment","paid","prizeApplied","checked","labelOn","labelOff","toggleStatus","movementsFields","Movements","lotteriesOptions","setLotteriesOptions","winnerNumber","setWinnerNumber","movements","setMovements","setTotalAmount","setInfo","setPrize","balance","setBalance","isPrizeDisabled","setIsPrizeDisabled","selectedRoleId","setSelectedRoleId","selectedUserId","setSelectedUserId","currentPassword","setCurrentPassword","selectedProjectId","setSelectedProjectId","onlyWinnerNumbers","setOnlyWinnerNumbers","getPrize","showAlert","totalPrize","winner","fetchMovements","l","isNaN","tag","isCancelled","Project","existingProject","setProject","fetchProject","step","bonus","supervisorBonus","administratorBonus","goal","Projects","selectedProject","setSelectedProject","showValue","showPercentage","precision","currentGoal","height","Recharge","existingRecharge","setRecharge","transactionNumber","RechargeApproval","recharges","setRecharges","approve","setApprove","reasonForDenied","setReasonForDenied","selectedRecharge","setSelectedRecharge","fetchRecharges","ManageUserBalance","usersBalance","setUsersBalance","decreaseUserBalanceModal","setDecreaseUserBalanceModal","increaseUserBalanceModal","setIncreaseUserBalanceModal","reasonForDecrease","setReasonForDecrease","reasonForIncrease","setReasonForIncrease","amountToIncrease","setAmountToIncrease","amountToDecrease","setAmountToDecrease","selectedUserBalance","setSelectedUserBalance","setAction","fetchMyTeamBalances","parseFloat","reason","images","setImages","onImageChange","imageList","addUpdateIndex","photoData","data_url","photo","idsInFirstArray","Set","newItems","has","resultArray","maxNumber","acceptType","dataURLKey","onImageUpload","onImageRemoveAll","isDragging","onImageUpdate","onImageRemove","dragProps","errors","image","alt","Requests","requests","setRequests","approvalComment","setApprovalComment","selectedRequest","setSelectedRequest","fetchRequests","isApproved","denialComment","approvalStatus","SaleRestrictions","SaleRestriction","limit","AutomaticRestriction","upperLimit","prizePercentage","Chat","notif","setNotif","recipientId","title","subtitle","routes","path","exact","component","EditProfile","AutomaticRestrictions","TheContent","fallback","route","idx","from","React","memo","TheFooter","fixed","require","default","rel","TheHeaderDropdownNotif","notifications","customClassName","itemsCount","notifList","m","currentPath","hash","reload","inNav","caret","placement","header","TheConfigMenu","config","direction","TheDonationMenu","TheHeader","countryFlag","setCountryFlag","userPhoto","setUserPhoto","connection","setConnection","setNotifications","latestNotification","useRef","sidebarShow","useSelector","state","dispatch","useDispatch","showRequestModal","setShowRequestModal","amountRequested","setAmountRequested","selectedPaymentMethod","setSelectedPaymentMethod","accountNumber","setAccountNumber","current","toggleSidebar","val","toggleSidebarMobile","newConnection","HubConnectionBuilder","withUrl","accessTokenFactory","withAutomaticReconnect","build","start","result","on","updatedNotification","fetchCountryFlag","Notification","permission","requestPermission","console","log","R","fetchUserPhoto","fetchBalance","withSubheader","inHeader","RoleName","Dni","custom","createToken","hmac","createHmac","digest","TheLayout","getAuthToken","apiKey","userHmac","userExternalId","project","subscribe","serviceWorkerPath","fetchToken","Login","setLogin","donor","setDonor","showDonor","setShowDonor","countryChunks","setCountryChunks","chunkArray","array","chunkSize","chunks","md","user","row","placeholderText","chunk","rowIndex","country","colIndex","xs","PrivateRoute","Component","rest","pathname","ForgotPassword","App","Suspense","isLocalhost","Boolean","hostname","registerValidSW","swUrl","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","onUpdate","onSuccess","icons","Object","assign","sygnet","logo","logoNegative","cilAlignCenter","cilAlignLeft","cilAlignRight","cilApplicationsSettings","cilArrowRight","cilArrowTop","cilAsterisk","cilBan","cilBasket","cilBell","cilBold","cilBookmark","cilCalculator","cilCalendar","cilCloudDownload","cilChartPie","cilCheck","cilChevronBottom","cilChevronLeft","cilChevronRight","cilChevronTop","cilCircle","cilCheckCircle","cilCode","cilCommentSquare","cilCreditCard","cilCursor","cilCursorMove","cilDrop","cilDollar","cilEnvelopeClosed","cilEnvelopeLetter","cilEnvelopeOpen","cilEuro","cilGlobeAlt","cilGrid","cilFile","cilFullscreen","cilFullscreenExit","cilGraph","cilHome","cilInbox","cilIndentDecrease","cilIndentIncrease","cilInputPower","cilItalic","cilJustifyCenter","cilJustifyLeft","cilLaptop","cilLayers","cilLightbulb","cilList","cilListRich","cilLocationPin","cilLockLocked","cilMagnifyingGlass","cilMap","cilMoon","cilNotes","cilOptions","cilPaperclip","cilPaperPlane","cilPencil","cilPeople","cilPhone","cilPrint","cilPuzzle","cilSave","cilScrubber","cilSettings","cilShare","cilShareAll","cilShareBoxed","cilShieldAlt","cilSpeech","cilSpeedometer","cilSpreadsheet","cilStar","cilSun","cilTags","cilTask","cilTrash","cilUnderline","cilUser","cilUserFemale","cilUserFollow","cilUserUnfollow","cilX","cilXCircle","cilWarning","cilMoney","cilListNumbered","cifUs","cifBr","cifIn","cifFr","cifEs","cifPl","cibSkype","cibFacebook","cibTwitter","cibLinkedin","cibFlickr","cibTumblr","cibXing","cibGithub","cibStackoverflow","cibYoutube","cibDribbble","cibInstagram","cibPinterest","cibVk","cibYahoo","cibBehance","cibReddit","cibVimeo","cibCcMastercard","cibCcVisa","cibStripe","cibPaypal","cibGooglePay","cibCcAmex","initialState","store","createStore","createBrowserHistory","interceptors","use","getElementById","URL","process","origin","addEventListener","ready","unregister","checkValidServiceWorker"],"mappings":"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","file":"static/js/main.66780c41.chunk.js","sourcesContent":["export default \"data:image/png;base64,/9j/4QC8RXhpZgAASUkqAAgAAAAGABIBAwABAAAAAQAAABoBBQABAAAAVgAAABsBBQABAAAAXgAAACgBAwABAAAAAgAAABMCAwABAAAAAQAAAGmHBAABAAAAZgAAAAAAAABgAAAAAQAAAGAAAAABAAAABgAAkAcABAAAADAyMTABkQcABAAAAAECAwAAoAcABAAAADAxMDABoAMAAQAAAP//AAACoAQAAQAAAJABAAADoAQAAQAAAGQAAAAAAAAA/+EOJmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLyc+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyc+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpBdHRyaWI9J2h0dHA6Ly9ucy5hdHRyaWJ1dGlvbi5jb20vYWRzLzEuMC8nPgogIDxBdHRyaWI6QWRzPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxBdHRyaWI6Q3JlYXRlZD4yMDIzLTA3LTEzPC9BdHRyaWI6Q3JlYXRlZD4KICAgICA8QXR0cmliOkV4dElkPmRiN2RkZDI1LWIyMmYtNDY0YS04OTA2LThiOTRkOTBjZGY3YzwvQXR0cmliOkV4dElkPgogICAgIDxBdHRyaWI6RmJJZD41MjUyNjU5MTQxNzk1ODA8L0F0dHJpYjpGYklkPgogICAgIDxBdHRyaWI6VG91Y2hUeXBlPjI8L0F0dHJpYjpUb3VjaFR5cGU+CiAgICA8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvQXR0cmliOkFkcz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJz4KICA8ZGM6dGl0bGU+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz5QdW50byBHYW5hICg5NDAgw5cgNzg4wqBweCkgKDQwMCDDlyAxMDDCoHB4KSAtIDI8L3JkZjpsaT4KICAgPC9yZGY6QWx0PgogIDwvZGM6dGl0bGU+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0nJwogIHhtbG5zOnBkZj0naHR0cDovL25zLmFkb2JlLmNvbS9wZGYvMS4zLyc+CiAgPHBkZjpBdXRob3I+RnVuZGFjacOzbiBEZXBvcnRlIExhdGlub2Ftw6lyaWNhPC9wZGY6QXV0aG9yPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczp4bXA9J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8nPgogIDx4bXA6Q3JlYXRvclRvb2w+Q2FudmE8L3htcDpDcmVhdG9yVG9vbD4KIDwvcmRmOkRlc2NyaXB0aW9uPgo8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg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\"","export default \"data:image/jpeg;base64,/9j/4QC8RXhpZgAASUkqAAgAAAAGABIBAwABAAAAAQAAABoBBQABAAAAVgAAABsBBQABAAAAXgAAACgBAwABAAAAAgAAABMCAwABAAAAAQAAAGmHBAABAAAAZgAAAAAAAABgAAAAAQAAAGAAAAABAAAABgAAkAcABAAAADAyMTABkQcABAAAAAECAwAAoAcABAAAADAxMDABoAMAAQAAAP//AAACoAQAAQAAAJABAAADoAQAAQAAAGQAAAAAAAAA/+EOJmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLyc+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyc+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpBdHRyaWI9J2h0dHA6Ly9ucy5hdHRyaWJ1dGlvbi5jb20vYWRzLzEuMC8nPgogIDxBdHRyaWI6QWRzPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxBdHRyaWI6Q3JlYXRlZD4yMDIzLTA3LTEzPC9BdHRyaWI6Q3JlYXRlZD4KICAgICA8QXR0cmliOkV4dElkPmRiN2RkZDI1LWIyMmYtNDY0YS04OTA2LThiOTRkOTBjZGY3YzwvQXR0cmliOkV4dElkPgogICAgIDxBdHRyaWI6RmJJZD41MjUyNjU5MTQxNzk1ODA8L0F0dHJpYjpGYklkPgogICAgIDxBdHRyaWI6VG91Y2hUeXBlPjI8L0F0dHJpYjpUb3VjaFR5cGU+CiAgICA8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvQXR0cmliOkFkcz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJz4KICA8ZGM6dGl0bGU+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz5QdW50byBHYW5hICg5NDAgw5cgNzg4wqBweCkgKDQwMCDDlyAxMDDCoHB4KSAtIDI8L3JkZjpsaT4KICAgPC9yZGY6QWx0PgogIDwvZGM6dGl0bGU+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0nJwogIHhtbG5zOnBkZj0naHR0cDovL25zLmFkb2JlLmNvbS9wZGYvMS4zLyc+CiAgPHBkZjpBdXRob3I+RnVuZGFjacOzbiBEZXBvcnRlIExhdGlub2Ftw6lyaWNhPC9wZGY6QXV0aG9yPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczp4bXA9J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8nPgogIDx4bXA6Q3JlYXRvclRvb2w+Q2FudmE8L3htcDpDcmVhdG9yVG9vbD4KIDwvcmRmOkRlc2NyaXB0aW9uPgo8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg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\"","export default \"data:image/png;base64,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\"","/*\n* required polyfills\n*/\n\n/** IE9, IE10 and IE11 requires all of the following polyfills. **/\n// import \"core-js\";\n// import 'core-js/features/symbol'\n// import 'core-js/features/object'\n// import 'core-js/features/function'\n// import 'core-js/features/parse-int'\n// import 'core-js/features/parse-float'\n// import 'core-js/features/number'\n// import 'core-js/features/math'\n// import 'core-js/features/string'\n// import 'core-js/features/date'\n// import 'core-js/features/array'\n// import 'core-js/features/regexp'\n// import 'core-js/features/map'\n// import 'core-js/features/weak-map'\n// import 'core-js/features/set'\n// import 'core-js/features/set/map';\n\n/** IE10 and IE11 requires the following for the Reflect API. */\n// import 'core-js/features/reflect';\n\n/** Evergreen browsers require these. **/\n// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove.\n// import 'core-js/features/reflect'\n\n// CustomEvent() constructor functionality in IE9, IE10, IE11\n(function () {\n\n if ( typeof window.CustomEvent === \"function\" ) return false\n\n function CustomEvent ( event, params ) {\n params = params || { bubbles: false, cancelable: false, detail: undefined }\n var evt = document.createEvent( 'CustomEvent' )\n evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail )\n return evt\n }\n\n CustomEvent.prototype = window.Event.prototype\n\n window.CustomEvent = CustomEvent\n})()\n\nif (!Element.prototype.matches) {\n Element.prototype.matches =\n Element.prototype.msMatchesSelector ||\n Element.prototype.webkitMatchesSelector;\n}\n\nif (!Element.prototype.closest) {\n Element.prototype.closest = function(s) {\n var el = this;\n\n do {\n if (Element.prototype.matches.call(el, s)) return el;\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n return null;\n };\n}\n","import {authenticationService} from '../_services/authentication.service';\n\nexport function handleResponse(response) {\n return new Promise(function (resolve, reject) {\n try {\n const data = response.data;\n if (response.status !== 200) {\n if ([401, 403].indexOf(response.status) !== -1) {\n // auto logout if 401 Unauthorized or 403 Forbidden response returned from api\n authenticationService.logout();\n forceReload();\n }\n\n const error = (data && data.message) || response.statusText;\n return Promise.reject(error);\n }\n\n resolve(data);\n } catch (ex) {\n reject(new Error(ex));\n }\n });\n}\n\nfunction forceReload() {\n const form = document.createElement('form');\n form.method = \"POST\";\n form.action = window.location.href;\n document.body.appendChild(form);\n form.submit();\n}","export const Role = {\n Manager: \"Manager\",\n Admin: 'Administrator',\n Supervisor: 'Supervisor',\n Seller: 'Seller',\n Donor: 'Donor'\n}","import React, {useEffect} from 'react'\nimport {\n CToaster,\n CToast,\n CToastHeader,\n CToastBody\n} from '@coreui/react'\n\nfunction Alert({className, text, show}) {\n return (\n \n \n \n Mensaje\n \n \n {text}\n \n \n \n)\n}\n\nexport default Alert","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport Alert from './alert';\n\nexport const alertService = {\n success,\n error,\n info\n};\n\nfunction success(message) {\n alert({ className: 'text-white bg-success', text: message, show: true});\n}\n\nfunction error(message) {\n alert({ className: 'text-white bg-danger', text: message, show: true});\n}\n\nfunction info(message) {\n alert({ className: 'text-white bg-info', text: message, show: true});\n}\n\n// core alert method\nfunction alert(props) {\n cleanup();\n const div = document.createElement('div');\n div.id = \"alertdiv\";\n ReactDOM.render(\n ,\n document.body.appendChild(div)\n );\n}\n\nfunction cleanup() {\n const element = document.querySelector('#alertdiv');\n if (element) {\n element.parentNode.removeChild(element); \n }\n}","import axios from 'axios';\nimport { handleResponse } from '../_helpers/handle-response';\nimport {Role} from \"../_helpers/role\";\nimport {alertService} from \"./alert.service\";\nimport Base64 from 'crypto-js/enc-base64';\nimport hmacSHA256 from 'crypto-js/hmac-sha256';\n\nexport const authenticationService = {\n login,\n logout,\n generateHmac,\n get currentUserValue () { return parseJwt(localStorage.getItem('currentUser')) },\n get token () {return localStorage.getItem('currentUser')},\n get isManager () { \n const user = this.currentUserValue;\n return user.role === Role.Manager\n },\n get isDonor() {\n const user = this.currentUserValue;\n return user.role === Role.Donor\n },\n sameAsCurrentUser(userId) {\n const user = this.currentUserValue;\n return user.unique_name === userId;\n },\n get getUserId () { return this.currentUserValue.nameid },\n get getUserEmail () { return this.currentUserValue.Email },\n get getTzName () { return this.currentUserValue.TzName },\n get getUserFullName () {return this.currentUserValue.family_name},\n get getUserPhoneNumber () {return this.currentUserValue.PhoneNumber},\n get getCountry () {return this.currentUserValue.CountryId},\n get isPeru () { return this.currentUserValue.CountryId === \"0dc96921-c6f5-485f-8f6b-3bf8a0c58bfc\" },\n get isCr () { return this.currentUserValue.CountryId === \"37b9172b-d20e-4050-bfc2-7bbaaa949b27\" },\n};\n\nfunction parseJwt (token) {\n try {\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const jsonPayload = decodeURIComponent(atob(base64).split('').map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n\n return JSON.parse(jsonPayload);\n }\n catch {\n return '';\n }\n}\n\nfunction login(username, password) {\n return axios.post('/user/login', { Username: username, Password: password }).then(handleResponse)\n .then(token => {\n // store user details and jwt token in local storage to keep user logged in between page refreshes\n localStorage.setItem('currentUser', token);\n return token;\n }).catch((error) => {\n alertService.error(error.data);\n });\n}\n\nfunction logout() {\n // remove user from local storage to log user out\n localStorage.removeItem('currentUser');\n window.location.href = '/';\n}\n\nfunction generateHmac(userEmail) {\n return Base64.stringify(hmacSHA256(userEmail, \"95e91a9f1f6dbb8b8a57fd19e95e7f7848b0357b\"))\n}","import { authenticationService } from '../_services/authentication.service';\n\nexport function authHeader(includeContentType) {\n const token = authenticationService.token;\n if (token) {\n const headers = { Authorization: `Bearer ${token}` };\n if (includeContentType) {\n headers['Content-Type'] = 'application/json';\n }\n return headers;\n } else {\n return {};\n }\n}","import React from 'react'\nimport axios from \"axios\";\nimport {alertService} from \"./alert.service\";\nimport { authHeader } from \"../_helpers/auth-header\";\n\nexport const crudService = {\n create,\n update,\n remove,\n list,\n get,\n getWithParams,\n post\n};\n\nfunction get(url, setFunction, errorMessage) {\n axios.get(url, {\n headers: authHeader()\n })\n .then(function (response) {\n setFunction(response.data)\n })\n .catch(function (error) {\n showError(error, errorMessage);\n });\n}\n\nfunction getWithParams(url, params, setFunction, errorMessage) {\n axios.get(url, {\n headers: authHeader(),\n params: params\n })\n .then(function (response) {\n setFunction(response.data)\n })\n .catch(function (error) {\n showError(error, errorMessage);\n });\n}\n\nfunction create(url, data, then, errorMessage) {\n post(url, data, then, errorMessage);\n}\n\nfunction post(url, data, then, errorMessage) {\n axios.post(url, data, {headers: authHeader()})\n .then(function (response) {\n then(response);\n })\n .catch(function (error) {\n showError(error, errorMessage);\n });\n}\n\nfunction update(url, data, setFunction, successMessage, errorMessage) {\n axios.put(url, data, {\n headers: authHeader()\n })\n .then(function (response) {\n alertService.success(successMessage);\n setFunction(response.data);\n })\n .catch(function (error) {\n showError(error, errorMessage);\n });\n}\n\nfunction remove(url, data, setFunction, fetchFunction, successMessage, errorMessage) {\n axios.delete(url, {\n headers: authHeader(true),\n data: data\n }).then(function (response) {\n alertService.success(successMessage);\n setFunction({});\n fetchFunction();\n })\n .catch(function (error) {\n showError(error, errorMessage);\n setFunction({})\n });\n}\n\nasync function list(url, setFunction, setLoading) {\n axios.get(url, {\n headers: authHeader()\n })\n .then(function (response) {\n setFunction(response.data);\n setLoading(false);\n })\n .catch(function (error) {\n showError(error, \"Ocurrió un error. Por favor intente de nuevo.\");\n setLoading(false);\n });\n}\n\nfunction showError(error, errorMessage) {\n if (!error) {\n error = {};\n }\n if (error.status === 500) {\n alertService.error(errorMessage ? errorMessage : \"Ocurrió un error. Por favor intente de nuevo.\");\n } else {\n alertService.error(error.data ? error.data : \"Ocurrió un error. Por favor intente de nuevo.\");\n }\n}","import React from 'react';\nimport { authenticationService } from '../_services/authentication.service';\n\nexport const SecureHelper = {\n canAccess\n};\n\nfunction canAccess(roles) {\n const currentUser = authenticationService.currentUserValue;\n if (!currentUser) {\n return false;\n }\n \n return !(roles && roles.indexOf(currentUser.role) === -1);\n \n \n}","import React from \"react\";\nimport {SecureHelper} from \"./_helpers/secure.helper\";\nimport {Redirect} from \"react-router-dom\";\n\nconst AuthProvider = ({children, ...props}) => {\n if (!SecureHelper.canAccess(props.roles)) {\n return ()\n } else {\n return (children);\n }\n}\n\nexport default AuthProvider","import React, {useState, useEffect} from 'react';\nimport {useHistory} from 'react-router-dom'\nimport {crudService} from \"../../_services/crud.service\";\nimport {\n CContainer,\n CCardBody,\n CCardHeader,\n CRow,\n CCol,\n CButton,\n CDataTable,\n CCard,\n CModal,\n CModalBody,\n CModalFooter,\n CModalHeader,\n CModalTitle\n} from '@coreui/react'\nimport {authenticationService} from \"../../_services/authentication.service\";\nimport AuthProvider from \"../../AuthProvider\";\nimport {Role} from \"../../_helpers/role\";\n\nconst fields = [\n {key: 'name', label: 'Nombre', _style: {width: '20%'}},\n {key: 'lastname', label: 'Apellidos', _style: {width: '20%'}},\n {key: 'phone', label: 'Teléfono', _style: {width: '20%'}},\n {key: 'username', label: 'Nombre Usuario', _style: {width: '20%'}},\n {\n key: 'show_details',\n label: '',\n _style: {width: '1%'},\n sorter: false,\n filter: false\n },\n {\n key: 'delete',\n label: '',\n _style: {width: '1%'},\n sorter: false,\n filter: false\n }\n]\n\nconst Users = () => {\n const history = useHistory()\n const [loading, setLoading] = useState(true)\n const [users, setUsers] = useState([])\n const [danger, setDanger] = useState(false)\n const [selectedUser, setSelectedUser] = useState({})\n \n function deleteUser() {\n crudService.remove('/user', \n selectedUser,\n setSelectedUser,\n fetchUsers,\n 'El usuario se eliminó correctamente.',\n 'Ocurrió un error eliminando el usuario.')\n }\n \n async function fetchUsers() {\n await crudService.list('user', setUsers, setLoading);\n }\n\n const renderUsersTable = () => {\n return (\n \n \n \n \n setDanger(!danger)}\n color=\"danger\"\n >\n \n Confirmación\n \n \n ¿Está seguro que desea eliminar el usuario?\n \n \n {\n setDanger(!danger);\n deleteUser();\n }}>Sí{' '}\n {\n setDanger(!danger)\n setSelectedUser({})\n } }>No\n \n \n \n \n \n \n \n \n \n \n Lista de usuarios
\n
\n \n {\n history.push(`/users/create`)\n }} type=\"button\" size=\"md\" color=\"primary\" className=\"mr-2 float-right\">+ Crear nuevo usuario\n \n
\n
\n \n {\n return (\n \n {\n history.push(`/users/edit/${item.id}`)\n }}\n >\n Modificar\n \n \n )\n },\n 'delete': (item, index) => {\n return (\n \n {\n setDanger(!danger);\n setSelectedUser(item);\n }}\n >\n Eliminar\n \n \n )\n }\n }}\n />\n \n
\n
\n
\n
\n
\n )\n }\n\n useEffect(() => {\n fetchUsers()\n }, []);\n\n let contents = loading\n ?

Cargando...

\n : renderUsersTable();\n\n return (contents)\n}\n\nexport default Users","import React from 'react'\n\nexport const selectHelper = {\n populateSelectControl\n};\n\nfunction populateSelectControl(data, idProperty, valueProperty, setFunction) {\n const options = [];\n for (let i = 0; i < data.length; i++) {\n options.push({\n value: data[i][idProperty],\n label: data[i][valueProperty]\n })\n }\n setFunction(options);\n};","import React, {useEffect, useState} from 'react'\nimport es from 'date-fns/locale/es';\nimport {Link, useHistory} from 'react-router-dom';\nimport {crudService} from \"../../_services/crud.service\";\nimport {\n CCard,\n CButton,\n CCardBody,\n CCardHeader,\n CCol,\n CFormGroup,\n CInput,\n CCardFooter,\n CLabel,\n CRow,\n CForm,\n CContainer,\n CInvalidFeedback\n} from '@coreui/react'\nimport CIcon from '@coreui/icons-react'\nimport {alertService} from \"../../_services/alert.service\";\nimport Select from \"react-select\";\nimport {authenticationService} from \"../../_services/authentication.service\";\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport {selectHelper} from \"../../_helpers/select.helper\";\nimport {Role} from \"../../_helpers/role\";\nimport AuthProvider from \"../../AuthProvider\";\n\nconst User = ({match}) => {\n const history = useHistory();\n const [existingUser, setUser] = useState({\n projectIds: []\n });\n const [roles, setRoles] = useState([]);\n const [bosses, setBosses] = useState([]);\n const [countries, setCountries] = useState([]);\n const [projects, setProjects] = useState([]);\n const [paymentMethods, setPaymentMethods] = useState([]);\n const { id } = match.params;\n const isAddMode = !id;\n \n useEffect(() => {\n if (!isAddMode) {\n async function fetchUser() {\n crudService.get(`user/${id}`, (data) => {\n setUser(data);\n }, 'Ocurrió un error obteniendo el usuario')\n }\n\n fetchUser()\n }\n }, []);\n \n useEffect(() => {\n async function fetchCountries() {\n crudService.get('/country/getCurrentUserCountry', (data) => {\n selectHelper.populateSelectControl([data], \"id\", \"name\", setCountries);\n }, 'Ocurrió un error listando los paises.');\n }\n \n fetchCountries();\n }, [existingUser.countryId]);\n \n useEffect(() => {\n async function fetchRoles() {\n crudService.get('role', (data) => {\n selectHelper.populateSelectControl(data, \"id\", \"name\", setRoles);\n }, 'Ocurrió un error listando los roles.');\n }\n\n fetchRoles();\n }, []);\n\n useEffect(() => {\n async function fetchProjects() {\n crudService.get('project/getAllProjects/false', (data) => {\n selectHelper.populateSelectControl(data, \"id\", \"name\", setProjects);\n }, 'Ocurrió un error listando las zonas.');\n }\n\n fetchProjects();\n }, []);\n \n useEffect(() => {\n async function fetchPaymentMethods() {\n if (!isAddMode && existingUser.paymentMethods && existingUser.paymentMethods.length > 0) {\n setPaymentMethods(existingUser.paymentMethods);\n return;\n }\n \n if (!existingUser.countryId) {\n return;\n }\n crudService.get(`/country/getCountryPaymentMethods/${existingUser.countryId}`, (data) => {\n setPaymentMethods(data);\n }, 'Ocurrió un error listando los métodos de pago.');\n }\n \n fetchPaymentMethods();\n }, [existingUser.countryId]);\n\n useEffect(() => {\n async function fetchBosses() {\n if (!existingUser.roleId) {\n return;\n }\n crudService.get(`user/getPossibleBosses/${existingUser.roleId}`, (data) => {\n selectHelper.populateSelectControl(data, \"id\", \"fullName\", setBosses);\n }, 'Ocurrió un error listando los usuarios.');\n }\n\n fetchBosses();\n }, [existingUser.roleId]);\n \n function updateUser() {\n if (typeof existingUser.birth === 'string') {\n existingUser.birth = new Date(existingUser.birth);\n }\n existingUser.yearBirth = existingUser.birth.getFullYear();\n existingUser.monthBirth = existingUser.birth.getMonth() + 1;\n existingUser.dayBirth = existingUser.birth.getDate();\n crudService.update('/user', existingUser,\n (data) => {},\n 'El usuario se modificó correctamente.',\n 'Ocurrió un error modificando el usuario.');\n }\n \n function createUser() {\n crudService.create('/user',\n {\n yearBirth: existingUser.birth.getFullYear(),\n monthBirth: existingUser.birth.getMonth() + 1,\n dayBirth: existingUser.birth.getDate(),\n ...existingUser\n },\n (response) => {\n alertService.success('El usuario se creó correctamente.');\n setUser(response.data);\n history.push('/users')\n },\n 'Ocurrió un error creando el usuario.')\n }\n \n const renderUserForm = () => {\n const handleSubmit = event => {\n event.preventDefault();\n \n const form = event.currentTarget;\n \n if (form.checkValidity()) {\n if (authenticationService.isManager && existingUser.projectIds.length === 0) {\n alertService.error(\"El proyecto es requerido.\");\n return;\n }\n if (!existingUser.countryId) {\n alertService.error(\"El país es requerido.\");\n return;\n }\n if (!existingUser.roleId) {\n alertService.error(\"El rol es requerido.\");\n return;\n }\n if (!existingUser.bossId) {\n alertService.error(\"El encargado es requerido.\");\n return;\n }\n if (!existingUser.birth) {\n alertService.error(\"La fecha de nacimiento es requerida.\");\n return;\n }\n if (!existingUser.paymentMethods || existingUser.paymentMethods.length === 0) {\n alertService.error(\"La información bancaria es requerida.\");\n return;\n }\n isAddMode ? createUser() : updateUser();\n }\n }\n return (\n \n \n \n \n \n \n {isAddMode ? 'Crear usuario' : 'Editar usuario'}\n \n \n \n \n Rol\n option.value === existingUser.roleId)}\n onChange={(e) => {\n setUser({...existingUser, roleId: e.value});\n }}\n placeholder={\"Seleccione un rol\"}\n noOptionsMessage={() => \"No hay roles\"}\n options={roles}/>\n El rol es requerido.\n \n \n Encargado\n option.value === existingUser.bossId)}\n onChange={(e) => {\n setUser({...existingUser, bossId: e.value});\n }}\n placeholder={\"Seleccione un encargado\"}\n noOptionsMessage={() => \"No hay encargados\"}\n options={bosses}/>\n El encargado es requerido.\n \n \n Número documento identidad\n {\n setUser({...existingUser, dni: e.target.value});\n }}\n />\n El número documento identidad es requerido.\n \n \n Nombre Punto de Venta\n {\n setUser({...existingUser, name: e.target.value});\n }}\n />\n El nombre del punto de venta es requerido.\n \n \n Apellidos Usuario\n {\n setUser({...existingUser, lastname: e.target.value});\n }}/>\n Los apellidos del usuario son requeridos\n \n \n Zonas\n existingUser.projectIds.includes(option.value))}\n onChange={(e) => {\n existingUser.projectIds = [];\n const projectIds = [];\n for (let i = 0; i < e.length; i++) {\n projectIds.push(e[i].value);\n }\n setUser({...existingUser, projectIds: projectIds});\n }}\n placeholder={\"Seleccione las zonas\"}\n noOptionsMessage={() => \"No hay zonas\"}\n options={projects}/>\n El proyecto es requerido.\n \n \n Fecha de nacimiento\n setUser({...existingUser, birth: date})}\n className=\"form-control\"\n />\n La fecha de nacimiento es requerida.\n \n \n Dirección\n {\n setUser({...existingUser, address: e.target.value});\n }}/>\n La dirección es requerida.\n \n \n Email\n {\n setUser({...existingUser, email: e.target.value});\n }}/>\n El correo electrónico es requerido.\n \n \n Teléfono\n {\n setUser({...existingUser, phone: e.target.value});\n }}/>\n El teléfono es requerido.\n \n \n Nombre propietario Punto venta\n {\n setUser({...existingUser, phone2: e.target.value});\n }}/>\n \n \n Nombre de usuario (iniciar sesión)\n {\n setUser({...existingUser, username: e.target.value});\n }}/>\n El nombre de usuario es requerido.\n \n \n Contraseña\n {\n setUser({...existingUser, password: e.target.value});\n }}/>\n La contraseña es requerida.\n \n \n Guardar\n Cancelar\n \n \n \n \n \n \n \n \n {'Información bancaria'}\n \n \n {e.preventDefault(); return false;}}>\n \n País:\n option.value === existingUser.countryId)}\n onChange={(e) => {\n setUser({...existingUser, countryId: e.value});\n }}\n placeholder={\"Seleccione un país\"}\n noOptionsMessage={() => \"No hay paises\"}\n options={countries}/>\n \n {\n paymentMethods.map((paymentMethod, i) => {\n return \n {paymentMethod.paymentMethodName}\n {\n const paymentMethods = existingUser.paymentMethods || [];\n let payM = paymentMethods.find(value => value.paymentMethodId === e.target.id);\n if (!payM) {\n payM = {\n paymentMethodId: e.target.id,\n value: e.target.value,\n userId: existingUser.id\n };\n paymentMethods.push(payM);\n } else {\n payM.paymentMethodId = e.target.id;\n payM.value = e.target.value;\n payM.userId = existingUser.id;\n }\n setUser({...existingUser, paymentMethods: paymentMethods});\n }}\n id={paymentMethod.paymentMethodId || paymentMethod.id}/>\n \n })\n }\n \n \n \n \n \n \n \n \n \n );\n }\n\n return (renderUserForm(existingUser))\n}\n\nexport default User\n","import React, {useState, useEffect} from 'react';\nimport {useHistory} from 'react-router-dom'\nimport {crudService} from \"../../_services/crud.service\";\nimport {\n CContainer,\n CCardBody,\n CCardHeader,\n CRow,\n CCol,\n CButton,\n CDataTable,\n CCard,\n CModal,\n CModalBody,\n CModalFooter,\n CModalHeader,\n CModalTitle\n} from '@coreui/react'\nimport {Role} from \"../../_helpers/role\";\nimport AuthProvider from \"../../AuthProvider\";\n\nconst fields = [\n {key: 'description', label: 'Descripción', _style: {width: '20%'}},\n {key: 'prize', label: 'Premio', _style: {width: '20%'}},\n {key: 'prizePoolFormatted', label: 'Acumulado %', _style: {width: '20%'}},\n {key: 'bucketFormatted', label: 'Fondos proyecto %', _style: {width: '20%'}},\n {key: 'closeAmPmFormat', label: 'Hora de Cierre', _style: {width: '20%'}},\n {\n key: 'show_details',\n label: '',\n _style: {width: '1%'},\n sorter: false,\n filter: false\n },\n {\n key: 'delete',\n label: '',\n _style: {width: '1%'},\n sorter: false,\n filter: false\n }\n]\n\nconst Lotteries = () => {\n const history = useHistory()\n const [loading, setLoading] = useState(true)\n const [lotteries, setLotteries] = useState([])\n const [danger, setDanger] = useState(false)\n const [selectedLottery, setSelectedLottery] = useState({})\n \n function deleteLottery() {\n crudService.remove('/lottery',\n selectedLottery,\n setSelectedLottery,\n fetchLotteries,\n 'El sorteo se eliminó correctamente.',\n 'Ocurrió un error eliminando el sorteo.')\n }\n\n async function fetchLotteries() {\n await crudService.list('lottery', setLotteries, setLoading);\n }\n\n const renderLotteriesTable = () => {\n return (\n \n \n \n \n setDanger(!danger)}\n color=\"danger\"\n >\n \n Confirmación\n \n \n ¿Está seguro que desea eliminar el sorteo?\n \n \n {\n setDanger(!danger);\n deleteLottery();\n }}>Sí{' '}\n {\n setDanger(!danger)\n setSelectedLottery({})\n } }>No\n \n \n \n \n \n \n \n \n \n \n Lista de sorteos
\n
\n \n {\n history.push(`/lotteries/create`)\n }} type=\"button\" size=\"md\" color=\"primary\" className=\"mr-2 float-right\">+ Crear nuevo sorteo\n \n
\n
\n \n {\n return (\n \n {\n history.push(`/lotteries/edit/${item.id}`)\n }}\n >\n Modificar\n \n \n )\n },\n 'delete': (item, index) => {\n return (\n \n {\n setDanger(!danger);\n setSelectedLottery(item);\n }}\n >\n Eliminar\n \n \n )\n }\n }}\n />\n \n
\n
\n
\n
\n
\n )\n }\n\n useEffect(() => {\n fetchLotteries()\n }, []);\n\n let contents = loading\n ?

Cargando...

\n : renderLotteriesTable();\n\n return (contents)\n}\n\nexport default Lotteries","export const hoursHelper = {\n generateForOptions,\n toAMPM\n};\n\nfunction toAMPM(value) {\n if (value === undefined) {\n return \"-\";\n }\n\n const totalMinutes = value * 60;\n const hours = Math.floor(totalMinutes / 60);\n const minutes = Math.round(totalMinutes % 60); // This will give you exact 5-minute increments\n\n const isPM = hours >= 12;\n const adjustedHour = (hours % 12) || 12;\n\n return `${adjustedHour.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')} ${isPM ? 'PM' : 'AM'}`;\n}\n\nfunction generateForOptions() {\n const min = 0; // Starting at 12:00 AM\n const max = 24; // Up to 12:00 AM of the next day\n const interval = 5 / 60; // 5 minutes as a fraction of an hour\n const options = [];\n\n for (let value = min; value < max; value += interval) {\n const valueRounded = Math.round(value * 100) / 100; // Rounding to two decimal places\n if (valueRounded === 24) {\n continue;\n }\n const label = toAMPM(valueRounded);\n options.push({\n label: label,\n value: valueRounded\n });\n }\n\n return options;\n}","import React, {useEffect, useState} from 'react'\nimport {Link, useHistory} from 'react-router-dom';\nimport {crudService} from \"../../_services/crud.service\";\nimport {\n CCard,\n CButton,\n CCardBody,\n CCardHeader,\n CCol,\n CFormGroup,\n CInput,\n CCardFooter,\n CLabel,\n CRow,\n CForm,\n CContainer,\n CInvalidFeedback,\n CInputGroup,\n CInputGroupAppend,\n CInputGroupText\n} from '@coreui/react'\nimport CIcon from '@coreui/icons-react'\nimport {alertService} from \"../../_services/alert.service\";\nimport Select from \"react-select\";\nimport {hoursHelper} from \"../../_helpers/hours.helper\";\nimport {selectHelper} from \"../../_helpers/select.helper\";\nimport AuthProvider from \"../../AuthProvider\";\nimport {Role} from \"../../_helpers/role\";\n\nconst Lottery = ({match}) => {\n const history = useHistory();\n const [existingLottery, setLottery] = useState({});\n const [hours, setHours] = useState([]);\n const [selectedHour, setSelectedHour] = useState({});\n const { id } = match.params;\n const isAddMode = !id;\n\n useEffect(() => {\n setHours(hoursHelper.generateForOptions());\n }, [])\n \n useEffect(() => {\n if (!isAddMode) {\n async function fetchLottery() {\n const response = await fetch(`lottery/${id}`);\n const data = await response.json();\n setLottery(data);\n setSelectedHour({...selectedHour, value: data.close});\n }\n\n fetchLottery()\n }\n }, []);\n \n function updateLottery(){\n crudService.update('/lottery',\n existingLottery,\n (response) => {\n alertService.success('El sorteo se creó correctamente.');\n history.push('/lotteries')\n },\n 'El sorteo se modificó correctamente.',\n 'Ocurrió un error modificando el sorteo.');\n }\n\n function createLottery() {\n crudService.create('/lottery',\n existingLottery,\n (response) => {\n alertService.success('El sorteo se creó correctamente.');\n history.push('/lotteries')\n },\n 'Ocurrió un error creando el sorteo.')\n }\n\n const renderLotteriesForm = () => {\n const handleSubmit = event => {\n event.preventDefault();\n\n const form = event.currentTarget;\n\n if (form.checkValidity()) {\n if (existingLottery.close === undefined) {\n alertService.error(\"La hora de cierre es requerida.\");\n return;\n }\n isAddMode ? createLottery() : updateLottery();\n }\n }\n return (\n \n \n \n \n \n \n {isAddMode ? 'Crear sorteo' : 'Editar sorteo'}\n \n \n \n \n Descripción\n {\n setLottery({...existingLottery, description: e.target.value});\n }}\n />\n La descripción es requerida.\n \n \n Premio\n {\n setLottery({...existingLottery, prize: e.target.value});\n }}/>\n El premio es requerido.\n \n \n Fondos proyecto\n \n {\n setLottery({...existingLottery, bucket: e.target.value});\n }}/>\n \n %\n \n Los fondos del proyecto es requerido.\n \n \n \n Acumulado\n \n {\n setLottery({...existingLottery, prizePool: e.target.value});\n }}/>\n \n %\n \n El acumulado es requerido.\n \n \n \n Hora de Cierre\n {\n setLottery({...existingLottery, close: e.value});\n setSelectedHour(e)\n }}\n placeholder={\"Seleccione una hora\"}\n noOptionsMessage={() => \"No hay horas\"}\n options={hours}/>\n La hora de cierre es requerido.\n \n \n Guardar\n Cancelar\n \n \n \n \n \n \n \n \n );\n }\n\n return (renderLotteriesForm(existingLottery))\n}\n\nexport default Lottery\n","import React, {useState, useEffect} from 'react';\nimport {useHistory} from 'react-router-dom'\nimport {crudService} from \"../../_services/crud.service\";\nimport {\n CContainer,\n CCardBody,\n CCardHeader,\n CRow,\n CCol,\n CButton,\n CDataTable,\n CCard,\n CModal,\n CModalBody,\n CModalFooter,\n CModalHeader,\n CModalTitle, CLabel\n} from '@coreui/react'\nimport {Role} from \"../../_helpers/role\";\nimport Select from \"react-select\";\nimport {selectHelper} from \"../../_helpers/select.helper\";\nimport AuthProvider from \"../../AuthProvider\";\n\nconst fields = [\n {key: 'number', label: 'Número', _style: {width: '20%'}},\n {key: 'lottery', label: 'Sorteo', _style: {width: '20%'}},\n {key: 'amount', label: 'Monto', _style: {width: '20%'}},\n {key: 'role', label: 'Rol Usuario', _style: {width: '20%'}},\n {key: 'user', label: 'Usuario', _style: {width: '20%'}},\n {\n key: 'show_details',\n label: '',\n _style: {width: '1%'},\n sorter: false,\n filter: false\n },\n {\n key: 'delete',\n label: '',\n _style: {width: '1%'},\n sorter: false,\n filter: false\n }\n]\n\nconst Restrictions = () => {\n const history = useHistory();\n const [loading, setLoading] = useState(true);\n const [restrictions, setRestrictions] = useState([]);\n const [danger, setDanger] = useState(false);\n const [selectedRestriction, setSelectedRestriction] = useState({});\n const [lotteries, setLotteries] = useState([]);\n const [selectedLotteryId, setSelectedLotteryId] = useState(null);\n\n function deleteUser() {\n crudService.remove('/restriction',\n selectedRestriction,\n setSelectedRestriction,\n fetchRestrictions,\n 'La restricción se eliminó correctamente.',\n 'Ocurrió un error eliminando la restricción.')\n }\n\n async function fetchRestrictions() {\n if (!selectedLotteryId) {\n setLoading(false);\n setRestrictions([]);\n return;\n }\n\n await crudService.list(`restriction/getRestrictionsByLotteryId/${selectedLotteryId}`, setRestrictions, setLoading);\n }\n \n useEffect(() => {\n fetchRestrictions()\n }, [selectedLotteryId]);\n\n useEffect(() => {\n async function fetchLotteries() {\n crudService.get(`lottery/getByCountryId`, (data) => {\n setLotteries(data);\n selectHelper.populateSelectControl(data, \"id\",\n \"description\",\n setLotteries);\n }, 'Ocurrió un error listando los sorteos.')\n }\n\n fetchLotteries();\n }, []);\n\n const renderUsersTable = () => {\n return (\n \n \n \n \n setDanger(!danger)}\n color=\"danger\"\n >\n \n Confirmación\n \n \n ¿Está seguro que desea eliminar la restricción?\n \n \n {\n setDanger(!danger);\n deleteUser();\n }}>Sí{' '}\n {\n setDanger(!danger)\n setSelectedRestriction({})\n } }>No\n \n \n \n \n \n \n \n \n \n \n Lista de restricciones
\n
\n \n {\n history.push(`/restrictions/create`)\n }} type=\"button\" size=\"md\" color=\"primary\" className=\"mr-2 float-right\">+ Crear nuevo restricción\n \n
\n \n \n Sorteo\n option.value === selectedLotteryId)}\n onChange={(e) => {\n setSelectedLotteryId(e.value);\n }}\n placeholder={\"Seleccione un sorteo\"}\n noOptionsMessage={() => \"No hay sorteos\"}\n options={lotteries}/>\n \n \n
\n \n {\n return (\n \n {\n history.push(`/restrictions/edit/${item.id}`)\n }}\n >\n Modificar\n \n \n )\n },\n 'delete': (item, index) => {\n return (\n \n {\n setDanger(!danger);\n setSelectedRestriction(item);\n }}\n >\n Eliminar\n \n \n )\n }\n }}\n />\n \n
\n
\n
\n
\n
\n )\n }\n\n let contents = loading\n ?

Cargando...

\n : renderUsersTable();\n\n return (contents)\n}\n\nexport default Restrictions","import React from 'react'\n\nexport const numberHelper = {\n generate,\n generateForOptions\n};\n\nfunction generate() {\n const min = 0;\n const max = 99;\n const numbers = [];\n for(let i = min; i <= max; i++) {\n numbers.push(i);\n }\n \n return numbers;\n}\n\nfunction generateForOptions() {\n const numbers = generate();\n const options = [];\n for(let i = 0; i < numbers.length; i++) {\n options.push({\n label: i,\n value: i\n });\n }\n\n return options;\n \n}","import React, {useEffect, useState} from 'react'\nimport Select from 'react-select';\nimport {Link, useHistory} from 'react-router-dom';\nimport {crudService} from \"../../_services/crud.service\";\nimport {\n CCard,\n CButton,\n CCardBody,\n CCardHeader,\n CCol,\n CFormGroup,\n CInput,\n CCardFooter,\n CLabel,\n CRow,\n CForm,\n CContainer,\n CInvalidFeedback\n} from '@coreui/react'\nimport CIcon from '@coreui/icons-react'\nimport {alertService} from \"../../_services/alert.service\";\nimport {numberHelper} from \"../../_helpers/number.helper\";\nimport {selectHelper} from \"../../_helpers/select.helper\";\nimport {Role} from \"../../_helpers/role\";\nimport AuthProvider from \"../../AuthProvider\";\n\nconst Restriction = ({match}) => {\n const history = useHistory();\n const [existingRestriction, setRestriction] = useState({});\n const [selectedUser, setSelectedUser] = useState(\"00000000-0000-0000-0000-000000000000\");\n const [lotteries, setLotteries] = useState([]);\n const [users, setUsers] = useState([]);\n const [roles, setRoles] = useState([]);\n const [numbers, setNumbers] = useState([]);\n const {id} = match.params;\n const isAddMode = !id;\n \n useEffect(() => {\n if (!isAddMode) {\n async function fetchRestriction() {\n crudService.get(`restriction/${id}`, \n setRestriction, \n 'Ocurrió un error obteniendo la restricción');\n }\n\n fetchRestriction()\n }\n }, []);\n\n useEffect(() => {\n async function fetchLotteries() {\n crudService.get(`lottery/getByCountryId`, (data) => {\n selectHelper.populateSelectControl(data, \"id\", \"description\", setLotteries);\n }, 'Ocurrió un error listando los sorteos.');\n }\n\n fetchLotteries();\n }, []);\n\n useEffect(() => {\n async function fetchUsers() {\n const roleId = existingRestriction.roleId ? existingRestriction.roleId : \"00000000-0000-0000-0000-000000000000\";\n crudService.get(`user/getAllUsers/true/${roleId}`, (data) => {\n selectHelper.populateSelectControl(data, \"id\", \"name\", setUsers);\n }, 'Ocurrió un error listando los usuarios.');\n }\n\n fetchUsers();\n }, [existingRestriction.roleId]);\n \n useEffect(() => {\n async function fetchRoles() {\n crudService.get('role/getAllRoles/true', (data) => {\n selectHelper.populateSelectControl(data, \"id\", \"name\", setRoles);\n }, 'Ocurrió un error listando los roles.');\n }\n\n fetchRoles();\n }, []);\n\n useEffect(() => {\n setNumbers(numberHelper.generateForOptions());\n }, [])\n\n function updateRestriction() {\n crudService.update('/restriction',\n existingRestriction,\n setRestriction,\n 'La restricción se modificó correctamente.',\n 'Ocurrió un error modificando la restricción.');\n }\n\n function createRestriction() {\n crudService.create('/restriction',\n existingRestriction,\n (response) => {\n alertService.success('La restricción se creó correctamente.');\n setRestriction(response.data);\n history.push('/restrictions')\n },\n 'Ocurrió un error creando la restricción.')\n }\n\n const renderRestrictionsForm = () => {\n const handleSubmit = event => {\n event.preventDefault();\n\n const form = event.currentTarget;\n\n if (form.checkValidity()) {\n if (!existingRestriction.lotteryId) {\n alertService.error(\"El sorteo es requerido.\");\n return;\n }if (existingRestriction.number === undefined) {\n alertService.error(\"El número es requerido.\");\n return;\n }\n isAddMode ? createRestriction() : updateRestriction();\n }\n }\n return (\n \n \n \n \n \n \n {isAddMode ? 'Crear restricción' : 'Editar restricción'}\n \n \n \n \n Sorteo\n option.value === existingRestriction.lotteryId)}\n onChange={(e) => {\n setRestriction({...existingRestriction, lotteryId: e.value});\n }}\n placeholder={\"Seleccione un sorteo\"}\n noOptionsMessage={() => \"No hay sorteos\"}\n options={lotteries}/>\n El sorteo es requerido.\n \n \n Rol de usuario\n option.value === existingRestriction.roleId)}\n onChange={(e) => {\n setSelectedUser(\"00000000-0000-0000-0000-000000000000\");\n setRestriction({...existingRestriction, roleId: e.value});\n }}\n placeholder={\"Todos\"}\n noOptionsMessage={() => \"No hay roles\"}\n options={roles}/>\n El rol es requerido.\n \n \n Usuario\n option.value === existingRestriction.userId)}\n onChange={(e) => {\n setRestriction({...existingRestriction, userId: e.value});\n setSelectedUser(e.value);\n }}\n placeholder={\"Todos\"}\n noOptionsMessage={() => \"No hay usuarios\"}\n options={users}/>\n El usuario es requerido.\n \n \n Número\n option.value === existingRestriction.number)}\n onChange={(e) => {\n setRestriction({...existingRestriction, number: e.value});\n }}\n placeholder={\"Seleccione un número\"}\n noOptionsMessage={() => \"No hay números\"}\n options={numbers}/>\n El número es requerido.\n \n \n Monto\n {\n setRestriction({\n ...existingRestriction,\n amount: e.target.value\n });\n }}/>\n El monto es requerido.\n \n \n Guardar\n Cancelar\n \n \n \n \n \n \n \n \n );\n }\n\n return (renderRestrictionsForm())\n}\n\nexport default Restriction","import React, {useEffect, useState} from 'react'\nimport Select from 'react-select';\nimport {Link, useHistory} from 'react-router-dom';\nimport {crudService} from \"../../_services/crud.service\";\nimport {numberHelper} from \"../../_helpers/number.helper\";\nimport { saveAs } from 'file-saver';\nimport {\n CCard,\n CButton,\n CCardBody,\n CCardHeader,\n CCol,\n CFormGroup,\n CInput,\n CCardFooter,\n CLabel,\n CRow,\n CForm,\n CContainer,\n CInvalidFeedback,\n CDataTable,\n CImg,\n CModal,\n CModalBody,\n CModalHeader,\n CModalFooter, CInputGroupText, CInputGroupPrepend, CInputGroup\n} from '@coreui/react'\nimport CIcon from '@coreui/icons-react'\nimport {alertService} from \"../../_services/alert.service\";\nimport {hoursHelper} from \"../../_helpers/hours.helper\";\nimport {dateHelper} from \"../../_helpers/date.helper\";\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport es from \"date-fns/locale/es\";\nimport {selectHelper} from \"../../_helpers/select.helper\";\nimport AuthProvider from \"../../AuthProvider\";\nimport {Role} from \"../../_helpers/role\";\nimport {authenticationService} from \"../../_services/authentication.service\";\n\nlet checkCount = 0;\nconst fields = [\n {key: 'number', label: 'Número', _style: {width: '50%'}},\n {key: 'amount', label: 'Monto', _style: {width: '50%'}},\n {\n key: 'delete',\n label: '',\n _style: {width: '1%'},\n sorter: false,\n filter: false\n }\n]\n\nconst Sale = () => {\n const history = useHistory();\n const [existingSale, setExistingSale] = useState({});\n const [selectedLotteryId, setSelectedLotteryId] = useState(null);\n const [lotteries, setLotteries] = useState([]);\n const [sales, setSales] = useState([]);\n const [salesAmount, setSalesAmount] = useState(0);\n const [numbers, setNumbers] = useState(0);\n const [selectedNumber, setSelectedNumber] = useState(0);\n const [selectedLottery, setSelectedLottery] = useState({});\n const [isDisabled, setIsDisabled] = useState(true);\n const [disabledControls, setDisabledControls] = useState(false);\n const [projects, setProjects] = useState([]);\n const [sourceImg, setSourceImg] = useState(\"\");\n const [showReceipt, setShowReceipt] = useState(false);\n const [newBillNumber, setNewBillNumber] = useState(null);\n const [isSaleInProcess, setIsSaleInProcess] = useState(false);\n const [saveTextBtn, setSaveTextBtn] = useState(\"Guardar\");\n //const [countryCode, setCountryCode] = useState(null);\n\n useEffect(() => {\n if (!selectedLotteryId) {\n return;\n }\n crudService.get(`lottery/${selectedLotteryId}`, setSelectedLottery, 'Ocurrió un error obteniendo el sorteo');\n }, [selectedLotteryId]);\n\n useEffect(() => {\n setNumbers(numberHelper.generateForOptions());\n }, []);\n\n /*useEffect(() => {\n async function fetchCountryCode() {\n crudService.get('User/getCountryCode', (code) => {\n setCountryCode(code);\n }, 'Ocurrió un error obteniendo el código del país.')\n }\n\n fetchCountryCode();\n }, []);*/\n\n useEffect(() => {\n setSales(sales);\n }, [salesAmount]);\n\n useEffect(() => {\n async function fetchProjects() {\n crudService.get('project/getAllProjects/false', (data) => {\n selectHelper.populateSelectControl(data, \"id\", \"name\", (options) => {\n setProjects(options);\n if (options.length === 1) {\n setExistingSale({...existingSale, projectId: options[0].value})\n }\n });\n }, 'Ocurrió un error listando las zonas.');\n }\n\n fetchProjects();\n }, []);\n\n useEffect(() => {\n async function fetchLotteries() {\n crudService.get(`lottery/getByCountryId`, (data) => {\n selectHelper.populateSelectControl(data, \"id\",\n \"description\",\n setLotteries);\n }, 'Ocurrió un error listando los sorteos.')\n }\n\n fetchLotteries();\n }, []);\n\n function createSale() {\n if (sales.length === 0) {\n return;\n }\n setExistingSale({...existingSale, numbers: sales});\n existingSale.numbers = sales;\n crudService.create('/sale',\n {\n year: existingSale.raffleDate.getFullYear(),\n month: existingSale.raffleDate.getMonth() + 1,\n day: existingSale.raffleDate.getDate(),\n ...existingSale\n },\n (response) => {\n setIsSaleInProcess(true);\n setSaveTextBtn(\"Procesando...\");\n checkCount = 0;\n checkSaleStatus(response.data);\n },\n 'Ocurrió un error creando la venta.')\n }\n\n function checkSaleStatus(saleId) {\n crudService.get(`/sale/isSaleDone/${saleId}`, (exists) => {\n if (exists) {\n alertService.success('La venta se creó correctamente.');\n setIsDisabled(true);\n setNewBillNumber(saleId);\n crudService.get(`/sale/getSaleReceipt/${saleId}`, (receipt) => {\n setSourceImg(`data:image/png;base64,${receipt}`);\n setShowReceipt(true);\n setIsSaleInProcess(false);\n setSaveTextBtn(\"Guardar\");\n });\n } else {\n if (checkCount < 3) {\n checkCount++;\n setTimeout(() => checkSaleStatus(saleId), 3000 * (checkCount + 1));\n } else {\n setIsSaleInProcess(false);\n setSaveTextBtn(\"Guardar\");\n alertService.error('No se pudo verificar si la venta se completó. Puede revisar en unos minutos en la lista de ventas.');\n }\n }\n });\n }\n\n function addSale() {\n if (existingSale.number !== undefined) {\n const tempSales = [...sales.filter(obj => obj.number === existingSale.number), {\n number: existingSale.number, amount: existingSale.amount\n }];\n \n crudService.post('sale/cansellmore', {\n lotteryId: existingSale.lotteryId,\n year: existingSale.raffleDate.getFullYear(),\n month: existingSale.raffleDate.getMonth() + 1,\n day: existingSale.raffleDate.getDate(),\n numbers: tempSales,\n lines: sales.length + 1\n }, (data) => {\n if (!data.data.canSellMore) {\n alertService.error(data.data.message)\n return;\n }\n\n sales.push({\n number: existingSale.number,\n amount: existingSale.amount\n })\n\n setSalesAmount(oldAmount => parseInt(oldAmount) + parseInt(existingSale.amount));\n }, 'Ocurrió un error agregando el número.');\n }\n }\n\n function removeSale(item, index) {\n sales.splice(index, 1);\n setSalesAmount(oldAmount => parseInt(oldAmount) - parseInt(item.amount));\n if (sales.length === 0) {\n setDisabledControls(false);\n }\n }\n\n function validateSale(date) {\n if (selectedLottery.close === undefined) {\n return;\n }\n \n if (!date) {\n setIsDisabled(true);\n return;\n }\n\n setIsDisabled(true);\n crudService.post('sale/validateSale', {\n lotteryId: selectedLotteryId,\n year: date.getFullYear(),\n month: date.getMonth() + 1,\n day: date.getDate()\n }, (data) => {\n if (!data.data.isValid) {\n setIsDisabled(true);\n alertService.error(`No se puede crear la venta. El sorteo ya cerró.`)\n return;\n }\n setIsDisabled(false);\n }, 'Ocurrió un error validando la venta.');\n }\n\n function ensurePrefix(phoneNumber) {\n if (!phoneNumber) {\n return '';\n }\n \n if (/^\\506/.test(phoneNumber)) {\n return phoneNumber; // Already starts with +506\n } else if (/^506(?=\\d{8}$)/.test(phoneNumber)) {\n return phoneNumber; // Starts with 506 and followed by 8 digits, so add +\n } else {\n return '506' + phoneNumber; // Otherwise, add +506\n }\n }\n\n const renderRestrictionsForm = () => {\n const handleSubmit = event => {\n event.preventDefault();\n\n const form = event.currentTarget;\n\n if (form.checkValidity()) {\n if (!existingSale.projectId) {\n alertService.error(\"El proyecto es requerido.\");\n return;\n }\n\n if (!existingSale.lotteryId) {\n alertService.error(\"El sorteo es requerido.\");\n return;\n }\n addSale();\n setDisabledControls(true);\n }\n }\n return (\n \n \n \n \n \n \n \n \n {'VENDER'}\n \n \n Hora cierre: {hoursHelper.toAMPM(selectedLottery.close)}\n \n \n \n \n \n \n Proyecto\n option.value === existingSale.projectId)}\n onChange={(e) => {\n setExistingSale({...existingSale, projectId: e.value});\n }}\n placeholder={\"Seleccione un proyecto\"}\n noOptionsMessage={() => \"No hay zonas\"}\n options={projects}/>\n El proyecto es requerido.\n \n \n Sorteo\n option.value === selectedLotteryId)}\n isDisabled={disabledControls}\n onChange={(e) => {\n setExistingSale({...existingSale, lotteryId: e.value});\n setSelectedLotteryId(e.value);\n setDisabledControls(false);\n validateSale(existingSale.raffleDate);\n }}\n placeholder={\"Seleccione un sorteo\"}\n noOptionsMessage={() => \"No hay sorteos\"}\n options={lotteries}/>\n El sorteo es requerido.\n \n \n Fecha\n {\n setExistingSale({...existingSale, raffleDate: raffleDate});\n validateSale(raffleDate);\n }}\n className=\"form-control\"\n />\n La fecha es requerido.\n \n \n Cliente\n {\n setExistingSale({...existingSale, client: e.target.value});\n }}/>\n El cliente es requerida.\n \n \n Número teléfono\n {\n setExistingSale({...existingSale, phoneNumber: e.target.value});\n }}/>\n El número de teléfono es\n requerido.\n \n {/*\n Número teléfono\n \n \n {countryCode}\n \n {\n setExistingSale({...existingSale, phoneNumber: e.target.value});\n }}/>\n El número de teléfono es\n requerido.\n \n */}\n \n \n Número\n {\n setExistingSale({...existingSale, number: e.value});\n setSelectedNumber(e.value);\n }}\n placeholder={\"Seleccione un número\"}\n noOptionsMessage={() => \"No hay números\"}\n options={numbers}/>\n El número es requerido.\n \n \n Monto\n {\n setExistingSale({\n ...existingSale,\n amount: e.target.value\n });\n }}/>\n El monto es requerido.\n \n \n + Agregar\n Cancelar\n \n \n \n \n \n \n \n \n {'VENDIDO'}\n \n \n {\n return (\n \n \n \n \n \n Total: {salesAmount}\n \n \n \n {\n createSale();\n }}>\n {saveTextBtn}\n \n \n \n \n \n {\n history.push(\"/sale\");\n }}>\n Seguir vendiendo\n \n \n \n \n \n {\n setShowReceipt(!showReceipt);\n }}>\n Tiquete\n \n \n \n \n \n \n \n \n {\n saveAs(`/sale/getSaleReceiptDownload/${newBillNumber}`, `${newBillNumber}.jpg`);\n window.open(`https://api.whatsapp.com/send?phone=${ensurePrefix(existingSale.phoneNumber)}`, '_blank', 'noreferrer');\n }}>Enviar WhatsApp{' '}\n {\n window.open(`/sale/getSaleReceiptDownload/${newBillNumber}`, '_blank', 'noreferrer');\n }}>Imprimir{' '}\n {\n setShowReceipt(!showReceipt);\n }}>Cerrar\n \n \n \n \n \n \n );\n }\n\n return (renderRestrictionsForm())\n}\n\nexport default Sale","import React, {useEffect, useState} from \"react\";\nimport {crudService} from \"../_services/crud.service\";\n\nconst NumberTable = ({sales}) => {\n const [countryCurrencySign, setCountryCurrencySign] = useState(null);\n let numbers = [];\n \n for(let i = 0; i < sales.length; i++) {\n numbers = [].concat(numbers, sales[i].numbers);\n }\n \n let firstFooter = 0;\n let secondFooter = 0;\n let thirdFooter = 0;\n let fourthFooter = 0;\n let fifthFooter = 0;\n let sixthFooter = 0;\n const findAmount = (number) => {\n if (!numbers.length) {\n return 0;\n }\n const found = numbers.filter(sale => sale.number === number);\n let amount = 0;\n for(let i = 0; i < found.length; i++) {\n amount += found[i].amount;\n }\n return amount;\n }\n\n useEffect(() => {\n async function fetchCountryCurrencySign() {\n crudService.get('User/getCountryCurrencySign', (currencySign) => {\n setCountryCurrencySign(currencySign);\n }, 'Ocurrió un error obteniendo el símbolo de la moneda.')\n }\n\n fetchCountryCurrencySign();\n }, []);\n \n const renderTable = () => {\n const rows = [];\n \n for(let i = 0; i < 17; i++) {\n const firstTd = i;\n const firstAmount = findAmount(firstTd);\n firstFooter += firstAmount;\n const secondTd = i + 17;\n const secondAmount = findAmount(secondTd);\n secondFooter += secondAmount;\n const thirdTd = i + 34;\n const thirdAmount = findAmount(thirdTd);\n thirdFooter += thirdAmount;\n const fourthTd = i + 51;\n const fourthAmount = findAmount(fourthTd);\n fourthFooter += fourthAmount;\n const fifthTd = i + 68;\n const fifthAmount = findAmount(fifthTd);\n fifthFooter += fifthAmount;\n const sixthTd = i + 85;\n const sixthAmount = findAmount(sixthTd);\n sixthFooter += sixthAmount;\n \n rows.push(\n \n {firstTd}\n {countryCurrencySign}{firstAmount}\n {secondTd}\n {countryCurrencySign}{secondAmount}\n {thirdTd}\n {countryCurrencySign}{thirdAmount}\n {fourthTd}\n {countryCurrencySign}{fourthAmount}\n {fifthTd}\n {countryCurrencySign}{fifthAmount}\n {sixthTd >= 100 ? : {sixthTd}}\n {sixthTd >= 100 ? : {countryCurrencySign}{sixthAmount}}\n )\n }\n return (rows);\n }\n \n const renderTableHeader = () => {\n return (\n \n Num\n Monto\n Num\n Monto\n Num\n Monto\n Num\n Monto\n Num\n Monto\n Num\n Monto\n \n )\n }\n \n const renderTableFooter = () => {\n return (\n \n \n {countryCurrencySign}{firstFooter}\n \n {countryCurrencySign}{secondFooter}\n \n {countryCurrencySign}{thirdFooter}\n \n {countryCurrencySign}{fourthFooter}\n \n {countryCurrencySign}{fifthFooter}\n \n {countryCurrencySign}{sixthFooter}\n \n )\n }\n \n return (\n {renderTableHeader()}\n \n {renderTable()}\n \n {renderTableFooter()}\n
);\n}\n\nexport default NumberTable;","import React, {useEffect, useState} from 'react';\nimport {\n CCard,\n CButton,\n CCardBody,\n CCardHeader,\n CCol,\n CRow,\n CContainer,\n CLabel,\n CDataTable,\n CModal,\n CModalHeader,\n CModalBody,\n CImg,\n CModalFooter,\n CSwitch,\n CModalTitle,\n CForm,\n CFormGroup, CInput, CCardFooter, CTextarea\n} from '@coreui/react'\nimport NumberTable from \"../../components/NumberTable\";\nimport Select from \"react-select\";\nimport {crudService} from \"../../_services/crud.service\";\nimport es from \"date-fns/locale/es\";\nimport DatePicker from \"react-datepicker\";\nimport {selectHelper} from \"../../_helpers/select.helper\";\nimport {Role} from \"../../_helpers/role\";\nimport AuthProvider from \"../../AuthProvider\";\nimport {authenticationService} from \"../../_services/authentication.service\";\nimport CIcon from \"@coreui/icons-react\";\nimport {alertService} from \"../../_services/alert.service\";\n\nconst salesFields = [\n {key: 'bill', label: 'Factura', _style: {width: '20%'}},\n {key: 'amountFormatted', label: 'Monto', _style: {width: '10%'}},\n {key: 'client', label: 'Cliente', _style: {width: '20%'}},\n {key: 'sale', label: 'Venta', _style: {width: '15%'}},\n {key: 'date', label: 'Fecha de compra', _style: {width: '20%'}},\n {key: 'prize', label: 'Premio', _style: {width: '20%'}},\n {key: 'prizeApplied', label: 'Aplicado', _style: {width: '20%'}},\n {key: 'prizePaid', label: 'Pagado', _style: {width: '20%'}},\n {key: 'prizePaidComment', label: 'Comentarios del pago', _style: {width: '20%'}},\n {key: 'cancellationDate', label: 'Fecha de anulación', _style: {width: '20%'}},\n {key: 'cancel', label: '', _style: {width: '1%'}, sorter: false, filter: false },\n {key: 'show_details', label: '', _style: { width: '1%' }, sorter: false, filter: false}\n]\n\nconst prizeFields = [\n {key: 'comment', label: 'Comentario', _style: {width: '30%'}},\n {key: 'paid', label: 'Pagado', _style: {width: '5%'}},\n {key: 'username', label: 'Usuario', _style: {width: '30%'}},\n {key: 'date', label: 'Fecha', _style: {width: '25%'}}\n]\n\nconst Sales = () => {\n const [sales, setSales] = useState([]);\n const [prizeComments, setPrizeComments] = useState([]);\n const [selectedDate, setSelectedDate] = useState(new Date());\n const [salesAmount, setSalesAmount] = useState(0);\n const [selectedLottery, setSelectedLottery] = useState(null);\n const [selectedUser, setSelectedUser] = useState(null);\n const [lotteries, setLotteries] = useState([]);\n const [users, setUsers] = useState([]);\n const [shouldRefresh, setShouldRefresh] = useState(false);\n const [newBillNumber, setNewBillNumber] = useState(null);\n const [sourceImg, setSourceImg] = useState(\"\");\n const [showReceipt, setShowReceipt] = useState(false);\n const [countryCurrencySign, setCountryCurrencySign] = useState(\"\");\n const [modify, setModify] = useState(false);\n const [comments, setComments] = useState(\"\");\n const [currentBill, setCurrentBill] = useState(null);\n \n function cancelSale(sale) {\n crudService.post('/sale/cancel',\n sale,\n () => {\n setShouldRefresh(!shouldRefresh);\n },\n 'La venta se anuló correctamente.',\n 'Ocurrió un error anulando la venta.');\n }\n\n useEffect(() => {\n async function fetchLotteries() {\n crudService.get(`lottery/getByCountryId`, (data) => {\n selectHelper.populateSelectControl(data, \"id\",\n \"description\",\n setLotteries);\n }, 'Ocurrió un error listando los sorteos.')\n }\n\n fetchLotteries();\n }, []);\n\n useEffect(() => {\n async function fetchUsers() {\n crudService.get('user/getAllUsers/true/00000000-0000-0000-0000-000000000000', (data) => {\n selectHelper.populateSelectControl(data, \"id\", \"name\", setUsers);\n }, 'Ocurrió un error listando los sorteos.');\n }\n\n fetchUsers();\n }, []);\n\n useEffect(() => {\n async function fetchCountryCurrencySign() {\n crudService.get('User/getCountryCurrencySign', (currencySign) => {\n setCountryCurrencySign(currencySign);\n }, 'Ocurrió un error obteniendo el símbolo de la moneda.')\n }\n\n fetchCountryCurrencySign();\n }, []);\n\n useEffect(() => {\n let totalAmount = 0;\n for (let i = 0; i < sales.length; i++) {\n totalAmount += sales[i].amount;\n }\n\n setSalesAmount(totalAmount);\n }, [sales]);\n\n useEffect(() => {\n async function fetchSales() {\n if (!selectedLottery || !selectedDate) {\n setSales([]);\n return;\n }\n \n crudService.getWithParams('sale/getsales', {\n \"lotteryId\": selectedLottery,\n \"userId\": selectedUser,\n year: selectedDate.getFullYear(),\n month: selectedDate.getMonth() + 1,\n day: selectedDate.getDate(),\n }, setSales, 'Ocurrió un error obteniendo las ventas.');\n }\n\n fetchSales();\n }, [selectedLottery, selectedUser, selectedDate, shouldRefresh]);\n\n useEffect(() => {\n async function fetchPrizeComments() {\n if (!currentBill) {\n setPrizeComments([])\n return;\n }\n\n crudService.get(`/sale/prizeComments/${currentBill}`, setPrizeComments, 'Ocurrió un error obteniendo los comentarios de la venta.');\n }\n\n fetchPrizeComments();\n }, [currentBill, modify]);\n\n const toggleStatus = (item) => {\n setCurrentBill(item.bill);\n setComments(item.prizePaidComment);\n setPrizeComments([]);\n setModify(!modify);\n };\n\n const handleSubmit = event => {\n event.preventDefault();\n\n const newData = sales.map((sale) => {\n if (sale.bill === currentBill) {\n return { ...sale, prizePaid: !sale.prizePaid };\n }\n return sale;\n });\n\n if (newData.length === 0) {\n return;\n }\n \n if (!currentBill) {\n return;\n }\n\n crudService.update('/sale/updatePrizePaid',\n {\n \"lotteryId\": selectedLottery,\n bill: currentBill,\n year: selectedDate.getFullYear(),\n month: selectedDate.getMonth() + 1,\n day: selectedDate.getDate(),\n prizePaid: newData[0].prizePaid,\n prizePaidComment: comments\n },\n () => {\n setShouldRefresh(!shouldRefresh);\n setCurrentBill(null);\n setComments(\"\");\n setModify(!modify);\n },\n 'La venta se actualizó.',\n 'Ocurrió un error actualizando la venta.');\n }\n\n const renderRestrictionsForm = () => {\n return (\n \n \n \n \n {\n setShowReceipt(!showReceipt);\n }}>\n Tiquete\n \n \n \n \n \n \n \n \n {\n window.open(`/sale/getSaleReceiptDownload/${newBillNumber}`, '_blank', 'noreferrer');\n }}>Imprimir{' '}\n {\n setShowReceipt(!showReceipt);\n }}>Cerrar\n \n \n \n \n \n \n setModify(!modify)}\n color=\"warning\">\n \n Confirmación\n \n \n \n \n ¿Está seguro que desea actualizar la venta?\n \n \n Comentarios\n {\n setComments(e.target.value);\n }}/>\n \n \n Actualizar\n {\n setModify(!modify)\n } }>Cancelar\n \n \n \n \n {\n return (\n \n {item.paid ? \"Sí\" : \"No\"}\n \n )\n },\n }}\n />\n \n \n \n \n \n \n \n \n \n \n {'Lista'}\n \n \n \n \n Sorteo\n option.value === selectedLottery)}\n onChange={(e) => {\n setSelectedLottery(e.value);\n }}\n placeholder={\"Seleccione un sorteo\"}\n noOptionsMessage={() => \"No hay sorteos\"}\n options={lotteries}/>\n \n \n Fecha\n {\n setSelectedDate(date);\n }}\n className=\"form-control\"\n />\n \n \n \n {\n setSelectedUser(e.value);\n }}\n placeholder={\"Seleccione un vendedor\"}\n noOptionsMessage={() => \"No hay vendedores\"}\n options={users}/>\n \n \n \n \n Total\n \n \n \n \n {countryCurrencySign}{salesAmount}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {'Compras'}\n \n \n {\n return (\n \n {item.prizeApplied ? \"Sí\" : \"No\"}\n \n )\n },\n 'prizePaid':\n (item, index) => {\n return (\n \n {\n toggleStatus(item);\n }}\n />\n \n )\n },\n 'cancel':\n (item, index) => {\n return (\n \n {\n cancelSale(item);\n }}\n >\n Anular\n \n \n )\n },\n 'show_details':\n (item, index)=>{\n return (\n \n {\n setNewBillNumber(item.bill);\n crudService.get(`/sale/getSaleReceipt/${item.bill}`, (receipt) => {\n setSourceImg(`data:image/png;base64,${receipt}`);\n setShowReceipt(true);\n });\n }}\n >\n {'Ver tiquete'}\n \n \n )\n }\n }}\n />\n \n \n \n \n \n \n );\n }\n\n return (renderRestrictionsForm())\n}\n\nexport default Sales","import React, {useEffect, useState} from 'react';\nimport es from 'date-fns/locale/es';\nimport {\n CCard,\n CButton,\n CCardBody,\n CCardHeader,\n CCol,\n CRow,\n CContainer,\n CLabel,\n CInput,\n CDataTable,\n CModal,\n CModalHeader,\n CModalTitle,\n CModalBody,\n CModalFooter,\n CFormGroup,\n CSwitch,\n CInvalidFeedback, CCardFooter, CForm, CImg\n} from '@coreui/react'\nimport Select from \"react-select\";\nimport {crudService} from \"../../_services/crud.service\";\nimport CIcon from \"@coreui/icons-react\";\nimport {alertService} from \"../../_services/alert.service\";\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport {numberHelper} from \"../../_helpers/number.helper\";\nimport {selectHelper} from \"../../_helpers/select.helper\";\nimport {Role} from \"../../_helpers/role\";\nimport AuthProvider from \"../../AuthProvider\";\n\nconst movementsFields = [\n {key: 'lottery', label: 'Sorteo', _style: {width: '20%'}},\n {key: 'bill', label: '# Tiquete', _style: {width: '20%'}},\n {key: 'number', label: 'Número', _style: {width: '20%'}},\n {key: 'amount', label: 'Monto', _style: {width: '20%'}},\n {key: 'prizeApplied', label: 'Aplicado', _style: {width: '20%'}},\n {key: 'prize', label: 'Premio', _style: {width: '20%'}},\n {key: 'prizePaid', label: 'Pagado', _style: {width: '20%'}},\n {key: 'client', label: 'Cliente', _style: {width: '20%'}},\n {key: 'isCancelled', label: 'Anulado', _style: {width: '20%'}},\n {key: 'show_details', label: '', _style: { width: '1%' }, sorter: false, filter: false}\n]\n\nconst Movements = () => {\n const [selectedDate, setSelectedDate] = useState(new Date());\n const [selectedLottery, setSelectedLottery] = useState(null);\n const [lotteriesOptions, setLotteriesOptions] = useState([]);\n const [lotteries, setLotteries] = useState([]);\n const [users, setUsers] = useState([]);\n const [winnerNumber, setWinnerNumber] = useState(null);\n const [movements, setMovements] = useState([]);\n const [totalAmount, setTotalAmount] = useState(0);\n const [info, setInfo] = useState(false);\n const [modify, setModify] = useState(false);\n const [prize, setPrize] = useState(0);\n const [balance, setBalance] = useState(0);\n const [isDisabled, setIsDisabled] = useState(true);\n const [isPrizeDisabled, setIsPrizeDisabled] = useState(false);\n const [roles, setRoles] = useState([]);\n const [selectedRoleId, setSelectedRoleId] = useState(\"00000000-0000-0000-0000-000000000000\");\n const [selectedUserId, setSelectedUserId] = useState(\"00000000-0000-0000-0000-000000000000\");\n const [numbers, setNumbers] = useState([]);\n const [currentPassword, setCurrentPassword] = useState(\"\");\n const [showReceipt, setShowReceipt] = useState(false);\n const [newBillNumber, setNewBillNumber] = useState(null);\n const [sourceImg, setSourceImg] = useState(\"\");\n const [projects, setProjects] = useState([]);\n const [selectedProjectId, setSelectedProjectId] = useState(\"00000000-0000-0000-0000-000000000000\");\n const [onlyWinnerNumbers, setOnlyWinnerNumbers] = useState(false);\n\n useEffect(() => {\n async function fetchLotteries() {\n crudService.get(`lottery/getByCountryId`, (data) => {\n setLotteries(data);\n selectHelper.populateSelectControl(data, \"id\",\n \"description\",\n setLotteriesOptions);\n }, 'Ocurrió un error listando los sorteos.')\n }\n\n fetchLotteries();\n }, []);\n\n useEffect(() => {\n async function fetchUsers() {\n crudService.get('user', (data) => {\n selectHelper.populateSelectControl(data, \"id\", \"name\", setUsers);\n }, 'Ocurrió un error listando los sorteos.');\n }\n\n fetchUsers();\n }, []);\n\n useEffect(() => {\n async function fetchRoles() {\n crudService.get('role/getAllRoles/true', (data) => {\n selectHelper.populateSelectControl(data, \"id\", \"name\", setRoles);\n }, 'Ocurrió un error listando los roles.');\n }\n\n fetchRoles();\n }, []);\n\n useEffect(() => {\n async function fetchUsers() {\n const roleId = selectedRoleId ? selectedRoleId : \"00000000-0000-0000-0000-000000000000\";\n crudService.get(`user/getAllUsers/true/${roleId}`, (data) => {\n selectHelper.populateSelectControl(data, \"id\", \"name\", setUsers);\n }, 'Ocurrió un error listando los usuarios.');\n }\n\n fetchUsers();\n }, [selectedRoleId]);\n \n useEffect(() => {\n getPrize(true);\n fetchMovements();\n }, [selectedLottery, selectedDate, onlyWinnerNumbers, selectedProjectId, selectedUserId]);\n \n useEffect(() => {\n if (!movements.length) {\n return;\n }\n \n let amount = 0;\n for(let i = 0; i < movements.length; i++) {\n amount += movements[i].amount\n }\n \n setTotalAmount(amount);\n }, [movements]);\n\n useEffect(() => {\n setNumbers(numberHelper.generateForOptions());\n }, []);\n\n useEffect(() => {\n async function fetchProjects() {\n crudService.get(`project/getAllProjects/false`, (data) => {\n selectHelper.populateSelectControl(data, \"id\", \"name\", setProjects);\n }, 'Ocurrió un error listando las zonas.');\n }\n\n fetchProjects();\n }, []);\n \n function applyPrize() {\n const lottery = lotteries.find(l => l.id === selectedLottery);\n if (!lottery) {\n return;\n }\n\n crudService.post('prize/applyPrizes', {\n lotteryId: selectedLottery,\n year: selectedDate.getFullYear(),\n month: selectedDate.getMonth() + 1,\n day: selectedDate.getDate(),\n winner: winnerNumber\n }, (response) => {\n alertService.success('El premio se aplicó correctamente.');\n setIsDisabled(true);\n const timer = setTimeout(() => {\n getPrize(false);\n fetchMovements();\n }, 1000);\n }, 'Ocurrió un error aplicando el premio.')\n }\n \n function getPrize(showAlert = true) {\n crudService.getWithParams('prize/getprize', {\n \"lotteryId\": selectedLottery === null ? null : selectedLottery,\n \"year\": selectedDate.getFullYear(),\n \"month\": selectedDate.getMonth() + 1,\n \"day\": selectedDate.getDate(),\n }, (data) => {\n if (!data) {\n setBalance(0);\n setTotalAmount(0);\n setPrize(0);\n setWinnerNumber(null);\n setIsDisabled(false);\n setIsPrizeDisabled(false);\n return;\n }\n setBalance(data.balance);\n setTotalAmount(data.totalAmount);\n setPrize(data.totalPrize);\n setWinnerNumber(data.winner);\n setIsDisabled(true);\n setIsPrizeDisabled(true);\n if (showAlert) {\n alertService.info(\"Ya se registró el premio para este sorteo y esta fecha.\");\n }\n }, 'Ocurrió un error obteniendo el premio.');\n }\n\n function fetchMovements() {\n if (!selectedDate) {\n setMovements([]);\n setBalance(0);\n setPrize(0);\n return;\n }\n\n crudService.getWithParams('sale/getmovements', {\n \"lotteryId\": selectedLottery === null ? null : selectedLottery,\n \"year\": selectedDate.getFullYear(),\n \"month\": selectedDate.getMonth() + 1,\n \"day\": selectedDate.getDate(),\n \"projectId\": selectedProjectId === null ? null : selectedProjectId,\n \"userId\": selectedUserId === null ? null : selectedUserId,\n \"showWinningNumber\": onlyWinnerNumbers\n }, (data) => {\n setMovements(data);\n }, 'Ocurrió un error obteniendo los movimientos.');\n }\n \n function saveWinner() {\n const lottery = lotteries.find(l => l.id === selectedLottery);\n if (!lottery) {\n return;\n }\n\n crudService.create('/prize', {\n lotteryId: selectedLottery,\n year: selectedDate.getFullYear(),\n month: selectedDate.getMonth() + 1,\n day: selectedDate.getDate(),\n winner: winnerNumber\n }, (response) => {\n alertService.success('El premio se creó correctamente.');\n setIsDisabled(true);\n const timer = setTimeout(() => {\n getPrize(false);\n fetchMovements();\n }, 1000);\n }, 'Ocurrió un error guardando el premio.')\n }\n\n const renderMovementsForm = () => {\n const handleSubmit = event => {\n event.preventDefault();\n\n const form = event.currentTarget;\n\n if (form.checkValidity()) {\n crudService.post(\"user/validatePassword\", {\n password: currentPassword\n }, () => {\n setModify(!modify);\n setCurrentPassword(\"\");\n alertService.success(\"Contraseña correcta.\");\n setIsDisabled(false);\n setIsPrizeDisabled(false);\n }, \"Ocurrió un error validando la contraseña.\");\n }\n }\n return (\n \n \n \n \n setInfo(!info)}\n color=\"info\"\n >\n \n Confirmación\n \n \n ¿Está seguro que desea guardar el número?\n \n \n {\n setInfo(!info);\n saveWinner();\n }}>Sí{' '}\n {\n setInfo(!info)\n } }>No\n \n \n \n \n \n \n setModify(!modify)}\n color=\"warning\">\n \n Confirmación\n \n \n \n \n Para modificar el premio debe ingresar su contraseña\n \n \n Contraseña\n {\n setCurrentPassword(e.target.value);\n }}/>\n \n \n Validar\n {\n setModify(!modify)\n } }>Cancelar\n \n \n \n \n \n \n \n \n {\n setShowReceipt(!showReceipt);\n }}>\n Tiquete\n \n \n \n \n \n \n \n \n {\n window.open(`/sale/getSaleReceiptDownload/${newBillNumber}`, '_blank', 'noreferrer');\n }}>Imprimir{' '}\n {\n setShowReceipt(!showReceipt);\n }}>Cerrar\n \n \n \n \n \n \n \n \n {'Cierre y Movimientos'}\n \n \n \n \n Sorteo\n {\n setSelectedLottery(e.value);\n }}\n placeholder={\"Seleccione un sorteo\"}\n noOptionsMessage={() => \"No hay sorteos\"}\n options={lotteriesOptions}/>\n \n \n Fecha del sorteo\n {\n setSelectedDate(date);\n }}\n className=\"form-control\"\n />\n \n \n
\n \n \n
\n \n \n

Número premiado

\n
\n
\n \n \n option.value === winnerNumber)}\n onChange={(e) => {\n const number = parseInt(e.value);\n setWinnerNumber(isNaN(number) ? null : number);\n }}\n placeholder={\"Seleccione un número\"}\n noOptionsMessage={() => \"No hay números\"}\n options={numbers}/>\n \n \n \n \n {\n setInfo(!info);\n }}>\n Guardar\n \n \n \n {\n setModify(!modify);\n }}>\n Modificar\n \n \n \n {\n applyPrize()\n }}>\n Aplicar premios\n \n \n \n
\n \n \n

Caja

\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Total de la lista:{totalAmount}
Premio:{prize}
Comisión:0
Saldo lista:{balance}
\n
\n
\n
\n \n \n \n
Detalles de movimientos de cierres
\n
\n \n Zonas\n option.value === selectedProjectId)}\n onChange={(e) => {\n setSelectedProjectId(e.value);\n }}\n placeholder={\"Todos\"}\n noOptionsMessage={() => \"No hay zonas\"}\n options={projects}/>\n \n \n Rol de Usuario\n option.value === selectedRoleId)}\n onChange={(e) => {\n setSelectedRoleId(e.value);\n }}\n placeholder={\"Todos\"}\n noOptionsMessage={() => \"No hay roles\"}\n options={roles}/>\n \n \n Usuario\n option.value === selectedUserId)}\n onChange={(e) => {\n setSelectedUserId(e.value);\n }}\n placeholder={\"Todos\"}\n noOptionsMessage={() => \"No hay usuarios\"}\n options={users}/>\n \n \n Sólo números premiados\n {\n setOnlyWinnerNumbers(e.target.checked);\n }}\n />\n \n
\n \n \n {\n return (\n \n {item.prizeApplied ? \"Sí\" : \"No\"}\n \n )\n },\n 'prizePaid':\n (item, index) => {\n return (\n \n {item.prizePaid ? \"Sí\" : \"No\"}\n \n )\n },\n 'isCancelled':\n (item, index) => {\n return (\n \n {item.isCancelled ? \"Sí\" : \"No\"}\n \n )\n },\n 'show_details':\n (item, index)=>{\n return (\n \n {\n setNewBillNumber(item.bill);\n crudService.get(`/sale/getSaleReceipt/${item.bill}`, (receipt) => {\n setSourceImg(`data:image/png;base64,${receipt}`);\n setShowReceipt(true);\n });\n }}\n >\n {'Ver tiquete'}\n \n \n )\n },\n }}\n />\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n );\n }\n\n return (renderMovementsForm())\n}\n\nexport default Movements","import React, {useEffect, useState} from 'react'\nimport {Link, useHistory} from 'react-router-dom';\nimport {crudService} from \"../../_services/crud.service\";\nimport {\n CCard,\n CButton,\n CCardBody,\n CCardHeader,\n CCol,\n CFormGroup,\n CInput,\n CCardFooter,\n CLabel,\n CRow,\n CForm,\n CContainer,\n CInvalidFeedback, CInputGroupText, CInputGroupAppend, CInputGroup, CInputGroupPrepend\n} from '@coreui/react'\nimport CIcon from '@coreui/icons-react'\nimport {alertService} from \"../../_services/alert.service\";\nimport {Role} from \"../../_helpers/role\";\nimport AuthProvider from \"../../AuthProvider\";\n\nconst Project = ({match}) => {\n const history = useHistory();\n const [existingProject, setProject] = useState({});\n const [countryCurrencySign, setCountryCurrencySign] = useState(null);\n const { id } = match.params;\n const isAddMode = !id;\n\n useEffect(() => {\n async function fetchCountryCurrencySign() {\n crudService.get('User/getCountryCurrencySign', (currencySign) => {\n setCountryCurrencySign(currencySign);\n }, 'Ocurrió un error obteniendo el símbolo de la moneda.')\n }\n\n fetchCountryCurrencySign();\n }, []);\n \n useEffect(() => {\n if (!isAddMode) {\n async function fetchProject() {\n crudService.get(`project/${id}`, setProject, 'Ocurrió un error obteniendo el proyecto')\n }\n\n fetchProject()\n }\n }, []);\n \n function updateProject(){\n crudService.update('/project', \n existingProject,\n setProject,\n 'El proyecto se modificó correctamente.',\n 'Ocurrió un error modificando el proyecto.');\n } \n \n function createProject() {\n crudService.create('/project', \n existingProject,\n (response) => {\n alertService.success('El proyecto se creó correctamente.');\n setProject(response.data);\n history.push('/projects')\n },\n 'Ocurrió un error creando el proyecto.')\n }\n\n const renderProjectForm = () => {\n const handleSubmit = event => {\n event.preventDefault();\n \n const form = event.currentTarget;\n \n if (form.checkValidity()) {\n isAddMode ? createProject() : updateProject();\n }\n }\n return (\n \n \n \n \n \n \n {isAddMode ? 'Crear proyecto' : 'Editar proyecto'}\n \n \n \n \n Nombre\n {\n setProject({...existingProject, name: e.target.value});\n }}\n />\n El nombre es requerido.\n \n \n Bono\n \n {\n setProject({...existingProject, bonus: e.target.value});\n }}\n />\n \n %\n \n El bono es requerido.\n \n El bono es requerido.\n \n \n Bono del supervisor\n \n {\n setProject({...existingProject, supervisorBonus: e.target.value});\n }}\n />\n \n %\n \n El bono es requerido.\n \n El bono es requerido.\n \n \n Bono del administrador\n \n {\n setProject({...existingProject, administratorBonus: e.target.value});\n }}\n />\n \n %\n \n El bono es requerido.\n \n El bono es requerido.\n \n \n Meta\n \n \n {countryCurrencySign}\n \n {\n setProject({...existingProject, goal: e.target.value});\n }}\n />\n La meta es requerida.\n \n \n \n Guardar\n Cancelar\n \n \n \n \n \n \n \n \n );\n }\n\n return (renderProjectForm(existingProject))\n}\n\nexport default Project\n","import React, {useState, useEffect} from 'react';\nimport {useHistory} from 'react-router-dom'\nimport {crudService} from \"../../_services/crud.service\";\nimport {\n CContainer,\n CCardBody,\n CCardHeader,\n CRow,\n CCol,\n CButton,\n CDataTable,\n CCard,\n CModal,\n CModalBody,\n CModalFooter,\n CModalHeader,\n CModalTitle,\n CProgress,\n CProgressBar\n} from '@coreui/react'\nimport {Role} from \"../../_helpers/role\";\nimport AuthProvider from \"../../AuthProvider\";\n\nconst fields = [\n {key: 'name', label: 'Nombre', _style: {width: '20%'}},\n {key: 'bonus', label: 'Bono Promotor %', _style: {width: '15%'}},\n {key: 'administratorBonus', label: 'Bono Administrador %', _style: {width: '15%'}},\n {key: 'supervisorBonus', label: 'Bono Supervisor %', _style: {width: '15%'}},\n {key: 'goalWithCurrency', label: 'Meta', _style: {width: '15%'}},\n {key: 'currentGoal', label: 'Avance %', _style: {width: '15%'}},\n {key: 'currentBucket', label: 'Fondo proyecto', _style: {width: '15%'}},\n {key: 'totalAmount', label: 'Monto recaudado', _style: {width: '15%'}},\n {\n key: 'show_details',\n label: '',\n _style: {width: '1%'},\n sorter: false,\n filter: false\n },\n {\n key: 'delete',\n label: '',\n _style: {width: '1%'},\n sorter: false,\n filter: false\n }\n]\n\nconst Projects = () => {\n const history = useHistory()\n const [loading, setLoading] = useState(true)\n const [projects, setProjects] = useState([])\n const [danger, setDanger] = useState(false)\n const [selectedProject, setSelectedProject] = useState({})\n \n function deleteProject() {\n crudService.remove('/project', \n selectedProject,\n setSelectedProject,\n fetchProjects,\n 'El proyecto se se eliminó correctamente.',\n 'Ocurrió un error eliminando el proyecto.')\n }\n \n async function fetchProjects() {\n await crudService.list('project', setProjects, setLoading);\n }\n\n const renderProjectsTable = () => {\n return (\n \n \n \n \n setDanger(!danger)}\n color=\"danger\"\n >\n \n Confirmación\n \n \n ¿Está seguro que desea cerrar el proyecto? Tome en cuenta que esto elimina el acceso a los usuario asignados a este proyecto. Está acción no se puede revertir.\n \n \n {\n setDanger(!danger);\n deleteProject();\n }}>Sí{' '}\n {\n setDanger(!danger)\n setSelectedProject({})\n } }>No\n \n \n \n \n \n \n \n \n \n \n Lista de zonas
\n
\n \n {\n history.push(`/projects/create`)\n }} type=\"button\" size=\"md\" color=\"primary\" className=\"mr-2 float-right\">+ Crear nuevo proyecto\n \n
\n
\n \n {\n return (\n \n \n \n \n )\n },\n 'show_details':\n (item, index) => {\n return (\n \n {\n history.push(`/projects/edit/${item.id}`)\n }}\n >\n Modificar\n \n \n )\n },\n 'delete': (item, index) => {\n return (\n \n {\n setDanger(!danger);\n setSelectedProject(item);\n }}\n >\n Cerrar\n \n \n )\n }\n }}\n />\n \n
\n
\n
\n
\n
\n )\n }\n\n useEffect(() => {\n fetchProjects()\n }, []);\n\n let contents = loading\n ?

Cargando...

\n : renderProjectsTable();\n\n return (contents)\n}\n\nexport default Projects","import React, {useEffect, useState} from 'react'\nimport {Link, useHistory} from 'react-router-dom';\nimport {crudService} from \"../../_services/crud.service\";\nimport {\n CCard,\n CButton,\n CCardBody,\n CCardHeader,\n CCol,\n CFormGroup,\n CInput,\n CCardFooter,\n CLabel,\n CRow,\n CForm,\n CContainer,\n CInvalidFeedback\n} from '@coreui/react'\nimport CIcon from '@coreui/icons-react'\nimport {alertService} from \"../../_services/alert.service\";\nimport Select from \"react-select\";\nimport {selectHelper} from \"../../_helpers/select.helper\";\nimport {authenticationService} from \"../../_services/authentication.service\";\n\nconst Recharge = ({match}) => {\n const history = useHistory();\n const [existingRecharge, setRecharge] = useState({});\n const [paymentMethods, setPaymentMethods] = useState([]);\n \n function createRecharge() {\n crudService.create('/recharge/recharge',\n existingRecharge,\n (response) => {\n alertService.success('La solicitud de recarga se creó correctamente. Espero a que sea aprobada.');\n setRecharge(response.data);\n history.push('/sales')\n },\n 'Ocurrió un error creando la recarga.')\n }\n\n useEffect(() => {\n async function fetchPaymentMethods() {\n crudService.get('/country/getCurrentCountryPaymentMethods', (data) => {\n selectHelper.populateSelectControl(data, \"paymentMethodName\", \"paymentMethodName\", setPaymentMethods);\n }, 'Ocurrió un error listando los métodos de pago.');\n }\n\n fetchPaymentMethods();\n }, []);\n\n const renderRechargeForm = () => {\n const handleSubmit = event => {\n event.preventDefault();\n\n const form = event.currentTarget;\n\n if (form.checkValidity()) {\n createRecharge();\n }\n }\n return (\n \n \n \n \n \n {'Recargar'}\n {\n authenticationService.isPeru \n ? 'Yape: 982303698 | Cta. BCP CCI: 002-335-009972005059-82' \n : authenticationService.isCr \n ? 'Sinpe Móvil: 72634798 | IBAN: CR23010200009561902760' \n : ''}\n \n \n \n \n Método de pago\n {\n setRecharge({...existingRecharge, paymentMethod: e.value});\n }}\n id=\"paymentMethod\"\n placeholder={\"Seleccione un método de pago\"}\n noOptionsMessage={() => \"No hay métodos de pago para este país.\"}\n options={paymentMethods}/>\n El método de pago es requerido.\n \n \n # de transacción\n {\n setRecharge({...existingRecharge, transactionNumber: e.target.value});\n }}\n />\n El método de pago es requerido.\n \n \n Teléfono\n {\n setRecharge({...existingRecharge, phoneNumber: e.target.value});\n }}\n />\n El teléfono es requerido.\n \n \n Monto\n {\n setRecharge({...existingRecharge, amount: e.target.value});\n }}\n />\n El monto es requerido.\n \n \n Guardar\n Cancelar\n \n \n \n \n \n \n \n );\n }\n\n return (renderRechargeForm(existingRecharge))\n}\n\nexport default Recharge\n","import React, {useState, useEffect} from 'react';\nimport {useHistory} from 'react-router-dom'\nimport {crudService} from \"../../_services/crud.service\";\nimport {\n CContainer,\n CCardBody,\n CCardHeader,\n CRow,\n CCol,\n CButton,\n CDataTable,\n CCard,\n CModal,\n CModalBody,\n CModalFooter,\n CModalHeader,\n CModalTitle, CFormGroup, CLabel, CInput, CCardFooter, CForm\n} from '@coreui/react'\nimport CIcon from \"@coreui/icons-react\";\nimport {alertService} from \"../../_services/alert.service\";\nimport {Role} from \"../../_helpers/role\";\nimport AuthProvider from \"../../AuthProvider\";\n\nconst fields = [\n {key: 'userName', label: 'Nombre', _style: {width: '20%'}},\n {key: 'amount', label: 'Monto', _style: {width: '10%'}},\n {key: 'paymentMethod', label: 'Método de pago', _style: {width: '20%'}},\n {key: 'phoneNumber', label: 'Teléfono', _style: {width: '10%'}},\n {key: 'transactionNumber', label: '# transacción', _style: {width: '20%'}},\n {key: 'date', label: 'Fecha de recarga', _style: {width: '20%'}},\n {\n key: 'show_details',\n label: '',\n _style: {width: '1%'},\n sorter: false,\n filter: false\n },\n {\n key: 'delete',\n label: '',\n _style: {width: '1%'},\n sorter: false,\n filter: false\n }\n]\n\nconst RechargeApproval = () => {\n const history = useHistory()\n const [loading, setLoading] = useState(true)\n const [recharges, setRecharges] = useState([])\n const [danger, setDanger] = useState(false)\n const [approve, setApprove] = useState(false)\n const [reasonForDenied, setReasonForDenied] = useState(null)\n const [selectedRecharge, setSelectedRecharge] = useState({})\n\n function approveRecharge() {\n crudService.post('/recharge/approveRecharge',\n selectedRecharge,\n fetchRecharges,\n 'Ocurrió un error aprobando la recarga.')\n }\n\n function denyRecharge() {\n crudService.post('/recharge/denyRecharge',\n {\n ...selectedRecharge,\n reasonForDenied: reasonForDenied\n },\n fetchRecharges,\n 'Ocurrió un error denegando la recarga.')\n }\n\n async function fetchRecharges() {\n await crudService.list('recharge/getMyTeamRecharges', setRecharges, setLoading);\n }\n\n const renderRechargesTable = () => {\n const handleDeniedRecharge = event => {\n event.preventDefault();\n\n const form = event.currentTarget;\n\n if (form.checkValidity()) {\n if (!reasonForDenied) {\n alertService.error(\"La razón de rechazo es requerida.\");\n return;\n }\n\n denyRecharge();\n setDanger(!danger);\n }\n }\n\n return (\n \n \n \n \n setDanger(!danger)}\n color=\"danger\"\n >\n \n Confirmación\n \n \n \n \n ¿Está seguro que desea rechazar la recarga?\n \n \n Razón de rechazo\n {\n setReasonForDenied(e.target.value);\n }}/>\n \n \n Rechazar\n {\n setDanger(!danger)\n setSelectedRecharge({})\n }}>Cancelar\n \n \n \n \n \n \n \n \n setApprove(!approve)}\n color=\"primary\"\n >\n \n Confirmación\n \n \n ¿Está seguro que desea aprobar la recarga?\n \n \n {\n setApprove(!approve);\n approveRecharge();\n }}>Sí{' '}\n {\n setApprove(!approve)\n }}>No\n \n \n \n \n \n \n \n \n \n \n Lista de recargas
\n
\n
\n
\n \n {\n return (\n \n {\n setApprove(!approve)\n setSelectedRecharge(item)\n }}\n >\n Aprobar\n \n \n )\n },\n 'delete': (item, index) => {\n return (\n \n {\n setDanger(!danger);\n setSelectedRecharge(item);\n }}\n >\n Rechazar\n \n \n )\n }\n }}\n />\n \n
\n
\n
\n
\n
\n )\n }\n\n useEffect(() => {\n fetchRecharges()\n }, []);\n\n let contents = loading\n ?

Cargando...

\n : renderRechargesTable();\n\n return (contents)\n}\n\nexport default RechargeApproval","import React, {useState, useEffect} from 'react';\nimport {crudService} from \"../../_services/crud.service\";\nimport {\n CContainer,\n CCardBody,\n CCardHeader,\n CRow,\n CCol,\n CButton,\n CDataTable,\n CCard,\n CModal,\n CModalBody,\n CModalFooter,\n CModalHeader,\n CModalTitle, CFormGroup, CLabel, CInput, CCardFooter, CForm\n} from '@coreui/react'\nimport CIcon from \"@coreui/icons-react\";\nimport {alertService} from \"../../_services/alert.service\";\nimport {Role} from \"../../_helpers/role\";\nimport AuthProvider from \"../../AuthProvider\";\n\nconst fields = [\n {key: 'userName', label: 'Nombre', _style: {width: '20%'}},\n {key: 'userDni', label: 'Identificación', _style: {width: '20%'}},\n {key: 'formatCurrentBalance', label: 'Monto actual', _style: {width: '20%'}},\n {\n key: 'increase_balance',\n label: '',\n _style: {width: '1%'},\n sorter: false,\n filter: false\n },\n {\n key: 'decrease_balance',\n label: '',\n _style: {width: '1%'},\n sorter: false,\n filter: false\n }\n]\n\nconst ManageUserBalance = () => {\n const [loading, setLoading] = useState(true)\n const [usersBalance, setUsersBalance] = useState([])\n const [decreaseUserBalanceModal, setDecreaseUserBalanceModal] = useState(false)\n const [increaseUserBalanceModal, setIncreaseUserBalanceModal] = useState(false)\n const [reasonForDecrease, setReasonForDecrease] = useState(null)\n const [reasonForIncrease, setReasonForIncrease] = useState(null)\n const [amountToIncrease, setAmountToIncrease] = useState(0)\n const [amountToDecrease, setAmountToDecrease] = useState(0)\n const [selectedUserBalance, setSelectedUserBalance] = useState({})\n const [currentPassword, setCurrentPassword] = useState(\"\");\n const [modify, setModify] = useState(false);\n const [action, setAction] = useState(\"\");\n \n function doDecreaseUserBalance() {\n crudService.post('/recharge/decreaseUserBalance',\n {\n ...selectedUserBalance,\n reason: reasonForDecrease,\n amount: amountToDecrease\n }, \n () => {\n fetchMyTeamBalances();\n setDecreaseUserBalanceModal(false);\n setIncreaseUserBalanceModal(false);\n },\n 'Ocurrió un error descontando.')\n }\n\n function doIncreaseUserBalance() {\n crudService.post('/recharge/increaseUserBalance',\n {\n ...selectedUserBalance,\n reason: reasonForIncrease,\n amount: amountToIncrease\n },\n () => {\n fetchMyTeamBalances();\n setDecreaseUserBalanceModal(false);\n setIncreaseUserBalanceModal(false);\n },\n 'Ocurrió un error recargando.')\n }\n\n async function fetchMyTeamBalances() {\n await crudService.list('recharge/getMyTeamBalances', setUsersBalance, setLoading);\n }\n\n const renderRechargesTable = () => {\n const handleDecreaseUserBalance = event => {\n event.preventDefault();\n\n const form = event.currentTarget;\n\n if (form.checkValidity()) {\n if (!reasonForDecrease) {\n alertService.error(\"La razón de descontar es requerida.\");\n return;\n }\n \n if (amountToDecrease <= 0) {\n alertService.error(\"El monto a descontar debe ser mayor a 0.\");\n return;\n }\n\n setAction(\"decrease\");\n setDecreaseUserBalanceModal(!decreaseUserBalanceModal);\n setModify(true);\n }\n }\n \n const handleIncreaseUserBalance = event => {\n event.preventDefault();\n\n const form = event.currentTarget;\n\n if (form.checkValidity()) {\n if (!reasonForIncrease) {\n alertService.error(\"La razón de recarga es requerida.\");\n return;\n }\n \n if (amountToIncrease <= 0) {\n alertService.error(\"El monto a recargar debe ser mayor a 0.\");\n return;\n }\n\n setAction(\"increase\");\n setIncreaseUserBalanceModal(!increaseUserBalanceModal);\n setModify(true);\n }\n }\n\n const handlePasswordValidation = event => {\n event.preventDefault();\n\n const form = event.currentTarget;\n\n if (form.checkValidity()) {\n crudService.post(\"user/validatePassword\", {\n password: currentPassword\n }, () => {\n setModify(!modify);\n setCurrentPassword(\"\");\n alertService.success(\"Contraseña correcta.\");\n if (action === \"increase\") {\n doIncreaseUserBalance();\n } else {\n doDecreaseUserBalance();\n }\n }, \"Ocurrió un error validando la contraseña.\");\n }\n }\n\n return (\n \n \n \n \n setDecreaseUserBalanceModal(!decreaseUserBalanceModal)}\n color=\"danger\"\n >\n \n Confirmación\n \n \n \n \n ¿Está seguro que desea descontar un monto de recarga?\n \n \n Monto a descontar\n {\n setAmountToDecrease(parseFloat(e.target.value));\n }}/>\n \n \n Razón de desconte\n {\n setReasonForDecrease(e.target.value);\n }}/>\n \n \n Descontar\n {\n setDecreaseUserBalanceModal(!decreaseUserBalanceModal)\n setSelectedUserBalance({})\n }}>Cancelar\n \n \n \n \n \n \n \n \n setIncreaseUserBalanceModal(!increaseUserBalanceModal)}\n color=\"primary\"\n >\n \n Confirmación\n \n \n \n \n ¿Está seguro que desea recargar un monto al usuario?\n \n \n Monto a recargar\n {\n setAmountToIncrease(parseFloat(e.target.value));\n }}/>\n \n \n Razón de recarga\n {\n setReasonForIncrease(e.target.value);\n }}/>\n \n \n Recargar\n {\n setIncreaseUserBalanceModal(!increaseUserBalanceModal)\n setSelectedUserBalance({})\n }}>Cancelar\n \n \n \n \n \n \n \n \n setModify(!modify)}\n color=\"warning\">\n \n Confirmación\n \n \n \n \n Para modificar el balance del usuario debe ingresar su contraseña\n \n \n Contraseña\n {\n setCurrentPassword(e.target.value);\n }}/>\n \n \n Validar\n {\n setModify(!modify)\n } }>Cancelar\n \n \n \n \n \n \n \n \n \n \n \n \n Lista de recargas
\n
\n
\n
\n \n {\n return (\n \n {\n setIncreaseUserBalanceModal(!increaseUserBalanceModal)\n setSelectedUserBalance(item)\n }}\n >\n Recargar\n \n \n )\n },\n 'decrease_balance': (item, index) => {\n return (\n \n {\n setDecreaseUserBalanceModal(!decreaseUserBalanceModal);\n setSelectedUserBalance(item);\n }}\n >\n Descontar\n \n \n )\n }\n }}\n />\n \n
\n
\n
\n
\n
\n )\n }\n\n useEffect(() => {\n fetchMyTeamBalances()\n }, []);\n\n let contents = loading\n ?

Cargando...

\n : renderRechargesTable();\n\n return (contents)\n}\n\nexport default ManageUserBalance","import React, {useEffect, useState} from 'react'\nimport es from 'date-fns/locale/es';\nimport {Link, useHistory} from 'react-router-dom';\nimport {crudService} from \"../../_services/crud.service\";\nimport {\n CCard,\n CButton,\n CCardBody,\n CCardHeader,\n CCol,\n CFormGroup,\n CInput,\n CCardFooter,\n CLabel,\n CRow,\n CForm,\n CContainer,\n CInvalidFeedback\n} from '@coreui/react'\nimport CIcon from '@coreui/icons-react'\nimport {alertService} from \"../../_services/alert.service\";\nimport Select from \"react-select\";\nimport {authenticationService} from \"../../_services/authentication.service\";\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport {selectHelper} from \"../../_helpers/select.helper\";\nimport {Role} from \"../../_helpers/role\";\nimport AuthProvider from \"../../AuthProvider\";\nimport ImageUploading from 'react-images-uploading';\n\nconst User = ({match}) => {\n const history = useHistory();\n const [existingUser, setUser] = useState({\n projectIds: []\n });\n const [countries, setCountries] = useState([]);\n const [paymentMethods, setPaymentMethods] = useState([]);\n const [images, setImages] = useState([]);\n const maxNumber = 1;\n const {id} = match.params;\n const isAddMode = !id;\n const disabled = id !== authenticationService.getUserId;\n\n const onImageChange = (imageList, addUpdateIndex) => {\n setImages(imageList);\n setUser({...existingUser, photoData: imageList.length > 0 ? imageList[0].data_url : \"\"});\n };\n\n useEffect(() => {\n async function fetchUser() {\n crudService.get(`user/${id}`, (data) => {\n setUser(data);\n if (data.photo) {\n setImages([{data_url: `data:image/jpeg;base64,${data.photo}`}]);\n }\n }, 'Ocurrió un error obteniendo el usuario')\n }\n\n fetchUser()\n }, []);\n\n useEffect(() => {\n async function fetchCountries() {\n crudService.get('/country/getCurrentUserCountry', (data) => {\n selectHelper.populateSelectControl([data], \"id\", \"name\", setCountries);\n }, 'Ocurrió un error listando los paises.');\n }\n\n fetchCountries();\n }, [existingUser.countryId]);\n\n useEffect(() => {\n async function fetchPaymentMethods() {\n if (!existingUser.countryId) {\n return;\n }\n crudService.get(`/country/getCountryPaymentMethods/${existingUser.countryId}`, (data) => {\n // Create a set of all ids in the first array\n let idsInFirstArray = new Set(existingUser.paymentMethods.map(item => item.paymentMethodId));\n let itemsNotInFirstArray = data.filter(item => !idsInFirstArray.has(item.id));\n let newItems = itemsNotInFirstArray.map(item => ({\n paymentMethodId: item.id,\n userId: \"\", // Assuming the userId is unknown\n value: \"\", // Assuming the value is unknown\n paymentMethodName: item.paymentMethodName,\n id: item.id // Assuming the id is the same as paymentMethodId\n }));\n \n let resultArray = existingUser.paymentMethods.concat(newItems);\n setPaymentMethods(resultArray);\n }, 'Ocurrió un error listando los métodos de pago.');\n }\n\n fetchPaymentMethods();\n }, [existingUser.countryId]);\n\n function updateUser() {\n if (typeof existingUser.birth === 'string') {\n existingUser.birth = new Date(existingUser.birth);\n }\n existingUser.yearBirth = existingUser.birth.getFullYear();\n existingUser.monthBirth = existingUser.birth.getMonth() + 1;\n existingUser.dayBirth = existingUser.birth.getDate();\n crudService.update('/user', existingUser,\n (data) => {\n },\n 'El usuario se modificó correctamente.',\n 'Ocurrió un error modificando el usuario.');\n }\n\n const renderUserForm = () => {\n const handleSubmit = event => {\n event.preventDefault();\n\n const form = event.currentTarget;\n\n if (form.checkValidity()) {\n if (authenticationService.isManager && existingUser.projectIds.length === 0) {\n alertService.error(\"El proyecto es requerido.\");\n return;\n }\n if (!existingUser.countryId) {\n alertService.error(\"El país es requerido.\");\n return;\n }\n if (!existingUser.roleId) {\n alertService.error(\"El rol es requerido.\");\n return;\n }\n if (!existingUser.bossId) {\n alertService.error(\"El encargado es requerido.\");\n return;\n }\n if (!existingUser.birth) {\n alertService.error(\"La fecha de nacimiento es requerida.\");\n return;\n }\n if (!existingUser.paymentMethods || existingUser.paymentMethods.length === 0) {\n alertService.error(\"La información bancaria es requerida.\");\n return;\n }\n updateUser();\n }\n }\n return (\n \n \n \n \n \n \n {'Editar usuario'}\n \n \n \n \n Fecha de nacimiento\n setUser({...existingUser, birth: date})}\n className=\"form-control\"\n />\n La fecha de nacimiento es\n requerida.\n \n \n Dirección\n {\n setUser({...existingUser, address: e.target.value});\n }}/>\n La dirección es\n requerida.\n \n \n Email\n {\n setUser({...existingUser, email: e.target.value});\n }}/>\n El correo electrónico es\n requerido.\n \n \n Teléfono\n {\n setUser({...existingUser, phone: e.target.value});\n }}/>\n El teléfono es\n requerido.\n \n \n Teléfono 2\n {\n setUser({...existingUser, phone2: e.target.value});\n }}/>\n \n \n Contraseña\n {\n setUser({...existingUser, password: e.target.value});\n }}/>\n La contraseña es\n requerida.\n \n \n Guardar\n Cancelar\n \n \n \n \n \n \n \n \n {'Información bancaria'}\n \n \n {\n e.preventDefault();\n return false;\n }}>\n \n País:\n option.value === existingUser.countryId)}\n onChange={(e) => {\n setUser({...existingUser, countryId: e.value});\n }}\n placeholder={\"Seleccione un país\"}\n noOptionsMessage={() => \"No hay paises\"}\n options={countries}/>\n \n {\n paymentMethods.map((paymentMethod, i) => {\n return \n {paymentMethod.paymentMethodName}\n {\n const paymentMethods = existingUser.paymentMethods || [];\n let payM = paymentMethods.find(value => value.paymentMethodId === e.target.id);\n if (!payM) {\n payM = {\n paymentMethodId: e.target.id,\n paymentMethodName: paymentMethod.paymentMethodName,\n value: e.target.value,\n userId: existingUser.id\n };\n paymentMethods.push(payM);\n } else {\n payM.paymentMethodId = e.target.id;\n payM.value = e.target.value;\n payM.userId = existingUser.id;\n payM.paymentMethodName = paymentMethod.paymentMethodName;\n }\n setUser({...existingUser, paymentMethods: paymentMethods});\n setPaymentMethods([...paymentMethods]);\n }}\n id={paymentMethod.paymentMethodId || paymentMethod.id}/>\n \n })\n }\n \n \n \n \n \n \n \n {'Fotografía de perfil'}\n \n \n \n {({\n imageList,\n onImageUpload,\n onImageRemoveAll,\n onImageUpdate,\n onImageRemove,\n isDragging,\n dragProps,\n errors\n }) => (\n // write your building UI\n
\n {errors &&
\n {errors.acceptType && El archivo seleccionado no es válido}\n
}\n
\n )}\n \n
\n
\n
\n
\n
\n
\n );\n }\n\n return (renderUserForm(existingUser))\n}\n\nexport default User\n","import React, {useState, useEffect} from 'react';\nimport {useHistory} from 'react-router-dom'\nimport {crudService} from \"../../_services/crud.service\";\nimport {\n CContainer,\n CCardBody,\n CCardHeader,\n CRow,\n CCol,\n CButton,\n CDataTable,\n CCard,\n CModal,\n CModalBody,\n CModalFooter,\n CModalHeader,\n CModalTitle, CFormGroup, CLabel, CInput, CCardFooter, CForm\n} from '@coreui/react'\nimport CIcon from \"@coreui/icons-react\";\nimport {alertService} from \"../../_services/alert.service\";\nimport {Role} from \"../../_helpers/role\";\nimport AuthProvider from \"../../AuthProvider\";\n\nconst fields = [\n {key: 'userName', label: 'Nombre', _style: {width: '20%'}},\n {key: 'requestDateFormatted', label: 'Fecha de solicitud', _style: {width: '20%'}},\n {key: 'amountRequestedFormatted', label: 'Monto', _style: {width: '10%'}},\n {key: 'approvedByName', label: 'Aprobado por', _style: {width: '20%'}},\n {key: 'deniedByName', label: 'Rechazado por', _style: {width: '20%'}},\n {key: 'approvalStatus', label: 'Estado', _style: {width: '20%'}},\n {key: 'denialComment', label: 'Comentarios', _style: {width: '20%'}},\n {key: 'paymentMethodName', label: 'Método de pago', _style: {width: '10%'}},\n {key: 'accountNumber', label: 'Cuenta', _style: {width: '20%'}},\n {\n key: 'show_details',\n label: '',\n _style: {width: '1%'},\n sorter: false,\n filter: false\n },\n {\n key: 'delete',\n label: '',\n _style: {width: '1%'},\n sorter: false,\n filter: false\n }\n]\n\nconst Requests = () => {\n const history = useHistory()\n const [loading, setLoading] = useState(true)\n const [requests, setRequests] = useState([])\n const [danger, setDanger] = useState(false)\n const [approve, setApprove] = useState(false)\n const [reasonForDenied, setReasonForDenied] = useState(null)\n const [approvalComment, setApprovalComment] = useState(null)\n const [selectedRequest, setSelectedRequest] = useState({})\n \n function approveRequest() {\n crudService.post('/request/approveOrDeny',\n {\n id: selectedRequest.id,\n isApproved: true,\n denialComment: \"\",\n approvalComment: approvalComment\n },\n fetchRequests,\n 'Ocurrió un error aprobando la recarga.')\n }\n\n function denyRecharge() {\n crudService.post('/request/approveOrDeny',\n {\n id: selectedRequest.id,\n isApproved: false,\n denialComment: reasonForDenied,\n approvalComment: \"\"\n },\n fetchRequests,\n 'Ocurrió un error denegando la recarga.')\n }\n\n async function fetchRequests() {\n await crudService.list('request', setRequests, setLoading);\n }\n\n const renderRequestsTable = () => {\n const handleDeniedRecharge = event => {\n event.preventDefault();\n\n const form = event.currentTarget;\n\n if (form.checkValidity()) {\n if (!reasonForDenied) {\n alertService.error(\"La razón de rechazo es requerida.\");\n return;\n }\n\n denyRecharge();\n setDanger(!danger);\n }\n }\n\n return (\n \n \n \n \n setDanger(!danger)}\n color=\"danger\"\n >\n \n Confirmación\n \n \n \n \n ¿Está seguro que desea rechazar la solicitud?\n \n \n Razón de rechazo\n {\n setReasonForDenied(e.target.value);\n }}/>\n \n \n Rechazar\n {\n setDanger(!danger)\n setSelectedRequest({})\n }}>Cancelar\n \n \n \n \n \n \n \n \n setApprove(!approve)}\n color=\"primary\"\n >\n \n Confirmación\n \n \n \n \n ¿Está seguro que desea aprobar la solicitud?\n \n \n Comentarios (opcional)\n {\n setApprovalComment(e.target.value);\n }}/>\n \n \n {\n setApprove(!approve);\n approveRequest();\n }}>Sí{' '}\n {\n setApprove(!approve)\n }}>No\n \n \n \n \n \n \n \n \n \n \n \n \n Lista de solicitudes
\n
\n
\n
\n \n {\n return (\n \n \n
\n
\n
\n
\n
\n )\n }\n\n useEffect(() => {\n fetchRequests()\n }, []);\n\n let contents = loading\n ?

Cargando...

\n : renderRequestsTable();\n\n return (contents)\n}\n\nexport default Requests","import React, {useState, useEffect} from 'react';\nimport {useHistory} from 'react-router-dom'\nimport {crudService} from \"../../_services/crud.service\";\nimport {\n CContainer,\n CCardBody,\n CCardHeader,\n CRow,\n CCol,\n CButton,\n CDataTable,\n CCard,\n CModal,\n CModalBody,\n CModalFooter,\n CModalHeader,\n CModalTitle, CLabel\n} from '@coreui/react'\nimport {Role} from \"../../_helpers/role\";\nimport Select from \"react-select\";\nimport {selectHelper} from \"../../_helpers/select.helper\";\nimport AuthProvider from \"../../AuthProvider\";\n\nconst fields = [\n {key: 'lottery', label: 'Sorteo', _style: {width: '20%'}},\n {key: 'limit', label: 'Limite', _style: {width: '20%'}},\n {\n key: 'show_details',\n label: '',\n _style: {width: '1%'},\n sorter: false,\n filter: false\n },\n {\n key: 'delete',\n label: '',\n _style: {width: '1%'},\n sorter: false,\n filter: false\n }\n]\n\nconst SaleRestrictions = () => {\n const history = useHistory();\n const [loading, setLoading] = useState(true);\n const [restrictions, setRestrictions] = useState([]);\n const [danger, setDanger] = useState(false);\n const [selectedRestriction, setSelectedRestriction] = useState({});\n const [lotteries, setLotteries] = useState([]);\n const [selectedLotteryId, setSelectedLotteryId] = useState(null);\n\n function deleteRestriction() {\n crudService.remove('/sale/restriction/delete',\n selectedRestriction,\n setSelectedRestriction,\n fetchRestrictions,\n 'La restricción se eliminó correctamente.',\n 'Ocurrió un error eliminando la restricción.')\n }\n\n async function fetchRestrictions() {\n if (!selectedLotteryId) {\n setLoading(false);\n setRestrictions([]);\n return;\n }\n\n await crudService.list(`sale/restriction/getRestrictionsByLotteryId/${selectedLotteryId}`, setRestrictions, setLoading);\n }\n \n useEffect(() => {\n fetchRestrictions()\n }, [selectedLotteryId]);\n\n useEffect(() => {\n async function fetchLotteries() {\n crudService.get(`lottery/getByCountryId`, (data) => {\n setLotteries(data);\n selectHelper.populateSelectControl(data, \"id\",\n \"description\",\n setLotteries);\n }, 'Ocurrió un error listando los sorteos.')\n }\n\n fetchLotteries();\n }, []);\n\n const renderSaleRestrictionsTable = () => {\n return (\n \n \n \n \n setDanger(!danger)}\n color=\"danger\"\n >\n \n Confirmación\n \n \n ¿Está seguro que desea eliminar la restricción?\n \n \n {\n setDanger(!danger);\n deleteRestriction();\n }}>Sí{' '}\n {\n setDanger(!danger)\n setSelectedRestriction({})\n } }>No\n \n \n \n \n \n \n \n \n \n \n Lista de restricciones
\n
\n \n {\n history.push(`/sale/restrictions/create`)\n }} type=\"button\" size=\"md\" color=\"primary\" className=\"mr-2 float-right\">+ Crear nueva restricción\n \n
\n \n \n Sorteo\n option.value === selectedLotteryId)}\n onChange={(e) => {\n setSelectedLotteryId(e.value);\n }}\n placeholder={\"Seleccione un sorteo\"}\n noOptionsMessage={() => \"No hay sorteos\"}\n options={lotteries}/>\n \n \n
\n \n {\n return (\n \n {\n history.push(`/sale/restrictions/edit/${item.id}`)\n }}\n >\n Modificar\n \n \n )\n },\n 'delete': (item, index) => {\n return (\n \n {\n setDanger(!danger);\n setSelectedRestriction(item);\n }}\n >\n Eliminar\n \n \n )\n }\n }}\n />\n \n
\n
\n
\n
\n
\n )\n }\n\n let contents = loading\n ?

Cargando...

\n : renderSaleRestrictionsTable();\n\n return (contents)\n}\n\nexport default SaleRestrictions","import React, {useEffect, useState} from 'react'\nimport Select from 'react-select';\nimport {Link, useHistory} from 'react-router-dom';\nimport {crudService} from \"../../_services/crud.service\";\nimport {\n CCard,\n CButton,\n CCardBody,\n CCardHeader,\n CCol,\n CFormGroup,\n CInput,\n CCardFooter,\n CLabel,\n CRow,\n CForm,\n CContainer,\n CInvalidFeedback\n} from '@coreui/react'\nimport CIcon from '@coreui/icons-react'\nimport {alertService} from \"../../_services/alert.service\";\nimport {selectHelper} from \"../../_helpers/select.helper\";\nimport {Role} from \"../../_helpers/role\";\nimport AuthProvider from \"../../AuthProvider\";\n\nconst SaleRestriction = ({match}) => {\n const history = useHistory();\n const [existingRestriction, setRestriction] = useState({});\n const [selectedUser, setSelectedUser] = useState(\"00000000-0000-0000-0000-000000000000\");\n const [lotteries, setLotteries] = useState([]);\n const {id} = match.params;\n const isAddMode = !id;\n \n useEffect(() => {\n if (!isAddMode) {\n async function fetchRestriction() {\n crudService.get(`sale/restriction/${id}`, \n setRestriction, \n 'Ocurrió un error obteniendo la restricción');\n }\n\n fetchRestriction()\n }\n }, []);\n\n useEffect(() => {\n async function fetchLotteries() {\n crudService.get(`lottery/getByCountryId`, (data) => {\n selectHelper.populateSelectControl(data, \"id\", \"description\", setLotteries);\n }, 'Ocurrió un error listando los sorteos.');\n }\n\n fetchLotteries();\n }, []);\n\n function updateRestriction() {\n crudService.update('/sale/restriction/update',\n existingRestriction,\n setRestriction,\n 'La restricción se modificó correctamente.',\n 'Ocurrió un error modificando la restricción.');\n }\n\n function createRestriction() {\n crudService.create('/sale/restriction/create',\n existingRestriction,\n (response) => {\n alertService.success('La restricción se creó correctamente.');\n setRestriction(response.data);\n history.push('/sale/restrictions')\n },\n 'Ocurrió un error creando la restricción.')\n }\n\n const renderRestrictionsForm = () => {\n const handleSubmit = event => {\n event.preventDefault();\n\n const form = event.currentTarget;\n\n if (form.checkValidity()) {\n if (!existingRestriction.lotteryId) {\n alertService.error(\"El sorteo es requerido.\");\n return;\n }\n if (existingRestriction.limit === undefined) {\n alertService.error(\"El límite es requerido.\");\n return;\n }\n isAddMode ? createRestriction() : updateRestriction();\n }\n }\n return (\n \n \n \n \n \n \n {isAddMode ? 'Crear restricción' : 'Editar restricción'}\n \n \n \n \n Sorteo\n option.value === existingRestriction.lotteryId)}\n onChange={(e) => {\n setRestriction({...existingRestriction, lotteryId: e.value});\n }}\n placeholder={\"Seleccione un sorteo\"}\n noOptionsMessage={() => \"No hay sorteos\"}\n options={lotteries}/>\n El sorteo es requerido.\n \n \n Límite\n {\n setRestriction({\n ...existingRestriction,\n limit: e.target.value\n });\n }}/>\n El límite es requerido.\n \n \n Guardar\n Cancelar\n \n \n \n \n \n \n \n \n );\n }\n\n return (renderRestrictionsForm())\n}\n\nexport default SaleRestriction","import React, {useEffect, useState} from 'react'\nimport Select from 'react-select';\nimport {Link, useHistory} from 'react-router-dom';\nimport {crudService} from \"../../_services/crud.service\";\nimport {\n CCard,\n CButton,\n CCardBody,\n CCardHeader,\n CCol,\n CFormGroup,\n CInput,\n CCardFooter,\n CLabel,\n CRow,\n CForm,\n CContainer,\n CInvalidFeedback\n} from '@coreui/react'\nimport CIcon from '@coreui/icons-react'\nimport {alertService} from \"../../_services/alert.service\";\nimport {selectHelper} from \"../../_helpers/select.helper\";\nimport {Role} from \"../../_helpers/role\";\nimport AuthProvider from \"../../AuthProvider\";\nimport DatePicker from \"react-datepicker\";\nimport es from \"date-fns/locale/es\";\nconst AutomaticRestriction = ({match}) => {\n const history = useHistory();\n const [existingRestriction, setRestriction] = useState({});\n const [lotteries, setLotteries] = useState([]);\n const {id} = match.params;\n const isAddMode = !id;\n \n useEffect(() => {\n if (!isAddMode) {\n async function fetchRestriction() {\n crudService.get(`automaticRestriction/${id}`, \n setRestriction, \n 'Ocurrió un error obteniendo la restricción');\n }\n\n fetchRestriction()\n }\n }, []);\n\n useEffect(() => {\n async function fetchLotteries() {\n crudService.get(`lottery/getByCountryId`, (data) => {\n selectHelper.populateSelectControl(data, \"id\", \"description\", setLotteries);\n }, 'Ocurrió un error listando los sorteos.');\n }\n\n fetchLotteries();\n }, []);\n\n function updateRestriction() {\n crudService.update('/automaticRestriction/update',\n existingRestriction,\n setRestriction,\n 'La restricción se modificó correctamente.',\n 'Ocurrió un error modificando la restricción.');\n }\n\n function createRestriction() {\n crudService.create('/automaticRestriction/create',\n existingRestriction,\n (response) => {\n alertService.success('La restricción se creó correctamente.');\n setRestriction(response.data);\n history.push('/automaticRestrictions')\n },\n 'Ocurrió un error creando la restricción.')\n }\n\n const renderRestrictionsForm = () => {\n const handleSubmit = event => {\n event.preventDefault();\n\n const form = event.currentTarget;\n\n if (form.checkValidity()) {\n if (!existingRestriction.lotteryId) {\n alertService.error(\"El sorteo es requerido.\");\n return;\n }\n if (existingRestriction.upperLimit === undefined) {\n alertService.error(\"El límite es requerido.\");\n return;\n }\n isAddMode ? createRestriction() : updateRestriction();\n }\n }\n return (\n \n \n \n \n \n \n {isAddMode ? 'Crear restricción automática' : 'Editar restricción automática'}\n \n \n \n \n Sorteo\n option.value === existingRestriction.lotteryId)}\n onChange={(e) => {\n setRestriction({...existingRestriction, lotteryId: e.value});\n }}\n placeholder={\"Seleccione un sorteo\"}\n noOptionsMessage={() => \"No hay sorteos\"}\n options={lotteries}/>\n El sorteo es requerido.\n \n \n Premio\n {\n setRestriction({\n ...existingRestriction,\n prizePercentage: e.target.value\n });\n }}/>\n El permio es requerido.\n \n \n Límite\n {\n setRestriction({\n ...existingRestriction,\n upperLimit: e.target.value\n });\n }}/>\n El límite es requerido.\n \n \n Guardar\n Cancelar\n \n \n \n \n \n \n \n \n );\n }\n\n return (renderRestrictionsForm())\n}\n\nexport default AutomaticRestriction","import React, {useState, useEffect} from 'react';\nimport {useHistory} from 'react-router-dom'\nimport {crudService} from \"../../_services/crud.service\";\nimport {\n CContainer,\n CCardBody,\n CCardHeader,\n CRow,\n CCol,\n CButton,\n CDataTable,\n CCard,\n CModal,\n CModalBody,\n CModalFooter,\n CModalHeader,\n CModalTitle, CLabel\n} from '@coreui/react'\nimport {Role} from \"../../_helpers/role\";\nimport Select from \"react-select\";\nimport {selectHelper} from \"../../_helpers/select.helper\";\nimport AuthProvider from \"../../AuthProvider\";\nimport es from \"date-fns/locale/es\";\nimport DatePicker from \"react-datepicker\";\n\nconst fields = [\n {key: 'prizePercentage', label: 'Premio', _style: {width: '20%'}},\n {key: 'upperLimit', label: 'Límite', _style: {width: '20%'}},\n {\n key: 'show_details',\n label: '',\n _style: {width: '1%'},\n sorter: false,\n filter: false\n },\n {\n key: 'delete',\n label: '',\n _style: {width: '1%'},\n sorter: false,\n filter: false\n }\n]\n\nconst Restrictions = () => {\n const history = useHistory();\n const [loading, setLoading] = useState(true);\n const [restrictions, setRestrictions] = useState([]);\n const [danger, setDanger] = useState(false);\n const [selectedRestriction, setSelectedRestriction] = useState({});\n const [lotteries, setLotteries] = useState([]);\n const [selectedLotteryId, setSelectedLotteryId] = useState(null);\n\n function deleteAutomaticRestriction() {\n crudService.remove('/automaticRestriction',\n selectedRestriction,\n setSelectedRestriction,\n fetchRestrictions,\n 'La restricción se eliminó correctamente.',\n 'Ocurrió un error eliminando la restricción.')\n }\n\n async function fetchRestrictions() {\n if (!selectedLotteryId) {\n setLoading(false);\n setRestrictions([]);\n return;\n }\n \n await crudService.list(`automaticRestriction/get/${selectedLotteryId}`, setRestrictions, setLoading);\n }\n \n useEffect(() => {\n fetchRestrictions()\n }, [selectedLotteryId]);\n\n useEffect(() => {\n async function fetchLotteries() {\n crudService.get(`lottery/getByCountryId`, (data) => {\n setLotteries(data);\n selectHelper.populateSelectControl(data, \"id\",\n \"description\",\n setLotteries);\n }, 'Ocurrió un error listando los sorteos.')\n }\n\n fetchLotteries();\n }, []);\n\n const renderUsersTable = () => {\n return (\n \n \n \n \n setDanger(!danger)}\n color=\"danger\"\n >\n \n Confirmación\n \n \n ¿Está seguro que desea eliminar la restricción?\n \n \n {\n setDanger(!danger);\n deleteAutomaticRestriction();\n }}>Sí{' '}\n {\n setDanger(!danger)\n setSelectedRestriction({})\n } }>No\n \n \n \n \n \n \n \n \n \n \n Lista de restricciones automáticas
\n
\n \n {\n history.push(`/automaticRestrictions/create`)\n }} type=\"button\" size=\"md\" color=\"primary\" className=\"mr-2 float-right\">+ Crear nuevo restricción\n \n
\n \n \n Sorteo\n option.value === selectedLotteryId)}\n onChange={(e) => {\n setSelectedLotteryId(e.value);\n }}\n placeholder={\"Seleccione un sorteo\"}\n noOptionsMessage={() => \"No hay sorteos\"}\n options={lotteries}/>\n \n \n
\n \n {\n return (\n \n {item.prizePercentage + \"%\"}\n \n )\n },\n 'show_details':\n (item, index) => {\n return (\n \n {\n history.push(`/automaticRestrictions/edit/${item.id}`)\n }}\n >\n Modificar\n \n \n )\n },\n 'delete': (item, index) => {\n return (\n \n {\n setDanger(!danger);\n setSelectedRestriction(item);\n }}\n >\n Eliminar\n \n \n )\n }\n }}\n />\n \n
\n
\n
\n
\n
\n )\n }\n\n let contents = loading\n ?

Cargando...

\n : renderUsersTable();\n\n return (contents)\n}\n\nexport default Restrictions","import React, {useEffect, useState} from 'react'\nimport Select from 'react-select';\nimport {Link, useHistory} from 'react-router-dom';\nimport {crudService} from \"../../_services/crud.service\";\nimport {\n CCard,\n CButton,\n CCardBody,\n CCardHeader,\n CCol,\n CFormGroup,\n CInput,\n CCardFooter,\n CLabel,\n CRow,\n CForm,\n CContainer,\n CInvalidFeedback, CTextarea\n} from '@coreui/react'\nimport CIcon from '@coreui/icons-react'\nimport {alertService} from \"../../_services/alert.service\";\nimport {numberHelper} from \"../../_helpers/number.helper\";\nimport {selectHelper} from \"../../_helpers/select.helper\";\nimport {Role} from \"../../_helpers/role\";\nimport AuthProvider from \"../../AuthProvider\";\nimport {hi} from \"date-fns/locale\";\nimport {authenticationService} from \"../../_services/authentication.service\";\n\nconst Chat = ({match}) => {\n const history = useHistory();\n const [notif, setNotif] = useState({});\n const [users, setUsers] = useState([]);\n const {id} = match.params;\n\n useEffect(() => {\n async function fetchUsers() {\n const roleId = \"00000000-0000-0000-0000-000000000000\";\n crudService.get(`user/getAllUsers/true/${roleId}`, (data) => {\n selectHelper.populateSelectControl(data, \"id\", \"fullName\", setUsers);\n }, 'Ocurrió un error listando los usuarios.');\n }\n\n fetchUsers();\n }, []);\n \n\n const renderChatForm = () => {\n const handleSubmit = event => {\n event.preventDefault();\n\n const form = event.currentTarget;\n\n if (form.checkValidity()) {\n crudService.post('/chat/send',\n notif,\n () => {\n //history.push('/');\n },\n 'Se envió el mensaje.',\n 'Ocurrió un error enviando el mensaje.');\n }\n }\n return (\n \n \n \n \n \n \n {'Enviar mensaje'}\n \n \n \n \n Usuario\n {\n setNotif({...notif, recipientId: e.value});\n }}\n placeholder={\"Todos\"}\n noOptionsMessage={() => \"No hay usuarios\"}\n options={users}/>\n El usuario es requerido.\n \n \n Titulo\n {\n setNotif({...notif, title: e.target.value});\n }}/>\n El titulo es requerido.\n \n \n Subtitulo\n {\n setNotif({...notif, subtitle: e.target.value});\n }}/>\n \n \n Notificación\n {\n setNotif({...notif, message: e.target.value});\n }}/>\n El comentario es requerido.\n \n \n Enviar\n Cancelar\n \n \n \n \n \n \n \n \n );\n }\n\n return (renderChatForm())\n}\n\nexport default Chat","import React from 'react';\n\nimport Users from './views/users/Users';\nimport User from './views/users/User';\nimport Lotteries from './views/lottery/Lotteries';\nimport Lottery from './views/lottery/Lottery';\nimport Restrictions from './views/restrictions/Restrictions';\nimport Restriction from './views/restrictions/Restriction';\nimport Sale from './views/sales/Sale';\nimport Sales from \"./views/sales/Sales\";\nimport Movements from \"./views/movements/Movements\";\nimport Project from \"./views/projects/Project\";\nimport Projects from \"./views/projects/Projects\";\nimport Recharge from \"./views/recharge/Recharge\";\nimport RechargeApproval from \"./views/recharge/RechargeApproval\";\nimport {Role} from \"./_helpers/role\";\nimport ManageUserBalance from \"./views/recharge/ManageUserBalance\";\nimport EditProfile from \"./views/users/EditProfile\";\nimport Requests from \"./views/requests/Requests\";\nimport SaleRestrictions from \"./views/restrictions/SaleRestrictions\";\nimport SaleRestriction from \"./views/restrictions/SaleRestriction\";\nimport AutomaticRestriction from \"./views/restrictions/AutomaticRestriction\";\nimport AutomaticRestrictions from \"./views/restrictions/AutomaticRestrictions\";\nimport Chat from './views/chat/Chat';\n\nconst routes = [\n { path: '/', exact: true, name: 'Home' },\n { path: '/users', exact: true, name: 'Usuarios', component: Users, roles: [Role.Manager, Role.Admin, Role.Supervisor] },\n { path: '/users/edit/:id', exact: true, name: 'Detalles de usuario', component: User, roles: [Role.Manager, Role.Admin, Role.Supervisor] },\n { path: '/users/editProfile/:id', exact: true, name: 'Detalles de usuario', component: EditProfile, roles: [Role.Manager, Role.Admin, Role.Supervisor, Role.Seller, Role.Donor] },\n { path: '/users/create', exact: false, name: 'Crear nuevo usuario', component: User, roles: [Role.Manager, Role.Admin, Role.Supervisor] },\n { path: '/lotteries', exact: true, name: 'Sorteos', component: Lotteries, roles: [Role.Manager] },\n { path: '/lotteries/edit/:id', exact: true, name: 'Detalles del sorteo', component: Lottery, roles: [Role.Manager] },\n { path: '/lotteries/create', exact: false, name: 'Crear nuevo sorteo', component: Lottery, roles: [Role.Manager] },\n { path: '/restrictions', exact: true, name: 'Sorteos', component: Restrictions, roles: [Role.Manager] },\n { path: '/restrictions/edit/:id', exact: true, name: 'Detalles del sorteo', component: Restriction, roles: [Role.Manager] },\n { path: '/restrictions/create', exact: false, name: 'Crear nuevo sorteo', component: Restriction, roles: [Role.Manager] },\n { path: '/automaticRestrictions', exact: true, name: 'Detalles de restricción automática', component: AutomaticRestrictions, roles: [Role.Manager] },\n { path: '/automaticRestrictions/edit/:id', exact: true, name: 'Detalles de restricción automática', component: AutomaticRestriction, roles: [Role.Manager] },\n { path: '/automaticRestrictions/create', exact: false, name: 'Crear restricción automática', component: AutomaticRestriction, roles: [Role.Manager] },\n\n { path: '/sale/restrictions', exact: true, name: 'Restricciones de ventas', component: SaleRestrictions, roles: [Role.Manager] },\n { path: '/sale/restrictions/edit/:id', exact: true, name: 'Detalles del sorteo', component: SaleRestriction, roles: [Role.Manager] },\n { path: '/sale/restrictions/create', exact: false, name: 'Crear nuevo sorteo', component: SaleRestriction, roles: [Role.Manager] },\n \n { path: '/sales/', exact: false, name: 'Ventas', component: Sale, roles: [Role.Manager, Role.Admin, Role.Supervisor, Role.Seller, Role.Donor] },\n { path: '/list/', exact: false, name: 'Lista', component: Sales, roles: [Role.Manager, Role.Admin, Role.Supervisor, Role.Seller, Role.Donor] },\n { path: '/movements/', exact: false, name: 'Movimientos', component: Movements, roles: [Role.Manager] },\n { path: '/projects', exact: true, name: 'Zonas', component: Projects, roles: [Role.Manager] },\n { path: '/projects/edit/:id', exact: true, name: 'Detalles de la zona', component: Project, roles: [Role.Manager] },\n { path: '/projects/create', exact: false, name: 'Crear nueva zona', component: Project, roles: [Role.Manager] },\n { path: '/recharges', exact: true, name: 'Recargar', component: Recharge, roles: [Role.Manager, Role.Admin, Role.Supervisor, Role.Seller, Role.Donor] },\n { path: '/rechargeApproval', exact: true, name: 'Aprobación de recargas', component: RechargeApproval, roles: [Role.Manager] },\n { path: '/manageUserBalance', exact: true, name: 'Saldo de mi equipo', component: ManageUserBalance, roles: [Role.Manager] },\n { path: '/requests', exact: true, name: 'Solicitudes de acreditar a cta.', component: Requests, roles: [Role.Manager] },\n { path: '/chat', exact: true, name: 'Chat', component: Chat, roles: [Role.Manager] },\n];\n\nexport default routes;\n","import React, { Suspense } from 'react'\nimport {\n Redirect,\n Route,\n Switch\n} from 'react-router-dom'\nimport { CContainer, CFade } from '@coreui/react'\nimport {authenticationService} from \"../_services/authentication.service\";\n\n// routes config\nimport routes from '../routes'\nimport AuthProvider from \"../AuthProvider\";\n \nconst loading = (\n
\n
\n
\n)\n\nconst TheContent = () => {\n return (\n
\n \n \n \n {routes.map((route, idx) => {\n return route.component && (\n (\n \n \n \n \n \n )} />\n )\n })}\n \n \n \n \n
\n )\n}\n\nexport default React.memo(TheContent)\n","import React from 'react'\nimport { CFooter, CImg } from '@coreui/react'\n\nconst TheFooter = () => {\n return (\n \n
\n \n
\n
\n Punto Gana\n © 2023 Punto Gana | www.puntogana.com.\n
\n
\n )\n}\n\nexport default React.memo(TheFooter)\n","import React from 'react'\nimport {\n CBadge,\n CDropdown,\n CDropdownItem,\n CDropdownMenu,\n CDropdownToggle,\n CProgress\n} from '@coreui/react'\nimport CIcon from '@coreui/icons-react'\nimport {useHistory} from \"react-router-dom\";\n\nconst TheHeaderDropdownNotif = (props) => {\n const history = useHistory()\n if (!props.notifications) {\n props.notifications = []\n }\n \n if (!props.customClassName) {\n props.customClassName = \"nothing\"\n }\n \n const itemsCount = props.notifications.length\n\n const notifList = props.notifications.map(m =>\n {\n let currentPath = window.location.hash;\n if (currentPath === m.url) {\n window.location.reload(false);\n }\n history.push(`${currentPath}/replace`);\n setTimeout(() => {\n history.push(m.url)\n }, 0)\n }}>\n
{m.message}
\n
)\n\n return (\n \n \n \n {itemsCount}\n \n \n \n Tiene {itemsCount} notificaciones\n \n {notifList}\n \n \n )\n}\n\nexport default TheHeaderDropdownNotif","import React from 'react'\nimport {\n CBadge,\n CDropdown,\n CDropdownItem,\n CDropdownMenu,\n CDropdownToggle,\n CImg\n} from '@coreui/react'\nimport CIcon from '@coreui/icons-react'\nimport {Link, useHistory} from \"react-router-dom\";\nimport {authenticationService} from \"../_services/authentication.service\";\nimport {Role} from \"../_helpers/role\";\nimport AuthProvider from \"../AuthProvider\";\n\nconst TheConfigMenu = ({...props}) => {\n const history = useHistory();\n if (!props.config) {\n props.config = \"14.4px\";\n }\n return (\n \n \n
\n Configuración\n
\n
\n \n \n {\n history.push(\"/users\");\n }}>\n Usuarios\n \n \n \n {\n history.push(`/users/editProfile/${authenticationService.getUserId}`);\n }}>\n Editar perfil\n \n \n \n {\n history.push(\"/manageUserBalance\");\n }}>\n Saldos de mi equipo\n \n \n \n {\n history.push(\"/lotteries\");\n }}>\n Sorteos\n \n \n \n {\n history.push(\"/restrictions\");\n }}>\n Restricciones\n \n \n \n {\n history.push(\"/sale/restrictions\");\n }}>\n Restricciones de ventas\n \n \n \n {\n history.push(\"/automaticRestrictions\");\n }}>\n Restricciones automáticas\n \n \n \n {\n history.push(\"/projects\");\n }}>\n Proyectos\n \n \n \n {\n history.push(\"/requests\");\n }}>\n Solicitudes de acreditación de saldos\n \n \n \n {\n history.push(\"/chat\");\n }}>\n Enviar notificaciones\n \n \n {\n authenticationService.logout()\n }}>\n Cerrar sesión\n \n \n \n )\n}\n\nexport default TheConfigMenu","import React from 'react'\nimport {\n CBadge,\n CDropdown,\n CDropdownItem,\n CDropdownMenu,\n CDropdownToggle,\n CImg\n} from '@coreui/react'\nimport CIcon from '@coreui/icons-react'\nimport {Link, useHistory} from \"react-router-dom\";\nimport {authenticationService} from \"../_services/authentication.service\";\nimport {Role} from \"../_helpers/role\";\nimport AuthProvider from \"../AuthProvider\";\n\nconst TheDonationMenu = ({...props}) => {\n const history = useHistory();\n if (!props.config) {\n props.config = \"14.4px\";\n }\n return (\n \n \n
\n Donación\n
\n
\n \n \n {\n history.push(\"/sales\");\n }}>\n {authenticationService.isDonor ? \"Donar\" : \"Recolectar\"}\n \n \n \n {\n history.push(\"/movements\");\n }}>\n Movimientos\n \n \n \n {\n history.push(\"/rechargeApproval\");\n }}>\n Aprobación de recargas\n \n \n \n {\n history.push(\"/list\");\n }}>\n Lista\n \n \n \n \n )\n}\n\nexport default TheDonationMenu","import React, {useEffect, useState, useRef} from 'react'\nimport {HubConnectionBuilder} from '@microsoft/signalr';\nimport {useSelector, useDispatch} from 'react-redux';\nimport AuthProvider from \"../AuthProvider\";\nimport {\n CHeader,\n CToggler,\n CHeaderBrand,\n CHeaderNav,\n CHeaderNavItem,\n CSubheader,\n CImg,\n CModal,\n CModalHeader,\n CModalTitle,\n CModalBody,\n CForm,\n CFormGroup,\n CLabel,\n CInput,\n CCardFooter,\n CButton, CInputGroupPrepend, CInputGroupText, CInputGroup, CInvalidFeedback, CInputCheckbox, CRow, CCol\n} from '@coreui/react'\nimport {authenticationService} from \"../_services/authentication.service\";\n\nimport {\n TheHeaderDropdown\n} from './index'\nimport {crudService} from \"../_services/crud.service\";\nimport TheHeaderDropdownNotif from \"./TheHeaderDropdownNotif\";\nimport TheConfigMenu from \"./TheConfigMenu\";\nimport TheDonationMenu from \"./TheDonationMenu\";\nimport {Role} from \"../_helpers/role\";\nimport CIcon from \"@coreui/icons-react\";\nimport {alertService} from \"../_services/alert.service\";\nimport {selectHelper} from \"../_helpers/select.helper\";\nimport Select from \"react-select\";\nimport {Col} from \"reactstrap\";\n\nconst TheHeader = () => {\n const [countryCurrencySign, setCountryCurrencySign] = useState(null);\n const [countryFlag, setCountryFlag] = useState(null);\n const [userPhoto, setUserPhoto] = useState(null);\n const [balance, setBalance] = useState(0.00);\n const [connection, setConnection] = useState(null);\n const [notifications, setNotifications] = useState([]);\n const latestNotification = useRef(null);\n const sidebarShow = useSelector(state => state.sidebarShow);\n const dispatch = useDispatch();\n const [showRequestModal, setShowRequestModal] = useState(false);\n const [amountRequested, setAmountRequested] = useState(0);\n const [paymentMethods, setPaymentMethods] = useState([]);\n const [selectedPaymentMethod, setSelectedPaymentMethod] = useState(null);\n const [accountNumber, setAccountNumber] = useState(\"\");\n\n latestNotification.current = notifications;\n\n const toggleSidebar = () => {\n const val = [true, 'responsive'].includes(sidebarShow) ? false : 'responsive';\n dispatch({\n type: 'set',\n sidebarShow: val\n });\n };\n\n const toggleSidebarMobile = () => {\n const val = [true, 'responsive'].includes(sidebarShow) ? false : 'responsive';\n dispatch({\n type: 'set',\n sidebarShow: val\n });\n }\n\n useEffect(() => {\n const newConnection = new HubConnectionBuilder()\n .withUrl('/hubs/notification', {\n accessTokenFactory: () => {\n return authenticationService.token;\n }\n })\n .withAutomaticReconnect()\n .build();\n\n setConnection(newConnection);\n }, []);\n\n useEffect(() => {\n if (connection) {\n connection.start()\n .then(result => {\n connection.on('SendNotification', message => {\n const updatedNotification = [...latestNotification.current];\n updatedNotification.push(message);\n\n setNotifications(updatedNotification);\n });\n })\n .catch(e => {\n // ignored\n });\n }\n }, [connection]);\n\n useEffect(() => {\n async function fetchCountryFlag() {\n crudService.get('User/getCountryFlag', (data) => {\n setCountryFlag(`data:image/png;base64,${data}`)\n }, 'Ocurrió un error obteniendo la bandera.')\n }\n\n fetchCountryFlag();\n }, []);\n\n useEffect(() => {\n async function fetchCountryCurrencySign() {\n crudService.get('User/getCountryCurrencySign', (currencySign) => {\n setCountryCurrencySign(currencySign);\n }, 'Ocurrió un error obteniendo el símbolo de la moneda.')\n }\n\n fetchCountryCurrencySign();\n }, []);\n\n useEffect(() => {\n async function R() {\n if (Notification.permission === 'default' || Notification.permission === 'denied') {\n const permission = await Notification.requestPermission();\n if (permission === \"granted\") {\n console.log(\"Permission granted\");\n }\n } else {\n console.log(\"Permission previously granted\");\n }\n }\n\n R();\n }, []);\n\n useEffect(() => {\n async function fetchUserPhoto() {\n crudService.get('User/getPhoto', (data) => {\n if (!data) {\n return;\n }\n setUserPhoto(`data:image/png;base64,${data}`)\n }, 'Ocurrió un error obteniendo la foto.')\n }\n\n fetchUserPhoto();\n }, []);\n\n useEffect(() => {\n async function fetchBalance() {\n crudService.get('User/getCurrentUserBalance', (data) => {\n setBalance(data);\n }, 'Ocurrió un error obteniendo el balance.')\n }\n\n fetchBalance();\n }, []);\n\n useEffect(() => {\n async function fetchPaymentMethods() {\n crudService.get('/country/getCurrentCountryPaymentMethods', (data) => {\n selectHelper.populateSelectControl(data, \"id\", \"paymentMethodName\", setPaymentMethods);\n }, 'Ocurrió un error listando los métodos de pago.');\n }\n\n fetchPaymentMethods();\n }, []);\n\n const handleSubmit = event => {\n event.preventDefault();\n\n const form = event.currentTarget;\n\n if (form.checkValidity()) {\n if (amountRequested <= 0) {\n alertService.error('El monto ingresado debe ser mayor a 0.');\n return;\n }\n\n crudService.post(\"request\", {\n amountRequested: amountRequested,\n paymentMethodId: selectedPaymentMethod,\n accountNumber: accountNumber\n }, () => {\n setShowRequestModal(!showRequestModal);\n setAmountRequested(0);\n setSelectedPaymentMethod(null);\n setAccountNumber(\"\");\n alertService.success(\"Solicitud creada. Pendiente de aprobación.\");\n }, \"Ocurrió un error creando la solicitud de acreditación de saldo.\");\n }\n }\n\n return (\n <>\n \n \n \n \n \n \n\n \n \n \n \n
\n \n
\n
\n \n
\n \n
\n
\n \n
\n \n
\n
\n \n
\n \n
\n \n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n \n
\n
\n
\n \n \n Recargar\n \n \n \n \n \n setShowRequestModal(!showRequestModal)}\n color=\"danger\">\n \n Crear solicitud para acreditar saldo\n \n \n \n \n El monto ingresado debe ser menor o igual al saldo actual.\n \n \n Método de pago\n {\n setSelectedPaymentMethod(e.value);\n }}\n id=\"paymentMethod\"\n placeholder={\"Seleccione un método de pago\"}\n noOptionsMessage={() => \"No hay métodos de pago para este país.\"}\n options={paymentMethods}/>\n El método de pago es requerido.\n \n \n Ingrese el número de cuenta\n correspondiente\n {\n setAccountNumber(e.target.value);\n }}/>\n \n \n Ingrese el saldo a acreditar\n \n \n \n {countryCurrencySign}\n \n \n {\n setAmountRequested(e.target.value);\n }}/>\n \n \n \n Está transacción podría tener\n cargos adicionales dependiendo el tipo de transacción que se realice y\n la comisión que puedan cobrar los bancos. \n \n \n Estoy de acuerdo\n \n \n \n Solicitar\n {\n setShowRequestModal(!showRequestModal)\n }}>Cancelar\n \n \n \n \n \n \n \n \n \n
\n \n \n {\n authenticationService.logout()\n }}>Cerrar sesión\n \n \n
\n \n \n \n\n \n \n \n \n \n \n \n
\n \n
\n
\n \n
\n \n
\n
\n
\n \n \n
\n \n
\n
\n \n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Recargar\n \n \n \n \n \n setShowRequestModal(!showRequestModal)}\n color=\"danger\">\n \n Crear solicitud para acreditar saldo\n \n \n \n \n El monto ingresado debe ser menor o igual al saldo\n actual.\n \n \n Método de pago\n {\n setSelectedPaymentMethod(e.value);\n }}\n id=\"paymentMethod\"\n placeholder={\"Seleccione un método de pago\"}\n noOptionsMessage={() => \"No hay métodos de pago para este país.\"}\n options={paymentMethods}/>\n El método de pago es requerido.\n \n \n Ingrese el número de cuenta\n correspondiente\n {\n setAccountNumber(e.target.value);\n }}/>\n \n \n Ingrese el saldo a\n acreditar\n \n \n \n {countryCurrencySign}\n \n \n {\n setAmountRequested(e.target.value);\n }}/>\n \n \n \n Está transacción podría\n tener cargos adicionales dependiendo el tipo de transacción que\n se realice y la comisión que puedan cobrar los bancos. \n \n \n Estoy de acuerdo\n \n \n \n Solicitar\n {\n setShowRequestModal(!showRequestModal)\n }}>Cancelar\n \n \n \n \n \n \n \n \n \n
\n \n )\n}\n\nexport default TheHeader","import React from 'react'\nimport {authenticationService} from \"../_services/authentication.service\";\n\nconst _nav = [\n {\n _tag: 'CSidebarNavTitle',\n _children: ['Ventas']\n },\n {\n _tag: 'CSidebarNavItem',\n name: 'Vender',\n to: '/sales',\n icon: 'cil-money'\n },\n {\n _tag: 'CSidebarNavItem',\n name: 'Lista',\n to: '/list',\n icon: 'cil-list-numbered',\n },\n {\n _tag: 'CSidebarNavTitle',\n _children: ['Configuración'],\n hidden: !authenticationService.isManager\n },\n {\n _tag: 'CSidebarNavDropdown',\n name: 'Configuración',\n route: '#',\n icon: 'cil-settings',\n hidden: !authenticationService.isManager,\n _children: [\n {\n _tag: 'CSidebarNavItem',\n name: 'Usuarios',\n to: '/users',\n },\n {\n _tag: 'CSidebarNavItem',\n name: 'Sorteos',\n to: '/lotteries',\n },\n {\n _tag: 'CSidebarNavItem',\n name: 'Restricciones',\n to: '/restrictions',\n },\n {\n _tag: 'CSidebarNavItem',\n name: 'Zonas',\n to: '/projects',\n }\n ],\n },\n {\n _tag: 'CSidebarNavTitle',\n _children: ['Reportes']\n },\n {\n _tag: 'CSidebarNavItem',\n name: 'Reporte 1',\n to: '/sales',\n icon: 'cil-money',\n },\n {\n _tag: 'CSidebarNavItem',\n name: 'Reporte 2',\n to: '/list',\n icon: 'cil-list-numbered',\n },\n {\n _tag: 'CSidebarNavDivider',\n className: 'm-2'\n }\n]\n\nexport default _nav\n","import React, {useEffect, useState} from 'react';\nimport {\n TheContent,\n TheFooter,\n TheHeader\n} from './index'\nimport { getAuthToken } from '@magicbell/webpush';\nimport { subscribe } from '@magicbell/webpush';\nimport {authenticationService} from \"../_services/authentication.service\";\nimport { createHmac } from 'crypto';\nimport {crudService} from \"../_services/crud.service\";\n\nconst TheLayout = () => {\n useEffect(() => {\n async function fetchToken() {\n const key = '95e91a9f1f6dbb8b8a57fd19e95e7f7848b0357b';\n const token = await getAuthToken({\n apiKey: key,\n userEmail: authenticationService.getUserEmail,\n userHmac: authenticationService.generateHmac(authenticationService.getUserEmail),\n userExternalId: createToken(authenticationService.getUserId, key),\n });\n \n localStorage.setItem('magicalApiToken', token.token);\n localStorage.setItem('magicalApiProject', token.project);\n await subscribe({\n token: token.token,\n project: token.project,\n serviceWorkerPath: '/sw.js',\n });\n }\n\n fetchToken();\n }, []);\n \n return (\n
\n
\n \n
\n \n
\n \n
\n
\n )\n}\n\nfunction createToken(userId, key) {\n const hmac = createHmac('sha256', key);\n hmac.update(userId, 'utf8');\n return hmac.digest('base64');\n}\n\nexport default TheLayout\n","import React, {useEffect, useState} from 'react'\nimport {useHistory} from 'react-router-dom';\nimport {\n CButton,\n CCard,\n CCardBody,\n CCardGroup,\n CCol,\n CSubheader,\n CContainer,\n CForm,\n CInput,\n CImg,\n CInputGroup,\n CInputGroupPrepend,\n CInputGroupText,\n CRow, CLabel, CFormGroup, CInputRadio,\n CTextarea, CInvalidFeedback\n} from '@coreui/react'\nimport CIcon from '@coreui/icons-react'\nimport {authenticationService} from \"../../../_services/authentication.service\";\nimport {crudService} from \"../../../_services/crud.service\";\nimport {alertService} from \"../../../_services/alert.service\";\nimport '../../../scss/_login.scss';\nimport DatePicker from \"react-datepicker\";\nimport es from \"date-fns/locale/es\";\n\n\nconst Login = () => {\n const history = useHistory();\n const [login, setLogin] = useState({});\n const [donor, setDonor] = useState({});\n const [showDonor, setShowDonor] = useState(false);\n const [countryChunks, setCountryChunks] = useState([]);\n\n const chunkArray = (array, chunkSize) => {\n const chunks = [];\n for (let i = 0; i < array.length; i += chunkSize) {\n chunks.push(array.slice(i, i + chunkSize));\n }\n return chunks;\n };\n\n useEffect(() => {\n async function fetchCountries() {\n crudService.get('/country', (data) => {\n const countries = chunkArray(data, 4);\n setCountryChunks(countries);\n }, 'Ocurrió un error listando los métodos de pago.');\n }\n\n fetchCountries();\n }, []);\n\n useEffect(() => {\n if (authenticationService.currentUserValue) {\n history.push('/');\n }\n }, []);\n\n const handleSubmit = event => {\n event.preventDefault();\n\n const form = event.currentTarget;\n\n if (form.checkValidity()) {\n authenticationService.login(login.username, login.password).then(user => {\n history.push('/list')\n });\n }\n }\n\n const donorSubmit = event => {\n event.preventDefault();\n const form = event.currentTarget;\n\n if (form.checkValidity()) {\n if (donor.countryId === undefined) {\n alertService.error(\"Debe seleccionar un país.\");\n return;\n }\n\n if (!donor.birth) {\n alertService.error(\"La fecha de nacimiento es requerida.\");\n return;\n }\n \n crudService.post('/user/create-donor', \n {\n yearBirth: donor.birth.getFullYear(),\n monthBirth: donor.birth.getMonth() + 1,\n dayBirth: donor.birth.getDate(),\n ...donor,\n },\n () => {\n //alertService.success(\"Solicitud enviada correctamente. Su nombre de usuario y contraseña serán enviados a su correo electrónico.\")\n alertService.success(\"Solicitud enviada correctamente. Su nombre de usuario y contraseña serán el documento de identidad ingresado.\")\n setDonor({});\n setShowDonor(false);\n },\n 'Ocurrió un error enviando la solicitud.')\n }\n }\n\n return (\n
\n \n \n \n \n \n \n
\n \n
\n \n
    \n
  1. Números Ganadores
  2. \n
\n
\n \n \n \n

Iniciar sesión

\n \n \n \n \n \n \n \n \n {\n setLogin({...login, username: e.target.value});\n }}/>\n \n \n \n \n \n \n \n \n \n \n \n {\n setLogin({...login, password: e.target.value});\n }}/>\n \n \n \n \n \n Login\n \n \n {\n history.push(\"/forgot\");\n }}>¿Olvidó su contraseña?\n \n \n \n \n {\n setShowDonor(!showDonor);\n }}>Crea tú cuenta de Usuario AQUI\n \n \n \n \n
\n
\n
\n \n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n )\n}\n\nexport default Login\n","import React from 'react';\nimport { Route, Redirect } from 'react-router-dom';\n\nimport { authenticationService } from '../_services/authentication.service';\n\nexport const PrivateRoute = ({ component: Component, roles, ...rest }) => (\n {\n const currentUser = authenticationService.currentUserValue;\n if (!currentUser) {\n // not logged in so redirect to login page with the return url\n return \n }\n\n // check if route is restricted by role\n if (roles && roles.indexOf(currentUser.role) === -1) {\n // role not authorised so redirect to home page\n return \n }\n\n // authorised so return component\n return \n }} />\n)","import React, {useEffect, useState} from 'react'\nimport {useHistory} from 'react-router-dom';\nimport {\n CButton,\n CCard,\n CCardBody,\n CCardGroup,\n CCol,\n CSubheader,\n CContainer,\n CForm,\n CInput,\n CImg,\n CInputGroup,\n CInputGroupPrepend,\n CInputGroupText,\n CRow, CFormGroup, CLabel\n} from '@coreui/react'\nimport CIcon from '@coreui/icons-react'\nimport {authenticationService} from \"../../../_services/authentication.service\";\nimport {crudService} from \"../../../_services/crud.service\";\nimport {selectHelper} from \"../../../_helpers/select.helper\";\nimport Select from \"react-select\";\nimport {alertService} from \"../../../_services/alert.service\";\n\nconst ForgotPassword = () => {\n const history = useHistory();\n const [login, setLogin] = useState({});\n const [countries, setCountries] = useState([]);\n\n useEffect(() => {\n if (authenticationService.currentUserValue) {\n history.push('/');\n }\n }, []);\n\n useEffect(() => {\n async function fetchCountries() {\n crudService.get('/country', (data) => {\n selectHelper.populateSelectControl(data, \"id\", \"name\", setCountries);\n }, 'Ocurrió un error listando los paises.');\n }\n\n fetchCountries();\n }, []);\n\n const handleSubmit = event => {\n event.preventDefault();\n\n const form = event.currentTarget;\n\n if (form.checkValidity()) {\n crudService.post('/user/forgotPassword',\n login,\n () => {\n alertService.success('Se ha cambiado la contraseña.');\n history.push('/login')\n },\n 'Ocurrió un error recuperando la contraseña.')\n }\n }\n\n return (\n
\n \n \n \n \n \n \n
\n \n
\n \n \n \n \n

Recuperar contraseña

\n \n \n \n \n \n \n {\n setLogin({...login, username: e.target.value});\n }}/>\n \n \n \n \n \n \n \n {\n setLogin({...login, email: e.target.value});\n }}/>\n \n \n \n \n \n \n \n {\n setLogin({...login, password: e.target.value});\n }}/>\n \n \n {\n setLogin({...login, countryId: e.value});\n }}\n placeholder={\"Seleccione un país\"}\n noOptionsMessage={() => \"No hay paises\"}\n options={countries}/>\n \n \n \n Recuperar contraseña\n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n )\n}\n\nexport default ForgotPassword","import React, {Component} from 'react';\nimport {HashRouter, Route, Switch} from 'react-router-dom';\nimport './scss/style.scss';\nimport TheLayout from './containers/TheLayout';\nimport Login from './views/pages/login/Login';\nimport { PrivateRoute } from './components/PrivateRoute';\nimport ForgotPassword from \"./views/pages/login/ForgotPassword\";\n\nconst loading = (\n
\n
\n
\n)\n\nclass App extends Component {\n constructor(props) {\n super(props);\n }\n \n render() {\n return (\n \n \n \n }/>\n }/>\n \n \n \n \n );\n }\n}\n\nexport default App;\n","// In production, we register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://goo.gl/SC7cgQ'\n );\n });\n } else {\n // Is not local host. Just register service worker\n registerValidSW('/sw.js', config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log('New content is available; please refresh.');\n\n // Execute callback\n if (config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').indexOf('javascript') === -1\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","export const sygnet = ['160 160', `\n coreui logo\n \n \n \n \n \n \n`]\n","import { sygnet } from './sygnet'\nimport { logo } from './logo'\nimport { logoNegative } from './logo-negative'\n\nimport {\n cibSkype,\n cibFacebook,\n cibTwitter,\n cibLinkedin,\n cibFlickr,\n cibTumblr,\n cibXing,\n cibGithub,\n cibStackoverflow,\n cibYoutube,\n cibDribbble,\n cibInstagram,\n cibPinterest,\n cibVk,\n cibYahoo,\n cibBehance,\n cibReddit,\n cibVimeo,\n cibCcMastercard,\n cibCcVisa,\n cibStripe,\n cibPaypal,\n cibGooglePay,\n cibCcAmex\n} from '@coreui/icons'\nimport {\n cifUs,\n cifBr,\n cifIn,\n cifFr,\n cifEs,\n cifPl\n} from '@coreui/icons'\nimport {\n cilAlignCenter,\n cilAlignLeft,\n cilAlignRight,\n cilApplicationsSettings,\n cilArrowRight,\n cilArrowTop,\n cilAsterisk,\n cilBan,\n cilBasket,\n cilBell,\n cilBold,\n cilBookmark,\n cilCalculator,\n cilCalendar,\n cilCloudDownload,\n cilChartPie,\n cilCheck,\n cilChevronBottom,\n cilChevronLeft,\n cilChevronRight,\n cilChevronTop,\n cilCircle,\n cilCheckCircle,\n cilCode,\n cilCommentSquare,\n cilCreditCard,\n cilCursor,\n cilCursorMove,\n cilDrop,\n cilDollar,\n cilEnvelopeClosed,\n cilEnvelopeLetter,\n cilEnvelopeOpen,\n cilEuro,\n cilGlobeAlt,\n cilGrid,\n cilFile,\n cilFullscreen,\n cilFullscreenExit,\n cilGraph,\n cilHome,\n cilInbox,\n cilIndentDecrease,\n cilIndentIncrease,\n cilInputPower,\n cilItalic,\n cilJustifyCenter,\n cilJustifyLeft,\n cilLaptop,\n cilLayers,\n cilLightbulb,\n cilList,\n cilListNumbered,\n cilListRich,\n cilLocationPin,\n cilLockLocked,\n cilMagnifyingGlass,\n cilMap,\n cilMoon,\n cilNotes,\n cilOptions,\n cilPaperclip,\n cilPaperPlane,\n cilPencil,\n cilPeople,\n cilPhone,\n cilPrint,\n cilPuzzle,\n cilSave,\n cilScrubber,\n cilSettings,\n cilShare,\n cilShareAll,\n cilShareBoxed,\n cilShieldAlt,\n cilSpeech,\n cilSpeedometer,\n cilSpreadsheet,\n cilStar,\n cilSun,\n cilTags,\n cilTask,\n cilTrash,\n cilUnderline,\n cilUser,\n cilUserFemale,\n cilUserFollow,\n cilUserUnfollow,\n cilX,\n cilXCircle,\n cilWarning,\n cilMoney\n} from '@coreui/icons'\n\nexport const icons = Object.assign({}, {\n sygnet,\n logo,\n logoNegative\n}, {\n cilAlignCenter,\n cilAlignLeft,\n cilAlignRight,\n cilApplicationsSettings,\n cilArrowRight,\n cilArrowTop,\n cilAsterisk,\n cilBan,\n cilBasket,\n cilBell,\n cilBold,\n cilBookmark,\n cilCalculator,\n cilCalendar,\n cilCloudDownload,\n cilChartPie,\n cilCheck,\n cilChevronBottom,\n cilChevronLeft,\n cilChevronRight,\n cilChevronTop,\n cilCircle,\n cilCheckCircle,\n cilCode,\n cilCommentSquare,\n cilCreditCard,\n cilCursor,\n cilCursorMove,\n cilDrop,\n cilDollar,\n cilEnvelopeClosed,\n cilEnvelopeLetter,\n cilEnvelopeOpen,\n cilEuro,\n cilGlobeAlt,\n cilGrid,\n cilFile,\n cilFullscreen,\n cilFullscreenExit,\n cilGraph,\n cilHome,\n cilInbox,\n cilIndentDecrease,\n cilIndentIncrease,\n cilInputPower,\n cilItalic,\n cilJustifyCenter,\n cilJustifyLeft,\n cilLaptop,\n cilLayers,\n cilLightbulb,\n cilList,\n cilListRich,\n cilLocationPin,\n cilLockLocked,\n cilMagnifyingGlass,\n cilMap,\n cilMoon,\n cilNotes,\n cilOptions,\n cilPaperclip,\n cilPaperPlane,\n cilPencil,\n cilPeople,\n cilPhone,\n cilPrint,\n cilPuzzle,\n cilSave,\n cilScrubber,\n cilSettings,\n cilShare,\n cilShareAll,\n cilShareBoxed,\n cilShieldAlt,\n cilSpeech,\n cilSpeedometer,\n cilSpreadsheet,\n cilStar,\n cilSun,\n cilTags,\n cilTask,\n cilTrash,\n cilUnderline,\n cilUser,\n cilUserFemale,\n cilUserFollow,\n cilUserUnfollow,\n cilX,\n cilXCircle,\n cilWarning,\n cilMoney,\n cilListNumbered\n}, {\n cifUs,\n cifBr,\n cifIn,\n cifFr,\n cifEs,\n cifPl\n}, {\n cibSkype,\n cibFacebook,\n cibTwitter,\n cibLinkedin,\n cibFlickr,\n cibTumblr,\n cibXing,\n cibGithub,\n cibStackoverflow,\n cibYoutube,\n cibDribbble,\n cibInstagram,\n cibPinterest,\n cibVk,\n cibYahoo,\n cibBehance,\n cibReddit,\n cibVimeo,\n cibCcMastercard,\n cibCcVisa,\n cibStripe,\n cibPaypal,\n cibGooglePay,\n cibCcAmex\n})\n","export const logo = ['608 134', `\n Fundeporte Tiempos\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n`]","export const logoNegative = ['608 134', `\n Fundeporte Tiempos\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n`]\n","import { createStore } from 'redux'\n\nconst initialState = {\n sidebarShow: 'responsive'\n}\n\nconst changeState = (state = initialState, { type, ...rest }) => {\n switch (type) {\n case 'set':\n return {...state, ...rest }\n default:\n return state\n }\n}\n\nconst store = createStore(changeState)\nexport default store","import 'react-app-polyfill/ie11';\nimport 'react-app-polyfill/stable';\nimport 'core-js';\nimport './client/polyfill'\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './client/App';\nimport * as serviceWorker from './client/serviceWorker';\nimport {icons} from './client/assets/icons'\nimport axios from \"axios\";\nimport {Provider} from 'react-redux'\nimport store from './client/store'\nimport {authenticationService} from \"./client/_services/authentication.service\";\nimport {Router} from \"react-router-dom\";\nimport {createBrowserHistory} from \"history\";\nimport { Alert } from '../node_modules/@coreui/coreui/dist/js/coreui';\nimport { alertService } from './client/_services/alert.service';\n\nReact.icons = icons\nconst history = createBrowserHistory();\n\naxios.interceptors.response.use(function (response) {\n return response;\n}, function (error) {\n const response = error.response;\n if (response.status !== 200) {\n if ([401, 403].indexOf(response.status) !== -1) {\n // auto logout if 401 Unauthorized or 403 Forbidden response returned from api\n authenticationService.logout();\n return;\n }\n \n return Promise.reject(error.response);\n }\n});\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root')\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: http://bit.ly/CRA-PWA\nserviceWorker.register();\n"],"sourceRoot":""}