{"version":3,"sources":["Core/Theme/theme.js","Containers/Index/styles.js","Containers/Home/styles.js","Containers/Home/Home.js","Components/Input/styles.js","Components/Input/PlnInput.js","Components/Input/PlnCheckbox.js","Components/Input/PlnDropdown.js","Components/Input/PlnInputCard.js","Components/Input/PlnError.js","Containers/ConsultaElectores/styles.js","Core/Api/padronApi.js","Core/Utils/RegExpUtils.js","Containers/ConsultaElectores/ConsultaElectores.js","Containers/RegistroGestores/styles.js","Core/Api/gestorApi.js","Core/Api/mailApi.js","Core/Api/periodoApi.js","Containers/RegistroGestores/RegistroGestores.js","Containers/Login/styles.js","Core/Api/accountApi.js","Storage/Storage.js","Storage/ConfigPage.js","Containers/Login/Login.js","Containers/Login/ForgotPassword.js","Containers/MainPage/styles.js","Containers/MainPage/MainPage.js","Containers/Formulario/styles.js","Core/Api/locationApi.js","Containers/Formulario/Formulario.js","Containers/FormularioAuth/styles.js","Containers/FormularioAuth/FormularioAuth.js","Containers/Layout/makeStyles.js","Containers/Copyright/Copyright.js","Containers/Dashboard/Cards.js","Components/Loading/Loading.js","Core/Utils/Utils.js","Containers/MacroList/MacroList.js","Core/Api/distritalesApi.js","Core/Api/comprobanteApi.js","Core/Consts/Consts.js","Components/Filters/RegistrosElectFilter.js","Components/PLNDialog/PLNDialog.js","Core/Utils/Comprobante.js","Core/Utils/Logo.js","Containers/Distritales/Distritales.js","Containers/Distritales/styles.js","Components/ModalHojaInfo/styles.js","Components/ModalHojaInfo/ModalHojaInfo.js","Components/UploadFile/UploadFile.js","Components/ListSearch/styles.js","Core/Api/papeletaApi.js","Components/ListSearch/ListSearch.js","Core/Api/prevencionApi.js","Core/Api/balanceGlobalApi.js","Core/Utils/Prevencion.js","Core/Api/papeletaDistrital.js","Containers/Distritales/AddDistritales.js","Containers/Cantonales/data.js","Core/Api/cantonalesApi.js","Containers/Cantonales/Cantonales.js","Containers/Cantonales/styles.js","Core/Api/papeletaCantonal.js","Containers/Cantonales/EditCantonales.js","Containers/Cantonales/AddCantonales.js","Containers/Provinciales/data.js","Core/Api/provincialesApi.js","Containers/Provinciales/Provinciales.js","Containers/Provinciales/styles.js","Core/Api/papeletaProvincial.js","Containers/Provinciales/AddProvinciales.js","Containers/Provinciales/EditProvinciales.js","Containers/PresidencialSectorial/data.js","Core/Api/presidenteSectorApi.js","Containers/PresidencialSectorial/PresidencialSectorial.js","Core/Context/AppContext.js","Containers/PresidencialSectorial/styles.js","Core/Api/papeletaPresidenteSector.js","Containers/PresidencialSectorial/AddPresidenteSector.js","Containers/PresidencialSectorial/EditPresidenteSector.js","Containers/Sectoriales/data.js","Core/Api/sectorialesApi.js","Containers/Sectoriales/Sectoriales.js","Containers/Sectoriales/styles.js","Core/Api/papeletaSectorial.js","Containers/Sectoriales/AddPapeletaSector.js","Containers/Sectoriales/EditSectoriales.js","Containers/Nacionales/data.js","Core/Api/nacionalesApi.js","Containers/Nacionales/Nacionales.js","Containers/Nacionales/styles.js","Core/Api/papeletaNacional.js","Containers/Nacionales/AddNacionales.js","Containers/Nacionales/EditNacionales.js","Containers/Distritales/EditDistritales.js","Containers/MiembrosMesa/data.js","Core/Api/miembrosMesaApi.js","Containers/MiembrosMesa/MiembrosMesa.js","Containers/MiembrosMesa/styles.js","Containers/MiembrosMesa/AddMiembro.js","Containers/MiembrosMesa/EditMiembro.js","Containers/FiscalesMesa/data.js","Core/Api/fiscalesMesaApi.js","Containers/FiscalesMesa/FiscalesMesa.js","Containers/FiscalesMesa/styles.js","Containers/FiscalesMesa/AddFiscales.js","Containers/FiscalesMesa/EditFiscales.js","Containers/FiscalesGenerales/data.js","Core/Api/fiscalesGeneralesApi.js","Containers/FiscalesGenerales/FiscalesGenerales.js","Containers/FiscalesGenerales/styles.js","Containers/FiscalesGenerales/AddFiscalesGenerales.js","Containers/FiscalesGenerales/EditFiscalesGenerales.js","Containers/RegistroDepositos/data.js","Core/Api/depositosApi.js","Containers/RegistroDepositos/RegistroDepositos.js","Containers/RegistroDepositos/styles.js","Containers/RegistroDepositos/AddDeposito.js","Containers/RegistroDepositos/EditDeposito.js","Containers/ConsultaDebitos/data.js","Core/Api/debitosApi.js","Containers/ConsultaDebitos/ConsultaDebitos.js","Containers/ConsultasPublicas/styles.js","Containers/ConsultasPublicas/CPPapeletasDistritales.js","Containers/ConsultasPublicas/CPPapeletasCantonales.js","Containers/ConsultasPublicas/CPPapeletasProvinciales.js","Containers/ConsultasPublicas/CPPapeletasNacionales.js","Containers/ConsultasPublicas/CPPresidenteSector.js","Containers/ConsultasPublicas/CPPapeletasSectoriales.js","Containers/RegistrosElectorales/styles.js","Core/Api/registrosElectoralesApi.js","Containers/RegistrosElectorales/REMiembrosMesa.js","Containers/RegistrosElectorales/REFiscalesMesa.js","Containers/RegistrosElectorales/REFiscalesGenerales.js","Containers/GafetesElectorales/GafetesMiembrosMesa.js","Containers/GafetesElectorales/GafetesFiscalesMesa.js","Containers/GafetesElectorales/GafetesFiscalesGenerales.js","Routes/routes.js","Containers/Dashboard/Dashboard.js","Containers/Header/NestedMenuItem.tsx","Containers/Header/styles.js","Containers/Header/Header.js","Containers/Logout/styles.js","Containers/Logout/Logout.js","Containers/Dashboard/MenuItems.js","Containers/Layout/AppBarCustom/AppBarCustom.js","Routes/CustomRoute.js","Middleware/AuthMiddleware.js","Containers/Layout/Layout.js","Core/Context/AppProvider.js","App.js","serviceWorker.js","index.js"],"names":["colors","breakpoints","MOBILE","SM","MD","LG","XL","theme","createMuiTheme","palette","primary","main","secondary","typography","useNextVariants","fontFamily","overrides","MuiContainer","root","width","display","boxSizing","marginLeft","marginRight","paddingLeft","paddingRight","MuiAppBar","colorPrimary","backgroundColor","boxShadow","MuiExpansionPanelSummary","color","MuiExpansionPanelDetails","background","MuiTextField","margin","border","height","paddingTop","paddingBottom","MuiInputLabel","fontSize","transform","MuiLink","MuiInputBase","input","transition","MuiInput","underline","borderBottom","MuiButton","containedPrimary","containedSecondary","MuiButtonGroup","contained","groupedContainedHorizontal","borderRadius","borderLeft","borderColor","borderTop","borderRight","MuiListItem","MuiCssBaseline","visibility","position","left","top","styles","container","sectionDesktop","up","sectionMobile","imgLogo","maxWidth","padding","down","bp","socialLinks","marginTop","float","listStyle","loginAccess","withStyles","style","props","classes","className","inputLabel","borderWidth","borderStyle","password","letterSpacing","inputMultiline","inputError","marginBottom","error","textTransform","required","content","checkboxContainer","cursor","alignItems","checkbox","justifyContent","order","right","checkboxIcon","ccContainer","ccField","flexGrow","cc","ccImg","maxHeight","dropdownContainer","dropdownControl","dropdownArrow","dropdown","dropdownError","PlnInput","label","type","disabled","field","form","touched","errors","isRequired","mask","placeholder","t","useTranslation","htmlFor","name","clsx","multiLine","maskChar","value","onChange","onBlur","defaultProps","PlnCheckbox","id","labelChecked","checked","useState","isChecked","setIsChecked","useEffect","e","shortId","generate","PlnDropdown","data","FormControl","variant","Select","IconComponent","target","reduce","list","itm","itemLabel","push","MenuItem","key","onUpdate","creditCardType","setCreditCardType","setMask","length","types","ccType","cctype","alt","src","amex","visa","mastercard","discover","monoDefault","renderCCImage","PlnError","children","data-type","propTypes","PropTypes","oneOfType","arrayOf","node","textAlign","textWeight","boxForm","fieldFilled","axios","defaults","baseURL","process","validateRenuncia","cedula","url","get","join","searchByCedula","searchIsOnPuestosMunicipales","REGEX_UTILS","email","phone","digits","nickname","showSearchResult","setShowSearchResult","initialValues","setInitialValues","provincia","canton","distritoAdm","distritoEl","juventud","primerApellido","segundoApellido","nombre","electorInfo","setElectorInfo","msjErrorCedula","setMsjErrorCedula","validationSchema","Yup","loadInformation","values","a","setSubmitting","then","_response","response","information","des_nombre_p","des_nombre_c","des_nombre_ad","des_nombre_d","num_edad","des_apell1","des_apell2","des_nombre","jrv","num_jvirt","centroVotacion","des_nombre_centro","catch","Container","validate","REGEX","test","onSubmit","isSubmitting","Fragment","Grid","spacing","item","xs","component","formError","Alert","severity","flexDirection","Button","CircularProgress","sm","fieldTitle","onClick","ev","preventDefault","resetForm","subtitle","getTotalPapeletas","getIGESAvailable","getRGESMMAvailable","getCRUDAvailable","getCRUDAvailableSectores","getLoginGESAvailable","getConsultaInscripcionesAvailable","getFormPapeletaSectoresAvailable","getCustomMessage1Available","useIGESAvailable","useQuery","useFormPapeletaSectoresAvailable","useCustomMessage1Available","useCRUDAvailable","useCRUDAvailableSectores","Transition","React","forwardRef","tProps","ref","Slide","direction","formGestorRegister","useRef","isRegistroGESAvailable","registroGESAvailable","Lodash","jsPDF","showForm","setShowForm","termConditions","setTermConditions","tel_casa","tel_celu","tel_ofi","des_email","des_email2","des_direccion","des_direccion_trabajo","gestorData","setGestorData","frmInitValues","telCasa","telCelu","telOfi","dirDomicilio","dirTrabajo","email1","email2","reemail1","passUser","iCedula","setICedula","iValues2","setIValues2","msjUserRegistered","setMsjUserRegistered","initialValues2","msjDialog","setMsjDialog","open","setOpenDialog","finalDialog","setFinalDialog","handleClose","closeFinalDialog","enableReinitialize","findGestor","result","r","gestorInfo","num_cedula","justify","Divider","spinner","TextField","fullWidth","InputProps","readOnly","gestor","userData","cod_prov","cod_cant","cod_dist_sede","cod_dist_adm","fec_caduc","sexo","tel_res","tel_cel_n","num_fax","num_fax_ofi","params","typeApp","user","telefonos","telefonosData","direcciones","direccionesData","emails","emailsData","post","saveGestor","emailjs","sendForm","current","console","log","overflowY","Dialog","TransitionComponent","keepMounted","onClose","aria-labelledby","aria-describedby","DialogTitle","DialogContent","DialogContentText","DialogActions","loginBox","accountBox","title","labelText","linkText","submitButton","inverseButton","forgotPwdLink","fontWeight","textDecoration","backToLogin","StorageSymbol","Symbol","StorageSymbolEnforce","Storage","enforcer","Error","_token","localStorage","setItem","getItem","_flag","this","isTokenExpired","removeItem","ConfigPageSymbol","ConfigPageSymbolEnforce","ConfigPage","JSON","stringify","config","parse","submitError","setSubmitError","submitErrorMsg","setSubmitErrorMsg","setIsSubmitting","storageInstance","instance","storagePageInstance","publicIp","v4","ip","profileData","pwd","ipAddress","login","res","responseToken","token","setToken","setStorage","showHeader","showFooter","window","location","href","formik","useFormik","handleChange","lname","formForgotPwd","submitSuccess","setSubmitSuccess","submitSuccessMsg","setSubmitSuccessMsg","forgotPwd","dataMail","isPwdUpdated","userEmail","dataNotification","toEmail","fullName","newPassword","forEach","hiddenInput","document","createElement","appendChild","getElementById","removeChild","setFieldValue","resetPassword","pageBox","subtitleDoc","boxDocToPdf","textFilled","customField","getProvincesItems","frmOptions","map","p","cod_provincia","unshift","initValues","distrito","papeleta","provinciasData","getMovimientosItems","DES","COD","movimiento","movimientosData","getSectoresItems","sector","sectoresData","getMovimientosCantonales","getSectores","getProvinces","getCantonsByProvince","idProvince","getDistritoBy","idCanton","getDistritoByTwo","getCantidadDelegados","idDistrito","useProvincias","useMovimientos","useSectores","typeForm","match","listMovimientos","listSectores","showPreview","setShowPreview","sProvincia","setSProvincia","sCanton","setSCanton","sDistrito","setSDistrito","sMovimiento","setSMovimiento","sPuesto","setSPuesto","showFormEnable","setShowFormEnable","numDelegados","setNumDelegados","pdfSubtitle","setPdfSubtitle","pdfPuesto","setPdfPuesto","isFormPapeletaSectoresAvailable","formPapeletaSectoresAvailable","formSectoresLoading","puesto","provincias","cantones","setCantones","distritos","setDistritos","startMovimientos","movimientos","setMovimientos","sectores","puestos","setPuestos","tableHeaderTitle","tableHeaderTitleCE","tableHeaderTitleCF","doc","setProvincia","find","status","clist","cod_canton","setCanton","c","dlist","cod_dist_ad","setMovimiento","d","downloadForm","getTimeStamp","now","Date","getMonth","getDate","getFullYear","getHours","getMinutes","getSeconds","centeredText","text","y","textWidth","getStringUnitWidth","internal","getFontSize","scaleFactor","textOffset","pageSize","generatePDF","setFont","setFontSize","paragraph","lines","splitTextToSize","columns","typeTable1","showTheHeader","baseHeightText","baseHeightTable","datos1","autoTable","head","body","startY","overflow","cellWidth","font","columnStyles","0","halign","fillColor","1","2","3","headStyles","textColor","showHead","dinamicFields","theTitle","posY","lastAutoTable","finalY","n","numRow","dataT","fontStyle","n2","dataT2","n3","dataT3","dataT6","notesData","getNotesPDF","dataPie","fileTS","save","isEmpty","getTitlePage","cantDelegados","useStyles","makeStyles","toolbar","toolbarIcon","mixins","appBar","zIndex","drawer","transitions","create","easing","sharp","duration","leavingScreen","appBarShift","enteringScreen","menuButton","menuButtonHidden","drawerPaper","whiteSpace","drawerPaperClose","overflowX","appBarSpacer","paper","fixedHeight","cardIcon","customChip","Copyright","Typography","align","depositContext","flex","Cards","tokenStorage","decodedToken","useJwt","getToken","totales","setTotales","allTotales","dataTotales","fetchTotalesAPI","gutterBottom","Paper","wrap","distritales","Avatar","cantonales","provinciales","nacionales","sectoriales","Loading","formatData","_total","toString","replace","getEstadoPapeleta","codStatus","estado","description","formatDate","date","dateParts","split","month","day","divider","MacroList","listName","btnConfig","tableHeads","tableBody","tableFooter","uiStylesClasses","actionConfig","filters","dataEmpty","showTotals","sumTotalsColumns","displayCopyright","isCrudAvailable","renderHeaders","template","x","TableCell","TableHead","TableRow","renderTableCells","_items","itemProps","Object","getOwnPropertyNames","renderItemActions","_currentRow","options","cr","option","showOpt","Tooltip","aria","IconButton","aria-label","size","clickHandler","icon","actionContainer","renderTableData","row","TableBody","renderTableTotals","totalMonto","parseFloat","monto","montoDeposito","renderRegisters","renderSumTotalsColumns","btnAdd","event","Table","renderTable","seeMore","Box","pt","axiosInstance","responseType","_ced","info","codPapeleta","cedulaGestor","consecutivo","getDataComprobante","consts","distritalesInitValues","delegado1","delegado2","delegado3","delegado4","delegado5","delegado6","delegado7","delegado8","delegado9","presidente","vicePresidente","secretario","subSecretario","tesoreria","subTesoreria","propietario","cantonalesInitValues","cantonal1","cantonal2","cantonal3","cantonal4","cantonal5","cantonal6","cantonal7","provincialesInitValues","provincial1","provincial2","provincial3","provincial4","nacionalesInitValues","nacional1","nacional2","nacional3","presidenteSectorInitValues","sectorialesInitValues","sectorial1","sectorial2","sectorial3","initListDelegados","lugar","numPuesto","fieldName","edad","enabled","filled","initListComite","initListCandidatosFiscalia","initListComiteCantonal","initlistComiteProvincial","initListComiteNacional","initListComiteSectorial","urlFile","nameFile","initListAddDeposito","initlistPresiSector","initlistPapeletaSector","delegadosMOrder","delegadosFOrder","comiteMOrder","comiteFOrder","fiscalesMOrder","fiscalesFOrder","comiteCantonalMOrder","comiteCantonalFOrder","comiteProvincialMOrder","comiteProvincialFOrder","comiteNacionalMOrder","comiteNacionalFOrder","presiSectorMOrder","presiSectorFOrder","comiteSectorFOrder","comiteSectorMOrder","estadosDistritales","codigo","movimientosCantonales","movimientosSectoriales","puestosMesa","descripcion","puestosFiscalesMesa","puestosFiscalGeneral","puestosNacionales","puestosRegistrosElectorales","puestosDelegadosDistritales","puestosComiteCantonal","filterInput","grid","RegistrosFilter","currentFilter","responsiveSize","inputId","action","global","removeBtn","submitBtn","simpleBtn","PLNDialog","bodymessage","buttons","submit","remove","simple","button","actionName","_e","clickHander","generateComprobante","titleComprobante","generalInfo","candidatosInfo","montosInfo","addImage","valign","datos2","fecha","headerblock1","delegados","comite","fiscales","blankFields","blankFields2","membresia","total","generateComprobanteCantonal","generateComprobanteProvincial","generateComprobanteNacional","titleBlock","generateComprobantePresidenteSector","generateComprobanteSectorial","generatePrevencion","idPrevencion","dataPapeleta","papeletaInfo","titleBlockFooter","generateGafete","dataGafete","typeGafete","imgData","nestedTableCell","minCellHeight","infoGafetes","arr","len","chunks","i","slice","splitInGroupOf","totalPaginas","pG","pageXGafete","columnsGafete","tableWG","foot","showFoot","tableWidth","didDrawCell","dataG","index","section","cell","maxCellHeight","dataKey","header","bottom","column","cellPadding","addPage","createData","_data","filterEstado","Consts","filter","cod_estado","num_consecutivo","province","numero","cod_papeleta","heads","btnBack","btnActions","sectionTitle","fieldMin","fieldMinFilled","frmText","lineHeight","frmIconButton","btnSubmitting","searchButton","hideCicularProgress","customFrmDropDown","formWarning","currentPerson","addPersonToRow","setCurrentSexChanged","tel_celular","dir_habitacion","dir_trabajo","tel_trabajo","fax_trabajo","openMsjDialog","setOpenMsjDialog","handleCloseMsjDialog","changeToNewSex","persist","handleCancel","disableBackdropClick","disableEscapeKeyDown","personInfo","ind_sexo","updatePersonInfo","parseInt","RadioGroup","FormControlLabel","control","Radio","UploadFile","rowData","listData","setAllList","file","setFile","loading","setLoading","uploaded","setUploaded","fileUrl","setFileUrl","tokenData","handleUpload","alert","formData","FormData","append","secure_url","delegado","newList","union","orderedList","orderBy","btnAttachFileActive","hidden","files","pointerEvents","btnRemoveFileActive","btnDeleteActive","btnDeleteInactive","juventudChip","validateCandidato","validateFiscal","ListSearch","initListData","sexOrderM","sexOrderF","fieldToShow","setListFunc","inPlace","findInOtherList","otherList","validateBy","requireSexOrder","sexFieldAs","onlyJuventud","hideSexColumn","needHojaInfo","isFiscal","nameList","setListData","setCurrentPerson","currentSexChanged","inputNameField","setInputNameField","lugarField","setLugarField","openHojaInfo","setOpenHojaInfo","msjOnRegimenMunicipal","setMsjOnRegimenMunicipal","doSearchByCedula","numCedula","inputName","person","activo","isMjsRegimenActivate","validPerson","personName","personCedula","personPlace","_isPersonProvincia","_isPersonCanton","_isPersonDistrito","dataVal","sexVal","listToDoSearch","sexOrder","newListData","vResult","sexMessage","validarRenucia","removePerson","rows","numFields","diff","maxLength","getFieldProps","getElementsByName","isInOtherList","Chip","renderList","isData","selectedSex","delegadoVal","sexValNew","clonedPerson","addPrevencion","infoPrevencion","prevencion","dataPrevencion","startPrevencion","nCodPapeleta","nConsecutivo","indProceso","fechaPapeleta","balanceGlobalApi","bResult","currentSaldo","con_papeleta","ind_proceso","ind_estado","usuario","des_login","pResult","addNew","papeletaData","distritalEnca","tFrmsCandidatos","getNumPapeletasDistritales","getNumPapeletaStatus","blockNumPapeleta","numPapeleta","codProvincia","codCanton","codDistrito","updatePapeleta","getCandidatosPapeleta","preparedList","set","getAllDataPapeleta","codprov","codcant","coddist","numStatus","allPapeletas","papeletasList","plist","iListDelegados","iListComite","iListFiscales","candidatos","candidato","NUM_PUESTO","Promise","all","NUM_CEDULA","personEdad","listDelegados","aDelegados","del","f","undefined","allDelegados","merge","firstDelegado","finalListDelegados","miembro","listComite","aComite","com","allComite","firstComite","sexOrderComite","finalListComite","fiscal","listFiscales","aFiscales","allFiscales","firstFiscal","sexOrderFiscal","finalListFiscales","papeletas","getPapeletaInfo","cedGestor","isCRUDAvailable","crudAvailable","history","useHistory","setUser","statusPapeleta","dateField","setDateField","setConsecutivo","setCodPapeleta","fecPapeleta","setFecPapeleta","isSaving","setIsSaving","showfilters","setShowfilters","showNumPapeleta","setShowNumPapeleta","year","today","toLocaleDateString","sPapeleta","setSPapeleta","setListDelegados","setListComite","listCandidatos","setListCandidatos","suplente","setPapeletas","savePapeleta","lCandidates","totalRegistersOnList","keys","countBy","rec","count","o","verifyIfCanSave","cedula_resp","mitadDelegados","Math","floor","totalDelegados","true","porcentajeDelegados","totalCuotaJuventudD","Number","isInteger","porcentajeComite","totalCuotaJuventudC","rNew","nMontos","candidatosDelegados","listCanDelegados","cD","montoInfo","rUpdate","handleSubmit","edit","tableHeaders","filterMovimiento","ind_movimiento","Cantonales","items","setItems","isDataEmpty","setDataEmpty","filteredItems","setFilteredItems","setFilters","isRemoved","setIsRemoved","removedMsj","setRemoveMsj","dataRemove","setDataRemove","hiddenBtn","setHiddenBtn","getFilterKeys","applyFilters","activeFilters","myFilter","_item","toLowerCase","includes","declineCantonalesByNum","currentCodPapeleta","cantonalesApi","setTimeout","rowItems","_error","fetchListAPI","timeoutId","proceedFilters","clearTimeout","updatedValue","currentTarget","actions","actionEdit","showAction","actionDecline","actionPrintComprobante","comprobanteData","cantonalEnca","getNumPapeletasCantonales","idMovimiento","codMovimiento","numCandidatos","isSexOrderRequired","useParams","fec_registro","desMovimiento","toUpperCase","papeletaDate","setSexFieldAs","setIsSexOrderRequired","setOnlyJuventud","listComiteCantonal","setListComiteCantonal","mov","m","Provincia","itemId","Provinciales","provincialesApi","declineProvincialesByNum","actionKey","provincialEnca","getNumPapeletasProvinciales","listComiteProvincial","setlistComiteProvincial","num_puesto","totalCuotaJuventudM","totalCuotaJuventudF","isMovimientoMujeres","false","PresidencialSectorial","presidenteSectorApi","declineSectorialesByNum","BalanceContext","createContext","deposits","memberships","inscriptions","saldo","BalanceProvider","Provider","Consumer","presidenteEnca","searchPapeletas","useContext","balance","setGlobalBalance","listPresiSector","setlistPresiSector","sumInscripciones","sumMembresias","assign","filterSector","ind_sector","Sectoriales","sectorialesApi","msjReplacement","sectorialEnca","getNumPapeletasSectoriales","idSector","codSector","des_url","nom_archivo","sSector","setSSector","listComiteSectorial","setListComiteSectorial","sectorial4","totalCargaArchivos","vacio","totalCuotaJuventud","desSector","filterPuesto","Nacionales","nacionalesApi","declineNacionalesByNum","nacionalEnca","setNumCandidatos","listComiteNacional","setListComiteNacional","nacional4","customComite","splice","indNewProceso","desPuesto","setListFiscales","_cant","_codDistrital","_codProvincia","_codCanton","_codDistrito","_nJrv","_linea","_info","_numLinea","MiembrosMesa","getAllMembers","itemsList","miembrosMesaApi","Array","member","cod_mesa","des_puesto","num_linea","warn","removeMemberByNum","numLinea","actionRemove","searchContainer","btnSearch","btnActionCancel","AddMiembro","defaultData","celular","role","setJRV","roles","setRoles","searchBtnEnabled","setBtnSearch","searchBtnLabel","setBtnLabel","setMemberId","userLogged","memberInfo","setMemberInfo","isNewMemberValid","setIsValidMember","validMemberMsj","setMemberMsj","open2","setOpenDialog2","getJRV","_codDistr","currentDistr","_res","listJRV","jrvlist","getDataByCed","_form","validateMemberResponse","tRegistered","nMesa","rolesList","buildRolesDropdown","dataSet","cod_distrito","cod_puesto","des_usuario","fec_digitado","cod_periodo","codUsuario","isUpdate","noValidate","dist","jrvItem","EditMiembro","isLoadingData","getDistritos","_provId","_cantId","listDistr","loadMemberDetails","_numLine","listProvincias","currentNumLinea","isNaN","fetchAPI","closeDialogHandler","FiscalesMesa","isBeingFiltered","fiscalesMesaApi","AddFiscalMesa","EditFiscalMesa","_userLogged","FiscalesGenerales","fiscalesGeneralesApi","AddFiscalGeneral","saveMember","memberData","phoneData","emailData","EditFiscalGeneral","numeroDeposito","observacion","depositante","last","getAll","deleteDepositByCod","codDeposit","numDeposito","num_deposito","num_monto","fec_deposito","tipoDeposito","ind_deposito","ced_depositante","nombreDepositante","cod_deposito","RegistroDepositos","isCRUDAvailableSectores","removeDepositByNum","_rs","responseInfo","configCallback","isHiddenBtn","message","fieldOutFilled","fieldTxt","calendarInput","minHeight","setSTipoDeposito","listAddDeposito","dateDeposito","tiposDepositos","infoDeposito","deposito","depositoData","newDeposito","ced_responsable","tipo","placeholderText","closeOnScroll","dateFormat","selected","defaultDepositData","depositInfo","setDepositInfo","setListDeposito","setTipoDeposito","loadDepositDetails","_codDeposito","codDeposito","updateDeposito","_err","registro","IND_PAPELETA","CON_PAPELETA","CED_CANDIDATO","CED_GESTOR","nom_gestor","nom_candidato","NUM_MONTO","fechaRegistro","FEC_REGISTRO","ConsultaDebitos","print","isCustomMessage1Available","customMessage1Available","showResults","setShowResults","isLoading","setIsLoading","rowSelected","setRowSelected","setDelegados","setComite","setFiscales","openPapeleta","setOpenPapeleta","doSearch","renderForm","consultar","newRow","getDetallePapeleta","nComite","nDelegados","nFiscales","l","actionConsultar","des","codPuesto","num_lugar","des_nombre_can","codJRV","ind_resultado","presidencia","filteredData","registrosElectoralesApi","totalItems","GafetesMiembrosMesa","codJrv","dataM","GafetesFiscalesMesa","routesList","auth","MainPage","exact","path","Login","ForgotPassword","Home","declineDistritalesByNum","distritalesApi","AddDistritales","EditDistritales","AddCantonales","EditCantonales","AddNacionales","EditNacionales","AddProvinciales","EditProvinciales","AddPresidenteSector","EditPresidenteSector","AddPapeletaSector","EditSectoriales","AddFiscales","EditFiscales","AddFiscalesGenerales","EditFiscalesGenerales","Formulario","FormularioAuth","ConsultaElectores","RegistroGestores","AddDeposito","EditDeposito","CPPapeletasDistritales","CPPapeletasCantonales","CPPapeletasProvinciales","CPPapeletasNacionales","CPPresidenteSector","CPPapeletasSectoriales","REMiembrosMesa","REFiscalesMesa","REFiscalesGenerales","_jrv","currentJRV","getJRVSelected","menuItem","isSubMenuOpen","hover","minWidth","contentContainer","expandIcon","NestedMenuItem","parentId","parentName","childrenItems","parentChildrenItems","anchorEl","setAnchorEl","Boolean","hasChildrenItems","isLeafNode","disableRipple","stopPropagation","onMouseEnter","onMouseLeave","Menu","getContentAnchorEl","anchorOrigin","vertical","horizontal","transformOrigin","PaperProps","elevation","texLink","mainBar","styleClases","anchorElMAD","setAnchorElMAD","anchorElMRE","setAnchorElMRE","handleCloseMAD","handleCloseMRE","handleItemClickMAD","link","handleItemClickMRE","isLoginGESAvailable","loginGESAvailable","isConsultaInscripcionesAvailable","consultaInscripcionesAvailable","anchorEl2","setAnchorEl2","anchorElectorales","setAnchorElectorales","mobileMoreAnchorEl","setMobileMoreAnchorEl","isMenuOpen","isMenu2Open","isMenuElectoralesOpen","isMobileMenuOpen","handleMobileMenuClose","handleMenuClose","handleMenu2Close","handleMenuRegistroElectClose","renderMenu","Link","renderMenuAdjudicacionPuestos","renderMobileMenu","AppBar","Toolbar","grow","MenuListProps","isConInsAvailable","menuAsambleasDistritales","getMenuAsambleasDistritales","aria-controls","aria-haspopup","profileButton","avatarIcon","setOpen","isLogout","setIsLogout","handleCloseMenu","Card","CardContent","pos","startCase","camelCase","CardActions","tokenInfo","pageInfo","pageStorage","removeStorage","autoFocus","nested","MenuItems","isRegistroMMAvailable","registroMMAvailable","openElectorales","setElectorales","openFormularios","setFormularios","ListItem","to","ListItemIcon","ListItemText","Collapse","in","timeout","unmountOnExit","List","disablePadding","AppBarCustom","getBalanceAPI","globalBalance","fetchBalanceAPI","edge","noWrap","Logout","Drawer","authMiddleware","storage","pathname","CustomRoute","Component","rest","render","CssBaseline","reject","Routes","page","strict","AppProvider","getBalance","_userId","balanceRs","depositos","membresias","inscripciones","App","hostname","dotenv","ReactDOM","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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AM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,MA2bRmd,aAvbmB,CACnB,CACEnd,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,MAuaRod,aAnamB,CACnB,CACEpd,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,MAmZRqd,eA/YqB,CACrB,CACErd,KAAM,KAER,CACEA,KAAM,MA2YRsd,eAvYqB,CACrB,CACEtd,KAAM,KAER,CACEA,KAAM,MAmYRud,qBA/X2B,CAC3B,CACEvd,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,MA4WRwd,qBAxW2B,CAC3B,CACExd,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,MAqVRyd,uBAjV6B,CAC7B,CACEzd,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,MAuUR0d,uBAnU6B,CAC7B,CACE1d,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,MAyTR2d,qBArT2B,CAC3B,CACE3d,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,MA2SR4d,qBAvS2B,CAC3B,CACE5d,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,MA6RR6d,kBAzRwB,CACxB,CACE7d,KAAM,MAwRR8d,kBArRwB,CACxB,CACE9d,KAAM,MAoRR+d,mBAtQyB,CACzB,CACE/d,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,MA+PRge,mBAlRyB,CACzB,CACEhe,KAAM,KAER,CACEA,KAAM,KAER,CACEA,KAAM,MA2QRie,mBAtJyB,CACzB,CACEC,OAAQ,EACRpJ,OAAQ,cAEV,CAC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AAQ,UAIZ,iDAEE,kBAAC,KAAD,CACEiD,UACED,EAAQm2B,kBAMlB,kBAAChrB,EAAA,EAAD,CACEhJ,KAAK,SACLkC,QAAQ,YACR3H,MAAM,YACNksB,KAAK,QACL3oB,UACED,EAAQywC,gBAEVllC,QAAS,WACP43B,EAAQt+B,KACN,oBAVN,eAoBN,OASZ,kBAAC,GAAD,CACE2K,KAAMA,EACNmD,QAASwhC,GACT/gC,MAAM,UACNud,YAAY,4CACZC,QAAS,CACP,CACEK,WAAY,QACZv0B,MAAO,SACP0W,MAAO,YACP+d,YAAagjB,OAInB,kBAAC3hC,GAAA,EAAD,CACEhD,KAAMqiC,GACNp/B,oBAAqB9F,GACrB+F,aAAW,EACXC,QAAS/C,GACTgD,kBAAgB,2BAChBC,mBAAiB,kCAEjB,kBAACC,GAAA,EAAD,CACEtP,GAAG,yBACH9G,MAAM,WAFR,WAMA,kBAACqW,GAAA,EAAD,KACE,kBAACC,GAAA,EAAD,CAAmBxP,GAAG,kCACnB8L,KAGL,kBAAC2D,GAAA,EAAD,KACE,kBAAC9H,EAAA,EAAD,CACEI,QAASqE,GACTlT,MAAM,WAFR,kBAWV,kBAACqtB,GAAA,EAAD,CAAKC,GAAI,GACP,kBAAC,GAAD,SClgCR,SAASiL,GACPjtB,EACAC,EACAgR,EACAnP,EACAsS,EACAnV,EACAoB,EACAC,EACAC,EACA/E,GAEA,MAAO,CACLwE,YACAC,SACAgR,WACAnP,MACAsS,SACAnV,SACAoB,iBACAC,kBACAC,SACA/E,MAIG,IAAMojC,GAAe,CAC1B,CACE7jC,KAAM,aAER,CACEA,KAAM,aAER,CACEA,KAAM,sBAER,CACEA,KAAM,OAER,CACEA,KAAM,UAER,CACEA,KAAM,aAER,CACEA,KAAM,iBAER,CACEA,KAAM,iBAER,CACEA,KAAM,WClDJknB,IDuDJgL,GACE,UACA,QACA,YACA,OACA,aACA,YACA,UACA,OACA,UACA,MAEFA,GACE,UACA,YACA,YACA,OACA,gBACA,YACA,SACA,OACA,OACA,MC7EkBruB,KAAMmc,OAAO,CACjCjc,QAASC,uDACTmjB,aAAc,UA8DD,GA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,GAiGHtiB,WAAY+O,GACZ9O,UAAWugB,EACX9f,gBAAiB4b,IAEnB,kBAAC,GAAD,CACE1zB,KAAMA,EACNmD,QAAS,aACTS,MAAM,kBACNud,YAAa8W,EACb7W,QACEiX,EACI,GACA,CACE,CACE5W,WAAY,SACZv0B,MAAO,SACP0W,MAAO,SACP+d,YAAa,WACX1hB,GAAeD,KAGnB,CACEyhB,WAAY,SACZ7uB,SAAUmlC,EACV7qC,MAAO,SACP0W,MAAOm0B,EACL,kBAACn8B,EAAA,EAAD,CACEtL,MAAO,CACLhE,MAAO,OACPkB,OAAQ,UAIZ,SAEFm0B,YAAa4qB,Q4FvU3BL,OAAO,EACP34C,KAAM,cACN44C,KAAM,gBAER,CACEH,MAAM,EACN1wC,UAAWmxC,GACXP,OAAO,EACP34C,KAAM,iBACN44C,KAAM,oBAER,CACEH,MAAM,EACN1wC,UAAWoxC,GACXR,OAAO,EACP34C,KAAM,kBACN44C,KAAM,yBAER,CACEH,MAAM,EACN1wC,UAAWi8B,GACX2U,OAAO,EACP34C,KAAM,aACN44C,KAAM,eAER,CACEH,MAAM,EACN1wC,UAAWqxC,GACXT,OAAO,EACP34C,KAAM,gBACN44C,KAAM,mBAER,CACEH,MAAM,EACN1wC,UAAWsxC,GACXV,OAAO,EACP34C,KAAM,iBACN44C,KAAM,wBAER,CACEH,MAAM,EACN1wC,UAAWsjC,GACXsN,OAAO,EACP34C,KAAM,aACN44C,KAAM,eAER,CACEH,MAAM,EACN1wC,UAAWuxC,GACXX,OAAO,EACP34C,KAAM,gBACN44C,KAAM,mBAER,CACEH,MAAM,EACN1wC,UAAWwxC,GACXZ,OAAO,EACP34C,KAAM,iBACN44C,KAAM,wBAER,CACEH,MAAM,EACN1wC,UAAW8/B,GACX8Q,OAAO,EACP34C,KAAM,eACN44C,KAAM,iBAER,CACEH,MAAM,EACN1wC,UAAWyxC,GACXb,OAAO,EACP34C,KAAM,kBACN44C,KAAM,qBAER,CACEH,MAAM,EACN1wC,UAAW0xC,GACXd,OAAO,EACP34C,KAAM,mBACN44C,KAAM,0BAER,CACEH,MAAM,EACN1wC,UAAW2gC,GACXiQ,OAAO,EACP34C,KAAM,gBACN44C,KAAM,mBAER,CACEH,MAAM,EACN1wC,UAAW2xC,GACXf,OAAO,EACP34C,KAAM,iBACN44C,KAAM,uBAER,CACEH,MAAM,EACN1wC,UAAW4xC,GACXhB,OAAO,EACP34C,KAAM,kBACN44C,KAAM,4BAER,CACEH,MAAM,EACN1wC,UAAWmiC,GACXyO,OAAO,EACP34C,KAAM,cACN44C,KAAM,gBAER,CACEH,MAAM,EACN1wC,UAAW6xC,GACXjB,OAAO,EACP34C,KAAM,oBACN44C,KAAM,oBAER,CACEH,MAAM,EACN1wC,UAAW8xC,GACXlB,OAAO,EACP34C,KAAM,kBACN44C,KAAM,yBAER,CACEH,MAAM,EACN1wC,UAAW4kC,GACXgM,OAAO,EACP34C,KAAM,gBACN44C,KAAM,kBAER,CACEH,MAAM,EACN1wC,UAAW4lC,GACXgL,OAAO,EACP34C,KAAM,oBACN44C,KAAM,sBAER,CACEH,MAAM,EACN1wC,UAAWyoC,GACXmI,OAAO,EACP34C,KAAM,qBACN44C,KAAM,2BAER,CACEH,MAAM,EACN1wC,UAAWspC,GACXsH,OAAO,EACP34C,KAAM,gBACN44C,KAAM,kBAER,CACEH,MAAM,EACN1wC,UAAW+xC,GACXnB,OAAO,EACP34C,KAAM,oBACN44C,KAAM,sBAER,CACEH,MAAM,EACN1wC,UAAWgyC,GACXpB,OAAO,EACP34C,KAAM,qBACN44C,KAAM,2BAER,CACEH,MAAM,EACN1wC,UAAW4pC,GACXgH,OAAO,EACP34C,KAAM,qBACN44C,KAAM,uBAER,CACEH,MAAM,EACN1wC,UAAWiyC,GACXrB,OAAO,EACP34C,KAAM,yBACN44C,KAAM,2BAER,CACEH,MAAM,EACN1wC,UAAWkyC,GACXtB,OAAO,EACP34C,KAAM,0BACN44C,KAAM,gCAER,CACEH,MAAM,EACN1wC,UAAWmyC,GACXvB,OAAO,EACP34C,KAAM,aACN44C,KAAM,yBAER,CACEH,MAAM,EACN1wC,UAAWoyC,GACXxB,OAAO,EACP34C,KAAM,iBACN44C,KAAM,6BAER,CACEH,MAAM,EACN1wC,UAAWqyC,GACXzB,OAAO,EACP34C,KAAM,qBACN44C,KAAM,uBAER,CACEH,MAAM,EACN1wC,UAAWsyC,GACX1B,OAAO,EACP34C,KAAM,oBACN44C,KAAM,sBAER,CACEH,MAAM,EACN1wC,UAAWorC,GACXwF,OAAO,EACP34C,KAAM,oBACN44C,KAAM,uBAER,CACEH,MAAM,EACN1wC,UAAWuyC,GACX3B,OAAO,EACP34C,KAAM,cACN44C,KAAM,2BAER,CACEH,MAAM,EACN1wC,UAAWwyC,GACX5B,OAAO,EACP34C,KAAM,eACN44C,KAAM,gCAER,CACEH,MAAM,EACN1wC,UAAWkuC,GACX0C,OAAO,EACP34C,KAAM,kBACN44C,KAAM,qBAmGR,CACEH,MAAM,EACN1wC,UAAWyyC,GACX7B,OAAO,EACP34C,KAAM,yBACN44C,KAAM,2CAER,CACEH,MAAM,EACN1wC,UAAW0yC,GACX9B,OAAO,EACP34C,KAAM,wBACN44C,KACE,sDAEJ,CACEH,MAAM,EACN1wC,UAAW2yC,GACX/B,OAAO,EACP34C,KAAM,0BACN44C,KACE,wDAEJ,CACEH,MAAM,EACN1wC,UAAW4yC,GACXhC,OAAO,EACP34C,KAAM,wBACN44C,KACE,sDAEJ,CACEH,MAAM,EACN1wC,UAAW6yC,GACXjC,OAAO,EACP34C,KAAM,qBACN44C,KAAM,yCAER,CACEH,MAAM,EACN1wC,UAAW8yC,GACXlC,OAAO,EACP34C,KAAM,yBACN44C,KAAM,wCAER,CACEH,MAAM,EACN1wC,UAAW+yC,GACXnC,OAAO,EACP34C,KAAM,iBACN44C,KAAM,wCAER,CACEH,MAAM,EACN1wC,UAAWgzC,GACXpC,OAAO,EACP34C,KAAM,iBACN44C,KAAM,wCAER,CACEH,MAAM,EACN1wC,UAAWizC,GACXrC,OAAO,EACP34C,KAAM,sBACN44C,KAAM,6CAER,CACEH,MAAM,EACN1wC,UAAWqwC,GACXO,OAAO,EACP34C,KAAM,wBACN44C,KAAM,0BAER,CACEH,MAAM,EACN1wC,UAAWwwC,GACXI,OAAO,EACP34C,KAAM,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","file":"static/js/main.3224bb22.chunk.js","sourcesContent":["import { createMuiTheme } from '@material-ui/core/styles';\r\n\r\nexport const colors = {\r\n black: '#000000',\r\n error: 'red',\r\n dark: '#1C1C1C',\r\n darkBlue: '#005670',\r\n gray: '#9A9A9A',\r\n midGray: '#757575',\r\n lightGray: '#797979',\r\n darkGray: '#2a2a2a',\r\n backGray: '#F8F8F8',\r\n orangeGrid:\r\n // eslint-disable-next-line max-len\r\n 'linear-gradient(rgba(255, 163, 0, 0.2) .1em, transparent .1em), linear-gradient(90deg, rgba(255, 163, 0, 0.2) .1em, transparent .1em)',\r\n orange: '#008945',\r\n green: '#008945',\r\n lightGreen: '#84BF48',\r\n lightGray2: '#869F9A',\r\n orangeGradient:\r\n 'linear-gradient(180deg, #008945 0%, #008945 40%, #E76967 100%)',\r\n success: 'limegreen',\r\n white: '#FFFFFF',\r\n yellow: '#FFA300',\r\n};\r\n\r\nexport const breakpoints = {\r\n MOBILE: 480,\r\n SM: 600,\r\n MD: 960,\r\n LG: 1280,\r\n XL: 1920,\r\n};\r\n\r\nexport const theme = createMuiTheme({\r\n palette: {\r\n primary: {\r\n main: colors.green,\r\n },\r\n secondary: {\r\n main: colors.black,\r\n },\r\n },\r\n typography: {\r\n useNextVariants: true,\r\n fontFamily: \"'Inter'\",\r\n },\r\n overrides: {\r\n MuiContainer: {\r\n root: {\r\n width: '100%',\r\n display: 'block',\r\n boxSizing: 'border-box',\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n paddingLeft: '16px',\r\n paddingRight: '16px',\r\n '@media (min-width: 600px)': {\r\n paddingLeft: 0,\r\n paddingRight: 0,\r\n },\r\n },\r\n },\r\n MuiAppBar: {\r\n colorPrimary: {\r\n backgroundColor: `${colors.lightGray2}`,\r\n boxShadow:\r\n // eslint-disable-next-line max-len\r\n '0px 2px 1px -1px rgba(0,0,0,0.2), 0px 1px 1px 0px rgba(0,0,0,0.14), 0px 1px 3px 0px rgba(0,0,0,0.12)',\r\n },\r\n },\r\n MuiExpansionPanelSummary: {\r\n root: {\r\n backgroundColor: `${colors.white} !important`,\r\n color: `${colors.green} !important`,\r\n },\r\n },\r\n MuiExpansionPanelDetails: {\r\n root: {\r\n background: `${colors.white} !important`,\r\n color: `${colors.green} !important`,\r\n },\r\n },\r\n MuiTextField: {\r\n root: {\r\n margin: '0px 0 20px',\r\n border: `solid 1px ${colors.lightGray}`,\r\n paddingLeft: '25px',\r\n height: '52px',\r\n paddingTop: '10px',\r\n paddingBottom: '6px',\r\n background: `${colors.white}`,\r\n },\r\n },\r\n MuiInputLabel: {\r\n root: {\r\n marginLeft: '25px',\r\n fontSize: '16px',\r\n \"&[data-shrink='true']\": {\r\n color: `${colors.dark}`,\r\n transform: 'translate(0, 10px)',\r\n },\r\n },\r\n },\r\n MuiLink: {\r\n root: {\r\n color: `${colors.green}`,\r\n fontFamily: \"'InterBold'\",\r\n },\r\n },\r\n MuiInputBase: {\r\n input: {\r\n '&:-internal-autofill-selected': {\r\n backgroundColor: `${colors.white} !important`,\r\n },\r\n '&:-webkit-autofill': {\r\n transition:\r\n 'background-color 50000s ease-in-out 0s, color 50000s ease-in-out 0s',\r\n },\r\n '&:-webkit-autofill:focus': {\r\n transition:\r\n 'background-color 50000s ease-in-out 0s, color 50000s ease-in-out 0s',\r\n },\r\n '&:-webkit-autofill:hover': {\r\n transition:\r\n 'background-color 50000s ease-in-out 0s, color 50000s ease-in-out 0s',\r\n },\r\n },\r\n },\r\n MuiInput: {\r\n underline: {\r\n '&:before': {\r\n borderBottom: 'none',\r\n },\r\n '&:hover:not($disabled):before': {\r\n borderBottom: 'none',\r\n },\r\n '&:after': {\r\n borderBottom: 'none',\r\n },\r\n },\r\n },\r\n MuiButton: {\r\n containedPrimary: {\r\n backgroundColor: `${colors.green}`,\r\n border: 0,\r\n height: 50,\r\n boxShadow: 'none',\r\n color: `${colors.white}`,\r\n fontFamily: \"'InterBold'\",\r\n '&:hover': {\r\n color: `${colors.green}`,\r\n backgroundColor: `${colors.white}`,\r\n },\r\n },\r\n containedSecondary: {\r\n backgroundColor: `${colors.white} !important`,\r\n color: `${colors.green} !important`,\r\n '&:hover': {\r\n backgroundColor: `${colors.white} !important`,\r\n },\r\n },\r\n },\r\n MuiButtonGroup: {\r\n contained: {\r\n boxShadow: 'none',\r\n },\r\n groupedContainedHorizontal: {\r\n color: `${colors.white}`,\r\n borderRadius: 10,\r\n backgroundColor: `${colors.green}`,\r\n fontFamily: \"'InterBold'\",\r\n fontSize: '12px',\r\n height: 40,\r\n\r\n '&:hover': {\r\n backgroundColor: `${colors.green}`,\r\n },\r\n\r\n '&:first-child': {\r\n borderLeft: '1px solid',\r\n },\r\n\r\n '&:not(:last-child)': {\r\n borderColor: `${colors.green} !important`,\r\n borderTop: '1px solid',\r\n borderBottom: '1px solid',\r\n },\r\n\r\n '&:last-child': {\r\n borderColor: `${colors.green} !important`,\r\n borderTop: '1px solid',\r\n borderBottom: '1px solid',\r\n borderRight: '1px solid',\r\n },\r\n },\r\n },\r\n MuiListItem: {\r\n root: {\r\n color: `${colors.midGray}`,\r\n },\r\n },\r\n MuiCssBaseline: {\r\n '@global': {\r\n '@media print': {\r\n // Ocultar todo por defecto\r\n 'body *': {\r\n visibility: 'hidden',\r\n },\r\n // Mostrar solo la sección con la clase `print-section`\r\n '.print-section, .print-section *': {\r\n visibility: 'visible',\r\n },\r\n '.print-section': {\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n },\r\n },\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport default { breakpoints, theme };\r\n","import {\r\n colors,\r\n breakpoints as bp,\r\n} from '../../Core/Theme/theme';\r\n\r\nconst styles = theme => ({\r\n container: {\r\n background: colors.backGray,\r\n },\r\n sectionDesktop: {\r\n display: 'none',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'flex',\r\n },\r\n },\r\n sectionMobile: {\r\n display: 'flex',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n },\r\n imgLogo: {\r\n maxWidth: '100%',\r\n height: 'auto',\r\n display: 'block',\r\n padding: 15,\r\n [theme.breakpoints.down(bp.MOBILE)]: {\r\n paddingTop: 25,\r\n },\r\n },\r\n socialLinks: {\r\n padding: 0,\r\n marginTop: 25,\r\n marginRight: 25,\r\n float: 'right',\r\n '& li': {\r\n listStyle: 'none',\r\n float: 'left',\r\n marginRight: '10px',\r\n },\r\n },\r\n loginAccess: {\r\n padding: 0,\r\n marginTop: 25,\r\n color: '#999',\r\n marginRight: 25,\r\n float: 'right',\r\n '& li': {\r\n listStyle: 'none',\r\n float: 'left',\r\n marginRight: '10px',\r\n paddingLeft: '25px',\r\n borderLeft: 'solid thin #000',\r\n '& span': {\r\n float: 'right',\r\n marginLeft: 5,\r\n marginTop: 3,\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport default styles;\r\n","import { colors } from '../../Core/Theme/theme';\r\n\r\nconst styles = theme => ({\r\n container: {\r\n background: colors.backGray,\r\n },\r\n sectionDesktop: {\r\n display: 'none',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'flex',\r\n },\r\n },\r\n sectionMobile: {\r\n display: 'flex',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n },\r\n});\r\n\r\nexport default styles;\r\n","import React from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport style from './styles';\r\n\r\nconst Home = props => {\r\n const { classes } = props;\r\n return
Home Page
;\r\n};\r\n\r\nexport default withStyles(style)(Home);\r\n","import { colors } from '../../Core/Theme/theme';\r\n\r\nconst styles = () => ({\r\n inputLabel: {\r\n display: 'block',\r\n fontSize: '.8em',\r\n color: '#545454',\r\n },\r\n input: {\r\n display: 'block',\r\n width: '100%',\r\n fontSize: '.9em',\r\n padding: '25px 10px 25px 10px',\r\n borderRadius: 10,\r\n borderColor: colors.lightGray,\r\n borderWidth: 1,\r\n borderStyle: 'solid',\r\n margin: '5px 0 20px',\r\n height: '38px',\r\n },\r\n password: {\r\n fontSize: '2em',\r\n letterSpacing: 8,\r\n paddingLeft: 15,\r\n },\r\n inputMultiline: {\r\n height: '6em',\r\n },\r\n inputError: {\r\n marginBottom: 5,\r\n borderColor: '#dd0000',\r\n },\r\n error: {\r\n fontSize: '.8em',\r\n color: '#dd0000',\r\n marginBottom: 20,\r\n '&::first-letter': {\r\n textTransform: 'uppercase',\r\n },\r\n },\r\n required: {\r\n '&::after': {\r\n content: '\"*\"',\r\n color: colors.green,\r\n },\r\n },\r\n checkboxContainer: {\r\n position: 'relative',\r\n cursor: 'pointer',\r\n '& span': {\r\n fontSize: '.8em',\r\n margin: 0,\r\n },\r\n '& > label': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n },\r\n checkbox: {\r\n display: 'inline-flex',\r\n width: 30,\r\n height: 30,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n color: colors.orange,\r\n border: `1px solid ${colors.lightGray}`,\r\n borderRadius: 10,\r\n },\r\n left: {\r\n order: -1,\r\n marginRight: 10,\r\n },\r\n right: {\r\n order: 1,\r\n marginLeft: 10,\r\n },\r\n checkboxIcon: {\r\n position: 'absolute',\r\n },\r\n ccContainer: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n margin: '5px 0 20px',\r\n },\r\n ccField: {\r\n flexGrow: 1,\r\n margin: 0,\r\n },\r\n cc: {\r\n width: 75,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n ccImg: {\r\n maxWidth: '45px',\r\n maxHeight: '35px',\r\n },\r\n dropdownContainer: {\r\n position: 'relative',\r\n },\r\n dropdownControl: {\r\n margin: `5px 0px`,\r\n width: '100%',\r\n },\r\n dropdownArrow: {\r\n color: `${colors.green}`,\r\n marginRight: 20,\r\n },\r\n dropdown: {\r\n borderRadius: 10,\r\n '& div': {\r\n height: 23,\r\n paddingRight: '10px !important',\r\n },\r\n },\r\n dropdownError: {\r\n border: `1px solid ${colors.green}`,\r\n },\r\n});\r\n\r\nexport default styles;\r\n","import React from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { useTranslation } from 'react-i18next';\r\nimport InputMask from 'react-input-mask';\r\nimport style from './styles';\r\n\r\nconst PlnInput = withStyles(style)(props => {\r\n const {\r\n classes,\r\n label,\r\n type,\r\n disabled,\r\n field,\r\n form: { touched, errors },\r\n required: isRequired,\r\n mask,\r\n placeholder,\r\n style,\r\n } = props;\r\n\r\n const { t } = useTranslation();\r\n\r\n return (\r\n <>\r\n \r\n {t(label)}\r\n \r\n {props.multiLine ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n});\r\n\r\nPlnInput.defaultProps = {\r\n label: '',\r\n type: 'text',\r\n disabled: false,\r\n};\r\n\r\nPlnInput.propTypes = {\r\n label: PropTypes.string.isRequired,\r\n type: PropTypes.string.isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n multiLine: (props, propName) => {\r\n return (\r\n props[propName] &&\r\n props.mask &&\r\n new Error(\r\n 'The multiLine prop and the mask prop cannot both be set',\r\n )\r\n );\r\n },\r\n mask: (props, propName) => {\r\n return (\r\n props[propName] &&\r\n props.multiLine &&\r\n new Error(\r\n 'The multiLine prop and the mask prop cannot both be set',\r\n )\r\n );\r\n },\r\n};\r\n\r\nexport default PlnInput;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport shortId from 'shortid';\r\nimport CheckIcon from '@material-ui/icons/Check';\r\nimport clsx from 'clsx';\r\nimport style from './styles';\r\n\r\nconst PlnCheckbox = withStyles(style)(props => {\r\n const {\r\n classes,\r\n id,\r\n label,\r\n labelChecked,\r\n position,\r\n onChange,\r\n field,\r\n checked,\r\n required: isRequired,\r\n } = props;\r\n const [isChecked, setIsChecked] = useState(checked);\r\n\r\n useEffect(() => {\r\n onChange(isChecked);\r\n }, [onChange, isChecked]);\r\n\r\n return (\r\n
\r\n {\r\n setIsChecked(!isChecked);\r\n field.onChange(e);\r\n }}\r\n name={field.name}\r\n onBlur={field.onBlur}\r\n />\r\n \r\n {labelChecked ? (\r\n {isChecked ? labelChecked : label}\r\n ) : (\r\n {label}\r\n )}\r\n \r\n {isChecked && (\r\n \r\n )}\r\n
\r\n \r\n \r\n );\r\n});\r\n\r\nPlnCheckbox.defaultProps = {\r\n id: shortId.generate(),\r\n label: '',\r\n position: 'left',\r\n onChange: () => {},\r\n checked: false,\r\n};\r\n\r\nPlnCheckbox.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n checked: PropTypes.bool.isRequired,\r\n label: PropTypes.string,\r\n labelChecked: PropTypes.string,\r\n position: PropTypes.string,\r\n onChange: PropTypes.func,\r\n};\r\n\r\nexport default PlnCheckbox;\r\n","import React from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Select from '@material-ui/core/Select';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport shortId from 'shortid';\r\nimport style from './styles';\r\n\r\nconst PlnDropdown = withStyles(style)(props => {\r\n const {\r\n classes,\r\n data,\r\n id,\r\n label,\r\n field,\r\n onChange,\r\n form: { touched, errors },\r\n required: isRequired,\r\n } = props;\r\n\r\n const { t } = useTranslation();\r\n\r\n return (\r\n
\r\n \r\n {t(label)}\r\n \r\n\r\n \r\n (\r\n \r\n )}\r\n value={field.value ? field.value : ''}\r\n id={id}\r\n onChange={e => {\r\n e.target.name = field.name;\r\n onChange(e.target.value);\r\n field.onChange(e);\r\n }}\r\n >\r\n {data.reduce((list, itm) => {\r\n const { value, itemLabel } = itm;\r\n list.push(\r\n \r\n {itemLabel}\r\n ,\r\n );\r\n return list;\r\n }, [])}\r\n \r\n \r\n
\r\n );\r\n});\r\n\r\nPlnDropdown.defaultProps = {\r\n data: [],\r\n id: shortId.generate(),\r\n label: '',\r\n onChange: () => {},\r\n};\r\n\r\nPlnDropdown.propTypes = {\r\n data: PropTypes.arrayOf(PropTypes.shape()).isRequired,\r\n id: PropTypes.string.isRequired,\r\n label: PropTypes.string,\r\n onChange: PropTypes.func,\r\n};\r\n\r\nexport default PlnDropdown;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { useTranslation } from 'react-i18next';\r\nimport InputMask from 'react-input-mask';\r\nimport visa from 'payment-icons/min/single/visa.svg';\r\nimport mastercard from 'payment-icons/min/single/mastercard.svg';\r\nimport discover from 'payment-icons/min/single/discover.svg';\r\nimport amex from 'payment-icons/min/single/amex.svg';\r\nimport monoDefault from 'payment-icons/min/mono/default.svg';\r\nimport ccType from 'credit-card-type';\r\nimport style from './styles';\r\n\r\nconst PlnInputCard = withStyles(style)(props => {\r\n const {\r\n classes,\r\n label,\r\n field,\r\n form: { touched, errors },\r\n required: isRequired,\r\n placeholder,\r\n onUpdate,\r\n } = props;\r\n\r\n const { t } = useTranslation();\r\n\r\n const [creditCardType, setCreditCardType] = useState('');\r\n const [mask, setMask] = useState('9999 9999 9999 9999');\r\n\r\n useEffect(() => {\r\n switch (creditCardType) {\r\n case 'american-express':\r\n setMask('9999 9999999 99999');\r\n onUpdate('american-express');\r\n break;\r\n case 'visa':\r\n setMask('9999 9999 9999 9999');\r\n onUpdate('visa');\r\n break;\r\n case 'mastercard':\r\n setMask('9999 9999 9999 9999');\r\n onUpdate('mastercard');\r\n break;\r\n case 'discover':\r\n setMask('9999 9999 9999 9999');\r\n onUpdate('discover');\r\n break;\r\n default:\r\n setCreditCardType('');\r\n setMask('9999 9999 9999 9999');\r\n onUpdate('');\r\n break;\r\n }\r\n\r\n if (field.value.length >= 2) {\r\n const types = ccType(field.value);\r\n\r\n if (types.length) {\r\n setCreditCardType(types[0].type);\r\n } else {\r\n setCreditCardType('');\r\n }\r\n } else {\r\n setCreditCardType('');\r\n }\r\n }, [creditCardType, field.value, onUpdate]);\r\n\r\n const renderCCImage = cctype => {\r\n switch (cctype) {\r\n case 'american-express':\r\n return (\r\n \r\n );\r\n case 'visa':\r\n return (\r\n \r\n );\r\n case 'mastercard':\r\n return (\r\n \r\n );\r\n case 'discover':\r\n return (\r\n \r\n );\r\n default:\r\n return (\r\n \r\n );\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n {t(label)}\r\n \r\n
\r\n \r\n
\r\n {renderCCImage(creditCardType)}\r\n
\r\n
\r\n
\r\n );\r\n});\r\n\r\nPlnInputCard.propTypes = {\r\n label: PropTypes.string,\r\n required: PropTypes.bool,\r\n placeholder: PropTypes.string,\r\n onUpdate: PropTypes.func,\r\n};\r\n\r\nexport default PlnInputCard;\r\n","import React from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\nimport style from './styles';\r\n\r\nconst PlnError = withStyles(style)(\r\n ({ classes, children }) => (\r\n
\r\n {children}\r\n
\r\n ),\r\n);\r\n\r\nPlnError.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n};\r\n\r\nexport default PlnError;\r\n","import { colors } from '../../Core/Theme/theme';\r\n\r\nconst styles = theme => ({\r\n container: {\r\n textAlign: 'center',\r\n color: colors.lightGray,\r\n '& h3': {\r\n color: colors.green,\r\n marginTop: '50px',\r\n fontSize: '24px',\r\n marginBottom: '10px',\r\n },\r\n '& h4': {\r\n textWeight: 'bold',\r\n marginTop: '0px',\r\n marginBottom: '5px',\r\n },\r\n '& p': {\r\n marginTop: '0px',\r\n marginBottom: '5px',\r\n },\r\n },\r\n boxForm: {\r\n marginTop: '30px',\r\n marginBottom: '15px',\r\n },\r\n sectionDesktop: {\r\n display: 'none',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'flex',\r\n },\r\n },\r\n sectionMobile: {\r\n display: 'flex',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n },\r\n fieldFilled: {\r\n border: 'solid thin #ccc',\r\n padding: 10,\r\n background: '#f1f1f1',\r\n },\r\n});\r\n\r\nexport default styles;\r\n","/* eslint-disable camelcase */\r\nimport axios from 'axios';\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API_BASE_URL;\r\n\r\n/* eslint-disable import/prefer-default-export */\r\nexport const validateRenuncia = cedula => {\r\n const url = [`/padron/validateRenuncia/${cedula}`];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const searchByCedula = cedula => {\r\n const url = [`/padron/searchbycedula/${cedula}`];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const searchIsOnPuestosMunicipales = cedula => {\r\n const url = [\r\n `/padron/searchIsOnPuestosMunicipales/${cedula}`,\r\n ];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const updatePersonInfo = params => {\r\n const {\r\n num_cedula,\r\n ind_sexo,\r\n telefonosData,\r\n direccionesData,\r\n emailsData,\r\n } = params;\r\n\r\n const personInfo = {\r\n num_cedula,\r\n ind_sexo,\r\n telefonos: telefonosData,\r\n direcciones: direccionesData,\r\n emails: emailsData,\r\n };\r\n\r\n return axios.post('/padron/updatePersonInfo', personInfo);\r\n};\r\n","const REGEX_UTILS = {\r\n cedula: /^[0-9]{9}$/,\r\n email: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i,\r\n phone: /^[0-9]{8}$/,\r\n digits: /^[0-9]+$/,\r\n nickname: /^[a-z0-9~`!@#$%^&|\\*()_={}[\\]:;,.<>+\\/?-]{6,}$/i,\r\n // eslint-disable-next-line max-len\r\n password: /^((?!.*[\\s])(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?~]).{8,})$/,\r\n};\r\n\r\nexport default REGEX_UTILS;\r\n","import React, { useState } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Container, Grid, Button } from '@material-ui/core';\r\nimport Alert from '@material-ui/lab/Alert';\r\nimport * as Yup from 'yup';\r\nimport { Formik, Field, Form } from 'formik';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { PlnInput } from '../../Components/Input';\r\nimport style from './styles';\r\nimport { searchByCedula } from '../../Core/Api/padronApi';\r\nimport REGEX from '../../Core/Utils/RegExpUtils';\r\n\r\nconst ConsultaElectores = props => {\r\n const { classes } = props;\r\n const [showSearchResult, setShowSearchResult] = useState(\r\n false,\r\n );\r\n const [initialValues, setInitialValues] = useState({\r\n cedula: '',\r\n });\r\n\r\n const [electorInfo, setElectorInfo] = useState({\r\n provincia: '',\r\n canton: '',\r\n distritoAdm: '',\r\n distritoEl: '',\r\n juventud: '',\r\n primerApellido: '',\r\n segundoApellido: '',\r\n nombre: '',\r\n });\r\n\r\n const [msjErrorCedula, setMsjErrorCedula] = useState('');\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const formikValidate = values => {\r\n const errors = {};\r\n const { cedula } = values;\r\n\r\n if (!cedula) {\r\n errors.cedula = 'Requerido';\r\n } else if (cedula.length <= 8) {\r\n errors.cedula =\r\n 'Debe utilizar el siguiente formato: 102340567';\r\n } else if (!REGEX.cedula.test(cedula)) {\r\n errors.cedula =\r\n 'Solo se permiten números. (NO ingrese guiones ni espacios en blanco)';\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n const loadInformation = async (\r\n values,\r\n { setSubmitting },\r\n ) => {\r\n const { cedula } = values;\r\n setShowSearchResult(false);\r\n\r\n setInitialValues({\r\n cedula,\r\n });\r\n\r\n setSubmitting(true);\r\n\r\n await searchByCedula(cedula)\r\n .then(_response => {\r\n const { data } = _response;\r\n\r\n if (data.response.length > 0) {\r\n const information = data.response[0];\r\n\r\n setShowSearchResult(true);\r\n setElectorInfo({\r\n provincia: information.des_nombre_p,\r\n canton: information.des_nombre_c,\r\n distritoAdm: information.des_nombre_ad,\r\n distritoEl: information.des_nombre_d,\r\n juventud: information.num_edad <= 35 ? 'J' : '',\r\n primerApellido: information.des_apell1 || '',\r\n segundoApellido: information.des_apell2 || '',\r\n nombre: information.des_nombre,\r\n jrv: information.num_jvirt,\r\n centroVotacion: information.des_nombre_centro,\r\n });\r\n } else {\r\n setMsjErrorCedula(\r\n 'El número de cédula ingresado no coincide con ninguna referencia',\r\n );\r\n setSubmitting(false);\r\n setShowSearchResult(false);\r\n }\r\n })\r\n .catch(error => {\r\n setShowSearchResult(false);\r\n setMsjErrorCedula(error);\r\n });\r\n };\r\n\r\n const resetForm = ev => {\r\n ev.preventDefault();\r\n setInitialValues({\r\n cedula: '',\r\n });\r\n\r\n setShowSearchResult(false);\r\n };\r\n return (\r\n \r\n

PARTIDO LIBERACIÓN NACIONAL

\r\n

TRIBUNAL DE ELECCIONES INTERNAS

\r\n

{process.env.REACT_APP_PDF_YEAR_REPORTS}

\r\n \r\n {({ errors, touched, isSubmitting }) => {\r\n return (\r\n \r\n
\r\n
\r\n \r\n \r\n Consulte su lugar de votación\r\n \r\n \r\n <>\r\n \r\n \r\n

Digite el número de cédula:

\r\n \r\n {errors.cedula && touched.cedula ? (\r\n
\r\n \r\n {errors.cedula}\r\n \r\n
\r\n ) : null}\r\n
\r\n \r\n \r\n Buscar\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {isSubmitting ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n {msjErrorCedula}\r\n \r\n )}\r\n
\r\n
\r\n );\r\n }}\r\n \r\n
\r\n {showSearchResult && (\r\n \r\n \r\n Resultado de Búsqueda\r\n \r\n \r\n

\r\n Provincia\r\n

\r\n
\r\n {electorInfo.provincia}\r\n
\r\n
\r\n \r\n

Cantón

\r\n
\r\n {electorInfo.canton}\r\n
\r\n
\r\n \r\n

\r\n Distrito Adm.\r\n

\r\n
\r\n {electorInfo.distritoAdm}\r\n
\r\n
\r\n \r\n

\r\n Distrito Electoral\r\n

\r\n
\r\n {electorInfo.distritoEl}\r\n
\r\n
\r\n \r\n

Cédula

\r\n
\r\n {initialValues.cedula}\r\n
\r\n
\r\n \r\n

\r\n Juventud\r\n

\r\n
\r\n {electorInfo.juventud}\r\n
\r\n
\r\n \r\n

JRV

\r\n
\r\n {electorInfo.jrv}\r\n
\r\n
\r\n \r\n

\r\n Centro Votación\r\n

\r\n
\r\n {electorInfo.centroVotacion}\r\n
\r\n
\r\n \r\n

\r\n Primer Apellido\r\n

\r\n
\r\n {electorInfo.primerApellido}\r\n
\r\n
\r\n \r\n

\r\n Segundo Apellido\r\n

\r\n
\r\n {electorInfo.segundoApellido}\r\n
\r\n
\r\n \r\n

Nombre

\r\n
\r\n {electorInfo.nombre}\r\n
\r\n
\r\n \r\n resetForm(ev)}\r\n >\r\n Nueva Búsqueda\r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default withStyles(style)(ConsultaElectores);\r\n","import { colors } from '../../Core/Theme/theme';\r\n\r\nconst styles = theme => ({\r\n container: {\r\n textAlign: 'left',\r\n color: colors.lightGray,\r\n '& h3': {\r\n color: colors.darkGray,\r\n marginTop: '50px',\r\n fontSize: '24px',\r\n marginBottom: '10px',\r\n },\r\n '& h4': {\r\n textWeight: 'bold',\r\n marginTop: '0px',\r\n marginBottom: '5px',\r\n },\r\n '& p': {\r\n marginTop: '0px',\r\n marginBottom: '5px',\r\n },\r\n },\r\n subtitle: { color: colors.green },\r\n boxForm: {\r\n marginTop: '30px',\r\n },\r\n sectionDesktop: {\r\n display: 'none',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'flex',\r\n },\r\n },\r\n sectionMobile: {\r\n display: 'flex',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n },\r\n formError: {\r\n margin: '5px 0px 25px 0px',\r\n color: `#FF1101`,\r\n },\r\n});\r\n\r\nexport default styles;\r\n","import axios from 'axios';\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API_BASE_URL;\r\n\r\n/* eslint-disable import/prefer-default-export */\r\nexport const getTotalPapeletas = cedula => {\r\n const url = [`/gestores/totalPapeletas/${cedula}`];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const findGestor = cedula => {\r\n const url = [`/gestores/findGestor/${cedula}/ed`];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const saveGestor = params => {\r\n const {\r\n gestorData,\r\n userData,\r\n telefonosData,\r\n direccionesData,\r\n emailsData,\r\n } = params;\r\n\r\n const gestorInfo = {\r\n typeApp: 'ed',\r\n gestor: gestorData,\r\n user: userData,\r\n telefonos: telefonosData,\r\n direcciones: direccionesData,\r\n emails: emailsData,\r\n };\r\n\r\n return axios.post('/gestores', gestorInfo);\r\n};\r\n","import axios from 'axios';\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API_BASE_URL;\r\n\r\n/* eslint-disable import/prefer-default-export */\r\nexport const sendPLNMail = params => {\r\n /*\r\n const url = [`/padron/searchbycedula/${cedula}`];\r\n\r\n return axios.get(url.join('&'));\r\n */\r\n /*\r\n const { cantonalEnca, tFrmsCandidatos } = params;\r\n\r\n const papeletaData = {\r\n cantonalEnca,\r\n tFrmsCandidatos,\r\n };\r\n */\r\n return axios.post('/mailPLN/sendMail', params);\r\n};\r\n","import axios from 'axios';\r\nimport { useQuery } from 'react-query';\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API_BASE_URL;\r\n\r\nexport const getIGESAvailable = async () => {\r\n try {\r\n const url = [`/periods/isIGESAvailable`];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n\r\n return data;\r\n } catch (e) {\r\n return { data: {} };\r\n }\r\n};\r\n\r\nexport const getRGESMMAvailable = async () => {\r\n try {\r\n const url = [`/periods/isRGESMMAvailable`];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n\r\n return data;\r\n } catch (e) {\r\n return { data: {} };\r\n }\r\n};\r\n\r\nexport const getCRUDAvailable = async () => {\r\n try {\r\n const url = [`/periods/isCRUDAvailable`];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n\r\n return data;\r\n } catch (e) {\r\n return { data: {} };\r\n }\r\n};\r\n\r\nexport const getCRUDAvailableSectores = async () => {\r\n try {\r\n const url = [`/periods/isCRUDAvailableSectores`];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n\r\n return data;\r\n } catch (e) {\r\n return { data: {} };\r\n }\r\n};\r\n\r\nexport const getLoginGESAvailable = async () => {\r\n try {\r\n const url = [`/periods/isLoginGESAvailable`];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n\r\n return data;\r\n } catch (e) {\r\n return { data: {} };\r\n }\r\n};\r\n\r\nexport const getConsultaInscripcionesAvailable = async () => {\r\n try {\r\n const url = [\r\n `/periods/isConsultaInscripcionesAvailable`,\r\n ];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n\r\n return data;\r\n } catch (e) {\r\n return { data: {} };\r\n }\r\n};\r\n\r\nexport const getFormPapeletaSectoresAvailable = async () => {\r\n try {\r\n const url = [\r\n `/periods/isFormPapeletaSectoresAvailable`,\r\n ];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n\r\n return data;\r\n } catch (e) {\r\n return { data: {} };\r\n }\r\n};\r\n\r\nexport const getCustomMessage1Available = async () => {\r\n try {\r\n const url = [`/periods/isCustomMessage1Available`];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n\r\n return data;\r\n } catch (e) {\r\n return { data: {} };\r\n }\r\n};\r\n\r\nexport const useIGESAvailable = () => {\r\n return useQuery(['iGesAvailable'], () =>\r\n getIGESAvailable(),\r\n );\r\n};\r\n\r\nexport const useRGESMMAvailable = () => {\r\n return useQuery(['rGesMmAvailable'], () =>\r\n getRGESMMAvailable(),\r\n );\r\n};\r\n\r\nexport const useLoginGESAvailable = () => {\r\n return useQuery(['loginGESAvailable'], () =>\r\n getLoginGESAvailable(),\r\n );\r\n};\r\n\r\nexport const useConsultaInscripcionesAvailable = () => {\r\n return useQuery(['consultaInscripcionesAvailable'], () =>\r\n getConsultaInscripcionesAvailable(),\r\n );\r\n};\r\n\r\nexport const useFormPapeletaSectoresAvailable = () => {\r\n return useQuery(['formPapeletaSectoresAvailable'], () =>\r\n getFormPapeletaSectoresAvailable(),\r\n );\r\n};\r\n\r\nexport const useCustomMessage1Available = () => {\r\n return useQuery(['customMessage1Available'], () =>\r\n getCustomMessage1Available(),\r\n );\r\n};\r\n\r\nexport const useCRUDAvailable = () => {\r\n return useQuery(['crudAvailable'], () =>\r\n getCRUDAvailable(),\r\n );\r\n};\r\n\r\nexport const useCRUDAvailableSectores = () => {\r\n return useQuery(['crudAvailableSectores'], () =>\r\n getCRUDAvailableSectores(),\r\n );\r\n};\r\n","/* eslint-disable no-lonely-if */\r\n/* eslint-disable no-nested-ternary */\r\n/* eslint-disable max-len */\r\n/* eslint-disable no-unused-vars */\r\nimport React, { useState, useRef } from 'react';\r\nimport emailjs from '@emailjs/browser';\r\nimport Lodash from 'lodash';\r\nimport { jsPDF } from 'jspdf';\r\nimport 'jspdf-autotable';\r\nimport Alert from '@material-ui/lab/Alert';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Container,\r\n Grid,\r\n Button,\r\n TextField,\r\n Divider,\r\n} from '@material-ui/core';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\n\r\nimport { Formik, Form, Field, ErrorMessage } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport {\r\n PlnInput,\r\n PlnError,\r\n PlnCheckbox,\r\n} from '../../Components/Input';\r\nimport style from './styles';\r\n\r\nimport {\r\n findGestor,\r\n saveGestor,\r\n} from '../../Core/Api/gestorApi';\r\nimport { searchByCedula } from '../../Core/Api/padronApi';\r\nimport { sendPLNMail } from '../../Core/Api/mailApi';\r\nimport REGEX from '../../Core/Utils/RegExpUtils';\r\n\r\nimport { useIGESAvailable } from '../../Core/Api/periodoApi';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nconst RegistroGestores = props => {\r\n const formGestorRegister = useRef();\r\n // Se valida si esta habilitada la opcion (Registro Gestores)\r\n const isRegistroGESAvailable = useIGESAvailable();\r\n const registroGESAvailable = Lodash.get(\r\n isRegistroGESAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n\r\n /* eslint new-cap: [\"error\", { \"newIsCap\": false }] */\r\n const doc = new jsPDF('p', 'px', 'letter');\r\n const { classes } = props;\r\n const [showForm, setShowForm] = useState(false);\r\n const [termConditions, setTermConditions] = useState(\r\n true,\r\n );\r\n const [gestorData, setGestorData] = useState({\r\n des_apell1: '',\r\n des_apell2: '',\r\n des_nombre: '',\r\n des_nombre_p: '',\r\n des_nombre_c: '',\r\n des_nombre_d: '',\r\n des_nombre_ad: '',\r\n tel_casa: '',\r\n tel_celu: '',\r\n tel_ofi: '',\r\n des_email: '',\r\n des_email2: '',\r\n des_direccion: '',\r\n des_direccion_trabajo: '',\r\n });\r\n\r\n const frmInitValues = {\r\n telCasa: '',\r\n telCelu: '',\r\n telOfi: '',\r\n dirDomicilio: '',\r\n dirTrabajo: '',\r\n email1: '',\r\n email2: '',\r\n reemail1: '',\r\n nickname: '',\r\n passUser: '',\r\n termConditions,\r\n };\r\n\r\n const [iCedula, setICedula] = useState('');\r\n const [iValues2, setIValues2] = useState(frmInitValues);\r\n const [msjErrorCedula, setMsjErrorCedula] = useState('');\r\n const [\r\n msjUserRegistered,\r\n setMsjUserRegistered,\r\n ] = useState('');\r\n\r\n const initialValues = {\r\n cedula: iCedula,\r\n };\r\n\r\n const initialValues2 = iValues2;\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const formikValidate = values => {\r\n const errors = {};\r\n const { cedula } = values;\r\n\r\n if (!cedula) {\r\n errors.cedula = 'Requerido';\r\n } else if (cedula.length <= 8) {\r\n errors.cedula =\r\n 'Debe utilizar el siguiente formato: 102340567';\r\n } else if (!REGEX.cedula.test(cedula)) {\r\n errors.cedula = 'Solo se permiten números';\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n const formikValidationAfterCed = values => {\r\n // validationSchema2\r\n const errors = {};\r\n const {\r\n email1,\r\n nickname,\r\n passUser,\r\n // eslint-disable-next-line no-shadow\r\n termConditions,\r\n } = values;\r\n\r\n if (!REGEX.email.test(email1)) {\r\n errors.email1 = 'Email inválido';\r\n }\r\n\r\n if (!nickname) {\r\n errors.nickname = 'Requerido';\r\n } else if (!REGEX.nickname.test(nickname)) {\r\n errors.nickname = (\r\n
    \r\n
  • Requiere un mínimo de 6 caracteres
  • \r\n
  • No se permiten espacios
  • \r\n
\r\n );\r\n }\r\n\r\n if (!termConditions) {\r\n errors.termConditions =\r\n '* Debe de haber leído y aceptado los terminos y condiciones';\r\n }\r\n\r\n if (!passUser) {\r\n errors.passUser = 'Requerido';\r\n } else if (!REGEX.password.test(passUser)) {\r\n errors.passUser = (\r\n
    \r\n
  • Requiere un mínimo de 8 caracteres
  • \r\n
  • Debe tener al menos una letra mayúscula
  • \r\n
  • Debe tener al menos una letra minúscula
  • \r\n
  • \r\n Debe tener números y caracteres especiales\r\n
  • \r\n
\r\n );\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n const centeredText = (text, y) => {\r\n const textWidth =\r\n (doc.getStringUnitWidth(text) *\r\n doc.internal.getFontSize()) /\r\n doc.internal.scaleFactor;\r\n const textOffset =\r\n (doc.internal.pageSize.width - textWidth) / 2;\r\n doc.text(textOffset, y, text);\r\n };\r\n\r\n const [msjDialog, setMsjDialog] = useState('');\r\n const [open, setOpenDialog] = React.useState(false);\r\n const [finalDialog, setFinalDialog] = React.useState(\r\n false,\r\n );\r\n\r\n const handleClose = () => {\r\n setOpenDialog(false);\r\n };\r\n\r\n const closeFinalDialog = () => {\r\n setIValues2(frmInitValues);\r\n setShowForm(false);\r\n setICedula('');\r\n };\r\n\r\n const generateLetter = (\r\n gestorName,\r\n gestorCedula,\r\n gestorCorreo,\r\n ) => {\r\n const options = {\r\n year: 'numeric',\r\n month: 'long',\r\n day: 'numeric',\r\n timeZone: 'UTC',\r\n };\r\n const today = new Date();\r\n const currentDate = today.toLocaleDateString(\r\n 'es-ES',\r\n options,\r\n );\r\n\r\n doc.setFontSize(14);\r\n doc.setFont('times', 'bold');\r\n centeredText('PARTIDO LIBERACIÓN NACIONAL', 50);\r\n centeredText('TRIBUNAL DE ELECCIONES INTERNAS', 65);\r\n doc.text(275, 100, `San Jose, ${currentDate}`);\r\n\r\n doc.setFont('times', 'normal');\r\n doc.text(30, 120, 'Señoras y Señores');\r\n doc.text(30, 135, 'Tribunal de Elecciones Internas');\r\n doc.text(30, 150, 'Partido Liberación Nacional');\r\n\r\n let paragraph = `Yo ${gestorName}, mayor de edad, cédula de identidad ${gestorCedula}, por la presente me comprometo y obligo a guardar absoluta confidencialidad sobre todos los datos e información de carácter personal que conozca o a los cuales tenga acceso como consecuencia de la presentación de servicio como gestor (a) durante las Asambleas Distritales y de Movimientos y Sectores.`;\r\n let lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 175, lines);\r\n\r\n paragraph =\r\n 'El acceso y tratamiento de los datos de carácter personal, como consecuencia de la relación establecida con el candidato o candidata, se realizará de conformidad con las finalidades previstas, subsistiendo el deber de secreto.';\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 255, lines);\r\n\r\n paragraph =\r\n 'Asimismo, me comprometo a efectuar, de forma personal, los trámites relacionados con la gestión de la papeleta o candidatura, ser el responsable de la misma frente al Tribunal de Elecciones Internas para todos los efectos y alcances del proceso de tramitación e inscripción, lo cual incluye prevenciones por omisiones, formulación de consultas, presentación de apelaciones y gestiones de exclusión; además actuar conforme las facultades que otorga el artículo 1256 del Código Civil vigente.';\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 305, lines);\r\n\r\n paragraph =\r\n 'Acepto dar fe de la veracidad de la información y datos contenidos en las solicitudes, así como respetar en su totalidad el marco normativo, ético y jurídico que rige el proceso, así como la responsabilidad de salvaguardar los intereses de mis representados(as) y las decisiones, resoluciones y acuerdos del Tribunal de Elecciones Internas.';\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 395, lines);\r\n\r\n const columns = ['A'];\r\n const data = [\r\n ['__________________________________________'],\r\n ['FIRMA'],\r\n ];\r\n\r\n doc.autoTable(columns, data, {\r\n theme: 'plain',\r\n styles: {\r\n overflow: 'linebreak',\r\n columnWidth: 'wrap',\r\n font: 'times',\r\n fontSize: 14,\r\n },\r\n columnStyles: {\r\n 0: { columnWidth: 425 },\r\n },\r\n headerStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 16,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHeader: 'never',\r\n margin: { top: 460, left: 27 },\r\n });\r\n\r\n doc.setFontSize(12);\r\n paragraph = `Correo electrónico para notificaciones: ${gestorCorreo}`;\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 505, lines);\r\n\r\n doc.addPage();\r\n\r\n doc.setFontSize(14);\r\n doc.setFont('times', 'bold');\r\n paragraph = 'TÉRMINOS Y CONDICIONES DE USO';\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 50, lines);\r\n\r\n doc.setFontSize(12);\r\n doc.setFont('times', 'bold');\r\n paragraph = 'Información relevante';\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 70, lines);\r\n\r\n doc.setFontSize(10);\r\n doc.setFont('times', 'normal');\r\n paragraph =\r\n 'Al solicitar la generación de su usuario y contraseña como gestor ante el Tribunal de Elecciones Internas (en adelante el Tribunal), para la inscripción de papeletas y candidaturas que se inscribirán para el proceso de asambleas distritales y asambleas de los movimientos de Mujeres, Juventud, Trabajadores y Cooperativo, usted está aceptando los términos y condiciones que a continuación se detallan';\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 90, lines);\r\n\r\n doc.setFontSize(12);\r\n doc.setFont('times', 'bold');\r\n paragraph = 'Uso personal.';\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 130, lines);\r\n\r\n doc.setFontSize(10);\r\n doc.setFont('times', 'normal');\r\n paragraph =\r\n 'La persona gestora deberá señalar un correo electrónico para recibir notificaciones, el cual pasará a ser el único medio jurídicamente válido para tales efectos. De conformidad con las disposiciones que rigen el proceso, será responsabilidad del gestor mantener debidamente habilitado y en funcionamiento este medio.';\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 150, lines);\r\n\r\n paragraph =\r\n 'Asimismo, tendrá que elegir un usuario y una contraseña, para acceder al sistema de inscripción en línea y realizar el registro de las postulaciones bajo su gestoría.';\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 180, lines);\r\n\r\n paragraph =\r\n 'Es obligatorio el registro de datos reales y fidedignos que permitan asegurar la identidad del gestor. El usuario y contraseña que se generen son de uso estrictamente personal. El Tribunal de Elecciones Internas no se hará responsable por el empleo inadecuado que se produzca.';\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 220, lines);\r\n\r\n doc.setFontSize(12);\r\n doc.setFont('times', 'bold');\r\n paragraph = 'Tratamiento de la información.';\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 240, lines);\r\n\r\n doc.setFontSize(10);\r\n doc.setFont('times', 'normal');\r\n paragraph =\r\n 'El acceso y tratamiento de los datos de carácter personal, se realizará con la finalidad de contar con información de contacto, en caso de requerirse. En todo momento subsistirá el deber de secreto.';\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 280, lines);\r\n\r\n paragraph =\r\n 'Por ello, se autoriza al Partido Liberación Nacional para que se utilice la información suministrada, únicamente, para mantener contacto con el gestor. Este será el único medio oficial, para cualquier tipo de notificación en relación con la inscripción de papeletas, nóminas o candidaturas.';\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 310, lines);\r\n\r\n doc.setFontSize(12);\r\n doc.setFont('times', 'bold');\r\n paragraph = 'Información veraz.';\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 330, lines);\r\n\r\n doc.setFontSize(10);\r\n doc.setFont('times', 'normal');\r\n paragraph =\r\n 'El gestor da fe de la veracidad de la información digitada, así como de los datos contenidos en las solicitudes de inscripción y demás documentos que deben acompañar la inscripción de una candidatura o papeleta.';\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 360, lines);\r\n\r\n paragraph =\r\n 'No obstante lo anterior, el Tribunal podrá solicitarle al gestor la documentación física que respalda la inscripción, para lo cual el mismo tendrá un plazo máximo 48 horas para presentar los mismos ante la Casa Liberacionista José Figueres Ferrer. En caso de no realizarlo, el Tribunal procederá con la anulación de las candidaturas o papeletas.';\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 390, lines);\r\n\r\n doc.setFontSize(12);\r\n doc.setFont('times', 'bold');\r\n paragraph = 'Pago.';\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 410, lines);\r\n\r\n doc.setFontSize(10);\r\n doc.setFont('times', 'normal');\r\n paragraph =\r\n 'El sistema de inscripción en línea detalla el monto a cancelar por el correspondiente registro de las papeletas o candidaturas que el gestor realice. El gestor está en la obligación de verificar dicho monto y proceder con el registro del depósito correspondiente.';\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 430, lines);\r\n\r\n paragraph =\r\n 'En caso de no realizar el pago completo, se procederá con el rechazo de las inscripciones realizadas.';\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 460, lines);\r\n\r\n doc.setFontSize(12);\r\n doc.setFont('times', 'bold');\r\n paragraph = 'Inscripción en línea.';\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 480, lines);\r\n\r\n doc.setFontSize(10);\r\n doc.setFont('times', 'normal');\r\n paragraph =\r\n 'El gestor entiende que el proceso de inscripción de papeletas y candidaturas será únicamente en línea, en las fechas y horas señaladas en la convocatoria.';\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 510, lines);\r\n\r\n paragraph =\r\n 'Los gestores deberán realizar la inscripción en línea, bajo el sistema que el Tribunal pondrá a disposición y con sus respectivos requisitos. La inscripción registrada en línea será la definitiva y válida para participar en el proceso.';\r\n lines = doc.splitTextToSize(paragraph, 390);\r\n doc.text(30, 540, lines);\r\n\r\n doc.save(\r\n `COMPROBANTE-REGISTRO-GESTOR-${process.env.REACT_APP_PDF_YEAR_REPORTS}.pdf`,\r\n );\r\n };\r\n\r\n const sendMailNotification = () => {\r\n /**\r\n * Se cambia el servidor de Correo (SendMail -> EmailJs) se realiza la configuracion\r\n * Fecha del cambio: 13/12/2024\r\n */\r\n\r\n emailjs\r\n .sendForm(\r\n process.env.REACT_APP_EMAILJS_SERVICE_ID,\r\n process.env\r\n .REACT_APP_EMAILJS_TEMPLATE_REGISTRO_GESTORES,\r\n formGestorRegister.current,\r\n process.env.REACT_APP_EMAILJS_PUBLIC_KEY,\r\n )\r\n .then(\r\n result => {\r\n // eslint-disable-next-line no-console\r\n console.log(result);\r\n },\r\n error => {\r\n // eslint-disable-next-line no-console\r\n console.log(error);\r\n },\r\n );\r\n };\r\n\r\n const loadInformation = (values, { setSubmitting }) => {\r\n setOpenDialog(false);\r\n setFinalDialog(false);\r\n const { cedula } = values;\r\n setShowForm(false);\r\n setMsjErrorCedula('');\r\n setMsjUserRegistered('');\r\n findGestor(cedula).then(result => {\r\n const response = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n if (response === false) {\r\n searchByCedula(cedula).then(r => {\r\n const data = Lodash.get(\r\n r,\r\n ['data', 'response'],\r\n [],\r\n );\r\n if (data !== false) {\r\n setShowForm(true);\r\n const gestorInfo = Lodash.get(data, [0]);\r\n setGestorData(gestorInfo);\r\n setICedula(gestorInfo.num_cedula);\r\n setIValues2({\r\n telCasa: gestorInfo.tel_casa,\r\n telCelu: gestorInfo.tel_celu,\r\n telOfi: gestorInfo.tel_ofi\r\n ? gestorInfo.tel_ofi\r\n : '',\r\n dirDomicilio: gestorInfo.des_direccion,\r\n dirTrabajo: gestorInfo.des_direccion_trabajo\r\n ? gestorInfo.des_direccion_trabajo\r\n : '',\r\n email1: gestorInfo.des_email,\r\n email2: gestorInfo.des_email2\r\n ? gestorInfo.des_email2\r\n : '',\r\n reemail1: '',\r\n nickname: gestorInfo.num_cedula,\r\n passUser: '',\r\n termConditions: false,\r\n });\r\n } else {\r\n setMsjErrorCedula(\r\n 'El número de cédula ingresado no coincide con ninguna referencia',\r\n );\r\n setShowForm(false);\r\n }\r\n setSubmitting(false);\r\n });\r\n } else {\r\n setMsjUserRegistered(\r\n // eslint-disable-next-line max-len\r\n 'Este usuario Ya fue registrado como Gestor. Favor comunicarse con Ezequiel Hernández al 2519-5521 o al correo ehernandez@plndigital.com',\r\n );\r\n setShowForm(false);\r\n setSubmitting(false);\r\n }\r\n });\r\n };\r\n\r\n const addGestor = values => {\r\n setMsjDialog('');\r\n setOpenDialog(false);\r\n\r\n const {\r\n dirDomicilio,\r\n dirTrabajo,\r\n email1,\r\n email2,\r\n nickname,\r\n passUser,\r\n // reemail1,\r\n telCasa,\r\n telCelu,\r\n telOfi,\r\n } = values;\r\n\r\n const gestor = {\r\n num_cedula: gestorData.num_cedula,\r\n nickname,\r\n };\r\n\r\n const userData = {\r\n des_nombre_c: gestorData.des_nombre_c,\r\n des_nombre_d: gestorData.des_nombre_d,\r\n des_nombre_ad: gestorData.des_nombre_ad,\r\n des_nombre_p: gestorData.des_nombre_p,\r\n cod_prov: gestorData.cod_prov,\r\n cod_cant: gestorData.cod_cant,\r\n cod_dist_sede: gestorData.cod_dist_sede,\r\n cod_dist_adm: gestorData.cod_dist_adm,\r\n num_jvirt: gestorData.num_jvirt,\r\n des_nombre: gestorData.des_nombre,\r\n des_apell1: gestorData.des_apell1,\r\n des_apell2: gestorData.des_apell2,\r\n num_cedula: gestorData.num_cedula,\r\n num_edad: gestorData.num_edad,\r\n fec_caduc: gestorData.fec_caduc,\r\n sexo: gestorData.sexo,\r\n des_email: email1,\r\n des_email2: email2,\r\n tel_casa: telCasa,\r\n tel_celu: telCelu,\r\n tel_ofi: telOfi,\r\n tel_res: gestorData.tel_res,\r\n tel_cel_n: gestorData.tel_cel_n,\r\n num_fax: gestorData.num_fax,\r\n num_fax_ofi: gestorData.num_fax_ofi,\r\n des_direccion: dirDomicilio,\r\n des_direccion_trabajo: dirTrabajo,\r\n des_nombre_centro: gestorData.des_nombre_centro,\r\n nickname,\r\n passUser,\r\n };\r\n\r\n const telefonosData = {\r\n tel_casa: telCasa,\r\n tel_celu: telCelu,\r\n tel_ofi: telOfi,\r\n };\r\n const direccionesData = {\r\n des_direccion: dirDomicilio,\r\n des_direccion_trabajo: dirTrabajo,\r\n };\r\n const emailsData = {\r\n des_email: email1,\r\n des_email2: email2,\r\n };\r\n\r\n const gestorInfo = {\r\n gestorData: gestor,\r\n userData,\r\n telefonosData,\r\n direccionesData,\r\n emailsData,\r\n };\r\n\r\n if (registroGESAvailable) {\r\n saveGestor(gestorInfo).then(result => {\r\n const response = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n if (response > 0) {\r\n /**\r\n * Se Elimina la generacion del documento para el periodo 2025\r\n * Fecha de Cambio: 12/12/2024\r\n *\r\n */\r\n const gestorDataMail = {\r\n full_name: `${userData.des_nombre} ${userData.des_apell1} ${userData.des_apell2}`,\r\n des_email: userData.des_email,\r\n des_email2: userData.des_email2,\r\n };\r\n // setIValues2(frmInitValues);\r\n // setShowForm(false);\r\n setFinalDialog(true);\r\n setMsjDialog('Gestor Registrado Exitosamente!');\r\n // setICedula('');\r\n sendMailNotification();\r\n } else {\r\n if (response === -1) {\r\n setShowForm(false);\r\n setOpenDialog(true);\r\n setMsjDialog(\r\n 'El tiempo para registrase como gestor ha caducado. No se ha podido crear la cuenta.',\r\n );\r\n } else {\r\n setOpenDialog(true);\r\n setMsjDialog(\r\n 'Ha Ocurrido un Error! Su cuenta NO ha podido ser creada, favor intentarlo nuevamente.',\r\n );\r\n }\r\n }\r\n });\r\n } else {\r\n setOpenDialog(true);\r\n setMsjDialog(\r\n 'El tiempo para registrase como gestor ha caducado. No se ha podido crear la cuenta.',\r\n );\r\n }\r\n };\r\n\r\n const changeTermConditions = val => {\r\n setTermConditions(val);\r\n };\r\n\r\n // Re-Confirmar email\r\n /*\r\n

\r\n * Re-confirme el Correo Electrónico\r\n principal\r\n

\r\n \r\n \r\n */\r\n\r\n return (\r\n \r\n {process.env.REACT_APP_OPTION_REGISTRO_GESTORES ===\r\n 'enabled' && registroGESAvailable ? (\r\n \r\n {({ errors, touched, isSubmitting }) => {\r\n return (\r\n
\r\n \r\n

REGISTRO DE GESTORES

\r\n \r\n \r\n

\r\n Ingrese el número de cédula del\r\n Gestor y complete la información\r\n requerida.\r\n

\r\n \r\n \r\n \r\n \r\n

Número de Cédula

\r\n
\r\n \r\n \r\n {errors.cedula && touched.cedula ? (\r\n
\r\n \r\n {errors.cedula}\r\n \r\n
\r\n ) : null}\r\n
\r\n \r\n \r\n CARGAR DATOS\r\n \r\n \r\n \r\n \r\n {isSubmitting ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n {msjErrorCedula}\r\n {msjUserRegistered}\r\n \r\n )}\r\n \r\n \r\n );\r\n }}\r\n \r\n ) : registroGESAvailable === null ? (\r\n \r\n

\r\n \r\n

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

REGISTRO DE GESTORES

\r\n \r\n \r\n

\r\n Esta sección se encuentra temporalmente\r\n deshabilitada.
\r\n Favor comunicarse con Ezequiel Hernández al\r\n 2519-5521 o al correo\r\n ehernandez@plndigital.com\r\n

\r\n \r\n \r\n \r\n )}\r\n {showForm ? (\r\n \r\n \r\n \r\n \r\n

Primer Apellido

\r\n \r\n
\r\n \r\n

Segundo Apellido

\r\n \r\n
\r\n \r\n

Nombre

\r\n \r\n
\r\n \r\n \r\n \r\n

Provincia

\r\n \r\n
\r\n \r\n

Cantón

\r\n \r\n
\r\n \r\n

Distrito

\r\n \r\n
\r\n \r\n

Distrito Admin.

\r\n \r\n
\r\n \r\n \r\n \r\n {({ errors, touched, isSubmitting }) => (\r\n
\r\n \r\n \r\n \r\n

\r\n COMPLETE LA SIGUIENTE INFORMACIÓN\r\n

\r\n
\r\n \r\n

Teléfono Casa

\r\n \r\n \r\n
\r\n \r\n

\r\n Correo Electrónico (secundario)\r\n

\r\n \r\n {errors.email2 && touched.email2 ? (\r\n
\r\n \r\n {errors.email2}\r\n \r\n
\r\n ) : null}\r\n
\r\n \r\n

Teléfono Celular

\r\n \r\n {errors.telCelu && touched.telCelu ? (\r\n
\r\n \r\n {errors.telCelu}\r\n \r\n
\r\n ) : null}\r\n
\r\n \r\n

Teléfono Trabajo

\r\n \r\n \r\n
\r\n \r\n

Dirección Domicilio

\r\n \r\n \r\n
\r\n \r\n

Dirección Trabajo

\r\n \r\n \r\n
\r\n \r\n

\r\n * Correo Electrónico (principal)\r\n

\r\n \r\n \r\n \r\n {errors.email1 && touched.email1 ? (\r\n
\r\n \r\n {errors.email1}\r\n \r\n
\r\n ) : null}\r\n
\r\n \r\n  \r\n \r\n \r\n

\r\n TÉRMINOS Y CONDICIONES DE USO\r\n

\r\n \r\n
Información relevante.
\r\n

\r\n Al solicitar la generación de su\r\n usuario y contraseña como gestor\r\n ante el Tribunal de Elecciones\r\n Internas (en adelante el\r\n Tribunal), para la inscripción de\r\n papeletas y candidaturas que se\r\n inscribirán para el proceso de\r\n asambleas distritales y asambleas\r\n de los movimientos de Mujeres,\r\n Juventud, Trabajadores y\r\n Cooperativo, usted está aceptando\r\n los términos y condiciones que a\r\n continuación se detallan.\r\n

\r\n\r\n
Uso personal.
\r\n

\r\n La persona gestora deberá señalar\r\n un correo electrónico para recibir\r\n notificaciones, el cual pasará a\r\n ser el único medio jurídicamente\r\n válido para tales efectos. De\r\n conformidad con las disposiciones\r\n que rigen el proceso, será\r\n responsabilidad del gestor\r\n mantener debidamente habilitado y\r\n en funcionamiento este medio.\r\n

\r\n

\r\n Asimismo, tendrá que elegir un\r\n usuario y una contraseña, para\r\n acceder al sistema de inscripción\r\n en línea y realizar el registro de\r\n las postulaciones bajo su\r\n gestoría.\r\n

\r\n

\r\n Es obligatorio el registro de\r\n datos reales y fidedignos que\r\n permitan asegurar la identidad del\r\n gestor. El usuario y contraseña\r\n que se generen son de uso\r\n estrictamente personal. El\r\n Tribunal de Elecciones Internas no\r\n se hará responsable por el empleo\r\n inadecuado que se produzca.\r\n

\r\n\r\n
\r\n Tratamiento de la información.\r\n
\r\n

\r\n El acceso y tratamiento de los\r\n datos de carácter personal, se\r\n realizará con la finalidad de\r\n contar con información de\r\n contacto, en caso de requerirse.\r\n En todo momento subsistirá el\r\n deber de secreto.\r\n

\r\n

\r\n Por ello, se autoriza al Partido\r\n Liberación Nacional para que se\r\n utilice la información\r\n suministrada, únicamente, para\r\n mantener contacto con el gestor.\r\n Este será el único medio oficial,\r\n para cualquier tipo de\r\n notificación en relación con la\r\n inscripción de papeletas, nóminas\r\n o candidaturas.\r\n

\r\n\r\n
Información veraz.
\r\n

\r\n El gestor da fe de la veracidad de\r\n la información digitada, así como\r\n de los datos contenidos en las\r\n solicitudes de inscripción y demás\r\n documentos que deben acompañar la\r\n inscripción de una candidatura o\r\n papeleta.\r\n

\r\n

\r\n No obstante lo anterior, el\r\n Tribunal podrá solicitarle al\r\n gestor la documentación física que\r\n respalda la inscripción, para lo\r\n cual el mismo tendrá un plazo\r\n máximo 48 horas para presentar los\r\n mismos ante la Casa Liberacionista\r\n José Figueres Ferrer. En caso de\r\n no realizarlo, el Tribunal\r\n procederá con la anulación de las\r\n candidaturas o papeletas.\r\n

\r\n\r\n
Pago.
\r\n

\r\n El sistema de inscripción en línea\r\n detalla el monto a cancelar por el\r\n correspondiente registro de las\r\n papeletas o candidaturas que el\r\n gestor realice. El gestor está en\r\n la obligación de verificar dicho\r\n monto y proceder con el registro\r\n del depósito correspondiente.\r\n

\r\n

\r\n En caso de no realizar el pago\r\n completo, se procederá con el\r\n rechazo de las inscripciones\r\n realizadas.\r\n

\r\n\r\n
Inscripción en línea.
\r\n

\r\n El gestor entiende que el proceso\r\n de inscripción de papeletas y\r\n candidaturas será únicamente en\r\n línea, en las fechas y horas\r\n señaladas en la convocatoria.\r\n

\r\n

\r\n Los gestores deberán realizar la\r\n inscripción en línea, bajo el\r\n sistema que el Tribunal pondrá a\r\n disposición y con sus respectivos\r\n requisitos. La inscripción\r\n registrada en línea será la\r\n definitiva y válida para\r\n participar en el proceso.\r\n

\r\n \r\n
\r\n \r\n \r\n Digite sus Credenciales de Acceso\r\n \r\n \r\n \r\n

* Usuario

\r\n \r\n {errors.nickname &&\r\n touched.nickname ? (\r\n \r\n \r\n {errors.nickname}\r\n \r\n \r\n ) : null}\r\n
\r\n \r\n

* Contraseña

\r\n \r\n {errors.passUser &&\r\n touched.passUser ? (\r\n \r\n \r\n {errors.passUser}\r\n \r\n \r\n ) : null}\r\n
\r\n \r\n \r\n changeTermConditions(\r\n isChecked,\r\n )\r\n }\r\n />\r\n {errors.termConditions &&\r\n touched.termConditions ? (\r\n \r\n \r\n {errors.termConditions}\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n REGISTRAR\r\n \r\n \r\n
\r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Entendido\r\n \r\n \r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Cerrar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n ) : (\r\n ''\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default withStyles(style)(RegistroGestores);\r\n","import { colors } from '../../Core/Theme/theme';\r\n\r\nconst styles = () => ({\r\n loginBox: {\r\n root: { backgroundColor: '#fff' },\r\n backgroundColor: '#fff',\r\n padding: '30px 20px 20px 20px',\r\n maxWidth: 600,\r\n },\r\n accountBox: {\r\n backgroundColor: '#fff',\r\n textAlign: 'center',\r\n padding: '10px 30px 30px 30px',\r\n },\r\n title: {\r\n marginTop: '10px',\r\n color: '#212529',\r\n textAlign: 'center',\r\n },\r\n subtitle: {\r\n marginTop: '0px',\r\n color: '#555555',\r\n textAlign: 'center',\r\n letterSpacing: '3px',\r\n },\r\n form: {\r\n marginTop: 35,\r\n },\r\n labelText: { color: '#545454' },\r\n linkText: {\r\n color: '#008945',\r\n fontSize: '.8em',\r\n margin: '0 5px 0 5px',\r\n },\r\n input: {\r\n display: 'block',\r\n width: '100%',\r\n fontSize: '.9em',\r\n padding: 20,\r\n borderRadius: 10,\r\n borderColor: colors.lightGray,\r\n borderWidth: 1,\r\n borderStyle: 'solid',\r\n margin: '5px 0 20px',\r\n },\r\n submitButton: {\r\n display: 'block',\r\n width: '100%',\r\n marginTop: 20,\r\n textTransform: 'none',\r\n fontSize: '.9em',\r\n },\r\n error: {\r\n margin: '5px 0px 25px 0px',\r\n color: `${colors.error}`,\r\n },\r\n formError: {\r\n margin: '5px 0px 25px 0px',\r\n color: `${colors.error}`,\r\n },\r\n inverseButton: {\r\n display: 'block',\r\n width: '100%',\r\n background: '#fff',\r\n fontSize: '.9em',\r\n color: `${colors.orange}`,\r\n marginTop: 20,\r\n textTransform: 'none',\r\n borderRadius: 10,\r\n borderColor: `${colors.orange}`,\r\n borderWidth: 2,\r\n borderStyle: 'solid',\r\n '&:hover': {\r\n backgroundColor: `${colors.white}`,\r\n },\r\n },\r\n spinner: {\r\n color: '#008945',\r\n },\r\n forgotPwdLink: {\r\n textAlign: 'right',\r\n fontWeight: 'bold',\r\n '& a': {\r\n color: '#008945',\r\n textDecoration: 'none',\r\n '&:hover': {\r\n color: '#84BF48',\r\n },\r\n },\r\n },\r\n backToLogin: {\r\n textAlign: 'center',\r\n fontWeight: 'bold',\r\n '& a': {\r\n color: '#008945',\r\n textDecoration: 'none',\r\n '&:hover': {\r\n color: '#84BF48',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport default styles;\r\n","import axios from 'axios';\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API_BASE_URL;\r\n\r\nexport const login = params => {\r\n const { nickname, password, ipAddress } = params;\r\n\r\n const profileData = {\r\n nickname,\r\n pwd: password,\r\n ip: ipAddress,\r\n };\r\n\r\n return axios.post('/auth/loginEd', profileData);\r\n};\r\n\r\nexport const forgotPwd = params => {\r\n const { nickname } = params;\r\n\r\n const profileData = {\r\n nickname,\r\n };\r\n\r\n return axios.post('/auth/forgotPassword', profileData);\r\n};\r\n\r\nexport const getDataLocation = () => {\r\n return axios.get(\r\n 'https://geolocation-db.com/json/0f761a30-fe14-11e9-b59f-e53803842572',\r\n );\r\n};\r\n\r\nexport const addUser = params => {\r\n const { uid, email } = params;\r\n\r\n const profileData = {\r\n auth_id: uid,\r\n email,\r\n };\r\n\r\n return axios.post('/profiles', profileData);\r\n};\r\n\r\nexport const getProfile = params => {\r\n const { token, uid } = params;\r\n\r\n const options = {\r\n headers: { 'Auth-Token': token },\r\n };\r\n\r\n const url = [`/profiles/${uid}`];\r\n\r\n return axios.get(url.join('&'), options);\r\n};\r\n\r\nexport const updateProfile = params => {\r\n const { profile, token } = params;\r\n\r\n const options = {\r\n headers: { 'Auth-Token': token },\r\n };\r\n\r\n return axios.patch('/profiles', profile, options);\r\n};\r\n","/* eslint-disable class-methods-use-this */\r\nconst StorageSymbol = Symbol('empty');\r\nconst StorageSymbolEnforce = Symbol('empty');\r\n\r\nclass Storage {\r\n constructor(enforcer) {\r\n if (enforcer !== StorageSymbolEnforce) {\r\n throw new Error('Cannot construct singleton');\r\n }\r\n\r\n // this.isTokenExpired = true;\r\n }\r\n\r\n static get instance() {\r\n if (!this[StorageSymbol]) {\r\n this[StorageSymbol] = new Storage(\r\n StorageSymbolEnforce,\r\n );\r\n }\r\n return this[StorageSymbol];\r\n }\r\n\r\n setToken(_token) {\r\n localStorage.setItem('token', _token);\r\n }\r\n\r\n getToken() {\r\n const localToken = localStorage.getItem('token');\r\n return localToken;\r\n }\r\n\r\n setIsTokenExpired(_flag) {\r\n this.isTokenExpired = _flag;\r\n }\r\n\r\n getIsTokenExpired() {\r\n return this.isTokenExpired;\r\n }\r\n\r\n removeStorage() {\r\n localStorage.removeItem('token');\r\n }\r\n}\r\n\r\nexport default Storage;\r\n","/* eslint-disable class-methods-use-this */\r\nconst ConfigPageSymbol = Symbol('empty');\r\nconst ConfigPageSymbolEnforce = Symbol('empty');\r\n\r\nclass ConfigPage {\r\n constructor(enforcer) {\r\n if (enforcer !== ConfigPageSymbolEnforce) {\r\n throw new Error('Cannot construct singleton');\r\n }\r\n }\r\n\r\n static get instance() {\r\n if (!this[ConfigPageSymbol]) {\r\n this[ConfigPageSymbol] = new ConfigPage(\r\n ConfigPageSymbolEnforce,\r\n );\r\n }\r\n return this[ConfigPageSymbol];\r\n }\r\n\r\n setStorage(data) {\r\n localStorage.setItem(\r\n 'config',\r\n typeof data === 'object'\r\n ? JSON.stringify(data)\r\n : { config: null },\r\n );\r\n }\r\n\r\n getStorage() {\r\n return JSON.parse(localStorage.getItem('config'));\r\n }\r\n\r\n removeStorage() {\r\n localStorage.removeItem('config');\r\n }\r\n}\r\n\r\nexport default ConfigPage;\r\n","import React, { useState } from 'react';\r\nimport publicIp from 'public-ip';\r\n// import { useHistory } from 'react-router-dom';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Container,\r\n Button,\r\n CircularProgress,\r\n} from '@material-ui/core';\r\nimport Alert from '@material-ui/lab/Alert';\r\nimport Lodash from 'lodash';\r\n// import PropTypes from 'prop-types';\r\nimport { useFormik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport clsx from 'clsx';\r\nimport style from './styles';\r\n\r\n// import useAccount from '../../Redux/Common/Account/accountHook';\r\nimport { login } from '../../Core/Api/accountApi';\r\nimport Storage from '../../Storage/Storage';\r\nimport ConfigPage from '../../Storage/ConfigPage';\r\n\r\n// import { getProfile } from '../../Core/Api';\r\n\r\nconst Login = props => {\r\n const { classes } = props;\r\n\r\n const [submitError, setSubmitError] = useState(false);\r\n const [submitErrorMsg, setSubmitErrorMsg] = useState('');\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n\r\n const initialValues = { nickname: '', password: '' };\r\n\r\n const validationSchema = Yup.object({\r\n nickname: Yup.string().required('Campo Requerido'),\r\n password: Yup.string().required('Campo Requerido'),\r\n });\r\n\r\n const storageInstance = Storage.instance;\r\n const storagePageInstance = ConfigPage.instance;\r\n\r\n const onSubmit = values => () => {\r\n const { nickname, password } = values;\r\n setSubmitError(false);\r\n setSubmitErrorMsg('');\r\n setIsSubmitting(true);\r\n\r\n if (nickname.length > 0 && password.length > 0) {\r\n publicIp.v4().then(ip => {\r\n login({\r\n nickname,\r\n password,\r\n ipAddress: ip,\r\n }).then(res => {\r\n const isToken = Lodash.get(\r\n res,\r\n ['data', 'response', 'token'],\r\n null,\r\n );\r\n\r\n if (isToken !== null) {\r\n setSubmitError(false);\r\n setSubmitErrorMsg('');\r\n const responseToken = res.data.response.token;\r\n\r\n storageInstance.setToken(responseToken);\r\n storagePageInstance.setStorage({\r\n showHeader: false,\r\n showFooter: true,\r\n });\r\n window.location.href = '/dashboard';\r\n } else {\r\n setSubmitError(true);\r\n setSubmitErrorMsg(\r\n 'Usuario o Contraseña son inválidos',\r\n );\r\n }\r\n setIsSubmitting(false);\r\n });\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n const resToken =\r\n // eslint-disable-next-line max-len\r\n 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjb2RfdXN1YXJpbyI6MTI0NCwiaW5kX2VzdGFkbyI6MSwiZGVzX2xvZ2luIjoiNDAxOTIwMjM4IiwiZGVzX25vbWJyZSI6IkVTVEVCQU4gUklDQVJETyBSQU1JUkVaIFJVSVoiLCJudW1fY2VkdWxhIjo0MDE5MjAyMzgsInRpcG9fdXN1YXJpbyI6IkdFUyIsImNvZF9wZXJpb2RvIjoxNywic3lzdGVtX2VuYWJsZWQiOnRydWUsImlhdCI6MTYxMTQ3MTQzMywibG9naW5fZGF0ZSI6IjIwMjEtMDEtMjQifQ.OxWlMDhuhXB-18-HpJjero7EAcKzPypbgr1oONImJxs';\r\n });\r\n } else {\r\n setSubmitError(true);\r\n setSubmitErrorMsg(\r\n 'Favor ingrese su usuario y contraseña',\r\n );\r\n setIsSubmitting(false);\r\n }\r\n };\r\n\r\n const formik = useFormik({\r\n initialValues,\r\n validationSchema,\r\n onSubmit,\r\n });\r\n\r\n Login.propTypes = {};\r\n\r\n return (\r\n <>\r\n \r\n

\r\n Ingreso de Gestores\r\n

\r\n

\r\n PLATAFORMA DE ELECCIONES DISTRITALES\r\n

\r\n
\r\n {submitError && (\r\n
\r\n \r\n {submitErrorMsg}\r\n \r\n
\r\n )}\r\n\r\n \r\n Usuario\r\n \r\n \r\n {formik.errors.nickname && (\r\n \r\n {formik.errors.nickname}\r\n \r\n )}\r\n \r\n Contraseña\r\n \r\n \r\n {formik.errors.password && (\r\n \r\n {formik.errors.password}\r\n \r\n )}\r\n\r\n

\r\n \r\n ¿Olvidó su contraseña?\r\n \r\n

\r\n\r\n \r\n {isSubmitting ? (\r\n \r\n ) : (\r\n 'INGRESAR'\r\n )}\r\n \r\n\r\n \r\n Copyright ©\r\n {process.env.REACT_APP_PDF_YEAR_REPORTS} Partido\r\n Liberación Nacional\r\n
\r\n TELEFONOS: 2549-5500 / 2549-5504 CENTRAL\r\n TELEFÓNICA\r\n

\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withStyles(style)(Login);\r\n","import React, { useState, useRef } from 'react';\r\nimport emailjs from '@emailjs/browser';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Container,\r\n Button,\r\n CircularProgress,\r\n} from '@material-ui/core';\r\nimport Alert from '@material-ui/lab/Alert';\r\nimport Lodash from 'lodash';\r\nimport { useFormik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport clsx from 'clsx';\r\nimport style from './styles';\r\n\r\nimport { forgotPwd } from '../../Core/Api/accountApi';\r\n\r\nconst ForgotPassword = props => {\r\n const { classes } = props;\r\n const formForgotPwd = useRef();\r\n\r\n const [submitError, setSubmitError] = useState(false);\r\n const [submitSuccess, setSubmitSuccess] = useState(false);\r\n const [submitErrorMsg, setSubmitErrorMsg] = useState('');\r\n const [submitSuccessMsg, setSubmitSuccessMsg] = useState(\r\n '',\r\n );\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n\r\n const initialValues = { nickname: '' };\r\n\r\n const validationSchema = Yup.object({\r\n nickname: Yup.string().required('Campo Requerido'),\r\n });\r\n\r\n const sendMailNotification = dataMail => {\r\n /**\r\n * Se cambia el servidor de Correo (SendMail -> EmailJs) se realiza la configuracion\r\n * Fecha del cambio: 23/12/2024\r\n */\r\n Lodash.forEach(dataMail, (value, key) => {\r\n const hiddenInput = document.createElement('input');\r\n hiddenInput.type = 'hidden';\r\n hiddenInput.name = key;\r\n hiddenInput.id = `field-${key}`;\r\n hiddenInput.value = value;\r\n formForgotPwd.current.appendChild(hiddenInput);\r\n });\r\n\r\n emailjs\r\n .sendForm(\r\n process.env.REACT_APP_EMAILJS_SERVICE_ID,\r\n process.env\r\n .REACT_APP_EMAILJS_TEMPLATE_FORGOT_PASSWORD,\r\n formForgotPwd.current,\r\n process.env.REACT_APP_EMAILJS_PUBLIC_KEY,\r\n )\r\n .then(\r\n result => {\r\n Lodash.forEach(dataMail, (value, key) => {\r\n const hiddenInput = document.getElementById(\r\n `field-${key}`,\r\n );\r\n formForgotPwd.current.removeChild(hiddenInput);\r\n });\r\n // eslint-disable-next-line no-console\r\n console.log(result);\r\n },\r\n error => {\r\n // eslint-disable-next-line no-console\r\n console.log(error);\r\n },\r\n );\r\n };\r\n\r\n const resetPassword = formik => () => {\r\n const { nickname } = formik.values;\r\n setSubmitError(false);\r\n setSubmitErrorMsg('');\r\n setIsSubmitting(true);\r\n\r\n if (nickname.length > 0) {\r\n forgotPwd({\r\n nickname,\r\n }).then(res => {\r\n const isPwdUpdated = Lodash.get(\r\n res,\r\n ['data', 'response', 'status'],\r\n false,\r\n );\r\n\r\n const userEmail = Lodash.get(\r\n res,\r\n ['data', 'response', 'email'],\r\n false,\r\n );\r\n\r\n const userFullName = Lodash.get(\r\n res,\r\n ['data', 'response', 'fullName'],\r\n false,\r\n );\r\n\r\n const userNewPassword = Lodash.get(\r\n res,\r\n ['data', 'response', 'newPassword'],\r\n false,\r\n );\r\n\r\n const dataNotification = {\r\n toEmail: userEmail,\r\n fullName: userFullName,\r\n newPassword: userNewPassword,\r\n };\r\n\r\n if (isPwdUpdated) {\r\n setSubmitSuccess(true);\r\n sendMailNotification(dataNotification);\r\n formik.setFieldValue('nickname', '');\r\n setSubmitSuccessMsg(\r\n `Su Contraseña ha sido actualizada y enviada al correo: ${userEmail}`,\r\n );\r\n // formik.resetForm();\r\n } else {\r\n setSubmitError(true);\r\n setSubmitErrorMsg(\r\n 'Lo sentimos el usuario ingresado no se encuentra registrado',\r\n );\r\n }\r\n setIsSubmitting(false);\r\n });\r\n } else {\r\n setSubmitError(true);\r\n setIsSubmitting(false);\r\n setSubmitErrorMsg('Favor ingrese el usuario');\r\n }\r\n };\r\n\r\n const formik = useFormik({\r\n initialValues,\r\n validationSchema,\r\n });\r\n\r\n ForgotPassword.propTypes = {};\r\n\r\n return (\r\n <>\r\n \r\n

\r\n Recuperación de Contraseña\r\n

\r\n

\r\n DIGITE SU SU USUARIO DE INGRESO AL SISTEMA\r\n

\r\n
\r\n \r\n Usuario\r\n \r\n \r\n {submitSuccess && (\r\n
\r\n \r\n {submitSuccessMsg}\r\n \r\n
\r\n )}\r\n {submitError && (\r\n
\r\n \r\n {submitErrorMsg}\r\n \r\n
\r\n )}\r\n \r\n {isSubmitting ? (\r\n \r\n ) : (\r\n 'Restablecer Contraseña'\r\n )}\r\n \r\n\r\n

\r\n Volver\r\n

\r\n\r\n \r\n Copyright ©\r\n {process.env.REACT_APP_PDF_YEAR_REPORTS} Partido\r\n Liberación Nacional\r\n
\r\n TELEFONOS: 2549-5500 / 2549-5504 CENTRAL\r\n TELEFÓNICA\r\n

\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withStyles(style)(ForgotPassword);\r\n","const styles = () => ({\r\n pageBox: {\r\n root: { backgroundColor: '#fff' },\r\n backgroundColor: '#fff',\r\n padding: 0,\r\n maxWidth: 1200,\r\n },\r\n});\r\n\r\nexport default styles;\r\n","import React from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Container } from '@material-ui/core';\r\nimport style from './styles';\r\n\r\nconst MainPage = props => {\r\n const { classes } = props;\r\n\r\n MainPage.propTypes = {};\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withStyles(style)(MainPage);\r\n","import { colors } from '../../Core/Theme/theme';\r\n\r\nconst styles = theme => ({\r\n container: {\r\n textAlign: 'left',\r\n color: colors.lightGray,\r\n paddingBottom: 80,\r\n '& h3': {\r\n color: colors.darkGray,\r\n marginTop: '50px',\r\n fontSize: '24px',\r\n marginBottom: '10px',\r\n },\r\n '& h4': {\r\n textWeight: 'bold',\r\n marginTop: '0px',\r\n marginBottom: '5px',\r\n },\r\n '& p': {\r\n marginTop: '0px',\r\n marginBottom: '5px',\r\n },\r\n },\r\n subtitle: { color: colors.green },\r\n subtitleDoc: { color: colors.darkGray },\r\n boxForm: {\r\n marginTop: '30px',\r\n },\r\n boxDocToPdf: {\r\n backgroundColor: colors.white,\r\n color: colors.darkGray,\r\n '& h3': {\r\n color: colors.green,\r\n marginTop: '50px',\r\n fontSize: '20px',\r\n marginBottom: '10px',\r\n },\r\n },\r\n sectionDesktop: {\r\n display: 'none',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'flex',\r\n },\r\n },\r\n sectionMobile: {\r\n display: 'flex',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n },\r\n textFilled: {\r\n background: '#f1f1f1',\r\n padding: '10px',\r\n width: '80%',\r\n margin: '0 auto',\r\n },\r\n customField: {\r\n background: '#fff',\r\n border: 'solid thin #999',\r\n padding: '10px',\r\n width: '250px',\r\n margin: '0 auto',\r\n },\r\n});\r\n\r\nexport default styles;\r\n","import axios from 'axios';\r\nimport { useQuery } from 'react-query';\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API_BASE_URL;\r\n\r\nconst getProvincesItems = async data => {\r\n const frmOptions = data.map(p => {\r\n return {\r\n itemLabel: p.des_nombre_p,\r\n value: p.cod_provincia,\r\n };\r\n });\r\n\r\n frmOptions.unshift({\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n });\r\n\r\n const initValues = {\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n papeleta: 999,\r\n jrv: 999,\r\n };\r\n\r\n return {\r\n provinciasData: data,\r\n frmOptions,\r\n initValues,\r\n };\r\n};\r\n\r\nconst getMovimientosItems = async data => {\r\n const frmOptions = data.map(p => {\r\n return {\r\n itemLabel: p.DES,\r\n value: p.COD,\r\n };\r\n });\r\n\r\n frmOptions.unshift({\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n });\r\n\r\n const initValues = {\r\n movimiento: 9,\r\n };\r\n\r\n return {\r\n movimientosData: data,\r\n frmOptions,\r\n initValues,\r\n };\r\n};\r\nconst getSectoresItems = async data => {\r\n const frmOptions = data.map(p => {\r\n return {\r\n itemLabel: p.DES,\r\n value: p.COD,\r\n };\r\n });\r\n\r\n frmOptions.unshift({\r\n itemLabel: '- SELECCIONE EL SECTOR -',\r\n value: 999,\r\n });\r\n\r\n const initValues = {\r\n sector: 999,\r\n };\r\n\r\n return {\r\n sectoresData: data,\r\n frmOptions,\r\n initValues,\r\n };\r\n};\r\n\r\nexport const getMovimientosCantonales = async () => {\r\n try {\r\n const url = [`/MovimientosCantonales`];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n\r\n const movimientosData = getMovimientosItems(\r\n data.response,\r\n );\r\n\r\n return movimientosData;\r\n } catch (e) {\r\n return { movimientosData: {} };\r\n }\r\n};\r\n\r\nexport const getSectores = async () => {\r\n try {\r\n const url = [`/sectores`];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n\r\n const sectoresData = getSectoresItems(data.response);\r\n\r\n return sectoresData;\r\n } catch (e) {\r\n return { sectoresData: {} };\r\n }\r\n};\r\n\r\nexport const getProvinces = async () => {\r\n try {\r\n const url = [`/provinces`];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n const provinciasData = getProvincesItems(data.response);\r\n\r\n return provinciasData;\r\n } catch (e) {\r\n return { provinciasData: {} };\r\n }\r\n};\r\n\r\nexport const getCantonsByProvince = idProvince => {\r\n const url = [`/cantons/findByProvince/${idProvince}`];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const getDistritoBy = (idProvince, idCanton) => {\r\n const url = [`/districts/${idProvince}/${idCanton}`];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const getDistritoByTwo = (idProvince, idCanton) => {\r\n const url = [\r\n `/districts/getBy2/${idProvince}/${idCanton}`,\r\n ];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const getCantidadDelegados = (\r\n idProvince,\r\n idCanton,\r\n idDistrito,\r\n) => {\r\n const url = [\r\n `/districts/delegados/${idProvince}/${idCanton}/${idDistrito}`,\r\n ];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const useProvincias = () => {\r\n return useQuery(['provinciasData'], () => getProvinces());\r\n};\r\n\r\nexport const useMovimientos = () => {\r\n return useQuery(['movimientosData'], () =>\r\n getMovimientosCantonales(),\r\n );\r\n};\r\n\r\nexport const useSectores = () => {\r\n return useQuery(['sectoresData'], () => getSectores());\r\n};\r\n","/* eslint-disable react/prop-types */\r\n/* eslint new-cap: [\"error\", { \"newIsCap\": false }] */\r\n/* eslint-disable camelcase */\r\nimport React, { useState, useEffect } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { jsPDF } from 'jspdf';\r\nimport 'jspdf-autotable';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Formik, Field } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport {\r\n Container,\r\n Grid,\r\n Button,\r\n CircularProgress,\r\n} from '@material-ui/core';\r\nimport { PlnDropdown } from '../../Components/Input';\r\nimport style from './styles';\r\n\r\nimport { useFormPapeletaSectoresAvailable } from '../../Core/Api/periodoApi';\r\n\r\nimport {\r\n useProvincias,\r\n getCantonsByProvince,\r\n getDistritoBy,\r\n getCantidadDelegados,\r\n useMovimientos,\r\n useSectores,\r\n} from '../../Core/Api/locationApi';\r\n\r\nconst Formulario = props => {\r\n const { classes, match } = props;\r\n const { typeForm } = match.params;\r\n const { data } = useProvincias();\r\n const listMovimientos = useMovimientos();\r\n const listSectores = useSectores();\r\n\r\n const [showPreview, setShowPreview] = useState(false);\r\n // Opciones Seleccionadas\r\n const [sProvincia, setSProvincia] = useState(9);\r\n const [sCanton, setSCanton] = useState(999);\r\n const [sDistrito, setSDistrito] = useState(999);\r\n const [sMovimiento, setSMovimiento] = useState(9);\r\n const [sPuesto, setSPuesto] = useState(9);\r\n const [showFormEnable, setShowFormEnable] = useState(\r\n true,\r\n );\r\n\r\n // const [pmpnProvincia, setPmpnProvincia] = useState(false);\r\n // const [isProvincial, setIsProvincial] = useState(false);\r\n\r\n const [numDelegados, setNumDelegados] = useState(0);\r\n\r\n // PDF Document\r\n const [pdfSubtitle, setPdfSubtitle] = useState('');\r\n const [pdfPuesto, setPdfPuesto] = useState('');\r\n\r\n // Se valida si esta habilitada la opcion (Papeleta Sectores)\r\n const isFormPapeletaSectoresAvailable = useFormPapeletaSectoresAvailable();\r\n const formPapeletaSectoresAvailable = Lodash.get(\r\n isFormPapeletaSectoresAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n const formSectoresLoading = Lodash.get(\r\n isFormPapeletaSectoresAvailable,\r\n ['isLoading'],\r\n null,\r\n );\r\n\r\n useEffect(() => {\r\n if (typeForm === 'papeletas-distritales') {\r\n setPdfSubtitle('Asambleas Distritales');\r\n }\r\n if (typeForm === 'presidente-sectores') {\r\n setPdfSubtitle('ORGANIZACIÓN SECTORIAL');\r\n }\r\n if (typeForm === 'hoja-informacion') {\r\n setPdfSubtitle('TRIBUNAL DE ELECCIONES INTERNAS');\r\n }\r\n if (\r\n typeForm === 'papeletas-sectores' &&\r\n formPapeletaSectoresAvailable\r\n ) {\r\n setShowFormEnable(true);\r\n } else if (typeForm === 'papeletas-sectores') {\r\n setShowFormEnable(false);\r\n }\r\n }, [typeForm, isFormPapeletaSectoresAvailable]);\r\n\r\n // Lista de: Provincias, Cantones, Distritos y Movimientos\r\n const [initialValues] = useState(\r\n Lodash.get(data, ['initValues'], {\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n movimiento: 9,\r\n puesto: 9,\r\n sector: 999,\r\n }),\r\n );\r\n const provincias = Lodash.get(\r\n data,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n const [cantones, setCantones] = useState([\r\n { itemLabel: '- SELECCIONE EL CANTÓN-', value: 999 },\r\n ]);\r\n const [distritos, setDistritos] = useState([\r\n { itemLabel: '- SELECCIONE EL DISTRITO-', value: 999 },\r\n ]);\r\n let startMovimientos = [\r\n { itemLabel: '- SELECCIONE EL MOVIMIENTO -', value: 9 },\r\n ];\r\n if (typeForm === 'papeletas-movimientos-nacionales') {\r\n startMovimientos = [\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n { itemLabel: 'MUJERES', value: 1 },\r\n { itemLabel: 'JUVENTUD', value: 2 },\r\n { itemLabel: 'COOPERATIVO', value: 3 },\r\n { itemLabel: 'TRABAJADORES', value: 4 },\r\n ];\r\n }\r\n\r\n const [movimientos, setMovimientos] = useState(\r\n startMovimientos,\r\n );\r\n\r\n /*\r\n const movimientos = Lodash.get(\r\n listMovimientos,\r\n ['data', 'frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n */\r\n\r\n const sectores = Lodash.get(\r\n listSectores,\r\n ['data', 'frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE EL SECTOR -',\r\n value: 999,\r\n },\r\n ],\r\n );\r\n\r\n const [puestos, setPuestos] = useState([\r\n { itemLabel: '- SELECCIONE EL PUESTO -', value: 9 },\r\n ]);\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const tableHeaderTitle = [\r\n 'PRIMER LUGAR',\r\n 'SEGUNDO LUGAR',\r\n 'TERCER LUGAR',\r\n 'CUARTO LUGAR',\r\n 'QUINTO LUGAR',\r\n 'SEXTO LUGAR',\r\n 'SÉPTIMO LUGAR',\r\n 'OCTAVO LUGAR',\r\n 'NOVENO LUGAR',\r\n ];\r\n\r\n const tableHeaderTitleCE = [\r\n 'PARA PRESIDENTE(A)',\r\n 'PARA VICEPRESIDENTE(A)',\r\n 'PARA SECRETARIO(A)',\r\n 'PARA SUBSECRETARIO(A)',\r\n 'PARA TESORERO(A)',\r\n 'PARA SUBTESORERO(A)',\r\n ];\r\n\r\n const tableHeaderTitleCF = ['PROPIETARIO', 'SUPLENTE'];\r\n\r\n const doc = new jsPDF('p', 'px', 'letter');\r\n\r\n const setProvincia = p => {\r\n setShowPreview(false);\r\n if (typeForm === 'papeletas-movimientos-cantonales') {\r\n initialValues.movimiento = 9;\r\n initialValues.canton = 999;\r\n setMovimientos([\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ]);\r\n setSMovimiento(\r\n Lodash.find(movimientos, {\r\n value: 9,\r\n }),\r\n );\r\n }\r\n\r\n if (typeForm === 'papeletas-movimientos-provinciales') {\r\n initialValues.provincia = p;\r\n initialValues.movimiento = 9;\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: p,\r\n }),\r\n );\r\n if (p !== 9) {\r\n setMovimientos(\r\n Lodash.get(\r\n listMovimientos,\r\n ['data', 'frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ],\r\n ),\r\n );\r\n } else {\r\n setMovimientos([\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ]);\r\n }\r\n } else {\r\n initialValues.provincia = p;\r\n initialValues.canton = 999;\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n initialValues.distrito = 999;\r\n if (p !== 9) {\r\n getCantonsByProvince(p).then(result => {\r\n if (result.status === 200) {\r\n const cantonsList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const clist = cantonsList.map(\r\n ({ cod_canton, des_nombre_c }) => {\r\n return {\r\n itemLabel: des_nombre_c,\r\n value: cod_canton,\r\n };\r\n },\r\n );\r\n clist.unshift({\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n });\r\n\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: p,\r\n }),\r\n );\r\n setCantones(clist);\r\n }\r\n });\r\n } else {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n },\r\n ]);\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n setMovimientos([\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ]);\r\n }\r\n }\r\n };\r\n\r\n const setCanton = c => {\r\n setShowPreview(false);\r\n\r\n initialValues.distrito = 999;\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = c;\r\n initialValues.movimiento = 9;\r\n\r\n if (c !== 999) {\r\n if (typeForm === 'papeletas-movimientos-cantonales') {\r\n setMovimientos(\r\n Lodash.get(\r\n listMovimientos,\r\n ['data', 'frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ],\r\n ),\r\n );\r\n setSMovimiento(\r\n Lodash.find(movimientos, {\r\n value: 9,\r\n }),\r\n );\r\n }\r\n getDistritoBy(sProvincia.value, c).then(result => {\r\n if (result.status === 200) {\r\n const distritosList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n const dlist = distritosList.map(\r\n ({ cod_dist_ad, des_nombre_ad }) => {\r\n return {\r\n itemLabel: des_nombre_ad,\r\n value: cod_dist_ad,\r\n };\r\n },\r\n );\r\n dlist.unshift({\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n });\r\n\r\n setSCanton(\r\n Lodash.find(cantones, {\r\n value: c,\r\n }),\r\n );\r\n\r\n setDistritos(dlist);\r\n }\r\n });\r\n } else {\r\n setMovimientos([\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ]);\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n const setDistrito = d => {\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = sCanton.value;\r\n initialValues.distrito = d;\r\n if (d !== 999) {\r\n setShowPreview(true);\r\n setSDistrito(\r\n Lodash.find(distritos, {\r\n value: d,\r\n }),\r\n );\r\n\r\n getCantidadDelegados(\r\n sProvincia.value,\r\n sCanton.value,\r\n d,\r\n ).then(response => {\r\n const cantDelegados = Lodash.get(\r\n response,\r\n ['data', 0, 'numDelegados'],\r\n 0,\r\n );\r\n setNumDelegados(cantDelegados);\r\n });\r\n } else {\r\n setShowPreview(false);\r\n setSDistrito({ itemLabel: '', value: 0 });\r\n }\r\n };\r\n\r\n const setMovimiento = d => {\r\n if (d === 1) {\r\n setPdfSubtitle('Mov. Mujeres');\r\n } else if (d === 2) {\r\n setPdfSubtitle('Mov. Juventud');\r\n } else if (d === 3) {\r\n setPdfSubtitle('Mov. Cooperativo');\r\n } else if (d === 4) {\r\n setPdfSubtitle('Mov. Trabajadores');\r\n }\r\n\r\n if (typeForm === 'papeletas-movimientos-nacionales') {\r\n setShowPreview(false);\r\n initialValues.movimiento = d;\r\n if (d !== 9) {\r\n setSMovimiento(\r\n Lodash.find(movimientos, {\r\n value: d,\r\n }),\r\n );\r\n\r\n setPuestos([\r\n {\r\n itemLabel: '- SELECCIONE EL PUESTO -',\r\n value: 9,\r\n },\r\n { itemLabel: 'PRESIDENTE', value: 1 },\r\n { itemLabel: 'VICEPRESIDENTE', value: 2 },\r\n { itemLabel: 'SECRETARIO GENERAL', value: 3 },\r\n ]);\r\n initialValues.puesto = 9;\r\n } else {\r\n initialValues.puesto = 9;\r\n setShowPreview(false);\r\n setPuestos([\r\n {\r\n itemLabel: '- SELECCIONE EL PUESTO -',\r\n value: 9,\r\n },\r\n ]);\r\n setSMovimiento({ itemLabel: '', value: 0 });\r\n }\r\n } else if (\r\n typeForm === 'papeletas-movimientos-provinciales'\r\n ) {\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.movimiento = d;\r\n if (d !== 9) {\r\n setShowPreview(true);\r\n // setIsProvincial(true);\r\n setSMovimiento(\r\n Lodash.find(movimientos, {\r\n value: d,\r\n }),\r\n );\r\n } else {\r\n setShowPreview(false);\r\n setSMovimiento({ itemLabel: '', value: 0 });\r\n }\r\n } else {\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = sCanton.value;\r\n initialValues.movimiento = d;\r\n if (d !== 9) {\r\n setShowPreview(true);\r\n // setIsProvincial(false);\r\n setSMovimiento(\r\n Lodash.find(movimientos, {\r\n value: d,\r\n }),\r\n );\r\n } else {\r\n setShowPreview(false);\r\n setSMovimiento({ itemLabel: '', value: 0 });\r\n }\r\n }\r\n };\r\n\r\n const setPuesto = d => {\r\n /*\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = sCanton.value;\r\n initialValues.movimiento = d;\r\n */\r\n // setShowPreview(false);\r\n\r\n if (d !== 9) {\r\n initialValues.movimiento = sMovimiento.value;\r\n initialValues.provincia = 9;\r\n initialValues.puesto = d;\r\n setSPuesto(\r\n Lodash.find(puestos, {\r\n value: d,\r\n }),\r\n );\r\n\r\n /*\r\n if (d === 5) {\r\n setIsProvincial(true);\r\n setPmpnProvincia(true);\r\n setShowPreview(false);\r\n } else {\r\n */\r\n // setIsProvincial(false);\r\n // setPmpnProvincia(false);\r\n setShowPreview(true);\r\n // }\r\n\r\n if (d === 1) {\r\n setPdfPuesto('PRESIDENTE(A)');\r\n } else if (d === 2) {\r\n setPdfPuesto('VICEPRESIDENTE(A)');\r\n } else if (d === 3) {\r\n setPdfPuesto('SECRETARIO(A) GENERAL');\r\n } else if (d === 5) {\r\n setPdfPuesto('REPRESENTANTE PROVINCIAL');\r\n }\r\n } else {\r\n setShowPreview(false);\r\n setSPuesto({ itemLabel: '', value: 0 });\r\n }\r\n };\r\n\r\n const setSector = d => {\r\n setShowPreview(true);\r\n initialValues.sector = d;\r\n if (d !== 999) {\r\n if (d === 2) {\r\n setPdfSubtitle('Sector Profesional');\r\n } else if (d === 3) {\r\n setPdfSubtitle('Sector Magisterial');\r\n } else if (d === 4) {\r\n setPdfSubtitle('Sector Empresarial');\r\n } else if (d === 5) {\r\n setPdfSubtitle('Sector Deportivo');\r\n } else if (d === 6) {\r\n setPdfSubtitle('Sector Cultural');\r\n } else if (d === 7) {\r\n setPdfSubtitle('Sector Solidarismo');\r\n } else if (d === 8) {\r\n setPdfSubtitle('Sector Comunalismo');\r\n } else if (d === 9) {\r\n setPdfSubtitle('Persona con Discapacidad');\r\n } else if (d === 10) {\r\n setPdfSubtitle('Sector Agroalimentario');\r\n }\r\n } else {\r\n setShowPreview(false);\r\n }\r\n };\r\n\r\n const downloadForm = values => {\r\n return values;\r\n };\r\n\r\n const getTimeStamp = () => {\r\n const now = new Date();\r\n return `${\r\n now.getMonth() + 1\r\n }/${now.getDate()}/${now.getFullYear()} ${now.getHours()}:${\r\n now.getMinutes() < 10\r\n ? `0${now.getMinutes()}`\r\n : now.getMinutes()\r\n }:${\r\n now.getSeconds() < 10\r\n ? `0${now.getSeconds()}`\r\n : now.getSeconds()\r\n }`;\r\n };\r\n\r\n const centeredText = (text, y) => {\r\n const textWidth =\r\n (doc.getStringUnitWidth(text) *\r\n doc.internal.getFontSize()) /\r\n doc.internal.scaleFactor;\r\n const textOffset =\r\n (doc.internal.pageSize.width - textWidth) / 2;\r\n doc.text(textOffset, y, text);\r\n };\r\n\r\n const getTitlePage = () => {\r\n let title = '';\r\n if (typeForm === 'papeletas-distritales') {\r\n title = ' PAPELETAS DISTRITALES';\r\n } else if (\r\n typeForm === 'papeletas-movimientos-cantonales'\r\n ) {\r\n title = ' PAPELETAS DE MOVIMIENTOS CANTONALES';\r\n } else if (\r\n typeForm === 'papeletas-movimientos-provinciales'\r\n ) {\r\n title = ' PAPELETAS DE MOVIMIENTOS PROVINCIALES';\r\n } else if (\r\n typeForm === 'papeletas-movimientos-nacionales'\r\n ) {\r\n title = ' PAPELETAS DE MOVIMIENTOS NACIONALES';\r\n } else if (typeForm === 'presidente-sectores') {\r\n title = ' PAPELETA PRESIDENCIA DE SECTORES';\r\n } else if (typeForm === 'papeletas-sectores') {\r\n title = ' PAPELETA DE SECTORES';\r\n } else if (typeForm === 'hoja-informacion') {\r\n title = ' HOJA DE INFORMACIÓN';\r\n }\r\n\r\n return title;\r\n };\r\n\r\n const getNotesPDF = () => {\r\n let notesData = [];\r\n\r\n if (typeForm === 'papeletas-distritales') {\r\n notesData = [\r\n [\r\n // eslint-disable-next-line max-len\r\n `* No se aceptarán inscripciones con documentación o número de candidatos incompletos.`,\r\n ],\r\n [\r\n // eslint-disable-next-line max-len\r\n `* El gestor(a) es ahora el representante de la papeleta contenida en este formulario ante el T.E.I., para todos los efectos de su inscripción y tramitación.`,\r\n ],\r\n [\r\n // eslint-disable-next-line max-len\r\n `* RECUERDE: Las nominas deben ordenarse con alternabilidad de género. Debe haber dentro de los candidatos(as) al menos un 20% personas entre 18 a 35 años de edad.`,\r\n ],\r\n ];\r\n } else if (\r\n typeForm === 'papeletas-movimientos-cantonales'\r\n ) {\r\n notesData = [\r\n [\r\n // eslint-disable-next-line max-len\r\n `* Cada candidato(a) debe contar con los documentos que le acrediten como miembro de este Movimiento.`,\r\n ],\r\n\r\n [\r\n // eslint-disable-next-line max-len\r\n `* El gestor(a) es ahora el representante de la papeleta contenida en este formulario ante el T.E.I., para todos los efectos de su inscripción y tramitación.`,\r\n ],\r\n [\r\n // eslint-disable-next-line max-len\r\n `* Las nominas deben ordenarse con alternabilidad de género. (Con excepción del Mov. de Mujeres)`,\r\n ],\r\n ];\r\n } else if (\r\n typeForm === 'papeletas-movimientos-nacionales' ||\r\n typeForm === 'papeletas-movimientos-provinciales'\r\n ) {\r\n notesData = [\r\n [\r\n // eslint-disable-next-line max-len\r\n `* Cada candidato(a) debe contar con los documentos que le acrediten como miembro de este Movimiento. No se aceptarán inscripciones con documentación o número de candidatos incompletos.`,\r\n ],\r\n\r\n [\r\n // eslint-disable-next-line max-len\r\n `* El gestor(a) es ahora el representante de la papeleta contenida en este formulario ante el T.E.I., para todos los efectos de su inscripción y tramitación.`,\r\n ],\r\n ];\r\n } else if (typeForm === 'presidente-sectores') {\r\n notesData = [\r\n [\r\n // eslint-disable-next-line max-len\r\n `* El gestor(a) es ahora el representante de la papeleta contenida en este formulario ante el T.E.I., para todos los efectos de su inscripción y tramitación.`,\r\n ],\r\n [\r\n // eslint-disable-next-line max-len\r\n `* No se aceptarán inscripciones con documentación o número de candidatos incompletos.`,\r\n ],\r\n ];\r\n } else if (typeForm === 'papeletas-sectores') {\r\n notesData = [\r\n [\r\n // eslint-disable-next-line max-len\r\n `* Cada candidato(a) debe contar con los documentos que le acrediten como miembro de este Sector.`,\r\n ],\r\n\r\n [\r\n // eslint-disable-next-line max-len\r\n `* El gestor(a) es ahora el representante de la papeleta contenida en este formulario ante el T.E.I., para todos los efectos de su inscripción y tramitación.`,\r\n ],\r\n [\r\n // eslint-disable-next-line max-len\r\n `* No se aceptarán inscripciones con documentación o número de candidatos incompletos`,\r\n ],\r\n ];\r\n }\r\n\r\n return notesData;\r\n };\r\n\r\n const generatePDF = () => {\r\n // ENCABEZADO DEL DOCUMENTO\r\n doc.setFont('times', 'bold');\r\n doc.text(\r\n 20,\r\n 40,\r\n process.env.REACT_APP_PDF_PARTIDO_REPORTS,\r\n );\r\n doc.setFontSize(12);\r\n doc.text(20, 60, pdfSubtitle);\r\n doc.setFont('times', 'normal');\r\n doc.text(\r\n 20,\r\n 80,\r\n process.env.REACT_APP_PDF_PERIODO_REPORTS,\r\n );\r\n\r\n doc.setFont('times', 'bold');\r\n\r\n centeredText(\r\n process.env.REACT_APP_PDF_TITLE_FORMULARIO_REPORTS,\r\n 100,\r\n );\r\n\r\n doc.setFont('times', 'normal');\r\n doc.text(20, 120, 'Señores');\r\n doc.text(\r\n 20,\r\n 130,\r\n process.env.REACT_APP_PDF_TITLE_TRIBUNAL_REPORTS,\r\n );\r\n\r\n // TABLA DE OPCIONES SELECCIONADAS EN EL FORMULARIO\r\n\r\n // eslint-disable-next-line max-len\r\n let paragraph = `Nosotros los abajo firmantes, miembros activos del Partido, de conformidad con lo dispuesto en el Reglamento para las Asambleas Distritales, solicitamos la inscripción de las siguientes candidaturas para participar en la escogencia de las y los delegados distritales para:`;\r\n if (typeForm === 'papeletas-movimientos-cantonales') {\r\n // eslint-disable-next-line max-len\r\n paragraph = `Nosotros los abajo firmantes, miembros activos del Partido, de conformidad con lo dispuesto en el Reglamento para las Asambleas Distritales, Movimientos, solicitamos la inscripción de las siguientes candidaturas para que participen de las Asambleas del ${pdfSubtitle} Liberacionista correspondientes al:`;\r\n }\r\n if (\r\n typeForm === 'papeletas-movimientos-nacionales' ||\r\n typeForm === 'papeletas-movimientos-provinciales'\r\n ) {\r\n // eslint-disable-next-line max-len\r\n paragraph = `Los suscritos, abajo firmantes, miembros activo del Partido, de conformidad con lo dispuesto en el Reglamento para las Asambleas de Movimientos, solicito la inscripción de las presentes candidaturas para participar en las Asambleas del ${pdfSubtitle} Liberacionista.`;\r\n if (typeForm === 'papeletas-movimientos-nacionales') {\r\n if (\r\n pdfSubtitle === 'Mov. Mujeres' ||\r\n pdfSubtitle === 'Mov. Juventud'\r\n ) {\r\n // eslint-disable-next-line max-len\r\n paragraph = `El(la) suscrito(a), abajo firmante, miembro activo del Partido, de conformidad con lo dispuesto en el Reglamento para las Asambleas de Movimientos, solicito la inscripción de la presente candidatura para participar en las Asambleas del ${pdfSubtitle} Liberacionista.`;\r\n }\r\n }\r\n }\r\n if (typeForm === 'presidente-sectores') {\r\n // eslint-disable-next-line max-len\r\n paragraph = `El(la) suscrito(a), abajo firmante, miembro activo del Partido, de conformidad con lo dispuesto en el Reglamento para las Asambleas Distritales, Movimientos y Sectores, solicito la inscripción de la siguiente candidatura para participar en la Organización Sectorial.`;\r\n }\r\n if (typeForm === 'papeletas-sectores') {\r\n // eslint-disable-next-line max-len\r\n paragraph = `Nosotros los abajo firmantes, miembros activos del Partido, de conformidad con lo dispuesto en el Reglamento para las Asambleas de Sectores, solicitamos la inscripción de las siguientes candidaturas para participar por el ${pdfSubtitle}:`;\r\n }\r\n let lines = doc.splitTextToSize(paragraph, 415);\r\n doc.text(20, 140, lines);\r\n\r\n let columns = [\r\n 'Posible N° de Papeleta',\r\n 'Provincia',\r\n 'Cantón',\r\n 'Distrito Administrativo',\r\n ];\r\n\r\n let typeTable1 = 'grid';\r\n let showTheHeader = true;\r\n let baseHeightText = 220;\r\n let baseHeightTable = 85;\r\n\r\n if (typeForm === 'papeletas-movimientos-cantonales') {\r\n columns = ['N° Papeleta', 'Provincia', 'Cantón'];\r\n }\r\n if (typeForm === 'papeletas-movimientos-nacionales') {\r\n columns = [''];\r\n typeTable1 = 'plain';\r\n showTheHeader = 'never';\r\n baseHeightText = 180;\r\n baseHeightTable = 55;\r\n }\r\n if (typeForm === 'papeletas-movimientos-provinciales') {\r\n columns = ['Provincia', 'Nº Papeleta'];\r\n }\r\n if (typeForm === 'presidente-sectores') {\r\n columns = [''];\r\n }\r\n if (typeForm === 'papeletas-sectores') {\r\n columns = ['Posible N° de Papeleta'];\r\n }\r\n\r\n let datos1 = [\r\n [\r\n '',\r\n sProvincia.itemLabel,\r\n sCanton.itemLabel,\r\n sDistrito.itemLabel,\r\n ],\r\n ];\r\n\r\n if (typeForm === 'papeletas-movimientos-cantonales') {\r\n datos1 = [\r\n ['', sProvincia.itemLabel, sCanton.itemLabel],\r\n ];\r\n }\r\n if (typeForm === 'papeletas-movimientos-nacionales') {\r\n datos1 = [['']];\r\n }\r\n if (typeForm === 'papeletas-movimientos-provinciales') {\r\n datos1 = [[sProvincia.itemLabel, '']];\r\n }\r\n if (typeForm === 'presidente-sectores') {\r\n datos1 = [['']];\r\n typeTable1 = 'plain';\r\n showTheHeader = 'never';\r\n baseHeightText = 180;\r\n baseHeightTable = 55;\r\n }\r\n if (typeForm === 'papeletas-sectores') {\r\n datos1 = [['']];\r\n }\r\n\r\n // TABLA FORMULARIO\r\n doc.autoTable({\r\n head: [columns],\r\n body: datos1,\r\n theme: typeTable1,\r\n startY: 170,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 2: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 3: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: showTheHeader,\r\n margin: { left: 20 },\r\n });\r\n\r\n // TABLA: CANDIDATOS DELEGADOS DISTRITALES\r\n doc.setFontSize(12);\r\n doc.setFont('times', 'normal');\r\n if (pdfSubtitle === 'Mov. Mujeres') {\r\n // eslint-disable-next-line max-len\r\n paragraph = `Declaramos incondicionalmente nuestra adhesión al Partido y a sus principios ideológicos y programáticos y aceptamos en su totalidad las normas ético­ jurídicas que rigen el proceso, así como las decisiones, resoluciones y acuerdos del Tribunal de Elecciones Internas. Igualmente nos comprometemos a contribuir económicamente al mantenimiento del Partido, según lo dispuesto en el Artículo 14 del Estatuto. La nómina de nuestra papeleta es la siguiente:`;\r\n } else {\r\n // eslint-disable-next-line max-len\r\n paragraph = `Declaramos incondicionalmente nuestra adhesión al Partido y a sus principios ideológicos y programáticos y aceptamos en su totalidad las normas ético­ jurídicas que rigen el proceso, así como las decisiones, resoluciones y acuerdos del Tribunal de Elecciones Internas. Igualmente nos comprometemos a contribuir económicamente al mantenimiento del Partido, según lo dispuesto en el Artículo 14 del Estatuto. La nómina de nuestra papeleta, integrada en orden alternativo de género, es la siguiente:`;\r\n }\r\n\r\n lines = doc.splitTextToSize(paragraph, 425);\r\n doc.text(20, baseHeightText, lines);\r\n\r\n let dinamicFields = 7;\r\n let theTitle =\r\n 'CANDIDATOS(AS) DELEGADOS(AS) DISTRITALES';\r\n if (typeForm === 'papeletas-movimientos-cantonales') {\r\n theTitle = 'COMITÉ POLÍTICO CANTONAL';\r\n } else if (\r\n typeForm === 'papeletas-movimientos-nacionales'\r\n ) {\r\n theTitle = `${pdfPuesto} DEL MOVIMIENTO`;\r\n\r\n dinamicFields = 1;\r\n if (\r\n sMovimiento.value === 4 ||\r\n sMovimiento.value === 3\r\n ) {\r\n dinamicFields = 3;\r\n }\r\n } else if (\r\n typeForm === 'papeletas-movimientos-provinciales'\r\n ) {\r\n theTitle = `REPRESENTANTE PROVINCIAL ANTE LA ASAMBLEA NACIONAL`;\r\n dinamicFields = 4;\r\n } else if (typeForm === 'presidente-sectores') {\r\n theTitle = `PRESIDENTE(A) NACIONAL DE LA ORGANIZACIÓN SECTORIAL`;\r\n dinamicFields = 1;\r\n } else if (typeForm === 'papeletas-sectores') {\r\n theTitle = `REPRESENTANTES DE LA ORGANIZACIÓN SECTORIAL A LA ASAMBLEA NACIONAL`;\r\n dinamicFields = 4;\r\n } else {\r\n dinamicFields = numDelegados;\r\n }\r\n\r\n if (typeForm !== 'presidente-sectores') {\r\n doc.setFont('times', 'bold');\r\n centeredText(theTitle, 280);\r\n }\r\n\r\n if (\r\n typeForm === 'papeletas-movimientos-nacionales' ||\r\n typeForm === 'papeletas-movimientos-provinciales'\r\n ) {\r\n doc.setFont('times', 'bold');\r\n centeredText(theTitle, 280);\r\n }\r\n\r\n let posY = doc.lastAutoTable.finalY + baseHeightTable;\r\n\r\n for (let n = 0; n < dinamicFields; n++) {\r\n if (n !== 0) {\r\n posY = doc.lastAutoTable.finalY + 5;\r\n }\r\n\r\n const numRow = n + 1;\r\n const columnsT = ['A'];\r\n let dataT = [];\r\n if (\r\n typeForm === 'presidente-sectores' ||\r\n typeForm === 'papeletas-movimientos-nacionales'\r\n ) {\r\n dataT = [[`${numRow} - ${theTitle}`]];\r\n if (numRow === 2 || numRow === 3) {\r\n dataT = [\r\n [`${numRow} - ${sPuesto.itemLabel} (SUPLENTE)`],\r\n ];\r\n }\r\n } else {\r\n dataT = [[`${numRow} - ${tableHeaderTitle[n]}`]];\r\n }\r\n // posY += 20;\r\n doc.autoTable({\r\n head: [columnsT],\r\n body: dataT,\r\n theme: 'grid',\r\n startY: posY,\r\n styles: { font: 'times', fontStyle: 'bold' },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns2 = [\r\n 'CÉDULA',\r\n 'PRIMER APELLIDO',\r\n 'SEGUNDO APELLIDO',\r\n 'NOMBRE',\r\n ];\r\n const datos2 = [['', '', '', '', '']];\r\n\r\n // posY += 15;\r\n doc.autoTable({\r\n head: [columns2],\r\n body: datos2,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 2: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 3: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns3 = ['A'];\r\n const data3 = [\r\n [\r\n // eslint-disable-next-line max-len\r\n `En este acto con mi firma de puño y letra, ratifico mi aceptación como candidato(a). Asimismo autorizo al gestor(a) para que deposite lo correspondiente a mi cuota de membrecía.`,\r\n ],\r\n ];\r\n\r\n // posY += 45;\r\n doc.autoTable({\r\n head: [columns3],\r\n body: data3,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: { font: 'times' },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns4 = ['', ''];\r\n const data4 = [\r\n [\r\n ' FIRMA ',\r\n '_____________________________________________',\r\n ],\r\n ];\r\n\r\n // posY += 70;\r\n doc.autoTable({\r\n head: [columns4],\r\n body: data4,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: { font: 'times', color: '#000' },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n 1: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n }\r\n\r\n if (typeForm === 'papeletas-distritales') {\r\n // TABLA: CANDIDATOS COMITÉ EJECUTIVO DISTRITAL\r\n const columnsT = ['A'];\r\n const dataT = [\r\n [\r\n `CANDIDATOS(AS) PARA EL COMITÉ EJECUTIVO DISTRITAL`,\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [columnsT],\r\n body: dataT,\r\n theme: 'plain',\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n font: 'times',\r\n fontStyle: 'bold',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n fontSize: 12,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n posY = doc.lastAutoTable.finalY + 5;\r\n\r\n for (\r\n let n2 = 0;\r\n n2 < tableHeaderTitleCE.length;\r\n n2++\r\n ) {\r\n if (n2 !== 0) {\r\n posY = doc.lastAutoTable.finalY + 5;\r\n }\r\n\r\n const numRow = n2 + 1;\r\n const columnsT2 = ['A'];\r\n const dataT2 = [\r\n [`${numRow} - ${tableHeaderTitleCE[n2]}`],\r\n ];\r\n // posY += 20;\r\n doc.autoTable({\r\n head: [columnsT2],\r\n body: dataT2,\r\n theme: 'grid',\r\n startY: posY,\r\n styles: { font: 'times', fontStyle: 'bold' },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns2 = [\r\n 'CÉDULA',\r\n 'PRIMER APELLIDO',\r\n 'SEGUNDO APELLIDO',\r\n 'NOMBRE',\r\n ];\r\n const datos2 = [['', '', '', '', '']];\r\n\r\n // posY += 15;\r\n doc.autoTable({\r\n head: [columns2],\r\n body: datos2,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 2: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 3: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns3 = ['A'];\r\n const data3 = [\r\n [\r\n // eslint-disable-next-line max-len\r\n `En este acto con mi firma de puño y letra, ratifico mi aceptación como candidato(a). Asimismo autorizo al gestor(a) para que deposite lo correspondiente a mi cuota de membrecía.`,\r\n ],\r\n ];\r\n\r\n // posY += 45;\r\n doc.autoTable({\r\n head: [columns3],\r\n body: data3,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: { font: 'times' },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns4 = ['', ''];\r\n const data4 = [\r\n [\r\n ' FIRMA ',\r\n '_____________________________________________',\r\n ],\r\n ];\r\n\r\n // posY += 70;\r\n doc.autoTable({\r\n head: [columns4],\r\n body: data4,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: { font: 'times', color: '#000' },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n 1: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n }\r\n\r\n // TABLA: CANDIDATOS FISCALÍA\r\n const columnsT2 = ['A'];\r\n const dataT2 = [[`CANDIDATOS(AS) PARA LA FISCALÍA`]];\r\n\r\n doc.autoTable({\r\n head: [columnsT2],\r\n body: dataT2,\r\n theme: 'plain',\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n font: 'times',\r\n fontStyle: 'bold',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n fontSize: 12,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n posY = doc.lastAutoTable.finalY + 5;\r\n\r\n for (\r\n let n3 = 0;\r\n n3 < tableHeaderTitleCF.length;\r\n n3++\r\n ) {\r\n if (n3 !== 0) {\r\n posY = doc.lastAutoTable.finalY + 5;\r\n }\r\n\r\n const numRow = n3 + 1;\r\n const columnsT3 = ['A'];\r\n const dataT3 = [\r\n [`${numRow} - ${tableHeaderTitleCF[n3]}`],\r\n ];\r\n // posY += 20;\r\n doc.autoTable({\r\n head: [columnsT3],\r\n body: dataT3,\r\n theme: 'grid',\r\n startY: posY,\r\n styles: { font: 'times', fontStyle: 'bold' },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns2 = [\r\n 'CÉDULA',\r\n 'PRIMER APELLIDO',\r\n 'SEGUNDO APELLIDO',\r\n 'NOMBRE',\r\n ];\r\n const datos2 = [['', '', '', '', '']];\r\n\r\n // posY += 15;\r\n doc.autoTable({\r\n head: [columns2],\r\n body: datos2,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 2: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 3: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns3 = ['A'];\r\n const data3 = [\r\n [\r\n // eslint-disable-next-line max-len\r\n `En este acto con mi firma de puño y letra, ratifico mi aceptación como candidato(a). Asimismo autorizo al gestor(a) para que deposite lo correspondiente a mi cuota de membrecía.`,\r\n ],\r\n ];\r\n\r\n // posY += 45;\r\n doc.autoTable({\r\n head: [columns3],\r\n body: data3,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: { font: 'times' },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns4 = ['', ''];\r\n const data4 = [\r\n [\r\n ' FIRMA ',\r\n '_____________________________________________',\r\n ],\r\n ];\r\n\r\n // posY += 70;\r\n doc.autoTable({\r\n head: [columns4],\r\n body: data4,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: { font: 'times', color: '#000' },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n 1: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n }\r\n\r\n // TABLA: GESTOR DE LA PAPELETA\r\n const columnsT3 = ['A'];\r\n const dataT3 = [\r\n [\r\n `GESTOR DE LA PAPELETA ANTE EL TRIBUNAL DE ELECCIONES INTERNAS`,\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [columnsT3],\r\n body: dataT3,\r\n theme: 'plain',\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n font: 'times',\r\n fontStyle: 'bold',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n fontSize: 12,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n posY = doc.lastAutoTable.finalY + 5;\r\n\r\n const columnsT4 = ['A', 'B'];\r\n const dataT4 = [\r\n [\r\n 'CÉDULA',\r\n ' ',\r\n ],\r\n [\r\n 'NOMBRE COMPLETO',\r\n ' ',\r\n ],\r\n [\r\n 'FIRMA',\r\n ' ',\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [columnsT4],\r\n body: dataT4,\r\n theme: 'grid',\r\n startY: posY,\r\n styles: { font: 'times', fontStyle: 'bold' },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n 1: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n posY = doc.lastAutoTable.finalY + 5;\r\n }\r\n\r\n // TABLA: NOTAS\r\n const columnsT5 = ['A'];\r\n const dataT5 = [[`Notas`]];\r\n\r\n doc.autoTable({\r\n head: [columnsT5],\r\n body: dataT5,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n font: 'times',\r\n fontStyle: 'bold',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n fontSize: 12,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columnsT6 = ['A'];\r\n const dataT6 = getNotesPDF();\r\n\r\n doc.autoTable({\r\n head: [columnsT6],\r\n body: dataT6,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n fontSize: 10,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'left',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n // TABLA: RECUERDE\r\n if (typeForm === 'papeletas-sectores') {\r\n const columnsT7 = ['A'];\r\n const dataT7 = [[`RECUERDE`]];\r\n\r\n doc.autoTable({\r\n head: [columnsT7],\r\n body: dataT7,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n font: 'times',\r\n fontStyle: 'bold',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n fontSize: 12,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columnsT8 = ['A'];\r\n const dataT8 = [\r\n [\r\n `* Las nominas deben ordenarse con alternabilidad de género.`,\r\n ],\r\n [\r\n // eslint-disable-next-line max-len\r\n `* Debe haber dentro de los candidatos(as) al menos 1 hombre y 1 mujer entre 18 a 35 años de edad.`,\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [columnsT8],\r\n body: dataT8,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n fontSize: 10,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'left',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n }\r\n\r\n // FOOTER DOCUMENT\r\n const columnsPie = ['A'];\r\n const dataPie = [\r\n [\r\n // eslint-disable-next-line max-len\r\n `PLNDigital.com ${process.env.REACT_APP_PDF_YEAR_REPORTS} Email: consultas@plndigital.com PLN; Mata Redonda, 125m O. del edificio del M.A.G., Casa Liberacionista \"José Figueres Ferrer\" Tel: (506)2549­5500. Aptdo:10051­1000 San José. Sitio web desarrollado por Corporación DSI S.A.`,\r\n ],\r\n ];\r\n doc.autoTable({\r\n head: [columnsPie],\r\n body: dataPie,\r\n theme: 'plain',\r\n startY: doc.lastAutoTable.finalY + 50,\r\n styles: {\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n fontSize: 10,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'left',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const fileTS = getTimeStamp();\r\n doc.save(`formulario-${typeForm}-${fileTS}.pdf`);\r\n };\r\n\r\n const generateHojaInformacion = () => {\r\n // ENCABEZADO DEL DOCUMENTO\r\n doc.setFont('times', 'bold');\r\n doc.text(\r\n 20,\r\n 40,\r\n process.env.REACT_APP_PDF_PARTIDO_REPORTS,\r\n );\r\n doc.setFontSize(12);\r\n doc.text(20, 60, pdfSubtitle);\r\n doc.setFont('times', 'normal');\r\n doc.text(\r\n 20,\r\n 80,\r\n process.env.REACT_APP_PDF_PERIODO_REPORTS,\r\n );\r\n\r\n doc.setFont('times', 'bold');\r\n centeredText(\r\n process.env.REACT_APP_PDF_TITLE_HOJA_INFO_REPORTS,\r\n 100,\r\n );\r\n\r\n doc.setFont('times', 'bold');\r\n const columnsA = ['CÉDULA', ''];\r\n const dataA = [['CÉDULA', '']];\r\n\r\n doc.autoTable({\r\n head: [columnsA],\r\n body: dataA,\r\n theme: 'grid',\r\n startY: 120,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n cellWidth: 130,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n cellWidth: 290,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columnsB = ['NOMBRE', ''];\r\n const dataB = [['NOMBRE', '']];\r\n\r\n doc.autoTable({\r\n head: [columnsB],\r\n body: dataB,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n cellWidth: 130,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n cellWidth: 290,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columnsC = ['DIRECCION', ''];\r\n const dataC = [['DIRECCIÓN HABITACIÓN', '']];\r\n\r\n doc.autoTable({\r\n head: [columnsC],\r\n body: dataC,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n cellWidth: 130,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n cellWidth: 290,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columnsD = [\r\n 'TELEFONO HABITACIÓN',\r\n 'CELULAR',\r\n 'FAX',\r\n 'OTRO',\r\n ];\r\n const dataD = [['', '', '', '']];\r\n\r\n doc.autoTable({\r\n head: [columnsD],\r\n body: dataD,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n cellWidth: 130,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'left',\r\n cellWidth: 100,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n 2: {\r\n halign: 'left',\r\n cellWidth: 95,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n 3: {\r\n halign: 'left',\r\n cellWidth: 95,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n margin: { left: 20 },\r\n });\r\n\r\n const columnsE = ['DIRECCION TRABAJO', ''];\r\n const dataE = [['DIRECCIÓN TRABAJO', '']];\r\n\r\n doc.autoTable({\r\n head: [columnsE],\r\n body: dataE,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n cellWidth: 130,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n cellWidth: 290,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columnsF = ['TELEFONO TRABAJO', 'FAX TRABAJO'];\r\n const dataF = [['', '']];\r\n\r\n doc.autoTable({\r\n head: [columnsF],\r\n body: dataF,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n cellWidth: 230,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'left',\r\n cellWidth: 190,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n margin: { left: 20 },\r\n });\r\n\r\n const columnsG = [\r\n 'CORREO ELECTRONICO OFICIAL PARA NOTIFICACIONES',\r\n '',\r\n ];\r\n const dataG = [\r\n [\r\n 'CORREO ELECTRÓNICO OFICIAL PARA NOTIFICACIONES',\r\n '',\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [columnsG],\r\n body: dataG,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n cellWidth: 130,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n cellWidth: 290,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columnsH = ['H'];\r\n const dataH = [\r\n [\r\n // eslint-disable-next-line max-len\r\n 'En apego a la Ley No 8968 de Protección de la Persona frente al tratamiento de sus datos personales: Autorizo al Partido Liberación Nacional, para que utilice mi información, con el fin de que el PLN pueda mantener contacto con mi persona, ya sea por teléfono o por correo electrónico.',\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [columnsH],\r\n body: dataH,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n cellWidth: 420,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columnsI = ['FIRMA'];\r\n const dataI = [\r\n ['____________________________________________'],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [columnsI],\r\n body: dataI,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n cellWidth: 420,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n margin: { left: 20 },\r\n });\r\n\r\n // TABLA: NOTAS\r\n const columnsT5 = ['A'];\r\n const dataT5 = [[`Notas`]];\r\n\r\n doc.autoTable({\r\n head: [columnsT5],\r\n body: dataT5,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n font: 'times',\r\n fontStyle: 'bold',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n fontSize: 12,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columnsT6 = ['A'];\r\n const dataT6 = [\r\n [\r\n // eslint-disable-next-line max-len\r\n `Para cada gestor(a) y candidato(a) se debe aportar un correo electrónico personal oficial para recibir notificaciones del T.E.I. o del T.S.E. (No se recomienda utilizar el mismo correo electrónico del gestor).`,\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [columnsT6],\r\n body: dataT6,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n fontSize: 10,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'left',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n // FOOTER DOCUMENT\r\n const columnsPie = ['A'];\r\n const dataPie = [\r\n [\r\n // eslint-disable-next-line max-len\r\n `PLNDigital.com ${process.env.REACT_APP_PDF_YEAR_REPORTS} Email: consultas@plndigital.com PLN; Mata Redonda, 125m O. del edificio del M.A.G., Casa Liberacionista \"José Figueres Ferrer\" Tel: (506)2549­5500. Aptdo:10051­1000 San José. Sitio web desarrollado por Corporación DSI S.A.`,\r\n ],\r\n ];\r\n doc.autoTable({\r\n head: [columnsPie],\r\n body: dataPie,\r\n theme: 'plain',\r\n startY: doc.lastAutoTable.finalY + 50,\r\n styles: {\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n fontSize: 10,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'left',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const fileTS = getTimeStamp();\r\n doc.save(`formulario-${typeForm}-${fileTS}.pdf`);\r\n };\r\n\r\n const renderForm = () => {\r\n let formPage = '';\r\n if (typeForm === 'papeletas-distritales') {\r\n formPage = (\r\n
\r\n \r\n \r\n \r\n

Provincia

\r\n \r\n setProvincia(provincia)\r\n }\r\n />\r\n
\r\n \r\n

Cantón

\r\n setCanton(canton)}\r\n />\r\n
\r\n \r\n

Distrito Administrativo

\r\n \r\n setDistrito(distrito)\r\n }\r\n />\r\n
\r\n
\r\n \r\n
\r\n );\r\n } else if (\r\n typeForm === 'papeletas-movimientos-cantonales'\r\n ) {\r\n formPage = (\r\n
\r\n \r\n \r\n \r\n

Provincia

\r\n \r\n setProvincia(provincia)\r\n }\r\n />\r\n
\r\n \r\n

Cantón

\r\n setCanton(canton)}\r\n />\r\n
\r\n \r\n

Movimiento

\r\n \r\n setMovimiento(movimiento)\r\n }\r\n />\r\n
\r\n
\r\n \r\n
\r\n );\r\n } else if (\r\n typeForm === 'papeletas-movimientos-provinciales'\r\n ) {\r\n formPage = (\r\n
\r\n \r\n \r\n \r\n

Provincia

\r\n \r\n setProvincia(provincia)\r\n }\r\n />\r\n
\r\n\r\n \r\n

Movimiento

\r\n \r\n setMovimiento(movimiento)\r\n }\r\n />\r\n
\r\n
\r\n \r\n
\r\n );\r\n } else if (\r\n typeForm === 'papeletas-movimientos-nacionales'\r\n ) {\r\n formPage = (\r\n
\r\n \r\n \r\n \r\n

Movimiento

\r\n \r\n setMovimiento(movimiento)\r\n }\r\n />\r\n
\r\n \r\n

Puesto

\r\n setPuesto(puesto)}\r\n />\r\n
\r\n
\r\n \r\n
\r\n );\r\n } else if (typeForm === 'papeletas-sectores') {\r\n formPage = (\r\n
\r\n \r\n \r\n \r\n

Sectores

\r\n setSector(sector)}\r\n />\r\n
\r\n
\r\n \r\n
\r\n );\r\n } else {\r\n formPage = '';\r\n }\r\n return formPage;\r\n };\r\n\r\n if (showFormEnable) {\r\n if (!Lodash.isEmpty(provincias)) {\r\n return (\r\n \r\n

FORMULARIO DE {getTitlePage()}

\r\n
\r\n {typeForm === 'presidente-sectores' ||\r\n typeForm === 'hoja-informacion' ? (\r\n ''\r\n ) : (\r\n

\r\n Seleccione la información requerida:\r\n

\r\n )}\r\n {typeForm === 'presidente-sectores' ||\r\n typeForm === 'hoja-informacion' ? (\r\n
\r\n \r\n \r\n \r\n DESCARGAR FORMULARIO\r\n \r\n \r\n \r\n
\r\n ) : (\r\n ''\r\n )}\r\n\r\n {renderForm()}\r\n\r\n {showPreview ? (\r\n
\r\n \r\n \r\n \r\n DESCARGAR FORMULARIO\r\n \r\n \r\n \r\n
\r\n ) : (\r\n ''\r\n )}\r\n \r\n );\r\n }\r\n }\r\n if (formSectoresLoading) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n // eslint-disable-next-line no-else-return\r\n } else {\r\n return (\r\n \r\n \r\n \r\n

\r\n Esta sección se encuentra temporalmente\r\n deshabilitada.
\r\n Favor comunicarse con Ezequiel Hernández al\r\n 2519-5521 o al correo\r\n ehernandez@plndigital.com\r\n

\r\n \r\n \r\n \r\n );\r\n }\r\n};\r\n\r\nFormulario.propTypes = {};\r\n\r\nexport default withStyles(style)(Formulario);\r\n","import { colors } from '../../Core/Theme/theme';\r\n\r\nconst styles = theme => ({\r\n container: {\r\n textAlign: 'left',\r\n color: colors.lightGray,\r\n paddingBottom: 80,\r\n '& h3': {\r\n color: colors.darkGray,\r\n marginTop: '50px',\r\n fontSize: '24px',\r\n marginBottom: '10px',\r\n },\r\n '& h4': {\r\n textWeight: 'bold',\r\n marginTop: '0px',\r\n marginBottom: '5px',\r\n },\r\n '& p': {\r\n marginTop: '0px',\r\n marginBottom: '5px',\r\n },\r\n },\r\n subtitle: { color: colors.green },\r\n subtitleDoc: { color: colors.darkGray },\r\n boxForm: {\r\n marginTop: '30px',\r\n },\r\n boxDocToPdf: {\r\n color: colors.darkGray,\r\n '& h3': {\r\n color: colors.green,\r\n marginTop: '50px',\r\n fontSize: '20px',\r\n marginBottom: '10px',\r\n },\r\n },\r\n sectionDesktop: {\r\n display: 'none',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'flex',\r\n },\r\n },\r\n sectionMobile: {\r\n display: 'flex',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n },\r\n textFilled: {\r\n background: '#f1f1f1',\r\n padding: '10px',\r\n width: '80%',\r\n margin: '0 auto',\r\n },\r\n customField: {\r\n background: '#fff',\r\n border: 'solid thin #999',\r\n padding: '10px',\r\n width: '250px',\r\n margin: '0 auto',\r\n },\r\n});\r\n\r\nexport default styles;\r\n","/* eslint new-cap: [\"error\", { \"newIsCap\": false }] */\r\n/* eslint-disable camelcase */\r\nimport React, { useState, useEffect } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { jsPDF } from 'jspdf';\r\nimport 'jspdf-autotable';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Formik, Field } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport { Container, Grid, Button } from '@material-ui/core';\r\nimport { PlnDropdown } from '../../Components/Input';\r\nimport style from './styles';\r\n\r\nimport {\r\n useProvincias,\r\n getCantonsByProvince,\r\n getDistritoBy,\r\n getCantidadDelegados,\r\n useMovimientos,\r\n useSectores,\r\n} from '../../Core/Api/locationApi';\r\n\r\nconst FormularioAuth = props => {\r\n const { classes, match } = props;\r\n const { typeForm } = match.params;\r\n const { data } = useProvincias();\r\n const listMovimientos = useMovimientos();\r\n const listSectores = useSectores();\r\n\r\n const [showPreview, setShowPreview] = useState(false);\r\n // Opciones Seleccionadas\r\n const [sProvincia, setSProvincia] = useState(9);\r\n const [sCanton, setSCanton] = useState(999);\r\n const [sDistrito, setSDistrito] = useState(999);\r\n const [sMovimiento, setSMovimiento] = useState(9);\r\n const [sPuesto, setSPuesto] = useState(9);\r\n\r\n // const [pmpnProvincia, setPmpnProvincia] = useState(false);\r\n // const [isProvincial, setIsProvincial] = useState(false);\r\n\r\n const [numDelegados, setNumDelegados] = useState(0);\r\n\r\n // PDF Document\r\n const [pdfSubtitle, setPdfSubtitle] = useState('');\r\n const [pdfPuesto, setPdfPuesto] = useState('');\r\n\r\n useEffect(() => {\r\n if (typeForm === 'papeletas-distritales') {\r\n setPdfSubtitle('Asambleas Distritales');\r\n }\r\n if (typeForm === 'presidente-sectores') {\r\n setPdfSubtitle('ORGANIZACIÓN SECTORIAL');\r\n }\r\n if (typeForm === 'hoja-informacion') {\r\n setPdfSubtitle('TRIBUNAL DE ELECCIONES INTERNAS');\r\n }\r\n }, [typeForm]);\r\n\r\n // Lista de: Provincias, Cantones, Distritos y Movimientos\r\n const [initialValues] = useState(\r\n Lodash.get(data, ['initValues'], {\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n movimiento: 9,\r\n puesto: 9,\r\n sector: 9,\r\n }),\r\n );\r\n const provincias = Lodash.get(\r\n data,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n const [cantones, setCantones] = useState([\r\n { itemLabel: '- SELECCIONE EL CANTÓN-', value: 999 },\r\n ]);\r\n const [distritos, setDistritos] = useState([\r\n { itemLabel: '- SELECCIONE EL DISTRITO-', value: 999 },\r\n ]);\r\n let startMovimientos = [\r\n { itemLabel: '- SELECCIONE EL MOVIMIENTO -', value: 9 },\r\n ];\r\n if (typeForm === 'papeletas-movimientos-nacionales') {\r\n startMovimientos = [\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n { itemLabel: 'MUJERES', value: 1 },\r\n { itemLabel: 'JUVENTUD', value: 2 },\r\n { itemLabel: 'COOPERATIVO', value: 3 },\r\n { itemLabel: 'TRABAJADORES', value: 4 },\r\n ];\r\n }\r\n\r\n const [movimientos, setMovimientos] = useState(\r\n startMovimientos,\r\n );\r\n\r\n /*\r\n const movimientos = Lodash.get(\r\n listMovimientos,\r\n ['data', 'frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n */\r\n\r\n const sectores = Lodash.get(\r\n listSectores,\r\n ['data', 'frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE EL SECTOR -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n const [puestos, setPuestos] = useState([\r\n { itemLabel: '- SELECCIONE EL PUESTO -', value: 9 },\r\n ]);\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const tableHeaderTitle = [\r\n 'PRIMER LUGAR',\r\n 'SEGUNDO LUGAR',\r\n 'TERCER LUGAR',\r\n 'CUARTO LUGAR',\r\n 'QUINTO LUGAR',\r\n 'SEXTO LUGAR',\r\n 'SÉPTIMO LUGAR',\r\n 'OCTAVO LUGAR',\r\n 'NOVENO LUGAR',\r\n ];\r\n\r\n const tableHeaderTitleCE = [\r\n 'PARA PRESIDENTE(A)',\r\n 'PARA VICEPRESIDENTE(A)',\r\n 'PARA SECRETARIO(A)',\r\n 'PARA SUBSECRETARIO(A)',\r\n 'PARA TESORERO(A)',\r\n 'PARA SUBTESORERO(A)',\r\n ];\r\n\r\n const tableHeaderTitleCF = ['PROPIETARIO'];\r\n\r\n const doc = new jsPDF('p', 'px', 'letter');\r\n\r\n const setProvincia = p => {\r\n setShowPreview(false);\r\n if (typeForm === 'papeletas-movimientos-cantonales') {\r\n initialValues.movimiento = 9;\r\n initialValues.canton = 999;\r\n setMovimientos([\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ]);\r\n setSMovimiento(\r\n Lodash.find(movimientos, {\r\n value: 9,\r\n }),\r\n );\r\n }\r\n\r\n if (typeForm === 'papeletas-movimientos-provinciales') {\r\n initialValues.provincia = p;\r\n initialValues.movimiento = 9;\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: p,\r\n }),\r\n );\r\n if (p !== 9) {\r\n setMovimientos(\r\n Lodash.get(\r\n listMovimientos,\r\n ['data', 'frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ],\r\n ),\r\n );\r\n } else {\r\n setMovimientos([\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ]);\r\n }\r\n } else {\r\n initialValues.provincia = p;\r\n initialValues.canton = 999;\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n initialValues.distrito = 999;\r\n if (p !== 9) {\r\n getCantonsByProvince(p).then(result => {\r\n if (result.status === 200) {\r\n const cantonsList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const clist = cantonsList.map(\r\n ({ cod_canton, des_nombre_c }) => {\r\n return {\r\n itemLabel: des_nombre_c,\r\n value: cod_canton,\r\n };\r\n },\r\n );\r\n clist.unshift({\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n });\r\n\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: p,\r\n }),\r\n );\r\n setCantones(clist);\r\n }\r\n });\r\n } else {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n },\r\n ]);\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n setMovimientos([\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ]);\r\n }\r\n }\r\n };\r\n\r\n const setCanton = c => {\r\n setShowPreview(false);\r\n\r\n initialValues.distrito = 999;\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = c;\r\n initialValues.movimiento = 9;\r\n\r\n if (c !== 999) {\r\n if (typeForm === 'papeletas-movimientos-cantonales') {\r\n setMovimientos(\r\n Lodash.get(\r\n listMovimientos,\r\n ['data', 'frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ],\r\n ),\r\n );\r\n setSMovimiento(\r\n Lodash.find(movimientos, {\r\n value: 9,\r\n }),\r\n );\r\n }\r\n getDistritoBy(sProvincia.value, c).then(result => {\r\n if (result.status === 200) {\r\n const distritosList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n const dlist = distritosList.map(\r\n ({ cod_dist_ad, des_nombre_ad }) => {\r\n return {\r\n itemLabel: des_nombre_ad,\r\n value: cod_dist_ad,\r\n };\r\n },\r\n );\r\n dlist.unshift({\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n });\r\n\r\n setSCanton(\r\n Lodash.find(cantones, {\r\n value: c,\r\n }),\r\n );\r\n\r\n setDistritos(dlist);\r\n }\r\n });\r\n } else {\r\n setMovimientos([\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ]);\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n const setDistrito = d => {\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = sCanton.value;\r\n initialValues.distrito = d;\r\n if (d !== 999) {\r\n setShowPreview(true);\r\n setSDistrito(\r\n Lodash.find(distritos, {\r\n value: d,\r\n }),\r\n );\r\n\r\n getCantidadDelegados(\r\n sProvincia.value,\r\n sCanton.value,\r\n d,\r\n ).then(response => {\r\n const cantDelegados = Lodash.get(\r\n response,\r\n ['data', 0, 'numDelegados'],\r\n 0,\r\n );\r\n setNumDelegados(cantDelegados);\r\n });\r\n } else {\r\n setShowPreview(false);\r\n setSDistrito({ itemLabel: '', value: 0 });\r\n }\r\n };\r\n\r\n const setMovimiento = d => {\r\n if (d === 1) {\r\n setPdfSubtitle('Mov. Mujeres');\r\n } else if (d === 2) {\r\n setPdfSubtitle('Mov. Juventud');\r\n } else if (d === 3) {\r\n setPdfSubtitle('Mov. Cooperativo');\r\n } else if (d === 4) {\r\n setPdfSubtitle('Mov. Trabajadores');\r\n }\r\n\r\n if (typeForm === 'papeletas-movimientos-nacionales') {\r\n setShowPreview(false);\r\n initialValues.movimiento = d;\r\n if (d !== 9) {\r\n setSMovimiento(\r\n Lodash.find(movimientos, {\r\n value: d,\r\n }),\r\n );\r\n\r\n setPuestos([\r\n {\r\n itemLabel: '- SELECCIONE EL PUESTO -',\r\n value: 9,\r\n },\r\n { itemLabel: 'PRESIDENTE', value: 1 },\r\n { itemLabel: 'VICEPRESIDENTE', value: 2 },\r\n { itemLabel: 'SECRETARIO GENERAL', value: 3 },\r\n ]);\r\n initialValues.puesto = 9;\r\n } else {\r\n initialValues.puesto = 9;\r\n setShowPreview(false);\r\n setPuestos([\r\n {\r\n itemLabel: '- SELECCIONE EL PUESTO -',\r\n value: 9,\r\n },\r\n ]);\r\n setSMovimiento({ itemLabel: '', value: 0 });\r\n }\r\n } else if (\r\n typeForm === 'papeletas-movimientos-provinciales'\r\n ) {\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.movimiento = d;\r\n if (d !== 9) {\r\n setShowPreview(true);\r\n // setIsProvincial(true);\r\n setSMovimiento(\r\n Lodash.find(movimientos, {\r\n value: d,\r\n }),\r\n );\r\n } else {\r\n setShowPreview(false);\r\n setSMovimiento({ itemLabel: '', value: 0 });\r\n }\r\n } else {\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = sCanton.value;\r\n initialValues.movimiento = d;\r\n if (d !== 9) {\r\n setShowPreview(true);\r\n // setIsProvincial(false);\r\n setSMovimiento(\r\n Lodash.find(movimientos, {\r\n value: d,\r\n }),\r\n );\r\n } else {\r\n setShowPreview(false);\r\n setSMovimiento({ itemLabel: '', value: 0 });\r\n }\r\n }\r\n };\r\n\r\n const setPuesto = d => {\r\n /*\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = sCanton.value;\r\n initialValues.movimiento = d;\r\n */\r\n // setShowPreview(false);\r\n\r\n if (d !== 9) {\r\n initialValues.movimiento = sMovimiento.value;\r\n initialValues.provincia = 9;\r\n initialValues.puesto = d;\r\n setSPuesto(\r\n Lodash.find(puestos, {\r\n value: d,\r\n }),\r\n );\r\n\r\n /*\r\n if (d === 5) {\r\n setIsProvincial(true);\r\n setPmpnProvincia(true);\r\n setShowPreview(false);\r\n } else {\r\n */\r\n // setIsProvincial(false);\r\n // setPmpnProvincia(false);\r\n setShowPreview(true);\r\n // }\r\n\r\n if (d === 1) {\r\n setPdfPuesto('PRESIDENTE(A)');\r\n } else if (d === 2) {\r\n setPdfPuesto('VICEPRESIDENTE(A)');\r\n } else if (d === 3) {\r\n setPdfPuesto('SECRETARIO(A) GENERAL');\r\n } else if (d === 5) {\r\n setPdfPuesto('REPRESENTANTE PROVINCIAL');\r\n }\r\n } else {\r\n setShowPreview(false);\r\n setSPuesto({ itemLabel: '', value: 0 });\r\n }\r\n };\r\n\r\n const setSector = d => {\r\n setShowPreview(true);\r\n initialValues.sector = d;\r\n if (d !== 99) {\r\n if (d === 2) {\r\n setPdfSubtitle('Sector Profesional');\r\n } else if (d === 3) {\r\n setPdfSubtitle('Sector Magisterial');\r\n } else if (d === 4) {\r\n setPdfSubtitle('Sector Empresarial');\r\n } else if (d === 5) {\r\n setPdfSubtitle('Sector Deportivo');\r\n } else if (d === 6) {\r\n setPdfSubtitle('Sector Cultural');\r\n } else if (d === 7) {\r\n setPdfSubtitle('Sector Solidarismo');\r\n } else if (d === 8) {\r\n setPdfSubtitle('Sector Comunalismo');\r\n } else if (d === 9) {\r\n setPdfSubtitle('Persona con Discapacidad');\r\n } else if (d === 10) {\r\n setPdfSubtitle('Sector Agroalimentario');\r\n }\r\n } else {\r\n setShowPreview(false);\r\n }\r\n };\r\n\r\n const downloadForm = values => {\r\n // console.log(values);\r\n return values;\r\n };\r\n\r\n const getTimeStamp = () => {\r\n const now = new Date();\r\n return `${\r\n now.getMonth() + 1\r\n }/${now.getDate()}/${now.getFullYear()} ${now.getHours()}:${\r\n now.getMinutes() < 10\r\n ? `0${now.getMinutes()}`\r\n : now.getMinutes()\r\n }:${\r\n now.getSeconds() < 10\r\n ? `0${now.getSeconds()}`\r\n : now.getSeconds()\r\n }`;\r\n };\r\n\r\n const centeredText = (text, y) => {\r\n const textWidth =\r\n (doc.getStringUnitWidth(text) *\r\n doc.internal.getFontSize()) /\r\n doc.internal.scaleFactor;\r\n const textOffset =\r\n (doc.internal.pageSize.width - textWidth) / 2;\r\n doc.text(textOffset, y, text);\r\n };\r\n\r\n const getTitlePage = () => {\r\n let title = '';\r\n if (typeForm === 'papeletas-distritales') {\r\n title = ' PAPELETAS DISTRITALES';\r\n } else if (\r\n typeForm === 'papeletas-movimientos-cantonales'\r\n ) {\r\n title = ' PAPELETAS DE MOVIMIENTOS CANTONALES';\r\n } else if (\r\n typeForm === 'papeletas-movimientos-provinciales'\r\n ) {\r\n title = ' PAPELETAS DE MOVIMIENTOS PROVINCIALES';\r\n } else if (\r\n typeForm === 'papeletas-movimientos-nacionales'\r\n ) {\r\n title = ' PAPELETAS DE MOVIMIENTOS NACIONALES';\r\n } else if (typeForm === 'presidente-sectores') {\r\n title = ' PAPELETA PRESIDENCIA DE SECTORES';\r\n } else if (typeForm === 'papeletas-sectores') {\r\n title = ' PAPELETA DE SECTORES';\r\n } else if (typeForm === 'hoja-informacion') {\r\n title = ' HOJA DE INFORMACIÓN';\r\n }\r\n\r\n return title;\r\n };\r\n\r\n const getNotesPDF = () => {\r\n let notesData = [];\r\n\r\n if (typeForm === 'papeletas-distritales') {\r\n notesData = [\r\n [\r\n // eslint-disable-next-line max-len\r\n `* No se aceptarán inscripciones con documentación o número de candidatos incompletos.`,\r\n ],\r\n [\r\n // eslint-disable-next-line max-len\r\n `* El gestor(a) es ahora el representante de la papeleta contenida en este formulario ante el T.E.I., para todos los efectos de su inscripción y tramitación.`,\r\n ],\r\n [\r\n // eslint-disable-next-line max-len\r\n `* RECUERDE: Las nominas deben ordenarse con alternabilidad de género. Debe haber dentro de los candidatos(as) al menos un 20% personas entre 18 a 35 años de edad.`,\r\n ],\r\n ];\r\n } else if (\r\n typeForm === 'papeletas-movimientos-cantonales'\r\n ) {\r\n notesData = [\r\n [\r\n // eslint-disable-next-line max-len\r\n `* Cada candidato(a) debe contar con los documentos que le acrediten como miembro de este Movimiento.`,\r\n ],\r\n\r\n [\r\n // eslint-disable-next-line max-len\r\n `* El gestor(a) es ahora el representante de la papeleta contenida en este formulario ante el T.E.I., para todos los efectos de su inscripción y tramitación.`,\r\n ],\r\n [\r\n // eslint-disable-next-line max-len\r\n `* Las nominas deben ordenarse con alternabilidad de género. (Con excepción del Mov. de Mujeres)`,\r\n ],\r\n ];\r\n } else if (\r\n typeForm === 'papeletas-movimientos-nacionales' ||\r\n typeForm === 'papeletas-movimientos-provinciales'\r\n ) {\r\n notesData = [\r\n [\r\n // eslint-disable-next-line max-len\r\n `* Cada candidato(a) debe contar con los documentos que le acrediten como miembro de este Movimiento. No se aceptarán inscripciones con documentación o número de candidatos incompletos.`,\r\n ],\r\n\r\n [\r\n // eslint-disable-next-line max-len\r\n `* El gestor(a) es ahora el representante de la papeleta contenida en este formulario ante el T.E.I., para todos los efectos de su inscripción y tramitación.`,\r\n ],\r\n ];\r\n } else if (typeForm === 'presidente-sectores') {\r\n notesData = [\r\n [\r\n // eslint-disable-next-line max-len\r\n `* El gestor(a) es ahora el representante de la papeleta contenida en este formulario ante el T.E.I., para todos los efectos de su inscripción y tramitación.`,\r\n ],\r\n [\r\n // eslint-disable-next-line max-len\r\n `* No se aceptarán inscripciones con documentación o número de candidatos incompletos.`,\r\n ],\r\n ];\r\n } else if (typeForm === 'papeletas-sectores') {\r\n notesData = [\r\n [\r\n // eslint-disable-next-line max-len\r\n `* Cada candidato(a) debe contar con los documentos que le acrediten como miembro de este Sector.`,\r\n ],\r\n\r\n [\r\n // eslint-disable-next-line max-len\r\n `* El gestor(a) es ahora el representante de la papeleta contenida en este formulario ante el T.E.I., para todos los efectos de su inscripción y tramitación.`,\r\n ],\r\n [\r\n // eslint-disable-next-line max-len\r\n `* No se aceptarán inscripciones con documentación o número de candidatos incompletos`,\r\n ],\r\n ];\r\n }\r\n\r\n return notesData;\r\n };\r\n\r\n const generatePDF = () => {\r\n // ENCABEZADO DEL DOCUMENTO\r\n doc.setFont('times', 'bold');\r\n doc.text(\r\n 20,\r\n 40,\r\n process.env.REACT_APP_PDF_PARTIDO_REPORTS,\r\n );\r\n doc.setFontSize(12);\r\n doc.text(20, 60, pdfSubtitle);\r\n doc.setFont('times', 'normal');\r\n doc.text(\r\n 20,\r\n 80,\r\n process.env.REACT_APP_PDF_PERIODO_REPORTS,\r\n );\r\n\r\n doc.setFont('times', 'bold');\r\n\r\n centeredText(\r\n process.env.REACT_APP_PDF_TITLE_FORMULARIO_REPORTS,\r\n 100,\r\n );\r\n\r\n doc.setFont('times', 'normal');\r\n doc.text(20, 120, 'Señores');\r\n doc.text(\r\n 20,\r\n 130,\r\n process.env.REACT_APP_PDF_TITLE_TRIBUNAL_REPORTS,\r\n );\r\n\r\n // TABLA DE OPCIONES SELECCIONADAS EN EL FORMULARIO\r\n\r\n // eslint-disable-next-line max-len\r\n let paragraph = `Nosotros los abajo firmantes, miembros activos del Partido, de conformidad con lo dispuesto en el Reglamento para las Asambleas Distritales, solicitamos la inscripción de las siguientes candidaturas para participar en la escogencia de las y los delegados distritales para:`;\r\n if (typeForm === 'papeletas-movimientos-cantonales') {\r\n // eslint-disable-next-line max-len\r\n paragraph = `Nosotros los abajo firmantes, miembros activos del Partido, de conformidad con lo dispuesto en el Reglamento para las Asambleas Distritales, Movimientos y Sectores, solicitamos la inscripción de las siguientes candidaturas para que participen de las Asambleas del ${pdfSubtitle} Liberacionista correspondientes al:`;\r\n }\r\n if (\r\n typeForm === 'papeletas-movimientos-nacionales' ||\r\n typeForm === 'papeletas-movimientos-provinciales'\r\n ) {\r\n // eslint-disable-next-line max-len\r\n paragraph = `Los suscritos, abajo firmante, miembro activo del Partido, de conformidad con lo dispuesto en el Reglamento para las Asambleas de Movimientos y Sectores, solicito la inscripción de la presente candidatura para participar en las Asambleas del ${pdfSubtitle} Liberacionista.`;\r\n }\r\n if (typeForm === 'presidente-sectores') {\r\n // eslint-disable-next-line max-len\r\n paragraph = `El(la) suscrito(a), abajo firmante, miembro activo del Partido, de conformidad con lo dispuesto en el Reglamento para las Asambleas Distritales, Movimientos y Sectores, solicito la inscripción de la siguiente candidatura para participar en la Organización Sectorial.`;\r\n }\r\n if (typeForm === 'papeletas-sectores') {\r\n // eslint-disable-next-line max-len\r\n paragraph = `Nosotros los abajo firmantes, miembros activos del Partido, de conformidad con lo dispuesto en el Reglamento para las Asambleas de Sectores, solicitamos la inscripción de las siguientes candidaturas para participar por el ${pdfSubtitle}:`;\r\n }\r\n let lines = doc.splitTextToSize(paragraph, 415);\r\n doc.text(20, 140, lines);\r\n\r\n let columns = [\r\n 'Posible N° de Papeleta',\r\n 'Provincia',\r\n 'Cantón',\r\n 'Distrito Administrativo',\r\n ];\r\n\r\n let typeTable1 = 'grid';\r\n let showTheHeader = true;\r\n let baseHeightText = 220;\r\n let baseHeightTable = 85;\r\n\r\n if (typeForm === 'papeletas-movimientos-cantonales') {\r\n columns = ['N° Papeleta', 'Provincia', 'Cantón'];\r\n }\r\n if (typeForm === 'papeletas-movimientos-nacionales') {\r\n columns = [''];\r\n typeTable1 = 'plain';\r\n showTheHeader = 'never';\r\n baseHeightText = 180;\r\n baseHeightTable = 55;\r\n }\r\n if (typeForm === 'papeletas-movimientos-provinciales') {\r\n columns = ['Provincia', 'Nº Papeleta'];\r\n }\r\n if (typeForm === 'presidente-sectores') {\r\n columns = [''];\r\n }\r\n if (typeForm === 'papeletas-sectores') {\r\n columns = ['Posible N° de Papeleta'];\r\n }\r\n\r\n let datos1 = [\r\n [\r\n '',\r\n sProvincia.itemLabel,\r\n sCanton.itemLabel,\r\n sDistrito.itemLabel,\r\n ],\r\n ];\r\n\r\n if (typeForm === 'papeletas-movimientos-cantonales') {\r\n datos1 = [\r\n ['', sProvincia.itemLabel, sCanton.itemLabel],\r\n ];\r\n }\r\n if (typeForm === 'papeletas-movimientos-nacionales') {\r\n datos1 = [['']];\r\n }\r\n if (typeForm === 'papeletas-movimientos-provinciales') {\r\n datos1 = [[sProvincia.itemLabel, '']];\r\n }\r\n if (typeForm === 'presidente-sectores') {\r\n datos1 = [['']];\r\n typeTable1 = 'plain';\r\n showTheHeader = 'never';\r\n baseHeightText = 180;\r\n baseHeightTable = 55;\r\n }\r\n if (typeForm === 'papeletas-sectores') {\r\n datos1 = [['']];\r\n }\r\n\r\n // TABLA FORMULARIO\r\n doc.autoTable({\r\n head: [columns],\r\n body: datos1,\r\n theme: typeTable1,\r\n startY: 170,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 2: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 3: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: showTheHeader,\r\n margin: { left: 20 },\r\n });\r\n\r\n // TABLA: CANDIDATOS DELEGADOS DISTRITALES\r\n doc.setFontSize(12);\r\n doc.setFont('times', 'normal');\r\n if (pdfSubtitle === 'Mov. Mujeres') {\r\n // eslint-disable-next-line max-len\r\n paragraph = `Declaramos incondicionalmente nuestra adhesión al Partido y a sus principios ideológicos y programáticos y aceptamos en su totalidad las normas ético­ jurídicas que rigen el proceso, así como las decisiones, resoluciones y acuerdos del Tribunal de Elecciones Internas. Igualmente nos comprometemos a contribuir económicamente al mantenimiento del Partido, según lo dispuesto en el Artículo 14 del Estatuto. La nómina de nuestra papeleta es la siguiente:`;\r\n } else {\r\n // eslint-disable-next-line max-len\r\n paragraph = `Declaramos incondicionalmente nuestra adhesión al Partido y a sus principios ideológicos y programáticos y aceptamos en su totalidad las normas ético­ jurídicas que rigen el proceso, así como las decisiones, resoluciones y acuerdos del Tribunal de Elecciones Internas. Igualmente nos comprometemos a contribuir económicamente al mantenimiento del Partido, según lo dispuesto en el Artículo 14 del Estatuto. La nómina de nuestra papeleta, integrada en orden alternativo de género, es la siguiente:`;\r\n }\r\n\r\n lines = doc.splitTextToSize(paragraph, 425);\r\n doc.text(20, baseHeightText, lines);\r\n\r\n let dinamicFields = 7;\r\n let theTitle =\r\n 'CANDIDATOS(AS) DELEGADOS(AS) DISTRITALES';\r\n if (typeForm === 'papeletas-movimientos-cantonales') {\r\n theTitle = 'COMITÉ POLÍTICO CANTONAL';\r\n } else if (\r\n typeForm === 'papeletas-movimientos-nacionales'\r\n ) {\r\n theTitle = `${pdfPuesto} DEL MOVIMIENTO`;\r\n\r\n dinamicFields = 1;\r\n if (\r\n sMovimiento.value === 4 ||\r\n sMovimiento.value === 3\r\n ) {\r\n dinamicFields = 3;\r\n }\r\n } else if (\r\n typeForm === 'papeletas-movimientos-provinciales'\r\n ) {\r\n theTitle = `REPRESENTANTE PROVINCIAL ANTE LA ASAMBLEA NACIONAL`;\r\n dinamicFields = 4;\r\n } else if (typeForm === 'presidente-sectores') {\r\n theTitle = `PRESIDENTE(A) NACIONAL DE LA ORGANIZACIÓN SECTORIAL`;\r\n dinamicFields = 1;\r\n } else if (typeForm === 'papeletas-sectores') {\r\n theTitle = `REPRESENTANTES DE LA ORGANIZACIÓN SECTORIAL A LA ASAMBLEA NACIONAL`;\r\n dinamicFields = 4;\r\n } else {\r\n dinamicFields = numDelegados;\r\n }\r\n\r\n if (typeForm !== 'presidente-sectores') {\r\n doc.setFont('times', 'bold');\r\n centeredText(theTitle, 280);\r\n }\r\n\r\n if (\r\n typeForm === 'papeletas-movimientos-nacionales' ||\r\n typeForm === 'papeletas-movimientos-provinciales'\r\n ) {\r\n doc.setFont('times', 'bold');\r\n centeredText(theTitle, 280);\r\n }\r\n\r\n let posY = doc.lastAutoTable.finalY + baseHeightTable;\r\n\r\n for (let n = 0; n < dinamicFields; n++) {\r\n if (n !== 0) {\r\n posY = doc.lastAutoTable.finalY + 5;\r\n }\r\n\r\n const numRow = n + 1;\r\n const columnsT = ['A'];\r\n let dataT = [];\r\n if (\r\n typeForm === 'presidente-sectores' ||\r\n typeForm === 'papeletas-movimientos-nacionales'\r\n ) {\r\n dataT = [[`${numRow} - ${theTitle}`]];\r\n if (numRow === 2 || numRow === 3) {\r\n dataT = [\r\n [`${numRow} - ${sPuesto.itemLabel} (SUPLENTE)`],\r\n ];\r\n }\r\n } else {\r\n dataT = [[`${numRow} - ${tableHeaderTitle[n]}`]];\r\n }\r\n // posY += 20;\r\n doc.autoTable({\r\n head: [columnsT],\r\n body: dataT,\r\n theme: 'grid',\r\n startY: posY,\r\n styles: { font: 'times', fontStyle: 'bold' },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns2 = [\r\n 'CÉDULA',\r\n 'PRIMER APELLIDO',\r\n 'SEGUNDO APELLIDO',\r\n 'NOMBRE',\r\n ];\r\n const datos2 = [['', '', '', '', '']];\r\n\r\n // posY += 15;\r\n doc.autoTable({\r\n head: [columns2],\r\n body: datos2,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 2: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 3: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns3 = ['A'];\r\n const data3 = [\r\n [\r\n // eslint-disable-next-line max-len\r\n `En este acto con mi firma de puño y letra, ratifico mi aceptación como candidato(a). Asimismo autorizo al gestor(a) para que deposite lo correspondiente a mi cuota de membrecía.`,\r\n ],\r\n ];\r\n\r\n // posY += 45;\r\n doc.autoTable({\r\n head: [columns3],\r\n body: data3,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: { font: 'times' },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns4 = ['', ''];\r\n const data4 = [\r\n [\r\n ' FIRMA ',\r\n '_____________________________________________',\r\n ],\r\n ];\r\n\r\n // posY += 70;\r\n doc.autoTable({\r\n head: [columns4],\r\n body: data4,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: { font: 'times', color: '#000' },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n 1: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n }\r\n\r\n if (typeForm === 'papeletas-distritales') {\r\n // TABLA: CANDIDATOS COMITÉ EJECUTIVO DISTRITAL\r\n const columnsT = ['A'];\r\n const dataT = [\r\n [\r\n `CANDIDATOS(AS) PARA EL COMITÉ EJECUTIVO DISTRITAL`,\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [columnsT],\r\n body: dataT,\r\n theme: 'plain',\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n font: 'times',\r\n fontStyle: 'bold',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n fontSize: 12,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n posY = doc.lastAutoTable.finalY + 5;\r\n\r\n for (\r\n let n2 = 0;\r\n n2 < tableHeaderTitleCE.length;\r\n n2++\r\n ) {\r\n if (n2 !== 0) {\r\n posY = doc.lastAutoTable.finalY + 5;\r\n }\r\n\r\n const numRow = n2 + 1;\r\n const columnsT2 = ['A'];\r\n const dataT2 = [\r\n [`${numRow} - ${tableHeaderTitleCE[n2]}`],\r\n ];\r\n // posY += 20;\r\n doc.autoTable({\r\n head: [columnsT2],\r\n body: dataT2,\r\n theme: 'grid',\r\n startY: posY,\r\n styles: { font: 'times', fontStyle: 'bold' },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns2 = [\r\n 'CÉDULA',\r\n 'PRIMER APELLIDO',\r\n 'SEGUNDO APELLIDO',\r\n 'NOMBRE',\r\n ];\r\n const datos2 = [['', '', '', '', '']];\r\n\r\n // posY += 15;\r\n doc.autoTable({\r\n head: [columns2],\r\n body: datos2,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 2: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 3: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns3 = ['A'];\r\n const data3 = [\r\n [\r\n // eslint-disable-next-line max-len\r\n `En este acto con mi firma de puño y letra, ratifico mi aceptación como candidato(a). Asimismo autorizo al gestor(a) para que deposite lo correspondiente a mi cuota de membrecía.`,\r\n ],\r\n ];\r\n\r\n // posY += 45;\r\n doc.autoTable({\r\n head: [columns3],\r\n body: data3,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: { font: 'times' },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns4 = ['', ''];\r\n const data4 = [\r\n [\r\n ' FIRMA ',\r\n '_____________________________________________',\r\n ],\r\n ];\r\n\r\n // posY += 70;\r\n doc.autoTable({\r\n head: [columns4],\r\n body: data4,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: { font: 'times', color: '#000' },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n 1: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n }\r\n\r\n // TABLA: CANDIDATOS FISCALÍA\r\n const columnsT2 = ['A'];\r\n const dataT2 = [[`CANDIDATOS(AS) PARA LA FISCALÍA`]];\r\n\r\n doc.autoTable({\r\n head: [columnsT2],\r\n body: dataT2,\r\n theme: 'plain',\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n font: 'times',\r\n fontStyle: 'bold',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n fontSize: 12,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n posY = doc.lastAutoTable.finalY + 5;\r\n\r\n for (\r\n let n3 = 0;\r\n n3 < tableHeaderTitleCF.length;\r\n n3++\r\n ) {\r\n if (n3 !== 0) {\r\n posY = doc.lastAutoTable.finalY + 5;\r\n }\r\n\r\n const numRow = n3 + 1;\r\n const columnsT3 = ['A'];\r\n const dataT3 = [\r\n [`${numRow} - ${tableHeaderTitleCF[n3]}`],\r\n ];\r\n // posY += 20;\r\n doc.autoTable({\r\n head: [columnsT3],\r\n body: dataT3,\r\n theme: 'grid',\r\n startY: posY,\r\n styles: { font: 'times', fontStyle: 'bold' },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns2 = [\r\n 'CÉDULA',\r\n 'PRIMER APELLIDO',\r\n 'SEGUNDO APELLIDO',\r\n 'NOMBRE',\r\n ];\r\n const datos2 = [['', '', '', '', '']];\r\n\r\n // posY += 15;\r\n doc.autoTable({\r\n head: [columns2],\r\n body: datos2,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 2: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n 3: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns3 = ['A'];\r\n const data3 = [\r\n [\r\n // eslint-disable-next-line max-len\r\n `En este acto con mi firma de puño y letra, ratifico mi aceptación como candidato(a). Asimismo autorizo al gestor(a) para que deposite lo correspondiente a mi cuota de membrecía.`,\r\n ],\r\n ];\r\n\r\n // posY += 45;\r\n doc.autoTable({\r\n head: [columns3],\r\n body: data3,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: { font: 'times' },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns4 = ['', ''];\r\n const data4 = [\r\n [\r\n ' FIRMA ',\r\n '_____________________________________________',\r\n ],\r\n ];\r\n\r\n // posY += 70;\r\n doc.autoTable({\r\n head: [columns4],\r\n body: data4,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: { font: 'times', color: '#000' },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n 1: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n }\r\n\r\n // TABLA: GESTOR DE LA PAPELETA\r\n const columnsT3 = ['A'];\r\n const dataT3 = [\r\n [\r\n `GESTOR DE LA PAPELETA ANTE EL TRIBUNAL DE ELECCIONES INTERNAS`,\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [columnsT3],\r\n body: dataT3,\r\n theme: 'plain',\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n font: 'times',\r\n fontStyle: 'bold',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n fontSize: 12,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n posY = doc.lastAutoTable.finalY + 5;\r\n\r\n const columnsT4 = ['A', 'B'];\r\n const dataT4 = [\r\n [\r\n 'CÉDULA',\r\n ' ',\r\n ],\r\n [\r\n 'NOMBRE COMPLETO',\r\n ' ',\r\n ],\r\n [\r\n 'FIRMA',\r\n ' ',\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [columnsT4],\r\n body: dataT4,\r\n theme: 'grid',\r\n startY: posY,\r\n styles: { font: 'times', fontStyle: 'bold' },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n 1: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n posY = doc.lastAutoTable.finalY + 5;\r\n }\r\n\r\n // TABLA: NOTAS\r\n const columnsT5 = ['A'];\r\n const dataT5 = [[`Notas`]];\r\n\r\n doc.autoTable({\r\n head: [columnsT5],\r\n body: dataT5,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n font: 'times',\r\n fontStyle: 'bold',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n fontSize: 12,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columnsT6 = ['A'];\r\n const dataT6 = getNotesPDF();\r\n\r\n doc.autoTable({\r\n head: [columnsT6],\r\n body: dataT6,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n fontSize: 10,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'left',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n // TABLA: RECUERDE\r\n if (typeForm === 'papeletas-sectores') {\r\n const columnsT7 = ['A'];\r\n const dataT7 = [[`RECUERDE`]];\r\n\r\n doc.autoTable({\r\n head: [columnsT7],\r\n body: dataT7,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n font: 'times',\r\n fontStyle: 'bold',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n fontSize: 12,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columnsT8 = ['A'];\r\n const dataT8 = [\r\n [\r\n `* Las nominas deben ordenarse con alternabilidad de género.`,\r\n ],\r\n [\r\n // eslint-disable-next-line max-len\r\n `* Debe haber dentro de los candidatos(as) al menos 1 hombre y 1 mujer entre 18 a 35 años de edad.`,\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [columnsT8],\r\n body: dataT8,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n fontSize: 10,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'left',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n }\r\n\r\n // FOOTER DOCUMENT\r\n const columnsPie = ['A'];\r\n const dataPie = [\r\n [\r\n // eslint-disable-next-line max-len\r\n `PLNDigital.com ${process.env.REACT_APP_PDF_YEAR_REPORTS} Email: consultas@plndigital.com PLN; Mata Redonda, 125m O. del edificio del M.A.G., Casa Liberacionista \"José Figueres Ferrer\" Tel: (506)2549­5500. Aptdo:10051­1000 San José. Sitio web desarrollado por Corporación DSI S.A.`,\r\n ],\r\n ];\r\n doc.autoTable({\r\n head: [columnsPie],\r\n body: dataPie,\r\n theme: 'plain',\r\n startY: doc.lastAutoTable.finalY + 50,\r\n styles: {\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n fontSize: 10,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'left',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const fileTS = getTimeStamp();\r\n doc.save(`formulario-${typeForm}-${fileTS}.pdf`);\r\n };\r\n\r\n const generateHojaInformacion = () => {\r\n // ENCABEZADO DEL DOCUMENTO\r\n doc.setFont('times', 'bold');\r\n doc.text(\r\n 20,\r\n 40,\r\n process.env.REACT_APP_PDF_PARTIDO_REPORTS,\r\n );\r\n doc.setFontSize(12);\r\n doc.text(20, 60, pdfSubtitle);\r\n doc.setFont('times', 'normal');\r\n doc.text(\r\n 20,\r\n 80,\r\n process.env.REACT_APP_PDF_PERIODO_REPORTS,\r\n );\r\n\r\n doc.setFont('times', 'bold');\r\n centeredText(\r\n process.env.REACT_APP_PDF_TITLE_HOJA_INFO_REPORTS,\r\n 100,\r\n );\r\n\r\n doc.setFont('times', 'bold');\r\n const columnsA = ['CÉDULA', ''];\r\n const dataA = [['CÉDULA', '']];\r\n\r\n doc.autoTable({\r\n head: [columnsA],\r\n body: dataA,\r\n theme: 'grid',\r\n startY: 120,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n cellWidth: 130,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n cellWidth: 290,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columnsB = ['NOMBRE', ''];\r\n const dataB = [['NOMBRE', '']];\r\n\r\n doc.autoTable({\r\n head: [columnsB],\r\n body: dataB,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n cellWidth: 130,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n cellWidth: 290,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columnsC = ['DIRECCION', ''];\r\n const dataC = [['DIRECCIÓN HABITACIÓN', '']];\r\n\r\n doc.autoTable({\r\n head: [columnsC],\r\n body: dataC,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n cellWidth: 130,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n cellWidth: 290,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columnsD = [\r\n 'TELEFONO HABITACIÓN',\r\n 'CELULAR',\r\n 'FAX',\r\n 'OTRO',\r\n ];\r\n const dataD = [['', '', '', '']];\r\n\r\n doc.autoTable({\r\n head: [columnsD],\r\n body: dataD,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n cellWidth: 130,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'left',\r\n cellWidth: 100,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n 2: {\r\n halign: 'left',\r\n cellWidth: 95,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n 3: {\r\n halign: 'left',\r\n cellWidth: 95,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n margin: { left: 20 },\r\n });\r\n\r\n const columnsE = ['DIRECCION TRABAJO', ''];\r\n const dataE = [['DIRECCIÓN TRABAJO', '']];\r\n\r\n doc.autoTable({\r\n head: [columnsE],\r\n body: dataE,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n cellWidth: 130,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n cellWidth: 290,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columnsF = ['TELEFONO TRABAJO', 'FAX TRABAJO'];\r\n const dataF = [['', '']];\r\n\r\n doc.autoTable({\r\n head: [columnsF],\r\n body: dataF,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n cellWidth: 230,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'left',\r\n cellWidth: 190,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n margin: { left: 20 },\r\n });\r\n\r\n const columnsG = [\r\n 'CORREO ELECTRONICO OFICIAL PARA NOTIFICACIONES',\r\n '',\r\n ];\r\n const dataG = [\r\n [\r\n 'CORREO ELECTRÓNICO OFICIAL PARA NOTIFICACIONES',\r\n '',\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [columnsG],\r\n body: dataG,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n cellWidth: 130,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n cellWidth: 290,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columnsH = ['H'];\r\n const dataH = [\r\n [\r\n // eslint-disable-next-line max-len\r\n 'En apego a la Ley No 8968 de Protección de la Persona frente al tratamiento de sus datos personales: Autorizo al Partido Liberación Nacional, para que utilice mi información, con el fin de que el PLN pueda mantener contacto con mi persona, ya sea por teléfono o por correo electrónico.',\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [columnsH],\r\n body: dataH,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n cellWidth: 420,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columnsI = ['FIRMA'];\r\n const dataI = [\r\n ['____________________________________________'],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [columnsI],\r\n body: dataI,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n cellWidth: 420,\r\n textColor: 0,\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n margin: { left: 20 },\r\n });\r\n\r\n // TABLA: NOTAS\r\n const columnsT5 = ['A'];\r\n const dataT5 = [[`Notas`]];\r\n\r\n doc.autoTable({\r\n head: [columnsT5],\r\n body: dataT5,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n font: 'times',\r\n fontStyle: 'bold',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n fontSize: 12,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const columnsT6 = ['A'];\r\n const dataT6 = [\r\n [\r\n // eslint-disable-next-line max-len\r\n `Para cada gestor(a) y candidato(a) se debe aportar un correo electrónico personal oficial para recibir notificaciones del T.E.I. o del T.S.E. (No se recomienda utilizar el mismo correo electrónico del gestor).`,\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [columnsT6],\r\n body: dataT6,\r\n theme: 'grid',\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n fontSize: 10,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'left',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n // FOOTER DOCUMENT\r\n const columnsPie = ['A'];\r\n const dataPie = [\r\n [\r\n // eslint-disable-next-line max-len\r\n `PLNDigital.com ${process.env.REACT_APP_PDF_YEAR_REPORTS} Email: consultas@plndigital.com PLN; Mata Redonda, 125m O. del edificio del M.A.G., Casa Liberacionista \"José Figueres Ferrer\" Tel: (506)2549­5500. Aptdo:10051­1000 San José. Sitio web desarrollado por Corporación DSI S.A.`,\r\n ],\r\n ];\r\n doc.autoTable({\r\n head: [columnsPie],\r\n body: dataPie,\r\n theme: 'plain',\r\n startY: doc.lastAutoTable.finalY + 50,\r\n styles: {\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n fillColor: [255, 255, 255],\r\n textColor: 0,\r\n fontSize: 10,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'left',\r\n },\r\n showHead: 'never',\r\n margin: { left: 20 },\r\n });\r\n\r\n const fileTS = getTimeStamp();\r\n doc.save(`formulario-${typeForm}-${fileTS}.pdf`);\r\n };\r\n\r\n const renderForm = () => {\r\n let formPage = '';\r\n if (typeForm === 'papeletas-distritales') {\r\n formPage = (\r\n
\r\n \r\n \r\n \r\n

Provincia

\r\n \r\n setProvincia(provincia)\r\n }\r\n />\r\n
\r\n \r\n

Cantón

\r\n setCanton(canton)}\r\n />\r\n
\r\n \r\n

Distrito Administrativo

\r\n \r\n setDistrito(distrito)\r\n }\r\n />\r\n
\r\n
\r\n \r\n
\r\n );\r\n } else if (\r\n typeForm === 'papeletas-movimientos-cantonales'\r\n ) {\r\n formPage = (\r\n
\r\n \r\n \r\n \r\n

Provincia

\r\n \r\n setProvincia(provincia)\r\n }\r\n />\r\n
\r\n \r\n

Cantón

\r\n setCanton(canton)}\r\n />\r\n
\r\n \r\n

Movimiento

\r\n \r\n setMovimiento(movimiento)\r\n }\r\n />\r\n
\r\n
\r\n \r\n
\r\n );\r\n } else if (\r\n typeForm === 'papeletas-movimientos-provinciales'\r\n ) {\r\n formPage = (\r\n
\r\n \r\n \r\n \r\n

Provincia

\r\n \r\n setProvincia(provincia)\r\n }\r\n />\r\n
\r\n\r\n \r\n

Movimiento

\r\n \r\n setMovimiento(movimiento)\r\n }\r\n />\r\n
\r\n
\r\n \r\n
\r\n );\r\n } else if (\r\n typeForm === 'papeletas-movimientos-nacionales'\r\n ) {\r\n formPage = (\r\n
\r\n \r\n \r\n \r\n

Movimiento

\r\n \r\n setMovimiento(movimiento)\r\n }\r\n />\r\n
\r\n \r\n

Puesto

\r\n setPuesto(puesto)}\r\n />\r\n
\r\n
\r\n \r\n
\r\n );\r\n } else if (typeForm === 'papeletas-sectores') {\r\n formPage = (\r\n
\r\n \r\n \r\n \r\n

Sectores

\r\n setSector(sector)}\r\n />\r\n
\r\n
\r\n \r\n
\r\n );\r\n } else {\r\n formPage = '';\r\n }\r\n return formPage;\r\n };\r\n\r\n if (!Lodash.isEmpty(provincias)) {\r\n return (\r\n \r\n

FORMULARIO DE {getTitlePage()}

\r\n
\r\n {typeForm === 'presidente-sectores' ||\r\n typeForm === 'hoja-informacion' ? (\r\n ''\r\n ) : (\r\n

\r\n Seleccione la información requerida:\r\n

\r\n )}\r\n {typeForm === 'presidente-sectores' ||\r\n typeForm === 'hoja-informacion' ? (\r\n
\r\n \r\n \r\n \r\n DESCARGAR FORMULARIO\r\n \r\n \r\n \r\n
\r\n ) : (\r\n ''\r\n )}\r\n\r\n {renderForm()}\r\n\r\n {showPreview ? (\r\n
\r\n \r\n \r\n \r\n DESCARGAR FORMULARIO\r\n \r\n \r\n \r\n
\r\n ) : (\r\n ''\r\n )}\r\n \r\n );\r\n }\r\n return '';\r\n};\r\n\r\nFormularioAuth.propTypes = {};\r\n\r\nexport default withStyles(style)(FormularioAuth);\r\n","import { makeStyles } from '@material-ui/core/styles';\r\n\r\nconst drawerWidth = 340;\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n display: 'flex',\r\n },\r\n toolbar: {\r\n paddingRight: 24, // keep right padding when drawer closed\r\n },\r\n toolbarIcon: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n padding: '0 8px',\r\n ...theme.mixins.toolbar,\r\n },\r\n appBar: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n transition: theme.transitions.create(\r\n ['width', 'margin'],\r\n {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen,\r\n },\r\n ),\r\n },\r\n appBarShift: {\r\n marginLeft: drawerWidth,\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n transition: theme.transitions.create(\r\n ['width', 'margin'],\r\n {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.enteringScreen,\r\n },\r\n ),\r\n },\r\n menuButton: {\r\n marginRight: 36,\r\n },\r\n menuButtonHidden: {\r\n display: 'none',\r\n },\r\n title: {\r\n flexGrow: 1,\r\n textAlign: 'left',\r\n },\r\n drawerPaper: {\r\n position: 'relative !important',\r\n whiteSpace: 'nowrap',\r\n width: drawerWidth,\r\n transition: theme.transitions.create('width', {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.enteringScreen,\r\n }),\r\n },\r\n drawerPaperClose: {\r\n overflowX: 'hidden',\r\n transition: theme.transitions.create('width', {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen,\r\n }),\r\n width: theme.spacing(7),\r\n [theme.breakpoints.up('sm')]: {\r\n width: theme.spacing(9),\r\n },\r\n },\r\n appBarSpacer: theme.mixins.toolbar,\r\n content: {\r\n flexGrow: 1,\r\n height: '100vh',\r\n overflow: 'auto',\r\n },\r\n container: {\r\n paddingTop: theme.spacing(4),\r\n paddingBottom: theme.spacing(4),\r\n },\r\n paper: {\r\n padding: theme.spacing(2),\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n fixedHeight: {\r\n height: 240,\r\n },\r\n imgLogo: {\r\n width: 263,\r\n padding: 15,\r\n },\r\n cardIcon: {\r\n background: '#84BF48',\r\n },\r\n customChip: {\r\n marginRight: 10,\r\n },\r\n}));\r\n\r\nexport default useStyles;\r\n","import React from 'react';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nconst Copyright = () => {\r\n return (\r\n \r\n Copyright ©{process.env.REACT_APP_PDF_YEAR_REPORTS}{' '}\r\n Partido Liberación Nacional\r\n
\r\n TELEFONOS: 2549-5500 / 2549-5504 CENTRAL TELEFÓNICA\r\n {` ${new Date().getFullYear()}`}\r\n {'.'}\r\n \r\n );\r\n};\r\n\r\nexport default Copyright;\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useState, useEffect } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { useJwt } from 'react-jwt';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport ReceiptIcon from '@material-ui/icons/Receipt';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Storage from '../../Storage/Storage';\r\n\r\nimport { getTotalPapeletas } from '../../Core/Api/gestorApi';\r\n\r\nconst useStyles = makeStyles({\r\n depositContext: {\r\n flex: 1,\r\n },\r\n\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n fixedHeight: {\r\n height: 240,\r\n },\r\n\r\n cardIcon: {\r\n background: '#84BF48',\r\n },\r\n});\r\n\r\nexport default function Cards() {\r\n const classes = useStyles();\r\n const tokenStorage = Storage.instance;\r\n\r\n const { decodedToken } = useJwt(tokenStorage.getToken());\r\n\r\n const [totales, setTotales] = useState([]);\r\n\r\n useEffect(() => {\r\n async function fetchTotalesAPI() {\r\n if (decodedToken) {\r\n const allTotales = await getTotalPapeletas(\r\n decodedToken.num_cedula,\r\n );\r\n\r\n const dataTotales = Lodash.get(\r\n allTotales,\r\n ['data', 'response'],\r\n [],\r\n );\r\n setTotales(dataTotales);\r\n }\r\n }\r\n\r\n fetchTotalesAPI();\r\n }, [decodedToken]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Papeletas\r\n \r\n \r\n \r\n \r\n \r\n \r\n Distritales\r\n \r\n \r\n {totales.distritales} registros\r\n \r\n \r\n \r\n \r\n ver todas\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Mov. Cantonales\r\n \r\n \r\n {totales.cantonales} registros\r\n \r\n \r\n \r\n \r\n ver todas\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Mov. Provinciales\r\n \r\n \r\n {totales.provinciales} registros\r\n \r\n \r\n \r\n \r\n ver todas\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Mov. Nacionales\r\n \r\n \r\n {totales.nacionales} registros\r\n \r\n \r\n \r\n \r\n ver todas\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*\r\n \r\n \r\n \r\n \r\n Presidencia de Sectores\r\n \r\n \r\n {totales.presidenteSector} registros\r\n \r\n \r\n \r\n \r\n ver todas\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n Papeletas de Sectores\r\n \r\n \r\n {totales.sectoriales} registros\r\n \r\n \r\n \r\n \r\n ver todas\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst useStyles = makeStyles({\r\n container: {\r\n width: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n type: {\r\n padding: '5px 0',\r\n },\r\n});\r\n\r\nconst Loading = props => {\r\n const { label } = props;\r\n const classes = useStyles();\r\n return (\r\n
\r\n \r\n \r\n {label}\r\n \r\n
\r\n );\r\n};\r\n\r\nLoading.propTypes = {\r\n label: PropTypes.string.isRequired,\r\n};\r\n\r\nexport default Loading;\r\n","import Lodash from 'lodash';\r\n\r\nconst matchClass = (className, classToSearch) => {\r\n // const patt = new RegExp(`((${classToSearch})-([0-9]+)*)`);\r\n // const res = patt.test(className);\r\n return className.includes(classToSearch);\r\n};\r\n\r\nconst getUrlParams = url => {\r\n const regex = /[?&]([^=#]+)=([^&#]*)/g;\r\n const params = {};\r\n let match;\r\n // eslint-disable-next-line no-cond-assign\r\n while ((match = regex.exec(url))) {\r\n // eslint-disable-next-line prefer-destructuring\r\n params[match[1]] = match[2];\r\n }\r\n return params;\r\n};\r\n\r\nexport const formatData = _total => {\r\n return _total\r\n .toString()\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n};\r\n\r\nexport const getEstadoPapeleta = codStatus => {\r\n const estadosPapeleta = [\r\n { id: 2, description: 'Registrada' },\r\n { id: 3, description: 'Confección' },\r\n { id: 4, description: 'Prevención' },\r\n { id: 5, description: 'Anulada' },\r\n ];\r\n\r\n const estado = Lodash.find(estadosPapeleta, {\r\n id: codStatus,\r\n });\r\n\r\n return codStatus ? estado.description : '';\r\n};\r\n\r\nexport const urlHasResetCode = url => {\r\n const params = getUrlParams(url);\r\n const { oobCode } = params;\r\n if (oobCode !== undefined && oobCode.length > 0) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nexport const urlResetCode = url => {\r\n const params = getUrlParams(url);\r\n const { oobCode } = params;\r\n if (oobCode !== undefined && oobCode.length > 0) {\r\n return oobCode;\r\n }\r\n return '';\r\n};\r\n\r\nexport const formatDate = date => {\r\n const dateParts = date.split('/');\r\n const month = dateParts[1];\r\n const day = dateParts[0];\r\n const year = dateParts[2];\r\n\r\n return [year, month, day].join('-');\r\n};\r\n\r\nexport const splitInGroupOf = (arr, len) => {\r\n const chunks = [];\r\n let i = 0;\r\n const n = arr.length;\r\n while (i < n) {\r\n chunks.push(arr.slice(i, (i += len)));\r\n }\r\n return chunks;\r\n};\r\n\r\nexport default matchClass;\r\n","import React from 'react';\r\nimport Lodash from 'lodash';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Container from '@material-ui/core/Container';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Button from '@material-ui/core/Button';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport PropTypes from 'prop-types';\r\nimport Box from '@material-ui/core/Box';\r\nimport Copyright from '../Copyright/Copyright';\r\nimport Loading from '../../Components/Loading/Loading';\r\nimport { formatData } from '../../Core/Utils/Utils';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n divider: {\r\n backgroundColor: '#008945',\r\n margin: '20px 0',\r\n padding: 1,\r\n },\r\n}));\r\nconst MacroList = props => {\r\n const {\r\n listName,\r\n btnConfig,\r\n tableHeads,\r\n tableBody,\r\n tableFooter,\r\n uiStylesClasses,\r\n actionConfig,\r\n filters,\r\n dataEmpty,\r\n showTotals,\r\n sumTotalsColumns,\r\n displayCopyright,\r\n isCrudAvailable,\r\n } = props;\r\n const classes = useStyles();\r\n\r\n const renderHeaders = () => {\r\n let template = [];\r\n let item = {};\r\n\r\n if (tableHeads.length > 0) {\r\n for (let x = 0; x < tableHeads.length; x++) {\r\n item = tableHeads[x];\r\n template.push(\r\n \r\n {item.name}\r\n ,\r\n );\r\n }\r\n\r\n template.push(\r\n  ,\r\n );\r\n\r\n template = (\r\n \r\n {template}\r\n \r\n );\r\n }\r\n\r\n return template;\r\n };\r\n\r\n const renderTableCells = _items => {\r\n const template = [];\r\n const itemProps = Object.getOwnPropertyNames(_items);\r\n\r\n if (itemProps.length) {\r\n for (let x = 0; x < itemProps.length; x++) {\r\n if (\r\n x + 1 !== itemProps.length ||\r\n actionConfig().length === 0\r\n ) {\r\n template.push(\r\n \r\n {_items[itemProps[x]] === 'Inscrita'\r\n ? 'Confección'\r\n : _items[itemProps[x]]}\r\n ,\r\n );\r\n }\r\n }\r\n }\r\n\r\n return template;\r\n };\r\n\r\n const renderItemActions = _currentRow => {\r\n const cr = Lodash.get(_currentRow, ['cod_estado'], 0);\r\n\r\n let options = [];\r\n const actions = actionConfig();\r\n\r\n options = actions.map(option => {\r\n let showOpt = true;\r\n\r\n if (cr === 'Registrada' && option.key === 'edit') {\r\n showOpt = cr === 'Anulada';\r\n } else if (\r\n cr === 'Anulada' &&\r\n option.key === 'imprimir'\r\n ) {\r\n showOpt = false;\r\n } else if (\r\n cr === 'Inscrita' &&\r\n option.key === 'imprimir'\r\n ) {\r\n showOpt = false;\r\n } else if (\r\n cr === 'Anulada' &&\r\n option.key === 'remove'\r\n ) {\r\n showOpt = false;\r\n } else if (\r\n cr === 'Anulada' &&\r\n option.key === 'edit'\r\n ) {\r\n showOpt = false;\r\n } else if (\r\n cr === 'Prevención' &&\r\n option.key === 'edit'\r\n ) {\r\n showOpt = false;\r\n }\r\n\r\n return showOpt ? (\r\n \r\n {\r\n if (option.clickHandler) {\r\n option.clickHandler(_currentRow);\r\n }\r\n }}\r\n >\r\n {option.icon}\r\n \r\n \r\n ) : null;\r\n });\r\n\r\n return (\r\n \r\n
\r\n {options}\r\n
\r\n
\r\n );\r\n };\r\n\r\n const renderTableData = () => {\r\n let template = [];\r\n let row = {};\r\n\r\n if (tableBody.length > 0) {\r\n for (let x = 0; x < tableBody.length; x++) {\r\n row = tableBody[x];\r\n template.push(\r\n \r\n {renderTableCells(row)}\r\n {renderItemActions(row)}\r\n ,\r\n );\r\n }\r\n\r\n template = (\r\n {template}\r\n );\r\n }\r\n\r\n return template;\r\n };\r\n\r\n const renderTableTotals = () => {\r\n let template = [];\r\n let totalMonto = 0;\r\n for (let x = 0; x < tableBody.length; x++) {\r\n if (listName === 'Consulta de Débitos') {\r\n totalMonto += parseFloat(\r\n tableBody[x].monto.replace(/,/g, ''),\r\n );\r\n } else {\r\n totalMonto += parseFloat(\r\n tableBody[x].montoDeposito.replace(/,/g, ''),\r\n );\r\n }\r\n }\r\n if (tableBody.length > 0) {\r\n template = (\r\n \r\n Registros: {tableBody.length} | Total: ¢\r\n {`${formatData(totalMonto)}.00`}\r\n \r\n );\r\n }\r\n\r\n return template;\r\n };\r\n\r\n const renderRegisters = () => {\r\n let template = [];\r\n\r\n if (tableBody.length > 0) {\r\n template = (\r\n \r\n # Registros: {tableBody.length}\r\n \r\n );\r\n }\r\n\r\n return template;\r\n };\r\n\r\n const renderSumTotalsColumns = () => {\r\n let template = [];\r\n let row = {};\r\n\r\n if (tableFooter.length > 0) {\r\n for (let x = 0; x < tableFooter.length; x++) {\r\n row = tableFooter[x];\r\n template.push(\r\n \r\n {renderTableCells(row)}\r\n {renderItemActions(row)}\r\n ,\r\n );\r\n }\r\n\r\n template = (\r\n {template}\r\n );\r\n }\r\n\r\n return template;\r\n };\r\n\r\n const renderTable = () => {\r\n const errorMsj = 'No se encontraron registros';\r\n let template = ;\r\n\r\n if (!dataEmpty) {\r\n if (tableHeads.length > 0 && tableBody.length > 0) {\r\n template = (\r\n \r\n {showTotals\r\n ? [\r\n renderHeaders(),\r\n renderTableData(),\r\n renderTableTotals(),\r\n ]\r\n : [\r\n renderHeaders(),\r\n renderTableData(),\r\n sumTotalsColumns\r\n ? renderSumTotalsColumns()\r\n : null,\r\n renderRegisters(),\r\n ]}\r\n
\r\n );\r\n }\r\n } else {\r\n template = (\r\n \r\n {errorMsj}\r\n \r\n );\r\n }\r\n\r\n return template;\r\n };\r\n\r\n React.useEffect(() => {\r\n // console.log(tableBody);\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {listName}\r\n {isCrudAvailable && (\r\n btnConfig.event()}\r\n >\r\n {btnConfig.name}\r\n \r\n )}\r\n \r\n {filters || <>}\r\n \r\n {renderTable()}\r\n
\r\n  \r\n
\r\n
\r\n
\r\n
\r\n {displayCopyright && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nMacroList.defaultProps = {\r\n filters: null,\r\n showTotals: false,\r\n sumTotalsColumns: false,\r\n displayCopyright: true,\r\n isCrudAvailable: true,\r\n tableFooter: [],\r\n};\r\n\r\nMacroList.propTypes = {\r\n listName: PropTypes.string.isRequired,\r\n filters: PropTypes.shape({}),\r\n btnConfig: PropTypes.instanceOf(Object).isRequired,\r\n actionConfig: PropTypes.instanceOf(Function).isRequired,\r\n tableHeads: PropTypes.instanceOf(Array).isRequired,\r\n tableBody: PropTypes.instanceOf(Array).isRequired,\r\n tableFooter: PropTypes.instanceOf(Array),\r\n uiStylesClasses: PropTypes.instanceOf(Object).isRequired,\r\n dataEmpty: PropTypes.bool.isRequired,\r\n showTotals: PropTypes.bool,\r\n sumTotalsColumns: PropTypes.bool,\r\n displayCopyright: PropTypes.bool,\r\n isCrudAvailable: PropTypes.bool,\r\n};\r\n\r\nexport default MacroList;\r\n","import axios from 'axios';\r\n\r\nconst axiosInstance = axios.create({\r\n baseURL: process.env.REACT_APP_API_BASE_URL,\r\n responseType: 'json',\r\n});\r\n\r\nconst getPapeletaDistritalByCod = (_ced, _codDistrital) => {\r\n return axiosInstance.get(\r\n `papeletaDistrital/getByCodPapeleta/${_ced}/${_codDistrital}`,\r\n );\r\n};\r\n\r\nconst getAllPapeletasByUserId = _ced => {\r\n return axiosInstance.get(`papeletaDistrital/${_ced}`);\r\n};\r\n\r\nconst declinePapeleta = params => {\r\n const { codPapeleta, cedulaGestor, consecutivo } = params;\r\n\r\n const info = {\r\n codPapeleta,\r\n cedulaGestor,\r\n consecutivo,\r\n };\r\n\r\n return axiosInstance.post(\r\n `papeletaDistrital/anular`,\r\n info,\r\n );\r\n};\r\n\r\nexport default {\r\n getSpecificDistrital: getPapeletaDistritalByCod,\r\n getDistritales: getAllPapeletasByUserId,\r\n actionDeclinePapeleta: declinePapeleta,\r\n};\r\n","import axios from 'axios';\r\n// import Lodash from 'lodash';\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API_BASE_URL;\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const newDeposito = params => {\r\n const { depositoData } = params;\r\n\r\n const infoDeposito = {\r\n deposito: depositoData,\r\n };\r\n\r\n return axios.post(\r\n '/depositos/saveDepositoED',\r\n infoDeposito,\r\n );\r\n};\r\n\r\nexport const getDataComprobante = params => {\r\n return axios.post('/comprobante/getInfoEd', params);\r\n};\r\n","const distritalesInitValues = {\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n papeleta: 999,\r\n delegado1: '',\r\n delegado2: '',\r\n delegado3: '',\r\n delegado4: '',\r\n delegado5: '',\r\n delegado6: '',\r\n delegado7: '',\r\n delegado8: '',\r\n delegado9: '',\r\n presidente: '',\r\n vicePresidente: '',\r\n secretario: '',\r\n subSecretario: '',\r\n tesoreria: '',\r\n subTesoreria: '',\r\n propietario: '',\r\n};\r\nconst cantonalesInitValues = {\r\n provincia: 9,\r\n canton: 999,\r\n movimiento: 9,\r\n papeleta: 999,\r\n cantonal1: '',\r\n cantonal2: '',\r\n cantonal3: '',\r\n cantonal4: '',\r\n cantonal5: '',\r\n cantonal6: '',\r\n cantonal7: '',\r\n};\r\nconst provincialesInitValues = {\r\n provincia: 9,\r\n movimiento: 9,\r\n papeleta: 999,\r\n provincial1: '',\r\n provincial2: '',\r\n provincial3: '',\r\n provincial4: '',\r\n};\r\nconst nacionalesInitValues = {\r\n movimiento: 9,\r\n puesto: 9,\r\n nacional1: '',\r\n nacional2: '',\r\n nacional3: '',\r\n};\r\nconst presidenteSectorInitValues = {\r\n presidente: '',\r\n};\r\nconst sectorialesInitValues = {\r\n sector: 9,\r\n sectorial1: '',\r\n sectorial2: '',\r\n sectorial3: '',\r\n};\r\nconst initListDelegados = [\r\n {\r\n id: 1,\r\n lugar: 1,\r\n numPuesto: 1,\r\n fieldName: 'delegado1',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: false,\r\n filled: false,\r\n },\r\n {\r\n id: 2,\r\n lugar: 2,\r\n numPuesto: 2,\r\n fieldName: 'delegado2',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n {\r\n id: 3,\r\n lugar: 3,\r\n numPuesto: 3,\r\n fieldName: 'delegado3',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n {\r\n id: 4,\r\n lugar: 4,\r\n numPuesto: 4,\r\n fieldName: 'delegado4',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n {\r\n id: 5,\r\n lugar: 5,\r\n numPuesto: 5,\r\n fieldName: 'delegado5',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n {\r\n id: 6,\r\n lugar: 6,\r\n numPuesto: 6,\r\n fieldName: 'delegado6',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n {\r\n id: 7,\r\n lugar: 7,\r\n numPuesto: 7,\r\n fieldName: 'delegado7',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n {\r\n id: 8,\r\n lugar: 8,\r\n numPuesto: 8,\r\n fieldName: 'delegado8',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n {\r\n id: 9,\r\n lugar: 9,\r\n numPuesto: 9,\r\n fieldName: 'delegado9',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n];\r\n\r\nconst initListComite = [\r\n {\r\n id: 1,\r\n lugar: 'Presidente',\r\n numPuesto: 10,\r\n fieldName: 'presidente',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: false,\r\n filled: false,\r\n },\r\n {\r\n id: 2,\r\n lugar: 'Vicepresidente',\r\n numPuesto: 11,\r\n fieldName: 'vicePresidente',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n {\r\n id: 3,\r\n lugar: 'Secretario',\r\n numPuesto: 12,\r\n fieldName: 'secretario',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n {\r\n id: 4,\r\n lugar: 'Subsecretario',\r\n numPuesto: 13,\r\n fieldName: 'subSecretario',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n {\r\n id: 5,\r\n numPuesto: 14,\r\n lugar: 'Tesorería',\r\n fieldName: 'tesoreria',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n {\r\n id: 6,\r\n lugar: 'Subtesorería',\r\n numPuesto: 15,\r\n fieldName: 'subTesoreria',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n];\r\n\r\nconst initListCandidatosFiscalia = [\r\n {\r\n id: 1,\r\n lugar: 'Propietario',\r\n numPuesto: 16,\r\n fieldName: 'propietario',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: false,\r\n filled: false,\r\n },\r\n {\r\n id: 2,\r\n lugar: 'Suplente',\r\n numPuesto: 17,\r\n fieldName: 'suplente',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n];\r\n\r\nconst initListComiteCantonal = [\r\n {\r\n id: 1,\r\n lugar: 1,\r\n numPuesto: 1,\r\n fieldName: 'cantonal1',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: false,\r\n filled: false,\r\n },\r\n {\r\n id: 2,\r\n lugar: 2,\r\n numPuesto: 2,\r\n fieldName: 'cantonal2',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n {\r\n id: 3,\r\n lugar: 3,\r\n numPuesto: 3,\r\n fieldName: 'cantonal3',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n {\r\n id: 4,\r\n lugar: 4,\r\n numPuesto: 4,\r\n fieldName: 'cantonal4',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n {\r\n id: 5,\r\n lugar: 5,\r\n numPuesto: 5,\r\n fieldName: 'cantonal5',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n {\r\n id: 6,\r\n lugar: 6,\r\n numPuesto: 6,\r\n fieldName: 'cantonal6',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n {\r\n id: 7,\r\n lugar: 7,\r\n numPuesto: 7,\r\n fieldName: 'cantonal7',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n];\r\n\r\nconst initlistComiteProvincial = [\r\n {\r\n id: 1,\r\n lugar: 1,\r\n numPuesto: 1,\r\n fieldName: 'provincial1',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: false,\r\n filled: false,\r\n },\r\n {\r\n id: 2,\r\n lugar: 2,\r\n numPuesto: 2,\r\n fieldName: 'provincial2',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n {\r\n id: 3,\r\n lugar: 3,\r\n numPuesto: 3,\r\n fieldName: 'provincial3',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n {\r\n id: 4,\r\n lugar: 4,\r\n numPuesto: 4,\r\n fieldName: 'provincial4',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n];\r\n\r\nconst initListComiteNacional = [\r\n {\r\n id: 1,\r\n lugar: 1,\r\n numPuesto: 1,\r\n fieldName: 'nacional1',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: false,\r\n filled: false,\r\n },\r\n {\r\n id: 2,\r\n lugar: 2,\r\n numPuesto: 2,\r\n fieldName: 'nacional2',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n {\r\n id: 3,\r\n lugar: 3,\r\n numPuesto: 3,\r\n fieldName: 'nacional3',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n },\r\n];\r\n\r\nconst initlistPresiSector = [\r\n {\r\n id: 1,\r\n lugar: 1,\r\n numPuesto: 1,\r\n fieldName: 'presidente',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: false,\r\n filled: false,\r\n },\r\n];\r\n\r\nconst initListComiteSectorial = [\r\n {\r\n id: 1,\r\n lugar: 1,\r\n numPuesto: 1,\r\n fieldName: 'sectorial1',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: false,\r\n filled: false,\r\n urlFile: '',\r\n nameFile: '',\r\n },\r\n {\r\n id: 2,\r\n lugar: 2,\r\n numPuesto: 2,\r\n fieldName: 'sectorial2',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n urlFile: '',\r\n nameFile: '',\r\n },\r\n {\r\n id: 3,\r\n lugar: 3,\r\n numPuesto: 3,\r\n fieldName: 'sectorial3',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n urlFile: '',\r\n nameFile: '',\r\n },\r\n {\r\n id: 4,\r\n lugar: 4,\r\n numPuesto: 4,\r\n fieldName: 'sectorial4',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: true,\r\n filled: false,\r\n urlFile: '',\r\n nameFile: '',\r\n },\r\n];\r\n\r\nconst initListAddDeposito = [\r\n {\r\n id: 1,\r\n lugar: 1,\r\n numPuesto: 1,\r\n fieldName: 'depositante',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: false,\r\n filled: false,\r\n },\r\n];\r\n\r\nconst initlistPapeletaSector = [\r\n {\r\n id: 1,\r\n lugar: 1,\r\n numPuesto: 1,\r\n fieldName: 'candidato1',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: false,\r\n filled: false,\r\n },\r\n {\r\n id: 2,\r\n lugar: 2,\r\n numPuesto: 2,\r\n fieldName: 'candidato2',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: false,\r\n filled: false,\r\n },\r\n {\r\n id: 3,\r\n lugar: 3,\r\n numPuesto: 3,\r\n fieldName: 'candidato3',\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: '',\r\n enabled: false,\r\n filled: false,\r\n },\r\n];\r\n\r\nconst delegadosMOrder = [\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n];\r\nconst delegadosFOrder = [\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n];\r\n\r\nconst comiteMOrder = [\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n];\r\n\r\nconst comiteFOrder = [\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n];\r\n\r\nconst fiscalesMOrder = [\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n];\r\n\r\nconst fiscalesFOrder = [\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n];\r\n\r\nconst comiteCantonalMOrder = [\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n];\r\n\r\nconst comiteCantonalFOrder = [\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n];\r\n\r\nconst comiteProvincialMOrder = [\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n];\r\n\r\nconst comiteProvincialFOrder = [\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n];\r\n\r\nconst comiteNacionalMOrder = [\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n];\r\n\r\nconst comiteNacionalFOrder = [\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n];\r\n\r\nconst presiSectorMOrder = [\r\n {\r\n sexo: 'M',\r\n },\r\n];\r\nconst presiSectorFOrder = [\r\n {\r\n sexo: 'F',\r\n },\r\n];\r\nconst comiteSectorMOrder = [\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n];\r\nconst comiteSectorFOrder = [\r\n {\r\n sexo: 'F',\r\n },\r\n {\r\n sexo: 'M',\r\n },\r\n {\r\n sexo: 'F',\r\n },\r\n];\r\n\r\nconst puestosDelegadosDistritales = [\r\n {\r\n codigo: 1,\r\n descripcion: '# 1',\r\n },\r\n {\r\n codigo: 2,\r\n descripcion: '# 2',\r\n },\r\n {\r\n codigo: 3,\r\n descripcion: '# 3',\r\n },\r\n {\r\n codigo: 4,\r\n descripcion: '# 4',\r\n },\r\n {\r\n codigo: 5,\r\n descripcion: '# 5',\r\n },\r\n {\r\n codigo: 6,\r\n descripcion: '# 6',\r\n },\r\n {\r\n codigo: 7,\r\n descripcion: '# 7',\r\n },\r\n {\r\n codigo: 8,\r\n descripcion: '# 8',\r\n },\r\n {\r\n codigo: 9,\r\n descripcion: '# 9',\r\n },\r\n {\r\n codigo: 10,\r\n descripcion: 'PRESIDENCIA',\r\n },\r\n {\r\n codigo: 11,\r\n descripcion: 'VICEPRESIDENCIA',\r\n },\r\n {\r\n codigo: 12,\r\n descripcion: 'SECRETARIO(A)',\r\n },\r\n {\r\n codigo: 13,\r\n descripcion: 'SUBSECRETARIO(A)',\r\n },\r\n {\r\n codigo: 14,\r\n descripcion: 'TESORERO(A)',\r\n },\r\n {\r\n codigo: 15,\r\n descripcion: 'SUBTESORERO(A)',\r\n },\r\n {\r\n codigo: 16,\r\n descripcion: 'FISCAL PROPIETARIO',\r\n },\r\n {\r\n codigo: 17,\r\n descripcion: 'FISCAL SUPLENTE',\r\n },\r\n];\r\n\r\nconst puestosComiteCantonal = [\r\n {\r\n codigo: 1,\r\n descripcion: '# 1 (PRESID)',\r\n },\r\n {\r\n codigo: 2,\r\n descripcion: '# 2',\r\n },\r\n {\r\n codigo: 3,\r\n descripcion: '# 3',\r\n },\r\n {\r\n codigo: 4,\r\n descripcion: '# 4',\r\n },\r\n {\r\n codigo: 5,\r\n descripcion: '# 5',\r\n },\r\n {\r\n codigo: 6,\r\n descripcion: '# 6',\r\n },\r\n {\r\n codigo: 7,\r\n descripcion: '# 7',\r\n },\r\n];\r\n\r\nconst estadosDistritales = [\r\n {\r\n codigo: 2,\r\n estado: 'Registrada',\r\n },\r\n {\r\n codigo: 3,\r\n estado: 'Inscrita',\r\n },\r\n {\r\n codigo: 4,\r\n estado: 'Prevención',\r\n },\r\n {\r\n codigo: 5,\r\n estado: 'Anulada',\r\n },\r\n];\r\n\r\nconst movimientosCantonales = [\r\n {\r\n codigo: 1,\r\n movimiento: 'Mujeres',\r\n },\r\n {\r\n codigo: 2,\r\n movimiento: 'Juventud',\r\n },\r\n {\r\n codigo: 3,\r\n movimiento: 'Cooperativo',\r\n },\r\n {\r\n codigo: 4,\r\n movimiento: 'Trabajadores',\r\n },\r\n];\r\n\r\nconst movimientosSectoriales = [\r\n {\r\n codigo: 2,\r\n sector: 'Profesional',\r\n },\r\n {\r\n codigo: 3,\r\n sector: 'Magisterial',\r\n },\r\n {\r\n codigo: 4,\r\n sector: 'Empesarial',\r\n },\r\n { sector: 'Deportivo', codigo: 5 },\r\n { sector: 'Cultural', codigo: 6 },\r\n { sector: 'Solidarismo', codigo: 7 },\r\n { sector: 'Comunalismo', codigo: 8 },\r\n {\r\n sector: 'Personas con Discapacidad',\r\n codigo: 9,\r\n },\r\n { sector: 'Agroalimentario', codigo: 10 },\r\n];\r\n\r\nconst puestosMesa = [\r\n {\r\n codigo: 3,\r\n descripcion: 'Propietario',\r\n },\r\n {\r\n codigo: 4,\r\n descripcion: 'Suplente',\r\n },\r\n];\r\n\r\nconst puestosFiscalesMesa = [\r\n {\r\n codigo: 5,\r\n descripcion: 'Propietario',\r\n },\r\n {\r\n codigo: 6,\r\n descripcion: 'Suplente',\r\n },\r\n];\r\n\r\nconst puestosFiscalGeneral = [\r\n {\r\n codigo: 7,\r\n descripcion: 'Fiscal General',\r\n },\r\n];\r\n\r\nconst puestosNacionales = [\r\n {\r\n codigo: 1,\r\n descripcion: 'Presidente',\r\n },\r\n {\r\n codigo: 2,\r\n descripcion: 'Vicepresidente',\r\n },\r\n {\r\n codigo: 3,\r\n descripcion: 'Secretario',\r\n },\r\n];\r\n\r\nconst puestosRegistrosElectorales = [\r\n {\r\n codigo: 1,\r\n descripcion: 'Presid.',\r\n },\r\n {\r\n codigo: 2,\r\n descripcion: 'Secre.',\r\n },\r\n];\r\n\r\nconst consts = {\r\n distritalesInitValues,\r\n cantonalesInitValues,\r\n provincialesInitValues,\r\n nacionalesInitValues,\r\n presidenteSectorInitValues,\r\n sectorialesInitValues,\r\n initListDelegados,\r\n initListComite,\r\n initListCandidatosFiscalia,\r\n initListComiteCantonal,\r\n initlistComiteProvincial,\r\n initListComiteNacional,\r\n initListComiteSectorial,\r\n initListAddDeposito,\r\n initlistPresiSector,\r\n initlistPapeletaSector,\r\n delegadosMOrder,\r\n delegadosFOrder,\r\n comiteMOrder,\r\n comiteFOrder,\r\n fiscalesMOrder,\r\n fiscalesFOrder,\r\n comiteCantonalMOrder,\r\n comiteCantonalFOrder,\r\n comiteProvincialMOrder,\r\n comiteProvincialFOrder,\r\n comiteNacionalMOrder,\r\n comiteNacionalFOrder,\r\n presiSectorMOrder,\r\n presiSectorFOrder,\r\n comiteSectorFOrder,\r\n comiteSectorMOrder,\r\n estadosDistritales,\r\n movimientosCantonales,\r\n movimientosSectoriales,\r\n puestosMesa,\r\n puestosFiscalesMesa,\r\n puestosFiscalGeneral,\r\n puestosNacionales,\r\n puestosRegistrosElectorales,\r\n puestosDelegadosDistritales,\r\n puestosComiteCantonal,\r\n};\r\n\r\nexport default consts;\r\n","import React from 'react';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Grid } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {\r\n flexGrow: 1,\r\n '& .MuiTextField-root': {\r\n border: 0,\r\n marginBottom: '20px',\r\n width: '25ch',\r\n },\r\n '& .MuiOutlinedInput-input': {\r\n padding: '10px',\r\n },\r\n },\r\n filterInput: {\r\n marginBottom: '0 !important',\r\n paddingLeft: '10px !important',\r\n },\r\n grid: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n paddingRight: '0 !important',\r\n paddingBottom: '0 !important',\r\n },\r\n}));\r\n\r\nconst RegistrosFilter = props => {\r\n const classes = useStyles();\r\n const { config } = props;\r\n\r\n const renderFilters = () => {\r\n return (\r\n \r\n \r\n {config.map(currentFilter => (\r\n \r\n {\r\n if (\r\n typeof currentFilter.action ===\r\n 'function'\r\n ) {\r\n await currentFilter.action(event);\r\n }\r\n }}\r\n />\r\n \r\n ))}\r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n \r\n {renderFilters()}\r\n \r\n \r\n );\r\n};\r\n\r\nRegistrosFilter.propTypes = {\r\n config: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n label: PropTypes.string.isRequired,\r\n action: PropTypes.func.isRequired,\r\n value: PropTypes.string.isRequired,\r\n responsiveSize: PropTypes.shape({\r\n xs: PropTypes.number.isRequired,\r\n sm: PropTypes.number,\r\n md: PropTypes.number,\r\n lg: PropTypes.number,\r\n }),\r\n inputId: PropTypes.string.isRequired,\r\n }),\r\n ).isRequired,\r\n};\r\n\r\nexport default RegistrosFilter;\r\n","import React from 'react';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport { Button, Divider } from '@material-ui/core';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nconst useStyles = makeStyles(() => ({\r\n global: {\r\n padding: '12px 24px',\r\n },\r\n divider: {\r\n backgroundColor: '#008945',\r\n margin: '0 auto',\r\n padding: 1,\r\n width: '96%',\r\n },\r\n removeBtn: {\r\n border: '1px solid',\r\n borderColor: '#CC0B00',\r\n color: '#CC0B00',\r\n '&:hover, &:focus': {\r\n backgroundColor: '#DA2229 !important',\r\n color: '#fff !important',\r\n },\r\n '&:disabled': {\r\n borderColor: 'rgba(0, 0, 0, 0.26)',\r\n },\r\n },\r\n submitBtn: {},\r\n simpleBtn: {\r\n border: '1px solid',\r\n borderColor: '#028945',\r\n color: '#028945',\r\n '&:hover, &:focus': {\r\n backgroundColor: '#028945 !important',\r\n color: '#fff !important',\r\n },\r\n },\r\n}));\r\n\r\nconst PLNDialog = props => {\r\n const classes = useStyles();\r\n const { bodymessage, title, buttons } = props;\r\n\r\n const colors = {\r\n submit: classes.submitBtn,\r\n remove: classes.removeBtn,\r\n simple: classes.simpleBtn,\r\n };\r\n\r\n const renderButtons = () => {\r\n if (buttons.length > 0) {\r\n return buttons.map(button => {\r\n return (\r\n {\r\n _e.preventDefault();\r\n\r\n if (\r\n typeof button.clickHander === 'function'\r\n ) {\r\n button.clickHander();\r\n } else {\r\n throw new Error('Click event is missing!');\r\n }\r\n }}\r\n >\r\n {button.title}\r\n \r\n );\r\n });\r\n }\r\n\r\n return <>;\r\n };\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n {bodymessage}\r\n \r\n \r\n \r\n {renderButtons()}\r\n \r\n \r\n );\r\n};\r\n\r\nPLNDialog.propTypes = {\r\n bodymessage: PropTypes.string.isRequired,\r\n title: PropTypes.string.isRequired,\r\n buttons: PropTypes.instanceOf(Array).isRequired,\r\n};\r\n\r\nexport default PLNDialog;\r\n","/* eslint-disable max-len */\r\nimport { jsPDF } from 'jspdf';\r\nimport 'jspdf-autotable';\r\nimport { getLogoPLN } from './Logo';\r\nimport { splitInGroupOf } from './Utils';\r\n\r\nconst getTimeStamp = () => {\r\n const now = new Date();\r\n return `${\r\n now.getMonth() + 1\r\n }/${now.getDate()}/${now.getFullYear()} ${now.getHours()}:${\r\n now.getMinutes() < 10\r\n ? `0${now.getMinutes()}`\r\n : now.getMinutes()\r\n }:${\r\n now.getSeconds() < 10\r\n ? `0${now.getSeconds()}`\r\n : now.getSeconds()\r\n }`;\r\n};\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const generateComprobante = (\r\n titleComprobante,\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montosInfo,\r\n) => {\r\n // eslint-disable-next-line new-cap\r\n const doc = new jsPDF('p', 'px', 'letter');\r\n\r\n const imgData = getLogoPLN();\r\n doc.addImage(imgData, 'JPEG', 30, 50);\r\n\r\n // ENCABEZADO DEL DOCUMENTO\r\n doc.setFont('times', 'bold');\r\n doc.text(200, 45, 'PARTIDO LIBERACIÓN NACIONAL');\r\n doc.setFontSize(12);\r\n doc.text(200, 60, 'Tribunal de Elecciones Internas');\r\n doc.setFont('times', 'normal');\r\n doc.text(\r\n 200,\r\n 75,\r\n `${titleComprobante} Periodo ${process.env.REACT_APP_PDF_YEAR_REPORTS}`,\r\n );\r\n doc.setFont('times', 'normal');\r\n doc.text(200, 90, 'Comprobante de Inscripción');\r\n\r\n const columns = [\r\n 'PROVINCIA',\r\n 'CANTÓN',\r\n 'DISTRITO',\r\n 'N° PAPELETA',\r\n ];\r\n\r\n const datos1 = [\r\n [\r\n generalInfo.provincia,\r\n generalInfo.canton,\r\n generalInfo.distrito,\r\n generalInfo.papeleta,\r\n ],\r\n ];\r\n\r\n const typeTable1 = 'grid';\r\n const showTheHeader = true;\r\n\r\n doc.autoTable({\r\n head: [columns],\r\n body: datos1,\r\n theme: typeTable1,\r\n startY: 110,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 2: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 3: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n fontSize: 30,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [238, 238, 238],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: showTheHeader,\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns2 = ['Fecha', 'Consecutivo'];\r\n const datos2 = [\r\n [\r\n `FECHA INSCRIPCIÓN: ${generalInfo.fecha}`,\r\n `CONSECUTIVO: ${generalInfo.consecutivo}`,\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [columns2],\r\n body: datos2,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 0,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block1 = ['Title'];\r\n const titleBlock = [\r\n ['CANDIDATOS(AS) DELEGADOS(AS) DISTRITALES'],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [block1],\r\n body: titleBlock,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [221, 221, 221],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const headerblock1 = ['LUGAR', 'CEDULA', 'NOMBRE'];\r\n\r\n doc.autoTable({\r\n head: [headerblock1],\r\n body: candidatosInfo.delegados,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 2: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [238, 238, 238],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: true,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block2 = ['Title'];\r\n const titleBlock2 = [\r\n ['CANDIDATOS(AS) PARA EL COMITÉ EJECUTIVO DISTRITAL'],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [block2],\r\n body: titleBlock2,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [221, 221, 221],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n doc.autoTable({\r\n head: [headerblock1],\r\n body: candidatosInfo.comite,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 2: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [238, 238, 238],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: true,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block3 = ['Title'];\r\n const titleBlock3 = [['CANDIDATOS(AS) PARA LA FISCALÍA']];\r\n\r\n doc.autoTable({\r\n head: [block3],\r\n body: titleBlock3,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [221, 221, 221],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n doc.autoTable({\r\n head: [headerblock1],\r\n body: candidatosInfo.fiscales,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 2: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [238, 238, 238],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: true,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block4 = ['Gestor'];\r\n const titleBlock4 = [\r\n ['GESTOR ANTE EL TRIBUNAL DE ELECCIONES INTERNAS'],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [block4],\r\n body: titleBlock4,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [221, 221, 221],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n fontWeight: 'bold',\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const headerblock4 = ['NOMBRE', 'CÉDULA'];\r\n const blankFields = [\r\n ['NOMBRE', gestorInfo.cedula],\r\n ['CÉDULA', gestorInfo.nombre],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [headerblock4],\r\n body: blankFields,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [238, 238, 238],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block5 = ['Total'];\r\n const titleBlock5 = [\r\n ['TOTAL A CANCELAR EN LA INSCRIPCIÓN'],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [block5],\r\n body: titleBlock5,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [221, 221, 221],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n fontWeight: 'bold',\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const headerblock5 = ['NOMBRE', 'CÉDULA'];\r\n const blankFields2 = [\r\n ['INSCRIPCIÓN DE PAPELETA', montosInfo.papeleta],\r\n ['MEMBRESÍAS', montosInfo.membresia],\r\n ['TOTAL', montosInfo.total],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [headerblock5],\r\n body: blankFields2,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [238, 238, 238],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const fileTS = getTimeStamp();\r\n doc.save(`COMPROBANTE-DISTRITALES-${fileTS}.pdf`);\r\n};\r\n\r\nexport const generateComprobanteCantonal = (\r\n titleComprobante,\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montosInfo,\r\n) => {\r\n // eslint-disable-next-line new-cap\r\n const doc = new jsPDF('p', 'px', 'letter');\r\n\r\n const imgData = getLogoPLN();\r\n doc.addImage(imgData, 'JPEG', 30, 50);\r\n\r\n // ENCABEZADO DEL DOCUMENTO\r\n doc.setFont('times', 'bold');\r\n doc.text(200, 45, 'PARTIDO LIBERACIÓN NACIONAL');\r\n doc.setFontSize(12);\r\n doc.text(200, 60, 'Tribunal de Elecciones Internas');\r\n doc.setFont('times', 'normal');\r\n doc.text(\r\n 200,\r\n 75,\r\n `${titleComprobante} ${process.env.REACT_APP_PDF_YEAR_REPORTS}`,\r\n );\r\n doc.setFont('times', 'normal');\r\n doc.text(200, 90, 'Comprobante de Inscripción');\r\n\r\n const columns = [\r\n 'MOVIMIENTO',\r\n 'PROVINCIA',\r\n 'CANTÓN',\r\n 'N° PAPELETA',\r\n ];\r\n\r\n const datos1 = [\r\n [\r\n generalInfo.movimiento,\r\n generalInfo.provincia,\r\n generalInfo.canton,\r\n generalInfo.papeleta,\r\n ],\r\n ];\r\n\r\n const typeTable1 = 'grid';\r\n const showTheHeader = true;\r\n\r\n doc.autoTable({\r\n head: [columns],\r\n body: datos1,\r\n theme: typeTable1,\r\n startY: 110,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 2: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 3: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n fontSize: 30,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [238, 238, 238],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: showTheHeader,\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns2 = ['Fecha', 'Consecutivo'];\r\n const datos2 = [\r\n [\r\n `FECHA INSCRIPCIÓN: ${generalInfo.fecha}`,\r\n `CONSECUTIVO: ${generalInfo.consecutivo}`,\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [columns2],\r\n body: datos2,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 0,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block1 = ['Title'];\r\n const titleBlock = [['COMITÉ POLÍTICO CANTONAL']];\r\n\r\n doc.autoTable({\r\n head: [block1],\r\n body: titleBlock,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [221, 221, 221],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const headerblock1 = ['LUGAR', 'CEDULA', 'NOMBRE'];\r\n\r\n doc.autoTable({\r\n head: [headerblock1],\r\n body: candidatosInfo.comite,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 2: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [238, 238, 238],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: true,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block4 = ['Gestor'];\r\n const titleBlock4 = [\r\n ['GESTOR ANTE EL TRIBUNAL DE ELECCIONES INTERNAS'],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [block4],\r\n body: titleBlock4,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [221, 221, 221],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n fontWeight: 'bold',\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const headerblock4 = ['NOMBRE', 'CÉDULA'];\r\n const blankFields = [\r\n ['NOMBRE', gestorInfo.cedula],\r\n ['CÉDULA', gestorInfo.nombre],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [headerblock4],\r\n body: blankFields,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [238, 238, 238],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block5 = ['Total'];\r\n const titleBlock5 = [\r\n ['TOTAL A CANCELAR EN LA INSCRIPCIÓN'],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [block5],\r\n body: titleBlock5,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [221, 221, 221],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n fontWeight: 'bold',\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const headerblock5 = ['NOMBRE', 'CÉDULA'];\r\n const blankFields2 = [\r\n ['INSCRIPCIÓN DE PAPELETA', montosInfo.papeleta],\r\n ['MEMBRESÍAS', montosInfo.membresia],\r\n ['TOTAL', montosInfo.total],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [headerblock5],\r\n body: blankFields2,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [238, 238, 238],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const fileTS = getTimeStamp();\r\n doc.save(`COMPROBANTE-CANTONALES-${fileTS}.pdf`);\r\n};\r\n\r\nexport const generateComprobanteProvincial = (\r\n titleComprobante,\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montosInfo,\r\n) => {\r\n // eslint-disable-next-line new-cap\r\n const doc = new jsPDF('p', 'px', 'letter');\r\n\r\n const imgData = getLogoPLN();\r\n doc.addImage(imgData, 'JPEG', 30, 50);\r\n\r\n // ENCABEZADO DEL DOCUMENTO\r\n doc.setFont('times', 'bold');\r\n doc.text(200, 45, 'PARTIDO LIBERACIÓN NACIONAL');\r\n doc.setFontSize(12);\r\n doc.text(200, 60, 'Tribunal de Elecciones Internas');\r\n doc.setFont('times', 'normal');\r\n doc.text(\r\n 200,\r\n 75,\r\n `${titleComprobante} ${process.env.REACT_APP_PDF_YEAR_REPORTS}`,\r\n );\r\n doc.setFont('times', 'normal');\r\n doc.text(200, 90, 'Comprobante de Inscripción');\r\n\r\n const columns = [\r\n 'MOVIMIENTO',\r\n 'PROVINCIA',\r\n 'N° PAPELETA',\r\n ];\r\n\r\n const datos1 = [\r\n [\r\n generalInfo.movimiento,\r\n generalInfo.provincia,\r\n generalInfo.papeleta,\r\n ],\r\n ];\r\n\r\n const typeTable1 = 'grid';\r\n const showTheHeader = true;\r\n\r\n doc.autoTable({\r\n head: [columns],\r\n body: datos1,\r\n theme: typeTable1,\r\n startY: 110,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 2: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n fontSize: 30,\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [238, 238, 238],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: showTheHeader,\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns2 = ['Fecha', 'Consecutivo'];\r\n const datos2 = [\r\n [\r\n `FECHA INSCRIPCIÓN: ${generalInfo.fecha}`,\r\n `CONSECUTIVO: ${generalInfo.consecutivo}`,\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [columns2],\r\n body: datos2,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 0,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block1 = ['Title'];\r\n const titleBlock = [['REPRESENTANTE PROVINCIAL']];\r\n\r\n doc.autoTable({\r\n head: [block1],\r\n body: titleBlock,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [221, 221, 221],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const headerblock1 = ['LUGAR', 'CEDULA', 'NOMBRE'];\r\n\r\n doc.autoTable({\r\n head: [headerblock1],\r\n body: candidatosInfo.comite,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 2: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [238, 238, 238],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: true,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block4 = ['Gestor'];\r\n const titleBlock4 = [\r\n ['GESTOR ANTE EL TRIBUNAL DE ELECCIONES INTERNAS'],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [block4],\r\n body: titleBlock4,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [221, 221, 221],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n fontWeight: 'bold',\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const headerblock4 = ['NOMBRE', 'CÉDULA'];\r\n const blankFields = [\r\n ['NOMBRE', gestorInfo.cedula],\r\n ['CÉDULA', gestorInfo.nombre],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [headerblock4],\r\n body: blankFields,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [238, 238, 238],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block5 = ['Total'];\r\n const titleBlock5 = [\r\n ['TOTAL A CANCELAR EN LA INSCRIPCIÓN'],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [block5],\r\n body: titleBlock5,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [221, 221, 221],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n fontWeight: 'bold',\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const headerblock5 = ['NOMBRE', 'CÉDULA'];\r\n const blankFields2 = [\r\n ['INSCRIPCIÓN DE PAPELETA', montosInfo.papeleta],\r\n ['MEMBRESÍAS', montosInfo.membresia],\r\n ['TOTAL', montosInfo.total],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [headerblock5],\r\n body: blankFields2,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [238, 238, 238],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const fileTS = getTimeStamp();\r\n doc.save(`COMPROBANTE-PROVINCIALES-${fileTS}.pdf`);\r\n};\r\n\r\nexport const generateComprobanteNacional = (\r\n titleComprobante,\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montosInfo,\r\n) => {\r\n // eslint-disable-next-line new-cap\r\n const doc = new jsPDF('p', 'px', 'letter');\r\n\r\n const imgData = getLogoPLN();\r\n doc.addImage(imgData, 'JPEG', 30, 50);\r\n\r\n // ENCABEZADO DEL DOCUMENTO\r\n doc.setFont('times', 'bold');\r\n doc.text(200, 45, 'PARTIDO LIBERACIÓN NACIONAL');\r\n doc.setFontSize(12);\r\n doc.text(200, 60, 'Tribunal de Elecciones Internas');\r\n doc.setFont('times', 'normal');\r\n doc.text(\r\n 200,\r\n 75,\r\n `${titleComprobante} ${process.env.REACT_APP_PDF_YEAR_REPORTS}`,\r\n );\r\n doc.setFont('times', 'normal');\r\n doc.text(200, 90, 'Comprobante de Inscripción');\r\n\r\n const columns = ['MOVIMIENTO'];\r\n\r\n const datos1 = [[generalInfo.movimiento]];\r\n\r\n const typeTable1 = 'grid';\r\n const showTheHeader = true;\r\n\r\n doc.autoTable({\r\n head: [columns],\r\n body: datos1,\r\n theme: typeTable1,\r\n startY: 110,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [238, 238, 238],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: showTheHeader,\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns2 = ['Fecha', 'Consecutivo'];\r\n const datos2 = [\r\n [\r\n `FECHA INSCRIPCIÓN: ${generalInfo.fecha}`,\r\n `CONSECUTIVO: ${generalInfo.consecutivo}`,\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [columns2],\r\n body: datos2,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 0,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block1 = ['Title'];\r\n const titleBlock = [\r\n [`${generalInfo.puesto}(s) DEL MOVIMIENTO`],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [block1],\r\n body: titleBlock,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [221, 221, 221],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const headerblock1 = ['LUGAR', 'CEDULA', 'NOMBRE'];\r\n\r\n doc.autoTable({\r\n head: [headerblock1],\r\n body: candidatosInfo.comite,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 2: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [238, 238, 238],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: true,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block4 = ['Gestor'];\r\n const titleBlock4 = [\r\n ['GESTOR ANTE EL TRIBUNAL DE ELECCIONES INTERNAS'],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [block4],\r\n body: titleBlock4,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [221, 221, 221],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n fontWeight: 'bold',\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const headerblock4 = ['NOMBRE', 'CÉDULA'];\r\n const blankFields = [\r\n ['NOMBRE', gestorInfo.cedula],\r\n ['CÉDULA', gestorInfo.nombre],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [headerblock4],\r\n body: blankFields,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [238, 238, 238],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block5 = ['Total'];\r\n const titleBlock5 = [\r\n ['TOTAL A CANCELAR EN LA INSCRIPCIÓN'],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [block5],\r\n body: titleBlock5,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [221, 221, 221],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n fontWeight: 'bold',\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const headerblock5 = ['NOMBRE', 'CÉDULA'];\r\n const blankFields2 = [\r\n ['INSCRIPCIÓN DE PAPELETA', montosInfo.papeleta],\r\n ['MEMBRESÍAS', montosInfo.membresia],\r\n ['TOTAL', montosInfo.total],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [headerblock5],\r\n body: blankFields2,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [238, 238, 238],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const fileTS = getTimeStamp();\r\n doc.save(`COMPROBANTE-NACIONALES-${fileTS}.pdf`);\r\n};\r\n\r\nexport const generateComprobantePresidenteSector = (\r\n titleComprobante,\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montosInfo,\r\n) => {\r\n // eslint-disable-next-line new-cap\r\n const doc = new jsPDF('p', 'px', 'letter');\r\n\r\n const imgData = getLogoPLN();\r\n doc.addImage(imgData, 'JPEG', 30, 50);\r\n\r\n // ENCABEZADO DEL DOCUMENTO\r\n doc.setFont('times', 'bold');\r\n doc.text(200, 45, 'PARTIDO LIBERACIÓN NACIONAL');\r\n doc.setFontSize(12);\r\n doc.text(200, 60, 'Tribunal de Elecciones Internas');\r\n doc.setFont('times', 'normal');\r\n doc.text(\r\n 200,\r\n 75,\r\n `${titleComprobante} ${process.env.REACT_APP_PDF_YEAR_REPORTS}`,\r\n );\r\n doc.setFont('times', 'normal');\r\n doc.text(200, 90, 'Comprobante de Inscripción');\r\n\r\n const typeTable1 = 'grid';\r\n\r\n const columns2 = ['Fecha', 'Consecutivo'];\r\n const datos2 = [\r\n [\r\n `FECHA INSCRIPCIÓN: ${generalInfo.fecha}`,\r\n `CONSECUTIVO: ${generalInfo.consecutivo}`,\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [columns2],\r\n body: datos2,\r\n theme: typeTable1,\r\n startY: 110,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block1 = ['Title'];\r\n const titleBlock = [\r\n [`PRESIDENTE DE ORGANIZACIÓN SECTORIAL`],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [block1],\r\n body: titleBlock,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [221, 221, 221],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const headerblock1 = ['LUGAR', 'CEDULA', 'NOMBRE'];\r\n\r\n doc.autoTable({\r\n head: [headerblock1],\r\n body: candidatosInfo.comite,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 2: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [238, 238, 238],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: true,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block4 = ['Gestor'];\r\n const titleBlock4 = [\r\n ['GESTOR ANTE EL TRIBUNAL DE ELECCIONES INTERNAS'],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [block4],\r\n body: titleBlock4,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [221, 221, 221],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n fontWeight: 'bold',\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const headerblock4 = ['NOMBRE', 'CÉDULA'];\r\n const blankFields = [\r\n ['NOMBRE', gestorInfo.cedula],\r\n ['CÉDULA', gestorInfo.nombre],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [headerblock4],\r\n body: blankFields,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [238, 238, 238],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block5 = ['Total'];\r\n const titleBlock5 = [\r\n ['TOTAL A CANCELAR EN LA INSCRIPCIÓN'],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [block5],\r\n body: titleBlock5,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [221, 221, 221],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n fontWeight: 'bold',\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const headerblock5 = ['NOMBRE', 'CÉDULA'];\r\n const blankFields2 = [\r\n ['INSCRIPCIÓN DE PAPELETA', montosInfo.papeleta],\r\n ['MEMBRESÍAS', montosInfo.membresia],\r\n ['TOTAL', montosInfo.total],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [headerblock5],\r\n body: blankFields2,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [238, 238, 238],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const fileTS = getTimeStamp();\r\n doc.save(`COMPROBANTE-PRESIDENTE-SECTORES-${fileTS}.pdf`);\r\n};\r\n\r\nexport const generateComprobanteSectorial = (\r\n titleComprobante,\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montosInfo,\r\n) => {\r\n // eslint-disable-next-line new-cap\r\n const doc = new jsPDF('p', 'px', 'letter');\r\n\r\n const imgData = getLogoPLN();\r\n doc.addImage(imgData, 'JPEG', 30, 50);\r\n\r\n // ENCABEZADO DEL DOCUMENTO\r\n doc.setFont('times', 'bold');\r\n doc.text(200, 45, 'PARTIDO LIBERACIÓN NACIONAL');\r\n doc.setFontSize(12);\r\n doc.text(200, 60, 'Tribunal de Elecciones Internas');\r\n doc.setFont('times', 'normal');\r\n doc.text(\r\n 200,\r\n 75,\r\n `${titleComprobante} ${process.env.REACT_APP_PDF_YEAR_REPORTS}`,\r\n );\r\n doc.setFont('times', 'normal');\r\n doc.text(200, 90, 'Comprobante de Inscripción');\r\n\r\n const columns = ['SECTOR', 'N° PAPELETA'];\r\n\r\n const datos1 = [\r\n [generalInfo.sector, generalInfo.papeleta],\r\n ];\r\n\r\n const typeTable1 = 'grid';\r\n const showTheHeader = true;\r\n\r\n doc.autoTable({\r\n head: [columns],\r\n body: datos1,\r\n theme: typeTable1,\r\n startY: 110,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [238, 238, 238],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: showTheHeader,\r\n margin: { left: 20 },\r\n });\r\n\r\n const columns2 = ['Fecha', 'Consecutivo'];\r\n const datos2 = [\r\n [\r\n `FECHA INSCRIPCIÓN: ${generalInfo.fecha}`,\r\n `CONSECUTIVO: ${generalInfo.consecutivo}`,\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [columns2],\r\n body: datos2,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 0,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block1 = ['Title'];\r\n const titleBlock = [\r\n [\r\n 'REPRESENTANTES DE LA ORGANIZACIÓN SECTORIAL A LA ASAMBLEA NACIONAL',\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [block1],\r\n body: titleBlock,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [221, 221, 221],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const headerblock1 = ['LUGAR', 'CEDULA', 'NOMBRE'];\r\n\r\n doc.autoTable({\r\n head: [headerblock1],\r\n body: candidatosInfo.comite,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 2: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [238, 238, 238],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: true,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block4 = ['Gestor'];\r\n const titleBlock4 = [\r\n ['GESTOR ANTE EL TRIBUNAL DE ELECCIONES INTERNAS'],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [block4],\r\n body: titleBlock4,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [221, 221, 221],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n fontWeight: 'bold',\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const headerblock4 = ['NOMBRE', 'CÉDULA'];\r\n const blankFields = [\r\n ['NOMBRE', gestorInfo.cedula],\r\n ['CÉDULA', gestorInfo.nombre],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [headerblock4],\r\n body: blankFields,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [238, 238, 238],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block5 = ['Total'];\r\n const titleBlock5 = [\r\n ['TOTAL A CANCELAR EN LA INSCRIPCIÓN'],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [block5],\r\n body: titleBlock5,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [221, 221, 221],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n fontWeight: 'bold',\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const headerblock5 = ['NOMBRE', 'CÉDULA'];\r\n const blankFields2 = [\r\n ['INSCRIPCIÓN DE PAPELETA', montosInfo.papeleta],\r\n ['MEMBRESÍAS', montosInfo.membresia],\r\n ['TOTAL', montosInfo.total],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [headerblock5],\r\n body: blankFields2,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n textColor: 0,\r\n fillColor: [238, 238, 238],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const fileTS = getTimeStamp();\r\n doc.save(`COMPROBANTE-SECTORIAL-${fileTS}.pdf`);\r\n};\r\n\r\nexport const generatePrevencion = (\r\n idPrevencion,\r\n dataPapeleta,\r\n gestorInfo,\r\n) => {\r\n // eslint-disable-next-line new-cap\r\n const doc = new jsPDF('p', 'px', 'letter');\r\n\r\n const imgData = getLogoPLN();\r\n doc.addImage(imgData, 'JPEG', 30, 50);\r\n\r\n // ENCABEZADO DEL DOCUMENTO\r\n doc.setFont('times', 'bold');\r\n doc.text(200, 45, 'PARTIDO LIBERACIÓN NACIONAL');\r\n doc.setFontSize(12);\r\n doc.text(200, 60, 'Tribunal de Elecciones Internas');\r\n doc.setFont('times', 'normal');\r\n doc.text(200, 75, `PREVENCIÓN DE SUBSANACIONES`);\r\n doc.setFont('times', 'bold');\r\n doc.text(200, 90, `Prevención: ${idPrevencion}`);\r\n doc.setFont('times', 'normal');\r\n\r\n const blockText = ['Title'];\r\n const titleText = [\r\n [\r\n `Se procede a PREVENIR la subsanación de vicios, errores u omisiones en el proceso de inscripción de candidaturas de manera automática. Se le informa al (la) señor(a) gestor(a):`,\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [blockText],\r\n body: titleText,\r\n theme: 'plain',\r\n startY: 115,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'auto',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n valign: 'middle',\r\n fontStyle: 'normal',\r\n overflow: 'linebreak',\r\n cellWidth: 'auto',\r\n fontSize: 12,\r\n textColor: 0,\r\n fillColor: [256, 256, 256],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'left',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const typeTable1 = 'grid';\r\n\r\n const columns2 = ['NOMBRE', 'CEDULA'];\r\n const datos2 = [[gestorInfo.cedula, gestorInfo.nombre]];\r\n\r\n doc.autoTable({\r\n head: [columns2],\r\n body: datos2,\r\n theme: typeTable1,\r\n startY: 145,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [204, 204, 204],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: true,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block1 = ['Title'];\r\n const titleBlock = [\r\n [\r\n `Que, verificada la documentación respectiva, ha sido detectado el faltante de los siguientes requisitos en la inscripción:`,\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [block1],\r\n body: titleBlock,\r\n theme: 'plain',\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'auto',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n valign: 'middle',\r\n fontStyle: 'normal',\r\n overflow: 'linebreak',\r\n cellWidth: 'auto',\r\n fontSize: 12,\r\n textColor: 0,\r\n fillColor: [256, 256, 256],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'left',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const headerblock1 = [\r\n 'PAPELETA',\r\n 'CONSECUTIVO',\r\n 'NOTIFICACIÓN',\r\n ];\r\n\r\n const papeletaInfo = [\r\n [\r\n dataPapeleta.title,\r\n dataPapeleta.consecutivo,\r\n dataPapeleta.fecha,\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [headerblock1],\r\n body: papeletaInfo,\r\n theme: typeTable1,\r\n startY: doc.lastAutoTable.finalY,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 1: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n 2: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [238, 238, 238],\r\n fontSize: 9,\r\n textColor: 0,\r\n halign: 'center',\r\n },\r\n showHead: true,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block4 = ['MID TITLE'];\r\n const titleBlock4 = [\r\n [\r\n 'SE HALLÓ QUE: Se debe registrar depósito de la inscripción.',\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [block4],\r\n body: titleBlock4,\r\n theme: 'plain',\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'wrap',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n fontStyle: 'bold',\r\n fontSize: 12,\r\n textColor: 0,\r\n fillColor: [256, 256, 256],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n fontWeight: 'bold',\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const block5 = ['FINAL TEXT'];\r\n const titleBlock5 = [\r\n [\r\n 'Se tendrá por notificada esta prevención a la persona que materialmente solicite la inscripción, sin importar que sea o no el gestor de la candidatura. Se advierte que la omisión de cumplir con lo aquí prevenido, o su cumplimiento fuera del plazo especificado (3 días hábiles al terminar el periodo de inscripciones), conlleva la denegatoria de la inscripción de la candidatura.',\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [block5],\r\n body: titleBlock5,\r\n theme: 'plain',\r\n startY: doc.lastAutoTable.finalY + 10,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'auto',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'left',\r\n valign: 'middle',\r\n cellWidth: 'auto',\r\n fontStyle: 'normal',\r\n fontSize: 12,\r\n textColor: 0,\r\n fillColor: [256, 256, 256],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n fontWeight: 'bold',\r\n halign: 'left',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const blockFooter = ['Footer'];\r\n const titleBlockFooter = [\r\n [\r\n `PLNDigital.com ${process.env.REACT_APP_PDF_YEAR_REPORTS} Email: consultas@plndigital.com PLN; Mata Redonda, 125m O. del edificio del M.A.G., Casa Liberacionista \"José Figueres Ferrer\" Tel: (506)2549-5500. Aptdo:10051-1000 San José. Desarrollado por Corporación DSI S.A. http://www.corpodsi.com`,\r\n ],\r\n ];\r\n\r\n doc.autoTable({\r\n head: [blockFooter],\r\n body: titleBlockFooter,\r\n theme: 'plain',\r\n startY: doc.lastAutoTable.finalY + 200,\r\n styles: {\r\n overflow: 'linebreak',\r\n cellWidth: 'auto',\r\n font: 'times',\r\n },\r\n columnStyles: {\r\n 0: {\r\n halign: 'center',\r\n valign: 'middle',\r\n cellWidth: 'auto',\r\n fontStyle: 'normal',\r\n fontSize: 9,\r\n textColor: 0,\r\n fillColor: [256, 256, 256],\r\n },\r\n },\r\n headStyles: {\r\n fillColor: [221, 221, 221],\r\n fontSize: 9,\r\n textColor: 0,\r\n fontWeight: 'bold',\r\n halign: 'center',\r\n },\r\n showHead: false,\r\n margin: { left: 20 },\r\n });\r\n\r\n const fileTS = getTimeStamp();\r\n doc.save(`COMPROBANTE-PREVENCION-${fileTS}.pdf`);\r\n};\r\n\r\nexport const generateGafete = (\r\n title,\r\n dataGafete,\r\n typeGafete,\r\n) => {\r\n const imgData = getLogoPLN();\r\n // eslint-disable-next-line new-cap\r\n const doc = new jsPDF('l', 'px', 'letter');\r\n\r\n const nestedTableCell = {\r\n content: '',\r\n styles: {\r\n minCellHeight: 165,\r\n },\r\n };\r\n\r\n const gafetesXHoja = splitInGroupOf(dataGafete, 4);\r\n\r\n // console.log(gafetesXHoja);\r\n\r\n const infoGafetes = gafetesXHoja;\r\n const totalPaginas = infoGafetes.length - 1;\r\n for (let pG = 0; pG < infoGafetes.length; pG++) {\r\n const pageXGafete = infoGafetes[pG];\r\n // console.log(pageXGafete);\r\n let columnsGafete = [['A']];\r\n let tableWG = 267;\r\n if (pageXGafete.length >= 2) {\r\n columnsGafete = [['A', 'B']];\r\n tableWG = 534;\r\n }\r\n doc.autoTable({\r\n theme: 'grid',\r\n head: columnsGafete,\r\n body: [[nestedTableCell]],\r\n foot: columnsGafete,\r\n startY: 20,\r\n showHead: false,\r\n showFoot: false,\r\n tableWidth: tableWG,\r\n didDrawCell: dataG => {\r\n if (\r\n dataG.row.index === 0 &&\r\n dataG.row.section === 'body'\r\n ) {\r\n const titleText = [\r\n [`PARTIDO LIBERACIÓN NACIONAL`],\r\n ];\r\n doc.addImage(\r\n imgData,\r\n 'JPEG',\r\n dataG.cell.x + 95,\r\n dataG.cell.y + 5,\r\n 75,\r\n 22,\r\n );\r\n\r\n doc.autoTable({\r\n startY: dataG.cell.y + 35,\r\n margin: { left: dataG.cell.x + 2 },\r\n tableWidth: dataG.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n halign: 'center',\r\n fontStyle: 'bold',\r\n },\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n columns: [\r\n { dataKey: 'Title', header: 'Title' },\r\n ],\r\n body: titleText,\r\n showHead: false,\r\n });\r\n\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY,\r\n margin: { left: dataG.cell.x + 2 },\r\n tableWidth: dataG.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n halign: 'center',\r\n },\r\n columns: [{ dataKey: 'Name', header: 'Name' }],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n padding: { bottom: 0 },\r\n },\r\n },\r\n body: [\r\n [pageXGafete[dataG.column.index].nombre],\r\n ],\r\n showHead: false,\r\n });\r\n\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY,\r\n margin: { left: dataG.cell.x + 2 },\r\n tableWidth: dataG.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n fontStyle: 'bold',\r\n halign: 'center',\r\n },\r\n columns: [\r\n {\r\n dataKey: 'separator1',\r\n header: 'separator1',\r\n },\r\n ],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n fontSize: 8,\r\n halign: 'left',\r\n cellPadding: 0,\r\n margin: { left: 40 },\r\n },\r\n },\r\n body: [\r\n [\r\n ' ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯',\r\n ],\r\n ],\r\n showHead: false,\r\n });\r\n\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY,\r\n margin: { left: dataG.cell.x + 2 },\r\n tableWidth: dataG.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n fontStyle: 'bold',\r\n halign: 'center',\r\n },\r\n columns: [\r\n { dataKey: 'NameLabel', header: 'NameLabel' },\r\n ],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n cellPadding: 0,\r\n fontSize: 8,\r\n },\r\n },\r\n body: [[`Nombre ${title}`]],\r\n showHead: false,\r\n });\r\n\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY,\r\n margin: { left: dataG.cell.x + 2 },\r\n tableWidth: dataG.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n fontStyle: 'bold',\r\n halign: 'center',\r\n },\r\n columns: [\r\n {\r\n dataKey: 'CedulaLabel',\r\n header: 'CedulaLabel',\r\n },\r\n ],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n body: [\r\n [\r\n `Cédula: ${\r\n pageXGafete[dataG.column.index].cedula\r\n }`,\r\n ],\r\n ],\r\n showHead: false,\r\n });\r\n\r\n // Cuando el tipo de gafete no es para Fiscal General\r\n if (typeGafete !== 3) {\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY + 5,\r\n margin: { left: dataG.cell.x + 2 },\r\n tableWidth: dataG.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n halign: 'center',\r\n cellPadding: 0,\r\n },\r\n columns: [\r\n { dataKey: 'Tipo', header: 'Tipo' },\r\n { dataKey: 'Junta', header: 'Junta' },\r\n { dataKey: 'Distrito', header: 'Distrito' },\r\n ],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n padding: { bottom: 0 },\r\n },\r\n 1: {\r\n fillColor: [255, 255, 255],\r\n padding: { bottom: 0 },\r\n },\r\n 2: {\r\n fillColor: [255, 255, 255],\r\n padding: { bottom: 0 },\r\n },\r\n },\r\n body: [\r\n [\r\n pageXGafete[dataG.column.index].puesto,\r\n `${pageXGafete[dataG.column.index].jrv}`,\r\n pageXGafete[dataG.column.index].distrito,\r\n ],\r\n ['TIPO', 'JUNTA N°', 'DISTRITO'],\r\n ],\r\n showHead: false,\r\n });\r\n }\r\n\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY + 10,\r\n margin: { left: dataG.cell.x + 2 },\r\n tableWidth: dataG.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n halign: 'center',\r\n },\r\n columns: [{ dataKey: 'Name', header: 'Name' }],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n padding: { bottom: 0 },\r\n },\r\n },\r\n body: [\r\n [\r\n `6 de Junio ${process.env.REACT_APP_PDF_YEAR_REPORTS}`,\r\n ],\r\n ],\r\n showHead: false,\r\n });\r\n\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY,\r\n margin: { left: dataG.cell.x + 2 },\r\n tableWidth: dataG.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n fontStyle: 'bold',\r\n halign: 'center',\r\n },\r\n columns: [\r\n {\r\n dataKey: 'separator2',\r\n header: 'separator2',\r\n },\r\n ],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n fontSize: 8,\r\n halign: 'left',\r\n cellPadding: 0,\r\n margin: { left: 40 },\r\n },\r\n },\r\n body: [\r\n [\r\n ' ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯',\r\n ],\r\n ],\r\n showHead: false,\r\n });\r\n\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY,\r\n margin: { left: dataG.cell.x + 2 },\r\n tableWidth: dataG.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n fontStyle: 'bold',\r\n halign: 'center',\r\n },\r\n columns: [\r\n { dataKey: 'NameLabel', header: 'NameLabel' },\r\n ],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n fontSize: 8,\r\n cellPadding: 0,\r\n },\r\n },\r\n body: [['Fecha de la elección']],\r\n showHead: false,\r\n });\r\n }\r\n },\r\n });\r\n\r\n if (pageXGafete.length > 3) {\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY,\r\n theme: 'grid',\r\n head: [['2019', '2020']],\r\n body: [[nestedTableCell]],\r\n foot: [['2019', '2020']],\r\n showHead: false,\r\n showFoot: false,\r\n didDrawCell(data) {\r\n if (\r\n data.row.index === 0 &&\r\n data.row.section === 'body'\r\n ) {\r\n const titleText = [\r\n [`PARTIDO LIBERACIÓN NACIONAL`],\r\n ];\r\n doc.addImage(\r\n imgData,\r\n 'JPEG',\r\n data.cell.x + 95,\r\n data.cell.y + 5,\r\n 75,\r\n 22,\r\n );\r\n\r\n doc.autoTable({\r\n startY: data.cell.y + 35,\r\n margin: { left: data.cell.x + 2 },\r\n tableWidth: data.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n halign: 'center',\r\n fontStyle: 'bold',\r\n },\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n columns: [\r\n { dataKey: 'Title', header: 'Title' },\r\n ],\r\n body: titleText,\r\n showHead: false,\r\n });\r\n\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY,\r\n margin: { left: data.cell.x + 2 },\r\n tableWidth: data.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n halign: 'center',\r\n },\r\n columns: [\r\n { dataKey: 'Name', header: 'Name' },\r\n ],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n padding: { bottom: 0 },\r\n },\r\n },\r\n body: [\r\n [pageXGafete[data.column.index + 2].nombre],\r\n ],\r\n showHead: false,\r\n });\r\n\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY,\r\n margin: { left: data.cell.x + 2 },\r\n tableWidth: data.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n fontStyle: 'bold',\r\n halign: 'center',\r\n },\r\n columns: [\r\n {\r\n dataKey: 'separator1',\r\n header: 'separator1',\r\n },\r\n ],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n fontSize: 8,\r\n halign: 'left',\r\n cellPadding: 0,\r\n margin: { left: 40 },\r\n },\r\n },\r\n body: [\r\n [\r\n ' ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯',\r\n ],\r\n ],\r\n showHead: false,\r\n });\r\n\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY,\r\n margin: { left: data.cell.x + 2 },\r\n tableWidth: data.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n fontStyle: 'bold',\r\n halign: 'center',\r\n },\r\n columns: [\r\n {\r\n dataKey: 'NameLabel',\r\n header: 'NameLabel',\r\n },\r\n ],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n cellPadding: 0,\r\n fontSize: 8,\r\n },\r\n },\r\n body: [[`Nombre ${title}`]],\r\n showHead: false,\r\n });\r\n\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY,\r\n margin: { left: data.cell.x + 2 },\r\n tableWidth: data.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n fontStyle: 'bold',\r\n halign: 'center',\r\n },\r\n columns: [\r\n {\r\n dataKey: 'CedulaLabel',\r\n header: 'CedulaLabel',\r\n },\r\n ],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n body: [\r\n [\r\n `Cédula: ${\r\n pageXGafete[data.column.index + 2]\r\n .cedula\r\n }`,\r\n ],\r\n ],\r\n showHead: false,\r\n });\r\n // Cuando el tipo de gafete no es para Fiscal General\r\n if (typeGafete !== 3) {\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY + 5,\r\n margin: { left: data.cell.x + 2 },\r\n tableWidth: data.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n halign: 'center',\r\n cellPadding: 0,\r\n },\r\n columns: [\r\n { dataKey: 'Tipo', header: 'Tipo' },\r\n { dataKey: 'Junta', header: 'Junta' },\r\n {\r\n dataKey: 'Distrito',\r\n header: 'Distrito',\r\n },\r\n ],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n padding: { bottom: 0 },\r\n },\r\n 1: {\r\n fillColor: [255, 255, 255],\r\n padding: { bottom: 0 },\r\n },\r\n 2: {\r\n fillColor: [255, 255, 255],\r\n padding: { bottom: 0 },\r\n },\r\n },\r\n body: [\r\n [\r\n pageXGafete[data.column.index + 2]\r\n .puesto,\r\n `${\r\n pageXGafete[data.column.index + 2].jrv\r\n }`,\r\n pageXGafete[data.column.index + 2]\r\n .distrito,\r\n ],\r\n ['TIPO', 'JUNTA N°', 'DISTRITO'],\r\n ],\r\n showHead: false,\r\n });\r\n }\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY + 10,\r\n margin: { left: data.cell.x + 2 },\r\n tableWidth: data.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n halign: 'center',\r\n },\r\n columns: [\r\n { dataKey: 'Name', header: 'Name' },\r\n ],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n padding: { bottom: 0 },\r\n },\r\n },\r\n body: [\r\n [\r\n [\r\n `6 de Junio ${process.env.REACT_APP_PDF_YEAR_REPORTS}`,\r\n ],\r\n ],\r\n ],\r\n showHead: false,\r\n });\r\n\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY,\r\n margin: { left: data.cell.x + 2 },\r\n tableWidth: data.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n fontStyle: 'bold',\r\n halign: 'center',\r\n },\r\n columns: [\r\n {\r\n dataKey: 'separator2',\r\n header: 'separator2',\r\n },\r\n ],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n fontSize: 8,\r\n halign: 'left',\r\n cellPadding: 0,\r\n margin: { left: 40 },\r\n },\r\n },\r\n body: [\r\n [\r\n ' ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯',\r\n ],\r\n ],\r\n showHead: false,\r\n });\r\n\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY,\r\n margin: { left: data.cell.x + 2 },\r\n tableWidth: data.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n fontStyle: 'bold',\r\n halign: 'center',\r\n },\r\n columns: [\r\n {\r\n dataKey: 'NameLabel',\r\n header: 'NameLabel',\r\n },\r\n ],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n fontSize: 8,\r\n cellPadding: 0,\r\n },\r\n },\r\n body: [['Fecha de la elección']],\r\n showHead: false,\r\n });\r\n }\r\n },\r\n });\r\n } else if (pageXGafete.length === 3) {\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY,\r\n theme: 'grid',\r\n head: [['A']],\r\n body: [[nestedTableCell]],\r\n foot: [['A']],\r\n showHead: false,\r\n showFoot: false,\r\n tableWidth: 267,\r\n didDrawCell(data) {\r\n if (\r\n data.row.index === 0 &&\r\n data.row.section === 'body'\r\n ) {\r\n const titleText = [\r\n [`PARTIDO LIBERACIÓN NACIONAL`],\r\n ];\r\n doc.addImage(\r\n imgData,\r\n 'JPEG',\r\n data.cell.x + 95,\r\n data.cell.y + 5,\r\n 75,\r\n 22,\r\n );\r\n\r\n doc.autoTable({\r\n startY: data.cell.y + 35,\r\n margin: { left: data.cell.x + 2 },\r\n tableWidth: data.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n halign: 'center',\r\n fontStyle: 'bold',\r\n },\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n columns: [\r\n { dataKey: 'Title', header: 'Title' },\r\n ],\r\n body: titleText,\r\n showHead: false,\r\n });\r\n\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY,\r\n margin: { left: data.cell.x + 2 },\r\n tableWidth: data.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n halign: 'center',\r\n },\r\n columns: [\r\n { dataKey: 'Name', header: 'Name' },\r\n ],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n padding: { bottom: 0 },\r\n },\r\n },\r\n body: [\r\n [pageXGafete[data.column.index + 2].nombre],\r\n ],\r\n showHead: false,\r\n });\r\n\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY,\r\n margin: { left: data.cell.x + 2 },\r\n tableWidth: data.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n fontStyle: 'bold',\r\n halign: 'center',\r\n },\r\n columns: [\r\n {\r\n dataKey: 'separator1',\r\n header: 'separator1',\r\n },\r\n ],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n fontSize: 8,\r\n halign: 'left',\r\n cellPadding: 0,\r\n margin: { left: 40 },\r\n },\r\n },\r\n body: [\r\n [\r\n ' ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯',\r\n ],\r\n ],\r\n showHead: false,\r\n });\r\n\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY,\r\n margin: { left: data.cell.x + 2 },\r\n tableWidth: data.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n fontStyle: 'bold',\r\n halign: 'center',\r\n },\r\n columns: [\r\n {\r\n dataKey: 'NameLabel',\r\n header: 'NameLabel',\r\n },\r\n ],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n cellPadding: 0,\r\n fontSize: 8,\r\n },\r\n },\r\n body: [[`Nombre ${title}`]],\r\n showHead: false,\r\n });\r\n\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY,\r\n margin: { left: data.cell.x + 2 },\r\n tableWidth: data.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n fontStyle: 'bold',\r\n halign: 'center',\r\n },\r\n columns: [\r\n {\r\n dataKey: 'CedulaLabel',\r\n header: 'CedulaLabel',\r\n },\r\n ],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n },\r\n },\r\n body: [\r\n [\r\n `Cédula: ${\r\n pageXGafete[data.column.index + 2]\r\n .cedula\r\n }`,\r\n ],\r\n ],\r\n showHead: false,\r\n });\r\n\r\n // Cuando el tipo de gafete no es para Fiscal General\r\n if (typeGafete !== 3) {\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY + 5,\r\n margin: { left: data.cell.x + 2 },\r\n tableWidth: data.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n halign: 'center',\r\n cellPadding: 0,\r\n },\r\n columns: [\r\n { dataKey: 'Tipo', header: 'Tipo' },\r\n { dataKey: 'Junta', header: 'Junta' },\r\n {\r\n dataKey: 'Distrito',\r\n header: 'Distrito',\r\n },\r\n ],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n padding: { bottom: 0 },\r\n },\r\n 1: {\r\n fillColor: [255, 255, 255],\r\n padding: { bottom: 0 },\r\n },\r\n 2: {\r\n fillColor: [255, 255, 255],\r\n padding: { bottom: 0 },\r\n },\r\n },\r\n body: [\r\n [\r\n pageXGafete[data.column.index + 2]\r\n .puesto,\r\n `${\r\n pageXGafete[data.column.index + 2].jrv\r\n }`,\r\n pageXGafete[data.column.index + 2]\r\n .distrito,\r\n ],\r\n ['TIPO', 'JUNTA N°', 'DISTRITO'],\r\n ],\r\n showHead: false,\r\n });\r\n }\r\n\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY + 10,\r\n margin: { left: data.cell.x + 2 },\r\n tableWidth: data.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n halign: 'center',\r\n },\r\n columns: [\r\n { dataKey: 'Name', header: 'Name' },\r\n ],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n padding: { bottom: 0 },\r\n },\r\n },\r\n body: [\r\n [\r\n `6 de Junio ${process.env.REACT_APP_PDF_YEAR_REPORTS}`,\r\n ],\r\n ],\r\n showHead: false,\r\n });\r\n\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY,\r\n margin: { left: data.cell.x + 2 },\r\n tableWidth: data.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n fontStyle: 'bold',\r\n halign: 'center',\r\n },\r\n columns: [\r\n {\r\n dataKey: 'separator2',\r\n header: 'separator2',\r\n },\r\n ],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n fontSize: 8,\r\n halign: 'left',\r\n cellPadding: 0,\r\n margin: { left: 40 },\r\n },\r\n },\r\n body: [\r\n [\r\n ' ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯',\r\n ],\r\n ],\r\n showHead: false,\r\n });\r\n\r\n doc.autoTable({\r\n startY: doc.lastAutoTable.finalY,\r\n margin: { left: data.cell.x + 2 },\r\n tableWidth: data.cell.width - 4,\r\n styles: {\r\n maxCellHeight: 4,\r\n fontStyle: 'bold',\r\n halign: 'center',\r\n },\r\n columns: [\r\n {\r\n dataKey: 'NameLabel',\r\n header: 'NameLabel',\r\n },\r\n ],\r\n columnStyles: {\r\n 0: {\r\n fillColor: [255, 255, 255],\r\n fontSize: 8,\r\n cellPadding: 0,\r\n },\r\n },\r\n body: [['Fecha de la elección']],\r\n showHead: false,\r\n });\r\n }\r\n },\r\n });\r\n }\r\n\r\n if (pG < totalPaginas) {\r\n doc.addPage();\r\n }\r\n }\r\n\r\n // doc.addPage();\r\n\r\n const fileTS = getTimeStamp();\r\n doc.save(\r\n `GAFETES-${title.replace(' ', '-')}-${fileTS}.pdf`,\r\n );\r\n};\r\n","// eslint-disable-next-line import/prefer-default-export\r\nexport const getLogoPLN = () => {\r\n const imgData =\r\n // eslint-disable-next-line max-len\r\n 'data:image/jpeg;base64,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Tn8v6ONJjrXZ92bzUdaD/Hp7yPE802TM6TbpZJlu+Tvor9rK/6WyUb4Dlm37e3v3Ne0k/cD7BGnRpnjmFP9nPMYk8iLNXr4lPer8r5RSSimlnlOX2ufNdO9lL/nWlOsgl7BhfRvNvmv699RftfZ5tT+sOdSayWzNeo3S/31tI7/zR9/8S2shrJv082soyznqR/zjMbu/lN7oepbXLK1RvybubM1pVua/iv2y3PsjX9Y88pz2wjO5zp5tJPdeOWcNl3s5JrB3sya82zrLmeuJdY/1Ztaa+rpShfc61r1MK21Xx/QZkFdeox6nxHol90mXve6lMp+j7pdsb6P+z1obtmY/vms09le83Mct6COs860JP1Yv7JdjXv+3IfchEHsZdcy1yrRVptnzGtm3/xNBnNH9kf9HZT5Hff4/xf8Zf/b+kHbinL0Zjvgz/8lYE35qvfqcl3sC+HpUp/RBt09ez/LKsNE+E/ezP3OdeY/KfK628H/fRymfUKY8LzHWMX4yltGe14afUi/CGDf4jwAb074Qc233fx9zco/ymP/5fyLzKPX73f+zMp+rY/7PuR079H6SdS318Sl9g7+Iyzy2Vfgxu2cYtuT9OudhxnDiYue0NXud+DP3KI+Vg39r8SFtJ23KntnI/6Myn/MuyH5b1il9R9/OumKP0VhF3Eyv59f92fvBmnDCluqVYdSDuaT7N+fy0TcYz/fnRnn1MNpA34tMGxM/856Vufe1S2hpvUA9vvS/UkoppZRSSimllFJKXU07EREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREZE75B+Hl45q2TuOnAAAAVNta0JU+s7K/gB/pYUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHic7dbhaYNgFIZRB3ERB3EQF3EQB3ERB7G8gQu3piH/ignngUObT/vrTWzOU5IkSZIkSZIkSZIkSZIkSZIkSR/RcRznvu9P5znLtXf3v7pP929d13Mcx3OapsfP7Bj9LPfUvXUWy7I8XscwDH++h3TvsmOVfbNhdq3N+z21f9U3v/6N7l+263tWOeuf5Xqd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dD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz7MCqKXAAAYl0lEQVR4nO2ca7BdZXnHf/tyTq6QhAQIISsx1VIQrcVWQbHSwkIFKlqkllpHq4MWp1qstYtalSqttawP7TjqFBxRqyiIo6AUL2WNl0qbiOOdKiiXxJV7goSQk5Nzzj5798Pz/s/77LXX3ieCik55Ztbsvdda7/25/p/33Y21V57VwqjHo0M/l3bLrHi0xvMLpSRPG49W27+IOQ7ja5RZ0U3ydB3wAuAVwOVAUWbFoSFlmkD359Gndqi8B2jy55uIn+VEzdX1/4XJH6OfmhYCJyV5+iogBTYALeBuLzBJnrbCfdEsxtsNBnn2EfFau8yKmWEPK1qsUfl8pCRBfUxYfkUpydPx8LVXueAwFKL4yz9P8rRVZsVskqdHYULyGuD3gA7GL01gO7CnUk8X6Na15fi4+tkDej+twm70eg+PZ2U2H1bhSI9ZmkdIj6Z7VkO+L0PXtoaJwYQB4AnAJcBFwJHAIsxq9IiW5JvA6ZigdOra+HnSwxaax+iXg34VhcZT6P8YJgAN4FrgxcBUuNcEZNFmsJDiy8DZrpzeAxOww27/4VD7Z1nZLws9TCv4GCDxyGlgrPONv8yKXpKnnTIrugBJnq4BDmG8uQATFAnUOPAQ8N3Q1gzR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';\r\n return imgData;\r\n};\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useState, useEffect } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { useJwt } from 'react-jwt';\r\nimport BlockIcon from '@material-ui/icons/Block';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport PrintIcon from '@material-ui/icons/Print';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport MacroList from '../MacroList/MacroList';\r\nimport distritalesApi from '../../Core/Api/distritalesApi';\r\nimport { getDataComprobante } from '../../Core/Api/comprobanteApi';\r\nimport Storage from '../../Storage/Storage';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Filters from '../../Components/Filters/RegistrosElectFilter';\r\nimport PLNDialog from '../../Components/PLNDialog/PLNDialog';\r\n\r\nimport { generateComprobante } from '../../Core/Utils/Comprobante';\r\nimport { useCRUDAvailable } from '../../Core/Api/periodoApi';\r\n\r\n// Generate Order Data\r\nfunction createData(_data) {\r\n const filterEstado = Consts.estadosDistritales.filter(\r\n status => {\r\n return status.codigo === _data.cod_estado;\r\n },\r\n );\r\n\r\n return {\r\n consecutivo: _data.num_consecutivo,\r\n province: _data.provincia,\r\n canton: _data.canton,\r\n distrito: _data.distrito,\r\n numero: _data.numero,\r\n cod_estado: filterEstado[0].estado,\r\n cod_papeleta: _data.cod_papeleta,\r\n };\r\n}\r\n\r\nconst heads = [\r\n {\r\n name: 'Consecutivo',\r\n },\r\n {\r\n name: 'Provincia',\r\n },\r\n {\r\n name: 'Cantón',\r\n },\r\n {\r\n name: 'Distrito',\r\n },\r\n {\r\n name: 'Número',\r\n },\r\n {\r\n name: 'Estado',\r\n },\r\n];\r\n\r\nconst useStyles = makeStyles(() => ({\r\n btnAdd: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n}));\r\n\r\nexport default function Distritales() {\r\n // Se valida si esta habilitado CRUD\r\n const isCRUDAvailable = useCRUDAvailable();\r\n const crudAvailable = Lodash.get(\r\n isCRUDAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n\r\n const classes = useStyles();\r\n const tokenStorage = Storage.instance;\r\n\r\n const { decodedToken } = useJwt(tokenStorage.getToken());\r\n\r\n const [filters, setFilters] = useState({\r\n province: '',\r\n canton: '',\r\n distrito: '',\r\n });\r\n\r\n const [user, setUser] = useState([]);\r\n const [items, setItems] = useState([]);\r\n const [isDataEmpty, setDataEmpty] = useState(false);\r\n const [filteredItems, setFilteredItems] = useState([]); // used for filtering\r\n\r\n const [open, setOpenDialog] = useState(false);\r\n const [isRemoved, setIsRemoved] = useState(false); // used on remove modal\r\n const [removedMsj, setRemoveMsj] = useState(\r\n 'La Papeleta será anulada. ¿Desea proceder?',\r\n );\r\n const [dataRemove, setDataRemove] = React.useState(null);\r\n const [hiddenBtn, setHiddenBtn] = useState(false);\r\n\r\n const getFilterKeys = Object.getOwnPropertyNames(filters);\r\n const TIMING_ON_SEARCH = 900;\r\n\r\n /**\r\n * Filter Items\r\n */\r\n const applyFilters = async () => {\r\n const activeFilters = getFilterKeys.filter(\r\n filter => filters[filter] !== '',\r\n );\r\n\r\n setDataEmpty(true);\r\n\r\n if (activeFilters.length > 0) {\r\n // eslint-disable-next-line no-unused-vars\r\n const dataFiltered = activeFilters.map(myFilter => {\r\n const result = items.filter(_item => {\r\n let currentFilter = _item[myFilter];\r\n if (typeof currentFilter === 'number')\r\n currentFilter = currentFilter.toString();\r\n\r\n return currentFilter\r\n .toLowerCase()\r\n .includes(filters[myFilter].toLowerCase());\r\n });\r\n\r\n setDataEmpty(!result.length > 0);\r\n if (result.length > 0) setFilteredItems(result);\r\n return result;\r\n });\r\n } else {\r\n setFilteredItems(items);\r\n setDataEmpty(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (decodedToken) {\r\n setUser(decodedToken);\r\n }\r\n }, [decodedToken]);\r\n\r\n const printComprobante = codPapeleta => {\r\n getDataComprobante({\r\n codPapeleta,\r\n type: 1,\r\n }).then(r => {\r\n const comprobanteData = Lodash.get(\r\n r,\r\n ['data', 'response'],\r\n [],\r\n );\r\n\r\n // Informacion General\r\n const { generalInfo } = comprobanteData;\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n delegados: comprobanteData.comite.delegados,\r\n comite: comprobanteData.comite.comite,\r\n fiscales: comprobanteData.comite.fiscales,\r\n };\r\n\r\n const montoInfo = {\r\n papeleta: comprobanteData.montosInfo.papeleta,\r\n membresia: comprobanteData.montosInfo.membresia,\r\n total: comprobanteData.montosInfo.total,\r\n };\r\n\r\n generateComprobante(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n });\r\n };\r\n\r\n const listFilters = () => {\r\n return [\r\n {\r\n label: 'Provincia:',\r\n action: async ev => {\r\n const updatedValue = {\r\n province: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.province,\r\n inputId: 'filter-provincia',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: 'Cantón:',\r\n action: async ev => {\r\n const updatedValue = {\r\n canton: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.canton,\r\n inputId: 'filter-canton',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: 'Distrito:',\r\n action: async ev => {\r\n const updatedValue = {\r\n distrito: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.distrito,\r\n inputId: 'filter-distrito',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n ];\r\n };\r\n\r\n /**\r\n * List all actions that a user can do for each item in the list\r\n */\r\n const setActions = () => {\r\n const actions = [];\r\n\r\n if (crudAvailable) {\r\n const actionEdit = {\r\n aria: 'Edit Distrital',\r\n key: 'edit',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n window.location.href = `/distritales/edit/${_item.cod_papeleta}`;\r\n },\r\n };\r\n\r\n actions.push(actionEdit);\r\n\r\n const actionDecline = {\r\n aria: 'Anular Distrital',\r\n key: 'remove',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n setDataRemove(_item);\r\n setOpenDialog(true);\r\n },\r\n };\r\n\r\n actions.push(actionDecline);\r\n }\r\n\r\n const actionPrintComprobante = {\r\n aria: 'Imprimir Comprobante',\r\n key: 'imprimir',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n printComprobante(_item.cod_papeleta);\r\n },\r\n };\r\n\r\n actions.push(actionPrintComprobante);\r\n\r\n return actions;\r\n };\r\n\r\n /**\r\n * Anular papeleta\r\n */\r\n const declineDistritalesByNum = async () => {\r\n const currentCodPapeleta = dataRemove.cod_papeleta;\r\n\r\n if (currentCodPapeleta && currentCodPapeleta > 0) {\r\n setIsRemoved(true);\r\n\r\n await distritalesApi\r\n .actionDeclinePapeleta({\r\n codPapeleta: currentCodPapeleta,\r\n cedulaGestor: decodedToken.num_cedula,\r\n consecutivo: dataRemove.consecutivo,\r\n })\r\n .then(_response => {\r\n const info = _response.data.response;\r\n\r\n if (info === 1 && _response.status === 200) {\r\n setIsRemoved(false);\r\n setHiddenBtn(true);\r\n setRemoveMsj(\r\n `Papeleta: ${currentCodPapeleta} anulada correctamente.`,\r\n );\r\n setTimeout(() => {\r\n setOpenDialog(false);\r\n window.location.href = '/distritales';\r\n }, 3000);\r\n } else {\r\n setHiddenBtn(false);\r\n setRemoveMsj(\r\n 'La operación no se pudo completar. Intente de nuevo.',\r\n );\r\n }\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n async function fetchListAPI() {\r\n if (decodedToken) {\r\n await distritalesApi\r\n .getDistritales(decodedToken.num_cedula)\r\n .then(_response => {\r\n const info = _response.data.response;\r\n\r\n if (info instanceof Object) {\r\n const rowItems = info.map(row => {\r\n return createData(row);\r\n });\r\n\r\n setItems(rowItems);\r\n setFilteredItems(rowItems);\r\n setDataEmpty(false);\r\n } else {\r\n setDataEmpty(true);\r\n }\r\n })\r\n .catch(_error => {\r\n // eslint-disable-next-line no-console\r\n console.log(_error);\r\n });\r\n }\r\n }\r\n\r\n fetchListAPI();\r\n }, [decodedToken]);\r\n\r\n useEffect(() => {\r\n async function proceedFilters() {\r\n await applyFilters();\r\n }\r\n\r\n // if (filteredItems.length > 0) proceedFilters();\r\n\r\n const timeoutId = setTimeout(() => {\r\n if (filteredItems.length > 0) proceedFilters();\r\n }, TIMING_ON_SEARCH);\r\n return () => clearTimeout(timeoutId);\r\n }, [filters]);\r\n\r\n return (\r\n \r\n }\r\n dataEmpty={isDataEmpty}\r\n listName=\"Lista de Papeletas Distritales\"\r\n uiStylesClasses={classes}\r\n btnConfig={{\r\n name: '+ Registro',\r\n event: () =>\r\n (window.location.href = `/distritales/add`),\r\n }}\r\n actionConfig={setActions}\r\n tableHeads={heads}\r\n tableBody={filteredItems}\r\n isCrudAvailable={crudAvailable}\r\n />\r\n {}}\r\n title=\"Anular Papeleta\"\r\n bodymessage={removedMsj}\r\n buttons={\r\n hiddenBtn\r\n ? []\r\n : [\r\n {\r\n actionName: 'cancel',\r\n color: 'simple',\r\n title: 'Cerrar',\r\n clickHander: () => {\r\n setOpenDialog(!open);\r\n },\r\n },\r\n {\r\n actionName: 'delete',\r\n disabled: isRemoved,\r\n color: 'remove',\r\n title: isRemoved ? (\r\n \r\n ) : (\r\n 'Anular'\r\n ),\r\n clickHander: declineDistritalesByNum,\r\n },\r\n ]\r\n }\r\n />\r\n \r\n );\r\n}\r\n","const styles = () => ({\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n btnBack: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n btnActions: {\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n sectionTitle: {\r\n fontSize: '16px',\r\n marginTop: 10,\r\n marginBottom: 10,\r\n padding: 5,\r\n color: '#fff',\r\n borderRadius: 4,\r\n background: '#008945',\r\n },\r\n field: {\r\n border: 'solid thin #ccc',\r\n padding: 20,\r\n background: '#f1f1f1',\r\n },\r\n fieldFilled: {\r\n border: 'solid thin #ccc',\r\n padding: 10,\r\n background: '#f1f1f1',\r\n },\r\n fieldMin: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 20,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n },\r\n fieldMinFilled: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 10,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n },\r\n fieldTitle: { margin: 0, padding: 0 },\r\n frmText: {\r\n width: '100%',\r\n height: '38px',\r\n padding: 5,\r\n margin: 0,\r\n display: 'block',\r\n fontSize: '.9em',\r\n lineHeight: 38,\r\n borderColor: '#797979',\r\n borderStyle: 'solid',\r\n borderWidth: 1,\r\n borderRadius: 10,\r\n },\r\n frmIconButton: { marginLeft: 10 },\r\n btnSubmitting: {\r\n width: 104,\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n});\r\n\r\nexport default styles;\r\n","const styles = () => ({\r\n btnBack: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n btnActions: {\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n btnSubmitting: {\r\n width: 123,\r\n background: '#fff',\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n sectionTitle: {\r\n fontSize: '16px',\r\n marginTop: 10,\r\n marginBottom: 10,\r\n padding: 5,\r\n color: '#fff',\r\n borderRadius: 4,\r\n background: '#008945',\r\n },\r\n field: {\r\n border: 'solid thin #ccc',\r\n padding: 20,\r\n background: '#f1f1f1',\r\n },\r\n fieldFilled: {\r\n border: 'solid thin #ccc',\r\n padding: 10,\r\n background: '#f1f1f1',\r\n },\r\n fieldMin: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 20,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n },\r\n fieldMinFilled: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 10,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n },\r\n fieldTitle: { margin: 0, padding: 0 },\r\n frmText: {\r\n width: '100%',\r\n height: '38px',\r\n padding: 5,\r\n margin: 0,\r\n display: 'block',\r\n fontSize: '.9em',\r\n lineHeight: 38,\r\n borderColor: '#797979',\r\n borderStyle: 'solid',\r\n borderWidth: 1,\r\n borderRadius: 10,\r\n '&::-webkit-outer-spin-button, &::-webkit-inner-spin-button': {\r\n '-webkit-appearance': 'none',\r\n margin: 0,\r\n },\r\n '-moz-appearance': 'textfield',\r\n },\r\n searchButton: {\r\n background: '#84BF48',\r\n color: '#fff',\r\n marginLeft: 5,\r\n },\r\n\r\n hideCicularProgress: {\r\n display: 'none',\r\n },\r\n customFrmDropDown: {\r\n /*\r\n '& .MuiFormControl-root': {\r\n margin: '0 !important',\r\n },\r\n */\r\n '& .MuiOutlinedInput-input': {\r\n color: '#00ff00',\r\n },\r\n },\r\n formError: {\r\n margin: '5px 0px 25px 0px',\r\n color: `#FF1101`,\r\n },\r\n formWarning: {\r\n margin: '5px 0px 25px 0px',\r\n color: `#D9A300`,\r\n },\r\n});\r\n\r\nexport default styles;\r\n","/* eslint-disable no-nested-ternary */\r\n/* eslint-disable radix */\r\n/* eslint-disable jsx-a11y/label-has-associated-control */\r\n/* eslint-disable max-len */\r\n/* eslint-disable react/prop-types */\r\n/* eslint-disable camelcase */\r\nimport React, { useState, useEffect } from 'react';\r\nimport Lodash from 'lodash';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Grid,\r\n Button,\r\n Radio,\r\n FormControlLabel,\r\n} from '@material-ui/core';\r\nimport Alert from '@material-ui/lab/Alert';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport { Formik, Field, Form } from 'formik';\r\nimport { RadioGroup } from 'formik-material-ui';\r\nimport * as Yup from 'yup';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport { PlnInput } from '../Input';\r\nimport REGEX from '../../Core/Utils/RegExpUtils';\r\n\r\nimport style from './styles';\r\n\r\nimport { updatePersonInfo } from '../../Core/Api/padronApi';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nconst ModalHojaInfo = props => {\r\n const {\r\n classes,\r\n onClose,\r\n // value: valueProp,\r\n open,\r\n // currentDelegado,\r\n currentPerson,\r\n addPersonToRow,\r\n setCurrentSexChanged,\r\n } = props;\r\n\r\n const frmInitValues = {\r\n sexo: '',\r\n email: '',\r\n tel_casa: '',\r\n tel_celular: '',\r\n dir_habitacion: '',\r\n dir_trabajo: '',\r\n tel_trabajo: '',\r\n fax_trabajo: '',\r\n };\r\n const [iValues2, setIValues2] = useState(frmInitValues);\r\n\r\n const [msjDialog, setMsjDialog] = useState('');\r\n const [openMsjDialog, setOpenMsjDialog] = useState(false);\r\n\r\n const handleCloseMsjDialog = () => {\r\n setOpenMsjDialog(false);\r\n };\r\n\r\n const validationSchema = Yup.object({});\r\n const initialValues2 = iValues2;\r\n\r\n const changeToNewSex = event => {\r\n event.persist();\r\n setCurrentSexChanged(event.target.value);\r\n };\r\n\r\n useEffect(() => {\r\n if (open) {\r\n setIValues2({\r\n sexo: currentPerson.sexo\r\n ? `${currentPerson.sexo}`\r\n : '',\r\n email: currentPerson.des_email\r\n ? currentPerson.des_email\r\n : '',\r\n tel_casa: currentPerson.tel_casa\r\n ? currentPerson.tel_casa\r\n : '',\r\n tel_celular: currentPerson.tel_celu\r\n ? currentPerson.tel_celu\r\n : '',\r\n dir_habitacion: currentPerson.des_direccion\r\n ? currentPerson.des_direccion\r\n : '',\r\n dir_trabajo: currentPerson.des_direccion_trabajo\r\n ? currentPerson.des_direccion_trabajo\r\n : '',\r\n tel_trabajo: currentPerson.tel_ofi\r\n ? currentPerson.tel_ofi\r\n : '',\r\n fax_trabajo: currentPerson.num_fax_ofi\r\n ? currentPerson.num_fax_ofi\r\n : '',\r\n });\r\n }\r\n }, [open, setIValues2]);\r\n\r\n const handleCancel = () => {\r\n onClose(false);\r\n setIValues2(!iValues2);\r\n };\r\n\r\n const addInfoPerson = (values, { setSubmitting }) => {\r\n setSubmitting(true);\r\n const {\r\n dir_habitacion,\r\n dir_trabajo,\r\n email,\r\n fax_trabajo,\r\n sexo,\r\n tel_casa,\r\n tel_celular,\r\n tel_trabajo,\r\n } = values;\r\n\r\n const personData = {\r\n num_cedula: currentPerson.num_cedula,\r\n // eslint-disable-next-line radix\r\n ind_sexo: parseInt(sexo),\r\n telefonosData: {\r\n tel_casa,\r\n tel_celu: tel_celular,\r\n tel_ofi: tel_trabajo,\r\n num_fax_ofi: fax_trabajo,\r\n },\r\n direccionesData: {\r\n des_direccion: dir_habitacion,\r\n des_direccion_trabajo: dir_trabajo,\r\n },\r\n emailsData: {\r\n des_email: email,\r\n },\r\n };\r\n\r\n updatePersonInfo(personData).then(result => {\r\n const response = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n if (response > 0) {\r\n addPersonToRow(parseInt(sexo));\r\n setSubmitting(false);\r\n onClose(true);\r\n } else {\r\n setSubmitting(false);\r\n setOpenMsjDialog(true);\r\n setMsjDialog(\r\n 'Ha Ocurrido un Error! Esta persona NO puede ser agregada, favor intentarlo nuevamente.',\r\n );\r\n }\r\n });\r\n };\r\n\r\n const formikValidate = values => {\r\n const errors = {};\r\n // eslint-disable-next-line no-unused-vars\r\n const { sexo, email, tel_casa, tel_celular } = values;\r\n\r\n if (!email) {\r\n errors.email = 'Requerido';\r\n } else if (!REGEX.email.test(email)) {\r\n errors.email = 'Email inválido';\r\n }\r\n\r\n if (!sexo) {\r\n errors.sexo = 'Requerido';\r\n }\r\n\r\n /*\r\n if (!tel_casa) {\r\n errors.tel_casa = 'Requerido';\r\n } else if (!REGEX.phone.test(tel_casa)) {\r\n errors.tel_casa = 'Formato inválido';\r\n }\r\n */\r\n\r\n if (!tel_celular) {\r\n errors.tel_celular = 'Requerido';\r\n } else if (!REGEX.phone.test(tel_celular)) {\r\n errors.tel_celular = 'Formato inválido';\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n ModalHojaInfo.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n open: PropTypes.bool.isRequired,\r\n // value: PropTypes.string.isRequired,\r\n // currentDelegado: PropTypes.shape({}).isRequired,\r\n currentPerson: PropTypes.shape({}).isRequired,\r\n addPersonToRow: PropTypes.func.isRequired,\r\n setCurrentSexChanged: PropTypes.func.isRequired,\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {formik => (\r\n
\r\n \r\n Actualización de Datos\r\n \r\n \r\n \r\n Hoja de Información\r\n \r\n \r\n \r\n

\r\n Cédula\r\n

\r\n
\r\n {currentPerson.num_cedula}\r\n
\r\n
\r\n \r\n

\r\n Nombre\r\n

\r\n
\r\n {`${currentPerson.des_nombre} ${currentPerson.des_apell1} ${currentPerson.des_apell2}`}\r\n
\r\n
\r\n \r\n

\r\n \r\n *\r\n \r\n Sexo\r\n

\r\n \r\n }\r\n label=\"Masculino\"\r\n disabled={\r\n parseInt(formik.values.sexo) > 0\r\n }\r\n onChange={changeToNewSex}\r\n />\r\n }\r\n label=\"Femenino\"\r\n disabled={\r\n parseInt(formik.values.sexo) > 0\r\n }\r\n onChange={changeToNewSex}\r\n />\r\n \r\n {formik.errors.sexo &&\r\n formik.touched.sexo ? (\r\n
\r\n \r\n {formik.errors.sexo}\r\n \r\n
\r\n ) : !formik.values.sexo ? (\r\n
\r\n \r\n Debe indicar el sexo de esta\r\n candidatura.\r\n \r\n
\r\n ) : null}\r\n
\r\n \r\n

\r\n \r\n *\r\n \r\n Correo Electrónico Personal\r\n

\r\n \r\n {formik.errors.email &&\r\n formik.touched.email ? (\r\n
\r\n \r\n {formik.errors.email}\r\n \r\n
\r\n ) : null}\r\n
\r\n \r\n

\r\n \r\n {' '}\r\n \r\n Teléfono Habitación\r\n

\r\n \r\n {formik.errors.tel_casa &&\r\n formik.touched.tel_casa ? (\r\n
\r\n \r\n {formik.errors.tel_casa}\r\n \r\n
\r\n ) : null}\r\n
\r\n \r\n

\r\n \r\n *\r\n {' '}\r\n Celular\r\n

\r\n \r\n {formik.errors.tel_celular &&\r\n formik.touched.tel_celular ? (\r\n
\r\n \r\n {formik.errors.tel_celular}\r\n \r\n
\r\n ) : null}\r\n
\r\n \r\n

\r\n Dirección de Habitación\r\n

\r\n \r\n
\r\n\r\n \r\n

\r\n Dirección de Trabajo\r\n

\r\n \r\n
\r\n \r\n

\r\n Teléfono Trabajo\r\n

\r\n \r\n
\r\n \r\n

\r\n Fax Trabajo\r\n

\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Cancelar\r\n \r\n \r\n {formik.isSubmitting ? (\r\n \r\n ) : (\r\n <>Agregar\r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Entendido\r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default withStyles(style)(ModalHojaInfo);\r\n","/* eslint-disable react/prop-types */\r\n/* eslint-disable no-console */\r\n/* eslint-disable no-alert */\r\n/* eslint-disable consistent-return */\r\n/* eslint-disable react/button-has-type */\r\nimport React, { useState, useEffect } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { useJwt } from 'react-jwt';\r\nimport AttachFileIcon from '@material-ui/icons/AttachFile';\r\nimport CloudUploadIcon from '@material-ui/icons/CloudUpload';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport axios from 'axios';\r\nimport Storage from '../../Storage/Storage';\r\n\r\nconst UploadFile = props => {\r\n const {\r\n classes,\r\n // eslint-disable-next-line no-unused-vars\r\n disabled,\r\n rowData,\r\n listData,\r\n setAllList,\r\n } = props;\r\n const [file, setFile] = useState(null);\r\n const [loading, setLoading] = useState(false);\r\n const [uploaded, setUploaded] = useState(false);\r\n const [fileUrl, setFileUrl] = useState('');\r\n\r\n const tokenData = Storage.instance;\r\n const { decodedToken } = useJwt(tokenData.getToken());\r\n\r\n const removeFile = () => {\r\n setFile(null);\r\n };\r\n const handleFileChange = e => {\r\n if (e.target.files[0]) {\r\n setFile(e.target.files[0]);\r\n }\r\n };\r\n\r\n const handleUpload = async () => {\r\n if (!file)\r\n return alert('Selecciona un archivo primero.');\r\n\r\n setLoading(true);\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n formData.append('upload_preset', 'my-preset');\r\n formData.append('api_key', '632982337546875');\r\n formData.append('resource_type', 'raw'); // Permite subir archivos PDF, DOC, etc.\r\n formData.append(\r\n 'folder',\r\n `/sectores/files/${decodedToken.num_cedula}`,\r\n );\r\n\r\n try {\r\n const response = await axios.post(\r\n 'https://api.cloudinary.com/v1_1/dgu10iegq/raw/upload',\r\n formData,\r\n );\r\n\r\n setFileUrl(response.data.secure_url);\r\n setUploaded(true);\r\n setLoading(false);\r\n const delegado = Lodash.find(listData, {\r\n id: rowData.lugar,\r\n });\r\n\r\n delegado.urlFile = response.data.secure_url;\r\n delegado.nameFile = file.name;\r\n\r\n const newList = Lodash.union([delegado], listData);\r\n const orderedList = Lodash.orderBy(\r\n newList,\r\n ['id'],\r\n ['asc'],\r\n );\r\n setAllList(orderedList);\r\n } catch (error) {\r\n console.error('Error al subir archivo:', error);\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n console.log(rowData);\r\n }, [file]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n\r\n {file && fileUrl === '' && !loading && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {loading && (\r\n \r\n \r\n \r\n )}\r\n {uploaded && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default UploadFile;\r\n","const styles = () => ({\r\n btnBack: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n btnActions: {\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n sectionTitle: {\r\n fontSize: '16px',\r\n marginTop: 10,\r\n marginBottom: 10,\r\n padding: 5,\r\n color: '#fff',\r\n borderRadius: 4,\r\n background: '#008945',\r\n },\r\n field: {\r\n border: 'solid thin #ccc',\r\n padding: 20,\r\n background: '#f1f1f1',\r\n },\r\n fieldFilled: {\r\n border: 'solid thin #ccc',\r\n padding: 10,\r\n background: '#f1f1f1',\r\n },\r\n fieldMin: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 20,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n float: 'left',\r\n },\r\n fieldMinFilled: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 10,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n float: 'left',\r\n },\r\n fieldTitle: { margin: 0, padding: 0 },\r\n frmText: {\r\n width: '100%',\r\n height: '38px',\r\n padding: 5,\r\n margin: 0,\r\n display: 'block',\r\n fontSize: '.9em',\r\n lineHeight: 38,\r\n borderColor: '#797979',\r\n borderStyle: 'solid',\r\n borderWidth: 1,\r\n borderRadius: 10,\r\n '&::-webkit-outer-spin-button, &::-webkit-inner-spin-button': {\r\n '-webkit-appearance': 'none',\r\n margin: 0,\r\n },\r\n '-moz-appearance': 'textfield',\r\n },\r\n searchButton: {\r\n background: '#84BF48',\r\n color: '#fff',\r\n marginLeft: 5,\r\n },\r\n\r\n hideCicularProgress: {\r\n display: 'none',\r\n },\r\n btnDeleteActive: {\r\n color: '#cc0000',\r\n float: 'right',\r\n },\r\n btnAttachFileActive: {\r\n color: '#008945',\r\n },\r\n btnRemoveFileActive: {\r\n color: '#cc0000',\r\n },\r\n btnDeleteInactive: {\r\n color: '#ccc',\r\n float: 'right',\r\n },\r\n juventudChip: {\r\n marginLeft: 10,\r\n marginTop: 9,\r\n margin: 5,\r\n fontWeight: 'bold',\r\n width: '25px',\r\n height: '25px',\r\n fontSize: 10,\r\n '& span.MuiChip-label': {\r\n paddingLeft: 9,\r\n paddingRight: 9,\r\n },\r\n },\r\n});\r\n\r\nexport default styles;\r\n","/* eslint-disable camelcase */\r\nimport axios from 'axios';\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API_BASE_URL;\r\n\r\n/* eslint-disable import/prefer-default-export */\r\nexport const validateCandidato = cedula => {\r\n const url = [`/papeleta/validateCandidato/${cedula}`];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const validateFiscal = cedula => {\r\n const url = [`/papeleta/validateFiscal/${cedula}`];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n","/* eslint-disable radix */\r\n/* eslint-disable no-underscore-dangle */\r\n/* eslint-disable max-len */\r\n/* eslint-disable camelcase */\r\nimport React, { useState } from 'react';\r\nimport Lodash from 'lodash';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Grid, Button } from '@material-ui/core';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport Chip from '@material-ui/core/Chip';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport ModalHojaInfo from '../ModalHojaInfo/ModalHojaInfo';\r\nimport UploadFile from '../UploadFile/UploadFile';\r\n\r\nimport style from './styles';\r\n\r\nimport {\r\n searchByCedula,\r\n validateRenuncia,\r\n searchIsOnPuestosMunicipales,\r\n} from '../../Core/Api/padronApi';\r\nimport {\r\n validateCandidato,\r\n validateFiscal,\r\n} from '../../Core/Api/papeletaApi';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nconst ListSearch = props => {\r\n const {\r\n classes,\r\n title,\r\n formik,\r\n initListData,\r\n sexOrderM,\r\n sexOrderF,\r\n fieldToShow,\r\n // eslint-disable-next-line no-unused-vars\r\n inPlace,\r\n setListFunc,\r\n findInOtherList,\r\n otherList,\r\n validateBy,\r\n requireSexOrder,\r\n sexFieldAs,\r\n onlyJuventud,\r\n hideSexColumn,\r\n needHojaInfo,\r\n isFiscal,\r\n nameList,\r\n } = props;\r\n\r\n // Opciones Seleccionadas\r\n const [listData, setListData] = useState(initListData);\r\n const [currentPerson, setCurrentPerson] = useState({});\r\n const [\r\n currentSexChanged,\r\n setCurrentSexChanged,\r\n ] = useState(null);\r\n const [inputNameField, setInputNameField] = useState('');\r\n const [lugarField, setLugarField] = useState(null);\r\n\r\n // Dialog Data\r\n const [msjDialog, setMsjDialog] = useState('');\r\n const [open, setOpenDialog] = React.useState(false);\r\n const [openHojaInfo, setOpenHojaInfo] = React.useState(\r\n false,\r\n );\r\n const [\r\n msjOnRegimenMunicipal,\r\n setMsjOnRegimenMunicipal,\r\n ] = useState(false);\r\n const handleCloseHojaInfo = isData => {\r\n setOpenHojaInfo(false);\r\n if (!isData) {\r\n formik.setFieldValue(inputNameField, '');\r\n }\r\n };\r\n const handleClose = () => {\r\n setOpenDialog(false);\r\n if (msjOnRegimenMunicipal) {\r\n setOpenHojaInfo(true);\r\n setMsjOnRegimenMunicipal(false);\r\n }\r\n };\r\n\r\n const setAllList = list => {\r\n setListData(list);\r\n setListFunc(list);\r\n };\r\n\r\n const addPersonToRow = selectedSex => {\r\n // Se obtiene el campo del delegado a editar\r\n const delegadoVal = Lodash.find(listData, {\r\n id: lugarField,\r\n });\r\n\r\n // Sexo de la persona\r\n let sexValNew = 'M';\r\n if (parseInt(currentSexChanged) !== 1) {\r\n sexValNew = 'F';\r\n }\r\n\r\n if (delegadoVal.id !== 1) {\r\n if (sexValNew !== delegadoVal.sexo) {\r\n const sexMessage =\r\n 'El candidato a ingresar debe de respetar la alternabilidad.';\r\n setMsjDialog(sexMessage);\r\n setOpenDialog(true);\r\n return;\r\n }\r\n }\r\n\r\n // Se realiza una copia de la persona para modificar el sexo\r\n const clonedPerson = {\r\n ...currentPerson,\r\n sexo: selectedSex,\r\n };\r\n const personName = `${clonedPerson.des_nombre} ${clonedPerson.des_apell1} ${clonedPerson.des_apell2}`;\r\n const personCedula = clonedPerson.num_cedula;\r\n\r\n // Sexo de la persona\r\n let sexVal = 'M';\r\n if (clonedPerson.sexo !== 1) {\r\n sexVal = 'F';\r\n }\r\n\r\n let listToDoSearch = listData;\r\n\r\n if (lugarField === 1) {\r\n let sexOrder = sexOrderM;\r\n if (clonedPerson.sexo !== 1) {\r\n sexOrder = sexOrderF;\r\n }\r\n\r\n const newListData = Lodash.map(\r\n listData,\r\n (d, index) => {\r\n const newData = {\r\n id: d.id,\r\n lugar: d.lugar,\r\n numPuesto: d.numPuesto,\r\n fieldName: d.fieldName,\r\n cedula: index === 0 ? d.cedula : '',\r\n nombre: index === 0 ? d.nombre : '',\r\n sexo: requireSexOrder\r\n ? sexOrder[index].sexo\r\n : sexFieldAs,\r\n edad: d.edad,\r\n enabled: index === 0,\r\n filled: d.filled,\r\n };\r\n\r\n return newData;\r\n },\r\n );\r\n\r\n // Se limpian todos los campos\r\n for (let i = 0; i < newListData.length; i++) {\r\n if (i !== 0) {\r\n formik.setFieldValue(\r\n newListData[i].fieldName,\r\n '',\r\n );\r\n }\r\n }\r\n\r\n listToDoSearch = newListData;\r\n }\r\n\r\n // Se obtiene el campo del delegado a editar\r\n const delegado = Lodash.find(listToDoSearch, {\r\n id: lugarField,\r\n });\r\n\r\n delegado.sexo = sexVal;\r\n delegado.cedula = personCedula;\r\n delegado.nombre = personName;\r\n delegado.edad = clonedPerson.num_edad;\r\n delegado.enabled = true;\r\n delegado.filled = true;\r\n\r\n const newList = Lodash.union(\r\n [delegado],\r\n listToDoSearch,\r\n );\r\n\r\n const orderedList = Lodash.orderBy(\r\n newList,\r\n ['id'],\r\n ['asc'],\r\n );\r\n setAllList(orderedList);\r\n };\r\n\r\n const doSearchByCedula = async (\r\n numCedula,\r\n inputName,\r\n lugar,\r\n ) => {\r\n // Se busca por número de cédula\r\n searchByCedula(numCedula).then(async r => {\r\n const info = Lodash.get(r, ['data', 'response'], []);\r\n if (info !== false) {\r\n // Datos de la persona\r\n const person = Lodash.get(info, [0]);\r\n\r\n if (person.activo < 1) {\r\n setMsjDialog(\r\n 'Esta persona NO se encuentra activa en el PADRÓN ELECTORAL. Favor ingresar otra persona',\r\n );\r\n setOpenDialog(true);\r\n formik.setFieldValue(inputName, '');\r\n } else {\r\n let isMjsRegimenActivate = false;\r\n if (needHojaInfo === true) {\r\n /*\r\n * NUEVA MODIFICACION: (para todas las inscripciones)\r\n * Se debe advertir al gestor que se esta inscribiendo a una persona que pertenece al régimen municipal.\r\n * Fecha: 2025-01-05\r\n */\r\n const isOnRegimenMunicipal = await searchIsOnPuestosMunicipales(\r\n numCedula,\r\n );\r\n if (isOnRegimenMunicipal.data.response >= 1) {\r\n setMsjDialog(\r\n `Esta persona está ocupando un puesto de elección popular municipal. Favor comuníquese al departamento de Finanzas al 2549-5512, para revisar el estado de sus aportes.`,\r\n );\r\n setOpenDialog(true);\r\n setMsjOnRegimenMunicipal(true);\r\n isMjsRegimenActivate = true;\r\n // formik.setFieldValue(inputName, '');\r\n }\r\n }\r\n // else {\r\n // Se valida que la persona sea valida para continuar con el proceso\r\n let validPerson = true;\r\n if (onlyJuventud) {\r\n if (person.num_edad >= 36) {\r\n validPerson = false;\r\n }\r\n }\r\n\r\n if (validPerson) {\r\n // Nombre de la persona\r\n const personName = `${person.des_nombre} ${person.des_apell1} ${person.des_apell2}`;\r\n const personCedula = person.num_cedula;\r\n // console.log('person', person);\r\n let personPlace = false;\r\n let _isPersonProvincia = true;\r\n let _isPersonCanton = true;\r\n let _isPersonDistrito = true;\r\n\r\n // VALIDATE DISTRITALES\r\n if (validateBy.length === 3) {\r\n if (\r\n parseInt(validateBy[0].value) !==\r\n parseInt(person.cod_prov)\r\n ) {\r\n _isPersonProvincia = false;\r\n }\r\n\r\n if (\r\n parseInt(validateBy[1].value) !==\r\n parseInt(person.cod_cant)\r\n ) {\r\n _isPersonCanton = false;\r\n }\r\n\r\n if (\r\n parseInt(validateBy[2].value) !==\r\n parseInt(person.cod_dist_adm)\r\n ) {\r\n _isPersonDistrito = false;\r\n }\r\n\r\n if (\r\n _isPersonProvincia &&\r\n _isPersonCanton &&\r\n _isPersonDistrito\r\n ) {\r\n personPlace = true;\r\n }\r\n }\r\n\r\n // VALIDATE CANTONALES\r\n if (validateBy.length === 2) {\r\n if (\r\n parseInt(validateBy[0].value) !==\r\n parseInt(person.cod_prov)\r\n ) {\r\n _isPersonProvincia = false;\r\n }\r\n\r\n if (\r\n parseInt(validateBy[1].value) !==\r\n parseInt(person.cod_cant)\r\n ) {\r\n _isPersonCanton = false;\r\n }\r\n\r\n if (_isPersonProvincia && _isPersonCanton) {\r\n personPlace = true;\r\n }\r\n }\r\n\r\n // VALIDATE PROVINCIALES & NONE\r\n if (validateBy.length === 1) {\r\n if (validateBy[0].dataVal === 'none') {\r\n personPlace = true;\r\n } else {\r\n if (\r\n parseInt(validateBy[0].value) !==\r\n parseInt(person.cod_prov)\r\n ) {\r\n _isPersonProvincia = false;\r\n }\r\n\r\n if (_isPersonProvincia) {\r\n personPlace = true;\r\n }\r\n }\r\n }\r\n\r\n // Sexo de la persona\r\n let sexVal = 'M';\r\n if (person.sexo !== 1) {\r\n sexVal = 'F';\r\n }\r\n\r\n let listToDoSearch = listData;\r\n if (personPlace) {\r\n // Se valida si requiere la HOJA DE INFORMACION\r\n if (needHojaInfo) {\r\n setCurrentSexChanged(person.sexo);\r\n if (lugar === 1) {\r\n let sexOrder = sexOrderM;\r\n if (person.sexo !== 1) {\r\n sexOrder = sexOrderF;\r\n }\r\n\r\n const newListData = Lodash.map(\r\n listData,\r\n (d, index) => {\r\n const newData = {\r\n id: d.id,\r\n lugar: d.lugar,\r\n numPuesto: d.numPuesto,\r\n fieldName: d.fieldName,\r\n cedula: index === 0 ? d.cedula : '',\r\n nombre: index === 0 ? d.nombre : '',\r\n sexo: requireSexOrder\r\n ? sexOrder[index].sexo\r\n : sexFieldAs,\r\n edad: d.edad,\r\n enabled: index !== 0,\r\n filled: d.filled,\r\n };\r\n\r\n return newData;\r\n },\r\n );\r\n\r\n // Se limpian todos los campos\r\n for (\r\n let i = 0;\r\n i < newListData.length;\r\n i++\r\n ) {\r\n if (i !== 0) {\r\n formik.setFieldValue(\r\n newListData[i].fieldName,\r\n '',\r\n );\r\n }\r\n }\r\n\r\n listToDoSearch = newListData;\r\n }\r\n\r\n // Se obtiene el campo del delegado a editar\r\n const delegado = Lodash.find(\r\n listToDoSearch,\r\n {\r\n id: lugar,\r\n },\r\n );\r\n\r\n if (\r\n delegado.sexo === sexVal ||\r\n person.sexo === null\r\n ) {\r\n if (!isFiscal) {\r\n // SE VALIDA EL CANDIDATO\r\n validateCandidato(numCedula).then(\r\n vResult => {\r\n if (vResult.data > 0) {\r\n setMsjDialog(\r\n 'La persona que intenta registrar ya se inscribió como fiscal en una papeleta distrital. No puede inscribirse en este puesto',\r\n );\r\n setOpenDialog(true);\r\n document.getElementById(\r\n `cp-${inputName}`,\r\n ).style.display = 'none';\r\n formik.setFieldValue(\r\n inputName,\r\n '',\r\n );\r\n } else {\r\n setCurrentPerson(person);\r\n if (!isMjsRegimenActivate) {\r\n setOpenHojaInfo(true);\r\n }\r\n }\r\n },\r\n );\r\n } else {\r\n validateFiscal(numCedula).then(\r\n vResult => {\r\n if (vResult.data > 0) {\r\n setMsjDialog(\r\n 'La persona que intenta registrar ya se inscribió como candidato(a) en otra papeleta. No puede inscribirse en este puesto',\r\n );\r\n setOpenDialog(true);\r\n document.getElementById(\r\n `cp-${inputName}`,\r\n ).style.display = 'none';\r\n formik.setFieldValue(\r\n inputName,\r\n '',\r\n );\r\n } else {\r\n setCurrentPerson(person);\r\n if (!isMjsRegimenActivate) {\r\n setOpenHojaInfo(true);\r\n }\r\n }\r\n },\r\n );\r\n }\r\n } else {\r\n delegado.sexo = requireSexOrder\r\n ? delegado.sexo\r\n : sexFieldAs;\r\n delegado.cedula = '';\r\n delegado.nombre = '';\r\n delegado.edad = '';\r\n delegado.enabled = false;\r\n delegado.filled = false;\r\n\r\n const newList = Lodash.union(\r\n [delegado],\r\n listToDoSearch,\r\n );\r\n\r\n const orderedList = Lodash.orderBy(\r\n newList,\r\n ['id'],\r\n ['asc'],\r\n );\r\n\r\n setAllList(orderedList);\r\n\r\n let sexMessage =\r\n 'El candidato a ingresar debe de respetar la alternabilidad.';\r\n if (!requireSexOrder) {\r\n sexMessage =\r\n 'En esta papeleta solo se permite de ingresar mujeres';\r\n }\r\n setMsjDialog(sexMessage);\r\n setOpenDialog(true);\r\n // Se limpian el campo\r\n formik.setFieldValue(inputName, '');\r\n }\r\n } else {\r\n if (lugar === 1) {\r\n let sexOrder = sexOrderM;\r\n if (person.sexo !== 1) {\r\n sexOrder = sexOrderF;\r\n }\r\n\r\n const newListData = Lodash.map(\r\n listData,\r\n (d, index) => {\r\n const newData = {\r\n id: d.id,\r\n lugar: d.lugar,\r\n numPuesto: d.numPuesto,\r\n fieldName: d.fieldName,\r\n cedula: index === 0 ? d.cedula : '',\r\n nombre: index === 0 ? d.nombre : '',\r\n sexo: requireSexOrder\r\n ? sexOrder[index].sexo\r\n : sexFieldAs,\r\n edad: d.edad,\r\n enabled: index === 0,\r\n filled: d.filled,\r\n };\r\n\r\n return newData;\r\n },\r\n );\r\n\r\n // Se limpian todos los campos\r\n for (\r\n let i = 0;\r\n i < newListData.length;\r\n i++\r\n ) {\r\n if (i !== 0) {\r\n formik.setFieldValue(\r\n newListData[i].fieldName,\r\n '',\r\n );\r\n }\r\n }\r\n\r\n listToDoSearch = newListData;\r\n }\r\n\r\n // Se obtiene el campo del delegado a editar\r\n const delegado = Lodash.find(\r\n listToDoSearch,\r\n {\r\n id: lugar,\r\n },\r\n );\r\n\r\n if (delegado.sexo === sexVal) {\r\n if (!isFiscal) {\r\n // SE VALIDA EL CANDIDATO\r\n validateCandidato(numCedula).then(\r\n vResult => {\r\n if (vResult.data > 0) {\r\n setMsjDialog(\r\n 'La persona que intenta registrar ya se inscribió como fiscal en una papeleta distrital. No puede inscribirse en este puesto',\r\n );\r\n setOpenDialog(true);\r\n document.getElementById(\r\n `cp-${inputName}`,\r\n ).style.display = 'none';\r\n formik.setFieldValue(\r\n inputName,\r\n '',\r\n );\r\n } else {\r\n delegado.sexo = sexVal;\r\n delegado.cedula = personCedula;\r\n delegado.nombre = personName;\r\n delegado.edad = person.num_edad;\r\n delegado.enabled = true;\r\n delegado.filled = true;\r\n\r\n const newList = Lodash.union(\r\n [delegado],\r\n listToDoSearch,\r\n );\r\n\r\n const orderedList = Lodash.orderBy(\r\n newList,\r\n ['id'],\r\n ['asc'],\r\n );\r\n setAllList(orderedList);\r\n }\r\n },\r\n );\r\n } else {\r\n validateFiscal(numCedula).then(\r\n vResult => {\r\n if (vResult.data > 0) {\r\n setMsjDialog(\r\n 'La persona que intenta registrar ya se inscribió como candidato(a) en otra papeleta. No puede inscribirse en este puesto',\r\n );\r\n setOpenDialog(true);\r\n document.getElementById(\r\n `cp-${inputName}`,\r\n ).style.display = 'none';\r\n formik.setFieldValue(\r\n inputName,\r\n '',\r\n );\r\n } else {\r\n delegado.sexo = sexVal;\r\n delegado.cedula = personCedula;\r\n delegado.nombre = personName;\r\n delegado.edad = person.num_edad;\r\n delegado.enabled = true;\r\n delegado.filled = true;\r\n\r\n const newList = Lodash.union(\r\n [delegado],\r\n listToDoSearch,\r\n );\r\n\r\n const orderedList = Lodash.orderBy(\r\n newList,\r\n ['id'],\r\n ['asc'],\r\n );\r\n setAllList(orderedList);\r\n }\r\n },\r\n );\r\n }\r\n } else {\r\n delegado.sexo = requireSexOrder\r\n ? delegado.sexo\r\n : sexFieldAs;\r\n delegado.cedula = '';\r\n delegado.nombre = '';\r\n delegado.edad = '';\r\n delegado.filled = false;\r\n\r\n const newList = Lodash.union(\r\n [delegado],\r\n listToDoSearch,\r\n );\r\n const orderedList = Lodash.orderBy(\r\n newList,\r\n ['id'],\r\n ['asc'],\r\n );\r\n setAllList(orderedList);\r\n let sexMessage =\r\n 'El candidato a ingresar debe de respetar la alternabilidad.';\r\n if (!requireSexOrder) {\r\n sexMessage =\r\n 'En esta papeleta solo se permite de ingresar mujeres';\r\n }\r\n setMsjDialog(sexMessage);\r\n setOpenDialog(true);\r\n // Se limpian el campo\r\n formik.setFieldValue(inputName, '');\r\n }\r\n }\r\n } else {\r\n // eslint-disable-next-line no-lonely-if\r\n if (validateBy !== 'none') {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n `La persona ingresada NO pertece a la localidad en selección. Ingrese otra cédula`,\r\n );\r\n setOpenDialog(true);\r\n formik.setFieldValue(inputName, '');\r\n }\r\n }\r\n } else {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n `La persona ingresada NO posee la edad requerida de JUVENTUD para este puesto`,\r\n );\r\n setOpenDialog(true);\r\n formik.setFieldValue(inputName, '');\r\n }\r\n // }\r\n }\r\n } else {\r\n setMsjDialog(\r\n 'El número de cédula ingresado no coincide con ninguna referencia',\r\n );\r\n setOpenDialog(true);\r\n formik.setFieldValue(inputName, '');\r\n }\r\n document.getElementById(\r\n `cp-${inputName}`,\r\n ).style.display = 'none';\r\n });\r\n };\r\n\r\n const validarRenucia = async numCedula => {\r\n const result = await validateRenuncia(numCedula);\r\n return result.data.response >= 1;\r\n };\r\n\r\n const searchPerson = (inputName, lugar) => async () => {\r\n setCurrentPerson({});\r\n setInputNameField(inputName);\r\n setLugarField(lugar);\r\n const numCedula = document.getElementsByName(\r\n inputName,\r\n )[0].value;\r\n\r\n if (numCedula.length > 0 && numCedula.length === 9) {\r\n const haRenunciado = await validarRenucia(\r\n numCedula,\r\n inputName,\r\n );\r\n if (haRenunciado) {\r\n setMsjDialog(\r\n 'De conformidad con el artículo 14 del Estatuto del PLN, no es posible ingresar la candidatura. La persona que desea registrar presentó renuncia al PLN',\r\n );\r\n setOpenDialog(true);\r\n } else {\r\n document.getElementById(\r\n `cp-${inputName}`,\r\n ).style.display = 'block';\r\n\r\n if (findInOtherList) {\r\n let isInOtherList = false;\r\n otherList.forEach(list => {\r\n const existCedula = Lodash.find(list, {\r\n // eslint-disable-next-line radix\r\n cedula: parseInt(numCedula),\r\n });\r\n\r\n if (existCedula) {\r\n isInOtherList = true;\r\n }\r\n });\r\n\r\n if (isInOtherList) {\r\n const newListData = Lodash.map(listData, d => {\r\n const newData = {\r\n id: d.id,\r\n lugar: d.lugar,\r\n numPuesto: d.numPuesto,\r\n fieldName: d.fieldName,\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n edad: d.edad,\r\n enabled: false,\r\n filled: false,\r\n };\r\n\r\n return newData;\r\n });\r\n\r\n // Se limpian todos los campos\r\n for (let i = 0; i < newListData.length; i++) {\r\n formik.setFieldValue(\r\n newListData[i].fieldName,\r\n '',\r\n );\r\n }\r\n\r\n const orderedList = Lodash.orderBy(\r\n newListData,\r\n ['id'],\r\n ['asc'],\r\n );\r\n setAllList(orderedList);\r\n\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'Quien se postule para el cargo de la fiscalía no pueden estar asociado a ningún otro puesto o papeleta',\r\n );\r\n setOpenDialog(true);\r\n document.getElementById(\r\n `cp-${inputName}`,\r\n ).style.display = 'none';\r\n return;\r\n }\r\n }\r\n\r\n const existCedula = Lodash.find(listData, {\r\n // eslint-disable-next-line radix\r\n cedula: parseInt(numCedula),\r\n });\r\n\r\n if (existCedula && lugar !== 1) {\r\n setMsjDialog('Esta cédula ya fué ingresada');\r\n setOpenDialog(true);\r\n formik.setFieldValue(inputName, '');\r\n document.getElementById(\r\n `cp-${inputName}`,\r\n ).style.display = 'none';\r\n } else {\r\n doSearchByCedula(numCedula, inputName, lugar);\r\n }\r\n }\r\n } else {\r\n setMsjDialog(\r\n 'Debe digitar un número de cédula válido',\r\n );\r\n setOpenDialog(true);\r\n }\r\n };\r\n\r\n const removePerson = (inputName, lugar) => () => {\r\n if (lugar === 1) {\r\n const newListData = Lodash.map(\r\n listData,\r\n (d, index) => {\r\n const newData = {\r\n id: d.id,\r\n lugar: d.lugar,\r\n numPuesto: d.numPuesto,\r\n fieldName: d.fieldName,\r\n cedula: '',\r\n nombre: '',\r\n sexo: '',\r\n enabled: index !== 0,\r\n filled: false,\r\n };\r\n\r\n return newData;\r\n },\r\n );\r\n\r\n // Se limpian todos los campos\r\n for (let i = 0; i < newListData.length; i++) {\r\n // if (i !== 0) {\r\n formik.setFieldValue(newListData[i].fieldName, '');\r\n // }\r\n }\r\n\r\n setAllList(newListData);\r\n } else {\r\n // Se obtiene el campo del delegado a editar\r\n const delegado = Lodash.find(listData, {\r\n id: lugar,\r\n });\r\n\r\n delegado.cedula = '';\r\n delegado.nombre = '';\r\n delegado.enabled = false;\r\n delegado.filled = false;\r\n\r\n const newList = Lodash.union([delegado], listData);\r\n const orderedList = Lodash.orderBy(\r\n newList,\r\n ['id'],\r\n ['asc'],\r\n );\r\n formik.setFieldValue(inputName, '');\r\n setAllList(orderedList);\r\n }\r\n };\r\n\r\n const renderList = () => {\r\n const rows = [];\r\n const numFields =\r\n fieldToShow > 0 ? listData.length - fieldToShow : 0;\r\n const diff = listData.length - numFields;\r\n\r\n for (let n = 0; n < diff; n++) {\r\n rows.push(listData[n]);\r\n }\r\n\r\n const allRows = rows.map(row => (\r\n \r\n {!hideSexColumn && (\r\n \r\n {row.lugar}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {row.nombre}\r\n \r\n \r\n {!hideSexColumn && (\r\n \r\n \r\n {row.sexo}\r\n \r\n {row.edad !== '' &&\r\n parseInt(row.edad) <= 35 && (\r\n \r\n )}\r\n {nameList && nameList === 'Sectores' && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n )}\r\n {hideSexColumn && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n ));\r\n\r\n return allRows;\r\n };\r\n\r\n ListSearch.defaultProps = {\r\n inPlace: 0,\r\n findInOtherList: false,\r\n otherList: [],\r\n requireSexOrder: true,\r\n sexFieldAs: '',\r\n onlyJuventud: false,\r\n hideSexColumn: false,\r\n needHojaInfo: true,\r\n isFiscal: false,\r\n nameList: '',\r\n };\r\n\r\n ListSearch.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n formik: PropTypes.any.isRequired,\r\n initListData: PropTypes.arrayOf(PropTypes.shape())\r\n .isRequired,\r\n sexOrderM: PropTypes.arrayOf(PropTypes.shape())\r\n .isRequired,\r\n sexOrderF: PropTypes.arrayOf(PropTypes.shape())\r\n .isRequired,\r\n fieldToShow: PropTypes.number.isRequired,\r\n inPlace: PropTypes.number,\r\n setListFunc: PropTypes.func.isRequired,\r\n findInOtherList: PropTypes.bool,\r\n otherList: PropTypes.arrayOf(\r\n PropTypes.arrayOf(PropTypes.shape()),\r\n ),\r\n // eslint-disable-next-line react/forbid-prop-types\r\n validateBy: PropTypes.any.isRequired,\r\n requireSexOrder: PropTypes.bool,\r\n sexFieldAs: PropTypes.string,\r\n onlyJuventud: PropTypes.bool,\r\n hideSexColumn: PropTypes.bool,\r\n needHojaInfo: PropTypes.bool,\r\n isFiscal: PropTypes.bool,\r\n nameList: PropTypes.string,\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n {title}\r\n \r\n\r\n \r\n \r\n \r\n {!hideSexColumn && (\r\n \r\n Lugar\r\n \r\n )}\r\n \r\n Cédula\r\n \r\n Nombre\r\n {!hideSexColumn && (\r\n Sexo\r\n )}\r\n {hideSexColumn && (\r\n  \r\n )}\r\n \r\n \r\n {renderList()}\r\n
\r\n
\r\n\r\n \r\n \r\n ¡Atención!\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n );\r\n};\r\n\r\nexport default withStyles(style)(ListSearch);\r\n","import axios from 'axios';\r\n// import Lodash from 'lodash';\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API_BASE_URL;\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const addPrevencion = params => {\r\n const { dataPrevencion } = params;\r\n\r\n const infoPrevencion = {\r\n prevencion: dataPrevencion,\r\n };\r\n\r\n return axios.post(\r\n '/prevencion/addPrevencion',\r\n infoPrevencion,\r\n );\r\n};\r\n","import axios from 'axios';\r\n\r\nconst axiosInstance = axios.create({\r\n baseURL: process.env.REACT_APP_API_BASE_URL,\r\n responseType: 'json',\r\n});\r\n\r\nconst getFullBalanceById = _ced => {\r\n return axiosInstance.get(`gestores/cuadroSaldos/${_ced}`);\r\n};\r\n\r\nexport default {\r\n getBalanceById: getFullBalanceById,\r\n};\r\n","/* eslint-disable radix */\r\nimport Lodash from 'lodash';\r\nimport { addPrevencion } from '../Api/prevencionApi';\r\nimport balanceGlobalApi from '../Api/balanceGlobalApi';\r\nimport { generatePrevencion } from './Comprobante';\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const startPrevencion = async (\r\n user,\r\n nCodPapeleta,\r\n nConsecutivo,\r\n indProceso,\r\n title,\r\n fechaPapeleta,\r\n gestorInfo,\r\n) => {\r\n await balanceGlobalApi\r\n .getBalanceById(user.num_cedula)\r\n .then(bResult => {\r\n const currentSaldo = Lodash.get(\r\n bResult,\r\n ['data', 'response', 'saldo'],\r\n 0,\r\n );\r\n\r\n if (parseInt(currentSaldo) < 0) {\r\n // Inicia la Prevencion\r\n const dataPrevencion = {\r\n num_cedula: user.num_cedula,\r\n cod_papeleta: nCodPapeleta,\r\n con_papeleta: nConsecutivo,\r\n ind_proceso: indProceso,\r\n ind_estado: 1,\r\n usuario: user.des_login,\r\n };\r\n\r\n addPrevencion({ dataPrevencion }).then(pResult => {\r\n const idPrevencion = Lodash.get(\r\n pResult,\r\n ['data', 'response'],\r\n 0,\r\n );\r\n if (idPrevencion > 0) {\r\n // Se genera el comprobante de prevencion\r\n const dataPapeleta = {\r\n title,\r\n consecutivo: nConsecutivo,\r\n fecha: fechaPapeleta,\r\n };\r\n generatePrevencion(\r\n idPrevencion,\r\n dataPapeleta,\r\n gestorInfo,\r\n );\r\n }\r\n });\r\n }\r\n });\r\n};\r\n","/* eslint-disable no-unused-vars */\r\nimport axios from 'axios';\r\nimport Lodash from 'lodash';\r\nimport { useQuery } from 'react-query';\r\nimport Consts from '../Consts/Consts';\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API_BASE_URL;\r\n\r\nexport const addNew = params => {\r\n const { distritalEnca, tFrmsCandidatos } = params;\r\n\r\n const papeletaData = {\r\n distritalEnca,\r\n tFrmsCandidatos,\r\n };\r\n\r\n return axios.post('/papeletaDistrital', papeletaData);\r\n};\r\n\r\nexport const getNumPapeletasDistritales = (\r\n idProvince,\r\n idCanton,\r\n idDistrito,\r\n) => {\r\n const url = [\r\n `/papeletaDistrital/numPapeletas/${idProvince}/${idCanton}/${idDistrito}`,\r\n ];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const searchPapeletas = (\r\n codProvincia,\r\n codCanton,\r\n codDistrito,\r\n numero,\r\n) => {\r\n const url = [\r\n `/papeletaDistrital/doSearch/${codProvincia}/${codCanton}/${codDistrito}/${numero}`,\r\n ];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const getDetallePapeleta = codPapeleta => {\r\n const url = [\r\n `/papeletaDistrital/getDetallePapeleta/${codPapeleta}`,\r\n ];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const getNumPapeletaStatus = params => {\r\n const { papeleta, provincia, canton, distrito } = params;\r\n const url = [\r\n `/papeletaDistrital/numPapeletaStatus/${papeleta}/${provincia}/${canton}/${distrito}`,\r\n ];\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const blockNumPapeleta = params => {\r\n const {\r\n numPapeleta,\r\n codProvincia,\r\n codCanton,\r\n codDistrito,\r\n } = params;\r\n\r\n const papeletaData = {\r\n numPapeleta,\r\n codProvincia,\r\n codCanton,\r\n codDistrito,\r\n };\r\n\r\n return axios.post(\r\n '/papeletaDistrital/blockNumPapeleta',\r\n papeletaData,\r\n );\r\n};\r\n\r\nexport const updatePapeleta = params => {\r\n const {\r\n codPapeleta,\r\n distritalEnca,\r\n tFrmsCandidatos,\r\n } = params;\r\n\r\n const papeletaData = {\r\n codPapeleta,\r\n distritalEnca,\r\n tFrmsCandidatos,\r\n };\r\n\r\n return axios.post(\r\n '/papeletaDistrital/update',\r\n papeletaData,\r\n );\r\n};\r\n\r\nconst getCandidatosPapeleta = async codPapeleta => {\r\n const url = [\r\n `/papeleta/getCandidatosPapeleta/${codPapeleta}`,\r\n ];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n\r\n return data;\r\n};\r\n\r\nconst getCantidadDelegados = async (\r\n idProvince,\r\n idCanton,\r\n idDistrito,\r\n) => {\r\n const url = [\r\n `/districts/delegados/${idProvince}/${idCanton}/${idDistrito}`,\r\n ];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n\r\n return data[0].numDelegados;\r\n};\r\n\r\nconst searchByCedula = async cedula => {\r\n const url = [`/padron/searchbycedula/${cedula}`];\r\n const { data } = await axios.get(url.join('&'));\r\n return data;\r\n};\r\n\r\nconst preparedList = list => {\r\n const unlockedList = list.map(e => {\r\n Lodash.set(e, 'enabled', false);\r\n return e;\r\n });\r\n return unlockedList;\r\n};\r\n\r\nconst getAllDataPapeleta = async (data, codPapeleta) => {\r\n const initValues = Consts.distritalesInitValues;\r\n Lodash.set(initValues, 'provincia', data.codprov);\r\n Lodash.set(initValues, 'canton', data.codcant);\r\n Lodash.set(initValues, 'distrito', data.coddist);\r\n // Estado: REGISTRADA\r\n if (data.cod_estado === 2) {\r\n Lodash.set(initValues, 'papeleta', 999);\r\n // Estado: INSCRITA\r\n } else {\r\n const numStatus = await getNumPapeletaStatus({\r\n papeleta: data.numero,\r\n provincia: data.codprov,\r\n canton: data.codcant,\r\n distrito: data.coddist,\r\n });\r\n\r\n const numeroStatus = Lodash.get(numStatus, ['data']);\r\n\r\n if (numeroStatus === 1) {\r\n Lodash.set(initValues, 'papeleta', data.numero);\r\n } else {\r\n Lodash.set(initValues, 'papeleta', 999);\r\n }\r\n }\r\n\r\n const allPapeletas = await getNumPapeletasDistritales(\r\n data.codprov,\r\n data.codcant,\r\n data.coddist,\r\n );\r\n\r\n const papeletasList = Lodash.get(allPapeletas, ['data']);\r\n const plist = papeletasList.map(({ papeleta }) => {\r\n return {\r\n itemLabel: papeleta,\r\n value: papeleta,\r\n };\r\n });\r\n plist.unshift({\r\n itemLabel: '- NUMERO DE PAPELETA -',\r\n value: 999,\r\n });\r\n\r\n // Se preparan las listas para que los campos esten desbloquedos\r\n const iListDelegados = preparedList(\r\n Consts.initListDelegados,\r\n );\r\n\r\n const iListComite = preparedList(Consts.initListComite);\r\n const iListFiscales = preparedList(\r\n Consts.initListCandidatosFiscalia,\r\n );\r\n\r\n // Se obtiene el numero de delegados\r\n const numDelegados = await getCantidadDelegados(\r\n data.codprov,\r\n data.codcant,\r\n data.coddist,\r\n );\r\n\r\n // Se obtienen todos los candidatos registrados en la papeleta\r\n const candidatos = await getCandidatosPapeleta(\r\n codPapeleta,\r\n );\r\n\r\n /* ====== Lista de Delegados ====== */\r\n const delegados = candidatos.filter(candidato => {\r\n return candidato.NUM_PUESTO < 10;\r\n });\r\n\r\n const listDelegados = await Promise.all(\r\n delegados.map(async (d, index) => {\r\n const delegado = await searchByCedula(d.NUM_CEDULA);\r\n\r\n // Datos de la persona\r\n const person = Lodash.get(delegado, ['response', 0]);\r\n\r\n // Nombre de la persona\r\n const personName = `${person.des_nombre} ${person.des_apell1} ${person.des_apell2}`;\r\n const personCedula = person.num_cedula;\r\n const personEdad = person.num_edad;\r\n\r\n let sexVal = 'M';\r\n if (person.sexo !== 1) {\r\n sexVal = 'F';\r\n }\r\n\r\n Lodash.set(\r\n initValues,\r\n `delegado${d.NUM_PUESTO}`,\r\n personCedula,\r\n );\r\n\r\n return {\r\n id: d.NUM_PUESTO,\r\n lugar: d.NUM_PUESTO,\r\n numPuesto: d.NUM_PUESTO,\r\n fieldName: `delegado${d.NUM_PUESTO}`,\r\n cedula: personCedula,\r\n nombre: personName,\r\n sexo: sexVal,\r\n edad: personEdad,\r\n enabled: true,\r\n filled: true,\r\n };\r\n }),\r\n );\r\n\r\n const aDelegados = iListDelegados.map(del => {\r\n const f = Lodash.find(listDelegados, {\r\n fieldName: del.fieldName,\r\n });\r\n\r\n if (f === undefined) {\r\n return del;\r\n }\r\n return f;\r\n });\r\n\r\n // Merging List Delegados\r\n const allDelegados = Lodash.merge(\r\n iListDelegados,\r\n aDelegados,\r\n );\r\n\r\n const firstDelegado = allDelegados[0].sexo;\r\n let sexOrder = Consts.delegadosMOrder;\r\n if (firstDelegado !== 'M') {\r\n sexOrder = Consts.delegadosFOrder;\r\n }\r\n\r\n // Se establece el sexo para el resto de la lista\r\n const finalListDelegados = Lodash.map(\r\n allDelegados,\r\n (d, index) => {\r\n const newData = {\r\n id: d.id,\r\n lugar: d.lugar,\r\n numPuesto: d.numPuesto,\r\n fieldName: d.fieldName,\r\n cedula: d.cedula,\r\n nombre: d.nombre,\r\n sexo: sexOrder[index].sexo,\r\n edad: d.edad,\r\n enabled: d.cedula !== '',\r\n filled: d.filled,\r\n };\r\n\r\n return newData;\r\n },\r\n );\r\n\r\n /* ====== Lista de Comité ====== */\r\n const comite = candidatos.filter(candidato => {\r\n return (\r\n candidato.NUM_PUESTO >= 10 &&\r\n candidato.NUM_PUESTO < 16\r\n );\r\n });\r\n\r\n const listComite = await Promise.all(\r\n comite.map(async (d, index) => {\r\n const miembro = await searchByCedula(d.NUM_CEDULA);\r\n\r\n // Datos de la persona\r\n const person = Lodash.get(miembro, ['response', 0]);\r\n\r\n // Nombre de la persona\r\n const personName = `${person.des_nombre} ${person.des_apell1} ${person.des_apell2}`;\r\n const personCedula = person.num_cedula;\r\n const personEdad = person.num_edad;\r\n let sexVal = 'M';\r\n if (person.sexo !== 1) {\r\n sexVal = 'F';\r\n }\r\n\r\n // Nombre del campo\r\n const field = Lodash.find(iListComite, {\r\n numPuesto: d.NUM_PUESTO,\r\n });\r\n\r\n Lodash.set(initValues, field.fieldName, personCedula);\r\n\r\n return {\r\n id: field.id,\r\n lugar: field.lugar,\r\n numPuesto: d.NUM_PUESTO,\r\n fieldName: field.fieldName,\r\n cedula: personCedula,\r\n nombre: personName,\r\n sexo: sexVal,\r\n edad: personEdad,\r\n enabled: true,\r\n filled: true,\r\n };\r\n }),\r\n );\r\n\r\n const aComite = iListComite.map(com => {\r\n const f = Lodash.find(listComite, {\r\n fieldName: com.fieldName,\r\n });\r\n\r\n if (f === undefined) {\r\n return com;\r\n }\r\n return f;\r\n });\r\n\r\n // Merging List Comite\r\n const allComite = Lodash.merge(iListComite, aComite);\r\n\r\n const firstComite = allComite[0].sexo;\r\n let sexOrderComite = Consts.comiteMOrder;\r\n if (firstComite !== 'M') {\r\n sexOrderComite = Consts.comiteFOrder;\r\n }\r\n\r\n // Se establece el sexo para el resto de la lista\r\n const finalListComite = Lodash.map(\r\n allComite,\r\n (d, index) => {\r\n const newData = {\r\n id: d.id,\r\n lugar: d.lugar,\r\n numPuesto: d.numPuesto,\r\n fieldName: d.fieldName,\r\n cedula: d.cedula,\r\n nombre: d.nombre,\r\n sexo: sexOrderComite[index].sexo,\r\n edad: d.edad,\r\n enabled: d.cedula !== '',\r\n filled: d.filled,\r\n };\r\n\r\n return newData;\r\n },\r\n );\r\n\r\n /* ====== Lista de Fiscales ====== */\r\n const fiscales = candidatos.filter(candidato => {\r\n return candidato.NUM_PUESTO > 15;\r\n });\r\n\r\n const listFiscales = await Promise.all(\r\n fiscales.map(async (d, index) => {\r\n const fiscal = await searchByCedula(d.NUM_CEDULA);\r\n\r\n // Datos de la persona\r\n const person = Lodash.get(fiscal, ['response', 0]);\r\n\r\n // Nombre de la persona\r\n const personName = `${person.des_nombre} ${person.des_apell1} ${person.des_apell2}`;\r\n const personCedula = person.num_cedula;\r\n const personEdad = person.num_edad;\r\n let sexVal = 'M';\r\n if (person.sexo !== 1) {\r\n sexVal = 'F';\r\n }\r\n\r\n // Nombre del campo\r\n const field = Lodash.get(iListFiscales, [index]);\r\n\r\n Lodash.set(initValues, field.fieldName, personCedula);\r\n\r\n return {\r\n id: index + 1,\r\n lugar: field.lugar,\r\n numPuesto: d.NUM_PUESTO,\r\n fieldName: field.fieldName,\r\n cedula: personCedula,\r\n nombre: personName,\r\n sexo: sexVal,\r\n edad: personEdad,\r\n enabled: d.NUM_CEDULA !== '',\r\n filled: true,\r\n };\r\n }),\r\n );\r\n\r\n const aFiscales = iListFiscales.map(com => {\r\n const f = Lodash.find(listFiscales, {\r\n fieldName: com.fieldName,\r\n });\r\n\r\n if (f === undefined) {\r\n return com;\r\n }\r\n return f;\r\n });\r\n\r\n // Merging List Comite\r\n const allFiscales = Lodash.merge(\r\n iListFiscales,\r\n aFiscales,\r\n );\r\n\r\n const firstFiscal = allFiscales[0].sexo;\r\n let sexOrderFiscal = Consts.fiscalesMOrder;\r\n if (firstFiscal !== 'M') {\r\n sexOrderFiscal = Consts.fiscalesFOrder;\r\n }\r\n\r\n // Se establece el sexo para el resto de la lista\r\n const finalListFiscales = Lodash.map(\r\n allFiscales,\r\n (d, index) => {\r\n const newData = {\r\n id: d.id,\r\n lugar: d.lugar,\r\n numPuesto: d.numPuesto,\r\n fieldName: d.fieldName,\r\n cedula: d.cedula,\r\n nombre: d.nombre,\r\n sexo: sexOrderFiscal[index].sexo,\r\n edad: d.edad,\r\n enabled: d.cedula !== '',\r\n filled: d.filled,\r\n };\r\n\r\n return newData;\r\n },\r\n );\r\n\r\n return {\r\n papeletaData: data,\r\n numDelegados,\r\n papeletas: plist,\r\n candidatos: {\r\n listDelegados: finalListDelegados,\r\n listComite: finalListComite,\r\n listFiscales: finalListFiscales,\r\n },\r\n initValues,\r\n };\r\n};\r\n\r\nexport const getPapeletaInfo = async params => {\r\n try {\r\n const { cedGestor, codPapeleta } = params;\r\n\r\n const url = [\r\n `/papeletaDistrital/getByCodPapeleta/${cedGestor}/${codPapeleta}`,\r\n ];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n const papeletaData = getAllDataPapeleta(\r\n data.response[0],\r\n codPapeleta,\r\n );\r\n return papeletaData;\r\n } catch (e) {\r\n return { papeletaData: {} };\r\n }\r\n};\r\n\r\nexport const usePapeletaInfo = (cedGestor, codPapeleta) => {\r\n return useQuery(\r\n ['papeletaData', cedGestor, codPapeleta],\r\n () => getPapeletaInfo(cedGestor, codPapeleta),\r\n );\r\n};\r\n","/* eslint-disable react/no-unescaped-entities */\r\n/* eslint-disable radix */\r\n/* eslint-disable camelcase */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport Lodash from 'lodash';\r\nimport { useJwt } from 'react-jwt';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Grid, Button, Divider } from '@material-ui/core';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\nimport Container from '@material-ui/core/Container';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport SendIcon from '@material-ui/icons/Send';\r\nimport Chip from '@material-ui/core/Chip';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\n\r\nimport { Formik, Field } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport style from './styles';\r\n\r\nimport { PlnDropdown } from '../../Components/Input';\r\nimport Copyright from '../Copyright/Copyright';\r\nimport ListSearch from '../../Components/ListSearch/ListSearch';\r\nimport {\r\n useProvincias,\r\n getCantonsByProvince,\r\n getDistritoBy,\r\n getCantidadDelegados,\r\n} from '../../Core/Api/locationApi';\r\nimport { getEstadoPapeleta } from '../../Core/Utils/Utils';\r\nimport { generateComprobante } from '../../Core/Utils/Comprobante';\r\nimport { startPrevencion } from '../../Core/Utils/Prevencion';\r\n\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Storage from '../../Storage/Storage';\r\n\r\nimport {\r\n addNew,\r\n updatePapeleta,\r\n getNumPapeletasDistritales,\r\n getNumPapeletaStatus,\r\n blockNumPapeleta,\r\n} from '../../Core/Api/papeletaDistrital';\r\n\r\nimport { useCRUDAvailable } from '../../Core/Api/periodoApi';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nconst AddDistritales = props => {\r\n // Se valida si esta habilitado CRUD\r\n const isCRUDAvailable = useCRUDAvailable();\r\n const crudAvailable = Lodash.get(\r\n isCRUDAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n const { classes } = props;\r\n const history = useHistory();\r\n const { data } = useProvincias();\r\n\r\n const [user, setUser] = useState([]);\r\n const [statusPapeleta] = useState(3);\r\n const [dateField, setDateField] = useState('');\r\n const [consecutivo, setConsecutivo] = useState('');\r\n const [codPapeleta, setCodPapeleta] = useState(null);\r\n const [fecPapeleta, setFecPapeleta] = useState('');\r\n const [isSaving, setIsSaving] = useState(false);\r\n const [showfilters, setShowfilters] = useState(true);\r\n const [showNumPapeleta, setShowNumPapeleta] = useState(\r\n false,\r\n );\r\n\r\n const tokenData = Storage.instance;\r\n const { decodedToken } = useJwt(tokenData.getToken());\r\n\r\n const [msjDialog, setMsjDialog] = useState('');\r\n const [open, setOpenDialog] = React.useState(false);\r\n const [finalDialog, setFinalDialog] = React.useState(\r\n false,\r\n );\r\n\r\n const handleClose = () => {\r\n setOpenDialog(false);\r\n setIsSaving(false);\r\n };\r\n\r\n const closeFinalDialog = () => {\r\n history.push('/distritales');\r\n };\r\n\r\n // Date Options\r\n const options = {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n // timeZone: 'UTC',\r\n };\r\n\r\n useEffect(() => {\r\n if (decodedToken !== null) {\r\n setUser(decodedToken);\r\n }\r\n\r\n const today = new Date();\r\n setDateField(\r\n today.toLocaleDateString('es-ES', options),\r\n );\r\n }, [decodedToken, options]);\r\n\r\n const [showForm, setShowForm] = useState(false);\r\n\r\n // Opciones Seleccionadas\r\n const [sProvincia, setSProvincia] = useState(9);\r\n const [sCanton, setSCanton] = useState(999);\r\n const [sDistrito, setSDistrito] = useState(999);\r\n const [sPapeleta, setSPapeleta] = useState(999);\r\n const [numDelegados, setNumDelegados] = useState(0);\r\n\r\n const [listDelegados, setListDelegados] = useState(\r\n Consts.initListDelegados,\r\n );\r\n const [listComite, setListComite] = useState(\r\n Consts.initListComite,\r\n );\r\n const [listCandidatos, setListCandidatos] = useState(\r\n Consts.initListCandidatosFiscalia,\r\n );\r\n\r\n // Lista de: Provincias, Cantones, Distritos\r\n const [initialValues] = useState(\r\n Lodash.get(data, ['initValues'], {\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n papeleta: 999,\r\n delegado1: '',\r\n delegado2: '',\r\n delegado3: '',\r\n delegado4: '',\r\n delegado5: '',\r\n delegado6: '',\r\n delegado7: '',\r\n delegado8: '',\r\n delegado9: '',\r\n presidente: '',\r\n vicePresidente: '',\r\n secretario: '',\r\n subSecretario: '',\r\n tesoreria: '',\r\n subTesoreria: '',\r\n propietario: '',\r\n suplente: '',\r\n }),\r\n );\r\n const provincias = Lodash.get(\r\n data,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n const [cantones, setCantones] = useState([\r\n { itemLabel: '- SELECCIONE EL CANTÓN-', value: 999 },\r\n ]);\r\n const [distritos, setDistritos] = useState([\r\n { itemLabel: '- SELECCIONE EL DISTRITO-', value: 999 },\r\n ]);\r\n\r\n const [papeletas, setPapeletas] = useState([\r\n { itemLabel: '- NUMERO DE PAPELETA -', value: 999 },\r\n ]);\r\n\r\n const setProvincia = p => {\r\n initialValues.provincia = p;\r\n initialValues.canton = 999;\r\n initialValues.distrito = 999;\r\n if (p !== 9) {\r\n setShowForm(false);\r\n getCantonsByProvince(p).then(result => {\r\n if (result.status === 200) {\r\n const cantonsList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const clist = cantonsList.map(\r\n ({ cod_canton, des_nombre_c }) => {\r\n return {\r\n itemLabel: des_nombre_c,\r\n value: cod_canton,\r\n };\r\n },\r\n );\r\n clist.unshift({\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n });\r\n\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: p,\r\n }),\r\n );\r\n setCantones(clist);\r\n }\r\n });\r\n } else {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n },\r\n ]);\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n const setCanton = c => {\r\n setShowForm(false);\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = c;\r\n initialValues.distrito = 999;\r\n\r\n if (c !== 999) {\r\n getDistritoBy(sProvincia.value, c).then(result => {\r\n if (result.status === 200) {\r\n const distritosList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n const dlist = distritosList.map(\r\n ({ cod_dist_ad, des_nombre_ad }) => {\r\n return {\r\n itemLabel: des_nombre_ad,\r\n value: cod_dist_ad,\r\n };\r\n },\r\n );\r\n dlist.unshift({\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n });\r\n\r\n setSCanton(\r\n Lodash.find(cantones, {\r\n value: c,\r\n }),\r\n );\r\n\r\n setDistritos(dlist);\r\n }\r\n });\r\n } else {\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n const setDistrito = d => {\r\n setShowfilters(false);\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = sCanton.value;\r\n initialValues.distrito = d;\r\n if (d !== 999) {\r\n setShowForm(true);\r\n setShowNumPapeleta(true);\r\n setSDistrito(\r\n Lodash.find(distritos, {\r\n value: d,\r\n }),\r\n );\r\n\r\n getCantidadDelegados(\r\n sProvincia.value,\r\n sCanton.value,\r\n d,\r\n ).then(response => {\r\n const cantDelegados = Lodash.get(\r\n response,\r\n ['data', 0, 'numDelegados'],\r\n 0,\r\n );\r\n setNumDelegados(cantDelegados);\r\n });\r\n\r\n getNumPapeletasDistritales(\r\n sProvincia.value,\r\n sCanton.value,\r\n d,\r\n ).then(result => {\r\n if (result.status === 200) {\r\n const papeletasList = Lodash.get(result, [\r\n 'data',\r\n ]);\r\n const plist = papeletasList.map(\r\n ({ papeleta }) => {\r\n return {\r\n itemLabel: papeleta,\r\n value: papeleta,\r\n };\r\n },\r\n );\r\n plist.unshift({\r\n itemLabel: '- NUMERO DE PAPELETA -',\r\n value: 999,\r\n });\r\n\r\n setPapeletas(plist);\r\n }\r\n });\r\n } else {\r\n setShowForm(false);\r\n setSDistrito({ itemLabel: '', value: 0 });\r\n }\r\n };\r\n\r\n const setPapeleta = p => {\r\n initialValues.papeleta = p;\r\n setSPapeleta(\r\n Lodash.find(papeletas, {\r\n value: p,\r\n }),\r\n );\r\n };\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n // Se valida que exista al menos 1 en la lista\r\n const verifyIfCanSave = lCandidates => {\r\n const totalRegistersOnList = Object.keys(\r\n lCandidates,\r\n ).map(c => {\r\n const total = Lodash.countBy(lCandidates[c], rec => {\r\n return rec.filled === true;\r\n });\r\n const result = Lodash.get(total, 'true', 0);\r\n return { count: result };\r\n });\r\n\r\n const canSave = Lodash.find(totalRegistersOnList, o => {\r\n return o.count > 0;\r\n });\r\n\r\n let status = true;\r\n if (!canSave) {\r\n status = false;\r\n }\r\n\r\n return status;\r\n };\r\n\r\n const saveForm = (\r\n values,\r\n { setSubmitting, setFieldValue },\r\n ) => {\r\n const {\r\n provincia,\r\n canton,\r\n distrito,\r\n papeleta,\r\n } = values;\r\n\r\n setSubmitting(true);\r\n // Se valida que se haya seleccionado un numero de papeleta\r\n if (papeleta === 999) {\r\n setMsjDialog(\r\n 'Debe seleccionar el número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n setSubmitting(false);\r\n\r\n return;\r\n }\r\n\r\n // Se valida que esté el 50% de los Delegados\r\n const mitadDelegados = Math.floor(numDelegados / 2);\r\n const totalDelegados = Lodash.countBy(\r\n listDelegados,\r\n rec => {\r\n return rec.filled === true;\r\n },\r\n );\r\n\r\n if (\r\n totalDelegados.true === undefined ||\r\n totalDelegados.true < mitadDelegados\r\n ) {\r\n setMsjDialog(\r\n 'Debe completarse el 50% de los delegados en la papeleta',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n // Se valida que TODOS los campos del Comité esten completos\r\n const totalComite = Lodash.countBy(listComite, rec => {\r\n return rec.filled === false;\r\n });\r\n\r\n if (totalComite.true !== undefined) {\r\n setMsjDialog(\r\n 'Debe de completarse TODOS los campos del Comité Ejecutivo Distrital',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n // Se valida que TODOS los campos de la Fiscalía\r\n const totalFiscalia = Lodash.countBy(\r\n listCandidatos,\r\n rec => {\r\n return rec.filled === false;\r\n },\r\n );\r\n\r\n if (totalFiscalia.true !== undefined) {\r\n setMsjDialog(\r\n 'Debe de completarse TODOS los candidatos para la Fiscalía',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n // Segun el estado de la papeleta, se Crea o Actualiza\r\n getNumPapeletaStatus({\r\n papeleta,\r\n provincia,\r\n canton,\r\n distrito,\r\n }).then(result => {\r\n const papeletaStatus = Lodash.get(\r\n result,\r\n ['data'],\r\n 0,\r\n );\r\n\r\n if (papeletaStatus === 1) {\r\n // Encabezado Papeleta\r\n const distritalEnca = {\r\n codprov: provincia,\r\n codcant: canton,\r\n coddist: parseInt(distrito),\r\n cod_estado: 2,\r\n numero: papeleta,\r\n num_consecutivo: consecutivo,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n };\r\n\r\n // Detalle Papeleta\r\n const tFrmsCandidatos = {\r\n delegados: listDelegados,\r\n comite: listComite,\r\n fiscales: listCandidatos,\r\n };\r\n\r\n if (consecutivo === '') {\r\n // Se valida el 20% de la Cuota de Juventud en los DELEGADOS\r\n const porcentajeDelegados = Math.floor(\r\n tFrmsCandidatos.delegados.length * 0.2,\r\n );\r\n\r\n const totalCuotaJuventudD = Lodash.countBy(\r\n tFrmsCandidatos.delegados,\r\n rec => {\r\n return (\r\n Number.isInteger(rec.edad) && rec.edad <= 35\r\n );\r\n },\r\n );\r\n\r\n if (\r\n totalCuotaJuventudD.true === undefined ||\r\n totalCuotaJuventudD.true < porcentajeDelegados\r\n ) {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'La papeleta NO cumple con el 20% de la cuota de Juventud en La lista de Delegados. Favor revise los miembros de su papeleta',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n // Se valida el 20% de la Cuota de Juventud en el COMITE\r\n const porcentajeComite = Math.floor(\r\n tFrmsCandidatos.comite.length * 0.2,\r\n );\r\n\r\n const totalCuotaJuventudC = Lodash.countBy(\r\n tFrmsCandidatos.comite,\r\n rec => {\r\n return (\r\n Number.isInteger(rec.edad) && rec.edad <= 35\r\n );\r\n },\r\n );\r\n\r\n if (\r\n totalCuotaJuventudC.true === undefined ||\r\n totalCuotaJuventudC.true < porcentajeComite\r\n ) {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'La papeleta NO cumple con el 20% de la cuota de Juventud en los Miembros del Comité. Favor revise los miembros de su papeleta',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n // Se Crea Nueva Papeleta\r\n addNew({ distritalEnca, tFrmsCandidatos }).then(\r\n rNew => {\r\n const nCodPapeleta = Lodash.get(\r\n rNew,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n const nConsecutivo = Lodash.get(\r\n rNew,\r\n ['data', 'consecutivo'],\r\n '',\r\n );\r\n const fechaPapeleta = Lodash.get(\r\n rNew,\r\n ['data', 'fecha'],\r\n '',\r\n );\r\n const nMontos = Lodash.get(\r\n rNew,\r\n ['data', 'montos'],\r\n '',\r\n );\r\n\r\n // Se bloquea el numero de papeleta\r\n blockNumPapeleta({\r\n numPapeleta: sPapeleta.value,\r\n codProvincia: sProvincia.value,\r\n codCanton: sCanton.value,\r\n codDistrito: sDistrito.value,\r\n });\r\n\r\n // COMPROBANTE: Se genera el Comprobante de la papeleta\r\n\r\n // Informacion General\r\n const generalInfo = {\r\n provincia: sProvincia.itemLabel,\r\n canton: sCanton.itemLabel,\r\n distrito: sDistrito.itemLabel,\r\n papeleta: sPapeleta.value,\r\n fecha: fechaPapeleta,\r\n consecutivo: nConsecutivo,\r\n };\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Delegados\r\n const candidatosDelegados = tFrmsCandidatos.delegados.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n const listCanDelegados = [];\r\n for (let cD = 0; cD < numDelegados; cD++) {\r\n listCanDelegados.push(\r\n candidatosDelegados[cD],\r\n );\r\n }\r\n\r\n // Informacion Comite\r\n const candidatosComite = tFrmsCandidatos.comite.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n // Informacion Fiscales\r\n const candidatosFiscales = tFrmsCandidatos.fiscales.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n delegados: listCanDelegados,\r\n comite: candidatosComite,\r\n fiscales: candidatosFiscales,\r\n };\r\n const montoInfo = {\r\n papeleta: nMontos.papeleta,\r\n membresia: nMontos.membresia,\r\n total: nMontos.total,\r\n };\r\n\r\n generateComprobante(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n\r\n // PROCESO DE PREVENCIÓN\r\n startPrevencion(\r\n user,\r\n nCodPapeleta,\r\n nConsecutivo,\r\n 1,\r\n 'Papeleta de Distritales',\r\n fechaPapeleta,\r\n gestorInfo,\r\n );\r\n\r\n setSubmitting(false);\r\n setConsecutivo(nConsecutivo);\r\n setCodPapeleta(nCodPapeleta);\r\n setMsjDialog(\r\n 'La información de la papeleta se GUARDÓ correctamente.',\r\n );\r\n setFinalDialog(true);\r\n },\r\n );\r\n } else {\r\n // Se valida el 20% de la Cuota de Juventud en los DELEGADOS\r\n const porcentajeDelegados = Math.floor(\r\n tFrmsCandidatos.delegados.length * 0.2,\r\n );\r\n\r\n const totalCuotaJuventudD = Lodash.countBy(\r\n tFrmsCandidatos.delegados,\r\n rec => {\r\n return (\r\n Number.isInteger(rec.edad) && rec.edad <= 35\r\n );\r\n },\r\n );\r\n\r\n if (\r\n totalCuotaJuventudD.true === undefined ||\r\n totalCuotaJuventudD.true < porcentajeDelegados\r\n ) {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'La papeleta NO cumple con el 20% de la cuota de Juventud en La lista de Delegados. Favor revise los miembros de su papeleta',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n // Se valida el 20% de la Cuota de Juventud en el COMITE\r\n const porcentajeComite = Math.floor(\r\n tFrmsCandidatos.comite.length * 0.2,\r\n );\r\n\r\n const totalCuotaJuventudC = Lodash.countBy(\r\n tFrmsCandidatos.comite,\r\n rec => {\r\n return (\r\n Number.isInteger(rec.edad) && rec.edad <= 35\r\n );\r\n },\r\n );\r\n\r\n if (\r\n totalCuotaJuventudC.true === undefined ||\r\n totalCuotaJuventudC.true < porcentajeComite\r\n ) {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'La papeleta NO cumple con el 20% de la cuota de Juventud en los Miembros del Comité. Favor revise los miembros de su papeleta',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n // Se Actualiza la Papeleta\r\n updatePapeleta({\r\n codPapeleta,\r\n distritalEnca,\r\n tFrmsCandidatos,\r\n }).then(rUpdate => {\r\n const nCodPapeleta = Lodash.get(\r\n rUpdate,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n\r\n const nMontos = Lodash.get(\r\n rUpdate,\r\n ['data', 'montos'],\r\n '',\r\n );\r\n\r\n if (nCodPapeleta !== '') {\r\n // Se bloquea el numero de papeleta\r\n blockNumPapeleta({\r\n numPapeleta: sPapeleta.value,\r\n codProvincia: sProvincia.value,\r\n codCanton: sCanton.value,\r\n codDistrito: sDistrito.value,\r\n });\r\n\r\n // COMPROBANTE: Se genera el Comprobante de la papeleta\r\n\r\n // Informacion General\r\n const generalInfo = {\r\n provincia: sProvincia.itemLabel,\r\n canton: sCanton.itemLabel,\r\n distrito: sDistrito.itemLabel,\r\n papeleta: sPapeleta.value,\r\n fecha: fecPapeleta,\r\n consecutivo,\r\n };\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Delegados\r\n const candidatosDelegados = tFrmsCandidatos.delegados.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n const listCanDelegados = [];\r\n for (let cD = 0; cD < numDelegados; cD++) {\r\n listCanDelegados.push(\r\n candidatosDelegados[cD],\r\n );\r\n }\r\n\r\n // Informacion Comite\r\n const candidatosComite = tFrmsCandidatos.comite.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n // Informacion Fiscales\r\n const candidatosFiscales = tFrmsCandidatos.fiscales.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n delegados: listCanDelegados,\r\n comite: candidatosComite,\r\n fiscales: candidatosFiscales,\r\n };\r\n const montoInfo = {\r\n papeleta: nMontos.papeleta,\r\n membresia: nMontos.membresia,\r\n total: nMontos.total,\r\n };\r\n generateComprobante(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n\r\n // PROCESO DE PREVENCIÓN\r\n startPrevencion(\r\n user,\r\n nCodPapeleta,\r\n consecutivo,\r\n 1,\r\n 'Papeleta de Distritales',\r\n fecPapeleta,\r\n gestorInfo,\r\n );\r\n\r\n setSubmitting(false);\r\n setMsjDialog(\r\n 'La Información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setFinalDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setSubmitting(false);\r\n setOpenDialog(true);\r\n }\r\n });\r\n }\r\n } else {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'ATENCIÓN: El número de papeleta seleccionado YA fue elegido. Debe de seleccionar otro número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n setSubmitting(false);\r\n setSPapeleta(\r\n Lodash.find(papeletas, {\r\n value: 999,\r\n }),\r\n );\r\n setFieldValue('papeleta', 999);\r\n getNumPapeletasDistritales(\r\n provincia,\r\n canton,\r\n distrito,\r\n ).then(r => {\r\n if (r.status === 200) {\r\n const papeletasList = Lodash.get(r, ['data']);\r\n const plist = papeletasList.map(p => {\r\n return {\r\n itemLabel: p.papeleta,\r\n value: p.papeleta,\r\n };\r\n });\r\n plist.unshift({\r\n itemLabel: '- NUMERO DE PAPELETA -',\r\n value: 999,\r\n });\r\n\r\n setPapeletas(plist);\r\n }\r\n });\r\n }\r\n });\r\n };\r\n\r\n const savePapeleta = values => () => {\r\n setIsSaving(true);\r\n const {\r\n provincia,\r\n canton,\r\n distrito,\r\n papeleta,\r\n } = values;\r\n\r\n // Se valida que se haya seleccionado un numero de papeleta\r\n if (papeleta === 999) {\r\n setMsjDialog(\r\n 'Debe seleccionar el número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n return;\r\n }\r\n\r\n const tFrmsCandidatos = {\r\n delegados: listDelegados,\r\n comite: listComite,\r\n fiscales: listCandidatos,\r\n };\r\n\r\n // Se valida que exista al menos 1 candidato en la papeleta\r\n const canSave = verifyIfCanSave(tFrmsCandidatos);\r\n\r\n if (canSave) {\r\n const distritalEnca = {\r\n codprov: provincia,\r\n codcant: canton,\r\n coddist: parseInt(distrito),\r\n cod_estado: 3,\r\n numero: papeleta,\r\n num_consecutivo: consecutivo,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n };\r\n\r\n if (consecutivo === '') {\r\n addNew({ distritalEnca, tFrmsCandidatos }).then(\r\n result => {\r\n const nCodPapeleta = Lodash.get(\r\n result,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n const nConsecutivo = Lodash.get(\r\n result,\r\n ['data', 'consecutivo'],\r\n '',\r\n );\r\n const fechaPapeleta = Lodash.get(\r\n result,\r\n ['data', 'fecha'],\r\n '',\r\n );\r\n setConsecutivo(nConsecutivo);\r\n setCodPapeleta(nCodPapeleta);\r\n setFecPapeleta(fechaPapeleta);\r\n setMsjDialog(\r\n 'La información de la papeleta se GUARDÓ correctamente.',\r\n );\r\n setOpenDialog(true);\r\n },\r\n );\r\n } else {\r\n updatePapeleta({\r\n codPapeleta,\r\n distritalEnca,\r\n tFrmsCandidatos,\r\n }).then(result => {\r\n const nCodPapeleta = Lodash.get(\r\n result,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n if (nCodPapeleta !== '') {\r\n setMsjDialog(\r\n 'La Información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setOpenDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setOpenDialog(true);\r\n }\r\n });\r\n }\r\n } else {\r\n setMsjDialog(\r\n 'Al menos debe de haber ingresado un candidato en la papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n }\r\n };\r\n\r\n AddDistritales.propTypes = {};\r\n\r\n return (\r\n <>\r\n {crudAvailable ? (\r\n \r\n \r\n \r\n \r\n \r\n Nueva Papeleta Distrital\r\n {\r\n history.push('/distritales');\r\n }}\r\n >\r\n Regresar\r\n \r\n \r\n \r\n {formik => (\r\n <>\r\n
\r\n \r\n \r\n

Provincia

\r\n \r\n setProvincia(provincia)\r\n }\r\n />\r\n
\r\n \r\n

Cantón

\r\n \r\n setCanton(canton)\r\n }\r\n />\r\n
\r\n \r\n

Distrito Administrativo

\r\n \r\n setDistrito(distrito)\r\n }\r\n />\r\n
\r\n \r\n \r\n \r\n

\r\n Números de papeleta\r\n disponibles:\r\n

\r\n \r\n setPapeleta(papeleta)\r\n }\r\n />\r\n
\r\n \r\n \r\n\r\n {showForm ? (\r\n
\r\n \r\n Datos del Gestor\r\n \r\n \r\n \r\n \r\n Estado\r\n \r\n \r\n {getEstadoPapeleta(\r\n statusPapeleta,\r\n ) === 'Inscrita'\r\n ? 'Confección'\r\n : getEstadoPapeleta(\r\n statusPapeleta,\r\n )}\r\n
\r\n \r\n \r\n \r\n Fecha\r\n \r\n \r\n {dateField}\r\n \r\n \r\n \r\n \r\n Consecutivo\r\n \r\n \r\n {consecutivo}\r\n \r\n \r\n \r\n \r\n Cédula\r\n \r\n \r\n {user.num_cedula}\r\n \r\n \r\n \r\n \r\n Nombre\r\n \r\n \r\n {user.des_nombre}\r\n \r\n \r\n \r\n \r\n Provincia\r\n \r\n \r\n {sProvincia.itemLabel}\r\n \r\n \r\n \r\n \r\n Cantón\r\n \r\n \r\n {sCanton.itemLabel}\r\n \r\n \r\n \r\n \r\n Distrito\r\n \r\n \r\n {sDistrito.itemLabel}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n

\r\n NOTA: * La persona que\r\n indique el icono con una\r\n  \r\n \r\n  pertenece al grupo\r\n de juventud\r\n

\r\n
\r\n \r\n \r\n {formik.isSubmitting ? (\r\n \r\n ) : (\r\n <>\r\n Enviar\r\n \r\n \r\n )}\r\n \r\n \r\n {isSaving ? (\r\n \r\n ) : (\r\n <>\r\n Guardar\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Entendido\r\n \r\n \r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Cerrar\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n

\r\n Esta sección se encuentra temporalmente\r\n deshabilitada.
\r\n Favor comunicarse con Ezequiel Hernández al\r\n 2519-5521 o al correo\r\n ehernandez@plndigital.com\r\n

\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default withStyles(style)(AddDistritales);\r\n","function createData(\r\n id,\r\n provincia,\r\n canton,\r\n movimiento,\r\n numero,\r\n estado,\r\n edit,\r\n) {\r\n return {\r\n id,\r\n provincia,\r\n canton,\r\n movimiento,\r\n numero,\r\n estado,\r\n edit,\r\n };\r\n}\r\n\r\nexport const tableHeaders = [\r\n {\r\n name: 'Consecutivo',\r\n },\r\n {\r\n name: 'Provincia',\r\n },\r\n {\r\n name: 'Cantón',\r\n },\r\n {\r\n name: 'Movimiento',\r\n },\r\n {\r\n name: 'Número',\r\n },\r\n {\r\n name: 'Estado',\r\n },\r\n];\r\n\r\nexport const dataRows = [\r\n createData(\r\n 1,\r\n 'Heredia',\r\n 'Central',\r\n 'Mujeres',\r\n 8,\r\n 'Preinscrita',\r\n ),\r\n createData(\r\n 2,\r\n 'Heredia',\r\n 'Central',\r\n 'Trabajadores',\r\n 8,\r\n 'Preinscrita',\r\n ),\r\n createData(\r\n 3,\r\n 'Heredia',\r\n 'Central',\r\n 'Juventud',\r\n 8,\r\n 'Preinscrita',\r\n ),\r\n createData(\r\n 4,\r\n 'Heredia',\r\n 'Central',\r\n 'Cooperativo',\r\n 8,\r\n 'Anulada',\r\n ),\r\n createData(\r\n 5,\r\n 'Heredia',\r\n 'Sto Domingo',\r\n 'Mujeres',\r\n 6,\r\n 'Preinscrita',\r\n ),\r\n createData(\r\n 6,\r\n 'Heredia',\r\n 'Sto Domingo',\r\n 'Trabajadores',\r\n 6,\r\n 'Preinscrita',\r\n ),\r\n createData(\r\n 7,\r\n 'Heredia',\r\n 'Sto Domingo',\r\n 'Juventud',\r\n 6,\r\n 'Preinscrita',\r\n ),\r\n createData(\r\n 8,\r\n 'Heredia',\r\n 'Sto Domingo',\r\n 'Cooperativo',\r\n 6,\r\n 'Preinscrita',\r\n ),\r\n];\r\n","import axios from 'axios';\r\n\r\nconst axiosInstance = axios.create({\r\n baseURL: process.env.REACT_APP_API_BASE_URL,\r\n responseType: 'json',\r\n});\r\n\r\nconst getAllPapeletasByUserId = _ced => {\r\n return axiosInstance.get(`papeletaCantonal/${_ced}`);\r\n};\r\n\r\nconst declinePapeleta = params => {\r\n const { codPapeleta, cedulaGestor, consecutivo } = params;\r\n\r\n const info = {\r\n codPapeleta,\r\n cedulaGestor,\r\n consecutivo,\r\n };\r\n\r\n return axiosInstance.post(\r\n `papeletaCantonal/anular`,\r\n info,\r\n );\r\n};\r\n\r\nexport default {\r\n getCantonales: getAllPapeletasByUserId,\r\n actionDeclinePapeleta: declinePapeleta,\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { useJwt } from 'react-jwt';\r\nimport BlockIcon from '@material-ui/icons/Block';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport PrintIcon from '@material-ui/icons/Print';\r\nimport { tableHeaders } from './data';\r\nimport MacroList from '../MacroList/MacroList';\r\nimport cantonalesApi from '../../Core/Api/cantonalesApi';\r\nimport { getDataComprobante } from '../../Core/Api/comprobanteApi';\r\nimport Storage from '../../Storage/Storage';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Filters from '../../Components/Filters/RegistrosElectFilter';\r\nimport PLNDialog from '../../Components/PLNDialog/PLNDialog';\r\n\r\nimport { generateComprobanteCantonal } from '../../Core/Utils/Comprobante';\r\nimport { useCRUDAvailable } from '../../Core/Api/periodoApi';\r\n\r\nfunction createData(_data) {\r\n const filterEstado = Consts.estadosDistritales.filter(\r\n status => {\r\n return status.codigo === _data.cod_estado;\r\n },\r\n );\r\n const filterMovimiento = Consts.movimientosCantonales.filter(\r\n status => {\r\n return status.codigo === _data.ind_movimiento;\r\n },\r\n );\r\n\r\n return {\r\n consecutivo: _data.num_consecutivo,\r\n provincia: _data.provincia,\r\n canton: _data.canton,\r\n movimiento: filterMovimiento[0].movimiento,\r\n numero: _data.numero,\r\n cod_estado: filterEstado[0].estado,\r\n cod_papeleta: _data.cod_papeleta,\r\n };\r\n}\r\n\r\nconst useStyles = makeStyles(() => ({\r\n btnAdd: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n}));\r\n\r\nconst Cantonales = () => {\r\n // Se valida si esta habilitado CRUD\r\n const isCRUDAvailable = useCRUDAvailable();\r\n const crudAvailable = Lodash.get(\r\n isCRUDAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n const classes = useStyles();\r\n const tokenStorage = Storage.instance;\r\n\r\n const [user, setUser] = useState([]);\r\n const [items, setItems] = useState([]);\r\n const [isDataEmpty, setDataEmpty] = useState(false);\r\n const [filteredItems, setFilteredItems] = useState([]); // used for filtering\r\n\r\n const [filters, setFilters] = useState({\r\n provincia: '',\r\n canton: '',\r\n movimiento: '',\r\n });\r\n\r\n const { decodedToken } = useJwt(tokenStorage.getToken());\r\n\r\n const [open, setOpenDialog] = useState(false);\r\n const [isRemoved, setIsRemoved] = useState(false); // used on remove modal\r\n const [removedMsj, setRemoveMsj] = useState(\r\n 'La Papeleta será anulada. ¿Desea proceder?',\r\n );\r\n const [dataRemove, setDataRemove] = React.useState(null);\r\n const [hiddenBtn, setHiddenBtn] = useState(false);\r\n\r\n const getFilterKeys = Object.getOwnPropertyNames(filters);\r\n const TIMING_ON_SEARCH = 900;\r\n\r\n useEffect(() => {\r\n if (decodedToken) {\r\n setUser(decodedToken);\r\n }\r\n }, [decodedToken]);\r\n\r\n const printComprobante = codPapeleta => {\r\n getDataComprobante({\r\n codPapeleta,\r\n type: 3,\r\n }).then(r => {\r\n const comprobanteData = Lodash.get(\r\n r,\r\n ['data', 'response'],\r\n [],\r\n );\r\n\r\n // Informacion General\r\n const { generalInfo } = comprobanteData;\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: comprobanteData.comite,\r\n };\r\n const montoInfo = {\r\n papeleta: comprobanteData.montosInfo.papeleta,\r\n membresia: comprobanteData.montosInfo.membresia,\r\n total: comprobanteData.montosInfo.total,\r\n };\r\n\r\n generateComprobanteCantonal(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n });\r\n };\r\n\r\n /**\r\n * Filter Items\r\n */\r\n const applyFilters = async () => {\r\n const activeFilters = getFilterKeys.filter(\r\n filter => filters[filter] !== '',\r\n );\r\n\r\n setDataEmpty(true);\r\n\r\n if (activeFilters.length > 0) {\r\n // eslint-disable-next-line no-unused-vars\r\n const dataFiltered = activeFilters.map(myFilter => {\r\n const result = items.filter(_item => {\r\n let currentFilter = _item[myFilter];\r\n if (typeof currentFilter === 'number')\r\n currentFilter = currentFilter.toString();\r\n\r\n return currentFilter\r\n .toLowerCase()\r\n .includes(filters[myFilter].toLowerCase());\r\n });\r\n\r\n setDataEmpty(!result.length > 0);\r\n if (result.length > 0) setFilteredItems(result);\r\n return result;\r\n });\r\n } else {\r\n setFilteredItems(items);\r\n setDataEmpty(false);\r\n }\r\n };\r\n\r\n /**\r\n * List all actions that a user can do for each item in the list\r\n */\r\n const setActions = () => {\r\n const actions = [];\r\n\r\n if (crudAvailable) {\r\n const actionEdit = {\r\n aria: 'Edit Cantonal',\r\n key: 'edit',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n window.location.href = `/cantonales/edit/${_item.cod_papeleta}`;\r\n },\r\n };\r\n\r\n actions.push(actionEdit);\r\n\r\n const actionDecline = {\r\n aria: 'Anular Cantonal',\r\n key: 'decline',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n setDataRemove(_item);\r\n setOpenDialog(true);\r\n },\r\n };\r\n\r\n actions.push(actionDecline);\r\n }\r\n const actionPrintComprobante = {\r\n aria: 'Imprimir Comprobante',\r\n key: 'imprimir',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n printComprobante(_item.cod_papeleta);\r\n },\r\n };\r\n\r\n actions.push(actionPrintComprobante);\r\n\r\n return actions;\r\n };\r\n\r\n /**\r\n * Anular papeleta\r\n */\r\n const declineCantonalesByNum = async () => {\r\n const currentCodPapeleta = dataRemove.cod_papeleta;\r\n\r\n if (currentCodPapeleta && currentCodPapeleta > 0) {\r\n setIsRemoved(true);\r\n\r\n await cantonalesApi\r\n .actionDeclinePapeleta({\r\n codPapeleta: currentCodPapeleta,\r\n cedulaGestor: decodedToken.num_cedula,\r\n consecutivo: dataRemove.consecutivo,\r\n })\r\n .then(_response => {\r\n const info = _response.data.response;\r\n\r\n if (info === 1 && _response.status === 200) {\r\n setIsRemoved(false);\r\n setHiddenBtn(true);\r\n setRemoveMsj(\r\n `Papeleta: ${currentCodPapeleta} anulada correctamente.`,\r\n );\r\n setTimeout(() => {\r\n setOpenDialog(false);\r\n window.location.href = '/cantonales';\r\n }, 3000);\r\n } else {\r\n setHiddenBtn(false);\r\n setRemoveMsj(\r\n 'La operación no se pudo completar. Intente de nuevo.',\r\n );\r\n }\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n async function fetchListAPI() {\r\n if (decodedToken) {\r\n await cantonalesApi\r\n .getCantonales(decodedToken.num_cedula)\r\n .then(_response => {\r\n const info = _response.data.response;\r\n\r\n if (info instanceof Object) {\r\n const rowItems = info.map(row => {\r\n return createData(row);\r\n });\r\n\r\n setItems(rowItems);\r\n setFilteredItems(rowItems);\r\n setDataEmpty(false);\r\n } else {\r\n setDataEmpty(true);\r\n }\r\n })\r\n .catch(_error => {\r\n // eslint-disable-next-line no-console\r\n console.log(_error);\r\n });\r\n }\r\n }\r\n\r\n fetchListAPI();\r\n }, [decodedToken]);\r\n\r\n useEffect(() => {\r\n async function proceedFilters() {\r\n await applyFilters();\r\n }\r\n\r\n const timeoutId = setTimeout(() => {\r\n if (filteredItems.length > 0) proceedFilters();\r\n }, TIMING_ON_SEARCH);\r\n return () => clearTimeout(timeoutId);\r\n }, [filters]);\r\n\r\n const listFilters = () => {\r\n return [\r\n {\r\n label: 'Provincia:',\r\n action: async ev => {\r\n const updatedValue = {\r\n provincia: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.provincia,\r\n inputId: 'filter-provincia',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: 'Cantón:',\r\n action: async ev => {\r\n const updatedValue = {\r\n canton: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.canton,\r\n inputId: 'filter-canton',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: 'Movimiento:',\r\n action: async ev => {\r\n const updatedValue = {\r\n movimiento: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.movimiento,\r\n inputId: 'filter-movimiento',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n ];\r\n };\r\n\r\n return (\r\n \r\n }\r\n dataEmpty={isDataEmpty}\r\n listName=\"Lista de Papeletas Cantonales\"\r\n uiStylesClasses={classes}\r\n btnConfig={{\r\n name: '+ Registro',\r\n event: () =>\r\n (window.location.href = `/cantonales/add`),\r\n }}\r\n actionConfig={setActions}\r\n tableHeads={tableHeaders}\r\n tableBody={filteredItems}\r\n isCrudAvailable={crudAvailable}\r\n />\r\n {}}\r\n title=\"Anular Papeleta\"\r\n bodymessage={removedMsj}\r\n buttons={\r\n hiddenBtn\r\n ? []\r\n : [\r\n {\r\n actionName: 'cancel',\r\n color: 'simple',\r\n title: 'Cerrar',\r\n clickHander: () => {\r\n setOpenDialog(!open);\r\n },\r\n },\r\n {\r\n actionName: 'delete',\r\n disabled: isRemoved,\r\n color: 'remove',\r\n title: isRemoved ? (\r\n \r\n ) : (\r\n 'Anular'\r\n ),\r\n clickHander: declineCantonalesByNum,\r\n },\r\n ]\r\n }\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default Cantonales;\r\n","const styles = () => ({\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n btnBack: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n btnActions: {\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n sectionTitle: {\r\n fontSize: '16px',\r\n marginTop: 10,\r\n marginBottom: 10,\r\n padding: 5,\r\n color: '#fff',\r\n borderRadius: 4,\r\n background: '#008945',\r\n },\r\n field: {\r\n border: 'solid thin #ccc',\r\n padding: 20,\r\n background: '#f1f1f1',\r\n },\r\n fieldFilled: {\r\n border: 'solid thin #ccc',\r\n padding: 10,\r\n background: '#f1f1f1',\r\n },\r\n fieldMin: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 20,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n },\r\n fieldMinFilled: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 10,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n },\r\n fieldTitle: { margin: 0, padding: 0 },\r\n frmText: {\r\n width: '100%',\r\n height: '38px',\r\n padding: 5,\r\n margin: 0,\r\n display: 'block',\r\n fontSize: '.9em',\r\n lineHeight: 38,\r\n borderColor: '#797979',\r\n borderStyle: 'solid',\r\n borderWidth: 1,\r\n borderRadius: 10,\r\n },\r\n frmIconButton: { marginLeft: 10 },\r\n btnSubmitting: {\r\n width: 104,\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n});\r\n\r\nexport default styles;\r\n","/* eslint-disable no-unused-vars */\r\nimport axios from 'axios';\r\nimport Lodash from 'lodash';\r\nimport { useQuery } from 'react-query';\r\nimport Consts from '../Consts/Consts';\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API_BASE_URL;\r\n\r\nexport const addNew = params => {\r\n const { cantonalEnca, tFrmsCandidatos } = params;\r\n\r\n const papeletaData = {\r\n cantonalEnca,\r\n tFrmsCandidatos,\r\n };\r\n\r\n return axios.post('/papeletaCantonal', papeletaData);\r\n};\r\n\r\nexport const getNumPapeletasCantonales = (\r\n idProvince,\r\n idCanton,\r\n idMovimiento,\r\n) => {\r\n const url = [\r\n `/papeletaCantonal/numPapeletas/${idProvince}/${idCanton}/${idMovimiento}`,\r\n ];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const searchPapeletas = (\r\n codProvincia,\r\n codCanton,\r\n codMovimiento,\r\n numero,\r\n) => {\r\n const url = [\r\n `/papeletaCantonal/doSearch/${codProvincia}/${codCanton}/${codMovimiento}/${numero}`,\r\n ];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const getDetallePapeleta = codPapeleta => {\r\n const url = [\r\n `/papeletaCantonal/getDetallePapeleta/${codPapeleta}`,\r\n ];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const getNumPapeletaStatus = params => {\r\n const {\r\n papeleta,\r\n provincia,\r\n canton,\r\n movimiento,\r\n } = params;\r\n const url = [\r\n `/papeletaCantonal/numPapeletaStatus/${papeleta}/${provincia}/${canton}/${movimiento}`,\r\n ];\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const blockNumPapeleta = params => {\r\n const {\r\n numPapeleta,\r\n codProvincia,\r\n codCanton,\r\n codMovimiento,\r\n } = params;\r\n\r\n const papeletaData = {\r\n numPapeleta,\r\n codProvincia,\r\n codCanton,\r\n codMovimiento,\r\n };\r\n\r\n return axios.post(\r\n '/papeletaCantonal/blockNumPapeleta',\r\n papeletaData,\r\n );\r\n};\r\n\r\nexport const updatePapeleta = params => {\r\n const {\r\n codPapeleta,\r\n cantonalEnca,\r\n tFrmsCandidatos,\r\n } = params;\r\n\r\n const papeletaData = {\r\n codPapeleta,\r\n cantonalEnca,\r\n tFrmsCandidatos,\r\n };\r\n\r\n return axios.post(\r\n '/papeletaCantonal/update',\r\n papeletaData,\r\n );\r\n};\r\n\r\nconst getCandidatosPapeleta = async codPapeleta => {\r\n const url = [\r\n `/papeletaCantonal/getCandidatosPapeleta/${codPapeleta}`,\r\n ];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n\r\n return data;\r\n};\r\n\r\nconst searchByCedula = async cedula => {\r\n const url = [`/padron/searchbycedula/${cedula}`];\r\n const { data } = await axios.get(url.join('&'));\r\n return data;\r\n};\r\n\r\nconst preparedList = list => {\r\n const unlockedList = list.map(e => {\r\n Lodash.set(e, 'enabled', false);\r\n return e;\r\n });\r\n return unlockedList;\r\n};\r\n\r\nconst getAllDataPapeleta = async (data, codPapeleta) => {\r\n const initValues = Consts.cantonalesInitValues;\r\n Lodash.set(initValues, 'provincia', data.codprov);\r\n Lodash.set(initValues, 'canton', data.codcant);\r\n Lodash.set(initValues, 'movimiento', data.ind_movimiento);\r\n // Estado: REGISTRADA\r\n if (data.cod_estado === 2) {\r\n Lodash.set(initValues, 'papeleta', 999);\r\n // Estado: INSCRITA\r\n } else {\r\n const numStatus = await getNumPapeletaStatus({\r\n papeleta: data.numero,\r\n provincia: data.codprov,\r\n canton: data.codcant,\r\n movimiento: data.ind_movimiento,\r\n });\r\n\r\n const numeroStatus = Lodash.get(numStatus, ['data']);\r\n\r\n if (numeroStatus === 1) {\r\n Lodash.set(initValues, 'papeleta', data.numero);\r\n } else {\r\n Lodash.set(initValues, 'papeleta', 999);\r\n }\r\n }\r\n\r\n const allPapeletas = await getNumPapeletasCantonales(\r\n data.codprov,\r\n data.codcant,\r\n data.ind_movimiento,\r\n );\r\n\r\n const papeletasList = Lodash.get(allPapeletas, ['data']);\r\n const plist = papeletasList.map(({ numero }) => {\r\n return {\r\n itemLabel: numero,\r\n value: numero,\r\n };\r\n });\r\n plist.unshift({\r\n itemLabel: '- NUMERO DE PAPELETA -',\r\n value: 999,\r\n });\r\n\r\n // Se preparan las listas para que los campos esten desbloquedos\r\n const iListComite = preparedList(\r\n Consts.initListComiteCantonal,\r\n );\r\n\r\n // Se obtiene el numero de delegados\r\n const numCandidatos = 7;\r\n\r\n // Se obtienen todos los candidatos registrados en la papeleta\r\n const candidatos = await getCandidatosPapeleta(\r\n codPapeleta,\r\n );\r\n\r\n let sexFieldAs = '';\r\n let isSexOrderRequired = true;\r\n let onlyJuventud = false;\r\n\r\n if (data.ind_movimiento === 1) {\r\n sexFieldAs = 'F';\r\n isSexOrderRequired = false;\r\n }\r\n\r\n if (data.ind_movimiento === 2) {\r\n onlyJuventud = true;\r\n }\r\n\r\n /* ====== Lista de Comité ====== */\r\n const listComite = await Promise.all(\r\n candidatos.map(async (d, index) => {\r\n const miembro = await searchByCedula(d.NUM_CEDULA);\r\n\r\n // Datos de la persona\r\n const person = Lodash.get(miembro, ['response', 0]);\r\n\r\n // Nombre de la persona\r\n const personName = `${person.des_nombre} ${person.des_apell1} ${person.des_apell2}`;\r\n const personCedula = person.num_cedula;\r\n const personEdad = person.num_edad;\r\n let sexVal = 'M';\r\n if (person.sexo !== 1) {\r\n sexVal = 'F';\r\n }\r\n\r\n // Nombre del campo\r\n const field = Lodash.find(iListComite, {\r\n numPuesto: d.NUM_PUESTO,\r\n });\r\n\r\n Lodash.set(initValues, field.fieldName, personCedula);\r\n\r\n return {\r\n id: field.id,\r\n lugar: field.lugar,\r\n numPuesto: d.NUM_PUESTO,\r\n fieldName: field.fieldName,\r\n cedula: personCedula,\r\n nombre: personName,\r\n sexo: sexVal,\r\n edad: personEdad,\r\n enabled: true,\r\n filled: true,\r\n };\r\n }),\r\n );\r\n\r\n const aComite = iListComite.map(com => {\r\n const f = Lodash.find(listComite, {\r\n fieldName: com.fieldName,\r\n });\r\n\r\n if (f === undefined) {\r\n return com;\r\n }\r\n return f;\r\n });\r\n\r\n // Merging List Comite\r\n const allComite = Lodash.merge(iListComite, aComite);\r\n\r\n const firstComite = allComite[0].sexo;\r\n let sexOrderComite = Consts.comiteCantonalMOrder;\r\n if (firstComite !== 'M') {\r\n sexOrderComite = Consts.comiteCantonalFOrder;\r\n }\r\n\r\n // Se establece el sexo para el resto de la lista\r\n const finalListComite = Lodash.map(\r\n allComite,\r\n (d, index) => {\r\n const newData = {\r\n id: d.id,\r\n lugar: d.lugar,\r\n numPuesto: d.numPuesto,\r\n fieldName: d.fieldName,\r\n cedula: d.cedula,\r\n nombre: d.nombre,\r\n sexo: isSexOrderRequired\r\n ? sexOrderComite[index].sexo\r\n : sexFieldAs,\r\n edad: d.edad,\r\n enabled: d.cedula !== '',\r\n filled: d.filled,\r\n };\r\n\r\n return newData;\r\n },\r\n );\r\n\r\n return {\r\n papeletaData: data,\r\n numCandidatos,\r\n papeletas: plist,\r\n candidatos: {\r\n listComite: finalListComite,\r\n },\r\n initValues,\r\n onlyJuventud,\r\n sexFieldAs,\r\n isSexOrderRequired,\r\n };\r\n};\r\n\r\nexport const getPapeletaInfo = async params => {\r\n try {\r\n const { cedGestor, codPapeleta } = params;\r\n\r\n const url = [\r\n `/papeletaCantonal/getByCodPapeleta/${cedGestor}/${codPapeleta}`,\r\n ];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n const papeletaData = getAllDataPapeleta(\r\n data.response[0],\r\n codPapeleta,\r\n );\r\n\r\n return papeletaData;\r\n } catch (e) {\r\n return { papeletaData: {} };\r\n }\r\n};\r\n\r\nexport const usePapeletaInfo = (cedGestor, codPapeleta) => {\r\n return useQuery(\r\n ['papeletaData', cedGestor, codPapeleta],\r\n () => getPapeletaInfo(cedGestor, codPapeleta),\r\n );\r\n};\r\n","/* eslint-disable camelcase */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport Lodash from 'lodash';\r\nimport Container from '@material-ui/core/Container';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Grid, Button, Divider } from '@material-ui/core';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport Box from '@material-ui/core/Box';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport SendIcon from '@material-ui/icons/Send';\r\nimport Chip from '@material-ui/core/Chip';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\n\r\nimport { Formik, Field } from 'formik';\r\nimport { useJwt } from 'react-jwt';\r\nimport * as Yup from 'yup';\r\nimport Loading from '../../Components/Loading/Loading';\r\nimport { PlnDropdown } from '../../Components/Input';\r\nimport Copyright from '../Copyright/Copyright';\r\nimport ListSearch from '../../Components/ListSearch/ListSearch';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport style from './styles';\r\nimport { getEstadoPapeleta } from '../../Core/Utils/Utils';\r\nimport { generateComprobanteCantonal } from '../../Core/Utils/Comprobante';\r\nimport { startPrevencion } from '../../Core/Utils/Prevencion';\r\nimport Storage from '../../Storage/Storage';\r\n\r\nimport {\r\n // addNew,\r\n updatePapeleta,\r\n usePapeletaInfo,\r\n getNumPapeletasCantonales,\r\n getNumPapeletaStatus,\r\n blockNumPapeleta,\r\n} from '../../Core/Api/papeletaCantonal';\r\n\r\nimport { useCRUDAvailable } from '../../Core/Api/periodoApi';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nconst EditCantonales = props => {\r\n // Se valida si esta habilitado CRUD\r\n const isCRUDAvailable = useCRUDAvailable();\r\n const crudAvailable = Lodash.get(\r\n isCRUDAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n const { classes } = props;\r\n const { id } = useParams();\r\n const history = useHistory();\r\n\r\n const [user, setUser] = useState([]);\r\n const [isSaving, setIsSaving] = useState(false);\r\n\r\n const [listComite, setListComite] = useState(\r\n Consts.initListComiteCantonal,\r\n );\r\n\r\n const [msjDialog, setMsjDialog] = useState('');\r\n const [open, setOpenDialog] = React.useState(false);\r\n const [finalDialog, setFinalDialog] = React.useState(\r\n false,\r\n );\r\n const handleClose = () => {\r\n setOpenDialog(false);\r\n setIsSaving(false);\r\n };\r\n const closeFinalDialog = () => {\r\n history.push('/cantonales');\r\n };\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const tokenData = Storage.instance;\r\n const { decodedToken } = useJwt(tokenData.getToken());\r\n\r\n const numCedula = Lodash.get(\r\n decodedToken,\r\n ['num_cedula'],\r\n 0,\r\n );\r\n\r\n const { data } = usePapeletaInfo({\r\n cedGestor: numCedula,\r\n codPapeleta: id,\r\n });\r\n\r\n // Datos Generales de la papeleta\r\n const papeletaData = Lodash.get(\r\n data,\r\n ['papeletaData'],\r\n [],\r\n );\r\n\r\n // Cantidad de Candidatos\r\n // eslint-disable-next-line no-unused-vars\r\n const numDelegados = Lodash.get(\r\n data,\r\n ['numDelegados'],\r\n [],\r\n );\r\n\r\n // Lista de Candidatos incritos\r\n const candidatos = Lodash.get(data, ['candidatos'], []);\r\n\r\n useEffect(() => {\r\n if (decodedToken) {\r\n setUser(decodedToken);\r\n }\r\n }, [decodedToken]);\r\n\r\n if (!Lodash.isEmpty(papeletaData)) {\r\n const {\r\n numero,\r\n cod_estado,\r\n provincia,\r\n canton,\r\n codcant,\r\n codprov,\r\n ind_movimiento,\r\n fec_registro,\r\n num_consecutivo,\r\n } = papeletaData;\r\n\r\n const isSexOrderRequired = Lodash.get(\r\n data,\r\n ['isSexOrderRequired'],\r\n [],\r\n );\r\n // console.log(isSexOrderRequired);\r\n const sexFieldAs = Lodash.get(data, ['sexFieldAs'], []);\r\n const onlyJuventud = Lodash.get(\r\n data,\r\n ['onlyJuventud'],\r\n [],\r\n );\r\n\r\n const filterMovimiento = Consts.movimientosCantonales.filter(\r\n status => {\r\n return status.codigo === ind_movimiento;\r\n },\r\n );\r\n\r\n const desMovimiento = filterMovimiento[0].movimiento.toUpperCase();\r\n\r\n // Date Options\r\n const options = {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n };\r\n\r\n const today = new Date(fec_registro);\r\n const papeletaDate = today.toLocaleDateString(\r\n 'es-ES',\r\n options,\r\n );\r\n\r\n const initialValues = Lodash.get(\r\n data,\r\n ['initValues'],\r\n [],\r\n );\r\n\r\n const papeletas = Lodash.get(data, ['papeletas'], []);\r\n\r\n const setPapeleta = p => {\r\n initialValues.papeleta = p;\r\n };\r\n\r\n // Se valida que exista al menos 1 en la lista\r\n const verifyIfCanSave = lCandidates => {\r\n const totalRegistersOnList = Object.keys(\r\n lCandidates,\r\n ).map(c => {\r\n const total = Lodash.countBy(\r\n lCandidates[c],\r\n rec => {\r\n return rec.filled === true;\r\n },\r\n );\r\n const result = Lodash.get(total, 'true', 0);\r\n return { count: result };\r\n });\r\n\r\n const canSave = Lodash.find(\r\n totalRegistersOnList,\r\n o => {\r\n return o.count > 0;\r\n },\r\n );\r\n\r\n let status = true;\r\n if (!canSave) {\r\n status = false;\r\n }\r\n\r\n return status;\r\n };\r\n\r\n const saveForm = (\r\n values,\r\n { setSubmitting, setFieldValue },\r\n ) => {\r\n const { papeleta, movimiento } = values;\r\n // Se valida que se haya seleccionado un numero de papeleta\r\n if (papeleta === 999) {\r\n setMsjDialog(\r\n 'Debe seleccionar el número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n setSubmitting(false);\r\n\r\n return;\r\n }\r\n\r\n // Se valida que TODOS los campos esten completos al 100%\r\n const totalComite = Lodash.countBy(\r\n listComite,\r\n rec => {\r\n return rec.filled === false;\r\n },\r\n );\r\n\r\n if (totalComite.true !== undefined) {\r\n setMsjDialog(\r\n 'Debe de completarse TODOS los campos de la papeleta al 100%',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n // Segun el estado de la papeleta, se Crea o Actualiza\r\n getNumPapeletaStatus({\r\n papeleta,\r\n provincia: codprov,\r\n canton: codcant,\r\n movimiento,\r\n }).then(result => {\r\n const papeletaStatus = Lodash.get(\r\n result,\r\n ['data'],\r\n 0,\r\n );\r\n\r\n if (papeletaStatus === 1) {\r\n // Encabezado Papeleta\r\n const cantonalEnca = {\r\n codprov,\r\n codcant,\r\n ind_movimiento,\r\n cod_estado: 2,\r\n numero: papeleta,\r\n num_consecutivo,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n };\r\n\r\n // Detalle Papeleta\r\n const tFrmsCandidatos = {\r\n comite: listComite,\r\n };\r\n\r\n if (ind_movimiento !== 2) {\r\n // Se valida el 20% de la Cuota de Juventud en el COMITE\r\n const porcentajeComite = Math.floor(\r\n tFrmsCandidatos.comite.length * 0.2,\r\n );\r\n\r\n const totalCuotaJuventudC = Lodash.countBy(\r\n tFrmsCandidatos.comite,\r\n rec => {\r\n return (\r\n Number.isInteger(rec.edad) &&\r\n rec.edad <= 35\r\n );\r\n },\r\n );\r\n\r\n if (\r\n totalCuotaJuventudC.true === undefined ||\r\n totalCuotaJuventudC.true < porcentajeComite\r\n ) {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'La papeleta NO cumple con el 20% de la cuota de Juventud. Favor revise los miembros de su papeleta',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n }\r\n\r\n // Se Actualiza la Papeleta\r\n updatePapeleta({\r\n codPapeleta: id,\r\n cantonalEnca,\r\n tFrmsCandidatos,\r\n }).then(rUpdate => {\r\n const nCodPapeleta = Lodash.get(\r\n rUpdate,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n\r\n const nMontos = Lodash.get(\r\n rUpdate,\r\n ['data', 'montos'],\r\n '',\r\n );\r\n\r\n if (nCodPapeleta !== '') {\r\n // Se bloquea el numero de papeleta\r\n blockNumPapeleta({\r\n numPapeleta: papeleta,\r\n codProvincia: codprov,\r\n codCanton: codcant,\r\n codMovimiento: movimiento,\r\n });\r\n\r\n // COMPROBANTE: Se genera el Comprobante de la papeleta\r\n // Informacion General\r\n const generalInfo = {\r\n provincia,\r\n canton,\r\n movimiento: desMovimiento,\r\n papeleta,\r\n fecha: papeletaDate,\r\n consecutivo: num_consecutivo,\r\n };\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Comite\r\n const candidatosComite = tFrmsCandidatos.comite.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: candidatosComite,\r\n };\r\n const montoInfo = {\r\n papeleta: nMontos.papeleta,\r\n membresia: nMontos.membresia,\r\n total: nMontos.total,\r\n };\r\n\r\n generateComprobanteCantonal(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n\r\n // PROCESO DE PREVENCIÓN\r\n startPrevencion(\r\n user,\r\n nCodPapeleta,\r\n num_consecutivo,\r\n 3,\r\n 'Papeleta de Cantonales',\r\n papeletaDate,\r\n gestorInfo,\r\n );\r\n\r\n setSubmitting(false);\r\n setMsjDialog(\r\n 'La Información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setFinalDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setSubmitting(false);\r\n setOpenDialog(true);\r\n }\r\n });\r\n } else {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'ATENCIÓN: El número de papeleta seleccionado YA fue elegido. Debe de seleccionar otro número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n setSubmitting(false);\r\n setFieldValue('papeleta', 999);\r\n getNumPapeletasCantonales(\r\n codprov,\r\n codcant,\r\n movimiento,\r\n ).then(r => {\r\n if (r.status === 200) {\r\n const papeletasList = Lodash.get(r, ['data']);\r\n const plist = papeletasList.map(p => {\r\n return {\r\n itemLabel: p.papeleta,\r\n value: p.papeleta,\r\n };\r\n });\r\n plist.unshift({\r\n itemLabel: '- NUMERO DE PAPELETA -',\r\n value: 999,\r\n });\r\n\r\n // setPapeletas(plist);\r\n }\r\n });\r\n }\r\n });\r\n };\r\n\r\n const savePapeleta = values => () => {\r\n setIsSaving(true);\r\n const { papeleta } = values;\r\n\r\n // Se valida que se haya seleccionado un numero de papeleta\r\n if (papeleta === 999) {\r\n setMsjDialog(\r\n 'Debe seleccionar el número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n return;\r\n }\r\n\r\n const tFrmsCandidatos = {\r\n comite: listComite,\r\n };\r\n\r\n const canSave = verifyIfCanSave(tFrmsCandidatos);\r\n\r\n if (canSave) {\r\n const cantonalEnca = {\r\n codprov,\r\n codcant,\r\n ind_movimiento,\r\n cod_estado: 3,\r\n numero: papeleta,\r\n num_consecutivo,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n };\r\n\r\n updatePapeleta({\r\n codPapeleta: id,\r\n cantonalEnca,\r\n tFrmsCandidatos,\r\n }).then(result => {\r\n const nCodPapeleta = Lodash.get(\r\n result,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n if (nCodPapeleta !== '') {\r\n setMsjDialog(\r\n 'La Información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setOpenDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n }\r\n });\r\n } else {\r\n setMsjDialog(\r\n 'Al menos debe de haber ingresado un candidato en la papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {crudAvailable ? (\r\n \r\n \r\n \r\n \r\n \r\n {`Editar Papeleta Cantonal: ${id}`}\r\n {\r\n history.push('/cantonales');\r\n }}\r\n >\r\n Regresar\r\n \r\n \r\n \r\n {formik => (\r\n
\r\n \r\n \r\n \r\n Números de papeleta\r\n disponibles:\r\n \r\n {cod_estado === 3 ? (\r\n \r\n setPapeleta(papeleta)\r\n }\r\n />\r\n ) : (\r\n \r\n {numero}\r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n \r\n Datos del Gestor\r\n \r\n \r\n \r\n \r\n Estado\r\n \r\n \r\n {getEstadoPapeleta(\r\n cod_estado,\r\n ) === 'Inscrita'\r\n ? 'Confección'\r\n : getEstadoPapeleta(\r\n cod_estado,\r\n )}\r\n
\r\n \r\n \r\n \r\n Fecha\r\n \r\n \r\n {papeletaDate}\r\n \r\n \r\n \r\n \r\n Consecutivo\r\n \r\n \r\n {num_consecutivo}\r\n \r\n \r\n \r\n \r\n Cédula\r\n \r\n \r\n {user.num_cedula}\r\n \r\n \r\n \r\n \r\n Nombre\r\n \r\n \r\n {user.des_nombre}\r\n \r\n \r\n \r\n \r\n Provincia\r\n \r\n \r\n {provincia}\r\n \r\n \r\n \r\n \r\n Cantón\r\n \r\n \r\n {canton}\r\n \r\n \r\n \r\n \r\n Movimiento\r\n \r\n \r\n {desMovimiento}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n

\r\n NOTA: * La persona que\r\n indique el icono con una\r\n  \r\n \r\n  pertenece al grupo de\r\n juventud\r\n

\r\n
\r\n \r\n \r\n {formik.isSubmitting ? (\r\n \r\n ) : (\r\n <>\r\n Enviar\r\n \r\n \r\n )}\r\n \r\n\r\n \r\n {isSaving ? (\r\n \r\n ) : (\r\n <>\r\n Actualizar{' '}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Entendido\r\n \r\n \r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Cerrar\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n

\r\n Esta sección se encuentra temporalmente\r\n deshabilitada.
\r\n Favor comunicarse con Ezequiel Hernández\r\n al 2519-5521 o al correo\r\n ehernandez@plndigital.com\r\n

\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n // eslint-disable-next-line no-else-return\r\n } else {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n};\r\n\r\nexport default withStyles(style)(EditCantonales);\r\n","/* eslint-disable radix */\r\n/* eslint-disable camelcase */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport Lodash from 'lodash';\r\nimport { useJwt } from 'react-jwt';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Grid, Button, Divider } from '@material-ui/core';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\nimport Container from '@material-ui/core/Container';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport SendIcon from '@material-ui/icons/Send';\r\nimport Chip from '@material-ui/core/Chip';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\n\r\nimport { Formik, Field } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport style from './styles';\r\n\r\nimport { PlnDropdown } from '../../Components/Input';\r\nimport Copyright from '../Copyright/Copyright';\r\nimport ListSearch from '../../Components/ListSearch/ListSearch';\r\nimport {\r\n useProvincias,\r\n getCantonsByProvince,\r\n useMovimientos,\r\n} from '../../Core/Api/locationApi';\r\nimport { getEstadoPapeleta } from '../../Core/Utils/Utils';\r\nimport { generateComprobanteCantonal } from '../../Core/Utils/Comprobante';\r\nimport { startPrevencion } from '../../Core/Utils/Prevencion';\r\n\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Storage from '../../Storage/Storage';\r\n\r\nimport {\r\n addNew,\r\n updatePapeleta,\r\n getNumPapeletasCantonales,\r\n getNumPapeletaStatus,\r\n blockNumPapeleta,\r\n} from '../../Core/Api/papeletaCantonal';\r\n\r\nimport { useCRUDAvailable } from '../../Core/Api/periodoApi';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nconst AddCantonales = props => {\r\n // Se valida si esta habilitado CRUD\r\n const isCRUDAvailable = useCRUDAvailable();\r\n const crudAvailable = Lodash.get(\r\n isCRUDAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n const { classes } = props;\r\n const history = useHistory();\r\n const { data } = useProvincias();\r\n const listMovimientos = useMovimientos();\r\n\r\n const [user, setUser] = useState([]);\r\n const [statusPapeleta] = useState(3);\r\n const [dateField, setDateField] = useState('');\r\n const [consecutivo, setConsecutivo] = useState('');\r\n const [codPapeleta, setCodPapeleta] = useState(null);\r\n const [fecPapeleta, setFecPapeleta] = useState('');\r\n const [isSaving, setIsSaving] = useState(false);\r\n const [showfilters, setShowfilters] = useState(true);\r\n const [showNumPapeleta, setShowNumPapeleta] = useState(\r\n false,\r\n );\r\n const [sexFieldAs, setSexFieldAs] = useState('');\r\n const [\r\n isSexOrderRequired,\r\n setIsSexOrderRequired,\r\n ] = useState(true);\r\n const [onlyJuventud, setOnlyJuventud] = useState(false);\r\n\r\n const tokenData = Storage.instance;\r\n const { decodedToken } = useJwt(tokenData.getToken());\r\n\r\n const [msjDialog, setMsjDialog] = useState('');\r\n const [open, setOpenDialog] = React.useState(false);\r\n const [finalDialog, setFinalDialog] = React.useState(\r\n false,\r\n );\r\n const handleClose = () => {\r\n setOpenDialog(false);\r\n setIsSaving(false);\r\n };\r\n\r\n const closeFinalDialog = () => {\r\n history.push('/cantonales');\r\n };\r\n\r\n // Date Options\r\n const options = {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n // timeZone: 'UTC',\r\n };\r\n\r\n useEffect(() => {\r\n if (decodedToken !== null) {\r\n setUser(decodedToken);\r\n }\r\n\r\n const today = new Date();\r\n setDateField(\r\n today.toLocaleDateString('es-ES', options),\r\n );\r\n }, [decodedToken, options]);\r\n\r\n const [showForm, setShowForm] = useState(false);\r\n\r\n // Opciones Seleccionadas\r\n const [sProvincia, setSProvincia] = useState(9);\r\n const [sCanton, setSCanton] = useState(999);\r\n const [sMovimiento, setSMovimiento] = useState(9);\r\n const [sPapeleta, setSPapeleta] = useState(999);\r\n // eslint-disable-next-line no-unused-vars\r\n const [numCandidatos] = useState(7);\r\n const [\r\n listComiteCantonal,\r\n setListComiteCantonal,\r\n ] = useState(Consts.initListComiteCantonal);\r\n\r\n // Lista de: Provincias, Cantones, Distritos\r\n const [initialValues] = useState(\r\n Lodash.get(data, ['initValues'], {\r\n provincia: 9,\r\n canton: 999,\r\n movimiento: 9,\r\n papeleta: 999,\r\n cantonal1: '',\r\n cantonal2: '',\r\n cantonal3: '',\r\n cantonal4: '',\r\n cantonal5: '',\r\n cantonal6: '',\r\n cantonal7: '',\r\n }),\r\n );\r\n const provincias = Lodash.get(\r\n data,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n const [cantones, setCantones] = useState([\r\n { itemLabel: '- SELECCIONE EL CANTÓN-', value: 999 },\r\n ]);\r\n\r\n const movimientos = Lodash.get(\r\n listMovimientos,\r\n ['data', 'frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n /*\r\n const [movimientos, setMovimientos] = useState([\r\n Lodash.get(\r\n listMovimientos,\r\n ['data', 'frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ],\r\n ),\r\n ]);\r\n */\r\n\r\n const [papeletas, setPapeletas] = useState([\r\n { itemLabel: '- NUMERO DE PAPELETA -', value: 999 },\r\n ]);\r\n\r\n const setProvincia = p => {\r\n initialValues.provincia = p;\r\n initialValues.canton = 999;\r\n initialValues.movimiento = 9;\r\n if (p !== 9) {\r\n setShowForm(false);\r\n getCantonsByProvince(p).then(result => {\r\n if (result.status === 200) {\r\n const cantonsList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const clist = cantonsList.map(\r\n ({ cod_canton, des_nombre_c }) => {\r\n return {\r\n itemLabel: des_nombre_c,\r\n value: cod_canton,\r\n };\r\n },\r\n );\r\n clist.unshift({\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n });\r\n\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: p,\r\n }),\r\n );\r\n setCantones(clist);\r\n }\r\n });\r\n } else {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n },\r\n ]);\r\n\r\n /*\r\n setMovimientos([\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ]);\r\n */\r\n }\r\n };\r\n\r\n const setCanton = c => {\r\n setShowForm(false);\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = c;\r\n initialValues.movimiento = 9;\r\n\r\n if (c !== 999) {\r\n setSCanton(\r\n Lodash.find(cantones, {\r\n value: c,\r\n }),\r\n );\r\n } else {\r\n setSMovimiento({\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 9,\r\n });\r\n }\r\n };\r\n\r\n const selectMovimiento = m => {\r\n if (\r\n m !== 9 &&\r\n sProvincia.value &&\r\n sProvincia.value !== 9 &&\r\n sCanton.value &&\r\n sCanton.value !== 999\r\n ) {\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = sCanton.value;\r\n initialValues.movimiento = m;\r\n if (m === 1) {\r\n setSexFieldAs('F');\r\n setIsSexOrderRequired(false);\r\n }\r\n if (m === 2) {\r\n setOnlyJuventud(true);\r\n }\r\n setShowfilters(false);\r\n setShowNumPapeleta(true);\r\n setShowForm(true);\r\n\r\n getNumPapeletasCantonales(\r\n sProvincia.value,\r\n sCanton.value,\r\n m,\r\n ).then(result => {\r\n if (result.status === 200) {\r\n const papeletasList = Lodash.get(result, [\r\n 'data',\r\n ]);\r\n const plist = papeletasList.map(({ numero }) => {\r\n return {\r\n itemLabel: numero,\r\n value: numero,\r\n };\r\n });\r\n plist.unshift({\r\n itemLabel: '- NUMERO DE PAPELETA -',\r\n value: 999,\r\n });\r\n\r\n setPapeletas(plist);\r\n }\r\n });\r\n\r\n setSMovimiento(\r\n Lodash.find(movimientos, {\r\n value: m,\r\n }),\r\n );\r\n } else {\r\n setShowForm(false);\r\n setSMovimiento({\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 9,\r\n });\r\n }\r\n };\r\n\r\n const setPapeleta = p => {\r\n initialValues.papeleta = p;\r\n setSPapeleta(\r\n Lodash.find(papeletas, {\r\n value: p,\r\n }),\r\n );\r\n };\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n // Se valida que exista al menos 1 en la lista\r\n const verifyIfCanSave = lCandidates => {\r\n const totalRegistersOnList = Object.keys(\r\n lCandidates,\r\n ).map(c => {\r\n const total = Lodash.countBy(lCandidates[c], rec => {\r\n return rec.filled === true;\r\n });\r\n const result = Lodash.get(total, 'true', 0);\r\n return { count: result };\r\n });\r\n\r\n const canSave = Lodash.find(totalRegistersOnList, o => {\r\n return o.count > 0;\r\n });\r\n\r\n let status = true;\r\n if (!canSave) {\r\n status = false;\r\n }\r\n\r\n return status;\r\n };\r\n\r\n const saveForm = (\r\n values,\r\n { setSubmitting, setFieldValue },\r\n ) => {\r\n const {\r\n provincia,\r\n canton,\r\n movimiento,\r\n papeleta,\r\n } = values;\r\n\r\n // Se valida que se haya seleccionado un numero de papeleta\r\n if (papeleta === 999) {\r\n setMsjDialog(\r\n 'Debe seleccionar el número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n setSubmitting(false);\r\n\r\n return;\r\n }\r\n\r\n // Se valida que TODOS los campos esten completos al 100%\r\n const totalComite = Lodash.countBy(\r\n listComiteCantonal,\r\n rec => {\r\n return rec.filled === false;\r\n },\r\n );\r\n\r\n if (totalComite.true !== undefined) {\r\n setMsjDialog(\r\n 'Debe de completarse TODOS los campos de la papeleta al 100%',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n // Segun el estado de la papeleta, se Crea o Actualiza\r\n getNumPapeletaStatus({\r\n papeleta,\r\n provincia,\r\n canton,\r\n movimiento,\r\n }).then(result => {\r\n const papeletaStatus = Lodash.get(\r\n result,\r\n ['data'],\r\n 0,\r\n );\r\n\r\n if (papeletaStatus === 1) {\r\n // Encabezado Papeleta\r\n const cantonalEnca = {\r\n codprov: provincia,\r\n codcant: canton,\r\n ind_movimiento: movimiento,\r\n cod_estado: 2,\r\n numero: papeleta,\r\n num_consecutivo: consecutivo,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n };\r\n\r\n // Detalle Papeleta\r\n const tFrmsCandidatos = {\r\n comite: listComiteCantonal,\r\n };\r\n\r\n if (consecutivo === '') {\r\n if (movimiento !== 2) {\r\n // Se valida el 20% de la Cuota de Juventud en el COMITE\r\n const porcentajeComite = Math.floor(\r\n tFrmsCandidatos.comite.length * 0.2,\r\n );\r\n\r\n const totalCuotaJuventudC = Lodash.countBy(\r\n tFrmsCandidatos.comite,\r\n rec => {\r\n return (\r\n Number.isInteger(rec.edad) &&\r\n rec.edad <= 35\r\n );\r\n },\r\n );\r\n\r\n if (\r\n totalCuotaJuventudC.true === undefined ||\r\n totalCuotaJuventudC.true < porcentajeComite\r\n ) {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'La papeleta NO cumple con el 20% de la cuota de Juventud. Favor revise los miembros de su papeleta',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n // eslint-disable-next-line no-useless-return\r\n return;\r\n // eslint-disable-next-line no-else-return\r\n } else {\r\n // Se Crea Nueva Papeleta\r\n addNew({\r\n cantonalEnca,\r\n tFrmsCandidatos,\r\n }).then(rNew => {\r\n const nCodPapeleta = Lodash.get(\r\n rNew,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n const nConsecutivo = Lodash.get(\r\n rNew,\r\n ['data', 'consecutivo'],\r\n '',\r\n );\r\n\r\n const fechaPapeleta = Lodash.get(\r\n rNew,\r\n ['data', 'fecha'],\r\n '',\r\n );\r\n const nMontos = Lodash.get(\r\n rNew,\r\n ['data', 'montos'],\r\n '',\r\n );\r\n\r\n // Se bloquea el numero de papeleta\r\n\r\n blockNumPapeleta({\r\n numPapeleta: sPapeleta.value,\r\n codProvincia: sProvincia.value,\r\n codCanton: sCanton.value,\r\n codMovimiento: sMovimiento.value,\r\n });\r\n\r\n // COMPROBANTE: Se genera el Comprobante de la papeleta\r\n\r\n // Informacion General\r\n const generalInfo = {\r\n provincia: sProvincia.itemLabel,\r\n canton: sCanton.itemLabel,\r\n movimiento: sMovimiento.itemLabel,\r\n papeleta: sPapeleta.value,\r\n fecha: fechaPapeleta,\r\n consecutivo: nConsecutivo,\r\n };\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Comite\r\n const candidatosComite = tFrmsCandidatos.comite.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: candidatosComite,\r\n };\r\n const montoInfo = {\r\n papeleta: nMontos.papeleta,\r\n membresia: nMontos.membresia,\r\n total: nMontos.total,\r\n };\r\n\r\n generateComprobanteCantonal(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n\r\n // PROCESO DE PREVENCIÓN\r\n startPrevencion(\r\n user,\r\n nCodPapeleta,\r\n nConsecutivo,\r\n 3,\r\n 'Papeleta de Cantonales',\r\n fechaPapeleta,\r\n gestorInfo,\r\n );\r\n\r\n setSubmitting(false);\r\n setConsecutivo(nConsecutivo);\r\n setCodPapeleta(nCodPapeleta);\r\n setMsjDialog(\r\n 'La información de la papeleta se GUARDÓ correctamente.',\r\n );\r\n setFinalDialog(true);\r\n });\r\n }\r\n } else {\r\n // Se Crea Nueva Papeleta\r\n addNew({ cantonalEnca, tFrmsCandidatos }).then(\r\n rNew => {\r\n const nCodPapeleta = Lodash.get(\r\n rNew,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n const nConsecutivo = Lodash.get(\r\n rNew,\r\n ['data', 'consecutivo'],\r\n '',\r\n );\r\n\r\n const fechaPapeleta = Lodash.get(\r\n rNew,\r\n ['data', 'fecha'],\r\n '',\r\n );\r\n const nMontos = Lodash.get(\r\n rNew,\r\n ['data', 'montos'],\r\n '',\r\n );\r\n\r\n // Se bloquea el numero de papeleta\r\n\r\n blockNumPapeleta({\r\n numPapeleta: sPapeleta.value,\r\n codProvincia: sProvincia.value,\r\n codCanton: sCanton.value,\r\n codMovimiento: sMovimiento.value,\r\n });\r\n\r\n // COMPROBANTE: Se genera el Comprobante de la papeleta\r\n\r\n // Informacion General\r\n const generalInfo = {\r\n provincia: sProvincia.itemLabel,\r\n canton: sCanton.itemLabel,\r\n movimiento: sMovimiento.itemLabel,\r\n papeleta: sPapeleta.value,\r\n fecha: fechaPapeleta,\r\n consecutivo: nConsecutivo,\r\n };\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Comite\r\n const candidatosComite = tFrmsCandidatos.comite.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: candidatosComite,\r\n };\r\n const montoInfo = {\r\n papeleta: nMontos.papeleta,\r\n membresia: nMontos.membresia,\r\n total: nMontos.total,\r\n };\r\n\r\n generateComprobanteCantonal(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n\r\n // PROCESO DE PREVENCIÓN\r\n startPrevencion(\r\n user,\r\n nCodPapeleta,\r\n nConsecutivo,\r\n 3,\r\n 'Papeleta de Cantonales',\r\n fechaPapeleta,\r\n gestorInfo,\r\n );\r\n\r\n setSubmitting(false);\r\n setConsecutivo(nConsecutivo);\r\n setCodPapeleta(nCodPapeleta);\r\n setMsjDialog(\r\n 'La información de la papeleta se GUARDÓ correctamente.',\r\n );\r\n setFinalDialog(true);\r\n },\r\n );\r\n }\r\n } else {\r\n // Se Actualiza la Papeleta\r\n updatePapeleta({\r\n codPapeleta,\r\n cantonalEnca,\r\n tFrmsCandidatos,\r\n }).then(rUpdate => {\r\n const nCodPapeleta = Lodash.get(\r\n rUpdate,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n\r\n const nMontos = Lodash.get(\r\n rUpdate,\r\n ['data', 'montos'],\r\n '',\r\n );\r\n\r\n if (nCodPapeleta !== '') {\r\n // Se bloquea el numero de papeleta\r\n blockNumPapeleta({\r\n numPapeleta: sPapeleta.value,\r\n codProvincia: sProvincia.value,\r\n codCanton: sCanton.value,\r\n codMovimiento: sMovimiento.value,\r\n });\r\n\r\n // COMPROBANTE: Se genera el Comprobante de la papeleta\r\n\r\n // Informacion General\r\n const generalInfo = {\r\n provincia: sProvincia.itemLabel,\r\n canton: sCanton.itemLabel,\r\n movimiento: sMovimiento.itemLabel,\r\n papeleta: sPapeleta.value,\r\n fecha: fecPapeleta,\r\n consecutivo,\r\n };\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Comite\r\n const candidatosComite = tFrmsCandidatos.comite.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: candidatosComite,\r\n };\r\n const montoInfo = {\r\n papeleta: nMontos.papeleta,\r\n membresia: nMontos.membresia,\r\n total: nMontos.total,\r\n };\r\n\r\n generateComprobanteCantonal(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n\r\n // PROCESO DE PREVENCIÓN\r\n startPrevencion(\r\n user,\r\n nCodPapeleta,\r\n consecutivo,\r\n 3,\r\n 'Papeleta de Cantonales',\r\n fecPapeleta,\r\n gestorInfo,\r\n );\r\n\r\n setSubmitting(false);\r\n setMsjDialog(\r\n 'La Información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setFinalDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setSubmitting(false);\r\n setOpenDialog(true);\r\n }\r\n });\r\n }\r\n } else {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'ATENCIÓN: El número de papeleta seleccionado YA fue elegido. Debe de seleccionar otro número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n setSubmitting(false);\r\n setSPapeleta(\r\n Lodash.find(papeletas, {\r\n value: 999,\r\n }),\r\n );\r\n setFieldValue('papeleta', 999);\r\n getNumPapeletasCantonales(\r\n provincia,\r\n canton,\r\n movimiento,\r\n ).then(r => {\r\n if (r.status === 200) {\r\n const papeletasList = Lodash.get(r, ['data']);\r\n const plist = papeletasList.map(p => {\r\n return {\r\n itemLabel: p.papeleta,\r\n value: p.papeleta,\r\n };\r\n });\r\n plist.unshift({\r\n itemLabel: '- NUMERO DE PAPELETA -',\r\n value: 999,\r\n });\r\n\r\n setPapeletas(plist);\r\n }\r\n });\r\n }\r\n });\r\n };\r\n\r\n const savePapeleta = values => () => {\r\n setIsSaving(true);\r\n const {\r\n provincia,\r\n canton,\r\n movimiento,\r\n papeleta,\r\n } = values;\r\n\r\n // Se valida que se haya seleccionado un numero de papeleta\r\n if (papeleta === 999) {\r\n setMsjDialog(\r\n 'Debe seleccionar el número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n return;\r\n }\r\n\r\n const tFrmsCandidatos = {\r\n comite: listComiteCantonal,\r\n };\r\n\r\n // Se valida que exista al menos 1 candidato en la papeleta\r\n const canSave = verifyIfCanSave(tFrmsCandidatos);\r\n\r\n if (canSave) {\r\n const cantonalEnca = {\r\n codprov: provincia,\r\n codcant: canton,\r\n ind_movimiento: movimiento,\r\n cod_estado: 3,\r\n numero: papeleta,\r\n num_consecutivo: consecutivo,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n };\r\n\r\n if (consecutivo === '') {\r\n addNew({ cantonalEnca, tFrmsCandidatos }).then(\r\n result => {\r\n const nCodPapeleta = Lodash.get(\r\n result,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n const nConsecutivo = Lodash.get(\r\n result,\r\n ['data', 'consecutivo'],\r\n '',\r\n );\r\n const fechaPapeleta = Lodash.get(\r\n result,\r\n ['data', 'fecha'],\r\n '',\r\n );\r\n setConsecutivo(nConsecutivo);\r\n setCodPapeleta(nCodPapeleta);\r\n setFecPapeleta(fechaPapeleta);\r\n setMsjDialog(\r\n 'La información de la papeleta se GUARDÓ correctamente.',\r\n );\r\n setOpenDialog(true);\r\n },\r\n );\r\n } else {\r\n updatePapeleta({\r\n codPapeleta,\r\n cantonalEnca,\r\n tFrmsCandidatos,\r\n }).then(result => {\r\n const nCodPapeleta = Lodash.get(\r\n result,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n if (nCodPapeleta !== '') {\r\n setMsjDialog(\r\n 'La Información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setOpenDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setOpenDialog(true);\r\n }\r\n });\r\n }\r\n } else {\r\n setMsjDialog(\r\n 'Al menos debe de haber ingresado un candidato en la papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n }\r\n };\r\n\r\n AddCantonales.propTypes = {};\r\n\r\n return (\r\n <>\r\n {crudAvailable ? (\r\n \r\n \r\n \r\n \r\n \r\n Nueva Papeleta Cantonal\r\n {\r\n history.push('/cantonales');\r\n }}\r\n >\r\n Regresar\r\n \r\n \r\n \r\n {formik => (\r\n <>\r\n
\r\n \r\n \r\n

Provincia

\r\n \r\n setProvincia(provincia)\r\n }\r\n />\r\n
\r\n \r\n

Cantón

\r\n \r\n setCanton(canton)\r\n }\r\n />\r\n
\r\n \r\n

Movimiento

\r\n \r\n selectMovimiento(mov)\r\n }\r\n />\r\n
\r\n \r\n \r\n \r\n

\r\n Números de papeleta\r\n disponibles:\r\n

\r\n \r\n setPapeleta(papeleta)\r\n }\r\n />\r\n
\r\n \r\n \r\n\r\n {showForm ? (\r\n
\r\n \r\n Datos del Gestor\r\n \r\n \r\n \r\n \r\n Estado\r\n \r\n \r\n {getEstadoPapeleta(\r\n statusPapeleta,\r\n ) === 'Inscrita'\r\n ? 'Confección'\r\n : getEstadoPapeleta(\r\n statusPapeleta,\r\n )}\r\n
\r\n \r\n \r\n \r\n Fecha\r\n \r\n \r\n {dateField}\r\n \r\n \r\n \r\n \r\n Consecutivo\r\n \r\n \r\n {consecutivo}\r\n \r\n \r\n \r\n \r\n Cédula\r\n \r\n \r\n {user.num_cedula}\r\n \r\n \r\n \r\n \r\n Nombre\r\n \r\n \r\n {user.des_nombre}\r\n \r\n \r\n \r\n \r\n Provincia\r\n \r\n \r\n {sProvincia.itemLabel}\r\n \r\n \r\n \r\n \r\n Cantón\r\n \r\n \r\n {sCanton.itemLabel}\r\n \r\n \r\n \r\n \r\n Movimiento\r\n \r\n \r\n {sMovimiento.itemLabel}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n

\r\n NOTA: * La persona que\r\n indique el icono con una\r\n  \r\n \r\n  pertenece al grupo\r\n de juventud\r\n

\r\n
\r\n \r\n \r\n {formik.isSubmitting ? (\r\n \r\n ) : (\r\n <>\r\n Enviar\r\n \r\n \r\n )}\r\n \r\n \r\n {isSaving ? (\r\n \r\n ) : (\r\n <>\r\n Guardar\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Entendido\r\n \r\n \r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Cerrar\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n

\r\n Esta sección se encuentra temporalmente\r\n deshabilitada.
\r\n Favor comunicarse con Ezequiel Hernández al\r\n 2519-5521 o al correo\r\n ehernandez@plndigital.com\r\n

\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default withStyles(style)(AddCantonales);\r\n","function createData(\r\n id,\r\n Provincia,\r\n movimiento,\r\n numero,\r\n estado,\r\n itemId,\r\n) {\r\n return {\r\n id,\r\n Provincia,\r\n movimiento,\r\n numero,\r\n estado,\r\n itemId\r\n };\r\n}\r\n\r\nexport const tableHeaders = [\r\n {\r\n name: 'Consecutivo',\r\n },\r\n {\r\n name: 'Provincia',\r\n },\r\n {\r\n name: 'Movimiento',\r\n },\r\n {\r\n name: 'Número',\r\n },\r\n {\r\n name: 'Estado',\r\n },\r\n];\r\n\r\nexport const dataRows = [\r\n createData(\r\n 1,\r\n 'Heredia',\r\n 'Mujeres',\r\n 8,\r\n 'Preinscrita',\r\n 1,\r\n ),\r\n createData(\r\n 2,\r\n 'Heredia',\r\n 'Trabajadores',\r\n 8,\r\n 'Preinscrita',\r\n 2,\r\n ),\r\n createData(\r\n 3,\r\n 'Heredia',\r\n 'Juventud',\r\n 8,\r\n 'Preinscrita',\r\n 3,\r\n ),\r\n createData(\r\n 4,\r\n 'Heredia',\r\n 'Cooperativo',\r\n 8,\r\n 'Anulada',\r\n 4\r\n ),\r\n];\r\n","import axios from 'axios';\r\n\r\nconst axiosInstance = axios.create({\r\n baseURL: process.env.REACT_APP_API_BASE_URL,\r\n responseType: 'json',\r\n});\r\n\r\nconst getAllPapeletasByUserId = _ced => {\r\n return axiosInstance.get(`papeletaProvincial/${_ced}`);\r\n};\r\n\r\nconst declinePapeleta = params => {\r\n const { codPapeleta, cedulaGestor, consecutivo } = params;\r\n\r\n const info = {\r\n codPapeleta,\r\n cedulaGestor,\r\n consecutivo,\r\n };\r\n\r\n return axiosInstance.post(\r\n `papeletaProvincial/anular`,\r\n info,\r\n );\r\n};\r\n\r\nexport default {\r\n getProvinciales: getAllPapeletasByUserId,\r\n actionDeclinePapeleta: declinePapeleta,\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { useJwt } from 'react-jwt';\r\nimport BlockIcon from '@material-ui/icons/Block';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport PrintIcon from '@material-ui/icons/Print';\r\nimport { tableHeaders } from './data';\r\nimport MacroList from '../MacroList/MacroList';\r\nimport provincialesApi from '../../Core/Api/provincialesApi';\r\nimport { getDataComprobante } from '../../Core/Api/comprobanteApi';\r\nimport Storage from '../../Storage/Storage';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Filters from '../../Components/Filters/RegistrosElectFilter';\r\nimport PLNDialog from '../../Components/PLNDialog/PLNDialog';\r\n\r\nimport { generateComprobanteProvincial } from '../../Core/Utils/Comprobante';\r\n\r\nimport { useCRUDAvailable } from '../../Core/Api/periodoApi';\r\n\r\nfunction createData(_data) {\r\n const filterEstado = Consts.estadosDistritales.filter(\r\n status => {\r\n return status.codigo === _data.cod_estado;\r\n },\r\n );\r\n const filterMovimiento = Consts.movimientosCantonales.filter(\r\n status => {\r\n return status.codigo === _data.ind_movimiento;\r\n },\r\n );\r\n\r\n return {\r\n consecutivo: _data.num_consecutivo,\r\n provincia: _data.provincia,\r\n movimiento: filterMovimiento[0].movimiento,\r\n numero: _data.numero,\r\n cod_estado: filterEstado[0].estado,\r\n cod_papeleta: _data.cod_papeleta,\r\n };\r\n}\r\n\r\nconst useStyles = makeStyles(() => ({\r\n btnAdd: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n}));\r\n\r\nconst Provinciales = () => {\r\n // Se valida si esta habilitado CRUD\r\n const isCRUDAvailable = useCRUDAvailable();\r\n const crudAvailable = Lodash.get(\r\n isCRUDAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n const classes = useStyles();\r\n const tokenStorage = Storage.instance;\r\n\r\n const [user, setUser] = useState([]);\r\n const [items, setItems] = useState([]);\r\n const [isDataEmpty, setDataEmpty] = useState(false);\r\n\r\n const [filters, setFilters] = useState({\r\n provincia: '',\r\n movimiento: '',\r\n });\r\n\r\n const { decodedToken } = useJwt(tokenStorage.getToken());\r\n const [filteredItems, setFilteredItems] = useState([]); // used for filtering\r\n\r\n const [open, setOpenDialog] = useState(false);\r\n const [isRemoved, setIsRemoved] = useState(false); // used on remove modal\r\n const [removedMsj, setRemoveMsj] = useState(\r\n 'La Papeleta será anulada. ¿Desea proceder?',\r\n );\r\n const [dataRemove, setDataRemove] = React.useState(null);\r\n const [hiddenBtn, setHiddenBtn] = useState(false);\r\n\r\n const getFilterKeys = Object.getOwnPropertyNames(filters);\r\n const TIMING_ON_SEARCH = 900;\r\n\r\n /**\r\n * Filter Items\r\n */\r\n const applyFilters = async () => {\r\n const activeFilters = getFilterKeys.filter(\r\n filter => filters[filter] !== '',\r\n );\r\n\r\n setDataEmpty(true);\r\n\r\n if (activeFilters.length > 0) {\r\n // eslint-disable-next-line no-unused-vars\r\n const dataFiltered = activeFilters.map(myFilter => {\r\n const result = items.filter(_item => {\r\n let currentFilter = _item[myFilter];\r\n if (typeof currentFilter === 'number')\r\n currentFilter = currentFilter.toString();\r\n\r\n return currentFilter\r\n .toLowerCase()\r\n .includes(filters[myFilter].toLowerCase());\r\n });\r\n\r\n setDataEmpty(!result.length > 0);\r\n if (result.length > 0) setFilteredItems(result);\r\n return result;\r\n });\r\n } else {\r\n setFilteredItems(items);\r\n setDataEmpty(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n async function fetchListAPI() {\r\n if (decodedToken) {\r\n await provincialesApi\r\n .getProvinciales(decodedToken.num_cedula)\r\n .then(_response => {\r\n const info = _response.data.response;\r\n\r\n if (info instanceof Object) {\r\n const rowItems = info.map(row => {\r\n return createData(row);\r\n });\r\n\r\n setItems(rowItems);\r\n setFilteredItems(rowItems);\r\n setDataEmpty(false);\r\n } else {\r\n setDataEmpty(true);\r\n }\r\n })\r\n .catch(_error => {\r\n // eslint-disable-next-line no-console\r\n console.log(_error);\r\n });\r\n }\r\n }\r\n\r\n fetchListAPI();\r\n }, [decodedToken]);\r\n\r\n useEffect(() => {\r\n if (decodedToken) {\r\n setUser(decodedToken);\r\n }\r\n }, [decodedToken]);\r\n\r\n const printComprobante = codPapeleta => {\r\n getDataComprobante({\r\n codPapeleta,\r\n type: 2,\r\n }).then(r => {\r\n const comprobanteData = Lodash.get(\r\n r,\r\n ['data', 'response'],\r\n [],\r\n );\r\n\r\n // Informacion General\r\n const { generalInfo } = comprobanteData;\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: comprobanteData.comite,\r\n };\r\n const montoInfo = {\r\n papeleta: comprobanteData.montosInfo.papeleta,\r\n membresia: comprobanteData.montosInfo.membresia,\r\n total: comprobanteData.montosInfo.total,\r\n };\r\n\r\n generateComprobanteProvincial(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n });\r\n };\r\n\r\n const listFilters = () => {\r\n return [\r\n {\r\n label: 'Provincia:',\r\n action: async ev => {\r\n const updatedValue = {\r\n provincia: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.provincia,\r\n inputId: 'filter-provincia',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: 'Movimiento:',\r\n action: async ev => {\r\n const updatedValue = {\r\n movimiento: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.movimiento,\r\n inputId: 'filter-movimiento',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n ];\r\n };\r\n\r\n /**\r\n * List all actions that a user can do for each item in the list\r\n */\r\n const setActions = () => {\r\n const actions = [];\r\n\r\n if (crudAvailable) {\r\n const actionEdit = {\r\n aria: 'Edit Provincial',\r\n key: 'edit',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n window.location.href = `/provinciales/edit/${_item.cod_papeleta}`;\r\n },\r\n };\r\n\r\n actions.push(actionEdit);\r\n\r\n const actionDecline = {\r\n aria: 'Anular Provincial',\r\n key: 'remove',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n setDataRemove(_item);\r\n setOpenDialog(true);\r\n },\r\n };\r\n\r\n actions.push(actionDecline);\r\n }\r\n\r\n const actionPrintComprobante = {\r\n aria: 'Imprimir Comprobante',\r\n key: 'imprimir',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n printComprobante(_item.cod_papeleta);\r\n },\r\n };\r\n\r\n actions.push(actionPrintComprobante);\r\n\r\n return actions;\r\n };\r\n\r\n /**\r\n * Anular papeleta\r\n */\r\n const declineProvincialesByNum = async () => {\r\n const currentCodPapeleta = dataRemove.cod_papeleta;\r\n\r\n if (currentCodPapeleta && currentCodPapeleta > 0) {\r\n setIsRemoved(true);\r\n\r\n await provincialesApi\r\n .actionDeclinePapeleta({\r\n codPapeleta: currentCodPapeleta,\r\n cedulaGestor: decodedToken.num_cedula,\r\n consecutivo: dataRemove.consecutivo,\r\n })\r\n .then(_response => {\r\n const info = _response.data.response;\r\n\r\n if (info === 1 && _response.status === 200) {\r\n setIsRemoved(false);\r\n setHiddenBtn(true);\r\n setRemoveMsj(\r\n `Papeleta: ${currentCodPapeleta} anulada correctamente.`,\r\n );\r\n setTimeout(() => {\r\n setOpenDialog(false);\r\n window.location.href = '/provinciales';\r\n }, 3000);\r\n } else {\r\n setHiddenBtn(false);\r\n setRemoveMsj(\r\n 'La operación no se pudo completar. Intente de nuevo.',\r\n );\r\n }\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n async function proceedFilters() {\r\n await applyFilters();\r\n }\r\n\r\n const timeoutId = setTimeout(() => {\r\n if (filteredItems.length > 0) proceedFilters();\r\n }, TIMING_ON_SEARCH);\r\n return () => clearTimeout(timeoutId);\r\n }, [filters]);\r\n\r\n return (\r\n \r\n }\r\n dataEmpty={isDataEmpty}\r\n listName=\"Lista de Papeletas Provinciales\"\r\n uiStylesClasses={classes}\r\n btnConfig={{\r\n actionKey: 'id',\r\n name: '+ Registro',\r\n event: () =>\r\n (window.location.href = `/provinciales/add`),\r\n }}\r\n actionConfig={setActions}\r\n tableHeads={tableHeaders}\r\n tableBody={filteredItems}\r\n isCrudAvailable={crudAvailable}\r\n />\r\n {}}\r\n title=\"Anular Papeleta\"\r\n bodymessage={removedMsj}\r\n buttons={\r\n hiddenBtn\r\n ? []\r\n : [\r\n {\r\n actionName: 'cancel',\r\n color: 'simple',\r\n title: 'Cerrar',\r\n clickHander: () => {\r\n setOpenDialog(!open);\r\n },\r\n },\r\n {\r\n actionName: 'delete',\r\n disabled: isRemoved,\r\n color: 'remove',\r\n title: isRemoved ? (\r\n \r\n ) : (\r\n 'Anular'\r\n ),\r\n clickHander: declineProvincialesByNum,\r\n },\r\n ]\r\n }\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default Provinciales;\r\n","const styles = () => ({\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n btnBack: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n btnActions: {\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n sectionTitle: {\r\n fontSize: '16px',\r\n marginTop: 10,\r\n marginBottom: 10,\r\n padding: 5,\r\n color: '#fff',\r\n borderRadius: 4,\r\n background: '#008945',\r\n },\r\n field: {\r\n border: 'solid thin #ccc',\r\n padding: 20,\r\n background: '#f1f1f1',\r\n },\r\n fieldFilled: {\r\n border: 'solid thin #ccc',\r\n padding: 10,\r\n background: '#f1f1f1',\r\n },\r\n fieldMin: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 20,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n },\r\n fieldMinFilled: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 10,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n },\r\n fieldTitle: { margin: 0, padding: 0 },\r\n frmText: {\r\n width: '100%',\r\n height: '38px',\r\n padding: 5,\r\n margin: 0,\r\n display: 'block',\r\n fontSize: '.9em',\r\n lineHeight: 38,\r\n borderColor: '#797979',\r\n borderStyle: 'solid',\r\n borderWidth: 1,\r\n borderRadius: 10,\r\n },\r\n frmIconButton: { marginLeft: 10 },\r\n btnSubmitting: {\r\n width: 104,\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n});\r\n\r\nexport default styles;\r\n","/* eslint-disable no-unused-vars */\r\nimport axios from 'axios';\r\nimport Lodash from 'lodash';\r\nimport { useQuery } from 'react-query';\r\nimport Consts from '../Consts/Consts';\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API_BASE_URL;\r\n\r\nexport const addNew = params => {\r\n const { provincialEnca, tFrmsCandidatos } = params;\r\n\r\n const papeletaData = {\r\n provincialEnca,\r\n tFrmsCandidatos,\r\n };\r\n\r\n return axios.post('/papeletaProvincial', papeletaData);\r\n};\r\n\r\nexport const getNumPapeletasProvinciales = (\r\n idProvince,\r\n idMovimiento,\r\n) => {\r\n const url = [\r\n `/papeletaProvincial/numPapeletas/${idProvince}/${idMovimiento}`,\r\n ];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const searchPapeletas = (\r\n codProvincia,\r\n codMovimiento,\r\n numero,\r\n) => {\r\n const url = [\r\n `/papeletaProvincial/doSearch/${codProvincia}/${codMovimiento}/${numero}`,\r\n ];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const getDetallePapeleta = codPapeleta => {\r\n const url = [\r\n `/papeletaProvincial/getDetallePapeleta/${codPapeleta}`,\r\n ];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const getNumPapeletaStatus = params => {\r\n const { papeleta, provincia, movimiento } = params;\r\n const url = [\r\n `/papeletaProvincial/numPapeletaStatus/${papeleta}/${provincia}/${movimiento}`,\r\n ];\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const blockNumPapeleta = params => {\r\n const {\r\n numPapeleta,\r\n codProvincia,\r\n codMovimiento,\r\n } = params;\r\n\r\n const papeletaData = {\r\n numPapeleta,\r\n codProvincia,\r\n codMovimiento,\r\n };\r\n\r\n return axios.post(\r\n '/papeletaProvincial/blockNumPapeleta',\r\n papeletaData,\r\n );\r\n};\r\n\r\nexport const updatePapeleta = params => {\r\n const {\r\n codPapeleta,\r\n provincialEnca,\r\n tFrmsCandidatos,\r\n } = params;\r\n\r\n const papeletaData = {\r\n codPapeleta,\r\n provincialEnca,\r\n tFrmsCandidatos,\r\n };\r\n\r\n return axios.post(\r\n '/papeletaProvincial/update',\r\n papeletaData,\r\n );\r\n};\r\n\r\nconst getCandidatosPapeleta = async codPapeleta => {\r\n const url = [\r\n `/papeletaProvincial/getCandidatosPapeleta/${codPapeleta}`,\r\n ];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n\r\n return data;\r\n};\r\n\r\nconst searchByCedula = async cedula => {\r\n const url = [`/padron/searchbycedula/${cedula}`];\r\n const { data } = await axios.get(url.join('&'));\r\n return data;\r\n};\r\n\r\nconst preparedList = list => {\r\n const unlockedList = list.map(e => {\r\n Lodash.set(e, 'enabled', false);\r\n return e;\r\n });\r\n return unlockedList;\r\n};\r\n\r\nconst getAllDataPapeleta = async (data, codPapeleta) => {\r\n const initValues = Consts.provincialesInitValues;\r\n Lodash.set(initValues, 'provincia', data.cod_provincia);\r\n Lodash.set(initValues, 'movimiento', data.ind_movimiento);\r\n\r\n // Estado: REGISTRADA\r\n if (data.cod_estado === 2) {\r\n Lodash.set(initValues, 'papeleta', 999);\r\n // Estado: INSCRITA\r\n } else {\r\n const numStatus = await getNumPapeletaStatus({\r\n papeleta: data.numero,\r\n provincia: data.cod_provincia,\r\n movimiento: data.ind_movimiento,\r\n });\r\n\r\n const numeroStatus = Lodash.get(numStatus, ['data']);\r\n\r\n if (numeroStatus === 1) {\r\n Lodash.set(initValues, 'papeleta', data.numero);\r\n } else {\r\n Lodash.set(initValues, 'papeleta', 999);\r\n }\r\n }\r\n\r\n const allPapeletas = await getNumPapeletasProvinciales(\r\n data.cod_provincia,\r\n data.ind_movimiento,\r\n );\r\n\r\n const papeletasList = Lodash.get(allPapeletas, ['data']);\r\n const plist = papeletasList.map(({ numero }) => {\r\n return {\r\n itemLabel: numero,\r\n value: numero,\r\n };\r\n });\r\n plist.unshift({\r\n itemLabel: '- NUMERO DE PAPELETA -',\r\n value: 999,\r\n });\r\n // console.log(Consts.initlistComiteProvincial);\r\n\r\n // Se preparan las listas para que los campos esten desbloquedos\r\n const iListComite = preparedList(\r\n Consts.initlistComiteProvincial,\r\n );\r\n\r\n // Se obtiene el numero de delegados\r\n const numCandidatos = 4;\r\n\r\n // Se obtienen todos los candidatos registrados en la papeleta\r\n const candidatos = await getCandidatosPapeleta(\r\n codPapeleta,\r\n );\r\n\r\n let sexFieldAs = '';\r\n let isSexOrderRequired = true;\r\n let onlyJuventud = false;\r\n\r\n if (data.ind_movimiento === 1) {\r\n sexFieldAs = 'F';\r\n isSexOrderRequired = false;\r\n }\r\n\r\n if (data.ind_movimiento === 2) {\r\n onlyJuventud = true;\r\n }\r\n\r\n /* ====== Lista de Comité ====== */\r\n const listComite = await Promise.all(\r\n candidatos.map(async (d, index) => {\r\n const miembro = await searchByCedula(d.NUM_CEDULA);\r\n\r\n // Datos de la persona\r\n const person = Lodash.get(miembro, ['response', 0]);\r\n\r\n // Nombre de la persona\r\n const personName = `${person.des_nombre} ${person.des_apell1} ${person.des_apell2}`;\r\n const personCedula = person.num_cedula;\r\n const personEdad = person.num_edad;\r\n let sexVal = 'M';\r\n if (person.sexo !== 1) {\r\n sexVal = 'F';\r\n }\r\n\r\n // Nombre del campo\r\n const field = Lodash.find(iListComite, {\r\n numPuesto: d.NUM_PUESTO,\r\n });\r\n\r\n Lodash.set(initValues, field.fieldName, personCedula);\r\n\r\n return {\r\n id: field.id,\r\n lugar: field.lugar,\r\n numPuesto: d.NUM_PUESTO,\r\n fieldName: field.fieldName,\r\n cedula: personCedula,\r\n nombre: personName,\r\n sexo: sexVal,\r\n edad: personEdad,\r\n enabled: true,\r\n filled: true,\r\n };\r\n }),\r\n );\r\n\r\n const aComite = iListComite.map(com => {\r\n const f = Lodash.find(listComite, {\r\n fieldName: com.fieldName,\r\n });\r\n\r\n if (f === undefined) {\r\n return com;\r\n }\r\n return f;\r\n });\r\n\r\n // Merging List Comite\r\n const allComite = Lodash.merge(iListComite, aComite);\r\n\r\n const firstComite = allComite[0].sexo;\r\n let sexOrderComite = Consts.comiteProvincialMOrder;\r\n if (firstComite !== 'M') {\r\n sexOrderComite = Consts.comiteProvincialFOrder;\r\n }\r\n\r\n // Se establece el sexo para el resto de la lista\r\n const finalListComite = Lodash.map(\r\n allComite,\r\n (d, index) => {\r\n const newData = {\r\n id: d.id,\r\n lugar: d.lugar,\r\n numPuesto: d.numPuesto,\r\n fieldName: d.fieldName,\r\n cedula: d.cedula,\r\n nombre: d.nombre,\r\n sexo: isSexOrderRequired\r\n ? sexOrderComite[index].sexo\r\n : sexFieldAs,\r\n edad: d.edad,\r\n enabled: d.cedula !== '',\r\n filled: d.filled,\r\n };\r\n\r\n return newData;\r\n },\r\n );\r\n\r\n return {\r\n papeletaData: data,\r\n numCandidatos,\r\n papeletas: plist,\r\n candidatos: {\r\n listComite: finalListComite,\r\n },\r\n initValues,\r\n onlyJuventud,\r\n sexFieldAs,\r\n isSexOrderRequired,\r\n };\r\n};\r\n\r\nexport const getPapeletaInfo = async params => {\r\n try {\r\n const { cedGestor, codPapeleta } = params;\r\n\r\n const url = [\r\n `/papeletaProvincial/getByCodPapeleta/${cedGestor}/${codPapeleta}`,\r\n ];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n const papeletaData = getAllDataPapeleta(\r\n data.response[0],\r\n codPapeleta,\r\n );\r\n\r\n return papeletaData;\r\n } catch (e) {\r\n return { papeletaData: {} };\r\n }\r\n};\r\n\r\nexport const usePapeletaInfo = (cedGestor, codPapeleta) => {\r\n return useQuery(\r\n ['papeletaData', cedGestor, codPapeleta],\r\n () => getPapeletaInfo(cedGestor, codPapeleta),\r\n );\r\n};\r\n","/* eslint-disable radix */\r\n/* eslint-disable camelcase */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport Lodash from 'lodash';\r\nimport { useJwt } from 'react-jwt';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Grid, Button, Divider } from '@material-ui/core';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\nimport Container from '@material-ui/core/Container';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport SendIcon from '@material-ui/icons/Send';\r\nimport Chip from '@material-ui/core/Chip';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\n\r\nimport { Formik, Field } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport style from './styles';\r\n\r\nimport { PlnDropdown } from '../../Components/Input';\r\nimport Copyright from '../Copyright/Copyright';\r\nimport ListSearch from '../../Components/ListSearch/ListSearch';\r\nimport {\r\n useProvincias,\r\n useMovimientos,\r\n} from '../../Core/Api/locationApi';\r\nimport { getEstadoPapeleta } from '../../Core/Utils/Utils';\r\nimport { generateComprobanteProvincial } from '../../Core/Utils/Comprobante';\r\nimport { startPrevencion } from '../../Core/Utils/Prevencion';\r\n\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Storage from '../../Storage/Storage';\r\n\r\nimport {\r\n addNew,\r\n updatePapeleta,\r\n getNumPapeletasProvinciales,\r\n getNumPapeletaStatus,\r\n blockNumPapeleta,\r\n} from '../../Core/Api/papeletaProvincial';\r\n\r\nimport { useCRUDAvailable } from '../../Core/Api/periodoApi';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nconst AddProvinciales = props => {\r\n // Se valida si esta habilitado CRUD\r\n const isCRUDAvailable = useCRUDAvailable();\r\n const crudAvailable = Lodash.get(\r\n isCRUDAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n const { classes } = props;\r\n const history = useHistory();\r\n const { data } = useProvincias();\r\n const listMovimientos = useMovimientos();\r\n\r\n const [user, setUser] = useState([]);\r\n const [statusPapeleta] = useState(3);\r\n const [dateField, setDateField] = useState('');\r\n const [consecutivo, setConsecutivo] = useState('');\r\n const [codPapeleta, setCodPapeleta] = useState(null);\r\n const [fecPapeleta, setFecPapeleta] = useState('');\r\n const [isSaving, setIsSaving] = useState(false);\r\n const [showfilters, setShowfilters] = useState(true);\r\n const [showNumPapeleta, setShowNumPapeleta] = useState(\r\n false,\r\n );\r\n const [sexFieldAs, setSexFieldAs] = useState('');\r\n const [\r\n isSexOrderRequired,\r\n setIsSexOrderRequired,\r\n ] = useState(true);\r\n const [onlyJuventud, setOnlyJuventud] = useState(false);\r\n\r\n const tokenData = Storage.instance;\r\n const { decodedToken } = useJwt(tokenData.getToken());\r\n\r\n const [msjDialog, setMsjDialog] = useState('');\r\n const [open, setOpenDialog] = React.useState(false);\r\n const [finalDialog, setFinalDialog] = React.useState(\r\n false,\r\n );\r\n const handleClose = () => {\r\n setOpenDialog(false);\r\n setIsSaving(false);\r\n };\r\n\r\n const closeFinalDialog = () => {\r\n history.push('/provinciales');\r\n };\r\n\r\n // Date Options\r\n const options = {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n // timeZone: 'UTC',\r\n };\r\n\r\n useEffect(() => {\r\n if (decodedToken !== null) {\r\n setUser(decodedToken);\r\n }\r\n\r\n const today = new Date();\r\n setDateField(\r\n today.toLocaleDateString('es-ES', options),\r\n );\r\n }, [decodedToken, options]);\r\n\r\n const [showForm, setShowForm] = useState(false);\r\n\r\n // Opciones Seleccionadas\r\n const [sProvincia, setSProvincia] = useState(9);\r\n const [sMovimiento, setSMovimiento] = useState(9);\r\n const [sPapeleta, setSPapeleta] = useState(999);\r\n // const [numCandidatos] = useState(4);\r\n const [\r\n listComiteProvincial,\r\n setlistComiteProvincial,\r\n ] = useState(Consts.initlistComiteProvincial);\r\n\r\n // Lista de: Provincias, Cantones, Distritos\r\n const [initialValues] = useState({\r\n provincia: 9,\r\n movimiento: 9,\r\n papeleta: 999,\r\n provincial1: '',\r\n provincial2: '',\r\n provincial3: '',\r\n provincial4: '',\r\n });\r\n\r\n const provincias = Lodash.get(\r\n data,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n const movimientos = Lodash.get(\r\n listMovimientos,\r\n ['data', 'frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n const [papeletas, setPapeletas] = useState([\r\n { itemLabel: '- NUMERO DE PAPELETA -', value: 999 },\r\n ]);\r\n\r\n const setProvincia = p => {\r\n initialValues.provincia = p;\r\n initialValues.movimiento = 9;\r\n if (p !== 9) {\r\n setShowForm(false);\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: p,\r\n }),\r\n );\r\n }\r\n };\r\n\r\n const selectMovimiento = m => {\r\n if (\r\n m !== 9 &&\r\n sProvincia.value &&\r\n sProvincia.value !== 9\r\n ) {\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.movimiento = m;\r\n if (m === 1) {\r\n setSexFieldAs('F');\r\n setIsSexOrderRequired(false);\r\n }\r\n if (m === 2) {\r\n setOnlyJuventud(true);\r\n }\r\n setShowfilters(false);\r\n setShowNumPapeleta(true);\r\n setShowForm(true);\r\n\r\n getNumPapeletasProvinciales(sProvincia.value, m).then(\r\n result => {\r\n if (result.status === 200) {\r\n const papeletasList = Lodash.get(result, [\r\n 'data',\r\n ]);\r\n const plist = papeletasList.map(\r\n ({ numero }) => {\r\n return {\r\n itemLabel: numero,\r\n value: numero,\r\n };\r\n },\r\n );\r\n plist.unshift({\r\n itemLabel: '- NUMERO DE PAPELETA -',\r\n value: 999,\r\n });\r\n\r\n setPapeletas(plist);\r\n }\r\n },\r\n );\r\n\r\n setSMovimiento(\r\n Lodash.find(movimientos, {\r\n value: m,\r\n }),\r\n );\r\n }\r\n };\r\n\r\n const setPapeleta = p => {\r\n initialValues.papeleta = p;\r\n setSPapeleta(\r\n Lodash.find(papeletas, {\r\n value: p,\r\n }),\r\n );\r\n };\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n // Se valida que exista al menos 1 en la lista\r\n const verifyIfCanSave = lCandidates => {\r\n const totalRegistersOnList = Object.keys(\r\n lCandidates,\r\n ).map(c => {\r\n const total = Lodash.countBy(lCandidates[c], rec => {\r\n return rec.filled === true;\r\n });\r\n const result = Lodash.get(total, 'true', 0);\r\n return { count: result };\r\n });\r\n\r\n const canSave = Lodash.find(totalRegistersOnList, o => {\r\n return o.count > 0;\r\n });\r\n\r\n let status = true;\r\n if (!canSave) {\r\n status = false;\r\n }\r\n\r\n return status;\r\n };\r\n\r\n const saveForm = (\r\n values,\r\n { setSubmitting, setFieldValue },\r\n ) => {\r\n const { movimiento, papeleta, provincia } = values;\r\n\r\n // Se valida que se haya seleccionado un numero de papeleta\r\n if (papeleta === 999) {\r\n setMsjDialog(\r\n 'Debe seleccionar el número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n setSubmitting(false);\r\n\r\n return;\r\n }\r\n\r\n // Se valida que TODOS los campos esten completos al 100%\r\n const totalComite = Lodash.countBy(\r\n listComiteProvincial,\r\n rec => {\r\n return rec.filled === false;\r\n },\r\n );\r\n\r\n if (totalComite.true !== undefined) {\r\n setMsjDialog(\r\n 'Debe de completarse TODOS los campos de la papeleta al 100%',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n // Segun el estado de la papeleta, se Crea o Actualiza\r\n getNumPapeletaStatus({\r\n papeleta,\r\n provincia,\r\n movimiento,\r\n }).then(result => {\r\n const papeletaStatus = Lodash.get(\r\n result,\r\n ['data'],\r\n 0,\r\n );\r\n\r\n if (papeletaStatus === 1) {\r\n // Encabezado Papeleta\r\n const provincialEnca = {\r\n cod_provincia: provincia,\r\n ind_movimiento: movimiento,\r\n cod_estado: 2,\r\n num_puesto: 5,\r\n numero: papeleta,\r\n num_consecutivo: consecutivo,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n };\r\n // Detalle Papeleta\r\n const tFrmsCandidatos = {\r\n comite: listComiteProvincial,\r\n };\r\n\r\n if (consecutivo === '') {\r\n if (sMovimiento.value !== 2) {\r\n // Se valida el 20% de la Cuota de Juventud en el COMITE\r\n const porcentajeComite = 2;\r\n\r\n let totalCuotaJuventudC = null;\r\n let totalCuotaJuventudM = null;\r\n let totalCuotaJuventudF = null;\r\n let isMovimientoMujeres = false;\r\n\r\n totalCuotaJuventudC = Lodash.countBy(\r\n tFrmsCandidatos.comite,\r\n rec => {\r\n return (\r\n Number.isInteger(rec.edad) &&\r\n rec.edad <= 35\r\n );\r\n },\r\n );\r\n\r\n if (sMovimiento.value === 1) {\r\n isMovimientoMujeres = true;\r\n } else {\r\n totalCuotaJuventudM = Lodash.countBy(\r\n tFrmsCandidatos.comite,\r\n rec => {\r\n return (\r\n Number.isInteger(rec.edad) &&\r\n rec.edad <= 35 &&\r\n rec.sexo === 'M'\r\n );\r\n },\r\n );\r\n totalCuotaJuventudF = Lodash.countBy(\r\n tFrmsCandidatos.comite,\r\n rec => {\r\n return (\r\n Number.isInteger(rec.edad) &&\r\n rec.edad <= 35 &&\r\n rec.sexo === 'F'\r\n );\r\n },\r\n );\r\n }\r\n\r\n if (\r\n totalCuotaJuventudC.true === undefined ||\r\n totalCuotaJuventudC.true < porcentajeComite\r\n ) {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'La papeleta NO cumple con la cuota de Juventud. Favor revise los miembros de su papeleta',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n\r\n // eslint-disable-next-line no-useless-return\r\n return;\r\n // eslint-disable-next-line no-else-return\r\n } else {\r\n // eslint-disable-next-line no-lonely-if\r\n if (isMovimientoMujeres) {\r\n // Se Crea Nueva Papeleta\r\n addNew({\r\n provincialEnca,\r\n tFrmsCandidatos,\r\n }).then(rNew => {\r\n const nCodPapeleta = Lodash.get(\r\n rNew,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n const nConsecutivo = Lodash.get(\r\n rNew,\r\n ['data', 'consecutivo'],\r\n '',\r\n );\r\n\r\n const fechaPapeleta = Lodash.get(\r\n rNew,\r\n ['data', 'fecha'],\r\n '',\r\n );\r\n const nMontos = Lodash.get(\r\n rNew,\r\n ['data', 'montos'],\r\n '',\r\n );\r\n\r\n // Se bloquea el numero de papeleta\r\n blockNumPapeleta({\r\n numPapeleta: sPapeleta.value,\r\n codProvincia: sProvincia.value,\r\n codMovimiento: sMovimiento.value,\r\n });\r\n\r\n // COMPROBANTE: Se genera el Comprobante de la papeleta\r\n\r\n // Informacion General\r\n const generalInfo = {\r\n provincia: sProvincia.itemLabel,\r\n movimiento: sMovimiento.itemLabel,\r\n papeleta: sPapeleta.value,\r\n fecha: fechaPapeleta,\r\n consecutivo: nConsecutivo,\r\n };\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Comite\r\n const candidatosComite = tFrmsCandidatos.comite.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: candidatosComite,\r\n };\r\n const montoInfo = {\r\n papeleta: nMontos.papeleta,\r\n membresia: nMontos.membresia,\r\n total: nMontos.total,\r\n };\r\n\r\n generateComprobanteProvincial(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n\r\n // PROCESO DE PREVENCIÓN\r\n startPrevencion(\r\n user,\r\n nCodPapeleta,\r\n nConsecutivo,\r\n 2,\r\n 'Papeleta de Provinciales',\r\n fechaPapeleta,\r\n gestorInfo,\r\n );\r\n\r\n setSubmitting(false);\r\n setConsecutivo(nConsecutivo);\r\n setCodPapeleta(nCodPapeleta);\r\n setMsjDialog(\r\n 'La información de la papeleta se GUARDÓ correctamente.',\r\n );\r\n setFinalDialog(true);\r\n });\r\n } else {\r\n // eslint-disable-next-line no-lonely-if\r\n if (\r\n (totalCuotaJuventudM.false !==\r\n undefined &&\r\n totalCuotaJuventudM.false === 4) ||\r\n (totalCuotaJuventudF.false !==\r\n undefined &&\r\n totalCuotaJuventudF.false === 4)\r\n ) {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'La papeleta NO cumple con la cuota de Juventud por sexo. Favor revise los miembros de su papeleta',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n } else {\r\n // Se Crea Nueva Papeleta\r\n addNew({\r\n provincialEnca,\r\n tFrmsCandidatos,\r\n }).then(rNew => {\r\n const nCodPapeleta = Lodash.get(\r\n rNew,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n const nConsecutivo = Lodash.get(\r\n rNew,\r\n ['data', 'consecutivo'],\r\n '',\r\n );\r\n\r\n const fechaPapeleta = Lodash.get(\r\n rNew,\r\n ['data', 'fecha'],\r\n '',\r\n );\r\n const nMontos = Lodash.get(\r\n rNew,\r\n ['data', 'montos'],\r\n '',\r\n );\r\n\r\n // Se bloquea el numero de papeleta\r\n blockNumPapeleta({\r\n numPapeleta: sPapeleta.value,\r\n codProvincia: sProvincia.value,\r\n codMovimiento: sMovimiento.value,\r\n });\r\n\r\n // COMPROBANTE: Se genera el Comprobante de la papeleta\r\n\r\n // Informacion General\r\n const generalInfo = {\r\n provincia: sProvincia.itemLabel,\r\n movimiento: sMovimiento.itemLabel,\r\n papeleta: sPapeleta.value,\r\n fecha: fechaPapeleta,\r\n consecutivo: nConsecutivo,\r\n };\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Comite\r\n const candidatosComite = tFrmsCandidatos.comite.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: candidatosComite,\r\n };\r\n const montoInfo = {\r\n papeleta: nMontos.papeleta,\r\n membresia: nMontos.membresia,\r\n total: nMontos.total,\r\n };\r\n\r\n generateComprobanteProvincial(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n\r\n // PROCESO DE PREVENCIÓN\r\n startPrevencion(\r\n user,\r\n nCodPapeleta,\r\n nConsecutivo,\r\n 2,\r\n 'Papeleta de Provinciales',\r\n fechaPapeleta,\r\n gestorInfo,\r\n );\r\n\r\n setSubmitting(false);\r\n setConsecutivo(nConsecutivo);\r\n setCodPapeleta(nCodPapeleta);\r\n setMsjDialog(\r\n 'La información de la papeleta se GUARDÓ correctamente.',\r\n );\r\n setFinalDialog(true);\r\n });\r\n }\r\n }\r\n }\r\n } else {\r\n // Se Crea Nueva Papeleta\r\n addNew({\r\n provincialEnca,\r\n tFrmsCandidatos,\r\n }).then(rNew => {\r\n const nCodPapeleta = Lodash.get(\r\n rNew,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n const nConsecutivo = Lodash.get(\r\n rNew,\r\n ['data', 'consecutivo'],\r\n '',\r\n );\r\n\r\n const fechaPapeleta = Lodash.get(\r\n rNew,\r\n ['data', 'fecha'],\r\n '',\r\n );\r\n const nMontos = Lodash.get(\r\n rNew,\r\n ['data', 'montos'],\r\n '',\r\n );\r\n\r\n // Se bloquea el numero de papeleta\r\n blockNumPapeleta({\r\n numPapeleta: sPapeleta.value,\r\n codProvincia: sProvincia.value,\r\n codMovimiento: sMovimiento.value,\r\n });\r\n\r\n // COMPROBANTE: Se genera el Comprobante de la papeleta\r\n\r\n // Informacion General\r\n const generalInfo = {\r\n provincia: sProvincia.itemLabel,\r\n movimiento: sMovimiento.itemLabel,\r\n papeleta: sPapeleta.value,\r\n fecha: fechaPapeleta,\r\n consecutivo: nConsecutivo,\r\n };\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Comite\r\n const candidatosComite = tFrmsCandidatos.comite.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: candidatosComite,\r\n };\r\n const montoInfo = {\r\n papeleta: nMontos.papeleta,\r\n membresia: nMontos.membresia,\r\n total: nMontos.total,\r\n };\r\n\r\n generateComprobanteProvincial(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n\r\n // PROCESO DE PREVENCIÓN\r\n startPrevencion(\r\n user,\r\n nCodPapeleta,\r\n nConsecutivo,\r\n 2,\r\n 'Papeleta de Provinciales',\r\n fechaPapeleta,\r\n gestorInfo,\r\n );\r\n\r\n setSubmitting(false);\r\n setConsecutivo(nConsecutivo);\r\n setCodPapeleta(nCodPapeleta);\r\n setMsjDialog(\r\n 'La información de la papeleta se GUARDÓ correctamente.',\r\n );\r\n setFinalDialog(true);\r\n });\r\n }\r\n } else {\r\n // Se Actualiza la Papeleta\r\n updatePapeleta({\r\n codPapeleta,\r\n provincialEnca,\r\n tFrmsCandidatos,\r\n }).then(rUpdate => {\r\n const nCodPapeleta = Lodash.get(\r\n rUpdate,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n\r\n const nMontos = Lodash.get(\r\n rUpdate,\r\n ['data', 'montos'],\r\n '',\r\n );\r\n\r\n if (nCodPapeleta !== '') {\r\n // Se bloquea el numero de papeleta\r\n blockNumPapeleta({\r\n numPapeleta: sPapeleta.value,\r\n codProvincia: sProvincia.value,\r\n codMovimiento: sMovimiento.value,\r\n });\r\n\r\n // COMPROBANTE: Se genera el Comprobante de la papeleta\r\n // Informacion General\r\n const generalInfo = {\r\n provincia: sProvincia.itemLabel,\r\n movimiento: sMovimiento.itemLabel,\r\n papeleta: sPapeleta.value,\r\n fecha: fecPapeleta,\r\n consecutivo,\r\n };\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Comite\r\n const candidatosComite = tFrmsCandidatos.comite.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: candidatosComite,\r\n };\r\n const montoInfo = {\r\n papeleta: nMontos.papeleta,\r\n membresia: nMontos.membresia,\r\n total: nMontos.total,\r\n };\r\n\r\n generateComprobanteProvincial(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n\r\n // PROCESO DE PREVENCIÓN\r\n startPrevencion(\r\n user,\r\n nCodPapeleta,\r\n consecutivo,\r\n 2,\r\n 'Papeleta de Provinciales',\r\n fecPapeleta,\r\n gestorInfo,\r\n );\r\n\r\n setSubmitting(false);\r\n setMsjDialog(\r\n 'La Información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setFinalDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setSubmitting(false);\r\n setOpenDialog(true);\r\n }\r\n });\r\n }\r\n } else {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'ATENCIÓN: El número de papeleta seleccionado YA fue elegido. Debe de seleccionar otro número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n setSubmitting(false);\r\n setSPapeleta(\r\n Lodash.find(papeletas, {\r\n value: 999,\r\n }),\r\n );\r\n setFieldValue('papeleta', 999);\r\n getNumPapeletasProvinciales(\r\n provincia,\r\n movimiento,\r\n ).then(r => {\r\n if (r.status === 200) {\r\n const papeletasList = Lodash.get(r, ['data']);\r\n const plist = papeletasList.map(p => {\r\n return {\r\n itemLabel: p.papeleta,\r\n value: p.papeleta,\r\n };\r\n });\r\n plist.unshift({\r\n itemLabel: '- NUMERO DE PAPELETA -',\r\n value: 999,\r\n });\r\n\r\n setPapeletas(plist);\r\n }\r\n });\r\n }\r\n });\r\n };\r\n\r\n const savePapeleta = values => () => {\r\n setIsSaving(true);\r\n const { movimiento, papeleta, provincia } = values;\r\n\r\n // Se valida que se haya seleccionado un numero de papeleta\r\n if (papeleta === 999) {\r\n setMsjDialog(\r\n 'Debe seleccionar el número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n return;\r\n }\r\n\r\n const tFrmsCandidatos = {\r\n comite: listComiteProvincial,\r\n };\r\n\r\n // Se valida que exista al menos 1 candidato en la papeleta\r\n const canSave = verifyIfCanSave(tFrmsCandidatos);\r\n if (canSave) {\r\n const provincialEnca = {\r\n cod_provincia: provincia,\r\n ind_movimiento: movimiento,\r\n cod_estado: 3,\r\n num_puesto: 5,\r\n numero: papeleta,\r\n num_consecutivo: consecutivo,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n };\r\n if (consecutivo === '') {\r\n addNew({ provincialEnca, tFrmsCandidatos }).then(\r\n result => {\r\n const nCodPapeleta = Lodash.get(\r\n result,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n const nConsecutivo = Lodash.get(\r\n result,\r\n ['data', 'consecutivo'],\r\n '',\r\n );\r\n const fechaPapeleta = Lodash.get(\r\n result,\r\n ['data', 'fecha'],\r\n '',\r\n );\r\n setConsecutivo(nConsecutivo);\r\n setCodPapeleta(nCodPapeleta);\r\n setFecPapeleta(fechaPapeleta);\r\n setMsjDialog(\r\n 'La información de la papeleta se GUARDÓ correctamente.',\r\n );\r\n setOpenDialog(true);\r\n },\r\n );\r\n } else {\r\n updatePapeleta({\r\n codPapeleta,\r\n provincialEnca,\r\n tFrmsCandidatos,\r\n }).then(result => {\r\n const nCodPapeleta = Lodash.get(\r\n result,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n if (nCodPapeleta !== '') {\r\n setMsjDialog(\r\n 'La Información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setOpenDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setOpenDialog(true);\r\n }\r\n });\r\n }\r\n } else {\r\n setMsjDialog(\r\n 'Al menos debe de haber ingresado un candidato en la papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n }\r\n };\r\n\r\n AddProvinciales.propTypes = {};\r\n\r\n return (\r\n <>\r\n {crudAvailable ? (\r\n \r\n \r\n \r\n \r\n \r\n Nueva Papeleta Provinciales\r\n {\r\n history.push('/provinciales');\r\n }}\r\n >\r\n Regresar\r\n \r\n \r\n \r\n {formik => (\r\n <>\r\n
\r\n \r\n \r\n

Provincia

\r\n \r\n setProvincia(provincia)\r\n }\r\n />\r\n
\r\n \r\n

Movimiento

\r\n \r\n selectMovimiento(mov)\r\n }\r\n />\r\n
\r\n \r\n \r\n \r\n

\r\n Números de papeleta\r\n disponibles:\r\n

\r\n \r\n setPapeleta(papeleta)\r\n }\r\n />\r\n
\r\n \r\n \r\n\r\n {showForm ? (\r\n
\r\n \r\n Datos del Gestor\r\n \r\n \r\n \r\n \r\n Estado\r\n \r\n \r\n {getEstadoPapeleta(\r\n statusPapeleta,\r\n ) === 'Inscrita'\r\n ? 'Confección'\r\n : getEstadoPapeleta(\r\n statusPapeleta,\r\n )}\r\n
\r\n \r\n \r\n \r\n Fecha\r\n \r\n \r\n {dateField}\r\n \r\n \r\n \r\n \r\n Consecutivo\r\n \r\n \r\n {consecutivo}\r\n \r\n \r\n \r\n \r\n Cédula\r\n \r\n \r\n {user.num_cedula}\r\n \r\n \r\n \r\n \r\n Nombre\r\n \r\n \r\n {user.des_nombre}\r\n \r\n \r\n \r\n \r\n Provincia\r\n \r\n \r\n {sProvincia.itemLabel}\r\n \r\n \r\n \r\n \r\n Movimiento\r\n \r\n \r\n {sMovimiento.itemLabel}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n

\r\n NOTA: * La persona que\r\n indique el icono con una\r\n  \r\n \r\n  pertenece al grupo\r\n de juventud\r\n

\r\n
\r\n \r\n \r\n {formik.isSubmitting ? (\r\n \r\n ) : (\r\n <>\r\n Enviar\r\n \r\n \r\n )}\r\n \r\n \r\n {isSaving ? (\r\n \r\n ) : (\r\n <>\r\n Guardar\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Entendido\r\n \r\n \r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Cerrar\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n

\r\n Esta sección se encuentra temporalmente\r\n deshabilitada.
\r\n Favor comunicarse con Ezequiel Hernández al\r\n 2519-5521 o al correo\r\n ehernandez@plndigital.com\r\n

\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default withStyles(style)(AddProvinciales);\r\n","/* eslint-disable camelcase */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport Lodash from 'lodash';\r\nimport Container from '@material-ui/core/Container';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Grid, Button, Divider } from '@material-ui/core';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport Box from '@material-ui/core/Box';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport SendIcon from '@material-ui/icons/Send';\r\nimport Chip from '@material-ui/core/Chip';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\n\r\nimport { Formik, Field } from 'formik';\r\nimport { useJwt } from 'react-jwt';\r\nimport * as Yup from 'yup';\r\nimport Loading from '../../Components/Loading/Loading';\r\nimport { PlnDropdown } from '../../Components/Input';\r\nimport Copyright from '../Copyright/Copyright';\r\nimport ListSearch from '../../Components/ListSearch/ListSearch';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport style from './styles';\r\nimport { getEstadoPapeleta } from '../../Core/Utils/Utils';\r\nimport { generateComprobanteProvincial } from '../../Core/Utils/Comprobante';\r\nimport { startPrevencion } from '../../Core/Utils/Prevencion';\r\nimport Storage from '../../Storage/Storage';\r\n\r\nimport {\r\n updatePapeleta,\r\n usePapeletaInfo,\r\n getNumPapeletasProvinciales,\r\n getNumPapeletaStatus,\r\n blockNumPapeleta,\r\n} from '../../Core/Api/papeletaProvincial';\r\n\r\nimport { useCRUDAvailable } from '../../Core/Api/periodoApi';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nconst EditProvinciales = props => {\r\n // Se valida si esta habilitado CRUD\r\n const isCRUDAvailable = useCRUDAvailable();\r\n const crudAvailable = Lodash.get(\r\n isCRUDAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n const { classes } = props;\r\n const { id } = useParams();\r\n const history = useHistory();\r\n\r\n const [user, setUser] = useState([]);\r\n const [isSaving, setIsSaving] = useState(false);\r\n\r\n const [listComite, setListComite] = useState(\r\n Consts.initlistComiteProvincial,\r\n );\r\n\r\n const [msjDialog, setMsjDialog] = useState('');\r\n const [open, setOpenDialog] = React.useState(false);\r\n const [finalDialog, setFinalDialog] = React.useState(\r\n false,\r\n );\r\n const handleClose = () => {\r\n setOpenDialog(false);\r\n setIsSaving(false);\r\n };\r\n const closeFinalDialog = () => {\r\n history.push('/provinciales');\r\n };\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const tokenData = Storage.instance;\r\n const { decodedToken } = useJwt(tokenData.getToken());\r\n\r\n const numCedula = Lodash.get(\r\n decodedToken,\r\n ['num_cedula'],\r\n 0,\r\n );\r\n\r\n const { data } = usePapeletaInfo({\r\n cedGestor: numCedula,\r\n codPapeleta: id,\r\n });\r\n\r\n // Datos Generales de la papeleta\r\n const papeletaData = Lodash.get(\r\n data,\r\n ['papeletaData'],\r\n [],\r\n );\r\n\r\n /*\r\n // Cantidad de Candidatos\r\n const numDelegados = Lodash.get(\r\n data,\r\n ['numDelegados'],\r\n [],\r\n );\r\n */\r\n\r\n // Lista de Candidatos incritos\r\n const candidatos = Lodash.get(data, ['candidatos'], []);\r\n\r\n useEffect(() => {\r\n if (decodedToken) {\r\n setUser(decodedToken);\r\n }\r\n }, [decodedToken]);\r\n\r\n if (!Lodash.isEmpty(papeletaData)) {\r\n const {\r\n numero,\r\n cod_estado,\r\n provincia,\r\n cod_provincia,\r\n ind_movimiento,\r\n fec_registro,\r\n num_consecutivo,\r\n } = papeletaData;\r\n\r\n const isSexOrderRequired = Lodash.get(\r\n data,\r\n ['isSexOrderRequired'],\r\n [],\r\n );\r\n const sexFieldAs = Lodash.get(data, ['sexFieldAs'], []);\r\n const onlyJuventud = Lodash.get(\r\n data,\r\n ['onlyJuventud'],\r\n [],\r\n );\r\n\r\n const filterMovimiento = Consts.movimientosCantonales.filter(\r\n status => {\r\n return status.codigo === ind_movimiento;\r\n },\r\n );\r\n\r\n const desMovimiento = filterMovimiento[0].movimiento.toUpperCase();\r\n\r\n // Date Options\r\n const options = {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n };\r\n\r\n const today = new Date(fec_registro);\r\n const papeletaDate = today.toLocaleDateString(\r\n 'es-ES',\r\n options,\r\n );\r\n\r\n const initialValues = Lodash.get(\r\n data,\r\n ['initValues'],\r\n [],\r\n );\r\n\r\n const papeletas = Lodash.get(data, ['papeletas'], []);\r\n\r\n const setPapeleta = p => {\r\n initialValues.papeleta = p;\r\n };\r\n\r\n // Se valida que exista al menos 1 en la lista\r\n const verifyIfCanSave = lCandidates => {\r\n const totalRegistersOnList = Object.keys(\r\n lCandidates,\r\n ).map(c => {\r\n const total = Lodash.countBy(\r\n lCandidates[c],\r\n rec => {\r\n return rec.filled === true;\r\n },\r\n );\r\n const result = Lodash.get(total, 'true', 0);\r\n return { count: result };\r\n });\r\n\r\n const canSave = Lodash.find(\r\n totalRegistersOnList,\r\n o => {\r\n return o.count > 0;\r\n },\r\n );\r\n\r\n let status = true;\r\n if (!canSave) {\r\n status = false;\r\n }\r\n\r\n return status;\r\n };\r\n\r\n const saveForm = (\r\n values,\r\n { setSubmitting, setFieldValue },\r\n ) => {\r\n const { papeleta, movimiento } = values;\r\n // Se valida que se haya seleccionado un numero de papeleta\r\n if (papeleta === 999) {\r\n setMsjDialog(\r\n 'Debe seleccionar el número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n setSubmitting(false);\r\n\r\n return;\r\n }\r\n\r\n // Se valida que TODOS los campos esten completos al 100%\r\n const totalComite = Lodash.countBy(\r\n listComite,\r\n rec => {\r\n return rec.filled === false;\r\n },\r\n );\r\n\r\n if (totalComite.true !== undefined) {\r\n setMsjDialog(\r\n 'Debe de completarse TODOS los campos de la papeleta al 100%',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n // Segun el estado de la papeleta, se Crea o Actualiza\r\n getNumPapeletaStatus({\r\n papeleta,\r\n provincia: cod_provincia,\r\n movimiento,\r\n }).then(result => {\r\n const papeletaStatus = Lodash.get(\r\n result,\r\n ['data'],\r\n 0,\r\n );\r\n\r\n if (papeletaStatus === 1) {\r\n // Encabezado Papeleta\r\n const provincialEnca = {\r\n cod_provincia,\r\n ind_movimiento,\r\n cod_estado: 2,\r\n numero: papeleta,\r\n num_consecutivo,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n };\r\n\r\n // Detalle Papeleta\r\n const tFrmsCandidatos = {\r\n comite: listComite,\r\n };\r\n\r\n if (ind_movimiento !== 2) {\r\n // Se valida el 20% de la Cuota de Juventud en el COMITE\r\n const porcentajeComite = Math.floor(\r\n tFrmsCandidatos.comite.length * 0.2,\r\n );\r\n\r\n const totalCuotaJuventudC = Lodash.countBy(\r\n tFrmsCandidatos.comite,\r\n rec => {\r\n return (\r\n Number.isInteger(rec.edad) &&\r\n rec.edad <= 35\r\n );\r\n },\r\n );\r\n\r\n if (\r\n totalCuotaJuventudC.true === undefined ||\r\n totalCuotaJuventudC.true < porcentajeComite\r\n ) {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'La papeleta NO cumple con el 20% de la cuota de Juventud. Favor revise los miembros de su papeleta',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n }\r\n\r\n // Se Actualiza la Papeleta\r\n updatePapeleta({\r\n codPapeleta: id,\r\n provincialEnca,\r\n tFrmsCandidatos,\r\n }).then(rUpdate => {\r\n const nCodPapeleta = Lodash.get(\r\n rUpdate,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n\r\n const nMontos = Lodash.get(\r\n rUpdate,\r\n ['data', 'montos'],\r\n '',\r\n );\r\n\r\n if (nCodPapeleta !== '') {\r\n // Se bloquea el numero de papeleta\r\n blockNumPapeleta({\r\n numPapeleta: papeleta,\r\n codProvincia: cod_provincia,\r\n codMovimiento: movimiento,\r\n });\r\n\r\n // COMPROBANTE: Se genera el Comprobante de la papeleta\r\n // Informacion General\r\n const generalInfo = {\r\n provincia,\r\n movimiento: desMovimiento,\r\n papeleta,\r\n fecha: papeletaDate,\r\n consecutivo: num_consecutivo,\r\n };\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Comite\r\n const candidatosComite = tFrmsCandidatos.comite.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: candidatosComite,\r\n };\r\n const montoInfo = {\r\n papeleta: nMontos.papeleta,\r\n membresia: nMontos.membresia,\r\n total: nMontos.total,\r\n };\r\n\r\n generateComprobanteProvincial(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n\r\n // PROCESO DE PREVENCIÓN\r\n startPrevencion(\r\n user,\r\n nCodPapeleta,\r\n num_consecutivo,\r\n 2,\r\n 'Papeleta de Provinciales',\r\n papeletaDate,\r\n gestorInfo,\r\n );\r\n\r\n setSubmitting(false);\r\n setMsjDialog(\r\n 'La Información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setFinalDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setSubmitting(false);\r\n setOpenDialog(true);\r\n }\r\n });\r\n } else {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'ATENCIÓN: El número de papeleta seleccionado YA fue elegido. Debe de seleccionar otro número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n setSubmitting(false);\r\n setFieldValue('papeleta', 999);\r\n getNumPapeletasProvinciales(\r\n cod_provincia,\r\n movimiento,\r\n ).then(r => {\r\n if (r.status === 200) {\r\n const papeletasList = Lodash.get(r, ['data']);\r\n const plist = papeletasList.map(p => {\r\n return {\r\n itemLabel: p.papeleta,\r\n value: p.papeleta,\r\n };\r\n });\r\n plist.unshift({\r\n itemLabel: '- NUMERO DE PAPELETA -',\r\n value: 999,\r\n });\r\n\r\n // setPapeletas(plist);\r\n }\r\n });\r\n }\r\n });\r\n };\r\n\r\n const savePapeleta = values => () => {\r\n setIsSaving(true);\r\n const { papeleta } = values;\r\n\r\n // Se valida que se haya seleccionado un numero de papeleta\r\n if (papeleta === 999) {\r\n setMsjDialog(\r\n 'Debe seleccionar el número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n return;\r\n }\r\n\r\n const tFrmsCandidatos = {\r\n comite: listComite,\r\n };\r\n\r\n const canSave = verifyIfCanSave(tFrmsCandidatos);\r\n\r\n if (canSave) {\r\n const provincialEnca = {\r\n cod_provincia,\r\n ind_movimiento,\r\n cod_estado: 3,\r\n numero: papeleta,\r\n num_consecutivo,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n };\r\n\r\n updatePapeleta({\r\n codPapeleta: id,\r\n provincialEnca,\r\n tFrmsCandidatos,\r\n }).then(result => {\r\n const nCodPapeleta = Lodash.get(\r\n result,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n if (nCodPapeleta !== '') {\r\n setMsjDialog(\r\n 'La Información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setOpenDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n }\r\n });\r\n } else {\r\n setMsjDialog(\r\n 'Al menos debe de haber ingresado un candidato en la papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {crudAvailable ? (\r\n \r\n \r\n \r\n \r\n \r\n {`Editar Papeleta Provincial: ${id}`}\r\n {\r\n history.push('/provinciales');\r\n }}\r\n >\r\n Regresar\r\n \r\n \r\n \r\n {formik => (\r\n
\r\n \r\n \r\n \r\n Números de papeleta\r\n disponibles:\r\n \r\n {cod_estado === 3 ? (\r\n \r\n setPapeleta(papeleta)\r\n }\r\n />\r\n ) : (\r\n \r\n {numero}\r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n \r\n Datos del Gestor\r\n \r\n \r\n \r\n \r\n Estado\r\n \r\n \r\n {getEstadoPapeleta(\r\n cod_estado,\r\n ) === 'Inscrita'\r\n ? 'Confección'\r\n : getEstadoPapeleta(\r\n cod_estado,\r\n )}\r\n
\r\n \r\n \r\n \r\n Fecha\r\n \r\n \r\n {papeletaDate}\r\n \r\n \r\n \r\n \r\n Consecutivo\r\n \r\n \r\n {num_consecutivo}\r\n \r\n \r\n \r\n \r\n Cédula\r\n \r\n \r\n {user.num_cedula}\r\n \r\n \r\n \r\n \r\n Nombre\r\n \r\n \r\n {user.des_nombre}\r\n \r\n \r\n \r\n \r\n Provincia\r\n \r\n \r\n {provincia}\r\n \r\n \r\n \r\n \r\n Movimiento\r\n \r\n \r\n {desMovimiento}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n

\r\n NOTA: * La persona que\r\n indique el icono con una\r\n  \r\n \r\n  pertenece al grupo de\r\n juventud\r\n

\r\n
\r\n \r\n \r\n {formik.isSubmitting ? (\r\n \r\n ) : (\r\n <>\r\n Enviar\r\n \r\n \r\n )}\r\n \r\n\r\n \r\n {isSaving ? (\r\n \r\n ) : (\r\n <>\r\n Actualizar{' '}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Entendido\r\n \r\n \r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Cerrar\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n

\r\n Esta sección se encuentra temporalmente\r\n deshabilitada.
\r\n Favor comunicarse con Ezequiel Hernández\r\n al 2519-5521 o al correo\r\n ehernandez@plndigital.com\r\n

\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n // eslint-disable-next-line no-else-return\r\n } else {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n};\r\n\r\nexport default withStyles(style)(EditProvinciales);\r\n","function createData(\r\n consecutivo,\r\n cedula,\r\n primerApellido,\r\n segundoApellido,\r\n nombre,\r\n estado,\r\n id,\r\n) {\r\n return {\r\n consecutivo,\r\n cedula,\r\n primerApellido,\r\n segundoApellido,\r\n nombre,\r\n estado,\r\n id,\r\n };\r\n}\r\n\r\nexport const tableHeaders = [\r\n {\r\n name: 'Consecutivo',\r\n },\r\n {\r\n name: 'Cédula',\r\n },\r\n {\r\n name: '1er. Apellido',\r\n },\r\n {\r\n name: '2do. Apellido',\r\n },\r\n {\r\n name: 'Nombre',\r\n },\r\n {\r\n name: 'Estado',\r\n },\r\n];\r\n\r\nexport const dataRows = [\r\n createData(\r\n 1,\r\n '40190001',\r\n 'Sequeira',\r\n 'Valverde',\r\n 'Sonia',\r\n 'Preinscrita',\r\n 2560,\r\n ),\r\n createData(\r\n 2,\r\n '401900012',\r\n 'Calvo',\r\n 'Solorzano',\r\n 'Marta',\r\n 'Preinscrita',\r\n 2561,\r\n ),\r\n];\r\n","import axios from 'axios';\r\n\r\nconst axiosInstance = axios.create({\r\n baseURL: process.env.REACT_APP_API_BASE_URL,\r\n responseType: 'json',\r\n});\r\n\r\nconst getAllPapeletasByUserId = _ced => {\r\n return axiosInstance.get(\r\n `papeletaPresidenteSector/${_ced}`,\r\n );\r\n};\r\n\r\nconst declinePapeleta = params => {\r\n const { codPapeleta, cedulaGestor, consecutivo } = params;\r\n\r\n const info = {\r\n codPapeleta,\r\n cedulaGestor,\r\n consecutivo,\r\n };\r\n\r\n return axiosInstance.post(\r\n `papeletaPresidenteSector/anular`,\r\n info,\r\n );\r\n};\r\n\r\nexport default {\r\n getPresidentesSector: getAllPapeletasByUserId,\r\n actionDeclinePapeleta: declinePapeleta,\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { useJwt } from 'react-jwt';\r\nimport BlockIcon from '@material-ui/icons/Block';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport PrintIcon from '@material-ui/icons/Print';\r\nimport { tableHeaders } from './data';\r\nimport MacroList from '../MacroList/MacroList';\r\nimport presidenteSectorApi from '../../Core/Api/presidenteSectorApi';\r\nimport { getDataComprobante } from '../../Core/Api/comprobanteApi';\r\nimport Storage from '../../Storage/Storage';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport PLNDialog from '../../Components/PLNDialog/PLNDialog';\r\n\r\nimport { generateComprobantePresidenteSector } from '../../Core/Utils/Comprobante';\r\nimport { useCRUDAvailable } from '../../Core/Api/periodoApi';\r\n\r\nfunction createData(_data) {\r\n const filterEstado = Consts.estadosDistritales.filter(\r\n status => {\r\n return status.codigo === _data.cod_estado;\r\n },\r\n );\r\n\r\n return {\r\n consecutivo: _data.num_consecutivo,\r\n cedula: _data.num_cedula,\r\n primerApellido: _data.des_apell1,\r\n segundoApellido: _data.des_apell2,\r\n nombre: _data.des_nombre,\r\n cod_estado: filterEstado[0].estado,\r\n cod_papeleta: _data.cod_papeleta,\r\n };\r\n}\r\n\r\nconst useStyles = makeStyles(() => ({\r\n btnAdd: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n}));\r\n\r\nconst PresidencialSectorial = () => {\r\n // Se valida si esta habilitado CRUD\r\n const isCRUDAvailable = useCRUDAvailable();\r\n const crudAvailable = Lodash.get(\r\n isCRUDAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n const classes = useStyles();\r\n const tokenStorage = Storage.instance;\r\n const history = useHistory();\r\n\r\n const [user, setUser] = useState([]);\r\n const [items, setItems] = useState([]);\r\n const [isDataEmpty, setDataEmpty] = useState(false);\r\n\r\n const { decodedToken } = useJwt(tokenStorage.getToken());\r\n\r\n const [open, setOpenDialog] = useState(false);\r\n const [isRemoved, setIsRemoved] = useState(false); // used on remove modal\r\n const [removedMsj, setRemoveMsj] = useState(\r\n 'La Papeleta será anulada. ¿Desea proceder?',\r\n );\r\n const [dataRemove, setDataRemove] = React.useState(null);\r\n const [hiddenBtn, setHiddenBtn] = useState(false);\r\n // const [filteredItems, setFilteredItems] = useState([]); // used for filtering\r\n\r\n useEffect(() => {\r\n if (decodedToken) {\r\n setUser(decodedToken);\r\n }\r\n }, [decodedToken]);\r\n\r\n const printComprobante = codPapeleta => {\r\n getDataComprobante({\r\n codPapeleta,\r\n type: 4,\r\n }).then(r => {\r\n const comprobanteData = Lodash.get(\r\n r,\r\n ['data', 'response'],\r\n [],\r\n );\r\n\r\n // Informacion General\r\n const { generalInfo } = comprobanteData;\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: comprobanteData.comite,\r\n };\r\n const montoInfo = {\r\n papeleta: comprobanteData.montosInfo.papeleta,\r\n membresia: comprobanteData.montosInfo.membresia,\r\n total: comprobanteData.montosInfo.total,\r\n };\r\n\r\n generateComprobantePresidenteSector(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n async function fetchListAPI() {\r\n if (decodedToken) {\r\n await presidenteSectorApi\r\n .getPresidentesSector(decodedToken.num_cedula)\r\n .then(_response => {\r\n const info = _response.data.response;\r\n\r\n if (info instanceof Object) {\r\n const rowItems = info.map(row => {\r\n return createData(row);\r\n });\r\n\r\n setItems(rowItems);\r\n // setFilteredItems(rowItems);\r\n setDataEmpty(false);\r\n } else {\r\n setDataEmpty(true);\r\n }\r\n })\r\n .catch(_error => {\r\n // eslint-disable-next-line no-console\r\n console.log(_error);\r\n });\r\n }\r\n }\r\n\r\n fetchListAPI();\r\n }, [decodedToken]);\r\n\r\n /**\r\n * List all actions that a user can do for each item in the list\r\n */\r\n const setActions = () => {\r\n const actions = [];\r\n\r\n if (crudAvailable) {\r\n const actionEdit = {\r\n aria: 'Editar Presidencia',\r\n key: 'edit',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n window.location.href = `/presi-sectores/edit/${_item.cod_papeleta}`;\r\n },\r\n };\r\n\r\n actions.push(actionEdit);\r\n\r\n const actionDecline = {\r\n aria: 'Anular Presidencia',\r\n key: 'remove',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n // eslint-disable-next-line no-console\r\n setDataRemove(_item);\r\n setOpenDialog(true);\r\n },\r\n };\r\n\r\n actions.push(actionDecline);\r\n }\r\n const actionPrintComprobante = {\r\n aria: 'Imprimir Comprobante',\r\n key: 'imprimir',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n printComprobante(_item.cod_papeleta);\r\n },\r\n };\r\n\r\n actions.push(actionPrintComprobante);\r\n\r\n return actions;\r\n };\r\n\r\n /**\r\n * Anular papeleta\r\n */\r\n const declineSectorialesByNum = async () => {\r\n const currentCodPapeleta = dataRemove.cod_papeleta;\r\n\r\n if (currentCodPapeleta && currentCodPapeleta > 0) {\r\n setIsRemoved(true);\r\n\r\n await presidenteSectorApi\r\n .actionDeclinePapeleta({\r\n codPapeleta: currentCodPapeleta,\r\n cedulaGestor: decodedToken.num_cedula,\r\n consecutivo: dataRemove.consecutivo,\r\n })\r\n .then(_response => {\r\n const info = _response.data.response;\r\n\r\n if (info === 1 && _response.status === 200) {\r\n setIsRemoved(false);\r\n setHiddenBtn(true);\r\n setRemoveMsj(\r\n `Papeleta: ${currentCodPapeleta} anulada correctamente.`,\r\n );\r\n setTimeout(() => {\r\n setOpenDialog(false);\r\n window.location.href = '/presi-sectores';\r\n }, 3000);\r\n } else {\r\n setHiddenBtn(false);\r\n setRemoveMsj(\r\n 'La operación no se pudo completar. Intente de nuevo.',\r\n );\r\n }\r\n });\r\n }\r\n };\r\n\r\n return (\r\n \r\n history.push('/presi-sectores/add'),\r\n }}\r\n actionConfig={setActions}\r\n tableHeads={tableHeaders}\r\n tableBody={items}\r\n isCrudAvailable={crudAvailable}\r\n />\r\n {}}\r\n title=\"Anular Papeleta\"\r\n bodymessage={removedMsj}\r\n buttons={\r\n hiddenBtn\r\n ? []\r\n : [\r\n {\r\n actionName: 'cancel',\r\n color: 'simple',\r\n title: 'Cerrar',\r\n clickHander: () => {\r\n setOpenDialog(!open);\r\n },\r\n },\r\n {\r\n actionName: 'delete',\r\n disabled: isRemoved,\r\n color: 'remove',\r\n title: isRemoved ? (\r\n \r\n ) : (\r\n 'Anular'\r\n ),\r\n clickHander: declineSectorialesByNum,\r\n },\r\n ]\r\n }\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default PresidencialSectorial;\r\n","import React from 'react';\r\n\r\nconst BalanceContext = React.createContext({\r\n deposits: 0,\r\n memberships: 0,\r\n inscriptions: 0,\r\n saldo: 0,\r\n});\r\n\r\nexport const BalanceProvider = BalanceContext.Provider;\r\nexport const BalanceConsumer = BalanceContext.Consumer;\r\n\r\nexport default BalanceContext;\r\n","const styles = () => ({\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n btnBack: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n btnActions: {\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n sectionTitle: {\r\n fontSize: '16px',\r\n marginTop: 10,\r\n marginBottom: 10,\r\n padding: 5,\r\n color: '#fff',\r\n borderRadius: 4,\r\n background: '#008945',\r\n },\r\n field: {\r\n border: 'solid thin #ccc',\r\n padding: 20,\r\n background: '#f1f1f1',\r\n },\r\n fieldFilled: {\r\n border: 'solid thin #ccc',\r\n padding: 10,\r\n background: '#f1f1f1',\r\n },\r\n fieldMin: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 20,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n },\r\n fieldMinFilled: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 10,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n },\r\n fieldTitle: { margin: 0, padding: 0 },\r\n frmText: {\r\n width: '100%',\r\n height: '38px',\r\n padding: 5,\r\n margin: 0,\r\n display: 'block',\r\n fontSize: '.9em',\r\n lineHeight: 38,\r\n borderColor: '#797979',\r\n borderStyle: 'solid',\r\n borderWidth: 1,\r\n borderRadius: 10,\r\n },\r\n frmIconButton: { marginLeft: 10 },\r\n btnSubmitting: {\r\n width: 104,\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n});\r\n\r\nexport default styles;\r\n","import axios from 'axios';\r\nimport Lodash from 'lodash';\r\nimport { useQuery } from 'react-query';\r\nimport Consts from '../Consts/Consts';\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API_BASE_URL;\r\n\r\nexport const addNew = params => {\r\n const { presidenteEnca } = params;\r\n\r\n return axios.post(\r\n '/papeletaPresidenteSector',\r\n presidenteEnca,\r\n );\r\n};\r\n\r\nexport const getNumPapeletasNacionales = (\r\n idProvince,\r\n idMovimiento,\r\n) => {\r\n const url = [\r\n `/papeletaPresidenteSector/numPapeletas/${idProvince}/${idMovimiento}`,\r\n ];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const searchPapeletas = () => {\r\n const url = [`/papeletaPresidenteSector/doSearch`];\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const getNumPapeletaStatus = params => {\r\n const { papeleta, provincia, movimiento } = params;\r\n const url = [\r\n `/papeletaPresidenteSector/numPapeletaStatus/${papeleta}/${provincia}/${movimiento}`,\r\n ];\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const blockNumPapeleta = params => {\r\n const {\r\n numPapeleta,\r\n codProvincia,\r\n codMovimiento,\r\n } = params;\r\n\r\n const papeletaData = {\r\n numPapeleta,\r\n codProvincia,\r\n codMovimiento,\r\n };\r\n\r\n return axios.post(\r\n '/papeletaPresidenteSector/blockNumPapeleta',\r\n papeletaData,\r\n );\r\n};\r\n\r\nexport const updatePapeleta = params => {\r\n const { codPapeleta, presidenteEnca } = params;\r\n\r\n const papeletaData = {\r\n codPapeleta,\r\n presidenteEnca,\r\n };\r\n\r\n return axios.post(\r\n '/papeletaPresidenteSector/update',\r\n papeletaData,\r\n );\r\n};\r\n\r\nconst getCandidatosPapeleta = async codPapeleta => {\r\n const url = [\r\n `/papeletaPresidenteSector/getCandidatosPapeleta/${codPapeleta}`,\r\n ];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n\r\n return data;\r\n};\r\n\r\nconst searchByCedula = async cedula => {\r\n const url = [`/padron/searchbycedula/${cedula}`];\r\n const { data } = await axios.get(url.join('&'));\r\n return data;\r\n};\r\n\r\nconst preparedList = list => {\r\n const unlockedList = list.map(e => {\r\n Lodash.set(e, 'enabled', false);\r\n return e;\r\n });\r\n return unlockedList;\r\n};\r\n\r\nconst getAllDataPapeleta = async (data, codPapeleta) => {\r\n const initValues = Consts.presidenteSectorInitValues;\r\n\r\n // Se preparan las listas para que los campos esten desbloquedos\r\n const iListComite = preparedList(\r\n Consts.initlistPresiSector,\r\n );\r\n\r\n // Se obtiene el numero de delegados\r\n const numCandidatos = 1;\r\n\r\n // Se obtienen todos los candidatos registrados en la papeleta\r\n const candidatos = await getCandidatosPapeleta(\r\n codPapeleta,\r\n );\r\n\r\n /* ====== Lista de Comité ====== */\r\n\r\n const listComite = await Promise.all(\r\n candidatos.map(async (d, index) => {\r\n const miembro = await searchByCedula(d.NUM_CEDULA);\r\n\r\n // Datos de la persona\r\n const person = Lodash.get(miembro, ['response', 0]);\r\n\r\n // Nombre de la persona\r\n const personName = `${person.des_nombre} ${person.des_apell1} ${person.des_apell2}`;\r\n const personCedula = person.num_cedula;\r\n const personEdad = person.num_edad;\r\n let sexVal = 'M';\r\n if (person.sexo !== 1) {\r\n sexVal = 'F';\r\n }\r\n\r\n // Nombre del campo\r\n const field = Lodash.get(iListComite, [index]);\r\n\r\n Lodash.set(initValues, field.fieldName, personCedula);\r\n\r\n return {\r\n id: index + 1,\r\n lugar: field.lugar,\r\n // numPuesto: d.NUM_PUESTO,\r\n fieldName: field.fieldName,\r\n cedula: personCedula,\r\n nombre: personName,\r\n sexo: sexVal,\r\n edad: personEdad,\r\n enabled: true,\r\n filled: true,\r\n };\r\n }),\r\n );\r\n\r\n // Merging List Comite\r\n const allComite = Lodash.merge(iListComite, listComite);\r\n const firstComite = allComite[0].sexo;\r\n let sexOrderComite = Consts.presiSectorMOrder;\r\n if (firstComite !== 'M') {\r\n sexOrderComite = Consts.presiSectorFOrder;\r\n }\r\n\r\n // Se establece el sexo para el resto de la lista\r\n const finalListComite = Lodash.map(\r\n allComite,\r\n (d, index) => {\r\n const newData = {\r\n id: d.id,\r\n lugar: d.lugar,\r\n numPuesto: d.numPuesto,\r\n fieldName: d.fieldName,\r\n cedula: d.cedula,\r\n nombre: d.nombre,\r\n sexo: sexOrderComite[index].sexo,\r\n edad: d.edad,\r\n enabled: d.cedula !== '',\r\n filled: d.filled,\r\n };\r\n\r\n return newData;\r\n },\r\n );\r\n\r\n return {\r\n papeletaData: data,\r\n numCandidatos,\r\n candidatos: {\r\n listComite: finalListComite,\r\n },\r\n initValues,\r\n };\r\n};\r\n\r\nexport const getPapeletaInfo = async params => {\r\n try {\r\n const { cedGestor, codPapeleta } = params;\r\n\r\n const url = [\r\n `/papeletaPresidenteSector/getByCodPapeleta/${cedGestor}/${codPapeleta}`,\r\n ];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n\r\n const papeletaData = getAllDataPapeleta(\r\n data.response[0],\r\n codPapeleta,\r\n );\r\n\r\n return papeletaData;\r\n } catch (e) {\r\n return { papeletaData: {} };\r\n }\r\n};\r\n\r\nexport const getDataComprobante = params => {\r\n const { cedGestor, codPapeleta } = params;\r\n const url = [\r\n `/papeletaPresidenteSector/dataComprobante/${cedGestor}/${codPapeleta}`,\r\n ];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const usePapeletaInfo = (cedGestor, codPapeleta) => {\r\n return useQuery(\r\n ['papeletaData', cedGestor, codPapeleta],\r\n () => getPapeletaInfo(cedGestor, codPapeleta),\r\n );\r\n};\r\n","/* eslint-disable radix */\r\n/* eslint-disable camelcase */\r\nimport React, {\r\n useState,\r\n useEffect,\r\n useContext,\r\n} from 'react';\r\nimport Lodash from 'lodash';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useJwt } from 'react-jwt';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Grid, Button, Divider } from '@material-ui/core';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\nimport Container from '@material-ui/core/Container';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport SendIcon from '@material-ui/icons/Send';\r\n\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\n\r\nimport { Formik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport BalanceContext from '../../Core/Context/AppContext';\r\nimport style from './styles';\r\n\r\nimport Copyright from '../Copyright/Copyright';\r\nimport ListSearch from '../../Components/ListSearch/ListSearch';\r\nimport {\r\n getEstadoPapeleta,\r\n formatData,\r\n} from '../../Core/Utils/Utils';\r\nimport { generateComprobantePresidenteSector } from '../../Core/Utils/Comprobante';\r\nimport { startPrevencion } from '../../Core/Utils/Prevencion';\r\n\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Storage from '../../Storage/Storage';\r\n\r\nimport {\r\n addNew,\r\n updatePapeleta,\r\n // getNumPapeletasNacionales,\r\n // getNumPapeletaStatus,\r\n // blockNumPapeleta,\r\n} from '../../Core/Api/papeletaPresidenteSector';\r\n\r\nimport { useCRUDAvailable } from '../../Core/Api/periodoApi';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nconst AddPresidenteSector = props => {\r\n // Se valida si esta habilitado CRUD\r\n const isCRUDAvailable = useCRUDAvailable();\r\n const crudAvailable = Lodash.get(\r\n isCRUDAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n const { classes } = props;\r\n const history = useHistory();\r\n\r\n const [user, setUser] = useState([]);\r\n const [statusPapeleta] = useState(3);\r\n const [dateField, setDateField] = useState('');\r\n const [consecutivo, setConsecutivo] = useState('');\r\n const [codPapeleta, setCodPapeleta] = useState(null);\r\n const [fecPapeleta, setFecPapeleta] = useState('');\r\n const [isSaving, setIsSaving] = useState(false);\r\n\r\n const tokenData = Storage.instance;\r\n const { decodedToken } = useJwt(tokenData.getToken());\r\n\r\n const [msjDialog, setMsjDialog] = useState('');\r\n const [open, setOpenDialog] = React.useState(false);\r\n const [finalDialog, setFinalDialog] = React.useState(\r\n false,\r\n );\r\n const handleClose = () => {\r\n setOpenDialog(false);\r\n setIsSaving(false);\r\n };\r\n\r\n const closeFinalDialog = () => {\r\n history.push('/presi-sectores');\r\n };\r\n\r\n // Date Options\r\n const options = {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n // timeZone: 'UTC',\r\n };\r\n\r\n const { balance, setGlobalBalance } = useContext(\r\n BalanceContext,\r\n );\r\n\r\n useEffect(() => {\r\n if (decodedToken !== null) {\r\n setUser(decodedToken);\r\n }\r\n\r\n const today = new Date();\r\n setDateField(\r\n today.toLocaleDateString('es-ES', options),\r\n );\r\n }, [decodedToken, options]);\r\n\r\n // Opciones Seleccionadas\r\n const [numCandidatos] = useState(1);\r\n const [listPresiSector, setlistPresiSector] = useState(\r\n Consts.initlistPresiSector,\r\n );\r\n\r\n // Lista de: Provincias, Cantones, Distritos\r\n const [initialValues] = useState({\r\n presidente: '',\r\n });\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n // Se valida que exista al menos 1 en la lista\r\n const verifyIfCanSave = lCandidates => {\r\n const totalRegistersOnList = Object.keys(\r\n lCandidates,\r\n ).map(c => {\r\n const total = Lodash.countBy(lCandidates[c], rec => {\r\n return rec.filled === true;\r\n });\r\n const result = Lodash.get(total, 'true', 0);\r\n return { count: result };\r\n });\r\n\r\n const canSave = Lodash.find(totalRegistersOnList, o => {\r\n return o.count > 0;\r\n });\r\n\r\n let status = true;\r\n if (!canSave) {\r\n status = false;\r\n }\r\n\r\n return status;\r\n };\r\n\r\n const saveForm = (values, { setSubmitting }) => {\r\n // Se valida que TODOS los campos esten completos al 100%\r\n const totalComite = Lodash.countBy(\r\n listPresiSector,\r\n rec => {\r\n return rec.filled === false;\r\n },\r\n );\r\n\r\n if (totalComite.true !== undefined) {\r\n setMsjDialog(\r\n 'Debe de completarse TODOS los campos de la papeleta al 100%',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n const tFrmsCandidatos = {\r\n comite: listPresiSector,\r\n };\r\n\r\n // Se valida que exista al menos 1 candidato en la papeleta\r\n const canSave = verifyIfCanSave(tFrmsCandidatos);\r\n if (canSave) {\r\n const presidenteEnca = {\r\n num_consecutivo: consecutivo,\r\n num_cedula: tFrmsCandidatos.comite[0].cedula,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n cod_estado: 2,\r\n };\r\n if (consecutivo === '') {\r\n // console.log('START SAVE');\r\n addNew({ presidenteEnca }).then(rNew => {\r\n const nCodPapeleta = Lodash.get(\r\n rNew,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n const nConsecutivo = Lodash.get(\r\n rNew,\r\n ['data', 'consecutivo'],\r\n '',\r\n );\r\n\r\n const fechaPapeleta = Lodash.get(\r\n rNew,\r\n ['data', 'fecha'],\r\n '',\r\n );\r\n const nMontos = Lodash.get(\r\n rNew,\r\n ['data', 'montos'],\r\n '',\r\n );\r\n\r\n // COMPROBANTE: Se genera el Comprobante de la papeleta\r\n // Informacion General\r\n const generalInfo = {\r\n fecha: fechaPapeleta,\r\n consecutivo: nConsecutivo,\r\n };\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Comite\r\n const candidatosComite = [\r\n [\r\n 1,\r\n tFrmsCandidatos.comite[0].cedula,\r\n tFrmsCandidatos.comite[0].nombre,\r\n ],\r\n ];\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: candidatosComite,\r\n };\r\n const montoInfo = {\r\n papeleta: nMontos.papeleta,\r\n membresia: nMontos.membresia,\r\n total: nMontos.total,\r\n };\r\n\r\n const sumInscripciones =\r\n parseFloat(\r\n balance.inscriptions.replace(/,/g, ''),\r\n ) +\r\n parseFloat(\r\n montoInfo.papeleta.replace(/,/g, ''),\r\n );\r\n const sumMembresias =\r\n parseFloat(\r\n balance.memberships.replace(/,/g, ''),\r\n ) +\r\n parseFloat(\r\n montoInfo.membresia.replace(/,/g, ''),\r\n );\r\n\r\n setGlobalBalance(\r\n Object.assign(balance, {\r\n inscriptions: `${formatData(\r\n sumInscripciones,\r\n )}.00`,\r\n memberships: `${formatData(\r\n sumMembresias,\r\n )}.00`,\r\n }),\r\n );\r\n\r\n generateComprobantePresidenteSector(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n\r\n // PROCESO DE PREVENCIÓN\r\n startPrevencion(\r\n user,\r\n nCodPapeleta,\r\n nConsecutivo,\r\n 4,\r\n 'Papeleta de Presidente Sector',\r\n fechaPapeleta,\r\n gestorInfo,\r\n );\r\n\r\n setSubmitting(false);\r\n setConsecutivo(nConsecutivo);\r\n setCodPapeleta(nCodPapeleta);\r\n setMsjDialog(\r\n 'La información de la papeleta se GUARDÓ correctamente.',\r\n );\r\n setFinalDialog(true);\r\n });\r\n } else {\r\n updatePapeleta({\r\n codPapeleta,\r\n presidenteEnca,\r\n }).then(rUpdate => {\r\n const nCodPapeleta = Lodash.get(\r\n rUpdate,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n\r\n const nMontos = Lodash.get(\r\n rUpdate,\r\n ['data', 'montos'],\r\n '',\r\n );\r\n if (nCodPapeleta !== '') {\r\n // COMPROBANTE: Se genera el Comprobante de la papeleta\r\n // Informacion General\r\n const generalInfo = {\r\n fecha: fecPapeleta,\r\n consecutivo,\r\n };\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Comite\r\n const candidatosComite = [\r\n [\r\n 1,\r\n tFrmsCandidatos.comite[0].cedula,\r\n tFrmsCandidatos.comite[0].nombre,\r\n ],\r\n ];\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: candidatosComite,\r\n };\r\n const montoInfo = {\r\n papeleta: nMontos.papeleta,\r\n membresia: nMontos.membresia,\r\n total: nMontos.total,\r\n };\r\n\r\n generateComprobantePresidenteSector(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n\r\n setSubmitting(false);\r\n setMsjDialog(\r\n 'La información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setFinalDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setOpenDialog(true);\r\n }\r\n });\r\n }\r\n } else {\r\n setMsjDialog(\r\n 'Al menos debe de haber ingresado un candidato en la papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n }\r\n };\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n const savePapeleta = values => () => {\r\n setIsSaving(true);\r\n const tFrmsCandidatos = {\r\n comite: listPresiSector,\r\n };\r\n // Se valida que exista al menos 1 candidato en la papeleta\r\n const canSave = verifyIfCanSave(tFrmsCandidatos);\r\n if (canSave) {\r\n const presidenteEnca = {\r\n num_consecutivo: consecutivo,\r\n num_cedula: tFrmsCandidatos.comite[0].cedula,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n cod_estado: 3,\r\n };\r\n\r\n if (consecutivo === '') {\r\n addNew({ presidenteEnca }).then(result => {\r\n setIsSaving(false);\r\n\r\n const nCodPapeleta = Lodash.get(\r\n result,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n const nConsecutivo = Lodash.get(\r\n result,\r\n ['data', 'consecutivo'],\r\n '',\r\n );\r\n const fechaPapeleta = Lodash.get(\r\n result,\r\n ['data', 'fecha'],\r\n '',\r\n );\r\n setConsecutivo(nConsecutivo);\r\n setCodPapeleta(nCodPapeleta);\r\n setFecPapeleta(fechaPapeleta);\r\n setMsjDialog(\r\n 'La información de la papeleta se GUARDÓ correctamente.',\r\n );\r\n setOpenDialog(true);\r\n });\r\n } else {\r\n updatePapeleta({\r\n codPapeleta,\r\n presidenteEnca,\r\n }).then(result => {\r\n const nCodPapeleta = Lodash.get(\r\n result,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n if (nCodPapeleta !== '') {\r\n setMsjDialog(\r\n 'La Información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setOpenDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setOpenDialog(true);\r\n }\r\n });\r\n }\r\n } else {\r\n setMsjDialog(\r\n 'Al menos debe de haber ingresado un candidato en la papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n }\r\n };\r\n\r\n AddPresidenteSector.propTypes = {};\r\n\r\n return (\r\n <>\r\n {crudAvailable ? (\r\n \r\n \r\n \r\n \r\n \r\n Nueva Papeleta de Presidente de Sector\r\n {\r\n history.push('/presi-sectores');\r\n }}\r\n >\r\n Regresar\r\n \r\n \r\n \r\n {formik => (\r\n <>\r\n
\r\n \r\n\r\n
\r\n \r\n Datos del Gestor\r\n \r\n \r\n \r\n \r\n Estado\r\n \r\n \r\n {getEstadoPapeleta(\r\n statusPapeleta,\r\n )}\r\n
\r\n \r\n \r\n \r\n Fecha\r\n \r\n \r\n {dateField}\r\n \r\n \r\n \r\n \r\n Consecutivo\r\n \r\n \r\n {consecutivo}\r\n \r\n \r\n \r\n \r\n Cédula\r\n \r\n \r\n {user.num_cedula}\r\n \r\n \r\n \r\n \r\n Nombre\r\n \r\n \r\n {user.des_nombre}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n {formik.isSubmitting ? (\r\n \r\n ) : (\r\n <>\r\n Enviar\r\n \r\n \r\n )}\r\n \r\n \r\n {isSaving ? (\r\n \r\n ) : (\r\n <>\r\n Guardar\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Entendido\r\n \r\n \r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Cerrar\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n

\r\n Esta sección se encuentra temporalmente\r\n deshabilitada.
\r\n Favor comunicarse con Ezequiel Hernández al\r\n 2519-5521 o al correo\r\n ehernandez@plndigital.com\r\n

\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default withStyles(style)(AddPresidenteSector);\r\n","/* eslint-disable camelcase */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport Lodash from 'lodash';\r\nimport Container from '@material-ui/core/Container';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Grid, Button, Divider } from '@material-ui/core';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport Box from '@material-ui/core/Box';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport SendIcon from '@material-ui/icons/Send';\r\n\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\n\r\nimport { Formik } from 'formik';\r\nimport { useJwt } from 'react-jwt';\r\nimport * as Yup from 'yup';\r\nimport Loading from '../../Components/Loading/Loading';\r\nimport Copyright from '../Copyright/Copyright';\r\nimport ListSearch from '../../Components/ListSearch/ListSearch';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport style from './styles';\r\nimport { getEstadoPapeleta } from '../../Core/Utils/Utils';\r\nimport { generateComprobantePresidenteSector } from '../../Core/Utils/Comprobante';\r\nimport { startPrevencion } from '../../Core/Utils/Prevencion';\r\nimport Storage from '../../Storage/Storage';\r\n\r\nimport {\r\n updatePapeleta,\r\n usePapeletaInfo,\r\n} from '../../Core/Api/papeletaPresidenteSector';\r\n\r\nimport { useCRUDAvailable } from '../../Core/Api/periodoApi';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nconst EditPresidenteSector = props => {\r\n // Se valida si esta habilitado CRUD\r\n const isCRUDAvailable = useCRUDAvailable();\r\n const crudAvailable = Lodash.get(\r\n isCRUDAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n const { classes } = props;\r\n const { id } = useParams();\r\n const history = useHistory();\r\n\r\n const [user, setUser] = useState([]);\r\n const [isSaving, setIsSaving] = useState(false);\r\n\r\n const [listComite, setListComite] = useState(\r\n Consts.initlistPresiSector,\r\n );\r\n\r\n const [msjDialog, setMsjDialog] = useState('');\r\n const [open, setOpenDialog] = React.useState(false);\r\n const [finalDialog, setFinalDialog] = React.useState(\r\n false,\r\n );\r\n const handleClose = () => {\r\n setOpenDialog(false);\r\n setIsSaving(false);\r\n };\r\n const closeFinalDialog = () => {\r\n history.push('/presi-sectores');\r\n };\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const tokenData = Storage.instance;\r\n const { decodedToken } = useJwt(tokenData.getToken());\r\n\r\n const numCedula = Lodash.get(\r\n decodedToken,\r\n ['num_cedula'],\r\n 0,\r\n );\r\n\r\n const { data } = usePapeletaInfo({\r\n cedGestor: numCedula,\r\n codPapeleta: id,\r\n });\r\n\r\n // Datos Generales de la papeleta\r\n const papeletaData = Lodash.get(\r\n data,\r\n ['papeletaData'],\r\n [],\r\n );\r\n\r\n // Cantidad de Candidatos\r\n const numCandidatos = Lodash.get(\r\n data,\r\n ['numCandidatos'],\r\n [],\r\n );\r\n\r\n // Lista de Candidatos incritos\r\n const candidatos = Lodash.get(data, ['candidatos'], []);\r\n\r\n useEffect(() => {\r\n if (decodedToken) {\r\n setUser(decodedToken);\r\n }\r\n }, [decodedToken]);\r\n\r\n if (!Lodash.isEmpty(papeletaData)) {\r\n const {\r\n cod_estado,\r\n // num_puesto,\r\n // ind_movimiento,\r\n fec_registro,\r\n num_consecutivo,\r\n } = papeletaData;\r\n\r\n /*\r\n const isSexOrderRequired = Lodash.get(\r\n data,\r\n ['isSexOrderRequired'],\r\n [],\r\n );\r\n const sexFieldAs = Lodash.get(data, ['sexFieldAs'], []);\r\n const onlyJuventud = Lodash.get(\r\n data,\r\n ['onlyJuventud'],\r\n [],\r\n );\r\n */\r\n\r\n /*\r\n const filterMovimiento = Consts.movimientosCantonales.filter(\r\n status => {\r\n return status.codigo === ind_movimiento;\r\n },\r\n );\r\n\r\n const filterPuesto = Consts.puestosNacionales.filter(\r\n status => {\r\n return status.codigo === num_puesto;\r\n },\r\n );\r\n */\r\n\r\n // const desMovimiento = filterMovimiento[0].movimiento.toUpperCase();\r\n // const desPuesto = filterPuesto[0].descripcion.toUpperCase();\r\n\r\n // Date Options\r\n const options = {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n };\r\n\r\n const today = new Date(fec_registro);\r\n const papeletaDate = today.toLocaleDateString(\r\n 'es-ES',\r\n options,\r\n );\r\n\r\n const initialValues = Lodash.get(\r\n data,\r\n ['initValues'],\r\n [],\r\n );\r\n\r\n // Se valida que exista al menos 1 en la lista\r\n const verifyIfCanSave = lCandidates => {\r\n const totalRegistersOnList = Object.keys(\r\n lCandidates,\r\n ).map(c => {\r\n const total = Lodash.countBy(\r\n lCandidates[c],\r\n rec => {\r\n return rec.filled === true;\r\n },\r\n );\r\n const result = Lodash.get(total, 'true', 0);\r\n return { count: result };\r\n });\r\n\r\n const canSave = Lodash.find(\r\n totalRegistersOnList,\r\n o => {\r\n return o.count > 0;\r\n },\r\n );\r\n\r\n let status = true;\r\n if (!canSave) {\r\n status = false;\r\n }\r\n\r\n return status;\r\n };\r\n\r\n const saveForm = (values, { setSubmitting }) => {\r\n // const { puesto, movimiento } = values;\r\n\r\n // Se valida que TODOS los campos esten completos al 100%\r\n const totalComite = Lodash.countBy(\r\n listComite,\r\n rec => {\r\n return rec.filled === false;\r\n },\r\n );\r\n\r\n if (totalComite.true !== undefined) {\r\n setMsjDialog(\r\n 'Debe de completarse TODOS los campos de la papeleta al 100%',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n // Detalle Papeleta\r\n const tFrmsCandidatos = {\r\n comite: listComite,\r\n };\r\n\r\n // Encabezado Papeleta\r\n const presidenteEnca = {\r\n cod_estado: 2,\r\n num_cedula: tFrmsCandidatos.comite[0].cedula,\r\n num_consecutivo,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n };\r\n // num_cedula: tFrmsCandidatos.comite[0].cedula,\r\n\r\n // console.log(id);\r\n\r\n // Se Actualiza la Papeleta\r\n updatePapeleta({\r\n codPapeleta: id,\r\n presidenteEnca,\r\n }).then(rUpdate => {\r\n const nCodPapeleta = Lodash.get(\r\n rUpdate,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n\r\n const nMontos = Lodash.get(\r\n rUpdate,\r\n ['data', 'montos'],\r\n '',\r\n );\r\n\r\n if (nCodPapeleta !== '') {\r\n // COMPROBANTE: Se genera el Comprobante de la papeleta\r\n // Informacion General\r\n const generalInfo = {\r\n fecha: papeletaDate,\r\n consecutivo: num_consecutivo,\r\n };\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Comite\r\n const candidatosComite = [\r\n [\r\n 1,\r\n tFrmsCandidatos.comite[0].cedula,\r\n tFrmsCandidatos.comite[0].nombre,\r\n ],\r\n ];\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: candidatosComite,\r\n };\r\n const montoInfo = {\r\n papeleta: nMontos.papeleta,\r\n membresia: nMontos.membresia,\r\n total: nMontos.total,\r\n };\r\n\r\n generateComprobantePresidenteSector(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n\r\n // PROCESO DE PREVENCIÓN\r\n startPrevencion(\r\n user,\r\n nCodPapeleta,\r\n num_consecutivo,\r\n 4,\r\n 'Papeleta de Presidente Sector',\r\n papeletaDate,\r\n gestorInfo,\r\n );\r\n\r\n setSubmitting(false);\r\n setMsjDialog(\r\n 'La información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setFinalDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setSubmitting(false);\r\n setOpenDialog(true);\r\n }\r\n });\r\n };\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n const savePapeleta = values => () => {\r\n setIsSaving(true);\r\n // const { movimiento, puesto } = values;\r\n\r\n const tFrmsCandidatos = {\r\n comite: listComite,\r\n };\r\n\r\n const canSave = verifyIfCanSave(tFrmsCandidatos);\r\n\r\n if (canSave) {\r\n const presidenteEnca = {\r\n cod_estado: 3,\r\n num_cedula: tFrmsCandidatos.comite[0].cedula,\r\n num_consecutivo,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n };\r\n\r\n updatePapeleta({\r\n codPapeleta: id,\r\n presidenteEnca,\r\n }).then(result => {\r\n const nCodPapeleta = Lodash.get(\r\n result,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n if (nCodPapeleta !== '') {\r\n setMsjDialog(\r\n 'La Información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setOpenDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n }\r\n });\r\n } else {\r\n setMsjDialog(\r\n 'Al menos debe de haber ingresado un candidato en la papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {crudAvailable ? (\r\n \r\n \r\n \r\n \r\n \r\n {`Editar Papeleta de Presidente de Sector: ${id}`}\r\n {\r\n history.push('/presi-sectores');\r\n }}\r\n >\r\n Regresar\r\n \r\n \r\n \r\n {formik => (\r\n <>\r\n \r\n \r\n\r\n
\r\n \r\n Datos del Gestor\r\n \r\n \r\n \r\n \r\n Estado\r\n \r\n \r\n {getEstadoPapeleta(\r\n cod_estado,\r\n )}\r\n
\r\n
\r\n \r\n \r\n Fecha\r\n \r\n \r\n {papeletaDate}\r\n \r\n \r\n \r\n \r\n Consecutivo\r\n \r\n \r\n {num_consecutivo}\r\n \r\n \r\n \r\n \r\n Cédula\r\n \r\n \r\n {user.num_cedula}\r\n \r\n \r\n \r\n \r\n Nombre\r\n \r\n \r\n {user.des_nombre}\r\n \r\n \r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n {formik.isSubmitting ? (\r\n \r\n ) : (\r\n <>\r\n Enviar\r\n \r\n \r\n )}\r\n \r\n \r\n {isSaving ? (\r\n \r\n ) : (\r\n <>\r\n Actualizar\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Entendido\r\n \r\n \r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Cerrar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n

\r\n Esta sección se encuentra temporalmente\r\n deshabilitada.
\r\n Favor comunicarse con Ezequiel Hernández\r\n al 2519-5521 o al correo\r\n ehernandez@plndigital.com\r\n

\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n // eslint-disable-next-line no-else-return\r\n } else {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n};\r\n\r\nexport default withStyles(style)(EditPresidenteSector);\r\n","function createData(\r\n consecutivo,\r\n sector,\r\n numero,\r\n estado,\r\n id,\r\n) {\r\n return {\r\n consecutivo,\r\n sector,\r\n numero,\r\n estado,\r\n id,\r\n };\r\n}\r\n\r\nexport const tableHeaders = [\r\n {\r\n name: 'Consecutivo',\r\n },\r\n {\r\n name: 'Sector',\r\n },\r\n {\r\n name: 'Número',\r\n },\r\n {\r\n name: 'Estado',\r\n },\r\n];\r\n\r\nexport const dataRows = [\r\n createData(\r\n 1,\r\n 'Profesional',\r\n 10,\r\n 'Preinscrita',\r\n 2560,\r\n ),\r\n createData(\r\n 2,\r\n 'Educativo',\r\n 10,\r\n 'Preinscrita',\r\n 2561,\r\n ),\r\n createData(\r\n 3,\r\n 'Empresarial',\r\n 10,\r\n 'Preinscrita',\r\n 2562,\r\n ),\r\n];\r\n","import axios from 'axios';\r\n\r\nconst axiosInstance = axios.create({\r\n baseURL: process.env.REACT_APP_API_BASE_URL,\r\n responseType: 'json',\r\n});\r\n\r\nconst getAllPapeletasByUserId = _ced => {\r\n return axiosInstance.get(`papeletaSectorial/${_ced}`);\r\n};\r\n\r\nconst declinePapeleta = params => {\r\n const { codPapeleta, cedulaGestor, consecutivo } = params;\r\n\r\n const info = {\r\n codPapeleta,\r\n cedulaGestor,\r\n consecutivo,\r\n };\r\n\r\n return axiosInstance.post(\r\n `papeletaSectorial/anular`,\r\n info,\r\n );\r\n};\r\n\r\nexport default {\r\n getSectoriales: getAllPapeletasByUserId,\r\n actionDeclinePapeleta: declinePapeleta,\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { useJwt } from 'react-jwt';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport BlockIcon from '@material-ui/icons/Block';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport PrintIcon from '@material-ui/icons/Print';\r\nimport { tableHeaders } from './data';\r\nimport MacroList from '../MacroList/MacroList';\r\nimport sectorialesApi from '../../Core/Api/sectorialesApi';\r\nimport { getDataComprobante } from '../../Core/Api/comprobanteApi';\r\nimport Storage from '../../Storage/Storage';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Filters from '../../Components/Filters/RegistrosElectFilter';\r\nimport PLNDialog from '../../Components/PLNDialog/PLNDialog';\r\n\r\nimport { generateComprobanteSectorial } from '../../Core/Utils/Comprobante';\r\nimport { useCRUDAvailableSectores } from '../../Core/Api/periodoApi';\r\n\r\nfunction createData(_data) {\r\n const filterEstado = Consts.estadosDistritales.filter(\r\n status => {\r\n return status.codigo === _data.cod_estado;\r\n },\r\n );\r\n const filterSector = Consts.movimientosSectoriales.filter(\r\n status => {\r\n return status.codigo === _data.ind_sector;\r\n },\r\n );\r\n\r\n return {\r\n consecutivo: _data.num_consecutivo,\r\n sector: filterSector[0].sector,\r\n numero: _data.numero,\r\n cod_estado: filterEstado[0].estado,\r\n cod_papeleta: _data.cod_papeleta,\r\n };\r\n}\r\n\r\nconst useStyles = makeStyles(() => ({\r\n btnAdd: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n}));\r\n\r\nconst Sectoriales = () => {\r\n // Se valida si esta habilitado CRUD\r\n const isCRUDAvailable = useCRUDAvailableSectores();\r\n const crudAvailable = Lodash.get(\r\n isCRUDAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n const classes = useStyles();\r\n\r\n const tokenStorage = Storage.instance;\r\n\r\n const [user, setUser] = useState([]);\r\n const [items, setItems] = useState([]);\r\n const [isDataEmpty, setDataEmpty] = useState(false);\r\n\r\n const [filters, setFilters] = React.useState({\r\n sector: '',\r\n });\r\n\r\n const { decodedToken } = useJwt(tokenStorage.getToken());\r\n const [filteredItems, setFilteredItems] = useState([]); // used for filtering\r\n\r\n const [open, setOpenDialog] = useState(false);\r\n const [isRemoved, setIsRemoved] = useState(false); // used on remove modal\r\n const [removedMsj, setRemoveMsj] = useState(\r\n 'La Papeleta será anulada. ¿Desea proceder?',\r\n );\r\n const [dataRemove, setDataRemove] = React.useState(null);\r\n const [hiddenBtn, setHiddenBtn] = useState(false);\r\n\r\n const getFilterKeys = Object.getOwnPropertyNames(filters);\r\n const TIMING_ON_SEARCH = 900;\r\n\r\n /**\r\n * Filter Items\r\n */\r\n const applyFilters = async () => {\r\n const activeFilters = getFilterKeys.filter(\r\n filter => filters[filter] !== '',\r\n );\r\n\r\n setDataEmpty(true);\r\n\r\n if (activeFilters.length > 0) {\r\n // eslint-disable-next-line no-unused-vars\r\n const dataFiltered = activeFilters.map(myFilter => {\r\n const result = items.filter(_item => {\r\n let currentFilter = _item[myFilter];\r\n if (typeof currentFilter === 'number')\r\n currentFilter = currentFilter.toString();\r\n\r\n return currentFilter\r\n .toLowerCase()\r\n .includes(filters[myFilter].toLowerCase());\r\n });\r\n\r\n setDataEmpty(!result.length > 0);\r\n if (result.length > 0) setFilteredItems(result);\r\n return result;\r\n });\r\n } else {\r\n setFilteredItems(items);\r\n setDataEmpty(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n async function fetchListAPI() {\r\n if (decodedToken) {\r\n await sectorialesApi\r\n .getSectoriales(decodedToken.num_cedula)\r\n .then(_response => {\r\n const info = _response.data.response;\r\n\r\n if (info instanceof Object) {\r\n const rowItems = info.map(row => {\r\n return createData(row);\r\n });\r\n\r\n setItems(rowItems);\r\n setFilteredItems(rowItems);\r\n setDataEmpty(false);\r\n } else {\r\n setDataEmpty(true);\r\n }\r\n })\r\n .catch(_error => {\r\n // eslint-disable-next-line no-console\r\n console.log(_error);\r\n });\r\n }\r\n }\r\n\r\n fetchListAPI();\r\n }, [decodedToken]);\r\n\r\n useEffect(() => {\r\n if (decodedToken) {\r\n setUser(decodedToken);\r\n }\r\n }, [decodedToken]);\r\n\r\n const printComprobante = codPapeleta => {\r\n getDataComprobante({\r\n codPapeleta,\r\n type: 5,\r\n }).then(r => {\r\n const comprobanteData = Lodash.get(\r\n r,\r\n ['data', 'response'],\r\n [],\r\n );\r\n\r\n // Informacion General\r\n const { generalInfo } = comprobanteData;\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: comprobanteData.comite,\r\n };\r\n const montoInfo = {\r\n papeleta: comprobanteData.montosInfo.papeleta,\r\n membresia: comprobanteData.montosInfo.membresia,\r\n total: comprobanteData.montosInfo.total,\r\n };\r\n\r\n generateComprobanteSectorial(\r\n 'ASAMBLEAS DE SECTORES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n });\r\n };\r\n\r\n const listFilters = () => {\r\n return [\r\n {\r\n label: 'Sector:',\r\n action: async ev => {\r\n const updatedValue = {\r\n sector: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.sector,\r\n inputId: 'filter-sector',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n ];\r\n };\r\n\r\n /**\r\n * List all actions that a user can do for each item in the list\r\n */\r\n const setActions = () => {\r\n const actions = [];\r\n\r\n if (crudAvailable) {\r\n const actionEdit = {\r\n aria: 'Editar Sectorial',\r\n key: 'edit',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n window.location.href = `/sectoriales/edit/${_item.cod_papeleta}`;\r\n },\r\n };\r\n\r\n actions.push(actionEdit);\r\n\r\n const actionDecline = {\r\n aria: 'Anular Sectorial',\r\n key: 'remove',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n setDataRemove(_item);\r\n setOpenDialog(true);\r\n const msjReplacement = removedMsj.replace(\r\n '###',\r\n _item.id,\r\n );\r\n setRemoveMsj(msjReplacement);\r\n },\r\n };\r\n\r\n actions.push(actionDecline);\r\n }\r\n\r\n const actionPrintComprobante = {\r\n aria: 'Imprimir Comprobante',\r\n key: 'imprimir',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n printComprobante(_item.cod_papeleta);\r\n },\r\n };\r\n\r\n actions.push(actionPrintComprobante);\r\n\r\n return actions;\r\n };\r\n\r\n /**\r\n * Anular papeleta\r\n */\r\n const declineSectorialesByNum = async () => {\r\n const currentCodPapeleta = dataRemove.cod_papeleta;\r\n\r\n if (currentCodPapeleta && currentCodPapeleta > 0) {\r\n setIsRemoved(true);\r\n\r\n await sectorialesApi\r\n .actionDeclinePapeleta({\r\n codPapeleta: currentCodPapeleta,\r\n cedulaGestor: decodedToken.num_cedula,\r\n consecutivo: dataRemove.consecutivo,\r\n })\r\n .then(_response => {\r\n const info = _response.data.response;\r\n\r\n if (info === 1 && _response.status === 200) {\r\n setIsRemoved(false);\r\n setHiddenBtn(true);\r\n setRemoveMsj(\r\n `Papeleta: ${currentCodPapeleta} anulada correctamente.`,\r\n );\r\n setTimeout(() => {\r\n setOpenDialog(false);\r\n window.location.href = '/sectoriales';\r\n }, 3000);\r\n } else {\r\n setHiddenBtn(false);\r\n setRemoveMsj(\r\n 'La operación no se pudo completar. Intente de nuevo.',\r\n );\r\n }\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n async function proceedFilters() {\r\n await applyFilters();\r\n }\r\n\r\n const timeoutId = setTimeout(() => {\r\n if (filteredItems.length > 0) proceedFilters();\r\n }, TIMING_ON_SEARCH);\r\n return () => clearTimeout(timeoutId);\r\n }, [filters]);\r\n\r\n return (\r\n \r\n }\r\n dataEmpty={isDataEmpty}\r\n listName=\"Papeletas de Sectores\"\r\n uiStylesClasses={classes}\r\n btnConfig={{\r\n actionKey: 'id',\r\n name: '+ Registro',\r\n event: () =>\r\n (window.location.href = `/sectoriales/add`),\r\n }}\r\n actionConfig={setActions}\r\n tableHeads={tableHeaders}\r\n tableBody={filteredItems}\r\n isCrudAvailable={crudAvailable}\r\n />\r\n {}}\r\n title=\"Anular Papeleta\"\r\n bodymessage={removedMsj}\r\n buttons={\r\n hiddenBtn\r\n ? []\r\n : [\r\n {\r\n actionName: 'cancel',\r\n color: 'simple',\r\n title: 'Cerrar',\r\n clickHander: () => {\r\n setOpenDialog(!open);\r\n },\r\n },\r\n {\r\n actionName: 'delete',\r\n disabled: isRemoved,\r\n color: 'remove',\r\n title: isRemoved ? (\r\n \r\n ) : (\r\n 'Anular'\r\n ),\r\n clickHander: declineSectorialesByNum,\r\n },\r\n ]\r\n }\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default Sectoriales;\r\n","const styles = () => ({\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n btnBack: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n btnActions: {\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n sectionTitle: {\r\n fontSize: '16px',\r\n marginTop: 10,\r\n marginBottom: 10,\r\n padding: 5,\r\n color: '#fff',\r\n borderRadius: 4,\r\n background: '#008945',\r\n },\r\n field: {\r\n border: 'solid thin #ccc',\r\n padding: 20,\r\n background: '#f1f1f1',\r\n },\r\n fieldFilled: {\r\n border: 'solid thin #ccc',\r\n padding: 10,\r\n background: '#f1f1f1',\r\n },\r\n fieldMin: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 20,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n },\r\n fieldMinFilled: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 10,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n },\r\n fieldTitle: { margin: 0, padding: 0 },\r\n frmText: {\r\n width: '100%',\r\n height: '38px',\r\n padding: 5,\r\n margin: 0,\r\n display: 'block',\r\n fontSize: '.9em',\r\n lineHeight: 38,\r\n borderColor: '#797979',\r\n borderStyle: 'solid',\r\n borderWidth: 1,\r\n borderRadius: 10,\r\n },\r\n frmIconButton: { marginLeft: 10 },\r\n btnSubmitting: {\r\n width: 104,\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n});\r\n\r\nexport default styles;\r\n","/* eslint-disable no-unused-vars */\r\nimport axios from 'axios';\r\nimport Lodash from 'lodash';\r\nimport { useQuery } from 'react-query';\r\nimport Consts from '../Consts/Consts';\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API_BASE_URL;\r\n\r\nexport const addNew = params => {\r\n const { sectorialEnca, tFrmsCandidatos } = params;\r\n\r\n const papeletaData = {\r\n sectorialEnca,\r\n tFrmsCandidatos,\r\n };\r\n\r\n return axios.post('/papeletaSectorial', papeletaData);\r\n};\r\n\r\nexport const getNumPapeletasSectoriales = idSector => {\r\n const url = [\r\n `/papeletaSectorial/numPapeletas/${idSector}`,\r\n ];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const searchPapeletas = (codSector, numero) => {\r\n const url = [\r\n `/papeletaSectorial/doSearch/${codSector}/${numero}`,\r\n ];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const getDetallePapeleta = codPapeleta => {\r\n const url = [\r\n `/papeletaSectorial/getDetallePapeleta/${codPapeleta}`,\r\n ];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const getNumPapeletaStatus = params => {\r\n const { papeleta, sector } = params;\r\n const url = [\r\n `/papeletaSectorial/numPapeletaStatus/${papeleta}/${sector}`,\r\n ];\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const blockNumPapeleta = params => {\r\n const { numPapeleta, codSector } = params;\r\n\r\n const papeletaData = {\r\n numPapeleta,\r\n codSector,\r\n };\r\n\r\n return axios.post(\r\n '/papeletaSectorial/blockNumPapeleta',\r\n papeletaData,\r\n );\r\n};\r\n\r\nexport const updatePapeleta = params => {\r\n const {\r\n codPapeleta,\r\n sectorialEnca,\r\n tFrmsCandidatos,\r\n } = params;\r\n\r\n const papeletaData = {\r\n codPapeleta,\r\n sectorialEnca,\r\n tFrmsCandidatos,\r\n };\r\n\r\n return axios.post(\r\n '/papeletaSectorial/update',\r\n papeletaData,\r\n );\r\n};\r\n\r\nconst getCandidatosPapeleta = async codPapeleta => {\r\n const url = [\r\n `/papeletaSectorial/getCandidatosPapeleta/${codPapeleta}`,\r\n ];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n\r\n return data;\r\n};\r\n\r\nconst searchByCedula = async cedula => {\r\n const url = [`/padron/searchbycedula/${cedula}`];\r\n const { data } = await axios.get(url.join('&'));\r\n return data;\r\n};\r\n\r\nconst preparedList = list => {\r\n const unlockedList = list.map(e => {\r\n Lodash.set(e, 'enabled', false);\r\n return e;\r\n });\r\n return unlockedList;\r\n};\r\n\r\nconst getAllDataPapeleta = async (data, codPapeleta) => {\r\n const initValues = Consts.sectorialesInitValues;\r\n Lodash.set(initValues, 'sector', data.ind_sector);\r\n\r\n // Estado: REGISTRADA\r\n if (data.cod_estado === 2) {\r\n Lodash.set(initValues, 'papeleta', 999);\r\n // Estado: INSCRITA\r\n } else {\r\n const numStatus = await getNumPapeletaStatus({\r\n papeleta: data.numero,\r\n sector: data.ind_sector,\r\n });\r\n\r\n const numeroStatus = Lodash.get(numStatus, ['data']);\r\n\r\n if (numeroStatus === 1) {\r\n Lodash.set(initValues, 'papeleta', data.numero);\r\n } else {\r\n Lodash.set(initValues, 'papeleta', 999);\r\n }\r\n }\r\n\r\n const allPapeletas = await getNumPapeletasSectoriales(\r\n data.ind_sector,\r\n );\r\n\r\n const papeletasList = Lodash.get(allPapeletas, ['data']);\r\n const plist = papeletasList.map(({ numero }) => {\r\n return {\r\n itemLabel: numero,\r\n value: numero,\r\n };\r\n });\r\n plist.unshift({\r\n itemLabel: '- NUMERO DE PAPELETA -',\r\n value: 999,\r\n });\r\n\r\n // Se preparan las listas para que los campos esten desbloquedos\r\n const iListComite = preparedList(\r\n Consts.initListComiteSectorial,\r\n );\r\n\r\n // Se obtiene el numero de delegados\r\n const numCandidatos = 4;\r\n\r\n // Se obtienen todos los candidatos registrados en la papeleta\r\n const candidatos = await getCandidatosPapeleta(\r\n codPapeleta,\r\n );\r\n\r\n const sexFieldAs = '';\r\n const isSexOrderRequired = true;\r\n const onlyJuventud = false;\r\n\r\n /* ====== Lista de Comité ====== */\r\n const listComite = await Promise.all(\r\n candidatos.map(async (d, index) => {\r\n const miembro = await searchByCedula(d.NUM_CEDULA);\r\n\r\n // Datos de la persona\r\n const person = Lodash.get(miembro, ['response', 0]);\r\n\r\n // Nombre de la persona\r\n const personName = `${person.des_nombre} ${person.des_apell1} ${person.des_apell2}`;\r\n const personCedula = person.num_cedula;\r\n const personEdad = person.num_edad;\r\n let sexVal = 'M';\r\n if (person.sexo !== 1) {\r\n sexVal = 'F';\r\n }\r\n\r\n // Nombre del campo\r\n const field = Lodash.find(iListComite, {\r\n numPuesto: d.NUM_PUESTO,\r\n });\r\n\r\n Lodash.set(initValues, field.fieldName, personCedula);\r\n\r\n return {\r\n id: field.id,\r\n lugar: field.lugar,\r\n numPuesto: d.NUM_PUESTO,\r\n fieldName: field.fieldName,\r\n cedula: personCedula,\r\n nombre: personName,\r\n sexo: sexVal,\r\n edad: personEdad,\r\n enabled: true,\r\n filled: true,\r\n urlFile: d.des_url,\r\n nameFile: d.nom_archivo,\r\n };\r\n }),\r\n );\r\n\r\n const aComite = iListComite.map(com => {\r\n const f = Lodash.find(listComite, {\r\n fieldName: com.fieldName,\r\n });\r\n\r\n if (f === undefined) {\r\n return com;\r\n }\r\n return f;\r\n });\r\n\r\n // Merging List Comite\r\n const allComite = Lodash.merge(iListComite, aComite);\r\n\r\n const firstComite = allComite[0].sexo;\r\n let sexOrderComite = Consts.comiteProvincialMOrder;\r\n if (firstComite !== 'M') {\r\n sexOrderComite = Consts.comiteProvincialFOrder;\r\n }\r\n\r\n // Se establece el sexo para el resto de la lista\r\n const finalListComite = Lodash.map(\r\n allComite,\r\n (d, index) => {\r\n const newData = {\r\n id: d.id,\r\n lugar: d.lugar,\r\n numPuesto: d.numPuesto,\r\n fieldName: d.fieldName,\r\n cedula: d.cedula,\r\n nombre: d.nombre,\r\n sexo: isSexOrderRequired\r\n ? sexOrderComite[index].sexo\r\n : sexFieldAs,\r\n edad: d.edad,\r\n enabled: d.cedula !== '',\r\n filled: d.filled,\r\n urlFile: d.urlFile,\r\n nameFile: d.nameFile,\r\n };\r\n\r\n return newData;\r\n },\r\n );\r\n\r\n /*\r\n return {\r\n papeletaData: [],\r\n numCandidatos: 4,\r\n papeletas: [],\r\n candidatos: {\r\n listComite: [],\r\n },\r\n initValues,\r\n onlyJuventud: false,\r\n sexFieldAs: '',\r\n isSexOrderRequired: true,\r\n };\r\n */\r\n\r\n return {\r\n papeletaData: data,\r\n numCandidatos,\r\n papeletas: plist,\r\n candidatos: {\r\n listComite: finalListComite,\r\n },\r\n initValues,\r\n onlyJuventud,\r\n sexFieldAs,\r\n isSexOrderRequired,\r\n };\r\n};\r\n\r\nexport const getPapeletaInfo = async params => {\r\n try {\r\n const { cedGestor, codPapeleta } = params;\r\n\r\n const url = [\r\n `/papeletaSectorial/getByCodPapeleta/${cedGestor}/${codPapeleta}`,\r\n ];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n const papeletaData = getAllDataPapeleta(\r\n data.response[0],\r\n codPapeleta,\r\n );\r\n\r\n return papeletaData;\r\n } catch (e) {\r\n return { papeletaData: {} };\r\n }\r\n};\r\n\r\nexport const usePapeletaInfo = (cedGestor, codPapeleta) => {\r\n return useQuery(\r\n ['papeletaData', cedGestor, codPapeleta],\r\n () => getPapeletaInfo(cedGestor, codPapeleta),\r\n );\r\n};\r\n","/* eslint-disable no-lonely-if */\r\n/* eslint-disable radix */\r\n/* eslint-disable camelcase */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport Lodash from 'lodash';\r\nimport { useJwt } from 'react-jwt';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Grid, Button, Divider } from '@material-ui/core';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\nimport Container from '@material-ui/core/Container';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport Chip from '@material-ui/core/Chip';\r\nimport SendIcon from '@material-ui/icons/Send';\r\n\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\n\r\nimport { Formik, Field } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport style from './styles';\r\n\r\nimport { PlnDropdown } from '../../Components/Input';\r\nimport Copyright from '../Copyright/Copyright';\r\nimport ListSearch from '../../Components/ListSearch/ListSearch';\r\nimport { getEstadoPapeleta } from '../../Core/Utils/Utils';\r\nimport { generateComprobanteSectorial } from '../../Core/Utils/Comprobante';\r\nimport { startPrevencion } from '../../Core/Utils/Prevencion';\r\n\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Storage from '../../Storage/Storage';\r\n\r\nimport {\r\n addNew,\r\n updatePapeleta,\r\n getNumPapeletasSectoriales,\r\n getNumPapeletaStatus,\r\n blockNumPapeleta,\r\n} from '../../Core/Api/papeletaSectorial';\r\n\r\nimport { useCRUDAvailableSectores } from '../../Core/Api/periodoApi';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nconst AddPapeletaSector = props => {\r\n // Se valida si esta habilitado CRUD\r\n const isCRUDAvailable = useCRUDAvailableSectores();\r\n const crudAvailable = Lodash.get(\r\n isCRUDAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n const { classes } = props;\r\n const history = useHistory();\r\n\r\n const [user, setUser] = useState([]);\r\n const [statusPapeleta] = useState(3);\r\n const [dateField, setDateField] = useState('');\r\n const [consecutivo, setConsecutivo] = useState('');\r\n const [codPapeleta, setCodPapeleta] = useState(null);\r\n const [fecPapeleta, setFecPapeleta] = useState('');\r\n const [isSaving, setIsSaving] = useState(false);\r\n const [showfilters, setShowfilters] = useState(true);\r\n const [showNumPapeleta, setShowNumPapeleta] = useState(\r\n false,\r\n );\r\n\r\n const tokenData = Storage.instance;\r\n const { decodedToken } = useJwt(tokenData.getToken());\r\n\r\n const [msjDialog, setMsjDialog] = useState('');\r\n const [open, setOpenDialog] = React.useState(false);\r\n const [finalDialog, setFinalDialog] = React.useState(\r\n false,\r\n );\r\n const handleClose = () => {\r\n setOpenDialog(false);\r\n setIsSaving(false);\r\n };\r\n\r\n const closeFinalDialog = () => {\r\n history.push('/sectoriales');\r\n };\r\n\r\n // Date Options\r\n const options = {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n // timeZone: 'UTC',\r\n };\r\n\r\n useEffect(() => {\r\n if (decodedToken !== null) {\r\n setUser(decodedToken);\r\n }\r\n\r\n const today = new Date();\r\n setDateField(\r\n today.toLocaleDateString('es-ES', options),\r\n );\r\n }, [decodedToken, options]);\r\n\r\n const [showForm, setShowForm] = useState(false);\r\n\r\n // Opciones Seleccionadas\r\n const [sSector, setSSector] = useState(99);\r\n const [sPapeleta, setSPapeleta] = useState(999);\r\n const [numCandidatos] = useState(4);\r\n const [\r\n listComiteSectorial,\r\n setListComiteSectorial,\r\n ] = useState(Consts.initListComiteSectorial);\r\n\r\n // Lista de: Provincias, Cantones, Distritos\r\n const [initialValues] = useState({\r\n sector: 99,\r\n papeleta: 999,\r\n sectorial1: '',\r\n sectorial2: '',\r\n sectorial3: '',\r\n sectorial4: '',\r\n });\r\n\r\n const [sectores] = useState([\r\n { itemLabel: '- SELECCIONE EL SECTOR -', value: 99 },\r\n { itemLabel: 'Sec. Profesional', value: 2 },\r\n { itemLabel: 'Sec. Magisterial', value: 3 },\r\n { itemLabel: 'Sec. Empresarial', value: 4 },\r\n { itemLabel: 'Sec. Deportivo', value: 5 },\r\n { itemLabel: 'Sec. Cultural', value: 6 },\r\n { itemLabel: 'Sec. Solidarismo', value: 7 },\r\n { itemLabel: 'Sec. Comunalismo', value: 8 },\r\n {\r\n itemLabel: 'Sec. Personas con Discapacidad',\r\n value: 9,\r\n },\r\n { itemLabel: 'Sec. Agroalimentario', value: 10 },\r\n ]);\r\n\r\n const [papeletas, setPapeletas] = useState([\r\n { itemLabel: '- NUMERO DE PAPELETA -', value: 999 },\r\n ]);\r\n\r\n const setSector = c => {\r\n initialValues.sector = c;\r\n\r\n if (c !== 99) {\r\n setShowForm(true);\r\n setShowNumPapeleta(true);\r\n setShowfilters(false);\r\n getNumPapeletasSectoriales(c).then(result => {\r\n if (result.status === 200) {\r\n const papeletasList = Lodash.get(result, [\r\n 'data',\r\n ]);\r\n const plist = papeletasList.map(({ numero }) => {\r\n return {\r\n itemLabel: numero,\r\n value: numero,\r\n };\r\n });\r\n plist.unshift({\r\n itemLabel: '- NUMERO DE PAPELETA -',\r\n value: 999,\r\n });\r\n\r\n setPapeletas(plist);\r\n }\r\n });\r\n\r\n setSSector(\r\n Lodash.find(sectores, {\r\n value: c,\r\n }),\r\n );\r\n }\r\n };\r\n\r\n const setPapeleta = p => {\r\n initialValues.papeleta = p;\r\n setSPapeleta(\r\n Lodash.find(papeletas, {\r\n value: p,\r\n }),\r\n );\r\n };\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n // Se valida que exista al menos 1 en la lista\r\n const verifyIfCanSave = lCandidates => {\r\n const totalRegistersOnList = Object.keys(\r\n lCandidates,\r\n ).map(c => {\r\n const total = Lodash.countBy(lCandidates[c], rec => {\r\n return rec.filled === true;\r\n });\r\n const result = Lodash.get(total, 'true', 0);\r\n return { count: result };\r\n });\r\n\r\n const canSave = Lodash.find(totalRegistersOnList, o => {\r\n return o.count > 0;\r\n });\r\n\r\n let status = true;\r\n if (!canSave) {\r\n status = false;\r\n }\r\n\r\n return status;\r\n };\r\n\r\n const saveForm = (\r\n values,\r\n { setSubmitting, setFieldValue },\r\n ) => {\r\n const { papeleta, sector } = values;\r\n\r\n // Se valida que se haya seleccionado un numero de papeleta\r\n if (papeleta === 999) {\r\n setMsjDialog(\r\n 'Debe seleccionar el número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n setSubmitting(false);\r\n\r\n return;\r\n }\r\n\r\n // Se valida que TODOS los campos esten completos al 100%\r\n const totalComite = Lodash.countBy(\r\n listComiteSectorial,\r\n rec => {\r\n return rec.filled === false;\r\n },\r\n );\r\n\r\n if (totalComite.true !== undefined) {\r\n setMsjDialog(\r\n 'Debe de completarse TODOS los campos de la papeleta al 100%',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n // Se valida que TODOS hayan cargado su archivo\r\n const totalCargaArchivos = Lodash.countBy(\r\n listComiteSectorial,\r\n rec =>\r\n // eslint-disable-next-line no-nested-ternary\r\n rec.urlFile\r\n ? rec.urlFile === ''\r\n ? 'vacio'\r\n : 'conArchivo'\r\n : 'vacio',\r\n );\r\n if (\r\n totalCargaArchivos.vacio !== undefined &&\r\n totalCargaArchivos.vacio > 0\r\n ) {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'Las personas candidatas en los sectores deben presentar los documentos que les permitan acreditar su condición de pertenencia a este sector',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n // eslint-disable-next-line no-useless-return\r\n return;\r\n }\r\n\r\n // Segun el estado de la papeleta, se Crea o Actualiza\r\n getNumPapeletaStatus({\r\n papeleta,\r\n sector,\r\n }).then(result => {\r\n const papeletaStatus = Lodash.get(\r\n result,\r\n ['data'],\r\n 0,\r\n );\r\n if (papeletaStatus === 1) {\r\n // Encabezado Papeleta\r\n const sectorialEnca = {\r\n ind_sector: sector,\r\n cod_estado: 2,\r\n numero: papeleta,\r\n num_consecutivo: consecutivo,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n };\r\n // Detalle Papeleta\r\n const tFrmsCandidatos = {\r\n comite: listComiteSectorial,\r\n };\r\n\r\n // Se valida que exista al menos 1 candidato en la papeleta\r\n const canSave = verifyIfCanSave(tFrmsCandidatos);\r\n if (canSave) {\r\n if (consecutivo === '') {\r\n // Se valida el 20% de la Cuota de Juventud\r\n const porcentajeDelegados = 2;\r\n\r\n let totalCuotaJuventudC = null;\r\n let totalCuotaJuventudM = null;\r\n let totalCuotaJuventudF = null;\r\n\r\n totalCuotaJuventudC = Lodash.countBy(\r\n tFrmsCandidatos.comite,\r\n rec => {\r\n return (\r\n Number.isInteger(rec.edad) &&\r\n rec.edad <= 35\r\n );\r\n },\r\n );\r\n\r\n totalCuotaJuventudM = Lodash.countBy(\r\n tFrmsCandidatos.comite,\r\n rec => {\r\n return (\r\n Number.isInteger(rec.edad) &&\r\n rec.edad <= 35 &&\r\n rec.sexo === 'M'\r\n );\r\n },\r\n );\r\n totalCuotaJuventudF = Lodash.countBy(\r\n tFrmsCandidatos.comite,\r\n rec => {\r\n return (\r\n Number.isInteger(rec.edad) &&\r\n rec.edad <= 35 &&\r\n rec.sexo === 'F'\r\n );\r\n },\r\n );\r\n\r\n if (\r\n totalCuotaJuventudC.true === undefined ||\r\n totalCuotaJuventudC.true < porcentajeDelegados\r\n ) {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'La papeleta NO cumple con la cuota de Juventud. Favor revise los miembros de su papeleta',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n } else {\r\n if (\r\n (totalCuotaJuventudM.false !== undefined &&\r\n totalCuotaJuventudM.false === 4) ||\r\n (totalCuotaJuventudF.false !== undefined &&\r\n totalCuotaJuventudF.false === 4)\r\n ) {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'La papeleta NO cumple con la cuota de Juventud por sexo. Favor revise los miembros de su papeleta',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n } else {\r\n // Se Crea Nueva Papeleta\r\n addNew({\r\n sectorialEnca,\r\n tFrmsCandidatos,\r\n }).then(rNew => {\r\n const nCodPapeleta = Lodash.get(\r\n rNew,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n const nConsecutivo = Lodash.get(\r\n rNew,\r\n ['data', 'consecutivo'],\r\n '',\r\n );\r\n\r\n const fechaPapeleta = Lodash.get(\r\n rNew,\r\n ['data', 'fecha'],\r\n '',\r\n );\r\n const nMontos = Lodash.get(\r\n rNew,\r\n ['data', 'montos'],\r\n '',\r\n );\r\n\r\n // Se bloquea el numero de papeleta\r\n blockNumPapeleta({\r\n numPapeleta: sPapeleta.value,\r\n codSector: sSector.value,\r\n });\r\n\r\n // COMPROBANTE: Se genera el Comprobante de la papeleta\r\n\r\n // Informacion General\r\n const generalInfo = {\r\n sector: sSector.itemLabel,\r\n papeleta: sPapeleta.value,\r\n fecha: fechaPapeleta,\r\n consecutivo: nConsecutivo,\r\n };\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Comite\r\n const candidatosComite = tFrmsCandidatos.comite.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: candidatosComite,\r\n };\r\n const montoInfo = {\r\n papeleta: nMontos.papeleta,\r\n membresia: nMontos.membresia,\r\n total: nMontos.total,\r\n };\r\n generateComprobanteSectorial(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n\r\n // PROCESO DE PREVENCIÓN\r\n startPrevencion(\r\n user,\r\n nCodPapeleta,\r\n nConsecutivo,\r\n 5,\r\n 'Papeleta Sectorial',\r\n fechaPapeleta,\r\n gestorInfo,\r\n );\r\n\r\n setSubmitting(false);\r\n setConsecutivo(nConsecutivo);\r\n setCodPapeleta(nCodPapeleta);\r\n setMsjDialog(\r\n 'La información de la papeleta se GUARDÓ correctamente.',\r\n );\r\n setFinalDialog(true);\r\n });\r\n }\r\n }\r\n } else {\r\n // Se valida el 20% de la Cuota de Juventud\r\n const porcentajeDelegados = Math.floor(\r\n tFrmsCandidatos.comite.length * 0.2,\r\n );\r\n\r\n const totalCuotaJuventud = Lodash.countBy(\r\n tFrmsCandidatos.comite,\r\n rec => {\r\n return (\r\n Number.isInteger(rec.edad) &&\r\n rec.edad <= 35\r\n );\r\n },\r\n );\r\n\r\n if (\r\n totalCuotaJuventud.true === undefined ||\r\n totalCuotaJuventud.true < porcentajeDelegados\r\n ) {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'La papeleta NO cumple con el 20% de la cuota de Juventud. Favor revise los miembros de su papeleta',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n // Se Actualiza la Papeleta\r\n updatePapeleta({\r\n codPapeleta,\r\n sectorialEnca,\r\n tFrmsCandidatos,\r\n }).then(rUpdate => {\r\n const nCodPapeleta = Lodash.get(\r\n rUpdate,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n\r\n const nMontos = Lodash.get(\r\n rUpdate,\r\n ['data', 'montos'],\r\n '',\r\n );\r\n\r\n if (nCodPapeleta !== '') {\r\n // Se bloquea el numero de papeleta\r\n blockNumPapeleta({\r\n numPapeleta: sPapeleta.value,\r\n codSector: sSector.value,\r\n });\r\n\r\n // COMPROBANTE: Se genera el Comprobante de la papeleta\r\n // Informacion General\r\n const generalInfo = {\r\n sector: sSector.itemLabel,\r\n papeleta: sPapeleta.value,\r\n fecha: fecPapeleta,\r\n consecutivo,\r\n };\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Comite\r\n const candidatosComite = tFrmsCandidatos.comite.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: candidatosComite,\r\n };\r\n const montoInfo = {\r\n papeleta: nMontos.papeleta,\r\n membresia: nMontos.membresia,\r\n total: nMontos.total,\r\n };\r\n\r\n generateComprobanteSectorial(\r\n 'ASAMBLEAS DE SECTORES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n\r\n // PROCESO DE PREVENCIÓN\r\n startPrevencion(\r\n user,\r\n nCodPapeleta,\r\n consecutivo,\r\n 5,\r\n 'Papeleta Sectorial',\r\n fecPapeleta,\r\n gestorInfo,\r\n );\r\n\r\n setSubmitting(false);\r\n setMsjDialog(\r\n 'La Información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setFinalDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setSubmitting(false);\r\n setOpenDialog(true);\r\n }\r\n });\r\n }\r\n } else {\r\n setMsjDialog(\r\n 'Al menos debe de haber ingresado un candidato en la papeleta',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n }\r\n } else {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'ATENCIÓN: El número de papeleta seleccionado YA fue elegido. Debe de seleccionar otro número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n setSubmitting(false);\r\n setSPapeleta(\r\n Lodash.find(papeletas, {\r\n value: 999,\r\n }),\r\n );\r\n setFieldValue('papeleta', 999);\r\n getNumPapeletasSectoriales(sector).then(r => {\r\n if (r.status === 200) {\r\n const papeletasList = Lodash.get(r, ['data']);\r\n const plist = papeletasList.map(p => {\r\n return {\r\n itemLabel: p.papeleta,\r\n value: p.papeleta,\r\n };\r\n });\r\n plist.unshift({\r\n itemLabel: '- NUMERO DE PAPELETA -',\r\n value: 999,\r\n });\r\n\r\n setPapeletas(plist);\r\n }\r\n });\r\n }\r\n });\r\n };\r\n\r\n const savePapeleta = values => () => {\r\n setIsSaving(true);\r\n const { papeleta, sector } = values;\r\n\r\n // Se valida que se haya seleccionado un numero de papeleta\r\n if (papeleta === 999) {\r\n setMsjDialog(\r\n 'Debe seleccionar el número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n return;\r\n }\r\n\r\n const tFrmsCandidatos = {\r\n comite: listComiteSectorial,\r\n };\r\n\r\n // Se valida que exista al menos 1 candidato en la papeleta\r\n const canSave = verifyIfCanSave(tFrmsCandidatos);\r\n if (canSave) {\r\n const sectorialEnca = {\r\n ind_sector: sector,\r\n cod_estado: 3,\r\n numero: papeleta,\r\n num_consecutivo: consecutivo,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n };\r\n if (consecutivo === '') {\r\n addNew({ sectorialEnca, tFrmsCandidatos }).then(\r\n result => {\r\n const nCodPapeleta = Lodash.get(\r\n result,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n const nConsecutivo = Lodash.get(\r\n result,\r\n ['data', 'consecutivo'],\r\n '',\r\n );\r\n const fechaPapeleta = Lodash.get(\r\n result,\r\n ['data', 'fecha'],\r\n '',\r\n );\r\n setConsecutivo(nConsecutivo);\r\n setCodPapeleta(nCodPapeleta);\r\n setFecPapeleta(fechaPapeleta);\r\n setMsjDialog(\r\n 'La información de la papeleta se GUARDÓ correctamente.',\r\n );\r\n setOpenDialog(true);\r\n },\r\n );\r\n } else {\r\n updatePapeleta({\r\n codPapeleta,\r\n sectorialEnca,\r\n tFrmsCandidatos,\r\n }).then(result => {\r\n const nCodPapeleta = Lodash.get(\r\n result,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n if (nCodPapeleta !== '') {\r\n setMsjDialog(\r\n 'La Información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setOpenDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setOpenDialog(true);\r\n }\r\n });\r\n }\r\n } else {\r\n setMsjDialog(\r\n 'Al menos debe de haber ingresado un candidato en la papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n }\r\n };\r\n\r\n AddPapeletaSector.propTypes = {};\r\n\r\n return (\r\n <>\r\n {crudAvailable ? (\r\n \r\n \r\n \r\n \r\n \r\n Nueva Papeleta de Sector\r\n {\r\n history.push('/sectoriales');\r\n }}\r\n >\r\n Regresar\r\n \r\n \r\n \r\n {formik => (\r\n <>\r\n
\r\n \r\n \r\n

Sector

\r\n \r\n setSector(sector)\r\n }\r\n />\r\n
\r\n \r\n \r\n \r\n

\r\n Números de papeleta\r\n disponibles:\r\n

\r\n \r\n setPapeleta(papeleta)\r\n }\r\n />\r\n
\r\n \r\n \r\n\r\n {showForm ? (\r\n
\r\n \r\n Datos del Gestor\r\n \r\n \r\n \r\n \r\n Estado\r\n \r\n \r\n {getEstadoPapeleta(\r\n statusPapeleta,\r\n )}\r\n
\r\n \r\n \r\n \r\n Fecha\r\n \r\n \r\n {dateField}\r\n \r\n \r\n \r\n \r\n Consecutivo\r\n \r\n \r\n {consecutivo}\r\n \r\n \r\n \r\n \r\n Cédula\r\n \r\n \r\n {user.num_cedula}\r\n \r\n \r\n \r\n \r\n Nombre\r\n \r\n \r\n {user.des_nombre}\r\n \r\n \r\n \r\n \r\n Sector\r\n \r\n \r\n {sSector.itemLabel}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n

\r\n NOTA: * La persona que\r\n indique el icono con una\r\n  \r\n \r\n  pertenece al grupo\r\n de juventud\r\n

\r\n
\r\n \r\n \r\n {formik.isSubmitting ? (\r\n \r\n ) : (\r\n <>\r\n Enviar\r\n \r\n \r\n )}\r\n \r\n \r\n {isSaving ? (\r\n \r\n ) : (\r\n <>\r\n Guardar\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Entendido\r\n \r\n \r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Cerrar\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n

\r\n Esta sección se encuentra temporalmente\r\n deshabilitada.
\r\n Favor comunicarse con Ezequiel Hernández al\r\n 2519-5521 o al correo\r\n ehernandez@plndigital.com\r\n

\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default withStyles(style)(AddPapeletaSector);\r\n","/* eslint-disable no-lonely-if */\r\n/* eslint-disable no-else-return */\r\n/* eslint-disable camelcase */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport Lodash from 'lodash';\r\nimport Container from '@material-ui/core/Container';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Grid, Button, Divider } from '@material-ui/core';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport Box from '@material-ui/core/Box';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport Chip from '@material-ui/core/Chip';\r\nimport SendIcon from '@material-ui/icons/Send';\r\n\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\n\r\nimport { Formik, Field } from 'formik';\r\nimport { useJwt } from 'react-jwt';\r\nimport * as Yup from 'yup';\r\nimport Loading from '../../Components/Loading/Loading';\r\nimport { PlnDropdown } from '../../Components/Input';\r\nimport Copyright from '../Copyright/Copyright';\r\nimport ListSearch from '../../Components/ListSearch/ListSearch';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport style from './styles';\r\nimport { getEstadoPapeleta } from '../../Core/Utils/Utils';\r\nimport { generateComprobanteSectorial } from '../../Core/Utils/Comprobante';\r\nimport { startPrevencion } from '../../Core/Utils/Prevencion';\r\nimport Storage from '../../Storage/Storage';\r\n\r\nimport {\r\n updatePapeleta,\r\n usePapeletaInfo,\r\n getNumPapeletasSectoriales,\r\n getNumPapeletaStatus,\r\n blockNumPapeleta,\r\n} from '../../Core/Api/papeletaSectorial';\r\n\r\nimport { useCRUDAvailableSectores } from '../../Core/Api/periodoApi';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nconst EditSectoriales = props => {\r\n // Se valida si esta habilitado CRUD\r\n const isCRUDAvailable = useCRUDAvailableSectores();\r\n const crudAvailable = Lodash.get(\r\n isCRUDAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n const { classes } = props;\r\n const { id } = useParams();\r\n const history = useHistory();\r\n\r\n const [user, setUser] = useState([]);\r\n const [isSaving, setIsSaving] = useState(false);\r\n\r\n const [listComite, setListComite] = useState(\r\n Consts.initListComiteSectorial,\r\n );\r\n\r\n const [msjDialog, setMsjDialog] = useState('');\r\n const [open, setOpenDialog] = React.useState(false);\r\n const [finalDialog, setFinalDialog] = React.useState(\r\n false,\r\n );\r\n const handleClose = () => {\r\n setOpenDialog(false);\r\n setIsSaving(false);\r\n };\r\n const closeFinalDialog = () => {\r\n history.push('/sectoriales');\r\n };\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const tokenData = Storage.instance;\r\n const { decodedToken } = useJwt(tokenData.getToken());\r\n\r\n const numCedula = Lodash.get(\r\n decodedToken,\r\n ['num_cedula'],\r\n 0,\r\n );\r\n\r\n const { data } = usePapeletaInfo({\r\n cedGestor: numCedula,\r\n codPapeleta: id,\r\n });\r\n\r\n // Datos Generales de la papeleta\r\n const papeletaData = Lodash.get(\r\n data,\r\n ['papeletaData'],\r\n [],\r\n );\r\n\r\n // Cantidad de Candidatos\r\n const numCandidatos = Lodash.get(\r\n data,\r\n ['numCandidatos'],\r\n [],\r\n );\r\n\r\n // Lista de Candidatos incritos\r\n const candidatos = Lodash.get(data, ['candidatos'], []);\r\n\r\n useEffect(() => {\r\n if (decodedToken) {\r\n setUser(decodedToken);\r\n }\r\n }, [decodedToken]);\r\n\r\n if (!Lodash.isEmpty(papeletaData)) {\r\n const {\r\n numero,\r\n cod_estado,\r\n ind_sector,\r\n fec_registro,\r\n num_consecutivo,\r\n } = papeletaData;\r\n\r\n const filterSector = Consts.movimientosSectoriales.filter(\r\n status => {\r\n return status.codigo === ind_sector;\r\n },\r\n );\r\n\r\n const desSector = filterSector[0].sector.toUpperCase();\r\n\r\n // Date Options\r\n const options = {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n };\r\n\r\n const today = new Date(fec_registro);\r\n const papeletaDate = today.toLocaleDateString(\r\n 'es-ES',\r\n options,\r\n );\r\n\r\n const initialValues = Lodash.get(\r\n data,\r\n ['initValues'],\r\n [],\r\n );\r\n\r\n const papeletas = Lodash.get(data, ['papeletas'], []);\r\n\r\n const setPapeleta = p => {\r\n initialValues.papeleta = p;\r\n };\r\n\r\n // Se valida que exista al menos 1 en la lista\r\n const verifyIfCanSave = lCandidates => {\r\n const totalRegistersOnList = Object.keys(\r\n lCandidates,\r\n ).map(c => {\r\n const total = Lodash.countBy(\r\n lCandidates[c],\r\n rec => {\r\n return rec.filled === true;\r\n },\r\n );\r\n const result = Lodash.get(total, 'true', 0);\r\n return { count: result };\r\n });\r\n\r\n const canSave = Lodash.find(\r\n totalRegistersOnList,\r\n o => {\r\n return o.count > 0;\r\n },\r\n );\r\n\r\n let status = true;\r\n if (!canSave) {\r\n status = false;\r\n }\r\n\r\n return status;\r\n };\r\n\r\n const saveForm = (\r\n values,\r\n { setSubmitting, setFieldValue },\r\n ) => {\r\n const { papeleta, sector } = values;\r\n // Se valida que se haya seleccionado un numero de papeleta\r\n if (papeleta === 999) {\r\n setMsjDialog(\r\n 'Debe seleccionar el número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n setSubmitting(false);\r\n\r\n return;\r\n }\r\n\r\n // Se valida que TODOS los campos esten completos al 100%\r\n const totalComite = Lodash.countBy(\r\n listComite,\r\n rec => {\r\n return rec.filled === false;\r\n },\r\n );\r\n\r\n if (totalComite.true !== undefined) {\r\n setMsjDialog(\r\n 'Debe de completarse TODOS los campos de la papeleta al 100%',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n // Se valida que TODOS hayan cargado su archivo\r\n const totalCargaArchivos = Lodash.countBy(\r\n listComite,\r\n rec =>\r\n // eslint-disable-next-line no-nested-ternary\r\n rec.urlFile\r\n ? rec.urlFile === ''\r\n ? 'vacio'\r\n : 'conArchivo'\r\n : 'vacio',\r\n );\r\n if (\r\n totalCargaArchivos.vacio !== undefined &&\r\n totalCargaArchivos.vacio > 0\r\n ) {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'Las personas candidatas en los sectores deben presentar los documentos que les permitan acreditar su condición de pertenencia a este sector',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n // eslint-disable-next-line no-useless-return\r\n return;\r\n }\r\n\r\n // Segun el estado de la papeleta, se Crea o Actualiza\r\n getNumPapeletaStatus({\r\n papeleta,\r\n sector,\r\n }).then(result => {\r\n const papeletaStatus = Lodash.get(\r\n result,\r\n ['data'],\r\n 0,\r\n );\r\n\r\n if (papeletaStatus === 1) {\r\n // Encabezado Papeleta\r\n const sectorialEnca = {\r\n ind_sector,\r\n cod_estado: 2,\r\n numero: papeleta,\r\n num_consecutivo,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n };\r\n\r\n // Detalle Papeleta\r\n const tFrmsCandidatos = {\r\n comite: listComite,\r\n };\r\n\r\n // Se valida el 20% de la Cuota de Juventud\r\n const porcentajeDelegados = 2;\r\n\r\n let totalCuotaJuventudC = null;\r\n let totalCuotaJuventudM = null;\r\n let totalCuotaJuventudF = null;\r\n\r\n totalCuotaJuventudC = Lodash.countBy(\r\n tFrmsCandidatos.comite,\r\n rec => {\r\n return (\r\n Number.isInteger(rec.edad) && rec.edad <= 35\r\n );\r\n },\r\n );\r\n\r\n totalCuotaJuventudM = Lodash.countBy(\r\n tFrmsCandidatos.comite,\r\n rec => {\r\n return (\r\n Number.isInteger(rec.edad) &&\r\n rec.edad <= 35 &&\r\n rec.sexo === 'M'\r\n );\r\n },\r\n );\r\n totalCuotaJuventudF = Lodash.countBy(\r\n tFrmsCandidatos.comite,\r\n rec => {\r\n return (\r\n Number.isInteger(rec.edad) &&\r\n rec.edad <= 35 &&\r\n rec.sexo === 'F'\r\n );\r\n },\r\n );\r\n\r\n if (\r\n totalCuotaJuventudC.true === undefined ||\r\n totalCuotaJuventudC.true < porcentajeDelegados\r\n ) {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'La papeleta NO cumple con el 20% de la cuota de Juventud. Favor revise los miembros de su papeleta',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n } else {\r\n if (\r\n (totalCuotaJuventudM.false !== undefined &&\r\n totalCuotaJuventudM.false === 4) ||\r\n (totalCuotaJuventudF.false !== undefined &&\r\n totalCuotaJuventudF.false === 4)\r\n ) {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'La papeleta NO cumple con la cuota de Juventud por sexo. Favor revise los miembros de su papeleta',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n } else {\r\n // Se Actualiza la Papeleta\r\n updatePapeleta({\r\n codPapeleta: id,\r\n sectorialEnca,\r\n tFrmsCandidatos,\r\n }).then(rUpdate => {\r\n const nCodPapeleta = Lodash.get(\r\n rUpdate,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n\r\n const nMontos = Lodash.get(\r\n rUpdate,\r\n ['data', 'montos'],\r\n '',\r\n );\r\n\r\n if (nCodPapeleta !== '') {\r\n // Se bloquea el numero de papeleta\r\n blockNumPapeleta({\r\n numPapeleta: papeleta,\r\n codSector: sector,\r\n });\r\n\r\n // COMPROBANTE: Se genera el Comprobante de la papeleta\r\n // Informacion General\r\n const generalInfo = {\r\n sector: desSector,\r\n papeleta,\r\n fecha: papeletaDate,\r\n consecutivo: num_consecutivo,\r\n };\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Comite\r\n const candidatosComite = tFrmsCandidatos.comite.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: candidatosComite,\r\n };\r\n const montoInfo = {\r\n papeleta: nMontos.papeleta,\r\n membresia: nMontos.membresia,\r\n total: nMontos.total,\r\n };\r\n\r\n generateComprobanteSectorial(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n\r\n // PROCESO DE PREVENCIÓN\r\n startPrevencion(\r\n user,\r\n nCodPapeleta,\r\n num_consecutivo,\r\n 5,\r\n 'Papeleta Sectorial',\r\n papeletaDate,\r\n gestorInfo,\r\n );\r\n\r\n setSubmitting(false);\r\n setMsjDialog(\r\n 'La Información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setFinalDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setSubmitting(false);\r\n setOpenDialog(true);\r\n }\r\n });\r\n }\r\n }\r\n } else {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'ATENCIÓN: El número de papeleta seleccionado YA fue elegido. Debe de seleccionar otro número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n setSubmitting(false);\r\n setFieldValue('papeleta', 999);\r\n getNumPapeletasSectoriales(sector).then(r => {\r\n if (r.status === 200) {\r\n const papeletasList = Lodash.get(r, ['data']);\r\n const plist = papeletasList.map(p => {\r\n return {\r\n itemLabel: p.papeleta,\r\n value: p.papeleta,\r\n };\r\n });\r\n plist.unshift({\r\n itemLabel: '- NUMERO DE PAPELETA -',\r\n value: 999,\r\n });\r\n\r\n // setPapeletas(plist);\r\n }\r\n });\r\n }\r\n });\r\n };\r\n\r\n const savePapeleta = values => () => {\r\n setIsSaving(true);\r\n const { papeleta } = values;\r\n\r\n // Se valida que se haya seleccionado un numero de papeleta\r\n if (papeleta === 999) {\r\n setMsjDialog(\r\n 'Debe seleccionar el número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n return;\r\n }\r\n\r\n const tFrmsCandidatos = {\r\n comite: listComite,\r\n };\r\n\r\n const canSave = verifyIfCanSave(tFrmsCandidatos);\r\n\r\n if (canSave) {\r\n const sectorialEnca = {\r\n ind_sector,\r\n cod_estado: 3,\r\n numero: papeleta,\r\n num_consecutivo,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n };\r\n updatePapeleta({\r\n codPapeleta: id,\r\n sectorialEnca,\r\n tFrmsCandidatos,\r\n }).then(result => {\r\n const nCodPapeleta = Lodash.get(\r\n result,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n if (nCodPapeleta !== '') {\r\n setMsjDialog(\r\n 'La Información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setOpenDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n }\r\n });\r\n } else {\r\n setMsjDialog(\r\n 'Al menos debe de haber ingresado un candidato en la papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {crudAvailable ? (\r\n \r\n \r\n \r\n \r\n \r\n {`Editar Papeleta de Sectores: ${id}`}\r\n {\r\n history.push('/sectoriales');\r\n }}\r\n >\r\n Regresar\r\n \r\n \r\n \r\n {formik => (\r\n
\r\n \r\n \r\n \r\n Números de papeleta\r\n disponibles:\r\n \r\n {cod_estado === 3 ? (\r\n \r\n setPapeleta(papeleta)\r\n }\r\n />\r\n ) : (\r\n \r\n {numero}\r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n \r\n Datos del Gestor\r\n \r\n \r\n \r\n \r\n Estado\r\n \r\n \r\n {getEstadoPapeleta(\r\n cod_estado,\r\n )}\r\n
\r\n \r\n \r\n \r\n Fecha\r\n \r\n \r\n {papeletaDate}\r\n \r\n \r\n \r\n \r\n Consecutivo\r\n \r\n \r\n {num_consecutivo}\r\n \r\n \r\n \r\n \r\n Cédula\r\n \r\n \r\n {user.num_cedula}\r\n \r\n \r\n \r\n \r\n Nombre\r\n \r\n \r\n {user.des_nombre}\r\n \r\n \r\n \r\n \r\n Sector\r\n \r\n \r\n {desSector}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n

\r\n NOTA: * La persona que\r\n indique el icono con una\r\n  \r\n \r\n  pertenece al grupo\r\n juventud\r\n

\r\n
\r\n \r\n \r\n {formik.isSubmitting ? (\r\n \r\n ) : (\r\n <>\r\n Enviar\r\n \r\n \r\n )}\r\n \r\n\r\n \r\n {isSaving ? (\r\n \r\n ) : (\r\n <>\r\n Actualizar{' '}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Entendido\r\n \r\n \r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Cerrar\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n

\r\n Esta sección se encuentra temporalmente\r\n deshabilitada.
\r\n Favor comunicarse con Ezequiel Hernández\r\n al 2519-5521 o al correo\r\n ehernandez@plndigital.com\r\n

\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n // eslint-disable-next-line no-else-return\r\n } else {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n};\r\n\r\nexport default withStyles(style)(EditSectoriales);\r\n","function createData(\r\n consecutivo,\r\n movimiento,\r\n puesto,\r\n cedula,\r\n primerApellido,\r\n segundoApellido,\r\n nombre,\r\n estado,\r\n id,\r\n) {\r\n return {\r\n consecutivo,\r\n movimiento,\r\n puesto,\r\n cedula,\r\n primerApellido,\r\n segundoApellido,\r\n nombre,\r\n estado,\r\n id,\r\n };\r\n}\r\n\r\nexport const tableHeaders = [\r\n {\r\n name: 'Consecutivo',\r\n },\r\n {\r\n name: 'Movimiento',\r\n },\r\n {\r\n name: 'Puesto',\r\n },\r\n {\r\n name: 'Cédula Propietario',\r\n },\r\n {\r\n name: '1er. Apellido',\r\n },\r\n {\r\n name: '2do. Apellido',\r\n },\r\n {\r\n name: 'Nombre',\r\n },\r\n {\r\n name: 'Estado',\r\n },\r\n];\r\n\r\nexport const dataRows = [\r\n createData(\r\n 1,\r\n 'Mujeres',\r\n 'Vicepresidente',\r\n '100230628',\r\n 'Calvo',\r\n 'Solorzano',\r\n 'Marta',\r\n 'Preinscrita',\r\n 1,\r\n ),\r\n createData(\r\n 2,\r\n 'Trabajadores',\r\n 'Vicepresidente',\r\n '100339724',\r\n 'Delgado',\r\n 'Corrales',\r\n 'Jose',\r\n 'Preinscrita',\r\n 2,\r\n ),\r\n createData(\r\n 3,\r\n 'Juventud',\r\n 'Vicepresidente',\r\n '100351840',\r\n 'Quiros',\r\n 'Quiros',\r\n 'Ricardo',\r\n 'Preinscrita',\r\n 3,\r\n ),\r\n createData(\r\n 4,\r\n 'Cooperativo',\r\n 'Vicepresidente',\r\n '10040188',\r\n 'Mora',\r\n 'Berrocal',\r\n 'Antonio',\r\n 'Anulada',\r\n 4,\r\n ),\r\n];\r\n","import axios from 'axios';\r\n\r\nconst axiosInstance = axios.create({\r\n baseURL: process.env.REACT_APP_API_BASE_URL,\r\n responseType: 'json',\r\n});\r\n\r\nconst getAllPapeletasByUserId = _ced => {\r\n return axiosInstance.get(`papeletaNacional/${_ced}`);\r\n};\r\n\r\nconst declinePapeleta = params => {\r\n const { codPapeleta, cedulaGestor, consecutivo } = params;\r\n\r\n const info = {\r\n codPapeleta,\r\n cedulaGestor,\r\n consecutivo,\r\n };\r\n\r\n return axiosInstance.post(\r\n `papeletaNacional/anular`,\r\n info,\r\n );\r\n};\r\n\r\nexport default {\r\n getNacionales: getAllPapeletasByUserId,\r\n actionDeclinePapeleta: declinePapeleta,\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { useJwt } from 'react-jwt';\r\nimport BlockIcon from '@material-ui/icons/Block';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport PrintIcon from '@material-ui/icons/Print';\r\nimport { tableHeaders } from './data';\r\nimport MacroList from '../MacroList/MacroList';\r\nimport nacionalesApi from '../../Core/Api/nacionalesApi';\r\nimport { getDataComprobante } from '../../Core/Api/comprobanteApi';\r\nimport Storage from '../../Storage/Storage';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Filters from '../../Components/Filters/RegistrosElectFilter';\r\nimport PLNDialog from '../../Components/PLNDialog/PLNDialog';\r\n\r\nimport { generateComprobanteNacional } from '../../Core/Utils/Comprobante';\r\nimport { useCRUDAvailable } from '../../Core/Api/periodoApi';\r\n\r\nfunction createData(_data) {\r\n const filterEstado = Consts.estadosDistritales.filter(\r\n status => {\r\n return status.codigo === _data.cod_estado;\r\n },\r\n );\r\n const filterMovimiento = Consts.movimientosCantonales.filter(\r\n status => {\r\n return status.codigo === _data.ind_movimiento;\r\n },\r\n );\r\n const filterPuesto = Consts.puestosNacionales.filter(\r\n status => {\r\n return status.codigo === _data.num_puesto;\r\n },\r\n );\r\n\r\n return {\r\n consecutivo: _data.num_consecutivo,\r\n movimiento: filterMovimiento[0].movimiento,\r\n puesto: filterPuesto[0].descripcion,\r\n cedula: _data.num_cedula,\r\n primerApellido: _data.des_apell1,\r\n segundoApellido: _data.des_apell2,\r\n nombre: _data.des_nombre,\r\n cod_estado: filterEstado[0].estado,\r\n cod_papeleta: _data.cod_papeleta,\r\n };\r\n}\r\n\r\nconst useStyles = makeStyles(() => ({\r\n btnAdd: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n}));\r\n\r\nconst Nacionales = () => {\r\n // Se valida si esta habilitado CRUD\r\n const isCRUDAvailable = useCRUDAvailable();\r\n const crudAvailable = Lodash.get(\r\n isCRUDAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n const classes = useStyles();\r\n const tokenStorage = Storage.instance;\r\n\r\n const [user, setUser] = useState([]);\r\n const [items, setItems] = useState([]);\r\n const [isDataEmpty, setDataEmpty] = useState(false);\r\n\r\n const [filters, setFilters] = useState({\r\n id: '',\r\n movimiento: '',\r\n puesto: '',\r\n cedula: '',\r\n primerApellido: '',\r\n segundoApellido: '',\r\n nombre: '',\r\n });\r\n\r\n const { decodedToken } = useJwt(tokenStorage.getToken());\r\n const [filteredItems, setFilteredItems] = useState([]); // used for filtering\r\n\r\n const [open, setOpenDialog] = useState(false);\r\n const [isRemoved, setIsRemoved] = useState(false); // used on remove modal\r\n const [removedMsj, setRemoveMsj] = useState(\r\n 'La Papeleta será anulada. ¿Desea proceder?',\r\n );\r\n const [dataRemove, setDataRemove] = React.useState(null);\r\n const [hiddenBtn, setHiddenBtn] = useState(false);\r\n\r\n const getFilterKeys = Object.getOwnPropertyNames(filters);\r\n const TIMING_ON_SEARCH = 900;\r\n\r\n useEffect(() => {\r\n if (decodedToken) {\r\n setUser(decodedToken);\r\n }\r\n }, [decodedToken]);\r\n\r\n const printComprobante = codPapeleta => {\r\n getDataComprobante({\r\n codPapeleta,\r\n type: 'nacional',\r\n }).then(r => {\r\n const comprobanteData = Lodash.get(\r\n r,\r\n ['data', 'response'],\r\n [],\r\n );\r\n\r\n // Informacion General\r\n const { generalInfo } = comprobanteData;\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: comprobanteData.comite,\r\n };\r\n const montoInfo = {\r\n papeleta: comprobanteData.montosInfo.papeleta,\r\n membresia: comprobanteData.montosInfo.membresia,\r\n total: comprobanteData.montosInfo.total,\r\n };\r\n\r\n generateComprobanteNacional(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n });\r\n };\r\n\r\n /**\r\n * Filter Items\r\n */\r\n const applyFilters = async () => {\r\n const activeFilters = getFilterKeys.filter(\r\n filter => filters[filter] !== '',\r\n );\r\n\r\n setDataEmpty(true);\r\n\r\n if (activeFilters.length > 0) {\r\n // eslint-disable-next-line no-unused-vars\r\n const dataFiltered = activeFilters.map(myFilter => {\r\n const result = items.filter(_item => {\r\n let currentFilter = _item[myFilter];\r\n if (typeof currentFilter === 'number')\r\n currentFilter = currentFilter.toString();\r\n\r\n return currentFilter\r\n .toLowerCase()\r\n .includes(filters[myFilter].toLowerCase());\r\n });\r\n\r\n setDataEmpty(!result.length > 0);\r\n if (result.length > 0) setFilteredItems(result);\r\n return result;\r\n });\r\n } else {\r\n setFilteredItems(items);\r\n setDataEmpty(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n async function fetchListAPI() {\r\n if (decodedToken) {\r\n await nacionalesApi\r\n .getNacionales(decodedToken.num_cedula)\r\n .then(_response => {\r\n const info = _response.data.response;\r\n\r\n if (info instanceof Object) {\r\n const rowItems = info.map(row => {\r\n return createData(row);\r\n });\r\n\r\n setItems(rowItems);\r\n setFilteredItems(rowItems);\r\n setDataEmpty(false);\r\n } else {\r\n setDataEmpty(true);\r\n }\r\n })\r\n .catch(_error => {\r\n // eslint-disable-next-line no-console\r\n console.log(_error);\r\n });\r\n }\r\n }\r\n\r\n fetchListAPI();\r\n }, [decodedToken]);\r\n\r\n useEffect(() => {\r\n async function proceedFilters() {\r\n await applyFilters();\r\n }\r\n\r\n const timeoutId = setTimeout(() => {\r\n if (filteredItems.length > 0) proceedFilters();\r\n }, TIMING_ON_SEARCH);\r\n return () => clearTimeout(timeoutId);\r\n }, [filters]);\r\n\r\n const listFilters = () => {\r\n return [\r\n {\r\n label: 'Movimiento:',\r\n action: async ev => {\r\n const updatedValue = {\r\n movimiento: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.movimiento,\r\n inputId: 'filter-movimiento',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: 'Puesto:',\r\n action: async ev => {\r\n const updatedValue = {\r\n puesto: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.puesto,\r\n inputId: 'filter-puesto',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n ];\r\n };\r\n\r\n /**\r\n * List all actions that a user can do for each item in the list\r\n */\r\n const setActions = () => {\r\n const actions = [];\r\n\r\n if (crudAvailable) {\r\n const actionEdit = {\r\n aria: 'Edit Nacional',\r\n key: 'edit',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n window.location.href = `/nacionales/edit/${_item.cod_papeleta}`;\r\n },\r\n };\r\n\r\n actions.push(actionEdit);\r\n\r\n const actionDecline = {\r\n aria: 'Anular Nacional',\r\n key: 'remove',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n setDataRemove(_item);\r\n setOpenDialog(true);\r\n },\r\n };\r\n\r\n actions.push(actionDecline);\r\n }\r\n const actionPrintComprobante = {\r\n aria: 'Imprimir Comprobante',\r\n key: 'imprimir',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n printComprobante(_item.cod_papeleta);\r\n },\r\n };\r\n\r\n actions.push(actionPrintComprobante);\r\n return actions;\r\n };\r\n\r\n /**\r\n * Anular papeleta\r\n */\r\n const declineNacionalesByNum = async () => {\r\n const currentCodPapeleta = dataRemove.cod_papeleta;\r\n\r\n if (currentCodPapeleta && currentCodPapeleta > 0) {\r\n setIsRemoved(true);\r\n\r\n await nacionalesApi\r\n .actionDeclinePapeleta({\r\n codPapeleta: currentCodPapeleta,\r\n cedulaGestor: decodedToken.num_cedula,\r\n consecutivo: dataRemove.consecutivo,\r\n })\r\n .then(_response => {\r\n const info = _response.data.response;\r\n\r\n if (info === 1 && _response.status === 200) {\r\n setIsRemoved(false);\r\n setHiddenBtn(true);\r\n setRemoveMsj(\r\n `Papeleta: ${currentCodPapeleta} anulada correctamente.`,\r\n );\r\n setTimeout(() => {\r\n setOpenDialog(false);\r\n window.location.href = '/nacionales';\r\n }, 3000);\r\n } else {\r\n setHiddenBtn(false);\r\n setRemoveMsj(\r\n 'La operación no se pudo completar. Intente de nuevo.',\r\n );\r\n }\r\n });\r\n }\r\n };\r\n\r\n return (\r\n \r\n }\r\n dataEmpty={isDataEmpty}\r\n listName=\"Lista de Papeletas Nacionales\"\r\n uiStylesClasses={classes}\r\n btnConfig={{\r\n name: '+ Registro',\r\n event: () =>\r\n (window.location.href = `/nacionales/add`),\r\n }}\r\n actionConfig={setActions}\r\n tableHeads={tableHeaders}\r\n tableBody={filteredItems}\r\n isCrudAvailable={crudAvailable}\r\n />\r\n {}}\r\n title=\"Anular Papeleta\"\r\n bodymessage={removedMsj}\r\n buttons={\r\n hiddenBtn\r\n ? []\r\n : [\r\n {\r\n actionName: 'cancel',\r\n color: 'simple',\r\n title: 'Cerrar',\r\n clickHander: () => {\r\n setOpenDialog(!open);\r\n },\r\n },\r\n {\r\n actionName: 'delete',\r\n disabled: isRemoved,\r\n color: 'remove',\r\n title: isRemoved ? (\r\n \r\n ) : (\r\n 'Anular'\r\n ),\r\n clickHander: declineNacionalesByNum,\r\n },\r\n ]\r\n }\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default Nacionales;\r\n","const styles = () => ({\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n btnBack: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n btnActions: {\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n sectionTitle: {\r\n fontSize: '16px',\r\n marginTop: 10,\r\n marginBottom: 10,\r\n padding: 5,\r\n color: '#fff',\r\n borderRadius: 4,\r\n background: '#008945',\r\n },\r\n field: {\r\n border: 'solid thin #ccc',\r\n padding: 20,\r\n background: '#f1f1f1',\r\n },\r\n fieldFilled: {\r\n border: 'solid thin #ccc',\r\n padding: 10,\r\n background: '#f1f1f1',\r\n },\r\n fieldMin: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 20,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n },\r\n fieldMinFilled: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 10,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n },\r\n fieldTitle: { margin: 0, padding: 0 },\r\n frmText: {\r\n width: '100%',\r\n height: '38px',\r\n padding: 5,\r\n margin: 0,\r\n display: 'block',\r\n fontSize: '.9em',\r\n lineHeight: 38,\r\n borderColor: '#797979',\r\n borderStyle: 'solid',\r\n borderWidth: 1,\r\n borderRadius: 10,\r\n },\r\n frmIconButton: { marginLeft: 10 },\r\n btnSubmitting: {\r\n width: 104,\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n});\r\n\r\nexport default styles;\r\n","/* eslint-disable no-unused-vars */\r\nimport axios from 'axios';\r\nimport Lodash from 'lodash';\r\nimport { useQuery } from 'react-query';\r\nimport Consts from '../Consts/Consts';\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API_BASE_URL;\r\n\r\nexport const addNew = params => {\r\n const { nacionalEnca, tFrmsCandidatos } = params;\r\n\r\n const papeletaData = {\r\n nacionalEnca,\r\n tFrmsCandidatos,\r\n };\r\n\r\n return axios.post('/papeletaNacional', papeletaData);\r\n};\r\n\r\nexport const getNumPapeletasNacionales = (\r\n idProvince,\r\n idMovimiento,\r\n) => {\r\n const url = [\r\n `/papeletaNacional/numPapeletas/${idProvince}/${idMovimiento}`,\r\n ];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const searchPapeletas = (\r\n codMovimiento,\r\n codPuesto,\r\n) => {\r\n const url = [\r\n `/papeletaNacional/doSearch/${codMovimiento}/${codPuesto}`,\r\n ];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const getNumPapeletaStatus = params => {\r\n const { papeleta, provincia, movimiento } = params;\r\n const url = [\r\n `/papeletaNacional/numPapeletaStatus/${papeleta}/${provincia}/${movimiento}`,\r\n ];\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const blockNumPapeleta = params => {\r\n const {\r\n numPapeleta,\r\n codProvincia,\r\n codMovimiento,\r\n } = params;\r\n\r\n const papeletaData = {\r\n numPapeleta,\r\n codProvincia,\r\n codMovimiento,\r\n };\r\n\r\n return axios.post(\r\n '/papeletaNacional/blockNumPapeleta',\r\n papeletaData,\r\n );\r\n};\r\n\r\nexport const updatePapeleta = params => {\r\n const {\r\n codPapeleta,\r\n nacionalEnca,\r\n tFrmsCandidatos,\r\n } = params;\r\n\r\n const papeletaData = {\r\n codPapeleta,\r\n nacionalEnca,\r\n tFrmsCandidatos,\r\n };\r\n\r\n return axios.post(\r\n '/papeletaNacional/update',\r\n papeletaData,\r\n );\r\n};\r\n\r\nconst getCandidatosPapeleta = async codPapeleta => {\r\n const url = [\r\n `/papeletaNacional/getCandidatosPapeleta/${codPapeleta}`,\r\n ];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n\r\n return data;\r\n};\r\n\r\nconst searchByCedula = async cedula => {\r\n const url = [`/padron/searchbycedula/${cedula}`];\r\n const { data } = await axios.get(url.join('&'));\r\n return data;\r\n};\r\n\r\nconst preparedList = list => {\r\n const unlockedList = list.map(e => {\r\n Lodash.set(e, 'enabled', false);\r\n return e;\r\n });\r\n return unlockedList;\r\n};\r\n\r\nconst getAllDataPapeleta = async (data, codPapeleta) => {\r\n const initValues = Consts.nacionalesInitValues;\r\n Lodash.set(initValues, 'movimiento', data.ind_movimiento);\r\n Lodash.set(initValues, 'puesto', data.num_puesto);\r\n\r\n // Se preparan las listas para que los campos esten desbloquedos\r\n const iListComite = preparedList(\r\n Consts.initListComiteNacional,\r\n );\r\n\r\n // console.log(iListComite);\r\n\r\n // Se obtiene el numero de delegados\r\n let numCandidatos = 1;\r\n if (\r\n data.ind_movimiento === 3 ||\r\n data.ind_movimiento === 4\r\n ) {\r\n numCandidatos = 3;\r\n } else {\r\n numCandidatos = 1;\r\n }\r\n\r\n // Se obtienen todos los candidatos registrados en la papeleta\r\n const candidatos = await getCandidatosPapeleta(\r\n codPapeleta,\r\n );\r\n\r\n // console.log(candidatos);\r\n\r\n let sexFieldAs = '';\r\n let isSexOrderRequired = true;\r\n let onlyJuventud = false;\r\n\r\n if (data.ind_movimiento === 1) {\r\n sexFieldAs = 'F';\r\n isSexOrderRequired = false;\r\n }\r\n\r\n if (data.ind_movimiento === 2) {\r\n onlyJuventud = true;\r\n }\r\n\r\n /* ====== Lista de Comité ====== */\r\n\r\n const listComite = await Promise.all(\r\n candidatos.map(async (d, index) => {\r\n const miembro = await searchByCedula(d.NUM_CEDULA);\r\n\r\n // Datos de la persona\r\n const person = Lodash.get(miembro, ['response', 0]);\r\n\r\n // Nombre de la persona\r\n const personName = `${person.des_nombre} ${person.des_apell1} ${person.des_apell2}`;\r\n const personCedula = person.num_cedula;\r\n const personEdad = person.num_edad;\r\n let sexVal = 'M';\r\n if (person.sexo !== 1) {\r\n sexVal = 'F';\r\n }\r\n\r\n // Nombre del campo\r\n const field = Lodash.find(iListComite, {\r\n numPuesto: d.NUM_PUESTO,\r\n });\r\n\r\n Lodash.set(initValues, field.fieldName, personCedula);\r\n\r\n return {\r\n id: field.id,\r\n lugar: field.lugar,\r\n numPuesto: d.NUM_PUESTO,\r\n fieldName: field.fieldName,\r\n cedula: personCedula,\r\n nombre: personName,\r\n sexo: sexVal,\r\n edad: personEdad,\r\n enabled: true,\r\n filled: true,\r\n };\r\n }),\r\n );\r\n\r\n const aComite = iListComite.map(com => {\r\n const f = Lodash.find(listComite, {\r\n fieldName: com.fieldName,\r\n });\r\n\r\n if (f === undefined) {\r\n return com;\r\n }\r\n return f;\r\n });\r\n\r\n // Merging List Comite\r\n const allComite = Lodash.merge(iListComite, aComite);\r\n\r\n const firstComite = allComite[0].sexo;\r\n let sexOrderComite = Consts.comiteNacionalMOrder;\r\n if (firstComite !== 'M') {\r\n sexOrderComite = Consts.comiteNacionalFOrder;\r\n }\r\n\r\n // Se establece el sexo para el resto de la lista\r\n const finalListComite = Lodash.map(\r\n allComite,\r\n (d, index) => {\r\n const newData = {\r\n id: d.id,\r\n lugar: d.lugar,\r\n numPuesto: d.numPuesto,\r\n fieldName: d.fieldName,\r\n cedula: d.cedula,\r\n nombre: d.nombre,\r\n sexo: isSexOrderRequired\r\n ? sexOrderComite[index].sexo\r\n : sexFieldAs,\r\n edad: d.edad,\r\n enabled: d.cedula !== '',\r\n filled: d.filled,\r\n };\r\n\r\n return newData;\r\n },\r\n );\r\n\r\n return {\r\n papeletaData: data,\r\n numCandidatos,\r\n candidatos: {\r\n listComite: finalListComite,\r\n },\r\n initValues,\r\n onlyJuventud,\r\n sexFieldAs,\r\n isSexOrderRequired,\r\n };\r\n};\r\n\r\nexport const getPapeletaInfo = async params => {\r\n try {\r\n const { cedGestor, codPapeleta } = params;\r\n\r\n const url = [\r\n `/papeletaNacional/getByCodPapeleta/${cedGestor}/${codPapeleta}`,\r\n ];\r\n\r\n const { data } = await axios.get(url.join('&'));\r\n\r\n const papeletaData = getAllDataPapeleta(\r\n data.response[0],\r\n codPapeleta,\r\n );\r\n\r\n return papeletaData;\r\n } catch (e) {\r\n return { papeletaData: {} };\r\n }\r\n};\r\n\r\nexport const usePapeletaInfo = (cedGestor, codPapeleta) => {\r\n return useQuery(\r\n ['papeletaData', cedGestor, codPapeleta],\r\n () => getPapeletaInfo(cedGestor, codPapeleta),\r\n );\r\n};\r\n","/* eslint-disable radix */\r\n/* eslint-disable camelcase */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport Lodash from 'lodash';\r\nimport { useJwt } from 'react-jwt';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Grid, Button, Divider } from '@material-ui/core';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\nimport Container from '@material-ui/core/Container';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport SendIcon from '@material-ui/icons/Send';\r\nimport Chip from '@material-ui/core/Chip';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\n\r\nimport { Formik, Field } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport style from './styles';\r\n\r\nimport { PlnDropdown } from '../../Components/Input';\r\nimport Copyright from '../Copyright/Copyright';\r\nimport ListSearch from '../../Components/ListSearch/ListSearch';\r\nimport { useMovimientos } from '../../Core/Api/locationApi';\r\nimport { getEstadoPapeleta } from '../../Core/Utils/Utils';\r\nimport { generateComprobanteNacional } from '../../Core/Utils/Comprobante';\r\nimport { startPrevencion } from '../../Core/Utils/Prevencion';\r\n\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Storage from '../../Storage/Storage';\r\n\r\nimport {\r\n addNew,\r\n updatePapeleta,\r\n // getNumPapeletasNacionales,\r\n // getNumPapeletaStatus,\r\n // blockNumPapeleta,\r\n} from '../../Core/Api/papeletaNacional';\r\n\r\nimport { useCRUDAvailable } from '../../Core/Api/periodoApi';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nconst AddNacionales = props => {\r\n // Se valida si esta habilitado CRUD\r\n const isCRUDAvailable = useCRUDAvailable();\r\n const crudAvailable = Lodash.get(\r\n isCRUDAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n const { classes } = props;\r\n const history = useHistory();\r\n const listMovimientos = useMovimientos();\r\n\r\n const [user, setUser] = useState([]);\r\n const [statusPapeleta] = useState(3);\r\n const [dateField, setDateField] = useState('');\r\n const [consecutivo, setConsecutivo] = useState('');\r\n const [codPapeleta, setCodPapeleta] = useState(null);\r\n const [fecPapeleta, setFecPapeleta] = useState('');\r\n const [isSaving, setIsSaving] = useState(false);\r\n const [showfilters, setShowfilters] = useState(true);\r\n const [showNumPapeleta] = useState(false);\r\n const [sexFieldAs, setSexFieldAs] = useState('');\r\n const [\r\n isSexOrderRequired,\r\n setIsSexOrderRequired,\r\n ] = useState(true);\r\n const [onlyJuventud, setOnlyJuventud] = useState(false);\r\n\r\n const tokenData = Storage.instance;\r\n const { decodedToken } = useJwt(tokenData.getToken());\r\n\r\n const [msjDialog, setMsjDialog] = useState('');\r\n const [open, setOpenDialog] = React.useState(false);\r\n const [finalDialog, setFinalDialog] = React.useState(\r\n false,\r\n );\r\n const handleClose = () => {\r\n setOpenDialog(false);\r\n setIsSaving(false);\r\n };\r\n\r\n const closeFinalDialog = () => {\r\n history.push('/nacionales');\r\n };\r\n\r\n // Date Options\r\n const options = {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n // timeZone: 'UTC',\r\n };\r\n\r\n useEffect(() => {\r\n if (decodedToken !== null) {\r\n setUser(decodedToken);\r\n }\r\n\r\n const today = new Date();\r\n setDateField(\r\n today.toLocaleDateString('es-ES', options),\r\n );\r\n }, [decodedToken, options]);\r\n\r\n const [showForm, setShowForm] = useState(false);\r\n\r\n // Opciones Seleccionadas\r\n const [sPuesto, setSPuesto] = useState(9);\r\n const [sMovimiento, setSMovimiento] = useState(9);\r\n const [numCandidatos, setNumCandidatos] = useState(1);\r\n const [\r\n listComiteNacional,\r\n setListComiteNacional,\r\n ] = useState(Consts.initListComiteNacional);\r\n\r\n // Lista de: Provincias, Cantones, Distritos\r\n const [initialValues] = useState({\r\n movimiento: 9,\r\n puesto: 9,\r\n nacional1: '',\r\n nacional2: '',\r\n nacional3: '',\r\n nacional4: '',\r\n });\r\n\r\n const movimientos = Lodash.get(\r\n listMovimientos,\r\n ['data', 'frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n const [puestos] = useState([\r\n { itemLabel: '- SELECCIONE EL PUESTO -', value: 9 },\r\n { itemLabel: 'Presidente', value: 1 },\r\n { itemLabel: 'Vicepresidente', value: 2 },\r\n { itemLabel: 'Secretario(a) General', value: 3 },\r\n ]);\r\n\r\n const selectMovimiento = m => {\r\n if (m !== 9) {\r\n initialValues.movimiento = m;\r\n\r\n if (m === 3 || m === 4) {\r\n setNumCandidatos(3);\r\n }\r\n\r\n if (m === 1 || m === 2) {\r\n setNumCandidatos(1);\r\n }\r\n\r\n if (m === 1) {\r\n setSexFieldAs('F');\r\n setIsSexOrderRequired(false);\r\n }\r\n if (m === 2) {\r\n setOnlyJuventud(true);\r\n }\r\n\r\n setSMovimiento(\r\n Lodash.find(movimientos, {\r\n value: m,\r\n }),\r\n );\r\n }\r\n };\r\n\r\n const setPuesto = p => {\r\n setShowForm(true);\r\n setShowfilters(false);\r\n initialValues.movimiento = sMovimiento.value;\r\n initialValues.puesto = p;\r\n\r\n if (p !== 9) {\r\n setSPuesto(\r\n Lodash.find(puestos, {\r\n value: p,\r\n }),\r\n );\r\n }\r\n };\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n // Se valida que exista al menos 1 en la lista\r\n const verifyIfCanSave = lCandidates => {\r\n const totalRegistersOnList = Object.keys(\r\n lCandidates,\r\n ).map(c => {\r\n const total = Lodash.countBy(lCandidates[c], rec => {\r\n return rec.filled === true;\r\n });\r\n const result = Lodash.get(total, 'true', 0);\r\n return { count: result };\r\n });\r\n\r\n const canSave = Lodash.find(totalRegistersOnList, o => {\r\n return o.count > 0;\r\n });\r\n\r\n let status = true;\r\n if (!canSave) {\r\n status = false;\r\n }\r\n\r\n return status;\r\n };\r\n\r\n const saveForm = (values, { setSubmitting }) => {\r\n const { movimiento, puesto } = values;\r\n\r\n if (numCandidatos === 1) {\r\n if (!listComiteNacional[0].filled) {\r\n setMsjDialog(\r\n 'Debe de completarse TODOS los campos de la papeleta al 100%',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n } else {\r\n // Se valida que TODOS los campos esten completos al 100%\r\n const totalComite = Lodash.countBy(\r\n listComiteNacional,\r\n rec => {\r\n return rec.filled === false;\r\n },\r\n );\r\n\r\n if (totalComite.true !== undefined) {\r\n setMsjDialog(\r\n 'Debe de completarse TODOS los campos de la papeleta al 100%',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n }\r\n\r\n const nacionalEnca = {\r\n ind_movimiento: movimiento,\r\n cod_estado: 2,\r\n num_puesto: puesto,\r\n num_consecutivo: consecutivo,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n };\r\n\r\n const tFrmsCandidatos = {\r\n comite: listComiteNacional,\r\n };\r\n\r\n if (consecutivo === '') {\r\n // Se Crea Nueva Papeleta\r\n addNew({ nacionalEnca, tFrmsCandidatos }).then(\r\n rNew => {\r\n const nCodPapeleta = Lodash.get(\r\n rNew,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n const nConsecutivo = Lodash.get(\r\n rNew,\r\n ['data', 'consecutivo'],\r\n '',\r\n );\r\n\r\n const fechaPapeleta = Lodash.get(\r\n rNew,\r\n ['data', 'fecha'],\r\n '',\r\n );\r\n const nMontos = Lodash.get(\r\n rNew,\r\n ['data', 'montos'],\r\n '',\r\n );\r\n\r\n // COMPROBANTE: Se genera el Comprobante de la papeleta\r\n // Informacion General\r\n const generalInfo = {\r\n movimiento: sMovimiento.itemLabel,\r\n puesto: sPuesto.itemLabel,\r\n fecha: fechaPapeleta,\r\n consecutivo: nConsecutivo,\r\n };\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n let customComite = tFrmsCandidatos.comite;\r\n if (numCandidatos === 1) {\r\n customComite = tFrmsCandidatos.comite.splice(\r\n 0,\r\n 1,\r\n );\r\n }\r\n\r\n // Informacion Comite\r\n const candidatosComite = customComite.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: candidatosComite,\r\n };\r\n const montoInfo = {\r\n papeleta: nMontos.papeleta,\r\n membresia: nMontos.membresia,\r\n total: nMontos.total,\r\n };\r\n\r\n generateComprobanteNacional(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n\r\n // PROCESO DE PREVENCIÓN\r\n let indNewProceso = null;\r\n // Puesto: Presidente\r\n if (sPuesto.value === 1) {\r\n indNewProceso = 6;\r\n }\r\n\r\n // Puesto: Vice-Presidente\r\n if (sPuesto.value === 2) {\r\n indNewProceso = 7;\r\n }\r\n\r\n // Puesto: Secretario\r\n if (sPuesto.value === 3) {\r\n indNewProceso = 8;\r\n }\r\n\r\n startPrevencion(\r\n user,\r\n nCodPapeleta,\r\n nConsecutivo,\r\n indNewProceso,\r\n 'Papeleta de Nacionales',\r\n fechaPapeleta,\r\n gestorInfo,\r\n );\r\n setSubmitting(false);\r\n setConsecutivo(nConsecutivo);\r\n setCodPapeleta(nCodPapeleta);\r\n setMsjDialog(\r\n 'La información de la papeleta se GUARDÓ correctamente.',\r\n );\r\n setFinalDialog(true);\r\n },\r\n );\r\n } else {\r\n // Se Actualiza la Papeleta\r\n updatePapeleta({\r\n codPapeleta,\r\n nacionalEnca,\r\n tFrmsCandidatos,\r\n }).then(rUpdate => {\r\n const nCodPapeleta = Lodash.get(\r\n rUpdate,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n\r\n const nMontos = Lodash.get(\r\n rUpdate,\r\n ['data', 'montos'],\r\n '',\r\n );\r\n\r\n if (nCodPapeleta !== '') {\r\n // COMPROBANTE: Se genera el Comprobante de la papeleta\r\n // Informacion General\r\n const generalInfo = {\r\n movimiento: sMovimiento.itemLabel,\r\n puesto: sPuesto.itemLabel,\r\n fecha: fecPapeleta,\r\n consecutivo,\r\n };\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n let customComite = tFrmsCandidatos.comite;\r\n if (numCandidatos === 1) {\r\n customComite = tFrmsCandidatos.comite.splice(\r\n 0,\r\n 1,\r\n );\r\n }\r\n\r\n // Informacion Comite\r\n const candidatosComite = customComite.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: candidatosComite,\r\n };\r\n const montoInfo = {\r\n papeleta: nMontos.papeleta,\r\n membresia: nMontos.membresia,\r\n total: nMontos.total,\r\n };\r\n\r\n generateComprobanteNacional(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n\r\n // PROCESO DE PREVENCIÓN\r\n let indNewProceso = null;\r\n // Puesto: Presidente\r\n if (sPuesto.value === 1) {\r\n indNewProceso = 6;\r\n }\r\n\r\n // Puesto: Vice-Presidente\r\n if (sPuesto.value === 2) {\r\n indNewProceso = 7;\r\n }\r\n\r\n // Puesto: Secretario\r\n if (sPuesto.value === 3) {\r\n indNewProceso = 8;\r\n }\r\n\r\n startPrevencion(\r\n user,\r\n nCodPapeleta,\r\n consecutivo,\r\n indNewProceso,\r\n 'Papeleta de Nacionales',\r\n fecPapeleta,\r\n gestorInfo,\r\n );\r\n setSubmitting(false);\r\n setMsjDialog(\r\n 'La Información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setFinalDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setSubmitting(false);\r\n setOpenDialog(true);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const savePapeleta = values => () => {\r\n setIsSaving(true);\r\n const { movimiento, puesto } = values;\r\n\r\n const tFrmsCandidatos = {\r\n comite: listComiteNacional,\r\n };\r\n // Se valida que exista al menos 1 candidato en la papeleta\r\n const canSave = verifyIfCanSave(tFrmsCandidatos);\r\n if (canSave) {\r\n const nacionalEnca = {\r\n ind_movimiento: movimiento,\r\n cod_estado: 3,\r\n num_puesto: puesto,\r\n num_consecutivo: consecutivo,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n };\r\n\r\n if (consecutivo === '') {\r\n addNew({ nacionalEnca, tFrmsCandidatos }).then(\r\n result => {\r\n const nCodPapeleta = Lodash.get(\r\n result,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n const nConsecutivo = Lodash.get(\r\n result,\r\n ['data', 'consecutivo'],\r\n '',\r\n );\r\n const fechaPapeleta = Lodash.get(\r\n result,\r\n ['data', 'fecha'],\r\n '',\r\n );\r\n setConsecutivo(nConsecutivo);\r\n setCodPapeleta(nCodPapeleta);\r\n setFecPapeleta(fechaPapeleta);\r\n setMsjDialog(\r\n 'La información de la papeleta se GUARDÓ correctamente.',\r\n );\r\n setOpenDialog(true);\r\n },\r\n );\r\n } else {\r\n updatePapeleta({\r\n codPapeleta,\r\n nacionalEnca,\r\n tFrmsCandidatos,\r\n }).then(result => {\r\n const nCodPapeleta = Lodash.get(\r\n result,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n if (nCodPapeleta !== '') {\r\n setMsjDialog(\r\n 'La Información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setOpenDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setOpenDialog(true);\r\n }\r\n });\r\n }\r\n } else {\r\n setMsjDialog(\r\n 'Al menos debe de haber ingresado un candidato en la papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n }\r\n };\r\n\r\n AddNacionales.propTypes = {};\r\n\r\n return (\r\n <>\r\n {crudAvailable ? (\r\n \r\n \r\n \r\n \r\n \r\n Nueva Papeleta Nacionales\r\n {\r\n history.push('/nacionales');\r\n }}\r\n >\r\n Regresar\r\n \r\n \r\n \r\n {formik => (\r\n <>\r\n
\r\n \r\n \r\n

Movimiento

\r\n \r\n selectMovimiento(mov)\r\n }\r\n />\r\n
\r\n \r\n

Puesto

\r\n \r\n setPuesto(puesto)\r\n }\r\n />\r\n
\r\n \r\n \r\n \r\n

\r\n Números de papeleta\r\n disponibles:\r\n

\r\n {}}\r\n />\r\n
\r\n \r\n \r\n\r\n {showForm ? (\r\n
\r\n \r\n Datos del Gestor\r\n \r\n \r\n \r\n \r\n Estado\r\n \r\n \r\n {getEstadoPapeleta(\r\n statusPapeleta,\r\n ) === 'Inscrita'\r\n ? 'Confección'\r\n : getEstadoPapeleta(\r\n statusPapeleta,\r\n )}\r\n
\r\n \r\n \r\n \r\n Fecha\r\n \r\n \r\n {dateField}\r\n \r\n \r\n \r\n \r\n Consecutivo\r\n \r\n \r\n {consecutivo}\r\n \r\n \r\n \r\n \r\n Cédula\r\n \r\n \r\n {user.num_cedula}\r\n \r\n \r\n \r\n \r\n Nombre\r\n \r\n \r\n {user.des_nombre}\r\n \r\n \r\n \r\n \r\n Movimiento\r\n \r\n \r\n {sMovimiento.itemLabel}\r\n \r\n \r\n \r\n \r\n Puesto\r\n \r\n \r\n {sPuesto.itemLabel}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n

\r\n NOTA: * La persona que\r\n indique el icono con una\r\n  \r\n \r\n  pertenece al grupo\r\n de juventud\r\n

\r\n
\r\n \r\n \r\n {formik.isSubmitting ? (\r\n \r\n ) : (\r\n <>\r\n Enviar\r\n \r\n \r\n )}\r\n \r\n \r\n {isSaving ? (\r\n \r\n ) : (\r\n <>\r\n Guardar\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Entendido\r\n \r\n \r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Cerrar\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n

\r\n Esta sección se encuentra temporalmente\r\n deshabilitada.
\r\n Favor comunicarse con Ezequiel Hernández al\r\n 2519-5521 o al correo\r\n ehernandez@plndigital.com\r\n

\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default withStyles(style)(AddNacionales);\r\n","/* eslint-disable camelcase */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport Lodash from 'lodash';\r\nimport Container from '@material-ui/core/Container';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Grid, Button, Divider } from '@material-ui/core';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport Box from '@material-ui/core/Box';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport SendIcon from '@material-ui/icons/Send';\r\nimport Chip from '@material-ui/core/Chip';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\n\r\nimport { Formik } from 'formik';\r\nimport { useJwt } from 'react-jwt';\r\nimport * as Yup from 'yup';\r\nimport Loading from '../../Components/Loading/Loading';\r\nimport Copyright from '../Copyright/Copyright';\r\nimport ListSearch from '../../Components/ListSearch/ListSearch';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport style from './styles';\r\nimport { getEstadoPapeleta } from '../../Core/Utils/Utils';\r\nimport { generateComprobanteNacional } from '../../Core/Utils/Comprobante';\r\nimport Storage from '../../Storage/Storage';\r\n\r\nimport {\r\n updatePapeleta,\r\n usePapeletaInfo,\r\n} from '../../Core/Api/papeletaNacional';\r\n\r\nimport { useCRUDAvailable } from '../../Core/Api/periodoApi';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nconst EditNacionales = props => {\r\n // Se valida si esta habilitado CRUD\r\n const isCRUDAvailable = useCRUDAvailable();\r\n const crudAvailable = Lodash.get(\r\n isCRUDAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n const { classes } = props;\r\n const { id } = useParams();\r\n const history = useHistory();\r\n\r\n const [user, setUser] = useState([]);\r\n const [isSaving, setIsSaving] = useState(false);\r\n\r\n const [listComite, setListComite] = useState(\r\n Consts.initListComiteNacional,\r\n );\r\n\r\n const [msjDialog, setMsjDialog] = useState('');\r\n const [open, setOpenDialog] = React.useState(false);\r\n const [finalDialog, setFinalDialog] = React.useState(\r\n false,\r\n );\r\n const handleClose = () => {\r\n setOpenDialog(false);\r\n setIsSaving(false);\r\n };\r\n const closeFinalDialog = () => {\r\n history.push('/nacionales');\r\n };\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const tokenData = Storage.instance;\r\n const { decodedToken } = useJwt(tokenData.getToken());\r\n\r\n const numCedula = Lodash.get(\r\n decodedToken,\r\n ['num_cedula'],\r\n 0,\r\n );\r\n\r\n const { data } = usePapeletaInfo({\r\n cedGestor: numCedula,\r\n codPapeleta: id,\r\n });\r\n\r\n // Datos Generales de la papeleta\r\n const papeletaData = Lodash.get(\r\n data,\r\n ['papeletaData'],\r\n [],\r\n );\r\n\r\n // Cantidad de Candidatos\r\n const numCandidatos = Lodash.get(\r\n data,\r\n ['numCandidatos'],\r\n [],\r\n );\r\n\r\n // Lista de Candidatos incritos\r\n const candidatos = Lodash.get(data, ['candidatos'], []);\r\n\r\n useEffect(() => {\r\n if (decodedToken) {\r\n setUser(decodedToken);\r\n }\r\n }, [decodedToken]);\r\n\r\n if (!Lodash.isEmpty(papeletaData)) {\r\n const {\r\n cod_estado,\r\n num_puesto,\r\n ind_movimiento,\r\n fec_registro,\r\n num_consecutivo,\r\n } = papeletaData;\r\n\r\n const isSexOrderRequired = Lodash.get(\r\n data,\r\n ['isSexOrderRequired'],\r\n [],\r\n );\r\n const sexFieldAs = Lodash.get(data, ['sexFieldAs'], []);\r\n const onlyJuventud = Lodash.get(\r\n data,\r\n ['onlyJuventud'],\r\n [],\r\n );\r\n\r\n const filterMovimiento = Consts.movimientosCantonales.filter(\r\n status => {\r\n return status.codigo === ind_movimiento;\r\n },\r\n );\r\n\r\n const filterPuesto = Consts.puestosNacionales.filter(\r\n status => {\r\n return status.codigo === num_puesto;\r\n },\r\n );\r\n\r\n const desMovimiento = filterMovimiento[0].movimiento.toUpperCase();\r\n const desPuesto = filterPuesto[0].descripcion.toUpperCase();\r\n\r\n // Date Options\r\n const options = {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n };\r\n\r\n const today = new Date(fec_registro);\r\n const papeletaDate = today.toLocaleDateString(\r\n 'es-ES',\r\n options,\r\n );\r\n\r\n const initialValues = Lodash.get(\r\n data,\r\n ['initValues'],\r\n [],\r\n );\r\n\r\n // Se valida que exista al menos 1 en la lista\r\n const verifyIfCanSave = lCandidates => {\r\n const totalRegistersOnList = Object.keys(\r\n lCandidates,\r\n ).map(c => {\r\n const total = Lodash.countBy(\r\n lCandidates[c],\r\n rec => {\r\n return rec.filled === true;\r\n },\r\n );\r\n const result = Lodash.get(total, 'true', 0);\r\n return { count: result };\r\n });\r\n\r\n const canSave = Lodash.find(\r\n totalRegistersOnList,\r\n o => {\r\n return o.count > 0;\r\n },\r\n );\r\n\r\n let status = true;\r\n if (!canSave) {\r\n status = false;\r\n }\r\n\r\n return status;\r\n };\r\n\r\n const saveForm = (values, { setSubmitting }) => {\r\n const { puesto, movimiento } = values;\r\n\r\n if (numCandidatos === 1) {\r\n if (!listComite[0].filled) {\r\n setMsjDialog(\r\n 'Debe de completarse TODOS los campos de la papeleta al 100%',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n } else {\r\n // Se valida que TODOS los campos esten completos al 100%\r\n const totalComite = Lodash.countBy(\r\n listComite,\r\n rec => {\r\n return rec.filled === false;\r\n },\r\n );\r\n\r\n if (totalComite.true !== undefined) {\r\n setMsjDialog(\r\n 'Debe de completarse TODOS los campos de la papeleta al 100%',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n }\r\n\r\n // Encabezado Papeleta\r\n const nacionalEnca = {\r\n ind_movimiento: movimiento,\r\n cod_estado: 2,\r\n num_puesto: puesto,\r\n num_consecutivo,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n };\r\n\r\n // Detalle Papeleta\r\n const tFrmsCandidatos = {\r\n comite: listComite,\r\n };\r\n\r\n // console.log(id);\r\n\r\n // Se Actualiza la Papeleta\r\n updatePapeleta({\r\n codPapeleta: id,\r\n nacionalEnca,\r\n tFrmsCandidatos,\r\n }).then(rUpdate => {\r\n const nCodPapeleta = Lodash.get(\r\n rUpdate,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n\r\n const nMontos = Lodash.get(\r\n rUpdate,\r\n ['data', 'montos'],\r\n '',\r\n );\r\n\r\n if (nCodPapeleta !== '') {\r\n // COMPROBANTE: Se genera el Comprobante de la papeleta\r\n // Informacion General\r\n const generalInfo = {\r\n movimiento: desMovimiento,\r\n puesto: desPuesto,\r\n fecha: papeletaDate,\r\n consecutivo: num_consecutivo,\r\n };\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Comite\r\n const candidatosComite = tFrmsCandidatos.comite.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n comite: candidatosComite,\r\n };\r\n const montoInfo = {\r\n papeleta: nMontos.papeleta,\r\n membresia: nMontos.membresia,\r\n total: nMontos.total,\r\n };\r\n\r\n generateComprobanteNacional(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n\r\n setSubmitting(false);\r\n setMsjDialog(\r\n 'La Información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setFinalDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setSubmitting(false);\r\n setOpenDialog(true);\r\n }\r\n });\r\n };\r\n\r\n const savePapeleta = values => () => {\r\n setIsSaving(true);\r\n const { movimiento, puesto } = values;\r\n\r\n const tFrmsCandidatos = {\r\n comite: listComite,\r\n };\r\n\r\n const canSave = verifyIfCanSave(tFrmsCandidatos);\r\n\r\n if (canSave) {\r\n const nacionalEnca = {\r\n ind_movimiento: movimiento,\r\n cod_estado: 3,\r\n num_puesto: puesto,\r\n num_consecutivo,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n };\r\n\r\n updatePapeleta({\r\n codPapeleta: id,\r\n nacionalEnca,\r\n tFrmsCandidatos,\r\n }).then(result => {\r\n const nCodPapeleta = Lodash.get(\r\n result,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n if (nCodPapeleta !== '') {\r\n setMsjDialog(\r\n 'La Información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setOpenDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n }\r\n });\r\n } else {\r\n setMsjDialog(\r\n 'Al menos debe de haber ingresado un candidato en la papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {crudAvailable ? (\r\n \r\n \r\n \r\n \r\n \r\n {`Editar Papeleta Nacional: ${id}`}\r\n {\r\n history.push('/nacionales');\r\n }}\r\n >\r\n Regresar\r\n \r\n \r\n \r\n {formik => (\r\n
\r\n \r\n
\r\n \r\n Datos del Gestor\r\n \r\n \r\n \r\n \r\n Estado\r\n \r\n \r\n {getEstadoPapeleta(\r\n cod_estado,\r\n ) === 'Inscrita'\r\n ? 'Confección'\r\n : getEstadoPapeleta(\r\n cod_estado,\r\n )}\r\n
\r\n \r\n \r\n \r\n Fecha\r\n \r\n \r\n {papeletaDate}\r\n \r\n \r\n \r\n \r\n Consecutivo\r\n \r\n \r\n {num_consecutivo}\r\n \r\n \r\n \r\n \r\n Cédula\r\n \r\n \r\n {user.num_cedula}\r\n \r\n \r\n \r\n \r\n Nombre\r\n \r\n \r\n {user.des_nombre}\r\n \r\n \r\n \r\n \r\n Movimiento\r\n \r\n \r\n {desMovimiento}\r\n \r\n \r\n \r\n \r\n Puesto\r\n \r\n \r\n {desPuesto}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n

\r\n NOTA: * La persona que\r\n indique el icono con una\r\n  \r\n \r\n  pertenece al grupo de\r\n juventud\r\n

\r\n
\r\n \r\n \r\n {formik.isSubmitting ? (\r\n \r\n ) : (\r\n <>\r\n Enviar\r\n \r\n \r\n )}\r\n \r\n\r\n \r\n {isSaving ? (\r\n \r\n ) : (\r\n <>\r\n Actualizar{' '}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Entendido\r\n \r\n \r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Cerrar\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n

\r\n Esta sección se encuentra temporalmente\r\n deshabilitada.
\r\n Favor comunicarse con Ezequiel Hernández\r\n al 2519-5521 o al correo\r\n ehernandez@plndigital.com\r\n

\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n // eslint-disable-next-line no-else-return\r\n } else {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n};\r\n\r\nexport default withStyles(style)(EditNacionales);\r\n","/* eslint-disable camelcase */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport Lodash from 'lodash';\r\nimport Container from '@material-ui/core/Container';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Grid, Button, Divider } from '@material-ui/core';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport Box from '@material-ui/core/Box';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport SendIcon from '@material-ui/icons/Send';\r\nimport Chip from '@material-ui/core/Chip';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\n\r\nimport { Formik, Field } from 'formik';\r\nimport { useJwt } from 'react-jwt';\r\nimport * as Yup from 'yup';\r\nimport Loading from '../../Components/Loading/Loading';\r\nimport { PlnDropdown } from '../../Components/Input';\r\nimport Copyright from '../Copyright/Copyright';\r\nimport ListSearch from '../../Components/ListSearch/ListSearch';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport style from './styles';\r\nimport { getEstadoPapeleta } from '../../Core/Utils/Utils';\r\nimport { generateComprobante } from '../../Core/Utils/Comprobante';\r\nimport { startPrevencion } from '../../Core/Utils/Prevencion';\r\nimport Storage from '../../Storage/Storage';\r\n\r\nimport { useCRUDAvailable } from '../../Core/Api/periodoApi';\r\n\r\nimport {\r\n usePapeletaInfo,\r\n updatePapeleta,\r\n getNumPapeletasDistritales,\r\n getNumPapeletaStatus,\r\n blockNumPapeleta,\r\n} from '../../Core/Api/papeletaDistrital';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nconst EditDistritales = props => {\r\n // Se valida si esta habilitado CRUD\r\n const isCRUDAvailable = useCRUDAvailable();\r\n const crudAvailable = Lodash.get(\r\n isCRUDAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n const { classes } = props;\r\n const { id } = useParams();\r\n const history = useHistory();\r\n\r\n const [user, setUser] = useState([]);\r\n const [isSaving, setIsSaving] = useState(false);\r\n\r\n const [listDelegados, setListDelegados] = useState(\r\n Consts.initListDelegados,\r\n );\r\n\r\n const [listComite, setListComite] = useState(\r\n Consts.initListComite,\r\n );\r\n\r\n const [listFiscales, setListFiscales] = useState(\r\n Consts.initListCandidatosFiscalia,\r\n );\r\n\r\n const [msjDialog, setMsjDialog] = useState('');\r\n const [open, setOpenDialog] = React.useState(false);\r\n const [finalDialog, setFinalDialog] = React.useState(\r\n false,\r\n );\r\n const handleClose = () => {\r\n setOpenDialog(false);\r\n setIsSaving(false);\r\n };\r\n\r\n const closeFinalDialog = () => {\r\n history.push('/distritales');\r\n };\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const tokenData = Storage.instance;\r\n const { decodedToken } = useJwt(tokenData.getToken());\r\n\r\n const numCedula = Lodash.get(\r\n decodedToken,\r\n ['num_cedula'],\r\n 0,\r\n );\r\n\r\n const { data } = usePapeletaInfo({\r\n cedGestor: numCedula,\r\n codPapeleta: id,\r\n });\r\n\r\n // Datos Generales de la papeleta\r\n const papeletaData = Lodash.get(\r\n data,\r\n ['papeletaData'],\r\n [],\r\n );\r\n\r\n // Cantidad de Delegados\r\n const numDelegados = Lodash.get(\r\n data,\r\n ['numDelegados'],\r\n [],\r\n );\r\n\r\n // Lista de Candidatos incritos\r\n const candidatos = Lodash.get(data, ['candidatos'], []);\r\n\r\n useEffect(() => {\r\n if (decodedToken) {\r\n setUser(decodedToken);\r\n }\r\n }, [decodedToken]);\r\n\r\n if (!Lodash.isEmpty(papeletaData)) {\r\n const {\r\n numero,\r\n cod_estado,\r\n provincia,\r\n canton,\r\n distrito,\r\n codcant,\r\n codprov,\r\n coddist,\r\n fec_registro,\r\n num_consecutivo,\r\n } = papeletaData;\r\n\r\n // Date Options\r\n const options = {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n };\r\n\r\n const today = new Date(fec_registro);\r\n const papeletaDate = today.toLocaleDateString(\r\n 'es-ES',\r\n options,\r\n );\r\n\r\n const initialValues = Lodash.get(\r\n data,\r\n ['initValues'],\r\n [],\r\n );\r\n\r\n const setPapeleta = p => {\r\n initialValues.papeleta = p;\r\n };\r\n\r\n const papeletas = Lodash.get(data, ['papeletas'], []);\r\n\r\n // Se valida que exista al menos 1 en la lista\r\n const verifyIfCanSave = lCandidates => {\r\n const totalRegistersOnList = Object.keys(\r\n lCandidates,\r\n ).map(c => {\r\n const total = Lodash.countBy(\r\n lCandidates[c],\r\n rec => {\r\n return rec.filled === true;\r\n },\r\n );\r\n const result = Lodash.get(total, 'true', 0);\r\n return { count: result };\r\n });\r\n\r\n const canSave = Lodash.find(\r\n totalRegistersOnList,\r\n o => {\r\n return o.count > 0;\r\n },\r\n );\r\n\r\n let status = true;\r\n if (!canSave) {\r\n status = false;\r\n }\r\n\r\n return status;\r\n };\r\n\r\n const saveForm = (\r\n values,\r\n { setSubmitting, setFieldValue },\r\n ) => {\r\n const { papeleta } = values;\r\n\r\n // Se valida que se haya seleccionado un numero de papeleta\r\n if (papeleta === 999) {\r\n setMsjDialog(\r\n 'Debe seleccionar el número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n setSubmitting(false);\r\n\r\n return;\r\n }\r\n\r\n // Se valida que esté el 50% de los Delegados\r\n const mitadDelegados = Math.floor(numDelegados / 2);\r\n const totalDelegados = Lodash.countBy(\r\n listDelegados,\r\n rec => {\r\n return rec.filled === true;\r\n },\r\n );\r\n\r\n if (\r\n totalDelegados.true === undefined ||\r\n totalDelegados.true < mitadDelegados\r\n ) {\r\n setMsjDialog(\r\n 'Debe completarse el 50% de los delegados en la papeleta',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n // Se valida que TODOS los campos del Comité esten completos\r\n const totalComite = Lodash.countBy(\r\n listComite,\r\n rec => {\r\n return rec.filled === false;\r\n },\r\n );\r\n\r\n if (totalComite.true !== undefined) {\r\n setMsjDialog(\r\n 'Debe de completarse TODOS los campos del Comité Ejecutivo Distrital',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n // Se valida que TODOS los campos de la Fiscalía\r\n const totalFiscalia = Lodash.countBy(\r\n listFiscales,\r\n rec => {\r\n return rec.filled === false;\r\n },\r\n );\r\n\r\n if (totalFiscalia.true !== undefined) {\r\n setMsjDialog(\r\n 'Debe de completarse TODOS los candidatos para la Fiscalía',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n // Segun el estado de la papeleta, se Crea o Actualiza\r\n getNumPapeletaStatus({\r\n papeleta,\r\n provincia: codprov,\r\n canton: codcant,\r\n distrito: coddist,\r\n }).then(result => {\r\n const papeletaStatus = Lodash.get(\r\n result,\r\n ['data'],\r\n 0,\r\n );\r\n\r\n if (papeletaStatus === 1) {\r\n // Encabezado Papeleta\r\n const distritalEnca = {\r\n codprov,\r\n codcant,\r\n // eslint-disable-next-line radix\r\n coddist: parseInt(coddist),\r\n cod_estado: 2,\r\n numero: papeleta,\r\n num_consecutivo,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n };\r\n\r\n // Detalle Papeleta\r\n const tFrmsCandidatos = {\r\n delegados: listDelegados,\r\n comite: listComite,\r\n fiscales: listFiscales,\r\n };\r\n\r\n // Se valida el 20% de la Cuota de Juventud en los DELEGADOS\r\n const porcentajeDelegados = Math.floor(\r\n tFrmsCandidatos.delegados.length * 0.2,\r\n );\r\n\r\n const totalCuotaJuventudD = Lodash.countBy(\r\n tFrmsCandidatos.delegados,\r\n rec => {\r\n return (\r\n Number.isInteger(rec.edad) && rec.edad <= 35\r\n );\r\n },\r\n );\r\n\r\n if (\r\n totalCuotaJuventudD.true === undefined ||\r\n totalCuotaJuventudD.true < porcentajeDelegados\r\n ) {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'La papeleta NO cumple con el 20% de la cuota de Juventud en La lista de Delegados. Favor revise los miembros de su papeleta',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n // Se valida el 20% de la Cuota de Juventud en el COMITE\r\n const porcentajeComite = Math.floor(\r\n tFrmsCandidatos.comite.length * 0.2,\r\n );\r\n\r\n const totalCuotaJuventudC = Lodash.countBy(\r\n tFrmsCandidatos.comite,\r\n rec => {\r\n return (\r\n Number.isInteger(rec.edad) && rec.edad <= 35\r\n );\r\n },\r\n );\r\n\r\n if (\r\n totalCuotaJuventudC.true === undefined ||\r\n totalCuotaJuventudC.true < porcentajeComite\r\n ) {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'La papeleta NO cumple con el 20% de la cuota de Juventud en los Miembros del Comité. Favor revise los miembros de su papeleta',\r\n );\r\n setOpenDialog(true);\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n // Se Actualiza la Papeleta\r\n updatePapeleta({\r\n codPapeleta: id,\r\n distritalEnca,\r\n tFrmsCandidatos,\r\n }).then(rUpdate => {\r\n const nCodPapeleta = Lodash.get(\r\n rUpdate,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n\r\n const nMontos = Lodash.get(\r\n rUpdate,\r\n ['data', 'montos'],\r\n '',\r\n );\r\n\r\n if (nCodPapeleta !== '') {\r\n // Se bloquea el numero de papeleta\r\n blockNumPapeleta({\r\n numPapeleta: papeleta,\r\n codProvincia: codprov,\r\n codCanton: codcant,\r\n codDistrito: coddist,\r\n });\r\n\r\n // COMPROBANTE: Se genera el Comprobante de la papeleta\r\n\r\n // Informacion General\r\n const generalInfo = {\r\n provincia,\r\n canton,\r\n distrito,\r\n papeleta,\r\n fecha: papeletaDate,\r\n consecutivo: num_consecutivo,\r\n };\r\n\r\n // Informacion Gestor\r\n const gestorInfo = {\r\n cedula: user.num_cedula,\r\n nombre: user.des_nombre,\r\n };\r\n\r\n // Informacion Delegados\r\n const candidatosDelegados = tFrmsCandidatos.delegados.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n const listCanDelegados = [];\r\n for (let cD = 0; cD < numDelegados; cD++) {\r\n listCanDelegados.push(\r\n candidatosDelegados[cD],\r\n );\r\n }\r\n\r\n // Informacion Comite\r\n const candidatosComite = tFrmsCandidatos.comite.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n // Informacion Fiscales\r\n const candidatosFiscales = tFrmsCandidatos.fiscales.map(\r\n ({ cedula, lugar, nombre }) => {\r\n return [lugar, cedula, nombre];\r\n },\r\n );\r\n\r\n // Informacion Candidatos\r\n const candidatosInfo = {\r\n delegados: listCanDelegados,\r\n comite: candidatosComite,\r\n fiscales: candidatosFiscales,\r\n };\r\n const montoInfo = {\r\n papeleta: nMontos.papeleta,\r\n membresia: nMontos.membresia,\r\n total: nMontos.total,\r\n };\r\n generateComprobante(\r\n 'ASAMBLEAS DISTRITALES',\r\n generalInfo,\r\n candidatosInfo,\r\n gestorInfo,\r\n montoInfo,\r\n );\r\n\r\n // PROCESO DE PREVENCIÓN\r\n startPrevencion(\r\n user,\r\n nCodPapeleta,\r\n num_consecutivo,\r\n 1,\r\n 'Papeleta de Distritales',\r\n papeletaDate,\r\n gestorInfo,\r\n );\r\n\r\n setSubmitting(false);\r\n setMsjDialog(\r\n 'La Información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setFinalDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setSubmitting(false);\r\n setOpenDialog(true);\r\n }\r\n });\r\n } else {\r\n setMsjDialog(\r\n // eslint-disable-next-line max-len\r\n 'ATENCIÓN: El número de papeleta seleccionado YA fue elegido. Debe de seleccionar otro número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n setSubmitting(false);\r\n setFieldValue('papeleta', 999);\r\n getNumPapeletasDistritales(\r\n codprov,\r\n codcant,\r\n coddist,\r\n ).then(r => {\r\n if (r.status === 200) {\r\n const papeletasList = Lodash.get(r, ['data']);\r\n const plist = papeletasList.map(p => {\r\n return {\r\n itemLabel: p.papeleta,\r\n value: p.papeleta,\r\n };\r\n });\r\n plist.unshift({\r\n itemLabel: '- NUMERO DE PAPELETA -',\r\n value: 999,\r\n });\r\n\r\n // setPapeletas(plist);\r\n }\r\n });\r\n }\r\n });\r\n };\r\n\r\n const savePapeleta = values => () => {\r\n setIsSaving(true);\r\n const { papeleta } = values;\r\n\r\n // Se valida que se haya seleccionado un numero de papeleta\r\n if (papeleta === 999) {\r\n setMsjDialog(\r\n 'Debe seleccionar el número de papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n return;\r\n }\r\n\r\n const tFrmsCandidatos = {\r\n delegados: listDelegados,\r\n comite: listComite,\r\n fiscales: listFiscales,\r\n };\r\n\r\n // console.log(tFrmsCandidatos);\r\n\r\n // Se valida que exista al menos 1 candidato en la papeleta\r\n const canSave = verifyIfCanSave(tFrmsCandidatos);\r\n\r\n if (canSave) {\r\n const distritalEnca = {\r\n codprov,\r\n codcant,\r\n // eslint-disable-next-line radix\r\n coddist: parseInt(coddist),\r\n cod_estado: 3,\r\n numero: papeleta,\r\n num_consecutivo,\r\n cedula_resp: user.num_cedula,\r\n usuario: user.des_login,\r\n };\r\n\r\n updatePapeleta({\r\n codPapeleta: id,\r\n distritalEnca,\r\n tFrmsCandidatos,\r\n }).then(result => {\r\n const nCodPapeleta = Lodash.get(\r\n result,\r\n ['data', 'codPapeleta'],\r\n '',\r\n );\r\n if (nCodPapeleta !== '') {\r\n setMsjDialog(\r\n 'La Información de la papeleta se ACTUALIZÓ correctamente.',\r\n );\r\n setOpenDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'La información NO pudo ser actualizada',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n }\r\n });\r\n } else {\r\n setMsjDialog(\r\n 'Al menos debe de haber ingresado un candidato en la papeleta',\r\n );\r\n setOpenDialog(true);\r\n setIsSaving(false);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {crudAvailable ? (\r\n \r\n \r\n \r\n \r\n \r\n {`Editar Papeleta Distrital: ${id}`}\r\n {\r\n history.push('/distritales');\r\n }}\r\n >\r\n Regresar\r\n \r\n \r\n \r\n {formik => (\r\n
\r\n \r\n \r\n \r\n Números de papeleta\r\n disponibles:\r\n \r\n {cod_estado === 3 ? (\r\n \r\n setPapeleta(papeleta)\r\n }\r\n />\r\n ) : (\r\n \r\n {numero}\r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n \r\n Datos del Gestor\r\n \r\n \r\n \r\n \r\n Estado\r\n \r\n \r\n {getEstadoPapeleta(\r\n cod_estado,\r\n ) === 'Inscrita'\r\n ? 'Confección'\r\n : getEstadoPapeleta(\r\n cod_estado,\r\n )}\r\n
\r\n \r\n \r\n \r\n Fecha\r\n \r\n \r\n {papeletaDate}\r\n \r\n \r\n \r\n \r\n Consecutivo\r\n \r\n \r\n {num_consecutivo}\r\n \r\n \r\n \r\n \r\n Cédula\r\n \r\n \r\n {user.num_cedula}\r\n \r\n \r\n \r\n \r\n Nombre\r\n \r\n \r\n {user.des_nombre}\r\n \r\n \r\n \r\n \r\n Provincia\r\n \r\n \r\n {provincia}\r\n \r\n \r\n \r\n \r\n Cantón\r\n \r\n \r\n {canton}\r\n \r\n \r\n \r\n \r\n Distrito\r\n \r\n \r\n {distrito}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n

\r\n NOTA: * La persona que\r\n indique el icono con una\r\n  \r\n \r\n  pertenece al grupo de\r\n juventud\r\n

\r\n
\r\n \r\n \r\n {formik.isSubmitting ? (\r\n \r\n ) : (\r\n <>\r\n Enviar\r\n \r\n \r\n )}\r\n \r\n\r\n \r\n {isSaving ? (\r\n \r\n ) : (\r\n <>\r\n Actualizar{' '}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Entendido\r\n \r\n \r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Cerrar\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n

\r\n Esta sección se encuentra temporalmente\r\n deshabilitada.
\r\n Favor comunicarse con Ezequiel Hernández\r\n al 2519-5521 o al correo\r\n ehernandez@plndigital.com\r\n

\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n // eslint-disable-next-line no-else-return\r\n } else {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n};\r\n\r\nexport default withStyles(style)(EditDistritales);\r\n","function createData(\r\n provincia,\r\n canton,\r\n distrito,\r\n jrv,\r\n puesto,\r\n cedula,\r\n primerApellido,\r\n segundoApellido,\r\n nombre,\r\n id,\r\n) {\r\n return {\r\n provincia,\r\n canton,\r\n distrito,\r\n jrv,\r\n puesto,\r\n cedula,\r\n primerApellido,\r\n segundoApellido,\r\n nombre,\r\n id,\r\n };\r\n}\r\n\r\nexport const tableHeaders = [\r\n {\r\n name: 'Provincia',\r\n },\r\n {\r\n name: 'Cantón',\r\n },\r\n {\r\n name: 'Distrito Electoral',\r\n },\r\n {\r\n name: 'JRV',\r\n },\r\n {\r\n name: 'Puesto',\r\n },\r\n {\r\n name: 'Cédula',\r\n },\r\n {\r\n name: '1er. Apellido',\r\n },\r\n {\r\n name: '2do. Apellido',\r\n },\r\n {\r\n name: 'Nombre',\r\n },\r\n];\r\n\r\nexport const dataRows = [\r\n createData(\r\n 'HEREDIA',\r\n 'BARVA',\r\n 'SAN PABLO',\r\n '1453',\r\n 'M.SUPLENTE',\r\n '401920238',\r\n 'RAMIREZ',\r\n 'RUIZ',\r\n 'ESTEBAN',\r\n 5334,\r\n ),\r\n createData(\r\n 'HEREDIA',\r\n 'SAN PABLO',\r\n 'SABANILLA',\r\n '1454',\r\n 'M.PROPIETARIO',\r\n '401940767',\r\n 'ZUNIGA',\r\n 'RUIZ',\r\n 'JOSE',\r\n 5326,\r\n ),\r\n];\r\n","import axios from 'axios';\r\n\r\nconst axiosInstance = axios.create({\r\n baseURL: process.env.REACT_APP_API_BASE_URL,\r\n responseType: 'json',\r\n});\r\n\r\nconst getJRVByDistrit = (_ced, _cant, _codDistrital) => {\r\n return axiosInstance.get(\r\n `miembrosMesa/getJuntas/${_ced}/${_cant}/${_codDistrital}`,\r\n );\r\n};\r\n\r\nconst saveMiembroMesa = _info => {\r\n return axiosInstance.post('miembrosMesa/', _info);\r\n};\r\n\r\nconst getMiembroMesaByNumLinea = _linea => {\r\n return axiosInstance.get(`miembrosMesa/find/${_linea}`);\r\n};\r\n\r\nconst getMiembrosMesa = _ced => {\r\n return axiosInstance.get(\r\n `miembrosMesa/allByGestor/${_ced}`,\r\n );\r\n};\r\n\r\nconst getMiembrosMesaFiltered = (\r\n _ced,\r\n _codProvincia,\r\n _codCanton,\r\n _codDistrito,\r\n _nJrv,\r\n) => {\r\n return axiosInstance.get(\r\n // eslint-disable-next-line max-len\r\n `miembrosMesa/allByGestorFiltered/${_ced}/${_codProvincia}/${_codCanton}/${_codDistrito}/${_nJrv}`,\r\n );\r\n};\r\n\r\nconst validateMemberOnAdd = _ced => {\r\n return axiosInstance.get(\r\n `miembrosMesa/validateCedula/${_ced}`,\r\n );\r\n};\r\n\r\nconst validateIfExist = (jrv, puesto, cedula) => {\r\n return axiosInstance.get(\r\n `miembrosMesa/validarExistencia/${jrv}/${puesto}/${cedula}`,\r\n );\r\n};\r\n\r\nconst deleteMember = _numLinea => {\r\n return axiosInstance.get(\r\n `miembrosMesa/removeMember/${_numLinea}`,\r\n );\r\n};\r\n\r\nexport default {\r\n getJuntaReceptora: getJRVByDistrit,\r\n getAllMiembrosMesa: getMiembrosMesa,\r\n getAllMiembrosMesaFiltered: getMiembrosMesaFiltered,\r\n getMiembroInfoByLinea: getMiembroMesaByNumLinea,\r\n submitMiembroMesa: saveMiembroMesa,\r\n validateMemberOnAdd,\r\n validateIfExist,\r\n deleteMember,\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { useJwt } from 'react-jwt';\r\n\r\nimport DeleteSharpIcon from '@material-ui/icons/DeleteSharp';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport { tableHeaders } from './data';\r\nimport MacroList from '../MacroList/MacroList';\r\nimport Filters from '../../Components/Filters/RegistrosElectFilter';\r\nimport PLNDialog from '../../Components/PLNDialog/PLNDialog';\r\n\r\nimport Storage from '../../Storage/Storage';\r\nimport miembrosMesaApi from '../../Core/Api/miembrosMesaApi';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n btnAdd: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n actionContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n}));\r\n\r\nconst MiembrosMesa = () => {\r\n const classes = useStyles();\r\n const history = useHistory();\r\n const tokenStorage = Storage.instance;\r\n // const filteredItems = [];\r\n\r\n const { decodedToken } = useJwt(tokenStorage.getToken());\r\n\r\n const [items, setItems] = useState([]);\r\n const [filteredItems, setFilteredItems] = useState([]); // used for filtering\r\n const [isDataEmpty, setDataEmpty] = useState(true);\r\n const [filters, setFilters] = useState({\r\n provincia: '',\r\n canton: '',\r\n distrito: '',\r\n cedula: '',\r\n primerApellido: '',\r\n segundoApellido: '',\r\n nombre: '',\r\n });\r\n const [open, setOpenDialog] = React.useState(false);\r\n const [dataRemove, setDataRemove] = React.useState(null);\r\n const [isRemoved, setIsRemoved] = useState(false); // used on remove modal\r\n const [removedMsj, setRemoveMsj] = useState(\r\n 'El registro se eliminará permanentemente. ¿Desea proceder?',\r\n );\r\n const [hiddenBtn, setHiddenBtn] = useState(false);\r\n\r\n const getFilterKeys = Object.getOwnPropertyNames(filters);\r\n const TIMING_ON_SEARCH = 900;\r\n\r\n /**\r\n * Filter Items\r\n */\r\n const applyFilters = async () => {\r\n const activeFilters = getFilterKeys.filter(\r\n filter => filters[filter] !== '',\r\n );\r\n\r\n setDataEmpty(true);\r\n\r\n if (activeFilters.length > 0) {\r\n // FITLRO FUNCIONAL CON UN INPUT: nombre (DO NOT REMOVED YET)\r\n /* const result = filteredItems.filter(_item => {\r\n let currentFilter = _item.nombre;\r\n if (typeof currentFilter === 'number')\r\n currentFilter = currentFilter.toString();\r\n\r\n return currentFilter\r\n .toLowerCase()\r\n .includes(filters.nombre.toLowerCase());\r\n });\r\n\r\n setDataEmpty(!result.length > 0);\r\n\r\n if (result.length > 0) setFilteredItems(result); */\r\n\r\n const dataFiltered = activeFilters.map(myFilter => {\r\n const result = items.filter(_item => {\r\n let currentFilter = _item[myFilter];\r\n if (typeof currentFilter === 'number')\r\n currentFilter = currentFilter.toString();\r\n\r\n return currentFilter\r\n .toLowerCase()\r\n .includes(filters[myFilter].toLowerCase());\r\n });\r\n\r\n setDataEmpty(!result.length > 0);\r\n if (result.length > 0) setFilteredItems(result);\r\n // console.log(result);\r\n return result;\r\n });\r\n\r\n // console.log(dataFiltered);\r\n } else {\r\n setFilteredItems(items);\r\n setDataEmpty(false);\r\n }\r\n };\r\n\r\n /**\r\n * Get Members when the page loads\r\n */\r\n const getAllMembers = async () => {\r\n let itemsList = [];\r\n\r\n setDataEmpty(false);\r\n\r\n try {\r\n if (decodedToken) {\r\n const info = await miembrosMesaApi.getAllMiembrosMesa(\r\n decodedToken.num_cedula,\r\n );\r\n\r\n const data = info.data.response;\r\n\r\n if (data instanceof Array && info.status === 200) {\r\n itemsList = data.map(member => {\r\n return {\r\n provincia: member.des_nombre_p,\r\n canton: member.des_nombre_c,\r\n distrito: member.des_nombre_d,\r\n jrv: member.cod_mesa,\r\n puesto: member.des_puesto,\r\n cedula: member.num_cedula,\r\n primerApellido: member.des_apell1,\r\n segundoApellido: member.des_apell2,\r\n nombre: member.des_nombre,\r\n id: member.num_linea,\r\n };\r\n });\r\n }\r\n }\r\n } catch (error) {\r\n console.warn(error);\r\n }\r\n\r\n setDataEmpty(itemsList.length === 0);\r\n setItems(itemsList);\r\n setFilteredItems(itemsList);\r\n };\r\n\r\n /**\r\n * Remove a member selected by user\r\n */\r\n const removeMemberByNum = async () => {\r\n const numLinea = dataRemove.id;\r\n\r\n if (numLinea && numLinea > 0) {\r\n setIsRemoved(true);\r\n\r\n await miembrosMesaApi\r\n .deleteMember(numLinea)\r\n .then(_response => {\r\n const info = _response.data.response;\r\n\r\n if (info === 1 && _response.status === 200) {\r\n setIsRemoved(false);\r\n setHiddenBtn(true);\r\n setRemoveMsj(\r\n 'Miembro de Mesa eliminado correctamente.',\r\n );\r\n setTimeout(() => {\r\n setOpenDialog(false);\r\n window.location.href = '/miembros-mesa/';\r\n }, 3000);\r\n } else {\r\n setHiddenBtn(false);\r\n setRemoveMsj(\r\n 'La operación no se pudo completar. Intente de nuevo.',\r\n );\r\n }\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n async function fetchListAPI() {\r\n await getAllMembers();\r\n }\r\n\r\n fetchListAPI();\r\n }, [decodedToken]);\r\n\r\n useEffect(() => {\r\n async function proceedFilters() {\r\n await applyFilters();\r\n }\r\n\r\n // if (filteredItems.length > 0) proceedFilters();\r\n\r\n const timeoutId = setTimeout(() => {\r\n if (filteredItems.length > 0) proceedFilters();\r\n }, TIMING_ON_SEARCH);\r\n return () => clearTimeout(timeoutId);\r\n }, [filters]);\r\n\r\n /**\r\n * List all filters required on the page list\r\n */\r\n const listFilters = () => {\r\n return [\r\n {\r\n label: 'Provincia:',\r\n action: async ev => {\r\n const updatedValue = {\r\n provincia: ev.currentTarget.value,\r\n };\r\n\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.provincia,\r\n inputId: 'filter-provincia',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: 'Cantón:',\r\n action: async ev => {\r\n const updatedValue = {\r\n canton: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.canton,\r\n inputId: 'filter-canton',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: 'Distrito:',\r\n action: async ev => {\r\n const updatedValue = {\r\n distrito: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.distrito,\r\n inputId: 'filter-distrito',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: '# Cédula:',\r\n action: async ev => {\r\n const updatedValue = {\r\n cedula: ev.currentTarget.value,\r\n };\r\n\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.cedula,\r\n inputId: 'filter-cedula',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: '1er Apellido:',\r\n action: async ev => {\r\n const updatedValue = {\r\n primerApellido: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.primerApellido,\r\n inputId: 'filter-first',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: '2do Apellido:',\r\n action: async ev => {\r\n const updatedValue = {\r\n segundoApellido: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.segundoApellido,\r\n inputId: 'filter-last',\r\n responsiveSize: {\r\n xs: 12,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: 'Nombre:',\r\n action: async ev => {\r\n const updatedValue = {\r\n nombre: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.nombre,\r\n inputId: 'filter-name',\r\n responsiveSize: {\r\n xs: 12,\r\n sm: 3,\r\n },\r\n },\r\n ];\r\n };\r\n\r\n /**\r\n * List all actions that a user can do for each item in the list\r\n */\r\n const setActions = () => {\r\n const actions = [];\r\n\r\n const actionEdit = {\r\n aria: 'Edit Miembro Mesa',\r\n key: 'edit',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n window.location.href = `/miembros-mesa/edit/${_item.id}`;\r\n },\r\n };\r\n\r\n actions.push(actionEdit);\r\n\r\n const actionRemove = {\r\n aria: 'Eliminar Miembro Mesa',\r\n key: 'remove',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n setDataRemove(_item);\r\n setOpenDialog(true);\r\n },\r\n };\r\n\r\n actions.push(actionRemove);\r\n return actions;\r\n };\r\n\r\n return (\r\n \r\n }\r\n dataEmpty={isDataEmpty}\r\n listName=\"Lista de Miembros de Mesa\"\r\n uiStylesClasses={classes}\r\n btnConfig={{\r\n name: '+ Agregar',\r\n event: () => history.push('/miembros-mesa/add'),\r\n }}\r\n actionConfig={setActions}\r\n tableHeads={tableHeaders}\r\n tableBody={filteredItems}\r\n />\r\n {}}\r\n title=\"Eliminar Miembro de Mesa\"\r\n bodymessage={removedMsj}\r\n buttons={\r\n hiddenBtn\r\n ? []\r\n : [\r\n {\r\n actionName: 'cancel',\r\n color: 'simple',\r\n title: 'Cerrar',\r\n clickHander: () => {\r\n setOpenDialog(!open);\r\n },\r\n },\r\n {\r\n actionName: 'delete',\r\n disabled: isRemoved,\r\n color: 'remove',\r\n title: isRemoved ? (\r\n \r\n ) : (\r\n 'Eliminar'\r\n ),\r\n clickHander: removeMemberByNum,\r\n },\r\n ]\r\n }\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default MiembrosMesa;\r\n","import { makeStyles } from '@material-ui/core/styles';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n searchContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n marginTop: 35,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n btnBack: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n btnSearch: {\r\n width: 150,\r\n height: 50,\r\n },\r\n btnActions: {\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n btnActionCancel: {\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n '&:hover, &:focus': {\r\n backgroundColor: '#DA2229 !important',\r\n color: '#fff !important',\r\n },\r\n },\r\n sectionTitle: {\r\n fontSize: '16px',\r\n marginTop: 10,\r\n marginBottom: 10,\r\n padding: 5,\r\n color: '#fff',\r\n borderRadius: 4,\r\n background: '#008945',\r\n },\r\n field: {\r\n border: 'solid thin #ccc',\r\n padding: 20,\r\n background: '#f1f1f1',\r\n },\r\n fieldFilled: {\r\n border: 'solid thin #ccc',\r\n padding: 20,\r\n background: '#f1f1f1',\r\n },\r\n fieldMin: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 20,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n },\r\n fieldMinFilled: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 10,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n },\r\n fieldTitle: { margin: 5, padding: 0 },\r\n frmText: {\r\n width: '100%',\r\n height: '38px',\r\n padding: 5,\r\n margin: 0,\r\n display: 'block',\r\n fontSize: '.9em',\r\n lineHeight: 38,\r\n borderColor: '#797979',\r\n borderStyle: 'solid',\r\n borderWidth: 1,\r\n borderRadius: 10,\r\n },\r\n frmIconButton: { marginLeft: 10 },\r\n btnSubmitting: {\r\n width: 104,\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n formError: {\r\n margin: '5px 0px 25px 0px',\r\n color: `#FF1101`,\r\n },\r\n}));\r\n\r\nexport default useStyles;\r\n","/* eslint-disable max-len */\r\n/* eslint-disable no-unused-vars */\r\n/* eslint-disable camelcase */\r\nimport React, { useState, useEffect } from 'react';\r\nimport * as Yup from 'yup';\r\nimport Lodash from 'lodash';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useJwt } from 'react-jwt';\r\nimport Container from '@material-ui/core/Container';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\n\r\nimport { Grid, Button, Divider } from '@material-ui/core';\r\nimport Alert from '@material-ui/lab/Alert';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\n\r\nimport { Formik, Field } from 'formik';\r\nimport {\r\n PlnInput,\r\n PlnDropdown,\r\n} from '../../Components/Input';\r\nimport PLNDialog from '../../Components/PLNDialog/PLNDialog';\r\n\r\nimport useStyles from './styles';\r\nimport { searchByCedula } from '../../Core/Api/padronApi';\r\nimport {\r\n getDistritoByTwo,\r\n useProvincias,\r\n getCantonsByProvince,\r\n} from '../../Core/Api/locationApi';\r\nimport miembrosMesaApi from '../../Core/Api/miembrosMesaApi';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Copyright from '../Copyright/Copyright';\r\nimport Storage from '../../Storage/Storage';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nconst AddMiembro = () => {\r\n const classes = useStyles();\r\n const history = useHistory();\r\n const { data } = useProvincias();\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const tokenData = Storage.instance;\r\n const { decodedToken } = useJwt(tokenData.getToken());\r\n\r\n const defaultData = {\r\n primerApellido: '',\r\n segundoApellido: '',\r\n nombre: '',\r\n celular: '',\r\n email: '',\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n jrv: '',\r\n role: '',\r\n codProvincia: 0,\r\n codCanton: 0,\r\n };\r\n\r\n const [cantones, setCantones] = useState([\r\n { itemLabel: '- SELECCIONE EL CANTÓN-', value: 999 },\r\n ]);\r\n\r\n const [distritos, setDistritos] = useState([\r\n { itemLabel: '- SELECCIONE EL DISTRITO -', value: 999 },\r\n ]);\r\n\r\n const [jrv, setJRV] = useState([\r\n { itemLabel: '- Seleccione la JRV -', value: 999 },\r\n ]);\r\n\r\n const [roles, setRoles] = useState([\r\n { itemLabel: '- Seleccione un Puesto -', value: 999 },\r\n ]);\r\n\r\n const [initialValues] = useState({\r\n cedula: '',\r\n celular: '',\r\n email: '',\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n jrv: 999,\r\n role: 999,\r\n });\r\n\r\n const [sProvincia, setSProvincia] = useState(9);\r\n const [sCanton, setSCanton] = useState(999);\r\n // eslint-disable-next-line no-unused-vars\r\n const [sDistrito, setSDistrito] = useState(999);\r\n\r\n const provincias = Lodash.get(\r\n data,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n const setProvincia = p => {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n },\r\n ]);\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n setJRV([\r\n {\r\n itemLabel: '- Seleccione la JRV -',\r\n value: 999,\r\n },\r\n ]);\r\n initialValues.provincia = p;\r\n initialValues.canton = 999;\r\n initialValues.distrito = 999;\r\n if (p !== 9) {\r\n getCantonsByProvince(p).then(result => {\r\n if (result.status === 200) {\r\n const cantonsList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const clist = cantonsList.map(\r\n ({ cod_canton, des_nombre_c }) => {\r\n return {\r\n itemLabel: des_nombre_c,\r\n value: cod_canton,\r\n };\r\n },\r\n );\r\n clist.unshift({\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n });\r\n\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: p,\r\n }),\r\n );\r\n setCantones(clist);\r\n }\r\n });\r\n } else {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n const setCanton = c => {\r\n initialValues.distrito = 999;\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = c;\r\n\r\n setJRV([\r\n {\r\n itemLabel: '- Seleccione la JRV -',\r\n value: 999,\r\n },\r\n ]);\r\n\r\n if (c !== 999) {\r\n getDistritoByTwo(sProvincia.value, c).then(result => {\r\n if (result.status === 200) {\r\n const distritosList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const dlist = distritosList.map(\r\n ({ cod_distrito, des_nombre_d }) => {\r\n return {\r\n itemLabel: des_nombre_d,\r\n value: cod_distrito,\r\n };\r\n },\r\n );\r\n\r\n dlist.unshift({\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n });\r\n\r\n setSCanton(\r\n Lodash.find(cantones, {\r\n value: c,\r\n }),\r\n );\r\n\r\n setDistritos(dlist);\r\n }\r\n });\r\n } else {\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n const [searchBtnEnabled, setBtnSearch] = useState(false);\r\n const [searchBtnLabel, setBtnLabel] = useState('Buscar');\r\n\r\n const [showForm, setShowForm] = useState(false);\r\n const [isSaving, setIsSaving] = useState(false);\r\n const [open, setOpenDialog] = React.useState(false);\r\n\r\n const [memberId, setMemberId] = useState('');\r\n const [userLogged, setUser] = useState([]);\r\n const [memberInfo, setMemberInfo] = useState(defaultData);\r\n const [isNewMemberValid, setIsValidMember] = useState(\r\n true,\r\n );\r\n const [validMemberMsj, setMemberMsj] = useState('');\r\n\r\n const [open2, setOpenDialog2] = React.useState(false);\r\n const [msjDialog, setMsjDialog] = useState('');\r\n const handleClose = () => {\r\n setOpenDialog2(false);\r\n };\r\n\r\n /**\r\n * Get Distrits using Prov and Cant\r\n * @param {*} _provId\r\n * @param {*} _cantId\r\n */\r\n const getDistritos = async (_provId, _cantId) => {\r\n if (_provId && _cantId) {\r\n await getDistritoByTwo(_provId, _cantId).then(\r\n _res => {\r\n const listDistr = _res.data.response;\r\n\r\n if (listDistr instanceof Array) {\r\n const dlist = listDistr.map(\r\n ({ cod_distrito, des_nombre_d }) => {\r\n return {\r\n itemLabel: des_nombre_d,\r\n value: cod_distrito,\r\n };\r\n },\r\n );\r\n dlist.unshift({\r\n itemLabel: '- SELECCIONE EL DISTRITO -',\r\n value: 999,\r\n });\r\n\r\n setDistritos(dlist);\r\n }\r\n },\r\n );\r\n }\r\n };\r\n\r\n const getJRVSelected = _jrv => {\r\n const currentJRV = parseInt(_jrv, 10);\r\n\r\n if (currentJRV > 0 && currentJRV !== 999) {\r\n // setJRV(currentJRV);\r\n // console.log(currentJRV);\r\n }\r\n };\r\n\r\n const getRoleSelected = _codRole => {\r\n const currentRole = parseInt(_codRole, 10);\r\n\r\n if (currentRole > 0 && currentRole !== 999) {\r\n // setRoles(currentJRV);\r\n // console.log(currentRole);\r\n }\r\n };\r\n\r\n const getJRV = async _codDistr => {\r\n const currentDistr = parseInt(_codDistr, 10);\r\n setSDistrito(\r\n Lodash.find(distritos, {\r\n value: _codDistr,\r\n }),\r\n );\r\n\r\n if (currentDistr > 0 && currentDistr !== 999) {\r\n await miembrosMesaApi\r\n .getJuntaReceptora(\r\n sProvincia.value,\r\n sCanton.value,\r\n currentDistr,\r\n )\r\n .then(_res => {\r\n const listJRV = _res.data.response;\r\n if (listJRV instanceof Array) {\r\n const jrvlist = listJRV.map(\r\n ({ num_jvirt, index }) => {\r\n return {\r\n itemLabel: `Nº ${num_jvirt}`,\r\n value: num_jvirt,\r\n };\r\n },\r\n );\r\n jrvlist.unshift({\r\n itemLabel: '- Seleccione la JRV -',\r\n value: 999,\r\n });\r\n\r\n setJRV(jrvlist);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const buildRolesDropdown = () => {\r\n if (Consts.puestosMesa.length > 0) {\r\n const rolesList = Consts.puestosMesa.map(\r\n ({ codigo, descripcion }) => {\r\n return {\r\n itemLabel: descripcion,\r\n value: codigo,\r\n };\r\n },\r\n );\r\n\r\n rolesList.unshift({\r\n itemLabel: '- Seleccione un Puesto -',\r\n value: 999,\r\n });\r\n\r\n setRoles(rolesList);\r\n }\r\n };\r\n\r\n /**\r\n * Search member info using ced\r\n */\r\n const getDataByCed = async _form => {\r\n const { cedula } = _form.values;\r\n\r\n if (cedula) {\r\n setMemberInfo(defaultData);\r\n setMemberId(cedula);\r\n setBtnSearch(true);\r\n setBtnLabel('Buscando...');\r\n setShowForm(false);\r\n\r\n const validateMemberResponse = await miembrosMesaApi.validateMemberOnAdd(\r\n cedula,\r\n );\r\n\r\n if (\r\n validateMemberResponse.status === 200 &&\r\n validateMemberResponse.data.response === 1\r\n ) {\r\n setIsValidMember(false);\r\n setMemberMsj(\r\n `Esta persona ya está registrada como ${validateMemberResponse.data.tRegistered} en la JRV Nº ${validateMemberResponse.data.nMesa}, favor corregir`,\r\n );\r\n } else {\r\n setIsValidMember(true);\r\n setMemberMsj(``);\r\n await searchByCedula(cedula).then(_response => {\r\n const info = _response.data.response;\r\n\r\n if (info instanceof Array) {\r\n setShowForm(true);\r\n setMemberInfo({\r\n primerApellido: info[0].des_apell1,\r\n segundoApellido: info[0].des_apell2,\r\n nombre: info[0].des_nombre,\r\n celular: info[0].tel_celu || '',\r\n email: info[0].des_email || '',\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n jrv: info[0].num_jvirt,\r\n role: '',\r\n codProvincia: info[0].cod_prov,\r\n codCanton: info[0].cod_cant,\r\n });\r\n\r\n _form.setFieldValue(\r\n 'celular',\r\n info[0].tel_celu || '',\r\n );\r\n\r\n _form.setFieldValue(\r\n 'email',\r\n info[0].des_email || '',\r\n );\r\n\r\n _form.setFieldValue('provincia', 9);\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: 9,\r\n }),\r\n );\r\n\r\n _form.setFieldValue('canton', 999);\r\n\r\n setSCanton(\r\n Lodash.find(cantones, {\r\n value: 999,\r\n }),\r\n );\r\n } else {\r\n setShowForm(false);\r\n }\r\n });\r\n }\r\n\r\n setBtnSearch(false);\r\n setBtnLabel('Buscar');\r\n }\r\n };\r\n\r\n /**\r\n * Save Member\r\n * @param {*} values\r\n */\r\n const saveMember = values => {\r\n setIsSaving(true);\r\n\r\n const memberData = {\r\n cod_provincia: parseInt(values.provincia, 10),\r\n cod_canton: parseInt(values.canton, 10),\r\n cod_distrito: parseInt(values.distrito, 10),\r\n cod_mesa: parseInt(values.jrv, 10),\r\n num_cedula: parseInt(values.cedula, 10),\r\n cod_puesto: values.role,\r\n des_usuario: parseInt(userLogged.num_cedula, 10),\r\n fec_digitado: null,\r\n cod_periodo: null,\r\n };\r\n\r\n const userData = {\r\n codUsuario: userLogged.num_cedula,\r\n };\r\n\r\n const phoneData = {\r\n tel_celu: values.celular,\r\n };\r\n\r\n const emailData = {\r\n des_email: values.email,\r\n };\r\n\r\n const dataSet = {\r\n miembro: memberData,\r\n usuario: userData,\r\n telefonos: phoneData,\r\n emails: emailData,\r\n isUpdate: 0,\r\n };\r\n\r\n const jrvVal = parseInt(values.jrv, 10);\r\n const puesto = values.role;\r\n const cedUser = parseInt(userLogged.num_cedula, 10);\r\n\r\n miembrosMesaApi\r\n .submitMiembroMesa(dataSet)\r\n .then(_response => {\r\n setIsSaving(false);\r\n\r\n if (\r\n _response.status === 200 &&\r\n _response.data.response === 1\r\n ) {\r\n setOpenDialog(true);\r\n } else {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n 'No se pudo completar la operacion, vuelva a intentar',\r\n );\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (decodedToken !== null) {\r\n setUser(decodedToken);\r\n }\r\n\r\n buildRolesDropdown();\r\n }, [decodedToken]);\r\n\r\n /**\r\n * Form validations\r\n * @param {*} values\r\n */\r\n const formikValidate = values => {\r\n const errors = {};\r\n // eslint-disable-next-line no-shadow\r\n const { celular, email, distrito, jrv, role } = values;\r\n\r\n if (!celular) {\r\n errors.celular = 'Requerido';\r\n } else if (!/^[0-9]{8}$/.test(celular)) {\r\n errors.celular = 'Ejemplo de formato: xxxxxxxx.';\r\n }\r\n\r\n if (!email) {\r\n errors.email = 'Requerido';\r\n } else if (\r\n !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(\r\n email,\r\n )\r\n ) {\r\n errors.email = 'Email inválido';\r\n }\r\n\r\n if (distrito === 999) {\r\n errors.distrito = 'Seleccione un distrito';\r\n }\r\n\r\n if (jrv === 999) {\r\n errors.jrv = 'Seleccione la Junta Receptora';\r\n }\r\n\r\n if (role === 999) {\r\n errors.role = 'Seleccione un puesto';\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n const closeDialogHandler = () => {\r\n history.push('/miembros-mesa');\r\n setOpenDialog(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Nuevo Registro de Miembro de Mesa\r\n {\r\n history.push('/miembros-mesa');\r\n }}\r\n >\r\n Regresar\r\n \r\n \r\n \r\n {formik => (\r\n \r\n \r\n \r\n

# Cédula:

\r\n \r\n
\r\n \r\n {\r\n await getDataByCed(formik);\r\n }}\r\n >\r\n {searchBtnLabel}\r\n \r\n
\r\n
\r\n \r\n \r\n {!isNewMemberValid ? (\r\n
\r\n \r\n {validMemberMsj}\r\n \r\n
\r\n ) : null}\r\n
\r\n
\r\n \r\n {showForm ? (\r\n <>\r\n \r\n \r\n \r\n 1er. Apellido\r\n \r\n \r\n {memberInfo.primerApellido}\r\n \r\n \r\n \r\n \r\n 2do. Apellido\r\n \r\n \r\n {memberInfo.segundoApellido}\r\n \r\n \r\n \r\n \r\n Nombre\r\n \r\n \r\n {memberInfo.nombre}\r\n \r\n \r\n
\r\n \r\n \r\n

# Celular:

\r\n \r\n {formik.errors.celular &&\r\n formik.touched.celular ? (\r\n \r\n \r\n {formik.errors.celular}\r\n \r\n \r\n ) : null}\r\n
\r\n \r\n

Correo Principal:

\r\n \r\n {formik.errors.email &&\r\n formik.touched.email ? (\r\n \r\n \r\n {formik.errors.email}\r\n \r\n \r\n ) : null}\r\n
\r\n
\r\n \r\n \r\n \r\n Provincia\r\n \r\n
\r\n {\r\n setProvincia(provincia);\r\n formik.setFieldValue(\r\n 'canton',\r\n 999,\r\n );\r\n formik.setFieldValue(\r\n 'distrito',\r\n 999,\r\n );\r\n }}\r\n />\r\n {formik.errors.distrito &&\r\n formik.touched.distrito ? (\r\n \r\n \r\n {formik.errors.distrito}\r\n \r\n
\r\n ) : null}\r\n \r\n
\r\n \r\n \r\n Cantón\r\n \r\n
\r\n {\r\n setCanton(canton);\r\n formik.setFieldValue(\r\n 'distrito',\r\n 999,\r\n );\r\n }}\r\n />\r\n
\r\n
\r\n \r\n \r\n Distrito\r\n \r\n
\r\n {\r\n getJRV(dist);\r\n }}\r\n />\r\n {formik.errors.distrito &&\r\n formik.touched.distrito ? (\r\n \r\n \r\n {formik.errors.distrito}\r\n \r\n
\r\n ) : null}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n JRV\r\n \r\n \r\n getJRVSelected(jrvItem)\r\n }\r\n />\r\n {formik.errors.jrv &&\r\n formik.touched.jrv ? (\r\n \r\n \r\n {formik.errors.jrv}\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n Puesto\r\n \r\n \r\n getRoleSelected(role)\r\n }\r\n />\r\n {formik.errors.role &&\r\n formik.touched.role ? (\r\n \r\n \r\n {formik.errors.role}\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n {isSaving ? (\r\n \r\n ) : (\r\n <>\r\n Guardar\r\n \r\n \r\n )}\r\n \r\n {\r\n history.push(\r\n '/miembros-mesa',\r\n );\r\n }}\r\n >\r\n Cancelar\r\n \r\n \r\n \r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n )}\r\n \r\n {}}\r\n title=\"Mensaje\"\r\n bodymessage=\"Información guardada correctamente.\"\r\n buttons={[\r\n {\r\n actionName: 'close',\r\n color: 'simple',\r\n title: 'Entendido',\r\n clickHander: closeDialogHandler,\r\n },\r\n ]}\r\n />\r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Entendido\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default AddMiembro;\r\n","/* eslint-disable camelcase */\r\n/* eslint-disable no-shadow */\r\n/* eslint-disable no-unused-vars */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport * as Yup from 'yup';\r\nimport Lodash from 'lodash';\r\nimport { useJwt } from 'react-jwt';\r\nimport Container from '@material-ui/core/Container';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\n\r\nimport { Grid, Button, Divider } from '@material-ui/core';\r\nimport Alert from '@material-ui/lab/Alert';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\n\r\nimport { Formik, Field } from 'formik';\r\nimport {\r\n PlnInput,\r\n PlnDropdown,\r\n} from '../../Components/Input';\r\nimport PLNDialog from '../../Components/PLNDialog/PLNDialog';\r\nimport Loading from '../../Components/Loading/Loading';\r\n\r\nimport useStyles from './styles';\r\nimport {\r\n getDistritoByTwo,\r\n useProvincias,\r\n getCantonsByProvince,\r\n getProvinces,\r\n} from '../../Core/Api/locationApi';\r\nimport miembrosMesaApi from '../../Core/Api/miembrosMesaApi';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Copyright from '../Copyright/Copyright';\r\nimport Storage from '../../Storage/Storage';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nconst EditMiembro = () => {\r\n const classes = useStyles();\r\n const history = useHistory();\r\n const { id } = useParams();\r\n const { data } = useProvincias();\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const tokenData = Storage.instance;\r\n const { decodedToken } = useJwt(tokenData.getToken());\r\n\r\n const defaultData = {\r\n primerApellido: '',\r\n segundoApellido: '',\r\n nombre: '',\r\n celular: '',\r\n email: '',\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n jrv: '',\r\n role: '',\r\n codProvincia: 0,\r\n codCanton: 0,\r\n };\r\n\r\n const [distritos, setDistritos] = useState([\r\n { itemLabel: '- Seleccione un Distrito -', value: 999 },\r\n ]);\r\n\r\n const [jrv, setJRV] = useState([\r\n { itemLabel: '- Seleccione la JRV -', value: 999 },\r\n ]);\r\n\r\n const [roles, setRoles] = useState([\r\n { itemLabel: '- Seleccione un Puesto -', value: 999 },\r\n ]);\r\n\r\n const [initialValues] = useState({\r\n cedula: '',\r\n celular: '',\r\n email: '',\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n jrv: 999,\r\n role: 999,\r\n });\r\n\r\n const [showForm, setShowForm] = useState(true);\r\n const [isSaving, setIsSaving] = useState(false);\r\n const [isLoadingData, setLoading] = useState(true);\r\n const [open, setOpenDialog] = React.useState(false);\r\n\r\n const [memberId, setMemberId] = useState('');\r\n const [userLogged, setUser] = useState([]);\r\n const [memberInfo, setMemberInfo] = useState(defaultData);\r\n\r\n const [open2, setOpenDialog2] = React.useState(false);\r\n const [msjDialog, setMsjDialog] = useState('');\r\n const handleClose = () => {\r\n setOpenDialog2(false);\r\n };\r\n\r\n const [cantones, setCantones] = useState([\r\n { itemLabel: '- SELECCIONE EL CANTÓN-', value: 999 },\r\n ]);\r\n\r\n const [sProvincia, setSProvincia] = useState(9);\r\n const [sCanton, setSCanton] = useState(999);\r\n // eslint-disable-next-line no-unused-vars\r\n const [sDistrito, setSDistrito] = useState(999);\r\n const provincias = Lodash.get(\r\n data,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n const setProvincia = p => {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n },\r\n ]);\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n setJRV([\r\n {\r\n itemLabel: '- Seleccione la JRV-',\r\n value: 999,\r\n },\r\n ]);\r\n initialValues.provincia = p;\r\n initialValues.canton = 999;\r\n initialValues.distrito = 999;\r\n if (p !== 9) {\r\n getCantonsByProvince(p).then(result => {\r\n if (result.status === 200) {\r\n const cantonsList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const clist = cantonsList.map(\r\n ({ cod_canton, des_nombre_c }) => {\r\n return {\r\n itemLabel: des_nombre_c,\r\n value: cod_canton,\r\n };\r\n },\r\n );\r\n clist.unshift({\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n });\r\n\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: p,\r\n }),\r\n );\r\n setCantones(clist);\r\n }\r\n });\r\n } else {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n const setCanton = c => {\r\n setJRV([\r\n {\r\n itemLabel: '- Seleccione la JRV-',\r\n value: 999,\r\n },\r\n ]);\r\n initialValues.distrito = 999;\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = c;\r\n\r\n if (c !== 999) {\r\n getDistritoByTwo(sProvincia.value, c).then(result => {\r\n if (result.status === 200) {\r\n const distritosList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const dlist = distritosList.map(\r\n ({ cod_distrito, des_nombre_d }) => {\r\n return {\r\n itemLabel: des_nombre_d,\r\n value: cod_distrito,\r\n };\r\n },\r\n );\r\n\r\n dlist.unshift({\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n });\r\n\r\n setSCanton(\r\n Lodash.find(cantones, {\r\n value: c,\r\n }),\r\n );\r\n\r\n setDistritos(dlist);\r\n }\r\n });\r\n } else {\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n /**\r\n * Get Distrits using Prov and Cant\r\n * @param {*} _provId\r\n * @param {*} _cantId\r\n */\r\n const getDistritos = async (_provId, _cantId) => {\r\n if (_provId && _cantId) {\r\n await getDistritoByTwo(_provId, _cantId).then(\r\n _res => {\r\n const listDistr = _res.data.response;\r\n\r\n if (listDistr instanceof Array) {\r\n const dlist = listDistr.map(\r\n ({ cod_distrito, des_nombre_d }) => {\r\n return {\r\n itemLabel: des_nombre_d,\r\n value: cod_distrito,\r\n };\r\n },\r\n );\r\n dlist.unshift({\r\n itemLabel: '- SELECCIONE EL DISTRITO -',\r\n value: 999,\r\n });\r\n\r\n setDistritos(dlist);\r\n }\r\n },\r\n );\r\n }\r\n };\r\n\r\n const getJRVSelected = _jrv => {\r\n const currentJRV = parseInt(_jrv, 10);\r\n\r\n if (currentJRV > 0 && currentJRV !== 999) {\r\n // setJRV(currentJRV);\r\n // console.log(currentJRV);\r\n }\r\n };\r\n\r\n const getRoleSelected = _codRole => {\r\n const currentRole = parseInt(_codRole, 10);\r\n\r\n if (currentRole > 0 && currentRole !== 999) {\r\n // setRoles(currentJRV);\r\n // console.log(currentRole);\r\n }\r\n };\r\n\r\n const getJRV = async _codDistr => {\r\n setJRV([\r\n {\r\n itemLabel: '- Seleccione la JRV-',\r\n value: 999,\r\n },\r\n ]);\r\n const currentDistr = parseInt(_codDistr, 10);\r\n if (currentDistr > 0 && currentDistr !== 999) {\r\n await miembrosMesaApi\r\n .getJuntaReceptora(\r\n sProvincia.value,\r\n sCanton.value,\r\n currentDistr,\r\n )\r\n .then(_res => {\r\n const listJRV = _res.data.response;\r\n if (listJRV instanceof Array) {\r\n const jrvlist = listJRV.map(\r\n ({ num_jvirt, index }) => {\r\n return {\r\n itemLabel: `Nº ${num_jvirt}`,\r\n value: num_jvirt,\r\n };\r\n },\r\n );\r\n jrvlist.unshift({\r\n itemLabel: '- Seleccione la JRV -',\r\n value: 999,\r\n });\r\n\r\n setJRV(jrvlist);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const buildRolesDropdown = () => {\r\n if (Consts.puestosMesa.length > 0) {\r\n const rolesList = Consts.puestosMesa.map(\r\n ({ codigo, descripcion }) => {\r\n return {\r\n itemLabel: descripcion,\r\n value: codigo,\r\n };\r\n },\r\n );\r\n\r\n rolesList.unshift({\r\n itemLabel: '- Seleccione un Puesto -',\r\n value: 999,\r\n });\r\n\r\n setRoles(rolesList);\r\n }\r\n };\r\n\r\n /**\r\n * Save Member\r\n * @param {*} values\r\n */\r\n const saveMember = values => {\r\n setIsSaving(true);\r\n\r\n const memberData = {\r\n cod_provincia: parseInt(values.provincia, 10),\r\n cod_canton: parseInt(values.canton, 10),\r\n cod_distrito: parseInt(values.distrito, 10),\r\n cod_mesa: parseInt(values.jrv, 10),\r\n num_cedula: parseInt(values.cedula, 10),\r\n cod_puesto: values.role,\r\n num_linea: parseInt(id, 10),\r\n des_usuario: parseInt(userLogged.num_cedula, 10),\r\n fec_digitado: null,\r\n cod_periodo: null,\r\n };\r\n\r\n const userData = {\r\n codUsuario: userLogged.num_cedula,\r\n };\r\n\r\n const phoneData = {\r\n tel_celu: values.celular,\r\n };\r\n\r\n const emailData = {\r\n des_email: values.email,\r\n };\r\n\r\n const dataSet = {\r\n miembro: memberData,\r\n usuario: userData,\r\n telefonos: phoneData,\r\n emails: emailData,\r\n isUpdate: 1,\r\n };\r\n const jrvVal = parseInt(values.jrv, 10);\r\n const puesto = values.role;\r\n const cedUser = parseInt(userLogged.num_cedula, 10);\r\n\r\n miembrosMesaApi\r\n .submitMiembroMesa(dataSet)\r\n .then(_response => {\r\n if (\r\n _response.status === 200 &&\r\n _response.data.response === 1\r\n ) {\r\n setIsSaving(false);\r\n setOpenDialog(true);\r\n } else {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n 'No se pudo completar la operacion, vuelva a intentar',\r\n );\r\n }\r\n });\r\n };\r\n\r\n const loadMemberDetails = async _numLine => {\r\n try {\r\n let dataSet = {};\r\n if (_numLine) {\r\n const info = await miembrosMesaApi.getMiembroInfoByLinea(\r\n _numLine,\r\n );\r\n const data = info.data.response;\r\n\r\n if (data instanceof Array && info.status === 200) {\r\n dataSet = {\r\n primerApellido: data[0].des_apell1,\r\n segundoApellido: data[0].des_apell2,\r\n nombre: data[0].des_nombre,\r\n celular: data[0].tel_celu || '',\r\n email: data[0].des_email || '',\r\n provincia: data[0].cod_provincia,\r\n canton: data[0].cod_canton,\r\n distrito: data[0].cod_distrito,\r\n jrv: data[0].cod_mesa,\r\n role: data[0].cod_puesto,\r\n codProvincia: data[0].cod_provincia,\r\n codCanton: data[0].cod_canton,\r\n cedula: data[0].num_cedula,\r\n };\r\n const listProvincias = await getProvinces();\r\n const provincias = Lodash.get(\r\n listProvincias,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: data[0].cod_provincia,\r\n }),\r\n );\r\n\r\n setSCanton(\r\n Lodash.find(cantones, {\r\n value: data[0].cod_canton,\r\n }),\r\n );\r\n\r\n getCantonsByProvince(data[0].cod_provincia).then(\r\n result => {\r\n if (result.status === 200) {\r\n const cantonsList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const clist = cantonsList.map(\r\n ({ cod_canton, des_nombre_c }) => {\r\n return {\r\n itemLabel: des_nombre_c,\r\n value: cod_canton,\r\n };\r\n },\r\n );\r\n clist.unshift({\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n });\r\n\r\n setCantones(clist);\r\n }\r\n },\r\n );\r\n\r\n await miembrosMesaApi\r\n .getJuntaReceptora(\r\n data[0].cod_provincia,\r\n data[0].cod_canton,\r\n data[0].cod_distrito,\r\n )\r\n .then(_res => {\r\n const listJRV = _res.data.response;\r\n if (listJRV instanceof Array) {\r\n const jrvlist = listJRV.map(\r\n ({ num_jvirt, index }) => {\r\n return {\r\n itemLabel: `Nº ${num_jvirt}`,\r\n value: num_jvirt,\r\n };\r\n },\r\n );\r\n jrvlist.unshift({\r\n itemLabel: '- Seleccione la JRV -',\r\n value: 999,\r\n });\r\n\r\n setJRV(jrvlist);\r\n }\r\n });\r\n } else {\r\n dataSet = defaultData;\r\n }\r\n } else {\r\n dataSet = defaultData;\r\n }\r\n\r\n setMemberInfo(dataSet);\r\n setLoading(false);\r\n } catch (error) {\r\n // eslint-disable-next-line no-console\r\n console.warn(error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n async function fetchAPI() {\r\n const currentNumLinea = parseInt(id, 10);\r\n\r\n // eslint-disable-next-line no-restricted-globals\r\n if (currentNumLinea === 0 || isNaN(currentNumLinea)) {\r\n history.push('/miembros-mesa');\r\n }\r\n\r\n setLoading(true);\r\n\r\n await loadMemberDetails(currentNumLinea);\r\n }\r\n\r\n fetchAPI();\r\n }, []);\r\n\r\n useEffect(() => {\r\n getDistritos(\r\n memberInfo.codProvincia,\r\n memberInfo.codCanton,\r\n );\r\n // getJRV(memberInfo.distrito);\r\n buildRolesDropdown();\r\n setUser(decodedToken);\r\n }, [memberInfo]);\r\n\r\n /**\r\n * Form validations\r\n * @param {*} values\r\n */\r\n const formikValidate = values => {\r\n const errors = {};\r\n const { celular, email, distrito, jrv, role } = values;\r\n\r\n if (!celular) {\r\n errors.celular = 'Requerido';\r\n } else if (!/^[0-9]{8}$/.test(celular)) {\r\n errors.celular = 'Ejemplo de formato: xxxxxxxx.';\r\n }\r\n\r\n if (!email) {\r\n errors.email = 'Requerido';\r\n } else if (\r\n !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(\r\n email,\r\n )\r\n ) {\r\n errors.email = 'Email inválido';\r\n }\r\n\r\n if (distrito === 999) {\r\n errors.distrito = 'Seleccione un distrito';\r\n }\r\n\r\n if (jrv === 999) {\r\n errors.jrv = 'Seleccione la Junta Receptora';\r\n }\r\n\r\n if (role === 999) {\r\n errors.role = 'Seleccione un puesto';\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n const closeDialogHandler = () => {\r\n history.push('/miembros-mesa');\r\n setOpenDialog(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Editar Miembro de Mesa\r\n {\r\n history.push('/miembros-mesa');\r\n }}\r\n >\r\n Regresar\r\n \r\n \r\n {!isLoadingData ? (\r\n \r\n {formik => {\r\n return (\r\n \r\n \r\n \r\n

\r\n # Cédula: {memberInfo.cedula}\r\n

\r\n
\r\n
\r\n \r\n {showForm ? (\r\n <>\r\n \r\n \r\n \r\n 1er. Apellido\r\n \r\n \r\n {memberInfo.primerApellido}\r\n \r\n \r\n \r\n \r\n 2do. Apellido\r\n \r\n \r\n {memberInfo.segundoApellido}\r\n \r\n \r\n \r\n \r\n Nombre\r\n \r\n \r\n {memberInfo.nombre}\r\n \r\n \r\n
\r\n \r\n \r\n

# Celular:

\r\n \r\n {formik.errors.celular &&\r\n formik.touched.celular ? (\r\n \r\n \r\n {formik.errors.celular}\r\n \r\n \r\n ) : null}\r\n
\r\n \r\n

Correo Principal:

\r\n \r\n {formik.errors.email &&\r\n formik.touched.email ? (\r\n \r\n \r\n {formik.errors.email}\r\n \r\n \r\n ) : null}\r\n
\r\n
\r\n \r\n \r\n \r\n Provincia\r\n \r\n
\r\n {\r\n setProvincia(provincia);\r\n formik.setFieldValue(\r\n 'canton',\r\n 999,\r\n );\r\n formik.setFieldValue(\r\n 'distrito',\r\n 999,\r\n );\r\n }}\r\n />\r\n {formik.errors.distrito &&\r\n formik.touched.distrito ? (\r\n \r\n \r\n {\r\n formik.errors\r\n .distrito\r\n }\r\n \r\n
\r\n ) : null}\r\n \r\n
\r\n \r\n \r\n Cantón\r\n \r\n
\r\n {\r\n setCanton(canton);\r\n formik.setFieldValue(\r\n 'distrito',\r\n 999,\r\n );\r\n }}\r\n />\r\n
\r\n
\r\n \r\n \r\n Distrito\r\n \r\n
\r\n {\r\n getJRV(dist);\r\n }}\r\n />\r\n {formik.errors.distrito &&\r\n formik.touched.distrito ? (\r\n \r\n \r\n {\r\n formik.errors\r\n .distrito\r\n }\r\n \r\n
\r\n ) : null}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n JRV\r\n \r\n \r\n getJRVSelected(jrvItem)\r\n }\r\n />\r\n {formik.errors.jrv &&\r\n formik.touched.jrv ? (\r\n \r\n \r\n {formik.errors.jrv}\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n Puesto\r\n \r\n \r\n getRoleSelected(role)\r\n }\r\n />\r\n {formik.errors.role &&\r\n formik.touched.role ? (\r\n \r\n \r\n {formik.errors.role}\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n {isSaving ? (\r\n \r\n ) : (\r\n <>\r\n Actualizar\r\n \r\n \r\n )}\r\n \r\n {\r\n history.push(\r\n '/miembros-mesa',\r\n );\r\n }}\r\n >\r\n Cancelar\r\n \r\n \r\n
\r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n );\r\n }}\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Entendido\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default EditMiembro;\r\n","function createData(\r\n provincia,\r\n canton,\r\n distrito,\r\n jrv,\r\n puesto,\r\n cedula,\r\n primerApellido,\r\n segundoApellido,\r\n nombre,\r\n id,\r\n) {\r\n return {\r\n provincia,\r\n canton,\r\n distrito,\r\n jrv,\r\n puesto,\r\n cedula,\r\n primerApellido,\r\n segundoApellido,\r\n nombre,\r\n id,\r\n };\r\n}\r\n\r\nexport const tableHeaders = [\r\n {\r\n name: 'Provincia',\r\n },\r\n {\r\n name: 'Cantón',\r\n },\r\n {\r\n name: 'Distrito Electoral',\r\n },\r\n {\r\n name: 'JRV',\r\n },\r\n {\r\n name: 'Puesto',\r\n },\r\n {\r\n name: 'Cédula',\r\n },\r\n {\r\n name: '1er. Apellido',\r\n },\r\n {\r\n name: '2do. Apellido',\r\n },\r\n {\r\n name: 'Nombre',\r\n },\r\n];\r\n\r\nexport const dataRows = [\r\n createData(\r\n 'HEREDIA',\r\n 'BARVA',\r\n 'SAN PABLO',\r\n '1453',\r\n 'M.SUPLENTE',\r\n '401920238',\r\n 'RAMIREZ',\r\n 'RUIZ',\r\n 'ESTEBAN',\r\n 5334,\r\n ),\r\n createData(\r\n 'HEREDIA',\r\n 'SAN PABLO',\r\n 'SABANILLA',\r\n '1454',\r\n 'M.PROPIETARIO',\r\n '401940767',\r\n 'ZUNIGA',\r\n 'RUIZ',\r\n 'JOSE',\r\n 5326,\r\n ),\r\n];\r\n","import axios from 'axios';\r\n\r\nconst axiosInstance = axios.create({\r\n baseURL: process.env.REACT_APP_API_BASE_URL,\r\n responseType: 'json',\r\n});\r\n\r\nconst getJRVByDistrit = (_ced, _cant, _codDistrital) => {\r\n return axiosInstance.get(\r\n `fiscalesMesa/getJuntas/${_ced}/${_cant}/${_codDistrital}`,\r\n );\r\n};\r\n\r\nconst saveFiscalMesa = _info => {\r\n return axiosInstance.post('fiscalesMesa/', _info);\r\n};\r\n\r\nconst getFiscalMesaByNumLinea = _linea => {\r\n return axiosInstance.get(`fiscalesMesa/find/${_linea}`);\r\n};\r\n\r\nconst getFiscalesMesa = _ced => {\r\n return axiosInstance.get(\r\n `fiscalesMesa/allByGestor/${_ced}`,\r\n );\r\n};\r\n\r\nconst getFiscalesMesaFiltered = (\r\n _ced,\r\n _codProvincia,\r\n _codCanton,\r\n _codDistrito,\r\n _nJrv,\r\n) => {\r\n return axiosInstance.get(\r\n // eslint-disable-next-line max-len\r\n `fiscalesMesa/allByGestorFiltered/${_ced}/${_codProvincia}/${_codCanton}/${_codDistrito}/${_nJrv}`,\r\n );\r\n};\r\n\r\nconst validateFiscalOnAdd = _ced => {\r\n return axiosInstance.get(\r\n `fiscalesMesa/validateCedula/${_ced}`,\r\n );\r\n};\r\n\r\nconst validateIfExist = (jrv, puesto, cedula) => {\r\n return axiosInstance.get(\r\n `fiscalesMesa/validarExistencia/${jrv}/${puesto}/${cedula}`,\r\n );\r\n};\r\n\r\nconst deleteFiscal = _numLinea => {\r\n return axiosInstance.get(\r\n `fiscalesMesa/removeMember/${_numLinea}`,\r\n );\r\n};\r\n\r\nexport default {\r\n getJuntaReceptora: getJRVByDistrit,\r\n getAllFiscalesMesa: getFiscalesMesa,\r\n getAllFiscalesMesaFiltered: getFiscalesMesaFiltered,\r\n getFiscalInfoByLinea: getFiscalMesaByNumLinea,\r\n submitFiscalMesa: saveFiscalMesa,\r\n validateFiscalOnAdd,\r\n validateIfExist,\r\n deleteFiscal,\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { useJwt } from 'react-jwt';\r\n\r\nimport DeleteSharpIcon from '@material-ui/icons/DeleteSharp';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport { tableHeaders } from './data';\r\nimport MacroList from '../MacroList/MacroList';\r\nimport Filters from '../../Components/Filters/RegistrosElectFilter';\r\nimport PLNDialog from '../../Components/PLNDialog/PLNDialog';\r\n\r\nimport Storage from '../../Storage/Storage';\r\nimport fiscalesMesaApi from '../../Core/Api/fiscalesMesaApi';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n btnAdd: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n actionContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n}));\r\n\r\nconst FiscalesMesa = () => {\r\n const classes = useStyles();\r\n const history = useHistory();\r\n const tokenStorage = Storage.instance;\r\n // const filteredItems = [];\r\n\r\n const { decodedToken } = useJwt(tokenStorage.getToken());\r\n\r\n const [items, setItems] = useState([]);\r\n const [filteredItems, setFilteredItems] = useState([]); // used for filtering\r\n // eslint-disable-next-line no-unused-vars\r\n const [isBeingFiltered, setIsBeingFiltered] = useState(\r\n false,\r\n );\r\n const [isDataEmpty, setDataEmpty] = useState(true);\r\n const [filters, setFilters] = useState({\r\n provincia: '',\r\n canton: '',\r\n distrito: '',\r\n cedula: '',\r\n primerApellido: '',\r\n segundoApellido: '',\r\n nombre: '',\r\n });\r\n const [open, setOpenDialog] = React.useState(false);\r\n const [dataRemove, setDataRemove] = React.useState(null);\r\n const [isRemoved, setIsRemoved] = useState(false); // used on remove modal\r\n const [removedMsj, setRemoveMsj] = useState(\r\n 'El registro se eliminará permanentemente. ¿Desea proceder?',\r\n );\r\n const [hiddenBtn, setHiddenBtn] = useState(false);\r\n\r\n const getFilterKeys = Object.getOwnPropertyNames(filters);\r\n const TIMING_ON_SEARCH = 900;\r\n\r\n /**\r\n * Filter Items\r\n */\r\n const applyFilters = async () => {\r\n const activeFilters = getFilterKeys.filter(\r\n filter => filters[filter] !== '',\r\n );\r\n\r\n setDataEmpty(true);\r\n\r\n if (activeFilters.length > 0) {\r\n // FITLRO FUNCIONAL CON UN INPUT: nombre (DO NOT REMOVED YET)\r\n /* const result = filteredItems.filter(_item => {\r\n let currentFilter = _item.nombre;\r\n if (typeof currentFilter === 'number')\r\n currentFilter = currentFilter.toString();\r\n\r\n return currentFilter\r\n .toLowerCase()\r\n .includes(filters.nombre.toLowerCase());\r\n });\r\n\r\n setDataEmpty(!result.length > 0);\r\n\r\n if (result.length > 0) setFilteredItems(result); */\r\n\r\n const dataFiltered = activeFilters.map(myFilter => {\r\n const result = items.filter(_item => {\r\n let currentFilter = _item[myFilter];\r\n if (typeof currentFilter === 'number')\r\n currentFilter = currentFilter.toString();\r\n\r\n return currentFilter\r\n .toLowerCase()\r\n .includes(filters[myFilter].toLowerCase());\r\n });\r\n\r\n setDataEmpty(!result.length > 0);\r\n if (result.length > 0) setFilteredItems(result);\r\n // console.log(result);\r\n return result;\r\n });\r\n\r\n // console.log(dataFiltered);\r\n } else {\r\n setFilteredItems(items);\r\n setDataEmpty(false);\r\n }\r\n };\r\n\r\n /**\r\n * Get Members when the page loads\r\n */\r\n const getAllMembers = async () => {\r\n let itemsList = [];\r\n\r\n setDataEmpty(false);\r\n\r\n try {\r\n if (decodedToken) {\r\n const info = await fiscalesMesaApi.getAllFiscalesMesa(\r\n decodedToken.num_cedula,\r\n );\r\n\r\n const data = info.data.response;\r\n\r\n if (data instanceof Array && info.status === 200) {\r\n itemsList = data.map(member => {\r\n return {\r\n provincia: member.des_nombre_p,\r\n canton: member.des_nombre_c,\r\n distrito: member.des_nombre_d,\r\n jrv: member.cod_mesa,\r\n puesto: member.des_puesto,\r\n cedula: member.num_cedula,\r\n primerApellido: member.des_apell1,\r\n segundoApellido: member.des_apell2,\r\n nombre: member.des_nombre,\r\n id: member.num_linea,\r\n };\r\n });\r\n }\r\n }\r\n } catch (error) {\r\n console.warn(error);\r\n }\r\n\r\n setDataEmpty(itemsList.length === 0);\r\n setItems(itemsList);\r\n setFilteredItems(itemsList);\r\n };\r\n\r\n /**\r\n * Remove a member selected by user\r\n */\r\n const removeMemberByNum = async () => {\r\n const numLinea = dataRemove.id;\r\n\r\n if (numLinea && numLinea > 0) {\r\n setIsRemoved(true);\r\n\r\n await fiscalesMesaApi\r\n .deleteFiscal(numLinea)\r\n .then(_response => {\r\n const info = _response.data.response;\r\n\r\n if (info === 1 && _response.status === 200) {\r\n setIsRemoved(false);\r\n setHiddenBtn(true);\r\n setRemoveMsj(\r\n 'Fiscal de Mesa eliminado correctamente.',\r\n );\r\n setTimeout(() => {\r\n setOpenDialog(false);\r\n window.location.href = '/fiscales-mesa/';\r\n }, 3000);\r\n } else {\r\n setHiddenBtn(false);\r\n setRemoveMsj(\r\n 'La operación no se pudo completar. Intente de nuevo.',\r\n );\r\n }\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n async function fetchListAPI() {\r\n await getAllMembers();\r\n }\r\n\r\n fetchListAPI();\r\n }, [decodedToken]);\r\n\r\n useEffect(() => {\r\n async function proceedFilters() {\r\n await applyFilters();\r\n }\r\n\r\n const timeoutId = setTimeout(() => {\r\n if (filteredItems.length > 0) proceedFilters();\r\n }, TIMING_ON_SEARCH);\r\n return () => clearTimeout(timeoutId);\r\n }, [filters]);\r\n\r\n /**\r\n * List all filters required on the page list\r\n */\r\n const listFilters = () => {\r\n return [\r\n {\r\n label: 'Provincia:',\r\n action: async ev => {\r\n const updatedValue = {\r\n provincia: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.provincia,\r\n inputId: 'filter-provincia',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: 'Cantón:',\r\n action: async ev => {\r\n const updatedValue = {\r\n canton: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.canton,\r\n inputId: 'filter-canton',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: 'Distrito:',\r\n action: async ev => {\r\n const updatedValue = {\r\n distrito: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.distrito,\r\n inputId: 'filter-distrito',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: '# Cédula:',\r\n action: async ev => {\r\n const updatedValue = {\r\n cedula: ev.currentTarget.value,\r\n };\r\n\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.cedula,\r\n inputId: 'filter-cedula',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: '1er Apellido:',\r\n action: async ev => {\r\n const updatedValue = {\r\n primerApellido: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.primerApellido,\r\n inputId: 'filter-first',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: '2do Apellido:',\r\n action: async ev => {\r\n const updatedValue = {\r\n segundoApellido: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.segundoApellido,\r\n inputId: 'filter-last',\r\n responsiveSize: {\r\n xs: 12,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: 'Nombre:',\r\n action: async ev => {\r\n const updatedValue = {\r\n nombre: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.nombre,\r\n inputId: 'filter-name',\r\n responsiveSize: {\r\n xs: 12,\r\n sm: 3,\r\n },\r\n },\r\n ];\r\n };\r\n\r\n /**\r\n * List all actions that a user can do for each item in the list\r\n */\r\n const setActions = () => {\r\n const actions = [];\r\n\r\n const actionEdit = {\r\n aria: 'Edit Fiscal de Mesa',\r\n key: 'edit',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n window.location.href = `/fiscales-mesa/edit/${_item.id}`;\r\n },\r\n };\r\n\r\n actions.push(actionEdit);\r\n\r\n const actionRemove = {\r\n aria: 'Eliminar Fiscal de Mesa',\r\n key: 'remove',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n setDataRemove(_item);\r\n setOpenDialog(true);\r\n },\r\n };\r\n\r\n actions.push(actionRemove);\r\n return actions;\r\n };\r\n\r\n return (\r\n \r\n }\r\n dataEmpty={isDataEmpty}\r\n listName=\"Lista de Fiscales de Mesa\"\r\n uiStylesClasses={classes}\r\n btnConfig={{\r\n name: '+ Agregar',\r\n event: () => history.push('/fiscales-mesa/add'),\r\n }}\r\n actionConfig={setActions}\r\n tableHeads={tableHeaders}\r\n tableBody={isBeingFiltered ? filteredItems : items}\r\n />\r\n {}}\r\n title=\"Eliminar Fiscal de Mesa\"\r\n bodymessage={removedMsj}\r\n buttons={\r\n hiddenBtn\r\n ? []\r\n : [\r\n {\r\n actionName: 'cancel',\r\n color: 'simple',\r\n title: 'Cerrar',\r\n clickHander: () => {\r\n setOpenDialog(!open);\r\n },\r\n },\r\n {\r\n actionName: 'delete',\r\n disabled: isRemoved,\r\n color: 'remove',\r\n title: isRemoved ? (\r\n \r\n ) : (\r\n 'Eliminar'\r\n ),\r\n clickHander: removeMemberByNum,\r\n },\r\n ]\r\n }\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default FiscalesMesa;\r\n","import { makeStyles } from '@material-ui/core/styles';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n searchContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n marginTop: 35,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n btnBack: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n btnSearch: {\r\n width: 150,\r\n height: 50,\r\n },\r\n btnActions: {\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n btnActionCancel: {\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n '&:hover, &:focus': {\r\n backgroundColor: '#DA2229 !important',\r\n color: '#fff !important',\r\n },\r\n },\r\n sectionTitle: {\r\n fontSize: '16px',\r\n marginTop: 10,\r\n marginBottom: 10,\r\n padding: 5,\r\n color: '#fff',\r\n borderRadius: 4,\r\n background: '#008945',\r\n },\r\n field: {\r\n border: 'solid thin #ccc',\r\n padding: 20,\r\n background: '#f1f1f1',\r\n },\r\n fieldFilled: {\r\n border: 'solid thin #ccc',\r\n padding: 20,\r\n background: '#f1f1f1',\r\n },\r\n fieldMin: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 20,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n },\r\n fieldMinFilled: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 10,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n },\r\n fieldTitle: { margin: 5, padding: 0 },\r\n frmText: {\r\n width: '100%',\r\n height: '38px',\r\n padding: 5,\r\n margin: 0,\r\n display: 'block',\r\n fontSize: '.9em',\r\n lineHeight: 38,\r\n borderColor: '#797979',\r\n borderStyle: 'solid',\r\n borderWidth: 1,\r\n borderRadius: 10,\r\n },\r\n frmIconButton: { marginLeft: 10 },\r\n btnSubmitting: {\r\n width: 104,\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n formError: {\r\n margin: '5px 0px 25px 0px',\r\n color: `#FF1101`,\r\n },\r\n}));\r\n\r\nexport default useStyles;\r\n","/* eslint-disable camelcase */\r\n/* eslint-disable no-unused-vars */\r\nimport React, { useState, useEffect } from 'react';\r\nimport * as Yup from 'yup';\r\nimport Lodash from 'lodash';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useJwt } from 'react-jwt';\r\nimport Container from '@material-ui/core/Container';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\n\r\nimport { Grid, Button, Divider } from '@material-ui/core';\r\nimport Alert from '@material-ui/lab/Alert';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\n\r\nimport { Formik, Field } from 'formik';\r\nimport {\r\n PlnInput,\r\n PlnDropdown,\r\n} from '../../Components/Input';\r\nimport PLNDialog from '../../Components/PLNDialog/PLNDialog';\r\n\r\nimport useStyles from './styles';\r\nimport { searchByCedula } from '../../Core/Api/padronApi';\r\nimport {\r\n getDistritoByTwo,\r\n useProvincias,\r\n getCantonsByProvince,\r\n} from '../../Core/Api/locationApi';\r\nimport fiscalesMesaApi from '../../Core/Api/fiscalesMesaApi';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Copyright from '../Copyright/Copyright';\r\nimport Storage from '../../Storage/Storage';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nconst AddFiscalMesa = () => {\r\n const classes = useStyles();\r\n const history = useHistory();\r\n const { data } = useProvincias();\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const tokenData = Storage.instance;\r\n const { decodedToken } = useJwt(tokenData.getToken());\r\n\r\n const defaultData = {\r\n primerApellido: '',\r\n segundoApellido: '',\r\n nombre: '',\r\n celular: '',\r\n email: '',\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n jrv: '',\r\n role: '',\r\n codProvincia: 0,\r\n codCanton: 0,\r\n };\r\n\r\n const [cantones, setCantones] = useState([\r\n { itemLabel: '- SELECCIONE EL CANTÓN-', value: 999 },\r\n ]);\r\n\r\n const [distritos, setDistritos] = useState([\r\n { itemLabel: '- SELECCIONE EL DISTRITO -', value: 999 },\r\n ]);\r\n\r\n const [jrv, setJRV] = useState([\r\n { itemLabel: '- Seleccione la JRV -', value: 999 },\r\n ]);\r\n\r\n const [roles, setRoles] = useState([\r\n { itemLabel: '- Seleccione un Puesto -', value: 999 },\r\n ]);\r\n\r\n const [initialValues] = useState({\r\n cedula: '',\r\n celular: '',\r\n email: '',\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n jrv: 999,\r\n role: 999,\r\n });\r\n\r\n const [sProvincia, setSProvincia] = useState(9);\r\n const [sCanton, setSCanton] = useState(999);\r\n // eslint-disable-next-line no-unused-vars\r\n const [sDistrito, setSDistrito] = useState(999);\r\n\r\n const provincias = Lodash.get(\r\n data,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n const setProvincia = p => {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n },\r\n ]);\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n setJRV([\r\n {\r\n itemLabel: '- Seleccione la JRV -',\r\n value: 999,\r\n },\r\n ]);\r\n initialValues.provincia = p;\r\n initialValues.canton = 999;\r\n initialValues.distrito = 999;\r\n if (p !== 9) {\r\n getCantonsByProvince(p).then(result => {\r\n if (result.status === 200) {\r\n const cantonsList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const clist = cantonsList.map(\r\n ({ cod_canton, des_nombre_c }) => {\r\n return {\r\n itemLabel: des_nombre_c,\r\n value: cod_canton,\r\n };\r\n },\r\n );\r\n clist.unshift({\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n });\r\n\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: p,\r\n }),\r\n );\r\n setCantones(clist);\r\n }\r\n });\r\n } else {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n const setCanton = c => {\r\n initialValues.distrito = 999;\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = c;\r\n\r\n setJRV([\r\n {\r\n itemLabel: '- Seleccione la JRV -',\r\n value: 999,\r\n },\r\n ]);\r\n\r\n if (c !== 999) {\r\n getDistritoByTwo(sProvincia.value, c).then(result => {\r\n if (result.status === 200) {\r\n const distritosList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const dlist = distritosList.map(\r\n ({ cod_distrito, des_nombre_d }) => {\r\n return {\r\n itemLabel: des_nombre_d,\r\n value: cod_distrito,\r\n };\r\n },\r\n );\r\n\r\n dlist.unshift({\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n });\r\n\r\n setSCanton(\r\n Lodash.find(cantones, {\r\n value: c,\r\n }),\r\n );\r\n\r\n setDistritos(dlist);\r\n }\r\n });\r\n } else {\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n const [searchBtnEnabled, setBtnSearch] = useState(false);\r\n const [searchBtnLabel, setBtnLabel] = useState('Buscar');\r\n\r\n const [showForm, setShowForm] = useState(false);\r\n const [isSaving, setIsSaving] = useState(false);\r\n const [open, setOpenDialog] = React.useState(false);\r\n\r\n const [memberId, setMemberId] = useState('');\r\n const [userLogged, setUser] = useState([]);\r\n const [memberInfo, setMemberInfo] = useState(defaultData);\r\n const [isNewMemberValid, setIsValidMember] = useState(\r\n true,\r\n );\r\n const [validMemberMsj, setMemberMsj] = useState('');\r\n\r\n const [open2, setOpenDialog2] = React.useState(false);\r\n const [msjDialog, setMsjDialog] = useState('');\r\n const handleClose = () => {\r\n setOpenDialog2(false);\r\n };\r\n\r\n /**\r\n * Get Distrits using Prov and Cant\r\n * @param {*} _provId\r\n * @param {*} _cantId\r\n */\r\n const getDistritos = async (_provId, _cantId) => {\r\n if (_provId && _cantId) {\r\n await getDistritoByTwo(_provId, _cantId).then(\r\n _res => {\r\n const listDistr = _res.data.response;\r\n\r\n if (listDistr instanceof Array) {\r\n const dlist = listDistr.map(\r\n ({ cod_distrito, des_nombre_d }) => {\r\n return {\r\n itemLabel: des_nombre_d,\r\n value: cod_distrito,\r\n };\r\n },\r\n );\r\n dlist.unshift({\r\n itemLabel: '- SELECCIONE EL DISTRITO -',\r\n value: 999,\r\n });\r\n\r\n setDistritos(dlist);\r\n }\r\n },\r\n );\r\n }\r\n };\r\n\r\n const getJRVSelected = _jrv => {\r\n const currentJRV = parseInt(_jrv, 10);\r\n\r\n if (currentJRV > 0 && currentJRV !== 999) {\r\n // setJRV(currentJRV);\r\n // console.log(currentJRV);\r\n }\r\n };\r\n\r\n const getRoleSelected = _codRole => {\r\n const currentRole = parseInt(_codRole, 10);\r\n\r\n if (currentRole > 0 && currentRole !== 999) {\r\n // setRoles(currentJRV);\r\n // console.log(currentRole);\r\n }\r\n };\r\n\r\n const getJRV = async _codDistr => {\r\n const currentDistr = parseInt(_codDistr, 10);\r\n setSDistrito(\r\n Lodash.find(distritos, {\r\n value: _codDistr,\r\n }),\r\n );\r\n\r\n if (currentDistr > 0 && currentDistr !== 999) {\r\n await fiscalesMesaApi\r\n .getJuntaReceptora(\r\n sProvincia.value,\r\n sCanton.value,\r\n currentDistr,\r\n )\r\n .then(_res => {\r\n const listJRV = _res.data.response;\r\n if (listJRV instanceof Array) {\r\n const jrvlist = listJRV.map(\r\n ({ num_jvirt, index }) => {\r\n return {\r\n itemLabel: `Nº ${num_jvirt}`,\r\n value: num_jvirt,\r\n };\r\n },\r\n );\r\n jrvlist.unshift({\r\n itemLabel: '- Seleccione la JRV -',\r\n value: 999,\r\n });\r\n\r\n setJRV(jrvlist);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const buildRolesDropdown = () => {\r\n if (Consts.puestosFiscalesMesa.length > 0) {\r\n const rolesList = Consts.puestosFiscalesMesa.map(\r\n ({ codigo, descripcion }) => {\r\n return {\r\n itemLabel: descripcion,\r\n value: codigo,\r\n };\r\n },\r\n );\r\n\r\n rolesList.unshift({\r\n itemLabel: '- Seleccione un Puesto -',\r\n value: 999,\r\n });\r\n\r\n setRoles(rolesList);\r\n }\r\n };\r\n\r\n /**\r\n * Search member info using ced\r\n */\r\n const getDataByCed = async _form => {\r\n const { cedula } = _form.values;\r\n\r\n if (cedula) {\r\n setMemberInfo(defaultData);\r\n setMemberId(cedula);\r\n setBtnSearch(true);\r\n setBtnLabel('Buscando...');\r\n setShowForm(false);\r\n\r\n const validateMemberResponse = await fiscalesMesaApi.validateFiscalOnAdd(\r\n cedula,\r\n );\r\n\r\n if (\r\n validateMemberResponse.status === 200 &&\r\n validateMemberResponse.data.response === 1\r\n ) {\r\n setIsValidMember(false);\r\n setMemberMsj(\r\n // eslint-disable-next-line max-len\r\n `Esta persona ya está registrada como ${validateMemberResponse.data.tRegistered} en la JRV Nº ${validateMemberResponse.data.nMesa}, favor corregir`,\r\n );\r\n } else {\r\n setIsValidMember(true);\r\n setMemberMsj(``);\r\n await searchByCedula(cedula).then(_response => {\r\n const info = _response.data.response;\r\n\r\n if (info instanceof Array) {\r\n setShowForm(true);\r\n setMemberInfo({\r\n primerApellido: info[0].des_apell1,\r\n segundoApellido: info[0].des_apell2,\r\n nombre: info[0].des_nombre,\r\n celular: info[0].tel_celu || '',\r\n email: info[0].des_email || '',\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n jrv: info[0].num_jvirt,\r\n role: '',\r\n codProvincia: info[0].cod_prov,\r\n codCanton: info[0].cod_cant,\r\n });\r\n\r\n _form.setFieldValue(\r\n 'celular',\r\n info[0].tel_celu || '',\r\n );\r\n\r\n _form.setFieldValue(\r\n 'email',\r\n info[0].des_email || '',\r\n );\r\n\r\n _form.setFieldValue('provincia', 9);\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: 9,\r\n }),\r\n );\r\n\r\n _form.setFieldValue('canton', 999);\r\n\r\n setSCanton(\r\n Lodash.find(cantones, {\r\n value: 999,\r\n }),\r\n );\r\n } else {\r\n setShowForm(false);\r\n }\r\n });\r\n }\r\n\r\n setBtnSearch(false);\r\n setBtnLabel('Buscar');\r\n }\r\n };\r\n\r\n /**\r\n * Save Member\r\n * @param {*} values\r\n */\r\n const saveMember = values => {\r\n setIsSaving(true);\r\n\r\n const memberData = {\r\n cod_provincia: parseInt(values.provincia, 10),\r\n cod_canton: parseInt(values.canton, 10),\r\n cod_distrito: parseInt(values.distrito, 10),\r\n cod_mesa: parseInt(values.jrv, 10),\r\n num_cedula: parseInt(values.cedula, 10),\r\n cod_puesto: values.role,\r\n des_usuario: parseInt(userLogged.num_cedula, 10),\r\n fec_digitado: null,\r\n cod_periodo: null,\r\n };\r\n\r\n const userData = {\r\n codUsuario: userLogged.num_cedula,\r\n };\r\n\r\n const phoneData = {\r\n tel_celu: values.celular,\r\n };\r\n\r\n const emailData = {\r\n des_email: values.email,\r\n };\r\n\r\n const dataSet = {\r\n miembro: memberData,\r\n usuario: userData,\r\n telefonos: phoneData,\r\n emails: emailData,\r\n isUpdate: 0,\r\n };\r\n\r\n const jrvVal = parseInt(values.jrv, 10);\r\n const puesto = values.role;\r\n const cedUser = parseInt(userLogged.num_cedula, 10);\r\n\r\n fiscalesMesaApi\r\n .submitFiscalMesa(dataSet)\r\n .then(_response => {\r\n setIsSaving(false);\r\n\r\n if (\r\n _response.status === 200 &&\r\n _response.data.response === 1\r\n ) {\r\n setOpenDialog(true);\r\n } else {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n 'No se pudo completar la operacion, vuelva a intentar',\r\n );\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (decodedToken !== null) {\r\n setUser(decodedToken);\r\n }\r\n\r\n buildRolesDropdown();\r\n }, [decodedToken]);\r\n\r\n /**\r\n * Form validations\r\n * @param {*} values\r\n */\r\n const formikValidate = values => {\r\n const errors = {};\r\n // eslint-disable-next-line no-shadow\r\n const { celular, email, distrito, jrv, role } = values;\r\n\r\n if (!celular) {\r\n errors.celular = 'Requerido';\r\n } else if (!/^[0-9]{8}$/.test(celular)) {\r\n errors.celular = 'Ejemplo de formato: xxxxxxxx.';\r\n }\r\n\r\n if (!email) {\r\n errors.email = 'Requerido';\r\n } else if (\r\n !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(\r\n email,\r\n )\r\n ) {\r\n errors.email = 'Email inválido';\r\n }\r\n\r\n if (distrito === 999) {\r\n errors.distrito = 'Seleccione un distrito';\r\n }\r\n\r\n if (jrv === 999) {\r\n errors.jrv = 'Seleccione la Junta Receptora';\r\n }\r\n\r\n if (role === 999) {\r\n errors.role = 'Seleccione un puesto';\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n const closeDialogHandler = () => {\r\n history.push('/fiscales-mesa');\r\n setOpenDialog(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Nuevo Registro de Fiscal de Mesa\r\n {\r\n history.push('/fiscales-mesa');\r\n }}\r\n >\r\n Regresar\r\n \r\n \r\n \r\n {formik => (\r\n \r\n \r\n \r\n

# Cédula:

\r\n \r\n
\r\n \r\n {\r\n await getDataByCed(formik);\r\n }}\r\n >\r\n {searchBtnLabel}\r\n \r\n
\r\n
\r\n \r\n \r\n {!isNewMemberValid ? (\r\n
\r\n \r\n {validMemberMsj}\r\n \r\n
\r\n ) : null}\r\n
\r\n
\r\n \r\n {showForm ? (\r\n <>\r\n \r\n \r\n \r\n 1er. Apellido\r\n \r\n \r\n {memberInfo.primerApellido}\r\n \r\n \r\n \r\n \r\n 2do. Apellido\r\n \r\n \r\n {memberInfo.segundoApellido}\r\n \r\n \r\n \r\n \r\n Nombre\r\n \r\n \r\n {memberInfo.nombre}\r\n \r\n \r\n
\r\n \r\n \r\n

# Celular:

\r\n \r\n {formik.errors.celular &&\r\n formik.touched.celular ? (\r\n \r\n \r\n {formik.errors.celular}\r\n \r\n \r\n ) : null}\r\n
\r\n \r\n

Correo Principal:

\r\n \r\n {formik.errors.email &&\r\n formik.touched.email ? (\r\n \r\n \r\n {formik.errors.email}\r\n \r\n \r\n ) : null}\r\n
\r\n
\r\n \r\n \r\n \r\n Provincia\r\n \r\n
\r\n {\r\n setProvincia(provincia);\r\n formik.setFieldValue(\r\n 'canton',\r\n 999,\r\n );\r\n formik.setFieldValue(\r\n 'distrito',\r\n 999,\r\n );\r\n }}\r\n />\r\n {formik.errors.distrito &&\r\n formik.touched.distrito ? (\r\n \r\n \r\n {formik.errors.distrito}\r\n \r\n
\r\n ) : null}\r\n \r\n
\r\n \r\n \r\n Cantón\r\n \r\n
\r\n {\r\n setCanton(canton);\r\n formik.setFieldValue(\r\n 'distrito',\r\n 999,\r\n );\r\n }}\r\n />\r\n
\r\n
\r\n \r\n \r\n Distrito\r\n \r\n
\r\n {\r\n getJRV(dist);\r\n }}\r\n />\r\n {formik.errors.distrito &&\r\n formik.touched.distrito ? (\r\n \r\n \r\n {formik.errors.distrito}\r\n \r\n
\r\n ) : null}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n JRV\r\n \r\n \r\n getJRVSelected(jrvItem)\r\n }\r\n />\r\n {formik.errors.jrv &&\r\n formik.touched.jrv ? (\r\n \r\n \r\n {formik.errors.jrv}\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n Puesto\r\n \r\n \r\n getRoleSelected(role)\r\n }\r\n />\r\n {formik.errors.role &&\r\n formik.touched.role ? (\r\n \r\n \r\n {formik.errors.role}\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n {isSaving ? (\r\n \r\n ) : (\r\n <>\r\n Guardar\r\n \r\n \r\n )}\r\n \r\n {\r\n history.push(\r\n '/fiscales-mesa',\r\n );\r\n }}\r\n >\r\n Cancelar\r\n \r\n \r\n \r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n )}\r\n \r\n {}}\r\n title=\"Mensaje\"\r\n bodymessage=\"Información guardada correctamente.\"\r\n buttons={[\r\n {\r\n actionName: 'close',\r\n color: 'simple',\r\n title: 'Entendido',\r\n clickHander: closeDialogHandler,\r\n },\r\n ]}\r\n />\r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Entendido\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default AddFiscalMesa;\r\n","/* eslint-disable no-shadow */\r\n/* eslint-disable camelcase */\r\n/* eslint-disable no-unused-vars */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport * as Yup from 'yup';\r\nimport Lodash from 'lodash';\r\nimport { useJwt } from 'react-jwt';\r\nimport Container from '@material-ui/core/Container';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\n\r\nimport { Grid, Button, Divider } from '@material-ui/core';\r\nimport Alert from '@material-ui/lab/Alert';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\n\r\nimport { Formik, Field } from 'formik';\r\nimport {\r\n PlnInput,\r\n PlnDropdown,\r\n} from '../../Components/Input';\r\nimport PLNDialog from '../../Components/PLNDialog/PLNDialog';\r\nimport Loading from '../../Components/Loading/Loading';\r\n\r\nimport useStyles from './styles';\r\nimport {\r\n getDistritoByTwo,\r\n useProvincias,\r\n getCantonsByProvince,\r\n getProvinces,\r\n} from '../../Core/Api/locationApi';\r\nimport fiscalesMesaApi from '../../Core/Api/fiscalesMesaApi';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Copyright from '../Copyright/Copyright';\r\nimport Storage from '../../Storage/Storage';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nconst EditFiscalMesa = () => {\r\n const classes = useStyles();\r\n const history = useHistory();\r\n const { id } = useParams();\r\n const { data } = useProvincias();\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const tokenData = Storage.instance;\r\n const { decodedToken } = useJwt(tokenData.getToken());\r\n\r\n const defaultData = {\r\n primerApellido: '',\r\n segundoApellido: '',\r\n nombre: '',\r\n celular: '',\r\n email: '',\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n jrv: '',\r\n role: '',\r\n codProvincia: 0,\r\n codCanton: 0,\r\n };\r\n\r\n const [distritos, setDistritos] = useState([\r\n { itemLabel: '- Seleccione un Distrito -', value: 999 },\r\n ]);\r\n\r\n const [jrv, setJRV] = useState([\r\n { itemLabel: '- Seleccione la JRV -', value: 999 },\r\n ]);\r\n\r\n const [roles, setRoles] = useState([\r\n { itemLabel: '- Seleccione un Puesto -', value: 999 },\r\n ]);\r\n\r\n const [initialValues] = useState({\r\n cedula: '',\r\n celular: '',\r\n email: '',\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n jrv: 999,\r\n role: 999,\r\n });\r\n\r\n const [showForm, setShowForm] = useState(true);\r\n const [isSaving, setIsSaving] = useState(false);\r\n const [isLoadingData, setLoading] = useState(true);\r\n const [open, setOpenDialog] = React.useState(false);\r\n\r\n const [memberId, setMemberId] = useState('');\r\n const [userLogged, setUser] = useState([]);\r\n const [memberInfo, setMemberInfo] = useState(defaultData);\r\n\r\n const [open2, setOpenDialog2] = React.useState(false);\r\n const [msjDialog, setMsjDialog] = useState('');\r\n const handleClose = () => {\r\n setOpenDialog2(false);\r\n };\r\n\r\n const [cantones, setCantones] = useState([\r\n { itemLabel: '- SELECCIONE EL CANTÓN-', value: 999 },\r\n ]);\r\n\r\n const [sProvincia, setSProvincia] = useState(9);\r\n const [sCanton, setSCanton] = useState(999);\r\n // eslint-disable-next-line no-unused-vars\r\n const [sDistrito, setSDistrito] = useState(999);\r\n const provincias = Lodash.get(\r\n data,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n const setProvincia = p => {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n },\r\n ]);\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n setJRV([\r\n {\r\n itemLabel: '- Seleccione la JRV-',\r\n value: 999,\r\n },\r\n ]);\r\n initialValues.provincia = p;\r\n initialValues.canton = 999;\r\n initialValues.distrito = 999;\r\n if (p !== 9) {\r\n getCantonsByProvince(p).then(result => {\r\n if (result.status === 200) {\r\n const cantonsList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const clist = cantonsList.map(\r\n ({ cod_canton, des_nombre_c }) => {\r\n return {\r\n itemLabel: des_nombre_c,\r\n value: cod_canton,\r\n };\r\n },\r\n );\r\n clist.unshift({\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n });\r\n\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: p,\r\n }),\r\n );\r\n setCantones(clist);\r\n }\r\n });\r\n } else {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n const setCanton = c => {\r\n setJRV([\r\n {\r\n itemLabel: '- Seleccione la JRV-',\r\n value: 999,\r\n },\r\n ]);\r\n initialValues.distrito = 999;\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = c;\r\n\r\n if (c !== 999) {\r\n getDistritoByTwo(sProvincia.value, c).then(result => {\r\n if (result.status === 200) {\r\n const distritosList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const dlist = distritosList.map(\r\n ({ cod_distrito, des_nombre_d }) => {\r\n return {\r\n itemLabel: des_nombre_d,\r\n value: cod_distrito,\r\n };\r\n },\r\n );\r\n\r\n dlist.unshift({\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n });\r\n\r\n setSCanton(\r\n Lodash.find(cantones, {\r\n value: c,\r\n }),\r\n );\r\n\r\n setDistritos(dlist);\r\n }\r\n });\r\n } else {\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n /**\r\n * Get Distrits using Prov and Cant\r\n * @param {*} _provId\r\n * @param {*} _cantId\r\n */\r\n const getDistritos = async (_provId, _cantId) => {\r\n if (_provId && _cantId) {\r\n await getDistritoByTwo(_provId, _cantId).then(\r\n _res => {\r\n const listDistr = _res.data.response;\r\n\r\n if (listDistr instanceof Array) {\r\n const dlist = listDistr.map(\r\n ({ cod_distrito, des_nombre_d }) => {\r\n return {\r\n itemLabel: des_nombre_d,\r\n value: cod_distrito,\r\n };\r\n },\r\n );\r\n dlist.unshift({\r\n itemLabel: '- SELECCIONE EL DISTRITO -',\r\n value: 999,\r\n });\r\n\r\n setDistritos(dlist);\r\n }\r\n },\r\n );\r\n }\r\n };\r\n\r\n const getJRVSelected = _jrv => {\r\n const currentJRV = parseInt(_jrv, 10);\r\n\r\n if (currentJRV > 0 && currentJRV !== 999) {\r\n // setJRV(currentJRV);\r\n // console.log(currentJRV);\r\n }\r\n };\r\n\r\n const getRoleSelected = _codRole => {\r\n const currentRole = parseInt(_codRole, 10);\r\n\r\n if (currentRole > 0 && currentRole !== 999) {\r\n // setRoles(currentJRV);\r\n // console.log(currentRole);\r\n }\r\n };\r\n\r\n const getJRV = async _codDistr => {\r\n setJRV([\r\n {\r\n itemLabel: '- Seleccione la JRV-',\r\n value: 999,\r\n },\r\n ]);\r\n const currentDistr = parseInt(_codDistr, 10);\r\n if (currentDistr > 0 && currentDistr !== 999) {\r\n await fiscalesMesaApi\r\n .getJuntaReceptora(\r\n sProvincia.value,\r\n sCanton.value,\r\n currentDistr,\r\n )\r\n .then(_res => {\r\n const listJRV = _res.data.response;\r\n if (listJRV instanceof Array) {\r\n const jrvlist = listJRV.map(\r\n ({ num_jvirt, index }) => {\r\n return {\r\n itemLabel: `Nº ${num_jvirt}`,\r\n value: num_jvirt,\r\n };\r\n },\r\n );\r\n jrvlist.unshift({\r\n itemLabel: '- Seleccione la JRV -',\r\n value: 999,\r\n });\r\n\r\n setJRV(jrvlist);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const buildRolesDropdown = () => {\r\n if (Consts.puestosFiscalesMesa.length > 0) {\r\n const rolesList = Consts.puestosFiscalesMesa.map(\r\n ({ codigo, descripcion }) => {\r\n return {\r\n itemLabel: descripcion,\r\n value: codigo,\r\n };\r\n },\r\n );\r\n\r\n rolesList.unshift({\r\n itemLabel: '- Seleccione un Puesto -',\r\n value: 999,\r\n });\r\n\r\n setRoles(rolesList);\r\n }\r\n };\r\n\r\n /**\r\n * Save Member\r\n * @param {*} values\r\n */\r\n const saveMember = values => {\r\n setIsSaving(true);\r\n\r\n const memberData = {\r\n cod_provincia: parseInt(values.provincia, 10),\r\n cod_canton: parseInt(values.canton, 10),\r\n cod_distrito: parseInt(values.distrito, 10),\r\n cod_mesa: parseInt(values.jrv, 10),\r\n num_cedula: parseInt(values.cedula, 10),\r\n cod_puesto: values.role,\r\n num_linea: parseInt(id, 10),\r\n des_usuario: parseInt(userLogged.num_cedula, 10),\r\n fec_digitado: null,\r\n cod_periodo: null,\r\n };\r\n\r\n const userData = {\r\n codUsuario: userLogged.num_cedula,\r\n };\r\n\r\n const phoneData = {\r\n tel_celu: values.celular,\r\n };\r\n\r\n const emailData = {\r\n des_email: values.email,\r\n };\r\n\r\n const dataSet = {\r\n miembro: memberData,\r\n usuario: userData,\r\n telefonos: phoneData,\r\n emails: emailData,\r\n isUpdate: 1,\r\n };\r\n\r\n const jrvVal = parseInt(values.jrv, 10);\r\n const puesto = values.role;\r\n const cedUser = parseInt(userLogged.num_cedula, 10);\r\n\r\n fiscalesMesaApi\r\n .submitFiscalMesa(dataSet)\r\n .then(_response => {\r\n if (\r\n _response.status === 200 &&\r\n _response.data.response === 1\r\n ) {\r\n setIsSaving(false);\r\n setOpenDialog(true);\r\n } else {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n 'No se pudo completar la operacion, vuelva a intentar',\r\n );\r\n }\r\n });\r\n };\r\n\r\n const loadMemberDetails = async _numLine => {\r\n try {\r\n let dataSet = {};\r\n if (_numLine) {\r\n const info = await fiscalesMesaApi.getFiscalInfoByLinea(\r\n _numLine,\r\n );\r\n const data = info.data.response;\r\n\r\n if (data instanceof Array && info.status === 200) {\r\n dataSet = {\r\n primerApellido: data[0].des_apell1,\r\n segundoApellido: data[0].des_apell2,\r\n nombre: data[0].des_nombre,\r\n celular: data[0].tel_celu || '',\r\n email: data[0].des_email || '',\r\n provincia: data[0].cod_provincia,\r\n canton: data[0].cod_canton,\r\n distrito: data[0].cod_distrito,\r\n jrv: data[0].cod_mesa,\r\n role: data[0].cod_puesto,\r\n codProvincia: data[0].cod_provincia,\r\n codCanton: data[0].cod_canton,\r\n cedula: data[0].num_cedula,\r\n };\r\n const listProvincias = await getProvinces();\r\n const provincias = Lodash.get(\r\n listProvincias,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: data[0].cod_provincia,\r\n }),\r\n );\r\n\r\n getCantonsByProvince(data[0].cod_provincia).then(\r\n result => {\r\n if (result.status === 200) {\r\n const cantonsList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const clist = cantonsList.map(\r\n ({ cod_canton, des_nombre_c }) => {\r\n return {\r\n itemLabel: des_nombre_c,\r\n value: cod_canton,\r\n };\r\n },\r\n );\r\n clist.unshift({\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n });\r\n\r\n setCantones(clist);\r\n\r\n setSCanton(\r\n Lodash.find(clist, {\r\n value: data[0].cod_canton,\r\n }),\r\n );\r\n }\r\n },\r\n );\r\n\r\n await fiscalesMesaApi\r\n .getJuntaReceptora(\r\n data[0].cod_provincia,\r\n data[0].cod_canton,\r\n data[0].cod_distrito,\r\n )\r\n .then(_res => {\r\n const listJRV = _res.data.response;\r\n if (listJRV instanceof Array) {\r\n const jrvlist = listJRV.map(\r\n ({ num_jvirt, index }) => {\r\n return {\r\n itemLabel: `Nº ${num_jvirt}`,\r\n value: num_jvirt,\r\n };\r\n },\r\n );\r\n jrvlist.unshift({\r\n itemLabel: '- Seleccione la JRV -',\r\n value: 999,\r\n });\r\n\r\n setJRV(jrvlist);\r\n }\r\n });\r\n } else {\r\n dataSet = defaultData;\r\n }\r\n } else {\r\n dataSet = defaultData;\r\n }\r\n\r\n setMemberInfo(dataSet);\r\n setLoading(false);\r\n } catch (error) {\r\n // eslint-disable-next-line no-console\r\n console.warn(error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n async function fetchAPI() {\r\n const currentNumLinea = parseInt(id, 10);\r\n\r\n // eslint-disable-next-line no-restricted-globals\r\n if (currentNumLinea === 0 || isNaN(currentNumLinea)) {\r\n history.push('/fiscales-mesa');\r\n }\r\n\r\n setLoading(true);\r\n\r\n await loadMemberDetails(currentNumLinea);\r\n }\r\n\r\n fetchAPI();\r\n }, []);\r\n\r\n useEffect(() => {\r\n getDistritos(\r\n memberInfo.codProvincia,\r\n memberInfo.codCanton,\r\n );\r\n // getJRV(memberInfo.distrito);\r\n buildRolesDropdown();\r\n setUser(decodedToken);\r\n }, [memberInfo]);\r\n\r\n /**\r\n * Form validations\r\n * @param {*} values\r\n */\r\n const formikValidate = values => {\r\n const errors = {};\r\n // eslint-disable-next-line no-shadow\r\n const { celular, email, distrito, jrv, role } = values;\r\n\r\n if (!celular) {\r\n errors.celular = 'Requerido';\r\n } else if (!/^[0-9]{8}$/.test(celular)) {\r\n errors.celular = 'Ejemplo de formato: xxxxxxxx.';\r\n }\r\n\r\n if (!email) {\r\n errors.email = 'Requerido';\r\n } else if (\r\n !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(\r\n email,\r\n )\r\n ) {\r\n errors.email = 'Email inválido';\r\n }\r\n\r\n if (distrito === 999) {\r\n errors.distrito = 'Seleccione un distrito';\r\n }\r\n\r\n if (jrv === 999) {\r\n errors.jrv = 'Seleccione la Junta Receptora';\r\n }\r\n\r\n if (role === 999) {\r\n errors.role = 'Seleccione un puesto';\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n const closeDialogHandler = () => {\r\n history.push('/fiscales-mesa');\r\n setOpenDialog(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Editar Fiscal de Mesa\r\n {\r\n history.push('/fiscales-mesa');\r\n }}\r\n >\r\n Regresar\r\n \r\n \r\n {!isLoadingData ? (\r\n \r\n {formik => {\r\n return (\r\n \r\n \r\n \r\n

\r\n # Cédula: {memberInfo.cedula}\r\n

\r\n
\r\n
\r\n \r\n {showForm ? (\r\n <>\r\n \r\n \r\n \r\n 1er. Apellido\r\n \r\n \r\n {memberInfo.primerApellido}\r\n \r\n \r\n \r\n \r\n 2do. Apellido\r\n \r\n \r\n {memberInfo.segundoApellido}\r\n \r\n \r\n \r\n \r\n Nombre\r\n \r\n \r\n {memberInfo.nombre}\r\n \r\n \r\n
\r\n \r\n \r\n

# Celular:

\r\n \r\n {formik.errors.celular &&\r\n formik.touched.celular ? (\r\n \r\n \r\n {formik.errors.celular}\r\n \r\n \r\n ) : null}\r\n
\r\n \r\n

Correo Principal:

\r\n \r\n {formik.errors.email &&\r\n formik.touched.email ? (\r\n \r\n \r\n {formik.errors.email}\r\n \r\n \r\n ) : null}\r\n
\r\n
\r\n \r\n \r\n \r\n Provincia\r\n \r\n
\r\n {\r\n setProvincia(provincia);\r\n formik.setFieldValue(\r\n 'canton',\r\n 999,\r\n );\r\n formik.setFieldValue(\r\n 'distrito',\r\n 999,\r\n );\r\n }}\r\n />\r\n {formik.errors.distrito &&\r\n formik.touched.distrito ? (\r\n \r\n \r\n {\r\n formik.errors\r\n .distrito\r\n }\r\n \r\n
\r\n ) : null}\r\n \r\n
\r\n \r\n \r\n Cantón\r\n \r\n
\r\n {\r\n setCanton(canton);\r\n formik.setFieldValue(\r\n 'distrito',\r\n 999,\r\n );\r\n }}\r\n />\r\n
\r\n
\r\n \r\n \r\n Distrito\r\n \r\n
\r\n {\r\n getJRV(dist);\r\n }}\r\n />\r\n {formik.errors.distrito &&\r\n formik.touched.distrito ? (\r\n \r\n \r\n {\r\n formik.errors\r\n .distrito\r\n }\r\n \r\n
\r\n ) : null}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n JRV\r\n \r\n \r\n getJRVSelected(jrvItem)\r\n }\r\n />\r\n {formik.errors.jrv &&\r\n formik.touched.jrv ? (\r\n \r\n \r\n {formik.errors.jrv}\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n Puesto\r\n \r\n \r\n getRoleSelected(role)\r\n }\r\n />\r\n {formik.errors.role &&\r\n formik.touched.role ? (\r\n \r\n \r\n {formik.errors.role}\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n {isSaving ? (\r\n \r\n ) : (\r\n <>\r\n Actualizar\r\n \r\n \r\n )}\r\n \r\n {\r\n history.push(\r\n '/fiscales-mesa',\r\n );\r\n }}\r\n >\r\n Cancelar\r\n \r\n \r\n
\r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n );\r\n }}\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Entendido\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default EditFiscalMesa;\r\n","function createData(\r\n provincia,\r\n canton,\r\n distrito,\r\n jrv,\r\n puesto,\r\n cedula,\r\n primerApellido,\r\n segundoApellido,\r\n nombre,\r\n id,\r\n) {\r\n return {\r\n provincia,\r\n canton,\r\n distrito,\r\n jrv,\r\n puesto,\r\n cedula,\r\n primerApellido,\r\n segundoApellido,\r\n nombre,\r\n id,\r\n };\r\n}\r\n\r\nexport const tableHeaders = [\r\n {\r\n name: 'Provincia',\r\n },\r\n {\r\n name: 'Cantón',\r\n },\r\n {\r\n name: 'Distrito Electoral',\r\n },\r\n {\r\n name: 'JRV',\r\n },\r\n {\r\n name: 'Puesto',\r\n },\r\n {\r\n name: 'Cédula',\r\n },\r\n {\r\n name: '1er. Apellido',\r\n },\r\n {\r\n name: '2do. Apellido',\r\n },\r\n {\r\n name: 'Nombre',\r\n },\r\n];\r\n\r\nexport const dataRows = [\r\n createData(\r\n 'HEREDIA',\r\n 'BARVA',\r\n 'SAN PABLO',\r\n '1453',\r\n 'M.SUPLENTE',\r\n '401920238',\r\n 'RAMIREZ',\r\n 'RUIZ',\r\n 'ESTEBAN',\r\n 5334,\r\n ),\r\n createData(\r\n 'HEREDIA',\r\n 'SAN PABLO',\r\n 'SABANILLA',\r\n '1454',\r\n 'M.PROPIETARIO',\r\n '401940767',\r\n 'ZUNIGA',\r\n 'RUIZ',\r\n 'JOSE',\r\n 5326,\r\n ),\r\n];\r\n","import axios from 'axios';\r\n\r\nconst axiosInstance = axios.create({\r\n baseURL: process.env.REACT_APP_API_BASE_URL,\r\n responseType: 'json',\r\n});\r\n\r\nconst getJRVByDistrit = (_ced, _cant, _codDistrital) => {\r\n return axiosInstance.get(\r\n `fiscalesGenerales/getJuntas/${_ced}/${_cant}/${_codDistrital}`,\r\n );\r\n};\r\n\r\nconst saveFiscalGeneral = _info => {\r\n return axiosInstance.post('fiscalesGenerales/', _info);\r\n};\r\n\r\nconst geFiscalGeneralByNumLinea = _linea => {\r\n return axiosInstance.get(\r\n `fiscalesGenerales/find/${_linea}`,\r\n );\r\n};\r\n\r\nconst getFiscalesGenerales = _ced => {\r\n return axiosInstance.get(\r\n `fiscalesGenerales/allByGestor/${_ced}`,\r\n );\r\n};\r\n\r\nconst getFiscalesGeneralesFiltered = (\r\n _ced,\r\n _codProvincia,\r\n _codCanton,\r\n _codDistrito,\r\n _nJrv,\r\n) => {\r\n return axiosInstance.get(\r\n // eslint-disable-next-line max-len\r\n `fiscalesGenerales/allByGestorFiltered/${_ced}/${_codProvincia}/${_codCanton}/${_codDistrito}/${_nJrv}`,\r\n );\r\n};\r\n\r\nconst validateFiscalGOnAdd = _ced => {\r\n return axiosInstance.get(\r\n `fiscalesGenerales/validateCedula/${_ced}`,\r\n );\r\n};\r\n\r\nconst deleteMember = _numLinea => {\r\n return axiosInstance.get(\r\n `fiscalesGenerales/removeMember/${_numLinea}`,\r\n );\r\n};\r\n\r\nconst validateNumFiscales = (\r\n _codProvincia,\r\n _codCanton,\r\n _codDistrito,\r\n _userLogged,\r\n) => {\r\n return axiosInstance.get(\r\n // eslint-disable-next-line max-len\r\n `fiscalesGenerales/validateNumFiscales/${_codProvincia}/${_codCanton}/${_codDistrito}/${_userLogged}`,\r\n );\r\n};\r\n\r\nexport default {\r\n getJuntaReceptora: getJRVByDistrit,\r\n getAllFiscalesGenerales: getFiscalesGenerales,\r\n getAllFiscalesGeneralesFiltered: getFiscalesGeneralesFiltered,\r\n getFiscalGeneralByLinea: geFiscalGeneralByNumLinea,\r\n submitFiscalGeneral: saveFiscalGeneral,\r\n validateFiscalGOnAdd,\r\n deleteMember,\r\n validateNumFiscales,\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { useJwt } from 'react-jwt';\r\n\r\nimport DeleteSharpIcon from '@material-ui/icons/DeleteSharp';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport { tableHeaders } from './data';\r\nimport MacroList from '../MacroList/MacroList';\r\nimport Filters from '../../Components/Filters/RegistrosElectFilter';\r\nimport PLNDialog from '../../Components/PLNDialog/PLNDialog';\r\n\r\nimport Storage from '../../Storage/Storage';\r\nimport fiscalesGeneralesApi from '../../Core/Api/fiscalesGeneralesApi';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n btnAdd: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n actionContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n}));\r\n\r\nconst FiscalesGenerales = () => {\r\n const classes = useStyles();\r\n const history = useHistory();\r\n const tokenStorage = Storage.instance;\r\n // const filteredItems = [];\r\n\r\n const { decodedToken } = useJwt(tokenStorage.getToken());\r\n\r\n const [items, setItems] = useState([]);\r\n const [filteredItems, setFilteredItems] = useState([]); // used for filtering\r\n // eslint-disable-next-line no-unused-vars\r\n const [isBeingFiltered, setIsBeingFiltered] = useState(\r\n false,\r\n );\r\n const [isDataEmpty, setDataEmpty] = useState(true);\r\n const [filters, setFilters] = useState({\r\n provincia: '',\r\n canton: '',\r\n distrito: '',\r\n cedula: '',\r\n primerApellido: '',\r\n segundoApellido: '',\r\n nombre: '',\r\n });\r\n const [open, setOpenDialog] = React.useState(false);\r\n const [dataRemove, setDataRemove] = React.useState(null);\r\n const [isRemoved, setIsRemoved] = useState(false); // used on remove modal\r\n const [removedMsj, setRemoveMsj] = useState(\r\n 'El registro se eliminará permanentemente. ¿Desea proceder?',\r\n );\r\n const [hiddenBtn, setHiddenBtn] = useState(false);\r\n\r\n const getFilterKeys = Object.getOwnPropertyNames(filters);\r\n const TIMING_ON_SEARCH = 900;\r\n\r\n /**\r\n * Filter Items\r\n */\r\n const applyFilters = async () => {\r\n const activeFilters = getFilterKeys.filter(\r\n filter => filters[filter] !== '',\r\n );\r\n\r\n setDataEmpty(true);\r\n\r\n if (activeFilters.length > 0) {\r\n // FITLRO FUNCIONAL CON UN INPUT: nombre (DO NOT REMOVED YET)\r\n /* const result = filteredItems.filter(_item => {\r\n let currentFilter = _item.nombre;\r\n if (typeof currentFilter === 'number')\r\n currentFilter = currentFilter.toString();\r\n\r\n return currentFilter\r\n .toLowerCase()\r\n .includes(filters.nombre.toLowerCase());\r\n });\r\n\r\n setDataEmpty(!result.length > 0);\r\n\r\n if (result.length > 0) setFilteredItems(result); */\r\n\r\n const dataFiltered = activeFilters.map(myFilter => {\r\n const result = items.filter(_item => {\r\n let currentFilter = _item[myFilter];\r\n if (typeof currentFilter === 'number')\r\n currentFilter = currentFilter.toString();\r\n\r\n return currentFilter\r\n .toLowerCase()\r\n .includes(filters[myFilter].toLowerCase());\r\n });\r\n\r\n setDataEmpty(!result.length > 0);\r\n if (result.length > 0) setFilteredItems(result);\r\n // console.log(result);\r\n return result;\r\n });\r\n\r\n // console.log(dataFiltered);\r\n } else {\r\n setFilteredItems(items);\r\n setDataEmpty(false);\r\n }\r\n };\r\n\r\n /**\r\n * Get Members when the page loads\r\n */\r\n const getAllMembers = async () => {\r\n let itemsList = [];\r\n\r\n setDataEmpty(false);\r\n\r\n try {\r\n if (decodedToken) {\r\n const info = await fiscalesGeneralesApi.getAllFiscalesGenerales(\r\n decodedToken.num_cedula,\r\n );\r\n\r\n const data = info.data.response;\r\n\r\n if (data instanceof Array && info.status === 200) {\r\n itemsList = data.map(member => {\r\n return {\r\n provincia: member.des_nombre_p,\r\n canton: member.des_nombre_c,\r\n distrito: member.des_nombre_d,\r\n jrv: member.cod_mesa,\r\n puesto: member.des_puesto,\r\n cedula: member.num_cedula,\r\n primerApellido: member.des_apell1,\r\n segundoApellido: member.des_apell2,\r\n nombre: member.des_nombre,\r\n id: member.num_linea,\r\n };\r\n });\r\n }\r\n }\r\n } catch (error) {\r\n console.warn(error);\r\n }\r\n\r\n setDataEmpty(itemsList.length === 0);\r\n setItems(itemsList);\r\n setFilteredItems(itemsList);\r\n };\r\n\r\n /**\r\n * Remove a member selected by user\r\n */\r\n const removeMemberByNum = async () => {\r\n const numLinea = dataRemove.id;\r\n\r\n if (numLinea && numLinea > 0) {\r\n setIsRemoved(true);\r\n\r\n await fiscalesGeneralesApi\r\n .deleteMember(numLinea)\r\n .then(_response => {\r\n const info = _response.data.response;\r\n\r\n if (info === 1 && _response.status === 200) {\r\n setIsRemoved(false);\r\n setHiddenBtn(true);\r\n setRemoveMsj(\r\n 'Fiscal General eliminado correctamente.',\r\n );\r\n setTimeout(() => {\r\n setOpenDialog(false);\r\n window.location.href = '/fiscales-generales/';\r\n }, 3000);\r\n } else {\r\n setHiddenBtn(false);\r\n setRemoveMsj(\r\n 'La operación no se pudo completar. Intente de nuevo.',\r\n );\r\n }\r\n });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n async function fetchListAPI() {\r\n await getAllMembers();\r\n }\r\n\r\n fetchListAPI();\r\n }, [decodedToken]);\r\n\r\n useEffect(() => {\r\n async function proceedFilters() {\r\n await applyFilters();\r\n }\r\n\r\n const timeoutId = setTimeout(() => {\r\n if (filteredItems.length > 0) proceedFilters();\r\n }, TIMING_ON_SEARCH);\r\n return () => clearTimeout(timeoutId);\r\n }, [filters]);\r\n\r\n /**\r\n * List all filters required on the page list\r\n */\r\n const listFilters = () => {\r\n return [\r\n {\r\n label: 'Provincia:',\r\n action: async ev => {\r\n const updatedValue = {\r\n provincia: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.provincia,\r\n inputId: 'filter-provincia',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: 'Cantón:',\r\n action: async ev => {\r\n const updatedValue = {\r\n canton: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.canton,\r\n inputId: 'filter-canton',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: 'Distrito:',\r\n action: async ev => {\r\n const updatedValue = {\r\n distrito: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.distrito,\r\n inputId: 'filter-distrito',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: '# Cédula:',\r\n action: async ev => {\r\n const updatedValue = {\r\n cedula: ev.currentTarget.value,\r\n };\r\n\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.cedula,\r\n inputId: 'filter-cedula',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: '1er Apellido:',\r\n action: async ev => {\r\n const updatedValue = {\r\n primerApellido: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.primerApellido,\r\n inputId: 'filter-first',\r\n responsiveSize: {\r\n xs: 6,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: '2do Apellido:',\r\n action: async ev => {\r\n const updatedValue = {\r\n segundoApellido: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.segundoApellido,\r\n inputId: 'filter-last',\r\n responsiveSize: {\r\n xs: 12,\r\n sm: 3,\r\n },\r\n },\r\n {\r\n label: 'Nombre:',\r\n action: async ev => {\r\n const updatedValue = {\r\n nombre: ev.currentTarget.value,\r\n };\r\n await setFilters({\r\n ...filters,\r\n ...updatedValue,\r\n });\r\n },\r\n value: filters.nombre,\r\n inputId: 'filter-name',\r\n responsiveSize: {\r\n xs: 12,\r\n sm: 3,\r\n },\r\n },\r\n ];\r\n };\r\n\r\n /**\r\n * List all actions that a user can do for each item in the list\r\n */\r\n const setActions = () => {\r\n const actions = [];\r\n\r\n const actionEdit = {\r\n aria: 'Edit Fiscal General',\r\n key: 'edit',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n window.location.href = `/fiscales-generales/edit/${_item.id}`;\r\n },\r\n };\r\n\r\n actions.push(actionEdit);\r\n\r\n const actionRemove = {\r\n aria: 'Eliminar Fiscal General',\r\n key: 'remove',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n setDataRemove(_item);\r\n setOpenDialog(true);\r\n },\r\n };\r\n\r\n actions.push(actionRemove);\r\n return actions;\r\n };\r\n\r\n return (\r\n \r\n }\r\n dataEmpty={isDataEmpty}\r\n listName=\"Lista de Fiscales Generales\"\r\n uiStylesClasses={classes}\r\n btnConfig={{\r\n name: '+ Agregar',\r\n event: () =>\r\n history.push('/fiscales-generales/add'),\r\n }}\r\n actionConfig={setActions}\r\n tableHeads={tableHeaders}\r\n tableBody={isBeingFiltered ? filteredItems : items}\r\n />\r\n {}}\r\n title=\"Eliminar Fiscal General\"\r\n bodymessage={removedMsj}\r\n buttons={\r\n hiddenBtn\r\n ? []\r\n : [\r\n {\r\n actionName: 'cancel',\r\n color: 'simple',\r\n title: 'Cerrar',\r\n clickHander: () => {\r\n setOpenDialog(!open);\r\n },\r\n },\r\n {\r\n actionName: 'delete',\r\n disabled: isRemoved,\r\n color: 'remove',\r\n title: isRemoved ? (\r\n \r\n ) : (\r\n 'Eliminar'\r\n ),\r\n clickHander: removeMemberByNum,\r\n },\r\n ]\r\n }\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default FiscalesGenerales;\r\n","import { makeStyles } from '@material-ui/core/styles';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n searchContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n marginTop: 35,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n btnBack: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n btnSearch: {\r\n width: 150,\r\n height: 50,\r\n },\r\n btnActions: {\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n btnActionCancel: {\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n '&:hover, &:focus': {\r\n backgroundColor: '#DA2229 !important',\r\n color: '#fff !important',\r\n },\r\n },\r\n sectionTitle: {\r\n fontSize: '16px',\r\n marginTop: 10,\r\n marginBottom: 10,\r\n padding: 5,\r\n color: '#fff',\r\n borderRadius: 4,\r\n background: '#008945',\r\n },\r\n field: {\r\n border: 'solid thin #ccc',\r\n padding: 20,\r\n background: '#f1f1f1',\r\n },\r\n fieldFilled: {\r\n border: 'solid thin #ccc',\r\n padding: 20,\r\n background: '#f1f1f1',\r\n },\r\n fieldMin: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 20,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n },\r\n fieldMinFilled: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 10,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n },\r\n fieldTitle: { margin: 5, padding: 0 },\r\n frmText: {\r\n width: '100%',\r\n height: '38px',\r\n padding: 5,\r\n margin: 0,\r\n display: 'block',\r\n fontSize: '.9em',\r\n lineHeight: 38,\r\n borderColor: '#797979',\r\n borderStyle: 'solid',\r\n borderWidth: 1,\r\n borderRadius: 10,\r\n },\r\n frmIconButton: { marginLeft: 10 },\r\n btnSubmitting: {\r\n width: 104,\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n formError: {\r\n margin: '5px 0px 25px 0px',\r\n color: `#FF1101`,\r\n },\r\n}));\r\n\r\nexport default useStyles;\r\n","/* eslint-disable max-len */\r\n/* eslint-disable no-unused-vars */\r\n/* eslint-disable camelcase */\r\nimport React, { useState, useEffect } from 'react';\r\nimport * as Yup from 'yup';\r\nimport Lodash from 'lodash';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { useJwt } from 'react-jwt';\r\nimport Container from '@material-ui/core/Container';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\n\r\nimport { Grid, Button, Divider } from '@material-ui/core';\r\nimport Alert from '@material-ui/lab/Alert';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { Formik, Field } from 'formik';\r\nimport {\r\n PlnInput,\r\n PlnDropdown,\r\n} from '../../Components/Input';\r\nimport PLNDialog from '../../Components/PLNDialog/PLNDialog';\r\n\r\nimport useStyles from './styles';\r\nimport { searchByCedula } from '../../Core/Api/padronApi';\r\nimport {\r\n getDistritoByTwo,\r\n useProvincias,\r\n getCantonsByProvince,\r\n} from '../../Core/Api/locationApi';\r\nimport fiscalesGeneralesApi from '../../Core/Api/fiscalesGeneralesApi';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Copyright from '../Copyright/Copyright';\r\nimport Storage from '../../Storage/Storage';\r\n\r\nconst AddFiscalGeneral = () => {\r\n const classes = useStyles();\r\n const history = useHistory();\r\n const { data } = useProvincias();\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const tokenData = Storage.instance;\r\n const { decodedToken } = useJwt(tokenData.getToken());\r\n\r\n const defaultData = {\r\n primerApellido: '',\r\n segundoApellido: '',\r\n nombre: '',\r\n celular: '',\r\n email: '',\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n jrv: '',\r\n role: '',\r\n codProvincia: 0,\r\n codCanton: 0,\r\n };\r\n\r\n const [cantones, setCantones] = useState([\r\n { itemLabel: '- SELECCIONE EL CANTÓN-', value: 999 },\r\n ]);\r\n\r\n const [distritos, setDistritos] = useState([\r\n { itemLabel: '- SELECCIONE EL DISTRITO -', value: 999 },\r\n ]);\r\n\r\n const [jrv, setJRV] = useState([\r\n { itemLabel: '- Seleccione la JRV -', value: 999 },\r\n ]);\r\n\r\n const [roles, setRoles] = useState([\r\n { itemLabel: '- Seleccione un Puesto -', value: 999 },\r\n ]);\r\n\r\n const [initialValues] = useState({\r\n cedula: '',\r\n celular: '',\r\n email: '',\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n jrv: 999,\r\n role: 999,\r\n });\r\n\r\n const [sProvincia, setSProvincia] = useState(9);\r\n const [sCanton, setSCanton] = useState(999);\r\n // eslint-disable-next-line no-unused-vars\r\n const [sDistrito, setSDistrito] = useState(999);\r\n\r\n const provincias = Lodash.get(\r\n data,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n const setProvincia = p => {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n },\r\n ]);\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n initialValues.provincia = p;\r\n initialValues.canton = 999;\r\n initialValues.distrito = 999;\r\n if (p !== 9) {\r\n getCantonsByProvince(p).then(result => {\r\n if (result.status === 200) {\r\n const cantonsList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const clist = cantonsList.map(\r\n ({ cod_canton, des_nombre_c }) => {\r\n return {\r\n itemLabel: des_nombre_c,\r\n value: cod_canton,\r\n };\r\n },\r\n );\r\n clist.unshift({\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n });\r\n\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: p,\r\n }),\r\n );\r\n setCantones(clist);\r\n }\r\n });\r\n } else {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n const setCanton = c => {\r\n initialValues.distrito = 999;\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = c;\r\n\r\n if (c !== 999) {\r\n getDistritoByTwo(sProvincia.value, c).then(result => {\r\n if (result.status === 200) {\r\n const distritosList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const dlist = distritosList.map(\r\n ({ cod_distrito, des_nombre_d }) => {\r\n return {\r\n itemLabel: des_nombre_d,\r\n value: cod_distrito,\r\n };\r\n },\r\n );\r\n\r\n dlist.unshift({\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n });\r\n\r\n setSCanton(\r\n Lodash.find(cantones, {\r\n value: c,\r\n }),\r\n );\r\n\r\n setDistritos(dlist);\r\n }\r\n });\r\n } else {\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n const [searchBtnEnabled, setBtnSearch] = useState(false);\r\n const [searchBtnLabel, setBtnLabel] = useState('Buscar');\r\n\r\n const [showForm, setShowForm] = useState(false);\r\n const [isSaving, setIsSaving] = useState(false);\r\n const [open, setOpenDialog] = React.useState(false);\r\n const [open2, setOpenDialog2] = React.useState(false);\r\n\r\n // const [memberId, setMemberId] = useState('');\r\n const [userLogged, setUser] = useState([]);\r\n const [memberInfo, setMemberInfo] = useState(defaultData);\r\n const [isNewMemberValid, setIsValidMember] = useState(\r\n true,\r\n );\r\n const [validMemberMsj, setMemberMsj] = useState('');\r\n\r\n /**\r\n * Get Distrits using Prov and Cant\r\n * @param {*} _provId\r\n * @param {*} _cantId\r\n */\r\n const getDistritos = async (_provId, _cantId) => {\r\n if (_provId && _cantId) {\r\n await getDistritoByTwo(_provId, _cantId).then(\r\n _res => {\r\n const listDistr = _res.data.response;\r\n\r\n if (listDistr instanceof Array) {\r\n const dlist = listDistr.map(\r\n ({ cod_distrito, des_nombre_d }) => {\r\n return {\r\n itemLabel: des_nombre_d,\r\n value: cod_distrito,\r\n };\r\n },\r\n );\r\n dlist.unshift({\r\n itemLabel: '- SELECCIONE EL DISTRITO -',\r\n value: 999,\r\n });\r\n\r\n setDistritos(dlist);\r\n }\r\n },\r\n );\r\n }\r\n };\r\n\r\n const getJRVSelected = _jrv => {\r\n const currentJRV = parseInt(_jrv, 10);\r\n\r\n if (currentJRV > 0 && currentJRV !== 999) {\r\n // setJRV(currentJRV);\r\n // console.log(currentJRV);\r\n }\r\n };\r\n\r\n const getRoleSelected = _codRole => {\r\n const currentRole = parseInt(_codRole, 10);\r\n\r\n if (currentRole > 0 && currentRole !== 999) {\r\n // setRoles(currentJRV);\r\n // console.log(currentRole);\r\n }\r\n };\r\n\r\n const getJRV = async _codDistr => {\r\n const currentDistr = parseInt(_codDistr, 10);\r\n setSDistrito(\r\n Lodash.find(distritos, {\r\n value: _codDistr,\r\n }),\r\n );\r\n if (currentDistr > 0 && currentDistr !== 999) {\r\n await fiscalesGeneralesApi\r\n .getJuntaReceptora(\r\n sProvincia.value,\r\n sCanton.value,\r\n currentDistr,\r\n )\r\n .then(_res => {\r\n const listJRV = _res.data.response;\r\n if (listJRV instanceof Array) {\r\n const jrvlist = listJRV.map(\r\n ({ num_jvirt, index }) => {\r\n return {\r\n itemLabel: `Nº ${num_jvirt}`,\r\n value: num_jvirt,\r\n };\r\n },\r\n );\r\n jrvlist.unshift({\r\n itemLabel: '- Seleccione la JRV -',\r\n value: 999,\r\n });\r\n\r\n setJRV(jrvlist);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const buildRolesDropdown = () => {\r\n if (Consts.puestosFiscalGeneral.length > 0) {\r\n const rolesList = Consts.puestosFiscalGeneral.map(\r\n ({ codigo, descripcion }) => {\r\n return {\r\n itemLabel: descripcion,\r\n value: codigo,\r\n };\r\n },\r\n );\r\n\r\n rolesList.unshift({\r\n itemLabel: '- Seleccione un Puesto -',\r\n value: 999,\r\n });\r\n\r\n setRoles(rolesList);\r\n }\r\n };\r\n\r\n /**\r\n * Search member info using ced\r\n */\r\n const getDataByCed = async _form => {\r\n const { cedula } = _form.values;\r\n\r\n if (cedula) {\r\n setMemberInfo(defaultData);\r\n // setMemberId(cedula);\r\n setBtnSearch(true);\r\n setBtnLabel('Buscando...');\r\n setShowForm(false);\r\n\r\n const validateMemberResponse = await fiscalesGeneralesApi.validateFiscalGOnAdd(\r\n cedula,\r\n );\r\n\r\n if (\r\n validateMemberResponse.status === 200 &&\r\n validateMemberResponse.data.response === 1\r\n ) {\r\n setIsValidMember(false);\r\n setMemberMsj(\r\n `Esta persona ya está registrada como ${validateMemberResponse.data.tRegistered} en la JRV Nº ${validateMemberResponse.data.nMesa}, favor corregir`,\r\n );\r\n } else {\r\n setIsValidMember(true);\r\n setMemberMsj(``);\r\n await searchByCedula(cedula).then(_response => {\r\n const info = _response.data.response;\r\n\r\n if (info instanceof Array) {\r\n setShowForm(true);\r\n setMemberInfo({\r\n primerApellido: info[0].des_apell1,\r\n segundoApellido: info[0].des_apell2,\r\n nombre: info[0].des_nombre,\r\n celular: info[0].tel_celu || '',\r\n email: info[0].des_email || '',\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n jrv: info[0].num_jvirt,\r\n role: '',\r\n codProvincia: info[0].cod_prov,\r\n codCanton: info[0].cod_cant,\r\n });\r\n\r\n _form.setFieldValue(\r\n 'celular',\r\n info[0].tel_celu || '',\r\n );\r\n\r\n _form.setFieldValue(\r\n 'email',\r\n info[0].des_email || '',\r\n );\r\n\r\n _form.setFieldValue('provincia', 9);\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: 9,\r\n }),\r\n );\r\n\r\n _form.setFieldValue('canton', 999);\r\n\r\n setSCanton(\r\n Lodash.find(cantones, {\r\n value: 999,\r\n }),\r\n );\r\n } else {\r\n setShowForm(false);\r\n }\r\n });\r\n }\r\n\r\n setBtnSearch(false);\r\n setBtnLabel('Buscar');\r\n }\r\n };\r\n\r\n /**\r\n * Save Member\r\n * @param {*} values\r\n */\r\n const saveMember = async values => {\r\n setIsSaving(true);\r\n\r\n const memberData = {\r\n cod_provincia: parseInt(values.provincia, 10),\r\n cod_canton: parseInt(values.canton, 10),\r\n cod_distrito: parseInt(values.distrito, 10),\r\n cod_mesa: parseInt(values.jrv, 10),\r\n num_cedula: parseInt(values.cedula, 10),\r\n cod_puesto: values.role,\r\n des_usuario: parseInt(userLogged.num_cedula, 10),\r\n fec_digitado: null,\r\n cod_periodo: null,\r\n };\r\n\r\n const userData = {\r\n codUsuario: userLogged.num_cedula,\r\n };\r\n\r\n const phoneData = {\r\n tel_celu: values.celular,\r\n };\r\n\r\n const emailData = {\r\n des_email: values.email,\r\n };\r\n\r\n const dataSet = {\r\n miembro: memberData,\r\n usuario: userData,\r\n telefonos: phoneData,\r\n emails: emailData,\r\n isUpdate: 0,\r\n };\r\n\r\n const numFiscalesAvailable = await fiscalesGeneralesApi.validateNumFiscales(\r\n memberData.cod_provincia,\r\n memberData.cod_canton,\r\n memberData.cod_distrito,\r\n userLogged.num_cedula,\r\n );\r\n\r\n if (numFiscalesAvailable.data.total < 2) {\r\n fiscalesGeneralesApi\r\n .submitFiscalGeneral(dataSet)\r\n .then(_response => {\r\n setIsSaving(false);\r\n\r\n if (\r\n _response.status === 200 &&\r\n _response.data.response === 1\r\n ) {\r\n setOpenDialog(true);\r\n } else {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n 'No se pudo completar la operacion, vuelva a intentar',\r\n );\r\n }\r\n });\r\n } else {\r\n setIsSaving(false);\r\n setOpenDialog2(true);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (decodedToken !== null) {\r\n setUser(decodedToken);\r\n }\r\n\r\n buildRolesDropdown();\r\n }, [decodedToken]);\r\n\r\n /**\r\n * Form validations\r\n * @param {*} values\r\n */\r\n const formikValidate = values => {\r\n const errors = {};\r\n // eslint-disable-next-line no-shadow\r\n const { celular, email, distrito, jrv, role } = values;\r\n\r\n if (!celular) {\r\n errors.celular = 'Requerido';\r\n } else if (!/^[0-9]{8}$/.test(celular)) {\r\n errors.celular = 'Ejemplo de formato: xxxxxxxx.';\r\n }\r\n\r\n if (!email) {\r\n errors.email = 'Requerido';\r\n } else if (\r\n !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(\r\n email,\r\n )\r\n ) {\r\n errors.email = 'Email inválido';\r\n }\r\n\r\n if (distrito === 999) {\r\n errors.distrito = 'Seleccione un distrito';\r\n }\r\n\r\n if (jrv === 999) {\r\n errors.jrv = 'Seleccione la Junta Receptora';\r\n }\r\n\r\n if (role === 999) {\r\n errors.role = 'Seleccione un puesto';\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n const closeDialogHandler = () => {\r\n history.push('/fiscales-generales');\r\n setOpenDialog(false);\r\n };\r\n\r\n const closeDialogHandler2 = () => {\r\n setOpenDialog2(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Nuevo Registro de Fiscal General\r\n {\r\n history.push('/fiscales-generales');\r\n }}\r\n >\r\n Regresar\r\n \r\n \r\n \r\n {formik => (\r\n \r\n \r\n \r\n

# Cédula:

\r\n \r\n
\r\n \r\n {\r\n await getDataByCed(formik);\r\n }}\r\n >\r\n {searchBtnLabel}\r\n \r\n
\r\n
\r\n \r\n \r\n {!isNewMemberValid ? (\r\n
\r\n \r\n {validMemberMsj}\r\n \r\n
\r\n ) : null}\r\n
\r\n
\r\n \r\n {showForm ? (\r\n <>\r\n \r\n \r\n \r\n 1er. Apellido\r\n \r\n \r\n {memberInfo.primerApellido}\r\n \r\n \r\n \r\n \r\n 2do. Apellido\r\n \r\n \r\n {memberInfo.segundoApellido}\r\n \r\n \r\n \r\n \r\n Nombre\r\n \r\n \r\n {memberInfo.nombre}\r\n \r\n \r\n
\r\n \r\n \r\n

# Celular:

\r\n \r\n {formik.errors.celular &&\r\n formik.touched.celular ? (\r\n \r\n \r\n {formik.errors.celular}\r\n \r\n \r\n ) : null}\r\n
\r\n \r\n

Correo Principal:

\r\n \r\n {formik.errors.email &&\r\n formik.touched.email ? (\r\n \r\n \r\n {formik.errors.email}\r\n \r\n \r\n ) : null}\r\n
\r\n
\r\n \r\n \r\n \r\n Provincia\r\n \r\n
\r\n {\r\n setProvincia(provincia);\r\n formik.setFieldValue(\r\n 'canton',\r\n 999,\r\n );\r\n formik.setFieldValue(\r\n 'distrito',\r\n 999,\r\n );\r\n }}\r\n />\r\n {formik.errors.distrito &&\r\n formik.touched.distrito ? (\r\n \r\n \r\n {formik.errors.distrito}\r\n \r\n
\r\n ) : null}\r\n \r\n
\r\n \r\n \r\n Cantón\r\n \r\n
\r\n {\r\n setCanton(canton);\r\n formik.setFieldValue(\r\n 'distrito',\r\n 999,\r\n );\r\n }}\r\n />\r\n
\r\n
\r\n \r\n \r\n Distrito\r\n \r\n
\r\n {\r\n getJRV(dist);\r\n }}\r\n />\r\n {formik.errors.distrito &&\r\n formik.touched.distrito ? (\r\n \r\n \r\n {formik.errors.distrito}\r\n \r\n
\r\n ) : null}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n JRV\r\n \r\n \r\n getJRVSelected(jrvItem)\r\n }\r\n />\r\n {formik.errors.jrv &&\r\n formik.touched.jrv ? (\r\n \r\n \r\n {formik.errors.jrv}\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n Puesto\r\n \r\n \r\n getRoleSelected(role)\r\n }\r\n />\r\n {formik.errors.role &&\r\n formik.touched.role ? (\r\n \r\n \r\n {formik.errors.role}\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n {isSaving ? (\r\n \r\n ) : (\r\n <>\r\n Guardar\r\n \r\n \r\n )}\r\n \r\n {\r\n history.push(\r\n '/fiscales-generales',\r\n );\r\n }}\r\n >\r\n Cancelar\r\n \r\n \r\n \r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n )}\r\n \r\n {}}\r\n title=\"Mensaje\"\r\n bodymessage=\"Información guardada correctamente.\"\r\n buttons={[\r\n {\r\n actionName: 'close',\r\n color: 'simple',\r\n title: 'Entendido',\r\n clickHander: closeDialogHandler,\r\n },\r\n ]}\r\n />\r\n {}}\r\n title=\"Mensaje\"\r\n bodymessage=\"Solo se admite el registro de hasta 2 fiscales Generales por Centro de Votación.\"\r\n buttons={[\r\n {\r\n actionName: 'close',\r\n color: 'simple',\r\n title: 'Cerrar',\r\n clickHander: closeDialogHandler2,\r\n },\r\n ]}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default AddFiscalGeneral;\r\n","/* eslint-disable no-restricted-globals */\r\n/* eslint-disable no-shadow */\r\n/* eslint-disable camelcase */\r\n/* eslint-disable no-unused-vars */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport * as Yup from 'yup';\r\nimport Lodash from 'lodash';\r\nimport { useJwt } from 'react-jwt';\r\nimport Container from '@material-ui/core/Container';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\n\r\nimport { Grid, Button, Divider } from '@material-ui/core';\r\nimport Alert from '@material-ui/lab/Alert';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { Formik, Field } from 'formik';\r\nimport {\r\n PlnInput,\r\n PlnDropdown,\r\n} from '../../Components/Input';\r\nimport PLNDialog from '../../Components/PLNDialog/PLNDialog';\r\nimport Loading from '../../Components/Loading/Loading';\r\n\r\nimport useStyles from './styles';\r\nimport {\r\n getDistritoByTwo,\r\n useProvincias,\r\n getCantonsByProvince,\r\n getProvinces,\r\n} from '../../Core/Api/locationApi';\r\nimport fiscalesGeneralesApi from '../../Core/Api/fiscalesGeneralesApi';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Copyright from '../Copyright/Copyright';\r\nimport Storage from '../../Storage/Storage';\r\n\r\nconst EditFiscalGeneral = () => {\r\n const classes = useStyles();\r\n const history = useHistory();\r\n const { id } = useParams();\r\n const { data } = useProvincias();\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const tokenData = Storage.instance;\r\n const { decodedToken } = useJwt(tokenData.getToken());\r\n\r\n const defaultData = {\r\n primerApellido: '',\r\n segundoApellido: '',\r\n nombre: '',\r\n celular: '',\r\n email: '',\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n jrv: '',\r\n role: '',\r\n codProvincia: 0,\r\n codCanton: 0,\r\n };\r\n\r\n const [distritos, setDistritos] = useState([\r\n { itemLabel: '- Seleccione un Distrito -', value: 999 },\r\n ]);\r\n\r\n const [jrv, setJRV] = useState([\r\n { itemLabel: '- Seleccione la JRV -', value: 999 },\r\n ]);\r\n\r\n const [roles, setRoles] = useState([\r\n { itemLabel: '- Seleccione un Puesto -', value: 999 },\r\n ]);\r\n\r\n const [initialValues] = useState({\r\n cedula: '',\r\n celular: '',\r\n email: '',\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n jrv: 999,\r\n role: 999,\r\n });\r\n\r\n const [showForm, setShowForm] = useState(true);\r\n const [isSaving, setIsSaving] = useState(false);\r\n const [isLoadingData, setLoading] = useState(true);\r\n const [open, setOpenDialog] = React.useState(false);\r\n const [open2, setOpenDialog2] = React.useState(false);\r\n\r\n const [memberId, setMemberId] = useState('');\r\n const [userLogged, setUser] = useState([]);\r\n const [memberInfo, setMemberInfo] = useState(defaultData);\r\n\r\n const [cantones, setCantones] = useState([\r\n { itemLabel: '- SELECCIONE EL CANTÓN-', value: 999 },\r\n ]);\r\n\r\n const [sProvincia, setSProvincia] = useState(9);\r\n const [sCanton, setSCanton] = useState(999);\r\n // eslint-disable-next-line no-unused-vars\r\n const [sDistrito, setSDistrito] = useState(999);\r\n const provincias = Lodash.get(\r\n data,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n const setProvincia = p => {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n },\r\n ]);\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n setJRV([\r\n {\r\n itemLabel: '- Seleccione la JRV-',\r\n value: 999,\r\n },\r\n ]);\r\n initialValues.provincia = p;\r\n initialValues.canton = 999;\r\n initialValues.distrito = 999;\r\n if (p !== 9) {\r\n getCantonsByProvince(p).then(result => {\r\n if (result.status === 200) {\r\n const cantonsList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const clist = cantonsList.map(\r\n ({ cod_canton, des_nombre_c }) => {\r\n return {\r\n itemLabel: des_nombre_c,\r\n value: cod_canton,\r\n };\r\n },\r\n );\r\n clist.unshift({\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n });\r\n\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: p,\r\n }),\r\n );\r\n setCantones(clist);\r\n }\r\n });\r\n } else {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n const setCanton = c => {\r\n setJRV([\r\n {\r\n itemLabel: '- Seleccione la JRV-',\r\n value: 999,\r\n },\r\n ]);\r\n initialValues.distrito = 999;\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = c;\r\n\r\n if (c !== 999) {\r\n getDistritoByTwo(sProvincia.value, c).then(result => {\r\n if (result.status === 200) {\r\n const distritosList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const dlist = distritosList.map(\r\n ({ cod_distrito, des_nombre_d }) => {\r\n return {\r\n itemLabel: des_nombre_d,\r\n value: cod_distrito,\r\n };\r\n },\r\n );\r\n\r\n dlist.unshift({\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n });\r\n\r\n setSCanton(\r\n Lodash.find(cantones, {\r\n value: c,\r\n }),\r\n );\r\n\r\n setDistritos(dlist);\r\n }\r\n });\r\n } else {\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n /**\r\n * Get Distrits using Prov and Cant\r\n * @param {*} _provId\r\n * @param {*} _cantId\r\n */\r\n const getDistritos = async (_provId, _cantId) => {\r\n if (_provId && _cantId) {\r\n await getDistritoByTwo(_provId, _cantId).then(\r\n _res => {\r\n const listDistr = _res.data.response;\r\n\r\n if (listDistr instanceof Array) {\r\n const dlist = listDistr.map(\r\n ({ cod_distrito, des_nombre_d }) => {\r\n return {\r\n itemLabel: des_nombre_d,\r\n value: cod_distrito,\r\n };\r\n },\r\n );\r\n dlist.unshift({\r\n itemLabel: '- SELECCIONE EL DISTRITO -',\r\n value: 999,\r\n });\r\n\r\n setDistritos(dlist);\r\n }\r\n },\r\n );\r\n }\r\n };\r\n\r\n const getJRVSelected = _jrv => {\r\n const currentJRV = parseInt(_jrv, 10);\r\n\r\n if (currentJRV > 0 && currentJRV !== 999) {\r\n // setJRV(currentJRV);\r\n // console.log(currentJRV);\r\n }\r\n };\r\n\r\n const getRoleSelected = _codRole => {\r\n const currentRole = parseInt(_codRole, 10);\r\n\r\n if (currentRole > 0 && currentRole !== 999) {\r\n // setRoles(currentJRV);\r\n // console.log(currentRole);\r\n }\r\n };\r\n\r\n const getJRV = async _codDistr => {\r\n setJRV([\r\n {\r\n itemLabel: '- Seleccione la JRV-',\r\n value: 999,\r\n },\r\n ]);\r\n const currentDistr = parseInt(_codDistr, 10);\r\n\r\n if (currentDistr > 0 && currentDistr !== 999) {\r\n await fiscalesGeneralesApi\r\n .getJuntaReceptora(\r\n sProvincia.value,\r\n sCanton.value,\r\n currentDistr,\r\n )\r\n .then(_res => {\r\n const listJRV = _res.data.response;\r\n if (listJRV instanceof Array) {\r\n const jrvlist = listJRV.map(\r\n ({ num_jvirt, index }) => {\r\n return {\r\n itemLabel: `Nº ${num_jvirt}`,\r\n value: num_jvirt,\r\n };\r\n },\r\n );\r\n jrvlist.unshift({\r\n itemLabel: '- Seleccione la JRV -',\r\n value: 999,\r\n });\r\n\r\n setJRV(jrvlist);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const buildRolesDropdown = () => {\r\n if (Consts.puestosFiscalGeneral.length > 0) {\r\n const rolesList = Consts.puestosFiscalGeneral.map(\r\n ({ codigo, descripcion }) => {\r\n return {\r\n itemLabel: descripcion,\r\n value: codigo,\r\n };\r\n },\r\n );\r\n\r\n rolesList.unshift({\r\n itemLabel: '- Seleccione un Puesto -',\r\n value: 999,\r\n });\r\n\r\n setRoles(rolesList);\r\n }\r\n };\r\n\r\n /**\r\n * Save Member\r\n * @param {*} values\r\n */\r\n const saveMember = async values => {\r\n setIsSaving(true);\r\n\r\n const memberData = {\r\n cod_provincia: parseInt(values.provincia, 10),\r\n cod_canton: parseInt(values.canton, 10),\r\n cod_distrito: parseInt(values.distrito, 10),\r\n cod_mesa: parseInt(values.jrv, 10),\r\n num_cedula: parseInt(values.cedula, 10),\r\n cod_puesto: values.role,\r\n num_linea: parseInt(id, 10),\r\n des_usuario: parseInt(userLogged.num_cedula, 10),\r\n fec_digitado: null,\r\n cod_periodo: null,\r\n };\r\n\r\n const userData = {\r\n codUsuario: userLogged.num_cedula,\r\n };\r\n\r\n const phoneData = {\r\n tel_celu: values.celular,\r\n };\r\n\r\n const emailData = {\r\n des_email: values.email,\r\n };\r\n\r\n const dataSet = {\r\n miembro: memberData,\r\n usuario: userData,\r\n telefonos: phoneData,\r\n emails: emailData,\r\n isUpdate: 1,\r\n };\r\n\r\n const numFiscalesAvailable = await fiscalesGeneralesApi.validateNumFiscales(\r\n memberData.cod_provincia,\r\n memberData.cod_canton,\r\n memberData.cod_distrito,\r\n userLogged.num_cedula,\r\n );\r\n\r\n if (numFiscalesAvailable.data.total < 2) {\r\n fiscalesGeneralesApi\r\n .submitFiscalGeneral(dataSet)\r\n .then(_response => {\r\n if (\r\n _response.status === 200 &&\r\n _response.data.response === 1\r\n ) {\r\n setIsSaving(false);\r\n setOpenDialog(true);\r\n } else {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n 'No se pudo completar la operacion, vuelva a intentar',\r\n );\r\n }\r\n });\r\n } else {\r\n setIsSaving(false);\r\n setOpenDialog2(true);\r\n }\r\n };\r\n\r\n const loadMemberDetails = async _numLine => {\r\n try {\r\n let dataSet = {};\r\n if (_numLine) {\r\n const info = await fiscalesGeneralesApi.getFiscalGeneralByLinea(\r\n _numLine,\r\n );\r\n const data = info.data.response;\r\n\r\n if (data instanceof Array && info.status === 200) {\r\n dataSet = {\r\n primerApellido: data[0].des_apell1,\r\n segundoApellido: data[0].des_apell2,\r\n nombre: data[0].des_nombre,\r\n celular: data[0].tel_celu || '',\r\n email: data[0].des_email || '',\r\n provincia: data[0].cod_provincia,\r\n canton: data[0].cod_canton,\r\n distrito: data[0].cod_distrito,\r\n jrv: data[0].cod_mesa,\r\n role: data[0].cod_puesto,\r\n codProvincia: data[0].cod_provincia,\r\n codCanton: data[0].cod_canton,\r\n cedula: data[0].num_cedula,\r\n };\r\n const listProvincias = await getProvinces();\r\n const provincias = Lodash.get(\r\n listProvincias,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: data[0].cod_provincia,\r\n }),\r\n );\r\n\r\n getCantonsByProvince(data[0].cod_provincia).then(\r\n result => {\r\n if (result.status === 200) {\r\n const cantonsList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const clist = cantonsList.map(\r\n ({ cod_canton, des_nombre_c }) => {\r\n return {\r\n itemLabel: des_nombre_c,\r\n value: cod_canton,\r\n };\r\n },\r\n );\r\n clist.unshift({\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n });\r\n\r\n setCantones(clist);\r\n\r\n setSCanton(\r\n Lodash.find(clist, {\r\n value: data[0].cod_canton,\r\n }),\r\n );\r\n }\r\n },\r\n );\r\n\r\n await fiscalesGeneralesApi\r\n .getJuntaReceptora(\r\n data[0].cod_provincia,\r\n data[0].cod_canton,\r\n data[0].cod_distrito,\r\n )\r\n .then(_res => {\r\n const listJRV = _res.data.response;\r\n if (listJRV instanceof Array) {\r\n const jrvlist = listJRV.map(\r\n ({ num_jvirt, index }) => {\r\n return {\r\n itemLabel: `Nº ${num_jvirt}`,\r\n value: num_jvirt,\r\n };\r\n },\r\n );\r\n jrvlist.unshift({\r\n itemLabel: '- Seleccione la JRV -',\r\n value: 999,\r\n });\r\n\r\n setJRV(jrvlist);\r\n }\r\n });\r\n } else {\r\n dataSet = defaultData;\r\n }\r\n } else {\r\n dataSet = defaultData;\r\n }\r\n\r\n setMemberInfo(dataSet);\r\n setLoading(false);\r\n } catch (error) {\r\n // eslint-disable-next-line no-console\r\n console.warn(error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n async function fetchAPI() {\r\n const currentNumLinea = parseInt(id, 10);\r\n\r\n if (currentNumLinea === 0 || isNaN(currentNumLinea)) {\r\n history.push('/fiscales-generales');\r\n }\r\n\r\n setLoading(true);\r\n\r\n await loadMemberDetails(currentNumLinea);\r\n }\r\n\r\n fetchAPI();\r\n }, []);\r\n\r\n useEffect(() => {\r\n getDistritos(\r\n memberInfo.codProvincia,\r\n memberInfo.codCanton,\r\n );\r\n getJRV(memberInfo.distrito);\r\n buildRolesDropdown();\r\n setUser(decodedToken);\r\n }, [memberInfo]);\r\n\r\n /**\r\n * Form validations\r\n * @param {*} values\r\n */\r\n const formikValidate = values => {\r\n const errors = {};\r\n const { celular, email, distrito, jrv, role } = values;\r\n\r\n if (!celular) {\r\n errors.celular = 'Requerido';\r\n } else if (!/^[0-9]{8}$/.test(celular)) {\r\n errors.celular = 'Ejemplo de formato: xxxxxxxx.';\r\n }\r\n\r\n if (!email) {\r\n errors.email = 'Requerido';\r\n } else if (\r\n !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(\r\n email,\r\n )\r\n ) {\r\n errors.email = 'Email inválido';\r\n }\r\n\r\n if (distrito === 999) {\r\n errors.distrito = 'Seleccione un distrito';\r\n }\r\n\r\n if (jrv === 999) {\r\n errors.jrv = 'Seleccione la Junta Receptora';\r\n }\r\n\r\n if (role === 999) {\r\n errors.role = 'Seleccione un puesto';\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n const closeDialogHandler = () => {\r\n history.push('/fiscales-generales');\r\n setOpenDialog(false);\r\n };\r\n\r\n const closeDialogHandler2 = () => {\r\n setOpenDialog2(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Editar Fiscal General\r\n {\r\n history.push('/fiscales-generales');\r\n }}\r\n >\r\n Regresar\r\n \r\n \r\n {!isLoadingData ? (\r\n \r\n {formik => {\r\n return (\r\n \r\n \r\n \r\n

\r\n # Cédula: {memberInfo.cedula}\r\n

\r\n
\r\n
\r\n \r\n {showForm ? (\r\n <>\r\n \r\n \r\n \r\n 1er. Apellido\r\n \r\n \r\n {memberInfo.primerApellido}\r\n \r\n \r\n \r\n \r\n 2do. Apellido\r\n \r\n \r\n {memberInfo.segundoApellido}\r\n \r\n \r\n \r\n \r\n Nombre\r\n \r\n \r\n {memberInfo.nombre}\r\n \r\n \r\n
\r\n \r\n \r\n

# Celular:

\r\n \r\n {formik.errors.celular &&\r\n formik.touched.celular ? (\r\n \r\n \r\n {formik.errors.celular}\r\n \r\n \r\n ) : null}\r\n
\r\n \r\n

Correo Principal:

\r\n \r\n {formik.errors.email &&\r\n formik.touched.email ? (\r\n \r\n \r\n {formik.errors.email}\r\n \r\n \r\n ) : null}\r\n
\r\n
\r\n \r\n \r\n \r\n Provincia\r\n \r\n
\r\n {\r\n setProvincia(provincia);\r\n formik.setFieldValue(\r\n 'canton',\r\n 999,\r\n );\r\n formik.setFieldValue(\r\n 'distrito',\r\n 999,\r\n );\r\n }}\r\n />\r\n {formik.errors.distrito &&\r\n formik.touched.distrito ? (\r\n \r\n \r\n {\r\n formik.errors\r\n .distrito\r\n }\r\n \r\n
\r\n ) : null}\r\n \r\n
\r\n \r\n \r\n Cantón\r\n \r\n
\r\n {\r\n setCanton(canton);\r\n formik.setFieldValue(\r\n 'distrito',\r\n 999,\r\n );\r\n }}\r\n />\r\n
\r\n
\r\n \r\n \r\n Distrito\r\n \r\n
\r\n {\r\n getJRV(dist);\r\n }}\r\n />\r\n {formik.errors.distrito &&\r\n formik.touched.distrito ? (\r\n \r\n \r\n {\r\n formik.errors\r\n .distrito\r\n }\r\n \r\n
\r\n ) : null}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n JRV\r\n \r\n \r\n getJRVSelected(jrvItem)\r\n }\r\n />\r\n {formik.errors.jrv &&\r\n formik.touched.jrv ? (\r\n \r\n \r\n {formik.errors.jrv}\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n Puesto\r\n \r\n \r\n getRoleSelected(role)\r\n }\r\n />\r\n {formik.errors.role &&\r\n formik.touched.role ? (\r\n \r\n \r\n {formik.errors.role}\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n {isSaving ? (\r\n \r\n ) : (\r\n <>\r\n Actualizar\r\n \r\n \r\n )}\r\n \r\n {\r\n history.push(\r\n '/fiscales-generales',\r\n );\r\n }}\r\n >\r\n Cancelar\r\n \r\n \r\n
\r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n );\r\n }}\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {}}\r\n title=\"Mensaje\"\r\n // eslint-disable-next-line max-len\r\n bodymessage=\"Solo se admite el registro de hasta 2 fiscales Generales por Centro de Votación.\"\r\n buttons={[\r\n {\r\n actionName: 'close',\r\n color: 'simple',\r\n title: 'Cerrar',\r\n clickHander: closeDialogHandler2,\r\n },\r\n ]}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default EditFiscalGeneral;\r\n","function createData(\r\n consecutivo,\r\n numeroDeposito,\r\n monto,\r\n fecha,\r\n observacion,\r\n cedula,\r\n depositante,\r\n last,\r\n) {\r\n return {\r\n consecutivo,\r\n numeroDeposito,\r\n monto,\r\n fecha,\r\n observacion,\r\n cedula,\r\n depositante,\r\n last,\r\n };\r\n}\r\n\r\nexport const tableHeaders = [\r\n {\r\n name: 'Número Depósito',\r\n },\r\n {\r\n name: 'Monto',\r\n },\r\n {\r\n name: 'Fecha',\r\n },\r\n {\r\n name: 'Tipo Depósito',\r\n },\r\n {\r\n name: 'Ced. Dep',\r\n },\r\n {\r\n name: 'Depositante',\r\n },\r\n];\r\n\r\nexport const dataRows = [\r\n createData(\r\n 1976,\r\n '178698521135',\r\n '550,000.00',\r\n '23/02/2025',\r\n 'Depósito para Inscripciones',\r\n '100230628',\r\n 'Calvo Solorzano Marta',\r\n 'A',\r\n ),\r\n];\r\n","import axios from 'axios';\r\n// import Lodash from 'lodash';\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API_BASE_URL;\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const newDeposito = params => {\r\n const { depositoData } = params;\r\n\r\n const infoDeposito = {\r\n deposito: depositoData,\r\n };\r\n\r\n return axios.post(\r\n '/depositos/saveDepositoED',\r\n infoDeposito,\r\n );\r\n};\r\n\r\nexport const updateDeposito = deposito => {\r\n const infoDeposito = {\r\n deposito,\r\n };\r\n\r\n return axios.post(\r\n '/depositos/updateDeposit',\r\n infoDeposito,\r\n );\r\n};\r\n\r\nexport const getAll = cedula => {\r\n const url = [`/depositos/byGestorED/${cedula}`];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n\r\nexport const getDepositInfoByCod = codDeposit => {\r\n return axios.get(\r\n `/depositos/getDepositoED/${codDeposit}`,\r\n );\r\n};\r\n\r\nexport const deleteDepositByCod = codDeposit => {\r\n return axios.get(\r\n `/depositos/removeDeposit/${codDeposit}`,\r\n );\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { useJwt } from 'react-jwt';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport DeleteSharpIcon from '@material-ui/icons/DeleteSharp';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { tableHeaders } from './data';\r\nimport MacroList from '../MacroList/MacroList';\r\nimport Storage from '../../Storage/Storage';\r\n\r\nimport {\r\n getAll,\r\n deleteDepositByCod,\r\n} from '../../Core/Api/depositosApi';\r\nimport { formatData } from '../../Core/Utils/Utils';\r\nimport PLNDialog from '../../Components/PLNDialog/PLNDialog';\r\nimport {\r\n useCRUDAvailable,\r\n useCRUDAvailableSectores,\r\n} from '../../Core/Api/periodoApi';\r\n\r\nfunction createData(_data) {\r\n return {\r\n numDeposito: _data.num_deposito,\r\n montoDeposito: `${formatData(_data.num_monto)}`,\r\n fecha: _data.fec_deposito,\r\n tipoDeposito:\r\n _data.ind_deposito === 0\r\n ? 'Membresía'\r\n : 'Inscripción',\r\n ced_depositante: _data.ced_depositante,\r\n nombreDepositante: `${_data.des_nombre} ${_data.des_apell1} ${_data.des_apell2}`,\r\n id: _data.cod_deposito,\r\n };\r\n}\r\n\r\nconst useStyles = makeStyles(() => ({\r\n btnAdd: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n}));\r\n\r\nconst RegistroDepositos = () => {\r\n // Se valida si esta habilitado CRUD\r\n const isCRUDAvailable = useCRUDAvailable();\r\n const isCRUDAvailableSectores = useCRUDAvailableSectores();\r\n const crudAvailable =\r\n Lodash.get(\r\n isCRUDAvailable,\r\n ['data', 'response'],\r\n null,\r\n ) ||\r\n Lodash.get(\r\n isCRUDAvailableSectores,\r\n ['data', 'response'],\r\n null,\r\n );\r\n\r\n const classes = useStyles();\r\n const tokenStorage = Storage.instance;\r\n\r\n const [items, setItems] = useState([]);\r\n const [isDataEmpty, setDataEmpty] = useState(false);\r\n\r\n const { decodedToken } = useJwt(tokenStorage.getToken());\r\n\r\n const [open, setOpenDialog] = React.useState(false);\r\n const [dataRemove, setDataRemove] = React.useState(null);\r\n const [isRemoved, setIsRemoved] = useState(false); // used on remove modal\r\n const [removedMsj, setRemoveMsj] = useState(\r\n 'El registro se eliminará permanentemente. ¿Desea proceder?',\r\n );\r\n const [hiddenBtn, setHiddenBtn] = useState(false);\r\n\r\n useEffect(() => {\r\n async function fetchListAPI() {\r\n if (decodedToken) {\r\n await getAll(decodedToken.num_cedula)\r\n .then(_response => {\r\n const info = _response.data.response;\r\n\r\n if (info instanceof Object) {\r\n const rowItems = info.map(row => {\r\n return createData(row);\r\n });\r\n\r\n setItems(rowItems);\r\n // setFilteredItems(rowItems);\r\n setDataEmpty(false);\r\n } else {\r\n setDataEmpty(true);\r\n }\r\n })\r\n .catch(_error => {\r\n // eslint-disable-next-line no-console\r\n console.log(_error);\r\n });\r\n }\r\n }\r\n\r\n fetchListAPI();\r\n }, [decodedToken]);\r\n\r\n /**\r\n * List all actions that a user can do for each item in the list\r\n */\r\n const setActions = () => {\r\n const actions = [];\r\n\r\n if (crudAvailable) {\r\n const actionEdit = {\r\n aria: 'Editar Depósito',\r\n key: 'edit',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n window.location.href = `/registro-depositos/edit/${_item.id}`;\r\n },\r\n };\r\n\r\n actions.push(actionEdit);\r\n\r\n const actionRemove = {\r\n aria: 'Eliminar Depósito',\r\n key: 'remove',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n setDataRemove(_item);\r\n setOpenDialog(true);\r\n },\r\n };\r\n\r\n actions.push(actionRemove);\r\n }\r\n return actions;\r\n };\r\n\r\n /**\r\n * Remove a member selected by user\r\n */\r\n const removeDepositByNum = async () => {\r\n const codDeposit = dataRemove.id;\r\n\r\n if (codDeposit && codDeposit > 0) {\r\n setIsRemoved(true);\r\n\r\n await deleteDepositByCod(codDeposit)\r\n .then(_rs => {\r\n const responseInfo = _rs.data;\r\n\r\n const configCallback = {\r\n isRemoved: true,\r\n isHiddenBtn: true,\r\n message:\r\n 'La operación no se pudo completar. Intente de nuevo.',\r\n };\r\n\r\n if (\r\n responseInfo.response === 1 &&\r\n responseInfo.row.length === 1 &&\r\n _rs.status === 200\r\n ) {\r\n Object.assign(configCallback, {\r\n isRemoved: false,\r\n isHiddenBtn: true,\r\n message: 'Depósito eliminado correctamente.',\r\n });\r\n }\r\n\r\n setIsRemoved(configCallback.isRemoved);\r\n setHiddenBtn(configCallback.isHiddenBtn);\r\n setRemoveMsj(configCallback.message);\r\n setTimeout(() => {\r\n setOpenDialog(false);\r\n window.location.href = '/registro-depositos/';\r\n }, 3000);\r\n })\r\n .catch(error => {\r\n console.warn(error);\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n (window.location.href = `/registro-depositos/add`),\r\n }}\r\n actionConfig={setActions}\r\n tableHeads={tableHeaders}\r\n tableBody={items}\r\n showTotals\r\n isCrudAvailable={crudAvailable}\r\n />\r\n {}}\r\n title=\"Eliminar Registro Depósito\"\r\n bodymessage={removedMsj}\r\n buttons={\r\n hiddenBtn\r\n ? []\r\n : [\r\n {\r\n actionName: 'cancel',\r\n color: 'simple',\r\n title: 'Cerrar',\r\n clickHander: () => {\r\n setOpenDialog(!open);\r\n },\r\n },\r\n {\r\n actionName: 'delete',\r\n disabled: isRemoved,\r\n color: 'remove',\r\n title: isRemoved ? (\r\n \r\n ) : (\r\n 'Eliminar'\r\n ),\r\n clickHander: removeDepositByNum,\r\n },\r\n ]\r\n }\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default RegistroDepositos;\r\n","const styles = () => ({\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n btnBack: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n btnActions: {\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n sectionTitle: {\r\n fontSize: '16px',\r\n marginTop: 10,\r\n marginBottom: 10,\r\n padding: 5,\r\n color: '#fff',\r\n borderRadius: 4,\r\n background: '#008945',\r\n },\r\n field: {\r\n border: 'solid thin #ccc',\r\n padding: 20,\r\n background: '#f1f1f1',\r\n },\r\n fieldFilled: {\r\n border: 'solid thin #ccc',\r\n padding: 10,\r\n background: '#f1f1f1',\r\n },\r\n fieldOutFilled: {\r\n border: 'solid thin #ccc',\r\n borderRadius: '10px',\r\n padding: 10,\r\n background: '#fff',\r\n },\r\n fieldTxt: {\r\n border: 'solid thin #ccc',\r\n padding: 10,\r\n background: '#fff',\r\n },\r\n fieldMin: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 20,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n },\r\n fieldMinFilled: {\r\n border: 'solid thin #ccc',\r\n width: 35,\r\n padding: 10,\r\n textAlign: 'center',\r\n background: '#f1f1f1',\r\n },\r\n fieldTitle: { margin: 0, padding: 0 },\r\n frmText: {\r\n width: '100%',\r\n height: '38px',\r\n padding: 5,\r\n margin: 0,\r\n display: 'block',\r\n fontSize: '.9em',\r\n lineHeight: 38,\r\n borderColor: '#797979',\r\n borderStyle: 'solid',\r\n borderWidth: 1,\r\n borderRadius: 10,\r\n },\r\n frmIconButton: { marginLeft: 10 },\r\n btnSubmitting: {\r\n width: 104,\r\n float: 'right',\r\n height: 50,\r\n marginTop: 5,\r\n marginRight: 10,\r\n },\r\n formError: {\r\n margin: '5px 0px 25px 0px',\r\n color: `#FF1101`,\r\n },\r\n calendarInput: {\r\n background: 'transparent',\r\n minHeight: '20px',\r\n padding: 0,\r\n margin: 0,\r\n border: 0,\r\n width: '100%',\r\n },\r\n});\r\n\r\nexport default styles;\r\n","/* eslint-disable radix */\r\n/* eslint-disable camelcase */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport Lodash from 'lodash';\r\nimport { useJwt } from 'react-jwt';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport DatePicker from 'react-datepicker';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport { Grid, Button, Divider } from '@material-ui/core';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\nimport Container from '@material-ui/core/Container';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport Alert from '@material-ui/lab/Alert';\r\n// import SendIcon from '@material-ui/icons/Send';\r\n\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\n\r\nimport { Formik, Field } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport { formatDate } from '../../Core/Utils/Utils';\r\nimport style from './styles';\r\n\r\nimport {\r\n PlnDropdown,\r\n PlnInput,\r\n} from '../../Components/Input';\r\n\r\nimport Copyright from '../Copyright/Copyright';\r\nimport ListSearch from '../../Components/ListSearch/ListSearch';\r\n\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Storage from '../../Storage/Storage';\r\nimport REGEX from '../../Core/Utils/RegExpUtils';\r\n\r\nimport { newDeposito } from '../../Core/Api/depositosApi';\r\nimport {\r\n useCRUDAvailable,\r\n useCRUDAvailableSectores,\r\n} from '../../Core/Api/periodoApi';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nconst AddDeposito = props => {\r\n // Se valida si esta habilitado CRUD\r\n const isCRUDAvailable = useCRUDAvailable();\r\n const isCRUDAvailableSectores = useCRUDAvailableSectores();\r\n const crudAvailable =\r\n Lodash.get(\r\n isCRUDAvailable,\r\n ['data', 'response'],\r\n null,\r\n ) ||\r\n Lodash.get(\r\n isCRUDAvailableSectores,\r\n ['data', 'response'],\r\n null,\r\n );\r\n const { classes } = props;\r\n const history = useHistory();\r\n\r\n const [user, setUser] = useState([]);\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n const today = new Date();\r\n const [dateField, setDateField] = useState(null);\r\n\r\n const [isSaving, setIsSaving] = useState(false);\r\n\r\n const [sexFieldAs] = useState('');\r\n const [isSexOrderRequired] = useState(true);\r\n const [onlyJuventud] = useState(false);\r\n\r\n const tokenData = Storage.instance;\r\n const { decodedToken } = useJwt(tokenData.getToken());\r\n\r\n const [msjDialog, setMsjDialog] = useState('');\r\n const [open, setOpenDialog] = React.useState(false);\r\n const [finalDialog, setFinalDialog] = React.useState(\r\n false,\r\n );\r\n const handleClose = () => {\r\n setOpenDialog(false);\r\n setIsSaving(false);\r\n };\r\n\r\n const closeFinalDialog = () => {\r\n history.push('/registro-depositos');\r\n };\r\n\r\n // Date Options\r\n const options = {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n // timeZone: 'UTC',\r\n };\r\n\r\n // const today = new Date();\r\n // setDateField(today);\r\n\r\n useEffect(() => {\r\n if (decodedToken !== null) {\r\n setUser(decodedToken);\r\n }\r\n }, [decodedToken]);\r\n\r\n const [showForm] = useState(true);\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n const [sTipoDeposito, setSTipoDeposito] = useState(9);\r\n\r\n const [listAddDeposito] = useState(\r\n Consts.initListAddDeposito,\r\n );\r\n\r\n const [initialValues] = useState({\r\n tipoDeposito: 9,\r\n depositante: '',\r\n numDeposito: '',\r\n dateDeposito: null,\r\n montoDeposito: 0,\r\n });\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n const [tiposDepositos, setTiposDeposito] = useState([\r\n { itemLabel: '- TIPO DEPOSITO -', value: 9 },\r\n { itemLabel: 'Membresías', value: 1 },\r\n { itemLabel: 'Inscripciones', value: 2 },\r\n ]);\r\n\r\n const setTipoDeposito = d => {\r\n initialValues.tipoDeposito = d;\r\n if (d !== 9) {\r\n setSTipoDeposito(\r\n Lodash.find(tiposDepositos, {\r\n value: d,\r\n }),\r\n );\r\n }\r\n };\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const formikValidate = values => {\r\n const errors = {};\r\n const {\r\n numDeposito,\r\n montoDeposito,\r\n dateDeposito,\r\n depositante,\r\n } = values;\r\n\r\n if (!depositante) {\r\n errors.depositante = 'Digite una cédula válida.';\r\n } else if (!REGEX.cedula.test(depositante)) {\r\n errors.depositante = 'Formato incorrecto';\r\n }\r\n\r\n if (!dateDeposito) {\r\n errors.dateDeposito = 'Defina la fecha';\r\n }\r\n\r\n if (!numDeposito || parseInt(numDeposito, 10) === 0) {\r\n errors.numDeposito = 'Digite un número';\r\n } else if (!REGEX.digits.test(numDeposito)) {\r\n errors.numDeposito = 'Sólo se permiten números';\r\n }\r\n\r\n if (!montoDeposito || parseInt(numDeposito, 10) === 0) {\r\n errors.montoDeposito = 'Digite un monto';\r\n } else if (!REGEX.digits.test(montoDeposito)) {\r\n errors.montoDeposito = 'Sólo se permiten números';\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n const saveForm = (values, { setSubmitting }) => {\r\n setSubmitting(false);\r\n const {\r\n depositante,\r\n montoDeposito,\r\n numDeposito,\r\n tipoDeposito,\r\n dateDeposito,\r\n } = values;\r\n\r\n const depositoData = {\r\n ced_responsable: user.num_cedula,\r\n num_deposito: parseInt(numDeposito),\r\n num_monto: parseInt(montoDeposito),\r\n ced_depositante: depositante,\r\n des_usuario: user.des_login,\r\n ind_deposito: tipoDeposito - 1,\r\n fec_deposito: formatDate(\r\n dateDeposito.toLocaleDateString('es-ES', options),\r\n ),\r\n };\r\n\r\n newDeposito({ depositoData }).then(rNew => {\r\n const response = Lodash.get(\r\n rNew,\r\n ['data', 'response'],\r\n false,\r\n );\r\n\r\n if (response) {\r\n setSubmitting(false);\r\n setMsjDialog(\r\n 'El Depósito se ALMACENÓ correctamente.',\r\n );\r\n setFinalDialog(true);\r\n } else {\r\n setMsjDialog('La Deposito NO pudo ser efectuado');\r\n setSubmitting(false);\r\n setOpenDialog(true);\r\n }\r\n });\r\n };\r\n\r\n AddDeposito.propTypes = {};\r\n\r\n return (\r\n <>\r\n {crudAvailable ? (\r\n \r\n \r\n \r\n \r\n \r\n Nueva Depósito\r\n {\r\n history.push('/registro-depositos');\r\n }}\r\n >\r\n Regresar\r\n \r\n \r\n \r\n {formik => (\r\n <>\r\n
\r\n \r\n\r\n {showForm ? (\r\n
\r\n \r\n \r\n

Tipo Depósito:

\r\n \r\n setTipoDeposito(tipo)\r\n }\r\n />\r\n
\r\n \r\n \r\n \r\n Datos del Depósito\r\n \r\n \r\n \r\n \r\n Fecha del Depósito\r\n \r\n \r\n {\r\n setDateField(date);\r\n formik.setFieldValue(\r\n 'dateDeposito',\r\n date,\r\n );\r\n }}\r\n />\r\n
\r\n {formik.errors\r\n .dateDeposito &&\r\n formik.touched\r\n .dateDeposito ? (\r\n \r\n \r\n {\r\n formik.errors\r\n .dateDeposito\r\n }\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n Cédula Gestor\r\n \r\n \r\n {user.num_cedula}\r\n \r\n \r\n \r\n \r\n Nombre del Gestor\r\n \r\n \r\n {user.des_nombre}\r\n \r\n \r\n \r\n \r\n Número del Depósito\r\n \r\n \r\n {formik.errors\r\n .numDeposito &&\r\n formik.touched\r\n .numDeposito ? (\r\n \r\n \r\n {\r\n formik.errors\r\n .numDeposito\r\n }\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n Monto del Depósito\r\n \r\n \r\n {formik.errors\r\n .montoDeposito &&\r\n formik.touched\r\n .montoDeposito ? (\r\n \r\n \r\n {\r\n formik.errors\r\n .montoDeposito\r\n }\r\n \r\n \r\n ) : null}\r\n \r\n \r\n\r\n {}}\r\n validateBy={[\r\n {\r\n dataVal: 'none',\r\n value: 1,\r\n },\r\n ]}\r\n requireSexOrder={\r\n isSexOrderRequired\r\n }\r\n sexFieldAs={sexFieldAs}\r\n onlyJuventud={onlyJuventud}\r\n hideSexColumn\r\n needHojaInfo={false}\r\n />\r\n {formik.errors.depositante &&\r\n formik.touched.depositante ? (\r\n \r\n \r\n {\r\n formik.errors\r\n .depositante\r\n }\r\n \r\n \r\n ) : null}\r\n\r\n \r\n \r\n \r\n {formik.isSubmitting ? (\r\n \r\n ) : (\r\n <>\r\n Guardar\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Entendido\r\n \r\n \r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Cerrar\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n

\r\n Esta sección se encuentra temporalmente\r\n deshabilitada.
\r\n Favor comunicarse con Ezequiel Hernández al\r\n 2519-5521 o al correo\r\n ehernandez@plndigital.com\r\n

\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default withStyles(style)(AddDeposito);\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport Lodash from 'lodash';\r\nimport { useJwt } from 'react-jwt';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport DatePicker from 'react-datepicker';\r\nimport 'react-datepicker/dist/react-datepicker.css';\r\nimport { Grid, Button, Divider } from '@material-ui/core';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Box from '@material-ui/core/Box';\r\nimport Container from '@material-ui/core/Container';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport Alert from '@material-ui/lab/Alert';\r\n\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\n\r\nimport { Formik, Field } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport { formatDate } from '../../Core/Utils/Utils';\r\nimport style from './styles';\r\n\r\nimport {\r\n PlnDropdown,\r\n PlnInput,\r\n} from '../../Components/Input';\r\nimport Loading from '../../Components/Loading/Loading';\r\n\r\nimport Copyright from '../Copyright/Copyright';\r\nimport ListSearch from '../../Components/ListSearch/ListSearch';\r\n\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Storage from '../../Storage/Storage';\r\nimport REGEX from '../../Core/Utils/RegExpUtils';\r\n\r\nimport {\r\n getDepositInfoByCod,\r\n updateDeposito,\r\n} from '../../Core/Api/depositosApi';\r\n\r\nimport {\r\n useCRUDAvailable,\r\n useCRUDAvailableSectores,\r\n} from '../../Core/Api/periodoApi';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nconst EditDeposito = props => {\r\n // Se valida si esta habilitado CRUD\r\n const isCRUDAvailable = useCRUDAvailable();\r\n const isCRUDAvailableSectores = useCRUDAvailableSectores();\r\n const crudAvailable =\r\n Lodash.get(\r\n isCRUDAvailable,\r\n ['data', 'response'],\r\n null,\r\n ) ||\r\n Lodash.get(\r\n isCRUDAvailableSectores,\r\n ['data', 'response'],\r\n null,\r\n );\r\n\r\n const { classes } = props;\r\n const history = useHistory();\r\n const { id } = useParams();\r\n\r\n const [user, setUser] = useState([]);\r\n\r\n const [dateField, setDateField] = useState(null);\r\n\r\n const [isSaving, setIsSaving] = useState(false);\r\n\r\n const [isLoadingData, setLoading] = useState(true);\r\n const tokenData = Storage.instance;\r\n const { decodedToken } = useJwt(tokenData.getToken());\r\n\r\n const [msjDialog, setMsjDialog] = useState('');\r\n const [open, setOpenDialog] = React.useState(false);\r\n const [finalDialog, setFinalDialog] = React.useState(\r\n false,\r\n );\r\n\r\n const defaultDepositData = {\r\n tipoDeposito: 9,\r\n depositante: '',\r\n numDeposito: '',\r\n dateDeposito: null,\r\n montoDeposito: '',\r\n };\r\n\r\n const [depositInfo, setDepositInfo] = useState(\r\n defaultDepositData,\r\n );\r\n\r\n const [initialValues] = useState({\r\n tipoDeposito: 9,\r\n depositante: '',\r\n numDeposito: '',\r\n dateDeposito: null,\r\n montoDeposito: '',\r\n });\r\n\r\n const [showForm] = useState(true);\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n const [sTipoDeposito, setSTipoDeposito] = useState(9);\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n const [listAddDeposito, setListDeposito] = useState(\r\n Consts.initListAddDeposito,\r\n );\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n const [tiposDepositos, setTiposDeposito] = useState([\r\n { itemLabel: '- TIPO DEPOSITO -', value: 9 },\r\n { itemLabel: 'Membresías', value: 1 },\r\n { itemLabel: 'Inscripciones', value: 2 },\r\n ]);\r\n\r\n const handleClose = () => {\r\n setOpenDialog(false);\r\n setIsSaving(false);\r\n };\r\n\r\n const closeFinalDialog = () => {\r\n history.push('/registro-depositos');\r\n };\r\n\r\n const setTipoDeposito = d => {\r\n initialValues.tipoDeposito = d;\r\n if (d !== 9) {\r\n setSTipoDeposito(\r\n Lodash.find(tiposDepositos, {\r\n value: d,\r\n }),\r\n );\r\n }\r\n };\r\n\r\n const loadDepositDetails = async _codDeposito => {\r\n try {\r\n let dataSet = {};\r\n if (_codDeposito) {\r\n const info = await getDepositInfoByCod(\r\n _codDeposito,\r\n );\r\n\r\n const data = info.data.response;\r\n\r\n if (data instanceof Array && info.status === 200) {\r\n dataSet = {\r\n depositante: data[0].num_cedula,\r\n nombreDepositante: `${data[0].des_nombre} ${data[0].des_apell1} ${data[0].des_apell2}`,\r\n numDeposito: parseInt(data[0].num_deposito, 10),\r\n montoDeposito: parseInt(data[0].num_monto, 10),\r\n dateDeposito: new Date(data[0].fec_deposito),\r\n tipoDeposito:\r\n parseInt(data[0].ind_deposito, 10) + 1,\r\n };\r\n } else {\r\n dataSet = defaultDepositData;\r\n }\r\n } else {\r\n dataSet = defaultDepositData;\r\n }\r\n setDateField(dataSet.dateDeposito);\r\n setDepositInfo(dataSet);\r\n setTipoDeposito(dataSet.tipoDeposito);\r\n\r\n setLoading(false);\r\n } catch (error) {\r\n // eslint-disable-next-line no-console\r\n console.warn(error);\r\n }\r\n };\r\n\r\n // Date Options\r\n const options = {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n // timeZone: 'UTC',\r\n };\r\n\r\n useEffect(() => {\r\n if (decodedToken !== null) {\r\n setUser(decodedToken);\r\n }\r\n }, [decodedToken]);\r\n\r\n useEffect(() => {\r\n async function fetchAPI() {\r\n const codDeposito = parseInt(id, 10);\r\n\r\n if (codDeposito < 0) {\r\n history.push('/registro-depositos');\r\n } else {\r\n setLoading(true);\r\n await loadDepositDetails(codDeposito);\r\n }\r\n }\r\n\r\n fetchAPI();\r\n }, []);\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const formikValidate = values => {\r\n const errors = {};\r\n const {\r\n numDeposito,\r\n montoDeposito,\r\n dateDeposito,\r\n depositante,\r\n } = values;\r\n\r\n if (!depositante) {\r\n errors.depositante = 'Digite una cédula válida.';\r\n } else if (!REGEX.cedula.test(depositante)) {\r\n errors.depositante = 'Formato incorrecto';\r\n }\r\n\r\n if (!dateDeposito) {\r\n errors.dateDeposito = 'Defina la fecha';\r\n }\r\n\r\n if (!numDeposito || parseInt(numDeposito, 10) === 0) {\r\n errors.numDeposito = 'Digite un número';\r\n } else if (!REGEX.digits.test(numDeposito)) {\r\n errors.numDeposito = 'Sólo se permiten números';\r\n }\r\n\r\n if (!montoDeposito || parseInt(numDeposito, 10) === 0) {\r\n errors.montoDeposito = 'Digite un monto';\r\n } else if (!REGEX.digits.test(montoDeposito)) {\r\n errors.montoDeposito = 'Sólo se permiten números';\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n const saveForm = (values, { setSubmitting }) => {\r\n setSubmitting(false);\r\n const {\r\n depositante,\r\n montoDeposito,\r\n numDeposito,\r\n tipoDeposito,\r\n dateDeposito,\r\n } = values;\r\n\r\n const depositoData = {\r\n cod_deposito: id,\r\n ced_responsable: user.num_cedula,\r\n num_deposito: parseInt(numDeposito, 10),\r\n num_monto: parseInt(montoDeposito, 10),\r\n ced_depositante: depositante,\r\n des_usuario: user.des_login,\r\n ind_deposito: tipoDeposito - 1,\r\n fec_deposito: formatDate(\r\n dateDeposito.toLocaleDateString('es-ES', options),\r\n ),\r\n };\r\n\r\n updateDeposito({ depositoData })\r\n .then(_rs => {\r\n const { data, status } = _rs;\r\n\r\n if (data.response.status && status === 200) {\r\n setSubmitting(false);\r\n setMsjDialog(\r\n `El Depósito # ${id}. ha sido actualizado.`,\r\n );\r\n setFinalDialog(true);\r\n } else {\r\n setMsjDialog(\r\n 'Error al intentar actualizar el depósito. Intente de nuevo!.',\r\n );\r\n setSubmitting(false);\r\n setOpenDialog(true);\r\n }\r\n })\r\n // eslint-disable-next-line no-console\r\n .catch(_err => console.log(_err));\r\n };\r\n\r\n return (\r\n <>\r\n {crudAvailable ? (\r\n \r\n \r\n \r\n \r\n \r\n Editar Depósito\r\n {\r\n history.push('/registro-depositos');\r\n }}\r\n >\r\n Regresar\r\n \r\n \r\n {!isLoadingData ? (\r\n \r\n {formik => (\r\n <>\r\n \r\n \r\n\r\n {showForm ? (\r\n
\r\n \r\n \r\n

Tipo Depósito:

\r\n \r\n setTipoDeposito(tipo)\r\n }\r\n />\r\n
\r\n \r\n \r\n \r\n Datos del Depósito\r\n \r\n \r\n \r\n \r\n Fecha del Depósito\r\n \r\n \r\n {\r\n setDateField(date);\r\n formik.setFieldValue(\r\n 'dateDeposito',\r\n date,\r\n );\r\n }}\r\n />\r\n
\r\n {formik.errors\r\n .dateDeposito &&\r\n formik.touched\r\n .dateDeposito ? (\r\n \r\n \r\n {\r\n formik.errors\r\n .dateDeposito\r\n }\r\n \r\n \r\n ) : null}\r\n
\r\n \r\n \r\n Cédula Gestor\r\n \r\n \r\n {user.num_cedula}\r\n \r\n \r\n \r\n \r\n Nombre del Gestor\r\n \r\n \r\n {user.des_nombre}\r\n \r\n \r\n \r\n \r\n Número del Depósito\r\n \r\n \r\n {formik.errors\r\n .numDeposito &&\r\n formik.touched\r\n .numDeposito ? (\r\n \r\n \r\n {\r\n formik.errors\r\n .numDeposito\r\n }\r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n Monto del Depósito\r\n \r\n \r\n {formik.errors\r\n .montoDeposito &&\r\n formik.touched\r\n .montoDeposito ? (\r\n \r\n \r\n {\r\n formik.errors\r\n .montoDeposito\r\n }\r\n \r\n \r\n ) : null}\r\n \r\n
\r\n\r\n \r\n {formik.errors.depositante &&\r\n formik.touched.depositante ? (\r\n \r\n \r\n {\r\n formik.errors\r\n .depositante\r\n }\r\n \r\n \r\n ) : null}\r\n\r\n \r\n \r\n \r\n {formik.isSubmitting ? (\r\n \r\n ) : (\r\n <>\r\n Guardar\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n \r\n )}\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Entendido\r\n \r\n \r\n \r\n \r\n \r\n Mensaje\r\n \r\n \r\n \r\n {msjDialog}\r\n \r\n \r\n \r\n \r\n Cerrar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n

\r\n Esta sección se encuentra temporalmente\r\n deshabilitada.
\r\n Favor comunicarse con Ezequiel Hernández al\r\n 2519-5521 o al correo\r\n ehernandez@plndigital.com\r\n

\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default withStyles(style)(EditDeposito);\r\n","function createData(\r\n tipo,\r\n consecutivo,\r\n cedula,\r\n candidato,\r\n monto,\r\n registro,\r\n last,\r\n) {\r\n return {\r\n tipo,\r\n consecutivo,\r\n cedula,\r\n candidato,\r\n monto,\r\n registro,\r\n last,\r\n };\r\n}\r\n\r\nexport const tableHeaders = [\r\n {\r\n name: 'Tipo',\r\n },\r\n {\r\n name: 'Consecutivo',\r\n },\r\n {\r\n name: 'Cedula',\r\n },\r\n {\r\n name: 'Gestor/Candidato',\r\n },\r\n {\r\n name: 'Monto',\r\n },\r\n {\r\n name: 'Registro',\r\n },\r\n];\r\n\r\nexport const dataRows = [\r\n createData(\r\n 'Distrital',\r\n '1',\r\n '111140239',\r\n 'Chistopher Barrantes Bolaños',\r\n '35000',\r\n '1/3/2025',\r\n ),\r\n createData(\r\n 'Nacional',\r\n '1',\r\n '401920238',\r\n 'Esteban Ramirez Ruiz',\r\n '35000',\r\n '1/3/2025',\r\n ),\r\n];\r\n","import axios from 'axios';\r\n// import Lodash from 'lodash';\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API_BASE_URL;\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const getAll = cedula => {\r\n const url = [`/debitos/byGestorED/${cedula}`];\r\n\r\n return axios.get(url.join('&'));\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useJwt } from 'react-jwt';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { tableHeaders } from './data';\r\nimport MacroList from '../MacroList/MacroList';\r\nimport Storage from '../../Storage/Storage';\r\nimport { getAll } from '../../Core/Api/debitosApi';\r\nimport { formatData } from '../../Core/Utils/Utils';\r\n\r\nfunction createData(_data) {\r\n return {\r\n tipo:\r\n _data.IND_PAPELETA === 0\r\n ? 'Membresía'\r\n : 'Inscripción',\r\n consecutivo: _data.CON_PAPELETA,\r\n cedula:\r\n _data.CED_CANDIDATO === null\r\n ? _data.CED_GESTOR\r\n : _data.CED_CANDIDATO,\r\n candidato:\r\n _data.CED_CANDIDATO === null\r\n ? _data.nom_gestor\r\n : _data.nom_candidato,\r\n monto: `${formatData(_data.NUM_MONTO)}`,\r\n fechaRegistro: _data.FEC_REGISTRO,\r\n actions: '',\r\n };\r\n}\r\n\r\nconst useStyles = makeStyles(() => ({\r\n btnAdd: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n '@media print': {\r\n display: 'none',\r\n },\r\n },\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n}));\r\n\r\nconst ConsultaDebitos = () => {\r\n const classes = useStyles();\r\n const tokenStorage = Storage.instance;\r\n\r\n const [items, setItems] = useState([]);\r\n const [isDataEmpty, setDataEmpty] = useState(false);\r\n\r\n const { decodedToken } = useJwt(tokenStorage.getToken());\r\n\r\n useEffect(() => {\r\n async function fetchListAPI() {\r\n if (decodedToken) {\r\n await getAll(decodedToken.num_cedula)\r\n .then(_response => {\r\n const info = _response.data.response;\r\n\r\n if (info instanceof Object) {\r\n const rowItems = info.map(row => {\r\n return createData(row);\r\n });\r\n\r\n setItems(rowItems);\r\n // setFilteredItems(rowItems);\r\n setDataEmpty(false);\r\n } else {\r\n setDataEmpty(true);\r\n }\r\n })\r\n .catch(_error => {\r\n // eslint-disable-next-line no-console\r\n console.log(_error);\r\n });\r\n }\r\n }\r\n\r\n fetchListAPI();\r\n }, [decodedToken]);\r\n\r\n /**\r\n * List all actions that a user can do for each item in the list\r\n */\r\n const setActions = () => {\r\n const actions = [];\r\n return actions;\r\n };\r\n\r\n return (\r\n <>\r\n {\r\n window.print();\r\n },\r\n }}\r\n showTotals\r\n actionConfig={setActions}\r\n tableHeads={tableHeaders}\r\n tableBody={items}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default ConsultaDebitos;\r\n","import { colors } from '../../Core/Theme/theme';\r\n\r\nconst styles = theme => ({\r\n container: {\r\n textAlign: 'left',\r\n color: colors.lightGray,\r\n paddingBottom: 80,\r\n '& h3': {\r\n color: colors.darkGray,\r\n marginTop: '50px',\r\n fontSize: '24px',\r\n marginBottom: '10px',\r\n },\r\n '& h4': {\r\n textWeight: 'bold',\r\n marginTop: '0px',\r\n marginBottom: '5px',\r\n },\r\n '& p': {\r\n marginTop: '0px',\r\n marginBottom: '5px',\r\n },\r\n },\r\n subtitle: { color: colors.green },\r\n subtitleDoc: { color: colors.darkGray },\r\n boxForm: {\r\n marginTop: '30px',\r\n },\r\n boxDocToPdf: {\r\n backgroundColor: colors.white,\r\n color: colors.darkGray,\r\n '& h3': {\r\n color: colors.green,\r\n marginTop: '50px',\r\n fontSize: '20px',\r\n marginBottom: '10px',\r\n },\r\n },\r\n sectionDesktop: {\r\n display: 'none',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'flex',\r\n },\r\n },\r\n sectionMobile: {\r\n display: 'flex',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n },\r\n textFilled: {\r\n background: '#f1f1f1',\r\n padding: '10px',\r\n width: '80%',\r\n margin: '0 auto',\r\n },\r\n customField: {\r\n background: '#fff',\r\n border: 'solid thin #999',\r\n padding: '10px',\r\n width: '250px',\r\n margin: '0 auto',\r\n },\r\n field: {\r\n border: 'solid thin #ccc',\r\n padding: 20,\r\n background: '#f1f1f1',\r\n },\r\n fieldFilled: {\r\n border: 'solid thin #ccc',\r\n padding: 10,\r\n background: '#f1f1f1',\r\n },\r\n});\r\n\r\nexport default styles;\r\n","/* eslint new-cap: [\"error\", { \"newIsCap\": false }] */\r\n/* eslint-disable camelcase */\r\nimport React, { useState } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Formik, Field } from 'formik';\r\nimport VisibilityIcon from '@material-ui/icons/Visibility';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport * as Yup from 'yup';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport { Container, Grid, Button } from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport {\r\n PlnDropdown,\r\n PlnInput,\r\n} from '../../Components/Input';\r\nimport MacroList from '../MacroList/MacroList';\r\nimport style from './styles';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Copyright from '../Copyright/Copyright';\r\n\r\nimport {\r\n useProvincias,\r\n getCantonsByProvince,\r\n getDistritoBy,\r\n} from '../../Core/Api/locationApi';\r\n\r\nimport {\r\n searchPapeletas,\r\n getDetallePapeleta,\r\n} from '../../Core/Api/papeletaDistrital';\r\n\r\nimport { useCustomMessage1Available } from '../../Core/Api/periodoApi';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nfunction createData(_data) {\r\n const filterEstado = Consts.estadosDistritales.filter(\r\n status => {\r\n return status.codigo === _data.cod_estado;\r\n },\r\n );\r\n\r\n return {\r\n province: _data.des_nombre_p,\r\n canton: _data.des_nombre_c,\r\n distrito: _data.des_nombre_ad,\r\n numero: _data.numero,\r\n cod_estado: filterEstado[0].estado,\r\n cedula: _data.cedula_resp,\r\n gestor: _data.des_nombre,\r\n cod_papeleta: _data.cod_papeleta,\r\n };\r\n}\r\n\r\nconst CPPaletetasDistritales = props => {\r\n const { classes } = props;\r\n const { data } = useProvincias();\r\n\r\n // Se valida si esta habilitada el mensaje personalizado\r\n const isCustomMessage1Available = useCustomMessage1Available();\r\n const customMessage1Available = Lodash.get(\r\n isCustomMessage1Available,\r\n ['data', 'response'],\r\n null,\r\n );\r\n\r\n const [showResults, setShowResults] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n // Opciones Seleccionadas\r\n const [sProvincia, setSProvincia] = useState(9);\r\n const [sCanton, setSCanton] = useState(999);\r\n // eslint-disable-next-line no-unused-vars\r\n const [sDistrito, setSDistrito] = useState(999);\r\n\r\n // INFORMACION DEL DETALLE DE LA PAPELETA\r\n const [rowSelected, setRowSelected] = useState({\r\n provincia: '',\r\n canton: '',\r\n distrito: '',\r\n numero: '',\r\n });\r\n const [delegados, setDelegados] = useState([]);\r\n const [comite, setComite] = useState([]);\r\n const [fiscales, setFiscales] = useState([]);\r\n\r\n const [isDataEmpty, setDataEmpty] = useState(false);\r\n const [filteredItems, setFilteredItems] = useState([\r\n ['', '', '', '', '', '', ''],\r\n ]); // used for filtering\r\n\r\n const [openPapeleta, setOpenPapeleta] = useState(false);\r\n const handleClose = () => {\r\n setOpenPapeleta(false);\r\n };\r\n\r\n const heads = [\r\n {\r\n name: 'Provincia',\r\n },\r\n {\r\n name: 'Cantón',\r\n },\r\n {\r\n name: 'Distrito',\r\n },\r\n {\r\n name: 'Número',\r\n },\r\n {\r\n name: 'Estado',\r\n },\r\n {\r\n name: 'Cédula',\r\n },\r\n {\r\n name: 'Nombre Gestor(a)',\r\n },\r\n ];\r\n\r\n // Lista de: Provincias, Cantones, Distritos y Movimientos\r\n const [initialValues] = useState(\r\n Lodash.get(data, ['initValues'], {\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n numero: '',\r\n }),\r\n );\r\n\r\n const provincias = Lodash.get(\r\n data,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n const [cantones, setCantones] = useState([\r\n { itemLabel: '- SELECCIONE EL CANTÓN-', value: 999 },\r\n ]);\r\n const [distritos, setDistritos] = useState([\r\n { itemLabel: '- SELECCIONE EL DISTRITO-', value: 999 },\r\n ]);\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const setProvincia = p => {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n },\r\n ]);\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n initialValues.provincia = p;\r\n initialValues.canton = 999;\r\n initialValues.distrito = 999;\r\n if (p !== 9) {\r\n getCantonsByProvince(p).then(result => {\r\n if (result.status === 200) {\r\n const cantonsList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const clist = cantonsList.map(\r\n ({ cod_canton, des_nombre_c }) => {\r\n return {\r\n itemLabel: des_nombre_c,\r\n value: cod_canton,\r\n };\r\n },\r\n );\r\n clist.unshift({\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n });\r\n\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: p,\r\n }),\r\n );\r\n setCantones(clist);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const setCanton = c => {\r\n initialValues.distrito = 999;\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = c;\r\n initialValues.movimiento = 9;\r\n\r\n if (c !== 999) {\r\n getDistritoBy(sProvincia.value, c).then(result => {\r\n if (result.status === 200) {\r\n const distritosList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n const dlist = distritosList.map(\r\n ({ cod_dist_ad, des_nombre_ad }) => {\r\n return {\r\n itemLabel: des_nombre_ad,\r\n value: cod_dist_ad,\r\n };\r\n },\r\n );\r\n dlist.unshift({\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n });\r\n\r\n setSCanton(\r\n Lodash.find(cantones, {\r\n value: c,\r\n }),\r\n );\r\n\r\n setDistritos(dlist);\r\n }\r\n });\r\n } else {\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n const setDistrito = d => {\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = sCanton.value;\r\n initialValues.distrito = d;\r\n if (d !== 999) {\r\n setSDistrito(\r\n Lodash.find(distritos, {\r\n value: d,\r\n }),\r\n );\r\n } else {\r\n setSDistrito({ itemLabel: '', value: 0 });\r\n }\r\n };\r\n\r\n const doSearch = values => () => {\r\n setShowResults(true);\r\n setIsLoading(true);\r\n const { canton, distrito, numero, provincia } = values;\r\n const codProvincia = provincia === 9 ? -1 : provincia;\r\n const codCanton = canton === 999 ? -1 : canton;\r\n const codDistrito = distrito === 999 ? -1 : distrito;\r\n const numPapeleta = numero === '' ? -1 : numero;\r\n searchPapeletas(\r\n codProvincia,\r\n codCanton,\r\n codDistrito,\r\n numPapeleta,\r\n ).then(result => {\r\n setIsLoading(false);\r\n const info = Lodash.get(\r\n result,\r\n ['data', 'response'],\r\n [],\r\n );\r\n\r\n if (info instanceof Object && info.length > 0) {\r\n const rowItems = info.map(row => {\r\n return createData(row);\r\n });\r\n setFilteredItems(rowItems);\r\n setDataEmpty(false);\r\n } else {\r\n setFilteredItems([]);\r\n setDataEmpty(true);\r\n }\r\n });\r\n };\r\n\r\n const renderForm = () => {\r\n return (\r\n
\r\n \r\n \r\n

Provincia

\r\n \r\n setProvincia(provincia)\r\n }\r\n />\r\n
\r\n \r\n

Cantón

\r\n setCanton(canton)}\r\n />\r\n
\r\n \r\n

Distrito Administrativo

\r\n setDistrito(distrito)}\r\n />\r\n
\r\n \r\n

Número

\r\n \r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n const consultar = (\r\n provincia,\r\n canton,\r\n distrito,\r\n numero,\r\n codPapeleta,\r\n ) => {\r\n const newRow = {\r\n ...rowSelected,\r\n provincia,\r\n canton,\r\n distrito,\r\n numero,\r\n };\r\n\r\n getDetallePapeleta(codPapeleta).then(result => {\r\n setRowSelected(newRow);\r\n\r\n const nComite = Lodash.get(\r\n result,\r\n ['data', 'response', 'comite'],\r\n [],\r\n );\r\n const nDelegados = Lodash.get(\r\n result,\r\n ['data', 'response', 'delegados'],\r\n [],\r\n );\r\n const nFiscales = Lodash.get(\r\n result,\r\n ['data', 'response', 'fiscales'],\r\n [],\r\n );\r\n setDelegados(nDelegados);\r\n setComite(nComite);\r\n setFiscales(nFiscales);\r\n setOpenPapeleta(true);\r\n });\r\n };\r\n\r\n /**\r\n * List all actions that a user can do for each item in the list\r\n */\r\n const setActions = () => {\r\n const actions = [];\r\n\r\n const actionConsultar = {\r\n aria: 'Consultar',\r\n key: 'consultar',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n consultar(\r\n _item.province,\r\n _item.canton,\r\n _item.distrito,\r\n _item.numero,\r\n _item.cod_papeleta,\r\n );\r\n },\r\n };\r\n\r\n actions.push(actionConsultar);\r\n\r\n return actions;\r\n };\r\n\r\n const renderTable = type => {\r\n let title = '';\r\n let list = [];\r\n\r\n if (type === 'delegados') {\r\n title = 'Candidatos(as) Delegados(as) Distritales';\r\n list = delegados;\r\n } else if (type === 'comite') {\r\n title =\r\n 'Candidatos(as) al Comité Ejecutivo Distrital';\r\n list = comite;\r\n } else if (type === 'fiscales') {\r\n title = 'Candidatos para la Fiscalía';\r\n list = fiscales;\r\n }\r\n return (\r\n
\r\n \r\n {title}\r\n \r\n\r\n \r\n \r\n \r\n \r\n Lugar\r\n \r\n \r\n Cédula\r\n \r\n \r\n Nombre\r\n \r\n \r\n \r\n \r\n {list.map(l => (\r\n \r\n \r\n {l[0]}\r\n \r\n {l[1]}\r\n {l[2]}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n if (!Lodash.isEmpty(provincias)) {\r\n return (\r\n \r\n

CONSULTA PÚBLICA DE INSCRIPCIONES

\r\n

\r\n Papeletas Distritales\r\n

\r\n {customMessage1Available && (\r\n \r\n \r\n

\r\n El Departamento de Contabilidad aún se\r\n encuentra procesando los comprobantes de\r\n pago recibidos. El TEI se encuentra en\r\n revisión de inscripción de papeletas en el\r\n cantón de La Unión.\r\n

\r\n \r\n \r\n )}\r\n \r\n {formik => (\r\n <>\r\n {renderForm()}\r\n \r\n \r\n \r\n BUSCAR\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n {showResults &&\r\n (!isLoading ? (\r\n \r\n (window.location.href = `/distritales/add`),\r\n }}\r\n actionConfig={setActions}\r\n tableHeads={heads}\r\n tableBody={filteredItems}\r\n displayCopyright={false}\r\n isCrudAvailable={false}\r\n />\r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n \r\n Detalle Papeleta Distrital\r\n \r\n \r\n \r\n \r\n \r\n \r\n Provincia\r\n \r\n \r\n Cantón\r\n \r\n \r\n Distrito\r\n \r\n \r\n Número\r\n \r\n \r\n \r\n \r\n \r\n \r\n {rowSelected.provincia}\r\n \r\n \r\n {rowSelected.canton}\r\n \r\n \r\n {rowSelected.distrito}\r\n \r\n \r\n {rowSelected.numero}\r\n \r\n \r\n \r\n
\r\n {renderTable('delegados')}\r\n {renderTable('comite')}\r\n {renderTable('fiscales')}\r\n
\r\n \r\n \r\n Cerrar\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n return '';\r\n};\r\n\r\nCPPaletetasDistritales.propTypes = {};\r\n\r\nexport default withStyles(style)(CPPaletetasDistritales);\r\n","/* eslint new-cap: [\"error\", { \"newIsCap\": false }] */\r\n/* eslint-disable camelcase */\r\nimport React, { useState, useEffect } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Formik, Field } from 'formik';\r\nimport VisibilityIcon from '@material-ui/icons/Visibility';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport * as Yup from 'yup';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport { Container, Grid, Button } from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport {\r\n PlnDropdown,\r\n PlnInput,\r\n} from '../../Components/Input';\r\nimport MacroList from '../MacroList/MacroList';\r\nimport style from './styles';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Copyright from '../Copyright/Copyright';\r\n\r\nimport {\r\n useProvincias,\r\n getCantonsByProvince,\r\n useMovimientos,\r\n} from '../../Core/Api/locationApi';\r\n\r\nimport {\r\n searchPapeletas,\r\n getDetallePapeleta,\r\n} from '../../Core/Api/papeletaCantonal';\r\n\r\nimport { useCustomMessage1Available } from '../../Core/Api/periodoApi';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nfunction createData(_data) {\r\n const filterEstado = Consts.estadosDistritales.filter(\r\n status => {\r\n return status.codigo === _data.cod_estado;\r\n },\r\n );\r\n\r\n return {\r\n province: _data.des_nombre_p,\r\n canton: _data.des_nombre_c,\r\n movimiento: _data.des,\r\n numero: _data.numero,\r\n cod_estado: filterEstado[0].estado,\r\n cedula: _data.cedula_resp,\r\n gestor: _data.des_nombre,\r\n cod_papeleta: _data.cod_papeleta,\r\n };\r\n}\r\n\r\nconst CPPapeletasCantonales = props => {\r\n const { classes } = props;\r\n const { data } = useProvincias();\r\n\r\n // Se valida si esta habilitada el mensaje personalizado\r\n const isCustomMessage1Available = useCustomMessage1Available();\r\n const customMessage1Available = Lodash.get(\r\n isCustomMessage1Available,\r\n ['data', 'response'],\r\n null,\r\n );\r\n\r\n const listMovimientos = useMovimientos();\r\n\r\n const [showResults, setShowResults] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n // Opciones Seleccionadas\r\n const [sProvincia, setSProvincia] = useState([\r\n { itemLabel: '- SELECCIONE LA PROVINCIA -', value: 9 },\r\n ]);\r\n const [sCanton, setSCanton] = useState([\r\n { itemLabel: '- SELECCIONE EL CANTON -', value: 999 },\r\n ]);\r\n // eslint-disable-next-line no-unused-vars\r\n const [sMovimiento, setSMovimiento] = useState(9);\r\n\r\n // INFORMACION DEL DETALLE DE LA PAPELETA\r\n const [rowSelected, setRowSelected] = useState({\r\n provincia: '',\r\n canton: '',\r\n movimiento: '',\r\n numero: '',\r\n });\r\n\r\n const [comite, setComite] = useState([]);\r\n\r\n const [isDataEmpty, setDataEmpty] = useState(false);\r\n const [filteredItems, setFilteredItems] = useState([\r\n ['', '', '', '', '', '', ''],\r\n ]); // used for filtering\r\n\r\n const [openPapeleta, setOpenPapeleta] = useState(false);\r\n const handleClose = () => {\r\n setOpenPapeleta(false);\r\n };\r\n\r\n const heads = [\r\n {\r\n name: 'Provincia',\r\n },\r\n {\r\n name: 'Cantón',\r\n },\r\n {\r\n name: 'Movimiento',\r\n },\r\n {\r\n name: 'Número',\r\n },\r\n {\r\n name: 'Estado',\r\n },\r\n {\r\n name: 'Cédula',\r\n },\r\n {\r\n name: 'Nombre Gestor(a)',\r\n },\r\n ];\r\n\r\n // Lista de: Provincias, Cantones, Movimientos\r\n const [initialValues] = useState(\r\n Lodash.get(data, ['initValues'], {\r\n provincia: 9,\r\n canton: 999,\r\n movimiento: 9,\r\n numero: '',\r\n }),\r\n );\r\n\r\n const provincias = Lodash.get(\r\n data,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n const [cantones, setCantones] = useState([\r\n { itemLabel: '- SELECCIONE EL CANTÓN-', value: 999 },\r\n ]);\r\n\r\n // eslint-disable-next-line prefer-const\r\n let startMovimientos = [\r\n { itemLabel: '- SELECCIONE EL MOVIMIENTO -', value: 9 },\r\n ];\r\n const [movimientos, setMovimientos] = useState(\r\n startMovimientos,\r\n );\r\n\r\n useEffect(() => {\r\n setMovimientos(\r\n Lodash.get(\r\n listMovimientos,\r\n ['data', 'frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ],\r\n ),\r\n );\r\n }, [listMovimientos]);\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const setProvincia = p => {\r\n initialValues.provincia = p;\r\n initialValues.canton = 999;\r\n initialValues.movimiento = 9;\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n },\r\n ]);\r\n setMovimientos([\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ]);\r\n setSMovimiento(\r\n Lodash.find(movimientos, {\r\n value: 9,\r\n }),\r\n );\r\n if (p !== 9) {\r\n getCantonsByProvince(p).then(result => {\r\n if (result.status === 200) {\r\n const cantonsList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const clist = cantonsList.map(\r\n ({ cod_canton, des_nombre_c }) => {\r\n return {\r\n itemLabel: des_nombre_c,\r\n value: cod_canton,\r\n };\r\n },\r\n );\r\n clist.unshift({\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n });\r\n\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: p,\r\n }),\r\n );\r\n setCantones(clist);\r\n }\r\n });\r\n } else {\r\n setSProvincia(9);\r\n setSCanton(999);\r\n }\r\n };\r\n\r\n const setCanton = c => {\r\n initialValues.distrito = 999;\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = c;\r\n initialValues.movimiento = 9;\r\n\r\n if (c !== 999) {\r\n setSCanton(\r\n Lodash.find(cantones, {\r\n value: c,\r\n }),\r\n );\r\n setMovimientos(\r\n Lodash.get(\r\n listMovimientos,\r\n ['data', 'frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ],\r\n ),\r\n );\r\n setSMovimiento(\r\n Lodash.find(movimientos, {\r\n value: 9,\r\n }),\r\n );\r\n } else {\r\n setMovimientos([\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n const setMovimiento = d => {\r\n initialValues.provincia = sProvincia.value\r\n ? sProvincia.value\r\n : 9;\r\n initialValues.canton = sCanton.value\r\n ? sCanton.value\r\n : 999;\r\n initialValues.movimiento = d;\r\n if (d !== 9) {\r\n setSMovimiento(\r\n Lodash.find(movimientos, {\r\n value: d,\r\n }),\r\n );\r\n } else {\r\n setSMovimiento(\r\n Lodash.find(movimientos, {\r\n value: 9,\r\n }),\r\n );\r\n }\r\n };\r\n\r\n const doSearch = values => () => {\r\n setShowResults(true);\r\n setIsLoading(true);\r\n const {\r\n canton,\r\n movimiento,\r\n numero,\r\n provincia,\r\n } = values;\r\n const codProvincia = provincia === 9 ? -1 : provincia;\r\n const codCanton = canton === 999 ? -1 : canton;\r\n const codMovimiento =\r\n movimiento === 9 ? -1 : movimiento;\r\n const numPapeleta = numero === '' ? -1 : numero;\r\n searchPapeletas(\r\n codProvincia,\r\n codCanton,\r\n codMovimiento,\r\n numPapeleta,\r\n ).then(result => {\r\n setIsLoading(false);\r\n const info = Lodash.get(\r\n result,\r\n ['data', 'response'],\r\n [],\r\n );\r\n\r\n if (info instanceof Object && info.length > 0) {\r\n const rowItems = info.map(row => {\r\n return createData(row);\r\n });\r\n setFilteredItems(rowItems);\r\n setDataEmpty(false);\r\n } else {\r\n setFilteredItems([]);\r\n setDataEmpty(true);\r\n }\r\n });\r\n };\r\n\r\n const renderForm = () => {\r\n return (\r\n
\r\n \r\n \r\n

Provincia

\r\n \r\n setProvincia(provincia)\r\n }\r\n />\r\n
\r\n \r\n

Cantón

\r\n setCanton(canton)}\r\n />\r\n
\r\n \r\n

Movimiento

\r\n \r\n setMovimiento(movimiento)\r\n }\r\n />\r\n
\r\n \r\n

Número

\r\n \r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n const consultar = (\r\n provincia,\r\n canton,\r\n movimiento,\r\n numero,\r\n codPapeleta,\r\n ) => {\r\n const newRow = {\r\n ...rowSelected,\r\n provincia,\r\n canton,\r\n movimiento,\r\n numero,\r\n };\r\n\r\n getDetallePapeleta(codPapeleta).then(result => {\r\n setRowSelected(newRow);\r\n\r\n const nComite = Lodash.get(\r\n result,\r\n ['data', 'response', 'comite'],\r\n [],\r\n );\r\n\r\n setComite(nComite);\r\n setOpenPapeleta(true);\r\n });\r\n };\r\n\r\n /**\r\n * List all actions that a user can do for each item in the list\r\n */\r\n const setActions = () => {\r\n const actions = [];\r\n\r\n const actionConsultar = {\r\n aria: 'Consultar',\r\n key: 'consultar',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n consultar(\r\n _item.province,\r\n _item.canton,\r\n _item.movimiento,\r\n _item.numero,\r\n _item.cod_papeleta,\r\n );\r\n },\r\n };\r\n\r\n actions.push(actionConsultar);\r\n\r\n return actions;\r\n };\r\n\r\n const renderTable = () => {\r\n return (\r\n
\r\n \r\n Candidatos(as) Comité Político Cantonal\r\n \r\n\r\n \r\n \r\n \r\n \r\n Lugar\r\n \r\n \r\n Cédula\r\n \r\n \r\n Nombre\r\n \r\n \r\n \r\n \r\n {comite.map(l => (\r\n \r\n \r\n {l[0]}\r\n \r\n {l[1]}\r\n {l[2]}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n if (!Lodash.isEmpty(provincias)) {\r\n return (\r\n \r\n

CONSULTA PÚBLICA DE INSCRIPCIONES

\r\n

\r\n Papeletas Movimientos Cantonales\r\n

\r\n {customMessage1Available && (\r\n \r\n \r\n

\r\n El Departamento de Contabilidad aún se\r\n encuentra procesando los comprobantes de\r\n pago recibidos. El TEI se encuentra en\r\n revisión de inscripción de papeletas en el\r\n cantón de La Unión.\r\n

\r\n \r\n \r\n )}\r\n \r\n {formik => (\r\n <>\r\n {renderForm()}\r\n \r\n \r\n \r\n BUSCAR\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n {showResults &&\r\n (!isLoading ? (\r\n \r\n (window.location.href = `/cantonales/add`),\r\n }}\r\n actionConfig={setActions}\r\n tableHeads={heads}\r\n tableBody={filteredItems}\r\n displayCopyright={false}\r\n isCrudAvailable={false}\r\n />\r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n \r\n Detalle Papeleta Movimiento Cantonal\r\n \r\n \r\n \r\n \r\n \r\n \r\n Provincia\r\n \r\n \r\n Cantón\r\n \r\n \r\n Movimiento\r\n \r\n \r\n Número\r\n \r\n \r\n \r\n \r\n \r\n \r\n {rowSelected.provincia}\r\n \r\n \r\n {rowSelected.canton}\r\n \r\n \r\n {rowSelected.movimiento}\r\n \r\n \r\n {rowSelected.numero}\r\n \r\n \r\n \r\n
\r\n {renderTable()}\r\n
\r\n \r\n \r\n Cerrar\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n return '';\r\n};\r\n\r\nCPPapeletasCantonales.propTypes = {};\r\n\r\nexport default withStyles(style)(CPPapeletasCantonales);\r\n","/* eslint new-cap: [\"error\", { \"newIsCap\": false }] */\r\n/* eslint-disable camelcase */\r\nimport React, { useState, useEffect } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Formik, Field } from 'formik';\r\nimport VisibilityIcon from '@material-ui/icons/Visibility';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport * as Yup from 'yup';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport { Container, Grid, Button } from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport {\r\n PlnDropdown,\r\n PlnInput,\r\n} from '../../Components/Input';\r\nimport MacroList from '../MacroList/MacroList';\r\nimport style from './styles';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Copyright from '../Copyright/Copyright';\r\n\r\nimport {\r\n useProvincias,\r\n useMovimientos,\r\n} from '../../Core/Api/locationApi';\r\n\r\nimport {\r\n searchPapeletas,\r\n getDetallePapeleta,\r\n} from '../../Core/Api/papeletaProvincial';\r\n\r\nimport { useCustomMessage1Available } from '../../Core/Api/periodoApi';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nfunction createData(_data) {\r\n const filterEstado = Consts.estadosDistritales.filter(\r\n status => {\r\n return status.codigo === _data.cod_estado;\r\n },\r\n );\r\n\r\n return {\r\n province: _data.des_nombre_p,\r\n movimiento: _data.des,\r\n numero: _data.numero,\r\n cod_estado: filterEstado[0].estado,\r\n cedula: _data.cedula_resp,\r\n gestor: _data.des_nombre,\r\n cod_papeleta: _data.cod_papeleta,\r\n };\r\n}\r\n\r\nconst CPPapeletasProvinciales = props => {\r\n const { classes } = props;\r\n const { data } = useProvincias();\r\n const listMovimientos = useMovimientos();\r\n\r\n // Se valida si esta habilitada el mensaje personalizado\r\n const isCustomMessage1Available = useCustomMessage1Available();\r\n const customMessage1Available = Lodash.get(\r\n isCustomMessage1Available,\r\n ['data', 'response'],\r\n null,\r\n );\r\n\r\n const [showResults, setShowResults] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n // Opciones Seleccionadas\r\n const [sProvincia, setSProvincia] = useState([\r\n { itemLabel: '- SELECCIONE LA PROVINCIA -', value: 9 },\r\n ]);\r\n // eslint-disable-next-line no-unused-vars\r\n const [sMovimiento, setSMovimiento] = useState(9);\r\n\r\n // INFORMACION DEL DETALLE DE LA PAPELETA\r\n const [rowSelected, setRowSelected] = useState({\r\n provincia: '',\r\n movimiento: '',\r\n numero: '',\r\n });\r\n\r\n const [comite, setComite] = useState([]);\r\n\r\n const [isDataEmpty, setDataEmpty] = useState(false);\r\n const [filteredItems, setFilteredItems] = useState([\r\n ['', '', '', '', '', '', ''],\r\n ]); // used for filtering\r\n\r\n const [openPapeleta, setOpenPapeleta] = useState(false);\r\n const handleClose = () => {\r\n setOpenPapeleta(false);\r\n };\r\n\r\n const heads = [\r\n {\r\n name: 'Provincia',\r\n },\r\n {\r\n name: 'Movimiento',\r\n },\r\n {\r\n name: 'Número',\r\n },\r\n {\r\n name: 'Estado',\r\n },\r\n {\r\n name: 'Cédula',\r\n },\r\n {\r\n name: 'Nombre Gestor(a)',\r\n },\r\n ];\r\n\r\n // Lista de: Provincias, Movimientos\r\n const [initialValues] = useState(\r\n Lodash.get(data, ['initValues'], {\r\n provincia: 9,\r\n movimiento: 9,\r\n numero: '',\r\n }),\r\n );\r\n\r\n const provincias = Lodash.get(\r\n data,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n // eslint-disable-next-line prefer-const\r\n let startMovimientos = [\r\n { itemLabel: '- SELECCIONE EL MOVIMIENTO -', value: 9 },\r\n ];\r\n const [movimientos, setMovimientos] = useState(\r\n startMovimientos,\r\n );\r\n\r\n useEffect(() => {\r\n setMovimientos(\r\n Lodash.get(\r\n listMovimientos,\r\n ['data', 'frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ],\r\n ),\r\n );\r\n }, [listMovimientos]);\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const setProvincia = p => {\r\n initialValues.provincia = p;\r\n initialValues.movimiento = 9;\r\n setMovimientos([\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ]);\r\n setSMovimiento(\r\n Lodash.find(movimientos, {\r\n value: 9,\r\n }),\r\n );\r\n if (p !== 9) {\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: p,\r\n }),\r\n );\r\n } else {\r\n setSProvincia(9);\r\n }\r\n };\r\n\r\n const setMovimiento = d => {\r\n initialValues.provincia = sProvincia.value\r\n ? sProvincia.value\r\n : 9;\r\n initialValues.movimiento = d;\r\n if (d !== 9) {\r\n setSMovimiento(\r\n Lodash.find(movimientos, {\r\n value: d,\r\n }),\r\n );\r\n } else {\r\n setSMovimiento(\r\n Lodash.find(movimientos, {\r\n value: 9,\r\n }),\r\n );\r\n }\r\n };\r\n\r\n const doSearch = values => () => {\r\n setShowResults(true);\r\n setIsLoading(true);\r\n const { movimiento, numero, provincia } = values;\r\n const codProvincia = provincia === 9 ? -1 : provincia;\r\n const codMovimiento =\r\n movimiento === 9 ? -1 : movimiento;\r\n const numPapeleta = numero === '' ? -1 : numero;\r\n searchPapeletas(\r\n codProvincia,\r\n codMovimiento,\r\n numPapeleta,\r\n ).then(result => {\r\n setIsLoading(false);\r\n const info = Lodash.get(\r\n result,\r\n ['data', 'response'],\r\n [],\r\n );\r\n\r\n if (info instanceof Object && info.length > 0) {\r\n const rowItems = info.map(row => {\r\n return createData(row);\r\n });\r\n setFilteredItems(rowItems);\r\n setDataEmpty(false);\r\n } else {\r\n setFilteredItems([]);\r\n setDataEmpty(true);\r\n }\r\n });\r\n };\r\n\r\n const renderForm = () => {\r\n return (\r\n
\r\n \r\n \r\n

Provincia

\r\n \r\n setProvincia(provincia)\r\n }\r\n />\r\n
\r\n \r\n

Movimiento

\r\n \r\n setMovimiento(movimiento)\r\n }\r\n />\r\n
\r\n \r\n

Número

\r\n \r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n const consultar = (\r\n provincia,\r\n movimiento,\r\n numero,\r\n codPapeleta,\r\n ) => {\r\n const newRow = {\r\n ...rowSelected,\r\n provincia,\r\n movimiento,\r\n numero,\r\n };\r\n\r\n getDetallePapeleta(codPapeleta).then(result => {\r\n setRowSelected(newRow);\r\n\r\n const nComite = Lodash.get(\r\n result,\r\n ['data', 'response', 'comite'],\r\n [],\r\n );\r\n\r\n setComite(nComite);\r\n setOpenPapeleta(true);\r\n });\r\n };\r\n\r\n /**\r\n * List all actions that a user can do for each item in the list\r\n */\r\n const setActions = () => {\r\n const actions = [];\r\n\r\n const actionConsultar = {\r\n aria: 'Consultar',\r\n key: 'consultar',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n consultar(\r\n _item.province,\r\n _item.movimiento,\r\n _item.numero,\r\n _item.cod_papeleta,\r\n );\r\n },\r\n };\r\n\r\n actions.push(actionConsultar);\r\n\r\n return actions;\r\n };\r\n\r\n const renderTable = () => {\r\n return (\r\n
\r\n \r\n Candidatos(as) Representante Provincial\r\n \r\n\r\n \r\n \r\n \r\n \r\n Lugar\r\n \r\n \r\n Cédula\r\n \r\n \r\n Nombre\r\n \r\n \r\n \r\n \r\n {comite.map(l => (\r\n \r\n \r\n {l[0]}\r\n \r\n {l[1]}\r\n {l[2]}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n if (!Lodash.isEmpty(provincias)) {\r\n return (\r\n \r\n

CONSULTA PÚBLICA DE INSCRIPCIONES

\r\n

\r\n Papeletas Movimientos Provinciales\r\n

\r\n {customMessage1Available && (\r\n \r\n \r\n

\r\n El Departamento de Contabilidad aún se\r\n encuentra procesando los comprobantes de\r\n pago recibidos. El TEI se encuentra en\r\n revisión de inscripción de papeletas en el\r\n cantón de La Unión.\r\n

\r\n \r\n \r\n )}\r\n \r\n {formik => (\r\n <>\r\n {renderForm()}\r\n \r\n \r\n \r\n BUSCAR\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n {showResults &&\r\n (!isLoading ? (\r\n \r\n (window.location.href = `/provinciales/add`),\r\n }}\r\n actionConfig={setActions}\r\n tableHeads={heads}\r\n tableBody={filteredItems}\r\n displayCopyright={false}\r\n isCrudAvailable={false}\r\n />\r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n \r\n Detalle Papeleta Movimiento Provincial\r\n \r\n \r\n \r\n \r\n \r\n \r\n Provincia\r\n \r\n \r\n Movimiento\r\n \r\n \r\n Número\r\n \r\n \r\n \r\n \r\n \r\n \r\n {rowSelected.provincia}\r\n \r\n \r\n {rowSelected.movimiento}\r\n \r\n \r\n {rowSelected.numero}\r\n \r\n \r\n \r\n
\r\n {renderTable()}\r\n
\r\n \r\n \r\n Cerrar\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n return '';\r\n};\r\n\r\nCPPapeletasProvinciales.propTypes = {};\r\n\r\nexport default withStyles(style)(CPPapeletasProvinciales);\r\n","/* eslint new-cap: [\"error\", { \"newIsCap\": false }] */\r\n/* eslint-disable camelcase */\r\nimport React, { useState, useEffect } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Formik, Field } from 'formik';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport * as Yup from 'yup';\r\nimport { Container, Grid, Button } from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport { PlnDropdown } from '../../Components/Input';\r\nimport MacroList from '../MacroList/MacroList';\r\nimport style from './styles';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Copyright from '../Copyright/Copyright';\r\n\r\nimport {\r\n useProvincias,\r\n useMovimientos,\r\n} from '../../Core/Api/locationApi';\r\n\r\nimport { searchPapeletas } from '../../Core/Api/papeletaNacional';\r\n\r\nimport { useCustomMessage1Available } from '../../Core/Api/periodoApi';\r\n\r\nfunction createData(_data) {\r\n const filterEstado = Consts.estadosDistritales.filter(\r\n status => {\r\n return status.codigo === _data.cod_estado;\r\n },\r\n );\r\n const filterPuesto = Consts.puestosNacionales.filter(\r\n status => {\r\n return status.codigo === _data.num_puesto;\r\n },\r\n );\r\n return {\r\n movimiento: _data.des,\r\n puesto: filterPuesto[0].descripcion,\r\n lugar: _data.num_lugar,\r\n candidato: _data.num_cedula,\r\n nombre: _data.des_nombre_can,\r\n estado: filterEstado[0].estado,\r\n cedula: _data.cedula_resp,\r\n gestor: _data.des_nombre,\r\n cod_papeleta: _data.cod_papeleta,\r\n };\r\n}\r\n\r\nconst CPPapeletasNacionales = props => {\r\n const { classes } = props;\r\n const { data } = useProvincias();\r\n const listMovimientos = useMovimientos();\r\n\r\n // Se valida si esta habilitada el mensaje personalizado\r\n const isCustomMessage1Available = useCustomMessage1Available();\r\n const customMessage1Available = Lodash.get(\r\n isCustomMessage1Available,\r\n ['data', 'response'],\r\n null,\r\n );\r\n\r\n const [showResults, setShowResults] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n // Opciones Seleccionadas\r\n const [sMovimiento, setSMovimiento] = useState(9);\r\n // eslint-disable-next-line no-unused-vars\r\n const [sPuesto, setSPuesto] = useState(9);\r\n\r\n const [isDataEmpty, setDataEmpty] = useState(false);\r\n const [filteredItems, setFilteredItems] = useState([\r\n ['', '', '', '', '', '', ''],\r\n ]); // used for filtering\r\n\r\n const heads = [\r\n {\r\n name: 'Movimiento',\r\n },\r\n {\r\n name: 'Puesto',\r\n },\r\n {\r\n name: 'Lugar',\r\n },\r\n {\r\n name: 'Cédula',\r\n },\r\n {\r\n name: 'Candidato(a)',\r\n },\r\n {\r\n name: 'Estado',\r\n },\r\n {\r\n name: 'Cédula',\r\n },\r\n {\r\n name: 'Nombre Gestor(a)',\r\n },\r\n ];\r\n\r\n // Lista de: Provincias, Movimientos\r\n const [initialValues] = useState(\r\n Lodash.get(data, ['initValues'], {\r\n movimiento: 9,\r\n puesto: 9,\r\n }),\r\n );\r\n\r\n // eslint-disable-next-line prefer-const\r\n let startMovimientos = [\r\n { itemLabel: '- SELECCIONE EL MOVIMIENTO -', value: 9 },\r\n ];\r\n const [movimientos, setMovimientos] = useState(\r\n startMovimientos,\r\n );\r\n\r\n const [puestos, setPuestos] = useState([\r\n {\r\n itemLabel: '- SELECCIONE EL PUESTO -',\r\n value: 9,\r\n },\r\n { itemLabel: 'PRESIDENTE', value: 1 },\r\n { itemLabel: 'VICEPRESIDENTE', value: 2 },\r\n { itemLabel: 'SECRETARIO GENERAL', value: 3 },\r\n ]);\r\n\r\n useEffect(() => {\r\n setMovimientos(\r\n Lodash.get(\r\n listMovimientos,\r\n ['data', 'frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE EL MOVIMIENTO -',\r\n value: 9,\r\n },\r\n ],\r\n ),\r\n );\r\n }, [listMovimientos]);\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const setMovimiento = d => {\r\n setPuestos([\r\n {\r\n itemLabel: '- SELECCIONE EL PUESTO -',\r\n value: 9,\r\n },\r\n { itemLabel: 'PRESIDENTE', value: 1 },\r\n { itemLabel: 'VICEPRESIDENTE', value: 2 },\r\n { itemLabel: 'SECRETARIO GENERAL', value: 3 },\r\n ]);\r\n\r\n initialValues.movimiento = d;\r\n initialValues.puesto = 9;\r\n\r\n if (d !== 9) {\r\n setSMovimiento(\r\n Lodash.find(movimientos, {\r\n value: d,\r\n }),\r\n );\r\n } else {\r\n setSMovimiento(\r\n Lodash.find(movimientos, {\r\n value: 9,\r\n }),\r\n );\r\n }\r\n };\r\n\r\n const setPuesto = d => {\r\n initialValues.puesto = d;\r\n if (d !== 9) {\r\n initialValues.movimiento = sMovimiento.value\r\n ? sMovimiento.value\r\n : 9;\r\n setSPuesto(\r\n Lodash.find(puestos, {\r\n value: d,\r\n }),\r\n );\r\n } else {\r\n setSPuesto(\r\n Lodash.find(puestos, {\r\n value: 9,\r\n }),\r\n );\r\n }\r\n };\r\n\r\n const doSearch = values => () => {\r\n setShowResults(true);\r\n setIsLoading(true);\r\n const { movimiento, puesto } = values;\r\n const codMovimiento =\r\n movimiento === 9 ? -1 : movimiento;\r\n const codPuesto = puesto === 9 ? -1 : puesto;\r\n\r\n searchPapeletas(codMovimiento, codPuesto).then(\r\n result => {\r\n setIsLoading(false);\r\n const info = Lodash.get(\r\n result,\r\n ['data', 'response'],\r\n [],\r\n );\r\n\r\n if (info instanceof Object && info.length > 0) {\r\n const rowItems = info.map(row => {\r\n return createData(row);\r\n });\r\n setFilteredItems(rowItems);\r\n setDataEmpty(false);\r\n } else {\r\n setFilteredItems([]);\r\n setDataEmpty(true);\r\n }\r\n },\r\n );\r\n };\r\n\r\n const renderForm = () => {\r\n return (\r\n
\r\n \r\n \r\n

Movimiento

\r\n \r\n setMovimiento(movimiento)\r\n }\r\n />\r\n
\r\n \r\n

Puesto

\r\n setPuesto(puesto)}\r\n />\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n /**\r\n * List all actions that a user can do for each item in the list\r\n */\r\n const setActions = () => {\r\n const actions = [];\r\n\r\n return actions;\r\n };\r\n\r\n return (\r\n \r\n

CONSULTA PÚBLICA DE INSCRIPCIONES

\r\n

\r\n Papeletas Movimientos Nacionales\r\n

\r\n {customMessage1Available && (\r\n \r\n \r\n

\r\n El Departamento de Contabilidad aún se\r\n encuentra procesando los comprobantes de\r\n recibidos. El TEI se encuentra en revisión de\r\n revisión de inscripción de papeletas en el\r\n cantón de La Unión.\r\n

\r\n \r\n \r\n )}\r\n \r\n {formik => (\r\n <>\r\n {renderForm()}\r\n \r\n \r\n \r\n BUSCAR\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n {showResults &&\r\n (!isLoading ? (\r\n \r\n (window.location.href = `/nacionales/add`),\r\n }}\r\n actionConfig={setActions}\r\n tableHeads={heads}\r\n tableBody={filteredItems}\r\n displayCopyright={false}\r\n isCrudAvailable={false}\r\n />\r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nCPPapeletasNacionales.propTypes = {};\r\n\r\nexport default withStyles(style)(CPPapeletasNacionales);\r\n","/* eslint new-cap: [\"error\", { \"newIsCap\": false }] */\r\n/* eslint-disable camelcase */\r\nimport React, { useState, useEffect } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Container } from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport MacroList from '../MacroList/MacroList';\r\nimport style from './styles';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Copyright from '../Copyright/Copyright';\r\n\r\nimport { searchPapeletas } from '../../Core/Api/papeletaPresidenteSector';\r\n\r\nfunction createData(_data) {\r\n const filterEstado = Consts.estadosDistritales.filter(\r\n status => {\r\n return status.codigo === _data.cod_estado;\r\n },\r\n );\r\n\r\n return {\r\n candidato: _data.num_cedula,\r\n nombre: _data.des_nombre_can,\r\n estado: filterEstado[0].estado,\r\n cedula: _data.cedula_resp,\r\n gestor: _data.des_nombre,\r\n cod_papeleta: _data.cod_papeleta,\r\n };\r\n}\r\n\r\nconst CPPresidenteSector = props => {\r\n const { classes } = props;\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n const [showResults, setShowResults] = useState(false);\r\n // eslint-disable-next-line no-unused-vars\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n // Opciones Seleccionadas\r\n\r\n const [isDataEmpty, setDataEmpty] = useState(false);\r\n const [filteredItems, setFilteredItems] = useState([]); // used for filtering\r\n\r\n const heads = [\r\n {\r\n name: 'Cédula',\r\n },\r\n {\r\n name: 'Candidato(a)',\r\n },\r\n {\r\n name: 'Estado',\r\n },\r\n {\r\n name: 'Cédula',\r\n },\r\n {\r\n name: 'Nombre Gestor(a)',\r\n },\r\n ];\r\n\r\n useEffect(() => {\r\n async function fetchListAPI() {\r\n await searchPapeletas()\r\n .then(_response => {\r\n const info = _response.data.response;\r\n\r\n if (info instanceof Object) {\r\n const rowItems = info.map(row => {\r\n return createData(row);\r\n });\r\n\r\n setFilteredItems(rowItems);\r\n setDataEmpty(false);\r\n } else {\r\n setDataEmpty(true);\r\n }\r\n })\r\n .catch(_error => {\r\n // eslint-disable-next-line no-console\r\n console.log(_error);\r\n });\r\n }\r\n\r\n fetchListAPI();\r\n }, []);\r\n\r\n /**\r\n * List all actions that a user can do for each item in the list\r\n */\r\n const setActions = () => {\r\n const actions = [];\r\n\r\n return actions;\r\n };\r\n\r\n return (\r\n \r\n

\r\n CONSULTA PÚBLICA DE INSCRIPCIONES\r\n

\r\n \r\n Papeletas Presidente de Sectores\r\n \r\n\r\n \r\n Candidatos(as) a la Presidencia de Organización\r\n Sectorial\r\n \r\n\r\n \r\n (window.location.href = `/presidente/add`),\r\n }}\r\n actionConfig={setActions}\r\n tableHeads={heads}\r\n tableBody={filteredItems}\r\n displayCopyright={false}\r\n isCrudAvailable={false}\r\n />\r\n\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nCPPresidenteSector.propTypes = {};\r\n\r\nexport default withStyles(style)(CPPresidenteSector);\r\n","/* eslint new-cap: [\"error\", { \"newIsCap\": false }] */\r\n/* eslint-disable camelcase */\r\nimport React, { useState } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Formik, Field } from 'formik';\r\nimport VisibilityIcon from '@material-ui/icons/Visibility';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport * as Yup from 'yup';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport { Container, Grid, Button } from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport {\r\n PlnDropdown,\r\n PlnInput,\r\n} from '../../Components/Input';\r\nimport MacroList from '../MacroList/MacroList';\r\nimport style from './styles';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport Copyright from '../Copyright/Copyright';\r\n\r\nimport { useSectores } from '../../Core/Api/locationApi';\r\n\r\nimport {\r\n searchPapeletas,\r\n getDetallePapeleta,\r\n} from '../../Core/Api/papeletaSectorial';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nfunction createData(_data) {\r\n const filterEstado = Consts.estadosDistritales.filter(\r\n status => {\r\n return status.codigo === _data.cod_estado;\r\n },\r\n );\r\n\r\n return {\r\n sector: _data.des,\r\n numero: _data.numero,\r\n cod_estado: filterEstado[0].estado,\r\n cedula: _data.cedula_resp,\r\n gestor: _data.des_nombre,\r\n cod_papeleta: _data.cod_papeleta,\r\n };\r\n}\r\n\r\nconst CPPapeletasSectoriales = props => {\r\n const { classes } = props;\r\n const listSectores = useSectores();\r\n\r\n const [showResults, setShowResults] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n // Opciones Seleccionadas\r\n const sectores = Lodash.get(\r\n listSectores,\r\n ['data', 'frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE EL SECTOR -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n // INFORMACION DEL DETALLE DE LA PAPELETA\r\n const [rowSelected, setRowSelected] = useState({\r\n sector: '',\r\n numero: '',\r\n });\r\n\r\n const [comite, setComite] = useState([]);\r\n\r\n const [isDataEmpty, setDataEmpty] = useState(false);\r\n const [filteredItems, setFilteredItems] = useState([\r\n ['', '', '', '', '', '', ''],\r\n ]); // used for filtering\r\n\r\n const [openPapeleta, setOpenPapeleta] = useState(false);\r\n const handleClose = () => {\r\n setOpenPapeleta(false);\r\n };\r\n\r\n const heads = [\r\n {\r\n name: 'Sector',\r\n },\r\n {\r\n name: 'Número',\r\n },\r\n {\r\n name: 'Estado',\r\n },\r\n {\r\n name: 'Cédula',\r\n },\r\n {\r\n name: 'Nombre Gestor(a)',\r\n },\r\n ];\r\n\r\n // Lista de: Sector y Numero\r\n const [initialValues] = useState({\r\n sector: 9,\r\n numero: '',\r\n });\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const setSector = d => {\r\n initialValues.sector = d;\r\n };\r\n\r\n const doSearch = values => () => {\r\n setShowResults(true);\r\n setIsLoading(true);\r\n const { sector, numero } = values;\r\n const codSector = sector === 9 ? -1 : sector;\r\n const numPapeleta = numero === '' ? -1 : numero;\r\n\r\n searchPapeletas(codSector, numPapeleta).then(result => {\r\n setIsLoading(false);\r\n const info = Lodash.get(\r\n result,\r\n ['data', 'response'],\r\n [],\r\n );\r\n\r\n if (info instanceof Object && info.length > 0) {\r\n const rowItems = info.map(row => {\r\n return createData(row);\r\n });\r\n setFilteredItems(rowItems);\r\n setDataEmpty(false);\r\n } else {\r\n setFilteredItems([]);\r\n setDataEmpty(true);\r\n }\r\n });\r\n };\r\n\r\n const renderForm = () => {\r\n return (\r\n
\r\n \r\n \r\n

Sectores

\r\n setSector(sector)}\r\n />\r\n
\r\n \r\n

Número

\r\n \r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n const consultar = (sector, numero, codPapeleta) => {\r\n const newRow = {\r\n ...rowSelected,\r\n sector,\r\n numero,\r\n };\r\n\r\n getDetallePapeleta(codPapeleta).then(result => {\r\n setRowSelected(newRow);\r\n\r\n const nComite = Lodash.get(\r\n result,\r\n ['data', 'response', 'comite'],\r\n [],\r\n );\r\n\r\n setComite(nComite);\r\n setOpenPapeleta(true);\r\n });\r\n };\r\n\r\n /**\r\n * List all actions that a user can do for each item in the list\r\n */\r\n const setActions = () => {\r\n const actions = [];\r\n\r\n const actionConsultar = {\r\n aria: 'Consultar',\r\n key: 'consultar',\r\n showAction: true,\r\n icon: (\r\n \r\n ),\r\n clickHandler: _item => {\r\n consultar(\r\n _item.sector,\r\n _item.numero,\r\n _item.cod_papeleta,\r\n );\r\n },\r\n };\r\n\r\n actions.push(actionConsultar);\r\n\r\n return actions;\r\n };\r\n\r\n const renderTable = () => {\r\n return (\r\n
\r\n \r\n Candidatos(as) Representante al Órgano Consultivo\r\n Nacional\r\n \r\n\r\n \r\n \r\n \r\n \r\n Lugar\r\n \r\n \r\n Cédula\r\n \r\n \r\n Nombre\r\n \r\n \r\n \r\n \r\n {comite.map(l => (\r\n \r\n \r\n {l[0]}\r\n \r\n {l[1]}\r\n {l[2]}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n return (\r\n \r\n

CONSULTA PÚBLICA DE INSCRIPCIONES

\r\n

\r\n Papeletas de Sectores\r\n

\r\n \r\n {formik => (\r\n <>\r\n {renderForm()}\r\n \r\n \r\n \r\n BUSCAR\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n {showResults &&\r\n (!isLoading ? (\r\n \r\n (window.location.href = `/sectorial/add`),\r\n }}\r\n actionConfig={setActions}\r\n tableHeads={heads}\r\n tableBody={filteredItems}\r\n displayCopyright={false}\r\n isCrudAvailable={false}\r\n />\r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n \r\n Detalle Papeleta de Sectores\r\n \r\n \r\n \r\n \r\n \r\n \r\n Sector\r\n \r\n \r\n Número\r\n \r\n \r\n \r\n \r\n \r\n \r\n {rowSelected.sector}\r\n \r\n \r\n {rowSelected.numero}\r\n \r\n \r\n \r\n
\r\n {renderTable()}\r\n
\r\n \r\n \r\n Cerrar\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nCPPapeletasSectoriales.propTypes = {};\r\n\r\nexport default withStyles(style)(CPPapeletasSectoriales);\r\n","import { colors } from '../../Core/Theme/theme';\r\n\r\nconst styles = theme => ({\r\n container: {\r\n textAlign: 'left',\r\n color: colors.lightGray,\r\n paddingBottom: 80,\r\n '& h3': {\r\n color: colors.darkGray,\r\n marginTop: '50px',\r\n fontSize: '24px',\r\n marginBottom: '10px',\r\n },\r\n '& h4': {\r\n textWeight: 'bold',\r\n marginTop: '0px',\r\n marginBottom: '5px',\r\n },\r\n '& p': {\r\n marginTop: '0px',\r\n marginBottom: '5px',\r\n },\r\n },\r\n subtitle: { color: colors.green },\r\n subtitleDoc: { color: colors.darkGray },\r\n boxForm: {\r\n marginTop: '30px',\r\n },\r\n boxDocToPdf: {\r\n backgroundColor: colors.white,\r\n color: colors.darkGray,\r\n '& h3': {\r\n color: colors.green,\r\n marginTop: '50px',\r\n fontSize: '20px',\r\n marginBottom: '10px',\r\n },\r\n },\r\n sectionDesktop: {\r\n display: 'none',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'flex',\r\n },\r\n },\r\n sectionMobile: {\r\n display: 'flex',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n },\r\n textFilled: {\r\n background: '#f1f1f1',\r\n padding: '10px',\r\n width: '80%',\r\n margin: '0 auto',\r\n },\r\n customField: {\r\n background: '#fff',\r\n border: 'solid thin #999',\r\n padding: '10px',\r\n width: '250px',\r\n margin: '0 auto',\r\n },\r\n field: {\r\n border: 'solid thin #ccc',\r\n padding: 20,\r\n background: '#f1f1f1',\r\n },\r\n fieldFilled: {\r\n border: 'solid thin #ccc',\r\n padding: 10,\r\n background: '#f1f1f1',\r\n },\r\n});\r\n\r\nexport default styles;\r\n","import axios from 'axios';\r\n\r\nconst axiosInstance = axios.create({\r\n baseURL: process.env.REACT_APP_API_BASE_URL,\r\n responseType: 'json',\r\n});\r\n\r\nconst getFilteredMiembrosMesa = info => {\r\n const data = [info.codProvincia, info.codCanton, info.codDistrito, info.codJRV],\r\n url = [`/registrosElectorales/filterMiembrosMesa/${data.join('/')}`];\r\n return axiosInstance.get(url.join('&'));\r\n};\r\n\r\nconst getFilteredFiscalesMesa = info => {\r\n const data = [info.codProvincia, info.codCanton, info.codDistrito, info.codJRV],\r\n url = [`/registrosElectorales/filterFiscalesMesa/${data.join('/')}`];\r\n return axiosInstance.get(url.join('&'));\r\n};\r\n\r\nconst getFilteredFiscalesGenerales = info => {\r\n const data = [info.codProvincia, info.codCanton, info.codDistrito, info.codJRV],\r\n url = [`/registrosElectorales/filterFiscalesGenerales/${data.join('/')}`];\r\n return axiosInstance.get(url.join('&'));\r\n};\r\n\r\nexport default {\r\n getFilteredMiembrosMesa,\r\n getFilteredFiscalesMesa,\r\n getFilteredFiscalesGenerales,\r\n};","/* eslint new-cap: [\"error\", { \"newIsCap\": false }] */\r\n/* eslint-disable camelcase */\r\nimport React, { useState } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Formik, Field } from 'formik';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport * as Yup from 'yup';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport { Container, Grid, Button } from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport { PlnDropdown } from '../../Components/Input';\r\nimport MacroList from '../MacroList/MacroList';\r\nimport style from './styles';\r\nimport Copyright from '../Copyright/Copyright';\r\n\r\nimport {\r\n useProvincias,\r\n getCantonsByProvince,\r\n getDistritoByTwo,\r\n} from '../../Core/Api/locationApi';\r\n\r\nimport miembrosMesaApi from '../../Core/Api/miembrosMesaApi';\r\nimport registrosElectoralesApi from '../../Core/Api/registrosElectoralesApi';\r\nimport Consts from '../../Core/Consts/Consts';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nfunction createData(_data) {\r\n const filterPuesto = Consts.puestosRegistrosElectorales.filter(\r\n puesto => {\r\n return puesto.codigo === _data.ind_resultado;\r\n },\r\n );\r\n\r\n return {\r\n province: _data.des_nombre_p,\r\n canton: _data.des_nombre_c,\r\n distrito: _data.des_nombre_d,\r\n jrv: _data.cod_mesa,\r\n puesto: _data.des_puesto,\r\n cedula: _data.num_cedula,\r\n primerApellido: _data.des_apell1,\r\n segundoApellido: _data.des_apell2,\r\n nombre: _data.des_nombre,\r\n presidencia:\r\n filterPuesto.length > 0\r\n ? filterPuesto[0].descripcion\r\n : null,\r\n };\r\n}\r\n\r\nconst REMiembrosMesa = props => {\r\n const { classes } = props;\r\n const { data } = useProvincias();\r\n\r\n const [showResults, setShowResults] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n // Opciones Seleccionadas\r\n const [sProvincia, setSProvincia] = useState(9);\r\n const [sCanton, setSCanton] = useState(999);\r\n\r\n const [isDataEmpty, setDataEmpty] = useState(false);\r\n const [filteredItems, setFilteredItems] = useState([\r\n ['', '', '', '', '', '', '', '', '', ''],\r\n ]); // used for filtering\r\n\r\n const heads = [\r\n {\r\n name: 'Provincia',\r\n },\r\n {\r\n name: 'Cantón',\r\n },\r\n {\r\n name: 'Distrito Electoral',\r\n },\r\n {\r\n name: 'JRV',\r\n },\r\n {\r\n name: 'Puesto',\r\n },\r\n {\r\n name: 'Cédula',\r\n },\r\n {\r\n name: '1er. Apellido',\r\n },\r\n {\r\n name: '2do. Apellido',\r\n },\r\n {\r\n name: 'Nombre',\r\n },\r\n {\r\n name: 'Presidencia',\r\n },\r\n ];\r\n\r\n // Lista de: Provincias, Cantones, Distritos y Movimientos\r\n const [initialValues] = useState(\r\n Lodash.get(data, ['initValues'], {\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n jrv: 999,\r\n }),\r\n );\r\n\r\n const provincias = Lodash.get(\r\n data,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n const [cantones, setCantones] = useState([\r\n { itemLabel: '- SELECCIONE EL CANTÓN -', value: 999 },\r\n ]);\r\n const [distritos, setDistritos] = useState([\r\n { itemLabel: '- SELECCIONE EL DISTRITO -', value: 999 },\r\n ]);\r\n\r\n const [jrv, setJRV] = useState([\r\n { itemLabel: '- SELECCIONE LA JRV -', value: 999 },\r\n ]);\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const setProvincia = p => {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN -',\r\n value: 999,\r\n },\r\n ]);\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO -',\r\n value: 999,\r\n },\r\n ]);\r\n setJRV([\r\n {\r\n itemLabel: '- SELECCIONE LA JRV -',\r\n value: 999,\r\n },\r\n ]);\r\n initialValues.provincia = p;\r\n initialValues.canton = 999;\r\n initialValues.distrito = 999;\r\n initialValues.jrv = 999;\r\n if (p !== 9) {\r\n getCantonsByProvince(p).then(result => {\r\n if (result.status === 200) {\r\n const cantonsList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const clist = cantonsList.map(\r\n ({ cod_canton, des_nombre_c }) => {\r\n return {\r\n itemLabel: des_nombre_c,\r\n value: cod_canton,\r\n };\r\n },\r\n );\r\n clist.unshift({\r\n itemLabel: '- SELECCIONE EL CANTÓN -',\r\n value: 999,\r\n });\r\n\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: p,\r\n }),\r\n );\r\n setCantones(clist);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const setCanton = c => {\r\n initialValues.distrito = 999;\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = c;\r\n initialValues.jrv = 999;\r\n\r\n if (c !== 999) {\r\n getDistritoByTwo(sProvincia.value, c).then(result => {\r\n if (result.status === 200) {\r\n const distritosList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n const dlist = distritosList.map(\r\n ({ cod_distrito, des_nombre_d }) => {\r\n return {\r\n itemLabel: des_nombre_d,\r\n value: cod_distrito,\r\n };\r\n },\r\n );\r\n dlist.unshift({\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n });\r\n\r\n setSCanton(\r\n Lodash.find(cantones, {\r\n value: c,\r\n }),\r\n );\r\n\r\n setDistritos(dlist);\r\n }\r\n });\r\n } else {\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n const getJRV = async _codDistr => {\r\n const currentDistr = parseInt(_codDistr, 10);\r\n\r\n if (currentDistr > 0 && currentDistr !== 999) {\r\n await miembrosMesaApi\r\n .getJuntaReceptora(\r\n sProvincia.value,\r\n sCanton.value,\r\n currentDistr,\r\n )\r\n .then(_res => {\r\n const listJRV = _res.data.response;\r\n if (listJRV instanceof Array) {\r\n const jrvlist = listJRV.map(\r\n // eslint-disable-next-line no-unused-vars\r\n ({ num_jvirt, index }) => {\r\n return {\r\n itemLabel: `Nº ${num_jvirt}`,\r\n value: num_jvirt,\r\n };\r\n },\r\n );\r\n jrvlist.unshift({\r\n itemLabel: '- SELECCIONE LA JRV -',\r\n value: 999,\r\n });\r\n\r\n setJRV(jrvlist);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const getJRVSelected = _jrv => {\r\n const currentJRV = parseInt(_jrv, 10);\r\n\r\n if (currentJRV > 0 && currentJRV !== 999) {\r\n // console.log(currentJRV);\r\n }\r\n };\r\n\r\n const doSearch = values => async () => {\r\n setShowResults(true);\r\n setIsLoading(true);\r\n const { canton, distrito, provincia, jrv } = values;\r\n const codProvincia = provincia === 9 ? 0 : provincia;\r\n const codCanton = canton === 999 ? 0 : canton;\r\n const codDistrito = distrito === 999 ? 0 : distrito;\r\n const codJRV = jrv === 999 ? 0 : jrv;\r\n\r\n const filteredData = {\r\n codProvincia,\r\n codCanton,\r\n codDistrito,\r\n codJRV,\r\n };\r\n\r\n await registrosElectoralesApi\r\n .getFilteredMiembrosMesa(filteredData)\r\n .then(response => {\r\n setIsLoading(false);\r\n if (response.status === 200) {\r\n const info = response.data[0];\r\n if (info.error.length > 0) {\r\n // console.log(info.error);\r\n setFilteredItems([]);\r\n setDataEmpty(true);\r\n } else {\r\n const totalItems =\r\n info.response['miembros'].length;\r\n\r\n let rowItems = [];\r\n if (totalItems > 0) {\r\n rowItems = info.response['miembros'].map(\r\n row => {\r\n return createData(row);\r\n },\r\n );\r\n }\r\n\r\n setFilteredItems(rowItems);\r\n setDataEmpty(totalItems === 0);\r\n }\r\n } else {\r\n console.log(\r\n `Server status resolved: ${response.status}`,\r\n );\r\n setFilteredItems([]);\r\n setDataEmpty(true);\r\n }\r\n })\r\n .catch(_error => {\r\n setFilteredItems([]);\r\n setDataEmpty(true);\r\n });\r\n };\r\n\r\n const renderForm = () => {\r\n return (\r\n
\r\n \r\n \r\n

Provincia

\r\n \r\n setProvincia(provincia)\r\n }\r\n />\r\n
\r\n \r\n

Cantón

\r\n setCanton(canton)}\r\n />\r\n
\r\n \r\n

Distrito

\r\n {\r\n getJRV(dist);\r\n }}\r\n />\r\n
\r\n \r\n

JRV

\r\n getJRVSelected(jrvItem)}\r\n />\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n /**\r\n * List all actions that a user can do for each item in the list\r\n */\r\n const setActions = () => {\r\n const actions = [];\r\n return actions;\r\n };\r\n\r\n if (!Lodash.isEmpty(provincias)) {\r\n return (\r\n \r\n

CONSULTA PÚBLICA DE REGISTROS ELECTORALES

\r\n

\r\n Miembros de Mesa\r\n

\r\n \r\n {formik => (\r\n <>\r\n {renderForm()}\r\n \r\n \r\n \r\n BUSCAR\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n {showResults &&\r\n (!isLoading ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n return '';\r\n};\r\n\r\nREMiembrosMesa.propTypes = {};\r\n\r\nexport default withStyles(style)(REMiembrosMesa);\r\n","/* eslint new-cap: [\"error\", { \"newIsCap\": false }] */\r\n/* eslint-disable camelcase */\r\nimport React, { useState } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Formik, Field } from 'formik';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport * as Yup from 'yup';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport { Container, Grid, Button } from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport { PlnDropdown } from '../../Components/Input';\r\nimport MacroList from '../MacroList/MacroList';\r\nimport style from './styles';\r\nimport Copyright from '../Copyright/Copyright';\r\n\r\nimport {\r\n useProvincias,\r\n getCantonsByProvince,\r\n getDistritoByTwo,\r\n} from '../../Core/Api/locationApi';\r\n\r\nimport miembrosMesaApi from '../../Core/Api/miembrosMesaApi';\r\nimport registrosElectoralesApi from '../../Core/Api/registrosElectoralesApi';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nfunction createData(_data) {\r\n return {\r\n province: _data.des_nombre_p,\r\n canton: _data.des_nombre_c,\r\n distrito: _data.des_nombre_d,\r\n jrv: _data.cod_mesa,\r\n puesto: _data.des_puesto,\r\n cedula: _data.num_cedula,\r\n primerApellido: _data.des_apell1,\r\n segundoApellido: _data.des_apell2,\r\n nombre: _data.des_nombre,\r\n };\r\n}\r\n\r\nconst REFiscalesMesa = props => {\r\n const { classes } = props;\r\n const { data } = useProvincias();\r\n\r\n const [showResults, setShowResults] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n // Opciones Seleccionadas\r\n const [sProvincia, setSProvincia] = useState(9);\r\n const [sCanton, setSCanton] = useState(999);\r\n\r\n const [isDataEmpty, setDataEmpty] = useState(false);\r\n const [filteredItems, setFilteredItems] = useState([\r\n ['', '', '', '', '', '', '', '', '', ''],\r\n ]); // used for filtering\r\n\r\n const heads = [\r\n {\r\n name: 'Provincia',\r\n },\r\n {\r\n name: 'Cantón',\r\n },\r\n {\r\n name: 'Distrito Electoral',\r\n },\r\n {\r\n name: 'JRV',\r\n },\r\n {\r\n name: 'Puesto',\r\n },\r\n {\r\n name: 'Cédula',\r\n },\r\n {\r\n name: '1er. Apellido',\r\n },\r\n {\r\n name: '2do. Apellido',\r\n },\r\n {\r\n name: 'Nombre',\r\n },\r\n ];\r\n\r\n // Lista de: Provincias, Cantones, Distritos y Movimientos\r\n const [initialValues] = useState(\r\n Lodash.get(data, ['initValues'], {\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n jrv: 999,\r\n }),\r\n );\r\n\r\n const provincias = Lodash.get(\r\n data,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n const [cantones, setCantones] = useState([\r\n { itemLabel: '- SELECCIONE EL CANTÓN -', value: 999 },\r\n ]);\r\n const [distritos, setDistritos] = useState([\r\n { itemLabel: '- SELECCIONE EL DISTRITO -', value: 999 },\r\n ]);\r\n\r\n const [jrv, setJRV] = useState([\r\n { itemLabel: '- SELECCIONE LA JRV -', value: 999 },\r\n ]);\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const setProvincia = p => {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN -',\r\n value: 999,\r\n },\r\n ]);\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO -',\r\n value: 999,\r\n },\r\n ]);\r\n setJRV([\r\n {\r\n itemLabel: '- SELECCIONE LA JRV -',\r\n value: 999,\r\n },\r\n ]);\r\n initialValues.provincia = p;\r\n initialValues.canton = 999;\r\n initialValues.distrito = 999;\r\n initialValues.jrv = 999;\r\n if (p !== 9) {\r\n getCantonsByProvince(p).then(result => {\r\n if (result.status === 200) {\r\n const cantonsList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const clist = cantonsList.map(\r\n ({ cod_canton, des_nombre_c }) => {\r\n return {\r\n itemLabel: des_nombre_c,\r\n value: cod_canton,\r\n };\r\n },\r\n );\r\n clist.unshift({\r\n itemLabel: '- SELECCIONE EL CANTÓN -',\r\n value: 999,\r\n });\r\n\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: p,\r\n }),\r\n );\r\n setCantones(clist);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const setCanton = c => {\r\n initialValues.distrito = 999;\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = c;\r\n initialValues.jrv = 999;\r\n\r\n if (c !== 999) {\r\n getDistritoByTwo(sProvincia.value, c).then(result => {\r\n if (result.status === 200) {\r\n const distritosList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n const dlist = distritosList.map(\r\n ({ cod_distrito, des_nombre_d }) => {\r\n return {\r\n itemLabel: des_nombre_d,\r\n value: cod_distrito,\r\n };\r\n },\r\n );\r\n dlist.unshift({\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n });\r\n\r\n setSCanton(\r\n Lodash.find(cantones, {\r\n value: c,\r\n }),\r\n );\r\n\r\n setDistritos(dlist);\r\n }\r\n });\r\n } else {\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n const getJRV = async _codDistr => {\r\n const currentDistr = parseInt(_codDistr, 10);\r\n\r\n if (currentDistr > 0 && currentDistr !== 999) {\r\n await miembrosMesaApi\r\n .getJuntaReceptora(\r\n sProvincia.value,\r\n sCanton.value,\r\n currentDistr,\r\n )\r\n .then(_res => {\r\n const listJRV = _res.data.response;\r\n if (listJRV instanceof Array) {\r\n const jrvlist = listJRV.map(\r\n // eslint-disable-next-line no-unused-vars\r\n ({ num_jvirt, index }) => {\r\n return {\r\n itemLabel: `Nº ${num_jvirt}`,\r\n value: num_jvirt,\r\n };\r\n },\r\n );\r\n jrvlist.unshift({\r\n itemLabel: '- SELECCIONE LA JRV -',\r\n value: 999,\r\n });\r\n\r\n setJRV(jrvlist);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const getJRVSelected = _jrv => {\r\n const currentJRV = parseInt(_jrv, 10);\r\n\r\n if (currentJRV > 0 && currentJRV !== 999) {\r\n // console.log(currentJRV);\r\n }\r\n };\r\n\r\n const doSearch = values => async () => {\r\n setShowResults(true);\r\n setIsLoading(true);\r\n const { canton, distrito, provincia, jrv } = values;\r\n const codProvincia = provincia === 9 ? 0 : provincia;\r\n const codCanton = canton === 999 ? 0 : canton;\r\n const codDistrito = distrito === 999 ? 0 : distrito;\r\n const codJRV = jrv === 999 ? 0 : jrv;\r\n\r\n const filteredData = {\r\n codProvincia,\r\n codCanton,\r\n codDistrito,\r\n codJRV,\r\n };\r\n\r\n await registrosElectoralesApi\r\n .getFilteredFiscalesMesa(filteredData)\r\n .then(response => {\r\n setIsLoading(false);\r\n if (response.status === 200) {\r\n const info = response.data[0];\r\n if (info.error.length > 0) {\r\n // console.log(info.error);\r\n setFilteredItems([]);\r\n setDataEmpty(true);\r\n } else {\r\n const totalItems =\r\n info.response['fiscales'].length;\r\n\r\n let rowItems = [];\r\n if (totalItems > 0) {\r\n rowItems = info.response['fiscales'].map(\r\n row => {\r\n return createData(row);\r\n },\r\n );\r\n }\r\n\r\n setFilteredItems(rowItems);\r\n setDataEmpty(totalItems === 0);\r\n }\r\n } else {\r\n console.log(\r\n `Server status resolved: ${response.status}`,\r\n );\r\n setFilteredItems([]);\r\n setDataEmpty(true);\r\n }\r\n })\r\n .catch(_error => {\r\n setFilteredItems([]);\r\n setDataEmpty(true);\r\n });\r\n };\r\n\r\n const renderForm = () => {\r\n return (\r\n
\r\n \r\n \r\n

Provincia

\r\n \r\n setProvincia(provincia)\r\n }\r\n />\r\n
\r\n \r\n

Cantón

\r\n setCanton(canton)}\r\n />\r\n
\r\n \r\n

Distrito

\r\n {\r\n getJRV(dist);\r\n }}\r\n />\r\n
\r\n \r\n

JRV

\r\n getJRVSelected(jrvItem)}\r\n />\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n /**\r\n * List all actions that a user can do for each item in the list\r\n */\r\n const setActions = () => {\r\n const actions = [];\r\n return actions;\r\n };\r\n\r\n if (!Lodash.isEmpty(provincias)) {\r\n return (\r\n \r\n

CONSULTA PÚBLICA DE REGISTROS ELECTORALES

\r\n

\r\n Fiscales de Mesa\r\n

\r\n \r\n {formik => (\r\n <>\r\n {renderForm()}\r\n \r\n \r\n \r\n BUSCAR\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n {showResults &&\r\n (!isLoading ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n return '';\r\n};\r\n\r\nREFiscalesMesa.propTypes = {};\r\n\r\nexport default withStyles(style)(REFiscalesMesa);\r\n","/* eslint new-cap: [\"error\", { \"newIsCap\": false }] */\r\n/* eslint-disable camelcase */\r\nimport React, { useState } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Formik, Field } from 'formik';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport * as Yup from 'yup';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport { Container, Grid, Button } from '@material-ui/core';\r\nimport Box from '@material-ui/core/Box';\r\nimport { PlnDropdown } from '../../Components/Input';\r\nimport MacroList from '../MacroList/MacroList';\r\nimport style from './styles';\r\nimport Copyright from '../Copyright/Copyright';\r\n\r\nimport {\r\n useProvincias,\r\n getCantonsByProvince,\r\n getDistritoByTwo,\r\n} from '../../Core/Api/locationApi';\r\n\r\nimport miembrosMesaApi from '../../Core/Api/miembrosMesaApi';\r\nimport registrosElectoralesApi from '../../Core/Api/registrosElectoralesApi';\r\n\r\nconst Transition = React.forwardRef(function Transition(\r\n tProps,\r\n ref,\r\n) {\r\n // eslint-disable-next-line react/jsx-props-no-spreading\r\n return ;\r\n});\r\n\r\nfunction createData(_data) {\r\n return {\r\n province: _data.des_nombre_p,\r\n canton: _data.des_nombre_c,\r\n distrito: _data.des_nombre_d,\r\n jrv: _data.cod_mesa,\r\n puesto: _data.des_puesto,\r\n cedula: _data.num_cedula,\r\n primerApellido: _data.des_apell1,\r\n segundoApellido: _data.des_apell2,\r\n nombre: _data.des_nombre,\r\n };\r\n}\r\n\r\nconst REFiscalesGenerales = props => {\r\n const { classes } = props;\r\n const { data } = useProvincias();\r\n\r\n const [showResults, setShowResults] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n // Opciones Seleccionadas\r\n const [sProvincia, setSProvincia] = useState(9);\r\n const [sCanton, setSCanton] = useState(999);\r\n\r\n const [isDataEmpty, setDataEmpty] = useState(false);\r\n const [filteredItems, setFilteredItems] = useState([\r\n ['', '', '', '', '', '', '', '', '', ''],\r\n ]); // used for filtering\r\n\r\n const heads = [\r\n {\r\n name: 'Provincia',\r\n },\r\n {\r\n name: 'Cantón',\r\n },\r\n {\r\n name: 'Distrito Electoral',\r\n },\r\n {\r\n name: 'JRV',\r\n },\r\n {\r\n name: 'Puesto',\r\n },\r\n {\r\n name: 'Cédula',\r\n },\r\n {\r\n name: '1er. Apellido',\r\n },\r\n {\r\n name: '2do. Apellido',\r\n },\r\n {\r\n name: 'Nombre',\r\n },\r\n ];\r\n\r\n // Lista de: Provincias, Cantones, Distritos y Movimientos\r\n const [initialValues] = useState(\r\n Lodash.get(data, ['initValues'], {\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n jrv: 999,\r\n }),\r\n );\r\n\r\n const provincias = Lodash.get(\r\n data,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n const [cantones, setCantones] = useState([\r\n { itemLabel: '- SELECCIONE EL CANTÓN -', value: 999 },\r\n ]);\r\n const [distritos, setDistritos] = useState([\r\n { itemLabel: '- SELECCIONE EL DISTRITO -', value: 999 },\r\n ]);\r\n\r\n const [jrv, setJRV] = useState([\r\n { itemLabel: '- SELECCIONE LA JRV -', value: 999 },\r\n ]);\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const setProvincia = p => {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN -',\r\n value: 999,\r\n },\r\n ]);\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO -',\r\n value: 999,\r\n },\r\n ]);\r\n setJRV([\r\n {\r\n itemLabel: '- SELECCIONE LA JRV -',\r\n value: 999,\r\n },\r\n ]);\r\n initialValues.provincia = p;\r\n initialValues.canton = 999;\r\n initialValues.distrito = 999;\r\n initialValues.jrv = 999;\r\n if (p !== 9) {\r\n getCantonsByProvince(p).then(result => {\r\n if (result.status === 200) {\r\n const cantonsList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const clist = cantonsList.map(\r\n ({ cod_canton, des_nombre_c }) => {\r\n return {\r\n itemLabel: des_nombre_c,\r\n value: cod_canton,\r\n };\r\n },\r\n );\r\n clist.unshift({\r\n itemLabel: '- SELECCIONE EL CANTÓN -',\r\n value: 999,\r\n });\r\n\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: p,\r\n }),\r\n );\r\n setCantones(clist);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const setCanton = c => {\r\n initialValues.distrito = 999;\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = c;\r\n initialValues.jrv = 999;\r\n\r\n if (c !== 999) {\r\n getDistritoByTwo(sProvincia.value, c).then(result => {\r\n if (result.status === 200) {\r\n const distritosList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n const dlist = distritosList.map(\r\n ({ cod_distrito, des_nombre_d }) => {\r\n return {\r\n itemLabel: des_nombre_d,\r\n value: cod_distrito,\r\n };\r\n },\r\n );\r\n dlist.unshift({\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n });\r\n\r\n setSCanton(\r\n Lodash.find(cantones, {\r\n value: c,\r\n }),\r\n );\r\n\r\n setDistritos(dlist);\r\n }\r\n });\r\n } else {\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n const getJRV = async _codDistr => {\r\n const currentDistr = parseInt(_codDistr, 10);\r\n\r\n if (currentDistr > 0 && currentDistr !== 999) {\r\n await miembrosMesaApi\r\n .getJuntaReceptora(\r\n sProvincia.value,\r\n sCanton.value,\r\n currentDistr,\r\n )\r\n .then(_res => {\r\n const listJRV = _res.data.response;\r\n if (listJRV instanceof Array) {\r\n const jrvlist = listJRV.map(\r\n // eslint-disable-next-line no-unused-vars\r\n ({ num_jvirt, index }) => {\r\n return {\r\n itemLabel: `Nº ${num_jvirt}`,\r\n value: num_jvirt,\r\n };\r\n },\r\n );\r\n jrvlist.unshift({\r\n itemLabel: '- SELECCIONE LA JRV -',\r\n value: 999,\r\n });\r\n\r\n setJRV(jrvlist);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const getJRVSelected = _jrv => {\r\n const currentJRV = parseInt(_jrv, 10);\r\n\r\n if (currentJRV > 0 && currentJRV !== 999) {\r\n // console.log(currentJRV);\r\n }\r\n };\r\n\r\n const doSearch = values => async () => {\r\n setShowResults(true);\r\n setIsLoading(true);\r\n const { canton, distrito, provincia, jrv } = values;\r\n const codProvincia = provincia === 9 ? 0 : provincia;\r\n const codCanton = canton === 999 ? 0 : canton;\r\n const codDistrito = distrito === 999 ? 0 : distrito;\r\n const codJRV = jrv === 999 ? 0 : jrv;\r\n\r\n const filteredData = {\r\n codProvincia,\r\n codCanton,\r\n codDistrito,\r\n codJRV,\r\n };\r\n\r\n await registrosElectoralesApi\r\n .getFilteredFiscalesGenerales(filteredData)\r\n .then(response => {\r\n setIsLoading(false);\r\n if (response.status === 200) {\r\n const info = response.data[0];\r\n if (info.error.length > 0) {\r\n // console.log(info.error);\r\n setFilteredItems([]);\r\n setDataEmpty(true);\r\n } else {\r\n const totalItems =\r\n info.response['fGenerales'].length;\r\n\r\n let rowItems = [];\r\n if (totalItems > 0) {\r\n rowItems = info.response['fGenerales'].map(\r\n row => {\r\n return createData(row);\r\n },\r\n );\r\n }\r\n\r\n setFilteredItems(rowItems);\r\n setDataEmpty(totalItems === 0);\r\n }\r\n } else {\r\n console.log(\r\n `Server status resolved: ${response.status}`,\r\n );\r\n setFilteredItems([]);\r\n setDataEmpty(true);\r\n }\r\n })\r\n .catch(_error => {\r\n setFilteredItems([]);\r\n setDataEmpty(true);\r\n });\r\n };\r\n\r\n const renderForm = () => {\r\n return (\r\n
\r\n \r\n \r\n

Provincia

\r\n \r\n setProvincia(provincia)\r\n }\r\n />\r\n
\r\n \r\n

Cantón

\r\n setCanton(canton)}\r\n />\r\n
\r\n \r\n

Distrito

\r\n {\r\n getJRV(dist);\r\n }}\r\n />\r\n
\r\n \r\n

JRV

\r\n getJRVSelected(jrvItem)}\r\n />\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n /**\r\n * List all actions that a user can do for each item in the list\r\n */\r\n const setActions = () => {\r\n const actions = [];\r\n return actions;\r\n };\r\n\r\n if (!Lodash.isEmpty(provincias)) {\r\n return (\r\n \r\n

CONSULTA PÚBLICA DE REGISTROS ELECTORALES

\r\n

\r\n Fiscales Generales\r\n

\r\n \r\n {formik => (\r\n <>\r\n {renderForm()}\r\n \r\n \r\n \r\n BUSCAR\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n\r\n {showResults &&\r\n (!isLoading ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n return '';\r\n};\r\n\r\nREFiscalesGenerales.propTypes = {};\r\n\r\nexport default withStyles(style)(REFiscalesGenerales);\r\n","/* eslint-disable camelcase */\r\nimport React, { useState } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { useJwt } from 'react-jwt';\r\nimport * as Yup from 'yup';\r\nimport Container from '@material-ui/core/Container';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Formik, Field } from 'formik';\r\nimport Box from '@material-ui/core/Box';\r\nimport { PlnDropdown } from '../../Components/Input';\r\nimport Copyright from '../Copyright/Copyright';\r\nimport Storage from '../../Storage/Storage';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport miembrosMesaApi from '../../Core/Api/miembrosMesaApi';\r\nimport {\r\n useProvincias,\r\n getCantonsByProvince,\r\n getDistritoByTwo,\r\n} from '../../Core/Api/locationApi';\r\n\r\nimport { generateGafete } from '../../Core/Utils/Comprobante';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n btnAdd: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n actionContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n}));\r\n\r\nconst GafetesMiembrosMesa = () => {\r\n const classes = useStyles();\r\n const { data } = useProvincias();\r\n const tokenStorage = Storage.instance;\r\n const { decodedToken } = useJwt(tokenStorage.getToken());\r\n\r\n // Opciones Seleccionadas\r\n const [sProvincia, setSProvincia] = useState(9);\r\n const [sCanton, setSCanton] = useState(999);\r\n // eslint-disable-next-line no-unused-vars\r\n const [sDistrito, setSDistrito] = useState(999);\r\n\r\n // Lista de: Provincias, Cantones, Distritos y Movimientos\r\n const [initialValues] = useState(\r\n Lodash.get(data, ['initValues'], {\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n jrv: 999,\r\n }),\r\n );\r\n\r\n const provincias = Lodash.get(\r\n data,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n const [cantones, setCantones] = useState([\r\n { itemLabel: '- SELECCIONE EL CANTÓN-', value: 999 },\r\n ]);\r\n const [distritos, setDistritos] = useState([\r\n { itemLabel: '- SELECCIONE EL DISTRITO-', value: 999 },\r\n ]);\r\n const [jrv, setJRV] = useState([\r\n { itemLabel: '- SELECCIONE LA JRV -', value: 999 },\r\n ]);\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const setProvincia = p => {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN -',\r\n value: 999,\r\n },\r\n ]);\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO -',\r\n value: 999,\r\n },\r\n ]);\r\n setJRV([\r\n {\r\n itemLabel: '- SELECCIONE LA JRV -',\r\n value: 999,\r\n },\r\n ]);\r\n initialValues.provincia = p;\r\n initialValues.canton = 999;\r\n initialValues.distrito = 999;\r\n initialValues.jrv = 999;\r\n if (p !== 9) {\r\n getCantonsByProvince(p).then(result => {\r\n if (result.status === 200) {\r\n const cantonsList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const clist = cantonsList.map(\r\n ({ cod_canton, des_nombre_c }) => {\r\n return {\r\n itemLabel: des_nombre_c,\r\n value: cod_canton,\r\n };\r\n },\r\n );\r\n clist.unshift({\r\n itemLabel: '- SELECCIONE EL CANTÓN -',\r\n value: 999,\r\n });\r\n\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: p,\r\n }),\r\n );\r\n setCantones(clist);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const setCanton = c => {\r\n initialValues.distrito = 999;\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = c;\r\n initialValues.jrv = 999;\r\n\r\n if (c !== 999) {\r\n getDistritoByTwo(sProvincia.value, c).then(result => {\r\n if (result.status === 200) {\r\n const distritosList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n const dlist = distritosList.map(\r\n ({ cod_distrito, des_nombre_d }) => {\r\n return {\r\n itemLabel: des_nombre_d,\r\n value: cod_distrito,\r\n };\r\n },\r\n );\r\n dlist.unshift({\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n });\r\n\r\n setSCanton(\r\n Lodash.find(cantones, {\r\n value: c,\r\n }),\r\n );\r\n\r\n setDistritos(dlist);\r\n }\r\n });\r\n } else {\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n const getJRV = async _codDistr => {\r\n const currentDistr = parseInt(_codDistr, 10);\r\n\r\n if (currentDistr > 0 && currentDistr !== 999) {\r\n // const { codProvincia, codCanton } = memberInfo;\r\n\r\n await miembrosMesaApi\r\n .getJuntaReceptora(\r\n sProvincia.value,\r\n sCanton.value,\r\n currentDistr,\r\n )\r\n .then(_res => {\r\n const listJRV = _res.data.response;\r\n if (listJRV instanceof Array) {\r\n const jrvlist = listJRV.map(\r\n // eslint-disable-next-line no-unused-vars\r\n ({ num_jvirt, index }) => {\r\n return {\r\n itemLabel: `Nº ${num_jvirt}`,\r\n value: num_jvirt,\r\n };\r\n },\r\n );\r\n jrvlist.unshift({\r\n itemLabel: '- SELECCIONE LA JRV -',\r\n value: 999,\r\n });\r\n\r\n setJRV(jrvlist);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const getJRVSelected = _jrv => {\r\n const currentJRV = parseInt(_jrv, 10);\r\n\r\n if (currentJRV > 0 && currentJRV !== 999) {\r\n // console.log(currentJRV);\r\n }\r\n };\r\n\r\n const renderForm = () => {\r\n return (\r\n
\r\n \r\n \r\n

Provincia

\r\n \r\n setProvincia(provincia)\r\n }\r\n />\r\n
\r\n \r\n

Cantón

\r\n setCanton(canton)}\r\n />\r\n
\r\n \r\n

Distrito

\r\n {\r\n getJRV(dist);\r\n }}\r\n />\r\n
\r\n \r\n

JRV

\r\n getJRVSelected(jrvItem)}\r\n />\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n const generateGafetes = values => async () => {\r\n let itemsList = [];\r\n // eslint-disable-next-line no-shadow\r\n const { provincia, canton, distrito, jrv } = values;\r\n const codProvincia = provincia === 9 ? -1 : provincia;\r\n const codCanton = canton === 999 ? -1 : canton;\r\n const codDistrito = distrito === 999 ? -1 : distrito;\r\n const codJrv = jrv === 999 ? -1 : jrv;\r\n\r\n try {\r\n if (decodedToken) {\r\n const info = await miembrosMesaApi.getAllMiembrosMesaFiltered(\r\n decodedToken.num_cedula,\r\n codProvincia,\r\n codCanton,\r\n codDistrito,\r\n codJrv,\r\n );\r\n\r\n const dataM = info.data.response;\r\n\r\n if (dataM instanceof Array && info.status === 200) {\r\n itemsList = dataM.map(member => {\r\n return {\r\n provincia: member.des_nombre_p,\r\n canton: member.des_nombre_c,\r\n distrito: member.des_nombre_d,\r\n jrv: member.cod_mesa,\r\n puesto: Consts.puestosMesa.filter(status => {\r\n return status.codigo === member.cod_puesto;\r\n })[0].descripcion,\r\n cedula: member.num_cedula,\r\n nombre: `${member.des_nombre} ${member.des_apell1} ${member.des_apell2}`,\r\n id: member.num_linea,\r\n };\r\n });\r\n // console.log(itemsList);\r\n generateGafete('Miembro Mesa', itemsList, 1);\r\n }\r\n }\r\n } catch (error) {\r\n console.warn(error);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Gafetes Electorales: Miembros de Mesa\r\n \r\n\r\n \r\n {formik => (\r\n <>\r\n {renderForm()}\r\n \r\n \r\n \r\n GENERAR GAFETES\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default GafetesMiembrosMesa;\r\n","/* eslint-disable camelcase */\r\nimport React, { useState } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { useJwt } from 'react-jwt';\r\nimport * as Yup from 'yup';\r\nimport Container from '@material-ui/core/Container';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Formik, Field } from 'formik';\r\nimport Box from '@material-ui/core/Box';\r\nimport { PlnDropdown } from '../../Components/Input';\r\nimport Copyright from '../Copyright/Copyright';\r\nimport Storage from '../../Storage/Storage';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport fiscalesMesaApi from '../../Core/Api/fiscalesMesaApi';\r\nimport {\r\n useProvincias,\r\n getCantonsByProvince,\r\n getDistritoByTwo,\r\n} from '../../Core/Api/locationApi';\r\n\r\nimport { generateGafete } from '../../Core/Utils/Comprobante';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n btnAdd: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n actionContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n}));\r\n\r\nconst GafetesFiscalesMesa = () => {\r\n const classes = useStyles();\r\n const { data } = useProvincias();\r\n const tokenStorage = Storage.instance;\r\n const { decodedToken } = useJwt(tokenStorage.getToken());\r\n\r\n // Opciones Seleccionadas\r\n const [sProvincia, setSProvincia] = useState(9);\r\n const [sCanton, setSCanton] = useState(999);\r\n // eslint-disable-next-line no-unused-vars\r\n const [sDistrito, setSDistrito] = useState(999);\r\n\r\n // Lista de: Provincias, Cantones, Distritos y Movimientos\r\n const [initialValues] = useState(\r\n Lodash.get(data, ['initValues'], {\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n jrv: 999,\r\n }),\r\n );\r\n\r\n const provincias = Lodash.get(\r\n data,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n const [cantones, setCantones] = useState([\r\n { itemLabel: '- SELECCIONE EL CANTÓN -', value: 999 },\r\n ]);\r\n const [distritos, setDistritos] = useState([\r\n { itemLabel: '- SELECCIONE EL DISTRITO -', value: 999 },\r\n ]);\r\n const [jrv, setJRV] = useState([\r\n { itemLabel: '- SELECCIONE LA JRV -', value: 999 },\r\n ]);\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const setProvincia = p => {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN -',\r\n value: 999,\r\n },\r\n ]);\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO -',\r\n value: 999,\r\n },\r\n ]);\r\n setJRV([\r\n {\r\n itemLabel: '- SELECCIONE LA JRV -',\r\n value: 999,\r\n },\r\n ]);\r\n initialValues.provincia = p;\r\n initialValues.canton = 999;\r\n initialValues.distrito = 999;\r\n initialValues.jrv = 999;\r\n if (p !== 9) {\r\n getCantonsByProvince(p).then(result => {\r\n if (result.status === 200) {\r\n const cantonsList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const clist = cantonsList.map(\r\n ({ cod_canton, des_nombre_c }) => {\r\n return {\r\n itemLabel: des_nombre_c,\r\n value: cod_canton,\r\n };\r\n },\r\n );\r\n clist.unshift({\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n });\r\n\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: p,\r\n }),\r\n );\r\n setCantones(clist);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const setCanton = c => {\r\n initialValues.distrito = 999;\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = c;\r\n initialValues.jrv = 999;\r\n\r\n if (c !== 999) {\r\n getDistritoByTwo(sProvincia.value, c).then(result => {\r\n if (result.status === 200) {\r\n const distritosList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n const dlist = distritosList.map(\r\n ({ cod_distrito, des_nombre_d }) => {\r\n return {\r\n itemLabel: des_nombre_d,\r\n value: cod_distrito,\r\n };\r\n },\r\n );\r\n dlist.unshift({\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n });\r\n\r\n setSCanton(\r\n Lodash.find(cantones, {\r\n value: c,\r\n }),\r\n );\r\n\r\n setDistritos(dlist);\r\n }\r\n });\r\n } else {\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n const getJRV = async _codDistr => {\r\n const currentDistr = parseInt(_codDistr, 10);\r\n\r\n if (currentDistr > 0 && currentDistr !== 999) {\r\n // const { codProvincia, codCanton } = memberInfo;\r\n\r\n await fiscalesMesaApi\r\n .getJuntaReceptora(\r\n sProvincia.value,\r\n sCanton.value,\r\n currentDistr,\r\n )\r\n .then(_res => {\r\n const listJRV = _res.data.response;\r\n if (listJRV instanceof Array) {\r\n const jrvlist = listJRV.map(\r\n // eslint-disable-next-line no-unused-vars\r\n ({ num_jvirt, index }) => {\r\n return {\r\n itemLabel: `Nº ${num_jvirt}`,\r\n value: num_jvirt,\r\n };\r\n },\r\n );\r\n jrvlist.unshift({\r\n itemLabel: '- SELECCIONE LA JRV -',\r\n value: 999,\r\n });\r\n\r\n setJRV(jrvlist);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const getJRVSelected = _jrv => {\r\n const currentJRV = parseInt(_jrv, 10);\r\n\r\n if (currentJRV > 0 && currentJRV !== 999) {\r\n // console.log(currentJRV);\r\n }\r\n };\r\n\r\n const renderForm = () => {\r\n return (\r\n
\r\n \r\n \r\n

Provincia

\r\n \r\n setProvincia(provincia)\r\n }\r\n />\r\n
\r\n \r\n

Cantón

\r\n setCanton(canton)}\r\n />\r\n
\r\n \r\n

Distrito

\r\n {\r\n getJRV(dist);\r\n }}\r\n />\r\n
\r\n \r\n

JRV

\r\n getJRVSelected(jrvItem)}\r\n />\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n const generateGafetes = values => async () => {\r\n let itemsList = [];\r\n // eslint-disable-next-line no-shadow\r\n const { provincia, canton, distrito, jrv } = values;\r\n const codProvincia = provincia === 9 ? -1 : provincia;\r\n const codCanton = canton === 999 ? -1 : canton;\r\n const codDistrito = distrito === 999 ? -1 : distrito;\r\n const codJrv = jrv === 999 ? -1 : jrv;\r\n\r\n try {\r\n if (decodedToken) {\r\n const info = await fiscalesMesaApi.getAllFiscalesMesaFiltered(\r\n decodedToken.num_cedula,\r\n codProvincia,\r\n codCanton,\r\n codDistrito,\r\n codJrv,\r\n );\r\n\r\n const dataM = info.data.response;\r\n\r\n if (dataM instanceof Array && info.status === 200) {\r\n itemsList = dataM.map(member => {\r\n return {\r\n provincia: member.des_nombre_p,\r\n canton: member.des_nombre_c,\r\n distrito: member.des_nombre_d,\r\n jrv: member.cod_mesa,\r\n puesto: Consts.puestosFiscalesMesa.filter(\r\n status => {\r\n return (\r\n status.codigo === member.cod_puesto\r\n );\r\n },\r\n )[0].descripcion,\r\n cedula: member.num_cedula,\r\n nombre: `${member.des_nombre} ${member.des_apell1} ${member.des_apell2}`,\r\n id: member.num_linea,\r\n };\r\n });\r\n // console.log(itemsList);\r\n generateGafete('Fiscal Mesa', itemsList, 2);\r\n }\r\n }\r\n } catch (error) {\r\n console.warn(error);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Gafetes Electorales: Fiscales de Mesa\r\n \r\n\r\n \r\n {formik => (\r\n <>\r\n {renderForm()}\r\n \r\n \r\n \r\n GENERAR GAFETES\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default GafetesFiscalesMesa;\r\n","/* eslint-disable camelcase */\r\nimport React, { useState } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { useJwt } from 'react-jwt';\r\nimport * as Yup from 'yup';\r\nimport Container from '@material-ui/core/Container';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Formik, Field } from 'formik';\r\nimport Box from '@material-ui/core/Box';\r\nimport { PlnDropdown } from '../../Components/Input';\r\nimport Copyright from '../Copyright/Copyright';\r\nimport Storage from '../../Storage/Storage';\r\nimport Consts from '../../Core/Consts/Consts';\r\nimport fiscalesGeneralesApi from '../../Core/Api/fiscalesGeneralesApi';\r\nimport {\r\n useProvincias,\r\n getCantonsByProvince,\r\n getDistritoByTwo,\r\n} from '../../Core/Api/locationApi';\r\n\r\nimport { generateGafete } from '../../Core/Utils/Comprobante';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n btnAdd: {\r\n float: 'right',\r\n width: 150,\r\n height: 30,\r\n marginTop: 5,\r\n },\r\n container: {\r\n paddingTop: 40,\r\n paddingBottom: 40,\r\n },\r\n paper: {\r\n padding: 20,\r\n display: 'flex',\r\n overflow: 'auto',\r\n flexDirection: 'column',\r\n },\r\n actionContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n}));\r\n\r\nconst GafetesFiscalesGenerales = () => {\r\n const classes = useStyles();\r\n const { data } = useProvincias();\r\n const tokenStorage = Storage.instance;\r\n const { decodedToken } = useJwt(tokenStorage.getToken());\r\n\r\n // Opciones Seleccionadas\r\n const [sProvincia, setSProvincia] = useState(9);\r\n const [sCanton, setSCanton] = useState(999);\r\n // eslint-disable-next-line no-unused-vars\r\n const [sDistrito, setSDistrito] = useState(999);\r\n\r\n // Lista de: Provincias, Cantones, Distritos y Movimientos\r\n const [initialValues] = useState(\r\n Lodash.get(data, ['initValues'], {\r\n provincia: 9,\r\n canton: 999,\r\n distrito: 999,\r\n jrv: 999,\r\n }),\r\n );\r\n\r\n const provincias = Lodash.get(\r\n data,\r\n ['frmOptions'],\r\n [\r\n {\r\n itemLabel: '- SELECCIONE LA PROVINCIA -',\r\n value: 9,\r\n },\r\n ],\r\n );\r\n\r\n const [cantones, setCantones] = useState([\r\n { itemLabel: '- SELECCIONE EL CANTÓN-', value: 999 },\r\n ]);\r\n const [distritos, setDistritos] = useState([\r\n { itemLabel: '- SELECCIONE EL DISTRITO-', value: 999 },\r\n ]);\r\n const [jrv, setJRV] = useState([\r\n { itemLabel: '- SELECCIONE LA JRV -', value: 999 },\r\n ]);\r\n\r\n const validationSchema = Yup.object({});\r\n\r\n const setProvincia = p => {\r\n setCantones([\r\n {\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n },\r\n ]);\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n initialValues.provincia = p;\r\n initialValues.canton = 999;\r\n initialValues.distrito = 999;\r\n if (p !== 9) {\r\n getCantonsByProvince(p).then(result => {\r\n if (result.status === 200) {\r\n const cantonsList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n\r\n const clist = cantonsList.map(\r\n ({ cod_canton, des_nombre_c }) => {\r\n return {\r\n itemLabel: des_nombre_c,\r\n value: cod_canton,\r\n };\r\n },\r\n );\r\n clist.unshift({\r\n itemLabel: '- SELECCIONE EL CANTÓN-',\r\n value: 999,\r\n });\r\n\r\n setSProvincia(\r\n Lodash.find(provincias, {\r\n value: p,\r\n }),\r\n );\r\n setCantones(clist);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const setCanton = c => {\r\n initialValues.distrito = 999;\r\n initialValues.provincia = sProvincia.value;\r\n initialValues.canton = c;\r\n initialValues.movimiento = 9;\r\n\r\n if (c !== 999) {\r\n getDistritoByTwo(sProvincia.value, c).then(result => {\r\n if (result.status === 200) {\r\n const distritosList = Lodash.get(result, [\r\n 'data',\r\n 'response',\r\n ]);\r\n const dlist = distritosList.map(\r\n ({ cod_distrito, des_nombre_d }) => {\r\n return {\r\n itemLabel: des_nombre_d,\r\n value: cod_distrito,\r\n };\r\n },\r\n );\r\n dlist.unshift({\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n });\r\n\r\n setSCanton(\r\n Lodash.find(cantones, {\r\n value: c,\r\n }),\r\n );\r\n\r\n setDistritos(dlist);\r\n }\r\n });\r\n } else {\r\n setDistritos([\r\n {\r\n itemLabel: '- SELECCIONE EL DISTRITO-',\r\n value: 999,\r\n },\r\n ]);\r\n }\r\n };\r\n\r\n const getJRV = async _codDistr => {\r\n const currentDistr = parseInt(_codDistr, 10);\r\n\r\n if (currentDistr > 0 && currentDistr !== 999) {\r\n // const { codProvincia, codCanton } = memberInfo;\r\n\r\n await fiscalesGeneralesApi\r\n .getJuntaReceptora(\r\n sProvincia.value,\r\n sCanton.value,\r\n currentDistr,\r\n )\r\n .then(_res => {\r\n const listJRV = _res.data.response;\r\n if (listJRV instanceof Array) {\r\n const jrvlist = listJRV.map(\r\n // eslint-disable-next-line no-unused-vars\r\n ({ num_jvirt, index }) => {\r\n return {\r\n itemLabel: `Nº ${num_jvirt}`,\r\n value: num_jvirt,\r\n };\r\n },\r\n );\r\n jrvlist.unshift({\r\n itemLabel: '- SELECCIONE LA JRV -',\r\n value: 999,\r\n });\r\n\r\n setJRV(jrvlist);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const getJRVSelected = _jrv => {\r\n const currentJRV = parseInt(_jrv, 10);\r\n\r\n if (currentJRV > 0 && currentJRV !== 999) {\r\n console.log(currentJRV);\r\n }\r\n };\r\n\r\n const renderForm = () => {\r\n return (\r\n
\r\n \r\n \r\n

Provincia

\r\n \r\n setProvincia(provincia)\r\n }\r\n />\r\n
\r\n \r\n

Cantón

\r\n setCanton(canton)}\r\n />\r\n
\r\n \r\n

Distrito

\r\n {\r\n getJRV(dist);\r\n }}\r\n />\r\n
\r\n \r\n

JRV

\r\n getJRVSelected(jrvItem)}\r\n />\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n const generateGafetes = values => async () => {\r\n let itemsList = [];\r\n // eslint-disable-next-line no-shadow\r\n const { provincia, canton, distrito, jrv } = values;\r\n const codProvincia = provincia === 9 ? -1 : provincia;\r\n const codCanton = canton === 999 ? -1 : canton;\r\n const codDistrito = distrito === 999 ? -1 : distrito;\r\n const codJrv = jrv === 999 ? -1 : jrv;\r\n\r\n try {\r\n if (decodedToken) {\r\n const info = await fiscalesGeneralesApi.getAllFiscalesGeneralesFiltered(\r\n decodedToken.num_cedula,\r\n codProvincia,\r\n codCanton,\r\n codDistrito,\r\n codJrv,\r\n );\r\n\r\n const dataM = info.data.response;\r\n\r\n if (dataM instanceof Array && info.status === 200) {\r\n itemsList = dataM.map(member => {\r\n return {\r\n provincia: member.des_nombre_p,\r\n canton: member.des_nombre_c,\r\n distrito: member.des_nombre_d,\r\n jrv: member.cod_mesa,\r\n puesto: Consts.puestosFiscalGeneral.filter(\r\n status => {\r\n return (\r\n status.codigo === member.cod_puesto\r\n );\r\n },\r\n )[0].descripcion,\r\n cedula: member.num_cedula,\r\n nombre: `${member.des_nombre} ${member.des_apell1} ${member.des_apell2}`,\r\n id: member.num_linea,\r\n };\r\n });\r\n // console.log(itemsList);\r\n generateGafete('Fiscal General', itemsList, 3);\r\n }\r\n }\r\n } catch (error) {\r\n console.warn(error);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Gafetes Electorales: Fiscales Generales\r\n \r\n\r\n \r\n {formik => (\r\n <>\r\n {renderForm()}\r\n \r\n \r\n \r\n GENERAR GAFETES\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default GafetesFiscalesGenerales;\r\n","/* eslint-disable max-len */\r\nimport Home from '../Containers/Home/Home';\r\nimport ConsultaElectores from '../Containers/ConsultaElectores/ConsultaElectores';\r\nimport RegistroGestores from '../Containers/RegistroGestores/RegistroGestores';\r\nimport Login from '../Containers/Login/Login';\r\nimport ForgotPassword from '../Containers/Login/ForgotPassword';\r\nimport MainPage from '../Containers/MainPage/MainPage';\r\nimport Formulario from '../Containers/Formulario/Formulario';\r\nimport FormularioAuth from '../Containers/FormularioAuth/FormularioAuth';\r\nimport Dashboard from '../Containers/Dashboard/Dashboard';\r\nimport Distritales from '../Containers/Distritales/Distritales';\r\nimport AddDistritales from '../Containers/Distritales/AddDistritales';\r\nimport Cantonales from '../Containers/Cantonales/Cantonales';\r\nimport EditCantonales from '../Containers/Cantonales/EditCantonales';\r\nimport AddCantonales from '../Containers/Cantonales/AddCantonales';\r\nimport Provinciales from '../Containers/Provinciales/Provinciales';\r\nimport AddProvinciales from '../Containers/Provinciales/AddProvinciales';\r\nimport EditProvinciales from '../Containers/Provinciales/EditProvinciales';\r\nimport PresidencialSectorial from '../Containers/PresidencialSectorial/PresidencialSectorial';\r\nimport AddPresidenteSector from '../Containers/PresidencialSectorial/AddPresidenteSector';\r\nimport EditPresidenteSector from '../Containers/PresidencialSectorial/EditPresidenteSector';\r\nimport Sectoriales from '../Containers/Sectoriales/Sectoriales';\r\nimport AddPapeletaSector from '../Containers/Sectoriales/AddPapeletaSector';\r\nimport EditSectoriales from '../Containers/Sectoriales/EditSectoriales';\r\nimport Nacionales from '../Containers/Nacionales/Nacionales';\r\nimport AddNacionales from '../Containers/Nacionales/AddNacionales';\r\nimport EditNacionales from '../Containers/Nacionales/EditNacionales';\r\nimport EditDistritales from '../Containers/Distritales/EditDistritales';\r\n\r\nimport MiembrosMesa from '../Containers/MiembrosMesa/MiembrosMesa';\r\nimport AddMiembro from '../Containers/MiembrosMesa/AddMiembro';\r\nimport EditMiembro from '../Containers/MiembrosMesa/EditMiembro';\r\n\r\nimport FiscalesMesa from '../Containers/FiscalesMesa/FiscalesMesa';\r\nimport AddFiscales from '../Containers/FiscalesMesa/AddFiscales';\r\nimport EditFiscales from '../Containers/FiscalesMesa/EditFiscales';\r\n\r\nimport FiscalesGenerales from '../Containers/FiscalesGenerales/FiscalesGenerales';\r\nimport AddFiscalesGenerales from '../Containers/FiscalesGenerales/AddFiscalesGenerales';\r\nimport EditFiscalesGenerales from '../Containers/FiscalesGenerales/EditFiscalesGenerales';\r\n\r\nimport RegistroDepositos from '../Containers/RegistroDepositos/RegistroDepositos';\r\nimport AddDeposito from '../Containers/RegistroDepositos/AddDeposito';\r\nimport EditDeposito from '../Containers/RegistroDepositos/EditDeposito';\r\n\r\nimport ConsultaDebitos from '../Containers/ConsultaDebitos/ConsultaDebitos';\r\n\r\n// Consultas Publicas\r\nimport CPPapeletasDistritales from '../Containers/ConsultasPublicas/CPPapeletasDistritales';\r\nimport CPPapeletasCantonales from '../Containers/ConsultasPublicas/CPPapeletasCantonales';\r\nimport CPPapeletasProvinciales from '../Containers/ConsultasPublicas/CPPapeletasProvinciales';\r\nimport CPPapeletasNacionales from '../Containers/ConsultasPublicas/CPPapeletasNacionales';\r\nimport CPPresidenteSector from '../Containers/ConsultasPublicas/CPPresidenteSector';\r\nimport CPPapeletasSectoriales from '../Containers/ConsultasPublicas/CPPapeletasSectoriales';\r\nimport REMiembrosMesa from '../Containers/RegistrosElectorales/REMiembrosMesa';\r\nimport REFiscalesMesa from '../Containers/RegistrosElectorales/REFiscalesMesa';\r\nimport REFiscalesGenerales from '../Containers/RegistrosElectorales/REFiscalesGenerales';\r\n\r\n/*\r\n// Reporte de Resultados\r\nimport EVConvencionInterna from '../Containers/EscrutinioVotacion/EVConvencionInterna';\r\nimport EVPapeletasDistritales from '../Containers/EscrutinioVotacion/EVPapeletasDistritales';\r\nimport EVPapeletasCantonales from '../Containers/EscrutinioVotacion/EVPapeletasCantonales';\r\nimport EVPapeletasProvinciales from '../Containers/EscrutinioVotacion/EVPapeletasProvinciales';\r\nimport EVPapeletasNacionales from '../Containers/EscrutinioVotacion/EVPapeletasNacionales';\r\nimport EVPresidenteSector from '../Containers/EscrutinioVotacion/EVPresidenteSector';\r\nimport EVPapeletasSectoriales from '../Containers/EscrutinioVotacion/EVPapeletasSectoriales';\r\n\r\n// Reporte de Adjudicación de Puestos\r\nimport APDelegadosDistritales from '../Containers/AdjudicacionPuestos/APDelegadosDistritales';\r\nimport APComitePoliticoCantonal from '../Containers/AdjudicacionPuestos/APComitePoliticoCantonal';\r\nimport APMovRepresentanteProvincial from '../Containers/AdjudicacionPuestos/APMovRepresentanteProvincial';\r\nimport APMovimientosNacionales from '../Containers/AdjudicacionPuestos/APMovimientosNacionales';\r\nimport APPresidenteSector from '../Containers/AdjudicacionPuestos/APPresidenteSector';\r\nimport APSectores from '../Containers/AdjudicacionPuestos/APSectores';\r\n*/\r\n\r\n// Gafetes Electorales\r\nimport GafetesMiembrosMesa from '../Containers/GafetesElectorales/GafetesMiembrosMesa';\r\nimport GafetesFiscalesMesa from '../Containers/GafetesElectorales/GafetesFiscalesMesa';\r\nimport GafetesFiscalesGenerales from '../Containers/GafetesElectorales/GafetesFiscalesGenerales';\r\n\r\nconst routesList = [\r\n {\r\n auth: false,\r\n component: MainPage,\r\n exact: true,\r\n name: 'mainPage',\r\n path: '/',\r\n },\r\n {\r\n auth: false,\r\n component: Login,\r\n exact: true,\r\n name: 'login',\r\n path: '/login',\r\n },\r\n {\r\n auth: false,\r\n component: ForgotPassword,\r\n exact: true,\r\n name: 'forgotPwd',\r\n path: '/forgot-password',\r\n },\r\n {\r\n auth: true,\r\n component: Home,\r\n exact: true,\r\n name: 'home',\r\n path: '/home',\r\n },\r\n {\r\n auth: true,\r\n component: Dashboard,\r\n exact: true,\r\n name: 'dashboard',\r\n path: '/dashboard',\r\n },\r\n {\r\n auth: true,\r\n component: Distritales,\r\n exact: true,\r\n name: 'distritales',\r\n path: '/distritales',\r\n },\r\n {\r\n auth: true,\r\n component: AddDistritales,\r\n exact: true,\r\n name: 'addDistritales',\r\n path: '/distritales/add',\r\n },\r\n {\r\n auth: true,\r\n component: EditDistritales,\r\n exact: true,\r\n name: 'editDistritales',\r\n path: '/distritales/edit/:id',\r\n },\r\n {\r\n auth: true,\r\n component: Cantonales,\r\n exact: true,\r\n name: 'cantonales',\r\n path: '/cantonales',\r\n },\r\n {\r\n auth: true,\r\n component: AddCantonales,\r\n exact: true,\r\n name: 'addCantonales',\r\n path: '/cantonales/add',\r\n },\r\n {\r\n auth: true,\r\n component: EditCantonales,\r\n exact: true,\r\n name: 'editCantonales',\r\n path: '/cantonales/edit/:id',\r\n },\r\n {\r\n auth: true,\r\n component: Nacionales,\r\n exact: true,\r\n name: 'nacionales',\r\n path: '/nacionales',\r\n },\r\n {\r\n auth: true,\r\n component: AddNacionales,\r\n exact: true,\r\n name: 'addNacionales',\r\n path: '/nacionales/add',\r\n },\r\n {\r\n auth: true,\r\n component: EditNacionales,\r\n exact: true,\r\n name: 'editNacionales',\r\n path: '/nacionales/edit/:id',\r\n },\r\n {\r\n auth: true,\r\n component: Provinciales,\r\n exact: true,\r\n name: 'provinciales',\r\n path: '/provinciales',\r\n },\r\n {\r\n auth: true,\r\n component: AddProvinciales,\r\n exact: true,\r\n name: 'addProvinciales',\r\n path: '/provinciales/add',\r\n },\r\n {\r\n auth: true,\r\n component: EditProvinciales,\r\n exact: true,\r\n name: 'editProvinciales',\r\n path: '/provinciales/edit/:id',\r\n },\r\n {\r\n auth: true,\r\n component: PresidencialSectorial,\r\n exact: true,\r\n name: 'presiSectores',\r\n path: '/presi-sectores',\r\n },\r\n {\r\n auth: true,\r\n component: AddPresidenteSector,\r\n exact: true,\r\n name: 'addPresiSector',\r\n path: '/presi-sectores/add',\r\n },\r\n {\r\n auth: true,\r\n component: EditPresidenteSector,\r\n exact: true,\r\n name: 'editPresiSector',\r\n path: '/presi-sectores/edit/:id',\r\n },\r\n {\r\n auth: true,\r\n component: Sectoriales,\r\n exact: true,\r\n name: 'sectoriales',\r\n path: '/sectoriales',\r\n },\r\n {\r\n auth: true,\r\n component: AddPapeletaSector,\r\n exact: true,\r\n name: 'addPapeletaSector',\r\n path: '/sectoriales/add',\r\n },\r\n {\r\n auth: true,\r\n component: EditSectoriales,\r\n exact: true,\r\n name: 'editSectoriales',\r\n path: '/sectoriales/edit/:id',\r\n },\r\n {\r\n auth: true,\r\n component: MiembrosMesa,\r\n exact: true,\r\n name: 'miembros-mesa',\r\n path: '/miembros-mesa',\r\n },\r\n {\r\n auth: true,\r\n component: AddMiembro,\r\n exact: true,\r\n name: 'miembros-mesa-add',\r\n path: '/miembros-mesa/add',\r\n },\r\n {\r\n auth: true,\r\n component: EditMiembro,\r\n exact: true,\r\n name: 'miembros-mesa-edit',\r\n path: '/miembros-mesa/edit/:id',\r\n },\r\n {\r\n auth: true,\r\n component: FiscalesMesa,\r\n exact: true,\r\n name: 'fiscales-mesa',\r\n path: '/fiscales-mesa',\r\n },\r\n {\r\n auth: true,\r\n component: AddFiscales,\r\n exact: true,\r\n name: 'fiscales-mesa-add',\r\n path: '/fiscales-mesa/add',\r\n },\r\n {\r\n auth: true,\r\n component: EditFiscales,\r\n exact: true,\r\n name: 'fiscales-mesa-edit',\r\n path: '/fiscales-mesa/edit/:id',\r\n },\r\n {\r\n auth: true,\r\n component: FiscalesGenerales,\r\n exact: true,\r\n name: 'fiscales-generales',\r\n path: '/fiscales-generales',\r\n },\r\n {\r\n auth: true,\r\n component: AddFiscalesGenerales,\r\n exact: true,\r\n name: 'fiscales-generales-add',\r\n path: '/fiscales-generales/add',\r\n },\r\n {\r\n auth: true,\r\n component: EditFiscalesGenerales,\r\n exact: true,\r\n name: 'fiscales-generales-edit',\r\n path: '/fiscales-generales/edit/:id',\r\n },\r\n {\r\n auth: false,\r\n component: Formulario,\r\n exact: true,\r\n name: 'formulario',\r\n path: '/formulario/:typeForm',\r\n },\r\n {\r\n auth: true,\r\n component: FormularioAuth,\r\n exact: true,\r\n name: 'formularioAuth',\r\n path: '/formularioAuth/:typeForm',\r\n },\r\n {\r\n auth: false,\r\n component: ConsultaElectores,\r\n exact: true,\r\n name: 'consulta-electores',\r\n path: '/consulta-electores',\r\n },\r\n {\r\n auth: false,\r\n component: RegistroGestores,\r\n exact: true,\r\n name: 'registro-gestores',\r\n path: '/registro-gestores',\r\n },\r\n {\r\n auth: true,\r\n component: RegistroDepositos,\r\n exact: true,\r\n name: 'registroDepositos',\r\n path: '/registro-depositos',\r\n },\r\n {\r\n auth: true,\r\n component: AddDeposito,\r\n exact: true,\r\n name: 'addDeposito',\r\n path: '/registro-depositos/add',\r\n },\r\n {\r\n auth: true,\r\n component: EditDeposito,\r\n exact: true,\r\n name: 'editDeposito',\r\n path: '/registro-depositos/edit/:id',\r\n },\r\n {\r\n auth: true,\r\n component: ConsultaDebitos,\r\n exact: true,\r\n name: 'consultaDebitos',\r\n path: '/consulta-debitos',\r\n },\r\n /*\r\n {\r\n auth: false,\r\n component: EVConvencionInterna,\r\n exact: true,\r\n name: 'evConvencionInterna',\r\n path: '/escrutinio-votacion/convencion-interna',\r\n },\r\n {\r\n auth: false,\r\n component: EVPapeletasDistritales,\r\n exact: true,\r\n name: 'evPapeletasDistritales',\r\n path: '/escrutinio-votacion/papeletas-distritales',\r\n },\r\n {\r\n auth: false,\r\n component: EVPapeletasCantonales,\r\n exact: true,\r\n name: 'evPapeletasCantonales',\r\n path:\r\n '/escrutinio-votacion/papeletas-movimientos-cantonales',\r\n },\r\n {\r\n auth: false,\r\n component: EVPapeletasProvinciales,\r\n exact: true,\r\n name: 'evPapeletasProvinciales',\r\n path:\r\n '/escrutinio-votacion/papeletas-movimientos-provinciales',\r\n },\r\n {\r\n auth: false,\r\n component: EVPapeletasNacionales,\r\n exact: true,\r\n name: 'evPapeletasNacionales',\r\n path:\r\n '/escrutinio-votacion/papeletas-movimientos-nacionales',\r\n },\r\n {\r\n auth: false,\r\n component: EVPresidenteSector,\r\n exact: true,\r\n name: 'evPresidenteSector',\r\n path: '/escrutinio-votacion/presidente-sectores',\r\n },\r\n {\r\n auth: false,\r\n component: EVPapeletasSectoriales,\r\n exact: true,\r\n name: 'evPapeletasSectoriales',\r\n path: '/escrutinio-votacion/papeletas-sectores',\r\n },\r\n {\r\n auth: false,\r\n component: APDelegadosDistritales,\r\n exact: true,\r\n name: 'apDelegadosDistritales',\r\n path: '/adjudicacion-puestos/delegados-distritales',\r\n },\r\n {\r\n auth: false,\r\n component: APComitePoliticoCantonal,\r\n exact: true,\r\n name: 'apComitePoliticoCantonal',\r\n path: '/adjudicacion-puestos/comite-politico-cantonal',\r\n },\r\n {\r\n auth: false,\r\n component: APMovRepresentanteProvincial,\r\n exact: true,\r\n name: 'apMovRepresentanteProvincial',\r\n path:\r\n '/adjudicacion-puestos/movimiento-representante-provinciales',\r\n },\r\n {\r\n auth: false,\r\n component: APMovimientosNacionales,\r\n exact: true,\r\n name: 'apMovimientosNacionales',\r\n path: '/adjudicacion-puestos/movimientos-nacionales',\r\n },\r\n {\r\n auth: false,\r\n component: APPresidenteSector,\r\n exact: true,\r\n name: 'apPresidenteSector',\r\n path: '/adjudicacion-puestos/presidente-sectores',\r\n },\r\n {\r\n auth: false,\r\n component: APSectores,\r\n exact: true,\r\n name: 'apSectores',\r\n path: '/adjudicacion-puestos/sectores',\r\n },\r\n */\r\n {\r\n auth: false,\r\n component: CPPapeletasDistritales,\r\n exact: true,\r\n name: 'cpPapeletasDistritales',\r\n path: '/consulta-publica/papeletas-distritales',\r\n },\r\n {\r\n auth: false,\r\n component: CPPapeletasCantonales,\r\n exact: true,\r\n name: 'cpPapeletasCantonales',\r\n path:\r\n '/consulta-publica/papeletas-movimientos-cantonales',\r\n },\r\n {\r\n auth: false,\r\n component: CPPapeletasProvinciales,\r\n exact: true,\r\n name: 'cpPapeletasProvinciales',\r\n path:\r\n '/consulta-publica/papeletas-movimientos-provinciales',\r\n },\r\n {\r\n auth: false,\r\n component: CPPapeletasNacionales,\r\n exact: true,\r\n name: 'cpPapeletasNacionales',\r\n path:\r\n '/consulta-publica/papeletas-movimientos-nacionales',\r\n },\r\n {\r\n auth: false,\r\n component: CPPresidenteSector,\r\n exact: true,\r\n name: 'cpPresidenteSector',\r\n path: '/consulta-publica/presidente-sectores',\r\n },\r\n {\r\n auth: false,\r\n component: CPPapeletasSectoriales,\r\n exact: true,\r\n name: 'cpPapeletasSectoriales',\r\n path: '/consulta-publica/papeletas-sectores',\r\n },\r\n {\r\n auth: false,\r\n component: REMiembrosMesa,\r\n exact: true,\r\n name: 'reMiembrosMesa',\r\n path: '/registros-electorales/miembros-mesa',\r\n },\r\n {\r\n auth: false,\r\n component: REFiscalesMesa,\r\n exact: true,\r\n name: 'reFiscalesMesa',\r\n path: '/registros-electorales/fiscales-mesa',\r\n },\r\n {\r\n auth: false,\r\n component: REFiscalesGenerales,\r\n exact: true,\r\n name: 'reFiscalesGenerales',\r\n path: '/registros-electorales/fiscales-generales',\r\n },\r\n {\r\n auth: true,\r\n component: GafetesMiembrosMesa,\r\n exact: true,\r\n name: 'gafetes-miembros-mesa',\r\n path: '/gafetes-miembros-mesa',\r\n },\r\n {\r\n auth: true,\r\n component: GafetesFiscalesMesa,\r\n exact: true,\r\n name: 'gafetes-fiscales-mesa',\r\n path: '/gafetes-fiscales-mesa',\r\n },\r\n {\r\n auth: true,\r\n component: GafetesFiscalesGenerales,\r\n exact: true,\r\n name: 'gafetes-fiscales-generales',\r\n path: '/gafetes-fiscales-generales',\r\n },\r\n];\r\n\r\nexport default routesList;\r\n","import React from 'react';\r\nimport Box from '@material-ui/core/Box';\r\nimport Container from '@material-ui/core/Container';\r\n\r\nimport useStyles from '../Layout/makeStyles';\r\nimport Copyright from '../Copyright/Copyright';\r\nimport Cards from './Cards';\r\n\r\nexport default function Dashboard() {\r\n const classes = useStyles();\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","/* eslint-disable max-len */\r\n/* eslint-disable arrow-parens */\r\n/* eslint-disable react/jsx-filename-extension */\r\nimport * as React from 'react';\r\nimport {\r\n Menu,\r\n MenuItem,\r\n makeStyles,\r\n Theme,\r\n} from '@material-ui/core';\r\nimport ArrowForwardIosIcon from '@material-ui/icons/ArrowForwardIos';\r\n\r\nconst useStyles = makeStyles((theme: Theme) => ({\r\n menuItem: {\r\n backgroundColor: ({\r\n isSubMenuOpen,\r\n }: {\r\n isSubMenuOpen: boolean;\r\n }) =>\r\n isSubMenuOpen\r\n ? theme.palette.action.hover\r\n : 'transparent',\r\n minWidth: '12rem',\r\n },\r\n contentContainer: {\r\n width: '100%',\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n },\r\n name: {\r\n paddingRight: 6,\r\n },\r\n expandIcon: {\r\n fontSize: 12,\r\n },\r\n}));\r\n\r\ntype Item = {\r\n id: string;\r\n name: string;\r\n children?: Item[];\r\n};\r\n\r\ninterface NestedMenuItemProps {\r\n id: string;\r\n name: string;\r\n childrenItems?: Item[];\r\n onClick: (id: string) => void;\r\n}\r\n\r\nconst NestedMenuItem = React.forwardRef<\r\n any,\r\n NestedMenuItemProps\r\n>(\r\n (\r\n {\r\n // eslint-disable-next-line react/prop-types\r\n id: parentId,\r\n // eslint-disable-next-line react/prop-types\r\n name: parentName,\r\n // eslint-disable-next-line react/prop-types\r\n childrenItems: parentChildrenItems = [],\r\n // eslint-disable-next-line react/prop-types\r\n onClick,\r\n },\r\n ref,\r\n ) => {\r\n const [\r\n anchorEl,\r\n setAnchorEl,\r\n ] = React.useState(null);\r\n const isSubMenuOpen = Boolean(Boolean(anchorEl));\r\n const classes = useStyles({ isSubMenuOpen });\r\n const hasChildrenItems =\r\n parentChildrenItems?.length || false;\r\n const isLeafNode = !hasChildrenItems;\r\n\r\n const handleMouseEnter = (\r\n event: React.MouseEvent,\r\n ) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleClick = (event: React.MouseEvent) => {\r\n event.stopPropagation();\r\n if (isLeafNode) {\r\n onClick(parentId);\r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n {parentName}\r\n {hasChildrenItems && (\r\n \r\n )}\r\n
\r\n {hasChildrenItems && (\r\n <>\r\n \r\n {/* reset pointer event here so that the menu items could receive mouse events */}\r\n
\r\n {parentChildrenItems.map(item => {\r\n const { id, name, children } = item;\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n \r\n \r\n )}\r\n \r\n );\r\n },\r\n);\r\n\r\nexport default NestedMenuItem;\r\n","import {\r\n colors,\r\n breakpoints as bp,\r\n} from '../../Core/Theme/theme';\r\n\r\nconst styles = theme => ({\r\n container: {\r\n background: colors.backGray,\r\n },\r\n sectionDesktop: {\r\n display: 'none',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'flex',\r\n },\r\n },\r\n sectionMobile: {\r\n display: 'flex',\r\n [theme.breakpoints.up('md')]: {\r\n display: 'none',\r\n },\r\n },\r\n imgLogo: {\r\n maxWidth: '100%',\r\n height: 'auto',\r\n display: 'block',\r\n padding: 15,\r\n [theme.breakpoints.down(bp.MOBILE)]: {\r\n paddingTop: 25,\r\n },\r\n },\r\n socialLinks: {\r\n padding: 0,\r\n marginTop: 25,\r\n marginRight: 25,\r\n float: 'right',\r\n '& li': {\r\n listStyle: 'none',\r\n float: 'left',\r\n marginRight: '10px',\r\n },\r\n },\r\n loginAccess: {\r\n padding: 0,\r\n marginTop: 25,\r\n color: '#999',\r\n marginRight: 25,\r\n float: 'right',\r\n '& li': {\r\n listStyle: 'none',\r\n float: 'left',\r\n marginRight: '10px',\r\n paddingLeft: '25px',\r\n borderLeft: 'solid thin #000',\r\n '& span': {\r\n float: 'right',\r\n marginLeft: 5,\r\n marginTop: 3,\r\n },\r\n '& a.MuiLink-root': {\r\n color: '#999',\r\n fontFamily: \"'Inter'\",\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport default styles;\r\n","/* eslint-disable no-unused-vars */\r\nimport React, { useState } from 'react';\r\nimport Lodash from 'lodash';\r\nimport {\r\n withStyles,\r\n makeStyles,\r\n} from '@material-ui/core/styles';\r\nimport { Container, Grid, Link } from '@material-ui/core';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Button from '@material-ui/core/Button';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Menu from '@material-ui/core/Menu';\r\nimport MoreIcon from '@material-ui/icons/MoreVert';\r\nimport FacebookIcon from '@material-ui/icons/Facebook';\r\nimport InstagramIcon from '@material-ui/icons/Instagram';\r\nimport TwitterIcon from '@material-ui/icons/Twitter';\r\nimport YouTubeIcon from '@material-ui/icons/YouTube';\r\nimport PersonIcon from '@material-ui/icons/Person';\r\nimport LibraryBooksIcon from '@material-ui/icons/LibraryBooks';\r\nimport NestedMenuItem from './NestedMenuItem.tsx';\r\nimport style from './styles';\r\n\r\nimport {\r\n useIGESAvailable,\r\n useLoginGESAvailable,\r\n useConsultaInscripcionesAvailable,\r\n useFormPapeletaSectoresAvailable,\r\n} from '../../Core/Api/periodoApi';\r\n\r\nconst useStyles = makeStyles({\r\n icon: {\r\n color: '#fff', // Change to your desired color\r\n fontSize: '24px', // Optional: change size if needed\r\n },\r\n texLink: {\r\n color: '#fff',\r\n },\r\n mainBar: {\r\n background: '#1C8A43',\r\n },\r\n});\r\n\r\nconst Header = props => {\r\n const { classes } = props;\r\n const styleClases = useStyles();\r\n\r\n const [anchorElMAD, setAnchorElMAD] = useState(null);\r\n const [anchorElMRE, setAnchorElMRE] = useState(null);\r\n\r\n const handleClickMAD = event => {\r\n setAnchorElMAD(event.currentTarget);\r\n };\r\n\r\n const handleClickMRE = event => {\r\n setAnchorElMRE(event.currentTarget);\r\n };\r\n\r\n const goSectores = event => {\r\n window.location.href = `/formulario/papeletas-sectores`;\r\n };\r\n\r\n const handleCloseMAD = () => {\r\n setAnchorElMAD(null);\r\n };\r\n\r\n const handleCloseMRE = () => {\r\n setAnchorElMRE(null);\r\n };\r\n\r\n const handleItemClickMAD = link => {\r\n setAnchorElMAD(null);\r\n window.location.href = `/${link}`;\r\n };\r\n\r\n const handleItemClickMRE = link => {\r\n setAnchorElMRE(null);\r\n window.location.href = `/${link}`;\r\n };\r\n\r\n // Se valida si esta habilitada la opcion (Registro Gestores)\r\n const isRegistroGESAvailable = useIGESAvailable();\r\n const registroGESAvailable = Lodash.get(\r\n isRegistroGESAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n\r\n // Se valida si esta habilitada la opcion (Login Gestores)\r\n const isLoginGESAvailable = useLoginGESAvailable();\r\n const loginGESAvailable = Lodash.get(\r\n isLoginGESAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n\r\n // Se valida si esta habilitada la opcion (Consulta Inscripciones)\r\n const isConsultaInscripcionesAvailable = useConsultaInscripcionesAvailable();\r\n const consultaInscripcionesAvailable = Lodash.get(\r\n isConsultaInscripcionesAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n\r\n // Se valida si esta habilitada la opcion (Papeleta Sectores)\r\n const isFormPapeletaSectoresAvailable = useFormPapeletaSectoresAvailable();\r\n const formPapeletaSectoresAvailable = Lodash.get(\r\n isFormPapeletaSectoresAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const [anchorEl2, setAnchorEl2] = useState(null);\r\n const [\r\n anchorElectorales,\r\n setAnchorElectorales,\r\n ] = useState(null);\r\n const [\r\n mobileMoreAnchorEl,\r\n setMobileMoreAnchorEl,\r\n ] = useState(null);\r\n\r\n const menuId = 'primary-search-account-menu';\r\n const menuId2 = 'consultas-publicas-menu';\r\n const menuIdElectorales = 'registros-electorales-menu';\r\n const mobileMenuId = 'primary-search-account-menu-mobile';\r\n const isMenuOpen = Boolean(anchorEl);\r\n const isMenu2Open = Boolean(anchorEl2);\r\n const isMenuElectoralesOpen = Boolean(anchorElectorales);\r\n const isMobileMenuOpen = Boolean(mobileMoreAnchorEl);\r\n\r\n const handleProfileMenuOpen = event => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleAdjudicacionPuestos = event => {\r\n setAnchorEl2(event.currentTarget);\r\n };\r\n\r\n const handleElectoralesMenuOpen = event => {\r\n setAnchorElectorales(event.currentTarget);\r\n };\r\n\r\n const handleMobileMenuOpen = event => {\r\n setMobileMoreAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleMobileMenuClose = () => {\r\n setMobileMoreAnchorEl(null);\r\n };\r\n\r\n const handleMobileMenu2Close = () => {\r\n setMobileMoreAnchorEl(null);\r\n };\r\n\r\n const handleMenuClose = () => {\r\n setAnchorEl(null);\r\n handleMobileMenuClose();\r\n };\r\n\r\n const handleMenu2Close = () => {\r\n setAnchorEl2(null);\r\n handleMobileMenu2Close();\r\n };\r\n\r\n const handleMenuRegistroElectClose = () => {\r\n setAnchorElectorales(null);\r\n handleMobileMenuClose();\r\n };\r\n\r\n const renderMenu = (\r\n \r\n \r\n \r\n Convención Interna\r\n \r\n \r\n \r\n \r\n Papeletas Distritales\r\n \r\n \r\n \r\n \r\n Papeletas Cantonales\r\n \r\n \r\n \r\n \r\n Papeletas Provinciales\r\n \r\n \r\n \r\n \r\n Papeletas Mov. Nacionales\r\n \r\n \r\n \r\n \r\n Presidencia de Sectores\r\n \r\n \r\n \r\n \r\n Papeletas de Sectores\r\n \r\n \r\n \r\n );\r\n\r\n const renderMenuAdjudicacionPuestos = (\r\n \r\n \r\n \r\n Delegados Distritales\r\n \r\n \r\n \r\n \r\n Comité Político Cantonal\r\n \r\n \r\n \r\n \r\n Representantes Provinciales de Movimientos\r\n \r\n \r\n \r\n \r\n Mov. Nacionales\r\n \r\n \r\n \r\n \r\n Presidencia de Sectores\r\n \r\n \r\n \r\n \r\n Repre. al Organo Consultivo Nac. (Sectores)\r\n \r\n \r\n \r\n );\r\n\r\n const renderRegistrosElectMenu = (\r\n \r\n \r\n \r\n Miembros de Mesa\r\n \r\n \r\n \r\n \r\n Fiscales de Mesa\r\n \r\n \r\n \r\n \r\n Fiscales Generales\r\n \r\n \r\n \r\n );\r\n\r\n const renderMobileMenu = (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n const getMenuAsambleasDistritales = isConInsAvailable => {\r\n const menuAsambleasDistritales = [\r\n {\r\n id: '582e4aeb-316c-412b-8e5d-fcc67e6a059b',\r\n name: 'Formularios',\r\n children: [\r\n {\r\n id: 'formulario/papeletas-distritales',\r\n name: 'Papeletas de Mov. Distritales',\r\n },\r\n {\r\n id:\r\n 'formulario/papeletas-movimientos-cantonales',\r\n name: 'Papeletas de Mov. Cantonales',\r\n },\r\n {\r\n id:\r\n 'formulario/papeletas-movimientos-provinciales',\r\n name: 'Papeletas de Mov. Provinciales',\r\n },\r\n {\r\n id:\r\n 'formulario/papeletas-movimientos-nacionales',\r\n name: 'Papeletas de Mov. Nacionales',\r\n },\r\n /*\r\n {\r\n id: 'formulario/presidente-sectores',\r\n name: 'Presidente de Sectores',\r\n },\r\n {\r\n id: 'formulario/papeletas-sectores',\r\n name: 'Papeletas de Sectores',\r\n },\r\n */\r\n {\r\n id: 'formulario/hoja-informacion',\r\n name: 'Hoja de Información',\r\n },\r\n ],\r\n },\r\n /*\r\n {\r\n id: '8be77a64-b963-4aef-addb-749cd6c845dc',\r\n name: 'Consulta de Inscripciones',\r\n children: [\r\n {\r\n id: 'consulta-publica/papeletas-distritales',\r\n name: 'Papeletas Distritales',\r\n },\r\n {\r\n id:\r\n 'consulta-publica/papeletas-movimientos-cantonales',\r\n name: 'Papeletas Cantonales',\r\n },\r\n {\r\n id:\r\n 'consulta-publica/papeletas-movimientos-provinciales',\r\n name: 'Papeletas Provinciales',\r\n },\r\n {\r\n id:\r\n 'consulta-publica/papeletas-movimientos-nacionales',\r\n name: 'Papeletas Nacionales',\r\n },\r\n /*\r\n {\r\n id: 'consulta-publica/presidente-sectores',\r\n name: 'Presidente de Sectores',\r\n },\r\n {\r\n id: 'consulta-publica/papeletas-sectores',\r\n name: 'Papeletas de Sectores',\r\n }, \r\n ],\r\n },\r\n {\r\n id: '8be77a64-b963-4aef-addb-749cd6c845dd',\r\n name: 'Registros Electorales',\r\n children: [\r\n {\r\n id: 'registros-electorales/miembros-mesa',\r\n name: 'Miembros de Mesa',\r\n },\r\n {\r\n id: 'registros-electorales/fiscales-mesa',\r\n name: 'Fiscales de Mesa',\r\n },\r\n {\r\n id: 'registros-electorales/fiscales-generales',\r\n name: 'Fiscales Generales',\r\n },\r\n ],\r\n },\r\n */\r\n ];\r\n if (isConInsAvailable) {\r\n menuAsambleasDistritales.push({\r\n id: '8be77a64-b963-4aef-addb-749cd6c845dc',\r\n name: 'Consulta de Inscripciones',\r\n children: [\r\n {\r\n id: 'consulta-publica/papeletas-distritales',\r\n name: 'Papeletas Distritales',\r\n },\r\n {\r\n id:\r\n 'consulta-publica/papeletas-movimientos-cantonales',\r\n name: 'Papeletas Cantonales',\r\n },\r\n {\r\n id:\r\n 'consulta-publica/papeletas-movimientos-provinciales',\r\n name: 'Papeletas Provinciales',\r\n },\r\n {\r\n id:\r\n 'consulta-publica/papeletas-movimientos-nacionales',\r\n name: 'Papeletas Nacionales',\r\n },\r\n /*\r\n {\r\n id: 'consulta-publica/presidente-sectores',\r\n name: 'Presidente de Sectores',\r\n },\r\n {\r\n id: 'consulta-publica/papeletas-sectores',\r\n name: 'Papeletas de Sectores',\r\n }, \r\n */\r\n ],\r\n });\r\n }\r\n return menuAsambleasDistritales;\r\n };\r\n\r\n const getMenuRegistrosElectorales = () => {\r\n const menuRegistrosElectorales = [\r\n {\r\n id: 'registros-electorales/miembros-mesa',\r\n name: 'Miembros de Mesa',\r\n },\r\n {\r\n id: 'registros-electorales/fiscales-mesa',\r\n name: 'Fiscales de Mesa',\r\n },\r\n {\r\n id: 'registros-electorales/fiscales-generales',\r\n name: 'Fiscales Generales',\r\n },\r\n ];\r\n return menuRegistrosElectorales;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Partido Liberación Nacional\r\n {' '}\r\n
\r\n PROCESOS DE ELECCIONES INTERNAS
\r\n \r\n {process.env.REACT_APP_PDF_PERIODO_REPORTS}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {process.env\r\n .REACT_APP_OPTION_REGISTRO_GESTORES ===\r\n 'enabled' &&\r\n registroGESAvailable && (\r\n
  • \r\n \r\n \r\n \r\n Registro Gestores\r\n \r\n \r\n
  • \r\n )}\r\n {process.env.REACT_APP_OPTION_LOGIN_GESTORES ===\r\n 'enabled' &&\r\n loginGESAvailable && (\r\n
  • \r\n \r\n \r\n \r\n Ingresar\r\n \r\n \r\n
  • \r\n )}\r\n \r\n \r\n
  • \r\n \r\n \r\n \r\n
  • \r\n
  • \r\n \r\n \r\n \r\n
  • \r\n
  • \r\n \r\n \r\n \r\n
  • \r\n
  • \r\n \r\n \r\n \r\n
  • \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n Asambleas Distritales\r\n \r\n\r\n \r\n {getMenuAsambleasDistritales(\r\n consultaInscripcionesAvailable,\r\n ).map(item => {\r\n const { id, name, children } = item;\r\n return (\r\n \r\n );\r\n })}\r\n \r\n\r\n {formPapeletaSectoresAvailable && (\r\n \r\n Sectores\r\n \r\n )}\r\n\r\n \r\n Registros Electorales\r\n \r\n\r\n \r\n {getMenuRegistrosElectorales().map(item => {\r\n const { id, name, children } = item;\r\n return (\r\n \r\n );\r\n })}\r\n \r\n {/* \r\n \r\n Escrutinio de Votación\r\n \r\n */}\r\n {/*\r\n \r\n Adjudicación de Puestos\r\n \r\n */}\r\n\r\n \r\n Consulta Electores\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {renderMobileMenu}\r\n {renderMenu}\r\n {renderMenuAdjudicacionPuestos}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default withStyles(style)(Header);\r\n","const styles = () => ({\r\n profileButton: {\r\n color: '#fff',\r\n backgroundColor: '#008945',\r\n cursor: 'pointer',\r\n },\r\n avatarIcon: {\r\n width: 70,\r\n height: 70,\r\n },\r\n});\r\n\r\nexport default styles;\r\n","import React, { useState, useEffect } from 'react';\r\nimport Lodash from 'lodash';\r\nimport { useJwt } from 'react-jwt';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Button from '@material-ui/core/Button';\r\nimport Menu from '@material-ui/core/Menu';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardActions from '@material-ui/core/CardActions';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport PersonIcon from '@material-ui/icons/Person';\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport style from './styles';\r\n\r\nimport tokenStorage from '../../Storage/Storage';\r\nimport pageStorage from '../../Storage/ConfigPage';\r\n\r\nconst LogOut = props => {\r\n const { classes } = props;\r\n const [open, setOpen] = useState(false);\r\n const [isLogout, setIsLogout] = useState(false);\r\n const [user, setUser] = useState([]);\r\n\r\n const tokenData = tokenStorage.instance;\r\n const { decodedToken } = useJwt(tokenData.getToken());\r\n\r\n useEffect(() => {\r\n if (decodedToken !== null) {\r\n setUser(decodedToken);\r\n }\r\n }, [decodedToken]);\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n\r\n const handleClickMenu = event => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleCloseMenu = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const logout = () => {\r\n setIsLogout(true);\r\n const tokenInfo = tokenStorage.instance;\r\n const pageInfo = pageStorage.instance;\r\n\r\n tokenInfo.removeStorage();\r\n pageInfo.removeStorage();\r\n\r\n setTimeout(() => {\r\n window.location.href = '/';\r\n }, 1000);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {Lodash.startCase(\r\n Lodash.camelCase(user.des_nombre),\r\n )}\r\n \r\n \r\n Gestor\r\n \r\n \r\n \r\n \r\n Perfil de Usuario\r\n \r\n \r\n \r\n \r\n \r\n \r\n Cerrar Sesión\r\n \r\n \r\n\r\n \r\n \r\n ¿Desea salir del sistema?\r\n \r\n \r\n \r\n \r\n Si\r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default withStyles(style)(LogOut);\r\n","import React from 'react';\r\nimport Lodash from 'lodash';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport Collapse from '@material-ui/core/Collapse';\r\nimport DashboardIcon from '@material-ui/icons/Dashboard';\r\nimport AssignmentIcon from '@material-ui/icons/Assignment';\r\nimport AssignmentOutlinedIcon from '@material-ui/icons/AssignmentOutlined';\r\nimport ReceiptIcon from '@material-ui/icons/Receipt';\r\nimport AdjustIcon from '@material-ui/icons/Adjust';\r\nimport MoneyIcon from '@material-ui/icons/Money';\r\nimport AssignmentIndIcon from '@material-ui/icons/AssignmentInd';\r\n// import ArtTrackIcon from '@material-ui/icons/ArtTrack';\r\nimport CreditCardIcon from '@material-ui/icons/CreditCard';\r\nimport ExpandLess from '@material-ui/icons/ExpandLess';\r\nimport ExpandMore from '@material-ui/icons/ExpandMore';\r\nimport { Link } from 'react-router-dom';\r\nimport { useRGESMMAvailable } from '../../Core/Api/periodoApi';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%',\r\n maxWidth: 360,\r\n backgroundColor: theme.palette.background.paper,\r\n },\r\n nested: {\r\n paddingLeft: theme.spacing(4),\r\n '& a': {\r\n textDecoration: 'none',\r\n color: '#757575',\r\n width: '100%',\r\n },\r\n },\r\n}));\r\n\r\nexport default function MenuItems() {\r\n // Se valida si esta habilitada la opcion (Registro Gestores)\r\n const isRegistroMMAvailable = useRGESMMAvailable();\r\n const registroMMAvailable = Lodash.get(\r\n isRegistroMMAvailable,\r\n ['data', 'response'],\r\n null,\r\n );\r\n const classes = useStyles();\r\n const [open, setOpen] = React.useState(false);\r\n const [openElectorales, setElectorales] = React.useState(\r\n false,\r\n );\r\n // const [openGafetes, setGafetes] = React.useState(false);\r\n const [openFormularios, setFormularios] = React.useState(\r\n false,\r\n );\r\n\r\n const handleClick = () => {\r\n setOpen(!open);\r\n };\r\n\r\n /*\r\n const gafetesClickHandler = () => {\r\n setGafetes(!openGafetes);\r\n };\r\n */\r\n\r\n const electoralesClickHandler = () => {\r\n setElectorales(!openElectorales);\r\n };\r\n\r\n const formulariosClickHandler = () => {\r\n setFormularios(!openFormularios);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {open ? : }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*\r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {registroMMAvailable && (\r\n \r\n \r\n \r\n \r\n \r\n {openElectorales ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/*\r\n \r\n \r\n \r\n \r\n \r\n {openGafetes ? : }\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n {openFormularios ? : }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n}\r\n","import React, {\r\n useState,\r\n useContext,\r\n useEffect,\r\n} from 'react';\r\nimport { useJwt } from 'react-jwt';\r\nimport clsx from 'clsx';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport Chip from '@material-ui/core/Chip';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport MenuIcon from '@material-ui/icons/Menu';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Drawer from '@material-ui/core/Drawer';\r\nimport ChevronLeftIcon from '@material-ui/icons/ChevronLeft';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Logout from '../../Logout/Logout';\r\n\r\nimport MenuItems from '../../Dashboard/MenuItems';\r\nimport BalanceContext from '../../../Core/Context/AppContext';\r\nimport Storage from '../../../Storage/Storage';\r\n\r\nconst AppBarCustom = props => {\r\n const [open, setOpen] = useState(true);\r\n const { classes } = props;\r\n\r\n const tokenStorage = Storage.instance;\r\n\r\n const { decodedToken } = useJwt(tokenStorage.getToken());\r\n\r\n const { balance, getBalanceAPI } = useContext(\r\n BalanceContext,\r\n );\r\n\r\n const [globalBalance, setGlobalBalance] = useState(\r\n balance,\r\n );\r\n\r\n const handleDrawerOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleDrawerClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n useEffect(() => {\r\n async function fetchBalanceAPI() {\r\n if (decodedToken)\r\n await getBalanceAPI(decodedToken.num_cedula);\r\n }\r\n\r\n fetchBalanceAPI();\r\n }, [decodedToken]);\r\n\r\n useEffect(() => {\r\n if (balance) setGlobalBalance(balance);\r\n }, [balance]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n PLATAFORMA DE ELECCIONES DISTRITALES\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default AppBarCustom;\r\n","/* eslint-disable react/jsx-props-no-spreading */\r\n/* eslint-disable react/prop-types */\r\n/* eslint-disable no-unused-vars */\r\nimport React from 'react';\r\nimport { Route } from 'react-router-dom';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport useStyles from '../Containers/Layout/makeStyles';\r\nimport Header from '../Containers/Header/Header';\r\nimport AppBarCustom from '../Containers/Layout/AppBarCustom/AppBarCustom';\r\nimport AuthMiddleware from '../Middleware/AuthMiddleware';\r\n\r\nconst authMiddleware = new AuthMiddleware();\r\n\r\nconst CustomRoute = ({\r\n auth,\r\n component: Component,\r\n ...rest\r\n}) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n {\r\n const { options } = rest.options || {};\r\n\r\n if (!auth) {\r\n return (\r\n <>\r\n
    \r\n \r\n \r\n );\r\n }\r\n\r\n if (!authMiddleware.validate()) {\r\n return authMiddleware.reject();\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default CustomRoute;\r\n","import React from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport Storage from '../Storage/Storage';\r\n\r\nclass AuthMiddleware {\r\n constructor() {\r\n this.storage = Storage.instance;\r\n }\r\n\r\n validate() {\r\n const token = this.storage.getToken();\r\n return token !== null && token !== '';\r\n }\r\n\r\n // eslint-disable-next-line class-methods-use-this\r\n reject() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default AuthMiddleware;\r\n","import React from 'react';\r\nimport { Switch, BrowserRouter } from 'react-router-dom';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Container } from '@material-ui/core';\r\nimport style from '../Index/styles';\r\nimport Routes from '../../Routes/routes';\r\nimport CustomRoute from '../../Routes/CustomRoute';\r\n\r\nconst Layout = () => {\r\n return (\r\n \r\n \r\n \r\n {Routes.map(page => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withStyles(style)(Layout);\r\n","import React, { useState } from 'react';\r\nimport { BalanceProvider } from './AppContext';\r\nimport balanceGlobalApi from '../Api/balanceGlobalApi';\r\nimport { formatData } from '../Utils/Utils';\r\n\r\nconst AppProvider = props => {\r\n const { children } = props;\r\n\r\n const [globalBalance, setGlobalBalance] = useState(null);\r\n\r\n const getBalance = async _userId => {\r\n await balanceGlobalApi\r\n .getBalanceById(_userId)\r\n .then(_response => {\r\n const info = _response;\r\n let dataSet = {\r\n deposits: 0,\r\n memberships: 0,\r\n inscriptions: 0,\r\n saldo: 0,\r\n };\r\n\r\n if (info.status === 200 && info.data.response) {\r\n const balanceRs = info.data.response;\r\n\r\n dataSet = {\r\n deposits: formatData(balanceRs.depositos),\r\n memberships: formatData(balanceRs.membresias),\r\n inscriptions: formatData(\r\n balanceRs.inscripciones,\r\n ),\r\n saldo: formatData(balanceRs.saldo),\r\n };\r\n }\r\n\r\n setGlobalBalance(dataSet);\r\n });\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default AppProvider;\r\n","import React from 'react';\r\nimport { MuiThemeProvider } from '@material-ui/core/styles';\r\n// import { Provider } from 'react-redux';\r\nimport { theme as t } from './Core/Theme/theme';\r\n// import store from './Redux';\r\nimport Layout from './Containers/Layout/Layout';\r\nimport AppProvider from './Core/Context/AppProvider';\r\n\r\nconst App = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default App;\r\n","/* eslint no-use-before-define: 0 */ // --> OFF\r\n/* eslint no-param-reassign: 0 */ // --> OFF\r\n/* eslint no-console: 0 */ // --> OFF\r\n\r\n// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/,\r\n ),\r\n);\r\n\r\nexport function register(config) {\r\n if (\r\n process.env.NODE_ENV === 'production' &&\r\n 'serviceWorker' in navigator\r\n ) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(\r\n process.env.PUBLIC_URL,\r\n window.location.href,\r\n );\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA',\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.',\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log(\r\n 'Content is cached for offline use.',\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error(\r\n 'Error during service worker registration:',\r\n error,\r\n );\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' },\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get(\r\n 'content-type',\r\n );\r\n if (\r\n response.status === 404 ||\r\n (contentType != null &&\r\n contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.',\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport dotenv from 'dotenv';\r\nimport App from './App';\r\nimport './index.css';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\ndotenv.config();\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}